From 9b60ef30f5ca744d45fd5f44ac04c5de23c62498 Mon Sep 17 00:00:00 2001 From: Apress Date: Thu, 6 Oct 2016 00:12:49 +0100 Subject: [PATCH] First commit --- 1606.html | 21 + 1616.pdf | Bin 0 -> 95303 bytes 1625.pdf | Bin 0 -> 616000 bytes 1813.pdf | Bin 0 -> 21735 bytes 9781590592885.jpg | Bin 0 -> 10337 bytes LICENSE.txt | 27 ++ README.md | 15 + SAF/Certificates/CompanyA.pfx | Bin 0 -> 2244 bytes SAF/Certificates/CompanyA_PublicKey.cer | 23 + SAF/Certificates/CompanyB.pfx | Bin 0 -> 2244 bytes SAF/Certificates/CompanyB_PublicKey.cer | 23 + SAF/Certificates/Dell420.cer | 21 + SAF/Certificates/XinChen.pfx | Bin 0 -> 2210 bytes .../AssemblyInfo.cs | 58 +++ .../ConfigurationManager.cs | 28 ++ .../DocumentLayerConfiguration.cs | 36 ++ .../SAF.Application.Configuration.csproj | 103 +++++ .../SAF.Application.Configuration.csproj.user | 48 +++ .../WorkFlowConfiguration.cs | 34 ++ .../Debug/SAF.Application.Configuration.dll | Bin 0 -> 4608 bytes .../Debug/SAF.Application.Configuration.pdb | Bin 0 -> 19968 bytes .../Debug/SAF.Application.Configuration.dll | Bin 0 -> 4608 bytes .../SAF.Application.Configuration.dll.incr | Bin 0 -> 1628 bytes .../Debug/SAF.Application.Configuration.pdb | Bin 0 -> 19968 bytes .../SAF.Application.Configuration.projdata | Bin 0 -> 5000 bytes .../SAF.Application.Configuration.projdata1 | Bin 0 -> 2824 bytes .../AssemblyInfo.cs | 58 +++ SAF/SAF.Application.DocumentLayer/Class1.cs | 17 + .../DocumentBlankLayer.cs | 73 ++++ .../DocumentLayer.cs | 107 +++++ .../SAF.Application.DocumentLayer.csproj | 98 +++++ .../SAF.Application.DocumentLayer.csproj.user | 48 +++ .../Debug/SAF.Application.Configuration.dll | Bin 0 -> 4608 bytes .../Debug/SAF.Application.Configuration.pdb | Bin 0 -> 13824 bytes .../Debug/SAF.Application.DocumentLayer.dll | Bin 0 -> 5632 bytes .../Debug/SAF.Application.DocumentLayer.pdb | Bin 0 -> 17920 bytes .../Debug/SAF.Application.DocumentLayer.dll | Bin 0 -> 5632 bytes .../SAF.Application.DocumentLayer.dll.incr | Bin 0 -> 1444 bytes .../Debug/SAF.Application.DocumentLayer.pdb | Bin 0 -> 17920 bytes .../SAF.Application.DocumentLayer.projdata | Bin 0 -> 12040 bytes .../SAF.Application.DocumentLayer.projdata1 | Bin 0 -> 5128 bytes .../SAF.Application.DocumentLayer.projdata2 | Bin 0 -> 5128 bytes SAF/SAF.Application.Workflow/AssemblyInfo.cs | 58 +++ SAF/SAF.Application.Workflow/Class1.cs | 17 + .../SAF.Application.Workflow.csproj | 98 +++++ .../SAF.Application.Workflow.csproj.user | 48 +++ SAF/SAF.Application.Workflow/Workflow.cs | 26 ++ .../Debug/SAF.Application.DocumentLayer.dll | Bin 0 -> 5632 bytes .../Debug/SAF.Application.DocumentLayer.pdb | Bin 0 -> 17920 bytes .../bin/Debug/SAF.Application.Workflow.dll | Bin 0 -> 4096 bytes .../bin/Debug/SAF.Application.Workflow.pdb | Bin 0 -> 11776 bytes .../obj/Debug/SAF.Application.Workflow.dll | Bin 0 -> 4096 bytes .../Debug/SAF.Application.Workflow.dll.incr | Bin 0 -> 1392 bytes .../obj/Debug/SAF.Application.Workflow.pdb | Bin 0 -> 11776 bytes .../Debug/SAF.Application.Workflow.projdata | Bin 0 -> 2696 bytes .../Debug/SAF.Application.Workflow.projdata1 | Bin 0 -> 1672 bytes .../ADAuthenticationProvider.cs | 111 +++++ SAF/SAF.Authentication/AssemblyInfo.cs | 58 +++ SAF/SAF.Authentication/Class1.cs | 17 + .../SAF.Authentication.csproj | 118 ++++++ .../SAF.Authentication.csproj.user | 48 +++ SAF/SAF.Authentication/SAFIdentity.cs | 66 +++ SAF/SAF.Authentication/SAFPrincipal.cs | 77 ++++ .../bin/Debug/SAF.Authentication.dll | Bin 0 -> 6656 bytes .../bin/Debug/SAF.Authentication.pdb | Bin 0 -> 24064 bytes .../bin/Debug/SAF.Configuration.dll | Bin 0 -> 11776 bytes .../bin/Debug/SAF.Configuration.pdb | Bin 0 -> 54784 bytes .../bin/Debug/SAF.Utility.dll | Bin 0 -> 5120 bytes .../bin/Debug/SAF.Utility.pdb | Bin 0 -> 13824 bytes .../obj/Debug/SAF.Authentication.dll | Bin 0 -> 6656 bytes .../obj/Debug/SAF.Authentication.dll.incr | Bin 0 -> 1910 bytes .../obj/Debug/SAF.Authentication.pdb | Bin 0 -> 24064 bytes .../obj/Debug/SAF.Authentication.projdata | Bin 0 -> 15240 bytes .../obj/Debug/SAF.Authentication.projdata1 | Bin 0 -> 7048 bytes SAF/SAF.Authorization/AssemblyInfo.cs | 58 +++ SAF/SAF.Authorization/Class1.cs | 17 + .../DefaultAuthorizationProvider.cs | 136 ++++++ .../SAF.Authorization.csproj | 113 +++++ .../SAF.Authorization.csproj.user | 48 +++ SAF/SAF.Authorization/SAFSecurityAttribute.cs | 42 ++ .../SAFSecurityPermission.cs | 113 +++++ .../bin/Debug/SAF.Authorization.dll | Bin 0 -> 7168 bytes .../bin/Debug/SAF.Authorization.pdb | Bin 0 -> 32256 bytes .../bin/Debug/SAF.Configuration.dll | Bin 0 -> 11776 bytes .../bin/Debug/SAF.Configuration.pdb | Bin 0 -> 54784 bytes .../bin/Debug/SAF.Library.Security.dll | Bin 0 -> 3584 bytes .../bin/Debug/SAF.Library.Security.pdb | Bin 0 -> 7680 bytes .../obj/Debug/SAF.Authorization.dll | Bin 0 -> 7168 bytes .../obj/Debug/SAF.Authorization.dll.incr | Bin 0 -> 1782 bytes .../obj/Debug/SAF.Authorization.pdb | Bin 0 -> 32256 bytes .../obj/Debug/SAF.Authorization.projdata | Bin 0 -> 17672 bytes .../obj/Debug/SAF.Authorization.projdata1 | Bin 0 -> 11016 bytes SAF/SAF.Cache/AssemblyInfo.cs | 58 +++ SAF/SAF.Cache/Cache.cs | 241 +++++++++++ SAF/SAF.Cache/DefaultCacheStrategy.cs | 51 +++ SAF/SAF.Cache/SAF.Cache.csproj | 103 +++++ SAF/SAF.Cache/SAF.Cache.csproj.user | 48 +++ SAF/SAF.Cache/bin/Debug/SAF.Cache.dll | Bin 0 -> 7168 bytes SAF/SAF.Cache/bin/Debug/SAF.Cache.pdb | Bin 0 -> 22016 bytes SAF/SAF.Cache/bin/Debug/SAF.Configuration.dll | Bin 0 -> 11776 bytes SAF/SAF.Cache/bin/Debug/SAF.Configuration.pdb | Bin 0 -> 54784 bytes .../bin/Debug/SAF.Library.Security.dll | Bin 0 -> 3584 bytes .../bin/Debug/SAF.Library.Security.pdb | Bin 0 -> 7680 bytes SAF/SAF.Cache/obj/Debug/SAF.Cache.dll | Bin 0 -> 7168 bytes SAF/SAF.Cache/obj/Debug/SAF.Cache.dll.incr | Bin 0 -> 1348 bytes SAF/SAF.Cache/obj/Debug/SAF.Cache.pdb | Bin 0 -> 22016 bytes SAF/SAF.Cache/obj/Debug/SAF.Cache.projdata | Bin 0 -> 21640 bytes SAF/SAF.Cache/obj/Debug/SAF.Cache.projdata1 | Bin 0 -> 4872 bytes SAF/SAF.ClassFactory/AssemblyInfo.cs | 58 +++ SAF/SAF.ClassFactory/Class1.cs | 46 ++ SAF/SAF.ClassFactory/SAF.ClassFactory.csproj | 98 +++++ .../SAF.ClassFactory.csproj.user | 48 +++ .../bin/Debug/SAF.ClassFactory.dll | Bin 0 -> 4608 bytes .../bin/Debug/SAF.ClassFactory.pdb | Bin 0 -> 13824 bytes .../bin/Debug/SAF.Configuration.dll | Bin 0 -> 11776 bytes .../bin/Debug/SAF.Configuration.pdb | Bin 0 -> 54784 bytes .../bin/Debug/SAF.Library.Security.dll | Bin 0 -> 3584 bytes .../bin/Debug/SAF.Library.Security.pdb | Bin 0 -> 7680 bytes .../obj/Debug/SAF.ClassFactory.dll | Bin 0 -> 4608 bytes .../obj/Debug/SAF.ClassFactory.dll.incr | Bin 0 -> 1284 bytes .../obj/Debug/SAF.ClassFactory.pdb | Bin 0 -> 13824 bytes .../obj/Debug/SAF.ClassFactory.projdata | Bin 0 -> 2440 bytes .../obj/Debug/SAF.ClassFactory.projdata1 | Bin 0 -> 2440 bytes SAF/SAF.Configuration/AssemblyInfo.cs | 58 +++ .../AuthenticationConfiguration.cs | 71 ++++ .../AuthorizationConfiguration.cs | 91 ++++ SAF/SAF.Configuration/CacheConfigration.cs | 29 ++ .../ClassFactoryConfiguration.cs | 31 ++ .../ConfigurationAgentManager.cs | 77 ++++ SAF/SAF.Configuration/ConfigurationManager.cs | 71 ++++ .../CryptographyConfiguration.cs | 139 ++++++ .../EventNotificationConfiguration.cs | 47 +++ .../MessageQueueConfiguration.cs | 42 ++ .../SAF.Configuration.csproj | 138 ++++++ .../SAF.Configuration.csproj.user | 48 +++ SAF/SAF.Configuration/ServiceConfiguration.cs | 23 + .../bin/Debug/SAF.Configuration.dll | Bin 0 -> 11776 bytes .../bin/Debug/SAF.Configuration.pdb | Bin 0 -> 54784 bytes .../bin/Debug/SAF.Library.Security.dll | Bin 0 -> 3584 bytes .../bin/Debug/SAF.Library.Security.pdb | Bin 0 -> 7680 bytes .../bin/Release/SAF.Configuration.dll | Bin 0 -> 11264 bytes .../obj/Debug/SAF.Configuration.dll | Bin 0 -> 11776 bytes .../obj/Debug/SAF.Configuration.dll.incr | Bin 0 -> 2574 bytes .../obj/Debug/SAF.Configuration.pdb | Bin 0 -> 54784 bytes .../obj/Debug/SAF.Configuration.projdata | Bin 0 -> 50696 bytes .../obj/Debug/SAF.Configuration.projdata1 | Bin 0 -> 25224 bytes .../obj/Debug/SAF.Configuration.projdata2 | Bin 0 -> 25224 bytes .../Web References.localhost.Reference.cs.dll | Bin 0 -> 4608 bytes .../obj/Release/SAF.Configuration.dll | Bin 0 -> 11264 bytes .../obj/Release/SAF.Configuration.projdata | Bin 0 -> 18056 bytes SAF/SAF.Cryptography/AssemblyInfo.cs | 58 +++ SAF/SAF.Cryptography/Certificate.cs | 51 +++ .../CryptRemotingSinkHelper.cs | 134 ++++++ .../CryptoRemotingClientSink.cs | 134 ++++++ .../CryptoRemotingServerSink.cs | 133 ++++++ SAF/SAF.Cryptography/EnDecryption.cs | 357 ++++++++++++++++ SAF/SAF.Cryptography/SAF.Cryptography.csproj | 139 ++++++ .../SAF.Cryptography.csproj.user | 48 +++ .../bin/Debug/Microsoft.Web.Services.dll | Bin 0 -> 311296 bytes .../bin/Debug/SAF.Configuration.dll | Bin 0 -> 11776 bytes .../bin/Debug/SAF.Configuration.pdb | Bin 0 -> 54784 bytes .../bin/Debug/SAF.Cryptography.dll | Bin 0 -> 24576 bytes .../bin/Debug/SAF.Cryptography.pdb | Bin 0 -> 69120 bytes .../bin/Microsoft.Web.Services.dll | Bin 0 -> 311296 bytes .../obj/Debug/SAF.Cryptography.dll | Bin 0 -> 24576 bytes .../obj/Debug/SAF.Cryptography.dll.incr | Bin 0 -> 2360 bytes .../obj/Debug/SAF.Cryptography.pdb | Bin 0 -> 69120 bytes .../obj/Debug/SAF.Cryptography.projdata | Bin 0 -> 43144 bytes .../obj/Debug/SAF.Cryptography.projdata1 | Bin 0 -> 29832 bytes .../obj/Debug/SAF.Cryptography.projdata2 | Bin 0 -> 31752 bytes .../obj/Release/SAF.Cryptography.dll | Bin 0 -> 13312 bytes .../obj/Release/SAF.Cryptography.projdata | Bin 0 -> 30088 bytes SAF/SAF.EventNotification/AssemblyInfo.cs | 58 +++ SAF/SAF.EventNotification/EventClient.cs | 118 ++++++ SAF/SAF.EventNotification/EventServer.cs | 113 +++++ .../SAF.EventNotification.csproj | 103 +++++ .../SAF.EventNotification.csproj.user | 48 +++ .../bin/Debug/SAF.EventNotification.dll | Bin 0 -> 6144 bytes .../bin/Debug/SAF.EventNotification.pdb | Bin 0 -> 19968 bytes .../obj/Debug/SAF.EventNotification.dll | Bin 0 -> 6144 bytes .../obj/Debug/SAF.EventNotification.dll.incr | Bin 0 -> 1518 bytes .../obj/Debug/SAF.EventNotification.pdb | Bin 0 -> 19968 bytes .../obj/Debug/SAF.EventNotification.projdata | Bin 0 -> 19464 bytes .../obj/Debug/SAF.EventNotification.projdata1 | Bin 0 -> 9096 bytes .../obj/Debug/SAF.EventNotification.projdata2 | Bin 0 -> 5000 bytes SAF/SAF.Library.Security/AssemblyInfo.cs | 58 +++ SAF/SAF.Library.Security/Class1.cs | 12 + .../SAF.Library.Security.csproj | 93 +++++ .../SAF.Library.Security.csproj.user | 48 +++ .../bin/Debug/SAF.Library.Security.dll | Bin 0 -> 3584 bytes .../bin/Debug/SAF.Library.Security.pdb | Bin 0 -> 7680 bytes .../obj/Debug/SAF.Library.Security.dll | Bin 0 -> 3584 bytes .../obj/Debug/SAF.Library.Security.dll.incr | Bin 0 -> 1170 bytes .../obj/Debug/SAF.Library.Security.pdb | Bin 0 -> 7680 bytes .../obj/Debug/SAF.Library.Security.projdata | Bin 0 -> 1416 bytes .../obj/Debug/SAF.Library.Security.projdata1 | Bin 0 -> 1288 bytes .../AssemblyInfo.cs | 58 +++ SAF/SAF.Library.WindowsService/Class1.cs | 18 + .../SAF.Library.WindowsService.csproj | 98 +++++ .../SAF.Library.WindowsService.csproj.user | 48 +++ .../bin/Debug/SAF.Library.WindowsService.dll | Bin 0 -> 3584 bytes .../bin/Debug/SAF.Library.WindowsService.pdb | Bin 0 -> 13824 bytes .../bin/Debug/SAF.Utility.dll | Bin 0 -> 5120 bytes .../bin/Debug/SAF.Utility.pdb | Bin 0 -> 13824 bytes .../obj/Debug/SAF.Library.WindowsService.dll | Bin 0 -> 3584 bytes .../Debug/SAF.Library.WindowsService.dll.incr | Bin 0 -> 1364 bytes .../obj/Debug/SAF.Library.WindowsService.pdb | Bin 0 -> 13824 bytes .../Debug/SAF.Library.WindowsService.projdata | Bin 0 -> 2440 bytes SAF/SAF.MessageQueue/AssemblyInfo.cs | 58 +++ SAF/SAF.MessageQueue/MQSeries.cs | 203 +++++++++ SAF/SAF.MessageQueue/MSMQ.cs | 183 ++++++++ SAF/SAF.MessageQueue/MessageQueue.cs | 49 +++ SAF/SAF.MessageQueue/MessageQueueManager.cs | 81 ++++ SAF/SAF.MessageQueue/SAF.MessageQueue.csproj | 129 ++++++ .../SAF.MessageQueue.csproj.user | 48 +++ .../bin/Debug/Interop.MQAX200.dll | Bin 0 -> 122880 bytes .../bin/Debug/SAF.Configuration.dll | Bin 0 -> 11776 bytes .../bin/Debug/SAF.Configuration.pdb | Bin 0 -> 54784 bytes .../bin/Debug/SAF.MessageQueue.dll | Bin 0 -> 9728 bytes .../bin/Debug/SAF.MessageQueue.pdb | Bin 0 -> 36352 bytes SAF/SAF.MessageQueue/bin/Interop.MQAX200.dll | Bin 0 -> 122880 bytes .../obj/Debug/SAF.MessageQueue.dll | Bin 0 -> 9728 bytes .../obj/Debug/SAF.MessageQueue.dll.incr | Bin 0 -> 1980 bytes .../obj/Debug/SAF.MessageQueue.pdb | Bin 0 -> 36352 bytes .../obj/Debug/SAF.MessageQueue.projdata | Bin 0 -> 48008 bytes .../obj/Debug/SAF.MessageQueue.projdata1 | Bin 0 -> 11272 bytes SAF/SAF.MessageQueue/obj/Interop.MQAX200.dll | Bin 0 -> 122880 bytes SAF/SAF.TestConsole/App.ico | Bin 0 -> 1078 bytes SAF/SAF.TestConsole/AssemblyInfo.cs | 58 +++ SAF/SAF.TestConsole/Class1.cs | 31 ++ SAF/SAF.TestConsole/SAF.TestConsole.csproj | 102 +++++ .../SAF.TestConsole.csproj.user | 48 +++ .../bin/Debug/SAF.TestConsole.exe | Bin 0 -> 5632 bytes .../bin/Debug/SAF.TestConsole.pdb | Bin 0 -> 11776 bytes SAF/SAF.TestConsole/bin/Debug/SAF.Utility.dll | Bin 0 -> 4608 bytes SAF/SAF.TestConsole/bin/Debug/SAF.Utility.pdb | Bin 0 -> 13824 bytes .../obj/Debug/SAF.TestConsole.exe | Bin 0 -> 5632 bytes .../obj/Debug/SAF.TestConsole.exe.incr | Bin 0 -> 1262 bytes .../obj/Debug/SAF.TestConsole.pdb | Bin 0 -> 11776 bytes .../obj/Debug/SAF.TestConsole.projdata | Bin 0 -> 1672 bytes SAF/SAF.Transaction/AssemblyInfo.cs | 58 +++ SAF/SAF.Transaction/Class1.cs | 17 + SAF/SAF.Transaction/SAF.Transaction.csproj | 98 +++++ .../SAF.Transaction.csproj.user | 48 +++ SAF/SAF.Transaction/TransactionManager.cs | 240 +++++++++++ .../bin/Debug/SAF.Transaction.dll | Bin 0 -> 6656 bytes .../bin/Debug/SAF.Transaction.pdb | Bin 0 -> 19968 bytes .../obj/Debug/SAF.Transaction.dll | Bin 0 -> 6656 bytes .../obj/Debug/SAF.Transaction.dll.incr | Bin 0 -> 1394 bytes .../obj/Debug/SAF.Transaction.pdb | Bin 0 -> 19968 bytes .../obj/Debug/SAF.Transaction.projdata | Bin 0 -> 19080 bytes .../obj/Debug/SAF.Transaction.projdata1 | Bin 0 -> 5512 bytes SAF/SAF.Utility/AssemblyInfo.cs | 58 +++ SAF/SAF.Utility/Class1.cs | 143 +++++++ SAF/SAF.Utility/SAF.Utility.csproj | 93 +++++ SAF/SAF.Utility/SAF.Utility.csproj.user | 48 +++ SAF/SAF.Utility/bin/Debug/SAF.Utility.dll | Bin 0 -> 5120 bytes SAF/SAF.Utility/bin/Debug/SAF.Utility.pdb | Bin 0 -> 13824 bytes SAF/SAF.Utility/obj/Debug/SAF.Utility.dll | Bin 0 -> 5120 bytes .../obj/Debug/SAF.Utility.dll.incr | Bin 0 -> 1106 bytes SAF/SAF.Utility/obj/Debug/SAF.Utility.pdb | Bin 0 -> 13824 bytes .../obj/Debug/SAF.Utility.projdata | Bin 0 -> 7432 bytes .../obj/Debug/SAF.Utility.projdata1 | Bin 0 -> 4744 bytes SAF/SAF.WindowsService/AssemblyInfo.cs | 58 +++ SAF/SAF.WindowsService/EmptyService.cs | 59 +++ SAF/SAF.WindowsService/ProjectInstaller.cs | 57 +++ SAF/SAF.WindowsService/ProjectInstaller.resx | 111 +++++ .../SAF.WindowsService.csproj | 152 +++++++ .../SAF.WindowsService.csproj.user | 48 +++ .../SecuritySwitchThread.cs | 78 ++++ SAF/SAF.WindowsService/Service1.cs | 165 ++++++++ SAF/SAF.WindowsService/Service1.resx | 42 ++ SAF/SAF.WindowsService/app.config | 18 + .../bin/Debug/InstallUtil.InstallLog | 394 ++++++++++++++++++ .../bin/Debug/SAF.Configuration.dll | Bin 0 -> 11776 bytes .../bin/Debug/SAF.Configuration.pdb | Bin 0 -> 54784 bytes .../bin/Debug/SAF.Library.Security.dll | Bin 0 -> 3584 bytes .../bin/Debug/SAF.Library.Security.pdb | Bin 0 -> 7680 bytes .../bin/Debug/SAF.Library.WindowsService.dll | Bin 0 -> 3584 bytes .../bin/Debug/SAF.Library.WindowsService.pdb | Bin 0 -> 13824 bytes .../bin/Debug/SAF.Utility.dll | Bin 0 -> 5120 bytes .../bin/Debug/SAF.Utility.pdb | Bin 0 -> 13824 bytes .../bin/Debug/SAF.WindowsService.exe | Bin 0 -> 9728 bytes .../bin/Debug/SAF.WindowsService.exe.config | 18 + .../bin/Debug/SAF.WindowsService.pdb | Bin 0 -> 30208 bytes .../bin/Debug/saf.windowsservice.InstallLog | 364 ++++++++++++++++ .../bin/Debug/saf.windowsservice.InstallState | 117 ++++++ ....WindowsService.ProjectInstaller.resources | Bin 0 -> 1102 bytes .../SAF.WindowsService.Service1.resources | Bin 0 -> 188 bytes .../obj/Debug/SAF.WindowsService.exe | Bin 0 -> 9728 bytes .../obj/Debug/SAF.WindowsService.exe.incr | Bin 0 -> 3042 bytes .../obj/Debug/SAF.WindowsService.pdb | Bin 0 -> 30208 bytes .../obj/Debug/SAF.WindowsService.projdata | Bin 0 -> 16648 bytes SAF/SAF.sln | 111 +++++ SAF/SAF.snk | Bin 0 -> 596 bytes SAF/SAF.suo | Bin 0 -> 21504 bytes SAF/Setup/Certificates/CompanyA.pfx | Bin 0 -> 2244 bytes SAF/Setup/Certificates/CompanyA_PublicKey.cer | 23 + SAF/Setup/Certificates/CompanyB.pfx | Bin 0 -> 2244 bytes SAF/Setup/Certificates/CompanyB_PublicKey.cer | 23 + SAF/Setup/Certificates/Dell420.cer | 21 + SAF/Setup/SAFDemo.sql | 23 + SAF/Test.BusinessLibrary/AssemblyInfo.cs | 58 +++ SAF/Test.BusinessLibrary/Class1.cs | 22 + .../Test.BusinessLibrary.csproj | 93 +++++ .../Test.BusinessLibrary.csproj.user | 48 +++ .../bin/Debug/Test.BusinessLibrary.dll | Bin 0 -> 4096 bytes .../bin/Debug/Test.BusinessLibrary.pdb | Bin 0 -> 13824 bytes .../bin/Release/Test.BusinessLibrary.dll | Bin 0 -> 4096 bytes .../obj/Debug/Test.BusinessLibrary.dll | Bin 0 -> 4096 bytes .../obj/Debug/Test.BusinessLibrary.dll.incr | Bin 0 -> 1178 bytes .../obj/Debug/Test.BusinessLibrary.pdb | Bin 0 -> 13824 bytes .../obj/Debug/Test.BusinessLibrary.projdata | Bin 0 -> 1416 bytes .../obj/Debug/Test.BusinessLibrary.projdata1 | Bin 0 -> 1416 bytes .../obj/Release/Test.BusinessLibrary.dll | Bin 0 -> 4096 bytes .../obj/Release/Test.BusinessLibrary.projdata | Bin 0 -> 1416 bytes .../Test.Client.SAF.Cryptography.sln | 39 ++ .../Test.Client.SAF.Cryptography.suo | Bin 0 -> 20480 bytes .../TestConsole/App.ico | Bin 0 -> 1078 bytes .../TestConsole/AssemblyInfo.cs | 58 +++ .../TestConsole/Class1.cs | 55 +++ .../TestConsole/TestConsole.csproj | 116 ++++++ .../TestConsole/TestConsole.csproj.user | 48 +++ .../TestConsole/app.config | 69 +++ .../bin/Debug/Microsoft.Web.Services.dll | Bin 0 -> 311296 bytes .../bin/Debug/SAF.Configuration.dll | Bin 0 -> 11776 bytes .../bin/Debug/SAF.Configuration.pdb | Bin 0 -> 54784 bytes .../bin/Debug/SAF.Cryptography.dll | Bin 0 -> 24576 bytes .../bin/Debug/SAF.Cryptography.pdb | Bin 0 -> 69120 bytes .../bin/Debug/Test.BusinessLibrary.dll | Bin 0 -> 4096 bytes .../bin/Debug/Test.BusinessLibrary.pdb | Bin 0 -> 13824 bytes .../TestConsole/bin/Debug/TestConsole.exe | Bin 0 -> 6144 bytes .../bin/Debug/TestConsole.exe.config | 69 +++ .../TestConsole/bin/Debug/TestConsole.pdb | Bin 0 -> 13824 bytes .../TestConsole/obj/Debug/TestConsole.exe | Bin 0 -> 6144 bytes .../obj/Debug/TestConsole.exe.incr | Bin 0 -> 1842 bytes .../TestConsole/obj/Debug/TestConsole.pdb | Bin 0 -> 13824 bytes .../obj/Debug/TestConsole.projdata | Bin 0 -> 2952 bytes .../Test.Client.SAF.EventNotification.sln | 33 ++ .../Test.Client.SAF.EventNotification.suo | Bin 0 -> 12800 bytes .../TestConsole/App.ico | Bin 0 -> 1078 bytes .../TestConsole/AssemblyInfo.cs | 58 +++ .../TestConsole/Class1.cs | 54 +++ .../TestConsole/TestConsole.csproj | 111 +++++ .../TestConsole/TestConsole.csproj.user | 48 +++ .../TestConsole/app.config | 14 + .../bin/Debug/SAF.Configuration.dll | Bin 0 -> 11776 bytes .../bin/Debug/SAF.Configuration.pdb | Bin 0 -> 54784 bytes .../bin/Debug/SAF.EventNotification.dll | Bin 0 -> 6144 bytes .../bin/Debug/SAF.EventNotification.pdb | Bin 0 -> 19968 bytes .../bin/Debug/SAF.Library.Security.dll | Bin 0 -> 3584 bytes .../bin/Debug/SAF.Library.Security.pdb | Bin 0 -> 7680 bytes .../TestConsole/bin/Debug/TestConsole.exe | Bin 0 -> 6144 bytes .../bin/Debug/TestConsole.exe.config | 14 + .../TestConsole/bin/Debug/TestConsole.pdb | Bin 0 -> 13824 bytes .../TestConsole/obj/Debug/TestConsole.exe | Bin 0 -> 6144 bytes .../obj/Debug/TestConsole.exe.incr | Bin 0 -> 1710 bytes .../TestConsole/obj/Debug/TestConsole.pdb | Bin 0 -> 13824 bytes .../obj/Debug/TestConsole.projdata | Bin 0 -> 2440 bytes .../Test.SAF.Application.DocumentLayer.sln | 45 ++ .../Test.SAF.Application.DocumentLayer.suo | Bin 0 -> 13824 bytes .../TestConsole/App.ico | Bin 0 -> 1078 bytes .../TestConsole/AssemblyInfo.cs | 58 +++ .../TestConsole/Class1.cs | 51 +++ .../TestConsole/ConfirmationSample.xml | Bin 0 -> 314 bytes .../TestConsole/Confirmations.xsd | Bin 0 -> 1324 bytes .../TestConsole/Order.xsd | Bin 0 -> 2014 bytes .../TestConsole/OrderSample.xml | 12 + .../TestConsole/TestConsole.csproj | 137 ++++++ .../TestConsole/TestConsole.csproj.user | 48 +++ .../TestConsole/app.config | 22 + .../Debug/SAF.Application.Configuration.dll | Bin 0 -> 4608 bytes .../Debug/SAF.Application.Configuration.pdb | Bin 0 -> 19968 bytes .../Debug/SAF.Application.DocumentLayer.dll | Bin 0 -> 5632 bytes .../Debug/SAF.Application.DocumentLayer.pdb | Bin 0 -> 17920 bytes .../bin/Debug/SAF.Configuration.dll | Bin 0 -> 11776 bytes .../bin/Debug/SAF.Configuration.pdb | Bin 0 -> 54784 bytes .../TestConsole/bin/Debug/TestConsole.exe | Bin 0 -> 6656 bytes .../bin/Debug/TestConsole.exe.config | 22 + .../TestConsole/bin/Debug/TestConsole.pdb | Bin 0 -> 13824 bytes .../bin/Debug/TestDocumentLayer.dll | Bin 0 -> 8192 bytes .../bin/Debug/TestDocumentLayer.pdb | Bin 0 -> 40448 bytes .../TestConsole/obj/Debug/TestConsole.exe | Bin 0 -> 6656 bytes .../obj/Debug/TestConsole.exe.incr | Bin 0 -> 2156 bytes .../TestConsole/obj/Debug/TestConsole.pdb | Bin 0 -> 13824 bytes .../obj/Debug/TestConsole.projdata | Bin 0 -> 1672 bytes .../obj/Debug/TestConsole.projdata1 | Bin 0 -> 1672 bytes .../TestDocumentLayer/AssemblyInfo.cs | 58 +++ .../DocumentDoSomeWorkLayer.cs | 83 ++++ .../TestDocumentLayer/DocumentLoggingLayer.cs | 149 +++++++ .../DocumentXmlValidationLayer.cs | 102 +++++ .../TestDocumentLayer.csproj | 108 +++++ .../TestDocumentLayer.csproj.user | 48 +++ .../Debug/SAF.Application.DocumentLayer.dll | Bin 0 -> 5632 bytes .../Debug/SAF.Application.DocumentLayer.pdb | Bin 0 -> 17920 bytes .../bin/Debug/TestDocumentLayer.dll | Bin 0 -> 8192 bytes .../bin/Debug/TestDocumentLayer.pdb | Bin 0 -> 40448 bytes .../obj/Debug/TestDocumentLayer.dll | Bin 0 -> 8192 bytes .../obj/Debug/TestDocumentLayer.dll.incr | Bin 0 -> 2080 bytes .../obj/Debug/TestDocumentLayer.pdb | Bin 0 -> 40448 bytes .../obj/Debug/TestDocumentLayer.projdata | Bin 0 -> 11144 bytes .../obj/Debug/TestDocumentLayer.projdata1 | Bin 0 -> 4872 bytes SAF/Test.SAF.Application.Workflow/App.ico | Bin 0 -> 1078 bytes .../AssemblyInfo.cs | 58 +++ SAF/Test.SAF.Application.Workflow/Class1.cs | 63 +++ .../ConfirmationSample.xml | Bin 0 -> 314 bytes .../Confirmations.xsd | Bin 0 -> 1324 bytes SAF/Test.SAF.Application.Workflow/Order.xsd | Bin 0 -> 2014 bytes .../OrderSample.xml | 12 + .../Test.SAF.Application.Workflow.csproj | 142 +++++++ .../Test.SAF.Application.Workflow.csproj.user | 48 +++ .../Test.SAF.Application.Workflow.sln | 57 +++ .../Test.SAF.Application.Workflow.suo | Bin 0 -> 20992 bytes .../TestConsole/App.ico | Bin 0 -> 1078 bytes .../TestConsole/AssemblyInfo.cs | 58 +++ .../TestConsole/Class1.cs | 63 +++ .../TestConsole/ConfirmationSample.xml | Bin 0 -> 314 bytes .../TestConsole/Confirmations.xsd | Bin 0 -> 1324 bytes .../TestConsole/Order.xsd | Bin 0 -> 2014 bytes .../TestConsole/OrderSample.xml | 12 + .../TestConsole/TestConsole.csproj | 142 +++++++ .../TestConsole/TestConsole.csproj.user | 48 +++ .../TestConsole/app.config | 30 ++ .../Debug/SAF.Application.Configuration.dll | Bin 0 -> 4608 bytes .../Debug/SAF.Application.Configuration.pdb | Bin 0 -> 19968 bytes .../Debug/SAF.Application.DocumentLayer.dll | Bin 0 -> 5632 bytes .../Debug/SAF.Application.DocumentLayer.pdb | Bin 0 -> 17920 bytes .../bin/Debug/SAF.Application.Workflow.dll | Bin 0 -> 4096 bytes .../bin/Debug/SAF.Application.Workflow.pdb | Bin 0 -> 11776 bytes .../bin/Debug/SAF.Configuration.dll | Bin 0 -> 11776 bytes .../bin/Debug/SAF.Configuration.pdb | Bin 0 -> 54784 bytes .../TestConsole/bin/Debug/TestConsole.exe | Bin 0 -> 6656 bytes .../bin/Debug/TestConsole.exe.config | 30 ++ .../TestConsole/bin/Debug/TestConsole.pdb | Bin 0 -> 13824 bytes .../bin/Debug/TestDocumentLayer.dll | Bin 0 -> 8192 bytes .../bin/Debug/TestDocumentLayer.pdb | Bin 0 -> 40448 bytes .../TestConsole/bin/Debug/TestWorkFlow.dll | Bin 0 -> 9216 bytes .../TestConsole/bin/Debug/TestWorkFlow.pdb | Bin 0 -> 34304 bytes .../TestConsole/obj/Debug/TestConsole.exe | Bin 0 -> 6656 bytes .../obj/Debug/TestConsole.exe.incr | Bin 0 -> 2264 bytes .../TestConsole/obj/Debug/TestConsole.pdb | Bin 0 -> 13824 bytes .../obj/Debug/TestConsole.projdata | Bin 0 -> 2440 bytes .../TestWorkFlow/AssemblyInfo.cs | 58 +++ .../TestWorkFlow/Component.cs | 133 ++++++ .../TestWorkFlow/DocumentWorkFlowLayer.cs | 104 +++++ .../TestWorkFlow/TestWorkFlow.csproj | 123 ++++++ .../TestWorkFlow/TestWorkFlow.csproj.user | 48 +++ .../TestWorkFlow/Visitor.cs | 132 ++++++ .../Debug/SAF.Application.Configuration.dll | Bin 0 -> 4608 bytes .../Debug/SAF.Application.Configuration.pdb | Bin 0 -> 19968 bytes .../Debug/SAF.Application.DocumentLayer.dll | Bin 0 -> 5632 bytes .../Debug/SAF.Application.DocumentLayer.pdb | Bin 0 -> 17920 bytes .../bin/Debug/SAF.Application.Workflow.dll | Bin 0 -> 4096 bytes .../bin/Debug/SAF.Application.Workflow.pdb | Bin 0 -> 11776 bytes .../TestWorkFlow/bin/Debug/TestWorkFlow.dll | Bin 0 -> 9216 bytes .../TestWorkFlow/bin/Debug/TestWorkFlow.pdb | Bin 0 -> 34304 bytes .../TestWorkFlow/obj/Debug/TestWorkFlow.dll | Bin 0 -> 9216 bytes .../obj/Debug/TestWorkFlow.dll.incr | Bin 0 -> 2490 bytes .../TestWorkFlow/obj/Debug/TestWorkFlow.pdb | Bin 0 -> 34304 bytes .../obj/Debug/TestWorkFlow.projdata | Bin 0 -> 41736 bytes SAF/Test.SAF.Application.Workflow/app.config | 30 ++ .../Debug/SAF.Application.Configuration.dll | Bin 0 -> 4608 bytes .../Debug/SAF.Application.Configuration.pdb | Bin 0 -> 19968 bytes .../Debug/SAF.Application.DocumentLayer.dll | Bin 0 -> 5632 bytes .../Debug/SAF.Application.DocumentLayer.pdb | Bin 0 -> 17920 bytes .../bin/Debug/SAF.Application.Workflow.dll | Bin 0 -> 4096 bytes .../bin/Debug/SAF.Application.Workflow.pdb | Bin 0 -> 11776 bytes .../bin/Debug/SAF.Configuration.dll | Bin 0 -> 11264 bytes .../bin/Debug/SAF.Configuration.pdb | Bin 0 -> 50688 bytes .../Debug/Test.SAF.Application.Workflow.exe | Bin 0 -> 6656 bytes .../Test.SAF.Application.Workflow.exe.config | 30 ++ .../Debug/Test.SAF.Application.Workflow.pdb | Bin 0 -> 13824 bytes .../bin/Debug/TestDocumentLayer.dll | Bin 0 -> 8192 bytes .../bin/Debug/TestDocumentLayer.pdb | Bin 0 -> 40448 bytes .../bin/Debug/TestWorkFlow.dll | Bin 0 -> 9216 bytes .../bin/Debug/TestWorkFlow.pdb | Bin 0 -> 34304 bytes .../Debug/Test.SAF.Application.Workflow.exe | Bin 0 -> 6656 bytes .../Test.SAF.Application.Workflow.exe.incr | Bin 0 -> 2108 bytes .../Debug/Test.SAF.Application.Workflow.pdb | Bin 0 -> 13824 bytes .../Test.SAF.Application.Workflow.projdata | Bin 0 -> 2184 bytes .../Test.SAF.Authentication.sln | 39 ++ .../Test.SAF.Authentication.suo | Bin 0 -> 14336 bytes .../TestConsole/App.ico | Bin 0 -> 1078 bytes .../TestConsole/AssemblyInfo.cs | 58 +++ .../TestConsole/Class1.cs | 53 +++ .../TestConsole/TestConsole.csproj | 106 +++++ .../TestConsole/TestConsole.csproj.user | 48 +++ .../TestConsole/app.config | 26 ++ .../bin/Debug/SAF.Authentication.dll | Bin 0 -> 6656 bytes .../bin/Debug/SAF.Authentication.pdb | Bin 0 -> 24064 bytes .../bin/Debug/SAF.Configuration.dll | Bin 0 -> 11776 bytes .../bin/Debug/SAF.Configuration.pdb | Bin 0 -> 54784 bytes .../TestConsole/bin/Debug/SAF.Utility.dll | Bin 0 -> 5120 bytes .../TestConsole/bin/Debug/SAF.Utility.pdb | Bin 0 -> 13824 bytes .../TestConsole/bin/Debug/TestConsole.exe | Bin 0 -> 6144 bytes .../bin/Debug/TestConsole.exe.config | 26 ++ .../TestConsole/bin/Debug/TestConsole.pdb | Bin 0 -> 13824 bytes .../TestConsole/obj/Debug/TestConsole.exe | Bin 0 -> 6144 bytes .../obj/Debug/TestConsole.exe.incr | Bin 0 -> 1428 bytes .../TestConsole/obj/Debug/TestConsole.pdb | Bin 0 -> 13824 bytes .../obj/Debug/TestConsole.projdata | Bin 0 -> 2312 bytes .../Test.SAF.Authorization.sln | 35 ++ .../Test.SAF.Authorization.suo | Bin 0 -> 11776 bytes .../TestConsole/App.ico | Bin 0 -> 1078 bytes .../TestConsole/AssemblyInfo.cs | 58 +++ .../TestConsole/Class1.cs | 63 +++ .../TestConsole/TestConsole.csproj | 106 +++++ .../TestConsole/TestConsole.csproj.user | 48 +++ .../TestConsole/app.config | 26 ++ .../bin/Debug/SAF.Authorization.dll | Bin 0 -> 7168 bytes .../bin/Debug/SAF.Authorization.pdb | Bin 0 -> 32256 bytes .../bin/Debug/SAF.Configuration.dll | Bin 0 -> 11776 bytes .../bin/Debug/SAF.Configuration.pdb | Bin 0 -> 54784 bytes .../bin/Debug/SAF.Library.Security.dll | Bin 0 -> 3584 bytes .../bin/Debug/SAF.Library.Security.pdb | Bin 0 -> 7680 bytes .../TestConsole/bin/Debug/TestConsole.exe | Bin 0 -> 7680 bytes .../bin/Debug/TestConsole.exe.config | 26 ++ .../TestConsole/bin/Debug/TestConsole.pdb | Bin 0 -> 13824 bytes .../TestConsole/obj/Debug/TestConsole.exe | Bin 0 -> 7680 bytes .../obj/Debug/TestConsole.exe.incr | Bin 0 -> 1426 bytes .../TestConsole/obj/Debug/TestConsole.pdb | Bin 0 -> 13824 bytes .../obj/Debug/TestConsole.projdata | Bin 0 -> 2696 bytes SAF/Test.SAF.Cache/Test.SAF.Cache.sln | 33 ++ SAF/Test.SAF.Cache/Test.SAF.Cache.suo | Bin 0 -> 10240 bytes SAF/Test.SAF.Cache/TestConsole/App.ico | Bin 0 -> 1078 bytes .../TestConsole/AssemblyInfo.cs | 58 +++ SAF/Test.SAF.Cache/TestConsole/Class1.cs | 47 +++ .../TestConsole/TestConsole.csproj | 111 +++++ .../TestConsole/TestConsole.csproj.user | 48 +++ SAF/Test.SAF.Cache/TestConsole/app.config | 12 + .../TestConsole/bin/Debug/SAF.Cache.dll | Bin 0 -> 7168 bytes .../TestConsole/bin/Debug/SAF.Cache.pdb | Bin 0 -> 22016 bytes .../bin/Debug/SAF.Configuration.dll | Bin 0 -> 11776 bytes .../bin/Debug/SAF.Configuration.pdb | Bin 0 -> 54784 bytes .../bin/Debug/SAF.Library.Security.dll | Bin 0 -> 3584 bytes .../bin/Debug/SAF.Library.Security.pdb | Bin 0 -> 7680 bytes .../TestConsole/bin/Debug/TestConsole.exe | Bin 0 -> 6144 bytes .../bin/Debug/TestConsole.exe.config | 12 + .../TestConsole/bin/Debug/TestConsole.pdb | Bin 0 -> 13824 bytes .../TestConsole/obj/Debug/TestConsole.exe | Bin 0 -> 6144 bytes .../obj/Debug/TestConsole.exe.incr | Bin 0 -> 1496 bytes .../TestConsole/obj/Debug/TestConsole.pdb | Bin 0 -> 13824 bytes .../obj/Debug/TestConsole.projdata | Bin 0 -> 1672 bytes .../Test.SAF.ClassFactory.sln | 39 ++ .../Test.SAF.ClassFactory.suo | Bin 0 -> 14336 bytes .../TestConcreteFactory/AssemblyInfo.cs | 58 +++ .../TestConcreteFactory.cs | 192 +++++++++ .../TestConcreteFactory.csproj | 93 +++++ .../TestConcreteFactory.csproj.user | 48 +++ .../bin/Debug/TestConcreteFactory.dll | Bin 0 -> 6144 bytes .../bin/Debug/TestConcreteFactory.pdb | Bin 0 -> 24064 bytes .../obj/Debug/TestConcreteFactory.dll | Bin 0 -> 6144 bytes .../obj/Debug/TestConcreteFactory.dll.incr | Bin 0 -> 1408 bytes .../obj/Debug/TestConcreteFactory.pdb | Bin 0 -> 24064 bytes .../obj/Debug/TestConcreteFactory.projdata | Bin 0 -> 10376 bytes SAF/Test.SAF.ClassFactory/TestConsole/App.ico | Bin 0 -> 1078 bytes .../TestConsole/AssemblyInfo.cs | 58 +++ .../TestConsole/TestConsole.cs | 57 +++ .../TestConsole/TestConsole.csproj | 116 ++++++ .../TestConsole/TestConsole.csproj.user | 48 +++ .../TestConsole/app.config | 27 ++ .../bin/Debug/SAF.ClassFactory.dll | Bin 0 -> 4608 bytes .../bin/Debug/SAF.ClassFactory.pdb | Bin 0 -> 13824 bytes .../bin/Debug/SAF.Configuration.dll | Bin 0 -> 11776 bytes .../bin/Debug/SAF.Configuration.pdb | Bin 0 -> 54784 bytes .../bin/Debug/SAF.Library.Security.dll | Bin 0 -> 3584 bytes .../bin/Debug/SAF.Library.Security.pdb | Bin 0 -> 7680 bytes .../bin/Debug/TestConcreteFactory.dll | Bin 0 -> 6144 bytes .../bin/Debug/TestConcreteFactory.pdb | Bin 0 -> 24064 bytes .../TestConsole/bin/Debug/TestConsole.exe | Bin 0 -> 6144 bytes .../bin/Debug/TestConsole.exe.config | 27 ++ .../TestConsole/bin/Debug/TestConsole.pdb | Bin 0 -> 13824 bytes .../TestConsole/obj/Debug/TestConsole.exe | Bin 0 -> 6144 bytes .../obj/Debug/TestConsole.exe.incr | Bin 0 -> 1766 bytes .../TestConsole/obj/Debug/TestConsole.pdb | Bin 0 -> 13824 bytes .../obj/Debug/TestConsole.projdata | Bin 0 -> 2184 bytes .../Application.Configuration.csproj | 98 +++++ .../Application.Configuration.csproj.user | 48 +++ .../Application.Configuration/AssemblyInfo.cs | 58 +++ .../ConfigurationManager.cs | 90 ++++ .../bin/Debug/Application.Configuration.dll | Bin 0 -> 4608 bytes .../bin/Debug/Application.Configuration.pdb | Bin 0 -> 15872 bytes .../bin/Debug/SAF.Configuration.dll | Bin 0 -> 11776 bytes .../bin/Debug/SAF.Configuration.pdb | Bin 0 -> 54784 bytes .../bin/Debug/SAF.Library.Security.dll | Bin 0 -> 3584 bytes .../bin/Debug/SAF.Library.Security.pdb | Bin 0 -> 7680 bytes .../obj/Debug/Application.Configuration.dll | Bin 0 -> 4608 bytes .../Debug/Application.Configuration.dll.incr | Bin 0 -> 1602 bytes .../obj/Debug/Application.Configuration.pdb | Bin 0 -> 15872 bytes .../Debug/Application.Configuration.projdata | Bin 0 -> 7176 bytes .../ConfigurationData/AssemblyInfo.cs | 62 +++ .../ConfigurationData.csproj | 138 ++++++ .../ConfigurationData.csproj.webinfo | 4 + .../ConfigurationData.vsdisco | 9 + .../ConfigurationService.asmx | 1 + .../ConfigurationService.asmx.cs | 69 +++ .../ConfigurationService.asmx.resx | 42 ++ .../ConfigurationData/Global.asax | 1 + .../ConfigurationData/Global.asax.cs | 70 ++++ .../ConfigurationData/Global.asax.resx | 42 ++ .../ConfigurationData/Web.config | 77 ++++ .../ConfigurationData/_vti_pvt/access.cnf | 4 + .../ConfigurationData/_vti_pvt/deptodoc.btr | Bin 0 -> 324 bytes .../ConfigurationData/_vti_pvt/doctodep.btr | Bin 0 -> 324 bytes .../ConfigurationData/_vti_pvt/service.cnf | 20 + .../ConfigurationData/_vti_pvt/service.lck | 0 .../ConfigurationData/_vti_pvt/services.cnf | 1 + .../bin/ConfigurationData.dll | Bin 0 -> 6144 bytes .../bin/ConfigurationData.pdb | Bin 0 -> 17920 bytes .../Test.SAF.Configuration.sln | 45 ++ .../Test.SAF.Configuration.suo | Bin 0 -> 14848 bytes .../TestConfigurationAgent/AssemblyInfo.cs | 58 +++ .../TestConfigurationAgent.cs | 42 ++ .../TestConfigurationAgent.csproj | 134 ++++++ .../TestConfigurationAgent.csproj.user | 48 +++ .../localhost/ConfigurationService.disco | 5 + .../localhost/ConfigurationService.wsdl | 51 +++ .../Web References/localhost/Reference.cs | 56 +++ .../Web References/localhost/Reference.map | 7 + .../bin/Debug/SAF.Configuration.dll | Bin 0 -> 11776 bytes .../bin/Debug/SAF.Configuration.pdb | Bin 0 -> 54784 bytes .../bin/Debug/SAF.Library.Security.dll | Bin 0 -> 3584 bytes .../bin/Debug/SAF.Library.Security.pdb | Bin 0 -> 7680 bytes .../bin/Debug/TestConfigurationAgent.dll | Bin 0 -> 6144 bytes .../bin/Debug/TestConfigurationAgent.pdb | Bin 0 -> 15872 bytes .../Web References.localhost.Reference.cs.dll | Bin 0 -> 4608 bytes .../obj/Debug/TestConfigurationAgent.dll | Bin 0 -> 6144 bytes .../obj/Debug/TestConfigurationAgent.dll.incr | Bin 0 -> 1952 bytes .../obj/Debug/TestConfigurationAgent.pdb | Bin 0 -> 15872 bytes .../obj/Debug/TestConfigurationAgent.projdata | Bin 0 -> 4744 bytes .../TestConsole/App.ico | Bin 0 -> 1078 bytes .../TestConsole/AssemblyInfo.cs | 58 +++ .../TestConsole/Class1.cs | 35 ++ .../TestConsole/TestConsole.csproj | 121 ++++++ .../TestConsole/TestConsole.csproj.user | 48 +++ .../TestConsole/app.config | 33 ++ .../bin/Debug/Application.Configuration.dll | Bin 0 -> 4608 bytes .../bin/Debug/Application.Configuration.pdb | Bin 0 -> 15872 bytes .../bin/Debug/SAF.Configuration.dll | Bin 0 -> 11776 bytes .../bin/Debug/SAF.Configuration.pdb | Bin 0 -> 54784 bytes .../bin/Debug/SAF.Library.Security.dll | Bin 0 -> 3584 bytes .../bin/Debug/SAF.Library.Security.pdb | Bin 0 -> 7680 bytes .../bin/Debug/TestConfigurationAgent.dll | Bin 0 -> 6144 bytes .../bin/Debug/TestConfigurationAgent.pdb | Bin 0 -> 15872 bytes .../TestConsole/bin/Debug/TestConsole.exe | Bin 0 -> 6144 bytes .../bin/Debug/TestConsole.exe.config | 33 ++ .../TestConsole/bin/Debug/TestConsole.pdb | Bin 0 -> 15872 bytes .../Web References.localhost.Reference.cs.dll | Bin 0 -> 4608 bytes .../TestConsole/obj/Debug/TestConsole.exe | Bin 0 -> 6144 bytes .../obj/Debug/TestConsole.exe.incr | Bin 0 -> 1956 bytes .../TestConsole/obj/Debug/TestConsole.pdb | Bin 0 -> 15872 bytes .../obj/Debug/TestConsole.projdata | Bin 0 -> 1672 bytes .../Test.SAF.MessageQueue.sln | 33 ++ .../Test.SAF.MessageQueue.suo | Bin 0 -> 18944 bytes SAF/Test.SAF.MessageQueue/TestConsole/App.ico | Bin 0 -> 1078 bytes .../TestConsole/AssemblyInfo.cs | 58 +++ .../TestConsole/Class1.cs | 76 ++++ .../TestConsole/TestConsole.csproj | 106 +++++ .../TestConsole/TestConsole.csproj.user | 48 +++ .../TestConsole/app.config | 20 + .../TestConsole/bin/Debug/Interop.MQAX200.dll | Bin 0 -> 122880 bytes .../bin/Debug/SAF.Configuration.dll | Bin 0 -> 11776 bytes .../bin/Debug/SAF.Configuration.pdb | Bin 0 -> 54784 bytes .../bin/Debug/SAF.MessageQueue.dll | Bin 0 -> 9728 bytes .../bin/Debug/SAF.MessageQueue.pdb | Bin 0 -> 36352 bytes .../TestConsole/bin/Debug/TestConsole.exe | Bin 0 -> 6144 bytes .../bin/Debug/TestConsole.exe.config | 20 + .../TestConsole/bin/Debug/TestConsole.pdb | Bin 0 -> 13824 bytes .../TestConsole/obj/Debug/TestConsole.exe | Bin 0 -> 6144 bytes .../obj/Debug/TestConsole.exe.incr | Bin 0 -> 1408 bytes .../TestConsole/obj/Debug/TestConsole.pdb | Bin 0 -> 13824 bytes .../obj/Debug/TestConsole.projdata | Bin 0 -> 3080 bytes .../Test.SAF.Transaction.sln | 33 ++ .../Test.SAF.Transaction.suo | Bin 0 -> 9216 bytes SAF/Test.SAF.Transaction/TestConsole/App.ico | Bin 0 -> 1078 bytes .../TestConsole/AssemblyInfo.cs | 58 +++ .../TestConsole/Class1.cs | 174 ++++++++ .../TestConsole/TestConsole.csproj | 107 +++++ .../TestConsole/TestConsole.csproj.user | 48 +++ .../TestConsole/bin/Debug/SAF.Transaction.dll | Bin 0 -> 6656 bytes .../TestConsole/bin/Debug/SAF.Transaction.pdb | Bin 0 -> 19968 bytes .../TestConsole/bin/Debug/TestConsole.exe | Bin 0 -> 7680 bytes .../TestConsole/bin/Debug/TestConsole.pdb | Bin 0 -> 15872 bytes .../TestConsole/obj/Debug/TestConsole.exe | Bin 0 -> 7680 bytes .../obj/Debug/TestConsole.exe.incr | Bin 0 -> 1582 bytes .../TestConsole/obj/Debug/TestConsole.pdb | Bin 0 -> 15872 bytes .../obj/Debug/TestConsole.projdata | Bin 0 -> 3720 bytes .../Test.Server.SAF.Cryptography.sln | 39 ++ .../Test.Server.SAF.Cryptography.suo | Bin 0 -> 24576 bytes .../TestConsole/App.ico | Bin 0 -> 1078 bytes .../TestConsole/AssemblyInfo.cs | 58 +++ .../TestConsole/Class1.cs | 28 ++ .../TestConsole/TestConsole.csproj | 116 ++++++ .../TestConsole/TestConsole.csproj.user | 48 +++ .../TestConsole/app.config | 59 +++ .../bin/Debug/Microsoft.Web.Services.dll | Bin 0 -> 311296 bytes .../bin/Debug/SAF.Configuration.dll | Bin 0 -> 11776 bytes .../bin/Debug/SAF.Configuration.pdb | Bin 0 -> 54784 bytes .../bin/Debug/SAF.Cryptography.dll | Bin 0 -> 24576 bytes .../bin/Debug/SAF.Cryptography.pdb | Bin 0 -> 69120 bytes .../bin/Debug/Test.BusinessLibrary.dll | Bin 0 -> 4096 bytes .../bin/Debug/Test.BusinessLibrary.pdb | Bin 0 -> 13824 bytes .../TestConsole/bin/Debug/TestConsole.exe | Bin 0 -> 5632 bytes .../bin/Debug/TestConsole.exe.config | 59 +++ .../TestConsole/bin/Debug/TestConsole.pdb | Bin 0 -> 11776 bytes .../TestConsole/obj/Debug/TestConsole.exe | Bin 0 -> 5632 bytes .../obj/Debug/TestConsole.exe.incr | Bin 0 -> 1842 bytes .../TestConsole/obj/Debug/TestConsole.pdb | Bin 0 -> 11776 bytes .../obj/Debug/TestConsole.projdata | Bin 0 -> 1672 bytes .../Test.Server.SAF.EventNotification.sln | 33 ++ .../Test.Server.SAF.EventNotification.suo | Bin 0 -> 12800 bytes .../TestConsole/App.ico | Bin 0 -> 1078 bytes .../TestConsole/AssemblyInfo.cs | 58 +++ .../TestConsole/Class1.cs | 39 ++ .../TestConsole/TestConsole.csproj | 116 ++++++ .../TestConsole/TestConsole.csproj.user | 48 +++ .../TestConsole/app.config | 14 + .../bin/Debug/SAF.Configuration.dll | Bin 0 -> 11776 bytes .../bin/Debug/SAF.Configuration.pdb | Bin 0 -> 54784 bytes .../bin/Debug/SAF.EventNotification.dll | Bin 0 -> 6144 bytes .../bin/Debug/SAF.EventNotification.pdb | Bin 0 -> 19968 bytes .../bin/Debug/SAF.Library.Security.dll | Bin 0 -> 3584 bytes .../bin/Debug/SAF.Library.Security.pdb | Bin 0 -> 7680 bytes .../TestConsole/bin/Debug/TestConsole.exe | Bin 0 -> 6144 bytes .../bin/Debug/TestConsole.exe.config | 14 + .../TestConsole/bin/Debug/TestConsole.pdb | Bin 0 -> 13824 bytes .../TestConsole/obj/Debug/TestConsole.exe | Bin 0 -> 6144 bytes .../obj/Debug/TestConsole.exe.incr | Bin 0 -> 1882 bytes .../TestConsole/obj/Debug/TestConsole.pdb | Bin 0 -> 13824 bytes .../obj/Debug/TestConsole.projdata | Bin 0 -> 1672 bytes SAF/readme.txt | 9 + SAF_VS2003/SAF/Certificates/CompanyA.pfx | Bin 0 -> 2244 bytes .../SAF/Certificates/CompanyA_PublicKey.cer | 23 + SAF_VS2003/SAF/Certificates/CompanyB.pfx | Bin 0 -> 2244 bytes .../SAF/Certificates/CompanyB_PublicKey.cer | 23 + SAF_VS2003/SAF/Certificates/Dell420.cer | 21 + SAF_VS2003/SAF/Certificates/XinChen.pfx | Bin 0 -> 2210 bytes .../AssemblyInfo.cs | 58 +++ .../ConfigurationManager.cs | 28 ++ .../DocumentLayerConfiguration.cs | 36 ++ .../SAF.Application.Configuration.csproj | 110 +++++ .../SAF.Application.Configuration.csproj.user | 48 +++ .../WorkFlowConfiguration.cs | 34 ++ .../Debug/SAF.Application.Configuration.dll | Bin 0 -> 16384 bytes .../Debug/SAF.Application.Configuration.pdb | Bin 0 -> 19968 bytes .../Debug/SAF.Application.Configuration.dll | Bin 0 -> 16384 bytes .../SAF.Application.Configuration.dll.incr | Bin 0 -> 1888 bytes .../Debug/SAF.Application.Configuration.pdb | Bin 0 -> 19968 bytes .../SAF.Application.Configuration.projdata | Bin 0 -> 3848 bytes .../SAF.Application.Configuration.projdata1 | Bin 0 -> 2824 bytes .../AssemblyInfo.cs | 58 +++ .../SAF.Application.DocumentLayer/Class1.cs | 17 + .../DocumentBlankLayer.cs | 73 ++++ .../DocumentLayer.cs | 107 +++++ .../SAF.Application.DocumentLayer.csproj | 105 +++++ .../SAF.Application.DocumentLayer.csproj.user | 48 +++ .../Debug/SAF.Application.Configuration.dll | Bin 0 -> 4608 bytes .../Debug/SAF.Application.Configuration.pdb | Bin 0 -> 13824 bytes .../Debug/SAF.Application.DocumentLayer.dll | Bin 0 -> 16384 bytes .../Debug/SAF.Application.DocumentLayer.pdb | Bin 0 -> 19968 bytes .../Debug/SAF.Application.DocumentLayer.dll | Bin 0 -> 16384 bytes .../SAF.Application.DocumentLayer.dll.incr | Bin 0 -> 1652 bytes .../Debug/SAF.Application.DocumentLayer.pdb | Bin 0 -> 19968 bytes .../SAF.Application.DocumentLayer.projdata | Bin 0 -> 5128 bytes .../SAF.Application.DocumentLayer.projdata1 | Bin 0 -> 5128 bytes .../SAF.Application.DocumentLayer.projdata2 | Bin 0 -> 5128 bytes .../SAF.Application.Workflow/AssemblyInfo.cs | 58 +++ .../SAF/SAF.Application.Workflow/Class1.cs | 17 + .../SAF.Application.Workflow.csproj | 105 +++++ .../SAF.Application.Workflow.csproj.user | 48 +++ .../SAF/SAF.Application.Workflow/Workflow.cs | 26 ++ .../Debug/SAF.Application.DocumentLayer.dll | Bin 0 -> 16384 bytes .../Debug/SAF.Application.DocumentLayer.pdb | Bin 0 -> 19968 bytes .../bin/Debug/SAF.Application.Workflow.dll | Bin 0 -> 16384 bytes .../bin/Debug/SAF.Application.Workflow.pdb | Bin 0 -> 11776 bytes .../obj/Debug/SAF.Application.Workflow.dll | Bin 0 -> 16384 bytes .../Debug/SAF.Application.Workflow.dll.incr | Bin 0 -> 1600 bytes .../obj/Debug/SAF.Application.Workflow.pdb | Bin 0 -> 11776 bytes .../Debug/SAF.Application.Workflow.projdata | Bin 0 -> 1672 bytes .../Debug/SAF.Application.Workflow.projdata1 | Bin 0 -> 1672 bytes .../ADAuthenticationProvider.cs | 111 +++++ .../SAF/SAF.Authentication/AssemblyInfo.cs | 58 +++ SAF_VS2003/SAF/SAF.Authentication/Class1.cs | 17 + .../SAF.Authentication.csproj | 125 ++++++ .../SAF.Authentication.csproj.user | 48 +++ .../SAF/SAF.Authentication/SAFIdentity.cs | 66 +++ .../SAF/SAF.Authentication/SAFPrincipal.cs | 77 ++++ .../bin/Debug/SAF.Authentication.dll | Bin 0 -> 20480 bytes .../bin/Debug/SAF.Authentication.pdb | Bin 0 -> 26112 bytes .../bin/Debug/SAF.Configuration.dll | Bin 0 -> 24576 bytes .../bin/Debug/SAF.Configuration.pdb | Bin 0 -> 56832 bytes .../bin/Debug/SAF.Utility.dll | Bin 0 -> 16384 bytes .../bin/Debug/SAF.Utility.pdb | Bin 0 -> 13824 bytes .../obj/Debug/SAF.Authentication.dll | Bin 0 -> 20480 bytes .../obj/Debug/SAF.Authentication.dll.incr | Bin 0 -> 2274 bytes .../obj/Debug/SAF.Authentication.pdb | Bin 0 -> 26112 bytes .../obj/Debug/SAF.Authentication.projdata | Bin 0 -> 7816 bytes .../obj/Debug/SAF.Authentication.projdata1 | Bin 0 -> 7048 bytes .../SAF/SAF.Authorization/AssemblyInfo.cs | 58 +++ SAF_VS2003/SAF/SAF.Authorization/Class1.cs | 17 + .../DefaultAuthorizationProvider.cs | 136 ++++++ .../SAF.Authorization.csproj | 120 ++++++ .../SAF.Authorization.csproj.user | 48 +++ .../SAF.Authorization/SAFSecurityAttribute.cs | 42 ++ .../SAFSecurityPermission.cs | 113 +++++ .../bin/Debug/SAF.Authorization.dll | Bin 0 -> 20480 bytes .../bin/Debug/SAF.Authorization.pdb | Bin 0 -> 32256 bytes .../bin/Debug/SAF.Configuration.dll | Bin 0 -> 24576 bytes .../bin/Debug/SAF.Configuration.pdb | Bin 0 -> 56832 bytes .../bin/Debug/SAF.Library.Security.dll | Bin 0 -> 16384 bytes .../bin/Debug/SAF.Library.Security.pdb | Bin 0 -> 9728 bytes .../obj/Debug/SAF.Authorization.dll | Bin 0 -> 20480 bytes .../obj/Debug/SAF.Authorization.dll.incr | Bin 0 -> 2154 bytes .../obj/Debug/SAF.Authorization.pdb | Bin 0 -> 32256 bytes .../obj/Debug/SAF.Authorization.projdata | Bin 0 -> 6792 bytes .../obj/Debug/SAF.Authorization.projdata1 | Bin 0 -> 11016 bytes SAF_VS2003/SAF/SAF.Cache/AssemblyInfo.cs | 58 +++ SAF_VS2003/SAF/SAF.Cache/Cache.cs | 241 +++++++++++ .../SAF/SAF.Cache/DefaultCacheStrategy.cs | 51 +++ SAF_VS2003/SAF/SAF.Cache/SAF.Cache.csproj | 110 +++++ .../SAF/SAF.Cache/SAF.Cache.csproj.user | 48 +++ .../SAF/SAF.Cache/bin/Debug/SAF.Cache.dll | Bin 0 -> 20480 bytes .../SAF/SAF.Cache/bin/Debug/SAF.Cache.pdb | Bin 0 -> 22016 bytes .../SAF.Cache/bin/Debug/SAF.Configuration.dll | Bin 0 -> 24576 bytes .../SAF.Cache/bin/Debug/SAF.Configuration.pdb | Bin 0 -> 56832 bytes .../bin/Debug/SAF.Library.Security.dll | Bin 0 -> 3584 bytes .../bin/Debug/SAF.Library.Security.pdb | Bin 0 -> 7680 bytes .../SAF/SAF.Cache/obj/Debug/SAF.Cache.dll | Bin 0 -> 20480 bytes .../SAF.Cache/obj/Debug/SAF.Cache.dll.incr | Bin 0 -> 1608 bytes .../SAF/SAF.Cache/obj/Debug/SAF.Cache.pdb | Bin 0 -> 22016 bytes .../SAF.Cache/obj/Debug/SAF.Cache.projdata | Bin 0 -> 7304 bytes .../SAF.Cache/obj/Debug/SAF.Cache.projdata1 | Bin 0 -> 4872 bytes .../SAF/SAF.ClassFactory/AssemblyInfo.cs | 58 +++ SAF_VS2003/SAF/SAF.ClassFactory/Class1.cs | 46 ++ .../SAF.ClassFactory/SAF.ClassFactory.csproj | 105 +++++ .../SAF.ClassFactory.csproj.user | 48 +++ .../bin/Debug/SAF.ClassFactory.dll | Bin 0 -> 16384 bytes .../bin/Debug/SAF.ClassFactory.pdb | Bin 0 -> 13824 bytes .../bin/Debug/SAF.Configuration.dll | Bin 0 -> 24576 bytes .../bin/Debug/SAF.Configuration.pdb | Bin 0 -> 56832 bytes .../bin/Debug/SAF.Library.Security.dll | Bin 0 -> 3584 bytes .../bin/Debug/SAF.Library.Security.pdb | Bin 0 -> 7680 bytes .../obj/Debug/SAF.ClassFactory.dll | Bin 0 -> 16384 bytes .../obj/Debug/SAF.ClassFactory.dll.incr | Bin 0 -> 1492 bytes .../obj/Debug/SAF.ClassFactory.pdb | Bin 0 -> 13824 bytes .../obj/Debug/SAF.ClassFactory.projdata | Bin 0 -> 1800 bytes .../obj/Debug/SAF.ClassFactory.projdata1 | Bin 0 -> 2440 bytes .../SAF/SAF.Configuration/AssemblyInfo.cs | 58 +++ .../AuthenticationConfiguration.cs | 71 ++++ .../AuthorizationConfiguration.cs | 91 ++++ .../SAF.Configuration/CacheConfigration.cs | 29 ++ .../ClassFactoryConfiguration.cs | 31 ++ .../ConfigurationAgentManager.cs | 77 ++++ .../SAF.Configuration/ConfigurationManager.cs | 71 ++++ .../CryptographyConfiguration.cs | 139 ++++++ .../EventNotificationConfiguration.cs | 47 +++ .../MessageQueueConfiguration.cs | 42 ++ .../SAF.Configuration.csproj | 145 +++++++ .../SAF.Configuration.csproj.user | 48 +++ .../SAF.Configuration/ServiceConfiguration.cs | 23 + .../bin/Debug/SAF.Configuration.dll | Bin 0 -> 24576 bytes .../bin/Debug/SAF.Configuration.pdb | Bin 0 -> 56832 bytes .../bin/Debug/SAF.Library.Security.dll | Bin 0 -> 3584 bytes .../bin/Debug/SAF.Library.Security.pdb | Bin 0 -> 7680 bytes .../bin/Release/SAF.Configuration.dll | Bin 0 -> 11264 bytes .../obj/Debug/SAF.Configuration.dll | Bin 0 -> 24576 bytes .../obj/Debug/SAF.Configuration.dll.incr | Bin 0 -> 3206 bytes .../obj/Debug/SAF.Configuration.pdb | Bin 0 -> 56832 bytes .../obj/Debug/SAF.Configuration.projdata | Bin 0 -> 21128 bytes .../obj/Debug/SAF.Configuration.projdata1 | Bin 0 -> 21128 bytes .../obj/Debug/SAF.Configuration.projdata2 | Bin 0 -> 25224 bytes .../Web References.localhost.Reference.cs.dll | Bin 0 -> 4608 bytes .../obj/Release/SAF.Configuration.dll | Bin 0 -> 11264 bytes .../obj/Release/SAF.Configuration.projdata | Bin 0 -> 18056 bytes .../SAF/SAF.Cryptography/AssemblyInfo.cs | 58 +++ .../SAF/SAF.Cryptography/Certificate.cs | 51 +++ .../CryptRemotingSinkHelper.cs | 134 ++++++ .../CryptoRemotingClientSink.cs | 134 ++++++ .../CryptoRemotingServerSink.cs | 133 ++++++ .../SAF/SAF.Cryptography/EnDecryption.cs | 357 ++++++++++++++++ .../SAF.Cryptography/SAF.Cryptography.csproj | 146 +++++++ .../SAF.Cryptography.csproj.user | 48 +++ .../bin/Debug/Microsoft.Web.Services.dll | Bin 0 -> 311296 bytes .../bin/Debug/SAF.Configuration.dll | Bin 0 -> 24576 bytes .../bin/Debug/SAF.Configuration.pdb | Bin 0 -> 56832 bytes .../bin/Debug/SAF.Cryptography.dll | Bin 0 -> 24576 bytes .../bin/Debug/SAF.Cryptography.pdb | Bin 0 -> 69120 bytes .../bin/Microsoft.Web.Services.dll | Bin 0 -> 311296 bytes .../obj/Debug/SAF.Cryptography.dll | Bin 0 -> 24576 bytes .../obj/Debug/SAF.Cryptography.dll.incr | Bin 0 -> 2828 bytes .../obj/Debug/SAF.Cryptography.pdb | Bin 0 -> 69120 bytes .../obj/Debug/SAF.Cryptography.projdata | Bin 0 -> 22536 bytes .../obj/Debug/SAF.Cryptography.projdata1 | Bin 0 -> 22536 bytes .../obj/Debug/SAF.Cryptography.projdata2 | Bin 0 -> 31752 bytes .../obj/Release/SAF.Cryptography.dll | Bin 0 -> 13312 bytes .../obj/Release/SAF.Cryptography.projdata | Bin 0 -> 30088 bytes .../SAF/SAF.EventNotification/AssemblyInfo.cs | 58 +++ .../SAF/SAF.EventNotification/EventClient.cs | 125 ++++++ .../SAF/SAF.EventNotification/EventServer.cs | 113 +++++ .../SAF.EventNotification.csproj | 110 +++++ .../SAF.EventNotification.csproj.user | 48 +++ .../bin/Debug/SAF.EventNotification.dll | Bin 0 -> 20480 bytes .../bin/Debug/SAF.EventNotification.pdb | Bin 0 -> 22016 bytes .../obj/Debug/SAF.EventNotification.dll | Bin 0 -> 20480 bytes .../obj/Debug/SAF.EventNotification.dll.incr | Bin 0 -> 1726 bytes .../obj/Debug/SAF.EventNotification.pdb | Bin 0 -> 22016 bytes .../obj/Debug/SAF.EventNotification.projdata | Bin 0 -> 12808 bytes .../obj/Debug/SAF.EventNotification.projdata1 | Bin 0 -> 7048 bytes .../obj/Debug/SAF.EventNotification.projdata2 | Bin 0 -> 5000 bytes .../SAF/SAF.Library.Security/AssemblyInfo.cs | 58 +++ SAF_VS2003/SAF/SAF.Library.Security/Class1.cs | 12 + .../SAF.Library.Security.csproj | 100 +++++ .../SAF.Library.Security.csproj.user | 48 +++ .../bin/Debug/SAF.Library.Security.dll | Bin 0 -> 16384 bytes .../bin/Debug/SAF.Library.Security.pdb | Bin 0 -> 9728 bytes .../obj/Debug/SAF.Library.Security.dll | Bin 0 -> 16384 bytes .../obj/Debug/SAF.Library.Security.dll.incr | Bin 0 -> 1326 bytes .../obj/Debug/SAF.Library.Security.pdb | Bin 0 -> 9728 bytes .../obj/Debug/SAF.Library.Security.projdata | Bin 0 -> 1288 bytes .../obj/Debug/SAF.Library.Security.projdata1 | Bin 0 -> 1288 bytes .../AssemblyInfo.cs | 58 +++ .../SAF/SAF.Library.WindowsService/Class1.cs | 18 + .../SAF.Library.WindowsService.csproj | 105 +++++ .../SAF.Library.WindowsService.csproj.user | 48 +++ .../bin/Debug/SAF.Library.WindowsService.dll | Bin 0 -> 16384 bytes .../bin/Debug/SAF.Library.WindowsService.pdb | Bin 0 -> 13824 bytes .../bin/Debug/SAF.Utility.dll | Bin 0 -> 16384 bytes .../bin/Debug/SAF.Utility.pdb | Bin 0 -> 13824 bytes .../obj/Debug/SAF.Library.WindowsService.dll | Bin 0 -> 16384 bytes .../Debug/SAF.Library.WindowsService.dll.incr | Bin 0 -> 1572 bytes .../obj/Debug/SAF.Library.WindowsService.pdb | Bin 0 -> 13824 bytes .../Debug/SAF.Library.WindowsService.projdata | Bin 0 -> 1416 bytes .../SAF/SAF.MessageQueue/AssemblyInfo.cs | 58 +++ SAF_VS2003/SAF/SAF.MessageQueue/MQSeries.cs | 203 +++++++++ SAF_VS2003/SAF/SAF.MessageQueue/MSMQ.cs | 183 ++++++++ .../SAF/SAF.MessageQueue/MessageQueue.cs | 49 +++ .../SAF.MessageQueue/MessageQueueManager.cs | 81 ++++ .../SAF.MessageQueue/SAF.MessageQueue.csproj | 136 ++++++ .../SAF.MessageQueue.csproj.user | 48 +++ .../bin/Debug/Interop.MQAX200.dll | Bin 0 -> 122880 bytes .../bin/Debug/SAF.Configuration.dll | Bin 0 -> 24576 bytes .../bin/Debug/SAF.Configuration.pdb | Bin 0 -> 56832 bytes .../bin/Debug/SAF.MessageQueue.dll | Bin 0 -> 20480 bytes .../bin/Debug/SAF.MessageQueue.pdb | Bin 0 -> 36352 bytes .../SAF.MessageQueue/bin/Interop.MQAX200.dll | Bin 0 -> 122880 bytes .../obj/Debug/SAF.MessageQueue.dll | Bin 0 -> 20480 bytes .../obj/Debug/SAF.MessageQueue.dll.incr | Bin 0 -> 2396 bytes .../obj/Debug/SAF.MessageQueue.pdb | Bin 0 -> 36352 bytes .../obj/Debug/SAF.MessageQueue.projdata | Bin 0 -> 12680 bytes .../obj/Debug/SAF.MessageQueue.projdata1 | Bin 0 -> 11272 bytes .../SAF.MessageQueue/obj/Interop.MQAX200.dll | Bin 0 -> 122880 bytes SAF_VS2003/SAF/SAF.TestConsole/App.ico | Bin 0 -> 1078 bytes .../SAF/SAF.TestConsole/AssemblyInfo.cs | 58 +++ SAF_VS2003/SAF/SAF.TestConsole/Class1.cs | 31 ++ .../SAF.TestConsole/SAF.TestConsole.csproj | 102 +++++ .../SAF.TestConsole.csproj.user | 48 +++ .../bin/Debug/SAF.TestConsole.exe | Bin 0 -> 5632 bytes .../bin/Debug/SAF.TestConsole.pdb | Bin 0 -> 11776 bytes .../SAF.TestConsole/bin/Debug/SAF.Utility.dll | Bin 0 -> 4608 bytes .../SAF.TestConsole/bin/Debug/SAF.Utility.pdb | Bin 0 -> 13824 bytes .../obj/Debug/SAF.TestConsole.exe | Bin 0 -> 5632 bytes .../obj/Debug/SAF.TestConsole.exe.incr | Bin 0 -> 1262 bytes .../obj/Debug/SAF.TestConsole.pdb | Bin 0 -> 11776 bytes .../obj/Debug/SAF.TestConsole.projdata | Bin 0 -> 1672 bytes .../SAF/SAF.Transaction/AssemblyInfo.cs | 58 +++ SAF_VS2003/SAF/SAF.Transaction/Class1.cs | 17 + .../SAF.Transaction/SAF.Transaction.csproj | 105 +++++ .../SAF.Transaction.csproj.user | 48 +++ .../SAF/SAF.Transaction/TransactionManager.cs | 240 +++++++++++ .../bin/Debug/SAF.Transaction.dll | Bin 0 -> 20480 bytes .../bin/Debug/SAF.Transaction.pdb | Bin 0 -> 19968 bytes .../obj/Debug/SAF.Transaction.dll | Bin 0 -> 20480 bytes .../obj/Debug/SAF.Transaction.dll.incr | Bin 0 -> 1550 bytes .../obj/Debug/SAF.Transaction.pdb | Bin 0 -> 19968 bytes .../obj/Debug/SAF.Transaction.projdata | Bin 0 -> 6280 bytes .../obj/Debug/SAF.Transaction.projdata1 | Bin 0 -> 5512 bytes SAF_VS2003/SAF/SAF.Utility/AssemblyInfo.cs | 58 +++ SAF_VS2003/SAF/SAF.Utility/Class1.cs | 143 +++++++ SAF_VS2003/SAF/SAF.Utility/SAF.Utility.csproj | 100 +++++ .../SAF/SAF.Utility/SAF.Utility.csproj.user | 48 +++ .../SAF/SAF.Utility/bin/Debug/SAF.Utility.dll | Bin 0 -> 16384 bytes .../SAF/SAF.Utility/bin/Debug/SAF.Utility.pdb | Bin 0 -> 13824 bytes .../SAF/SAF.Utility/obj/Debug/SAF.Utility.dll | Bin 0 -> 16384 bytes .../obj/Debug/SAF.Utility.dll.incr | Bin 0 -> 1262 bytes .../SAF/SAF.Utility/obj/Debug/SAF.Utility.pdb | Bin 0 -> 13824 bytes .../obj/Debug/SAF.Utility.projdata | Bin 0 -> 4104 bytes .../obj/Debug/SAF.Utility.projdata1 | Bin 0 -> 4744 bytes .../SAF/SAF.WindowsService/AssemblyInfo.cs | 58 +++ .../SAF/SAF.WindowsService/EmptyService.cs | 59 +++ .../SAF.WindowsService/ProjectInstaller.cs | 57 +++ .../SAF.WindowsService/ProjectInstaller.resx | 111 +++++ .../SAF.WindowsService.csproj | 159 +++++++ .../SAF.WindowsService.csproj.user | 48 +++ .../SecuritySwitchThread.cs | 78 ++++ SAF_VS2003/SAF/SAF.WindowsService/Service1.cs | 165 ++++++++ .../SAF/SAF.WindowsService/Service1.resx | 42 ++ SAF_VS2003/SAF/SAF.WindowsService/app.config | 18 + .../bin/Debug/InstallUtil.InstallLog | 394 ++++++++++++++++++ .../bin/Debug/SAF.Configuration.dll | Bin 0 -> 24576 bytes .../bin/Debug/SAF.Configuration.pdb | Bin 0 -> 56832 bytes .../bin/Debug/SAF.Library.Security.dll | Bin 0 -> 3584 bytes .../bin/Debug/SAF.Library.Security.pdb | Bin 0 -> 7680 bytes .../bin/Debug/SAF.Library.WindowsService.dll | Bin 0 -> 16384 bytes .../bin/Debug/SAF.Library.WindowsService.pdb | Bin 0 -> 13824 bytes .../bin/Debug/SAF.Utility.dll | Bin 0 -> 16384 bytes .../bin/Debug/SAF.Utility.pdb | Bin 0 -> 13824 bytes .../bin/Debug/SAF.WindowsService.exe | Bin 0 -> 20480 bytes .../bin/Debug/SAF.WindowsService.exe.config | 18 + .../bin/Debug/SAF.WindowsService.pdb | Bin 0 -> 28160 bytes .../bin/Debug/saf.windowsservice.InstallLog | 364 ++++++++++++++++ .../bin/Debug/saf.windowsservice.InstallState | 117 ++++++ ....WindowsService.ProjectInstaller.resources | Bin 0 -> 1102 bytes .../SAF.WindowsService.Service1.resources | Bin 0 -> 188 bytes .../obj/Debug/SAF.WindowsService.exe | Bin 0 -> 20480 bytes .../obj/Debug/SAF.WindowsService.exe.incr | Bin 0 -> 3614 bytes .../obj/Debug/SAF.WindowsService.pdb | Bin 0 -> 28160 bytes .../obj/Debug/SAF.WindowsService.projdata | Bin 0 -> 7432 bytes SAF_VS2003/SAF/SAF.sln | 141 +++++++ SAF_VS2003/SAF/SAF.sln.old | 111 +++++ SAF_VS2003/SAF/SAF.snk | Bin 0 -> 596 bytes SAF_VS2003/SAF/SAF.suo | Bin 0 -> 23040 bytes .../SAF/Setup/Certificates/CompanyA.pfx | Bin 0 -> 2244 bytes .../Setup/Certificates/CompanyA_PublicKey.cer | 23 + .../SAF/Setup/Certificates/CompanyB.pfx | Bin 0 -> 2244 bytes .../Setup/Certificates/CompanyB_PublicKey.cer | 23 + SAF_VS2003/SAF/Setup/Certificates/Dell420.cer | 21 + SAF_VS2003/SAF/Setup/SAFDemo.sql | 23 + .../SAF/Test.BusinessLibrary/AssemblyInfo.cs | 58 +++ SAF_VS2003/SAF/Test.BusinessLibrary/Class1.cs | 22 + .../Test.BusinessLibrary.csproj | 100 +++++ .../Test.BusinessLibrary.csproj.user | 48 +++ .../bin/Debug/Test.BusinessLibrary.dll | Bin 0 -> 16384 bytes .../bin/Debug/Test.BusinessLibrary.pdb | Bin 0 -> 13824 bytes .../bin/Release/Test.BusinessLibrary.dll | Bin 0 -> 4096 bytes .../obj/Debug/Test.BusinessLibrary.dll | Bin 0 -> 16384 bytes .../obj/Debug/Test.BusinessLibrary.dll.incr | Bin 0 -> 1334 bytes .../obj/Debug/Test.BusinessLibrary.pdb | Bin 0 -> 13824 bytes .../obj/Debug/Test.BusinessLibrary.projdata | Bin 0 -> 1288 bytes .../obj/Debug/Test.BusinessLibrary.projdata1 | Bin 0 -> 1288 bytes .../obj/Release/Test.BusinessLibrary.dll | Bin 0 -> 4096 bytes .../obj/Release/Test.BusinessLibrary.projdata | Bin 0 -> 1416 bytes .../Test.Client.SAF.Cryptography.sln | 45 ++ .../Test.Client.SAF.Cryptography.sln.old | 39 ++ .../Test.Client.SAF.Cryptography.suo | Bin 0 -> 14336 bytes .../TestConsole/App.ico | Bin 0 -> 1078 bytes .../TestConsole/AssemblyInfo.cs | 58 +++ .../TestConsole/Class1.cs | 55 +++ .../TestConsole/TestConsole.csproj | 123 ++++++ .../TestConsole/TestConsole.csproj.user | 48 +++ .../TestConsole/app.config | 69 +++ .../bin/Debug/Microsoft.Web.Services.dll | Bin 0 -> 311296 bytes .../bin/Debug/SAF.Configuration.dll | Bin 0 -> 24576 bytes .../bin/Debug/SAF.Configuration.pdb | Bin 0 -> 56832 bytes .../bin/Debug/SAF.Cryptography.dll | Bin 0 -> 24576 bytes .../bin/Debug/SAF.Cryptography.pdb | Bin 0 -> 69120 bytes .../bin/Debug/Test.BusinessLibrary.dll | Bin 0 -> 16384 bytes .../bin/Debug/Test.BusinessLibrary.pdb | Bin 0 -> 13824 bytes .../TestConsole/bin/Debug/TestConsole.exe | Bin 0 -> 16384 bytes .../bin/Debug/TestConsole.exe.config | 69 +++ .../TestConsole/bin/Debug/TestConsole.pdb | Bin 0 -> 13824 bytes .../TestConsole/obj/Debug/TestConsole.exe | Bin 0 -> 16384 bytes .../obj/Debug/TestConsole.exe.incr | Bin 0 -> 2154 bytes .../TestConsole/obj/Debug/TestConsole.pdb | Bin 0 -> 13824 bytes .../obj/Debug/TestConsole.projdata | Bin 0 -> 2312 bytes .../Test.Client.SAF.EventNotification.sln | 37 ++ .../Test.Client.SAF.EventNotification.sln.old | 33 ++ .../Test.Client.SAF.EventNotification.suo | Bin 0 -> 13312 bytes .../TestConsole/App.ico | Bin 0 -> 1078 bytes .../TestConsole/AssemblyInfo.cs | 58 +++ .../TestConsole/Class1.cs | 54 +++ .../TestConsole/TestConsole.csproj | 118 ++++++ .../TestConsole/TestConsole.csproj.user | 48 +++ .../TestConsole/app.config | 14 + .../bin/Debug/SAF.Configuration.dll | Bin 0 -> 24576 bytes .../bin/Debug/SAF.Configuration.pdb | Bin 0 -> 56832 bytes .../bin/Debug/SAF.EventNotification.dll | Bin 0 -> 20480 bytes .../bin/Debug/SAF.EventNotification.pdb | Bin 0 -> 22016 bytes .../bin/Debug/SAF.Library.Security.dll | Bin 0 -> 3584 bytes .../bin/Debug/SAF.Library.Security.pdb | Bin 0 -> 7680 bytes .../TestConsole/bin/Debug/TestConsole.exe | Bin 0 -> 16384 bytes .../bin/Debug/TestConsole.exe.config | 14 + .../TestConsole/bin/Debug/TestConsole.pdb | Bin 0 -> 13824 bytes .../TestConsole/obj/Debug/TestConsole.exe | Bin 0 -> 16384 bytes .../obj/Debug/TestConsole.exe.incr | Bin 0 -> 1970 bytes .../TestConsole/obj/Debug/TestConsole.pdb | Bin 0 -> 13824 bytes .../obj/Debug/TestConsole.projdata | Bin 0 -> 1672 bytes .../Test.SAF.Application.DocumentLayer.sln | 53 +++ ...Test.SAF.Application.DocumentLayer.sln.old | 45 ++ .../Test.SAF.Application.DocumentLayer.suo | Bin 0 -> 14848 bytes .../TestConsole/App.ico | Bin 0 -> 1078 bytes .../TestConsole/AssemblyInfo.cs | 58 +++ .../TestConsole/Class1.cs | 51 +++ .../TestConsole/ConfirmationSample.xml | Bin 0 -> 314 bytes .../TestConsole/Confirmations.xsd | Bin 0 -> 1324 bytes .../TestConsole/Order.xsd | Bin 0 -> 2014 bytes .../TestConsole/OrderSample.xml | 12 + .../TestConsole/TestConsole.csproj | 144 +++++++ .../TestConsole/TestConsole.csproj.user | 48 +++ .../TestConsole/app.config | 22 + .../Debug/SAF.Application.Configuration.dll | Bin 0 -> 16384 bytes .../Debug/SAF.Application.Configuration.pdb | Bin 0 -> 19968 bytes .../Debug/SAF.Application.DocumentLayer.dll | Bin 0 -> 16384 bytes .../Debug/SAF.Application.DocumentLayer.pdb | Bin 0 -> 19968 bytes .../bin/Debug/SAF.Configuration.dll | Bin 0 -> 24576 bytes .../bin/Debug/SAF.Configuration.pdb | Bin 0 -> 56832 bytes .../TestConsole/bin/Debug/TestConsole.exe | Bin 0 -> 16384 bytes .../bin/Debug/TestConsole.exe.config | 22 + .../TestConsole/bin/Debug/TestConsole.pdb | Bin 0 -> 13824 bytes .../bin/Debug/TestDocumentLayer.dll | Bin 0 -> 20480 bytes .../bin/Debug/TestDocumentLayer.pdb | Bin 0 -> 40448 bytes .../TestConsole/obj/Debug/TestConsole.exe | Bin 0 -> 16384 bytes .../obj/Debug/TestConsole.exe.incr | Bin 0 -> 2520 bytes .../TestConsole/obj/Debug/TestConsole.pdb | Bin 0 -> 13824 bytes .../obj/Debug/TestConsole.projdata | Bin 0 -> 1544 bytes .../obj/Debug/TestConsole.projdata1 | Bin 0 -> 1672 bytes .../TestDocumentLayer/AssemblyInfo.cs | 58 +++ .../DocumentDoSomeWorkLayer.cs | 83 ++++ .../TestDocumentLayer/DocumentLoggingLayer.cs | 149 +++++++ .../DocumentXmlValidationLayer.cs | 102 +++++ .../TestDocumentLayer.csproj | 115 +++++ .../TestDocumentLayer.csproj.user | 48 +++ .../Debug/SAF.Application.DocumentLayer.dll | Bin 0 -> 16384 bytes .../Debug/SAF.Application.DocumentLayer.pdb | Bin 0 -> 19968 bytes .../bin/Debug/TestDocumentLayer.dll | Bin 0 -> 20480 bytes .../bin/Debug/TestDocumentLayer.pdb | Bin 0 -> 40448 bytes .../obj/Debug/TestDocumentLayer.dll | Bin 0 -> 20480 bytes .../obj/Debug/TestDocumentLayer.dll.incr | Bin 0 -> 2392 bytes .../obj/Debug/TestDocumentLayer.pdb | Bin 0 -> 40448 bytes .../obj/Debug/TestDocumentLayer.projdata | Bin 0 -> 5896 bytes .../obj/Debug/TestDocumentLayer.projdata1 | Bin 0 -> 4872 bytes .../SAF/Test.SAF.Application.Workflow/App.ico | Bin 0 -> 1078 bytes .../AssemblyInfo.cs | 58 +++ .../Test.SAF.Application.Workflow/Class1.cs | 63 +++ .../ConfirmationSample.xml | Bin 0 -> 314 bytes .../Confirmations.xsd | Bin 0 -> 1324 bytes .../Test.SAF.Application.Workflow/Order.xsd | Bin 0 -> 2014 bytes .../OrderSample.xml | 12 + .../Test.SAF.Application.Workflow.csproj | 142 +++++++ .../Test.SAF.Application.Workflow.csproj.user | 48 +++ .../Test.SAF.Application.Workflow.sln | 69 +++ .../Test.SAF.Application.Workflow.sln.old | 57 +++ .../Test.SAF.Application.Workflow.suo | Bin 0 -> 14336 bytes .../TestConsole/App.ico | Bin 0 -> 1078 bytes .../TestConsole/AssemblyInfo.cs | 58 +++ .../TestConsole/Class1.cs | 63 +++ .../TestConsole/ConfirmationSample.xml | Bin 0 -> 314 bytes .../TestConsole/Confirmations.xsd | Bin 0 -> 1324 bytes .../TestConsole/Order.xsd | Bin 0 -> 2014 bytes .../TestConsole/OrderSample.xml | 12 + .../TestConsole/TestConsole.csproj | 149 +++++++ .../TestConsole/TestConsole.csproj.user | 48 +++ .../TestConsole/app.config | 30 ++ .../Debug/SAF.Application.Configuration.dll | Bin 0 -> 16384 bytes .../Debug/SAF.Application.Configuration.pdb | Bin 0 -> 19968 bytes .../Debug/SAF.Application.DocumentLayer.dll | Bin 0 -> 16384 bytes .../Debug/SAF.Application.DocumentLayer.pdb | Bin 0 -> 19968 bytes .../bin/Debug/SAF.Application.Workflow.dll | Bin 0 -> 16384 bytes .../bin/Debug/SAF.Application.Workflow.pdb | Bin 0 -> 11776 bytes .../bin/Debug/SAF.Configuration.dll | Bin 0 -> 24576 bytes .../bin/Debug/SAF.Configuration.pdb | Bin 0 -> 56832 bytes .../TestConsole/bin/Debug/TestConsole.exe | Bin 0 -> 16384 bytes .../bin/Debug/TestConsole.exe.config | 30 ++ .../TestConsole/bin/Debug/TestConsole.pdb | Bin 0 -> 13824 bytes .../bin/Debug/TestDocumentLayer.dll | Bin 0 -> 20480 bytes .../bin/Debug/TestDocumentLayer.pdb | Bin 0 -> 40448 bytes .../TestConsole/bin/Debug/TestWorkFlow.dll | Bin 0 -> 20480 bytes .../TestConsole/bin/Debug/TestWorkFlow.pdb | Bin 0 -> 36352 bytes .../TestConsole/obj/Debug/TestConsole.exe | Bin 0 -> 16384 bytes .../obj/Debug/TestConsole.exe.incr | Bin 0 -> 2680 bytes .../TestConsole/obj/Debug/TestConsole.pdb | Bin 0 -> 13824 bytes .../obj/Debug/TestConsole.projdata | Bin 0 -> 1672 bytes .../TestWorkFlow/AssemblyInfo.cs | 58 +++ .../TestWorkFlow/Component.cs | 133 ++++++ .../TestWorkFlow/DocumentWorkFlowLayer.cs | 104 +++++ .../TestWorkFlow/TestWorkFlow.csproj | 130 ++++++ .../TestWorkFlow/TestWorkFlow.csproj.user | 48 +++ .../TestWorkFlow/Visitor.cs | 132 ++++++ .../Debug/SAF.Application.Configuration.dll | Bin 0 -> 16384 bytes .../Debug/SAF.Application.Configuration.pdb | Bin 0 -> 19968 bytes .../Debug/SAF.Application.DocumentLayer.dll | Bin 0 -> 16384 bytes .../Debug/SAF.Application.DocumentLayer.pdb | Bin 0 -> 19968 bytes .../bin/Debug/SAF.Application.Workflow.dll | Bin 0 -> 16384 bytes .../bin/Debug/SAF.Application.Workflow.pdb | Bin 0 -> 11776 bytes .../TestWorkFlow/bin/Debug/TestWorkFlow.dll | Bin 0 -> 20480 bytes .../TestWorkFlow/bin/Debug/TestWorkFlow.pdb | Bin 0 -> 36352 bytes .../TestWorkFlow/obj/Debug/TestWorkFlow.dll | Bin 0 -> 20480 bytes .../obj/Debug/TestWorkFlow.dll.incr | Bin 0 -> 2906 bytes .../TestWorkFlow/obj/Debug/TestWorkFlow.pdb | Bin 0 -> 36352 bytes .../obj/Debug/TestWorkFlow.projdata | Bin 0 -> 9736 bytes .../Test.SAF.Application.Workflow/app.config | 30 ++ .../Debug/SAF.Application.Configuration.dll | Bin 0 -> 4608 bytes .../Debug/SAF.Application.Configuration.pdb | Bin 0 -> 19968 bytes .../Debug/SAF.Application.DocumentLayer.dll | Bin 0 -> 5632 bytes .../Debug/SAF.Application.DocumentLayer.pdb | Bin 0 -> 17920 bytes .../bin/Debug/SAF.Application.Workflow.dll | Bin 0 -> 4096 bytes .../bin/Debug/SAF.Application.Workflow.pdb | Bin 0 -> 11776 bytes .../bin/Debug/SAF.Configuration.dll | Bin 0 -> 11264 bytes .../bin/Debug/SAF.Configuration.pdb | Bin 0 -> 50688 bytes .../Debug/Test.SAF.Application.Workflow.exe | Bin 0 -> 6656 bytes .../Test.SAF.Application.Workflow.exe.config | 30 ++ .../Debug/Test.SAF.Application.Workflow.pdb | Bin 0 -> 13824 bytes .../bin/Debug/TestDocumentLayer.dll | Bin 0 -> 8192 bytes .../bin/Debug/TestDocumentLayer.pdb | Bin 0 -> 40448 bytes .../bin/Debug/TestWorkFlow.dll | Bin 0 -> 9216 bytes .../bin/Debug/TestWorkFlow.pdb | Bin 0 -> 34304 bytes .../Debug/Test.SAF.Application.Workflow.exe | Bin 0 -> 6656 bytes .../Test.SAF.Application.Workflow.exe.incr | Bin 0 -> 2108 bytes .../Debug/Test.SAF.Application.Workflow.pdb | Bin 0 -> 13824 bytes .../Test.SAF.Application.Workflow.projdata | Bin 0 -> 2184 bytes .../Test.SAF.Authentication.sln | 45 ++ .../Test.SAF.Authentication.sln.old | 39 ++ .../Test.SAF.Authentication.suo | Bin 0 -> 15360 bytes .../TestConsole/App.ico | Bin 0 -> 1078 bytes .../TestConsole/AssemblyInfo.cs | 58 +++ .../TestConsole/Class1.cs | 53 +++ .../TestConsole/TestConsole.csproj | 113 +++++ .../TestConsole/TestConsole.csproj.user | 48 +++ .../TestConsole/app.config | 26 ++ .../bin/Debug/SAF.Authentication.dll | Bin 0 -> 20480 bytes .../bin/Debug/SAF.Authentication.pdb | Bin 0 -> 26112 bytes .../bin/Debug/SAF.Configuration.dll | Bin 0 -> 24576 bytes .../bin/Debug/SAF.Configuration.pdb | Bin 0 -> 56832 bytes .../TestConsole/bin/Debug/SAF.Utility.dll | Bin 0 -> 16384 bytes .../TestConsole/bin/Debug/SAF.Utility.pdb | Bin 0 -> 13824 bytes .../TestConsole/bin/Debug/TestConsole.exe | Bin 0 -> 16384 bytes .../bin/Debug/TestConsole.exe.config | 26 ++ .../TestConsole/bin/Debug/TestConsole.pdb | Bin 0 -> 13824 bytes .../TestConsole/obj/Debug/TestConsole.exe | Bin 0 -> 16384 bytes .../obj/Debug/TestConsole.exe.incr | Bin 0 -> 1636 bytes .../TestConsole/obj/Debug/TestConsole.pdb | Bin 0 -> 13824 bytes .../obj/Debug/TestConsole.projdata | Bin 0 -> 1672 bytes .../Test.SAF.Authorization.sln | 47 +++ .../Test.SAF.Authorization.sln.old | 35 ++ .../Test.SAF.Authorization.suo | Bin 0 -> 22528 bytes .../TestConsole/App.ico | Bin 0 -> 1078 bytes .../TestConsole/AssemblyInfo.cs | 58 +++ .../TestConsole/Class1.cs | 63 +++ .../TestConsole/ImportantReadme.txt | 11 + .../TestConsole/TestConsole.csproj | 128 ++++++ .../TestConsole/TestConsole.csproj.user | 48 +++ .../TestConsole/app.config | 26 ++ .../bin/Debug/SAF.Configuration.dll | Bin 0 -> 24576 bytes .../bin/Debug/SAF.Configuration.pdb | Bin 0 -> 56832 bytes .../bin/Debug/SAF.Library.Security.dll | Bin 0 -> 16384 bytes .../bin/Debug/SAF.Library.Security.pdb | Bin 0 -> 9728 bytes .../TestConsole/bin/Debug/TestConsole.exe | Bin 0 -> 16384 bytes .../bin/Debug/TestConsole.exe.config | 26 ++ .../TestConsole/bin/Debug/TestConsole.pdb | Bin 0 -> 15872 bytes .../TestConsole/obj/Debug/TestConsole.exe | Bin 0 -> 16384 bytes .../obj/Debug/TestConsole.exe.incr | Bin 0 -> 2058 bytes .../TestConsole/obj/Debug/TestConsole.pdb | Bin 0 -> 15872 bytes .../obj/Debug/TestConsole.projdata | Bin 0 -> 1928 bytes .../SAF/Test.SAF.Cache/Test.SAF.Cache.sln | 37 ++ .../SAF/Test.SAF.Cache/Test.SAF.Cache.sln.old | 33 ++ .../SAF/Test.SAF.Cache/Test.SAF.Cache.suo | Bin 0 -> 10752 bytes .../SAF/Test.SAF.Cache/TestConsole/App.ico | Bin 0 -> 1078 bytes .../TestConsole/AssemblyInfo.cs | 58 +++ .../SAF/Test.SAF.Cache/TestConsole/Class1.cs | 47 +++ .../TestConsole/TestConsole.csproj | 118 ++++++ .../TestConsole/TestConsole.csproj.user | 48 +++ .../SAF/Test.SAF.Cache/TestConsole/app.config | 12 + .../TestConsole/bin/Debug/SAF.Cache.dll | Bin 0 -> 20480 bytes .../TestConsole/bin/Debug/SAF.Cache.pdb | Bin 0 -> 22016 bytes .../bin/Debug/SAF.Configuration.dll | Bin 0 -> 24576 bytes .../bin/Debug/SAF.Configuration.pdb | Bin 0 -> 56832 bytes .../bin/Debug/SAF.Library.Security.dll | Bin 0 -> 3584 bytes .../bin/Debug/SAF.Library.Security.pdb | Bin 0 -> 7680 bytes .../TestConsole/bin/Debug/TestConsole.exe | Bin 0 -> 16384 bytes .../bin/Debug/TestConsole.exe.config | 12 + .../TestConsole/bin/Debug/TestConsole.pdb | Bin 0 -> 13824 bytes .../TestConsole/obj/Debug/TestConsole.exe | Bin 0 -> 16384 bytes .../obj/Debug/TestConsole.exe.incr | Bin 0 -> 1756 bytes .../TestConsole/obj/Debug/TestConsole.pdb | Bin 0 -> 13824 bytes .../obj/Debug/TestConsole.projdata | Bin 0 -> 1288 bytes .../Test.SAF.ClassFactory.sln | 45 ++ .../Test.SAF.ClassFactory.sln.old | 39 ++ .../Test.SAF.ClassFactory.suo | Bin 0 -> 14848 bytes .../TestConcreteFactory/AssemblyInfo.cs | 58 +++ .../TestConcreteFactory.cs | 192 +++++++++ .../TestConcreteFactory.csproj | 100 +++++ .../TestConcreteFactory.csproj.user | 48 +++ .../bin/Debug/TestConcreteFactory.dll | Bin 0 -> 16384 bytes .../bin/Debug/TestConcreteFactory.pdb | Bin 0 -> 24064 bytes .../obj/Debug/TestConcreteFactory.dll | Bin 0 -> 16384 bytes .../obj/Debug/TestConcreteFactory.dll.incr | Bin 0 -> 1564 bytes .../obj/Debug/TestConcreteFactory.pdb | Bin 0 -> 24064 bytes .../obj/Debug/TestConcreteFactory.projdata | Bin 0 -> 5256 bytes .../Test.SAF.ClassFactory/TestConsole/App.ico | Bin 0 -> 1078 bytes .../TestConsole/AssemblyInfo.cs | 58 +++ .../TestConsole/TestConsole.cs | 57 +++ .../TestConsole/TestConsole.csproj | 123 ++++++ .../TestConsole/TestConsole.csproj.user | 48 +++ .../TestConsole/app.config | 27 ++ .../bin/Debug/SAF.ClassFactory.dll | Bin 0 -> 16384 bytes .../bin/Debug/SAF.ClassFactory.pdb | Bin 0 -> 13824 bytes .../bin/Debug/SAF.Configuration.dll | Bin 0 -> 24576 bytes .../bin/Debug/SAF.Configuration.pdb | Bin 0 -> 56832 bytes .../bin/Debug/SAF.Library.Security.dll | Bin 0 -> 3584 bytes .../bin/Debug/SAF.Library.Security.pdb | Bin 0 -> 7680 bytes .../bin/Debug/TestConcreteFactory.dll | Bin 0 -> 16384 bytes .../bin/Debug/TestConcreteFactory.pdb | Bin 0 -> 24064 bytes .../TestConsole/bin/Debug/TestConsole.exe | Bin 0 -> 16384 bytes .../bin/Debug/TestConsole.exe.config | 27 ++ .../TestConsole/bin/Debug/TestConsole.pdb | Bin 0 -> 13824 bytes .../TestConsole/obj/Debug/TestConsole.exe | Bin 0 -> 16384 bytes .../obj/Debug/TestConsole.exe.incr | Bin 0 -> 2078 bytes .../TestConsole/obj/Debug/TestConsole.pdb | Bin 0 -> 13824 bytes .../obj/Debug/TestConsole.projdata | Bin 0 -> 1544 bytes .../Application.Configuration.csproj | 105 +++++ .../Application.Configuration.csproj.user | 48 +++ .../Application.Configuration/AssemblyInfo.cs | 58 +++ .../ConfigurationManager.cs | 90 ++++ .../bin/Debug/Application.Configuration.dll | Bin 0 -> 16384 bytes .../bin/Debug/Application.Configuration.pdb | Bin 0 -> 15872 bytes .../bin/Debug/SAF.Configuration.dll | Bin 0 -> 24576 bytes .../bin/Debug/SAF.Configuration.pdb | Bin 0 -> 56832 bytes .../bin/Debug/SAF.Library.Security.dll | Bin 0 -> 3584 bytes .../bin/Debug/SAF.Library.Security.pdb | Bin 0 -> 7680 bytes .../obj/Debug/Application.Configuration.dll | Bin 0 -> 16384 bytes .../Debug/Application.Configuration.dll.incr | Bin 0 -> 1810 bytes .../obj/Debug/Application.Configuration.pdb | Bin 0 -> 15872 bytes .../Debug/Application.Configuration.projdata | Bin 0 -> 4232 bytes .../ConfigurationData/AssemblyInfo.cs | 62 +++ .../ConfigurationData.csproj | 138 ++++++ .../ConfigurationData.csproj.webinfo | 4 + .../ConfigurationData.vsdisco | 9 + .../ConfigurationService.asmx | 1 + .../ConfigurationService.asmx.cs | 69 +++ .../ConfigurationService.asmx.resx | 42 ++ .../ConfigurationData/Global.asax | 1 + .../ConfigurationData/Global.asax.cs | 70 ++++ .../ConfigurationData/Global.asax.resx | 42 ++ .../ConfigurationData/Web.config | 77 ++++ .../ConfigurationData/_vti_pvt/access.cnf | 4 + .../ConfigurationData/_vti_pvt/deptodoc.btr | Bin 0 -> 324 bytes .../ConfigurationData/_vti_pvt/doctodep.btr | Bin 0 -> 324 bytes .../ConfigurationData/_vti_pvt/service.cnf | 20 + .../ConfigurationData/_vti_pvt/service.lck | 0 .../ConfigurationData/_vti_pvt/services.cnf | 1 + .../bin/ConfigurationData.dll | Bin 0 -> 6144 bytes .../bin/ConfigurationData.pdb | Bin 0 -> 17920 bytes .../Test.SAF.Configuration.sln | 53 +++ .../Test.SAF.Configuration.sln.old | 45 ++ .../Test.SAF.Configuration.suo | Bin 0 -> 13312 bytes .../TestConfigurationAgent/AssemblyInfo.cs | 58 +++ .../TestConfigurationAgent.cs | 42 ++ .../TestConfigurationAgent.csproj | 141 +++++++ .../TestConfigurationAgent.csproj.user | 48 +++ .../localhost/ConfigurationService.disco | 5 + .../localhost/ConfigurationService.wsdl | 51 +++ .../Web References/localhost/Reference.cs | 56 +++ .../Web References/localhost/Reference.map | 7 + .../bin/Debug/SAF.Configuration.dll | Bin 0 -> 24576 bytes .../bin/Debug/SAF.Configuration.pdb | Bin 0 -> 56832 bytes .../bin/Debug/SAF.Library.Security.dll | Bin 0 -> 3584 bytes .../bin/Debug/SAF.Library.Security.pdb | Bin 0 -> 7680 bytes .../bin/Debug/TestConfigurationAgent.dll | Bin 0 -> 16384 bytes .../bin/Debug/TestConfigurationAgent.pdb | Bin 0 -> 19968 bytes .../Web References.localhost.Reference.cs.dll | Bin 0 -> 4608 bytes .../obj/Debug/TestConfigurationAgent.dll | Bin 0 -> 16384 bytes .../obj/Debug/TestConfigurationAgent.dll.incr | Bin 0 -> 2212 bytes .../obj/Debug/TestConfigurationAgent.pdb | Bin 0 -> 19968 bytes .../obj/Debug/TestConfigurationAgent.projdata | Bin 0 -> 3080 bytes .../TestConsole/App.ico | Bin 0 -> 1078 bytes .../TestConsole/AssemblyInfo.cs | 58 +++ .../TestConsole/Class1.cs | 35 ++ .../TestConsole/TestConsole.csproj | 128 ++++++ .../TestConsole/TestConsole.csproj.user | 48 +++ .../TestConsole/app.config | 33 ++ .../bin/Debug/Application.Configuration.dll | Bin 0 -> 16384 bytes .../bin/Debug/Application.Configuration.pdb | Bin 0 -> 15872 bytes .../bin/Debug/SAF.Configuration.dll | Bin 0 -> 24576 bytes .../bin/Debug/SAF.Configuration.pdb | Bin 0 -> 56832 bytes .../bin/Debug/SAF.Library.Security.dll | Bin 0 -> 3584 bytes .../bin/Debug/SAF.Library.Security.pdb | Bin 0 -> 7680 bytes .../bin/Debug/TestConfigurationAgent.dll | Bin 0 -> 16384 bytes .../bin/Debug/TestConfigurationAgent.pdb | Bin 0 -> 19968 bytes .../TestConsole/bin/Debug/TestConsole.exe | Bin 0 -> 16384 bytes .../bin/Debug/TestConsole.exe.config | 33 ++ .../TestConsole/bin/Debug/TestConsole.pdb | Bin 0 -> 15872 bytes .../Web References.localhost.Reference.cs.dll | Bin 0 -> 4608 bytes .../TestConsole/obj/Debug/TestConsole.exe | Bin 0 -> 16384 bytes .../obj/Debug/TestConsole.exe.incr | Bin 0 -> 2268 bytes .../TestConsole/obj/Debug/TestConsole.pdb | Bin 0 -> 15872 bytes .../obj/Debug/TestConsole.projdata | Bin 0 -> 1416 bytes .../Test.SAF.MessageQueue.sln | 37 ++ .../Test.SAF.MessageQueue.sln.old | 33 ++ .../Test.SAF.MessageQueue.suo | Bin 0 -> 12800 bytes .../Test.SAF.MessageQueue/TestConsole/App.ico | Bin 0 -> 1078 bytes .../TestConsole/AssemblyInfo.cs | 58 +++ .../TestConsole/Class1.cs | 76 ++++ .../TestConsole/TestConsole.csproj | 113 +++++ .../TestConsole/TestConsole.csproj.user | 48 +++ .../TestConsole/app.config | 20 + .../TestConsole/bin/Debug/Interop.MQAX200.dll | Bin 0 -> 122880 bytes .../bin/Debug/SAF.Configuration.dll | Bin 0 -> 24576 bytes .../bin/Debug/SAF.Configuration.pdb | Bin 0 -> 56832 bytes .../bin/Debug/SAF.MessageQueue.dll | Bin 0 -> 20480 bytes .../bin/Debug/SAF.MessageQueue.pdb | Bin 0 -> 36352 bytes .../TestConsole/bin/Debug/TestConsole.exe | Bin 0 -> 16384 bytes .../bin/Debug/TestConsole.exe.config | 20 + .../TestConsole/bin/Debug/TestConsole.pdb | Bin 0 -> 13824 bytes .../TestConsole/obj/Debug/TestConsole.exe | Bin 0 -> 16384 bytes .../obj/Debug/TestConsole.exe.incr | Bin 0 -> 1616 bytes .../TestConsole/obj/Debug/TestConsole.pdb | Bin 0 -> 13824 bytes .../obj/Debug/TestConsole.projdata | Bin 0 -> 2312 bytes .../Test.SAF.Transaction.sln | 37 ++ .../Test.SAF.Transaction.sln.old | 33 ++ .../Test.SAF.Transaction.suo | Bin 0 -> 9728 bytes .../Test.SAF.Transaction/TestConsole/App.ico | Bin 0 -> 1078 bytes .../TestConsole/AssemblyInfo.cs | 58 +++ .../TestConsole/Class1.cs | 174 ++++++++ .../TestConsole/TestConsole.csproj | 114 +++++ .../TestConsole/TestConsole.csproj.user | 48 +++ .../TestConsole/bin/Debug/SAF.Transaction.dll | Bin 0 -> 20480 bytes .../TestConsole/bin/Debug/SAF.Transaction.pdb | Bin 0 -> 19968 bytes .../TestConsole/bin/Debug/TestConsole.exe | Bin 0 -> 16384 bytes .../TestConsole/bin/Debug/TestConsole.pdb | Bin 0 -> 17920 bytes .../TestConsole/obj/Debug/TestConsole.exe | Bin 0 -> 16384 bytes .../obj/Debug/TestConsole.exe.incr | Bin 0 -> 1790 bytes .../TestConsole/obj/Debug/TestConsole.pdb | Bin 0 -> 17920 bytes .../obj/Debug/TestConsole.projdata | Bin 0 -> 2056 bytes .../Test.Server.SAF.Cryptography.sln | 45 ++ .../Test.Server.SAF.Cryptography.sln.old | 39 ++ .../Test.Server.SAF.Cryptography.suo | Bin 0 -> 55808 bytes .../TestConsole/App.ico | Bin 0 -> 1078 bytes .../TestConsole/AssemblyInfo.cs | 58 +++ .../TestConsole/Class1.cs | 28 ++ .../TestConsole/TestConsole.csproj | 123 ++++++ .../TestConsole/TestConsole.csproj.user | 48 +++ .../TestConsole/app.config | 59 +++ .../bin/Debug/Microsoft.Web.Services.dll | Bin 0 -> 311296 bytes .../bin/Debug/SAF.Configuration.dll | Bin 0 -> 24576 bytes .../bin/Debug/SAF.Configuration.pdb | Bin 0 -> 56832 bytes .../bin/Debug/SAF.Cryptography.dll | Bin 0 -> 24576 bytes .../bin/Debug/SAF.Cryptography.pdb | Bin 0 -> 69120 bytes .../bin/Debug/Test.BusinessLibrary.dll | Bin 0 -> 16384 bytes .../bin/Debug/Test.BusinessLibrary.pdb | Bin 0 -> 13824 bytes .../TestConsole/bin/Debug/TestConsole.exe | Bin 0 -> 16384 bytes .../bin/Debug/TestConsole.exe.config | 59 +++ .../TestConsole/bin/Debug/TestConsole.pdb | Bin 0 -> 13824 bytes .../TestConsole/obj/Debug/TestConsole.exe | Bin 0 -> 16384 bytes .../obj/Debug/TestConsole.exe.incr | Bin 0 -> 2154 bytes .../TestConsole/obj/Debug/TestConsole.pdb | Bin 0 -> 13824 bytes .../obj/Debug/TestConsole.projdata | Bin 0 -> 2184 bytes .../Test.Server.SAF.EventNotification.sln | 37 ++ .../Test.Server.SAF.EventNotification.sln.old | 33 ++ .../Test.Server.SAF.EventNotification.suo | Bin 0 -> 12800 bytes .../TestConsole/App.ico | Bin 0 -> 1078 bytes .../TestConsole/AssemblyInfo.cs | 58 +++ .../TestConsole/Class1.cs | 47 +++ .../TestConsole/TestConsole.csproj | 123 ++++++ .../TestConsole/TestConsole.csproj.user | 48 +++ .../TestConsole/app.config | 14 + .../bin/Debug/SAF.Configuration.dll | Bin 0 -> 24576 bytes .../bin/Debug/SAF.Configuration.pdb | Bin 0 -> 56832 bytes .../bin/Debug/SAF.EventNotification.dll | Bin 0 -> 20480 bytes .../bin/Debug/SAF.EventNotification.pdb | Bin 0 -> 22016 bytes .../bin/Debug/SAF.Library.Security.dll | Bin 0 -> 3584 bytes .../bin/Debug/SAF.Library.Security.pdb | Bin 0 -> 7680 bytes .../TestConsole/bin/Debug/TestConsole.exe | Bin 0 -> 16384 bytes .../bin/Debug/TestConsole.exe.config | 14 + .../TestConsole/bin/Debug/TestConsole.pdb | Bin 0 -> 13824 bytes .../TestConsole/obj/Debug/TestConsole.exe | Bin 0 -> 16384 bytes .../obj/Debug/TestConsole.exe.incr | Bin 0 -> 2142 bytes .../TestConsole/obj/Debug/TestConsole.pdb | Bin 0 -> 13824 bytes .../obj/Debug/TestConsole.projdata | Bin 0 -> 1672 bytes SAF_VS2003/SAF/readme.txt | 9 + SAF_VS2003/Update.doc | Bin 0 -> 20480 bytes contributing.md | 14 + 1470 files changed, 36215 insertions(+) create mode 100644 1606.html create mode 100644 1616.pdf create mode 100644 1625.pdf create mode 100644 1813.pdf create mode 100644 9781590592885.jpg create mode 100644 LICENSE.txt create mode 100644 README.md create mode 100644 SAF/Certificates/CompanyA.pfx create mode 100644 SAF/Certificates/CompanyA_PublicKey.cer create mode 100644 SAF/Certificates/CompanyB.pfx create mode 100644 SAF/Certificates/CompanyB_PublicKey.cer create mode 100644 SAF/Certificates/Dell420.cer create mode 100644 SAF/Certificates/XinChen.pfx create mode 100644 SAF/SAF.Application.Configuration/AssemblyInfo.cs create mode 100644 SAF/SAF.Application.Configuration/ConfigurationManager.cs create mode 100644 SAF/SAF.Application.Configuration/DocumentLayerConfiguration.cs create mode 100644 SAF/SAF.Application.Configuration/SAF.Application.Configuration.csproj create mode 100644 SAF/SAF.Application.Configuration/SAF.Application.Configuration.csproj.user create mode 100644 SAF/SAF.Application.Configuration/WorkFlowConfiguration.cs create mode 100644 SAF/SAF.Application.Configuration/bin/Debug/SAF.Application.Configuration.dll create mode 100644 SAF/SAF.Application.Configuration/bin/Debug/SAF.Application.Configuration.pdb create mode 100644 SAF/SAF.Application.Configuration/obj/Debug/SAF.Application.Configuration.dll create mode 100644 SAF/SAF.Application.Configuration/obj/Debug/SAF.Application.Configuration.dll.incr create mode 100644 SAF/SAF.Application.Configuration/obj/Debug/SAF.Application.Configuration.pdb create mode 100644 SAF/SAF.Application.Configuration/obj/Debug/SAF.Application.Configuration.projdata create mode 100644 SAF/SAF.Application.Configuration/obj/Debug/SAF.Application.Configuration.projdata1 create mode 100644 SAF/SAF.Application.DocumentLayer/AssemblyInfo.cs create mode 100644 SAF/SAF.Application.DocumentLayer/Class1.cs create mode 100644 SAF/SAF.Application.DocumentLayer/DocumentBlankLayer.cs create mode 100644 SAF/SAF.Application.DocumentLayer/DocumentLayer.cs create mode 100644 SAF/SAF.Application.DocumentLayer/SAF.Application.DocumentLayer.csproj create mode 100644 SAF/SAF.Application.DocumentLayer/SAF.Application.DocumentLayer.csproj.user create mode 100644 SAF/SAF.Application.DocumentLayer/bin/Debug/SAF.Application.Configuration.dll create mode 100644 SAF/SAF.Application.DocumentLayer/bin/Debug/SAF.Application.Configuration.pdb create mode 100644 SAF/SAF.Application.DocumentLayer/bin/Debug/SAF.Application.DocumentLayer.dll create mode 100644 SAF/SAF.Application.DocumentLayer/bin/Debug/SAF.Application.DocumentLayer.pdb create mode 100644 SAF/SAF.Application.DocumentLayer/obj/Debug/SAF.Application.DocumentLayer.dll create mode 100644 SAF/SAF.Application.DocumentLayer/obj/Debug/SAF.Application.DocumentLayer.dll.incr create mode 100644 SAF/SAF.Application.DocumentLayer/obj/Debug/SAF.Application.DocumentLayer.pdb create mode 100644 SAF/SAF.Application.DocumentLayer/obj/Debug/SAF.Application.DocumentLayer.projdata create mode 100644 SAF/SAF.Application.DocumentLayer/obj/Debug/SAF.Application.DocumentLayer.projdata1 create mode 100644 SAF/SAF.Application.DocumentLayer/obj/Debug/SAF.Application.DocumentLayer.projdata2 create mode 100644 SAF/SAF.Application.Workflow/AssemblyInfo.cs create mode 100644 SAF/SAF.Application.Workflow/Class1.cs create mode 100644 SAF/SAF.Application.Workflow/SAF.Application.Workflow.csproj create mode 100644 SAF/SAF.Application.Workflow/SAF.Application.Workflow.csproj.user create mode 100644 SAF/SAF.Application.Workflow/Workflow.cs create mode 100644 SAF/SAF.Application.Workflow/bin/Debug/SAF.Application.DocumentLayer.dll create mode 100644 SAF/SAF.Application.Workflow/bin/Debug/SAF.Application.DocumentLayer.pdb create mode 100644 SAF/SAF.Application.Workflow/bin/Debug/SAF.Application.Workflow.dll create mode 100644 SAF/SAF.Application.Workflow/bin/Debug/SAF.Application.Workflow.pdb create mode 100644 SAF/SAF.Application.Workflow/obj/Debug/SAF.Application.Workflow.dll create mode 100644 SAF/SAF.Application.Workflow/obj/Debug/SAF.Application.Workflow.dll.incr create mode 100644 SAF/SAF.Application.Workflow/obj/Debug/SAF.Application.Workflow.pdb create mode 100644 SAF/SAF.Application.Workflow/obj/Debug/SAF.Application.Workflow.projdata create mode 100644 SAF/SAF.Application.Workflow/obj/Debug/SAF.Application.Workflow.projdata1 create mode 100644 SAF/SAF.Authentication/ADAuthenticationProvider.cs create mode 100644 SAF/SAF.Authentication/AssemblyInfo.cs create mode 100644 SAF/SAF.Authentication/Class1.cs create mode 100644 SAF/SAF.Authentication/SAF.Authentication.csproj create mode 100644 SAF/SAF.Authentication/SAF.Authentication.csproj.user create mode 100644 SAF/SAF.Authentication/SAFIdentity.cs create mode 100644 SAF/SAF.Authentication/SAFPrincipal.cs create mode 100644 SAF/SAF.Authentication/bin/Debug/SAF.Authentication.dll create mode 100644 SAF/SAF.Authentication/bin/Debug/SAF.Authentication.pdb create mode 100644 SAF/SAF.Authentication/bin/Debug/SAF.Configuration.dll create mode 100644 SAF/SAF.Authentication/bin/Debug/SAF.Configuration.pdb create mode 100644 SAF/SAF.Authentication/bin/Debug/SAF.Utility.dll create mode 100644 SAF/SAF.Authentication/bin/Debug/SAF.Utility.pdb create mode 100644 SAF/SAF.Authentication/obj/Debug/SAF.Authentication.dll create mode 100644 SAF/SAF.Authentication/obj/Debug/SAF.Authentication.dll.incr create mode 100644 SAF/SAF.Authentication/obj/Debug/SAF.Authentication.pdb create mode 100644 SAF/SAF.Authentication/obj/Debug/SAF.Authentication.projdata create mode 100644 SAF/SAF.Authentication/obj/Debug/SAF.Authentication.projdata1 create mode 100644 SAF/SAF.Authorization/AssemblyInfo.cs create mode 100644 SAF/SAF.Authorization/Class1.cs create mode 100644 SAF/SAF.Authorization/DefaultAuthorizationProvider.cs create mode 100644 SAF/SAF.Authorization/SAF.Authorization.csproj create mode 100644 SAF/SAF.Authorization/SAF.Authorization.csproj.user create mode 100644 SAF/SAF.Authorization/SAFSecurityAttribute.cs create mode 100644 SAF/SAF.Authorization/SAFSecurityPermission.cs create mode 100644 SAF/SAF.Authorization/bin/Debug/SAF.Authorization.dll create mode 100644 SAF/SAF.Authorization/bin/Debug/SAF.Authorization.pdb create mode 100644 SAF/SAF.Authorization/bin/Debug/SAF.Configuration.dll create mode 100644 SAF/SAF.Authorization/bin/Debug/SAF.Configuration.pdb create mode 100644 SAF/SAF.Authorization/bin/Debug/SAF.Library.Security.dll create mode 100644 SAF/SAF.Authorization/bin/Debug/SAF.Library.Security.pdb create mode 100644 SAF/SAF.Authorization/obj/Debug/SAF.Authorization.dll create mode 100644 SAF/SAF.Authorization/obj/Debug/SAF.Authorization.dll.incr create mode 100644 SAF/SAF.Authorization/obj/Debug/SAF.Authorization.pdb create mode 100644 SAF/SAF.Authorization/obj/Debug/SAF.Authorization.projdata create mode 100644 SAF/SAF.Authorization/obj/Debug/SAF.Authorization.projdata1 create mode 100644 SAF/SAF.Cache/AssemblyInfo.cs create mode 100644 SAF/SAF.Cache/Cache.cs create mode 100644 SAF/SAF.Cache/DefaultCacheStrategy.cs create mode 100644 SAF/SAF.Cache/SAF.Cache.csproj create mode 100644 SAF/SAF.Cache/SAF.Cache.csproj.user create mode 100644 SAF/SAF.Cache/bin/Debug/SAF.Cache.dll create mode 100644 SAF/SAF.Cache/bin/Debug/SAF.Cache.pdb create mode 100644 SAF/SAF.Cache/bin/Debug/SAF.Configuration.dll create mode 100644 SAF/SAF.Cache/bin/Debug/SAF.Configuration.pdb create mode 100644 SAF/SAF.Cache/bin/Debug/SAF.Library.Security.dll create mode 100644 SAF/SAF.Cache/bin/Debug/SAF.Library.Security.pdb create mode 100644 SAF/SAF.Cache/obj/Debug/SAF.Cache.dll create mode 100644 SAF/SAF.Cache/obj/Debug/SAF.Cache.dll.incr create mode 100644 SAF/SAF.Cache/obj/Debug/SAF.Cache.pdb create mode 100644 SAF/SAF.Cache/obj/Debug/SAF.Cache.projdata create mode 100644 SAF/SAF.Cache/obj/Debug/SAF.Cache.projdata1 create mode 100644 SAF/SAF.ClassFactory/AssemblyInfo.cs create mode 100644 SAF/SAF.ClassFactory/Class1.cs create mode 100644 SAF/SAF.ClassFactory/SAF.ClassFactory.csproj create mode 100644 SAF/SAF.ClassFactory/SAF.ClassFactory.csproj.user create mode 100644 SAF/SAF.ClassFactory/bin/Debug/SAF.ClassFactory.dll create mode 100644 SAF/SAF.ClassFactory/bin/Debug/SAF.ClassFactory.pdb create mode 100644 SAF/SAF.ClassFactory/bin/Debug/SAF.Configuration.dll create mode 100644 SAF/SAF.ClassFactory/bin/Debug/SAF.Configuration.pdb create mode 100644 SAF/SAF.ClassFactory/bin/Debug/SAF.Library.Security.dll create mode 100644 SAF/SAF.ClassFactory/bin/Debug/SAF.Library.Security.pdb create mode 100644 SAF/SAF.ClassFactory/obj/Debug/SAF.ClassFactory.dll create mode 100644 SAF/SAF.ClassFactory/obj/Debug/SAF.ClassFactory.dll.incr create mode 100644 SAF/SAF.ClassFactory/obj/Debug/SAF.ClassFactory.pdb create mode 100644 SAF/SAF.ClassFactory/obj/Debug/SAF.ClassFactory.projdata create mode 100644 SAF/SAF.ClassFactory/obj/Debug/SAF.ClassFactory.projdata1 create mode 100644 SAF/SAF.Configuration/AssemblyInfo.cs create mode 100644 SAF/SAF.Configuration/AuthenticationConfiguration.cs create mode 100644 SAF/SAF.Configuration/AuthorizationConfiguration.cs create mode 100644 SAF/SAF.Configuration/CacheConfigration.cs create mode 100644 SAF/SAF.Configuration/ClassFactoryConfiguration.cs create mode 100644 SAF/SAF.Configuration/ConfigurationAgentManager.cs create mode 100644 SAF/SAF.Configuration/ConfigurationManager.cs create mode 100644 SAF/SAF.Configuration/CryptographyConfiguration.cs create mode 100644 SAF/SAF.Configuration/EventNotificationConfiguration.cs create mode 100644 SAF/SAF.Configuration/MessageQueueConfiguration.cs create mode 100644 SAF/SAF.Configuration/SAF.Configuration.csproj create mode 100644 SAF/SAF.Configuration/SAF.Configuration.csproj.user create mode 100644 SAF/SAF.Configuration/ServiceConfiguration.cs create mode 100644 SAF/SAF.Configuration/bin/Debug/SAF.Configuration.dll create mode 100644 SAF/SAF.Configuration/bin/Debug/SAF.Configuration.pdb create mode 100644 SAF/SAF.Configuration/bin/Debug/SAF.Library.Security.dll create mode 100644 SAF/SAF.Configuration/bin/Debug/SAF.Library.Security.pdb create mode 100644 SAF/SAF.Configuration/bin/Release/SAF.Configuration.dll create mode 100644 SAF/SAF.Configuration/obj/Debug/SAF.Configuration.dll create mode 100644 SAF/SAF.Configuration/obj/Debug/SAF.Configuration.dll.incr create mode 100644 SAF/SAF.Configuration/obj/Debug/SAF.Configuration.pdb create mode 100644 SAF/SAF.Configuration/obj/Debug/SAF.Configuration.projdata create mode 100644 SAF/SAF.Configuration/obj/Debug/SAF.Configuration.projdata1 create mode 100644 SAF/SAF.Configuration/obj/Debug/SAF.Configuration.projdata2 create mode 100644 SAF/SAF.Configuration/obj/Debug/TempPE/Web References.localhost.Reference.cs.dll create mode 100644 SAF/SAF.Configuration/obj/Release/SAF.Configuration.dll create mode 100644 SAF/SAF.Configuration/obj/Release/SAF.Configuration.projdata create mode 100644 SAF/SAF.Cryptography/AssemblyInfo.cs create mode 100644 SAF/SAF.Cryptography/Certificate.cs create mode 100644 SAF/SAF.Cryptography/CryptRemotingSinkHelper.cs create mode 100644 SAF/SAF.Cryptography/CryptoRemotingClientSink.cs create mode 100644 SAF/SAF.Cryptography/CryptoRemotingServerSink.cs create mode 100644 SAF/SAF.Cryptography/EnDecryption.cs create mode 100644 SAF/SAF.Cryptography/SAF.Cryptography.csproj create mode 100644 SAF/SAF.Cryptography/SAF.Cryptography.csproj.user create mode 100644 SAF/SAF.Cryptography/bin/Debug/Microsoft.Web.Services.dll create mode 100644 SAF/SAF.Cryptography/bin/Debug/SAF.Configuration.dll create mode 100644 SAF/SAF.Cryptography/bin/Debug/SAF.Configuration.pdb create mode 100644 SAF/SAF.Cryptography/bin/Debug/SAF.Cryptography.dll create mode 100644 SAF/SAF.Cryptography/bin/Debug/SAF.Cryptography.pdb create mode 100644 SAF/SAF.Cryptography/bin/Microsoft.Web.Services.dll create mode 100644 SAF/SAF.Cryptography/obj/Debug/SAF.Cryptography.dll create mode 100644 SAF/SAF.Cryptography/obj/Debug/SAF.Cryptography.dll.incr create mode 100644 SAF/SAF.Cryptography/obj/Debug/SAF.Cryptography.pdb create mode 100644 SAF/SAF.Cryptography/obj/Debug/SAF.Cryptography.projdata create mode 100644 SAF/SAF.Cryptography/obj/Debug/SAF.Cryptography.projdata1 create mode 100644 SAF/SAF.Cryptography/obj/Debug/SAF.Cryptography.projdata2 create mode 100644 SAF/SAF.Cryptography/obj/Release/SAF.Cryptography.dll create mode 100644 SAF/SAF.Cryptography/obj/Release/SAF.Cryptography.projdata create mode 100644 SAF/SAF.EventNotification/AssemblyInfo.cs create mode 100644 SAF/SAF.EventNotification/EventClient.cs create mode 100644 SAF/SAF.EventNotification/EventServer.cs create mode 100644 SAF/SAF.EventNotification/SAF.EventNotification.csproj create mode 100644 SAF/SAF.EventNotification/SAF.EventNotification.csproj.user create mode 100644 SAF/SAF.EventNotification/bin/Debug/SAF.EventNotification.dll create mode 100644 SAF/SAF.EventNotification/bin/Debug/SAF.EventNotification.pdb create mode 100644 SAF/SAF.EventNotification/obj/Debug/SAF.EventNotification.dll create mode 100644 SAF/SAF.EventNotification/obj/Debug/SAF.EventNotification.dll.incr create mode 100644 SAF/SAF.EventNotification/obj/Debug/SAF.EventNotification.pdb create mode 100644 SAF/SAF.EventNotification/obj/Debug/SAF.EventNotification.projdata create mode 100644 SAF/SAF.EventNotification/obj/Debug/SAF.EventNotification.projdata1 create mode 100644 SAF/SAF.EventNotification/obj/Debug/SAF.EventNotification.projdata2 create mode 100644 SAF/SAF.Library.Security/AssemblyInfo.cs create mode 100644 SAF/SAF.Library.Security/Class1.cs create mode 100644 SAF/SAF.Library.Security/SAF.Library.Security.csproj create mode 100644 SAF/SAF.Library.Security/SAF.Library.Security.csproj.user create mode 100644 SAF/SAF.Library.Security/bin/Debug/SAF.Library.Security.dll create mode 100644 SAF/SAF.Library.Security/bin/Debug/SAF.Library.Security.pdb create mode 100644 SAF/SAF.Library.Security/obj/Debug/SAF.Library.Security.dll create mode 100644 SAF/SAF.Library.Security/obj/Debug/SAF.Library.Security.dll.incr create mode 100644 SAF/SAF.Library.Security/obj/Debug/SAF.Library.Security.pdb create mode 100644 SAF/SAF.Library.Security/obj/Debug/SAF.Library.Security.projdata create mode 100644 SAF/SAF.Library.Security/obj/Debug/SAF.Library.Security.projdata1 create mode 100644 SAF/SAF.Library.WindowsService/AssemblyInfo.cs create mode 100644 SAF/SAF.Library.WindowsService/Class1.cs create mode 100644 SAF/SAF.Library.WindowsService/SAF.Library.WindowsService.csproj create mode 100644 SAF/SAF.Library.WindowsService/SAF.Library.WindowsService.csproj.user create mode 100644 SAF/SAF.Library.WindowsService/bin/Debug/SAF.Library.WindowsService.dll create mode 100644 SAF/SAF.Library.WindowsService/bin/Debug/SAF.Library.WindowsService.pdb create mode 100644 SAF/SAF.Library.WindowsService/bin/Debug/SAF.Utility.dll create mode 100644 SAF/SAF.Library.WindowsService/bin/Debug/SAF.Utility.pdb create mode 100644 SAF/SAF.Library.WindowsService/obj/Debug/SAF.Library.WindowsService.dll create mode 100644 SAF/SAF.Library.WindowsService/obj/Debug/SAF.Library.WindowsService.dll.incr create mode 100644 SAF/SAF.Library.WindowsService/obj/Debug/SAF.Library.WindowsService.pdb create mode 100644 SAF/SAF.Library.WindowsService/obj/Debug/SAF.Library.WindowsService.projdata create mode 100644 SAF/SAF.MessageQueue/AssemblyInfo.cs create mode 100644 SAF/SAF.MessageQueue/MQSeries.cs create mode 100644 SAF/SAF.MessageQueue/MSMQ.cs create mode 100644 SAF/SAF.MessageQueue/MessageQueue.cs create mode 100644 SAF/SAF.MessageQueue/MessageQueueManager.cs create mode 100644 SAF/SAF.MessageQueue/SAF.MessageQueue.csproj create mode 100644 SAF/SAF.MessageQueue/SAF.MessageQueue.csproj.user create mode 100644 SAF/SAF.MessageQueue/bin/Debug/Interop.MQAX200.dll create mode 100644 SAF/SAF.MessageQueue/bin/Debug/SAF.Configuration.dll create mode 100644 SAF/SAF.MessageQueue/bin/Debug/SAF.Configuration.pdb create mode 100644 SAF/SAF.MessageQueue/bin/Debug/SAF.MessageQueue.dll create mode 100644 SAF/SAF.MessageQueue/bin/Debug/SAF.MessageQueue.pdb create mode 100644 SAF/SAF.MessageQueue/bin/Interop.MQAX200.dll create mode 100644 SAF/SAF.MessageQueue/obj/Debug/SAF.MessageQueue.dll create mode 100644 SAF/SAF.MessageQueue/obj/Debug/SAF.MessageQueue.dll.incr create mode 100644 SAF/SAF.MessageQueue/obj/Debug/SAF.MessageQueue.pdb create mode 100644 SAF/SAF.MessageQueue/obj/Debug/SAF.MessageQueue.projdata create mode 100644 SAF/SAF.MessageQueue/obj/Debug/SAF.MessageQueue.projdata1 create mode 100644 SAF/SAF.MessageQueue/obj/Interop.MQAX200.dll create mode 100644 SAF/SAF.TestConsole/App.ico create mode 100644 SAF/SAF.TestConsole/AssemblyInfo.cs create mode 100644 SAF/SAF.TestConsole/Class1.cs create mode 100644 SAF/SAF.TestConsole/SAF.TestConsole.csproj create mode 100644 SAF/SAF.TestConsole/SAF.TestConsole.csproj.user create mode 100644 SAF/SAF.TestConsole/bin/Debug/SAF.TestConsole.exe create mode 100644 SAF/SAF.TestConsole/bin/Debug/SAF.TestConsole.pdb create mode 100644 SAF/SAF.TestConsole/bin/Debug/SAF.Utility.dll create mode 100644 SAF/SAF.TestConsole/bin/Debug/SAF.Utility.pdb create mode 100644 SAF/SAF.TestConsole/obj/Debug/SAF.TestConsole.exe create mode 100644 SAF/SAF.TestConsole/obj/Debug/SAF.TestConsole.exe.incr create mode 100644 SAF/SAF.TestConsole/obj/Debug/SAF.TestConsole.pdb create mode 100644 SAF/SAF.TestConsole/obj/Debug/SAF.TestConsole.projdata create mode 100644 SAF/SAF.Transaction/AssemblyInfo.cs create mode 100644 SAF/SAF.Transaction/Class1.cs create mode 100644 SAF/SAF.Transaction/SAF.Transaction.csproj create mode 100644 SAF/SAF.Transaction/SAF.Transaction.csproj.user create mode 100644 SAF/SAF.Transaction/TransactionManager.cs create mode 100644 SAF/SAF.Transaction/bin/Debug/SAF.Transaction.dll create mode 100644 SAF/SAF.Transaction/bin/Debug/SAF.Transaction.pdb create mode 100644 SAF/SAF.Transaction/obj/Debug/SAF.Transaction.dll create mode 100644 SAF/SAF.Transaction/obj/Debug/SAF.Transaction.dll.incr create mode 100644 SAF/SAF.Transaction/obj/Debug/SAF.Transaction.pdb create mode 100644 SAF/SAF.Transaction/obj/Debug/SAF.Transaction.projdata create mode 100644 SAF/SAF.Transaction/obj/Debug/SAF.Transaction.projdata1 create mode 100644 SAF/SAF.Utility/AssemblyInfo.cs create mode 100644 SAF/SAF.Utility/Class1.cs create mode 100644 SAF/SAF.Utility/SAF.Utility.csproj create mode 100644 SAF/SAF.Utility/SAF.Utility.csproj.user create mode 100644 SAF/SAF.Utility/bin/Debug/SAF.Utility.dll create mode 100644 SAF/SAF.Utility/bin/Debug/SAF.Utility.pdb create mode 100644 SAF/SAF.Utility/obj/Debug/SAF.Utility.dll create mode 100644 SAF/SAF.Utility/obj/Debug/SAF.Utility.dll.incr create mode 100644 SAF/SAF.Utility/obj/Debug/SAF.Utility.pdb create mode 100644 SAF/SAF.Utility/obj/Debug/SAF.Utility.projdata create mode 100644 SAF/SAF.Utility/obj/Debug/SAF.Utility.projdata1 create mode 100644 SAF/SAF.WindowsService/AssemblyInfo.cs create mode 100644 SAF/SAF.WindowsService/EmptyService.cs create mode 100644 SAF/SAF.WindowsService/ProjectInstaller.cs create mode 100644 SAF/SAF.WindowsService/ProjectInstaller.resx create mode 100644 SAF/SAF.WindowsService/SAF.WindowsService.csproj create mode 100644 SAF/SAF.WindowsService/SAF.WindowsService.csproj.user create mode 100644 SAF/SAF.WindowsService/SecuritySwitchThread.cs create mode 100644 SAF/SAF.WindowsService/Service1.cs create mode 100644 SAF/SAF.WindowsService/Service1.resx create mode 100644 SAF/SAF.WindowsService/app.config create mode 100644 SAF/SAF.WindowsService/bin/Debug/InstallUtil.InstallLog create mode 100644 SAF/SAF.WindowsService/bin/Debug/SAF.Configuration.dll create mode 100644 SAF/SAF.WindowsService/bin/Debug/SAF.Configuration.pdb create mode 100644 SAF/SAF.WindowsService/bin/Debug/SAF.Library.Security.dll create mode 100644 SAF/SAF.WindowsService/bin/Debug/SAF.Library.Security.pdb create mode 100644 SAF/SAF.WindowsService/bin/Debug/SAF.Library.WindowsService.dll create mode 100644 SAF/SAF.WindowsService/bin/Debug/SAF.Library.WindowsService.pdb create mode 100644 SAF/SAF.WindowsService/bin/Debug/SAF.Utility.dll create mode 100644 SAF/SAF.WindowsService/bin/Debug/SAF.Utility.pdb create mode 100644 SAF/SAF.WindowsService/bin/Debug/SAF.WindowsService.exe create mode 100644 SAF/SAF.WindowsService/bin/Debug/SAF.WindowsService.exe.config create mode 100644 SAF/SAF.WindowsService/bin/Debug/SAF.WindowsService.pdb create mode 100644 SAF/SAF.WindowsService/bin/Debug/saf.windowsservice.InstallLog create mode 100644 SAF/SAF.WindowsService/bin/Debug/saf.windowsservice.InstallState create mode 100644 SAF/SAF.WindowsService/obj/Debug/SAF.WindowsService.ProjectInstaller.resources create mode 100644 SAF/SAF.WindowsService/obj/Debug/SAF.WindowsService.Service1.resources create mode 100644 SAF/SAF.WindowsService/obj/Debug/SAF.WindowsService.exe create mode 100644 SAF/SAF.WindowsService/obj/Debug/SAF.WindowsService.exe.incr create mode 100644 SAF/SAF.WindowsService/obj/Debug/SAF.WindowsService.pdb create mode 100644 SAF/SAF.WindowsService/obj/Debug/SAF.WindowsService.projdata create mode 100644 SAF/SAF.sln create mode 100644 SAF/SAF.snk create mode 100644 SAF/SAF.suo create mode 100644 SAF/Setup/Certificates/CompanyA.pfx create mode 100644 SAF/Setup/Certificates/CompanyA_PublicKey.cer create mode 100644 SAF/Setup/Certificates/CompanyB.pfx create mode 100644 SAF/Setup/Certificates/CompanyB_PublicKey.cer create mode 100644 SAF/Setup/Certificates/Dell420.cer create mode 100644 SAF/Setup/SAFDemo.sql create mode 100644 SAF/Test.BusinessLibrary/AssemblyInfo.cs create mode 100644 SAF/Test.BusinessLibrary/Class1.cs create mode 100644 SAF/Test.BusinessLibrary/Test.BusinessLibrary.csproj create mode 100644 SAF/Test.BusinessLibrary/Test.BusinessLibrary.csproj.user create mode 100644 SAF/Test.BusinessLibrary/bin/Debug/Test.BusinessLibrary.dll create mode 100644 SAF/Test.BusinessLibrary/bin/Debug/Test.BusinessLibrary.pdb create mode 100644 SAF/Test.BusinessLibrary/bin/Release/Test.BusinessLibrary.dll create mode 100644 SAF/Test.BusinessLibrary/obj/Debug/Test.BusinessLibrary.dll create mode 100644 SAF/Test.BusinessLibrary/obj/Debug/Test.BusinessLibrary.dll.incr create mode 100644 SAF/Test.BusinessLibrary/obj/Debug/Test.BusinessLibrary.pdb create mode 100644 SAF/Test.BusinessLibrary/obj/Debug/Test.BusinessLibrary.projdata create mode 100644 SAF/Test.BusinessLibrary/obj/Debug/Test.BusinessLibrary.projdata1 create mode 100644 SAF/Test.BusinessLibrary/obj/Release/Test.BusinessLibrary.dll create mode 100644 SAF/Test.BusinessLibrary/obj/Release/Test.BusinessLibrary.projdata create mode 100644 SAF/Test.Client.SAF.Cryptography/Test.Client.SAF.Cryptography.sln create mode 100644 SAF/Test.Client.SAF.Cryptography/Test.Client.SAF.Cryptography.suo create mode 100644 SAF/Test.Client.SAF.Cryptography/TestConsole/App.ico create mode 100644 SAF/Test.Client.SAF.Cryptography/TestConsole/AssemblyInfo.cs create mode 100644 SAF/Test.Client.SAF.Cryptography/TestConsole/Class1.cs create mode 100644 SAF/Test.Client.SAF.Cryptography/TestConsole/TestConsole.csproj create mode 100644 SAF/Test.Client.SAF.Cryptography/TestConsole/TestConsole.csproj.user create mode 100644 SAF/Test.Client.SAF.Cryptography/TestConsole/app.config create mode 100644 SAF/Test.Client.SAF.Cryptography/TestConsole/bin/Debug/Microsoft.Web.Services.dll create mode 100644 SAF/Test.Client.SAF.Cryptography/TestConsole/bin/Debug/SAF.Configuration.dll create mode 100644 SAF/Test.Client.SAF.Cryptography/TestConsole/bin/Debug/SAF.Configuration.pdb create mode 100644 SAF/Test.Client.SAF.Cryptography/TestConsole/bin/Debug/SAF.Cryptography.dll create mode 100644 SAF/Test.Client.SAF.Cryptography/TestConsole/bin/Debug/SAF.Cryptography.pdb create mode 100644 SAF/Test.Client.SAF.Cryptography/TestConsole/bin/Debug/Test.BusinessLibrary.dll create mode 100644 SAF/Test.Client.SAF.Cryptography/TestConsole/bin/Debug/Test.BusinessLibrary.pdb create mode 100644 SAF/Test.Client.SAF.Cryptography/TestConsole/bin/Debug/TestConsole.exe create mode 100644 SAF/Test.Client.SAF.Cryptography/TestConsole/bin/Debug/TestConsole.exe.config create mode 100644 SAF/Test.Client.SAF.Cryptography/TestConsole/bin/Debug/TestConsole.pdb create mode 100644 SAF/Test.Client.SAF.Cryptography/TestConsole/obj/Debug/TestConsole.exe create mode 100644 SAF/Test.Client.SAF.Cryptography/TestConsole/obj/Debug/TestConsole.exe.incr create mode 100644 SAF/Test.Client.SAF.Cryptography/TestConsole/obj/Debug/TestConsole.pdb create mode 100644 SAF/Test.Client.SAF.Cryptography/TestConsole/obj/Debug/TestConsole.projdata create mode 100644 SAF/Test.Client.SAF.EventNotification/Test.Client.SAF.EventNotification.sln create mode 100644 SAF/Test.Client.SAF.EventNotification/Test.Client.SAF.EventNotification.suo create mode 100644 SAF/Test.Client.SAF.EventNotification/TestConsole/App.ico create mode 100644 SAF/Test.Client.SAF.EventNotification/TestConsole/AssemblyInfo.cs create mode 100644 SAF/Test.Client.SAF.EventNotification/TestConsole/Class1.cs create mode 100644 SAF/Test.Client.SAF.EventNotification/TestConsole/TestConsole.csproj create mode 100644 SAF/Test.Client.SAF.EventNotification/TestConsole/TestConsole.csproj.user create mode 100644 SAF/Test.Client.SAF.EventNotification/TestConsole/app.config create mode 100644 SAF/Test.Client.SAF.EventNotification/TestConsole/bin/Debug/SAF.Configuration.dll create mode 100644 SAF/Test.Client.SAF.EventNotification/TestConsole/bin/Debug/SAF.Configuration.pdb create mode 100644 SAF/Test.Client.SAF.EventNotification/TestConsole/bin/Debug/SAF.EventNotification.dll create mode 100644 SAF/Test.Client.SAF.EventNotification/TestConsole/bin/Debug/SAF.EventNotification.pdb create mode 100644 SAF/Test.Client.SAF.EventNotification/TestConsole/bin/Debug/SAF.Library.Security.dll create mode 100644 SAF/Test.Client.SAF.EventNotification/TestConsole/bin/Debug/SAF.Library.Security.pdb create mode 100644 SAF/Test.Client.SAF.EventNotification/TestConsole/bin/Debug/TestConsole.exe create mode 100644 SAF/Test.Client.SAF.EventNotification/TestConsole/bin/Debug/TestConsole.exe.config create mode 100644 SAF/Test.Client.SAF.EventNotification/TestConsole/bin/Debug/TestConsole.pdb create mode 100644 SAF/Test.Client.SAF.EventNotification/TestConsole/obj/Debug/TestConsole.exe create mode 100644 SAF/Test.Client.SAF.EventNotification/TestConsole/obj/Debug/TestConsole.exe.incr create mode 100644 SAF/Test.Client.SAF.EventNotification/TestConsole/obj/Debug/TestConsole.pdb create mode 100644 SAF/Test.Client.SAF.EventNotification/TestConsole/obj/Debug/TestConsole.projdata create mode 100644 SAF/Test.SAF.Application.DocumentLayer/Test.SAF.Application.DocumentLayer.sln create mode 100644 SAF/Test.SAF.Application.DocumentLayer/Test.SAF.Application.DocumentLayer.suo create mode 100644 SAF/Test.SAF.Application.DocumentLayer/TestConsole/App.ico create mode 100644 SAF/Test.SAF.Application.DocumentLayer/TestConsole/AssemblyInfo.cs create mode 100644 SAF/Test.SAF.Application.DocumentLayer/TestConsole/Class1.cs create mode 100644 SAF/Test.SAF.Application.DocumentLayer/TestConsole/ConfirmationSample.xml create mode 100644 SAF/Test.SAF.Application.DocumentLayer/TestConsole/Confirmations.xsd create mode 100644 SAF/Test.SAF.Application.DocumentLayer/TestConsole/Order.xsd create mode 100644 SAF/Test.SAF.Application.DocumentLayer/TestConsole/OrderSample.xml create mode 100644 SAF/Test.SAF.Application.DocumentLayer/TestConsole/TestConsole.csproj create mode 100644 SAF/Test.SAF.Application.DocumentLayer/TestConsole/TestConsole.csproj.user create mode 100644 SAF/Test.SAF.Application.DocumentLayer/TestConsole/app.config create mode 100644 SAF/Test.SAF.Application.DocumentLayer/TestConsole/bin/Debug/SAF.Application.Configuration.dll create mode 100644 SAF/Test.SAF.Application.DocumentLayer/TestConsole/bin/Debug/SAF.Application.Configuration.pdb create mode 100644 SAF/Test.SAF.Application.DocumentLayer/TestConsole/bin/Debug/SAF.Application.DocumentLayer.dll create mode 100644 SAF/Test.SAF.Application.DocumentLayer/TestConsole/bin/Debug/SAF.Application.DocumentLayer.pdb create mode 100644 SAF/Test.SAF.Application.DocumentLayer/TestConsole/bin/Debug/SAF.Configuration.dll create mode 100644 SAF/Test.SAF.Application.DocumentLayer/TestConsole/bin/Debug/SAF.Configuration.pdb create mode 100644 SAF/Test.SAF.Application.DocumentLayer/TestConsole/bin/Debug/TestConsole.exe create mode 100644 SAF/Test.SAF.Application.DocumentLayer/TestConsole/bin/Debug/TestConsole.exe.config create mode 100644 SAF/Test.SAF.Application.DocumentLayer/TestConsole/bin/Debug/TestConsole.pdb create mode 100644 SAF/Test.SAF.Application.DocumentLayer/TestConsole/bin/Debug/TestDocumentLayer.dll create mode 100644 SAF/Test.SAF.Application.DocumentLayer/TestConsole/bin/Debug/TestDocumentLayer.pdb create mode 100644 SAF/Test.SAF.Application.DocumentLayer/TestConsole/obj/Debug/TestConsole.exe create mode 100644 SAF/Test.SAF.Application.DocumentLayer/TestConsole/obj/Debug/TestConsole.exe.incr create mode 100644 SAF/Test.SAF.Application.DocumentLayer/TestConsole/obj/Debug/TestConsole.pdb create mode 100644 SAF/Test.SAF.Application.DocumentLayer/TestConsole/obj/Debug/TestConsole.projdata create mode 100644 SAF/Test.SAF.Application.DocumentLayer/TestConsole/obj/Debug/TestConsole.projdata1 create mode 100644 SAF/Test.SAF.Application.DocumentLayer/TestDocumentLayer/AssemblyInfo.cs create mode 100644 SAF/Test.SAF.Application.DocumentLayer/TestDocumentLayer/DocumentDoSomeWorkLayer.cs create mode 100644 SAF/Test.SAF.Application.DocumentLayer/TestDocumentLayer/DocumentLoggingLayer.cs create mode 100644 SAF/Test.SAF.Application.DocumentLayer/TestDocumentLayer/DocumentXmlValidationLayer.cs create mode 100644 SAF/Test.SAF.Application.DocumentLayer/TestDocumentLayer/TestDocumentLayer.csproj create mode 100644 SAF/Test.SAF.Application.DocumentLayer/TestDocumentLayer/TestDocumentLayer.csproj.user create mode 100644 SAF/Test.SAF.Application.DocumentLayer/TestDocumentLayer/bin/Debug/SAF.Application.DocumentLayer.dll create mode 100644 SAF/Test.SAF.Application.DocumentLayer/TestDocumentLayer/bin/Debug/SAF.Application.DocumentLayer.pdb create mode 100644 SAF/Test.SAF.Application.DocumentLayer/TestDocumentLayer/bin/Debug/TestDocumentLayer.dll create mode 100644 SAF/Test.SAF.Application.DocumentLayer/TestDocumentLayer/bin/Debug/TestDocumentLayer.pdb create mode 100644 SAF/Test.SAF.Application.DocumentLayer/TestDocumentLayer/obj/Debug/TestDocumentLayer.dll create mode 100644 SAF/Test.SAF.Application.DocumentLayer/TestDocumentLayer/obj/Debug/TestDocumentLayer.dll.incr create mode 100644 SAF/Test.SAF.Application.DocumentLayer/TestDocumentLayer/obj/Debug/TestDocumentLayer.pdb create mode 100644 SAF/Test.SAF.Application.DocumentLayer/TestDocumentLayer/obj/Debug/TestDocumentLayer.projdata create mode 100644 SAF/Test.SAF.Application.DocumentLayer/TestDocumentLayer/obj/Debug/TestDocumentLayer.projdata1 create mode 100644 SAF/Test.SAF.Application.Workflow/App.ico create mode 100644 SAF/Test.SAF.Application.Workflow/AssemblyInfo.cs create mode 100644 SAF/Test.SAF.Application.Workflow/Class1.cs create mode 100644 SAF/Test.SAF.Application.Workflow/ConfirmationSample.xml create mode 100644 SAF/Test.SAF.Application.Workflow/Confirmations.xsd create mode 100644 SAF/Test.SAF.Application.Workflow/Order.xsd create mode 100644 SAF/Test.SAF.Application.Workflow/OrderSample.xml create mode 100644 SAF/Test.SAF.Application.Workflow/Test.SAF.Application.Workflow.csproj create mode 100644 SAF/Test.SAF.Application.Workflow/Test.SAF.Application.Workflow.csproj.user create mode 100644 SAF/Test.SAF.Application.Workflow/Test.SAF.Application.Workflow.sln create mode 100644 SAF/Test.SAF.Application.Workflow/Test.SAF.Application.Workflow.suo create mode 100644 SAF/Test.SAF.Application.Workflow/TestConsole/App.ico create mode 100644 SAF/Test.SAF.Application.Workflow/TestConsole/AssemblyInfo.cs create mode 100644 SAF/Test.SAF.Application.Workflow/TestConsole/Class1.cs create mode 100644 SAF/Test.SAF.Application.Workflow/TestConsole/ConfirmationSample.xml create mode 100644 SAF/Test.SAF.Application.Workflow/TestConsole/Confirmations.xsd create mode 100644 SAF/Test.SAF.Application.Workflow/TestConsole/Order.xsd create mode 100644 SAF/Test.SAF.Application.Workflow/TestConsole/OrderSample.xml create mode 100644 SAF/Test.SAF.Application.Workflow/TestConsole/TestConsole.csproj create mode 100644 SAF/Test.SAF.Application.Workflow/TestConsole/TestConsole.csproj.user create mode 100644 SAF/Test.SAF.Application.Workflow/TestConsole/app.config create mode 100644 SAF/Test.SAF.Application.Workflow/TestConsole/bin/Debug/SAF.Application.Configuration.dll create mode 100644 SAF/Test.SAF.Application.Workflow/TestConsole/bin/Debug/SAF.Application.Configuration.pdb create mode 100644 SAF/Test.SAF.Application.Workflow/TestConsole/bin/Debug/SAF.Application.DocumentLayer.dll create mode 100644 SAF/Test.SAF.Application.Workflow/TestConsole/bin/Debug/SAF.Application.DocumentLayer.pdb create mode 100644 SAF/Test.SAF.Application.Workflow/TestConsole/bin/Debug/SAF.Application.Workflow.dll create mode 100644 SAF/Test.SAF.Application.Workflow/TestConsole/bin/Debug/SAF.Application.Workflow.pdb create mode 100644 SAF/Test.SAF.Application.Workflow/TestConsole/bin/Debug/SAF.Configuration.dll create mode 100644 SAF/Test.SAF.Application.Workflow/TestConsole/bin/Debug/SAF.Configuration.pdb create mode 100644 SAF/Test.SAF.Application.Workflow/TestConsole/bin/Debug/TestConsole.exe create mode 100644 SAF/Test.SAF.Application.Workflow/TestConsole/bin/Debug/TestConsole.exe.config create mode 100644 SAF/Test.SAF.Application.Workflow/TestConsole/bin/Debug/TestConsole.pdb create mode 100644 SAF/Test.SAF.Application.Workflow/TestConsole/bin/Debug/TestDocumentLayer.dll create mode 100644 SAF/Test.SAF.Application.Workflow/TestConsole/bin/Debug/TestDocumentLayer.pdb create mode 100644 SAF/Test.SAF.Application.Workflow/TestConsole/bin/Debug/TestWorkFlow.dll create mode 100644 SAF/Test.SAF.Application.Workflow/TestConsole/bin/Debug/TestWorkFlow.pdb create mode 100644 SAF/Test.SAF.Application.Workflow/TestConsole/obj/Debug/TestConsole.exe create mode 100644 SAF/Test.SAF.Application.Workflow/TestConsole/obj/Debug/TestConsole.exe.incr create mode 100644 SAF/Test.SAF.Application.Workflow/TestConsole/obj/Debug/TestConsole.pdb create mode 100644 SAF/Test.SAF.Application.Workflow/TestConsole/obj/Debug/TestConsole.projdata create mode 100644 SAF/Test.SAF.Application.Workflow/TestWorkFlow/AssemblyInfo.cs create mode 100644 SAF/Test.SAF.Application.Workflow/TestWorkFlow/Component.cs create mode 100644 SAF/Test.SAF.Application.Workflow/TestWorkFlow/DocumentWorkFlowLayer.cs create mode 100644 SAF/Test.SAF.Application.Workflow/TestWorkFlow/TestWorkFlow.csproj create mode 100644 SAF/Test.SAF.Application.Workflow/TestWorkFlow/TestWorkFlow.csproj.user create mode 100644 SAF/Test.SAF.Application.Workflow/TestWorkFlow/Visitor.cs create mode 100644 SAF/Test.SAF.Application.Workflow/TestWorkFlow/bin/Debug/SAF.Application.Configuration.dll create mode 100644 SAF/Test.SAF.Application.Workflow/TestWorkFlow/bin/Debug/SAF.Application.Configuration.pdb create mode 100644 SAF/Test.SAF.Application.Workflow/TestWorkFlow/bin/Debug/SAF.Application.DocumentLayer.dll create mode 100644 SAF/Test.SAF.Application.Workflow/TestWorkFlow/bin/Debug/SAF.Application.DocumentLayer.pdb create mode 100644 SAF/Test.SAF.Application.Workflow/TestWorkFlow/bin/Debug/SAF.Application.Workflow.dll create mode 100644 SAF/Test.SAF.Application.Workflow/TestWorkFlow/bin/Debug/SAF.Application.Workflow.pdb create mode 100644 SAF/Test.SAF.Application.Workflow/TestWorkFlow/bin/Debug/TestWorkFlow.dll create mode 100644 SAF/Test.SAF.Application.Workflow/TestWorkFlow/bin/Debug/TestWorkFlow.pdb create mode 100644 SAF/Test.SAF.Application.Workflow/TestWorkFlow/obj/Debug/TestWorkFlow.dll create mode 100644 SAF/Test.SAF.Application.Workflow/TestWorkFlow/obj/Debug/TestWorkFlow.dll.incr create mode 100644 SAF/Test.SAF.Application.Workflow/TestWorkFlow/obj/Debug/TestWorkFlow.pdb create mode 100644 SAF/Test.SAF.Application.Workflow/TestWorkFlow/obj/Debug/TestWorkFlow.projdata create mode 100644 SAF/Test.SAF.Application.Workflow/app.config create mode 100644 SAF/Test.SAF.Application.Workflow/bin/Debug/SAF.Application.Configuration.dll create mode 100644 SAF/Test.SAF.Application.Workflow/bin/Debug/SAF.Application.Configuration.pdb create mode 100644 SAF/Test.SAF.Application.Workflow/bin/Debug/SAF.Application.DocumentLayer.dll create mode 100644 SAF/Test.SAF.Application.Workflow/bin/Debug/SAF.Application.DocumentLayer.pdb create mode 100644 SAF/Test.SAF.Application.Workflow/bin/Debug/SAF.Application.Workflow.dll create mode 100644 SAF/Test.SAF.Application.Workflow/bin/Debug/SAF.Application.Workflow.pdb create mode 100644 SAF/Test.SAF.Application.Workflow/bin/Debug/SAF.Configuration.dll create mode 100644 SAF/Test.SAF.Application.Workflow/bin/Debug/SAF.Configuration.pdb create mode 100644 SAF/Test.SAF.Application.Workflow/bin/Debug/Test.SAF.Application.Workflow.exe create mode 100644 SAF/Test.SAF.Application.Workflow/bin/Debug/Test.SAF.Application.Workflow.exe.config create mode 100644 SAF/Test.SAF.Application.Workflow/bin/Debug/Test.SAF.Application.Workflow.pdb create mode 100644 SAF/Test.SAF.Application.Workflow/bin/Debug/TestDocumentLayer.dll create mode 100644 SAF/Test.SAF.Application.Workflow/bin/Debug/TestDocumentLayer.pdb create mode 100644 SAF/Test.SAF.Application.Workflow/bin/Debug/TestWorkFlow.dll create mode 100644 SAF/Test.SAF.Application.Workflow/bin/Debug/TestWorkFlow.pdb create mode 100644 SAF/Test.SAF.Application.Workflow/obj/Debug/Test.SAF.Application.Workflow.exe create mode 100644 SAF/Test.SAF.Application.Workflow/obj/Debug/Test.SAF.Application.Workflow.exe.incr create mode 100644 SAF/Test.SAF.Application.Workflow/obj/Debug/Test.SAF.Application.Workflow.pdb create mode 100644 SAF/Test.SAF.Application.Workflow/obj/Debug/Test.SAF.Application.Workflow.projdata create mode 100644 SAF/Test.SAF.Authentication/Test.SAF.Authentication.sln create mode 100644 SAF/Test.SAF.Authentication/Test.SAF.Authentication.suo create mode 100644 SAF/Test.SAF.Authentication/TestConsole/App.ico create mode 100644 SAF/Test.SAF.Authentication/TestConsole/AssemblyInfo.cs create mode 100644 SAF/Test.SAF.Authentication/TestConsole/Class1.cs create mode 100644 SAF/Test.SAF.Authentication/TestConsole/TestConsole.csproj create mode 100644 SAF/Test.SAF.Authentication/TestConsole/TestConsole.csproj.user create mode 100644 SAF/Test.SAF.Authentication/TestConsole/app.config create mode 100644 SAF/Test.SAF.Authentication/TestConsole/bin/Debug/SAF.Authentication.dll create mode 100644 SAF/Test.SAF.Authentication/TestConsole/bin/Debug/SAF.Authentication.pdb create mode 100644 SAF/Test.SAF.Authentication/TestConsole/bin/Debug/SAF.Configuration.dll create mode 100644 SAF/Test.SAF.Authentication/TestConsole/bin/Debug/SAF.Configuration.pdb create mode 100644 SAF/Test.SAF.Authentication/TestConsole/bin/Debug/SAF.Utility.dll create mode 100644 SAF/Test.SAF.Authentication/TestConsole/bin/Debug/SAF.Utility.pdb create mode 100644 SAF/Test.SAF.Authentication/TestConsole/bin/Debug/TestConsole.exe create mode 100644 SAF/Test.SAF.Authentication/TestConsole/bin/Debug/TestConsole.exe.config create mode 100644 SAF/Test.SAF.Authentication/TestConsole/bin/Debug/TestConsole.pdb create mode 100644 SAF/Test.SAF.Authentication/TestConsole/obj/Debug/TestConsole.exe create mode 100644 SAF/Test.SAF.Authentication/TestConsole/obj/Debug/TestConsole.exe.incr create mode 100644 SAF/Test.SAF.Authentication/TestConsole/obj/Debug/TestConsole.pdb create mode 100644 SAF/Test.SAF.Authentication/TestConsole/obj/Debug/TestConsole.projdata create mode 100644 SAF/Test.SAF.Authorization/Test.SAF.Authorization.sln create mode 100644 SAF/Test.SAF.Authorization/Test.SAF.Authorization.suo create mode 100644 SAF/Test.SAF.Authorization/TestConsole/App.ico create mode 100644 SAF/Test.SAF.Authorization/TestConsole/AssemblyInfo.cs create mode 100644 SAF/Test.SAF.Authorization/TestConsole/Class1.cs create mode 100644 SAF/Test.SAF.Authorization/TestConsole/TestConsole.csproj create mode 100644 SAF/Test.SAF.Authorization/TestConsole/TestConsole.csproj.user create mode 100644 SAF/Test.SAF.Authorization/TestConsole/app.config create mode 100644 SAF/Test.SAF.Authorization/TestConsole/bin/Debug/SAF.Authorization.dll create mode 100644 SAF/Test.SAF.Authorization/TestConsole/bin/Debug/SAF.Authorization.pdb create mode 100644 SAF/Test.SAF.Authorization/TestConsole/bin/Debug/SAF.Configuration.dll create mode 100644 SAF/Test.SAF.Authorization/TestConsole/bin/Debug/SAF.Configuration.pdb create mode 100644 SAF/Test.SAF.Authorization/TestConsole/bin/Debug/SAF.Library.Security.dll create mode 100644 SAF/Test.SAF.Authorization/TestConsole/bin/Debug/SAF.Library.Security.pdb create mode 100644 SAF/Test.SAF.Authorization/TestConsole/bin/Debug/TestConsole.exe create mode 100644 SAF/Test.SAF.Authorization/TestConsole/bin/Debug/TestConsole.exe.config create mode 100644 SAF/Test.SAF.Authorization/TestConsole/bin/Debug/TestConsole.pdb create mode 100644 SAF/Test.SAF.Authorization/TestConsole/obj/Debug/TestConsole.exe create mode 100644 SAF/Test.SAF.Authorization/TestConsole/obj/Debug/TestConsole.exe.incr create mode 100644 SAF/Test.SAF.Authorization/TestConsole/obj/Debug/TestConsole.pdb create mode 100644 SAF/Test.SAF.Authorization/TestConsole/obj/Debug/TestConsole.projdata create mode 100644 SAF/Test.SAF.Cache/Test.SAF.Cache.sln create mode 100644 SAF/Test.SAF.Cache/Test.SAF.Cache.suo create mode 100644 SAF/Test.SAF.Cache/TestConsole/App.ico create mode 100644 SAF/Test.SAF.Cache/TestConsole/AssemblyInfo.cs create mode 100644 SAF/Test.SAF.Cache/TestConsole/Class1.cs create mode 100644 SAF/Test.SAF.Cache/TestConsole/TestConsole.csproj create mode 100644 SAF/Test.SAF.Cache/TestConsole/TestConsole.csproj.user create mode 100644 SAF/Test.SAF.Cache/TestConsole/app.config create mode 100644 SAF/Test.SAF.Cache/TestConsole/bin/Debug/SAF.Cache.dll create mode 100644 SAF/Test.SAF.Cache/TestConsole/bin/Debug/SAF.Cache.pdb create mode 100644 SAF/Test.SAF.Cache/TestConsole/bin/Debug/SAF.Configuration.dll create mode 100644 SAF/Test.SAF.Cache/TestConsole/bin/Debug/SAF.Configuration.pdb create mode 100644 SAF/Test.SAF.Cache/TestConsole/bin/Debug/SAF.Library.Security.dll create mode 100644 SAF/Test.SAF.Cache/TestConsole/bin/Debug/SAF.Library.Security.pdb create mode 100644 SAF/Test.SAF.Cache/TestConsole/bin/Debug/TestConsole.exe create mode 100644 SAF/Test.SAF.Cache/TestConsole/bin/Debug/TestConsole.exe.config create mode 100644 SAF/Test.SAF.Cache/TestConsole/bin/Debug/TestConsole.pdb create mode 100644 SAF/Test.SAF.Cache/TestConsole/obj/Debug/TestConsole.exe create mode 100644 SAF/Test.SAF.Cache/TestConsole/obj/Debug/TestConsole.exe.incr create mode 100644 SAF/Test.SAF.Cache/TestConsole/obj/Debug/TestConsole.pdb create mode 100644 SAF/Test.SAF.Cache/TestConsole/obj/Debug/TestConsole.projdata create mode 100644 SAF/Test.SAF.ClassFactory/Test.SAF.ClassFactory.sln create mode 100644 SAF/Test.SAF.ClassFactory/Test.SAF.ClassFactory.suo create mode 100644 SAF/Test.SAF.ClassFactory/TestConcreteFactory/AssemblyInfo.cs create mode 100644 SAF/Test.SAF.ClassFactory/TestConcreteFactory/TestConcreteFactory.cs create mode 100644 SAF/Test.SAF.ClassFactory/TestConcreteFactory/TestConcreteFactory.csproj create mode 100644 SAF/Test.SAF.ClassFactory/TestConcreteFactory/TestConcreteFactory.csproj.user create mode 100644 SAF/Test.SAF.ClassFactory/TestConcreteFactory/bin/Debug/TestConcreteFactory.dll create mode 100644 SAF/Test.SAF.ClassFactory/TestConcreteFactory/bin/Debug/TestConcreteFactory.pdb create mode 100644 SAF/Test.SAF.ClassFactory/TestConcreteFactory/obj/Debug/TestConcreteFactory.dll create mode 100644 SAF/Test.SAF.ClassFactory/TestConcreteFactory/obj/Debug/TestConcreteFactory.dll.incr create mode 100644 SAF/Test.SAF.ClassFactory/TestConcreteFactory/obj/Debug/TestConcreteFactory.pdb create mode 100644 SAF/Test.SAF.ClassFactory/TestConcreteFactory/obj/Debug/TestConcreteFactory.projdata create mode 100644 SAF/Test.SAF.ClassFactory/TestConsole/App.ico create mode 100644 SAF/Test.SAF.ClassFactory/TestConsole/AssemblyInfo.cs create mode 100644 SAF/Test.SAF.ClassFactory/TestConsole/TestConsole.cs create mode 100644 SAF/Test.SAF.ClassFactory/TestConsole/TestConsole.csproj create mode 100644 SAF/Test.SAF.ClassFactory/TestConsole/TestConsole.csproj.user create mode 100644 SAF/Test.SAF.ClassFactory/TestConsole/app.config create mode 100644 SAF/Test.SAF.ClassFactory/TestConsole/bin/Debug/SAF.ClassFactory.dll create mode 100644 SAF/Test.SAF.ClassFactory/TestConsole/bin/Debug/SAF.ClassFactory.pdb create mode 100644 SAF/Test.SAF.ClassFactory/TestConsole/bin/Debug/SAF.Configuration.dll create mode 100644 SAF/Test.SAF.ClassFactory/TestConsole/bin/Debug/SAF.Configuration.pdb create mode 100644 SAF/Test.SAF.ClassFactory/TestConsole/bin/Debug/SAF.Library.Security.dll create mode 100644 SAF/Test.SAF.ClassFactory/TestConsole/bin/Debug/SAF.Library.Security.pdb create mode 100644 SAF/Test.SAF.ClassFactory/TestConsole/bin/Debug/TestConcreteFactory.dll create mode 100644 SAF/Test.SAF.ClassFactory/TestConsole/bin/Debug/TestConcreteFactory.pdb create mode 100644 SAF/Test.SAF.ClassFactory/TestConsole/bin/Debug/TestConsole.exe create mode 100644 SAF/Test.SAF.ClassFactory/TestConsole/bin/Debug/TestConsole.exe.config create mode 100644 SAF/Test.SAF.ClassFactory/TestConsole/bin/Debug/TestConsole.pdb create mode 100644 SAF/Test.SAF.ClassFactory/TestConsole/obj/Debug/TestConsole.exe create mode 100644 SAF/Test.SAF.ClassFactory/TestConsole/obj/Debug/TestConsole.exe.incr create mode 100644 SAF/Test.SAF.ClassFactory/TestConsole/obj/Debug/TestConsole.pdb create mode 100644 SAF/Test.SAF.ClassFactory/TestConsole/obj/Debug/TestConsole.projdata create mode 100644 SAF/Test.SAF.Configuration/Application.Configuration/Application.Configuration.csproj create mode 100644 SAF/Test.SAF.Configuration/Application.Configuration/Application.Configuration.csproj.user create mode 100644 SAF/Test.SAF.Configuration/Application.Configuration/AssemblyInfo.cs create mode 100644 SAF/Test.SAF.Configuration/Application.Configuration/ConfigurationManager.cs create mode 100644 SAF/Test.SAF.Configuration/Application.Configuration/bin/Debug/Application.Configuration.dll create mode 100644 SAF/Test.SAF.Configuration/Application.Configuration/bin/Debug/Application.Configuration.pdb create mode 100644 SAF/Test.SAF.Configuration/Application.Configuration/bin/Debug/SAF.Configuration.dll create mode 100644 SAF/Test.SAF.Configuration/Application.Configuration/bin/Debug/SAF.Configuration.pdb create mode 100644 SAF/Test.SAF.Configuration/Application.Configuration/bin/Debug/SAF.Library.Security.dll create mode 100644 SAF/Test.SAF.Configuration/Application.Configuration/bin/Debug/SAF.Library.Security.pdb create mode 100644 SAF/Test.SAF.Configuration/Application.Configuration/obj/Debug/Application.Configuration.dll create mode 100644 SAF/Test.SAF.Configuration/Application.Configuration/obj/Debug/Application.Configuration.dll.incr create mode 100644 SAF/Test.SAF.Configuration/Application.Configuration/obj/Debug/Application.Configuration.pdb create mode 100644 SAF/Test.SAF.Configuration/Application.Configuration/obj/Debug/Application.Configuration.projdata create mode 100644 SAF/Test.SAF.Configuration/ConfigurationData/AssemblyInfo.cs create mode 100644 SAF/Test.SAF.Configuration/ConfigurationData/ConfigurationData.csproj create mode 100644 SAF/Test.SAF.Configuration/ConfigurationData/ConfigurationData.csproj.webinfo create mode 100644 SAF/Test.SAF.Configuration/ConfigurationData/ConfigurationData.vsdisco create mode 100644 SAF/Test.SAF.Configuration/ConfigurationData/ConfigurationService.asmx create mode 100644 SAF/Test.SAF.Configuration/ConfigurationData/ConfigurationService.asmx.cs create mode 100644 SAF/Test.SAF.Configuration/ConfigurationData/ConfigurationService.asmx.resx create mode 100644 SAF/Test.SAF.Configuration/ConfigurationData/Global.asax create mode 100644 SAF/Test.SAF.Configuration/ConfigurationData/Global.asax.cs create mode 100644 SAF/Test.SAF.Configuration/ConfigurationData/Global.asax.resx create mode 100644 SAF/Test.SAF.Configuration/ConfigurationData/Web.config create mode 100644 SAF/Test.SAF.Configuration/ConfigurationData/_vti_pvt/access.cnf create mode 100644 SAF/Test.SAF.Configuration/ConfigurationData/_vti_pvt/deptodoc.btr create mode 100644 SAF/Test.SAF.Configuration/ConfigurationData/_vti_pvt/doctodep.btr create mode 100644 SAF/Test.SAF.Configuration/ConfigurationData/_vti_pvt/service.cnf create mode 100644 SAF/Test.SAF.Configuration/ConfigurationData/_vti_pvt/service.lck create mode 100644 SAF/Test.SAF.Configuration/ConfigurationData/_vti_pvt/services.cnf create mode 100644 SAF/Test.SAF.Configuration/ConfigurationData/bin/ConfigurationData.dll create mode 100644 SAF/Test.SAF.Configuration/ConfigurationData/bin/ConfigurationData.pdb create mode 100644 SAF/Test.SAF.Configuration/Test.SAF.Configuration.sln create mode 100644 SAF/Test.SAF.Configuration/Test.SAF.Configuration.suo create mode 100644 SAF/Test.SAF.Configuration/TestConfigurationAgent/AssemblyInfo.cs create mode 100644 SAF/Test.SAF.Configuration/TestConfigurationAgent/TestConfigurationAgent.cs create mode 100644 SAF/Test.SAF.Configuration/TestConfigurationAgent/TestConfigurationAgent.csproj create mode 100644 SAF/Test.SAF.Configuration/TestConfigurationAgent/TestConfigurationAgent.csproj.user create mode 100644 SAF/Test.SAF.Configuration/TestConfigurationAgent/Web References/localhost/ConfigurationService.disco create mode 100644 SAF/Test.SAF.Configuration/TestConfigurationAgent/Web References/localhost/ConfigurationService.wsdl create mode 100644 SAF/Test.SAF.Configuration/TestConfigurationAgent/Web References/localhost/Reference.cs create mode 100644 SAF/Test.SAF.Configuration/TestConfigurationAgent/Web References/localhost/Reference.map create mode 100644 SAF/Test.SAF.Configuration/TestConfigurationAgent/bin/Debug/SAF.Configuration.dll create mode 100644 SAF/Test.SAF.Configuration/TestConfigurationAgent/bin/Debug/SAF.Configuration.pdb create mode 100644 SAF/Test.SAF.Configuration/TestConfigurationAgent/bin/Debug/SAF.Library.Security.dll create mode 100644 SAF/Test.SAF.Configuration/TestConfigurationAgent/bin/Debug/SAF.Library.Security.pdb create mode 100644 SAF/Test.SAF.Configuration/TestConfigurationAgent/bin/Debug/TestConfigurationAgent.dll create mode 100644 SAF/Test.SAF.Configuration/TestConfigurationAgent/bin/Debug/TestConfigurationAgent.pdb create mode 100644 SAF/Test.SAF.Configuration/TestConfigurationAgent/obj/Debug/TempPE/Web References.localhost.Reference.cs.dll create mode 100644 SAF/Test.SAF.Configuration/TestConfigurationAgent/obj/Debug/TestConfigurationAgent.dll create mode 100644 SAF/Test.SAF.Configuration/TestConfigurationAgent/obj/Debug/TestConfigurationAgent.dll.incr create mode 100644 SAF/Test.SAF.Configuration/TestConfigurationAgent/obj/Debug/TestConfigurationAgent.pdb create mode 100644 SAF/Test.SAF.Configuration/TestConfigurationAgent/obj/Debug/TestConfigurationAgent.projdata create mode 100644 SAF/Test.SAF.Configuration/TestConsole/App.ico create mode 100644 SAF/Test.SAF.Configuration/TestConsole/AssemblyInfo.cs create mode 100644 SAF/Test.SAF.Configuration/TestConsole/Class1.cs create mode 100644 SAF/Test.SAF.Configuration/TestConsole/TestConsole.csproj create mode 100644 SAF/Test.SAF.Configuration/TestConsole/TestConsole.csproj.user create mode 100644 SAF/Test.SAF.Configuration/TestConsole/app.config create mode 100644 SAF/Test.SAF.Configuration/TestConsole/bin/Debug/Application.Configuration.dll create mode 100644 SAF/Test.SAF.Configuration/TestConsole/bin/Debug/Application.Configuration.pdb create mode 100644 SAF/Test.SAF.Configuration/TestConsole/bin/Debug/SAF.Configuration.dll create mode 100644 SAF/Test.SAF.Configuration/TestConsole/bin/Debug/SAF.Configuration.pdb create mode 100644 SAF/Test.SAF.Configuration/TestConsole/bin/Debug/SAF.Library.Security.dll create mode 100644 SAF/Test.SAF.Configuration/TestConsole/bin/Debug/SAF.Library.Security.pdb create mode 100644 SAF/Test.SAF.Configuration/TestConsole/bin/Debug/TestConfigurationAgent.dll create mode 100644 SAF/Test.SAF.Configuration/TestConsole/bin/Debug/TestConfigurationAgent.pdb create mode 100644 SAF/Test.SAF.Configuration/TestConsole/bin/Debug/TestConsole.exe create mode 100644 SAF/Test.SAF.Configuration/TestConsole/bin/Debug/TestConsole.exe.config create mode 100644 SAF/Test.SAF.Configuration/TestConsole/bin/Debug/TestConsole.pdb create mode 100644 SAF/Test.SAF.Configuration/TestConsole/obj/Debug/TempPE/Web References.localhost.Reference.cs.dll create mode 100644 SAF/Test.SAF.Configuration/TestConsole/obj/Debug/TestConsole.exe create mode 100644 SAF/Test.SAF.Configuration/TestConsole/obj/Debug/TestConsole.exe.incr create mode 100644 SAF/Test.SAF.Configuration/TestConsole/obj/Debug/TestConsole.pdb create mode 100644 SAF/Test.SAF.Configuration/TestConsole/obj/Debug/TestConsole.projdata create mode 100644 SAF/Test.SAF.MessageQueue/Test.SAF.MessageQueue.sln create mode 100644 SAF/Test.SAF.MessageQueue/Test.SAF.MessageQueue.suo create mode 100644 SAF/Test.SAF.MessageQueue/TestConsole/App.ico create mode 100644 SAF/Test.SAF.MessageQueue/TestConsole/AssemblyInfo.cs create mode 100644 SAF/Test.SAF.MessageQueue/TestConsole/Class1.cs create mode 100644 SAF/Test.SAF.MessageQueue/TestConsole/TestConsole.csproj create mode 100644 SAF/Test.SAF.MessageQueue/TestConsole/TestConsole.csproj.user create mode 100644 SAF/Test.SAF.MessageQueue/TestConsole/app.config create mode 100644 SAF/Test.SAF.MessageQueue/TestConsole/bin/Debug/Interop.MQAX200.dll create mode 100644 SAF/Test.SAF.MessageQueue/TestConsole/bin/Debug/SAF.Configuration.dll create mode 100644 SAF/Test.SAF.MessageQueue/TestConsole/bin/Debug/SAF.Configuration.pdb create mode 100644 SAF/Test.SAF.MessageQueue/TestConsole/bin/Debug/SAF.MessageQueue.dll create mode 100644 SAF/Test.SAF.MessageQueue/TestConsole/bin/Debug/SAF.MessageQueue.pdb create mode 100644 SAF/Test.SAF.MessageQueue/TestConsole/bin/Debug/TestConsole.exe create mode 100644 SAF/Test.SAF.MessageQueue/TestConsole/bin/Debug/TestConsole.exe.config create mode 100644 SAF/Test.SAF.MessageQueue/TestConsole/bin/Debug/TestConsole.pdb create mode 100644 SAF/Test.SAF.MessageQueue/TestConsole/obj/Debug/TestConsole.exe create mode 100644 SAF/Test.SAF.MessageQueue/TestConsole/obj/Debug/TestConsole.exe.incr create mode 100644 SAF/Test.SAF.MessageQueue/TestConsole/obj/Debug/TestConsole.pdb create mode 100644 SAF/Test.SAF.MessageQueue/TestConsole/obj/Debug/TestConsole.projdata create mode 100644 SAF/Test.SAF.Transaction/Test.SAF.Transaction.sln create mode 100644 SAF/Test.SAF.Transaction/Test.SAF.Transaction.suo create mode 100644 SAF/Test.SAF.Transaction/TestConsole/App.ico create mode 100644 SAF/Test.SAF.Transaction/TestConsole/AssemblyInfo.cs create mode 100644 SAF/Test.SAF.Transaction/TestConsole/Class1.cs create mode 100644 SAF/Test.SAF.Transaction/TestConsole/TestConsole.csproj create mode 100644 SAF/Test.SAF.Transaction/TestConsole/TestConsole.csproj.user create mode 100644 SAF/Test.SAF.Transaction/TestConsole/bin/Debug/SAF.Transaction.dll create mode 100644 SAF/Test.SAF.Transaction/TestConsole/bin/Debug/SAF.Transaction.pdb create mode 100644 SAF/Test.SAF.Transaction/TestConsole/bin/Debug/TestConsole.exe create mode 100644 SAF/Test.SAF.Transaction/TestConsole/bin/Debug/TestConsole.pdb create mode 100644 SAF/Test.SAF.Transaction/TestConsole/obj/Debug/TestConsole.exe create mode 100644 SAF/Test.SAF.Transaction/TestConsole/obj/Debug/TestConsole.exe.incr create mode 100644 SAF/Test.SAF.Transaction/TestConsole/obj/Debug/TestConsole.pdb create mode 100644 SAF/Test.SAF.Transaction/TestConsole/obj/Debug/TestConsole.projdata create mode 100644 SAF/Test.Server.SAF.Cryptography/Test.Server.SAF.Cryptography.sln create mode 100644 SAF/Test.Server.SAF.Cryptography/Test.Server.SAF.Cryptography.suo create mode 100644 SAF/Test.Server.SAF.Cryptography/TestConsole/App.ico create mode 100644 SAF/Test.Server.SAF.Cryptography/TestConsole/AssemblyInfo.cs create mode 100644 SAF/Test.Server.SAF.Cryptography/TestConsole/Class1.cs create mode 100644 SAF/Test.Server.SAF.Cryptography/TestConsole/TestConsole.csproj create mode 100644 SAF/Test.Server.SAF.Cryptography/TestConsole/TestConsole.csproj.user create mode 100644 SAF/Test.Server.SAF.Cryptography/TestConsole/app.config create mode 100644 SAF/Test.Server.SAF.Cryptography/TestConsole/bin/Debug/Microsoft.Web.Services.dll create mode 100644 SAF/Test.Server.SAF.Cryptography/TestConsole/bin/Debug/SAF.Configuration.dll create mode 100644 SAF/Test.Server.SAF.Cryptography/TestConsole/bin/Debug/SAF.Configuration.pdb create mode 100644 SAF/Test.Server.SAF.Cryptography/TestConsole/bin/Debug/SAF.Cryptography.dll create mode 100644 SAF/Test.Server.SAF.Cryptography/TestConsole/bin/Debug/SAF.Cryptography.pdb create mode 100644 SAF/Test.Server.SAF.Cryptography/TestConsole/bin/Debug/Test.BusinessLibrary.dll create mode 100644 SAF/Test.Server.SAF.Cryptography/TestConsole/bin/Debug/Test.BusinessLibrary.pdb create mode 100644 SAF/Test.Server.SAF.Cryptography/TestConsole/bin/Debug/TestConsole.exe create mode 100644 SAF/Test.Server.SAF.Cryptography/TestConsole/bin/Debug/TestConsole.exe.config create mode 100644 SAF/Test.Server.SAF.Cryptography/TestConsole/bin/Debug/TestConsole.pdb create mode 100644 SAF/Test.Server.SAF.Cryptography/TestConsole/obj/Debug/TestConsole.exe create mode 100644 SAF/Test.Server.SAF.Cryptography/TestConsole/obj/Debug/TestConsole.exe.incr create mode 100644 SAF/Test.Server.SAF.Cryptography/TestConsole/obj/Debug/TestConsole.pdb create mode 100644 SAF/Test.Server.SAF.Cryptography/TestConsole/obj/Debug/TestConsole.projdata create mode 100644 SAF/Test.Server.SAF.EventNotification/Test.Server.SAF.EventNotification.sln create mode 100644 SAF/Test.Server.SAF.EventNotification/Test.Server.SAF.EventNotification.suo create mode 100644 SAF/Test.Server.SAF.EventNotification/TestConsole/App.ico create mode 100644 SAF/Test.Server.SAF.EventNotification/TestConsole/AssemblyInfo.cs create mode 100644 SAF/Test.Server.SAF.EventNotification/TestConsole/Class1.cs create mode 100644 SAF/Test.Server.SAF.EventNotification/TestConsole/TestConsole.csproj create mode 100644 SAF/Test.Server.SAF.EventNotification/TestConsole/TestConsole.csproj.user create mode 100644 SAF/Test.Server.SAF.EventNotification/TestConsole/app.config create mode 100644 SAF/Test.Server.SAF.EventNotification/TestConsole/bin/Debug/SAF.Configuration.dll create mode 100644 SAF/Test.Server.SAF.EventNotification/TestConsole/bin/Debug/SAF.Configuration.pdb create mode 100644 SAF/Test.Server.SAF.EventNotification/TestConsole/bin/Debug/SAF.EventNotification.dll create mode 100644 SAF/Test.Server.SAF.EventNotification/TestConsole/bin/Debug/SAF.EventNotification.pdb create mode 100644 SAF/Test.Server.SAF.EventNotification/TestConsole/bin/Debug/SAF.Library.Security.dll create mode 100644 SAF/Test.Server.SAF.EventNotification/TestConsole/bin/Debug/SAF.Library.Security.pdb create mode 100644 SAF/Test.Server.SAF.EventNotification/TestConsole/bin/Debug/TestConsole.exe create mode 100644 SAF/Test.Server.SAF.EventNotification/TestConsole/bin/Debug/TestConsole.exe.config create mode 100644 SAF/Test.Server.SAF.EventNotification/TestConsole/bin/Debug/TestConsole.pdb create mode 100644 SAF/Test.Server.SAF.EventNotification/TestConsole/obj/Debug/TestConsole.exe create mode 100644 SAF/Test.Server.SAF.EventNotification/TestConsole/obj/Debug/TestConsole.exe.incr create mode 100644 SAF/Test.Server.SAF.EventNotification/TestConsole/obj/Debug/TestConsole.pdb create mode 100644 SAF/Test.Server.SAF.EventNotification/TestConsole/obj/Debug/TestConsole.projdata create mode 100644 SAF/readme.txt create mode 100644 SAF_VS2003/SAF/Certificates/CompanyA.pfx create mode 100644 SAF_VS2003/SAF/Certificates/CompanyA_PublicKey.cer create mode 100644 SAF_VS2003/SAF/Certificates/CompanyB.pfx create mode 100644 SAF_VS2003/SAF/Certificates/CompanyB_PublicKey.cer create mode 100644 SAF_VS2003/SAF/Certificates/Dell420.cer create mode 100644 SAF_VS2003/SAF/Certificates/XinChen.pfx create mode 100644 SAF_VS2003/SAF/SAF.Application.Configuration/AssemblyInfo.cs create mode 100644 SAF_VS2003/SAF/SAF.Application.Configuration/ConfigurationManager.cs create mode 100644 SAF_VS2003/SAF/SAF.Application.Configuration/DocumentLayerConfiguration.cs create mode 100644 SAF_VS2003/SAF/SAF.Application.Configuration/SAF.Application.Configuration.csproj create mode 100644 SAF_VS2003/SAF/SAF.Application.Configuration/SAF.Application.Configuration.csproj.user create mode 100644 SAF_VS2003/SAF/SAF.Application.Configuration/WorkFlowConfiguration.cs create mode 100644 SAF_VS2003/SAF/SAF.Application.Configuration/bin/Debug/SAF.Application.Configuration.dll create mode 100644 SAF_VS2003/SAF/SAF.Application.Configuration/bin/Debug/SAF.Application.Configuration.pdb create mode 100644 SAF_VS2003/SAF/SAF.Application.Configuration/obj/Debug/SAF.Application.Configuration.dll create mode 100644 SAF_VS2003/SAF/SAF.Application.Configuration/obj/Debug/SAF.Application.Configuration.dll.incr create mode 100644 SAF_VS2003/SAF/SAF.Application.Configuration/obj/Debug/SAF.Application.Configuration.pdb create mode 100644 SAF_VS2003/SAF/SAF.Application.Configuration/obj/Debug/SAF.Application.Configuration.projdata create mode 100644 SAF_VS2003/SAF/SAF.Application.Configuration/obj/Debug/SAF.Application.Configuration.projdata1 create mode 100644 SAF_VS2003/SAF/SAF.Application.DocumentLayer/AssemblyInfo.cs create mode 100644 SAF_VS2003/SAF/SAF.Application.DocumentLayer/Class1.cs create mode 100644 SAF_VS2003/SAF/SAF.Application.DocumentLayer/DocumentBlankLayer.cs create mode 100644 SAF_VS2003/SAF/SAF.Application.DocumentLayer/DocumentLayer.cs create mode 100644 SAF_VS2003/SAF/SAF.Application.DocumentLayer/SAF.Application.DocumentLayer.csproj create mode 100644 SAF_VS2003/SAF/SAF.Application.DocumentLayer/SAF.Application.DocumentLayer.csproj.user create mode 100644 SAF_VS2003/SAF/SAF.Application.DocumentLayer/bin/Debug/SAF.Application.Configuration.dll create mode 100644 SAF_VS2003/SAF/SAF.Application.DocumentLayer/bin/Debug/SAF.Application.Configuration.pdb create mode 100644 SAF_VS2003/SAF/SAF.Application.DocumentLayer/bin/Debug/SAF.Application.DocumentLayer.dll create mode 100644 SAF_VS2003/SAF/SAF.Application.DocumentLayer/bin/Debug/SAF.Application.DocumentLayer.pdb create mode 100644 SAF_VS2003/SAF/SAF.Application.DocumentLayer/obj/Debug/SAF.Application.DocumentLayer.dll create mode 100644 SAF_VS2003/SAF/SAF.Application.DocumentLayer/obj/Debug/SAF.Application.DocumentLayer.dll.incr create mode 100644 SAF_VS2003/SAF/SAF.Application.DocumentLayer/obj/Debug/SAF.Application.DocumentLayer.pdb create mode 100644 SAF_VS2003/SAF/SAF.Application.DocumentLayer/obj/Debug/SAF.Application.DocumentLayer.projdata create mode 100644 SAF_VS2003/SAF/SAF.Application.DocumentLayer/obj/Debug/SAF.Application.DocumentLayer.projdata1 create mode 100644 SAF_VS2003/SAF/SAF.Application.DocumentLayer/obj/Debug/SAF.Application.DocumentLayer.projdata2 create mode 100644 SAF_VS2003/SAF/SAF.Application.Workflow/AssemblyInfo.cs create mode 100644 SAF_VS2003/SAF/SAF.Application.Workflow/Class1.cs create mode 100644 SAF_VS2003/SAF/SAF.Application.Workflow/SAF.Application.Workflow.csproj create mode 100644 SAF_VS2003/SAF/SAF.Application.Workflow/SAF.Application.Workflow.csproj.user create mode 100644 SAF_VS2003/SAF/SAF.Application.Workflow/Workflow.cs create mode 100644 SAF_VS2003/SAF/SAF.Application.Workflow/bin/Debug/SAF.Application.DocumentLayer.dll create mode 100644 SAF_VS2003/SAF/SAF.Application.Workflow/bin/Debug/SAF.Application.DocumentLayer.pdb create mode 100644 SAF_VS2003/SAF/SAF.Application.Workflow/bin/Debug/SAF.Application.Workflow.dll create mode 100644 SAF_VS2003/SAF/SAF.Application.Workflow/bin/Debug/SAF.Application.Workflow.pdb create mode 100644 SAF_VS2003/SAF/SAF.Application.Workflow/obj/Debug/SAF.Application.Workflow.dll create mode 100644 SAF_VS2003/SAF/SAF.Application.Workflow/obj/Debug/SAF.Application.Workflow.dll.incr create mode 100644 SAF_VS2003/SAF/SAF.Application.Workflow/obj/Debug/SAF.Application.Workflow.pdb create mode 100644 SAF_VS2003/SAF/SAF.Application.Workflow/obj/Debug/SAF.Application.Workflow.projdata create mode 100644 SAF_VS2003/SAF/SAF.Application.Workflow/obj/Debug/SAF.Application.Workflow.projdata1 create mode 100644 SAF_VS2003/SAF/SAF.Authentication/ADAuthenticationProvider.cs create mode 100644 SAF_VS2003/SAF/SAF.Authentication/AssemblyInfo.cs create mode 100644 SAF_VS2003/SAF/SAF.Authentication/Class1.cs create mode 100644 SAF_VS2003/SAF/SAF.Authentication/SAF.Authentication.csproj create mode 100644 SAF_VS2003/SAF/SAF.Authentication/SAF.Authentication.csproj.user create mode 100644 SAF_VS2003/SAF/SAF.Authentication/SAFIdentity.cs create mode 100644 SAF_VS2003/SAF/SAF.Authentication/SAFPrincipal.cs create mode 100644 SAF_VS2003/SAF/SAF.Authentication/bin/Debug/SAF.Authentication.dll create mode 100644 SAF_VS2003/SAF/SAF.Authentication/bin/Debug/SAF.Authentication.pdb create mode 100644 SAF_VS2003/SAF/SAF.Authentication/bin/Debug/SAF.Configuration.dll create mode 100644 SAF_VS2003/SAF/SAF.Authentication/bin/Debug/SAF.Configuration.pdb create mode 100644 SAF_VS2003/SAF/SAF.Authentication/bin/Debug/SAF.Utility.dll create mode 100644 SAF_VS2003/SAF/SAF.Authentication/bin/Debug/SAF.Utility.pdb create mode 100644 SAF_VS2003/SAF/SAF.Authentication/obj/Debug/SAF.Authentication.dll create mode 100644 SAF_VS2003/SAF/SAF.Authentication/obj/Debug/SAF.Authentication.dll.incr create mode 100644 SAF_VS2003/SAF/SAF.Authentication/obj/Debug/SAF.Authentication.pdb create mode 100644 SAF_VS2003/SAF/SAF.Authentication/obj/Debug/SAF.Authentication.projdata create mode 100644 SAF_VS2003/SAF/SAF.Authentication/obj/Debug/SAF.Authentication.projdata1 create mode 100644 SAF_VS2003/SAF/SAF.Authorization/AssemblyInfo.cs create mode 100644 SAF_VS2003/SAF/SAF.Authorization/Class1.cs create mode 100644 SAF_VS2003/SAF/SAF.Authorization/DefaultAuthorizationProvider.cs create mode 100644 SAF_VS2003/SAF/SAF.Authorization/SAF.Authorization.csproj create mode 100644 SAF_VS2003/SAF/SAF.Authorization/SAF.Authorization.csproj.user create mode 100644 SAF_VS2003/SAF/SAF.Authorization/SAFSecurityAttribute.cs create mode 100644 SAF_VS2003/SAF/SAF.Authorization/SAFSecurityPermission.cs create mode 100644 SAF_VS2003/SAF/SAF.Authorization/bin/Debug/SAF.Authorization.dll create mode 100644 SAF_VS2003/SAF/SAF.Authorization/bin/Debug/SAF.Authorization.pdb create mode 100644 SAF_VS2003/SAF/SAF.Authorization/bin/Debug/SAF.Configuration.dll create mode 100644 SAF_VS2003/SAF/SAF.Authorization/bin/Debug/SAF.Configuration.pdb create mode 100644 SAF_VS2003/SAF/SAF.Authorization/bin/Debug/SAF.Library.Security.dll create mode 100644 SAF_VS2003/SAF/SAF.Authorization/bin/Debug/SAF.Library.Security.pdb create mode 100644 SAF_VS2003/SAF/SAF.Authorization/obj/Debug/SAF.Authorization.dll create mode 100644 SAF_VS2003/SAF/SAF.Authorization/obj/Debug/SAF.Authorization.dll.incr create mode 100644 SAF_VS2003/SAF/SAF.Authorization/obj/Debug/SAF.Authorization.pdb create mode 100644 SAF_VS2003/SAF/SAF.Authorization/obj/Debug/SAF.Authorization.projdata create mode 100644 SAF_VS2003/SAF/SAF.Authorization/obj/Debug/SAF.Authorization.projdata1 create mode 100644 SAF_VS2003/SAF/SAF.Cache/AssemblyInfo.cs create mode 100644 SAF_VS2003/SAF/SAF.Cache/Cache.cs create mode 100644 SAF_VS2003/SAF/SAF.Cache/DefaultCacheStrategy.cs create mode 100644 SAF_VS2003/SAF/SAF.Cache/SAF.Cache.csproj create mode 100644 SAF_VS2003/SAF/SAF.Cache/SAF.Cache.csproj.user create mode 100644 SAF_VS2003/SAF/SAF.Cache/bin/Debug/SAF.Cache.dll create mode 100644 SAF_VS2003/SAF/SAF.Cache/bin/Debug/SAF.Cache.pdb create mode 100644 SAF_VS2003/SAF/SAF.Cache/bin/Debug/SAF.Configuration.dll create mode 100644 SAF_VS2003/SAF/SAF.Cache/bin/Debug/SAF.Configuration.pdb create mode 100644 SAF_VS2003/SAF/SAF.Cache/bin/Debug/SAF.Library.Security.dll create mode 100644 SAF_VS2003/SAF/SAF.Cache/bin/Debug/SAF.Library.Security.pdb create mode 100644 SAF_VS2003/SAF/SAF.Cache/obj/Debug/SAF.Cache.dll create mode 100644 SAF_VS2003/SAF/SAF.Cache/obj/Debug/SAF.Cache.dll.incr create mode 100644 SAF_VS2003/SAF/SAF.Cache/obj/Debug/SAF.Cache.pdb create mode 100644 SAF_VS2003/SAF/SAF.Cache/obj/Debug/SAF.Cache.projdata create mode 100644 SAF_VS2003/SAF/SAF.Cache/obj/Debug/SAF.Cache.projdata1 create mode 100644 SAF_VS2003/SAF/SAF.ClassFactory/AssemblyInfo.cs create mode 100644 SAF_VS2003/SAF/SAF.ClassFactory/Class1.cs create mode 100644 SAF_VS2003/SAF/SAF.ClassFactory/SAF.ClassFactory.csproj create mode 100644 SAF_VS2003/SAF/SAF.ClassFactory/SAF.ClassFactory.csproj.user create mode 100644 SAF_VS2003/SAF/SAF.ClassFactory/bin/Debug/SAF.ClassFactory.dll create mode 100644 SAF_VS2003/SAF/SAF.ClassFactory/bin/Debug/SAF.ClassFactory.pdb create mode 100644 SAF_VS2003/SAF/SAF.ClassFactory/bin/Debug/SAF.Configuration.dll create mode 100644 SAF_VS2003/SAF/SAF.ClassFactory/bin/Debug/SAF.Configuration.pdb create mode 100644 SAF_VS2003/SAF/SAF.ClassFactory/bin/Debug/SAF.Library.Security.dll create mode 100644 SAF_VS2003/SAF/SAF.ClassFactory/bin/Debug/SAF.Library.Security.pdb create mode 100644 SAF_VS2003/SAF/SAF.ClassFactory/obj/Debug/SAF.ClassFactory.dll create mode 100644 SAF_VS2003/SAF/SAF.ClassFactory/obj/Debug/SAF.ClassFactory.dll.incr create mode 100644 SAF_VS2003/SAF/SAF.ClassFactory/obj/Debug/SAF.ClassFactory.pdb create mode 100644 SAF_VS2003/SAF/SAF.ClassFactory/obj/Debug/SAF.ClassFactory.projdata create mode 100644 SAF_VS2003/SAF/SAF.ClassFactory/obj/Debug/SAF.ClassFactory.projdata1 create mode 100644 SAF_VS2003/SAF/SAF.Configuration/AssemblyInfo.cs create mode 100644 SAF_VS2003/SAF/SAF.Configuration/AuthenticationConfiguration.cs create mode 100644 SAF_VS2003/SAF/SAF.Configuration/AuthorizationConfiguration.cs create mode 100644 SAF_VS2003/SAF/SAF.Configuration/CacheConfigration.cs create mode 100644 SAF_VS2003/SAF/SAF.Configuration/ClassFactoryConfiguration.cs create mode 100644 SAF_VS2003/SAF/SAF.Configuration/ConfigurationAgentManager.cs create mode 100644 SAF_VS2003/SAF/SAF.Configuration/ConfigurationManager.cs create mode 100644 SAF_VS2003/SAF/SAF.Configuration/CryptographyConfiguration.cs create mode 100644 SAF_VS2003/SAF/SAF.Configuration/EventNotificationConfiguration.cs create mode 100644 SAF_VS2003/SAF/SAF.Configuration/MessageQueueConfiguration.cs create mode 100644 SAF_VS2003/SAF/SAF.Configuration/SAF.Configuration.csproj create mode 100644 SAF_VS2003/SAF/SAF.Configuration/SAF.Configuration.csproj.user create mode 100644 SAF_VS2003/SAF/SAF.Configuration/ServiceConfiguration.cs create mode 100644 SAF_VS2003/SAF/SAF.Configuration/bin/Debug/SAF.Configuration.dll create mode 100644 SAF_VS2003/SAF/SAF.Configuration/bin/Debug/SAF.Configuration.pdb create mode 100644 SAF_VS2003/SAF/SAF.Configuration/bin/Debug/SAF.Library.Security.dll create mode 100644 SAF_VS2003/SAF/SAF.Configuration/bin/Debug/SAF.Library.Security.pdb create mode 100644 SAF_VS2003/SAF/SAF.Configuration/bin/Release/SAF.Configuration.dll create mode 100644 SAF_VS2003/SAF/SAF.Configuration/obj/Debug/SAF.Configuration.dll create mode 100644 SAF_VS2003/SAF/SAF.Configuration/obj/Debug/SAF.Configuration.dll.incr create mode 100644 SAF_VS2003/SAF/SAF.Configuration/obj/Debug/SAF.Configuration.pdb create mode 100644 SAF_VS2003/SAF/SAF.Configuration/obj/Debug/SAF.Configuration.projdata create mode 100644 SAF_VS2003/SAF/SAF.Configuration/obj/Debug/SAF.Configuration.projdata1 create mode 100644 SAF_VS2003/SAF/SAF.Configuration/obj/Debug/SAF.Configuration.projdata2 create mode 100644 SAF_VS2003/SAF/SAF.Configuration/obj/Debug/TempPE/Web References.localhost.Reference.cs.dll create mode 100644 SAF_VS2003/SAF/SAF.Configuration/obj/Release/SAF.Configuration.dll create mode 100644 SAF_VS2003/SAF/SAF.Configuration/obj/Release/SAF.Configuration.projdata create mode 100644 SAF_VS2003/SAF/SAF.Cryptography/AssemblyInfo.cs create mode 100644 SAF_VS2003/SAF/SAF.Cryptography/Certificate.cs create mode 100644 SAF_VS2003/SAF/SAF.Cryptography/CryptRemotingSinkHelper.cs create mode 100644 SAF_VS2003/SAF/SAF.Cryptography/CryptoRemotingClientSink.cs create mode 100644 SAF_VS2003/SAF/SAF.Cryptography/CryptoRemotingServerSink.cs create mode 100644 SAF_VS2003/SAF/SAF.Cryptography/EnDecryption.cs create mode 100644 SAF_VS2003/SAF/SAF.Cryptography/SAF.Cryptography.csproj create mode 100644 SAF_VS2003/SAF/SAF.Cryptography/SAF.Cryptography.csproj.user create mode 100644 SAF_VS2003/SAF/SAF.Cryptography/bin/Debug/Microsoft.Web.Services.dll create mode 100644 SAF_VS2003/SAF/SAF.Cryptography/bin/Debug/SAF.Configuration.dll create mode 100644 SAF_VS2003/SAF/SAF.Cryptography/bin/Debug/SAF.Configuration.pdb create mode 100644 SAF_VS2003/SAF/SAF.Cryptography/bin/Debug/SAF.Cryptography.dll create mode 100644 SAF_VS2003/SAF/SAF.Cryptography/bin/Debug/SAF.Cryptography.pdb create mode 100644 SAF_VS2003/SAF/SAF.Cryptography/bin/Microsoft.Web.Services.dll create mode 100644 SAF_VS2003/SAF/SAF.Cryptography/obj/Debug/SAF.Cryptography.dll create mode 100644 SAF_VS2003/SAF/SAF.Cryptography/obj/Debug/SAF.Cryptography.dll.incr create mode 100644 SAF_VS2003/SAF/SAF.Cryptography/obj/Debug/SAF.Cryptography.pdb create mode 100644 SAF_VS2003/SAF/SAF.Cryptography/obj/Debug/SAF.Cryptography.projdata create mode 100644 SAF_VS2003/SAF/SAF.Cryptography/obj/Debug/SAF.Cryptography.projdata1 create mode 100644 SAF_VS2003/SAF/SAF.Cryptography/obj/Debug/SAF.Cryptography.projdata2 create mode 100644 SAF_VS2003/SAF/SAF.Cryptography/obj/Release/SAF.Cryptography.dll create mode 100644 SAF_VS2003/SAF/SAF.Cryptography/obj/Release/SAF.Cryptography.projdata create mode 100644 SAF_VS2003/SAF/SAF.EventNotification/AssemblyInfo.cs create mode 100644 SAF_VS2003/SAF/SAF.EventNotification/EventClient.cs create mode 100644 SAF_VS2003/SAF/SAF.EventNotification/EventServer.cs create mode 100644 SAF_VS2003/SAF/SAF.EventNotification/SAF.EventNotification.csproj create mode 100644 SAF_VS2003/SAF/SAF.EventNotification/SAF.EventNotification.csproj.user create mode 100644 SAF_VS2003/SAF/SAF.EventNotification/bin/Debug/SAF.EventNotification.dll create mode 100644 SAF_VS2003/SAF/SAF.EventNotification/bin/Debug/SAF.EventNotification.pdb create mode 100644 SAF_VS2003/SAF/SAF.EventNotification/obj/Debug/SAF.EventNotification.dll create mode 100644 SAF_VS2003/SAF/SAF.EventNotification/obj/Debug/SAF.EventNotification.dll.incr create mode 100644 SAF_VS2003/SAF/SAF.EventNotification/obj/Debug/SAF.EventNotification.pdb create mode 100644 SAF_VS2003/SAF/SAF.EventNotification/obj/Debug/SAF.EventNotification.projdata create mode 100644 SAF_VS2003/SAF/SAF.EventNotification/obj/Debug/SAF.EventNotification.projdata1 create mode 100644 SAF_VS2003/SAF/SAF.EventNotification/obj/Debug/SAF.EventNotification.projdata2 create mode 100644 SAF_VS2003/SAF/SAF.Library.Security/AssemblyInfo.cs create mode 100644 SAF_VS2003/SAF/SAF.Library.Security/Class1.cs create mode 100644 SAF_VS2003/SAF/SAF.Library.Security/SAF.Library.Security.csproj create mode 100644 SAF_VS2003/SAF/SAF.Library.Security/SAF.Library.Security.csproj.user create mode 100644 SAF_VS2003/SAF/SAF.Library.Security/bin/Debug/SAF.Library.Security.dll create mode 100644 SAF_VS2003/SAF/SAF.Library.Security/bin/Debug/SAF.Library.Security.pdb create mode 100644 SAF_VS2003/SAF/SAF.Library.Security/obj/Debug/SAF.Library.Security.dll create mode 100644 SAF_VS2003/SAF/SAF.Library.Security/obj/Debug/SAF.Library.Security.dll.incr create mode 100644 SAF_VS2003/SAF/SAF.Library.Security/obj/Debug/SAF.Library.Security.pdb create mode 100644 SAF_VS2003/SAF/SAF.Library.Security/obj/Debug/SAF.Library.Security.projdata create mode 100644 SAF_VS2003/SAF/SAF.Library.Security/obj/Debug/SAF.Library.Security.projdata1 create mode 100644 SAF_VS2003/SAF/SAF.Library.WindowsService/AssemblyInfo.cs create mode 100644 SAF_VS2003/SAF/SAF.Library.WindowsService/Class1.cs create mode 100644 SAF_VS2003/SAF/SAF.Library.WindowsService/SAF.Library.WindowsService.csproj create mode 100644 SAF_VS2003/SAF/SAF.Library.WindowsService/SAF.Library.WindowsService.csproj.user create mode 100644 SAF_VS2003/SAF/SAF.Library.WindowsService/bin/Debug/SAF.Library.WindowsService.dll create mode 100644 SAF_VS2003/SAF/SAF.Library.WindowsService/bin/Debug/SAF.Library.WindowsService.pdb create mode 100644 SAF_VS2003/SAF/SAF.Library.WindowsService/bin/Debug/SAF.Utility.dll create mode 100644 SAF_VS2003/SAF/SAF.Library.WindowsService/bin/Debug/SAF.Utility.pdb create mode 100644 SAF_VS2003/SAF/SAF.Library.WindowsService/obj/Debug/SAF.Library.WindowsService.dll create mode 100644 SAF_VS2003/SAF/SAF.Library.WindowsService/obj/Debug/SAF.Library.WindowsService.dll.incr create mode 100644 SAF_VS2003/SAF/SAF.Library.WindowsService/obj/Debug/SAF.Library.WindowsService.pdb create mode 100644 SAF_VS2003/SAF/SAF.Library.WindowsService/obj/Debug/SAF.Library.WindowsService.projdata create mode 100644 SAF_VS2003/SAF/SAF.MessageQueue/AssemblyInfo.cs create mode 100644 SAF_VS2003/SAF/SAF.MessageQueue/MQSeries.cs create mode 100644 SAF_VS2003/SAF/SAF.MessageQueue/MSMQ.cs create mode 100644 SAF_VS2003/SAF/SAF.MessageQueue/MessageQueue.cs create mode 100644 SAF_VS2003/SAF/SAF.MessageQueue/MessageQueueManager.cs create mode 100644 SAF_VS2003/SAF/SAF.MessageQueue/SAF.MessageQueue.csproj create mode 100644 SAF_VS2003/SAF/SAF.MessageQueue/SAF.MessageQueue.csproj.user create mode 100644 SAF_VS2003/SAF/SAF.MessageQueue/bin/Debug/Interop.MQAX200.dll create mode 100644 SAF_VS2003/SAF/SAF.MessageQueue/bin/Debug/SAF.Configuration.dll create mode 100644 SAF_VS2003/SAF/SAF.MessageQueue/bin/Debug/SAF.Configuration.pdb create mode 100644 SAF_VS2003/SAF/SAF.MessageQueue/bin/Debug/SAF.MessageQueue.dll create mode 100644 SAF_VS2003/SAF/SAF.MessageQueue/bin/Debug/SAF.MessageQueue.pdb create mode 100644 SAF_VS2003/SAF/SAF.MessageQueue/bin/Interop.MQAX200.dll create mode 100644 SAF_VS2003/SAF/SAF.MessageQueue/obj/Debug/SAF.MessageQueue.dll create mode 100644 SAF_VS2003/SAF/SAF.MessageQueue/obj/Debug/SAF.MessageQueue.dll.incr create mode 100644 SAF_VS2003/SAF/SAF.MessageQueue/obj/Debug/SAF.MessageQueue.pdb create mode 100644 SAF_VS2003/SAF/SAF.MessageQueue/obj/Debug/SAF.MessageQueue.projdata create mode 100644 SAF_VS2003/SAF/SAF.MessageQueue/obj/Debug/SAF.MessageQueue.projdata1 create mode 100644 SAF_VS2003/SAF/SAF.MessageQueue/obj/Interop.MQAX200.dll create mode 100644 SAF_VS2003/SAF/SAF.TestConsole/App.ico create mode 100644 SAF_VS2003/SAF/SAF.TestConsole/AssemblyInfo.cs create mode 100644 SAF_VS2003/SAF/SAF.TestConsole/Class1.cs create mode 100644 SAF_VS2003/SAF/SAF.TestConsole/SAF.TestConsole.csproj create mode 100644 SAF_VS2003/SAF/SAF.TestConsole/SAF.TestConsole.csproj.user create mode 100644 SAF_VS2003/SAF/SAF.TestConsole/bin/Debug/SAF.TestConsole.exe create mode 100644 SAF_VS2003/SAF/SAF.TestConsole/bin/Debug/SAF.TestConsole.pdb create mode 100644 SAF_VS2003/SAF/SAF.TestConsole/bin/Debug/SAF.Utility.dll create mode 100644 SAF_VS2003/SAF/SAF.TestConsole/bin/Debug/SAF.Utility.pdb create mode 100644 SAF_VS2003/SAF/SAF.TestConsole/obj/Debug/SAF.TestConsole.exe create mode 100644 SAF_VS2003/SAF/SAF.TestConsole/obj/Debug/SAF.TestConsole.exe.incr create mode 100644 SAF_VS2003/SAF/SAF.TestConsole/obj/Debug/SAF.TestConsole.pdb create mode 100644 SAF_VS2003/SAF/SAF.TestConsole/obj/Debug/SAF.TestConsole.projdata create mode 100644 SAF_VS2003/SAF/SAF.Transaction/AssemblyInfo.cs create mode 100644 SAF_VS2003/SAF/SAF.Transaction/Class1.cs create mode 100644 SAF_VS2003/SAF/SAF.Transaction/SAF.Transaction.csproj create mode 100644 SAF_VS2003/SAF/SAF.Transaction/SAF.Transaction.csproj.user create mode 100644 SAF_VS2003/SAF/SAF.Transaction/TransactionManager.cs create mode 100644 SAF_VS2003/SAF/SAF.Transaction/bin/Debug/SAF.Transaction.dll create mode 100644 SAF_VS2003/SAF/SAF.Transaction/bin/Debug/SAF.Transaction.pdb create mode 100644 SAF_VS2003/SAF/SAF.Transaction/obj/Debug/SAF.Transaction.dll create mode 100644 SAF_VS2003/SAF/SAF.Transaction/obj/Debug/SAF.Transaction.dll.incr create mode 100644 SAF_VS2003/SAF/SAF.Transaction/obj/Debug/SAF.Transaction.pdb create mode 100644 SAF_VS2003/SAF/SAF.Transaction/obj/Debug/SAF.Transaction.projdata create mode 100644 SAF_VS2003/SAF/SAF.Transaction/obj/Debug/SAF.Transaction.projdata1 create mode 100644 SAF_VS2003/SAF/SAF.Utility/AssemblyInfo.cs create mode 100644 SAF_VS2003/SAF/SAF.Utility/Class1.cs create mode 100644 SAF_VS2003/SAF/SAF.Utility/SAF.Utility.csproj create mode 100644 SAF_VS2003/SAF/SAF.Utility/SAF.Utility.csproj.user create mode 100644 SAF_VS2003/SAF/SAF.Utility/bin/Debug/SAF.Utility.dll create mode 100644 SAF_VS2003/SAF/SAF.Utility/bin/Debug/SAF.Utility.pdb create mode 100644 SAF_VS2003/SAF/SAF.Utility/obj/Debug/SAF.Utility.dll create mode 100644 SAF_VS2003/SAF/SAF.Utility/obj/Debug/SAF.Utility.dll.incr create mode 100644 SAF_VS2003/SAF/SAF.Utility/obj/Debug/SAF.Utility.pdb create mode 100644 SAF_VS2003/SAF/SAF.Utility/obj/Debug/SAF.Utility.projdata create mode 100644 SAF_VS2003/SAF/SAF.Utility/obj/Debug/SAF.Utility.projdata1 create mode 100644 SAF_VS2003/SAF/SAF.WindowsService/AssemblyInfo.cs create mode 100644 SAF_VS2003/SAF/SAF.WindowsService/EmptyService.cs create mode 100644 SAF_VS2003/SAF/SAF.WindowsService/ProjectInstaller.cs create mode 100644 SAF_VS2003/SAF/SAF.WindowsService/ProjectInstaller.resx create mode 100644 SAF_VS2003/SAF/SAF.WindowsService/SAF.WindowsService.csproj create mode 100644 SAF_VS2003/SAF/SAF.WindowsService/SAF.WindowsService.csproj.user create mode 100644 SAF_VS2003/SAF/SAF.WindowsService/SecuritySwitchThread.cs create mode 100644 SAF_VS2003/SAF/SAF.WindowsService/Service1.cs create mode 100644 SAF_VS2003/SAF/SAF.WindowsService/Service1.resx create mode 100644 SAF_VS2003/SAF/SAF.WindowsService/app.config create mode 100644 SAF_VS2003/SAF/SAF.WindowsService/bin/Debug/InstallUtil.InstallLog create mode 100644 SAF_VS2003/SAF/SAF.WindowsService/bin/Debug/SAF.Configuration.dll create mode 100644 SAF_VS2003/SAF/SAF.WindowsService/bin/Debug/SAF.Configuration.pdb create mode 100644 SAF_VS2003/SAF/SAF.WindowsService/bin/Debug/SAF.Library.Security.dll create mode 100644 SAF_VS2003/SAF/SAF.WindowsService/bin/Debug/SAF.Library.Security.pdb create mode 100644 SAF_VS2003/SAF/SAF.WindowsService/bin/Debug/SAF.Library.WindowsService.dll create mode 100644 SAF_VS2003/SAF/SAF.WindowsService/bin/Debug/SAF.Library.WindowsService.pdb create mode 100644 SAF_VS2003/SAF/SAF.WindowsService/bin/Debug/SAF.Utility.dll create mode 100644 SAF_VS2003/SAF/SAF.WindowsService/bin/Debug/SAF.Utility.pdb create mode 100644 SAF_VS2003/SAF/SAF.WindowsService/bin/Debug/SAF.WindowsService.exe create mode 100644 SAF_VS2003/SAF/SAF.WindowsService/bin/Debug/SAF.WindowsService.exe.config create mode 100644 SAF_VS2003/SAF/SAF.WindowsService/bin/Debug/SAF.WindowsService.pdb create mode 100644 SAF_VS2003/SAF/SAF.WindowsService/bin/Debug/saf.windowsservice.InstallLog create mode 100644 SAF_VS2003/SAF/SAF.WindowsService/bin/Debug/saf.windowsservice.InstallState create mode 100644 SAF_VS2003/SAF/SAF.WindowsService/obj/Debug/SAF.WindowsService.ProjectInstaller.resources create mode 100644 SAF_VS2003/SAF/SAF.WindowsService/obj/Debug/SAF.WindowsService.Service1.resources create mode 100644 SAF_VS2003/SAF/SAF.WindowsService/obj/Debug/SAF.WindowsService.exe create mode 100644 SAF_VS2003/SAF/SAF.WindowsService/obj/Debug/SAF.WindowsService.exe.incr create mode 100644 SAF_VS2003/SAF/SAF.WindowsService/obj/Debug/SAF.WindowsService.pdb create mode 100644 SAF_VS2003/SAF/SAF.WindowsService/obj/Debug/SAF.WindowsService.projdata create mode 100644 SAF_VS2003/SAF/SAF.sln create mode 100644 SAF_VS2003/SAF/SAF.sln.old create mode 100644 SAF_VS2003/SAF/SAF.snk create mode 100644 SAF_VS2003/SAF/SAF.suo create mode 100644 SAF_VS2003/SAF/Setup/Certificates/CompanyA.pfx create mode 100644 SAF_VS2003/SAF/Setup/Certificates/CompanyA_PublicKey.cer create mode 100644 SAF_VS2003/SAF/Setup/Certificates/CompanyB.pfx create mode 100644 SAF_VS2003/SAF/Setup/Certificates/CompanyB_PublicKey.cer create mode 100644 SAF_VS2003/SAF/Setup/Certificates/Dell420.cer create mode 100644 SAF_VS2003/SAF/Setup/SAFDemo.sql create mode 100644 SAF_VS2003/SAF/Test.BusinessLibrary/AssemblyInfo.cs create mode 100644 SAF_VS2003/SAF/Test.BusinessLibrary/Class1.cs create mode 100644 SAF_VS2003/SAF/Test.BusinessLibrary/Test.BusinessLibrary.csproj create mode 100644 SAF_VS2003/SAF/Test.BusinessLibrary/Test.BusinessLibrary.csproj.user create mode 100644 SAF_VS2003/SAF/Test.BusinessLibrary/bin/Debug/Test.BusinessLibrary.dll create mode 100644 SAF_VS2003/SAF/Test.BusinessLibrary/bin/Debug/Test.BusinessLibrary.pdb create mode 100644 SAF_VS2003/SAF/Test.BusinessLibrary/bin/Release/Test.BusinessLibrary.dll create mode 100644 SAF_VS2003/SAF/Test.BusinessLibrary/obj/Debug/Test.BusinessLibrary.dll create mode 100644 SAF_VS2003/SAF/Test.BusinessLibrary/obj/Debug/Test.BusinessLibrary.dll.incr create mode 100644 SAF_VS2003/SAF/Test.BusinessLibrary/obj/Debug/Test.BusinessLibrary.pdb create mode 100644 SAF_VS2003/SAF/Test.BusinessLibrary/obj/Debug/Test.BusinessLibrary.projdata create mode 100644 SAF_VS2003/SAF/Test.BusinessLibrary/obj/Debug/Test.BusinessLibrary.projdata1 create mode 100644 SAF_VS2003/SAF/Test.BusinessLibrary/obj/Release/Test.BusinessLibrary.dll create mode 100644 SAF_VS2003/SAF/Test.BusinessLibrary/obj/Release/Test.BusinessLibrary.projdata create mode 100644 SAF_VS2003/SAF/Test.Client.SAF.Cryptography/Test.Client.SAF.Cryptography.sln create mode 100644 SAF_VS2003/SAF/Test.Client.SAF.Cryptography/Test.Client.SAF.Cryptography.sln.old create mode 100644 SAF_VS2003/SAF/Test.Client.SAF.Cryptography/Test.Client.SAF.Cryptography.suo create mode 100644 SAF_VS2003/SAF/Test.Client.SAF.Cryptography/TestConsole/App.ico create mode 100644 SAF_VS2003/SAF/Test.Client.SAF.Cryptography/TestConsole/AssemblyInfo.cs create mode 100644 SAF_VS2003/SAF/Test.Client.SAF.Cryptography/TestConsole/Class1.cs create mode 100644 SAF_VS2003/SAF/Test.Client.SAF.Cryptography/TestConsole/TestConsole.csproj create mode 100644 SAF_VS2003/SAF/Test.Client.SAF.Cryptography/TestConsole/TestConsole.csproj.user create mode 100644 SAF_VS2003/SAF/Test.Client.SAF.Cryptography/TestConsole/app.config create mode 100644 SAF_VS2003/SAF/Test.Client.SAF.Cryptography/TestConsole/bin/Debug/Microsoft.Web.Services.dll create mode 100644 SAF_VS2003/SAF/Test.Client.SAF.Cryptography/TestConsole/bin/Debug/SAF.Configuration.dll create mode 100644 SAF_VS2003/SAF/Test.Client.SAF.Cryptography/TestConsole/bin/Debug/SAF.Configuration.pdb create mode 100644 SAF_VS2003/SAF/Test.Client.SAF.Cryptography/TestConsole/bin/Debug/SAF.Cryptography.dll create mode 100644 SAF_VS2003/SAF/Test.Client.SAF.Cryptography/TestConsole/bin/Debug/SAF.Cryptography.pdb create mode 100644 SAF_VS2003/SAF/Test.Client.SAF.Cryptography/TestConsole/bin/Debug/Test.BusinessLibrary.dll create mode 100644 SAF_VS2003/SAF/Test.Client.SAF.Cryptography/TestConsole/bin/Debug/Test.BusinessLibrary.pdb create mode 100644 SAF_VS2003/SAF/Test.Client.SAF.Cryptography/TestConsole/bin/Debug/TestConsole.exe create mode 100644 SAF_VS2003/SAF/Test.Client.SAF.Cryptography/TestConsole/bin/Debug/TestConsole.exe.config create mode 100644 SAF_VS2003/SAF/Test.Client.SAF.Cryptography/TestConsole/bin/Debug/TestConsole.pdb create mode 100644 SAF_VS2003/SAF/Test.Client.SAF.Cryptography/TestConsole/obj/Debug/TestConsole.exe create mode 100644 SAF_VS2003/SAF/Test.Client.SAF.Cryptography/TestConsole/obj/Debug/TestConsole.exe.incr create mode 100644 SAF_VS2003/SAF/Test.Client.SAF.Cryptography/TestConsole/obj/Debug/TestConsole.pdb create mode 100644 SAF_VS2003/SAF/Test.Client.SAF.Cryptography/TestConsole/obj/Debug/TestConsole.projdata create mode 100644 SAF_VS2003/SAF/Test.Client.SAF.EventNotification/Test.Client.SAF.EventNotification.sln create mode 100644 SAF_VS2003/SAF/Test.Client.SAF.EventNotification/Test.Client.SAF.EventNotification.sln.old create mode 100644 SAF_VS2003/SAF/Test.Client.SAF.EventNotification/Test.Client.SAF.EventNotification.suo create mode 100644 SAF_VS2003/SAF/Test.Client.SAF.EventNotification/TestConsole/App.ico create mode 100644 SAF_VS2003/SAF/Test.Client.SAF.EventNotification/TestConsole/AssemblyInfo.cs create mode 100644 SAF_VS2003/SAF/Test.Client.SAF.EventNotification/TestConsole/Class1.cs create mode 100644 SAF_VS2003/SAF/Test.Client.SAF.EventNotification/TestConsole/TestConsole.csproj create mode 100644 SAF_VS2003/SAF/Test.Client.SAF.EventNotification/TestConsole/TestConsole.csproj.user create mode 100644 SAF_VS2003/SAF/Test.Client.SAF.EventNotification/TestConsole/app.config create mode 100644 SAF_VS2003/SAF/Test.Client.SAF.EventNotification/TestConsole/bin/Debug/SAF.Configuration.dll create mode 100644 SAF_VS2003/SAF/Test.Client.SAF.EventNotification/TestConsole/bin/Debug/SAF.Configuration.pdb create mode 100644 SAF_VS2003/SAF/Test.Client.SAF.EventNotification/TestConsole/bin/Debug/SAF.EventNotification.dll create mode 100644 SAF_VS2003/SAF/Test.Client.SAF.EventNotification/TestConsole/bin/Debug/SAF.EventNotification.pdb create mode 100644 SAF_VS2003/SAF/Test.Client.SAF.EventNotification/TestConsole/bin/Debug/SAF.Library.Security.dll create mode 100644 SAF_VS2003/SAF/Test.Client.SAF.EventNotification/TestConsole/bin/Debug/SAF.Library.Security.pdb create mode 100644 SAF_VS2003/SAF/Test.Client.SAF.EventNotification/TestConsole/bin/Debug/TestConsole.exe create mode 100644 SAF_VS2003/SAF/Test.Client.SAF.EventNotification/TestConsole/bin/Debug/TestConsole.exe.config create mode 100644 SAF_VS2003/SAF/Test.Client.SAF.EventNotification/TestConsole/bin/Debug/TestConsole.pdb create mode 100644 SAF_VS2003/SAF/Test.Client.SAF.EventNotification/TestConsole/obj/Debug/TestConsole.exe create mode 100644 SAF_VS2003/SAF/Test.Client.SAF.EventNotification/TestConsole/obj/Debug/TestConsole.exe.incr create mode 100644 SAF_VS2003/SAF/Test.Client.SAF.EventNotification/TestConsole/obj/Debug/TestConsole.pdb create mode 100644 SAF_VS2003/SAF/Test.Client.SAF.EventNotification/TestConsole/obj/Debug/TestConsole.projdata create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/Test.SAF.Application.DocumentLayer.sln create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/Test.SAF.Application.DocumentLayer.sln.old create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/Test.SAF.Application.DocumentLayer.suo create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/TestConsole/App.ico create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/TestConsole/AssemblyInfo.cs create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/TestConsole/Class1.cs create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/TestConsole/ConfirmationSample.xml create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/TestConsole/Confirmations.xsd create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/TestConsole/Order.xsd create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/TestConsole/OrderSample.xml create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/TestConsole/TestConsole.csproj create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/TestConsole/TestConsole.csproj.user create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/TestConsole/app.config create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/TestConsole/bin/Debug/SAF.Application.Configuration.dll create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/TestConsole/bin/Debug/SAF.Application.Configuration.pdb create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/TestConsole/bin/Debug/SAF.Application.DocumentLayer.dll create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/TestConsole/bin/Debug/SAF.Application.DocumentLayer.pdb create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/TestConsole/bin/Debug/SAF.Configuration.dll create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/TestConsole/bin/Debug/SAF.Configuration.pdb create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/TestConsole/bin/Debug/TestConsole.exe create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/TestConsole/bin/Debug/TestConsole.exe.config create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/TestConsole/bin/Debug/TestConsole.pdb create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/TestConsole/bin/Debug/TestDocumentLayer.dll create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/TestConsole/bin/Debug/TestDocumentLayer.pdb create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/TestConsole/obj/Debug/TestConsole.exe create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/TestConsole/obj/Debug/TestConsole.exe.incr create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/TestConsole/obj/Debug/TestConsole.pdb create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/TestConsole/obj/Debug/TestConsole.projdata create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/TestConsole/obj/Debug/TestConsole.projdata1 create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/TestDocumentLayer/AssemblyInfo.cs create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/TestDocumentLayer/DocumentDoSomeWorkLayer.cs create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/TestDocumentLayer/DocumentLoggingLayer.cs create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/TestDocumentLayer/DocumentXmlValidationLayer.cs create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/TestDocumentLayer/TestDocumentLayer.csproj create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/TestDocumentLayer/TestDocumentLayer.csproj.user create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/TestDocumentLayer/bin/Debug/SAF.Application.DocumentLayer.dll create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/TestDocumentLayer/bin/Debug/SAF.Application.DocumentLayer.pdb create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/TestDocumentLayer/bin/Debug/TestDocumentLayer.dll create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/TestDocumentLayer/bin/Debug/TestDocumentLayer.pdb create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/TestDocumentLayer/obj/Debug/TestDocumentLayer.dll create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/TestDocumentLayer/obj/Debug/TestDocumentLayer.dll.incr create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/TestDocumentLayer/obj/Debug/TestDocumentLayer.pdb create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/TestDocumentLayer/obj/Debug/TestDocumentLayer.projdata create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/TestDocumentLayer/obj/Debug/TestDocumentLayer.projdata1 create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.Workflow/App.ico create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.Workflow/AssemblyInfo.cs create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.Workflow/Class1.cs create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.Workflow/ConfirmationSample.xml create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.Workflow/Confirmations.xsd create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.Workflow/Order.xsd create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.Workflow/OrderSample.xml create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.Workflow/Test.SAF.Application.Workflow.csproj create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.Workflow/Test.SAF.Application.Workflow.csproj.user create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.Workflow/Test.SAF.Application.Workflow.sln create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.Workflow/Test.SAF.Application.Workflow.sln.old create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.Workflow/Test.SAF.Application.Workflow.suo create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestConsole/App.ico create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestConsole/AssemblyInfo.cs create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestConsole/Class1.cs create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestConsole/ConfirmationSample.xml create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestConsole/Confirmations.xsd create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestConsole/Order.xsd create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestConsole/OrderSample.xml create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestConsole/TestConsole.csproj create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestConsole/TestConsole.csproj.user create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestConsole/app.config create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestConsole/bin/Debug/SAF.Application.Configuration.dll create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestConsole/bin/Debug/SAF.Application.Configuration.pdb create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestConsole/bin/Debug/SAF.Application.DocumentLayer.dll create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestConsole/bin/Debug/SAF.Application.DocumentLayer.pdb create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestConsole/bin/Debug/SAF.Application.Workflow.dll create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestConsole/bin/Debug/SAF.Application.Workflow.pdb create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestConsole/bin/Debug/SAF.Configuration.dll create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestConsole/bin/Debug/SAF.Configuration.pdb create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestConsole/bin/Debug/TestConsole.exe create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestConsole/bin/Debug/TestConsole.exe.config create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestConsole/bin/Debug/TestConsole.pdb create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestConsole/bin/Debug/TestDocumentLayer.dll create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestConsole/bin/Debug/TestDocumentLayer.pdb create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestConsole/bin/Debug/TestWorkFlow.dll create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestConsole/bin/Debug/TestWorkFlow.pdb create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestConsole/obj/Debug/TestConsole.exe create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestConsole/obj/Debug/TestConsole.exe.incr create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestConsole/obj/Debug/TestConsole.pdb create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestConsole/obj/Debug/TestConsole.projdata create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestWorkFlow/AssemblyInfo.cs create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestWorkFlow/Component.cs create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestWorkFlow/DocumentWorkFlowLayer.cs create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestWorkFlow/TestWorkFlow.csproj create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestWorkFlow/TestWorkFlow.csproj.user create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestWorkFlow/Visitor.cs create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestWorkFlow/bin/Debug/SAF.Application.Configuration.dll create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestWorkFlow/bin/Debug/SAF.Application.Configuration.pdb create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestWorkFlow/bin/Debug/SAF.Application.DocumentLayer.dll create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestWorkFlow/bin/Debug/SAF.Application.DocumentLayer.pdb create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestWorkFlow/bin/Debug/SAF.Application.Workflow.dll create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestWorkFlow/bin/Debug/SAF.Application.Workflow.pdb create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestWorkFlow/bin/Debug/TestWorkFlow.dll create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestWorkFlow/bin/Debug/TestWorkFlow.pdb create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestWorkFlow/obj/Debug/TestWorkFlow.dll create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestWorkFlow/obj/Debug/TestWorkFlow.dll.incr create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestWorkFlow/obj/Debug/TestWorkFlow.pdb create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestWorkFlow/obj/Debug/TestWorkFlow.projdata create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.Workflow/app.config create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.Workflow/bin/Debug/SAF.Application.Configuration.dll create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.Workflow/bin/Debug/SAF.Application.Configuration.pdb create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.Workflow/bin/Debug/SAF.Application.DocumentLayer.dll create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.Workflow/bin/Debug/SAF.Application.DocumentLayer.pdb create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.Workflow/bin/Debug/SAF.Application.Workflow.dll create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.Workflow/bin/Debug/SAF.Application.Workflow.pdb create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.Workflow/bin/Debug/SAF.Configuration.dll create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.Workflow/bin/Debug/SAF.Configuration.pdb create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.Workflow/bin/Debug/Test.SAF.Application.Workflow.exe create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.Workflow/bin/Debug/Test.SAF.Application.Workflow.exe.config create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.Workflow/bin/Debug/Test.SAF.Application.Workflow.pdb create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.Workflow/bin/Debug/TestDocumentLayer.dll create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.Workflow/bin/Debug/TestDocumentLayer.pdb create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.Workflow/bin/Debug/TestWorkFlow.dll create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.Workflow/bin/Debug/TestWorkFlow.pdb create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.Workflow/obj/Debug/Test.SAF.Application.Workflow.exe create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.Workflow/obj/Debug/Test.SAF.Application.Workflow.exe.incr create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.Workflow/obj/Debug/Test.SAF.Application.Workflow.pdb create mode 100644 SAF_VS2003/SAF/Test.SAF.Application.Workflow/obj/Debug/Test.SAF.Application.Workflow.projdata create mode 100644 SAF_VS2003/SAF/Test.SAF.Authentication/Test.SAF.Authentication.sln create mode 100644 SAF_VS2003/SAF/Test.SAF.Authentication/Test.SAF.Authentication.sln.old create mode 100644 SAF_VS2003/SAF/Test.SAF.Authentication/Test.SAF.Authentication.suo create mode 100644 SAF_VS2003/SAF/Test.SAF.Authentication/TestConsole/App.ico create mode 100644 SAF_VS2003/SAF/Test.SAF.Authentication/TestConsole/AssemblyInfo.cs create mode 100644 SAF_VS2003/SAF/Test.SAF.Authentication/TestConsole/Class1.cs create mode 100644 SAF_VS2003/SAF/Test.SAF.Authentication/TestConsole/TestConsole.csproj create mode 100644 SAF_VS2003/SAF/Test.SAF.Authentication/TestConsole/TestConsole.csproj.user create mode 100644 SAF_VS2003/SAF/Test.SAF.Authentication/TestConsole/app.config create mode 100644 SAF_VS2003/SAF/Test.SAF.Authentication/TestConsole/bin/Debug/SAF.Authentication.dll create mode 100644 SAF_VS2003/SAF/Test.SAF.Authentication/TestConsole/bin/Debug/SAF.Authentication.pdb create mode 100644 SAF_VS2003/SAF/Test.SAF.Authentication/TestConsole/bin/Debug/SAF.Configuration.dll create mode 100644 SAF_VS2003/SAF/Test.SAF.Authentication/TestConsole/bin/Debug/SAF.Configuration.pdb create mode 100644 SAF_VS2003/SAF/Test.SAF.Authentication/TestConsole/bin/Debug/SAF.Utility.dll create mode 100644 SAF_VS2003/SAF/Test.SAF.Authentication/TestConsole/bin/Debug/SAF.Utility.pdb create mode 100644 SAF_VS2003/SAF/Test.SAF.Authentication/TestConsole/bin/Debug/TestConsole.exe create mode 100644 SAF_VS2003/SAF/Test.SAF.Authentication/TestConsole/bin/Debug/TestConsole.exe.config create mode 100644 SAF_VS2003/SAF/Test.SAF.Authentication/TestConsole/bin/Debug/TestConsole.pdb create mode 100644 SAF_VS2003/SAF/Test.SAF.Authentication/TestConsole/obj/Debug/TestConsole.exe create mode 100644 SAF_VS2003/SAF/Test.SAF.Authentication/TestConsole/obj/Debug/TestConsole.exe.incr create mode 100644 SAF_VS2003/SAF/Test.SAF.Authentication/TestConsole/obj/Debug/TestConsole.pdb create mode 100644 SAF_VS2003/SAF/Test.SAF.Authentication/TestConsole/obj/Debug/TestConsole.projdata create mode 100644 SAF_VS2003/SAF/Test.SAF.Authorization/Test.SAF.Authorization.sln create mode 100644 SAF_VS2003/SAF/Test.SAF.Authorization/Test.SAF.Authorization.sln.old create mode 100644 SAF_VS2003/SAF/Test.SAF.Authorization/Test.SAF.Authorization.suo create mode 100644 SAF_VS2003/SAF/Test.SAF.Authorization/TestConsole/App.ico create mode 100644 SAF_VS2003/SAF/Test.SAF.Authorization/TestConsole/AssemblyInfo.cs create mode 100644 SAF_VS2003/SAF/Test.SAF.Authorization/TestConsole/Class1.cs create mode 100644 SAF_VS2003/SAF/Test.SAF.Authorization/TestConsole/ImportantReadme.txt create mode 100644 SAF_VS2003/SAF/Test.SAF.Authorization/TestConsole/TestConsole.csproj create mode 100644 SAF_VS2003/SAF/Test.SAF.Authorization/TestConsole/TestConsole.csproj.user create mode 100644 SAF_VS2003/SAF/Test.SAF.Authorization/TestConsole/app.config create mode 100644 SAF_VS2003/SAF/Test.SAF.Authorization/TestConsole/bin/Debug/SAF.Configuration.dll create mode 100644 SAF_VS2003/SAF/Test.SAF.Authorization/TestConsole/bin/Debug/SAF.Configuration.pdb create mode 100644 SAF_VS2003/SAF/Test.SAF.Authorization/TestConsole/bin/Debug/SAF.Library.Security.dll create mode 100644 SAF_VS2003/SAF/Test.SAF.Authorization/TestConsole/bin/Debug/SAF.Library.Security.pdb create mode 100644 SAF_VS2003/SAF/Test.SAF.Authorization/TestConsole/bin/Debug/TestConsole.exe create mode 100644 SAF_VS2003/SAF/Test.SAF.Authorization/TestConsole/bin/Debug/TestConsole.exe.config create mode 100644 SAF_VS2003/SAF/Test.SAF.Authorization/TestConsole/bin/Debug/TestConsole.pdb create mode 100644 SAF_VS2003/SAF/Test.SAF.Authorization/TestConsole/obj/Debug/TestConsole.exe create mode 100644 SAF_VS2003/SAF/Test.SAF.Authorization/TestConsole/obj/Debug/TestConsole.exe.incr create mode 100644 SAF_VS2003/SAF/Test.SAF.Authorization/TestConsole/obj/Debug/TestConsole.pdb create mode 100644 SAF_VS2003/SAF/Test.SAF.Authorization/TestConsole/obj/Debug/TestConsole.projdata create mode 100644 SAF_VS2003/SAF/Test.SAF.Cache/Test.SAF.Cache.sln create mode 100644 SAF_VS2003/SAF/Test.SAF.Cache/Test.SAF.Cache.sln.old create mode 100644 SAF_VS2003/SAF/Test.SAF.Cache/Test.SAF.Cache.suo create mode 100644 SAF_VS2003/SAF/Test.SAF.Cache/TestConsole/App.ico create mode 100644 SAF_VS2003/SAF/Test.SAF.Cache/TestConsole/AssemblyInfo.cs create mode 100644 SAF_VS2003/SAF/Test.SAF.Cache/TestConsole/Class1.cs create mode 100644 SAF_VS2003/SAF/Test.SAF.Cache/TestConsole/TestConsole.csproj create mode 100644 SAF_VS2003/SAF/Test.SAF.Cache/TestConsole/TestConsole.csproj.user create mode 100644 SAF_VS2003/SAF/Test.SAF.Cache/TestConsole/app.config create mode 100644 SAF_VS2003/SAF/Test.SAF.Cache/TestConsole/bin/Debug/SAF.Cache.dll create mode 100644 SAF_VS2003/SAF/Test.SAF.Cache/TestConsole/bin/Debug/SAF.Cache.pdb create mode 100644 SAF_VS2003/SAF/Test.SAF.Cache/TestConsole/bin/Debug/SAF.Configuration.dll create mode 100644 SAF_VS2003/SAF/Test.SAF.Cache/TestConsole/bin/Debug/SAF.Configuration.pdb create mode 100644 SAF_VS2003/SAF/Test.SAF.Cache/TestConsole/bin/Debug/SAF.Library.Security.dll create mode 100644 SAF_VS2003/SAF/Test.SAF.Cache/TestConsole/bin/Debug/SAF.Library.Security.pdb create mode 100644 SAF_VS2003/SAF/Test.SAF.Cache/TestConsole/bin/Debug/TestConsole.exe create mode 100644 SAF_VS2003/SAF/Test.SAF.Cache/TestConsole/bin/Debug/TestConsole.exe.config create mode 100644 SAF_VS2003/SAF/Test.SAF.Cache/TestConsole/bin/Debug/TestConsole.pdb create mode 100644 SAF_VS2003/SAF/Test.SAF.Cache/TestConsole/obj/Debug/TestConsole.exe create mode 100644 SAF_VS2003/SAF/Test.SAF.Cache/TestConsole/obj/Debug/TestConsole.exe.incr create mode 100644 SAF_VS2003/SAF/Test.SAF.Cache/TestConsole/obj/Debug/TestConsole.pdb create mode 100644 SAF_VS2003/SAF/Test.SAF.Cache/TestConsole/obj/Debug/TestConsole.projdata create mode 100644 SAF_VS2003/SAF/Test.SAF.ClassFactory/Test.SAF.ClassFactory.sln create mode 100644 SAF_VS2003/SAF/Test.SAF.ClassFactory/Test.SAF.ClassFactory.sln.old create mode 100644 SAF_VS2003/SAF/Test.SAF.ClassFactory/Test.SAF.ClassFactory.suo create mode 100644 SAF_VS2003/SAF/Test.SAF.ClassFactory/TestConcreteFactory/AssemblyInfo.cs create mode 100644 SAF_VS2003/SAF/Test.SAF.ClassFactory/TestConcreteFactory/TestConcreteFactory.cs create mode 100644 SAF_VS2003/SAF/Test.SAF.ClassFactory/TestConcreteFactory/TestConcreteFactory.csproj create mode 100644 SAF_VS2003/SAF/Test.SAF.ClassFactory/TestConcreteFactory/TestConcreteFactory.csproj.user create mode 100644 SAF_VS2003/SAF/Test.SAF.ClassFactory/TestConcreteFactory/bin/Debug/TestConcreteFactory.dll create mode 100644 SAF_VS2003/SAF/Test.SAF.ClassFactory/TestConcreteFactory/bin/Debug/TestConcreteFactory.pdb create mode 100644 SAF_VS2003/SAF/Test.SAF.ClassFactory/TestConcreteFactory/obj/Debug/TestConcreteFactory.dll create mode 100644 SAF_VS2003/SAF/Test.SAF.ClassFactory/TestConcreteFactory/obj/Debug/TestConcreteFactory.dll.incr create mode 100644 SAF_VS2003/SAF/Test.SAF.ClassFactory/TestConcreteFactory/obj/Debug/TestConcreteFactory.pdb create mode 100644 SAF_VS2003/SAF/Test.SAF.ClassFactory/TestConcreteFactory/obj/Debug/TestConcreteFactory.projdata create mode 100644 SAF_VS2003/SAF/Test.SAF.ClassFactory/TestConsole/App.ico create mode 100644 SAF_VS2003/SAF/Test.SAF.ClassFactory/TestConsole/AssemblyInfo.cs create mode 100644 SAF_VS2003/SAF/Test.SAF.ClassFactory/TestConsole/TestConsole.cs create mode 100644 SAF_VS2003/SAF/Test.SAF.ClassFactory/TestConsole/TestConsole.csproj create mode 100644 SAF_VS2003/SAF/Test.SAF.ClassFactory/TestConsole/TestConsole.csproj.user create mode 100644 SAF_VS2003/SAF/Test.SAF.ClassFactory/TestConsole/app.config create mode 100644 SAF_VS2003/SAF/Test.SAF.ClassFactory/TestConsole/bin/Debug/SAF.ClassFactory.dll create mode 100644 SAF_VS2003/SAF/Test.SAF.ClassFactory/TestConsole/bin/Debug/SAF.ClassFactory.pdb create mode 100644 SAF_VS2003/SAF/Test.SAF.ClassFactory/TestConsole/bin/Debug/SAF.Configuration.dll create mode 100644 SAF_VS2003/SAF/Test.SAF.ClassFactory/TestConsole/bin/Debug/SAF.Configuration.pdb create mode 100644 SAF_VS2003/SAF/Test.SAF.ClassFactory/TestConsole/bin/Debug/SAF.Library.Security.dll create mode 100644 SAF_VS2003/SAF/Test.SAF.ClassFactory/TestConsole/bin/Debug/SAF.Library.Security.pdb create mode 100644 SAF_VS2003/SAF/Test.SAF.ClassFactory/TestConsole/bin/Debug/TestConcreteFactory.dll create mode 100644 SAF_VS2003/SAF/Test.SAF.ClassFactory/TestConsole/bin/Debug/TestConcreteFactory.pdb create mode 100644 SAF_VS2003/SAF/Test.SAF.ClassFactory/TestConsole/bin/Debug/TestConsole.exe create mode 100644 SAF_VS2003/SAF/Test.SAF.ClassFactory/TestConsole/bin/Debug/TestConsole.exe.config create mode 100644 SAF_VS2003/SAF/Test.SAF.ClassFactory/TestConsole/bin/Debug/TestConsole.pdb create mode 100644 SAF_VS2003/SAF/Test.SAF.ClassFactory/TestConsole/obj/Debug/TestConsole.exe create mode 100644 SAF_VS2003/SAF/Test.SAF.ClassFactory/TestConsole/obj/Debug/TestConsole.exe.incr create mode 100644 SAF_VS2003/SAF/Test.SAF.ClassFactory/TestConsole/obj/Debug/TestConsole.pdb create mode 100644 SAF_VS2003/SAF/Test.SAF.ClassFactory/TestConsole/obj/Debug/TestConsole.projdata create mode 100644 SAF_VS2003/SAF/Test.SAF.Configuration/Application.Configuration/Application.Configuration.csproj create mode 100644 SAF_VS2003/SAF/Test.SAF.Configuration/Application.Configuration/Application.Configuration.csproj.user create mode 100644 SAF_VS2003/SAF/Test.SAF.Configuration/Application.Configuration/AssemblyInfo.cs create mode 100644 SAF_VS2003/SAF/Test.SAF.Configuration/Application.Configuration/ConfigurationManager.cs create mode 100644 SAF_VS2003/SAF/Test.SAF.Configuration/Application.Configuration/bin/Debug/Application.Configuration.dll create mode 100644 SAF_VS2003/SAF/Test.SAF.Configuration/Application.Configuration/bin/Debug/Application.Configuration.pdb create mode 100644 SAF_VS2003/SAF/Test.SAF.Configuration/Application.Configuration/bin/Debug/SAF.Configuration.dll create mode 100644 SAF_VS2003/SAF/Test.SAF.Configuration/Application.Configuration/bin/Debug/SAF.Configuration.pdb create mode 100644 SAF_VS2003/SAF/Test.SAF.Configuration/Application.Configuration/bin/Debug/SAF.Library.Security.dll create mode 100644 SAF_VS2003/SAF/Test.SAF.Configuration/Application.Configuration/bin/Debug/SAF.Library.Security.pdb create mode 100644 SAF_VS2003/SAF/Test.SAF.Configuration/Application.Configuration/obj/Debug/Application.Configuration.dll create mode 100644 SAF_VS2003/SAF/Test.SAF.Configuration/Application.Configuration/obj/Debug/Application.Configuration.dll.incr create mode 100644 SAF_VS2003/SAF/Test.SAF.Configuration/Application.Configuration/obj/Debug/Application.Configuration.pdb create mode 100644 SAF_VS2003/SAF/Test.SAF.Configuration/Application.Configuration/obj/Debug/Application.Configuration.projdata create mode 100644 SAF_VS2003/SAF/Test.SAF.Configuration/ConfigurationData/AssemblyInfo.cs create mode 100644 SAF_VS2003/SAF/Test.SAF.Configuration/ConfigurationData/ConfigurationData.csproj create mode 100644 SAF_VS2003/SAF/Test.SAF.Configuration/ConfigurationData/ConfigurationData.csproj.webinfo create mode 100644 SAF_VS2003/SAF/Test.SAF.Configuration/ConfigurationData/ConfigurationData.vsdisco create mode 100644 SAF_VS2003/SAF/Test.SAF.Configuration/ConfigurationData/ConfigurationService.asmx create mode 100644 SAF_VS2003/SAF/Test.SAF.Configuration/ConfigurationData/ConfigurationService.asmx.cs create mode 100644 SAF_VS2003/SAF/Test.SAF.Configuration/ConfigurationData/ConfigurationService.asmx.resx create mode 100644 SAF_VS2003/SAF/Test.SAF.Configuration/ConfigurationData/Global.asax create mode 100644 SAF_VS2003/SAF/Test.SAF.Configuration/ConfigurationData/Global.asax.cs create mode 100644 SAF_VS2003/SAF/Test.SAF.Configuration/ConfigurationData/Global.asax.resx create mode 100644 SAF_VS2003/SAF/Test.SAF.Configuration/ConfigurationData/Web.config create mode 100644 SAF_VS2003/SAF/Test.SAF.Configuration/ConfigurationData/_vti_pvt/access.cnf create mode 100644 SAF_VS2003/SAF/Test.SAF.Configuration/ConfigurationData/_vti_pvt/deptodoc.btr create mode 100644 SAF_VS2003/SAF/Test.SAF.Configuration/ConfigurationData/_vti_pvt/doctodep.btr create mode 100644 SAF_VS2003/SAF/Test.SAF.Configuration/ConfigurationData/_vti_pvt/service.cnf create mode 100644 SAF_VS2003/SAF/Test.SAF.Configuration/ConfigurationData/_vti_pvt/service.lck create mode 100644 SAF_VS2003/SAF/Test.SAF.Configuration/ConfigurationData/_vti_pvt/services.cnf create mode 100644 SAF_VS2003/SAF/Test.SAF.Configuration/ConfigurationData/bin/ConfigurationData.dll create mode 100644 SAF_VS2003/SAF/Test.SAF.Configuration/ConfigurationData/bin/ConfigurationData.pdb create mode 100644 SAF_VS2003/SAF/Test.SAF.Configuration/Test.SAF.Configuration.sln create mode 100644 SAF_VS2003/SAF/Test.SAF.Configuration/Test.SAF.Configuration.sln.old create mode 100644 SAF_VS2003/SAF/Test.SAF.Configuration/Test.SAF.Configuration.suo create mode 100644 SAF_VS2003/SAF/Test.SAF.Configuration/TestConfigurationAgent/AssemblyInfo.cs create mode 100644 SAF_VS2003/SAF/Test.SAF.Configuration/TestConfigurationAgent/TestConfigurationAgent.cs create mode 100644 SAF_VS2003/SAF/Test.SAF.Configuration/TestConfigurationAgent/TestConfigurationAgent.csproj create mode 100644 SAF_VS2003/SAF/Test.SAF.Configuration/TestConfigurationAgent/TestConfigurationAgent.csproj.user create mode 100644 SAF_VS2003/SAF/Test.SAF.Configuration/TestConfigurationAgent/Web References/localhost/ConfigurationService.disco create mode 100644 SAF_VS2003/SAF/Test.SAF.Configuration/TestConfigurationAgent/Web References/localhost/ConfigurationService.wsdl create mode 100644 SAF_VS2003/SAF/Test.SAF.Configuration/TestConfigurationAgent/Web References/localhost/Reference.cs create mode 100644 SAF_VS2003/SAF/Test.SAF.Configuration/TestConfigurationAgent/Web References/localhost/Reference.map create mode 100644 SAF_VS2003/SAF/Test.SAF.Configuration/TestConfigurationAgent/bin/Debug/SAF.Configuration.dll create mode 100644 SAF_VS2003/SAF/Test.SAF.Configuration/TestConfigurationAgent/bin/Debug/SAF.Configuration.pdb create mode 100644 SAF_VS2003/SAF/Test.SAF.Configuration/TestConfigurationAgent/bin/Debug/SAF.Library.Security.dll create mode 100644 SAF_VS2003/SAF/Test.SAF.Configuration/TestConfigurationAgent/bin/Debug/SAF.Library.Security.pdb create mode 100644 SAF_VS2003/SAF/Test.SAF.Configuration/TestConfigurationAgent/bin/Debug/TestConfigurationAgent.dll create mode 100644 SAF_VS2003/SAF/Test.SAF.Configuration/TestConfigurationAgent/bin/Debug/TestConfigurationAgent.pdb create mode 100644 SAF_VS2003/SAF/Test.SAF.Configuration/TestConfigurationAgent/obj/Debug/TempPE/Web References.localhost.Reference.cs.dll create mode 100644 SAF_VS2003/SAF/Test.SAF.Configuration/TestConfigurationAgent/obj/Debug/TestConfigurationAgent.dll create mode 100644 SAF_VS2003/SAF/Test.SAF.Configuration/TestConfigurationAgent/obj/Debug/TestConfigurationAgent.dll.incr create mode 100644 SAF_VS2003/SAF/Test.SAF.Configuration/TestConfigurationAgent/obj/Debug/TestConfigurationAgent.pdb create mode 100644 SAF_VS2003/SAF/Test.SAF.Configuration/TestConfigurationAgent/obj/Debug/TestConfigurationAgent.projdata create mode 100644 SAF_VS2003/SAF/Test.SAF.Configuration/TestConsole/App.ico create mode 100644 SAF_VS2003/SAF/Test.SAF.Configuration/TestConsole/AssemblyInfo.cs create mode 100644 SAF_VS2003/SAF/Test.SAF.Configuration/TestConsole/Class1.cs create mode 100644 SAF_VS2003/SAF/Test.SAF.Configuration/TestConsole/TestConsole.csproj create mode 100644 SAF_VS2003/SAF/Test.SAF.Configuration/TestConsole/TestConsole.csproj.user create mode 100644 SAF_VS2003/SAF/Test.SAF.Configuration/TestConsole/app.config create mode 100644 SAF_VS2003/SAF/Test.SAF.Configuration/TestConsole/bin/Debug/Application.Configuration.dll create mode 100644 SAF_VS2003/SAF/Test.SAF.Configuration/TestConsole/bin/Debug/Application.Configuration.pdb create mode 100644 SAF_VS2003/SAF/Test.SAF.Configuration/TestConsole/bin/Debug/SAF.Configuration.dll create mode 100644 SAF_VS2003/SAF/Test.SAF.Configuration/TestConsole/bin/Debug/SAF.Configuration.pdb create mode 100644 SAF_VS2003/SAF/Test.SAF.Configuration/TestConsole/bin/Debug/SAF.Library.Security.dll create mode 100644 SAF_VS2003/SAF/Test.SAF.Configuration/TestConsole/bin/Debug/SAF.Library.Security.pdb create mode 100644 SAF_VS2003/SAF/Test.SAF.Configuration/TestConsole/bin/Debug/TestConfigurationAgent.dll create mode 100644 SAF_VS2003/SAF/Test.SAF.Configuration/TestConsole/bin/Debug/TestConfigurationAgent.pdb create mode 100644 SAF_VS2003/SAF/Test.SAF.Configuration/TestConsole/bin/Debug/TestConsole.exe create mode 100644 SAF_VS2003/SAF/Test.SAF.Configuration/TestConsole/bin/Debug/TestConsole.exe.config create mode 100644 SAF_VS2003/SAF/Test.SAF.Configuration/TestConsole/bin/Debug/TestConsole.pdb create mode 100644 SAF_VS2003/SAF/Test.SAF.Configuration/TestConsole/obj/Debug/TempPE/Web References.localhost.Reference.cs.dll create mode 100644 SAF_VS2003/SAF/Test.SAF.Configuration/TestConsole/obj/Debug/TestConsole.exe create mode 100644 SAF_VS2003/SAF/Test.SAF.Configuration/TestConsole/obj/Debug/TestConsole.exe.incr create mode 100644 SAF_VS2003/SAF/Test.SAF.Configuration/TestConsole/obj/Debug/TestConsole.pdb create mode 100644 SAF_VS2003/SAF/Test.SAF.Configuration/TestConsole/obj/Debug/TestConsole.projdata create mode 100644 SAF_VS2003/SAF/Test.SAF.MessageQueue/Test.SAF.MessageQueue.sln create mode 100644 SAF_VS2003/SAF/Test.SAF.MessageQueue/Test.SAF.MessageQueue.sln.old create mode 100644 SAF_VS2003/SAF/Test.SAF.MessageQueue/Test.SAF.MessageQueue.suo create mode 100644 SAF_VS2003/SAF/Test.SAF.MessageQueue/TestConsole/App.ico create mode 100644 SAF_VS2003/SAF/Test.SAF.MessageQueue/TestConsole/AssemblyInfo.cs create mode 100644 SAF_VS2003/SAF/Test.SAF.MessageQueue/TestConsole/Class1.cs create mode 100644 SAF_VS2003/SAF/Test.SAF.MessageQueue/TestConsole/TestConsole.csproj create mode 100644 SAF_VS2003/SAF/Test.SAF.MessageQueue/TestConsole/TestConsole.csproj.user create mode 100644 SAF_VS2003/SAF/Test.SAF.MessageQueue/TestConsole/app.config create mode 100644 SAF_VS2003/SAF/Test.SAF.MessageQueue/TestConsole/bin/Debug/Interop.MQAX200.dll create mode 100644 SAF_VS2003/SAF/Test.SAF.MessageQueue/TestConsole/bin/Debug/SAF.Configuration.dll create mode 100644 SAF_VS2003/SAF/Test.SAF.MessageQueue/TestConsole/bin/Debug/SAF.Configuration.pdb create mode 100644 SAF_VS2003/SAF/Test.SAF.MessageQueue/TestConsole/bin/Debug/SAF.MessageQueue.dll create mode 100644 SAF_VS2003/SAF/Test.SAF.MessageQueue/TestConsole/bin/Debug/SAF.MessageQueue.pdb create mode 100644 SAF_VS2003/SAF/Test.SAF.MessageQueue/TestConsole/bin/Debug/TestConsole.exe create mode 100644 SAF_VS2003/SAF/Test.SAF.MessageQueue/TestConsole/bin/Debug/TestConsole.exe.config create mode 100644 SAF_VS2003/SAF/Test.SAF.MessageQueue/TestConsole/bin/Debug/TestConsole.pdb create mode 100644 SAF_VS2003/SAF/Test.SAF.MessageQueue/TestConsole/obj/Debug/TestConsole.exe create mode 100644 SAF_VS2003/SAF/Test.SAF.MessageQueue/TestConsole/obj/Debug/TestConsole.exe.incr create mode 100644 SAF_VS2003/SAF/Test.SAF.MessageQueue/TestConsole/obj/Debug/TestConsole.pdb create mode 100644 SAF_VS2003/SAF/Test.SAF.MessageQueue/TestConsole/obj/Debug/TestConsole.projdata create mode 100644 SAF_VS2003/SAF/Test.SAF.Transaction/Test.SAF.Transaction.sln create mode 100644 SAF_VS2003/SAF/Test.SAF.Transaction/Test.SAF.Transaction.sln.old create mode 100644 SAF_VS2003/SAF/Test.SAF.Transaction/Test.SAF.Transaction.suo create mode 100644 SAF_VS2003/SAF/Test.SAF.Transaction/TestConsole/App.ico create mode 100644 SAF_VS2003/SAF/Test.SAF.Transaction/TestConsole/AssemblyInfo.cs create mode 100644 SAF_VS2003/SAF/Test.SAF.Transaction/TestConsole/Class1.cs create mode 100644 SAF_VS2003/SAF/Test.SAF.Transaction/TestConsole/TestConsole.csproj create mode 100644 SAF_VS2003/SAF/Test.SAF.Transaction/TestConsole/TestConsole.csproj.user create mode 100644 SAF_VS2003/SAF/Test.SAF.Transaction/TestConsole/bin/Debug/SAF.Transaction.dll create mode 100644 SAF_VS2003/SAF/Test.SAF.Transaction/TestConsole/bin/Debug/SAF.Transaction.pdb create mode 100644 SAF_VS2003/SAF/Test.SAF.Transaction/TestConsole/bin/Debug/TestConsole.exe create mode 100644 SAF_VS2003/SAF/Test.SAF.Transaction/TestConsole/bin/Debug/TestConsole.pdb create mode 100644 SAF_VS2003/SAF/Test.SAF.Transaction/TestConsole/obj/Debug/TestConsole.exe create mode 100644 SAF_VS2003/SAF/Test.SAF.Transaction/TestConsole/obj/Debug/TestConsole.exe.incr create mode 100644 SAF_VS2003/SAF/Test.SAF.Transaction/TestConsole/obj/Debug/TestConsole.pdb create mode 100644 SAF_VS2003/SAF/Test.SAF.Transaction/TestConsole/obj/Debug/TestConsole.projdata create mode 100644 SAF_VS2003/SAF/Test.Server.SAF.Cryptography/Test.Server.SAF.Cryptography.sln create mode 100644 SAF_VS2003/SAF/Test.Server.SAF.Cryptography/Test.Server.SAF.Cryptography.sln.old create mode 100644 SAF_VS2003/SAF/Test.Server.SAF.Cryptography/Test.Server.SAF.Cryptography.suo create mode 100644 SAF_VS2003/SAF/Test.Server.SAF.Cryptography/TestConsole/App.ico create mode 100644 SAF_VS2003/SAF/Test.Server.SAF.Cryptography/TestConsole/AssemblyInfo.cs create mode 100644 SAF_VS2003/SAF/Test.Server.SAF.Cryptography/TestConsole/Class1.cs create mode 100644 SAF_VS2003/SAF/Test.Server.SAF.Cryptography/TestConsole/TestConsole.csproj create mode 100644 SAF_VS2003/SAF/Test.Server.SAF.Cryptography/TestConsole/TestConsole.csproj.user create mode 100644 SAF_VS2003/SAF/Test.Server.SAF.Cryptography/TestConsole/app.config create mode 100644 SAF_VS2003/SAF/Test.Server.SAF.Cryptography/TestConsole/bin/Debug/Microsoft.Web.Services.dll create mode 100644 SAF_VS2003/SAF/Test.Server.SAF.Cryptography/TestConsole/bin/Debug/SAF.Configuration.dll create mode 100644 SAF_VS2003/SAF/Test.Server.SAF.Cryptography/TestConsole/bin/Debug/SAF.Configuration.pdb create mode 100644 SAF_VS2003/SAF/Test.Server.SAF.Cryptography/TestConsole/bin/Debug/SAF.Cryptography.dll create mode 100644 SAF_VS2003/SAF/Test.Server.SAF.Cryptography/TestConsole/bin/Debug/SAF.Cryptography.pdb create mode 100644 SAF_VS2003/SAF/Test.Server.SAF.Cryptography/TestConsole/bin/Debug/Test.BusinessLibrary.dll create mode 100644 SAF_VS2003/SAF/Test.Server.SAF.Cryptography/TestConsole/bin/Debug/Test.BusinessLibrary.pdb create mode 100644 SAF_VS2003/SAF/Test.Server.SAF.Cryptography/TestConsole/bin/Debug/TestConsole.exe create mode 100644 SAF_VS2003/SAF/Test.Server.SAF.Cryptography/TestConsole/bin/Debug/TestConsole.exe.config create mode 100644 SAF_VS2003/SAF/Test.Server.SAF.Cryptography/TestConsole/bin/Debug/TestConsole.pdb create mode 100644 SAF_VS2003/SAF/Test.Server.SAF.Cryptography/TestConsole/obj/Debug/TestConsole.exe create mode 100644 SAF_VS2003/SAF/Test.Server.SAF.Cryptography/TestConsole/obj/Debug/TestConsole.exe.incr create mode 100644 SAF_VS2003/SAF/Test.Server.SAF.Cryptography/TestConsole/obj/Debug/TestConsole.pdb create mode 100644 SAF_VS2003/SAF/Test.Server.SAF.Cryptography/TestConsole/obj/Debug/TestConsole.projdata create mode 100644 SAF_VS2003/SAF/Test.Server.SAF.EventNotification/Test.Server.SAF.EventNotification.sln create mode 100644 SAF_VS2003/SAF/Test.Server.SAF.EventNotification/Test.Server.SAF.EventNotification.sln.old create mode 100644 SAF_VS2003/SAF/Test.Server.SAF.EventNotification/Test.Server.SAF.EventNotification.suo create mode 100644 SAF_VS2003/SAF/Test.Server.SAF.EventNotification/TestConsole/App.ico create mode 100644 SAF_VS2003/SAF/Test.Server.SAF.EventNotification/TestConsole/AssemblyInfo.cs create mode 100644 SAF_VS2003/SAF/Test.Server.SAF.EventNotification/TestConsole/Class1.cs create mode 100644 SAF_VS2003/SAF/Test.Server.SAF.EventNotification/TestConsole/TestConsole.csproj create mode 100644 SAF_VS2003/SAF/Test.Server.SAF.EventNotification/TestConsole/TestConsole.csproj.user create mode 100644 SAF_VS2003/SAF/Test.Server.SAF.EventNotification/TestConsole/app.config create mode 100644 SAF_VS2003/SAF/Test.Server.SAF.EventNotification/TestConsole/bin/Debug/SAF.Configuration.dll create mode 100644 SAF_VS2003/SAF/Test.Server.SAF.EventNotification/TestConsole/bin/Debug/SAF.Configuration.pdb create mode 100644 SAF_VS2003/SAF/Test.Server.SAF.EventNotification/TestConsole/bin/Debug/SAF.EventNotification.dll create mode 100644 SAF_VS2003/SAF/Test.Server.SAF.EventNotification/TestConsole/bin/Debug/SAF.EventNotification.pdb create mode 100644 SAF_VS2003/SAF/Test.Server.SAF.EventNotification/TestConsole/bin/Debug/SAF.Library.Security.dll create mode 100644 SAF_VS2003/SAF/Test.Server.SAF.EventNotification/TestConsole/bin/Debug/SAF.Library.Security.pdb create mode 100644 SAF_VS2003/SAF/Test.Server.SAF.EventNotification/TestConsole/bin/Debug/TestConsole.exe create mode 100644 SAF_VS2003/SAF/Test.Server.SAF.EventNotification/TestConsole/bin/Debug/TestConsole.exe.config create mode 100644 SAF_VS2003/SAF/Test.Server.SAF.EventNotification/TestConsole/bin/Debug/TestConsole.pdb create mode 100644 SAF_VS2003/SAF/Test.Server.SAF.EventNotification/TestConsole/obj/Debug/TestConsole.exe create mode 100644 SAF_VS2003/SAF/Test.Server.SAF.EventNotification/TestConsole/obj/Debug/TestConsole.exe.incr create mode 100644 SAF_VS2003/SAF/Test.Server.SAF.EventNotification/TestConsole/obj/Debug/TestConsole.pdb create mode 100644 SAF_VS2003/SAF/Test.Server.SAF.EventNotification/TestConsole/obj/Debug/TestConsole.projdata create mode 100644 SAF_VS2003/SAF/readme.txt create mode 100644 SAF_VS2003/Update.doc create mode 100644 contributing.md diff --git a/1606.html b/1606.html new file mode 100644 index 0000000..e496416 --- /dev/null +++ b/1606.html @@ -0,0 +1,21 @@ +Contents at a Glance
+

+About the Author

+About the Technical Reviewer Acknowledgments

+Introduction

+Chapter 1 Introduction to Application Frameworks

+Chapter 2 Dissection of an Application Framework

+Chapter 3 An Overview of the Simplified Application Framework

+Chapter 4 Class Factories

+Chapter 5 Caching Service

+Chapter 6 The SAF.Configuration Service

+Chapter 7 SAF.EventNotification

+Chapter 8 Windows Services

+Chapter 9 Message Queue Services

+Chapter 10 Authorization Service

+Chapter 11 Authentication Service

+Chapter 12 Cryptography Service

+Chapter 13 Transaction Service

+Chapter 14 DocumentLayer Service

+Chapter 15 The Workflow Service

+Index \ No newline at end of file diff --git a/1616.pdf b/1616.pdf new file mode 100644 index 0000000000000000000000000000000000000000..e596c031fa6417ac82b21f925a0d407b962e431a GIT binary patch literal 95303 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

YE6w^w5|a4A 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

33!{f2%0zvSvgeGf)##y>%jZ@15<^J2HT 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

%+;$DumL3Tku+-2DrA3yL37^Y5Xf3BKgu3La8 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%0Alkp2C1DN)lt!^mdFrwBrhGITtcq+ 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 + /// Application specific configuration manager. its design follows + /// that of ConfigurationManager class in SAF.Configuration + /// + public class ConfigurationManager + { + public DocumentLayerConfiguration DocumentLayerConfig; + public WorkFlowConfiguration WorkFlowConfig; + + /// + /// constructor that takes the xml configuration info and + /// initialize the configuration object to which it holds refereces. + /// + /// XmlNode that hold the configuration information + public ConfigurationManager(XmlNode sections) + { + //initialize configuration objects + DocumentLayerConfig = new DocumentLayerConfiguration(sections.SelectSingleNode("DocumentLayers")); + WorkFlowConfig = new WorkFlowConfiguration(sections.SelectSingleNode("WorkFlow")); + + } + } +} diff --git a/SAF/SAF.Application.Configuration/DocumentLayerConfiguration.cs b/SAF/SAF.Application.Configuration/DocumentLayerConfiguration.cs new file mode 100644 index 0000000..9bc9d03 --- /dev/null +++ b/SAF/SAF.Application.Configuration/DocumentLayerConfiguration.cs @@ -0,0 +1,36 @@ +using System; +using System.Xml; + +namespace SAF.Application.Configuration +{ + /// + /// DocumentLayerConfiguration + /// retrieves document layer related configuration settings. + /// + public class DocumentLayerConfiguration + { + private XmlNode configXml; + public DocumentLayerConfiguration(XmlNode configData) + { + configXml = configData; + } + + /// + /// Get an instance of specific document layer + /// + /// name of the document layer + /// an new instance of the document layer. + public object GetDocumentLayerByName(string name) + { + //retrieve the configuration for a given document layer. + XmlNode layerXml = configXml.SelectSingleNode("DocumentLayer[@name='" + name + "']"); + XmlNode firstLayer = layerXml.SelectSingleNode("Layer"); + string typeInfo = firstLayer.Attributes["type"].Value; + Type type = Type.GetType(typeInfo); + object[] parameters = new Object[1]{firstLayer}; + //create an instance of document layer dynamically. + object Layer = Activator.CreateInstance(type,parameters); + return Layer; + } + } +} diff --git a/SAF/SAF.Application.Configuration/SAF.Application.Configuration.csproj b/SAF/SAF.Application.Configuration/SAF.Application.Configuration.csproj new file mode 100644 index 0000000..f67e1ae --- /dev/null +++ b/SAF/SAF.Application.Configuration/SAF.Application.Configuration.csproj @@ -0,0 +1,103 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SAF/SAF.Application.Configuration/SAF.Application.Configuration.csproj.user b/SAF/SAF.Application.Configuration/SAF.Application.Configuration.csproj.user new file mode 100644 index 0000000..e1f4628 --- /dev/null +++ b/SAF/SAF.Application.Configuration/SAF.Application.Configuration.csproj.user @@ -0,0 +1,48 @@ + + + + + + + + + + + + diff --git a/SAF/SAF.Application.Configuration/WorkFlowConfiguration.cs b/SAF/SAF.Application.Configuration/WorkFlowConfiguration.cs new file mode 100644 index 0000000..ffaf6ec --- /dev/null +++ b/SAF/SAF.Application.Configuration/WorkFlowConfiguration.cs @@ -0,0 +1,34 @@ +using System; +using System.Xml; + +namespace SAF.Application.Configuration +{ + /// + /// Provides the configuration object for the application + /// specific component + /// + public class WorkFlowConfiguration + { + private XmlNode configXml; + public WorkFlowConfiguration(XmlNode configData) + { + configXml = configData; + } + + /// + /// retrieve the email address for + /// a given customer + /// + /// customer name + /// email address + public string GetCustomerEmail(string customer) + { + XmlNode customers = configXml.SelectSingleNode("Customers"); + string email = customers.SelectSingleNode(customer).Attributes["email"].Value; + return email; + + } + + + } +} diff --git a/SAF/SAF.Application.Configuration/bin/Debug/SAF.Application.Configuration.dll b/SAF/SAF.Application.Configuration/bin/Debug/SAF.Application.Configuration.dll new file mode 100644 index 0000000000000000000000000000000000000000..a7f0fd3e3199c3ca6117a0d77c9e93e5fff3ba40 GIT binary patch literal 4608 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 literal 0 HcmV?d00001 diff --git a/SAF/SAF.Application.Configuration/obj/Debug/SAF.Application.Configuration.dll b/SAF/SAF.Application.Configuration/obj/Debug/SAF.Application.Configuration.dll new file mode 100644 index 0000000000000000000000000000000000000000..a7f0fd3e3199c3ca6117a0d77c9e93e5fff3ba40 GIT binary patch literal 4608 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 N1a}x*f$1zUe*s*D88!d_ literal 0 HcmV?d00001 diff --git a/SAF/SAF.Application.Configuration/obj/Debug/SAF.Application.Configuration.pdb b/SAF/SAF.Application.Configuration/obj/Debug/SAF.Application.Configuration.pdb new file mode 100644 index 0000000000000000000000000000000000000000..af1e1ec9a59e3b16fca02b37a02e4be3ab44806b GIT binary patch literal 19968 zcmeI3O>A6O702(4UB}Kxu~TS50;v-W4M{ux3c-qKY^N&zo29gmY~Y|nIN z(!^4PMpcDaR452gVS!KuNJZ)*5(_@0hAb+?f<)3p*kbv!|NU`4dUcJ-rn9L- zi9*7bvo?SEd^(qR8N!{6+n%~t`4L#^rdEIH$HbC_Opd#mjy`<*3qoRd?s?kH!>G6k z9yEKLwLaz?P>q?>*cQaIE-OzHK>oC~^=}pVFQDs=*1G!9NdDMp;=C(!&pq{C*UORn zEHeXA8{aWbtL*>N>TAvRzk&P<(w~zWhjS>Z)Nc8+r!|hZPwVf0?nVFK{ojoIu^(3c z1CtL7A%FHmGZ0k%6H*Xl8pQuMBmY|VzlNorE%OOwMx6LFd0;l5mIl2u9KLA`LQ=xQzf7i*Bh|oG0&!Q4glB_7F6E#8zopnE&FfF+qs9V z{XgK%^{>u^j2W>L6_t)TmIFM)big$hg5q?RCzL9Tj3jV?gbVb#s zhz-=eK#}&nq8(;b@#=Q@zfPx*Bg%L8X{5B*v03yDXsjX|OYato_lxTNQgK*xhiIpn zFrDTb!ak?J|0=&*hz|lZo&)R`;+~_zcEtWS^8RmR|26lnQSrrLS&jJLmbcT6TKi_> z|FbYvKn!O=y45wQgfrKG@t>{V&biw&ou=H-2T=E;jQ`4Y)0o0?Hudn*do5<;iT}b8R3}{<^=GFe|rZ?7n8&R&hlzO34-vuf|^RHUSv*c{>y0DC1H<=Cs;qS!0qMV+CG zhefelkBat-9v9syIxo6Qw9|acbjtE|nghanh5LjL2+QpoaVLO%n-emp^TOW?{pWux z!^-#%9$1KIPw^~THU6{l7v=5TLzOzibX-}vb7P$Vd4c?Jng8`g5o(Y80sI1f><9?~ z`Ia~6zV$(>=lHQLqR4iuD11TI9rAXa=7jLkG9UD`$^mra72!XH$e*^zU*Ekr@~02v zkADj)f6g30HTkx*tAZ+jefb*X|44jjxUo ztujW`cy(noKj#}GTI&*5Y1qTwd4CtBQ#V$jO_t8a|>HSl?jF zL-|`y+&UB)^9|sAT9RVou{+J11H7j%%CVgnC4biEfMP}a^GuR(je}G*ty!5A?LPf=|XyETF@hc&7IQ!*SAr91^L)FV7GdvX^ z9o@hGK{~kqkFjgEGaH+_J-fe@k#Fx`Y+Xuuo)n%WA*d|l%w^m8-7fXGld-YCzbvZL z-6p4_NaheHs*d$ITwX%is1t_t}WldH<4AvL+d~%)ta|z zfm$~>=h}N+PZZ*)2MEB09^Xe@DIAC)CqW&GiCxkYj;0vcRb2eL3dp;`lWja5O4M%qV zC_9dw59MFwrCzJ#FaF+$fImMcwBLWOL!Si~rRrBik9fFSv{&Z(ZQ-*jdq(ygoxxsP zgW{*O>k;y82rT4|jsO4QeuTpXeubgf9^Azdhi(?$CDeUN)&Bw7sQl9Bg0nZ-{@2`Z zM9_U>nf&7|mOuR?e=B?R0r~sC1x5a~WY3)ex_ z*7$F1BIq2dx`?LZzj|@pJ(d|&DEpbaL4Q#z;{UgQ`Z^xcf%-BibC}*G?b_s@eJ<$O z?UVn|yO#s5zcupzwK&~;9Pi4Q= z#DB+>S1tbQRXu;)XP=4xI0A7r!vEuEb_$8}h~o$|FoHN^;sN|WHih_*BNTB0u|vO* g7{Gp8r^gUl$brwau&=PIkOLtHLJou+xOq76KTy3*3jhEB literal 0 HcmV?d00001 diff --git a/SAF/SAF.Application.Configuration/obj/Debug/SAF.Application.Configuration.projdata b/SAF/SAF.Application.Configuration/obj/Debug/SAF.Application.Configuration.projdata new file mode 100644 index 0000000000000000000000000000000000000000..cfa45b59586ecf87ede33d5a1746949f99aefc43 GIT binary patch literal 5000 zcmeI0&5M&q9LIl;>&B>U&{j*8A`h#`y1R`~M2f@(Us@@&i{L>ItC%MHl5IATB-UDr zgdQY_M=yeZgBNeoQ}qwg?_OO%uGV{zc^Lu}p$-@JC z(%X!--R#o5@AMJGqigAp!|4CqH(^d7iCVkN_R}k(PXVt1qCKX=SNs}{zhtueU6E(LuKk^O zmjSWQ48GU1z5M6N+}&r9_BGoe?WXsdr9_-HlYK_<@EIp%Gt)B=JJd54%m#}UVZ9I5 zK{CN1J52UzxQLvzD|lzw=6EXNsmH*zCozYn?DHs^&Y-(Lqa5p$acAvA+eQAWyWG1< zrm5lKezw4h3U3tMZtg7-;=uTi4ss>}Q!)Ut0D2#4fMLR4A`uW%&ZwV)VDjZ=L$J zz)Z>MvcQbDm#>gP|H?Y854QCGzVxpwp5Bd@4e9@bWr_a1exmKg=ZIUyZ`FBs&Ay_~ z<5Ok$p4@azw|8eU7yI(=8eXe>QKJ9R`E$dTU9bA-Y0LMEe6&`THFnjsMz36yr(a^f zc2^kdRM;(p)->Ti2T1KYe;$2!r1IO?^GNmPkE_Sr_&zUR?7Md%`t?~9F|QJ#N+BHz4yKT^y{>g8Rt}j( zU+>be_9s{SynlSH4tNboqtcc#i^gh_GKKz{^w$Bkdq9enFXfw*jaWXRvJ7_Sa@2JcCOTP0XX)(GQ}k%J$1=iwyX{_Lb&FWW9~ zf_`@e=!agGC>VuhH`Bjry605qUZRX(dKLMTuKYi#hb{ffF5!f=d1MW$f5myY1#j$g z8&T&v0#BW|Ru$0PQ$S<2-vPyXjCEfzo}%AsNezVj|CN9K>v#zCW&ig<|1E~y!wUca literal 0 HcmV?d00001 diff --git a/SAF/SAF.Application.Configuration/obj/Debug/SAF.Application.Configuration.projdata1 b/SAF/SAF.Application.Configuration/obj/Debug/SAF.Application.Configuration.projdata1 new file mode 100644 index 0000000000000000000000000000000000000000..4b046ebb4efe1866c392249228b851d6098b8248 GIT binary patch literal 2824 zcmdUxO>0w85Qg7qt+8O}LPbSNh?}T26%i4Mh5FH=Xb}W;(S@;JTH9D|(n`fe5Gkd& zaN$D#gd2CR#ENT|U5G!Sh|4b2=e;+vF}7(F0^)?}%$;-2e4Uv&eSM%azD+=zbY;64 z=_jyaA-GRNx}b;3tEkcNZvlz4LosiKhNq#?;nTXv?qSVns=WWIa+-q=%6i6hU*oI? z$cymSEzPrf7R@)*r~cnG!`C#wN%jp_?a$QFHPn;`8T1$MBU|>M8OzeqI(}Wl|2#Mz z=0bYh!ib|AS}(JITCGIcty|XuXd+E|C8z-6ifh zUFJr{h`(ZsCg2XGeu_K3OG?2{!!PWV4#Lk;>a`)hecrHKv)0Z6q7a;Ae{1>M+rjyzn9o`1JThn5 z8O?Yd+(Tb_LPWKFo12?tp;Hkz$l3_^i9U57+YfE5vb%H`{YA6{O4sN-g0{Gh$6}%0 zlm@UyZV>;QZ^rm~#oUz_E^d=J5V_CfSwCvSxbufDh;oP*wfa;8- zL1;I?#;9h&B-ZbR)O8%$PC`fcd9N!x8CG=wwcZ?bobx`Nhxc@@jv=z$v##|l)7ReQ zu$2twm*YN1XVhv*;cu;M?L<~RRhlaCMzQ%V$YZ@1%^OAJ^R>GxephlBRi+Ck2D*>U z8(hWhlvoLR2Q(~#?d)8Jz5&02{|-vHY)s*T>p$%fa6i4p*Gy{m<#p$DW2~$0o6u-y zS?hDOHu55F){TF6ebk=`a^;!i+inL($~+|OOUvGsdCNY4u7)J%RxALV`-Lj-XaY361l>=o s(2o{01SNK#0ey$g|NF$J@NKa67pq@F{uzs(_bd*?o-WxTrfBQn7tGa%bpQYW literal 0 HcmV?d00001 diff --git a/SAF/SAF.Application.DocumentLayer/AssemblyInfo.cs b/SAF/SAF.Application.DocumentLayer/AssemblyInfo.cs new file mode 100644 index 0000000..9f89a32 --- /dev/null +++ b/SAF/SAF.Application.DocumentLayer/AssemblyInfo.cs @@ -0,0 +1,58 @@ +using System.Reflection; +using System.Runtime.CompilerServices; + +// +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +// +[assembly: AssemblyTitle("")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("")] +[assembly: AssemblyCopyright("")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: + +[assembly: AssemblyVersion("1.0.*")] + +// +// In order to sign your assembly you must specify a key to use. Refer to the +// Microsoft .NET Framework documentation for more information on assembly signing. +// +// Use the attributes below to control which key is used for signing. +// +// Notes: +// (*) If no key is specified, the assembly is not signed. +// (*) KeyName refers to a key that has been installed in the Crypto Service +// Provider (CSP) on your machine. KeyFile refers to a file which contains +// a key. +// (*) If the KeyFile and the KeyName values are both specified, the +// following processing occurs: +// (1) If the KeyName can be found in the CSP, that key is used. +// (2) If the KeyName does not exist and the KeyFile does exist, the key +// in the KeyFile is installed into the CSP and used. +// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. +// When specifying the KeyFile, the location of the KeyFile should be +// relative to the project output directory which is +// %Project Directory%\obj\. For example, if your KeyFile is +// located in the project directory, you would specify the AssemblyKeyFile +// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] +// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework +// documentation for more information on this. +// +[assembly: AssemblyDelaySign(false)] +[assembly: AssemblyKeyFile("")] +[assembly: AssemblyKeyName("")] diff --git a/SAF/SAF.Application.DocumentLayer/Class1.cs b/SAF/SAF.Application.DocumentLayer/Class1.cs new file mode 100644 index 0000000..2512383 --- /dev/null +++ b/SAF/SAF.Application.DocumentLayer/Class1.cs @@ -0,0 +1,17 @@ +using System; + +namespace SAF.Application.DocumentLayer +{ + /// + /// Summary description for Class1. + /// + public class Class1 + { + public Class1() + { + // + // TODO: Add constructor logic here + // + } + } +} diff --git a/SAF/SAF.Application.DocumentLayer/DocumentBlankLayer.cs b/SAF/SAF.Application.DocumentLayer/DocumentBlankLayer.cs new file mode 100644 index 0000000..c4d3a9e --- /dev/null +++ b/SAF/SAF.Application.DocumentLayer/DocumentBlankLayer.cs @@ -0,0 +1,73 @@ +using System; +using System.Xml; +using SAF.Application.DocumentLayer; + +namespace SAF.Application.DocumentLayer +{ + /// + /// DocumentBlankLayer is an sample document layer objects that + /// don't do any task but contain all the elements needed to function as a document + /// layer object. + /// + public class DocumentBlankLayer : IDocumentLayer + { + private IDocumentLayer next; + + /// + /// set up the next document layer in the chain + /// + /// next document layer + public DocumentBlankLayer(IDocumentLayer nextLayer) + { + Next = nextLayer; + } + + /// + /// Create an object for the next document layer and set it + /// to the Next property + /// + /// configuration data contain the document layers participating the chain + public DocumentBlankLayer(XmlNode configXml) + { + XmlNode node = configXml.SelectSingleNode("Layer"); + if (node != null) + { + Type type = Type.GetType(node.Attributes["type"].Value); + object[] parameters= new Object[1]{node}; + next = (IDocumentLayer)Activator.CreateInstance(type,parameters); + + } + } + /// + /// interface properties + /// + public IDocumentLayer Next + { + get + { + return next; + } + + set + { + next = value; + } + } + + /// + /// interface method that process the document + /// + /// the document to be processed on + /// document after the processing, or response document + public IDocument ProcessDocument(IDocument doc) + { + + if (Next != null) + { + doc = Next.ProcessDocument(doc); + } + return doc; + } + + } +} diff --git a/SAF/SAF.Application.DocumentLayer/DocumentLayer.cs b/SAF/SAF.Application.DocumentLayer/DocumentLayer.cs new file mode 100644 index 0000000..c7d68c2 --- /dev/null +++ b/SAF/SAF.Application.DocumentLayer/DocumentLayer.cs @@ -0,0 +1,107 @@ +using System; +using System.Security.Principal; +using System.Collections; + +namespace SAF.Application.DocumentLayer +{ + /// + /// IDocument reprersent the interface of the document that + /// will be pass through the application during document processing + /// + public interface IDocument + { + IPrincipal Sender + { + get;set; + } + string Content + { + get;set; + } + Hashtable AdditionalData + { + get;set; + } + } + + /// + /// IDocumentLayer specify the interface every document layer must implement + /// in order to participate in the document processing chain. + /// + public interface IDocumentLayer + { + /// + /// refers to the next document layer object in the chain + /// + IDocumentLayer Next + { + get;set; + } + /// + /// ProcessDocument gives document layer an opportunity to process the document. + /// + IDocument ProcessDocument(IDocument document); + } + + /// + /// Provide an default implementation of document object + /// + public class Document : IDocument + { + private IPrincipal sender; + private string content; + private Hashtable additionalData = new Hashtable(); + + public Document(IPrincipal s, string c, Hashtable a) + { + sender = s; + content = c; + additionalData = a; + } + /// + /// represents the sender of the document + /// + public IPrincipal Sender + { + get + { + return sender; + } + set + { + sender =value; + } + } + + /// + /// represents the content of the document + /// + public string Content + { + get + { + return content; + } + set + { + content =value; + } + } + + /// + /// represents additonal data assocated with the document + /// + public Hashtable AdditionalData + { + get + { + return additionalData; + } + set + { + additionalData =value; + } + + } + } +} diff --git a/SAF/SAF.Application.DocumentLayer/SAF.Application.DocumentLayer.csproj b/SAF/SAF.Application.DocumentLayer/SAF.Application.DocumentLayer.csproj new file mode 100644 index 0000000..8610c46 --- /dev/null +++ b/SAF/SAF.Application.DocumentLayer/SAF.Application.DocumentLayer.csproj @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SAF/SAF.Application.DocumentLayer/SAF.Application.DocumentLayer.csproj.user b/SAF/SAF.Application.DocumentLayer/SAF.Application.DocumentLayer.csproj.user new file mode 100644 index 0000000..c8340ea --- /dev/null +++ b/SAF/SAF.Application.DocumentLayer/SAF.Application.DocumentLayer.csproj.user @@ -0,0 +1,48 @@ + + + + + + + + + + + + diff --git a/SAF/SAF.Application.DocumentLayer/bin/Debug/SAF.Application.Configuration.dll b/SAF/SAF.Application.DocumentLayer/bin/Debug/SAF.Application.Configuration.dll new file mode 100644 index 0000000000000000000000000000000000000000..6436db010474709eb2bb7c7f438cf352c5b5da03 GIT binary patch literal 4608 zcmeHKU2GIp6h1TiQ(9o5Er`Z8P6b01oNNP#zqsu#KPz1dY%OR@V0Jq!1G6*3%q+U1 z2IEisiAEDl@KFQmBM&AL1Nw>&yr_xB7kMxyJ{g`gYQ*oH*`>R-*7%bc6VL4Z?z#7z zd*+;T=l*Qr;a4d}L~)d>SBcJ{X37Z84<{f_-Sk0<-s`+Ha84P$G%$Y13N+7mE51?H z%7){(p;j_AzvgI`qvghmTGgF4^~H<3Ry9oT+)Om8#OUhB-u=zDU8dB)LM2Jmg&tH) zuM7e-lne?{xA1D@H+QiALMMReXX3bsmdbCYZZt(kbSLZJv1K;(LTvakV&i!ztIxXhz{s};Fr-7-!fo0Px=wh($NWr#*v+su22pNW0rAtw>%Y2;kt&c8st=@|7l#;JoT#HGf381vjE z-~+rO`2?Er+o02%RtXwHP2DG;!NT5joJ>fd+pQkwPX8uYiTT^vX9U(I2D_5}uBP#Y z9d0-J{e9fg!y3JS!DWC&D_({nr8n7~ysqP|?&RVHorBBK-y83a_a@d*cY^(4YJP{D z3kzj%00rO0?qaUEVqneT@TaAPXO4bz<@HZLo8+m;-aSVode(Ig zT9ukFttq#3cq(U>YL)r*bZ@!@lQdF%U_@!m0MF;KAw8|H+nCkFs>BbB)CV=6MRYV zZNZNOzYzRhaGAqpXBt5ROBm z-PmUoS}XnSeP^Uk;NF5eU9-(iH19Idr)`_6LD}_ft3<_m5SmpQD;+k=A+@cSg5eky z)1TiO<=k?uYC7SlQ8)dz@pFk9@6-2IZ9>_BV~F%}==xNarON$V&9KerNPUM-tdS-0vLPJQ->w&czh=ggq&TOMa-ws71E zTk{ajx}LL)isJ^MRSrlt#)?sDRSTj-2UIjU=SA#nwkdNK%~s9`4RU01WZUEK2Rkp% z>@^p%uHBrkiW%;|)*rNK5zF%U62}e-J7L&0lg8_w$)AJN!^z^e2yptdQ^2n)))3o6I$EGH3SbzD2Sh8nPLQ|BUPH>%ZP3cPk6ah7%sfwz` zG+5W5kxEi51&V9bvzdGHDacaTBzp>}4pRGi3jKYlj*gyAJYf6!`uo&mUo6>=(o;yt z{+h&&D$Ie#y@A*Nlgw+(&8Fu4Vn(t*>-ss{E*O>*?FObPI|FN6y#;n~i2qOjP6qho zB%FA3qW%4RjuNHk=x05?JMPU8P4NYxK~u5y;3jal-VfYNyTRpYjCP=%2W|n+bRquT zFVShE(4OPFaIJ{y=AQw+W8uhcBfiHduxenPZNV+g#wy8UJsreqWLhPc#a*H%7XyflWeB%`G|CXIqdR~)>LJ|0 zHli?1<7T2rc0w7;yN=!BQIUpWT?cx2Z1_-a$(Alra%L@Ls3sY0W>SZ38xQWs63-~? zSHwDJ#>4K#5mj&#<^MSvN)-2uUNl3~7+1wOpN{aZ3DQt(@q4UcgJ+2SZswu6ck+L? zzwduEXFKsO7cte4fv_b*kv}<^hjyLc&c+|j#Wt}qj3@(%xrB)7i1yFg;T-*Aq(%Q3 QU%m4mv-rQE|4;^g1q*(X4FCWD literal 0 HcmV?d00001 diff --git a/SAF/SAF.Application.DocumentLayer/bin/Debug/SAF.Application.Configuration.pdb b/SAF/SAF.Application.DocumentLayer/bin/Debug/SAF.Application.Configuration.pdb new file mode 100644 index 0000000000000000000000000000000000000000..89193791b5ea994c5eb2b03e856fc0aa75f6546b GIT binary patch literal 13824 zcmeHN&2Jk;6dxxc&1aiUp$#b?Nfb~?sO@~H6x24P4xtqd6>^XQCe!tnBWbMSMtvF7b?6ZD; zJ0CkU``*lZ^JaG>5=te~iLlug@CCZN+eU)JZ7+EJ{>Hl2p`ZX&2;l)c0L(BAYPFdA zzYQet>5F1<$)z1D0sr?q_R-x3hXg*T?eQF;9c!`ywp%PM!R%Xkr=FVKJxO(fA*S`AW&TVaGz)IJD{qfsccwW2NCB$OQshjx(@i+=9fofnMupg)c z8i8Fv4X_*718}NoKr`?tuotKWTq?f=N~QnukKFCC6cSj={?jo!?LX7(E0>p|f47aT zl|ZT1zq0+b=gRgs;JONU1fUE85;@(gq9*#_%Ps!AHRw|~)^(iCe4W$db zdomF^A2Z@+RG&6dSxvDGdW+)#M>GJC=viFaED6x}UIJPma-IXIJ>GR(&jKfHP&3NM z=f-s`qsEv|;`Kq`z;Axfe>GR*Y=e19vj(meQOmh?na8^1&bmmtRALF#qdn^Rm-boT z-itqYaN!E9Pf)H`1JI;#I>OvTe<2+L{y7uj?@b zXA_m$4HS>!e%`C<*NILoIGr|)8272_+B+7D3emyz;IMblVG{#Rn}~LrSJ%O4<$a<{ zv}xP}qf0q>+%c*&$33{URAe;b)Q1J$nag9>{nG0t|pN9U6wYIMQ;UOWvhh6`3{)NjO&_CC5G34t1;nqL( z?X_(x?Er~!x+3Ve`bi|DP4$M%M2hFTl^XB+24GyT$~V)7()O=q|0mJEqGIho@7-?p zU+$}=*RuS>{p>&2FMQLo|1hVMa?3^ELSL}rhu~ZE6kMojq_Eki@8BH3{mb{-Zbj;e zy7J)1^B~R-#+4ik`!j(Iz8P4lH;FZ`FSK;f2O8m2pC}7PQk5F@u?>F8BNa!o`1UQ~M!+q^z-~n*F z6UhX@aWg;snqS90N4j=ijJP1E^?-?@maR>+`@U6B{7v zFn9e^Mv9;_ibU#8tg-(2tR(8T9P3}rDfVgU(&}63f_VkaqpaA|8OB=khV63>sd>XR z`&P2aH*Y8p=m_)14;@Zr>5wuaQJY4La$St6Oa8S|riW3o>?=g70`_Sg-$Y||y+)Jeq}I$73VuMp4L`m^+!C&0#tl}=s#Z@T(6+(FZ- z7GgTHc%-X*!>TH7#m5W(_v^b> zjAK7>3H5#g*mv@u+XeQWb$XaJ5Yc~xBRI@`{h{x?3v8F9_J&r<`ezyQRZOkwvXs}1 zCDh*4Sylnh*(ftS%V+Y8k!tMy5%q?oEMr}^#vkbzu%SJ0K{u}-h^hBV_9Mt~$v+O< zB25n7x?U-FugWTcE8ZSY`{m>S*Z=-A4CPL?|jBq4sq13N-VT7VJL|FjS%9(GPNHT!>=2;d|9xWHm+Q!z1y0(yg@88$Ir6;=eZrT3TFB%F yk%s?}F#u)k{05Y^kMgFBai)^>{U^_67<2MG!~G5jLMSs?zP!wxy4^i668Im%DtTrA literal 0 HcmV?d00001 diff --git a/SAF/SAF.Application.DocumentLayer/bin/Debug/SAF.Application.DocumentLayer.dll b/SAF/SAF.Application.DocumentLayer/bin/Debug/SAF.Application.DocumentLayer.dll new file mode 100644 index 0000000000000000000000000000000000000000..eaa161d8d7904104782dd5ea5e1edb6ed6fee1a8 GIT binary patch literal 5632 zcmeHLU2Ggz6+U-nckOku8}B-_LAYX^pJJM5afn;gv})J(Hnp1{J6R_rU^SWDoouF_ z-Pz2{hHgWUTO^|bQK3{-RUuF#QMC_|Kt&KitD*?32oVVZ4@l)9LRFuT00|xl65%^% zX4f0rG6MPlQm-@LJ%9JybM8HJ=WY&u=4+%AQ4G(mTSQmTbIS{^4+~JIKl-CIeLs19 z=!!aUeQ5TK?Hdixt$Jq7D4X@V8yF?a@S1hQt{a8vqET}zRxXw5+a9@|d4%YI(rNJW zbUqT%4N4DfPzgAP1Rb~fE`Wh2kB2BDv=+wA0*+tW0uXX;oEK5Q{9EoLR&+#L;J3(h z9=V4DB2CntBH9S@H$y~&w`>N7DHHsUYG=u0=&hx!8 zIEgI}f)hnb-7SykbDrh6Fl2Xh3J?3*jHj#RiN?EFA!m?3H;#>m%xxulGfAXa_#d=^ z5lvFzq1rGuuus#6d$5i75DkpzGy^$&XF{Fsfo`~)VAhw|wKw4+vpz4yvJ5CU3m6^% zY`F6xELAFbN8(a)qt??qjNJMHM66waB6iQfh@uVf9cSO?S=6_aC*^qB`=IG~$90&IIx6> zgDuvKgB6{a5jSkv&6>8X=-6UyV9Q~wY0C<%G-@?^pD+>Gc>Xkm2cC`;3&q{fExr6s ztvY$-8?#?|CjaWMprVPrbH%ZJ{N%)YiTl@eUic=54u6;%?~<+t3F#? z!NzStzwKy|ehHe(e%qr*rwZtAfd3uyq1@~ zrcrKE>r8Xa@G*nwrA~Mb9>eQ~4UeKvU=2&)eofbKApMoz0gkC0&ZxK5W#DfG|17vs zW62J|hXhXu27(s_UlshB;O_-D>VMPvXjZ?5S)KwW=$m>8_&Sgq$Hb`U74*C4frwLB zl?J#tG%?YAQFIz5A?c@!qSKJGqPJ)W_?$Wpd{NB-zokyHTePLri=Awl`?idTbn(}) zh8oQn%r9=a3Y|_)hueXfuL<{FlD)*~M#Qm~IQ=E$6nlw|bId?$C*cj0wv^hSM!L8= z)P0?|b}6-0?d{_BtA~+Wd)(uy0B&%Id5)}%`DcWC4-2r9QgkNbc!m^xKH_+WG`$dU zJVTmZi#VQP6a6IOcm}Q*MF#3q(cOZd5WHV7lwa+lLrI8BkZW`esMF8au+foQ96R-K zx=MR#x8VIihsK1S55HJB z*Y87}yrO@VUZ*$o=TQ@EnZuiK9XKHP5y3rz4+u^O?iVZyepaw7IFC2uW%>?0UZ(HC z;}7V^^fn!*pVA!On3Kp~A$tvVq9a$Xfh%$Xhj>;!2Fa6Z8n~eNYrIktj#u!&UJ~%3 zP%UxLN%RVP&bSerhCCQk=oR*qF#}G+3ZvwZ-zLym!OhSp)MSQY3*j4fGk*6Xrbi3k zFQRwlgUZ?yB3Hm=*)@>~Jb2KpG#%?9TK5ReRUC(=ZaY=iA3!y~?0Sw}qGHPrtQt+1 zp0LURwOx!mW_?~x=ViAYB~`89ui!M2d)>*k~>~=2+twh z*4mo`aT9~z$~ zP5(?_mK;lh9;;MrmYYt&3``ljLKMx=_P9dphoO|Cxy{?%MbjU#PDj(znD1M)lGEC6 zwGNpzYb?N5sMHLsZpA*^Swm5<9J5ultM%1mj#-|M99AnPnoiL4)^IlKnH8&Mdh=_H zaT_hquAT{2tFWh)W_b<8gj;Kv_15YUShdr3wdu)6ezm$_`DM>;@CK|_&e}ouIz($( zu+3`S^#i-?lUxz1yqC+P&zVlsqDpj~Ag;KuYOzHKh3l-{OJP11umP;k9 zkM;)nT&5i>(M{nsnLaJ#F`0F?)v)MME0BH+^>)tWQlIcFGq9%Weqh$i5*zvWewerv z900b+B9AB;fNFpyI`rkuf4_9}-SKDM*gNT+KetG|KYVKL*oQ}NJR378+Z#8O%JwD< zmF>^=$A%%%6OlB@1}QN}=?0}^Fa=OHBeD!zr}SYcKx8m1r6tnnGQEbbvZ-`7!y~k~ zp(#y+1BGGPqj zy$6AS$i(?%qXcdkLgb_01uT4=X@jZNt^NC9S%VkeD>%+U)2@eymu1PR#}>DCzz=Tr zAGH6?72q4A+_@KSk1xE%kKpsXQqKG&p5uA^cEs(b-RAUBkjL=b`XulXIs$5nrs)v) zDd0ZP+}?`)@gL#07dNZLn{lSOe^|8Py*#{&M*?(w|5xy8;{Du*o4JFxbBgM8np`p3 zj(Y~tEVL%1KJ+F9uyetM?Yprz;Zz}}09H2S)ipf5BsL?|{u{+_0IUISE_@%EfWI34 zER4q24RQm|_AXsR=5HZeQ|zD?n_Xhlj=TU5eC}`@joad6e|g+gR42A$u*CHlX1{t0XD9(w=) literal 0 HcmV?d00001 diff --git a/SAF/SAF.Application.DocumentLayer/bin/Debug/SAF.Application.DocumentLayer.pdb b/SAF/SAF.Application.DocumentLayer/bin/Debug/SAF.Application.DocumentLayer.pdb new file mode 100644 index 0000000000000000000000000000000000000000..3d2258ac06da65930ebe72b4cd47aff1fbee4830 GIT binary patch literal 17920 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 literal 0 HcmV?d00001 diff --git a/SAF/SAF.Application.DocumentLayer/obj/Debug/SAF.Application.DocumentLayer.dll b/SAF/SAF.Application.DocumentLayer/obj/Debug/SAF.Application.DocumentLayer.dll new file mode 100644 index 0000000000000000000000000000000000000000..eaa161d8d7904104782dd5ea5e1edb6ed6fee1a8 GIT binary patch literal 5632 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 literal 0 HcmV?d00001 diff --git a/SAF/SAF.Application.DocumentLayer/obj/Debug/SAF.Application.DocumentLayer.dll.incr b/SAF/SAF.Application.DocumentLayer/obj/Debug/SAF.Application.DocumentLayer.dll.incr new file mode 100644 index 0000000000000000000000000000000000000000..64e9bae90b43266f79c8cdf812dc81ed4fd66cce GIT binary patch literal 1444 zcmcgrzfTlF6#ni|4ANUqwB~X|fpFN|-GVuDsPQzINVB`QrwjXo?9O4%N|J+;#?aE( z*x6dxn4?ih{0IC4EGz_C3%@sa3x}~2n9bWa@0;0q-+u2+Epiht^dfBss?zp@rm}2p zt5%$->Md1`!!O;Qd$cd1+LFC_c9iU+X&&|71t815?jY4cNA&2F+)E^tbq={*4!5o zZzA9$BPXxYhy6n`d2a&XE}_d}Vv)V34RbO|Eq(uXOio`1vdvv0r)N~Weuj}L(evKV zUu1Ousz?UR(k@P=kkxWcMFUpfIbpNaecS#$x|ds--ZXyDJcg0XADysjurC)(<;52m zt?`l5T%)aGVz0h?@Vb|6!yRIMrO)G^%2YNr_rReV9p1HwcPge5E^!%>Sc<%Tvk-k6*~?`_ zO2p2O$KSeF$i^m@)u9UXIc50|n4cQu%k+Yc(tdP{hGW(TQ^YQg<7sc4G80xGX{=m+ NgPuh-45^@r{{TxS_p1N^ literal 0 HcmV?d00001 diff --git a/SAF/SAF.Application.DocumentLayer/obj/Debug/SAF.Application.DocumentLayer.pdb b/SAF/SAF.Application.DocumentLayer/obj/Debug/SAF.Application.DocumentLayer.pdb new file mode 100644 index 0000000000000000000000000000000000000000..3d2258ac06da65930ebe72b4cd47aff1fbee4830 GIT binary patch literal 17920 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 literal 0 HcmV?d00001 diff --git a/SAF/SAF.Application.DocumentLayer/obj/Debug/SAF.Application.DocumentLayer.projdata b/SAF/SAF.Application.DocumentLayer/obj/Debug/SAF.Application.DocumentLayer.projdata new file mode 100644 index 0000000000000000000000000000000000000000..675fa86417c12c7f51b9cbbdafa5f0d058ec6613 GIT binary patch literal 12040 zcmeI2PiS049LIm#+PK8Jh8ipWA*?A#Z8qCdN|90v{X?k|N~t0qim**nvo+Z)yJ@vO zNRc9;h)2;-JW5X?W>hXy1h2&b)bV z=J)^4o0l)28^~`m+GA$FyMft1w9^^`+wF`UwHd3~tWCJzCNpMRET>iUe$f`&99^@K zo8J=keNq3o>xb-hJH~$FcG0Gz9mlLAADZH4yyaewN=&m5U_pO!FOaCLMX&3{~+m_I0cAfgCF#nX<5ysb9G&krim`m64HTLMXa?gg`F=;g_$fd$|tvm%}I zQSaGiLxg|@=34JD<=VdJUbsHPKzpnGnz$#wH^Rd&Sb;1+@#nhcSWv)26?e`>@nJjm zbP6h}%#HI~$Fru~@=+VvrbPpZcx6PUQT7=khMeQCx)?pQ@|cSz71j;f3C2yE`wiUei{_5gYpgZ~=(&%hvF0Y>pa|6y_8}OGP|_X+i!Ms|I9PQ2 z6?x9D8mF(gxhJiksI?n96+fq$ZQx^v%+E_24Pe?~Qa@p@;b8%59Djyc6J}SYMcCqf z1E$>({fFRe$abKMS@>z#PJ0KeQ+ARo>FgEm4-q}$8WhBP z#CFzM>;351OGVC$_Z4L2m#|JxNwAbOeG0F1*+2#r=#f_2C0k{#*+IIkHdu5~K^~=b z&6FIszrzzdQ?j|NH$BU5#ezq!5h2~r&91CCjca+RY*yal^&mY5X#{R!4JEa_Hv99t z$mW8-B=;3YdBE8g-2`eT9Idk8bSsgs&Jv#*JkbQl(!DF_-RnQ*%&#w^j2#2lpKDNw9Z?o#B=0V)ha6yMLdj~M?c{ky>DK$yGB!(Rh`05_;w z6xnamYy2&+3p40r$9eiO;3lx@CW3%ry15-@r&KmWTt6}lUe>90?z56}!fq?jQd`_! zsVT|#LoMg|miuqtdc1vrL5_FeRY6{7+V56IJj^2X9kgRfCJayH~7hT0u*}eQn zJ`Vwtx}Q2unjMITAu3?7pfwdG;4CoNZJ&G&%fkmEcry`#BP4d~=9mD}zAz(s6p zijk@^Tl2SS%qCj!@3B6Xe&CC3;>KQZ=SR%mR$y}eA7|N4{vT)I?x{bIy)>XF#QTsB zmh)5PCcVvuI<>tDQ`C;_F0LlJx2gw{$H#KyasAxuO6&6V*nZ%5%z^HCC>sZbb&Qs0?W-;hk(&S_OyYwj4JvDyhh zb00-xI{O6BNx)tDc}>vn1A6QKI~s3d(G5Uz-$dhE^rt|qxjMbZS42ox?J7^b1!#f% zU$4Jv>UDPh*>Jh`-R2*1_ZjcGGxpWbSMKB*+`E5mkDJ$X;#@}$Iy%S$t7%tRyujgz z>JQ;peXH}5EFW#Oe3aGW(^zJR2l07CZ|m{on@)Bf-TKbE);Jx1N79$D`1_RCVs;+w z|D&|N@jUeZ UkHWdqpV+?s|3dcvsGZ0C3uh{q`Tzg` literal 0 HcmV?d00001 diff --git a/SAF/SAF.Application.DocumentLayer/obj/Debug/SAF.Application.DocumentLayer.projdata1 b/SAF/SAF.Application.DocumentLayer/obj/Debug/SAF.Application.DocumentLayer.projdata1 new file mode 100644 index 0000000000000000000000000000000000000000..f224553c3592cfbdf95d4c6a4ba7b0dd20d6d0ed GIT binary patch literal 5128 zcmeI0L1YbZ&wcsy@#4rK<9fjC3#XX<#WgJ*Ic}HioL#Y1>sa0Ww&^h&vYbZIhJ%LeaCDC$ zt}%PrW*9ebS8XL4S+$z2p|^OxjMZr@y<%tW{7zfuuF2oBH5gfA&W4-2yoaqzdps*+ zrOj-WXrBGpHyh2^i`g@~=6#8E*YMF>mfY#J`?%Ar8U3D*?OLDN4sx1;NKmQPZKZ$Grkd32e{z0=RXur*)0~X)9{hQP? z*|cG^yC6cy5dX}gYcWSaRo&i!33_u%-bxb%-s?9rOZGJU&;he8JCTv&aTY&|)e)P_ z<(&OOu3`(0+s@cStgu2Jh~-wu{uY@K_9{0z7VxCWZ^xFn4|aAFL>6Lp3>QaY_2| zHD+D5i}+`O+2y&Sb@zE+ewQ=5)0Z#Lv8y`!Q4I=c<(n(;&SmZu!N4(3i*`^y%hm$p ze6$)^kdK9m*xE(r5e5T1(c(#y`xf_WQTzvu$2>N~mJNF|@{Qt=?7iyZ=mBtY#Mo!%uuYmv4ZB7*^v(^!GkfGDm_?qpMVNn6!g(ldMSgzugqnmU!JM&*!lq|?}G zBu{1gi1rQSlSJP=UcQa|irk|3<*9~Sw9>yqP6C5G7B^|D$QCm2CHo8-M^yhllmQl6 z;N+@vx42a2=Ht{UAzl9QdAv-&%fMqAR7{=MRj((pGsf9^fj==^c&e_!(=(0-YK$AT z3+QdIC~nc2uI}w>0$26rIqhEOI_bKeN7Q#d($!au`qm>|eLXJxcoUPdto^?#^GK3q zdVN#GEOe(Y77|((onOU|-HhK~ZA@1oMI}ab%%&cPS?2`dHpb_F!edpyH=&>3`tsY} zOdC*98q|TT9PK{i_&TmHK4rN$W7XkvZ6_YxtPuM)o&DtjYDEMshg#18F95ec5asb4 zo)|@%$iH^M8NZMN`T`REPoanTFShHQ|2q3B{fn?d@@rj2N`)~pdhpzr%_VGReMwfj z&U{&%RASww3{Fu^E!gDYoLg_f&5&lfn9XkXg-B(xkfIvl|4R{LCFwzB?4m@@bPG}6my!N8 z?JU%yz9y~o>!O;zt{c3i)o6h7-yb1F1NwIU{Nv$uTi?#zMSpI)`q_`yw{!Y#F5W)z Q$j|R@(;J>`)b8i{8-{|&jsO4v literal 0 HcmV?d00001 diff --git a/SAF/SAF.Application.DocumentLayer/obj/Debug/SAF.Application.DocumentLayer.projdata2 b/SAF/SAF.Application.DocumentLayer/obj/Debug/SAF.Application.DocumentLayer.projdata2 new file mode 100644 index 0000000000000000000000000000000000000000..19febb03116c08028c82b11a16b0bfff3f1c957f GIT binary patch literal 5128 zcmeI0&ud&&6vxjPGYPSdA=ZKt!ZU(sGf70GNQi~Dp;QQ^pbODbc==_fCevXit){D3 zM6&2YHxi48xR9(|xGLg82#AP_E?l@4{{sI3{e16zH}B2MGc$>aZoJ{lJ@3Bv&N=t| z_@4Xn>63%~4;kZOvo9TE_9tUXJao#g+6B8|bz8GV_uFE{tk+6?umV5UESy21X5aP zn@;o`M!wm}g1wkMyGQSN?2hr#JC@z)tz+D2k;bs+p*{AQT|Yuw&f(b>(Ok7T_Pvge z>b69*g8p9oej3^&K{ijAjl$p8^&@6aF@Il%Cs~v~+fYCJi_BXj(&l463%PV-^YOs_ zKOc_=HV`XPH013km{rMB(2vm5W)YLU3HeGlD+2-fdwO4EIJw8<#tcm0zsuc|OzSgy zKt?Dtgg;l{Wy}CswP^2w1f4OZY}K&}&vjdwReJ_}SR-ef_FO@Yr&atsQu}SZRC4kw zrDu7g3Q6eEl$H<|F$HxfVt7qPt z=k3_7d3}?G8mG}D3t}vhCe4fX3Y8apnC@s4E5qvkwoKb(MsC>gs%{>kwcy)^FjSASqr=uqE$nJ ze5|ZUrCmmkaxlUZP3|p1si6R70_7->l6QIG^2Oy;T+3qTfi*~IFRnDqf zd>j;);Ek}GG(!0(9}W+^6y;o~m%LnQR0YgsViT-cbhavki?c+vx(4nwd7_1my|QEC z?&F{C%*Q|I@R?b~0-P9^G5C1@hynd}TyrnB8; zz6O1gS^JfTzk+^)KBM`S>4w|P;=h4TlLloZ-eaDHwxI(LWUH5sLh64F3Bb?_Cs&=j zg{3+-pQ2AG)8(H~$1AM63LMf)gSqp%`t>++MmSq9@F#@xr|KA-o^d!3^PZj>cD-Hx z(H?br6R+_Sq_v9)ueI4^P5QYq43uSinM<#WJ*mr1ujAl304o;V3Lpnq)$H>d%90V)4O zAyypPb*_J%eO3O0phEU*T}4!_j8NtK)jrP*7kw}0Psn?br%Ifw$X2Huu<@Rfv!XJb z$E_5fwz|qO)uv)E)DQo6NTcu9JSM6Jmt4O16Lvl`y05*zL(Y3gU~zj?j?U)pP`!IR z-0Sl+bCg%=8QIflOnh2I!2h?#pA6o0HN1QzG2ye&^&pjEwjZfZv^E2Y*SG{}Z8_nY zuvRtQV_!3GKpNjd>SaGA{4dOPUewwKv-l68QGh~g=b6P{5^x;T*g&rAmkQN?I6?pk srf=sjKJL3?cXmn-;9uC8{ru. For example, if your KeyFile is +// located in the project directory, you would specify the AssemblyKeyFile +// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] +// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework +// documentation for more information on this. +// +[assembly: AssemblyDelaySign(false)] +[assembly: AssemblyKeyFile("")] +[assembly: AssemblyKeyName("")] diff --git a/SAF/SAF.Application.Workflow/Class1.cs b/SAF/SAF.Application.Workflow/Class1.cs new file mode 100644 index 0000000..5bda2cb --- /dev/null +++ b/SAF/SAF.Application.Workflow/Class1.cs @@ -0,0 +1,17 @@ +using System; + +namespace SAF.Application.Workflow +{ + /// + /// Summary description for Class1. + /// + public class Class1 + { + public Class1() + { + // + // TODO: Add constructor logic here + // + } + } +} diff --git a/SAF/SAF.Application.Workflow/SAF.Application.Workflow.csproj b/SAF/SAF.Application.Workflow/SAF.Application.Workflow.csproj new file mode 100644 index 0000000..4ee12b7 --- /dev/null +++ b/SAF/SAF.Application.Workflow/SAF.Application.Workflow.csproj @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SAF/SAF.Application.Workflow/SAF.Application.Workflow.csproj.user b/SAF/SAF.Application.Workflow/SAF.Application.Workflow.csproj.user new file mode 100644 index 0000000..c8340ea --- /dev/null +++ b/SAF/SAF.Application.Workflow/SAF.Application.Workflow.csproj.user @@ -0,0 +1,48 @@ + + + + + + + + + + + + diff --git a/SAF/SAF.Application.Workflow/Workflow.cs b/SAF/SAF.Application.Workflow/Workflow.cs new file mode 100644 index 0000000..a075414 --- /dev/null +++ b/SAF/SAF.Application.Workflow/Workflow.cs @@ -0,0 +1,26 @@ +using System; +using SAF.Application.DocumentLayer; + +namespace SAF.Application.Workflow +{ + /// + /// interface that represents the members of + /// Component type class + /// + public interface IComponent + { + IDocument Request{get;set;} + IDocument Response{get;set;} + //provides the reference to the next component in the work flow chain. + IComponent NextComponent{get;set;} + //Accept method in the Visitor design pattern. + void Accept(IVisitor v); + } + + /// + /// A marker interface that represents the Visitor class + /// + public interface IVisitor + { + } +} diff --git a/SAF/SAF.Application.Workflow/bin/Debug/SAF.Application.DocumentLayer.dll b/SAF/SAF.Application.Workflow/bin/Debug/SAF.Application.DocumentLayer.dll new file mode 100644 index 0000000000000000000000000000000000000000..eaa161d8d7904104782dd5ea5e1edb6ed6fee1a8 GIT binary patch literal 5632 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 literal 0 HcmV?d00001 diff --git a/SAF/SAF.Application.Workflow/bin/Debug/SAF.Application.DocumentLayer.pdb b/SAF/SAF.Application.Workflow/bin/Debug/SAF.Application.DocumentLayer.pdb new file mode 100644 index 0000000000000000000000000000000000000000..3d2258ac06da65930ebe72b4cd47aff1fbee4830 GIT binary patch literal 17920 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 literal 0 HcmV?d00001 diff --git a/SAF/SAF.Application.Workflow/bin/Debug/SAF.Application.Workflow.dll b/SAF/SAF.Application.Workflow/bin/Debug/SAF.Application.Workflow.dll new file mode 100644 index 0000000000000000000000000000000000000000..bfdd607b676909671b62f5edf7229db785bc96df GIT binary patch literal 4096 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 r<^MRZV9oLWc7FeF!+aQga9)%<N@24pT>J literal 0 HcmV?d00001 diff --git a/SAF/SAF.Application.Workflow/obj/Debug/SAF.Application.Workflow.dll b/SAF/SAF.Application.Workflow/obj/Debug/SAF.Application.Workflow.dll new file mode 100644 index 0000000000000000000000000000000000000000..bfdd607b676909671b62f5edf7229db785bc96df GIT binary patch literal 4096 zcmeHKU2GIp6h5=vEv3-PPYerTaBkw_QCyR?sV6Nf{j-?cK5K@x4SNS_^IbXe=8K(KYJqTA{TP zwP6Gu(-&I+I$9QuXtnUEC~h9$_=VCtDHwXQ|&gnvKkeiXKRvp_iL)&wWgPuP(>v+efz2b}0 zc~z{HZ)svwOGPACczTZ(N6vLP)@$?_eUJ6*0MCV+0Zt;0&94w$ME^STh0wR%a=;dk zBX2w{w0YmNLwWT3A&;}X$MN7^2zAl+-FsGB&eCOfn8#yTG7 zZDt3CTzc?Qvyj#G#=n$Oa^;G>vXItSf?bOBEr=f-rU<1${#n^NW* zS|@eT=maJ-<9up0ZPR*aypX9S-YGzD$JqrjbHpwe03TEY7T z`vjj991t89EC{|JXbH~IAadf2zoU)7?*)IR2V}HG@^1m(LK*OBUUKO}BddjgsTg(12H|daiQATiVgk zlpWZi=P$CzdseN2sUv1x`81S>R94~P33arlf{=m+J{k|OUZ7${EU;!22iHP0Jg<2q zXIZKmQsQ_*#dDjjDuLzsj$NceJqT6Bm{7BhviQBHTo9;A(Wwus`lwk^xe#w?u@)*a zEY7Y$J!m@(>O_%Oj#)3*Wp`m_qMA~EfF%|y25L@N^OtZo>6;~0G5xtE=6Kb*Z>Nv+R07Xj=iv z=~*_5jb_J8r>5u_9>LW4M}A-T{)y4k8w$HueS7U4O6#;HlhHM8O@`SvVIy3b-U=N< zTid56rl;2TUwb1B%T9(=Mo(#}R7Q@ERvbUkIr3I~$M7S6fq9*|#gyDd&6>jlo}YJ| z1E%egJT*$mE5TMb9)z#e&GvVt+pmBo_uqX)^UXe@TeWA2akk@chv%~Rj!TYz$RjQN zz$q%=3t)=&(ge668lzFjL%>1sOrNKJ{UbU-HQI9WI&R#ke@e8`U7Cvdq~p6;gI5!` z=OEeSkb+N_X2}ziZn=3Tp*1lYKyOkAI}cJsAE!TrQw=eNu(B~;Uc%EUvFV}Y*H1<8 z{2j>m#Q^+O@KczL^AqDbT6cr4D(lygttoa;i_JE%Ng~g~LqL|qQEiHo{blJMtd-bK z!PbZMLN2|y_j=HJX$SQQ*GK)}`sE%Xn#OIWNp(V*>mnAXA)*51;N1XL@pItWYN(ch zZ(|QD&Y`vrxZ|)afpa(&+A4XBz;9W+az(0CmrTlZ1i3WkyI>dXObPQUn8)7b^Gj+| zl6c2rAG|XhZ<0StTyetA-G1EB9*tuS582d^aoA9iDCWG>z1ilk)&Hm3?-w6AWEV)T fMPyP(mjBfc*ZPi;9{ta7`O!PJ!d=Jz;|lxsRC~@mblb5(ORKWld*g%JxDriD6C9#{C>5LA{2bp=rR5vV$f57+) z+_-b$p2U>Is3dM#@CytJl#L4(ocm~-R$chXo!s8{&U=0LymRj>#ct|FUaaj<&DMjk zrYu|A%1=^NxS|S4v=)S3s)mP^eiUTN=S*cfNxe+fWTQ@$7uya|-_Ep3Jx317^5;={ zxzRie;2d47k1q2ex`jE+;y!L+3QJhT3<^YkW@oxUIibfE-e3Is;%#oc{{)?2C}0v* zR8YcQX1T{vnezn%aFHTGM)#qS=lUFTS5YKxBZ7y=TuZS^Y#k%qah-kx6O3cT%4qQ4 zn)@Q+HH7@ca`H3z`r{Wed1WTRG@;XCVv)V3cXKjIRrWp|lGBHlY*VMmX_<=8_b`$Y zJ==UEVtV~S2(yEZpwS@Jm!r@xXXt6F1 z>Uj7Ir&#>2%e_+bn5WNEy#~i=4`ajfL396r8s2WT;mr=?|IuL)`^z;ql$$#pHlKGc zuZwQ_(ghQ{-+|~_?6CTC9TVnT`Ar?auSUBATaN%w$*X%TT#b;UTkm$BG}}wK_7C{a zP`k{$O^3bF;QNpH&J$|r5*L$ngY;eX=G#{PcCM}BRbqeJg+D6M&dMx(l9_im@fdSV B@r(cf literal 0 HcmV?d00001 diff --git a/SAF/SAF.Application.Workflow/obj/Debug/SAF.Application.Workflow.pdb b/SAF/SAF.Application.Workflow/obj/Debug/SAF.Application.Workflow.pdb new file mode 100644 index 0000000000000000000000000000000000000000..08856e8c8e1f8ab278d48cde875019930ab1bd0f GIT binary patch literal 11776 zcmeHN-%C?b96z%k&Y9J+jMmF43v+h2^;go4l>>Y*1O zdMOf;=sD;y5QL<+Ao4%xA(9~L&6ixC&%HZ(2^W)w`{DWG=bU?w=iYP9_j}Iw*WFM& zl1^n(v8*%T4!B&-pgbK`5A{p-nV?v>_Ns1fvG>Ze<*%RZ zGu_60C3#I0Q5T4Zt2?AJ7Es2e@tNkJJN- zw$1^{&C%fgC7-;V_wnwbVG8I62GQ05h0uX(qLi{O^sYjCz>4vA18NU|2_>M-^gm@{ z*8jZcP=D7Y7+$@i%p9Ohxd;51$Dj~CtN7MRJxk&_lh7OT#WB79vB2uwJ8fNetgWoA zP<`ksL@(F_lpc>IQj?)TBAm&1wMYg{1^em`sA9V~aQutMGKIlB&mTBk58qoHTO62T zrmm1RALljoH{bo+I+yInHSLBA;Qyk4qRQX^{ii}i-C*_&WIuKOB`2!CrayHHhw=?- z#(|VMS7rA9=xa$|oPIc;pUBv3MeyaYwpBnQ)BI!V?pTcqE*Sr;^%a zDsKQH>jr?2)3v8M=mJP~fNeH_Za#_qP6E=s=k&@(JS&VlBriBAGe2Z}g666rX@_re z#>LA|1iC^&e;=XwO`;x_qTaCe6d^S~EdYrkCkGW(0tcRIUd!zLv2H&m^Ks<+bo1-% z)hCU!mzPhpdWX^G9*if)2a>Ura3{leqZ#A4--(9DqUoJ>{;7DV1DJQH6&)~ywOj(E z{+GU)S^vwETQ{?pVNEM-5n3dh zN{be8mcCfN&C}^2dD)_<);PfZT!?roHjDoX^;hlH#{ufGML^nr%ABjX4om^e-B343 ze}^#+pJ9Mj2LBJEDk>!hC~xL}nfHTieKzEO8Pg^JCqUm%|2~YG)B>3EKWsC0%tr1& z-t&LV7Q8?i0=SnL{e7DLiPE4#0i9rOb8fvMp=hUWRu>( zvYy9aKdb&R!#uxS&Z5u6cw6zY>_76>WTZi-^}&s6^Ykk6TE>5re-*@kC6|9Y)?Iws zqxhX7^D6o6xFLJFOLDnWm9S6FU}k3jzmmTH(#|vk^t0t}0A%iwKDhb~0GRNf#NSz% r<^MRZV9oLWc7FeF!+aQga9)%<N@24pT>J literal 0 HcmV?d00001 diff --git a/SAF/SAF.Application.Workflow/obj/Debug/SAF.Application.Workflow.projdata b/SAF/SAF.Application.Workflow/obj/Debug/SAF.Application.Workflow.projdata new file mode 100644 index 0000000000000000000000000000000000000000..7958590bbe671eba472eb290ea398df976f649b7 GIT binary patch literal 2696 zcmeH|F;7%M6otYF;gLnfcG~&5&t=*|#;Rsol0l zZ;9Umk+XV8^n9#W)4iDYM01Qa^_&^qo*FY+WUd!EkDf~!p~9Qg)g(to7FXKPW8LBF znxzMST<>J$&9taT>|vc18|xDl}^An^S(m7pPy|#zIVFT26Jwf{#y=cN9H_)8v@PixKJ(jaS z&*Rvgk+H$Ip>`73~$tIyc0|DGF12VFHzC{ zx9)P((d~t&8cUMVcZ?b*Z?6KfW_qzzjqmZW5iGO|&zkt2@ NXZ-&KJlM*S$m?ec8nnb9iVn=XG`i!N?U z8|>wENJOnAPJ~b9L^9o=w8b!2`GY9R1m2oyP}0Nej)|6zAoA3xqw4#A-9gdc)3tv`r3*XpYX>(*djR zD(s@aQgl}aTdvy0Z5q>Pmj!jY2*2Fr)|XOLv&bXjZI;zefS)FV%ei4WJD6D+o-A1n zrP!zUp)a#<7@zMZVpwCIH+sb`?e1_4fvjO%!E_wGVl&-n1~%JiSvOnB**rZU?Hklf TMG{2e7;N|>-ivZCf4jT^7S)3W literal 0 HcmV?d00001 diff --git a/SAF/SAF.Authentication/ADAuthenticationProvider.cs b/SAF/SAF.Authentication/ADAuthenticationProvider.cs new file mode 100644 index 0000000..8e7e22a --- /dev/null +++ b/SAF/SAF.Authentication/ADAuthenticationProvider.cs @@ -0,0 +1,111 @@ +using System; +using System.Collections; +using System.Collections.Specialized; +using System.DirectoryServices; +using System.Xml; +using SAF.Configuration; +using System.Configuration; +using SAF.Utility; +using System.Security.Principal; + +namespace SAF.Authentication +{ + /// + /// ADIdentity class provide a sample implementation for + /// Identity object that replies on active directory for its authentication + /// + + public class ADIdentity : SAFIdentity + { + /// + /// ADIdentity public constructor provides user ability to authenticate the user + /// against the underlying security theme. + /// + /// user id + /// password + /// active directory domain or local machine name + /// the name of the application + public ADIdentity(string userid, string password, string domain, string applicationName) + { + //check if the userid and password are valid. + SecurityUtility su = new SecurityUtility(); + su.ValidateUser(userid,password,domain); + //set the application name and userid of the identity object + this.applicationName = applicationName; + this.name = userid; + } + /// + /// provide a back door to instantiate the identity object without user id and password + /// it is used by the ADPrincipal to create ADIdentity object when it doesn't have + /// user login info. The modifier "internal" hide this method when accessed from + /// another assembly, such as when developer is creating the ADIdentity object from his + /// application code. + /// + /// user id + /// application name +// internal ADIdentity(string userid,string applicationName) +// { +// this.ApplicationName = applicationName; +// this.Name = userid; +// } + } + + /// + /// ADPrincipal is an IPrincipal object that uses Active directory as it + /// membership information store. + /// + public class ADPrincipal : IPrincipal + { + private IIdentity identity; + private string searchQuery; + /// + /// IPrincipal interface method + /// + public IIdentity Identity + { + get {return identity;} + } + + /// + /// this method is called by SAF.Authentication is create an principal object + /// for a given user and application name + /// + /// user id + /// application name + public ADPrincipal(SAFIdentity safIdentity) + { + identity = safIdentity; + ConfigurationManager cm = (ConfigurationManager)ConfigurationSettings.GetConfig("Framework"); + XmlNode providerData =cm.AuthenticationConfig.GetProviderConfigurationData(safIdentity.ApplicationName); + //retrieve ADSI query string used to search for the given user. + searchQuery = providerData.SelectSingleNode("ADDirectoryEntry").InnerText; + } + + /// + /// IPrincipal interface method, it checks the memberhsip information + /// by calling the AD through System.DirectoryService + /// + /// role name + /// true or false to indicate whether a given principle belongs to a given role + public bool IsInRole(string role) + { + StringCollection groupCollection = new StringCollection(); + DirectoryEntry obEntry = new DirectoryEntry(searchQuery); + //search on the user name. if user doesn't exist, an exception will be thrown + DirectoryEntry obUser = obEntry.Children.Find(identity.Name,"user"); + + //retrieve the group information for the given user + object groups = obUser.Invoke("Groups"); + //loop through each group object to retrieve the group name + foreach (object o in (IEnumerable)groups) + { + DirectoryEntry group= new DirectoryEntry(o); + groupCollection.Add(group.Name); + } + + //check if the role is part of the groups the user belongs to. + return groupCollection.Contains(role); + } + } + +} diff --git a/SAF/SAF.Authentication/AssemblyInfo.cs b/SAF/SAF.Authentication/AssemblyInfo.cs new file mode 100644 index 0000000..9f89a32 --- /dev/null +++ b/SAF/SAF.Authentication/AssemblyInfo.cs @@ -0,0 +1,58 @@ +using System.Reflection; +using System.Runtime.CompilerServices; + +// +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +// +[assembly: AssemblyTitle("")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("")] +[assembly: AssemblyCopyright("")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: + +[assembly: AssemblyVersion("1.0.*")] + +// +// In order to sign your assembly you must specify a key to use. Refer to the +// Microsoft .NET Framework documentation for more information on assembly signing. +// +// Use the attributes below to control which key is used for signing. +// +// Notes: +// (*) If no key is specified, the assembly is not signed. +// (*) KeyName refers to a key that has been installed in the Crypto Service +// Provider (CSP) on your machine. KeyFile refers to a file which contains +// a key. +// (*) If the KeyFile and the KeyName values are both specified, the +// following processing occurs: +// (1) If the KeyName can be found in the CSP, that key is used. +// (2) If the KeyName does not exist and the KeyFile does exist, the key +// in the KeyFile is installed into the CSP and used. +// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. +// When specifying the KeyFile, the location of the KeyFile should be +// relative to the project output directory which is +// %Project Directory%\obj\. For example, if your KeyFile is +// located in the project directory, you would specify the AssemblyKeyFile +// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] +// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework +// documentation for more information on this. +// +[assembly: AssemblyDelaySign(false)] +[assembly: AssemblyKeyFile("")] +[assembly: AssemblyKeyName("")] diff --git a/SAF/SAF.Authentication/Class1.cs b/SAF/SAF.Authentication/Class1.cs new file mode 100644 index 0000000..d368a0a --- /dev/null +++ b/SAF/SAF.Authentication/Class1.cs @@ -0,0 +1,17 @@ +using System; + +namespace SAF.Authentication +{ + /// + /// Summary description for Class1. + /// + public class Class1 + { + public Class1() + { + // + // TODO: Add constructor logic here + // + } + } +} diff --git a/SAF/SAF.Authentication/SAF.Authentication.csproj b/SAF/SAF.Authentication/SAF.Authentication.csproj new file mode 100644 index 0000000..c32a963 --- /dev/null +++ b/SAF/SAF.Authentication/SAF.Authentication.csproj @@ -0,0 +1,118 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SAF/SAF.Authentication/SAF.Authentication.csproj.user b/SAF/SAF.Authentication/SAF.Authentication.csproj.user new file mode 100644 index 0000000..c8340ea --- /dev/null +++ b/SAF/SAF.Authentication/SAF.Authentication.csproj.user @@ -0,0 +1,48 @@ + + + + + + + + + + + + diff --git a/SAF/SAF.Authentication/SAFIdentity.cs b/SAF/SAF.Authentication/SAFIdentity.cs new file mode 100644 index 0000000..2908ed4 --- /dev/null +++ b/SAF/SAF.Authentication/SAFIdentity.cs @@ -0,0 +1,66 @@ +using System; +using System.Security.Principal; + +namespace SAF.Authentication +{ + /// + /// SAFIdentity encapsulate the identity and the application name information + /// + + public class SAFIdentity : IIdentity + { + protected string applicationName; + private bool isAuthenticated; + protected string name; + + + /// + /// this constructor is used exclusively by SAFPrincipal. + /// If provide a way for SAFPrincipal a way to create SAFIdentity + /// object with user credential information. the constructor + /// is marked internal to avoid develop to call directly. + /// + internal SAFIdentity(string _name, string _applicationName) + { + name = _name; + applicationName = _applicationName; + } + + protected SAFIdentity(){} + + /// + /// ApplicationName provide the name of the application + /// which will be used later to identity what type of principal object used + /// to determine the role information + /// + public string ApplicationName + { + get {return applicationName;} + } + /// + /// IIdentity interface method + /// + public bool IsAuthenticated + { + get {return isAuthenticated;} + set {isAuthenticated = value;} + + } + + /// + /// IIdentity interface method + /// + public string Name + { + get {return name;} + } + + /// + /// IIdentity interface method + /// + public virtual string AuthenticationType + { + get{return "Basic authentication";} + } + } +} diff --git a/SAF/SAF.Authentication/SAFPrincipal.cs b/SAF/SAF.Authentication/SAFPrincipal.cs new file mode 100644 index 0000000..e7f834f --- /dev/null +++ b/SAF/SAF.Authentication/SAFPrincipal.cs @@ -0,0 +1,77 @@ +using System; +using System.Security.Principal; +using System.Configuration; +using SAF.Configuration; + +namespace SAF.Authentication +{ + /// + /// SAFPrincipal encapsulate identity and membership information + /// for a caller on specific application + /// + public class SAFPrincipal : IPrincipal + { + private IIdentity identity; + //internal application specific principal object + private IPrincipal currentApplicationPrincipal; + private string safUser; + + /// + /// constructor takes the SAFIdentity as its parameter. + /// + /// SAFIdentity object which contain the identity and appplication name information + public SAFPrincipal(SAFIdentity sid) + { + //retrieve the authentication configuraiton from the configuraiton file + ConfigurationManager cm = (ConfigurationManager)ConfigurationSettings.GetConfig("Framework"); + AuthenticationConfiguration ac = cm.AuthenticationConfig; + + //set identity object and the SAFUser property + identity = sid; + safUser = ac.GetSAFUserName(sid.Name,sid.ApplicationName); + //set the application inforamtion of the SAFPrincipal + SetApplication(sid.ApplicationName); + + } + + /// + /// IPrincipal interface method that determines + /// whether the current pricipal is member of a given role + /// + /// the role name + /// true or false on whether the principal is member of the role + public bool IsInRole(string role) + { + return currentApplicationPrincipal.IsInRole(role); + } + public IIdentity Identity + { + get {return identity;} + } + public string SAFUser + { + get {return safUser;} + } + + /// + /// SetApplication will change the application context of principal object + /// so that principal object represents the user membership information of + /// a given application + /// + /// name of the application for which SAFPrincipal will switch the its membership information. + public void SetApplication(string application) + { + ConfigurationManager cm = (ConfigurationManager)ConfigurationSettings.GetConfig("Framework"); + AuthenticationConfiguration ac = cm.AuthenticationConfig; + //retrieve the type informatioin for the principal object of a given applicaiton + string typeName = ac.GetPrincipalTypeForApplication(application); + string appUserName = cm.AuthenticationConfig.GetIdentityForApplicaiton(safUser,application); + SAFIdentity safIdentity = new SAFIdentity(appUserName,application); + Type type = Type.GetType(typeName); + object[] parameters = new object[1]{safIdentity}; + //set the new object to the internal principal object. + currentApplicationPrincipal = (IPrincipal)Activator.CreateInstance(type,parameters); + identity = (IIdentity)safIdentity; + } + } +} diff --git a/SAF/SAF.Authentication/bin/Debug/SAF.Authentication.dll b/SAF/SAF.Authentication/bin/Debug/SAF.Authentication.dll new file mode 100644 index 0000000000000000000000000000000000000000..cd99323cbc1287393cda1ef28886e9a7a16ce8c9 GIT binary patch literal 6656 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 literal 0 HcmV?d00001 diff --git a/SAF/SAF.Authentication/bin/Debug/SAF.Authentication.pdb b/SAF/SAF.Authentication/bin/Debug/SAF.Authentication.pdb new file mode 100644 index 0000000000000000000000000000000000000000..11e1607646069c69844e5d1f671b01545b4e2005 GIT binary patch literal 24064 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 literal 0 HcmV?d00001 diff --git a/SAF/SAF.Authentication/bin/Debug/SAF.Configuration.dll b/SAF/SAF.Authentication/bin/Debug/SAF.Configuration.dll new file mode 100644 index 0000000000000000000000000000000000000000..0bb5aa8f83ff6d08796c8305e44ef118a5f1a409 GIT binary patch literal 11776 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 literal 0 HcmV?d00001 diff --git a/SAF/SAF.Authentication/bin/Debug/SAF.Utility.dll b/SAF/SAF.Authentication/bin/Debug/SAF.Utility.dll new file mode 100644 index 0000000000000000000000000000000000000000..df155c064b52ee4bddbb483324f8551404b03754 GIT binary patch literal 5120 zcmeHLU2Ggz6+SbwyI$K_*It`;LtAxB0&>%KvE%$GrNG)=JK4tZZoF$Zv{CKZ-N}0D z*`4jotes6EGKf<803s4ZK!ud@1QHb$Dk7@jjTexD;Gum&s7QH0LZSkRmmm?ob7nSP z*H&5~Ar-0Dx!;_7&(A&Q+;eB{=FHRIB8`Y5=(leZUB{DKM)2;i1@^#0Zw}BKy*Ea$ zEAux-OKX;=H(jUZ8g;#5G#ZYtmrdPmHFT??XY)n9?o`cmBGGp+G+me_npZUX?oaZW zaEjicfzf^?MzjwzcyN365I{%Ipc4%Vtp)iUrt?V7d&K~5R1qO+|edRNO3O?M52%y3@O*f&=BHR8;|afK)Ui#9wS zqi3K8{h`Z9eP7>5zZQ+8?oHAd=3@Kej}2)qsOH!ZxE@^WyCi~%k>N-zmDI+t3$aI& zz1}cb!;ztgGXkRjk$(37UiFyji(t^Pfan4l@-j_I>oXW-@8t(xGLc>E7avkGm|RsAa6 z2dU2J8ht_{4S287r!Xq$%>5emD2JhaJsb@vCn!O`4@Xz&vltDI29gg$a*(pYD0K{y zI1X6lZ^*Su{{m_hgVzxn21e;2O+`GP1`U6KDxCvrv@SC(nYk=8FMXhyQ97o~(!+ui zz$fX1&{Kjr!Lx#25HtiW!RH0rf?o#a>1Cm>08h~O=sVgHy-KfY=jg{WzaRK4?Wf;r z6};Hr)=p5bNX8Le0+kd;CB<>t6Ucc#y#yQsv_?zN zcd12f`U?G7&1!_N&sE+(B}&(jw>hPUUc)%D6;#Bn=*<_AdbBBY$k9!C$uj+Mo(|d* zXPj!wHa|yQ$2MKHZK`_}$F;3872BR~)+t|p&aC)UG%GC^M>{;>-D)(SKbc>cJiH>$ zmE1yUc5!N^lv|#?!znE0mvh5jQvy=l6h(=dF?Y0$h=a~eyY>C#El zpEo>z)^#11vaP0VRSe%OIqPO4bS&NRC|$stp<*=+o1U^7RcF)NVRXi6$hXVtUa2!# z+_d}(atyVQ?3k#U4IkmsvSC|QEG=H8D?Z!_5|dsuFWATo`#t4(X1#2;Pn+!pqi#<5 zcv+QOzS+%~v+O+>S<^P!MXT1>t+R~8!1!*)Ow0CL?jFWUu2D7XhP%Fpj?-+rR&CAS z%__L4gvuU_8K>Sf8tvU0$le93)^cUjcC)jlS8=T-XJ$9EWcl5B2y>aWj9SC-e5>M- zd^c)Fc@MG07B;1BrgPX**J&0_cf+cfP_b?7x#M;PVN^GarZst3YT9mkmv{pk*c{?P z)~Op-L&$>Rd7F+~rRt`XU#Z~WH3L5oPr-NTX#_>VhmMeARD7q_I<i#KVFqCljm~#*TI6B&JreZp#m9br^H0B-y7I!%-wXHsph@vxTsptJ z|HwNptFd?luX4QS(E2E*4h#&$a-2No&;GXwU`~S!Q-+ORZbf5Sekr9sC`kGUoul16AnGz+N4HCbWI5LULpdcJZ3BejCvmBFAg%=#Pp_ z$MY;KcvKNTnmhbt*$mx-wK}rPkaZ!w9m@o6GvnwJbd)BAn#Av)!*raEL7Vjlq0iaz zMYjQ8>@JUrxYf)-e@RxhVcEycD2+FpjX$C>@pT@$HPPg#n~>nF)o`2gA)})QF>T8Q z*{?#c4n3FFB}0MiDe);E+TiT7Pn{Tf#98Iv<#+cj$aMjB9QfNp4*jmkg0-@eznwDg x&Eosz@RZn?LInJFucHcVWI#s+?%a*{vxAU6d`%Dkf8+5FpKBj^^uN!*e*g_N(0c#? literal 0 HcmV?d00001 diff --git a/SAF/SAF.Authentication/bin/Debug/SAF.Utility.pdb b/SAF/SAF.Authentication/bin/Debug/SAF.Utility.pdb new file mode 100644 index 0000000000000000000000000000000000000000..fc3cf88aa69421fd07c4f04894cf5b0651cf4752 GIT binary patch literal 13824 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 literal 0 HcmV?d00001 diff --git a/SAF/SAF.Authentication/obj/Debug/SAF.Authentication.dll.incr b/SAF/SAF.Authentication/obj/Debug/SAF.Authentication.dll.incr new file mode 100644 index 0000000000000000000000000000000000000000..e47edb9288103515c092798d11c6cdf8169fd76a GIT binary patch literal 1910 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 literal 0 HcmV?d00001 diff --git a/SAF/SAF.Authentication/obj/Debug/SAF.Authentication.projdata b/SAF/SAF.Authentication/obj/Debug/SAF.Authentication.projdata new file mode 100644 index 0000000000000000000000000000000000000000..f6d241e92b1679ac8fba504763ff1b81abb13f5e GIT binary patch literal 15240 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 literal 0 HcmV?d00001 diff --git a/SAF/SAF.Authentication/obj/Debug/SAF.Authentication.projdata1 b/SAF/SAF.Authentication/obj/Debug/SAF.Authentication.projdata1 new file mode 100644 index 0000000000000000000000000000000000000000..8d2e7966cfb4ed4dd942b7e8f40656992e6636ad GIT binary patch literal 7048 zcmeI0&ud&&6vxj@ei);MS~Rp(%2=gno2F2t6scmh6yu_38$~3WX_GXulT4XOS|cJs zM5+{5E_7465LYflT)L1Jil~2pOK~N|MG@&r(C_D-cl+MFyf>Mqtt(%+xp(f5bI(0L zzUSQg`PNNCRnymRb}=-}{?WIew#ukY*^Ab+MO(6&@V~7dvjMBHO0_QvIV5g>? z)%{XAUS&l*AG?kH^3>vP zqd|iCQL~Mm?T}>KmYf&tg!H*$6Vmal;L-hNnll^DQEGxV?5uuA8b9X7pt&lG7*oMIz@I5hNW^MFfiwDR$UCx#a8&&ZvOp${ zjnp*SEeUFL*CV22VB313lZK*wVa6**UJM2S1wDycv62qm9rrFC?1@o>h~F zt!T6yP2gcd-dB^9vKWZuYIaWlS&w(Ny3pyI&FSI1B`!eWnVT!~2*U17@%WbJa5i=X z$L7@Xv$3mF0+}7>hy+N$QKJ=P7qNa^Beg(*U5lm1t}b1d`e{){hERmtmTKR_Pg0jW zn;K;fT)1?bk{CPrS(y)4)0)S*IStr0o@jY*p`H)gUafFzFx%8&J6KJh?UCKrWSiZs zn0X_1q0)(twicbb@qF0yDi9jQ@+(u#}XxgQT zq@%8hX;{Tvn8l10$s*+ftL@AY;4f=YaVI!(`cQX0FNC#Fi>JW{8i9VXeL)4S6?tu^ zHf!>$?x=#+s`kFOp(V zuBoPdUFAIyqwkVx+Fz>d66VKwwCUTg`be^tHhp*FBmO+3vO~m)KW}I+;?HK;SEtrA zPnyi@63)kVk805Y>2X;$4TgY5#ooF$FC^EVD9o6lyeP_>WQ}!s?rW;SIFEhZGS{6Q zc;qo8&p9Yn9u0?VPo=W^cg^{@Cu}OlYrL~=pfnLNdTKF0L?UJpMX0$qv{c+LJh$)e z7wL)=^PZJv+d-E*6rsy@?!=ue`uVvy1wNaeA#WXUzbK2L2JzQsE-6oC5fBtg&k(bW zY@FFFOKGbt>aO5uhYs_7WG`s9UplOg4EL0`6j@+4t`_5z%Y#h8<7+22w*!tLO-D9# zm`bqITReJ^>%|)*yJH9FpZkWd_6Sy2|0#_V&(TW6{*Bp3T#bc98;yOb){3=*w=V_1 zC)Z;=*`7x^PK(?c8u1=@Et5x4JS>+$o=>>T^Ae>IV-%>CM**{Y6w3mD31{3tQk?PZ zWV`w~Wig@=8@i2Wt+6sP6wu4#%vjP^WlyVAR6b1Fs_YXL`Yt7HRrZC-pyEtb1K+EC zzv|C~*MpjQRrOaYKdbzrctK40Lp5!_8%f`gFrGHwh}x{3R6VZpUw^B*DbK2KYbO5e z=Q&0Em)+a9cObjpQn;za+lsW=uiJ|5D}VOn_q^8RZ316hmdE+st1K7K=bQMdXKdJg zUF*pk{cQuUC)=)ThFh-R2mEH2&Eg^jY_~2SciiO`l_JM-Kw9vCJRMv_|4AT|u^urW&fz19u>(k@Z6n8u8wIYkU>oD`K9SMcGKdx0^{Z z7uon&ap#do_k|Y>UKI|jborF~U6$YT3Wfi@00zkaZax3o5-gCM1qr??Tfstk*W;z4 zJMwr zO1i)Irt687@r8rTE#@DK(q5W@Wb;Dg7++KJ`A3QiompW1^(ytK?pi7H__)uVz@zoO zw0K5(hV}h%Bl+spp6p{|`RZ7(AYutVO1wBNuT3LMHrJff2$tX;=9&i|<9ihvbjyp@ z7$Z^4&4{f|n{0AfQHs~Gb3aRzJCD(`2m;! literal 0 HcmV?d00001 diff --git a/SAF/SAF.Authorization/AssemblyInfo.cs b/SAF/SAF.Authorization/AssemblyInfo.cs new file mode 100644 index 0000000..9f89a32 --- /dev/null +++ b/SAF/SAF.Authorization/AssemblyInfo.cs @@ -0,0 +1,58 @@ +using System.Reflection; +using System.Runtime.CompilerServices; + +// +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +// +[assembly: AssemblyTitle("")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("")] +[assembly: AssemblyCopyright("")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: + +[assembly: AssemblyVersion("1.0.*")] + +// +// In order to sign your assembly you must specify a key to use. Refer to the +// Microsoft .NET Framework documentation for more information on assembly signing. +// +// Use the attributes below to control which key is used for signing. +// +// Notes: +// (*) If no key is specified, the assembly is not signed. +// (*) KeyName refers to a key that has been installed in the Crypto Service +// Provider (CSP) on your machine. KeyFile refers to a file which contains +// a key. +// (*) If the KeyFile and the KeyName values are both specified, the +// following processing occurs: +// (1) If the KeyName can be found in the CSP, that key is used. +// (2) If the KeyName does not exist and the KeyFile does exist, the key +// in the KeyFile is installed into the CSP and used. +// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. +// When specifying the KeyFile, the location of the KeyFile should be +// relative to the project output directory which is +// %Project Directory%\obj\. For example, if your KeyFile is +// located in the project directory, you would specify the AssemblyKeyFile +// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] +// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework +// documentation for more information on this. +// +[assembly: AssemblyDelaySign(false)] +[assembly: AssemblyKeyFile("")] +[assembly: AssemblyKeyName("")] diff --git a/SAF/SAF.Authorization/Class1.cs b/SAF/SAF.Authorization/Class1.cs new file mode 100644 index 0000000..28676ff --- /dev/null +++ b/SAF/SAF.Authorization/Class1.cs @@ -0,0 +1,17 @@ +using System; + +namespace SAF.Authorization +{ + /// + /// Summary description for Class1. + /// + public class Class1 + { + public Class1() + { + // + // TODO: Add constructor logic here + // + } + } +} diff --git a/SAF/SAF.Authorization/DefaultAuthorizationProvider.cs b/SAF/SAF.Authorization/DefaultAuthorizationProvider.cs new file mode 100644 index 0000000..293748e --- /dev/null +++ b/SAF/SAF.Authorization/DefaultAuthorizationProvider.cs @@ -0,0 +1,136 @@ +using System; +using SAF.Library.Security; +using System.Security.Principal; +using System.Threading; + +namespace SAF.Authorization +{ + /// + /// A sampel authorization provider that shows how to create one to + /// be used with SAF.Authorization. + /// + public class GenericAuthorizationProvider : IAuthorizationProvider + { + //default constructor + public GenericAuthorizationProvider() + { + } + + /// + /// It is called by the SAFSecurityPermission. It performs the + /// membership check on caller's current principal (principal must be + /// GenericPrincipal) + /// + /// string array containing the roles allowed + /// string array containing the roles denied + public void Authorize(string[] allowedRoles, string[] deniedRoles) + { + //ensure the current principal is GenenricPrinciple + if (Thread.CurrentPrincipal.GetType() != typeof(GenericPrincipal)) + { + throw new SystemException("Current requestion doesn't have Generic principal"); + } + bool allowed = false; + //because deny permission override the allow permission, try checking the deny roles first. + if (deniedRoles != null) + { + foreach (string role in deniedRoles) + { + //if caller is member of denied role, reject the call by throwing exception + if (Thread.CurrentPrincipal.IsInRole(role)) + { + throw new System.Security.SecurityException("Access denied to account " + Thread.CurrentPrincipal.Identity.Name); + } + } + } + + //check if the caller is member of allowed roles. + if (allowedRoles !=null) + { + foreach (string role in allowedRoles) + { + if (Thread.CurrentPrincipal.IsInRole(role)) + { + allowed = true; + break; + } + } + } + + //if caller is member of neither denied roles nor allowed roles, then deny caller's access + if (allowed == false) + { + throw new System.Security.SecurityException("Access denied to account " + Thread.CurrentPrincipal.Identity.Name); + } + } + } + + /// + /// A sampel authorization provider that shows how to create one to + /// be used with SAF.Authorization. + /// + public class WindowsAuthorizationProvider : IAuthorizationProvider + { + public WindowsAuthorizationProvider() + { + + } + /// + /// It is called by the SAFSecurityPermission. It performs the + /// membership check on caller's current principal (principal must be + /// WindowsPrincipal) + /// + /// string array containing the roles allowed + /// string array containing the roles denied + public void Authorize(string[] allowedRoles, string[] deniedRoles) + { + bool allowed = false; + WindowsPrincipal wp = null; + //ensure the current thread is WindowsPrincipal + //if not, get a the windows principal for the current caller + if(Thread.CurrentPrincipal.GetType() != typeof(WindowsPrincipal)) + { + //create a new windows principle representing the caller + wp = new WindowsPrincipal(WindowsIdentity.GetCurrent()); + } + else + { + //otherwise, retrieve the existing windows principal from the current thread. + wp = (WindowsPrincipal)Thread.CurrentPrincipal; + } + + //check if the caller is member of denied roles first since + //denied role overrides the allowed roles + if (deniedRoles != null) + { + foreach (string role in deniedRoles) + { + //if the caller is member of denied role, reject the call by throwing exception + if (wp.IsInRole(role)) + { + throw new System.Security.SecurityException("Access denied to account " + Thread.CurrentPrincipal.Identity.Name); + } + } + } + + //check if caller is member of allowed roles + if (allowedRoles != null) + { + foreach (string role in allowedRoles) + { + if (wp.IsInRole(role)) + { + allowed = true; + break; + } + } + } + //if caller is member of neither allowed role nor denied role, reject the call. + if (allowed ==false) + { + throw new System.Security.SecurityException("Access denied to account " + Thread.CurrentPrincipal.Identity.Name); + } + } + } + +} diff --git a/SAF/SAF.Authorization/SAF.Authorization.csproj b/SAF/SAF.Authorization/SAF.Authorization.csproj new file mode 100644 index 0000000..452ceb6 --- /dev/null +++ b/SAF/SAF.Authorization/SAF.Authorization.csproj @@ -0,0 +1,113 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SAF/SAF.Authorization/SAF.Authorization.csproj.user b/SAF/SAF.Authorization/SAF.Authorization.csproj.user new file mode 100644 index 0000000..c8340ea --- /dev/null +++ b/SAF/SAF.Authorization/SAF.Authorization.csproj.user @@ -0,0 +1,48 @@ + + + + + + + + + + + + diff --git a/SAF/SAF.Authorization/SAFSecurityAttribute.cs b/SAF/SAF.Authorization/SAFSecurityAttribute.cs new file mode 100644 index 0000000..3bf9f9f --- /dev/null +++ b/SAF/SAF.Authorization/SAFSecurityAttribute.cs @@ -0,0 +1,42 @@ +using System; +using System.Security; +using System.Security.Permissions; + +namespace SAF.Authorization +{ + /// + /// SAFSecurityAttribute provide an attribute which can be applies + /// to the members of a class to perform access permission on the caller. + /// + [AttributeUsageAttribute(AttributeTargets.All, AllowMultiple = true)] + public class SAFSecurityAttribute : CodeAccessSecurityAttribute + { + private string name; + public SAFSecurityAttribute( SecurityAction action ) : base( SecurityAction.Demand ) + { + this.Unrestricted = true; + } + + //A factory method that return an IPermission object which will be used + //later to perform the access permission. + public override IPermission CreatePermission() + { + //create the SAFSecurityPermission object + SAFSecurityPermission permission = new SAF.Authorization.SAFSecurityPermission(); + //set its properties + permission.Name = this.Name; + permission.Unrestricted = this.Unrestricted; + return permission; + + } + + /// + /// the properties to identity the entity marked with the SAFSecurityAttribute + /// + public string Name + { + get{return name;} + set{name = value;} + } + } +} diff --git a/SAF/SAF.Authorization/SAFSecurityPermission.cs b/SAF/SAF.Authorization/SAFSecurityPermission.cs new file mode 100644 index 0000000..a82c8b7 --- /dev/null +++ b/SAF/SAF.Authorization/SAFSecurityPermission.cs @@ -0,0 +1,113 @@ +using System; +using System.Security; +using System.Security.Permissions; +using SAF.Configuration; +using SAF.Library.Security; +using System.Configuration; +using System.Diagnostics; + +namespace SAF.Authorization +{ + /// + /// SAFSecurityPermission is responsible for determine the access permission + /// of caller. + /// + public class SAFSecurityPermission : IPermission, IUnrestrictedPermission + { + public bool Unrestricted ; + public string Name; + public SAFSecurityPermission() + { + } + public SAFSecurityPermission(PermissionState state ) + { + } + + /// + /// Demand method is called at runtime when a caller is trying to access + /// resource that is marked with SAFSecurityAttribute. + /// + public void Demand() + { + //obtain the information about the denied and allowed roles + //information from configuraiton file + + ConfigurationManager cm = (ConfigurationManager)ConfigurationSettings.GetConfig("Framework"); + AuthorizationConfiguration ac = cm.AuthorizationConfig; + string[] allowedRoles = ac.AllowedRoles(Name); + string[] deniedRoles = ac.DeniedRoles(Name); + + //create the IAuthorizationProvider object which is responsible + //for verify if the call is permitted or denied based on the + //allowed role and denied role information. + IAuthorizationProvider ap =(IAuthorizationProvider) ac.GetAuthorizationProvider(Name); + ap.Authorize(allowedRoles, deniedRoles); + } + + public bool IsUnrestricted() + { + return Unrestricted; + } + + /// + /// return an instance of underlying SecurityPermission object + /// + /// + public IPermission Copy() + { + SAFSecurityPermission copy = new SAFSecurityPermission(); + copy.Unrestricted = Unrestricted; + return copy; + } + /// + /// FromXml is called by the CLR to set the properties of + /// IPermission object at runtime + /// + /// the xml contain the SAFSecurityAttribute information + public void FromXml(SecurityElement securityElement) + { + //retrieve the information from SecurityElement, an special Xml document + //and set the object state (fields/properties) with the values from + //the SecurityElement. + string element = securityElement.Attribute("Unrestricted"); + Name = securityElement.Attribute("Name"); + if(null != element) + { + this.Unrestricted = Convert.ToBoolean(element); + } + + } + + /// + /// ToXml is called by compiler during compilation. It produces + /// a SecurityElement object which contains the SAFSecurityAttribute inforamtion + /// The information will aslo be stored to the assembly's metadata by the + /// compiler. + /// + /// SecurityElement object contains the SAFSecurityAttribute information. + public SecurityElement ToXml() + { + SecurityElement securityElement = new SecurityElement("Permission"); + Type type = this.GetType(); + //add the attribute information to the SecurityElement object. doing reverse of FromXml method. + securityElement.AddAttribute("class", type.AssemblyQualifiedName); + securityElement.AddAttribute("Unrestricted", Unrestricted.ToString()); + securityElement.AddAttribute("Name",Name); + return securityElement; + } + public bool IsSubsetOf(IPermission target) + { + return false; + } + public IPermission Union( IPermission target ) + { + return null; + } + + public IPermission Intersect(IPermission target) + { + return null; + } + } + +} diff --git a/SAF/SAF.Authorization/bin/Debug/SAF.Authorization.dll b/SAF/SAF.Authorization/bin/Debug/SAF.Authorization.dll new file mode 100644 index 0000000000000000000000000000000000000000..078e0770bfa4dd70e1198eb322c6e6b668b8cbec GIT binary patch literal 7168 zcmeHLeQX@n5udlaw`ZU2BX<{^xFpSm*l>xRlarW+rij|{CE-dEo1Bvnh!oa$8)wPg zuG!s7a3ILE1r>=#6w#ujsss@TRVw16h*DHgK@}}j^g}{wB?P1h1&V~CN@*oh)buxR z_r7Wu(*9BY>9coszTUiaA28hLNTy`;)ppH17whnn70VvNJ3k5eM(Dc?Z>ROFRKHq z)l{TArS~sQL=yUmPC2hFu%s=D^~V!B)b)g(h(P~Mef4LVUqy&z{`h`{_)w~e?%2Y> z;~>U#J;tugVs^6!prb!f@mboT4dk?x)}4y<4<)ojphDOxIh4g2lzvQElv#>fu%9Rs zuJ44`j<{pGlEJ3yM{$5O;9rE=QB;$rcl1+q73Zu2`nVFxZP;op)=xUyQR-(zQIE1f z>dvj7`E$M0qRMUTkFy*^XN|ZNL|2Vi!BgO;;F@V` zcMuf9lY7kmqDtW}$I`86)D6NWC;I{T?j z=9OD1$J8B!BjaQqPEumwr|_Us@6T9_uERBqTn%ILjzX^R@MVua@%ZuAHlFleeE5@N zr`|`vG`eALVPrF3*^#P$z;Uf3hHp9cUT5;=y*YETIyG08oi0scDs3!$ZKDV~5cjh~ zYqEpcb?XPOU?D}Q4ETXYwBin;i3ol_;Kz!B?^^bh#~KeI`Dbxov9mxAzyM;V6|S(Ipp=QuiFMov!6Rf3s|CL!+@`rEnC87=zmPYn$GV&s zzQZkyn8djw48lr`w$ggwzosVuJH;n}izVzA%&{eWTEe#^KcjRjI*mwpgM?KHk4gBL zgfC0@mV|$k@FJCGWhJ~;!m2u{>hxpvB;XtB^MGg7l~_?|j3+h5za-(9YTM87YzAt0TpQ$nX6IvhmkV)#vaq)rWidQMWO#mn%ejTWMl z5SLYPAsCz@|uOf#SKM1M6i#(`LLP}T0P%{g91Dlk7h3Ez=$6z4)v4RTIZToLq_2wjY;2Pb)t$j}}M4ZvMwN&FTG zXC%B+!h0nAj)cc0d|1LCO86Aujj+u-^HX|9HGqGt?x$C&S35|5k~%NZX3eFSXpeT7 z{!E3d%^G1`$S%B0G_3<(1^$)w+vGf zULxT-2@4V)q%DwMEAdeYZL_WL=H;h?a%z2Mn42Ga|cxSECq1O63 zuc6mCc@4eYs02B#+UAt1W%Fv9(~`5La+xY#(Q(VxBo$^n->lHsG+;t9FCDWxXrfs@baem>PRcW_nmz=}izfqT7)R)YTn{LJOJp6!o zG>TVGSd6=!nDBrL~`I`DByXcgR$+AiLowjRwuvqlXQj=n_Z`JeWgqj4#T`xs7_*`vHi5uW_R+oZ@Qk`-XJqO%>8AM zEF1AWvocwpxz?Ovml~OE5^T20^9XWg*_bI>ez2BOuy7Jj%t~h6UMc10<%*+)|SblRJ zf`gOIS;my@c)nHiuw{78nc|{q%r?qp=dfAY;gn5}N~Ueq@NoXb0TfFKk1`Zs;el*A z3V6;bTGIwLcD#;qL5)^j7rWnJPRvZ3IF){Qm#4EK-BGoDt75Y78Wa`^KUC%F2|0mJ zn{F+dG6yK7yv?3dJ`dM@ZU($^od_Pna6;{(f#wmOg2w#t%r~3}8Fd42Aq<1+Dck88 zQ%wo1^Ct`!i+f}Qm0Me_E|-U^<*=}?EsR4(xr#$5&sUiLmWtp=8ud{yeP2FfvX@dI z`(ukv>x^xN4c{B>L6%voeywvfiD;y`MsiIxf`wc3>%AAJS@z~y2WTV#s~s|3AH86s zgPk*Mxns4{d|lNjTl-Oivj2>fN{xv%^$923RbS?te@u#_R3#UGXm{k}_ldDvz(X!U zTjYSBrV{SVvFUQDb$|>y1WuZ^0NS`*=oUdwOUwpt0XOi3FV>BKD$4nuw8b+l&?Qhl zET^Hz8V=SCyr9%(*fFRAt;68EbdacLC#38jdlszcODojAJ=CR($H8$i&w`c*$o^AD z5q=nwgYP5X{OwEUriOCQ{Os9}l-#N}sO=|5_U`H#I(3hlCJ{|5VrhJ7T+!o^v=E7< zTAGpxNa7mExSAn|6e(H`uEdgktkegll1$(^C7DPjSQ|n`C<>nGk_Ky-cwA4Ki3(&2 z%u%w6=i_)h-Vu%Bwlv;`e^uwT+aj1Vdlzg8+~UzTB{_R%O-0i|uqZM6?H)nrzsgS* z6H1q?wQcCb)^ynvdQ?d+gy*`v7OGJZ$8*b)IM4n8TwNOHh?d0T(MWRkICva&vYo}p zF{vFB6evK8;4McIkGDnDWM9%u_CbL!Q;QXjtQXAMD_D`v2p?GQe+OMEJ%r+p5oRZiIK)xqQ~+Z->_p z6Aj?aq&5cBA)vePZFL{uCfWfkPh+$lbRKXsa2_vcXZ{g9?+W_xu5+m1;EwW?1IIwV zTZg2)YKI)b3T-Mj`A8Xo~Y# zIv{lh5qI!6M3bBYd`PdNS&JJIoX?v zvNuh`QrLY$-C=x%6LsHq$v#!@P|#U}_n1LkYv>AEC$V)jL~H3vTs*eoy+p|DaMyF; z4|mswM|jJD^()~1B=n%)E(2rmW#;jJ)2F%&WgbbvxL)?(~yZ~>dxra;ED zCtWtB+gdS=X++B=SQ9Clx;2wBDczC`X{13@reKKcl?Z~a6^+_06vmAzkD^Ml)dRDW`NaBk~&Mx8ys{#T#+`8)qse{zj|zvIt; z?~(fUAJxA+CkU?8ZhEOE3kD}iGAUt>A0 z|Mf2JBps3A(3ikKjeqrx8|5m^0iULs?f|1f8jQ>V2*J65YJZ>J2pw7y7(;P)u&?t) zpml)8uxjua?-!vPW03vi?JO-9lH&@m$ju?XoTv7!?{BT+^RzF=h|ge3;C2!p2>X99 z%Q%wu;7MSx^uHhXo|dYCANQVKKc8my5!YV{3{?9|jo;@o*RyQ0ssFJs^?$WzJ2i*M zZ?U5}sCP?vNb<^0yrOYlJtuinBrINq#d&!has80MC9~iQ0#B1sEA9WNea8e1_1lm4 z^yUs}4~6Ho8=5wE?CoypKHjuF*LtM8qxZPdy({92yqmUlcXYOP9Bw&C_{4npj{V)a zmbQ-0eTrxNNptOy-u+$O9gns2c64>(pRsvyRFyHfFPI|}Ke*!RbU`o9vGfYRCUyINpyl{#$#3bt`w%1BJpK zBOl)#x8=GIb@cSmkD7>~MWUPv8h0v)3MD5cqspkl65tSbzWsl4bY=I&n)9iKe%7bj z_LsP-ZGVYdyw$Y7nnS#zLfpmlNOMQazRs?m-VR#1YCY2A^vFV|N3{O&j&)N;@5btA zYVGanwmM`Q6`cpax`q#r>yYtz-RApXaeWwd%$}&c>$*DIJN6yv_Ij_Jjx}LM7dIuN z+4O8!^R@S`y{EQWsh`%ByL(#Ng{GFcj+IZ3Q{acAf@#E56{V%Ox4UESk=~qQl+2?o z*WPmEU~fUjhr7GJ-qDupR>W$C^V)b$)kG*9|0QEI+p_uj!Zg6PSlOgFyd}b80}t zqq#O@oUNDKNh=CFdf3Wd>%SK%%sRp~lEkO9@Y23*#NXX@kk-O1Z#d{wntqV5B z;!)O;@w}awB9{s9ssEmGah0EJ&|}VD{XkIob*l&BD=+2qpnF!D4}%YYj5mde$B#Xg zqXEbfC)7CG0F7Kf?P7=uzlzJNo-j!ooj>{wDNKpzwr$>cXFeKF<4d z(BFZ+2K`-VniJPFr>p5;J?*s`Ea71uN)&HX_ryJ>ib%F}%R-ylE>ZO~`P#KNE`9Lz3o)@J&W%c|; z;%WS%f1-GJm5i6v^RPy?isBsv((`g^Z{bz&arHb&n6nYD&vl2y>v@HFe?6-l4SK+F zo?`SoLI~q}{wiU%Kc=F-{2Bb-S0o(ihq}YU9hLBICi4)lUqoHJK9|4O=kky1^U1_7t;P%cVJYsHIbOe@*=o2HYF)W5WhMe7ML(>l#&lTx|YoJ*0Jwo!7X7 z7|m-ft-3#G*ENVF?{C*gzsB;WM`_&!kHj12Y0GtXafSJi|rCUT$=w zNN%}X$DeujTNI*M|=mnQ3fOz zuo@kk?2C0wN^)@-($6zL@iN@h*_-R8xA$5-`Z_WkOC0fgo?BUtTAyoQSnHZgPG%b3 z=fNA`E$}YTKBJ7Nu|R952Cxt)o@{?Xwyq#MN{}reXucApg9YgTLH$@zI|$0Z3ro(uxJrbtC=5#_rF z$Whl2U99{=*<+1Rp7rfcsJhREHbb!^!Y$DG&~(req=V0c`@ll*2$&b;sj^zzI2GB} z@j8-jsA-vXcBuVjUq{K*+JmXcj!fgX3dkXUQ^(Ik8ME>a)o$8jN%Nbg^l5gqeR?|x zv$jtv`Yv1JSoz37!?Dm!Q1%JTSwa@NnRn_dJ0MK6bCV`^ni6UM-KTw!aBCx^BHJP^ zSNcRKb**y+mGw8E>Q_2nSONVi^g-wzsMd%r&@?5o`~4fB4}vBzHOf3;R4eI~%Au!*9#` zdk)F_T`S$%_C+U<8Bu8|EdRda%e#)tW4*cj89#io8(x6E0FUB%-oY-rY*Q7tn)zI7 ze^{kg4Apb~+C^X6^ECZMPIHuZjMK~yyd3uBdcXQm%b^^BW(|PnDdV3%p1ObnAP$6Jx$#<5=Xkq^9*+Vybb1U2aOp!2ih@qg0egb zPJuI`gsblfY6C%K6%?-zT=Cr9$%@fn0cR{sp zeGgRU7U^JTkPfmyb1l7;UzJbguzj@nJgYfe^Q>qsR@(%===Jez+oz&_qhZnjj@!z$%c`O+&5y^}WxO+ZX&YOCJcS+ga+& zV{k7&qQ~(Q#a1)4#rdb4|8z(H$kG3FeBXBzo4~|V8p1an#l|x4k2?CHqnlhhKXvry zF28ZeTJhIAzHd4IXC2?m?)|u&L3S!@Iaj271?-i=%h%o}6-FbjAZg=UP~E~{^HwQ5 z9;GhmBibm~$srqg=pih4yN;K90%M8IIwWWS(oxc*(s$B@C&6>z1#k|?F1!fd2JeHb zK&2C^M1wGS+1T{8aopwZ07lH@3N!Ea)4Z_IDu zQghdQv1|v+`=;UbR$2~!%WwT1{}Rm=`Lt6-(oO}AcTr*5so2H*c-j&FeT8YWhAyP}2kroi^nBXZ-|_F&IgPEO&P>ul;xHu^&xX5r zt@$$PoB&J6?1=k3te@j;%a=*}-JGjOo8X?``aAwyK5gywrUSeA>v^r8<89C1jiRW1 zoSz$fz)1Vsbz0Q7hC%yJas5~O(dxg^CN+)j`-}~ zTx*Y!^rMYO&u{%5e_~wM6dBhweq7(5AA8cXH9_CSp3lREyFSk)7T=Gx4zCIFizCl( z{T=_ZJipczH9>x{;rXq<<6oYakJUp~H+h-Gb&&U~#OHNP1B~T#j170?i0PQaMRbhy zTewtXTz>?uAq26gP3VR;+i*ttXW4{>Be>?8qZTKC* z+sN$+UN)1ClDafeD;(?ke4W$u#aw5O!)QOf6x_8B7B??lvUJ4?CL^5BM|Ft5n?P2# zS6#ksF5hEMem`0w_s#d=j?T8Oqdmp*UEjQ-c|-FGIw-DuzT<*z%mvyT(cG?zUflE# zW%7+};zkR)V8ya!>y|HRUaRaX6c1JPHVrUQ<(f;Ne1w)uvdYP=hG3Zo@EPN&V5a2sj-7}{FulcGwW`;?3r`xdFX4~t?E^1EndzbLA7pSzmPnf%x)n^m#VuL%CT zEY}oB(m4s>XJz zJ+GX-`t3{q^)vhyZ0_hhu&J}XD_GFU4q{KRpr^Za!G1o<&2{fR*wuQ#dbD?NZ)rg_ zZC2O>CbjA#7c_V^aVzyQENU}cCFZ{|vbOt^@|RNw=NQAN5DjaI>>eQ1psTOidXh8i zCFV~<*xJ1 z?Q2WV#+TOWyINC+3<{}R&oi9bK~<*S72Cm|oB6wprS5;pmN9ZHasSJQ4>uXoO{$im zKQAqH|4TNX?TgVijM1a<`(K{tR+gjIF^qZRv`;UYF;uI*|D}jB5Cxr?3bMBZ*#d&* zD?vI~kPZ;kj|H`Zp#1x9R;$cJ#G&8Jv&y2ir~Fl(2KTHo$p)0a%EfkP+S5C`E%-H|J4YU3}!-AmRZn6P;4M`|BLmvx&PG!t>*rhwV{ijOC!@z z_UK}hR^k0G$ysGpS>)1Sm3gw?)@68R8_}GVuYhXLP4~h|-T$(-Px1R-w4u5GwGKL+ zbef@A=mw~4zfI6`_rKKkDy!drh|85eVeWtJgpP;rVdxC#E-2*=z6^a3s(WH;7u^%9 z=Kj}*@G4KujdJn6L*F9}d$%lk|4aR`R6P2riPvgq;r%bG^NQ!U&&Asxi+7oPYJnYL z_CD5S3iZ1DDfAU+9f7lfzN1+Mc7XjL1gF9C;5>K>Tmf}7dIMMmb^xWdzosy)2S{%Z zI0pK2myD!JI<42ro&WEoEMym*|F5R3djF}TA38cv=l_i^KY#xJs!Kn4{@>yJ{rUe> z?tQ1D$@Bl|&cD?8f4$51Z#|!T_vinQJO32zto~TaDLmo&_!Pu1co{kWFAzsUkjd9u z@%%q2gOB^Jb%;OD{3Orz{5iZo1B;)F4fOfX85EXu*2TyFNmH_MpXB+^r7IW8DUoy;0^H2Gtokg~`8E7~>>bXC~umO*jU~CBxeB^J~6j znAUK`&VN-Ft-<{ID;ZB~B}`M}l3`j8l?v0Er&w5q)05=+@Bd(wS-(-y`S0h5Z~bZ_ zzd4a#I`Y&0h2-3 zzXfgN;tm-S*BhhhO#?mtuV<`(4e6B}PdC9>@9((1Sv!OF05_rw{Q3X)oH8kP{=bAU z-2q6R|DR&Ccx5%%^aAD8pkzPP4APmvz?4}OB} ze}?j^{Z(!$>1BYua=z5I?LQVO`%C+?<=US+Ip(g2`oHY1Ca?hL>_TS(?B54ja5uOI fu#a#49{Eyevi+mQEMY^b$`2(c6GWt+4sl3Grq&R*oHHAKA*9{0g}}B&-jA>VVw;a7kf{)*2$K% z@=9kcjKL|z2?VCVxP`O{V|&ten9`Y~kP>&GxYL%Fw2(=g&X6<((xKFu$%HmdGAWbR z{k`|?N~@EMX{IynOtW|U_IvMr-}~P8{(YZT+Pdd43K3Bl_r;4uU&WKJjRHRyoB%t% z?2qE~eA8=vU)8p});BeqDJBZ8lXk6KB4y?CPAM^MC)~MwB9l*yZ%-z2&Wt_O+8SHo ziQX|mv_%Wi=bzoa(Ie5@6z^-+45F(*!Go{6#sLzz_v0pNleVt(W&-Ok*J(h|`QmjE zEtLQ2(?f+v6ouR*xAzl$Mh);d-s1#O3!3MzA?m5+d@z=P>_Cqw@XY~ysAL~40iR(* zfG2D9^adtZ0$L5ZMK=XZblZ;xFSH+b;Mxdx4Y_vKK}Xh=PT*!)gSZ3NMxxOGD$R{p zKVPgH4;daHdZU|2W8%+obqwni_r~e{XvOr{;ejUSM`Y3on+w@~hbO8z>_h!KU z1?cO*S+SVmwBg}y1=VS1Y6n2G*)l-UYgh&tK^cb{%5Z-db~4#BEu@2s+lSK+TiD zJP7R%w8H=ySZ@P+B2ImK-U>OU$YG*;3udgh=is1c(#LBQ>Uy+Gt!~-i7n+>Ko{__y zVra-^d(4ynh5u>!Z(*LM%jn4PwoC!O{{{!&mD;FSa)IBRygr;kIyR{}OIRl)$!#a|O_V^bVuV=r9MU&AbM- z)TkM2<*T?9{Z6nJOmE;{1fcS7Nb&_ajW}VVyMcA#Bx$5t%n;R@O{JKZFAd~JeEDHY zKpz!{OmvfwUl%`@j6)3c^~^&~EA;G)bvEnAm=O{^2d9FV(%SJ2+H9^~5M;*&uF_4( z_I~7#!7Zbuh_V}NZHhX*cs4m#0>+GvFw7dv0oVjK;(6U)Z?pz4d}@7JW3Cd?NNCM;pmayL zvm^3mB-#;y>JgT$L207Z6x%>?ED{o`7sm?}l1tT5j+GF74HOiZwn}Y9*$nH)7#0DH zm~OZ)ctK(mSAlXIV#1*QLxl<}8OO0XF%?^{1e8%kJ{ZT5icDQzp+YI+cuY|zD^z&e zIF4}UzK1H*1XB^LOntIKy^5*W2$*`VLd9U?IK(I)Hi%K!#`iDedNImG_caK)M2v>$ zYV^fQ+Vl`R*YNj}P&k;w{g4=I9w5m}H3pe{nK6BVF=4tM^B|28bD~ohVaiA(jXJG;RxevU$8 zFAtfh>bnFh=9QRTey9WcIwI=eMKJ*o}LW zBb)dh8gudoGU++jDrKDfUT6B?-f??+E?v(XD$GptWTVMXj%r@1#uRj9?a=Vhx(&nE zF_R*c1x%pgF29fH5j^>DvpiXHGx>Cpdpv?foI(L!zAH&@M5vlycHwRL<*2aOWAQ9cQFpjEgLutMjL27J!=h==2FgexXI_TDgh z$LKx!Hcsi!Xiwu))&_lrZqQFde~&O;6=qnBSP_FB5%}8z&kOvPz#j^1HMmc|z!8Ca z1eOKjhhgJ%*+15R5;JGUf=@j*oJTJtSBM?5)w4wHTs!L|+Nbw(IPT z&k1}^;NJimv@Em}aCK-m;7Di>;8f@?z)WZw@ZQh?z*C`vfTu%wNZ?T#Jr`nlF3hkg z!g6*2?nq!c^g#DH*j%HmU?=HitrOw%B@cU3TY^u>Eq&bcB>favgi0P}>dUbH(}F1} zQF_ti?blZ!8hbdvFfIoyM)!JHSziNd&!UJDJ>LCPkj@MCDf+(tu}XD#CGulE4iBp9l?a7KksS$? zccOQ-?$9P+PYK2{x6xvHwt~fh{VH}!-)3EOTCkJ!QfL`<(_ed7bJ!)E6i}*o?H>;x zMV(&nVRwc*aUwYCVcGB~>ikn4b~Jn+u-iE~G4Ap3gS3oJd)Qg@Owbz&lhr2ZM;`BG z@cJk#fq#;|A=oJodrPnvJ?w{qz2jjQ1#6K4sVvw>{R*Qck!7e3n?3B>$QoKsrv+1< zX47i)P1Goj-V(UYuwyXg4uO`y zjKISJ%K|?o@F9VZ3;Z15DahkUIzvA&eiL!=V`CX$uX%=^p&QKKL3`XB749FRoiblU z`(E>J;n80)zej&UkC{K9SLv+zBT&9<{tS?%eZzx)Za$3m8|IbTcd0KriaOFAvbD8< zN3`$J{n1CYf2F6RPiX&6zX$FadOiAE8f$V!)3kq#{sHp&0_a1?$8Tvvh<%1j1+Ei# zlfW^7w+KuMyi;IG;30ZTdlu)=7_|Kwy^dYupGemhY8_gawp?4It|b1L_&1 zNjT5z_cRYv*T=RxGjmz{6I8dA56xt=lq;qjH=CKJWVu+fbF_W>pq(nw$XsdG&X+PN z+4O5p0QG{Tx8r8+Y0!DhO3m78ygES8Sk@{QH(9BYc{)xUfm+*~QszKI+ibOqMQD8M zoIU5Q+B-K<(sqwzQuB#o^r72xS;D;y?|sRF`~hdQ3@aYUWNq=O%GeZldBj1=p5JYuAdS{VVZAAFRRI0LZUFd^iQDFo!Of)@*U<)ud!HM;ZaXV|3lbLkBp0(R{i_or~F*cVi&AAPP zO}W;LowM9S4aPWyvYScImg-q>+RR+40b|U`6|8)@end@r)w9R#V#>`F*tGS`sZ1$o z2QQ+>Ggdn96tVkoNx?_WG}oT$XjK8mxpY~Dg31Nhn6ui+W5+_?urCl#X`~7lRXD0L ze9ZC79Hs5jz6!lq(@S`h*b%oMkmhbHJ7?3JUr#Y_rM9w^9hNKm0_Mtdy&apiTuP!) zmnwpY>o*6aJV&rI9kIB?t4cJPFP5x)3PCb6Lx=1#D>Lq-<~ZnRi(}1jtl^$eaVS!K zzE88b_=!1=qH{r1B4sQXM!rldssc|FM^m==LdQ~tP}%g*C3*O#;*Y>sl8&awCl_j$SLfbI6Q~SUMkb5 zgFVN}6HH&Um6h{(+nwU?3=i}EE3#-}4Xwdhwt&AZWhg}!mGE>ZPsK}e?xc<2Ta+W4 zK8}wvTI6c_Wzu>JnZ|P?U;o%9J<@H zs*lyp)9j*GR_sD!ypBsr92YzK7F1XR%eApj96BNzvu<>Ql3Gh;U+f4!1ib?Z7X`RB`vYetyl-D4zI1l zmsa%zU03xiOH@(h`_-oettq+N!FihYY{OQ{5$$40L5u9foH$k;skA%s3{2CB=+POM+Pl# zyi&gsh*cL%z$Pj2JjWFE*5WGHe4o$)&fj3~T6|vbjw0eIhd&#V*}5r2X;F0J$g0|7 zzCUQeEJlftxEJ4 z7w*5}{1>xZ9=>a5e$=^;py&(t?A^U&{o4?;zlBb zNm#1RKog*2YE8#GYmZ0myLikUal;HjnYeDmBc#Q9(V5y?qh^?iy-*Sq6Y3hQX>TaT z3^dRLE5w@jU|hQuH%aelw|b$!4qB@jg#iAyum;`efsz)cVw`8lHJg$4R!rZX!2*r; zJ8)-2c)Qi!)6U%?!(@Ry?T6z%y`b>jewelCMx&djT?F-Y$XNu!A|_z{ct2S8rTwTi(8KkBciI$N&1KI^-9v|DzV* z?=1-LyXi!&g6bQu;RbZ>w;A{C`|)!#B))$QhSsCG8?|^J-~{bNYZ6s?8}LcMO=$D= zQuw|9RBr+`diTNiBi!caF9{c4^5Lm_ZU4dHsX?lR3Z`ni4ViiD#Ex`XA)}_iyermAnw37o_|8oItw;5Q4e%x(Z>zD3I$j;;eU!i4OWEqAGyG2p<4?cGX^<;S)@eP$$(QP;Sy6Eklf52ahbJQ^IwR9b= zlh!&~PuJpmG5)0;ep`ueHZ-x0+W&Z;%LX*6o<#Vx%X`}Vv)vF*Xnf-3pB?hLw?K!q zNMQ>Uus+_!(l~oy2ND~o^;P>RPt0Ik4&z*$HrQIK@094b-IKv*5!TPQ4P&x%!BgtY zc@R9U2FTyx9;U^yIEw6U^Tpd=MWuPSR;YRto736D}G&(PrT;GU6rT}!*Jy>{N_ zt?TElUeen7;b|AI-I@?4x&O(1T)x1y!VZrbe?I^mDE*t8Ti^M0BmAavpzZ!+AD!Xl z`1o%s4}O!|{lL^^O>OG`nE^nTC%^u+Q}ue*2p?z;3=j1z-P7Aw9A4UU!;azZJ%S}Y zg9Ced_Z}GP9_bw%*ipQ{I509WIMTbPx5quHh+fh&oGh&)m*L{j{k=WKQ=;uJ4i9(l zEq?Jp@xbT|K1~122AY63Uz(owR)MQoKr>JTT7YT56yORHE9G%O&vtPyE%--Z<@YDR zRG^z-ph2(@{88{f5&seJeBeXC`5#W~y7T70{?Jcn9p0K8yW`(a`sNGkZu|N#{>R_V zI()OgpZ>(}eP-64pU!&znj|^Vvhn#^E#3}Wx5JtlaB3%9dJDXbE;s_4_H%si^=Fxu78ttZ(iFM!Jp3np9LlZl4eQroxojyZ1Ziv-N2`Tdw|P;%Yk{oZvj^T zl2S>&q+Jp$Y1XK?0QeY?rT0Y58?@zrC&L-tV^}pKKalrJ@T&^zxE(RLm%yD3%`rrDtmJHZjWcH|5Tbhexlg9R_<|eJ?8sW@vK)jb< zzmtyBd@V~zCI2G}4z1-h2iF7EuVeMU$w`(i66*lj4gZt!i>gcr-vY}fy5zsLHoe#K z%>mVG2vAzZ#c4mn8nim?@sL(=aoVAbv^Vlh`6@0>JDWOH=c{K*D;%et12d}AzQr@8 zRa~6*UuWd|ry;H4;pPX@8#4wj-f!iqklJg#6D&|Eug+|4a94-Ku$@ z5zY(;CQAP!LaZ+q%-VWrc%;}b-EP-Qw)gjG&B1-g`XyblYZ01e|D0{cW(S?gHBw2* zb_p~=c7lbgNUk|UWhHkNM}~TFP2MS|;KqSHgG2q!IZ4!o$>dpw!Q03~^hPtD`dyRE zbM<0KIxLS&*VYBCKCG~dR*Fm8a%*VIbFRXEEu(k^#&5H1q>8p|_I^&^r2hSV#eO`m zzEx_|4%+h!1X>dr?ReXCM*H8%#*({=d-{q!axK%2i_3Cy*MWhN-u@!-{WzNk_Kqnt z>XRwt!CW$CpD3;TXZXA_(k{3DTSgM<+SLW_LK{z=O%9`xx)Nc(a| zdie#RP1BP+l|LI(P58#mrrPAwJ8$`Rt|zMh#gl1&q1Ld5r$W{9lb&hb6OQL6&GFS~ z|8q!tzRdr(hk5#Zoc|}P|KFi+rE?V~AzhL)1=)EIx+`bvmo&GdlS|iv@j;ia1G5e+ z$#3-LFMm~%-w2zaq%koU+z!SrD6IqI>nYs|M)#Epc!>(h0^oA|Tki; zfA#2p=}VG}Ce?pE-TkTlGrcESybuK?5s;pe-m_;lcRedMD*L+!*nb?-UMIoiTRL2F ze*{o|dj2D@!VKVXcjf$|CGi8lXi4ov#!JYy^nPh67`^D^8{56~S?)gx{vsHEY3cXD z_)JSrfNuhS4~(>zUIcf7Cnw930y{kgc7h6cL<{T~6=-20`Fy~81MZ@4MvsSy8vp+Z z0T6Hh3=rOo5C}idAK{(r2uWK8svQhGn= z=Y@Eo%J?XPOGh8FOiNBLl(xN+zFp50=DEN66Sc3DJ{;?U`YHtEZ}hi7fmJ~*Qo~23 zZFdQqh%Z&ei=;9rQFt;@{r?b!s@#7F_>bY6?t3XqSo&M|JrsoS=feHRgIvr-G3fa( zf*d^*@D&07BG4@h_-7&CZw34ZAwT6I=-`j=dx3rm4AcFA5Z@o-uMhQnKH$%V`dk<4 zBb_C>=R-MPv-X5~ydCoC4(Z*xgr052?e3Hper<`rJ&ikvV`ifIU*+cUb$)rBzqQzNV5oQG(2}m9L;FVt z_YQUM-**UdFAJXc+x86=yLZb7wC8pBj@Abm(K=b-a*y2KIkE3(Yq5K%XP+-#uA|OF zTZRU83hs8+@t(ggLG@$uQ6Ba9k4|U%PQ~|Ryf~qbAzbN^`-|<_d>vPcnyCKwen0Q) zJKelc_tKwZjx$>y#N$jdZ+;Qu(WM%=gqTOHIh(ig%&`xh(s8IC7tc^{PeQzDCti;w*_?SoTFTRTA?{a1GW4uwM z_;MpWX@yQSmhNouWup53Sv4#K_Hdei$hEaSQm&ncB1VW0ZSdd+*rK90nzO+N_9haW z!|Ra``GM8ka@r*68}#R+^<46!F&M`m+}}O2k7wp1j`b3n#El(IN1|8$#8=Sok0vRT z!5e}Mz8V&U_z=>7|D}1DO1OUL+E?tkZ{wb==&^3;F;a>D6V?9{F^`+xV$L0Nd}i@~ z*mN{)GydEZ_~RUrJijL8j+@(?zhnGCe{JQ6dU0rL@4$T<2SRr^9vz3bCvk3x*3zF% z8LgD7+ID6Zk4(h1rppv=}l+1UT_d^lImfBfo~zxt)d?v=8EyKdOQJSeE#r{B?WU}T@> zCqKVc?BP3~cug;QcLiaEPhEt$1!89ZE4TSQs=VCdQnLC>>+0^=SM;U$cb-(YnuYWz zwa>hqx@Jqd`nrdQ*LU}f3=SQtzac%M+T*F-M?2!f6&>;#Y%XtH)NW5q<$Mj%c1L|w zbrD3X{ZUP-SL-oQp^TzhRH6Ub zbwOZnzr^}i@A#FpN4f-DNP3e(a&?-A()x98Q@U=Zp8XKe zUhA`91?}6(U#Ea%xII?wp=xcdGX;_c?V-*GYwuJNtmm@lySP_f)`L62w}52>Z2;d1 z#*b0@Joq;7m%*FCUj>t<^fdS`@H1e1KBWSywke4`YuXE+&ovw%Okw3v;O&+IwJ31H zv5?H;*^UTbl(tX2^=r1KbOgn`y(jVY-450$xEEYVzLaPWIPM?6PH9TlJ8>TDy_FV1 zOS?*D|GobBP5<$C3NJL>&hz&Z8up*peCmty@%&Fb{u#4vzm>ec0KY*p1OL=wY{GV~ zpVYt%LFY5(y6ZQOg-4tj_g8jy-0uC;i<3>{^*7vn32iNf{rW{)ru#U?O|`ALB*)fF z)_1M#TC;q8ho`o3vdg_Bc{!BZO8r&tGvDYKqukVXteEwZHC>%6)~#OO7Al=z?%d=s zg&idAQ-I3dGJj)ExucBFq;tix>swd0Eepks!QVN_778hm_z^(mZU4)zyz(jxQo0!Z z?9be)z6u}l$o>5&J|sD!ly9;`R;>3MiS9|@!+^!-`9$14-zn^?nIEUI|95)!|BS!F z#^aTmEC^dXa({8iH9ulO7^cl{Yp|YM=Qr*_4iDqEq_}dUqZT`^wo$*h!_yoJuS3 zwy@a{M@X;ym3Kea3NwJm-IXi1q-lXUqa|CpkPO7v<4BFj=iF_a>jVw^?id_j2Y&HA8)8`d@RjLahHe zi`)DTiCmMb^#2Q_mHxN*yfJ?|_k^q4TxPfy=; zQh3%Q_ZM5B`Fl~@>)ro1nzP9V&4=~yA!~2-T-^UJVg$LlyT<_y50P{Hb&Q-_oCL9-XR;R`367Jj=$P4c}$Qy%_kxafjq6Ae-=I;5hIGZ~`dM zNi%^<0nx}l638|XX#NvO-wUMQ1RCE0$(caB6sXMFYoff(56O0utAlJ-T_@zvyyvb} zmxbY4^i0mnRvmwr>vw<~g=w?OGCLW&JY8GytVDA6 zj+^t1a6cKZbb*zct*uz=xOyrNWZeb&GxdE_|B`%gtXE0}Jj_O?vc3J)l%7?L%U(!& ztxv85bFKF(p;y@(D)R95Np>Fa$mOvdtUOkLeIAwme?OOJ`~TssTWht0SCU7k%VV_v zU%VF&xWl?We)=`?J<`e*e#a;VLoSa8k^-YWUeA6-LPUVq&TsJ~_y@pi zz)4^c!>S$V10DpP0*(S&7rX_`q2uIZ-2&_b4gz&va6YbJMFPRm+WLrAn2%vjC{}I;;v9E-5PA8nX_y4--=lUNT%jqWhqO^yC zK6meb$``ec``eQ*c(32-O)d*Cjx_zq3!RNw!!{%;|lBaGLhK<3wf zd*X2ro%4WhGV-p#9)aV-VRz@BZwlAbzz>FN(w$T9e^00J8nd%P{WKOd$0{&>U7u+_ zmn}3C4B&AT&sQdz&!@288|zV>UQiHEU*`ICfO#UZZ=A@Fqa;8mvbG;DYyH{1f4}oy z>-?}dU(SbbPz?1B^z`oU?%U=+R8hT7n-O%p^$X%>hdgx_LG2W5kDk@k*|kpmxICI%J)OUj`wbz#TK!Kt z*Z-1P^*=mu{qKF{_4hxdV}Ac*Hl3h0N}s8lXn)!TS>OMN)2shtIXLL<{rd^kJk{QV z>1yL?-2cb*kPyoVb!oQ!jiig0vUmYa{tMB)N_wTW_%Zvx@%@((@mKs?3AXRQ#Qk}u z``=`u=9sG32_J0-iQe@8gQ+Z(zyG1JBbijl)BoC&VXxtRfA=Hrn;-EUCuOHoXwuDg z9lx_S)_bU@;)5US`%iy`@5K!{`<7LF?rvlL_n(Y*%rTdvbJeDJ{G0yQdddQ8$>yi5 zo*DXI`qbjbQy0@!=2zSvbdly43s+H>XRR*AvpT;2Wi;cd-v_n-rEjp&#ky>)xHDR1vxw6c-P!L=5<4p`%WCUa)~*6N7vM`bOm@JcoA5>BGw(r zRbbgfJS+Kc$Xt~a*l#be;}hGsb}DxcX?5mfEwBT45O^H;F)*I*|Ji<%{09oX9=X5N zyZP^%gU-ZX>rOcPm$vR6>htsJVN$*Ut>`T6c*nhTWZA~5ZL@2Ph}XcFW5n$Ha=x7V zbnl;)&!)t2`v-@d?I1eIK^&)bfnHqK*n#~Oaf9xwb9WDkA2xREz13&PL~XPEe~lT1 zSpUz1=jId6vi~K&7C#<7TiqJ{e`fn%{Vg44VLtucjxKY?-E0TxEwf#@bZ6U+fS&`70WSfs07|F1L?D?LNNxn;zd&sfD8HKa#n`Xp zI9o#HNw2D&Dsy(YR=Mo0yXPvKvFff>{#D^xby&=`*&$vxXWJo^k@`4P9=0}i$c@Yi z<@XVG^4!m(P3c@rmC|!{)U8C3?i-GpH}Ds`eHX3eF6ACOp|lr_td{&)I(@6|YG5I- zIkj74@2GuhvyBCYX=?A#?viYd%fJQvZ)Wd^&X3`2I(X#h&tV;3?oJ@Cu;u)q+7$ z{yny`E&3V^qR$-9-r-vOwtiQfcxiLFidMM_(71k=FO%$Z=YQm)+2^H%mHz*Sc_g{9 z`0MhuM47$eP=u z*0?P2c2vAZxH0sd>NXGA)%RcY4oDwRv8*D#+W%|z-yPWw>tswm5e3-;3&FAn7K7!# zU|(GCF_a4Y;$Z4z=xp4j@qp=d4O zbj35|Cm+1>&^#%+ScWgl_-0+2r=xj)zj2`XggPd`nDdGG2g-8~`?IHc|L@z>O~Gsi zUBeTZdzs_^2+uWtD4cHInSQYM8npMM(CB~9hg04ET?e^iC2M^>pMOB<^j z(9;Tb)=}3yYW^3n@zTDgSYaQA54noBJK*bDh?IxXoo?Q$o@E}4?Uyp!O>|RfnA)bM zKLR`kJOyaZISMF9&kEKBkjx0wK7sP6Y2W3%Cao2s>Y|`IQ`ag->qA|uysN{t%99S& zbCuZzm@UAidoEf9$xo}hs$4^s*ASm%?w;%BZsj3cK(xx+^fcX=p0UvyLUqy_VmVlA zd)Wf?ajC!wO#d4XmHDae%1?SoA59!G%QM!M`6U`!-ZRKTey{ zaUSPKo!!~XHt;smt^scc>l{}h`L~I_i4o@~-iU{)pUJxB`vrgkymf0P+ECISOT1?C zz2){_lGmr;8vtfA^R5MU01pC>14n_EfdpTPg44}l`DJNuvI?xcY>$m>W^wDn&>+9_ z&XtW%VYS!%|4;d3uFt}yCjVxW=}*@6T9HRf^m zzwvdO1~(z*D|Kt$YkXZ>9Ox~x)s?HsbPIH%v2-6KzP8c6O|(zr>h}U4>K#{hj$tvv zpzw2#+~2A2_4~$G>@KPD^ve@A5t34}yPfhEk%#Dw=5+B`DrH)xJXZR;^5jvr15K;2 zv-oal_)@ak2ui*&#|JohZ;47D&zns;fYG9PXgWkVoKM30GH+mBo1fYtJBe4hD&O>*Xf&rQ#CC}0ZP_2P zALfB&KgIAS@50Uqu{OJ7r~zf{}=E*;8(${cS@cwmn5Dy%i+yVK)+422s{9M3ea^2 z(CVHSurzERM>dil8%^n$qKVEo1(H0Jv^VuG*UU@qYjS$N2$+N7S`4fOb^-^1M}cnx zF9UA?1&HEnrwx+hP-|4~qNo|*KLShg{scfvC*4TmOz=XmIQ&n<%c7kRkf{sVU(C#P z-`5;WU0F`snyJTF0_4)!kkz-7E}pvd?VV~VN^~6qLwx@_3Pbph`6Jwm0u_D_5Pm46 z`$etPoKbyk+&k%Dx|DDkPS97ELUm!2S=ro5LzyAdz z#0wc3=o(N-_jLs+G(tfBMt=)Qd-=v+!FI>*QE7e3CgMx#mndE&l|hLrpOo+Bl`r$I zRL1DgKKfCOC(^cafCT{apz{fA0BcU(3G@M)lO6;P1CIkofaie46y64`1-1Y?fPKIS zpvG(O@G(H|DLw-n1^x!mcVUhLZva{k7U087;8I`_uo7qoHUZm#-N1g}OTfdxqrj7Z z&OiMCcmen^@G78peclC_&=S3CqqF70?`nLOL!f@Gnys|!?Q zN?71um|Pt_YhC4j<9Ls3be~rJFhw7ZN&Ry^y?^f0FQZc}y}l3T(z{Pu>A6qupNI4q zL2+GLGV0QjgtRzjt_gLKE!2|af6&Lu^JzmKZRI>(K^9uZ_z;fe;nRjZFs7^?CuyV0 zBj-agmWNLp^5~Y|%ky;}o#65?Piy#)iqZM_K(|Xi9#5y=5~-krCr0Dr0!@$3`+6Gv z?uKY&-P8(Z8(6&cXQTf=IQ>6@zrlX_D*ka6lOHc9p}o7yvU&`=pd}goQ4yo_@qw;b zmb>FEL00{tz{(%nK+ufdrwjDxo>(`0C_^`V$aDh^ansi?`au%PqVzKhmAGOU(<4au-@A2)A_QNqvMu`v8ws4Odr3bQ1y~fRBulc z@qQ!TxJ9@6u%tC(+v489ct z-&&)wA-)yFxA=fs)Hgofm(j}Dh|8FqQO0B|1DzlD&199~mW<^?P}UBWk%VXB35AC9FP5xzbxqNJ1D`(+0n61t} zU7)9bt*u&@I{J9SH7eJ~2Ri!L=49;|hWdL4WQBXm8!uM2PaE>6>i0<*{F-F^Vw{^C zYF?aFwEmPE>*SAAoBV0c za{u|~Aw70UEHh@0#m`I+%RXG*82_of`tf~!jDOj94@_O=e)k7I=&0|1FGi-d2C{G= z7jxaso5$=~{`as)fB*aVpZ=wsZZ4dO?|(0#{-~hjnUk{KeaJ4?ykY|tnqs`)|DO3! zUb&-ue&hcB_rZCu=Cre>XEIr~qILPY^{W`kKIHf7tfUP+^cYF|C`|<(eE83D`n7_k z9np`|BdRbd?-JdUc+Zd)@g6g0+J@-;q8LK#T)TYYE?oM%E1MaO6_b)uxeo}Q1 zo%YVGF1oj%Ywd|`2@k5{w2xIQPJ2(b?^I2vJsca1)p6QKw7PJa2Bp)PVdG16+-ngX zDklx1(>n^*_Ubqtc(d{l?KFr^-!|_LPpab{A98X;7Z}w#tvf6Wl9l zaP=h4>S8-bN}xELV`&?z2hG~v64D5%?RvMYH$1D3Yo`!zYshC%4x-aLU$x@&URSL+ zy}MN_PVeqnJ+=F1LFGM5+|2NxI_|HC+gKw`-y4_};%r>#b`t+S>^i>*z3jD=zIW6T zgx{VCPuIx>xHX9tT>)Wfre|7My-wp<)<5OXav>Q6o&bIdNDl~Z0QLh<1OE)^`Ep$CGU88}#TH0@Sus`g0i4>!)S8fUi^-o( zb4hE?hPhN(bD0Q|#C{VJ@dye^7X%5T4|}8Qq1x0!8%HnI zw7c`!cbZQGJi26A(|0!=yqU8e$?ISK%C9@$dvW7afAOV9XC40A=l&hKXz3>RbIANC z_0j>pF)^Gh9Ukggy06&HFW>LtgV*=@2XY|~FYUQu2j{>AOM2o_v!grzXFy$^b!3t1 zm5SWOzj|`$5i31q`FA_(BFy_S&bl&)nbEDKPk;G$Ip22%@0T_jfTzT_qJBtnAo?N6 zQ_5x7o6e_1i`)&vwl5wi9ta(HpxlExuQMBvwtDj=&6GaKa?{LsPA zNUW5{0X-Yf`5%pkF=V%*(dSnG@1ylvcXeXd%4X=A!5_ju!anWKZs58e*bZB_V?2pw zC)|Attao9KU>nJQbPUjM1-wBwlt?STlI$IuP#QR!1B>93x@0?WFCb~Y6Sxc53Ty*( zmhaQRJ%G;pX+1O#;Jpgo==OFztacKwQ*5$hH8L&$v<~<RW+Lz-_>0;C4XsmDXtZEI&{(Wc{ta{tPfye@iaL)8{Hf-yA;Q z`kX4$@A~We-(zA?WDfn5wp#UT+;dnU%y8hNoPYXy0MP;oRGy}foaVJ=_duIwlpYC&wmu2Xe?Wp z%vwHc{qLVmaym_EFJvw~T|R*es9>~qK4t&^LF&l=w58}F?V{tWX+xCb7y&&2F;y% zZhJe`aaxDSW>u(;)4Hfu+#%w!_C-|QcLA-36sq(5ARGS z44?Y_`u}(1_}GuZX8wP@t4yMP`b_UFo1FaNx3N7&_j__B-T$CnRZyI-@xJ1^@s6 literal 0 HcmV?d00001 diff --git a/SAF/SAF.Authorization/bin/Debug/SAF.Library.Security.dll b/SAF/SAF.Authorization/bin/Debug/SAF.Library.Security.dll new file mode 100644 index 0000000000000000000000000000000000000000..3dc7dd4dbcfd0ffdc22d2d973a797bd4390a5178 GIT binary patch literal 3584 zcmeHJ-ES0C6hG4sXh8}n1c{(iTM|sn*xC{ViSDw?M`@v@Q>$nbIy-yWj-8#^+?hp| z2knC-`e0&WOiYvnpM2rL2Z+SP7c~-N&_6&Q`e29;CMHH7c#&Dt zVMRMt({+L%jLniVbv-b>z${MMW;HA;Yu&mvgQ@GO14I)>C%t=dGM7%#GWGSZHC7Sf zFCBxm17M=((1|t*-I2u26CA&^B_QUxab83l{Nj;IyDxuvVb7K;dmu0DowM@?xmy!nNjth>*~+bJFK*0*r5ERls#LGE6SgYRF~Y^d9IZnKDKwAFuT6QD6Rk-jTSYOIu+47?UKG44 zxGeaa;3k809uqt)=m;(eo)^4oToTubf6n}UtTRA+fmt1hzUZDzIfK51Y6o)fr8nqa zJUonBfm^6w=tl&H1@{Q%1;+%B3!V^k1U=w3vXJS+!21Lr5F8PFQm`O6E@%tBAm|D% z(oX7HN-B4w`}#QqkCx;>^nH4Ed+9_XVBB{!EZ2SY6tz1lR@wJyEMJcoLhYS(VlND) zba>h;E8SL~GF3&@$PKmcmB?;Hv8r0r>Xffs_CWb4Qq_{*7*~yBPF3Y&9Gg--R%E$x zsGG$HJ-j?5fs8|%?TQ<7KJc4sz|jqB4Yoblr3I;0gXdQK$>qu6sJlE=B? zl$zBX-w$6><>}B@5tUWoW%RG+<+p!6{`HXyuUy@<`kT*QrPXGKvAu75U(ZKp=VrH# zF2CMo8b%*OM>j+r9o_O+tipr9L{ECZ@$q?(X_KkemfeFyCkvr2`u93D^Hn_1h}ISO)?Y&r=%K+~Yc zXp)YB9|Il)&Fzz}pMFp70E4cdyV1=wk57v!lXY{n9&2T~v(VMhUdd$` z_wNw;Fzuodp+;zw9;e;(1gwc>aL*f3omgxG#NszaWK$mAEt-JOl2lAn1H27wm+BH# zEHh=;`Qme@#6JOzig@En)S$zatk42-XwGv*FWHeY?5eQSv?x_ebmt__$*#H0l literal 0 HcmV?d00001 diff --git a/SAF/SAF.Authorization/bin/Debug/SAF.Library.Security.pdb b/SAF/SAF.Authorization/bin/Debug/SAF.Library.Security.pdb new file mode 100644 index 0000000000000000000000000000000000000000..d82e737e5ff3bd18325dd965f7c5d1e5d6af7bee GIT binary patch literal 7680 zcmeHKJxjwt7{2<|rdq0lh?#GUpmX@0dY%rGbm3+n^0>-x|A#emzuL3(SUH5uQF;T`GTMmSj!aR@0zP|@85!(o$ z1yn`<;tpEDVm;6(i>+Y2M0%EFfkYumlB7t|BofmZ0puSuphD*FGFDEqj~sFe%!OpQ z5j_0b_)Rm+>0)R~b_=V^I^&jT7u$J>$ZZWKmE5PFo5}yBY{?EC8bTan; zmY@bu=ZFQWR-_uZDijl!cg-E}|Ln`{`|7oQbYFUSyQ!=_ZqS~7-0s+iotDG&PUGC_ q#;yNRO~^kc6`yk=<$sU-7QO#@4WR!q2Sl0yxcekz1Y`unjKB|9B|BCC literal 0 HcmV?d00001 diff --git a/SAF/SAF.Authorization/obj/Debug/SAF.Authorization.dll b/SAF/SAF.Authorization/obj/Debug/SAF.Authorization.dll new file mode 100644 index 0000000000000000000000000000000000000000..078e0770bfa4dd70e1198eb322c6e6b668b8cbec GIT binary patch literal 7168 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 literal 0 HcmV?d00001 diff --git a/SAF/SAF.Authorization/obj/Debug/SAF.Authorization.pdb b/SAF/SAF.Authorization/obj/Debug/SAF.Authorization.pdb new file mode 100644 index 0000000000000000000000000000000000000000..5f94a24b2a12fc934140268b4ff215ac863ae84d GIT binary patch literal 32256 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 H*U|F_CPs&w literal 0 HcmV?d00001 diff --git a/SAF/SAF.Cache/AssemblyInfo.cs b/SAF/SAF.Cache/AssemblyInfo.cs new file mode 100644 index 0000000..9f89a32 --- /dev/null +++ b/SAF/SAF.Cache/AssemblyInfo.cs @@ -0,0 +1,58 @@ +using System.Reflection; +using System.Runtime.CompilerServices; + +// +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +// +[assembly: AssemblyTitle("")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("")] +[assembly: AssemblyCopyright("")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: + +[assembly: AssemblyVersion("1.0.*")] + +// +// In order to sign your assembly you must specify a key to use. Refer to the +// Microsoft .NET Framework documentation for more information on assembly signing. +// +// Use the attributes below to control which key is used for signing. +// +// Notes: +// (*) If no key is specified, the assembly is not signed. +// (*) KeyName refers to a key that has been installed in the Crypto Service +// Provider (CSP) on your machine. KeyFile refers to a file which contains +// a key. +// (*) If the KeyFile and the KeyName values are both specified, the +// following processing occurs: +// (1) If the KeyName can be found in the CSP, that key is used. +// (2) If the KeyName does not exist and the KeyFile does exist, the key +// in the KeyFile is installed into the CSP and used. +// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. +// When specifying the KeyFile, the location of the KeyFile should be +// relative to the project output directory which is +// %Project Directory%\obj\. For example, if your KeyFile is +// located in the project directory, you would specify the AssemblyKeyFile +// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] +// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework +// documentation for more information on this. +// +[assembly: AssemblyDelaySign(false)] +[assembly: AssemblyKeyFile("")] +[assembly: AssemblyKeyName("")] diff --git a/SAF/SAF.Cache/Cache.cs b/SAF/SAF.Cache/Cache.cs new file mode 100644 index 0000000..628d875 --- /dev/null +++ b/SAF/SAF.Cache/Cache.cs @@ -0,0 +1,241 @@ +using System; +using System.Xml; +using SAF.Configuration; +using System.Configuration; +using System.Collections; + +namespace SAF.Cache +{ + /// + /// SAF.Cache is an object caching service that + /// present the cached object in an hierarchical structure. + /// It uses a pluggable object storage mechnism or cache strategy + /// to storage the objects. + /// + public class Cache + { + private XmlElement objectXmlMap ; + private static SAF.Cache.ICacheStrategy cs; + private static Cache cache; + private XmlDocument rootXml = new XmlDocument(); + + + /// + /// Private construtor, required for singleton design pattern. + /// + private Cache() + { + //retrieve setting from configuration file + ConfigurationManager cm = (ConfigurationManager)ConfigurationSettings.GetConfig("Framework"); + //load the cache strategy object + cs = (ICacheStrategy)cm.CacheConfig.GetCacheStrategy(); + //create an Xml used as a map between xml expression and object cached in the + //physical storage. + objectXmlMap = rootXml.CreateElement("Cache"); + //build the internal xml document. + rootXml.AppendChild(objectXmlMap); + + } + + /// + /// Singlton method used to return the instance of Cache class + /// + /// + public static Cache GetSAFCacheService() + { + if (cache == null) + { + cache = new Cache(); + } + return cache; + } + + /// + /// Add the object to the underlying storage and Xml mapping document + /// + /// the hierarchical location of the object in Xml document + /// the object to be cached + public virtual void AddObject(string xpath, object o) + { + //clear up the xpath expression + string newXpath = PrepareXpath(xpath); + int separator = newXpath.LastIndexOf("/"); + //find the group name + string group = newXpath.Substring(0,separator ); + //find the item name + string element = newXpath.Substring(separator + 1); + + XmlNode groupNode = objectXmlMap.SelectSingleNode(group); + //determin if group is already exist?, if not, create one. + if (groupNode == null) + { + lock(this) + { + //build the xml tree + groupNode = CreateNode(group); + } + } + //get a unique key to identity of object, it is used to map + //between xml and object key used in the cache strategy + string objectId = System.Guid.NewGuid().ToString(); + //create an new element and new attribute for this perticular object + XmlElement objectElement = objectXmlMap.OwnerDocument.CreateElement(element); + XmlAttribute objectAttribute =objectXmlMap.OwnerDocument.CreateAttribute("objectId"); + objectAttribute.Value = objectId; + objectElement.Attributes.Append(objectAttribute); + //Add the object element to the Xml document + groupNode.AppendChild(objectElement); + + //add the object to the underlying storage through cache strategy + cs.AddObject(objectId,o); + + + + } + + /// + /// Retrieve the cached object using its hierarchical location + /// + /// hierarchical location of the object in xml document + /// cached object + public virtual object RetrieveObject(string xpath) + { + object o = null; + XmlNode node =objectXmlMap.SelectSingleNode(PrepareXpath(xpath)); + //if the hierarchical location existed in the xml, retrieve the object + //otherwise, return the object as null + if ( node != null) + { + string objectId = node.Attributes["objectId"].Value; + //retrieve the object through cache strategy + o = cs.RetrieveObject(objectId); + } + return o; + + } + + /// + /// Remove the object from the storage and clear the Xml assocated with + /// the object + /// + /// hierarchical locatioin of the object + public virtual void RemoveObject(string xpath) + { + XmlNode result = objectXmlMap.SelectSingleNode(PrepareXpath(xpath)); + //check if the xpath refers to a group(container) or + //actual element for cached object + if (result.HasChildNodes) + { + //remove all the cached object in the hastable + //and remove all the child nodes + XmlNodeList objects = result.SelectNodes("*[@objectId]"); + string objectId =""; + foreach (XmlNode node in objects) + { + objectId = node.Attributes["objectId"].Value; + node.ParentNode.RemoveChild(node); + //use cache strategy to remove the objects from the + //underlying storage + cs.RemoveObject(objectId); + + } + + } + else + { + //just remove the element node and the object associate with it + string objectId = result.Attributes["objectId"].Value; + result.ParentNode.RemoveChild(result); + cs.RemoveObject(objectId); + + + } + } + + /// + /// Retrive a list of object under a hierarchical location + /// + /// hierarchical location + /// an array of objects + public virtual object[] RetrieveObjectList(string xpath) + { + XmlNode group = objectXmlMap.SelectSingleNode(PrepareXpath(xpath)); + XmlNodeList results = group.SelectNodes(PrepareXpath(xpath) + "/*[@objectId]"); + ArrayList objects = new ArrayList(); + string objectId= null; + //loop through each node and link the object in object[] + //to objects stored via cache strategy + foreach (XmlNode result in results) + { + objectId = result.Attributes["objectId"].Value; + objects.Add(cs.RetrieveObject(objectId)); + } + //convert the ArrayList to object[] + return (object[])objects.ToArray(typeof(System.Object)); + } + + + /// + /// CreateNode is responsible for creating the xml tree that is + /// specificed in the hierarchical location of the object. + /// + /// hierarchical location + /// + private XmlNode CreateNode(string xpath) + { + string[] xpathArray = xpath.Split('/'); + string root = ""; + XmlNode parentNode = (XmlNode)objectXmlMap; + //loop through the array of levels and create the corresponding node for each level + //skip the root node. + for (int i = 1; i < xpathArray.Length; i ++) + { + XmlNode node = objectXmlMap.SelectSingleNode(root + "/" + xpathArray[i]); + // if the current location doesn't exist, build one + //otherwise set the current locaiton to the it child location + if (node == null) + { + XmlElement newElement= objectXmlMap.OwnerDocument.CreateElement(xpathArray[i]); + parentNode.AppendChild(newElement); + } + //set the new location to one level lower + root = root + "/" + xpathArray[i]; + parentNode = objectXmlMap.SelectSingleNode(root); + } + return parentNode; + } + + /// + /// clean up the xpath so that extra '/' is removed + /// + /// hierarchical location + /// + private string PrepareXpath(string xpath) + { + string[] xpathArray = xpath.Split('/'); + xpath ="/Cache"; + foreach (string s in xpathArray) + { + if (s != "") + { + xpath = xpath + "/" + s ; + } + } + return xpath; + } + } + + + + /// + /// the interface for cache strategy. + /// each class that is pluggable to the SAF.Cache must + /// implement this interface. + /// + public interface ICacheStrategy + { + void AddObject(string objId, object o); + void RemoveObject(string objId); + object RetrieveObject(string objId); + } +} diff --git a/SAF/SAF.Cache/DefaultCacheStrategy.cs b/SAF/SAF.Cache/DefaultCacheStrategy.cs new file mode 100644 index 0000000..1e63ce2 --- /dev/null +++ b/SAF/SAF.Cache/DefaultCacheStrategy.cs @@ -0,0 +1,51 @@ +using System; +using System.Collections; + +namespace SAF.Cache +{ + /// + /// the sample cache strategy implementation which + /// shows how you create an pluggable component for SAF.Cache + /// to customize the way object is cahced and retrieved. + /// + public class DefaultCacheStrategy : ICacheStrategy + { + private Hashtable objectTable; + + /// + /// constructor to instantiate the internal hashtable. + /// + public DefaultCacheStrategy() + { + objectTable = new Hashtable(); + } + + /// + /// Add an object to the underlying storage + /// + /// key for the object + /// object + public void AddObject(string objId, object o) + { + objectTable.Add(objId,o); + } + /// + /// Remove an object from the underlying storage + /// + /// key for the object + public void RemoveObject(string objId) + { + objectTable.Remove(objId); + } + /// + /// Retrieve an object from the underlying storage + /// + /// key for the object + /// object + public object RetrieveObject(string objId) + { + + return objectTable[objId]; + } + } +} diff --git a/SAF/SAF.Cache/SAF.Cache.csproj b/SAF/SAF.Cache/SAF.Cache.csproj new file mode 100644 index 0000000..8c6d271 --- /dev/null +++ b/SAF/SAF.Cache/SAF.Cache.csproj @@ -0,0 +1,103 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SAF/SAF.Cache/SAF.Cache.csproj.user b/SAF/SAF.Cache/SAF.Cache.csproj.user new file mode 100644 index 0000000..c8340ea --- /dev/null +++ b/SAF/SAF.Cache/SAF.Cache.csproj.user @@ -0,0 +1,48 @@ + + + + + + + + + + + + diff --git a/SAF/SAF.Cache/bin/Debug/SAF.Cache.dll b/SAF/SAF.Cache/bin/Debug/SAF.Cache.dll new file mode 100644 index 0000000000000000000000000000000000000000..766f9ba7261f50ff05297469813fd2db104133f0 GIT binary patch literal 7168 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 literal 0 HcmV?d00001 diff --git a/SAF/SAF.Cache/bin/Debug/SAF.Cache.pdb b/SAF/SAF.Cache/bin/Debug/SAF.Cache.pdb new file mode 100644 index 0000000000000000000000000000000000000000..a878cce77f4d7baafb754a3d3481f2d2b0eb2e67 GIT binary patch literal 22016 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 gE*p@Il>?1f15*aHvj+t literal 0 HcmV?d00001 diff --git a/SAF/SAF.Cache/bin/Debug/SAF.Configuration.dll b/SAF/SAF.Cache/bin/Debug/SAF.Configuration.dll new file mode 100644 index 0000000000000000000000000000000000000000..0bb5aa8f83ff6d08796c8305e44ef118a5f1a409 GIT binary patch literal 11776 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 literal 0 HcmV?d00001 diff --git a/SAF/SAF.Cache/bin/Debug/SAF.Library.Security.dll b/SAF/SAF.Cache/bin/Debug/SAF.Library.Security.dll new file mode 100644 index 0000000000000000000000000000000000000000..5ca26adec0303738c54d6a8dec6f8f17e9e8d5ee GIT binary patch literal 3584 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 literal 0 HcmV?d00001 diff --git a/SAF/SAF.Cache/obj/Debug/SAF.Cache.dll.incr b/SAF/SAF.Cache/obj/Debug/SAF.Cache.dll.incr new file mode 100644 index 0000000000000000000000000000000000000000..2a6536101a8a7ead35e55fac096f058d5c423f7f GIT binary patch literal 1348 zcmcgsO-~b16g@3ig1feR7s6ybcxt<-W(NU#W+(Ok2w(<17akyfE?Ns=f( zfYOtVW*>llnv5*%ByEsZ#2jXE6PGcC8@P@c6o~w3oM;0jL&sR$IrVMpZRTQ63!R`V zU=n34p@gffa*Z>C>qWSzAVh$O=0GFQ{W;byW1hGPA2uFxFT^Ub2N-9>80|bJ=r0g6 z(BQ8%<9y;(c>Ku7$k*hv-LGWwG+qGHgpP|zk?b|Col~sT(x?6J*J>hB%ioMr)~Lumk2}jm77Qn!K+SYF&oKyQ|R`xw25laz|XiJ%v|KoD0^jMz0jR(>yq&8VgB7T{^1$KYGPyr&Qu@^2oXE<+OLXfJN>{dnE8ok?HsFtP6We|JDDV@mHaFO!+Fo6N!!WH-4Xd-6~7 s`NQ+|H>{M#{+pW8R}MR;&U5It&NH}bb(GESY9uF<+`^$wFI1%1FJ5-xY5)KL literal 0 HcmV?d00001 diff --git a/SAF/SAF.Cache/obj/Debug/SAF.Cache.pdb b/SAF/SAF.Cache/obj/Debug/SAF.Cache.pdb new file mode 100644 index 0000000000000000000000000000000000000000..a878cce77f4d7baafb754a3d3481f2d2b0eb2e67 GIT binary patch literal 22016 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 gE*p@Il>?1f15*aHvj+t literal 0 HcmV?d00001 diff --git a/SAF/SAF.Cache/obj/Debug/SAF.Cache.projdata b/SAF/SAF.Cache/obj/Debug/SAF.Cache.projdata new file mode 100644 index 0000000000000000000000000000000000000000..14d746a2a34184ddd2c4cc0a6c3c4094be20c023 GIT binary patch literal 21640 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 O&RxunhQB`^Dcl7. For example, if your KeyFile is +// located in the project directory, you would specify the AssemblyKeyFile +// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] +// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework +// documentation for more information on this. +// +[assembly: AssemblyDelaySign(false)] +[assembly: AssemblyKeyFile("")] +[assembly: AssemblyKeyName("")] diff --git a/SAF/SAF.ClassFactory/Class1.cs b/SAF/SAF.ClassFactory/Class1.cs new file mode 100644 index 0000000..2b966e1 --- /dev/null +++ b/SAF/SAF.ClassFactory/Class1.cs @@ -0,0 +1,46 @@ +using System; +using System.Xml; +using System.Configuration; +using SAF.Configuration; + +namespace SAF.ClassFactory +{ + /// + /// class factory service, used to obtain the abstract factory class. + /// + public class ClassFactory + { + private ClassFactory() + { + } + + /// + /// Called by the client to get an instance of the factory class + /// + /// factory name + /// class factory object + public static object GetFactory(string factoryName) + { + object factory = null; + ConfigurationManager cm = (ConfigurationManager)ConfigurationSettings.GetConfig("Framework"); + ClassFactoryConfiguration cf= cm.ClassFactoryConfig; + XmlNode classFactoryData = cf.GetFactoryData(factoryName); + + //obtain the type information + string type = classFactoryData.Attributes["type"].Value; + Type t = System.Type.GetType(type); + //creat an instance of concrete class factory + if (classFactoryData.Attributes["location"] != null) + { + string location = classFactoryData.Attributes["location"].Value; + factory = Activator.GetObject(t,location); + } + else + { + factory = Activator.CreateInstance(t,null); + } + return factory; + } + + } +} diff --git a/SAF/SAF.ClassFactory/SAF.ClassFactory.csproj b/SAF/SAF.ClassFactory/SAF.ClassFactory.csproj new file mode 100644 index 0000000..3824290 --- /dev/null +++ b/SAF/SAF.ClassFactory/SAF.ClassFactory.csproj @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SAF/SAF.ClassFactory/SAF.ClassFactory.csproj.user b/SAF/SAF.ClassFactory/SAF.ClassFactory.csproj.user new file mode 100644 index 0000000..c8340ea --- /dev/null +++ b/SAF/SAF.ClassFactory/SAF.ClassFactory.csproj.user @@ -0,0 +1,48 @@ + + + + + + + + + + + + diff --git a/SAF/SAF.ClassFactory/bin/Debug/SAF.ClassFactory.dll b/SAF/SAF.ClassFactory/bin/Debug/SAF.ClassFactory.dll new file mode 100644 index 0000000000000000000000000000000000000000..18a003206c8f229c55be378c4d5987227e644992 GIT binary patch literal 4608 zcmeHKUu;`f8UNiI+xgSht>Y9{$g~@!XkiT|ZCdDH47+yHnl(*Yr_m@C?X`X5dcD5a zTwiZB6DWJAU=o7yf;3(yO$>OT8i+B$3+fx{GdzGaq>85s-cacS<@bHQUhFsm#!Dr% z?|kQc=bo%wdJQ80Vyq7z0`IVul2!coutjn5iFcFu`S_igcZ{=lX4bFO zTUImhYk}RcDz@kOp;dOQpzT?8&nm2ztcG88GW+&T9FB%wTLR7+BlyuzSF;fd?;$y} z$4CGZ>R;j&9VY1rOmG2!Vv$pY!S(qBI^PU=-+l5byWu3dlFa`ItzTeYY<7I z<|?q48pz^VSe(3ZrNMSK&J>I~;%%nf1w4<)@|U^KEb=aO94 zQ%En2;9KNz%+%CGz@|C3pOTRN8GA-wW;3yO%=A-i_l^6LY=VPS^3$aJDMC7yip`NV zk&Z|5CwlVv*`1uOMIseXCFVXtn~5Xisrb~~M} zg;Jq(|84KiiI4sH?CS?^{%-p1gSU=Rp8wqCQf^slChyv<*0Nm*{h)K%FTZfP;FR07 zAyKATEi>q)FP$=?h|2!Fcr>$+S^Vt63DQ6uE^&=c%zhL2HQO=zFk1?Px>sw7#_c$8 zobBwz67G|hZJj-Ru~=X`#=Y8-{wdezR9YBdGLy&>Cvn4U5WlDR3t|GlH)Y>~v99E9MoSQ!FWd zMX{oI9XD_uS5d(%YPb#$v8`@g9>nk6#K1IG@XqSp#-ui`Kd(#y<68x7ufFTp2$ z9T*RJA2i89$|bKtd5AhGPgCdRpCs0P_4JRI-iW>Hjep_0dolLQuV3Ccbo{+nM=TgI z7}Lp^Wf%%(+%gT*97#+r#Vup9NG2v%ggl?5c9M7AwP+@iY%a$2@=Wl$6k;m+){Ao)p)H|?OYcq4m0ZdDLBVxb?7G)YcgNAx z7wN-Ka14I7KP>+r5s)t|_?^@zMc&yIxZHhp<2SLt{j>Y^F>vqZgSgPrelZ$I-Xz-}qb{?+#^9(nvv8UD<}w3| z%(+cwo|MD-l3CY$_0XbxFfW0h#lFKq4f+&Pt4`b6E+bu2odvGD`#X-Z#DMt#}M4^~K2lt#FX`5}i3ijob(E^RW84#xZ?*-`3Ua+=GI~bx>z#bpKOq&*&IAjhd{jOwT)9)dw9% XgZrq!>i*A|J^82{_;B7w8G(NR_#bZ# literal 0 HcmV?d00001 diff --git a/SAF/SAF.ClassFactory/bin/Debug/SAF.ClassFactory.pdb b/SAF/SAF.ClassFactory/bin/Debug/SAF.ClassFactory.pdb new file mode 100644 index 0000000000000000000000000000000000000000..5360fbb03eab5d697ac7f3d1e355823bb57e3f50 GIT binary patch literal 13824 zcmeHNO>7%Q6rN3t>!b~2`v-NaVyJ&-Tsi|Wl+Z5%* z9v~+WIaEL;I8+F=S5yuNQ7H$D3*tgKaD@Yc3sn#jK0w3w&FEAYx zz<@untf_M)u(0%Z=T2VFeEF@OxG_RM*6#vrn^<0k+jsKFHMOk-s%Ksv|8~m_b0H}f zPkq*PxpMr)OTYj6gSjy7Ja7GU{E2}{wb}EN4IX? zx=Gzla%ics>5`QpBB`8JDrKxxxlo*&mJjhrsw6~WY&v;tl87W&Wzwx8A7m9;3s*Xc zJyY|v9!(oj0@PMS4Dx6u7Wo76#<!28iQ@Tm*|k?WhYGS5P=WPTomS6bP=rjr8^e$~ptnsV!!d`RREZd>K!zb% zr(RbGcZp&?A(L~&N^|?ca)ut5kNWiC_56$wk0PI|5@+#xzDLdzR@p+ad?$4cJ=f}$ z=iZPdj_vF%5F^mAKZxk9RD2TGsh2L5<2Lt;$A_MFEn zzzjg5+z6I8_e<=9y*PI}Otb9+z@LB=Fu2M`Qob+D1gH<&A;*sUAiG=aft-D^-BskV zAGVtZCo%5%M5bi_HpjgO?HD5k!I9?oH2Wd&{ovep9|S)Jjy#*+-41|r561iL3*ZCb zZ-e6+&VC1c2;7I>e8K`ofg`|S;4xqXdOZ$Aff$~5$npM#cHHmPoEVFdC}+lY-0Qt* zN=spvCynG<&{5e5h2tTX&LlBzokN|xgeW&sz zyT#*j52zr|5V5D_{EyY(jC1dD>N-019H!7# zwbA-tZ;h>O|LP2|Qm<-nP-R;GN)qkEdodLoxB~DTs_uVy7PJ9!p79wg@ciq&<3EGL z`*{&96;shnHkU3%o8KS!+-`WR7z0T3KkS-A;j2ij_b|YtwWf8H0QJppfZVE~+mT-J zTbOrz=YYciUQ>dM*F`Q^B84TzKLQ literal 0 HcmV?d00001 diff --git a/SAF/SAF.ClassFactory/bin/Debug/SAF.Configuration.dll b/SAF/SAF.ClassFactory/bin/Debug/SAF.Configuration.dll new file mode 100644 index 0000000000000000000000000000000000000000..0bb5aa8f83ff6d08796c8305e44ef118a5f1a409 GIT binary patch literal 11776 zcmeHN50D$>b$`2(c6GWt+4sl3Grq&R*oHHAKA*9{0g}}B&-jA>VVw;a7kf{)*2$K% z@=9kcjKL|z2?VCVxP`O{V|&ten9`Y~kP>&GxYL%Fw2(=g&X6<((xKFu$%HmdGAWbR z{k`|?N~@EMX{IynOtW|U_IvMr-}~P8{(YZT+Pdd43K3Bl_r;4uU&WKJjRHRyoB%t% z?2qE~eA8=vU)8p});BeqDJBZ8lXk6KB4y?CPAM^MC)~MwB9l*yZ%-z2&Wt_O+8SHo ziQX|mv_%Wi=bzoa(Ie5@6z^-+45F(*!Go{6#sLzz_v0pNleVt(W&-Ok*J(h|`QmjE zEtLQ2(?f+v6ouR*xAzl$Mh);d-s1#O3!3MzA?m5+d@z=P>_Cqw@XY~ysAL~40iR(* zfG2D9^adtZ0$L5ZMK=XZblZ;xFSH+b;Mxdx4Y_vKK}Xh=PT*!)gSZ3NMxxOGD$R{p zKVPgH4;daHdZU|2W8%+obqwni_r~e{XvOr{;ejUSM`Y3on+w@~hbO8z>_h!KU z1?cO*S+SVmwBg}y1=VS1Y6n2G*)l-UYgh&tK^cb{%5Z-db~4#BEu@2s+lSK+TiD zJP7R%w8H=ySZ@P+B2ImK-U>OU$YG*;3udgh=is1c(#LBQ>Uy+Gt!~-i7n+>Ko{__y zVra-^d(4ynh5u>!Z(*LM%jn4PwoC!O{{{!&mD;FSa)IBRygr;kIyR{}OIRl)$!#a|O_V^bVuV=r9MU&AbM- z)TkM2<*T?9{Z6nJOmE;{1fcS7Nb&_ajW}VVyMcA#Bx$5t%n;R@O{JKZFAd~JeEDHY zKpz!{OmvfwUl%`@j6)3c^~^&~EA;G)bvEnAm=O{^2d9FV(%SJ2+H9^~5M;*&uF_4( z_I~7#!7Zbuh_V}NZHhX*cs4m#0>+GvFw7dv0oVjK;(6U)Z?pz4d}@7JW3Cd?NNCM;pmayL zvm^3mB-#;y>JgT$L207Z6x%>?ED{o`7sm?}l1tT5j+GF74HOiZwn}Y9*$nH)7#0DH zm~OZ)ctK(mSAlXIV#1*QLxl<}8OO0XF%?^{1e8%kJ{ZT5icDQzp+YI+cuY|zD^z&e zIF4}UzK1H*1XB^LOntIKy^5*W2$*`VLd9U?IK(I)Hi%K!#`iDedNImG_caK)M2v>$ zYV^fQ+Vl`R*YNj}P&k;w{g4=I9w5m}H3pe{nK6BVF=4tM^B|28bD~ohVaiA(jXJG;RxevU$8 zFAtfh>bnFh=9QRTey9WcIwI=eMKJ*o}LW zBb)dh8gudoGU++jDrKDfUT6B?-f??+E?v(XD$GptWTVMXj%r@1#uRj9?a=Vhx(&nE zF_R*c1x%pgF29fH5j^>DvpiXHGx>Cpdpv?foI(L!zAH&@M5vlycHwRL<*2aOWAQ9cQFpjEgLutMjL27J!=h==2FgexXI_TDgh z$LKx!Hcsi!Xiwu))&_lrZqQFde~&O;6=qnBSP_FB5%}8z&kOvPz#j^1HMmc|z!8Ca z1eOKjhhgJ%*+15R5;JGUf=@j*oJTJtSBM?5)w4wHTs!L|+Nbw(IPT z&k1}^;NJimv@Em}aCK-m;7Di>;8f@?z)WZw@ZQh?z*C`vfTu%wNZ?T#Jr`nlF3hkg z!g6*2?nq!c^g#DH*j%HmU?=HitrOw%B@cU3TY^u>Eq&bcB>favgi0P}>dUbH(}F1} zQF_ti?blZ!8hbdvFfIoyM)!JHSziNd&!UJDJ>LCPkj@MCDf+(tu}XD#CGulE4iBp9l?a7KksS$? zccOQ-?$9P+PYK2{x6xvHwt~fh{VH}!-)3EOTCkJ!QfL`<(_ed7bJ!)E6i}*o?H>;x zMV(&nVRwc*aUwYCVcGB~>ikn4b~Jn+u-iE~G4Ap3gS3oJd)Qg@Owbz&lhr2ZM;`BG z@cJk#fq#;|A=oJodrPnvJ?w{qz2jjQ1#6K4sVvw>{R*Qck!7e3n?3B>$QoKsrv+1< zX47i)P1Goj-V(UYuwyXg4uO`y zjKISJ%K|?o@F9VZ3;Z15DahkUIzvA&eiL!=V`CX$uX%=^p&QKKL3`XB749FRoiblU z`(E>J;n80)zej&UkC{K9SLv+zBT&9<{tS?%eZzx)Za$3m8|IbTcd0KriaOFAvbD8< zN3`$J{n1CYf2F6RPiX&6zX$FadOiAE8f$V!)3kq#{sHp&0_a1?$8Tvvh<%1j1+Ei# zlfW^7w+KuMyi;IG;30ZTdlu)=7_|Kwy^dYupGemhY8_gawp?4It|b1L_&1 zNjT5z_cRYv*T=RxGjmz{6I8dA56xt=lq;qjH=CKJWVu+fbF_W>pq(nw$XsdG&X+PN z+4O5p0QG{Tx8r8+Y0!DhO3m78ygES8Sk@{QH(9BYc{)xUfm+*~QszKI+ibOqMQD8M zoIU5Q+B-K<(sqwzQuB#o^r72xS;D;y?|sRF`~hdQ3@aYUWNq=O%GeZldBj1=p5JYuAdS{VVZAAFRRI0LZUFd^iQDFo!Of)@*U<)ud!HM;ZaXV|3lbLkBp0(R{i_or~F*cVi&AAPP zO}W;LowM9S4aPWyvYScImg-q>+RR+40b|U`6|8)@end@r)w9R#V#>`F*tGS`sZ1$o z2QQ+>Ggdn96tVkoNx?_WG}oT$XjK8mxpY~Dg31Nhn6ui+W5+_?urCl#X`~7lRXD0L ze9ZC79Hs5jz6!lq(@S`h*b%oMkmhbHJ7?3JUr#Y_rM9w^9hNKm0_Mtdy&apiTuP!) zmnwpY>o*6aJV&rI9kIB?t4cJPFP5x)3PCb6Lx=1#D>Lq-<~ZnRi(}1jtl^$eaVS!K zzE88b_=!1=qH{r1B4sQXM!rldssc|FM^m==LdQ~tP}%g*C3*O#;*Y>sl8&awCl_j$SLfbI6Q~SUMkb5 zgFVN}6HH&Um6h{(+nwU?3=i}EE3#-}4Xwdhwt&AZWhg}!mGE>ZPsK}e?xc<2Ta+W4 zK8}wvTI6c_Wzu>JnZ|P?U;o%9J<@H zs*lyp)9j*GR_sD!ypBsr92YzK7F1XR%eApj96BNzvu<>Ql3Gh;U+f4!1ib?Z7X`RB`vYetyl-D4zI1l zmsa%zU03xiOH@(h`_-oettq+N!FihYY{OQ{5$$40L5u9foH$k;skA%s3{2CB=+POM+Pl# zyi&gsh*cL%z$Pj2JjWFE*5WGHe4o$)&fj3~T6|vbjw0eIhd&#V*}5r2X;F0J$g0|7 zzCUQeEJlftxEJ4 z7w*5}{1>xZ9=>a5e$=^;py&(t?A^U&{o4?;zlBb zNm#1RKog*2YE8#GYmZ0myLikUal;HjnYeDmBc#Q9(V5y?qh^?iy-*Sq6Y3hQX>TaT z3^dRLE5w@jU|hQuH%aelw|b$!4qB@jg#iAyum;`efsz)cVw`8lHJg$4R!rZX!2*r; zJ8)-2c)Qi!)6U%?!(@Ry?T6z%y`b>jewelCMx&djT?F-Y$XNu!A|_z{ct2S8rTwTi(8KkBciI$N&1KI^-9v|DzV* z?=1-LyXi!&g6bQu;RbZ>w;A{C`|)!#B))$QhSsCG8?|^J-~{bNYZ6s?8}LcMO=$D= zQuw|9RBr+`diTNiBi!caF9{c4^5Lm_ZU4dHsX?lR3Z`ni4ViiD#Ex`XA)}_iyermAnw37o_|8oItw;5Q4e%x(Z>zD3I$j;;eU!i4OWEqAGyG2p<4?cGX^<;S)@eP$$(QP;Sy6Eklf52ahbJQ^IwR9b= zlh!&~PuJpmG5)0;ep`ueHZ-x0+W&Z;%LX*6o<#Vx%X`}Vv)vF*Xnf-3pB?hLw?K!q zNMQ>Uus+_!(l~oy2ND~o^;P>RPt0Ik4&z*$HrQIK@094b-IKv*5!TPQ4P&x%!BgtY zc@R9U2FTyx9;U^yIEw6U^Tpd=MWuPSR;YRto736D}G&(PrT;GU6rT}!*Jy>{N_ zt?TElUeen7;b|AI-I@?4x&O(1T)x1y!VZrbe?I^mDE*t8Ti^M0BmAavpzZ!+AD!Xl z`1o%s4}O!|{lL^^O>OG`nE^nTC%^u+Q}ue*2p?z;3=j1z-P7Aw9A4UU!;azZJ%S}Y zg9Ced_Z}GP9_bw%*ipQ{I509WIMTbPx5quHh+fh&oGh&)m*L{j{k=WKQ=;uJ4i9(l zEq?Jp@xbT|K1~122AY63Uz(owR)MQoKr>JTT7YT56yORHE9G%O&vtPyE%--Z<@YDR zRG^z-ph2(@{88{f5&seJeBeXC`5#W~y7T70{?Jcn9p0K8yW`(a`sNGkZu|N#{>R_V zI()OgpZ>(}eP-64pU!&znj|^Vvhn#^E#3}Wx5JtlaB3%9dJDXbE;s_4_H%si^=Fxu78ttZ(iFM!Jp3np9LlZl4eQroxojyZ1Ziv-N2`Tdw|P;%Yk{oZvj^T zl2S>&q+Jp$Y1XK?0QeY?rT0Y58?@zrC&L-tV^}pKKalrJ@T&^zxE(RLm%yD3%`rrDtmJHZjWcH|5Tbhexlg9R_<|eJ?8sW@vK)jb< zzmtyBd@V~zCI2G}4z1-h2iF7EuVeMU$w`(i66*lj4gZt!i>gcr-vY}fy5zsLHoe#K z%>mVG2vAzZ#c4mn8nim?@sL(=aoVAbv^Vlh`6@0>JDWOH=c{K*D;%et12d}AzQr@8 zRa~6*UuWd|ry;H4;pPX@8#4wj-f!iqklJg#6D&|Eug+|4a94-Ku$@ z5zY(;CQAP!LaZ+q%-VWrc%;}b-EP-Qw)gjG&B1-g`XyblYZ01e|D0{cW(S?gHBw2* zb_p~=c7lbgNUk|UWhHkNM}~TFP2MS|;KqSHgG2q!IZ4!o$>dpw!Q03~^hPtD`dyRE zbM<0KIxLS&*VYBCKCG~dR*Fm8a%*VIbFRXEEu(k^#&5H1q>8p|_I^&^r2hSV#eO`m zzEx_|4%+h!1X>dr?ReXCM*H8%#*({=d-{q!axK%2i_3Cy*MWhN-u@!-{WzNk_Kqnt z>XRwt!CW$CpD3;TXZXA_(k{3DTSgM<+SLW_LK{z=O%9`xx)Nc(a| zdie#RP1BP+l|LI(P58#mrrPAwJ8$`Rt|zMh#gl1&q1Ld5r$W{9lb&hb6OQL6&GFS~ z|8q!tzRdr(hk5#Zoc|}P|KFi+rE?V~AzhL)1=)EIx+`bvmo&GdlS|iv@j;ia1G5e+ z$#3-LFMm~%-w2zaq%koU+z!SrD6IqI>nYs|M)#Epc!>(h0^oA|Tki; zfA#2p=}VG}Ce?pE-TkTlGrcESybuK?5s;pe-m_;lcRedMD*L+!*nb?-UMIoiTRL2F ze*{o|dj2D@!VKVXcjf$|CGi8lXi4ov#!JYy^nPh67`^D^8{56~S?)gx{vsHEY3cXD z_)JSrfNuhS4~(>zUIcf7Cnw930y{kgc7h6cL<{T~6=-20`Fy~81MZ@4MvsSy8vp+Z z0T6Hh3=rOo5C}idAK{(r2uWK8svQhGn= z=Y@Eo%J?XPOGh8FOiNBLl(xN+zFp50=DEN66Sc3DJ{;?U`YHtEZ}hi7fmJ~*Qo~23 zZFdQqh%Z&ei=;9rQFt;@{r?b!s@#7F_>bY6?t3XqSo&M|JrsoS=feHRgIvr-G3fa( zf*d^*@D&07BG4@h_-7&CZw34ZAwT6I=-`j=dx3rm4AcFA5Z@o-uMhQnKH$%V`dk<4 zBb_C>=R-MPv-X5~ydCoC4(Z*xgr052?e3Hper<`rJ&ikvV`ifIU*+cUb$)rBzqQzNV5oQG(2}m9L;FVt z_YQUM-**UdFAJXc+x86=yLZb7wC8pBj@Abm(K=b-a*y2KIkE3(Yq5K%XP+-#uA|OF zTZRU83hs8+@t(ggLG@$uQ6Ba9k4|U%PQ~|Ryf~qbAzbN^`-|<_d>vPcnyCKwen0Q) zJKelc_tKwZjx$>y#N$jdZ+;Qu(WM%=gqTOHIh(ig%&`xh(s8IC7tc^{PeQzDCti;w*_?SoTFTRTA?{a1GW4uwM z_;MpWX@yQSmhNouWup53Sv4#K_Hdei$hEaSQm&ncB1VW0ZSdd+*rK90nzO+N_9haW z!|Ra``GM8ka@r*68}#R+^<46!F&M`m+}}O2k7wp1j`b3n#El(IN1|8$#8=Sok0vRT z!5e}Mz8V&U_z=>7|D}1DO1OUL+E?tkZ{wb==&^3;F;a>D6V?9{F^`+xV$L0Nd}i@~ z*mN{)GydEZ_~RUrJijL8j+@(?zhnGCe{JQ6dU0rL@4$T<2SRr^9vz3bCvk3x*3zF% z8LgD7+ID6Zk4(h1rppv=}l+1UT_d^lImfBfo~zxt)d?v=8EyKdOQJSeE#r{B?WU}T@> zCqKVc?BP3~cug;QcLiaEPhEt$1!89ZE4TSQs=VCdQnLC>>+0^=SM;U$cb-(YnuYWz zwa>hqx@Jqd`nrdQ*LU}f3=SQtzac%M+T*F-M?2!f6&>;#Y%XtH)NW5q<$Mj%c1L|w zbrD3X{ZUP-SL-oQp^TzhRH6Ub zbwOZnzr^}i@A#FpN4f-DNP3e(a&?-A()x98Q@U=Zp8XKe zUhA`91?}6(U#Ea%xII?wp=xcdGX;_c?V-*GYwuJNtmm@lySP_f)`L62w}52>Z2;d1 z#*b0@Joq;7m%*FCUj>t<^fdS`@H1e1KBWSywke4`YuXE+&ovw%Okw3v;O&+IwJ31H zv5?H;*^UTbl(tX2^=r1KbOgn`y(jVY-450$xEEYVzLaPWIPM?6PH9TlJ8>TDy_FV1 zOS?*D|GobBP5<$C3NJL>&hz&Z8up*peCmty@%&Fb{u#4vzm>ec0KY*p1OL=wY{GV~ zpVYt%LFY5(y6ZQOg-4tj_g8jy-0uC;i<3>{^*7vn32iNf{rW{)ru#U?O|`ALB*)fF z)_1M#TC;q8ho`o3vdg_Bc{!BZO8r&tGvDYKqukVXteEwZHC>%6)~#OO7Al=z?%d=s zg&idAQ-I3dGJj)ExucBFq;tix>swd0Eepks!QVN_778hm_z^(mZU4)zyz(jxQo0!Z z?9be)z6u}l$o>5&J|sD!ly9;`R;>3MiS9|@!+^!-`9$14-zn^?nIEUI|95)!|BS!F z#^aTmEC^dXa({8iH9ulO7^cl{Yp|YM=Qr*_4iDqEq_}dUqZT`^wo$*h!_yoJuS3 zwy@a{M@X;ym3Kea3NwJm-IXi1q-lXUqa|CpkPO7v<4BFj=iF_a>jVw^?id_j2Y&HA8)8`d@RjLahHe zi`)DTiCmMb^#2Q_mHxN*yfJ?|_k^q4TxPfy=; zQh3%Q_ZM5B`Fl~@>)ro1nzP9V&4=~yA!~2-T-^UJVg$LlyT<_y50P{Hb&Q-_oCL9-XR;R`367Jj=$P4c}$Qy%_kxafjq6Ae-=I;5hIGZ~`dM zNi%^<0nx}l638|XX#NvO-wUMQ1RCE0$(caB6sXMFYoff(56O0utAlJ-T_@zvyyvb} zmxbY4^i0mnRvmwr>vw<~g=w?OGCLW&JY8GytVDA6 zj+^t1a6cKZbb*zct*uz=xOyrNWZeb&GxdE_|B`%gtXE0}Jj_O?vc3J)l%7?L%U(!& ztxv85bFKF(p;y@(D)R95Np>Fa$mOvdtUOkLeIAwme?OOJ`~TssTWht0SCU7k%VV_v zU%VF&xWl?We)=`?J<`e*e#a;VLoSa8k^-YWUeA6-LPUVq&TsJ~_y@pi zz)4^c!>S$V10DpP0*(S&7rX_`q2uIZ-2&_b4gz&va6YbJMFPRm+WLrAn2%vjC{}I;;v9E-5PA8nX_y4--=lUNT%jqWhqO^yC zK6meb$``ec``eQ*c(32-O)d*Cjx_zq3!RNw!!{%;|lBaGLhK<3wf zd*X2ro%4WhGV-p#9)aV-VRz@BZwlAbzz>FN(w$T9e^00J8nd%P{WKOd$0{&>U7u+_ zmn}3C4B&AT&sQdz&!@288|zV>UQiHEU*`ICfO#UZZ=A@Fqa;8mvbG;DYyH{1f4}oy z>-?}dU(SbbPz?1B^z`oU?%U=+R8hT7n-O%p^$X%>hdgx_LG2W5kDk@k*|kpmxICI%J)OUj`wbz#TK!Kt z*Z-1P^*=mu{qKF{_4hxdV}Ac*Hl3h0N}s8lXn)!TS>OMN)2shtIXLL<{rd^kJk{QV z>1yL?-2cb*kPyoVb!oQ!jiig0vUmYa{tMB)N_wTW_%Zvx@%@((@mKs?3AXRQ#Qk}u z``=`u=9sG32_J0-iQe@8gQ+Z(zyG1JBbijl)BoC&VXxtRfA=Hrn;-EUCuOHoXwuDg z9lx_S)_bU@;)5US`%iy`@5K!{`<7LF?rvlL_n(Y*%rTdvbJeDJ{G0yQdddQ8$>yi5 zo*DXI`qbjbQy0@!=2zSvbdly43s+H>XRR*AvpT;2Wi;cd-v_n-rEjp&#ky>)xHDR1vxw6c-P!L=5<4p`%WCUa)~*6N7vM`bOm@JcoA5>BGw(r zRbbgfJS+Kc$Xt~a*l#be;}hGsb}DxcX?5mfEwBT45O^H;F)*I*|Ji<%{09oX9=X5N zyZP^%gU-ZX>rOcPm$vR6>htsJVN$*Ut>`T6c*nhTWZA~5ZL@2Ph}XcFW5n$Ha=x7V zbnl;)&!)t2`v-@d?I1eIK^&)bfnHqK*n#~Oaf9xwb9WDkA2xREz13&PL~XPEe~lT1 zSpUz1=jId6vi~K&7C#<7TiqJ{e`fn%{Vg44VLtucjxKY?-E0TxEwf#@bZ6U+fS&`70WSfs07|F1L?D?LNNxn;zd&sfD8HKa#n`Xp zI9o#HNw2D&Dsy(YR=Mo0yXPvKvFff>{#D^xby&=`*&$vxXWJo^k@`4P9=0}i$c@Yi z<@XVG^4!m(P3c@rmC|!{)U8C3?i-GpH}Ds`eHX3eF6ACOp|lr_td{&)I(@6|YG5I- zIkj74@2GuhvyBCYX=?A#?viYd%fJQvZ)Wd^&X3`2I(X#h&tV;3?oJ@Cu;u)q+7$ z{yny`E&3V^qR$-9-r-vOwtiQfcxiLFidMM_(71k=FO%$Z=YQm)+2^H%mHz*Sc_g{9 z`0MhuM47$eP=u z*0?P2c2vAZxH0sd>NXGA)%RcY4oDwRv8*D#+W%|z-yPWw>tswm5e3-;3&FAn7K7!# zU|(GCF_a4Y;$Z4z=xp4j@qp=d4O zbj35|Cm+1>&^#%+ScWgl_-0+2r=xj)zj2`XggPd`nDdGG2g-8~`?IHc|L@z>O~Gsi zUBeTZdzs_^2+uWtD4cHInSQYM8npMM(CB~9hg04ET?e^iC2M^>pMOB<^j z(9;Tb)=}3yYW^3n@zTDgSYaQA54noBJK*bDh?IxXoo?Q$o@E}4?Uyp!O>|RfnA)bM zKLR`kJOyaZISMF9&kEKBkjx0wK7sP6Y2W3%Cao2s>Y|`IQ`ag->qA|uysN{t%99S& zbCuZzm@UAidoEf9$xo}hs$4^s*ASm%?w;%BZsj3cK(xx+^fcX=p0UvyLUqy_VmVlA zd)Wf?ajC!wO#d4XmHDae%1?SoA59!G%QM!M`6U`!-ZRKTey{ zaUSPKo!!~XHt;smt^scc>l{}h`L~I_i4o@~-iU{)pUJxB`vrgkymf0P+ECISOT1?C zz2){_lGmr;8vtfA^R5MU01pC>14n_EfdpTPg44}l`DJNuvI?xcY>$m>W^wDn&>+9_ z&XtW%VYS!%|4;d3uFt}yCjVxW=}*@6T9HRf^m zzwvdO1~(z*D|Kt$YkXZ>9Ox~x)s?HsbPIH%v2-6KzP8c6O|(zr>h}U4>K#{hj$tvv zpzw2#+~2A2_4~$G>@KPD^ve@A5t34}yPfhEk%#Dw=5+B`DrH)xJXZR;^5jvr15K;2 zv-oal_)@ak2ui*&#|JohZ;47D&zns;fYG9PXgWkVoKM30GH+mBo1fYtJBe4hD&O>*Xf&rQ#CC}0ZP_2P zALfB&KgIAS@50Uqu{OJ7r~zf{}=E*;8(${cS@cwmn5Dy%i+yVK)+422s{9M3ea^2 z(CVHSurzERM>dil8%^n$qKVEo1(H0Jv^VuG*UU@qYjS$N2$+N7S`4fOb^-^1M}cnx zF9UA?1&HEnrwx+hP-|4~qNo|*KLShg{scfvC*4TmOz=XmIQ&n<%c7kRkf{sVU(C#P z-`5;WU0F`snyJTF0_4)!kkz-7E}pvd?VV~VN^~6qLwx@_3Pbph`6Jwm0u_D_5Pm46 z`$etPoKbyk+&k%Dx|DDkPS97ELUm!2S=ro5LzyAdz z#0wc3=o(N-_jLs+G(tfBMt=)Qd-=v+!FI>*QE7e3CgMx#mndE&l|hLrpOo+Bl`r$I zRL1DgKKfCOC(^cafCT{apz{fA0BcU(3G@M)lO6;P1CIkofaie46y64`1-1Y?fPKIS zpvG(O@G(H|DLw-n1^x!mcVUhLZva{k7U087;8I`_uo7qoHUZm#-N1g}OTfdxqrj7Z z&OiMCcmen^@G78peclC_&=S3CqqF70?`nLOL!f@Gnys|!?Q zN?71um|Pt_YhC4j<9Ls3be~rJFhw7ZN&Ry^y?^f0FQZc}y}l3T(z{Pu>A6qupNI4q zL2+GLGV0QjgtRzjt_gLKE!2|af6&Lu^JzmKZRI>(K^9uZ_z;fe;nRjZFs7^?CuyV0 zBj-agmWNLp^5~Y|%ky;}o#65?Piy#)iqZM_K(|Xi9#5y=5~-krCr0Dr0!@$3`+6Gv z?uKY&-P8(Z8(6&cXQTf=IQ>6@zrlX_D*ka6lOHc9p}o7yvU&`=pd}goQ4yo_@qw;b zmb>FEL00{tz{(%nK+ufdrwjDxo>(`0C_^`V$aDh^ansi?`au%PqVzKhmAGOU(<4au-@A2)A_QNqvMu`v8ws4Odr3bQ1y~fRBulc z@qQ!TxJ9@6u%tC(+v489ct z-&&)wA-)yFxA=fs)Hgofm(j}Dh|8FqQO0B|1DzlD&199~mW<^?P}UBWk%VXB35AC9FP5xzbxqNJ1D`(+0n61t} zU7)9bt*u&@I{J9SH7eJ~2Ri!L=49;|hWdL4WQBXm8!uM2PaE>6>i0<*{F-F^Vw{^C zYF?aFwEmPE>*SAAoBV0c za{u|~Aw70UEHh@0#m`I+%RXG*82_of`tf~!jDOj94@_O=e)k7I=&0|1FGi-d2C{G= z7jxaso5$=~{`as)fB*aVpZ=wsZZ4dO?|(0#{-~hjnUk{KeaJ4?ykY|tnqs`)|DO3! zUb&-ue&hcB_rZCu=Cre>XEIr~qILPY^{W`kKIHf7tfUP+^cYF|C`|<(eE83D`n7_k z9np`|BdRbd?-JdUc+Zd)@g6g0+J@-;q8LK#T)TYYE?oM%E1MaO6_b)uxeo}Q1 zo%YVGF1oj%Ywd|`2@k5{w2xIQPJ2(b?^I2vJsca1)p6QKw7PJa2Bp)PVdG16+-ngX zDklx1(>n^*_Ubqtc(d{l?KFr^-!|_LPpab{A98X;7Z}w#tvf6Wl9l zaP=h4>S8-bN}xELV`&?z2hG~v64D5%?RvMYH$1D3Yo`!zYshC%4x-aLU$x@&URSL+ zy}MN_PVeqnJ+=F1LFGM5+|2NxI_|HC+gKw`-y4_};%r>#b`t+S>^i>*z3jD=zIW6T zgx{VCPuIx>xHX9tT>)Wfre|7My-wp<)<5OXav>Q6o&bIdNDl~Z0QLh<1OE)^`Ep$CGU88}#TH0@Sus`g0i4>!)S8fUi^-o( zb4hE?hPhN(bD0Q|#C{VJ@dye^7X%5T4|}8Qq1x0!8%HnI zw7c`!cbZQGJi26A(|0!=yqU8e$?ISK%C9@$dvW7afAOV9XC40A=l&hKXz3>RbIANC z_0j>pF)^Gh9Ukggy06&HFW>LtgV*=@2XY|~FYUQu2j{>AOM2o_v!grzXFy$^b!3t1 zm5SWOzj|`$5i31q`FA_(BFy_S&bl&)nbEDKPk;G$Ip22%@0T_jfTzT_qJBtnAo?N6 zQ_5x7o6e_1i`)&vwl5wi9ta(HpxlExuQMBvwtDj=&6GaKa?{LsPA zNUW5{0X-Yf`5%pkF=V%*(dSnG@1ylvcXeXd%4X=A!5_ju!anWKZs58e*bZB_V?2pw zC)|Attao9KU>nJQbPUjM1-wBwlt?STlI$IuP#QR!1B>93x@0?WFCb~Y6Sxc53Ty*( zmhaQRJ%G;pX+1O#;Jpgo==OFztacKwQ*5$hH8L&$v<~<RW+Lz-_>0;C4XsmDXtZEI&{(Wc{ta{tPfye@iaL)8{Hf-yA;Q z`kX4$@A~We-(zA?WDfn5wp#UT+;dnU%y8hNoPYXy0MP;oRGy}foaVJ=_duIwlpYC&wmu2Xe?Wp z%vwHc{qLVmaym_EFJvw~T|R*es9>~qK4t&^LF&l=w58}F?V{tWX+xCb7y&&2F;y% zZhJe`aaxDSW>u(;)4Hfu+#%w!_C-|QcLA-36sq(5ARGS z44?Y_`u}(1_}GuZX8wP@t4yMP`b_UFo1FaNx3N7&_j__B-T$CnRZyI-@xJ1^@s6 literal 0 HcmV?d00001 diff --git a/SAF/SAF.ClassFactory/bin/Debug/SAF.Library.Security.dll b/SAF/SAF.ClassFactory/bin/Debug/SAF.Library.Security.dll new file mode 100644 index 0000000000000000000000000000000000000000..5ca26adec0303738c54d6a8dec6f8f17e9e8d5ee GIT binary patch literal 3584 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 XgZrq!>i*A|J^82{_;B7w8G(NR_#bZ# literal 0 HcmV?d00001 diff --git a/SAF/SAF.ClassFactory/obj/Debug/SAF.ClassFactory.dll.incr b/SAF/SAF.ClassFactory/obj/Debug/SAF.ClassFactory.dll.incr new file mode 100644 index 0000000000000000000000000000000000000000..69fec692ab85f0cbcb445b1455515515bdaf5b02 GIT binary patch literal 1284 zcmcgrJx?1!5Pc?mD1nMdDN-$>Kq;_{NU&n30UJj~KqL$TDHORo-+_}mAG%vWrXeZv z6Y>jEKu3e3w8)_V3Th;N0tFu}1#b=;Y>7yui03pnyKm=aX5Y-^%T{1}c3B&)8e1*7 zMU^$Qp&UO@nSPb=y_J${2WoIo>E%+W9PU)8{lE@YQ5?0e?6P4Jb&OD}z&0gF7=MQR z&#%=k08gnRZB*HJQ?nSy80PREY0P2NIDuoiO?id2QMyv?8Qc&+@eXE3{qIc zJo1=kmJeJNxSv7^76SMPsSY&aJRfK7MdXMZ@L*$|X92ztTf-1N64YTNY2Oelpu(>; z{XF7DxO_xn@=EO-U9ghvXal?>)T&CdtX@+aYl@hfKRv!;O@}qw(k-lMfs9W!RU|Fy zDg1tQ-T5ch!?nnLzY3gyT*R^1IJt9qqmWOI*5du7GZlK6>|~iX%RZP`#ZuE(KF=I_ zEb&CTs<{@dk(+i&{jqv>PHrY@dsxv8T-IaWRTCfBPY55qC%+=wIN!q8 z$X!*B=f`LK&wu6TVOHzx)P@(&xsdf1Rc2gj5u!frexEtosMg&uKe1wG7%Q6rN3t>!b~2`v-NaVyJ&-Tsi|Wl+Z5%* z9v~+WIaEL;I8+F=S5yuNQ7H$D3*tgKaD@Yc3sn#jK0w3w&FEAYx zz<@untf_M)u(0%Z=T2VFeEF@OxG_RM*6#vrn^<0k+jsKFHMOk-s%Ksv|8~m_b0H}f zPkq*PxpMr)OTYj6gSjy7Ja7GU{E2}{wb}EN4IX? zx=Gzla%ics>5`QpBB`8JDrKxxxlo*&mJjhrsw6~WY&v;tl87W&Wzwx8A7m9;3s*Xc zJyY|v9!(oj0@PMS4Dx6u7Wo76#<!28iQ@Tm*|k?WhYGS5P=WPTomS6bP=rjr8^e$~ptnsV!!d`RREZd>K!zb% zr(RbGcZp&?A(L~&N^|?ca)ut5kNWiC_56$wk0PI|5@+#xzDLdzR@p+ad?$4cJ=f}$ z=iZPdj_vF%5F^mAKZxk9RD2TGsh2L5<2Lt;$A_MFEn zzzjg5+z6I8_e<=9y*PI}Otb9+z@LB=Fu2M`Qob+D1gH<&A;*sUAiG=aft-D^-BskV zAGVtZCo%5%M5bi_HpjgO?HD5k!I9?oH2Wd&{ovep9|S)Jjy#*+-41|r561iL3*ZCb zZ-e6+&VC1c2;7I>e8K`ofg`|S;4xqXdOZ$Aff$~5$npM#cHHmPoEVFdC}+lY-0Qt* zN=spvCynG<&{5e5h2tTX&LlBzokN|xgeW&sz zyT#*j52zr|5V5D_{EyY(jC1dD>N-019H!7# zwbA-tZ;h>O|LP2|Qm<-nP-R;GN)qkEdodLoxB~DTs_uVy7PJ9!p79wg@ciq&<3EGL z`*{&96;shnHkU3%o8KS!+-`WR7z0T3KkS-A;j2ij_b|YtwWf8H0QJppfZVE~+mT-J zTbOrz=YYciUQ>dM*F`Q^B84TzKLQ literal 0 HcmV?d00001 diff --git a/SAF/SAF.ClassFactory/obj/Debug/SAF.ClassFactory.projdata b/SAF/SAF.ClassFactory/obj/Debug/SAF.ClassFactory.projdata new file mode 100644 index 0000000000000000000000000000000000000000..18e6bf41a398ad01caedbc4470dc4daaf54bef8d GIT binary patch literal 2440 zcmeH{%Su~O6o&uf1%qI5Vn7Mu5GSc%R45K44Fp9g6e)JvK{dupNpi|bgvNcrv}6tlD-8dNVhDRj3TWcT2`cn zTB^EllM`v!85noon!>84O*Q$g!YkNEiq*z;1>F)}-&IDJ@WPWGmNAL7paQX)M9Fph zpZ24J|ISo)6<1Z)7CGDcLXSICo@5<#nWZdkrba}cUOwf%tn;r>3fbKmvMsagul^0Z zryDq?SbNtt(>BW!aD#vu=*-I@jQ8tpOg3BF&&QhjbaWM5Apg8P*|tZ5&~5YtX0zPs#gx5;UUwn5aE z+f|%T1m<)j?4ar5r;q57)mJq4XiY`^#xI8I#A-NR)n{qZ#zvT8Uck4o zu(7tZ^(lM_{np+&#_OOUf{-27S!?fg-&y-V>rW;+#Ojh(0u!V=mP|&G(z@mpsjQj` z?px(V>UIXkowo+CDr!?zehctC_K_-TU^|a)2Cp^EqKkRvO%KZ$$C^@xSXH8=oBnV6 z(ZPo^&AN&UDrt+H4K32+4wc7QJ6&dJh&B^FqE9dX<-V-*B`AUH?hM(M*|k^u2ENk` zoKUR2Yny4C<)3hafHCNwmqQru*V~wEwzf}R=5B)HtKb}YeUZr!G}8NPy*8o&HU*cyCS~=wjs#T;9Juk`w-8f_K^%R?KI-M%ieaIoQ7!2M6J19 z-uXmePAkF=nihWgh#pyeMH8>ql+_`A6{tk4vf~B)0ym$=TW)I7^zu~G^2%!BQMC9b zDz1w(tj3zK9fYD+kzH9~SMoZ`?_I*M6F8q5}TKN%#. For example, if your KeyFile is +// located in the project directory, you would specify the AssemblyKeyFile +// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] +// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework +// documentation for more information on this. +// +[assembly: AssemblyDelaySign(false)] +[assembly: AssemblyKeyFile("")] +[assembly: AssemblyKeyName("")] diff --git a/SAF/SAF.Configuration/AuthenticationConfiguration.cs b/SAF/SAF.Configuration/AuthenticationConfiguration.cs new file mode 100644 index 0000000..c0f9558 --- /dev/null +++ b/SAF/SAF.Configuration/AuthenticationConfiguration.cs @@ -0,0 +1,71 @@ +using System; +using System.Security.Principal; +using System.Xml; + + +namespace SAF.Configuration +{ + /// + /// AuthenticationConfiguration provides + /// access to various configuration information used by + /// SAF.Authentication component. + /// + public class AuthenticationConfiguration + { + private XmlNode authXml; + internal AuthenticationConfiguration(XmlNode configData) + { + authXml = configData; + } + + /// + /// Retrieve the type information of the principal used by a given application + /// + /// application name + /// + public string GetPrincipalTypeForApplication(string appName) + { + XmlNode appNode = authXml.SelectSingleNode("//Applications/Application[@name='" + appName + "']"); + string principalType = appNode.Attributes["principal_type"].Value; + return principalType; + } + + /// + /// Retrieve the identity information with a given user name and applicaiton name + /// + /// user name + /// application name + /// + public string GetIdentityForApplicaiton (string userName, string appName) + { + XmlNode identityNode = authXml.SelectSingleNode("//Identities/Identity[@name='" + userName + "']"); + string newUserName = identityNode.SelectSingleNode("Application[@name='" + appName + "']").Attributes["id"].Value; + return newUserName; + } + + /// + /// retrieve the SAF user name with a given application specific user name and + /// the applicaiton name. + /// + /// application specific user name + /// application name + /// SAF user name + public string GetSAFUserName(string appUserName, string appName) + { + XmlNode safIdentity = authXml.SelectSingleNode("//Identities/Identity/Application[@name='" + appName + "' and @id='" + appUserName + "']"); + string safUserName = safIdentity.ParentNode.Attributes["name"].Value; + return safUserName; + } + + /// + /// retrieve the information on SAFIdentity and SAFPrincipal for a given application + /// + /// application name + /// + public XmlNode GetProviderConfigurationData(string appName) + { + return authXml.SelectSingleNode("//Applications/Application[@name='" + appName + "']"); + + } + } +} diff --git a/SAF/SAF.Configuration/AuthorizationConfiguration.cs b/SAF/SAF.Configuration/AuthorizationConfiguration.cs new file mode 100644 index 0000000..bf024b6 --- /dev/null +++ b/SAF/SAF.Configuration/AuthorizationConfiguration.cs @@ -0,0 +1,91 @@ +using System; +using System.Xml; +using System.Collections; + + +namespace SAF.Configuration +{ + /// + /// AuthorizationConfiguration provides information used by SAF.Authorization component + /// + public class AuthorizationConfiguration + { + private static Hashtable providerTable = new Hashtable(); + public XmlNode AuthorizationXml; + internal AuthorizationConfiguration(XmlNode configData) + { + AuthorizationXml = configData; + + } + + /// + /// Retrieve roles/membership information for a given user + /// + /// user name + /// string array containing user's role information + public string[] AllowedRoles(string name) + { + XmlNode node = AuthorizationXml.SelectSingleNode("//Permissions/Allows/Allow[@name='"+ name + "']"); + if (node != null) + { + string[] roles = node.Attributes["roles"].Value.Split(','); + return roles; + } + return null; + } + + /// + /// Retrieve specifically denied role/membership information + /// for a given user. + /// + /// user name + /// string array containing user's denied role infomration + public string[] DeniedRoles(string name) + { + XmlNode node = AuthorizationXml.SelectSingleNode("//Permissions/Denies/Deny[@name='"+ name + "']"); + if (node != null) + { + string[] roles = node.Attributes["roles"].Value.Split(','); + return roles; + } + return null; + } + + /// + /// Retrieve an object that is used to authorize + /// the access for a given user. + /// + /// + /// + public object GetAuthorizationProvider (string name) + { + XmlNode node = AuthorizationXml.SelectSingleNode("//Permissions/Allows/Allow[@name='"+ name + "']"); + string provider = null; + if (node != null) + { + //retrieve the provider from cache. + provider = node.Attributes["provider"].Value; + } + else + { + node = AuthorizationXml.SelectSingleNode("//Permissions/Denies/Deny[@name='"+ name + "']"); + provider = node.Attributes["provider"].Value; + } + if (providerTable[provider] == null) + { + //retrieve the type information of the provider + XmlNode providerNode =AuthorizationXml.SelectSingleNode("//Providers/Provider[@name='"+ provider + "']"); + string typeInfo = providerNode.Attributes["type"].Value; + Type type = Type.GetType(typeInfo); + //create the provider object + object providerObject = Activator.CreateInstance(type,null); + //cache the provider object into the internal hashtable. + providerTable.Add(provider,providerObject); + } + //Retrieve the cached proivder from cache. + object ap = providerTable[provider]; + return ap; + + } + } +} diff --git a/SAF/SAF.Configuration/CacheConfigration.cs b/SAF/SAF.Configuration/CacheConfigration.cs new file mode 100644 index 0000000..ef86171 --- /dev/null +++ b/SAF/SAF.Configuration/CacheConfigration.cs @@ -0,0 +1,29 @@ +using System; +using System.Xml; + +namespace SAF.Configuration +{ + /// + /// Summary description for CacheConfigration. + /// + public class CacheConfigration + { + private XmlNode cacheXml; + public CacheConfigration(XmlNode configData) + { + cacheXml = configData; + } + + /// + /// Load the cache strategy object defined in the + /// configuraiton file and return to the SAF.Cache + /// + /// cache strategy object + public object GetCacheStrategy() + { + string typeName = cacheXml.SelectSingleNode("CacheStrategy").Attributes["type"].Value; + Type type = Type.GetType(typeName); + return Activator.CreateInstance(type,null); + } + } +} diff --git a/SAF/SAF.Configuration/ClassFactoryConfiguration.cs b/SAF/SAF.Configuration/ClassFactoryConfiguration.cs new file mode 100644 index 0000000..4f76337 --- /dev/null +++ b/SAF/SAF.Configuration/ClassFactoryConfiguration.cs @@ -0,0 +1,31 @@ +using System; +using System.Xml; + +namespace SAF.Configuration +{ + /// + /// Summary description for ClassFactoryConfiguration. + /// + public class ClassFactoryConfiguration + { + private XmlNode classFactoryXml; + /// + /// the constructor is called by the configuraiton manager + /// + /// the xml element containing the class factory related data + public ClassFactoryConfiguration(XmlNode configData) + { + classFactoryXml = configData; + } + + /// + /// retrieve information about a class stored in the SAF.ClassFactory section + /// + /// name to identity the class factory + /// + public XmlNode GetFactoryData(string name) + { + return classFactoryXml.SelectSingleNode("Class[@name='" + name + "']"); + } + } +} diff --git a/SAF/SAF.Configuration/ConfigurationAgentManager.cs b/SAF/SAF.Configuration/ConfigurationAgentManager.cs new file mode 100644 index 0000000..1431597 --- /dev/null +++ b/SAF/SAF.Configuration/ConfigurationAgentManager.cs @@ -0,0 +1,77 @@ +using System; +using System.Xml; +using System.Collections; + + +namespace SAF.Configuration +{ + /// + /// It is responsible for loading the agent object which + /// is responsible for retrieving the configuration data + /// + /// + public class ConfigurationAgentManager + { + private XmlNode configurationData; + public ConfigurationAgentManager(XmlNode configData) + { + configurationData = configData; + } + /// + /// it return the Xml containing the configuraiton settings for a given key + /// + /// name of the Xml section in the configuration file, such as . + /// XmlNode that contains the configuration settings + public XmlNode GetData(string key) + { + XmlNode result=null; + XmlAttribute agentAttribute =null; + if (configurationData.SelectSingleNode(key) != null) + { + //check if there is agent defined for a particular section or key + //if there is, load the agent and make it retrieve the data + //otherwise, just load the data from the configuraiton file + agentAttribute = configurationData.SelectSingleNode(key).Attributes["ConfigurationAgent"]; + if ( agentAttribute == null) + { + result = configurationData.SelectSingleNode(key); + } + else + { + //retrive the data using the agent + string data = GetAgent(agentAttribute.Value).GetConfigurationSetting(); + XmlDocument xml = new XmlDocument(); + xml.LoadXml(data); + result = (XmlNode)xml.DocumentElement; + } + } + return result; + } + + /// + /// the method load the agent using reflection and return an instance of agent + /// to the caller + /// + /// name of the agent referenced in the configuration file + /// an agent object + private IConfigurationAgent GetAgent(string agentName) + { + XmlNode agentNode = configurationData.SelectSingleNode("//Agent[@name ='" + agentName + "']"); + Type type = Type.GetType(agentNode.Attributes["type"].Value); + IConfigurationAgent agent = (IConfigurationAgent)Activator.CreateInstance(type,null); + //Initialize method setup the agent object with the parameter information specified + //in the file that is needed for the agent to do its job + agent.Initialize(agentNode); + return agent; + } + } + /// + /// Interface that each agent class must implement. + /// its two methods are called by agent manager at runtime. + /// + public interface IConfigurationAgent + { + void Initialize(XmlNode xml); + string GetConfigurationSetting(); + } +} diff --git a/SAF/SAF.Configuration/ConfigurationManager.cs b/SAF/SAF.Configuration/ConfigurationManager.cs new file mode 100644 index 0000000..926c846 --- /dev/null +++ b/SAF/SAF.Configuration/ConfigurationManager.cs @@ -0,0 +1,71 @@ +using System; +using System.Xml; +using System.Reflection; +using System.Runtime.Remoting; + +namespace SAF.Configuration +{ + /// + /// Summary description for Class1. + /// + public class ConfigurationHandler : System.Configuration.IConfigurationSectionHandler + { + public object Create(Object parent, object configContext, XmlNode section) + { + Type type = System.Type.GetType(section.Attributes["type"].Value); + object[] parameters = {section}; + //call the configuration object's constructor + object configObject = null; + try + { + configObject = Activator.CreateInstance(type, parameters); + } + catch (Exception ex) + { + string x = ex.Message; + return null; + } + return configObject; + + } + } + + + /// + /// Provides access to configuraiton object for the + /// framework component + /// + public class ConfigurationManager + { + public SAF.Configuration.ServiceConfiguration ServiceConfig; + public SAF.Configuration.AuthorizationConfiguration AuthorizationConfig; + public SAF.Configuration.CryptographyConfiguration CryptographyConfig; + public SAF.Configuration.AuthenticationConfiguration AuthenticationConfig; + public SAF.Configuration.ClassFactoryConfiguration ClassFactoryConfig; + public SAF.Configuration.EventNotificationConfiguration EventNotificationConfig; + public SAF.Configuration.CacheConfigration CacheConfig; + public SAF.Configuration.MessageQueueConfiguration MessageQueueConfig; + private XmlNode configurationData; + + + /// + /// Initialize all the configuration objects accessible through + /// this configuration manager. + /// + /// + public ConfigurationManager (XmlNode sections) + { + configurationData = sections; + ConfigurationAgentManager cam = new ConfigurationAgentManager(configurationData); + ServiceConfig = new ServiceConfiguration(cam.GetData("SAF.WindowsService")); + AuthorizationConfig = new AuthorizationConfiguration(cam.GetData("SAF.Authorization")); + CryptographyConfig = new CryptographyConfiguration(cam.GetData("SAF.Cryptography")); + AuthenticationConfig = new AuthenticationConfiguration(cam.GetData("SAF.Authentication")); + ClassFactoryConfig = new ClassFactoryConfiguration(cam.GetData("SAF.ClassFactory")); + EventNotificationConfig = new EventNotificationConfiguration(cam.GetData("SAF.EventNotification")); + MessageQueueConfig = new MessageQueueConfiguration(cam.GetData("SAF.MessageQueue")); + CacheConfig = new CacheConfigration(cam.GetData("SAF.Cache")); + + } + } +} diff --git a/SAF/SAF.Configuration/CryptographyConfiguration.cs b/SAF/SAF.Configuration/CryptographyConfiguration.cs new file mode 100644 index 0000000..6a9db36 --- /dev/null +++ b/SAF/SAF.Configuration/CryptographyConfiguration.cs @@ -0,0 +1,139 @@ +using System; +using System.Xml; +using System.Security.Cryptography; +using System.Threading; + +namespace SAF.Configuration +{ + /// + /// CryptographyConfiguration provide teh configuration for SAF.Crytography component + /// + public class CryptographyConfiguration + { + XmlNode CryptoXml; + internal CryptographyConfiguration(XmlNode configData) + { + CryptoXml = configData; + } + /// + /// Retrive Xml contain the encryption/decryption information for + /// a given profile + /// + /// profile name + /// XmlNode containing the profile information. + public XmlNode SearchCryptoInfoByProfileName(string name) + { + return CryptoXml.SelectSingleNode("//Profiles/Profile[@name='" + name + "']"); + + } + + /// + /// Returns a SymmetricAlgorithm object specified in the profile + /// + /// profile name + /// SymmetricAlgorithm object + public SymmetricAlgorithm GetSymmetricAlgorithmProvider(string profile) + { + XmlNode xml = SearchCryptoInfoByProfileName(profile); + return SymmetricAlgorithm.Create(xml.Attributes["algorithm"].Value); + + } + + /// + /// Returns a AsymmetricAlgorithm object specified in the profile + /// + /// profile name + /// AsymmetricAlgorithm object + public AsymmetricAlgorithm GetAymmetricAlgorithmProvider(string profile) + { + XmlNode xml = SearchCryptoInfoByProfileName(profile); + return AsymmetricAlgorithm.Create(xml.Attributes["algorithm"].Value); + } + + /// + /// Retrieve the caller's identity information based on url for the remoting calls. + /// This allow a single application to act as different clients and carries different + /// set of cryptography information when making calls + /// to different urls. + /// + /// + /// + public string GetIdentityByURI(string uri) + { + XmlNode dest = CryptoXml.SelectSingleNode("//CryptoRemotingClientSink/Identity[@uri='" + uri + "']"); + return dest.Attributes["name"].Value; + + } + + public string GetIdentity() + { + return Thread.CurrentPrincipal.Identity.Name; + + } + /// + /// Return the profile information for a specific sink type + /// and identity. + /// + /// + /// + /// + /// + public string GetProfileNameByIdentity(string identity, string cryptoType, string group) + { + string location; + if (group == "ClientSink") + { + location = "//CryptoRemotingClientSink"; + } + else if(group == "ServerSink") + { + location ="//CryptoRemotingServerSink"; + } + else + { + location = "//CryptoWSEOutputFilter"; + } + + string xpath = location + "/Identity[@name='" + identity + "']"; + XmlNode identityInfo = CryptoXml.SelectSingleNode(xpath); + string profileName =null; + if (cryptoType == "Encrypt") + { + profileName = identityInfo.SelectSingleNode("EncryptProfile").Attributes["name"].Value; + } + if (cryptoType == "Decrypt") + { + profileName = identityInfo.SelectSingleNode("DecryptProfile").Attributes["name"].Value; + } + + return profileName; + } + + /// + /// check if a specific profile is for symmetric cryptography or asymmetric cryptography. + /// + /// profile name + /// boolean, true for symmatric cryptography. false for asymmatric cryptography + public bool CheckIfSymmatric(string name) + { + string symmetric = CryptoXml.SelectSingleNode("//Profiles/Profile[@name='" + name + "']").Attributes["symmetric"].Value; + return bool.Parse(symmetric); + } + + /// + /// Retrieve idenity information for the server where server sink is installed. + /// it is used to help server sink to retrieve the correct cryptography profile information to + /// encrypt/decrypt the remoting calls. + /// + /// + public string GetServerSinkIndentity() + { + string identity = CryptoXml.SelectSingleNode("//CryptoRemotingServerSink").Attributes["serverSinkIdentity"].Value; + return identity; + } + + + } + + +} diff --git a/SAF/SAF.Configuration/EventNotificationConfiguration.cs b/SAF/SAF.Configuration/EventNotificationConfiguration.cs new file mode 100644 index 0000000..cb1d9cc --- /dev/null +++ b/SAF/SAF.Configuration/EventNotificationConfiguration.cs @@ -0,0 +1,47 @@ +using System; +using System.Xml; + +namespace SAF.Configuration +{ + /// + /// EventNotificationConfiguration is used to retrieve configuration + /// information for SAF.EventNotification component + /// + public class EventNotificationConfiguration + { + private XmlNode enXml; + public EventNotificationConfiguration(XmlNode configData) + { + enXml = configData; + } + public string GetEventServerUrl() + { + + string server = GetServer(); + string port =GetPortNumber(); + string appName =GetApplicationName(); + string objectUri =GetObjectUri(); + return "http://" + server + ":" + port + "/" + appName + "/" + objectUri; + } + + public string GetPortNumber() + { + return enXml.SelectSingleNode("Port").InnerText; + } + + public string GetApplicationName() + { + return enXml.SelectSingleNode("ApplicationName").InnerText; + } + + public string GetObjectUri() + { + return enXml.SelectSingleNode("ObjectUri").InnerText; + } + + public string GetServer() + { + return enXml.SelectSingleNode("Server").InnerText; + } + } +} diff --git a/SAF/SAF.Configuration/MessageQueueConfiguration.cs b/SAF/SAF.Configuration/MessageQueueConfiguration.cs new file mode 100644 index 0000000..2b9a492 --- /dev/null +++ b/SAF/SAF.Configuration/MessageQueueConfiguration.cs @@ -0,0 +1,42 @@ +using System; +using System.Xml; +namespace SAF.Configuration +{ + /// + /// MessageQueueConfiguration is used to retreive configuration information + /// for SAF.MessageQueue component + /// + public class MessageQueueConfiguration + { + private XmlNode messageQueueXml; + public MessageQueueConfiguration(XmlNode configData) + { + messageQueueXml = configData; + } + + + /// + /// retrieve the configuration information for a given queue + /// + /// name of the queue + /// xml contain the configuraiton information of the queue + public XmlNode RetrieveQueueInformation(string queueName) + { + return messageQueueXml.SelectSingleNode(queueName); + } + + + /// + /// Retrieves the IMessageQueue object specified in the configuration file + /// + /// name that identities the message queue + /// IMessageQueue object + public object RetrieveMessageQueueImplementation(string queueName) + { + string typeInfo = messageQueueXml.SelectSingleNode(queueName).Attributes["type"].Value; + Type type = Type.GetType(typeInfo); + object[] parameters = new Object[1]{RetrieveQueueInformation(queueName)}; + return Activator.CreateInstance(type,parameters); + } + } +} diff --git a/SAF/SAF.Configuration/SAF.Configuration.csproj b/SAF/SAF.Configuration/SAF.Configuration.csproj new file mode 100644 index 0000000..05d5b7d --- /dev/null +++ b/SAF/SAF.Configuration/SAF.Configuration.csproj @@ -0,0 +1,138 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SAF/SAF.Configuration/SAF.Configuration.csproj.user b/SAF/SAF.Configuration/SAF.Configuration.csproj.user new file mode 100644 index 0000000..825e312 --- /dev/null +++ b/SAF/SAF.Configuration/SAF.Configuration.csproj.user @@ -0,0 +1,48 @@ + + + + + + + + + + + + diff --git a/SAF/SAF.Configuration/ServiceConfiguration.cs b/SAF/SAF.Configuration/ServiceConfiguration.cs new file mode 100644 index 0000000..d2ff194 --- /dev/null +++ b/SAF/SAF.Configuration/ServiceConfiguration.cs @@ -0,0 +1,23 @@ +using System; +using System.Xml; + +namespace SAF.Configuration +{ + /// + /// ServiceConfiguration retrieve configuration information + /// for SAF.WindowService component. + /// + public class ServiceConfiguration + { + public XmlNode ServicesXml; + internal ServiceConfiguration(XmlNode configData) + { + if (configData != null) + { + ServicesXml = configData; + } + } + } + + +} diff --git a/SAF/SAF.Configuration/bin/Debug/SAF.Configuration.dll b/SAF/SAF.Configuration/bin/Debug/SAF.Configuration.dll new file mode 100644 index 0000000000000000000000000000000000000000..83318a4695ff7770ccc4d73a833892dba7536257 GIT binary patch literal 11776 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 U`ah!wRJgofTKr<(_sIhP1C8aqTmS$7 literal 0 HcmV?d00001 diff --git a/SAF/SAF.Configuration/bin/Debug/SAF.Configuration.pdb b/SAF/SAF.Configuration/bin/Debug/SAF.Configuration.pdb new file mode 100644 index 0000000000000000000000000000000000000000..98a042b5cd85843f31d3c94dda2ccac541b34872 GIT binary patch literal 54784 zcmeI54Uk>Mb?5I$Pvemg4gwh@ATS6Cgb>o`18Kk*=0g&akw72;!j^4~Mo-d&`H*Ku zM%s1RFSU?RWl}3wkt$pT0q>HE9BhZh?8eywubgsi882Jq#CStel%s61yEw&SVA&K~ z1@`{_-F@!s_vYRE9-5Ja$ZP4$x%YOT{y2U5^y$-m@7praKRPltvUj|_cX{vCSGRB3 zwxNCPvW||kXI;2%TSAzYBrTwOfgf|Nu+yXF-;V$X9{G!#+C#S<|4lRev*SSfhGUn$ z_s_1?%?29>?wh%yrBizBoB*Ipli&Qt=>$D%hL1D{#zy;>?;RK{jxF!Me&<-R}q`wouwjSq|r?<{_)I6OW)GCr_(px-^Ih+ft|mMm`|m$BmLmj?QaCqz3`92@J~ zSN!6^;=zd-oK64C1!SeX@#0x&Zxy(j1GEA~pbeM>%m6MUu~Hrf^lUfxv%!A^R(^j1 z%mn%v1{ws5z`q6ld*VM1UI2UyIP=51yKlegKY#3JbB=6Fj@|Zer+xEB>u>qSFaPIX z&pC3Fzd!4--}}s*y+51t{E{Sjw{6q&SuNfHTX(>k*>GwXTzV6{oh~>En+|Y&40w*~ z*Xf25X_u1G#ax>nYU0`)SPY*&1AG>k4oIpc(YFJ40J71y19t*<0e1tJ0G9&oz;6SW z0g_gY07<lTr$NmCD^Kw8lo@O)6 zbeg@+2QC2S0aMlgtH^6La4oO~SPRImybib?_#|)x@G0O%;3l98=mvU#USJ)t9@qff z3~U580iOmo1GfNMfLnpvfUUsAKr@^;2d1k3S5k$h44imBoG!|#>VMf6v3*j@1~EM( z3tRTbCjiq!^SQnVxDaTDQ^$d+>VNCoEE%x5$m~$9wlo*X7L^@(E^r>8xk;i`tKbr z@3(z(SoInOlvZ(Z+K;matxkJ9q*Yv;cC<#?8+fLC6&I(SOP#9o)ib3Pj?>PAr`2iS z8O|YvlXyLt4efX=P7U=SwwRzKV;}{-Q?Pj)t}=PUG+)@}F$~+qkC6=^8bj z0~YZ7a$p8vwy4UE^}lq#Cl#EU4{KxM)3-a z-&T!}ineU=eoo({p#y`(Av~|XRcg~t+VeC7S`!)VWZQH~``^jNvO9`<2aEl3Ez^z* z%W`tZ!Qt_Np(61^IGcy})s-3biS!BU+PZzBwDOx_W7J5y()w=&NvM>KSHDvlRN$K)AqpQAo4*C|Q7&-=FBzeB5)zxq;Z<(J7wI#Bbj zXwHXL`jh!DEw^~crynQnOEuEV9|&!lp5&?g*_dj= zhBZ6|RL@U(rg={|o}Vt}g=Sxa;ZseTV05fNV1bU2CB#`>PqIZv0CR%dQh!rIVyWTQBV>A(|h(TbJw$CqjIQk znEl65?R64NzNNz@_eTNcr{_NbE6fHSbyv>2PczUujDX_y+Uc7nLjc6vzW{`{AOynC^GEpSFhICP!oeUEst#Q|P<%@oUn`aGM!*g?9H>f1>u4(uegfsINjm z{ziWb6j&A1A~k$M+Af!{h4@lcyhtj85``yI)&CDrsLK7@fd3f2>3)E+gr&cQ-$y|R ze=gjABFM#j6oa1sGRV;b0bdsIF9Y3*fPWtH{Z_z#5b{$Vf^Pl@zaQvlz%bn(4DmxD z{@PH_=L7y+sLwT_KGIpDdp?x&b!$(k$6FzvzL5T{kk2;*-2)-rVaw0T3*}rJ>Nh{6 zn;-K3+mP-%fo^@kEddV&y4yqgnc@Dikk4Zw{}mzre+RnHh4?=V_fysXG`AVfKn|R& z{?~k~VA$W4|GM=bvuUG#ft6t`-G)3X40+`KqPJTw4RW2_TpVB5H{PcRt+S4T3(zRN zrK!7S_UqK%k-@M|ZJ?f7UovE6|Ae(zwtv9Zm*uqh8H-~F2gm*TQLMu@O4oFl9>e3^ z|GcD+Ix&3%hNUkGhizG4rM((Xxl;n$Y<+tav1IA*4*|5a`tUl)|u`P+*9 z2S*3S4=?K-J$zt%WZ!7tf&GUe_p;!5zkUB`v2TxzKzrVR?`T7i5v`LIF7?R$ofrF# zwiWwE`}h0eR$S@?l`mcK|IbR^X3;Z9$l<~ONe>InzMBq&m8;EDcy&M zaPf=|^mh;L8$o*a4L!Ue4!3?`BF?{FH_b3&!}M`u!qz7L$0muk#g-h95F(C=!6H~ z#}*a6(VPxGus4y|9Nvh0$PcXMmeVH5;D|pTt>=;-jlnqn(1E`3{X8=tajcinByQ|z zIugC|C%%IIKr~623|=2(@RhJ2#D|au{4cFzRKoQ`@BU){y_@!KLyz@IkC96JpQ`?! zih11h7ISXh@mY)iW2U2NoAKwyz#r#`c!D*1H<=j8V=pz zcyt`zzK3&5w3hyK%4nrrW!ssxcw}-WHi$nw%Nc@&;}@T&J(f7EhY{VuOa(P;mF6=ilEl+FDg&xa4o`Hx@!>es*0*u6qFaPRdy znFj@x`}8}z503BG{N(4iiamVi6VLRb_f-&9_|!$1TOelkzi^x16UxgiE+uQcwBEk{ z{Y77jf9FYc%Pgc{seR_<)R`^m9qbz$+tAlPJ~Dc^@rLw^YOkmI0PTnmS9Hs3u%*0l zk=>q{%J~|i?T*H%8X|~R`xBa!Sxo(x&oVi$>6|yt8fSXeD{7gQ%Y82`vtAVyiaIEp zAmUsFaqbXWuh;f&jb7VpoHRa%GJ$Gwh5q+9+FjKyxCLpH*biS@7E@hfSMbQ!pi3?zl*sx%L!_3Pf2blptHCkp|EmC&3E zh924#Dc#FF`yrsc)@Q&9+P9OxP65eqd#u_+)!JHT3M38MLtOyY-l-&5&t=c|a<95< z0QZ1z2FnK82)-SRAEWen@Gao4fVY6Z1}07EDexWOr@{DqN(EMJGZJ~$v=_dBYdAod z!OEe)+bsoZQQ(AQA!+B?&In(SwoknEYqpkj1jW3)JMs110oEwE2V6+LoM;a??jOHS zX-U^RaUSfwl@>uuyGmyNJ#^Q9y-)VvR-S*5(6s-&=2KssiRXXg@z0p;{O#nmh4>AU z+4!fHViR_8{e%W)2s)oX-(A0PEIi`OxWBTq<96?#UYKkquOD;sWwf;v_G=exJ2 zZmMm~WjVHHvY~ff?{zCTbbD$mr*^p)B`<|?JE*_Pefsh4I_0LeW5ukOT-V#PYW>;` zouShC<<3uzP}m{TJ_)GYtqV5glsm!rOnO$WxVB?;=Za8V9sbTswo*um#18=~Z^wV? z%`30MAf=1Z&;HD<>Z|Z^kKEti!iOYBl=4lM$%^%UBhftpoDEofo=?Q>^PRxHn)z{> z`+p~A|Ihd4A$$}8i1vundA2K=6eu!2Vq>&F%{(}zUl-|;u3|WwWP*tNY{8y;& z`yzcv%hw!K=UYei6rnW#ECVHtw==%Bk6JD#&_ZYYva@BX&?|t(hw3JtlmLxI#c9u3 zAifBcHrvpTS7O!cHJG!8=EJ!&-|EdNyjqLseJ~$JCBBarq+(UIgv} zV{4VLm7Hye?c!|1FMzR@N_)W_;CsQ)lyr`>z)o6$6LK?>F94Szooj(Dz!G2{u$1_7 z)B5g$*2`W?D!1}(ZU+=(4^mfmrcP%}We=_ccY$vKcY|g3^?(aWe^TH{0qaV(S^*Ie zU)~|U4baL%VV+0M|0zpP`RxQG1M&4__qQeYWJw)NR4Wo}e6)OV); zHAgGN`k%A7t#6aaHMvUv|A@5G{}!J&=1=CHaCMur_Wuzi-;NKs|8I1st9>W4{}b(d z*uF`|-nQOTcxRg5+cvp5oxG4NGWOh<$eRNuyZ^u5O|G$V4-{r_Y1-^&;^ z^440~)5(9;^;GWvKW_YKaR1-ZpKczVsEk(c|7$$U#-9t{Wyie`_`z|9`16&M3F3Jtki66#ahSJQ+XikF3_K;@0Kewj63oO4sYfb0( z{|s3Ee)+t`|2{DFN_K;_?&}BN4&DPMO|lpK74UxW*TBC6ehSQ5*!la1!RGHbU;hX7 z^Lu?;+s}{exq2P~%eQ>kl{eAP@AXk_KR+_-`tW}6Rpjx2%j3SJz-W)xvtN}E5#Y7+ zTRZ{&KJY5=9MKU0UcRv!a)5OD7x!bg$<>;aVZ~m5|Qqgj4taUmty(|Nfut z)>7?s{r|G7d6Kq4xA3;rw@nEv{l72q=mo&y^XA0J|2t*x|DW#u@1*UG^grob|6^l0 z-6UU>_E6C0?)^{sqSkYNBlxpm>CZ2MyTHE>?gl>w?g4)f+zS@pp(&l{`=8eTZRB&5 z@%kK4^XtF;@i>Uic|bQEc~@YM!13XTyYtUChwEA3`@=QqK2-02pGD&}X6J z#*klD|C7%3zhqYZ4^LeGdtZ6u{SRr~?|;mt6VyiOGj$W~PrIPj_dnwF>c3bH4!L{( zenK@*wfA7U+ISlG|8YGe#4E)#?UO26e7)~K{UyE^H{|SFR`I#JP5Iw{GTORhE=T98P4W0Q{jc?u z1=fU)94 zi$G~JbzMCED)gQ^2+3~to-V3?bdO$X$9}~5GM9`C0( z!SWTc?ntf#%O>Jk$$vxU%A~-4dx0IF*v7R}x${V?Gau`KoxuITqrgvr$$bCM_M7BC zP#EyY{iWWmf72RtCjMG?!r8yHb?4}ypI48N@^xrMXK5!p?xiEkHdeOHt}!BB19iuU z+4tpqIrr(_KP#V2iQ^88j5^yvbdrNOPU`}_xUR7S`zzu`+*jxB92Gxo?AUv&Pm_t- zX8ZpdGYYZ(Z-?jR6Ru_dOMWeWGJLkWHT(b6_P_dDI?TcX`nwBV=7t|*Y%6ki>%pPj z_MZDYM0^{$5sjsrOuyT_T9)VR@l`D&;}Uj4T>s0d|2`T6scwUf!POdogt!gp=+@Dw4gSlKehjPrhp2l8bfU3zr@H=jR`AUl^=EEr{aRFi zucEzv?j-%|q3)LERM*{X2k9-dUAc5;+m3>t1&#qP0xttfr@2HRnHNZI1meFyZ4oHH zO#7n#D>=@VP94Zf6 z8$09%=7jS52)lUh=h2pQE~ZN9xjO1rqDc1*N6j1fi`~A9)^ZnfkDXB32S!#){w$ro zRd*Gz2-uR^EwXpiKDF7#0>d=5cW8G>HpeC40{%C%cSPsMaBVtxnw}-B)p!0HDn-1Q)@~&~^t#NekP{%evZ#5~X&aZL(9-y_qbiig{KTram1fBz4 z1~k6fFeu8u$5ysQUxh*Rnd8~pT#MhYZZE00IZEgy0Rl3hTNiQBD*+wF@r)udYQzx67 z;9U)SuJ$*dO}B_A{tT|O$Fz^=)+Tzcx(O7YsVj2d8})swye8ZK>Ob$()cN1a^@rzS z?LBH_&FxWZTo!mcDqbVp5c*DaYe#nV{TIChG6+;GtB9}m|C;^xP{>1mAq%rf{vFzE z{okt>akq{05^izdVG@}PJV*l3S=!0U07W*mM$TII`mair?Ygs4c|s<_cco4KO@1Dy zP#ae&e-|(a=(*Y@P<*!h)Ox4c%Z>7Ym+-NLKF=Tj)U{RV9nUkyzr|06&({8C|NH$9 z@$^*mzvM{ss?8g|FKf>m$c&pe(8F#Y)B7!!BSROa^W#SH^5d?>jX`dmjL9dWAbVgD zSoXkDu>2S7i|ajxQh{GOEMUnLlI0cp^iT}|o5qjRXhb`puk(tTKXB;7;x8uCq=9TW4DpM^H@sL4y> zQ(hP^ZLDrYPb=72M_u!%^&i2;OZ%E)g?$)4uG9ys?1j-}RzRP({S}R1=ML~0>u2qiKhq_jI zSA}bpCmpKiDzg_bTYyXVT(k<3pAL6bxrQvSAwJ36J>SjU%0sq*XqC6=X}U2zW1}^M z>ZCQqO0d@UvIXelQh^hg{x=>f^HbfGpY)JIoF8p+`7Ht8Ox)GrTfj@fg+$-M{}NF4 zZK!^JoVKLnJkF0gyR(;_;O(Tn4!i@bb6kbwUnlw|Mx38`BOa=LChMB-7Xk|K)~%Un zLrHrq@tVo^mfL?xUYmh$0GP|nyAIe1+z&hoJO{i4B=|}coNfloFH3uqHDKjsdu(Jg zhg%m$NBEt0u55e?tG(v`f6^y&eHJb?`L~)ZSFit{Ad&js;^XmH^Y@=7@&32z<@W-k zwpsT32~ndjL$!}M`m+COpH%Kg+@ zw&1XTjd{}jZ+zXZ!A*$yO5Ixb8DG~GhX=}Rb>(U@-3py(EZs+mubs4SGwsv3`n|x1 zM#q(%V_1qXDEz`B_je|I{d40hc9&Fn`sE3m2uUf~-9h<_$wTx;bFz3Wl`^ZQJXZR; z^5jvr15K;2v-oal_)@akL%q?J&RMEH>>%xnfYMt0 z$>>9?r{*8+8AvaiZ${OvWrrw@bfQ3GSRgqQsICI#k!y#f!dqdzIY+hXqB3+=LDwqB z>=2c8O?a;IZVcBdQ}c@1A%1?T?URrXLen9_;d~O_mw7$&+Je*$*+sm{Rr#jhM58%f zA+|#_Z_ECW{m>4U{jdOh8~Ac?0Z(p$-HsVa7jQ1u=TwyA^<-AB5@k{M7y(0b|0~Fw+E9WNgCERy`F9Y|2v0)O*EZqsl{&C-2 z_%!$s_glaZgKq`@DVVyHo&nzueh$11`~vtc@P7l}4Sog8dZ*<1a#7-Wvl8Cy0`%KN zi^0RdrvP1d10C*p0ZYU7abzR;vC)!_DVpefQy|GhNqbZ8aLv5rz9y&Vi-CD4uBE^_ zU>9%*co_IL@DlJkP=F}DcG@604z)(*Zi<=>{v)s??@s`B5=I-`b^?qD0p-FvRz7pfH60m_Nb; zC{W?|0pSNiy1xqPn!o?!`EsWH{?Gpi{rOk)z4~=a=+BmL|8vA#&wn@c|5e=R{+Gy$ zFgnfQ=I?*O2=PLO2D%1R(tSfg3XKquztP`9(pA3kSFqjjdqP^DvW57P`X!1NNo7!? z$|vQ!_VQ)kmCBeHx+Xr#cp_~(4_F8=4?3T~MzH4OUBDoqIq81j2=FLy6nGX`O5vTr zI$$fX6W9-o18ThX4j%#Zp5oKMbHI-QeHZ39@H(LNU;#dy16&L&237-Iz-C|vum?B* zd>MEUco=vB(D|qD13vKg`gFV^aT|Pw$`m^egC8ORw*Px%BRn zR(kH!`{yA&Mo?UrwiKZJbc=a z2ga1u<2~Bw^2qs6jOF3ehCKS@_wsygrxRQr=4lNdQZYIoALw?=$K&brTOt*7@Wg0* zT%hUKd0$VX-`x<6tedQ0wt>Z4e>VI7qtpN6_#5n(ui_tPG5PUw656|`EUU+`3)+&2 z9~Ch=A0Oz7Ww|@v7G%{Q3atFG4Ft{TeY!x8?um87$7<+?kC|@3fgGnjt47+hLfVy# zUz2I+zgBy}Evkoq9_q2WGVfV6@}6aRQx6+!n!je{{9wJc*{AbmtwhJI3}aRETbVw7 zNulZ`p{U-TCgg>#i+M7$M!jcRz0upIk5r$T(u-9G?c@5Ubm(u>NAg8Gy6Et*(fGJf zFP#1hLK}4^*U?0q^mcB>XnmSM%VOEe(_HFkql29LU5ct*+jScawAil*1)S|xe@xF`>#ztJm^crPMw=&TAaoZ>+y=AN*{2Ki^slv5>rzJ_Z@5O~`uIRcAKRR)J;P9c?|`guPkH0T%JykP9##E5 ztp>lQ8NV3kCWo3Ar&Vo0SpGgPeP8VLAb>0CD&9~WpC!^Y1Y@MD_#CBt!S^gdmn zk93{0#N2E1Tm#l~+H$&y4Xe8}GiEE8KVA@qlXRko9wF(V)9(&b!%3xUAMA_EL_Mhcdqj-sc&}yDmQuj&vSS! zW3l=tg_6~4*RJnayP`9>=07fb%jH2f+9jwCiqms1b(OJ-Q%7yCeC+NN_jTZ&jJSW~ zx%QK)gXpw(W_8iM1zl@TY-@N>9jAS)tT^pG*}hXXo%V3FqoPn9r+q}L3zun7I-MCd zzEsD(8quM0(jYp$qhM{Xj?;lRD-Y35gXr{a^P%vhI_@FjtnJltuMlT_gc+3v<*9G0 z{3JZVy^;o3PvWdDseq9}aX81)HdM#ydw*AioT}sW9lxwNeV-3A)`e=iCx|;QBTnDe z)1IF~HJ!d!$Jr+rs^jz>x+NKLdI!zg-WJjbsqK2VY#=bSooZc|2_zBe!@#M!ve?KJ+K?K;1O`NwN1 zeeb9(2){iOK1(MT;MO!&bOnT^m7Zy1^*W1Zwf-r8mJ7)U@EGtjKzcxMJ#YYc3it;g zcaxBxOUU}kzg)W7W|YnYWRgv=g7Q;W{D#SJ<;!u|WyF?1Y=PvL6;nkYz{xHqYeLQ~ zCVx83CC!`-bE#_0WgBN{e ziC)UIyYtz1l1~IYylh3wcQ+rpN%P%nU-{~9dftCw)002=^22kE{Fi6{4Z3LgX7_W* z{3!MEVZJdjmMk9|?O(pX*vBv5@8*No_xcBNA&)KZzkVm@zy-_t<59D-FaKviU7ihO zk?NI-+{M2}a_AQ;J!ScKI~yX*`!UXjGKiVcr=`zO`FA-#a0VZgHX48@#J8e;NOCy( zA;}ZUWz3t-Cq#?fjls4r9xNUV9eA+ZgF3G>Hz=w%UerwKgDf}Aycifs5s(F;85jd6 zxeV2&l*a)*o6PwijfXn2ThZtbSO3fQ(z>e$yH++s?`-}M{totOe|96+jld4rx&z}$ zG`ryLn_#^Qa}?W1{-a}nekdzkkx@k#sh7>mGH09OJk`zl}w za5bQQ)0v-Tz;d7iSOLg+vkJid?$#Z+#oc;NGIbrGbpzkMb>}=j1?G&R`v!X#xEtsJ zdVzJodSC-^Gq4emZT)FrGjI#A1-KR9e4<;Y;kW$A$dUE6`uQ_Jy}p)A#Qn{?G`z*{ z*KTcKX*r!-)Y?Vb@Lb?L;1htfrpnMahtIVBrpolW{`$W6*xiOd6Mz44amWAF5OCpC z`hVO1;h%EKov`wmwEy>!o8QYTuVU?_zTX*m5|BhL>G*?h+%1iyv!NEL&s=)4d;;fE!D#J#!v6n5)RF(m zn`3$7t2Z`+G`~Qzprpi5Z!~e^Z_qg0C@&6zF)?1C17nZIk=Kp_}{!#nd=I82< z$iA=O@udC#rKj@B&0h*n*8jijsXSTAT)a=(|Nrj)c{itTYk3)({(nT&1<7jD|L=Jb z>w58}Id^)#)S5fB9#LRMRfy22ZjTTK2Gn@gHGL*`P|n%_jw(4N5E(IPxZd=q`xIbi<(o2Y2h|6hCeqQB|? zZ~Ff;-~auvkMR8Z$$$7DMvVFY@1E_`e^CGb9vmMBFxbrhuXmhk`TyU=DQW)y4z9Dk z-XDz^?W@Wsq($W(pa^JfAfMakfiD2NfIeV1&=17^T={L~tCd}8{#@C`^6AQ-tKBcz ztn%l}pSuuP1jzo4{reYkFCV}8ht=<=!hdgmZ21{K2h{T42azMT8BR3^_EO-!Q(b7Y Sye0>l9B6W&$$`_(f&UNeya=uU literal 0 HcmV?d00001 diff --git a/SAF/SAF.Configuration/bin/Debug/SAF.Library.Security.dll b/SAF/SAF.Configuration/bin/Debug/SAF.Library.Security.dll new file mode 100644 index 0000000000000000000000000000000000000000..0affcb354a67b3f4018375a6432ab4679730f787 GIT binary patch literal 3584 zcmeHJ&5smC6o0)RxC^p?N{|TJ>q4T5X?NWP0ur5J2H1sxUANa&bQ89_rex;r~C6BQ4{7;C0} z^1?X05B(YE)e$ zWgk0aWD#@9=f(oDI{sGn*p##9Y4n$w~PiLG#-$AtpxewA?bRQlb z#_hmuG%WPvf@6aF1&e}Hg3k$_5_AN8;105o>7&5=1s@U|7kpZMqXav{O}eM=y7=i5e~K*Orn_5vova zdR+visNQhGR;NWN3eWhprj{ahipwhYwBO+RbPDJEq`eMVMa#ZZ3!^yky_n>2t~qYI zniB-kE2=sh1uCYh3jLgRFHY_qo1Q*-dFPw7`SV~4-DCC`JBM}-4SafGVSf9>>KlEg zVGJ?!^h4Cs(=U(3Iy?wW3}p8kAD@SrHks;d`8`NlxizEoR>7UvG0%GZ?s&0)#}oHv-VXLofSf0rP6H3qET}1(rjy{O zfJZ=c`=amX-_tw5pc|Je{Y>+ie+=|Nhws()Rt96ht3w)od5!(>41Z@%7RD^enD)8w_#Wc0R+tBu?DN!XdQ-xi?E^%*j z{uOA{#2Z(l0UfSnjh2u@d!B20>5f!kSBIUZWvN=KyC88+XFhmGILP$awg0Ntlj5U@tYXR0MFuVG_?`OU8sD{Mrk{z~$I@L} L_WyQR?#Ae z{z$8&WgDk^oOw1#fzZeJaSxukZ{9qZdFS1C-ZfV#T4voWpQu?an@Fg+{EnJV>Uty` z-_8rdMCT`>)NJCO5OD%uM?eAn-DZrj0-?t-o;*+8K2uVG418?fB?U#;Hrc+@hsYRN z1+WF;iuNWaXt<3fHzF<8-S!;CN#YDqAqI&dVwlJnP6e?3@PHV7{<096pmrVmRv;FBb zs-tkee+TS$Z*3sQvHwdYhCiZ)YY;6W{s%~pm-XK)^~stKV}(|?irS%3C>hqlky)&E zpW@VyV+3J=h$<14;WQCIHQ~TpN8+ihBR@yTksSY80o3t2QLcY){V!{Oi_7&<#X)3x_6zvdAitKyj`U}ZNE~h?$*kt&}xNaqyF># uZ`)XZID_;RUVjq9C#=wW|9k(#N00;9|L_6!0209`;4Ega0<6GzD)0d&|No@` literal 0 HcmV?d00001 diff --git a/SAF/SAF.Configuration/bin/Release/SAF.Configuration.dll b/SAF/SAF.Configuration/bin/Release/SAF.Configuration.dll new file mode 100644 index 0000000000000000000000000000000000000000..cfc3bdc1220d3cafdcb228019bcb17044007df83 GIT binary patch literal 11264 zcmeHNe{37~b$`br?McRiH9^)NE1IUp)?z?1tV@Q(+q$IK)*%BjuUj`D*_O6LFl0c1Ze2Tc z-LUNQ-uI5;FS`yfApi8Fd-r`mzVG{fecv6AJape@NGGBo&UfD>dKp(f_6xi=xBzx+ z(;vp@#g5m9U)Jt=eRzH)TZ$K5XW6y#@w8PaIOX`F9d|2*c(xFqI-H8Td2U?fTu3FzmcEC{{5<3ZXB9?e(C>9?;EfeC3{VK z`#O!$0ng&^H(1=c^A^w1_6DhNH_dqjc?_Bke2wfn;!Xb#s5P4kqARSX?+VmsE7~#A zkD0x}?qJ^tHbSH~q!f0CoDD$hwD%g_25+(6ag920<)d^1WG=7;9M?9vL@-n?b=eCc zi47CoeQXDBfOcj@3^A+IR7SP06DafRWVP0q=%%2%xlY>aK)?0vTY*17yZa)2oq==A z(8a#d`Fc!Q>-a(JG?n-LqB+8xk2?1rCfJy^d-M>au7#q#>(;g!e-=@wuAIkBT3 zdYkR=*KF+KNH*_h%#ved7%H6`8Nh^y)b8`(AST@*HxIQVTRyREA)8g%c4fKnI_yICN0jiS*`2>)um@aL{6+yS@X zSCIDMinOCoUo}5!*ZcwNtKF5+mQWjBF19u5co5+V4LZ=tFs7pCBmM z6(b0@(HR&)z>Tf|hr@_|K)6nmRw_FRWd>N;eW+sU-V2HnixYlw?yD-%^;_H#K2 z4(1}4tGsqC&%dXrrWfs4k4*~tO$`PWW){=gukD7R-LmOvPXd?Bo3C(MJ z{Ooz==CSdyJ^RLQl^G$*;rce3)#gWt=Fr9d5j|^js_bS9%Ow^WMY)}2{z8g=3&G|6 zwfWA4j=;4-u#3{T%~bHN9c$2CM14Gdj_96_64>C4Em}554u6ygA7X{D`e2)0)JcJs{-E; z_#=T)gJnhpCIsFmuqyDg0$(+@W0mh3&uB3UnY`AVxg9oS1U?8Dqo+WR(N~50Z$cjp zZwwoBD7*(SFYtvhd#Lcj6Ee-2=QXwaF6i1G}dWSpJ2ltwqCFg3bvN|1)CF$KbEmhN3b4zP+{y*!FmyCjlQl$@Zl{H z*b2)I2RIL35cq@95r>LNJIk{9Wxz(Ta*VP;?x z{Qrz#N=ulY^LVEM+fj!>bS0jb2Nt3GJ**nojc8AyRS`Wo@Kj(gy6gRdT@+io=&Zu% zQs6_##LIQOD1FD{{V7(D(f`!(*3ba@91hU}X<`SFq13Omq&@iym)7XcOH?f9+wngm&ZU zBhF3Ds}~NKM$a1zUlzCx9W3CD$Lq$5t0WJCu2DTy^m?uue_AB}T;LUfe+w9(Hvx5e zM<_;k)dr<=jZhTqm+=#T0s1VUPG1p`c7c-u z4+=~PJT5Q|_*HrdJ@Fm-3DOYJdbPN=Q=8R}YbUi8EqH-*Lu7@1d@n9IxOXz;ZN3%a z&`{6nT2GULYm$40r}1&eAtzJG*}p`o#LU>FQ&`F_S6r){bqZsdT#oXkwBzQoi1Lt?ee9lmj&RQ6T_#zGJmX^=AiC2o&*9l7 zoh@3q`D)Rgaoj|)nDf?Vb~3|xDpyxI*|Jk$4idglvfWuLZ!0~{nQX>(8=^2}m95oC z=5i`vB|2c0R?605&L+Hlm1*;Wab46h&1NQYIp-lebJWS%C7QAeS$_-z8ieOOJ#b7s zOLJkc1_(-#;33W`+sjo-*A<8-;FXJ5o35{6p+JLwO>osvvXCujtz7nDalFCdlwB_4 zS&=4P8>=;DrCl9Eu(=f4ZjLr(O;@QEs@oIPS}@*nF1S)IbBhQ6rP;#O{ot3nYGMm+c2zm$>vkqIiD@p$3bmv*~?b3sEQoH|x_*92}k zXDsgBs>LJ=rLt8>Bm0>QowloN%#@R^a5d3gj+Nme!a1!9OtkuZpJs7alW?4ca8XPm z6)XfszWFJs&P~&2)3yX#6nQmF9=F8Zocjl%WB6@EyAbt*-2iYKQZte|C=t2E)@W?~fxp)c7g%7udM z&hr;s5Auywbn&yz^lsXXC(a`Na+IYsSyaZ=p#qhz$~jK^!M7++Hhl!2=e5u_Izie{ zkzC9zKuZ?-ENDClZB>kIqT6|;BxNuz$QrzkEvqzAtJI=@TYC#z~%k~sPiR9KtHb#qP}IwKadZFHN`+DPSG&oxQ5*w#_Y<;F?GB26o>A%$GJz{(ge zBi9684mkVYqG9W#L}UrpEK|jsr=pYqMO6k3vxTd8y_UF&`qmWqGx!v7H#BihRAf`o z;EJzljPO#+lS*K%GOTsL&CkV-8>YFR8RVg~%Ft>tU+>$iTd)a&uR zpOF}`KGsY-{gtL+q0%u69`6E>=LnpxJUs>si) zPpOZl?A>18r^{Y!I7)e<1=ds_k)v2M?^#=bH0PLWk9TqkqXM1AjCT8&vz%2~Ti0%u zviiNQMeF=rbH;rOe!i}@vvxOodp9&r<2MLgHAR6l5>Kvi?4ZrUvn=%$J8Z1$l!W9>X|^@G-|Kqq_sVdQf+ zUSE6|C$1fHQX%+##HRMWcosFv7E$kETBHZWpE50oeH5)+NFe5}-YzQLM6E#g8gdr$^RYQ81Q68{;gOKYv5i=<;*mGhCRt7-pGEGe2 z{}T`}1GuuHY=;@_iDHEwTXgiC=z*xg^9FnJgF}NsQ|lREh3jHGjPh_pEJ)N-;rZ1N z1rR5bg6v1kG;zfuL4rfNsl~!(i0MNytb-+opfMzGH=ds0Y^dXRc^vnUri=fZ6h%Hc z>9|w5+#xGlP;WnMTi%2qA?CYVp~HXe*`(zc=zEU{<)sUabJaII<8A0HcL3)- zr|?}4Hi>_X>ikQeW9V%s0jKFGMoDzJS>Q>)8I1Y(M(~IK%kRnf{PDe3$iMnO21C{1 z-Dcx4CDO;x16=4)_nss=;1aq9A6w){QuE;QGgL{Q5d7y%5uo1-J`SZCY*Iaq?=r2L zRzzkT-w~<5z34TF0p4E+FqfY$RA1!#QVH}p&MkF3ekv`Xd)B&@Co?KC{(9VfOVW?| zIkw(T*0&$u%V;&*jzQLiwD&v#{>^wU8OM1u?ZG!d`!Ko%qjA6wfs5bP;eEb_h_j76 zm+u?7I*V5C?ELh|_lV|ar7=A5@Dn7_h}eA>^el@OjzAIq@m*mV_j2@WiGlKORZe9h zgL!$(b8+|PXerrwvG1^_gYWHZpC22>q|YN$>KW|n&vdJHsvM~MSO$00G%Rb*!IZ?c vQKmV%KQFciL`MSNl*G41SYAa0-m4x7#`^{KtKSU1ddvG|z%SN)KO^veir-># literal 0 HcmV?d00001 diff --git a/SAF/SAF.Configuration/obj/Debug/SAF.Configuration.dll b/SAF/SAF.Configuration/obj/Debug/SAF.Configuration.dll new file mode 100644 index 0000000000000000000000000000000000000000..83318a4695ff7770ccc4d73a833892dba7536257 GIT binary patch literal 11776 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 U`ah!wRJgofTKr<(_sIhP1C8aqTmS$7 literal 0 HcmV?d00001 diff --git a/SAF/SAF.Configuration/obj/Debug/SAF.Configuration.dll.incr b/SAF/SAF.Configuration/obj/Debug/SAF.Configuration.dll.incr new file mode 100644 index 0000000000000000000000000000000000000000..f52bfd5233b2154ac61408b9ced304c2c70ed8f8 GIT binary patch literal 2574 zcmchYF-#L-6vy8kiUOjGF*^ArCWfVe5%*&C)I+YC-T&5&IBrh%gP)5RK7k8l;PKfr1o5=3irnC&_Q98L?Lf zHXgiG`kI_uia2uH}LGiOSM6yJeOJBc%=*&)*jOZld|EZKmwbHVpIaEKjN%M34?cAT{ z73Is*H94~%-NBS65DrxWzKqDq^W2H7K?S%cOH(u>U1Q^%b4eUibOm!5{z&2O)Rw;I z)~sS1`q=9DDUZ1b4(8zw5TU_|@TV2BC;0{hNY!=g}klYYhCdH1a%n0WQwN zdrz*vXj)O+1*@Iah$cbkVAC{KEMVpiWT!fc)z{LYaaTT%6Bt+x?sn*!L3evJvRv}e z^&!`I#aue>`7A9o$i`gj2vkVDRbk`ZP6SHj_8X;5=$OZNmcd`p>nDM0r?(4skwZp zw+x55gx$zB?y&kA)#F+PgANGPPgQV$T5@JC-lz6&2+76QJp3xh6)eI_29#k}72&n5 z)$}+d8-pxRNmULyia|h%KiZgB_4MQba*ZoCjDKFIa&fS+*Lk;Xbl$SJ#`;i4Rqhh~1s+1HxBvhE literal 0 HcmV?d00001 diff --git a/SAF/SAF.Configuration/obj/Debug/SAF.Configuration.pdb b/SAF/SAF.Configuration/obj/Debug/SAF.Configuration.pdb new file mode 100644 index 0000000000000000000000000000000000000000..98a042b5cd85843f31d3c94dda2ccac541b34872 GIT binary patch literal 54784 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 Sye0>l9B6W&$$`_(f&UNeya=uU literal 0 HcmV?d00001 diff --git a/SAF/SAF.Configuration/obj/Debug/SAF.Configuration.projdata b/SAF/SAF.Configuration/obj/Debug/SAF.Configuration.projdata new file mode 100644 index 0000000000000000000000000000000000000000..4dc9d1607e2f8baf537e61c774dc3ede41e2c512 GIT binary patch literal 50696 zcmeHQZ)jb|l^@BKs=Ds0*SN+pYIy54Ue%K2VzR+xRTDX>TW1qDk&}>iL${VJIZ9;7 zD=CR%(jfXFh*Cl}gpzhkVNL&iDA_M1gpgg9dI@3U4W*QPD8-a+DJ6tb@}VtZ>F)10 zXO8CHd3WBMcV$QUGgpl6eRJpkoH^&rIcLuO#x+|9dJV1*xPaS0pE1vT5D$2c3&IoxDTzC_Dh?JEz;5_Ym|Nh@M z+a7TAS(6{lVxOvOtkbJ_skfo-d4$up-`cBsP(Wy^f{<}rI{R8(+eED~B)ms~P0gNJIA`Dx6%tcBx%V9pGC)7|XU8#%6)v#41+U5A-LH^&Kwg;(?%iLyd`-OjhX1CY9lP2&?Ced7Tr20c--UtFiVySW|OIwAIKH*TN~Zk#jOKya)H|0Cm-Q<9#sZ zTJu+^Q)t6bQ1&NK>VVnb(__nD>={Fi3rKw!u(jEYVYD7ZtIlA|xKbomFev*$yt9Oo z7m-S9XkspxY%fout#fGqDg2s5?j}-_dT7of#+tS5o5wrWL@Lzpfv_z{Hq62-hPh_B@Q| zeqfNNabHIGHo`W%>_^Iba6gDJiJ`9*ZN@xvZ*|i~=zBt&NL9YK-e4&z{m69hpw$RkesTo@1k{BfhIh zADhl)Rkh?6K_ZyO zWgUkde!m@1#1%h<|D|dN=}yaS2zl33AsM$-vP^ma7Rqax&$tlYdFqRahzo|gr_=<^s)nP zVlK%SEn+{dvr#?sG2U0XAaX=nmgkPs_#5HrIcMa5>+v7q82QmSgWh=#GYtj~I-H=? zt(A)){#>x~BhJwxpyN>2c@%CwfF03bGwiSVjQleAyN z7o2~^3&aMLi*f%-o|WmYF6^X1O4{r>*3ed)DoX3$ z4Gz*m7%WoEGKb*zcQ@9~tI*2*`!HFF#?b0Se&&Oz*m0crn-?(z$LuS( zPcj16^qQQxET15j59zl^_8@{Y|BIquMgPhFl2c(74RExaW0BQhw_W-@WIk8m{6+xl zBNY;}Mk!U*$TiIVO@qTnQRUz;`6EsS`^UK>9Bf12MOvluo1Wnz#B6o=z+;FVK}>1g zGfU&f-W0hV*Q-dXlw&0IxeqO9x<1C_3!17OpG&S~8Gphxw4+iFASHRJdh1+rm*qVR zpopz~VT;JWi+rifwQEm{JiAY+Jo^YrCHFO1DcsGh4Pdoz0wEa z6J)Ga(!-kLv*26aItyv|Yny{HuQ4K~5Xq#EQ^*^_YK-FmpI&6k!$*O@8gC`hCha3} zIG-s2Z-Vy@cW)xY7pX0IDdknUvS;j`qd4e5SRX!*Zq=}4OjQI zD2Io*#9?Ryov%LgpC$doI)V+K&P5#C5iBCz57cG`8)^!Zf&7IB>Pz&L#6))?GAq3UW zt=P=+&umKL#Uvaxf%b~-L^LNdhPvhyV|!d7t5nBOs1YHL)Ttcn_sC@~M>%L>8tPz* z@`AG{gBVMsO!aV)VjWV|a(Ufy%OO20Q!&NTiq*op_`X$2G-_#S5qDDuqdoPqsxe2e zP5@r0v(#Cdf)sZSVA^2xqG zrKV5{QI>19$}*e5?CThJCxI%@>iS`-`<|vzC54yqggLw2uCgk4sgqmbg<7$tgxVd% zJb?{h;2ePe!0!U6oh1?ytI!=7&|k{<3-`%;!~r0xS*lWMrVwud;K zwqX2!7Xqy!hTQsWm&)q}8fMU?zum6;WoR~O$siJ10~{*6ZPi;TMYRy)SQD)>3QvLd zxst+kAjwt-`x}n`Jz4(>jWk%2k>LxtXZ>qv%PC{?Uedp=K*Vt`!tVh8l)t>+m=Q@wJ$RBUR_*K~%9z)wn zNoYGu8qA%7&XX~>UXgMXwnT%~?S4jV!HTk`W3U{q?oIc+W$WB%?+K0T*}wQXtA;u9 z{HlE;zppl7)KM0D%X#rL*EGJ|H0Vqntu+1=h?5MP-SJZ<&SzetHS_jkjQchMr6yaz z?^MvPooe(Jke-;B}soUfz?sA8P$D!Q5q^Xh_bKNbw+7_4Es)EWl~~C z8K&qN2{pv=s^!*Nh>Oo44Y7t;CTP7&&RXJ5taH(?i^ax*c^KtTVxkgawZy67=}AQ> zzIA z=q2kGTj>W-TR0l5Mf%d(0&2NAzB*=vy6)Br^Ut=Cs)jT(4X#z&5W*}iR%NdizA5hZ z)ILP^=}JwM8gOldxs54n-c#~$)r`16tzAE~d<|UxmBhcv`VpMyIhHc^iqE>P27zYU z1$z4=h3^Ld6V%D`t?1VjGQ;&)*SaVyhrAufV5Ej|v^ z*YZRMv0||dQYMk-rj(L~=SCeiE6TV|SR77xqlKvFPiYOSm@O^6;KXf7@YYJtb#<#{ zPmE?OtSM#YsHwcJ37X6GLn=V%Exr*dEbvX3W%;6e)ssR3TVknDZ7IjH=ddQ?WeepK zDiqr-lS+$qKpZMUX?PqrOO2$uoIAhTLM@NS`mDV@FB7NB(lenW>8DXtzu5zr+J~UK ziGz5KStxBs;-BC>EtG!Yb`y`g-Nci)Z-GFXJB;UXzXjpP2uEOd!?-7LpF#LK!Y)+K zxCz{^V?%J=3)y4eAdl1hv2r1VJ>K#D%gOfikqiyW; z9?VbdEQhzbsXl{8V;ky2WBJFSWs=ofK5v^U4bS#Jdd4uW-Ou(varhOSShm7Sqe|KS zhnz&V|7kr@!g1jaS20^zK9dGrMM>6`vj55U??M-86W`AMJ%v_Yl{7SHLijT#fAt@X zS>|uh-$C$h<&zqB0=no+Vj2myo6q7GPtZ_0uCde`Ht}}%+Ic)ZCqcekENa?YGEE}) z^=)#;X?iN{W(~Wnr3tMSA4YG=XO)`Kce+>XgDmdjjfQ!m3u!`;zvZZM6qm3c=RQld z-JQ=PDL)_D7U}t+dNS4GeossCvH)TZFC$QUo{+a)-$^7Lkr?NmhQ0FnvsNDvasF)M zXI*yC`TSY&1S@yy#FbnL+<9O9^Jm2U4E@-5tv(LFF!)LQzr#v7xWk`Cizr7wZ!te@ z%6Z1K9AD+Hq;+p59!zdV1)p@%l{h}99L00U+|P-0IWWuE#eKhyBJmo>(I=sGw zz_^!je+q$Dwtty#vvcNnjSRn+>|bIsg3)!_)p49I1MqfYH1&*l5q1qYD1VAP-iqqn z#gn-*C#N9i*&DS2DA%0kFC%7AP%MkmEzjFYOD>}&>yh5ffD_%<1_tZNY*^}%B#x~L zzj0?p*{7EbPDQ0l<(-%49sQ}`S;s9)NunJ&4Xp3a5ew#TSAN;|Qe8PeWxi9^_H?BO z#!bNg1AmW^ck(xCEsItbcUZYSW%unl_&va(*CoMW2s>$K5m^4g78@MjI?kT($wmK2 z@$-ipZU4ow--#ssJ(jeQ1nIDMB)#-cZY&^zd<~wkk_f;9nYvV z5wU%a&GKYQq-?py!#+?W3Y&&2!v zuUzvtui%+&Xde6J4?c{%Pw@Gszy16x=P&mB3eU&?<;~CkH`1^V+uv;3^z=RV_#H?8 z^&;Zgj^3F++B8UR;Qj2{(iC?9kV}Y##REgtn-3B~=hxi+NgJ}TTw0-CE02CYC2iWJo z6P)yWtoZ@F{~m(Pi*zr!=T)4>;<+`(uQtVo*rpj4d6IqpwD>l%ZNM_&Id5CtAvHvz(3;l=5lW{YvDeOK-ZfbS=uV)ASW-8U?UAb|kYuEY;q5%bT)Qu0L@bmkw!O)uUy9ShTYh?^i{d zCo!Q1(QY+z-9b2U1(@<8L$%(vtK2}e@aqV!&QkSO;%jy1Pt3N%K&&QT&W&N7-H*T~;tkkl(7uBEk8BUWvG(v;|CGPS zQvE&ExMYY_tkvd}yJA{WbF;WTRy3p{eg4s@asu9(Zp}gJ^|8_{5_g%@6h?n zP}$z0iBs&^AGm&{c&;Z z>6@1RFDU;KOH-aq6#r0J9(k38k?_s()`0kF;rP$3eQo8aJ#P|zuT9{mrMT`@Uv+9ZR zSfHD(nlF`N(w|fH*OA)g;w+CKd;%Z{ufx6ggpqk^opT*()Z-^dAGS8u^h_7dWviE9 zrlH>^-izPt(*FC?%k^elYt)?~?X@+|mtB1d(0ecTDL4M)^|cNj#5(9Mi)|OzEdBkr z;i}&kA>&ZeS7hSWOHzZbVESvH$1GB&%5TJoEU^^^%JZyLB9tdjp^VmfQfMJ8C@)$r zuN7|UT7F2m;rJ4M$~AV^gLej`#b++fmi7h*gCc$D#)pG3+5bc6p`jjT6DTa=wHRFL zs;q{+@N7XE1Z<@Jo$ysf{(s;_1Kgv2Lf{wE`5HYAPKf#+@h>|APPH4qfN6e3S?c@I zKdgc7`;D#Qi;w)L@RtgYBCFly@WkgJ^}iqU!0&F}WqCk;bwT)=)_0P3`x>3|Ul^lT zWXW{`rRf*RBt3nes(t@%_e@Bkt$#mG9Dfz}`x$}jX$1Q3{x$9|Fap=>2pTugW24MI z+%;~(#XVMt`=*O~p%C{I7e_vq;k5DE)zAw;HP<|9PXUGNQn7@$fgM{Li_V&-5K{wY z*O6Oy5qsCZo~Rn-Df<mvF)`;U3ZwYrJYZ2V{?+GKl@+H{?}-W xLz`CRW9T2NRpWNTayQu@wAVqFF<|xwt(r8it=tUqulm`2?wK6HyVW1`{{!>fQkwt( literal 0 HcmV?d00001 diff --git a/SAF/SAF.Configuration/obj/Debug/SAF.Configuration.projdata1 b/SAF/SAF.Configuration/obj/Debug/SAF.Configuration.projdata1 new file mode 100644 index 0000000000000000000000000000000000000000..3ae7815be68c98b2f177da8f8e5ec5e8a0339430 GIT binary patch literal 25224 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 H;fMbL+vCkb literal 0 HcmV?d00001 diff --git a/SAF/SAF.Configuration/obj/Debug/SAF.Configuration.projdata2 b/SAF/SAF.Configuration/obj/Debug/SAF.Configuration.projdata2 new file mode 100644 index 0000000000000000000000000000000000000000..3ae7815be68c98b2f177da8f8e5ec5e8a0339430 GIT binary patch literal 25224 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 H;fMbL+vCkb literal 0 HcmV?d00001 diff --git a/SAF/SAF.Configuration/obj/Debug/TempPE/Web References.localhost.Reference.cs.dll b/SAF/SAF.Configuration/obj/Debug/TempPE/Web References.localhost.Reference.cs.dll new file mode 100644 index 0000000000000000000000000000000000000000..84632d67aeb0e2fdaa2ba8f527737f545c0e96e0 GIT binary patch literal 4608 zcmeHKO>7%Q6n?vQe(bguO=u}<3R|U>0*yAVlKw)$iQQ7urcGm~r3k5AuP4qn>s_-u z8#Vj}2@oJ5A&xyE!~rCPI86;yq!!x`yQo;D2;yO2GLcF+zJZb9;|?!d-#hSUCvzJepNeueS3Am35{0ZHv+3^ z*p}z{(x?d|h&;pbjMB-9(e&%W+^`|LBQZU5nCQ5cqE9x@Ke@Wv_mtbdPU|Jgf`WnD ziAMko^a45q1A`v>4NUpZBdwr=&W+izeBPg^P?SeQ;Lfc^J)eFJQZu=H)g6CMCZ*Q3~bDlZv`NnsGA%DxnKsu^&zNO z=OM$k5PD}T5KVQ?8PD^+qOotR@~eR*;J60-pR~ceP6LUeKGK7@^Z>S6Bb?4hi3amM zv=e;LHtNC4;5_gy(yXoT-<-wP6m+l$C z9%i$=FRba`8~jiddLO53BfjIU$9!tztDU&EXmOlePT(uq?|ziZD8C5BTnmPhJ@-bvSk4$BpFTy;sl%*f(JHTHQJg-e_S-J$6qwCrg+?k)W2}tVt zQNSUSMe~^=`3K1YKpR~Z>P^_7d--)rQLvg>43sB3Qp4f`d%t4dWMeaWj#Yp{Vd=c z`l4=Pe=h0;dW_zoA`L>nNLw*0(l8ySQ+izw^z;fG=xP!Ha*RJDcSNHJ#qXpI(zk2S z;{8#K$EW>zBtqG^X_-F2z597@qNp!whb=`C zg$tF?X?P+iT2eIpV7V=iTqXNE<#=^m?k?6%X$gfqHy0q!$Xdy_qb4sP~H(TfWt@oUjR8pF>e zpKP))E&vO`8N;pc$wP&3s6i10;7Z^=x<@57vu-2h;TtHRwFG$^mR;=6X?Kx^^2!QuzauWo!--ufE#fBxjTS2uo>J(w~` zOB-4)*MH@O=T1L3@%`KVMrt6F8`v<^1M)zo$IvxhPxB3ioR-UIl(vyuqLPM+Q_ZDM zSWU5|>$E3{!?Lz-e(oFgc>+xXy)QbPe%Qd*=7e@7`VClefmL6s)6&Q+00T zoi!F|*D>YMjD-iEkbE(h-FxU&u6rSNu+Px94du2C_4TFHm^IQkJllqFe0uxzfy}m{ zUPHq))6>U-y~+2%NZvhsIGem`aWuN&K3Qjq2=xVEi5ok~D6~cY za~Qt~h_=M9=nn7W*HV5BIt%gJ@tFeN@$rL&Nx=ELdm44+9N=M^1y-h$bOQ4-;1S^5 zuBCteWA#;{2nksIXMmr(oaWBP?<@^gEmWl=s7o#?P+3(!Uy1EdFRH4lf*vZBtLh(D z!?+gl3+_`G)! z*2CIvhX-dst-%Yf>hns1{pXq=!qTl@7IO_r6Y?xwhdjTPM^rq=VWXi|<1axAadSis ze53gP9F8T9yDb-Is1Cg*^a5IhRc;3QODc|&i4FdWaU83A#xve|qI(ffoWmKc?IXqr z(aMe;jQyKXdFht9IXmsVaE^%fE1gM18LF6Th-ewn-boLt_pTZ7|BN#S?%fjqTmJX% Fz@N7|-z)$C literal 0 HcmV?d00001 diff --git a/SAF/SAF.Configuration/obj/Release/SAF.Configuration.dll b/SAF/SAF.Configuration/obj/Release/SAF.Configuration.dll new file mode 100644 index 0000000000000000000000000000000000000000..cfc3bdc1220d3cafdcb228019bcb17044007df83 GIT binary patch literal 11264 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 literal 0 HcmV?d00001 diff --git a/SAF/SAF.Configuration/obj/Release/SAF.Configuration.projdata b/SAF/SAF.Configuration/obj/Release/SAF.Configuration.projdata new file mode 100644 index 0000000000000000000000000000000000000000..881b65b56f324412855dc0222594be2108960dcc GIT binary patch literal 18056 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 UFD. For example, if your KeyFile is +// located in the project directory, you would specify the AssemblyKeyFile +// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] +// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework +// documentation for more information on this. +// +[assembly: AssemblyDelaySign(false)] +[assembly: AssemblyKeyFile("")] +[assembly: AssemblyKeyName("")] diff --git a/SAF/SAF.Cryptography/Certificate.cs b/SAF/SAF.Cryptography/Certificate.cs new file mode 100644 index 0000000..bcc1199 --- /dev/null +++ b/SAF/SAF.Cryptography/Certificate.cs @@ -0,0 +1,51 @@ +using System; +using Microsoft.Web.Services.Security; +using Microsoft.Web.Services.Security.X509; + +namespace SAF.Cryptography +{ + /// + /// It provides certificate search ability with + /// a given location and subject. + /// + public class Certificate + { + public Certificate() + { + // + // TODO: Add constructor logic here + // + } + + /// + /// Retrieve the X509 certificate for a given subject name and location + /// + /// either CurrentUser store or LocalMachine store + /// subject name + /// X509Certificate object + public static X509Certificate SearchCertificateBySubjectName(string location, string subject) + { + X509CertificateStore x509Store = null; + if (location == "CurrentUser") + { + x509Store = X509CertificateStore.CurrentUserStore(X509CertificateStore.MyStore); + } + else + { + x509Store = X509CertificateStore.LocalMachineStore(X509CertificateStore.MyStore); + } + bool open = x509Store.OpenRead(); + X509Certificate certificate =null; + foreach (X509Certificate cert in x509Store.Certificates) + { + if (subject.ToUpper() == cert.GetName().ToUpper()) + { + certificate = cert; + break; + } + } + return certificate; + } + } +} + diff --git a/SAF/SAF.Cryptography/CryptRemotingSinkHelper.cs b/SAF/SAF.Cryptography/CryptRemotingSinkHelper.cs new file mode 100644 index 0000000..4d3a202 --- /dev/null +++ b/SAF/SAF.Cryptography/CryptRemotingSinkHelper.cs @@ -0,0 +1,134 @@ +using System; +using System.IO; +using System.Runtime.Remoting; +using System.Runtime.Remoting.Channels; +using System.Runtime.Remoting.Messaging; +using SAF.Configuration; +using System.Configuration; +using System.Text; +using System.Collections; + +namespace SAF.Cryptography +{ + /// + /// provide functions that provide an easier access the SAF.Crytography. + /// + public class CryptoRemotingSinkHelper + { + private static ConfigurationManager cm = (ConfigurationManager)ConfigurationSettings.GetConfig("Framework"); + private static CryptographyConfiguration cc = cm.CryptographyConfig; + public CryptoRemotingSinkHelper() + { + + } + + /// + /// Encrypt the stream + /// + /// identity name + /// type of the client, either ClientSink or ServerSink + /// Transport header object + /// stream to be encryted + /// + public Stream EncryptStream(string identity, string sinkType,ITransportHeaders transportHeaders, Stream targetStream) + { + byte[] key; + byte[] iv; + byte[] signature; + Stream encryptedStream = null; + + string profileName = cc.GetProfileNameByIdentity(identity,"Encrypt",sinkType); + //perform the data encryption on request + if (cc.CheckIfSymmatric(profileName)) + { + //put information into the header to be sent over with the remoting call + transportHeaders["Identity"] = identity; + encryptedStream = Encryption.Encrypt(targetStream,profileName); + } + else + { + //put information into the header to be sent over with the remoting call + encryptedStream = Encryption.Encrypt(targetStream,profileName,out key,out iv,out signature); + transportHeaders["Identity"] = identity; + transportHeaders["key"] = ConvertBytesToString(key); + transportHeaders["iv"] =ConvertBytesToString(iv); + transportHeaders["signature"] = ConvertBytesToString(signature); + + } + return encryptedStream; + } + + + + /// + /// A helper method of to decrypt stream for a specific + /// remoting call. + /// + /// call identity + /// sink type, either server sink or client sink + /// ITransportHeaders object + /// stream to be decrypted. + /// decrypted stream + public Stream DecryptStream(string identity, string sinkType, ITransportHeaders transportHeaders, Stream targetStream) + { + byte[] key; + byte[] iv; + byte[] signature; + Stream decryptedStream = null; + + string profileName = cc.GetProfileNameByIdentity(identity,"Decrypt",sinkType); + //perform the data encryption on request + if (cc.CheckIfSymmatric(profileName)) + { + //decrypt the stream. + decryptedStream = Decryption.Decrypt(targetStream,profileName); + } + else + { + //retrieve addtional information from the transport headers. + key = ConvertStringToBytes(transportHeaders["key"].ToString()); + iv = ConvertStringToBytes(transportHeaders["iv"].ToString()); + signature =ConvertStringToBytes(transportHeaders["signature"].ToString()); + //decrypt the stream + decryptedStream = Decryption.Decrypt(targetStream,profileName,key,iv,signature); + } + return decryptedStream; + } + + /// + /// Convert the byte array to comma delimited string. + /// Because .NET framework transport header doesn't handle the encoding properly as in .NET 1.1, + /// we need to conver the byte[] to a string such as "142,24,...". Simply calling GetString(byte[]) + /// would result corrupted information when reading from transport header on the server side. + /// + /// byte[] + /// comma delimited string + private string ConvertBytesToString(byte[] bytes) + { + StringBuilder sb = new StringBuilder(); + foreach (byte b in bytes) + { + sb.Append(b.ToString() + ","); + } + sb.Remove(sb.Length - 1,1); + return sb.ToString(); + } + + /// + /// Convert the comma delimited string into bypte[]. + /// + /// comma delimited string + /// byte[] + private byte[] ConvertStringToBytes(string text) + { + string[] strings = text.Split(','); + byte[] bytes = new byte[strings.Length]; + for(int i =0; i < strings.Length; i++) + { + bytes[i] = (byte)Int32.Parse(strings[i]); + } + + return bytes; + } + } +} diff --git a/SAF/SAF.Cryptography/CryptoRemotingClientSink.cs b/SAF/SAF.Cryptography/CryptoRemotingClientSink.cs new file mode 100644 index 0000000..118e367 --- /dev/null +++ b/SAF/SAF.Cryptography/CryptoRemotingClientSink.cs @@ -0,0 +1,134 @@ +using System; +using System.IO; +using System.Runtime.Remoting; +using System.Runtime.Remoting.Channels; +using System.Runtime.Remoting.Messaging; +using SAF.Configuration; +using System.Configuration; +using System.Text; +using System.Collections; +using System.Threading; + +namespace SAF.Cryptography +{ + /// + /// CryptoRemotingClientSink represents the remoting sink on the client. + /// It enables the secure data transmitted via .NET remoting + /// + public class CryptoRemotingClientSink : BaseChannelSinkWithProperties,IClientChannelSink + { + private IClientChannelSink next; + private Uri destination; + private static ConfigurationManager cm = (ConfigurationManager)ConfigurationSettings.GetConfig("Framework"); + private static CryptographyConfiguration cc = cm.CryptographyConfig; + private CryptoRemotingSinkHelper helper = new CryptoRemotingSinkHelper(); + private const string sinkType = "ClientSink"; + + public CryptoRemotingClientSink() + { + } + public CryptoRemotingClientSink(IClientChannelSink nextSink, string url) + { + //set up the next sink and final destination uri + next = nextSink; + destination = new Uri(url); + } + + /// + /// interface property to retrieve the next sink + /// + public IClientChannelSink NextChannelSink + { + get { return next; } + } + public void AsyncProcessRequest( + IClientChannelSinkStack sinkStack, IMessage msg, ITransportHeaders headers, Stream stream) + { + throw new RemotingException("AsyncProcessRequest is not enabled yet"); + } + + public void AsyncProcessResponse( + IClientResponseChannelSinkStack sinkStack, object state, ITransportHeaders headers, Stream stream) + { + throw new RemotingException("AsyncProcessRequest is not enabled yet"); + } + + + /// + /// ProcessMessage encrypt the data stream and send it over + /// to the server and decrypt the response data stream from the server + /// + /// IMessage object + /// header object for the request + /// request stream + /// output parameter containing the response header information + /// response stream + public void ProcessMessage( + IMessage msg, ITransportHeaders requestHeaders, Stream requestStream, + out ITransportHeaders responseHeaders, out Stream responseStream) + { + string identity =cc.GetIdentityByURI(destination.AbsoluteUri); + //add the sender's identity to request header; to be retrieve on + //the server side + requestHeaders["Identity"] = identity; + + //create the encrypted stream for the request + Stream encryptedStream = helper.EncryptStream(identity,sinkType,requestHeaders,requestStream); + + //pass the encrypted request to next sink of the chain + next.ProcessMessage( + msg, requestHeaders, encryptedStream, + out responseHeaders, out responseStream); + + //retrieve the identity information om server side + identity = responseHeaders["Identity"].ToString(); + //decrypt the response stream + Stream decryptedStream = helper.DecryptStream(identity,sinkType,responseHeaders,responseStream); + //set the output parameter responseStream to the decrypted stream + responseStream = decryptedStream; + } + + public Stream GetRequestStream(System.Runtime.Remoting.Messaging.IMessage msg, System.Runtime.Remoting.Channels.ITransportHeaders headers) + { + //not implemented, since only formatter sink need to call this method + return null; + } + } + + /// + /// provider class for the client sink class + /// + public class CryptoRemotingClientSinkProvider : IClientChannelSinkProvider + { + private IClientChannelSinkProvider next; + public CryptoRemotingClientSinkProvider(IDictionary properties, ICollection providerData) + { + } + public IClientChannelSinkProvider Next + { + get { return next; } + set { next = value; } + } + + /// + /// factory method that create the concrete corresponding client sink object + /// + /// channel object + /// destination's uri + /// + /// newly created CyrptoRemotingClientSink object + public IClientChannelSink CreateSink(System.Runtime.Remoting.Channels.IChannelSender channel, string url, object remoteChannelData) + { + + IClientChannelSink nextSink; + //create the next sink that is located after the new CryptoRemotingClientSink object + nextSink = next.CreateSink(channel, url, remoteChannelData); + //create and return the new CyrptoRemotingClientSink object + return new CryptoRemotingClientSink(nextSink,url); + } + + + } + + +} diff --git a/SAF/SAF.Cryptography/CryptoRemotingServerSink.cs b/SAF/SAF.Cryptography/CryptoRemotingServerSink.cs new file mode 100644 index 0000000..8554e79 --- /dev/null +++ b/SAF/SAF.Cryptography/CryptoRemotingServerSink.cs @@ -0,0 +1,133 @@ +using System; +using System.Runtime.Remoting; +using System.Runtime.Remoting.Channels; +using System.Runtime.Remoting.Messaging; +using System.IO; +using SAF.Configuration; +using System.Configuration; +using System.Collections; +using System.Threading; + +namespace SAF.Cryptography +{ + /// + /// CryptoRemotingServerSink represents the remoting sink on the server. + /// It enables the secure data transmitted via .NET remoting + /// + public class CryptoRemotingServerSink : BaseChannelSinkWithProperties, IServerChannelSink + { + private IServerChannelSink next; + private static ConfigurationManager cm = (ConfigurationManager)ConfigurationSettings.GetConfig("Framework"); + private static CryptographyConfiguration cc = cm.CryptographyConfig; + private CryptoRemotingSinkHelper helper = new CryptoRemotingSinkHelper(); + private const string sinkType = "ServerSink"; + + public CryptoRemotingServerSink() + { + } + + + /// + /// ProcessMessage decrypts the data stream and forward it the target + /// server object and encrypts the return value + /// + /// channel sink object + /// IMessage object + /// transport header object + /// requrest stream + /// output parameters containing response message + /// output parameter containing the response header + /// output parameter containing the response stream + /// + public ServerProcessing ProcessMessage( + IServerChannelSinkStack sinkStack, IMessage requestMsg, ITransportHeaders transportHeaders, Stream targetStream, + out IMessage responseMsg, out ITransportHeaders responseHeaders, out Stream responseStream) + { + + //extract the identity information from the header + string identity = transportHeaders["Identity"].ToString(); + LocalDataStoreSlot dataSlot = null; + //create an thread data slot + dataSlot = Thread.GetNamedDataSlot("Identity"); + + //add the identity informatioin to the data slot on the thread so that + //server object can determine who made the request. + Thread.SetData(dataSlot,identity); + // Push this onto the sink stack + sinkStack.Push(this, null); + + //decrypt the request stream + Stream decryptedStream = helper.DecryptStream(identity,sinkType,transportHeaders,targetStream); + ServerProcessing processingResult; + + //pass the decrypted request to next sink of the chain + processingResult = next.ProcessMessage( + sinkStack, requestMsg, transportHeaders, decryptedStream, + out responseMsg, out responseHeaders, out responseStream); + + + //encrypte the response stream. + Stream encryptedStream = helper.EncryptStream(identity,sinkType,responseHeaders,responseStream); + string serverIdentity = cc.GetServerSinkIndentity(); + responseHeaders["Identity"] = serverIdentity; + responseStream = encryptedStream; + + return processingResult; + } + + public void AsyncProcessResponse( + IServerResponseChannelSinkStack sinkStack, object state, IMessage msg, ITransportHeaders headers, Stream stream) + { + throw new RemotingException("AsyncProcessRequest is not enabled yet"); + } + public CryptoRemotingServerSink(IServerChannelSink nextSink) + { + next = nextSink; + } + + public Stream GetResponseStream( + IServerResponseChannelSinkStack sinkStack, object state, IMessage msg, ITransportHeaders headers) + { + //not implemented, since only formatter sink need to call this method + return null; + } + public IServerChannelSink NextChannelSink + { + get { return next; } + } + } + + /// + /// provider class for the server sink class + /// + public class CryptoRemotingServerSinkProvider : IServerChannelSinkProvider + { + private IServerChannelSinkProvider next; + public CryptoRemotingServerSinkProvider(IDictionary properties, ICollection providerData) + { + } + + + public IServerChannelSinkProvider Next + { + get { return next; } + set { next = value; } + } + public void GetChannelData(IChannelDataStore channelData) + { + } + /// + /// factory method that create the concrete corresponding server sink object + /// + /// The channel for which to create the channel sink chain. + /// newly created CryptoRemotingServerSink object + public IServerChannelSink CreateSink(IChannelReceiver channel) + { + IServerChannelSink nextSink; + nextSink = next.CreateSink(channel); + return new CryptoRemotingServerSink(nextSink); + } + } + + +} diff --git a/SAF/SAF.Cryptography/EnDecryption.cs b/SAF/SAF.Cryptography/EnDecryption.cs new file mode 100644 index 0000000..bfe403b --- /dev/null +++ b/SAF/SAF.Cryptography/EnDecryption.cs @@ -0,0 +1,357 @@ +using System; +using SAF.Configuration; +using System.Configuration; +using System.Xml; +using System.Security.Cryptography; +using System.Text; +using System.IO; +using Microsoft.Web.Services.Security.X509; + +namespace SAF.Cryptography +{ + /// + /// It consists methods to encrypt string and stream. + /// + public class Encryption + { + public Encryption() + { + } + /// + /// encrypt the string data asymmetrically using the encryption information + /// of specific security profile in the configuration file + /// + /// data string + /// security profile containig the key information + /// output parameter containing the generated secret key + /// output parameter containing the generated iv key + /// output parameter containing the generated digital dignature + /// dencrypted string + public static string Encrypt(string data, string profile, out byte[] key, out byte[] iv, out byte[] signature ) + { + //convert the string into stream + MemoryStream original = new MemoryStream(Encoding.Default.GetBytes(data)); + //encrypte the stream + Stream encryptedStream = Encryption.Encrypt(original, profile, out key, out iv, out signature); + //convert the encrypted into back to string + byte[] encryptedData = new byte[encryptedStream.Length]; + encryptedStream.Read(encryptedData,0,encryptedData.Length); + return Encoding.Default.GetString(encryptedData); + + } + /// + /// encrypt the stream asymmetrically using the encryption information + /// of specific security profile in the configuration file + /// + /// stream data + /// security profile name + /// output parameter for generated secret key + /// output parameter for generated iv + /// out parameters for the digital signature + /// stream data + public static Stream Encrypt(Stream data, string profile, out byte[] key, out byte[] iv, out byte[] signature) + { + SAF.Configuration.ConfigurationManager cm = (ConfigurationManager)System.Configuration.ConfigurationSettings.GetConfig("Framework"); + CryptographyConfiguration cc = cm.CryptographyConfig; + //retrieve the security profile information from the configuration file + XmlNode cryptoInfo = cc.SearchCryptoInfoByProfileName(profile); + bool symmetric = Boolean.Parse(cryptoInfo.Attributes["symmetric"].Value); + + ICryptoTransform encryptor =null; + RSACryptoServiceProvider provider = null; + + if (symmetric != false) + { + throw new System.Exception("This method id not intended for symmetric encryption"); + } + + provider = (RSACryptoServiceProvider)cc.GetAymmetricAlgorithmProvider(profile); + //retireve the sneder and receiver's certification information for encryption + string senderCert = cryptoInfo.SelectSingleNode("SenderCertificate").InnerText; + string sendCertStore = cryptoInfo.SelectSingleNode("SenderCertificate").Attributes["store"].Value; + string receiverCert = cryptoInfo.SelectSingleNode("ReceiverCertificate").InnerText; + string receiverCertStore =cryptoInfo.SelectSingleNode("ReceiverCertificate").Attributes["store"].Value; + string symmatricAlgorithm = cryptoInfo.SelectSingleNode("SymmatricAlgorithm").InnerText; + + //obtain the X509 certificate object for the sender and receiver + X509Certificate senderCertificate = Certificate.SearchCertificateBySubjectName(sendCertStore,senderCert); + X509Certificate receiverCertificate = Certificate.SearchCertificateBySubjectName(receiverCertStore,receiverCert); + + //receive the sender's private key and receiver's public key for encryption + RSAParameters sender_privateKey = senderCertificate.Key.ExportParameters(true); + RSAParameters receiver_publicKey = receiverCertificate.PublicKey.ExportParameters(false); + + SymmetricAlgorithm symmProvider = SymmetricAlgorithm.Create(symmatricAlgorithm); + + encryptor = symmProvider.CreateEncryptor(); + + CryptoStream encStream = new CryptoStream(data, encryptor, CryptoStreamMode.Read); + MemoryStream encrypted = new MemoryStream(); + byte[] buffer = new byte[1024]; + int count = 0; + while ((count = encStream.Read(buffer,0,1024)) > 0) + { + encrypted.Write(buffer,0,count); + } + //encrypt the screte key, iv key using receiver's public key + //that are used to decrypt the data + provider.ImportParameters(receiver_publicKey); + + key = provider.Encrypt(symmProvider.Key,false); + iv = provider.Encrypt(symmProvider.IV,false); + + //sign the data with sender's private key + provider.ImportParameters(sender_privateKey); + signature = provider.SignData(encrypted.ToArray(),new SHA1CryptoServiceProvider()); + encrypted.Position = 0; + return (Stream)encrypted; + } + + /// + /// encrypt the stream symmetrically using the security profile + /// information stored in the configuration file + /// + /// stream data + /// profile name + /// stream data + public static Stream Encrypt(Stream data, string profile) + { + SAF.Configuration.ConfigurationManager cm = (ConfigurationManager)System.Configuration.ConfigurationSettings.GetConfig("Framework"); + CryptographyConfiguration cc = cm.CryptographyConfig; + //retrieve security profile information + XmlNode cryptoInfo = cc.SearchCryptoInfoByProfileName(profile); + bool symmetric = Boolean.Parse(cryptoInfo.Attributes["symmetric"].Value); + + ICryptoTransform encryptor =null; + SymmetricAlgorithm provider = null; + + if (symmetric != true) + { + throw new System.Exception("This method id not intended for asymmetric encryption"); + } + + //retrive the secret key and iv information + provider = cc.GetSymmetricAlgorithmProvider(profile); + string key = cryptoInfo.SelectSingleNode("SecretKey").InnerText; + string iv = cryptoInfo.SelectSingleNode("IV").InnerText; + + provider.Key = Encoding.Default.GetBytes(key); + provider.IV = Encoding.Default.GetBytes(iv); + + encryptor = provider.CreateEncryptor(); + MemoryStream encrypted = new MemoryStream(); + //encrypt the stream symmetrically + CryptoStream encStream = new CryptoStream(encrypted, encryptor, CryptoStreamMode.Write); + + byte[] buffer = new byte[1024]; + int count = 0; + while ((count = data.Read(buffer,0,1024)) > 0) + { + encStream.Write(buffer,0,count); + } + encStream.FlushFinalBlock(); + encrypted.Position = 0 ; + return (Stream)encrypted; + } + + /// + /// encrypt the string data symmetrically using the security profile + /// information stored in the configuration file + /// + /// string data + /// security profile name + /// encrypted string + public static string Encrypt(string data, string profile) + { + //convert the string to stream + MemoryStream original = new MemoryStream(Encoding.Default.GetBytes(data)); + Stream encryptedStream = Encryption.Encrypt(original,profile); + byte[] encryptedData = new Byte[encryptedStream.Length]; + encryptedStream.Read(encryptedData,0,encryptedData.Length); + //convert the encrytped stream to string + return Encoding.Default.GetString(encryptedData); + } + } + + /// + ///Contains functionalities to decrypt data + /// + public class Decryption + { + /// + /// decrypt the string data asymmetrically using the security profile + /// information stored in the configuration file + /// + /// encrypted string data + /// security profile name + /// encrypted secret key + /// genrated iv + /// generated signature + /// Decrypted string + public static string Decrypt(string data, string profile, byte[] key, byte[] iv, byte[] signature ) + { + //convert the string to stream + MemoryStream original = new MemoryStream(Encoding.Default.GetBytes(data)); + Stream decryptedStream = Decryption.Decrypt(original, profile, key, iv, signature); + byte[] decryptedData = new Byte[decryptedStream.Length]; + decryptedStream.Read(decryptedData,0,decryptedData.Length); + //convert the decrypted stream to string + return Encoding.Default.GetString(decryptedData); + + } + + /// + /// decrypt the stream data asymmetrically using the security profile + /// information stored in the configuration file + /// + /// encrypted stream data + /// security profile name + /// generated key + /// generated iv + /// generated signature + /// decrypted stream + public static Stream Decrypt(Stream data, string profile, byte[] key, byte[] iv, byte[] signature) + { + SAF.Configuration.ConfigurationManager cm = (ConfigurationManager)System.Configuration.ConfigurationSettings.GetConfig("Framework"); + CryptographyConfiguration cc = cm.CryptographyConfig; + //retrieve the security profile information + XmlNode cryptoInfo = cc.SearchCryptoInfoByProfileName(profile); + bool symmetric = Boolean.Parse(cryptoInfo.Attributes["symmetric"].Value); + ICryptoTransform decryptor =null; + RSACryptoServiceProvider provider = null; + + if (symmetric != false) + { + throw new System.Exception("This method id not intended for symmetric encryption"); + } + + provider = (RSACryptoServiceProvider)cc.GetAymmetricAlgorithmProvider(profile); + //retrieve the sender and receiver's certification information for decryption + string senderCert = cryptoInfo.SelectSingleNode("SenderCertificate").InnerText; + string sendCertStore = cryptoInfo.SelectSingleNode("SenderCertificate").Attributes["store"].Value; + string receiverCert = cryptoInfo.SelectSingleNode("ReceiverCertificate").InnerText; + string receiverCertStore =cryptoInfo.SelectSingleNode("ReceiverCertificate").Attributes["store"].Value; + string symmatricAlgorithm = cryptoInfo.SelectSingleNode("SymmatricAlgorithm").InnerText; + + //obtain X509 certification object + X509Certificate senderCertificate = Certificate.SearchCertificateBySubjectName(sendCertStore,senderCert); + X509Certificate receiverCertificate = Certificate.SearchCertificateBySubjectName(receiverCertStore,receiverCert); + + //retrieve the sender's private key and receiver's public + RSAParameters sender_privateKey = senderCertificate.Key.ExportParameters(true); + RSAParameters receiver_publicKey = receiverCertificate.PublicKey.ExportParameters(false); + + //import the public key information to verify the data + provider.ImportParameters(receiver_publicKey); + + MemoryStream ms= new MemoryStream(); + byte[] buffer = new Byte[1024]; + int count =0; + while ((count =data.Read(buffer,0,buffer.Length)) > 0) + { + ms.Write(buffer,0,count); + } + + byte[] encryptedData = ms.ToArray(); + //data.Position = 0 ; + //data.Read(encryptedData,0,encryptedData.Length); + //verify if the data has been tempered with + bool v = provider.VerifyData(encryptedData,new SHA1CryptoServiceProvider(),signature); + if (v == false) + { + throw new CryptographicException(); + } + //import the private key information to decrypt data + provider.ImportParameters(sender_privateKey); + //decrypt the secret key and iv + byte[] decryptedkey = provider.Decrypt(key,false); + byte[] decryptediv = provider.Decrypt(iv,false); + + SymmetricAlgorithm symmProvider = SymmetricAlgorithm.Create(symmatricAlgorithm); + symmProvider.Key = decryptedkey; + symmProvider.IV = decryptediv; + decryptor = symmProvider.CreateDecryptor(); + ms.Position = 0; + //decrypt the stream + CryptoStream decStream = new CryptoStream(ms, decryptor, CryptoStreamMode.Read); + MemoryStream decrypted = new MemoryStream(); + count = 0; + while ((count = decStream.Read(buffer,0,buffer.Length)) != 0) + { + decrypted.Write(buffer,0,count); + } + decrypted.Position = 0 ; + return (Stream)decrypted; + } + + /// + /// decrypt the stream data symmetrically using the security profile + /// information stored in the configuration file + /// + /// stream data + /// security profile name + /// decrypted stream + public static Stream Decrypt(Stream data, string profile) + { + SAF.Configuration.ConfigurationManager cm = (ConfigurationManager)System.Configuration.ConfigurationSettings.GetConfig("Framework"); + CryptographyConfiguration cc = cm.CryptographyConfig; + //retrieve the security profile information for configuration file + XmlNode cryptoInfo = cc.SearchCryptoInfoByProfileName(profile); + bool symmetric = Boolean.Parse(cryptoInfo.Attributes["symmetric"].Value); + + ICryptoTransform decryptor =null; + SymmetricAlgorithm provider = null; + + if (symmetric != true) + { + throw new System.Exception("This method id not intended for asymmetric encryption"); + } + //retrieve the secret key and iv from the configuration file + provider = cc.GetSymmetricAlgorithmProvider(profile); + string key = cryptoInfo.SelectSingleNode("SecretKey").InnerText; + string iv = cryptoInfo.SelectSingleNode("IV").InnerText; + + provider.Key = Encoding.Default.GetBytes(key); + provider.IV = Encoding.Default.GetBytes(iv); + decryptor = provider.CreateDecryptor(); + //decrypt the stream + CryptoStream decStream = new CryptoStream(data, decryptor, CryptoStreamMode.Read); + MemoryStream decrypted = new MemoryStream(); + byte[] buffer = new byte[2048]; + int count = 0; + + while ((count = decStream.Read(buffer,0,buffer.Length)) != 0) + { + decrypted.Write(buffer,0,count); + } + + decrypted.Position = 0 ; + return (Stream)decrypted; + } + + /// + /// decrypt the string data symmetrically using the security profile + /// information stored in the configuration file + /// + /// encrypted string data + /// security profile name + /// decrypted string + public static string Decrypt(string data, string profile) + { + //convert the string to stream + MemoryStream original = new MemoryStream(Encoding.Default.GetBytes(data)); + Stream decryptedStream = Decryption.Decrypt(original,profile); + byte[] decryptedData = new Byte[decryptedStream.Length]; + decryptedStream.Read(decryptedData,0,decryptedData.Length); + //convert the stream to string + return Encoding.Default.GetString(decryptedData); + + } + + } + + + + + +} diff --git a/SAF/SAF.Cryptography/SAF.Cryptography.csproj b/SAF/SAF.Cryptography/SAF.Cryptography.csproj new file mode 100644 index 0000000..946a0a2 --- /dev/null +++ b/SAF/SAF.Cryptography/SAF.Cryptography.csproj @@ -0,0 +1,139 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SAF/SAF.Cryptography/SAF.Cryptography.csproj.user b/SAF/SAF.Cryptography/SAF.Cryptography.csproj.user new file mode 100644 index 0000000..29ccfc6 --- /dev/null +++ b/SAF/SAF.Cryptography/SAF.Cryptography.csproj.user @@ -0,0 +1,48 @@ + + + + + + + + + + + + diff --git a/SAF/SAF.Cryptography/bin/Debug/Microsoft.Web.Services.dll b/SAF/SAF.Cryptography/bin/Debug/Microsoft.Web.Services.dll new file mode 100644 index 0000000000000000000000000000000000000000..b56cdea1a2c2f4a0903c4e068d88d5a3c660fbdc GIT binary patch literal 311296 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 literal 0 HcmV?d00001 diff --git a/SAF/SAF.Cryptography/bin/Debug/SAF.Configuration.dll b/SAF/SAF.Cryptography/bin/Debug/SAF.Configuration.dll new file mode 100644 index 0000000000000000000000000000000000000000..0bb5aa8f83ff6d08796c8305e44ef118a5f1a409 GIT binary patch literal 11776 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 literal 0 HcmV?d00001 diff --git a/SAF/SAF.Cryptography/bin/Debug/SAF.Cryptography.dll b/SAF/SAF.Cryptography/bin/Debug/SAF.Cryptography.dll new file mode 100644 index 0000000000000000000000000000000000000000..a6f8c9876b059391e3017207f9ad1fe2fd722510 GIT binary patch literal 24576 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 Px&`VMs9WIw$^!od_#yD) literal 0 HcmV?d00001 diff --git a/SAF/SAF.Cryptography/bin/Debug/SAF.Cryptography.pdb b/SAF/SAF.Cryptography/bin/Debug/SAF.Cryptography.pdb new file mode 100644 index 0000000000000000000000000000000000000000..2fb47aa7a29dfb2ce187a3bb1b7acd325495f26d GIT binary patch literal 69120 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 literal 0 HcmV?d00001 diff --git a/SAF/SAF.Cryptography/obj/Debug/SAF.Cryptography.dll b/SAF/SAF.Cryptography/obj/Debug/SAF.Cryptography.dll new file mode 100644 index 0000000000000000000000000000000000000000..a6f8c9876b059391e3017207f9ad1fe2fd722510 GIT binary patch literal 24576 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 Px&`VMs9WIw$^!od_#yD) literal 0 HcmV?d00001 diff --git a/SAF/SAF.Cryptography/obj/Debug/SAF.Cryptography.dll.incr b/SAF/SAF.Cryptography/obj/Debug/SAF.Cryptography.dll.incr new file mode 100644 index 0000000000000000000000000000000000000000..d03018bf8408ccf8346a060ce6961b141f80e4be GIT binary patch literal 2360 zcmcgu&rcIU82xrpz>3I;c$~yULktZ+B31Apv_)$GBdY;p5478DS>5h7y9)+S{sC$l zjWK#M@#4*R^FoA_i-OUFlL;O@n5aR$dhmVIt}Vy`Fm%XtX5Z}2_x62nz9nJnu8}uv zKV^xb8Pm#$Sjta{tmBI4Q4w|W1=BKI(b*~dY10!~TnW#2T*DI?zR`DtVW-kSvnkIP zu94{wbaKfd4?Rmhg|Qw->?92XPf?x>x`{QHZUCF5 zZrss@-b)dTCxK}+ho^nqmj|993xC`c{^@_Q`~ys$%L}42fa=902KGLBEhnke#M=8` z;Pkd4+dv&TO+xXJ4UA-pKFzl>qYhRK?JRn|RML<)oo0|<6Kc(E;ITMK+`~yl*ZmR#u#Fy5i5uJR?eG{>tQ&`!1J@x zn+Cj9o5B4|Vyf){>(x?mRSZzQ^x6)`M(}CTUUmF#TvA$?FIx2s{-18;r&(Ld!T#4b`KqeV)@}^csaS_RlwO`UVdT2ST)4ItClB|o+$sgP(Q#lq{%$;IMsgy%h_T9v;sy!~>*pYs;;m#=D-2`R>(J-^|B`GVw44Ba} zCeU3~AUtZ09C?kuhzs*CzZ|*0ckF^%!xiUWc8?&+M^M4hQI$3#xK@tLj!*XI)yRnt zHF@g+w)4CN+HF=Y;By}8S*Wbcv8r4FQgwkJ&bX?aD(CYM;_D-!G3FHHb2rY7BTHPZ d`G13QO%G}dJD1=7DWu3DG*YH2Q_{t9`~&>?jcot` literal 0 HcmV?d00001 diff --git a/SAF/SAF.Cryptography/obj/Debug/SAF.Cryptography.pdb b/SAF/SAF.Cryptography/obj/Debug/SAF.Cryptography.pdb new file mode 100644 index 0000000000000000000000000000000000000000..2fb47aa7a29dfb2ce187a3bb1b7acd325495f26d GIT binary patch literal 69120 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 X61i*p+99X-?em*_YXa{Ru*~cK#~(3D literal 0 HcmV?d00001 diff --git a/SAF/SAF.Cryptography/obj/Debug/SAF.Cryptography.projdata2 b/SAF/SAF.Cryptography/obj/Debug/SAF.Cryptography.projdata2 new file mode 100644 index 0000000000000000000000000000000000000000..f07ed8893a63e32e412c4e301e69203e988c45ce GIT binary patch literal 31752 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 literal 0 HcmV?d00001 diff --git a/SAF/SAF.Cryptography/obj/Release/SAF.Cryptography.projdata b/SAF/SAF.Cryptography/obj/Release/SAF.Cryptography.projdata new file mode 100644 index 0000000000000000000000000000000000000000..a2aa532f5f120618dadcbb6bb1175f1d60221880 GIT binary patch literal 30088 zcmeHQZHQgP8Gdh)U2kICZf(1!64Tol?3%kDHciEb?NXD}##Te>rV?x{CY#OXV>i3q z-KZ<2EWsb4Eg~XF7!Ae zcgsDC`2b4olT$K|>m#Uj0(B3YcJ^Yd>9z(?f{Dr2q^WU40;>E z?-_a2oJUOAX^e9QPdtiW$4t3kG(|`5]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 literal 0 HcmV?d00001 diff --git a/SAF/SAF.EventNotification/AssemblyInfo.cs b/SAF/SAF.EventNotification/AssemblyInfo.cs new file mode 100644 index 0000000..9f89a32 --- /dev/null +++ b/SAF/SAF.EventNotification/AssemblyInfo.cs @@ -0,0 +1,58 @@ +using System.Reflection; +using System.Runtime.CompilerServices; + +// +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +// +[assembly: AssemblyTitle("")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("")] +[assembly: AssemblyCopyright("")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: + +[assembly: AssemblyVersion("1.0.*")] + +// +// In order to sign your assembly you must specify a key to use. Refer to the +// Microsoft .NET Framework documentation for more information on assembly signing. +// +// Use the attributes below to control which key is used for signing. +// +// Notes: +// (*) If no key is specified, the assembly is not signed. +// (*) KeyName refers to a key that has been installed in the Crypto Service +// Provider (CSP) on your machine. KeyFile refers to a file which contains +// a key. +// (*) If the KeyFile and the KeyName values are both specified, the +// following processing occurs: +// (1) If the KeyName can be found in the CSP, that key is used. +// (2) If the KeyName does not exist and the KeyFile does exist, the key +// in the KeyFile is installed into the CSP and used. +// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. +// When specifying the KeyFile, the location of the KeyFile should be +// relative to the project output directory which is +// %Project Directory%\obj\. For example, if your KeyFile is +// located in the project directory, you would specify the AssemblyKeyFile +// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] +// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework +// documentation for more information on this. +// +[assembly: AssemblyDelaySign(false)] +[assembly: AssemblyKeyFile("")] +[assembly: AssemblyKeyName("")] diff --git a/SAF/SAF.EventNotification/EventClient.cs b/SAF/SAF.EventNotification/EventClient.cs new file mode 100644 index 0000000..3edf6b2 --- /dev/null +++ b/SAF/SAF.EventNotification/EventClient.cs @@ -0,0 +1,118 @@ +using System; +using System.Reflection; +using System.Collections; +using System.Threading; +using System.Runtime.Remoting; +using System.Runtime.Remoting.Channels.Http; +using System.Runtime.Remoting.Channels; +using System.Runtime.Serialization; +using System.Runtime.Remoting.Activation; + +namespace SAF.EventNotification +{ + /// + /// EventClient is used to communicate with EventServer. + /// It provides the client ability to subscribe, unsubscribe and publish + /// event notification to EventServer + /// + public class EventClient : MarshalByRefObject + { + public delegate void EventProcessingHandler(string eventName,object content); + public delegate void RepeaterHandler(string eventName, object content); + + private EventServer es; + //local hastable to keep track the event that client has subscribed + private Hashtable repeatDelegate= new Hashtable(); + public EventClient(string url) + { + //set up the remoting for bilateral communciation + ChannelServices.RegisterChannel(new HttpChannel(0)); + //get the proxy for the remote EventServer object + es = (EventServer)Activator.GetObject(typeof(EventServer),url); + + } + + + /// + /// Subscribe an event on the EventServer + /// + /// event name + /// delegate on the client side that process the event notification + public void SubscribeEvent(string eventName, EventProcessingHandler s) + { + try + { + //check if the event has already subscribed by the client + Delegate handler =(Delegate)repeatDelegate[eventName]; + //if already subscribed, chain up the delegates + //otherwise, create a new delegate and add it to the repeatDelegate hashtable + if (handler != null) + { + //chain up the delegates together + handler = Delegate.Combine(handler, s); + //reset the delegate object in the hashtable + repeatDelegate[eventName] = handler; + + } + else + { + repeatDelegate.Add(eventName,s); + EventClient.EventProcessingHandler repeat = new EventClient.EventProcessingHandler(Repeat); + //subscribe the "repeat" delegate to the EventServer. + es.SubscribeEvent(eventName,repeat); + } + } + catch (Exception ex) + { + Console.WriteLine(ex.Message); + } + } + + /// + /// Unsubscribe a event + /// + /// event name + /// delegate on the client side that process the event notification + public void UnSubscribeEvent(string eventName, EventProcessingHandler s) + { + //retrieve the delegate handler from the hashtable + Delegate handler =(Delegate)repeatDelegate[eventName]; + //check if the handler is null + //if not null, remove the event processing handler from the chain + if (handler != null) + { + handler = Delegate.Remove(handler, s); + //reassign the chain back to the hashtable. + repeatDelegate[eventName] = handler; + } + } + /// + /// Repeat method functions as a repeater of the event notification + /// on the client side. Repeat method is invoke by the EventServer upon the + /// arrival of new notificatioin and is responsible for dispatch the notification + /// on all the "handlers" on the client side + /// + /// event name + /// the content of the notification + public void Repeat(string eventName, object content) + { + //Retrieve the delegate from the hashtable. + EventProcessingHandler eph = (EventProcessingHandler)repeatDelegate[eventName]; + if (eph !=null) + { + //invoke the delegate + eph(eventName, content); + } + } + + /// + /// Raise the event + /// + /// event name + /// event content + public void RaiseEvent(string eventName, object content) + { + es.RaiseEvent(eventName,content); + } + } +} diff --git a/SAF/SAF.EventNotification/EventServer.cs b/SAF/SAF.EventNotification/EventServer.cs new file mode 100644 index 0000000..99e8393 --- /dev/null +++ b/SAF/SAF.EventNotification/EventServer.cs @@ -0,0 +1,113 @@ +using System; +using System.Collections; +using SAF.EventNotification; + +namespace SAF.EventNotification +{ + /// + /// EventServer is responsible for accepting the subscriptions from clients + /// and notify the clients when information is published to the EventServer. + /// + public class EventServer : MarshalByRefObject + { + //the hastable keep track all the event registered/subscribed + private Hashtable delegateMap =new Hashtable(); + public EventServer() + { + } + + /// + /// keep the EventServer live forever + /// + /// + public override object InitializeLifetimeService() + { + //object live indefinitely + return null; + } + + /// + /// SubscribeEvent add the client delegate to delegate chain + /// for a given event name + /// + /// event name + /// client side delegate + public void SubscribeEvent(string eventName,EventClient.EventProcessingHandler handler) + { + //ensure that only one thread modify the delegate chain at a time. + lock(this) + { + Delegate delegateChain = (Delegate)delegateMap[eventName]; + //check if the delegate chain is null. if null, add the + //client side delegate as the initial handler. Otherwise, + //add delegate to the chain. + if (delegateChain == null) + { + + delegateMap.Add(eventName,handler); + } + else + { + //add the delegate to the chain + delegateChain = Delegate.Combine(delegateChain,handler); + //reset the delegate chain in the hashtable + delegateMap[eventName] = delegateChain; + } + } + } + + /// + /// UnsubscribeEvent remove an client side delegate from delegate chain + /// + /// event name + /// + public void UnSubscribeEvent(string eventName,EventClient.EventProcessingHandler handler) + { + //ensure that only one thread modify the delegate chain at a time. + lock(this) + { + Delegate delegateChain = (Delegate)delegateMap[eventName]; + //check if the delegate chain is null. if not null, remove the + //client side delegate from the delegate chain. + if (delegateChain != null) + { + //remove the delegate from the chain + delegateChain = Delegate.Remove(delegateChain,handler); + //reset the delegate chain in the hashtable + delegateMap[eventName] = delegateChain; + } + } + } + + /// + /// RaiseEvent invokes the delegate chain of a specific event + /// + /// event name + /// content of the notification + public void RaiseEvent(string eventName, object content) + { + Delegate delegateChain = (Delegate)delegateMap[eventName]; + //retrieve the list of individul delegate from the chain + IEnumerator invocationEnumerator = delegateChain.GetInvocationList().GetEnumerator(); + //loop through each delegate and invoke it. + while(invocationEnumerator.MoveNext()) + { + Delegate handler = (Delegate)invocationEnumerator.Current; + try + { + handler.DynamicInvoke(new object[]{eventName,content}); + } + catch (Exception ex) + { + //if the client who receive event notification is no long + //available, remove the its delegate + delegateChain = Delegate.Remove(delegateChain, handler); + delegateMap[eventName] = delegateChain; + } + } + + + + } + } +} diff --git a/SAF/SAF.EventNotification/SAF.EventNotification.csproj b/SAF/SAF.EventNotification/SAF.EventNotification.csproj new file mode 100644 index 0000000..58ff77d --- /dev/null +++ b/SAF/SAF.EventNotification/SAF.EventNotification.csproj @@ -0,0 +1,103 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SAF/SAF.EventNotification/SAF.EventNotification.csproj.user b/SAF/SAF.EventNotification/SAF.EventNotification.csproj.user new file mode 100644 index 0000000..7e24af5 --- /dev/null +++ b/SAF/SAF.EventNotification/SAF.EventNotification.csproj.user @@ -0,0 +1,48 @@ + + + + + + + + + + + + diff --git a/SAF/SAF.EventNotification/bin/Debug/SAF.EventNotification.dll b/SAF/SAF.EventNotification/bin/Debug/SAF.EventNotification.dll new file mode 100644 index 0000000000000000000000000000000000000000..213273229539ecd24a50bef4ca73b7664ec7b0fc GIT binary patch literal 6144 zcmeHLeT-aH6+iEzv)k!*=uW@sv`lHyr7dI2mY|j3&dzSzfo@xNwuMSf_sz`R+1GvZ z-tgX=O$Q38N=XQqps5KeF+k!+j3OjPh=ia~KoTLfe~H10v5{(HP{SXF5bE!o_okh8 z7aI73nCRWy-@E6Yk9*F!=ic{bM?U`$8AN2FpFK5PQ{!2Ro#5^~SON_7`HYU$=51yo- z=ZJ3R!2r?2kpffa+c;4VsPQ#Kne(%k9%YHTJEXcnZ||UUp*j?TUUV4%Jn=2|8!|6CKmNA2C-pj!t6tU$z&{&@RovF|H+s%y=5Tv_Yz20B0v=- z=IM8_d85mN7m1Upo^B5YlYN&1PSQG^v;_h02Hk!;r7)=_^^_?d>Bik0*Cz1bYkvVCx&!&e=MLhl7_Q&~!g*d;W ztI3gpsoq7&^`gW1yam?g^4eF;>q8yGK~}pcuPedWa9PZX61bj2iqk9_QJPP7b@d^f z?&(l0Eg}&|90+u+14dbxZY}->D!t-s=Z!nDVk!wL zdIuR|Wi9M;Gw4NH44%9zn9{D-*2OmtQw42ve8;r)a6xzI;iyKG=;79lDb`y-Pe!Z5 z>n(U=9vA9G+Na$J>Qw9*$B?1%D_Jv&VHN!*rr7H&<~8~Y3Phu44X%_IfU}L)qi);t z(YPNoI&GOTAK76UgYrO=SW=^#1V5TqWb+oWFmt@#+(f*0pApOh2dOCITLkwBT7tIV z9fB>vFACl-_*LLGS`OTTN@Dy5aD*Ns*BHe~`MPl%{eqq{4nXE5V}f3$*NiFPn?`_{ zw~WKUe*=F@3G++z8eMMQ2ku%kpg)n1I)0fBnNt|wE93jk=jgBWBlDN^PkPq85!_eJ zUt|2b`6}gbir)k-6kH+LFZfx(g5b@9CBfSTD}qz>cY1)1(ZlozJxbr9AE4%cimE(8 ze?(oIM|eMQmCQMF6c4l#I?tSnN)_X^JblsJ-{c}Ou@t;FL8$69V)?sf&f?PcFV0g%BNA)P+04 zR|!3zO3iXm@$Iq_OSH$mXd+sWMlCytMT+jUH>IeU4_aVS1h5^bdf92+tXey*y2^)m zx0IVmQ3qqI?aabJs8*|F*W8&pdzBv`Ju?{vgwynAF*fE~RaLkAsabTqM$5Nrli^Gj zcCgy4%)%&m^@ioPW@;2XcfzhUeR)aGWDhCct_JVzOy-y!cIF|f$lQ=^)m$$?fdwQl z{2G_TdF`g}oJ)Jt<;}>AsyaRu+}iui=L(bfO{Sb6w>=CS#1PM1QiEc_c*6rKwlzml zHaJ3ln;vU56pcn6@i?k^+NMILw)$Q@p2?%sr!B5#@ZvM4Ipt8mh*Ql)(){OFt@YjTX^of(_-l~v_Dk9ar{2w)gie1dz!ZRds$*&)Zp zrzrYz+kq@m-uJB*6^GqsU7=Q@*gGhWxzO}|_9;%uP|LOIb|pTJBk+1>^wW{Xmpt*% z;YT0LfAh!BZhd>aRHW{w@7%w4`Q|t7HxlVZ==062rlk^DT}!2V=I|rKm{~SAYo>cs zne<}NnwIW0vZSGBSYBrlUFTspzG1ZVo&;&>eZ616=SwENF9k*>(?zY5wec4z5q>xyxiAC#B}=q%mU))r{~g>mfY&a*(c0|>V>5<(@diHt9Hvo> zinNP%f-VBLV$AJ1^R4%y_qj%Aj=qDR4bk&+!sV~D_V0vv0*@hd4OT7kVaFzi@LnUA zCdd<^wW2i!u7%kEe2YTJd7z^9r1^->HcFWH!EvcJi={&%vk`Gef19byIlz}I{#QT+ z*sJ4DK|91MB&D~ugV&JtTZq;YIbJ)9zCmQ#o)5u7Ko#+$ae<#KJ3yCVt+wo5$oh~z zAIm0ui)}>TMAuQjjQa6A>RS8{rXSiwV{|$6IXj`~y70y6@Tf$2SkGaHrsGI z1bU?-b2+L)(}B%C@qY*8YhsNv(V&(@P@_p`cgA^MF4~bQ^y<*_X-cvd$?g|Fcf~e% zN7&DH+)Qz%`HS$w`y1`aZrJt^LlaSj9T|w$ACf#@D06YPFO}=OwEzGB literal 0 HcmV?d00001 diff --git a/SAF/SAF.EventNotification/bin/Debug/SAF.EventNotification.pdb b/SAF/SAF.EventNotification/bin/Debug/SAF.EventNotification.pdb new file mode 100644 index 0000000000000000000000000000000000000000..043f8f2c66f464f84327e9be5449d08fe6385a57 GIT binary patch literal 19968 zcmeI3U2Igx6~|}oWn%~s48%zZ4F=3Ntc^o}&?aCE6dEW2lZvLUidn8LTFW0 z`#=#7RN{dLA|+BnsYE3nP(@W#H7b=zKcqxzOCO@D?E|VR@)98BfmRgy`_G-(FZ>CJ zVz>wWeeRt(^L5UdIWu#Y4e3-*cecATSKr#$I&WV6hPE~JOOj1ZV@6F{)n=e7V`8vb zV2d80=^=~$J^~sz{6%A~-j3*T)j-pU$93eM?x8noJ1^FLFxQwHHS0d; zOA!zAY?@7{r-5pa08>Cc7z;*&CqNB&3TPVCg7IJimJEBEcgPL1fBzgPcs=j z4@QFFM)%A9!)@GAe?txQw*G4_m#+VMmvkkMbU6GqaKGlieB)uH{?`66m@f`SfX8v| zm-pT;`>U>qhOY)D*ae?GkK@C4BvH?Yq5G$v37iIN9kfpR{d48M zIT`E^GPz85F5Q_!0BnRc6!4SMzmJ;_wouCfcLK^KTgAX04+{l7IZiVmCumG=KW zX?@vWWfVL8xkl<$-F2v>!vEsqn{|)LL?EF9E zWGm z?M}J2peNnYmHw`cY?A4(u9j3Tz28YrQe7=;lB*RSzg7|+sUs2Q@p&y_vDnPjwUasP z!s2edI6}t>#b$ZGY1_9wo9an#4{WX6OI6n%CgTj{(qwzNQH62n?y9J#ptCEWi`^My zm455Wtt+bcr@*9^wP!mzg}y?1sw>S{6w(JFT#Wy%%i2+daHlfb?Lb-!6%Q>ku8dAvHbcxj(mW%bSu8+ z*V0L*-mcB8!>nQ8uYN2d!pjb}jm$^B+%`I^YDeH;q5+`_3`{wmbMZ^f_?>U6pDcgjImyPD{ z&g4+zcYnU&?d;drn|37)zZJ&G*8M=Kmm!#*? zc^K^7RhWa#KK9i}D*PrGKH1$v;uc8DZC=DrrRH zv%_lm2&6~Q+XSbz1Usw*Q7vIQ>~oy2-<(?t{nD7j*b!6PmP*Hr&TPLn!__b3ZNI(_ zSKQeOj}ysM?+7yw%qi3@y-C*^v%am1;(#$&!UneP0Iu)zyWm=xTp#=*e7epyykMwmY-qEUFV%CZci8zo2@_4M4)rBbV)y~9o~VT1s{RS zU@$V1ksFNtRd1#J)z?!%)Svw|?$55=>eCOTQy-tyj!3@b30);Lm+b7Q*#Dm)UB2w| z`&j?V_WAvtiTlf|JTI?w>-MQ|+G6V>@hvZ*&6mwumr3XB@jY0d?hJH+pyOjYh2tpB zo}<`F1XbRbc@X26>*5mrB^5%<__l_okY4Z)GG8H9`8$F?$Z?@fA+vwSG3Giy=87Gk z#(A2&k0|#V(q8UCjZ=1Dz3OG0i^|5Se*OdD-_cLjDD%7<&orkil3g9lyPzxB*^vvl z=SgRf^>L(hZ+w%WFIpKg`1X#{>dNnb z-ff5aPN>wHgj)3FfB+yzc84X6z92exjf@~zHj)C_@#Tz!Y zuX+_T^{l$}+c!O{ew}&stTtNRv)cIv&z}Ru>o7jV3UNi_whJ4adhNc5H9IdwfPA%S zCjLHC7Q5B1+R@lW(szS>3inj#QNPE_$N2@HkNI7ssgEkR$;s-*aGQIk@7lsEuIDwT z`S9s*=97(=i{Q(6*FH+?=1cH6Jsx3}gDF^N4tNDDD73i^xp2*h71kXc`?dfPIC}UkBd-|0;YJoPC<+bG`%qEx6`(H$2W5>y1)^jn0o>I72E*#QdWCw*<vi}pWATBZF*l6C-yW+1Qr&VtJp z=-=8R373ERebWoP%MV_Jf5oNCAJ~)SLmMq~{?I@wi>B3!9eu$soqbmfj%wgJtv1K=Rg8Yy4bJU9!^gHJ%&(92#PKl_h2Gwl9DmX4Y5 zfLCYcl%zE+wr7%sy0;8v^}Qih`5}_>zFe5^$~70u>CQRU%ck3x3-et$7Tr46p6)_p z#$AqMCZS3tp5WtAB%H8y>zs>+%Se`#mUL6Q%b)8 zJn8>IvEPP1J8v0(!e5Mv`~N56bHqoQ!!^eIlBdfyZgBQ{>l2h&if;g3YZ%XzbS zP4k-8m8-084%F5t^B%E6ZDBZK0O#Xh|6Io+OZ~JJ9(c{lmenmwnwnSgTcuwlulY_c z^%azG5OUr-@5eme9YgJRJn7A^gl}VA*Wp z*FXc`YZSlt3@lr`1M$C+azkbWjx@lKUb2G@pRM1WKx8=B|5$Qi?2mQ3musH?D%SPe zr{{dU?$}>Gtp3l6gMZilxp93u^X9rtXSZq0bnFSTrZL--YTU&Sbb_AkUEQfS!-URs zSCDNS*jTB;&%A6sgDqCHv3y(;TDHglQ7zCN%QT=fwTQ50scFnbkQYn8t7alY$Z5o9ly?WmamM1d*>exd^UZS-%JJal_{Ve zXsuPelfTGUo&wqv%cr!~P5={u?llzq9<~1itT|I^|5<(5|9jZ~!VvB6b*?s~^Lilt vOXs73<|KZ>qxh-sy|Sb3^dh=D4NSkgVo|9`1Ca(I4MZ9k<{J1P!&OP3 literal 0 HcmV?d00001 diff --git a/SAF/SAF.EventNotification/obj/Debug/SAF.EventNotification.dll b/SAF/SAF.EventNotification/obj/Debug/SAF.EventNotification.dll new file mode 100644 index 0000000000000000000000000000000000000000..213273229539ecd24a50bef4ca73b7664ec7b0fc GIT binary patch literal 6144 zcmeHLeT-aH6+iEzv)k!*=uW@sv`lHyr7dI2mY|j3&dzSzfo@xNwuMSf_sz`R+1GvZ z-tgX=O$Q38N=XQqps5KeF+k!+j3OjPh=ia~KoTLfe~H10v5{(HP{SXF5bE!o_okh8 z7aI73nCRWy-@E6Yk9*F!=ic{bM?U`$8AN2FpFK5PQ{!2Ro#5^~SON_7`HYU$=51yo- z=ZJ3R!2r?2kpffa+c;4VsPQ#Kne(%k9%YHTJEXcnZ||UUp*j?TUUV4%Jn=2|8!|6CKmNA2C-pj!t6tU$z&{&@RovF|H+s%y=5Tv_Yz20B0v=- z=IM8_d85mN7m1Upo^B5YlYN&1PSQG^v;_h02Hk!;r7)=_^^_?d>Bik0*Cz1bYkvVCx&!&e=MLhl7_Q&~!g*d;W ztI3gpsoq7&^`gW1yam?g^4eF;>q8yGK~}pcuPedWa9PZX61bj2iqk9_QJPP7b@d^f z?&(l0Eg}&|90+u+14dbxZY}->D!t-s=Z!nDVk!wL zdIuR|Wi9M;Gw4NH44%9zn9{D-*2OmtQw42ve8;r)a6xzI;iyKG=;79lDb`y-Pe!Z5 z>n(U=9vA9G+Na$J>Qw9*$B?1%D_Jv&VHN!*rr7H&<~8~Y3Phu44X%_IfU}L)qi);t z(YPNoI&GOTAK76UgYrO=SW=^#1V5TqWb+oWFmt@#+(f*0pApOh2dOCITLkwBT7tIV z9fB>vFACl-_*LLGS`OTTN@Dy5aD*Ns*BHe~`MPl%{eqq{4nXE5V}f3$*NiFPn?`_{ zw~WKUe*=F@3G++z8eMMQ2ku%kpg)n1I)0fBnNt|wE93jk=jgBWBlDN^PkPq85!_eJ zUt|2b`6}gbir)k-6kH+LFZfx(g5b@9CBfSTD}qz>cY1)1(ZlozJxbr9AE4%cimE(8 ze?(oIM|eMQmCQMF6c4l#I?tSnN)_X^JblsJ-{c}Ou@t;FL8$69V)?sf&f?PcFV0g%BNA)P+04 zR|!3zO3iXm@$Iq_OSH$mXd+sWMlCytMT+jUH>IeU4_aVS1h5^bdf92+tXey*y2^)m zx0IVmQ3qqI?aabJs8*|F*W8&pdzBv`Ju?{vgwynAF*fE~RaLkAsabTqM$5Nrli^Gj zcCgy4%)%&m^@ioPW@;2XcfzhUeR)aGWDhCct_JVzOy-y!cIF|f$lQ=^)m$$?fdwQl z{2G_TdF`g}oJ)Jt<;}>AsyaRu+}iui=L(bfO{Sb6w>=CS#1PM1QiEc_c*6rKwlzml zHaJ3ln;vU56pcn6@i?k^+NMILw)$Q@p2?%sr!B5#@ZvM4Ipt8mh*Ql)(){OFt@YjTX^of(_-l~v_Dk9ar{2w)gie1dz!ZRds$*&)Zp zrzrYz+kq@m-uJB*6^GqsU7=Q@*gGhWxzO}|_9;%uP|LOIb|pTJBk+1>^wW{Xmpt*% z;YT0LfAh!BZhd>aRHW{w@7%w4`Q|t7HxlVZ==062rlk^DT}!2V=I|rKm{~SAYo>cs zne<}NnwIW0vZSGBSYBrlUFTspzG1ZVo&;&>eZ616=SwENF9k*>(?zY5wec4z5q>xyxiAC#B}=q%mU))r{~g>mfY&a*(c0|>V>5<(@diHt9Hvo> zinNP%f-VBLV$AJ1^R4%y_qj%Aj=qDR4bk&+!sV~D_V0vv0*@hd4OT7kVaFzi@LnUA zCdd<^wW2i!u7%kEe2YTJd7z^9r1^->HcFWH!EvcJi={&%vk`Gef19byIlz}I{#QT+ z*sJ4DK|91MB&D~ugV&JtTZq;YIbJ)9zCmQ#o)5u7Ko#+$ae<#KJ3yCVt+wo5$oh~z zAIm0ui)}>TMAuQjjQa6A>RS8{rXSiwV{|$6IXj`~y70y6@Tf$2SkGaHrsGI z1bU?-b2+L)(}B%C@qY*8YhsNv(V&(@P@_p`cgA^MF4~bQ^y<*_X-cvd$?g|Fcf~e% zN7&DH+)Qz%`HS$w`y1`aZrJt^LlaSj9T|w$ACf#@D06YPFO}=OwEzGB literal 0 HcmV?d00001 diff --git a/SAF/SAF.EventNotification/obj/Debug/SAF.EventNotification.dll.incr b/SAF/SAF.EventNotification/obj/Debug/SAF.EventNotification.dll.incr new file mode 100644 index 0000000000000000000000000000000000000000..4000949f20dc8a0c381b3c3090240c09db96b587 GIT binary patch literal 1518 zcmcgsJ#Q015PfGt2%(`sw5)`nffx{ih=hXVoPbdhP)rmgBE+427Y^{^HfS*7Spd}J-)@O(%8Y1vmfZbdS(kl71SajAw|| zu*$a$&n3hgi1`t7r{NE zhmkGO(`Oq}ulJ%D?Gn9TD$S#blsZMW(q;CX)G@P2isc@z148ab`^zS|UM?E&+<)bo zu(Rs6`(iTmf3X?fS~&4zaLswCXKXAQUHC!P7w8=YYn-8J+oclA?CllaP;NX|+%mK? zAiWY1NqIJ7raO!kp7g2D@?X8*?YE-k@tA~Uy`QnkDEvgctNP8u^#|?lF&rnhbIub~ zO557`oWE7hdCGatc;h;8F-bH?-+XfD#nD#V5gua4=sVB*TThpHqe9zG*6!7Aa=~FM xwU~)nOMzhYG*quka!FSL*h!ss2HbtttMe*$tK0hIs% literal 0 HcmV?d00001 diff --git a/SAF/SAF.EventNotification/obj/Debug/SAF.EventNotification.pdb b/SAF/SAF.EventNotification/obj/Debug/SAF.EventNotification.pdb new file mode 100644 index 0000000000000000000000000000000000000000..043f8f2c66f464f84327e9be5449d08fe6385a57 GIT binary patch literal 19968 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 literal 0 HcmV?d00001 diff --git a/SAF/SAF.EventNotification/obj/Debug/SAF.EventNotification.projdata b/SAF/SAF.EventNotification/obj/Debug/SAF.EventNotification.projdata new file mode 100644 index 0000000000000000000000000000000000000000..0968d85fda3c486ba94c2dfa0b5904919bb06d15 GIT binary patch literal 19464 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 literal 0 HcmV?d00001 diff --git a/SAF/SAF.EventNotification/obj/Debug/SAF.EventNotification.projdata2 b/SAF/SAF.EventNotification/obj/Debug/SAF.EventNotification.projdata2 new file mode 100644 index 0000000000000000000000000000000000000000..394beb68e938779233e56d026f80481da1ebbaa2 GIT binary patch literal 5000 zcmeH~&u>&!6vw}>&~YHxUA%?3pJi?zi#dz(({pf0MemZrjQ6N=QW%x?kLMTmg#oD1pZB!4bN_)35~ zG>)80>@z`PL&w1CI;#uN8t_bT-zaxfwO>b`!96;x%Ta^l=+jb7)9jCfoLbQEbi#8G zd9}#D2d*ZPQyC|?>mu|iPMUDmb?yaC`Vx87pq({XIUQ4(g^rbIcdF}r_DZRSsm0Q% zf8fRa!6#Fi(Ij5{Lhs?7X}neFSjLxw>~Gm+9!7vq`RwJ5(suCegv52i!I5ysJm8}R z{Z;9G@Xt-}m39~S2I&BJkoj63gFJ>+e!alf;J@X8s|fb?H?zOD0-e$0Y-c#1b_amG zlk!ZKegl90EYEi7PtF>Yh`dS=sUUepkY>TtGt0b+pxtc8kL%Bv6=9E(qjQ-&R|6K4 zziAFFhQFlB(7Rk)3RR&!yV6`WM`h@1I0vW(bJgq+xU1N?Slgs6p{6wT34S{hvS}*F zuMFJ-&Y!)#dJDT-ouHZJp($*b1SJ#?Rmem<9Q*gjI5zQ5Q@C2K0~u6 z_cf@4lSrTQvcG?)bIYqF{0n>8mTb^)SJo3;t)8}iV4tM@A(wwP*xw!A>Zc=(cuC0;?B%8`KHlh+kk$ z0!z>y0>6p0N0GJ(1)fBjd#w3Pt5`8srn{UzjvOZ=$9KSb5d#NKX3$NM?Z(B|S2=M465e%p@VYfKP|dMb`NjV0 zT;zUa`w#ij4)!lR$1L9BcYGIXl`YOMjlZtHW%dZqwtubuuGQaG=sgu?b64#m^Z(!V zw=F4F@u8T1JSRK?Hoh{mDm(6Xng}>}N4O5HvhDu*! zwy1G~XRa&UJO-QwnmPk4Wci<$`@z0tytOODlW*;3g6cG1NS}5*e}4W*XQ8D{fA+(X zWRh9Fq-XO@-A#N@A2Dlmwz0k-&&t}l{0uH?fTw&1s4aBIFz)5(bq}8gerN*g0-Ii+ z{SLfk0_zdm{ok`rmxZu?0T#6XZvHudCeFW?b^h`6W&2;c`3Jilv5sWhAA^!urk3(> rZ|qv%k6+!-egZ$yy#3{aEB7=1Z=F5-bM+>4^ZEa>p=J2L#!}YbCpa;? literal 0 HcmV?d00001 diff --git a/SAF/SAF.Library.Security/AssemblyInfo.cs b/SAF/SAF.Library.Security/AssemblyInfo.cs new file mode 100644 index 0000000..9f89a32 --- /dev/null +++ b/SAF/SAF.Library.Security/AssemblyInfo.cs @@ -0,0 +1,58 @@ +using System.Reflection; +using System.Runtime.CompilerServices; + +// +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +// +[assembly: AssemblyTitle("")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("")] +[assembly: AssemblyCopyright("")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: + +[assembly: AssemblyVersion("1.0.*")] + +// +// In order to sign your assembly you must specify a key to use. Refer to the +// Microsoft .NET Framework documentation for more information on assembly signing. +// +// Use the attributes below to control which key is used for signing. +// +// Notes: +// (*) If no key is specified, the assembly is not signed. +// (*) KeyName refers to a key that has been installed in the Crypto Service +// Provider (CSP) on your machine. KeyFile refers to a file which contains +// a key. +// (*) If the KeyFile and the KeyName values are both specified, the +// following processing occurs: +// (1) If the KeyName can be found in the CSP, that key is used. +// (2) If the KeyName does not exist and the KeyFile does exist, the key +// in the KeyFile is installed into the CSP and used. +// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. +// When specifying the KeyFile, the location of the KeyFile should be +// relative to the project output directory which is +// %Project Directory%\obj\. For example, if your KeyFile is +// located in the project directory, you would specify the AssemblyKeyFile +// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] +// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework +// documentation for more information on this. +// +[assembly: AssemblyDelaySign(false)] +[assembly: AssemblyKeyFile("")] +[assembly: AssemblyKeyName("")] diff --git a/SAF/SAF.Library.Security/Class1.cs b/SAF/SAF.Library.Security/Class1.cs new file mode 100644 index 0000000..d0d0c51 --- /dev/null +++ b/SAF/SAF.Library.Security/Class1.cs @@ -0,0 +1,12 @@ +using System; + +namespace SAF.Library.Security +{ + /// + /// Interface for the authorization provider + /// + public interface IAuthorizationProvider + { + void Authorize(string[] allowedRoles, string[] deniedRoles); + } +} diff --git a/SAF/SAF.Library.Security/SAF.Library.Security.csproj b/SAF/SAF.Library.Security/SAF.Library.Security.csproj new file mode 100644 index 0000000..dc7d3b4 --- /dev/null +++ b/SAF/SAF.Library.Security/SAF.Library.Security.csproj @@ -0,0 +1,93 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/SAF/SAF.Library.Security/SAF.Library.Security.csproj.user b/SAF/SAF.Library.Security/SAF.Library.Security.csproj.user new file mode 100644 index 0000000..c8340ea --- /dev/null +++ b/SAF/SAF.Library.Security/SAF.Library.Security.csproj.user @@ -0,0 +1,48 @@ + + + + + + + + + + + + diff --git a/SAF/SAF.Library.Security/bin/Debug/SAF.Library.Security.dll b/SAF/SAF.Library.Security/bin/Debug/SAF.Library.Security.dll new file mode 100644 index 0000000000000000000000000000000000000000..3dc7dd4dbcfd0ffdc22d2d973a797bd4390a5178 GIT binary patch literal 3584 zcmeHJ-ES0C6hG4sXh8}n1c{(iTM|sn*xC{ViSDw?M`@v@Q>$nbIy-yWj-8#^+?hp| z2knC-`e0&WOiYvnpM2rL2Z+SP7c~-N&_6&Q`e29;CMHH7c#&Dt zVMRMt({+L%jLniVbv-b>z${MMW;HA;Yu&mvgQ@GO14I)>C%t=dGM7%#GWGSZHC7Sf zFCBxm17M=((1|t*-I2u26CA&^B_QUxab83l{Nj;IyDxuvVb7K;dmu0DowM@?xmy!nNjth>*~+bJFK*0*r5ERls#LGE6SgYRF~Y^d9IZnKDKwAFuT6QD6Rk-jTSYOIu+47?UKG44 zxGeaa;3k809uqt)=m;(eo)^4oToTubf6n}UtTRA+fmt1hzUZDzIfK51Y6o)fr8nqa zJUonBfm^6w=tl&H1@{Q%1;+%B3!V^k1U=w3vXJS+!21Lr5F8PFQm`O6E@%tBAm|D% z(oX7HN-B4w`}#QqkCx;>^nH4Ed+9_XVBB{!EZ2SY6tz1lR@wJyEMJcoLhYS(VlND) zba>h;E8SL~GF3&@$PKmcmB?;Hv8r0r>Xffs_CWb4Qq_{*7*~yBPF3Y&9Gg--R%E$x zsGG$HJ-j?5fs8|%?TQ<7KJc4sz|jqB4Yoblr3I;0gXdQK$>qu6sJlE=B? zl$zBX-w$6><>}B@5tUWoW%RG+<+p!6{`HXyuUy@<`kT*QrPXGKvAu75U(ZKp=VrH# zF2CMo8b%*OM>j+r9o_O+tipr9L{ECZ@$q?(X_KkemfeFyCkvr2`u93D^Hn_1h}ISO)?Y&r=%K+~Yc zXp)YB9|Il)&Fzz}pMFp70E4cdyV1=wk57v!lXY{n9&2T~v(VMhUdd$` z_wNw;Fzuodp+;zw9;e;(1gwc>aL*f3omgxG#NszaWK$mAEt-JOl2lAn1H27wm+BH# zEHh=;`Qme@#6JOzig@En)S$zatk42-XwGv*FWHeY?5eQSv?x_ebmt__$*#H0l literal 0 HcmV?d00001 diff --git a/SAF/SAF.Library.Security/bin/Debug/SAF.Library.Security.pdb b/SAF/SAF.Library.Security/bin/Debug/SAF.Library.Security.pdb new file mode 100644 index 0000000000000000000000000000000000000000..d82e737e5ff3bd18325dd965f7c5d1e5d6af7bee GIT binary patch literal 7680 zcmeHKJxjwt7{2<|rdq0lh?#GUpmX@0dY%rGbm3+n^0>-x|A#emzuL3(SUH5uQF;T`GTMmSj!aR@0zP|@85!(o$ z1yn`<;tpEDVm;6(i>+Y2M0%EFfkYumlB7t|BofmZ0puSuphD*FGFDEqj~sFe%!OpQ z5j_0b_)Rm+>0)R~b_=V^I^&jT7u$J>$ZZWKmE5PFo5}yBY{?EC8bTan; zmY@bu=ZFQWR-_uZDijl!cg-E}|Ln`{`|7oQbYFUSyQ!=_ZqS~7-0s+iotDG&PUGC_ q#;yNRO~^kc6`yk=<$sU-7QO#@4WR!q2Sl0yxcekz1Y`unjKB|9B|BCC literal 0 HcmV?d00001 diff --git a/SAF/SAF.Library.Security/obj/Debug/SAF.Library.Security.dll b/SAF/SAF.Library.Security/obj/Debug/SAF.Library.Security.dll new file mode 100644 index 0000000000000000000000000000000000000000..3dc7dd4dbcfd0ffdc22d2d973a797bd4390a5178 GIT binary patch literal 3584 zcmeHJ-ES0C6hG4sXh8}n1c{(iTM|sn*xC{ViSDw?M`@v@Q>$nbIy-yWj-8#^+?hp| z2knC-`e0&WOiYvnpM2rL2Z+SP7c~-N&_6&Q`e29;CMHH7c#&Dt zVMRMt({+L%jLniVbv-b>z${MMW;HA;Yu&mvgQ@GO14I)>C%t=dGM7%#GWGSZHC7Sf zFCBxm17M=((1|t*-I2u26CA&^B_QUxab83l{Nj;IyDxuvVb7K;dmu0DowM@?xmy!nNjth>*~+bJFK*0*r5ERls#LGE6SgYRF~Y^d9IZnKDKwAFuT6QD6Rk-jTSYOIu+47?UKG44 zxGeaa;3k809uqt)=m;(eo)^4oToTubf6n}UtTRA+fmt1hzUZDzIfK51Y6o)fr8nqa zJUonBfm^6w=tl&H1@{Q%1;+%B3!V^k1U=w3vXJS+!21Lr5F8PFQm`O6E@%tBAm|D% z(oX7HN-B4w`}#QqkCx;>^nH4Ed+9_XVBB{!EZ2SY6tz1lR@wJyEMJcoLhYS(VlND) zba>h;E8SL~GF3&@$PKmcmB?;Hv8r0r>Xffs_CWb4Qq_{*7*~yBPF3Y&9Gg--R%E$x zsGG$HJ-j?5fs8|%?TQ<7KJc4sz|jqB4Yoblr3I;0gXdQK$>qu6sJlE=B? zl$zBX-w$6><>}B@5tUWoW%RG+<+p!6{`HXyuUy@<`kT*QrPXGKvAu75U(ZKp=VrH# zF2CMo8b%*OM>j+r9o_O+tipr9L{ECZ@$q?(X_KkemfeFyCkvr2`u93D^Hn_1h}ISO)?Y&r=%K+~Yc zXp)YB9|Il)&Fzz}pMFp70E4cdyV1=wk57v!lXY{n9&2T~v(VMhUdd$` z_wNw;Fzuodp+;zw9;e;(1gwc>aL*f3omgxG#NszaWK$mAEt-JOl2lAn1H27wm+BH# zEHh=;`Qme@#6JOzig@En)S$zatk42-XwGv*FWHeY?5eQSv?x_ebmt__$*#H0l literal 0 HcmV?d00001 diff --git a/SAF/SAF.Library.Security/obj/Debug/SAF.Library.Security.dll.incr b/SAF/SAF.Library.Security/obj/Debug/SAF.Library.Security.dll.incr new file mode 100644 index 0000000000000000000000000000000000000000..1e9669cb828d77d50036527ffe2676e2d442f56a GIT binary patch literal 1170 zcmcgrK}#D^5dNZ8v10M$`GFLKVrVH=)KW+`DiNd5v?$b;?j{?%bvG-!FO_(yhyI2B z0x#bB13XE*sE7Q4La#maVCz+^-@GJ}fR`Zpmf6|&&Agd!XXa(gg~$!uvbKGdu6TY? zWo&J$QWz;~Oj%*D<@s);CMJ~r8A`)GMGaeZ?S+`yuoXvU=g`#^|gT#p=0HaNB@04OuXoApi@*9X0VP` zWU@}sGld06|&-ytzoixifdykyfSn;I}My5sY zYJbkiXz_uR449_eU6lfMt6)0nv-{39n{UHs;}`u$iAV2$8Qnfr!t&KMt32m&-gI7c zl7A#|WLhH5LXs2VGDC$sj~%GeGo<}9b%qv)mW?h>xBAx{A+m4I7PWi}H@OYF9}eoj zcWNy+JR#PoV)uMgj2xSZb~w#d-kLIRN63FGn4Ap;(yovHhc8FI))K9>k8hFHVlLZc NmRr`!#6I*$^eed-$^QTV literal 0 HcmV?d00001 diff --git a/SAF/SAF.Library.Security/obj/Debug/SAF.Library.Security.pdb b/SAF/SAF.Library.Security/obj/Debug/SAF.Library.Security.pdb new file mode 100644 index 0000000000000000000000000000000000000000..d82e737e5ff3bd18325dd965f7c5d1e5d6af7bee GIT binary patch literal 7680 zcmeHKJxjwt7{2<|rdq0lh?#GUpmX@0dY%rGbm3+n^0>-x|A#emzuL3(SUH5uQF;T`GTMmSj!aR@0zP|@85!(o$ z1yn`<;tpEDVm;6(i>+Y2M0%EFfkYumlB7t|BofmZ0puSuphD*FGFDEqj~sFe%!OpQ z5j_0b_)Rm+>0)R~b_=V^I^&jT7u$J>$ZZWKmE5PFo5}yBY{?EC8bTan; zmY@bu=ZFQWR-_uZDijl!cg-E}|Ln`{`|7oQbYFUSyQ!=_ZqS~7-0s+iotDG&PUGC_ q#;yNRO~^kc6`yk=<$sU-7QO#@4WR!q2Sl0yxcekz1Y`unjKB|9B|BCC literal 0 HcmV?d00001 diff --git a/SAF/SAF.Library.Security/obj/Debug/SAF.Library.Security.projdata b/SAF/SAF.Library.Security/obj/Debug/SAF.Library.Security.projdata new file mode 100644 index 0000000000000000000000000000000000000000..6e01d817bda64663e1b7dd5d0129854dba277b0f GIT binary patch literal 1416 zcmeH{PfEj35XQe$qup4#P*I_vU5J)iaO=t10C4xOD57Aq|kc*=)?}P+My1QXP5W zyNyS36_H&dAqACG)D^5c?3R4>RAuFdXLs>5)n#=?lotFlQ8$QG;neo0F5vfd3Zn{c zh+2VPBd$g4;IV2N?6!H<*{`9cTpZ{3^U~hGGZ(|Go-U}cK`kZvan5&rR53;+Sx^T_ zS6YbedwOeKDw`kM`imKg@kTQ0z_2?IP=L*~-BY`tGiaOe9C!pv(jrRxAe#J$YwMH2 z)LZ(l@4R3K$4}3%y}n}{i)AzM7YQI;1DhGkzk{{_)8GCo9vjO)cvtvS9Oy{-Sg*pH e)LO#Hq%x_nW~*lcYZE;OzDmHt@@K&?^1lPQ*>39q literal 0 HcmV?d00001 diff --git a/SAF/SAF.Library.Security/obj/Debug/SAF.Library.Security.projdata1 b/SAF/SAF.Library.Security/obj/Debug/SAF.Library.Security.projdata1 new file mode 100644 index 0000000000000000000000000000000000000000..f96ce1734a217c771c5937cb5f585bbe7ff7c590 GIT binary patch literal 1288 zcmeH{yGjF55QhH^UeXv+sHhN75mC_vTPuSg38WBh0$wo2m0gGik|>(SE%OR?zK3Pn zfUn_G7{56iMNm+zEHcZ#bDuLioY{xjY&s=qL<&6e# zCBeRm%Ig|$NK`|S+Nz*ME@ux*T{mdwWH-nwQEiI~2W0Jja36c5Ga@SBPCouXRq9&B z78dKGhPTPHiN6Y$)&_Nc&X>x6J~{7B4RlF|HF_yBhYP;zy$hS)90);&IhtMoX=Ixv zq9gMSX*hxZIDwd^%E0cf-PtL)ZTKR11PjtUO#2|&{3O=&)BeP3_P*=&kmHl5=a+WZ zg;=fMQcU12usyQ#ZGWtp$uEDG0LSt-))oF3hdS2!fUgoau8owJ%j7byXX|GSX&XKR GKGPeHPhG_T literal 0 HcmV?d00001 diff --git a/SAF/SAF.Library.WindowsService/AssemblyInfo.cs b/SAF/SAF.Library.WindowsService/AssemblyInfo.cs new file mode 100644 index 0000000..9f89a32 --- /dev/null +++ b/SAF/SAF.Library.WindowsService/AssemblyInfo.cs @@ -0,0 +1,58 @@ +using System.Reflection; +using System.Runtime.CompilerServices; + +// +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +// +[assembly: AssemblyTitle("")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("")] +[assembly: AssemblyCopyright("")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: + +[assembly: AssemblyVersion("1.0.*")] + +// +// In order to sign your assembly you must specify a key to use. Refer to the +// Microsoft .NET Framework documentation for more information on assembly signing. +// +// Use the attributes below to control which key is used for signing. +// +// Notes: +// (*) If no key is specified, the assembly is not signed. +// (*) KeyName refers to a key that has been installed in the Crypto Service +// Provider (CSP) on your machine. KeyFile refers to a file which contains +// a key. +// (*) If the KeyFile and the KeyName values are both specified, the +// following processing occurs: +// (1) If the KeyName can be found in the CSP, that key is used. +// (2) If the KeyName does not exist and the KeyFile does exist, the key +// in the KeyFile is installed into the CSP and used. +// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. +// When specifying the KeyFile, the location of the KeyFile should be +// relative to the project output directory which is +// %Project Directory%\obj\. For example, if your KeyFile is +// located in the project directory, you would specify the AssemblyKeyFile +// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] +// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework +// documentation for more information on this. +// +[assembly: AssemblyDelaySign(false)] +[assembly: AssemblyKeyFile("")] +[assembly: AssemblyKeyName("")] diff --git a/SAF/SAF.Library.WindowsService/Class1.cs b/SAF/SAF.Library.WindowsService/Class1.cs new file mode 100644 index 0000000..5cc6a2d --- /dev/null +++ b/SAF/SAF.Library.WindowsService/Class1.cs @@ -0,0 +1,18 @@ +using System; +using System.Xml; +using SAF.Utility; + +namespace SAF.Library.WindowsService +{ + /// + /// IService interface represents the interface class has + /// to implement to be pluggable into SAF.WindowsService + /// + public interface IService + { + + void Start(); + void Stop(); + void Initialize(XmlNode configXml); + } +} diff --git a/SAF/SAF.Library.WindowsService/SAF.Library.WindowsService.csproj b/SAF/SAF.Library.WindowsService/SAF.Library.WindowsService.csproj new file mode 100644 index 0000000..6a597ee --- /dev/null +++ b/SAF/SAF.Library.WindowsService/SAF.Library.WindowsService.csproj @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SAF/SAF.Library.WindowsService/SAF.Library.WindowsService.csproj.user b/SAF/SAF.Library.WindowsService/SAF.Library.WindowsService.csproj.user new file mode 100644 index 0000000..c8340ea --- /dev/null +++ b/SAF/SAF.Library.WindowsService/SAF.Library.WindowsService.csproj.user @@ -0,0 +1,48 @@ + + + + + + + + + + + + diff --git a/SAF/SAF.Library.WindowsService/bin/Debug/SAF.Library.WindowsService.dll b/SAF/SAF.Library.WindowsService/bin/Debug/SAF.Library.WindowsService.dll new file mode 100644 index 0000000000000000000000000000000000000000..9ee2d442f3b9a72ef6504a926dc8468d5ecc98d0 GIT binary patch literal 3584 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 literal 0 HcmV?d00001 diff --git a/SAF/SAF.Library.WindowsService/bin/Debug/SAF.Utility.pdb b/SAF/SAF.Library.WindowsService/bin/Debug/SAF.Utility.pdb new file mode 100644 index 0000000000000000000000000000000000000000..fc3cf88aa69421fd07c4f04894cf5b0651cf4752 GIT binary patch literal 13824 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 AH2?qr literal 0 HcmV?d00001 diff --git a/SAF/SAF.Library.WindowsService/obj/Debug/SAF.Library.WindowsService.pdb b/SAF/SAF.Library.WindowsService/obj/Debug/SAF.Library.WindowsService.pdb new file mode 100644 index 0000000000000000000000000000000000000000..98f1e17280c3c974628bd26a4d4633a0b29318c0 GIT binary patch literal 13824 zcmeHNOK22H7_Nz~PDZ1SkKluqM4~1ddwSIDh9Cru21Ui_AU+7lWYR;%OlG8eVhF;L zljj`v;z2=nVfQ5JWm!>FeBe#ct0x6t2gQ>)sN?r_cV#+bCNCs2N$MwGs;j!Xr|SRy z`v3ZC=5Qirrmb{5Q`Hh`*}ApraHO^BcTLwT0&Dk11f}eMr%?ZAfd&R2 zWtGff4fyprJb5+sY+rfU*GNCM%ms>o$Y$a8oi>(AW~~Oe1lE>^KFJAQ@Htn1pcnx5 zvpP?Ry)cM+Ty_D)UN*HD!zyQ3Vgbq(z#^a=_yt%DQ~*l=?p1;S&3hrBWTXa$I*v9! zUidsX7!mi5{8e`K;l6{H-o1Vn9Bg*#i!NV09gIH@-q|9=kpIA)kx%Dp(`6Hdxc6fy z^8v+uj+2R8jpqN!rPu$n&UfXP6M4VtQ`#CJr?i1O40ERtjehaAhJKX7^(0|8xc}DJ z<%fGLw%yW(W5>6T-##*Y*dfG?BkUtA%P`L;Vn%x`8MUmi7PCabzV-v^-*jn!aj}rl zHoSWS*-!B=H8JzcbuV?_0H$%h_w(xaPapWICpjf9bH)l;@^M}>PV?Pg{Z~`_-L`FR zX`ob68XEXh3;V*|XPfE&uf5t_e|P17d#-d|-f{E)GxtxSEp#Z6>OPQ)r$s0g?J+D7 zvdmbh%ZPRwW=Ap|>vkIAiKJnLVomK{ck=?C? zcE~0BghO`3jrJ|W(VirdXnFt*ppYRY#nu4V!w_%-;5iVN77F3b|G6CHdh)KNQd|FA z`^@>}SjSrXm117-Hv0Yxv*fwPdVm%h5H-O_zm+k1_%3;^o$N`vb(s6{Od^@c^y3-a zFKGU`{_gUCKeGD^el~UfH$L!Jl$+eot`t@DfQ+Yh$!n{Z^##N5VU#O*19A}Hm>GZD zfi8f;xe&ZR-jZg%ybF;0%h>GYpZcMU;dV>r7Hxp`%6T!A6tV#w_u7Dbp+2V|q@ajG z|2j2kz+AxB7(s zn@*vTDJe+}REmu@U(OCKVq}i>rgmF79-VfVM;s8Xcl$g1wwcDcsHylbNoprFDEi7m zLSO1V|Iroyg;X_T+ZiKY0CN9F&N-Q5zyQFr8>ZrNPtCJonL`(4|BugC^7Ax6zIpy% zjaP!(#sJR$nd2n^?hESy=7mx!ap67xWxHcBx!h6KooD>wIyO}qRGt9bU$wn?B)?)1 zh4UxPJw_0%jp0^(dqac$U4z`8F~7+d-eWsY8SA4+aE7~_VPcO z6ES)2=9*-V&m8}?)4@O23fH;x|1;(HAB_}gUN`D>slzB7*-#JqtFGVpgYu*EXI*RDoa;TYC8e3E7tdr~@q z(FN4F#oP~eZasWA_h>J1-|O_t^EV&&5_8<|%HNM{L0&+8Grax_590q2cc~lRiY|a( znfO=NX^>%!6VJhbuV@vd-1BorHQdl9BG3I z8c&k5kHh-;K1Ye77PvG>9gWyzK%~nB_5|x(Tgv4!iM`5Om=V3-#EkeeUb;1WN4*K_ z)GrwMPD?OJS#RA6zGc6$yoBqRKVjc`Ao3ZF`$&s}&v#mlWe|AM8LS~!fqlzGG-CEG z*U^aCx7. For example, if your KeyFile is +// located in the project directory, you would specify the AssemblyKeyFile +// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] +// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework +// documentation for more information on this. +// +[assembly: AssemblyDelaySign(false)] +[assembly: AssemblyKeyFile("")] +[assembly: AssemblyKeyName("")] diff --git a/SAF/SAF.MessageQueue/MQSeries.cs b/SAF/SAF.MessageQueue/MQSeries.cs new file mode 100644 index 0000000..3528346 --- /dev/null +++ b/SAF/SAF.MessageQueue/MQSeries.cs @@ -0,0 +1,203 @@ +using System; +using System.Xml; +using SAF.Configuration; +using System.Configuration; +using MQAX200; +using System.Threading; + +namespace SAF.MessageQueue +{ + /// + /// A sample implementation of IMessageQueue for MQSeries technology. + /// It allows developers to send, retrieve messages from MQSeries and register + /// event for new message arrivals. + /// + public class MQSeries : IMessageQueue + { + private ConfigurationManager cm; + private MessageArrivalHandler handler; + private string queueManager; + private string QueueName; + private MQQueue queue; + private MQSession queueSession; + private MQQueueManager mqm; + private bool queueListenerStarted; + private int sleepTime; + + + /// + /// Constructor that retrieve the queue related information + /// for MessageQueueConfiguration object + /// + /// the name of the queue + public MQSeries(string queueName) + { + cm = (ConfigurationManager)ConfigurationSettings.GetConfig("Framework"); + XmlNode queueInfo = cm.MessageQueueConfig.RetrieveQueueInformation("*[@name='" + queueName + "']" ); + queueManager = queueInfo.SelectSingleNode("QueueManager").InnerText; + QueueName = queueInfo.SelectSingleNode("QueueName").InnerText; + sleepTime = Int32.Parse(queueInfo.SelectSingleNode("SleepTime").InnerText); + queueSession = new MQSessionClass(); + } + + /// + /// send the message to the MQSeries's queue + /// + /// a message object to be sent + + public void Send(Message m) + { + //create a new MQSeries message + MQMessage message = (MQMessage)queueSession.AccessMessage(); + message.WriteString(m.Content.ToString()); + MQPutMessageOptions messageOption = (MQPutMessageOptions)queueSession.AccessPutMessageOptions(); + + //send the message to the MQSeries queue + queue.Put(message,messageOption); + + + + } + + /// + /// Retrieve message from the MQSeries's queue + /// + /// + public Message Retrieve() + { + //create a new message + MQMessage message = (MQMessage)queueSession.AccessMessage(); + MQGetMessageOptions messageOption = (MQGetMessageOptions)queueSession.AccessGetMessageOptions(); + + //fill the new message object with message from he queue + //unlike MSMQ, GET is not a blocking call, instead, it raise + //an exception if trying to retrieve message from a queue that is emtpy. + queue.Get(message,messageOption,System.Reflection.Missing.Value); + + + //create a new message object that contains the + //message from the queue. + Message m = new Message(); + m.Content = message.ReadString(message.MessageLength); + m.Label = message.MessageId; + return m; + } + + /// + /// event for arrival messages to the queue + /// + public event MessageArrivalHandler MessageArrival + { + //when new handler is register for the event, start the listener + //if it is not yet started + add + { + handler += value; + if (queueListenerStarted != true) + { + //create a new thread to listen on the queue + ThreadStart ts = new ThreadStart(StartQueueListener); + Thread t = new Thread(ts); + t.Start(); + } + } + remove + { + handler -= value; + //stop the listener if no handler is listed + if (handler == null || handler.GetInvocationList().Length <= 0) + { + StopQueueListener(); + } + } + } + + /// + /// Start the listen to the queue for incoming messages and + /// notifiy the handlers as new messges arrive + /// + public void StartQueueListener() + { + //create a separate connection to the message queue + queueListenerStarted = true; + MQQueueManager listenermqm = (MQQueueManager)queueSession.AccessQueueManager(queueManager); + MQQueue listenerqueue =(MQQueue)mqm.AccessQueue(QueueName,(int)MQ.MQOO_INPUT_AS_Q_DEF + (int)MQ.MQOO_OUTPUT,"","",""); + listenerqueue.Open(); + try + { + MQMessage message = (MQMessage)queueSession.AccessMessage(); + MQGetMessageOptions messageOption = (MQGetMessageOptions)queueSession.AccessGetMessageOptions(); + while(queueListenerStarted == true) + { + System.Threading.Thread.Sleep(sleepTime); + if (handler.GetInvocationList().Length > 0) + { + try + { + //GET will raise an exception if no message is in the queue. + //we want to keep listening despite of the exception, see exception block + //for detail + listenerqueue.Get(message,messageOption,System.Reflection.Missing.Value); + SAF.MessageQueue.Message safMessage = new SAF.MessageQueue.Message(); + safMessage.Label = message.MessageId; + safMessage.Content = message.ReadString(message.MessageLength); + //fire the event + handler(safMessage,QueueName); + } + catch (System.Runtime.InteropServices.COMException ex) + { + //-2147467259 represents the error code for retrieving + //message from an empty queue. do nothing if gotting this error code. + if (ex.ErrorCode != -2147467259) + { + throw ex; + } + } + } + } + + } + finally + { + //close the connetion + listenerqueue.Close(); + listenermqm.Disconnect(); + } + } + + /// + /// stop the listener + /// + public void StopQueueListener() + { + queueListenerStarted = false; + + } + + /// + /// open the connection to the message queue + /// + public void Open() + { + mqm = (MQQueueManager)queueSession.AccessQueueManager(queueManager); + queue = (MQQueue)mqm.AccessQueue(QueueName,(int)MQ.MQOO_INPUT_AS_Q_DEF + (int)MQ.MQOO_OUTPUT,"","",""); + queue.Open(); + + } + + /// + /// close the connection to the message queue + /// + public void Close() + { + if (queue != null) + { + queue.Close(); + } + if (mqm != null) + { + mqm.Disconnect(); + } + } + } +} diff --git a/SAF/SAF.MessageQueue/MSMQ.cs b/SAF/SAF.MessageQueue/MSMQ.cs new file mode 100644 index 0000000..6c3ed5a --- /dev/null +++ b/SAF/SAF.MessageQueue/MSMQ.cs @@ -0,0 +1,183 @@ +using System; +using System.Xml; +using System.Messaging; +using SAF.Configuration; +using System.Configuration; +using System.Collections; +using System.Threading; + +namespace SAF.MessageQueue +{ + /// + /// A sample implementation of IMessageQueue for MSMQ technology. + /// It allows developers to send, retrieve messages from MSMQ and register + /// event for new message arrivals. + /// + public class MSMQ : IMessageQueue + { + private int sleepTime; + private string formatName; + private ConfigurationManager cm; + private static MessageArrivalHandler handler; + private string queueName; + private static bool queueListenerStarted = false; + private ArrayList supportedTypes = new ArrayList(); + private System.Messaging.MessageQueue mq; + + /// + /// Constructor that retrieve the queue related information + /// for MessageQueueConfiguration object + /// + /// name of the queue + public MSMQ(string queueName) + { + cm = (ConfigurationManager)ConfigurationSettings.GetConfig("Framework"); + XmlNode queueInfo = cm.MessageQueueConfig.RetrieveQueueInformation("*[@name='" + queueName + "']" ); + formatName = queueInfo.SelectSingleNode("FormatName").InnerText; + sleepTime =Int32.Parse(queueInfo.SelectSingleNode("SleepTime").InnerText); + this.queueName = queueName; + //supportedTypes is used to provide information to System.Messaging.MessageQueue + //information on how to serialize and deserialize the object sent to and retrieved from + //the queue. The default data type is string type. + supportedTypes.Add(typeof(System.String).ToString()); + } + + /// + /// allows developers to add additional type information + /// for serialization and deserialzation of the messsage + /// + /// the data type name + public void AddSupportedType(string typeName) + { + supportedTypes.Add(typeName); + } + + /// + /// event for arrival messages to the queue + /// + public event MessageArrivalHandler MessageArrival + { + //when new handler is register for the event, start the listener + //if it is not yet started + add + { + handler += value; + if (queueListenerStarted != true) + { + //create a new thread to listen on the queue + ThreadStart ts = new ThreadStart(StartQueueListener); + Thread t = new Thread(ts); + t.Start(); + } + } + remove + { + handler -= value; + //stop the listener if no handler is listed + if (handler == null || handler.GetInvocationList().Length <= 0) + { + StopQueueListener(); + } + } + } + /// + /// Sends the message to the MSMQ + /// + /// message object + + public void Send(SAF.MessageQueue.Message m) + { + //set type information queue can use to serialize the message + ((XmlMessageFormatter)mq.Formatter).TargetTypeNames = (string[])(supportedTypes.ToArray(typeof(System.String))); + mq.Send(m.Content,m.Label); + + } + + /// + /// Retrieve the message from the MSMQ + /// + + /// retrieved message object from the queue + public SAF.MessageQueue.Message Retrieve() + { + //set type information queue can use to deserialize the message + ((XmlMessageFormatter)mq.Formatter).TargetTypeNames = (string[])(supportedTypes.ToArray(typeof(System.String))); + + System.Messaging.Message message = mq.Receive(); + SAF.MessageQueue.Message safMessage = new SAF.MessageQueue.Message(); + safMessage.Label = message.Label; + safMessage.Content = message.Body; + return safMessage; + } + + + /// + /// open the connection to the message queue + /// + public void Open() + { + mq = new System.Messaging.MessageQueue(formatName); + } + + /// + /// close the connection to the message queue + /// + public void Close() + { + if (mq != null) + { + mq.Close(); + mq.Dispose(); + } + } + + /// + /// Start the listen to the queue for incoming messages and + /// notifiy the handlers as new messges arrive + /// + private void StartQueueListener() + { + //create a separate connection to the message queue + System.Messaging.MessageQueue listenermq = new System.Messaging.MessageQueue(formatName); + ((XmlMessageFormatter)listenermq.Formatter).TargetTypeNames = (string[])(supportedTypes.ToArray(typeof(System.String))); + System.Messaging.Message message = null; + queueListenerStarted = true; + try + { + //listen to the queue continusly through loop + while (queueListenerStarted == true) + { + System.Threading.Thread.Sleep(sleepTime); + if (handler.GetInvocationList().Length > 0) + { + //this is a call that will block the thread if no + //message is in the queue. + message = listenermq.Receive(); + SAF.MessageQueue.Message safMessage = new SAF.MessageQueue.Message(); + safMessage.Label = message.Label; + safMessage.Content = message.Body; + //fire the event + handler(safMessage,queueName); + } + + } + } + finally + { + //close the connetion + listenermq.Close(); + } + } + + /// + /// stop the listener + /// + private void StopQueueListener() + { + queueListenerStarted = false; + } + + + + } +} diff --git a/SAF/SAF.MessageQueue/MessageQueue.cs b/SAF/SAF.MessageQueue/MessageQueue.cs new file mode 100644 index 0000000..73a69fe --- /dev/null +++ b/SAF/SAF.MessageQueue/MessageQueue.cs @@ -0,0 +1,49 @@ +using System; + +namespace SAF.MessageQueue +{ + /// + /// Containing the interface and class referenced in + /// the message queue impelmentation class + /// + public delegate void MessageArrivalHandler (Message m, string queueName); + + /// + /// interface that every message queue implementation must implements + /// + public interface IMessageQueue + { + void Send(Message message); + Message Retrieve(); + event MessageArrivalHandler MessageArrival; + void Open(); + void Close(); + + } + + /// + /// Interface for MessageQueueManager. it is used by + /// client application to interact with MessageQueueManager. + /// + public interface IMessageQueueManager + { + void SendMessage(Message message); + Message RetrieveMessage(); + void RegisterMessageArrivalHanlder(MessageArrivalHandler mah); + void UnRegisterMessageArrivalHanlder(MessageArrivalHandler mah); + void OpenConnection(); + void CloseConnection(); + } + + /// + /// A basic Message class, can be extended to create more + /// implmentation specific message class + /// + public class Message + { + public string Label; + public object Content; + } + + +} diff --git a/SAF/SAF.MessageQueue/MessageQueueManager.cs b/SAF/SAF.MessageQueue/MessageQueueManager.cs new file mode 100644 index 0000000..3875942 --- /dev/null +++ b/SAF/SAF.MessageQueue/MessageQueueManager.cs @@ -0,0 +1,81 @@ +using System; +using System.Configuration; +using SAF.Configuration; + +namespace SAF.MessageQueue +{ + /// + /// MessageQueueManager contains the API that developers + /// would interact with the most. It provide the "bridge" + /// to the underlying implementation of message queueing. + /// This compnoent show most simplified linkage between MessageQueueManager + /// and underlying Message queue. The more dissimilar between IMessageManager and the + /// underlying Message Queue, the more complex MessageQueueManager becomes. + /// + public class MessageQueueManager : IMessageQueueManager + { + private IMessageQueue mq; + private ConfigurationManager cm; + + public MessageQueueManager(IMessageQueue messageQueue) + { + mq = messageQueue; + } + + /// + /// pass the call the actual message queue implementation + /// + /// message object + public void SendMessage(Message m) + { + mq.Send(m); + } + + + /// + /// pass the call the actual message queue implementation + /// + /// the retrieved message from the queue + public Message RetrieveMessage() + { + return mq.Retrieve(); + } + + /// + /// register event hanlder that trigger when new message arrives at the queue + /// + /// MessageArrivalHandler delegate + public void RegisterMessageArrivalHanlder(MessageArrivalHandler mah) + { + mq.MessageArrival += mah; + } + + /// + /// unregister event handler that trigger when new message arrives at the queue. + /// + /// MessageArrivalHandler delegate + public void UnRegisterMessageArrivalHanlder(MessageArrivalHandler mah) + { + mq.MessageArrival -= mah; + } + + /// + /// open the connection of the underlying mesage queue + /// + public void OpenConnection() + { + mq.Open(); + } + + /// + /// close the connection of the underlying message queue + /// + public void CloseConnection() + { + mq.Close(); + } + + } + + +} diff --git a/SAF/SAF.MessageQueue/SAF.MessageQueue.csproj b/SAF/SAF.MessageQueue/SAF.MessageQueue.csproj new file mode 100644 index 0000000..656a781 --- /dev/null +++ b/SAF/SAF.MessageQueue/SAF.MessageQueue.csproj @@ -0,0 +1,129 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SAF/SAF.MessageQueue/SAF.MessageQueue.csproj.user b/SAF/SAF.MessageQueue/SAF.MessageQueue.csproj.user new file mode 100644 index 0000000..29ccfc6 --- /dev/null +++ b/SAF/SAF.MessageQueue/SAF.MessageQueue.csproj.user @@ -0,0 +1,48 @@ + + + + + + + + + + + + diff --git a/SAF/SAF.MessageQueue/bin/Debug/Interop.MQAX200.dll b/SAF/SAF.MessageQueue/bin/Debug/Interop.MQAX200.dll new file mode 100644 index 0000000000000000000000000000000000000000..dcdb8445dd871459319ed536b78f8a34de10594e GIT binary patch literal 122880 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

;HE$k+#D!@TLX8(hQQr$d!P*N2;2)3 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 literal 0 HcmV?d00001 diff --git a/SAF/SAF.MessageQueue/bin/Debug/SAF.MessageQueue.dll b/SAF/SAF.MessageQueue/bin/Debug/SAF.MessageQueue.dll new file mode 100644 index 0000000000000000000000000000000000000000..c7f2b74b4bc6822a243e259a7a96ccae62788575 GIT binary patch literal 9728 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 literal 0 HcmV?d00001 diff --git a/SAF/SAF.MessageQueue/bin/Debug/SAF.MessageQueue.pdb b/SAF/SAF.MessageQueue/bin/Debug/SAF.MessageQueue.pdb new file mode 100644 index 0000000000000000000000000000000000000000..1d619907f5788660b3044d1673e972bb8f9bc1ae GIT binary patch literal 36352 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

;HE$k+#D!@TLX8(hQQr$d!P*N2;2)3 zf&1Z}z=NKe!1Nu+MN%?i~iO=RraK`#Z}+ zf^zROjOF3MEm(de%aPz`C>I64fW^Tba186mv$s-O#y+P7*L&39cwmmi#$R{4|d7+!*1C*ut#<~*em;Fn4f(rEXeK#!`WxT0omukLD}cS z!P#LrBzqtnmVF5vo_z%znLP|fvaf?h**C)C?9p&cb}<~EJr*nt9nWmKJ2o=&GbkX)Ig*ou!JdC|6w(MCt@*Vz#%O#8PTZ{+{nxk1i8p|B;k7jEL>bDs)xs{oyZyT7&ZB?Ki?+(@(%dwUI zf#qDQ8a0hZ9Bwf-qNXIUk$rAtZ}q4@WF*+S8?BEAcC&T2^ciSE{SiZR$`)PD4CEx2 zlkd*ScZYfxzK|r_?TFUL109`RwI2g{sPUR%*l6@eeIVE$%dbIM-eV!^gJuLCGDfq0 zH0wuW$qRxds9$JC;Spmdw=$DkoQc*0!3xwbGh@(YF2}aoW-sSj)u>rv#-Z2T$lf-h z{_O0H?7trMwPpea&E2RUmA#wwySZc&>erc?OOBh%m7!H+yIk__TrPR1I_fvzt6<|8uI!w1h&}HU9zZHgFvk>N55g0T}U}q}|7n&8YyA^}W%xc)% zio+FVJq%k3SZg-HLQ8YYG1TEuD+D)~d2oakh98-Qu*izQ2D1c?wW4sRSpg?mF_x?0 z3@Z-zn)R^UO27kV6P#~psZ!SAVk-m>n|W}#6=t~*)>skfuu9-+D+<%C3iyr{gMOC2U-K{*h&kDodRv~P*A}p7{->fJMTNNT8^9tf4>lTMIMynJhl~iEWR<`pMikDlDxk}Z!E&n_ zdd)bTZ`H$~nShI}CW!yblP*U?hs(?mtg-Uo3Ns8>TZORJjKFuS61dKcvRnZ-m@)W) zRSiEf<1E+11~UP-T1{}LsijL%SZ6fBv6kkQvJNL%A-KiJgEOo!+-4NQaw`IN86|MO6@`sP1zc>! zSgwZ4tvEbn)WaGp0go6>aJ8jn%9+yPJGj%5GnEHFu);8C7Q(Go1TMs%Tau#}h0Dwe z_>C2VE6i%R&x*rZvmQ2E3AoN|g1=dsPtKGMQ~e?Mk(mc?^@m}DSqR7B`dZFZ2`uwR zS+0O}MhxyXtKk+S4iA|1aGQ}}xe4wvv@AJ;I&3sTEa$;PMi@G*LU_c8z;vqwy38o_ zTNTi2#$c{h4TEMJcDCx_LNmc~6U6_G-;gt_!xd%-_O|k1tr=#y5Uw*LFl?2;4Q3P; zS{3jkGX{rR)v&>g!x2_J+-W9QZi0JF&6G2)!vkgrj6mZ6)AuRug>3(gHGabohZ4g17qf;8rUP$N3B4msSLp`Agt8 zRupFWE8spW26Oz?u-S^k4*q)ho0Wj4`I}&>Ukl2-(;<3>Q3Nr5AVvtT;@!63}mHZDk~cU}q~#Be1&_g}tp9jYE6_LVWg}AZI)T@p(rh zu*izSu~rODvf^-tm4M}zcA}ik5L|49;c_bi@k9i!wqo!dD^3&e1FH$v8CtHCb-2X{ z!L3#v+-8JXE`+;`2>jA2fsIC#72X`5Tu+b=ihl~p7GD}XDB`e?-qZ)2A>ftV<2{syfM_Dot9x)0b zmWN)m0tU@$xX`SJ%giRY!qhv-_{@Xr%tE-qEP)@H6|ljqhC9uAxYulgxVGsmV=@mS z-$G~1x|-j;rfjKDltXcfYtRtd!ZL+n4q{zL3P#QvYk{fF3ph@%bb zj1uTIqi~B+0fT0Y%u-^tr>ziGH{(4hUgz|Fe4EC!;j1; zME|hCjImq|cbajC{^4FT0ntA^U}|~nA09SC5dA}k6^1Ue5T;uZmP?@DiozpC1;nv} zovk>mGwNY?D*?9{O|ZA6ohD@+hOH39cz}gg7-Cewp;iQ9Y{1j}QHT)&d-`M0Wmdym z{c)D-;W&Q+;z|IP`Sq?H@eCsmBKtv%VTdsdF@_<=FvJ*!xVP#iOX?7JQV`=A;_iv% zLWp}MxXmbmxHE#gj0%YRAlPVBL)`nYTn}-l1JOUkea-2z6&>O(2I9^d;?4!)ZW`h~ zh2;{6yAp`Kg}4)e*k_3Q4v0O6xXWO<3F6M8yKGB`xU+z`vw*m>V7UQJ z0^*(m)*00h_Y`o8Q4f((S#E;Jt7pib=n&Zz?lSV=Y5p*5Gzwu)e}v@{c&k4Oai-un ze+=SG!7_iG<$72gOu!>X=uFvqm`30hBT8cspG`CYk+seeLlBt|A_vkaJYvM4%Z$?m z^qN{vF$9BV7%ns;GzxLPXdJFE6SN5;xA&5>rbFa*mh&KTJ4E(?$n7kbK;(9~!K{GD z?JQTrBSsv4WY$BMnP9mIVz17Yv#i6Q8G<{_Jh;#dvs?(5nGv|xEP*S`D9aVF){Mae zW;I-A##ye18_WbeY&OA#)HLL5GzGcbZ|A3*lZf0+G|;0W->S1w3rVAnwi} zK7}Ff&LBRES#E;(MD8skM~C=aW;qYy48rbKA;i-XmP;U>|G?f>1;q0Zma8G2fxxg; z5AnnU7FtaZb1+}ZI>a1=L#;fBIS5Bsg%EQP7Fi__a}bWTDj?1&oMcr)%t1KAs)v|^ zu-s~bn1koaC%z6b2jOBX4`L3&FW34#M^4G&jRs!bu zo8SyfJ6}Gpby#kNAaV$tZ-rSdgo~{RM6QF&ttiVCu*QnPZALZ3wFk@f5Z4|M*`768 zfs}O`f{jKV4Z}l5A&t-yh`VE20daRst0C@=S+0k;J7!H2#NBZpY1JX_j$zQugSb0} z3(Z1^yJMD1AnuMK?#>|Yj#;jTxI2b;`T=ow%yJXN-SGvSzYurFEayR7Z9>dnh`VE! zOCau!A?7c{-7(A65O>EA^B3aonB^uo!qP6}{DnnU2x9)iu~wMnLO98aK+In_!-}$8 z0n4oz#QcTxtvJi|aIuwun7?qjrG=%e!x}3D@i|K)5cf(n2C;__`$o0CGAlzg47*zq z8ilw{rg4a@4w29Mi6J=D3d7U<5gLW~Y^8B{t3N@t{*uWf(9{J<)NxFUjEtrCbUBKW0M0df5d zaeWSP{S5b6^$^$3u-R&Y_$0bW=By5J{R~t6c@Wpn5Kl-T?wcT33#1O=j z4TxtNGz#&Y4W8zY(**44*M^88h$m4r0>}BIGzM|?MH8?%s9hNav`4LUM2G=1o7k+;+ZYP(^`n< zv@pvbhdKTP?BLgi$-D@`DZwzD8H~U=!6;l9jKO8WI9w4-z}ld8wT$x++z<@IkAe}{ z5RAf|!5G{djE|Dho1j`mMr;V;S`OkW4&wR^;>r!;nhoM=4dOcOCK*>Dh-)*5t1^h| zF^DTMi17n)^#yU=b+Z_P4Q3ebG$U}Y8HEST7(8sop~FhRbW0n}@c=O%U}q}=@ni!c zW5ci&hlN%G4z;u*c`qRvhPcXtxW0n8vVyp#g1DN3m@l_?_@@zw@eeWn;a)Qi510vf*wk*5_Y#8XRv7xN2+Xyj5YO3Y9OBt8 z)rw_wg=iS!Qxf9y5#o~(;xiHA(-7iwu!Nt05Kn#}KG9%rD+I2(IMhnO)s}X< zjKeUjGa@t!@p%OCNd)m31o7!}ha9C4#3v5KXAQ)s3`8b@$RrS-DG;9~W8^4>AU;7L zK06>jHE0at85hJeE{Nx!W0@Hso_Rt%?S%O3hIqmW@oW>0uo6_elh+b7498j#8ikmN z5Hk^CCPK`_ah!<|GZA7YLSzz%yE%yaIEc@Bh|l`*a+E@FwH1b#t)+65;xqxb7}`Y6 z4v5(SF*|4!HX1P+hZtQDqid2Ff-W;mBM`@s#vnf3XadTwFcd>@nHh#F%m_p_rZI@w zL=zC%xQw$2;%Xe?8iU3lK9^|%;}`mKAwFMd6k=XO%xju}E>oMrc>ysmXaok$ zD2+j!eVTyy9GNP68-n=!r4fkhQW}FB%sBkWOuzgeh#F3f7BSXUwM+V|E7vj^F z#vw8uM8=ECwn7jY43C(}+m@MlnJD}53gXoUuePW=5wDX_ z?w~znbi}JO%BSLI9)5Pk&(rZb1LZUEvnPI@ji0^oIv3^h@v{$pUWlK4@#>HAK>WNI zeO`&zO?cgb*HqNaz|Z^envL=!_&FD^g?K%U*DI)d9Y0s&wGQQX@pB_y^>}@b*KYLt zEq*qkZ697g;B^3Xhfwzu%D>?CD_;LV-EVmPj(V5lA;XPV8eX~s#{jQP2aW+^KVCt+ z+Mup2>P|$t9m*%+X9xW3h`P=wpNeuGe!4UVeiw*aOT};hNW)(_z;`?Fm+N=oI}P9B zH*oCNeA=)0JJ-K!hL(z(Nl``SPR9w_iTGFZZq9aEA7^{* zBB!Qxp4!9p{|Ez z`IG2*^lCbuK18eNhKHs9ujntV3CxjoyV8Dhr1fT&r_!Y~&iYST-cM5=k+njP$ZYEU zh^%!59mD$j=_1ywr`uWcGxavp08>5Y#{4^ftvu>3m9o9O|XHdoeaJ6DdtxpQUt zA#-KxEm>|VTU&BS%gAgQrOEm8KVRlK_VBOt*0SV3=gIzbo-Yoh#q(va7SWCL-}lzC zSDwdYt^a7>{{1q&x%|J&}Q0Zf$Uq~1yX-2%Y7C}&1Ez~C(!amvdlu- zvc+dvUrXO*{bu?FP0;V?K`!$Pbu5ZmH&J9f51{XK7;ACOXVmP(L3lA`hWX5`d8lLw&&zHG}GYoQa+nr z_q-gFQaYE`uznN$jy2i}S*9)RK?l;2E2N*hXa%ieeVl$pn`y>MS+d(o>F2VQG7fKJ zIm-Iy>3gjCisb{;Q!PuLTrF$0d;;!$LCP(&=BF2=&x{wPrey}@yeOF}??tKaLtCz? zuIDnh(FwHW3hF+V=hK$!s2Y~vrY$q&eU?9?f2F_BmYI@PqpoxQ&)m0PYUKE|T&bqK zBxOI%qXS-&V|C+8@-AAg*;=kW#o5~{j1Jr>W}@t)_yQry_!=JS+v0oi zPW=8x@dPahPt@ALT(mf~c8DDKO_3*}d=erjzVCk$?129{wUf1u5Koq1C;YutCrWwn z6s;>f6@TZ{sdd3$Ep?*yOn92s6L!_khTZTN1szzTH_F}dR|1__?tIkrpl9KJ*NJt+ zp7=|BPOTSyAEgs(_J`--ukJbUJ0vegxi>u*zo*iHH7`ZYd9(n3E6a)XuYece_g6ab z7yhn7`9j)PyBg(w_zP1`^mrW{ppAe7@fV?-_$z*+;KleWPfl%+HX0Ucx4=vAw`Cmo z?UW@bUkV-g3tV@gd>Oq0f9=Jg4WUEv7hIg!s(2OtHi!eim-8-^uh#B{*Ju+_b1ih@ zcXQqYuhS;OQQB10N1zkiz8BuC&48n|`(Tka6Ro#EC;sBiY5jEPk7>6Mt)FAsnYY3CC-T;9d9)lTK}d_7wUo)t*NAZaPtW2IWcGa@5}g zomv@wgQWxe_Z-Sov=wlwRt=|V|D(M(kB_S=`@Q&vVYX_uOSt zey`W}kMHaCZK3a;`<(Tjd(Ly7v)ns>2fye113V00#dJ~DbKySR`6u`T=K@HM06moW zU*M0Ni@_h`yO%D?eHq+G3XgKGfcvM;f54-itHGZ+*Mi45*MmQI{tF)K+ywr@xdl89 z-_`VRZ+C#lJ9itJ_o>cf zaQ|NT2du7m_{Qjy;2)i*!9QWG#X~JT51!?`i12?0J?CuaW$+))tKd1#>)^T0|KNKb z=;8j~0?&8e0WWag124o{jfYzJ2)xMo1iTn4H=c8e-E~nrtHXVjvnF`8vo<8x2(QD+kB9mquXol1Z*VpM|Lc4KywTYhyvg|@!ru&f zsKGCRw>n>jLud_XPpR*%)zcU4V0IN-& z^Pn>we8|}aeAw9)e8kxueAM|WQh40?8r+WwpK$V!EC)T*ZvpP7Ko7NCg!>uLLtVGQ z{T%3_#!KJ}&OVU52zt&-PAB-XQvqLbW`eIe-Qa6Z5BRn-8zJ8TJ?CAlf_bR-uY>P9 z-vB>wdg1#a=;0akfgd~b!B3nz_^Go9{LJYG9rv4{i|>L$qq;+&?|uu+xFcZJT?RJc zOQ9Z~(;-N6756)Ej}xxyeh-rI?)M>CO}IL~BkDS9fF7RQ55cwEAA@VVKLOWqe+sVa z{tRIzfcP@D`*U!8_ZN_C075gnzXZSF{tDd4{WZ9;`y2R91fieZ--4UCzXQMI{vMp< z{sH{5`$uq7_s`&F?q9&o-M@lcxPJq;bpH-+<^BWdYz;y`yXV5ajc_~npO9=T+}^za z@*P0vXZK%lPX?ix-HXAg?!O_~350%jF9WB$SAe^_{{i=KuZHheL1L71X@8{93zR`(9L+uXarcK05z zV_?;N0_=951Z(coV2}GO!ps7pY2D|+x$cXQ>;--COB`vK$&-H+g|3m3Vcz}@eD1|I0Tp6h%Qgzj~HaEY4*2i+XxLm+go zy9)R%cQr_cLC;y{t_~jLt_jJvLFij|ZSW9xUGPwMJ;=WULf^U@fZub!0Lft>G_AWa z_yhNgkQ@O*)4E>*f8>4{{IRRB&P}gWA9wZHv(Pfi{3xso+xbbE`X#6!mjiF1$UdUZ9?jG;I@SO#E&TQ`{xaSD>^=^S=F6iRx&9}k* zb>TO>J0RI#cz|~o1CZ1~Sbg3@a4!<}dyhb}Sa_iK806m+ zF7cj#d;o;b@t%ZxP`K248t!j-&q6*d9QB@uWCV1bgS;2vUMBpu_cA00gU~|WtKgyD z>yUg0gckDt2Y%0c3zEY?&-uRh4%~+ekMQ1u(4?rVhCc^g1-t?+v93y|Lc!glgDhWke0&E6Lw zxk-47_a(@01wH3B@5|ur-e!>8A-v1m0+Kt0cY9kweh&!S$@>c2_X!{HwuR(=;e+1x zkUs>%cJg)vAMvI@@~H4}Zzo6|6F%WhhkQ8*?cwbL_fsHjCvR8q8EhFf$RDG;QIbI!43Q+;D-JX_yzx4 zi2G%K1nx<~P5otXZ{~j++}u9|+`|73xTXI+a4Y}&;MV>Rz_0i}1h?^j3~uZH1l-R5 zDY(7=GjIq0=irY1FTlzEFTpAPuaMVN5OYcY*Wfh&H{f*tx8TnH@4#LB--9#!KY+XX ze*|~){|xT#{{`H`|0`1XDhNx){~O$26XyNDL$a5!+5ZRJ1^-;I#s4Q*^e+Hg{eOXN z{>5Os|8KDBUxpOAL0BpN6=0A5A8?j`H8|V97M$Z>56<=f3-0UR1b*GW1>DcS4g7|G z2e`j~7uf6H10LYt2ln|7fb;x^kp2Sy5xD0I>;7YKFZ7=P7x_vC0 zoBoU7fd4YM#D5hW^j}9hL&9(Q|AS`J>dHp=mZd!iJt|J^mE`({8hlC{MEpp`m2LS`)h(f^VbHC@z(`^?ym

u&)5!v6wzoWC*nOaF`D@&1>~_!oZ{q;Ll4Ie+zch5Jkpwuiqvc$WWFNd69D4(NXk?tg&L zV16Dv*DpYFp74CX2+2Q%7x-XUTZ17rtF67sNnD_Z#hx-N)y379tc%$D7$xXsr{60u-7T)U5hx<0a z4&U2B%=`RBaNjAs+wX_uF3`nyx1XWZ-1QUZUp!F?nLlH zcN6d;{1^_t8RBjVUg~ZRUhZxQUg>TPUgd5BUL(H-a-F*a+&8$B!5iJF;LYwd@K*U{ zklWoEaNp_f2Hx%N0p9EG3EuDW8^{m3&EUgs3;3wp3O??(gUjW2L!NRw;C{v}gU`8L z;0x|#-1|%JRPYsd8u*&KGx&zfU%GkI-3@%(-2;5r-4lG@-3$ECZ3aJfTfmz9c8TM) z!|i!{gBh;_Z1T$BIIjy_)vJQzy&AZNHw#?Ln**-n?F&xu_5;`V_6Ilg4gfdu=7AHv z1>h#$LU59|7~Ir55Zv4w0Jro8!L7Ze;5ObcxScl&?%*8+PWBE4r+SBi)4cD3J9~$L zGrYsW-Mk~fJ-i=*dwNHLdwEBJ&EC;qi+2pz>KzNVd&hx$d&h$v-U(pYI}z;iP6Dgm z$zaVp1)Sxb3eNFP1NZg*1n%dZ4({)r0UqF;3C{D*0vC8^gA2WLz{TEq;DO%x;DC1_ zIOtsjF7++}hrLU|QSWl}!c)8>z46Ye-cjIb`1O$S&Y!$vz|*~B!85$$z%#w$!L#st zBIEIUB`1RCcqf79;a5n;!;(B0ywE!oyvX}5c!_rycqx9DWISxeBfu-YA9-uxw@B^< zU-Iq-U-Rw<-|!v;-}D{^-}W8_-}N2`-}jb-A9_!LAA8S$pL)-Mj(-*C`PYCM|2nV< zzf`goEUO#ARsEa6@&2vg8vgCzTKMgf3HX(VZ88&_qca!!6Y%>K7lFrSE&-3rTnZka zxg0zpb0v6U<|^={%r)T2nd`t)GB<#yW^M#e%iIk9DRV1$dggZUjLeoEwdr`MrI@M&CEpb?aU_NyO~Mg z`OyCA7{1%Kh10n9+f#CW$?1w!JWacOH6Q@vXjAa*{R^F*=gYT?9SjC_`Qh< z_?3;_z;&{FfD^KNg6n7Z0yo4jP)u+(%C>+Lv#sDJ*>-SJc5iS~{3gW&{02uE+%nq* zZk?@y+hl9tcKDTw3C<4LIpE~%zTnjCe&Dq1{@~8|-HHkLg^qdPZrKIk9@&N9p4r9V zUic-82~Kl%0Bp$)g00!5V0(5L+&eo8c4Q9%%h`j$uI!;;HTzw#mOTudl|3AslRX05 zH~S-SzwA1wll`+3zyq@DgY&W*f(x=6feW(}!Nu84zyq_Bz=77Ur z%HV}fUEoDcRq&Fg8hB~bEb#KCIpCE|`+`?B?FU}dv_E)V(*fWOP4mDTn-+jKH!TEj zZCVW8-gF>%XVU<9chewvZ_`rn{-$B@!KP90;iiMYN1F}?A8$GoT;B9u@TsQ5z-O8c z2cK&?0(_zAN8n3MM}n_39R0clA%0=xQ*hOs1IhTD2dKci z%8cJTo@{o|PK}&(19c&&dsg=jBGh^K%D*7v>HIFUlPXUXuGR zcxmo1@bcW@;FY-}a+^5M<*ou>$Xx@zl)DamC3ge(TJA>hjoi)Po4H%Tw{y3H@8<3V z-_P9*ewe!#{5W?%_-XDz&>8nI=#6_6%#3>+Y#O&595?Q%T;^~LwAiN$|F{=p%LkXw zj8`((nSxCq{b!HPp#{qZ>U%n!Gx2|Z&eX}1ol@t_?)u0`|Ii?>f{VgH-^fUK$zU^= z)tA+E6md_N2;wxs<${5`mW_5I*}g^f%FI$Aab0X(UVWt!(ibMWz6|Q7vu_ahJ8V~x7Fji=B_<82FfC(3E&U^-!~OG?vCcZ+ zE{)cgsMu*fCY3b5wA9j5YLtqzWMux(@Ie1Or!w!r`utI+`;ZY7$0-gjTjI1W>tB!` zRb{PfpB<{p21oms)ORQij@E~VmUh>N59*&^A8~4jEUkC+&*MK~90|0rZ+<;0#=R^p zSxM8^DGW&=!^mRC>y_Qn{_SR@tXmw!ON#I(kbjMfld{_O|3}`M75}-x*1Z5h~SETdAA~ zUaK*kN*M{-sr1y^DKF$}m8vCgu9jNbioLP)3;A-P*b%>jLVLbkh8P933sY$A?XFdO z3W-Ea@M3qt%F(0}&r*l3l_Gaq=;-OL6|0G~E9G*ktd?)H^Qu&>L-31 zMjk6cELd?)sTQwuk;U#uWIf#|dL9W|WopeAN*#R8VbcgjrG4z0ZLL&0^EEqQPq`pv z5978~D?MG&JM2J(b@ovm;f}nV-{}R(8re3;A9tel!N8dsmv{RnNe& z`)?4xwY#@7-<1f=t`bk6yREmqm~TN1hIiWuVYEOH#Jdv{>L_*NF-2QmAdlr#Y2Le7 zsP&f0-8HuRXa?Fd7NslS-95WfwR>1swNfZ{clYL1XSND$d}75h;$nGLyg?bSc&<7N zc`h+E(bZE^S;yl*9&5r38f)Y;<8?K&x3jI9E>w!DwG??UDts*Onek^j6HhA^rdsT* zK%I2Y?T*%acd^h@WjBdDZuF;FB|M^7B1Q~V(PdS9cYCE;gBDBb3Os4?iFA){sKz{$ zVW9(0*GeW={@-u>#f-O}(M^$T zFLVd$iM2bch~Xy>J=D>m9OX(`M77?Y@;>Ft>@vl*-g1RiRV&V^sp~?i(5+mZv$Uhq zz0r3!=mImi6^4lXY89zS>gCoAP(>qq3M~3W75BssT=U%qg@ghh%2^l+gy!b=xpR zsu0apjM2Ktd*^56m9%AMr*cS@x0b5iI=Eb;+3>Qtqqp4C(a}pSTqaa%MU5p4K4BTNCn{mr zNJ^-%qtZ~NMCIXq7~=q%c%P0+zC}7lG;rX>aZY`t5~VT~p?%8{(?AEdtpX)# z!Jq`~06VK1iOu_;(+TUqPSPlM71gvDJgrjOOf$YJzf!qWE2+n4C!iY@V$j7XY)*Q- z4Mw?`D6C?-*uxOP3@RLkqLMJU8V8hbI0V?&q4u|>b_$kTt9unvYx?+O4a8x*YO$-* zU4k~AD~jGkj|ju|5>eYKtgR@OL^>$-rga%65r1rG>fxi}MYYmtKURp);H}4G!k9V^ z?nQ-66HA&5Cl4_eAyqChOqYvANE55_si%)}*o6p$k&FTI=ieCIsFW}0TSu%>FR=!RBYiKE}mVrNaNbd zQUqogL2O>@N-}vA+DjcRDTQLt23aKUfPtgEi;{ww&6&KS8nMuBciQ$y%TY1f#h^8A zHeRcCQD4ePGyVysfFxl`VyeK|b=XeYWv*mj!*&hlRVF!3U4qG$5wZg$rPac$q%ftW zxAz7)MfDr1BFHY`6Xu!l3NlXkh@hl~9;9yOKjuERGk@z&fkR`ZlseRYY4|OE+ygF{lf9Ua)#4e_lWn z%?d71KPqoZV9A+ia7rf4`8Ms7Z-M358(tT*$r4I1U#b;5tspXrFnQYfmD$QlK+2)K zRBkUdmy|im?5jmgV4-25tf@~+)gVp_%SMY(0_ZXo+KYvKaCaT(0F|n!X(Xb9rg#>5 zE40T8h2GiuY8iS*U9{#)9V(-OHT@_Qx=S=5wb3t^#m?qpON$N*Z&4GHNUe9SGHNi- zDOV_J#R`+MzUgG)gG=<)>drUoXTs}ZIlL^jU|Nn@T2HeW&+WWs?b3o4u&!l%$8}0GgH$yzWgvu?@i<{KL>QwNI%>4p z+Nya@It#e6)(j}=#2PbJO|fDTbPb3~W$DWinGU8cKohspHP;x0M#R}pF(!nGS4;>^ zF0mwaaZGX@MXWn;J4njP{DKRWleyG+m`jtoxkkq*($Ya&s)^=_+$S}8T$(U;tr%uh zvE%6)(q49nVHm9nuL%S7j*ZY~;34TW(TT60_^%UF8poLxYt8Hq1C zp;%T5AZ#?eeU1+H&BkTwZevn?yD_P`-xY|(a57Iz%`?J!sC3N2@|(IHEtLvOYu`GU zw22;*pfV)`#fO{iDpp%Ndu@q{Xv<6+r{#<-61D8YMvDQm*oI2NIH}F*pc*Z&?w;oE zLbcQ!`0230oi#`zNIQ{$)=j-VUB>D`Vbr1&dN_(x&T}=7MKl#}RzvK{Lfh)Weu}CV z9Y9Cx?&-#olQGq!e$`?tVnU^Yzr2b+&Xs1J1%Eafo#G*;#RY1g(<-rajaFQ3(-M<> z1$7Q1P}aj3b|!Wb)Er)4>AAnYQjJMMXo;EJ^RjB}J~(8VwK#{fAx@XIH#bPTN)eHs z{o0|lNVZaSM9$B3?^Ii?T5j52BuPDT%J7f%+foOO8XZBW&6x&PKDAH=SFFU-UWi2C z%5b^TJ+~|~Z(h-AQ>vC%dI6Qm@DhEhmY1dILQiEjYNOmSmws}=1@=<8M+zc>V3|p- zI!i4rs+4kRY*-!DWGa_ot}SV%2ZW|Auz|Odc{7utHpcB4EDidu?=QYZ4YM6FmiuGs>P##nf2v1KNy z9;{Zu_*ccVvM6((mg?Bfw+gjaRraZ!cRUSKrbrq_7)wJHHlBi#mWoBJX4nO><2ISxuJJSN)m-Z)YA$PYv219%F@()Mt*sb3xfhM% z%vPD00T|t=i~5Q7H^Le*XNXA&%zw-cw48fIW)!ru6NMuk7{?uOK4RY>ZN|{up6T~g z*#(&?J%WX$L|UAPVn(F3mkE#OS>X&P;lXJ_JTQ7|LMGEb*j5P-wFJq|XxF?HQoKYR zMsBL5V`d^1W=Z{kR;=_J3tr*Uw>Wfta~aS~Ps+tM({~WW_Ni4W7;`vzk9q7{ta9oN zX>ks^u`!x(U5eHMcj2r`;ic7zco{Y#JzJ`@w)Qs9h3eE#sVsYZNLmkB;)0q+qX;$y zpleidqR*cjp?b3tvARq`P#skK5a~%K^Fs?%t8ob*Dl)x;#3*X<#kvbE32&qZn=@=R zdMQy-F;Xs5FrR{6%xLQjhi|HE`#VVk0 z12Iewt|Bo6#+L9RUnms2I3vc17;dpLzPT%CwC+-yGLRXO9iDe+4;PeUB!ONsmC;dY zgK@!QRVbTI%4jGnb*!%O3Y*22QNh&c(OqooL`94_8mQM;2>(+tpHFI|sGa-gdoAfy*$2kp*^SJL}NI$1VsGFJar5o59rE z`m%}@d|Aq&pHibZg<&R35Sk6+T07?ml@1mXVxzvzUU0h9PDsxrFgppeH?m;gHdq;9 z7Fe;DH4iM{;33O$w20M)u1qv^w%W|*erA`Pze70I6xXIy5MHS*U~au*|6R}ebiklH z6m-Qfd{?!EQKiOVNClHsC+r4vJl8TUpU)gzaytM6g{-wC@;0OqY|u= za&uS?^qBfrX`$@JIaXeJMc1xVBSI!7j;#7JIU|6j+pCU^VO6Y08CEEUZhqQjnjbG^ z>(6QdJRhdou)aw-Fou3@KP<|k^+ieKHYq^=6>D1eVUr*d!{mjVcysZrQBEApQst+j zXu(+pIZYXgisguis}Ob&dB*B-TM^Zh@2Rn_Eiu;&Xi4!fn04D-9r+sNDpP$Y>gidb zB66{Yqv2r&*@>Fq6sLq{6-5#^N1ep{fe~#IkISR6!uH7{SZJeNDxRLXSvkPWf(DcG zqg-YPa_BCgvQ(sQG~{BwSxzx(i5#brxd-Omv;&cm&nUzW-TQ^6uRS#`dt5)>w z7@^fAj3|2FM#@GJZEVITymM$infan9vfZNBzDnHP4tpss^aQt7lU)w+$CTB+G^>jd zp;`Ef21SF>Em!tS(T2iHGZ$A`$TUY)F@mboTH=F^UbJQ|L1~Q#Z!s=XuKDbEG*6xj z!kPUVa~)`D`*zHBzZnFA^kIjY2L%}(dN*|4%pT1B?L5Sq)oK;NEOn}SGi0%CaXds> z5R%(V@uR&XejK7rzSRCkZf5XSiPbWgQq9OQGSf8Cl#&lhrPtG9QloBgiVHhXK~1vZ znZtJ`J+*$P4_(EQktIO2mZ%4pAYU`cmCCI&0oCKz2QD$c#5o{)NWsmh78x{UR;cVk zo5*@C&s^&J3N;!daF~xuV3f@5tn_gHgM;ZNGI!efH+DOEg)}BLcaqX&IGluo2zGw0 zKGv=dN}(IoDus$=ejr$Lz6N$JNKMZQpAt&WDV9~cYFj>*c5s_2Fl|zO z?oV!kNBs5vn_P1P-Oj`08ysIA)6>#eVUd+GVPQ>KOrqEZll3Uc*$6Q=t;veJE}s;S zGgeC~PaiiL=|uWSK!f`?lNnmqK{>P?mrTioZjhLrNb_8-%VA$$w{f&Fk>Iq0vIX(< zv_u^o3Z-m|vbQ9+s#Y^%Ny!Qab|>w`j4YO1(DtyPh1Sy=lt(pYw#v8)|*bSmt{XlEEK?C~47SnlfV#ge~FDkKi(6Y(&r^Tnm*VvY8Abc98U(JtOSS0*>M zhJYyDW)}~$^^N0V4A+U>Eu-Q^5E=xy47CR?0#jAHLp=ilyJoDtK&l2WX;-)k`p7I< z`lNEi(qS5+)omfw3mKfqGmxJD(W%3!@lOr} z%PI$Kdo$+qP=k`$X8^Ep$~#jgfE+2%mOD*X{hAAN4UzQRwZ^OAhZi>U2=Tx#ObNDIOc_uUK7Zqp|7zJt?sT9X9-$MG6K?RnQxsO-(-H@ zQ^qnh=kBtCqStNX-l13;q|_3oS$r{u<;2-V4n=xyt|ZAYrcg9<BEWoUP|sel>Ln z)!z3w@!F-WaP&OSOuM1PwPQk(xe`tb&_%q^|UwO{bpkFn?MyT+T-Ys?$1nfl`aGQOHHm;IspS zaqB5An^ncLC|d!sJRzf2utdd9Nns$s6x(Vs5ibdg{a$%92U7y|ZVwz~*(QUd(#^gj z4)wN=IMrJ_aO#(O;8O45z!AR46JDsdb-JLA#^^irPV_!osK*YL2SL%hctFrE zi?grg$#qs`{EWP9Ea4!J-aG`YFbHYgm;lzW)5V0Wn!%MGCA&DDFh)ghUSRMJ25`IS z%?y`|)#|5MpO%y=GU~(S(QrgXPzvmU6e7mbt57mMfke-z-TEl$bju@)H(sI;vu>_li;0XH*a9tV~wDhwv=h5a&f ziUuvg_BN4>GC~zgG{k^?3X9GJu%gjg)Z5Q`_}1^vFtUD5_*b2nHAg$>XLK(dI$0$Z zg{qvQPL)%w6vB;j9l903rBr!yUS1WWQ621hi6@Ni78y!-YF-{a#B6QB&LpqZ9kzDCIO?V+~4~w6Y&9+qxW2?b*69Z?~A z?t@g!6b@VE1q>^E)qhT@vxgfd5#O*+P;1*t8o_8pn^Pfj*@~BGRSM{Q$P&6(cHqRb zy9?{-swCEata!yMM6FTAyRVk=R-y^;XaU|4PpKK4H><$lm(B1*9V8B;p)6(*9(@7} zt@dLHd{jSC^=6)R;AvHVAY;bSXQ=kPY3O6Y$eh4u?y?t-4kl;d^~^fRL%;Jb_Ytjt zu!pC3n(Y3Dh+TH(?p9uw#XKLtn^Vo8iMA&^qcLG0ZQd# zd~~;Adr0+=h7t8K=Nv=*64_<2?^U1ph~JDB%T|;foHZQi5@S%R%#&VXBc^z2tFnQQ z6^joI(>^oQSk24$q&#uejHcM7)>WAAP~$uf$f#{^JWcJ@lJCT(8|R~tabDEJuM%J? zhNU*G7V^le9g`Q;5m5l!Rxl4M(iv51SiG{n))2V|b%-<6b9nFH3@dZwiCM=CQ7$F3 zQsB`?6c*<%cq&Mr`$0hTH-3-B4ykS^dQ1!<^^I~Nm3u}!0GNzrPWh$#s^fbxKkT#8 zWJu(vRq^qm63$=A z!3b25B}voYP-9qTEy6xf-%3CXBjT}jwe|_2-U)=t3yT=Y%}8fF_Gyehwm!ZwN7B+rJ0BbV{yl)a%RW)YDw)kG3`qZC=ei4^gwos~IG z_gYt-m=l+9l9FZ?HfVL}l{&FhVvsqv)8d&IU=vwM%85hiDz;K>!GT{Zkp4Q4CDF}3 zX}Ie)mh{jul5+qZBk5tEF2s}TLf^JZ(9(?aoYu9a|Paxr!=Lu3+xw81H8Wv~lDr9eKM;>R%tOC;_;sBYFlC(o4W*dL%4(yX{ zs1qfW)%~EKwDhRM^K2!B$}IG1+(cL$s|0d5pI^CR=Wm6@qJstUc-skv#kg&SvmR)U z>QJG*IHj`Xp*bsCX>z*fqCQ~`m@RJHk>070Lz?=-BB5F~lVZfGbo9vPxt*?2Ur2;+ zP|7?|ooGeEwa$oU?t(_(FdEvNMqhLmTS`5hmWK&yWhM8|S__As(8TV+QOGWt2HSUS z1~_FHsERQ%XbJs65hV|=6Eh>rD`{KsD3sl1*pBqfH`Z`0pJ?kbx`Q_tvy<6atuxZ7 z(_oFszEQkRD_?oyTg!HpsRsdSR?!(dp=~J)H`MIl zYC|m|k?$?ygmB6zrq2BuAAK~QPZV}VN}rjH1*5iJD!_1o8=;jr+-Fs{Z&qaOvP3G; zUX++KGxEHwT$m64h@l2We8!swy znJ8GrhJC^k@q=189Th!c&7#moust3vSyH>1GS>apF2OTY0n1*H2hC<7xHA18teZ;Uykihje6Ng$&uqCFj)D)ept_9;vx~<0?`(O^l5dz-`l(VdM37H^9 z5Uld3I#8#@Db=>D5^F2SDwR>fYRGAD|A};1lAu^tYR1YkZ)WIR^>;(GjtkAAh$fSY zvHf`7-A+6B>PcGlN$kWDo1V0@{Pru2@tTYINm>|oqU-2<>%uNicrsTnW9!xj70w=l z=_a#{8BDr@lB0+|!HOoJnwE9rWq$1ns}aaP7;QZ;Iv@G{vtDNU&nic$R$W0JCPot zJc6*%r^L;q^zPPE=$_iZtEG8r+Cw$-%vc{p@@iP(Q^Ti-F+mSh6n9e-jRUh;Q~^Gw zY>#7sP(J3<-omqe;rf5zD@xPW+<}kvOd=&xF9WGcYU`*p!?+Rkh;a)0je4U@9k58s z^+uH{iWuDpqtasFB3=dVuEn>-=z}Glv{pPD+oEeP8pOSkEYuZU?J$R zu@0x7jrtA&^-U+@Z-XYie*ip5Bs-tI@%=-OJIRP5R#X@*KY zYF|9E*c!X`koF%}ctNDN5}}9IELJ0t;CP1VWrkVU&?BM8Oqro^vB(=&p2$dAb`9^| zrq&w@AvYA6OiJ-kic}v~TYB-3R*E7piKTm4wHe(8MYNcoSw4VIX!amad^BBcRf$Kk zabR3XtRbsHrOYbe!A()_Z>7|we4i@35eZ=)fcT}h3(Wq~DoiZ{q~?=sn)1q~^Z@xb zOL)fJ>WnD6?THSDhaPrebI++y)tGe2>XYEXf$vCivVIbIpMcq!3JKpSh!(=USrC=MB_7wyzMTJIIs;PwXL5yW*sRl6Lu%xS4i`+UNnl{SMbbfjYPf7`wmfQp`9x_ zPz=ddLN9e>UPhU41=F;;u-C9^OdBb*V(CMD!8@&sh<9qAQeS@K%3>JLB&y%Uv3IoD zj?||%BULKj*^J(!vKiE;gS6Fv$a+oucjB6xQyW#b*0nsijX zn$oE%Nol>P_w;nkN`tI#V0;bD9c04IMtt&xH5~Uc@%Zg#EEPvft=`E>Yxf*?c^0Nw z&X7eO8{VyGE}85iKDzCskJ;L$Nttrv2DE2vN&t@z{=P&*U+uw-BU7_-)+(iso97@k zZvxMZPeQ_?#MY7E!6SZrbKhQSfVjPaKAp6S;loE!YU|N2+eK;$US>H5>jPMFP^$ol zge3$V+KU9{(YaWr=r#Oau=;*@G_>}LMX)j~bX2VT(6RJ}fvFTo)YHdm0a{EjB+)qL zH`$aWZ0%m6)N-CYW}~TN!q9o~tX{M^c z3003XMsg}4B^t-|2C;&V`zAB9%a+s{K>?FqfdQ5DvaP5_zRHwJ`dao>1J6b=0|O}; z&#XpBk6|4I&x~CtStKM)%@RDoV zVi6L?n|vu|M<7kPPwQjG(TvO|jpbfbBk}+V-}z6(3p|q1g7*rekwS4YiuLAUG?ML+ zjE35`7vWWRZ%G+-R6u_IHk!O8Z@4!wyj&zz&q*Sd- zy!?TsdMZQ4OL%Z2J>qM9DoR3|>ts4npIAcbb5=+Jj(F5Sl!zn40pp<2M2j7WVsX?5 zqmYmK1Qi{@XY|w!%V|BTU3oK8N`&v+Dgovb$Siz06TT8WCX4){h)R`;m7jam);Z7d z%L^w+A?^J{h$C-I>em+I;@FFnRel|r`E}{n1FHOn3Y8(%Tf~T;sg5V6c}TNMjl!>! zro~Y9x_!ccKRv@AoQj-BKw-3zVYbuMj(1WX*egjd^Qu2@EtZ;XBg_mBlF0^}-ds7YT4z0+hbgwXDUH5$M2py9%&ROE|yaGDn;;WXbw z!FL;i7eC;Z&sWM2Cz;_h-}bi{xh#h~yjd|WHWD=MYt9+cBQ*n$Uu z@103Q!4Rv|1-Iwb5eU0fxP5K`*n^$=O)2?$o7qp6sf9iB!MBRlXOd6^c&f8=s=Sy| z$m>h|#zeSGp_lT^D>%BZR&b<3-i1OkSYyHKIXJn=vD8j5;$hUketjl(4wT0sbf&5> z=4*rL!r)bA$sYR1oFG$6rz(lawxOQ5a?wZceIk~eaMnJ&F{{c0Urv*(N3Ni<@qCFXweq7uZr&14x8IT^%$LcxlEVY<}2@a*NGePeo8(N2=4j2c7OA9}A$D zB)_OW+FKY}vUH%%U#cw(EvP#b6%U?YUrI@B@o;@)@zB5mXCz(B(A9e1h!t5~miv~} zo&0?KZ0tz#_j#4v{P3>2O8!K!l1F}8caW(T2I_so#o^(hVHSAA3GFjEe@VY3>KOWVED$8IFr9q|_b*wt#11zyf4E;7n@aqU!M-K^^TS$V!)u8P zS+e%N;RW@2T9p+BCE^}DfTAis2?Q0XIvTPI& zIU1*Xv~P6Th$PW9Jj6~Hv@p3B{nOMUWQ8V#Ok9NWJI%bR)|U*8s@7`9j(G*yRO@J3 zY&r64&iILDDNOhLA>EGjk4Q&-)elP>S=cDL7x$sn&+8vB4YM}fH#oASUw+_RiW%fv z8}46(U+XRm4UP^E4M?TML@coup%3-hLFC%@m;S^GG7*9frUm*52ffA$8~3u(l}fdO z29?~ypH`Qe!VL`K$GK5~)%wCZIybs0W2DKMa%qHZ!)Zf9Uox`DS+r!x8Bh(8&3P#< z#b4Bk6W3cQI!lW}ebwA&>#B%aN~olWI%=SbjJ~ndkP#Ubglk*<#8gjksZ@$w1}eu~ zS$+{!(^3!BOhTI^G>N4)ER|8BYK-ZJh;B&L3ypLFACJ}hd8w54h&(yFm(x%8aJzRW zI&s*68+2YvEFCD>X;p`fch=ao>Zp-Un%+TUJ<)V3_Cn*94%VP^X|ePc)l<@XgYF6J z6zT`=+xrF=45(gJt&a>198_Nr)fo|~t=uBl|^vCaH^s*fB{$~5L zQ;+4(_$mFpUQnCZ^*(Q{q9e~d_ zsSIO{+g6U27ZY#b#bj+gnjVYeR=hB2DmNY`qJkTEY9*{qwL~D;OBja}W?MYmAWb-1 z$a_u*dABj;ZpSg+M%mkbOwS$&Y`-9$W&Wl4>wzNfWe*&2zr;Xd2Vj}T48Vd(0MXNS zRQg!ctfW_}g*iqr(ZWgpxaAoSp$4^tG-`cD9xO|qI_M=5u`SiOXZoO+3>C3pZEx1S z9t4enYkRYlW*p_1YWrDH#mcq)?07Q%+MagAgr^lVZtgZnW2|6SYKgXE6(ixtc*-8I zGo>`uK8UHC6@_6ss@0}8H*Id%ImZ_yY`-=b==OD7%dxvh0w{~!jxv_DumVdVVb$B| zMlF2Xr=fK)#^9fr6hsniH0Xbh0pH9Ltcio2wDC?G=;7CBkPl`P%9xF&sK@@~0Bxoj z4I%~W9f{-`4(Rs8Bob?^fqcv{y1^jaU;tjx2-|RU)gFyUR_!z9sG1l&#~3&p4U8gh zFeuV5Wk75+7>+s4rH^q9#y4xG)o7w%1xYBH1Khf@-np5N!W1V}&5yre(t5xy|%xSYzT z8xce<7`(G@bpB#6G6Rq_zf>|xnRAj@@k@^{{ zgr6(mBGjk#cp9ab(p*yunC$kc!B$kkpQGX;&2`L5`&{*4)d8yndvx5q=pS5E8~P?J zSw8W&EG1lf{ou5q6ieu(O9%Sr%TjA;L9l3_Pe@~7E7%L@=SG=YS!~FiK$vJ8lEINP1=7mL$TMTZ}|BH^?$t`$oL1EL@1nla#GXCR-fD zmL_Ug{DKSdIe2OR@F7aBoRqfK>kH;#S5oA`h4>5&FX>Zxv??d1dSKFfoZ(f(&)iPn zZEi&ith>}#fJFWb@Iz7~ID%8RGD5T9kE)RBG#c% z?`n%xCmLMSzgk~9a7b+^VIneYBfogOpu~0r5$cdb!|Lh4pH51x?Pu+zRM#n6iacif zn*Oz+(Y^sK)Q?6~lNNEydqKw#+7un#ik=9>NH^r{msIA7Km5(K{6iGyhMD#_Z%i}15r6-sH zADVt9bn1>DbnK$)$w9}}JykzB^wPk^#G=nwUrD33yH&7X8EyR1^r9jab=hdp_U)!> zTRXN~($Q^JH&R^^X`m^Mk!`eXcxc&Dt#ypslJoA^xwIEAt(M<9(6>n0-8v^FUSpJ@yllxlHh%=x*~EO<$fQ*^4-Mg13cC#&V|{-AlD>hd z_JwM@J+)R5mX{3-)at`a`gy=)f$liccvTZNsj2pClC!ULuV8{APE9fF89KP?8q*w8 z-B#U3s!`Wltb)?30H%=kFmsw%r{ZkX3c<=8I|Ls@ECiqa3X@3&l9Uo=LrOv`2op=k z(gI_q)i4~>i|CJNGW3pUl&Cjra13vWotO?;Pe28*v{FjdMzmJUKM_A!@lwRN;)~t| zQ?XQGx~Fc4QBNjrY0ju8lMQrf)Qj;Ncu6d!cvIq}c`!zxqmywOcu6c}dZolk^I#19 z?4T=?ksA3$;-x>JAZpUvimer9G-u0SMvSO0D_SR>;>)=9;FOHp*jM5jlQ1P>x|hU? zn0+#0rNm!RpkzuZH^|#h8C9d%>6C(THtMUBXyD7Z(Cy~bWi+btOgC1eA(@FijN8L| zG-N!@2GwULmJ&p#LSr+Uye>%6gE6#0k&Kb*q4Kbom2^WigOk3b{zxfBV_znmV#q{` zl`{RevX5Bc(TE(W#k5X}m4%%mSLSxy!?N0=UScMs})<=WETF<HdsPz=3OlSqLj`}E;5u>s77Ipe|8k5(1vtda(hUWJTgqM1+ zRUK?p$Go*DXbMb5%X+Y0xCAHjF|*XQqECj`hZoYq#L?m~=`O5kQYv$6wIvyP;@*Zw zyGMtXTB1V+=XVWZEhT?YU;jY#jJBL(fr?cd7II@Fx}xd}^vfVpGmcg+d`*L|5a>Wo zOaI7xbq?BzJ)ZPOqowMxBpylH;~4W%L>`0n2x8SAulg~n9ep@jcOthFD|c$vPO4OuH{FY6jpsXJ z8YjxF%LvVAuL2vxve7XetrZ!JkL7a&<70@m{|0&DKEi#AMqyI5+Sq|rk7^voeqpR( zDDy%?>;Q&UAH31DUfLkZu{&@2Q%O5t6DvWa+c(JC(gqDe#FWI?p%NBBT7!z~nX!{h z)A|i!4BF>dt;%5YY~;sBmC$Al(hrne1OKQok#_60c5IMHOldX>m8we{1Wu^f^d=Rx zLDGtE>*kcaV87$Uu|%X598bXvjwxO#^UHW_J*1{Z) z!l#rbGU%uKuRuM8qfTSh^f}ei|6i4~0(G<^RW!C5TCob!Ay%k19nZ?&Kb3O3`L^E*cg`;{?P69$LCX z=gj;ZSXFojUjE%-!N7onKSy0#{lTQ~wCAtba_HMVzkO-3Gw$L;_nY;FY0H1=HI4I| z)*k0ia>ivQxh@@R;O|6SOr*nwV~uhCIER1NU=T_@Iwm$v^4*COCuS#k_y^wn>%q5) zzD;n9r(--EtJ6VDlw3SUS!3L|N!f{Oj8iF0Tm$L2?mA!0WKiDBBw`{lj@XbGPwYiZ zASM&zT;OoJ)*?<@6L2WonwQV}0Inb-KEt1kM;GKyCQCFCIbs!JRbn+_bz%)-U1B|A zePScxi-d!mGN0Xa^6r_JkwWGb;x6K8;%?$S;w9o8;#J}`;&tL(;!Waz#685l#C^p5 z#EZlO#0SKK#6!fx#52Sr#G}Mx#N)&p#1q7F;(g*t;wj=S;%(wN;(6j(;sxU0xc|(h z#AU?g#1+Jq#D9pZh--=Ki0g?Pi2o8d5;qYy6Sokz61Nez6L%1I5_b`I6Za7J6891J z6Aus%5)TuP5RVd%5swp35X*@tiKmFCiD!s^;5lZ_Aq25}VjW@w z;tRya#3sa-h%XbH5}OfQ5L*&k5!(>k5!(|x5PJ|`CH5q~M&yZRqCm6~ZA3d!BK9WA z!~&vD3=+e{!NiTkO~l>Aqr_vxUhH|N6K@lr664U}GV2fyZZoqsWor?eQilGD#!5KS zb>Bd}I1-p$cNK@#3hy4EBdsHBVo{guIg_&^4XdmiP*>GclEzM!d+Xdx?0Nc!hYC zc#U|Sc!T&K@iy@e@h#QR5SI-dK}u{~<^+tpiq6mJqIQT8F5#Ye=) z#3#h3#Ak%d_U928oKa>XOXP@g#45z9#A?Lq#2Un!#M;C<#Ja=;Vm)GgVgq7BVq;<= z@kL@2;!DINVpC!ZVoPExVjE&xVmo4cVh3VJVlpv>m`dzKOe3ZfI}^JQGl*S@-H6?Z zJ&3OodlFwG_9F5`Gf^N~h$7KSv=Qw@iP)Rihv*%XmFOmFL=Q2Gm`%(f z<`Vl7Unlk>zCr9y^b!XUeZ)Ls0Z}Iw5{rp`;y~h?!~n5`7$k;>rNp<0VPb^%9&se` z6XGc1r^M03&xm7)pA*LtzaWkyen}ip{E9e%_%(4N@f+f|#L2|(h*OADi9Zmh5q~7k zB>qO6Mf{yOn>dF!mpG63CviS;0dWcOZ{kwoGU9UL3gSxQKg89^Vb;R|=4a9$m z8;P5Un~7V9TZ!9$B4&?Cy3?5lf+ZR zv&3`6^TZ3pi^NOB%fu_htHf)>>%<$x|A;qNM z7l@6BjfsiG7l}=XFA<3wk5VBwkLKVb|fYfQ;4a= zPQ)}~I(w+MuOS{Ho+X|mo+n-)UL;;3ULjs3UL)Qm-Xq>8J|I3M zJ|aFQJ|R9OJ|i5=Z!#|75kA2=PbNz=5jkQUu?n#&u^KU+Se;mdSd&pNZ3nzYu2-e;sWAA;u7ND#HGY# z#O1^l#FfNz`l zV+^1@IZTWYqr|<$eZ>951H^;GL&U?xBgCV`W5nac6U1`jN#ZHuY2q2;S>ie3dEy1) zMdBsmW#Sd$RpO4LVdC6Q+y=NCx$C+cf5mk+pFDZ$u9K(jGI{&v8N2SZ{gf$%*6s7t zTX)%h+O%oYr|&d<+GPB39N7PB!KTJPm?1cr`okJh4ql4{-BvkRDI$UOrW`Q9lmnHg z98iVIfgZ0Moc=qGRiY_lmuO?xS>G(R;H!sN!N!(YVW4khM2Z|nA zE;A<2n7(Vv_RZ5K?}GN)GG+T+ciOdido#8%MKo6pW+AIEu!BhJ`=S5pBlNZX6}!;3AHM*+(2!RW*-&Yf*)! zAE{MA#eB<*U3Q*|_LeWQ;X_f+XlafsYU^2|D#z*~45`yZdmAgwNv^YT*xsZc=xti7 zcr)+?=E>7{n!J6>uG6NOr&5>}dn(LShnzZg$gN#xvoO>6rT~}dlbKH&J4q|^oyQJ| zm8mZ^&fLm)-cGwt-DSaoDcjGRF=Gbqdj7)g`=&39KNKuc<#ck=C@#5L4WGQYo$g5@ zPT;B_9AEfs85rp7>mS4i7UvHQ*Xw43!TD?pXVPAYxGM!KYhYy!tgL~RHL$VAn zvz%_H7c4qexJpjNDdV~Xw!+OnS7cuQlqa@aM=c4Pf7Nmf7N-$Lts_ft0assKq}t~U zBb|O{z`@6kok3@zGbH|-ORO4v`yd^Gf1fjoa6`D_pYJ>8Wfmh*7iAhnsD8*7rKHp% zVJ171on4UjWM`T)55$r_O5{2Pq_+hB)e#%t!hw7e{%&shEtUKa!QJ*rICx8#?IesT zc?(h)app@omPX3S^d>vwke3NN3t{n*59?m0J3Ba2@OQHOb)3EM1YN0(Q3*SUya%ij zu%499kh2tVI-QwL-kIY}MGCyPt)*-oh`UH)@-CM;he+ubIg1h3zK1ZJs_g}cw*>Kq z9emRXAywEeX9CJp(P^-@StfH&ykadnR;kmxoGG1gN}9SYGcl$Obf6&_JPn2z8T zgZn$@z18kYg3|oa%ye?)ciuf8_uO;NJ@?%A-g@{Ko+2L+>A0?5C3*#SZoL9O8I-{e zU-O+Xz0~m5>Q~h6w^ol$WJ|H4ZDs6aK9))r3YHTaH)Hl>A(kz~21XLGyp=ZNO--S7 zp6b0jh;}OF(^T}9@C|DyA1irHdk2~f=4)6h1 z3ZD4t*$qrujOc;5U9wZa#I{~^*wGlSn$`>Jm}MQof;71 zxT3LbJmeejv$usvG4ZEpEnSKN-Z-r@OcdHkEnOO+C(Wg4z8S?n=(GG- zb+Euwyn1X)L=&EcY%oHbz-FEE$6;P?+(I7KVos;T2zou84b0-X=FvkgU8gTY7M4Xk z+iloW?EDN|b6}~O0noK+hSRV%WG@BVXK!Gk2yiP35Yi0$dQdEcHe|H|%)nY5)S-GR z>}2YFb<|F%49&n@T`RS57p5V2EnPn9gKd}^@nM>^3|!|LSQRpS(^ya4S`Lb}0>G14 z$r7s}(Wp(sbKMA7t3Yz&t<(L`2OAdZ^M)f`L(baT;g58HWMQj@N^sX$5;P187KE%A zzzo|EG%QRQnnB$3VACdQz+`OuEtm^dN3`|RSXbTGxdym{5!wvn+B6nK|J+LLBLmuv z5@rpBj1rPM)EKbVx*?<{TcNBq`i%nxA` z7-DrZxB=kWd393+eHE7MpU=aG5OVer?7Q0CQ)c`TR2p~lAWVyI9$qs{CC$?@w{u(_ ztZ4IRgjdN+-Z#ir-Z#95@ASrN)2LCpwFMSA$Rf4Cu^X9#O}5Iq2|ZWbEm6K{E({iS zv78k?Is~1V88zsq&}ktmA-5DY1`O+FU{ZL{@8Lcdq`;C*6m;t+7D1Y(P4kMCP?JJ4 zJgxYr2qnVhi!GbmJe%;;;Q3(T0EOMF5Q{UAMATvToGR?8PaBff#${z*vrT)oY0eO- z33Z|G-fD<bYK_@qo&68^TH>xbE)66(ZV~7)bn4%KAyF`1;6;*T4F5(~<3OU`?t2 zmV=4DLB8U{W~r3Sn4^>CqVgW>RxPfDX+Yq;fCl|gdtHlSmw$l%t-cLDgT@5r z1)damM&Ne@UJ&@6zy_V=*9hzrc)!4t`lQ}Q@9BT5hp5?q0Z-hw`#WhR9q{k+8}u9K zhv|3xY{`oP-xBz)z^K9WYX$BBG-%x5S-x(tU#}T27zVus7$zgY+%E(+1q_-L_{#y7 z`8B{Oy%P8Ue*FN@pnnp|SLg$+jqV6;;4pjf;+0njV;|jxwPx%LcoV=_!Y|k{4{HRa znZ5$70lkP|Ulq)U`Iz?yg86BMVBZofOlx4%_tfoxZ>nB!zOVWLKU8(!Dh)%;IsZKl0U)(c9r6ik3=z=Z3-fRIXhi!6)@gI z+-CjVs%P$KpY?C8!*;388s1$hKKC3y>(4+7>Xfuu|D(WA^*roZXyF~kZPx#iV0&YX zv46}<&tbcOl?A(`c)kcd<6%4>GQ`7pz9_xzVLV?8z2{*(Un>Py6WS%k^R-e;FrF_1 z>{XA)QCdn%*0_=!r8auV#TqzDZS-9a<0vg7eJx9#peMB+T24FVjp_vbwqOSZyQDaR z%jvrw#t~dj|L#i4?91sHJgu^ph%ZAc=oP^($$Ts6Ll5KmR?%%Zf!PPPvz?yuFt)RU zKJ+l2uY=m<8DRNZ`g6L0ya*sq zgShS?Ud5!qEZ}iED*Y*e#|1tn@RY#Q0?!CMEAT~u-v-1g0QS&pWcZ(^4Ybk!Rr(7W z@c$OQLHGNgrN5ys3OwmQM?a=#{NJR15c&7%kNxK{_OC%#>RT}2K8fOoqC@> zFgB?^wIa}^B9d7>YJH$b4XJ~Hi_pxg-KP!*dT2-1;zm-Nr{U$A+lx<+kN_u*Y&M4eDisi#rx zd|2-Qaxf^>?KZ{5z6yiFYX+Ak+L4FN$Xp%$b*RtHv>x!N(#xDRIG+8NAH@yLJr9U3 zdgZP1{N_qs@}w>>iaIJc?xKAb`R{70j4k3Enom>Ml?!RR{6d5S!&Z7SXKthUk2mpj zE=T!N%Cd9WaY{^;95YYDlQ}1wN|u}fGiPR!j!E7VQJ-yRk0o> zdTcmZz$2ASBjbn7lv7byxyz$gMPzt1VcJ=UQHrM=%ch~iG3$s)Lw%*GLTaB` zf`ugg{$wsUo=hE~?Pexh@Wgf$(q1oN7SgoO#N(EE%%o&GeW>0Qvdz48%$!dhDVhc9 z&snAUt`jTtRLtqE;+ZT0XxC4HXywxIe1BmdO#FC0&)IJk3J6cu@@B8WcPGcq9D(4N z1&8uSCHg=g%w{I-q&uV*t3)%ErwMPpj`9O-g)SlAlguNiP-$Dm`0!}o-8Xb~QS~k| zB*Q>W;IWu36TE^9kBU%5YyN27WZKLp?IVkfv5Hf6HZ$QYWbL)F?Nf^|`mKC1S(sWlqAsBpvIopk%FY%! z+ZHm%vQBLryjTuolbM25LP05!yhmk{T^1S;pMyNZJ zCgqb85UswRRo1!AZr&x;ZILh?M_#t>G#!^wmkV{Wi*S&f{I142Q%R>X-`)8f;o5^A z4d%*#WbjbIO+?H_+as%~htdyZUp5W;QZ4mcpH$nU^JL{Mp#~r$N(((8svUVt~qYG)!A}+8FaJ^{} zwFP4rp=D7U5TygMO5hXw>J8j&7BbER;*?B#X4No<(nt&Mm_b^OXA3A1at_7ECTt90 zwQf%;hu3$@2y}A!CQQf$9}9%IOF3{I7k?_Xsp6l9vzs+il;8?gnR?%3!9lT#d$kb< z(y=TSfp$EET3JZuc080aC6wal4%@cue$It~EY4D?;nY7eT$SRYM4nRayGJP7&DfxA zj>|kD@JJ&l6(z=%Muy%ZH%dM_ITr{C4uiICjN>vMp>By4@FA{Wu82w9Ga7bDgSup zTsiaR$-cAYzi)p0@=%C^-+K7qffYBt`d}I`@LOR^aNuwOTVY%?RpH5(c_H_`)5BekpPxbPJFT zcqvxQ(Rgl6(*u|q^j4izJ4>4e`NC+>9L6 z=mt6rP8l&Dc5C&4T{BjU3l+S~#b+9{% zAq)ou_qB$A53pjEpc{nXm*-o<{c_UGAE>+*=YFh$)!!?>2Ue+v`Yn4Pmm5xI3+^MV zY0Bd)OI%$KJ@|U|^Y;HE0`Bjv_{p$b?+<@*BkEd&&T>0(-QA1tq3(w&CZUfH{&WDp ztses1LHp1f!WZH_z=r?_Aq_>4`#IHIxi>3I#75LhvBsz|aKcD&kIs*R<-HJjw literal 0 HcmV?d00001 diff --git a/SAF/SAF.MessageQueue/obj/Debug/SAF.MessageQueue.dll.incr b/SAF/SAF.MessageQueue/obj/Debug/SAF.MessageQueue.dll.incr new file mode 100644 index 0000000000000000000000000000000000000000..7d1f07b43f8784acc1d4da14e8fe42e13a3445fb GIT binary patch literal 1980 zcmcgtO=}ZT6umRm8fzB?L0pJF=t2tZP?a{?ijXG#h!|r`OA2N)NoHy^nJF_9rLMYg z8K?;Uf^NF&Rs<1A!B4Q_w*NpEer*H=&wZ0=reMHE%nf(m%$+y)oOkbeFG;KD7*)ga z^op3Ol`AEY&^=w4wj<($B5qfg%N4^BBO}7QS$2hqC*gXwW4NNk6FplPmR>;A)Ll<*p5 zj8XVGieel?EK4i++QYmm;w7r!$ENUQV)M-xFxij~L>Ce27Lx?nd+;zPS*hI4yKmt1 zx>>f#E^=B##josPBwO_C{08@Ho+}26!MjzZ6#C}kr_&O&VBs3B*8wmYeeiv!{;;8( zWNNT6xX&&NrZZ9jJZe~5E0;kTs^OVEPX(Df59JxSuK^_wC0bH7tiEOWbq4ts=`3`` z3Tr9pAQ1brkB5HtZYjJ|*jk$YHx~Za8dhY3j|rYj;K$1MaL=(YlU|0t(fITk-MY-Q zU>D&3uUl30rYQGc1$+v-Y+j1=FxTVBk6Af3$w)@5sqtM_e_tOP`EQ{!;VuRBY1iAJ zI?WAExro2>KjMJmbAY+J25}GKkpzxnywqGhP{2H-x&4 qY#-2ibY4}Ois1jZ?MO7e7D7GM5o#7EO(ul4j#|$F4M3_gK=d2lPey|P literal 0 HcmV?d00001 diff --git a/SAF/SAF.MessageQueue/obj/Debug/SAF.MessageQueue.pdb b/SAF/SAF.MessageQueue/obj/Debug/SAF.MessageQueue.pdb new file mode 100644 index 0000000000000000000000000000000000000000..1d619907f5788660b3044d1673e972bb8f9bc1ae GIT binary patch literal 36352 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 literal 0 HcmV?d00001 diff --git a/SAF/SAF.MessageQueue/obj/Interop.MQAX200.dll b/SAF/SAF.MessageQueue/obj/Interop.MQAX200.dll new file mode 100644 index 0000000000000000000000000000000000000000..dcdb8445dd871459319ed536b78f8a34de10594e GIT binary patch literal 122880 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

;HE$k+#D!@TLX8(hQQr$d!P*N2;2)3 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 literal 0 HcmV?d00001 diff --git a/SAF/SAF.TestConsole/AssemblyInfo.cs b/SAF/SAF.TestConsole/AssemblyInfo.cs new file mode 100644 index 0000000..9f89a32 --- /dev/null +++ b/SAF/SAF.TestConsole/AssemblyInfo.cs @@ -0,0 +1,58 @@ +using System.Reflection; +using System.Runtime.CompilerServices; + +// +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +// +[assembly: AssemblyTitle("")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("")] +[assembly: AssemblyCopyright("")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: + +[assembly: AssemblyVersion("1.0.*")] + +// +// In order to sign your assembly you must specify a key to use. Refer to the +// Microsoft .NET Framework documentation for more information on assembly signing. +// +// Use the attributes below to control which key is used for signing. +// +// Notes: +// (*) If no key is specified, the assembly is not signed. +// (*) KeyName refers to a key that has been installed in the Crypto Service +// Provider (CSP) on your machine. KeyFile refers to a file which contains +// a key. +// (*) If the KeyFile and the KeyName values are both specified, the +// following processing occurs: +// (1) If the KeyName can be found in the CSP, that key is used. +// (2) If the KeyName does not exist and the KeyFile does exist, the key +// in the KeyFile is installed into the CSP and used. +// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. +// When specifying the KeyFile, the location of the KeyFile should be +// relative to the project output directory which is +// %Project Directory%\obj\. For example, if your KeyFile is +// located in the project directory, you would specify the AssemblyKeyFile +// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] +// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework +// documentation for more information on this. +// +[assembly: AssemblyDelaySign(false)] +[assembly: AssemblyKeyFile("")] +[assembly: AssemblyKeyName("")] diff --git a/SAF/SAF.TestConsole/Class1.cs b/SAF/SAF.TestConsole/Class1.cs new file mode 100644 index 0000000..0cc2196 --- /dev/null +++ b/SAF/SAF.TestConsole/Class1.cs @@ -0,0 +1,31 @@ +using System; +using SAF.Utility; + +namespace SAF.TestConsole +{ + ///

+ /// Summary description for Class1. + /// + class Class1 + { + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main(string[] args) + { + // + // TODO: Add code to start application here + // + SecurityUtility su = new SecurityUtility(); + try + { + su.Switch("avmin","access","AVANADE-C006T6X"); + } + catch (Exception ex) + { + string x = ex.Message; + } + } + } +} diff --git a/SAF/SAF.TestConsole/SAF.TestConsole.csproj b/SAF/SAF.TestConsole/SAF.TestConsole.csproj new file mode 100644 index 0000000..0fa8264 --- /dev/null +++ b/SAF/SAF.TestConsole/SAF.TestConsole.csproj @@ -0,0 +1,102 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SAF/SAF.TestConsole/SAF.TestConsole.csproj.user b/SAF/SAF.TestConsole/SAF.TestConsole.csproj.user new file mode 100644 index 0000000..e1b802f --- /dev/null +++ b/SAF/SAF.TestConsole/SAF.TestConsole.csproj.user @@ -0,0 +1,48 @@ + + + + + + + + + + + + diff --git a/SAF/SAF.TestConsole/bin/Debug/SAF.TestConsole.exe b/SAF/SAF.TestConsole/bin/Debug/SAF.TestConsole.exe new file mode 100644 index 0000000000000000000000000000000000000000..ebf8a5583b95789df7ae9c4fe942faecd1083d5b GIT binary patch literal 5632 zcmeHLO>7%Q6n<+vNt-lo+VWSGpDhVAt-wlXX!sM@wbL{-e~sPHmPpOonL69pUbDL{ zF(5DqAzC3+Bu;Pv^}>MzNT^hmkRsFr;{SxWP*oL&9uNo#p$bI9_ukr#otV;qDme6Q z=9~9s-psst^XA7H+JB7vL=-@ppC>wroGC1Lc_^Vec-yHUeX#P2jVHCiFE%EoO-Ik$ zR@yeQddkSMNKD~4B3vILV?&82Gd+l$SM?u z^&wkjEGUY*CQ-wEU58XfVWRC-qOf`PD~N65Ci+G+Yar6VBe8YMq77XE>O>2)UE{2V zxy_9>_`Kc9umNCUL7LArw=`L6z^pn$TQrpLP&eK}%_!rcFVVU#jhf1muX8P0Y!Rsv zFKqJ=($_i?gt2%m{_&Qbr^b(FAARGQ-@p0!nNM!Os1$u*A|BbnDU?u-8?|zdl~EH` z^3X&~B@5}rHKF`e63u9P{L$@N*(CPu;qFjZXlrlRy1W#zk zu^&IxHerMxwR7Mbe4AuMZ?QZNwb8wpYXfZ1XjJFw*Jw~|dP}62ZrY9cdo%b>TSL1M zpz8%U0@u@K;kyOz7mNrF2<{f#Cuj(of=>W%r6RD6o-gA?Z8IIA)xIwHk;`>*r~^KE zkotk^1UCq76>JfV3hok&3qCHG5}ZMt^~8io-@$MO?&Yvf!%fiXCRAPDM;*jAGnO=a#k^ zSGI%BmsUgz8Mk29=`3LzQz~oNGj-Zn`J!#6r`@Ghqc)tBs#6iQvUwv{T-pK~`=FUF z*alC2X?09FDcj7~uS}S3wI4j+hhnCY&RLFYrW}%^B5fpV)Dn@zw5^P(h0zQfo1fQp zk85U3w@7i7D%fBy$xoVYYMT0HQ%Y>1v~mv&DaSF=3gOXW&|%7A_vVON4NBoth+rHj zw?$~2A~cK?qdvNuqSS?N8_tn!v=`C#YqZ7Pb^B)nN1y)V?fvh*f1Fl)_|(Ms`ku2# zurIY+f_|N}fUapl2492j(|o=FM`fe#*MdQ=4>mRV*GAU%1^ta{BS?L|#$ba4ZXnJkf}M8& z`7rGO&-78?r;DCF*cgijr+I@shhUq z_0S9M9(=uYA0(!ocq3@y9aq}sU`wXTqBu^%9cYyhD{w`MmmDB_HH0*agtZr&2f?SM z2iD8u)xh3M(=_a^p4)<+w+d5emqk09X2esT?x@%{QtpFSfo-eIl_mBrVU@1TM$h-7 z=+B}lD&W+2t7htr854ij>MZu^-}{u;B!ZbZGOr}8E@EYu+YhEDZ+#tk7)g`3#pXub z)u)oT^GhWHhlG!d0CRJ5D8Ua<{P7P_$$B zIq>zV#KFyh?PWl)%Zl@+a=4b=);}V~T=>WNPH*}82fbzKKkaoq2PNJ23Oc@~a@9Scd;do`w(Y8qbZvnDp$Gm1$&}5* literal 0 HcmV?d00001 diff --git a/SAF/SAF.TestConsole/bin/Debug/SAF.TestConsole.pdb b/SAF/SAF.TestConsole/bin/Debug/SAF.TestConsole.pdb new file mode 100644 index 0000000000000000000000000000000000000000..643b837d63d7461a11bc4aea4a366d8c92a10bf0 GIT binary patch literal 11776 zcmeHNTWeEG6rSByO>65hMQg1nIrZLZlA_isLX~)_mw2H)M-V|{+`(X)KzBq7B6$!W z#0L={R1_4!Cx3w;$WadGSw+sX527#Dst@9&@%v`>)NL`KCMZUde)}HH{S!*sk z(PX?Y<75)qKqM4tZ4E@bHwIP)!{NG`ruE$dR3U$227>=H4r)-$Jj*}>SKq(N8ydeF zXtd6Z-_Dz!=Z{vmSsnCaQ(b`7ihLe!U&+V~m8}Ne9N5+Q@1zI*v)$s(j_VcI?rqq5 z@!6C6{f^}R|S|kP~12dO8q7OPyKuSKjX|lk{2q|$j6=rXm2FV zRqWGq2`0o^U>ii72j6R-^xuX`M+37Shpil&^K^Gl;>2C6smP{TNKap(IkPj&`N6V3 z_^ze9Tv@ZrZE!=Sp@E@+p#hH9Ts9}Zdan~p5W%eNWaF8%lS$coYK^WZU%w(45&BHuhhnB7akI?xlmGg-0ymgd0SqpZTirav@)Wn6*aC^LO_$Akk0n? z@7tM4rnBN`y_hfG)8AX}0?;59dt~AEFsZHlbb}tzjT$l#M2Gn4MiS2mo-;u(BJUc+s`f~vWBJN>(( zCLjlN0lc%tSxcU&_#KXU=razaGV#MAWR6-g! zA8fPE-8|Sy|Nl=**R8)#_inj#{N1C$ zvHubp$nR_l?~~R5quKw95w@?EyI=pL-=UA028{GGT$2j<7_(|XIp0Y9pN*mMtAURl CC{WP= literal 0 HcmV?d00001 diff --git a/SAF/SAF.TestConsole/bin/Debug/SAF.Utility.dll b/SAF/SAF.TestConsole/bin/Debug/SAF.Utility.dll new file mode 100644 index 0000000000000000000000000000000000000000..9760e7eb09b7afed75d424ef71273eb3955f78e1 GIT binary patch literal 4608 zcmeHKPi!1#75~l5?s_+lO?K^+EveM8oJwwLt?W2eS}4SS)~QYWXYtxe8Z7GB-N}05 z*`4jotep)aN-u>9fl@%I95_@6i5x&ZAQ2%Ii311@m3rX90bvk=8(b?uHNW@GuD!-q zDj^|y;9Jjc-uvF4@4ffEnQy#!<30=kF8k z4y|rFf!XlAs&CcIvQ@8pp;@v`zgah(x|v@tnl-Ot=lc3ioNc=<%mNFVfu&1ZmpZHM zqJOAYO8_T0!<&q+KTR-sP4WWLiq@mJWkTXt;~tUoG9)kHl=?fkw^=2lJNmsM^d!)T z4BC?RZ38$-^1=}C#9_&!ITJ{BX(Y+db@92-z8#YPR*FEG%C#LgIW_jR^69-~w!FN6L?ielbriq6UUFK~UPknUc+H(EVy_``HF@)&g^ zUl~0LC#e?fOAW-HK{`f1I{MrB>w{mC1@w`R%L>tCr(dOJY+)3Jcro^sV!k-|&3_JT zEMxjdOZvs1|M9!u%Thk`$@SvYWw~-|q2oGXYuzi|TF=|1X0>}Z*Qk_ah3VpFr?vJj z$ewPG=f-jq7ss9zA>wd}zv1G;ce(jo_ba@Hi=pq-tAS|ziqFj?@55_FBv}k;h2a<1 z=JUK~$=?@#+V#|8q?w?0?X*59?TEi?6VeQv1B?-%oz?`;DV$aK1%*2bzoGDl3V*5a_Xs>68zGSSB&KqlZOX;NH8>4uDyT&U>Dg7Kf;Z@`?pzw^s35B0h zIHT~2!lJ^@D=aJA!k78BsB$-MVFfkp;H&yyb?`h`WEG&ragBAjto5KmK6X!P11!e( zuJgt*#Y<-X)P5ss_=HT$cwy12G+p~M=z8RG71u>AD0{x^lu&F1p6Tp%QMAiV zpO0nx>FhScf>-tGYk}?KMLS%uf^gRNJs!(cD?N{*Kw39@L?=F4a>zf zr(W@Pg85p*_5-hOg^pLB@#^XbaE_ZS?l@t26KgbUlN}coyB;!1OU2HDdJCSvhAxM9qvA<>%2lFX}K5j569Q3Q*>9kIB?>{cH zx68JwuWD9AClI(Td@j^;IJ5wdPq>FVOf-24*u39_1&3!C(*w?!qz-fr$?$$*Zv6@L zExk20^1Hv(b{`=5lRN8IAHT5s`UxcT{{H@C@>G&ALVqfvld$#!O^VCwqF5nUtQ*^zlzmB=v+&Uwv`NDyg1$QbgqC zeS-wg5k+jazn^6CuF$4XM@Q#73wU|P^Vubfvg_(yWZSAU#Afd)+VivMe>LQsA`5c z9ShaTTjab?Nu3>f)Kfv}j4|)%cL61-0sjx+5rrB0tMO;kI^-%)TYt7o)==xWn60Js zWNnkzsM6`Im#2pSWfe!`P@JMW$uBN#KensX^{IW3%Q(;8F<#@Cz_YkW>O6lJ`E@Ws zYq38?d#O&SZ0n50?TV<#GxRd8*3`-_J%`}w!spWE4;WFgF3`5BEG6p(HKb})Y*M>B zrvtsH`W4#MXy;=~RVdP(Q!y>KeMt2srcOPCld6Ip^XS;3S{LZYW4uk)Fzm`KS}U*W zcUb4&tN39xoKrrgn1Q^#YU~1+6)@R>hj-({{4k}D-Y}#88Sg*;(F^VW5&ico@GoNC Bv1R}O literal 0 HcmV?d00001 diff --git a/SAF/SAF.TestConsole/bin/Debug/SAF.Utility.pdb b/SAF/SAF.TestConsole/bin/Debug/SAF.Utility.pdb new file mode 100644 index 0000000000000000000000000000000000000000..dfc61bd5bb6dbfcf18dd2b1921e0b17b845d3e1f GIT binary patch literal 13824 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 literal 0 HcmV?d00001 diff --git a/SAF/SAF.TestConsole/obj/Debug/SAF.TestConsole.exe.incr b/SAF/SAF.TestConsole/obj/Debug/SAF.TestConsole.exe.incr new file mode 100644 index 0000000000000000000000000000000000000000..fcf36d819e81b3c2cc1f6293b2617c83eadbd85c GIT binary patch literal 1262 zcmcgrO-mb56g^REv2Mg)@SxzT87yrPO)2Qa$cWm|R4kH(Gs#RlaX!k-vwnc$4{+hW z%Whot4|LZo3We;t@81wzwC7GTApr%us4v{yxo6&c=j7ZQD{3Te=tkNO)Y6_GG*#Kw zw({acnU9qjhadgGO;oX{^anpx9xIjVIB`?el#M!8Ze%+|Jv-GZaUHoNH6FqGa@u|f zV1glQgdz1Lql{%NVG}DT;Vs@^5hjtF)`K3%(<5@j(7O71T$}!0SQzc1b4(@{P{$T5 zY>?$OpK7ev;iG{BF;a#H4TJBO$z4Z65hMQg1nIrZLZlA_isLX~)_mw2H)M-V|{+`(X)KzBq7B6$!W z#0L={R1_4!Cx3w;$WadGSw+sX527#Dst@9&@%v`>)NL`KCMZUde)}HH{S!*sk z(PX?Y<75)qKqM4tZ4E@bHwIP)!{NG`ruE$dR3U$227>=H4r)-$Jj*}>SKq(N8ydeF zXtd6Z-_Dz!=Z{vmSsnCaQ(b`7ihLe!U&+V~m8}Ne9N5+Q@1zI*v)$s(j_VcI?rqq5 z@!6C6{f^}R|S|kP~12dO8q7OPyKuSKjX|lk{2q|$j6=rXm2FV zRqWGq2`0o^U>ii72j6R-^xuX`M+37Shpil&^K^Gl;>2C6smP{TNKap(IkPj&`N6V3 z_^ze9Tv@ZrZE!=Sp@E@+p#hH9Ts9}Zdan~p5W%eNWaF8%lS$coYK^WZU%w(45&BHuhhnB7akI?xlmGg-0ymgd0SqpZTirav@)Wn6*aC^LO_$Akk0n? z@7tM4rnBN`y_hfG)8AX}0?;59dt~AEFsZHlbb}tzjT$l#M2Gn4MiS2mo-;u(BJUc+s`f~vWBJN>(( zCLjlN0lc%tSxcU&_#KXU=razaGV#MAWR6-g! zA8fPE-8|Sy|Nl=**R8)#_inj#{N1C$ zvHubp$nR_l?~~R5quKw95w@?EyI=pL-=UA028{GGT$2j<7_(|XIp0Y9pN*mMtAURl CC{WP= literal 0 HcmV?d00001 diff --git a/SAF/SAF.TestConsole/obj/Debug/SAF.TestConsole.projdata b/SAF/SAF.TestConsole/obj/Debug/SAF.TestConsole.projdata new file mode 100644 index 0000000000000000000000000000000000000000..ab6221fd457820c926f896ce2e6f10aea78525c9 GIT binary patch literal 1672 zcmeH{%}N4c6o%ia1|&!dDkumBX;EQHTM@y6AgB;>)ekh8k)S4yEovbxTXX}_#`|dL zw(calf}ox=qqZriW#p0L`T5Sz_Z{Xv_j8l65kX^8&M`%Lhh9zLU{;6P(1q%1sT}?X zcqCU*uxmk3oT#dN1^m{q*ReB1?kTU$flR4Lm4I4N&49{PJl5kgJEamalGn@rE=$_| zWtV(-zp`pNq2HCZc+nYm=yx2YYXW|OZ{2VJ+D4Bto%y~W-6n(?lEn>aIDx-Cfg7%G zxHdG~*FA$Ygs;GD81l@{z!BmjY4-8s!@l3{Ivw;v@~-fF-E}P1*bwz2BKVC!Lz(q| zvLqUfYlp2;0jJXRKwn~K9Oy{PcwMbJ&O%%rWpxUcOUh}2yewG11nD*Mn_xZi7IjXp z7kaI#hh@9XB0M$7H*X8w_Cgcc>Sg$xHrN^!I{0`ioY&bLQLpru-Lgs#?i9_#W;exT T7Ljo{35VoF?@wU-$M=5#K5327 literal 0 HcmV?d00001 diff --git a/SAF/SAF.Transaction/AssemblyInfo.cs b/SAF/SAF.Transaction/AssemblyInfo.cs new file mode 100644 index 0000000..ac6d5f7 --- /dev/null +++ b/SAF/SAF.Transaction/AssemblyInfo.cs @@ -0,0 +1,58 @@ +using System.Reflection; +using System.Runtime.CompilerServices; + +// +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +// +[assembly: AssemblyTitle("")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("")] +[assembly: AssemblyCopyright("")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: + +[assembly: AssemblyVersion("1.0.*")] + +// +// In order to sign your assembly you must specify a key to use. Refer to the +// Microsoft .NET Framework documentation for more information on assembly signing. +// +// Use the attributes below to control which key is used for signing. +// +// Notes: +// (*) If no key is specified, the assembly is not signed. +// (*) KeyName refers to a key that has been installed in the Crypto Service +// Provider (CSP) on your machine. KeyFile refers to a file which contains +// a key. +// (*) If the KeyFile and the KeyName values are both specified, the +// following processing occurs: +// (1) If the KeyName can be found in the CSP, that key is used. +// (2) If the KeyName does not exist and the KeyFile does exist, the key +// in the KeyFile is installed into the CSP and used. +// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. +// When specifying the KeyFile, the location of the KeyFile should be +// relative to the project output directory which is +// %Project Directory%\obj\. For example, if your KeyFile is +// located in the project directory, you would specify the AssemblyKeyFile +// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] +// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework +// documentation for more information on this. +// +[assembly: AssemblyDelaySign(false)] +[assembly: AssemblyKeyFile("..\\..\\..\\SAF.snk")] +[assembly: AssemblyKeyName("")] diff --git a/SAF/SAF.Transaction/Class1.cs b/SAF/SAF.Transaction/Class1.cs new file mode 100644 index 0000000..1ad8e50 --- /dev/null +++ b/SAF/SAF.Transaction/Class1.cs @@ -0,0 +1,17 @@ +using System; + +namespace SAF.Transaction +{ + /// + /// Summary description for Class1. + /// + public class Class1 + { + public Class1() + { + // + // TODO: Add constructor logic here + // + } + } +} diff --git a/SAF/SAF.Transaction/SAF.Transaction.csproj b/SAF/SAF.Transaction/SAF.Transaction.csproj new file mode 100644 index 0000000..477ba08 --- /dev/null +++ b/SAF/SAF.Transaction/SAF.Transaction.csproj @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SAF/SAF.Transaction/SAF.Transaction.csproj.user b/SAF/SAF.Transaction/SAF.Transaction.csproj.user new file mode 100644 index 0000000..c8340ea --- /dev/null +++ b/SAF/SAF.Transaction/SAF.Transaction.csproj.user @@ -0,0 +1,48 @@ + + + + + + + + + + + + diff --git a/SAF/SAF.Transaction/TransactionManager.cs b/SAF/SAF.Transaction/TransactionManager.cs new file mode 100644 index 0000000..80ecfc3 --- /dev/null +++ b/SAF/SAF.Transaction/TransactionManager.cs @@ -0,0 +1,240 @@ +using System; +using System.EnterpriseServices; +using System.Runtime.InteropServices; +using System.Reflection; + + +[assembly: ApplicationActivation(ActivationOption.Library)] +[assembly: ApplicationID("77769CB1-A707-11D0-989D-00C04FD444E4")] +[assembly: ApplicationName("SAF.Transaction")] +namespace SAF.Transaction +{ + /// + /// Interface each transaction controller must implement. + /// + public interface ITransactionController + { + object ExecuteMethod(object o, string method, params object[] p); + void Rollback(); + void Commit(); + } + + /// + /// TransactionControllerBase is the base class for serviced components in SAF.Transaction. + /// It provides a way to execute business method as part of the transaction context and abilities + /// to commit and rollback transactions. + /// + public abstract class TransactionControllerBase : System.EnterpriseServices.ServicedComponent,ITransactionController + { + + public virtual object ExecuteMethod(object o, string method, params object[] p ) + { + try + { + //use the reflection to invoke the business method within the current transaction scope. + return o.GetType().InvokeMember(method,BindingFlags.InvokeMethod,null,o,p); + } + catch (Exception ex) + { + //if exception occurs, mark the current transaction as such so that we can + //rollback the transaction later. + if (ContextUtil.IsInTransaction) + { + ContextUtil.DisableCommit(); + } + //rethow the exception to notify the caller. + throw ex; + } + } + + /// + /// Rollback method set abort the current transaction. + /// + public virtual void Rollback() + { + //if it is part of a transaction, abort it. + if (ContextUtil.IsInTransaction) + { + ContextUtil.SetAbort(); + } + } + + /// + /// Commit method commit the current transaction if all the transaction vode + /// are good. + /// + public virtual void Commit() + { + //check if it is in a transaction + if (ContextUtil.IsInTransaction) + { + //check if the transaction vote is good. if so, set complete on the transaction + //otherwise, abort the transaction. + if (ContextUtil.MyTransactionVote == TransactionVote.Commit) + { + ContextUtil.SetComplete(); + } + else + { + ContextUtil.SetAbort(); + } + } + } + } + + + /// + /// Provide the Manager class that + /// clients interact when creating different type of transaction compnent. + /// + public class TransactionManager + { + /// + /// Return a new serviced component that supports transaction + /// + /// SupportTransaction object + public static ITransactionController GetSupportTransactionController() + { + return new SupportTransaction(); + } + + /// + /// Return a new service component that require transaction + /// + /// RequireTransaction object + public static ITransactionController GetRequireTransactionController() + { + return new RequireTransaction(); + } + + /// + /// Return a new service component that require new transaction + /// + /// RequireNewTransaction object + public static ITransactionController GetRequireNewTransactionController() + { + return new RequireNewTransaction(); + } + + /// + /// Return a new service component with no transaction + /// + /// NoTransaction object + public static ITransactionController GetNoTransactionController() + { + return new NoTransaction(); + } + + /// + /// Helper method that will rollback array of ITransactionController objects + /// + /// ITransactionController array + public static void Rollback(params ITransactionController[] txControllers) + { + foreach (ITransactionController txController in txControllers) + { + if (txController != null) + { + txController.Rollback(); + } + + } + } + + /// + /// Helper method that will commit array of ITransactionController objects + /// + /// ITransactionController array + public static void Commit(params ITransactionController[] txControllers) + { + foreach (ITransactionController txController in txControllers) + { + if (txController != null) + { + txController.Commit(); + } + + } + } + + + /// + /// Release the resource held by the serviced components + /// + /// ITransactionController array + public static void DisposeAll(params object[] txControllers) + { + foreach (object txController in txControllers) + { + if (txController != null) + { + try + { + //check is txController is a service compnen. + if (txController is System.EnterpriseServices.ServicedComponent) + { + //destory the serviced component + ((ServicedComponent)txController).Dispose(); + } + } + catch (Exception ex){} + } + } + } + } + + /// + /// Transaction controller that supports transaction. + /// + [ProgId("SupportTransaction")] + [Guid("E42F5FFF-823B-4F20-AE80-B13A3C991112")] + [Transaction(System.EnterpriseServices.TransactionOption.Supported)] + public class SupportTransaction : TransactionControllerBase + { + public SupportTransaction() + { + } + } + + + /// + /// Transaction controller that requires transaction + /// + [ProgId("RequireTransaction")] + [Guid("E42F5FFF-823B-4F20-AE80-B13A3C991113")] + [Transaction(System.EnterpriseServices.TransactionOption.Required)] + public class RequireTransaction : TransactionControllerBase + { + public RequireTransaction() + { + } + + + } + + /// + /// Transaction controller that requires new transaction + /// + [ProgId("RequireNewTransaction")] + [Guid("E42F5FFF-823B-4F20-AE80-B13A3C991114")] + [Transaction(System.EnterpriseServices.TransactionOption.RequiresNew,Isolation=TransactionIsolationLevel.ReadCommitted)] + public class RequireNewTransaction : TransactionControllerBase + { + public RequireNewTransaction() + { + } + } + + /// + /// Transaction controller that doesn't support transaction + /// + [ProgId("NoTransaction")] + [Guid("E42F5FFF-823B-4F20-AE80-B13A3C991115")] + [Transaction(System.EnterpriseServices.TransactionOption.NotSupported)] + public class NoTransaction : TransactionControllerBase + { + public NoTransaction() + { + } + } +} diff --git a/SAF/SAF.Transaction/bin/Debug/SAF.Transaction.dll b/SAF/SAF.Transaction/bin/Debug/SAF.Transaction.dll new file mode 100644 index 0000000000000000000000000000000000000000..a830efbdf5761f77b420f751a047c58c205711de GIT binary patch literal 6656 zcmeHLeQ+Da6@ROfWm%4s$oX(S0f&nK3lwqI^w3M_30wokW4MPhl!$+Z+4l|Gr9lipTe2nP~8EAnCElfyBf4e&4 zlkL#ZfBHvR`+m2-w{PFRefw^2PwiLUP7)E>ah*9sbO3i=8U=nm454}Ic~4EH-xM9H zIKb8%s_5RLX1r-#>(k|=Hzuc2n&FKqUOk)gswr=%BjQbJam80s;;J%DceW6%VG`Z{ zXh)+dqGL3*qL?{|N+H3Gmp}OdUR;g1h}@!X%lXX(+<#GqfRNL9B<4jlUHp&TO)8X$ zhG6$HUT;L52V#8LL^K7m4;K=7#fZma%+xKtbN0{p(ecwAe|}Z_@k{L9^|!8>x99$Q*T4VC(nDwd@xqCN9n$Hy z-LsxsW1K(l*v((~3Ld}G+cf>9t3m@iKJR^_^2^f&GcO-_Ewti|^uFY?pZ;R${2lZC z4yuN83^^ic2&&8OLdMqsrL2sm%@tj9oZ}2X zBZNbg(SEbh??SU}eqP&*>N2#|7FHwju0;jaIZbY((A2Y4V+8c(G8bf6PIm_5J6wy% z0i$_x_gUna)};EF;F#P-3t%6QkK0x}d&(krq4Os$M~%awVVNDyvfe4q!rRovC&ZX% z)s@EU&iC7hrwsDLZJRQ?WKpHFh})gx$Rf(Drr2TdyEYHAJR%hzp`xTsf-*mR4uhZi*DTzQlin5SiB+xl<__Xog-u^N?4 z2~7+D84q+@nJxFMo?>!Bx10D1ONF4MKke8hIJkIxlEg&9U&aOx7wt*F( zZpSs9?guME%_-P#!KR2BZ+p>XZXtQcWTk?AVlo~}UjA5c264@e%UKDVFSg`d+ibyJ z@e0Pcrk%VMImR^$>0*;{%|eO`Haw?XuT?ayNe^Vs1$#$$XPa?wWD10}i%IGJQM za+=X7O7Lbbm9qd<2)qEelmeo@TwqXOSl~K=R|u2^ssgtO929uHz?*?9=x$&TS->Od zroGbN>0x?KI!VvdVd)I;LrG%Klikj-+&&XnhkB9FFQRrk@5TGR1q{$}fhT}BFdtn* z+aw>|NLK@kX*O^Md4Tgpy-wf?fz1Lh6BrTrU4b!y{j?apGSnu;>HBno_RvG;^rVjs|mO=2gh1oIoAS8R61 zEmsLFWF>4mo68okg=`V?vpRM$vk&n#Av#rXVkf`1A-{8y_r%eG*Ti5UrWkR^t7&Kl!&4as4*o&W+mRN zCDU3;Nf|V$#U?qUP%;zK^n@BU%~3~ms}jrW&@QLsK0banoz`^2Vv4$yZCO=UCK0Vw zzGs!L)vT;#yAsP9O1olg(c;vF=|$yOKf&FkYLG8xXgaki#>4?F(Lnpe(I;)scO_pX z&o4_;NX?|Rj1t6Zm|^ZxHYX4mytXKq$tcNaV(>C$aIKtFf(BkVQOw8M(5faTX$UC^ zc`%~(r6%_2QS=OqPi$z;CXB2;i7`Ypt|Vo>f0900dQeyUwipweI(1}TY?20^EOKga zVh@C6v)Y%{Wj^_d%^@Wd)7A9kjoqq|7l(8@p~i%vagiHq2!||VjERGY{lIt^zLIr_ z@kiGxq{@9MEn}#$42knapB%Nip;0oIdTHvE@sSnOb=flU?!mOe^H1EH)KnbDiPnUS zBLydT62hqgtsm)|jDqm2!B@z7LrqYhVr&d&!YOOABbE5*W^%V|k13|FiV=+Bd9ps6 zJsPrz8)+Z3m=My4V(=A8D9|vrkEJSRn9J4C$#-Q_hMH7-VZJYD>8~~gEPP)$J{H@y ztZHGF;l@-fLNmbFzJirU_61%H1)sbvGBbO6hfL1>t2bWfe%*DE^U13>^vtb4c5|Uu z@_43}dn7M0yuC`D4q~jl6emR7Ja#W*Q#sfQ0Pb*s*T!tNp?j$c2l*i!+AxU21_1Ah z1Os^cV>@MZ&s$rk+;V3ATh&{7A9??$Gq>(}?4t)BdR^Z5PR-NqU2_k7F>mCvUpE)8 z+x_r|$L8=zj#334yH$H3D|Lc7orO}V6VrFv9YC7{ z0=uVFDfghY+*8J=bmC4&bOEEPmioo5OIll7YnLsqYpShpUF@$7wk-44HU;W}bqOXSISyzfr)x6ijInNbm07Q;w3D!j1X5nD$^KHoe z^H+T))sL@eM$^W<_j6-3G&C$--rN+Z4L0~2Y6F3gzjpbu<)K=?zu8~k8mh0aZ$UgU zMy@z8SgyX0e@vR?Szh;!vi$q#?-WEEn>9U@NVLmpDt81>6mj<8`e)8ZfBxC_ZTYVv zz`usX&qhP}-E+Bt<(VModi=Me-bUx4@K~0*@F{h7iwYZptay(U@Pjp zJY)apOa6fI>%`7e1*7-XqBZw(7td{L34t(Jl}U#kl@g@DW{NhGCe*6LL)(p38PW{e zWip_rf#u46`!I|$_+&s!g}iSPOPhp_AHR3x{^}_ze*5rXyJFM~drAB$=xtyW5~*8d zX-kXo2Qgb&=<%_=xN3yXsOKSA$WTo9ko(Ffj5Vs;16>{3V{-|R4?g+u9kqn& zM6HhMX)!H>gqKV3V<8jKF+|@Kd`Vb5ick>NeKZy=8NQ50%SUl&Ct#;q_`C)-`h*2O z`!o#-ulr~VdRXT+rkArDN53Tc>C`VGmDBAMzIB*3_$qMUM(4^Ik1k=A&dtYM>^osk zgWp*(kMXe&iFoGgjF0MnjwxT0AZC&g^NPajL9FaIwS%es?+YGk{^9ou-+R9;|927i EH{|$`%m4rY literal 0 HcmV?d00001 diff --git a/SAF/SAF.Transaction/bin/Debug/SAF.Transaction.pdb b/SAF/SAF.Transaction/bin/Debug/SAF.Transaction.pdb new file mode 100644 index 0000000000000000000000000000000000000000..5f29a19975beeca4e1e7fef6a1f35f648cca388b GIT binary patch literal 19968 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 literal 0 HcmV?d00001 diff --git a/SAF/SAF.Transaction/obj/Debug/SAF.Transaction.dll b/SAF/SAF.Transaction/obj/Debug/SAF.Transaction.dll new file mode 100644 index 0000000000000000000000000000000000000000..a830efbdf5761f77b420f751a047c58c205711de GIT binary patch literal 6656 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 EH{|$`%m4rY literal 0 HcmV?d00001 diff --git a/SAF/SAF.Transaction/obj/Debug/SAF.Transaction.dll.incr b/SAF/SAF.Transaction/obj/Debug/SAF.Transaction.dll.incr new file mode 100644 index 0000000000000000000000000000000000000000..f2467cac5907fe60ad5904a2bcac2a310fb042b6 GIT binary patch literal 1394 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 literal 0 HcmV?d00001 diff --git a/SAF/SAF.Transaction/obj/Debug/SAF.Transaction.projdata b/SAF/SAF.Transaction/obj/Debug/SAF.Transaction.projdata new file mode 100644 index 0000000000000000000000000000000000000000..813aa46d26cd1920610cf8c5e607ce25ce193529 GIT binary patch literal 19080 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 hsCE3)D7@}3bmOSoN8Lo~R. For example, if your KeyFile is +// located in the project directory, you would specify the AssemblyKeyFile +// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] +// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework +// documentation for more information on this. +// +[assembly: AssemblyDelaySign(false)] +[assembly: AssemblyKeyFile("")] +[assembly: AssemblyKeyName("")] diff --git a/SAF/SAF.Utility/Class1.cs b/SAF/SAF.Utility/Class1.cs new file mode 100644 index 0000000..28c221b --- /dev/null +++ b/SAF/SAF.Utility/Class1.cs @@ -0,0 +1,143 @@ +using System; +using System.Runtime.InteropServices; +using System.Security; +using System.Security.Principal; + +namespace SAF.Utility +{ + /// + /// SecurityUtility provide features such as check if certain window user logon is valid + /// and switch the current thread's security context to different user account. + /// + public class SecurityUtility + { + //declare for p/invoke + [DllImport(@"advapi32.dll")] + public static extern bool LogonUser(String lpszUsername, String lpszDomain, String lpszPassword, + int dwLogonType, int dwLogonProvider, out System.IntPtr phToken); + + [DllImport(@"Kernel32.dll")] + public static extern int GetLastError(); + + [DllImport(@"advapi32.dll", CharSet=System.Runtime.InteropServices.CharSet.Auto, SetLastError=true)] + public extern static bool DuplicateToken(IntPtr hToken, + int impersonationLevel, + ref IntPtr hNewToken); + + private const int LOGON32_LOGON_INTERACTIVE = 2; + private const int LOGON32_PROVIDER_DEFAULT = 0; + private const int SecurityImpersonation = 2; + private WindowsImpersonationContext impersonationContext = null; + + /// + /// This method change the thread's runing-as to the new user account + /// + /// the user account to switch to + public void Switch (string userName, string password, string domain) + { + IntPtr token = IntPtr.Zero; + WindowsImpersonationContext impersonationContext = null; + + //log on as the give user account + bool loggedOn = LogonUser( + // User name. + userName, + // Computer or domain name. + domain, + password, + LOGON32_LOGON_INTERACTIVE, + LOGON32_PROVIDER_DEFAULT, + // The user token for the specified user is returned here. + out token); + + if (loggedOn == false) + { + throw new System.Security.SecurityException(userName + " logon failed" ); + } + IntPtr tokenDuplicate = IntPtr.Zero; + WindowsIdentity tempWindowsIdentity =null; + //duplicate the security token + if(DuplicateToken(token, SecurityImpersonation, ref tokenDuplicate) != false) + { + tempWindowsIdentity = new WindowsIdentity(tokenDuplicate); + //change the current thread's run-as to the new window identity. + impersonationContext = tempWindowsIdentity.Impersonate(); + } + else + { + throw new System.Security.SecurityException("Logon use failed"); + } + } + /// + /// this method reverse the thread's run-as to the original user account + /// + public void UndoSwitch() + { + impersonationContext.Undo(); + } + + /// + /// Return WindowsIdentity object that represents the user with provided + /// username/password/domain combination. + /// + /// user name + /// user password + /// domain or computer name if using local security + /// + public WindowsIdentity LogonUser(string userName, string password, string domain) + { + IntPtr token = IntPtr.Zero; + bool loggedOn = LogonUser( + // User name. + userName, + // Computer or domain name. + domain, + password, + LOGON32_LOGON_INTERACTIVE, + LOGON32_PROVIDER_DEFAULT, + // The user token for the specified user is returned here. + out token); + + if (loggedOn == false) + { + throw new System.Security.SecurityException(userName + " logon failed" ); + } + //create an WindowIdentity object from the newly created token. + WindowsIdentity newID = new WindowsIdentity(token); + return newID; + } + + /// + /// Check if username/password/domain combination represent + /// an valid user logon. + /// + /// + /// + /// + public void ValidateUser(string userName, string password, string domain) + { + IntPtr token = IntPtr.Zero; + bool loggedOn = LogonUser( + // User name. + userName, + // Computer or domain name. + domain, + // Password. + password, + // LOGON32_LOGON_INTERACTIVE . + LOGON32_LOGON_INTERACTIVE, + // Logon provider = LOGON32_PROVIDER_DEFAULT. + LOGON32_PROVIDER_DEFAULT, + // The user token for the specified user is returned here. + out token); + + if (loggedOn == false) + { + throw new System.Security.SecurityException(userName + " logon failed" ); + } + } + + + + } +} diff --git a/SAF/SAF.Utility/SAF.Utility.csproj b/SAF/SAF.Utility/SAF.Utility.csproj new file mode 100644 index 0000000..41bf23f --- /dev/null +++ b/SAF/SAF.Utility/SAF.Utility.csproj @@ -0,0 +1,93 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/SAF/SAF.Utility/SAF.Utility.csproj.user b/SAF/SAF.Utility/SAF.Utility.csproj.user new file mode 100644 index 0000000..c8340ea --- /dev/null +++ b/SAF/SAF.Utility/SAF.Utility.csproj.user @@ -0,0 +1,48 @@ + + + + + + + + + + + + diff --git a/SAF/SAF.Utility/bin/Debug/SAF.Utility.dll b/SAF/SAF.Utility/bin/Debug/SAF.Utility.dll new file mode 100644 index 0000000000000000000000000000000000000000..df155c064b52ee4bddbb483324f8551404b03754 GIT binary patch literal 5120 zcmeHLU2Ggz6+SbwyI$K_*It`;LtAxB0&>%KvE%$GrNG)=JK4tZZoF$Zv{CKZ-N}0D z*`4jotes6EGKf<803s4ZK!ud@1QHb$Dk7@jjTexD;Gum&s7QH0LZSkRmmm?ob7nSP z*H&5~Ar-0Dx!;_7&(A&Q+;eB{=FHRIB8`Y5=(leZUB{DKM)2;i1@^#0Zw}BKy*Ea$ zEAux-OKX;=H(jUZ8g;#5G#ZYtmrdPmHFT??XY)n9?o`cmBGGp+G+me_npZUX?oaZW zaEjicfzf^?MzjwzcyN365I{%Ipc4%Vtp)iUrt?V7d&K~5R1qO+|edRNO3O?M52%y3@O*f&=BHR8;|afK)Ui#9wS zqi3K8{h`Z9eP7>5zZQ+8?oHAd=3@Kej}2)qsOH!ZxE@^WyCi~%k>N-zmDI+t3$aI& zz1}cb!;ztgGXkRjk$(37UiFyji(t^Pfan4l@-j_I>oXW-@8t(xGLc>E7avkGm|RsAa6 z2dU2J8ht_{4S287r!Xq$%>5emD2JhaJsb@vCn!O`4@Xz&vltDI29gg$a*(pYD0K{y zI1X6lZ^*Su{{m_hgVzxn21e;2O+`GP1`U6KDxCvrv@SC(nYk=8FMXhyQ97o~(!+ui zz$fX1&{Kjr!Lx#25HtiW!RH0rf?o#a>1Cm>08h~O=sVgHy-KfY=jg{WzaRK4?Wf;r z6};Hr)=p5bNX8Le0+kd;CB<>t6Ucc#y#yQsv_?zN zcd12f`U?G7&1!_N&sE+(B}&(jw>hPUUc)%D6;#Bn=*<_AdbBBY$k9!C$uj+Mo(|d* zXPj!wHa|yQ$2MKHZK`_}$F;3872BR~)+t|p&aC)UG%GC^M>{;>-D)(SKbc>cJiH>$ zmE1yUc5!N^lv|#?!znE0mvh5jQvy=l6h(=dF?Y0$h=a~eyY>C#El zpEo>z)^#11vaP0VRSe%OIqPO4bS&NRC|$stp<*=+o1U^7RcF)NVRXi6$hXVtUa2!# z+_d}(atyVQ?3k#U4IkmsvSC|QEG=H8D?Z!_5|dsuFWATo`#t4(X1#2;Pn+!pqi#<5 zcv+QOzS+%~v+O+>S<^P!MXT1>t+R~8!1!*)Ow0CL?jFWUu2D7XhP%Fpj?-+rR&CAS z%__L4gvuU_8K>Sf8tvU0$le93)^cUjcC)jlS8=T-XJ$9EWcl5B2y>aWj9SC-e5>M- zd^c)Fc@MG07B;1BrgPX**J&0_cf+cfP_b?7x#M;PVN^GarZst3YT9mkmv{pk*c{?P z)~Op-L&$>Rd7F+~rRt`XU#Z~WH3L5oPr-NTX#_>VhmMeARD7q_I<i#KVFqCljm~#*TI6B&JreZp#m9br^H0B-y7I!%-wXHsph@vxTsptJ z|HwNptFd?luX4QS(E2E*4h#&$a-2No&;GXwU`~S!Q-+ORZbf5Sekr9sC`kGUoul16AnGz+N4HCbWI5LULpdcJZ3BejCvmBFAg%=#Pp_ z$MY;KcvKNTnmhbt*$mx-wK}rPkaZ!w9m@o6GvnwJbd)BAn#Av)!*raEL7Vjlq0iaz zMYjQ8>@JUrxYf)-e@RxhVcEycD2+FpjX$C>@pT@$HPPg#n~>nF)o`2gA)})QF>T8Q z*{?#c4n3FFB}0MiDe);E+TiT7Pn{Tf#98Iv<#+cj$aMjB9QfNp4*jmkg0-@eznwDg x&Eosz@RZn?LInJFucHcVWI#s+?%a*{vxAU6d`%Dkf8+5FpKBj^^uN!*e*g_N(0c#? literal 0 HcmV?d00001 diff --git a/SAF/SAF.Utility/bin/Debug/SAF.Utility.pdb b/SAF/SAF.Utility/bin/Debug/SAF.Utility.pdb new file mode 100644 index 0000000000000000000000000000000000000000..fc3cf88aa69421fd07c4f04894cf5b0651cf4752 GIT binary patch literal 13824 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 literal 0 HcmV?d00001 diff --git a/SAF/SAF.Utility/obj/Debug/SAF.Utility.dll.incr b/SAF/SAF.Utility/obj/Debug/SAF.Utility.dll.incr new file mode 100644 index 0000000000000000000000000000000000000000..fc36d91f1c95c2bfa251b208cc3449988bb38ec6 GIT binary patch literal 1106 zcmcgrJx|+E6g`0g0;H-_Cx)k1f`vq&s(d6}f_-tDD*gn2 z02Vez<|^q>7`id>6BziKP=}st2nrHayTG%q?|aAB_a5JSTng;S@tr`Mo|;;#do@)s zwW-`NQpQVVg#PEc=R_)Y#Pg`e_ABV+!vugB%vIfIJK$_pK*wpk%nS%0Hi&2yNV)l6FwZQ^I3#X#J*sZ5hJu$7^i?Q}`4WY+kQXqRxYv+`7YU%jb1vwquv@Q3DoR-<~w|5vNBYNLB zIVGdnE@>GsNqe|1`J9%WOw{A_ty?xmn_lXQ(w~(_)AQdNtuVYGcHNB$dYR|5#o>>TIT3MFxodUk!tq&7_X}9g??|L%xH3 I?8r0MAKgB?ApigX literal 0 HcmV?d00001 diff --git a/SAF/SAF.Utility/obj/Debug/SAF.Utility.pdb b/SAF/SAF.Utility/obj/Debug/SAF.Utility.pdb new file mode 100644 index 0000000000000000000000000000000000000000..fc3cf88aa69421fd07c4f04894cf5b0651cf4752 GIT binary patch literal 13824 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 S{~iCY(B6x>{qO(T|Na3AiCAF( literal 0 HcmV?d00001 diff --git a/SAF/SAF.WindowsService/AssemblyInfo.cs b/SAF/SAF.WindowsService/AssemblyInfo.cs new file mode 100644 index 0000000..9f89a32 --- /dev/null +++ b/SAF/SAF.WindowsService/AssemblyInfo.cs @@ -0,0 +1,58 @@ +using System.Reflection; +using System.Runtime.CompilerServices; + +// +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +// +[assembly: AssemblyTitle("")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("")] +[assembly: AssemblyCopyright("")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: + +[assembly: AssemblyVersion("1.0.*")] + +// +// In order to sign your assembly you must specify a key to use. Refer to the +// Microsoft .NET Framework documentation for more information on assembly signing. +// +// Use the attributes below to control which key is used for signing. +// +// Notes: +// (*) If no key is specified, the assembly is not signed. +// (*) KeyName refers to a key that has been installed in the Crypto Service +// Provider (CSP) on your machine. KeyFile refers to a file which contains +// a key. +// (*) If the KeyFile and the KeyName values are both specified, the +// following processing occurs: +// (1) If the KeyName can be found in the CSP, that key is used. +// (2) If the KeyName does not exist and the KeyFile does exist, the key +// in the KeyFile is installed into the CSP and used. +// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. +// When specifying the KeyFile, the location of the KeyFile should be +// relative to the project output directory which is +// %Project Directory%\obj\. For example, if your KeyFile is +// located in the project directory, you would specify the AssemblyKeyFile +// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] +// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework +// documentation for more information on this. +// +[assembly: AssemblyDelaySign(false)] +[assembly: AssemblyKeyFile("")] +[assembly: AssemblyKeyName("")] diff --git a/SAF/SAF.WindowsService/EmptyService.cs b/SAF/SAF.WindowsService/EmptyService.cs new file mode 100644 index 0000000..34df698 --- /dev/null +++ b/SAF/SAF.WindowsService/EmptyService.cs @@ -0,0 +1,59 @@ +using System; +using System.IO; +using SAF.Library.WindowsService; +using System.Threading; +using System.Xml; + +namespace SAF.WindowsService +{ + /// + /// EmptyService is a sample implementation of ISerivce class that is + /// pluggable to SAF.WindowsService. When started, EmplyService writes out some text to + /// a file every 3 seconds. + /// + public class EmptyService : IService + { + private bool continueLoop = true; + private string filePath; + public EmptyService() + { + } + + public void Initialize(XmlNode configXml) + { + filePath = configXml.SelectSingleNode("File").InnerText; + } + + public void Start() + { + StreamWriter sr = null ; + try + { + sr= new StreamWriter(filePath); + while (continueLoop) + { + try + { + Thread.Sleep(3000); + sr.WriteLine(System.DateTime.Now.ToLongTimeString()); + sr.Flush(); + } + catch (ThreadInterruptedException){} + + } + } + finally + { + if (sr != null){sr.Close();} + + } + + } + public void Stop() + { + continueLoop = false; + Thread.CurrentThread.Interrupt(); + + } + } +} diff --git a/SAF/SAF.WindowsService/ProjectInstaller.cs b/SAF/SAF.WindowsService/ProjectInstaller.cs new file mode 100644 index 0000000..2d31613 --- /dev/null +++ b/SAF/SAF.WindowsService/ProjectInstaller.cs @@ -0,0 +1,57 @@ +using System; +using System.Collections; +using System.ComponentModel; +using System.Configuration.Install; + +namespace SAF.WindowsService +{ + /// + /// Summary description for ProjectInstaller. + /// + [RunInstaller(true)] + public class ProjectInstaller : System.Configuration.Install.Installer + { + private System.ServiceProcess.ServiceProcessInstaller serviceProcessInstaller1; + private System.ServiceProcess.ServiceInstaller serviceInstaller1; + /// + /// Required designer variable. + /// + private System.ComponentModel.Container components = null; + + public ProjectInstaller() + { + // This call is required by the Designer. + InitializeComponent(); + + // TODO: Add any initialization after the InitComponent call + } + + #region Component Designer generated code + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.serviceProcessInstaller1 = new System.ServiceProcess.ServiceProcessInstaller(); + this.serviceInstaller1 = new System.ServiceProcess.ServiceInstaller(); + // + // serviceProcessInstaller1 + // + this.serviceProcessInstaller1.Password = null; + this.serviceProcessInstaller1.Username = null; + // + // serviceInstaller1 + // + this.serviceInstaller1.ServiceName = "SAF.WindowsService"; + // + // ProjectInstaller + // + this.Installers.AddRange(new System.Configuration.Install.Installer[] { + this.serviceProcessInstaller1, + this.serviceInstaller1}); + + } + #endregion + } +} diff --git a/SAF/SAF.WindowsService/ProjectInstaller.resx b/SAF/SAF.WindowsService/ProjectInstaller.resx new file mode 100644 index 0000000..4cf67ca --- /dev/null +++ b/SAF/SAF.WindowsService/ProjectInstaller.resx @@ -0,0 +1,111 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + 187, 17 + + + ProjectInstaller + + + False + + \ No newline at end of file diff --git a/SAF/SAF.WindowsService/SAF.WindowsService.csproj b/SAF/SAF.WindowsService/SAF.WindowsService.csproj new file mode 100644 index 0000000..4e87d24 --- /dev/null +++ b/SAF/SAF.WindowsService/SAF.WindowsService.csproj @@ -0,0 +1,152 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SAF/SAF.WindowsService/SAF.WindowsService.csproj.user b/SAF/SAF.WindowsService/SAF.WindowsService.csproj.user new file mode 100644 index 0000000..8b92102 --- /dev/null +++ b/SAF/SAF.WindowsService/SAF.WindowsService.csproj.user @@ -0,0 +1,48 @@ + + + + + + + + + + + + diff --git a/SAF/SAF.WindowsService/SecuritySwitchThread.cs b/SAF/SAF.WindowsService/SecuritySwitchThread.cs new file mode 100644 index 0000000..4b389e4 --- /dev/null +++ b/SAF/SAF.WindowsService/SecuritySwitchThread.cs @@ -0,0 +1,78 @@ +using System; +using System.Threading; +using System.Xml; +using SAF.Utility; + +namespace SAF.WindowsService +{ + /// + /// SecuritySwitchThread is a thread wrapper class. It allows + /// developers to customize the way a new thread is started and + /// ThreadStart object is invoked. + /// + public class SecuritySwitchThread + { + private ThreadStart serviceDelegate; + private XmlNode runAs; + private Thread newT; + + /// + /// The constructor takes more than one parameter + /// as oppose to only one parameter is the bare bone Thread + /// class. This allow we to perform some additional service + /// based on the additional parameters, in our case, we will pass + /// the configuration data that contains the user account information + /// which is later used to perform the thread's security switch + /// + /// the ThreadStart delegate for the target method + /// the configuraiton data contains the user account information + public SecuritySwitchThread (ThreadStart start, XmlNode xml) + { + serviceDelegate = start; + runAs = xml; + //create a new thread that calls the WrappingMethod + newT = new Thread(new ThreadStart(WrappingMethod)); + } + public void Start() + { + //start the thread. + newT.Start(); + } + + /// + /// WrappingMethod wraps performs the security + /// switch and then invokes the ThreadStart delegate. + /// + private void WrappingMethod() + { + //retrieve the user account information to which thread is + //switched. + bool inheritIdentity = Boolean.Parse(runAs.Attributes["InheritIdentity"].Value); + if (inheritIdentity == false) + { + string userid = runAs.SelectSingleNode("User").InnerText; + string password= runAs.SelectSingleNode("Password").InnerText; + string domain = runAs.SelectSingleNode("Domain").InnerText; + //call the utility class to switch the current thread's security context. + SecurityUtility su = new SecurityUtility(); + su.Switch(userid, password,domain); + } + //invoke the ThreadStart delegate object passed in + //on the class constructor + serviceDelegate(); + } + + /// + /// BaseThread property provide access to the + /// underlying thread, which allow external program + /// to control the thread. + /// + public Thread BaseThread + { + get + { + return newT; + } + } + } +} diff --git a/SAF/SAF.WindowsService/Service1.cs b/SAF/SAF.WindowsService/Service1.cs new file mode 100644 index 0000000..605f965 --- /dev/null +++ b/SAF/SAF.WindowsService/Service1.cs @@ -0,0 +1,165 @@ +using System; +using System.Collections; +using System.ComponentModel; +using System.Data; +using System.Diagnostics; +using System.ServiceProcess; +using System.Xml; +using SAF.Library.WindowsService; +using System.Threading; +using SAF.Configuration; +using System.Configuration; + +namespace SAF.WindowsService +{ + public class Service1 : System.ServiceProcess.ServiceBase + { + /// + /// Required designer variable. + /// + /// + private ArrayList threadArray = new ArrayList(); + private ArrayList instanceArray = new ArrayList(); + private System.ComponentModel.Container components = null; + + public Service1() + { + // This call is required by the Windows.Forms Component Designer. + InitializeComponent(); + + // TODO: Add any initialization after the InitComponent call + } + + // The main entry point for the process + static void Main() + { + System.ServiceProcess.ServiceBase[] ServicesToRun; + + // More than one user Service may run within the same process. To add + // another service to this process, change the following line to + // create a second service object. For example, + // + // ServicesToRun = New System.ServiceProcess.ServiceBase[] {new Service1(), new MySecondUserService()}; + // + ServicesToRun = new System.ServiceProcess.ServiceBase[] { new Service1() }; + System.ServiceProcess.ServiceBase.Run(ServicesToRun); + } + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + components = new System.ComponentModel.Container(); + this.ServiceName = "SAF.WindowsService"; + } + + /// + /// Clean up any resources being used. + /// + protected override void Dispose( bool disposing ) + { + if( disposing ) + { + if (components != null) + { + components.Dispose(); + } + } + base.Dispose( disposing ); + } + + /// + /// Set things in motion so your service can do its work. + /// + protected override void OnStart(string[] args) + { + + + //obtain the configuration information for SAF.Service + ConfigurationManager cm = (ConfigurationManager)ConfigurationSettings.GetConfig("Framework"); + SAF.Configuration.ServiceConfiguration serviceConfig = cm.ServiceConfig; + XmlNode servicesXml = serviceConfig.ServicesXml; + //loop through service nodes and start them one by one + foreach (XmlNode node in servicesXml.ChildNodes) + { + try + { + string typeInfo; + //obtain the type information from the xml data + typeInfo =node.Attributes["type"].Value; + Type type = Type.GetType(typeInfo); + IService instance = (IService)Activator.CreateInstance(type); + //initialize the service + instance.Initialize(node); + XmlNode runAs = node.SelectSingleNode("RunAs"); + instanceArray.Add(instance); + + //create SecuritySwitchThread object to process the + //the service + ThreadStart ts = new ThreadStart(instance.Start); + SecuritySwitchThread sst = new SecuritySwitchThread(ts,runAs); + //start the SecuritySwitchThread's thread. + sst.Start(); + threadArray.Add(sst.BaseThread); + } + catch (Exception ex) + { + //write to the event log + } + } + } + + /// + /// delegate used when invoke the OnStop method asynchronous during service shut down. + /// + public delegate void OnStopDelegate(); + + /// + /// Stop this service. + /// + protected override void OnStop() + { + foreach (object o in instanceArray) + { + try + { + IService service = (IService)o; + if (service !=null) + { + //invoke the delegate asynchronous to stop each started service. + OnStopDelegate osd = new OnStopDelegate(service.Stop); + osd.BeginInvoke(null,null); + } + } + catch (Exception ex) + { + //write to the event log + } + } + + //give sometime for the each instance to shut down gracefully + Thread.Sleep(5000); + foreach (object o in threadArray) + { + try + { + Thread t = (Thread)o; + if (t !=null) + { + //if the thread is still live at this point, shut it down forcefully. + if (t.IsAlive == true) + { + t.Abort(); + } + } + } + catch (Exception ex) + { + //write to the event log + } + } + } + } +} diff --git a/SAF/SAF.WindowsService/Service1.resx b/SAF/SAF.WindowsService/Service1.resx new file mode 100644 index 0000000..7e32396 --- /dev/null +++ b/SAF/SAF.WindowsService/Service1.resx @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 1.0.0.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.3102.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.3102.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + diff --git a/SAF/SAF.WindowsService/app.config b/SAF/SAF.WindowsService/app.config new file mode 100644 index 0000000..faba0a2 --- /dev/null +++ b/SAF/SAF.WindowsService/app.config @@ -0,0 +1,18 @@ + + +
+
+ + + + + C:\temp\EmptyService.txt + + AVANADE-C006T6X + user1 + password + + + + + diff --git a/SAF/SAF.WindowsService/bin/Debug/InstallUtil.InstallLog b/SAF/SAF.WindowsService/bin/Debug/InstallUtil.InstallLog new file mode 100644 index 0000000..4a7123d --- /dev/null +++ b/SAF/SAF.WindowsService/bin/Debug/InstallUtil.InstallLog @@ -0,0 +1,394 @@ + +Running a transacted installation. + +Beginning the Install phase of the installation. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The Install phase completed successfully, and the Commit phase is beginning. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The Commit phase completed successfully. + +The transacted install has completed. + + +The uninstall is beginning. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The uninstall has completed. + +Running a transacted installation. + +Beginning the Install phase of the installation. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +An exception occurred during the Install phase. +System.ComponentModel.Win32Exception: The account name is invalid or does not exist, or the password is invalid for the account name specified + +The Rollback phase of the installation is beginning. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The Rollback phase completed successfully. + +The transacted install has completed. + +Running a transacted installation. + +Beginning the Install phase of the installation. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The Install phase completed successfully, and the Commit phase is beginning. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The Commit phase completed successfully. + +The transacted install has completed. + + +The uninstall is beginning. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The uninstall has completed. + +Running a transacted installation. + +Beginning the Install phase of the installation. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The Install phase completed successfully, and the Commit phase is beginning. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The Commit phase completed successfully. + +The transacted install has completed. + + +The uninstall is beginning. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The uninstall has completed. + +Running a transacted installation. + +Beginning the Install phase of the installation. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The Install phase completed successfully, and the Commit phase is beginning. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The Commit phase completed successfully. + +The transacted install has completed. + + +The uninstall is beginning. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The uninstall has completed. + +Running a transacted installation. + +Beginning the Install phase of the installation. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The Install phase completed successfully, and the Commit phase is beginning. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The Commit phase completed successfully. + +The transacted install has completed. + + +The uninstall is beginning. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The uninstall has completed. + +Running a transacted installation. + +Beginning the Install phase of the installation. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The Install phase completed successfully, and the Commit phase is beginning. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The Commit phase completed successfully. + +The transacted install has completed. + + +The uninstall is beginning. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The uninstall has completed. + +Running a transacted installation. + +Beginning the Install phase of the installation. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The Install phase completed successfully, and the Commit phase is beginning. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The Commit phase completed successfully. + +The transacted install has completed. + + +The uninstall is beginning. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The uninstall has completed. + +Running a transacted installation. + +Beginning the Install phase of the installation. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +An exception occurred during the Install phase. +System.ComponentModel.Win32Exception: The specified service has been marked for deletion + +The Rollback phase of the installation is beginning. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The Rollback phase completed successfully. + +The transacted install has completed. + + +The uninstall is beginning. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The uninstall has completed. + + +The uninstall is beginning. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The uninstall has completed. + +Running a transacted installation. + +Beginning the Install phase of the installation. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The Install phase completed successfully, and the Commit phase is beginning. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The Commit phase completed successfully. + +The transacted install has completed. + + +The uninstall is beginning. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The uninstall has completed. + +Running a transacted installation. + +Beginning the Install phase of the installation. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The Install phase completed successfully, and the Commit phase is beginning. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The Commit phase completed successfully. + +The transacted install has completed. + + +The uninstall is beginning. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The uninstall has completed. + +Running a transacted installation. + +Beginning the Install phase of the installation. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The Install phase completed successfully, and the Commit phase is beginning. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The Commit phase completed successfully. + +The transacted install has completed. + +Running a transacted installation. + +Beginning the Install phase of the installation. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +An exception occurred during the Install phase. +System.InvalidOperationException: User has canceled installation of services in executable c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe. + +The Rollback phase of the installation is beginning. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The Rollback phase completed successfully. + +The transacted install has completed. + + +The uninstall is beginning. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The uninstall has completed. + +Running a transacted installation. + +Beginning the Install phase of the installation. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The Install phase completed successfully, and the Commit phase is beginning. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The Commit phase completed successfully. + +The transacted install has completed. + + +The uninstall is beginning. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The uninstall has completed. + +Running a transacted installation. + +Beginning the Install phase of the installation. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The Install phase completed successfully, and the Commit phase is beginning. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The Commit phase completed successfully. + +The transacted install has completed. + + +The uninstall is beginning. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The uninstall has completed. + +Running a transacted installation. + +Beginning the Install phase of the installation. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The Install phase completed successfully, and the Commit phase is beginning. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The Commit phase completed successfully. + +The transacted install has completed. + + +The uninstall is beginning. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The uninstall has completed. + +Running a transacted installation. + +Beginning the Install phase of the installation. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The Install phase completed successfully, and the Commit phase is beginning. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The Commit phase completed successfully. + +The transacted install has completed. + + +The uninstall is beginning. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The uninstall has completed. + +Running a transacted installation. + +Beginning the Install phase of the installation. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The Install phase completed successfully, and the Commit phase is beginning. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The Commit phase completed successfully. + +The transacted install has completed. + + +The uninstall is beginning. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The uninstall has completed. + +Running a transacted installation. + +Beginning the Install phase of the installation. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The Install phase completed successfully, and the Commit phase is beginning. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The Commit phase completed successfully. + +The transacted install has completed. diff --git a/SAF/SAF.WindowsService/bin/Debug/SAF.Configuration.dll b/SAF/SAF.WindowsService/bin/Debug/SAF.Configuration.dll new file mode 100644 index 0000000000000000000000000000000000000000..0bb5aa8f83ff6d08796c8305e44ef118a5f1a409 GIT binary patch literal 11776 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 literal 0 HcmV?d00001 diff --git a/SAF/SAF.WindowsService/bin/Debug/SAF.Library.Security.dll b/SAF/SAF.WindowsService/bin/Debug/SAF.Library.Security.dll new file mode 100644 index 0000000000000000000000000000000000000000..5ca26adec0303738c54d6a8dec6f8f17e9e8d5ee GIT binary patch literal 3584 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 literal 0 HcmV?d00001 diff --git a/SAF/SAF.WindowsService/bin/Debug/SAF.Utility.pdb b/SAF/SAF.WindowsService/bin/Debug/SAF.Utility.pdb new file mode 100644 index 0000000000000000000000000000000000000000..fc3cf88aa69421fd07c4f04894cf5b0651cf4752 GIT binary patch literal 13824 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 literal 0 HcmV?d00001 diff --git a/SAF/SAF.WindowsService/bin/Debug/SAF.WindowsService.exe.config b/SAF/SAF.WindowsService/bin/Debug/SAF.WindowsService.exe.config new file mode 100644 index 0000000..faba0a2 --- /dev/null +++ b/SAF/SAF.WindowsService/bin/Debug/SAF.WindowsService.exe.config @@ -0,0 +1,18 @@ + + +
+
+ + + + + C:\temp\EmptyService.txt + + AVANADE-C006T6X + user1 + password + + + + + diff --git a/SAF/SAF.WindowsService/bin/Debug/SAF.WindowsService.pdb b/SAF/SAF.WindowsService/bin/Debug/SAF.WindowsService.pdb new file mode 100644 index 0000000000000000000000000000000000000000..d287e123b07fcf932317d1f38d94fc33edd0765d GIT binary patch literal 30208 zcmeI5e~eVub;sZAzFjcC!rIsY{G-EqvBALp;5RO@!3$(*OmMuUST2?sb_aIqWoETA z7?UD(Y~jj{tQJ*7vLh$5YpZf3tECaKP<}|OgruqDv`*tcsG2{ll(r;F;>5Bl{=m4O z@BK0R_VH$am^J0c9Q(ZU-o5AEcka3Oo_p@OZ-;HUp20$~u(y=%Z0lUIB)zSBOL|Rf zd;833^EY(|K%MzNSi$XiJp=8Q)UMZn2HJo8zaQ1$`qjX5Yi?i^U$}l1aGkgO;0+zA zwX$Qg9YSslKKcl=Z_`9;aLsDq+@3Go|D!2CYdYE;3~hh4?v+!UKlkD<|NGyXj^1yd zr+@7)9&OtDv!?Ie69ng`Zv9?0MJ%lk7&XbTh(fI(EI}hkRlyQ)DR>j8p*IDb3eEs$ zf;WP5z?;Eaz)yp7!Fk|(@K*3P@OJPH@DIQ=xBzSh?*v=Gg`nPlH+UDg82l7i1FM0_ z>i?QPuTBjl*?-OAsQuToS{J8RXNzl6M>Q~6^S_$?m+fr>z3umQe;H}A{Y_v9Hh|N? zS>R;ZeQ)o*{nxsqwWbEc8kns9AFi=>cQt81bM73NPX&SY0p7-cp63wkA}xxVt9~w5 z^WBP>y{!jx`QF08Vlg}TWUeQ>E4zQ7bjUrl_7sD*;$TnP-dumS*w%CJE(!?ag$4!- zf12$noB6p~Oyi!>t6cL=&18@}7 zo>^X|lBR*OUIJ<7C!o?~+2rl+1gC;mCa5Ko>Ho{tN-L^Yt(T84TQC1#zP;>k+}=x5 z^7l2KCd>9qj=Mp>2Go3hl#u{6`=6kc>nLfm`hVEeCt2<4Holsv9<9Vk`>f9LUge|Q z%T_eY1W;ma_X5v-9_@JBMQgb z+55?Rn{rQ6#`8^v>|TWbky8(NYM+L$W5s`8L%z3=?_r93$+csCkZ$5u-mmE^)pmeQ zK(1FY+jNuE5X~FN6pIH7gXAj4n{JXw(fr=R{!A{fzDzgCheT(UdW#2iPHo4AsMqy( zUAyFwd*HtD-<^!XzHI672QtO19i>LsrxENV$1fIr|VCp z(D#Hu?~8NKJGh8+EE`wJqJd$@Ys!pW9vLV097Ol4gP<(g)<7GWIw3Xq z{;&I|zgcp=@l;Cr6M^ye|IevZYwvj0|8F{8jj8B5jgBr_(`Uh?dX*RDeLjI#Y2p=) z^4efQw+R+lGoZcybhx}E+>QXfO)XJPYMCU}uJ`JL3-4WcPtvc~rMlA{kKc^KdO7|7 z&U<&^6bNGu!>-K=I63b@y;+^J+Xai_{a?MrLpCn8H5!+Sjuwr{C?t)RiQ3s{eUo|b z``^f1>;Jy%ZT`!Cdtds58(12z9qg0Q=fl1d?fGpc$vNb zKLa^DFt-{PA+V7-!T;A>_4$`mX77_$^Z!?RnaA+|J>TV!z1jJsjDw1=oy+&(#Fw`A zX7eSxXRB|D`u~1^awYr!Z+cyi;s1NS%c1K__5X)ln>05MgK_^~V_vB7BUIajDp!5A ztF}IBex=OZ*Ecx2SKauz=3ezLclUb7A94RaxC6BIB4vCw9`Qo$8I$hii)%l@_dMm9 z&@@#0n`WqNjePQYcKab;|Ad?-gm|-2|JTmzlsRjFeT4suY-Ka|p&`TBmpcNVom0s^ zJnbl_;bCuJeE3yR`S9|m<-^OLmOn|F@!{`<%7Kz&r$pT4(S4&czK}f)E)FG5VQZPM|~tv zzOPg9pGcf%t8{dSjo-9BnAj*N5dU*7AlC+)t7C?0{{Sm}@=lTF9Mga%9~*PQnoU8Vf%E zN@$bpon%Ecx3)y%9m_|=J8p675N)iiLq&WM-``#@FTfzU(GqiIj5osS^->t%Uh%*m z^WtN!LZ5#n=*73m$9B{R*(m8s^R)z)!RJBEX@SP7Q2i@ZdxR=i-L}VfNqUDFJ?5NN z_o{O)sC(7xZN2Ko{u!IT9xCwsx>q-}>js#OxcCq16JyioKNkdh?Vm!#BGUfSD#b=g5 zwKibaO?+l8bOFx~Koy7C?5O6C)&Q+N4NkHtL@K8s&lFnMNOYpX#Ea(e-DAWioDo2H~`OK_I^^WYr1s~zkDcY!7FIZ!b} zvB$@f#)HbiV)PqA{oL{PpZ=*p19L}Z#GhpUb!PALqjM(`|L-jD@dlr96!JyIbt~rr zorV1ag*-mwwnA^VpL&|3dHKD$eFp|JD%R?D+7e;B_WwR-|IZk~iTkUt0~WMK%^Q<7 zZ2v3rh)wq4H1u7VdZ3>FN@%0^6X}~V?dDkhzniv6_v%BnQK<1z-DV_3KkV369U2cB z=c=a#d>`xrm8Wz+wnCmYF9eh^_P1kcxdV=ZhcL@AQ4yS%?@S>K|dhMrK`={eLa%+xwU7QO2~BKF%@B z8w74}6?YUKK9HyHy)E@?%W+K}Ky%UqTz-S{vQM7BHh;_+|3!Pl z_}RbT+qIaTsr~yOuYY{J#(7@-7ucbYQtVLeYx=M&R;mpdT*jaNAI zQ|Nq+*ZKCm+j&}@FGAm&DD!LhJWoyMqw8FDOM4jfnqaq9kJuNB7oS0UtOVZ59=Zb- z=0Mu;aB;l&w)^FG+kH5DlS(?DY3RdkyZlksf3JaG7UwByq1F7_MPF~AufGBR9ycER zcO21jdHj7VPkmDt8=Li%d6tBdE2DSGw31bMSLx6|c58lbLFH6u0~B9!M85J=R%QWT zvXW;$AkX)hcdD#>#i%@k2l5-`J4ipg6FOYBM26B4QFgvkXR%nStOtHwsQ6Lp5a0)v zm@EC$*n-VB>w@M8Q3&bmK`QQt|NC(H{M!5&dw!@7$2&jNr{kF)noH{EG3sU8puI%8 zY1-KJt`M*K`LHUcpVvY<+&J*_k(fqhTxo!dzZU~=9!&H6hmPN$r$ooLo2RDCG5F7c z@+me)-odnD&P3i(>>V+7y?lMh$6hE<3{B%y@@XC>$rr-g3*JWls}X+9OGK!&r^K_L zAD;Ss;1Dm-_hx#R=InFeG4N&Z4e%s*3KZY39LiS`YW)^!O%ZDD2vuM8V{E4_^S2#( zZ_3n-KFz(}vDDq`9nyt(^d5a*sC&KZ3+`U;JIuZIxVyn2%8SSEpVX!upg?UMkUsU{ADSB8B~6$ z_PSxPJqU>^`BJ-JMX?wFRnne-;{Ig&SyjBRl<&T72D8X`l5KQi1m~=1}H5C_w)vhW9X3@^?ce z!xy3Lj(!IECp=5eUC_s%VEGB?<51cA-Ow^L1N|!~3q<+r(7n)aK>MJ_p*iRep_DEE zGgR++7php|8Tb5a=m6;0xCYz=Dt34mx=_qd z+ESc%dPN^;^kLVARAo((E*1L|91emqHp@`yqs;%($J5XS&?C?`=(AAHrZmsW(vQk% zEUO)~$vjI>e@*&6=uzmCj{Z6H7|)ucUx7XkeF4gS@Kvbv2A2O8s&a2aRqwam^Y@{z zl0J`i&Sc~^65DK~y;B(DQ_w}c?I9y`9+4c&dn>#*!FM}8fxg4LSWh2N|5Q+N3EIJ_ zjPcvRm0%aR8$1HO1fBr(z3Lh8JUEBJDs`qpm97qB<*Q_Kv^aG~Vf6B8|9&UM>}XMQ z@4Eb=be|BdKZ!S*uQK|3zxg+`{a%e9K-LbZ%H7Vr=wt4At9!oL>1maFzQNH~9N#Y~ zqjC!z{m{{$I(oC?`@N(8<;s8P=+_)w<@o>7@jdI(f8yx3T>7`%^FKQN11>$|o)0;? z)unH9&o4Tf@%6g=xPD+80b}Khxj9;b`lB#<`ODw`QQ0o}z8uW9&D~(Cve%Kd#?&z~ zbDU2}^^UXXxY=gFsr9u5lr32gc7acU*i&=9^b+)S@B}ynz6G8J&w#%J&x2aaWT(^M zQgAJ}3Dj9lAD9ZvRsg?XaTDx;&LmSo`)c#e_e!0aEi~ye2zBlN#`D@V$IFCicD$0I zE^@FPJ=pMNEl>OEJAzrJe%gz>(z$)xlE*jaOM{0Vf2felmqxz7KH>fKURIn1FY8I( zUr)RAhZp{RHqFVpR{J#DF2#`RgV+a8l=tOqzALwGxSYPxuaAGcA1P<^UAfG#Y|>dO zp&b>ScgR<^vPnm&h#q;Y$Yt|f{p<*Q+jZ8iK8?2Bra4}A1fJLS_5W}Gt4%eissXta z*EFP=N178!;C%xrLB142+h7v!HJWzK_rF!=7&JNDD$RRjM<|%L~_q!`ClFm##i0f~MxES#ACCfV_cnLXQ zgHvNeRh?b@9fi&eB*+{6C@EOJYQ?6_9qY!ao0-8`Uhot(zXR%B8-6-!f5bm#2s+ko zTK>S=RU3_PTt;tOLjRxt553kvLfbx({y(>4)Hb?f%#OtVm!O=PT?A@`(iKmLgYp)F z+DpYjd4u4M@eH1ocLbc{^7QOM_b-483_%zWF3n#uhYEaxy|NVlL8I(T`{W4fRZW{mduj-rw3BTD>ox51& zhk8aUG5qTfomKz(D`}dI{#Rg8qcb{Z++>KGU(j`bN9VeO6bDkig?Xk!?EQ#-RGICg z^#A$^^#4Z_=zmFgthFQc^#ds#+XX{E{LPu=@9ygQyL*q^z3R`pK6`<*wg+?hC(OZH zTRyWt>wdYZj~`UZ4({nM^gJ=XpK^*1pxW<0N%>a*a4uxdDDn)#wcHZcz+src`Uj1y_`lZyWya`pT8??(6R%446#?6;;#&;ONI@X zT*KHE$bXc5X#v~8$&U9vq``j$g6y;Qe@u^y_J6M<^9Itjm-28a`@h$yPip9DdQ3}! zfrLF$)D^qr{olEN=o{@_ac6GA`@b0|?iej;cWpcU!KiIZa!fz={{JZ!OzHFJ{mZqS z8A#CQnEO9pwnnc%4Wu#9^1G5iwn4tZR5EMv-y{uP8)@=z;~=}DbRWxz<|}U@csb)g z|H4bF#beHq*X#t;I_5!g&S!l4HpKHf$g38Q`FQ(r`{txL6|XY!t7n{WdiJ3EzXzwe zglJwpk%D-PM|*smR#%DfoTTh{<34(gbomJQWw3g*CBAL1&UrcGKI4eB+!T$q(8L;4 h(LmC_|4{q)f2t^}mR!?7O#?Lz)HG1jz%` + + +0.72 +2 + + +11 + + + + +_reserved_lastInstallerAttempted +_reserved_nestedSavedStates + + +0 + + + + + + +0.72 +2 + + +11 + + + + + + + + +1 + + + + + + + +0.72 +5 + + +11 + + + + +0.72 +3 + + +11 + + + + + +Account + +Username +hadServiceLogonRight + + +-1 +User + +AVANADE-C006T6X\avmin +false + + + +installed + + + +0 +true + + + + + + + + +0.72 +5 + + +11 + + + + + +baseInstalledAndPlatformOK + +logExists +alreadyRegistered + + +-1 +true + +true +false + + + + + diff --git a/SAF/SAF.WindowsService/obj/Debug/SAF.WindowsService.ProjectInstaller.resources b/SAF/SAF.WindowsService/obj/Debug/SAF.WindowsService.ProjectInstaller.resources new file mode 100644 index 0000000000000000000000000000000000000000..e30315720ab53f8724a1dc76596b66f0d7a12e8a GIT binary patch literal 1102 zcmd5)Jxc>Y5S{pef+8w5b}2*>#ug)|&OpR>yMdw=1nT-KUij$mDO^?=fZ)7hz5z0Due^o9v;%@VHK z0ER}u!ZyTUz=I`VkN`Faqn{HM(3GmfBJCQsh%yfx6i65(a^6rt!ydWtMoN;KC90s$ zWdibEBs!;w`D1_=MOJ=a>J Fy%$aiGXwwt literal 0 HcmV?d00001 diff --git a/SAF/SAF.WindowsService/obj/Debug/SAF.WindowsService.Service1.resources b/SAF/SAF.WindowsService/obj/Debug/SAF.WindowsService.Service1.resources new file mode 100644 index 0000000000000000000000000000000000000000..4e892e645f74a7d45a9b16ff50c89dee3f7790c7 GIT binary patch literal 188 zcmX?i>is@O1_p+CK&%;DSzMBus~417oL^d$oLUTL1*ImYq!#HYycEh^5;&$BhuGte_OHZagL&{1$M%_%7@O0~^PEiEZZ%+XN@ rC{4=AO!iK#49U+<&9hB1H%~N8HZ?P}G&V^!u&@NV5(WYs_W+py1_C`D literal 0 HcmV?d00001 diff --git a/SAF/SAF.WindowsService/obj/Debug/SAF.WindowsService.exe b/SAF/SAF.WindowsService/obj/Debug/SAF.WindowsService.exe new file mode 100644 index 0000000000000000000000000000000000000000..ff673876fdcd518a803ef3f2ec8652bea00459cd GIT binary patch literal 9728 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 literal 0 HcmV?d00001 diff --git a/SAF/SAF.WindowsService/obj/Debug/SAF.WindowsService.exe.incr b/SAF/SAF.WindowsService/obj/Debug/SAF.WindowsService.exe.incr new file mode 100644 index 0000000000000000000000000000000000000000..677391c36fedfac4d97b9c900b805e07ea19b714 GIT binary patch literal 3042 zcmcguO-vI(6n6Yw%ulTE8;;3deEy0 zM~#UWe-4T#j~ciriC#ExFdp?{29M$2YCtM==zuI4OTjU82ER-t6(4O?w%Q{8dXQFC}w9oMoAN6qp;*HVq5ofb)!Csz9daywu^BE^k*rL9~XuHdR{Dk2a+e^f#@{4YK5d9=v`P4 zlVIxE;jW*+)Xex$24S_rlmtsQSY*}>x*(Y6mV;jqr*Pcpr;m*D{f2vcYl!nQlra=S zw1cUdD&JvUec?7r6jm$d67XaZc17sSK%2Gds||5Llq%1$+759WB>}4yz8GSphzK%) zuq-0SMVtFH#9UECh%RCyh`JsKZ>)D6`&GZ7Y=j6R%R`++{11u<<61+^npi1|RVT4t zSW78Ni?=C6w}EyUI5;-t%n`6W)ElCN7CUlZC~PQj#Kw+~+>|M@BtIeTpW+bUFcR!A<0=6__@0z91&`Io(y4*9O- z!`gA?r44*|p03QR%s3NJNCrv>>yk5*2IFjG2@T84bP=m(#OdK6{&G;2tTm`Gs7D7g z{oIzq8fluq=xjibTbZd*3F}yxD^cXK=sG;+WwAzFXSjVAz;46% zMB_WlYV>LI@XdK|7`0Z3vk#hJo(fP|9vOwToP%mKXw|`*a(BK{b>8~gxm@Sx*J^hh zz+NShKf|h#J9;0qf*o;SN0b8+0q3mJOlfHh-|UUyc&)}a|Bhb%cHV_i+=qenh@wg) zd-448(enp$%RZ70^i_j|8OVqnAy1T~$OSI?#&LHX7g3}m@_lZm0c#Dr;T{oD-bh6I o@VxkW#$@k+Gf_Bpt3~8zAC4K1i%Bef5JW(P5oMYPXRfG!1Kv9pbpQYW literal 0 HcmV?d00001 diff --git a/SAF/SAF.WindowsService/obj/Debug/SAF.WindowsService.pdb b/SAF/SAF.WindowsService/obj/Debug/SAF.WindowsService.pdb new file mode 100644 index 0000000000000000000000000000000000000000..d287e123b07fcf932317d1f38d94fc33edd0765d GIT binary patch literal 30208 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 YD~KCS>3`8|W%u`CJ%38n(GErb1FvX}w*UYD literal 0 HcmV?d00001 diff --git a/SAF/SAF.sln b/SAF/SAF.sln new file mode 100644 index 0000000..cd889a2 --- /dev/null +++ b/SAF/SAF.sln @@ -0,0 +1,111 @@ +Microsoft Visual Studio Solution File, Format Version 7.00 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SAF.ClassFactory", "SAF.ClassFactory\SAF.ClassFactory.csproj", "{DF688CE0-E540-41A0-B318-1139C68A715C}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SAF.Configuration", "SAF.Configuration\SAF.Configuration.csproj", "{CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SAF.Cache", "SAF.Cache\SAF.Cache.csproj", "{725D8525-B7F8-480A-B3C6-6634D51D2291}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SAF.EventNotification", "SAF.EventNotification\SAF.EventNotification.csproj", "{7D58B200-AD5E-453D-81C9-CBF45119790C}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SAF.Authentication", "SAF.Authentication\SAF.Authentication.csproj", "{FCE84DBB-04F6-4FF5-B84A-776CDB28DDEE}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SAF.Authorization", "SAF.Authorization\SAF.Authorization.csproj", "{A5018D44-988F-4B34-83D6-0B21FE85B95C}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SAF.Cryptography", "SAF.Cryptography\SAF.Cryptography.csproj", "{CA2E46AF-05AB-4428-91C8-27E1725EA8AB}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SAF.Transaction", "SAF.Transaction\SAF.Transaction.csproj", "{5D0B84C7-8189-405B-A275-395A71DBEEBA}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SAF.MessageQueue", "SAF.MessageQueue\SAF.MessageQueue.csproj", "{4F210282-BB72-4DAF-9324-D1BDDA58605A}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SAF.Application.DocumentLayer", "SAF.Application.DocumentLayer\SAF.Application.DocumentLayer.csproj", "{22AC47FC-FBEF-4BA2-B9EE-D12F4C84B8C2}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SAF.Application.Workflow", "SAF.Application.Workflow\SAF.Application.Workflow.csproj", "{6B86701F-B2C1-4694-81DE-542312E6FB64}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SAF.Library.Security", "SAF.Library.Security\SAF.Library.Security.csproj", "{C087F526-0CDF-4555-A894-454D813B28B4}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SAF.Library.WindowsService", "SAF.Library.WindowsService\SAF.Library.WindowsService.csproj", "{A764C7E1-6192-4957-81F3-789FF4F6834F}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SAF.Utility", "SAF.Utility\SAF.Utility.csproj", "{25E53F84-184D-43EA-9713-CDD63021560C}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SAF.WindowsService", "SAF.WindowsService\SAF.WindowsService.csproj", "{67FC5C6C-7752-44FD-9073-9E403417E916}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SAF.Application.Configuration", "SAF.Application.Configuration\SAF.Application.Configuration.csproj", "{AE5F42AC-D432-4B6D-8259-371E4C7FC556}" +EndProject +Global + GlobalSection(SolutionConfiguration) = preSolution + ConfigName.0 = Debug + ConfigName.1 = Release + EndGlobalSection + GlobalSection(ProjectDependencies) = postSolution + EndGlobalSection + GlobalSection(ProjectConfiguration) = postSolution + {DF688CE0-E540-41A0-B318-1139C68A715C}.Debug.ActiveCfg = Debug|.NET + {DF688CE0-E540-41A0-B318-1139C68A715C}.Debug.Build.0 = Debug|.NET + {DF688CE0-E540-41A0-B318-1139C68A715C}.Release.ActiveCfg = Release|.NET + {DF688CE0-E540-41A0-B318-1139C68A715C}.Release.Build.0 = Release|.NET + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Debug.ActiveCfg = Debug|.NET + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Debug.Build.0 = Debug|.NET + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Release.ActiveCfg = Release|.NET + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Release.Build.0 = Release|.NET + {725D8525-B7F8-480A-B3C6-6634D51D2291}.Debug.ActiveCfg = Debug|.NET + {725D8525-B7F8-480A-B3C6-6634D51D2291}.Debug.Build.0 = Debug|.NET + {725D8525-B7F8-480A-B3C6-6634D51D2291}.Release.ActiveCfg = Release|.NET + {725D8525-B7F8-480A-B3C6-6634D51D2291}.Release.Build.0 = Release|.NET + {7D58B200-AD5E-453D-81C9-CBF45119790C}.Debug.ActiveCfg = Debug|.NET + {7D58B200-AD5E-453D-81C9-CBF45119790C}.Debug.Build.0 = Debug|.NET + {7D58B200-AD5E-453D-81C9-CBF45119790C}.Release.ActiveCfg = Release|.NET + {7D58B200-AD5E-453D-81C9-CBF45119790C}.Release.Build.0 = Release|.NET + {FCE84DBB-04F6-4FF5-B84A-776CDB28DDEE}.Debug.ActiveCfg = Debug|.NET + {FCE84DBB-04F6-4FF5-B84A-776CDB28DDEE}.Debug.Build.0 = Debug|.NET + {FCE84DBB-04F6-4FF5-B84A-776CDB28DDEE}.Release.ActiveCfg = Release|.NET + {FCE84DBB-04F6-4FF5-B84A-776CDB28DDEE}.Release.Build.0 = Release|.NET + {A5018D44-988F-4B34-83D6-0B21FE85B95C}.Debug.ActiveCfg = Debug|.NET + {A5018D44-988F-4B34-83D6-0B21FE85B95C}.Debug.Build.0 = Debug|.NET + {A5018D44-988F-4B34-83D6-0B21FE85B95C}.Release.ActiveCfg = Release|.NET + {A5018D44-988F-4B34-83D6-0B21FE85B95C}.Release.Build.0 = Release|.NET + {CA2E46AF-05AB-4428-91C8-27E1725EA8AB}.Debug.ActiveCfg = Debug|.NET + {CA2E46AF-05AB-4428-91C8-27E1725EA8AB}.Debug.Build.0 = Debug|.NET + {CA2E46AF-05AB-4428-91C8-27E1725EA8AB}.Release.ActiveCfg = Release|.NET + {CA2E46AF-05AB-4428-91C8-27E1725EA8AB}.Release.Build.0 = Release|.NET + {5D0B84C7-8189-405B-A275-395A71DBEEBA}.Debug.ActiveCfg = Debug|.NET + {5D0B84C7-8189-405B-A275-395A71DBEEBA}.Debug.Build.0 = Debug|.NET + {5D0B84C7-8189-405B-A275-395A71DBEEBA}.Release.ActiveCfg = Release|.NET + {5D0B84C7-8189-405B-A275-395A71DBEEBA}.Release.Build.0 = Release|.NET + {4F210282-BB72-4DAF-9324-D1BDDA58605A}.Debug.ActiveCfg = Debug|.NET + {4F210282-BB72-4DAF-9324-D1BDDA58605A}.Debug.Build.0 = Debug|.NET + {4F210282-BB72-4DAF-9324-D1BDDA58605A}.Release.ActiveCfg = Release|.NET + {4F210282-BB72-4DAF-9324-D1BDDA58605A}.Release.Build.0 = Release|.NET + {22AC47FC-FBEF-4BA2-B9EE-D12F4C84B8C2}.Debug.ActiveCfg = Debug|.NET + {22AC47FC-FBEF-4BA2-B9EE-D12F4C84B8C2}.Debug.Build.0 = Debug|.NET + {22AC47FC-FBEF-4BA2-B9EE-D12F4C84B8C2}.Release.ActiveCfg = Release|.NET + {22AC47FC-FBEF-4BA2-B9EE-D12F4C84B8C2}.Release.Build.0 = Release|.NET + {6B86701F-B2C1-4694-81DE-542312E6FB64}.Debug.ActiveCfg = Debug|.NET + {6B86701F-B2C1-4694-81DE-542312E6FB64}.Debug.Build.0 = Debug|.NET + {6B86701F-B2C1-4694-81DE-542312E6FB64}.Release.ActiveCfg = Release|.NET + {6B86701F-B2C1-4694-81DE-542312E6FB64}.Release.Build.0 = Release|.NET + {C087F526-0CDF-4555-A894-454D813B28B4}.Debug.ActiveCfg = Debug|.NET + {C087F526-0CDF-4555-A894-454D813B28B4}.Debug.Build.0 = Debug|.NET + {C087F526-0CDF-4555-A894-454D813B28B4}.Release.ActiveCfg = Release|.NET + {C087F526-0CDF-4555-A894-454D813B28B4}.Release.Build.0 = Release|.NET + {A764C7E1-6192-4957-81F3-789FF4F6834F}.Debug.ActiveCfg = Debug|.NET + {A764C7E1-6192-4957-81F3-789FF4F6834F}.Debug.Build.0 = Debug|.NET + {A764C7E1-6192-4957-81F3-789FF4F6834F}.Release.ActiveCfg = Release|.NET + {A764C7E1-6192-4957-81F3-789FF4F6834F}.Release.Build.0 = Release|.NET + {25E53F84-184D-43EA-9713-CDD63021560C}.Debug.ActiveCfg = Debug|.NET + {25E53F84-184D-43EA-9713-CDD63021560C}.Debug.Build.0 = Debug|.NET + {25E53F84-184D-43EA-9713-CDD63021560C}.Release.ActiveCfg = Release|.NET + {25E53F84-184D-43EA-9713-CDD63021560C}.Release.Build.0 = Release|.NET + {67FC5C6C-7752-44FD-9073-9E403417E916}.Debug.ActiveCfg = Debug|.NET + {67FC5C6C-7752-44FD-9073-9E403417E916}.Debug.Build.0 = Debug|.NET + {67FC5C6C-7752-44FD-9073-9E403417E916}.Release.ActiveCfg = Release|.NET + {67FC5C6C-7752-44FD-9073-9E403417E916}.Release.Build.0 = Release|.NET + {AE5F42AC-D432-4B6D-8259-371E4C7FC556}.Debug.ActiveCfg = Debug|.NET + {AE5F42AC-D432-4B6D-8259-371E4C7FC556}.Debug.Build.0 = Debug|.NET + {AE5F42AC-D432-4B6D-8259-371E4C7FC556}.Release.ActiveCfg = Release|.NET + {AE5F42AC-D432-4B6D-8259-371E4C7FC556}.Release.Build.0 = Release|.NET + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + EndGlobalSection + GlobalSection(ExtensibilityAddIns) = postSolution + EndGlobalSection +EndGlobal diff --git a/SAF/SAF.snk b/SAF/SAF.snk new file mode 100644 index 0000000000000000000000000000000000000000..ed70e4f08de0fa23caef5526ec1932aee5a3c6a5 GIT binary patch literal 596 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 literal 0 HcmV?d00001 diff --git a/SAF/Setup/Certificates/CompanyA.pfx b/SAF/Setup/Certificates/CompanyA.pfx new file mode 100644 index 0000000000000000000000000000000000000000..69f4b45921bab162de84f7fa5a1c929c69648706 GIT binary patch literal 2244 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 literal 0 HcmV?d00001 diff --git a/SAF/Setup/Certificates/CompanyB_PublicKey.cer b/SAF/Setup/Certificates/CompanyB_PublicKey.cer new file mode 100644 index 0000000..34effde --- /dev/null +++ b/SAF/Setup/Certificates/CompanyB_PublicKey.cer @@ -0,0 +1,23 @@ +-----BEGIN CERTIFICATE----- +MIIDwDCCAqigAwIBAgIKYRVvjAAAAAAADjANBgkqhkiG9w0BAQUFADASMRAwDgYD +VQQDEwdEZWxsNDIwMB4XDTAzMTAwOTE3MDcwM1oXDTA0MTAwOTE3MTcwM1owEzER +MA8GA1UEAxMIQ29tcGFueUIwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAKdw +e2Z+5+GjBIYbOAjphQRFAO8sdxQ78NBvvi31ql9TPJ7J1iVw7/RTN39p7B1WG1To +59eVDdY0btgQw6NcFfVkd5ZzYUKRXAFu4yILgvUfamIwfCQYR6y2Q3/ao9tgURO4 +rFwtMSunnJIR0RxR5t+cQuBC0fGu2DqNldNCfDXhAgMBAAGjggGZMIIBlTAOBgNV +HQ8BAf8EBAMCBPAwRAYJKoZIhvcNAQkPBDcwNTAOBggqhkiG9w0DAgICAIAwDgYI +KoZIhvcNAwQCAgCAMAcGBSsOAwIHMAoGCCqGSIb3DQMHMB0GA1UdDgQWBBRyC5BK +zX7Q1GBVq4E+noZe4BRYITATBgNVHSUEDDAKBggrBgEFBQcDAjAfBgNVHSMEGDAW +gBTtPRL/6OfaUWW/BVAxYkAGMnHYvTBfBgNVHR8EWDBWMFSgUqBQhiVodHRwOi8v +ZGVsbDQyMC9DZXJ0RW5yb2xsL0RlbGw0MjAuY3JshidmaWxlOi8vXFxkZWxsNDIw +XENlcnRFbnJvbGxcRGVsbDQyMC5jcmwwgYYGCCsGAQUFBwEBBHoweDA5BggrBgEF +BQcwAoYtaHR0cDovL2RlbGw0MjAvQ2VydEVucm9sbC9kZWxsNDIwX0RlbGw0MjAu +Y3J0MDsGCCsGAQUFBzAChi9maWxlOi8vXFxkZWxsNDIwXENlcnRFbnJvbGxcZGVs +bDQyMF9EZWxsNDIwLmNydDANBgkqhkiG9w0BAQUFAAOCAQEAOSYKSM2qN6PqmC4q +pB9t7aYAIJNM+sQrN5xn3Xa4OiqtxK8SkSmN3lAMONF9ExjfLR1OnV9Dn8/3RVdn +hosc4giuVeDvHH7IkcNyn6FeJrVRTsc6bxhjvMPiW0/lpLTkLaXNQ1pIJe7Xue0z +eVO9yabq64vuzl8m2pxei2jeki5p2ykhOO0PqhjNyaT7bsgw3hJ8NIjzsqCrymsL +7HMBRrzOX+zXg5fyDl6n1Kb8qlQQBqLEEqR3ZlWxpdd07KaSYzCK4fvWUlSeNOpK +xJXqJ3h6izR0xtWawPYUTmnI8Gnc/eyQ2gHnx3hUGqzSuvuiEDYmi8ssNfELJows +IwoHSQ== +-----END CERTIFICATE----- diff --git a/SAF/Setup/Certificates/Dell420.cer b/SAF/Setup/Certificates/Dell420.cer new file mode 100644 index 0000000..0ef71a2 --- /dev/null +++ b/SAF/Setup/Certificates/Dell420.cer @@ -0,0 +1,21 @@ +-----BEGIN CERTIFICATE----- +MIIDYjCCAkqgAwIBAgIQelRz2WDSx6lNXeEpgoPgATANBgkqhkiG9w0BAQUFADAS +MRAwDgYDVQQDEwdEZWxsNDIwMB4XDTAzMDcwMjAxNTAxNVoXDTA4MDcwMjAxNTYy +NFowEjEQMA4GA1UEAxMHRGVsbDQyMDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC +AQoCggEBALIM6q7qbV4KDv4xIc3AhYzlaN9wFzgW/j4Jm/ig1hnIPWeA22HoZGVL +vWJ/i7qfVLbcYNnth1Ti+H+EjMNSCZabOuvq9x+YEf2J3RNU7oIZotBXNbj120bN +V3tlnSpitzJuPc8erlPDQ9elugP9rHPFuL2noJ6SPmieeh53nlzeMrv9dLC/CYdZ +1QZPQk0rYTyRRlVREw8SsE2jBPOYLC35BtZ1mDtX7VG0JA5asy+/kUgm/nHecZ2f ++ln4HVoqi4eFxbGn/JBJgbXq4+CZc0HzV7prS8W8g+D8gHJvIascepiSEslKIFA/ +hkU+ZuROmJMWU+SQs0sDDh37+5WXwwcCAwEAAaOBszCBsDALBgNVHQ8EBAMCAYYw +DwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU7T0S/+jn2lFlvwVQMWJABjJx2L0w +XwYDVR0fBFgwVjBUoFKgUIYlaHR0cDovL2RlbGw0MjAvQ2VydEVucm9sbC9EZWxs +NDIwLmNybIYnZmlsZTovL1xcZGVsbDQyMFxDZXJ0RW5yb2xsXERlbGw0MjAuY3Js +MBAGCSsGAQQBgjcVAQQDAgEAMA0GCSqGSIb3DQEBBQUAA4IBAQANf+P55RPAPJaa +Q5peIXof8PDuGTH03AyOjfEclwaAHLGk0dGTSEOre19nkAx1Cx+cm8iH9R7l9Mf3 +g83sL+IkSx0ygxFqMo6JhkRBBz/2IvtZSf5VL0Cc7LFNDyc2jAJj5MQzKob5Dmoz +D/NBOyN+FOLxFcZApiAsBS1cyeaUsgRZChkw/CmNDQWpGPzIdp4CzBNCFtjUHlbi +zunxL7aV7TUCcSDhIqe+n0df5UifAtPwCBQdEBFk09EhLaJ6BtGDhv0DMm2rluUt +bRjmwVLL8OWqwYX3jFe9py/jlcHSF80pj8Kb+n8YA7Ucv7W7ztlvYqAIbCH9maCh +1C64h2IN +-----END CERTIFICATE----- diff --git a/SAF/Setup/SAFDemo.sql b/SAF/Setup/SAFDemo.sql new file mode 100644 index 0000000..0dd4e68 --- /dev/null +++ b/SAF/Setup/SAFDemo.sql @@ -0,0 +1,23 @@ +if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[DocumentLogging]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) +drop table [dbo].[DocumentLogging] +GO + +if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Employees]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) +drop table [dbo].[Employees] +GO + +CREATE TABLE [dbo].[DocumentLogging] ( + [ID] [int] NOT NULL , + [Direction] [char] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , + [Sender] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , + [Content] [varchar] (8000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , + [TimeReceived] [datetime] NULL +) ON [PRIMARY] +GO + +CREATE TABLE [dbo].[Employees] ( + [name] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , + [ssn] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL +) ON [PRIMARY] +GO + diff --git a/SAF/Test.BusinessLibrary/AssemblyInfo.cs b/SAF/Test.BusinessLibrary/AssemblyInfo.cs new file mode 100644 index 0000000..9f89a32 --- /dev/null +++ b/SAF/Test.BusinessLibrary/AssemblyInfo.cs @@ -0,0 +1,58 @@ +using System.Reflection; +using System.Runtime.CompilerServices; + +// +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +// +[assembly: AssemblyTitle("")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("")] +[assembly: AssemblyCopyright("")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: + +[assembly: AssemblyVersion("1.0.*")] + +// +// In order to sign your assembly you must specify a key to use. Refer to the +// Microsoft .NET Framework documentation for more information on assembly signing. +// +// Use the attributes below to control which key is used for signing. +// +// Notes: +// (*) If no key is specified, the assembly is not signed. +// (*) KeyName refers to a key that has been installed in the Crypto Service +// Provider (CSP) on your machine. KeyFile refers to a file which contains +// a key. +// (*) If the KeyFile and the KeyName values are both specified, the +// following processing occurs: +// (1) If the KeyName can be found in the CSP, that key is used. +// (2) If the KeyName does not exist and the KeyFile does exist, the key +// in the KeyFile is installed into the CSP and used. +// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. +// When specifying the KeyFile, the location of the KeyFile should be +// relative to the project output directory which is +// %Project Directory%\obj\. For example, if your KeyFile is +// located in the project directory, you would specify the AssemblyKeyFile +// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] +// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework +// documentation for more information on this. +// +[assembly: AssemblyDelaySign(false)] +[assembly: AssemblyKeyFile("")] +[assembly: AssemblyKeyName("")] diff --git a/SAF/Test.BusinessLibrary/Class1.cs b/SAF/Test.BusinessLibrary/Class1.cs new file mode 100644 index 0000000..1d285eb --- /dev/null +++ b/SAF/Test.BusinessLibrary/Class1.cs @@ -0,0 +1,22 @@ +using System; +using System.Threading; + + +namespace Test.BusinessLibrary +{ + /// + /// this demo shows how to use CryptoRemotingClientSink and CryptoRemotingServerSink + /// together to provide an secure communication environment for .NET remoting + /// + public class SampleBusiness : MarshalByRefObject + { + public string SayHelloWorld() + { + //retrieve the data slot from the thread which contains the sender's identity information + LocalDataStoreSlot dataSlot = Thread.GetNamedDataSlot("Identity"); + string sender = (string)Thread.GetData(dataSlot); + Console.WriteLine("Caller named '" + sender + "' calls the SayHelloWorld() at " + System.DateTime.Now.ToLongTimeString()); + return "Hello World"; + } + } +} diff --git a/SAF/Test.BusinessLibrary/Test.BusinessLibrary.csproj b/SAF/Test.BusinessLibrary/Test.BusinessLibrary.csproj new file mode 100644 index 0000000..bd581ad --- /dev/null +++ b/SAF/Test.BusinessLibrary/Test.BusinessLibrary.csproj @@ -0,0 +1,93 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/SAF/Test.BusinessLibrary/Test.BusinessLibrary.csproj.user b/SAF/Test.BusinessLibrary/Test.BusinessLibrary.csproj.user new file mode 100644 index 0000000..c8340ea --- /dev/null +++ b/SAF/Test.BusinessLibrary/Test.BusinessLibrary.csproj.user @@ -0,0 +1,48 @@ + + + + + + + + + + + + diff --git a/SAF/Test.BusinessLibrary/bin/Debug/Test.BusinessLibrary.dll b/SAF/Test.BusinessLibrary/bin/Debug/Test.BusinessLibrary.dll new file mode 100644 index 0000000000000000000000000000000000000000..1a598f1bbfec99324de6225e6fef3aaabc6314a0 GIT binary patch literal 4096 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 I4^9UD0x&B1DF6Tf literal 0 HcmV?d00001 diff --git a/SAF/Test.BusinessLibrary/obj/Debug/Test.BusinessLibrary.dll b/SAF/Test.BusinessLibrary/obj/Debug/Test.BusinessLibrary.dll new file mode 100644 index 0000000000000000000000000000000000000000..1a598f1bbfec99324de6225e6fef3aaabc6314a0 GIT binary patch literal 4096 zcmeHKUuaxq7XRIwNt&kZ)T9L!ySq20+OfJrV$v&(CKE-bst1z z&*b}k=ljn2&UeoF{@tvcehNbXQY=@l0B^7s$|-(7T%tJrn>W*VZR-bwE)m%;Byj=P>EG45+f*6w*{#5F;d8*V$$+k; zTb%{AlYPwr_H?`ctBU&Kevd{S;7G5*IvbmdG3&w>g2N)pUBAgGIl$R$7==}~)VCZN z33QC5k8<=r8yY{LqWFrlEMhCo(nmR9p|7c|BY7o>Z!#n^3A{TDSkn1F(5~qe@*KzU z;~}Ayp%Y_cBblA7;&BSLg}d0jC7cl<7iVn8#88HUvCM=3g=66(lx@Eqqx-RI+JdA= z$j;YEm)6TB zin9yt$ZMJ?TJ|cT8+O)%%K7zzskG|@#o1P^!o-#CTd=xWksSYFCOe&-Jve=UJTMHO zc$x7|J;wb^KQ6LNmEzEA)+5n)m+ST<>#36^tTMk098-r+77MJ;vR#w*f*)`yC7QAh z@3yg3T3=hUvN-Gm)1&LeCYTLuW05T(GAT?@w;sVP?%?rx3Xc(ARD4JA6UBci?zBX@ zUvW|KVZ}!kpHX~O@e}KPo=MyOg1FTd%Lfz>DH@_s;)7($VvI{T$=nFP>WK8uIIsS_ zkhE^N$SrE|Fki$3Zd9BkUXR<9pHaL^abB^gc)#LriboYoiVrDP6))g4awuXMt4Li+ zBL8am@ii!&BuXwmmCZu3FqJTZhgO1G+c)=M(00t$d>@Ud8ic-AL8%kPrhyeVj5b_< zp>x8VJ6<_&sxeA#qvf04ULI(QI-MiN_k&Y3RztQL2VvJ@mWF(q@q#AiqsTNWe&?v^ z9CI6HKIXQqv}4mRSn~V-{4f}#b%lJ9rxXMk@t*26EQrN4)CiyT=@JM zgm5Tv(I8(VzYo^E`&d`I8WH&z8 zj=-O`pL_4$f16x*`Pcu*q)&hRJB+^m$Mv-v=Po}n< zanHm&Z@ls17NpWbDNu2AON!F;c+nn74~>i$hejsmhb@_Dgx8NU*xh~Wq&F+PBiv@{ zy@`qBOg;z;zQ5vn&E!}bqeoPvS8kyVzFof*k~T=I5aVN{}EpqRk<1Q51t1n`iQkT6E<+2|=N}DPNUP=9(MlJdjQ_Ew2eSjr- z!!1VL`^}*uIp7;(vp-LJ4LvP#p5&2tSoZeGS~`D+(I%&gV%51rb$Xr`=zYXfCVsT8 z@l)*Ou#__3CO(GSQ-rL{R4qA>XwQOA_Z*y<|n? z25P9)3!1e=cU}EF-nAhsB7XMb?%higk7Vn|`J1fCDs2ahqRm{#eHlpRFKC{x)%nkC q|4^=vsEv907io+YM$lmU@-$r{b=^z@0l6 z(r!vOr9VMZ7p;rZRbBKabW!yWcd?q=e}S>9SR`-4hl5@2Mc5*@gQxU(LOes3_Bpu<_V~4? zpHIF9k3ShH`OAGhJ*Se-$pV-sH7F$|s@FufrX*8qe}7$4)6bi<9dv00$wKG}umY(-2jPQq!mvDHYmCAh3is&YD==*p=4^ z<$^3goRG*Nhk}IE3T}Kzh#OKx4~0K~Uf{~1f(va>ks_fs{C>OpT-Qn~N6I?EnHT;1 zc4yzdnR##K&70YrF67E3r-BunXt} z9s%|MUBClC56}xd2s{Kl3~)H^1~dh0fuQ|Q-!oqn-#?0L`aS}LfkxkRY-r!Z2rZ)Z z;y>qdef;M=o72c!)I?oP3oLNluS0lamBSbi!zfGx90#1&oXaw=IcFKqWnOcR%iLy6 zXKZJz*R;JXu>bc|sEQ`_efQJB`S6tx{j?F{*#KjOaK6iHjt}a-6}ebE>6ab!xdpCi zdssmHzj~wdY5Jde*hWbFE}ZXb|8K;CTPw?WeF69i;66~+_%g1m0Ov0AG>P-|c{_@0 z^IrR(*7*O??d!L%(|511>ACT&W9G9J%c&%0-*E~>%W>?&Y}qU?W^=abI3tOiqf}-* zYfMgMXDD{u7n}CQGBq)d8b*As1SHnNQKV@*S%6*|RYOs>X^buc)#rdH;+Ea@o-)kE zla_6lUMrRDIqvIrMfrXjLh=q(bgO}=vFKE+1(`RB0ECar=XV{?e}Gsnlme=VVB%`V|dQK z+^JV7$12WQ2#g&t2@%2{b6^ttPkCY*AhE2;Ddp8p*rT2T>8fW62}?KL^aDOcL30zfoP3@i0l5nNOA*tuIIm4qJ21h%x^$E_r=^E z>sEgZa9?o_hy%kw8W7^QyngrQugg;AeI2@Ub|m-S^N2cznf^L%Y=D#g*9&`Vb9%i! zV8SpL&e@h6EvU@V^pVNK=~3!?{)fa0b&zCVcP;80WgfpvMs#ceUrvmKzP|b41pWU{dind`e*E{u zH_LB+^4Yf^pEppJoGuj4o+{=`Dp@oaEXND?^VrB+XT>G(t%EOu9*1^T`1KFya=1ZYqENs6)n}&z;63YPs^XUP1d!Quv?+zivDV?U=*<9Q=-R&DuyJj?f4}x}Tzn25!FLZ6t8>>+!QlDu z9>M*sl=&Tz*>Nczb~0Kc{gIdu6ED_bOfRL#q7KmU=*~ZG0((KI|{NBSJ97> MGqm{D&wmmB4G@TGnE(I) literal 0 HcmV?d00001 diff --git a/SAF/Test.BusinessLibrary/obj/Debug/Test.BusinessLibrary.projdata1 b/SAF/Test.BusinessLibrary/obj/Debug/Test.BusinessLibrary.projdata1 new file mode 100644 index 0000000000000000000000000000000000000000..3c0277f6d088ab45b47a100c17b0003eab85de8c GIT binary patch literal 1416 zcmeH{F-rqM5QX2FoTLhZ7*K*p8a1F`V_}yFLFKv#TG$x9h;SOYi^3Jcl~&f;S?6z< z-hZTivlojXNU+f&bIi`Woi{tX!_Gc0&Xs0_6s5>BAblWJ!#FBB(XM*BR$rkT6J{h| zIoUT7vaGgFb)_3c@S3_+qD%N8Ho+gT$_|ljHPpf$I!|Al-?#yB9mT8`D|Oi;u&uHM z`^>FYpEzDR{&nVt%Nla34yQ`B&w0Ak;%gTL&Q(LZXvvqBM)-kRT2%s@2U|UXPK-B| zX$AgU1u`~deQo#F?&|{9I=qfPjW9+BXx{O;wf~p*`?rhY&>I>a%x|wgzIqmGYCSTE zWRUJq>mkeE!djxLdskBJ@m@rHJsqJj=p4ez58gGc!zgG&Ww#UC^(?6A;uyvx9(E6h3b{ZJ~vM77Y+lUM<2%@TIlIM&)NZot9Rnv@+8oN`N;rm+6By?+y38 zk&X*e6Ez`mp&R1@(BtM5?<5yesN-X*$$nkgmt&#(eg+kOPd@S;tJJ^4r6(IVVI4+{C^0!(ynj$0G0lPWoQ$!y|0~(S>b)IO`+MfT` zG9&k!${Wz0ZZ=R`p;``6ha8`Y!m&2|1}9_^owszLi)e{&DKH#p4@wKA;Ju}l>qAj| zJr5zqYUOk?Re#YRo+7W-bFpQkfW`L6BE#7T5d1>$C*w!#jb9A5nTRnyDtH9Q6wS&xG7#MqEl{WM^CnB* zp^M_#^{BOD8H>cgc3MV6I|T=T+v#cHhXtP(92cAsd|B|cpe^VKUZ&rSU38hcVo%aF zdLott?v3@(n=}@ChTf;C*g<5H=d`F7i_t>v7#|ZH5qwc_Lh!g?PVhCsBJc%@uS9X$ zowrVt&;pPnzr%|HWYA#5FdmxqOEp&=p}Y!0D_sj5PX$5NDQH{Qt&;0fB`EsZbqbWL z2cfFatgVA3+fCO`sta?4i>eq>&aPBl)g0W`6m;s-%60uyFjgX~82Y+l(SjitW*pz6 z@gPu@f?GeX>L=`q8V|8N3$;+S3Z@*ljUc03yPk8(-uf|%N(V5$UNBK}!1}i{PtjpO;8otKC@QP)+zI~* z<^8PhmAR{-0l$lONT>qeRdh-_p~_}#nBoML z?(Pmq`zAXLvD>&8m_N(B$=rHs-XE)ya}&PKxbCd&c+s{}O12nl+!?mj~C)#~{|J+_R$G0KTgYShcZNrmzEf*UezhUBK>P+9QvoJft>y1IT$F zIgolH$15j(UGDK5`ZXjTmD^Za7M&q#{zj<)o@f_5GH3$!DzeM@9N@==iL$3fR+ahd zh&DP6AQqhiqSN#|1MdTz4(vyDjh}2UMO!deQ+E-%8rrL|4CD43LK(&@V+=owo&^_q z%=6`Os~eJ?P{#7f2#%a1FS&MYfh@W!}8~jDs&t}}s^OWP^Y~7o`(Knfg zZ68t8kn6A|1JV2$$@5yBzi0d3ay>0J#^GNeF%}R(9htaSJ4oIABQyG+q59nYoATjI I4^9UD0x&B1DF6Tf literal 0 HcmV?d00001 diff --git a/SAF/Test.BusinessLibrary/obj/Release/Test.BusinessLibrary.projdata b/SAF/Test.BusinessLibrary/obj/Release/Test.BusinessLibrary.projdata new file mode 100644 index 0000000000000000000000000000000000000000..121d65639774bc24417eb412291bf050ecf59bcb GIT binary patch literal 1416 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 literal 0 HcmV?d00001 diff --git a/SAF/Test.Client.SAF.Cryptography/TestConsole/App.ico b/SAF/Test.Client.SAF.Cryptography/TestConsole/App.ico new file mode 100644 index 0000000000000000000000000000000000000000..3a5525fd794f7a7c5c8e6187f470ea3af38cd2b6 GIT binary patch literal 1078 zcmeHHJr05}7=1t!Hp3A*8IHkVf+j?-!eHY14Gtcw1Eb*_9>Bq^zETJ@GKj{_2j4$w zo9}xCh!8{T3=X##Skq>ikMjsvB|y%crWBM2iW(4pI}c%z6%lW!=~4v77#3{z!dmB1 z__&l)-{KUYR+|8|;wB^R|9ET$J@(@=#rd^=)qs85?vAy(PSF5CyNkus435LVkZ$rj zNw|JG-P7^hF<(;#o*Vk}5R#e|^13tBbQkeF?djULtvqyxd3<{9 literal 0 HcmV?d00001 diff --git a/SAF/Test.Client.SAF.Cryptography/TestConsole/AssemblyInfo.cs b/SAF/Test.Client.SAF.Cryptography/TestConsole/AssemblyInfo.cs new file mode 100644 index 0000000..9f89a32 --- /dev/null +++ b/SAF/Test.Client.SAF.Cryptography/TestConsole/AssemblyInfo.cs @@ -0,0 +1,58 @@ +using System.Reflection; +using System.Runtime.CompilerServices; + +// +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +// +[assembly: AssemblyTitle("")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("")] +[assembly: AssemblyCopyright("")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: + +[assembly: AssemblyVersion("1.0.*")] + +// +// In order to sign your assembly you must specify a key to use. Refer to the +// Microsoft .NET Framework documentation for more information on assembly signing. +// +// Use the attributes below to control which key is used for signing. +// +// Notes: +// (*) If no key is specified, the assembly is not signed. +// (*) KeyName refers to a key that has been installed in the Crypto Service +// Provider (CSP) on your machine. KeyFile refers to a file which contains +// a key. +// (*) If the KeyFile and the KeyName values are both specified, the +// following processing occurs: +// (1) If the KeyName can be found in the CSP, that key is used. +// (2) If the KeyName does not exist and the KeyFile does exist, the key +// in the KeyFile is installed into the CSP and used. +// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. +// When specifying the KeyFile, the location of the KeyFile should be +// relative to the project output directory which is +// %Project Directory%\obj\. For example, if your KeyFile is +// located in the project directory, you would specify the AssemblyKeyFile +// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] +// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework +// documentation for more information on this. +// +[assembly: AssemblyDelaySign(false)] +[assembly: AssemblyKeyFile("")] +[assembly: AssemblyKeyName("")] diff --git a/SAF/Test.Client.SAF.Cryptography/TestConsole/Class1.cs b/SAF/Test.Client.SAF.Cryptography/TestConsole/Class1.cs new file mode 100644 index 0000000..0a3383c --- /dev/null +++ b/SAF/Test.Client.SAF.Cryptography/TestConsole/Class1.cs @@ -0,0 +1,55 @@ +using System; +using System.Runtime.Remoting; +using Test.BusinessLibrary; +using SAF.Cryptography; + +namespace TestConsole +{ + /// + /// Summary description for Class1. + /// + class Class1 + { + /// + /// This demo shows how to use CryptoRemotingClientSink and CrytoRemotingServerSink + /// together to provide an secure communciation environment for .NET remoting, as + /// well as use SAF.Crytography to encrypt and decrypt data. You need to start the + /// Test.Server.SAF.Cryptography project first in order to test the secure remoting calls. + /// Please refer to SAF.Cryptography section in app.config file fore more information on how + /// to configure the cryptography of the remoting client sink. + /// + [STAThread] + static void Main(string[] args) + { + //load configuration data + RemotingConfiguration.Configure(@"TestConsole.exe.config"); + + //(1). Test the data encryption/decryption using SAF.Cryptography + // (a) test the symmatric cryptography + string original ="This is a test!" ; + string encrypted = Encryption.Encrypt(original,"Profile1"); + Console.WriteLine("Encrypted data is : " + encrypted); + string decrypted = Decryption.Decrypt(encrypted,"Profile1"); + Console.WriteLine("Decrypted data is : " + decrypted); + + // (b) test the asymmatric cryptography + byte[] key; + byte[] iv; + byte[] signature; + encrypted = Encryption.Encrypt(original,"Profile2",out key,out iv, out signature); + Console.WriteLine("Encrypted data is : " + encrypted); + decrypted = Decryption.Decrypt(encrypted,"Profile3",key,iv,signature); + Console.WriteLine("Decrypted data is : " + decrypted); + + + //(2). Test the secure remoting call via CryptoRemotingClient(Server)Sink. + //Please refer to configuration file for profile information used for remoting calls. + //creating the remoting object + SampleBusiness sb = new SampleBusiness(); + //invoking the secure remoting call. + Console.WriteLine(sb.SayHelloWorld()); + Console.WriteLine("press enter to exit"); + Console.ReadLine(); + } + } +} diff --git a/SAF/Test.Client.SAF.Cryptography/TestConsole/TestConsole.csproj b/SAF/Test.Client.SAF.Cryptography/TestConsole/TestConsole.csproj new file mode 100644 index 0000000..211b7ef --- /dev/null +++ b/SAF/Test.Client.SAF.Cryptography/TestConsole/TestConsole.csproj @@ -0,0 +1,116 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SAF/Test.Client.SAF.Cryptography/TestConsole/TestConsole.csproj.user b/SAF/Test.Client.SAF.Cryptography/TestConsole/TestConsole.csproj.user new file mode 100644 index 0000000..29ccfc6 --- /dev/null +++ b/SAF/Test.Client.SAF.Cryptography/TestConsole/TestConsole.csproj.user @@ -0,0 +1,48 @@ + + + + + + + + + + + + diff --git a/SAF/Test.Client.SAF.Cryptography/TestConsole/app.config b/SAF/Test.Client.SAF.Cryptography/TestConsole/app.config new file mode 100644 index 0000000..7202970 --- /dev/null +++ b/SAF/Test.Client.SAF.Cryptography/TestConsole/app.config @@ -0,0 +1,69 @@ + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + 6HD+Ngi8JoGmD0g= + gi8JoGmD + + + CN=CompanyA + CN=CompanyB + TripleDES + + + CN=CompanyB + CN=CompanyA + TripleDES + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/SAF/Test.Client.SAF.Cryptography/TestConsole/bin/Debug/Microsoft.Web.Services.dll b/SAF/Test.Client.SAF.Cryptography/TestConsole/bin/Debug/Microsoft.Web.Services.dll new file mode 100644 index 0000000000000000000000000000000000000000..b56cdea1a2c2f4a0903c4e068d88d5a3c660fbdc GIT binary patch literal 311296 zcmeFa37lM2l|TOay{cDLuev*_bf>zLkaP!<@TjG;v2-Ua3Hy$KKtNf-YQpm1RazxQ zH31bB35tj)i%1lAKt zPxpIwJ@?#m&pr3td(XY^xHH~hIhJK*@c+y+mi2MG`CBK?ojcUOIf<#>*}XwhW(p!EiW!+3=>zh7UdAG75r z&@VX5vX1R?toOh7tOKLceqi-3E_S(=^#))ytf61~fN_6@m|C+Xe754v012hT$}-k^ z;Kr=fOFZx=Z*eg|e%k=|7`g!WJ;*xk_k)bpjlkhC+uChf3Jk>0|8$r2`>mGsf?>Sd4H8|!z~uf6@fPkwqZ_x(#751se+UyiQXeADla8!O*){{3eiF%nF^=ZXFA_O^ZC zV|N{ST;X>2w?F#kvA?+IWB)YvN9%?kE^#-!cJ@b)dZoK#k>CB1|2*p9$(xV0AG_|O zOCP#o=@tInC+_{~m+Zd%u(w>l$oA)3mRE`12ioPx zUx;wOXj!hm2rl(kc1MOG0pv&=G74Zj?6R!OZGRYX!D2oD&TH&}N2|Nb%2Ys~;tJau z#TzM06Ga5ptB+tc!}gaT)l$!2ikF6ajU39|#x#>T*I$N+$0erHg?YYh4O)Fw3rX64 z%ld(whm0u9S>aeUL}Lx7x!R&!R3>10-TCpWK!I95eu+W_uP|`<3?WzU-8p0Ake}@W=4< z*WgiKogX?tLxZ*O_Y}&jhVzAi4Z;5K%@?psAGs`RWqi=c3l7Aik{j4i%(*viTD7CU za)wQT=sE`GL5MFu-35kqR%9&D3-|&*N#nWUr%;hp%Gz8ve7HS`nFo-4m-GK=C;36+ z_VVX-wUy7pgfG#0(O7T_@+=0&PCghj*Fl1P9}-o=k1n z4G&4;GA2!UdJ-0Z-;+W0KHCWnML=!X4zPajIr3aR#|{n`AD{jacvQ+t3&%Pdc=6{1 z&@?<-o|2@tj}sgvL40b^?g~(WujXinc6S|HUI9Q6@O5@@3|ztzbrgMUvqqwks>9EbejnXK~haMk-XWN7&fV94mT3;$#89f#I`H_l@4iMJvB`P5BNHeIp+{@{OtbLLi9?!hWPSd z2(S)h!~MvwvLOTC=VMGQkE$b_Rbsqb}>1FF1p7rfBm5 zJ)9L;>&0D`1xZ%wNAbjY&G87Z8!tizrII4`V)$!4ieY)Pz*7nYTTsF9SD=!QF~S{t zE9oqG8kcujZZQ`?@pHTL!8W{xhDTbGv zwSkmJ_$s&n*{cgwH1w-zxDY`ad6ASWC``jm>)hA@1}M($&V@fGkG%vL`rJ9LzX=Wz zKf+-{!};JIB%e`$1DzYY`vFpL|#2RyK49!TC=3jVP*2IacJM;QZk&TcJ347v^ajbp8sUV~7X zWm1}_C3XObG7Y9fA<-G0ZDClJUjpwB;F@G~C^?Z2WBC+hGgEPdGR#^~JCAUt4txMg zfQ|?KNYJ|&6e(8wa=|5VY=M#p<1|4(7 zVtWEz*i+3BLe!H%zJ}R8#DzOg)P-oYJvgkBI9DLmwtcnQ?Q05A!rkqD_P%&N29}eb z(p)?GfUP~f!7?E-yw)KAS)Ff(uRtOGI6|cJN^ufri<;Rw49PH5AI?{~b)>$I!mF~c z?O!c5ekn3nLh{PZNo#6ch7w(-Q!I|F83LO_?x6^%7wyLRV8#|b8YF4xoe|>836bso zX4DdMj8fxDgg{yzja*}|M4%!TY(;PY<=*S5_7{{J;Oi=a51?jv%L>X4Kbq_>2s^M( z*K&|Z!VzxJlB|QNtlbJZA50+1WdA|u?Bp*ni;Y>v@WGrO(|xA3byuk)QdNinVS;uZB{K!tl#$&c0vi9_7 zkl;Zt@nGXgfH=Tw>`O=Cy)R{3?ErgxKH90aj~$>ddEt|k51d5R_OOFjF+_Ar2`SmZ zbqMjdqupzn0dF!l=`5SH$`z4Cl&Ab1e6Zy}_~9@4?Yzui{2!I6^FOWUfu^4OntJ|M zT;`H#^_*kd!K+cx;5B%xo?6kUo`)PVy`Eoy&^(Fl;6oep>;eCJzU;6kV_hDyNTFu% zIs(4|k7bY>)EN&oqbpJjO-v=nlYCTqBb_80uIO zt0MmEBf2<^xfnnE8wCv#8k0o-HdGF?1Veep$BYI@&J_EGoyK;6Tm-FlfSdOdU4VFL zPZ17+3gXo<+DdTJT^L;3I~+i>>r@O2NhT3{*^YcV%Z|Lx%I-!zwwhEov6wgF(KFhG zvdy3b6uLZDI&3jF_HQ7#P;}DDNmpIkml^vk0!tYmve)APC-LjSLr+|xC0^e zSy-RA6OLd#9?Pmn+r{c3x!`T^_;=xfN&6^X=zhU4-oe`$2K`e~=YqT8t#!NMPf_o5 zSTR@sgd3nQacV35Y83eIPu_!m@H?bdZJGl^E*trbgy}&*(#Je!99^TU)*sG8xHOZ~ z*a671yQ=e@aWq?3eNK20!gRRE zi;(N7?iPL?DSL9^!+52VQr-7*h49Bo@Ou&BzYmY#{dho66Oot~8e)+z{ApZd&hbHN z%>Pp9GPON2LgLy2Y>&AScDYPjDi=aT_2@I~gsFrW{s#aJdaaZ4MTv#>j&%{<2ZHvb z_5g}VW-_;_eOZV7noiGhxlst z0G19v?UYybV!;vp)eG*&V^uL+$zneUH$(%&o!~=wj&q`;>cIgqUQvRpkf0)a8EAiN zox%T@IGrPEa(A_&+8QJZq16|JFG3Pm*%k8|Gevj+F03=jTpLX#<2QBg6Px5@nd4w=E^syENI_B}@DVYYRiwe&U9=VYi#{G&c`G<@hxB@zc} zs1gknhZ@?3iW`t@&yEU}7@ZT&v6k*Py?oKdrW5-k050>B(}55At?~AR= zI_#=grJOs0DH(BbgTG@Q^wv+9_k6yeL;pegUF<)H?n3_|H1wZq{u=#My42U{kk z#;0fOKZ45Nvi}@8jXyi~AL8|V|A_~LUFbib*lGV+V>>cF4fy|nbllxDF0M~phCYe; zBG$n^i9W`j`Cua5oYrX=(Co%bkgtWEyG*8bsN=sH(^#nB^t)6wT{rkT7a@;Ec)iDV zgGsIeF=quHMwNrZ5EmTG`LBdOW;e0o%bD}1Senk9?WIrW{vJp)zQ^Jiuc@%L^8^t` zrWbY0^eJZgJ~J_1Qz6s8G80w^zKM5$Za{57JWlWseNohB+M+HnTP=tWt! z7v9H^Zc-7DEt`ugB0)|tiE=$`sIewyJx}u;C;5o$lza?wf*+cE^qG9F_4T+s(ml8q zX~u3wm>pnF;Dv{w^x$)F)eh2@krY!S2c`yyE;D$#Y_bQBprxu|v_+2wRn8!%zlcq?94WbK!^q0DifJA8AHkOq z;eQ2>7OSHXveZH^=ihwSF%ecy*Ge-JC$_9(jP*Y=Fvj|;^g(~iT3(mMy)D#PI@p;k zroV*^4!+LT7xpm5Bgk$D>5C@fe;k1u^>KN34+_Mmo@uR{1RJ{YM}QmFf6H zTaZj>3(|t?4D{+29(ijqat%wLi>nO73#lEzdNnn|0M8*E*G>>9KLd7DDW9TDFiy&w z02UdgAdwmeusw)@<_8-nslS1QCnm#KM7I2&AvFr7EM9_APX?Zuk8elQc6rr; zD`dN6SeFFn0L0Q_dBs!lyvHa-&2w4f>5~cxH z0|QJZAU|OTx-{-U8BA?Z-x!NXY1FBWX3PZN+6h$Av_YyE1nDN8)=qMX{%cg$Bx_sg z6tdGQVN}+rh;Orq$b$}+c)mjqcJGLZ6UbQnzFi@qs<08r?-I(oSUi8mq39N`x5*D2Bu7$qY_ z-EBOMvbJL3fV;uK zy(WRnK^?daoPJma3HtHhjemCd-SF=&T0M*+xy_t&C&o-2kDFz6xpP6cBam8i2&fYLTcVTa)X3Tk8}G1r}H zQG+2Ev9HCWHb>vPY!<;PiuptL+@5^O{2@OlKh6B1Am$H!8SW>(6eOg{3k)E#qn~Eu z35r;$1Vp#bExB#B55|XX=WXgSaf$6iPaZ*u?L&58L#o0f!;BTP2iWcaID8mZurhNG zOUhIi%@qG0i8rMgoYnHdpaahLN+^w{8mSTwS^=YnyfJz}laNMISK~Yn*`Bx?b?(dQ z4)lcx82&99A^0&|NtkF9!9^@3H=YM8)|QoWTj-E=M_G~de}d@R{8CQVS^YzRbG19| zYupIp!bs|kc;!l_#0E0So_FvROMDyYe*;|0(&$cFlT}6LBt(gwTt6j;!B7HU4dq4y z#a>|j-l!IS>+%03RLBF*v!;*}U2sbHC2-t}|0?|a&D7hlE-n3d4&O*ed4svQ{0t=_ zCOq1Vk-~A`qeuIJF_fCAw*V;nR6?k1qJJ%t&K(+X3K)9NYXG%}VkPXnK6(jBF2%0Mk=Y>C+83u2U} zNahoxG)LJ88j@G-j@maZApeluMxP^qp{0>!ZqZL{5x&-vs_PyWd!Cl7+3F&$3Hvx4N}$i3_pe--DiSLjc(TN zaD^-E;I~N9_#Gac2avyC16XM8sjy^+3=2fRN7C-OqYPN*5SEkicSFa3 zVQC&ilGSB-C+fV&;W>q=X?jc=AN!}?Ny#>l$XdvEYa?O$Lx4E38NH^v47;Ix;WlsL zV)$Hcb-Bx6)8A9b-?(YjPbM}Yv@e51b4!`RZN-U8q^Er(PF2ELr&T|yTqoJfjUxd! zxEHaKu-rI-{!hYRnJ+2uA_U=M$GRE#oDX~)e;(2~{ve;)BPJY5X59=fR!=c@ZscVz z{5*&kK8nXAfU{ATcGv28+5GL!OYDf3mjol-)qdL@@RtH`bvEXT>T+FwK0=J8+&dym zxzz4XbY5lH+IUSg-v+YgSHzt3U*X1*ScH3mEzCdfK^(M;OMu!IL0LDi$F?Kf>|^(L z_xFU~mpVk-(%IT(3qr%1gorknmXw z&XuKzAd5V*jaMP00f7Wt@<)~cqRbd}6rLmC*l-}TBcB3~zW7(8+5GqF|Y;a;};tE98_jzQ`i15)F zQwi@6e+q{4U9i$PQ*2{seA+bWOM}+JeL9_k6TytRWyXS1BC;_nJw7Y4F)N*Z>>G&6 zCIY88`g#PkNyq^Y5|TUL;c~jx;959{vFO_#eP{$5BXnJdOkoFX?-irmDg^6AFCNWYDhXbjWE)Qty#^ERe!`~nDX zW6FMMr^=$TtS@p6F^3kcoNIGR096hP(q3b4KnRL(EyKCW{#FC|@Y=$cB-8VHZ$?{S zAsFK}mn}T1glmxzV`yKtdU`2S%HCECPX^s{Vv5W)4G$|o`y&l3wO85soWBlksF2GL zd;pw{ReZb^a=NE55MZUk%NK&Tz*`7r!4pkaWhB1Ktt|)}fbL_B1jahz4sT@u7E3%X z)BBixsRPq7-6KB-IA5kX_ajU(?!iHZ>S2Xa<~A&p3w}6vyxhjg>Gi;88N%9;>&`23 zxx65kSLDnof&#RJj|g8wn`1vNIW-5%?fsS1INu}725m-PGQ4NxDfTup8_SNp5kOo~ zt3-XwB+k_nZC6_viEp7+oMS)tDijq^FJ@VAFUXa;esl7tnG%s zrhfqb@g_u*@}p#^`I<2-6p`Y1a7w+5MR~%KAYnX7?*>r0Fgs)vIv>~CYangNvi&t^ z=CB7KD1kf=be-kqa7L7xg9kZk4tD;W`l>BUc9?0C@5vXyalrK#AZ2Y<1M5&2jokop z%FE$6-q8x&2^SFh`w*&q2RvwLz1gc~s`pW>RZ?&1fK5JGZ@#D0I}Xx%(;L;BZmG9p zy#Qrz0sj4-Qu`v5;z$mmIe33{E_`oW(WoO1dL~4MT^l`;36?h`tt;z8$q+!vqux?-!|$;u``5?x6}(=uvc}#k~?;$gL-6S@F@qFMZnzBF5z%e*&joz_vK6Zdb#8Rqk#Yt*O>c` z9y2{xDc|SrLQWi=nOfd1<~)d_H3~7<8iI^c{_?yc_?$168mNldsZi6=j(l>BxHU<$?CdN zJ`Ix+s=bt0X4U3OZjP)Tk4c%fFm1f%kF+VBshNdIgmmPVzRW;harAi5b1JENs#mqq zvb)r+q`JU345>~v-mugSuHFO4)DD>zBy(HSTBV{emjFvLNs5Ss-5{az>zbGA^ra)q z=IcYkkJ7*fY#T)zhN9tu7`Jn#1p9)u?y{tARcZLr=r zCHyh?v0iMQg$@^`=UUUn2!A=c%->vg^+I;_rn=#?$*$f+cJ*p^npK(w*)=PcT{}?i z5@poP@~coPjA2K?Di!*?DajDjCa{HYu_8XBDMrIr~i0|$zl^cF-|RjYH)y+A5Xln2f?BUZUMp39dsXA(_r$23#XrF z*&Rn%4n`9|T^>}2>PCdm^~P{dh>Fx|?VX^2Sy+_qn#xE6OCsJjq7fS;Tx*9XAX^Lj zWSlp=OkXeO%iqBjGA-juQ-)sy0>KCIsLi$$k7jQYi0`9}+8SFum>GHgM!?|_6h>FV z@ir_aux0WB%6X`lL*U6c^CsZgVR%lH&K3$5CrwX z<*3InXq6Nq)n`qh_^4)Bz$D^m)UcX^;}|$V1j?Lqx-6bUkoBZr0IIGhDG}~Nvbn)> zK(Pg-HJotS{!s{qWdJqJ7V({_gvrfCw-ZV_s@S=$3bi&z-*OZ>YAyd*6w)0&1B`S@ ziOb-yLwOsU9~w^{4_T7(4@JUB>>3dhQPR}uh&w&{XeseVSBlcQZ6icK5AY|~VN;C0 zPMC#z_C)+BC>3Pqa0)h)vl9XaD?q=;E9;L1?eJTRf2^p;eI1+e9+9OE+&2z4R;?|} zQLS|*9K(TxV-jecfdAR>^T)XZh9qk%+D*2GpxvGhwDj;qE_@l>j@Vm?X_cOf2wyLu zkD`J%pc8fJk>QmQm+`1ApK?7~oSCcRQL)x7L zr}qBzAv8?fpXky2O+tzLlX%+t6GNu;CkD>gp9IFV{v=p71<5Ae)B97B;@SHX>p!hO zorp?Fe>w?{UFc8uBU#j+Sh(p=FFH89h8ryPDaWVQE=Kdu+G1KtoSc#Peu1@eb06mU(yPE!VrvKT_3Wt%6 zV3KJ~5TR`AYQB0it!;S20tlt{X66kH_^W}mmJeeq) z2@nSYqyVu{U5f^aEmS2qIuyZregO5oigb~460~GGDo*bNSD=RV+2Lsj(xZ0|fTFZ? zy%yzFH@X4(u3OK$0Wfu|*SHjZg35PT-o1uW&c0dAbq=$7`)^LFOq1CzSv)Z z8G)ONI5F>IiyApm1Z=!mkXR8c_3CeM0<6BcToc&`WjKKgY{nshZH|Sud@rFTbz!tQ z!W5mTVKQv^z8C-;GcR&?exjzICu(#*r`xLRJAI9n^g9Ohqn<;`y)332G$Lpcc42d(re!z)_$4c>0`bg^+0>7()9~W(7YWGxkH%pR4 z3}!cN)b5^K!ox!5nuKq4Uh|t9ule;_Bl}NZ^NTSVQ@qkg^B&V4&!$M2-U-$qC7Ad- z)0p^G>@;t-o0#Wi>I>}VEAfVvpu7Y0EZkVhGk5%lOmM`$0o8`G!W_85E;}pg7b~S- zNY45Q77z)#fh9AyMW6;GdaqmG5Z2>d0Ro^!F^QB{!y>Qo3is~>4octH5e|FgG6Mv? z-5pxD8g|-A5zvjq!vdnxL`Ld)xukye^_sG_syb-kxNtm0R*sk--O zTW=!fz4_KH@^)Ld>wE4$1>NRyHZm?6_gzdi^pumL} zMJ1aPID!>Thl!)M2iHpYbIL1bhquS+RrE=ETzlKR8R-G;(Z;=2mu6B{tK};#ml*Og`rOHuENn zLv|W0&?C71pOH!QHjYz5>@`n-G^hpZXdWzoa6P$V%L<2cJSPOZEla6a2 zLZWa%DcbkPwyoV{iP&$@TsNSQF6`dA#-TO_Ureim;(sXNyJG?C{+{LzN<-s5^Mm zqI2DOH^Cm(oloZiI9+!)Iv2u;dHbT9h6c~oKE71A&K)Y;G&K9%4eenbvP=mo-edxl zxWd9%@LUNim{NBBndKGezV3WFPv2k;endpXkq@C_DchH?u69fLn_xosb>OZFiI9+? zH$dCy+EMCBQLdE7S{Ak`cqi!>L~voD%^kxU8P*0%Zc;9sGnec3c`Vmsxz3y^<$4{< z^-wOh5~N(4`>C*Bz@pg!aI|FD5I*lKC{D#vPI1DrXMz))Gvk!&>n2X!#Hl(Jr|yn8 zbpt1?*|+1AQ=DY{lHT7}w6RoODELqS%v>U4eH!D@D?ziY=MK$YQF6;`Zv_eAUW;8m zt9l9VZR~c3R*WpcXg#u~`XW6-;O~n>^&mVA2&Nd#sl8ZlmaV-oeCyPxyhhdY$|$v! z;g8#sgw?*N3DEJgH=qpL*wjUrK2n_4*4j;u)%Dd`s7~?d5+z{=flNLRuu_;oh%pZ& zfPmPjogV4#Z%^mc22BlShkt30%G3tUl?}7Q1Nz&bXKPo5SGET!js{B648zBXUD4*1k?W z>qagdh0M3YOQR~KG#959@$ts+);L}?Gf}a$e=M6k#0wunbZk2oS;>hK=QgmdiBn0n zg@)PYhTrc13)gv4v_mhD(VKH5T7DKbTYF#k5&D}e%OVUAH&|R z65n;|&H#NJRBG4>_6d8LmPDN{BQZ+KCz-SAd99UseZn>^H;0 zL{-N=x4$pvmKT*W=R9_YJ5b8vIat2Komal23|Z~gE{32S1=lR?%a>Q4CBhRS>p+U0 z0+vZEYbE9_0}+48&}A3=>(PulaCA!+Ex26D=gR?>FL5*T(!Rp{Qepm0g+=E*#-bM# z9=oHIt6hq1au!!!d7hS)n^M-wos?BHWs&k_11Og&aJN!nx46KCC=kn4D~H@gnW4e+ zfWlBAGc;QqUIthppqP2=4x>Djhq~p|W4=~~d2V?n<}Oq!^7KhWu2#;aB69TUImxo< z*_Fc`#|$Ug`EZ@SLDzvcc%bqEO-9-)2l`6G4_5`wDQ?UO#taSo>@im!neW z1tZ)O=P`l?I$frIp>6wH!4TOMd398~va+fp8g%st4YWnemJ_m@PDk~b6%tWMm~l7E zwjmp5J5wY{n?{}h$Zp=CKsPVn5kbSW?8Hh=j76 ze6Rt=0j9(X+qvkfI3AekFP9|(7m{Xl_UZIyl~~ytW-#n3n8)^-M$mxXtS_X%;t-a9 zP*m$~B&&>se;}J4hT^x5gvG(gy~=JfK6n|)r*|ZapA$zOhoz?+$gF52TpVW`30KB$ z7r+mReIwzC9o+{iEH><`340_wFO}}n*qus;PNTM1#~JYs7I_!&fuM#pK*p@;zK70^ z>k=DLe~kFo0JaX)(Zc9EkVWN0)>;PGJ6m%O-+}Byv*-Hv2-aK;Hg25kCi%<$dlk>; z01G&S0t!pq2G&3X%cCwTKb~q%mOJbw(4bcL&A3uVkdPt>|I^g)cQPDDiul%sgl<3r z0C~Gfa`HSkiP)QMj03M0Q-Z`oY01XfG85o(S1t}Lo;Q`A5_zBER^MIAs^Q!)Aq@!g zU}7&|2U^4*0M#&f{=|proj>t_zV6r82le$KzNoW&4wSf_vbgPB#Z72lv4ZLzMQ68C z$Aiq}dbKOe;e_xMpd8Jmb2201^1AiKPM0o0$?gLLag%5^hFVeR;nz>tl}ys{A?4(_GcVnYC}uhalA zSUYMWDFtp85F7zaz#!HFDUZT7+9Tc0wgI1}?zIcA07d2F9bpqLxhoUn4*~Ir&SD(V z!S=(S(1cD-H;~6!mEcGelAPE1j=@9kf)gE`XHmA9@;(O0=4^&q0N&60?6K1C)#o^R z?I{bFklNDli*TzNidj|oEBMT$DilDvFz5(U!Jh%-;|X=4D`54D*yBJCv3A847pD4{ zKBTg&`Yv`Auy^kX|2<8WQDkU*>%~ zYfF~9t8H0C+Ffc(;;wBe_20F&)a$i{&TO^61B|HEK0$ZV^EyYN)xKg{jR~aH#1Zv7 z*iMxipEqsB7%2m7M)0XNqj#6uY~Iv1W6tN;X2j#Uwi(Oa)ixX2)ixvU+GbM!=h9|E zP}}+jU>-&O`e&2{3Ct?g%HSlnwn6$+Q7jz+0J!687)!6+gwWBvbOc8d@{x?C*KR%(#nKUciFwyD zmR`I04^b=~sl4<8*T2WB#RuGnvx1|s`Z|67^#hH>AM9Ita($~a+)*+faqM@z; zFr;-P7$A_(HC17d6QFPxA9)hgHJ{-AMU#&n7R`=ps=**9_$MX+0z^^}5C;NS8wn5x zAhQh=vb4r1DgkzoarGB?zX|PTiZ4L$5DdPvq9Fm%kRZe`H^K?l5P?p7SV!qXk7*y= z8beB>5 zkr}%|xE!4=>Iz~n_bKc(+=9Ay)G3-sogR;*Kh&0_`^A8pT;^)RPe8qv+5QVyJw(5X zKzJoOzOcaVq|wslYA}lxhZ8{Fm`f*2zhM+BnmK`y(qjS#5o7>up^x zFWb*z_gk=bb1VzH55oUx9T(FaPgp-5V=+ra2+&m>cXs$~qMoR;PSO#0j2&B&I&v5T zRnJL!LR&m7Sx-X8faP6T#!5ZLKK3f~%(fG5CnF$r!VMS1!JeyYY<~o+vs)0J#Pp2V z^Rn_`#HH^xr*65fh(Mh#i0-m*0jjYVAEJIr2a;A1hUDl>h^##!ehssdG(=7VM$QFK z5!Ofx4#Hatk%D9bcJ1wwMWC;}TfBs5tSfbegA_h7qH`MBzGUVSxXS zbQ*xrF>Cb8l7@l>X?~rgNsWwHxn{ioLu4AgP0|b77bpHRNuQVLi>kab;A}CYb8+G~ zNvhPi0;m)U0u{@Ss$di+ew!rDH}->&N~ur*2Rhw3D^L6w2`9dbhbcLOxUJ^c;f}wg zjvZnb6(Y-A6kl17#aZx-wFCbbz>!0r>4%#?+FYLsy1oVNm*UnwcXSw`k<{7`jA~X2 z#_|Y{77NIa$zA-pv400d+)8van2iU{grC=a8-XFEbiAz4mmB-XDJdDh4&Bb;?Ff3F zKzOY8SWz3_Vw|GoJC zEdJ5;<9n2P;9d=?uET#M@ZJYi1)R^-C1@{vK~>@l>L87tA&@bfIvH|Db=P%(!QZZA z%lI!uJ}h@a;Pdlum?zVglOVBfV9PhE|Cg|!=!sqEUlXPf0Jf$A^9#FDQK1i}lz&1m zrk2V2>g9m@K*+^Lq!Ns1(m`}iaUg)TkN|NYfGr{c;y{4l!tdIM0|9KT%2^IKI}TzQ zr-0HlFqLq`vl1r$gmk=wBc9D`;?GXUOE?;Z>quvTPu|M@+G!n0hJ(}^g#T}-e63=J zYksLf*&7R3*yXh)y6yV`w*Rwq4y-jz$-(F;IWUuQYjxY_TSv`dCwv8Rnj-)v=KUx$ zRtS7ZQe<+%Thi$m*o`Ys#*oy9U~2zTg6%_AN~U|#nHadUOusjo9!zIq;LMq*lu$N) z0JOf|&^oPOq*hcfMw00(s$=M5o#kXt?ZS9bl?}D}H2Hu;NJ_^dvS+Lx`QvnKw-GGD zGR;VN^pEW6D!-%?k3N+OAoq@Pe_mQZRRhvEB+Ww7AXUnJNEesF78_Yw&|x1lDytxk zGcsI|yd(P;B>TvQDn5LoYj^A!)k};|TkSNon(+JN3ztp&4)JEV*Bq%dO#Eri{Q|7hGiOS_4DNW=D_Xt?sBk&0|a`9FeRH!b@8AJe^=8yL97NfcvaHQDb! z!zkv+YK~R9O`=&Y>yQPOn35+d{T=8f>C!15x_CE{{KBuGJ-1;!EffBQE-Y(g!uoD- zeU+|L=z>0&313Fn!*tz4*CTY@OV^`xJxJGMbbX4huhaE;y1oI|bE_~%;)pIk`5#nX z@<&t>01+j?t!-%&;5X+^>sjs<6`+rWWZG}%Em2Bs2 z^~vKM_C%E9-IQy2R#w&eo< z`s_rzY&Zb5Rl~h1zKe~1k-pR)_dmek7@CI|DhGW?-J(y!829HWuAg!AX_)Ne9gq6n z0X#DPT*P|)IJ(Gh3=}5^yYq54;skr-1UquR@idCwnyU@x5|qm;=VTNm6L=hQV@y+f zpn_GHV-1cNd1%;$lranR9Q!iXyAW|FX-*69VUP;C;(rlMr-c$T{V)~47R~^%|8EHn z%5?vQZhtp8u{ZX#yA+Pb>1Z6e)s9b7M0=tWiETLBJK;S5?+%Hqv>!9 z2}2N5$Ge4b!$bs_+~eF*&VYlYik9c>CQ~WC{zByHu?v972K5)gThP9E3hIxM2Ybw4 zL9NG+0ZBdA(18_{FEB>|XEET5NarS>OfYHNdu(tvQpRh#3sD9DV@~?_$m?M*F&nG| z3a&J|p4LEv(6WNtAQ3B%HK1nLtMP)E&GLJ0x6tHd09+-vq9Fm(=kbRDHZiI-;XH!A5wCljGj0jUBfW}_vUEXMI^km>~a$B%H*ml?{O)@?joK2yw%WN{4Q_lp&H0=^Ce`gCo)=77^C^ ztH3Py_2S>dKlQ_L{Hu)6@Dkc(2>;X#RgNU#RfKcCJ~jQQNw4xn(=+UF{O^wR{Ba!n z7rft%HqS_7jbWh=qM&oTY515Be`fv$?tON>>O#GfcY<2q1eHaV7MTXtmatpqN(;$Zx?@qPn$+=33bTs= zq*&d(?R(Yc+Ze8V8^bZ*#xQ67@NJBl&iZv*BOT8Aam`{+l!Cg(-tua08AdeHq@eas%=#D`gxvwa^b~89>d6Bw~ZLdk!M=I{jku6nX2U zz9tB|@Gg);(dV#whZf~XH^y$LpU~C-y?_LU1X!aS{V?)iZ|4&DK>+senIjp`nS)n4clwKMWlb_}?hSlb`>yWULA6cWU%_riB; z%$K*7;NHATmZNYG`P1FMpKYqAgp$kH3#eMN7`L@v?W=0)X#hO<*K_y z)x$Kls}D^;qF`Zn37|%R>fgg&Q70%B-Iv+J`ux8|_pxNV_8NJ%`&hDahvj{2gXwCF z6JT2DPR{Wrz%H2y&dc0J4iww!B>L;v{b&I7r@oXG9E;j3_2)tLoT73I+3SlZIH#Hb zb3%YkNzur%7+AO-W^(6}uW)Ijt#yLOfgMkD@Lg6ACfTvb9R+Z|7heQt0kT89>fQ?b zr|Q>zR(^pshhqVP;vZ$lVaAuK?Wy{?WG=5nbrgZh1gCWq=!Qn?iy}&?dTBjW9%SSm zea=}Noh!J(k>r{S(Z0IXwTB70C=N-%aut>hji!bwQ32yPg+8w~-L>;mm8_kHZSaV8 zx(zPdl#2SAjH}ols&z84 zFD1{NMQSPNYvHfLZk5$`Bm(BDLIbFpXi%Q>z}k<6E`>2CCJr?6S0f(B+JAN4_`Gmzf)%2hmFL7^cwe8dMHj|MOErkvGRnh9X|8g*y{BVxSrt z#+KJTOpk47Ruhs>Xhn@1_t(j}9qh|oi6pgNWXtQ-4ey5^?g_l=drB}1MF`sruWkCe z3NHh`I)-3^sTbg21TTw#GKB+$1lu8hA$SjxVOK0KI2qIu4J^e~IO?+I6i9Xx)IdIr zs91^SVN}-3kxv_Nw!Q;xA#;h(*p~Gnk+;P#xi?9LJ&xLPu0FaQoSYg0b8_vMY(nGu z*}x1tvO~_XsdlFBL(6u7?!X;`1Ja4m)=6m|_f~Mu>Ncov7!TPT_oNoJrf!SN zKDg|S>+Uy5{z_D6X8tvLGceJfJSBK>84%a#wy0Ft}KYIrKtgn0Y+o=knRyMDH8^;EZJ@zTa zsGA2!g9`d+a5*0>R$>oVms_x`VOfO_qi#3wK5pDkMf9spuL`!&-8yHD?{_ zWLrP9?s;`&6Y|Th8@8%Vh;2R4^|L#7ZXW{Tb^M{ja8}zrZ zKONi9LVZcw&~}c3!T_5R+3;in*{>8wWJ8OYMoCOHxmLv(DFbeTPubAYtNK93+Ns?$ zdrPvbh+&C2pQ8;e@kp5sQMcj#+vo6xp~*D+9(HKyrLlbvhO3mtPn!*UcfK4x3U%6i zbRcE)12ynZ$d|TZC+=!PEA@XaHngn6huLghC2Z|kvEQ^!j8Y7xYP9MFDTO7!(h==V4T;8?x}0= zpJcrbWxZ@kAXpU3-Bn-x`K0t7eEn-ZQVJ?+mm%lNa;v`K;?v#OB%k(8#u(4GuOcdB zd?go~r}DMKI2pf#C?1O4=yTu+UTsi#3TayP%(oSzuQJAfr{zrUMvAf73~3W1@Esx$ zeQhxYv&wvr{DX*vuE=mF{@S9X`Y!WDOg8=9#AOQ1i~5K@uhyH;0+= zdT8pnuV!Oh#%t4MND`E>m`OL=<;^XIn1dw@jPdq))`X@ZyE7?z!i&I2EqdZ4O)Q5> z)D4WH$3&qII@USpgH7BKJQWR%6<|EetZhnq;O<=UYBl|YMg1UsIa{;%L;^l1o0U5kOjZ$XQ}eQYmBC_W-A z?+JXQ178|M2#oYEOGn^?9BmQ7X^idBRKe-+z~ox8NDR()sz+iX=&+fa4g{y{l6*2n z_Fy5N1qB~ITe7kc24vZwFdkp8h)7}#v`4HVK>?TO_S8qP2x(7A^B72j{;Ln5p^6h zfWI;mV2TDggF;7wRf}G`Nm&D{EO`enM7{6l1#xVNI`Ya+`;?`YwwS#xr=Rm z+Zvm_^R|Nsr92Z2MH~oV`GiL~iA8SfGn4~K3*hd9Q}}@@4^~*3n>Y4(J#!rYGQ2&B z!#8r19GC1nXkR5_GZp4zfdrOpJ{D*^{|Y>Cy&VcCXeCCeb$VZwr7N?FczfaisKR} zbK|d>RM$U&5?q+&y|4gEr2cXf)miA2g!0)Uz1f)%6idN1%Frd4m#FwuA#X z1;?@hC1!$G4)?K3X%Six;NEOP8Pcl|RO>qYXePEiJ-E z7*~2YnI^W=?8}bbI3+jpj4THj<{LQ`4(7!Pj%>*MYwt!w!A&r0K}c)#H~=tXLZnX| z33407rjcl;Isc_-+0liPo)p3zqN=qWkxDO$vd}N*Z(;ghpb#DE;`B$S(jSU6O5vP8 z&h*dzx2tCxyLoc@?3y)ov$0u3S>?c~O8gES6Qz(ndD0I^k= zGDTEw#wG1Rj$K`eOj*alsD17n*T)L7>gtodI2FfHMl|^r^a&hv%oLQKIHS_BoA)%-AZ| z1!L^Yf_=;fI1Su{Se2NMzK_b$cI6NFCqG4e1bs@vUx{}VPCjDV4${VZu||NS7P?J)0zzoQXzyaa4^7M_wf7CX@xkKOrPI8WKJh6zfwYqt>knRh51j z6&ubepST%CMDmFANai>YNx9a{`e&JQjO%`as$q-$>0aV%5Zgi+gY`?oahYE*$K>-tYQ2= ziT|`5aX?w<&DPO)M{)#Si*&sh{~JxX_9K-$lu49FQFbXe~-qugaFf(j(HPRmNQ#kavggAHim?2 zX9DIn-iDl8qiPLoBSc;Mv8fm@G&;aEIQLR#n#sz-r}g2ii)ntw_QZ2WolPBUcEw zAR1e~>m%8H650yuXQ_$y$bx*ZnLxOb>o@VJ74Rhpt|JY=5cg8NYxV#?@+MuC6Gb!n zv>naO)w2F;k=Eaahxs<>tF7a|8F!VKMCAJ)!}rgm51Co3M3zh{7ZCBD(Yuh&EHe>v zY*WU3Z+b#1BzzOLVQ7_vU}NPO(7jUI1@V)Iqd!=FI4l~rbk0hm>`9nAghkP&Z1kP$J#MkK`w zvb=R|dC+)RktneUl*ai8@%*iLrqYky3>=K8ATR+ET#HJLdBA5{Oe`dH%igW7jz&1P z4c4t%08(27gFd|LWtgeroeMVMInER!%Z%)( zXaIVNsurDY*HF$*SAx`z2*ygtQr6UJTp{_;*{0QFzjQrlf2lPY#=4PIWkBf-?-YWY zx_stY>aua>xZ%mDm3@^jazWm^n z@cD>56yZ=0+TeT->E4C#Yo>&si7?DftheAl8f>_?zAw^0ybJwD##r4h3b$*C^F|;!h7A$R&{RpC z66gmD@27-y(g|=U>k`;bVFrg|8c-(i?T=}RVf`454-^YE)pAmDI{^nHu_ch-1ecG% z)sulj1_FW;OrbmhT)@^J=$Z7&JrUh-hDhbQWqteGF+0YDA{{WMT91Mb)bAdSWp_W$ z#)vSMI@ls|YiAkHl#cIKmqtQ^%!DIzB4uam$Xw6o`?62CC?%4skD>KD$|KeruRqIB$9wh@yT5{gCA^r$u|gvEG8XBC+b1gh`l)^i1XbhKE-meW%pp_n+E z72;9&SI*XGu1SkRao@AZrPF7YOVBxTec4Gbl284WQWon9=c|lbi)x@=7D{Q8Ett1i zr{aGRsFs#pl+X9!pHsAS_#A{CkFay_A9aX{)IgoH8($NH#>Oj9KmRo#gWM(kcI11E zZSP-)Abf_7sfvybk%4q>ZNd#?E&pi5mRDZxia^q^l%06Dt^)Kpd1aHK@Tpk-a1i%itG0hzW@Vb!}#IU_2odL5ZUywsND zt(AzHc5Pqf+9~_|O(t`MHAStUenlJWbMVIaAbVqpoOgt*w#g(t8T{?l(sCSD%Z|!% zS16g5>Sb3v6dQ+Xj+GyShho7}9p$Bl@3S3dT#rpw_`Q`Zqv% zj9OfJsVh^xJW@vX!ysY~9o1eG-2=u&tmGcBZ0+Fmf}bo3u8@tbwufB zQooPE^0O2y7!(jm#vT_z`t}TvqJtoOpNsTh!L#v->{^bt*1S@OJKMV3s(&pW`aq%S zzh$_3z{imQkJb@#_fjRaYXjk#U^`pJ`|t`l9UlidASrQ|eEKVZ$1^vkx^C*42YzWY z3CsFB1UKG!@e%Y1{=%1$|7pIrZ58Ss-Wq#pD-=E$dufRkekbYv{ct_F@K-3I8GXaz#I}-`jQoy-&rl2hy9}Gb)#MM`1no zuA}$l*vnTK4d1Gyy7UYq06>aB0#{LnJ z<|v4WP%QR(W1P8~(;$>SavEgpEeN#nVH>PPy1_f}kgry`xKodHZQKo(-I~Yb0`X?w z+^rrF>CO~;(X#g{G4|rjzOZFJ!UGx*8n~|lTxx9SywnX!Sv^q_DefOc|Lvr>yR{yz zp*dI3`LxL&uoNE4y*FDg{Mqz=4B~zWC{&)N5|JjT)SB1@ZvtNBmG~+Tbm27GPH-Dy zREDvUP_^kMxU{6jI+HO3t-Pzv+ph2!rOc7^w3c8#d}siO&8kG2&(uV5sYBGZb?^Ak zXt?i@M>>Bapl9@xNMMG2wo`QT-#Za(wqg3a!^J2w*_6tRZ9^<(HXwp0M`9Vj`m$VD z;-~0wqZjN6++}(F()QkYe=qQ_zYzdy`TVvEP?PH3VI5h_XWZJA^rr!IYx3>(ynOmv za^<8B?Ozr!i;HX0i;JDdxf%K5^2(_yO@+v)P8q= zw7}!0@1GcRgxzFu=nv`$_QPqQirr*3eqO|Dyao>s2en5TL0xPK;4}fp4le){IsV=D zZRytL7;#Bo-SzZP+P_FDfL;V51QbX5Y^)u=0_BExvI-P)t&3S+f9n!`K}P`D9wM3h z{hy#^YQ^vmNp&4bSGjLjpg8_#3^s(Vb0XVXkNWVJfG<{~wseAbvqVT2zGa?{tA>UU zuZzwuh{*f?1RiQh)D>>V+6I_1*NV|TVG3NSv!1nE+@l3JJ8BN~cu^dA!>0;g=Zch7aSF^Iw3lRKnmr@Vgzi{YN7FYL}@;@JY(4518O7bRJI85sQ^dXJa@fbaq3wTlfSXDF}k6lx_Q; zN71#t^{vO%_jJRbGSgr1Ff};6X8b1I31IbQcJLVTVyUf!^-MbX$x(9&BKe5(o`16~ zt`&Bk_pqJX=RIsR<)FFY*(g&OHFXBc9D%wX<#dli#fdI6TtLwu-cBqDLQtPXt76de zmiCM-Ldy8&K&BcQEJ(tU*#$|vb`tzFid(!aX)GZc^S@H_Gd9l8)?_{sb}i;~*62fs zb_3W!c|&W0y^*E7>J0S{Y;OTGjxpt-HFrWW*cY)yeC=#-b$_mWo6_6M4XCTWe|RU5 zOARZoY^cWzK+>dx+ad5U4=c+jIPt|Y$ zHV*6YxY{CpYs0~^R3Y2|Fu~UWCceM;Wbnlq;JSP9FNX@?r~Y)A3<#oLo!aKbZ0maj z0D;FeBJjjPd6%Iqwm#QE-i?D6;njTHf=Bc{9%kgV=Mwv!wpf_-N&%_9Y7CfV?SpID zKR{X6cj&Y1Oj1nTXW2cZbnUZ6?WqqS6!&Aqx^#E-tds#s^cAP0BP$sqPUTGdYHd~A z(HOCMkDPSEkhRcuD@A6Hq`DB)EHvLX+284oO|36RzFz~x#J_+v4TmG2*~31{+WbJ= zM5wv`&sN%I4gQI|@HQ8?)4( z#-;Y-=J-FsCxjmR5%3%Ge3-Mi!S9hJJZ3r2J18snFdT!IOu%>vb|%=4w&=^s7rUbM zjAg(D2jjb8O~6gXnqSInp(7{(R&9PR?F}A8-Gajbvm2MdWX3{3Kc{IoSH-U#uKRFyk-c0P3MQl?tmo?gfbc?X<2yV`u8Q@I=sTwth%C z6TBYvz}n!Ao3b}g-D2lBYc&EHy{D-u8^=BH;EVLP3Uc5qRF$>SP|-K!HAjn zYme&-CeTK2!yUlD19~RTu1I8)DR11gYTRxTA=RI46h~;mO(;#^x&iicVIR-X8#ifz zF^2d&1jF%hP-3T%5F(mZ!!Yph3!XO84EDCX^N#%s}w@aeHz z#evmC|7S?plhY5Y_GR!5*J=s(UBKFm5bnU_9A67BWpk^3MzgiIARCV6LaW5Jeq8?_ z06sqjJ`ETGV#c9hxJGz8{J9F2$@=|&2O!m#9l6&AS#bMG@L2?B{9oc}H(RI-@8|gv ze04v(2Ne;OMh!kpIKBni9vlOgHAU^fRLB|9`f>~@tB^<{N2RhBq!H>9iRv5fq$46^_hq~BJvXuWPII*9f&jpXe zRX4ZisE_AZC6fRZmVi~GNn$t2*cdzI9bl+VMUiHV;ybtwBS4ZX4$=!^fCu47{-6)I zBNy2kTq*BxEo!W~#KOFP2Rd{iz!3y5cpDyezQv9-x&RC$TLFC;ePLOz4{Bnp)%1B) zA7_7FZ3{D_2Nhp*dbaSf1Ha&fleDqy+{>0~qDVJrc9x*34`PhbXHR5REPSV%$T z4Br}UE9ht8|9OpS@4F3M~+u`=P_0RT{G zMiF0M9Bv1zqIPUrSz;*2)IFJ+hqsWIUxLK#w;rM{k|&`&bAjUe$FNcCRZc5?pj(ImJ4qGpC^fV_qH=$mDp$bbu&I{u z4xj+Nf*exAH$h`gv6~z%gU87)5M44#CP6p=1Bp$li5$<$nL}NV{AScJ?dy>;_NLfX zo%E<2ce*wCBzuYn4Nrn5T=LA*uT0@CgZUP$d2!j@OnbtGE3L~l>G7^iVrqx0epbxsC_N{qqx3*dN9o9Ku5rU9YTPxVagAGyMvWSmB)-w8#9gB##;8$aOrpjZxBv5;Q@8K! zWdQT$`+vW0p!(ih%c-hUr%s(Zb*d`WZs3`seH}_yhtsjJ_7L3r7Z6L*jgY_20QDLo zc0MBlJwN^8cpKsw%(QJxhzSje7aW+5(bQKZ7qv>QfA^%9`M#Qik3;Brh(P%O5Do9ry%{(vBD0Zlh(r7W1 za$5)Sv}+j?9$<_c&`v=s5WAZ_EZv-a386I@JNfCpijN3ziW-}>Fp=*m^Ke}H#MG%| zk1y+#)U7o;p$e@K_=O`;ff4YB?q8Csenjf&-iU&w_pn3yMRLlC1g?V0yM=($+Xe)f zo&l5RD_|(7d^*jM^#s&1wH-S{#woLQ)(Y>Saz=VbUPFV6*=i6W*f&^DY^DrL#2p}( zTOF7?S*n*}!v)vgV8vUIn93{cY6@o<5%D^D1q;Z^CQBC^&C<|0JV9|z=-6vjuCB+?Nf zqPAhFoiWn0^ZT>ZX_+ffn6)5B!vupdKyIky|2|r@<5B$htUt3DO|}Wc z3^aT=)->9=0l`5C!v7nwt5x_vUznn8O6r8T3<6cDY+MF=;r?Q-Au4KN6{R$s2rG3@ zw&U5~p*3=BnA8}<((}atOAqXWBhXP$gmPt~x(L-rkO5Oc^9n_of`Qmtcq zO`-;4dyVRDfZIff(KpPerr0BDoym zBL^o}MWBPZ4PHiRH1R_vL8CV+$Q$d8v zN)n{#P)=gKW=m{bG*jpghR<+ige7c3^y<%}?yxVz+?PCc;-mO%#IdZ941B>-N`;$d z9L|7;SEr9tt^ukR38Fs)Q%VvoQI#MjMpeR?m749`jy9}{h?ZI=zV03HNKGj4e*}4| z|DXbYs;|{Q;@n9%+Cia&iDb_J-N-1As^>}$J8t$&&rj>Z@im0iEF%|@Ut(elL1=7V z5Tf6>p+RAW62evqGo0hi^I(@n7qc3f&q^@m7+I^?$Xb1kELPey-m==E80^kQ+7_ejTCBr{vp+`aHPl!$4m`1#YCP3zl~lia zEr$65|1SDtGeOe5o9&?b`j7>shX+5igHN0PIdm996MDNXOIi-sj$58XJ0T0MMgn|A7C{j0!S)K z(U|x^W6%cU2($&%F$uG)q{%%C0~k8N&ydVLm+zSwAUpR#d}FO;N>oO;+El;5d>*4J zhHPwr9EM2V!H>W1dE<-jsTgeypP!!|q7?cEC0er48BVIiYuLPg?axXM@;gCOIJ*oH zbLXKtb~k@RPCGoL+;(MlHUrORT@|Y1LzUO}eW4)JW3qW*fMN zGm$$HzZ&1R1~DDt+gV6mU`kEy!^kv}g_#>@E$KdjXB3gEu}(e%aWQE~*g}6bseuKS zKD@L8>m+*2UiBsf$}-sRHkrdy0f0Y4-I*tx;pF1U?J?SeGOQM%b<- z^cWQR#gT~U2BX7!e>8VMq*p0>78bmq_N>#3;>z_|2=ei^8 zF@RGTRj^Kg00>DC0!mf;FA~^jNGTPPEcL=WEr3~zD2pSqyLqR2d^gr$U|a=56gypG zck$WeE@88hpG-l;V#M1iNDdQK%EL9O#z1SqxS`QK4&J7b{#2%symLQlt>)Hp?Gv)* zn-=r?gTF%#BHLx4I6IleJh94s9JS3|PLJk4hb&7hC3Ba^_w~K;y%yAvyHpb7uD}C4 zJZc>R_~hYsH@zfb`wn)ufazvpkTpZ>Zl+8o-CrOVki2B9ei8QwWDoNhjVCz{mqf#> zVU$AOXb7@oLQ5CIC z@-!SQ)Lf41eLnXfq#Ghq;HGo19$(@98c|cpnAUM@Ew=Ic{t4JC$^M>mm$%;+p(#$2 zvn#5^w`B2~@ZoCkBsj`e9cAcIa6OHA(UOq2JWIzEge z$TLIo--qKqPEu-W5!TZ3zH_N?$ZVhgp612slz{2^fKgsRvjpsw52*73a67JKpj~07 z7+6uBd@r}VuR?#q^iG;5#}D-i8Ny*xV2hzdqk#rvgxn|L+cf}9)za7k7*_{j@I$?d zVK9U+_$-8RwaEaB+04Lw3h*^v8eWVqUOIQ!7Z~QB*|dHgLhbAoKp}4$tjb+4-lR_UBB8ckT!D8N^G5s&d!rJB|jZ%5A_qZ$ojK?R%)DNPIY)(Xi^v(aBK^nTEJ#NCs5Nm(Pj;+LX{@XgV9_F|uqW(JOl6P$oA zPdTQbDqR<{qxF`vFF-g`@q=zY5wmzQl(6_3oNNbJy`|rW`^+yWM0Kh^)?p4nf{;54 zznFGbhNJT%EzzchkW@zhu~ExoTU!TXj~-!g428Des$<(ILSIC6&G|*C0T`I6SHgUs zR2y=p08+a04R%(eN^HepcV+kg*$$gZ&pVLRHFl`JLJ&|JOK%&C3v$xCc=0eUq9NI) zu}1eL;vDhA&VKL^o#4PkI6Ag(qSB=6rEwFLCNhdw2NJ?9<<7*sN(jZ&Kk`}1bP1`a z&`=Ip+_xS)t^(PL&szB4qP6Y$;MF;evH0b<)>#VgdZ`h$?(+^+g|x!YC8qWmjR{)9Ey$cU4*=<+*D=|eAk=_2vA%*EW4#BB&y z$b|#ffyfB<`}p<0cITHj_MUE}sopA0;ZAmUDZ?@UsdN_ejdcrKdm-lr)(wLGZNANt zh?VFfDr)r!ids=ZI2aI&to2qIS<5?nW*ckBj^$*nur(a{PM|F0!19=vi=V|uICmo| z3uB$(Rk<6;9Gt_nQr$PlFz# zX}SB>*{L`*efnjZ>o?_^3-FcRdRra4meyk$V4!_i&}^3F40;?_)?*@0SkVOC4EH}z zEc`r$pOZsCg~ndb@3~%LyPIgrez!2q1%;m%OA@v>Zk2x-bXL(5oa|-~o$`Wu zk`@-)7_LbRBGXqzIL_*ZhWD?cUE(jwyEC%peV^NWt(sQEDBz&jG zN1bW(pIRAp=hLHirOPf48J%4|HLB8OSBwg`)HCmJO}5j;sI`?Y*}RF0EM?MlD%elC zBREZ>rIkj?TY#hr!1Xy?EH%s&y(T8zRD@Aurj{HVt&F=&=jHYMX7lR&32+h`JV~Sm zoKo{8$&Rv&R)Jw#-%4W@fd)173} z{m4rvFPPt~W4gL<(>O1!P@Sg5fppCCG?Vr=FRi>F?WyI{9>RQI*R*FMiVfVHZD8E) z!H^dq=?>3BUS#e-yFUKe&Kb-AcXFJCCngf%zT;w{!PvEn&rs$dPwY08mV$>ehk4#% zY&Um_%4x*Kti= zKp)>{BDV1#5YgF1qv?E_^38PA8hRw$zs{xas<1q&L+MZ$CgpD;$r{}_s$0^WKf(uA zdUmWuw-D-vH1W=h3WCo)0JmxLaAk^J6O{*qyUKVPcfSL6pBB6|mB|1oc#E|aO;_%2 z))XQRpGL%C6?i5Sy~Lj7Rdt)s7Rh}b za!9s@XHEk=*-q^3za*SS-ES__^=^8&G$2opvi%Ry6{K;Iaz0p~=<@YY-8ZgVw>8Gi z0N`)kPECkpu0_s)_Ja!3VZO%dy0-$F=zO_P`$ow3zlSVY);fjtE3{4t z?$iDmLuqT>(?0DXfE|!~AWlM~X0Ar>qaS{~J3j`dWfOK_|20Zhxc_>})A0E(ZBYIS z<^S()xgOiGMTo%-%0hN3rA>T6YzWJ3K!z3bOpjD?2I4l90W4XE9S8iL4%dip{(&2? zft_>MrB4odRKEnJDy4c3-a__6p`Mi&pZ*^r{eREXZJ1@Qp91vSd+}p;^Hny)v3v7F zIuj3`laO7J|0)!6fb^k|#kmIm%F@_sl&)tQJB^`5GzNrRj~t|$Ic7-Nh-(C3i9PpK z<`d|v=nVOSn;y|7d;Zq3iqr?$a)vz1jb+#e;fcrp=;POXsOBeo7FXaOQU71?(J%K) z{rVLjnX8a*?oqt{M=(PCY(puA zyugEPD<1L!54O47TaKkSs~_if&a>zk+$$kPF-x?W4@g&Ij3|M*FChoq2f^ue+u8Uz8Y|ua+ab?!{6sA{EwR$Qre)F!0vz;e_3z&@! zMAm^FH<8Tpg0hHhmYD2!v$>>-`5Vz}=Qjk>W_Lf%uy;`^Ks==oBBt^AQ0HmHk7S-M z%mPbq=+10)J>1~WfTPBkyrt$GV0%PhjqzR!MrEFEcET!Lb90Y zz6YS$_wj=j__y=Zye9>~6rW8jR*XvG0rSnA(6-M+LYWT$JL3KY zaADf{FOBo12PwSd1;9AH&jjA3+iXqa471)O?HHhw*Q`h{0IZGCP>OE=HP9ooSyg6t$z)b zP0(&sWo$QG?8rQ z>UOl>g3%?LDS5?WzXc3k*l(c=MLxDVB6%y4%ZWekKM0Xt3t_$)^h!2>ACRwyK&F#W zeX-9xGMqjf*dUzx)Z|2cz#tU#qz0i}wci%B=WnIy<9*R|72vp_*&0V`VUzcRP1Y-$ zY)CY~IJChShsHq^#hXJDagigixc@PLXoeUrINo$V4wBGUQ$ktqD<~u^Kt=neq!7m! zSAL;{Qg1nD%6O^~Yi*($mrz2&uWH>nQR^=e!*Ze87sXp0e9>M5aX&%ahF*zY03%cR zPw@>Pz1)A|WrV5p#6$ILjk5K|H4%wwXKJ1dVHG80*jwo%b)@;$IL32dL&={Z7Z^27 zjk*t^JeYfLA9J6_8wRabO&8Y=k{YI;rswoW&yhS0yh!$6fV4(?XT<#+9}RV}G_>yj z#;e$#?8ge%d1s|QTd{k8)sflOG4{3fp_1_d&6EGb72KF90FZoaB#6E?HfFvdFUlKgZi-(Fn9dlFyG zre48a7+<0AP2+~?)tj;dp>Q(7(u)r+e_xF16i-G1+be2Pdk5BfFxwTw4B|kUX}g*7 z3P@qE%@G;UefhxK%@M`w=Ifvyqr$(b>@tz5^MTfZ_m!@%e9z8)4gk5QNTb<4=#RPI z2)WKe55SVq9(X8i`ezAlE=iDXhetfR1(EL_fVcTfL(aSG5RhzHC}hs@^%BTj&=Zu< zo1Eu&Ch3PN2cuv4@0}se0or!nMtR(C@Y4|Oz)~8vr|6h~r5YUcyy`MM(%b5j(sIb% z7kK1zES@!Jo%Nue5vjf6t1uYY>0R~7At~hk1E%m8F8+;28jG^>5^^KR%ukqv|Ch9! zm;FO||5&w=!Y3Z7oVJ`GZg;aial^Yj-GL|(Wc^mJ3QJHRE>(nF$QF^BD7GZyT#jqd zSR+y~lw71@PuS;K)#dU4_tNu`)>&6>5xL ziE#G&D8Ji;pAj9{+l-yIqDxaLzp{~XouI1o1JZeA{=7n5%4^OlY)mxDS%qp}#Zygq zT46Hb9VwUwReI+YZXZ0auuq~72zf)IkM7hAoK;95=CnejWt^~pI~z?Q69P6KwjKnI zDl7+#`6gm=u90q+asEMS2X(iO$-D)m7%g5=+OGk8O=jedhG}P|VA|T47AmT4MRN$( z&u}MR0rtu+NxNG6-#KsA_De5m}(278D?~Ej#*zyW=jOY?#c2vlSjb zf_+Gsi^=Y^1{?$9{+@ox)FFwavK|hP+C^D$8zM!KMJ%{t2`MaB>8Z&GxO8QPoK=F$(}4GF~5SQJjS_rk1RO3XFB zqDx`uk1cpFk-)r)$x@*AAws_QAuDA)RQWTlvgpM6qCHw!=a3KwHur(YFe|-eE1#1r z!+C`Ej8A9}hfr$l$)lGTVzpzkLizDdX)*B+sl_3sE`eE8TYEy{fc!4grbjRi+@7eb3HSZ`nq(lKZnT}A#fIZ&g>0y2)R zBTviRSm^gM{eE8Phpofm%Z;64XM!-_dVbp&vF4QyCt-yaQ%$ zD6#bWu=N&7+eUr|(hFWCa4}-QI-!vk&Q~H%Pj@q<*P4qNM8=bGaD};*L1aAf*}vdQ zhVQtkdPzb}cBO1+U z*s;$-Wp3y>Adrs((cscui-U8C@@v%o=-UBv25*g;78Tw#5+rf&C>+AepMq1{c@l#1M-?*+x5i7| zxLTe+@TN9>U_KH<+p6MXF3{GQnr>^|bwz+UQUnCFBh6U!V1Vj?q}ft9c_#Z~AXnPb ztQt?_{IKld$K*dsOY^K>_O0-ih~cY$kPX;yvfw2z@DS?Y%ACA_nNu#x{hkF>BN`+n zPlGDfYQ`)g{;4hF|@GudNbUU-@2wPvrT%MU1RLp zp1pOKfS>zSi4UvCAx-i3fceIClBt08*Um%u8JD2~5Wg#tm z8un-bbS^bfv0tlWce7T`4CI-Uiv7n0Wk31fl=BMG;%Kx6rCRDfOkw}K<^2BEAb}b? zsIin+$O}BAJ;*EM1s-fhQVyTed?eNUhr0qOE%aGQA1}e0;KvF4z~UTJhuj>$er0#F zvC;$eX&|4BAYHtc#T01CB}00*%no7WY(8A{ta`nnzq0G)a0=tkGKoofA-9WO`68Uk zFYO28L3?AtSCZHh(FSkujvu0_0&9P^y94}r4la~VyvU|1nhr(Mf7bJ*JM-yr?C7_I z5Q@%WF+^{QML!GnKf>Q&MCs8=5yo}7@);S}P||k`OB!*%Mh|zs!B2I_Z3dCmL}P7@ zSmMVn;HuVYC=BHVri!vcU28insE>ODest9siYKUVcAaVv5DfQMCAt25Hj<{@!# z%I$St1M4z#WY9qn*gr1x43rynoiVMjPxzI>2?~P_zzN+&FonR-BMJ$uCbnhr0=f1` zU06I9;`(_JaaDDkMdAvc;tWzQATCwsfw@66=g;k z(yCO_0tEw}g+>?Bii6ISvh>vDiAN}9l{+drifvt_39jZhL_;7}S=Njtag-3aVxDLc z@e4q|@eA5OGYRO+s4)!$pS!&MIYUZDJ{(+e)q~|}2}Egif|hJ&S7d5CBk>EHYp}?WShm3IXfO9B<;!nB&65H+z& zTdmw7Q9{-YxO||Hu0?mfMaBv46%pFTbp^r3H_$kw`V5}>^imcN)+HQ>=Tnt(ptzx; z5eb~w6d|)Q>_>Q06drCjGU1q`a_)uJg(J$*NJT=n=^*inXs#(7$x_}UQ4(Ip*?xN$-c2Ei}{Tj|oc%%v(2bQD-`>qCul&R09~Qrmr;7L5ZK!)`TVLWOBV z7Rx*Vnh0lpN5Z^?{JI8VB1XbEexjYUg%LQD4gGU3z+%AL31v@K~?^PzTDU4gOQOp@kV)ks==FI23rnL!fgvi2NX@$U~iu@ z-N24$aHRDQNwyW&yD=5FrWrT^99;#44bMVs1qC+MbUcq(y0TLnZ>@<6nCgy);2V$2 zP^GeiRHAiJq2JEPymfbtrh}BhPn}*6An653u>DhmuCNYYutzX53FTR?1Ye6{;b5qG z5I`rSMV!+4IhvcJlI~co?)V1v^2XNzAmoN@s^pF8lbcNZRL@~7H@uq`j7}VhI5JLp`!k+EU7>%nUWMa2 zBmc-lPRIAoq?2x{NaS>&EBpxeg%Nd1lJm%SPB9}rdPIxS=fCi3NG>TbgH7%DXQ6|r0!u3YK%>L;ED5bX5%3%tu+x{PLHNwSECbHwqaR&eWZR1S6!OO%pCW_1&+CW#TjNRj813_ld`jb_d!rx`_eJ;=7Ua?%3IgV- z_sGn(hIVN;v8|h}mgl|qzga5|ER`cbvt|Fdc5w+pc9Z@kND~QD8Wblu9fyU5JUQ|3 zf6gtWUNKv$1uszvD#F(h;j{;@ji0+b=5njTxyw1NiZ@_7z|V$CSQ@8b=aGn9Kw(`c zT_8r{GJ#`t+yA78gkM z^GA+S5!zN2m9Vy|)S&D`C>rMO*{9^$E3yi!z7^?6_Gx}c~z&jm4cohxbBI81d za1ACbe8MP3&Qvl63_YI?uqQxb3$#FHcgAv(LqAM5eZOcuhJ|z1k!JdU*1ff|q1M=W zc@~S3>mO<1LA=5|F=6Y?sXULKnB;l%#PWtn4(2&wyGialFNoh4Ax`Kw{+(~h*eAHKsp=_`yH(O z&)WKPQAq#$p-0T&cp|jQv+Y)ckc8#qoCbZ!*LS z^g^8ff(OpF!uQabku zR4gVkiTg5M!KB7Xk7AFG83R=9u@m3dxs)MI?zW0zJJdKphV6?tcNzxL90>GbUY;M= zA*+y`a4nJ)EHaC{ATHYm+a0aB(l%seU^m70;}|{=(8Su^9R8iTLQbNeC5Q1O_oITc zF{cAhvTEIw4J1j#eFh$`?6Hld24k8l42!}Xjzn{tfIPdKGJ?cLuxO@U0nL{?j0u@Z z_*uTBT!5S;b}LX%hV6i=FS`k?P=@FF$~0_gxF5LjYQb9yz^g6-m+Hj0fjbrW3USWv zCc?z92#wo73?%WR;)vipjkEWJm1ElmFd(l+iW!KGz4lc|(dM2o4a7!YIg!qGAI4kF zrtu9p^WBS?FoRC0z#4V-}QE9$YB#10Js95$LKdAim}5`Uey4P zmj2m&(c#u?#RITCdc#E`a8{XHBZFb~hZmND0B^zWmm3(zmz$Lm3<7Cg0vRX$_lLYOljN z!-3!<`!HYU7$B2-{h5D@x7YtEj%5B`|48P|0uR{65&`Lkm|jySU%JJuPQ3(Sx(nWH z!ciolFZbTXn-W}$&b=m*Squ+9vs&E|tMBs_Z!PFE~uV zOoam=+aHU{Two3GjPX=tN#7zPgz-}}jKs5UwGD1;r>|}oFW!_71ybRr{7B|AlsqaM z=^?#QN-o$VpW4*}72J4UYX`TTvnjE5gqRA4gJCJ8i}R2YxXArOpjV7du;_xXxOxSl4^{!2R|YyoQ=l7nYkeQW`r=m!Y4=$~@^@k*xBhfiAk$O}A@ zo`<}^qsjA-7kKpbJmdu)1S>G)1s(#NK;;E}o@4oN(8dDLhS%x1qr~qA&`PodJUTl_7A0P=gor3|!84ExDs`p>nc>1|36rO=DQ*u;^{SALSJB=&ZV$2vl_-xskntS=?#TG@uxPvk)o z0Zf`E0EZ(IICNf3ek8Z{MhNyv%Iu}`8h8C+04)V@}EQac|raY=U0R?zs`Sd%g>MU zpTqdsw7Um+I6rsIe~#eiG5ODt{Jb{*>G1RU{O2fs4&1{7)xyu^`Og$TFU)_Y`T6tw zXDdJ7%73=u6I@a?t>3YopHfzqE1a@GRK&R--!SM^|4_hhuICrd0)-|bPXEK4vC2#^ zM-%ogAsz+7SC3=Ec9NemVWAysa+(DprAVY$31S(Fjoby}-p#@*5cUS^JaUUbO$4EN*(QQn=|z7lX2(K3H;rA^BiqK7JL3^0hB)5 z@zI!@ppWhK(V>q{K9aeK`n3Ze&d<>!eOrU-%)&h}W{d_d*Z8-LS7(mQ`$9+&FyWlQ zu5_;V%CoZ;=YLn8kn;#x1m_?}03PNc&@-{5t<&vpRw|9_PFS7vIM^P`8%_#gfcrD@ zjdOsC?7INL1VzFgf=7*!baIA<{tts)i zSFaNP7~9s>alm^r(jy z<}X1fZFXWw3Cd``iuSMbI{7B`cT#_C;6-N_z_YsckSof?QL>+$01rY#eA&)48Gu z0%NxI2L#4$8;TdE*x?1xXvY-9#RW6Oj_}=%(eQ`~!O4W$Q+Y#L5gXt2Y^A-C5d;D; zy`$hQ2U7|U z0t#zrz*!VCLZ~Jh!a5MH7hbS0;R>(=t~4NB(Qyr0;ZDecU`H&P4A@Q<Vs*!krtZ|iVLWPz+AAWLbyH`!;y!~Lr*wSjs?4plEPEZGJ;pNU7&IB zQX0wEu0Q~O&O-*IsdD8YVI|^vnp8=4rm|y$l_jFmgUetk9>5aTO+*K-Z88h(as!+v zbD{h54nPYBpIKkv!}H(Y@;OAtTc$_k-Sd%E&}dQtt*0R`Pz=RD@mLdxfYq3!a}}Bpc9kU=MO&(pEmcjd z0V%qL3USZ=rSN&XojD1G6h0=K@*SL(A@&;Q!P_X{L%BT(qOiKkRmEew2>AN z9Fy?)2uV5=Tnhx}A5;DF0KT&Q09Y}P*275)dAV*6)Zrk?XztCxq2!$(xo@NoMKtYV z&6#HbQrWRs_aJ0LB*>3L&a(tv9<`fo7eVcTs3b1Q>j|4Z1QD*Dwa2<(ns3^JJXkO@ z1QALpOl9rQkYyT*g$MDZDMy|R&8nKQ;TUc;c9yr{fP8B$0}Uv+e*#Q1_^>suHuDXT z&3apoU!n(O+_4-$VO^m6DttL;{&=z=x33E&RPUc%xy)8*=sPy z+VwaKbJfDX5jL)^eS{4p*8!NfBxYIkyTx{fp>&wi%>_;30)TmZgj%CwAeO2W8!u-# zNfaHMfugmRm;P(_=6C0-YS~aOffpdM#u>v^hLQE!bY#BwO zjEici@l?B7H|v&XF{f&dW-ei{Si3ji$N>5JA<*bN#>O9DR+KL*v(knBuKK=O>&WBF zt#ei8_j89-y)wuSiT=dy7KBKZvrw%?a`RcskWmI87BG#gnFFz)CdsoQk%5BfOQyOB>Js~ z1`Bd`($_M;*3Z{3Y>4#T$P$WXVMAmc+p(!!nsw5&Lvc*v!%9I-hHhShf?+?T!efCx z7V2YveH_4tl2&FWBsC==>MZ6M^4w|woT%JGOo>VYlqwm9bCO{IIN);4KH4ulJ#v8U~(8KO#u-l4PEY)B+tsyAJ{EirRHSavnf#!iErTA}`a{?pqiGl^{=PgS@tqJOyMBxLH~!anX)9 z5e=Hd{E|Qw542R~QX7}UgyYI$NCz^%>AaojiOT|GqdOU`Dijr$JE&!0W;ALbtCn)i zxe%J}3(@IqEVUPulaixs2;stu%)IhjInr(LB4ew@6SD-Mv9*_OSgFZ=%Yi!y5 z0Kot!6W*IP4cVMg%*2MCO+d6Maea?SRHT`0IGmkr9r&(_y0(?HKB+2Q^8hmPf9#(r ze8GqsHqT^mFj%ZNJxLj)`yEsZE2pNPv*p>Aq@$Mo*+#^3L03gtNTbsLm%OQOIX+Xs zo7Rz3e0CIMR3s5(S17)2?f1Ewj)fHVsr;ldcOrm-t*p~3Y+MSw31iG__hoMr?>2rE zbvQ=)8PiNW8=rPJ(+k`$vk?kF+C$8ymGcxRG-shd9X;{#1D*DVjhI?LtN(Ty-8G_-RMkeUuR)oj965HbA^WA8-! zE4b^5$lqFc-`yH`pnt3nMIeZsg=*n(wm#0}(aIS}6M|QmyeckUS>T zD2t%z!)RTjqqW+kdy2$W7}0`ds)`)DbM#rD=qb;*-redDQ zOr*M*6u!MWDr<-f6Kul0xv((B9!Nno4&+BU(oM8=y#R074@fU;?T+&SJrQmU_^f4q zq@{FeesliA{POhK(QNYbeXt`KDoC>&T;U>t6(-D8c(b( z_I!kIbMOdX(ncaugem{1UW#ly?LxGJ1;_Q4O=xypCNCF>&>ahgAxHRD>Jh#%>1G)G zPbShwWKIIo0yHY+ki&wNHnrVM8XTXS?>DCHoF+76$DctKVq4u1k7phQ#AJQkU?-l= zV0DvaPmVo2^9I5)pW+8+)W$)2>Ft7a$Iv$1njkUSdZqd{gIQYZzKiBgrSWc?_vTFR z`30nwfUY-K-gsswL`a@^22whMgw!(oi4Xac=aUs5@-NTlR`DS#Gd@b7Qpr>#?hF7Z zPpx|*4!`Z8r?z-HLF)TlICQkU?hgbdIzp7qf>CkazyDg+6P%QVZh5CsdO)M_P3IH# z2=dD2JQAALFVE7Y`(l}N4=9=!kBb~O3AE9mcxDFpnBo3C`V^8>ElHd?a&FPK0gAKLbqrGdw%P;AmUXe{v z+nEGNu!;u(itP@#K)h7XakAab3gT3}XF)mH9a#n2nan~+1zVtyERE14nGiPfUW_N! zV=<3n%+|T~@G1xEr+^^eoeD`&wG$xo=0YOR38SPV0@w~wH8q8KHwoII?{Q#wUiG?` z$gfMCHGN)bT`;0gMPk{@^f1b_Dqp6;>UFcNX@8Qel0sGY$Gn0C+W4$D#5&UeXf;2N z;ZJSMnGTO?X_xv?_uFAkLYxT759xK79W!^_5ioR{d_WfE15LOyQl^@m8F*mj;Ul0q zAdqcpj0O;c{mHu^nyD`bc5SMuLTm1PcixdM)EXYucjHGP2KMRn1ymzKmPI zyS7igB?xzFP;A`3hW%Wm&nVhCVx0nM6t=*I_KMn>U7IG@e71P#aCSxF*6`pdsS50h z5X{6BF_wJ-yFc(yi<~+kL}5rkWXh^Ijtz?j_3$5|Y5HoKupqN_#~@Tpf(2}%QsOvu zM0cNZ$qdhcnuO#9l>n)*ZyeHvG|}4lM$9Qy=u?X1=P~?gh-7y|k_K#Q?XEx~ZmGge zM@{Zb_$KK4HE1+9%lrC7Ecr0Ze` z5eiji=Wz-_u%Uy4tuGHOJuj4e0&K`S5pC6orFC$INY$p$2wc`_bk4RFujX+j;Cz9< zYRsE31Xw5a)W+oEY-2u68%uGke$Cb+umFv zh;Sv6)0`FNHKM9vTy~E<)R!iM9cAw3-#ye+8~vqs<6dhhh0( z_56sQq5kv$*ZjKAZxqjb1n~R<5GeUzZ!8*ueC#=5WWQ(fYc6>I&%gRmQYi9S+xYBrgzIuE{qJ%ZLQi8}Es%Y^1E~t<^7oHKvwac4MJ*^05=KTv`a zhU|TT3ysuYy;V36|72~dpMJ(QEEK=M*$)Zy-W+IR-_#O`Sd(lfF_`*7zC<@ljlw3R z63hf+L)6u%i2(Cx{k0-$Q`F3VytVlQt?RxiZP#Laz5M?UzIuNvd?EIK2VYT(#|fNk z=Z?)W8KlHh8;c56si&c~xX`Eg3t5;P zFcK>C^nL{t76sQZa^6-@n8fY@W1BEvmzj&#CqcZT7dhKH`ioK;3!zV*WOxKudA0&) zMFo#pA!QjBkXD@9wW&x7$uZWfBv%(=D-}K(s z;}Ed-BR@?-13`utIvA#KcsenpR;H{>NM%{Ve#CUkIx(f`dxyCggn@^VYSDuV^p<+b;hm4;s>|Emxn+4#1D__ka~P7HGIN(fv1m z?(?ghoRs@xpB2GG5aG(6?n&EmV3o5^MO0M=M}c?KbVOMElut;08S z`(NXmCG_yk_x}vvEHv=VhvHlC2Ykzu_?DN4m44ZugLjwZ<}-Qnh}=9r)xvZxUIPuV zhz$UEjHwIutJ&XlkPZm|1`|NbS)t?+qx)n|%M;vYCwDbGWz}GK#DD(} zjVX~xJMuEi@IE~U106E#%@Ml!QD%-H{$`GVnVh+s?3bvfC)_b%NVnPRB%w60=ShN} zZJ{`?+4>i`S1J!E}gs)OB<@QSJ3{VZW36&rJ-t$hj^7edT2P;-TBK|G2wlfD_uG!Yb zEYm^!`1>8?hAf7MTnrs%cazqZDe_nmG|3JLNkRXR3)YcOL5y_1078fL5nkQH5SE<$ zxbJZ|JZd{GfQPZ|Bkke{4D>&3K!u(y%crVgn#G7ktS2grAm;9mAh{`0O#5Okuo(d_ z8;spuXcYaXGP9VUneA!jB=e=T=V~+unHQJ?dh>>7t?M%7bkHH|CbZWjMqVl5eQd99 z$NP#e3^r^I3h9Vk7`#;-#cZ{rh#s(zsO@;gZ-ec@p3Fw8npo%05m2Ou1NMk_<&QAanP(28GkB3lbn&8xA9tsBLMyFnZh0sd=VTRImLGD8}&aSawe| zo^;q0SOf_TOd8{)9|5dcdu0mKY!X{6i%tf!Z~U019N1%1+RiFOGd9}SS?{keZBPH+ z#Cf3kv^ zd-9(glrn$Me{vAY3|Qbn23r&^xB<)tGAqYkY!R_8H2k9M{fLb?7_;MflrV5ZV$46q z5!RWo{xOy>86ntR!I(R*5>H6Of$f2vXTTF`>a{F~He0+Zy8>wC9^d2eG&c^yC^M2p z17QXqbu)Nk`#T#c>K={X0842@0K0cXbv;ID2A;DADAQR09YM0aF0&9-UrXF)k4M-V z1s`=!0(?2!Gf*cnG1{pK?H}oU0F+qqMV`@`H++i4>MzrV=sOd(1MnmqgXy1r?odoI`%)=^5pCD$tHL2%n z6JcCMOGE^H*OiK7@e51OBgXD5)ZP%ON9|U^(>V%YYhx>*GKM*I)%La89o%COmTEGQ z7(KSaaS=fRLUNZTdKa;z8Uqn$x|XjzENj97;j9S0^*-PJA8gtdkuH{E9 z^AezW{n&)hIVqn_UW0UH(7=A2zLQ^G_spg_C%wM+aVM>hJ$v#q>Gd_Fz4=y_M^wXZ3_1$Ayu0M0puiW$JWv;#Wk@wHLLoW!>kOZukBTm%a8z`tsc)*Id5wo_()A|94Mb-R=J2>e_q$vf=dAw_Shd zl=(MwUUBe^(WNtPdV9mVo0{MM+fB`VCf|I~3;($Ji9a53%R|qsyd|;CMYnvCe*Tu9 zT<+ZV^h-^*UzfY+_6I)M^{ykXPyBe~oQ(rsa^42%@ z9J20>&_peGMc8Wfn zSTyIPJ|lnhou&hRw6^K|H!p9RIel#31OGC&@9*{>-EYUfPxRmA5^N=S_TB-`kV6N) zar2}>+rNMA;QLN@hSVML>W~?cFNfS+IdkYSCmk_##_fk~d*nf%gv6{8mZ`~FdTJh*-8l|O~j&rG>2{e$x+ zw6^_odTYZ+*R-Zy|EhK9eGQ|3`Q?eDht@tk=8DQbV;_2PMf=#T9i=cUKb z&i!Njmwor0@R!{8cR2LTwUfrhj^44)6~EoF&zR=PH~##lohm=cOqt*E;*=40UNd#c zx*MjpPkVmq1E&s}*1V}|divy-rZ+E5@4DT@-ZKwBf2Wz#rhPc`yy3U)zA{<6$7%cB zzvqRM2hYB~X87zi#~wHP2ff~%{ra*C=k$NA|J?o?&z<++Gq28n_WtU9&+oNx-_-cd z1!FIIeL+L&=L=^q*mM66E?jWH@tI8rTsQnT2i~&iyhX3h{%FykCR}sy^mVhB%zR|y zlHS4$J{hVWu9a4Gwu_K@R;J7<}`lr>Y*vK`%+Wwg} zkFS5S`yV@h+Wo=}soX7BP04L@*A*v%Em-@&QJjT2i>zgIf>|62cOKmBa4*Bzkgc)T z%7Qd%-2?YGxFI3S!uA)7#^$%fy#-eXn^oKnV6BA1;RDvaa38|eSHfTdZUfwVaDyV) zdjt0z+!t_dQJmilcLQ8JW?5LuwwA$N3inI6zrqcPbd!ws&%x%hDF;U0tw)#9EPxNf+s;XZ>K(F<_k&WHOYTpjEc_Jg|# z?lZU+tY^%DI~MLbxYyt+6DTL#BDgc)Zich!Eo&^?zHmQ;dmV0IgJn&DI}z@7xcA_i z8<8K}`EW18QHtw?I~MLLxQ%epB)**0b!#xJ~ zA>1|tE$cA2i{O3@*J}{U3zvbr8}83={RRWiaNTgX!2KHTYq(L(C@Gn3OCZh*++0^!rciM8f96N;a0)@0PaJ$i7iM6 zcN5%;a8)Vb6>eX+^>7csRirIzJRDAwv2KBT4=&k?GqT~1g}WJU6I{FvbO3iG+(mGY z!u=U8H5zu7a1X)#8LoN^=o9V~xI5uKfa^OJ^apn;+&ysb!!@*{ec`T!`vu%baJ!5{ zzk}NZ*Ka)92kut5PvAyxhjX~$E`WOw?x@K~Ki$e$tF5E0E|{VphWEvIKO8=bAeJ0u zt-y00l<9|Iabz*#tU`=s)}C-(h~-*Kt+{wV2L8(>WU0l!wx#$y3IU67Rxm*?N7R+p zeu%>7VX#_VjHHakFEqWi|JIaa8On30oY~cw~Mazz<^N zMX(@q5qUXso&iwHq>L*O%ax{x0G8 zh}{E0EEj|3BdTld0Y{(v5OGAg(#@BKUS{np7ew6yFo-6W zlx5B!={&r%P}d;pf-Se_d?Z?o=vlNW0URaBRA9u{5`ZUqk4B4hp^l`|W!A?4KEW^Y zK8T=^NxmzA|22rTG#`Bz1DZJ8He^|8Ma=Gqv>I)_9Jy!lOT6s`K!weD2oj7bhsk*; z($VQL5IkOkNsT+ha|t477u0^Dh1(mxE@+F?N_zSW z3v(Pwn*k*DN>`vVYt~^gYOoAseZ1sD+%dP=;XI|1uvfsF6iQ+)hM%=?X{psgWG<3s z)jr0uuRxDljAD|o3o*pzKNNmTtw)h~8%@l5?Fv`e$3A9JG(t}>e8L=B2^Q*OsY`mU zc6R8}toEMa5LH@cmTHE4k-DH%u$q0kVTD!-)Gi_U<$|ya5oxzAQ*L4TOZnq`X^lGp zY_j&}orPXVElUu@rkM_8E(c=KM8FhVn9nZQ9<0DW*E$Y9OReVtV%oPYkG2W%;PJ=C zNS=<#O^6<{F_t3(+FcCl)7+=QXSUGE3acH7cJZ5F8j8y?fTTJP(Uu@u27csb8b9WDFUElM0FZ1pu{l%hi|x0A#tWzjl^V)UtB^a8u0c??Fbxw9HfUxog!}%`W(n zhL>6&BVwCIRH9=q(|*UsB}1AGhR_B3Sr-*qiO_jb3?n`P?E-jgK-Qgw;(&H4qU_Bm z9QVkyly&VQ5f$4#@vG?o!+bf^7WSJT0O)tNjJ#4*k+oz|W44k%2rD)Sk7ZUa@dmOO z>Q`;Lv;eU~p3bIZ)T6AnSOEtrC2Hc~*rMXkKq72o8fgDJXIh$6#ax5(%y1uN6p#q->MWXQ>Fg!-E2<(TnuB?LvRyI-0U$aOU7<*>|MTL}e zEsLY5@EA}Q&{l}(s{P34;a(kni$sp!ibOpNr;;AA$dQWjJ+XRFE#_E$WR{zw1-r}P z!a$GAOV)~bPrmkYI|~5vt>ur+^8g(^40}l^fE)>=a|l{${Q}Xa`8CQS4@y`pp7OM< z8?RnxvA4`zJ>t@i=COYAtUY>xHvM|5P(_rm9Nw_%iHm;ejzF@&oMd02$-*|DV>?Ol?24ttA zi-RQX+Bh83mjD?-`Bn*_6e-lVY=KI>8CVu=O@dfvory#NF{Lm+wooBfS=-V$+O8V_ zYAd9zAjUnRA&B391I!-mUKIL!64VQ^?p13qV9I;{QV?745qk?Wy7$$Cf3A z2bH#YPiVdf;LM0jW}u=PSqiZ=-H`5bkwrXd^=Tvt2naz|5EK@g5|FXGP(;qOmw^Py z5cIjAFIEC|YM@?K{Ud!@wY$%t* zyXB*@1J6WFg4LsLFVJ!3f{^Ax_S+YeIBz)PK(;>|hwlN1KCG~vwfWd1SR^tnGWQ)2 z(Xek7VdlegML=|!g9vlC%nAszP%%2j>&J;hXJ6Jgx;e!%GSa=oialNx`}PMkJf$ z*R52SvL@rC7@-B`e(6?S2i6A@*ilDkjdQvs1(YB}UnP63u-dZ}D^Z{$ba zk|(L(f#hbyn~BCQq-1h}!urPhK=I*^cx;B^FEv=?^)S>*btdgd8W^NJV)cgL zLKOl@_%H$R1dF+FV-ywG6iclgkZddX zZ=nP>AD|1hNUs6Rh;mfQM&g9XryLuab0b-nQV7R#cBtjhsT9_4dnD^9WXNP&szCLI z+@9F)N+iaO+R7v;(J>cgl$8ADBR_Vd|3S3CbY=5x#)e;NeahPOEI-bb>a$OAl1*-? zYJfH@6&S)|nLQzbQK&7Ta_KnuQ|c<#87)WB4qy853aM4!5_!Fd#DNKQA+_&={FYmN zuwr3UnS@zf9LlWZ9jyE$L>;fKuFdAn0LjI*KvU5rwaaM7)I1g;;V^9vVu&(@4p};0 z_ESX?2|{F_OXUlkUt znAZGB;ApJz1y&pU>iWe}?(scD3~&z}f(qq*ZHK8~JB6y7=a6)~-=RutL#bLtq{8}q zjD!>lPr~!W-h!?UBm&o8Ecgj6&)&XZQWeatNC6?ZU&8D z!)}Ss+<|1K=N1yCHZaLkSd4=QlP^`30(OUI1N*D7_ zpBBBkjRTNbTkcsq1G8Li;H-hAU!_-vd=&yu!5uIjIlS8tmic!E{zGV=Xd2sT7h+7?Pix)??d=(WeCNEDE*bSbxR z`nZSbB+npfnnhm(If2^KE%CaKkigM)*79y{epE9I(AlPo0)h-1e<^ZQA}CY}EJ6Y! zes5iS20PfLNIYS4gN}~pI&u^aJN<@(o3TJatt{tr)b}j`VmMbIVeE>ChJMtDqHt8C z2&464+mK~HhtGmOqds~#mfysev1T#TfF*;XM+IQFskX&($K?f!~nh9Q;`O{ofb z_=r4vD9pj1fc<~Oy$5(y)fV@?&z>ZN4xv|vCZI40B!qzJ$)rGfqlFTZ2?>NGq|ihO zf~XgS&=e2^1QY~O5d{TN6l1^kD}q=Mv0pWoD+sX442M|2e)ETxq{^wX@_HeZMOxn%;X|I;a|+fIUJHbN)*I|Iw>Ts?F6o%S>t- z^*H!F$~yedvu;?whRx(Pu)*=D`$)5bx{c2TxCskHcZwFNTC-tpnV1iaJx^E0oA*XM zfq8ElNSWv*G#OJ!Jvrl!PNn~t)Ffl?hL@Uh+R?j@)5u&=2H18?rWZdOe|g5!zM1Rt za!Tg0!0~$GX-zJD1h9vq!|A#5qj2{$Izf>ge`J%{3vAfr?XIExRa+L)ZSwAyBXK{f z(-bvhIHXjBQRI|A?_$%L@&1YTeu*7YiIAcBoIY-GF_!rrj1{IW8?Ht{%eV0L(%^&3<=TJVpbg0#MBt`oR z-FWHTy3{0i4%^!)OWlo^Tf|GJrF$*q*9t$Tq#n(}xw5nQXNQ~@DVfKk3Ae|`-Xxp; zJgdj%4yGs4sw0(8z-y=4BmVuTK6^N`Kc54QiC!1=*MA22Aur5(Xk+0|ryU)8CmT-U)=@&gXKfYb{ zR$IepUs5!?duFNepmve&mz}!%)3~_&@n6H7E+1@zDVaW_5Z z?q7aCm;J^|7d^gP&%JWPC2tiaZ}fd#vmx9geW-YmBI|vyT2S4ChWDwSM?Ou4SYyo{ z>Cg5?qbSiIY%a|;g!|Ck7S7^wxHGT3WUC#w=VPaPDbW>=s~e8S;}jL9?8=KZpN(Al zzRHIUOYqz{aesI&msbxZN6)>&UuvS+RaHCFQ4~>6gUjd0rMN|l_e((LDDvE9nohbJ-R9=Tj2TUD=j$4AgeY=1)ET&X zJ<0QI{YtCy3d%w+uMO{8CGf1vBNSD?Y{Dn^{BkAxE4(Q*-xEGbQM7a5c?!mRJM}ue zT8Ta13Q%iuC;GbreU{p=8h@=_XHxP3?s1_SgDch8{`)qH9L#h7k525BQRbaEzes65 zF?gKIQAxS)Ty&PIHtpO9m+pGbP-Ktet;Q0lQp|0&*{$t|{fQrY`6fUO2dZk0f=nygxZhP}rR#3BL z%-*kwjd*OTy{>w}!Lw9zq;MSfpYfQjvV=17`129IwJW`vdg-m5qNF`dcf1PY z#5~b3--7HllB}V-nt!L;*fb2IspS zmBrIa^Qx*VT=to+s-m(2dvT?`!ZoY9xWZN75G7efE_-=iK>_`7xV^a4UPYK%UR7LH zYA-Byl^}L;DSfR#g)6^mB!Z{Tt8&>3%c@H$P$e+aTPdy&xM7fePEm1wk-f60teUc! z>aqtoL~K;4eeBGV*s}cUnXb|*dwyAIm1}O5XO-+#WmLV&vXa>@l$PNtbXB-Y^Ii7r ziefuu><~k^&J}#UBCo_=Q0A(%mzJr_@~B36rSt5e6~zVNc2|jui>Y*o0m;>sRraDh z$~2E!q;y(|%Z_gp2)E}K6;u6mREOxxna32D7r828^Q!Vx6)6vU9<^X`>Fm6cVrsU* z4XVJmK_ye1QoCzrdDSK5JA^++ud2wSyC^KCqUkp5Gr308EY#9f6k1Z2Pd76&kE&DZ z5>cF>w0h=LSB1T-(9TU>X`e%1s8HpiBIf41Tm_X#R$1=KFQ#@cFe_>=ag|Q1DsqUB zL{(Y4vlQQ}z+IX(uiRy)Tc~!?7Xeu1QymIXrLqe9^+RqDMO?Vqr@D(13;w?t4;fq% z-xl3wsk)~!Zj=0yvP!z8sjmFI>Pj^Z3h2uY%&0|q?#4jdlvjnc1;zBO8nbB( zTEiVxF^e1E@dX#f`SuyEc|4kD7FY5pvr~E2m>IzptE?_BFX8TT_e!#wmU$)9%BUrZ zW^#HS&m6U^qKao}pQy@tGimx(s1hjuJo*|8ibHKRhrZsUoFh$1DYJ(bxXjKT?V6WX zQ8v4nzDI&)0=_tdo1($QrGZ;mJgvGSPfz#~m%|>DSIRk;yDGR5?CuO5qI;A*Gc_uW z3`u1reTN5{$2FHmAS#)eTwPLCT&{;Vmsre$mRj!53LRvhO1)K9S~8D>I*%q&NlDop zzNrArf12kpG&5ZG0W@<4noa7q0Rw2*4jgH}ekfUohEwx$>tGL^R%V$7hX~?c`2%CZ z)1|n842r8TkxU9Ek3)2FD$`>2Rh~VijBJ!c*c)Wmpt@AQAymI^x`8q5+1gd{u&AnV z<0$}Bc_0= z*gZL~gu9joA?_Q-wW0k})2BSIg1%{m=cdPSE3Gamafk`g#ie-_^rbTDTVArtW>Ars zZfx4DMlYU8!vU6_Z_-?K*i_LCSLauiRgAQ=4xmLrx9C8J2>lDI1l<4)>e;T6G8+5t z=}e}6QXEyS#2)Lar0=^?1KVvR$w23Ef%py?y+T>Fr5R5P7S|M`P}${5eT()Yd?gFn za++ppOwbHVEG;Z^k8VAuT?G{4UQxPopHlbIM6?&?k@=_k@*0;%!~41{UKCQRtH@l% z6_-$3kF;ld8l#3YRQD2%BwhzoGtGfQH=AEktd{M3thd@Y3OmF=zFeMHRYb#!Oivk2=&B-WNp2;Y7qdNP({PT8IpVf-Y<0Lg zdG7Y2ZJ?%dmXG|99TwFfOaOw79C6=C@jZ zRfj2GM)yb+MWQc-ayta?8Z>C&D|)UWC1rW!^;J}qRXFVSv=Uby_5RGf8N5Pce0wYk zYBZuR`3t2mHIze)A);J5Jy>~K59XE3BS;U?N&B~oo#AZZ!9n)X(d3nyj*ne=K9&n%nrdtv-7Y>Rof>DD0&GSw$Q<;7 zgI-K%AXvKsR{=7>ykPf?wnFo8lNsi2IEng-x|e;5#=VYSah9v$(MTR0=n&OBB$cb@ zUZZKSle^o%%{RAU#k_;Aw7Y1NLdDLhD5H*qK~y_^>T(`)G?d&yY9_hE*#U-+V9lny z20I&%4%7zK8bA(_!1bk>;-W6|@Bqk@q_&_s+4E`W(P|7!$Q3KFQ+2scdK0VnEe?@# znNPqs2ESQ3J%4lU@6R=hb(PSr%rZFaC1?v%>Y7H5D37yFV`z)V6F}dcwa*E?+?poq zJtW^579V%kw3RoPa#*5H8G2q_nr#_WHm{k5V$D>O_WyW$&V@s`8Qk{*`0`XXaHp=FTjs zEXyl*lvPag=MVnKz`vAEq#*3i>Xr=#uAXK+YbFm^1 z=bz>_n=CpX^IUCuu@p|5a5|~7OgOEW>`AjL;}C&=(O}W(Nxo&Vu+y-{tu{ZGZGBZ2 zUpjmnTiM*3ZE6Bu6f7fwojFyQza^JWX#G8WcFW;rmxu4dJa)Tm9$|s!^IiT%SiQhv z3-qUh#YsMgd#H@it~(ZWteb3^c_%_GY5I@6P0pkJbRo{=tKb1R#B@3p2`#7Z;+;cI z@c(q~n9Z9Ylw8H9NwiQ|>t|jyjc?k$@WM`A8lK80g*@ahpAwXa27-QeaD^Fxvj*DO zDA$0;q<+3Zxhk88VtUannRmq2B5yW%ROWuG(p5?|=}(Ipjw8%jq`Q|YkvEl|VbH#V zA6vjX=9Lewi}kRQ4)N0lMrE<+J zQ0UCOxqMjRF+Bh8GRvZ|<&jyR6dJ~P_A!}*twqZEpj(56Ej6KXDDjkqp5vIanD%wl zb~HuFyJcTC{I8$Hy5`b4ZB5l_+(MOfq~}WFEilgltNpBJ9NHP^9mBiY(kdQmz1dOi z&1p)K)kBxwf4tkn+T`9|(LmwHJ!6LjjA(Sdz^a9Q#hC8R5oZVXhO@v|lxGa@O&<{I zvoGC&`iyUw+V1i(qsJIC-6h`ntNk3$243y(q|YHnpm8rbHn)aJWf`AhX!p*HS*g#b zW2klPndA<^GS98DzRH_6&w6vm_fGcGeZFd*kWQv0y=A?DiK~E9L&g&<0eALdP zl>PC+=3~99XiAaaq1OxS#Cg%SjFVa_uH>W@vMKSH#n|`K7OXVCh_-WljA5-hv=!ss z`aH5Oe2Nc~IH@tu2peRpi^(3*PRGutkd4g?nq$15#{F9>CEoyM!qsUNIG^zt>bzP~ zo4U;@oyv$r_rX^MKNWLPiHYn-@P?fa-?Q<2su+%eez?UI8tdTc8spw3Iz($HJx#^h zt7lwpls!$aW7d?jh7Z-G!LvfQJ+O?QD0^)2G@3j5sh`=`?ne}Cz&tidQ`G_V zG*>B(-)QSd&ibWKxjgHqA3%GanK;Dk|MApJ`Lh4}jvsz zrFZ24_5nN=CufCa)9}wLr5`1rje=@=%W|?8WFC&-(W!Q?*xq`SV4mdiCAFKTI?*{Y z7lp@4?6-8vsw(j?8}3tq2r@e~erOrOvoh>pxBz37v4! zg69yC&W4X8Iq_w!PL{;I@L2N|wWAj#F15VclTp)|oJ5{JaJ(mQmy!i??|j&f?zqiog2MM4vc1#0^*2&Rp`ML&I&1 zsZsb;e0TkIa~ALs!O`r!%nadMbDOViu0_a zrAv)wI(OWqqk_(>uk4oUdQs=1$uB+OqN&jEStZ`2Q4gZc!LJXvc+jdHrg{dw@c+#w z`+qk~gSauSv`UhHNz=+>ne0G|E*-(qmXgjC%r|Zv%FE%i6FpLC9+i36_`U~f{->IWpGF{v&Jp*AsjJgM}(($^+uQAbr z$glG8EV1S;zx%`Mq+VX}0v@lF)^@{v5a3=iQBiIdYauHnpPU=t@($FZLC??J@4IMA zs+`RZ++h0UGg?`!bMX{xY|Xn<4m>tVF1+Exk1zO*fJ={qF14)YI;~G_9HK`9W2wxE za)jag;)tj5M^K5emp*_RfsyF>-pF4biUatzuVneEJVziNS$a6j^acdKY2hrT14i<4 ztmjMGH|1j?vINECkMy-V;Zhe3`%`$$4#8WQSnGYYMz%6T%}%(|5F=Nb9x9i(``kgl zDd2uMXuf7-+Gq7x&0pJ$2CwPRlWz4Kou04q^s#o>?pHy{i+1OY*9YM3apzIX@IzIw zwGp5v1lIYHc_L=__jsX>CWv*N<_G<<6}2wehRgP{J*lDGEy|;wCy-?jlyxzUj+*9` z{GN(w{HKu<#0wGL+EGt;E_WsPP=viS40wltx8Qkx==Nr4vs=mMENt0uRO=Z{+cw?| z(>SxD^7~47+q2;aue4lweQci`731;Ba0wl0t6Fnrc*0wTccrYiT)Vp8hQrcAKRJf& z1)UoUdOHi1_@552-9`WX18g#m$*ux&#V{b?`s&;MgC3y==#6>>+}&694Co9pN^M!# zI;kGlT|m=OZ8i0DgLjY^`}f{IpqGsrm@N+r%A?i2p};bSHAqh{8X?+kch{b`NtWZ| zzFbg-1t5>c>0kDZ^(mmP4?U9S=CeE!YgKT!#bw@fYnoLQY`%#|&o)!ZtdV~NFC5N- z&YjNe@ih6e%@{qCcJeDk?iXgPy_yYc{XvyO%@tO^*{mt`GDTC znmZ_K>A^PBd`G2wgDGY$Ao@V63!RJL6>Hofj~8puJL%xy@4m6+=``pPdZ*C4_uT8e zXQ5{hY}|Ekb2E`Gr4d6#nMcO@IXEvu?%fbp0v%$uJsyu!GhzooFMCDNGHbrPY|T|n z86th!!MSQzu$9^Abb2(6EJH=(yGG@BtAW7HgA5y3Chi9F6ouAFa$nrfv(z#2Jo*8~ zM%Ug^WB9!#9$PTxG|==jbN&2LJrm8MEzIO3XG(llf;#@;9W#wfvmw-?OV3Q~QSN71 z+{~9R=KZqi1q9vUFfJplcIU{d0`%r^QdwC!ITKZCXz1>;8Wry>I_&P%kA3L&l%5KH$EAI`$o;+@pc@o;CR7xq&>!&ku^CcAu2Ita$0IqV$8V7nORX;*_qt9 z$hE8ToEteK*6;bj>%81F)6u|XJ8pimhRvmVXOo7ZhgXClug7kHH9PWPOZD7Pe^Q|S z*nt9ucublSD+LBOy>f}3<&mRXu@Qg9+}dGTD9@V*|BrVrs)&X;QE9Z(t)iVK9jtLv zU&-C}_#-8}l=Qzo>*GW4c~N}W;IUg>X*51vxUT>Iyf8U1N*^TgnaLmh5tu_PG8!31 z?v83OL>qrD#3!+qDP>=LY9oKL@P}@<$0F(R3LV#--#Nga52m*y^?uespq>__=_`o8O_6UX{>j6H>}4sSt4>8rt&);^tUyQzUq?Ar^)5Kd#)(v z!vnXUWm+RP^ZL0$K^c$iJX%JqXG)E}gFw$*xSHCHrFk-yUx_#0RsLfyK99_x{>var z5aJN=oR!B}|>4ST3zUH;Z%o*3*#t+ycf4W&jO9#}J>w9Jkz438N1l%}s`;eUH} zPYUP%OZtz#&p?EZkRo)T6d9SZncFTVE&q1pf1`IFe0@#J?MJ>cC_K41zoM+Ntgy;4 z#x<3mZR0KbN=JFYRB@&2B06(av>`aP5H0Ax*+U!wj=G!rdMw_*USTL5ZWoL@zUmKzgUF#E{ofu31-$b0dlsLMiY$`{l ze^gSNF~8pv(bPups}aaI$EANs|NTJ!(eJ2>o9MqUz36u^i6>BaXNpT-%^^4mT}FKR zt#|ri0wKca{}0lCO>{WN>8j&!zP|Jyw;x}lU%S+I>O>!#UvPt)m`iOVwijU}F zv@?7}f#DFX#2#a-;YZ2O(3R0LMEZ#Fl2bh<_t59p@wv5)KZn>jG?vs)jJ2JiRJW0~ z5_@f1jb`FnuZ~_mVy0J~S4Z)>*CSqj^h>dv=R6+=)$1dlcYL~vdeTO8c2 zbN)OGIv%|d<;^X7iX*LVZs{ZDwB`Fc@AtBw zk7(MCKR-KY{~#aXGx&Sb;=z1n8}!Y=#|HZdKL_g!|2(f|Vu3%0whrJnse=AKl<(9Q z#3fD`#-%?$tR2oz%H%s8pBa`(_p3BJEVGrkW-QlGjN^OxaojuOe8gwtxjtyGJA?X zg`7iXA*Xt>lw1Di(oai$#JRG!%Y4L3tM;t&5%;alqkepM9j7|Ek+1&%ZFLv7X8<(g zF1|h&x(d1%`aJX_=y_=8O&l{AnhBl0iCd{=6PNYSrnQ@V#4FHKo48HBMQD@F94Bov zr=1F&iz}NpbFV#)&+kA#fqn)34*C=HH>hzp=hFn*3TlT2LldAKxBPs!kLb6BW2SHA zv3l3mcYJ)rqx6}^gAeyh^KJaO9kkCju6g>lx68VUqHWw$Rol3y_H5&R-*^wth(q^q z+t!i#h_~yCHmhmg~D?4h&|?BFr;0%=#_yOU>1 z#H}B0B9mVJOK0^K2@jf0u z1McJatL|HLpO4rGed0d8FaHg!mAm-vcJJcP`=KxH<|`}i=NcM&c$~K-rSY(ba~rsq zYxV8kf9-80!~_4@>m#~7z@sGwnoZhMEPjAT+BRJI0vf%K z9*yH4?sgIbC z>!0p#N2z3MzOw%j&cFA8PfJ^gDCpD!T*~$Xe2<3@aBsc=eINQQX)`hMAY03^2RTkT zbp63St9pxX51u?obw0$U_kk8d4e&ZA2(t@uq8RuiL=t zdz0Pfg`th85qFBFqBq-qqNj;kiar#Z>1`r!q9zopjW`QxY1om=ccAtLeG?;vT>$kk zf`mcoYzC+6VT?prU!o2~VPYF`01^E%w=o)Fp$O|`Bvaj}W=Pl1;B}{s$N=>>@`N{4 zyqNy$A_f=*h*^oS03t~-=Texr7;Y4T_;+u;#Ry{>>arFwV~irCJ4n<+q#4VEVQ(Xj zBP`3<3~Dd$q+b>uV{8?RD9-^z-bD8xor|a+(N2Ud)L{=JtX79T0y;)Cm|{Lftsul1 zYUCkeqHzlJo2CyDvzzTsS|ukMpWtqG#%s zDE~I%38F-5oel=K;LEntHgBR%2KR&XI&E7^WCtaHW*P&LZob!2uXIsi3_-e+MA<}v zpl>w=A?EL1zTV!V+K5KjwcftoQ^af|0TfC^KmKf_f>OLEQp^QLHfSDEKiZ5H7~IyY ziF%2}Mj68HMa;!UIp|@~QlrY?HakLtuZ!4htU~E^6xKm(BjWpe12OM0?x8!P-%2Oy zB6b@OAm&%zUOsEdS5Y*~C)CGV955b5x(T4ij3bDd2RdjR1r>rGH=aYxDxz`XuD1U5OWM-ddXmfjR*P2Fwi8BuZ#tifSSs5$@4+Y zfaWp-G@DBI7TskgV%9Xdxe3ipnFZPj>M6&7c7yCP7qpjXiRdk-fDR+9x6A__1ND*l zpw~csr3-Wdbd8)3I!82443W#xO6Q3tilOpuP;=j#oAe^uDuum`=mScXJCSY((G-y` z?*loBiimcjUB(l66YY`S*4<{xy&!eBdGZ0In~skHlm{ixoc|Kl7)A0h(sgXgVMX!?Vh#XJmrsF$iIy8P*ZOLw;SnZ$xo5zQ<^?Q%(oD8j{FL_oJAOj z?x7yEMA~dMM8AWUNk1Fg@}|u`@I7KIlN~`lK+9z}GW%^r0Fk#?DSK0x5RpV(#40%) zVMz#Erzsb-NnVFA7ihCg09Apu$P~~z(7kf9Z7bd1LqtN{E2kptIiem!F3_h$#bURt z1o<@oz;~v&U(NybC7LDn$m>BdMAc%iTnMTpnkOERi$Pn7ZV>zAEudG47Kw-C?I79W z1K*p)!*UhKL3EqgFV}(6iM+)las#M9(_Nt3h*nY9W*hg>-9$nhkPniPY9k&(%meZv z&{5E1@^Q4_aiT8bkbD|pClGc-(;3i9@+88(BN``OmS;fc5%#M53e=({*X*D2yp3na z)kM9-YtrV$)+PvaTKaf#U6P2Vh|{tOXbMpgQB%+Xq76hXKra({iw|W7FSehb5OonB z$zBNi5n*2uvCaA~`4Qei+D1{#Hlkyz4}5c_mn{u3?L^+9r7agU7}VO92MPgouvL5U z$QljmX1f_-xkNRFzwH)KCBpn||3F=CBI+UnY->^8Dx&2^kftq&8EU)V%e~r%+xCEz zt&6qoMY{VbX04HIdjKWW5p5PJwkJU!5UrQlwwFP&HHT%}UPZdjMBXCTcFIfA-Co_A z?|qW(eUS1lN^GY=s=RXB2cSU2oMZbCxm<@_=G#8rh#3#MPtzFCgPKY}PivYBdREhN(ASzagS@;{p8G&8G#vpA(DV{0NYneE2u)vt zk~CcaP0`ej=vAo{yORL{mh*_X1EXQ4!INpz%cBL^a-St5N8^2&885bZ0lE!(1o{&6EvQ3q+7IygM`#o3fXte<(7wo2OS5U2d#zfhCT=V5c)0DyECV42X#Q>p;Ms?pm#tYg+32G2R#pM)`fHE2^|V` zLi3?>p|?YKLLY~|3Oxt)>dHCvgN8wKpwpnUp|?Trgl>cGht@&ghkgz9?#8+GfCfXS zK<7Yjhi-u$fu4YV1^pe`sXON|2pS8W2)zlq3;HDVE$FAvAE3WOJM`cjMnES+=Rj9M z_d=h8z6bp`v{_HI12hgg2|5?L3VJW}DD)Jx9@^?EPCEb^1X94Lt+>723hh zsro=8pqbDj=wj%0=u^;B&>x{qdU4ur&;V#WbOLk^bS3nD=yB+2=mltp-kif=XcROX zS^`}JT?>5>`W*Bf=vn9wQ13pRPX}l}=tyV^bSiWX^mgc0=p)c)pzlM^L;d=4Zr4EL zpi`hXKvzTWgC2#x1w9M>1=^w?=g=J*08NDEL+3-+K=(kOfu4Z=8`|V*&Y>4H5Sk8k zL2ID9p+})7p!LwM{W+}z8V?-@odvxax(#{|`XcmesNVoiI~1A;t%h!b9*2GlZ84Bz zUJD%qt%lwOJqUdjdKUT%wBl|_+R}Wi!g*w zz!Rk11CEkj6YwnQm9GC3V2d<_ZAg>I^qP4?0waBV?jp^p**+wSbPx1V=u^<=pszsR zgq|GIPUO^l20afIL-|TGXjjr;am~<`Q8_ikaU~9#1kHx#Li3>0pcT*s&|9Hvp<74| zaUbPoh_@m+WYvvwk-UJK@Omj`ny)xzt7KaHjO1b;!Q+F4y! zpPviKa2n#ZkjEm@YnqM-q;?J%Q9)PU9KpSF2I|>6^GBNf)mDrOZ5!8CObYEtIxEx` z*;dqqHX*GG4W%m|g+`J76dFg`B5X8ipRlyJ%$m=_xSoT$HA4laz@D*po zPxLuG;@3v6JRZR{JdT(zK>r!x9pAA2lOspbm1&XON@bBNtkByc18MxMhwg%IXumx^ zz2;CP>v2*;oQT}3;~V0G$cO3kH<5h5GKzC+0qp`E01bgALdQb$qPT`LqxfDbp!1@* zhD&k%4pJVy+v9U;ZjUw+a%wh0caj?7!RQrKlaHf02ksHG{_0-pqqztymXRoX}QmB{f8NEY~wGc0PSBiCsuKKbFUj zx^g_i{W(0gmO^V{*CEbE(pzG;kRFfNLAo5N?!=W%vAgL?l9O}JfR2Y2I8W2{8BV^t zD(DT++nizH!Q#m{o`Y{d{|)tx=PNy-BcY?AF6aX2O6V@=lhC)IUqOF|c1z%VhCHbk{6^}uuCEbun?Uuw>Zie2GbQ4{P}7^d{&8#JL}z_e1Z2-Ud~clhqI@sKXrSjnKzZ%14u(OyLpuOG+huR+dnG_D)?w zSDL2scx#!;chNreHoDR$b;W41HmN+q-$;EdqOF*dQWD)(+z90y+KLZSd9d6P)6L}0fpy7X6uM|IJ5|_1W64!@&ZHRbjQu7Q$ygjLnb*DXy zHW@iJC!4W;F{urOs$TdRss0OXGMRH|JGlde_QvO+$$amble^ND{K@g;E0#^>vh`(x<0zO4DTy|F_T{NBWarep3;hCm9@-?IuXlj< zgN8w~p?T1Xe6HtG=q~89q?t8eLS+Gez8V?{9S5C7np1Np^j_!zXdS7Sc(1@1?riXNcr1w}7VYs@ake^M2}+D5zrKYSAC5BYpO)*oUrO;aFz0jASXGzT(dRK3!_(P%j&{fbEp}#@<%;q@B(7Di^ z(6^wzb2xMuv;evW`Z%ds%7=4~QJil{%`3mpsiQ01=duomra%jzv!N@YJE2cQ&p?b{{qQGCCfS%*S1q1Dj! z&?lj%pg%+VE#>&x(8bVupwB?hLVt&Lx`kuLK+8$Za__q38@m1=v<`X-`YqJ^Rt~j8 zuY=}5%b>SHw?Pj<--7-G?Q|Qb9S+Ta&Vb$u-41<%)U3&Cx7Abp@1X7e!Ji|bInWAd zEp#{ZdFWZFZ5hY!4jl>2CN*=eUUq>(|3S)E*bd*l%$P=f2R#A(546d0zTOq;4-JLp zkeazoU*4SJ%!b|yT?4%fdN1@5XdUz<^fTyh&?dKY4jrI(nFpw~d7NX`0>T@g*8RnRr0=JkhH#MAYspszsRfqnx05qc5Y zdL_r~1|1BIfM!5l(Am&ip{t-D8L&R#ua~13d@*53c*x^7U@D<)nRT zIpzpxCRC*@u1%tR=0a7R+S*&`MWTHkak}C23&>5SI*BW1Y6Bx};@{8<2yL^9OX;(U z%N>Hx5%`=4&B7HIKF`PJC9Be@^i`{JNO$1#TdO9}=hM)0xbp8+Q|O9qHOKUW_Fm1U z42EtkbA0y6}(0b_aP~SCN!?w^KtZn+!<8zyE;BzQG$0IZungvyD zJ7LW+N?V949%LWx zThIC!^cm=T&~wm>&<-0oPES%ZZQl(Si^#8r20U=kJto4(kb1zDUbjyf(fsTva9oN&y7zkR7JiSB~ zXq7lUXj7P%H~_jsd^Tts(bE>~3iA=aShPQ^sqpH}C2-7xVa>!qO@4!)3Tq*PEIJ<6 zQq0iQWAH0stwohZZ-liGdo=YM{9c%!IAGBS^o-*xO@jxY3+o_$wCJm_j^f%rs`TK& zKZJD_K^FZI)d53owdo?)+w+!zo4q4?aq zEw1aU${Rble|TRJYtf+aexew(s`J#rLE-(yEYK2a-BCohfR2k_2iMcP^D9B;n%W#0 z;RD5bO+6erM4kI_3Fn#)apV%&H6?)tfR>0{#}o<+vd9&Fjo1phL%19>!v~3gt2vi7 zqL=@Ey8SFo1Bo0WPg4+)znBYJCBpryA_BzkI&8H6{D`5VbAOe~82_ijg2Y%&lZb|i z^_mKZg2mICs{CsrhKpA$x;0{i7(9S;QDZk$3U@I&a>L_ACry!{u9}iSJv5CAcq1ZSgeVdP0q+n+Xete;Hxk5TO$!4~MkI&@ zI^7aVH%i>8X%(d#B_7c+@1}I4#S@x#1e}Q&EslepHSVXd6ftNJ>M0Hdd>N6#AL(D6 z_ql+dBhnQReG_moB10r0rn5#Dkjn{&K_-O?-bj;zdQczZ`Kw z6W`w$@jL#CvQF^*jS)WdJMY|re1GFaJ579l<7n(5Oz{1U7YwLVo~$RDdKI5+D7Jye)OyB)bGB2L%Kxfi@}=u4CzS}qDTxI(uZiPrbMCw@h)hM zxM|2!VJ^->)QDB~6+^CzEELW8k0A9}nkL$T)GVGR`Zfp~)PRB-P$)=Q(`h2XqCSz+ z#3L%EZ*1Ug(M95zrsTjC(Z%8eO*w&Uqi2Y7DxH`TxRK~v9abE;ExJTBqaPO+VzHPP zcpp(a&{A9Avgk4IMsn)38-vG`|TpU4Ukr^8ML9*wRPc{=Rdz~e;IRhZ}!^m25S zn4`jc`v>KQSBZt1h6PO_x>ZvQg;k4MO*s@+EjEA_`4$Jg5j|TR04?>c4tkg9T@_O- z4mwTrkq)a3IvYJle6DFj(3eDB_!Ha3;vS;8q9tgl@BKmFN6!-j6p2GY%lzhvSRM9M z(0`)mi^)3OD?t~DiWK>t2=a=#UX*M4ET}2b0?-b+tQ71m7 zT$YIC7A^C;S!@NZ5(9$^W0#5n*Ky1>;#|PY*jq#i|G}A_NBtL$m|q&ZQWR*K7`!~TRz%`& zy3ZMf!5QJJ!~qbG`PH$j#OoHVk6kUYB9Nz;6}&WdjVQNhOYBP zsEOj3>K-j?cDER# z=_R5)^acaMd`|_}`aK{vX!;>|8PR>3*!Jub2Q)PwzKrM@O#_DiH}*mCnx>H9Ud{)_ zM~Xzk@aE2kL}#ZeJ$JaD^I?&uX~ys_&ix`FPK7NP-jm3w$amB5K13Osb`7uf+bM-pgP}9A#0-_6C$2#w$%6PkV!F*313j1Z*Yji`IzXSDLP~*5&yGc9wj*sYN`{v zLb^EVO9Bv9XFM44Q>>c~hctH{)?sXIlAK4(n3S%k^QcKk=cdCUe$J;wUzE;$o8vqt z$`d$po$tFLZ$vyJmTTf3dqx~lB)*`!JR@2ss+iom&xr0Ib$`!@zMwUt+lV|03$m!# zd0Z5zm>6}>ixQnKHgJyfd9g`Ta^Q{57sLySc)mMd5@$i@jMag+J6{$(M{(&qAJ#cv z6(d3CnnsLpIR7c)6&YQEHW6j%m^9ys$~DakzR~#_y%~aBe6vU7hQA>WYI1>&gU&Ur z0==Qr9SYhQ{f78Z(=8*0I^Pt{_|IC&XRjTR5&o9w1X5Q2Epbf)%20%{^p=>ZiO14g zVu?v3CdIrhmTPJ@l4&jIxad7{xAScglEmd57Xc$5cD^HuEIQ=;msk&4>Kie#*6)Pa zswsZtGNO~9IPXkHssR1`wSQpQmvyi$oaFC*n&@ z$wX&Gn{*X6ndnndplJ@#IdLSD!&K{jCXR!6?B>UOCf)|sk)NC!{<-)Cv{tOV?o;RI zA~uWDtrhnWeIb6-bd=~zk(8~%P7{44)@u5i=xg!5rvF~|weuS>AVnDAnM5w*xyM&BulMuyk=H8r+sN(_G~uBmZC)1>g%h;kP3ts}mO^D`dS)Rm~6aYR%9 zh=0emH@;Bma6-_*_z9$1se^H`0okXk@+L&o`gJgNYRZpTM)bU1QhaT7xzz^lz!}MXK4gMmJ4fk+ptVMMA!@2UI5xN4HBTFb-;Zj;PppRuOuo)OcMJpXrnuZ)xH_Dm6aR z>A00jjel!;J=&g7YW%9{MD*1OWrojEu2~&UYRU~?MZSC%RBp7_#3wxEhFue%@RS>a zbUHr8nPr4(;*+5&BS90NkgurDi&?=QY$5W8=?yH-5XPyu+m7-^aLnX(~B{+ek+X}O{YK;HT^p#H+-d008%UZ zN+azyE>EqSwZ>eKDzDa9W6{NkTH{egz8SH#eyfZpHRZ-GBYFX(c8aU%1yauQoWUo8 ztBrC^d?L8U=(UW)mim^*E=gEx3{*rdUvI26LP4tZwZ<5WE=H_1<|(4m*G8{17HP_j z-AJ??q)NZTIIf9HzrzS!uIj?2-)Yo?R0->imbY^l)5VDOhQA_|u)!FviA&gE(AJ;+ zsS-9Cb2V`Z8;$QYaS3-B_pUJWtT#3pPg`^`Vw3TjMH{0x8?9Dy%%#3tsXgyD`f1uj z?RmG6por{5y|KmE3R0zSF=}d6y2oPoC2TS7(sVTT0MT|$FT_4Uv{%!c)Mi_aXEmLo zJKAcT)%0`3+URY@Z=l8EEQM_|y020td`aojqqCWxBX$~D>lAUD-D|90&$LMRJ6}k+&j{FvFpP=a zMy^F?5_TKAEcz;8uW`YmpAsH2((W?TU5q$j+@#2NqqElUQR5$)wmX**ZPT=u!X7hr zYdT0_j~V+lJwss!jVCm{MqvkyXEnX={5|22@v^3KPVdA+#@nDJzTY`pBtCAuugNRU zkLXh!vvZuo`GoO}roM4QiM%(V*1iE0cGzgCDU`wv8~rpTP}mV;u%{o)z;N3Oj32K;qlRcNPs#eAj5cP0&9s zFDdb)(aEAS38#(T7JZfQk>PJqWa3$4v_(H9d~S>dsk(e^l!H`VzBb0)W0tVY?`xw7 zq{6;2Lbh|*$4%cDl^gzz5vs^&H+pR1H^z8PiK8bc{@YltX~pQP6TUarf{q)njUMQ% zH}2B(HE0KDjgUz*66=j0L5oGpq=C*Kj5a&Cyv3qFXb|YQF*2zt@dsmvrnIC!kv|#t zg1BAkjh~H&EV?D}XXAyPoXaAyC&?@3SL20y6}_0WF7a1m(0z(NNZOWo!5FLQ`y{`_ z-;FlARG5)`bpm}Q)BTFtB=1c$wPM0fAW{n zt)@L7=poZBx){+zRw}}3(NkWpiC2rB zatTP;>#O7uO>FtDl0i5oQ!~{r?N7K%?(bq$dF72$O28u^qCV{>M~Tu>#!G6-iR0~Q#HMw@(xjjrV}Yk5(4FXk92`@ zT?5*zV_r;|J33JAY!G%xhw(F_K>2iou(umf_=bHjsW>9d@UcDq#TU^y40 zyu4s}ybgJaaj8E?442)WS22rH_a%hLKAOr>?;RZ?2Z7WK2$4xIam+~VnjF#;+#e?jc4h7v65iJLtQZdJ-y)!z7z9vuQG9~SU(Xp~G zXq6~Q`)ssRzOLz0s!P0V_5sr2+$LU*0x9bjFEbiYxgvVj^TX(PxmFR)@C&08r1+3? zSt=$5+maGxuqJ+DJ4(iA+7Q@0X_TC7(K_d7c|Ay-dnd^!6u}mx$mew!+kzDNo(|&^ z>lAqow3ME9UKpJshCS9h1)ac2OPoGg? z{A@5&UigHGTcTT1mh?Gm(lWms*&4J;tjOq-G)4~c2pcCyT6AsFc$s2RU{bCuQ0dUt zlV#s?W}fxNWEl)n{={TCp+Q&yNUbE3<)P2q>88l1K`LyD6ra1p@}zGAYSVx^H=zC& zT^OAw(-rwXpRqh;svM{3?Tibfr^?w@%z7hV-Uw2ApnQ3&BAoB$%e`NqF1{aU)cO_3 zM?mWS3glrG20K_F{|Q>`+adFwlmhuLO?@(V5q+p)`VPr_FvTT5v(gavtR2w%nHaQOb0S4rZS7pcga0b`#!C znJ!y@#p#y%^100n*+~WpbCMWm)Zseo`@gH&9r)6kn@)-cMoWayh83>EWyu zakJ!FP0wfbN}VOQD#E_1LMHs1)71&y2UN|UwWvKFK)`)qkZ6X!Wcdi}t8s(zmWB4_GN z@(^f==r=ee^=4WAGh&KG*%?IQKTM0n^6YV`OJyGrTaC)pTV#Mm^HXn?H(7L3>ObUi zi*8F@CeQw2mVPnfc3FPjq*bXaWcOb|qI1r;m|8jaf+Bm)#?)FF@;lQadUmrlb(O5u zG@NLS{2a8@H!i2vZ=JlG-el#N6LNN^t|NnK(!;5DO8zEN9?3-%bA#LjqE$5Ky3`G_ zk5pmHavo2;OJ1vqXX9Nm5VY8LQ_fQq779{5eV1%w<8;clZjxWqV+}50AKk-d`J*O2 z4c#o;_^2>G+ukhqf)Fc1wF3MawDX9=Q;tEaqN4BA@l{ob!3Ao9sjn zSYgkM$q1)!f%HhXPj0j5Sjs+m5cI6zm=DUQHE}KvN_$%_{aG44pQk<~7l2gh56jyu zdNbu=dDNnzsr%&@IvwYEK>nzS^E@Emrgw48JRg;_`76d~P5ofZinzyQ4d@PWe$4sQ z$7K8V9LDn@Kjxsk$|8|=NM2)6le8z~bc@Pko|M%VwN5)KYb@%N_Ov`~(Z|=KvDs;F$n}~E#!gIoQ$Ep2g)JQWsq-EAx~A1*i_-oj zLpqx^%a3_iu2&>Fj=L@Gg!Ju#FrsCC@5vBN{HEbaxdf!%_&h0>gYFQ)<1%7S%2zbS z5uK7hYnn*(zHHN#^SndM8~1M7X?d-t<>OALeIQ3@+A{8J+D9^1)8TPnr=5{&HF=M( zPy0l+?8dpQ5k1GBPdh6+X&OOvPWIB2LiD*Dq-n}{BmGMm)7`w=dgB{8T9H^fzIFOH zvO?49@g36tEmvx~o5H@8k7?RVVc*HOG_hCty}Y1^M%FUF@8zT(D8V;s!W+@`vQX3H z3D>08%Ti6VL30&}+b7f;_40E~+dz>$k&8GmA%N0duj#D`!RbH95pzy>Ay|fmwuJ4HHh!w(R915FG$@(KieQpd=LF>A&PJhSKGQ@ z&AF&_18qY5*=< zE!iX8Xj_ho>Dy{jZg`SylBV91rVtgWn8-8P_LK^vJYP>wv%RUpFkZ53CpB?hvTSEP z(q-GG4KUmKsr0e7xgd296Kpk_INb!>ZHiD{u5FV?y2-W&Jkm|IJ?fEes_m#px_sN) zR=Rql(DuF#i<|UbdZF#wfo5ImjUrnR=$ye}MYiQ0Vbg6}Ky~8hpbyih+xBbXz32?v zQ;K}~jjS2AS3u{CTLaIf&#--?iLF$L?N?130>4TxvH4zu{xfC;pG%)<>!@j7@OSB@ zwh&E+g5GqN+u}6wdDbjjmZGNoCRc?mPZPh%RbeXyecW{Hq@U9(Yzs8apY&aNrR{DN z6K|DO+aA#A_*86;?Fmi1pXP6-=6`kGny}UYK+T1 z>QbKxM%10EMRXoH(Ku^Tw7Z{V?C!|E#;NAaq=$_6O=?s^o3w|FA5Ds`ULH2in-pEW zJZxNMN}WB`8WEjH3sLtZ))`%ydJH;e$2?;6Rh0N_%*>=mj4YYmdb)bA!0pVKqrNyF&E z?F-Jxi38PyDYZ+VX*5$5t_HK?XBvOp!#?Ay!I{R{Zi=$yq-4x8{=*dRQpicqm~BLL zXPx4qoa~IJjP|iC$-bUv-0!3CJ*+WYQ8+`I9y8ylXKJ#bnX|xn$;_ksN){OBOp4~; zLPOj~I@Ml(p>fQlXw)q-4&KkTbA5}AUzwtjJUwQy(XXf1mP>t}Hu4n}{8`S!8P6Cc zOqo|NMsjae1L<61oQWfW1^{huq1R(Ng?YZc#Nv&xvwlsYk6 zZM>@}J~4a2_|(iJFTG%VYv$1mf5G^fDLOHGI_?D{DoN?2rv=s+-I!7*X7xrtmB($U zH?kB3tM_Nr8&k}3Q@b9@c+ps4Qe^d7V*^vlvbDx3MX_b;4f?%4>M^oxy`lGKitj#M zZ$vUhmL1AiZ`^6-QIy(X^k9l+fAx?JMx2kT9kR(tXG+cKt;T7lR8Ma;e)Cc1v~7k+ zrux(w**2p|3b&oxx7}#Ql*-#~EN7}tOdmIW$VDqVkxWz+WHGVazwd0n7x@1yx<-N-Y!0!%`6fxZXblTfSi*(gmmwk53J4S1hs-|RD!4jA+cT;yvyAvj<>X;Pv2 zw?WG@isH!kuJJxoDl)uld~H$`8QwE4nUdG#-!T?Llu>ue@;7M^ce1?(nlOIa6JW` z`?RY3rXxNy4l?z&MrS%78lfX8Z?2euHsWJrhDj~VAC!K~*kMxZ^Dm|y zH=2!7<=)C4GvaTClc_o4^L+b=&y3wB^)sk1jk6~8A5dQ#Jw{WxIihJn@rZAYoUugJ zi8~7_M*Q9QHAhjs3eIWY8N0_RYDmGT-rpH{xkSws#RZc_d}kbBN{yaV##f38{-|KV zh*QRQCiP9h5>RJNidMDL#s!n2RqeDP^GK)K$$f7eWQuf_rJXV6*(r}=$kS>6G+O5? zTb?T1GU7*L6jN{Wsn}WLf|>Vh;iW$3j9mpJ`50Ebog;oRS{1Suk)Qu`+P{oeMM}&1 z!Z$~pHyC!lsP^)^nWNA>=<(ZbE;VA-D3e;e^W z>ciCE4Hr|BgMTb+I^qwbnyI(7{QT}2e;99@d4Z18BQ6;q_{!nh&^X1EinN!EpG=Cr zYrSNgR}|0p%f=;DE|~U_mkn7$wy5t@FB@SdMN#;&5yO<)_gpsqVp6p4xoq5FQn`-V zF+%n=sfQfXL8Y4%%|=ZQH>t(Q(`2DZ(cIK!iAk+To-S)mibjDUr!uAXHii_X>@%L5 zhAi|bie{rBe=JiJ%|jUJiCPi%skaw9B#gIVR&7|5rco|eL zlcJ~*Boj^Q-Ur*H1<6#Cq8Jh^hnf_{kYG91q*5LX92p`DOltUpO+b|}H95H8!JZkR zvf893JQxRRijw5^g~_88{`Q5*3ss7u_|ilM(`!7;yY0edzZ%Zt)`rWJ29(W5eV7_9 zD}2;FX%X@XA9YTPl1mkZbtNSuN^UeMS`nhQVCsKj*OOnFg016FKRt9 zMkb6WTPBMz=N%)P$()H^>dVCIWSNiZI`Vq?n2)+|WDB{NDVn!;q_mW)eAMufH^^?2 zyzRTx=O#IYskejaJDZ#3zf~T82Ys{DA0o-OgXtTbn`KjzqHl0+mTj4;6HCU-j=5Q8 zF*QfjIc+0vmix`TxlZTETjU?A9QxsWpSJQqE$N&iRyr$2-X@PRrPlY`<(Ws>vfwq& znMv)W@tC5vIA_PSlVK+HhI8V`cCx8Sedv4yR1c=!4yJE~+RJxLioO+UFW)sO`c|mD zeBUhhcj#;{KUR5yz9VWcKUI0$@9pJR4XE!LP(S&oUZdN~8y;snQSMTo4zj1Bg6}9! z7=4FKFsb{Bdx6SfO8NRuxzwb{yLZaZO^UpGryM<%biN%--!0uK%T0>DTe?%uHz~T} zyGt%NDZ1jjOI|Q3@gFjXf86ra;N%7agMTSU|+ zJ}L+0PWY(lF`eZ1J}P?5-Lm;~E*E^dcy>$|d80{%xu%1z`vYe^6h1-?UyPK@@QST*oliQe5yV&kB z@=1Riy2}5_??v*>3QuXza>t>P`RbLM|V3wD9FR_QrP!zW) zR^~D_B{)8(*O*vYWKtP9@u130NowtVa;l=ZwfD&jvz1P2?fvrZIYdnfj&{$E=_&te zQa8A#gGy&gwXc_amMOK`_ma;ypf)t1UTQ$S-hg_$0rf!x>Jz4DwVxi-Oa7awy;@kw zqJ-YE*;8caWYN4t*!#$@6~&T$)%DJqxIJ3&UwV=X8bW>1hU znA$6-h9o)0lGk4rTJlol245cTijXfc^;qz$C8K%|kgu84XH4xgsh^p8&!mjfTkHem zFHFr9Hsb@P0(<+0#yrCsdNFN}sp9z~-ZF05#4>-8XM_L9UO=nD=r)k&h~#x2wSEqh`%}r=Y|~ zZJ&3fpxj68o%dxyjgLAq?{vXKKI*G^7YiQsQDS~b;WP^sQ#jp6T|d7?;gdcpc7D6U zxjt&p{H}$IeAKAlrG=a1$4vc0 z>%ZWfwn_fVRGsL*AgA{xS-XU^ye-lebV}STr!s|aj~9&Uy;+tlb$gpJ!^*bE+K0`OQ+SR20Se&2ogI#I^;qV>Zh| zrsj&h3noD4ew9b_ws4C)!IWy>HrZ+wX;CfOCc81ETC`10W$H0rJGM*5YOas9Y?rl6 zDJ?I{T}&+q{?CFrg)hqkCe>^qQJ*lSYIs@xz?7=tW!d(5)+z2>xUg`C+@~m>IXmS+ zMd2Lf`NEy@4^wh#*Y$<3$QCcCayaWMd{uTcDcZB|k}i`fy?1@#>+%Vcs=4>o!Z+kT zliJa(*XTX+1XByd8w+*EoAM`cqrF9USk;?Pgvb@(#*3nW9*JPCF>S_EDGm9F%97Qdi~g zOXmjCsm^{skgYcoH5sSGb00V)+ndy=gvFq`D2jC+mgzp~QlG;zhbg7=i2U57=-T2# zIeU{|=SOmpNs-Qv@{~zEzW8ZSmrZKU;v;=N zl|h@?FTu|&{utClOkLGCcjV=x9>A~*33)jdcWf{ z*?KFN!|p!L@wx0}Qj5E$IKGhCOsSKhFXdcC@s;8Ux!la7>wpt-y_rWRLnq`bOwq|u zoa2Q2#LT1X#;@f`mB+SxEu*$6tB2xw`>$mSlcM`Zzm{E@nk-&gyckrLnYU;0+y}mq zZZq$F_JGwHlt1vweBfV@}ECmb}yQx}Dx~=d{zZHB;&&@w80X<+k_vif}uWLZv)PTZEt3`{Ygt3fqj2nTvpyxC+@jj=CW0)LDTlsir$p7y-RUN5C zzXCP9Q^qkXx$pfrAckU5V4b@4c-*K&F*r;l6E zD$`{-$@c`}Xc?#p)h`9icUd?U%ppGBK$=aGjX6)S{9MNWcQq^9-eemNvHmYC_!FlU zD*lueWFet$wrDDIW;Wul^l`lXqBOk9eB}*=2Q3^`m#XCx3tzR}ic0^*;bc$lbA(RD zN=C&$%<1nL$%nc~T1kFZHqSyDZ>9q3LTOVL77ii)$DI2)qe}nWC{2>ODQT7Ye@l;b zbWvItf3OWTxwTRQi8M zRjLBdLt%#g3F;#Fc^YGpKqYDANYUX>`G4hHLS6LX^dL?TZIphE`TKx|P^H3Npc)&a z4SZeX0}WBiGGAHnET=C3af?2ud#v%N$v?VKKD7FZ<`LeA(kMQhK-sJDNrNtaL9T)K znUIW?qxAfT>m|OylG2oH%vbV_$Fr5A)l)5MT#*L6U4%KU7!`-2mTt#U zx*!>Y?U!t4fM^Guf#P0ZkibtuiC~e+wJ3X3TD4b|B|p%6U8r`7_J(k=eB;RP_Y%eu zWOS}Y6Em+NuXH}gxhlO;Npe|biPA%9L+k}gQ2-n8R(W21jwyMLmc%#2NtU6Q5Mag} ztDTK=BY3VUR35O(t6E62F8+KSR6ZwU%F1xK1bxsw0CODYWk;uN=C*{tT2 zT5%M|x(ffF@l|Y8+N`LenU&M*MH(U28tvfd!pZznPFDgAUePpRSXr zTJN8yt@ik9Y+U<)p|a{HwpQ7o(pFSEC>3F7*X`A&I18c8%TaqFh1OAL z9ZQWzor>FP51?{iXA7;n1(mD#Dy?F>D%)76;=IRt8e3wuN98s~rNOa|ysB`rCH)Mi zS1|hbExK6G996F>wZ&3O@vZGrGK#OPQjt*Eqta>=sUBDTMYZcZy3`ocgq7n@8{!?V z-P$jzM%6kM_f*=y+gE#jtfA|v?aC5mo03$Vww7GQw_;-tt6VGJD(|md7Xw+d;<%93 z#RTS9(`mdLp9Q{wx5JU0E`=P`bv*ZtH*f;6ALF!DzvB3NTo?FJM#wAQl7+gZ)eX~A zS(3`?LZz)%HE!Kfw!vR}Lw_n8lpm~mte&xIpfujW#rs2r*Wy@9S>=_5F?{AsU@(njc&@u$5qwWtMG@j$PPKkb!K<6K!~m46GR3_*KZ?>=1R zD*1n~=2MKnHp27FA=JeMOIq7R+ElJ8dowuRE8PE{#x3Wp;ciBy*_u|~Q=Gdu>CoKE zl)P4&>=|j%smjuIhc3t-LyQJWk;gLE;;S*E>?e7{l#fRLdOd$F89Lv<-k3{yxR(Eg z^RQ16Z|dXp6rkQ!W#3GsE2#X6OwLUrC{yM+ zKh>)X>kiFov(-OphogE*?X^_eYJ=h^4I_Mh^Uh_fHYKAt%7#+GjE~VDT)0|dF z^4=BpS^VM(-dYUQ#fv~gyu=)}URY~a-af}Nf3VE|!cms1k$nADs!Oe^R{O2KU*znoL2s9%)b_Ati|V4uXo3# zW`P=Sl-9*Kw$RC~Q0Z#sD4(mf_#w`HocaE=A!aj2`C%E$tOgoFNh*%ovng%LS|zX2 z2Q3;Jw?*w+)M`s<-Q2e*NoCt5)Qu@*R;}_%gDRy^S>@+= z*SPKF)r`9qU#*5#NhRM{gKEolT$e&? zTNH<)kS1+E*VSH-wsl(?HeDF()c(cWm;!%7a6Z7$j#iy5;it^L&nSsxf z_{;=-oVQv_W0Z4h}Ksj=X4K zPVbhSZo}Atu?u4?V?V|e#=(r)j5bCGV<}?|FsFAN<1}FTgNuQ9npw~tBP)=;u_zj8 z)GO$nVbP-PQv3!qb3#P&(vC$(v|&rT7Hu|)mc|xkYcDnH1I`mm`xhNBRxM2jz6d-5 zJ?FG+?Yp~jijEtfFI~|qTN~c7tSE%vcvXW^IlXJN=Fg7m?azIfdyha*<+GmvpLq5JaQ3s`0kb=IO0;QDKl@Lllg9i4EWKAaNixtG zD|;-9LOOXFNhXbH>%6E_Ef@9mci)4XVvCo}M!E(#N2|U2hrx5S8Ou5)&e7(BbKF?A zYXs_62jkXZ$zw!h?_>o+VP;2f;CTb}N0 zspGeyogLV>9R&S?ZVFmQ@BE_sfjaP8lR60cE!_@+enWRLJVSi?{odoo#O34hzAXCP zrC5IZN(X-9QwKr6=i7nb#?*m-qc=s+Q?=QG-kdR5U$fll94slFEnivgab` z{!O10ypv~1;zjL-gq~D8MEN3pr z=)G8GBxLli*Xa4)dM>+D`)bAPn4Q``8UM55qI0Jf{+v-9D{g)+8*L|_#EP!Z<@Ao_ zC+K%-1D*>m-l+`*l7C7d^Je$yF@%ozom%a4H;rk-wI4TTJ-4OT3c2RF-UC;lMb$%A zKwD1ldZgQ-?BBb0E~fNfi+2LgX*5F4X@m7M&yDI`s*&GHwSbkgWA?}!S8nNbK+-Sk zlxkg9Hc9CRJ+(tt$e}Aq^V5kpq&f77%Tu6p!060khn|m8M@0F`J5n4vm7=kc4V&v$ zPLH9o)kBVmXIGXKr--#H7mPTqQ4b!64bx*za|Ae|eG3gVBZx!3I)YKUDB(0e34L0l zC!kNWZ%=FV#B&OJDceMP`$@K-x1MARdh<%Qpf|2$3wm!ywxD;aWD9ziO17Z4b$l%o zx-P=~MT5HDk&-RweJI(2-h+}Y==~?zg5Gv%< zqcmD4tD<$D9rCwTEfWXpEmmi{w1Cd5&uP=R#yP;;_&H+WYL9CUzb|5rC|q6R+Nq6S zJ*xLkZN}=0&Xxf$HG3Ewnn6dzmen&{ZMfHVYG1Bi>FN+bJ=iAT(&~E1P>=7_NCTBZ zWD98d{6_HU8El8_`1~8aj%dkC&$*6hBcETCa73H={J&kN^))>r+$jNDpKsTjMk&T2 z%3`c?x?cS8{5|gMfT>-3xa$SIAHf!I(+j7Q>Sfm#db>AEiYIOKxEJ2&)kaTyArUh4 z)`WUNZ%e2b^p=Fufa8m5+%*Buzwi)n^9$4BY67TKUBJE@cdfw~)<0Nt zPU|9Smc^GGH~zV%shAcpanZ06ii$MCgX;rFcHr1jig%eknb?8nLI<7&c>f_s#gX-$ z5~pc-^(#uIVfA^Tgys|?D)1Zp@^@YRg#OdCkl|mJbP$W`FG2Ip`k6`f@bft>h38rd zTmCb@H>yp*`n%hg?$my%#~roY3!BB`i>D*4y_nN`v!J{3Lh$Co0i`t4hm~#?H@%2E zaYdIGN&bNsr^oE%QiLeQBSAx?jW2P?7hYUjI!!M5>#kA4dIokNO zO~o8-DsZz{w>AgwvDvcvkms}(mnzC^`kQNK;@9eqFrHl7q3l4wnYH(Tudllo7_+Vy z@WyrVWg%>*4KXdg>_|Y(vN~Y5b+eJ%XWiTf95QX)v9c6>*t&ZV+v!>6X#pP2UA8P9 z{AugXY4toi>a|_#4r8UDIbP3moV;3x_-{AxWI<4U2#-@ONqxHc+&GcIBd&Qk|Y|J|bps*cMl+Q%oq;>4~{Ef!j8; z>)nBC>B7GgU8*125LESZKvA!*RdxFD4fiBY(~Ek=R$XLobm3Yq2DBcU1WpTJo&MVf z%vRmlNEoqkW>TGg`^GU|9x=4?wyfO5Koz$g^>VYq2&BGIPY7jXAyNz^f(k zbM!46pQ@_Y4sHBlaEAc;m5yoJXB+=fwHU2FQ+3?v|82Py)AA9_r(gG zR{0gYlUbotUvCCKs+!h)^ghyr)Y5vr+op`(n^~q_@3HB_#1%TNT!XpQoAvZffg?Aw zwj&q=#ns0dzXr~%KF#F+N9RRbJ}s^)lEyQ+klVzNO=U( z%KKV%EPk~zJARM;@urzcv4Va@CszEh>Fes_u=6|M#Z7nM7r_fR{)n>V0qV^=QeriF zB8hgY*VoVy69K56J z!uHUflisGty&w3*W{eF)``gBs20pX-F5o+x?-^ecczpBy;Xz)v~8vPO^ zO9Q)XnK!;Ju-}%Y*>mtoGAZ z`t>cEmB;m%Z8ST&Y@0A?PhjS@I^c+HQzsn=ykYr-Nk;-*+b%ly1XgaF1rF^(4`|d! zN3@5xT|efCn7a*n0$C`k@pp=H(r=DcWs}FEw)(9uHi$ z?2TG2h+{b0oTAZtbwj|xJ|U>=<@BQCffJX%Q5zlfIMOK^J)hAsX!*TEjo zNJ`LsJ8yo(hAWZylEGYK1kO;d6A?I3B5cAKB_2S!nb;3(Ar5L0qLugz*jk(iwiVaw z5u&}=2)s)SG9qxD`8BYcSSTZK<=sCZ0@vCnfqjJxj1UQ8A23e-&=v1u+l!hd2Zj+6AE0+O&Y@wRB(;tqK^WJqv869Rjw{ zLR-S~+5^DW+IV1FZ7s09b`W@%b{g1Oi}(vXuXO^Z6h#Q`v5pl zy9`X%I^6)zYh!`KwJpF=+E>6FEwmLpuXO|#YWYB?wiH;Ry$LMWP6Mm87B|B4T0dZ| zRsx)&tpHBdz6Z|Gy59u+|FvA;ZtV%+K5Z*-zxF-wpmuW`_+QHb9@S<6k7;iLKi7T%p3qv|0{?3d z08eRCfM>MLz_Z#Z;IG;Zx5EG0K;R$RbfD1R21@-hFj!A&3;*lWfKmDmU^D%nz!rM& zZScR|2iRKA2e#E`0o&{QfOqM}?eM>TAF!KV3hbdj2kfc81MI8+2u#qgZwLSD3BZAR z5inhU4w$7M0S?y#+r$5QEHFoZ5SXXG04&sx0iAkK2l!v_1T5Ew0IT&!fD`q#z*_w< zaEcyq2mG&h2F}pafU|WcaGpL5xJX|IT%x}RT&{l)T%|X?6aLrl1Fq9;z)kuSz-{_= z;12z7z+L)f;BLLuUGTr22HdYt1s>FQ0uSq_fJgP4JHr2Z2JmxzI`D+P4fw781@M#} z+6n&Gy8_SZS-@ZQ3BU{bbHG3JJwRcc0!pLh-SEFL5ZJ`10Y(`w0-G7ffh~-{&hWp{ z1=!jc1#D|P32bld2Hs_y1a>xV>H_~8iNGGlcwkTCJz!tsS73tC?jHEx7y%q;)C1Fv z!@w*<>k9uHZGoeVOkj>N9++or1{NBh1D(cYV2P2?4gNP~0jrGaXy>@c?kSu>iQrcptdNxBy&d+|~pBHwFT?85O`C z#*4sR#uvcdMpP{PkKbd0{|y)Lps^Hq*!To^)Cju|{x|Lges0)-CyXh;Z;kc9Q^rx? z8RH`GtkLRz_}@qbUN9a6{$b1k3b_d=w3eJ@(JK@`3!KB+yu;#dx3fKZ@@x%5$Ke+^noX3W}jfOMBdvs zSgewXz%_CJaGgv8ZjxERZ896ULyiINlDU212U!T*Ctn5bmr?!T2iX#MSh|2mx%SWH zJfu&^&A@NvF5oHoKJbkE8}O_=3H(+52)rPTICwx_2NVIf0%gE`z~F#1V0u7ZJX#d+ zE^v52%YJ6Bi6pWQ@RAR7b5xBU2uxJ(dEU>OMS>=ry8*dzF1V9(&Gz`nt=fC<6#fXTtn00#y?2TTv%4$KOE9XLGr zJ>aO|Pk=eWe+T9T{~K5s9P$AACHODElHl8b2_f+Vp(kWHaA3$vV0y?)z^sthfWt%f z0Y`-#0Oo{Hjd>v-AYB-89Ow-B2e2gMXJC2A1t2!kgD_JE?2VN}bEFsfyC7>%)cVWfFc81==H zFzSotVblw&!rn)zHDMnP!3+)i6u2p@)lkgPFgI{V*ayH}oZijpePR8FVT6P&0v-(e z8F)A>c{oO9*jC`NFp-TJ8a4!YBJ9QNV6m?W*|Wb1*>kW-8rpKU$*hqWpG{5yFEsfX z_(zk_Q5c`$?SL};K45ToJg`al0AN)3XkfGODZm!t%Yd!IUj()ee+}3+`~zV7@ZW)V zg*O?E@e_U{ut#`0uxI!(U`crT81z*5Twrzh65zz}e*$a62aH8eg|7fk4Zi@K5uTQV zm=?YqI4@kYA*O|o0xk*P3|t-_I1Vu_oLagjd?eEA!e0b#3cm>47TzQm9%K7=vHiQl zqrur1emih~crW0=@ZrG2;ibT%;WL28!q)>o58n?w5#BNnGdlc1;Hhxxi!Od zUEr_b$AK5ZPvr%RZV}|q9uc{~o)M$$!J=;j^>0Fi4e8{FeBi){B48Fv4v(ObFe-vZ zLJmvjMbJnnj2Mv|BB~>5?IB`f#G}C4h$nzkP%1=BjhKb>43r8Hvm^2#IWJ-!IEx|{ zL-TUhyoxoiiJ)kUEqd47+(=8&&s#cNI>eifY z8%egck0ig{6-j>U97%rb7D;~V!PqmByw^99yq6G3(JwjjJ){Rl9tNgI(tOE^B<~H6 z{1}{3k$(f`M1BR#i~JT?7*A9+($-1Ja8kTLYIw-UeJAc?WP+ z#~#?vtv<*eILvK7%56W!GM}>tPOt~Q<+h*Vwx3}<%O3cZJ#c|N@CSQ9M3Dz%6nP*x ziagLHiagLPih7|%6!k(YPPgWC+o;~KxqVbT@UEz2V7Dl;vj_8gMrDB0H)4(Y7cWKRcpm z{OpRN@v}RM#?QVe8bAA^XyhD>qLFhnipKDWP978j!Neo4msF>f-qGmCfDe!X)jo8*P6cyVu-W8LEbmtg~joo5y z7#t#c#0)`%>={E5wQmeX%LK;cn7{&f7^UE0l!Aw2s82_sEIb@T{?Cgc{};xP|DDhV z566)I%VWqV)zAzN$Ix7>jiI?VC5EES)EJ63Gh!&(%#NXGGcSfB%%T{IFiT=6!Yq%8 zLhY+y72-xrbEMbB`~|ov=4Rlwn6|(jF&%)rVmbkL$8-hmi|GN}AJYqXm@PlbmLEfl zFp`<`EptwBTh4G>&T?CR<+faip}zYghWbu4rCyUwslS4oQd^odrM5&h<+#z5TG65@ zwW3v1YDMd&6f@g4rI_h#Mt&=4MmvXH&E74<4!PMO;J#)@f%}_%0X*33R3X-jX4FTg zn$gHV(~RcA*=968e{DuH;zBbTpMNx?u_~I=7?#ax3^!>`BQ2^q^+>bkR9B1Ud%#)OJQ295c@}V6^V|p9iO=BAPGY54HMx`6D(-T3!rcy(Ud#BZ zcoymR#6I9iG47F0xHrQMoXh+NSUyt>1E);X0^>zb-~<24ODat&%wb@xgbwPX;hQ@Yc`)eT@)GPYxyA8+L1x>niq! z-PvSl#olP*oMc=X!?`gef3hj3uj8`U6UH;{WxTZoa~M}Lo@BhWCGl@EP zPR>|oALmGCp))sbK>wNjtDV!Gvz_yuPdfugtaiTW{MhM9Jn8(&>5Ti;dD$6Vd`od^ ze4pZ8y>p6-iYtp}^_x^Yt=Qzp!`g~HHk@#8hiQ>z} z;jS20R9XvHYgb!WXV<;1ey&&gjCDQkn(KPW^}1`H>$;@qqz_$RxdQFY+<{|$&%4$A zfcxJ`!`-9Z4)>$(8uwG~Meb+a+ubMKr`%`U_m&JO8C+6O;wh;sd9vi0l8q%=azOvL zOFk(1sN__MUK&~&S$a$9?Bu&k$0y%c+Pn1WZ;pyz@?&pFIEaEK3e5yT0u4)Inu49~eaS~aw)u&Si0 zuIlwZk5@fewYX|U)$>)`sy?jxwCYk-=-`m*>#J|9zNNZdb;s&H)ydTv)wb%&>Xp^& zt9MlItNy(DLiL?v?x=~%7*dm4Q&Ka%X8nlSHT!FN56nw*rM+MCQO${(pKAW7(Z`36 zj~Rc{`2DE~jEF=^N&`y}V21(Q}zS~F?Or1vL%IO)?#Cnx8;um zwH5Z$wLjMWt2UxeD~Ky-Q+Ipaopm{d57ZUamDE+#jjx+hH@j|r-P3gw>}%?_)V)=A zsIJ<6yza}opXz?CtBt$u5sCZIf^g4bC}va`W=}Z&M~E1lgf|n-#Vxqo>~`F3)()rP z?ZwTaEABY^E4aPD?FVkW=!AR8?#3B+7m+IN5otIPA0fJnv5?BaxwswoW#!|Jv;y3X zR)`aF2TGRW4zwDS8jthwi6~i%``7AFdNR()9~FafpIC-?94F;7#c1&qG|h#kd5Cxm za7w-u8ka-k3Q>$`=@KuBDzOpTwm{ofM7(X#xLr&VFNuf5%i>|2Z`X>Q(Eh4;1gG4S z#cR<1I_^T-i@VU?LR5Sk_m>?;O&{X!vrkdWXSnn13*343HBQn`<4&?4#M9!Rh{ZqQ zO#Px*CN869O*qytZ4J(=x8bz<3%mg0gt$Zd8Yk4>h>jZWOw+y-U9?l;9__T~ zu6-|JHGy?(UW^cqPG!A?DDPASoYH9$@EOL>?%v!-i0>I+>rDK&7~g07r1LrCe!=+X zxnsI?=qp4~mrlU*-6G?KNV=yP@b_+i0iMPFK!}0&v_?9p`)$A$-Knly7`t@86P!y; zy8z1r{|b!l-V1oPNj&f+Jq0-Go+{w?-6sMEa(W2k`EIWyP>o*!Q+rS?s;+T8{+cL+ zt4A+jCG#ispc+%OcyONVK|1I6APeVdq;q+XWbl9QLG4ukk zef#tm;zlhIc)nXLo(!tUIP`x1|UZ@cGH!a&Yt?43yIWX>HHMCnOM zr1=rXX^bNSZ%Ps3sid~R=aR@XFEVanRJHU-_1Ad5Tgw67-m&(Gn`JgJUhG2hr&6hZ z&!m#gtAieTz&p}5HC=~vZO|6r_B3jp%6%=3T2UXg1N_}-q~UzGn1NTT>rl{BsY3je zL2bDlvK?ue`6}?bkPE;eA^!m$4wh-&UTz%`iu9dXR975hRdhRWKFT6Ik<}5{d8TIaJrL z;SQv?=eU8Yr4hCzNMCPz4tT!X4#qt|WrKAjobUF@Rr#BmJU_(i&-2~(AlP$Xey?p9@wZS6SOWSmjd1HYe7yfdcmSR;X*`nEC{?}LxNMD!Tj6Ru2D6xPA>;O(0Y1)cZjz}jrT$&QxPh@g zB+)L!uF?m9k2W0)98gR$-*>Mo6yo>-N}pWtDAM0C#y&-9>ulG zS91%Vlfd&Wyu)cLLXf@8umSdk$zibBK;0f7yHoyO&kE~ z;sY@Zct~V}a~P?&utOp|ianVwK4SbBdovxoCL8b=_Gh{{j@_9i{sz=>UqAuy z@7VF_xJ$nXcnW(qdhw?lGXDhX;%Dpyb@4A;wd&%$r~v+k{hTiTjUAmXF2OhWMHQfq zeb*$Qz;g!ZS=_mbXG?(SUp#4m{?#4@-laVb?5IrxcG9K;@7A7#-6C z%{W$@3;r0OCT!Y#q;nX@X$!&01>!f1w8g*zJb$3$N8XnLE45|7Ds2U@T3ZRM!G2H| zq!)3yWWYcB&AXgh(=Xs-g7Xs4^hRwjaFg~HaI^LfaEo>T__FpMO6>sZxSQa8;BM^@ID3G)ct<;e z^nM_ER{IF)!$9<-_A&6N_9-|YGk&Ta2j>&UW7=one}>(yF8;>&x%L$}UjTLSC3d^$ zQ|%-;rx}0H{tnLfjAyX_MK3e{ggvk>eq=nW{Q&;YKwaRydr1ER#4n3!KOy}u#^1D` z!8s4aFAVCxAl-wpkNz)k`U3GZqy8Jx@r+6OMQ{=s2k5^eovL2~rt6o1S-PfaVhH1K z-OzL~j4@je0DlDIXgvu0QH*2s5TtE-7%*242jZ=|kSqdXF6+_2V!bKQr8ftb>emB3 zdP`uneghVJexTnEnL|JwcPsQl`UvAkdLM8;1Zv{A z-Vfkj~b*9QUr(9?jI^}#@4WI|p8>LS1x z0t_;S0Yi;!@WYLfNH<}OG)5zxW{d@<8#drzBNsT%utPEzi1}p{AYH&%VK~4kXRJ1g zz^?&fHW|f8PhzYy+~CwQPBBWsf0S{WQ3n20peCjp6-Yn9IMb*CXBOjJqXzt^7#A25 zz+VW|ai78@;2Ps$V7*ZXTyIPUZZIANZZ{r>C@@sgys9={AktdO?>cgl9aS7Zn9-;{SEy@zqH?1=O}c{lJw*#-EKq_-j; z1>(0OWq05)`B!j`0}+{JEbu3JKk%&V1^ij|0sbQU0nf{L;BPV!ctb#cV4Hvx;4J|U z0B;Q#1Z*3S2D~j`F!1((Okn4LA;2yH!+`e&WCQyJj0DC7j0VOBj0L6#*kHq8Af99n z$VGY>5G!?n9qExk#N>biq(?K_0vzDvFy;mnAzctq40HszfkgqOz~X>1pevvPSQ1bL z^aRuZ%K|1qPdTui7^)khpSVSa09(r-;7u|B*j9$&bSNt*95^&6Qrx@Z(zY2d-BdcV zYW<`{<1G=tLc`sKzlA(JSI6IrAxrr0?;&gX@1>CU`0wSA@A$74s{R_G`aF^k2)%*- z28G_oe?vku_-|NfG5-w@oyC76L$~wa=+M3Vw`u4R{@XnCEBoAZ^^eNuExh_ORdJBw32nzC|xu}B;Dpgp%-WEDEf`jwU0i^t({ zK5rt!o^OhEigy>6xLtNvIjXQbMS{I7*W)NDceq{s%F8{DaTVouk(qH-_SKCM@wRe% zf!kAKEq^thNab7zCG1e?x?g6vX>XS z^U6e`tD;yWc);OmsV?DbL8`6T4iTkN5mzw=wF-O^+_@E8HHjp;D(y};+CfB;jasVu zr$Gl^jn^sN<1TmSx}9ZQHrZ~=vwIS&bM4$YN}tBLY# zmzD{CI?h&R7b)>hbiQqzQyFL}>=)#!lpDQz(H1MiD$9efQ>wjOV1#DaODpVUXfg^| z$U$&}BiB||o?v&{3ou+ne|xzptGcjZMj1wEncc@@O^WB&?4@}$B-@=OXn%^uuoUWG zyN8>K0X5KJnneRE-s!+l@%oz#_s*;rmDo;i*hGSOs9xlGmV$u?J>6V_N8W)<@e z6f#^4$x7;x=*o5HIa~!~zc2m27}_btRaS08G`gB`zD!f7p+$bCYJ#6mtVHh&bQfGJ z`XxAQ1ul0PhE$oz^4N0imSLWzhcPr;~9UgavAQ5a_ZnD zcZCZ^dfbShc|4m`pb_b|@DbQz~nV>fw$O@a);AVUIQBn5ExZ-YCtqH{(l;sUiDWDO@tIr z4KHI4*lVukSj4UhOcC0&)D#!nu@}j0Sgv11c_9J=77~i3q{&+(%Uxu5i8zPL=Ba7O zi+7Y1+C2%javM6;YDA{Dj)rW1-3|FE4M?mUl@1E`*W%K)A`ce!x4WEoNTYmm)lE1-hj8XV)f0}>o%CAM-5WLkGE zdDvT|q9(sQEb?uUXnip^YQ8cS9+JL2SOW!qE<||QvKD6sGKLi*#KNlFhP7MR5Xy8E zxE%R#m8;y6VO4i^2^7WNnU@f&u$PBy3=8# za}-c;>e4OsTKr*-@u@Tr=oVWb5a|RVPXp56MX3Z59261O1IxD+1e< zWXnYu{;!MA6$_VlgnLV0HQswOy*|6Lkk>yASI{`8dmLYRUSmJ%E!Bx!EaL5+a_*T# zR{^ePd6Ri16Bm14sVnl+-A+etjXzt_N+`3;Nee5R!sXST3XQ-O6;@-#<2d5i%8Lo& zoUc@p!HT&h3 zRyaIfy~M#qCMij`VS)3@k*P3ADf3ps*+Xs43UwL~pO}#~Ha@vuO6u6e)cz@{iDTo_ zQj=2p3rj|Nzl?qj=(K?;@!4aq!OqO;mo+5Qlut{|N*tc0h{V+72NJW#4$17-KT&Z~ zQj^kDDt$;CbdIHbKa(ZL4(gW`pDf}tveUE1_8ZtgEh8l>dC=IDgv8XWl%$lz3^OY( zC2MTlz_d7%Bu(iVX+uqQR64C+dWsSux#Yxt2`J1miK#;dL3QTX#Ni?%vmcB>agmuh z5R9yheq*h^u(ZA5G0UGvQ4DPwU%VV+<>qi=VTcskWVp-tBA!gB7>9w3&ZEh5rLYQI zG+QhhEOVxjyzi9c${ZekIA^jB%Z5Xesk9Qi%N&w8k)qB2HKuYFuKsY9TwEd&t4lCM z%MjxE8Y<71u&fMzX3lk|>gROW z5KP=9H6BMnA&wM1wmf^W%~K?X+C6*{LKB>hq7a5{PA{_)MOcxTTWs_7lNi+SkdpVh zYDi>MV81{Y(8X@PFjd@Pn4IpaGFrs3B=Xr3Er~wI`ZcS}1~Jtwx|`BF0vJEwh+Y}xI9#wX0ly}z80TWhcu6Gf9e-Aw}1&1C5Qrair9~i5DGnR zm%E}2vr%2f(x%sGN3K~73*mB>j$(7&V|}IL3mwip+SK9-zMs?Su7ah=zXp4V3j@fF zD+jdHx0@#UK@Q&W(`hEgSi?MPA>|cn6_=_gD^Ipn;!L_Boe3A>`pM+-}F;~=831(@7EI0>WEZFnRYAuCmS%iDk zp;39+*g*)1S%o%Nn#=BsBkKI9Odvbe9Z!)E1CVlwqcSbM32nS?!`aC8#=%rK4qspv z>7WB*Tt4IU*H%Lee}|b-*2?n+RPfC1&MJ5EI?hE&hp)G2rE>V$T z+I+Q>3xBRRJX~>Q0Rc4BL3AiNM~bHX<{^=ve=T7|vpn?$7dJ*JA=~hUhb6;z4G7QsU3Nt)sEO(r?oXw> z7h!NhzXFe)M+u?;9|zzt$s0WUwwt|81|m5O*V84+ZID$*2go6pnuh}3Fvnb5MmD1Wm?h_IZ46c5asGP61IIGc#`xW{A+0wXd zgF)*rS5@X|uouJvj*U420B3loB~F#Ge_$4xi`M(%CG&W@0IoMQSj)0|RGY2r2BN;P zp_E@eFD38le7+dFMi#zSyGBmcHMC`5i-IfPEceyRW!NjPo^eG1({Y1r)tT6#HgG0* zyc@H6gVx!ae);r$q=!~%_#4yO-%DU(eqe9YFE7udoC%gk(J5slI}T9-_lnThWyrFA zkE8}Lad9nxHP}4wXF4Un0omWzY|cf6ey=kJ-_`fD^ZMit+ zPKUvcYBIzWq)Qi{oXKO^E19aKkDFLrQeM;06lOKF1|IWmKK*sVIR5ev4fEjfR=BoVP3i@;n zaoNqeYUvT{3S?pXCYZMxODANi$?f+LpYPJ{iG;k{f2$`4y4@uS*zR$hfDA<}M96aA zS4rS;H(qUIs;<0R4m$K|Y@h9{@@kEuVRSWq!@=&;(_qZ|xDAHBkIP+fHQlNimK?tB z=03;uot<1~xj6H>-Ft18=YWIEJBiGTZ~>n6Xvp06@($sOENds51I(P$R|u-Has@L9 zUsXAMIhG@;D{8dl{Aq<2xvObyP+c)i8@eq6w>_0%k;%hlDP5GfXnTnR^$J%J$4ll9 z#0^SH8W$`sC2O_BvhiT~jKs{0p$UVqPRH3t*gbAlg4by8kr>NiQ_H8yY6nE}h@W)v z&zlVv8R9B(xvO0M8m=le$dQNJdf4i#=KG8HbLA0%db}6gUQ4*N9ig4PLRuOc(zuE^ zT=3idu2GFla(Hkv7a!kQ^;j1Lt`KMKHmA>EZ&k_>LvVCsa}{`drJ< zE3E$0dajUdR1q5HGZ>lIZoW^-Tb(jhjV`(`2nS+xqarszarqV?E1Sfy6qH$qr#S@i z6}^)$kh#1sK;W>#yphT48*?e(%^z-?vbzd!BM%qCr2>D4gJ$?IWjM!Mrr`we4hJ(r z#Npl$a~fQclZZs78~Y1A(;Ag`I$3VYQ8K2b zndS6ND=ShbAY6ynPPz@u+Tn-~>TZonHMji{Nqzgutw^`!@eO*cG$pSwk6PWBO9$?a zxdU-Z99M&FXNrpik{ouYw?lEj*C@yO%{QIN@L8^TE$zgn0=r0c6x|6YH0}xyj;-;< zhDv$w9-*sBmBVMoTnH(2g#W<2Q-6G|<2x!B@i?)q@Zjb?e6tPFIJetrx49^ZgEzOFaihJX2Lu| z&dc zUl5@&{}*%b0$b;Cr3n@(QoPiI60faTj>(vgpNg%wWXp~n`-;4hZp@c?Ny$#T=bGZX z#aDPqJpu~Oo=T!Yw_5c4RDcjv^%lz;E*W=WwQ>RXyI(4c_q#!l;8Cco{JMa?1 zuZ+(@Qq!x`$E3oN(qp6v2m;2{2+KOwJkCxWlpwDGNS7`}gAf$mZp5XPFI=YK@9;eR z2l#er6+tE1o^)wfk_O+*5q!#mNbo%bb&vc(8EOTHGYd%D)14V@OkSW_5U)C$<6B}N zG&=s()%jT$T`F~!T&W9w2}sr#I)b5;DSsY~RX0}W(vM1=qZ?RKraUm$3@)j!A5f-g zhjg|s&4Ml55;aJj09{xr2{=N01YLCPDyn5GU7N7(jRROCgJYYLqP7ryEjtf)76xG> zvdF&E?kY$iTqO`A><9t<$G(Xyg8$0YwIQtcq4AP@i4z$JTuVMKz=l3+6yQbpagW~+ z?9uh4aEAnb1yEABEiQqByles zoQ`Y5G@%QO;KVQnO0Qx8fAkW#L-cD|dI6q(pTKqc2-IrEYHV2U8d+L`Dzt*iFD$9$ z`oi2z$Ov7$F}-~w@U?hNU#F?{LJ&g+n&5(wuO;R-<^nt-f<06HMn*; zLe|EmgxYwblc3#%Y3*K)+LYT3QA1_WOR!4lT)k>@7=5maH?q89P+Z{X4IdraLRZBK zRa=rxEdUEw!&yTM#1x%x5l~M6aTysk#`1dYhTno99K(GvM1=uqp z_=NSt^kUF~^CK3+;XX{#L%b>bh3$Zh;V0oHghyQRE)i)`FhM#Do)2R90zK?T2Ck1? zBq-U|z%K%;BvhDlYe=wPJ1%i+lM9VK@++>r3KDvO8 zP)R!@W%AC{vRtjZL9qS>&9OV12cDnZ~|KSsVl@5}_ZVSo;R?rH zAh}9EwKBFio)}=AD(RQa-GVk?xgKc!i>IX1+Kvi&YsH?$#eTUwVCoUhyTI9)n2O^Z zAWu%+9Gb>2R)SaA&!mMo7P@y+L-p+F<%S{&u}@ML>f#jh>dUYM*kaU}&nf^Voe8H`+*#U~Rl0X7oMsWc4Sb65cl)bf+%w$++_ zWeN!LzqSyMv{gbJ7r^2zh0|@CP{@t_$PdB=lGA-zdK1>z z3KzunHwSJWOlGMqPTjCAfel#PPoP{OlQ1GCGMO$$5Y%?JC`zv^VzYs`0bw&h@*ceU zjhKNv6aNZZnk+`Zuxg#9;M>F135Z1noBGskdZ|E_q2R`8Ok#ab{SHBALM*sUxP{m| zJ2i0)Mytd%2+nafD6z}r#D%uQgj#iM&|O)&;cde96P5+cK*XC2^o0FR$I>L9%x_#M zXogvHejKOCKBk5Rkg3U7$pnTUO%W&Ob$WYCX!tfRPaOu(N4IdG{?5u8wq!Q`fS>`QGBLIY?Negt#w?l) z=1meJ!b$pK-sjY$wMo~>NdvGU!i`)}%LIsKSF2B6vsgID)xMWgA(yLRfPGJVJ`-e< z5Zg=vrA=*|J3SpK;BC2bOJ+JUzm!j%YO1YYLa&UkfDAJl&fMfDb(%vnCDUgHTIo`o zbbGW(e@-Q6S|taUZ^Ca2z?cz^uD6se_(eH}eM{W?V22^@r}dT}t5!u}wTZ-{TAQ0R zwN)79^r<#)9h#Cf6wqQu_5%`qL@+L?JwXV;Z+V%qFBX&w4z4;~oDOqZU~`T|;( zCd8Gsw!j%C=5n{@L3-CV_R|jXswylfB{2vupmCi|9v|Rsx>-rR@Hs0rAy+^{#P?O& ztcRwZuDgI4=w$e5Yiz+wr54yy3))orW66X>G{7V_bwH=hl;m**vPn1(uvOuwU2 zl3(7O`Ix1;cZsm*4r`N`pfau^Q6+piz#6M(Y-I|1I&us1NL^WqYK2k;HZ%e)1mRZ$ zY=;sM(g?6>$@U~ARSoW|mK$M0S~P=GH!S#IAxe9y4fl&lehDC4jp7=dw=k)!@Fphv zy-Mpwd6AX}ZJ#NeNKI=!Y(dv-ZheJ{jp0(>+0HTyCSN)TCZBGM)Iyj%86|y?46m+e z4=w-|gGqsivePU>hauW!R7KO7in=pUIOv-`kxEz-YA*h-O><{BykO}qU7NlE8Mfj) zRQP%w(rii7Yas*&TMEl#)h-~1{0aa@%G6ZD2wH;pQiay&tftllMj{i37|8?w7aMwA zzF~uj=DZ@yDaSD>#(KVC`5ppuqZ3o+tW1s9Nt3C?$>pUvObu$&YI|B3zgefjy@r=n z@G+An&M~z~F@$-c&$@}3jP;NghJd*VoMHBrq2P8cis8wJP)CYpuzGheOigaSB*v!0 zm<}>ndJN;;yA9{GOprjhyfZv-^;1$mp*wE-YLsVm&61 zHYizQsNCZ)ouJq-*p{gWMx?ofy?EeBg@aL|K`b|kY4nl9M>GL)Ni)4^&>NQH*ZI4&xpgHR?W zf}>(YfhdsGj{?HFM-jFx32RVmmtK0Gt+Irr>Klb=Wy7GbrW&qWJyhH|R~&eKi7i>B zX)+&-6D7gky)6lnj^d#CP{_z^p!Xt75+>3vlREGnOj3KdLB~K=ocK?X9QHHl)^5m# ze0L@u~C%d?OyfidjGC}4n;QWMzF+c`@x@B^fBCWpXKVGU4| zW4i*wR9?+7@?)=XDw`~A`!NW7x3+?{Ol#267K>(DqVXgND)phosVn0+K*8ovGk)?p zv=~y+rXe0l3Vx(uNc@r)gDFsW=SzYUfAGiXX34 zsPtWR0ey!J0~VeYC`a_0#rzBz;5R!1sNw@D@b!&huwO8m5bUeQ)mB$!6&JY4VK{b4 z34u%scTIt4B@2eCx?x!OO_q~HU=Qfq(^zv@qCQ5qRH$M&ln2C-oo7(%R%pLb4N}=m z>EPapDIGO!HMs9~l6?t^qAVT3F-@W_syd64e5@MDvh6G4?3+Nc??_7Epc>G!bi|u( zMMD`&&_D&_2`DF1VpyojtDEr7+v$X}nR2OCv;{JP%p2^t@Ph;hGoh#hwPyj_#rjL@zetRh3cI-mq*&OmK%;$&^hFQ-{P{Iu=HpDxv+5o9(DpBAl z?NWKKZFMWJOzLonFLBU-nd>TC1!Wq6Fj6~7Ak39~DaR$BC`;cne!~C*_DT{$UM!;D zV{wZZ%-Ql2Phw3cMP+<~wa82`iq3>3 z$+oy4&PGZ9OLodg&4Tqk%zl}lSVY@iB*bDFq)FhoOjgUUQ}p}fk~@ilXAbPXNmkn0 z=B9zO?lMYeO@hEbzh@?Gk5qMzSkDHLz+2~#bbGq$3^(-L}z_r1z|-tj$#C`;$niv zD+3ey)J+5506i*e6bGTsPxY0n94AiWm+gbs%4OOO-05Lhh$`o`B_ zsRV|u6T5Ih(Segg!b0FIkptcoG%a}A_*YrywAFG4gt=c);h>m-#ys}Km59P!7XkBG zv{{{G3k_4C+uFkH2oTdQ0HVl7c?2tl=pj$8WaUlYi!5Rui#U00+-)MI7ZW^t7znD_B~~sAxfZW1hF`LF8wS8gvw~Tp7_MkUckedb*f3L9>p%DfC9S~W zR(~hN(5<0?3*E{*PzD987K(w(?X8!Eu}a;}S<}I?cPlrJq;oJVRC;=*f;d8Aaxw`6 z3l5P>V$pHvR+=D$66UxT&b`DiLE3T2yOPw8$q^ZBCs6p(t*a|@lfe?8>}Exj;=!H< z{V`egDuYq5Z#r4&RhcPlVWa4MBz-3gl=I>2f|^3mj1V^0tIBK~!^vXGO}?ld72P&W_KK zlsG%fM}u-rJUIzc;w+xFaBx?A@S~<-$At!)tgBc-oYYZ>rNTK0OQ%5uEjDJ6qMW`` zc_K*8c~mePxq_SC=C7Uft-WEY8} z!y25)y#B$(-4#rv<(F<|@*=}1)@3<=o5rvvPD2{iH#dX+WEGo*+RDsT4N;LsFXCii zM~2zdH?%BOLlBp|+tOsZE?(&iHJmYsHDw-U0U^F1nx_>@z)yCfLgI@qN}Ne2{*t>R z{1_1h_!Nq-PoUq7mszW?HG^cbgcO)*@snJr$3`;0|6-i)n1WXD2@#%vHe<_^82w2u zEx31legelyg+USGA&~=Y0`R1#NNcC`!e4upXY{H`$aY8i3u8o^x{gH)QC#(y6Vln5 zjxTt-BIn&(kFy30JCgtt$`1z9tbn-w+)mJ(c?ODloFGLef9j(AA;EGI4k z@4PUkC0*oax58ZS`1VAFKBvYG#a2#~k;ILP6T{gsbYAcjv z{oTIP?4-*hF#d^t$q+q~+3i- z?@1c!(S7L52@lg3(uNH{r-3pJw`x6L*`DMUq_~Ty@U+tqLU=%GDm=`RblM;deRQ5a zlNS@8o*HC%wLZU^m%+KcPg0J^0ke6js+US917LmCQt*XS8dLF?21>myNF}BoVk^>} z1!0r~2a)s?>q!7UCUm<65+u`>1-lC2hV%tzACe>YMUq>Vg)%Fja*D3VDNNdAm&Q0+ zGyv(uXn=>4r9n`fN(8D$J`u%QHJ5e@4wBfs=sqRV4p&i_b*GBL{Gh<@MKGd|yU98g z1iP0J;r1=IQt2X!R)G`JsmXXqq<(-CJd(DSq1~OZ>87Hh_EeYQ7!xjXU?u_|MsZ2u zo+V3h*GTDb+g2JZ8wlak2-|(q+qmP$e{exCJ+~6vu$_6Fw}<#yk7%rku#uL=f#)z+ z>KMg+?v`NIWj8NeG_HivC}rC)`L^wsd~4eY_o;0~$Fl$#GFb2#yuuhF zXA$;7BxpGp@oZQ)4ExXo^<)%6ob5W8M7u7PyvTT=U&4{@1nS!O+A8K$3BjP(Q0 zZg(L73ot@N;gPhOU(_+C2tFB`w08hA9TsFsM~O=ez#5*wN122Tk-n*{@&eg|5%)TE zR+v)l8#DqKIPtW~AG#cwAP#{=-ld0daZ_!(s-y;CPScV!YWB5)MoZLGf|@Pa6`0sW zQ<@R>cGlh5T|j`<34@5Ggz*7X7I+Lb63`846z2u-WYXA%>d7E-d~k_}-brPHc@0)W z-4uu3vdgP=nTsTWqf6n2Xs%6*PQ@3Bb&Pg=mEG4u5{#32gggCh^-aZxsjXpcc#*?x z5@U~frv#W~YhCn{Jevt239m8*%ak6f?MPNiriI~$g-p(K@ivI5;9ISjxVYq`dE8C| zUjrUmx1x05TtMDx6aK_#!5}`A6MZ*`SL>}Dre?x$tJ}fjfO0k=a-hiAsD|3t95+l5 zp}K*OK=M9EEwhgEOOx@e?hSZ6Eg%sMZq_JzX~P^O+}0^bN8xxyhM(#ks^2sLRj}WV zhElt13}o5DNhsbm2l~-g*axMAC0IXNQ@goL&w7-T)ZLx_P+P3St5itllmuf<4M=`W z6jdWnXzMVN$syAUj{(xmnuzoWk{hnpl*-kUr_S-`)Y+%y>)BI0vHav&K8H%>Ve~D# zv;*E{@3VP=FJukAPCk3eeNlHccn~&z&YnEwZyqpQhM;Uoex}i-s4h0JD?5LAGu$^|gV4^5{sV z_sU3V*kuWhIQh%6ctXi)15A~M%aSK83CEku8u)-we!P5Eua!sL?#zu!~W5a!@Y)%^VDdItF z%%$F5WEvY8!8HcB5&<_6NJvyz2x6ps8F-9Vh6Zt4L%H|m-1=q`$;A#^g0WXWyxQA8 z)>p2L3=P@K8Zi zAnKL!NRkp)PLLg{c`!lJOM+Le0da@*MuzjHYD9Az%h1eiHO-KIgqvh@pmSXFZO|(9=c1KIFeDwiQX3n5d2r|o*u1n2 zs2k6N`rk6 zrMQx1827uRB6%%L97T1db_qtfIC!A%Y))u49gDSsCkDWX>TtO?4y}|=p8&N4@xC}p z?~Bnw^HYRZ-^6*z6l1&*Ck`HjIJ5(a3_v3IBf?z3Xa#b;RuiUDEIjA(!SHo~uiZhlkRO5gPLnEW*&wZ|x zleRR1k@YgQz1%uSRRbLzLTb zno6}ghVH4_i!f$BH&w^Zf41BU82;L#{Dg|-00;R9Q)&pL_`q-+ZV>>NRiJd>TB7qn zCm*!KLE1k*377~x0@9X8MutY@Dx|nLXdmS(C@8`$X%MzSw&6qSQ)!aU>pN_zQVR8{ zbh}=tjDYs}y`;a?FiNvgPl|DsEZN}Rp#j`ZRfg79ec6t`Hl%u~a>1!MHmEe{l$j)r z6)bU95;_hkjgDFwmK11(Pn?eAg``UrIrfa??P z?yxGaID;N22+DP0gMA}Dh$sBlN?{@iiP8+e+*_?Z6Q{CadFjySvQVX37b;L462_CS zWH{5xNSLnz2TDzrLrsauBc()mev;3a88s*oV?o)j^*!55S{LkjUxF=1q!QcER9Xij z;OGc6!!1Xr!vp-BsPx?;L?jKvrw%~G{Y0{7JBb9RdPszp?;arnu5T#RsADKZwy5K7 z4aps#0(3KcEg+~DL6@p>YUounQJ3OjBpsPBlD}0imBbP)70P+T`7%cIP?whS7*o1{ zNnZvLJ6@(BIY#i3P{*iLGKYtgoWe?o>2CAxiJqkd8bV9B5lBNI>`tVDT!LD)j9Kqcf5fCo zVpPg!YGb1p&gH?i z)}GO)Ph!$1Muja>36N~E>T8&852zgoP#}*-p-V;+@F)pwLZY>MZ6-fH&~2gwp_wTW zIZ=wp?3ACx0pSFw0^5}nT@f4`Sge#^kTK^1oD_~sIZ;BRoNxy;L!g|r5rValI@>1pq_IiGbP5)| zTpOrbwNMYFJp3qEV?Bjub|wjNwbK!77K* zESuFuW%2|Q_-rm8naS7RR~pVKhrwZ5h;+TPcck23hHW;GliD)X@~GO@+0Z&__;Fv8 z^p!6_m+0*uLiRBjar1=BK=a3yKDw_3tsrO}wHcWq|U#0VMwL-?`bOff4n7mjeGE(WPnC4KZqOl6#eFVx5EC&13?HFwE$STZr)b^Rh28~tN0;mDwT|If7wfzJ$ z_tAJOHDx?{ORt!7CB$Oya4Gc-;6Cu-${@2NuKX&hAvM+@uQS^;2yoaygYUK3UQLHt z1wEo=^+RwE0s-`+uL^>)FF1>*ehu($aV4S# za9JsVRb|Xz*@gf_t?!b?f}P5}@H_PdNXQ^AB~OY>(s-1TL_VnRQY|i~I{X?e_O<@k z24A))3&ph`kCrjDAl3PaSx|ooD&NqR3m#|qAeaewbz%F{EcR2vy`7g<$x3?gtt;(8 zfZPaXCg8~_`^9)WGZyI0%FJv!X!3?$IX-zKT!W?~GrUl+bMNNd!rFp(yM~w5)=lrN z32beZOSG_xKd>~p1~(Nr;LDjGQ!%Mil;g*>eF9g4$e*rEU zvx{)kV7X>8SnH2tmams@uC9zLl;QD}ailHFEoitDXnbx_PB1X;8ZZ5d@^D`w(44$M z-yPZi2RAYChFHFu1i|%bBKlfpl(9$s6zk5bqNl4~3&= zbw7*vIEv3=;M)cg!P~-mvDmx5kI88YOUua2v!&{WIv>|6;ns$$gs_u?E^n)P^B(SL z{w-|r!4_`$O|CW<%-I4w5PS{|1Xp;QCi$KKVX>V8O^JH=_XGw=CS=lfMMdGm2QX}d z1zwzs%b~A||H!ibOpGnUD-1VcuGY=+jrtepYKI2WJ!KL?p9*ngnY_VQfj+@Efe9@9 z`{WHcy>M@%xhl!7I+}uQc+NR?Vb382Xo(j*v6W@=hTVk)2TFXv=ia`I-_#dCUtOA5 z!pZ-WH;4v9>tC=4@xB)y=)Q2r3QjOKS9#6-qFG+MI(2gyxw&OT(3%EY@fcsNF`LX* zmrSF(3HYWraPq9wRk|8VB+t!Mw&G`U@B1dRT-oX z!4iSpVp9!mJjD|iQ{c1l%z}?X0w^>@FCb`^4dttVC=MVI`RllY_&Kh_(iz6{lPle z;l3_8MVM_CzRMjCwqu8c&>h7|Yl5kkSLVR2VVW>61+NVbWQE!Fcm&%& zaA2&#fHI}`tl@PYgPzo?Y|nd!u451W$EjC59132MD|)DzoHaF%?XvVWm9zbXB>}{S z>6<=XCSX(rD~gY%?#wJ(un2aqY;|{X8kH|SLk$NmK$U_h&}7L`J8`J=Ug!C)#kf6C zHdIheb}{2b23sAM%nws>_9Wb*nWSfh6L@rl9)`|H`NA`lr20v$2`(Q^cGbCqh8Td8 z8sI38^LOgl*Dy~}$yW3EU4(#T89r)oY7I&xFHh4OhK;3>(82qMSl8>VU)F}i{iHWqL^Miw%!q`*$$SzaJyFGg^MVr-dQo5+cf z9ombY#tC^)4}V;K7NFa)K98f`@?z@~aCc@Mvyr3JhJ0{uf0al8&|-ief-cY1=dhu{ zr?iT$+aY>v822^tJWRMOgYzfWa8U9s9~R`ZadyXN-_+H$nHlbt@JW(4Q7e)!oJVXa zsr$5{`r%M4TQljL7%;(hB7EGuV7Ag%PcL|%DfbiI_Wf;fcyQiYr&nFXfL=XsV?F4M;>#s zvRbG7Bt(I8VP$+q?)qS&@SO7So4caHW|Nu~A_3ejxkJTFcY?8w;4fa4SjYZoib2j* zmfeLym~+|_!KQHIfxQUYEKN^ih%o6@+;vD5?-d7uuNdfiTiR#TVlw-E*U|S6~z^L7|wam;S|{qZ_+hT z73z_uqWy+yx+q?K^Yf~t`;PWJ4{n5G`(W(C^x2ZwAJ_wd0Ny}-WRm1Wq9KpU{&Ywzm6Ad> z(Q>39g5--FD#86E3>Y5A0Xus92tVVan;6n(8^#URXh@#M3DxNORB%*@UQQ{O({Q6M zZ>rRfX>_ec%B|JpjdM-E37^#pr)xc5wsdXYQN z>>K(&#t7O|uz5Zb{VJ3>EvT>Jz+>8m+$s1(!m2=Wtn3(WL}riUwVh%L;zfjPPnotc zwQOke*x_h5AmqO(NTyaiw#}RDTr!V!Ird<6;z&kQaTxDmAOT(gYjmllz{? z61JTH5EEJp8gGnJs=J0{oF@s%tVjs^FcOr5tgy0-{WG``Rv-u8$zCW?VW8o=`l8uE zFCKNO2StY8c;^WtLTeV7d@S<#4TfNb6)-l$niu$fCT;?-?ooS4wRL6CEN_8{MdO7Upb${7r&V)Jejz#~HUIV)hNaPWH>;3TS)n z53OA~CP+UaD+Ql=rIJkcFjbWKj$AQhuUcB+);2cy=n|*HW`cIWpiKtmCRUc}OVg{z zuFNe$9~;57G9bXMvBW{hjj7-sB{_{xxK!KEK#f3ykr!vss3KR<5kMMIKqmaW|0-G~xaAzwGmLru3ZM}{7ImAjOV!>=#b6+021$lF^U{h?hKcloovX>4R6%kxtj=x15|O{=MteQC>B@-17E9gcyE;2p#~cbBkeH_; z8Kh(4WGaS`@?&th%L?vCk>kQA*oGiFZ!rNK^xBdIdm%~%a^Ys)h&H;Uvz71|c^Ry< zzhVTN!Ic*?qQ??LkxG_@`AzXYAkzSYdqCNZow#6(93yWPO@5~air^D!kLsfsIQ1}k z`z?3(3QPzjTZA6v9#hHd1W@HweP@Zh3*3KMolj>G1d7gL$Cti2oU#Xot;@a3ps2wD zh6)5s3$X5jbvgZ{DFmmf;EwIJt755;)*M~J(Y^z7FkwK11%Jn*|h%Fu(-j19P;cJ_t#|$1B!}C{xDg?YGV+gHy)sokqY;4`jZG+rY=`s<}xX zD8(Y~k`u*!4ldU~Cb{#vF{i16cNCE7HBwg`#7BPiV`Q-5J5dH@yh1HF94GRZ)uM>< z0d+a$0>Q?eCZscb8O4D+#j5DfL(|Z5IT0I~`z@T#IW=#f$1CY!eHYvQ5;YPS5|gRK zcyjtIW@kt)3J;_@e??x;k6#5KDj5*8Vt>WNQcnubhsf3f0Fgd?KR*vSC|~T3h!N`r z&ceXjaz2DrZrE0;V!k@XlTf+P;E&*?7o|dRd;2kHf)DH>qe7j*PWRb4tQ9&P6r@u6 z3{58_gM40|AD^&e1<_3o25`ruqt3o95_0K!$PyS31HBz&X($nzIr>qsU=6!>ejMwI zg0Lfun<0hRfnUJHB#^u12}BZX2&>Bm=SCtdATaR1h@~aK(T~!in+Qy#X}NF=V2S5xKYjoCDea` zQ}`iWnZ@*><8N^&nSltk%z$1m^|QC_ z6!Z{@MQT_{R%aI+L&?dL!D;eAW(-0wFmtM>dM9iTNeJ{lta>Jiu|hoo&nN>5bHdaZq67<1O~F-quGT=O&hl;`sPs^pWz3RpP#ttH_T-vH zIl5>9`VzHhp(h+FPv%SV2?%BDLO{ym=zFfANpHa?xm~29M-9_>qbI2(`18EprE7Xq zy6qcOss_ie&*3~Y&dCH9|1Bq^u(2?aghWLO6?H-~sOqKy%34`StfXDb*I_j0L<<38 z@R`P_P&c0^8W!i~RIAasX!K%dQ|Vi@uX_w9*`!`8wub3`l%omeEO;uS<(ACtfw^ zQR*Zy!3mP`2PykJ}LtAD{v;4fKCo=tQTc%!i0ZCth!O*MORj_ z>%=SvepdEfm1HAT99>fBqqH>3v%;?|(JXt9o#km9|B6XEeM}^7eDeDE@*LV@S+FxG z(vD}4a4g?hWaZ$fS*#(VzHqaFtWobD04HrQEi++}qGc^#FRk6wH_a|Z;wB1^2*QEJ zGMzFjgHyX;yK}Z_d7eR(b5oNNDARSXQ2-LtyZ)y_-?~KvhVYBM@I{zfF3m%0HtKu9 z(rGe>+`>)o7|J+bv%G7-`La>~PUp%F4}h7tbP*NCh=(#Tm(6jfW%Oj7>~i^jS5vJvpRllO6=41**Q#^ zfHIf`*4!0sIqDdqjS)VY!WthU9bmR z$%IG8Jz=96P$5~Ll8`Y@kH7%bHfUw^LTRCnx&Hjz)$1pZoj7*-nGc_wby83MR-_Zdx2mKAJCD7rP%(PiG$IKNoWv=44ir*D;T~a`}8?zrb8Q^!# z%p;w7v;tl4IeD`aR?1mKIcrEeWR?Z~IAF~oY|-@Mxq#4l zgs{L?>J~gT6`Y$CEYNnSUgzMMSLs%=5eLi zvV^j(4bmNg4P9taMP9bWI50E!x!R?mb}oaiq%qqE<`82ZYEepyEuW*{NyeJJYru?r z`kXQMlOD^0DQih?CZ~hLA0TfMUp`ZDV;{6G$|a=Vaf>&4(SaDMX}bnoZVB&4Jn~F0 zXts!dOTerLFs95=V9cJmr+8P64CI?I3+ zQr5J)b}$3(t(I`&0CK^Ijr=osi+lbcLdiWtfa~6&=^%6hq2_cJS{XDa7qE57Uu#HB zF4bO(Jo}$F4)4zZ*XO}!9(RNs&%)daL$kLB)H-TD0}3^DPJ$v6DASd1TG<~;nN;TIbgP6U{$5KJB{nLWK#q2=%g`O0B_ee>;rzO4ebj(RT7=e5$Qk!+b zbu0KKFFglpn6@>+-(2(~OHab{Uh4NC*E~{cO-M&Vb3J56V%SFJ#qHp@)^3phP!*hC zLLV#vM>m$4&S8`nNng-$1^>p`7uzTwF=8D^amoWMBjhNpJ^P$#Cmzz`N7=SDNV-{} z7Q7W~41eKO1IUz@H;`)*_0!bZUbe&hCpAB1Evd<`8NAP#F9`e+N>q-z3eF@qn6pf? zC~Y|dJR9YVrGR-x%b`ZXb|EEZM3>lS;!2r~&&aa_(a5Wg3`0&P@1-3 z`NX_eD6f5dP56=HjXAmi3a0fu@(1-ijv|qscOOSsO8P}WBP`}cPw8YEOiOC=G5EKW zc_~XNQAlO;An{hNB^PQdvR@Mq^xlWF)aZf6Sv6(Eo&+{0AgxNMc{n1derQUh4RzET zD4n>x4tbld*Xw{W2xy}izlkM#7#17wehrXg>_!mI9%FXBj&{B-<$ntKKLv`t4q6TY z(glom7f}**7HTi7(G=2zoMgJ;(+Btspzjdx%YaSonv|^qt2Mx6&4JsY7&0|7j^Xf< z5Th7Z&${3}X*&A^1V6Rz%j>Yn8(z6$Y`csMiVt(U!^P<%XIkKu&rmg>idED~HYCj2cjv0-aB4{qxgN zYv2eq5BelIy4e@8IEE*6?i8Kw>y=o_%1B3**#b2u=4H9%w} zqF9HiLunCUdwT1Xxi#F+KF&TUa}b#sCK|(ogvWlzS%hjiqriSdQbVF1Vx3qs_9vzz z6+*o}J64r)a#TPMbBJ6(Nux6WD=D7z7=(JW!+>;6a2GC6Y+XG0t|Bxi2eBnkl2A$0 zrDs0_Na6dzd3?Qq$HHetg`jL;l zg>wb%horpHKZ<+CmrkD1c_8%#j)~VYvp+X>nnP}+<@mWGG7~KuU^k4=aDJlH;Fw8? z&pgBj)DBuOT_cA@6_`;6F~>c&A+4&2gK<5k3h;)(UUHte8*Abx6erq zNY{WCw6Hiy?O}7SNUdm2N>Ul9T+RN}FkR3duC*JcEqVI7v>`u~Q1WClGgl565Nc8$ zNbA4sAy9j~hCk}Fi%G5!o})wDvs}rh>|rqlM{gH*7f^y8(MX@ogKC1BY}Jz#cebR? zJo`ZpO4yJ;&48~7^&Yk&<(}v8m=fDSd-3j|If><1BZu10>t!5!w#kO&T~tB#&%Y2y2Nd2)9axs=lYtkwjpo0nx#t! z!tdEa+`gu66L}#grN1934Z~PcJWOdMKTaS>M4$hY8p+)OF5~CpI zrlc#!7ks6tp<{Y3-GW+#Wl^JA0=7D0gtc%Zldp41=HKHr6!H+q19QlSF`wdN4k%Y7 zsl;liql8VdKg5Yv59&*dvtw5~N8u^Xz3$QRI7z|-FK&!amfp)^MKC2B%1T%4r)y_6R-WHEG)325--;_u%ot50~@Zo(BkUe z5#Gwt#k4<^Pt-3yR7Y(dI%&Tv%Qq*MnE zZPOU{`O9^var?{f6{NfluHr9kE#!qdWCQRl$Mw#$+S1~16cUuZll0&S(t{bJ!wU1o zy#cm(*M3Z@P^Xre*a2!SHv!4&q4s+e-)tLmi2a7#fbI0CJ28YzwR0s>1so=`Qml&O zi&#K1z$Qqj>_wv8+HYd1P+8*))RVEEq&Ago4LKiE8+X(3G?ldP^?--mDxBjm8CxG` zukd!F9%-+v9osyVPN$Np2f8rZ88)J$Dph=)d&Gjtl?+l$=Y_7Gj zN&9_DeorwxV@u9&<8URR>FoAt6sOPz+4N{*{5g)TDd#?rO?6S)9GtNQ1#;#>4`m_6 zC}VS0(((N=>Wrrv$3wNl5qw0x^QmWBRy;hkSRCe!;M(;U^b2N zs`f7PcpOjIoCEeDFL8D&cc$$b+tU1H3qNC9oWJgyEza-L@+&Qm@6*B={MB@4?Dtvz z9`W*#JYEW9VB81HQJ*rVu;$@B@G|PnRZi6V8J{}OV&Nris+8kf<)c2CN`H2%^u9-@ za-H5fm&*NAo|9YWp(IY_cwws??9H)kPUYURJm$WhE^kZPk$Y1mG#ndKvU{6!iA-uZgdEl_b5qodI zr)O7CLJcr!y)PjhHl~PuOC^4Twfh6Ckxy?PS13b}C{v*FO_9^9vg%8#4%5yd)a>59szxn?361L58LkU7@ za~yvs@Kg*)SG&dm4TSyP?43&LZ1!`VJ*hFYC1BA;nLz^DCg)x)=j>6(IfG68;6f5GFupYXAf6oC<9TuRbBh07k zZNxR?t2FhVM14l2214tTno~o3-KmpvhK<9%fHOTJlF{w-b~z~JIkPCEHk37>pv5l@ zwItLE*TT(S^_ijOs8%C@O3PT8L3u}sy%;*`x1VwuWgamwb&?F+}X2HDh($5PNO_hi%Oj3Euv z=JdLTv>8DgPh*72Xhxq_%m<{0t6i5IrQ@gO@{%?j=OI%puPMiBS~orf+;8z`JlC7l z3ZkPd!P?iPUJ6%6dI@rm^BGup0r4l{=K845eMw#nD>Ia?CxPwK~3k6}=MU zVK?W4p^pHyGuGZaGeni#BKKeW;G_B}jOQoJGkCHDT4d-iYVNr% z_)~{>Ry=c$r)v@hFEfs(u_Ss0ni*@)F@Fy6^uDoc=J#_xMT;M;TC^x6kdEd-YM5HA zM9g6x4=GYbNIo4+>vh&^f9U^Z_ENtg6!?GL6UH!n&6wZ#FzKsS6jFs!*tCjP@#(x; z@32Nq^c&1lKif(wHE1&d1x{)n+Co;4n>Lnt(Js`-E}Pptn^#JsmWj%GX6v#V!7%MN zff@P49O?zVmPNl>!EBf{7&oRjZkHRdf87u-iqm*fTcC%m*IG}Y-#8Cwh5Imck`S`5 zwfTGrCDVJt>0~{C&HmRTJgeR$>UTlTcHVOAIpihfYI-J8C#1csir0!w@YJM!m z)U`y;R>*bnDsPX#q`Y9=>5D?BtfTYrpd|3CnCjC<{aG#4^d9gvpmj-PU8nlc2K7Fm zA?(T1$ZcNv;54R{avT!uBqYRH)6_aZzQ0fHNolGy!52Ga7e7K7x(H7dTD^!jZR9=h z;h{{uCauCX>AGpM{XqFCribbaIToW`;DO#=P)VsrFBs}G1$iq)E*x-%mf}Jf1yV$6)rMqi9`v2R2>#;2b!PmZ*dOPQl~p?*s0$fc)XZJ%!%# zw1->XIUP7VKVhCtq#b()wGHt4{Tz{FxnS1-ZO>1}=(Fr=HPN)GL3%#X^(y6VYOhNe zH|D@QBE`nDeS^}GutMoa$>?+&?iJx|nVuouYI7Ai)O%lfgBC84Sz;~r*f1;^5!w?y z;-Ne#KSm!-u#zmL2fd$u9=A#$B_GK0O+RQuP2KEO?8K713$}r~ zkO+-?LXVZt0nLwAg-#q@RXg+gcNRM%t2{c^Q#xn4X$)3}irBBLzH%RT_K??Ui{f~( zYMwAhFcz`})Jw67uoc9Kub|aMS$3i&bS?__;?UfLI$mQnZTfC1JCPN-2ZPqUXYubG zaHDoX%z`~BoexXT4p;adlT^#*)2Q2H;NVsJMsGQU?R^Y#<|g{2e=h~^&+>i$W3tza zmNG(l-aG_3hmoXB_ntHzQh7oOx!D6Wqz7DIB0s0%Iz1Jh12=o#wuJizC3n2|cWR#4OX8^xIyx5qA)`KfVY2RbO{YN3B$8b5mZ5c9Bh zA+60(QbMh-u4RumPTie_7SQU+?O+9I$F`>pQ#eaLJ+sJ-S&16iX?|mSsO;tQsBsoo zhIqbHpK;Z&#qMz**94rO0ri?EARQs8@6U!)Qau4_V}Exc)vm`)Q(*sgv^EboJtd2e zv3h~dQ?l`iwC_wyF7sq471FUOE_+}Mlx2OKr1x?N`^yodYa-eC=MHTVR%`KX?_{Ia zixN^-#|50Cqbwa#8|W6r0W&UW8g2PwlqICHaEOh^!_wYdVlEbT}K+uLb(P{ z9aZPuE``pqb&r>MKG*(4PBxCCe9G~1Il}NPM`e4r5zm}#%El#fpHsSZJ+8E` zsKti%1Kri=X+ZBCtQkI&ZH=A`x2Z43HIzj-lJ96tv90qMc)GdSjv3ndXzkZpRl7L~ z47jt1bIp^mW-UU~YHFv9T$Z7&g>2Bp@WSPFs~we2Bf`&u7Lr#(z(@YL9-v1pGc zJSW!ye_(s~VUFw=9P+o>Pg~}M9Vg7t_ORnN%hseHxY8QUes5m+aN%*LwmrlwPF|K~ zTI+@F;kmVCZTE{-Uz48ibL@uHv_p?3NC{t@S`E%$|Xe@4CMk@~Y zvh<=J)ILa~S-k74?OFWt-_xea&N#C4)}EMS`@Dy9QI2k0{o)EN=2-VQ{~c=ToDISQ z_dv`C^mQgCy3-gM^MG2e2_uxRbwF%v^KsVnWt8eINR&Z4X$hr}x9xihaV5>m$D@h; z|ActF!TyY0=zism5`p@?Im$JbaYg!qsupf;xio2psud4}lB}d=mcLxKW{4Cc& z%BP_@>*C{*Txf$_@MtIOZRu&}dRdwo93JJg)yDSrERSWVi}l{L-s+{jn}@nIVI8^K zB%eM({?mCmkLS=d$a6^H##(~8M?;5TkN+*{)3B~|#*!2g)UE-)3YozjzO)>8D)GD% zT6;(X$_2jy$sHG*$u3AJWzYb=ZrSwQYcU9p=l&Q|WzJg8ypUdVqz~s8^brcn*4{gW zaOx=@C#x~r_2zIKs-sn?1uzf!*UL0F*Q&sKM#roz(mt%%vfiBY(2k-s2xdWcO|=A? z+yVut6DvpQ=&@jP%$N9sOcV9Nj3(iAR*9qLfeyD)&)?ov?P{?EFMq&%q?8>3q=5 zWnC+NAXt_{jY=#UN^P=<@eNWnI_N$oZ z_(xyoK z@*{P_Hr)RzRzta_c^!J3xsTG6{ZCg1oNb2Q9J%4}&>jarC2}Yks}yG3FLLU3h_s>? zL$puRLLtpofekrXB|-x%Y~P*+9D0F~D%yKlf88Ocnz(sf`wn+caD?H?r(2ixYctTi z4~5=?iH)!gH@je@HhcYi!R*Bq=qOiaw$E_vJ_bw1oA~4VOPCY+FJ~L{B|Qi3#z`;M zOG$n0c4iSwxWkTg?1Oii^P=zlJIkqK8{2|yl33rYd{gWx#jhfTl|uLUG7^j*@?i}i zUdx`T)A&qCJtZ=n4;{QwAYA*4VyJhY57TS_&YPmtAv8k7nT zEbSr2@-BBqbH&g3YNYW5Pd=)91GmBfKHtZmmoY1?kLBZm^mYu$TI+Vk6ST{&g7+xf zoL?qu!TB$x2G@KU$DZsYuesl)#2KNWDlHRi1B_a^{*KixN>EQRN~>G4vZS)YJm4h? zB{*>$0Zww#(lb781aa39s&Y=Trq{;2=+oqL>Nl#VnumS9hG`yj(zJo3vf7lk24xZF z$f{Kkm#{?j7c@tgV#b+)c`^%|R3`^PZ8G_SoS&_OxZJfx5~+X?pwabCl{WAHWG8@!8; zGO42D2lS{;;unQHsu0=2ewLH*`^Uax@}@h}GPM2x>cbAJa5PgM9Yxv9Yiv2>ov?h? zIH=#_3Mt#i!%-3?HcS^{21)d32hY)`1WIZvx)b=Eoo*NuBnLW;#2nGQI$C(DW+52c zzWLtkjsoN!wWfu9030(rLc=vCR#6hr^xbkW=`~B?G^vywlqp| zuEMe8353xS;G}0A={xiwKOW}CzmK`kQ(~gY-dmJSbHKDwRkMbuS>7D~rEO!NHG1I)}h1q~HKY6C)dVUQ!I>n_}Ki zj=jS10%Eqo>yJ3aW(VLR6_p+`&bUDS2w?Y5L+m~x6#JJUPRB6FE8D0r$fF+-eE)fjuNp2t8o2dvcm7pqL8sBR+1V-0PUDx|{WL<>|K}Ka zN-1h-l(_83UN#>StBa056#4%!72Fp8Z^Za>gr$(8&EX@0;s2DzP}jShHm0*Mf6B){ z6kBgg+3%$BCO6!$qC)4KA2CY*cUxin5#ffnVjRohQx0g zf_4OYV^TL~Jw75d{vXnq`dP<6uzu6dZYpc%bQj`Ac`w?AX;8NL(5PNyqUh;hgNgS-mUK~ zc}lbIEb$3V+-RM*1ax8x>C>8ltf``u25@5Uw@>6BluGu~a*Wzc}Fxqufk+r#G$$(R`*5`EWVWUj&gVCCtG7(JMG` zP9CmM3d!zKN#;C+ssSHt%EGgp67Gix1IKwfWWaF%WhKQwda zcSJ=jUha5A;j_Ap*9m$Y5{;HY9@7MQ{mJ1>A~sAGn&9ik;uLq}^cu-?uE@JzYIs7k zZoks-L>*+Q!N{|n`vAnN+sUIGrp8z9?k5Y;Y&eZS=QZ(|CfD{L>0=jB=T;CU8-p+) ztVJNhS)?}zpYVl~*p#;6!6J@x1Lp$G5Yu;OtGX}cWv!yraJu4A%ht_O>N09U^R_#) zfw<_3=Mbpn`;M)fPwr(d>*_W=_zXRYpsu6lF??4xfzSPjM*0=9JP04xM4=pVZVg3^ zVlF2QEJ6&*7ecm`Y;6)Qd`;r)A=KBXYFj`2uJ*%%Ysl6EIP zrk_-}Y)!5ZP-H5Lcpf_EYC{d?Zahq%){LC0+)Xyiv&vi~G(Fqc@j`XMGTCh%OCjl$;i$jgy=UoX zuZLUrd;|BU|aDfw5ER$Fy?FuzV^5+wwKI zits#iIC1@m4ZeyoOGEwn1?6a9g=N>qyzm zmeAPQdfwTkayw##jo?3Ak(8!{_kRYYa? zBv`&Y{$0B#^VFx zY!f5JFO`6%A10FIwupK(oBTu{2xQFpHRqtLX#4j zj+HSTyL@y72sDh$9`*c5pObjxo$VZyop<1P5IurQrTNd&IqsppC{M!26q6y0GF#oa zV3Wo0)b%Jlf<3ob$~ZRnD%QTJ2vTFTjS$15K1yQniU*(6azYu*#&w+h^Vc(p@`z&F zOL;17hdiZ(h%r)%(OgFsnHP8WvV74XbI#Gud8%%m*=IbV8Pm|yy&_Ofx62Th{PcFo zbzCQNX4eyzaT)zJ7yRN`98Rubpj*d~m*QC$=gzuV$ZQ29mHQmSvJV zeJk}bpG4Ov7LjNb6EsR9uG*}DEZ1bh#)I1gQ-w&QG}p_>Wezg4vB949P#aOhO(a9B z#HV~Vo>Q~ct<*u){FFD|CDG@hQKjR6l2@p^!&a3@x0voye%1qFO~PX(bxUlB|JI;B z<3X|4Y?KXv{kl z{?EUkjILcT`^;OD`R*$7+)lw}s}pns-&US~9KUGBt(!fN4O@XqS1phYp`aq4P)DUT zZAIP}%u~LeVN%KoZi%A$c@%C@FPzi5JyWa}(tB%U-u&vMCQwrf;QKw$RQ^eiE!nCnqd)wjNp zJE(`t9nw90f%hjov&BSJ^FzQlew=b}L)jDXp-)H}5Wc^m{1IQAPv+n`^(z=0Lmm#< zK82U|3vGas@H4lQvhbk5kPI|4`MbgcJE6Dxfijz=5JD=Bb}FPoOx0033!72+}Txq3vjWF13EjxOsFNXcQ;BF zFr{n39VB(D_>GbV)nkLPtDc8YpbV*t2ZaMb={tqCj>M0fNo<$pX>K*&`Y7`%$V%VU zaN4nJckyt`?&A8Nv=~!7yxTN)baZ#Mn_V5n^*_a1i-Bis8$$Vsk7j-}+mBuR*kwOj z`O#`WcJl*JB~O7L1^cmwAA9V_K7Q=8AN%>S-+pxQql+KAjAql|kJSP}e*MhSU@2C-R{LqYv$ z*%OP`qtMc+GWj*oRyJt|p7;SxJJ6EfFQ9$-+tDtK`EGIj-Q8$g{2%}k3?M%Yw-oRI ziyXq=FlqmncsbYJv#Y6is5o3a2cqvG(f5Gpd-im$|GPFsb+;A@_$}}kQts z>~2N6;vDi%;%{EQ&Pg*)7Ux^ggp+(|_-G4SY?6=p=G}#smL}XbW|}%*>e#ir^Cci= z41-KdGaq0O)55@(Rz7y)F%lod$s>Ms?S>PiW0us8^v6Ify>QEg90#2_=Cd!-3N(d- zhDNsrxqz{eF^P$ayU~j`*6BU81y|xW(3Lk_;yi@azRQXn z2kOe>J&kzDiEK9LyIl*IQPzPl$L>jFRkfcQ_oUh5;T|Mog*4e0ijl&3RF=nw?BO_~ zt3LNmC$An%(FZD*PMLiymE#HZwvYLEB1Hv}0{mVbap;{lia^4fG99r-!s>h%yfuoK z&2#+v5g+g2u|ekDJcGyWZz07|@N8E{D+EP{N{@HJqmU=>iYWQ6etcJ0bQnpSu|dET zM;WO{VfT4PeHuLkBwnIH_vFsGX!;1Kp$;+f>=;Ey(`b} zlH*7D3iu5E5uX6b_xJb&EId&WJddIxbJ}h15a=8qC<_%iq{aWO{`?(N&+##QiS__J z$AafNtbw+4Rgaf`xU)p>vtoDQT}EsNo(w~|NFjtXV00GQBgPD`e5Q}98Am3sJM*aV zA*?kGBXj{^e7^qo2Tt#SNdp5-Aj96?V|G#O;H?88e4Ld;|Bepoih4;Xhy{`EWfzoU7dX>qRyJHn6V zmfhXOSw1YC?Q*@2ExS9{f6O7Y1HWi0`_{3i zrv-`fJ}rwZz)^6|EQybbh=4+%~`l_!#dq-aZ$y2Al|7c{^(`XzvAT%pCF`T}L+ z$X-yZv$%1Dq%0V;G19#!xQ^Ok@CYl`vL9gZV^i)$58Gg8$2aKBj=!<5cuw-+wOd{` zx{Da{ASlkF5M21xN?yns9fZP{t|Euc;zpO1K^qhq1$?VW+UOxiBDUbX zHlEvB+iIi_(bK1}EQ8dn*{4c}I^49ZLO&@?W8|VvwtHG!Mp|gl+082e$IWiqs;-+N zf7~#qz9EG~PhlK~L{3rnOyh^+=cMUaKqw~_YTCb-$#ldli6+SL(x#~+4X3XMsbEe5 zTX$0rz&W+)v+u9&PCGn~G99Sq-Fw*JXM~f_2(wZL+Msf@ae_VkB%<&n1L+6CB{dZg zhOqaXkmos(XB(IB1BSUo2HWT>ZoDKfm%u;5a_`|~ufc%A7icgAwmV~$M=!OZq;7=Z zQ=qWn87(pdYz+xY2Ir7XUV>Bv1K}4@MEdOO?~giUET@0_yGhtmx@Ab+3z}Dy0m87l zvc@!-hWa&_X4qcyE@vSf8dXBrByxO=%B|Or zRJlTdtKgq`GyC^h)rVzU16lKyx%m%O(1?(MT+gL>^tZp?f=TQ==LRy;CE@Z*!r7M? z@LfKj4}#xy0;A;}gB3Rg#>=IFE6W-C(2C-3lRF-1u4t@S#ZUZtdu9g?`A~ z#f>t?SGZ|c@FV>VK2n* z9Mup&mCBr8Uf`h>c}pr{OZie8Wx}(Vl@OioR$?K8>R&@7;rX+r@ z|D9+Q{G}>|bQ<5yPpUFs)ns3_$-dew*sTAh6jmu7;x9CvuR`HuYL+9C=trV7c5eJd z%gxPPI2Lx(ma@YroL-ca|Lh(hg5PbnpWNRr{wPlP^uL;5NBn-9+03PJviIfLL)7$tl8Xb-DV_}xp z4j2sSP`5XJfC?8k{u;_E3)BzL8*K>l4}KSD3_^*Ym*<*1Z%I3^Z)nUHN%!LVKh~e$ z>7e$8OtxM4Tc8?(Uwz>l)RjUP2X)}UIZL4nk7mqxFyr8B7jf<=Zhnaj*WC(!XDxpd zBhcm(c-y2pzcJ3Y!+c0b+I&;^?RDgAazTgnLx0x4F6`TlOz0he$~WQ1H|6=dJO$wM zgsKzx=P?3dTmqAj+2%OOW*^mQ_w$lvl!Mmh84NqD(dL!4W3j1Wf9^-xlEjqBbb% zhHQxy#g>X+cJIMf7a3FG%eDbm#N(}+zFlaQW0B{#E;8h;Mr5G`g~&cjWs1L0riA;! z)1&MeGRfKO(at5)8TlycfB{AQD~Q7Q^A%zBuVCibx%p}f1gdFy1CPF)2-59taZTB5 z^QG~2Kxl^L(f`!Q=gmLb30|XE?Fu!+o!`flQk(KIe*fSfmV;#3-FwmD!>hQ4cT%tI zNOct?B7^Z{##eU&P;25Y@7mebUY9=@;5r(S3m&decVpOZ?F8(01W4QXCuLzQNwMAY4#dB3Y%p-)_(<6tQmi* z#JnIw@UlGTbyQVVd-Ey%n!=#nd=N^v$|3thJre`)+-@#s!RBPB2+p;cT~J!N*o8s+ zFutLi!20q_Mz4Qe?Cl#b$T+_&Pb@jXGDssS;(y7Y^Bsu-OL_bNZUv|@m^ptPc2$UH znoYze4Wnu|m6k(LXvK8*b!hsXo1))80>B$zRs#`&paWC!#>AZ{V}^lQ0qV^#!F646 z<@5uoQ{8^2%VgnPnrm4naE$VCktJM|p&>-X+Da}r0;syDuEoW`??OH|0zQt4 z*D-#a!a>ar=MN3+DLMQ3LkCMm;8cR`htOnh+&c-6?6c;L56({x;5bCs6b!sap}EaK z!kv^Q)z5wK0sfF;;d0exsU7k8%8)NJ#mySlhC0; z4Gfd!AXfb^}OP2=;Wiw$31-9%f}%; zKE}s=d>rQEem*|V#{+zH@zKr4C-^Awah{J}KKl6h^>5>W(y%<+x%r=fQxnjDp98$V z@P@Gef=@xVgAp)-(oqbL-3H`9I?M&=8-}+QzO|V)J_`KA8*7Nf?R@OvV=o_YP%vgc z9|!s9%bM%>#16O??y7TI~bi#guo zTTjb_gzyj_pXB3VJ|5xYQ9d5y<8eNo;Nu7%$OfIi^ES+;owxh>c%6@7JT`9e?Ghg^ zHSgZtZgw38)i48q^IubYJKFg0VZ0u0KfKrMKHQGD_V&ZUd&glUX*%3#3eAV{-@(q? zC%`j@4>GvJv&3jF2^TER%9qkC($0*?X!*)c$ ze9m-_96kv6tQ=rnLM09o4wA8xZE&7COZsf||7g6NJY7Giv3Vt2Ti z{p$8Q&AqqZq*h(vCnsaKS83fX;1@s5_@NdmpRfQUvSk44X5iG4DY$FT_Kac*qpo!K z_F+bozI2i8^1FiEmt|EGU+B9slf3;U&hKu2NmhgKO9OLr=k4EPC%^qAX8b)t>Kkfu zzWohF>KmL5-u?z=gT>olRAQJqHZx=5uCG2|6>4nJZ>bAEY=J;cvkm z4sg_0j2?pAg5J@KBzk@)g>pw&qq;fBQHwJ;cXt>_g{AFx*S}%Vv0B!R`8{-_-OYI5 zd!$-A$=*tN@@N0$cmL1k-=6s=pSbbdfBiSVbMBq)A2$E%skeK&-+1jafAHu3bm|jd z{-b~M;=PCd?>~F-Uv!@Q_TK;X^!NXtHy)Zf`iF=Auan>U_V@OGqwV;kKmOvsUV8Vy zuU`AFe)zwg{b~QRUn%#t{p|nv^p_sH_l0l2`^!JLz4V9g{J$56|LzZ8pZwns|2O5o z`Ng$QJz2c?C;xWp$zT54LhEn-u_F4TLX-LRi@?sX8Ff;$@mGA`5a%eEZ|}(R*3UaP z{+9i_UO+({50?0hw%OKwjVH?i(T+z(gNQmbS~`_cA+c5`m(F7iQL)U(TxDuOm@kb z^{4wxTcHF03NUQ^DN+`8aeb%*JllEuFWMoPitGQmbMvA0wpLhKIttypAY2L^9ZU^~ zy3+E+4%Ttwi>Twq7tzx@x@17yI3i@(4|rW&``TKH@N)Tc_yu(X%kD15Z5{yS|OW7P8vj36Dmikr{2W2~vHPAzDY zY?iT_h+YftJ5=8kpWWXEXQW?}?##UxfYyK1xj9f=|0_bm10T|scTgcZj&bP;)xLxO z54Iu6o#I?KOg+B>1S$NE*ydsF`94{qxcQpSfY-m@4%i!Cgz>%ugoB1~7XO3Rut$jn ztfONOh=AqV;^r%~UTtE5k-p!%+r*_}Z(B>3t0Sp3={^uqd;}CY*Nx zOgL*33fH|yCOE{$Sw7xGjyKzkx(=esotta>WT|ldZM+uG?niz&5_vjrbc3rPmfOIu z%UEth{$&CDuH?Rj_s&g@YMZyDIbXT2tsQRXVN-${Xh@0OD3Y4*IyOK|H8qsb0@)cc9mH<^4mb)`T))HSexo>xY82qR zNcu=-HXhlGt%>)q+V%twp^cyzz*xt6*B!IQTO01%$ zY_<74R%i2j(wFdIn!C9ajN&>9cp|It$>#T1_d{6qWu@_d^U*dKUhlyASV3_NLfsgV z{O^lFrGd)E9kgR*+iaR2nSTWYrD@+jHB`j$}lExc$k(mU-t8WM%SWf1@g3TR>!zy5s~dEs7B zD1599Kdtasq_ZRc6A9G?en0^B#vn^U%6ePAu~1Gyhn)Ae?V-sPZ<-m_X?R1R`C8lB zS^$T6p^kJ&E0O)A@9%<(qVU*H*iu;W*Y3Q4U^*3R+|MM%zo))~1$STo?uRQNnzG|# zZ3XH5b8w}@3m!sRwn*23w%wo~c+-}37#&GInd)7ot{~9{+ChXAz_EYe=Hig$w@ooMEyY>3pNY=>?0q;O0n1h==irzgxAySik zJO!qu2tCf9VpR_pIF?fQ$Y&Q@5iX;2cib&XGVd}=Q` z_|T8v|IJd=mlGQ`iXN7tW|zA&Z{EClU$gUO7T)9_&Ch`^ls@3j$SNKAx7Sl@dh3rW zB3>x6;>yGflSUbt1m(jU)h{uQF@um+levgY9*Wc%ZLzQMN9!V7z;(woEa?)n^rWcA zn2bBkqjIQjqY}NeVfs`xr4)dO9hVPyOXrklV{0W02qm9RK*em75i%DXtaqg8FCN@KU04cg%Z1q>zqqop{FA=E+U#Pm zRH)@|E|qGP!g9V+UFiFu);HMSKhQVO-&YOhgKD)UgRhxD&3|cOF37d z&59i5O8wJJc!x0!W2nsPXAv#wJ{!K=0i1?A+`$L|gLy5}qO2#w5!*nYTGVrote?W( z(5hS$6O4s{*k; zn#MCVsY*L1^iw%u60!Qn=+qWbBA&B5-$Y?}-y9M1e(ZQeA#*lt;ouByna)oZJN zHNEseWP2b~y23X^y~#{{Qr9Nsra?3c3V|HjGosf+Qxl>mF2Gtk(^xalW6g~0LnE|G z$Wqj&Uh?gH>=t?B&yoX6Zq-eqSO?(b`-7DSj#N+FmBjN3~6I-Yf4wyFsTeY z)V;yJxV4e?Myb?w6ctiL>wtzw?k7SzzpkZdT7zq9L$A+nd(c&#C%tAB|$5{g&I`#0W)FJ#ASw|*+4{8G2w1yHw4KwsIk#nw{a!3Ifq2U}- z;EM#^;3`bvRx@bzub82Bw?yr)ew@kzo$-pHRR4(1u~Eg>1dei>eivL$7*fnJq-$zd z75>P0=^^z2AR@VX13SytsuwPeGYFw@QTE0eb7|C=#uz{vW9qPGcGw$<8_^>YTxR2< zf<2lU;VNSyZWeMKCsQwH!nfoy^KE?SdcjfUFc~u8NK_&4!?%=-^rU_Ovu@9d-f(zX z4Wrb+BN!-OFPK=4fT9EH${kjnfSQQIiXlDuq=(5imQsl zfJ=;{LvM>$y73qqi^{z@8fZk;O!X`(xsa7NAeIL`AuPv&vH0p2$6Q6L>r~5t=mHT8 z&X;f%!XrIVA7-e>37eSsn$W_@y!I*p;LA;kQfEafsaJzAE5bsxzyTacWrT&PiJgU1 zQvIg9Ej@B7^|ExuI*{s<%u}N@_edl9x8d5|M?H(U_gxh76Jv>#SuchVuzvkMo|~L4 z+$0~T6Wr-rXo@~$*x(Q~5hE}o((H@knEGufB+$1tTnO*LLp-WnWe5QSeW+wLQrI*_ z%(jpIk^o_ypo5WJ;wKg?pj|Ry;GU{n(*Yt~lbD9EHWYYdP!)(92JM23jCmX*WW~Hd&LKM}fhlFm9N>LYj*?a4qMI+vE7VK?(Q}@oujQn>%I?luX zPT+ml-wnf~iGk`H;Q#F{C5OGqJ?nT8c)AyDZVx`$i!xfc`#f(_Kkc0+j^V|Zc}&GoiWFg#cexyP|pLTro+34H)_K)#NAUGVQ0d7QnK7p z2DCwQfbB+p=z}jPBQH1n{0KTfyoWaKWJpVqPV#Wpo$wA%&CDzos=?g3;+2`{f&RfW z`K!S#=I#<+M^OIZyE9DQCA`!?zF&XL-zB`4^keY!z+ir8$n#czlkisSQ^nb8rB<0= z@eAcS|NUZluJS?62d*C!R~Cb+?*>x=75NOQ<`{!juh#rZb=$9bzXj)PrMg^kgD<~W z_5tF*o1e)Gejmju26eV_y}VK_2DQBBolSUepRFw4sumX(SNxM_-+T%%hI)f}f3#Hc zEoTkXYC-izFb9kuCA|LkgDd_F7mBk%%^xo>7Rs~1Qczy0`Lx@gr|uS#`RVbCo@Zp- zB)}HLdDfWFw8Lu&uY0plo(l5K3i5NM5>qGkT+(a&F4oS@9>v=E+4TB$?L0$(r(XZ^ zo@sj*1L_vMII2FMj)rgV-ESBB+UL(Y_oE*>4qtBOyA1b_l}b~EB8H+iTd4+tV{y#J zzu%y|7M91Km;x~co|^&*6CT2TR<{>*#sk~D>-v5~c7n{8{?hK9!xLzJ&UKvO^gSH> z%cSG1)|tW8KF=!#E_0m5={s*(|J45Xe`z9L|Cc;sRHCEJrE?YV!~t#pNEIZ2=i+R& z&ycoYE1{AmaT~SX+w<;N9>ojx6MU-UPf0ztemp{17u&2Y2g(dUn(<$%Wv_ijlv{fg zC{<{fQ+1yATZR*f&AJu+pb!kL@oQ~uCz$Sy;o3$=F7gfTE7GBcs#36;mV+qTzO_lS z?zlZnd~1!?5blLn9?Zvy%Ft(s0H_u&PCYlBaouZZ$4^Ieph?)xar!$Q=dP0?*LaD=V{+|Z6K>Hxo#PC7HIPdd3Im(y^~yh z^C|7!yB~a7qv4R+o9Qb6QH#Oww?U^RzhCZDP{YFhn`Ff2j=dC#FD5ftUg@1!4-s6o@GhQy`|mi=n{X xcD!ECdocWBz{OBv3d9tMDG*a2ra(-Am;x~cVhY3*h$#?LAf`Y}f&V`W{0F@)P!#|G literal 0 HcmV?d00001 diff --git a/SAF/Test.Client.SAF.Cryptography/TestConsole/bin/Debug/SAF.Configuration.dll b/SAF/Test.Client.SAF.Cryptography/TestConsole/bin/Debug/SAF.Configuration.dll new file mode 100644 index 0000000000000000000000000000000000000000..9b60d05d02427236d6b60c9420585d5b353b82ba GIT binary patch literal 11776 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 L>o2bVcNX|>ZL+xM literal 0 HcmV?d00001 diff --git a/SAF/Test.Client.SAF.Cryptography/TestConsole/bin/Debug/SAF.Configuration.pdb b/SAF/Test.Client.SAF.Cryptography/TestConsole/bin/Debug/SAF.Configuration.pdb new file mode 100644 index 0000000000000000000000000000000000000000..46034d52604e3868b723410d1d58e905521f361d GIT binary patch literal 54784 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 literal 0 HcmV?d00001 diff --git a/SAF/Test.Client.SAF.Cryptography/TestConsole/bin/Debug/SAF.Cryptography.pdb b/SAF/Test.Client.SAF.Cryptography/TestConsole/bin/Debug/SAF.Cryptography.pdb new file mode 100644 index 0000000000000000000000000000000000000000..9ad2026cb7ee80a579c49c5e8a3d27a8351bb72b GIT binary patch literal 69120 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 K70>a)f&UN4vAi(= literal 0 HcmV?d00001 diff --git a/SAF/Test.Client.SAF.Cryptography/TestConsole/bin/Debug/Test.BusinessLibrary.dll b/SAF/Test.Client.SAF.Cryptography/TestConsole/bin/Debug/Test.BusinessLibrary.dll new file mode 100644 index 0000000000000000000000000000000000000000..1a598f1bbfec99324de6225e6fef3aaabc6314a0 GIT binary patch literal 4096 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 literal 0 HcmV?d00001 diff --git a/SAF/Test.Client.SAF.Cryptography/TestConsole/bin/Debug/TestConsole.exe.config b/SAF/Test.Client.SAF.Cryptography/TestConsole/bin/Debug/TestConsole.exe.config new file mode 100644 index 0000000..7202970 --- /dev/null +++ b/SAF/Test.Client.SAF.Cryptography/TestConsole/bin/Debug/TestConsole.exe.config @@ -0,0 +1,69 @@ + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + 6HD+Ngi8JoGmD0g= + gi8JoGmD + + + CN=CompanyA + CN=CompanyB + TripleDES + + + CN=CompanyB + CN=CompanyA + TripleDES + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/SAF/Test.Client.SAF.Cryptography/TestConsole/bin/Debug/TestConsole.pdb b/SAF/Test.Client.SAF.Cryptography/TestConsole/bin/Debug/TestConsole.pdb new file mode 100644 index 0000000000000000000000000000000000000000..12d371d96319baaf8190403014ff370d4b74adb4 GIT binary patch literal 13824 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 literal 0 HcmV?d00001 diff --git a/SAF/Test.Client.SAF.Cryptography/TestConsole/obj/Debug/TestConsole.exe.incr b/SAF/Test.Client.SAF.Cryptography/TestConsole/obj/Debug/TestConsole.exe.incr new file mode 100644 index 0000000000000000000000000000000000000000..d1c65fd1513612d9d3fb60f578c81bb70e47fcbf GIT binary patch literal 1842 zcmc&!O=}ZT6g{c6TJ1`T%koe}Tr?=6#Z;7L(n`dpVk#BPW@a+ejLt`xc~!fzzrdY~ zf^_4?o&E)hAnKyHbKy^L5%mvv?n|dhq}#MN+Dg(TBV*Nhh)W5sJ`9m zoB%LM7aOBX|1`aVMU?RncQB7tJir1hMh-GLL5#b{yL%&$9mB@HWo@~ zU=3B&c*_cVb&i)2z(tA#8Qq6Qk@JhZyMZOfZA9?!oO3CjGWHBtxZ*PXD(2W;W2}x% z?$%rvG2TSTpIAXYrT5={6UjR>0B$mLSV$^FujzxB3{z`AcmER8*FD=UmEY+C-OXPT!>(5cI6Nh0Tj9vT26u^)a+{ncYkjU*=Zs{5W?y21T#ggv*5uAii^xw3Y+8+e zw8#(UVG#FmV*K&u`$fUMmzI2KM}xbsYne=EMiWswW0nNeMYxxLG>CtKSn;^?tIHg| zD}RP|gFd=<6%mh1{Zo^B&OVyy`xmT$EKXdSF>PLl*qWMD-A6ULJWj~clmGHKXLUH| zi_G*F^jz~AJJR2!zog4cl&bn+`}3LYSDkzrZZkIOoL(@RO9gev@g}RZyuXA@yPOdd kIP%K6JLhf*=Q+H-@}uKeYL0CXO7#~+`R&4;s9oUaA3FL!Jpcdz literal 0 HcmV?d00001 diff --git a/SAF/Test.Client.SAF.Cryptography/TestConsole/obj/Debug/TestConsole.pdb b/SAF/Test.Client.SAF.Cryptography/TestConsole/obj/Debug/TestConsole.pdb new file mode 100644 index 0000000000000000000000000000000000000000..12d371d96319baaf8190403014ff370d4b74adb4 GIT binary patch literal 13824 zcmeHMOK%%h7`;y2)Jc;R^KjA>!hnj%qaE8Jq*Xvlz@$wfQK3OBsz|BrOq?P1Of@qB zS!}$33W-gG*suUm*dQUwf&~&%+aOg)NUZ2D098CTM1?Mj5DDkZc-$dMBV1Rl<=js? zbMD;N-1)wHzx$ffvzBR_^Nx~=rv?U;sp%uiAvKX`Z|#0=T0okF2!Zwi*BO9xdL*9> zpn=|S*SeJLtAXXee%Zc1FaLb~^_FDlF#Xs)Wq{hm`a0ac7e|)Tuo}3Yd1>_9U6-TF z(_-cLCrxKBjlb~zZ$JMKT^{w`cYko^WOV*=^n5?&|H!fPH&cWhN_S2Jy)Z%y*a0*H z_W~_IE3gyT4YUF6KnD;7IK1}&yMUlb``j)@&nmMbCg91|fd+A8)( zr;E0u6@=)ngw+#EhNBlW^@LV19o@*eX)n{qJiBD;hGyH7dd5myMb;Bzxo3{3sesR6 zdS%fO&582$=Kx zSI92TP@j2b*10gnOXSIYc+ znGb^d0dgmF9v0V7M+ETx(hDniNB!a>ASp!YV=%w_8Tj|rwbJL{VZ46@J_P3B2L7p3 zO*?jq0hFR$yRi4>EeXT_uU&5DyZqo>f_GaR*4LArQ$j7;Qo6Xk^KmKWB-T`D_TihWXZWX`o z=N-Zfpa5L!PXNB~-idn%te{t1!o#~A2;L9)DddQF8=WSP&=r9FNBJ{WxrPet>C}{a zoFv9mL&Jl^sX=k@YxSz%-~2raidUowJEwLxL#T2$!F=qi6#kpf-u}m{t(JY1e_mGp ztot4J!H;=Ta6jyYZ=~00h#mYIe&!;W`#Cn7O+5va0NS4Z0sC6_ARu_pn8};jMG?2H zYdrY;C02Hn<80TMWGLHEk1uFfAky3751NWh57vS4})*B-Kv41bp zuV73C?||4JSe6C~-apeY>{Ik1+%s%;2aRYcb)tdy)MTjh%eO}9|C2*M_AXs8CoULg zzUex;SIHqRKB*gv$BcPX#Eo=8v%TTIprz+DOOF3KF=7qP;CU|ZezqF_8^^vkwaMq* r)Bt@l{qF-n&=i*T2I}_W_M?2W@l%J+^Q99;n=pGHX=3)B_C#|w zuGoq_u(q|VYc=D=k-h&6uHg%M{du8yL-*HY!%CP>@nV| zV{NeQB=$|y7janWlyj~vvM%BI>x?fMcj@vzOV@T!huQIX?17{7Kp*AGYh|+#c$rZd zeuutKr^Q;&(S7E7Uah}=n4WJ;e2Ts>-yeLwIN19biATDG`rm1NnAMdDLj8R*K?=^; zQ))qjTr#^fn%|-VytX%X8|tLpjiMVRqL(}g?hH+Xq!k>v3PAHsj7BRZV5f9 zy>q`oPImhWSYzC9d%>0t+->+9&T@Z(Y_DDE%sEsB`qy2 zcziXFU5!fFFWWPFNd1hRE_o*0a0Z$xd+hwWjbxKA(1MSAr4N<-U>y&)(5VS0_*$R) zNzoXmuQ}VRSQYcV!kQjq3$B{;tMu#kUHDRdrCQRjttYNi-^ zTu4%HQ3`Dw6CN1>^8tMxM?rVMmiMprLiCC+b&UQxrv^TqJdPrNpMZF+WYs1&@!2{H z<#4`MY?gTYtoD_MAlU_K&`riE`V3vSE&B7{;qULQ!@yrRuJtYQ^-uWIf1j8*D_h@k wzr+A4JJ{1poj5 literal 0 HcmV?d00001 diff --git a/SAF/Test.Client.SAF.EventNotification/Test.Client.SAF.EventNotification.sln b/SAF/Test.Client.SAF.EventNotification/Test.Client.SAF.EventNotification.sln new file mode 100644 index 0000000..3d657a0 --- /dev/null +++ b/SAF/Test.Client.SAF.EventNotification/Test.Client.SAF.EventNotification.sln @@ -0,0 +1,33 @@ +Microsoft Visual Studio Solution File, Format Version 7.00 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SAF.EventNotification", "..\SAF.EventNotification\SAF.EventNotification.csproj", "{7D58B200-AD5E-453D-81C9-CBF45119790C}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestConsole", "TestConsole\TestConsole.csproj", "{DF8F46B9-0B5C-46A2-B416-D36087366C16}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SAF.Configuration", "..\SAF.Configuration\SAF.Configuration.csproj", "{CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}" +EndProject +Global + GlobalSection(SolutionConfiguration) = preSolution + ConfigName.0 = Debug + ConfigName.1 = Release + EndGlobalSection + GlobalSection(ProjectDependencies) = postSolution + EndGlobalSection + GlobalSection(ProjectConfiguration) = postSolution + {7D58B200-AD5E-453D-81C9-CBF45119790C}.Debug.ActiveCfg = Debug|.NET + {7D58B200-AD5E-453D-81C9-CBF45119790C}.Debug.Build.0 = Debug|.NET + {7D58B200-AD5E-453D-81C9-CBF45119790C}.Release.ActiveCfg = Release|.NET + {7D58B200-AD5E-453D-81C9-CBF45119790C}.Release.Build.0 = Release|.NET + {DF8F46B9-0B5C-46A2-B416-D36087366C16}.Debug.ActiveCfg = Debug|.NET + {DF8F46B9-0B5C-46A2-B416-D36087366C16}.Debug.Build.0 = Debug|.NET + {DF8F46B9-0B5C-46A2-B416-D36087366C16}.Release.ActiveCfg = Release|.NET + {DF8F46B9-0B5C-46A2-B416-D36087366C16}.Release.Build.0 = Release|.NET + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Debug.ActiveCfg = Debug|.NET + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Debug.Build.0 = Debug|.NET + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Release.ActiveCfg = Release|.NET + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Release.Build.0 = Release|.NET + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + EndGlobalSection + GlobalSection(ExtensibilityAddIns) = postSolution + EndGlobalSection +EndGlobal diff --git a/SAF/Test.Client.SAF.EventNotification/Test.Client.SAF.EventNotification.suo b/SAF/Test.Client.SAF.EventNotification/Test.Client.SAF.EventNotification.suo new file mode 100644 index 0000000000000000000000000000000000000000..45319d51353ec7653ef7798212d9049af49e5910 GIT binary patch literal 12800 zcmeI2+izS)9mmIxLz<9;rfnJswB6=brzFO9)|cEGyt~eY#!ec$O=!(!ZJ#)s*t=$T zb3sXX0#Wq|vmbx7<*)DmV*B4rRe8m%F`q81H=l{rw{b7n@}x2C+z6j8EG)Q6 zW4L`>9-$TZ7rb^Lylr4Dki6G{C%^`<9!S2Q<+>4U0-M3-04iX%fTzII;2EI4zC`bR z-Q(-SwF2i%fxogzm|>IWS~TB9it)>{XpNtd^rl`p`@?tN+tBg5wl#FR_eIxp++9F`%q5D#^^jjqZwMlc;%0X$qW^T;Jvk{#z672F&x0300wlo> zuoLV8yTKmt66geb!OP&wU?12Iy1-Y!A@Ehu3l4x8&K1&GCF0TmiFS4&;H_T2cOC#ccxEAw8O5pz7rHgzqwcOj)~ zi*=*cdgai=Tx8U|U2E|n-b6#FF16~b`^9-)Lnq0_&EqU9Q9vJy%yZ5pm{X2RkT6tlVH}P%y*nO-{8Fgu6ny{XZZc5DOTH`VRM7= zCAG4ppNFq{We@g8dbpNOy4LIK+awq1i%K# z_JG?7p-c|3{#r}XR!vHZ3%2Mch>y29aUUd*xhbjx~ktkd}sZ8NA9eb#@|1+?Yfe- zH`{Kq^^Tjt40<)iPMcfQtfl${Uk;O*(1>bX&@CPoU=!E9hT zQhcQhtYl-508iJL7LtG2^8n=q+5;l8Qc>*c`*FN%-V-@>9I)9(%`uul{XjyBZ98^|mB@VRy znzt`?nO$srhO3XiP9gU(c5r5K=JR&-%S1oQL|x<~dDJQ|Gk@8DM(9W9AJSJOCT}x? zM4Sfb|21mr#ekwOo3(oSX4Y&BY z$E6=7kY74^>9o1Fa%b&8>4AJ-?aZzEO=Y>A74J%-%6ew(NC7$U4n}mD-3~J0y$y`6 zoI1*vADb8^Ny48Z(ce$PnZm84xl`Q`2Lt=5NpdjJ&s~N?f`0l8;(m13PfxYnHn*0X ziZgyn%*1$@h*s9iwUk&Q=iYAdq~z7RA3sI)iYBkFy^C>u@|uT^!V9^mFeO&<>c?;{ zEaXQcI&y{GJ=6?< zZfb8ciD`UJW!!Lvr7goq7&Yj`CK@#~PxTyPkchRI0ZZt!>@I|nvihnsz!ZHHT8Eq* zX*nm-WOo7?p9|!}de{KIB^w}~6y#$oB~|GywN6ji)4NvkcG#ZRwQ|HRqSc5-YDL}*LOD`pHvPMC%%eZgo2?qdo6Y#97e*$0F5Hr>^yv7K zEM|7zdXX?qa^6Iqq#s3*>TpJY@(f|T2dzTMfM=}9mw7*ERZA{l2*}v?pjau6wT5}u zc@z1PtsVE=xx`CVzC`Xfp7n7)pfy_Ws5WN>TFJ?3tbp>?A@pAXgaV2*o=cgbY_JX& z!Z8mcIyrb}1^N+@cs~gG*vT%`VRP@|C2tMf=3Z_C%ke~t(kR8>-vjRKyOn47mA1z7 zIsv8XFvxu^5+|Kt2y6qsh|71t^5eO$3}IO1d-d>@Cj8PMZBZuTR=WrtS-~RDdDcB) z;|QHxD}UI>s_Ivw|*AiNH`jXtd$wRP6-}de!ldrr?V=idMp!kCX|W$L6JhFBHHu-WwILkt#2#( zZOl4wY;n{1Z!7-GlRq0??u0J>(NP!|gr|EMOHq4#rSj;+7W!3^?4_@QooJz zWhHy5esR_tQ~#f*a((@gc+{Cdm)$2D%%Zx9{s+hklnE#w(5c-)G6tR6>9|m&b$(YX zYlu>9E{kdzMjS^Oqogdt&JI75(O;lA6}r zpUzi$@Bq^zETJ@GKj{_2j4$w zo9}xCh!8{T3=X##Skq>ikMjsvB|y%crWBM2iW(4pI}c%z6%lW!=~4v77#3{z!dmB1 z__&l)-{KUYR+|8|;wB^R|9ET$J@(@=#rd^=)qs85?vAy(PSF5CyNkus435LVkZ$rj zNw|JG-P7^hF<(;#o*Vk}5R#e|^13tBbQkeF?djULtvqyxd3<{9 literal 0 HcmV?d00001 diff --git a/SAF/Test.Client.SAF.EventNotification/TestConsole/AssemblyInfo.cs b/SAF/Test.Client.SAF.EventNotification/TestConsole/AssemblyInfo.cs new file mode 100644 index 0000000..9f89a32 --- /dev/null +++ b/SAF/Test.Client.SAF.EventNotification/TestConsole/AssemblyInfo.cs @@ -0,0 +1,58 @@ +using System.Reflection; +using System.Runtime.CompilerServices; + +// +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +// +[assembly: AssemblyTitle("")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("")] +[assembly: AssemblyCopyright("")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: + +[assembly: AssemblyVersion("1.0.*")] + +// +// In order to sign your assembly you must specify a key to use. Refer to the +// Microsoft .NET Framework documentation for more information on assembly signing. +// +// Use the attributes below to control which key is used for signing. +// +// Notes: +// (*) If no key is specified, the assembly is not signed. +// (*) KeyName refers to a key that has been installed in the Crypto Service +// Provider (CSP) on your machine. KeyFile refers to a file which contains +// a key. +// (*) If the KeyFile and the KeyName values are both specified, the +// following processing occurs: +// (1) If the KeyName can be found in the CSP, that key is used. +// (2) If the KeyName does not exist and the KeyFile does exist, the key +// in the KeyFile is installed into the CSP and used. +// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. +// When specifying the KeyFile, the location of the KeyFile should be +// relative to the project output directory which is +// %Project Directory%\obj\. For example, if your KeyFile is +// located in the project directory, you would specify the AssemblyKeyFile +// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] +// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework +// documentation for more information on this. +// +[assembly: AssemblyDelaySign(false)] +[assembly: AssemblyKeyFile("")] +[assembly: AssemblyKeyName("")] diff --git a/SAF/Test.Client.SAF.EventNotification/TestConsole/Class1.cs b/SAF/Test.Client.SAF.EventNotification/TestConsole/Class1.cs new file mode 100644 index 0000000..1b87037 --- /dev/null +++ b/SAF/Test.Client.SAF.EventNotification/TestConsole/Class1.cs @@ -0,0 +1,54 @@ +using System; +using SAF.EventNotification; +using SAF.Configuration; +using System.Configuration; + + +namespace TestConsole +{ + /// + /// The console application shows how to use EventNotification service. + /// + class Class1 + { + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main(string[] args) + { + + ConfigurationManager cm = (ConfigurationManager)ConfigurationSettings.GetConfig("Framework"); + //retrieve the url of the centralized event server + string url = cm.EventNotificationConfig.GetEventServerUrl(); + + //create an event client. + EventClient ec= new EventClient(url); + //event client subscribes some event. + ec.SubscribeEvent("test1",new EventClient.EventProcessingHandler(Test1_EventReceiver)); + ec.SubscribeEvent("test2",new EventClient.EventProcessingHandler(Test2_EventReceiver)); + + //event client publishes or raises some event + ec.RaiseEvent("test1","this is test1 event"); + ec.RaiseEvent("test2","this is test2 event"); + + Console.ReadLine(); + } + + //this target method will be invoked when "test1" event occurs + static void Test1_EventReceiver(string sender, object content) + { + Console.WriteLine("Event Received! -- " + content.ToString()); + } + + //this target method will be invoked when "test2" event occurs. + static void Test2_EventReceiver(string sender, object content) + { + Console.WriteLine("Event Received! -- " + content.ToString()); + } + + } + + + +} diff --git a/SAF/Test.Client.SAF.EventNotification/TestConsole/TestConsole.csproj b/SAF/Test.Client.SAF.EventNotification/TestConsole/TestConsole.csproj new file mode 100644 index 0000000..77d44e4 --- /dev/null +++ b/SAF/Test.Client.SAF.EventNotification/TestConsole/TestConsole.csproj @@ -0,0 +1,111 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SAF/Test.Client.SAF.EventNotification/TestConsole/TestConsole.csproj.user b/SAF/Test.Client.SAF.EventNotification/TestConsole/TestConsole.csproj.user new file mode 100644 index 0000000..c8340ea --- /dev/null +++ b/SAF/Test.Client.SAF.EventNotification/TestConsole/TestConsole.csproj.user @@ -0,0 +1,48 @@ + + + + + + + + + + + + diff --git a/SAF/Test.Client.SAF.EventNotification/TestConsole/app.config b/SAF/Test.Client.SAF.EventNotification/TestConsole/app.config new file mode 100644 index 0000000..a7bc1b3 --- /dev/null +++ b/SAF/Test.Client.SAF.EventNotification/TestConsole/app.config @@ -0,0 +1,14 @@ + + +
+
+ + + + localhost + 4000 + EventNotification + EventURI + + + diff --git a/SAF/Test.Client.SAF.EventNotification/TestConsole/bin/Debug/SAF.Configuration.dll b/SAF/Test.Client.SAF.EventNotification/TestConsole/bin/Debug/SAF.Configuration.dll new file mode 100644 index 0000000000000000000000000000000000000000..967e97f09dbf0014cad68ef8204bb2907ada4753 GIT binary patch literal 11776 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 a(<{>bNkDhcMJh_5D1o8`iV_%q68Ik%wM47{ literal 0 HcmV?d00001 diff --git a/SAF/Test.Client.SAF.EventNotification/TestConsole/bin/Debug/SAF.Library.Security.dll b/SAF/Test.Client.SAF.EventNotification/TestConsole/bin/Debug/SAF.Library.Security.dll new file mode 100644 index 0000000000000000000000000000000000000000..3f37716d27cc498d73164dda280c3e02cf8bcb35 GIT binary patch literal 3584 zcmeHJPiz!r6o1n{*n%veA`(HT77|U&*rr7UiSDw?pVEcaPOTzM=e-U_#=}ghWps@ZbR>G4Wzlf`&5(J@nwggVBo@Jcz&dW+q+O4G}LS#&7rgeeZqm z&-dP&Z{O_k*UnQf5%po-yh(H!E04V3onZyy+~Z&7=+fY|q02`3+R*Hh7nuzm*0fVM zT_*^_*sLg1Hv`iP%+i!?*2Ai@Hf~(MD|J16h^TDz(z~a;7qin=DL1siSVx4fOf1%J zfQgyMB-$c$PZBq8aQre>fY|53c@b@v@7kKOA|qNwAd^hziOwYksU%$%i0%hDZ4&KB zxBk%r{ed>c0q{rLcq>+K#^A^M0gy?aY24ssm_!Sfj;cUMTL7LzLc{M6{etxmrtMgJK`mm9pL&x!F?{6Zi4yo8MMaj~#R8!(j{AQA`y)<_`ov6}%$2DtJTi zA%k_E5j-mB2(AcT5WHes64!};&irGXGfew|SsjSJ>z_(FgMNf+4{{%*_vr!rco??> zx6zQ$PYI3+?h`BsP6)mvcv8?2^ng3aLZ(ju9~694a7^%d!J^=#pe=Yx&=p*!C#i2G zsa(1L`X&UAk>o)1b9#3N>0}~cJa9a$HhuL1b-OB7)%R(l(2SQt?VWXEFAS!2c*d(L z-Bq75RYmp44Ylu8$Zkcks#`N^(N`{eph6U>dc|)|s@4got_m@(O{EztvfMb-?c&3p z-zLuNO3HUywpR<*EHlxZ(h-j66cn3&+|*s1&1$Er>W*ISViPu6+N&+aog!4B+H|`J ziebIs1g%bsVi+uXwWgLLc8W_Xa<$js`g96sy|}#&X+=w(Qwzc<_S}f%=Uj6t?P`wi zhi|CrOz5kKsw(g@`unR7f4lFwV-p{~_1oL~Z(LlU`^+9=XKrV1;ES{KbKA#P-|I6C zBgfFw4^dA~zx*uL;fKJ)K-%B<`aH(8$yDda`XJHiVyH{Lf86ncgKb)^U}X<>}yB@s&(W8S>z>nh{%;V8n?vBx(6tSvohT|=xS)MGGF_}g<_(@UO46?S#lXD9nOO0>UxxLbNs&h%~3&<#v{3?jPg(rPCKDf5`WSGg{#PrY7Jqh9e JL+@P${sye4&cy%# literal 0 HcmV?d00001 diff --git a/SAF/Test.Client.SAF.EventNotification/TestConsole/bin/Debug/SAF.Library.Security.pdb b/SAF/Test.Client.SAF.EventNotification/TestConsole/bin/Debug/SAF.Library.Security.pdb new file mode 100644 index 0000000000000000000000000000000000000000..cd2d5d76aef6a2aaec27bdb22b846a7684f99a80 GIT binary patch literal 7680 zcmeHL%}T>S5Z?ILrdp~85pycyt=gog){}>dpjZ&<3)D2lQcWOLd=amLHxFJF#FKav zU%)relf@TkoX_l*QWPp)nsh$+cCyQs?tZf~nN6i>`(E2?oMy{rIhV^;s@vIO-m=mu zW2-6%6GCWYGQ6|mmMc=NpV;9M_gCFHSrNiw#QQ3I3Sdm} zdq6hf+4y)wcl{yXJ3HM@w}V;{3>!Q!Mp=QM@;}Z*fBr`wdlQ#hz>l;##1+u6TQ5jClG5iB#)D*zCJd5ZPaSt4< z|5fdeT%drQF-yc90A7ZN)m?zSOkzX`@Y_C7`5!*U^40whK2~==%;orp2=M{p_%HE~ b*vFZ`?>P2JgouN`-9+4hynI&R9}0W{699Dh literal 0 HcmV?d00001 diff --git a/SAF/Test.Client.SAF.EventNotification/TestConsole/bin/Debug/TestConsole.exe b/SAF/Test.Client.SAF.EventNotification/TestConsole/bin/Debug/TestConsole.exe new file mode 100644 index 0000000000000000000000000000000000000000..6fa6be2cd320b91afcdd2e0eca71d2088fa55b20 GIT binary patch literal 6144 zcmeHLU2Ggz6+Sb&Ub}X?Bu;;lV$?BCz_rL?J1I%2Ro3zPuk~NNjtkTf&+cBYr`XsAUmVp$~{6wGTYPOF=3Kq)JpRl`K&nkZ2zes^Ez{^Z_BH2(?n8N;G`u%xrfy zYnKFs@{;4+@1Aq+xo6Hj_cuHL)#oWeL`jsZSBYLl&6E}Vc&MW}ecx+odgZpa`d`)N z-s)f3w0xuLxn<9+7)8@@+`uR(!>c)l(Np~-O$_~YM;IzwSkgFVK7kXVcg&(ey*vG0zDIti)f$xYu1q{ZA63cn`b^t z^yRKd8L!sE5Qh7S`r`Wk#2Z9$cU_QYVtq1!+6o{)a~l9{GS(<=NJ0kDddBm;A|#0| z3nrEmNJ3depYfFK!cfw+4mJC_8zn|rqEj(Z*mce;h-2d}uV9=(Cy@po1(R@NbYQrH zw!*&qJvgWiegZKE`{AuS^-au0w+p_zr_=96b$ge07i{kQFokcY`~%#4C!oti7_7z= zwy4?KI|^{YMP}ZahCGM?cYkK+z_9+&(7mV7m~ihw!{9-NLx3To>$A}asSwf!?+rUb zYOGbxR~cmv!OkJl<$Nx$pMLq-f4u&?>}&SV|2g!RhkkJc?Gs;I%a2d3ttdapOxTuk zf(+!$$9HYD<`$k<%c(-G9M@*5r2-}~|Hvs#W+Fc6E9WzKs&|@1v<$wSlN3WsF5LAe@WEb&NY%2MVg`^8o+{jj-CYm zMDTUNcLXm9c4^!?Ao#H0V}ez|9|*oI_>T5loDqN52JnS@bX`x=tbPLcbzm>Op}(Xr z((e&oiayZ!y90>WBiD0mLDmZ!(*EEOnO=aCa#?szZSHYXvm z=H2KN*JO=ct8327<&N*bn&|{DtjOCcCmHmT=)jE4yQP|~9wy#W(T2&WEkzZ-=z6wQ zp!~KUs0u9>o>0YrCT!F9N8;8rZ(5EhM$XDUTvkP8T~MCrMz7Ijih=7zJ~PW|!-iAr zR~q+yRVmopkE-njv!ccW?6E>EQ1ON-%ig6Sr)+aOZ@{A(>u3IAGf;gS>?^3y=loq5{tVuOt_V*>1?<6K&CgWa?O*&s=Ya<{Gw-7IWz5z zD^?KCLpVQ~oMo0B*AJ|sPjc9m%|eUW%J|Brr_55*q3Piei@LW2L@iQY1%aG*(~4IJ z;wC_mLIVQg)awMMoQ)^N0G0b5_%L}C%|PwD{gqqQ&hnoR|`GnS%DIJ zTzpgHkx3O&*tstFb3{D>B%cDDhE0By=(7QBl7$u{!ls>p9v4s?^xE5Q6g}g1lOOdl zXc;X<6iaj^>WA%7{28+A_a8C-7>w6uzJKMfi+xkywW;gZ-&k8cbo}CTIIXo$r8`L1 z(tQaSCk;(YGw2~=iAzmvTw;7qaN!7HoSFr zcC$z8pIeQ^o>hO_Lw{uteHT7&pYlSJw3!KDi&C@I`(gNgJ;1qbKH|EG{^vmQX#-<^r09F?C2FD_^Ze{zxlGC~i~D4hT|3i%i$qAXrpnq-F09S^aX$VD@n75Or*cgc(o zK`J2s=5Uqaf2Ai| zsG7{RP&J86!NY%{6G@?YC!xYVr?pdXuOn-Ps$S&6aQ=>|nXo z|9>R`|DEw~@;c|c&Om9b^BwTJQ=Jz#FYK@ag1w=2-We^|C~eb=63mtVx}FKAZ+b4A zmgzS`$2*9!g?OvgTQt`pXtHHxuX1*DG7LVMlXAoAv~OQ1@% + +
+
+ + + + localhost + 4000 + EventNotification + EventURI + + + diff --git a/SAF/Test.Client.SAF.EventNotification/TestConsole/bin/Debug/TestConsole.pdb b/SAF/Test.Client.SAF.EventNotification/TestConsole/bin/Debug/TestConsole.pdb new file mode 100644 index 0000000000000000000000000000000000000000..20840b8adef3ba37db62f6f5ea0f7ba444fc42c5 GIT binary patch literal 13824 zcmeHNO>7%Q6rN4p)Jc;P7f3@|kSVE@Ca|_c2~mrPi<_zy4Q&Vq1d$?lyQZtUYp~rv z2?-w{f(r^#4#w6(c&->3jJ$Um_a$)LduAvzTE ze``PkQ-A+F?^FG1pu^~xtKZT4BR|s=GX@yP+B|@@i1~SheU(Sme?&`2{2Y@PI0E`A8h-d;05=9mlyZA4enEQXkhNf+zr}mFS}#y z9?K}bm2{ngY-`B*;UfI+2W zfnFNlMP6|%eU-=ZJu18pd5%TbzZ+vQ(9`=k2+%aZesj;sedyc3d4NQH6YML&y31Y8 z_-+z)z%<+6>81IO2=FKHCP314nC4!X^+}K~@V)_e6@_i!o#2mvBVE`H{vh}Wco;kh z{xJA!;HXpJ{OSS^h@=RJIIt6V*+UGR*aDpdWM87F&-bz~+U|4%v>^%oFK|4#&M5@M zGq=epJ6D#&Sfw1=FUtLecDUbHT2kMI!g$^V90FbiXroI2sRIZDy8IZ@w4=5mlEt=| zUQOaS>XCSs>uie5(r>oGQRsKH=Vgz>7v=L49)HKpq8koGZQQot1elyO{m!1N6jsQa(+9}suu8)R@_D4y5EU9{``LOVi*d%QO(_o*M zI6T}tKIG=J=f;m@92eHxEOyB908C{FwE@)jRC%5~V?u2A>MA=|-Y99=a$nH0+;gX%9^jda7XduiNEz^>>5O$kL~>axl5)~^F0#x67yXd$ppWrfMB?JZ zJpE0Vd91e`@W07*&+?jhr|^J$`2CvBQxW4QStNTm3jU?{$ygNNJA-^Pup~SBKzWzj?c$zj`E=9|cv+OLO z?>U&KiDkUcs8rT~8^2cBuu+V6)2Pcej-+ECxw->Vy;x>=6Z%_=_iFVr{X)KMem*K+ zuF|*4S1@(nj2RdAID@o*!^owH-#-5;ekFZ*w&#aEpQe!)Ipnw}4!Ws~h`7m$<^Pre3x4fq=HHBf&V_!q1gm1O_` literal 0 HcmV?d00001 diff --git a/SAF/Test.Client.SAF.EventNotification/TestConsole/obj/Debug/TestConsole.exe b/SAF/Test.Client.SAF.EventNotification/TestConsole/obj/Debug/TestConsole.exe new file mode 100644 index 0000000000000000000000000000000000000000..6fa6be2cd320b91afcdd2e0eca71d2088fa55b20 GIT binary patch literal 6144 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 literal 0 HcmV?d00001 diff --git a/SAF/Test.Client.SAF.EventNotification/TestConsole/obj/Debug/TestConsole.projdata b/SAF/Test.Client.SAF.EventNotification/TestConsole/obj/Debug/TestConsole.projdata new file mode 100644 index 0000000000000000000000000000000000000000..630cdd0c953143ddf51acef0a0f9ad29ea3ccae7 GIT binary patch literal 2440 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 literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Application.DocumentLayer/TestConsole/App.ico b/SAF/Test.SAF.Application.DocumentLayer/TestConsole/App.ico new file mode 100644 index 0000000000000000000000000000000000000000..3a5525fd794f7a7c5c8e6187f470ea3af38cd2b6 GIT binary patch literal 1078 zcmeHHJr05}7=1t!Hp3A*8IHkVf+j?-!eHY14Gtcw1Eb*_9>Bq^zETJ@GKj{_2j4$w zo9}xCh!8{T3=X##Skq>ikMjsvB|y%crWBM2iW(4pI}c%z6%lW!=~4v77#3{z!dmB1 z__&l)-{KUYR+|8|;wB^R|9ET$J@(@=#rd^=)qs85?vAy(PSF5CyNkus435LVkZ$rj zNw|JG-P7^hF<(;#o*Vk}5R#e|^13tBbQkeF?djULtvqyxd3<{9 literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Application.DocumentLayer/TestConsole/AssemblyInfo.cs b/SAF/Test.SAF.Application.DocumentLayer/TestConsole/AssemblyInfo.cs new file mode 100644 index 0000000..9f89a32 --- /dev/null +++ b/SAF/Test.SAF.Application.DocumentLayer/TestConsole/AssemblyInfo.cs @@ -0,0 +1,58 @@ +using System.Reflection; +using System.Runtime.CompilerServices; + +// +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +// +[assembly: AssemblyTitle("")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("")] +[assembly: AssemblyCopyright("")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: + +[assembly: AssemblyVersion("1.0.*")] + +// +// In order to sign your assembly you must specify a key to use. Refer to the +// Microsoft .NET Framework documentation for more information on assembly signing. +// +// Use the attributes below to control which key is used for signing. +// +// Notes: +// (*) If no key is specified, the assembly is not signed. +// (*) KeyName refers to a key that has been installed in the Crypto Service +// Provider (CSP) on your machine. KeyFile refers to a file which contains +// a key. +// (*) If the KeyFile and the KeyName values are both specified, the +// following processing occurs: +// (1) If the KeyName can be found in the CSP, that key is used. +// (2) If the KeyName does not exist and the KeyFile does exist, the key +// in the KeyFile is installed into the CSP and used. +// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. +// When specifying the KeyFile, the location of the KeyFile should be +// relative to the project output directory which is +// %Project Directory%\obj\. For example, if your KeyFile is +// located in the project directory, you would specify the AssemblyKeyFile +// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] +// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework +// documentation for more information on this. +// +[assembly: AssemblyDelaySign(false)] +[assembly: AssemblyKeyFile("")] +[assembly: AssemblyKeyName("")] diff --git a/SAF/Test.SAF.Application.DocumentLayer/TestConsole/Class1.cs b/SAF/Test.SAF.Application.DocumentLayer/TestConsole/Class1.cs new file mode 100644 index 0000000..5e9e5b6 --- /dev/null +++ b/SAF/Test.SAF.Application.DocumentLayer/TestConsole/Class1.cs @@ -0,0 +1,51 @@ +using System; +using TestDocumentLayer; +using SAF.Application.Configuration; +using System.Configuration; +using SAF.Application.DocumentLayer; +using System.IO; +using System.Security.Principal; + +namespace TestConsole +{ + /// + /// Summary description for Class1. + /// + class Class1 + { + /// + /// The demo shows how to use DocumentLayer in the application. + /// + [STAThread] + static void Main(string[] args) + { + StreamReader sr = null; + string content=null; + try + { + //load the order xml. + sr = new StreamReader("..\\..\\OrderSample.xml"); + content = sr.ReadToEnd(); + } + finally + { + sr.Close(); + } + + GenericIdentity gi = new GenericIdentity("CustomerA"); + GenericPrincipal gp = new GenericPrincipal(gi,null); + //create a new document object + Document doc = new Document(gp,content,null); + + SAF.Application.Configuration.ConfigurationManager cm =null; + cm = (SAF.Application.Configuration.ConfigurationManager)ConfigurationSettings.GetConfig("MyApplication"); + //get the initial document layer object + IDocumentLayer layer = (IDocumentLayer)cm.DocumentLayerConfig.GetDocumentLayerByName("Special"); + //start processing the document. + IDocument response = layer.ProcessDocument(doc); + Console.WriteLine(">>>>>>>>>>>>>Repsonse document from " + response.Sender.Identity.Name + " has arrived <<<<<<<<<<<<"); + Console.WriteLine("Response Document is: \n " + response.Content + "\n"); + + } + } +} diff --git a/SAF/Test.SAF.Application.DocumentLayer/TestConsole/ConfirmationSample.xml b/SAF/Test.SAF.Application.DocumentLayer/TestConsole/ConfirmationSample.xml new file mode 100644 index 0000000000000000000000000000000000000000..de20bd1de58a88f5de73fb853f655c8c9d7624b7 GIT binary patch literal 314 zcmaiwO$x#=5QV?B;2lB_V5`d#yRhKKML|y>S~1`sO$1MG`x4x^C?$)$c{B6nk^XCW z;3+7nc}ib!blf=-q@v?7eB|7cE`RfDGOn5lytJF^)NI&u;3U6I1kYlWno%)lCbq%S w=*_dXI#o_8(w9nA=r&@8l;^E1v9nd>l&95X?B|oL)hMfB_s6iJP5(&60Jfns4gdfE literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Application.DocumentLayer/TestConsole/Confirmations.xsd b/SAF/Test.SAF.Application.DocumentLayer/TestConsole/Confirmations.xsd new file mode 100644 index 0000000000000000000000000000000000000000..a2bb508e2cc203cc9dbb56f171652ef5f13c0492 GIT binary patch literal 1324 zcmbtUO;3YB6r8h(|DoyKe%QoA(~qRRs!gm1uN0_lEKu1+(I2nQTOe$KT1`VJbl-b3 z^XBdH{WZcADFW=!!W(?VP}m|uh%wseqk|rwEk;7PT=y6a@ob_AG}gFc)(vx}nBWo@ z7!gll$lJw+bpagKXB;6{1$V1D?M>MUvb)k+EMfkN zUdhuVpJ%3N_q-sEMB-YHg&JG`U;AyUb?CPy&z6eh#P}8Wx4Al&$r(NF}W#;d@sLVU1qs(mLE~EBWWP%^o CbkINm literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Application.DocumentLayer/TestConsole/Order.xsd b/SAF/Test.SAF.Application.DocumentLayer/TestConsole/Order.xsd new file mode 100644 index 0000000000000000000000000000000000000000..ebd6e45bee8df465fcce9226efa318ecce7868c1 GIT binary patch literal 2014 zcmcgt%T9wp6g_Jb|ABOGA2xB(^pVu9uc!;R6wo#nsAbUV$E)WKkfC&JX`_bln)^8C zo_hzrKKmG9g%EQ%ctwCE63h@I!T=3)&_tVehn5H)*L_+eJZWnRg-4vw>x@1l3~`Jj z^qDU~kEe$z<3hNM&oCmcO5Q0W6&Cbr@i@mAx40|$C&axb7hf|Hd=uZp#FC?oCea~z zddv_LF(ymJHQ^r;Z%o?kAlh#pjSu37NW#4lKC)au;nj z6?lUjO`cs|W6hx8)gi+NT;gI)p+>H@Lv0Gh1J)yYORp5yqny9s88s8WWu21Pa(t%G zLT6b~pLfKL$XzDG z*S_{Dt2GvE%KYorYm2Q{yDjoRbhy!z?^7v{ldw$-8^c3%vE^}zt;l4?uF1C|sLbRn z@1V*jP3E-tc4Tq#rIFp=`eC-psKs-!8+M^fm5Elz;We9e!$9WCBXgO=`JZu+-Q#ka z6_JF4)Vj$<_K9?{z7BmVmMM8?FHMH^dA09xqkVz9-~OoEv)`E*Q` + + + + + + + + + + + \ No newline at end of file diff --git a/SAF/Test.SAF.Application.DocumentLayer/TestConsole/TestConsole.csproj b/SAF/Test.SAF.Application.DocumentLayer/TestConsole/TestConsole.csproj new file mode 100644 index 0000000..68ee3a3 --- /dev/null +++ b/SAF/Test.SAF.Application.DocumentLayer/TestConsole/TestConsole.csproj @@ -0,0 +1,137 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SAF/Test.SAF.Application.DocumentLayer/TestConsole/TestConsole.csproj.user b/SAF/Test.SAF.Application.DocumentLayer/TestConsole/TestConsole.csproj.user new file mode 100644 index 0000000..c8340ea --- /dev/null +++ b/SAF/Test.SAF.Application.DocumentLayer/TestConsole/TestConsole.csproj.user @@ -0,0 +1,48 @@ + + + + + + + + + + + + diff --git a/SAF/Test.SAF.Application.DocumentLayer/TestConsole/app.config b/SAF/Test.SAF.Application.DocumentLayer/TestConsole/app.config new file mode 100644 index 0000000..376f4b5 --- /dev/null +++ b/SAF/Test.SAF.Application.DocumentLayer/TestConsole/app.config @@ -0,0 +1,22 @@ + + + +
+
+ + + + + + + + + + + + + + + + + diff --git a/SAF/Test.SAF.Application.DocumentLayer/TestConsole/bin/Debug/SAF.Application.Configuration.dll b/SAF/Test.SAF.Application.DocumentLayer/TestConsole/bin/Debug/SAF.Application.Configuration.dll new file mode 100644 index 0000000000000000000000000000000000000000..8731f8674816e3ad4549999d26b64230a4ff222c GIT binary patch literal 4608 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 literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Application.DocumentLayer/TestConsole/bin/Debug/SAF.Configuration.dll b/SAF/Test.SAF.Application.DocumentLayer/TestConsole/bin/Debug/SAF.Configuration.dll new file mode 100644 index 0000000000000000000000000000000000000000..84092db3a9657a5b4cacc75cba2aad873475d8bf GIT binary patch literal 11776 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 R`ah!wI9-2!{lBxoe*)g4z1jc( literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Application.DocumentLayer/TestConsole/bin/Debug/SAF.Configuration.pdb b/SAF/Test.SAF.Application.DocumentLayer/TestConsole/bin/Debug/SAF.Configuration.pdb new file mode 100644 index 0000000000000000000000000000000000000000..e1b1ecc8cfc6152801b5145070c797d9166c18ad GIT binary patch literal 54784 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 literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Application.DocumentLayer/TestConsole/bin/Debug/TestConsole.exe.config b/SAF/Test.SAF.Application.DocumentLayer/TestConsole/bin/Debug/TestConsole.exe.config new file mode 100644 index 0000000..376f4b5 --- /dev/null +++ b/SAF/Test.SAF.Application.DocumentLayer/TestConsole/bin/Debug/TestConsole.exe.config @@ -0,0 +1,22 @@ + + + +
+
+ + + + + + + + + + + + + + + + + diff --git a/SAF/Test.SAF.Application.DocumentLayer/TestConsole/bin/Debug/TestConsole.pdb b/SAF/Test.SAF.Application.DocumentLayer/TestConsole/bin/Debug/TestConsole.pdb new file mode 100644 index 0000000000000000000000000000000000000000..d056a0d209caf3f6d993fff3eac50685d2cd2dab GIT binary patch literal 13824 zcmeHNU1%It6uz6Lc9S%*TWhQviDQhCH0^8>Vhlx1%Qhv!tck=Y353n;Y&&!_yX99-JDZ?E3`mAan50OQ!c0>B!@@-o7{D%a zd#;7%C&a?or#0uV3_bth&0oI{%@4Zw4IiC*Ih4E>x_n58JHe65>nUQbnbd*G&A=|; zK43pk2h;<*fd*hN&5ZAOleW4Zz0)9WB z{pl;7KPX>-GAcxC#edq(AOCsJ;Y)di9!YikKWgA!&3`Ypb1rjEZxq`Z`xR|34O}cd zj>k)%E`i{E7(w9}Fp5IPg3Z!;@t^Ae`U>OwM)6yv(Y1>Js%t<2^cbp#Ga8@@)FJ*VYDB{g}J`A6VI|fCS)Bv@vi$mOMi5pZo z$iD`FNQQM;6pLFn%A3Wm5Zhgc@C!BovAkZihbHEnoH@ff?V*?8M<)udGfLM%oi^4v zeo{Z~bFXOHPFkmCv(nj6CtU1DFD+WLed!oYEA2D+Z%eca--Sp3B+C3D;BICy#~|_C=MUgJ-he3g{E9hdfkF`K<*7HE59Fy2d}qqD{1I?| zXVSnQ1%DhIM^K_2ychgQ@MplWcE}HccY=?DcY&VVuI&7xDr8P3;$=>|=LKf1&S^*L>4`potD|#P}ak;M3vP{vYHShpxa-a1TK>JS>Cipb2^8jtv0o;P| z{OA9)CEL!v>5pw1#65q|^?zx29+g8swyff3n&~hyKhXcA4^aagT z$E0PpUFo|*SMTdRfyJwtLE8W9k8iczjQsGzyFdRlAAbGP2z415wd^w^b}}s@c6`Qk zM8wG&k<(^8VP>aOY2%D5NLne=iTD*;?)kCo_rKlT%^4JP4Pz1QytQ)E^CXZ#;6iT|FXZ-x(}J#z(P2lIvZ`yc9@X`lImF~|EI i7=4jBg*M~46z!>~G8*9TvJ@!|C=DnLC=Kj94g3pE*zC^$ literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Application.DocumentLayer/TestConsole/bin/Debug/TestDocumentLayer.dll b/SAF/Test.SAF.Application.DocumentLayer/TestConsole/bin/Debug/TestDocumentLayer.dll new file mode 100644 index 0000000000000000000000000000000000000000..33cdba3768c6101bc50ece952653dd3655819ddf GIT binary patch literal 8192 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 cr-yyG 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 TP?tbm0(A-0B~X_@H4^xL-(O{g literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Application.DocumentLayer/TestConsole/obj/Debug/TestConsole.exe b/SAF/Test.SAF.Application.DocumentLayer/TestConsole/obj/Debug/TestConsole.exe new file mode 100644 index 0000000000000000000000000000000000000000..d7c130ca40e5a22e3408e87c70bba0a96d00ede3 GIT binary patch literal 6656 zcmeHLUu;`f8UOCJa?Sfs=c;Pox9q; z?!DJrvPmo})wJ>eWs{~29vD0zc&UmsSce1(s0blgB_1kZf~rWBXvYJZKN`Ht8ApkGDgYHtJw18;r`mt<2#5(v;g%V z-xaTk=pse5rCNw+86;d$E^Gi8sBu&V1C8$c4NCmymgZ0)=fdkE>Xg4mTVq8>^diR1 zFdZkF?x+cyn?t?}@m``e&GK8(22t~H9pHzX`ougnIwHObudW9T>-ztAsbr}UV5QDWOsr1z4I`uq9B)b^tjzRyHkR$tKCM2uzeo` zOv28aJQB7qylySCfA)>;XL_yHtlFT#M;)iBXC<}Yxbp4+?YdB3_W*kP!K-z#xKm0n2+L!Sht6Xr|*(5?ah9p<+e z?JQa@Fx7_c(P;@Yf7dqh!GVkrPdP&z2j&qWIgf0|Jm(k$O=vz^8>kOx(ird=!IuS3 z3I1I0qToLS@737y5y4@>g5Yt%Q`*;&Gk&V^n3uG7K))yWF@2dHqRoOsz%beR1SB&e zc}4%C9-;5+uj^6zt9~BX5jYQ<-GK?<0bqz;4e*%X26Ew*Fml^TgY+1+2{&%A{Hv6b z6+YC<+zTtyu<_$@UhASX_0TH8Uf?QPFZ7_`Cj}FNX~7A>{eq^TC3qBgKg|L=>3NZy zpnq!X=>&!JPI$nxyas%jz6*SmenP+0x6v=CFOZ~P)0V&x{f-KO5&9!N9mvr4=vd&h z^iBFoU_D)-Zv+m|dvq$0hxQC4OE5ww8RSww#pqM?HDI^kYQc?yO9hjHy96_WpBKyt z9--ICqG#zjIz}(hm*~s%61_sfIX|LT+ul8bfT28w%CWsv%lsPQJ+8^Fwq2=NO>j_e zuxsp3W3=;P2h+z#?R>SUwh_N}wRb9}W)zj&ob42?EM;b0PnBpa`=rWwlq{OAJJ@VZ zqo!4+SkAMZnr&>4I$VS?UR+AJt}11Vv%A#nZnLBk9^S8P)lcLHfGt0~0sZ(>SFYeQS;;?PBfBxHN3K(;hFg?o&%xsfEiZ&y$Qjr1<(OI|UlZOlEQ)=_1;`EGb@T-GMU7ZxCA}c^upvYrk0JX^p)!tDf*|k(aoMcu&ZEf z?&pFw;D?Q#Rhg-bF%3G58F^-dXrqCz0uz=7(7|KTQ|Ofk|M*QF8ss@#%+i=6wO|el z7F#h&m}d#_hau6A|8!yXTR&Sr_N~)9gHOEr)<)`h^O>oAt2SLcfm=#j8wnVs1r1G$ zFz9WDuIYMELq{kg?O>x5Ya<;-K#T5=L=OZ>TN4R{q86;zL_&rZJsLe4G$^{CVIo9< z2nwvUNLPDDG!coWqodKiQ57vkkD^~f4{`T2>L}`7RE1hXJ=(^zQV16*6Q^t6p)5Pc zw87NEQvY6UXbvWAXUB|^wh`;c1>0(a0JP-*0x-Qd%}ouIk= zDEOCu`QITLy?f+p8`Io=TD1N*Z_~6QEq~s^gjhwOghk$|F-=wR^ z{Iggs=T`--Z}X7Y)ICp0rpk#Ql@>n@*vDxF=BnH7gRO(PYB?ABL1gR!)IofweuB1u zV%!Ye3@!KXM1PKsCwOXh(yS@9TuPX{^2n!_{Kif*T|e7ty}r#$9f#&*tiXRwbN*A|hbm1h($Rt;XT~KyHwD#nEbVPVqA1oGo7F z{5O4WjzFQ}VG&?{ejbu*^2h&p0)>i)MGXIKdAg-kf~l5L31X5)`P*H-5e!g>$BWJ7 z_`>*&)XVO3=h9v!_^ak}mZ&A%@jKql7I(nRQtp=bZ081GRq6=Rq%C z=J;^)!S)*<$U8dc?X}}t3)|3`IP?C0+z$KOH#FjJ%g|YW;CXo2QutMyYmwXrqwzcH wSB{QOhQV1nC^xQ7ot-|%_ifXadK&}ZHTlpZVEF%|ySVj3pZV^D{|6EHH$|T3f&c&j literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Application.DocumentLayer/TestConsole/obj/Debug/TestConsole.exe.incr b/SAF/Test.SAF.Application.DocumentLayer/TestConsole/obj/Debug/TestConsole.exe.incr new file mode 100644 index 0000000000000000000000000000000000000000..59e94671df4ffd316eb62b2466527fa54da78bed GIT binary patch literal 2156 zcmdT_yKdA#6g?XP34wwt^+>7L0wIV1J0k%0Qlt%0#whzJ7Aly<5>8?oi#UrJnAH5PjrNq>JtQX#wE0)#U+z6G9o^N{ zPO>vGg$9;U#cBR!fulO-^YGC`f*2{qLk5H2EBto@bJW`i;o=IvCAdW0WgOy)gOtOV zWPgOZI@Y*5_+im12P zH?gYy7Exd0X=~h_^qperwc_!BUm9?@J7RBf=5X%{$AABye!j(`Z=K4zShrtHV_Tx^ z6zjT7c(i|oc1yf(F}W4VyNS5=;ia}B_t8$UB9Dqc`@G*5duYXh(ehLAMXxaY7m>C- zA4x^U`Od~CX7(v@7~3(*zpFMOGqTAXN^}-Fn^}E-{DJ1!xP3?Wd39#5EA_%As$#M` zW=>!HCA;&;8LR{b^ZzQPSFDk7AmfjeTNH^Jxp&SyocKO+vy(5=H&l@sJwxVG;tXk7 z!0J|I_44QmgZ@Z~uZvpl*LHOG$2G=#4)p|eMItqc&(>(=-V}5>65&)LLW=%Reb9cP literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Application.DocumentLayer/TestConsole/obj/Debug/TestConsole.pdb b/SAF/Test.SAF.Application.DocumentLayer/TestConsole/obj/Debug/TestConsole.pdb new file mode 100644 index 0000000000000000000000000000000000000000..d056a0d209caf3f6d993fff3eac50685d2cd2dab GIT binary patch literal 13824 zcmeHNU1%It6uz6Lc9S%*TWhQviDQhCH0^8>Vhlx1%Qhv!tck=Y353n;Y&&!_yX99-JDZ?E3`mAan50OQ!c0>B!@@-o7{D%a zd#;7%C&a?or#0uV3_bth&0oI{%@4Zw4IiC*Ih4E>x_n58JHe65>nUQbnbd*G&A=|; zK43pk2h;<*fd*hN&5ZAOleW4Zz0)9WB z{pl;7KPX>-GAcxC#edq(AOCsJ;Y)di9!YikKWgA!&3`Ypb1rjEZxq`Z`xR|34O}cd zj>k)%E`i{E7(w9}Fp5IPg3Z!;@t^Ae`U>OwM)6yv(Y1>Js%t<2^cbp#Ga8@@)FJ*VYDB{g}J`A6VI|fCS)Bv@vi$mOMi5pZo z$iD`FNQQM;6pLFn%A3Wm5Zhgc@C!BovAkZihbHEnoH@ff?V*?8M<)udGfLM%oi^4v zeo{Z~bFXOHPFkmCv(nj6CtU1DFD+WLed!oYEA2D+Z%eca--Sp3B+C3D;BICy#~|_C=MUgJ-he3g{E9hdfkF`K<*7HE59Fy2d}qqD{1I?| zXVSnQ1%DhIM^K_2ychgQ@MplWcE}HccY=?DcY&VVuI&7xDr8P3;$=>|=LKf1&S^*L>4`potD|#P}ak;M3vP{vYHShpxa-a1TK>JS>Cipb2^8jtv0o;P| z{OA9)CEL!v>5pw1#65q|^?zx29+g8swyff3n&~hyKhXcA4^aagT z$E0PpUFo|*SMTdRfyJwtLE8W9k8iczjQsGzyFdRlAAbGP2z415wd^w^b}}s@c6`Qk zM8wG&k<(^8VP>aOY2%D5NLne=iTD*;?)kCo_rKlT%^4JP4Pz1QytQ)E^CXZ#;6iT|FXZ-x(}J#z(P2lIvZ`yc9@X`lImF~|EI i7=4jBg*M~46z!>~G8*9TvJ@!|C=DnLC=Kj94g3pE*zC^$ literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Application.DocumentLayer/TestConsole/obj/Debug/TestConsole.projdata b/SAF/Test.SAF.Application.DocumentLayer/TestConsole/obj/Debug/TestConsole.projdata new file mode 100644 index 0000000000000000000000000000000000000000..a7f645ccf175790ad5f148a57b648cda5c5f7cd2 GIT binary patch literal 1672 zcmeH{&nrYx6vw}hnM}$=A(Wc1K#XiPsfm;trOXZsGe*>yndXf$WiiRZ!qUcyzd`;3 zme&3X{{b~V=Up=>Vu20kb>2DW-t+68d(S!R?~Jqv2uYU#Bh`V7@nEmkG^e5pswfxy zeO9EfJhOs2qbOQ=ZOG@FW_=%d2F(>EwE#_H?c*bkT;j`XM_KeMQ1c$wJT$94?LNmz zv0H^Nzp{3j_-N+YvCLj##9vD+Na2?N!1CV0!=XofW9z%=+3YZk6tVT8EE= zS0E5GInB>?zSA|iR5-04gl@b$_~rBAhql9O&veX}-R_qFgGUtY_AUOc8R4K^OU!{C zdPwSS@}qSBs@65eYFLw=HyG80650%A$gDcBOVEclO?I&_(}!*~t!->$!K!(UA=zv* zjTm#O7{sc;ThErEm1m2M59XGOHT7<^gr=G~xw=_Rx~Sj?Gzw0D0eJ5GLkNHI{7)jt B)tCSP literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Application.DocumentLayer/TestConsole/obj/Debug/TestConsole.projdata1 b/SAF/Test.SAF.Application.DocumentLayer/TestConsole/obj/Debug/TestConsole.projdata1 new file mode 100644 index 0000000000000000000000000000000000000000..df58952627630ffc66a5fe270309132e7354b8cb GIT binary patch literal 1672 zcmeH{KTE@45XPUVfg)HGR8$Z`aZu3|*HVO{2tu9grVg!EEVNddIMk_b4i2tv?t+7p zgPW_fpTdtI=>3D4f~u;hfM*H2g`EMpshrl31)>Ai@Y^0A{}E4B73~riA}x!rRphRY zRcq(V^R)#GjKfd zu{7Jexwt+#eQ=)8Rk@3F!y4P^{t*Fw0cfY+@;_P-i3YX7{8yM6X|$`)GWA>9(Hve^ zi;gp$)RnT@i|&qP4H1`R?(7z+5#M0$VsAkQ#Cnm}R`sy#ZZm|(eN>Nfh3Gb;4P@Ak nD1LKa#kta7X3Hwwttsw@^=^dD%pjBS0vwSO?>~j{ANT(TPK>4J literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Application.DocumentLayer/TestDocumentLayer/AssemblyInfo.cs b/SAF/Test.SAF.Application.DocumentLayer/TestDocumentLayer/AssemblyInfo.cs new file mode 100644 index 0000000..9f89a32 --- /dev/null +++ b/SAF/Test.SAF.Application.DocumentLayer/TestDocumentLayer/AssemblyInfo.cs @@ -0,0 +1,58 @@ +using System.Reflection; +using System.Runtime.CompilerServices; + +// +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +// +[assembly: AssemblyTitle("")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("")] +[assembly: AssemblyCopyright("")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: + +[assembly: AssemblyVersion("1.0.*")] + +// +// In order to sign your assembly you must specify a key to use. Refer to the +// Microsoft .NET Framework documentation for more information on assembly signing. +// +// Use the attributes below to control which key is used for signing. +// +// Notes: +// (*) If no key is specified, the assembly is not signed. +// (*) KeyName refers to a key that has been installed in the Crypto Service +// Provider (CSP) on your machine. KeyFile refers to a file which contains +// a key. +// (*) If the KeyFile and the KeyName values are both specified, the +// following processing occurs: +// (1) If the KeyName can be found in the CSP, that key is used. +// (2) If the KeyName does not exist and the KeyFile does exist, the key +// in the KeyFile is installed into the CSP and used. +// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. +// When specifying the KeyFile, the location of the KeyFile should be +// relative to the project output directory which is +// %Project Directory%\obj\. For example, if your KeyFile is +// located in the project directory, you would specify the AssemblyKeyFile +// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] +// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework +// documentation for more information on this. +// +[assembly: AssemblyDelaySign(false)] +[assembly: AssemblyKeyFile("")] +[assembly: AssemblyKeyName("")] diff --git a/SAF/Test.SAF.Application.DocumentLayer/TestDocumentLayer/DocumentDoSomeWorkLayer.cs b/SAF/Test.SAF.Application.DocumentLayer/TestDocumentLayer/DocumentDoSomeWorkLayer.cs new file mode 100644 index 0000000..94d26cc --- /dev/null +++ b/SAF/Test.SAF.Application.DocumentLayer/TestDocumentLayer/DocumentDoSomeWorkLayer.cs @@ -0,0 +1,83 @@ +using System; +using System.Xml; +using System.IO; +using System.Security.Principal; +using SAF.Application.DocumentLayer; + + +namespace TestDocumentLayer +{ + /// + /// This class demonstrates what's going on inside a document layer object and + /// how it process the document. + /// + public class DocumentDoSomeWorkLayer : IDocumentLayer + { + private IDocumentLayer next; + + public DocumentDoSomeWorkLayer() + { + } + + public DocumentDoSomeWorkLayer(XmlNode configXml) + { + XmlNode node = configXml.SelectSingleNode("Layer"); + if (node != null) + { + //retrieve the type information of the document layer from the configuration xml + Type type = Type.GetType(node.Attributes["type"].Value); + object[] parameters= new Object[1]{node}; + next = (IDocumentLayer)Activator.CreateInstance(type,parameters); + + } + } + + /// + /// Next Property holds the reference for the next document object. + /// + public IDocumentLayer Next + { + get + { + return next; + } + set + { + next = value; + } + } + + /// + /// ProcessDocument is responsible for process the document. + /// + /// + /// + public IDocument ProcessDocument(IDocument doc) + { + //do some serious work here + Console.WriteLine(">>>>>>>>>>>Request document from " + doc.Sender.Identity.Name + " has arrived<<<<<<<<<<<<"); + Console.WriteLine("Request document is: \n" + doc.Content + "\n"); + + + StreamReader sr = null; + string content=null; + try + { + //load the confirmation document. + sr = new StreamReader("..\\..\\ConfirmationSample.xml"); + content = sr.ReadToEnd(); + } + finally + { + sr.Close(); + } + + GenericIdentity gi = new GenericIdentity("ServerProviderX"); + GenericPrincipal gp = new GenericPrincipal(gi,null); + + //generate a response document and return it to the caller. + Document response = new Document(gp,content,null); + return response; + } + } +} diff --git a/SAF/Test.SAF.Application.DocumentLayer/TestDocumentLayer/DocumentLoggingLayer.cs b/SAF/Test.SAF.Application.DocumentLayer/TestDocumentLayer/DocumentLoggingLayer.cs new file mode 100644 index 0000000..8148e34 --- /dev/null +++ b/SAF/Test.SAF.Application.DocumentLayer/TestDocumentLayer/DocumentLoggingLayer.cs @@ -0,0 +1,149 @@ +using System; +using System.Xml; +using SAF.Application.DocumentLayer; +using System.Data; +using System.Data.SqlClient; + +namespace TestDocumentLayer +{ + /// + /// DocumentLoggingLayer shows a sample implementation of document layer + /// that would log incoming and outgoing document to database as documnet flows through the + /// system. + /// + public class DocumentLoggingLayer : IDocumentLayer + { + private IDocumentLayer next; + private string connString; + private int documentLoggingID; + + public DocumentLoggingLayer() + { + } + + public DocumentLoggingLayer(XmlNode configXml) + { + XmlNode node = configXml.SelectSingleNode("Layer"); + connString = configXml.SelectSingleNode("Config").Attributes["connection"].Value; + if (node != null) + { + //retrieve the type information of the document layer. + Type type = Type.GetType(node.Attributes["type"].Value); + object[] parameters= new Object[1]{node}; + next = (IDocumentLayer)Activator.CreateInstance(type,parameters); + + } + } + + public IDocumentLayer Next + { + get + { + return next; + } + set + { + next = value; + } + } + + /// + /// Log the incoming and outgoing document to database table + /// + /// request document + /// response document + public IDocument ProcessDocument(IDocument doc) + { + LogIncomingDocument(doc); + if (Next != null) + { + doc = Next.ProcessDocument(doc); + } + if (doc != null) + { + LogOutgoingDocument(doc); + } + return doc; + } + + private void LogIncomingDocument(IDocument doc) + { + DataHelper dh = new DataHelper(connString); + documentLoggingID = dh.GetMaxID(); + string sql = "insert into DocumentLogging values (" + + documentLoggingID + " ,'in','" + doc.Sender.Identity.Name + "','" + + doc.Content + "',GETDATE())"; + + dh.ExecuteQuery(sql); + + } + + private void LogOutgoingDocument(IDocument doc) + { + DataHelper dh = new DataHelper(connString); + string sql = "insert into DocumentLogging values (" + + documentLoggingID + " ,'out','" + doc.Sender.Identity.Name + "','" + + doc.Content + "',GETDATE())"; + + dh.ExecuteQuery(sql); + } + } + + /// + /// Database helper class + /// + public class DataHelper + { + private SqlConnection conn; + public DataHelper(string connstring) + { + conn = new SqlConnection(connstring); + } + public void ExecuteQuery(string sql) + { + try + { + conn.Open(); + SqlCommand command = conn.CreateCommand(); + command.CommandText = sql; + command.ExecuteNonQuery(); + } + finally + { + conn.Close(); + } + + } + + public int GetMaxID() + { + int maxid = 0; + try + { + conn.Open(); + SqlCommand command = conn.CreateCommand(); + command.CommandText ="select max(id) from DocumentLogging"; + SqlDataReader dr = command.ExecuteReader(); + while (dr.Read()) + { + try + { + maxid =dr.GetInt32(0); + } + catch (System.Data.SqlTypes.SqlNullValueException ex) + { + maxid =0; + } + break; + } + + return maxid + 1 ; + } + finally + { + conn.Close(); + } + + } + } +} diff --git a/SAF/Test.SAF.Application.DocumentLayer/TestDocumentLayer/DocumentXmlValidationLayer.cs b/SAF/Test.SAF.Application.DocumentLayer/TestDocumentLayer/DocumentXmlValidationLayer.cs new file mode 100644 index 0000000..63f4f40 --- /dev/null +++ b/SAF/Test.SAF.Application.DocumentLayer/TestDocumentLayer/DocumentXmlValidationLayer.cs @@ -0,0 +1,102 @@ +using System; +using System.Xml; +using System.Xml.Schema; +using SAF.Application.DocumentLayer; + +namespace TestDocumentLayer +{ + /// + /// DocumentXmlValidationLayer shows a sample implementation of + /// document layer that validate whether the document is compliant with + /// the predefined schemas. + /// + public class DocumentXmlValidationLayer : IDocumentLayer + { + private IDocumentLayer next; + private string incomingSchema ; + private string outgoingSchema; + private XmlValidatingReader xmlValidatingReader; + + public DocumentXmlValidationLayer() + { + } + + public DocumentXmlValidationLayer(XmlNode configXml) + { + XmlNode node = configXml.SelectSingleNode("Layer"); + //retrieve the schema information. + incomingSchema = configXml.SelectSingleNode("Config").Attributes["incomingSchema"].Value; + outgoingSchema = configXml.SelectSingleNode("Config").Attributes["outgoingSchema"].Value; + + if (node != null) + { + Type type = Type.GetType(node.Attributes["type"].Value); + object[] parameters= new Object[1]{node}; + next = (IDocumentLayer)Activator.CreateInstance(type,parameters); + + } + } + + public IDocumentLayer Next + { + get + { + return next; + } + set + { + next = value; + } + } + public IDocument ProcessDocument(IDocument doc) + { + ValidateIncomingDocument(doc); + if (Next != null) + { + doc = Next.ProcessDocument(doc); + } + if (doc != null) + { + ValidateOutgoingDocument(doc); + } + return doc; + } + /// + /// Ensure the incoming document is compliant with schema + /// + /// incoming document + private void ValidateIncomingDocument(IDocument doc) + { + XmlTextReader xmlTextReader = new XmlTextReader(incomingSchema); + xmlValidatingReader = new XmlValidatingReader(xmlTextReader); + xmlValidatingReader.ValidationType = ValidationType.Schema; + Validate(); + } + + /// + /// Ensure the outgoing document is compliant with schema + /// + /// outgoing document + private void ValidateOutgoingDocument(IDocument doc) + { + XmlTextReader xmlTextReader = new XmlTextReader(outgoingSchema); + xmlValidatingReader = new XmlValidatingReader(xmlTextReader); + xmlValidatingReader.ValidationType = ValidationType.Schema; + Validate(); + } + + private void Validate() + { + try + { + while (xmlValidatingReader.Read()){} + } + catch (Exception e) + { + Console.WriteLine ("Exception: " + e.ToString()); + throw e; + } + } + + } +} diff --git a/SAF/Test.SAF.Application.DocumentLayer/TestDocumentLayer/TestDocumentLayer.csproj b/SAF/Test.SAF.Application.DocumentLayer/TestDocumentLayer/TestDocumentLayer.csproj new file mode 100644 index 0000000..8f2ff86 --- /dev/null +++ b/SAF/Test.SAF.Application.DocumentLayer/TestDocumentLayer/TestDocumentLayer.csproj @@ -0,0 +1,108 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SAF/Test.SAF.Application.DocumentLayer/TestDocumentLayer/TestDocumentLayer.csproj.user b/SAF/Test.SAF.Application.DocumentLayer/TestDocumentLayer/TestDocumentLayer.csproj.user new file mode 100644 index 0000000..c8340ea --- /dev/null +++ b/SAF/Test.SAF.Application.DocumentLayer/TestDocumentLayer/TestDocumentLayer.csproj.user @@ -0,0 +1,48 @@ + + + + + + + + + + + + diff --git a/SAF/Test.SAF.Application.DocumentLayer/TestDocumentLayer/bin/Debug/SAF.Application.DocumentLayer.dll b/SAF/Test.SAF.Application.DocumentLayer/TestDocumentLayer/bin/Debug/SAF.Application.DocumentLayer.dll new file mode 100644 index 0000000000000000000000000000000000000000..eaa161d8d7904104782dd5ea5e1edb6ed6fee1a8 GIT binary patch literal 5632 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 literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Application.DocumentLayer/TestDocumentLayer/bin/Debug/SAF.Application.DocumentLayer.pdb b/SAF/Test.SAF.Application.DocumentLayer/TestDocumentLayer/bin/Debug/SAF.Application.DocumentLayer.pdb new file mode 100644 index 0000000000000000000000000000000000000000..3d2258ac06da65930ebe72b4cd47aff1fbee4830 GIT binary patch literal 17920 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 literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Application.DocumentLayer/TestDocumentLayer/bin/Debug/TestDocumentLayer.dll b/SAF/Test.SAF.Application.DocumentLayer/TestDocumentLayer/bin/Debug/TestDocumentLayer.dll new file mode 100644 index 0000000000000000000000000000000000000000..dc43a95ff4d56da2f4b85f54f95416ea79225b89 GIT binary patch literal 8192 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 Ue*%BBrEdMtZ2AAf|8)=i6W_EocmMzZ literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Application.DocumentLayer/TestDocumentLayer/bin/Debug/TestDocumentLayer.pdb b/SAF/Test.SAF.Application.DocumentLayer/TestDocumentLayer/bin/Debug/TestDocumentLayer.pdb new file mode 100644 index 0000000000000000000000000000000000000000..c8a2395544c503fa6dc3380bdcdcb4220fb78511 GIT binary patch literal 40448 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 literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Application.DocumentLayer/TestDocumentLayer/obj/Debug/TestDocumentLayer.dll b/SAF/Test.SAF.Application.DocumentLayer/TestDocumentLayer/obj/Debug/TestDocumentLayer.dll new file mode 100644 index 0000000000000000000000000000000000000000..dc43a95ff4d56da2f4b85f54f95416ea79225b89 GIT binary patch literal 8192 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 Ue*%BBrEdMtZ2AAf|8)=i6W_EocmMzZ literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Application.DocumentLayer/TestDocumentLayer/obj/Debug/TestDocumentLayer.dll.incr b/SAF/Test.SAF.Application.DocumentLayer/TestDocumentLayer/obj/Debug/TestDocumentLayer.dll.incr new file mode 100644 index 0000000000000000000000000000000000000000..0231bc3347e6e5fa4e688e9b2ff7873a73941aa7 GIT binary patch literal 2080 zcmd5-zi-n(6#g7aDP=9pCowkyA*g6s+PE!&6r{Q|LCs<(P6&1E%63|X0i}SLkr00Y z3~c-ZEGS)ofrXI)2_Z2s@MG=3_bzdoR)wJwY0r6nchBeZ`@Zk)CF_?$x9<9}?WvhY z%_}R@j%`&5LX|nIGC_T<=DDF7A6N06TBIr*sVELYH&SJp7zfJrZHLi{9mOhi9a$tw zk0SfL)jk2>Bu!e1CjC=16SJ7XEzDyIOIXA-GK}okj`sy+g`_ihk4oenyz#KVVBD=zInrurX&HEZJPwOW*Yt+bR+@vp| zp>^{a&yj&9-wyj$`PUqWEBTyj@*RikRJFnf{boP+8r@3!`wwz|t-F0M_mKXNomnSm zCB1irC#T2zSWw;&z84=Bv`=^!?nRH4URHzWKVY7B_wb*n|99OIp1a2kABQ{V&!m6S zMJ1Gf-u`-e+OvxhTI>EjjZVhWZqts6as_JUVVU(&szaGRsiHeIb4R}-p?xC^ Jo}!e9^#@{HYwiF5 literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Application.DocumentLayer/TestDocumentLayer/obj/Debug/TestDocumentLayer.pdb b/SAF/Test.SAF.Application.DocumentLayer/TestDocumentLayer/obj/Debug/TestDocumentLayer.pdb new file mode 100644 index 0000000000000000000000000000000000000000..c8a2395544c503fa6dc3380bdcdcb4220fb78511 GIT binary patch literal 40448 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 literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Application.DocumentLayer/TestDocumentLayer/obj/Debug/TestDocumentLayer.projdata b/SAF/Test.SAF.Application.DocumentLayer/TestDocumentLayer/obj/Debug/TestDocumentLayer.projdata new file mode 100644 index 0000000000000000000000000000000000000000..5b2a5156d76653fd73add42869ae162ac76b53f3 GIT binary patch literal 11144 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 literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Application.Workflow/AssemblyInfo.cs b/SAF/Test.SAF.Application.Workflow/AssemblyInfo.cs new file mode 100644 index 0000000..9f89a32 --- /dev/null +++ b/SAF/Test.SAF.Application.Workflow/AssemblyInfo.cs @@ -0,0 +1,58 @@ +using System.Reflection; +using System.Runtime.CompilerServices; + +// +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +// +[assembly: AssemblyTitle("")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("")] +[assembly: AssemblyCopyright("")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: + +[assembly: AssemblyVersion("1.0.*")] + +// +// In order to sign your assembly you must specify a key to use. Refer to the +// Microsoft .NET Framework documentation for more information on assembly signing. +// +// Use the attributes below to control which key is used for signing. +// +// Notes: +// (*) If no key is specified, the assembly is not signed. +// (*) KeyName refers to a key that has been installed in the Crypto Service +// Provider (CSP) on your machine. KeyFile refers to a file which contains +// a key. +// (*) If the KeyFile and the KeyName values are both specified, the +// following processing occurs: +// (1) If the KeyName can be found in the CSP, that key is used. +// (2) If the KeyName does not exist and the KeyFile does exist, the key +// in the KeyFile is installed into the CSP and used. +// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. +// When specifying the KeyFile, the location of the KeyFile should be +// relative to the project output directory which is +// %Project Directory%\obj\. For example, if your KeyFile is +// located in the project directory, you would specify the AssemblyKeyFile +// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] +// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework +// documentation for more information on this. +// +[assembly: AssemblyDelaySign(false)] +[assembly: AssemblyKeyFile("")] +[assembly: AssemblyKeyName("")] diff --git a/SAF/Test.SAF.Application.Workflow/Class1.cs b/SAF/Test.SAF.Application.Workflow/Class1.cs new file mode 100644 index 0000000..3a2f49b --- /dev/null +++ b/SAF/Test.SAF.Application.Workflow/Class1.cs @@ -0,0 +1,63 @@ +using System; +using SAF.Application.Configuration; +using SAF.Application.DocumentLayer; +using System.Configuration; +using System.IO; +using System.Security.Principal; + +namespace Test.xSAF.Application.Workflow +{ + /// + /// Summary description for Class1. + /// + class Class1 + { + /// + /// Demo that shows how ProcessingUnits and Visitor object + /// are used together to provide the process flow and coordination logic + /// of certain tasks + /// + [STAThread] + static void Main(string[] args) + { + //read the customer order + StreamReader sr = null; + string content=null; + try + { + sr = new StreamReader("..\\..\\OrderSample.xml"); + content = sr.ReadToEnd(); + } + finally + { + sr.Close(); + } + + GenericIdentity gi = new GenericIdentity("CustomerA"); + GenericPrincipal gp = new GenericPrincipal(gi,null); + //create the document object + IDocument doc = new Document(gp,content,null); + + //load the configuration obect for the workflow + SAF.Application.Configuration.ConfigurationManager cm =null; + cm = (ConfigurationManager)ConfigurationSettings.GetConfig("MyApplication"); + + //get the inital documet layer + IDocumentLayer layer = (IDocumentLayer)cm.DocumentLayerConfig.GetDocumentLayerByName("PurchaseOrderWorkFlow"); + //start process the document by calling the ProcessDocument on the inital layer. + //For this perticular example, the last document layer is DocumentWorkFlowLayer object + //which will trigger the work flow defined in the GenericPurchaseOrderVisitor class + IDocument response = layer.ProcessDocument(doc); + //display potential response document + if (response != null) + { + Console.WriteLine(">>>>>>>>>>>>>Repsonse document from " + response.Sender.Identity.Name + " has arrived <<<<<<<<<<<<"); + Console.WriteLine("Response Document is: \n " + response.Content + "\n"); + } + + //change the cost of some product to greater than $100 and run this demo again + //to see how the workflow is changed. + + } + } +} diff --git a/SAF/Test.SAF.Application.Workflow/ConfirmationSample.xml b/SAF/Test.SAF.Application.Workflow/ConfirmationSample.xml new file mode 100644 index 0000000000000000000000000000000000000000..de20bd1de58a88f5de73fb853f655c8c9d7624b7 GIT binary patch literal 314 zcmaiwO$x#=5QV?B;2lB_V5`d#yRhKKML|y>S~1`sO$1MG`x4x^C?$)$c{B6nk^XCW z;3+7nc}ib!blf=-q@v?7eB|7cE`RfDGOn5lytJF^)NI&u;3U6I1kYlWno%)lCbq%S w=*_dXI#o_8(w9nA=r&@8l;^E1v9nd>l&95X?B|oL)hMfB_s6iJP5(&60Jfns4gdfE literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Application.Workflow/Confirmations.xsd b/SAF/Test.SAF.Application.Workflow/Confirmations.xsd new file mode 100644 index 0000000000000000000000000000000000000000..a2bb508e2cc203cc9dbb56f171652ef5f13c0492 GIT binary patch literal 1324 zcmbtUO;3YB6r8h(|DoyKe%QoA(~qRRs!gm1uN0_lEKu1+(I2nQTOe$KT1`VJbl-b3 z^XBdH{WZcADFW=!!W(?VP}m|uh%wseqk|rwEk;7PT=y6a@ob_AG}gFc)(vx}nBWo@ z7!gll$lJw+bpagKXB;6{1$V1D?M>MUvb)k+EMfkN zUdhuVpJ%3N_q-sEMB-YHg&JG`U;AyUb?CPy&z6eh#P}8Wx4Al&$r(NF}W#;d@sLVU1qs(mLE~EBWWP%^o CbkINm literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Application.Workflow/Order.xsd b/SAF/Test.SAF.Application.Workflow/Order.xsd new file mode 100644 index 0000000000000000000000000000000000000000..ebd6e45bee8df465fcce9226efa318ecce7868c1 GIT binary patch literal 2014 zcmcgt%T9wp6g_Jb|ABOGA2xB(^pVu9uc!;R6wo#nsAbUV$E)WKkfC&JX`_bln)^8C zo_hzrKKmG9g%EQ%ctwCE63h@I!T=3)&_tVehn5H)*L_+eJZWnRg-4vw>x@1l3~`Jj z^qDU~kEe$z<3hNM&oCmcO5Q0W6&Cbr@i@mAx40|$C&axb7hf|Hd=uZp#FC?oCea~z zddv_LF(ymJHQ^r;Z%o?kAlh#pjSu37NW#4lKC)au;nj z6?lUjO`cs|W6hx8)gi+NT;gI)p+>H@Lv0Gh1J)yYORp5yqny9s88s8WWu21Pa(t%G zLT6b~pLfKL$XzDG z*S_{Dt2GvE%KYorYm2Q{yDjoRbhy!z?^7v{ldw$-8^c3%vE^}zt;l4?uF1C|sLbRn z@1V*jP3E-tc4Tq#rIFp=`eC-psKs-!8+M^fm5Elz;We9e!$9WCBXgO=`JZu+-Q#ka z6_JF4)Vj$<_K9?{z7BmVmMM8?FHMH^dA09xqkVz9-~OoEv)`E*Q` + + + + + + + + + + + \ No newline at end of file diff --git a/SAF/Test.SAF.Application.Workflow/Test.SAF.Application.Workflow.csproj b/SAF/Test.SAF.Application.Workflow/Test.SAF.Application.Workflow.csproj new file mode 100644 index 0000000..e9845d3 --- /dev/null +++ b/SAF/Test.SAF.Application.Workflow/Test.SAF.Application.Workflow.csproj @@ -0,0 +1,142 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SAF/Test.SAF.Application.Workflow/Test.SAF.Application.Workflow.csproj.user b/SAF/Test.SAF.Application.Workflow/Test.SAF.Application.Workflow.csproj.user new file mode 100644 index 0000000..8b92102 --- /dev/null +++ b/SAF/Test.SAF.Application.Workflow/Test.SAF.Application.Workflow.csproj.user @@ -0,0 +1,48 @@ + + + + + + + + + + + + diff --git a/SAF/Test.SAF.Application.Workflow/Test.SAF.Application.Workflow.sln b/SAF/Test.SAF.Application.Workflow/Test.SAF.Application.Workflow.sln new file mode 100644 index 0000000..fcf75c1 --- /dev/null +++ b/SAF/Test.SAF.Application.Workflow/Test.SAF.Application.Workflow.sln @@ -0,0 +1,57 @@ +Microsoft Visual Studio Solution File, Format Version 7.00 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SAF.Application.Configuration", "..\SAF.Application.Configuration\SAF.Application.Configuration.csproj", "{AE5F42AC-D432-4B6D-8259-371E4C7FC556}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SAF.Application.Workflow", "..\SAF.Application.Workflow\SAF.Application.Workflow.csproj", "{6B86701F-B2C1-4694-81DE-542312E6FB64}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SAF.Application.DocumentLayer", "..\SAF.Application.DocumentLayer\SAF.Application.DocumentLayer.csproj", "{22AC47FC-FBEF-4BA2-B9EE-D12F4C84B8C2}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestDocumentLayer", "..\Test.SAF.Application.DocumentLayer\TestDocumentLayer\TestDocumentLayer.csproj", "{695CA917-A8C5-4E1F-B381-4D5622310CD9}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SAF.Configuration", "..\SAF.Configuration\SAF.Configuration.csproj", "{CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestWorkFlow", "TestWorkFlow\TestWorkFlow.csproj", "{8C38D3E2-3E3C-4E7E-91C3-AF504231FA38}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestConsole", "TestConsole\TestConsole.csproj", "{B33096D8-2ECA-46D2-944D-4A2D7DA0965C}" +EndProject +Global + GlobalSection(SolutionConfiguration) = preSolution + ConfigName.0 = Debug + ConfigName.1 = Release + EndGlobalSection + GlobalSection(ProjectDependencies) = postSolution + EndGlobalSection + GlobalSection(ProjectConfiguration) = postSolution + {AE5F42AC-D432-4B6D-8259-371E4C7FC556}.Debug.ActiveCfg = Debug|.NET + {AE5F42AC-D432-4B6D-8259-371E4C7FC556}.Debug.Build.0 = Debug|.NET + {AE5F42AC-D432-4B6D-8259-371E4C7FC556}.Release.ActiveCfg = Release|.NET + {AE5F42AC-D432-4B6D-8259-371E4C7FC556}.Release.Build.0 = Release|.NET + {6B86701F-B2C1-4694-81DE-542312E6FB64}.Debug.ActiveCfg = Debug|.NET + {6B86701F-B2C1-4694-81DE-542312E6FB64}.Debug.Build.0 = Debug|.NET + {6B86701F-B2C1-4694-81DE-542312E6FB64}.Release.ActiveCfg = Release|.NET + {6B86701F-B2C1-4694-81DE-542312E6FB64}.Release.Build.0 = Release|.NET + {22AC47FC-FBEF-4BA2-B9EE-D12F4C84B8C2}.Debug.ActiveCfg = Debug|.NET + {22AC47FC-FBEF-4BA2-B9EE-D12F4C84B8C2}.Debug.Build.0 = Debug|.NET + {22AC47FC-FBEF-4BA2-B9EE-D12F4C84B8C2}.Release.ActiveCfg = Release|.NET + {22AC47FC-FBEF-4BA2-B9EE-D12F4C84B8C2}.Release.Build.0 = Release|.NET + {695CA917-A8C5-4E1F-B381-4D5622310CD9}.Debug.ActiveCfg = Debug|.NET + {695CA917-A8C5-4E1F-B381-4D5622310CD9}.Debug.Build.0 = Debug|.NET + {695CA917-A8C5-4E1F-B381-4D5622310CD9}.Release.ActiveCfg = Release|.NET + {695CA917-A8C5-4E1F-B381-4D5622310CD9}.Release.Build.0 = Release|.NET + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Debug.ActiveCfg = Debug|.NET + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Debug.Build.0 = Debug|.NET + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Release.ActiveCfg = Release|.NET + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Release.Build.0 = Release|.NET + {8C38D3E2-3E3C-4E7E-91C3-AF504231FA38}.Debug.ActiveCfg = Debug|.NET + {8C38D3E2-3E3C-4E7E-91C3-AF504231FA38}.Debug.Build.0 = Debug|.NET + {8C38D3E2-3E3C-4E7E-91C3-AF504231FA38}.Release.ActiveCfg = Release|.NET + {8C38D3E2-3E3C-4E7E-91C3-AF504231FA38}.Release.Build.0 = Release|.NET + {B33096D8-2ECA-46D2-944D-4A2D7DA0965C}.Debug.ActiveCfg = Debug|.NET + {B33096D8-2ECA-46D2-944D-4A2D7DA0965C}.Debug.Build.0 = Debug|.NET + {B33096D8-2ECA-46D2-944D-4A2D7DA0965C}.Release.ActiveCfg = Release|.NET + {B33096D8-2ECA-46D2-944D-4A2D7DA0965C}.Release.Build.0 = Release|.NET + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + EndGlobalSection + GlobalSection(ExtensibilityAddIns) = postSolution + EndGlobalSection +EndGlobal diff --git a/SAF/Test.SAF.Application.Workflow/Test.SAF.Application.Workflow.suo b/SAF/Test.SAF.Application.Workflow/Test.SAF.Application.Workflow.suo new file mode 100644 index 0000000000000000000000000000000000000000..03009369e0ded7e28322de6e064e227bf8829055 GIT binary patch literal 20992 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 N=#AG>#i%~Q>3`?&xF-Mr literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Application.Workflow/TestConsole/App.ico b/SAF/Test.SAF.Application.Workflow/TestConsole/App.ico new file mode 100644 index 0000000000000000000000000000000000000000..3a5525fd794f7a7c5c8e6187f470ea3af38cd2b6 GIT binary patch literal 1078 zcmeHHJr05}7=1t!Hp3A*8IHkVf+j?-!eHY14Gtcw1Eb*_9>Bq^zETJ@GKj{_2j4$w zo9}xCh!8{T3=X##Skq>ikMjsvB|y%crWBM2iW(4pI}c%z6%lW!=~4v77#3{z!dmB1 z__&l)-{KUYR+|8|;wB^R|9ET$J@(@=#rd^=)qs85?vAy(PSF5CyNkus435LVkZ$rj zNw|JG-P7^hF<(;#o*Vk}5R#e|^13tBbQkeF?djULtvqyxd3<{9 literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Application.Workflow/TestConsole/AssemblyInfo.cs b/SAF/Test.SAF.Application.Workflow/TestConsole/AssemblyInfo.cs new file mode 100644 index 0000000..9f89a32 --- /dev/null +++ b/SAF/Test.SAF.Application.Workflow/TestConsole/AssemblyInfo.cs @@ -0,0 +1,58 @@ +using System.Reflection; +using System.Runtime.CompilerServices; + +// +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +// +[assembly: AssemblyTitle("")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("")] +[assembly: AssemblyCopyright("")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: + +[assembly: AssemblyVersion("1.0.*")] + +// +// In order to sign your assembly you must specify a key to use. Refer to the +// Microsoft .NET Framework documentation for more information on assembly signing. +// +// Use the attributes below to control which key is used for signing. +// +// Notes: +// (*) If no key is specified, the assembly is not signed. +// (*) KeyName refers to a key that has been installed in the Crypto Service +// Provider (CSP) on your machine. KeyFile refers to a file which contains +// a key. +// (*) If the KeyFile and the KeyName values are both specified, the +// following processing occurs: +// (1) If the KeyName can be found in the CSP, that key is used. +// (2) If the KeyName does not exist and the KeyFile does exist, the key +// in the KeyFile is installed into the CSP and used. +// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. +// When specifying the KeyFile, the location of the KeyFile should be +// relative to the project output directory which is +// %Project Directory%\obj\. For example, if your KeyFile is +// located in the project directory, you would specify the AssemblyKeyFile +// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] +// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework +// documentation for more information on this. +// +[assembly: AssemblyDelaySign(false)] +[assembly: AssemblyKeyFile("")] +[assembly: AssemblyKeyName("")] diff --git a/SAF/Test.SAF.Application.Workflow/TestConsole/Class1.cs b/SAF/Test.SAF.Application.Workflow/TestConsole/Class1.cs new file mode 100644 index 0000000..83c6a5f --- /dev/null +++ b/SAF/Test.SAF.Application.Workflow/TestConsole/Class1.cs @@ -0,0 +1,63 @@ +using System; +using SAF.Application.Configuration; +using SAF.Application.DocumentLayer; +using System.Configuration; +using System.IO; +using System.Security.Principal; + +namespace TestConsole +{ + /// + /// Summary description for Class1. + /// + class Class1 + { + /// + /// Demo that shows how Components and Visitor object + /// are used together to provide the process flow and coordination logic + /// of certain tasks + /// + [STAThread] + static void Main(string[] args) + { + //read the customer order + StreamReader sr = null; + string content=null; + try + { + sr = new StreamReader("..\\..\\OrderSample.xml"); + content = sr.ReadToEnd(); + } + finally + { + sr.Close(); + } + + GenericIdentity gi = new GenericIdentity("CustomerA"); + GenericPrincipal gp = new GenericPrincipal(gi,null); + //create the document object + IDocument doc = new Document(gp,content,null); + + //load the configuration obect for the workflow + SAF.Application.Configuration.ConfigurationManager cm =null; + cm = (ConfigurationManager)ConfigurationSettings.GetConfig("MyApplication"); + + //get the inital documet layer + IDocumentLayer layer = (IDocumentLayer)cm.DocumentLayerConfig.GetDocumentLayerByName("PurchaseOrderWorkFlow"); + //start process the document by calling the ProcessDocument on the inital layer. + //For this perticular example, the last document layer is DocumentWorkFlowLayer object + //which will trigger the work flow defined in the GenericPurchaseOrderVisitor class + IDocument response = layer.ProcessDocument(doc); + //display potential response document + if (response != null) + { + Console.WriteLine(">>>>>>>>>>>>>Repsonse document from " + response.Sender.Identity.Name + " has arrived <<<<<<<<<<<<"); + Console.WriteLine("Response Document is: \n " + response.Content + "\n"); + } + + //change the cost of some product to greater than $100 and run this demo again + //to see how the workflow is changed. + + } + } +} diff --git a/SAF/Test.SAF.Application.Workflow/TestConsole/ConfirmationSample.xml b/SAF/Test.SAF.Application.Workflow/TestConsole/ConfirmationSample.xml new file mode 100644 index 0000000000000000000000000000000000000000..de20bd1de58a88f5de73fb853f655c8c9d7624b7 GIT binary patch literal 314 zcmaiwO$x#=5QV?B;2lB_V5`d#yRhKKML|y>S~1`sO$1MG`x4x^C?$)$c{B6nk^XCW z;3+7nc}ib!blf=-q@v?7eB|7cE`RfDGOn5lytJF^)NI&u;3U6I1kYlWno%)lCbq%S w=*_dXI#o_8(w9nA=r&@8l;^E1v9nd>l&95X?B|oL)hMfB_s6iJP5(&60Jfns4gdfE literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Application.Workflow/TestConsole/Confirmations.xsd b/SAF/Test.SAF.Application.Workflow/TestConsole/Confirmations.xsd new file mode 100644 index 0000000000000000000000000000000000000000..a2bb508e2cc203cc9dbb56f171652ef5f13c0492 GIT binary patch literal 1324 zcmbtUO;3YB6r8h(|DoyKe%QoA(~qRRs!gm1uN0_lEKu1+(I2nQTOe$KT1`VJbl-b3 z^XBdH{WZcADFW=!!W(?VP}m|uh%wseqk|rwEk;7PT=y6a@ob_AG}gFc)(vx}nBWo@ z7!gll$lJw+bpagKXB;6{1$V1D?M>MUvb)k+EMfkN zUdhuVpJ%3N_q-sEMB-YHg&JG`U;AyUb?CPy&z6eh#P}8Wx4Al&$r(NF}W#;d@sLVU1qs(mLE~EBWWP%^o CbkINm literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Application.Workflow/TestConsole/Order.xsd b/SAF/Test.SAF.Application.Workflow/TestConsole/Order.xsd new file mode 100644 index 0000000000000000000000000000000000000000..ebd6e45bee8df465fcce9226efa318ecce7868c1 GIT binary patch literal 2014 zcmcgt%T9wp6g_Jb|ABOGA2xB(^pVu9uc!;R6wo#nsAbUV$E)WKkfC&JX`_bln)^8C zo_hzrKKmG9g%EQ%ctwCE63h@I!T=3)&_tVehn5H)*L_+eJZWnRg-4vw>x@1l3~`Jj z^qDU~kEe$z<3hNM&oCmcO5Q0W6&Cbr@i@mAx40|$C&axb7hf|Hd=uZp#FC?oCea~z zddv_LF(ymJHQ^r;Z%o?kAlh#pjSu37NW#4lKC)au;nj z6?lUjO`cs|W6hx8)gi+NT;gI)p+>H@Lv0Gh1J)yYORp5yqny9s88s8WWu21Pa(t%G zLT6b~pLfKL$XzDG z*S_{Dt2GvE%KYorYm2Q{yDjoRbhy!z?^7v{ldw$-8^c3%vE^}zt;l4?uF1C|sLbRn z@1V*jP3E-tc4Tq#rIFp=`eC-psKs-!8+M^fm5Elz;We9e!$9WCBXgO=`JZu+-Q#ka z6_JF4)Vj$<_K9?{z7BmVmMM8?FHMH^dA09xqkVz9-~OoEv)`E*Q` + + + + + + + + + + + \ No newline at end of file diff --git a/SAF/Test.SAF.Application.Workflow/TestConsole/TestConsole.csproj b/SAF/Test.SAF.Application.Workflow/TestConsole/TestConsole.csproj new file mode 100644 index 0000000..5397208 --- /dev/null +++ b/SAF/Test.SAF.Application.Workflow/TestConsole/TestConsole.csproj @@ -0,0 +1,142 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SAF/Test.SAF.Application.Workflow/TestConsole/TestConsole.csproj.user b/SAF/Test.SAF.Application.Workflow/TestConsole/TestConsole.csproj.user new file mode 100644 index 0000000..c8340ea --- /dev/null +++ b/SAF/Test.SAF.Application.Workflow/TestConsole/TestConsole.csproj.user @@ -0,0 +1,48 @@ + + + + + + + + + + + + diff --git a/SAF/Test.SAF.Application.Workflow/TestConsole/app.config b/SAF/Test.SAF.Application.Workflow/TestConsole/app.config new file mode 100644 index 0000000..ca8a999 --- /dev/null +++ b/SAF/Test.SAF.Application.Workflow/TestConsole/app.config @@ -0,0 +1,30 @@ + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/SAF/Test.SAF.Application.Workflow/TestConsole/bin/Debug/SAF.Application.Configuration.dll b/SAF/Test.SAF.Application.Workflow/TestConsole/bin/Debug/SAF.Application.Configuration.dll new file mode 100644 index 0000000000000000000000000000000000000000..a7f0fd3e3199c3ca6117a0d77c9e93e5fff3ba40 GIT binary patch literal 4608 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 literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Application.Workflow/TestConsole/bin/Debug/SAF.Application.DocumentLayer.dll b/SAF/Test.SAF.Application.Workflow/TestConsole/bin/Debug/SAF.Application.DocumentLayer.dll new file mode 100644 index 0000000000000000000000000000000000000000..eaa161d8d7904104782dd5ea5e1edb6ed6fee1a8 GIT binary patch literal 5632 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 literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Application.Workflow/TestConsole/bin/Debug/SAF.Application.DocumentLayer.pdb b/SAF/Test.SAF.Application.Workflow/TestConsole/bin/Debug/SAF.Application.DocumentLayer.pdb new file mode 100644 index 0000000000000000000000000000000000000000..3d2258ac06da65930ebe72b4cd47aff1fbee4830 GIT binary patch literal 17920 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 literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Application.Workflow/TestConsole/bin/Debug/SAF.Application.Workflow.dll b/SAF/Test.SAF.Application.Workflow/TestConsole/bin/Debug/SAF.Application.Workflow.dll new file mode 100644 index 0000000000000000000000000000000000000000..bfdd607b676909671b62f5edf7229db785bc96df GIT binary patch literal 4096 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 r<^MRZV9oLWc7FeF!+aQga9)%<N@24pT>J literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Application.Workflow/TestConsole/bin/Debug/SAF.Configuration.dll b/SAF/Test.SAF.Application.Workflow/TestConsole/bin/Debug/SAF.Configuration.dll new file mode 100644 index 0000000000000000000000000000000000000000..83318a4695ff7770ccc4d73a833892dba7536257 GIT binary patch literal 11776 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 U`ah!wRJgofTKr<(_sIhP1C8aqTmS$7 literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Application.Workflow/TestConsole/bin/Debug/SAF.Configuration.pdb b/SAF/Test.SAF.Application.Workflow/TestConsole/bin/Debug/SAF.Configuration.pdb new file mode 100644 index 0000000000000000000000000000000000000000..98a042b5cd85843f31d3c94dda2ccac541b34872 GIT binary patch literal 54784 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 Sye0>l9B6W&$$`_(f&UNeya=uU literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Application.Workflow/TestConsole/bin/Debug/TestConsole.exe b/SAF/Test.SAF.Application.Workflow/TestConsole/bin/Debug/TestConsole.exe new file mode 100644 index 0000000000000000000000000000000000000000..b51c375dbca53d1ff1396f2681f6d189904bb833 GIT binary patch literal 6656 zcmeHLYit}>6+ScjayH4pBD+C9}Je^)$OX zo0-|hZY65kDkA)#fl3jmNE8X7B0&HNM1+K7P{c#f@=_!~RTZR46d_70`XdU6@SQWe z*;(5m4Ty>#x$FDg^Sbw*d+wccXFT@NvlJkrAnLViL>JICcD<^ZRV_1~(<)ZcNUU8O-O?C(Vjt0{5}@9% zk0%=ZLp#vdJg06 zXF5qV+tCpEn`52}nO>ree)-L4jmSS-2lx?RpM-17x!~W70-%$1Hv9%BMI$m4lL!18ccxGQL3tzxcRi`u{8(XfTlZJU^lC}Omk=?6f!R67*-sp3TStfR=%)pz$R*M;h~yV2VVVDtQP z40*qf^`hbc9?WHOcMt8C0z`G;pRM!sJ1OB1zX9-Er`@LolB%-jD*1`_>=!TbB~ z6X!!zMtcE{^?jUZ3w*kW+Lv=}vs!Z4#02IV_+0h9Ami(Cz~NW#;#m zElec^rpoZ0Dy?Gfsxrt22Qoq|I3RD4t!Mb8Nu^{ zKNh?!_;Vl@=N#JIh2X@jYL~@4y zp=_r!6jnRo0nhSz;Jx%!;C=K1`kA_ieoB3TH2sS14-C`qs1z8bKhUW_j=n`t1U^Dv zqNfAf=}+{a=rnzbK24vc;DQ&=tD)_u5iXQns2tf>8hKwKJi!gw)zH?4)g*^>iCt@V zu7=*zu)8F7Y)cQ0S;czU*hBotH6E&jF=tT4DOh&d%u{aOag7R%=N~o-E~U%5;|%z% zX-qe(lqk5C-LOp@G>(^HjE9y|j$>5v<@x=_`~kgUq+C2-`MPWP6+>ou1x3av>+?CY zR9)U@+OQoAzFd*6m)*L(!eCRjUNkDYePV?^R&CxkOSA5B)r5`U6jo5Atx8R=&M)tQ z2p%^}bz3sla&^XV3bt9}$ShY*nXW$$UfdHIQ!iC5$2AKMNun$1`8Knu)YPnP=*8B6 zx{U!B2FcBowXa&lrdp2C?2$7Hb=!336BEdU1+%7?Y1pV5 zwpqv)jj9VxlW!Shud9|O?Tl5ZSI})#pU3P?jfxp8J38qu9umzUY}sV%J3 z#^nsxm5e=X@cBjbX{irw_U*mL^r~L+IVNtl+c$mosSp6SO}tkQH)Y#|EtYVQ3Wnn} z)l@RvqdB9>8^YxE=rO~O3GW#e#lGV5?EP2AHu^d>B-7<&TtHe|Dq zI_S|F{}3!}IzdC|Wzi|3>>j$&?;v{C(4WWTQ8f5yVbr>KQN?^39mi1~sIqimC<`bc7-n0UMv(6zk9eO8jsvek4fB z##kU6H(|Xo7S@#b$@s~jM)AW8lVJ+PP++CRx*{F%R4ks2kHN->SK=qpFQtaLdlq#J zl|=?>CB!pQ7#A!PKWV(5vg~E1HKvxA=6fvB(X?gnn=>R?OKvxeM6t~8K={IWH)%^+9qShlV7=kyaVcfyu7~Jy8UV0FxKUDlU_+I?p?nA>rzBLyqHGm3G4(ljofk+ zxQ`Bk$|5Hm0G|a8f#&l4;9vjg`J>SG(^o@GbNeCDdhfixX+;XxU^OjI{1Bda&RbdJ zi{p5TxojbRQ=URL&?SqM(O%C}V)4zOi?u26$(5W@r4l?^I?{yL^i%VK{lG$-{G_s*3(M&)(hstM} z*E$NiBt6-#hFgF$Z3(%Tzri(BZ%r*bFZz7HRM3yJzkDi*?TGlq_XCe%B7W>sbB)Y- z(Yl#$UaTiDj)jb0$1UOdR_6JYk@&USEREvLVmKmWq_6_Mkt#R^Wkf*332fhun~j4o zac+D7BT#{ z7Q`g2^5$*66%0^_$0z;espat-ZI%NszL<4u!JqrfMWVKFCvSN-+uQ-Oh~u{KzpDX^ zAMwx0=bZ084YhgB7eTLF7Wi=U!S)&;$Xhz+k;ZXtgl%|SoVoHJw + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/SAF/Test.SAF.Application.Workflow/TestConsole/bin/Debug/TestConsole.pdb b/SAF/Test.SAF.Application.Workflow/TestConsole/bin/Debug/TestConsole.pdb new file mode 100644 index 0000000000000000000000000000000000000000..8caf2aa3904d592bc6fdde626e4574dd6102f9df GIT binary patch literal 13824 zcmeHMO>7%Q6dtEe>!eAG+Y;K822-UFnzDAHkVa8aTDgfDk&qxGkdUR|Y}d^yjyLQ& zN^=1D0w;tl!37Bmm^GUmLo<=XSV| z5XFfv8?G!5zw+s?KYtf43_0(6KmXvZaQb%m+DRcEhDNWgr3g-?E+n=AyMW!m0iX$J z1{#6AKnu_c>;u98-EKdy2avS=8hBjxU(5C(3@Hdm+i$;ZH_~FI_|LiQkNqpI17v+fqqcUeCJvqsWvol^ru)LkFMO>f8+9ByO#ru*P9`J z8(^$(Im^Bb&_7uB-=Qnn3nkf^64$^b)rJNh-FU)2E2qr~ah%U(Ap}t)tzTL& z?SO*(mGYc7)P*@Mn;T0lX(sZtdvz-1#c_so+fzm-khf#?J)x-!rk-0;CQUu7>hq}# z(wU#JtrWd5j)*;OtY0=q7Ga^$cE~v%#2`@r;MFn%xXl1`mO!i-ti+pNmx z9XWLcC3^CUhHB^MJ_z&8ldI4h+or;?4tw%UNf#YR5SWf(gvVSyx^0?`eUS?`qK?Y#850r zYM^d45W$+yxm}6ey#Xgd2>G~H@38f{?&m*k%sT)M6nAw4&El6%-qj?52yhCx0Jy~a zJ?!H_zZY$WKj(J9e?Q=+kcY(ga2lS!?g8|lABV1bpBa4TF~#|sB!=UC{k{G1Uh(3$ z%6-@0+;atrd(?o_POF_E;N49yAAOa?vALXQ6W4pIIs3TZ%Sz3%dWYDULkI1Ko#*80 zS1utoP`1@q)~$I)rPvSyGK?;1i`M@KN-=A=+%>&KuK(-@Y0te0=Yn=e|C6eFn1V zn4X;-&87_z&8Frw%bD&oTI!-^%K2X-My#S6hftQ^*opw>|5Szff2M5iJ4;*Tf5r;N pg(m@jY@mNJcCQx~WK4&Gwwbt}lO#1DH6S%0H6S%0HL$ZZ@DKJi7^wgN literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Application.Workflow/TestConsole/bin/Debug/TestDocumentLayer.dll b/SAF/Test.SAF.Application.Workflow/TestConsole/bin/Debug/TestDocumentLayer.dll new file mode 100644 index 0000000000000000000000000000000000000000..dc43a95ff4d56da2f4b85f54f95416ea79225b89 GIT binary patch literal 8192 zcmeHMeQ;b=6+icV?Pim#-A!p5n#h(GlD1(;X3Y+g4DZ})BA zd#MdrO~(OY#yVC(Me(Cm)EQB61_gCgbR5SoP-k%b7^xq_$l!<{uVf~%+-flKc z0L2;o$D7{s?)kXqo_p>&=e~X2_4;>_PDBR!nKML>;mK`S;7fyfu#@L~IZ2PSJ+baF zHU7l9$(f3use5kOD^@e5Vy)%|nJGKt&DJuNS|&G9$W+~FJKNcr*bu4SGe$J7bUN=d z6T=aSeoe`B?aCrr0}3A8KD-SegFcK-l#;O)+RX&EU)nq%=-hZ;L@VUq!ZSjJN3;ie zujTPD(cR&Mh!Z_-A?m>J-V2F(7IR)2%Mis|B;vq#w&2;oJ`w=`_-X*~WUrCkz@%k} zZpnJSR{|!s4P(F?Jr}*D4a54ZXFDzg*;cv*oprq$y`>EkUDblhaGw2&#%N0YiOpp3np)HUnjXro9W>}| zkcE9I4}P!f?m4{LDh9w4-c2C(BkB_U-HaX=8F)M4ePt16WnyK!_jQo`wO}SJ7om}8 zKOM8&UJQQey}&GZKhY6i>7R#ZXIpHgpTVHZNEuz`W=ffxNMY9+j%4M&rpsVm*p~OB zL9<|Em&^E3)4gsLIW_cWAEQlw9@XKTSL|$f+}MP*7yFy3%lccy`3x??97I7%)BABu zme!A?um+OhQ+Lxw7d#!ox~v7DtVB6lq}eN^Eq* zS9!0)PEW;GYj-gD9p}SEr{Zh8w+prV>{C7!Ki9ioSZj5c5BF5O$2%#6eoRfYTQL_V zTZk=#oMmiyxplwtAFrzuf?rygFPiSJhh;|*9(Okbzvx+O^$lIdVhd8nCMCu6B1&u{6Ba8CnQ-l{rS`Pi z_F_5l0SNu8Ik8$>loKcg#?r*ux>yJy`^pms_ZKJ5;=EzvvUwxYXXOoQ6!HcoQSyeL zi}MEMt2J+Qg5L?{46(u6^9T4?G|NXSCXTj&qTRvpTsI4X)(=Ukm#y=7$N$$7^29@U@1T2BL7bVlC@*kLft8y6cE-7N5}LOCw*3&y8G|E9pFh5I~U zg8pG_!>n`7m}$`lb0ciN(yXX7y-DB~&68%5eqi!izYzEgphcF&UJHG}kpEWDG`$&~ zY+&ycOoKG@J|>t+oq~N38nqpfNyUO0MiqYxdVJg_+3D;Te^9r5)@h|#;%cIOWSe zkEk5t?4b~o9ktWrO)L%G3`%*!mJXVaFt(+G?hP@qrIUUn*fIJeR!>qK+0C}Zw5^Eh z;RwrUNy!yO4(TO$@oTr zMS&H8hXl?EJSOlSfhPps4|pB)@p*UCC-nV*PwH==lk|Ii3gf@&GxT{f42Ql%s|=6U z(WLQS`UX{u43YmevY2N_&NHik)*!}R|TjdU3@Vk70v7pPn9H@5?p%^WDKp=L+E;1+>b2pko7t-yl7n*^2w-bO`rJKah5 z&~Z9}xcVAB0gErDpJ2C7({Jf{`Wu}gQ*|S&`qY5huEx|JwGZzG3g@KZoDc@orTD&C zfEuVeBn**>OJ4JtYN!w~(7OPQd5#AZQ?u_bJkZ{Z&Xi}kpra|uL{FBwFp}EVq%Fuj zwG8bItSW4;-Q`ZtI`);sSJ9$-COhpoRP{@)=TxSsFy{w$l_sWcwMzlLwfDQ;ZE~|MU9l-S?v~5AjY6?pF(~e|ox1Hc`8QOZeMP4-E%#+8RpZ~M*;3$o zk*Qe-5&CZYf~T?_+`OA5{KlYZBkl3rlI{BqD@o)^Zmkwxi8S4~jzgnx4Z^&9t>ji= zVsjQ~6SG0tZKZ`i%kl;qM)5dXIOL2v72NQ|Bdi3M;^HS>l*W$OrP;u~Zr1kZXonr_ zDjva-m1w;}X~wP=$&HqZ&=!Bx%6skNG<iMoS%#6bo#I@fQm!qXv(NT?xMC?|bk+%Gy=9b5 zdf0BY=-sx=9JfB_RmwBLQWg$GjL7^E9F^FVs0rrXZt0uQs;AA z%ABkOt$t|4MWtA-xqeV7`6Tai<>FMU7{UQ7au^qEc6tG^<=7I>AU0PSb)CkMaF{pg zK1Y8OlN87!g(nWm5C=PJ)8t&;<{*>j2%_+Ckuzx2vx@Rq92D@(V+@qF~oJ2=n=AggGR` zi~dZ&2SWK;u;mg-PG4S<$v@=KMBT21>07N9c}18M*oYp%xXeUjwy%-YyWLut*T{RW z1d-iQ%10QEBV3X3hR0c&>joc`&+G1)iI{gD`~mEz2F_f_a2*k`~u40ozhTJs0_C@~aqLR`u3}#fR?p%KPL+QhomT+niA5g11hUnKAwMnD8;Cj=w3Ug@DT$^UxTU6E z%2%+SFEiL1j0KR(P!6!wFXO<=_+yDO_=jPU6ZtVi_yUs3&;a!bzfVRg7CpQ9xr4@N z5?V(9#~{BEf2u2-<3dk>xjbL(U~71vY-L8ga0K$auZ_SLPUod9q+Yg^_gsx^E&!W> zUiK^XhHI9=4|lYPyLt>hEcLuleQ&DgNl~2ljPe z`s;giE8V7NNSPU>(w#RbFRS#8$rx!p=^J}{5-}s)$%Eb=-Qu3^M8DC9sdO7pEHbby(vxTg zVVxLMr|sTkTSiyuVlq8{XEJ7`4<*xc>7(iSV`;XC`yuo>^rMCaGAm4B>11zDET*Sd z;0fLe6WZsGn_$i#XSw4-IDtLH<1kk1jG1vz)AJ|N^Y_JB;sk^H;0;Xq5I<7$CuRQq z%(x$KmM~NZ4>I9FQ^DV4;nySvN5WS|rqDZioZ->Z*7)vDgu3SC9A{UtQVZV>ZCl5b9ncaw%k4zJVHn>&`1L$$13G`9+(!kv8E}mD zVw9%|+6_Dpcs0h{zH0pGAK{z0qQ1NSZt|F)+l7nIPl6u{67%?BH@}< z#a~#B`9n_zeM1YcF6+->w_Fo#a6_2^k!h@#1II@WvmFar+>jl{?_t&4tdO+z58;$-6=Xoup7P!s)!B;-pC*_7oXD0>0w{|&l&=n Ue*%BBrEdMtZ2AAf|8)=i6W_EocmMzZ literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Application.Workflow/TestConsole/bin/Debug/TestDocumentLayer.pdb b/SAF/Test.SAF.Application.Workflow/TestConsole/bin/Debug/TestDocumentLayer.pdb new file mode 100644 index 0000000000000000000000000000000000000000..c8a2395544c503fa6dc3380bdcdcb4220fb78511 GIT binary patch literal 40448 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 literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Application.Workflow/TestConsole/bin/Debug/TestWorkFlow.dll b/SAF/Test.SAF.Application.Workflow/TestConsole/bin/Debug/TestWorkFlow.dll new file mode 100644 index 0000000000000000000000000000000000000000..e03e65a69640e88be17400d99bb1a9040c9bb004 GIT binary patch literal 9216 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 C39JDC literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Application.Workflow/TestConsole/obj/Debug/TestConsole.exe b/SAF/Test.SAF.Application.Workflow/TestConsole/obj/Debug/TestConsole.exe new file mode 100644 index 0000000000000000000000000000000000000000..b51c375dbca53d1ff1396f2681f6d189904bb833 GIT binary patch literal 6656 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 literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Application.Workflow/TestConsole/obj/Debug/TestConsole.pdb b/SAF/Test.SAF.Application.Workflow/TestConsole/obj/Debug/TestConsole.pdb new file mode 100644 index 0000000000000000000000000000000000000000..8caf2aa3904d592bc6fdde626e4574dd6102f9df GIT binary patch literal 13824 zcmeHMO>7%Q6dtEe>!eAG+Y;K822-UFnzDAHkVa8aTDgfDk&qxGkdUR|Y}d^yjyLQ& zN^=1D0w;tl!37Bmm^GUmLo<=XSV| z5XFfv8?G!5zw+s?KYtf43_0(6KmXvZaQb%m+DRcEhDNWgr3g-?E+n=AyMW!m0iX$J z1{#6AKnu_c>;u98-EKdy2avS=8hBjxU(5C(3@Hdm+i$;ZH_~FI_|LiQkNqpI17v+fqqcUeCJvqsWvol^ru)LkFMO>f8+9ByO#ru*P9`J z8(^$(Im^Bb&_7uB-=Qnn3nkf^64$^b)rJNh-FU)2E2qr~ah%U(Ap}t)tzTL& z?SO*(mGYc7)P*@Mn;T0lX(sZtdvz-1#c_so+fzm-khf#?J)x-!rk-0;CQUu7>hq}# z(wU#JtrWd5j)*;OtY0=q7Ga^$cE~v%#2`@r;MFn%xXl1`mO!i-ti+pNmx z9XWLcC3^CUhHB^MJ_z&8ldI4h+or;?4tw%UNf#YR5SWf(gvVSyx^0?`eUS?`qK?Y#850r zYM^d45W$+yxm}6ey#Xgd2>G~H@38f{?&m*k%sT)M6nAw4&El6%-qj?52yhCx0Jy~a zJ?!H_zZY$WKj(J9e?Q=+kcY(ga2lS!?g8|lABV1bpBa4TF~#|sB!=UC{k{G1Uh(3$ z%6-@0+;atrd(?o_POF_E;N49yAAOa?vALXQ6W4pIIs3TZ%Sz3%dWYDULkI1Ko#*80 zS1utoP`1@q)~$I)rPvSyGK?;1i`M@KN-=A=+%>&KuK(-@Y0te0=Yn=e|C6eFn1V zn4X;-&87_z&8Frw%bD&oTI!-^%K2X-My#S6hftQ^*opw>|5Szff2M5iJ4;*Tf5r;N pg(m@jY@mNJcCQx~WK4&Gwwbt}lO#1DH6S%0H6S%0HL$ZZ@DKJi7^wgN literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Application.Workflow/TestConsole/obj/Debug/TestConsole.projdata b/SAF/Test.SAF.Application.Workflow/TestConsole/obj/Debug/TestConsole.projdata new file mode 100644 index 0000000000000000000000000000000000000000..8fdf23486effe32d5b22ece174af4b0578f05b29 GIT binary patch literal 2440 zcmeH|&uSDw5XQez7nXpFf=VJNjd)Pe4PL_%2uegyFNz*iFwRbrHM^Oxvq{jC{1bTb{y$fYiaL4WV95&zfez4$?dsr z@gQ0p5O1Iz5s>-#Ffa>d5{Bh;i)KN79r}5%^aKykukdwX4w8cM|Rn zzXZL97{T)eD0P0a{lxt1w;M0czWSJXEmU7VTegk&a>f7Aumj|daK*nKZZMX_UhA>JEn zX!H0lN_+#dQ6KPUTuYAQyJ`bUwK9+Nd$qJQ&;F^VQr)|zk5j1U;SK0AG#!5dflTsQ M;{JF2AGCV-0Z88GHUIzs literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Application.Workflow/TestWorkFlow/AssemblyInfo.cs b/SAF/Test.SAF.Application.Workflow/TestWorkFlow/AssemblyInfo.cs new file mode 100644 index 0000000..9f89a32 --- /dev/null +++ b/SAF/Test.SAF.Application.Workflow/TestWorkFlow/AssemblyInfo.cs @@ -0,0 +1,58 @@ +using System.Reflection; +using System.Runtime.CompilerServices; + +// +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +// +[assembly: AssemblyTitle("")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("")] +[assembly: AssemblyCopyright("")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: + +[assembly: AssemblyVersion("1.0.*")] + +// +// In order to sign your assembly you must specify a key to use. Refer to the +// Microsoft .NET Framework documentation for more information on assembly signing. +// +// Use the attributes below to control which key is used for signing. +// +// Notes: +// (*) If no key is specified, the assembly is not signed. +// (*) KeyName refers to a key that has been installed in the Crypto Service +// Provider (CSP) on your machine. KeyFile refers to a file which contains +// a key. +// (*) If the KeyFile and the KeyName values are both specified, the +// following processing occurs: +// (1) If the KeyName can be found in the CSP, that key is used. +// (2) If the KeyName does not exist and the KeyFile does exist, the key +// in the KeyFile is installed into the CSP and used. +// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. +// When specifying the KeyFile, the location of the KeyFile should be +// relative to the project output directory which is +// %Project Directory%\obj\. For example, if your KeyFile is +// located in the project directory, you would specify the AssemblyKeyFile +// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] +// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework +// documentation for more information on this. +// +[assembly: AssemblyDelaySign(false)] +[assembly: AssemblyKeyFile("")] +[assembly: AssemblyKeyName("")] diff --git a/SAF/Test.SAF.Application.Workflow/TestWorkFlow/Component.cs b/SAF/Test.SAF.Application.Workflow/TestWorkFlow/Component.cs new file mode 100644 index 0000000..e93ab7f --- /dev/null +++ b/SAF/Test.SAF.Application.Workflow/TestWorkFlow/Component.cs @@ -0,0 +1,133 @@ +using System; +using SAF.Application.Workflow; +using SAF.Application.DocumentLayer; +using System.Web.Mail; + +namespace TestWorkFlow +{ + /// + /// ComponentHelper is an abstract method that implements + /// some of the IComponent's interface members. It reduces the + /// amount developers have to write to create the processing unit component + /// + public abstract class ComponentHelper : IComponent + { + private IComponent nextComponent; + private IDocument request; + private IDocument response; + + public IDocument Request + { + get{return request;} + set {request = value;} + } + + public IDocument Response + { + get{return response;} + set{response =value;} + } + + public IComponent NextComponent + { + get{return nextComponent;} + set{nextComponent = value;} + } + + public abstract void Accept(IVisitor v); + } + + /// + /// acts as an initial processing unit, it determines + /// what the inital action to take to process the cusotmer order. + /// + public class InitialComponent : ComponentHelper + { + public override void Accept(IVisitor v) + { + //triggers the coordination logic stored in the visitor object + ((IPurchaseOrderVisitor)v).Visit(this); + } + + } + + /// + /// contains the methods that send out the email with given + /// email address and content. Its method is called by the visitor object + /// + public class SendConfirmationEmail : ComponentHelper + { public string CustomerEmail; + public string SMTPServerName; + public string MessageContent; + + public override void Accept(IVisitor v) + { + //triggers the coordination logic stored in the visitor object + ((IPurchaseOrderVisitor)v).Visit(this); + } + + + /// + /// method that perform the email sending. It is + /// called from the Visitor object, + /// refer to GenericPurchaseOrderVisitor.Visit(SendConfirmationEmail sce) + /// for more detail + /// + public void SendEmail() + { + try + { + SmtpMail.SmtpServer = SMTPServerName; + MailMessage mm = new MailMessage(); + mm.To = CustomerEmail; + mm.From = "confirmation@company.com"; + mm.Body = MessageContent; + SmtpMail.Send(mm); + } + catch (Exception ex) + { + //ignor the exception if SMTP is setup right on your computer + } + } + } + + /// + /// Sample processing unit for processing customer order. + /// potential methods can be added to provide more complex implementation + /// + public class ProcessCustomerOrder : ComponentHelper + { + public override void Accept(IVisitor v) + { + //triggers the coordination logic stored in the visitor object + ((IPurchaseOrderVisitor)v).Visit(this); + } + } + + /// + /// Sample processing unti for alerting the account managers + /// potential methods can be added to provide more complext implementation + /// + public class AlertAccountManager : ComponentHelper + { + public override void Accept(IVisitor v) + { + //triggers the coordination logic stored in the visitor object + ((IPurchaseOrderVisitor)v).Visit(this); + } + } + + + /// + /// Sample processing unti for generating and sending response document + /// potential methods can be added to provide more complext implementation + /// + public class SendResponseToCustomer : ComponentHelper + { + public override void Accept(IVisitor v) + { + //triggers the coordination logic stored in the visitor object + ((IPurchaseOrderVisitor)v).Visit(this); + } + } +} diff --git a/SAF/Test.SAF.Application.Workflow/TestWorkFlow/DocumentWorkFlowLayer.cs b/SAF/Test.SAF.Application.Workflow/TestWorkFlow/DocumentWorkFlowLayer.cs new file mode 100644 index 0000000..9b8c5d0 --- /dev/null +++ b/SAF/Test.SAF.Application.Workflow/TestWorkFlow/DocumentWorkFlowLayer.cs @@ -0,0 +1,104 @@ +using System; +using System.Xml; +using SAF.Application.Workflow; +using SAF.Application.DocumentLayer; + +namespace TestWorkFlow +{ + /// + /// A sample show how to triggers the processing units with + /// its visitor object in a document layer component + /// + public class DocumentWorkFlowLayer : IDocumentLayer + { + private IDocumentLayer next; + private IComponent nextComponent; + private IVisitor v; + + public DocumentWorkFlowLayer() + { + } + public DocumentWorkFlowLayer(IDocumentLayer nextLayer) + { + Next = nextLayer; + } + + /// + /// constructor that initialize the first processing unit and the visitor class + /// which contain the process flow and coordination logic used to process the cusotmer orders. + /// + /// + public DocumentWorkFlowLayer(XmlNode configXml) + { + XmlNode node = configXml.SelectSingleNode("Layer"); + string initialComponent = configXml.SelectSingleNode("Config/InitialComponent").Attributes["type"].Value; + string visitor = configXml.SelectSingleNode("Config/Visitor").Attributes["type"].Value; + + //use reflect to create the processing unit and visitor object + nextComponent = (IComponent)Activator.CreateInstance(Type.GetType(initialComponent),null); + v = (IVisitor)Activator.CreateInstance(Type.GetType(visitor),null); + + //set the Next property to the next document layer if there is one. + if (node != null) + { + Type type = Type.GetType(node.Attributes["type"].Value); + object[] parameters= new Object[1]{node}; + next = (IDocumentLayer)Activator.CreateInstance(type,parameters); + + } + } + /// + /// interface property implementation + /// + public IDocumentLayer Next + { + get + { + return next; + } + + set + { + next = value; + } + } + + /// + /// interface method that process the document + /// + /// document containing the customer order + /// response document + public IDocument ProcessDocument(IDocument doc) + { + IDocument request = null; + IDocument response = null; + nextComponent.Request = doc; + + //Start each processing unit by calling Accept(v) method + while (nextComponent != null) + { + //trigger the process flow logics + nextComponent.Accept(v); + request = nextComponent.Request; + response = nextComponent.Response; + //set the next proessing unit + nextComponent = nextComponent.NextComponent; + //if this is the last processing unit, retrieve + //the request and response document + if (nextComponent != null) + { + nextComponent.Request = request; + nextComponent.Response = response; + + } + } + + //if next document layer exist, proceed with the next layer. + if (Next != null) + { + response = Next.ProcessDocument(response); + } + return response; + } + } +} diff --git a/SAF/Test.SAF.Application.Workflow/TestWorkFlow/TestWorkFlow.csproj b/SAF/Test.SAF.Application.Workflow/TestWorkFlow/TestWorkFlow.csproj new file mode 100644 index 0000000..2c5c7f6 --- /dev/null +++ b/SAF/Test.SAF.Application.Workflow/TestWorkFlow/TestWorkFlow.csproj @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SAF/Test.SAF.Application.Workflow/TestWorkFlow/TestWorkFlow.csproj.user b/SAF/Test.SAF.Application.Workflow/TestWorkFlow/TestWorkFlow.csproj.user new file mode 100644 index 0000000..e1f4628 --- /dev/null +++ b/SAF/Test.SAF.Application.Workflow/TestWorkFlow/TestWorkFlow.csproj.user @@ -0,0 +1,48 @@ + + + + + + + + + + + + diff --git a/SAF/Test.SAF.Application.Workflow/TestWorkFlow/Visitor.cs b/SAF/Test.SAF.Application.Workflow/TestWorkFlow/Visitor.cs new file mode 100644 index 0000000..bbc2d6f --- /dev/null +++ b/SAF/Test.SAF.Application.Workflow/TestWorkFlow/Visitor.cs @@ -0,0 +1,132 @@ +using System; +using System.Xml; +using System.Configuration; +using SAF.Application.Configuration; +using SAF.Application.Workflow; +using System.Collections; +using SAF.Application.DocumentLayer; +using System.Security.Principal; + +namespace TestWorkFlow +{ + /// + /// GenericPurchaseOrderVisitor shows a sample visitor class which + /// contain the coordination logic among different components or processing units. + /// + public class GenericPurchaseOrderVisitor : IPurchaseOrderVisitor + { + private ConfigurationManager cm; + private WorkFlowConfiguration wc; + /// + /// Constrcutor to initialize the configuration object + /// + public GenericPurchaseOrderVisitor() + { + cm = (ConfigurationManager)ConfigurationSettings.GetConfig("MyApplication"); + wc = cm.WorkFlowConfig; + } + + /// + /// Set up the first processing unit for the workflow + /// + /// + public void Visit (InitialComponent ipu) + { + ipu.NextComponent = new SendConfirmationEmail(); + } + + /// + /// sends a confirmation email to + /// customers and then set the next processing for order processing + /// + /// SendConfirmationEmail processing unit + public void Visit(SendConfirmationEmail sce) + { + string customer = sce.Request.Sender.Identity.Name; + string email = wc.GetCustomerEmail(customer); + string content = "Your purchase order with following content has been received : \n "; + //send the email to customer + sce.CustomerEmail = email; + sce.MessageContent = content + sce.Request.Content; + sce.SendEmail(); + + //set the next processing unit after the confirmation email has been sent + sce.NextComponent = new ProcessCustomerOrder(); + } + + /// + /// Process the customer order and then set the next processing unit + /// depending on the outcome of the order processing + /// + /// ProcessCustomerOrder processing unit + public void Visit(ProcessCustomerOrder pco) + { + //check if any product is creater than $100 + XmlDocument doc = new XmlDocument(); + doc.LoadXml(pco.Request.Content); + XmlNodeList nodes = doc.SelectNodes("//*[@cost > 100]"); + //make a decision on what is the next component or processing unit is called + if (nodes.Count > 0 ) + { + if (pco.Request.AdditionalData == null) + { + pco.Request.AdditionalData = new Hashtable(); + pco.Request.AdditionalData.Add("ErrorDescription","Unable to process product that costs more than $100"); + } + //set the next processing unit to alert the account manager if error occur + pco.NextComponent = new AlertAccountManager(); + + } + else + { + //code here to perform some real work on the order.... + //otherwise, forward the order to the next unit which + //will send a response to the customer. + pco.NextComponent = new SendResponseToCustomer(); + } + } + + /// + /// Display the message about the failed order on the console + /// + /// AlertAccountManager processing unit + public void Visit(AlertAccountManager sce) + { + Console.WriteLine("An error occured while processing the following document: \n"); + Console.WriteLine(sce.Request.Content + "\n"); + Console.WriteLine("The cause : " + sce.Request.AdditionalData["ErrorDescription"].ToString()); + } + + /// + /// Returns a response document containing the status information for the customer order + /// + /// SendResponseToCustomer processing unit + public void Visit(SendResponseToCustomer sce) + { + //add some code here to generate the response document + string content = "" + + "" + + "" + + ""; + GenericIdentity gi = new GenericIdentity("ServerProviderX"); + GenericPrincipal gp = new GenericPrincipal(gi,null); + Document response = new Document(gp,content,null); + //set the response document + sce.Response = response; + } + + } + + /// + /// The interface that is used defined possible process flow inside + /// visitor class + /// + public interface IPurchaseOrderVisitor : IVisitor + { + void Visit(InitialComponent ipu); + void Visit(SendConfirmationEmail sce); + void Visit(ProcessCustomerOrder pco); + void Visit(AlertAccountManager aam); + void Visit(SendResponseToCustomer sce); + } +} diff --git a/SAF/Test.SAF.Application.Workflow/TestWorkFlow/bin/Debug/SAF.Application.Configuration.dll b/SAF/Test.SAF.Application.Workflow/TestWorkFlow/bin/Debug/SAF.Application.Configuration.dll new file mode 100644 index 0000000000000000000000000000000000000000..a7f0fd3e3199c3ca6117a0d77c9e93e5fff3ba40 GIT binary patch literal 4608 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 literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Application.Workflow/TestWorkFlow/bin/Debug/SAF.Application.DocumentLayer.dll b/SAF/Test.SAF.Application.Workflow/TestWorkFlow/bin/Debug/SAF.Application.DocumentLayer.dll new file mode 100644 index 0000000000000000000000000000000000000000..eaa161d8d7904104782dd5ea5e1edb6ed6fee1a8 GIT binary patch literal 5632 zcmeHLU2Ggz6+U-nckOku8}B-_LAYX^pJJM5afn;gv})J(Hnp1{J6R_rU^SWDoouF_ z-Pz2{hHgWUTO^|bQK3{-RUuF#QMC_|Kt&KitD*?32oVVZ4@l)9LRFuT00|xl65%^% zX4f0rG6MPlQm-@LJ%9JybM8HJ=WY&u=4+%AQ4G(mTSQmTbIS{^4+~JIKl-CIeLs19 z=!!aUeQ5TK?Hdixt$Jq7D4X@V8yF?a@S1hQt{a8vqET}zRxXw5+a9@|d4%YI(rNJW zbUqT%4N4DfPzgAP1Rb~fE`Wh2kB2BDv=+wA0*+tW0uXX;oEK5Q{9EoLR&+#L;J3(h z9=V4DB2CntBH9S@H$y~&w`>N7DHHsUYG=u0=&hx!8 zIEgI}f)hnb-7SykbDrh6Fl2Xh3J?3*jHj#RiN?EFA!m?3H;#>m%xxulGfAXa_#d=^ z5lvFzq1rGuuus#6d$5i75DkpzGy^$&XF{Fsfo`~)VAhw|wKw4+vpz4yvJ5CU3m6^% zY`F6xELAFbN8(a)qt??qjNJMHM66waB6iQfh@uVf9cSO?S=6_aC*^qB`=IG~$90&IIx6> zgDuvKgB6{a5jSkv&6>8X=-6UyV9Q~wY0C<%G-@?^pD+>Gc>Xkm2cC`;3&q{fExr6s ztvY$-8?#?|CjaWMprVPrbH%ZJ{N%)YiTl@eUic=54u6;%?~<+t3F#? z!NzStzwKy|ehHe(e%qr*rwZtAfd3uyq1@~ zrcrKE>r8Xa@G*nwrA~Mb9>eQ~4UeKvU=2&)eofbKApMoz0gkC0&ZxK5W#DfG|17vs zW62J|hXhXu27(s_UlshB;O_-D>VMPvXjZ?5S)KwW=$m>8_&Sgq$Hb`U74*C4frwLB zl?J#tG%?YAQFIz5A?c@!qSKJGqPJ)W_?$Wpd{NB-zokyHTePLri=Awl`?idTbn(}) zh8oQn%r9=a3Y|_)hueXfuL<{FlD)*~M#Qm~IQ=E$6nlw|bId?$C*cj0wv^hSM!L8= z)P0?|b}6-0?d{_BtA~+Wd)(uy0B&%Id5)}%`DcWC4-2r9QgkNbc!m^xKH_+WG`$dU zJVTmZi#VQP6a6IOcm}Q*MF#3q(cOZd5WHV7lwa+lLrI8BkZW`esMF8au+foQ96R-K zx=MR#x8VIihsK1S55HJB z*Y87}yrO@VUZ*$o=TQ@EnZuiK9XKHP5y3rz4+u^O?iVZyepaw7IFC2uW%>?0UZ(HC z;}7V^^fn!*pVA!On3Kp~A$tvVq9a$Xfh%$Xhj>;!2Fa6Z8n~eNYrIktj#u!&UJ~%3 zP%UxLN%RVP&bSerhCCQk=oR*qF#}G+3ZvwZ-zLym!OhSp)MSQY3*j4fGk*6Xrbi3k zFQRwlgUZ?yB3Hm=*)@>~Jb2KpG#%?9TK5ReRUC(=ZaY=iA3!y~?0Sw}qGHPrtQt+1 zp0LURwOx!mW_?~x=ViAYB~`89ui!M2d)>*k~>~=2+twh z*4mo`aT9~z$~ zP5(?_mK;lh9;;MrmYYt&3``ljLKMx=_P9dphoO|Cxy{?%MbjU#PDj(znD1M)lGEC6 zwGNpzYb?N5sMHLsZpA*^Swm5<9J5ultM%1mj#-|M99AnPnoiL4)^IlKnH8&Mdh=_H zaT_hquAT{2tFWh)W_b<8gj;Kv_15YUShdr3wdu)6ezm$_`DM>;@CK|_&e}ouIz($( zu+3`S^#i-?lUxz1yqC+P&zVlsqDpj~Ag;KuYOzHKh3l-{OJP11umP;k9 zkM;)nT&5i>(M{nsnLaJ#F`0F?)v)MME0BH+^>)tWQlIcFGq9%Weqh$i5*zvWewerv z900b+B9AB;fNFpyI`rkuf4_9}-SKDM*gNT+KetG|KYVKL*oQ}NJR378+Z#8O%JwD< zmF>^=$A%%%6OlB@1}QN}=?0}^Fa=OHBeD!zr}SYcKx8m1r6tnnGQEbbvZ-`7!y~k~ zp(#y+1BGGPqj zy$6AS$i(?%qXcdkLgb_01uT4=X@jZNt^NC9S%VkeD>%+U)2@eymu1PR#}>DCzz=Tr zAGH6?72q4A+_@KSk1xE%kKpsXQqKG&p5uA^cEs(b-RAUBkjL=b`XulXIs$5nrs)v) zDd0ZP+}?`)@gL#07dNZLn{lSOe^|8Py*#{&M*?(w|5xy8;{Du*o4JFxbBgM8np`p3 zj(Y~tEVL%1KJ+F9uyetM?Yprz;Zz}}09H2S)ipf5BsL?|{u{+_0IUISE_@%EfWI34 zER4q24RQm|_AXsR=5HZeQ|zD?n_Xhlj=TU5eC}`@joad6e|g+gR42A$u*CHlX1{t0XD9(w=) literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Application.Workflow/TestWorkFlow/bin/Debug/SAF.Application.DocumentLayer.pdb b/SAF/Test.SAF.Application.Workflow/TestWorkFlow/bin/Debug/SAF.Application.DocumentLayer.pdb new file mode 100644 index 0000000000000000000000000000000000000000..3d2258ac06da65930ebe72b4cd47aff1fbee4830 GIT binary patch literal 17920 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 literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Application.Workflow/TestWorkFlow/bin/Debug/SAF.Application.Workflow.dll b/SAF/Test.SAF.Application.Workflow/TestWorkFlow/bin/Debug/SAF.Application.Workflow.dll new file mode 100644 index 0000000000000000000000000000000000000000..bfdd607b676909671b62f5edf7229db785bc96df GIT binary patch literal 4096 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 r<^MRZV9oLWc7FeF!+aQga9)%<N@24pT>J literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Application.Workflow/TestWorkFlow/bin/Debug/TestWorkFlow.dll b/SAF/Test.SAF.Application.Workflow/TestWorkFlow/bin/Debug/TestWorkFlow.dll new file mode 100644 index 0000000000000000000000000000000000000000..e03e65a69640e88be17400d99bb1a9040c9bb004 GIT binary patch literal 9216 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 C39JDC literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Application.Workflow/TestWorkFlow/obj/Debug/TestWorkFlow.dll b/SAF/Test.SAF.Application.Workflow/TestWorkFlow/obj/Debug/TestWorkFlow.dll new file mode 100644 index 0000000000000000000000000000000000000000..e03e65a69640e88be17400d99bb1a9040c9bb004 GIT binary patch literal 9216 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 EAKwtHng9R* literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Application.Workflow/TestWorkFlow/obj/Debug/TestWorkFlow.pdb b/SAF/Test.SAF.Application.Workflow/TestWorkFlow/obj/Debug/TestWorkFlow.pdb new file mode 100644 index 0000000000000000000000000000000000000000..35982be3765d036a3a9cc447fef3e1f7fa84c400 GIT binary patch literal 34304 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 C39JDC literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Application.Workflow/TestWorkFlow/obj/Debug/TestWorkFlow.projdata b/SAF/Test.SAF.Application.Workflow/TestWorkFlow/obj/Debug/TestWorkFlow.projdata new file mode 100644 index 0000000000000000000000000000000000000000..2313acbcb971f68b26a43732b139770b1f9b3b83 GIT binary patch literal 41736 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 JeIU}|{{ytBr}zK> literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Application.Workflow/app.config b/SAF/Test.SAF.Application.Workflow/app.config new file mode 100644 index 0000000..0b1315a --- /dev/null +++ b/SAF/Test.SAF.Application.Workflow/app.config @@ -0,0 +1,30 @@ + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/SAF/Test.SAF.Application.Workflow/bin/Debug/SAF.Application.Configuration.dll b/SAF/Test.SAF.Application.Workflow/bin/Debug/SAF.Application.Configuration.dll new file mode 100644 index 0000000000000000000000000000000000000000..a7db78abe1ac429d4bb93cd6bedbb5836c4c3f7e GIT binary patch literal 4608 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 GB=BF43XJ*y literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Application.Workflow/bin/Debug/SAF.Application.DocumentLayer.dll b/SAF/Test.SAF.Application.Workflow/bin/Debug/SAF.Application.DocumentLayer.dll new file mode 100644 index 0000000000000000000000000000000000000000..5787a038336bfa11d3abe7bccb4d3f756b023452 GIT binary patch literal 5632 zcmeHLU2Ggz6+U-nckOku8}GWbLAYX^A8;FMv6VDY)2OxMts6Iv?POgi0jtUE?qogn z?9OIpHtn_qxgZr)G%6J6Lxn)Cph_Pq6@jP)RIMVgtcpkoct8pd5kh@J0wj2V2f}yG z%-ZYNvIMA7AA0Tk&H20Mo^$V+JJ&w(`LB~sL^1SRw}_VTDjT_KmvdRy?z6l+0Sq4UD2?c#WE2*NpsB!Kk`rE0;=j?TK7ZKTI^Cbc(ze9rT| z5;%!%7z8JZl-k=cqR)AjlxG}6&|YfV*|T1y}tw7crQ`Upia|}!*?ds=^p61y8~ujiGjlj7nyZ=DVAkGxmiGe z4`AC}S7519$vYFTCAVuGo&CtID?r5BWhi3z_6#c82H$b^{S1q`_VJ_~Pir4Ey=AM( zULq{SfdWemq{FA~q68A%N|(Vr_OqM_n&y836JEyZ$69G!#_TaIb{RurT3l2-Ul<3L z5OJ`@rg5-hHD<&OTXwUlEh|=Su{N;fFgCSi1y&mC5WP>Bh-~z~_MyYmsY1Rm^y2a> zH>#CmOW&ON+Lwo4{|&!pqlf1TBV*iiBlWstm(0L+Yq`8zYE-RSFkv<=Z_X_~F_*WB zjmp+`xq7(>mvpr7=us6_64&LWq1<3@|DnPASc#o-fQyKD_m_zNjOVWq-|j--*|mz# z7E9Q;op|nktU$j8&1Jv)k;lgKc-{p62j-7Du1p4+E9CTDuPLlO(ZAGwE@;RIJI8e) zuMX2FH>q`|xn?+jOfPl9bMP2mH*9zmeFAG(1ovB7!GZJ-x&a(fIh;}NsyBhZ7yO&x zc8w)_1s@bVD;Nk~5qw?nmx6y3+^+vq>!KNb1+zR2Owf1qBJd3$H;#!>(W`h4&;t>t zuqt(MacE+q`-td8PfEv zh~pX3bT#65h8^@?#PJMVF^UY-r=rgYeopXy!BBp!jSeLtE<>)-3Q(u_H?h%?TO2!e z4_%|fG$eRG(4i5b#|2Lco)t6&ZNZCzO~Gdcp9fyVnp~qN@tGXep8+oD&(b&OtNL@G zU(yevPF~etpf~78`b($@w#?y8xDMVXcTHPL$Ss14Lcpb5fy0o zei8jiKB%lci?~9oHQ9>D1dg0=%MHhRkhVNRb7jY&@pY%_)&r>Omt4=Wi&SX(fmNlc z;uBUWpq7iHj#*of(|OJ9s*);JaBh+>8h(qI_S}-?`>o+5+8UeWN`dP|v*gZH9YUYP zZLK9LSfz$%2hH3x4(O6yH<8F1$ukwKTG{esu83sms9Ov01rc$J4s*$kx{iZn@S*YP znCZ_4X3?=E=#g^SX1VF)&A^ngw~3+|S{`rH`e7)gXl`@8yJ-4T)`e(#8u5LrT6CJn zt>&azwMGJbg^G>9YFCWe&L)by<(SQaU8!vxGi!N1a@eRCZ8$;0+r-(7XO^w1=`CzB z#;rF!yD}eaRAEocjnXEHQMXz*Yt4-#uxc0VO2dj!qpC%Gb2crVvRUoxGBMdj!^L0oZR)nbbf3fEh~;@v3V>+e`nco42SSSyvV zK3W^(bD6GMiEbRP$S1lGw<{_rt`c zU;@}Ai#(!a0ICj}X#Bkc_cWbDlW%u^|J(Eaz%A;0`{}vaPae4We9WM1XWURK+nF#_ zwmaJ$>xV>7MA9T1q{JYl8uPsTbBAVW8}ZYENC z2Lb_+i7P(F61ZUqF&zC}z{1CwHkjJjT7N&RY4E~(dB-_n+O_cTvMf3E*y7e+_`%Ko z90lqQHoqKV8eBmvA5TEDU<;)*LKQl};joVGDP3s3h&f;(DbHIn`6sU2UqDk=M zz%kI=-iiI?-{DtP(T&9EIMe)W{WE~?<>6gi%mw)Vui(|h`#FZ2xr4WJoN9D|T+#2r zJ%eZlS`$(qdXoa!x!}U~R_rY}Rfs8ol?{1i6HhOQ%^@6vb6&Fxcc+YTRgCj!K~^xdbtLYo$OrEZ z$K6^l=6Kcl|2F@B{Na90V=fmtHIQ%6wnAY%!?FkKZEoL*t@a@=<42I8FZmXcO%s*y a-}pefA5JsE{~6Vfd^qku_WIFYf&T!QC>zlL literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Application.Workflow/bin/Debug/SAF.Application.DocumentLayer.pdb b/SAF/Test.SAF.Application.Workflow/bin/Debug/SAF.Application.DocumentLayer.pdb new file mode 100644 index 0000000000000000000000000000000000000000..7ea6ea7201512e9cfcb3522265cb8da66d5a466c GIT binary patch literal 17920 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 literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Application.Workflow/bin/Debug/SAF.Application.Workflow.dll b/SAF/Test.SAF.Application.Workflow/bin/Debug/SAF.Application.Workflow.dll new file mode 100644 index 0000000000000000000000000000000000000000..780bd1a387e76d75ed7d78b3f2c1e543eb4f3a29 GIT binary patch literal 4096 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 literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Application.Workflow/bin/Debug/SAF.Configuration.dll b/SAF/Test.SAF.Application.Workflow/bin/Debug/SAF.Configuration.dll new file mode 100644 index 0000000000000000000000000000000000000000..0413c89757c21ccb790ec1d78a1013b5e159f59d GIT binary patch literal 11264 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 literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Application.Workflow/bin/Debug/SAF.Configuration.pdb b/SAF/Test.SAF.Application.Workflow/bin/Debug/SAF.Configuration.pdb new file mode 100644 index 0000000000000000000000000000000000000000..3be794452e75ad7d10db93b6cafb3cae380968f2 GIT binary patch literal 50688 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 T(7gZ6C3oNQ44)eQ4@cmiQ{xX| literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Application.Workflow/bin/Debug/Test.SAF.Application.Workflow.exe.config b/SAF/Test.SAF.Application.Workflow/bin/Debug/Test.SAF.Application.Workflow.exe.config new file mode 100644 index 0000000..0b1315a --- /dev/null +++ b/SAF/Test.SAF.Application.Workflow/bin/Debug/Test.SAF.Application.Workflow.exe.config @@ -0,0 +1,30 @@ + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/SAF/Test.SAF.Application.Workflow/bin/Debug/Test.SAF.Application.Workflow.pdb b/SAF/Test.SAF.Application.Workflow/bin/Debug/Test.SAF.Application.Workflow.pdb new file mode 100644 index 0000000000000000000000000000000000000000..076e31628b2ce83188f109f8017b136cf0054ecf GIT binary patch literal 13824 zcmeHMTW=dh6dtDub#A3D5Yn^+6H*cCvbIAnAp)hvX_bhi2}%(Xid5XKovz~ShFwQ) zB#_KY#RCs{=mX{QP{B_C6_6@gfk3<=`VSD|BB7>5JcI`lzHfKO*}7>|tA)DG9P9I$ zIWs#md(N55*%>u-+j6XIKAMWBVzKDx#F6L$EsKL35pgJK!U^{?o%!3~FnEI~) z4fNEvuPEBM8d&)I*Nyw~>djXQjmc0S*RicWz*@x03YL9OMy{x4HL!Hz<$-TEUx_SC zh)ZK1*PZ|7@Jr`@|K-QX!hn}={^-nWk?fVo#oa*DFi~Vn9`!HUq9#FQw*|xVMS!@00Tn?`P%(Ja> zemm`}I`@YLKKF+ydHJaKz#$F-BPgIB+{t|8TCJ!$G_d2RM5u_N{4jL+!qGEdhoVSV zLi{$swL)?}%QXFiZT}NKZw~pggwHeJimF2c%Ztm4v{#bD(fcQzbapbIaq=1xT6%Ui zXXxp?VVPRNvZu2-t1zkO(vFkVbjRCxX;eu;Cy+A5t6Bqc{wKcr;)CZf{~xb#w9@2~ z^Kqut{I5`v_ozD0&YIZGP)Y1`4}C%e&j7F`LoL^)Vl-`-NVkbi5kA+B`WILTqRpE` zcVuGT$!BJS=wkZN5$#Z52}xOI)|i^J-30~p*QzsU>2os~Ge44^&)BHbQEF2we;hHM z>`xmWL*35R{6t2dvyJ?`Hf|fHZp@~0et*Zfww*2?*{lBI=JmH`9X!weN@d9NeVIoR zI*GbEgi2ganS&STfSkHP%vzG`mYK&Zy3bJM&}FG?%JAA^jEi&9s(jXyQ|~ZHNq*AO z-FA4ULX2CI>#za)rt!i7dCu2sC(0NT2ivkU&a7oR?)F@V5+a1(!>C81U+`UsV*rV= zO1BNRNooiF1gF2qQ zbt8|@7Gf88FZfg7&x1o&8~~4jkArLAr@&FCh+R$W1uuZ_2mcWK066{p1@L;@gw$i? z4Jd7Z$B`P`uMD(fKhOvC0tbO{zy|gL+fnZ=;3#~dUi^jUU>9E#UOI|A`WBKS`JWTd z@*R!w>s!%N3zQ5Ux?|es^Sd#C=sJyfp0G{@Ra6xk;CD4ewWonjvBljpFb}a6q{c>L z#}Au%d;a*iWnhacY!kcOa<01}{{YY?o({+o`xB&O?db+@#3fph(m>5>Ac{Sob9*h4 zX9G@xFzRuy-eCK6&Ch?@n0EkC*cNwbeNE!GZr-IJ+z^!Q0eEJX#Pc@J;h?LRT!ugI zb|82^AWO)@f-Q*a*o&*}F**lPY)i4pH$7;=AKZ~mVxoBQ6Dc5nW<7IEEq1PHD@TywZjther{{R0XrBcA6J UDGewMC=DnLC=DnLY%C4@3*L|hng9R* literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Application.Workflow/bin/Debug/TestDocumentLayer.dll b/SAF/Test.SAF.Application.Workflow/bin/Debug/TestDocumentLayer.dll new file mode 100644 index 0000000000000000000000000000000000000000..7c6d98987d29d7bf45889ba8d605ce2340ac7be5 GIT binary patch literal 8192 zcmeHMeQ;b?bwBrg?P?`0-j!opu|=L^2g@JXNI0&WkH(UHLx4LSMf_VyIiW*z0jU=Y=5?HSL=5EK+&#w(@w6pH?=WV zeQ=y;Lg|$J_Pcg9NBa?_*LN$6XbmWMaQWCy02_4#l_(=^EwY;lY`>HRK+w7HyogrF z-{Lbyg-3J{dT-^BA?C!7dx?6`eDp0u>pD4?$84fxn?w@$-ZnfJI&&fLPpt+3 zPv#oi4NQtnbZ^cN{4y}HZ3GRT=#{8#Wdzpee8=@5$hOkGsI2SFsBLA0Xm=Yb%?0)= z3fsnAHf|!?2A3%&zJby=q$m;h(+1N-sV&quq|-srpfeNEbRX@8_a?AY*0vih49#d=i zU(+MmwL=EI7qYM~A_H%y{4aNKR;E^V`+p5m zuoldeCGf%HS$Id%F@V0~?J#BV+WLTPb61A%$6MSdx{8 zTP}ljQCZ%P2F-$vSuW#8P51j%?9|Agn;32R^P~>vykTd<V?1 z!Ht{Opqa9C4;vN&6X~3K%Y~kpHwf(fmMHFsHf@Twi+Ct`u_`czVG$UKY&?kcz33U7%|MtT|BDN2QhpJhw7enUgToAXTea>-2aZ85nGCH#1Y!9) zOY=T}jfD7|djpeoGW8D9xaaEdUVnW!W+oHKwO%ckykzRcs=kuP26c zL%HochjyUNClButFCYy!ya#6|R&X8ahGOVf>y>~d_M(%EiEOx|NY7$t;i+%fb4MYM z=huPHVD=k!yWSKFqX1P$R-aQ?C8GaU+xcK-2fhf9S5G3Gmx(Z*eRvL z1nGkf5hWE{Z_yC6r05RXiCy`h=w-BDLpw_ks;WxUH`L3xaNVSB)-0M7SQGdGfoBDN zN#OSd{#;;}&hl3a92NKufgjLk^)x-Fzl^b70kr6%z8SE`U|2A&Gc3AC;DbUrE%5Wk zUxNNMfv*VnXMidCm9Z1Ot~3*-MH|h{u=y6VsN-$1sJ8;1RyVb{es4I-H2V7(`#B8&`?m;Fy4ryCe0)8jL|P1b zx`kzN9UQuvd65>A_Qn`%G3jW8i580<7wi=6P&;tpScemZ=oA%zCFxPYc!XVuuV*8S z{#5P4oL6A~$LRENl}DUC9bqz~ZhE1GWx<=lR^GIwhZbUtZRw#$BTQ`RrSA!LivAs= zrzwf-W?K^44n*}xjM-XRaz)XT2x~>xAea?x6}XfV(IdFUWXT-@UtdzgOm$Qf^#9E$X?&RehN{M&Bfd@;GxWFgKI0Sg5A>Mv8E`)i%0G+dpU{hF|Ac;E zr0G9}@*3dNq|{6FEbamvDctu}WH`@dGu?oU*h~fUHR@MK%w2#LGY<-D=vNP!DYafb zVy*yu(!4?qL(eW6M&DsIOusPyP~9N(f?8okR=rK-u*P=-_6b}oaJ#^p1da*3O<+;r z-2%%3@1v5spB|!z=`@`|T>TZj2#c?y?_;*F(7({n=$CYnOx2I9+N8FrU20q%REKdl zP*^7o>x3|%KE>zFBGf?DAz_G2Qu3PDRKpID0KE^;Sm1adI%1yZjS=PDs7(1WZ|EqB z?D)x2{}@Z{Y|$3wUS5Xwc2*UYoA-Isv#xUs@ln)q&g7Bnk$E%ADfzk5TWkJ8$4B<@SgoF5i}bu8|k3$m7O4HT1g^T_UiTMNTliJ zaU2SeD66I;DNJ1`qoymngTvm8&LX%x3}#pCXnTg3@a+`>q3DGq+(L1}!> zDbI$^?X!+QPkWqjUuh0QR^#!Czj-v zQ)n`p_8)SNxv{mQLEzM;-1*y_`TeDuGaBLsF$K%1jd5$$U51f&+|qopTB$GXbJ+0% zxMC?|Y}O5D{biI*`j~F5zgIgE=AJH3e5avh0h z5L=^+d2Vw_ILur0fTO>KNeUE@!Uv8?6AL@*(Byo>;UJUeD5CI0i8E--cS<3mBnV6O zvO_0C7J1N&f+9lHuZHuvgSa%7tBsONg~cXYQFQ7YgoVO1!W@#(@a+i448~S!aB%>`2)0a<@4H zSgbJ4VML}ZGuw6vX;H_d7cU8)4&4(}qIq)2$0a^QtARF+-9pR#4uN+Z-+LSi@CIb# z&gxMacny@gP>w;52iztawrK{s1GGz^`c$P8kejBPU*|{H{(AjY=(`abQ+TC7y&*?A zd>e@17)GwsF^uEGf)ebh3Z;m44fAp_dJbQ3YW#L|RS}pk7Ww!R$X1_#{IpQ-B1RYUZB1!_(2-^(w{!CjmPzByDtlKtLE5_PT?6Y<2_xIfje&K##WmZDdY6$< z*)Hx_V&GV$r%?>TI0>lEIs@r0TUXgqI=k>tI$>pxr?d0fli7t+S+z$? zZbepb4i=C@$B-jjHp)LqCc!O%8i2pJKZyW6V=O?af=wZ$qP$wF>8QvIVcya2dYWP% z;Qv7UM#6hm4ZmnN<_|qK>c%!+L&l%SYQ?KiA;06JU9VznC)21;->7)c#l-A zSssS059w&HWtm~@vO}oDw4MF{Uvjv$lXjqu|Etj|^kvV4(ytCX+%{__W#n*~9kh8$ z<*=8z_!0Isp7R8HR74BUzJU{rt*&6V;%{^|YBaY+xo8!5r{~?wr~6<%7aMg_>^l(a z;8kGzntov{^4kB!&dC4K88eODn)l{Q{XZf;?UcFHvzPO0Uiyz>CVT?a5EU*wVIv|t fSLbp%*ayE81p&>kz@KQ_w|*z=`n?gq6%YI`B>6O8 literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Application.Workflow/bin/Debug/TestDocumentLayer.pdb b/SAF/Test.SAF.Application.Workflow/bin/Debug/TestDocumentLayer.pdb new file mode 100644 index 0000000000000000000000000000000000000000..77fc5822776abfbe1bf063aa4a039dc387d8b07b GIT binary patch literal 40448 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 X3R2NPMFSNLR5Vc0Kt%(kYT*9?^39#L literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Application.Workflow/bin/Debug/TestWorkFlow.dll b/SAF/Test.SAF.Application.Workflow/bin/Debug/TestWorkFlow.dll new file mode 100644 index 0000000000000000000000000000000000000000..8b9208a7d4fd01e5a19f84d7b0c22c9d05029b92 GIT binary patch literal 9216 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 literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Application.Workflow/bin/Debug/TestWorkFlow.pdb b/SAF/Test.SAF.Application.Workflow/bin/Debug/TestWorkFlow.pdb new file mode 100644 index 0000000000000000000000000000000000000000..66c8692a83d8c4a2ae942bfe46ac108a612ecae5 GIT binary patch literal 34304 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 M6$w-%FbO5_|AK9;@Bjb+ literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Application.Workflow/obj/Debug/Test.SAF.Application.Workflow.exe b/SAF/Test.SAF.Application.Workflow/obj/Debug/Test.SAF.Application.Workflow.exe new file mode 100644 index 0000000000000000000000000000000000000000..49ee7c60f8c13d9c9b4108ddf2b11d8f1caa6204 GIT binary patch literal 6656 zcmeHLU2Ggz6+Scj=d7E>Uc2Csq#ZX#Bu%=qm84OdDBaC&>}+GlPS%YHI7;?syq;!v zW-~L}*lk5!genq6Rf{5|A|#5`hZbH6LLw?ca;5SU)K-GLP?e$!!U2MZ9#?tCRiKVI`j z|3zi=jsD45!_jKCRkrh0t(Z4W%hd|HX4g&4FtyBhPODlaJ+XFebf7Wy#D1btB|y<% zpLw9U+Pf4}I+ZZdZQyW6+q)G&LrJB~jSy1+I@U71=e?9ZV-Qn(_g}p|5BHfW~N&771-4P2$ zQS0*zpcb_+^K3Z6=;n<~Mif!HgYo--w?ua<@KZ%b_4ZL@>F#?5mFrA(^PR9p0--hY zmt$z4pX^6R0v^d_a(4~9`ofdnzLa_H@n3E_zx8UT26_7a>0D}fdQx}X1dv3kR;w7r zylYryV#=~l%~Y&2(^lc(>5N{emsi(I)Jg?RN&9jS?o;ICygYbhC^4AWzH4wN3n@eu zz>9Ej(^rWG;9CbC`b|04Hq5fa8r!hjB+hHoLpiD-c@YNMH1be3gYj|DFEG8YV##8_ zp{k7Bt`gFP=5Me3;aM} zNMWfaaJRrofmMO$1->Nkva*QU5mI^1FRB~WFzpa%sN=xr1)c+p(vQ>&;QUlLZ>hgf zV{}#hlNzUc1AT!w9R!Thvw;iHd>$}NZwGkJ_W`-_P8sspMQM5v5oT&aWB#+q0^Z?Z zKT}Wjnb7g#(WiEkNxigAU_anG+9LRn!21NI1ZD*u7I;ixUZ5fHG~gXH57Qx#qJggU8N>}oZGvwLN-RRk+ zvAkhYqUc(7!#r_BpQ*qePdKFaOk=3>%dd1R1@OpU)X( zbGgk?-F7hfazVOYaqIR9lTF(Bl3vZ*r&h4BYV)>Ho^_XtCTv8oxPl;URcm>3ez`^3 zGG~l(-InsUT%6IJqHWYTGRuXNhU<@mcNB??kuRH;;~GVWq(YYS1;5&=hfBH1)a0zK z=S!{S@-}KJg~uHcooZZJ<0%TKmlsvcPimrbSLK)@{R`PfVbg7L8iI zLL<7V+eR^4(oGkVCf!oVUKcIRp^R0mS7A1qpU3J=in1-+hNEe#(#R->4&gfuJa zj?)xVS$9w5bdwK+(d*G;f*&G2Gi-`|#XZV{V<8$-I2V1?FmTz@jz(6f|r)MZ>VN=nPSIFWu;O1eP_}^PD`31|KcVS{E-&tf$coW@E23qU~B^ zJq@ec_!;yFtV)pWxxtTycnt@uwARQhTf>0H{g@@ntKd%LR@gE8(GULi-tf7K^Q$YD zK7Nrpe)8z_(RDlCJ&RjV*%%9Gqy#lZi7`+^nyRR3P=O%?u?Wcc;f=8lEuh4Y#p1_< zq-=-jbDY5QIM?4jaXX9hg(c{(lY1pOIFq>!5 z$IzLjqgO+`B871+Gt%35*JWO!`8~nJlGc1D_Sh%Vmc4&YmwGNYg03e@6@Hh(7t_5eh0*}cxk;NZwH>z#0d7~nF(VKo4d-vQ}S)Poa% z`{@X-ptFF(-d7|2Ecn-tJ%1E>Cp;BmoX6(JEWhjemX#IZ8hA(LDILaB%C&~y z^k(qnaT_4En#2>#Z+i~pzS<%hF9%=7-W2%c%5!c~86GX2>AdI+QuDWi3c&e0R)uX^ z>IT;{t|a^cprH@=WHniT9=qk5s6*=MY!jX4dKsx8Me(E7s(}sNJ@{BvuKRWrx;EBo z)Jfa76p4&0b|(C&_`I2vm0j56P>F{zu3V23)U3KQ zjjEe~%xZcv)uWsMJu|xq6mSPx-3Q(7ipk^t{vIJEICauITa!CAt;yn`=JL z!SCwqcQam0dC~k&`0t(91lF<;uR3lA*B2qr_oSRbyUx;+SnV7#VxPhe`4*}oizf|<5f3u2L0`{+};6%1gA$2a`#>&xRe+H8m3d^79Tg0K7AYxswlza?+_G~3(( zv50hA`0w=q=8yQ-l_`GG_6ab#5c7{U0oi<_q6XS{sa?$s&dN_ T(7gZ6C3oNQ44)eQ4@cmiQ{xX| literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Application.Workflow/obj/Debug/Test.SAF.Application.Workflow.exe.incr b/SAF/Test.SAF.Application.Workflow/obj/Debug/Test.SAF.Application.Workflow.exe.incr new file mode 100644 index 0000000000000000000000000000000000000000..919108857ecdb952ea70a85e54a334bec009ffc2 GIT binary patch literal 2108 zcmd5-O=}ZT6g{c6YF!xo1rJO0i-I8dL)?idt~~c;#wH?CAql>4=e@b_&3osabMH+ls7H?P1c~jb#qFlo zP?nw8$_*oBo>6A#Z#6w9QZq9u*=WYf<(rC=FmhtmkcCO8oWQQp>)LUmBBv&s#KtsA z&v(1W0Gyyno1mRc&B78EaTnK7z#8sg0VX|vYJFc%$PNST$E(NX)9-WhM|$2lb|&Ug zMFl0Sz``m=Wxn4+6Lmxg5z|~GFgU-&v#Ti5Z^MU!hn$PBN#6sUdEDVR8o(}i+pDME2=+A8{sZi$X2RvI*Leep z;RALKqVp)R@1B3Ev1hq-ZREUXI%X;rQ1@A5P)p0;=+HQ*!;L$jx?{HoE%bGe_$>|0FMKzjCGR>}#ez-FT<_tX{L% zwR^bv9`fYYZ~30Z-M`llgIWKGmKJdAa3JF^v^|>Sz2r~6-J1OVq?;|nMf!$U!xqSF zOcXxv=CKl$Se0BdZIJJnC-pE*v!4w5JcI`lzHfKO*}7>|tA)DG9P9I$ zIWs#md(N55*%>u-+j6XIKAMWBVzKDx#F6L$EsKL35pgJK!U^{?o%!3~FnEI~) z4fNEvuPEBM8d&)I*Nyw~>djXQjmc0S*RicWz*@x03YL9OMy{x4HL!Hz<$-TEUx_SC zh)ZK1*PZ|7@Jr`@|K-QX!hn}={^-nWk?fVo#oa*DFi~Vn9`!HUq9#FQw*|xVMS!@00Tn?`P%(Ja> zemm`}I`@YLKKF+ydHJaKz#$F-BPgIB+{t|8TCJ!$G_d2RM5u_N{4jL+!qGEdhoVSV zLi{$swL)?}%QXFiZT}NKZw~pggwHeJimF2c%Ztm4v{#bD(fcQzbapbIaq=1xT6%Ui zXXxp?VVPRNvZu2-t1zkO(vFkVbjRCxX;eu;Cy+A5t6Bqc{wKcr;)CZf{~xb#w9@2~ z^Kqut{I5`v_ozD0&YIZGP)Y1`4}C%e&j7F`LoL^)Vl-`-NVkbi5kA+B`WILTqRpE` zcVuGT$!BJS=wkZN5$#Z52}xOI)|i^J-30~p*QzsU>2os~Ge44^&)BHbQEF2we;hHM z>`xmWL*35R{6t2dvyJ?`Hf|fHZp@~0et*Zfww*2?*{lBI=JmH`9X!weN@d9NeVIoR zI*GbEgi2ganS&STfSkHP%vzG`mYK&Zy3bJM&}FG?%JAA^jEi&9s(jXyQ|~ZHNq*AO z-FA4ULX2CI>#za)rt!i7dCu2sC(0NT2ivkU&a7oR?)F@V5+a1(!>C81U+`UsV*rV= zO1BNRNooiF1gF2qQ zbt8|@7Gf88FZfg7&x1o&8~~4jkArLAr@&FCh+R$W1uuZ_2mcWK066{p1@L;@gw$i? z4Jd7Z$B`P`uMD(fKhOvC0tbO{zy|gL+fnZ=;3#~dUi^jUU>9E#UOI|A`WBKS`JWTd z@*R!w>s!%N3zQ5Ux?|es^Sd#C=sJyfp0G{@Ra6xk;CD4ewWonjvBljpFb}a6q{c>L z#}Au%d;a*iWnhacY!kcOa<01}{{YY?o({+o`xB&O?db+@#3fph(m>5>Ac{Sob9*h4 zX9G@xFzRuy-eCK6&Ch?@n0EkC*cNwbeNE!GZr-IJ+z^!Q0eEJX#Pc@J;h?LRT!ugI zb|82^AWO)@f-Q*a*o&*}F**lPY)i4pH$7;=AKZ~mVxoBQ6Dc5nW<7IEEq1PHD@TywZjther{{R0XrBcA6J UDGewMC=DnLC=DnLY%C4@3*L|hng9R* literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Application.Workflow/obj/Debug/Test.SAF.Application.Workflow.projdata b/SAF/Test.SAF.Application.Workflow/obj/Debug/Test.SAF.Application.Workflow.projdata new file mode 100644 index 0000000000000000000000000000000000000000..dfe66e33bd5535f78c2551ecbfe5e91e8aff9827 GIT binary patch literal 2184 zcmeH|O-oc!7{~v&oRXkHp#p{AA}vaCtgQ@!C_zvWRJy1HyK^09bY^7ksI?1%m}QFy z>N~XU3-}#c^cng9?dtbG$E!h`gj(sjJokAy&vRa$xASpgZ1jv6BhvfCg!GfKWSWU9 zdZtD7)YU+F_!mf|ilTDGN{lL6TUt}WcN=~ceh$q?TF@QvW2_6-s2xaZ$hY~n)KZ4s z0PJ0AS^@X9sdeUh+6((1tz1L9VEy^uR(yHvHKq1HJl{gNb*_$HaOPLK%RSaPdwJHg zoOcTNg3E@L;8xv(AI0aBr5xIRhYe$RzNAj^sR#bQ2VS#<>)O@qJiH8cg--*Y07hzl z4u};W@i+LfckPiMZ}t<<-Rge-{NU|=VqJrC|F6b@!6eGVbJ7R%Y;-~Q=?*O_O1gAN zU#FWq)pOlITG33BT&=2|)YYKsGJ3;B?CMnI4mH`qzE4#~=@OP5v{E|GM(8^!dK;nB z6i6eL>LE5>%U!Do`#1H3Q?#(N-WqfRyo|*21GM|_J$gVJs|<-x;k|R@J80#>!kSHJ z@1F-7OMY8Q!m~An5u8MKOcnw?yZUV;` N#NPLx0#4%ne*wEh=-~hW literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Authentication/Test.SAF.Authentication.sln b/SAF/Test.SAF.Authentication/Test.SAF.Authentication.sln new file mode 100644 index 0000000..13443f9 --- /dev/null +++ b/SAF/Test.SAF.Authentication/Test.SAF.Authentication.sln @@ -0,0 +1,39 @@ +Microsoft Visual Studio Solution File, Format Version 7.00 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SAF.Authentication", "..\SAF.Authentication\SAF.Authentication.csproj", "{FCE84DBB-04F6-4FF5-B84A-776CDB28DDEE}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SAF.Utility", "..\SAF.Utility\SAF.Utility.csproj", "{25E53F84-184D-43EA-9713-CDD63021560C}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SAF.Configuration", "..\SAF.Configuration\SAF.Configuration.csproj", "{CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestConsole", "TestConsole\TestConsole.csproj", "{14EF704B-A7B1-4EED-B4B7-DC3AF0B98AB0}" +EndProject +Global + GlobalSection(SolutionConfiguration) = preSolution + ConfigName.0 = Debug + ConfigName.1 = Release + EndGlobalSection + GlobalSection(ProjectDependencies) = postSolution + EndGlobalSection + GlobalSection(ProjectConfiguration) = postSolution + {FCE84DBB-04F6-4FF5-B84A-776CDB28DDEE}.Debug.ActiveCfg = Debug|.NET + {FCE84DBB-04F6-4FF5-B84A-776CDB28DDEE}.Debug.Build.0 = Debug|.NET + {FCE84DBB-04F6-4FF5-B84A-776CDB28DDEE}.Release.ActiveCfg = Release|.NET + {FCE84DBB-04F6-4FF5-B84A-776CDB28DDEE}.Release.Build.0 = Release|.NET + {25E53F84-184D-43EA-9713-CDD63021560C}.Debug.ActiveCfg = Debug|.NET + {25E53F84-184D-43EA-9713-CDD63021560C}.Debug.Build.0 = Debug|.NET + {25E53F84-184D-43EA-9713-CDD63021560C}.Release.ActiveCfg = Release|.NET + {25E53F84-184D-43EA-9713-CDD63021560C}.Release.Build.0 = Release|.NET + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Debug.ActiveCfg = Debug|.NET + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Debug.Build.0 = Debug|.NET + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Release.ActiveCfg = Release|.NET + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Release.Build.0 = Release|.NET + {14EF704B-A7B1-4EED-B4B7-DC3AF0B98AB0}.Debug.ActiveCfg = Debug|.NET + {14EF704B-A7B1-4EED-B4B7-DC3AF0B98AB0}.Debug.Build.0 = Debug|.NET + {14EF704B-A7B1-4EED-B4B7-DC3AF0B98AB0}.Release.ActiveCfg = Release|.NET + {14EF704B-A7B1-4EED-B4B7-DC3AF0B98AB0}.Release.Build.0 = Release|.NET + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + EndGlobalSection + GlobalSection(ExtensibilityAddIns) = postSolution + EndGlobalSection +EndGlobal diff --git a/SAF/Test.SAF.Authentication/Test.SAF.Authentication.suo b/SAF/Test.SAF.Authentication/Test.SAF.Authentication.suo new file mode 100644 index 0000000000000000000000000000000000000000..31be772442788710761dca709929426cf7983e0f GIT binary patch literal 14336 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 Dkw!^c literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Authentication/TestConsole/App.ico b/SAF/Test.SAF.Authentication/TestConsole/App.ico new file mode 100644 index 0000000000000000000000000000000000000000..3a5525fd794f7a7c5c8e6187f470ea3af38cd2b6 GIT binary patch literal 1078 zcmeHHJr05}7=1t!Hp3A*8IHkVf+j?-!eHY14Gtcw1Eb*_9>Bq^zETJ@GKj{_2j4$w zo9}xCh!8{T3=X##Skq>ikMjsvB|y%crWBM2iW(4pI}c%z6%lW!=~4v77#3{z!dmB1 z__&l)-{KUYR+|8|;wB^R|9ET$J@(@=#rd^=)qs85?vAy(PSF5CyNkus435LVkZ$rj zNw|JG-P7^hF<(;#o*Vk}5R#e|^13tBbQkeF?djULtvqyxd3<{9 literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Authentication/TestConsole/AssemblyInfo.cs b/SAF/Test.SAF.Authentication/TestConsole/AssemblyInfo.cs new file mode 100644 index 0000000..9f89a32 --- /dev/null +++ b/SAF/Test.SAF.Authentication/TestConsole/AssemblyInfo.cs @@ -0,0 +1,58 @@ +using System.Reflection; +using System.Runtime.CompilerServices; + +// +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +// +[assembly: AssemblyTitle("")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("")] +[assembly: AssemblyCopyright("")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: + +[assembly: AssemblyVersion("1.0.*")] + +// +// In order to sign your assembly you must specify a key to use. Refer to the +// Microsoft .NET Framework documentation for more information on assembly signing. +// +// Use the attributes below to control which key is used for signing. +// +// Notes: +// (*) If no key is specified, the assembly is not signed. +// (*) KeyName refers to a key that has been installed in the Crypto Service +// Provider (CSP) on your machine. KeyFile refers to a file which contains +// a key. +// (*) If the KeyFile and the KeyName values are both specified, the +// following processing occurs: +// (1) If the KeyName can be found in the CSP, that key is used. +// (2) If the KeyName does not exist and the KeyFile does exist, the key +// in the KeyFile is installed into the CSP and used. +// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. +// When specifying the KeyFile, the location of the KeyFile should be +// relative to the project output directory which is +// %Project Directory%\obj\. For example, if your KeyFile is +// located in the project directory, you would specify the AssemblyKeyFile +// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] +// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework +// documentation for more information on this. +// +[assembly: AssemblyDelaySign(false)] +[assembly: AssemblyKeyFile("")] +[assembly: AssemblyKeyName("")] diff --git a/SAF/Test.SAF.Authentication/TestConsole/Class1.cs b/SAF/Test.SAF.Authentication/TestConsole/Class1.cs new file mode 100644 index 0000000..d28103a --- /dev/null +++ b/SAF/Test.SAF.Authentication/TestConsole/Class1.cs @@ -0,0 +1,53 @@ +using System; +using SAF.Authentication; +using System.Threading; +using System.Xml.Serialization; +using System.IO; + + +namespace TestConsole +{ + /// + /// Summary description for Class1. + /// + class Class1 + { + /// + /// The memo show how to use SAF.Authentication service + /// to "log on" once and have access to many application without + /// relogging again. + /// + [STAThread] + static void Main(string[] args) + { + //Note: modify the user login information to match with that of + //you computer. + + //create an SAFIdentity type object, modify the parameters to fit your computer's security enviroment + ADIdentity adIdentity = new ADIdentity("myuser","mypassword","mylocalcomputer","Application1"); + SAFPrincipal sp = new SAFPrincipal(adIdentity); + //attach the SAFPrincipal to the thread + Thread.CurrentPrincipal = sp; + + //refer to the configuraiton file for more information how how the + //users and applications are mapped + //check if the current principal is member of Administrators group + bool result1 = sp.IsInRole("Administrators"); + string user1 = sp.Identity.Name; + + //switch to another application, then check what the original caller means to them membership-wise. + sp.SetApplication("Application2"); + bool result2 = sp.IsInRole("Administrators"); + string user2 = sp.Identity.Name; + + //switch to another application, then check what the original caller means to them membership-wise. + sp.SetApplication("Application1"); + bool result3 = sp.IsInRole("Administrators"); + string user3 = sp.Identity.Name; + + + + Console.ReadLine(); + } + } +} diff --git a/SAF/Test.SAF.Authentication/TestConsole/TestConsole.csproj b/SAF/Test.SAF.Authentication/TestConsole/TestConsole.csproj new file mode 100644 index 0000000..e61c1a2 --- /dev/null +++ b/SAF/Test.SAF.Authentication/TestConsole/TestConsole.csproj @@ -0,0 +1,106 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SAF/Test.SAF.Authentication/TestConsole/TestConsole.csproj.user b/SAF/Test.SAF.Authentication/TestConsole/TestConsole.csproj.user new file mode 100644 index 0000000..29ccfc6 --- /dev/null +++ b/SAF/Test.SAF.Authentication/TestConsole/TestConsole.csproj.user @@ -0,0 +1,48 @@ + + + + + + + + + + + + diff --git a/SAF/Test.SAF.Authentication/TestConsole/app.config b/SAF/Test.SAF.Authentication/TestConsole/app.config new file mode 100644 index 0000000..7dc8fc5 --- /dev/null +++ b/SAF/Test.SAF.Authentication/TestConsole/app.config @@ -0,0 +1,26 @@ + + +
+
+ + + + + + + WinNT://mylocalcomputer,computer + + + WinNT://mylocalcomputer,computer + + + + + + + + + + + + \ No newline at end of file diff --git a/SAF/Test.SAF.Authentication/TestConsole/bin/Debug/SAF.Authentication.dll b/SAF/Test.SAF.Authentication/TestConsole/bin/Debug/SAF.Authentication.dll new file mode 100644 index 0000000000000000000000000000000000000000..e24936a793eb88ff9d014e1546fb275f18678e62 GIT binary patch literal 6656 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 TjIRN$-z6w%prnC|Qv?44>iB%# literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Authentication/TestConsole/bin/Debug/SAF.Configuration.dll b/SAF/Test.SAF.Authentication/TestConsole/bin/Debug/SAF.Configuration.dll new file mode 100644 index 0000000000000000000000000000000000000000..84092db3a9657a5b4cacc75cba2aad873475d8bf GIT binary patch literal 11776 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 R`ah!wI9-2!{lBxoe*)g4z1jc( literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Authentication/TestConsole/bin/Debug/SAF.Configuration.pdb b/SAF/Test.SAF.Authentication/TestConsole/bin/Debug/SAF.Configuration.pdb new file mode 100644 index 0000000000000000000000000000000000000000..e1b1ecc8cfc6152801b5145070c797d9166c18ad GIT binary patch literal 54784 zcmeI5e~?|pmEZ43Pvg-KI}!+x0K*_85JE_!ALs{*VSY$L0!c_n7-7q{Mx!TbmiZyi zjEt1H?6(!MOO@G*T*X%5Dp=zzTPrWNqhOMFQ(_};QK`k@4{waK>=xzKrbvRfSPX=u zlq#_E`F8iYuiu;Z?t9XVezC8mGw0shefr1g)2C0L?t9;+-kzbs;laHltzC<|ZoRd2 z)3$Z3D;Kr3eR9gxYqlkX2}#lfdIUJhwZcx18h<|q9C+%_?rsg;dg?cg@K25dt?N!+ z|KUHmRyP`K9C&o{lBQMCW77kGu1|jR8>bWWtPwue92g$zS-iKmFF(Av=Z>Aj-FpR# zdIksf_U=14)IHKWIIuJSmHfcSz~D&l-rgSfq$GM#&v3H1j$DTGLtp9b$)6Q%e|~tl zdtd&`2lEF3@ZS;tDexTN6Tqb(PVe4&_kaGx&t@FmmYlr*k0yNQ<+b;H>zDuY zzs@*%x4)nI%$mBK0%;eL(Y0Kg9%|rH4$Ox?p94M*Oavs&lH{$x1AuJv?ZAV;XMu-+>wxQlR^ZdX z4S=Lnk}qkO1WTGVDlP*q2P)}*)r9Wyi9x#8Z8_GnM!2*&&=~)c>WeFkb?nbUByR*X z(`gpd45wM^O5iGB7BCyQ1{kmYzn#2R04o96ldFL{fZqb{1U>`Y1>6m^106so&;_gk z)&lE*dw})82H;*`BXA$E3D^wW4{QOh1sY-O92l?uUrtpTGBEc3INv#pSO3e-i0zb0 zwutE?S=h2et^msQ(bYU_g!9LN@#=r;+iEgkbCTJkT5V}gl1&=hqne|%nrnpf!vXPL zYqL%|PV=@bA(i~MEI725(_CB+)aw6w*CWyi>VMe}|BLeTU<=>nLblO0|Glm0qn7Us zs9r;W(kd=a`zh9-eZc$h4 zT7;(AKTjrbCFo2RNF^mZB+vxe2^MZ9x#kR&l{}Ci8S2F~xm8ZV4Fh`zhx(m!lBg?_ zi8GFZx08qHjb<$MTadK6dLiEqOUk>p&295xnO(F|T-ugS74~Zy#Vas=n>9X4 z+Oo;}IenA*5A@~x@x1z0sZBd+&v6K}HZt0=w&}d~zmttc59Igu<$L5>rX5!o<>Y~b z10%itdE)zVHV^EpDKqL5=@ZtsHTy(q%S!=p-#T9@tK9RNiuTyfK#j2 z5hu|s=7WE;d#JlVKaw9BmS?zihWfNvrzG({@B4TEHmz3v>PxMcUMC~zK+U_Nxe{9G zPv*b0-25S*euT8IRY)(tAhctmP@7 ze16h1&3nS}{G>U)Jng>^X)l%ee>0tSsm}l7)&K9)x6-)^6Ob;+nSy*zN8FXO^$VKY z(aD8d!T6vHw}G+w3i2Ji^Q&JMQ~2DgK;3kqw&_}4vdt89t%a)WuSOWZ@h?3ryH0GCPLi&T?LW=KvhB@I z)P6*~{*zBY`w_POt4IG!UqT|9RR8sK_ow>L^qyq#N)(ht!1SIytGer1vQgRJJ;46s zkoGzWCg0NGlKW$T^3(I5fEA_zPrIumAzeZIz&~10JCX4MvMs$|SPVvYIQhnQFMOVR ze5QpjgYladeh-ZAwD1i0F7OY*NPFQGa3^?TvNXxD)01N-D2Hb>$Bt1B&7MoX81TM; zyXc$I<6*qU|Gz~5#M?gugf}4s!Y}bh_~$S{xJkmnAQUPO?L1I?QyO0>mG4I-BYDns zYRE`3Ci)2}y&v?gAzr97K8oPd(T6P4lG6*NZ7-#7*E5Ay_g8N`n%GC*#%sk5Q<~{hNUQ7{2Mgm$HPVzlA?SK?r{# z++PvoVm69F&wm-@=&^ur2>6$QZb`sD5BYvK;NK7VDGxyhe}q2@^pjwi?hl6e{t$nA zsOL)oe<9T8woo7GEYZCb%K4_XC)DG;kWY6=|6a)FJAv-8knXVMXXS-*ZV&aF9n#GX z`TtEw_x(V(HsGd!`vcw9kbZKwenqVrMEOS z*UWyM+BMi0)~R*WQ|n8Htn8m)i&Xay*!r@V7C&Qt_+a0NUq6a<*hZ;MgXu9a(lLU+ zWB0+4yl>YVq|w|r5A>zbcI7Mf04eRBlox(&iN8IKJA`9qy!v0|X7P1Sah<;{-*a%N zcjWM*uA##RMh5o{bsyM&7;-NQp7-1L59Pb}$OyFOb@-0f1sTygS>bw*+}~NT?`T`T zd#Go>FJ7*r&cj=V26YNu%-^2q(g_H4e5 zD@Bc0|9iim_w}7?UZ{KN&zj@R)(7!8lgyi6#CUYA1}-7y5o^xoZ9H@AL#K2c?#IP5 z)Z5e1w{H;X-QSPMe5H3!o(%};nGZ=gi+q%a(OszVAbAmwXhTgNjaUCm?{3(Go?>8k z9)9ov`6$JgR(P@;+eGVo4RZ1GLi2?>)Z|Mg9la+%jD}Vlysvsi&^ODmwG=M*$o<7v z(fk9hOn!_viWFb&gePs#iN?}h2)>M0|G%Jyg}@$8^N+c4}`G{k^geGxgN7Iq$ zl|S(%^ar9z%4G14AcJp&1tC6!G~j<}9;OnmAG-GEdmh=acN==FTY8LC;{SN{|9H&f zrni`LYmU!K{2w+QP1}q=cLn}9MFVnq9$weoGcq`Ixc-Lph-$B=I)iq^hbubdHP}?#xTxNq zn9BJYqV10QsOln!R{NuxRJEAeFP~NAyry&BIIExO)m~AnTDi>k(yG?0q(V^#RVRoz zS3;aQgx2b{z0J{Ud-apX=TJsb%`ega{zkj2+6A{DjS^d;(snGA-6_3OV4c9z?!ION z%?vtarxSPD`PXSToqW?txoSZ(iB7To0;m+^wQq!aIDosWBviBia-2HS{^9$iW?wR_ z<(u5PUKyyf+H^r+Z@<9$SMT^0*!xTtfpbZ3l1pw$^H5s9?rlof&2)S+7f@IV&1GQd zp?cX zC-@%l{owWBtzi5Zg)f5d1Ah&SeN^}cm^6jw!4H6sgYo$ka;(}WCGxCkFMJNyaDXt0 zl|zoVTyoSR#|g(=(#o@)5xy#IpLpxnY)$D1ih27`;_JHutWoeVIG21i(H?NzKYpFk zl&*K;JlK0H%!8J870mv7>*>4x&F^6UZRYuzgogd+HJ|$8Qat|~kAKGOs!u0x&Bbq! zOv6955Sy@_>t{7EL(ut*+3xzCli?9(#{HF@9k+Y`^y*|IdHp3fUqxF>VZU|NmZ?6D zaZ_$he;*WszHoXX{1le`wnZKM7w_xQIvYLuJWjwQ2Rvbw8t+1i!s zR)tDumpeN-N@0gc`y8Nhx6Ij)QSKRbPcqdF1}GU(_r|l=4j$$%^%UBhftzd=jwuET4$m=R1piHS^;% z_W#b!{-5zz*m%5LlLcXmNA52Ux#lNK4zwSl)dex~A3_}93bFp@EN=7rByvqI)Bi7%R{G!Kv&Q_n+!HQubG7|{1j)DK4EO(y?n1TiT=svW zeGl6=sj|1N_Y^*u;PPfy=;Qh325_ZM5B`G-;4>)ro1nhVJX&4=~yq0-*!#kl{U#|UzBca{DBll0%~ z7&Y?NTG|WAf7SJT?*D(=_*3Wpzooy>JUUw$E#Lpwc$SSn6TZuidnNFL;||FQKsMoP zz$xHu;53k<&(EKNmz86Tp2{gV1k~4vLDNvc!*F;&HACm1RR|naw zx=zTSdCy&|F7v{*>ciT?Jy)IZ1G{V0YhAcj-L{8o)$h@8tvdcouHOgl6sFB8%j{(A z@^o#*vjWN8J8sT5!u>?N(m7UYwzgue`-&XeXBYUo%hrseJA9m%9_VasvRN2pu%(^~20=|Vj9&>p-n&cSm@p|^_5+VY; zc7BUz!9N1t1U>}jGpyQyKHv!O9B=~Ay5L=479A%a>lR=?a1^NaJl{Wl?|+-^TI>D4 z`HWXvqf%Y>-m^Wcu6JTzOtec2y<}GOl5OdPV}S1U{3l#1#J&>JIh}C+-v8^SkF($Z zv)x*%ov#01cQsGaHs}`KHv6_IVX6Q3H6FbJSbWx;82Nw4?fw4?-T$j-dp-S6I@kZ$ zSWY*|7o|NE^tpTgQ@*IR+}{QMJXrek%iwnK?}0nO&wx9@KLmGy#dl~5XZ!xA^?wWb z9Amtm04jd{w=8IV9Cdg8`NnWP1$-o2lkTE=|9dKp*O;9V>Zh@w zIaY!3>-tRdxon~7U;vM!c)mQ*d_IZ&-dK<7^n!wT`Wn}70n8JLed9!a93=rlk=6Zp zmDZo#2M##zwayQV^TmAl2E|bCKu_<1?!N8*Llx!gv}r-dTfaa~-IL~c{6C?G1mlOU znKzm}pSUR-|Bv%XJhAwigoKI z+^-M$RqKD!x&D{Ts{i4M>woVnufP8xt@-_rnRJ5MD1D}GqWx(XRQmo$oL>DG%fTUc z@83@-=c)D{OjjFE469rT?`j!(PJ~fA=Hnn;-EU zCuOHoXwuDg9lx_y>pj%7@xj;n{?lLJdvQa~zGW4kyW5cc{U@WXIp#8SuG$ojf7Ab3 zPg!6s+5DW1*?nktd8%08O>Pg_i^oi=^Jdc zn)Zmv3iDruw58wAs^lBh-nzZpl(qLRTG>d&a!S9iWpZM6f@II^54A-Kwg5<$6{o%z zXuJrNwyLg+$6txwbBEj+t4%J?Y2>YI!M=5<4p`%WCUa)~*6N7vM`a07TA zcs^LZBGw(r&0yI?JS+Hb$lRRd*l*9V;}hGsb}DxkX?5mf4X_h90z3`;6d23*|7^cW z{sV;G1GZa(2k_P^xU;>W^gt6QW0&u{;$zoo-0%%Q*A(PeJVJs3w?QWwOLxBOZ)XMHtx$jFmga9n z_4g{;>*rOZe>>FO(wy(Qo9!UIWwtAq?rhsJ@Qc7n;8oytK2qg0Y$&En#7pN@) ztL|Fm-yE)0hlO059pZI!Wjlm2QXhxP z!`8+Qxsy4e_&&lep8I*UDV>X{QhKhAx)mtWeZx`n2L58V@1nKbwcKMT6!w9U)q+1u zr*GBW0?Y$8rFM(#9kowwwz0r4P3;}pU69Rj9XN;o&Fme~`7vCX4jwr=^a6Bum(cmK zQ`X;QIf4EQhTbFZY*`O zxe4A?u;(g&^VxKZc;e6CI(tm}h;D77=c=1P@l|z2=6j>QZ1pl4TX~<^Er@|DFhW$S-7J8p*#; zo2~!5^dj!I5njU0?>kH)lYz%cAUaDsRvDnky4J|m*1i6#QboINYAR32MEI_>$-l|Z zw<*-dmCD}*^Z|OVb_o<;U4AOP)9mF&dB98f*hHUakALdgtn`lORmQ)?kA=_H{zm`% z{SWcWzIZXeV8Efym~SEuvidh+t)uE~u-Zk>$DC!!#G zU>;cZz(TP67wn7cJ%&P#Up&lV$>fs7CHmwP@e0x>N6;Zp0mp%#04n=DLrz?(=pM3DjL-VBQVi~@!!Z+*EJRQxM{lVEwXZpe3YtY`4LZkmZAI^6FcP-?Om8|vc{C07u z^p5C98Z@t-B2f#%xRLZmbFqvS?T3pC@mR5Qj^TAL=NnTyi(`+y`TU~~;&XG;v&om) zpF1=$5+3%*{pC^fH@Px?@$PC$FCI;&0^3O>8cTPv@JPCc>ec0&G&?5dCqD~q;!%;8 z#HYM4UfNh)kDgYrvyQsvQS(25jhFT{#S;54e8^S2-3edUK%_j3?p*U$^(^wBwqMF@ zH_=U|VQQP2{siz8@Eo8y=LDc2Ju6rnKr$mx`vl6Ps(qL7nzUAks*8f=OkJxStq*mr z@@@&&Do;98&sAm@V7364?zw0cBtLELs&oxmTtoa8bN6gFcPkIs0-{ykrl;w~^o)(x z5UP{b5KF;Y+shW9j|(|YVEW&9D9ulGSANn%3UPk4$>p~Id=GKAg6{(_1m_Zc2mdQT z(YK-c`ElBmj`KJ_>g>*5t^#i-?P~B2u+DMil7E%xn;3C^;*EHy`kAb2zMl&yz+1Ow zq74P@vBYa8-&=0~C3$NSz5!q+Gw&K;CvXIK8aM&G1|;}O6r64b%P&iNlNDg)WqWL7 zGlN?fh6eeacdl%F3ah>5|9{RWbA1*rHTgH2ESInUpCys{-s0o&Sn>Ct#_;~P>E#at zqqbND!LXwFs?hGFqpxr9(fpnVLR-Zj*(s-q7mcMm7j-rJuE_K1I>YpFOWHqi+S2{h zO19vDe~o#}{cn8TuE9-+`AXfI_ZeT;{9vY$7D3WOoPU&nFMj8_l`mu~f>Git&lWx*$ydUK9y)kS6Ktb(pp zj@cn9>$dP*<=qvoRi@?@vqSv+QrRaVAB3hugv0qHyf5<(=CwJg9kPpfm8;2fUZ9J?Kpl6K%SuBVrj|!Z#kCMv z1MC700Z#(o16~8(267O^*G?NGr=ZrT+)Yu_z<&sq z2Ov`yDt|FE(|uocFm+XO+Ez_nV+oK+XG2!sPP%&X;`er`r6|$03=Hx8TPO_SKjx2c zFA7xnBS84EknXQSy2kJSc)na}zyI?;LVx}heXoAq6#BC%-2WUg*Yn>A{eKHLy8k8e zB8*ORxbgd6FhabLp@FUe6?9)$kU}E_{2rCor)(m=pni$sMN%4+ zsPswkuC;iXb)_;!hxXBrsyvalodwJVmylMK0s%9bY}8G zhs%L(2>u59<*WF|SxkPsoP_r7Daz_e?1GkL z^hZUE&c_G3d{ORBwFFu9hXPA~Yy&|vdY>-PqkCfA@QDh#;S;7Ca3IHNr&dTiHKbk2 z_%)f9{%f`u+@gB;=b;|UOY@#mA@3=cH}$Zwrul11#t+t8n|(T8)>3rb(lAyvzZL1@ zmlVog5{l~WX+mD;x|k=EE7W_k)f>HS`bhPeEWKEE&_1qjN{9Y7eI#GBql*p?8;y?( z^}^{tC$v##ave>yNpI(7jMk?Kv@DjbJk6z!HaaM4G(IlS(0|t7I*00L!r@d)@1KYC zeC#UbTdo4%a)EDc(by2*a^hQjKrQMUAMeX(V{F7_Osr7GL@NWGANS2fmEo3*#Y0fm z4waG8q4(o5nktmhWM$Bgi$b3qCyyqTksf;3&S|CM?(j&jc87~&)~65cqHj(9WplZF zY+fs7;Wn79&OTkBr+=-jT9-Qdc*8X+*T)As`q<`V?HPvpdk18Rd&(OxR<=(Y@+j-~ z2^IJ?!T7~EH#yY2IH7CsBsX+Sa+28Ka(ZuSnjcJf>Uc6Hvdto7$?Z`^zklJN874Z zUAM175fif8d3hoqx5_&SsJ!+=8|y7EyfClHqU-kCm#=}kR(b3x;F6wCL8pS;wjAG< zRbI6Zq$Rhn?Od^{qjRk*v}UG4HZ!X~vtMRORxDk;a@~s6CQR8p zzS8+qBuj4rD*IGspT;(DiCiVi)~r~%a?R3CvTz~0+?md|q`ut+sNDH4XZ5X&#qysN zN|vu&xwdWPl2yrV|8dcK%0ofB1m!_-dhVsJG*)rysEwtM-JRmT2|QdS?jLxr{iO0B zI_;fVU370j*V+@?5+0PtX&IBVdpO!rQ7DhoKBCoy%QPsR&I}u0%H!UQ z=ukOn5S`vpu(p@S>A;(nhiIokbo#b=e|Sa7k%H#AMziM&%J|AYR3*~gr5_fr(IDK1BdwvS# zboyQ$XP;askJESP7F3DTJ80JSmXJnBZP&YHz2RATTswt$TSGpBVi29)`KlJD_qwXZ z>D{erae8;p>Z#p73o7pg;--fO<#B&O+=eP~`rg2d5NG2;w-fmHN!R&J%s*aB>3c^l zLHO;N@Kl{#fLjw-(d7`9W_qTD)$0_VRr;s=SuP}lz%#(l0Ox9-{4`mk9bynOcnbhlHdbQS6?WMD0+8BDN zs@bJi3_1|=U^vZ_k{`{*?&N%vCUi{bSqQx8C&mr@p z)QboB#>8;4czCF1@&0@_zkI)&4_-gwAIOC~ytwC%oty&~Eb56z&Cc%Zp8<7w){#Z3 zS4wgh|LV!1N38Ue#oz6$i!kfQIP1zFW=6M`KK;etAo?N6 zv&v=Io6cuNi`)&vwl5#d9}FFMu-Jn-uQM|!s&`)1OzDFxH_f~l7)c(G1)&)j11Grw z)uxoE06iPa`5%pk8nRo`=!>iW_tAQ-yE?IJWixb5;}79)VW0MA*K=JD?0~I1FrGxS z3+}!P*1Isru#MzDItl2v0^X(@3Z#`^N%oFSC=EQC1M}gLx?>0MFd#|Z3OoR81GWP? z$M;#_AwXySv=(Xw<^VSWl6Kjvl5*L$^50zr%mQQw^WG)CXnzi49{48UW$3=04734D06A@z0l3}WdINX3TgOS3Rs&iu@V#4izT-1s&L+BVueXCcfKH$b zSOcsD)&chb>jBx+_W~P%`+!Y=<|)o4y7d|U%8#A=Sf8uEKL^z6bIC^B@4QRHTl{|Q z)&iE6)5%4xU8D^!11<-y0HiflhQ2v`sr5TmrtkIF%Yeu3HvAd=`;YV6{*Q)&3zdI& zGBq%|;u(9a{@>QW|GydKj#~MQ+5h|0Js)P3SF(0e-|q}O2}mNBwEh0K9+F1V*-(pa ztm8c=q)RO@t+^l_r67H4L2-KilkmVXHe63+EnjK<@1IR@dQC~MWG+2dK7q@qV6=8V zYybZt>d61(-Qle9RWhXF)%RKZ|Bq3o$~|=F|I3p1cqosH|Nq!`->bL0uyj2;|Nm+F zN9}8wovA+}`@V$7WA^_Sp3f>bdnr6t|NpM%vt+62;(g5i|I`2bbVlD+@-j61|A?py zlGTR)-}55Y_2Nro?(}@AG{iCf^KO5*CB|Nk2Lb2a}r_5=oYmdu#3Rg&$M zjctm^JzdoS+7nIEJuz`+G1*gWCTZ0fGLx#({3e3B_5>b^7UMzU8|Y%^fcgLLrlJl1 zf92hao`(Ow;s3At{_n*;!n5lq|KZ~pG3Nh&Xqr!drvCpuI6e+wu$li~?>JTR|DVPw zY5xBe=PUAv);YR~RY)>F^! zY-eWeY=FohMCk*FN)V~^CG86>QbmO-HLBW|s=Oct!9)ARLy>quLIMd1RVotUJ7;F? zb!}M{5>k$*L7 zOPRerSX{F_z2Q1l*Qn`bqh5D>y=3Zcv#wipJvU#_YfiK*J+Vnl~9g9o=KjsbM^EILu2&}!f}Pq6>ewt$%D#&HoHmVZ0Xa40;Y1nd@= z&JwK#3Lz(atOjnZ4ieq7n{)6;hwToD1jdhaj5EG@)yKHf4FFGK4gJPQnhuvTuIH99 z65p~QIM817j+TY@8P~KO2y)736`gIR&^ua|XtHA{WR~-a#=f!2JBTv}#}%IZFIxXd zj2?#`^!u(O_1)bAJz6x9zAHt;n2Q}se5p@!K{bZ^!1dr__cakr4)jN2>6A8%U5GuD z>hk)*>W}nAoBM*Sm75G&SFzlEekoXs%#v@}mfyPUl%BktGfT~C=WM1?DM6ej3+E=4 zaL0K6H%2ofnekI2Czwf5vVm!=cl0{Z_woEA(*@tP>Q#>=RuOC#&!bBPx(OQFMn}&s z<#Twxit$f*JZU?!7-;OC^60(lKo@BGP#NdK!5p#gAf-f6LQ;N617SJpL5C^f^O)ti zBTL~kM#tzV_U%1-6L>^noKw!=Jx~?g5`13pHNo40e-YGFmb^#sgkVwdDZ%H}AF46> zo%$=_DUI>R8n5+p!CTr(>{93lXHr29Mri`MWBTIO1$cRJt17r99{+fq} z;5j-i^n_qu@S@;11r0$<@F~HT;CF%Z^o-EY0#DO(^fPUVUZ5AWOZ2kL9|1l=N9ea& z887ztwA0ijk_kkY#9K6hN=o3gCz10WdK%a-c(>rV;8z8w1kVc=1RobH3$D|TXpNSj z?^2Um^ga5Mn$rkhpBub?N|bIQZ!=1qUcorB6;#9r(IGBgva_Yp2F8@5%!(&AO7?8BWPF_}g4ijB;$-xHo^)=GBkyxE#FYUYHG zmsP3ho1Kgq%if2PGi{?)u&VXFI?G55jPGSkHEqA??qjUz8Wpor)QLQ_kZ#HQ5DOdeb6I*o$qZdhd#Dz=S1cifI3jLL@5u*S!vrtOAzjW@84%^@D- zoSI?Pg z=FH7Ny9pP#KB%$1X5a_nS@2zY3_(%wp(ErN72mG4cCBxpo9U}%Q!-3D#coO+<9Oe# z;~VNw6}?V6T_J-k%pfeH!PyQ@lRV6RM1o#=-F^8t-A4YGy}y{e8h__SO1ysU^74`6 z??0o)5|Q>76CZ|{+S}WkNF3&mbs|ohnr1qd>Wb-_0+yze64$j<5_CjY6ah7=tBR_s zv2>JJpBd?hPN}Z0cr=~rQq!rV8dG5=nTSWyYATsZM&fE(jqTstU*2`5DK)|pcfJTaxaWP^{y#Fn_a598`RcN(@hu27vd=t= z@o$GqS(Gfww%rmM-@=#i+iC?kO^cxNG*5FF=YcbzxxE$n`@e&)szO6OA4Hkv=Qo5K z+$H&hbT+=1DzIwcJ3bSh#5_*s6`VwFL%25(6~Q$y>*1st*x=OOxyDu zEO=BFKN`FIWZ5(LWua{QwhUPp(mSz?;x;paK1wHOj81_Xqpt`}l*Mi;$Ts`OdUg0= zcX(64jb;WKOR}mBt3GZ;8NAhO{1FX{pR>@diY7!|vONUPtBa-i3o~Ae2vb)5HJYc=(g;=BM8MZ!+*7MOVt* literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Authentication/TestConsole/bin/Debug/SAF.Utility.pdb b/SAF/Test.SAF.Authentication/TestConsole/bin/Debug/SAF.Utility.pdb new file mode 100644 index 0000000000000000000000000000000000000000..374704398542b1ea65121ed61b265b21b2a50e34 GIT binary patch literal 13824 zcmeHNTWnNS6g|@prIhD@7K8{RDOw)hnS!>3AO)uoszty7jmSrb>20}oI@8QdEksP_ zgAg%%V1kJnO`!5Y{6gc0At4Y#3??Q<3DNk7i62H|B7tB+j8fM+kC|(s1BJd)?hb4A zc|Z2vXPj6sZ6RZ8;pb^OP2;WMK=WNtZ;a0#oWfI0F}spVjhxTG7ox4G4FRA zNZ{zzpZh$zegmU3Xn;)-eSL8Is*K#DaVvrAyS6rbKJjAU za8#V#{9(zl^Xs2|_xE4F2^?-v`N%r(WFtpLs5!KOe?rc|(t|1isSq8Qy>TLokSCD7*&H4*H*4`r}D}Ik!B+1D##^ zZTfKfc#lR`0`q36zbifOqaFuCJ~XDUFr0mvrhRbif6I?0H|nzan%m$W zjSUGH{aa@~ica&N_dPhsWf{F2&hDQ62Pwo+Y)*fD0q6zz4m5Xs3(`4&XP183#Aoi< z48{3#e>?pzKwIzpQ(|L_Zd|@`nYvreWyM$R%*5IVt2^r?ob2A6@kA_>sj=c2AtI}G zM%Qg1tnIoslCNc~PW@8PB#ud&@n~#IfO@mU5)s-#)b8AzP{X3Q-k^?#*QFP9YZN)7JCd$*j|9TTRKVolbQ{?ewco+=fBTEVPN* z@$NM24K`%PuuPe?CG8~RPFE~}xu&tcV1Zbi%!|1qDEEL^L~<@Go9eKW;7d@a?J-~H zbavV4Oez`6I;mtNg{AGuvd?_9WjurZ<=ZAw?d^8!W)6jY1p~C}o91ck?n*fESQf#} zqi939t!(NV}58InIqq!g24YyFx zqhCa#RbfRdOd^aXMeUC^Mg0wAQ?y;GzA%pvNxP@15oJcEwc18LrD1`p6_daC23GbS zQqo3Vh$Wm>n4uD@l;w1V#hBl_%Xv($NS-qXCj6Cu_3qm9DJE0-OG-cA+X1G{13p+B zKu{d(Y92ZUXmY%#-plV^a>)BgZyp#w`cvH^=?`dHF`JR78+c z-+ZV;WibWcLp^dl$WF8Z`+y_BN#FwTBQWH|#j4LtcQmwF^FWOUS6^toRu5Px8EA%k zD_7gSw=s(K=6i4Mq|lWuXtWHIeF4rry{-A{nt!Z0|G$Ry2C#RT#<`LFC(Ua#2OC=Q z^gp!n9LCYywmSv$&|lEs(r3WWOMgaR*8t-YpGm1=N?grB&?CIZ#V%%{4t;JcO7ocl2-+vkT z<@5|MBfgq~aYSlu5@!ZBD|@go-{o=t(#NBL_tLlIY4=##L|@65A~V z7=?N?+!CO^`8NQ3n?bkr72>xlzJqoHhk<1pV3PRGU<`;C!dc1iqy9ReU^^zS>dVD` zsP-f?(*I+U)!)(xB)Puj?%~p-!{z9AMr_?j|MJ%v3gjJ)1MbcXv7VNHS&Qd}}GYzx})1e2>>d z%dzAS2T~N2gR8WvH#L2I3vQ|_jBv};5v#`c{mR!GsQ*j7fB#W?>FcLI>3r){e0tAc z&!8;S>?Avyl5HswO2#_z)m9$&-FB?iPLIs_A3yqk81gLYB8&bHix78U8}kRN|3|PU z#^SvI{r?$hcq%5(Ay5C`QjQM|uxt8)Ye2!=h9sJQ%%tw}VV=Yre#}bXKg4dmG1gyiUZAQ9QdlSx+)M zv&_skb_HP(6>6ml710Nv5-*idkx&H^5)~4XRaJtAwr@yP;2{q@NV^kqZZj_Q&-f#A`(H;RYcu#QNxgxfMV@!A5A4xki3N64Hn^bkFxH zki@qvm{?3831#8E?wPg=LkZUg)I8SxC^5^tgVfQI)GhQkb4>V^+-Xei}lRfdMslcT88-UT$cV_DIj_chk< z?KT-t#B9csX&JT0C>1wKPa+UQA3r)irBFJWjym}ObVo&M?>(OXmr?d32K%vjR!fD_ zvCQvguKZ|p;oDbV{>`KBPA}bu_Wa}PrQE6YHPa7tFnX>TY?@ABRgA!L9nt4q$9HXW z-7Q~QFPP%thkD{%iQWN^n9{`jxncqJ4ai$8&)Tj$3_O-Yncu4t&w<`mj`M;;C))(9 ztUt?$jO-%}A?@6TU`3v$=qOEKV;DF$DSBG)yMnI@{#x+5;NJxASJ?8Cf(wE*!Dj?t zRbIkbe_fft6aJ)JQ-?!-l^$1PVV~7|_D;n#+ zLk02pk0O2R!6IyU9t!0N@8Q@duEd7|ism_CcUfn}KqnFjwSOe~*kxz$6r%%%*;JDz& z1dj_23+4q+3zh`GBv=u=ObtYNoi?aSHA=L?HM^NSJdEjr9z)?6{UOSv3VoE-qU%^) z3&TnD#2L5Rw9U^FZ|`Uu>*kh8b-&_zwpFImwjY>vS}tEQD*@$g!}q7-)^x_O9MUU+ z>qWNus(I0dF-`~NeBZ2>?d{X%_L5OIa{=~qxfz)8hEtZ^r=eil#&*f7IlX<(o1Txs zdmHjiJ7{`+23zxts#!O@%YFK|jcw1WZ3ewfD;|PV>C=#R>kY%%?(KmHUbJdWPf|l~ zbHVg0p4H&U^fsEnXTp4Ha*j*b_O&&B#honMY%$; z%84u3=GGM?mWtIdY!*5Vvf6q$Br*?$Tzh3pW~J$20KL<@*kOG$xR7sp9v;$B7X6~L zisVSee?FuJyDovZ29?Yp*J#*LUZrR=(kkY*XgMa)?mA9i6KBXIk7zGT4df*szboWI zS0y^YS{qUYEjG}lI;@%$guV9VAT`ipiA8|gB?qUN9?GGA9kPSs!`{OPfsBjv`#$}S z;be{8JTUX(S!eN;=O6#;jUQfplLmkB^!oXIC$2w-45d7j8PG^cXo`|yP?MUfsA_`G zUs_8j8Bh}Xu_7CforR4GLmE4WZW+9lGP}})W4W<8HN(Gw)L0H>PEDz5DwC8`oI)C8 zCK0{c!P3LbYs~dh`wkGcT*$lL+?FYaSkAm@>Q$THMYtgzCM_%6J@{XYz<}JDu~k|b zOb>U$7T+m0!drE0!m7MWaldF`L-KvE6>9{G-S>5(SNiCAU+(nLbN_c3x`?fDm+8{6 z5bAHekA4u%8ZJRM_=O+Q;5_b9VK>oCVRDbO8&N-)!+o766Vc$n32^7BL>GW_v z_v{knBJdP=re7ug{P)lwg$@tj#FZ(mKPRo>|0S`{2{qd>X(*41P22MVT72YA_M?H3I)1Y46O_TT+P3Fm>%qEX zGmU%C6v{Ns&@nm*?ig+?Gjtq%v$!EC5}7bpJMhDfd9x-@#uY>|wh!b;>L^<%Sa0!j z5qwR0vRwo7VNYwc318#$>DYylucBWa{XDuX(FtuA#HZzG430ee)Se$pVWd9Dw=m8t z7{|q1riu6kv6+R>%1Z3IZQdKfJH@Xc{d4f1-;i~zzKz*y*m>QnaHlaQqZnmTE3z+f zc(JegQ!6~#trmep!H-pdot+(M@PPq;{GmZAAb)eX&G7Hil`d)|3SHDl;2|CQ%RRXh z3~-3YvvGQ+H-3w4T6+8KV$evu8K*ahy272k>(%UX2f_}vTkAhp1~7g){!HHI{I1hb z+WUM5e1B^3=H`tZRzR?Kwa?Shc8$U|zbww&`j_j4aQWsJ!)2L&BOG`KUUm^5wN{tr zLkNl-Svjj59hEeVGjl@Tuqus=gc84BW3SK;G4MT;|9S+p@LSIme + +
+
+ + + + + + + WinNT://mylocalcomputer,computer + + + WinNT://mylocalcomputer,computer + + + + + + + + + + + + \ No newline at end of file diff --git a/SAF/Test.SAF.Authentication/TestConsole/bin/Debug/TestConsole.pdb b/SAF/Test.SAF.Authentication/TestConsole/bin/Debug/TestConsole.pdb new file mode 100644 index 0000000000000000000000000000000000000000..fd9c08c4391e4a4f681cb7d822361f8086bf40c6 GIT binary patch literal 13824 zcmeHNU1(fI6rN32yGfI^S7RDe4O@-cHtF4;wrMFsEZdZ9+Zf9R6dNd;&0TZp=C16$ zp+<@<2!bG*hk}SGmV)%bhd%gJC=@K>Lm!HL^vwryzl z*+wm|*RC%6e_3F@{JM(QzWo3O#EZZ&6mT3Y73=@WJm*@VsWB|D^@muXgjc!v)MxJ) z*S`+Xf6Ji&Dl=9nPFxhiSvFYa7PzLyu)y7$cW=^P`}jK90~2m0H{n^X zXCh%{X1!_4@$78IvkQ)tXA6#7$XgTHe8zR-X4dtWb>&*sDY<;8jOLANfy(@U|C8}> z@M?hj_2rP7_li?j&;R9E@V~9gJ-I1%@+c<0q~k!cc)i%**q~~1EnqeKJ4<0rTE(#%KxvXQ3PZzDslN=Lx4Cn&uFz5{#;d;q)vz6<;exC#CqIP6s7xI!DHpva0KQbDl|hy#7V zb4#SRz`sH9J9I;U-y1(2L4FUQX|V;km+xtf-rfvxJ0=4CNW1MVbFfuYq)rRUM|G;` zq6V-4zuReQJ`41Uuw2_P53wvI$42{44m)0P?&Qk_+wu4f_gPtv^$Kyp-vD%p9aXZ} zV2s2?vH6J0h$d};rnNu>Yd+`pgGlWSI0-_i$F+K$t=COI|LJ4i0r1=p>~9l4_wkN~ z=ZOe_J-RpqDB}Iz6EgGb6(#d;2deJ}R0(-VT*RQ6M(P^C@e}Jz@t7m2>I`QltjIKXMMO91~L0AC$UoB&F|2*9(fy3^%2p$=olWWJC+C8BOI8_n5y z%Z;wcuxyDZVp{b8K;rg-GIeuI8S6a_RE7?PnpSCn$DrR0DF2`Er^q7zZ%6r?m{Zkv zKpYR$rI)Jj`RN^wk9zmKDAv><7C39h1Er773~^p3!r$*b{e>~|!Q1D*9rz>u(j;Wj zW43cD<>U$?>SSgt*Prgw_;6*+pe>*+pe?YzEbupNxy%Lt literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Authentication/TestConsole/obj/Debug/TestConsole.exe b/SAF/Test.SAF.Authentication/TestConsole/obj/Debug/TestConsole.exe new file mode 100644 index 0000000000000000000000000000000000000000..f4a70ce36863f25a3e0805e8658e7bc6ca164b7b GIT binary patch literal 6144 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 K=p^-gNBLm!HL^vwryzl z*+wm|*RC%6e_3F@{JM(QzWo3O#EZZ&6mT3Y73=@WJm*@VsWB|D^@muXgjc!v)MxJ) z*S`+Xf6Ji&Dl=9nPFxhiSvFYa7PzLyu)y7$cW=^P`}jK90~2m0H{n^X zXCh%{X1!_4@$78IvkQ)tXA6#7$XgTHe8zR-X4dtWb>&*sDY<;8jOLANfy(@U|C8}> z@M?hj_2rP7_li?j&;R9E@V~9gJ-I1%@+c<0q~k!cc)i%**q~~1EnqeKJ4<0rTE(#%KxvXQ3PZzDslN=Lx4Cn&uFz5{#;d;q)vz6<;exC#CqIP6s7xI!DHpva0KQbDl|hy#7V zb4#SRz`sH9J9I;U-y1(2L4FUQX|V;km+xtf-rfvxJ0=4CNW1MVbFfuYq)rRUM|G;` zq6V-4zuReQJ`41Uuw2_P53wvI$42{44m)0P?&Qk_+wu4f_gPtv^$Kyp-vD%p9aXZ} zV2s2?vH6J0h$d};rnNu>Yd+`pgGlWSI0-_i$F+K$t=COI|LJ4i0r1=p>~9l4_wkN~ z=ZOe_J-RpqDB}Iz6EgGb6(#d;2deJ}R0(-VT*RQ6M(P^C@e}Jz@t7m2>I`QltjIKXMMO91~L0AC$UoB&F|2*9(fy3^%2p$=olWWJC+C8BOI8_n5y z%Z;wcuxyDZVp{b8K;rg-GIeuI8S6a_RE7?PnpSCn$DrR0DF2`Er^q7zZ%6r?m{Zkv zKpYR$rI)Jj`RN^wk9zmKDAv><7C39h1Er773~^p3!r$*b{e>~|!Q1D*9rz>u(j;Wj zW43cD<>U$?>SSgt*Prgw_;6*+pe>*+pe?YzEbupNxy%Lt literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Authentication/TestConsole/obj/Debug/TestConsole.projdata b/SAF/Test.SAF.Authentication/TestConsole/obj/Debug/TestConsole.projdata new file mode 100644 index 0000000000000000000000000000000000000000..e9341de7f3bdc8e3687806fc396994353725e766 GIT binary patch literal 2312 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 bKb>M%=o_T}G%?Nz?*6?YvXy+?N;LilaQBF4 literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Authorization/TestConsole/App.ico b/SAF/Test.SAF.Authorization/TestConsole/App.ico new file mode 100644 index 0000000000000000000000000000000000000000..3a5525fd794f7a7c5c8e6187f470ea3af38cd2b6 GIT binary patch literal 1078 zcmeHHJr05}7=1t!Hp3A*8IHkVf+j?-!eHY14Gtcw1Eb*_9>Bq^zETJ@GKj{_2j4$w zo9}xCh!8{T3=X##Skq>ikMjsvB|y%crWBM2iW(4pI}c%z6%lW!=~4v77#3{z!dmB1 z__&l)-{KUYR+|8|;wB^R|9ET$J@(@=#rd^=)qs85?vAy(PSF5CyNkus435LVkZ$rj zNw|JG-P7^hF<(;#o*Vk}5R#e|^13tBbQkeF?djULtvqyxd3<{9 literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Authorization/TestConsole/AssemblyInfo.cs b/SAF/Test.SAF.Authorization/TestConsole/AssemblyInfo.cs new file mode 100644 index 0000000..9f89a32 --- /dev/null +++ b/SAF/Test.SAF.Authorization/TestConsole/AssemblyInfo.cs @@ -0,0 +1,58 @@ +using System.Reflection; +using System.Runtime.CompilerServices; + +// +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +// +[assembly: AssemblyTitle("")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("")] +[assembly: AssemblyCopyright("")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: + +[assembly: AssemblyVersion("1.0.*")] + +// +// In order to sign your assembly you must specify a key to use. Refer to the +// Microsoft .NET Framework documentation for more information on assembly signing. +// +// Use the attributes below to control which key is used for signing. +// +// Notes: +// (*) If no key is specified, the assembly is not signed. +// (*) KeyName refers to a key that has been installed in the Crypto Service +// Provider (CSP) on your machine. KeyFile refers to a file which contains +// a key. +// (*) If the KeyFile and the KeyName values are both specified, the +// following processing occurs: +// (1) If the KeyName can be found in the CSP, that key is used. +// (2) If the KeyName does not exist and the KeyFile does exist, the key +// in the KeyFile is installed into the CSP and used. +// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. +// When specifying the KeyFile, the location of the KeyFile should be +// relative to the project output directory which is +// %Project Directory%\obj\. For example, if your KeyFile is +// located in the project directory, you would specify the AssemblyKeyFile +// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] +// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework +// documentation for more information on this. +// +[assembly: AssemblyDelaySign(false)] +[assembly: AssemblyKeyFile("")] +[assembly: AssemblyKeyName("")] diff --git a/SAF/Test.SAF.Authorization/TestConsole/Class1.cs b/SAF/Test.SAF.Authorization/TestConsole/Class1.cs new file mode 100644 index 0000000..c61a4b5 --- /dev/null +++ b/SAF/Test.SAF.Authorization/TestConsole/Class1.cs @@ -0,0 +1,63 @@ +using System; +using System.Security.Principal; +using System.Security.Permissions; +using SAF.Authorization; +using System.Threading; +using System.Security; + +namespace TestConsole +{ + /// + /// Summary description for Class1. + /// + class Class1 + { + /// + /// This demo show how to use SAF.Authorization service in the applicaiton + /// + [STAThread] + static void Main(string[] args) + { + AuthorizationTest at = new AuthorizationTest(); + //attach an principal object to the thread + Thread.CurrentPrincipal = new WindowsPrincipal(WindowsIdentity.GetCurrent()); + try + { + Console.WriteLine("Enter the MySecureAllowedMethod: "); + //access the method + at.MySecureAllowedMethod("ok"); + + Console.WriteLine("Enter the MySecureDeniedMethod: "); + //access the method + at.MySecureDeniedMethod(); + } + catch (SecurityException se) + { + Console.WriteLine(se.Message); + } + Console.WriteLine("Press enter to exit"); + Console.ReadLine(); + } + } + + /// + /// It contains the methods marked with SAFSecurityAttribute tag + /// + public class AuthorizationTest + { + //with the SAFSecurityAttribute, the SAFSecurityPermission takes over the task + //of access checking of the caller. + //Refer to the "SAF.Authorization" configuraiton file for more detail + [SAFSecurityAttribute(SecurityAction.Demand, Name="MyAssembly.MyType.MyMethod1")] + public void MySecureAllowedMethod(string s) + { + Console.WriteLine("it works!\n"); + } + + [SAFSecurityAttribute(SecurityAction.Demand, Name="MyAssembly.MyType.MyMethod2")] + public void MySecureDeniedMethod() + { + Console.WriteLine("it works!\n"); + } + } +} diff --git a/SAF/Test.SAF.Authorization/TestConsole/TestConsole.csproj b/SAF/Test.SAF.Authorization/TestConsole/TestConsole.csproj new file mode 100644 index 0000000..05efa56 --- /dev/null +++ b/SAF/Test.SAF.Authorization/TestConsole/TestConsole.csproj @@ -0,0 +1,106 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SAF/Test.SAF.Authorization/TestConsole/TestConsole.csproj.user b/SAF/Test.SAF.Authorization/TestConsole/TestConsole.csproj.user new file mode 100644 index 0000000..1230d38 --- /dev/null +++ b/SAF/Test.SAF.Authorization/TestConsole/TestConsole.csproj.user @@ -0,0 +1,48 @@ + + + + + + + + + + + + diff --git a/SAF/Test.SAF.Authorization/TestConsole/app.config b/SAF/Test.SAF.Authorization/TestConsole/app.config new file mode 100644 index 0000000..d154149 --- /dev/null +++ b/SAF/Test.SAF.Authorization/TestConsole/app.config @@ -0,0 +1,26 @@ + + +
+
+ + + + + + + + + + + + + + + + + + + + + + diff --git a/SAF/Test.SAF.Authorization/TestConsole/bin/Debug/SAF.Authorization.dll b/SAF/Test.SAF.Authorization/TestConsole/bin/Debug/SAF.Authorization.dll new file mode 100644 index 0000000000000000000000000000000000000000..ef8866c4b19531ceac56b8ebb06f2f2a15c2fc67 GIT binary patch literal 7168 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 F{ssMqqSgQa literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Authorization/TestConsole/bin/Debug/SAF.Authorization.pdb b/SAF/Test.SAF.Authorization/TestConsole/bin/Debug/SAF.Authorization.pdb new file mode 100644 index 0000000000000000000000000000000000000000..a479ec12e8e6b1cdc889b036ca41840f9580603a GIT binary patch literal 32256 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 F+`F2p2oW_b=*d>E?6#=Vu%)%ND-R)V` z$Li*3cF`*ntr_%lsFLnUJ;c$@`nkH*q=peI|>66@TCb)f3-+B$q` zRZq}$RnM|S6-B;ZeM-=plDi$8r)keNY^5C09+nie$ZpJ;^R&&QH~W}lk25)mR-TSv zM58=rFK3k3mNgoswEnNoMaz6&v&Vf6E-$O$s11u(dpjgf&@PFZg1||!C&xH4Xm#V2 z`jtSex?}=2Nr~qA=bPHbSqpVFg8r?kYGN`XZ&N2{|F#)R=!U_;pM7S9b z6SbFl&XXZi!y}KhlzB4#+yt-y7b0l=p>3@aq=3)z*}@_ z43GOSRS*N*PE_$=%m06&D(%3SYQ^dHcdWF0O?f|L2?Pke{{wk6M6# zw;;Ulrc<>Fs$aZ@8_>DmHr#g{#J`&%@%?Ksv>DC4sKo~WCulcXQ>e;2flmQWqRrRy z;dlQ-y$RIl3#Z?UaGRe$CtUoR$~`+ygJVNDF3*Zz`Z8G z<5P4V)xJ`Hy*`7|$DfaPi=ylweC`hF$?~@17b>ly+g|i_(c3%!fWHyvsA1e2={mX= z|CKOAn`kpWTkxivukH9{Llf(${g3y#Y(S&xNrX?kyr(Tb+YRA_#wT9>w?kg{cIc26 zDQtlP*2lY88fOpeKw<;6zG^?^i8+kRVVsN823t$@oe}+Zc{2Dc!ut8PVN7-|cuJia zFMS5B>ZyF7_T4$00C=}s?1OQ!Yi*y!*1eo(8$LcNX|h3irG@ literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Authorization/TestConsole/bin/Debug/SAF.Configuration.pdb b/SAF/Test.SAF.Authorization/TestConsole/bin/Debug/SAF.Configuration.pdb new file mode 100644 index 0000000000000000000000000000000000000000..133332a06f92e8eaf9368d1d10dc3fa84f35d860 GIT binary patch literal 54784 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 m56JTA29YDS5l%G+c2nSOunW7 literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Authorization/TestConsole/bin/Debug/SAF.Library.Security.dll b/SAF/Test.SAF.Authorization/TestConsole/bin/Debug/SAF.Library.Security.dll new file mode 100644 index 0000000000000000000000000000000000000000..cd06a4532d17dee1de02875bebcec7e270043169 GIT binary patch literal 3584 zcmeHJ-ES0C6hG4sY(WaB1c{(i3kf7TwzhyE(Oq`=XeqRIY87olXJ;?lp|dlaJG030 zVERP#!D!-(F%t2~7eai%KunC$sKgll0)6O%CO(+xgCWre@psP5qzk)I@qrlQoxQ(% z&OIOZoOAEo*&{E!L7ha@g?{4((G`r`a)N&jixBrc^idyO>b=%~#TdWVKRxe7W=)3` z?Nm+I34$;-OUl&s!1MyMIANRBu&k`rt5O8aF!W(fP4lIz>y=*T2eGL4==l z4AxeFiJn6zS|@Zz5;sq9{L&VInCHfM5v`Tq@|dzBBU(Zrhndb1y_FcGl606Ox*O!A zNwg`Q`db6^dzut`z#nSjtyrCo!H;wUAd@`PxWP#?iRLUFX&0QtmIJ|wHaiB3>71pN zA3~91r8#u=B@D*2<%srWbT+Q#x}tGxZ1TB@Jh6rW`k%IJFWKL7=)Q>#X38$wYd(Ab z>-Far#xCvp@T>E?H(c2Xd1242oj<_c8uv=t(GAO1Ze4qEV>T?EoGq$Sz0y`})ygF# zWsmJM(ug_bQ$yCEHN0zZ2WT$X9Pkw+H1IOf4;X)8+K#msR3g^+wlg^s0|%cSErS0M z{2<1GeSQe{(qLj7Tu;=?+;7G(7YlQ=8Xct2JTkv3#h0onu1>Ok~m_e9DW^bJ%ykb5t^M)%<5 zVcZDZK>b2*7aS7YEtnS^6?{hUn4lx*0XLC_Odkf`EBJumu;7z|1;N9Dw&06`uHXV~ zqproIa@V^ro<;CzNe)EcrDwO7jwJ%dy+^`w-B(XhyQ5;2eV<12^>{wi-WezM!eCN| zr@XS#ZS^TrRaA}KQ2Snq>_!x;sx_rf_{wDul#e1+E%}YZs&Uk*s(g%NQ>w>`EH@5y zv-p7LH;FU5qVk=F?Nx$h%S<$*bc7{Z1%KZDU?T5>Ta$r_-V{h;KpijNpdm@4_bBr3Mw?uZl;( zI>su=(c01^tI7HeWb23?FK(hgB05>*MRDWX zr3rD}e!R(^Ou~0aW#r@{!dv&GD0RMB=hkZfRjm(+k36!9B*zjmXkf>0*N+tWPJx;H SO-%nR-KkaoU*}&^fjV=uN^2wxGC?1%Zlx@dj z#(t3zrWn)6CCJwCK#2F8`V9dC(RW`#Vg~FFiGx?6`0_UTZ2~! zEdwY4L$|&~fDV6H;~uiu;?E1@r^)8Xbg~Fplq^Q3FqsS>|L6fbbo@QWvJv*ViJSs6 z0qZXCpPn|pp7FZzkqrV&IV$i>i>d?$@f>OwAQ+-iI@y$`5LAP0IC{2p!?uF zi&KhuR-6>44LfoapiSnH;T||R|BKmw^cnmA6F>v=WVp*ftukr=nqQ^T75N9tw8X^y w58Q}5ANGc!{*iZdCJ~p6c}FS%=wHVAhX$Z+#4l^@Q|Riy8<3!&7?6~KA1+Y~UjP6A literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Authorization/TestConsole/bin/Debug/TestConsole.exe b/SAF/Test.SAF.Authorization/TestConsole/bin/Debug/TestConsole.exe new file mode 100644 index 0000000000000000000000000000000000000000..3bcb9e8b908801006663ccdad97a0c488d97c9e8 GIT binary patch literal 7680 zcmeHLZ;Vt|6+iFI>>n1G!U7d+t8ZDfTS~@VpcawR8D?Nv*oBo@wjyib&CFx=l{fRo z_uiBpOmu9N*hHK5gC9&Ru?C|?O{~$hnpD@M@l#vfC4??dYG{sq_?I#I*{auu zUeYFC8=9H7eWUET1mb_@~S+t##f)gWp%*N^()rVjDIS_n|T5(7b-U<+}hCdnW=8~1!K zhniqZfEhp@L~cq6ppSc&<3dr~bry|ms|_&p4nW$HYV21e#>QQ)V4UBF5e+;tCgJwd zJ)=6ER(;p|JuomZau-1RaQ(o@dJqp*%Oe=UK(B|nFT0qfUhn9V&_yKnz8PEH=WgIG ztoSB*U$3{1Y=q#W+ewqT+(h^9quAXF?h?=qqZ;*vHGO0gI&3GFtqx`0&+FEfm$%#C z?)5ljU(F#OhQAJD2q!Y>%(mbC_{qP1ck_`SK7aRfJ3hbfSM0;o-nmTj(AHG*-D{V8ZYOwbRcu&fF?7d=J$!Q_-K6B!=n$u zK2Z-jpbG#r`~{-7Q0@bs;Y{G!rGn2I24?Y9l*1=8^yhF{4UeCkNJI7>>OaCf4Igma zEGr`cw>ExKr&U~eSKGyb!DHEs4AXd`iWT@>;tkCrXC3C@@DOb;ZKq)b(PjD?=!-&s zFZ6ApQH|yI3Ed+!Bh(T46`@yz{zmBA+8fvxZfI zgh?BDyhE&cDRBX95!$S3qREfbXi&VjH?kh25 z5Im_QZ^@R#{0AXXvVZiva7ik3O$7{scFN6H9BV)EQVG{Y+*+`x=;vI|v9pw^`hiuX z4BZE9ItY=)*xyF~F^;CeJw%~-jLXC)oSy?NUk zQ2c~-&cTzgPATd8Rx#^Tk6P7ZX3@#b5K8$xZ zq$*CpNIRY~e+?)ptEV(gJ*MH8d7etY?i8>J>dRxcA?_QCe_)T zw)~uDm)SF&jWc%8?1#{oY1=H6TtBdLKFKCmFtaUcGs&5G&oc83gQkbwE9@>)X9v~z zG&Z%IT{azh%r52K3;smjDg|hvaVtnwJP);cQ$shjqMm?VkrYQ04He%C&V>CN!Y~Z! zG0zUHNxNjx!G)Y91E&HyOj*8f7A!ge;L_X%m+H71-8#+yf~2n27<`+d__XB}ZJ)yh zKH)gVkdrDlvBjqjQi%ex$ioT`XdawFQ`jRi;Br)f9HEMH!XcL~fJfkivZf1uFSM!0 zrSn9|Td|Zz-xAr~?c6^tPxG&+)G@1tp8^r#3-jMxU6l6Z}=<=`(<$H!c8~z=@thAT2$Xc^)_{V@@6nTsuqMh_{aJy(XetRHc{S@#yz@%dH z5qRAa#2%13qA`tn7QBslIEvOP&0u!UgDVm1bAJau`p>>S32j~hJbUbo97Xk;CNu190M$!K`ui})tc8C&*;a(Io$`Yo5y)pf>38AKGoi( zR#-Q0t;A>Zp7MU6xUEh7 zHz%RPg9%fAWH-23oPK9O58@3cLlgK?bPV+g&_n905xpG!%fA#Jjm%Z=;MG`_kA`+| zEeX+v0u=n-t--2^v*!@bBL{o_1kR{)INvyJBksi~lL@Jh_QvTg3iOlcyv{Z<;fYqF zLKjPE(HX@#tbV(3PL0CAy_h`>C$Ni?i_bH@JMxDD19@9hTUnl8#c0*Jhi1{)Av$&B zd>iy}rt-;Jh9z}}s_WwO44zfjZM`M1PU}74VVs&faZ4D5oG5|!R!uyk?vN$maGKD} z$dmCZD7Q8rlsy?oUO>it3(iUK1?kCpWt`58w1B%We}6NO)p#0u%JX^jE25veokC4? z4-2N_p$!|pV@&n&ag9C7v#0JGH^Zj<%y(tJfmh^C((dPk_^wr_-Gj^dFD?DsZz=6} zwdLnvBpi1Fr6zHS#f!M=o@#1k*J=a~89x?*EG{lWf)C92^M__BK>3^V4JPk5U1&+= zXu2hpqj*Ro{e7k0a0WQ| z|6Pv2eqZx5InMd4Gmz_Xz6id1s&R00V5}|z)Ul^{T*T#DAgZk?*}`Py`Z-h$y3l{@YMLw&>l P_WnDLWCg$-@W8(T;V4)b literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Authorization/TestConsole/bin/Debug/TestConsole.exe.config b/SAF/Test.SAF.Authorization/TestConsole/bin/Debug/TestConsole.exe.config new file mode 100644 index 0000000..d154149 --- /dev/null +++ b/SAF/Test.SAF.Authorization/TestConsole/bin/Debug/TestConsole.exe.config @@ -0,0 +1,26 @@ + + +
+
+ + + + + + + + + + + + + + + + + + + + + + diff --git a/SAF/Test.SAF.Authorization/TestConsole/bin/Debug/TestConsole.pdb b/SAF/Test.SAF.Authorization/TestConsole/bin/Debug/TestConsole.pdb new file mode 100644 index 0000000000000000000000000000000000000000..bd9959ae0abef4f66e0942a9ab9b620c5120063b GIT binary patch literal 13824 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 P_WnDLWCg$-@W8(T;V4)b literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Authorization/TestConsole/obj/Debug/TestConsole.exe.incr b/SAF/Test.SAF.Authorization/TestConsole/obj/Debug/TestConsole.exe.incr new file mode 100644 index 0000000000000000000000000000000000000000..6c2a022b154e4ec46b43f83b486a94a40984effb GIT binary patch literal 1426 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 J{?o(je*tmV@J9du literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Cache/TestConsole/App.ico b/SAF/Test.SAF.Cache/TestConsole/App.ico new file mode 100644 index 0000000000000000000000000000000000000000..3a5525fd794f7a7c5c8e6187f470ea3af38cd2b6 GIT binary patch literal 1078 zcmeHHJr05}7=1t!Hp3A*8IHkVf+j?-!eHY14Gtcw1Eb*_9>Bq^zETJ@GKj{_2j4$w zo9}xCh!8{T3=X##Skq>ikMjsvB|y%crWBM2iW(4pI}c%z6%lW!=~4v77#3{z!dmB1 z__&l)-{KUYR+|8|;wB^R|9ET$J@(@=#rd^=)qs85?vAy(PSF5CyNkus435LVkZ$rj zNw|JG-P7^hF<(;#o*Vk}5R#e|^13tBbQkeF?djULtvqyxd3<{9 literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Cache/TestConsole/AssemblyInfo.cs b/SAF/Test.SAF.Cache/TestConsole/AssemblyInfo.cs new file mode 100644 index 0000000..9f89a32 --- /dev/null +++ b/SAF/Test.SAF.Cache/TestConsole/AssemblyInfo.cs @@ -0,0 +1,58 @@ +using System.Reflection; +using System.Runtime.CompilerServices; + +// +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +// +[assembly: AssemblyTitle("")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("")] +[assembly: AssemblyCopyright("")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: + +[assembly: AssemblyVersion("1.0.*")] + +// +// In order to sign your assembly you must specify a key to use. Refer to the +// Microsoft .NET Framework documentation for more information on assembly signing. +// +// Use the attributes below to control which key is used for signing. +// +// Notes: +// (*) If no key is specified, the assembly is not signed. +// (*) KeyName refers to a key that has been installed in the Crypto Service +// Provider (CSP) on your machine. KeyFile refers to a file which contains +// a key. +// (*) If the KeyFile and the KeyName values are both specified, the +// following processing occurs: +// (1) If the KeyName can be found in the CSP, that key is used. +// (2) If the KeyName does not exist and the KeyFile does exist, the key +// in the KeyFile is installed into the CSP and used. +// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. +// When specifying the KeyFile, the location of the KeyFile should be +// relative to the project output directory which is +// %Project Directory%\obj\. For example, if your KeyFile is +// located in the project directory, you would specify the AssemblyKeyFile +// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] +// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework +// documentation for more information on this. +// +[assembly: AssemblyDelaySign(false)] +[assembly: AssemblyKeyFile("")] +[assembly: AssemblyKeyName("")] diff --git a/SAF/Test.SAF.Cache/TestConsole/Class1.cs b/SAF/Test.SAF.Cache/TestConsole/Class1.cs new file mode 100644 index 0000000..ab02750 --- /dev/null +++ b/SAF/Test.SAF.Cache/TestConsole/Class1.cs @@ -0,0 +1,47 @@ +using System; +using SAF.Cache; +using SAF.Configuration; +using System.Configuration; + +namespace TestConsole +{ + /// + /// The demo shows how to use the SAF.Cache service + /// to add, remove and retrieve objects from the cache + /// + class Class1 + { + + [STAThread] + static void Main(string[] args) + { + //get the cache object + Cache cache = SAF.Cache.Cache.GetSAFCacheService(); + //add some objects into the cache service + cache.AddObject("/WebApplication/Users/Xin", "customer xin"); + cache.AddObject("/WebApplication/Users/Mike", "customer mike"); + cache.AddObject("/WebApplication/Users/Steve", "customer steve"); + cache.AddObject("/WebApplication/GlobalData", "1/1/2003"); + + //retrieve the objects as a group + object[] objects = cache.RetrieveObjectList("/WebApplication/Users"); + foreach (object o in objects) + { + Console.WriteLine("Customer in cache: {0}", o.ToString()); + } + + //retrieve the object as individual + string time =(string) cache.RetrieveObject("/WebApplication/GlobalData"); + string name = (string) cache.RetrieveObject("/WebApplication/Users/Xin"); + + //remove the object + cache.RemoveObject("/WebApplication/GlobalData"); + + //remove all the object under /Users + cache.RemoveObject("/WebApplication/Users"); + + Console.WriteLine("Press Enter to finish"); + Console.ReadLine(); + } + } +} diff --git a/SAF/Test.SAF.Cache/TestConsole/TestConsole.csproj b/SAF/Test.SAF.Cache/TestConsole/TestConsole.csproj new file mode 100644 index 0000000..1a38ecf --- /dev/null +++ b/SAF/Test.SAF.Cache/TestConsole/TestConsole.csproj @@ -0,0 +1,111 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SAF/Test.SAF.Cache/TestConsole/TestConsole.csproj.user b/SAF/Test.SAF.Cache/TestConsole/TestConsole.csproj.user new file mode 100644 index 0000000..c8340ea --- /dev/null +++ b/SAF/Test.SAF.Cache/TestConsole/TestConsole.csproj.user @@ -0,0 +1,48 @@ + + + + + + + + + + + + diff --git a/SAF/Test.SAF.Cache/TestConsole/app.config b/SAF/Test.SAF.Cache/TestConsole/app.config new file mode 100644 index 0000000..2c3cb73 --- /dev/null +++ b/SAF/Test.SAF.Cache/TestConsole/app.config @@ -0,0 +1,12 @@ + + +
+
+ + + + + + + + \ No newline at end of file diff --git a/SAF/Test.SAF.Cache/TestConsole/bin/Debug/SAF.Cache.dll b/SAF/Test.SAF.Cache/TestConsole/bin/Debug/SAF.Cache.dll new file mode 100644 index 0000000000000000000000000000000000000000..03bb8cf40d9044f276bb3c23fbe0e8adcfb3ec13 GIT binary patch literal 7168 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 JL+@P${sye4&cy%# literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Cache/TestConsole/bin/Debug/SAF.Library.Security.pdb b/SAF/Test.SAF.Cache/TestConsole/bin/Debug/SAF.Library.Security.pdb new file mode 100644 index 0000000000000000000000000000000000000000..cd2d5d76aef6a2aaec27bdb22b846a7684f99a80 GIT binary patch literal 7680 zcmeHL%}T>S5Z?ILrdp~85pycyt=gog){}>dpjZ&<3)D2lQcWOLd=amLHxFJF#FKav zU%)relf@TkoX_l*QWPp)nsh$+cCyQs?tZf~nN6i>`(E2?oMy{rIhV^;s@vIO-m=mu zW2-6%6GCWYGQ6|mmMc=NpV;9M_gCFHSrNiw#QQ3I3Sdm} zdq6hf+4y)wcl{yXJ3HM@w}V;{3>!Q!Mp=QM@;}Z*fBr`wdlQ#hz>l;##1+u6TQ5jClG5iB#)D*zCJd5ZPaSt4< z|5fdeT%drQF-yc90A7ZN)m?zSOkzX`@Y_C7`5!*U^40whK2~==%;orp2=M{p_%HE~ b*vFZ`?>P2JgouN`-9+4hynI&R9}0W{699Dh literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Cache/TestConsole/bin/Debug/TestConsole.exe b/SAF/Test.SAF.Cache/TestConsole/bin/Debug/TestConsole.exe new file mode 100644 index 0000000000000000000000000000000000000000..9a0d25c7f91a00f5c83e4b605a47e5755e864b6f GIT binary patch literal 6144 zcmeHLUu;`v6+idJcC!94Nz--d>c9;NC~cXWEGg|u)!DV%G;7*~IL*q4)Lh$No!i>J z=H8o<3;`Z0h)D=-nuG+Cka&X!rcRnfg)}Wflh^~>8-h(d6m1U`Jn#bQ1cLHA=U&g( zv)45sR0;JY-|su;eCIp&eCPX{oO$Xw>LQ{D%I(`k*HJU21n&%WG{-;n%Q(IAz?(zY zwV5}E7FI0Rs5y4YF)K#FtX6H$$ScEHtr}L<$j;`Bid|I6?c2AE1g_^!5Y1>^^zzT2 zNChgoL2+%X79-jM%{E_qY%gj9C56IZpwj)g!AbmFQym3*CLR}2ulzRaK$JG3o1;WI z=2JxHdje&+TJ}RYJVcZT>pzY+h{EoAAfF2LNqTC{gPeT;fHoOx5H}2bkSMIdc?EH7+~ubjXR4b>1CN49*c|nb zb_^+2%V_Aacc5joAJ7+j=zM>yFV+|RzV+xIVh;PUccQ_AiMHJjq^anS1SSu{ zB<9Fhn00;#x1-42meGd*pWW9#rV&yiq>m0jw@>)Sn&rGLa2Z0uqMOfUbFW=}_h*0p z+w$x)Z+AWQgULVsZV%csN0xHwlS>QA^^#zc8MCmWM9kP#*Dk9iJAY{@tMaR*ur^sM z=IMCuiQ}5gia*C!#*<^oi9=&ZD=123-~a*{{sz%i)J5iVo?}%@E?eBh27dz+F?=pZ z*D$M?2^yX{H=RYj0lCid@v@yq%>+|z>Oq}&dD7pt30@q~5i%+31fs~uhO9YWDBR9^ zBuIE(KKp1GXwoe3X~7o+UlRPa;0?il2=3C@@_^te!II!r!I!ibaW4Ey8^#yj)7}9; zth4_tkclH;EF0t%4cB(}Fp{FAEj~FVhv8rwde|i*$)96sh|e zx)r^K@iQGp;at5JoU$4{%xcj!t=?f1rlV)<;%ZqPBVNM6noX)TMHRPTJ7p_Rxpmi5 z6`IXoQU#APWz%)X!`5`hw5pUWc(xPRCg;_~GK?*|N@>?sm3(>qv|2xFR#e)<`pvI; zD%^0=DtBnes;evs(66oes_x9J8n@rgOPNAG@~hSfv%Oy=l%t zata+9GIphAR@d8mAcGgJ(yC+f;M<$C$}Kont#jjo<%RR$=RKLV%u>~MJ*(i7oFgSO z-(t3qURZIIS!{mIbZ|g?a2k=ENi?NAsD#fc=ZaOp6cmfWtj;S;i@KtGamI2zTCn}2 zhJr;wPdb*TW~{2BR%;6E=2gXRcz}sn6kA?n69?!?Qk17O)^H8ynuYail84%+DjlG6 z*cpl(-~l=hZIx(ufmR`Vu&79zL2G`?!OeI(gFcthpZ2u-t2EjUZN_5`F)8dq_#ABa z$q@&w9~^#NDn3w@%Uh(rzB}%}u`C1L~O~8uh!0W(}iyd(~{3i-pl+*G*CuDZ8iD+I!0^Cxr%17`JC7^ zBG1aHP>?uk@YIZx{T-$4_*TPqQO*oEWHXM}%^1o!9mFYiNVr4vdHxio@D9=>GyYjq zMI7Z&Gz;=&JTov7&XX;fOhUVcg87y>XTX=FC)?HVHsg$ya8B{xUj~Xlo~E6j`6BvN z(9gl0AWvwqJtZ;C20l3R98+U_EOAD8_V}#)=-B)`^O5$A9Lwja)ON^;j~^WhBM zDSuh%pGF*fV^%QxWsKgy%Jc8f#!TJG$7qnF6lzV@B{nbCRcEUEJG)*da47g;6<}jy z0~-8;0l)l@2C0DjKZn~4|1EvBg=&#(3)Ld{NR$40Uv4G?9P;tqFkNlW-%NwfzV+6$ zSBv~6Ot0e~8DUCodNy0afv|z)R{!6XF8J>bf0Nfa-*pB`W1Vk+?@V=G+`O>;3J7*n z>%2Qyu0htOW+j;S|Ks|UKYdd({ + +
+
+ + + + + + + + \ No newline at end of file diff --git a/SAF/Test.SAF.Cache/TestConsole/bin/Debug/TestConsole.pdb b/SAF/Test.SAF.Cache/TestConsole/bin/Debug/TestConsole.pdb new file mode 100644 index 0000000000000000000000000000000000000000..8d6d20db9c90b29db523b8907499c10e2a7a4927 GIT binary patch literal 13824 zcmeHMUuauZ7(cg-F8w#noLQGiiL=hF-ENZ6wME1_t}QJtbQ*nd6t?u5Y;j$#qm}1-s<9PQDzs5>|hIJe?Vf51GkiS9|Q?i~zOBpV)%nCB{LUe5SumAc51@ zept}7b|uhlbg$jP>ya-!*OoGd>Bnvl0M;oM7U1^%G;&Q%D}njxM@K$fcQJA*BhF90 z-ZFb(^pRJ8`u^j{sS!Wk@!E?ABKeDvvwcF$hbPW1Cy0O3l(yqfqChKfE3g4*1KNRG zfDWJ&=mORQ5rFD@8?X-0bn_Bu#QCQ#EvExv3@rp`9k}^9u2pg=|4;c>`+vsS#$sNp zU7feOBrq3rSMkNY-wB0y2-t@V>cL9vlRjKiV@P1jH%Y@oSH9|d{*$f~9~iMZyJes} zeTCwz&M@_ZZT}ITEsh6iy8@mA*VGsixPJNiWzLt$?%4NFx!L?wIp>y51WY??AIZt6 z?G#;SCO2izWL-C9+OEF}b4E#Qfh1QAKd8T}LITSE=dXV8r4hPd@Sd+8Qg*L6>oTnE zzaA<6e`UFsHbozgP~uEr#&cEOK@yK(zJ;f=g(AXH(HddBH<9@fGeNA{E_x%G<8C>3 zjOQ|h_l}tsT?q1`D()2Xg~QL5vgLxqwqlh!rnM+bw(&T85i;m}M4yO9xOae;k^Q9) zvNF9%pN3Q*i6XKrJB~Bt5@m-~*%Zsh&@MT~6qJQ44EoJHj_t;O3gJvYowLiXtj9Ad z`c$b`E*z7~8|zU<)p^CNpGWx(Any${+zT={2uUGaJ1!}0p9`sE;!`ly$`+NU1rH@*FHj`;?_b3fkLhTFxDy?k4l0^$Jn-9o+(gOj-D-z-DFo|gzEv6Qnin?S0 zqw+Sva@184$ELV{&hcBT=X|8@$AZ6+?aB`u_i3B_BR_m2f0cx&;5^&C18|->3@~{n z^}xpgp1IXqEZ<>ShdyI^#<7ozgj=!``NB-jP1GY;Hh>+6R0tdjC2?25w5cAK{x`zdt8L$3>i+vL{SJK$?i&B%XSgQS@-g&7n*Lq_ X+|Oy!63`OR63`OR63`M@TN3yaLZXu` literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Cache/TestConsole/obj/Debug/TestConsole.exe b/SAF/Test.SAF.Cache/TestConsole/obj/Debug/TestConsole.exe new file mode 100644 index 0000000000000000000000000000000000000000..9a0d25c7f91a00f5c83e4b605a47e5755e864b6f GIT binary patch literal 6144 zcmeHLUu;`v6+idJcC!94Nz--d>c9;NC~cXWEGg|u)!DV%G;7*~IL*q4)Lh$No!i>J z=H8o<3;`Z0h)D=-nuG+Cka&X!rcRnfg)}Wflh^~>8-h(d6m1U`Jn#bQ1cLHA=U&g( zv)45sR0;JY-|su;eCIp&eCPX{oO$Xw>LQ{D%I(`k*HJU21n&%WG{-;n%Q(IAz?(zY zwV5}E7FI0Rs5y4YF)K#FtX6H$$ScEHtr}L<$j;`Bid|I6?c2AE1g_^!5Y1>^^zzT2 zNChgoL2+%X79-jM%{E_qY%gj9C56IZpwj)g!AbmFQym3*CLR}2ulzRaK$JG3o1;WI z=2JxHdje&+TJ}RYJVcZT>pzY+h{EoAAfF2LNqTC{gPeT;fHoOx5H}2bkSMIdc?EH7+~ubjXR4b>1CN49*c|nb zb_^+2%V_Aacc5joAJ7+j=zM>yFV+|RzV+xIVh;PUccQ_AiMHJjq^anS1SSu{ zB<9Fhn00;#x1-42meGd*pWW9#rV&yiq>m0jw@>)Sn&rGLa2Z0uqMOfUbFW=}_h*0p z+w$x)Z+AWQgULVsZV%csN0xHwlS>QA^^#zc8MCmWM9kP#*Dk9iJAY{@tMaR*ur^sM z=IMCuiQ}5gia*C!#*<^oi9=&ZD=123-~a*{{sz%i)J5iVo?}%@E?eBh27dz+F?=pZ z*D$M?2^yX{H=RYj0lCid@v@yq%>+|z>Oq}&dD7pt30@q~5i%+31fs~uhO9YWDBR9^ zBuIE(KKp1GXwoe3X~7o+UlRPa;0?il2=3C@@_^te!II!r!I!ibaW4Ey8^#yj)7}9; zth4_tkclH;EF0t%4cB(}Fp{FAEj~FVhv8rwde|i*$)96sh|e zx)r^K@iQGp;at5JoU$4{%xcj!t=?f1rlV)<;%ZqPBVNM6noX)TMHRPTJ7p_Rxpmi5 z6`IXoQU#APWz%)X!`5`hw5pUWc(xPRCg;_~GK?*|N@>?sm3(>qv|2xFR#e)<`pvI; zD%^0=DtBnes;evs(66oes_x9J8n@rgOPNAG@~hSfv%Oy=l%t zata+9GIphAR@d8mAcGgJ(yC+f;M<$C$}Kont#jjo<%RR$=RKLV%u>~MJ*(i7oFgSO z-(t3qURZIIS!{mIbZ|g?a2k=ENi?NAsD#fc=ZaOp6cmfWtj;S;i@KtGamI2zTCn}2 zhJr;wPdb*TW~{2BR%;6E=2gXRcz}sn6kA?n69?!?Qk17O)^H8ynuYail84%+DjlG6 z*cpl(-~l=hZIx(ufmR`Vu&79zL2G`?!OeI(gFcthpZ2u-t2EjUZN_5`F)8dq_#ABa z$q@&w9~^#NDn3w@%Uh(rzB}%}u`C1L~O~8uh!0W(}iyd(~{3i-pl+*G*CuDZ8iD+I!0^Cxr%17`JC7^ zBG1aHP>?uk@YIZx{T-$4_*TPqQO*oEWHXM}%^1o!9mFYiNVr4vdHxio@D9=>GyYjq zMI7Z&Gz;=&JTov7&XX;fOhUVcg87y>XTX=FC)?HVHsg$ya8B{xUj~Xlo~E6j`6BvN z(9gl0AWvwqJtZ;C20l3R98+U_EOAD8_V}#)=-B)`^O5$A9Lwja)ON^;j~^WhBM zDSuh%pGF*fV^%QxWsKgy%Jc8f#!TJG$7qnF6lzV@B{nbCRcEUEJG)*da47g;6<}jy z0~-8;0l)l@2C0DjKZn~4|1EvBg=&#(3)Ld{NR$40Uv4G?9P;tqFkNlW-%NwfzV+6$ zSBv~6Ot0e~8DUCodNy0afv|z)R{!6XF8J>bf0Nfa-*pB`W1Vk+?@V=G+`O>;3J7*n z>%2Qyu0htOW+j;S|Ks|UKYdd({#tuEp7bs)jz8rbGObNq66$~ z~9h) z;|1T=+!qqBBH&M2P9FIWUw@OydouxU6KWTeBH3$3Gbf|e^v1Vca{AJcZMcn`W~lhR z7Di%G-d%f_>-?1K=2%*Rai~(6<1uPHNp(eIi)ssEaowSF^Tdx24jYlZPDZB zjK)F33qm}1-s<9PQDzs5>|hIJe?Vf51GkiS9|Q?i~zOBpV)%nCB{LUe5SumAc51@ zept}7b|uhlbg$jP>ya-!*OoGd>Bnvl0M;oM7U1^%G;&Q%D}njxM@K$fcQJA*BhF90 z-ZFb(^pRJ8`u^j{sS!Wk@!E?ABKeDvvwcF$hbPW1Cy0O3l(yqfqChKfE3g4*1KNRG zfDWJ&=mORQ5rFD@8?X-0bn_Bu#QCQ#EvExv3@rp`9k}^9u2pg=|4;c>`+vsS#$sNp zU7feOBrq3rSMkNY-wB0y2-t@V>cL9vlRjKiV@P1jH%Y@oSH9|d{*$f~9~iMZyJes} zeTCwz&M@_ZZT}ITEsh6iy8@mA*VGsixPJNiWzLt$?%4NFx!L?wIp>y51WY??AIZt6 z?G#;SCO2izWL-C9+OEF}b4E#Qfh1QAKd8T}LITSE=dXV8r4hPd@Sd+8Qg*L6>oTnE zzaA<6e`UFsHbozgP~uEr#&cEOK@yK(zJ;f=g(AXH(HddBH<9@fGeNA{E_x%G<8C>3 zjOQ|h_l}tsT?q1`D()2Xg~QL5vgLxqwqlh!rnM+bw(&T85i;m}M4yO9xOae;k^Q9) zvNF9%pN3Q*i6XKrJB~Bt5@m-~*%Zsh&@MT~6qJQ44EoJHj_t;O3gJvYowLiXtj9Ad z`c$b`E*z7~8|zU<)p^CNpGWx(Any${+zT={2uUGaJ1!}0p9`sE;!`ly$`+NU1rH@*FHj`;?_b3fkLhTFxDy?k4l0^$Jn-9o+(gOj-D-z-DFo|gzEv6Qnin?S0 zqw+Sva@184$ELV{&hcBT=X|8@$AZ6+?aB`u_i3B_BR_m2f0cx&;5^&C18|->3@~{n z^}xpgp1IXqEZ<>ShdyI^#<7ozgj=!``NB-jP1GY;Hh>+6R0tdjC2?25w5cAK{x`zdt8L$3>i+vL{SJK$?i&B%XSgQS@-g&7n*Lq_ X+|Oy!63`OR63`OR63`M@TN3yaLZXu` literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Cache/TestConsole/obj/Debug/TestConsole.projdata b/SAF/Test.SAF.Cache/TestConsole/obj/Debug/TestConsole.projdata new file mode 100644 index 0000000000000000000000000000000000000000..dfc862dffd59e8f0d33db8571d767b425cbfd617 GIT binary patch literal 1672 zcmeH{ze)o^5XQe#4}xG&QBgrSf`y7k#YTb%K@bG3Od+Vn<&PLhV#vipu&~tLM(`PY z2_M4FC-4OXL4UKCL}O)PA(#o1ot^#mo7v%J?xuzleL@DLyk~~=j*Obk!Gw;qr8Cvk zRLT8EcqCsj*f$W81XWR}h~Fyv1NIq^`^svYHOK7;j&#eD<~&qEr}#fl<46(lD$f6v zGYvX|d9uURjh2eP5;N=GP*PQSvbfL=uRbB8cKm*FNTDz2wJ%M#Z7OKB*hLfARz*xF zhU-bM0)MvxSEOcrZC|i`x#O(X;S1<3iUhXLpmFENSlbU5UvHi-AH4_cmG!mzCv3wQ zmvzgJgbQx~t(z>q#WjLK?J+0H^q@4>vFDf$hdS0gUSCU|H04AGlh6q%r&&}J!ww`aWHd{ABPU}pBGIJ=zTjspRR4~>JEi*OF dVeO7){vx;n(c`*(&v4P@7$4gEQ|Nzu{|A$Yi~Ilp literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.ClassFactory/Test.SAF.ClassFactory.sln b/SAF/Test.SAF.ClassFactory/Test.SAF.ClassFactory.sln new file mode 100644 index 0000000..2ccf0bf --- /dev/null +++ b/SAF/Test.SAF.ClassFactory/Test.SAF.ClassFactory.sln @@ -0,0 +1,39 @@ +Microsoft Visual Studio Solution File, Format Version 7.00 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SAF.ClassFactory", "..\SAF.ClassFactory\SAF.ClassFactory.csproj", "{DF688CE0-E540-41A0-B318-1139C68A715C}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestConsole", "TestConsole\TestConsole.csproj", "{567AA483-0EC2-434E-ABD5-75F2C62065AE}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestConcreteFactory", "TestConcreteFactory\TestConcreteFactory.csproj", "{51C282B6-965A-48C2-9E20-2DC05900732D}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SAF.Configuration", "..\SAF.Configuration\SAF.Configuration.csproj", "{CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}" +EndProject +Global + GlobalSection(SolutionConfiguration) = preSolution + ConfigName.0 = Debug + ConfigName.1 = Release + EndGlobalSection + GlobalSection(ProjectDependencies) = postSolution + EndGlobalSection + GlobalSection(ProjectConfiguration) = postSolution + {DF688CE0-E540-41A0-B318-1139C68A715C}.Debug.ActiveCfg = Debug|.NET + {DF688CE0-E540-41A0-B318-1139C68A715C}.Debug.Build.0 = Debug|.NET + {DF688CE0-E540-41A0-B318-1139C68A715C}.Release.ActiveCfg = Release|.NET + {DF688CE0-E540-41A0-B318-1139C68A715C}.Release.Build.0 = Release|.NET + {567AA483-0EC2-434E-ABD5-75F2C62065AE}.Debug.ActiveCfg = Debug|.NET + {567AA483-0EC2-434E-ABD5-75F2C62065AE}.Debug.Build.0 = Debug|.NET + {567AA483-0EC2-434E-ABD5-75F2C62065AE}.Release.ActiveCfg = Release|.NET + {567AA483-0EC2-434E-ABD5-75F2C62065AE}.Release.Build.0 = Release|.NET + {51C282B6-965A-48C2-9E20-2DC05900732D}.Debug.ActiveCfg = Debug|.NET + {51C282B6-965A-48C2-9E20-2DC05900732D}.Debug.Build.0 = Debug|.NET + {51C282B6-965A-48C2-9E20-2DC05900732D}.Release.ActiveCfg = Release|.NET + {51C282B6-965A-48C2-9E20-2DC05900732D}.Release.Build.0 = Release|.NET + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Debug.ActiveCfg = Debug|.NET + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Debug.Build.0 = Debug|.NET + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Release.ActiveCfg = Release|.NET + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Release.Build.0 = Release|.NET + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + EndGlobalSection + GlobalSection(ExtensibilityAddIns) = postSolution + EndGlobalSection +EndGlobal diff --git a/SAF/Test.SAF.ClassFactory/Test.SAF.ClassFactory.suo b/SAF/Test.SAF.ClassFactory/Test.SAF.ClassFactory.suo new file mode 100644 index 0000000000000000000000000000000000000000..bc55beef4614a0dff1ec4a286f7316b08d9466aa GIT binary patch literal 14336 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. For example, if your KeyFile is +// located in the project directory, you would specify the AssemblyKeyFile +// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] +// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework +// documentation for more information on this. +// +[assembly: AssemblyDelaySign(false)] +[assembly: AssemblyKeyFile("")] +[assembly: AssemblyKeyName("")] diff --git a/SAF/Test.SAF.ClassFactory/TestConcreteFactory/TestConcreteFactory.cs b/SAF/Test.SAF.ClassFactory/TestConcreteFactory/TestConcreteFactory.cs new file mode 100644 index 0000000..aae40a4 --- /dev/null +++ b/SAF/Test.SAF.ClassFactory/TestConcreteFactory/TestConcreteFactory.cs @@ -0,0 +1,192 @@ +using System; +using System.Runtime.Remoting; + +//TestConcreteFactory consists sample class factory and business class used by +//the TestConsole application. +namespace TestConcreteFactory +{ + /// + /// Summary description for Class1. + /// + public abstract class ProductFactory : MarshalByRefObject + { + public abstract Product GetCheapProduct(); + public abstract Product GetExpensiveProduct(); + + } + + public class ConcreteProductFactory : ProductFactory + { + public override Product GetCheapProduct() + { + return new CheapProduct(); + } + public override Product GetExpensiveProduct() + { + return new ExpensiveProduct(); + } + } + + public class ConcreteNewProductFactory : ProductFactory + { + public override Product GetCheapProduct() + { + return new NewCheapProduct(); + } + public override Product GetExpensiveProduct() + { + return new NewExpensiveProduct(); + } + } + + public class ConcreteRemoteProductFactory: ProductFactory + { + public override Product GetCheapProduct() + { + return new RemoteCheapProduct(); + } + public override Product GetExpensiveProduct() + { + return new RemoteExpensiveProduct(); + } + } + public abstract class Product : MarshalByRefObject + { + public abstract string Name {get;} + public abstract int GetPrice(); + public abstract string GetColor(); + } + + public class CheapProduct : Product + { + private const int cost = 10; + private const string color = "red"; + private const string name ="Cheap Product"; + + public override int GetPrice() + { + return cost *2; + } + public override string GetColor() + { + return color; + } + public override string Name + { + get + { + return name; + } + } + } + public class NewCheapProduct : Product + { + private const int cost = 10; + private const string color = "black"; + private const string name ="New Cheap Product"; + public override int GetPrice() + { + return cost *2; + } + public override string GetColor() + { + return color; + } + public override string Name + { + get + { + return name; + } + } + + } + public class ExpensiveProduct : Product + { + private const int cost = 10; + private const string color = "red"; + private const string name ="Expensive Product"; + + public override int GetPrice() + { + return cost * 10; + } + public override string GetColor() + { + return color; + } + public override string Name + { + get + { + return name; + } + } + } + public class NewExpensiveProduct : Product + { + private const int cost = 10; + private const string color = "black"; + private const string name ="New Expensive Product"; + public override int GetPrice() + { + return cost * 10; + } + public override string GetColor() + { + return color; + } + public override string Name + { + get + { + return name; + } + } + + } + public class RemoteCheapProduct : Product + { + private const int cost = 10; + private const string color = "yellow"; + private const string name ="Remote Cheap Product"; + + public override int GetPrice() + { + return cost * 100; + } + public override string GetColor() + { + return color; + } + public override string Name + { + get + { + return name; + } + } + } + public class RemoteExpensiveProduct : Product + { + private const int cost = 10; + private const string color = "gray"; + private const string name ="Remote Expensive Product"; + public override int GetPrice() + { + return cost * 1000; + } + public override string GetColor() + { + return color; + } + public override string Name + { + get + { + return name; + } + } + + } +} diff --git a/SAF/Test.SAF.ClassFactory/TestConcreteFactory/TestConcreteFactory.csproj b/SAF/Test.SAF.ClassFactory/TestConcreteFactory/TestConcreteFactory.csproj new file mode 100644 index 0000000..19994bf --- /dev/null +++ b/SAF/Test.SAF.ClassFactory/TestConcreteFactory/TestConcreteFactory.csproj @@ -0,0 +1,93 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/SAF/Test.SAF.ClassFactory/TestConcreteFactory/TestConcreteFactory.csproj.user b/SAF/Test.SAF.ClassFactory/TestConcreteFactory/TestConcreteFactory.csproj.user new file mode 100644 index 0000000..29ccfc6 --- /dev/null +++ b/SAF/Test.SAF.ClassFactory/TestConcreteFactory/TestConcreteFactory.csproj.user @@ -0,0 +1,48 @@ + + + + + + + + + + + + diff --git a/SAF/Test.SAF.ClassFactory/TestConcreteFactory/bin/Debug/TestConcreteFactory.dll b/SAF/Test.SAF.ClassFactory/TestConcreteFactory/bin/Debug/TestConcreteFactory.dll new file mode 100644 index 0000000000000000000000000000000000000000..e1e8cf84406da4ac1fa0f1bcdaffa312a6bde2a4 GIT binary patch literal 6144 zcmeHLVQd^%5uSHG+ZQKx;y9%aHp)7V71xapo1|(eA)I|@H)(9g@i}e^u9CgG&3T)> z+hcc~`YNDCictAii3$lRNC<(%A0Pr$O4U~V6-7ct{ZS+;1d7y3^hYFA38@I7hHqwf zeYd`|oq(W!c&9fzGjHa5^Je$WzP*_*zep`a6i2^%m*^E-xut||P1Z2nb>P)5`qhrN z23}FqZw)Lgo32)I?4qNWw7gy}+n$y)G-su(nPn|=HmjBFf|2a(>^Kxa&rK3ds}{QO z()MQIDTnspwM&UbqNULFqmA|FRY|h z;AWXg5v}+U+@wC{bsXfPAV>PI|_w2l<`dAQ+R_g18|`(}*r5 z9oNZ2lGsvUc%ggI>skuYCmqAGVaT!4C3MF66nb4t5lz&I!rtJ#qH%2O@;=u2(oQ19 z%73Hvj4Emm{9?mhL>(i(} zcmV6?TgMoV>YHKIbhY)d4v}^r*yk@UTyraQ4i;Y7ux8Qki0W&&cu<2iZ;3k;_2)GR z?pRd6C2rw9;ywQ#;%*jib$eW18|PR10JK>ye;mbF&&4mJ`ewOU$KG?eIrg8T80*-7 ziRw3EBjokE#(V1u`syG$Zqj@$ETJS4A)D7 zNv18`b*J>aXFFBVrtNaxF+3yG*|}$yGDdEt*laXeDde!}vrkN@U`KO(xH^^`O&)!8 z^bzp<#8{x$5!2u|P_s~P|Bhe>vz}v?i>{d9IqkawBD)^A~ou=Z+f^T-)e#gt|fB zRoC!t__@$qLf;emPoWRQcyv_g8KDKCUl)2^=x>C+7ke9Vg|l#ezKNAh(gHHVl7h4h zDFH4n(({4TF4Fe`sYCo;4*WW0>n6eo2^f)2kWHEGBzrH zVbqxb)3>}3NWNvoml8ha3nGQ{U61(Pi1^)#_}z~9{Vn2`I4Dt*KcD7H!F3g?>+ zEd4kyMf_GHelJG+eiZS0E#mi1#P3eTk5HL7*ZzFHffQuWmx4G?i4?}!O|$B_+Ankf z^o!~t;m3r2Ug)^c(?ZV)eM+b<)D-$v&o?ELXQgl zg3z?kGeWaMzalg*^a@>6r__u(hy8gT`?3vBUpoq30&lAwSVae_$xdi@K}%$-zI&oE z)PNSC^uRkt4+>%*@M3fTXffQXPSC@&o8oJJ1^cM=8j!gypeywEt(}>Bw4U5D!F;vvCJH0tFC91XhwJ3W!;*n&KsA{=AJR~9?dzx$a}%-rx_B3 z$Qw*U^{nyiCL{Ak$@Yv5gMmotWkauo0x%--d#WU&$rcA5JK*q52YSt{48+{fH#|3!fKzhaUR-7ha3yxkeO1g8UiH}{W zI%aX%Ya9yhN8>=+E>-k$wb?-VvRPblbY6VpaK>=+j#+6wxL|tqc?fcuG4)~@X*TmN z$w{cF=jzRHsBp-j0#RQYZ*+rns*px=IGk-qwvy&gby!YzU*D3Mq=av@tAG`hSxJG+>TQpMWUFeCHVd{#tCE|QcjkR^P z`APls=CO6uQhG4V#OBrqw-0zEMA_bSSA9B%qnX(}hD4am(WuAv^Tjo#x|qaTwU~;< z;_V9AYeR2W3G}X3uF2GfbEPmp2)?^n`3CbEbB!(hKCg{jOxsSzvSxI%?AL3N*_b$H&d0+7E{y)yZzW^}aPs0EJ literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.ClassFactory/TestConcreteFactory/bin/Debug/TestConcreteFactory.pdb b/SAF/Test.SAF.ClassFactory/TestConcreteFactory/bin/Debug/TestConcreteFactory.pdb new file mode 100644 index 0000000000000000000000000000000000000000..2f1b6851c395b4c6a207ae808c704a9bf05770c6 GIT binary patch literal 24064 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 literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.ClassFactory/TestConcreteFactory/obj/Debug/TestConcreteFactory.dll b/SAF/Test.SAF.ClassFactory/TestConcreteFactory/obj/Debug/TestConcreteFactory.dll new file mode 100644 index 0000000000000000000000000000000000000000..e1e8cf84406da4ac1fa0f1bcdaffa312a6bde2a4 GIT binary patch literal 6144 zcmeHLVQd^%5uSHG+ZQKx;y9%aHp)7V71xapo1|(eA)I|@H)(9g@i}e^u9CgG&3T)> z+hcc~`YNDCictAii3$lRNC<(%A0Pr$O4U~V6-7ct{ZS+;1d7y3^hYFA38@I7hHqwf zeYd`|oq(W!c&9fzGjHa5^Je$WzP*_*zep`a6i2^%m*^E-xut||P1Z2nb>P)5`qhrN z23}FqZw)Lgo32)I?4qNWw7gy}+n$y)G-su(nPn|=HmjBFf|2a(>^Kxa&rK3ds}{QO z()MQIDTnspwM&UbqNULFqmA|FRY|h z;AWXg5v}+U+@wC{bsXfPAV>PI|_w2l<`dAQ+R_g18|`(}*r5 z9oNZ2lGsvUc%ggI>skuYCmqAGVaT!4C3MF66nb4t5lz&I!rtJ#qH%2O@;=u2(oQ19 z%73Hvj4Emm{9?mhL>(i(} zcmV6?TgMoV>YHKIbhY)d4v}^r*yk@UTyraQ4i;Y7ux8Qki0W&&cu<2iZ;3k;_2)GR z?pRd6C2rw9;ywQ#;%*jib$eW18|PR10JK>ye;mbF&&4mJ`ewOU$KG?eIrg8T80*-7 ziRw3EBjokE#(V1u`syG$Zqj@$ETJS4A)D7 zNv18`b*J>aXFFBVrtNaxF+3yG*|}$yGDdEt*laXeDde!}vrkN@U`KO(xH^^`O&)!8 z^bzp<#8{x$5!2u|P_s~P|Bhe>vz}v?i>{d9IqkawBD)^A~ou=Z+f^T-)e#gt|fB zRoC!t__@$qLf;emPoWRQcyv_g8KDKCUl)2^=x>C+7ke9Vg|l#ezKNAh(gHHVl7h4h zDFH4n(({4TF4Fe`sYCo;4*WW0>n6eo2^f)2kWHEGBzrH zVbqxb)3>}3NWNvoml8ha3nGQ{U61(Pi1^)#_}z~9{Vn2`I4Dt*KcD7H!F3g?>+ zEd4kyMf_GHelJG+eiZS0E#mi1#P3eTk5HL7*ZzFHffQuWmx4G?i4?}!O|$B_+Ankf z^o!~t;m3r2Ug)^c(?ZV)eM+b<)D-$v&o?ELXQgl zg3z?kGeWaMzalg*^a@>6r__u(hy8gT`?3vBUpoq30&lAwSVae_$xdi@K}%$-zI&oE z)PNSC^uRkt4+>%*@M3fTXffQXPSC@&o8oJJ1^cM=8j!gypeywEt(}>Bw4U5D!F;vvCJH0tFC91XhwJ3W!;*n&KsA{=AJR~9?dzx$a}%-rx_B3 z$Qw*U^{nyiCL{Ak$@Yv5gMmotWkauo0x%--d#WU&$rcA5JK*q52YSt{48+{fH#|3!fKzhaUR-7ha3yxkeO1g8UiH}{W zI%aX%Ya9yhN8>=+E>-k$wb?-VvRPblbY6VpaK>=+j#+6wxL|tqc?fcuG4)~@X*TmN z$w{cF=jzRHsBp-j0#RQYZ*+rns*px=IGk-qwvy&gby!YzU*D3Mq=av@tAG`hSxJG+>TQpMWUFeCHVd{#tCE|QcjkR^P z`APls=CO6uQhG4V#OBrqw-0zEMA_bSSA9B%qnX(}hD4am(WuAv^Tjo#x|qaTwU~;< z;_V9AYeR2W3G}X3uF2GfbEPmp2)?^n`3CbEbB!(hKCg{jOxsSzvSxI%?AL3N*_b$H&d0+7E{y)yZzW^}aPs0EJ literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.ClassFactory/TestConcreteFactory/obj/Debug/TestConcreteFactory.dll.incr b/SAF/Test.SAF.ClassFactory/TestConcreteFactory/obj/Debug/TestConcreteFactory.dll.incr new file mode 100644 index 0000000000000000000000000000000000000000..99b2e6b96be7bdd02b6bdff483a81ea11a5bd885 GIT binary patch literal 1408 zcmcgsO-~b16g{m7(z;;9g4Ih{(`XD5!G&c?u|y=HHJHd|W;)f%e2|$3q^wx77k&X7 zcK8bnro=>D_y=6@16=Ttn7H%YH!W6UjGOW%ckX-V-Fb7~x%a(F=*C{)h1&Mj>_*eC ztCFp4)rewcjVmh()|)R>B-+@eK2rK@H0&!XomwHqZm+ju&LXUv2T@=*9l~%>5fFG(~4& z8mm}A1yA{xCHATuFQN$-F(M?i1~dwspX0w*Q6_F9fQK#4#aJV@iMx!rL%WA5`blC{ zwD`4VTtK`IpO3VRyrz#npOeX<82}FnT^ExQ*=t%aC(#-!U%yz_&iv*ntM`pmv_#b#ve!(nFNB$K^-mwLk`edSqU%U7(b ztjjVpUt`WC^99y`AO*7asd&PtOz(0|DyP*GYY_=e&3UF~{)~&r=r!X@T-(70UjFyD z-8^?n4R0u|^z-z)^rEz!n$ykN+wa@$ZWtaBOV#e@zKTW_IU^1=YVjO~JZ}*-b2%eT z2uT5)KK`*Md64@++B~iQ{JOdPcYac~UFk$w9-?fK45ceL6*itbF`hS@ndb#%{H>1X Q?Ptchj^}R8_;$zt1n>{+hyVZp literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.ClassFactory/TestConcreteFactory/obj/Debug/TestConcreteFactory.pdb b/SAF/Test.SAF.ClassFactory/TestConcreteFactory/obj/Debug/TestConcreteFactory.pdb new file mode 100644 index 0000000000000000000000000000000000000000..2f1b6851c395b4c6a207ae808c704a9bf05770c6 GIT binary patch literal 24064 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 literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.ClassFactory/TestConcreteFactory/obj/Debug/TestConcreteFactory.projdata b/SAF/Test.SAF.ClassFactory/TestConcreteFactory/obj/Debug/TestConcreteFactory.projdata new file mode 100644 index 0000000000000000000000000000000000000000..273f30bb75dc54ebc7ab57056f7d5fdccf4115d0 GIT binary patch literal 10376 zcmeI2&ud*(5Xa}GX?lIun8q4y#E`^TVvRwHt1QH(G1efWv8z&qCMMVt+mdLsLF7`p zcodOPveAW$E{lkCAtF*rbmiJVpo=0R;-U+|m43eG&dvLgm*nNwyVYcpxpVHEb7s!W znKS3!`_AWwTA~I68XX~p!)CYlP@tmCPTO(2VCU_9n+Vq#IA(h-$5k}+hN^?^B}jCy z(cP{m$v9eu|zm{0&3Z>jE+^m9$O#H4b+o zXxmu3eq_%uqTZ!3tS;B=1)r&+=GPg)hZQ!KkH)aJQf{fI%KcN>x7%K}kMN=*W5&+f zET!@u8h_m|E2+WIxOiu9uY%5AB%zN128W&LI3ZFejk z3z4YE9wRO<*{h6y5-ZZ^d5j1;2ad2@3oM}prqf;tt7zqU?^&Zo zuRVjP<|&_K!1S?SQ)Ni}qu2(F!=tc`{Dwp^f_{M!s+mERcAz(jWZK z`ky8%C~x>v;Ruc3hxbei@F7{2rKcm55g2ipXbpx%>DLznWa&;K=e(Gxpw{$uQ(0u}$tf41)L zUz^K6(yzTo`DbJLH<$mVU-m2hH>Q7U>{tA4O#deBC;pFuU%37qxBfQ}@3?BqAa?&> zN22Ecf93yLzW?7R{=eb=ulM_B=FdO(iT`iz`X3Lh@ZMPQen-PCgBVGp;0UPvvlZ{3 zh^iUV{P#UQcJp5b^Y8o5qWgb0|E=|VZ_S}yQ$xjnAK2jj*Doo8AsAQS^B>?I*W^Tz z+4(AUd^!#=U!{)EssX;LQrGBpx2n`7C!@^%tWw8M#Q{3_p|WzEd`1sIH+zx#JF_Rh z`D^aSoNTyr;_roA<4-xs)`_ec{I}JHfuEur`26gpXXtRoh4;ug%Hiw_2UC>Wf=oKf zC!eY>j&G-YLNX~|r5xm7=s?;Y2VJ8aBq^zETJ@GKj{_2j4$w zo9}xCh!8{T3=X##Skq>ikMjsvB|y%crWBM2iW(4pI}c%z6%lW!=~4v77#3{z!dmB1 z__&l)-{KUYR+|8|;wB^R|9ET$J@(@=#rd^=)qs85?vAy(PSF5CyNkus435LVkZ$rj zNw|JG-P7^hF<(;#o*Vk}5R#e|^13tBbQkeF?djULtvqyxd3<{9 literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.ClassFactory/TestConsole/AssemblyInfo.cs b/SAF/Test.SAF.ClassFactory/TestConsole/AssemblyInfo.cs new file mode 100644 index 0000000..9f89a32 --- /dev/null +++ b/SAF/Test.SAF.ClassFactory/TestConsole/AssemblyInfo.cs @@ -0,0 +1,58 @@ +using System.Reflection; +using System.Runtime.CompilerServices; + +// +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +// +[assembly: AssemblyTitle("")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("")] +[assembly: AssemblyCopyright("")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: + +[assembly: AssemblyVersion("1.0.*")] + +// +// In order to sign your assembly you must specify a key to use. Refer to the +// Microsoft .NET Framework documentation for more information on assembly signing. +// +// Use the attributes below to control which key is used for signing. +// +// Notes: +// (*) If no key is specified, the assembly is not signed. +// (*) KeyName refers to a key that has been installed in the Crypto Service +// Provider (CSP) on your machine. KeyFile refers to a file which contains +// a key. +// (*) If the KeyFile and the KeyName values are both specified, the +// following processing occurs: +// (1) If the KeyName can be found in the CSP, that key is used. +// (2) If the KeyName does not exist and the KeyFile does exist, the key +// in the KeyFile is installed into the CSP and used. +// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. +// When specifying the KeyFile, the location of the KeyFile should be +// relative to the project output directory which is +// %Project Directory%\obj\. For example, if your KeyFile is +// located in the project directory, you would specify the AssemblyKeyFile +// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] +// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework +// documentation for more information on this. +// +[assembly: AssemblyDelaySign(false)] +[assembly: AssemblyKeyFile("")] +[assembly: AssemblyKeyName("")] diff --git a/SAF/Test.SAF.ClassFactory/TestConsole/TestConsole.cs b/SAF/Test.SAF.ClassFactory/TestConsole/TestConsole.cs new file mode 100644 index 0000000..ec5487f --- /dev/null +++ b/SAF/Test.SAF.ClassFactory/TestConsole/TestConsole.cs @@ -0,0 +1,57 @@ +using System; +using SAF.ClassFactory; +using SAF.Configuration; +using System.Configuration; +using TestConcreteFactory; +using System.Runtime.Remoting; + +namespace TestConsole +{ + /// + /// The demo show how to use the SAF.ClassFactory service + /// + class Class1 + { + [STAThread] + static void Main(string[] args) + { + //set up the sever side remoting for remote class factory. + RemotingConfiguration.Configure("TestConsole.exe.config"); + //create the instances for class factory + ProductFactory pfA = (ProductFactory)ClassFactory.GetFactory("ProductFactory-A"); + ProductFactory pfB = (ProductFactory)ClassFactory.GetFactory("ProductFactory-B"); + ProductFactory pfC = (ProductFactory)ClassFactory.GetFactory("Remote-ProductFactory-C"); + + //creating different product objects on each class factory instance + Product p1 =pfA.GetCheapProduct(); + Product p3 =pfA.GetExpensiveProduct(); + Product p2 =pfB.GetCheapProduct(); + Product p4 =pfB.GetExpensiveProduct(); + //these two are the remoting calls because of remoting class factory. + Product p5 =pfC.GetCheapProduct(); + Product p6 =pfC.GetExpensiveProduct(); + + //calling the methods and properties on each prodcut object. + PrintOutProductDescription(p1); + PrintOutProductDescription(p2); + PrintOutProductDescription(p3); + PrintOutProductDescription(p4); + //these two call are remoting calls. + PrintOutProductDescription(p5); + PrintOutProductDescription(p6); + + Console.WriteLine("Press enter to finish"); + Console.ReadLine(); + + } + + private static void PrintOutProductDescription(Product p) + { + Console.WriteLine ("Product Name: {0}",p.Name); + Console.WriteLine ("Product Color: {0}",p.GetColor()); + Console.WriteLine ("Product Price: {0} \n\n",p.GetPrice()); + + + } + } +} diff --git a/SAF/Test.SAF.ClassFactory/TestConsole/TestConsole.csproj b/SAF/Test.SAF.ClassFactory/TestConsole/TestConsole.csproj new file mode 100644 index 0000000..49db36a --- /dev/null +++ b/SAF/Test.SAF.ClassFactory/TestConsole/TestConsole.csproj @@ -0,0 +1,116 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SAF/Test.SAF.ClassFactory/TestConsole/TestConsole.csproj.user b/SAF/Test.SAF.ClassFactory/TestConsole/TestConsole.csproj.user new file mode 100644 index 0000000..f77148d --- /dev/null +++ b/SAF/Test.SAF.ClassFactory/TestConsole/TestConsole.csproj.user @@ -0,0 +1,48 @@ + + + + + + + + + + + + diff --git a/SAF/Test.SAF.ClassFactory/TestConsole/app.config b/SAF/Test.SAF.ClassFactory/TestConsole/app.config new file mode 100644 index 0000000..d24e52b --- /dev/null +++ b/SAF/Test.SAF.ClassFactory/TestConsole/app.config @@ -0,0 +1,27 @@ + + +
+
+ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/SAF/Test.SAF.ClassFactory/TestConsole/bin/Debug/SAF.ClassFactory.dll b/SAF/Test.SAF.ClassFactory/TestConsole/bin/Debug/SAF.ClassFactory.dll new file mode 100644 index 0000000000000000000000000000000000000000..801af607cf4da40bd4cd71b2fb3799929b73b618 GIT binary patch literal 4608 zcmeHK-;Wzt75-*+?fsF)jn^A!%2u7#26btI*=-V9APRQu-PG-Fb`x*5C0&t>?ODgo zc*e|(+ZY7eszT7G79NnwAAr;cB%)GLA$UP~Ktg#g4`Elo*bMLuxclGjX7y&TK=iWWwZT8Y~iXRR;6sI2kWePu^xIO!}v2uHM z<60xMT7h2=?50(w1Ii875f_M0PZ7H~Bigh7=f^({w2 z0u_h)T8`dl1IP8LsG_SB%3KV+zvY0l{bQjm$t#=qCMLC6;QP$EA|6Vvmb7BZO`JBIYwqv~OA&q>^}2c{YO zH21*8a+`~5b|HJ>@r6^QfdpLQI-QvN4)81XU!zLzV^iSi2EG&6oGIWhO)G;%H z1AJt?MBc5T$=K5*zJPg_--~dFuPMHvcuVn*ihoy38=`YuaY^y(ir-fJvEnV`rZI_s z7%7^vy! zN4Sg>N233GBaIDYa71yI_y9hq^rGUI6!VHD#S4mGQ?wNuir*kU#B9o&I=G*nzl6)? z9A3eW`3Qc1pO~M=>-dfN80p*Q6LFB3kq#F zY6tsFwh`Dhr)dY*_p$L?ouE;_77dHm1E#FHkD%Z;TejC3wkY`CcB9@7Yzcl?Ty(-} z&}i*1+-OAodFU=gw%D-io*zbyY6v}>>UO1HZM%DRNpgGXA8-N#qp}l4dKz)jx`OVi z_Paf3v1)sE-3bPE!oZaKNP3Pu+jPO_Jg*9UyQFAGwy-})Pr-M4+okSAS3cl}16mMS ziFTs^X^6Xq^|=L z5zm7bIY_(YRVk0qAmwT4Y`%Bqxd&Z;>4$%Q>$jPA{`L&UfAP(&%_Aq@ePzUgF$!ZQ zHEJ1#f|;;P!!$>dQ%ecUm@1KpsZ}8_q^ORD0GgJAgC90D< zV>z2FYXz7de z-e)-nKii+Q|BnpF7Z&_Z>Xo7|B>CO~3;Xaz=}A7%=D3}BZ|OB_L~bmbDB}uo2^UF~ zc*{D^af!Ixy>;W)qwoEz`}HyKGTu)JE&W&HiR4bQ`!VV=i|h=}YO@NLS#K^Yu*90% zX5~pcsyCSptyd2r<%4wz{A_fGlN$6XqE>^p^?hdAQk@0H-Tj?JMRLIZ15DZ$__n5= z2OejUi<+hH-j%iZUXLfldG>N{NVE7HSNoplMM^@R9pXo8;QSEX(>Ta?^>jC>8&G@q zj9KKZVu8;hPT?^;uG9&Rq^;mEZ6!02+IjTD?enILJZH`_63I}=-!l6uwdH*4P*S5r zZl~Z)P~uwQJawH#qHj@0ysqOKZTe%|)$6W8jdo4i$*HMVTFt|T`nML(A*&$%^KJnpyoq>M?E4FJo literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.ClassFactory/TestConsole/bin/Debug/SAF.ClassFactory.pdb b/SAF/Test.SAF.ClassFactory/TestConsole/bin/Debug/SAF.ClassFactory.pdb new file mode 100644 index 0000000000000000000000000000000000000000..7899ebea12a0cc12903efb70f6629a3d07b359a8 GIT binary patch literal 13824 zcmeHNO>7%Q6rN4o)JYr2_K()BilGKVLj4m8BvBwOPD3MFRbURN$|0_6Q&Y!AwgKhD z9v~+WIaEL;kf=B`*Qz%}r5r3ShzqR{S2&<@p=t%f7aG2AcE?^^S5BlRb?kZV=QsQ2 zXJ_7f^X6xBBAv+R3b|C#9}PtZ2mL2vll~Wi;c#z{Zz3i@9rC}}i{v4L0wEr;nf`47 z4Saq3pJh$$tAX8{yzM)9J@V!EyCcRh<5-^qu&rWw8DZa+k!xyM4U|v6HvawQYvw{s zES>zO<6`OPs~7(G{U>u_+XPz{3Ei#5TYLHUq6l?PP!Y=)HWv3*&l#cJqOH@t=Bf$A3Q4_iH(2np#5x zpE$!%ymnL*aENChoB`+uweyH^l5tecBgWO*xx_fin95kIsW~*T_qVWNp(}sic)j>b zXUPb!vRk|oV60G_)tRP$uE!o_fEk-B z6qB<&L#uS~&Do3)zUp%{mrbSLdN&_0rgK?TMSCbqhpNe_$X$-c@?Ca$>^r(7hMfMN zmxmT1=2^%gh`Kl)dZKtGS#OXSIHrg?+Y*i>cw)%zT;lV>J)pR zXOFD62pQX9y?JmF&plttlx*K(zxSXX&qzLSr1?F~dJKF&IM>}r!H4Epu!c;o4=F zwQcO$Orfr-qwU{h25!(DwFjtIOsx$nPupKoCp>2iBKw?NfttlH{l*M$89vX6{7%&@rN>Yg|8y9+~WYZ)|%E(1GG240V2Hf z`^|8VxDntT-&tS`;JHAZjgUl~muDIL{<(x7N%q&ls_&?0JJ&0|z`inrhcZCJFaCU; zOj7Md(*JIi#K_A-(L+NcaLj|>25+fK^_+rvl&dqC-ManTfsLn`cI^bM{a^ zPtJ3k-OH7oDb@X%(|q-{Y|N%H`BFPwFMqUdezoM9rp^Z=#^=}1jMM(*E7>2P^Zk1K zLf=O}?7On_@=3@-$J5z!Q`uBbgtGD3WWk>9XOrsiE;(ty$vJkv`umHyYK1Ac%@4w2qHzM!Hn7G*RPJ;^%?>`vxxVCWt;@JlG zJ#F!KK#b>Z`+r);{`(r(pZeSmur2D7dZj+qg5FO0#IQFM>A&UQQ0CH|)f&(m&>FaJ G8u$;Ifi>0u literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.ClassFactory/TestConsole/bin/Debug/SAF.Configuration.dll b/SAF/Test.SAF.ClassFactory/TestConsole/bin/Debug/SAF.Configuration.dll new file mode 100644 index 0000000000000000000000000000000000000000..967e97f09dbf0014cad68ef8204bb2907ada4753 GIT binary patch literal 11776 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 XM;_oDFhSUeJc9ojtN<$zPX&Gf+ShFN literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.ClassFactory/TestConsole/bin/Debug/TestConcreteFactory.dll b/SAF/Test.SAF.ClassFactory/TestConsole/bin/Debug/TestConcreteFactory.dll new file mode 100644 index 0000000000000000000000000000000000000000..e1e8cf84406da4ac1fa0f1bcdaffa312a6bde2a4 GIT binary patch literal 6144 zcmeHLVQd^%5uSHG+ZQKx;y9%aHp)7V71xapo1|(eA)I|@H)(9g@i}e^u9CgG&3T)> z+hcc~`YNDCictAii3$lRNC<(%A0Pr$O4U~V6-7ct{ZS+;1d7y3^hYFA38@I7hHqwf zeYd`|oq(W!c&9fzGjHa5^Je$WzP*_*zep`a6i2^%m*^E-xut||P1Z2nb>P)5`qhrN z23}FqZw)Lgo32)I?4qNWw7gy}+n$y)G-su(nPn|=HmjBFf|2a(>^Kxa&rK3ds}{QO z()MQIDTnspwM&UbqNULFqmA|FRY|h z;AWXg5v}+U+@wC{bsXfPAV>PI|_w2l<`dAQ+R_g18|`(}*r5 z9oNZ2lGsvUc%ggI>skuYCmqAGVaT!4C3MF66nb4t5lz&I!rtJ#qH%2O@;=u2(oQ19 z%73Hvj4Emm{9?mhL>(i(} zcmV6?TgMoV>YHKIbhY)d4v}^r*yk@UTyraQ4i;Y7ux8Qki0W&&cu<2iZ;3k;_2)GR z?pRd6C2rw9;ywQ#;%*jib$eW18|PR10JK>ye;mbF&&4mJ`ewOU$KG?eIrg8T80*-7 ziRw3EBjokE#(V1u`syG$Zqj@$ETJS4A)D7 zNv18`b*J>aXFFBVrtNaxF+3yG*|}$yGDdEt*laXeDde!}vrkN@U`KO(xH^^`O&)!8 z^bzp<#8{x$5!2u|P_s~P|Bhe>vz}v?i>{d9IqkawBD)^A~ou=Z+f^T-)e#gt|fB zRoC!t__@$qLf;emPoWRQcyv_g8KDKCUl)2^=x>C+7ke9Vg|l#ezKNAh(gHHVl7h4h zDFH4n(({4TF4Fe`sYCo;4*WW0>n6eo2^f)2kWHEGBzrH zVbqxb)3>}3NWNvoml8ha3nGQ{U61(Pi1^)#_}z~9{Vn2`I4Dt*KcD7H!F3g?>+ zEd4kyMf_GHelJG+eiZS0E#mi1#P3eTk5HL7*ZzFHffQuWmx4G?i4?}!O|$B_+Ankf z^o!~t;m3r2Ug)^c(?ZV)eM+b<)D-$v&o?ELXQgl zg3z?kGeWaMzalg*^a@>6r__u(hy8gT`?3vBUpoq30&lAwSVae_$xdi@K}%$-zI&oE z)PNSC^uRkt4+>%*@M3fTXffQXPSC@&o8oJJ1^cM=8j!gypeywEt(}>Bw4U5D!F;vvCJH0tFC91XhwJ3W!;*n&KsA{=AJR~9?dzx$a}%-rx_B3 z$Qw*U^{nyiCL{Ak$@Yv5gMmotWkauo0x%--d#WU&$rcA5JK*q52YSt{48+{fH#|3!fKzhaUR-7ha3yxkeO1g8UiH}{W zI%aX%Ya9yhN8>=+E>-k$wb?-VvRPblbY6VpaK>=+j#+6wxL|tqc?fcuG4)~@X*TmN z$w{cF=jzRHsBp-j0#RQYZ*+rns*px=IGk-qwvy&gby!YzU*D3Mq=av@tAG`hSxJG+>TQpMWUFeCHVd{#tCE|QcjkR^P z`APls=CO6uQhG4V#OBrqw-0zEMA_bSSA9B%qnX(}hD4am(WuAv^Tjo#x|qaTwU~;< z;_V9AYeR2W3G}X3uF2GfbEPmp2)?^n`3CbEbB!(hKCg{jOxsSzvSxI%?AL3N*_b$H&d0+7E{y)yZzW^}aPs0EJ literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.ClassFactory/TestConsole/bin/Debug/TestConcreteFactory.pdb b/SAF/Test.SAF.ClassFactory/TestConsole/bin/Debug/TestConcreteFactory.pdb new file mode 100644 index 0000000000000000000000000000000000000000..2f1b6851c395b4c6a207ae808c704a9bf05770c6 GIT binary patch literal 24064 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 literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.ClassFactory/TestConsole/bin/Debug/TestConsole.exe b/SAF/Test.SAF.ClassFactory/TestConsole/bin/Debug/TestConsole.exe new file mode 100644 index 0000000000000000000000000000000000000000..4e26bd1011f29d247efb0b10dc571e7124ff03d7 GIT binary patch literal 6144 zcmeHLU2Ggz6+Saw+iNE=vE82pf;z6#$_Zp+$LUW>)voPLHrx8I-mUv*1;hzgM4p%s-XwQ5z#YWqZgK!}IFfGW{Sl>qSo5(S}#@0^*< z&Ss6^DduQyq`=6vPB8p+0J4f^qC__^4_NW2#z%?%q&+cjIwjYv7zNX|9pA_+!>!qdWgDr5tWj}_DzR%<|Nb!a;&Gx`t&8q^_Kswz zqW5S(+oAOk^+U5W(4IX2YG5QW7#SdXkT*EVpD8skpl9H95$%@W77azQ5uHTbEb~dC zd*h)pN=^kS+&e_Fmu?6et#Ho``x?R8H`-MNy@C|$q% z7m=?%FYndZz6bJm;G~JuK|&0TP%;61Y%k1E0-8O|b$tNCM{WHsqNQvq`^cMvH(qa^ zPCuXi{ae3#?q@&XZJoJgB|CLuC8s<;0VXk1Ha+izS@0dVF4`H#_MEa>aqqD|2Ena}#JWtXrA=*MpK z0`_h6?kxQgyN^Ai(e&M!6zD%8e}m=evV%tnz*S3MsS~#`{X?7NCW4MoAL%D7S176? zy~#4$nW9i(rag3!Mj?HfGHAK)(;49B1^+_u2ZBEqe6_~bBZB7yuL*us@L9pH2>w9( zHExl=YoqW#pbzQ;biba_`^nY$DL>I!|65=N&WSP8-84ZrqgE^}8mxbcQbDdGfu!K0 zQ%a;Wdm1=s!Mb+J>NoYhxQ0GUBZ3bAUxSFOIVN~Ya7OT5g6|V-3bq7)MQ|N>KRpI~ z6+J<>>xYp^Nk2+Y(_{KE;HQ9}p=Y6ghF;Wfqd|I2UlmOO{F~qh={LHC-QfrZd8l)O zzC;z^VZomhJSljG;2FVp3eF0CKyX3uLx?d=_n@C+ji73O>psmz0o;ti^?N_Ovo)-k zfpsmfOhorB;fXS+TL`z#ImKF8-9~&2!iG<%4Mi2N;J9TgPuaTXs|qdTA5;aOe$Cw?Sk5(zs$#ki zZ868G)?KT#?suBPb#@wNoJ!TS>suM@HLFx}ODK#ZU7ha%2qcl4q zt^6h%7N;q~GPADCYO_}$AK$1d+p`{4Ox=Rc;aDNKP5u z1O^>fP?WL#$s_3VLpf47M`&Jh$Oh-&URF4hiZ+B6M88HBm54?b$%R~`8Wk|-1ern| zXzO%{rbzn)k7?2lFClIPQGC!tw0*=G(!RhRoTGkz z2F)YG3jA+@=htbR9wEB!LLXjv8N-cw$x~Y^H6%|9tBuAoa1-;}lIZpCCC)tehu7v` zecZ~OefQgcqWFtnTUp+F^t~r=cWa*?U_8{~@6H;14eyd#9EhTl=F{4VnbbDhxq-fCG^ zXB_wVhLTH5?l`3q#WKIA@kM?e8A;*(Kd4LIV`KP=9>4?fP1xY~|Eb`sI+B7e@AM7m z`MvjKhaDw(l<22h=($*%Tj)9XyNudEN=qNM=~xK#AN?DB9A+a$^r7Bzh^L9hf@z{0 z$KtMSnQ6}yzSns%A;i0mf?LMl2CKlwX$f407SP+Ppz}C|3*z}|?9U$u`Dk<+Z#m|f z-X6w@fkqxHTBHWuGERw$IF_9K49?RU&I7}K;#oOZO}QP)pg#Qgt_a}gv30CXLry-t z_$-#Th?Ekaah$;5=P2dD@!v5z=JE-w$T{WH%^!aT#{P({D$lQze=x869$1l>SK=qBMN!7(K9m8GHD&D+ODKIKR@ z+ux$tZ^?5O&n(GIUU3z7CTCj0&BcFz85qHOT7E(0iCXDiHevpqcQSr8_Er?$AZjaj@}hUMEgcA(Xt&1yZge4jZ}gem z=lrfSFq(b734Uv6aC38G2Lu@GMfG`a*sfvO(hHKzNB=QB8EjvAHrST*8$sYrWZ4FM z)EaG?Pa$Y>WaX@Kb#yWezL{h4hSh2J?m*)AYvdLBDFR=1x#Sfvg8$3>@Yp5K + +
+
+ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/SAF/Test.SAF.ClassFactory/TestConsole/bin/Debug/TestConsole.pdb b/SAF/Test.SAF.ClassFactory/TestConsole/bin/Debug/TestConsole.pdb new file mode 100644 index 0000000000000000000000000000000000000000..d1667719ae9a76926ae94db823dcdbd56c92e95f GIT binary patch literal 13824 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 WhxZpEZt!ydf8YIcZ@=~V+v^d + + + + + + + + + + + + + + + + + + + + + + diff --git a/SAF/Test.SAF.Configuration/Application.Configuration/Application.Configuration.csproj.user b/SAF/Test.SAF.Configuration/Application.Configuration/Application.Configuration.csproj.user new file mode 100644 index 0000000..e1b802f --- /dev/null +++ b/SAF/Test.SAF.Configuration/Application.Configuration/Application.Configuration.csproj.user @@ -0,0 +1,48 @@ + + + + + + + + + + + + diff --git a/SAF/Test.SAF.Configuration/Application.Configuration/AssemblyInfo.cs b/SAF/Test.SAF.Configuration/Application.Configuration/AssemblyInfo.cs new file mode 100644 index 0000000..9f89a32 --- /dev/null +++ b/SAF/Test.SAF.Configuration/Application.Configuration/AssemblyInfo.cs @@ -0,0 +1,58 @@ +using System.Reflection; +using System.Runtime.CompilerServices; + +// +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +// +[assembly: AssemblyTitle("")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("")] +[assembly: AssemblyCopyright("")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: + +[assembly: AssemblyVersion("1.0.*")] + +// +// In order to sign your assembly you must specify a key to use. Refer to the +// Microsoft .NET Framework documentation for more information on assembly signing. +// +// Use the attributes below to control which key is used for signing. +// +// Notes: +// (*) If no key is specified, the assembly is not signed. +// (*) KeyName refers to a key that has been installed in the Crypto Service +// Provider (CSP) on your machine. KeyFile refers to a file which contains +// a key. +// (*) If the KeyFile and the KeyName values are both specified, the +// following processing occurs: +// (1) If the KeyName can be found in the CSP, that key is used. +// (2) If the KeyName does not exist and the KeyFile does exist, the key +// in the KeyFile is installed into the CSP and used. +// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. +// When specifying the KeyFile, the location of the KeyFile should be +// relative to the project output directory which is +// %Project Directory%\obj\. For example, if your KeyFile is +// located in the project directory, you would specify the AssemblyKeyFile +// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] +// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework +// documentation for more information on this. +// +[assembly: AssemblyDelaySign(false)] +[assembly: AssemblyKeyFile("")] +[assembly: AssemblyKeyName("")] diff --git a/SAF/Test.SAF.Configuration/Application.Configuration/ConfigurationManager.cs b/SAF/Test.SAF.Configuration/Application.Configuration/ConfigurationManager.cs new file mode 100644 index 0000000..f46ca8b --- /dev/null +++ b/SAF/Test.SAF.Configuration/Application.Configuration/ConfigurationManager.cs @@ -0,0 +1,90 @@ +using System; +using System.Xml; +using SAF.Configuration; + +namespace Application.Configuration +{ + /// + /// A sample configuration system for the business application + /// it shows how you can extend the SAF.Configuraiton with your custom + /// configuration manager and objectsl + /// + public class AppConfigurationManager + { + public DatabaseConfiguration DatabaseConfig; + public MessageQueueConfiguration MessageQueueConfig; + private XmlNode configurationData; + /// + /// the constructor start the chain reaction of + /// creating all the configuration object used by the application + /// + /// the xml element containing the configuraiton settings + public AppConfigurationManager(XmlNode sections) + { + configurationData = sections; + ConfigurationAgentManager cam = new ConfigurationAgentManager(configurationData); + //create the indivdual configuraiton object and assign them to the public fields + DatabaseConfig = new DatabaseConfiguration(cam.GetData("Application.Database")); + MessageQueueConfig = new MessageQueueConfiguration(cam.GetData("Application.MessageQueue")); + } + } + + /// + /// Sample configuraiton object + /// + public class DatabaseConfiguration + { + + private XmlNode databaseXml; + /// + /// constructor is called by the configuration manager. + /// + /// + public DatabaseConfiguration (XmlNode configData) + { + databaseXml = configData; + } + /// + /// method that parse the information out of the Xml + /// + /// + public string GetDatabaseConnection() + { + return databaseXml.SelectSingleNode("ConnectionString").InnerText; + } + } + + /// + /// sample configuration object + /// + public class MessageQueueConfiguration + { + private XmlNode mqXml; + /// + /// the constructor is called by configuration manager + /// + /// + public MessageQueueConfiguration(XmlNode configData) + { + mqXml = configData; + } + + /// + /// method that parse the information out of the Xml + /// + /// + public string GetCustomerQueueLocation() + { + return mqXml.SelectSingleNode("CustomerQueue").InnerText; + } + + /// + /// method that parse the information out of the Xml + /// + /// + public string GetAccountQueueLocation() + { + return mqXml.SelectSingleNode("AccountQueue").InnerText; + } + } +} diff --git a/SAF/Test.SAF.Configuration/Application.Configuration/bin/Debug/Application.Configuration.dll b/SAF/Test.SAF.Configuration/Application.Configuration/bin/Debug/Application.Configuration.dll new file mode 100644 index 0000000000000000000000000000000000000000..9e36fb0c20f98ddb94802b8866db852fc48fbb26 GIT binary patch literal 4608 zcmeHKPmCK^8UM}rPqJy_BpWqqXauv$MkH-9yJV}9Qc*j0H*A_sHt{x1VIdjY6K9(7 zj59MvHEkdWsR(hY!~rBOAeEkr8Yxi)YNcG;hznIuCYcMrJ9x3r4lgW(#*rLVkK!u5%drfwQ1KAKv- z!X1>R z9x{r+Hgfoq_JczNi%*3QuuJ=961OlUer?x?> zDhy>`qJ++OnXd^m{JuEZMc2Wk4E6+yoB1egdc*wV-#$B6c$c$A?U|KEb$(^piQ+Ol=5v8^@0t>8?tS{BX8BQ$GCk%v043 z#^=UiNiOo#j=RJWlcUXHz-_`qe1tDL!sE`R(H8Md%#yl|TPy}I8^>4~Ld9PyzODGa z;wOrqDV9vp{HkI_@x0>eif^00GE4ZYd5du+qYBDzC!WJgjBiL?Q7X>~i0tP|6&Py~ zzh_iMyu;iy@G)m$;2(-RjY%w7;`fb5SFwluw=$H84-yKWv!dj%nvvy@pQ0Jwz#d~C z$9OWOzOIx+_@1ug-4yp?6&9ux4-pS=rG#@tv8uSBcv|sgMO)ETyrMWDKF+;b#SDH* z+(Z1-oMV|abAr2b`%vZ{9VhNqd`$7M;=Nts1<~s+eBj! z#ZDKeny)ymSd2za+@kH<9Vgt}8R~XyH|@w7F~g!0MKnC!clzrjqxu^trV*9Tbv^Jo z$qyx3*(x9&P;SLRh;}--=pJ+8jBlT_VZ}iAN-C@Mqd4d~p@wuKNQ#IURa>o~@5iJ3 zWL3&%oQq!Ss2W91x9JUDa0Vysu2YR!6Po?lK}Im|dK(Dpj%N=VZpR1l$<{-fc@mNi(g zJx7zLdR-pb>DM?y^y2$)W%~qYDVM)=u#`pTJNpWszphkx^Y&*qka2p9~{25Bdq`W z4>yk=2=3j+)*C-sIlFi6&M$Js$%pyu=l=54Q z$tsnrxh+P?ES3s}l#wD!y>#Z%yO8isO5c*+cpKiC63O{m5Y|0!(RO+2q`EkcRvMAs zJ3t@2iu|uM`N9E@0@p?(mTw{WZ5Zc^p4=VJRe(xb&4pLtcLO+!2F??o#~Jn(c+);f zdVx5f+`94S{HOm+>b!yLxx2g;B=6_M37gyr_^}&lby5bs+RUMOW|zloT43H>Wd2B- zR;y)7ZE_>Z*K%DI@J{}B`UTDA=eVcWRcD6tPJVMdA6x@|wdF1#`QFt`mW-84lEr5_ zBkSq-1J2e~J&IN5N!1ySS7-DQb6?I$kDihudw7Ej?D zc$&Q`JWun>aj3+1gB1h@)JjyB#qbj3K4{}#LsB<_$za8}| zHa!e<79CuoMRu-hddaS|Y1gG)h|9WiiEdltJ(c>9sv+?X=Ps1g4d6eCJK3KljuCJ! zeXUjN_ot$3KB}{RQPL%o>j?V=-f;>aFeGgM4tBUre)-{~0eF`C^9q K|0w@mEATI0qqMOA literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Configuration/Application.Configuration/bin/Debug/Application.Configuration.pdb b/SAF/Test.SAF.Configuration/Application.Configuration/bin/Debug/Application.Configuration.pdb new file mode 100644 index 0000000000000000000000000000000000000000..e6d22605f1752f7d723f5aecd673e995fa536ae0 GIT binary patch literal 15872 zcmeHNU2Icj82-9;Wg8n%CT%y zd%yGjfA8P-o$s`FI24Pg|=kTG`_0U>sXy0&Ibrm_XP!^2lu}Sqa?SvwQP} zd6ztg`_#Ez@0T4vzvbzpzyAEK=kR9ZdH%a^zvu~H@|<0*)Xj<=XLAXn7(J;GldS`s zfE!o_)B^K?N}wF525Nu>z(Rm--~ko`4**MnCBQtO6seT;Pn*1x4OBp(E?_R(K(_c# zxmn{spK1G#e=UBPxyrXG~(-OT4XLDQsQxxJotj-wihr%v{^F2`Z_zOrU0s1cEvYeqA z%h`tKCX(n~xa2h=Vf#O&QQUOv+O2EU-Fuv7Xyaf!7#>V$@q`x%ZzviG5APj|1rx*3 z$Y5~){*mF3p3W#qt2Y{q1ovt&Zz!%*VB=t4*Ve&)c8G*Gkk(a6>@@`e)87|(Z358HhOY+)gYHdLh= zJbkal6WS=>rzPzj7#(37JZD+}+B|~%oOXb6_G2kWKlS=tapurDs;E$K6lV~(4hLq! z^CXGu;Jkn>oiM@!Wd@7y?Ml7g{d%rmFUe=zMI?Fm@E|zA?%-tq)v8?TG2l6%9~gqgyVO4@XB;+0Hqv-B*1k{);a>W%@sTmt^$? z$lBeHJn@B|U?R9D7}s#Bh-e|6WsEp@26c|165C4sV)p~e+ORF-y*r6#`U3O027={< z+CJh>YX3itG)ZihY1o`w^qaZ=+xpi{Y077qyNUf02d7*AkphqM9G_$Jet>D(**ZYt zona%{;~m=Q@oo)x4cd6YovKZ_aKhnPM&cd&WZ&Y;)_8}p^tiPi+=ZEBI|D63`|p9@ z0T=wb(TojvOi`AsR9PX3eC_j<7c$1}b!Mhlj>Gr;x=P>mA*7oj@ISyg+A91bf5CkI z!Q{}Pp3gFZ_r2s_n7qs6Z<@Ruh4@oP&1a_XMES}y+LkduSt(!peC5`@vZeF2&sUzU z&-{5a(`){5r>_RzRjgEvhgyK=ne705e+U=>4ghZfB)+RSRqhv>Wongvem3g)*X!qJ z1c}A!aXp{=Tba3WNnIn)th-jJm1bR@2g*2BmIH&dHR_mcTRFq~o2+tjWRa6YnQLuH zm#H&LU8mG-Q|bweOm+R`cnP!0HPs%$UfSFGpIQ6jo|%heZ;*1Ut=RfUq$vUar;hm> z0G{h`x8G5%erezt?EvELN$_TXFA>;V9N$m_A(aNf$njh;eVkj#rvUgJRSl#_V{l<>Qi8i z++$ldfXNGR)gI_x*Vg98j$x3Dm3{0=bqr?{z9XFnIOxrV^9opZuNIHv0$snXN)v!u zySBTv+uzp3(bs(Dy)Fyk**lY1#(a5~le(}*mX6~1~ zziBoQx!4@JQ@1n+ zTJTNKIGzv8@`SxW_O_pLf0Vgvt(VKa=e_0E@q{WKX z{|mg+2u$Qf&I)03GwbTH=2b13l;hkOUb2zk`GL5o52yU*-2-oyarXqWJ$e zVh!9b7`M1}@C;K6;Jh>Ee+SIpM_cuO@IKW)b-WzldPK+6H+5VA@Q6?i@NCPyZ7%-S Z8_T|pR@|0jXV?<3C16XymcU$)!2g{E6{Y|H literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Configuration/Application.Configuration/bin/Debug/SAF.Configuration.dll b/SAF/Test.SAF.Configuration/Application.Configuration/bin/Debug/SAF.Configuration.dll new file mode 100644 index 0000000000000000000000000000000000000000..967e97f09dbf0014cad68ef8204bb2907ada4753 GIT binary patch literal 11776 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 XM;_oDFhSUeJc9ojtN<$zPX&Gf+ShFN literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Configuration/Application.Configuration/obj/Debug/Application.Configuration.dll b/SAF/Test.SAF.Configuration/Application.Configuration/obj/Debug/Application.Configuration.dll new file mode 100644 index 0000000000000000000000000000000000000000..9e36fb0c20f98ddb94802b8866db852fc48fbb26 GIT binary patch literal 4608 zcmeHKPmCK^8UM}rPqJy_BpWqqXauv$MkH-9yJV}9Qc*j0H*A_sHt{x1VIdjY6K9(7 zj59MvHEkdWsR(hY!~rBOAeEkr8Yxi)YNcG;hznIuCYcMrJ9x3r4lgW(#*rLVkK!u5%drfwQ1KAKv- z!X1>R z9x{r+Hgfoq_JczNi%*3QuuJ=961OlUer?x?> zDhy>`qJ++OnXd^m{JuEZMc2Wk4E6+yoB1egdc*wV-#$B6c$c$A?U|KEb$(^piQ+Ol=5v8^@0t>8?tS{BX8BQ$GCk%v043 z#^=UiNiOo#j=RJWlcUXHz-_`qe1tDL!sE`R(H8Md%#yl|TPy}I8^>4~Ld9PyzODGa z;wOrqDV9vp{HkI_@x0>eif^00GE4ZYd5du+qYBDzC!WJgjBiL?Q7X>~i0tP|6&Py~ zzh_iMyu;iy@G)m$;2(-RjY%w7;`fb5SFwluw=$H84-yKWv!dj%nvvy@pQ0Jwz#d~C z$9OWOzOIx+_@1ug-4yp?6&9ux4-pS=rG#@tv8uSBcv|sgMO)ETyrMWDKF+;b#SDH* z+(Z1-oMV|abAr2b`%vZ{9VhNqd`$7M;=Nts1<~s+eBj! z#ZDKeny)ymSd2za+@kH<9Vgt}8R~XyH|@w7F~g!0MKnC!clzrjqxu^trV*9Tbv^Jo z$qyx3*(x9&P;SLRh;}--=pJ+8jBlT_VZ}iAN-C@Mqd4d~p@wuKNQ#IURa>o~@5iJ3 zWL3&%oQq!Ss2W91x9JUDa0Vysu2YR!6Po?lK}Im|dK(Dpj%N=VZpR1l$<{-fc@mNi(g zJx7zLdR-pb>DM?y^y2$)W%~qYDVM)=u#`pTJNpWszphkx^Y&*qka2p9~{25Bdq`W z4>yk=2=3j+)*C-sIlFi6&M$Js$%pyu=l=54Q z$tsnrxh+P?ES3s}l#wD!y>#Z%yO8isO5c*+cpKiC63O{m5Y|0!(RO+2q`EkcRvMAs zJ3t@2iu|uM`N9E@0@p?(mTw{WZ5Zc^p4=VJRe(xb&4pLtcLO+!2F??o#~Jn(c+);f zdVx5f+`94S{HOm+>b!yLxx2g;B=6_M37gyr_^}&lby5bs+RUMOW|zloT43H>Wd2B- zR;y)7ZE_>Z*K%DI@J{}B`UTDA=eVcWRcD6tPJVMdA6x@|wdF1#`QFt`mW-84lEr5_ zBkSq-1J2e~J&IN5N!1ySS7-DQb6?I$kDihudw7Ej?D zc$&Q`JWun>aj3+1gB1h@)JjyB#qbj3K4{}#LsB<_$za8}| zHa!e<79CuoMRu-hddaS|Y1gG)h|9WiiEdltJ(c>9sv+?X=Ps1g4d6eCJK3KljuCJ! zeXUjN_ot$3KB}{RQPL%o>j?V=-f;>aFeGgM4tBUre)-{~0eF`C^9q K|0w@mEATI0qqMOA literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Configuration/Application.Configuration/obj/Debug/Application.Configuration.dll.incr b/SAF/Test.SAF.Configuration/Application.Configuration/obj/Debug/Application.Configuration.dll.incr new file mode 100644 index 0000000000000000000000000000000000000000..406fee2c2bdaf3e45dbac435019bac3c1dc9b353 GIT binary patch literal 1602 zcmcgsyKWOf6g_JkP=FeVZY1hhK|CTH3KBbsjN%~0K}Nz7?AmLyun%i@Ok^bmd_47Q7sv$Bjtv+L$qxtTE(s-izJ1!sJwhO zI0ImsE|#N9`y9QDB`o4DRxpnZtYZNsBEPb!2~buzVb$Xc-*(dVky&sHOWv6dMevg0B_uu0*(mTCQ*keWNIsSH8%IQS<*>3*g;nrX@jPFVI z8MVOZB<59cn2UYBJd&>wqtqlWCiG6zA39e*O>YmZ^ts~els((u-=`|ykdWTtS>lxa UNLbOG*_C@v#$<0w-UCzq09FDPH2?qr literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Configuration/Application.Configuration/obj/Debug/Application.Configuration.pdb b/SAF/Test.SAF.Configuration/Application.Configuration/obj/Debug/Application.Configuration.pdb new file mode 100644 index 0000000000000000000000000000000000000000..e6d22605f1752f7d723f5aecd673e995fa536ae0 GIT binary patch literal 15872 zcmeHNU2Icj82-9;Wg8n%CT%y zd%yGjfA8P-o$s`FI24Pg|=kTG`_0U>sXy0&Ibrm_XP!^2lu}Sqa?SvwQP} zd6ztg`_#Ez@0T4vzvbzpzyAEK=kR9ZdH%a^zvu~H@|<0*)Xj<=XLAXn7(J;GldS`s zfE!o_)B^K?N}wF525Nu>z(Rm--~ko`4**MnCBQtO6seT;Pn*1x4OBp(E?_R(K(_c# zxmn{spK1G#e=UBPxyrXG~(-OT4XLDQsQxxJotj-wihr%v{^F2`Z_zOrU0s1cEvYeqA z%h`tKCX(n~xa2h=Vf#O&QQUOv+O2EU-Fuv7Xyaf!7#>V$@q`x%ZzviG5APj|1rx*3 z$Y5~){*mF3p3W#qt2Y{q1ovt&Zz!%*VB=t4*Ve&)c8G*Gkk(a6>@@`e)87|(Z358HhOY+)gYHdLh= zJbkal6WS=>rzPzj7#(37JZD+}+B|~%oOXb6_G2kWKlS=tapurDs;E$K6lV~(4hLq! z^CXGu;Jkn>oiM@!Wd@7y?Ml7g{d%rmFUe=zMI?Fm@E|zA?%-tq)v8?TG2l6%9~gqgyVO4@XB;+0Hqv-B*1k{);a>W%@sTmt^$? z$lBeHJn@B|U?R9D7}s#Bh-e|6WsEp@26c|165C4sV)p~e+ORF-y*r6#`U3O027={< z+CJh>YX3itG)ZihY1o`w^qaZ=+xpi{Y077qyNUf02d7*AkphqM9G_$Jet>D(**ZYt zona%{;~m=Q@oo)x4cd6YovKZ_aKhnPM&cd&WZ&Y;)_8}p^tiPi+=ZEBI|D63`|p9@ z0T=wb(TojvOi`AsR9PX3eC_j<7c$1}b!Mhlj>Gr;x=P>mA*7oj@ISyg+A91bf5CkI z!Q{}Pp3gFZ_r2s_n7qs6Z<@Ruh4@oP&1a_XMES}y+LkduSt(!peC5`@vZeF2&sUzU z&-{5a(`){5r>_RzRjgEvhgyK=ne705e+U=>4ghZfB)+RSRqhv>Wongvem3g)*X!qJ z1c}A!aXp{=Tba3WNnIn)th-jJm1bR@2g*2BmIH&dHR_mcTRFq~o2+tjWRa6YnQLuH zm#H&LU8mG-Q|bweOm+R`cnP!0HPs%$UfSFGpIQ6jo|%heZ;*1Ut=RfUq$vUar;hm> z0G{h`x8G5%erezt?EvELN$_TXFA>;V9N$m_A(aNf$njh;eVkj#rvUgJRSl#_V{l<>Qi8i z++$ldfXNGR)gI_x*Vg98j$x3Dm3{0=bqr?{z9XFnIOxrV^9opZuNIHv0$snXN)v!u zySBTv+uzp3(bs(Dy)Fyk**lY1#(a5~le(}*mX6~1~ zziBoQx!4@JQ@1n+ zTJTNKIGzv8@`SxW_O_pLf0Vgvt(VKa=e_0E@q{WKX z{|mg+2u$Qf&I)03GwbTH=2b13l;hkOUb2zk`GL5o52yU*-2-oyarXqWJ$e zVh!9b7`M1}@C;K6;Jh>Ee+SIpM_cuO@IKW)b-WzldPK+6H+5VA@Q6?i@NCPyZ7%-S Z8_T|pR@|0jXV?<3C16XymcU$)!2g{E6{Y|H literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Configuration/Application.Configuration/obj/Debug/Application.Configuration.projdata b/SAF/Test.SAF.Configuration/Application.Configuration/obj/Debug/Application.Configuration.projdata new file mode 100644 index 0000000000000000000000000000000000000000..ee31e37fca5e8ebe169aa167294f6e00750b1dce GIT binary patch literal 7176 zcmeI1&u>&!6vxj1Eh9nG1*m`_FU1(Z(l(~)!W5DQgO~`xXbdrgFm0zWrVKbUH5v(- z1tAR~#;`DPXZQnac-v;o zWZ+DOSENfLmYdCNz_Vr(_Lkd) z8hY291^rjl8mHV|w}Z#uV|VM02F==zMdva94klN3nte!rjQ(2Hg_+&veHAyHhJRCh z`pqz=y31@i@T+5HpVF6{wU>OXI%n~*wlDU|c32N|nIKYR%8$Egaj{*;*Y_a)C49BL zkdIcgUwgds5p1>#LHT(;s{I<0b75iTm*=kCulyjv2>qG`wg1XLhqX8|_79BBVPkjH zCSD&$@N0!)c%!kdRl2P5Dw#-`vsccFhyw+7mW;7try08hlFT&!A?@(^-){$4vxB6T z9n8r+gv6>HsZ^Zo2bDQiyTa&W_Pp(|IdH#<9+yFNi`?b89lL}^Nw7oty~U`wLc*Mm z8{c6}I`$I026iWmuG80epZOD3T!ya|7sFe{{)zjiRX2=6IJdvQ6+PWRJakoNhNgK|w$2Nb)C~02jQ~BSYl+kbU zk!*~1rk={%*Fd6p@@$=c^i7-nnaXGu_iXC%9(q&?y+YX;NPRtLA@RNoeH!}_sz8rI zpT_=zM#20UUQ9zDX~0u^y5K#5bS?=0t`@NrJ4fa$K;iJ4)wD!*y2{E<4#@Sd5XIF?BNOAn+=$f#%T|~xN>nnvO?^0|i za}^(b(3F|B+7WxfelFx;;Y%1&zVujEgd_nULQa|iggMnF^Y}|UvI>Sf13fttJXv&x z_ak6(2p4e2L!ZVDLqdC(_5ySZy1^i!T__jYA3+aD50SS8B#O7m4=Stv);&x3FYE8J z{?6vCd`>LuZ{3;xd-b<|a}oZ_`aAoJWxfWO40q;X?~qwU4Oaz}^>@7U=4)-CFwcuM z+Ot=G>$gqeudKh*yW0A@Z`|9m{(kmu!Dap3uZr*TVgl0d0>c0F)opw3eR02{Yq&^! MT>|v~D4X&815%*%G5`Po literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Configuration/ConfigurationData/AssemblyInfo.cs b/SAF/Test.SAF.Configuration/ConfigurationData/AssemblyInfo.cs new file mode 100644 index 0000000..b26491c --- /dev/null +++ b/SAF/Test.SAF.Configuration/ConfigurationData/AssemblyInfo.cs @@ -0,0 +1,62 @@ +using System.Reflection; +using System.Runtime.CompilerServices; + +// +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +// +[assembly: AssemblyTitle("")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("")] +[assembly: AssemblyCopyright("")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: + +[assembly: AssemblyVersion("1.0.*")] + +// +// In order to sign your assembly you must specify a key to use. Refer to the +// Microsoft .NET Framework documentation for more information on assembly signing. +// +// Use the attributes below to control which key is used for signing. +// +// Notes: +// (*) If no key is specified, the assembly is not signed. +// (*) KeyName refers to a key that has been installed in the Crypto Service +// Provider (CSP) on your machine. KeyFile refers to a file which contains +// a key. +// (*) If the KeyFile and the KeyName values are both specified, the +// following processing occurs: +// (1) If the KeyName can be found in the CSP, that key is used. +// (2) If the KeyName does not exist and the KeyFile does exist, the key +// in the KeyFile is installed into the CSP and used. +// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. +// When specifying the KeyFile, the location of the KeyFile should be +// relative to the "project output directory". The location of the project output +// directory is dependent on whether you are working with a local or web project. +// For local projects, the project output directory is defined as +// \obj\. For example, if your KeyFile is +// located in the project directory, you would specify the AssemblyKeyFile +// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] +// For web projects, the project output directory is defined as +// %HOMEPATH%\VSWebCache\\\obj\. +// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework +// documentation for more information on this. +// +[assembly: AssemblyDelaySign(false)] +[assembly: AssemblyKeyFile("")] +[assembly: AssemblyKeyName("")] diff --git a/SAF/Test.SAF.Configuration/ConfigurationData/ConfigurationData.csproj b/SAF/Test.SAF.Configuration/ConfigurationData/ConfigurationData.csproj new file mode 100644 index 0000000..eb949b8 --- /dev/null +++ b/SAF/Test.SAF.Configuration/ConfigurationData/ConfigurationData.csproj @@ -0,0 +1,138 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SAF/Test.SAF.Configuration/ConfigurationData/ConfigurationData.csproj.webinfo b/SAF/Test.SAF.Configuration/ConfigurationData/ConfigurationData.csproj.webinfo new file mode 100644 index 0000000..fcf7c38 --- /dev/null +++ b/SAF/Test.SAF.Configuration/ConfigurationData/ConfigurationData.csproj.webinfo @@ -0,0 +1,4 @@ + + + + diff --git a/SAF/Test.SAF.Configuration/ConfigurationData/ConfigurationData.vsdisco b/SAF/Test.SAF.Configuration/ConfigurationData/ConfigurationData.vsdisco new file mode 100644 index 0000000..10b0ed1 --- /dev/null +++ b/SAF/Test.SAF.Configuration/ConfigurationData/ConfigurationData.vsdisco @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/SAF/Test.SAF.Configuration/ConfigurationData/ConfigurationService.asmx b/SAF/Test.SAF.Configuration/ConfigurationData/ConfigurationService.asmx new file mode 100644 index 0000000..b5412a8 --- /dev/null +++ b/SAF/Test.SAF.Configuration/ConfigurationData/ConfigurationService.asmx @@ -0,0 +1 @@ +<%@ WebService Language="c#" Codebehind="ConfigurationService.asmx.cs" Class="ConfigurationData.ConfigurationService" %> diff --git a/SAF/Test.SAF.Configuration/ConfigurationData/ConfigurationService.asmx.cs b/SAF/Test.SAF.Configuration/ConfigurationData/ConfigurationService.asmx.cs new file mode 100644 index 0000000..c658a95 --- /dev/null +++ b/SAF/Test.SAF.Configuration/ConfigurationData/ConfigurationService.asmx.cs @@ -0,0 +1,69 @@ +using System; +using System.Collections; +using System.ComponentModel; +using System.Data; +using System.Diagnostics; +using System.Web; +using System.Web.Services; + +namespace ConfigurationData +{ + /// + /// Summary description for Service1. + /// + public class ConfigurationService : System.Web.Services.WebService + { + public ConfigurationService() + { + //CODEGEN: This call is required by the ASP.NET Web Services Designer + InitializeComponent(); + } + + #region Component Designer generated code + + //Required by the Web Services Designer + private IContainer components = null; + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + } + + /// + /// Clean up any resources being used. + /// + protected override void Dispose( bool disposing ) + { + if(disposing && components != null) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #endregion + + + /// + /// the method that returns the configuration information stored in + /// the centralized location via web service. + /// + [WebMethod] + public string GetConfiguration(string section, string environment) + { + string qa = @"Direct=OS:.\customerDirect=OS:.\account"; + string test = @"Direct=OS:.\test_customerDirect=OS:.\test_account"; + if (environment == "QAEnvironment" && section == "Application.MessageQueue") + { + return qa; + } + else + { + return test; + } + } + } +} diff --git a/SAF/Test.SAF.Configuration/ConfigurationData/ConfigurationService.asmx.resx b/SAF/Test.SAF.Configuration/ConfigurationData/ConfigurationService.asmx.resx new file mode 100644 index 0000000..7e32396 --- /dev/null +++ b/SAF/Test.SAF.Configuration/ConfigurationData/ConfigurationService.asmx.resx @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 1.0.0.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.3102.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.3102.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + diff --git a/SAF/Test.SAF.Configuration/ConfigurationData/Global.asax b/SAF/Test.SAF.Configuration/ConfigurationData/Global.asax new file mode 100644 index 0000000..a89d18c --- /dev/null +++ b/SAF/Test.SAF.Configuration/ConfigurationData/Global.asax @@ -0,0 +1 @@ +<%@ Application Codebehind="Global.asax.cs" Inherits="ConfigurationData.Global" %> diff --git a/SAF/Test.SAF.Configuration/ConfigurationData/Global.asax.cs b/SAF/Test.SAF.Configuration/ConfigurationData/Global.asax.cs new file mode 100644 index 0000000..9885319 --- /dev/null +++ b/SAF/Test.SAF.Configuration/ConfigurationData/Global.asax.cs @@ -0,0 +1,70 @@ +using System; +using System.Collections; +using System.ComponentModel; +using System.Web; +using System.Web.SessionState; + +namespace ConfigurationData +{ + /// + /// Summary description for Global. + /// + public class Global : System.Web.HttpApplication + { + public Global() + { + InitializeComponent(); + } + + protected void Application_Start(Object sender, EventArgs e) + { + + } + + protected void Session_Start(Object sender, EventArgs e) + { + + } + + protected void Application_BeginRequest(Object sender, EventArgs e) + { + + } + + protected void Application_EndRequest(Object sender, EventArgs e) + { + + } + + protected void Application_AuthenticateRequest(Object sender, EventArgs e) + { + + } + + protected void Application_Error(Object sender, EventArgs e) + { + + } + + protected void Session_End(Object sender, EventArgs e) + { + + } + + protected void Application_End(Object sender, EventArgs e) + { + + } + + #region Web Form Designer generated code + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + } + #endregion + } +} + diff --git a/SAF/Test.SAF.Configuration/ConfigurationData/Global.asax.resx b/SAF/Test.SAF.Configuration/ConfigurationData/Global.asax.resx new file mode 100644 index 0000000..7e32396 --- /dev/null +++ b/SAF/Test.SAF.Configuration/ConfigurationData/Global.asax.resx @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 1.0.0.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.3102.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.3102.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + diff --git a/SAF/Test.SAF.Configuration/ConfigurationData/Web.config b/SAF/Test.SAF.Configuration/ConfigurationData/Web.config new file mode 100644 index 0000000..3803940 --- /dev/null +++ b/SAF/Test.SAF.Configuration/ConfigurationData/Web.config @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SAF/Test.SAF.Configuration/ConfigurationData/_vti_pvt/access.cnf b/SAF/Test.SAF.Configuration/ConfigurationData/_vti_pvt/access.cnf new file mode 100644 index 0000000..bea0003 --- /dev/null +++ b/SAF/Test.SAF.Configuration/ConfigurationData/_vti_pvt/access.cnf @@ -0,0 +1,4 @@ +vti_encoding:SR|utf8-nl +RealmName:AVANADE-C006T6X +InheritPermissions:true +PasswordDir:c:\\inetpub\\wwwroot\\_vti_pvt diff --git a/SAF/Test.SAF.Configuration/ConfigurationData/_vti_pvt/deptodoc.btr b/SAF/Test.SAF.Configuration/ConfigurationData/_vti_pvt/deptodoc.btr new file mode 100644 index 0000000000000000000000000000000000000000..4762cd90931319d98b396f3ee9640086ede4ee1e GIT binary patch literal 324 xcmb1PWMFUsVjdti6=E0#z!2a8VjUp<4+RWN&|m?E5f_jN!XT;4;=}@w3;;#<4yOPB literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Configuration/ConfigurationData/_vti_pvt/doctodep.btr b/SAF/Test.SAF.Configuration/ConfigurationData/_vti_pvt/doctodep.btr new file mode 100644 index 0000000000000000000000000000000000000000..4b85379668e9a1f2fa1b5208103367d12c5cdbb7 GIT binary patch literal 324 wcmb1PWMFUsVjdti6-q5;7zGSGz%bAO;{Q;I=$nIH_3f{HQ#06;(u(f|Me literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Configuration/ConfigurationData/_vti_pvt/service.cnf b/SAF/Test.SAF.Configuration/ConfigurationData/_vti_pvt/service.cnf new file mode 100644 index 0000000..924de14 --- /dev/null +++ b/SAF/Test.SAF.Configuration/ConfigurationData/_vti_pvt/service.cnf @@ -0,0 +1,20 @@ +vti_encoding:SR|utf8-nl +vti_casesensitiveurls:IX|0 +vti_httpdversion:SX|Microsoft-IIS/5.1 +vti_textextensions:SX|.txt.actproj.asm.c.cc.cod.cpp.cs.cxx.dbs.def.dsp.dsw.etp.ext.fky.h.hpp.hxx.i.idl.inc.inl.kci.lgn.lst.mak.map.mk.odh.odl.prc.rc.rc2.rct.rgs.rul.s.sql.srf.tab.tlh.tli.trg.txt.udf.udt.user.usr.vap.vb.vcproj.viw.vsmproj.vspscc.vsscc.vssscc. +vti_featurelist:VX|vti_ACIPAddresses vti_ACCreateNewUsers vti_ACChangePassword vti_ACNoUserGroup vti_ACCreateNewGroups vti_ACModifyGroups vti_ServiceMarkUrlDirExec vti_ServerEmailTransport vti_ServerIndexServer +vti_dependenciesood:IR|0 +vti_webservertype:SR|msiis +vti_publishmetainfokeys:VR|vti_assignedto vti_approvallevel vti_categories vti_description +vti_categories:VR|Travel Expense\\ Report Business Competition Goals/Objectives Ideas Miscellaneous Waiting VIP In\\ Process Planning Schedule +vti_htmlextensions:SX|.htm.html.stm.html.htm.shtml.shtm.htt.htx.asp.alx.asa. +vti_approvallevels:VR|Content\\ Review Legal\\ Review Code\\ Review Manager\\ Review +vti_timecreated:TR|15 Sep 2003 18:58:51 -0000 +vti_extenderversion:SR|4.0.2.6513 +vti_longfilenames:IX|1 +vti_welcomenames:VX|Default.htm Default.asp index.htm iisstart.asp Default.aspx +vti_insecureserverurl:SR|http://localhost +vti_secureserverurl:SR|https://localhost +vti_disableautoimgsizeexts:SX|.asp +vti_oldestcompatibleversion:SR|2.0.0.0 +vti_restartmanual:IX|0 diff --git a/SAF/Test.SAF.Configuration/ConfigurationData/_vti_pvt/service.lck b/SAF/Test.SAF.Configuration/ConfigurationData/_vti_pvt/service.lck new file mode 100644 index 0000000..e69de29 diff --git a/SAF/Test.SAF.Configuration/ConfigurationData/_vti_pvt/services.cnf b/SAF/Test.SAF.Configuration/ConfigurationData/_vti_pvt/services.cnf new file mode 100644 index 0000000..b498fd4 --- /dev/null +++ b/SAF/Test.SAF.Configuration/ConfigurationData/_vti_pvt/services.cnf @@ -0,0 +1 @@ +/ diff --git a/SAF/Test.SAF.Configuration/ConfigurationData/bin/ConfigurationData.dll b/SAF/Test.SAF.Configuration/ConfigurationData/bin/ConfigurationData.dll new file mode 100644 index 0000000000000000000000000000000000000000..40834c91512e5985a585759bef0d8892d2460b34 GIT binary patch literal 6144 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 DgNNpr literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Configuration/ConfigurationData/bin/ConfigurationData.pdb b/SAF/Test.SAF.Configuration/ConfigurationData/bin/ConfigurationData.pdb new file mode 100644 index 0000000000000000000000000000000000000000..27876e6c9d75a597115b3d3f7f5d89cfff871d32 GIT binary patch literal 17920 zcmeHOU2I&%6`tK}7CShOmzXp$v|Xq}jS0K!kiVusiM?%m_LY{@R$W0iP1nSS7b`0>Gq;ML^dKOrz@n5|j1~spy1?u^K#znXPXPSNR)79)(Q1{wcAXxuvW9LR~B^duk z9htT5*OX~a=-Rd(wD$k9z-J$Q_7U&*oN><{9Lg1}N^xRjXmWD0WZRXYtX&w(ot!9T zDml9_nyF;GIc2MKI+wK)nezBlB3oAKnyNUNw?{I02xT0h2-;5@1N4KkKO0OsAggPE zyZ)96T|^VbmbV^%>e)YqX#48{?h`qF?lI#Sb^%%Uf16$^4B(l09Ai=oC_p(sFZ0Mt z>gGiEezgeWJxo6zRqPswJ>=TT?8M9@^ zU*<_8ja{Fak5gt7;GWyKPmG?D`RHD|eb&ib;Rn{K39F1H?5yGEFvlyXgYqKNNP2$D z=sCp21aRw#JJTqZn$C0Ud89BZTGCJb4Ej9=dCCfZBkA~UqvJ6+5`tSt+!IIPG8gLD zJ5hN8ev@w55@o?heTSjz0P12rBHKv%ir?AA3vqy3U)+gDIX9g=&zP1<;#W^Vw=T$% zM|c}aKZ!d{yxa%4^+PO(PDq~k9n4qqaqLpiD*`#n2wx-VCS&(u9o-NUqo+kT&)C)U zYk}McMnBlwST!s@RxW^9fWulXkceIeJR_46i`HHz7}1;cp}z zL+DvM`o=v8&$R3(!hqr=d7h~!0ehPbYY4sbspD?r?bQka#kn^w# zJO`Wx&Hy=R+kpeXVPF+_4#>01W#AQHB#gKK%w@q?l4Cp^kxXvW{JmK8UlriTP zKPyGhyzKvH*%tu&D}bgs{q(%@?fKHBy!Vwe5$Cx)-_ZHUInBB1=wE5Qc}^66 z=r{<`(dYwHM`;J@rIzrAS5bTwOym>(^=60NW{-9iN)x`MiSr-6D0(NJ96R*q%0;_u zv4F9Fb8;5=MWlsiz3DD7f0zpa0Dm$M$cjFMl%xA2R>gDQfPC6O!9d)#d+b_8T#v3wp(sKQ?Q>z#27>N^C|SAg5z9+t%wSG`|MjZFhl} z-_;BKQJF>KjHGbz{piuj$Mm1riwJm_7)~y~Wo-?*siN zDB4iHpb5}4XhdC95%ntY1lrjGH0_6qpC{e(C~n8aM-_zaZ~_ z4E-k(OpE`x-{ik%=nhkU2|VO`&rs;>q~9{-ytrohxRKjv=y{V*r^WIR4O$ltJGqOO z*A>#6OIOh{@=feR4KRy*;4SwRBDqZc%ak8pP$9qR=x9!U{60!JUcWYW`?;~(dE~QC zmrVX2On$FPvyAvdlRj$7Glm{F<-e19O*$BV7{d7qjjD*eh`i=A@(7Fx)BZ4w z;FYg`IVtsMepAmn82^P42u3j=u|d)Sz4k^OtD*o9X=8a!ue-umFW$o0k1p#Hu{rT6Ua=}n~{c7&F0uUWl~ z9mz#-zHiza*w(p3dyhCDBdMPKdynky+k2~xKYyF?TVN|}g|IpQjra3-rVR%SVhFiZ zaH3!M`;JmJIhM;?<>co-tS8IYSDEiiGHkM(U!QQ6ody!Py<)Ek)PgGs6U5;o|Ghw- z=x^V=qIeqs8t%t+u0{|M&SR~eB@T9L7xBmfy?>-dcL1i zmvMpqKMrIJxEuIoAU9ksKt^0fS?($EF8i8(`^k93-+gkQ$(X`DN&u^4fqPb`+Mw2T HVuAkwMu2mN literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Configuration/Test.SAF.Configuration.sln b/SAF/Test.SAF.Configuration/Test.SAF.Configuration.sln new file mode 100644 index 0000000..034bc8d --- /dev/null +++ b/SAF/Test.SAF.Configuration/Test.SAF.Configuration.sln @@ -0,0 +1,45 @@ +Microsoft Visual Studio Solution File, Format Version 7.00 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SAF.Configuration", "..\SAF.Configuration\SAF.Configuration.csproj", "{CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestConsole", "TestConsole\TestConsole.csproj", "{271F07F5-3CA2-4699-81DF-7A3B71CAFA44}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Application.Configuration", "Application.Configuration\Application.Configuration.csproj", "{BEF04072-BB93-40AD-8378-8A9F7521D38B}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestConfigurationAgent", "TestConfigurationAgent\TestConfigurationAgent.csproj", "{E08436B4-D2DB-4813-BE55-E94A0005741C}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConfigurationData", "http://localhost/ConfigurationData/ConfigurationData.csproj", "{D003ED90-9935-4C8E-A7E6-B72996A7F9C7}" +EndProject +Global + GlobalSection(SolutionConfiguration) = preSolution + ConfigName.0 = Debug + ConfigName.1 = Release + EndGlobalSection + GlobalSection(ProjectDependencies) = postSolution + EndGlobalSection + GlobalSection(ProjectConfiguration) = postSolution + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Debug.ActiveCfg = Debug|.NET + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Debug.Build.0 = Debug|.NET + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Release.ActiveCfg = Release|.NET + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Release.Build.0 = Release|.NET + {271F07F5-3CA2-4699-81DF-7A3B71CAFA44}.Debug.ActiveCfg = Debug|.NET + {271F07F5-3CA2-4699-81DF-7A3B71CAFA44}.Debug.Build.0 = Debug|.NET + {271F07F5-3CA2-4699-81DF-7A3B71CAFA44}.Release.ActiveCfg = Release|.NET + {271F07F5-3CA2-4699-81DF-7A3B71CAFA44}.Release.Build.0 = Release|.NET + {BEF04072-BB93-40AD-8378-8A9F7521D38B}.Debug.ActiveCfg = Debug|.NET + {BEF04072-BB93-40AD-8378-8A9F7521D38B}.Debug.Build.0 = Debug|.NET + {BEF04072-BB93-40AD-8378-8A9F7521D38B}.Release.ActiveCfg = Release|.NET + {BEF04072-BB93-40AD-8378-8A9F7521D38B}.Release.Build.0 = Release|.NET + {E08436B4-D2DB-4813-BE55-E94A0005741C}.Debug.ActiveCfg = Debug|.NET + {E08436B4-D2DB-4813-BE55-E94A0005741C}.Debug.Build.0 = Debug|.NET + {E08436B4-D2DB-4813-BE55-E94A0005741C}.Release.ActiveCfg = Release|.NET + {E08436B4-D2DB-4813-BE55-E94A0005741C}.Release.Build.0 = Release|.NET + {D003ED90-9935-4C8E-A7E6-B72996A7F9C7}.Debug.ActiveCfg = Debug|.NET + {D003ED90-9935-4C8E-A7E6-B72996A7F9C7}.Debug.Build.0 = Debug|.NET + {D003ED90-9935-4C8E-A7E6-B72996A7F9C7}.Release.ActiveCfg = Release|.NET + {D003ED90-9935-4C8E-A7E6-B72996A7F9C7}.Release.Build.0 = Release|.NET + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + EndGlobalSection + GlobalSection(ExtensibilityAddIns) = postSolution + EndGlobalSection +EndGlobal diff --git a/SAF/Test.SAF.Configuration/Test.SAF.Configuration.suo b/SAF/Test.SAF.Configuration/Test.SAF.Configuration.suo new file mode 100644 index 0000000000000000000000000000000000000000..c1179eee64927c8447e1aa906bbf5003f557c822 GIT binary patch literal 14848 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 PLh*6*-6(HgOL5@8?@pc# literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Configuration/TestConfigurationAgent/AssemblyInfo.cs b/SAF/Test.SAF.Configuration/TestConfigurationAgent/AssemblyInfo.cs new file mode 100644 index 0000000..9f89a32 --- /dev/null +++ b/SAF/Test.SAF.Configuration/TestConfigurationAgent/AssemblyInfo.cs @@ -0,0 +1,58 @@ +using System.Reflection; +using System.Runtime.CompilerServices; + +// +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +// +[assembly: AssemblyTitle("")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("")] +[assembly: AssemblyCopyright("")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: + +[assembly: AssemblyVersion("1.0.*")] + +// +// In order to sign your assembly you must specify a key to use. Refer to the +// Microsoft .NET Framework documentation for more information on assembly signing. +// +// Use the attributes below to control which key is used for signing. +// +// Notes: +// (*) If no key is specified, the assembly is not signed. +// (*) KeyName refers to a key that has been installed in the Crypto Service +// Provider (CSP) on your machine. KeyFile refers to a file which contains +// a key. +// (*) If the KeyFile and the KeyName values are both specified, the +// following processing occurs: +// (1) If the KeyName can be found in the CSP, that key is used. +// (2) If the KeyName does not exist and the KeyFile does exist, the key +// in the KeyFile is installed into the CSP and used. +// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. +// When specifying the KeyFile, the location of the KeyFile should be +// relative to the project output directory which is +// %Project Directory%\obj\. For example, if your KeyFile is +// located in the project directory, you would specify the AssemblyKeyFile +// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] +// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework +// documentation for more information on this. +// +[assembly: AssemblyDelaySign(false)] +[assembly: AssemblyKeyFile("")] +[assembly: AssemblyKeyName("")] diff --git a/SAF/Test.SAF.Configuration/TestConfigurationAgent/TestConfigurationAgent.cs b/SAF/Test.SAF.Configuration/TestConfigurationAgent/TestConfigurationAgent.cs new file mode 100644 index 0000000..4fc23d0 --- /dev/null +++ b/SAF/Test.SAF.Configuration/TestConfigurationAgent/TestConfigurationAgent.cs @@ -0,0 +1,42 @@ +using System; +using SAF.Configuration; +using System.Xml; + +namespace TestConfigurationAgent +{ + /// + /// A sample Agent class that is responsible for retrieve configuration + /// data stored in other system via web service. + /// + public class ConfigurationWSAgent : IConfigurationAgent + { + private string section; + private string environment; + private string url; + public ConfigurationWSAgent(){} + /// + /// this method sets up the agent with parameters information + /// defined in the configuration file. + /// + /// + public void Initialize(XmlNode configData) + { + section= configData.SelectSingleNode("Parameters/Section").InnerText; + environment = configData.SelectSingleNode("Parameters/Environment").InnerText; + + url = configData.SelectSingleNode("Url").InnerText; + } + + /// + /// this method call the web service and retrieve the actual configration data + /// + /// the configuration data + public string GetConfigurationSetting() + { + localhost.ConfigurationService cs = new localhost.ConfigurationService(); + cs.Url = url; + return cs.GetConfiguration(section,environment); + } + + } +} diff --git a/SAF/Test.SAF.Configuration/TestConfigurationAgent/TestConfigurationAgent.csproj b/SAF/Test.SAF.Configuration/TestConfigurationAgent/TestConfigurationAgent.csproj new file mode 100644 index 0000000..8e35adf --- /dev/null +++ b/SAF/Test.SAF.Configuration/TestConfigurationAgent/TestConfigurationAgent.csproj @@ -0,0 +1,134 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SAF/Test.SAF.Configuration/TestConfigurationAgent/TestConfigurationAgent.csproj.user b/SAF/Test.SAF.Configuration/TestConfigurationAgent/TestConfigurationAgent.csproj.user new file mode 100644 index 0000000..29ccfc6 --- /dev/null +++ b/SAF/Test.SAF.Configuration/TestConfigurationAgent/TestConfigurationAgent.csproj.user @@ -0,0 +1,48 @@ + + + + + + + + + + + + diff --git a/SAF/Test.SAF.Configuration/TestConfigurationAgent/Web References/localhost/ConfigurationService.disco b/SAF/Test.SAF.Configuration/TestConfigurationAgent/Web References/localhost/ConfigurationService.disco new file mode 100644 index 0000000..229e85f --- /dev/null +++ b/SAF/Test.SAF.Configuration/TestConfigurationAgent/Web References/localhost/ConfigurationService.disco @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/SAF/Test.SAF.Configuration/TestConfigurationAgent/Web References/localhost/ConfigurationService.wsdl b/SAF/Test.SAF.Configuration/TestConfigurationAgent/Web References/localhost/ConfigurationService.wsdl new file mode 100644 index 0000000..41f72b8 --- /dev/null +++ b/SAF/Test.SAF.Configuration/TestConfigurationAgent/Web References/localhost/ConfigurationService.wsdl @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/SAF/Test.SAF.Configuration/TestConfigurationAgent/Web References/localhost/Reference.cs b/SAF/Test.SAF.Configuration/TestConfigurationAgent/Web References/localhost/Reference.cs new file mode 100644 index 0000000..2627a0c --- /dev/null +++ b/SAF/Test.SAF.Configuration/TestConfigurationAgent/Web References/localhost/Reference.cs @@ -0,0 +1,56 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version: 1.0.3705.288 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +// +// This source code was auto-generated by Microsoft.VSDesigner, Version 1.0.3705.288. +// +namespace TestConfigurationAgent.localhost { + using System.Diagnostics; + using System.Xml.Serialization; + using System; + using System.Web.Services.Protocols; + using System.ComponentModel; + using System.Web.Services; + + + /// + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Web.Services.WebServiceBindingAttribute(Name="ConfigurationServiceSoap", Namespace="http://tempuri.org/")] + public class ConfigurationService : System.Web.Services.Protocols.SoapHttpClientProtocol { + + /// + public ConfigurationService() { + this.Url = "http://localhost/ConfigurationData/ConfigurationService.asmx"; + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetConfiguration", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string GetConfiguration(string section, string environment) { + object[] results = this.Invoke("GetConfiguration", new object[] { + section, + environment}); + return ((string)(results[0])); + } + + /// + public System.IAsyncResult BeginGetConfiguration(string section, string environment, System.AsyncCallback callback, object asyncState) { + return this.BeginInvoke("GetConfiguration", new object[] { + section, + environment}, callback, asyncState); + } + + /// + public string EndGetConfiguration(System.IAsyncResult asyncResult) { + object[] results = this.EndInvoke(asyncResult); + return ((string)(results[0])); + } + } +} diff --git a/SAF/Test.SAF.Configuration/TestConfigurationAgent/Web References/localhost/Reference.map b/SAF/Test.SAF.Configuration/TestConfigurationAgent/Web References/localhost/Reference.map new file mode 100644 index 0000000..1ca59da --- /dev/null +++ b/SAF/Test.SAF.Configuration/TestConfigurationAgent/Web References/localhost/Reference.map @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/SAF/Test.SAF.Configuration/TestConfigurationAgent/bin/Debug/SAF.Configuration.dll b/SAF/Test.SAF.Configuration/TestConfigurationAgent/bin/Debug/SAF.Configuration.dll new file mode 100644 index 0000000000000000000000000000000000000000..967e97f09dbf0014cad68ef8204bb2907ada4753 GIT binary patch literal 11776 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 XM;_oDFhSUeJc9ojtN<$zPX&Gf+ShFN literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Configuration/TestConfigurationAgent/bin/Debug/TestConfigurationAgent.dll b/SAF/Test.SAF.Configuration/TestConfigurationAgent/bin/Debug/TestConfigurationAgent.dll new file mode 100644 index 0000000000000000000000000000000000000000..1729ae8af5227976c6eff9480807482b2da4dd18 GIT binary patch literal 6144 zcmeHLYit}>6+SbwUfY{w$=cLOR9lR3B21dB*Enes(=>i;9?sKb*GXE8?Ai78dYajp z&CINuZIt2=sWga3c?eo6UR99*HEIx%+JX>5`~ZGLoBGIbhJ9ozR zZgyh?5*0skSM$xe=bm%!xo6IO?U6^HA&rP4cy8Y&dKGUjLlRep1vJOs^ZhtoZN1k0 zs&e>RcXrP7^pfioT%)Mx4cm5nJtuUxZ0n}2r;layqBA3sYu3azhNj2&5*=1FdhL4$ zhe8(Jpm_HxB}%jw9K5)^y%nJ28Nx%9khB{3%?$QmmIWaATzFj42-{&}^1bw8CS8Hu zLre@2JrgK!ZMjSntw!zHZlca*?!TvWqLwPD7Ss<^)swzB>!Tit1JEXY3;jk-7M*B1 z>3VJ+HR;wOCb>OKgLqsE0RY~69xT3IctkU~lqNi68 zDa`yYN_$FOa!>6|5XDp%wo1M5IkuUoJ=H|-hh6Xzs(TJC>pz8lmDMdB+6yh~A}_S` zz8jLUXvdfR4dAbOfSREu^?LBe@N4u|HAAl%dd*GoNbh~D`T#{YLtZ7+IDHbT){96q zvZ+urWVook>!gG2DUC)07O9&16*%auM~eezV&~y?1l*t0a^XL7|53};z-2!)IbQUW z@Sq-zMb&fM9 z`eOT36l@wDoXiaGo6HK&Pl8B}I`*ttD7%JlI<{ojaE1%Q_9va(W0Pr-D;Mq}kSxvQ zV0$EUa6}2Sf^%%XKbcAn>_}|~P1Hmda3`GTd6MWwym#V5^<;e4v;HlWNe_||+_n%S!ItJM@VmaIw7lcJQxlW~4uKZIO;N%34@EPR1=JE2kgX$9h zT~+la&lkQ&`pV}BO0wi zjMpfGG%RrpxQ9L@=|?0Q5>1I`BvvF|ka$VrXC*!dOw%`j?euNQ`L3i}CBB9X8>Amg zek=Vw*oSCvE9wuG_>gRfL#zoj-2dC>BMiGj#+rU`XHD*N7a8EbTaY_}}EX?`!O-PWLa=t;ss8cK%cBNjU_Dk0d zHZ8ooYnC|T^}1QpuZ}~Q-D%S(*hn`s?~&Zx3P!G4EZ_+@v(Rp!XYuSA2?ho40b<;lQ%4wQ$MKCE{RcBfe~sX%3%MhtLG$xBPxSWzZJ z0y^{1$b(8k!=oadCFyB)sv6<7x>cb_p4S0NE7(c1@d!`o z^)(qECJ$#sHr~qZUdhOd_BpJ%gMEEitxILsOge6%@4`z8^)%q$xk5$I)7s4c zvhNz!7Ja;&v&=jezbvMKy*rm0nB6|RW46D4W_!vQFf>@lX^^rL3!iAv$@0!6JsLM~ z7ZpCw^@{aB^eSH45j)tdt6iP(uFmFWO}@2gS7%J7P**2%DB7&HCAvDbXj>wxD_|v> znppuU)wUrHx~(OS#+D|z=|^!Y1aUpQufaV1jcJ{!`m%VhBbpj@+_YsKF-$wyeT9$* z0oJ*_3HrFC-7EJZz!Bg(2odhP3tU?+d?O)BHQ=)h|95a|D7gP|oy$&b8}J0y=_%k| zIu2?Kr{|-nj{*0A=JLbH-`@^Sv-g{&#-!g*#CBmwF@tskDRo)l&VRg5# zu8+yx$&u|FrB)WL2Dl#Dmv^hc&Xvfsn4k)L@*!nHs?flaFJ)2~cktUrIgSDT2U4NS zJ7Q7pO1!7=C0EC@v8t^k`>$ZM!S01-DYHe&EP9@X_a62#_M^1CqlK~$;Z~(A`E~-b zy#EC|FWc+KZkoc=PuuAOv;)*G+D1FMiB8e|(B;VZQqP7TR+Tqd+4D-f?=a#L?3qcL zfo`y8_DcT`qop7%awJMrks~PJ%)tL^>3D*1F3Sa9WCnUg=()I$$-f4q?6matSZIU4 z2>ZGiBd+o8jYS{GCz89LM;iMae3x<9cQBH&JUiU^U4~?=Yh~_?_)76kOZ{Q^=gBeV eFoFt3_n+9n5Z~FNhyNKq{LXfJuebk?2>c6;hXoM; literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Configuration/TestConfigurationAgent/bin/Debug/TestConfigurationAgent.pdb b/SAF/Test.SAF.Configuration/TestConfigurationAgent/bin/Debug/TestConfigurationAgent.pdb new file mode 100644 index 0000000000000000000000000000000000000000..7cf4e79cb518d59eaf4db77201b73141537a52be GIT binary patch literal 15872 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 KxLu523H%4h>lH@; literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Configuration/TestConfigurationAgent/obj/Debug/TempPE/Web References.localhost.Reference.cs.dll b/SAF/Test.SAF.Configuration/TestConfigurationAgent/obj/Debug/TempPE/Web References.localhost.Reference.cs.dll new file mode 100644 index 0000000000000000000000000000000000000000..e3c3bb175ab449861986713751edd8423e99b24e GIT binary patch literal 4608 zcmeHKU2Ggz75-+t_IlUNC~?{ngiXhCDokp|8|>ra%RWZ>uF|Z zmYG?rZuv1U&?1m3o)9mfiibY*p;9Yok&qB?t<w%wIc(wG_$ZN*s zw?z*zC;AZerSg>9NCybZO!ja8&=>eLmE4z^h}x4Z){@ z7c+r;Chu+n_jFS}+{gy{J2?9}zSJ>xQuS2I@x3Ji&S_tByE)R$25vfW5_=qJ+op*~ zqV^a>^0X7HAR?olx=9|JIJh5j*ytz7QA|NH3x=>rd; zNHHxp%APiM$qf`KSEO9A*D8!LnC0?A=sQJz6ZesyDLrQPjB$zmI%lho&l61T0> zPQ{sgxN?R#(2IcZ=QMQmtH3xH4)}~#)7TH|iEw<6x%eUb(bX!>(p3rf=)&saJo`%= zH-&#Th-w^5qbg(JJ`<91{N0!oXGjD6)UlV;GW2>YP+ad{nWqnI<=oOfY%p78{2Ff) z{!znE8xI&|1cVlTU_8gO^SUv`qw|h&iSSQ^WqjNe{&7NSqF12&j^Zo$F8vjJ$rk!I zPP{^11I=uN*I{w=Vm|sChH2BU^3j0t32n8(REr;j+N(C+gGo{fcvRD?<_KQFr?>}X zh0}y*@rcGt8qVMk##t@MAbnIEn?# znyaQ~7Iv_wU6jC+_PhMt7?{!=owR%L<^i-UR(j&mE75u@P@lyORkN4XhKg0_sl?%_ zbA!z&Nu4`H$4i{`AV76HNmaw4fKyfRmQVJBXwFg`rI8l}oQ>S(r8I5M1-=T?T{`BX zaKo>+VmI}pFjs{Ym84x0Gj+! zXwIg|dE6P(oGP1bdlM;tO`O97e*q$RaM^DXOE@#Z9UmcNCGb&43o&O?;zFC(xO*s1 z6^b%jl<|A3gJ%zy9{ePyZhMFF&^SwPU|5 zpX;$<^xCFnS^YnG`ibiwoqF%Nl3f@qS=Qi@p5W6TlvTA~i;Tito~fCKMvXL_;Ulr7_k1NkmoP1N`S?Bn)z6({69 zuir(Jm5Ngtx94~?Td_JHs#Y4i!MMHDss+CHIkmmQ{T80DRVFviY&^Vi`t`lV;`t!B;`(7$3zgEEeSuuNce9G1j(Dbb4sbKdvg&J{Sh!z>TMmAVA6{S4m4l>fL@o`BUVV zXr!7qyQkIAG6+SbwUfY{w$=cLOR9lR3B21dB*Enes(=>i;9?sKb*GXE8?Ai78dYajp z&CINuZIt2=sWga3c?eo6UR99*HEIx%+JX>5`~ZGLoBGIbhJ9ozR zZgyh?5*0skSM$xe=bm%!xo6IO?U6^HA&rP4cy8Y&dKGUjLlRep1vJOs^ZhtoZN1k0 zs&e>RcXrP7^pfioT%)Mx4cm5nJtuUxZ0n}2r;layqBA3sYu3azhNj2&5*=1FdhL4$ zhe8(Jpm_HxB}%jw9K5)^y%nJ28Nx%9khB{3%?$QmmIWaATzFj42-{&}^1bw8CS8Hu zLre@2JrgK!ZMjSntw!zHZlca*?!TvWqLwPD7Ss<^)swzB>!Tit1JEXY3;jk-7M*B1 z>3VJ+HR;wOCb>OKgLqsE0RY~69xT3IctkU~lqNi68 zDa`yYN_$FOa!>6|5XDp%wo1M5IkuUoJ=H|-hh6Xzs(TJC>pz8lmDMdB+6yh~A}_S` zz8jLUXvdfR4dAbOfSREu^?LBe@N4u|HAAl%dd*GoNbh~D`T#{YLtZ7+IDHbT){96q zvZ+urWVook>!gG2DUC)07O9&16*%auM~eezV&~y?1l*t0a^XL7|53};z-2!)IbQUW z@Sq-zMb&fM9 z`eOT36l@wDoXiaGo6HK&Pl8B}I`*ttD7%JlI<{ojaE1%Q_9va(W0Pr-D;Mq}kSxvQ zV0$EUa6}2Sf^%%XKbcAn>_}|~P1Hmda3`GTd6MWwym#V5^<;e4v;HlWNe_||+_n%S!ItJM@VmaIw7lcJQxlW~4uKZIO;N%34@EPR1=JE2kgX$9h zT~+la&lkQ&`pV}BO0wi zjMpfGG%RrpxQ9L@=|?0Q5>1I`BvvF|ka$VrXC*!dOw%`j?euNQ`L3i}CBB9X8>Amg zek=Vw*oSCvE9wuG_>gRfL#zoj-2dC>BMiGj#+rU`XHD*N7a8EbTaY_}}EX?`!O-PWLa=t;ss8cK%cBNjU_Dk0d zHZ8ooYnC|T^}1QpuZ}~Q-D%S(*hn`s?~&Zx3P!G4EZ_+@v(Rp!XYuSA2?ho40b<;lQ%4wQ$MKCE{RcBfe~sX%3%MhtLG$xBPxSWzZJ z0y^{1$b(8k!=oadCFyB)sv6<7x>cb_p4S0NE7(c1@d!`o z^)(qECJ$#sHr~qZUdhOd_BpJ%gMEEitxILsOge6%@4`z8^)%q$xk5$I)7s4c zvhNz!7Ja;&v&=jezbvMKy*rm0nB6|RW46D4W_!vQFf>@lX^^rL3!iAv$@0!6JsLM~ z7ZpCw^@{aB^eSH45j)tdt6iP(uFmFWO}@2gS7%J7P**2%DB7&HCAvDbXj>wxD_|v> znppuU)wUrHx~(OS#+D|z=|^!Y1aUpQufaV1jcJ{!`m%VhBbpj@+_YsKF-$wyeT9$* z0oJ*_3HrFC-7EJZz!Bg(2odhP3tU?+d?O)BHQ=)h|95a|D7gP|oy$&b8}J0y=_%k| zIu2?Kr{|-nj{*0A=JLbH-`@^Sv-g{&#-!g*#CBmwF@tskDRo)l&VRg5# zu8+yx$&u|FrB)WL2Dl#Dmv^hc&Xvfsn4k)L@*!nHs?flaFJ)2~cktUrIgSDT2U4NS zJ7Q7pO1!7=C0EC@v8t^k`>$ZM!S01-DYHe&EP9@X_a62#_M^1CqlK~$;Z~(A`E~-b zy#EC|FWc+KZkoc=PuuAOv;)*G+D1FMiB8e|(B;VZQqP7TR+Tqd+4D-f?=a#L?3qcL zfo`y8_DcT`qop7%awJMrks~PJ%)tL^>3D*1F3Sa9WCnUg=()I$$-f4q?6matSZIU4 z2>ZGiBd+o8jYS{GCz89LM;iMae3x<9cQBH&JUiU^U4~?=Yh~_?_)76kOZ{Q^=gBeV eFoFt3_n+9n5Z~FNhyNKq{LXfJuebk?2>c6;hXoM; literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Configuration/TestConfigurationAgent/obj/Debug/TestConfigurationAgent.dll.incr b/SAF/Test.SAF.Configuration/TestConfigurationAgent/obj/Debug/TestConfigurationAgent.dll.incr new file mode 100644 index 0000000000000000000000000000000000000000..2e6163e023f7e7b70ae1f2ace48452130857149b GIT binary patch literal 1952 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 KxLu523H%4h>lH@; literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Configuration/TestConfigurationAgent/obj/Debug/TestConfigurationAgent.projdata b/SAF/Test.SAF.Configuration/TestConfigurationAgent/obj/Debug/TestConfigurationAgent.projdata new file mode 100644 index 0000000000000000000000000000000000000000..e3c413c6a7c3f5110d25d8e9863c541c0d933606 GIT binary patch literal 4744 zcmeH~&ud&&6vw|WCUFpb4x*uoi$OPIlT3niAu<*dYo!}0t zvy$M(jf=V|{t4p3bui#Ya8aa7@o#V~>gRjkdztAtotYv;l-%LGd*6BY$GPWx&yV@) z`EqGOv`MM{m_A)RaJC}ejQ4~mo=W2C1KAsc2Bg)$TF-9m|0^^ z8@cZuquhl~#<^u7-{;3D-x3;Wqs1+>n`lQDuA8G717jJAN-$_IK%V3F8G~>AEqm2H`aFb$-g6gg zKiu5?;xO{JgH`?Z&8LS^%7TLrX3zcj@nPh(VZ9eZ*7JT@y6QuqVYctbT3IiHx(*0V zRn;qD!+CZ;qq>?QN}SbGdV)7ckS$_HsvCH~f(rh^(LCuTy~C`|5UfjcBj;4vV-B)3 zQ<|TM@@qVZ=Jr_JFNJKW4Mdkdeir|)pu8n#$#&Nez3{QeLobH?X@V%v{H9t9f9h1iK?3Z*eVwbm(qdCUCFO4~KT*+;LlIEj0 z2!tC498UwfHyPKU^Ux>IG?@8`{%gp*`;d7D++Y$i?;gE*7s2T7Ij zywu`L1-|j*EY;*K%UKB{^Y#$vI^_7{_;P~(tX4R||EMVR|G@t>{NN+}!*!l(l2k&^FNyQS>X z#*6KrKBafx2P@j{&ULbhvrF&#Ea&v*mT4jgj!yiLp3TQ}It3LxkKJB{3ZBPqb;yxx zmwwX>+8*SH^fUb(=oe^_L(IEFzY5*;p#xhHe_RVW{@iyyW?T-|uyzZ7oX}i+iW_bR z3#CEVj%@yi;0SBYB#ee-?*6LnVVQd-)TFI&x^3Iy#;z)>1Nl{5CB`OtH$>Ph=a&0; zSq_M1zh{?=QGZ?FEH`faHcC5ar^1?BJPVXGj{dnA(UyIaueU&*v6$rm~9Qj(;NLBbx#?FMXyR&RU3ixu1pp7&SZOox~F&Vb3v{K+_Ru=q30fh zYNo}JdEGTzho5h=fep?);)-rv7wffuWWNXV?@9c@82@JciKJb~^}plKi9L?j9(x>D NWFqU|_3?4GzW}%iyW0Q& literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Configuration/TestConsole/App.ico b/SAF/Test.SAF.Configuration/TestConsole/App.ico new file mode 100644 index 0000000000000000000000000000000000000000..3a5525fd794f7a7c5c8e6187f470ea3af38cd2b6 GIT binary patch literal 1078 zcmeHHJr05}7=1t!Hp3A*8IHkVf+j?-!eHY14Gtcw1Eb*_9>Bq^zETJ@GKj{_2j4$w zo9}xCh!8{T3=X##Skq>ikMjsvB|y%crWBM2iW(4pI}c%z6%lW!=~4v77#3{z!dmB1 z__&l)-{KUYR+|8|;wB^R|9ET$J@(@=#rd^=)qs85?vAy(PSF5CyNkus435LVkZ$rj zNw|JG-P7^hF<(;#o*Vk}5R#e|^13tBbQkeF?djULtvqyxd3<{9 literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Configuration/TestConsole/AssemblyInfo.cs b/SAF/Test.SAF.Configuration/TestConsole/AssemblyInfo.cs new file mode 100644 index 0000000..9f89a32 --- /dev/null +++ b/SAF/Test.SAF.Configuration/TestConsole/AssemblyInfo.cs @@ -0,0 +1,58 @@ +using System.Reflection; +using System.Runtime.CompilerServices; + +// +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +// +[assembly: AssemblyTitle("")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("")] +[assembly: AssemblyCopyright("")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: + +[assembly: AssemblyVersion("1.0.*")] + +// +// In order to sign your assembly you must specify a key to use. Refer to the +// Microsoft .NET Framework documentation for more information on assembly signing. +// +// Use the attributes below to control which key is used for signing. +// +// Notes: +// (*) If no key is specified, the assembly is not signed. +// (*) KeyName refers to a key that has been installed in the Crypto Service +// Provider (CSP) on your machine. KeyFile refers to a file which contains +// a key. +// (*) If the KeyFile and the KeyName values are both specified, the +// following processing occurs: +// (1) If the KeyName can be found in the CSP, that key is used. +// (2) If the KeyName does not exist and the KeyFile does exist, the key +// in the KeyFile is installed into the CSP and used. +// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. +// When specifying the KeyFile, the location of the KeyFile should be +// relative to the project output directory which is +// %Project Directory%\obj\. For example, if your KeyFile is +// located in the project directory, you would specify the AssemblyKeyFile +// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] +// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework +// documentation for more information on this. +// +[assembly: AssemblyDelaySign(false)] +[assembly: AssemblyKeyFile("")] +[assembly: AssemblyKeyName("")] diff --git a/SAF/Test.SAF.Configuration/TestConsole/Class1.cs b/SAF/Test.SAF.Configuration/TestConsole/Class1.cs new file mode 100644 index 0000000..f85ab15 --- /dev/null +++ b/SAF/Test.SAF.Configuration/TestConsole/Class1.cs @@ -0,0 +1,35 @@ +using System; +using System.Configuration; +using Application.Configuration; +using SAF.Configuration; + +namespace TestConsole +{ + /// + /// The demo shows how to use SAF.Configuration service inside a program and + /// how to use the custom configuration object defined for the business application + /// + class Class1 + { + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main(string[] args) + { + //get the configuraiton manager of Application.Configuration + AppConfigurationManager cm1 = (AppConfigurationManager)ConfigurationSettings.GetConfig("MyApplication"); + //retrieve the configuraiton data by calling the properties and methods of configuration manager. + string connection = cm1.DatabaseConfig.GetDatabaseConnection(); + //these two calls involve the agents which retrieve the configuraiton data via web service + //at http://localhost/ConfigurationData/ConfigurationService.asmx + string customerQueueLocation = cm1.MessageQueueConfig.GetCustomerQueueLocation(); + string accountQueueLocation = cm1.MessageQueueConfig.GetAccountQueueLocation(); + + //get the configuration manager of SAF.Configuration + ConfigurationManager cm2 = (ConfigurationManager)ConfigurationSettings.GetConfig("Framework"); + string eventServerUrl = cm2.EventNotificationConfig.GetEventServerUrl(); + + } + } +} diff --git a/SAF/Test.SAF.Configuration/TestConsole/TestConsole.csproj b/SAF/Test.SAF.Configuration/TestConsole/TestConsole.csproj new file mode 100644 index 0000000..0f581ca --- /dev/null +++ b/SAF/Test.SAF.Configuration/TestConsole/TestConsole.csproj @@ -0,0 +1,121 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SAF/Test.SAF.Configuration/TestConsole/TestConsole.csproj.user b/SAF/Test.SAF.Configuration/TestConsole/TestConsole.csproj.user new file mode 100644 index 0000000..29ccfc6 --- /dev/null +++ b/SAF/Test.SAF.Configuration/TestConsole/TestConsole.csproj.user @@ -0,0 +1,48 @@ + + + + + + + + + + + + diff --git a/SAF/Test.SAF.Configuration/TestConsole/app.config b/SAF/Test.SAF.Configuration/TestConsole/app.config new file mode 100644 index 0000000..e5c5778 --- /dev/null +++ b/SAF/Test.SAF.Configuration/TestConsole/app.config @@ -0,0 +1,33 @@ + + +
+
+ + + + localhost + 4000 + EventNotification + EventURI + + + + + + + +
Application.MessageQueue
+ QAEnvironment +
+ http://localhost/ConfigurationData/ConfigurationService.asmx +
+
+
+ + Persist Security Info=False;User ID=sa;Password=password;Initial Catalog=pubs;Data Source=127.0.0.1 + + + + +
+ \ No newline at end of file diff --git a/SAF/Test.SAF.Configuration/TestConsole/bin/Debug/Application.Configuration.dll b/SAF/Test.SAF.Configuration/TestConsole/bin/Debug/Application.Configuration.dll new file mode 100644 index 0000000000000000000000000000000000000000..9e36fb0c20f98ddb94802b8866db852fc48fbb26 GIT binary patch literal 4608 zcmeHKPmCK^8UM}rPqJy_BpWqqXauv$MkH-9yJV}9Qc*j0H*A_sHt{x1VIdjY6K9(7 zj59MvHEkdWsR(hY!~rBOAeEkr8Yxi)YNcG;hznIuCYcMrJ9x3r4lgW(#*rLVkK!u5%drfwQ1KAKv- z!X1>R z9x{r+Hgfoq_JczNi%*3QuuJ=961OlUer?x?> zDhy>`qJ++OnXd^m{JuEZMc2Wk4E6+yoB1egdc*wV-#$B6c$c$A?U|KEb$(^piQ+Ol=5v8^@0t>8?tS{BX8BQ$GCk%v043 z#^=UiNiOo#j=RJWlcUXHz-_`qe1tDL!sE`R(H8Md%#yl|TPy}I8^>4~Ld9PyzODGa z;wOrqDV9vp{HkI_@x0>eif^00GE4ZYd5du+qYBDzC!WJgjBiL?Q7X>~i0tP|6&Py~ zzh_iMyu;iy@G)m$;2(-RjY%w7;`fb5SFwluw=$H84-yKWv!dj%nvvy@pQ0Jwz#d~C z$9OWOzOIx+_@1ug-4yp?6&9ux4-pS=rG#@tv8uSBcv|sgMO)ETyrMWDKF+;b#SDH* z+(Z1-oMV|abAr2b`%vZ{9VhNqd`$7M;=Nts1<~s+eBj! z#ZDKeny)ymSd2za+@kH<9Vgt}8R~XyH|@w7F~g!0MKnC!clzrjqxu^trV*9Tbv^Jo z$qyx3*(x9&P;SLRh;}--=pJ+8jBlT_VZ}iAN-C@Mqd4d~p@wuKNQ#IURa>o~@5iJ3 zWL3&%oQq!Ss2W91x9JUDa0Vysu2YR!6Po?lK}Im|dK(Dpj%N=VZpR1l$<{-fc@mNi(g zJx7zLdR-pb>DM?y^y2$)W%~qYDVM)=u#`pTJNpWszphkx^Y&*qka2p9~{25Bdq`W z4>yk=2=3j+)*C-sIlFi6&M$Js$%pyu=l=54Q z$tsnrxh+P?ES3s}l#wD!y>#Z%yO8isO5c*+cpKiC63O{m5Y|0!(RO+2q`EkcRvMAs zJ3t@2iu|uM`N9E@0@p?(mTw{WZ5Zc^p4=VJRe(xb&4pLtcLO+!2F??o#~Jn(c+);f zdVx5f+`94S{HOm+>b!yLxx2g;B=6_M37gyr_^}&lby5bs+RUMOW|zloT43H>Wd2B- zR;y)7ZE_>Z*K%DI@J{}B`UTDA=eVcWRcD6tPJVMdA6x@|wdF1#`QFt`mW-84lEr5_ zBkSq-1J2e~J&IN5N!1ySS7-DQb6?I$kDihudw7Ej?D zc$&Q`JWun>aj3+1gB1h@)JjyB#qbj3K4{}#LsB<_$za8}| zHa!e<79CuoMRu-hddaS|Y1gG)h|9WiiEdltJ(c>9sv+?X=Ps1g4d6eCJK3KljuCJ! zeXUjN_ot$3KB}{RQPL%o>j?V=-f;>aFeGgM4tBUre)-{~0eF`C^9q K|0w@mEATI0qqMOA literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Configuration/TestConsole/bin/Debug/Application.Configuration.pdb b/SAF/Test.SAF.Configuration/TestConsole/bin/Debug/Application.Configuration.pdb new file mode 100644 index 0000000000000000000000000000000000000000..e6d22605f1752f7d723f5aecd673e995fa536ae0 GIT binary patch literal 15872 zcmeHNU2Icj82-9;Wg8n%CT%y zd%yGjfA8P-o$s`FI24Pg|=kTG`_0U>sXy0&Ibrm_XP!^2lu}Sqa?SvwQP} zd6ztg`_#Ez@0T4vzvbzpzyAEK=kR9ZdH%a^zvu~H@|<0*)Xj<=XLAXn7(J;GldS`s zfE!o_)B^K?N}wF525Nu>z(Rm--~ko`4**MnCBQtO6seT;Pn*1x4OBp(E?_R(K(_c# zxmn{spK1G#e=UBPxyrXG~(-OT4XLDQsQxxJotj-wihr%v{^F2`Z_zOrU0s1cEvYeqA z%h`tKCX(n~xa2h=Vf#O&QQUOv+O2EU-Fuv7Xyaf!7#>V$@q`x%ZzviG5APj|1rx*3 z$Y5~){*mF3p3W#qt2Y{q1ovt&Zz!%*VB=t4*Ve&)c8G*Gkk(a6>@@`e)87|(Z358HhOY+)gYHdLh= zJbkal6WS=>rzPzj7#(37JZD+}+B|~%oOXb6_G2kWKlS=tapurDs;E$K6lV~(4hLq! z^CXGu;Jkn>oiM@!Wd@7y?Ml7g{d%rmFUe=zMI?Fm@E|zA?%-tq)v8?TG2l6%9~gqgyVO4@XB;+0Hqv-B*1k{);a>W%@sTmt^$? z$lBeHJn@B|U?R9D7}s#Bh-e|6WsEp@26c|165C4sV)p~e+ORF-y*r6#`U3O027={< z+CJh>YX3itG)ZihY1o`w^qaZ=+xpi{Y077qyNUf02d7*AkphqM9G_$Jet>D(**ZYt zona%{;~m=Q@oo)x4cd6YovKZ_aKhnPM&cd&WZ&Y;)_8}p^tiPi+=ZEBI|D63`|p9@ z0T=wb(TojvOi`AsR9PX3eC_j<7c$1}b!Mhlj>Gr;x=P>mA*7oj@ISyg+A91bf5CkI z!Q{}Pp3gFZ_r2s_n7qs6Z<@Ruh4@oP&1a_XMES}y+LkduSt(!peC5`@vZeF2&sUzU z&-{5a(`){5r>_RzRjgEvhgyK=ne705e+U=>4ghZfB)+RSRqhv>Wongvem3g)*X!qJ z1c}A!aXp{=Tba3WNnIn)th-jJm1bR@2g*2BmIH&dHR_mcTRFq~o2+tjWRa6YnQLuH zm#H&LU8mG-Q|bweOm+R`cnP!0HPs%$UfSFGpIQ6jo|%heZ;*1Ut=RfUq$vUar;hm> z0G{h`x8G5%erezt?EvELN$_TXFA>;V9N$m_A(aNf$njh;eVkj#rvUgJRSl#_V{l<>Qi8i z++$ldfXNGR)gI_x*Vg98j$x3Dm3{0=bqr?{z9XFnIOxrV^9opZuNIHv0$snXN)v!u zySBTv+uzp3(bs(Dy)Fyk**lY1#(a5~le(}*mX6~1~ zziBoQx!4@JQ@1n+ zTJTNKIGzv8@`SxW_O_pLf0Vgvt(VKa=e_0E@q{WKX z{|mg+2u$Qf&I)03GwbTH=2b13l;hkOUb2zk`GL5o52yU*-2-oyarXqWJ$e zVh!9b7`M1}@C;K6;Jh>Ee+SIpM_cuO@IKW)b-WzldPK+6H+5VA@Q6?i@NCPyZ7%-S Z8_T|pR@|0jXV?<3C16XymcU$)!2g{E6{Y|H literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Configuration/TestConsole/bin/Debug/SAF.Configuration.dll b/SAF/Test.SAF.Configuration/TestConsole/bin/Debug/SAF.Configuration.dll new file mode 100644 index 0000000000000000000000000000000000000000..967e97f09dbf0014cad68ef8204bb2907ada4753 GIT binary patch literal 11776 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 XM;_oDFhSUeJc9ojtN<$zPX&Gf+ShFN literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Configuration/TestConsole/bin/Debug/TestConfigurationAgent.dll b/SAF/Test.SAF.Configuration/TestConsole/bin/Debug/TestConfigurationAgent.dll new file mode 100644 index 0000000000000000000000000000000000000000..1729ae8af5227976c6eff9480807482b2da4dd18 GIT binary patch literal 6144 zcmeHLYit}>6+SbwUfY{w$=cLOR9lR3B21dB*Enes(=>i;9?sKb*GXE8?Ai78dYajp z&CINuZIt2=sWga3c?eo6UR99*HEIx%+JX>5`~ZGLoBGIbhJ9ozR zZgyh?5*0skSM$xe=bm%!xo6IO?U6^HA&rP4cy8Y&dKGUjLlRep1vJOs^ZhtoZN1k0 zs&e>RcXrP7^pfioT%)Mx4cm5nJtuUxZ0n}2r;layqBA3sYu3azhNj2&5*=1FdhL4$ zhe8(Jpm_HxB}%jw9K5)^y%nJ28Nx%9khB{3%?$QmmIWaATzFj42-{&}^1bw8CS8Hu zLre@2JrgK!ZMjSntw!zHZlca*?!TvWqLwPD7Ss<^)swzB>!Tit1JEXY3;jk-7M*B1 z>3VJ+HR;wOCb>OKgLqsE0RY~69xT3IctkU~lqNi68 zDa`yYN_$FOa!>6|5XDp%wo1M5IkuUoJ=H|-hh6Xzs(TJC>pz8lmDMdB+6yh~A}_S` zz8jLUXvdfR4dAbOfSREu^?LBe@N4u|HAAl%dd*GoNbh~D`T#{YLtZ7+IDHbT){96q zvZ+urWVook>!gG2DUC)07O9&16*%auM~eezV&~y?1l*t0a^XL7|53};z-2!)IbQUW z@Sq-zMb&fM9 z`eOT36l@wDoXiaGo6HK&Pl8B}I`*ttD7%JlI<{ojaE1%Q_9va(W0Pr-D;Mq}kSxvQ zV0$EUa6}2Sf^%%XKbcAn>_}|~P1Hmda3`GTd6MWwym#V5^<;e4v;HlWNe_||+_n%S!ItJM@VmaIw7lcJQxlW~4uKZIO;N%34@EPR1=JE2kgX$9h zT~+la&lkQ&`pV}BO0wi zjMpfGG%RrpxQ9L@=|?0Q5>1I`BvvF|ka$VrXC*!dOw%`j?euNQ`L3i}CBB9X8>Amg zek=Vw*oSCvE9wuG_>gRfL#zoj-2dC>BMiGj#+rU`XHD*N7a8EbTaY_}}EX?`!O-PWLa=t;ss8cK%cBNjU_Dk0d zHZ8ooYnC|T^}1QpuZ}~Q-D%S(*hn`s?~&Zx3P!G4EZ_+@v(Rp!XYuSA2?ho40b<;lQ%4wQ$MKCE{RcBfe~sX%3%MhtLG$xBPxSWzZJ z0y^{1$b(8k!=oadCFyB)sv6<7x>cb_p4S0NE7(c1@d!`o z^)(qECJ$#sHr~qZUdhOd_BpJ%gMEEitxILsOge6%@4`z8^)%q$xk5$I)7s4c zvhNz!7Ja;&v&=jezbvMKy*rm0nB6|RW46D4W_!vQFf>@lX^^rL3!iAv$@0!6JsLM~ z7ZpCw^@{aB^eSH45j)tdt6iP(uFmFWO}@2gS7%J7P**2%DB7&HCAvDbXj>wxD_|v> znppuU)wUrHx~(OS#+D|z=|^!Y1aUpQufaV1jcJ{!`m%VhBbpj@+_YsKF-$wyeT9$* z0oJ*_3HrFC-7EJZz!Bg(2odhP3tU?+d?O)BHQ=)h|95a|D7gP|oy$&b8}J0y=_%k| zIu2?Kr{|-nj{*0A=JLbH-`@^Sv-g{&#-!g*#CBmwF@tskDRo)l&VRg5# zu8+yx$&u|FrB)WL2Dl#Dmv^hc&Xvfsn4k)L@*!nHs?flaFJ)2~cktUrIgSDT2U4NS zJ7Q7pO1!7=C0EC@v8t^k`>$ZM!S01-DYHe&EP9@X_a62#_M^1CqlK~$;Z~(A`E~-b zy#EC|FWc+KZkoc=PuuAOv;)*G+D1FMiB8e|(B;VZQqP7TR+Tqd+4D-f?=a#L?3qcL zfo`y8_DcT`qop7%awJMrks~PJ%)tL^>3D*1F3Sa9WCnUg=()I$$-f4q?6matSZIU4 z2>ZGiBd+o8jYS{GCz89LM;iMae3x<9cQBH&JUiU^U4~?=Yh~_?_)76kOZ{Q^=gBeV eFoFt3_n+9n5Z~FNhyNKq{LXfJuebk?2>c6;hXoM; literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Configuration/TestConsole/bin/Debug/TestConfigurationAgent.pdb b/SAF/Test.SAF.Configuration/TestConsole/bin/Debug/TestConfigurationAgent.pdb new file mode 100644 index 0000000000000000000000000000000000000000..7cf4e79cb518d59eaf4db77201b73141537a52be GIT binary patch literal 15872 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 KxLu523H%4h>lH@; literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Configuration/TestConsole/bin/Debug/TestConsole.exe b/SAF/Test.SAF.Configuration/TestConsole/bin/Debug/TestConsole.exe new file mode 100644 index 0000000000000000000000000000000000000000..cb2cd45f45debab05936c1017e5ea71a9f3d2a83 GIT binary patch literal 6144 zcmeHLU5p!76+SbzH``6(Y48l5fW0xQ{UQ`s!~$XA|b7+NW9QWJXC@_<)IIKKLl%5#DXrSlN84L`17&j=1pGRt;L(YxYMbt0f?J;6SNA%%0iOw;d zBl=!%B#aLi!Vs<-M32SgpGU(!?yeX7Ol*!BsEq)8fsLS(wMKD+lV%WIFg@R^fRosA zAYwTICoPBQO;6Qa7)rV>K+L`#Mvt`|(a9Jqq%jgoI5wVgd_U1^NWBIc9n`(G!BLG$ z;oQ9*95hDuAm(5%y!G{5#=YosLHF(Kxjex1AYfNSKL~oa_xPPT;I+Z@-t^^%*b-~$ z8_XPJ|2v|P^pP(?cu=_Z{^2#Opx-pm!JH`;ierDga_-L`{Cw)l_|Yd$&D}Wo4d^GH zS}EqIR!YhbOc3UT>#W(;re_7V>xdW<->s|anQ&P4Nae&EnqBw zUuFJe%`Ic(hIDGv59#y(Gk?<#^9_THkRQ2sV1-9kWFMp>o<}4qinNCg(hzQ}MT@}a z1%D~{hT!i7Zwmfh@L`QDpAei8tO~v$_=fgtJge_&L%71n+6^sB2lPF9mhyr>0uIn$ z^cz4eb%R5U;s`U>Ph<2Xa>d+|!P;L?L1KMVxSu^Ti@by@`#{@Ev-BYC6WkBnM+bx+ z6FerE7n~J5E%<#wOVAelA@D1-3GAmUl+h2+OLR^*aqTtz5a?g&-=BTUcVC!bYId25n|`3`v{-&tRRWr*S-w9Ox2Ac^cF3#*t{2&wXVh8^#&~on@B6A= zu5CW8HW#eA$_Lo*SYqMxqoz6MS%Jbp8Q!&x31x>Guvyx}6s=DP} z>@vq~Yyv%+86n#=P=<_&D8E&AX;|YS_g@(+}Lb@?^rC8-~e> ze5K+xoggXisN%`Rx8t9@q?};E4eYgO-N}V~ikhz~s-p5PDetVuwVfWFM-9nS1D_h% zR6$J*FuLRr4Nj2>}qKxz$C^&i}-aXyN|-C?R7e zlz;Lm@?NM79HKsw_h4w$J54kaP7}c>7WcK-{73RQuSf4s7Wbz3WVTF2IuD$rGoWU1 z8d?B93!DPY?RV*q{}INc(Oaoo8K!ysu4u#GC9%tj6rsUt8P&mq9~-qp!KXuOs1w|V ziBD`LsUHr`8MSy_5sNp|>sXtHm;zYYm|N}QsUS9^)c%Z988rWn(J^-dSF1~Xa^Qsz zqz3wMOxM759aOjlj9kaK8R*{VrI+b+Y_gLPCRVKau) z(xebJo^87@^Q)Lw$2_jw;c?x7{fxx482RALb4=~^F&Ad)^I{A0yaYck z&iPH`FNm!yj4LO(OWNF>!OzNHLFVTXy)SDiBhpRW!F%yB66Gj|QIma%hZp;*duxSH zcB@68(D7jrU~6j&68yn{FaOaX1Cal7xXtkIw&xP9kuD@!BaMq}x4+)!x03-1`FJtj zUg*rkRbvKHmb} zy|s9A^TrMbAjo^#=R2b98f9&IQG)s8Umj<|+c!NI-j?a>q2nz?nP~i|wGxsqz-aQw w%CpMZ(aA8lGN<{9 literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Configuration/TestConsole/bin/Debug/TestConsole.exe.config b/SAF/Test.SAF.Configuration/TestConsole/bin/Debug/TestConsole.exe.config new file mode 100644 index 0000000..e5c5778 --- /dev/null +++ b/SAF/Test.SAF.Configuration/TestConsole/bin/Debug/TestConsole.exe.config @@ -0,0 +1,33 @@ + + +
+
+ + + + localhost + 4000 + EventNotification + EventURI + + + + + + + +
Application.MessageQueue
+ QAEnvironment +
+ http://localhost/ConfigurationData/ConfigurationService.asmx +
+
+
+ + Persist Security Info=False;User ID=sa;Password=password;Initial Catalog=pubs;Data Source=127.0.0.1 + + + + +
+ \ No newline at end of file diff --git a/SAF/Test.SAF.Configuration/TestConsole/bin/Debug/TestConsole.pdb b/SAF/Test.SAF.Configuration/TestConsole/bin/Debug/TestConsole.pdb new file mode 100644 index 0000000000000000000000000000000000000000..8b3a1d399a8e539b3eda321361225c7957013be3 GIT binary patch literal 15872 zcmeHO-)|IE6ut`u+Cpnrv0_17YaykD-EPGedEv*l4QLx6En>_jupMUUhV5*#vjs_b zCPCL%^;9LjJJ)G;rC+{3s`)ga^3aWqE zrJYz-aU-zNdsA7H`vmopS3~r9l$OB%gCEa{@jn*j(aW7RdXf(TG137(9K*dW0;w=4u3DiBRpSG$dGXj zU_SRCtk-=0J9fTpuk!iYa8#^EeXeb1eJx`cx|U023?W)jZm<8zcB5u4GpuJ1jOwF$ zZ$?X4Rb^fB#o1Rv(=ww*&RtcGlY1uWPxd?9E*kMX^3~agenK~L{d)FPw`+4vc%L2UE(6$P@LZ)Ga1Y@)MXQPxqSeB2UVJ^B|NwnO97nh7>bq zOAU!@>4a%U!e`U@eJkfaB9AKYchRi;YmcovOL>Vu)Ip479tq3LEk4XsHJ zWz1YWpUIKNw#Om-I2AoSZ57CDEGRjKqdwO2wx_9N@Z8`c5t$ zu`A&`J;pmyoTJCqA;funtQjHBy4q(05q4y*GKO*bM9h6xAcbcWgrZd0hthv2F|}?+#Vk zDz6gbSTskGI16z7e0FhZp0AGkoUnDC6Wy_`9qk>lcCqDZ_?}vC16F5KewW||q()W< zq_ zLvjb@AN}FXp`U+xzvs->&dBS%zqEXgyhv}#IKJ0NW<erY9|bp1->Qb^m+FQjux*|8w>JS1D7eVKe5!yJ^}f${F_<^7{ej`{Rdw1E%DU zrg=Ms_@X3!C*hR;d-GKOlq>foj+b(!d}{%xT%F$p@Y@i|el@^vL`oE7iOul91wv~u zPTIjjL>=Va5Sifne}y=-@bf5R`hV0F*v)OL;Q!G+eh-WT^#3jZie~TsRg2RwsNbLi z{(p$(rTOM9nrKN*|1bYSVCtJ6zV%9Jy6E2B8QtC4^O|g@d`ym?87eIcVHK|9K}V7J z7~nH6eDQ6;XBP80X+zw^zL?+SE{G0}LiSgbM9d4{72TFCq^72ZJxHKmY&$ literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Configuration/TestConsole/obj/Debug/TempPE/Web References.localhost.Reference.cs.dll b/SAF/Test.SAF.Configuration/TestConsole/obj/Debug/TempPE/Web References.localhost.Reference.cs.dll new file mode 100644 index 0000000000000000000000000000000000000000..d787e8b61330603610ec2c6cb23797f358be73e4 GIT binary patch literal 4608 zcmeHKU2Ggz75-*+?e%V&RbrEn3I`@~BALb-Z)B$}E}?7hCb1!DEblr&6)2gVyP*p{W5JDBIM8(ew?-jft@q!eIiWh`Hh!=Qh_|Bbi)=rmD zAz9*~*PeUNIrp4%&(FQ*-o5(#E64%J^Sgf^c#EU7s_q}%?QpvMv7eXmX7TM)Zy8tK zKGodxVyhR0oyh50t`h`dVzrbN^#jWbtopTv)eYOqK76=zI#a!R5x8RHaBOPh+1=Id zp?vC)F$$DO;UMk%)9fsMResW09L&^iLfU>AvBQsaY2p`fME?)Q4ApbMGW9kDt^#*c zfovulZUK+&r@TMR0><`mjuBtpgWHLEAtC;{FmX=%n%PZEHw(CBM{(p5)3#L!NTMDx zh~%mrDL*8mp1MUI(M8wywkoi+7Z-Sk{!0_vMC2b9&@2E3;s2#gR7{L#g68xH{W2r! z>P<^Jp8zH*BRIo((vF(Z9nO6CTTHX@*x2#hYh%-lMyWJ<{JY5^(hi+Pfg)Pwqa119 zKAA%W$`tY=(?yXwi&3rL#4++Rl}F9oG*!P>-%{h#OGf6Q#B1xEU9sn$s+=bbjKF9A zCJmhWDpSKn=@OXzjVf=;g0{b$$#tojC zmyCIGzGf`5|0Vkp-Z6y#@9d?ey2N{fc7Fxm;mQK9S~C0MiM!-A&`UA=gnA9Uo?(B$ zB<=lehW&|o6sryVo=Vf+#6Jn=U}_H^H&5X%&f??jOE|~=Nqj=XMcpql%1>fN(~J1C zan>y2u=x!8Gv-y(W_+GEt9S-4qlO8}*YFWyHB8|m=FCfG)6DPCfPL*l+7{rQ?2H(g z*Yo1{E^Puo9YRavqbELjHEj2N^(ov?Eo)6}s7M8_ifx`S$KMR&#C|}u-PmsXJ{sF` zqPjK(?1qZAJhBg?*{e~Qgl_0_HgtN+Nz$wNo(hs(I%;9C;dT0vlXzi}sX|l52`A#v zR|6wpyGaX`npXBO}@D*Bt{1`ZMMFnj2r4^Kx3qXOxQu@-FiP)D52fW;y?y(^V&iZBmJRvs{$O!FUN#yu5)@r}y zd+uk{c9YvFxX`N1ZJghDYUA9w_W6o4=j5oJB@xZ_otK9!GN=mLqE&~_CzZ%C+V&67 zs`CDY#K3}Oo}4V7oGcV_dMsIaZjY0b+#sU`bG&$Ra?~=27Do!gIGR;kx!`r>)ZMoQ zwg&iKX!pG_pxvy6QQh~iI$n_0F{N}x6^{F7U{wdKA3z5j0eKU!ez2nLUnqSoRff=o zZ<*g`t9-|&4;CR2mV5U)i`7l`7qLcY1=sK#@fG%$2uu4_{;%)uzDhJ9>vn$($lFLZ z=H6B(Vojv1Sw~pqM#Vvj_nrGMYIyJ;B z+hRvAy9!b}g}1_A5yk`Cu9G(+w_Fz~PlXr2-~;8KAiqQ-(YyiI_V-wDgVYwSSmU^% zImCXsNMdSw@5N;g;k3yw+->s9TX|ahbA>uOdNsMadh}a7>hKDb-#Ow->i2*z%}|?i zUCKqcO|8-_eqYvpT+4JwhQyEEm5BPJEV_&dYkNtU~1pI&dYwDhqE)t ri{uEr{w0@-^fJ~yx9HI}z5Q=;6g{|RrN0?pefr>*_(1djZv_4gqC=(L literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Configuration/TestConsole/obj/Debug/TestConsole.exe b/SAF/Test.SAF.Configuration/TestConsole/obj/Debug/TestConsole.exe new file mode 100644 index 0000000000000000000000000000000000000000..cb2cd45f45debab05936c1017e5ea71a9f3d2a83 GIT binary patch literal 6144 zcmeHLU5p!76+SbzH``6(Y48l5fW0xQ{UQ`s!~$XA|b7+NW9QWJXC@_<)IIKKLl%5#DXrSlN84L`17&j=1pGRt;L(YxYMbt0f?J;6SNA%%0iOw;d zBl=!%B#aLi!Vs<-M32SgpGU(!?yeX7Ol*!BsEq)8fsLS(wMKD+lV%WIFg@R^fRosA zAYwTICoPBQO;6Qa7)rV>K+L`#Mvt`|(a9Jqq%jgoI5wVgd_U1^NWBIc9n`(G!BLG$ z;oQ9*95hDuAm(5%y!G{5#=YosLHF(Kxjex1AYfNSKL~oa_xPPT;I+Z@-t^^%*b-~$ z8_XPJ|2v|P^pP(?cu=_Z{^2#Opx-pm!JH`;ierDga_-L`{Cw)l_|Yd$&D}Wo4d^GH zS}EqIR!YhbOc3UT>#W(;re_7V>xdW<->s|anQ&P4Nae&EnqBw zUuFJe%`Ic(hIDGv59#y(Gk?<#^9_THkRQ2sV1-9kWFMp>o<}4qinNCg(hzQ}MT@}a z1%D~{hT!i7Zwmfh@L`QDpAei8tO~v$_=fgtJge_&L%71n+6^sB2lPF9mhyr>0uIn$ z^cz4eb%R5U;s`U>Ph<2Xa>d+|!P;L?L1KMVxSu^Ti@by@`#{@Ev-BYC6WkBnM+bx+ z6FerE7n~J5E%<#wOVAelA@D1-3GAmUl+h2+OLR^*aqTtz5a?g&-=BTUcVC!bYId25n|`3`v{-&tRRWr*S-w9Ox2Ac^cF3#*t{2&wXVh8^#&~on@B6A= zu5CW8HW#eA$_Lo*SYqMxqoz6MS%Jbp8Q!&x31x>Guvyx}6s=DP} z>@vq~Yyv%+86n#=P=<_&D8E&AX;|YS_g@(+}Lb@?^rC8-~e> ze5K+xoggXisN%`Rx8t9@q?};E4eYgO-N}V~ikhz~s-p5PDetVuwVfWFM-9nS1D_h% zR6$J*FuLRr4Nj2>}qKxz$C^&i}-aXyN|-C?R7e zlz;Lm@?NM79HKsw_h4w$J54kaP7}c>7WcK-{73RQuSf4s7Wbz3WVTF2IuD$rGoWU1 z8d?B93!DPY?RV*q{}INc(Oaoo8K!ysu4u#GC9%tj6rsUt8P&mq9~-qp!KXuOs1w|V ziBD`LsUHr`8MSy_5sNp|>sXtHm;zYYm|N}QsUS9^)c%Z988rWn(J^-dSF1~Xa^Qsz zqz3wMOxM759aOjlj9kaK8R*{VrI+b+Y_gLPCRVKau) z(xebJo^87@^Q)Lw$2_jw;c?x7{fxx482RALb4=~^F&Ad)^I{A0yaYck z&iPH`FNm!yj4LO(OWNF>!OzNHLFVTXy)SDiBhpRW!F%yB66Gj|QIma%hZp;*duxSH zcB@68(D7jrU~6j&68yn{FaOaX1Cal7xXtkIw&xP9kuD@!BaMq}x4+)!x03-1`FJtj zUg*rkRbvKHmb} zy|s9A^TrMbAjo^#=R2b98f9&IQG)s8Umj<|+c!NI-j?a>q2nz?nP~i|wGxsqz-aQw w%CpMZ(aA8lGN<{9 literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Configuration/TestConsole/obj/Debug/TestConsole.exe.incr b/SAF/Test.SAF.Configuration/TestConsole/obj/Debug/TestConsole.exe.incr new file mode 100644 index 0000000000000000000000000000000000000000..fa60b86b3a75058b783aef221eeea0dab69613b8 GIT binary patch literal 1956 zcmchYKX21O7{(u$mOpI=CMJYVVr~SgprU0-od%_%L6D*#5u`eaQ{38dWnT&r3*P~; zvM{t_frSwX6c)+=AApb0fj=7)&wI9MA^~D(eb$@1d+*No%lkfeu5??G8@OHV_-e7| z`E6Blw4*vFNpHuAwTj%Pyd*A6 zqVoLl-~@nEG$~`WN!k>xge5HEHm+d-tGIzCV3uT|Sn0 z=UCa8M+0?KP~|Q+*s8I=0uL=j2ocjd&?sRQeXiD=7tr5^&qsS*h%8R5#dQBTJ8SA-YtRhjsLfnl#(uJD8o!5%u|8-yn-;#!KuqxoX`gOm_I!`-W*J zNLGE;?@f?4Jpj0wBW)2|e0&p0QDE|q|CjzaNtf^aH1yfIuI5OeW%2L1D>5f8b0nEQ zIPG$y;qGAnD|NgqDPXxmJG#>zP^B$%GfAvP!wJpj&5doz{n;JY)L9f+o14=9O?9}+ z4au-UwGJzHG@6;p3yj}GT6)~EPa?|e zp9B?iYC}e}Wtb8=`ChHPeRFPiZ(wCev-BOsEnt(wF;w!s5sGX_iIHT|;-&NpW=T_D literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Configuration/TestConsole/obj/Debug/TestConsole.pdb b/SAF/Test.SAF.Configuration/TestConsole/obj/Debug/TestConsole.pdb new file mode 100644 index 0000000000000000000000000000000000000000..8b3a1d399a8e539b3eda321361225c7957013be3 GIT binary patch literal 15872 zcmeHO-)|IE6ut`u+Cpnrv0_17YaykD-EPGedEv*l4QLx6En>_jupMUUhV5*#vjs_b zCPCL%^;9LjJJ)G;rC+{3s`)ga^3aWqE zrJYz-aU-zNdsA7H`vmopS3~r9l$OB%gCEa{@jn*j(aW7RdXf(TG137(9K*dW0;w=4u3DiBRpSG$dGXj zU_SRCtk-=0J9fTpuk!iYa8#^EeXeb1eJx`cx|U023?W)jZm<8zcB5u4GpuJ1jOwF$ zZ$?X4Rb^fB#o1Rv(=ww*&RtcGlY1uWPxd?9E*kMX^3~agenK~L{d)FPw`+4vc%L2UE(6$P@LZ)Ga1Y@)MXQPxqSeB2UVJ^B|NwnO97nh7>bq zOAU!@>4a%U!e`U@eJkfaB9AKYchRi;YmcovOL>Vu)Ip479tq3LEk4XsHJ zWz1YWpUIKNw#Om-I2AoSZ57CDEGRjKqdwO2wx_9N@Z8`c5t$ zu`A&`J;pmyoTJCqA;funtQjHBy4q(05q4y*GKO*bM9h6xAcbcWgrZd0hthv2F|}?+#Vk zDz6gbSTskGI16z7e0FhZp0AGkoUnDC6Wy_`9qk>lcCqDZ_?}vC16F5KewW||q()W< zq_ zLvjb@AN}FXp`U+xzvs->&dBS%zqEXgyhv}#IKJ0NW<erY9|bp1->Qb^m+FQjux*|8w>JS1D7eVKe5!yJ^}f${F_<^7{ej`{Rdw1E%DU zrg=Ms_@X3!C*hR;d-GKOlq>foj+b(!d}{%xT%F$p@Y@i|el@^vL`oE7iOul91wv~u zPTIjjL>=Va5Sifne}y=-@bf5R`hV0F*v)OL;Q!G+eh-WT^#3jZie~TsRg2RwsNbLi z{(p$(rTOM9nrKN*|1bYSVCtJ6zV%9Jy6E2B8QtC4^O|g@d`ym?87eIcVHK|9K}V7J z7~nH6eDQ6;XBP80X+zw^zL?+SE{G0}LiSgbM9d4{72TFCq^72ZJxHKmY&$ literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Configuration/TestConsole/obj/Debug/TestConsole.projdata b/SAF/Test.SAF.Configuration/TestConsole/obj/Debug/TestConsole.projdata new file mode 100644 index 0000000000000000000000000000000000000000..f49859f6e9fa93f846de18d2f08aa2cb5de2304c GIT binary patch literal 1672 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 literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.MessageQueue/TestConsole/App.ico b/SAF/Test.SAF.MessageQueue/TestConsole/App.ico new file mode 100644 index 0000000000000000000000000000000000000000..3a5525fd794f7a7c5c8e6187f470ea3af38cd2b6 GIT binary patch literal 1078 zcmeHHJr05}7=1t!Hp3A*8IHkVf+j?-!eHY14Gtcw1Eb*_9>Bq^zETJ@GKj{_2j4$w zo9}xCh!8{T3=X##Skq>ikMjsvB|y%crWBM2iW(4pI}c%z6%lW!=~4v77#3{z!dmB1 z__&l)-{KUYR+|8|;wB^R|9ET$J@(@=#rd^=)qs85?vAy(PSF5CyNkus435LVkZ$rj zNw|JG-P7^hF<(;#o*Vk}5R#e|^13tBbQkeF?djULtvqyxd3<{9 literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.MessageQueue/TestConsole/AssemblyInfo.cs b/SAF/Test.SAF.MessageQueue/TestConsole/AssemblyInfo.cs new file mode 100644 index 0000000..9f89a32 --- /dev/null +++ b/SAF/Test.SAF.MessageQueue/TestConsole/AssemblyInfo.cs @@ -0,0 +1,58 @@ +using System.Reflection; +using System.Runtime.CompilerServices; + +// +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +// +[assembly: AssemblyTitle("")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("")] +[assembly: AssemblyCopyright("")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: + +[assembly: AssemblyVersion("1.0.*")] + +// +// In order to sign your assembly you must specify a key to use. Refer to the +// Microsoft .NET Framework documentation for more information on assembly signing. +// +// Use the attributes below to control which key is used for signing. +// +// Notes: +// (*) If no key is specified, the assembly is not signed. +// (*) KeyName refers to a key that has been installed in the Crypto Service +// Provider (CSP) on your machine. KeyFile refers to a file which contains +// a key. +// (*) If the KeyFile and the KeyName values are both specified, the +// following processing occurs: +// (1) If the KeyName can be found in the CSP, that key is used. +// (2) If the KeyName does not exist and the KeyFile does exist, the key +// in the KeyFile is installed into the CSP and used. +// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. +// When specifying the KeyFile, the location of the KeyFile should be +// relative to the project output directory which is +// %Project Directory%\obj\. For example, if your KeyFile is +// located in the project directory, you would specify the AssemblyKeyFile +// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] +// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework +// documentation for more information on this. +// +[assembly: AssemblyDelaySign(false)] +[assembly: AssemblyKeyFile("")] +[assembly: AssemblyKeyName("")] diff --git a/SAF/Test.SAF.MessageQueue/TestConsole/Class1.cs b/SAF/Test.SAF.MessageQueue/TestConsole/Class1.cs new file mode 100644 index 0000000..d08a280 --- /dev/null +++ b/SAF/Test.SAF.MessageQueue/TestConsole/Class1.cs @@ -0,0 +1,76 @@ +using System; +using SAF.MessageQueue; + +namespace TestConsole +{ + /// + /// Demo application to show how to use SAF.MessageQueue service + /// + class Class1 + { + /// + ///Demo application to show how to use SAF.MessageQueue service. Please + ///refer to configuration file to determine what message queues need + ///to be setup on MSMQ and MQSeries in order to run this demo. + /// + [STAThread] + static void Main(string[] args) + { + //create a new MSMQ implementation object + IMessageQueue msmq = new MSMQ("QueueA"); + //bind the implementation to the MessageQueueManager + IMessageQueueManager mqm = new MessageQueueManager(msmq); + + //create a new message object + Message m = new Message(); + m.Label = "test"; + m.Content ="this is test"; + try + { + mqm.OpenConnection(); + mqm.SendMessage(m); + Message retrievedMessage = mqm.RetrieveMessage(); + //send two more method the queue for MessageArrival event test later + mqm.SendMessage(m); + mqm.SendMessage(m); + } + finally + { + mqm.CloseConnection(); + } + + //register the client with the message arrive + mqm.RegisterMessageArrivalHanlder(new MessageArrivalHandler(RecieveMessage)); + + //create a new MQSeries implementation + IMessageQueue mqseries = new MQSeries("QueueB"); + //bind implementation object to the MessageQueueManager + mqm = new MessageQueueManager(mqseries); + try + { + mqm.OpenConnection(); + mqm.SendMessage(m); + Message retrievedMessage = mqm.RetrieveMessage(); + } + finally + { + mqm.CloseConnection(); + } + + + Console.ReadLine(); + } + + /// + /// The method that will be called when message arrives at the queue + /// + /// message object + /// name of queue + public static void RecieveMessage(Message message, string queueName) + { + Console.WriteLine("Received from queue listener: "); + Console.WriteLine(message.Content.ToString()); + Console.WriteLine(queueName); + } + } +} diff --git a/SAF/Test.SAF.MessageQueue/TestConsole/TestConsole.csproj b/SAF/Test.SAF.MessageQueue/TestConsole/TestConsole.csproj new file mode 100644 index 0000000..f1797e3 --- /dev/null +++ b/SAF/Test.SAF.MessageQueue/TestConsole/TestConsole.csproj @@ -0,0 +1,106 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SAF/Test.SAF.MessageQueue/TestConsole/TestConsole.csproj.user b/SAF/Test.SAF.MessageQueue/TestConsole/TestConsole.csproj.user new file mode 100644 index 0000000..e1b802f --- /dev/null +++ b/SAF/Test.SAF.MessageQueue/TestConsole/TestConsole.csproj.user @@ -0,0 +1,48 @@ + + + + + + + + + + + + diff --git a/SAF/Test.SAF.MessageQueue/TestConsole/app.config b/SAF/Test.SAF.MessageQueue/TestConsole/app.config new file mode 100644 index 0000000..792f8ba --- /dev/null +++ b/SAF/Test.SAF.MessageQueue/TestConsole/app.config @@ -0,0 +1,20 @@ + + +
+
+ + + + + + FormatName:DIRECT=OS:.\private$\MSMQTest + 1000 + + + MQ_Local + MQSeriesTest + 1000 + + + + diff --git a/SAF/Test.SAF.MessageQueue/TestConsole/bin/Debug/Interop.MQAX200.dll b/SAF/Test.SAF.MessageQueue/TestConsole/bin/Debug/Interop.MQAX200.dll new file mode 100644 index 0000000000000000000000000000000000000000..dcdb8445dd871459319ed536b78f8a34de10594e GIT binary patch literal 122880 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

;HE$k+#D!@TLX8(hQQr$d!P*N2;2)3 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 literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.MessageQueue/TestConsole/bin/Debug/SAF.MessageQueue.pdb b/SAF/Test.SAF.MessageQueue/TestConsole/bin/Debug/SAF.MessageQueue.pdb new file mode 100644 index 0000000000000000000000000000000000000000..3816040b9a67925137f64b20b298971eefcfd166 GIT binary patch literal 36352 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 G68L{=Uu>}e literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.MessageQueue/TestConsole/bin/Debug/TestConsole.exe b/SAF/Test.SAF.MessageQueue/TestConsole/bin/Debug/TestConsole.exe new file mode 100644 index 0000000000000000000000000000000000000000..263325b77e093a2deca4c2cac3495a7cd9a7dbab GIT binary patch literal 6144 zcmeHLU2Ggz6+SawuYb~P{F62gPQ#>5krU9euHB!MP}cS)wi|E!vyKCerDk^bdOgYR z%z9=v@lrvJglH=v(MnZc5D!ItC=w4KkZ1@d6%VwP5Q-{j_|BQ# zc(&e>21JEWu6@6I{_eTwp8Gd;`mtxJg@_`k*RK=3f|g5C@L$6^)Ul8MI7UD0cy-?^ z+VrdY7FI0JD7#LD2bn2T1SPP3(t$FOMW-o8Y?=YtAj+x zm`)O{wAX~;=5!Fk+CHK^VfoEygDC8-9sFddPuy2)KKPLi0CY0fTHN5I7(}PzuIJ{! zNo+|Fp`3t|l0@`zR}~!?O1e%%%)ahI4V5I(Scny}i}Q-Yv2mBTG0(S=dJQxxs9P)j zi3q(E^zC-xpzQ5H%$-pW%h0*a>jvJ@?m|}nQV-~McQ=#0AlsasjP1^y!XWm}?R72? z{;sXf*#+?%Z9CtKBG{crce-qnVAlR-vUN7-+DM!6y@vUekBSr0Rm&RV2VI!FWH9-}F2$!F+1@Y{kH1z!_< zOR!yI?SSATf+q#bg5MDQuHb9h&v489S!2(-J_T$O>=%4c@F~HIz$jhP2P7(vkE7(a zi-zbSv4`h?3F;O}HyzL)0R3tG5WPs#`Yzxp z{V=egj{(m^@*P-Cfc}=Artgb~3v^k}&;|OF?otQ6qn`(|e}g>wB+kxf=m}u2V87t7 z;5NZ=!DE6M!Bc`c!Lx|FXy;LD@&QG=c^LUWY4IaPvb??^M=CKlr}A!-ha5L zcG75G&@Q?9yJVa4C7nst%HToc8(Q!1Nw zb!!h~df6&eT$3liRh?2^&b7+Tl?#?1&O@+1@swp2Y{&DhoJVqz70hgd*}~|;imS~0 z=4hsi3o4yS&(#-8uEn%z%6DbVtOXo({Iy z(1Q zMD+N$;~rU4auLYAp;SCy(l?8dBiKkhyN#OMlen#*ul7NRjSUru#on+s^klm-RVCU2ZbtqajN=UE zv}qS)KaYMT^mFN~WGJwml$d5}J~;avQ+c=4wtWP&EIsr9KUj9 z$}dMQhs!0RhIA)yc{Llt0keVaw*KF%E%4tK9+USuzkLR3eV=cDZeG@TbMwXy8X(A9 z+UISx?OIFQ#Eb-U?cZ)EgXNo;4whx&Qs8(4Q8pAlYU>S>55Z`1WaX@Kc62ffzNI7b m;_B4Z6>$9ChMv?9;rO=6N1g#A_`gfy&__PGVo8~FlU?q literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.MessageQueue/TestConsole/bin/Debug/TestConsole.exe.config b/SAF/Test.SAF.MessageQueue/TestConsole/bin/Debug/TestConsole.exe.config new file mode 100644 index 0000000..792f8ba --- /dev/null +++ b/SAF/Test.SAF.MessageQueue/TestConsole/bin/Debug/TestConsole.exe.config @@ -0,0 +1,20 @@ + + +

+
+ + + + + + FormatName:DIRECT=OS:.\private$\MSMQTest + 1000 + + + MQ_Local + MQSeriesTest + 1000 + + + + diff --git a/SAF/Test.SAF.MessageQueue/TestConsole/bin/Debug/TestConsole.pdb b/SAF/Test.SAF.MessageQueue/TestConsole/bin/Debug/TestConsole.pdb new file mode 100644 index 0000000000000000000000000000000000000000..e3f4bbedcbe3e7d4d8b587dd772a58e63f02ff51 GIT binary patch literal 13824 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 literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.MessageQueue/TestConsole/obj/Debug/TestConsole.exe.incr b/SAF/Test.SAF.MessageQueue/TestConsole/obj/Debug/TestConsole.exe.incr new file mode 100644 index 0000000000000000000000000000000000000000..501bfd5989e53b3a930fed9a3dc9acab32f76fcd GIT binary patch literal 1408 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 literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Transaction/TestConsole/AssemblyInfo.cs b/SAF/Test.SAF.Transaction/TestConsole/AssemblyInfo.cs new file mode 100644 index 0000000..9f89a32 --- /dev/null +++ b/SAF/Test.SAF.Transaction/TestConsole/AssemblyInfo.cs @@ -0,0 +1,58 @@ +using System.Reflection; +using System.Runtime.CompilerServices; + +// +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +// +[assembly: AssemblyTitle("")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("")] +[assembly: AssemblyCopyright("")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: + +[assembly: AssemblyVersion("1.0.*")] + +// +// In order to sign your assembly you must specify a key to use. Refer to the +// Microsoft .NET Framework documentation for more information on assembly signing. +// +// Use the attributes below to control which key is used for signing. +// +// Notes: +// (*) If no key is specified, the assembly is not signed. +// (*) KeyName refers to a key that has been installed in the Crypto Service +// Provider (CSP) on your machine. KeyFile refers to a file which contains +// a key. +// (*) If the KeyFile and the KeyName values are both specified, the +// following processing occurs: +// (1) If the KeyName can be found in the CSP, that key is used. +// (2) If the KeyName does not exist and the KeyFile does exist, the key +// in the KeyFile is installed into the CSP and used. +// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. +// When specifying the KeyFile, the location of the KeyFile should be +// relative to the project output directory which is +// %Project Directory%\obj\. For example, if your KeyFile is +// located in the project directory, you would specify the AssemblyKeyFile +// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] +// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework +// documentation for more information on this. +// +[assembly: AssemblyDelaySign(false)] +[assembly: AssemblyKeyFile("")] +[assembly: AssemblyKeyName("")] diff --git a/SAF/Test.SAF.Transaction/TestConsole/Class1.cs b/SAF/Test.SAF.Transaction/TestConsole/Class1.cs new file mode 100644 index 0000000..8ac9172 --- /dev/null +++ b/SAF/Test.SAF.Transaction/TestConsole/Class1.cs @@ -0,0 +1,174 @@ +using System; +using System.Reflection; +using SAF.Transaction; +using System.Data; +using System.Data.SqlClient; + +namespace TestConsole +{ + /// + /// Demo that show SAF.Transaction can be used wrap multiple + /// calls into different transactions + /// + class Class1 + { + + [STAThread] + static void Main(string[] args) + { + DataAccess data = new DataAccess(); + //clean up the table + data.ClearupTable(); + + //--------------Sample 1--------------------------------// + ITransactionController transaction_A= TransactionManager.GetRequireTransactionController(); + try + { + transaction_A.ExecuteMethod(data,"AddNewRecord",new object[2]{"xin","111111111"}); + transaction_A.ExecuteMethod(data,"AddNewRecord",new object[2]{"mike","222222222"}); + //this call will fail due to duplicate key error. + transaction_A.ExecuteMethod(data,"AddNewRecord",new object[2]{"john","111111111"}); + TransactionManager.Commit(transaction_A); + } + catch (Exception ex) + { + TransactionManager.Rollback(transaction_A); + //additional error handling code.... + } + finally + { + //release the resource used by the serviced component + TransactionManager.DisposeAll(transaction_A); + } + + //--------------Sample 1 result --------------------------// + //None of three record is inserted to the employee table. // + //--------------------------------------------------------// + + //clean up the table + data.ClearupTable(); + + //--------------Sample 2----------------------------------// + ITransactionController transaction_C= TransactionManager.GetRequireNewTransactionController(); + ITransactionController transaction_B= TransactionManager.GetRequireTransactionController(); + + try + { + transaction_B.ExecuteMethod(data,"AddNewRecord","xin","111111111"); + transaction_B.ExecuteMethod(data,"AddNewRecord","mike ","222222222"); + try + { + //add an important employee. Add him regardless whether other + //employees are added to table successfully + transaction_C.ExecuteMethod(data,"AddNewRecord","bill","333333333"); + TransactionManager.Commit(transaction_C); + } + catch (Exception ex) + { + TransactionManager.Rollback(transaction_C); + } + //this call will fail due to duplicate key error. + transaction_B.ExecuteMethod(data,"AddNewRecord",new object[2]{"john","111111111"}); + TransactionManager.Commit(transaction_B); + } + catch (Exception ex) + { + TransactionManager.Rollback(transaction_B); + //additional error handling code.... + } + finally + { + //release the resource used by the serviced component + TransactionManager.DisposeAll(transaction_B,transaction_C); + } + + //--------------Sample 2 result ---------------------------// + //----------Only bill is added to the employee table.------// + //---------------------------------------------------------// + + + //clean up the table + data.ClearupTable(); + + //--------------Sample 3-----------------------------------// + ITransactionController transaction_D= TransactionManager.GetNoTransactionController(); + ITransactionController transaction_E= TransactionManager.GetSupportTransactionController(); + ITransactionController transaction_F= TransactionManager.GetRequireTransactionController(); + try + { + data.AddNewRecord("xin","111111111"); + transaction_D.ExecuteMethod(data,"AddNewRecord","mike","222222222"); + transaction_E.ExecuteMethod(data,"AddNewRecord","bill","333333333"); + //this call will fail due to duplicate key error. + transaction_F.ExecuteMethod(data,"AddNewRecord","john","111111111"); + TransactionManager.Commit(transaction_D,transaction_E,transaction_F); + } + catch (Exception ex) + { + TransactionManager.Rollback(transaction_D,transaction_E,transaction_F); + //additional error handling code.... + } + finally + { + //release the resource used by the serviced component + TransactionManager.DisposeAll(transaction_D,transaction_E,transaction_F); + } + + //--------------Sample 3 result --------------------------------------------// + //only xin, mike, bill are added to the employee table. John is not added.--// + //--------------------------------------------------------------------------// + + } + + } + /// + /// DataAccess provides access to testing db. + /// + public class DataAccess + { + private string connection; + public DataAccess() + { + connection ="Initial Catalog=SAFDemo;Data Source=localhost;Integrated Security=SSPI"; + } + /// + /// Insert a record to the table + /// + /// + /// + public void AddNewRecord(string name,string ssn) + { + + SqlConnection conn = new SqlConnection(connection); + try + { + conn.Open(); + SqlCommand command = new SqlCommand("insert into employees values('" + name + "','" + ssn + "')",conn); + command.ExecuteNonQuery(); + } + finally + { + conn.Close(); + } + + } + + /// + /// Clearn up the table for the next test + /// + public void ClearupTable() + { + SqlConnection conn = new SqlConnection(connection); + try + { + conn.Open(); + SqlCommand command = new SqlCommand("delete from employees",conn); + command.ExecuteNonQuery(); + } + finally + { + conn.Close(); + } + } + } +} diff --git a/SAF/Test.SAF.Transaction/TestConsole/TestConsole.csproj b/SAF/Test.SAF.Transaction/TestConsole/TestConsole.csproj new file mode 100644 index 0000000..31cf64d --- /dev/null +++ b/SAF/Test.SAF.Transaction/TestConsole/TestConsole.csproj @@ -0,0 +1,107 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SAF/Test.SAF.Transaction/TestConsole/TestConsole.csproj.user b/SAF/Test.SAF.Transaction/TestConsole/TestConsole.csproj.user new file mode 100644 index 0000000..c8340ea --- /dev/null +++ b/SAF/Test.SAF.Transaction/TestConsole/TestConsole.csproj.user @@ -0,0 +1,48 @@ + + + + + + + + + + + + diff --git a/SAF/Test.SAF.Transaction/TestConsole/bin/Debug/SAF.Transaction.dll b/SAF/Test.SAF.Transaction/TestConsole/bin/Debug/SAF.Transaction.dll new file mode 100644 index 0000000000000000000000000000000000000000..5750fb125132bcc4af6b2e450a5c7922d836d0a5 GIT binary patch literal 6656 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 literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Transaction/TestConsole/bin/Debug/TestConsole.pdb b/SAF/Test.SAF.Transaction/TestConsole/bin/Debug/TestConsole.pdb new file mode 100644 index 0000000000000000000000000000000000000000..91ad111c14bc3be948c59b1b7780eaa1ef5d2225 GIT binary patch literal 15872 zcmeHOTWnNC7@jTLQm(QEQOa$>63WHB6f74_x@DnUY(Z%w2t-)6r&3sUvAYI{nw%I= zAH0BK023bwXpB+Ogv4khA%Ph5Nde=7m=Hq@1|tD^fCs7HH)rPbv}yNH%B7*_Z~pVm znfd4T|1O*^jEDzg~a}gzy2zgFoRrXq*M! z^FGi(xnI25>QSH7z^?19|MuC=dmV4xIw0zsO+PkFF<^*jZH3#n;)ovIw;H&%{^_dk z`=1W%su#zW9V|F-V!@O9|N8S(U{{s(KIp^ORt1_)2aZk^;#%?Iqg^SY90_B={lG=w zhry%31Hc2ph2TNp!Qdg_q2LF=9CiV433xbo1o$EFNbrN;{$P*poCa=}{kyV#F`DiN zd$zxGHtb2so%w$*i%$Q~ch=Dnds45Lw|8ma2pu;_qxIJI+yDoj!=Q+P&mo#)A)n9h z$-L)U;nCgE!010BJ`+`)-}cq&m;5JuT)VqNyc?je(8#xF5S39d(C8Xl5^K&6HRM!Mm85hAe3uKq_c@+t~ryIk;zOtn@JgKlBq;C8x1A1 z*4obew5=w&cIX!md$k7i{Ev;TdgbEl$9>)Py?WkjWM>)n=6|m?yWKeM%|l`;k6@xq zIsY+gFTgn1QpVDzqAt;#288|}{wZ#`A~97213X*6=g2 zA{JHXKm;OEmgi3w*{GJ~In_nBLd)_z3svN6gLIK>FVDR$veF$>mgi%aHaw==z{*`@ zE43`o+b*)RwCr$qS$T!T_VWDh(ziLfT%Paq%SLUx@jf7bd!x49cz@thu5CBoQ@F_5 zcH@19OB-yvmAcE?b{p+3Yujy%yR2?F&-ew z^S^3?5RIJRpovJM&%k9{&eZO&v5k5xvhy5KdA1{i&V#7Dc`iVJbMBNQ z4;^;Cdd46z2$?fzkgkV!be-j4`^Y~0u^tlF2j(NMWCVzDx3GPb({iKSAoXP&dcbN3$n7<}{8Rn4rI1uy0Yy@IFn{NRzR?UOJ2|(K75#V>gDZrnB zQQ)sY*v$MLh)HRl2V$_BLs92k;A~(OFaeAKw*oP)OxkHa@Ezbn;5R^=b(&RA0qkz#)^2JoXRWhGd z$5hBIcJLA@Q;6Odily)?esL8#<@|ywBrzNWL+`R4fL#~EY(LvcDikq^R-f|MOF=6y zG!J6^B)2w5p+5NVqtAN(cS7}_^GOqiRFR(VB9zQ!Fwpe=?-+#W%yjy_*#Bw&RH^o` z!!Q>}D=d&t^sy*}j>xfB-PpL)*t*7Xd2=G&D1CfKT}F_P6t+MPN4I9QV90 zrA`523;1R58(^k!ERm@PGG%XdjbwSRqFmO^GT&BVmU{rw0GtAk2bZ*~#~L3#dwe5iiMM6iQ->^=`hi1V!sO#egQv?F-fNT(PW>x030c%IN~Ce@~$n~UbaAO7M-#MLdnh$@T69`^t}b5 z{iaOkvC>qYnQeKv$0!i(Hy=8Wm8SC0Y4wbXdzRhH?P;KQYaocZ#JSxW>Ae9b0nZX# z`})}Wci+!{+L*rq;@%tQ!r6nwg)*+)yd#7A7t_Iuz?yguKT5v*b4n?yLr$M21*WA$RRxj zK8HAt3FfDfSO(Vxejmd+A`OTvxAePTWb^1QX<$z%>ihBhmMYrt{MF$Hz6ck@_WqLI zc>HXAe|(z~;o9c(rp4)|j0mR_n~khB-8UGCMx(`>|98nqcd#0KPnCBw`R4x)OyuGY mbKlx3w13i1&>xHeck~JL1$5rt{{cV=y@>c55s&(=2L1=w9Z;YE literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Transaction/TestConsole/obj/Debug/TestConsole.exe b/SAF/Test.SAF.Transaction/TestConsole/obj/Debug/TestConsole.exe new file mode 100644 index 0000000000000000000000000000000000000000..4a4fae46a0d3e3a295b735d99201c42743bdc4a0 GIT binary patch literal 7680 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 literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Transaction/TestConsole/obj/Debug/TestConsole.exe.incr b/SAF/Test.SAF.Transaction/TestConsole/obj/Debug/TestConsole.exe.incr new file mode 100644 index 0000000000000000000000000000000000000000..1deef10b2ce895eca2b9bb6c12202b3cf5922578 GIT binary patch literal 1582 zcmcgsyKWOf6g@WKO&QT4jYORl5rT*WAvtRYIZ8mn0VBoDu00D&_7Uw)Od=W(H4+V9 zKtl%-6{13>0g6;qQ1Ag1Jbr+4$6jM2L}fhI^~^mpJ9GBjGh0vEnT~a0yhttYgi%LT zJ>#h$&6ImuxoNx|Mmke-bIRNfa}_XCxk)pftBx!*snUt(6AirFs7(8^N$wm&{ptPQ zVE{)N(#nh@jN^ME=$e4M09!mL100`n!`qp1diYKhQ@P*tu9l z3r*B< zYJ-klp(i%DgLuN>UV=D8#7zlNkB&3kJ7xBJrE7C>VZ>)!@VP?ftIT}t;1Ul_9IiX_xZ+ zJAY_bRAgLdhwAP!2FAk;Y9-?@EOVE=xKq9~k3TjZ`VV@=GT!~kSG+<6#eFf^NBpML xS^t2FI@C4id3|Q$Iko?)DgG<8oF_JE|GDJgSw`~369&c0i#Afd5&`OC`(N+&5BC57 literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Transaction/TestConsole/obj/Debug/TestConsole.pdb b/SAF/Test.SAF.Transaction/TestConsole/obj/Debug/TestConsole.pdb new file mode 100644 index 0000000000000000000000000000000000000000..91ad111c14bc3be948c59b1b7780eaa1ef5d2225 GIT binary patch literal 15872 zcmeHOTWnNC7@jTLQm(QEQOa$>63WHB6f74_x@DnUY(Z%w2t-)6r&3sUvAYI{nw%I= zAH0BK023bwXpB+Ogv4khA%Ph5Nde=7m=Hq@1|tD^fCs7HH)rPbv}yNH%B7*_Z~pVm znfd4T|1O*^jEDzg~a}gzy2zgFoRrXq*M! z^FGi(xnI25>QSH7z^?19|MuC=dmV4xIw0zsO+PkFF<^*jZH3#n;)ovIw;H&%{^_dk z`=1W%su#zW9V|F-V!@O9|N8S(U{{s(KIp^ORt1_)2aZk^;#%?Iqg^SY90_B={lG=w zhry%31Hc2ph2TNp!Qdg_q2LF=9CiV433xbo1o$EFNbrN;{$P*poCa=}{kyV#F`DiN zd$zxGHtb2so%w$*i%$Q~ch=Dnds45Lw|8ma2pu;_qxIJI+yDoj!=Q+P&mo#)A)n9h z$-L)U;nCgE!010BJ`+`)-}cq&m;5JuT)VqNyc?je(8#xF5S39d(C8Xl5^K&6HRM!Mm85hAe3uKq_c@+t~ryIk;zOtn@JgKlBq;C8x1A1 z*4obew5=w&cIX!md$k7i{Ev;TdgbEl$9>)Py?WkjWM>)n=6|m?yWKeM%|l`;k6@xq zIsY+gFTgn1QpVDzqAt;#288|}{wZ#`A~97213X*6=g2 zA{JHXKm;OEmgi3w*{GJ~In_nBLd)_z3svN6gLIK>FVDR$veF$>mgi%aHaw==z{*`@ zE43`o+b*)RwCr$qS$T!T_VWDh(ziLfT%Paq%SLUx@jf7bd!x49cz@thu5CBoQ@F_5 zcH@19OB-yvmAcE?b{p+3Yujy%yR2?F&-ew z^S^3?5RIJRpovJM&%k9{&eZO&v5k5xvhy5KdA1{i&V#7Dc`iVJbMBNQ z4;^;Cdd46z2$?fzkgkV!be-j4`^Y~0u^tlF2j(NMWCVzDx3GPb({iKSAoXP&dcbN3$n7<}{8Rn4rI1uy0Yy@IFn{NRzR?UOJ2|(K75#V>gDZrnB zQQ)sY*v$MLh)HRl2V$_BLs92k;A~(OFaeAKw*oP)OxkHa@Ezbn;5R^=b(&RA0qkz#)^2JoXRWhGd z$5hBIcJLA@Q;6Odily)?esL8#<@|ywBrzNWL+`R4fL#~EY(LvcDikq^R-f|MOF=6y zG!J6^B)2w5p+5NVqtAN(cS7}_^GOqiRFR(VB9zQ!Fwpe=?-+#W%yjy_*#Bw&RH^o` z!!Q>}D=d&t^sy*}j>xfB-PpL)*t*7Xd2=G&D1CfKT}F_P6t+MPN4I9QV90 zrA`523;1R58(^k!ERm@PGG%XdjbwSRqFmO^GT&BVmU{rw0GtAk2bZ*~#~L3#dwe5iiMM6iQ->^=`hi1V!sO#egQv?F-fNT(PW>x030c%IN~Ce@~$n~UbaAO7M-#MLdnh$@T69`^t}b5 z{iaOkvC>qYnQeKv$0!i(Hy=8Wm8SC0Y4wbXdzRhH?P;KQYaocZ#JSxW>Ae9b0nZX# z`})}Wci+!{+L*rq;@%tQ!r6nwg)*+)yd#7A7t_Iuz?yguKT5v*b4n?yLr$M21*WA$RRxj zK8HAt3FfDfSO(Vxejmd+A`OTvxAePTWb^1QX<$z%>ihBhmMYrt{MF$Hz6ck@_WqLI zc>HXAe|(z~;o9c(rp4)|j0mR_n~khB-8UGCMx(`>|98nqcd#0KPnCBw`R4x)OyuGY mbKlx3w13i1&>xHeck~JL1$5rt{{cV=y@>c55s&(=2L1=w9Z;YE literal 0 HcmV?d00001 diff --git a/SAF/Test.SAF.Transaction/TestConsole/obj/Debug/TestConsole.projdata b/SAF/Test.SAF.Transaction/TestConsole/obj/Debug/TestConsole.projdata new file mode 100644 index 0000000000000000000000000000000000000000..ff6bb30092e92fb806f85c34be2a3fc79e29a8d0 GIT binary patch literal 3720 zcmeH}zfV(96vxj4icgdV6D3Nbd8rOaphO1;QcZ})sEG_f;-C&tO2m|wv=Aja)VOpc zO!!Y22NxaH$w4Ro0cZaJ2NV5#?|YBesx@e_F_GJx-qUmMJ@=gN`EmQ?*nr< zo*1*QjA`*K4B9QbXk{zesukRK6^U8O!p$jda=*Ky8AXgVr;0XbRX%6Q7F2r z%S)%xr0!F|vWl(ILuTPr?FBTQXt_4*bO=4!DTn2)ct+%Z2G-wiwkR<)=xi+EzpRbB zqLxO}t$NykopgKUTX^Sg`~TT;pjPIV3)WAJa&){kI^MEFWId9q^QjY7usdKSfJ-nB zkd~3H+8v}d+!c*Lb-(le*TDY^cdOGX|7C~pZ$JNlC%e1zW$pCapd_&5`?5&q*pjX=)Ex8oG1n9{1TLPq81KQL<8Aae01|9`I@ z+t0`N{tPzM517L}uIVttTOqvSa(<4821HVG!Orul$9#rrP#ltdam^%>pgI5Pe+$ln zq&}1ff72fMKLx2HDgV{S%zEjZSD4R18rsoItJ+|`D*C{_0>T=0Tpla4@kko7vvmfhO9sNF0)$XMKDgX4ZF3uih zQYZWs_M6--{1t!wH~)3sH=^9bDRmZ?CI{mjdJ6weiaI)K+}H&PfBCQ1 OzLW9)-|+rExZeP48GC;K literal 0 HcmV?d00001 diff --git a/SAF/Test.Server.SAF.Cryptography/Test.Server.SAF.Cryptography.sln b/SAF/Test.Server.SAF.Cryptography/Test.Server.SAF.Cryptography.sln new file mode 100644 index 0000000..0398cab --- /dev/null +++ b/SAF/Test.Server.SAF.Cryptography/Test.Server.SAF.Cryptography.sln @@ -0,0 +1,39 @@ +Microsoft Visual Studio Solution File, Format Version 7.00 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Test.BusinessLibrary", "..\Test.BusinessLibrary\Test.BusinessLibrary.csproj", "{A9F1D923-9606-4F00-84A5-166710966412}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SAF.Cryptography", "..\SAF.Cryptography\SAF.Cryptography.csproj", "{CA2E46AF-05AB-4428-91C8-27E1725EA8AB}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SAF.Configuration", "..\SAF.Configuration\SAF.Configuration.csproj", "{CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestConsole", "TestConsole\TestConsole.csproj", "{1F8737A3-2134-46A5-83A0-B5AB74A5FD22}" +EndProject +Global + GlobalSection(SolutionConfiguration) = preSolution + ConfigName.0 = Debug + ConfigName.1 = Release + EndGlobalSection + GlobalSection(ProjectDependencies) = postSolution + EndGlobalSection + GlobalSection(ProjectConfiguration) = postSolution + {A9F1D923-9606-4F00-84A5-166710966412}.Debug.ActiveCfg = Debug|.NET + {A9F1D923-9606-4F00-84A5-166710966412}.Debug.Build.0 = Debug|.NET + {A9F1D923-9606-4F00-84A5-166710966412}.Release.ActiveCfg = Release|.NET + {A9F1D923-9606-4F00-84A5-166710966412}.Release.Build.0 = Release|.NET + {CA2E46AF-05AB-4428-91C8-27E1725EA8AB}.Debug.ActiveCfg = Debug|.NET + {CA2E46AF-05AB-4428-91C8-27E1725EA8AB}.Debug.Build.0 = Debug|.NET + {CA2E46AF-05AB-4428-91C8-27E1725EA8AB}.Release.ActiveCfg = Release|.NET + {CA2E46AF-05AB-4428-91C8-27E1725EA8AB}.Release.Build.0 = Release|.NET + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Debug.ActiveCfg = Debug|.NET + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Debug.Build.0 = Debug|.NET + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Release.ActiveCfg = Release|.NET + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Release.Build.0 = Release|.NET + {1F8737A3-2134-46A5-83A0-B5AB74A5FD22}.Debug.ActiveCfg = Debug|.NET + {1F8737A3-2134-46A5-83A0-B5AB74A5FD22}.Debug.Build.0 = Debug|.NET + {1F8737A3-2134-46A5-83A0-B5AB74A5FD22}.Release.ActiveCfg = Release|.NET + {1F8737A3-2134-46A5-83A0-B5AB74A5FD22}.Release.Build.0 = Release|.NET + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + EndGlobalSection + GlobalSection(ExtensibilityAddIns) = postSolution + EndGlobalSection +EndGlobal diff --git a/SAF/Test.Server.SAF.Cryptography/Test.Server.SAF.Cryptography.suo b/SAF/Test.Server.SAF.Cryptography/Test.Server.SAF.Cryptography.suo new file mode 100644 index 0000000000000000000000000000000000000000..0cee09d7e215bc66ca42300481d098eddb0f8989 GIT binary patch literal 24576 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 literal 0 HcmV?d00001 diff --git a/SAF/Test.Server.SAF.Cryptography/TestConsole/App.ico b/SAF/Test.Server.SAF.Cryptography/TestConsole/App.ico new file mode 100644 index 0000000000000000000000000000000000000000..3a5525fd794f7a7c5c8e6187f470ea3af38cd2b6 GIT binary patch literal 1078 zcmeHHJr05}7=1t!Hp3A*8IHkVf+j?-!eHY14Gtcw1Eb*_9>Bq^zETJ@GKj{_2j4$w zo9}xCh!8{T3=X##Skq>ikMjsvB|y%crWBM2iW(4pI}c%z6%lW!=~4v77#3{z!dmB1 z__&l)-{KUYR+|8|;wB^R|9ET$J@(@=#rd^=)qs85?vAy(PSF5CyNkus435LVkZ$rj zNw|JG-P7^hF<(;#o*Vk}5R#e|^13tBbQkeF?djULtvqyxd3<{9 literal 0 HcmV?d00001 diff --git a/SAF/Test.Server.SAF.Cryptography/TestConsole/AssemblyInfo.cs b/SAF/Test.Server.SAF.Cryptography/TestConsole/AssemblyInfo.cs new file mode 100644 index 0000000..9f89a32 --- /dev/null +++ b/SAF/Test.Server.SAF.Cryptography/TestConsole/AssemblyInfo.cs @@ -0,0 +1,58 @@ +using System.Reflection; +using System.Runtime.CompilerServices; + +// +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +// +[assembly: AssemblyTitle("")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("")] +[assembly: AssemblyCopyright("")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: + +[assembly: AssemblyVersion("1.0.*")] + +// +// In order to sign your assembly you must specify a key to use. Refer to the +// Microsoft .NET Framework documentation for more information on assembly signing. +// +// Use the attributes below to control which key is used for signing. +// +// Notes: +// (*) If no key is specified, the assembly is not signed. +// (*) KeyName refers to a key that has been installed in the Crypto Service +// Provider (CSP) on your machine. KeyFile refers to a file which contains +// a key. +// (*) If the KeyFile and the KeyName values are both specified, the +// following processing occurs: +// (1) If the KeyName can be found in the CSP, that key is used. +// (2) If the KeyName does not exist and the KeyFile does exist, the key +// in the KeyFile is installed into the CSP and used. +// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. +// When specifying the KeyFile, the location of the KeyFile should be +// relative to the project output directory which is +// %Project Directory%\obj\. For example, if your KeyFile is +// located in the project directory, you would specify the AssemblyKeyFile +// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] +// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework +// documentation for more information on this. +// +[assembly: AssemblyDelaySign(false)] +[assembly: AssemblyKeyFile("")] +[assembly: AssemblyKeyName("")] diff --git a/SAF/Test.Server.SAF.Cryptography/TestConsole/Class1.cs b/SAF/Test.Server.SAF.Cryptography/TestConsole/Class1.cs new file mode 100644 index 0000000..fd6929f --- /dev/null +++ b/SAF/Test.Server.SAF.Cryptography/TestConsole/Class1.cs @@ -0,0 +1,28 @@ +using System; +using System.Runtime.Remoting; + +namespace Test.Server.SAF.Cryptography +{ + /// + /// Summary description for Class1. + /// + class Class1 + { + /// + /// The demo application set up the server side remoting service for secure communication. + /// You need to start this console app first before you start Test.Client.SAF.Cryptography project + /// in order to get the secure remoting to work. + /// Please refer to SAF.Cryptography section in app.config file for more information on how + /// to configure the cryptography of the remoting server sink. + /// + [STAThread] + static void Main(string[] args) + { + //load the configuration data which will set up the server remoting sink for + //secure communication. + RemotingConfiguration.Configure(@"TestConsole.exe.config"); + Console.WriteLine("press enter to exit"); + Console.ReadLine(); + } + } +} diff --git a/SAF/Test.Server.SAF.Cryptography/TestConsole/TestConsole.csproj b/SAF/Test.Server.SAF.Cryptography/TestConsole/TestConsole.csproj new file mode 100644 index 0000000..67bf9f2 --- /dev/null +++ b/SAF/Test.Server.SAF.Cryptography/TestConsole/TestConsole.csproj @@ -0,0 +1,116 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SAF/Test.Server.SAF.Cryptography/TestConsole/TestConsole.csproj.user b/SAF/Test.Server.SAF.Cryptography/TestConsole/TestConsole.csproj.user new file mode 100644 index 0000000..c8340ea --- /dev/null +++ b/SAF/Test.Server.SAF.Cryptography/TestConsole/TestConsole.csproj.user @@ -0,0 +1,48 @@ + + + + + + + + + + + + diff --git a/SAF/Test.Server.SAF.Cryptography/TestConsole/app.config b/SAF/Test.Server.SAF.Cryptography/TestConsole/app.config new file mode 100644 index 0000000..c291780 --- /dev/null +++ b/SAF/Test.Server.SAF.Cryptography/TestConsole/app.config @@ -0,0 +1,59 @@ + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + 6HD+Ngi8JoGmD0g= + gi8JoGmD + + + CN=CompanyA + CN=CompanyB + TripleDES + + + CN=CompanyB + CN=CompanyA + TripleDES + + + + + + + + + + + + + \ No newline at end of file diff --git a/SAF/Test.Server.SAF.Cryptography/TestConsole/bin/Debug/Microsoft.Web.Services.dll b/SAF/Test.Server.SAF.Cryptography/TestConsole/bin/Debug/Microsoft.Web.Services.dll new file mode 100644 index 0000000000000000000000000000000000000000..b56cdea1a2c2f4a0903c4e068d88d5a3c660fbdc GIT binary patch literal 311296 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 literal 0 HcmV?d00001 diff --git a/SAF/Test.Server.SAF.Cryptography/TestConsole/bin/Debug/SAF.Configuration.dll b/SAF/Test.Server.SAF.Cryptography/TestConsole/bin/Debug/SAF.Configuration.dll new file mode 100644 index 0000000000000000000000000000000000000000..9b60d05d02427236d6b60c9420585d5b353b82ba GIT binary patch literal 11776 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 L>o2bVcNX|>ZL+xM literal 0 HcmV?d00001 diff --git a/SAF/Test.Server.SAF.Cryptography/TestConsole/bin/Debug/SAF.Configuration.pdb b/SAF/Test.Server.SAF.Cryptography/TestConsole/bin/Debug/SAF.Configuration.pdb new file mode 100644 index 0000000000000000000000000000000000000000..46034d52604e3868b723410d1d58e905521f361d GIT binary patch literal 54784 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 literal 0 HcmV?d00001 diff --git a/SAF/Test.Server.SAF.Cryptography/TestConsole/bin/Debug/SAF.Cryptography.pdb b/SAF/Test.Server.SAF.Cryptography/TestConsole/bin/Debug/SAF.Cryptography.pdb new file mode 100644 index 0000000000000000000000000000000000000000..9ad2026cb7ee80a579c49c5e8a3d27a8351bb72b GIT binary patch literal 69120 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 K70>a)f&UN4vAi(= literal 0 HcmV?d00001 diff --git a/SAF/Test.Server.SAF.Cryptography/TestConsole/bin/Debug/Test.BusinessLibrary.dll b/SAF/Test.Server.SAF.Cryptography/TestConsole/bin/Debug/Test.BusinessLibrary.dll new file mode 100644 index 0000000000000000000000000000000000000000..1a598f1bbfec99324de6225e6fef3aaabc6314a0 GIT binary patch literal 4096 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 + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + 6HD+Ngi8JoGmD0g= + gi8JoGmD + + + CN=CompanyA + CN=CompanyB + TripleDES + + + CN=CompanyB + CN=CompanyA + TripleDES + + + + + + + + + + + + + \ No newline at end of file diff --git a/SAF/Test.Server.SAF.Cryptography/TestConsole/bin/Debug/TestConsole.pdb b/SAF/Test.Server.SAF.Cryptography/TestConsole/bin/Debug/TestConsole.pdb new file mode 100644 index 0000000000000000000000000000000000000000..d76e1d8e4604bce86c9154eaa5b54a494faeaf51 GIT binary patch literal 11776 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 c7f*@#RI<<)L)PwvZIfZm7wb44Ak6>qG zr)6quAHYWt^fz}VX)HvsG7}~{GyBcX?A*?D=TeC=K{4sUF+qBVDkifrs{?JSu9^aQ z;eQK@6jua}8wg5*s;HzEzjgEgJqL161#Phw@or(wVDZ${Mfh);?PowY)m8&UU8l$; zoL;NqZ?h$`7MUuZ+|X*Lx@b1r4B;|!>S3$^**dey8hm=# wL~78tJ`qY-efDegZWJr~WwgAqgPfweSxu&>;38`hUWG$)qWh;&{^R{W05;U9BLDyZ literal 0 HcmV?d00001 diff --git a/SAF/Test.Server.SAF.EventNotification/Test.Server.SAF.EventNotification.sln b/SAF/Test.Server.SAF.EventNotification/Test.Server.SAF.EventNotification.sln new file mode 100644 index 0000000..c1aee0c --- /dev/null +++ b/SAF/Test.Server.SAF.EventNotification/Test.Server.SAF.EventNotification.sln @@ -0,0 +1,33 @@ +Microsoft Visual Studio Solution File, Format Version 7.00 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SAF.EventNotification", "..\SAF.EventNotification\SAF.EventNotification.csproj", "{7D58B200-AD5E-453D-81C9-CBF45119790C}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SAF.Configuration", "..\SAF.Configuration\SAF.Configuration.csproj", "{CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestConsole", "TestConsole\TestConsole.csproj", "{EB0B6104-0AB2-4090-8D00-74C7537AAFF6}" +EndProject +Global + GlobalSection(SolutionConfiguration) = preSolution + ConfigName.0 = Debug + ConfigName.1 = Release + EndGlobalSection + GlobalSection(ProjectDependencies) = postSolution + EndGlobalSection + GlobalSection(ProjectConfiguration) = postSolution + {7D58B200-AD5E-453D-81C9-CBF45119790C}.Debug.ActiveCfg = Debug|.NET + {7D58B200-AD5E-453D-81C9-CBF45119790C}.Debug.Build.0 = Debug|.NET + {7D58B200-AD5E-453D-81C9-CBF45119790C}.Release.ActiveCfg = Release|.NET + {7D58B200-AD5E-453D-81C9-CBF45119790C}.Release.Build.0 = Release|.NET + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Debug.ActiveCfg = Debug|.NET + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Debug.Build.0 = Debug|.NET + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Release.ActiveCfg = Release|.NET + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Release.Build.0 = Release|.NET + {EB0B6104-0AB2-4090-8D00-74C7537AAFF6}.Debug.ActiveCfg = Debug|.NET + {EB0B6104-0AB2-4090-8D00-74C7537AAFF6}.Debug.Build.0 = Debug|.NET + {EB0B6104-0AB2-4090-8D00-74C7537AAFF6}.Release.ActiveCfg = Release|.NET + {EB0B6104-0AB2-4090-8D00-74C7537AAFF6}.Release.Build.0 = Release|.NET + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + EndGlobalSection + GlobalSection(ExtensibilityAddIns) = postSolution + EndGlobalSection +EndGlobal diff --git a/SAF/Test.Server.SAF.EventNotification/Test.Server.SAF.EventNotification.suo b/SAF/Test.Server.SAF.EventNotification/Test.Server.SAF.EventNotification.suo new file mode 100644 index 0000000000000000000000000000000000000000..90ceabd30260d478005e36cf84f13fb799685c86 GIT binary patch literal 12800 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 literal 0 HcmV?d00001 diff --git a/SAF/Test.Server.SAF.EventNotification/TestConsole/App.ico b/SAF/Test.Server.SAF.EventNotification/TestConsole/App.ico new file mode 100644 index 0000000000000000000000000000000000000000..3a5525fd794f7a7c5c8e6187f470ea3af38cd2b6 GIT binary patch literal 1078 zcmeHHJr05}7=1t!Hp3A*8IHkVf+j?-!eHY14Gtcw1Eb*_9>Bq^zETJ@GKj{_2j4$w zo9}xCh!8{T3=X##Skq>ikMjsvB|y%crWBM2iW(4pI}c%z6%lW!=~4v77#3{z!dmB1 z__&l)-{KUYR+|8|;wB^R|9ET$J@(@=#rd^=)qs85?vAy(PSF5CyNkus435LVkZ$rj zNw|JG-P7^hF<(;#o*Vk}5R#e|^13tBbQkeF?djULtvqyxd3<{9 literal 0 HcmV?d00001 diff --git a/SAF/Test.Server.SAF.EventNotification/TestConsole/AssemblyInfo.cs b/SAF/Test.Server.SAF.EventNotification/TestConsole/AssemblyInfo.cs new file mode 100644 index 0000000..9f89a32 --- /dev/null +++ b/SAF/Test.Server.SAF.EventNotification/TestConsole/AssemblyInfo.cs @@ -0,0 +1,58 @@ +using System.Reflection; +using System.Runtime.CompilerServices; + +// +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +// +[assembly: AssemblyTitle("")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("")] +[assembly: AssemblyCopyright("")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: + +[assembly: AssemblyVersion("1.0.*")] + +// +// In order to sign your assembly you must specify a key to use. Refer to the +// Microsoft .NET Framework documentation for more information on assembly signing. +// +// Use the attributes below to control which key is used for signing. +// +// Notes: +// (*) If no key is specified, the assembly is not signed. +// (*) KeyName refers to a key that has been installed in the Crypto Service +// Provider (CSP) on your machine. KeyFile refers to a file which contains +// a key. +// (*) If the KeyFile and the KeyName values are both specified, the +// following processing occurs: +// (1) If the KeyName can be found in the CSP, that key is used. +// (2) If the KeyName does not exist and the KeyFile does exist, the key +// in the KeyFile is installed into the CSP and used. +// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. +// When specifying the KeyFile, the location of the KeyFile should be +// relative to the project output directory which is +// %Project Directory%\obj\. For example, if your KeyFile is +// located in the project directory, you would specify the AssemblyKeyFile +// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] +// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework +// documentation for more information on this. +// +[assembly: AssemblyDelaySign(false)] +[assembly: AssemblyKeyFile("")] +[assembly: AssemblyKeyName("")] diff --git a/SAF/Test.Server.SAF.EventNotification/TestConsole/Class1.cs b/SAF/Test.Server.SAF.EventNotification/TestConsole/Class1.cs new file mode 100644 index 0000000..29d05cd --- /dev/null +++ b/SAF/Test.Server.SAF.EventNotification/TestConsole/Class1.cs @@ -0,0 +1,39 @@ +using System; +using System.Runtime.Remoting; +using System.Runtime.Remoting.Channels.Http; +using System.Runtime.Remoting.Channels; +using SAF.EventNotification; +using SAF.Configuration; +using System.Configuration; + +namespace TestConsole +{ + /// + /// This console application show how to install EventNotification service on the event server. + /// + class Class1 + { + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main(string[] args) + { + + ConfigurationManager cm = (ConfigurationManager)ConfigurationSettings.GetConfig("Framework"); + EventNotificationConfiguration enc = cm.EventNotificationConfig; + //set up the network channel for accepting calls from event clients and making calls + //to the event clients. + HttpChannel channel = new HttpChannel(Int32.Parse(enc.GetPortNumber())); + ChannelServices.RegisterChannel(channel); + //register the remote object type. + WellKnownServiceTypeEntry wste= new WellKnownServiceTypeEntry(typeof(EventServer),enc.GetObjectUri(),WellKnownObjectMode.Singleton); + RemotingConfiguration.ApplicationName = enc.GetApplicationName(); + RemotingConfiguration.RegisterWellKnownServiceType(wste); + Console.WriteLine("Press Enter to exit"); + Console.ReadLine(); + + + } + } +} diff --git a/SAF/Test.Server.SAF.EventNotification/TestConsole/TestConsole.csproj b/SAF/Test.Server.SAF.EventNotification/TestConsole/TestConsole.csproj new file mode 100644 index 0000000..6bb8d88 --- /dev/null +++ b/SAF/Test.Server.SAF.EventNotification/TestConsole/TestConsole.csproj @@ -0,0 +1,116 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SAF/Test.Server.SAF.EventNotification/TestConsole/TestConsole.csproj.user b/SAF/Test.Server.SAF.EventNotification/TestConsole/TestConsole.csproj.user new file mode 100644 index 0000000..c8340ea --- /dev/null +++ b/SAF/Test.Server.SAF.EventNotification/TestConsole/TestConsole.csproj.user @@ -0,0 +1,48 @@ + + + + + + + + + + + + diff --git a/SAF/Test.Server.SAF.EventNotification/TestConsole/app.config b/SAF/Test.Server.SAF.EventNotification/TestConsole/app.config new file mode 100644 index 0000000..de0e062 --- /dev/null +++ b/SAF/Test.Server.SAF.EventNotification/TestConsole/app.config @@ -0,0 +1,14 @@ + + +
+
+ + + + localhost + 4000 + EventNotification + EventURI + + + \ No newline at end of file diff --git a/SAF/Test.Server.SAF.EventNotification/TestConsole/bin/Debug/SAF.Configuration.dll b/SAF/Test.Server.SAF.EventNotification/TestConsole/bin/Debug/SAF.Configuration.dll new file mode 100644 index 0000000000000000000000000000000000000000..967e97f09dbf0014cad68ef8204bb2907ada4753 GIT binary patch literal 11776 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 a(<{>bNkDhcMJh_5D1o8`iV_%q68Ik%wM47{ literal 0 HcmV?d00001 diff --git a/SAF/Test.Server.SAF.EventNotification/TestConsole/bin/Debug/SAF.Library.Security.dll b/SAF/Test.Server.SAF.EventNotification/TestConsole/bin/Debug/SAF.Library.Security.dll new file mode 100644 index 0000000000000000000000000000000000000000..3f37716d27cc498d73164dda280c3e02cf8bcb35 GIT binary patch literal 3584 zcmeHJPiz!r6o1n{*n%veA`(HT77|U&*rr7UiSDw?pVEcaPOTzM=e-U_#=}ghWps@ZbR>G4Wzlf`&5(J@nwggVBo@Jcz&dW+q+O4G}LS#&7rgeeZqm z&-dP&Z{O_k*UnQf5%po-yh(H!E04V3onZyy+~Z&7=+fY|q02`3+R*Hh7nuzm*0fVM zT_*^_*sLg1Hv`iP%+i!?*2Ai@Hf~(MD|J16h^TDz(z~a;7qin=DL1siSVx4fOf1%J zfQgyMB-$c$PZBq8aQre>fY|53c@b@v@7kKOA|qNwAd^hziOwYksU%$%i0%hDZ4&KB zxBk%r{ed>c0q{rLcq>+K#^A^M0gy?aY24ssm_!Sfj;cUMTL7LzLc{M6{etxmrtMgJK`mm9pL&x!F?{6Zi4yo8MMaj~#R8!(j{AQA`y)<_`ov6}%$2DtJTi zA%k_E5j-mB2(AcT5WHes64!};&irGXGfew|SsjSJ>z_(FgMNf+4{{%*_vr!rco??> zx6zQ$PYI3+?h`BsP6)mvcv8?2^ng3aLZ(ju9~694a7^%d!J^=#pe=Yx&=p*!C#i2G zsa(1L`X&UAk>o)1b9#3N>0}~cJa9a$HhuL1b-OB7)%R(l(2SQt?VWXEFAS!2c*d(L z-Bq75RYmp44Ylu8$Zkcks#`N^(N`{eph6U>dc|)|s@4got_m@(O{EztvfMb-?c&3p z-zLuNO3HUywpR<*EHlxZ(h-j66cn3&+|*s1&1$Er>W*ISViPu6+N&+aog!4B+H|`J ziebIs1g%bsVi+uXwWgLLc8W_Xa<$js`g96sy|}#&X+=w(Qwzc<_S}f%=Uj6t?P`wi zhi|CrOz5kKsw(g@`unR7f4lFwV-p{~_1oL~Z(LlU`^+9=XKrV1;ES{KbKA#P-|I6C zBgfFw4^dA~zx*uL;fKJ)K-%B<`aH(8$yDda`XJHiVyH{Lf86ncgKb)^U}X<>}yB@s&(W8S>z>nh{%;V8n?vBx(6tSvohT|=xS)MGGF_}g<_(@UO46?S#lXD9nOO0>UxxLbNs&h%~3&<#v{3?jPg(rPCKDf5`WSGg{#PrY7Jqh9e JL+@P${sye4&cy%# literal 0 HcmV?d00001 diff --git a/SAF/Test.Server.SAF.EventNotification/TestConsole/bin/Debug/SAF.Library.Security.pdb b/SAF/Test.Server.SAF.EventNotification/TestConsole/bin/Debug/SAF.Library.Security.pdb new file mode 100644 index 0000000000000000000000000000000000000000..cd2d5d76aef6a2aaec27bdb22b846a7684f99a80 GIT binary patch literal 7680 zcmeHL%}T>S5Z?ILrdp~85pycyt=gog){}>dpjZ&<3)D2lQcWOLd=amLHxFJF#FKav zU%)relf@TkoX_l*QWPp)nsh$+cCyQs?tZf~nN6i>`(E2?oMy{rIhV^;s@vIO-m=mu zW2-6%6GCWYGQ6|mmMc=NpV;9M_gCFHSrNiw#QQ3I3Sdm} zdq6hf+4y)wcl{yXJ3HM@w}V;{3>!Q!Mp=QM@;}Z*fBr`wdlQ#hz>l;##1+u6TQ5jClG5iB#)D*zCJd5ZPaSt4< z|5fdeT%drQF-yc90A7ZN)m?zSOkzX`@Y_C7`5!*U^40whK2~==%;orp2=M{p_%HE~ b*vFZ`?>P2JgouN`-9+4hynI&R9}0W{699Dh literal 0 HcmV?d00001 diff --git a/SAF/Test.Server.SAF.EventNotification/TestConsole/bin/Debug/TestConsole.exe b/SAF/Test.Server.SAF.EventNotification/TestConsole/bin/Debug/TestConsole.exe new file mode 100644 index 0000000000000000000000000000000000000000..5dcd15b8e43bce1e1f5ade496c5354ca0f0feae8 GIT binary patch literal 6144 zcmeHLU2Ggz6+Sb&{)y9UVmnO}(w{L7u!+!MCuy2Mfpxt8*~E67tm9H@DVbegucz6a zS!TwGw?*Lo(MFuyfQaz=-Lsvo*p5Z&=U0KFAilQ z5nZ8_wq9!|>Vo91Q2MK#Xbsd1DuaPW590Z z21G0;;G|>_z3Hj43qwiQNr>6k7SveD5FL!MLjHjBio&sRm$^Qo%?MlrjfzRQwbDC~ zq*BEy5X&>{YlJ4*ZK|@TvxgW;P(RV>P&A&^M`w2lfD~Nhl{|w?(re$ z+R)){MU&nJSeO0;(1S@ey`6=akgiYfqTT_GI-)T3^nDQS60W|ccw8LQI|eG4WBF`8 zHI(0fVf(97KlvC_gas$~&z*6TCTcS~x?vWrhiLAtfEyLI9v zMgP|J@PzU_A|o=lVBhC?owP+fw@6wPX*=zreoVYYM}SWVepm3E;BN)52)-w{MPtj) z362Yv1fLZ=r+puL`J&d3FI?6Bq@}1&->9c(AF!RC)cdK2extt%`XBmbpq{v_Z=u1& z_Cz~6!a6%L;IrOdBOJ}=fY!TsB5~I*ABzDtf$R|O+2Kq1byTmN;&xyzAZiZXUTS~^r$>M>CP{e)t893T(qG~wXCS( z7hSJx7bsuz1683Tg~wGfpy9IR`-5?7nzU?(%wphrk*#@5EtFx5eM&>VuPTLd?Xap% zSrs)DU~d(c0u@(`+T|9CtSVczyj^md`^+lOhx2B|@KQNg@>)2X@vM1OvAk0)`nc7a zXO|X(X4SNZT`!ngsubWP=LCCp)3oLJsvhjIB`2^e3hSqWv)(~Gvi8gy<>v4r z9yY4%o8v)HC5A}yp*<)vn-sd-XipPFj!EtvZba+EjN1dMza?8z)+- zt0UPn(v#~s+GE4R23=esi1*U)3?My4;}4kn>^wQj;EI{U*_m zTgW*Jt1aa0{4Iut66Wmf1{pJ<{N0<#JE1o4NO~I?s+Z0&qIB3zL<1PyC+kYITZiyo zU%Qz=?}c=h@^k_?LdQVm@Yj=j7>vK0jzAuOD#NQ z#b$u&KYOVFn*WZ`(RUdBDze9TFY$xZK;043Rpt9Nj5gehP>aoH#iky4R(54k;;1&n z$^IUu6uworos~W7$Hp>AU#OC=^>#G;1#kDeKUCTXp)(5uRDmN9E)Z~zKmyq zWX1<_CQa03RLr-;IRUyPJ=v~`R~l!mM2m + +
+
+ + + + localhost + 4000 + EventNotification + EventURI + + + \ No newline at end of file diff --git a/SAF/Test.Server.SAF.EventNotification/TestConsole/bin/Debug/TestConsole.pdb b/SAF/Test.Server.SAF.EventNotification/TestConsole/bin/Debug/TestConsole.pdb new file mode 100644 index 0000000000000000000000000000000000000000..52a1c47f89dcbb3dd810ca8b820949c173ac0f8e GIT binary patch literal 13824 zcmeHNO>7%Q6dtE;i_x8x;FAg>Q{OG z9}-xub~EG~dwl>3F$2safqKx2z0#K}Y7Yqv-_FF!=t|f3w_i)fS7U=sc8hld^c5jz zafYcMtozTzHD|6GH&f*%xT5xuz=OLF?sC3n*&XBMC9hyD`KIUVo>{tNmUMjU<|Whd z9oM%l+bH<9>&P62>v(R_Tr!FU&zsNW&iCruZ{MIduv^c@hBy(R&6%A2S5~$Vu3j?6l@3K0kKVExe5|3CW2TrDMqyX z70)+Ugcz!Y^-~ue-(E5GQ|1bMh_ful>Zj@1a|OpSi=IB``xj8>3k~FD`?9^+qk4|M z>O{m>A#H$lAT8@Umc4wjBz;&|M)vm~NjP7QXm7v|q71zp>PSf$LDwZ`n+C?oc#a)s z)>^#j80b$*qg_BwwRj^Kn@r;w7yF=E+GU6hQLv>Q5-~{hNk)J;A8dm-3y>Jss=H-~%8ByjuO<4VlKp@5rA3f}RH96uu7widvTd_wqwM>3f{l zUMMW)O3M1hDsR07sRwnd3FozL29?kj65zd?qRx}R9?>t?AlM<+`RwAt`01SEm#&;X z>DrFZJJ@|Po$Gx}1RH<>u|E=*naq$TI!`tj5tklCN&+1#ffUw!+V-O;+#Apc63EB3 zdW)^s9dG}fW4;0K-VbkWQ%P}Wgl{cNKngej@Xj|RzRx`^KYqCx#s#kf(f5Hcg*+iX zg3??-=re%&Gx&9XH<+Zz8B5Q~nEv6}I zOaf0J8*M+Fe0iO7qHjRd2bSgBMBnK-N7Sj!-fNMps7)krRiB9MTC}IB z1O2o4sV{~%(S#g}z5oa}wZwPLYy;l7Nzcl7NzclEBuI Fz+W*Hpxgie literal 0 HcmV?d00001 diff --git a/SAF/Test.Server.SAF.EventNotification/TestConsole/obj/Debug/TestConsole.exe b/SAF/Test.Server.SAF.EventNotification/TestConsole/obj/Debug/TestConsole.exe new file mode 100644 index 0000000000000000000000000000000000000000..5dcd15b8e43bce1e1f5ade496c5354ca0f0feae8 GIT binary patch literal 6144 zcmeHLU2Ggz6+Sb&{)y9UVmnO}(w{L7u!+!MCuy2Mfpxt8*~E67tm9H@DVbegucz6a zS!TwGw?*Lo(MFuyfQaz=-Lsvo*p5Z&=U0KFAilQ z5nZ8_wq9!|>Vo91Q2MK#Xbsd1DuaPW590Z z21G0;;G|>_z3Hj43qwiQNr>6k7SveD5FL!MLjHjBio&sRm$^Qo%?MlrjfzRQwbDC~ zq*BEy5X&>{YlJ4*ZK|@TvxgW;P(RV>P&A&^M`w2lfD~Nhl{|w?(re$ z+R)){MU&nJSeO0;(1S@ey`6=akgiYfqTT_GI-)T3^nDQS60W|ccw8LQI|eG4WBF`8 zHI(0fVf(97KlvC_gas$~&z*6TCTcS~x?vWrhiLAtfEyLI9v zMgP|J@PzU_A|o=lVBhC?owP+fw@6wPX*=zreoVYYM}SWVepm3E;BN)52)-w{MPtj) z362Yv1fLZ=r+puL`J&d3FI?6Bq@}1&->9c(AF!RC)cdK2extt%`XBmbpq{v_Z=u1& z_Cz~6!a6%L;IrOdBOJ}=fY!TsB5~I*ABzDtf$R|O+2Kq1byTmN;&xyzAZiZXUTS~^r$>M>CP{e)t893T(qG~wXCS( z7hSJx7bsuz1683Tg~wGfpy9IR`-5?7nzU?(%wphrk*#@5EtFx5eM&>VuPTLd?Xap% zSrs)DU~d(c0u@(`+T|9CtSVczyj^md`^+lOhx2B|@KQNg@>)2X@vM1OvAk0)`nc7a zXO|X(X4SNZT`!ngsubWP=LCCp)3oLJsvhjIB`2^e3hSqWv)(~Gvi8gy<>v4r z9yY4%o8v)HC5A}yp*<)vn-sd-XipPFj!EtvZba+EjN1dMza?8z)+- zt0UPn(v#~s+GE4R23=esi1*U)3?My4;}4kn>^wQj;EI{U*_m zTgW*Jt1aa0{4Iut66Wmf1{pJ<{N0<#JE1o4NO~I?s+Z0&qIB3zL<1PyC+kYITZiyo zU%Qz=?}c=h@^k_?LdQVm@Yj=j7>vK0jzAuOD#NQ z#b$u&KYOVFn*WZ`(RUdBDze9TFY$xZK;043Rpt9Nj5gehP>aoH#iky4R(54k;;1&n z$^IUu6uworos~W7$Hp>AU#OC=^>#G;1#kDeKUCTXp)(5uRDmN9E)Z~zKmyq zWX1<_CQa03RLr-;IRUyPJ=v~`R~l!mM2mS?t6PE`A`}ZDBxSKw?2+ zVqj+AvB1uR!U7DD*pQf*EAjdReCIlb1R*hDajbJ6=U$)topU~4*P~A2hHjMEfm+`2 zgRZLCnXSAyQP!-o;_$j3xQUvZQ`uENRUT(5&EmvORaZ7!$-&9QF}UKytkL@0ism+gr@5JNv9 z7sn9k65YE$kb1q8j8QI7%gWLQb`UX7zOJ-M&Pg3(ZHdqu!#Y7+Rp;4bW8$@OM1WFS z)EsM*Y+WTETJ#`%Fv$#;yxG;Q%w*jpyTl@AHiqYTnuSs=pO$FEho$Gj&4BN;;c$nn z*En;CyvK3jH{UD1dR!6i7XC&VaFBT4f1Y|c$rvOakuB=~5yRheGaAbw0e_{x|ApLH zlfWovsQ->TAuHQqH4@gtX9Ws0+s^*lG&5TH@G0*#mS4A1<0q;zSP~Q2_HQgHSUJup zlRUaX9bQkE;XuZBsduRIb;?b9G@6f|-s%_I$iE`XWyG_@tfxd7GOmEPZJpnM$10et pMM@+&=1KN1jt^pCb^-JpZRIiBB05`RmA`~wD{x3Y`2i@IN1p%y literal 0 HcmV?d00001 diff --git a/SAF/Test.Server.SAF.EventNotification/TestConsole/obj/Debug/TestConsole.pdb b/SAF/Test.Server.SAF.EventNotification/TestConsole/obj/Debug/TestConsole.pdb new file mode 100644 index 0000000000000000000000000000000000000000..52a1c47f89dcbb3dd810ca8b820949c173ac0f8e GIT binary patch literal 13824 zcmeHNO>7%Q6dtE;i_x8x;FAg>Q{OG z9}-xub~EG~dwl>3F$2safqKx2z0#K}Y7Yqv-_FF!=t|f3w_i)fS7U=sc8hld^c5jz zafYcMtozTzHD|6GH&f*%xT5xuz=OLF?sC3n*&XBMC9hyD`KIUVo>{tNmUMjU<|Whd z9oM%l+bH<9>&P62>v(R_Tr!FU&zsNW&iCruZ{MIduv^c@hBy(R&6%A2S5~$Vu3j?6l@3K0kKVExe5|3CW2TrDMqyX z70)+Ugcz!Y^-~ue-(E5GQ|1bMh_ful>Zj@1a|OpSi=IB``xj8>3k~FD`?9^+qk4|M z>O{m>A#H$lAT8@Umc4wjBz;&|M)vm~NjP7QXm7v|q71zp>PSf$LDwZ`n+C?oc#a)s z)>^#j80b$*qg_BwwRj^Kn@r;w7yF=E+GU6hQLv>Q5-~{hNk)J;A8dm-3y>Jss=H-~%8ByjuO<4VlKp@5rA3f}RH96uu7widvTd_wqwM>3f{l zUMMW)O3M1hDsR07sRwnd3FozL29?kj65zd?qRx}R9?>t?AlM<+`RwAt`01SEm#&;X z>DrFZJJ@|Po$Gx}1RH<>u|E=*naq$TI!`tj5tklCN&+1#ffUw!+V-O;+#Apc63EB3 zdW)^s9dG}fW4;0K-VbkWQ%P}Wgl{cNKngej@Xj|RzRx`^KYqCx#s#kf(f5Hcg*+iX zg3??-=re%&Gx&9XH<+Zz8B5Q~nEv6}I zOaf0J8*M+Fe0iO7qHjRd2bSgBMBnK-N7Sj!-fNMps7)krRiB9MTC}IB z1O2o4sV{~%(S#g}z5oa}wZwPLYy;l7Nzcl7NzclEBuI Fz+W*Hpxgie literal 0 HcmV?d00001 diff --git a/SAF/Test.Server.SAF.EventNotification/TestConsole/obj/Debug/TestConsole.projdata b/SAF/Test.Server.SAF.EventNotification/TestConsole/obj/Debug/TestConsole.projdata new file mode 100644 index 0000000000000000000000000000000000000000..eb0e0338a9754d66f6c86c01488a5b6d52d99aac GIT binary patch literal 1672 zcmeH{yGjF55QhKN1cG3QpyCA~1Pc{Sv<*QBq9CY^>AZl(1OvH|T?GrpQhWnDTN|;q z)l#tWF?<9;zuC=&fQ5zFm|14e%$&LH?D@~lcr4N+RM81H=cb z=?{~ywMgjMc|(p>7pr&YPmcK-+X?>>;rxN4A;9XtSP+E;JKEDM z*02^FXDX^&Wpo6#@>v7^KQ literal 0 HcmV?d00001 diff --git a/SAF/readme.txt b/SAF/readme.txt new file mode 100644 index 0000000..5aa248d --- /dev/null +++ b/SAF/readme.txt @@ -0,0 +1,9 @@ +The source code is categorized into two groups: SAF and Testing projects + +Folders that start with "SAF" contain the source code for the various SAF components +SAF.sln file on the root folder represents the solution containing the only SAF source code. + +Folders that start with "Test" contain the testing project for the a specific SAF component +Each "Test.*" folder contains VS.NET solution file for the testing project + +Please refer to "Testing project" section in each book chapter for more information and instruction on how to run the demo in the Testing project diff --git a/SAF_VS2003/SAF/Certificates/CompanyA.pfx b/SAF_VS2003/SAF/Certificates/CompanyA.pfx new file mode 100644 index 0000000000000000000000000000000000000000..69f4b45921bab162de84f7fa5a1c929c69648706 GIT binary patch literal 2244 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 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Certificates/CompanyB_PublicKey.cer b/SAF_VS2003/SAF/Certificates/CompanyB_PublicKey.cer new file mode 100644 index 0000000..34effde --- /dev/null +++ b/SAF_VS2003/SAF/Certificates/CompanyB_PublicKey.cer @@ -0,0 +1,23 @@ +-----BEGIN CERTIFICATE----- +MIIDwDCCAqigAwIBAgIKYRVvjAAAAAAADjANBgkqhkiG9w0BAQUFADASMRAwDgYD +VQQDEwdEZWxsNDIwMB4XDTAzMTAwOTE3MDcwM1oXDTA0MTAwOTE3MTcwM1owEzER +MA8GA1UEAxMIQ29tcGFueUIwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAKdw +e2Z+5+GjBIYbOAjphQRFAO8sdxQ78NBvvi31ql9TPJ7J1iVw7/RTN39p7B1WG1To +59eVDdY0btgQw6NcFfVkd5ZzYUKRXAFu4yILgvUfamIwfCQYR6y2Q3/ao9tgURO4 +rFwtMSunnJIR0RxR5t+cQuBC0fGu2DqNldNCfDXhAgMBAAGjggGZMIIBlTAOBgNV +HQ8BAf8EBAMCBPAwRAYJKoZIhvcNAQkPBDcwNTAOBggqhkiG9w0DAgICAIAwDgYI +KoZIhvcNAwQCAgCAMAcGBSsOAwIHMAoGCCqGSIb3DQMHMB0GA1UdDgQWBBRyC5BK +zX7Q1GBVq4E+noZe4BRYITATBgNVHSUEDDAKBggrBgEFBQcDAjAfBgNVHSMEGDAW +gBTtPRL/6OfaUWW/BVAxYkAGMnHYvTBfBgNVHR8EWDBWMFSgUqBQhiVodHRwOi8v +ZGVsbDQyMC9DZXJ0RW5yb2xsL0RlbGw0MjAuY3JshidmaWxlOi8vXFxkZWxsNDIw +XENlcnRFbnJvbGxcRGVsbDQyMC5jcmwwgYYGCCsGAQUFBwEBBHoweDA5BggrBgEF +BQcwAoYtaHR0cDovL2RlbGw0MjAvQ2VydEVucm9sbC9kZWxsNDIwX0RlbGw0MjAu +Y3J0MDsGCCsGAQUFBzAChi9maWxlOi8vXFxkZWxsNDIwXENlcnRFbnJvbGxcZGVs +bDQyMF9EZWxsNDIwLmNydDANBgkqhkiG9w0BAQUFAAOCAQEAOSYKSM2qN6PqmC4q +pB9t7aYAIJNM+sQrN5xn3Xa4OiqtxK8SkSmN3lAMONF9ExjfLR1OnV9Dn8/3RVdn +hosc4giuVeDvHH7IkcNyn6FeJrVRTsc6bxhjvMPiW0/lpLTkLaXNQ1pIJe7Xue0z +eVO9yabq64vuzl8m2pxei2jeki5p2ykhOO0PqhjNyaT7bsgw3hJ8NIjzsqCrymsL +7HMBRrzOX+zXg5fyDl6n1Kb8qlQQBqLEEqR3ZlWxpdd07KaSYzCK4fvWUlSeNOpK +xJXqJ3h6izR0xtWawPYUTmnI8Gnc/eyQ2gHnx3hUGqzSuvuiEDYmi8ssNfELJows +IwoHSQ== +-----END CERTIFICATE----- diff --git a/SAF_VS2003/SAF/Certificates/Dell420.cer b/SAF_VS2003/SAF/Certificates/Dell420.cer new file mode 100644 index 0000000..0ef71a2 --- /dev/null +++ b/SAF_VS2003/SAF/Certificates/Dell420.cer @@ -0,0 +1,21 @@ +-----BEGIN CERTIFICATE----- +MIIDYjCCAkqgAwIBAgIQelRz2WDSx6lNXeEpgoPgATANBgkqhkiG9w0BAQUFADAS +MRAwDgYDVQQDEwdEZWxsNDIwMB4XDTAzMDcwMjAxNTAxNVoXDTA4MDcwMjAxNTYy +NFowEjEQMA4GA1UEAxMHRGVsbDQyMDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC +AQoCggEBALIM6q7qbV4KDv4xIc3AhYzlaN9wFzgW/j4Jm/ig1hnIPWeA22HoZGVL +vWJ/i7qfVLbcYNnth1Ti+H+EjMNSCZabOuvq9x+YEf2J3RNU7oIZotBXNbj120bN +V3tlnSpitzJuPc8erlPDQ9elugP9rHPFuL2noJ6SPmieeh53nlzeMrv9dLC/CYdZ +1QZPQk0rYTyRRlVREw8SsE2jBPOYLC35BtZ1mDtX7VG0JA5asy+/kUgm/nHecZ2f ++ln4HVoqi4eFxbGn/JBJgbXq4+CZc0HzV7prS8W8g+D8gHJvIascepiSEslKIFA/ +hkU+ZuROmJMWU+SQs0sDDh37+5WXwwcCAwEAAaOBszCBsDALBgNVHQ8EBAMCAYYw +DwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU7T0S/+jn2lFlvwVQMWJABjJx2L0w +XwYDVR0fBFgwVjBUoFKgUIYlaHR0cDovL2RlbGw0MjAvQ2VydEVucm9sbC9EZWxs +NDIwLmNybIYnZmlsZTovL1xcZGVsbDQyMFxDZXJ0RW5yb2xsXERlbGw0MjAuY3Js +MBAGCSsGAQQBgjcVAQQDAgEAMA0GCSqGSIb3DQEBBQUAA4IBAQANf+P55RPAPJaa +Q5peIXof8PDuGTH03AyOjfEclwaAHLGk0dGTSEOre19nkAx1Cx+cm8iH9R7l9Mf3 +g83sL+IkSx0ygxFqMo6JhkRBBz/2IvtZSf5VL0Cc7LFNDyc2jAJj5MQzKob5Dmoz +D/NBOyN+FOLxFcZApiAsBS1cyeaUsgRZChkw/CmNDQWpGPzIdp4CzBNCFtjUHlbi +zunxL7aV7TUCcSDhIqe+n0df5UifAtPwCBQdEBFk09EhLaJ6BtGDhv0DMm2rluUt +bRjmwVLL8OWqwYX3jFe9py/jlcHSF80pj8Kb+n8YA7Ucv7W7ztlvYqAIbCH9maCh +1C64h2IN +-----END CERTIFICATE----- diff --git a/SAF_VS2003/SAF/Certificates/XinChen.pfx b/SAF_VS2003/SAF/Certificates/XinChen.pfx new file mode 100644 index 0000000000000000000000000000000000000000..9949e2951a072001c667c7c8970c5b8900fe5279 GIT binary patch literal 2210 zcmY+Ec{tQv8^?dYF*9ZuluSe>OWD&5%HEJY3?j$z2*P@J21n1oQXF^T430(!*FsT=6<7}}f{ zj=ELNuKM)n6Jr>Ra{$hOrFnw12zbtL_2}|IMS>+<{8*t(m zH;DH2P*3JIBsuI@ZsvCjh|O;?6dw!)v2S&nPjZh{;;TdR`b#Q9^?R(biOG+5irtNo zFZvfR3in1)e{iW2z4VWV*O;Bp($!MS5_^HH&I#AdiBn0;s(b!~Y1OqdP_)TWF|I|T z@vjic?&_lI55FpHeaSa+b@81fz6YnLsez>DJF*?D;5^{dRTsEO+> z&3ulJjY3CRJ-Fbm3AS-%5dM47YRTvUHt0W6k`Q^*@<{aE2H$o4X(Zde#BKs#(?Sp#+|dS;A4F(!w%Vz9Rv_8yPxet;9XYB zsfA{`fuH53O@91!A*b)v137sJ1)Ndsry+0g44s=Xb5e^x_j4?11B<)OBfJ*mhL-}Q zlu@ihXaz!sd6aUU>QaOq33cO!2^cuUbM|^nM4B4&IfH@d^G`IyWEfK$@KU8jRxG_d zYrK-AXX2s+QbD`oAP(`kGi$Tnz1KFjzlR>Olhig%`vE%^N8+=B|A8QVn0l}ugZy@a5xA60N&vrC_o_L%z!9B8Nfq90Mvi0Ii7%3AsZccLa2_B7ny;;E{jd zg%erGfcrqm69xj%HDcp4AKqo4@g^dFc!|9+BR8H-_a&rI#H^UN;%0 z>DU@fvlk*#$h^hZBx6ms|2s9c@XQx$w9(c1cD3c$6zZG}ML6vE%;dHSjyH3Qm3{JT zC|)ut>T2yiavXb`n-;OY4o3TB<+sj{yMBH!_>k)n2EW~}P(L=`Qr%e`O=iinpGTt2 zis&)u@yHvWG92FaUhmUgbXp7vL4PTftdcd8@w!3Vr^EJ?cHz;{u`#ouq9rnIoEtss z;!WAaY;9vQ{jbtL~Md&Q~#k7ec;tFJ%7pn^kI}}-Nk%ZMu7NKkX(wY z-m9->_mSSDdT;M^rqEEFdq`m*55Zdf{FPB%!PG&VNQomEk(ZmWq!Ohk&D;yq01ZUp z1(LXoPa->;LC);t@OASog>S{jFgD7Dp=`=m9>Q&9&-Y!yVq}Wk^m15u(&m0Rv;%i{fgm(=i=+_3p{<8j&ZrF zX=eL_ae?(HY*b@ivfPfUDdx#FKrRprWjAy$QNuym2Ub!a(y&$vK2k{AlD9>R!^Iy} zQfrJ%z9ev_fzUpkla@=J&_1Qt1a!Bj@ZnlyeyOW zVRtr3f*qQTKw-yP-JSFgys7XI+)gXxXDeKpWTcw!Q&zfIuB;~{S5T~^Fd81-h_Q1^ zSeh7G);nHH+_`^nj>4=<&XhxyH$8u;A$sm~$yLdfucT`0_B9MEh<(P`i@Jz2Em~<4 zl9OF?JG86b>{&qDR+wPm*jS?jc=bvmKr6C_pL6gB}%w18+. For example, if your KeyFile is +// located in the project directory, you would specify the AssemblyKeyFile +// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] +// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework +// documentation for more information on this. +// +[assembly: AssemblyDelaySign(false)] +[assembly: AssemblyKeyFile("")] +[assembly: AssemblyKeyName("")] diff --git a/SAF_VS2003/SAF/SAF.Application.Configuration/ConfigurationManager.cs b/SAF_VS2003/SAF/SAF.Application.Configuration/ConfigurationManager.cs new file mode 100644 index 0000000..33d5bc2 --- /dev/null +++ b/SAF_VS2003/SAF/SAF.Application.Configuration/ConfigurationManager.cs @@ -0,0 +1,28 @@ +using System; +using System.Xml; + +namespace SAF.Application.Configuration +{ + /// + /// Application specific configuration manager. its design follows + /// that of ConfigurationManager class in SAF.Configuration + /// + public class ConfigurationManager + { + public DocumentLayerConfiguration DocumentLayerConfig; + public WorkFlowConfiguration WorkFlowConfig; + + /// + /// constructor that takes the xml configuration info and + /// initialize the configuration object to which it holds refereces. + /// + /// XmlNode that hold the configuration information + public ConfigurationManager(XmlNode sections) + { + //initialize configuration objects + DocumentLayerConfig = new DocumentLayerConfiguration(sections.SelectSingleNode("DocumentLayers")); + WorkFlowConfig = new WorkFlowConfiguration(sections.SelectSingleNode("WorkFlow")); + + } + } +} diff --git a/SAF_VS2003/SAF/SAF.Application.Configuration/DocumentLayerConfiguration.cs b/SAF_VS2003/SAF/SAF.Application.Configuration/DocumentLayerConfiguration.cs new file mode 100644 index 0000000..9bc9d03 --- /dev/null +++ b/SAF_VS2003/SAF/SAF.Application.Configuration/DocumentLayerConfiguration.cs @@ -0,0 +1,36 @@ +using System; +using System.Xml; + +namespace SAF.Application.Configuration +{ + /// + /// DocumentLayerConfiguration + /// retrieves document layer related configuration settings. + /// + public class DocumentLayerConfiguration + { + private XmlNode configXml; + public DocumentLayerConfiguration(XmlNode configData) + { + configXml = configData; + } + + /// + /// Get an instance of specific document layer + /// + /// name of the document layer + /// an new instance of the document layer. + public object GetDocumentLayerByName(string name) + { + //retrieve the configuration for a given document layer. + XmlNode layerXml = configXml.SelectSingleNode("DocumentLayer[@name='" + name + "']"); + XmlNode firstLayer = layerXml.SelectSingleNode("Layer"); + string typeInfo = firstLayer.Attributes["type"].Value; + Type type = Type.GetType(typeInfo); + object[] parameters = new Object[1]{firstLayer}; + //create an instance of document layer dynamically. + object Layer = Activator.CreateInstance(type,parameters); + return Layer; + } + } +} diff --git a/SAF_VS2003/SAF/SAF.Application.Configuration/SAF.Application.Configuration.csproj b/SAF_VS2003/SAF/SAF.Application.Configuration/SAF.Application.Configuration.csproj new file mode 100644 index 0000000..95770d7 --- /dev/null +++ b/SAF_VS2003/SAF/SAF.Application.Configuration/SAF.Application.Configuration.csproj @@ -0,0 +1,110 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SAF_VS2003/SAF/SAF.Application.Configuration/SAF.Application.Configuration.csproj.user b/SAF_VS2003/SAF/SAF.Application.Configuration/SAF.Application.Configuration.csproj.user new file mode 100644 index 0000000..69ac193 --- /dev/null +++ b/SAF_VS2003/SAF/SAF.Application.Configuration/SAF.Application.Configuration.csproj.user @@ -0,0 +1,48 @@ + + + + + + + + + + + + diff --git a/SAF_VS2003/SAF/SAF.Application.Configuration/WorkFlowConfiguration.cs b/SAF_VS2003/SAF/SAF.Application.Configuration/WorkFlowConfiguration.cs new file mode 100644 index 0000000..ffaf6ec --- /dev/null +++ b/SAF_VS2003/SAF/SAF.Application.Configuration/WorkFlowConfiguration.cs @@ -0,0 +1,34 @@ +using System; +using System.Xml; + +namespace SAF.Application.Configuration +{ + /// + /// Provides the configuration object for the application + /// specific component + /// + public class WorkFlowConfiguration + { + private XmlNode configXml; + public WorkFlowConfiguration(XmlNode configData) + { + configXml = configData; + } + + /// + /// retrieve the email address for + /// a given customer + /// + /// customer name + /// email address + public string GetCustomerEmail(string customer) + { + XmlNode customers = configXml.SelectSingleNode("Customers"); + string email = customers.SelectSingleNode(customer).Attributes["email"].Value; + return email; + + } + + + } +} diff --git a/SAF_VS2003/SAF/SAF.Application.Configuration/bin/Debug/SAF.Application.Configuration.dll b/SAF_VS2003/SAF/SAF.Application.Configuration/bin/Debug/SAF.Application.Configuration.dll new file mode 100644 index 0000000000000000000000000000000000000000..90a9f0d4e91100120751b9ac67c0f81741fe51bd GIT binary patch literal 16384 zcmeHNU2Ggz6+Sbwp7l?>$=Zab!coRaATACoJ5EYlQdnmwHL06Y|_LPZ1+sPF`l$_pTPASetqm70{QM;q8qq!$_j1{SD;Sq`az1`>3MJX zhBouw@Zxzlv}%E04(y6mva3};vWkus)T@?TweoWXtKzRXng0IXy-nBiM~P-MgX%wj zX|mPZZAuOIX(rJ&NUT`;`$wAPtklyYho0l+)Vk6YRJa`y#sx7dQg26vML9$l=4Dh9 zknUQOVwY}ShAQz<8XVIJtt7SDU&g*1D(DjALWA~c{RI{VHA7zAwT9{B(+{SRG(D{U~DPJS@?W;!{T=t(C=wnH=6mF^leM=5Qh z+l^yF%yCTdctIIrVqwr|b>3?l5>On%wT=+_l3PZpo4wQ8*$4CgMda6qkrDPnAzyfC zc=ST_&uz0`dhX6&zWU2wo#8Eg{)y$ngl z@MQ$P=S8Bw;rbY+Wltdr+-f;wi~Tspc^%h1PZ#KC%_E&X$DW?fL-t$Lzs9;Fo{z31 z@r0b(t`i@N&_A>Zz9}Ii%$J<;fMN6+XUr7!A%lCdfhkgNGg^}l(;?J;O*hG;ecE=M zC}jno5sU<{34TNHCxX8d{JUUE=T;vRJT4gNwreL+@b+UuD8{6dMmEc zpKvy1&|cg(Ez1OD;~FKjVPQ;@dD7@jVf5RAaXDi=Otp14`N zYL}g0b8nRQOZAFVjb`kI6LhqvQ+{x9%JZM^ly1=AKFelMnbQ@IkWb=OL77tI2ULQ__aphmd{7)Rr3L+ zxU_*H=T~ZWwXwcM2l?yOc_%CdZjG5)uUvGab{^t;C6jmUa@7wbw-l1Rkjr+l-7JiW z4yoWU=LNh|Jx3-np1!;t*;M7(ieI>V*Wr!NQ@s{K&i7jLRd%AYYx1zeidZ*|`*&_t zic7XvcWALulN&*rx`IaI|nIYTxz zP!0$mgY+qA1G-34_-gogUTO5-+n=EDsV9Q(8obkB4t<8` z&lh{?t;PcAIPzsP@&;;}@OV@PWun>p^vy@3j3MpaHz)_Y=r=UyWEk7`uN|HV_FuQYT zYqEQw2ew=u8rnIen?r`lmlS%LHIoK(sV@0enD{zK;YM>k#xehb%NCc`r`EcS=xojp z@}4(qyVdw@0bjP_VbsH7NB3@8Q^1B!vo7~mZVVI56ZI<0u`B7aU^Cuci8 zJ2;&sns2VQSvGGR1TIm5&H|6p0!q^~M<-FA22P>O=|_n_zaOv7HCiz4U`H5VKPB3D z&xfr_N8-Js2Cp_&6I1eqci^*1tN8wN+ABN7MQE`+!n(l2HG-XwTAbcaybY%sVv1np zLSEj$(^tf13_F_mcaVzmC-ouOyX9oH(OT*7X4gXA+or2Y{|$^bUdM3XY_nf%T9N0m zf(fx|;y7v@akA}U>PMU{+ok4O>fTt!v2Pkf9;c6E&-Exuk73sv|KWdycB3sb6G=N> zPkC+86lfBjGr$^t9{Mk}F_po-l^I)wyo~h~v)N)XgB_QLAJK@6Wd{Ds;+@;nurA}# zl<7QLw2%3oT|7H0XveEGUKPr5f$-x=+;dGIJUbkBi-XpxkT81>9)CPv^XSXRnCf64 zYGWvlJu7q2X> literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.Application.Configuration/bin/Debug/SAF.Application.Configuration.pdb b/SAF_VS2003/SAF/SAF.Application.Configuration/bin/Debug/SAF.Application.Configuration.pdb new file mode 100644 index 0000000000000000000000000000000000000000..7b201f527e947b72e82e667c4c6226d28e83a128 GIT binary patch literal 19968 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 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.Application.Configuration/obj/Debug/SAF.Application.Configuration.dll.incr b/SAF_VS2003/SAF/SAF.Application.Configuration/obj/Debug/SAF.Application.Configuration.dll.incr new file mode 100644 index 0000000000000000000000000000000000000000..3598777e5bd98693153b5977e475d89902bde4d7 GIT binary patch literal 1888 zcmc&#O>5Lp6g^4RYIP^Le&9->qqc%*3uQX#=wMsHYRAP`NivyfYCcMmD&tCANY~xD z6DkPqyA!IW;Iinf6n}yn|AFVe`Ct?aBG`G4oA+|>%gZ_Uo|jZ2H}OI*%IrYRZumi6 zS$1ZtMx3b9SyhU|bwBVDH9oGgRX(hQACNJKeZzR&d=M^V*|Iq`BTkruXE$(NXL7H zgNtjZp^6F?`IcLpE%ANpkxi}voGv0}c{q!+4hWmhpTH zI}b%xFxBVHVFp_~(~_~6*>mZaCSbLgwsxbpBYQ><{4)K+t>MA-U7!vkT9eF@E|(te z8RF(~HH%$t$2j6QZZ*1w%gtg9T^>3o3XLbqERxz!#Y9E8 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.Application.Configuration/obj/Debug/SAF.Application.Configuration.pdb b/SAF_VS2003/SAF/SAF.Application.Configuration/obj/Debug/SAF.Application.Configuration.pdb new file mode 100644 index 0000000000000000000000000000000000000000..7b201f527e947b72e82e667c4c6226d28e83a128 GIT binary patch literal 19968 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 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.Application.Configuration/obj/Debug/SAF.Application.Configuration.projdata1 b/SAF_VS2003/SAF/SAF.Application.Configuration/obj/Debug/SAF.Application.Configuration.projdata1 new file mode 100644 index 0000000000000000000000000000000000000000..4b046ebb4efe1866c392249228b851d6098b8248 GIT binary patch literal 2824 zcmdUxO>0w85Qg7qt+8O}LPbSNh?}T26%i4Mh5FH=Xb}W;(S@;JTH9D|(n`fe5Gkd& zaN$D#gd2CR#ENT|U5G!Sh|4b2=e;+vF}7(F0^)?}%$;-2e4Uv&eSM%azD+=zbY;64 z=_jyaA-GRNx}b;3tEkcNZvlz4LosiKhNq#?;nTXv?qSVns=WWIa+-q=%6i6hU*oI? z$cymSEzPrf7R@)*r~cnG!`C#wN%jp_?a$QFHPn;`8T1$MBU|>M8OzeqI(}Wl|2#Mz z=0bYh!ib|AS}(JITCGIcty|XuXd+E|C8z-6ifh zUFJr{h`(ZsCg2XGeu_K3OG?2{!!PWV4#Lk;>a`)hecrHKv)0Z6q7a;Ae{1>M+rjyzn9o`1JThn5 z8O?Yd+(Tb_LPWKFo12?tp;Hkz$l3_^i9U57+YfE5vb%H`{YA6{O4sN-g0{Gh$6}%0 zlm@UyZV>;QZ^rm~#oUz_E^d=J5V_CfSwCvSxbufDh;oP*wfa;8- zL1;I?#;9h&B-ZbR)O8%$PC`fcd9N!x8CG=wwcZ?bobx`Nhxc@@jv=z$v##|l)7ReQ zu$2twm*YN1XVhv*;cu;M?L<~RRhlaCMzQ%V$YZ@1%^OAJ^R>GxephlBRi+Ck2D*>U z8(hWhlvoLR2Q(~#?d)8Jz5&02{|-vHY)s*T>p$%fa6i4p*Gy{m<#p$DW2~$0o6u-y zS?hDOHu55F){TF6ebk=`a^;!i+inL($~+|OOUvGsdCNY4u7)J%RxALV`-Lj-XaY361l>=o s(2o{01SNK#0ey$g|NF$J@NKa67pq@F{uzs(_bd*?o-WxTrfBQn7tGa%bpQYW literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.Application.DocumentLayer/AssemblyInfo.cs b/SAF_VS2003/SAF/SAF.Application.DocumentLayer/AssemblyInfo.cs new file mode 100644 index 0000000..9f89a32 --- /dev/null +++ b/SAF_VS2003/SAF/SAF.Application.DocumentLayer/AssemblyInfo.cs @@ -0,0 +1,58 @@ +using System.Reflection; +using System.Runtime.CompilerServices; + +// +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +// +[assembly: AssemblyTitle("")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("")] +[assembly: AssemblyCopyright("")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: + +[assembly: AssemblyVersion("1.0.*")] + +// +// In order to sign your assembly you must specify a key to use. Refer to the +// Microsoft .NET Framework documentation for more information on assembly signing. +// +// Use the attributes below to control which key is used for signing. +// +// Notes: +// (*) If no key is specified, the assembly is not signed. +// (*) KeyName refers to a key that has been installed in the Crypto Service +// Provider (CSP) on your machine. KeyFile refers to a file which contains +// a key. +// (*) If the KeyFile and the KeyName values are both specified, the +// following processing occurs: +// (1) If the KeyName can be found in the CSP, that key is used. +// (2) If the KeyName does not exist and the KeyFile does exist, the key +// in the KeyFile is installed into the CSP and used. +// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. +// When specifying the KeyFile, the location of the KeyFile should be +// relative to the project output directory which is +// %Project Directory%\obj\. For example, if your KeyFile is +// located in the project directory, you would specify the AssemblyKeyFile +// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] +// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework +// documentation for more information on this. +// +[assembly: AssemblyDelaySign(false)] +[assembly: AssemblyKeyFile("")] +[assembly: AssemblyKeyName("")] diff --git a/SAF_VS2003/SAF/SAF.Application.DocumentLayer/Class1.cs b/SAF_VS2003/SAF/SAF.Application.DocumentLayer/Class1.cs new file mode 100644 index 0000000..2512383 --- /dev/null +++ b/SAF_VS2003/SAF/SAF.Application.DocumentLayer/Class1.cs @@ -0,0 +1,17 @@ +using System; + +namespace SAF.Application.DocumentLayer +{ + /// + /// Summary description for Class1. + /// + public class Class1 + { + public Class1() + { + // + // TODO: Add constructor logic here + // + } + } +} diff --git a/SAF_VS2003/SAF/SAF.Application.DocumentLayer/DocumentBlankLayer.cs b/SAF_VS2003/SAF/SAF.Application.DocumentLayer/DocumentBlankLayer.cs new file mode 100644 index 0000000..c4d3a9e --- /dev/null +++ b/SAF_VS2003/SAF/SAF.Application.DocumentLayer/DocumentBlankLayer.cs @@ -0,0 +1,73 @@ +using System; +using System.Xml; +using SAF.Application.DocumentLayer; + +namespace SAF.Application.DocumentLayer +{ + /// + /// DocumentBlankLayer is an sample document layer objects that + /// don't do any task but contain all the elements needed to function as a document + /// layer object. + /// + public class DocumentBlankLayer : IDocumentLayer + { + private IDocumentLayer next; + + /// + /// set up the next document layer in the chain + /// + /// next document layer + public DocumentBlankLayer(IDocumentLayer nextLayer) + { + Next = nextLayer; + } + + /// + /// Create an object for the next document layer and set it + /// to the Next property + /// + /// configuration data contain the document layers participating the chain + public DocumentBlankLayer(XmlNode configXml) + { + XmlNode node = configXml.SelectSingleNode("Layer"); + if (node != null) + { + Type type = Type.GetType(node.Attributes["type"].Value); + object[] parameters= new Object[1]{node}; + next = (IDocumentLayer)Activator.CreateInstance(type,parameters); + + } + } + /// + /// interface properties + /// + public IDocumentLayer Next + { + get + { + return next; + } + + set + { + next = value; + } + } + + /// + /// interface method that process the document + /// + /// the document to be processed on + /// document after the processing, or response document + public IDocument ProcessDocument(IDocument doc) + { + + if (Next != null) + { + doc = Next.ProcessDocument(doc); + } + return doc; + } + + } +} diff --git a/SAF_VS2003/SAF/SAF.Application.DocumentLayer/DocumentLayer.cs b/SAF_VS2003/SAF/SAF.Application.DocumentLayer/DocumentLayer.cs new file mode 100644 index 0000000..c7d68c2 --- /dev/null +++ b/SAF_VS2003/SAF/SAF.Application.DocumentLayer/DocumentLayer.cs @@ -0,0 +1,107 @@ +using System; +using System.Security.Principal; +using System.Collections; + +namespace SAF.Application.DocumentLayer +{ + /// + /// IDocument reprersent the interface of the document that + /// will be pass through the application during document processing + /// + public interface IDocument + { + IPrincipal Sender + { + get;set; + } + string Content + { + get;set; + } + Hashtable AdditionalData + { + get;set; + } + } + + /// + /// IDocumentLayer specify the interface every document layer must implement + /// in order to participate in the document processing chain. + /// + public interface IDocumentLayer + { + /// + /// refers to the next document layer object in the chain + /// + IDocumentLayer Next + { + get;set; + } + /// + /// ProcessDocument gives document layer an opportunity to process the document. + /// + IDocument ProcessDocument(IDocument document); + } + + /// + /// Provide an default implementation of document object + /// + public class Document : IDocument + { + private IPrincipal sender; + private string content; + private Hashtable additionalData = new Hashtable(); + + public Document(IPrincipal s, string c, Hashtable a) + { + sender = s; + content = c; + additionalData = a; + } + /// + /// represents the sender of the document + /// + public IPrincipal Sender + { + get + { + return sender; + } + set + { + sender =value; + } + } + + /// + /// represents the content of the document + /// + public string Content + { + get + { + return content; + } + set + { + content =value; + } + } + + /// + /// represents additonal data assocated with the document + /// + public Hashtable AdditionalData + { + get + { + return additionalData; + } + set + { + additionalData =value; + } + + } + } +} diff --git a/SAF_VS2003/SAF/SAF.Application.DocumentLayer/SAF.Application.DocumentLayer.csproj b/SAF_VS2003/SAF/SAF.Application.DocumentLayer/SAF.Application.DocumentLayer.csproj new file mode 100644 index 0000000..247408c --- /dev/null +++ b/SAF_VS2003/SAF/SAF.Application.DocumentLayer/SAF.Application.DocumentLayer.csproj @@ -0,0 +1,105 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SAF_VS2003/SAF/SAF.Application.DocumentLayer/SAF.Application.DocumentLayer.csproj.user b/SAF_VS2003/SAF/SAF.Application.DocumentLayer/SAF.Application.DocumentLayer.csproj.user new file mode 100644 index 0000000..686cccb --- /dev/null +++ b/SAF_VS2003/SAF/SAF.Application.DocumentLayer/SAF.Application.DocumentLayer.csproj.user @@ -0,0 +1,48 @@ + + + + + + + + + + + + diff --git a/SAF_VS2003/SAF/SAF.Application.DocumentLayer/bin/Debug/SAF.Application.Configuration.dll b/SAF_VS2003/SAF/SAF.Application.DocumentLayer/bin/Debug/SAF.Application.Configuration.dll new file mode 100644 index 0000000000000000000000000000000000000000..6436db010474709eb2bb7c7f438cf352c5b5da03 GIT binary patch literal 4608 zcmeHKU2GIp6h1TiQ(9o5Er`Z8P6b01oNNP#zqsu#KPz1dY%OR@V0Jq!1G6*3%q+U1 z2IEisiAEDl@KFQmBM&AL1Nw>&yr_xB7kMxyJ{g`gYQ*oH*`>R-*7%bc6VL4Z?z#7z zd*+;T=l*Qr;a4d}L~)d>SBcJ{X37Z84<{f_-Sk0<-s`+Ha84P$G%$Y13N+7mE51?H z%7){(p;j_AzvgI`qvghmTGgF4^~H<3Ry9oT+)Om8#OUhB-u=zDU8dB)LM2Jmg&tH) zuM7e-lne?{xA1D@H+QiALMMReXX3bsmdbCYZZt(kbSLZJv1K;(LTvakV&i!ztIxXhz{s};Fr-7-!fo0Px=wh($NWr#*v+su22pNW0rAtw>%Y2;kt&c8st=@|7l#;JoT#HGf381vjE z-~+rO`2?Er+o02%RtXwHP2DG;!NT5joJ>fd+pQkwPX8uYiTT^vX9U(I2D_5}uBP#Y z9d0-J{e9fg!y3JS!DWC&D_({nr8n7~ysqP|?&RVHorBBK-y83a_a@d*cY^(4YJP{D z3kzj%00rO0?qaUEVqneT@TaAPXO4bz<@HZLo8+m;-aSVode(Ig zT9ukFttq#3cq(U>YL)r*bZ@!@lQdF%U_@!m0MF;KAw8|H+nCkFs>BbB)CV=6MRYV zZNZNOzYzRhaGAqpXBt5ROBm z-PmUoS}XnSeP^Uk;NF5eU9-(iH19Idr)`_6LD}_ft3<_m5SmpQD;+k=A+@cSg5eky z)1TiO<=k?uYC7SlQ8)dz@pFk9@6-2IZ9>_BV~F%}==xNarON$V&9KerNPUM-tdS-0vLPJQ->w&czh=ggq&TOMa-ws71E zTk{ajx}LL)isJ^MRSrlt#)?sDRSTj-2UIjU=SA#nwkdNK%~s9`4RU01WZUEK2Rkp% z>@^p%uHBrkiW%;|)*rNK5zF%U62}e-J7L&0lg8_w$)AJN!^z^e2yptdQ^2n)))3o6I$EGH3SbzD2Sh8nPLQ|BUPH>%ZP3cPk6ah7%sfwz` zG+5W5kxEi51&V9bvzdGHDacaTBzp>}4pRGi3jKYlj*gyAJYf6!`uo&mUo6>=(o;yt z{+h&&D$Ie#y@A*Nlgw+(&8Fu4Vn(t*>-ss{E*O>*?FObPI|FN6y#;n~i2qOjP6qho zB%FA3qW%4RjuNHk=x05?JMPU8P4NYxK~u5y;3jal-VfYNyTRpYjCP=%2W|n+bRquT zFVShE(4OPFaIJ{y=AQw+W8uhcBfiHduxenPZNV+g#wy8UJsreqWLhPc#a*H%7XyflWeB%`G|CXIqdR~)>LJ|0 zHli?1<7T2rc0w7;yN=!BQIUpWT?cx2Z1_-a$(Alra%L@Ls3sY0W>SZ38xQWs63-~? zSHwDJ#>4K#5mj&#<^MSvN)-2uUNl3~7+1wOpN{aZ3DQt(@q4UcgJ+2SZswu6ck+L? zzwduEXFKsO7cte4fv_b*kv}<^hjyLc&c+|j#Wt}qj3@(%xrB)7i1yFg;T-*Aq(%Q3 QU%m4mv-rQE|4;^g1q*(X4FCWD literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.Application.DocumentLayer/bin/Debug/SAF.Application.Configuration.pdb b/SAF_VS2003/SAF/SAF.Application.DocumentLayer/bin/Debug/SAF.Application.Configuration.pdb new file mode 100644 index 0000000000000000000000000000000000000000..89193791b5ea994c5eb2b03e856fc0aa75f6546b GIT binary patch literal 13824 zcmeHN&2Jk;6dxxc&1aiUp$#b?Nfb~?sO@~H6x24P4xtqd6>^XQCe!tnBWbMSMtvF7b?6ZD; zJ0CkU``*lZ^JaG>5=te~iLlug@CCZN+eU)JZ7+EJ{>Hl2p`ZX&2;l)c0L(BAYPFdA zzYQet>5F1<$)z1D0sr?q_R-x3hXg*T?eQF;9c!`ywp%PM!R%Xkr=FVKJxO(fA*S`AW&TVaGz)IJD{qfsccwW2NCB$OQshjx(@i+=9fofnMupg)c z8i8Fv4X_*718}NoKr`?tuotKWTq?f=N~QnukKFCC6cSj={?jo!?LX7(E0>p|f47aT zl|ZT1zq0+b=gRgs;JONU1fUE85;@(gq9*#_%Ps!AHRw|~)^(iCe4W$db zdomF^A2Z@+RG&6dSxvDGdW+)#M>GJC=viFaED6x}UIJPma-IXIJ>GR(&jKfHP&3NM z=f-s`qsEv|;`Kq`z;Axfe>GR*Y=e19vj(meQOmh?na8^1&bmmtRALF#qdn^Rm-boT z-itqYaN!E9Pf)H`1JI;#I>OvTe<2+L{y7uj?@b zXA_m$4HS>!e%`C<*NILoIGr|)8272_+B+7D3emyz;IMblVG{#Rn}~LrSJ%O4<$a<{ zv}xP}qf0q>+%c*&$33{URAe;b)Q1J$nag9>{nG0t|pN9U6wYIMQ;UOWvhh6`3{)NjO&_CC5G34t1;nqL( z?X_(x?Er~!x+3Ve`bi|DP4$M%M2hFTl^XB+24GyT$~V)7()O=q|0mJEqGIho@7-?p zU+$}=*RuS>{p>&2FMQLo|1hVMa?3^ELSL}rhu~ZE6kMojq_Eki@8BH3{mb{-Zbj;e zy7J)1^B~R-#+4ik`!j(Iz8P4lH;FZ`FSK;f2O8m2pC}7PQk5F@u?>F8BNa!o`1UQ~M!+q^z-~n*F z6UhX@aWg;snqS90N4j=ijJP1E^?-?@maR>+`@U6B{7v zFn9e^Mv9;_ibU#8tg-(2tR(8T9P3}rDfVgU(&}63f_VkaqpaA|8OB=khV63>sd>XR z`&P2aH*Y8p=m_)14;@Zr>5wuaQJY4La$St6Oa8S|riW3o>?=g70`_Sg-$Y||y+)Jeq}I$73VuMp4L`m^+!C&0#tl}=s#Z@T(6+(FZ- z7GgTHc%-X*!>TH7#m5W(_v^b> zjAK7>3H5#g*mv@u+XeQWb$XaJ5Yc~xBRI@`{h{x?3v8F9_J&r<`ezyQRZOkwvXs}1 zCDh*4Sylnh*(ftS%V+Y8k!tMy5%q?oEMr}^#vkbzu%SJ0K{u}-h^hBV_9Mt~$v+O< zB25n7x?U-FugWTcE8ZSY`{m>S*Z=-A4CPL?|jBq4sq13N-VT7VJL|FjS%9(GPNHT!>=2;d|9xWHm+Q!z1y0(yg@88$Ir6;=eZrT3TFB%F yk%s?}F#u)k{05Y^kMgFBai)^>{U^_67<2MG!~G5jLMSs?zP!wxy4^i668Im%DtTrA literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.Application.DocumentLayer/bin/Debug/SAF.Application.DocumentLayer.dll b/SAF_VS2003/SAF/SAF.Application.DocumentLayer/bin/Debug/SAF.Application.DocumentLayer.dll new file mode 100644 index 0000000000000000000000000000000000000000..3780fcc8ad1a97179698ff9dd4db5033b4c18907 GIT binary patch literal 16384 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 EKZWtg&Hw-a literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.Application.DocumentLayer/obj/Debug/SAF.Application.DocumentLayer.dll b/SAF_VS2003/SAF/SAF.Application.DocumentLayer/obj/Debug/SAF.Application.DocumentLayer.dll new file mode 100644 index 0000000000000000000000000000000000000000..3780fcc8ad1a97179698ff9dd4db5033b4c18907 GIT binary patch literal 16384 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 EKZWtg&Hw-a literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.Application.DocumentLayer/obj/Debug/SAF.Application.DocumentLayer.projdata b/SAF_VS2003/SAF/SAF.Application.DocumentLayer/obj/Debug/SAF.Application.DocumentLayer.projdata new file mode 100644 index 0000000000000000000000000000000000000000..6204dbe88462617192dca2b55ba8dd51378ea036 GIT binary patch literal 5128 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 Q$j|R@(;J>`)b8i{8-{|&jsO4v literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.Application.DocumentLayer/obj/Debug/SAF.Application.DocumentLayer.projdata2 b/SAF_VS2003/SAF/SAF.Application.DocumentLayer/obj/Debug/SAF.Application.DocumentLayer.projdata2 new file mode 100644 index 0000000000000000000000000000000000000000..19febb03116c08028c82b11a16b0bfff3f1c957f GIT binary patch literal 5128 zcmeI0&ud&&6vxjPGYPSdA=ZKt!ZU(sGf70GNQi~Dp;QQ^pbODbc==_fCevXit){D3 zM6&2YHxi48xR9(|xGLg82#AP_E?l@4{{sI3{e16zH}B2MGc$>aZoJ{lJ@3Bv&N=t| z_@4Xn>63%~4;kZOvo9TE_9tUXJao#g+6B8|bz8GV_uFE{tk+6?umV5UESy21X5aP zn@;o`M!wm}g1wkMyGQSN?2hr#JC@z)tz+D2k;bs+p*{AQT|Yuw&f(b>(Ok7T_Pvge z>b69*g8p9oej3^&K{ijAjl$p8^&@6aF@Il%Cs~v~+fYCJi_BXj(&l463%PV-^YOs_ zKOc_=HV`XPH013km{rMB(2vm5W)YLU3HeGlD+2-fdwO4EIJw8<#tcm0zsuc|OzSgy zKt?Dtgg;l{Wy}CswP^2w1f4OZY}K&}&vjdwReJ_}SR-ef_FO@Yr&atsQu}SZRC4kw zrDu7g3Q6eEl$H<|F$HxfVt7qPt z=k3_7d3}?G8mG}D3t}vhCe4fX3Y8apnC@s4E5qvkwoKb(MsC>gs%{>kwcy)^FjSASqr=uqE$nJ ze5|ZUrCmmkaxlUZP3|p1si6R70_7->l6QIG^2Oy;T+3qTfi*~IFRnDqf zd>j;);Ek}GG(!0(9}W+^6y;o~m%LnQR0YgsViT-cbhavki?c+vx(4nwd7_1my|QEC z?&F{C%*Q|I@R?b~0-P9^G5C1@hynd}TyrnB8; zz6O1gS^JfTzk+^)KBM`S>4w|P;=h4TlLloZ-eaDHwxI(LWUH5sLh64F3Bb?_Cs&=j zg{3+-pQ2AG)8(H~$1AM63LMf)gSqp%`t>++MmSq9@F#@xr|KA-o^d!3^PZj>cD-Hx z(H?br6R+_Sq_v9)ueI4^P5QYq43uSinM<#WJ*mr1ujAl304o;V3Lpnq)$H>d%90V)4O zAyypPb*_J%eO3O0phEU*T}4!_j8NtK)jrP*7kw}0Psn?br%Ifw$X2Huu<@Rfv!XJb z$E_5fwz|qO)uv)E)DQo6NTcu9JSM6Jmt4O16Lvl`y05*zL(Y3gU~zj?j?U)pP`!IR z-0Sl+bCg%=8QIflOnh2I!2h?#pA6o0HN1QzG2ye&^&pjEwjZfZv^E2Y*SG{}Z8_nY zuvRtQV_!3GKpNjd>SaGA{4dOPUewwKv-l68QGh~g=b6P{5^x;T*g&rAmkQN?I6?pk srf=sjKJL3?cXmn-;9uC8{ru. For example, if your KeyFile is +// located in the project directory, you would specify the AssemblyKeyFile +// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] +// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework +// documentation for more information on this. +// +[assembly: AssemblyDelaySign(false)] +[assembly: AssemblyKeyFile("")] +[assembly: AssemblyKeyName("")] diff --git a/SAF_VS2003/SAF/SAF.Application.Workflow/Class1.cs b/SAF_VS2003/SAF/SAF.Application.Workflow/Class1.cs new file mode 100644 index 0000000..5bda2cb --- /dev/null +++ b/SAF_VS2003/SAF/SAF.Application.Workflow/Class1.cs @@ -0,0 +1,17 @@ +using System; + +namespace SAF.Application.Workflow +{ + /// + /// Summary description for Class1. + /// + public class Class1 + { + public Class1() + { + // + // TODO: Add constructor logic here + // + } + } +} diff --git a/SAF_VS2003/SAF/SAF.Application.Workflow/SAF.Application.Workflow.csproj b/SAF_VS2003/SAF/SAF.Application.Workflow/SAF.Application.Workflow.csproj new file mode 100644 index 0000000..954dd0e --- /dev/null +++ b/SAF_VS2003/SAF/SAF.Application.Workflow/SAF.Application.Workflow.csproj @@ -0,0 +1,105 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SAF_VS2003/SAF/SAF.Application.Workflow/SAF.Application.Workflow.csproj.user b/SAF_VS2003/SAF/SAF.Application.Workflow/SAF.Application.Workflow.csproj.user new file mode 100644 index 0000000..686cccb --- /dev/null +++ b/SAF_VS2003/SAF/SAF.Application.Workflow/SAF.Application.Workflow.csproj.user @@ -0,0 +1,48 @@ + + + + + + + + + + + + diff --git a/SAF_VS2003/SAF/SAF.Application.Workflow/Workflow.cs b/SAF_VS2003/SAF/SAF.Application.Workflow/Workflow.cs new file mode 100644 index 0000000..a075414 --- /dev/null +++ b/SAF_VS2003/SAF/SAF.Application.Workflow/Workflow.cs @@ -0,0 +1,26 @@ +using System; +using SAF.Application.DocumentLayer; + +namespace SAF.Application.Workflow +{ + /// + /// interface that represents the members of + /// Component type class + /// + public interface IComponent + { + IDocument Request{get;set;} + IDocument Response{get;set;} + //provides the reference to the next component in the work flow chain. + IComponent NextComponent{get;set;} + //Accept method in the Visitor design pattern. + void Accept(IVisitor v); + } + + /// + /// A marker interface that represents the Visitor class + /// + public interface IVisitor + { + } +} diff --git a/SAF_VS2003/SAF/SAF.Application.Workflow/bin/Debug/SAF.Application.DocumentLayer.dll b/SAF_VS2003/SAF/SAF.Application.Workflow/bin/Debug/SAF.Application.DocumentLayer.dll new file mode 100644 index 0000000000000000000000000000000000000000..3780fcc8ad1a97179698ff9dd4db5033b4c18907 GIT binary patch literal 16384 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 EKZWtg&Hw-a literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.Application.Workflow/bin/Debug/SAF.Application.Workflow.dll b/SAF_VS2003/SAF/SAF.Application.Workflow/bin/Debug/SAF.Application.Workflow.dll new file mode 100644 index 0000000000000000000000000000000000000000..b1b73ca5a4c14dffbb83ee90916a0b27d485a5aa GIT binary patch literal 16384 zcmeHNU1%It6h5;*Y5J338bphgPHfZ`%8)<%XVKkcn>Hp*V>YH*1Ig^}WIJYdXFD_7 zc1zI+7Ak`HpwJhgeGq(UDOj)wicbX}T10&Dt-jR12cb{J2kUpv>@=HhTCns%@ZRNq zbIv{Io_o$WI}`5R960 zu?d}MA>F{rDu(v|r-=G_Tbs~WNBg%|wiSmxzbfP)K^SwLFG z8bkk8$6hl@q(Oez7VYIZUJc#R(Xk($%x1FJ4*&6P=V!tA2Wvmw_ghzYZwB_v?wM?Q zcsA=+y}UJq0|HT}vwb~1{VZ}f(v^y1=gq)&%f=zsTbOs;<1=pVt(lCKs}}F;VpIw_ zEJ1_WR|d6uRlG+&)@$?{1O0t{Y{W6a9B>K=Z+@HTGOq8joDDp?T=dyvCph6P_2zxA zjd0HUp--?r=(w@~WN@bKd;FZX8Z!N*^)sQ&V>@~reHA(mB&ZF2EjrtHoR0ulhCA9C zk$KdkDQKOVrmdkq!BN3^!FL4D3VtDYUGNt{it(&Xf_nt#V_8{%SK{?FI*;q~#0*5* zXkCj=F0Qtn5*yDTy4rRIS%vdi`xtVVGi&EzThcD#B!X+>cD3zW>R8f}KhP7xgGMJY zVL2|wI%u2LLmLFUfG^Nik$VMq38n={1YZ?=L(mko1&;!ElL4kvz)r!Z1p5VF6dV#9 z70e30DVP^rpkdU+75_v}1Ai9$ot}}=xYQqq9H%7Y1Tcoa3UUiDu^8Uhn=M=GRD@g; zEsabeYUp*QQ$*a6+o3?T=YU(NI@U{czX!l5I1Y^rxuuF*w#vbM{b*#`_U*v+nmjUY zzFNZ6F|%fQG!m&)w1U}5>uA;T1M(Z>aNNgwzEwBW6}F7yP-`h0p0|7?ozGj9fTF;Y zR(7Oax#Evzudt<*fbcqC{xO?bGe z`4tRIoLR0l&lqyc^LDZ7$;+?VoU#18XIGe?X5*9{H1beqG-I2^vg-$S-Y0o~7R_9v z+cDFrT67HG!&|3!w4J!Haq!}WPj1~l^I??|I;~G8bxm8JWU*Dm5Z5KPz{b$p`sK-) z=?w!n-cP`@ogtRgV_Gbhl-EZKUO3@<@KHZH8JYLZc+e07h2dZCC(wJhMWR;*%&Xb z5b2co^x$Xo@H0R;`AK~vc6k~NAzld|3$w9DLSP-eyTMkG^=qis6hB^@eYS~Dlz9db ze9B86m1TLd?;e~MXm@j)hOYlm0H!x+;Aynwm0(f;G9fxNDk|VLVNDX6%Ta>8GMg^xm%w~~}ppM2` zm;A!JQoy_t=5cg6UJ+gjlJCKK48ALzZ^RR8%r@b!J$&Bb{h7cTE~=@b;-G<%Fz1wT zzTD?t<{!j+M&_qcnJ;zbP(=+D{+k#=vI50`Vn8vV7*Gr-1{4E|0mXn~Kr!$r8PLQ3 q8UKF!qYSEIDFze+iUGxdVn8vV7*Gr-1{4E|0mXn~Kr!%NV&EV6u^-p~ literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.Application.Workflow/bin/Debug/SAF.Application.Workflow.pdb b/SAF_VS2003/SAF/SAF.Application.Workflow/bin/Debug/SAF.Application.Workflow.pdb new file mode 100644 index 0000000000000000000000000000000000000000..9a69e14d72109e568129a04390accaba4bd81289 GIT binary patch literal 11776 zcmeHN-Afcv6u)C1u4`7CWwgC)Wnr$(&h}uN1R{Q~+E-r36va=u*gcj68 zFFy2ABq-5y?|~pBz6Fv0K@X7xS#Q4Nbbd2)bqFWcT69+Lf#2MjyLaZEIp^GS&pESw z88xrzTDlNwkFI7X-@R1ppk4iRbyhY2uS#3Pji zL0gvq^cJj&{N#7uwPU>d)G z6Q}>jHKzKrEy48S5j!ja=oB{4L45SHnV63~_QB7Bu+BKl4*PJ*Y`@Q=x%5t6_Z@31 zYb$UcrVFwC2*$AdXgaHnC)%?~U60DDPF=2J%^SpFyCiV>vm#B)yPOHIh@K5Wi@rw z>PTm@DLtaLB=lq&kdtF$*^HVjWVD<-uGt%ay1oHmTR~_KchEur1qkT#6An?uzDT-6(UJyZzK zj~xI6l|y2JydVMC>M*I~Ew!ivVR3;kXa0u;$!*+e-+OueW9_5<%m3WQi~jPH0Q}Yhf$#s&Io<;M!UO@e8~6qu z=OCxSJxI`YApWCS1(i|)&^PM8sQZy_V}ACv9x;BF5F#Mp$qTEM_Bj z;Me#K+3+hmCJ3-4WPcwgf6&n)w**qQ5=eHnvm>TlZfnM9)S7WWh!+H`E9+Q6mB<=% zfV7^+V4TnVnBnBlFeH-`>uJU3vVW;tLy#7oHz&8wo$Pt?oY#M#|1zlmlwALf^xnmn zJ&Ly!URSZraYOgqN(|$i7wqH$apsKwz4ZMT`%EnXaW(%B0I#hf<`(|}AR+uG;eQrR r{XexGtTX@L&hP&X#1E1W@CCg?|IV6|&^rmFgmj{W&k~O+KMDK>D_wVe literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.Application.Workflow/obj/Debug/SAF.Application.Workflow.dll b/SAF_VS2003/SAF/SAF.Application.Workflow/obj/Debug/SAF.Application.Workflow.dll new file mode 100644 index 0000000000000000000000000000000000000000..b1b73ca5a4c14dffbb83ee90916a0b27d485a5aa GIT binary patch literal 16384 zcmeHNU1%It6h5;*Y5J338bphgPHfZ`%8)<%XVKkcn>Hp*V>YH*1Ig^}WIJYdXFD_7 zc1zI+7Ak`HpwJhgeGq(UDOj)wicbX}T10&Dt-jR12cb{J2kUpv>@=HhTCns%@ZRNq zbIv{Io_o$WI}`5R960 zu?d}MA>F{rDu(v|r-=G_Tbs~WNBg%|wiSmxzbfP)K^SwLFG z8bkk8$6hl@q(Oez7VYIZUJc#R(Xk($%x1FJ4*&6P=V!tA2Wvmw_ghzYZwB_v?wM?Q zcsA=+y}UJq0|HT}vwb~1{VZ}f(v^y1=gq)&%f=zsTbOs;<1=pVt(lCKs}}F;VpIw_ zEJ1_WR|d6uRlG+&)@$?{1O0t{Y{W6a9B>K=Z+@HTGOq8joDDp?T=dyvCph6P_2zxA zjd0HUp--?r=(w@~WN@bKd;FZX8Z!N*^)sQ&V>@~reHA(mB&ZF2EjrtHoR0ulhCA9C zk$KdkDQKOVrmdkq!BN3^!FL4D3VtDYUGNt{it(&Xf_nt#V_8{%SK{?FI*;q~#0*5* zXkCj=F0Qtn5*yDTy4rRIS%vdi`xtVVGi&EzThcD#B!X+>cD3zW>R8f}KhP7xgGMJY zVL2|wI%u2LLmLFUfG^Nik$VMq38n={1YZ?=L(mko1&;!ElL4kvz)r!Z1p5VF6dV#9 z70e30DVP^rpkdU+75_v}1Ai9$ot}}=xYQqq9H%7Y1Tcoa3UUiDu^8Uhn=M=GRD@g; zEsabeYUp*QQ$*a6+o3?T=YU(NI@U{czX!l5I1Y^rxuuF*w#vbM{b*#`_U*v+nmjUY zzFNZ6F|%fQG!m&)w1U}5>uA;T1M(Z>aNNgwzEwBW6}F7yP-`h0p0|7?ozGj9fTF;Y zR(7Oax#Evzudt<*fbcqC{xO?bGe z`4tRIoLR0l&lqyc^LDZ7$;+?VoU#18XIGe?X5*9{H1beqG-I2^vg-$S-Y0o~7R_9v z+cDFrT67HG!&|3!w4J!Haq!}WPj1~l^I??|I;~G8bxm8JWU*Dm5Z5KPz{b$p`sK-) z=?w!n-cP`@ogtRgV_Gbhl-EZKUO3@<@KHZH8JYLZc+e07h2dZCC(wJhMWR;*%&Xb z5b2co^x$Xo@H0R;`AK~vc6k~NAzld|3$w9DLSP-eyTMkG^=qis6hB^@eYS~Dlz9db ze9B86m1TLd?;e~MXm@j)hOYlm0H!x+;Aynwm0(f;G9fxNDk|VLVNDX6%Ta>8GMg^xm%w~~}ppM2` zm;A!JQoy_t=5cg6UJ+gjlJCKK48ALzZ^RR8%r@b!J$&Bb{h7cTE~=@b;-G<%Fz1wT zzTD?t<{!j+M&_qcnJ;zbP(=+D{+k#=vI50`Vn8vV7*Gr-1{4E|0mXn~Kr!$r8PLQ3 q8UKF!qYSEIDFze+iUGxdVn8vV7*Gr-1{4E|0mXn~Kr!%NV&EV6u^-p~ literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.Application.Workflow/obj/Debug/SAF.Application.Workflow.dll.incr b/SAF_VS2003/SAF/SAF.Application.Workflow/obj/Debug/SAF.Application.Workflow.dll.incr new file mode 100644 index 0000000000000000000000000000000000000000..adc83030152bc348b03800752e5def98efd3c6f3 GIT binary patch literal 1600 zcmc&!OKTKC5dLQ412t#QjUEIcizY$Q2$J2|gvCU`RpVhr=b4PoBg}LR$wiMIgq-pN zf`Y%mtAZQxB8cRq_zT2~M{j=ByR+>2ICwDIO>I|Kbyt7&Rn0b2FAtI+)lRHxYfP!Wxot8h1g9Ap1Ff>k&FMoN_v964Dt>?LTxQI5E z(8N`~a*bMx`$a_bFh{?b>o;(qDKKC%q>?5YzWPD)=k(8+R z=;O-X>s{*rbr}K0H}z_<1Lkm-9A{W#4Lthl)P1hPeAj!6+9b|!PW7#&x5_iCoUy62 zFcR^8N(@WAs)qDstZ^GIeJNL)(Otf`+>iG6C^qkUJS%;YGWr4;-=LlkWoa@CFMoge zp<~_YweAIG`Tu$$VNZG{L&@Cjqxsr86$#hpwoaIJ@Y|7E+@shd;65Y9`~S%OuN5pi z-F$h>W1BLlOMZs@%G-DEH#?<^{|TeXd6qRQ*eeNhkJ&X%c2LNgRav=$n7Zf>iSl&k c$E&ejtE^UorcqSscg9PkL{~+E-r36va=u*gcj68 zFFy2ABq-5y?|~pBz6Fv0K@X7xS#Q4Nbbd2)bqFWcT69+Lf#2MjyLaZEIp^GS&pESw z88xrzTDlNwkFI7X-@R1ppk4iRbyhY2uS#3Pji zL0gvq^cJj&{N#7uwPU>d)G z6Q}>jHKzKrEy48S5j!ja=oB{4L45SHnV63~_QB7Bu+BKl4*PJ*Y`@Q=x%5t6_Z@31 zYb$UcrVFwC2*$AdXgaHnC)%?~U60DDPF=2J%^SpFyCiV>vm#B)yPOHIh@K5Wi@rw z>PTm@DLtaLB=lq&kdtF$*^HVjWVD<-uGt%ay1oHmTR~_KchEur1qkT#6An?uzDT-6(UJyZzK zj~xI6l|y2JydVMC>M*I~Ew!ivVR3;kXa0u;$!*+e-+OueW9_5<%m3WQi~jPH0Q}Yhf$#s&Io<;M!UO@e8~6qu z=OCxSJxI`YApWCS1(i|)&^PM8sQZy_V}ACv9x;BF5F#Mp$qTEM_Bj z;Me#K+3+hmCJ3-4WPcwgf6&n)w**qQ5=eHnvm>TlZfnM9)S7WWh!+H`E9+Q6mB<=% zfV7^+V4TnVnBnBlFeH-`>uJU3vVW;tLy#7oHz&8wo$Pt?oY#M#|1zlmlwALf^xnmn zJ&Ly!URSZraYOgqN(|$i7wqH$apsKwz4ZMT`%EnXaW(%B0I#hf<`(|}AR+uG;eQrR r{XexGtTX@L&hP&X#1E1W@CCg?|IV6|&^rmFgmj{W&k~O+KMDK>D_wVe literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.Application.Workflow/obj/Debug/SAF.Application.Workflow.projdata b/SAF_VS2003/SAF/SAF.Application.Workflow/obj/Debug/SAF.Application.Workflow.projdata new file mode 100644 index 0000000000000000000000000000000000000000..be89fa7ead693c7f09d764ef6e6f7e5ed59b9169 GIT binary patch literal 1672 zcmeH{J1<005Xb*(*{noli3p-#E6>elbqXOin`jgyG!o%jiLfs2iboV%C=^PKQttz( zG>As&%Sa^r=Io2zNEAe4ZsyLMnK^T2=FFVS?pU-zK%?{;GDdm>u8l|0sU=Oz*S7M? zx_^K~YEsd-$&7$@&1gXz3cx(}d&tg});QMlno>r~P+$9KJUp4tHE314fIg)p-&jRj z)+X?e%55JOI@WP3zx+vM%5oMD(O<6sLIjkxQh#_-&24>ZY@ox$7vvUFf}|L|Xd0wu_U zHqF)_T_t`9`ULh%eGpB6#fgWZpK5i89GFd)EgBvkpN{WBwom6*FSp@)XJWnj5ei5r zLF-dH|Jjr{iD{0G-{sxN()$)+2YsKW>pf(-%0xyqGTec--Ps4Fd9`VgdNm6@WVgLK zwX^)yjGITBo>tx-k1vZ)J3szuJy7@V4Z0}mU&E+IL!sdtw2YvuVVlCT`j+dNf-lRA kH^_h{J1OxdI|Z9TtNjJ|6HvfOFBk`{{*Y>5Zt=Unch4G=GXMYp literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.Application.Workflow/obj/Debug/SAF.Application.Workflow.projdata1 b/SAF_VS2003/SAF/SAF.Application.Workflow/obj/Debug/SAF.Application.Workflow.projdata1 new file mode 100644 index 0000000000000000000000000000000000000000..3d50d1e622e77148f529751117ff3bca16c70afb GIT binary patch literal 1672 zcmeH{JugFH6vzM9OLY)w1PSRt2k{ae8k0fNXhatS2?hhI5}}G)@iIuq#%$obh)4_; zgVAF14SWE8=eccBB$9@y=jJ@;-1D4sp7Z?gJ?FAF5^fUIBAt7tNUu=JbT)dltSRNS zqk^(-^|45;3Y=Tb3F=f@3)++q7x3T5wnXFv-t$Uox+>$m?ec8nnb9iVn=XG`i!N?U z8|>wENJOnAPJ~b9L^9o=w8b!2`GY9R1m2oyP}0Nej)|6zAoA3xqw4#A-9gdc)3tv`r3*XpYX>(*djR zD(s@aQgl}aTdvy0Z5q>Pmj!jY2*2Fr)|XOLv&bXjZI;zefS)FV%ei4WJD6D+o-A1n zrP!zUp)a#<7@zMZVpwCIH+sb`?e1_4fvjO%!E_wGVl&-n1~%JiSvOnB**rZU?Hklf TMG{2e7;N|>-ivZCf4jT^7S)3W literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.Authentication/ADAuthenticationProvider.cs b/SAF_VS2003/SAF/SAF.Authentication/ADAuthenticationProvider.cs new file mode 100644 index 0000000..8e7e22a --- /dev/null +++ b/SAF_VS2003/SAF/SAF.Authentication/ADAuthenticationProvider.cs @@ -0,0 +1,111 @@ +using System; +using System.Collections; +using System.Collections.Specialized; +using System.DirectoryServices; +using System.Xml; +using SAF.Configuration; +using System.Configuration; +using SAF.Utility; +using System.Security.Principal; + +namespace SAF.Authentication +{ + /// + /// ADIdentity class provide a sample implementation for + /// Identity object that replies on active directory for its authentication + /// + + public class ADIdentity : SAFIdentity + { + /// + /// ADIdentity public constructor provides user ability to authenticate the user + /// against the underlying security theme. + /// + /// user id + /// password + /// active directory domain or local machine name + /// the name of the application + public ADIdentity(string userid, string password, string domain, string applicationName) + { + //check if the userid and password are valid. + SecurityUtility su = new SecurityUtility(); + su.ValidateUser(userid,password,domain); + //set the application name and userid of the identity object + this.applicationName = applicationName; + this.name = userid; + } + /// + /// provide a back door to instantiate the identity object without user id and password + /// it is used by the ADPrincipal to create ADIdentity object when it doesn't have + /// user login info. The modifier "internal" hide this method when accessed from + /// another assembly, such as when developer is creating the ADIdentity object from his + /// application code. + /// + /// user id + /// application name +// internal ADIdentity(string userid,string applicationName) +// { +// this.ApplicationName = applicationName; +// this.Name = userid; +// } + } + + /// + /// ADPrincipal is an IPrincipal object that uses Active directory as it + /// membership information store. + /// + public class ADPrincipal : IPrincipal + { + private IIdentity identity; + private string searchQuery; + /// + /// IPrincipal interface method + /// + public IIdentity Identity + { + get {return identity;} + } + + /// + /// this method is called by SAF.Authentication is create an principal object + /// for a given user and application name + /// + /// user id + /// application name + public ADPrincipal(SAFIdentity safIdentity) + { + identity = safIdentity; + ConfigurationManager cm = (ConfigurationManager)ConfigurationSettings.GetConfig("Framework"); + XmlNode providerData =cm.AuthenticationConfig.GetProviderConfigurationData(safIdentity.ApplicationName); + //retrieve ADSI query string used to search for the given user. + searchQuery = providerData.SelectSingleNode("ADDirectoryEntry").InnerText; + } + + /// + /// IPrincipal interface method, it checks the memberhsip information + /// by calling the AD through System.DirectoryService + /// + /// role name + /// true or false to indicate whether a given principle belongs to a given role + public bool IsInRole(string role) + { + StringCollection groupCollection = new StringCollection(); + DirectoryEntry obEntry = new DirectoryEntry(searchQuery); + //search on the user name. if user doesn't exist, an exception will be thrown + DirectoryEntry obUser = obEntry.Children.Find(identity.Name,"user"); + + //retrieve the group information for the given user + object groups = obUser.Invoke("Groups"); + //loop through each group object to retrieve the group name + foreach (object o in (IEnumerable)groups) + { + DirectoryEntry group= new DirectoryEntry(o); + groupCollection.Add(group.Name); + } + + //check if the role is part of the groups the user belongs to. + return groupCollection.Contains(role); + } + } + +} diff --git a/SAF_VS2003/SAF/SAF.Authentication/AssemblyInfo.cs b/SAF_VS2003/SAF/SAF.Authentication/AssemblyInfo.cs new file mode 100644 index 0000000..9f89a32 --- /dev/null +++ b/SAF_VS2003/SAF/SAF.Authentication/AssemblyInfo.cs @@ -0,0 +1,58 @@ +using System.Reflection; +using System.Runtime.CompilerServices; + +// +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +// +[assembly: AssemblyTitle("")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("")] +[assembly: AssemblyCopyright("")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: + +[assembly: AssemblyVersion("1.0.*")] + +// +// In order to sign your assembly you must specify a key to use. Refer to the +// Microsoft .NET Framework documentation for more information on assembly signing. +// +// Use the attributes below to control which key is used for signing. +// +// Notes: +// (*) If no key is specified, the assembly is not signed. +// (*) KeyName refers to a key that has been installed in the Crypto Service +// Provider (CSP) on your machine. KeyFile refers to a file which contains +// a key. +// (*) If the KeyFile and the KeyName values are both specified, the +// following processing occurs: +// (1) If the KeyName can be found in the CSP, that key is used. +// (2) If the KeyName does not exist and the KeyFile does exist, the key +// in the KeyFile is installed into the CSP and used. +// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. +// When specifying the KeyFile, the location of the KeyFile should be +// relative to the project output directory which is +// %Project Directory%\obj\. For example, if your KeyFile is +// located in the project directory, you would specify the AssemblyKeyFile +// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] +// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework +// documentation for more information on this. +// +[assembly: AssemblyDelaySign(false)] +[assembly: AssemblyKeyFile("")] +[assembly: AssemblyKeyName("")] diff --git a/SAF_VS2003/SAF/SAF.Authentication/Class1.cs b/SAF_VS2003/SAF/SAF.Authentication/Class1.cs new file mode 100644 index 0000000..d368a0a --- /dev/null +++ b/SAF_VS2003/SAF/SAF.Authentication/Class1.cs @@ -0,0 +1,17 @@ +using System; + +namespace SAF.Authentication +{ + /// + /// Summary description for Class1. + /// + public class Class1 + { + public Class1() + { + // + // TODO: Add constructor logic here + // + } + } +} diff --git a/SAF_VS2003/SAF/SAF.Authentication/SAF.Authentication.csproj b/SAF_VS2003/SAF/SAF.Authentication/SAF.Authentication.csproj new file mode 100644 index 0000000..4c3a541 --- /dev/null +++ b/SAF_VS2003/SAF/SAF.Authentication/SAF.Authentication.csproj @@ -0,0 +1,125 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SAF_VS2003/SAF/SAF.Authentication/SAF.Authentication.csproj.user b/SAF_VS2003/SAF/SAF.Authentication/SAF.Authentication.csproj.user new file mode 100644 index 0000000..686cccb --- /dev/null +++ b/SAF_VS2003/SAF/SAF.Authentication/SAF.Authentication.csproj.user @@ -0,0 +1,48 @@ + + + + + + + + + + + + diff --git a/SAF_VS2003/SAF/SAF.Authentication/SAFIdentity.cs b/SAF_VS2003/SAF/SAF.Authentication/SAFIdentity.cs new file mode 100644 index 0000000..2908ed4 --- /dev/null +++ b/SAF_VS2003/SAF/SAF.Authentication/SAFIdentity.cs @@ -0,0 +1,66 @@ +using System; +using System.Security.Principal; + +namespace SAF.Authentication +{ + /// + /// SAFIdentity encapsulate the identity and the application name information + /// + + public class SAFIdentity : IIdentity + { + protected string applicationName; + private bool isAuthenticated; + protected string name; + + + /// + /// this constructor is used exclusively by SAFPrincipal. + /// If provide a way for SAFPrincipal a way to create SAFIdentity + /// object with user credential information. the constructor + /// is marked internal to avoid develop to call directly. + /// + internal SAFIdentity(string _name, string _applicationName) + { + name = _name; + applicationName = _applicationName; + } + + protected SAFIdentity(){} + + /// + /// ApplicationName provide the name of the application + /// which will be used later to identity what type of principal object used + /// to determine the role information + /// + public string ApplicationName + { + get {return applicationName;} + } + /// + /// IIdentity interface method + /// + public bool IsAuthenticated + { + get {return isAuthenticated;} + set {isAuthenticated = value;} + + } + + /// + /// IIdentity interface method + /// + public string Name + { + get {return name;} + } + + /// + /// IIdentity interface method + /// + public virtual string AuthenticationType + { + get{return "Basic authentication";} + } + } +} diff --git a/SAF_VS2003/SAF/SAF.Authentication/SAFPrincipal.cs b/SAF_VS2003/SAF/SAF.Authentication/SAFPrincipal.cs new file mode 100644 index 0000000..e7f834f --- /dev/null +++ b/SAF_VS2003/SAF/SAF.Authentication/SAFPrincipal.cs @@ -0,0 +1,77 @@ +using System; +using System.Security.Principal; +using System.Configuration; +using SAF.Configuration; + +namespace SAF.Authentication +{ + /// + /// SAFPrincipal encapsulate identity and membership information + /// for a caller on specific application + /// + public class SAFPrincipal : IPrincipal + { + private IIdentity identity; + //internal application specific principal object + private IPrincipal currentApplicationPrincipal; + private string safUser; + + /// + /// constructor takes the SAFIdentity as its parameter. + /// + /// SAFIdentity object which contain the identity and appplication name information + public SAFPrincipal(SAFIdentity sid) + { + //retrieve the authentication configuraiton from the configuraiton file + ConfigurationManager cm = (ConfigurationManager)ConfigurationSettings.GetConfig("Framework"); + AuthenticationConfiguration ac = cm.AuthenticationConfig; + + //set identity object and the SAFUser property + identity = sid; + safUser = ac.GetSAFUserName(sid.Name,sid.ApplicationName); + //set the application inforamtion of the SAFPrincipal + SetApplication(sid.ApplicationName); + + } + + /// + /// IPrincipal interface method that determines + /// whether the current pricipal is member of a given role + /// + /// the role name + /// true or false on whether the principal is member of the role + public bool IsInRole(string role) + { + return currentApplicationPrincipal.IsInRole(role); + } + public IIdentity Identity + { + get {return identity;} + } + public string SAFUser + { + get {return safUser;} + } + + /// + /// SetApplication will change the application context of principal object + /// so that principal object represents the user membership information of + /// a given application + /// + /// name of the application for which SAFPrincipal will switch the its membership information. + public void SetApplication(string application) + { + ConfigurationManager cm = (ConfigurationManager)ConfigurationSettings.GetConfig("Framework"); + AuthenticationConfiguration ac = cm.AuthenticationConfig; + //retrieve the type informatioin for the principal object of a given applicaiton + string typeName = ac.GetPrincipalTypeForApplication(application); + string appUserName = cm.AuthenticationConfig.GetIdentityForApplicaiton(safUser,application); + SAFIdentity safIdentity = new SAFIdentity(appUserName,application); + Type type = Type.GetType(typeName); + object[] parameters = new object[1]{safIdentity}; + //set the new object to the internal principal object. + currentApplicationPrincipal = (IPrincipal)Activator.CreateInstance(type,parameters); + identity = (IIdentity)safIdentity; + } + } +} diff --git a/SAF_VS2003/SAF/SAF.Authentication/bin/Debug/SAF.Authentication.dll b/SAF_VS2003/SAF/SAF.Authentication/bin/Debug/SAF.Authentication.dll new file mode 100644 index 0000000000000000000000000000000000000000..8a7dc4f5e3c04ddab9a29c9733b9a48809135fa5 GIT binary patch literal 20480 zcmeHOYm6J!6+ZLuW1XxMdm$lV1KupqZ4%6eq)7^>UGI7q+^~6h6OuO3X4anU4zWGX z%s5~|XizEQRRk4kRTWeMLeR&LM5S#&v;_(ErKUhtR8^uCm1tBb68wOowov+=Gxpm1 zAX58-Kb>pcGxwfz?z!iF_c1ePc1J&dA8ACSBY*fI(J5Rx4G29uIRX>dfr8Ho;{qEMsW-3FV$rz~ zcJo{sAUeiC%uf4>7J_$AFH!ew+1ctTqG+2uiuyHe^|WW+=%N0*1PEl!@t`!FQbhaH zj_VY_5#I(-;IZ^0x1|AipLWcW4Mp~q_9L_20CHOzAR26|2E_n@0D%C30D%C30D%C3 z0D%C30D%C30D=D_1WxdKH4?v@s>tWz#e9D!k;2UXA$9eubZ(=a+7~B^soGHuFXF0x z6gKr$kahJd6q%v3N_Y#vgHA#{!kV$w6mIch0(^Kl%~z-2uh9bwRyg$d(xbJjh2uL!%M!JH%FF z+$?rhqr*PD<;T1(3@;Wwl0;dv;a=DVC$>P1IG=@%eGV!%u!|jqLk!gU{Te+4n|P;B zxJw|2sYh7kF6Cws`#fBHAM9l)ItE)=j?%)Ya}ebvU%_A%`+RUZJ3Oc;HbNM&uE^?C zB4V%LqMp#*3%C#pCqnjxDA_5HOCayT_0r$}>D)x51`A48G!b1BNkr|H;J*^q>|R{E z!mBBPS%MsRsWeKL-ZVY^;QFbnKSVhcF>v6_*vt>g0^p3OkFG{E8&~upAYnzujv|(# zt3IO-T}hw3);N3uEzAXGMAvN0XRI;3(`(9~E4JKP53O~=mYaNy9N5D|BtF7JcySq>#~!ZULXE`?(H8uw&|W6hj_AA?9FFJ z#`AW~DVReDu1R%Q{__6*bzJ0}&eXgqv*K9=!?WzlUVGyDy;*ajHaU+lT`f+)EDh#A zH>fmD0gfphUYlN#HMgv40wC>r|kD(m<#0*|mtd4I}YXB+Gbup@vd zdmURr>VQ&oxD8xEiZ#3s(^^^u-VWLXdb`lSE3YBGxJYH%Cv-^YUZFLi_X+*3(C3Bz zQRw?ZmucK~NbA>P^mXlSElw|M&uU4E=dua*?G;2ptiz2KU71{kF({bvs=0j2o10$WjBjbOX zI#K?Wlr3c=v>b(T@yib>+faTAoNX!Y@k{5u04oZ4Qo9YcCBXI$sofrZnUxL|$EJv@eN$qDH%cb_duL+x%LDt_xNM|~3QLe;Du94d9kPV>r zpf6MIRz@(c;!4)^Wifh2YG*{YfL`%yVr3z{<7-BrLw^ftA@&X0(P?E&){H{eVcDp( z4^*LwP~L5rB90VL7d(SeHDvOA;0`sNQFl_FbyI1&zCoMxyXZLW*YBlo(@~-K zVkMmv&8I-e=qZYYzK4^Laet1MhE9Uh9Xdt7q%EPJ(o3{A^gK8(&@Vt)=Oj&qPJ>?x zT|j@JTSH60xid6^UcMH3kCqW5f1FN+bmcg`2+p7Btx$*ZIw|2rN*cRvJ!qHE^M$Sx zdZo}Ip__%~g?>S3LFhrcLK(+uEC9a>xpV_L32%N>Ds(qi%51&%J?v}UO7G62 zH;VN&v+bkwlJKO}Rik#XRx&?Ba}V%zu~ee6TdzQTRI&r;O@EWyr-YnD{ z%d4li;Y2Q2Rii|?T#@eqUY#wrmuKA`D3hI*=331&*;W|_S{0*OEj8{eTa2Pwb1488@`Cdex-ac4ym^wr!r_Mkwv9CMvFJ zIEAV0HPfk!qb(5JTxEw{GHIFvY#m_P)@2J0*Eq1#HT|&yCn@L6c3sBbXUoi`cbErC zm^wH_8P_$-6Q%lQv(ElzJls$xY92<{5{y`-c?4OrWYqK4WMyufU8dv0_*}tIt>o35 zd5n!YM$s%A&cS)w*wwmYO-^}pMcW*#*up%5A-h~PD)qT7hV04#YqI9ZW64}`)^rPw zRb^!63dbz39S46Gq_dVWS+QL_>bNA2IFrUiyV|&{#_`!}_OMZ^nN-8PSw*TEu6u*+ z6sc&J4XYv>aHnULWa~8cRkOa!C|O0rGi5$8_0vnF;m?c_(u^7wg(pu-SDT(Mke+7f z%xp1gRE$Y1t(mKMW`p@;%|l^#xkSiY@RUgC6!Uc$tKXSnAZvIA)a|;hFm$lrg?MidMXz~nrSOqS*SQ@a?*t~L_v@Iha(8gKI2g``p-=wQT*XcdFsI8dgIoRf)&76e-AjRrQpjs9GN?eWXTG zI>b;2Cp+{MB|AcpCZo{7`*k1c5Oi{jI2%$`EuzGc)o@DVc6vlf4nt*_3mrNs-SOxT zH}zch=F_?k_I6lH?u>^cYH~EW6O2*hozWAY9sgqD<=7S6p%G50$$jxSF5U4J-ORG! zB?^kdBpOddI+A;m`;z;*yOaCWq?Ihgh=t78J;?jia5ubzJAOyo(JUShk&-+V$74lz z^3aOz#gQmn*dC83qg-9lt%W%!qsWIs{4habJjP3b9&W^4nEMkhr?@mXHRCfa$@q}% zWJ{${KAPkqz%=E7fHgk67p!v;;&EgXXkVHtalCa?g4zelqffIxV#>87yh<>9CR38-}3kdyp^_~o&z00 znbVK;xBl%%!4+Dgp24R(|B5f-k~ko)Hp3ugmQfLVF z$`WPa7z{^BQpgvz$*R(S9i#Q5G2AultP!22=UI5~A|}IrRA>0fx>w;Fg);5iE{V`^ z6sS3twUmZWX?%g&NE`4=)2Hy;fR;qtXertiX!H+jmyavJobqe*Ehq78rT z#hi-Y*TUAMSYiaKh#j%#lZZy~|1+eJ{qeQ*{Fx}CT^a2-9_7cCSa-MhxV2$}XM%lf zV#76#WAXoJ{CB?k^RNweZH%BMF|XP4Fd*2@)R~R&+3?Lu`wT|Ik+U*ZM+s=8urfK0 z)|#cW*}%|(6d({F5FijB5FijB5FijB5FijB5FqgJAkgpsP3?&0Ra)UNckaRds}{0M4(qZEJgR;>^-y zX3@-LEHlw9Ee{2cMFmVgUy0A?ROBQ8`OI)%oZkdY{U0h@dlYPGD$Gz{p+fQ!NTpc+gAnw~SkEHE2f0_K3Z zU>>*>%mkaU1-KH_f`#BJPzM%)#b7!(*Qr$Ff3ElAL~VaA{jaqg*8jR!`?C2& zZF9Na=^iN6`q$hTFO9VaTtqb^;5=|4DDMGuLW!wV<6q)xm9zVtdf*AlnF=ldT4y4y zIoV*c%Z>usP_mt5kHvv(vZeTflt$#&r@brxPNW_v)%t%3Lw*GfUj-k}KCqcI*8-B6 zd8j$3ec@`L^MQ1}&H}Ri!+U||pw0!d;Xmz}U=exfT%a?E&ILM$Xs(|NRI2fh_3Rvu z_0-4qCht!4Cwt?uWbZ(~f_l4kpWIg;9}eQ{6p}}9aHzLG-a8oUlcewdwTwXw$VGw1 zNs*>PnM%+Dr5b+?j_fs&uC<0Q`)jn~f7MU-YmF;RgDIW>o;0x8vI>)|cvv=;Lsnsa zl7wXmF4GzGK&i%Gw!k3J_+Ajy)pYF}PA2Y^kH%luw+{66CF0Tx!?GuGh1YitCgQ!Z zzTO8D-SXe0WZHU%NIEdIuPZThe{VcN4w`SN_&e_Hb7i%3P*8tQ?_GO`j1EF>ep)U& z%H~0u9m(E4v{bmvu0(wAkTlmeubIfpvVxGrjW$83!!q+rzg9iSmHIWPR~M)bl{F6&5JA43U>{#hzn5zKRlh>( z|J%f$>H2@g$)3sj|EH6U!L!$YocVVZ-j9FRC%q~>LVrF@v&M&5Z;m)XK*!5mV8{@B)ptBn+*nm#kNw{pcY>el8H2Q!bV|>QrkKQ+$!)pO<4aNACmI!MPts{SMF+vmIM>e{~`S;6{ z%U*l=NQKVY;~|Zg#!qd3U4sbedKn1Y|I)s>_J3*SY*}e+$to_qr>n2CWnXdmDlRM= z%OR`rQof1{%SxMP=PNBQS;d8AwF6|!YG;tF;=-~M#RjJ8!S&QV%Y|+gUrk4+O08;sO4o+d44ClBnr+A) z0(zfqo|9J@1Z9+O${@`94Lz@*1icd{JuO>a<*9y;fhWPUKymUD3Zo8^E#~}K=zOcX zsH_`-u2tU6?s^oy6Z{)Qf#f73+fk(ct}|CA{fN$kzJP9Q4WxnV>@XsF@ zAE%qfe*WO?KRr(n`Sqx4bZylOzWuq*e_FJpQyMRKw)6q(VBCFBt%(hV``}{w;N@^1 z;6SrGfz|ibv_C>RrSWoSOCK;i*CKc&Z~a(1 zK>O`1puKk)s?FL1nj}`oSETj_x+7(;Q2!D11beCW?KK(ctX|A*=g?MT=UAS$b5x$y zCArhlFD9Mk^VsJvHGQ+6bawq!q}H$W(!)TsiF7mIEpYXJD_rmQwZWUHcaDBJ_R)>4@pa)$lvO64MXfCXt_1v<#@8nuD5u$H04_ znlY{g>%n%A1o`&*V)nTW&d>39C55Rx%gisTt4e)Nkt{^{Ifp|<>um(9>))dd`$@0) z=H!1!hs!bTH1B|%8}EJi{e!WoF&)Rx@ZQsPvHEHdsH=q} z@L|R1*0IiF%6kEj-rNoBSXHFPSo_F!AVSXQP3cGM{-73q3H&O!&QOcs8gDRC8GI#( z1Px#XxCYG4SnK}$p*8jx4LtzD^JA>@!C330y#7nS{-0v3L>hBX44bBinXB3BUv|W7 zCx~20$JgsYubY}x03^NZ2~}LBx|*nvZaP5NDpzqIU&^`X>*n{98E#*b&h>;EuF|?Q zb(4+`8O+{Bl)lzpH;wd4>*Y&XSHDgu!s(^4&x5{Q|H#oU^nTTnaJ%yCle0QPhRjZ#4QpdyKRd5Xa8OXjp0YuVCg4VmB^&!Zf6lAvvYNw#Q zi?I#D@A>FGE!9`#&t0m6_H~8(dgxkp@#itsM}AF(t4?d(wd%DI$gbE7M3PaSB8Dqi zZ?4kkF}~3@K3Sd1)NeYMRhn~F4f0Ek{h<6*rt(pKUf(k=sk0V!Hg<}5C4S+{sJ&08 zb|{_K#o=_c%bb}kuMKKB0s3@mbG~#s+iBieo|#T{RXW)@qHuXS3#$I&Qz>g9mXt3~ zeVMO3`q-3b`6cwloK!mXyVChJ6fTeP7*RbeU&1&p4L;&tVTbI{n=yQm>!aWuZ~|!m zS_N(agWwVH6L18)4L$-3*wE7CTbmB?SBMs*vEuV29yu+1(`g|k4Uqji57YsTvF7q- zupR6NPl4ybC^!n<0`Gtiz)7I9tZd*~umZ?_X#?AUd>=_5pIIb`u8|+UkwRt$i_Ko9 zwKK&TTXTY|Lt$1n%H#>lR^*VaaQQ|X)3OK1H(OTk=gptm@F5XFAA|E>IRArvMi&1I zVY+|L-EVRCk2=2B$^XsqUpW39$G_+Ear}2KywlykEwaB}}~_m?yO2nz0V z_kVEmJDl84UHDXYFXx=(f9?3wF5K$7Ao!O{FBxH>i?2}U7oc$bNNUw*CZNbPW!z9! z?)+!?1bO039VMf>7NUIVeZsu)IWo;%RSA~Y|72PJ^FunPGV2AOunuv`4KBPtUpg=Zll?e#qq%PB#UMK<|>MWQ~ii^gN~-h8Eqm6Jo~Ln+gWexCj2}B2!*kHbh|dVtb8eR|J_z_9MDM&s z=CvWTY1W5f^`T>H&=OtK(b(3~Ze$CWb8&DtnU5g(08lxPY`&>bIW29er>(13HZ?VO zw7a!kxSZ+15!!Q*{QF#cJ~)4C;c`-66a`Id+uB;LTZIyW3YT+H@HXWfLr&wM_6)vW zus!r!x}e79HEUP5Hg%|+Ykyh)q0)=|`P|-F=h-vQJhV~IF1LRDc*D<{-);YS=Lau5 z*Zf$g%5Au%xBs5b{+@xLp`QoL!$HIFP`u&pM2znz_w)_K@38?ry?u${2Cr03|3d(U zK4CIBj+H^ymt<#}CgbbCP@?W4zIi;uHWZU}{?-+lTSmL5GPV~1&4Isc;0MyV?LvEL z!Zk0vuf+u$rZfwH->>u{e_}CN z6nb1)OnzaVXTC-C-?M6b%)}NKX`{0=Ep)ACo96F9*1f^nCwmEOeMFr?FioQ_rCD7X@6ooG$OfpmKK?|*SyrU}{uwbc7X z(8k86J(gpK|bRZ@K5vizcknMjHv-=&MgNkfSy4~FUdBY4OBJF zQQ0lifovL`Rb;#9TrwBT13I7Zj7iUzjO`+yZ?3-uyohk=ed&DZezi-w|7zgv2refz TMJILZ%8e`cK)DAB^}zoDQx|qx literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.Authentication/bin/Debug/SAF.Configuration.dll b/SAF_VS2003/SAF/SAF.Authentication/bin/Debug/SAF.Configuration.dll new file mode 100644 index 0000000000000000000000000000000000000000..f5b38bde2c2e1982932789c5a7a917d7ffdfd3eb GIT binary patch literal 24576 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 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.Authentication/bin/Debug/SAF.Configuration.pdb b/SAF_VS2003/SAF/SAF.Authentication/bin/Debug/SAF.Configuration.pdb new file mode 100644 index 0000000000000000000000000000000000000000..486270dd4be55f0b21676f82b00b488d2d6a88f7 GIT binary patch literal 56832 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 NI2Q{(U1rCD{|}|F-Fg53 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.Authentication/bin/Debug/SAF.Utility.dll b/SAF_VS2003/SAF/SAF.Authentication/bin/Debug/SAF.Utility.dll new file mode 100644 index 0000000000000000000000000000000000000000..2f7665fad1be33b326afe3c5a4b25f15306d4945 GIT binary patch literal 16384 zcmeHN-)|g89slm``Fyr>u6;J`g{JD71mvdW@UNz%6u67ePOf(Bi|_1)CaS%6w>fXU zw|m{)vwHy|g9>dQKvaTAke8Icz(YlaDmAL;KY$bjg7&Er?L!d~5+D#SK_YzSyLZkx zw$cg-6^WVCeD?dD`F>}<^O@P5owZLt`90EzD1vMt^wY zTbXum?@|9qpAsb+K#3lfI!9Y_n)N|0N4-JNuuDArLQgMO+*PX*?)0ra33fI5z`6*n|aI=W4HzE_6E zv85ph8y&eLr4fC~Gi?`!B34>M7ItIE9Vtz8qC=IUWI!??8ITM}1|$QL0m*=5Kr$d1 zkPQ4EF_0JMY9w(sRgvGtIX8=gt0D^jgETZ2rE~Cu|KKH@L3?|L`?Rh|^6mtUqAYqK z_Sr$rgH#_KM6I6yTx7%e@K7Y0OlYGxg-0Js^!P)l8j1`?++hfP5B7QY!7Fq)N<(8x zc-BQ<>Q`~hkGP+J*-_E|6w2`Rpw)k8?|t3-^d9A&4#eUQQV;u&!oT~Y`@=`2e)x!_ z4u4$)qmJG!q6y2|-!=rltH@s)LB{Bp3faQjKfdv&V{iZF#LsIly;;6%>mT=^KKtnT zLS}Zg;5NLnIgJk{tgaL$#>OUvC~|5!uxu-6o_9-6pU;}5MzymvRj-tA*e^VOLTSyU z_%5(Ho*GY0O-@WeCh8&^m;~F0FA+V5>$^fO1fJzoePOW%64JOHUM|p8$l{a2;gid` zEUvFX|Gv;q*e<%_gjrRdxKADK5!wx9QYjd!QA)VbHeJ>) z(><_iYgg%0Jkqf4Rr(CHye?|LP2I`_ysx#ie&smD>DMjoGJO%+z({EM04xV68*0g8 zu*7YGUj7WORr)7TqbQ<|&=9bT?$=a|=W~z|FHohkK#exIq`@VZxa9edR5C)xlo@(} zaUA$K9cMYim}5M{_!UNj(PDgtvB~%i;3B=q@=L(u^h5fAwoEV6%i3A`DVHAvK1B!V zms*(y=^gDj^{{0Oql;rD#VCP%0CEcJ=y~7}X9xw}{_b?6`Nflq3zHM8 zd|k~g6laz))5YA%%uY>yX>lc&ompDV&dg?(=Zibd(}(+VurjwqGKlc8+Y4V#{@oQk{U?`m|~b@-d6)!9?K zu&`wXWpE6)me_8hVmbkaODl$LRnRp@l`01aCnP4dWL~hrjEFnq`(~|VH|Naef>ARw z0UlPRMqqYU%v$z76=Gn5z4AZT}Zt^4#?|*lbVsBhL zzjAQuy%*JJEP_Wlo^wdO6jl5C`(v>Iv02BuNmG+TjwX7dx~8B?(@E*pwL~0pL{}6B zwM$nORaK+OE)xEtA{o&s(bLo2l}z-g$wXX@s%R!2>y9MVL_86XbgN0VOFYXciX9HZ zsn$D;D0)iBx{&s!_Io7WaHd@k>*TbUcYem1Ca(?QbMw>i$D5B#k^#wpWI!_Tzr}z! z-{4Frjwrj5IPLJCllPPhGx6=TOa&Asvgj_u*~%Um1ofMO@?Oj#%jS~c*#KHJ)HbJ&3|V8<2d2=ALk)EX%D zu_GH4z)tMaVR|hRpiu=e1+cPEUfrjqJll-n&*1+O{jO^GZfmM;+Pg&Z3y;7OzklWO|VLsojb=C za-ByzF5+!~!=PhiVP9G1Z@10uEPfb=r?`y_Mj+neYFGs}7|^i-chAO$wSytaBpHwl zNCqSWk^#wpWI!??8ITM}20lIp^zeVi>yLhXA;_L31CjyBfMh^2AQ_MhNCqSWk^#wp NWI!??8Tjuq@NXen+adq} literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.Authentication/bin/Debug/SAF.Utility.pdb b/SAF_VS2003/SAF/SAF.Authentication/bin/Debug/SAF.Utility.pdb new file mode 100644 index 0000000000000000000000000000000000000000..927ffef48da7127c275580128436378b3a80f07f GIT binary patch literal 13824 zcmeHNZERCj7(U&~=mrzYr$WR95&4*HH*_0B9oRuO9Re0GBFR?TyK!CDyR;pHh)EL( z5yKBmFi{f|m?RRz4>bHRL?R)?z%M@ti6Ih=Ka55r0cS#tg3ojAIqhY#u`+Nl?wdV* z&-cgszUMt3cPq_U%1T>pnTl{Qyl`Q~%E*d}+CV5&UN)m4B0xp*Ps~K{TgE{%Z07!s z0txK9^!-(r?p+D^$}2A4yR&y^-cwrTsiPm8r~phqJ3j9Hog4gZXZ*(&2yxlhbZj6&3}+?HL!3ET<#r|k@613pa23%E8=xNe71<9hy| z`f&Px#@SYXK9u&|GIxgrzEs21y#J_o!yqb=*ay%K`ma~|Vft&mUg^IFTC?=m^xgFB zE{&`NX8suRWHE%^y1u!8mz?x)?=6HpC`@0WIqNb^`(WGu`1U6o5q=1m1u)M5T)HzP zKph>zP=5IE{Or@8pY%*Ga9Gqm_h;(0Ow}z!|7q0eZ!1qCjkdx(*H$2e+eq}+Uje-U z?}2)cZ$&r@aP87h>$5riI_ps9Byh<%V;)vGSDY{d=QNz3|3bttrG5VMI(i)%^CYB5%W@wIG8%W4DLqQ33Z;z+bQS}?7Sy9Pa$ zOGA+W*KI&7;B$(|QhcD7Z6<$_&nFovSrO?mGqKHhpDFgU-gcDVAWPZ#Wnzv$vMrr4 zI)#{>3kP24PG-zbBhZx07%8hOVx+d1F#~FvlrIx8V%;hD8~702MnItZulHd!Fr~FYa&+P0nQfVt0&6rj)Y+-0yGpsWU zW!0G`S2kg_w;S87{= zfncsh7(G#~d352>1UsPE9h4kR|C4)ae^nGm`V6-EazdJ$gkrGACryA{_{!$e{K|o1*?; z6FGZu+7xYADP4-Uk@~q1`Mu6xd>x_XvDe*fkaW3B>sgpcZ^S_+s!N z_!97HaP02cr@)^EUk<($d?onr7p`Pifj1z&0el6x7v}*lYIyObz>AeRMm!Hb4+sEj z5U&T&5@?KAj&rJ4j-3nH_M@Jh4=zI592NvY4q5tI^qcjHid?+}(kL6wS^K)Nh_?bH z$V|=|JpPFJ#fJg*zxJv_p3A#v2P^Hd#d?79!0 z?>!=a=+}MN>8iY||D10Ak3bnZIS%v!TpIfQm%Dlv;2Pz*0!vZw+~)kow<%%8Iz%v? ziUr%ugpm#o`hG-9Vhh|QaH^BUrOY&rg1wMfZZ^OZhD*0w0uu-6K%WhCk&wIowJ1gn zr;hnQAk#6UGO@32oOs>Gy?QgS2dD&E0ZqI^@C=C4|8dFiWB+$Z-goG@onI<;U}>L1 zWW4nMLi{|{WEYYgZ+W=~KlOD%)P-x7)mAsq6^X}=1}@Tbka$PyPt0R_u3<+3=CuR* zZsy36-iY_8dCo)?X1x=Dz5_Xn6yZixE(hev`ApuseV8Lj`%!YxsvYG>`^O$e*uhP8YKV# literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.Authentication/obj/Debug/SAF.Authentication.dll b/SAF_VS2003/SAF/SAF.Authentication/obj/Debug/SAF.Authentication.dll new file mode 100644 index 0000000000000000000000000000000000000000..8a7dc4f5e3c04ddab9a29c9733b9a48809135fa5 GIT binary patch literal 20480 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 ZC!~e@JWfEbhZhF{_b8y@_{eD>!XI(FfDHfu literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.Authentication/obj/Debug/SAF.Authentication.pdb b/SAF_VS2003/SAF/SAF.Authentication/obj/Debug/SAF.Authentication.pdb new file mode 100644 index 0000000000000000000000000000000000000000..fc1c8ac68bedf1394d3c7c0f70e3e07ee97320f6 GIT binary patch literal 26112 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 TMJILZ%8e`cK)DAB^}zoDQx|qx literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.Authentication/obj/Debug/SAF.Authentication.projdata b/SAF_VS2003/SAF/SAF.Authentication/obj/Debug/SAF.Authentication.projdata new file mode 100644 index 0000000000000000000000000000000000000000..9da519a3788373c964ddb0328e557007725d6c2c GIT binary patch literal 7816 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 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.Authorization/AssemblyInfo.cs b/SAF_VS2003/SAF/SAF.Authorization/AssemblyInfo.cs new file mode 100644 index 0000000..76c8358 --- /dev/null +++ b/SAF_VS2003/SAF/SAF.Authorization/AssemblyInfo.cs @@ -0,0 +1,58 @@ +using System.Reflection; +using System.Runtime.CompilerServices; + +// +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +// +[assembly: AssemblyTitle("")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("")] +[assembly: AssemblyCopyright("")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: + +[assembly: AssemblyVersion("1.0.0.0")] + +// +// In order to sign your assembly you must specify a key to use. Refer to the +// Microsoft .NET Framework documentation for more information on assembly signing. +// +// Use the attributes below to control which key is used for signing. +// +// Notes: +// (*) If no key is specified, the assembly is not signed. +// (*) KeyName refers to a key that has been installed in the Crypto Service +// Provider (CSP) on your machine. KeyFile refers to a file which contains +// a key. +// (*) If the KeyFile and the KeyName values are both specified, the +// following processing occurs: +// (1) If the KeyName can be found in the CSP, that key is used. +// (2) If the KeyName does not exist and the KeyFile does exist, the key +// in the KeyFile is installed into the CSP and used. +// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. +// When specifying the KeyFile, the location of the KeyFile should be +// relative to the project output directory which is +// %Project Directory%\obj\. For example, if your KeyFile is +// located in the project directory, you would specify the AssemblyKeyFile +// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] +// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework +// documentation for more information on this. +// +[assembly: AssemblyDelaySign(false)] +[assembly: AssemblyKeyFile("..\\..\\..\\SAF.snk")] +[assembly: AssemblyKeyName("")] diff --git a/SAF_VS2003/SAF/SAF.Authorization/Class1.cs b/SAF_VS2003/SAF/SAF.Authorization/Class1.cs new file mode 100644 index 0000000..28676ff --- /dev/null +++ b/SAF_VS2003/SAF/SAF.Authorization/Class1.cs @@ -0,0 +1,17 @@ +using System; + +namespace SAF.Authorization +{ + /// + /// Summary description for Class1. + /// + public class Class1 + { + public Class1() + { + // + // TODO: Add constructor logic here + // + } + } +} diff --git a/SAF_VS2003/SAF/SAF.Authorization/DefaultAuthorizationProvider.cs b/SAF_VS2003/SAF/SAF.Authorization/DefaultAuthorizationProvider.cs new file mode 100644 index 0000000..293748e --- /dev/null +++ b/SAF_VS2003/SAF/SAF.Authorization/DefaultAuthorizationProvider.cs @@ -0,0 +1,136 @@ +using System; +using SAF.Library.Security; +using System.Security.Principal; +using System.Threading; + +namespace SAF.Authorization +{ + /// + /// A sampel authorization provider that shows how to create one to + /// be used with SAF.Authorization. + /// + public class GenericAuthorizationProvider : IAuthorizationProvider + { + //default constructor + public GenericAuthorizationProvider() + { + } + + /// + /// It is called by the SAFSecurityPermission. It performs the + /// membership check on caller's current principal (principal must be + /// GenericPrincipal) + /// + /// string array containing the roles allowed + /// string array containing the roles denied + public void Authorize(string[] allowedRoles, string[] deniedRoles) + { + //ensure the current principal is GenenricPrinciple + if (Thread.CurrentPrincipal.GetType() != typeof(GenericPrincipal)) + { + throw new SystemException("Current requestion doesn't have Generic principal"); + } + bool allowed = false; + //because deny permission override the allow permission, try checking the deny roles first. + if (deniedRoles != null) + { + foreach (string role in deniedRoles) + { + //if caller is member of denied role, reject the call by throwing exception + if (Thread.CurrentPrincipal.IsInRole(role)) + { + throw new System.Security.SecurityException("Access denied to account " + Thread.CurrentPrincipal.Identity.Name); + } + } + } + + //check if the caller is member of allowed roles. + if (allowedRoles !=null) + { + foreach (string role in allowedRoles) + { + if (Thread.CurrentPrincipal.IsInRole(role)) + { + allowed = true; + break; + } + } + } + + //if caller is member of neither denied roles nor allowed roles, then deny caller's access + if (allowed == false) + { + throw new System.Security.SecurityException("Access denied to account " + Thread.CurrentPrincipal.Identity.Name); + } + } + } + + /// + /// A sampel authorization provider that shows how to create one to + /// be used with SAF.Authorization. + /// + public class WindowsAuthorizationProvider : IAuthorizationProvider + { + public WindowsAuthorizationProvider() + { + + } + /// + /// It is called by the SAFSecurityPermission. It performs the + /// membership check on caller's current principal (principal must be + /// WindowsPrincipal) + /// + /// string array containing the roles allowed + /// string array containing the roles denied + public void Authorize(string[] allowedRoles, string[] deniedRoles) + { + bool allowed = false; + WindowsPrincipal wp = null; + //ensure the current thread is WindowsPrincipal + //if not, get a the windows principal for the current caller + if(Thread.CurrentPrincipal.GetType() != typeof(WindowsPrincipal)) + { + //create a new windows principle representing the caller + wp = new WindowsPrincipal(WindowsIdentity.GetCurrent()); + } + else + { + //otherwise, retrieve the existing windows principal from the current thread. + wp = (WindowsPrincipal)Thread.CurrentPrincipal; + } + + //check if the caller is member of denied roles first since + //denied role overrides the allowed roles + if (deniedRoles != null) + { + foreach (string role in deniedRoles) + { + //if the caller is member of denied role, reject the call by throwing exception + if (wp.IsInRole(role)) + { + throw new System.Security.SecurityException("Access denied to account " + Thread.CurrentPrincipal.Identity.Name); + } + } + } + + //check if caller is member of allowed roles + if (allowedRoles != null) + { + foreach (string role in allowedRoles) + { + if (wp.IsInRole(role)) + { + allowed = true; + break; + } + } + } + //if caller is member of neither allowed role nor denied role, reject the call. + if (allowed ==false) + { + throw new System.Security.SecurityException("Access denied to account " + Thread.CurrentPrincipal.Identity.Name); + } + } + } + +} diff --git a/SAF_VS2003/SAF/SAF.Authorization/SAF.Authorization.csproj b/SAF_VS2003/SAF/SAF.Authorization/SAF.Authorization.csproj new file mode 100644 index 0000000..70ced2d --- /dev/null +++ b/SAF_VS2003/SAF/SAF.Authorization/SAF.Authorization.csproj @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SAF_VS2003/SAF/SAF.Authorization/SAF.Authorization.csproj.user b/SAF_VS2003/SAF/SAF.Authorization/SAF.Authorization.csproj.user new file mode 100644 index 0000000..686cccb --- /dev/null +++ b/SAF_VS2003/SAF/SAF.Authorization/SAF.Authorization.csproj.user @@ -0,0 +1,48 @@ + + + + + + + + + + + + diff --git a/SAF_VS2003/SAF/SAF.Authorization/SAFSecurityAttribute.cs b/SAF_VS2003/SAF/SAF.Authorization/SAFSecurityAttribute.cs new file mode 100644 index 0000000..3bf9f9f --- /dev/null +++ b/SAF_VS2003/SAF/SAF.Authorization/SAFSecurityAttribute.cs @@ -0,0 +1,42 @@ +using System; +using System.Security; +using System.Security.Permissions; + +namespace SAF.Authorization +{ + /// + /// SAFSecurityAttribute provide an attribute which can be applies + /// to the members of a class to perform access permission on the caller. + /// + [AttributeUsageAttribute(AttributeTargets.All, AllowMultiple = true)] + public class SAFSecurityAttribute : CodeAccessSecurityAttribute + { + private string name; + public SAFSecurityAttribute( SecurityAction action ) : base( SecurityAction.Demand ) + { + this.Unrestricted = true; + } + + //A factory method that return an IPermission object which will be used + //later to perform the access permission. + public override IPermission CreatePermission() + { + //create the SAFSecurityPermission object + SAFSecurityPermission permission = new SAF.Authorization.SAFSecurityPermission(); + //set its properties + permission.Name = this.Name; + permission.Unrestricted = this.Unrestricted; + return permission; + + } + + /// + /// the properties to identity the entity marked with the SAFSecurityAttribute + /// + public string Name + { + get{return name;} + set{name = value;} + } + } +} diff --git a/SAF_VS2003/SAF/SAF.Authorization/SAFSecurityPermission.cs b/SAF_VS2003/SAF/SAF.Authorization/SAFSecurityPermission.cs new file mode 100644 index 0000000..a82c8b7 --- /dev/null +++ b/SAF_VS2003/SAF/SAF.Authorization/SAFSecurityPermission.cs @@ -0,0 +1,113 @@ +using System; +using System.Security; +using System.Security.Permissions; +using SAF.Configuration; +using SAF.Library.Security; +using System.Configuration; +using System.Diagnostics; + +namespace SAF.Authorization +{ + /// + /// SAFSecurityPermission is responsible for determine the access permission + /// of caller. + /// + public class SAFSecurityPermission : IPermission, IUnrestrictedPermission + { + public bool Unrestricted ; + public string Name; + public SAFSecurityPermission() + { + } + public SAFSecurityPermission(PermissionState state ) + { + } + + /// + /// Demand method is called at runtime when a caller is trying to access + /// resource that is marked with SAFSecurityAttribute. + /// + public void Demand() + { + //obtain the information about the denied and allowed roles + //information from configuraiton file + + ConfigurationManager cm = (ConfigurationManager)ConfigurationSettings.GetConfig("Framework"); + AuthorizationConfiguration ac = cm.AuthorizationConfig; + string[] allowedRoles = ac.AllowedRoles(Name); + string[] deniedRoles = ac.DeniedRoles(Name); + + //create the IAuthorizationProvider object which is responsible + //for verify if the call is permitted or denied based on the + //allowed role and denied role information. + IAuthorizationProvider ap =(IAuthorizationProvider) ac.GetAuthorizationProvider(Name); + ap.Authorize(allowedRoles, deniedRoles); + } + + public bool IsUnrestricted() + { + return Unrestricted; + } + + /// + /// return an instance of underlying SecurityPermission object + /// + /// + public IPermission Copy() + { + SAFSecurityPermission copy = new SAFSecurityPermission(); + copy.Unrestricted = Unrestricted; + return copy; + } + /// + /// FromXml is called by the CLR to set the properties of + /// IPermission object at runtime + /// + /// the xml contain the SAFSecurityAttribute information + public void FromXml(SecurityElement securityElement) + { + //retrieve the information from SecurityElement, an special Xml document + //and set the object state (fields/properties) with the values from + //the SecurityElement. + string element = securityElement.Attribute("Unrestricted"); + Name = securityElement.Attribute("Name"); + if(null != element) + { + this.Unrestricted = Convert.ToBoolean(element); + } + + } + + /// + /// ToXml is called by compiler during compilation. It produces + /// a SecurityElement object which contains the SAFSecurityAttribute inforamtion + /// The information will aslo be stored to the assembly's metadata by the + /// compiler. + /// + /// SecurityElement object contains the SAFSecurityAttribute information. + public SecurityElement ToXml() + { + SecurityElement securityElement = new SecurityElement("Permission"); + Type type = this.GetType(); + //add the attribute information to the SecurityElement object. doing reverse of FromXml method. + securityElement.AddAttribute("class", type.AssemblyQualifiedName); + securityElement.AddAttribute("Unrestricted", Unrestricted.ToString()); + securityElement.AddAttribute("Name",Name); + return securityElement; + } + public bool IsSubsetOf(IPermission target) + { + return false; + } + public IPermission Union( IPermission target ) + { + return null; + } + + public IPermission Intersect(IPermission target) + { + return null; + } + } + +} diff --git a/SAF_VS2003/SAF/SAF.Authorization/bin/Debug/SAF.Authorization.dll b/SAF_VS2003/SAF/SAF.Authorization/bin/Debug/SAF.Authorization.dll new file mode 100644 index 0000000000000000000000000000000000000000..c9d09de15ca3de6257da4d17f5c51658e6370a12 GIT binary patch literal 20480 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 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.Authorization/bin/Debug/SAF.Authorization.pdb b/SAF_VS2003/SAF/SAF.Authorization/bin/Debug/SAF.Authorization.pdb new file mode 100644 index 0000000000000000000000000000000000000000..49b4933b55e4fa549808b732ff65f18aef714736 GIT binary patch literal 32256 zcmeI4du-HKcE^8%hl!IwunA!akd2d=M|c?X2(OS5YQvfo0$YDv8jRWKm1iv`Z_brV3l7X|}5JQmV4rH1zYm zkKg=eJTo557-PrRK68G*d(VBHbMCq4p5Jd~YfopoufMN5)6lY{W#Phxt?io{Ry8#@ zPrhzuYkNSN5Ck#MdfF@99OEq=&2iG#k8vt$cKU-oad^_kG;5uL;@NGbJ zN^#&Gh*hRNBmwLKYJqQ(e?9n3U>Tq^ybEqVJuCuh0F6ZVcLEClskUY|3DD>?BaL_} za3e4cxCxjJd0R|M21Z?w{7b3?nbpZhpDcyq<^g;{Oit z@JhOL>uvNeZIcd2JEaGUfhIr-EtyXNB=4v$NK>UF(uK>>0m)x_ARX}fw~%Y;pm?K| zBDk7TG5aqLNA17vHReKmHO*suEJNc!wbs9MW2BPSn%0-reKFgwHLo?U9ZYs%-1fr+ zm#QUy-`+SLT^y*M{I&AR`G3XvQj4dkFZiP*{pwWj{RTl ziIn7`JUurMP69ry;G&RLd7>4L((1a9Hb#S@Rauml+woKZ2gEx)*Ljo!pW=X8PpbAc z7ST@fCA&h1uDPq}TH~AuRI>j4nP2Pw2^42~P*Z=F>yO~WPrx(4($(vN#`^Xn{h8!` z#e=xsu&HTF&+c?b`bblIvh!fNCvyZcVnd!T%x>DA?n!m_9O&q!e0r{Y$KG_ZqpK&i zNA*lTZEiT2+1r=yd7>jjIF9^;?Tgq!L%q%{fJ~XWYH4q5wrQ2WXjX}6HGlT9BDAYL z?NU!Gk4<*48u1_Ts@(ej2g)m5|KD@8m$Uu}Xtu1~iL?ay+*OVj-S%X9e=Y@WY)2`oWU)J2bd~jB6$YjzzyANiP3Kn;*-PzyKy{o_PV7fEe z+1Hgcw}<*oQ%IS9trX$)^s}a+#cGFagnnFGmk1Ah)mp7~fdCH*ZuhMxW zy%1|41&|_?OI|UgB-)t{QSZmV(_F6w3Kh$@rBygGsapI0)vyo9{>z@r{>!J=^7Q_n z{QIcSFFUE_F54PD0x4-RT9e%!2YWMlMtXa??@&)yGOgvHmb@pzWtd7Cj%z}Sk-qrk zy-(glF@qb#v`(|C%dg%1MN(0fyyaf9k1osOJfm?S!sC*{iJ0>|8&ye#eDhJV#$fUv zf(;w2$sw4s!8llKl+{}Q(xG>qGV6Li5cU7B^!_i4T{s3=a#>)N$wK=i3tdPn%Pm@! zMQLTp3u(P&S6P%cG!L{BAVO@9^1RzCtdL%tuxb? zw!X63Q{Nhw9s9`p$`crkU|F!h_`et2oIGzBYQVS?mS@~}dydcw{eMq$wfO%`rHD^o z-2cav7ojcg|7(rvoY#Hg;a@&|@>FbtE}>()F)(FWSQO z-;B;Pjv;^ZE|4Xw=yP2DR_?{*U(NIX zaIJsY@g`?4Uw0DsdysCiB?)ie$L;^f#earN{)4o;Ogf;rl5}E_eML)v7+Hhad(bPl z2L(Y#Z*Sk>WEXpEL%mE8ZG~lr57@m|KFf;?riF5yq(rB-$Wlx%q)+$tvRmu5^n}^7 zRquU>M_=m^}L@TziAqD((hxguKIflIO_6cM+GV$2A6!q?Z4K4)GwUF{k!jd z68eWyfW7#McYz-TYkyGrJ?>ueA~c%a0`3FvbLEe@as@{ZlK&+5F!+nETs+qO*TB$Z zzX|>V_)oylX8#nde!dG9-Lv2?fu93^8T=FQAAsY$sTb$1ym+t?d23XX`wH%7^Uj{M zLeF_-qb;-1yT{G_L?QukN^dc52u91NLt|qxmSzTR9Wws*N7SqZw8tyeS!DEQ5!bDN zjT2Wt{wrNZFWnl52j$|wk|*>)U%*jU2|BGOn)zetub^J5XHyGtM?<{BaKEtilyA2Fv?*IeY zx!^fqSxDJg$wK!MIC}-mIQcL7RQdl^=5VvhzeevtI?T1b-d8 z3j8!!{m9O%-nYS6>+JWy^p(|`+W?LSo6v(Dfwk*}Hhd}bjoNUP>n(3@!&P2r!*4EY z!*^2m0Pq#yI6yEF-rG2Ww~NgZ21&g3i8F8FP58`zUR-208H=FTdhz8^8!|Qb9MC_5 zD*o&+d=}BqjI7_;(wFM)*>f=MpAnXO9%;(VbIYc}YPLOF)*7|{Gt6Z2=SdtrajwWb zRZsCJ&C{1(&GYQ(*puq(&-4(i5BcfMzvria=K5)p|K;%ItTran{T7)|o`fXc_WIJA z+~1Ls-(OR|f;I6v^jo3w#F{RPPfM?)&UZ$y86W%aW*VtwHvNTpJiNue&SVnZ9A7TC*`adu5)3B_t2C+&A|> zkV+@}dA8e`F=w=z`g6!>HubP^fu|cQvXVa~KEON2x2Qk8+`l7Xwq(yszYk<(>`2;U zeM07mU-7(b={unFj`Y0|{yho3Xnpxu;-Pehyqco6>#zAKKrmV)6JX`1=BN4QzQKKucvHueD>#( z8zVHCBL|YI=WT=6-KS(MNysZqb;#f!y$m+@w;$ZypUiCQHoAK+GRRU#^qyuc$w5pQ zij6&u1ECb?e?~E07;0kS`$6ekG6%7RUw&q{jluL7@JJ5RZtwY?uGSj^?KEVbi#ZnK3Fxplglu z4tK4wE_K%$?^<`QF}JyEjr(DDt+98xYmI-eyVe}`bNwM8r%HXRFMpP%IE-^JCgWn= z1g;@k;ooymJ$sfeUXSscdNWMDRbf3j3ihlK3(qL(_Ypvexn{A^>OU(#Z4Q`geTO%z zxi18_g7Gi1TfvLL@t`A!2X_O@fM(!fU{Tno#%g`$nDL*vWv|H1k#@7%t`!4`^G$O< zNAcA9iLubXjFYzxP=fzvj(3Au%gWD6Zi=DA`HVCAI8kZe-VVyFPZTq8Hg3)ORzFJM z>?H7Ju;Nhnfg8YEz|2?vK{ifgCQj`*BT`J=x7|y*^&MiN&k^M-I+2wb*K-Ap^|!&& zD`H96HQ-%f`jZ^8Iy-iNmJ@D^|Zs6+qf1NQ=t0FMLT z0Db_x1e^ul0i-mu0qIg3@CfiYpqIl7?fo<4E6GOrggg?j(T7=I}?y<`^)o?4>&vo{PRPr%c*EuU*UHN+*xf1i& zJkTdMr@_zN-nZUTqndVY*(-CMc-_kxw>qld-$A$As3V)?X@+}#eobm`n?}D{Gj^}D zYwQ?##{sPw*#wnK_XLuGKw}lC-sSE2d2ie@qL}GV>sr_9^JaIge%bF#zWScWwf1W5 zJ9gd2LVF-F$Sx|;R#yB)m|58X?0mL{H;eRK)$bEK$hYe&X4V?F#&-KXh%uNwZ5CMj z#BA_q!R$xb+rfHn5f2^+;z0wTy_VI>r^csoSlunY&uS0XJ}X>{M5gg(q_1anB4%tg zBr>(355oM-yo771a}#}jM7iv`-XBwH0FH9~1K=e<&kR2TCc&UaV4WD1OER%}3DR83 zyQvFeQ0HakD9x41%OyluHWk*_d;2r5UGhN#6|;1Fg4$~1PCkT>kSB~!W^jkgkGcF? z9R6d6|HIM!mBZ})rk>gmeAQumDRcjr!@qENvuo$y9R9iMZ!$bp{f&-J&*63dtfPC` z-5+syj-&q{SH8jJ-{bQC-nH|xE5FO(e|B^o?p{Wl|KM4NhajH;5~Jx{%DcJp^3M&# zUKQ#`VR?D&wA9&fW#!k_8p@k)ezCb5tUOw!E*QYtuvju9HJDHTk@Xit#kmG1(FEs> zpb?NQlD(8&lg&E{JO{i0oCM_modezi-UmJg^c;K|&;aN;?rNYF*beA@+`T{s$O7^Y zp8@0}@_aN5f=&rf_X9B(`wuy zKi1@E^=!6~*5ed*L|4gU9ibqR-!yq+6_xfnd ztUfNq*m?V+_$&UI3CMa{o9AdF>sm2J+7APdp5Ep=`hs;`Q)FG&c$;xoZtcm=)&v6& zd%h1_?$#48rFcEodAlZZIQH~5-_i5(il^7Pq9({4Haxw}cl4{V;n;#xj7heg|DfT* z_V8%V`z86`Ms6zh^|fHls#PtkSF~=Rw!V{ZQ25<^e{XZA1k)z7@6eHaQ1y2%^ZZ+ez=9G>8vB9<`-Be{aig2;O2` z-{Iy-+EG)d|L&x=Pm>1n<8#SWl84cLdoeF(`0rW<%Uf5jSh;2mn-R(PQ@r2F!N;!O z$>i~qXm121x&@d}g5l>bU$0rx6<74Y?ZJ0jKf8Q`>TNQGs`$ndczL>DH} z=^S~7%PB0=InXP7VVTZ)wI%B5obAWSk_{8tCf;1C>}?3{chrUT)#zH zEK{sjXCkG-GR0cA*`fhuiizSvm{eF#anDj^iftAvn}8QMSqwlreqEi1wiZzGdBSll zy67e_D#aD_=Tkcudbe)~ag4#f#yW&1BacJ!LL-;gR4yi`?|=t^|1Py-pJ#<-nizKR z;v~aBd!5=jyfe)oUWut5Yg!un{I-4T*|vfcbD#auUwrFtfA!D$UpevdAD#ct|6(Fb zw)CX-ZBBLf1xr#yko$ur{prpnd-(yAWO{dRU*|rX(cQy)OG`?Aw>!fB{85?KDzBU; zyh`d0#^FdCB^XrhCoP7z^$62S&3g!Ajc}YzZHv+W}cYSu|M-y|pVk zC9VBS`Tb}2+aLLzM)+Te@|5C3$-2WUq2X;kBB@gIzI^%1lZqp9|NBp0aGOH8-+!7< zoh{JS0nZa@cu1JdXA$`${rk_j!X_TW(IX%%V)oP~uoRl18vjDEOgUuo3#8rB=&8Vs zfc#tS(TeTJ&z%VnpH^&IacR!`rGEo_4rOzJd4PCyC%`jgy+?0&1Dk>@AJ2$iz$xGj z-~v#`U>kvTzz#ru(q4Fa0WAOfa-JE|M9CzNHY)#4`c@jv@|Wy2FHJ>0m6tz9*Q-JY zoGZm>NO?C`KK`rqA5G)&-zYZ?1yYbBOtxHQt@B9s%jdk*p83G`dHFzY@E-l z&iVg3bN+t{ZXKs>{)2O0`Wx@O=zBf|ahPhI|0kRC{}1V}!S#Fo!s#;oM$Y3K{O_V& zO8jS1(8i{>j=uE#QS+?JmYZj!zwOENrNn<}+U$>)7XP{4#D63QAOAVfcBTwJsulkk zm%rpSP|x$_ucN5qfAVYa{#Q>4-f5Ih`1s#mu1^9!U3&a)p#0ze?DRpgXfP~KM$n9^6tx=@nPRoq|4`QYqj0d~ zdTJfy=U6LQx_KeBN-E^9^$KGBqe3SZ!RIy<|8szz0sP1rj3>B1r?LpFpzH!G;u%)R zyX#vKY{ds@sswl|Gy#r`fQ#;2Ix z9AF+WAK*0v^XtE$QJGBKA|n4iLy&*(6_o#RxGec=+%nRI%ChBckg}gzWaXnzBe;($6md8KlzBrkMr0uq9<|XW0}y;Cwrle%zi3D zk5#?Y_N21vrMAJ*WGfwTeg6xb+YdB_$X1RNFM^fvWV}@8&~GRKQ)Vvl8INw{0kJon<(Sj%AQ^T1Lu5MfR2U;^ca3aTXoRh`NhdujnD*A>bk4 zA>bk4A>bk4A>bk4A>bk4A@KhQf&Khmjf3A!Rh-Y`J$HW#Q56e|jmQrCuiS(Wa~pquU+=(11qQh_`3tKyB1Y#d3t!s#x3!>gKzF$ zcgaT&{ayRQx4!l2(nrRgczES0&CkqwW!90lg|EFe@5B`&FaGFPo1Xf1@ZL2e2j2BB z&R_PugG*C)RJCvV{;W&C+WChMPTjmbmU+2%b?b+%8~xX<&n(zG*wCd?#PLjRM=7lO z_9)m0IEAR8%TH%Q2ewYVnuQif)@Q8%ZJ&a=Cf=IEVa=?=#aa!iSwbv+lT6!&U#?^rHre)OT(N24_&4L$Ms!tMHQjm@Z4Om6`43e!Tk{nz zxA+cKognrPRkfp9!TD)imJ!5Iv1|l(KT-699hT3Bnjt&RX+e#d2y0yt3-RzFLs?6yQ$o@tF8g?0vN%rshZQDPJevs?H;rRYHR%;#2 z&Io>5GJ@&_r#cNQJ7$MrQk!cq&-_6XV-GJ}=QRH>m<>)!mYR^=e4$z##oDU&X0&YZ z*ZCXUF;T+}0o!0*z&rtLk@W_xPHPA*pt|5Gz*3=VjFpev4Ak4pUa-7Ee35{5e0?%s zu%`rkSZFO}UwD#KaxJWhYt=#9F=xJ1upe;k`zZ>4>^x+l6^H$@{5ftOqM_?&26k%U zXJfdrTD_VTKJl|-u$Z&GHeEoggA1n=tHTRUR)aFz+cAGME@?G6Z2N_4t3u{XT&v7k zpkb}S4_J%m05AbY+^_ZZN@H-+r!evYmYWaB9+>e%`c^>- zl(aqA9AzoCekGx_9Oi?z2UC%ya|%*8rR@pZ(*A-Jk=FJgow@GLf;7rfBr8jAFGx>j zDQ*NTJzS8Yv9=;(aQDEc77j~T-Wuf&Fj2tINeKZesF_Jpf$HCRydx_6qJcrw1 zFYOm#HS|MFZ0RCxk+~c=~m`FZW_F&UDtjhOq+9< zoCFfK=bN7%g&s*?7qHSW-;SN?a7W0x0p;+583F5Xk?>^^YE~csrDmOui{lR94`W8M zmqD44HI21?>ta-}4Msy&5=_yeQtB@%-&kDv_Rp&z#Uw6IQ0h@>@<`H1Utl=1F)oMGUpw+1D zh=W!;OYZ&+fx5tS>jU(1s4mc?fizpkY_25;?gY!HiEc&+T&v5?tO6&`1ui5KbKD{% z=IYh#j1@#vdo1m42PS9yCK!^1(^-HS3+|T>d(HE81o23TTLZf#hx^+V z?x?gA=N2T)7EI3d@!t4**Iaw7``0h@-}{5z2kQ3!_%YV^p1ma=TfQ}Jj#&w#2S11j zyD@%hSJ!D=HK%xq7Nj9GdMH2DEE& z=i<&Kr=5B#%0vN5fkv?s&$))^7F_wEXHGnCB{L&Au5k+{=pYv6IUC~i4j#q8(wr3= z`g?Kx5d1+5ZccZ~L|1ZPT~;n?QtkJIPn6U6)%rKBvqr2eQzSY=lhxF0(wBBTZG;x^jV>=3;mhU zT8-RmlnKRiBJcqMpp#q!;`NF{U&IH4vY3B(Kdxx z8xM7dG|GoIgB}q22IPG3=$Z1Lsk9WoDh3LiA)Jc#tlKM`A9yhLHQ@q4jk)g%r_mI; z2iBeg$IsXGqN`EZW{?_%Yje2i!kr=9RNQ;m%39(0M^ffY;p*vR;cgPH0eCC)h!RG2 z$JDv-Y>mp%xI^fpLSF&ZXtr-X=tAE{(3o#C=%DX1(4=n&bhmFi=mFmj(1X4VEO0A@ z9`!Lj>}OgPU^^Q?|2B%@&<)Lpfw@BO3%8G+Q5umxU2Uw}M{g@F_~rH%hx-^@fPU_9 zL3K99ALS%+tc2)X;r7usbw0B3PKQf_3)80#H?A%M+V5d;CAzKoYw8mIos?6P_K7bw z)M|5dNIesg*jA*grQMG1uh4sh9w^dHp}%%???N|~mSHg`x{lsg&n>JP&jo&=Mi4>! zcrHM`Zp@B@QuCjbX5Vsf&A3b2z6{WG>L_p#aDFUI?r57RD%?JL+Bch;X_doO`z>mr zy$*Mt|4OXik2%~W{zg10eC%*3e>c|uW}c3~`bz&b;9hgM+x)*rvneX+ypIl{W|TJB zoS+n?yrX*tx;A>>;f@H`D9hnKIx5_`4)-(Rh8^yhaJSf;*leQ*99>IbHdgQF9q!b? zBAP={zV$khW}p@N3DziujtU(J@}7lVzNn~dOYE8!Sh<;ELi<6# ziZ@@DTr5-w|E|Dm0W`SS~HHnL-8ut#~2&I+!C zq&L_t+D#}Yf|n`x(C*-v(ni+@zoPsl?GNr(UZ6w4Z$R=0*1k5ecEq7S4Bkvf=(XUp z%1@~+)Qxqd*%wq7gEp)GLf3{CssBlLhnA@SP2Yj`9{QWmc`AF-qbkbZhX&OadJpnW z%*U(MPUQY|pfjX=n$UBE_6WUDXk6$eLK8xF((USivH`1CLP;rEWw&ypa@~-lp@{#h1@|ogOYt=?|mO59Rub!n|s9vmIrt0c;HLLpfa#ZbuuYV-# zEth_uZ(ukS%mMpaER)2SmJ{{vb`24oyV@KcOBv@=*^Rt&IF+JwE@4`!0V<>oHS*d4+Q?OEEq@vL6ug4nC=K0H^?C2yP z`*y*t0W+W6UJ;wsMlJ`B*Nqut&ZwQICW;%@t|UKV6+KG1W7w2V5zYZTevuC3neSwP zXoZnqi|3+5GOMQs$Fs(A(~4!YDW`8%_YZTN^5YYlWZulM1_9rYGpqqUZP<3qUCCj? zD)FFK&+D!iJ!UFp1D2zedTunY52Xyk7gW-0P&m$uLZsQvSSn>+VGOS~Q$~(@jZD%l z!-0~@YaKfnn2apJiNO|7QIZ4?fO_5-8K*>1f;bhNbP;b8#R!T77Tjx$vxfRJ$$U~z zC9jf!mkc;=3SGl*gzzITb2SjtXf_$H^5cniEu>Fiwv=^0=W}iBa2w z{>*l>dmJckPo@lssXb#mk>q0*5}>o#Q^Yi#Ht5FRQld;+2umzirsEc| zGHIa&v~Kcsk8fDt&(&Q4my3Mu9xo_*MvcVI{_X6a&i;v8m>Y%_PiA)ZXPk56SM-df@?%y7V}q7HY@~H-XN5LqcHByijONQ#2-@&iqJpBw zOlS4XczKJG=~b@oHF60nnPq6pm4nHAF%C{f_a^m`jG4pThnEz*XpZpOGtt^!0eX4q z(z986E&yYm)n*2FEX*5@1@dVGQ-v2*1gg+{Vws~6BfqsE&y~~?T|e%KYqm>qqn;Ww zXv|$t(QjdGWh-lSOYRHkE5qw;&!}!u91C^6V2F7A=7f}M40onoIxq3|O4Ogp<@HPg zNisZ4JB@L6rq@i2anjK$Qy=DB!`Wx&p;&eGu1x2}PvE!`m9yd!*Jmo0Pr7SBLe^fvYs50gvSenr_FX=Pl|4UB-6rlidWHaf&ahF=WDIMNzh%9g@4sS; z`WDe5Jj-VBCq+q0kWP7AP0CR2xSC678T2}($)NMFkE#Ub(WRu!%#ww+8CXfeo(_v! zVQm~`gXkRYsh@^X&PX5Jk0HI3O2?_p{=CW_memU+VV~k(yr<)hz07jcJUm_M@O&88 zW$=919(k3EgN@``jK~5mNsKE8I)P&fXqa?`gR0Aw^;2!3R!VT89v;W>EcObHE`l~! z0l7MkiAlS}WA=^CvaOa%Io4|@)hzR^su0T=J-{MCqwpb)SX$unD32i41YHU|kH5^q z+#W$>JG>d8F{ho4QVbG1GpLO{oZySCL~YdP#-U%1HFK2|9fuvTV`LA~&wCq!>+^yA3=~ zM;vSzr8Ln7wp5JBdi0rgyv?9C$Cz`EXL1~+40cl|&u%*#Im$^pYSSvUvc3M__C?d& zSaZZ(4}P<)imet+9_>Z2*hgz5YqCO@3!a?gm_c(YkJMcW1l1{hz$77&=bWOMrMx}Y z+?dc5p1;MlOZiE)8*<2}H2xT{%;+YNr8)79Giw5m$?Gaj8AXdcvixjBYZ10R&c=yr z)mn)^{G45Rr5!*9a(~pYhK6VdN(tE6AiYywv|N71ge(=yst8V?*gXdG| ziL173Y+3ToO+Kx@HV{>m`dWWfi9`ZXHNq5p1gbieW=0}VwMMY#toWkT%1UriiUgy+ z*4EbgT9g%3UV^g*XFJXi&PJRaIH%(5;#Skda7#ps`p^kmRhcM4RCKMV>fVFAv*_PT zbO0L%nhFAbeLS|9KkVS$;cvaZqvqygGhS~W-SnOJ?rPj|=OZ87d;hEY);Bx;qHbTy zlfOFQAAb40p6Yc6-Z*gntbg2f$9eg;=k4tJ;3$UAFU`>p#f0efx&B+b;U(zJGu5-GQI~TRJ$be0cQZ z)<1Y^_r|u*y8c`v$9t;Zz@xf2q6K|`E23(V04b4~7!K9fhJt<;&IF8*1OceVSkCl? zS%CtIQ27|!R-CvHScR-M7=i)*s{>_KYXyutx?-MtNLL2~^|k1}K8X-$ z^%vtzit&2AzO|mK!$yz|w$@)BX`KlPpY@lsH_a$CbGOsrz6v|jAehDi#76`z5VQoi z7yV&am#DU-1o&$a!gmFm;%X@1%>?%y`KS~99*uMov75HSo>+TWS{!wDMO0*sU;~_hsI%;E$-HI8Q3l@or@XZ`FnOT>l)N%Xc zxAL64r}O@%yHAR$Vy_GTi-1z_Z6oShsO{`Cq0VCLS9KLm{9g+AVnh)%?0p5^KS&jM zFtNkKyNJA3FnQ0c6FXnLlStGqey&2FBVvU|oW*!}cVGm2I(V}eAMNo>)U%NvM!PiH zS=hy4bnLo=;@=v_2Ji8(e=Zix$&LUbWADWse{XNXPaAW4KVuj>E4+&^8S^EAV`-hq zXimoROlcE?_q-31M)Xq{eH58j8imR2WUwCb5bzN25bzN25bzN25bzN25bzN25cpj~ xV43}Y#yx!c@0w$tKOO=e0v-Y$0v-Y$0v-Y$0v-Y$0v-Y$0v-Y$0>3Q;{s({EI1c~- literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.Authorization/bin/Debug/SAF.Configuration.pdb b/SAF_VS2003/SAF/SAF.Authorization/bin/Debug/SAF.Configuration.pdb new file mode 100644 index 0000000000000000000000000000000000000000..486270dd4be55f0b21676f82b00b488d2d6a88f7 GIT binary patch literal 56832 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 NI2Q{(U1rCD{|}|F-Fg53 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.Authorization/bin/Debug/SAF.Library.Security.dll b/SAF_VS2003/SAF/SAF.Authorization/bin/Debug/SAF.Library.Security.dll new file mode 100644 index 0000000000000000000000000000000000000000..fd6b0addc4b702d0494819cf26d3e4c79d75a346 GIT binary patch literal 16384 zcmeHNYitx%6h70I@+hs8hqWz_S=%B6GPcmjOJTQNpoN7#rk01*c6N8VopyF+nVChF zps6AV8VCveKoP+Q5(5ztluAGnHGoK?iTFU2Hj0r13>t|@jns4R?9%Nc7=I9ccyD{Z zIp>~p&pr2>nRL!f7cAWbi2#sOBRrQ;V>#B&dp;~B}3Q>G43KFH~|_65j|TS zz+fEvoCg@$({?Kz{RhO^2cTXOrwf+60#k%7xXsvJ>^!@icz`;=Fby9L(cGLUkiGEO z51B?O20AqkLz!+c*Fa{U{|04!M zq^`zBYSRSlbq;_tSTzqMgK@2#2U=Rk4fQF0_S<8#ra3Eiyt(pH=AI4mx>=E}6SDW# z`yI*0PKH)L@x$-?5=stzG`53p9h&~~TbobiWxaT9{hBdz^4=)f;;$cHf9Cy3U+1+h z^IqS!BjqXMi`i?RZ#X_9?8x4_`|q}66Gj~(mbO3^Le_2KSMM{IAJcW}zPpX{8L(J~M1?&&q6 zYfi1GhYg=xj4vptS}jh>&!0?0(gly=H6$YjO@6mIT_=sD})CX*A1V~~oSa6n{oBzj6zCu0DEqM0Rw1zt#o%@p@i zJVCLY;&qC{IpT9a#S)4V#b%1zDW2dC($IE%vh!DPogA2s7~=upc)zl!#=$vsO~Abm zgbgqh(kW&lW`Kjr<0%$UoJP?_v6Ny3#U&IaiVEUL5OAj-BMyU8h}l%0OmPOqVv6%A ziWDEA=%d&K?U2-LGlz*&mhO%20bt!QGDi4bVhaQxT%h~Isyq|=x>y9iszRwNY&GbH zvQn}XT`M>A<%(Z6`t*mGs|-QYryHu`1us8rDB7n;@<)BxM%$FkzrJ(Gx z@UroSEg1x#r5o|)If@!*j?Ht+suU5GfYvoLW~!DA6PM_1C=RPu*ytlzl_B}%pky@l zF-H$Y3?+3G{{zNZxoiNmcd7Wq+lv$|m?_O^M0ex^(f}JIS8auig!XKj-deCS^+`O(r4dNzho*#t=ADp>FD0Aty&qmO$>gR)y;5`)kT;d&{@8Z5 zaqx4U*=NT!EZ%c*`|!q>_Fs8@_m@)bxrs;8*Jif-mG$GbeZ?siTfW^gbM#NkUwFtm ze_vC6M~i#*Ofln|S!HvtmAy9QwCBLd(MyGjjQz&0^R9{m-%ssm=M-BMeu8*WuyASs%CamzBjJ&0Fl9>z-V?$0#F0AqkLz!+c* zFa{U{jDg$706z9%@Oyfd`gY}ppOc%ruT38o>AQo)PONXSHjTBxiG?Uug9x>Vv!N2D zQYeFksFxznL7B9pNmp*z^_3kfR&&jwR{Og?c}$LPZd5poDuID<6i`9Nm>SfBPTg|J z!!%T(Rl-pd?Go0v3R<;jn75Nu49a0n7J4Z-9_S-d3H8ax&*=6~Ay&cUlln-kS2-xg zctQM;akho4*pI=vakda$KZ3iJs2^FJ$3Btz#4>kd1QUETk5IQfiElps7Xf!Ow`%k? z(7S6d1z6qY-|S@9ndnd0u&A$wYpZb?h~UC#0(dZnmoj8P1a%R;eGsNuSaigX^Hj_L zU>wcYgB}4IjqE&xK7_ddG~i0{`|9$u&wwB21#zAMO_U|uw}$3f7L7s90Le4P3DF3% zfO-A*eC=~kjsq0_y?^0VJ83p literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.Authorization/bin/Debug/SAF.Library.Security.pdb b/SAF_VS2003/SAF/SAF.Authorization/bin/Debug/SAF.Library.Security.pdb new file mode 100644 index 0000000000000000000000000000000000000000..0bbf56f5436b9b5b9d2f66dd26b047e16c475917 GIT binary patch literal 9728 zcmeHLJ5Rz;6u$W4;RB5^MkeBl(lUXQ1I9#zLHPv;B@mP*MdJ_fFSwepIk;+KoQ#|L zUnCB$)br6^(ufUAO3OLn^pxA1^q%iL?sr?Lmkqt8SI^^FC7VdZ3&s6-I;pCQk=R~Q zkWBS{VwG-d0SpMSXc@lx00H&OWSL+DLT?l7JiBgQhEstI`q;9qWWvHUsqI^1uq?hs z03{F$E1%Lq&A!>N?Urr1R7?{k5+$7`ogwmG#f(zrpwp z8$tZhCxIopo|k&SF|C*5KPFeasYdmo4{)){~L~izh@xE=<{BzbGI1F z{Xa_+{$~GoTM3W<2Lgxm(!7KJ^ZxJN!({z05oYpqq_@2$e2rvSS03$GY2z&!| Cjb9P~ literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.Authorization/obj/Debug/SAF.Authorization.dll b/SAF_VS2003/SAF/SAF.Authorization/obj/Debug/SAF.Authorization.dll new file mode 100644 index 0000000000000000000000000000000000000000..c9d09de15ca3de6257da4d17f5c51658e6370a12 GIT binary patch literal 20480 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 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.Authorization/obj/Debug/SAF.Authorization.dll.incr b/SAF_VS2003/SAF/SAF.Authorization/obj/Debug/SAF.Authorization.dll.incr new file mode 100644 index 0000000000000000000000000000000000000000..b3ca5bef1f5c8907c291d19560815d42594dfed0 GIT binary patch literal 2154 zcmd5-J8#rL5FTH6C8VZ9T8R!R7P$}*Boexu6SyQmNC;3ILiX8C41OSckH<;Cl^{Wb z_yY(eegQ2pT!iQ-pyBZYD4<9O9p9|a$psNQ3~P;dcXqw|&CECBTG)u4zzL=4i;1S^ z+rluVDcmR))qSEG1y?=aiN(;6kjq{oT+Bowqu5D=%^PJToY1tObsX8F3Ut?K7&}-F(g>CD z)N#&Dd@ZprfZiq_4>yfp@4mL4et4yox)8^qDhi1K^b*pGNx|3?+-2{4>|z=#5Yq*C ze0CEe4pDiyb^B4estsbyZ60E)crAbdQ*;SFj;M(kG~neb#x{EPe71THqcR=9GqSGD zS9R=Z!Vk+Th90$)S3Jx@?6nYo?hTx0Vc*jF_qw_#1SdRb`EK@R_Fb<>w*hPV^2;s8 zuOg25;(vjE7HBPnI|f5__{f3(*b)zxux5j++ku$eV{6afcC?FXLUaVGzsJ=8Inz)v z@fFS-&HD%66&GH+YpQ4e=8d_++%O8^Mg;F&-hvxjb1JtZ=fWo#kk_X+&&)rzVGgKc@XAvR%WEdH RiV>$k{tyF{nUaPS_z7DzZrK0; literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.Authorization/obj/Debug/SAF.Authorization.pdb b/SAF_VS2003/SAF/SAF.Authorization/obj/Debug/SAF.Authorization.pdb new file mode 100644 index 0000000000000000000000000000000000000000..49b4933b55e4fa549808b732ff65f18aef714736 GIT binary patch literal 32256 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 Z=ZWVwesn#j|Ap=9&YkM3ORBxB@;B2>7JL8z literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.Authorization/obj/Debug/SAF.Authorization.projdata1 b/SAF_VS2003/SAF/SAF.Authorization/obj/Debug/SAF.Authorization.projdata1 new file mode 100644 index 0000000000000000000000000000000000000000..a32a06bf22f239b70d151a397b322c63cb6de56d GIT binary patch literal 11016 zcmeI2&u>&!6vxjLDPyg*5+tC3Jd43nU@$}zQ)`m~Vn~b-ibx_R(CHx6&a|0n`4xkW z3&X;=(U`bl#e#(k7cK}(F)n~53zvov{{Z8{7!&<`?|rxLP3K3ai1F8Z&F#JKynD|* z_uTWl{bFN(zRP$XG8NL|NpPICnvK~!m`?Ln1%AO!@;2r09|AICXLy@rrz)$f>^#hFdc;rcWbwc*^YSDIJ*_uOJ|w0^LEHlUgoXFk3W}jo|T`& zpSctKf%2giG>t*ooTG5U@xH_D$vu-xrbfo#_UPPR~|OIgz!q9uhH_1hhuntquK5-e#~nK zukN`dr2qP7ffK0d^g7WK^wQ)#w4Z2R+s!UAj?IK^0GR%^pLehIW?v@Xgwnp}UHJ5j z07E29lV)VkF!d)tK?QiO*KE6gEZOBTyFbScIb09s?2IxMYFYa@1Ba$ z+z8)hpl#G1wH_Pc^z)ojtE$MhhsxFkJdxvpx2%&EISUlA{v^6E?f4ZrdL!1)v$L$O zxE5iRPt#Wzounlzs*6};J2TPcx#9tyUrC#IB~i7_nW895dUD_SdYnRLPViHDaAS zY=xP^A(@VBuqm{R1jEJZbv=);^v zdRF7hsH4E|BaP8|VGy^A?#!|sq9V~L@l3iIuxOPuH{h3iCzJ%MkU;8bQv@aKe+^}6 z?9J&)>mo`dMY3*e>mmA4nx3PyZfxym^wYGC*^Ks_m}Cv z&jq|Mzdy_LpVa>zv#-ej6y;0*f6Xz#Z1pVKd>>z~B+J@S7ey}3<;L&@A@`ME-;4*Y z&nD9|LIf#GIY4$K-{|AdX3?pliRI?_NOJ>zyg3Hq4BLK}?chNYV=F%Hv%5s3%g3ia z67b%82JfXfKqr=$3~{8-_I*663_8RQ5wp_JR?%bFqj~hwn4S7)x|0|Zhv58{1fee; z(-E(GU-mJ5@MWJnST6S){dJn2ZWeai)3#PUP1#b&TpHs~MGGObNivZxc(3ZqESwP) zVcgN(U6$AFr*fjGqHM=#lAhg5AcGBZ_X_i5x%~}DHWeM#%VzzYAf0)l=C3-+UFxao zBtG41uMuShxv4>qqP%ebiVz!RY=+1*a`9brDOUtKVeh)L37a%(X@=BZVp>IDqAy(; zs^^zt#6bBucP~pL!{lV0O160DD;|o(brN5HT0TPSwIlE$$VY$b&C8jy1iD(g-ciPp zU~6};iiFEZ_LP%0Wt)>Odkisg`g?Mk0`rpGLwBxK$~bjT%3#||>e3rm_AAX(CaN7} zb9`)`Wu8_|UmbYon74Sv79Cy;x z1+5KUN|kKY1jaeRgyYzp9mG1AJ=YXI*upQ$8mgAlwO!`5*VPz8op)>Mt=;-w*1P5I z*E)8R)cGt~R%4Dm3QeHxafU2Qk%S-9xq5~wpM`iVm|`4dV^#VSG(7=!lkqtRF}p*r z3{CUy(SD)5$f*T;pZ=H}49|x#>>B+iG3=WdHiX%@!}xjnA91N#+f9-1XU6^Xx2e7g zww`+5J;r(>#)2KCFVOT%reGIhnE&!%elI|ynkv5eEm{4sllU&HKPI(U*`UPMti1lX zfb8#!{}Q46BZ~*+f0N3fYR2_GEQ<%z@n!p1B<(M=crcyaWbvRP%q$*MY@5Y{|KE5p z_+Q0;ng4B3 zGx=Zjdh}Nq{qNZ9r!T#*>4O`&i@cxscF2wO|7JhT9(3b#Ea<=W-Q%|}+{gi@dgOUe H*U|F_CPs&w literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.Cache/AssemblyInfo.cs b/SAF_VS2003/SAF/SAF.Cache/AssemblyInfo.cs new file mode 100644 index 0000000..9f89a32 --- /dev/null +++ b/SAF_VS2003/SAF/SAF.Cache/AssemblyInfo.cs @@ -0,0 +1,58 @@ +using System.Reflection; +using System.Runtime.CompilerServices; + +// +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +// +[assembly: AssemblyTitle("")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("")] +[assembly: AssemblyCopyright("")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: + +[assembly: AssemblyVersion("1.0.*")] + +// +// In order to sign your assembly you must specify a key to use. Refer to the +// Microsoft .NET Framework documentation for more information on assembly signing. +// +// Use the attributes below to control which key is used for signing. +// +// Notes: +// (*) If no key is specified, the assembly is not signed. +// (*) KeyName refers to a key that has been installed in the Crypto Service +// Provider (CSP) on your machine. KeyFile refers to a file which contains +// a key. +// (*) If the KeyFile and the KeyName values are both specified, the +// following processing occurs: +// (1) If the KeyName can be found in the CSP, that key is used. +// (2) If the KeyName does not exist and the KeyFile does exist, the key +// in the KeyFile is installed into the CSP and used. +// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. +// When specifying the KeyFile, the location of the KeyFile should be +// relative to the project output directory which is +// %Project Directory%\obj\. For example, if your KeyFile is +// located in the project directory, you would specify the AssemblyKeyFile +// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] +// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework +// documentation for more information on this. +// +[assembly: AssemblyDelaySign(false)] +[assembly: AssemblyKeyFile("")] +[assembly: AssemblyKeyName("")] diff --git a/SAF_VS2003/SAF/SAF.Cache/Cache.cs b/SAF_VS2003/SAF/SAF.Cache/Cache.cs new file mode 100644 index 0000000..628d875 --- /dev/null +++ b/SAF_VS2003/SAF/SAF.Cache/Cache.cs @@ -0,0 +1,241 @@ +using System; +using System.Xml; +using SAF.Configuration; +using System.Configuration; +using System.Collections; + +namespace SAF.Cache +{ + /// + /// SAF.Cache is an object caching service that + /// present the cached object in an hierarchical structure. + /// It uses a pluggable object storage mechnism or cache strategy + /// to storage the objects. + /// + public class Cache + { + private XmlElement objectXmlMap ; + private static SAF.Cache.ICacheStrategy cs; + private static Cache cache; + private XmlDocument rootXml = new XmlDocument(); + + + /// + /// Private construtor, required for singleton design pattern. + /// + private Cache() + { + //retrieve setting from configuration file + ConfigurationManager cm = (ConfigurationManager)ConfigurationSettings.GetConfig("Framework"); + //load the cache strategy object + cs = (ICacheStrategy)cm.CacheConfig.GetCacheStrategy(); + //create an Xml used as a map between xml expression and object cached in the + //physical storage. + objectXmlMap = rootXml.CreateElement("Cache"); + //build the internal xml document. + rootXml.AppendChild(objectXmlMap); + + } + + /// + /// Singlton method used to return the instance of Cache class + /// + /// + public static Cache GetSAFCacheService() + { + if (cache == null) + { + cache = new Cache(); + } + return cache; + } + + /// + /// Add the object to the underlying storage and Xml mapping document + /// + /// the hierarchical location of the object in Xml document + /// the object to be cached + public virtual void AddObject(string xpath, object o) + { + //clear up the xpath expression + string newXpath = PrepareXpath(xpath); + int separator = newXpath.LastIndexOf("/"); + //find the group name + string group = newXpath.Substring(0,separator ); + //find the item name + string element = newXpath.Substring(separator + 1); + + XmlNode groupNode = objectXmlMap.SelectSingleNode(group); + //determin if group is already exist?, if not, create one. + if (groupNode == null) + { + lock(this) + { + //build the xml tree + groupNode = CreateNode(group); + } + } + //get a unique key to identity of object, it is used to map + //between xml and object key used in the cache strategy + string objectId = System.Guid.NewGuid().ToString(); + //create an new element and new attribute for this perticular object + XmlElement objectElement = objectXmlMap.OwnerDocument.CreateElement(element); + XmlAttribute objectAttribute =objectXmlMap.OwnerDocument.CreateAttribute("objectId"); + objectAttribute.Value = objectId; + objectElement.Attributes.Append(objectAttribute); + //Add the object element to the Xml document + groupNode.AppendChild(objectElement); + + //add the object to the underlying storage through cache strategy + cs.AddObject(objectId,o); + + + + } + + /// + /// Retrieve the cached object using its hierarchical location + /// + /// hierarchical location of the object in xml document + /// cached object + public virtual object RetrieveObject(string xpath) + { + object o = null; + XmlNode node =objectXmlMap.SelectSingleNode(PrepareXpath(xpath)); + //if the hierarchical location existed in the xml, retrieve the object + //otherwise, return the object as null + if ( node != null) + { + string objectId = node.Attributes["objectId"].Value; + //retrieve the object through cache strategy + o = cs.RetrieveObject(objectId); + } + return o; + + } + + /// + /// Remove the object from the storage and clear the Xml assocated with + /// the object + /// + /// hierarchical locatioin of the object + public virtual void RemoveObject(string xpath) + { + XmlNode result = objectXmlMap.SelectSingleNode(PrepareXpath(xpath)); + //check if the xpath refers to a group(container) or + //actual element for cached object + if (result.HasChildNodes) + { + //remove all the cached object in the hastable + //and remove all the child nodes + XmlNodeList objects = result.SelectNodes("*[@objectId]"); + string objectId =""; + foreach (XmlNode node in objects) + { + objectId = node.Attributes["objectId"].Value; + node.ParentNode.RemoveChild(node); + //use cache strategy to remove the objects from the + //underlying storage + cs.RemoveObject(objectId); + + } + + } + else + { + //just remove the element node and the object associate with it + string objectId = result.Attributes["objectId"].Value; + result.ParentNode.RemoveChild(result); + cs.RemoveObject(objectId); + + + } + } + + /// + /// Retrive a list of object under a hierarchical location + /// + /// hierarchical location + /// an array of objects + public virtual object[] RetrieveObjectList(string xpath) + { + XmlNode group = objectXmlMap.SelectSingleNode(PrepareXpath(xpath)); + XmlNodeList results = group.SelectNodes(PrepareXpath(xpath) + "/*[@objectId]"); + ArrayList objects = new ArrayList(); + string objectId= null; + //loop through each node and link the object in object[] + //to objects stored via cache strategy + foreach (XmlNode result in results) + { + objectId = result.Attributes["objectId"].Value; + objects.Add(cs.RetrieveObject(objectId)); + } + //convert the ArrayList to object[] + return (object[])objects.ToArray(typeof(System.Object)); + } + + + /// + /// CreateNode is responsible for creating the xml tree that is + /// specificed in the hierarchical location of the object. + /// + /// hierarchical location + /// + private XmlNode CreateNode(string xpath) + { + string[] xpathArray = xpath.Split('/'); + string root = ""; + XmlNode parentNode = (XmlNode)objectXmlMap; + //loop through the array of levels and create the corresponding node for each level + //skip the root node. + for (int i = 1; i < xpathArray.Length; i ++) + { + XmlNode node = objectXmlMap.SelectSingleNode(root + "/" + xpathArray[i]); + // if the current location doesn't exist, build one + //otherwise set the current locaiton to the it child location + if (node == null) + { + XmlElement newElement= objectXmlMap.OwnerDocument.CreateElement(xpathArray[i]); + parentNode.AppendChild(newElement); + } + //set the new location to one level lower + root = root + "/" + xpathArray[i]; + parentNode = objectXmlMap.SelectSingleNode(root); + } + return parentNode; + } + + /// + /// clean up the xpath so that extra '/' is removed + /// + /// hierarchical location + /// + private string PrepareXpath(string xpath) + { + string[] xpathArray = xpath.Split('/'); + xpath ="/Cache"; + foreach (string s in xpathArray) + { + if (s != "") + { + xpath = xpath + "/" + s ; + } + } + return xpath; + } + } + + + + /// + /// the interface for cache strategy. + /// each class that is pluggable to the SAF.Cache must + /// implement this interface. + /// + public interface ICacheStrategy + { + void AddObject(string objId, object o); + void RemoveObject(string objId); + object RetrieveObject(string objId); + } +} diff --git a/SAF_VS2003/SAF/SAF.Cache/DefaultCacheStrategy.cs b/SAF_VS2003/SAF/SAF.Cache/DefaultCacheStrategy.cs new file mode 100644 index 0000000..1e63ce2 --- /dev/null +++ b/SAF_VS2003/SAF/SAF.Cache/DefaultCacheStrategy.cs @@ -0,0 +1,51 @@ +using System; +using System.Collections; + +namespace SAF.Cache +{ + /// + /// the sample cache strategy implementation which + /// shows how you create an pluggable component for SAF.Cache + /// to customize the way object is cahced and retrieved. + /// + public class DefaultCacheStrategy : ICacheStrategy + { + private Hashtable objectTable; + + /// + /// constructor to instantiate the internal hashtable. + /// + public DefaultCacheStrategy() + { + objectTable = new Hashtable(); + } + + /// + /// Add an object to the underlying storage + /// + /// key for the object + /// object + public void AddObject(string objId, object o) + { + objectTable.Add(objId,o); + } + /// + /// Remove an object from the underlying storage + /// + /// key for the object + public void RemoveObject(string objId) + { + objectTable.Remove(objId); + } + /// + /// Retrieve an object from the underlying storage + /// + /// key for the object + /// object + public object RetrieveObject(string objId) + { + + return objectTable[objId]; + } + } +} diff --git a/SAF_VS2003/SAF/SAF.Cache/SAF.Cache.csproj b/SAF_VS2003/SAF/SAF.Cache/SAF.Cache.csproj new file mode 100644 index 0000000..795574e --- /dev/null +++ b/SAF_VS2003/SAF/SAF.Cache/SAF.Cache.csproj @@ -0,0 +1,110 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SAF_VS2003/SAF/SAF.Cache/SAF.Cache.csproj.user b/SAF_VS2003/SAF/SAF.Cache/SAF.Cache.csproj.user new file mode 100644 index 0000000..686cccb --- /dev/null +++ b/SAF_VS2003/SAF/SAF.Cache/SAF.Cache.csproj.user @@ -0,0 +1,48 @@ + + + + + + + + + + + + diff --git a/SAF_VS2003/SAF/SAF.Cache/bin/Debug/SAF.Cache.dll b/SAF_VS2003/SAF/SAF.Cache/bin/Debug/SAF.Cache.dll new file mode 100644 index 0000000000000000000000000000000000000000..a875b3b167dcbf8c1ace9e6f02f1613dfd1db16c GIT binary patch literal 20480 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 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.Cache/bin/Debug/SAF.Configuration.pdb b/SAF_VS2003/SAF/SAF.Cache/bin/Debug/SAF.Configuration.pdb new file mode 100644 index 0000000000000000000000000000000000000000..486270dd4be55f0b21676f82b00b488d2d6a88f7 GIT binary patch literal 56832 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 NI2Q{(U1rCD{|}|F-Fg53 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.Cache/bin/Debug/SAF.Library.Security.dll b/SAF_VS2003/SAF/SAF.Cache/bin/Debug/SAF.Library.Security.dll new file mode 100644 index 0000000000000000000000000000000000000000..5ca26adec0303738c54d6a8dec6f8f17e9e8d5ee GIT binary patch literal 3584 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 Qnkc!(uH0=96<-1W0=BRV*8l(j literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.Cache/obj/Debug/SAF.Cache.pdb b/SAF_VS2003/SAF/SAF.Cache/obj/Debug/SAF.Cache.pdb new file mode 100644 index 0000000000000000000000000000000000000000..1cbc98d8075e1a293396892e71b43f22ab96dac5 GIT binary patch literal 22016 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 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.Cache/obj/Debug/SAF.Cache.projdata1 b/SAF_VS2003/SAF/SAF.Cache/obj/Debug/SAF.Cache.projdata1 new file mode 100644 index 0000000000000000000000000000000000000000..98e1e8ca10394b187cb73886458f454c161985ea GIT binary patch literal 4872 zcmeI0-;0!G6vw}>y6Zy2Fo|y4FfFUaqWg9OV)hS&R}o!wlb`SNKCka++cueck#mMK=RD^*=RD7Q zo^#Ig&YXL`)U!muGU>O(jPxhaG|xn@_GpW0I;4iG;k%AR>QbuQWu-7)8Yzy#xGT_p zZNvTp&1gUN(|DOk4>oxtO?CN*`BjTJXci*wU-?qC0d8rf9>9LcJr)5U@zhB zc}7|TUm(QuOq4U8u}|SF*aJTS4f@YY&Qv8nz!()ic!dF6!if-lo0}Gu<1GrPKlmYWe$uigbovbpPJI2{tc=C#qq)R_l-~)hLl1 z)ayJ)Bknj~Z5rvEKGjE9RnZ=5OE2}j9M8kvC|z?>`}n-u5>u&v0qI&+89~!K>(c0w zq*y_3N7&mOyQs34>H~gWT6EqX?QNMxlS;81bPp1r)K8Pdseo(H@cq*{f8U2s&-v#y z?ndK0%X1^2Yt5mgIJjuOy+xMRsU(rdi{)*mm-!~!lNTyQy2}0U$vy``ziYYwT=jCS z|KB?1gIzAqWU1XOf0SJ}UaH)TiC*Oa`}~x^CeX4IP`}+9PJxzPfqr4Z;{{@Uh4_!N zisSz#yyM?T-Q`i+Nxk?z*>$*5Z!oG;J&hKr@9he+|K^uKNekb_|F5(6?=b?(iKbCD zZ0ljH~0cV!EOAOfYLqn78jDTf4`26!T$8+aC zXt^so_rXIa*&>Ebve*6J)!_W=^#3Q@|C_}970_MD@xSoirE5POzntu4d}jCUoj=2S O&RxunhQB`^Dcl7. For example, if your KeyFile is +// located in the project directory, you would specify the AssemblyKeyFile +// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] +// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework +// documentation for more information on this. +// +[assembly: AssemblyDelaySign(false)] +[assembly: AssemblyKeyFile("")] +[assembly: AssemblyKeyName("")] diff --git a/SAF_VS2003/SAF/SAF.ClassFactory/Class1.cs b/SAF_VS2003/SAF/SAF.ClassFactory/Class1.cs new file mode 100644 index 0000000..2b966e1 --- /dev/null +++ b/SAF_VS2003/SAF/SAF.ClassFactory/Class1.cs @@ -0,0 +1,46 @@ +using System; +using System.Xml; +using System.Configuration; +using SAF.Configuration; + +namespace SAF.ClassFactory +{ + /// + /// class factory service, used to obtain the abstract factory class. + /// + public class ClassFactory + { + private ClassFactory() + { + } + + /// + /// Called by the client to get an instance of the factory class + /// + /// factory name + /// class factory object + public static object GetFactory(string factoryName) + { + object factory = null; + ConfigurationManager cm = (ConfigurationManager)ConfigurationSettings.GetConfig("Framework"); + ClassFactoryConfiguration cf= cm.ClassFactoryConfig; + XmlNode classFactoryData = cf.GetFactoryData(factoryName); + + //obtain the type information + string type = classFactoryData.Attributes["type"].Value; + Type t = System.Type.GetType(type); + //creat an instance of concrete class factory + if (classFactoryData.Attributes["location"] != null) + { + string location = classFactoryData.Attributes["location"].Value; + factory = Activator.GetObject(t,location); + } + else + { + factory = Activator.CreateInstance(t,null); + } + return factory; + } + + } +} diff --git a/SAF_VS2003/SAF/SAF.ClassFactory/SAF.ClassFactory.csproj b/SAF_VS2003/SAF/SAF.ClassFactory/SAF.ClassFactory.csproj new file mode 100644 index 0000000..c40d2f5 --- /dev/null +++ b/SAF_VS2003/SAF/SAF.ClassFactory/SAF.ClassFactory.csproj @@ -0,0 +1,105 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SAF_VS2003/SAF/SAF.ClassFactory/SAF.ClassFactory.csproj.user b/SAF_VS2003/SAF/SAF.ClassFactory/SAF.ClassFactory.csproj.user new file mode 100644 index 0000000..686cccb --- /dev/null +++ b/SAF_VS2003/SAF/SAF.ClassFactory/SAF.ClassFactory.csproj.user @@ -0,0 +1,48 @@ + + + + + + + + + + + + diff --git a/SAF_VS2003/SAF/SAF.ClassFactory/bin/Debug/SAF.ClassFactory.dll b/SAF_VS2003/SAF/SAF.ClassFactory/bin/Debug/SAF.ClassFactory.dll new file mode 100644 index 0000000000000000000000000000000000000000..3532fc8b6000f1cbab0edeeaac5b6226d0e1e432 GIT binary patch literal 16384 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 MI1+FqPb%7 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.ClassFactory/bin/Debug/SAF.Configuration.dll b/SAF_VS2003/SAF/SAF.ClassFactory/bin/Debug/SAF.Configuration.dll new file mode 100644 index 0000000000000000000000000000000000000000..f5b38bde2c2e1982932789c5a7a917d7ffdfd3eb GIT binary patch literal 24576 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 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.ClassFactory/bin/Debug/SAF.Configuration.pdb b/SAF_VS2003/SAF/SAF.ClassFactory/bin/Debug/SAF.Configuration.pdb new file mode 100644 index 0000000000000000000000000000000000000000..486270dd4be55f0b21676f82b00b488d2d6a88f7 GIT binary patch literal 56832 zcmeI5e~^{cndjfe%e7IG0S65z(FOt0AapkkG{$KE79uDDCTMV^>Apb6{z1AMg;~qF zspyQmF|}A_s+=mFF*BrMc9Rri+}VtaTTIHGF~&cf8O@R^YC>(fyO?!Gy+>&VA4C=bZDLbDnd~`)=;*86FxL+A~_$zN-BTU#Q!>t*dU` z%KG}xTySZ}wg@xB{f~yQ&OT2MqG-^Q>A#-_4m8(o`M2NvzaLJUbCUy)fAfkc@xW}~ zlGEoV56Oj#5dR-Cj9vM0?tdx3FD$U*Zjx^TSuP#uy?gOLyC|(&Qt1$AR;l4jC$+ZgN z?&@BD4%i+_V;A=qBZ&(^7!EInG&>Vd`xE*{2d=*>{t^jr5^I#Ex^%3lj zE(E^^B<|;eeDYuUqPjBjU%&M;m+INH`DAk-F6evuyGKU$boY!74Ie5dr^^&ASy9JF z6h!&p=s@=%bht99RWR!6#X5Xw|LD-(;qLwWs?CcDji(jx`Yeu?g$D7@(Fv9TNsX=t zhSshOo#Ho)1Plt%BB&(KZm8B8l01@Pe?fpgXfI;zV(4NZNp*k`Vm`DRcS)+BAo_kE zDzT)n7vrupzsB>6pceohMW=%O6@Dzh{sS-z{2A$f2KpT7TmqGmBwb2;l7_SRF%Oyo zl9K0+sn+=42+LN3Ca?yq1?zy;7VE)v;EUjT@Fj2qxDm8~R?r68K?mprUEn6L0c-?c z2AjamU^BP{+zPgUg<#rL#(`?pzj|$aev)qvq8_T=sGg`^tsbvlte&pkdKtJBOq-96 z1J$a3_0v*Vj-UH!1P?PLEJ5-fL@Ljt(exvIU!Va!%(D{$_IWgv>2-o;+}?<{{a^rC zKU1Hp1sX}a!EVq4dVxl=Jzy`;8bIrTMPLb73YG!M>}u8jwZx@Se-${JV}Rtp#(~^1 zpxAn72mbE>T1V{!T1(vp{s7z!b^*--vSyX%$o#Kb^*=rTqXB&aO||MDvCS-e$=q#+ zMn+Qzsn2HYD|ZYaxGvG})~=Q9@r58^lKwd>honPWbd4tX(GJE28O;;ST!nY7CX`mR zH8nci$5QGxDFrtU?im^$aB4Q3E{V>Ydlo8PvDKqove=29(?=1)g`ITGT?|h!;`h7e2m0R5JzsVEte+qu(7Wb>QbZ)$4GqcW) z`~7Dea{WFX$|kpJ)&D!BFPSSdBdT$8G})z@c~BM%bF8%1c*x}R7occv(waB24opjD z@UL%uke1GXHDOwM1J;D;7AR}NbSIQ`ep-3}WM4Xgh9JRgHo?qxrqd)yBG1Qu8JO$r z=kfOp{%e8iMn-l`pvC`b6GdN#2|CwvDT@j5Tw+Olxswj@BF{HquNEdK@}|AVIG{R^ zjG7J9bXhWI_H?xVE4IdyUT!9k?nV7k^C4+L^XXpbn{I-$78I^y@&sPX_h7kA5er{ww-EnHSaiOY~wgFS>yCC;A2%6@4hsMS;E%!Zif?T8Q_D zfqsWD3TJ4=BK!Lx{7gE&ejf;a27>#Vkk97>y({GB+K?aVs1)w`kj|r4o{*2;GiC#~iS_@FB`f${CCNwq(cOqGvL7?yvsD%9qYO zEM+0TGJ*IX`kNrZ9HSDc;N$$ZIFB{Br*qsDB-_YScv7wL-$&OHVl7Q1$E5dN0_uVG z1vY@~U>DF__aJx>90pH-r@^ye1qEyd9bgO4x@aF51uFa_;BjyS90kX~i{Mpo3cLy4 z1qt{t2P_23K@(^Jo4^jx3v_njejwfCW8f+9Bk(iu0(b?S1gF6nAmOa>RP&1^pdMTg zHh}G57w88E!GmC`O?B&ktTdOvUm2tR*Vx}49W5FuUoX%Y*3z}&F$NVw#?Wt*SHMe` zawvQbh$aOpT*0_%*_$btS* z?SR(JRXG@=LpgKAsF?MI% z4x*T;R{bm8VtidZrVrYd>NzmnH+pDgdrZelaIYisyx+cWIMv5jIgx`%uA`Q)WKYCE)Lcu1$-x?%FI2tMXUTqcNuGYDHgCE{iO3B|kc+$k&Q0x0cK>VC)zL1BKe90%Hds8DwXqCb1s@Dd2 z)5P3X=J!2uf6-MWe}c{0kMTy1;>-2$q@HjJWB#UsFV(95XH>9YSc@kA7Q2-_CS2PN z#TX$zG{b|Ru@+Hy3o{jbU~hu8t{=n8X&;vd*)ryrdEHQtZ9&lYd>@RvAKc$Px{q>d zj2Cal<_fHnL*LPGgcCY0KVHYf?~e^q)&{Q&ZSZ8RLiuwx-sbdV$q@vB(u&$SEqu?$ zJ=>6D-I8NG6921J|8`bRNx8kA3dV7hTa39S`)5A>kC==m55}Jx0)L$1gXhv`m?53y zkBvXbuWcMrPYrMD8@y-ZV5knqqf_wqJ(MR3YyPLQjgn>6X+=D;b|xN(N7br-#V2)@ zr}}GVNwf)B_c}lCC*#Wd{zJc!8p@e*dx9%lvrgn^?-zEpceJl>>}vI4eQJf$T^hX_ z(yfPCF5P_>i8zx#-OOSA>}1!sx2^76*VP=t7Ekxe=rE~h&3XhV!F18`w(B6jPtPCZ zkJ?r@tf_BmZV1W2S8vPD-^FeX{5W170ZQ+1@$_`cx67aMZ6EsJtqv8?;*eUt`FN#mAjO z!YS%nx4N;ut+UZ}O#T!f@2-emC$anSC*7XXJyCwT8@dO3`&qNM);Bk|uW8n9bE)(` zA4%7y^o|3ice?!aLiI-VYwO$BtZC{XbgA?fMhT>23kgYgqx9Y_o?fBW5v}QLTie{) z*69*0kZ#`LK7I~qT&wADlZ3msxl5Mqx@3tgz56TM+$GD3rVka|aVascs4$QD#lL!4 zg;~r**b{I3im-wljvFW{%vjd^rCR+TZGKiuiPko*U)QyEy-i|^_vt#fpK_EodK#$B z&;P?>YlMOgG+N!UwsBoYV;fO8Q#{?v-8@}=dlyi;2aBegZ%B!n)~)NTU)RtaUHjZh zZ3jCeopG*_o1S~AlkF-ub<|DSkKHf1Jqqq9;PzXdvz8ra6mAxOEHCo#hUYGPn5o*=4&VO8mzvY0XaNhGD+J>uC9%W4=b5=GL2+X3_ zPb-m^ahaRD8mc6J@%VD*$&<}rY#un-ti>kdmE@|>bfVJHCKg{cM#0k4+6wqrdX-TD zCkqZz6>_rZYNLYusPH(e&rVTs}`E;S1nh5xm+M!pQ-0+Z_p8>Q>sP%(e&rVTtDcwZS3OXEt2O_#bMxvwidQ`=o(J`!+&sk3 zp~wBIr{(%p4^+Hzi~E%{$n`5JA-{5q`<=)cdr7L?cqO?MZ|{y$CGWw_syM*O(DIt+=rmyo^)x){0=dL>jkp{39ppt|$Z0=tj7l(1>t^GR^hD#4AFncU!>$<6j;(5fW48J;AzBz}^_ zlHit+?g70+*j?Ze3wqTcGh;V0)W&dInr58f4he}7o>^0p1ZGqklZH3+nZG$Gb zX`kRp0#od+nBd%uaz3&WYY37vJcGZHh(m<#4RBXPF& z|4YgLvw0@a#t5797CQeaC5ZAFP4N7ug`3JVAIdgO_hUQ%|1_Te?6meW!SkOMZYtZ0 z+WE)r{O3J^pHt13a%5*U&VN1?Yd^7LkM2xa{QRf+n+m>2uE^+JoN?-Zjr}e4{?83~ zErkiHyr;d#I3V6$2xbGu0p=U!>Hiz?w;IqC^XmVlpV2+vmwvGSfya)&P@_54M2zM& z%K&}qoYwz*Qs@8D4W(igE-mPC5ZBvjEYaFVZgIcT@#OlQ*8ha}M|{NkA6@R!-k{bt zy62|%EXc0)4(l4X{$X7c$)BFvo^YoBAN%S5`wsp8>-d?7neP9-zNh=Y=fiaW|77)l z%_CNZI}%4i$2ZxapPV^JdYK`QdNs7aH==M)fzJSQFE)Rj*8lo9g~2X&H%Jsw9M<#f zDNND*U(=n4nvT7RjLDdeOm;Gw^tv;CXg#dcnP6Ex5l($EK z?qaAf$xUOiAifClTkhUW>>C_eXX_mAV+Tf*7o}Cn_)jqR{soA_r=<_Q2&#U~-Nf{H z=v5PFZB2*zEYDRQr8$6IMt+}mwrTzE8Te2OvTn-Hyv>~`k%P`e=+1W zF8_H)Q1Tr-IlXC){C@%es(W)U*5{}7zaP)@ACl#|6I$$U`w1#v?>5mo-_DIpRb5-# zreBpD115X_-}JcR(M0b5Tezv_Q91p;6p!qFaq~2$>-({UEM|8IV$ znlCivl5OW)(f@K`gWb|P$B%OOV)Gw+Pp`h|B=d|X?yv6u|CILP#thm;x%dAq%v81y zjfds%!RD7^em|b~|5MCETs;)H|9_nNJHdp->Gp!(spP-%%3X$%{WBl`E4lyw=f)q6 zgJse;;`Pfp}Nt@nN}geLgSw_k*{re85|GzNQ7*gj<`7 zqc2MErco=4cp%=32dqDxiSvLuap#FPxUdbGa3}ET$B&xKSOl-5mwgnfKgV~zk(XAy zI(MXZd+y-(V(6Vv_~M>(7D?ZRNGmVhQ1Yp7Yq+yNJmsXD8Y%K1SgFWoRrczqM3Z5VvK$+Q$E$P zm*q81Rx5nGj%kxFzXze(t2qQsaBDTe*(l?!;_&jTM(3@ZiO2CR!l-T^gkBAO2%4a^ zCs@5Ijx#)~1v;-PLmfDM$5YUsf!D!%K(e6)^n(Y%5pWD>9q~4pPlf8899zIXa2Qnj z-GEBwE^1rz$fxAa5z0cAkb=GpFF;=bC&6i;GRxn84`{)^a7Vx}RQPs);;TTGmA=(N zK9q0eMe;*-ANZcWY`-c&{R1FCBX?;MN1YJ!~Mga%*aUTkE{~&xOf-PXl4> zn-R8lA&-btZ+f~1#_8ykKQEhoIrih#o>fp+Sz}F14d-~Tc$$$#zG^oo zX%w485h7|IA9ek!@6UAUTKyNE3&}6dU1LgUD{;S#_Wh0qyg1#kXg=Mr=2R-{SUkMX zsC$_AMvkV2N7V1U?)ZXCI=mgnT^zi1_t$xwsNxm>nxK-0Y7g^5|5AIFJf=@)+H>ll z_dkkXoomeXuX>=0GXC+NY5%rXQ~M)MS5MYgRR;9~g}46y2zHrFWY`%8k{8k#!z}!pLf04eNn^(oDGf7I<@@mg2=(C0Hx)FDc%fHiOlGcVyd1^9z5Rd4S&fw4W zS@y-!vv>lp(&7Q_fj-w1X+AfT@jgCY>h6jR#fe^}vh=QC8O==v^>N|RfZsv|-Q6zu zdXEyXWKy|glsDOx&ca|)P(hz6 zIu0sc`iL6`4?}$$`uKepBtG8JY2B^UJTE{idY4!IOY=U-X4#*?u5n!UpJQJV_#heL z=bQQ0h=g~tg}&Bgsv3uZH|Lz2c4_i>!>w&sF5bmz^II`2LrL znN0p{ok0@`!()8@P}%pte0{{q5^rT2i+}&i!cMkKlt-_|ELkR%Uu|Vf?#0WWJ%7rl zchcUvz1y_d-n+u8J&&c6J-^DGC#db&{6l3?8-5%d5pYx83*wg`zZJ;3c+F(VJ<~NQ ztxsbA*L+6?`H@}(T?$1h# zZyY=UUIBf34}>>d(vib=|Eyn8=Ox>q)xGUWjS{DfWUZMiiCXJlCqA@qw|{?spMNc{ zd%3&j-p`WQe!?o8`JHS(Qu-4qL+0Jl>QtC`8K{foaI6e|<#79OAO4hoeLJF_a0+Ao zD$T!=&z=9r<$oP{k)FWuvw-|J_e%4iJ*eEem7YjOWi~_mOiJfrb?cNSUTJ^(aKGn` z<{J9Ghr*fP$>huAUO9CuzZz3Pp0=DVBW-_iEZ!*6TQu}Od6SQExBWxIqvC_ycphtO zdcVYe*R~}))g|KLhTN*tw;kiLwY{T?2orC6i{Y_!Nyg(XqpxH{ectJnW4-T$?-f^X-MUyLD1=^CvK`7Y}FXEXla46@7oeAMkn zb71L1B)4qtiq+|`Ux2;>PJ+|m43NK1tNvHKFnKT8Q4eI|dJfI;nTN9$xt?)F+chmDN#e42`Q4@fWA1U7+vAPtUyW8ef(->YS?vALAV zcWd9$AN@IuQa{wV^fY)D90xCh6M!g+j{nqs^7Rl$q4l4+Po^JR-fe8!7(D9s@rDuYxy0f_|9qBR`i!SGzVK zoqerd=Zk4rulH6gbL|7~vfh&m2tohR<^Z1VDB`0SkM z|L%pj+eTSaruH7fhsl74@t|<#cQW~s3?Rv}bR>oJ9{#IhWApla`$|@RlON)#@2g&Z z93&490zFr`1i4otKXN}fVLA-O4Ue7NQ2ZKGO>X!)&M!9zpB;1G!Dq^7&r9Z#M)tQj z@Mq(_wN0wZ$smp9?b~cCGkbiJU$QrDZK`70`u|7RWo$kuJ7v|B&X+l7{jd3i#t9km zc`&kqP=ICxO{*Q?i+trKN;R`NBP(_G#t|fIazU(@RH|>LuEeOWtd2PnSOve z3w7()`MSNNJ!a)~tlrUQSvyi$otytgnd#GKtMW0MJaK<{l)Pod~K90x1p)cedM~@;SzX!m`!MYh$;sD=(6bdanGm z1Dg+Eb|#Uu1MzkToArSjBBJTw{^V2egh*p0ti=glcWC^#JvsPH^fn z!Rg%G_>_0WXEH7xA7yg!T?4%de_w#!3|#?DL^=y~FBsEpXuhKID?Xb8#N#8+?wn;a zbUXgmLw7)RmManc`zXOKYdpSs+{8o0XZ-;AozY>y+caeq|I^xMiLZ0?&RUt};Pg!Y z_T+ht${k=Qco68m;W6+kh*-y@2Fm+>v7)x|{|I&&t5eyDE@^E!cmDqr?i&BiJ>DPl z&Sfh2uCnzlo0q-kn{L+KWQv>Aw+x(9Yk&XHeW~89L;a}{@+R4#{`W49TcGCeY~%ABXfDfB7Lb$xvCwH@wR^Wog{29k3Z#^R7Wk6iq! zqIiBRemk)l?=L1RrDKvIT*hEeemCSBS?OMup*pO`@5?}b&HZfDq2*I!%skSPT=whs z!t)UMkxUfShXu7WL3tGvNAGnznd03&;=cOSqpv>c=e;BDt4~<Kjd& zW}W3Eg#$+URQfuvB)jrp^AP3Z+VEU?xgpq8!hwQ>#=_-AbeF~#7T_!#c(YUSohvpA;P|Y6}LvMv%2~BVdB*AXS%%}xigndp{ zI$lQRPlvL)`N>MC(y50kod&4VSq)V>O;A5y$)C;%{D@yFkI9@lJbM|)z(<$PjnK>a z-2z<%ZHHXJM z6NvwzzX?@Owo%?x-f@0goWB~}(>d-6l5ONEJkcu#FP*jOce{8d{Z%K8U*Z20c_sRN z{)qNbAkp`M=tIHZKLmdd1%JN|^!veoAMwh6X9)K`Y3TP|;rGQMo&^j(dj5vR7wDou z-w5Fv0(~vS`@=xL6XH`GLMwkn-w)wu!Z7_l5ZniX`vaxpxQuzYFnvFNAw2_&a3rS$ZLzH6ecsg1-eJ{$B@wKMvtK1FZ>kAcVUu z_@5PiKN;eAGQ{5y-2WwnyDPYVH~jveA)o&co^KBE)P&!!1%KZR`MElj_l*!Qa?6$f zuR^%L3BNa6IfMV#LVjZX1E1NZg`aY-p{^hp|JPY#e@I#`VtYb^z8T3mh0pZQ;8cRD31JD|47w88%!>6;6WW!C)H0I0D-7-dQy4SlbJjr#_ zeceKCx`(@_K)9!HV=m;(MPWZs&3tB9;M?Azf9CfN>-T7m?)MH=4>Pq-nbFVry;1)> z>@`xU=3nmzbN*ZXOT#RF|2+6-q7%X~qhB&&XcK=s0uaL31fw^0KPS^jZr~V7Q zoWt})14jc;S&<5v-KE{VkQ?Zbq)kacmM%*vDRS(b0)ww*^&er8F|=Nz<- z=Qk4$`EBP>q>FUnVuyz8$U6|M=t(}{&u-;Dy%YxX_(^%@l#tzC` z81ELsP=8k6I*01Qgu|)k-#-uj89?KFOXT5OBJiy~);Gkrg!mRepcbne@9xv6r*Fj5 zI4@5c=UE!Nv+L$OrIB+8#>$~IGU0l%)2PXlMvbLGJ+2IOa+Ek~lt!_Q^jNvP|4=UK z*4n@3TrM8lLCo1;wmf@(Aw2bK?NIAd7e0RAB9^Xq58ZXtg9wuK=8|Ff0r7RI}UF!W*L=MMNWL-kTX zactqezYsnq>!goVnf%*)$7HU59{e*e$=uhGzHZgXaL=keee9~Nsz4W*rT**IG%)s+ z+A2m}y;x%}7s|@~^?ap#*>7TLaz zy4pM1*Ee>x`mn{*T^hYg8I*24eT<}|!<+xEM7kMub(W-v*0;BrVr zNlfzh2vEAszx;WTbe#bA>4n>IZL1sB)HgLFiM=VF-eR`~ejKll0HxRRUyc_`uh8+~ zs9|+|V`taeGSj^*YDNx8<{ul&J)YoA*wb+9w>GZf*G zi(k)utFxz`Dx4~6Q}$!`OKy*XI|{h{mglBFihEHw?T=Yr^xKT=+V|QL9^|@dud0xn z_LppLDL0(dW8_a~gN-k_Zm-9}A#yTC;dB?l%AV_{1Fx2znzk8* z(>u%u!h>A5M{u*U=enK5&FYBZC1Vt)-lOqSc#_Px_;zLQBGlttJs!%jOc`?B&bIz9 zH$A;W@0pPITsOUcj`K~<3v7Fq4C=@(F@&|ziJ4fUC^26Db7dtGK+quUEcBk6xUYpm*D?^FOtr;1AYaq{AiT47rJGR~}8bxM#R#6N+y7%Nm`h`}xN%u$!?CF-e)2WGlw14>=_?9mgNs(0I#-l~328JYen_pnmRa?2E!OHQ zh`Us4t|ZDb+j%8Xm)Qd*8+HD^QAw<2_L>T!o=|_PApW!1TMBjJ&oO!|1Dd>cJutL( zB~<1&44;}&FM?hO-3`_9S~Fq>m*_7DpxJ*fD<_?_S`3&>M+aDi%!hX4u37g_Sas>d z!iW4;*o$#jnqTAjMNrMGc@&)rcAd`EEdK{Uv-LkCT}}o@&ykKam@-<~EhRoqiAJ;d zF%Oyo@l^;vKjr4@luzf}FNN*WZ{8#}VeX{5^j+W$*sF!*#C1P4^Ds?f3291iIFB^? z;rIS<(59kGI$$P+F zz#S^5UswcP0+s^x)_TwYV6*Eb>P70U>LKb~>VfJ-yn})LD&KR}Jk(Pc0-YbO16P8p zfa-S@U<=NjJz{Ij>2%bt)&uDdc*nIn>-8llXOZ3a7FwXKpbfNx4$uj@z)e79-w3`8 zZU)l7YzDUgor#vN<~E=;?>4X<+z!41z6y4LJHVY_C(ygJb^i1Zz};XMkaRj1O+SSm NI2Q{(U1rCD{|}|F-Fg53 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.ClassFactory/bin/Debug/SAF.Library.Security.dll b/SAF_VS2003/SAF/SAF.ClassFactory/bin/Debug/SAF.Library.Security.dll new file mode 100644 index 0000000000000000000000000000000000000000..5ca26adec0303738c54d6a8dec6f8f17e9e8d5ee GIT binary patch literal 3584 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 MI1+FqPb%7 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.ClassFactory/obj/Debug/SAF.ClassFactory.projdata b/SAF_VS2003/SAF/SAF.ClassFactory/obj/Debug/SAF.ClassFactory.projdata new file mode 100644 index 0000000000000000000000000000000000000000..8e23c6cd3919a42ce136c3611813d9e45ff1ca26 GIT binary patch literal 1800 zcmeH{&q`ZC6vn@_3b9bpjkF=iC2n+KqP27(F(8p@H(4l%i-La>tt7c6iD2BAg$rN7 zeI7#SGD}~66+qGo;_hhS@kq z^j&#{s;Z%)YwOHN{qn&Hyk%{w&i9pmo48OlHHkUYf@Xwm~w?9r~Vk z75^tq@y*=KM&9(JyI6M7{?kf>U1#T1chASyNhdFo-Mp(zQ59{GXH(y(VTrRxnOf}= z=qSc1|G>seXdK)A1Ev%6y~=9^{#ONB0I#8T|Lopa0h_f&=t_fDY)g)PuXc1;<+~cF< zgY)CW+S)!%#*%}Fu`Ik4f}7KOy;GL=d%)|hz-`8Aem2jj%vU5f;AJ;y8`@(Wu(GTl zSjLz(8`ADFw$UcD0p2R84L33_42UVwMhGQ5Js$Olo?(4PnFn*q>L=@JXa%gQ>x-J> z58lNqbUi7~a@W&al~v{zT2zUeJB2a0<)3pW^?3#NkV2}mPrRMO(EeTy X>;_Dsqo~OjbRZB_l?rGL{rB<*iG!^e literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.ClassFactory/obj/Debug/SAF.ClassFactory.projdata1 b/SAF_VS2003/SAF/SAF.ClassFactory/obj/Debug/SAF.ClassFactory.projdata1 new file mode 100644 index 0000000000000000000000000000000000000000..1c5e3c58b3fe019adddece99e3d3ba0257ff0663 GIT binary patch literal 2440 zcmeH{yGmnG6o&uf1;c=nW&(=HAvP))wXu*)Kokc-M6|U~W4w{%NG>qZ#zvT8Uck4o zu(7tZ^(lM_{np+&#_OOUf{-27S!?fg-&y-V>rW;+#Ojh(0u!V=mP|&G(z@mpsjQj` z?px(V>UIXkowo+CDr!?zehctC_K_-TU^|a)2Cp^EqKkRvO%KZ$$C^@xSXH8=oBnV6 z(ZPo^&AN&UDrt+H4K32+4wc7QJ6&dJh&B^FqE9dX<-V-*B`AUH?hM(M*|k^u2ENk` zoKUR2Yny4C<)3hafHCNwmqQru*V~wEwzf}R=5B)HtKb}YeUZr!G}8NPy*8o&HU*cyCS~=wjs#T;9Juk`w-8f_K^%R?KI-M%ieaIoQ7!2M6J19 z-uXmePAkF=nihWgh#pyeMH8>ql+_`A6{tk4vf~B)0ym$=TW)I7^zu~G^2%!BQMC9b zDz1w(tj3zK9fYD+kzH9~SMoZ`?_I*M6F8q5}TKN%#. For example, if your KeyFile is +// located in the project directory, you would specify the AssemblyKeyFile +// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] +// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework +// documentation for more information on this. +// +[assembly: AssemblyDelaySign(false)] +[assembly: AssemblyKeyFile("..\\..\\..\\SAF.snk")] +[assembly: AssemblyKeyName("")] diff --git a/SAF_VS2003/SAF/SAF.Configuration/AuthenticationConfiguration.cs b/SAF_VS2003/SAF/SAF.Configuration/AuthenticationConfiguration.cs new file mode 100644 index 0000000..c0f9558 --- /dev/null +++ b/SAF_VS2003/SAF/SAF.Configuration/AuthenticationConfiguration.cs @@ -0,0 +1,71 @@ +using System; +using System.Security.Principal; +using System.Xml; + + +namespace SAF.Configuration +{ + /// + /// AuthenticationConfiguration provides + /// access to various configuration information used by + /// SAF.Authentication component. + /// + public class AuthenticationConfiguration + { + private XmlNode authXml; + internal AuthenticationConfiguration(XmlNode configData) + { + authXml = configData; + } + + /// + /// Retrieve the type information of the principal used by a given application + /// + /// application name + /// + public string GetPrincipalTypeForApplication(string appName) + { + XmlNode appNode = authXml.SelectSingleNode("//Applications/Application[@name='" + appName + "']"); + string principalType = appNode.Attributes["principal_type"].Value; + return principalType; + } + + /// + /// Retrieve the identity information with a given user name and applicaiton name + /// + /// user name + /// application name + /// + public string GetIdentityForApplicaiton (string userName, string appName) + { + XmlNode identityNode = authXml.SelectSingleNode("//Identities/Identity[@name='" + userName + "']"); + string newUserName = identityNode.SelectSingleNode("Application[@name='" + appName + "']").Attributes["id"].Value; + return newUserName; + } + + /// + /// retrieve the SAF user name with a given application specific user name and + /// the applicaiton name. + /// + /// application specific user name + /// application name + /// SAF user name + public string GetSAFUserName(string appUserName, string appName) + { + XmlNode safIdentity = authXml.SelectSingleNode("//Identities/Identity/Application[@name='" + appName + "' and @id='" + appUserName + "']"); + string safUserName = safIdentity.ParentNode.Attributes["name"].Value; + return safUserName; + } + + /// + /// retrieve the information on SAFIdentity and SAFPrincipal for a given application + /// + /// application name + /// + public XmlNode GetProviderConfigurationData(string appName) + { + return authXml.SelectSingleNode("//Applications/Application[@name='" + appName + "']"); + + } + } +} diff --git a/SAF_VS2003/SAF/SAF.Configuration/AuthorizationConfiguration.cs b/SAF_VS2003/SAF/SAF.Configuration/AuthorizationConfiguration.cs new file mode 100644 index 0000000..bf024b6 --- /dev/null +++ b/SAF_VS2003/SAF/SAF.Configuration/AuthorizationConfiguration.cs @@ -0,0 +1,91 @@ +using System; +using System.Xml; +using System.Collections; + + +namespace SAF.Configuration +{ + /// + /// AuthorizationConfiguration provides information used by SAF.Authorization component + /// + public class AuthorizationConfiguration + { + private static Hashtable providerTable = new Hashtable(); + public XmlNode AuthorizationXml; + internal AuthorizationConfiguration(XmlNode configData) + { + AuthorizationXml = configData; + + } + + /// + /// Retrieve roles/membership information for a given user + /// + /// user name + /// string array containing user's role information + public string[] AllowedRoles(string name) + { + XmlNode node = AuthorizationXml.SelectSingleNode("//Permissions/Allows/Allow[@name='"+ name + "']"); + if (node != null) + { + string[] roles = node.Attributes["roles"].Value.Split(','); + return roles; + } + return null; + } + + /// + /// Retrieve specifically denied role/membership information + /// for a given user. + /// + /// user name + /// string array containing user's denied role infomration + public string[] DeniedRoles(string name) + { + XmlNode node = AuthorizationXml.SelectSingleNode("//Permissions/Denies/Deny[@name='"+ name + "']"); + if (node != null) + { + string[] roles = node.Attributes["roles"].Value.Split(','); + return roles; + } + return null; + } + + /// + /// Retrieve an object that is used to authorize + /// the access for a given user. + /// + /// + /// + public object GetAuthorizationProvider (string name) + { + XmlNode node = AuthorizationXml.SelectSingleNode("//Permissions/Allows/Allow[@name='"+ name + "']"); + string provider = null; + if (node != null) + { + //retrieve the provider from cache. + provider = node.Attributes["provider"].Value; + } + else + { + node = AuthorizationXml.SelectSingleNode("//Permissions/Denies/Deny[@name='"+ name + "']"); + provider = node.Attributes["provider"].Value; + } + if (providerTable[provider] == null) + { + //retrieve the type information of the provider + XmlNode providerNode =AuthorizationXml.SelectSingleNode("//Providers/Provider[@name='"+ provider + "']"); + string typeInfo = providerNode.Attributes["type"].Value; + Type type = Type.GetType(typeInfo); + //create the provider object + object providerObject = Activator.CreateInstance(type,null); + //cache the provider object into the internal hashtable. + providerTable.Add(provider,providerObject); + } + //Retrieve the cached proivder from cache. + object ap = providerTable[provider]; + return ap; + + } + } +} diff --git a/SAF_VS2003/SAF/SAF.Configuration/CacheConfigration.cs b/SAF_VS2003/SAF/SAF.Configuration/CacheConfigration.cs new file mode 100644 index 0000000..ef86171 --- /dev/null +++ b/SAF_VS2003/SAF/SAF.Configuration/CacheConfigration.cs @@ -0,0 +1,29 @@ +using System; +using System.Xml; + +namespace SAF.Configuration +{ + /// + /// Summary description for CacheConfigration. + /// + public class CacheConfigration + { + private XmlNode cacheXml; + public CacheConfigration(XmlNode configData) + { + cacheXml = configData; + } + + /// + /// Load the cache strategy object defined in the + /// configuraiton file and return to the SAF.Cache + /// + /// cache strategy object + public object GetCacheStrategy() + { + string typeName = cacheXml.SelectSingleNode("CacheStrategy").Attributes["type"].Value; + Type type = Type.GetType(typeName); + return Activator.CreateInstance(type,null); + } + } +} diff --git a/SAF_VS2003/SAF/SAF.Configuration/ClassFactoryConfiguration.cs b/SAF_VS2003/SAF/SAF.Configuration/ClassFactoryConfiguration.cs new file mode 100644 index 0000000..4f76337 --- /dev/null +++ b/SAF_VS2003/SAF/SAF.Configuration/ClassFactoryConfiguration.cs @@ -0,0 +1,31 @@ +using System; +using System.Xml; + +namespace SAF.Configuration +{ + /// + /// Summary description for ClassFactoryConfiguration. + /// + public class ClassFactoryConfiguration + { + private XmlNode classFactoryXml; + /// + /// the constructor is called by the configuraiton manager + /// + /// the xml element containing the class factory related data + public ClassFactoryConfiguration(XmlNode configData) + { + classFactoryXml = configData; + } + + /// + /// retrieve information about a class stored in the SAF.ClassFactory section + /// + /// name to identity the class factory + /// + public XmlNode GetFactoryData(string name) + { + return classFactoryXml.SelectSingleNode("Class[@name='" + name + "']"); + } + } +} diff --git a/SAF_VS2003/SAF/SAF.Configuration/ConfigurationAgentManager.cs b/SAF_VS2003/SAF/SAF.Configuration/ConfigurationAgentManager.cs new file mode 100644 index 0000000..1431597 --- /dev/null +++ b/SAF_VS2003/SAF/SAF.Configuration/ConfigurationAgentManager.cs @@ -0,0 +1,77 @@ +using System; +using System.Xml; +using System.Collections; + + +namespace SAF.Configuration +{ + /// + /// It is responsible for loading the agent object which + /// is responsible for retrieving the configuration data + /// + /// + public class ConfigurationAgentManager + { + private XmlNode configurationData; + public ConfigurationAgentManager(XmlNode configData) + { + configurationData = configData; + } + /// + /// it return the Xml containing the configuraiton settings for a given key + /// + /// name of the Xml section in the configuration file, such as . + /// XmlNode that contains the configuration settings + public XmlNode GetData(string key) + { + XmlNode result=null; + XmlAttribute agentAttribute =null; + if (configurationData.SelectSingleNode(key) != null) + { + //check if there is agent defined for a particular section or key + //if there is, load the agent and make it retrieve the data + //otherwise, just load the data from the configuraiton file + agentAttribute = configurationData.SelectSingleNode(key).Attributes["ConfigurationAgent"]; + if ( agentAttribute == null) + { + result = configurationData.SelectSingleNode(key); + } + else + { + //retrive the data using the agent + string data = GetAgent(agentAttribute.Value).GetConfigurationSetting(); + XmlDocument xml = new XmlDocument(); + xml.LoadXml(data); + result = (XmlNode)xml.DocumentElement; + } + } + return result; + } + + /// + /// the method load the agent using reflection and return an instance of agent + /// to the caller + /// + /// name of the agent referenced in the configuration file + /// an agent object + private IConfigurationAgent GetAgent(string agentName) + { + XmlNode agentNode = configurationData.SelectSingleNode("//Agent[@name ='" + agentName + "']"); + Type type = Type.GetType(agentNode.Attributes["type"].Value); + IConfigurationAgent agent = (IConfigurationAgent)Activator.CreateInstance(type,null); + //Initialize method setup the agent object with the parameter information specified + //in the file that is needed for the agent to do its job + agent.Initialize(agentNode); + return agent; + } + } + /// + /// Interface that each agent class must implement. + /// its two methods are called by agent manager at runtime. + /// + public interface IConfigurationAgent + { + void Initialize(XmlNode xml); + string GetConfigurationSetting(); + } +} diff --git a/SAF_VS2003/SAF/SAF.Configuration/ConfigurationManager.cs b/SAF_VS2003/SAF/SAF.Configuration/ConfigurationManager.cs new file mode 100644 index 0000000..926c846 --- /dev/null +++ b/SAF_VS2003/SAF/SAF.Configuration/ConfigurationManager.cs @@ -0,0 +1,71 @@ +using System; +using System.Xml; +using System.Reflection; +using System.Runtime.Remoting; + +namespace SAF.Configuration +{ + /// + /// Summary description for Class1. + /// + public class ConfigurationHandler : System.Configuration.IConfigurationSectionHandler + { + public object Create(Object parent, object configContext, XmlNode section) + { + Type type = System.Type.GetType(section.Attributes["type"].Value); + object[] parameters = {section}; + //call the configuration object's constructor + object configObject = null; + try + { + configObject = Activator.CreateInstance(type, parameters); + } + catch (Exception ex) + { + string x = ex.Message; + return null; + } + return configObject; + + } + } + + + /// + /// Provides access to configuraiton object for the + /// framework component + /// + public class ConfigurationManager + { + public SAF.Configuration.ServiceConfiguration ServiceConfig; + public SAF.Configuration.AuthorizationConfiguration AuthorizationConfig; + public SAF.Configuration.CryptographyConfiguration CryptographyConfig; + public SAF.Configuration.AuthenticationConfiguration AuthenticationConfig; + public SAF.Configuration.ClassFactoryConfiguration ClassFactoryConfig; + public SAF.Configuration.EventNotificationConfiguration EventNotificationConfig; + public SAF.Configuration.CacheConfigration CacheConfig; + public SAF.Configuration.MessageQueueConfiguration MessageQueueConfig; + private XmlNode configurationData; + + + /// + /// Initialize all the configuration objects accessible through + /// this configuration manager. + /// + /// + public ConfigurationManager (XmlNode sections) + { + configurationData = sections; + ConfigurationAgentManager cam = new ConfigurationAgentManager(configurationData); + ServiceConfig = new ServiceConfiguration(cam.GetData("SAF.WindowsService")); + AuthorizationConfig = new AuthorizationConfiguration(cam.GetData("SAF.Authorization")); + CryptographyConfig = new CryptographyConfiguration(cam.GetData("SAF.Cryptography")); + AuthenticationConfig = new AuthenticationConfiguration(cam.GetData("SAF.Authentication")); + ClassFactoryConfig = new ClassFactoryConfiguration(cam.GetData("SAF.ClassFactory")); + EventNotificationConfig = new EventNotificationConfiguration(cam.GetData("SAF.EventNotification")); + MessageQueueConfig = new MessageQueueConfiguration(cam.GetData("SAF.MessageQueue")); + CacheConfig = new CacheConfigration(cam.GetData("SAF.Cache")); + + } + } +} diff --git a/SAF_VS2003/SAF/SAF.Configuration/CryptographyConfiguration.cs b/SAF_VS2003/SAF/SAF.Configuration/CryptographyConfiguration.cs new file mode 100644 index 0000000..6a9db36 --- /dev/null +++ b/SAF_VS2003/SAF/SAF.Configuration/CryptographyConfiguration.cs @@ -0,0 +1,139 @@ +using System; +using System.Xml; +using System.Security.Cryptography; +using System.Threading; + +namespace SAF.Configuration +{ + /// + /// CryptographyConfiguration provide teh configuration for SAF.Crytography component + /// + public class CryptographyConfiguration + { + XmlNode CryptoXml; + internal CryptographyConfiguration(XmlNode configData) + { + CryptoXml = configData; + } + /// + /// Retrive Xml contain the encryption/decryption information for + /// a given profile + /// + /// profile name + /// XmlNode containing the profile information. + public XmlNode SearchCryptoInfoByProfileName(string name) + { + return CryptoXml.SelectSingleNode("//Profiles/Profile[@name='" + name + "']"); + + } + + /// + /// Returns a SymmetricAlgorithm object specified in the profile + /// + /// profile name + /// SymmetricAlgorithm object + public SymmetricAlgorithm GetSymmetricAlgorithmProvider(string profile) + { + XmlNode xml = SearchCryptoInfoByProfileName(profile); + return SymmetricAlgorithm.Create(xml.Attributes["algorithm"].Value); + + } + + /// + /// Returns a AsymmetricAlgorithm object specified in the profile + /// + /// profile name + /// AsymmetricAlgorithm object + public AsymmetricAlgorithm GetAymmetricAlgorithmProvider(string profile) + { + XmlNode xml = SearchCryptoInfoByProfileName(profile); + return AsymmetricAlgorithm.Create(xml.Attributes["algorithm"].Value); + } + + /// + /// Retrieve the caller's identity information based on url for the remoting calls. + /// This allow a single application to act as different clients and carries different + /// set of cryptography information when making calls + /// to different urls. + /// + /// + /// + public string GetIdentityByURI(string uri) + { + XmlNode dest = CryptoXml.SelectSingleNode("//CryptoRemotingClientSink/Identity[@uri='" + uri + "']"); + return dest.Attributes["name"].Value; + + } + + public string GetIdentity() + { + return Thread.CurrentPrincipal.Identity.Name; + + } + /// + /// Return the profile information for a specific sink type + /// and identity. + /// + /// + /// + /// + /// + public string GetProfileNameByIdentity(string identity, string cryptoType, string group) + { + string location; + if (group == "ClientSink") + { + location = "//CryptoRemotingClientSink"; + } + else if(group == "ServerSink") + { + location ="//CryptoRemotingServerSink"; + } + else + { + location = "//CryptoWSEOutputFilter"; + } + + string xpath = location + "/Identity[@name='" + identity + "']"; + XmlNode identityInfo = CryptoXml.SelectSingleNode(xpath); + string profileName =null; + if (cryptoType == "Encrypt") + { + profileName = identityInfo.SelectSingleNode("EncryptProfile").Attributes["name"].Value; + } + if (cryptoType == "Decrypt") + { + profileName = identityInfo.SelectSingleNode("DecryptProfile").Attributes["name"].Value; + } + + return profileName; + } + + /// + /// check if a specific profile is for symmetric cryptography or asymmetric cryptography. + /// + /// profile name + /// boolean, true for symmatric cryptography. false for asymmatric cryptography + public bool CheckIfSymmatric(string name) + { + string symmetric = CryptoXml.SelectSingleNode("//Profiles/Profile[@name='" + name + "']").Attributes["symmetric"].Value; + return bool.Parse(symmetric); + } + + /// + /// Retrieve idenity information for the server where server sink is installed. + /// it is used to help server sink to retrieve the correct cryptography profile information to + /// encrypt/decrypt the remoting calls. + /// + /// + public string GetServerSinkIndentity() + { + string identity = CryptoXml.SelectSingleNode("//CryptoRemotingServerSink").Attributes["serverSinkIdentity"].Value; + return identity; + } + + + } + + +} diff --git a/SAF_VS2003/SAF/SAF.Configuration/EventNotificationConfiguration.cs b/SAF_VS2003/SAF/SAF.Configuration/EventNotificationConfiguration.cs new file mode 100644 index 0000000..cb1d9cc --- /dev/null +++ b/SAF_VS2003/SAF/SAF.Configuration/EventNotificationConfiguration.cs @@ -0,0 +1,47 @@ +using System; +using System.Xml; + +namespace SAF.Configuration +{ + /// + /// EventNotificationConfiguration is used to retrieve configuration + /// information for SAF.EventNotification component + /// + public class EventNotificationConfiguration + { + private XmlNode enXml; + public EventNotificationConfiguration(XmlNode configData) + { + enXml = configData; + } + public string GetEventServerUrl() + { + + string server = GetServer(); + string port =GetPortNumber(); + string appName =GetApplicationName(); + string objectUri =GetObjectUri(); + return "http://" + server + ":" + port + "/" + appName + "/" + objectUri; + } + + public string GetPortNumber() + { + return enXml.SelectSingleNode("Port").InnerText; + } + + public string GetApplicationName() + { + return enXml.SelectSingleNode("ApplicationName").InnerText; + } + + public string GetObjectUri() + { + return enXml.SelectSingleNode("ObjectUri").InnerText; + } + + public string GetServer() + { + return enXml.SelectSingleNode("Server").InnerText; + } + } +} diff --git a/SAF_VS2003/SAF/SAF.Configuration/MessageQueueConfiguration.cs b/SAF_VS2003/SAF/SAF.Configuration/MessageQueueConfiguration.cs new file mode 100644 index 0000000..2b9a492 --- /dev/null +++ b/SAF_VS2003/SAF/SAF.Configuration/MessageQueueConfiguration.cs @@ -0,0 +1,42 @@ +using System; +using System.Xml; +namespace SAF.Configuration +{ + /// + /// MessageQueueConfiguration is used to retreive configuration information + /// for SAF.MessageQueue component + /// + public class MessageQueueConfiguration + { + private XmlNode messageQueueXml; + public MessageQueueConfiguration(XmlNode configData) + { + messageQueueXml = configData; + } + + + /// + /// retrieve the configuration information for a given queue + /// + /// name of the queue + /// xml contain the configuraiton information of the queue + public XmlNode RetrieveQueueInformation(string queueName) + { + return messageQueueXml.SelectSingleNode(queueName); + } + + + /// + /// Retrieves the IMessageQueue object specified in the configuration file + /// + /// name that identities the message queue + /// IMessageQueue object + public object RetrieveMessageQueueImplementation(string queueName) + { + string typeInfo = messageQueueXml.SelectSingleNode(queueName).Attributes["type"].Value; + Type type = Type.GetType(typeInfo); + object[] parameters = new Object[1]{RetrieveQueueInformation(queueName)}; + return Activator.CreateInstance(type,parameters); + } + } +} diff --git a/SAF_VS2003/SAF/SAF.Configuration/SAF.Configuration.csproj b/SAF_VS2003/SAF/SAF.Configuration/SAF.Configuration.csproj new file mode 100644 index 0000000..b8fc452 --- /dev/null +++ b/SAF_VS2003/SAF/SAF.Configuration/SAF.Configuration.csproj @@ -0,0 +1,145 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SAF_VS2003/SAF/SAF.Configuration/SAF.Configuration.csproj.user b/SAF_VS2003/SAF/SAF.Configuration/SAF.Configuration.csproj.user new file mode 100644 index 0000000..9aeabe1 --- /dev/null +++ b/SAF_VS2003/SAF/SAF.Configuration/SAF.Configuration.csproj.user @@ -0,0 +1,48 @@ + + + + + + + + + + + + diff --git a/SAF_VS2003/SAF/SAF.Configuration/ServiceConfiguration.cs b/SAF_VS2003/SAF/SAF.Configuration/ServiceConfiguration.cs new file mode 100644 index 0000000..d2ff194 --- /dev/null +++ b/SAF_VS2003/SAF/SAF.Configuration/ServiceConfiguration.cs @@ -0,0 +1,23 @@ +using System; +using System.Xml; + +namespace SAF.Configuration +{ + /// + /// ServiceConfiguration retrieve configuration information + /// for SAF.WindowService component. + /// + public class ServiceConfiguration + { + public XmlNode ServicesXml; + internal ServiceConfiguration(XmlNode configData) + { + if (configData != null) + { + ServicesXml = configData; + } + } + } + + +} diff --git a/SAF_VS2003/SAF/SAF.Configuration/bin/Debug/SAF.Configuration.dll b/SAF_VS2003/SAF/SAF.Configuration/bin/Debug/SAF.Configuration.dll new file mode 100644 index 0000000000000000000000000000000000000000..f5b38bde2c2e1982932789c5a7a917d7ffdfd3eb GIT binary patch literal 24576 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 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.Configuration/bin/Debug/SAF.Configuration.pdb b/SAF_VS2003/SAF/SAF.Configuration/bin/Debug/SAF.Configuration.pdb new file mode 100644 index 0000000000000000000000000000000000000000..486270dd4be55f0b21676f82b00b488d2d6a88f7 GIT binary patch literal 56832 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 NI2Q{(U1rCD{|}|F-Fg53 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.Configuration/bin/Debug/SAF.Library.Security.dll b/SAF_VS2003/SAF/SAF.Configuration/bin/Debug/SAF.Library.Security.dll new file mode 100644 index 0000000000000000000000000000000000000000..0affcb354a67b3f4018375a6432ab4679730f787 GIT binary patch literal 3584 zcmeHJ&5smC6o0)RxC^p?N{|TJ>q4T5X?NWP0ur5J2H1sxUANa&bQ89_rex;r~C6BQ4{7;C0} z^1?X05B(YE)e$ zWgk0aWD#@9=f(oDI{sGn*p##9Y4n$w~PiLG#-$AtpxewA?bRQlb z#_hmuG%WPvf@6aF1&e}Hg3k$_5_AN8;105o>7&5=1s@U|7kpZMqXav{O}eM=y7=i5e~K*Orn_5vova zdR+visNQhGR;NWN3eWhprj{ahipwhYwBO+RbPDJEq`eMVMa#ZZ3!^yky_n>2t~qYI zniB-kE2=sh1uCYh3jLgRFHY_qo1Q*-dFPw7`SV~4-DCC`JBM}-4SafGVSf9>>KlEg zVGJ?!^h4Cs(=U(3Iy?wW3}p8kAD@SrHks;d`8`NlxizEoR>7UvG0%GZ?s&0)#}oHv-VXLofSf0rP6H3qET}1(rjy{O zfJZ=c`=amX-_tw5pc|Je{Y>+ie+=|Nhws()Rt96ht3w)od5!(>41Z@%7RD^enD)8w_#Wc0R+tBu?DN!XdQ-xi?E^%*j z{uOA{#2Z(l0UfSnjh2u@d!B20>5f!kSBIUZWvN=KyC88+XFhmGILP$awg0Ntlj5U@tYXR0MFuVG_?`OU8sD{Mrk{z~$I@L} L_WyQR?#Ae z{z$8&WgDk^oOw1#fzZeJaSxukZ{9qZdFS1C-ZfV#T4voWpQu?an@Fg+{EnJV>Uty` z-_8rdMCT`>)NJCO5OD%uM?eAn-DZrj0-?t-o;*+8K2uVG418?fB?U#;Hrc+@hsYRN z1+WF;iuNWaXt<3fHzF<8-S!;CN#YDqAqI&dVwlJnP6e?3@PHV7{<096pmrVmRv;FBb zs-tkee+TS$Z*3sQvHwdYhCiZ)YY;6W{s%~pm-XK)^~stKV}(|?irS%3C>hqlky)&E zpW@VyV+3J=h$<14;WQCIHQ~TpN8+ihBR@yTksSY80o3t2QLcY){V!{Oi_7&<#X)3x_6zvdAitKyj`U}ZNE~h?$*kt&}xNaqyF># uZ`)XZID_;RUVjq9C#=wW|9k(#N00;9|L_6!0209`;4Ega0<6GzD)0d&|No@` literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.Configuration/bin/Release/SAF.Configuration.dll b/SAF_VS2003/SAF/SAF.Configuration/bin/Release/SAF.Configuration.dll new file mode 100644 index 0000000000000000000000000000000000000000..cfc3bdc1220d3cafdcb228019bcb17044007df83 GIT binary patch literal 11264 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 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.Configuration/obj/Debug/SAF.Configuration.dll b/SAF_VS2003/SAF/SAF.Configuration/obj/Debug/SAF.Configuration.dll new file mode 100644 index 0000000000000000000000000000000000000000..f5b38bde2c2e1982932789c5a7a917d7ffdfd3eb GIT binary patch literal 24576 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 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.Configuration/obj/Debug/SAF.Configuration.dll.incr b/SAF_VS2003/SAF/SAF.Configuration/obj/Debug/SAF.Configuration.dll.incr new file mode 100644 index 0000000000000000000000000000000000000000..882e3ca99e865624cea6f2f6a14f3a1e423f1fa0 GIT binary patch literal 3206 zcmcgu&rcIU82x5ZkzZYro!nDvG=NdC7>bApYMf<)M}?70p5YbQw*gZGK^SbxoYD zcV*A@7&JyXf{4p1N}?`%=pK}}X&RNGL;D!6Gw8V<{L$OEiqHjo+RNEsv{lZxP;n+r z%6G640Nebr5?Oz2Ts~j<0W8gK!&~%-cpUt5zx2+q;QBL;A&EzRFxu-<1vsUN_Jg(561+o`jHAtqn%jo#3cbq z3;;)MDFRno26`x?2y72rV~3bc^Yq*G3YEh1Pf|L4Mk?d~L;BaL`4JpW0Wwrj#1hdT DYfcH$ literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.Configuration/obj/Debug/SAF.Configuration.pdb b/SAF_VS2003/SAF/SAF.Configuration/obj/Debug/SAF.Configuration.pdb new file mode 100644 index 0000000000000000000000000000000000000000..486270dd4be55f0b21676f82b00b488d2d6a88f7 GIT binary patch literal 56832 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 NI2Q{(U1rCD{|}|F-Fg53 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.Configuration/obj/Debug/SAF.Configuration.projdata b/SAF_VS2003/SAF/SAF.Configuration/obj/Debug/SAF.Configuration.projdata new file mode 100644 index 0000000000000000000000000000000000000000..36c9c238bd7822ed5c811187b3515c82dfd19a8d GIT binary patch literal 21128 zcmds9Z)ly>8Gml8HP(99bzO-e$~7xpnx?7CI#)_o+O+FTr_Lp|D^j-QPh+F`w>i(Za zjmY&r>wUh;=QsGg$>*Ga?Nv_R9~DPswq#8TP$KkcYR2@V;B_z~5IFYVB=TY8H+W=HU)3 z21^&_oCQQ1JuJ1x6WJx-lt=u2-V2zyBCc;ZF>7+wX?R3_wM^??3Y4}Z?b26cZ}$MF zN>?J!Ez_!scQ!zC4=^!_MCfM3*0KY1b{yCuRgxp(G4}j2t*tTmy5tOKmxDxNZTV?wF^gHDO;s1t-k$z4uUzk7j!luLvCblq0X82 zR!7<7TkMf({EcTQ^IlN$gxjx?sTH= zXTI*`MBQayrz0%m|Csj@rsLX4|6DIOq#61|sf)7aD0ED1UT8(Pj!d6oc}G0P&^<>b zc9_0`)aA>_EZ02;0BN1r(d?NKMAD)>bG#atn-U=5S7KL|JbntfG4&8Taq?Wf%+$u(Cn z-z>%&L8~E*RzdFybmo}1ZumJ*9x1fja^dZ9`$_w20%K7JQ*wO+oS|cxENjF1@<$K7 zdSqK-G~1;awt*YTa=9#TE)myb8K{eKegfDdg;e8GaXpj33foLN?58nd>kpW){mi4#VvO62 zNt|0<7&{-!^-E?`$)|jlw?r$xb5wn8N2Bj5aE>4o|Oz5B~ zNNSZ0Gc~-leW1@dB$3?>_a*I8qS2DxLRDHm870$-DY#f`O+rTLE@kCzkXZV@T8~$} zCaji!X<9YfZ%nf3SjP9Y=yKA_hJ4z~>a92mU`z(am9w@t`7$zR*U^@nM>@s|JWnCf z7;7$xyo3BUsG*Pdky8)$lpQW$Ljuuaw`HrhhWyT?p@?hAzh)FpZ{Qlvlxl? zKkdIRf`_yY){VtpYFmIC&>=2r6ld*myf#nmA^tM}KG4|EQP??;qK$c8#ckBXp`X_( zN1|x{Zdeb4POqAr47*T)&Pc;RJ1ux<6{qPbg(tyrw9HsCtB=$=>}(T_r_tgWL<_Z7 zNc&^3WoaFnW=~QWN10j}%Xo~jF2hl6Zb*(r%PW3WadZtLTA=H8Uq*(ApL&sxAV0(k zJZF$dn-`IuM1(j3rxQgiS$oMxs)>Ymb*sz%Xmk3>T|m!ee+IWyE7+tQBJkW zi=vce>&n(G`!Rm&7VZy#ar?;qp&VF;^gn(e8U6*a)Qf4j{$`X3LTe3QR$w=&6t5L+ z?W!??Qol)ZjV4tvar;7?k3P{DqF})*N_x{G4@5y=QMuZq{ot(-`

18MDPg#ht*T#+Q%wpr^LG%hB;@*q{JG1!P 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 M7{^AfxPqA4Fux7-PuT_WPaZJURE?_ue<> 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 KfxiX09O1v590}k6 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.Configuration/obj/Debug/SAF.Configuration.projdata2 b/SAF_VS2003/SAF/SAF.Configuration/obj/Debug/SAF.Configuration.projdata2 new file mode 100644 index 0000000000000000000000000000000000000000..3ae7815be68c98b2f177da8f8e5ec5e8a0339430 GIT binary patch literal 25224 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 H;fMbL+vCkb literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.Configuration/obj/Debug/TempPE/Web References.localhost.Reference.cs.dll b/SAF_VS2003/SAF/SAF.Configuration/obj/Debug/TempPE/Web References.localhost.Reference.cs.dll new file mode 100644 index 0000000000000000000000000000000000000000..84632d67aeb0e2fdaa2ba8f527737f545c0e96e0 GIT binary patch literal 4608 zcmeHKO>7%Q6n?vQe(bguO=u}<3R|U>0*yAVlKw)$iQQ7urcGm~r3k5AuP4qn>s_-u z8#Vj}2@oJ5A&xyE!~rCPI86;yq!!x`yQo;D2;yO2GLcF+zJZb9;|?!d-#hSUCvzJepNeueS3Am35{0ZHv+3^ z*p}z{(x?d|h&;pbjMB-9(e&%W+^`|LBQZU5nCQ5cqE9x@Ke@Wv_mtbdPU|Jgf`WnD ziAMko^a45q1A`v>4NUpZBdwr=&W+izeBPg^P?SeQ;Lfc^J)eFJQZu=H)g6CMCZ*Q3~bDlZv`NnsGA%DxnKsu^&zNO z=OM$k5PD}T5KVQ?8PD^+qOotR@~eR*;J60-pR~ceP6LUeKGK7@^Z>S6Bb?4hi3amM zv=e;LHtNC4;5_gy(yXoT-<-wP6m+l$C z9%i$=FRba`8~jiddLO53BfjIU$9!tztDU&EXmOlePT(uq?|ziZD8C5BTnmPhJ@-bvSk4$BpFTy;sl%*f(JHTHQJg-e_S-J$6qwCrg+?k)W2}tVt zQNSUSMe~^=`3K1YKpR~Z>P^_7d--)rQLvg>43sB3Qp4f`d%t4dWMeaWj#Yp{Vd=c z`l4=Pe=h0;dW_zoA`L>nNLw*0(l8ySQ+izw^z;fG=xP!Ha*RJDcSNHJ#qXpI(zk2S z;{8#K$EW>zBtqG^X_-F2z597@qNp!whb=`C zg$tF?X?P+iT2eIpV7V=iTqXNE<#=^m?k?6%X$gfqHy0q!$Xdy_qb4sP~H(TfWt@oUjR8pF>e zpKP))E&vO`8N;pc$wP&3s6i10;7Z^=x<@57vu-2h;TtHRwFG$^mR;=6X?Kx^^2!QuzauWo!--ufE#fBxjTS2uo>J(w~` zOB-4)*MH@O=T1L3@%`KVMrt6F8`v<^1M)zo$IvxhPxB3ioR-UIl(vyuqLPM+Q_ZDM zSWU5|>$E3{!?Lz-e(oFgc>+xXy)QbPe%Qd*=7e@7`VClefmL6s)6&Q+00T zoi!F|*D>YMjD-iEkbE(h-FxU&u6rSNu+Px94du2C_4TFHm^IQkJllqFe0uxzfy}m{ zUPHq))6>U-y~+2%NZvhsIGem`aWuN&K3Qjq2=xVEi5ok~D6~cY za~Qt~h_=M9=nn7W*HV5BIt%gJ@tFeN@$rL&Nx=ELdm44+9N=M^1y-h$bOQ4-;1S^5 zuBCteWA#;{2nksIXMmr(oaWBP?<@^gEmWl=s7o#?P+3(!Uy1EdFRH4lf*vZBtLh(D z!?+gl3+_`G)! z*2CIvhX-dst-%Yf>hns1{pXq=!qTl@7IO_r6Y?xwhdjTPM^rq=VWXi|<1axAadSis ze53gP9F8T9yDb-Is1Cg*^a5IhRc;3QODc|&i4FdWaU83A#xve|qI(ffoWmKc?IXqr z(aMe;jQyKXdFht9IXmsVaE^%fE1gM18LF6Th-ewn-boLt_pTZ7|BN#S?%fjqTmJX% Fz@N7|-z)$C literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.Configuration/obj/Release/SAF.Configuration.dll b/SAF_VS2003/SAF/SAF.Configuration/obj/Release/SAF.Configuration.dll new file mode 100644 index 0000000000000000000000000000000000000000..cfc3bdc1220d3cafdcb228019bcb17044007df83 GIT binary patch literal 11264 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 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.Configuration/obj/Release/SAF.Configuration.projdata b/SAF_VS2003/SAF/SAF.Configuration/obj/Release/SAF.Configuration.projdata new file mode 100644 index 0000000000000000000000000000000000000000..881b65b56f324412855dc0222594be2108960dcc GIT binary patch literal 18056 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 UFD. For example, if your KeyFile is +// located in the project directory, you would specify the AssemblyKeyFile +// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] +// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework +// documentation for more information on this. +// +[assembly: AssemblyDelaySign(false)] +[assembly: AssemblyKeyFile("")] +[assembly: AssemblyKeyName("")] diff --git a/SAF_VS2003/SAF/SAF.Cryptography/Certificate.cs b/SAF_VS2003/SAF/SAF.Cryptography/Certificate.cs new file mode 100644 index 0000000..bcc1199 --- /dev/null +++ b/SAF_VS2003/SAF/SAF.Cryptography/Certificate.cs @@ -0,0 +1,51 @@ +using System; +using Microsoft.Web.Services.Security; +using Microsoft.Web.Services.Security.X509; + +namespace SAF.Cryptography +{ + ///

+ /// It provides certificate search ability with + /// a given location and subject. + /// + public class Certificate + { + public Certificate() + { + // + // TODO: Add constructor logic here + // + } + + /// + /// Retrieve the X509 certificate for a given subject name and location + /// + /// either CurrentUser store or LocalMachine store + /// subject name + /// X509Certificate object + public static X509Certificate SearchCertificateBySubjectName(string location, string subject) + { + X509CertificateStore x509Store = null; + if (location == "CurrentUser") + { + x509Store = X509CertificateStore.CurrentUserStore(X509CertificateStore.MyStore); + } + else + { + x509Store = X509CertificateStore.LocalMachineStore(X509CertificateStore.MyStore); + } + bool open = x509Store.OpenRead(); + X509Certificate certificate =null; + foreach (X509Certificate cert in x509Store.Certificates) + { + if (subject.ToUpper() == cert.GetName().ToUpper()) + { + certificate = cert; + break; + } + } + return certificate; + } + } +} + diff --git a/SAF_VS2003/SAF/SAF.Cryptography/CryptRemotingSinkHelper.cs b/SAF_VS2003/SAF/SAF.Cryptography/CryptRemotingSinkHelper.cs new file mode 100644 index 0000000..4d3a202 --- /dev/null +++ b/SAF_VS2003/SAF/SAF.Cryptography/CryptRemotingSinkHelper.cs @@ -0,0 +1,134 @@ +using System; +using System.IO; +using System.Runtime.Remoting; +using System.Runtime.Remoting.Channels; +using System.Runtime.Remoting.Messaging; +using SAF.Configuration; +using System.Configuration; +using System.Text; +using System.Collections; + +namespace SAF.Cryptography +{ + /// + /// provide functions that provide an easier access the SAF.Crytography. + /// + public class CryptoRemotingSinkHelper + { + private static ConfigurationManager cm = (ConfigurationManager)ConfigurationSettings.GetConfig("Framework"); + private static CryptographyConfiguration cc = cm.CryptographyConfig; + public CryptoRemotingSinkHelper() + { + + } + + /// + /// Encrypt the stream + /// + /// identity name + /// type of the client, either ClientSink or ServerSink + /// Transport header object + /// stream to be encryted + /// + public Stream EncryptStream(string identity, string sinkType,ITransportHeaders transportHeaders, Stream targetStream) + { + byte[] key; + byte[] iv; + byte[] signature; + Stream encryptedStream = null; + + string profileName = cc.GetProfileNameByIdentity(identity,"Encrypt",sinkType); + //perform the data encryption on request + if (cc.CheckIfSymmatric(profileName)) + { + //put information into the header to be sent over with the remoting call + transportHeaders["Identity"] = identity; + encryptedStream = Encryption.Encrypt(targetStream,profileName); + } + else + { + //put information into the header to be sent over with the remoting call + encryptedStream = Encryption.Encrypt(targetStream,profileName,out key,out iv,out signature); + transportHeaders["Identity"] = identity; + transportHeaders["key"] = ConvertBytesToString(key); + transportHeaders["iv"] =ConvertBytesToString(iv); + transportHeaders["signature"] = ConvertBytesToString(signature); + + } + return encryptedStream; + } + + + + /// + /// A helper method of to decrypt stream for a specific + /// remoting call. + /// + /// call identity + /// sink type, either server sink or client sink + /// ITransportHeaders object + /// stream to be decrypted. + /// decrypted stream + public Stream DecryptStream(string identity, string sinkType, ITransportHeaders transportHeaders, Stream targetStream) + { + byte[] key; + byte[] iv; + byte[] signature; + Stream decryptedStream = null; + + string profileName = cc.GetProfileNameByIdentity(identity,"Decrypt",sinkType); + //perform the data encryption on request + if (cc.CheckIfSymmatric(profileName)) + { + //decrypt the stream. + decryptedStream = Decryption.Decrypt(targetStream,profileName); + } + else + { + //retrieve addtional information from the transport headers. + key = ConvertStringToBytes(transportHeaders["key"].ToString()); + iv = ConvertStringToBytes(transportHeaders["iv"].ToString()); + signature =ConvertStringToBytes(transportHeaders["signature"].ToString()); + //decrypt the stream + decryptedStream = Decryption.Decrypt(targetStream,profileName,key,iv,signature); + } + return decryptedStream; + } + + /// + /// Convert the byte array to comma delimited string. + /// Because .NET framework transport header doesn't handle the encoding properly as in .NET 1.1, + /// we need to conver the byte[] to a string such as "142,24,...". Simply calling GetString(byte[]) + /// would result corrupted information when reading from transport header on the server side. + /// + /// byte[] + /// comma delimited string + private string ConvertBytesToString(byte[] bytes) + { + StringBuilder sb = new StringBuilder(); + foreach (byte b in bytes) + { + sb.Append(b.ToString() + ","); + } + sb.Remove(sb.Length - 1,1); + return sb.ToString(); + } + + /// + /// Convert the comma delimited string into bypte[]. + /// + /// comma delimited string + /// byte[] + private byte[] ConvertStringToBytes(string text) + { + string[] strings = text.Split(','); + byte[] bytes = new byte[strings.Length]; + for(int i =0; i < strings.Length; i++) + { + bytes[i] = (byte)Int32.Parse(strings[i]); + } + + return bytes; + } + } +} diff --git a/SAF_VS2003/SAF/SAF.Cryptography/CryptoRemotingClientSink.cs b/SAF_VS2003/SAF/SAF.Cryptography/CryptoRemotingClientSink.cs new file mode 100644 index 0000000..118e367 --- /dev/null +++ b/SAF_VS2003/SAF/SAF.Cryptography/CryptoRemotingClientSink.cs @@ -0,0 +1,134 @@ +using System; +using System.IO; +using System.Runtime.Remoting; +using System.Runtime.Remoting.Channels; +using System.Runtime.Remoting.Messaging; +using SAF.Configuration; +using System.Configuration; +using System.Text; +using System.Collections; +using System.Threading; + +namespace SAF.Cryptography +{ + /// + /// CryptoRemotingClientSink represents the remoting sink on the client. + /// It enables the secure data transmitted via .NET remoting + /// + public class CryptoRemotingClientSink : BaseChannelSinkWithProperties,IClientChannelSink + { + private IClientChannelSink next; + private Uri destination; + private static ConfigurationManager cm = (ConfigurationManager)ConfigurationSettings.GetConfig("Framework"); + private static CryptographyConfiguration cc = cm.CryptographyConfig; + private CryptoRemotingSinkHelper helper = new CryptoRemotingSinkHelper(); + private const string sinkType = "ClientSink"; + + public CryptoRemotingClientSink() + { + } + public CryptoRemotingClientSink(IClientChannelSink nextSink, string url) + { + //set up the next sink and final destination uri + next = nextSink; + destination = new Uri(url); + } + + /// + /// interface property to retrieve the next sink + /// + public IClientChannelSink NextChannelSink + { + get { return next; } + } + public void AsyncProcessRequest( + IClientChannelSinkStack sinkStack, IMessage msg, ITransportHeaders headers, Stream stream) + { + throw new RemotingException("AsyncProcessRequest is not enabled yet"); + } + + public void AsyncProcessResponse( + IClientResponseChannelSinkStack sinkStack, object state, ITransportHeaders headers, Stream stream) + { + throw new RemotingException("AsyncProcessRequest is not enabled yet"); + } + + + /// + /// ProcessMessage encrypt the data stream and send it over + /// to the server and decrypt the response data stream from the server + /// + /// IMessage object + /// header object for the request + /// request stream + /// output parameter containing the response header information + /// response stream + public void ProcessMessage( + IMessage msg, ITransportHeaders requestHeaders, Stream requestStream, + out ITransportHeaders responseHeaders, out Stream responseStream) + { + string identity =cc.GetIdentityByURI(destination.AbsoluteUri); + //add the sender's identity to request header; to be retrieve on + //the server side + requestHeaders["Identity"] = identity; + + //create the encrypted stream for the request + Stream encryptedStream = helper.EncryptStream(identity,sinkType,requestHeaders,requestStream); + + //pass the encrypted request to next sink of the chain + next.ProcessMessage( + msg, requestHeaders, encryptedStream, + out responseHeaders, out responseStream); + + //retrieve the identity information om server side + identity = responseHeaders["Identity"].ToString(); + //decrypt the response stream + Stream decryptedStream = helper.DecryptStream(identity,sinkType,responseHeaders,responseStream); + //set the output parameter responseStream to the decrypted stream + responseStream = decryptedStream; + } + + public Stream GetRequestStream(System.Runtime.Remoting.Messaging.IMessage msg, System.Runtime.Remoting.Channels.ITransportHeaders headers) + { + //not implemented, since only formatter sink need to call this method + return null; + } + } + + /// + /// provider class for the client sink class + /// + public class CryptoRemotingClientSinkProvider : IClientChannelSinkProvider + { + private IClientChannelSinkProvider next; + public CryptoRemotingClientSinkProvider(IDictionary properties, ICollection providerData) + { + } + public IClientChannelSinkProvider Next + { + get { return next; } + set { next = value; } + } + + /// + /// factory method that create the concrete corresponding client sink object + /// + /// channel object + /// destination's uri + /// + /// newly created CyrptoRemotingClientSink object + public IClientChannelSink CreateSink(System.Runtime.Remoting.Channels.IChannelSender channel, string url, object remoteChannelData) + { + + IClientChannelSink nextSink; + //create the next sink that is located after the new CryptoRemotingClientSink object + nextSink = next.CreateSink(channel, url, remoteChannelData); + //create and return the new CyrptoRemotingClientSink object + return new CryptoRemotingClientSink(nextSink,url); + } + + + } + + +} diff --git a/SAF_VS2003/SAF/SAF.Cryptography/CryptoRemotingServerSink.cs b/SAF_VS2003/SAF/SAF.Cryptography/CryptoRemotingServerSink.cs new file mode 100644 index 0000000..8554e79 --- /dev/null +++ b/SAF_VS2003/SAF/SAF.Cryptography/CryptoRemotingServerSink.cs @@ -0,0 +1,133 @@ +using System; +using System.Runtime.Remoting; +using System.Runtime.Remoting.Channels; +using System.Runtime.Remoting.Messaging; +using System.IO; +using SAF.Configuration; +using System.Configuration; +using System.Collections; +using System.Threading; + +namespace SAF.Cryptography +{ + /// + /// CryptoRemotingServerSink represents the remoting sink on the server. + /// It enables the secure data transmitted via .NET remoting + /// + public class CryptoRemotingServerSink : BaseChannelSinkWithProperties, IServerChannelSink + { + private IServerChannelSink next; + private static ConfigurationManager cm = (ConfigurationManager)ConfigurationSettings.GetConfig("Framework"); + private static CryptographyConfiguration cc = cm.CryptographyConfig; + private CryptoRemotingSinkHelper helper = new CryptoRemotingSinkHelper(); + private const string sinkType = "ServerSink"; + + public CryptoRemotingServerSink() + { + } + + + /// + /// ProcessMessage decrypts the data stream and forward it the target + /// server object and encrypts the return value + /// + /// channel sink object + /// IMessage object + /// transport header object + /// requrest stream + /// output parameters containing response message + /// output parameter containing the response header + /// output parameter containing the response stream + /// + public ServerProcessing ProcessMessage( + IServerChannelSinkStack sinkStack, IMessage requestMsg, ITransportHeaders transportHeaders, Stream targetStream, + out IMessage responseMsg, out ITransportHeaders responseHeaders, out Stream responseStream) + { + + //extract the identity information from the header + string identity = transportHeaders["Identity"].ToString(); + LocalDataStoreSlot dataSlot = null; + //create an thread data slot + dataSlot = Thread.GetNamedDataSlot("Identity"); + + //add the identity informatioin to the data slot on the thread so that + //server object can determine who made the request. + Thread.SetData(dataSlot,identity); + // Push this onto the sink stack + sinkStack.Push(this, null); + + //decrypt the request stream + Stream decryptedStream = helper.DecryptStream(identity,sinkType,transportHeaders,targetStream); + ServerProcessing processingResult; + + //pass the decrypted request to next sink of the chain + processingResult = next.ProcessMessage( + sinkStack, requestMsg, transportHeaders, decryptedStream, + out responseMsg, out responseHeaders, out responseStream); + + + //encrypte the response stream. + Stream encryptedStream = helper.EncryptStream(identity,sinkType,responseHeaders,responseStream); + string serverIdentity = cc.GetServerSinkIndentity(); + responseHeaders["Identity"] = serverIdentity; + responseStream = encryptedStream; + + return processingResult; + } + + public void AsyncProcessResponse( + IServerResponseChannelSinkStack sinkStack, object state, IMessage msg, ITransportHeaders headers, Stream stream) + { + throw new RemotingException("AsyncProcessRequest is not enabled yet"); + } + public CryptoRemotingServerSink(IServerChannelSink nextSink) + { + next = nextSink; + } + + public Stream GetResponseStream( + IServerResponseChannelSinkStack sinkStack, object state, IMessage msg, ITransportHeaders headers) + { + //not implemented, since only formatter sink need to call this method + return null; + } + public IServerChannelSink NextChannelSink + { + get { return next; } + } + } + + /// + /// provider class for the server sink class + /// + public class CryptoRemotingServerSinkProvider : IServerChannelSinkProvider + { + private IServerChannelSinkProvider next; + public CryptoRemotingServerSinkProvider(IDictionary properties, ICollection providerData) + { + } + + + public IServerChannelSinkProvider Next + { + get { return next; } + set { next = value; } + } + public void GetChannelData(IChannelDataStore channelData) + { + } + /// + /// factory method that create the concrete corresponding server sink object + /// + /// The channel for which to create the channel sink chain. + /// newly created CryptoRemotingServerSink object + public IServerChannelSink CreateSink(IChannelReceiver channel) + { + IServerChannelSink nextSink; + nextSink = next.CreateSink(channel); + return new CryptoRemotingServerSink(nextSink); + } + } + + +} diff --git a/SAF_VS2003/SAF/SAF.Cryptography/EnDecryption.cs b/SAF_VS2003/SAF/SAF.Cryptography/EnDecryption.cs new file mode 100644 index 0000000..bfe403b --- /dev/null +++ b/SAF_VS2003/SAF/SAF.Cryptography/EnDecryption.cs @@ -0,0 +1,357 @@ +using System; +using SAF.Configuration; +using System.Configuration; +using System.Xml; +using System.Security.Cryptography; +using System.Text; +using System.IO; +using Microsoft.Web.Services.Security.X509; + +namespace SAF.Cryptography +{ + /// + /// It consists methods to encrypt string and stream. + /// + public class Encryption + { + public Encryption() + { + } + /// + /// encrypt the string data asymmetrically using the encryption information + /// of specific security profile in the configuration file + /// + /// data string + /// security profile containig the key information + /// output parameter containing the generated secret key + /// output parameter containing the generated iv key + /// output parameter containing the generated digital dignature + /// dencrypted string + public static string Encrypt(string data, string profile, out byte[] key, out byte[] iv, out byte[] signature ) + { + //convert the string into stream + MemoryStream original = new MemoryStream(Encoding.Default.GetBytes(data)); + //encrypte the stream + Stream encryptedStream = Encryption.Encrypt(original, profile, out key, out iv, out signature); + //convert the encrypted into back to string + byte[] encryptedData = new byte[encryptedStream.Length]; + encryptedStream.Read(encryptedData,0,encryptedData.Length); + return Encoding.Default.GetString(encryptedData); + + } + /// + /// encrypt the stream asymmetrically using the encryption information + /// of specific security profile in the configuration file + /// + /// stream data + /// security profile name + /// output parameter for generated secret key + /// output parameter for generated iv + /// out parameters for the digital signature + /// stream data + public static Stream Encrypt(Stream data, string profile, out byte[] key, out byte[] iv, out byte[] signature) + { + SAF.Configuration.ConfigurationManager cm = (ConfigurationManager)System.Configuration.ConfigurationSettings.GetConfig("Framework"); + CryptographyConfiguration cc = cm.CryptographyConfig; + //retrieve the security profile information from the configuration file + XmlNode cryptoInfo = cc.SearchCryptoInfoByProfileName(profile); + bool symmetric = Boolean.Parse(cryptoInfo.Attributes["symmetric"].Value); + + ICryptoTransform encryptor =null; + RSACryptoServiceProvider provider = null; + + if (symmetric != false) + { + throw new System.Exception("This method id not intended for symmetric encryption"); + } + + provider = (RSACryptoServiceProvider)cc.GetAymmetricAlgorithmProvider(profile); + //retireve the sneder and receiver's certification information for encryption + string senderCert = cryptoInfo.SelectSingleNode("SenderCertificate").InnerText; + string sendCertStore = cryptoInfo.SelectSingleNode("SenderCertificate").Attributes["store"].Value; + string receiverCert = cryptoInfo.SelectSingleNode("ReceiverCertificate").InnerText; + string receiverCertStore =cryptoInfo.SelectSingleNode("ReceiverCertificate").Attributes["store"].Value; + string symmatricAlgorithm = cryptoInfo.SelectSingleNode("SymmatricAlgorithm").InnerText; + + //obtain the X509 certificate object for the sender and receiver + X509Certificate senderCertificate = Certificate.SearchCertificateBySubjectName(sendCertStore,senderCert); + X509Certificate receiverCertificate = Certificate.SearchCertificateBySubjectName(receiverCertStore,receiverCert); + + //receive the sender's private key and receiver's public key for encryption + RSAParameters sender_privateKey = senderCertificate.Key.ExportParameters(true); + RSAParameters receiver_publicKey = receiverCertificate.PublicKey.ExportParameters(false); + + SymmetricAlgorithm symmProvider = SymmetricAlgorithm.Create(symmatricAlgorithm); + + encryptor = symmProvider.CreateEncryptor(); + + CryptoStream encStream = new CryptoStream(data, encryptor, CryptoStreamMode.Read); + MemoryStream encrypted = new MemoryStream(); + byte[] buffer = new byte[1024]; + int count = 0; + while ((count = encStream.Read(buffer,0,1024)) > 0) + { + encrypted.Write(buffer,0,count); + } + //encrypt the screte key, iv key using receiver's public key + //that are used to decrypt the data + provider.ImportParameters(receiver_publicKey); + + key = provider.Encrypt(symmProvider.Key,false); + iv = provider.Encrypt(symmProvider.IV,false); + + //sign the data with sender's private key + provider.ImportParameters(sender_privateKey); + signature = provider.SignData(encrypted.ToArray(),new SHA1CryptoServiceProvider()); + encrypted.Position = 0; + return (Stream)encrypted; + } + + /// + /// encrypt the stream symmetrically using the security profile + /// information stored in the configuration file + /// + /// stream data + /// profile name + /// stream data + public static Stream Encrypt(Stream data, string profile) + { + SAF.Configuration.ConfigurationManager cm = (ConfigurationManager)System.Configuration.ConfigurationSettings.GetConfig("Framework"); + CryptographyConfiguration cc = cm.CryptographyConfig; + //retrieve security profile information + XmlNode cryptoInfo = cc.SearchCryptoInfoByProfileName(profile); + bool symmetric = Boolean.Parse(cryptoInfo.Attributes["symmetric"].Value); + + ICryptoTransform encryptor =null; + SymmetricAlgorithm provider = null; + + if (symmetric != true) + { + throw new System.Exception("This method id not intended for asymmetric encryption"); + } + + //retrive the secret key and iv information + provider = cc.GetSymmetricAlgorithmProvider(profile); + string key = cryptoInfo.SelectSingleNode("SecretKey").InnerText; + string iv = cryptoInfo.SelectSingleNode("IV").InnerText; + + provider.Key = Encoding.Default.GetBytes(key); + provider.IV = Encoding.Default.GetBytes(iv); + + encryptor = provider.CreateEncryptor(); + MemoryStream encrypted = new MemoryStream(); + //encrypt the stream symmetrically + CryptoStream encStream = new CryptoStream(encrypted, encryptor, CryptoStreamMode.Write); + + byte[] buffer = new byte[1024]; + int count = 0; + while ((count = data.Read(buffer,0,1024)) > 0) + { + encStream.Write(buffer,0,count); + } + encStream.FlushFinalBlock(); + encrypted.Position = 0 ; + return (Stream)encrypted; + } + + /// + /// encrypt the string data symmetrically using the security profile + /// information stored in the configuration file + /// + /// string data + /// security profile name + /// encrypted string + public static string Encrypt(string data, string profile) + { + //convert the string to stream + MemoryStream original = new MemoryStream(Encoding.Default.GetBytes(data)); + Stream encryptedStream = Encryption.Encrypt(original,profile); + byte[] encryptedData = new Byte[encryptedStream.Length]; + encryptedStream.Read(encryptedData,0,encryptedData.Length); + //convert the encrytped stream to string + return Encoding.Default.GetString(encryptedData); + } + } + + /// + ///Contains functionalities to decrypt data + /// + public class Decryption + { + /// + /// decrypt the string data asymmetrically using the security profile + /// information stored in the configuration file + /// + /// encrypted string data + /// security profile name + /// encrypted secret key + /// genrated iv + /// generated signature + /// Decrypted string + public static string Decrypt(string data, string profile, byte[] key, byte[] iv, byte[] signature ) + { + //convert the string to stream + MemoryStream original = new MemoryStream(Encoding.Default.GetBytes(data)); + Stream decryptedStream = Decryption.Decrypt(original, profile, key, iv, signature); + byte[] decryptedData = new Byte[decryptedStream.Length]; + decryptedStream.Read(decryptedData,0,decryptedData.Length); + //convert the decrypted stream to string + return Encoding.Default.GetString(decryptedData); + + } + + /// + /// decrypt the stream data asymmetrically using the security profile + /// information stored in the configuration file + /// + /// encrypted stream data + /// security profile name + /// generated key + /// generated iv + /// generated signature + /// decrypted stream + public static Stream Decrypt(Stream data, string profile, byte[] key, byte[] iv, byte[] signature) + { + SAF.Configuration.ConfigurationManager cm = (ConfigurationManager)System.Configuration.ConfigurationSettings.GetConfig("Framework"); + CryptographyConfiguration cc = cm.CryptographyConfig; + //retrieve the security profile information + XmlNode cryptoInfo = cc.SearchCryptoInfoByProfileName(profile); + bool symmetric = Boolean.Parse(cryptoInfo.Attributes["symmetric"].Value); + ICryptoTransform decryptor =null; + RSACryptoServiceProvider provider = null; + + if (symmetric != false) + { + throw new System.Exception("This method id not intended for symmetric encryption"); + } + + provider = (RSACryptoServiceProvider)cc.GetAymmetricAlgorithmProvider(profile); + //retrieve the sender and receiver's certification information for decryption + string senderCert = cryptoInfo.SelectSingleNode("SenderCertificate").InnerText; + string sendCertStore = cryptoInfo.SelectSingleNode("SenderCertificate").Attributes["store"].Value; + string receiverCert = cryptoInfo.SelectSingleNode("ReceiverCertificate").InnerText; + string receiverCertStore =cryptoInfo.SelectSingleNode("ReceiverCertificate").Attributes["store"].Value; + string symmatricAlgorithm = cryptoInfo.SelectSingleNode("SymmatricAlgorithm").InnerText; + + //obtain X509 certification object + X509Certificate senderCertificate = Certificate.SearchCertificateBySubjectName(sendCertStore,senderCert); + X509Certificate receiverCertificate = Certificate.SearchCertificateBySubjectName(receiverCertStore,receiverCert); + + //retrieve the sender's private key and receiver's public + RSAParameters sender_privateKey = senderCertificate.Key.ExportParameters(true); + RSAParameters receiver_publicKey = receiverCertificate.PublicKey.ExportParameters(false); + + //import the public key information to verify the data + provider.ImportParameters(receiver_publicKey); + + MemoryStream ms= new MemoryStream(); + byte[] buffer = new Byte[1024]; + int count =0; + while ((count =data.Read(buffer,0,buffer.Length)) > 0) + { + ms.Write(buffer,0,count); + } + + byte[] encryptedData = ms.ToArray(); + //data.Position = 0 ; + //data.Read(encryptedData,0,encryptedData.Length); + //verify if the data has been tempered with + bool v = provider.VerifyData(encryptedData,new SHA1CryptoServiceProvider(),signature); + if (v == false) + { + throw new CryptographicException(); + } + //import the private key information to decrypt data + provider.ImportParameters(sender_privateKey); + //decrypt the secret key and iv + byte[] decryptedkey = provider.Decrypt(key,false); + byte[] decryptediv = provider.Decrypt(iv,false); + + SymmetricAlgorithm symmProvider = SymmetricAlgorithm.Create(symmatricAlgorithm); + symmProvider.Key = decryptedkey; + symmProvider.IV = decryptediv; + decryptor = symmProvider.CreateDecryptor(); + ms.Position = 0; + //decrypt the stream + CryptoStream decStream = new CryptoStream(ms, decryptor, CryptoStreamMode.Read); + MemoryStream decrypted = new MemoryStream(); + count = 0; + while ((count = decStream.Read(buffer,0,buffer.Length)) != 0) + { + decrypted.Write(buffer,0,count); + } + decrypted.Position = 0 ; + return (Stream)decrypted; + } + + /// + /// decrypt the stream data symmetrically using the security profile + /// information stored in the configuration file + /// + /// stream data + /// security profile name + /// decrypted stream + public static Stream Decrypt(Stream data, string profile) + { + SAF.Configuration.ConfigurationManager cm = (ConfigurationManager)System.Configuration.ConfigurationSettings.GetConfig("Framework"); + CryptographyConfiguration cc = cm.CryptographyConfig; + //retrieve the security profile information for configuration file + XmlNode cryptoInfo = cc.SearchCryptoInfoByProfileName(profile); + bool symmetric = Boolean.Parse(cryptoInfo.Attributes["symmetric"].Value); + + ICryptoTransform decryptor =null; + SymmetricAlgorithm provider = null; + + if (symmetric != true) + { + throw new System.Exception("This method id not intended for asymmetric encryption"); + } + //retrieve the secret key and iv from the configuration file + provider = cc.GetSymmetricAlgorithmProvider(profile); + string key = cryptoInfo.SelectSingleNode("SecretKey").InnerText; + string iv = cryptoInfo.SelectSingleNode("IV").InnerText; + + provider.Key = Encoding.Default.GetBytes(key); + provider.IV = Encoding.Default.GetBytes(iv); + decryptor = provider.CreateDecryptor(); + //decrypt the stream + CryptoStream decStream = new CryptoStream(data, decryptor, CryptoStreamMode.Read); + MemoryStream decrypted = new MemoryStream(); + byte[] buffer = new byte[2048]; + int count = 0; + + while ((count = decStream.Read(buffer,0,buffer.Length)) != 0) + { + decrypted.Write(buffer,0,count); + } + + decrypted.Position = 0 ; + return (Stream)decrypted; + } + + /// + /// decrypt the string data symmetrically using the security profile + /// information stored in the configuration file + /// + /// encrypted string data + /// security profile name + /// decrypted string + public static string Decrypt(string data, string profile) + { + //convert the string to stream + MemoryStream original = new MemoryStream(Encoding.Default.GetBytes(data)); + Stream decryptedStream = Decryption.Decrypt(original,profile); + byte[] decryptedData = new Byte[decryptedStream.Length]; + decryptedStream.Read(decryptedData,0,decryptedData.Length); + //convert the stream to string + return Encoding.Default.GetString(decryptedData); + + } + + } + + + + + +} diff --git a/SAF_VS2003/SAF/SAF.Cryptography/SAF.Cryptography.csproj b/SAF_VS2003/SAF/SAF.Cryptography/SAF.Cryptography.csproj new file mode 100644 index 0000000..9bd9434 --- /dev/null +++ b/SAF_VS2003/SAF/SAF.Cryptography/SAF.Cryptography.csproj @@ -0,0 +1,146 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SAF_VS2003/SAF/SAF.Cryptography/SAF.Cryptography.csproj.user b/SAF_VS2003/SAF/SAF.Cryptography/SAF.Cryptography.csproj.user new file mode 100644 index 0000000..e4263fd --- /dev/null +++ b/SAF_VS2003/SAF/SAF.Cryptography/SAF.Cryptography.csproj.user @@ -0,0 +1,48 @@ + + + + + + + + + + + + diff --git a/SAF_VS2003/SAF/SAF.Cryptography/bin/Debug/Microsoft.Web.Services.dll b/SAF_VS2003/SAF/SAF.Cryptography/bin/Debug/Microsoft.Web.Services.dll new file mode 100644 index 0000000000000000000000000000000000000000..b56cdea1a2c2f4a0903c4e068d88d5a3c660fbdc GIT binary patch literal 311296 zcmeFa37lM2l|TOay{cDLuev*_bf>zLkaP!<@TjG;v2-Ua3Hy$KKtNf-YQpm1RazxQ zH31bB35tj)i%1lAKt zPxpIwJ@?#m&pr3td(XY^xHH~hIhJK*@c+y+mi2MG`CBK?ojcUOIf<#>*}XwhW(p!EiW!+3=>zh7UdAG75r z&@VX5vX1R?toOh7tOKLceqi-3E_S(=^#))ytf61~fN_6@m|C+Xe754v012hT$}-k^ z;Kr=fOFZx=Z*eg|e%k=|7`g!WJ;*xk_k)bpjlkhC+uChf3Jk>0|8$r2`>mGsf?>Sd4H8|!z~uf6@fPkwqZ_x(#751se+UyiQXeADla8!O*){{3eiF%nF^=ZXFA_O^ZC zV|N{ST;X>2w?F#kvA?+IWB)YvN9%?kE^#-!cJ@b)dZoK#k>CB1|2*p9$(xV0AG_|O zOCP#o=@tInC+_{~m+Zd%u(w>l$oA)3mRE`12ioPx zUx;wOXj!hm2rl(kc1MOG0pv&=G74Zj?6R!OZGRYX!D2oD&TH&}N2|Nb%2Ys~;tJau z#TzM06Ga5ptB+tc!}gaT)l$!2ikF6ajU39|#x#>T*I$N+$0erHg?YYh4O)Fw3rX64 z%ld(whm0u9S>aeUL}Lx7x!R&!R3>10-TCpWK!I95eu+W_uP|`<3?WzU-8p0Ake}@W=4< z*WgiKogX?tLxZ*O_Y}&jhVzAi4Z;5K%@?psAGs`RWqi=c3l7Aik{j4i%(*viTD7CU za)wQT=sE`GL5MFu-35kqR%9&D3-|&*N#nWUr%;hp%Gz8ve7HS`nFo-4m-GK=C;36+ z_VVX-wUy7pgfG#0(O7T_@+=0&PCghj*Fl1P9}-o=k1n z4G&4;GA2!UdJ-0Z-;+W0KHCWnML=!X4zPajIr3aR#|{n`AD{jacvQ+t3&%Pdc=6{1 z&@?<-o|2@tj}sgvL40b^?g~(WujXinc6S|HUI9Q6@O5@@3|ztzbrgMUvqqwks>9EbejnXK~haMk-XWN7&fV94mT3;$#89f#I`H_l@4iMJvB`P5BNHeIp+{@{OtbLLi9?!hWPSd z2(S)h!~MvwvLOTC=VMGQkE$b_Rbsqb}>1FF1p7rfBm5 zJ)9L;>&0D`1xZ%wNAbjY&G87Z8!tizrII4`V)$!4ieY)Pz*7nYTTsF9SD=!QF~S{t zE9oqG8kcujZZQ`?@pHTL!8W{xhDTbGv zwSkmJ_$s&n*{cgwH1w-zxDY`ad6ASWC``jm>)hA@1}M($&V@fGkG%vL`rJ9LzX=Wz zKf+-{!};JIB%e`$1DzYY`vFpL|#2RyK49!TC=3jVP*2IacJM;QZk&TcJ347v^ajbp8sUV~7X zWm1}_C3XObG7Y9fA<-G0ZDClJUjpwB;F@G~C^?Z2WBC+hGgEPdGR#^~JCAUt4txMg zfQ|?KNYJ|&6e(8wa=|5VY=M#p<1|4(7 zVtWEz*i+3BLe!H%zJ}R8#DzOg)P-oYJvgkBI9DLmwtcnQ?Q05A!rkqD_P%&N29}eb z(p)?GfUP~f!7?E-yw)KAS)Ff(uRtOGI6|cJN^ufri<;Rw49PH5AI?{~b)>$I!mF~c z?O!c5ekn3nLh{PZNo#6ch7w(-Q!I|F83LO_?x6^%7wyLRV8#|b8YF4xoe|>836bso zX4DdMj8fxDgg{yzja*}|M4%!TY(;PY<=*S5_7{{J;Oi=a51?jv%L>X4Kbq_>2s^M( z*K&|Z!VzxJlB|QNtlbJZA50+1WdA|u?Bp*ni;Y>v@WGrO(|xA3byuk)QdNinVS;uZB{K!tl#$&c0vi9_7 zkl;Zt@nGXgfH=Tw>`O=Cy)R{3?ErgxKH90aj~$>ddEt|k51d5R_OOFjF+_Ar2`SmZ zbqMjdqupzn0dF!l=`5SH$`z4Cl&Ab1e6Zy}_~9@4?Yzui{2!I6^FOWUfu^4OntJ|M zT;`H#^_*kd!K+cx;5B%xo?6kUo`)PVy`Eoy&^(Fl;6oep>;eCJzU;6kV_hDyNTFu% zIs(4|k7bY>)EN&oqbpJjO-v=nlYCTqBb_80uIO zt0MmEBf2<^xfnnE8wCv#8k0o-HdGF?1Veep$BYI@&J_EGoyK;6Tm-FlfSdOdU4VFL zPZ17+3gXo<+DdTJT^L;3I~+i>>r@O2NhT3{*^YcV%Z|Lx%I-!zwwhEov6wgF(KFhG zvdy3b6uLZDI&3jF_HQ7#P;}DDNmpIkml^vk0!tYmve)APC-LjSLr+|xC0^e zSy-RA6OLd#9?Pmn+r{c3x!`T^_;=xfN&6^X=zhU4-oe`$2K`e~=YqT8t#!NMPf_o5 zSTR@sgd3nQacV35Y83eIPu_!m@H?bdZJGl^E*trbgy}&*(#Je!99^TU)*sG8xHOZ~ z*a671yQ=e@aWq?3eNK20!gRRE zi;(N7?iPL?DSL9^!+52VQr-7*h49Bo@Ou&BzYmY#{dho66Oot~8e)+z{ApZd&hbHN z%>Pp9GPON2LgLy2Y>&AScDYPjDi=aT_2@I~gsFrW{s#aJdaaZ4MTv#>j&%{<2ZHvb z_5g}VW-_;_eOZV7noiGhxlst z0G19v?UYybV!;vp)eG*&V^uL+$zneUH$(%&o!~=wj&q`;>cIgqUQvRpkf0)a8EAiN zox%T@IGrPEa(A_&+8QJZq16|JFG3Pm*%k8|Gevj+F03=jTpLX#<2QBg6Px5@nd4w=E^syENI_B}@DVYYRiwe&U9=VYi#{G&c`G<@hxB@zc} zs1gknhZ@?3iW`t@&yEU}7@ZT&v6k*Py?oKdrW5-k050>B(}55At?~AR= zI_#=grJOs0DH(BbgTG@Q^wv+9_k6yeL;pegUF<)H?n3_|H1wZq{u=#My42U{kk z#;0fOKZ45Nvi}@8jXyi~AL8|V|A_~LUFbib*lGV+V>>cF4fy|nbllxDF0M~phCYe; zBG$n^i9W`j`Cua5oYrX=(Co%bkgtWEyG*8bsN=sH(^#nB^t)6wT{rkT7a@;Ec)iDV zgGsIeF=quHMwNrZ5EmTG`LBdOW;e0o%bD}1Senk9?WIrW{vJp)zQ^Jiuc@%L^8^t` zrWbY0^eJZgJ~J_1Qz6s8G80w^zKM5$Za{57JWlWseNohB+M+HnTP=tWt! z7v9H^Zc-7DEt`ugB0)|tiE=$`sIewyJx}u;C;5o$lza?wf*+cE^qG9F_4T+s(ml8q zX~u3wm>pnF;Dv{w^x$)F)eh2@krY!S2c`yyE;D$#Y_bQBprxu|v_+2wRn8!%zlcq?94WbK!^q0DifJA8AHkOq z;eQ2>7OSHXveZH^=ihwSF%ecy*Ge-JC$_9(jP*Y=Fvj|;^g(~iT3(mMy)D#PI@p;k zroV*^4!+LT7xpm5Bgk$D>5C@fe;k1u^>KN34+_Mmo@uR{1RJ{YM}QmFf6H zTaZj>3(|t?4D{+29(ijqat%wLi>nO73#lEzdNnn|0M8*E*G>>9KLd7DDW9TDFiy&w z02UdgAdwmeusw)@<_8-nslS1QCnm#KM7I2&AvFr7EM9_APX?Zuk8elQc6rr; zD`dN6SeFFn0L0Q_dBs!lyvHa-&2w4f>5~cxH z0|QJZAU|OTx-{-U8BA?Z-x!NXY1FBWX3PZN+6h$Av_YyE1nDN8)=qMX{%cg$Bx_sg z6tdGQVN}+rh;Orq$b$}+c)mjqcJGLZ6UbQnzFi@qs<08r?-I(oSUi8mq39N`x5*D2Bu7$qY_ z-EBOMvbJL3fV;uK zy(WRnK^?daoPJma3HtHhjemCd-SF=&T0M*+xy_t&C&o-2kDFz6xpP6cBam8i2&fYLTcVTa)X3Tk8}G1r}H zQG+2Ev9HCWHb>vPY!<;PiuptL+@5^O{2@OlKh6B1Am$H!8SW>(6eOg{3k)E#qn~Eu z35r;$1Vp#bExB#B55|XX=WXgSaf$6iPaZ*u?L&58L#o0f!;BTP2iWcaID8mZurhNG zOUhIi%@qG0i8rMgoYnHdpaahLN+^w{8mSTwS^=YnyfJz}laNMISK~Yn*`Bx?b?(dQ z4)lcx82&99A^0&|NtkF9!9^@3H=YM8)|QoWTj-E=M_G~de}d@R{8CQVS^YzRbG19| zYupIp!bs|kc;!l_#0E0So_FvROMDyYe*;|0(&$cFlT}6LBt(gwTt6j;!B7HU4dq4y z#a>|j-l!IS>+%03RLBF*v!;*}U2sbHC2-t}|0?|a&D7hlE-n3d4&O*ed4svQ{0t=_ zCOq1Vk-~A`qeuIJF_fCAw*V;nR6?k1qJJ%t&K(+X3K)9NYXG%}VkPXnK6(jBF2%0Mk=Y>C+83u2U} zNahoxG)LJ88j@G-j@maZApeluMxP^qp{0>!ZqZL{5x&-vs_PyWd!Cl7+3F&$3Hvx4N}$i3_pe--DiSLjc(TN zaD^-E;I~N9_#Gac2avyC16XM8sjy^+3=2fRN7C-OqYPN*5SEkicSFa3 zVQC&ilGSB-C+fV&;W>q=X?jc=AN!}?Ny#>l$XdvEYa?O$Lx4E38NH^v47;Ix;WlsL zV)$Hcb-Bx6)8A9b-?(YjPbM}Yv@e51b4!`RZN-U8q^Er(PF2ELr&T|yTqoJfjUxd! zxEHaKu-rI-{!hYRnJ+2uA_U=M$GRE#oDX~)e;(2~{ve;)BPJY5X59=fR!=c@ZscVz z{5*&kK8nXAfU{ATcGv28+5GL!OYDf3mjol-)qdL@@RtH`bvEXT>T+FwK0=J8+&dym zxzz4XbY5lH+IUSg-v+YgSHzt3U*X1*ScH3mEzCdfK^(M;OMu!IL0LDi$F?Kf>|^(L z_xFU~mpVk-(%IT(3qr%1gorknmXw z&XuKzAd5V*jaMP00f7Wt@<)~cqRbd}6rLmC*l-}TBcB3~zW7(8+5GqF|Y;a;};tE98_jzQ`i15)F zQwi@6e+q{4U9i$PQ*2{seA+bWOM}+JeL9_k6TytRWyXS1BC;_nJw7Y4F)N*Z>>G&6 zCIY88`g#PkNyq^Y5|TUL;c~jx;959{vFO_#eP{$5BXnJdOkoFX?-irmDg^6AFCNWYDhXbjWE)Qty#^ERe!`~nDX zW6FMMr^=$TtS@p6F^3kcoNIGR096hP(q3b4KnRL(EyKCW{#FC|@Y=$cB-8VHZ$?{S zAsFK}mn}T1glmxzV`yKtdU`2S%HCECPX^s{Vv5W)4G$|o`y&l3wO85soWBlksF2GL zd;pw{ReZb^a=NE55MZUk%NK&Tz*`7r!4pkaWhB1Ktt|)}fbL_B1jahz4sT@u7E3%X z)BBixsRPq7-6KB-IA5kX_ajU(?!iHZ>S2Xa<~A&p3w}6vyxhjg>Gi;88N%9;>&`23 zxx65kSLDnof&#RJj|g8wn`1vNIW-5%?fsS1INu}725m-PGQ4NxDfTup8_SNp5kOo~ zt3-XwB+k_nZC6_viEp7+oMS)tDijq^FJ@VAFUXa;esl7tnG%s zrhfqb@g_u*@}p#^`I<2-6p`Y1a7w+5MR~%KAYnX7?*>r0Fgs)vIv>~CYangNvi&t^ z=CB7KD1kf=be-kqa7L7xg9kZk4tD;W`l>BUc9?0C@5vXyalrK#AZ2Y<1M5&2jokop z%FE$6-q8x&2^SFh`w*&q2RvwLz1gc~s`pW>RZ?&1fK5JGZ@#D0I}Xx%(;L;BZmG9p zy#Qrz0sj4-Qu`v5;z$mmIe33{E_`oW(WoO1dL~4MT^l`;36?h`tt;z8$q+!vqux?-!|$;u``5?x6}(=uvc}#k~?;$gL-6S@F@qFMZnzBF5z%e*&joz_vK6Zdb#8Rqk#Yt*O>c` z9y2{xDc|SrLQWi=nOfd1<~)d_H3~7<8iI^c{_?yc_?$168mNldsZi6=j(l>BxHU<$?CdN zJ`Ix+s=bt0X4U3OZjP)Tk4c%fFm1f%kF+VBshNdIgmmPVzRW;harAi5b1JENs#mqq zvb)r+q`JU345>~v-mugSuHFO4)DD>zBy(HSTBV{emjFvLNs5Ss-5{az>zbGA^ra)q z=IcYkkJ7*fY#T)zhN9tu7`Jn#1p9)u?y{tARcZLr=r zCHyh?v0iMQg$@^`=UUUn2!A=c%->vg^+I;_rn=#?$*$f+cJ*p^npK(w*)=PcT{}?i z5@poP@~coPjA2K?Di!*?DajDjCa{HYu_8XBDMrIr~i0|$zl^cF-|RjYH)y+A5Xln2f?BUZUMp39dsXA(_r$23#XrF z*&Rn%4n`9|T^>}2>PCdm^~P{dh>Fx|?VX^2Sy+_qn#xE6OCsJjq7fS;Tx*9XAX^Lj zWSlp=OkXeO%iqBjGA-juQ-)sy0>KCIsLi$$k7jQYi0`9}+8SFum>GHgM!?|_6h>FV z@ir_aux0WB%6X`lL*U6c^CsZgVR%lH&K3$5CrwX z<*3InXq6Nq)n`qh_^4)Bz$D^m)UcX^;}|$V1j?Lqx-6bUkoBZr0IIGhDG}~Nvbn)> zK(Pg-HJotS{!s{qWdJqJ7V({_gvrfCw-ZV_s@S=$3bi&z-*OZ>YAyd*6w)0&1B`S@ ziOb-yLwOsU9~w^{4_T7(4@JUB>>3dhQPR}uh&w&{XeseVSBlcQZ6icK5AY|~VN;C0 zPMC#z_C)+BC>3Pqa0)h)vl9XaD?q=;E9;L1?eJTRf2^p;eI1+e9+9OE+&2z4R;?|} zQLS|*9K(TxV-jecfdAR>^T)XZh9qk%+D*2GpxvGhwDj;qE_@l>j@Vm?X_cOf2wyLu zkD`J%pc8fJk>QmQm+`1ApK?7~oSCcRQL)x7L zr}qBzAv8?fpXky2O+tzLlX%+t6GNu;CkD>gp9IFV{v=p71<5Ae)B97B;@SHX>p!hO zorp?Fe>w?{UFc8uBU#j+Sh(p=FFH89h8ryPDaWVQE=Kdu+G1KtoSc#Peu1@eb06mU(yPE!VrvKT_3Wt%6 zV3KJ~5TR`AYQB0it!;S20tlt{X66kH_^W}mmJeeq) z2@nSYqyVu{U5f^aEmS2qIuyZregO5oigb~460~GGDo*bNSD=RV+2Lsj(xZ0|fTFZ? zy%yzFH@X4(u3OK$0Wfu|*SHjZg35PT-o1uW&c0dAbq=$7`)^LFOq1CzSv)Z z8G)ONI5F>IiyApm1Z=!mkXR8c_3CeM0<6BcToc&`WjKKgY{nshZH|Sud@rFTbz!tQ z!W5mTVKQv^z8C-;GcR&?exjzICu(#*r`xLRJAI9n^g9Ohqn<;`y)332G$Lpcc42d(re!z)_$4c>0`bg^+0>7()9~W(7YWGxkH%pR4 z3}!cN)b5^K!ox!5nuKq4Uh|t9ule;_Bl}NZ^NTSVQ@qkg^B&V4&!$M2-U-$qC7Ad- z)0p^G>@;t-o0#Wi>I>}VEAfVvpu7Y0EZkVhGk5%lOmM`$0o8`G!W_85E;}pg7b~S- zNY45Q77z)#fh9AyMW6;GdaqmG5Z2>d0Ro^!F^QB{!y>Qo3is~>4octH5e|FgG6Mv? z-5pxD8g|-A5zvjq!vdnxL`Ld)xukye^_sG_syb-kxNtm0R*sk--O zTW=!fz4_KH@^)Ld>wE4$1>NRyHZm?6_gzdi^pumL} zMJ1aPID!>Thl!)M2iHpYbIL1bhquS+RrE=ETzlKR8R-G;(Z;=2mu6B{tK};#ml*Og`rOHuENn zLv|W0&?C71pOH!QHjYz5>@`n-G^hpZXdWzoa6P$V%L<2cJSPOZEla6a2 zLZWa%DcbkPwyoV{iP&$@TsNSQF6`dA#-TO_Ureim;(sXNyJG?C{+{LzN<-s5^Mm zqI2DOH^Cm(oloZiI9+!)Iv2u;dHbT9h6c~oKE71A&K)Y;G&K9%4eenbvP=mo-edxl zxWd9%@LUNim{NBBndKGezV3WFPv2k;endpXkq@C_DchH?u69fLn_xosb>OZFiI9+? zH$dCy+EMCBQLdE7S{Ak`cqi!>L~voD%^kxU8P*0%Zc;9sGnec3c`Vmsxz3y^<$4{< z^-wOh5~N(4`>C*Bz@pg!aI|FD5I*lKC{D#vPI1DrXMz))Gvk!&>n2X!#Hl(Jr|yn8 zbpt1?*|+1AQ=DY{lHT7}w6RoODELqS%v>U4eH!D@D?ziY=MK$YQF6;`Zv_eAUW;8m zt9l9VZR~c3R*WpcXg#u~`XW6-;O~n>^&mVA2&Nd#sl8ZlmaV-oeCyPxyhhdY$|$v! z;g8#sgw?*N3DEJgH=qpL*wjUrK2n_4*4j;u)%Dd`s7~?d5+z{=flNLRuu_;oh%pZ& zfPmPjogV4#Z%^mc22BlShkt30%G3tUl?}7Q1Nz&bXKPo5SGET!js{B648zBXUD4*1k?W z>qagdh0M3YOQR~KG#959@$ts+);L}?Gf}a$e=M6k#0wunbZk2oS;>hK=QgmdiBn0n zg@)PYhTrc13)gv4v_mhD(VKH5T7DKbTYF#k5&D}e%OVUAH&|R z65n;|&H#NJRBG4>_6d8LmPDN{BQZ+KCz-SAd99UseZn>^H;0 zL{-N=x4$pvmKT*W=R9_YJ5b8vIat2Komal23|Z~gE{32S1=lR?%a>Q4CBhRS>p+U0 z0+vZEYbE9_0}+48&}A3=>(PulaCA!+Ex26D=gR?>FL5*T(!Rp{Qepm0g+=E*#-bM# z9=oHIt6hq1au!!!d7hS)n^M-wos?BHWs&k_11Og&aJN!nx46KCC=kn4D~H@gnW4e+ zfWlBAGc;QqUIthppqP2=4x>Djhq~p|W4=~~d2V?n<}Oq!^7KhWu2#;aB69TUImxo< z*_Fc`#|$Ug`EZ@SLDzvcc%bqEO-9-)2l`6G4_5`wDQ?UO#taSo>@im!neW z1tZ)O=P`l?I$frIp>6wH!4TOMd398~va+fp8g%st4YWnemJ_m@PDk~b6%tWMm~l7E zwjmp5J5wY{n?{}h$Zp=CKsPVn5kbSW?8Hh=j76 ze6Rt=0j9(X+qvkfI3AekFP9|(7m{Xl_UZIyl~~ytW-#n3n8)^-M$mxXtS_X%;t-a9 zP*m$~B&&>se;}J4hT^x5gvG(gy~=JfK6n|)r*|ZapA$zOhoz?+$gF52TpVW`30KB$ z7r+mReIwzC9o+{iEH><`340_wFO}}n*qus;PNTM1#~JYs7I_!&fuM#pK*p@;zK70^ z>k=DLe~kFo0JaX)(Zc9EkVWN0)>;PGJ6m%O-+}Byv*-Hv2-aK;Hg25kCi%<$dlk>; z01G&S0t!pq2G&3X%cCwTKb~q%mOJbw(4bcL&A3uVkdPt>|I^g)cQPDDiul%sgl<3r z0C~Gfa`HSkiP)QMj03M0Q-Z`oY01XfG85o(S1t}Lo;Q`A5_zBER^MIAs^Q!)Aq@!g zU}7&|2U^4*0M#&f{=|proj>t_zV6r82le$KzNoW&4wSf_vbgPB#Z72lv4ZLzMQ68C z$Aiq}dbKOe;e_xMpd8Jmb2201^1AiKPM0o0$?gLLag%5^hFVeR;nz>tl}ys{A?4(_GcVnYC}uhalA zSUYMWDFtp85F7zaz#!HFDUZT7+9Tc0wgI1}?zIcA07d2F9bpqLxhoUn4*~Ir&SD(V z!S=(S(1cD-H;~6!mEcGelAPE1j=@9kf)gE`XHmA9@;(O0=4^&q0N&60?6K1C)#o^R z?I{bFklNDli*TzNidj|oEBMT$DilDvFz5(U!Jh%-;|X=4D`54D*yBJCv3A847pD4{ zKBTg&`Yv`Auy^kX|2<8WQDkU*>%~ zYfF~9t8H0C+Ffc(;;wBe_20F&)a$i{&TO^61B|HEK0$ZV^EyYN)xKg{jR~aH#1Zv7 z*iMxipEqsB7%2m7M)0XNqj#6uY~Iv1W6tN;X2j#Uwi(Oa)ixX2)ixvU+GbM!=h9|E zP}}+jU>-&O`e&2{3Ct?g%HSlnwn6$+Q7jz+0J!687)!6+gwWBvbOc8d@{x?C*KR%(#nKUciFwyD zmR`I04^b=~sl4<8*T2WB#RuGnvx1|s`Z|67^#hH>AM9Ita($~a+)*+faqM@z; zFr;-P7$A_(HC17d6QFPxA9)hgHJ{-AMU#&n7R`=ps=**9_$MX+0z^^}5C;NS8wn5x zAhQh=vb4r1DgkzoarGB?zX|PTiZ4L$5DdPvq9Fm%kRZe`H^K?l5P?p7SV!qXk7*y= z8beB>5 zkr}%|xE!4=>Iz~n_bKc(+=9Ay)G3-sogR;*Kh&0_`^A8pT;^)RPe8qv+5QVyJw(5X zKzJoOzOcaVq|wslYA}lxhZ8{Fm`f*2zhM+BnmK`y(qjS#5o7>up^x zFWb*z_gk=bb1VzH55oUx9T(FaPgp-5V=+ra2+&m>cXs$~qMoR;PSO#0j2&B&I&v5T zRnJL!LR&m7Sx-X8faP6T#!5ZLKK3f~%(fG5CnF$r!VMS1!JeyYY<~o+vs)0J#Pp2V z^Rn_`#HH^xr*65fh(Mh#i0-m*0jjYVAEJIr2a;A1hUDl>h^##!ehssdG(=7VM$QFK z5!Ofx4#Hatk%D9bcJ1wwMWC;}TfBs5tSfbegA_h7qH`MBzGUVSxXS zbQ*xrF>Cb8l7@l>X?~rgNsWwHxn{ioLu4AgP0|b77bpHRNuQVLi>kab;A}CYb8+G~ zNvhPi0;m)U0u{@Ss$di+ew!rDH}->&N~ur*2Rhw3D^L6w2`9dbhbcLOxUJ^c;f}wg zjvZnb6(Y-A6kl17#aZx-wFCbbz>!0r>4%#?+FYLsy1oVNm*UnwcXSw`k<{7`jA~X2 z#_|Y{77NIa$zA-pv400d+)8van2iU{grC=a8-XFEbiAz4mmB-XDJdDh4&Bb;?Ff3F zKzOY8SWz3_Vw|GoJC zEdJ5;<9n2P;9d=?uET#M@ZJYi1)R^-C1@{vK~>@l>L87tA&@bfIvH|Db=P%(!QZZA z%lI!uJ}h@a;Pdlum?zVglOVBfV9PhE|Cg|!=!sqEUlXPf0Jf$A^9#FDQK1i}lz&1m zrk2V2>g9m@K*+^Lq!Ns1(m`}iaUg)TkN|NYfGr{c;y{4l!tdIM0|9KT%2^IKI}TzQ zr-0HlFqLq`vl1r$gmk=wBc9D`;?GXUOE?;Z>quvTPu|M@+G!n0hJ(}^g#T}-e63=J zYksLf*&7R3*yXh)y6yV`w*Rwq4y-jz$-(F;IWUuQYjxY_TSv`dCwv8Rnj-)v=KUx$ zRtS7ZQe<+%Thi$m*o`Ys#*oy9U~2zTg6%_AN~U|#nHadUOusjo9!zIq;LMq*lu$N) z0JOf|&^oPOq*hcfMw00(s$=M5o#kXt?ZS9bl?}D}H2Hu;NJ_^dvS+Lx`QvnKw-GGD zGR;VN^pEW6D!-%?k3N+OAoq@Pe_mQZRRhvEB+Ww7AXUnJNEesF78_Yw&|x1lDytxk zGcsI|yd(P;B>TvQDn5LoYj^A!)k};|TkSNon(+JN3ztp&4)JEV*Bq%dO#Eri{Q|7hGiOS_4DNW=D_Xt?sBk&0|a`9FeRH!b@8AJe^=8yL97NfcvaHQDb! z!zkv+YK~R9O`=&Y>yQPOn35+d{T=8f>C!15x_CE{{KBuGJ-1;!EffBQE-Y(g!uoD- zeU+|L=z>0&313Fn!*tz4*CTY@OV^`xJxJGMbbX4huhaE;y1oI|bE_~%;)pIk`5#nX z@<&t>01+j?t!-%&;5X+^>sjs<6`+rWWZG}%Em2Bs2 z^~vKM_C%E9-IQy2R#w&eo< z`s_rzY&Zb5Rl~h1zKe~1k-pR)_dmek7@CI|DhGW?-J(y!829HWuAg!AX_)Ne9gq6n z0X#DPT*P|)IJ(Gh3=}5^yYq54;skr-1UquR@idCwnyU@x5|qm;=VTNm6L=hQV@y+f zpn_GHV-1cNd1%;$lranR9Q!iXyAW|FX-*69VUP;C;(rlMr-c$T{V)~47R~^%|8EHn z%5?vQZhtp8u{ZX#yA+Pb>1Z6e)s9b7M0=tWiETLBJK;S5?+%Hqv>!9 z2}2N5$Ge4b!$bs_+~eF*&VYlYik9c>CQ~WC{zByHu?v972K5)gThP9E3hIxM2Ybw4 zL9NG+0ZBdA(18_{FEB>|XEET5NarS>OfYHNdu(tvQpRh#3sD9DV@~?_$m?M*F&nG| z3a&J|p4LEv(6WNtAQ3B%HK1nLtMP)E&GLJ0x6tHd09+-vq9Fm(=kbRDHZiI-;XH!A5wCljGj0jUBfW}_vUEXMI^km>~a$B%H*ml?{O)@?joK2yw%WN{4Q_lp&H0=^Ce`gCo)=77^C^ ztH3Py_2S>dKlQ_L{Hu)6@Dkc(2>;X#RgNU#RfKcCJ~jQQNw4xn(=+UF{O^wR{Ba!n z7rft%HqS_7jbWh=qM&oTY515Be`fv$?tON>>O#GfcY<2q1eHaV7MTXtmatpqN(;$Zx?@qPn$+=33bTs= zq*&d(?R(Yc+Ze8V8^bZ*#xQ67@NJBl&iZv*BOT8Aam`{+l!Cg(-tua08AdeHq@eas%=#D`gxvwa^b~89>d6Bw~ZLdk!M=I{jku6nX2U zz9tB|@Gg);(dV#whZf~XH^y$LpU~C-y?_LU1X!aS{V?)iZ|4&DK>+senIjp`nS)n4clwKMWlb_}?hSlb`>yWULA6cWU%_riB; z%$K*7;NHATmZNYG`P1FMpKYqAgp$kH3#eMN7`L@v?W=0)X#hO<*K_y z)x$Kls}D^;qF`Zn37|%R>fgg&Q70%B-Iv+J`ux8|_pxNV_8NJ%`&hDahvj{2gXwCF z6JT2DPR{Wrz%H2y&dc0J4iww!B>L;v{b&I7r@oXG9E;j3_2)tLoT73I+3SlZIH#Hb zb3%YkNzur%7+AO-W^(6}uW)Ijt#yLOfgMkD@Lg6ACfTvb9R+Z|7heQt0kT89>fQ?b zr|Q>zR(^pshhqVP;vZ$lVaAuK?Wy{?WG=5nbrgZh1gCWq=!Qn?iy}&?dTBjW9%SSm zea=}Noh!J(k>r{S(Z0IXwTB70C=N-%aut>hji!bwQ32yPg+8w~-L>;mm8_kHZSaV8 zx(zPdl#2SAjH}ols&z84 zFD1{NMQSPNYvHfLZk5$`Bm(BDLIbFpXi%Q>z}k<6E`>2CCJr?6S0f(B+JAN4_`Gmzf)%2hmFL7^cwe8dMHj|MOErkvGRnh9X|8g*y{BVxSrt z#+KJTOpk47Ruhs>Xhn@1_t(j}9qh|oi6pgNWXtQ-4ey5^?g_l=drB}1MF`sruWkCe z3NHh`I)-3^sTbg21TTw#GKB+$1lu8hA$SjxVOK0KI2qIu4J^e~IO?+I6i9Xx)IdIr zs91^SVN}-3kxv_Nw!Q;xA#;h(*p~Gnk+;P#xi?9LJ&xLPu0FaQoSYg0b8_vMY(nGu z*}x1tvO~_XsdlFBL(6u7?!X;`1Ja4m)=6m|_f~Mu>Ncov7!TPT_oNoJrf!SN zKDg|S>+Uy5{z_D6X8tvLGceJfJSBK>84%a#wy0Ft}KYIrKtgn0Y+o=knRyMDH8^;EZJ@zTa zsGA2!g9`d+a5*0>R$>oVms_x`VOfO_qi#3wK5pDkMf9spuL`!&-8yHD?{_ zWLrP9?s;`&6Y|Th8@8%Vh;2R4^|L#7ZXW{Tb^M{ja8}zrZ zKONi9LVZcw&~}c3!T_5R+3;in*{>8wWJ8OYMoCOHxmLv(DFbeTPubAYtNK93+Ns?$ zdrPvbh+&C2pQ8;e@kp5sQMcj#+vo6xp~*D+9(HKyrLlbvhO3mtPn!*UcfK4x3U%6i zbRcE)12ynZ$d|TZC+=!PEA@XaHngn6huLghC2Z|kvEQ^!j8Y7xYP9MFDTO7!(h==V4T;8?x}0= zpJcrbWxZ@kAXpU3-Bn-x`K0t7eEn-ZQVJ?+mm%lNa;v`K;?v#OB%k(8#u(4GuOcdB zd?go~r}DMKI2pf#C?1O4=yTu+UTsi#3TayP%(oSzuQJAfr{zrUMvAf73~3W1@Esx$ zeQhxYv&wvr{DX*vuE=mF{@S9X`Y!WDOg8=9#AOQ1i~5K@uhyH;0+= zdT8pnuV!Oh#%t4MND`E>m`OL=<;^XIn1dw@jPdq))`X@ZyE7?z!i&I2EqdZ4O)Q5> z)D4WH$3&qII@USpgH7BKJQWR%6<|EetZhnq;O<=UYBl|YMg1UsIa{;%L;^l1o0U5kOjZ$XQ}eQYmBC_W-A z?+JXQ178|M2#oYEOGn^?9BmQ7X^idBRKe-+z~ox8NDR()sz+iX=&+fa4g{y{l6*2n z_Fy5N1qB~ITe7kc24vZwFdkp8h)7}#v`4HVK>?TO_S8qP2x(7A^B72j{;Ln5p^6h zfWI;mV2TDggF;7wRf}G`Nm&D{EO`enM7{6l1#xVNI`Ya+`;?`YwwS#xr=Rm z+Zvm_^R|Nsr92Z2MH~oV`GiL~iA8SfGn4~K3*hd9Q}}@@4^~*3n>Y4(J#!rYGQ2&B z!#8r19GC1nXkR5_GZp4zfdrOpJ{D*^{|Y>Cy&VcCXeCCeb$VZwr7N?FczfaisKR} zbK|d>RM$U&5?q+&y|4gEr2cXf)miA2g!0)Uz1f)%6idN1%Frd4m#FwuA#X z1;?@hC1!$G4)?K3X%Six;NEOP8Pcl|RO>qYXePEiJ-E z7*~2YnI^W=?8}bbI3+jpj4THj<{LQ`4(7!Pj%>*MYwt!w!A&r0K}c)#H~=tXLZnX| z33407rjcl;Isc_-+0liPo)p3zqN=qWkxDO$vd}N*Z(;ghpb#DE;`B$S(jSU6O5vP8 z&h*dzx2tCxyLoc@?3y)ov$0u3S>?c~O8gES6Qz(ndD0I^k= zGDTEw#wG1Rj$K`eOj*alsD17n*T)L7>gtodI2FfHMl|^r^a&hv%oLQKIHS_BoA)%-AZ| z1!L^Yf_=;fI1Su{Se2NMzK_b$cI6NFCqG4e1bs@vUx{}VPCjDV4${VZu||NS7P?J)0zzoQXzyaa4^7M_wf7CX@xkKOrPI8WKJh6zfwYqt>knRh51j z6&ubepST%CMDmFANai>YNx9a{`e&JQjO%`as$q-$>0aV%5Zgi+gY`?oahYE*$K>-tYQ2= ziT|`5aX?w<&DPO)M{)#Si*&sh{~JxX_9K-$lu49FQFbXe~-qugaFf(j(HPRmNQ#kavggAHim?2 zX9DIn-iDl8qiPLoBSc;Mv8fm@G&;aEIQLR#n#sz-r}g2ii)ntw_QZ2WolPBUcEw zAR1e~>m%8H650yuXQ_$y$bx*ZnLxOb>o@VJ74Rhpt|JY=5cg8NYxV#?@+MuC6Gb!n zv>naO)w2F;k=Eaahxs<>tF7a|8F!VKMCAJ)!}rgm51Co3M3zh{7ZCBD(Yuh&EHe>v zY*WU3Z+b#1BzzOLVQ7_vU}NPO(7jUI1@V)Iqd!=FI4l~rbk0hm>`9nAghkP&Z1kP$J#MkK`w zvb=R|dC+)RktneUl*ai8@%*iLrqYky3>=K8ATR+ET#HJLdBA5{Oe`dH%igW7jz&1P z4c4t%08(27gFd|LWtgeroeMVMInER!%Z%)( zXaIVNsurDY*HF$*SAx`z2*ygtQr6UJTp{_;*{0QFzjQrlf2lPY#=4PIWkBf-?-YWY zx_stY>aua>xZ%mDm3@^jazWm^n z@cD>56yZ=0+TeT->E4C#Yo>&si7?DftheAl8f>_?zAw^0ybJwD##r4h3b$*C^F|;!h7A$R&{RpC z66gmD@27-y(g|=U>k`;bVFrg|8c-(i?T=}RVf`454-^YE)pAmDI{^nHu_ch-1ecG% z)sulj1_FW;OrbmhT)@^J=$Z7&JrUh-hDhbQWqteGF+0YDA{{WMT91Mb)bAdSWp_W$ z#)vSMI@ls|YiAkHl#cIKmqtQ^%!DIzB4uam$Xw6o`?62CC?%4skD>KD$|KeruRqIB$9wh@yT5{gCA^r$u|gvEG8XBC+b1gh`l)^i1XbhKE-meW%pp_n+E z72;9&SI*XGu1SkRao@AZrPF7YOVBxTec4Gbl284WQWon9=c|lbi)x@=7D{Q8Ett1i zr{aGRsFs#pl+X9!pHsAS_#A{CkFay_A9aX{)IgoH8($NH#>Oj9KmRo#gWM(kcI11E zZSP-)Abf_7sfvybk%4q>ZNd#?E&pi5mRDZxia^q^l%06Dt^)Kpd1aHK@Tpk-a1i%itG0hzW@Vb!}#IU_2odL5ZUywsND zt(AzHc5Pqf+9~_|O(t`MHAStUenlJWbMVIaAbVqpoOgt*w#g(t8T{?l(sCSD%Z|!% zS16g5>Sb3v6dQ+Xj+GyShho7}9p$Bl@3S3dT#rpw_`Q`Zqv% zj9OfJsVh^xJW@vX!ysY~9o1eG-2=u&tmGcBZ0+Fmf}bo3u8@tbwufB zQooPE^0O2y7!(jm#vT_z`t}TvqJtoOpNsTh!L#v->{^bt*1S@OJKMV3s(&pW`aq%S zzh$_3z{imQkJb@#_fjRaYXjk#U^`pJ`|t`l9UlidASrQ|eEKVZ$1^vkx^C*42YzWY z3CsFB1UKG!@e%Y1{=%1$|7pIrZ58Ss-Wq#pD-=E$dufRkekbYv{ct_F@K-3I8GXaz#I}-`jQoy-&rl2hy9}Gb)#MM`1no zuA}$l*vnTK4d1Gyy7UYq06>aB0#{LnJ z<|v4WP%QR(W1P8~(;$>SavEgpEeN#nVH>PPy1_f}kgry`xKodHZQKo(-I~Yb0`X?w z+^rrF>CO~;(X#g{G4|rjzOZFJ!UGx*8n~|lTxx9SywnX!Sv^q_DefOc|Lvr>yR{yz zp*dI3`LxL&uoNE4y*FDg{Mqz=4B~zWC{&)N5|JjT)SB1@ZvtNBmG~+Tbm27GPH-Dy zREDvUP_^kMxU{6jI+HO3t-Pzv+ph2!rOc7^w3c8#d}siO&8kG2&(uV5sYBGZb?^Ak zXt?i@M>>Bapl9@xNMMG2wo`QT-#Za(wqg3a!^J2w*_6tRZ9^<(HXwp0M`9Vj`m$VD z;-~0wqZjN6++}(F()QkYe=qQ_zYzdy`TVvEP?PH3VI5h_XWZJA^rr!IYx3>(ynOmv za^<8B?Ozr!i;HX0i;JDdxf%K5^2(_yO@+v)P8q= zw7}!0@1GcRgxzFu=nv`$_QPqQirr*3eqO|Dyao>s2en5TL0xPK;4}fp4le){IsV=D zZRytL7;#Bo-SzZP+P_FDfL;V51QbX5Y^)u=0_BExvI-P)t&3S+f9n!`K}P`D9wM3h z{hy#^YQ^vmNp&4bSGjLjpg8_#3^s(Vb0XVXkNWVJfG<{~wseAbvqVT2zGa?{tA>UU zuZzwuh{*f?1RiQh)D>>V+6I_1*NV|TVG3NSv!1nE+@l3JJ8BN~cu^dA!>0;g=Zch7aSF^Iw3lRKnmr@Vgzi{YN7FYL}@;@JY(4518O7bRJI85sQ^dXJa@fbaq3wTlfSXDF}k6lx_Q; zN71#t^{vO%_jJRbGSgr1Ff};6X8b1I31IbQcJLVTVyUf!^-MbX$x(9&BKe5(o`16~ zt`&Bk_pqJX=RIsR<)FFY*(g&OHFXBc9D%wX<#dli#fdI6TtLwu-cBqDLQtPXt76de zmiCM-Ldy8&K&BcQEJ(tU*#$|vb`tzFid(!aX)GZc^S@H_Gd9l8)?_{sb}i;~*62fs zb_3W!c|&W0y^*E7>J0S{Y;OTGjxpt-HFrWW*cY)yeC=#-b$_mWo6_6M4XCTWe|RU5 zOARZoY^cWzK+>dx+ad5U4=c+jIPt|Y$ zHV*6YxY{CpYs0~^R3Y2|Fu~UWCceM;Wbnlq;JSP9FNX@?r~Y)A3<#oLo!aKbZ0maj z0D;FeBJjjPd6%Iqwm#QE-i?D6;njTHf=Bc{9%kgV=Mwv!wpf_-N&%_9Y7CfV?SpID zKR{X6cj&Y1Oj1nTXW2cZbnUZ6?WqqS6!&Aqx^#E-tds#s^cAP0BP$sqPUTGdYHd~A z(HOCMkDPSEkhRcuD@A6Hq`DB)EHvLX+284oO|36RzFz~x#J_+v4TmG2*~31{+WbJ= zM5wv`&sN%I4gQI|@HQ8?)4( z#-;Y-=J-FsCxjmR5%3%Ge3-Mi!S9hJJZ3r2J18snFdT!IOu%>vb|%=4w&=^s7rUbM zjAg(D2jjb8O~6gXnqSInp(7{(R&9PR?F}A8-Gajbvm2MdWX3{3Kc{IoSH-U#uKRFyk-c0P3MQl?tmo?gfbc?X<2yV`u8Q@I=sTwth%C z6TBYvz}n!Ao3b}g-D2lBYc&EHy{D-u8^=BH;EVLP3Uc5qRF$>SP|-K!HAjn zYme&-CeTK2!yUlD19~RTu1I8)DR11gYTRxTA=RI46h~;mO(;#^x&iicVIR-X8#ifz zF^2d&1jF%hP-3T%5F(mZ!!Yph3!XO84EDCX^N#%s}w@aeHz z#evmC|7S?plhY5Y_GR!5*J=s(UBKFm5bnU_9A67BWpk^3MzgiIARCV6LaW5Jeq8?_ z06sqjJ`ETGV#c9hxJGz8{J9F2$@=|&2O!m#9l6&AS#bMG@L2?B{9oc}H(RI-@8|gv ze04v(2Ne;OMh!kpIKBni9vlOgHAU^fRLB|9`f>~@tB^<{N2RhBq!H>9iRv5fq$46^_hq~BJvXuWPII*9f&jpXe zRX4ZisE_AZC6fRZmVi~GNn$t2*cdzI9bl+VMUiHV;ybtwBS4ZX4$=!^fCu47{-6)I zBNy2kTq*BxEo!W~#KOFP2Rd{iz!3y5cpDyezQv9-x&RC$TLFC;ePLOz4{Bnp)%1B) zA7_7FZ3{D_2Nhp*dbaSf1Ha&fleDqy+{>0~qDVJrc9x*34`PhbXHR5REPSV%$T z4Br}UE9ht8|9OpS@4F3M~+u`=P_0RT{G zMiF0M9Bv1zqIPUrSz;*2)IFJ+hqsWIUxLK#w;rM{k|&`&bAjUe$FNcCRZc5?pj(ImJ4qGpC^fV_qH=$mDp$bbu&I{u z4xj+Nf*exAH$h`gv6~z%gU87)5M44#CP6p=1Bp$li5$<$nL}NV{AScJ?dy>;_NLfX zo%E<2ce*wCBzuYn4Nrn5T=LA*uT0@CgZUP$d2!j@OnbtGE3L~l>G7^iVrqx0epbxsC_N{qqx3*dN9o9Ku5rU9YTPxVagAGyMvWSmB)-w8#9gB##;8$aOrpjZxBv5;Q@8K! zWdQT$`+vW0p!(ih%c-hUr%s(Zb*d`WZs3`seH}_yhtsjJ_7L3r7Z6L*jgY_20QDLo zc0MBlJwN^8cpKsw%(QJxhzSje7aW+5(bQKZ7qv>QfA^%9`M#Qik3;Brh(P%O5Do9ry%{(vBD0Zlh(r7W1 za$5)Sv}+j?9$<_c&`v=s5WAZ_EZv-a386I@JNfCpijN3ziW-}>Fp=*m^Ke}H#MG%| zk1y+#)U7o;p$e@K_=O`;ff4YB?q8Csenjf&-iU&w_pn3yMRLlC1g?V0yM=($+Xe)f zo&l5RD_|(7d^*jM^#s&1wH-S{#woLQ)(Y>Saz=VbUPFV6*=i6W*f&^DY^DrL#2p}( zTOF7?S*n*}!v)vgV8vUIn93{cY6@o<5%D^D1q;Z^CQBC^&C<|0JV9|z=-6vjuCB+?Nf zqPAhFoiWn0^ZT>ZX_+ffn6)5B!vupdKyIky|2|r@<5B$htUt3DO|}Wc z3^aT=)->9=0l`5C!v7nwt5x_vUznn8O6r8T3<6cDY+MF=;r?Q-Au4KN6{R$s2rG3@ zw&U5~p*3=BnA8}<((}atOAqXWBhXP$gmPt~x(L-rkO5Oc^9n_of`Qmtcq zO`-;4dyVRDfZIff(KpPerr0BDoym zBL^o}MWBPZ4PHiRH1R_vL8CV+$Q$d8v zN)n{#P)=gKW=m{bG*jpghR<+ige7c3^y<%}?yxVz+?PCc;-mO%#IdZ941B>-N`;$d z9L|7;SEr9tt^ukR38Fs)Q%VvoQI#MjMpeR?m749`jy9}{h?ZI=zV03HNKGj4e*}4| z|DXbYs;|{Q;@n9%+Cia&iDb_J-N-1As^>}$J8t$&&rj>Z@im0iEF%|@Ut(elL1=7V z5Tf6>p+RAW62evqGo0hi^I(@n7qc3f&q^@m7+I^?$Xb1kELPey-m==E80^kQ+7_ejTCBr{vp+`aHPl!$4m`1#YCP3zl~lia zEr$65|1SDtGeOe5o9&?b`j7>shX+5igHN0PIdm996MDNXOIi-sj$58XJ0T0MMgn|A7C{j0!S)K z(U|x^W6%cU2($&%F$uG)q{%%C0~k8N&ydVLm+zSwAUpR#d}FO;N>oO;+El;5d>*4J zhHPwr9EM2V!H>W1dE<-jsTgeypP!!|q7?cEC0er48BVIiYuLPg?axXM@;gCOIJ*oH zbLXKtb~k@RPCGoL+;(MlHUrORT@|Y1LzUO}eW4)JW3qW*fMN zGm$$HzZ&1R1~DDt+gV6mU`kEy!^kv}g_#>@E$KdjXB3gEu}(e%aWQE~*g}6bseuKS zKD@L8>m+*2UiBsf$}-sRHkrdy0f0Y4-I*tx;pF1U?J?SeGOQM%b<- z^cWQR#gT~U2BX7!e>8VMq*p0>78bmq_N>#3;>z_|2=ei^8 zF@RGTRj^Kg00>DC0!mf;FA~^jNGTPPEcL=WEr3~zD2pSqyLqR2d^gr$U|a=56gypG zck$WeE@88hpG-l;V#M1iNDdQK%EL9O#z1SqxS`QK4&J7b{#2%symLQlt>)Hp?Gv)* zn-=r?gTF%#BHLx4I6IleJh94s9JS3|PLJk4hb&7hC3Ba^_w~K;y%yAvyHpb7uD}C4 zJZc>R_~hYsH@zfb`wn)ufazvpkTpZ>Zl+8o-CrOVki2B9ei8QwWDoNhjVCz{mqf#> zVU$AOXb7@oLQ5CIC z@-!SQ)Lf41eLnXfq#Ghq;HGo19$(@98c|cpnAUM@Ew=Ic{t4JC$^M>mm$%;+p(#$2 zvn#5^w`B2~@ZoCkBsj`e9cAcIa6OHA(UOq2JWIzEge z$TLIo--qKqPEu-W5!TZ3zH_N?$ZVhgp612slz{2^fKgsRvjpsw52*73a67JKpj~07 z7+6uBd@r}VuR?#q^iG;5#}D-i8Ny*xV2hzdqk#rvgxn|L+cf}9)za7k7*_{j@I$?d zVK9U+_$-8RwaEaB+04Lw3h*^v8eWVqUOIQ!7Z~QB*|dHgLhbAoKp}4$tjb+4-lR_UBB8ckT!D8N^G5s&d!rJB|jZ%5A_qZ$ojK?R%)DNPIY)(Xi^v(aBK^nTEJ#NCs5Nm(Pj;+LX{@XgV9_F|uqW(JOl6P$oA zPdTQbDqR<{qxF`vFF-g`@q=zY5wmzQl(6_3oNNbJy`|rW`^+yWM0Kh^)?p4nf{;54 zznFGbhNJT%EzzchkW@zhu~ExoTU!TXj~-!g428Des$<(ILSIC6&G|*C0T`I6SHgUs zR2y=p08+a04R%(eN^HepcV+kg*$$gZ&pVLRHFl`JLJ&|JOK%&C3v$xCc=0eUq9NI) zu}1eL;vDhA&VKL^o#4PkI6Ag(qSB=6rEwFLCNhdw2NJ?9<<7*sN(jZ&Kk`}1bP1`a z&`=Ip+_xS)t^(PL&szB4qP6Y$;MF;evH0b<)>#VgdZ`h$?(+^+g|x!YC8qWmjR{)9Ey$cU4*=<+*D=|eAk=_2vA%*EW4#BB&y z$b|#ffyfB<`}p<0cITHj_MUE}sopA0;ZAmUDZ?@UsdN_ejdcrKdm-lr)(wLGZNANt zh?VFfDr)r!ids=ZI2aI&to2qIS<5?nW*ckBj^$*nur(a{PM|F0!19=vi=V|uICmo| z3uB$(Rk<6;9Gt_nQr$PlFz# zX}SB>*{L`*efnjZ>o?_^3-FcRdRra4meyk$V4!_i&}^3F40;?_)?*@0SkVOC4EH}z zEc`r$pOZsCg~ndb@3~%LyPIgrez!2q1%;m%OA@v>Zk2x-bXL(5oa|-~o$`Wu zk`@-)7_LbRBGXqzIL_*ZhWD?cUE(jwyEC%peV^NWt(sQEDBz&jG zN1bW(pIRAp=hLHirOPf48J%4|HLB8OSBwg`)HCmJO}5j;sI`?Y*}RF0EM?MlD%elC zBREZ>rIkj?TY#hr!1Xy?EH%s&y(T8zRD@Aurj{HVt&F=&=jHYMX7lR&32+h`JV~Sm zoKo{8$&Rv&R)Jw#-%4W@fd)173} z{m4rvFPPt~W4gL<(>O1!P@Sg5fppCCG?Vr=FRi>F?WyI{9>RQI*R*FMiVfVHZD8E) z!H^dq=?>3BUS#e-yFUKe&Kb-AcXFJCCngf%zT;w{!PvEn&rs$dPwY08mV$>ehk4#% zY&Um_%4x*Kti= zKp)>{BDV1#5YgF1qv?E_^38PA8hRw$zs{xas<1q&L+MZ$CgpD;$r{}_s$0^WKf(uA zdUmWuw-D-vH1W=h3WCo)0JmxLaAk^J6O{*qyUKVPcfSL6pBB6|mB|1oc#E|aO;_%2 z))XQRpGL%C6?i5Sy~Lj7Rdt)s7Rh}b za!9s@XHEk=*-q^3za*SS-ES__^=^8&G$2opvi%Ry6{K;Iaz0p~=<@YY-8ZgVw>8Gi z0N`)kPECkpu0_s)_Ja!3VZO%dy0-$F=zO_P`$ow3zlSVY);fjtE3{4t z?$iDmLuqT>(?0DXfE|!~AWlM~X0Ar>qaS{~J3j`dWfOK_|20Zhxc_>})A0E(ZBYIS z<^S()xgOiGMTo%-%0hN3rA>T6YzWJ3K!z3bOpjD?2I4l90W4XE9S8iL4%dip{(&2? zft_>MrB4odRKEnJDy4c3-a__6p`Mi&pZ*^r{eREXZJ1@Qp91vSd+}p;^Hny)v3v7F zIuj3`laO7J|0)!6fb^k|#kmIm%F@_sl&)tQJB^`5GzNrRj~t|$Ic7-Nh-(C3i9PpK z<`d|v=nVOSn;y|7d;Zq3iqr?$a)vz1jb+#e;fcrp=;POXsOBeo7FXaOQU71?(J%K) z{rVLjnX8a*?oqt{M=(PCY(puA zyugEPD<1L!54O47TaKkSs~_if&a>zk+$$kPF-x?W4@g&Ij3|M*FChoq2f^ue+u8Uz8Y|ua+ab?!{6sA{EwR$Qre)F!0vz;e_3z&@! zMAm^FH<8Tpg0hHhmYD2!v$>>-`5Vz}=Qjk>W_Lf%uy;`^Ks==oBBt^AQ0HmHk7S-M z%mPbq=+10)J>1~WfTPBkyrt$GV0%PhjqzR!MrEFEcET!Lb90Y zz6YS$_wj=j__y=Zye9>~6rW8jR*XvG0rSnA(6-M+LYWT$JL3KY zaADf{FOBo12PwSd1;9AH&jjA3+iXqa471)O?HHhw*Q`h{0IZGCP>OE=HP9ooSyg6t$z)b zP0(&sWo$QG?8rQ z>UOl>g3%?LDS5?WzXc3k*l(c=MLxDVB6%y4%ZWekKM0Xt3t_$)^h!2>ACRwyK&F#W zeX-9xGMqjf*dUzx)Z|2cz#tU#qz0i}wci%B=WnIy<9*R|72vp_*&0V`VUzcRP1Y-$ zY)CY~IJChShsHq^#hXJDagigixc@PLXoeUrINo$V4wBGUQ$ktqD<~u^Kt=neq!7m! zSAL;{Qg1nD%6O^~Yi*($mrz2&uWH>nQR^=e!*Ze87sXp0e9>M5aX&%ahF*zY03%cR zPw@>Pz1)A|WrV5p#6$ILjk5K|H4%wwXKJ1dVHG80*jwo%b)@;$IL32dL&={Z7Z^27 zjk*t^JeYfLA9J6_8wRabO&8Y=k{YI;rswoW&yhS0yh!$6fV4(?XT<#+9}RV}G_>yj z#;e$#?8ge%d1s|QTd{k8)sflOG4{3fp_1_d&6EGb72KF90FZoaB#6E?HfFvdFUlKgZi-(Fn9dlFyG zre48a7+<0AP2+~?)tj;dp>Q(7(u)r+e_xF16i-G1+be2Pdk5BfFxwTw4B|kUX}g*7 z3P@qE%@G;UefhxK%@M`w=Ifvyqr$(b>@tz5^MTfZ_m!@%e9z8)4gk5QNTb<4=#RPI z2)WKe55SVq9(X8i`ezAlE=iDXhetfR1(EL_fVcTfL(aSG5RhzHC}hs@^%BTj&=Zu< zo1Eu&Ch3PN2cuv4@0}se0or!nMtR(C@Y4|Oz)~8vr|6h~r5YUcyy`MM(%b5j(sIb% z7kK1zES@!Jo%Nue5vjf6t1uYY>0R~7At~hk1E%m8F8+;28jG^>5^^KR%ukqv|Ch9! zm;FO||5&w=!Y3Z7oVJ`GZg;aial^Yj-GL|(Wc^mJ3QJHRE>(nF$QF^BD7GZyT#jqd zSR+y~lw71@PuS;K)#dU4_tNu`)>&6>5xL ziE#G&D8Ji;pAj9{+l-yIqDxaLzp{~XouI1o1JZeA{=7n5%4^OlY)mxDS%qp}#Zygq zT46Hb9VwUwReI+YZXZ0auuq~72zf)IkM7hAoK;95=CnejWt^~pI~z?Q69P6KwjKnI zDl7+#`6gm=u90q+asEMS2X(iO$-D)m7%g5=+OGk8O=jedhG}P|VA|T47AmT4MRN$( z&u}MR0rtu+NxNG6-#KsA_De5m}(278D?~Ej#*zyW=jOY?#c2vlSjb zf_+Gsi^=Y^1{?$9{+@ox)FFwavK|hP+C^D$8zM!KMJ%{t2`MaB>8Z&GxO8QPoK=F$(}4GF~5SQJjS_rk1RO3XFB zqDx`uk1cpFk-)r)$x@*AAws_QAuDA)RQWTlvgpM6qCHw!=a3KwHur(YFe|-eE1#1r z!+C`Ej8A9}hfr$l$)lGTVzpzkLizDdX)*B+sl_3sE`eE8TYEy{fc!4grbjRi+@7eb3HSZ`nq(lKZnT}A#fIZ&g>0y2)R zBTviRSm^gM{eE8Phpofm%Z;64XM!-_dVbp&vF4QyCt-yaQ%$ zD6#bWu=N&7+eUr|(hFWCa4}-QI-!vk&Q~H%Pj@q<*P4qNM8=bGaD};*L1aAf*}vdQ zhVQtkdPzb}cBO1+U z*s;$-Wp3y>Adrs((cscui-U8C@@v%o=-UBv25*g;78Tw#5+rf&C>+AepMq1{c@l#1M-?*+x5i7| zxLTe+@TN9>U_KH<+p6MXF3{GQnr>^|bwz+UQUnCFBh6U!V1Vj?q}ft9c_#Z~AXnPb ztQt?_{IKld$K*dsOY^K>_O0-ih~cY$kPX;yvfw2z@DS?Y%ACA_nNu#x{hkF>BN`+n zPlGDfYQ`)g{;4hF|@GudNbUU-@2wPvrT%MU1RLp zp1pOKfS>zSi4UvCAx-i3fceIClBt08*Um%u8JD2~5Wg#tm z8un-bbS^bfv0tlWce7T`4CI-Uiv7n0Wk31fl=BMG;%Kx6rCRDfOkw}K<^2BEAb}b? zsIin+$O}BAJ;*EM1s-fhQVyTed?eNUhr0qOE%aGQA1}e0;KvF4z~UTJhuj>$er0#F zvC;$eX&|4BAYHtc#T01CB}00*%no7WY(8A{ta`nnzq0G)a0=tkGKoofA-9WO`68Uk zFYO28L3?AtSCZHh(FSkujvu0_0&9P^y94}r4la~VyvU|1nhr(Mf7bJ*JM-yr?C7_I z5Q@%WF+^{QML!GnKf>Q&MCs8=5yo}7@);S}P||k`OB!*%Mh|zs!B2I_Z3dCmL}P7@ zSmMVn;HuVYC=BHVri!vcU28insE>ODest9siYKUVcAaVv5DfQMCAt25Hj<{@!# z%I$St1M4z#WY9qn*gr1x43rynoiVMjPxzI>2?~P_zzN+&FonR-BMJ$uCbnhr0=f1` zU06I9;`(_JaaDDkMdAvc;tWzQATCwsfw@66=g;k z(yCO_0tEw}g+>?Bii6ISvh>vDiAN}9l{+drifvt_39jZhL_;7}S=Njtag-3aVxDLc z@e4q|@eA5OGYRO+s4)!$pS!&MIYUZDJ{(+e)q~|}2}Egif|hJ&S7d5CBk>EHYp}?WShm3IXfO9B<;!nB&65H+z& zTdmw7Q9{-YxO||Hu0?mfMaBv46%pFTbp^r3H_$kw`V5}>^imcN)+HQ>=Tnt(ptzx; z5eb~w6d|)Q>_>Q06drCjGU1q`a_)uJg(J$*NJT=n=^*inXs#(7$x_}UQ4(Ip*?xN$-c2Ei}{Tj|oc%%v(2bQD-`>qCul&R09~Qrmr;7L5ZK!)`TVLWOBV z7Rx*Vnh0lpN5Z^?{JI8VB1XbEexjYUg%LQD4gGU3z+%AL31v@K~?^PzTDU4gOQOp@kV)ks==FI23rnL!fgvi2NX@$U~iu@ z-N24$aHRDQNwyW&yD=5FrWrT^99;#44bMVs1qC+MbUcq(y0TLnZ>@<6nCgy);2V$2 zP^GeiRHAiJq2JEPymfbtrh}BhPn}*6An653u>DhmuCNYYutzX53FTR?1Ye6{;b5qG z5I`rSMV!+4IhvcJlI~co?)V1v^2XNzAmoN@s^pF8lbcNZRL@~7H@uq`j7}VhI5JLp`!k+EU7>%nUWMa2 zBmc-lPRIAoq?2x{NaS>&EBpxeg%Nd1lJm%SPB9}rdPIxS=fCi3NG>TbgH7%DXQ6|r0!u3YK%>L;ED5bX5%3%tu+x{PLHNwSECbHwqaR&eWZR1S6!OO%pCW_1&+CW#TjNRj813_ld`jb_d!rx`_eJ;=7Ua?%3IgV- z_sGn(hIVN;v8|h}mgl|qzga5|ER`cbvt|Fdc5w+pc9Z@kND~QD8Wblu9fyU5JUQ|3 zf6gtWUNKv$1uszvD#F(h;j{;@ji0+b=5njTxyw1NiZ@_7z|V$CSQ@8b=aGn9Kw(`c zT_8r{GJ#`t+yA78gkM z^GA+S5!zN2m9Vy|)S&D`C>rMO*{9^$E3yi!z7^?6_Gx}c~z&jm4cohxbBI81d za1ACbe8MP3&Qvl63_YI?uqQxb3$#FHcgAv(LqAM5eZOcuhJ|z1k!JdU*1ff|q1M=W zc@~S3>mO<1LA=5|F=6Y?sXULKnB;l%#PWtn4(2&wyGialFNoh4Ax`Kw{+(~h*eAHKsp=_`yH(O z&)WKPQAq#$p-0T&cp|jQv+Y)ckc8#qoCbZ!*LS z^g^8ff(OpF!uQabku zR4gVkiTg5M!KB7Xk7AFG83R=9u@m3dxs)MI?zW0zJJdKphV6?tcNzxL90>GbUY;M= zA*+y`a4nJ)EHaC{ATHYm+a0aB(l%seU^m70;}|{=(8Su^9R8iTLQbNeC5Q1O_oITc zF{cAhvTEIw4J1j#eFh$`?6Hld24k8l42!}Xjzn{tfIPdKGJ?cLuxO@U0nL{?j0u@Z z_*uTBT!5S;b}LX%hV6i=FS`k?P=@FF$~0_gxF5LjYQb9yz^g6-m+Hj0fjbrW3USWv zCc?z92#wo73?%WR;)vipjkEWJm1ElmFd(l+iW!KGz4lc|(dM2o4a7!YIg!qGAI4kF zrtu9p^WBS?FoRC0z#4V-}QE9$YB#10Js95$LKdAim}5`Uey4P zmj2m&(c#u?#RITCdc#E`a8{XHBZFb~hZmND0B^zWmm3(zmz$Lm3<7Cg0vRX$_lLYOljN z!-3!<`!HYU7$B2-{h5D@x7YtEj%5B`|48P|0uR{65&`Lkm|jySU%JJuPQ3(Sx(nWH z!ciolFZbTXn-W}$&b=m*Squ+9vs&E|tMBs_Z!PFE~uV zOoam=+aHU{Two3GjPX=tN#7zPgz-}}jKs5UwGD1;r>|}oFW!_71ybRr{7B|AlsqaM z=^?#QN-o$VpW4*}72J4UYX`TTvnjE5gqRA4gJCJ8i}R2YxXArOpjV7du;_xXxOxSl4^{!2R|YyoQ=l7nYkeQW`r=m!Y4=$~@^@k*xBhfiAk$O}A@ zo`<}^qsjA-7kKpbJmdu)1S>G)1s(#NK;;E}o@4oN(8dDLhS%x1qr~qA&`PodJUTl_7A0P=gor3|!84ExDs`p>nc>1|36rO=DQ*u;^{SALSJB=&ZV$2vl_-xskntS=?#TG@uxPvk)o z0Zf`E0EZ(IICNf3ek8Z{MhNyv%Iu}`8h8C+04)V@}EQac|raY=U0R?zs`Sd%g>MU zpTqdsw7Um+I6rsIe~#eiG5ODt{Jb{*>G1RU{O2fs4&1{7)xyu^`Og$TFU)_Y`T6tw zXDdJ7%73=u6I@a?t>3YopHfzqE1a@GRK&R--!SM^|4_hhuICrd0)-|bPXEK4vC2#^ zM-%ogAsz+7SC3=Ec9NemVWAysa+(DprAVY$31S(Fjoby}-p#@*5cUS^JaUUbO$4EN*(QQn=|z7lX2(K3H;rA^BiqK7JL3^0hB)5 z@zI!@ppWhK(V>q{K9aeK`n3Ze&d<>!eOrU-%)&h}W{d_d*Z8-LS7(mQ`$9+&FyWlQ zu5_;V%CoZ;=YLn8kn;#x1m_?}03PNc&@-{5t<&vpRw|9_PFS7vIM^P`8%_#gfcrD@ zjdOsC?7INL1VzFgf=7*!baIA<{tts)i zSFaNP7~9s>alm^r(jy z<}X1fZFXWw3Cd``iuSMbI{7B`cT#_C;6-N_z_YsckSof?QL>+$01rY#eA&)48Gu z0%NxI2L#4$8;TdE*x?1xXvY-9#RW6Oj_}=%(eQ`~!O4W$Q+Y#L5gXt2Y^A-C5d;D; zy`$hQ2U7|U z0t#zrz*!VCLZ~Jh!a5MH7hbS0;R>(=t~4NB(Qyr0;ZDecU`H&P4A@Q<Vs*!krtZ|iVLWPz+AAWLbyH`!;y!~Lr*wSjs?4plEPEZGJ;pNU7&IB zQX0wEu0Q~O&O-*IsdD8YVI|^vnp8=4rm|y$l_jFmgUetk9>5aTO+*K-Z88h(as!+v zbD{h54nPYBpIKkv!}H(Y@;OAtTc$_k-Sd%E&}dQtt*0R`Pz=RD@mLdxfYq3!a}}Bpc9kU=MO&(pEmcjd z0V%qL3USZ=rSN&XojD1G6h0=K@*SL(A@&;Q!P_X{L%BT(qOiKkRmEew2>AN z9Fy?)2uV5=Tnhx}A5;DF0KT&Q09Y}P*275)dAV*6)Zrk?XztCxq2!$(xo@NoMKtYV z&6#HbQrWRs_aJ0LB*>3L&a(tv9<`fo7eVcTs3b1Q>j|4Z1QD*Dwa2<(ns3^JJXkO@ z1QALpOl9rQkYyT*g$MDZDMy|R&8nKQ;TUc;c9yr{fP8B$0}Uv+e*#Q1_^>suHuDXT z&3apoU!n(O+_4-$VO^m6DttL;{&=z=x33E&RPUc%xy)8*=sPy z+VwaKbJfDX5jL)^eS{4p*8!NfBxYIkyTx{fp>&wi%>_;30)TmZgj%CwAeO2W8!u-# zNfaHMfugmRm;P(_=6C0-YS~aOffpdM#u>v^hLQE!bY#BwO zjEici@l?B7H|v&XF{f&dW-ei{Si3ji$N>5JA<*bN#>O9DR+KL*v(knBuKK=O>&WBF zt#ei8_j89-y)wuSiT=dy7KBKZvrw%?a`RcskWmI87BG#gnFFz)CdsoQk%5BfOQyOB>Js~ z1`Bd`($_M;*3Z{3Y>4#T$P$WXVMAmc+p(!!nsw5&Lvc*v!%9I-hHhShf?+?T!efCx z7V2YveH_4tl2&FWBsC==>MZ6M^4w|woT%JGOo>VYlqwm9bCO{IIN);4KH4ulJ#v8U~(8KO#u-l4PEY)B+tsyAJ{EirRHSavnf#!iErTA}`a{?pqiGl^{=PgS@tqJOyMBxLH~!anX)9 z5e=Hd{E|Qw542R~QX7}UgyYI$NCz^%>AaojiOT|GqdOU`Dijr$JE&!0W;ALbtCn)i zxe%J}3(@IqEVUPulaixs2;stu%)IhjInr(LB4ew@6SD-Mv9*_OSgFZ=%Yi!y5 z0Kot!6W*IP4cVMg%*2MCO+d6Maea?SRHT`0IGmkr9r&(_y0(?HKB+2Q^8hmPf9#(r ze8GqsHqT^mFj%ZNJxLj)`yEsZE2pNPv*p>Aq@$Mo*+#^3L03gtNTbsLm%OQOIX+Xs zo7Rz3e0CIMR3s5(S17)2?f1Ewj)fHVsr;ldcOrm-t*p~3Y+MSw31iG__hoMr?>2rE zbvQ=)8PiNW8=rPJ(+k`$vk?kF+C$8ymGcxRG-shd9X;{#1D*DVjhI?LtN(Ty-8G_-RMkeUuR)oj965HbA^WA8-! zE4b^5$lqFc-`yH`pnt3nMIeZsg=*n(wm#0}(aIS}6M|QmyeckUS>T zD2t%z!)RTjqqW+kdy2$W7}0`ds)`)DbM#rD=qb;*-redDQ zOr*M*6u!MWDr<-f6Kul0xv((B9!Nno4&+BU(oM8=y#R074@fU;?T+&SJrQmU_^f4q zq@{FeesliA{POhK(QNYbeXt`KDoC>&T;U>t6(-D8c(b( z_I!kIbMOdX(ncaugem{1UW#ly?LxGJ1;_Q4O=xypCNCF>&>ahgAxHRD>Jh#%>1G)G zPbShwWKIIo0yHY+ki&wNHnrVM8XTXS?>DCHoF+76$DctKVq4u1k7phQ#AJQkU?-l= zV0DvaPmVo2^9I5)pW+8+)W$)2>Ft7a$Iv$1njkUSdZqd{gIQYZzKiBgrSWc?_vTFR z`30nwfUY-K-gsswL`a@^22whMgw!(oi4Xac=aUs5@-NTlR`DS#Gd@b7Qpr>#?hF7Z zPpx|*4!`Z8r?z-HLF)TlICQkU?hgbdIzp7qf>CkazyDg+6P%QVZh5CsdO)M_P3IH# z2=dD2JQAALFVE7Y`(l}N4=9=!kBb~O3AE9mcxDFpnBo3C`V^8>ElHd?a&FPK0gAKLbqrGdw%P;AmUXe{v z+nEGNu!;u(itP@#K)h7XakAab3gT3}XF)mH9a#n2nan~+1zVtyERE14nGiPfUW_N! zV=<3n%+|T~@G1xEr+^^eoeD`&wG$xo=0YOR38SPV0@w~wH8q8KHwoII?{Q#wUiG?` z$gfMCHGN)bT`;0gMPk{@^f1b_Dqp6;>UFcNX@8Qel0sGY$Gn0C+W4$D#5&UeXf;2N z;ZJSMnGTO?X_xv?_uFAkLYxT759xK79W!^_5ioR{d_WfE15LOyQl^@m8F*mj;Ul0q zAdqcpj0O;c{mHu^nyD`bc5SMuLTm1PcixdM)EXYucjHGP2KMRn1ymzKmPI zyS7igB?xzFP;A`3hW%Wm&nVhCVx0nM6t=*I_KMn>U7IG@e71P#aCSxF*6`pdsS50h z5X{6BF_wJ-yFc(yi<~+kL}5rkWXh^Ijtz?j_3$5|Y5HoKupqN_#~@Tpf(2}%QsOvu zM0cNZ$qdhcnuO#9l>n)*ZyeHvG|}4lM$9Qy=u?X1=P~?gh-7y|k_K#Q?XEx~ZmGge zM@{Zb_$KK4HE1+9%lrC7Ecr0Ze` z5eiji=Wz-_u%Uy4tuGHOJuj4e0&K`S5pC6orFC$INY$p$2wc`_bk4RFujX+j;Cz9< zYRsE31Xw5a)W+oEY-2u68%uGke$Cb+umFv zh;Sv6)0`FNHKM9vTy~E<)R!iM9cAw3-#ye+8~vqs<6dhhh0( z_56sQq5kv$*ZjKAZxqjb1n~R<5GeUzZ!8*ueC#=5WWQ(fYc6>I&%gRmQYi9S+xYBrgzIuE{qJ%ZLQi8}Es%Y^1E~t<^7oHKvwac4MJ*^05=KTv`a zhU|TT3ysuYy;V36|72~dpMJ(QEEK=M*$)Zy-W+IR-_#O`Sd(lfF_`*7zC<@ljlw3R z63hf+L)6u%i2(Cx{k0-$Q`F3VytVlQt?RxiZP#Laz5M?UzIuNvd?EIK2VYT(#|fNk z=Z?)W8KlHh8;c56si&c~xX`Eg3t5;P zFcK>C^nL{t76sQZa^6-@n8fY@W1BEvmzj&#CqcZT7dhKH`ioK;3!zV*WOxKudA0&) zMFo#pA!QjBkXD@9wW&x7$uZWfBv%(=D-}K(s z;}Ed-BR@?-13`utIvA#KcsenpR;H{>NM%{Ve#CUkIx(f`dxyCggn@^VYSDuV^p<+b;hm4;s>|Emxn+4#1D__ka~P7HGIN(fv1m z?(?ghoRs@xpB2GG5aG(6?n&EmV3o5^MO0M=M}c?KbVOMElut;08S z`(NXmCG_yk_x}vvEHv=VhvHlC2Ykzu_?DN4m44ZugLjwZ<}-Qnh}=9r)xvZxUIPuV zhz$UEjHwIutJ&XlkPZm|1`|NbS)t?+qx)n|%M;vYCwDbGWz}GK#DD(} zjVX~xJMuEi@IE~U106E#%@Ml!QD%-H{$`GVnVh+s?3bvfC)_b%NVnPRB%w60=ShN} zZJ{`?+4>i`S1J!E}gs)OB<@QSJ3{VZW36&rJ-t$hj^7edT2P;-TBK|G2wlfD_uG!Yb zEYm^!`1>8?hAf7MTnrs%cazqZDe_nmG|3JLNkRXR3)YcOL5y_1078fL5nkQH5SE<$ zxbJZ|JZd{GfQPZ|Bkke{4D>&3K!u(y%crVgn#G7ktS2grAm;9mAh{`0O#5Okuo(d_ z8;spuXcYaXGP9VUneA!jB=e=T=V~+unHQJ?dh>>7t?M%7bkHH|CbZWjMqVl5eQd99 z$NP#e3^r^I3h9Vk7`#;-#cZ{rh#s(zsO@;gZ-ec@p3Fw8npo%05m2Ou1NMk_<&QAanP(28GkB3lbn&8xA9tsBLMyFnZh0sd=VTRImLGD8}&aSawe| zo^;q0SOf_TOd8{)9|5dcdu0mKY!X{6i%tf!Z~U019N1%1+RiFOGd9}SS?{keZBPH+ z#Cf3kv^ zd-9(glrn$Me{vAY3|Qbn23r&^xB<)tGAqYkY!R_8H2k9M{fLb?7_;MflrV5ZV$46q z5!RWo{xOy>86ntR!I(R*5>H6Of$f2vXTTF`>a{F~He0+Zy8>wC9^d2eG&c^yC^M2p z17QXqbu)Nk`#T#c>K={X0842@0K0cXbv;ID2A;DADAQR09YM0aF0&9-UrXF)k4M-V z1s`=!0(?2!Gf*cnG1{pK?H}oU0F+qqMV`@`H++i4>MzrV=sOd(1MnmqgXy1r?odoI`%)=^5pCD$tHL2%n z6JcCMOGE^H*OiK7@e51OBgXD5)ZP%ON9|U^(>V%YYhx>*GKM*I)%La89o%COmTEGQ z7(KSaaS=fRLUNZTdKa;z8Uqn$x|XjzENj97;j9S0^*-PJA8gtdkuH{E9 z^AezW{n&)hIVqn_UW0UH(7=A2zLQ^G_spg_C%wM+aVM>hJ$v#q>Gd_Fz4=y_M^wXZ3_1$Ayu0M0puiW$JWv;#Wk@wHLLoW!>kOZukBTm%a8z`tsc)*Id5wo_()A|94Mb-R=J2>e_q$vf=dAw_Shd zl=(MwUUBe^(WNtPdV9mVo0{MM+fB`VCf|I~3;($Ji9a53%R|qsyd|;CMYnvCe*Tu9 zT<+ZV^h-^*UzfY+_6I)M^{ykXPyBe~oQ(rsa^42%@ z9J20>&_peGMc8Wfn zSTyIPJ|lnhou&hRw6^K|H!p9RIel#31OGC&@9*{>-EYUfPxRmA5^N=S_TB-`kV6N) zar2}>+rNMA;QLN@hSVML>W~?cFNfS+IdkYSCmk_##_fk~d*nf%gv6{8mZ`~FdTJh*-8l|O~j&rG>2{e$x+ zw6^_odTYZ+*R-Zy|EhK9eGQ|3`Q?eDht@tk=8DQbV;_2PMf=#T9i=cUKb z&i!Njmwor0@R!{8cR2LTwUfrhj^44)6~EoF&zR=PH~##lohm=cOqt*E;*=40UNd#c zx*MjpPkVmq1E&s}*1V}|divy-rZ+E5@4DT@-ZKwBf2Wz#rhPc`yy3U)zA{<6$7%cB zzvqRM2hYB~X87zi#~wHP2ff~%{ra*C=k$NA|J?o?&z<++Gq28n_WtU9&+oNx-_-cd z1!FIIeL+L&=L=^q*mM66E?jWH@tI8rTsQnT2i~&iyhX3h{%FykCR}sy^mVhB%zR|y zlHS4$J{hVWu9a4Gwu_K@R;J7<}`lr>Y*vK`%+Wwg} zkFS5S`yV@h+Wo=}soX7BP04L@*A*v%Em-@&QJjT2i>zgIf>|62cOKmBa4*Bzkgc)T z%7Qd%-2?YGxFI3S!uA)7#^$%fy#-eXn^oKnV6BA1;RDvaa38|eSHfTdZUfwVaDyV) zdjt0z+!t_dQJmilcLQ8JW?5LuwwA$N3inI6zrqcPbd!ws&%x%hDF;U0tw)#9EPxNf+s;XZ>K(F<_k&WHOYTpjEc_Jg|# z?lZU+tY^%DI~MLbxYyt+6DTL#BDgc)Zich!Eo&^?zHmQ;dmV0IgJn&DI}z@7xcA_i z8<8K}`EW18QHtw?I~MLLxQ%epB)**0b!#xJ~ zA>1|tE$cA2i{O3@*J}{U3zvbr8}83={RRWiaNTgX!2KHTYq(L(C@Gn3OCZh*++0^!rciM8f96N;a0)@0PaJ$i7iM6 zcN5%;a8)Vb6>eX+^>7csRirIzJRDAwv2KBT4=&k?GqT~1g}WJU6I{FvbO3iG+(mGY z!u=U8H5zu7a1X)#8LoN^=o9V~xI5uKfa^OJ^apn;+&ysb!!@*{ec`T!`vu%baJ!5{ zzk}NZ*Ka)92kut5PvAyxhjX~$E`WOw?x@K~Ki$e$tF5E0E|{VphWEvIKO8=bAeJ0u zt-y00l<9|Iabz*#tU`=s)}C-(h~-*Kt+{wV2L8(>WU0l!wx#$y3IU67Rxm*?N7R+p zeu%>7VX#_VjHHakFEqWi|JIaa8On30oY~cw~Mazz<^N zMX(@q5qUXso&iwHq>L*O%ax{x0G8 zh}{E0EEj|3BdTld0Y{(v5OGAg(#@BKUS{np7ew6yFo-6W zlx5B!={&r%P}d;pf-Se_d?Z?o=vlNW0URaBRA9u{5`ZUqk4B4hp^l`|W!A?4KEW^Y zK8T=^NxmzA|22rTG#`Bz1DZJ8He^|8Ma=Gqv>I)_9Jy!lOT6s`K!weD2oj7bhsk*; z($VQL5IkOkNsT+ha|t477u0^Dh1(mxE@+F?N_zSW z3v(Pwn*k*DN>`vVYt~^gYOoAseZ1sD+%dP=;XI|1uvfsF6iQ+)hM%=?X{psgWG<3s z)jr0uuRxDljAD|o3o*pzKNNmTtw)h~8%@l5?Fv`e$3A9JG(t}>e8L=B2^Q*OsY`mU zc6R8}toEMa5LH@cmTHE4k-DH%u$q0kVTD!-)Gi_U<$|ya5oxzAQ*L4TOZnq`X^lGp zY_j&}orPXVElUu@rkM_8E(c=KM8FhVn9nZQ9<0DW*E$Y9OReVtV%oPYkG2W%;PJ=C zNS=<#O^6<{F_t3(+FcCl)7+=QXSUGE3acH7cJZ5F8j8y?fTTJP(Uu@u27csb8b9WDFUElM0FZ1pu{l%hi|x0A#tWzjl^V)UtB^a8u0c??Fbxw9HfUxog!}%`W(n zhL>6&BVwCIRH9=q(|*UsB}1AGhR_B3Sr-*qiO_jb3?n`P?E-jgK-Qgw;(&H4qU_Bm z9QVkyly&VQ5f$4#@vG?o!+bf^7WSJT0O)tNjJ#4*k+oz|W44k%2rD)Sk7ZUa@dmOO z>Q`;Lv;eU~p3bIZ)T6AnSOEtrC2Hc~*rMXkKq72o8fgDJXIh$6#ax5(%y1uN6p#q->MWXQ>Fg!-E2<(TnuB?LvRyI-0U$aOU7<*>|MTL}e zEsLY5@EA}Q&{l}(s{P34;a(kni$sp!ibOpNr;;AA$dQWjJ+XRFE#_E$WR{zw1-r}P z!a$GAOV)~bPrmkYI|~5vt>ur+^8g(^40}l^fE)>=a|l{${Q}Xa`8CQS4@y`pp7OM< z8?RnxvA4`zJ>t@i=COYAtUY>xHvM|5P(_rm9Nw_%iHm;ejzF@&oMd02$-*|DV>?Ol?24ttA zi-RQX+Bh83mjD?-`Bn*_6e-lVY=KI>8CVu=O@dfvory#NF{Lm+wooBfS=-V$+O8V_ zYAd9zAjUnRA&B391I!-mUKIL!64VQ^?p13qV9I;{QV?745qk?Wy7$$Cf3A z2bH#YPiVdf;LM0jW}u=PSqiZ=-H`5bkwrXd^=Tvt2naz|5EK@g5|FXGP(;qOmw^Py z5cIjAFIEC|YM@?K{Ud!@wY$%t* zyXB*@1J6WFg4LsLFVJ!3f{^Ax_S+YeIBz)PK(;>|hwlN1KCG~vwfWd1SR^tnGWQ)2 z(Xek7VdlegML=|!g9vlC%nAszP%%2j>&J;hXJ6Jgx;e!%GSa=oialNx`}PMkJf$ z*R52SvL@rC7@-B`e(6?S2i6A@*ilDkjdQvs1(YB}UnP63u-dZ}D^Z{$ba zk|(L(f#hbyn~BCQq-1h}!urPhK=I*^cx;B^FEv=?^)S>*btdgd8W^NJV)cgL zLKOl@_%H$R1dF+FV-ywG6iclgkZddX zZ=nP>AD|1hNUs6Rh;mfQM&g9XryLuab0b-nQV7R#cBtjhsT9_4dnD^9WXNP&szCLI z+@9F)N+iaO+R7v;(J>cgl$8ADBR_Vd|3S3CbY=5x#)e;NeahPOEI-bb>a$OAl1*-? zYJfH@6&S)|nLQzbQK&7Ta_KnuQ|c<#87)WB4qy853aM4!5_!Fd#DNKQA+_&={FYmN zuwr3UnS@zf9LlWZ9jyE$L>;fKuFdAn0LjI*KvU5rwaaM7)I1g;;V^9vVu&(@4p};0 z_ESX?2|{F_OXUlkUt znAZGB;ApJz1y&pU>iWe}?(scD3~&z}f(qq*ZHK8~JB6y7=a6)~-=RutL#bLtq{8}q zjD!>lPr~!W-h!?UBm&o8Ecgj6&)&XZQWeatNC6?ZU&8D z!)}Ss+<|1K=N1yCHZaLkSd4=QlP^`30(OUI1N*D7_ zpBBBkjRTNbTkcsq1G8Li;H-hAU!_-vd=&yu!5uIjIlS8tmic!E{zGV=Xd2sT7h+7?Pix)??d=(WeCNEDE*bSbxR z`nZSbB+npfnnhm(If2^KE%CaKkigM)*79y{epE9I(AlPo0)h-1e<^ZQA}CY}EJ6Y! zes5iS20PfLNIYS4gN}~pI&u^aJN<@(o3TJatt{tr)b}j`VmMbIVeE>ChJMtDqHt8C z2&464+mK~HhtGmOqds~#mfysev1T#TfF*;XM+IQFskX&($K?f!~nh9Q;`O{ofb z_=r4vD9pj1fc<~Oy$5(y)fV@?&z>ZN4xv|vCZI40B!qzJ$)rGfqlFTZ2?>NGq|ihO zf~XgS&=e2^1QY~O5d{TN6l1^kD}q=Mv0pWoD+sX442M|2e)ETxq{^wX@_HeZMOxn%;X|I;a|+fIUJHbN)*I|Iw>Ts?F6o%S>t- z^*H!F$~yedvu;?whRx(Pu)*=D`$)5bx{c2TxCskHcZwFNTC-tpnV1iaJx^E0oA*XM zfq8ElNSWv*G#OJ!Jvrl!PNn~t)Ffl?hL@Uh+R?j@)5u&=2H18?rWZdOe|g5!zM1Rt za!Tg0!0~$GX-zJD1h9vq!|A#5qj2{$Izf>ge`J%{3vAfr?XIExRa+L)ZSwAyBXK{f z(-bvhIHXjBQRI|A?_$%L@&1YTeu*7YiIAcBoIY-GF_!rrj1{IW8?Ht{%eV0L(%^&3<=TJVpbg0#MBt`oR z-FWHTy3{0i4%^!)OWlo^Tf|GJrF$*q*9t$Tq#n(}xw5nQXNQ~@DVfKk3Ae|`-Xxp; zJgdj%4yGs4sw0(8z-y=4BmVuTK6^N`Kc54QiC!1=*MA22Aur5(Xk+0|ryU)8CmT-U)=@&gXKfYb{ zR$IepUs5!?duFNepmve&mz}!%)3~_&@n6H7E+1@zDVaW_5Z z?q7aCm;J^|7d^gP&%JWPC2tiaZ}fd#vmx9geW-YmBI|vyT2S4ChWDwSM?Ou4SYyo{ z>Cg5?qbSiIY%a|;g!|Ck7S7^wxHGT3WUC#w=VPaPDbW>=s~e8S;}jL9?8=KZpN(Al zzRHIUOYqz{aesI&msbxZN6)>&UuvS+RaHCFQ4~>6gUjd0rMN|l_e((LDDvE9nohbJ-R9=Tj2TUD=j$4AgeY=1)ET&X zJ<0QI{YtCy3d%w+uMO{8CGf1vBNSD?Y{Dn^{BkAxE4(Q*-xEGbQM7a5c?!mRJM}ue zT8Ta13Q%iuC;GbreU{p=8h@=_XHxP3?s1_SgDch8{`)qH9L#h7k525BQRbaEzes65 zF?gKIQAxS)Ty&PIHtpO9m+pGbP-Ktet;Q0lQp|0&*{$t|{fQrY`6fUO2dZk0f=nygxZhP}rR#3BL z%-*kwjd*OTy{>w}!Lw9zq;MSfpYfQjvV=17`129IwJW`vdg-m5qNF`dcf1PY z#5~b3--7HllB}V-nt!L;*fb2IspS zmBrIa^Qx*VT=to+s-m(2dvT?`!ZoY9xWZN75G7efE_-=iK>_`7xV^a4UPYK%UR7LH zYA-Byl^}L;DSfR#g)6^mB!Z{Tt8&>3%c@H$P$e+aTPdy&xM7fePEm1wk-f60teUc! z>aqtoL~K;4eeBGV*s}cUnXb|*dwyAIm1}O5XO-+#WmLV&vXa>@l$PNtbXB-Y^Ii7r ziefuu><~k^&J}#UBCo_=Q0A(%mzJr_@~B36rSt5e6~zVNc2|jui>Y*o0m;>sRraDh z$~2E!q;y(|%Z_gp2)E}K6;u6mREOxxna32D7r828^Q!Vx6)6vU9<^X`>Fm6cVrsU* z4XVJmK_ye1QoCzrdDSK5JA^++ud2wSyC^KCqUkp5Gr308EY#9f6k1Z2Pd76&kE&DZ z5>cF>w0h=LSB1T-(9TU>X`e%1s8HpiBIf41Tm_X#R$1=KFQ#@cFe_>=ag|Q1DsqUB zL{(Y4vlQQ}z+IX(uiRy)Tc~!?7Xeu1QymIXrLqe9^+RqDMO?Vqr@D(13;w?t4;fq% z-xl3wsk)~!Zj=0yvP!z8sjmFI>Pj^Z3h2uY%&0|q?#4jdlvjnc1;zBO8nbB( zTEiVxF^e1E@dX#f`SuyEc|4kD7FY5pvr~E2m>IzptE?_BFX8TT_e!#wmU$)9%BUrZ zW^#HS&m6U^qKao}pQy@tGimx(s1hjuJo*|8ibHKRhrZsUoFh$1DYJ(bxXjKT?V6WX zQ8v4nzDI&)0=_tdo1($QrGZ;mJgvGSPfz#~m%|>DSIRk;yDGR5?CuO5qI;A*Gc_uW z3`u1reTN5{$2FHmAS#)eTwPLCT&{;Vmsre$mRj!53LRvhO1)K9S~8D>I*%q&NlDop zzNrArf12kpG&5ZG0W@<4noa7q0Rw2*4jgH}ekfUohEwx$>tGL^R%V$7hX~?c`2%CZ z)1|n842r8TkxU9Ek3)2FD$`>2Rh~VijBJ!c*c)Wmpt@AQAymI^x`8q5+1gd{u&AnV z<0$}Bc_0= z*gZL~gu9joA?_Q-wW0k})2BSIg1%{m=cdPSE3Gamafk`g#ie-_^rbTDTVArtW>Ars zZfx4DMlYU8!vU6_Z_-?K*i_LCSLauiRgAQ=4xmLrx9C8J2>lDI1l<4)>e;T6G8+5t z=}e}6QXEyS#2)Lar0=^?1KVvR$w23Ef%py?y+T>Fr5R5P7S|M`P}${5eT()Yd?gFn za++ppOwbHVEG;Z^k8VAuT?G{4UQxPopHlbIM6?&?k@=_k@*0;%!~41{UKCQRtH@l% z6_-$3kF;ld8l#3YRQD2%BwhzoGtGfQH=AEktd{M3thd@Y3OmF=zFeMHRYb#!Oivk2=&B-WNp2;Y7qdNP({PT8IpVf-Y<0Lg zdG7Y2ZJ?%dmXG|99TwFfOaOw79C6=C@jZ zRfj2GM)yb+MWQc-ayta?8Z>C&D|)UWC1rW!^;J}qRXFVSv=Uby_5RGf8N5Pce0wYk zYBZuR`3t2mHIze)A);J5Jy>~K59XE3BS;U?N&B~oo#AZZ!9n)X(d3nyj*ne=K9&n%nrdtv-7Y>Rof>DD0&GSw$Q<;7 zgI-K%AXvKsR{=7>ykPf?wnFo8lNsi2IEng-x|e;5#=VYSah9v$(MTR0=n&OBB$cb@ zUZZKSle^o%%{RAU#k_;Aw7Y1NLdDLhD5H*qK~y_^>T(`)G?d&yY9_hE*#U-+V9lny z20I&%4%7zK8bA(_!1bk>;-W6|@Bqk@q_&_s+4E`W(P|7!$Q3KFQ+2scdK0VnEe?@# znNPqs2ESQ3J%4lU@6R=hb(PSr%rZFaC1?v%>Y7H5D37yFV`z)V6F}dcwa*E?+?poq zJtW^579V%kw3RoPa#*5H8G2q_nr#_WHm{k5V$D>O_WyW$&V@s`8Qk{*`0`XXaHp=FTjs zEXyl*lvPag=MVnKz`vAEq#*3i>Xr=#uAXK+YbFm^1 z=bz>_n=CpX^IUCuu@p|5a5|~7OgOEW>`AjL;}C&=(O}W(Nxo&Vu+y-{tu{ZGZGBZ2 zUpjmnTiM*3ZE6Bu6f7fwojFyQza^JWX#G8WcFW;rmxu4dJa)Tm9$|s!^IiT%SiQhv z3-qUh#YsMgd#H@it~(ZWteb3^c_%_GY5I@6P0pkJbRo{=tKb1R#B@3p2`#7Z;+;cI z@c(q~n9Z9Ylw8H9NwiQ|>t|jyjc?k$@WM`A8lK80g*@ahpAwXa27-QeaD^Fxvj*DO zDA$0;q<+3Zxhk88VtUannRmq2B5yW%ROWuG(p5?|=}(Ipjw8%jq`Q|YkvEl|VbH#V zA6vjX=9Lewi}kRQ4)N0lMrE<+J zQ0UCOxqMjRF+Bh8GRvZ|<&jyR6dJ~P_A!}*twqZEpj(56Ej6KXDDjkqp5vIanD%wl zb~HuFyJcTC{I8$Hy5`b4ZB5l_+(MOfq~}WFEilgltNpBJ9NHP^9mBiY(kdQmz1dOi z&1p)K)kBxwf4tkn+T`9|(LmwHJ!6LjjA(Sdz^a9Q#hC8R5oZVXhO@v|lxGa@O&<{I zvoGC&`iyUw+V1i(qsJIC-6h`ntNk3$243y(q|YHnpm8rbHn)aJWf`AhX!p*HS*g#b zW2klPndA<^GS98DzRH_6&w6vm_fGcGeZFd*kWQv0y=A?DiK~E9L&g&<0eALdP zl>PC+=3~99XiAaaq1OxS#Cg%SjFVa_uH>W@vMKSH#n|`K7OXVCh_-WljA5-hv=!ss z`aH5Oe2Nc~IH@tu2peRpi^(3*PRGutkd4g?nq$15#{F9>CEoyM!qsUNIG^zt>bzP~ zo4U;@oyv$r_rX^MKNWLPiHYn-@P?fa-?Q<2su+%eez?UI8tdTc8spw3Iz($HJx#^h zt7lwpls!$aW7d?jh7Z-G!LvfQJ+O?QD0^)2G@3j5sh`=`?ne}Cz&tidQ`G_V zG*>B(-)QSd&ibWKxjgHqA3%GanK;Dk|MApJ`Lh4}jvsz zrFZ24_5nN=CufCa)9}wLr5`1rje=@=%W|?8WFC&-(W!Q?*xq`SV4mdiCAFKTI?*{Y z7lp@4?6-8vsw(j?8}3tq2r@e~erOrOvoh>pxBz37v4! zg69yC&W4X8Iq_w!PL{;I@L2N|wWAj#F15VclTp)|oJ5{JaJ(mQmy!i??|j&f?zqiog2MM4vc1#0^*2&Rp`ML&I&1 zsZsb;e0TkIa~ALs!O`r!%nadMbDOViu0_a zrAv)wI(OWqqk_(>uk4oUdQs=1$uB+OqN&jEStZ`2Q4gZc!LJXvc+jdHrg{dw@c+#w z`+qk~gSauSv`UhHNz=+>ne0G|E*-(qmXgjC%r|Zv%FE%i6FpLC9+i36_`U~f{->IWpGF{v&Jp*AsjJgM}(($^+uQAbr z$glG8EV1S;zx%`Mq+VX}0v@lF)^@{v5a3=iQBiIdYauHnpPU=t@($FZLC??J@4IMA zs+`RZ++h0UGg?`!bMX{xY|Xn<4m>tVF1+Exk1zO*fJ={qF14)YI;~G_9HK`9W2wxE za)jag;)tj5M^K5emp*_RfsyF>-pF4biUatzuVneEJVziNS$a6j^acdKY2hrT14i<4 ztmjMGH|1j?vINECkMy-V;Zhe3`%`$$4#8WQSnGYYMz%6T%}%(|5F=Nb9x9i(``kgl zDd2uMXuf7-+Gq7x&0pJ$2CwPRlWz4Kou04q^s#o>?pHy{i+1OY*9YM3apzIX@IzIw zwGp5v1lIYHc_L=__jsX>CWv*N<_G<<6}2wehRgP{J*lDGEy|;wCy-?jlyxzUj+*9` z{GN(w{HKu<#0wGL+EGt;E_WsPP=viS40wltx8Qkx==Nr4vs=mMENt0uRO=Z{+cw?| z(>SxD^7~47+q2;aue4lweQci`731;Ba0wl0t6Fnrc*0wTccrYiT)Vp8hQrcAKRJf& z1)UoUdOHi1_@552-9`WX18g#m$*ux&#V{b?`s&;MgC3y==#6>>+}&694Co9pN^M!# zI;kGlT|m=OZ8i0DgLjY^`}f{IpqGsrm@N+r%A?i2p};bSHAqh{8X?+kch{b`NtWZ| zzFbg-1t5>c>0kDZ^(mmP4?U9S=CeE!YgKT!#bw@fYnoLQY`%#|&o)!ZtdV~NFC5N- z&YjNe@ih6e%@{qCcJeDk?iXgPy_yYc{XvyO%@tO^*{mt`GDTC znmZ_K>A^PBd`G2wgDGY$Ao@V63!RJL6>Hofj~8puJL%xy@4m6+=``pPdZ*C4_uT8e zXQ5{hY}|Ekb2E`Gr4d6#nMcO@IXEvu?%fbp0v%$uJsyu!GhzooFMCDNGHbrPY|T|n z86th!!MSQzu$9^Abb2(6EJH=(yGG@BtAW7HgA5y3Chi9F6ouAFa$nrfv(z#2Jo*8~ zM%Ug^WB9!#9$PTxG|==jbN&2LJrm8MEzIO3XG(llf;#@;9W#wfvmw-?OV3Q~QSN71 z+{~9R=KZqi1q9vUFfJplcIU{d0`%r^QdwC!ITKZCXz1>;8Wry>I_&P%kA3L&l%5KH$EAI`$o;+@pc@o;CR7xq&>!&ku^CcAu2Ita$0IqV$8V7nORX;*_qt9 z$hE8ToEteK*6;bj>%81F)6u|XJ8pimhRvmVXOo7ZhgXClug7kHH9PWPOZD7Pe^Q|S z*nt9ucublSD+LBOy>f}3<&mRXu@Qg9+}dGTD9@V*|BrVrs)&X;QE9Z(t)iVK9jtLv zU&-C}_#-8}l=Qzo>*GW4c~N}W;IUg>X*51vxUT>Iyf8U1N*^TgnaLmh5tu_PG8!31 z?v83OL>qrD#3!+qDP>=LY9oKL@P}@<$0F(R3LV#--#Nga52m*y^?uespq>__=_`o8O_6UX{>j6H>}4sSt4>8rt&);^tUyQzUq?Ar^)5Kd#)(v z!vnXUWm+RP^ZL0$K^c$iJX%JqXG)E}gFw$*xSHCHrFk-yUx_#0RsLfyK99_x{>var z5aJN=oR!B}|>4ST3zUH;Z%o*3*#t+ycf4W&jO9#}J>w9Jkz438N1l%}s`;eUH} zPYUP%OZtz#&p?EZkRo)T6d9SZncFTVE&q1pf1`IFe0@#J?MJ>cC_K41zoM+Ntgy;4 z#x<3mZR0KbN=JFYRB@&2B06(av>`aP5H0Ax*+U!wj=G!rdMw_*USTL5ZWoL@zUmKzgUF#E{ofu31-$b0dlsLMiY$`{l ze^gSNF~8pv(bPups}aaI$EANs|NTJ!(eJ2>o9MqUz36u^i6>BaXNpT-%^^4mT}FKR zt#|ri0wKca{}0lCO>{WN>8j&!zP|Jyw;x}lU%S+I>O>!#UvPt)m`iOVwijU}F zv@?7}f#DFX#2#a-;YZ2O(3R0LMEZ#Fl2bh<_t59p@wv5)KZn>jG?vs)jJ2JiRJW0~ z5_@f1jb`FnuZ~_mVy0J~S4Z)>*CSqj^h>dv=R6+=)$1dlcYL~vdeTO8c2 zbN)OGIv%|d<;^X7iX*LVZs{ZDwB`Fc@AtBw zk7(MCKR-KY{~#aXGx&Sb;=z1n8}!Y=#|HZdKL_g!|2(f|Vu3%0whrJnse=AKl<(9Q z#3fD`#-%?$tR2oz%H%s8pBa`(_p3BJEVGrkW-QlGjN^OxaojuOe8gwtxjtyGJA?X zg`7iXA*Xt>lw1Di(oai$#JRG!%Y4L3tM;t&5%;alqkepM9j7|Ek+1&%ZFLv7X8<(g zF1|h&x(d1%`aJX_=y_=8O&l{AnhBl0iCd{=6PNYSrnQ@V#4FHKo48HBMQD@F94Bov zr=1F&iz}NpbFV#)&+kA#fqn)34*C=HH>hzp=hFn*3TlT2LldAKxBPs!kLb6BW2SHA zv3l3mcYJ)rqx6}^gAeyh^KJaO9kkCju6g>lx68VUqHWw$Rol3y_H5&R-*^wth(q^q z+t!i#h_~yCHmhmg~D?4h&|?BFr;0%=#_yOU>1 z#H}B0B9mVJOK0^K2@jf0u z1McJatL|HLpO4rGed0d8FaHg!mAm-vcJJcP`=KxH<|`}i=NcM&c$~K-rSY(ba~rsq zYxV8kf9-80!~_4@>m#~7z@sGwnoZhMEPjAT+BRJI0vf%K z9*yH4?sgIbC z>!0p#N2z3MzOw%j&cFA8PfJ^gDCpD!T*~$Xe2<3@aBsc=eINQQX)`hMAY03^2RTkT zbp63St9pxX51u?obw0$U_kk8d4e&ZA2(t@uq8RuiL=t zdz0Pfg`th85qFBFqBq-qqNj;kiar#Z>1`r!q9zopjW`QxY1om=ccAtLeG?;vT>$kk zf`mcoYzC+6VT?prU!o2~VPYF`01^E%w=o)Fp$O|`Bvaj}W=Pl1;B}{s$N=>>@`N{4 zyqNy$A_f=*h*^oS03t~-=Texr7;Y4T_;+u;#Ry{>>arFwV~irCJ4n<+q#4VEVQ(Xj zBP`3<3~Dd$q+b>uV{8?RD9-^z-bD8xor|a+(N2Ud)L{=JtX79T0y;)Cm|{Lftsul1 zYUCkeqHzlJo2CyDvzzTsS|ukMpWtqG#%s zDE~I%38F-5oel=K;LEntHgBR%2KR&XI&E7^WCtaHW*P&LZob!2uXIsi3_-e+MA<}v zpl>w=A?EL1zTV!V+K5KjwcftoQ^af|0TfC^KmKf_f>OLEQp^QLHfSDEKiZ5H7~IyY ziF%2}Mj68HMa;!UIp|@~QlrY?HakLtuZ!4htU~E^6xKm(BjWpe12OM0?x8!P-%2Oy zB6b@OAm&%zUOsEdS5Y*~C)CGV955b5x(T4ij3bDd2RdjR1r>rGH=aYxDxz`XuD1U5OWM-ddXmfjR*P2Fwi8BuZ#tifSSs5$@4+Y zfaWp-G@DBI7TskgV%9Xdxe3ipnFZPj>M6&7c7yCP7qpjXiRdk-fDR+9x6A__1ND*l zpw~csr3-Wdbd8)3I!82443W#xO6Q3tilOpuP;=j#oAe^uDuum`=mScXJCSY((G-y` z?*loBiimcjUB(l66YY`S*4<{xy&!eBdGZ0In~skHlm{ixoc|Kl7)A0h(sgXgVMX!?Vh#XJmrsF$iIy8P*ZOLw;SnZ$xo5zQ<^?Q%(oD8j{FL_oJAOj z?x7yEMA~dMM8AWUNk1Fg@}|u`@I7KIlN~`lK+9z}GW%^r0Fk#?DSK0x5RpV(#40%) zVMz#Erzsb-NnVFA7ihCg09Apu$P~~z(7kf9Z7bd1LqtN{E2kptIiem!F3_h$#bURt z1o<@oz;~v&U(NybC7LDn$m>BdMAc%iTnMTpnkOERi$Pn7ZV>zAEudG47Kw-C?I79W z1K*p)!*UhKL3EqgFV}(6iM+)las#M9(_Nt3h*nY9W*hg>-9$nhkPniPY9k&(%meZv z&{5E1@^Q4_aiT8bkbD|pClGc-(;3i9@+88(BN``OmS;fc5%#M53e=({*X*D2yp3na z)kM9-YtrV$)+PvaTKaf#U6P2Vh|{tOXbMpgQB%+Xq76hXKra({iw|W7FSehb5OonB z$zBNi5n*2uvCaA~`4Qei+D1{#Hlkyz4}5c_mn{u3?L^+9r7agU7}VO92MPgouvL5U z$QljmX1f_-xkNRFzwH)KCBpn||3F=CBI+UnY->^8Dx&2^kftq&8EU)V%e~r%+xCEz zt&6qoMY{VbX04HIdjKWW5p5PJwkJU!5UrQlwwFP&HHT%}UPZdjMBXCTcFIfA-Co_A z?|qW(eUS1lN^GY=s=RXB2cSU2oMZbCxm<@_=G#8rh#3#MPtzFCgPKY}PivYBdREhN(ASzagS@;{p8G&8G#vpA(DV{0NYneE2u)vt zk~CcaP0`ej=vAo{yORL{mh*_X1EXQ4!INpz%cBL^a-St5N8^2&885bZ0lE!(1o{&6EvQ3q+7IygM`#o3fXte<(7wo2OS5U2d#zfhCT=V5c)0DyECV42X#Q>p;Ms?pm#tYg+32G2R#pM)`fHE2^|V` zLi3?>p|?YKLLY~|3Oxt)>dHCvgN8wKpwpnUp|?Trgl>cGht@&ghkgz9?#8+GfCfXS zK<7Yjhi-u$fu4YV1^pe`sXON|2pS8W2)zlq3;HDVE$FAvAE3WOJM`cjMnES+=Rj9M z_d=h8z6bp`v{_HI12hgg2|5?L3VJW}DD)Jx9@^?EPCEb^1X94Lt+>723hh zsro=8pqbDj=wj%0=u^;B&>x{qdU4ur&;V#WbOLk^bS3nD=yB+2=mltp-kif=XcROX zS^`}JT?>5>`W*Bf=vn9wQ13pRPX}l}=tyV^bSiWX^mgc0=p)c)pzlM^L;d=4Zr4EL zpi`hXKvzTWgC2#x1w9M>1=^w?=g=J*08NDEL+3-+K=(kOfu4Z=8`|V*&Y>4H5Sk8k zL2ID9p+})7p!LwM{W+}z8V?-@odvxax(#{|`XcmesNVoiI~1A;t%h!b9*2GlZ84Bz zUJD%qt%lwOJqUdjdKUT%wBl|_+R}Wi!g*w zz!Rk11CEkj6YwnQm9GC3V2d<_ZAg>I^qP4?0waBV?jp^p**+wSbPx1V=u^<=pszsR zgq|GIPUO^l20afIL-|TGXjjr;am~<`Q8_ikaU~9#1kHx#Li3>0pcT*s&|9Hvp<74| zaUbPoh_@m+WYvvwk-UJK@Omj`ny)xzt7KaHjO1b;!Q+F4y! zpPviKa2n#ZkjEm@YnqM-q;?J%Q9)PU9KpSF2I|>6^GBNf)mDrOZ5!8CObYEtIxEx` z*;dqqHX*GG4W%m|g+`J76dFg`B5X8ipRlyJ%$m=_xSoT$HA4laz@D*po zPxLuG;@3v6JRZR{JdT(zK>r!x9pAA2lOspbm1&XON@bBNtkByc18MxMhwg%IXumx^ zz2;CP>v2*;oQT}3;~V0G$cO3kH<5h5GKzC+0qp`E01bgALdQb$qPT`LqxfDbp!1@* zhD&k%4pJVy+v9U;ZjUw+a%wh0caj?7!RQrKlaHf02ksHG{_0-pqqztymXRoX}QmB{f8NEY~wGc0PSBiCsuKKbFUj zx^g_i{W(0gmO^V{*CEbE(pzG;kRFfNLAo5N?!=W%vAgL?l9O}JfR2Y2I8W2{8BV^t zD(DT++nizH!Q#m{o`Y{d{|)tx=PNy-BcY?AF6aX2O6V@=lhC)IUqOF|c1z%VhCHbk{6^}uuCEbun?Uuw>Zie2GbQ4{P}7^d{&8#JL}z_e1Z2-Ud~clhqI@sKXrSjnKzZ%14u(OyLpuOG+huR+dnG_D)?w zSDL2scx#!;chNreHoDR$b;W41HmN+q-$;EdqOF*dQWD)(+z90y+KLZSd9d6P)6L}0fpy7X6uM|IJ5|_1W64!@&ZHRbjQu7Q$ygjLnb*DXy zHW@iJC!4W;F{urOs$TdRss0OXGMRH|JGlde_QvO+$$amble^ND{K@g;E0#^>vh`(x<0zO4DTy|F_T{NBWarep3;hCm9@-?IuXlj< zgN8w~p?T1Xe6HtG=q~89q?t8eLS+Gez8V?{9S5C7np1Np^j_!zXdS7Sc(1@1?riXNcr1w}7VYs@ake^M2}+D5zrKYSAC5BYpO)*oUrO;aFz0jASXGzT(dRK3!_(P%j&{fbEp}#@<%;q@B(7Di^ z(6^wzb2xMuv;evW`Z%ds%7=4~QJil{%`3mpsiQ01=duomra%jzv!N@YJE2cQ&p?b{{qQGCCfS%*S1q1Dj! z&?lj%pg%+VE#>&x(8bVupwB?hLVt&Lx`kuLK+8$Za__q38@m1=v<`X-`YqJ^Rt~j8 zuY=}5%b>SHw?Pj<--7-G?Q|Qb9S+Ta&Vb$u-41<%)U3&Cx7Abp@1X7e!Ji|bInWAd zEp#{ZdFWZFZ5hY!4jl>2CN*=eUUq>(|3S)E*bd*l%$P=f2R#A(546d0zTOq;4-JLp zkeazoU*4SJ%!b|yT?4%fdN1@5XdUz<^fTyh&?dKY4jrI(nFpw~d7NX`0>T@g*8RnRr0=JkhH#MAYspszsRfqnx05qc5Y zdL_r~1|1BIfM!5l(Am&ip{t-D8L&R#ua~13d@*53c*x^7U@D<)nRT zIpzpxCRC*@u1%tR=0a7R+S*&`MWTHkak}C23&>5SI*BW1Y6Bx};@{8<2yL^9OX;(U z%N>Hx5%`=4&B7HIKF`PJC9Be@^i`{JNO$1#TdO9}=hM)0xbp8+Q|O9qHOKUW_Fm1U z42EtkbA0y6}(0b_aP~SCN!?w^KtZn+!<8zyE;BzQG$0IZungvyD zJ7LW+N?V949%LWx zThIC!^cm=T&~wm>&<-0oPES%ZZQl(Si^#8r20U=kJto4(kb1zDUbjyf(fsTva9oN&y7zkR7JiSB~ zXq7lUXj7P%H~_jsd^Tts(bE>~3iA=aShPQ^sqpH}C2-7xVa>!qO@4!)3Tq*PEIJ<6 zQq0iQWAH0stwohZZ-liGdo=YM{9c%!IAGBS^o-*xO@jxY3+o_$wCJm_j^f%rs`TK& zKZJD_K^FZI)d53owdo?)+w+!zo4q4?aq zEw1aU${Rble|TRJYtf+aexew(s`J#rLE-(yEYK2a-BCohfR2k_2iMcP^D9B;n%W#0 z;RD5bO+6erM4kI_3Fn#)apV%&H6?)tfR>0{#}o<+vd9&Fjo1phL%19>!v~3gt2vi7 zqL=@Ey8SFo1Bo0WPg4+)znBYJCBpryA_BzkI&8H6{D`5VbAOe~82_ijg2Y%&lZb|i z^_mKZg2mICs{CsrhKpA$x;0{i7(9S;QDZk$3U@I&a>L_ACry!{u9}iSJv5CAcq1ZSgeVdP0q+n+Xete;Hxk5TO$!4~MkI&@ zI^7aVH%i>8X%(d#B_7c+@1}I4#S@x#1e}Q&EslepHSVXd6ftNJ>M0Hdd>N6#AL(D6 z_ql+dBhnQReG_moB10r0rn5#Dkjn{&K_-O?-bj;zdQczZ`Kw z6W`w$@jL#CvQF^*jS)WdJMY|re1GFaJ579l<7n(5Oz{1U7YwLVo~$RDdKI5+D7Jye)OyB)bGB2L%Kxfi@}=u4CzS}qDTxI(uZiPrbMCw@h)hM zxM|2!VJ^->)QDB~6+^CzEELW8k0A9}nkL$T)GVGR`Zfp~)PRB-P$)=Q(`h2XqCSz+ z#3L%EZ*1Ug(M95zrsTjC(Z%8eO*w&Uqi2Y7DxH`TxRK~v9abE;ExJTBqaPO+VzHPP zcpp(a&{A9Avgk4IMsn)38-vG`|TpU4Ukr^8ML9*wRPc{=Rdz~e;IRhZ}!^m25S zn4`jc`v>KQSBZt1h6PO_x>ZvQg;k4MO*s@+EjEA_`4$Jg5j|TR04?>c4tkg9T@_O- z4mwTrkq)a3IvYJle6DFj(3eDB_!Ha3;vS;8q9tgl@BKmFN6!-j6p2GY%lzhvSRM9M z(0`)mi^)3OD?t~DiWK>t2=a=#UX*M4ET}2b0?-b+tQ71m7 zT$YIC7A^C;S!@NZ5(9$^W0#5n*Ky1>;#|PY*jq#i|G}A_NBtL$m|q&ZQWR*K7`!~TRz%`& zy3ZMf!5QJJ!~qbG`PH$j#OoHVk6kUYB9Nz;6}&WdjVQNhOYBP zsEOj3>K-j?cDER# z=_R5)^acaMd`|_}`aK{vX!;>|8PR>3*!Jub2Q)PwzKrM@O#_DiH}*mCnx>H9Ud{)_ zM~Xzk@aE2kL}#ZeJ$JaD^I?&uX~ys_&ix`FPK7NP-jm3w$amB5K13Osb`7uf+bM-pgP}9A#0-_6C$2#w$%6PkV!F*313j1Z*Yji`IzXSDLP~*5&yGc9wj*sYN`{v zLb^EVO9Bv9XFM44Q>>c~hctH{)?sXIlAK4(n3S%k^QcKk=cdCUe$J;wUzE;$o8vqt z$`d$po$tFLZ$vyJmTTf3dqx~lB)*`!JR@2ss+iom&xr0Ib$`!@zMwUt+lV|03$m!# zd0Z5zm>6}>ixQnKHgJyfd9g`Ta^Q{57sLySc)mMd5@$i@jMag+J6{$(M{(&qAJ#cv z6(d3CnnsLpIR7c)6&YQEHW6j%m^9ys$~DakzR~#_y%~aBe6vU7hQA>WYI1>&gU&Ur z0==Qr9SYhQ{f78Z(=8*0I^Pt{_|IC&XRjTR5&o9w1X5Q2Epbf)%20%{^p=>ZiO14g zVu?v3CdIrhmTPJ@l4&jIxad7{xAScglEmd57Xc$5cD^HuEIQ=;msk&4>Kie#*6)Pa zswsZtGNO~9IPXkHssR1`wSQpQmvyi$oaFC*n&@ z$wX&Gn{*X6ndnndplJ@#IdLSD!&K{jCXR!6?B>UOCf)|sk)NC!{<-)Cv{tOV?o;RI zA~uWDtrhnWeIb6-bd=~zk(8~%P7{44)@u5i=xg!5rvF~|weuS>AVnDAnM5w*xyM&BulMuyk=H8r+sN(_G~uBmZC)1>g%h;kP3ts}mO^D`dS)Rm~6aYR%9 zh=0emH@;Bma6-_*_z9$1se^H`0okXk@+L&o`gJgNYRZpTM)bU1QhaT7xzz^lz!}MXK4gMmJ4fk+ptVMMA!@2UI5xN4HBTFb-;Zj;PppRuOuo)OcMJpXrnuZ)xH_Dm6aR z>A00jjel!;J=&g7YW%9{MD*1OWrojEu2~&UYRU~?MZSC%RBp7_#3wxEhFue%@RS>a zbUHr8nPr4(;*+5&BS90NkgurDi&?=QY$5W8=?yH-5XPyu+m7-^aLnX(~B{+ek+X}O{YK;HT^p#H+-d008%UZ zN+azyE>EqSwZ>eKDzDa9W6{NkTH{egz8SH#eyfZpHRZ-GBYFX(c8aU%1yauQoWUo8 ztBrC^d?L8U=(UW)mim^*E=gEx3{*rdUvI26LP4tZwZ<5WE=H_1<|(4m*G8{17HP_j z-AJ??q)NZTIIf9HzrzS!uIj?2-)Yo?R0->imbY^l)5VDOhQA_|u)!FviA&gE(AJ;+ zsS-9Cb2V`Z8;$QYaS3-B_pUJWtT#3pPg`^`Vw3TjMH{0x8?9Dy%%#3tsXgyD`f1uj z?RmG6por{5y|KmE3R0zSF=}d6y2oPoC2TS7(sVTT0MT|$FT_4Uv{%!c)Mi_aXEmLo zJKAcT)%0`3+URY@Z=l8EEQM_|y020td`aojqqCWxBX$~D>lAUD-D|90&$LMRJ6}k+&j{FvFpP=a zMy^F?5_TKAEcz;8uW`YmpAsH2((W?TU5q$j+@#2NqqElUQR5$)wmX**ZPT=u!X7hr zYdT0_j~V+lJwss!jVCm{MqvkyXEnX={5|22@v^3KPVdA+#@nDJzTY`pBtCAuugNRU zkLXh!vvZuo`GoO}roM4QiM%(V*1iE0cGzgCDU`wv8~rpTP}mV;u%{o)z;N3Oj32K;qlRcNPs#eAj5cP0&9s zFDdb)(aEAS38#(T7JZfQk>PJqWa3$4v_(H9d~S>dsk(e^l!H`VzBb0)W0tVY?`xw7 zq{6;2Lbh|*$4%cDl^gzz5vs^&H+pR1H^z8PiK8bc{@YltX~pQP6TUarf{q)njUMQ% zH}2B(HE0KDjgUz*66=j0L5oGpq=C*Kj5a&Cyv3qFXb|YQF*2zt@dsmvrnIC!kv|#t zg1BAkjh~H&EV?D}XXAyPoXaAyC&?@3SL20y6}_0WF7a1m(0z(NNZOWo!5FLQ`y{`_ z-;FlARG5)`bpm}Q)BTFtB=1c$wPM0fAW{n zt)@L7=poZBx){+zRw}}3(NkWpiC2rB zatTP;>#O7uO>FtDl0i5oQ!~{r?N7K%?(bq$dF72$O28u^qCV{>M~Tu>#!G6-iR0~Q#HMw@(xjjrV}Yk5(4FXk92`@ zT?5*zV_r;|J33JAY!G%xhw(F_K>2iou(umf_=bHjsW>9d@UcDq#TU^y40 zyu4s}ybgJaaj8E?442)WS22rH_a%hLKAOr>?;RZ?2Z7WK2$4xIam+~VnjF#;+#e?jc4h7v65iJLtQZdJ-y)!z7z9vuQG9~SU(Xp~G zXq6~Q`)ssRzOLz0s!P0V_5sr2+$LU*0x9bjFEbiYxgvVj^TX(PxmFR)@C&08r1+3? zSt=$5+maGxuqJ+DJ4(iA+7Q@0X_TC7(K_d7c|Ay-dnd^!6u}mx$mew!+kzDNo(|&^ z>lAqow3ME9UKpJshCS9h1)ac2OPoGg? z{A@5&UigHGTcTT1mh?Gm(lWms*&4J;tjOq-G)4~c2pcCyT6AsFc$s2RU{bCuQ0dUt zlV#s?W}fxNWEl)n{={TCp+Q&yNUbE3<)P2q>88l1K`LyD6ra1p@}zGAYSVx^H=zC& zT^OAw(-rwXpRqh;svM{3?Tibfr^?w@%z7hV-Uw2ApnQ3&BAoB$%e`NqF1{aU)cO_3 zM?mWS3glrG20K_F{|Q>`+adFwlmhuLO?@(V5q+p)`VPr_FvTT5v(gavtR2w%nHaQOb0S4rZS7pcga0b`#!C znJ!y@#p#y%^100n*+~WpbCMWm)Zseo`@gH&9r)6kn@)-cMoWayh83>EWyu zakJ!FP0wfbN}VOQD#E_1LMHs1)71&y2UN|UwWvKFK)`)qkZ6X!Wcdi}t8s(zmWB4_GN z@(^f==r=ee^=4WAGh&KG*%?IQKTM0n^6YV`OJyGrTaC)pTV#Mm^HXn?H(7L3>ObUi zi*8F@CeQw2mVPnfc3FPjq*bXaWcOb|qI1r;m|8jaf+Bm)#?)FF@;lQadUmrlb(O5u zG@NLS{2a8@H!i2vZ=JlG-el#N6LNN^t|NnK(!;5DO8zEN9?3-%bA#LjqE$5Ky3`G_ zk5pmHavo2;OJ1vqXX9Nm5VY8LQ_fQq779{5eV1%w<8;clZjxWqV+}50AKk-d`J*O2 z4c#o;_^2>G+ukhqf)Fc1wF3MawDX9=Q;tEaqN4BA@l{ob!3Ao9sjn zSYgkM$q1)!f%HhXPj0j5Sjs+m5cI6zm=DUQHE}KvN_$%_{aG44pQk<~7l2gh56jyu zdNbu=dDNnzsr%&@IvwYEK>nzS^E@Emrgw48JRg;_`76d~P5ofZinzyQ4d@PWe$4sQ z$7K8V9LDn@Kjxsk$|8|=NM2)6le8z~bc@Pko|M%VwN5)KYb@%N_Ov`~(Z|=KvDs;F$n}~E#!gIoQ$Ep2g)JQWsq-EAx~A1*i_-oj zLpqx^%a3_iu2&>Fj=L@Gg!Ju#FrsCC@5vBN{HEbaxdf!%_&h0>gYFQ)<1%7S%2zbS z5uK7hYnn*(zHHN#^SndM8~1M7X?d-t<>OALeIQ3@+A{8J+D9^1)8TPnr=5{&HF=M( zPy0l+?8dpQ5k1GBPdh6+X&OOvPWIB2LiD*Dq-n}{BmGMm)7`w=dgB{8T9H^fzIFOH zvO?49@g36tEmvx~o5H@8k7?RVVc*HOG_hCty}Y1^M%FUF@8zT(D8V;s!W+@`vQX3H z3D>08%Ti6VL30&}+b7f;_40E~+dz>$k&8GmA%N0duj#D`!RbH95pzy>Ay|fmwuJ4HHh!w(R915FG$@(KieQpd=LF>A&PJhSKGQ@ z&AF&_18qY5*=< zE!iX8Xj_ho>Dy{jZg`SylBV91rVtgWn8-8P_LK^vJYP>wv%RUpFkZ53CpB?hvTSEP z(q-GG4KUmKsr0e7xgd296Kpk_INb!>ZHiD{u5FV?y2-W&Jkm|IJ?fEes_m#px_sN) zR=Rql(DuF#i<|UbdZF#wfo5ImjUrnR=$ye}MYiQ0Vbg6}Ky~8hpbyih+xBbXz32?v zQ;K}~jjS2AS3u{CTLaIf&#--?iLF$L?N?130>4TxvH4zu{xfC;pG%)<>!@j7@OSB@ zwh&E+g5GqN+u}6wdDbjjmZGNoCRc?mPZPh%RbeXyecW{Hq@U9(Yzs8apY&aNrR{DN z6K|DO+aA#A_*86;?Fmi1pXP6-=6`kGny}UYK+T1 z>QbKxM%10EMRXoH(Ku^Tw7Z{V?C!|E#;NAaq=$_6O=?s^o3w|FA5Ds`ULH2in-pEW zJZxNMN}WB`8WEjH3sLtZ))`%ydJH;e$2?;6Rh0N_%*>=mj4YYmdb)bA!0pVKqrNyF&E z?F-Jxi38PyDYZ+VX*5$5t_HK?XBvOp!#?Ay!I{R{Zi=$yq-4x8{=*dRQpicqm~BLL zXPx4qoa~IJjP|iC$-bUv-0!3CJ*+WYQ8+`I9y8ylXKJ#bnX|xn$;_ksN){OBOp4~; zLPOj~I@Ml(p>fQlXw)q-4&KkTbA5}AUzwtjJUwQy(XXf1mP>t}Hu4n}{8`S!8P6Cc zOqo|NMsjae1L<61oQWfW1^{huq1R(Ng?YZc#Nv&xvwlsYk6 zZM>@}J~4a2_|(iJFTG%VYv$1mf5G^fDLOHGI_?D{DoN?2rv=s+-I!7*X7xrtmB($U zH?kB3tM_Nr8&k}3Q@b9@c+ps4Qe^d7V*^vlvbDx3MX_b;4f?%4>M^oxy`lGKitj#M zZ$vUhmL1AiZ`^6-QIy(X^k9l+fAx?JMx2kT9kR(tXG+cKt;T7lR8Ma;e)Cc1v~7k+ zrux(w**2p|3b&oxx7}#Ql*-#~EN7}tOdmIW$VDqVkxWz+WHGVazwd0n7x@1yx<-N-Y!0!%`6fxZXblTfSi*(gmmwk53J4S1hs-|RD!4jA+cT;yvyAvj<>X;Pv2 zw?WG@isH!kuJJxoDl)uld~H$`8QwE4nUdG#-!T?Llu>ue@;7M^ce1?(nlOIa6JW` z`?RY3rXxNy4l?z&MrS%78lfX8Z?2euHsWJrhDj~VAC!K~*kMxZ^Dm|y zH=2!7<=)C4GvaTClc_o4^L+b=&y3wB^)sk1jk6~8A5dQ#Jw{WxIihJn@rZAYoUugJ zi8~7_M*Q9QHAhjs3eIWY8N0_RYDmGT-rpH{xkSws#RZc_d}kbBN{yaV##f38{-|KV zh*QRQCiP9h5>RJNidMDL#s!n2RqeDP^GK)K$$f7eWQuf_rJXV6*(r}=$kS>6G+O5? zTb?T1GU7*L6jN{Wsn}WLf|>Vh;iW$3j9mpJ`50Ebog;oRS{1Suk)Qu`+P{oeMM}&1 z!Z$~pHyC!lsP^)^nWNA>=<(ZbE;VA-D3e;e^W z>ciCE4Hr|BgMTb+I^qwbnyI(7{QT}2e;99@d4Z18BQ6;q_{!nh&^X1EinN!EpG=Cr zYrSNgR}|0p%f=;DE|~U_mkn7$wy5t@FB@SdMN#;&5yO<)_gpsqVp6p4xoq5FQn`-V zF+%n=sfQfXL8Y4%%|=ZQH>t(Q(`2DZ(cIK!iAk+To-S)mibjDUr!uAXHii_X>@%L5 zhAi|bie{rBe=JiJ%|jUJiCPi%skaw9B#gIVR&7|5rco|eL zlcJ~*Boj^Q-Ur*H1<6#Cq8Jh^hnf_{kYG91q*5LX92p`DOltUpO+b|}H95H8!JZkR zvf893JQxRRijw5^g~_88{`Q5*3ss7u_|ilM(`!7;yY0edzZ%Zt)`rWJ29(W5eV7_9 zD}2;FX%X@XA9YTPl1mkZbtNSuN^UeMS`nhQVCsKj*OOnFg016FKRt9 zMkb6WTPBMz=N%)P$()H^>dVCIWSNiZI`Vq?n2)+|WDB{NDVn!;q_mW)eAMufH^^?2 zyzRTx=O#IYskejaJDZ#3zf~T82Ys{DA0o-OgXtTbn`KjzqHl0+mTj4;6HCU-j=5Q8 zF*QfjIc+0vmix`TxlZTETjU?A9QxsWpSJQqE$N&iRyr$2-X@PRrPlY`<(Ws>vfwq& znMv)W@tC5vIA_PSlVK+HhI8V`cCx8Sedv4yR1c=!4yJE~+RJxLioO+UFW)sO`c|mD zeBUhhcj#;{KUR5yz9VWcKUI0$@9pJR4XE!LP(S&oUZdN~8y;snQSMTo4zj1Bg6}9! z7=4FKFsb{Bdx6SfO8NRuxzwb{yLZaZO^UpGryM<%biN%--!0uK%T0>DTe?%uHz~T} zyGt%NDZ1jjOI|Q3@gFjXf86ra;N%7agMTSU|+ zJ}L+0PWY(lF`eZ1J}P?5-Lm;~E*E^dcy>$|d80{%xu%1z`vYe^6h1-?UyPK@@QST*oliQe5yV&kB z@=1Riy2}5_??v*>3QuXza>t>P`RbLM|V3wD9FR_QrP!zW) zR^~D_B{)8(*O*vYWKtP9@u130NowtVa;l=ZwfD&jvz1P2?fvrZIYdnfj&{$E=_&te zQa8A#gGy&gwXc_amMOK`_ma;ypf)t1UTQ$S-hg_$0rf!x>Jz4DwVxi-Oa7awy;@kw zqJ-YE*;8caWYN4t*!#$@6~&T$)%DJqxIJ3&UwV=X8bW>1hU znA$6-h9o)0lGk4rTJlol245cTijXfc^;qz$C8K%|kgu84XH4xgsh^p8&!mjfTkHem zFHFr9Hsb@P0(<+0#yrCsdNFN}sp9z~-ZF05#4>-8XM_L9UO=nD=r)k&h~#x2wSEqh`%}r=Y|~ zZJ&3fpxj68o%dxyjgLAq?{vXKKI*G^7YiQsQDS~b;WP^sQ#jp6T|d7?;gdcpc7D6U zxjt&p{H}$IeAKAlrG=a1$4vc0 z>%ZWfwn_fVRGsL*AgA{xS-XU^ye-lebV}STr!s|aj~9&Uy;+tlb$gpJ!^*bE+K0`OQ+SR20Se&2ogI#I^;qV>Zh| zrsj&h3noD4ew9b_ws4C)!IWy>HrZ+wX;CfOCc81ETC`10W$H0rJGM*5YOas9Y?rl6 zDJ?I{T}&+q{?CFrg)hqkCe>^qQJ*lSYIs@xz?7=tW!d(5)+z2>xUg`C+@~m>IXmS+ zMd2Lf`NEy@4^wh#*Y$<3$QCcCayaWMd{uTcDcZB|k}i`fy?1@#>+%Vcs=4>o!Z+kT zliJa(*XTX+1XByd8w+*EoAM`cqrF9USk;?Pgvb@(#*3nW9*JPCF>S_EDGm9F%97Qdi~g zOXmjCsm^{skgYcoH5sSGb00V)+ndy=gvFq`D2jC+mgzp~QlG;zhbg7=i2U57=-T2# zIeU{|=SOmpNs-Qv@{~zEzW8ZSmrZKU;v;=N zl|h@?FTu|&{utClOkLGCcjV=x9>A~*33)jdcWf{ z*?KFN!|p!L@wx0}Qj5E$IKGhCOsSKhFXdcC@s;8Ux!la7>wpt-y_rWRLnq`bOwq|u zoa2Q2#LT1X#;@f`mB+SxEu*$6tB2xw`>$mSlcM`Zzm{E@nk-&gyckrLnYU;0+y}mq zZZq$F_JGwHlt1vweBfV@}ECmb}yQx}Dx~=d{zZHB;&&@w80X<+k_vif}uWLZv)PTZEt3`{Ygt3fqj2nTvpyxC+@jj=CW0)LDTlsir$p7y-RUN5C zzXCP9Q^qkXx$pfrAckU5V4b@4c-*K&F*r;l6E zD$`{-$@c`}Xc?#p)h`9icUd?U%ppGBK$=aGjX6)S{9MNWcQq^9-eemNvHmYC_!FlU zD*lueWFet$wrDDIW;Wul^l`lXqBOk9eB}*=2Q3^`m#XCx3tzR}ic0^*;bc$lbA(RD zN=C&$%<1nL$%nc~T1kFZHqSyDZ>9q3LTOVL77ii)$DI2)qe}nWC{2>ODQT7Ye@l;b zbWvItf3OWTxwTRQi8M zRjLBdLt%#g3F;#Fc^YGpKqYDANYUX>`G4hHLS6LX^dL?TZIphE`TKx|P^H3Npc)&a z4SZeX0}WBiGGAHnET=C3af?2ud#v%N$v?VKKD7FZ<`LeA(kMQhK-sJDNrNtaL9T)K znUIW?qxAfT>m|OylG2oH%vbV_$Fr5A)l)5MT#*L6U4%KU7!`-2mTt#U zx*!>Y?U!t4fM^Guf#P0ZkibtuiC~e+wJ3X3TD4b|B|p%6U8r`7_J(k=eB;RP_Y%eu zWOS}Y6Em+NuXH}gxhlO;Npe|biPA%9L+k}gQ2-n8R(W21jwyMLmc%#2NtU6Q5Mag} ztDTK=BY3VUR35O(t6E62F8+KSR6ZwU%F1xK1bxsw0CODYWk;uN=C*{tT2 zT5%M|x(ffF@l|Y8+N`LenU&M*MH(U28tvfd!pZznPFDgAUePpRSXr zTJN8yt@ik9Y+U<)p|a{HwpQ7o(pFSEC>3F7*X`A&I18c8%TaqFh1OAL z9ZQWzor>FP51?{iXA7;n1(mD#Dy?F>D%)76;=IRt8e3wuN98s~rNOa|ysB`rCH)Mi zS1|hbExK6G996F>wZ&3O@vZGrGK#OPQjt*Eqta>=sUBDTMYZcZy3`ocgq7n@8{!?V z-P$jzM%6kM_f*=y+gE#jtfA|v?aC5mo03$Vww7GQw_;-tt6VGJD(|md7Xw+d;<%93 z#RTS9(`mdLp9Q{wx5JU0E`=P`bv*ZtH*f;6ALF!DzvB3NTo?FJM#wAQl7+gZ)eX~A zS(3`?LZz)%HE!Kfw!vR}Lw_n8lpm~mte&xIpfujW#rs2r*Wy@9S>=_5F?{AsU@(njc&@u$5qwWtMG@j$PPKkb!K<6K!~m46GR3_*KZ?>=1R zD*1n~=2MKnHp27FA=JeMOIq7R+ElJ8dowuRE8PE{#x3Wp;ciBy*_u|~Q=Gdu>CoKE zl)P4&>=|j%smjuIhc3t-LyQJWk;gLE;;S*E>?e7{l#fRLdOd$F89Lv<-k3{yxR(Eg z^RQ16Z|dXp6rkQ!W#3GsE2#X6OwLUrC{yM+ zKh>)X>kiFov(-OphogE*?X^_eYJ=h^4I_Mh^Uh_fHYKAt%7#+GjE~VDT)0|dF z^4=BpS^VM(-dYUQ#fv~gyu=)}URY~a-af}Nf3VE|!cms1k$nADs!Oe^R{O2KU*znoL2s9%)b_Ati|V4uXo3# zW`P=Sl-9*Kw$RC~Q0Z#sD4(mf_#w`HocaE=A!aj2`C%E$tOgoFNh*%ovng%LS|zX2 z2Q3;Jw?*w+)M`s<-Q2e*NoCt5)Qu@*R;}_%gDRy^S>@+= z*SPKF)r`9qU#*5#NhRM{gKEolT$e&? zTNH<)kS1+E*VSH-wsl(?HeDF()c(cWm;!%7a6Z7$j#iy5;it^L&nSsxf z_{;=-oVQv_W0Z4h}Ksj=X4K zPVbhSZo}Atu?u4?V?V|e#=(r)j5bCGV<}?|FsFAN<1}FTgNuQ9npw~tBP)=;u_zj8 z)GO$nVbP-PQv3!qb3#P&(vC$(v|&rT7Hu|)mc|xkYcDnH1I`mm`xhNBRxM2jz6d-5 zJ?FG+?Yp~jijEtfFI~|qTN~c7tSE%vcvXW^IlXJN=Fg7m?azIfdyha*<+GmvpLq5JaQ3s`0kb=IO0;QDKl@Lllg9i4EWKAaNixtG zD|;-9LOOXFNhXbH>%6E_Ef@9mci)4XVvCo}M!E(#N2|U2hrx5S8Ou5)&e7(BbKF?A zYXs_62jkXZ$zw!h?_>o+VP;2f;CTb}N0 zspGeyogLV>9R&S?ZVFmQ@BE_sfjaP8lR60cE!_@+enWRLJVSi?{odoo#O34hzAXCP zrC5IZN(X-9QwKr6=i7nb#?*m-qc=s+Q?=QG-kdR5U$fll94slFEnivgab` z{!O10ypv~1;zjL-gq~D8MEN3pr z=)G8GBxLli*Xa4)dM>+D`)bAPn4Q``8UM55qI0Jf{+v-9D{g)+8*L|_#EP!Z<@Ao_ zC+K%-1D*>m-l+`*l7C7d^Je$yF@%ozom%a4H;rk-wI4TTJ-4OT3c2RF-UC;lMb$%A zKwD1ldZgQ-?BBb0E~fNfi+2LgX*5F4X@m7M&yDI`s*&GHwSbkgWA?}!S8nNbK+-Sk zlxkg9Hc9CRJ+(tt$e}Aq^V5kpq&f77%Tu6p!060khn|m8M@0F`J5n4vm7=kc4V&v$ zPLH9o)kBVmXIGXKr--#H7mPTqQ4b!64bx*za|Ae|eG3gVBZx!3I)YKUDB(0e34L0l zC!kNWZ%=FV#B&OJDceMP`$@K-x1MARdh<%Qpf|2$3wm!ywxD;aWD9ziO17Z4b$l%o zx-P=~MT5HDk&-RweJI(2-h+}Y==~?zg5Gv%< zqcmD4tD<$D9rCwTEfWXpEmmi{w1Cd5&uP=R#yP;;_&H+WYL9CUzb|5rC|q6R+Nq6S zJ*xLkZN}=0&Xxf$HG3Ewnn6dzmen&{ZMfHVYG1Bi>FN+bJ=iAT(&~E1P>=7_NCTBZ zWD98d{6_HU8El8_`1~8aj%dkC&$*6hBcETCa73H={J&kN^))>r+$jNDpKsTjMk&T2 z%3`c?x?cS8{5|gMfT>-3xa$SIAHf!I(+j7Q>Sfm#db>AEiYIOKxEJ2&)kaTyArUh4 z)`WUNZ%e2b^p=Fufa8m5+%*Buzwi)n^9$4BY67TKUBJE@cdfw~)<0Nt zPU|9Smc^GGH~zV%shAcpanZ06ii$MCgX;rFcHr1jig%eknb?8nLI<7&c>f_s#gX-$ z5~pc-^(#uIVfA^Tgys|?D)1Zp@^@YRg#OdCkl|mJbP$W`FG2Ip`k6`f@bft>h38rd zTmCb@H>yp*`n%hg?$my%#~roY3!BB`i>D*4y_nN`v!J{3Lh$Co0i`t4hm~#?H@%2E zaYdIGN&bNsr^oE%QiLeQBSAx?jW2P?7hYUjI!!M5>#kA4dIokNO zO~o8-DsZz{w>AgwvDvcvkms}(mnzC^`kQNK;@9eqFrHl7q3l4wnYH(Tudllo7_+Vy z@WyrVWg%>*4KXdg>_|Y(vN~Y5b+eJ%XWiTf95QX)v9c6>*t&ZV+v!>6X#pP2UA8P9 z{AugXY4toi>a|_#4r8UDIbP3moV;3x_-{AxWI<4U2#-@ONqxHc+&GcIBd&Qk|Y|J|bps*cMl+Q%oq;>4~{Ef!j8; z>)nBC>B7GgU8*125LESZKvA!*RdxFD4fiBY(~Ek=R$XLobm3Yq2DBcU1WpTJo&MVf z%vRmlNEoqkW>TGg`^GU|9x=4?wyfO5Koz$g^>VYq2&BGIPY7jXAyNz^f(k zbM!46pQ@_Y4sHBlaEAc;m5yoJXB+=fwHU2FQ+3?v|82Py)AA9_r(gG zR{0gYlUbotUvCCKs+!h)^ghyr)Y5vr+op`(n^~q_@3HB_#1%TNT!XpQoAvZffg?Aw zwj&q=#ns0dzXr~%KF#F+N9RRbJ}s^)lEyQ+klVzNO=U( z%KKV%EPk~zJARM;@urzcv4Va@CszEh>Fes_u=6|M#Z7nM7r_fR{)n>V0qV^=QeriF zB8hgY*VoVy69K56J z!uHUflisGty&w3*W{eF)``gBs20pX-F5o+x?-^ecczpBy;Xz)v~8vPO^ zO9Q)XnK!;Ju-}%Y*>mtoGAZ z`t>cEmB;m%Z8ST&Y@0A?PhjS@I^c+HQzsn=ykYr-Nk;-*+b%ly1XgaF1rF^(4`|d! zN3@5xT|efCn7a*n0$C`k@pp=H(r=DcWs}FEw)(9uHi$ z?2TG2h+{b0oTAZtbwj|xJ|U>=<@BQCffJX%Q5zlfIMOK^J)hAsX!*TEjo zNJ`LsJ8yo(hAWZylEGYK1kO;d6A?I3B5cAKB_2S!nb;3(Ar5L0qLugz*jk(iwiVaw z5u&}=2)s)SG9qxD`8BYcSSTZK<=sCZ0@vCnfqjJxj1UQ8A23e-&=v1u+l!hd2Zj+6AE0+O&Y@wRB(;tqK^WJqv869Rjw{ zLR-S~+5^DW+IV1FZ7s09b`W@%b{g1Oi}(vXuXO^Z6h#Q`v5pl zy9`X%I^6)zYh!`KwJpF=+E>6FEwmLpuXO|#YWYB?wiH;Ry$LMWP6Mm87B|B4T0dZ| zRsx)&tpHBdz6Z|Gy59u+|FvA;ZtV%+K5Z*-zxF-wpmuW`_+QHb9@S<6k7;iLKi7T%p3qv|0{?3d z08eRCfM>MLz_Z#Z;IG;Zx5EG0K;R$RbfD1R21@-hFj!A&3;*lWfKmDmU^D%nz!rM& zZScR|2iRKA2e#E`0o&{QfOqM}?eM>TAF!KV3hbdj2kfc81MI8+2u#qgZwLSD3BZAR z5inhU4w$7M0S?y#+r$5QEHFoZ5SXXG04&sx0iAkK2l!v_1T5Ew0IT&!fD`q#z*_w< zaEcyq2mG&h2F}pafU|WcaGpL5xJX|IT%x}RT&{l)T%|X?6aLrl1Fq9;z)kuSz-{_= z;12z7z+L)f;BLLuUGTr22HdYt1s>FQ0uSq_fJgP4JHr2Z2JmxzI`D+P4fw781@M#} z+6n&Gy8_SZS-@ZQ3BU{bbHG3JJwRcc0!pLh-SEFL5ZJ`10Y(`w0-G7ffh~-{&hWp{ z1=!jc1#D|P32bld2Hs_y1a>xV>H_~8iNGGlcwkTCJz!tsS73tC?jHEx7y%q;)C1Fv z!@w*<>k9uHZGoeVOkj>N9++or1{NBh1D(cYV2P2?4gNP~0jrGaXy>@c?kSu>iQrcptdNxBy&d+|~pBHwFT?85O`C z#*4sR#uvcdMpP{PkKbd0{|y)Lps^Hq*!To^)Cju|{x|Lges0)-CyXh;Z;kc9Q^rx? z8RH`GtkLRz_}@qbUN9a6{$b1k3b_d=w3eJ@(JK@`3!KB+yu;#dx3fKZ@@x%5$Ke+^noX3W}jfOMBdvs zSgewXz%_CJaGgv8ZjxERZ896ULyiINlDU212U!T*Ctn5bmr?!T2iX#MSh|2mx%SWH zJfu&^&A@NvF5oHoKJbkE8}O_=3H(+52)rPTICwx_2NVIf0%gE`z~F#1V0u7ZJX#d+ zE^v52%YJ6Bi6pWQ@RAR7b5xBU2uxJ(dEU>OMS>=ry8*dzF1V9(&Gz`nt=fC<6#fXTtn00#y?2TTv%4$KOE9XLGr zJ>aO|Pk=eWe+T9T{~K5s9P$AACHODElHl8b2_f+Vp(kWHaA3$vV0y?)z^sthfWt%f z0Y`-#0Oo{Hjd>v-AYB-89Ow-B2e2gMXJC2A1t2!kgD_JE?2VN}bEFsfyC7>%)cVWfFc81==H zFzSotVblw&!rn)zHDMnP!3+)i6u2p@)lkgPFgI{V*ayH}oZijpePR8FVT6P&0v-(e z8F)A>c{oO9*jC`NFp-TJ8a4!YBJ9QNV6m?W*|Wb1*>kW-8rpKU$*hqWpG{5yFEsfX z_(zk_Q5c`$?SL};K45ToJg`al0AN)3XkfGODZm!t%Yd!IUj()ee+}3+`~zV7@ZW)V zg*O?E@e_U{ut#`0uxI!(U`crT81z*5Twrzh65zz}e*$a62aH8eg|7fk4Zi@K5uTQV zm=?YqI4@kYA*O|o0xk*P3|t-_I1Vu_oLagjd?eEA!e0b#3cm>47TzQm9%K7=vHiQl zqrur1emih~crW0=@ZrG2;ibT%;WL28!q)>o58n?w5#BNnGdlc1;Hhxxi!Od zUEr_b$AK5ZPvr%RZV}|q9uc{~o)M$$!J=;j^>0Fi4e8{FeBi){B48Fv4v(ObFe-vZ zLJmvjMbJnnj2Mv|BB~>5?IB`f#G}C4h$nzkP%1=BjhKb>43r8Hvm^2#IWJ-!IEx|{ zL-TUhyoxoiiJ)kUEqd47+(=8&&s#cNI>eifY z8%egck0ig{6-j>U97%rb7D;~V!PqmByw^99yq6G3(JwjjJ){Rl9tNgI(tOE^B<~H6 z{1}{3k$(f`M1BR#i~JT?7*A9+($-1Ja8kTLYIw-UeJAc?WP+ z#~#?vtv<*eILvK7%56W!GM}>tPOt~Q<+h*Vwx3}<%O3cZJ#c|N@CSQ9M3Dz%6nP*x ziagLHiagLPih7|%6!k(YPPgWC+o;~KxqVbT@UEz2V7Dl;vj_8gMrDB0H)4(Y7cWKRcpm z{OpRN@v}RM#?QVe8bAA^XyhD>qLFhnipKDWP978j!Neo4msF>f-qGmCfDe!X)jo8*P6cyVu-W8LEbmtg~joo5y z7#t#c#0)`%>={E5wQmeX%LK;cn7{&f7^UE0l!Aw2s82_sEIb@T{?Cgc{};xP|DDhV z566)I%VWqV)zAzN$Ix7>jiI?VC5EES)EJ63Gh!&(%#NXGGcSfB%%T{IFiT=6!Yq%8 zLhY+y72-xrbEMbB`~|ov=4Rlwn6|(jF&%)rVmbkL$8-hmi|GN}AJYqXm@PlbmLEfl zFp`<`EptwBTh4G>&T?CR<+faip}zYghWbu4rCyUwslS4oQd^odrM5&h<+#z5TG65@ zwW3v1YDMd&6f@g4rI_h#Mt&=4MmvXH&E74<4!PMO;J#)@f%}_%0X*33R3X-jX4FTg zn$gHV(~RcA*=968e{DuH;zBbTpMNx?u_~I=7?#ax3^!>`BQ2^q^+>bkR9B1Ud%#)OJQ295c@}V6^V|p9iO=BAPGY54HMx`6D(-T3!rcy(Ud#BZ zcoymR#6I9iG47F0xHrQMoXh+NSUyt>1E);X0^>zb-~<24ODat&%wb@xgbwPX;hQ@Yc`)eT@)GPYxyA8+L1x>niq! z-PvSl#olP*oMc=X!?`gef3hj3uj8`U6UH;{WxTZoa~M}Lo@BhWCGl@EP zPR>|oALmGCp))sbK>wNjtDV!Gvz_yuPdfugtaiTW{MhM9Jn8(&>5Ti;dD$6Vd`od^ ze4pZ8y>p6-iYtp}^_x^Yt=Qzp!`g~HHk@#8hiQ>z} z;jS20R9XvHYgb!WXV<;1ey&&gjCDQkn(KPW^}1`H>$;@qqz_$RxdQFY+<{|$&%4$A zfcxJ`!`-9Z4)>$(8uwG~Meb+a+ubMKr`%`U_m&JO8C+6O;wh;sd9vi0l8q%=azOvL zOFk(1sN__MUK&~&S$a$9?Bu&k$0y%c+Pn1WZ;pyz@?&pFIEaEK3e5yT0u4)Inu49~eaS~aw)u&Si0 zuIlwZk5@fewYX|U)$>)`sy?jxwCYk-=-`m*>#J|9zNNZdb;s&H)ydTv)wb%&>Xp^& zt9MlItNy(DLiL?v?x=~%7*dm4Q&Ka%X8nlSHT!FN56nw*rM+MCQO${(pKAW7(Z`36 zj~Rc{`2DE~jEF=^N&`y}V21(Q}zS~F?Or1vL%IO)?#Cnx8;um zwH5Z$wLjMWt2UxeD~Ky-Q+Ipaopm{d57ZUamDE+#jjx+hH@j|r-P3gw>}%?_)V)=A zsIJ<6yza}opXz?CtBt$u5sCZIf^g4bC}va`W=}Z&M~E1lgf|n-#Vxqo>~`F3)()rP z?ZwTaEABY^E4aPD?FVkW=!AR8?#3B+7m+IN5otIPA0fJnv5?BaxwswoW#!|Jv;y3X zR)`aF2TGRW4zwDS8jthwi6~i%``7AFdNR()9~FafpIC-?94F;7#c1&qG|h#kd5Cxm za7w-u8ka-k3Q>$`=@KuBDzOpTwm{ofM7(X#xLr&VFNuf5%i>|2Z`X>Q(Eh4;1gG4S z#cR<1I_^T-i@VU?LR5Sk_m>?;O&{X!vrkdWXSnn13*343HBQn`<4&?4#M9!Rh{ZqQ zO#Px*CN869O*qytZ4J(=x8bz<3%mg0gt$Zd8Yk4>h>jZWOw+y-U9?l;9__T~ zu6-|JHGy?(UW^cqPG!A?DDPASoYH9$@EOL>?%v!-i0>I+>rDK&7~g07r1LrCe!=+X zxnsI?=qp4~mrlU*-6G?KNV=yP@b_+i0iMPFK!}0&v_?9p`)$A$-Knly7`t@86P!y; zy8z1r{|b!l-V1oPNj&f+Jq0-Go+{w?-6sMEa(W2k`EIWyP>o*!Q+rS?s;+T8{+cL+ zt4A+jCG#ispc+%OcyONVK|1I6APeVdq;q+XWbl9QLG4ukk zef#tm;zlhIc)nXLo(!tUIP`x1|UZ@cGH!a&Yt?43yIWX>HHMCnOM zr1=rXX^bNSZ%Ps3sid~R=aR@XFEVanRJHU-_1Ad5Tgw67-m&(Gn`JgJUhG2hr&6hZ z&!m#gtAieTz&p}5HC=~vZO|6r_B3jp%6%=3T2UXg1N_}-q~UzGn1NTT>rl{BsY3je zL2bDlvK?ue`6}?bkPE;eA^!m$4wh-&UTz%`iu9dXR975hRdhRWKFT6Ik<}5{d8TIaJrL z;SQv?=eU8Yr4hCzNMCPz4tT!X4#qt|WrKAjobUF@Rr#BmJU_(i&-2~(AlP$Xey?p9@wZS6SOWSmjd1HYe7yfdcmSR;X*`nEC{?}LxNMD!Tj6Ru2D6xPA>;O(0Y1)cZjz}jrT$&QxPh@g zB+)L!uF?m9k2W0)98gR$-*>Mo6yo>-N}pWtDAM0C#y&-9>ulG zS91%Vlfd&Wyu)cLLXf@8umSdk$zibBK;0f7yHoyO&kE~ z;sY@Zct~V}a~P?&utOp|ianVwK4SbBdovxoCL8b=_Gh{{j@_9i{sz=>UqAuy z@7VF_xJ$nXcnW(qdhw?lGXDhX;%Dpyb@4A;wd&%$r~v+k{hTiTjUAmXF2OhWMHQfq zeb*$Qz;g!ZS=_mbXG?(SUp#4m{?#4@-laVb?5IrxcG9K;@7A7#-6C z%{W$@3;r0OCT!Y#q;nX@X$!&01>!f1w8g*zJb$3$N8XnLE45|7Ds2U@T3ZRM!G2H| zq!)3yWWYcB&AXgh(=Xs-g7Xs4^hRwjaFg~HaI^LfaEo>T__FpMO6>sZxSQa8;BM^@ID3G)ct<;e z^nM_ER{IF)!$9<-_A&6N_9-|YGk&Ta2j>&UW7=one}>(yF8;>&x%L$}UjTLSC3d^$ zQ|%-;rx}0H{tnLfjAyX_MK3e{ggvk>eq=nW{Q&;YKwaRydr1ER#4n3!KOy}u#^1D` z!8s4aFAVCxAl-wpkNz)k`U3GZqy8Jx@r+6OMQ{=s2k5^eovL2~rt6o1S-PfaVhH1K z-OzL~j4@je0DlDIXgvu0QH*2s5TtE-7%*242jZ=|kSqdXF6+_2V!bKQr8ftb>emB3 zdP`uneghVJexTnEnL|JwcPsQl`UvAkdLM8;1Zv{A z-Vfkj~b*9QUr(9?jI^}#@4WI|p8>LS1x z0t_;S0Yi;!@WYLfNH<}OG)5zxW{d@<8#drzBNsT%utPEzi1}p{AYH&%VK~4kXRJ1g zz^?&fHW|f8PhzYy+~CwQPBBWsf0S{WQ3n20peCjp6-Yn9IMb*CXBOjJqXzt^7#A25 zz+VW|ai78@;2Ps$V7*ZXTyIPUZZIANZZ{r>C@@sgys9={AktdO?>cgl9aS7Zn9-;{SEy@zqH?1=O}c{lJw*#-EKq_-j; z1>(0OWq05)`B!j`0}+{JEbu3JKk%&V1^ij|0sbQU0nf{L;BPV!ctb#cV4Hvx;4J|U z0B;Q#1Z*3S2D~j`F!1((Okn4LA;2yH!+`e&WCQyJj0DC7j0VOBj0L6#*kHq8Af99n z$VGY>5G!?n9qExk#N>biq(?K_0vzDvFy;mnAzctq40HszfkgqOz~X>1pevvPSQ1bL z^aRuZ%K|1qPdTui7^)khpSVSa09(r-;7u|B*j9$&bSNt*95^&6Qrx@Z(zY2d-BdcV zYW<`{<1G=tLc`sKzlA(JSI6IrAxrr0?;&gX@1>CU`0wSA@A$74s{R_G`aF^k2)%*- z28G_oe?vku_-|NfG5-w@oyC76L$~wa=+M3Vw`u4R{@XnCEBoAZ^^eNuExh_ORdJBw32nzC|xu}B;Dpgp%-WEDEf`jwU0i^t({ zK5rt!o^OhEigy>6xLtNvIjXQbMS{I7*W)NDceq{s%F8{DaTVouk(qH-_SKCM@wRe% zf!kAKEq^thNab7zCG1e?x?g6vX>XS z^U6e`tD;yWc);OmsV?DbL8`6T4iTkN5mzw=wF-O^+_@E8HHjp;D(y};+CfB;jasVu zr$Gl^jn^sN<1TmSx}9ZQHrZ~=vwIS&bM4$YN}tBLY# zmzD{CI?h&R7b)>hbiQqzQyFL}>=)#!lpDQz(H1MiD$9efQ>wjOV1#DaODpVUXfg^| z$U$&}BiB||o?v&{3ou+ne|xzptGcjZMj1wEncc@@O^WB&?4@}$B-@=OXn%^uuoUWG zyN8>K0X5KJnneRE-s!+l@%oz#_s*;rmDo;i*hGSOs9xlGmV$u?J>6V_N8W)<@e z6f#^4$x7;x=*o5HIa~!~zc2m27}_btRaS08G`gB`zD!f7p+$bCYJ#6mtVHh&bQfGJ z`XxAQ1ul0PhE$oz^4N0imSLWzhcPr;~9UgavAQ5a_ZnD zcZCZ^dfbShc|4m`pb_b|@DbQz~nV>fw$O@a);AVUIQBn5ExZ-YCtqH{(l;sUiDWDO@tIr z4KHI4*lVukSj4UhOcC0&)D#!nu@}j0Sgv11c_9J=77~i3q{&+(%Uxu5i8zPL=Ba7O zi+7Y1+C2%javM6;YDA{Dj)rW1-3|FE4M?mUl@1E`*W%K)A`ce!x4WEoNTYmm)lE1-hj8XV)f0}>o%CAM-5WLkGE zdDvT|q9(sQEb?uUXnip^YQ8cS9+JL2SOW!qE<||QvKD6sGKLi*#KNlFhP7MR5Xy8E zxE%R#m8;y6VO4i^2^7WNnU@f&u$PBy3=8# za}-c;>e4OsTKr*-@u@Tr=oVWb5a|RVPXp56MX3Z59261O1IxD+1e< zWXnYu{;!MA6$_VlgnLV0HQswOy*|6Lkk>yASI{`8dmLYRUSmJ%E!Bx!EaL5+a_*T# zR{^ePd6Ri16Bm14sVnl+-A+etjXzt_N+`3;Nee5R!sXST3XQ-O6;@-#<2d5i%8Lo& zoUc@p!HT&h3 zRyaIfy~M#qCMij`VS)3@k*P3ADf3ps*+Xs43UwL~pO}#~Ha@vuO6u6e)cz@{iDTo_ zQj=2p3rj|Nzl?qj=(K?;@!4aq!OqO;mo+5Qlut{|N*tc0h{V+72NJW#4$17-KT&Z~ zQj^kDDt$;CbdIHbKa(ZL4(gW`pDf}tveUE1_8ZtgEh8l>dC=IDgv8XWl%$lz3^OY( zC2MTlz_d7%Bu(iVX+uqQR64C+dWsSux#Yxt2`J1miK#;dL3QTX#Ni?%vmcB>agmuh z5R9yheq*h^u(ZA5G0UGvQ4DPwU%VV+<>qi=VTcskWVp-tBA!gB7>9w3&ZEh5rLYQI zG+QhhEOVxjyzi9c${ZekIA^jB%Z5Xesk9Qi%N&w8k)qB2HKuYFuKsY9TwEd&t4lCM z%MjxE8Y<71u&fMzX3lk|>gROW z5KP=9H6BMnA&wM1wmf^W%~K?X+C6*{LKB>hq7a5{PA{_)MOcxTTWs_7lNi+SkdpVh zYDi>MV81{Y(8X@PFjd@Pn4IpaGFrs3B=Xr3Er~wI`ZcS}1~Jtwx|`BF0vJEwh+Y}xI9#wX0ly}z80TWhcu6Gf9e-Aw}1&1C5Qrair9~i5DGnR zm%E}2vr%2f(x%sGN3K~73*mB>j$(7&V|}IL3mwip+SK9-zMs?Su7ah=zXp4V3j@fF zD+jdHx0@#UK@Q&W(`hEgSi?MPA>|cn6_=_gD^Ipn;!L_Boe3A>`pM+-}F;~=831(@7EI0>WEZFnRYAuCmS%iDk zp;39+*g*)1S%o%Nn#=BsBkKI9Odvbe9Z!)E1CVlwqcSbM32nS?!`aC8#=%rK4qspv z>7WB*Tt4IU*H%Lee}|b-*2?n+RPfC1&MJ5EI?hE&hp)G2rE>V$T z+I+Q>3xBRRJX~>Q0Rc4BL3AiNM~bHX<{^=ve=T7|vpn?$7dJ*JA=~hUhb6;z4G7QsU3Nt)sEO(r?oXw> z7h!NhzXFe)M+u?;9|zzt$s0WUwwt|81|m5O*V84+ZID$*2go6pnuh}3Fvnb5MmD1Wm?h_IZ46c5asGP61IIGc#`xW{A+0wXd zgF)*rS5@X|uouJvj*U420B3loB~F#Ge_$4xi`M(%CG&W@0IoMQSj)0|RGY2r2BN;P zp_E@eFD38le7+dFMi#zSyGBmcHMC`5i-IfPEceyRW!NjPo^eG1({Y1r)tT6#HgG0* zyc@H6gVx!ae);r$q=!~%_#4yO-%DU(eqe9YFE7udoC%gk(J5slI}T9-_lnThWyrFA zkE8}Lad9nxHP}4wXF4Un0omWzY|cf6ey=kJ-_`fD^ZMit+ zPKUvcYBIzWq)Qi{oXKO^E19aKkDFLrQeM;06lOKF1|IWmKK*sVIR5ev4fEjfR=BoVP3i@;n zaoNqeYUvT{3S?pXCYZMxODANi$?f+LpYPJ{iG;k{f2$`4y4@uS*zR$hfDA<}M96aA zS4rS;H(qUIs;<0R4m$K|Y@h9{@@kEuVRSWq!@=&;(_qZ|xDAHBkIP+fHQlNimK?tB z=03;uot<1~xj6H>-Ft18=YWIEJBiGTZ~>n6Xvp06@($sOENds51I(P$R|u-Has@L9 zUsXAMIhG@;D{8dl{Aq<2xvObyP+c)i8@eq6w>_0%k;%hlDP5GfXnTnR^$J%J$4ll9 z#0^SH8W$`sC2O_BvhiT~jKs{0p$UVqPRH3t*gbAlg4by8kr>NiQ_H8yY6nE}h@W)v z&zlVv8R9B(xvO0M8m=le$dQNJdf4i#=KG8HbLA0%db}6gUQ4*N9ig4PLRuOc(zuE^ zT=3idu2GFla(Hkv7a!kQ^;j1Lt`KMKHmA>EZ&k_>LvVCsa}{`drJ< zE3E$0dajUdR1q5HGZ>lIZoW^-Tb(jhjV`(`2nS+xqarszarqV?E1Sfy6qH$qr#S@i z6}^)$kh#1sK;W>#yphT48*?e(%^z-?vbzd!BM%qCr2>D4gJ$?IWjM!Mrr`we4hJ(r z#Npl$a~fQclZZs78~Y1A(;Ag`I$3VYQ8K2b zndS6ND=ShbAY6ynPPz@u+Tn-~>TZonHMji{Nqzgutw^`!@eO*cG$pSwk6PWBO9$?a zxdU-Z99M&FXNrpik{ouYw?lEj*C@yO%{QIN@L8^TE$zgn0=r0c6x|6YH0}xyj;-;< zhDv$w9-*sBmBVMoTnH(2g#W<2Q-6G|<2x!B@i?)q@Zjb?e6tPFIJetrx49^ZgEzOFaihJX2Lu| z&dc zUl5@&{}*%b0$b;Cr3n@(QoPiI60faTj>(vgpNg%wWXp~n`-;4hZp@c?Ny$#T=bGZX z#aDPqJpu~Oo=T!Yw_5c4RDcjv^%lz;E*W=WwQ>RXyI(4c_q#!l;8Cco{JMa?1 zuZ+(@Qq!x`$E3oN(qp6v2m;2{2+KOwJkCxWlpwDGNS7`}gAf$mZp5XPFI=YK@9;eR z2l#er6+tE1o^)wfk_O+*5q!#mNbo%bb&vc(8EOTHGYd%D)14V@OkSW_5U)C$<6B}N zG&=s()%jT$T`F~!T&W9w2}sr#I)b5;DSsY~RX0}W(vM1=qZ?RKraUm$3@)j!A5f-g zhjg|s&4Ml55;aJj09{xr2{=N01YLCPDyn5GU7N7(jRROCgJYYLqP7ryEjtf)76xG> zvdF&E?kY$iTqO`A><9t<$G(Xyg8$0YwIQtcq4AP@i4z$JTuVMKz=l3+6yQbpagW~+ z?9uh4aEAnb1yEABEiQqByles zoQ`Y5G@%QO;KVQnO0Qx8fAkW#L-cD|dI6q(pTKqc2-IrEYHV2U8d+L`Dzt*iFD$9$ z`oi2z$Ov7$F}-~w@U?hNU#F?{LJ&g+n&5(wuO;R-<^nt-f<06HMn*; zLe|EmgxYwblc3#%Y3*K)+LYT3QA1_WOR!4lT)k>@7=5maH?q89P+Z{X4IdraLRZBK zRa=rxEdUEw!&yTM#1x%x5l~M6aTysk#`1dYhTno99K(GvM1=uqp z_=NSt^kUF~^CK3+;XX{#L%b>bh3$Zh;V0oHghyQRE)i)`FhM#Do)2R90zK?T2Ck1? zBq-U|z%K%;BvhDlYe=wPJ1%i+lM9VK@++>r3KDvO8 zP)R!@W%AC{vRtjZL9qS>&9OV12cDnZ~|KSsVl@5}_ZVSo;R?rH zAh}9EwKBFio)}=AD(RQa-GVk?xgKc!i>IX1+Kvi&YsH?$#eTUwVCoUhyTI9)n2O^Z zAWu%+9Gb>2R)SaA&!mMo7P@y+L-p+F<%S{&u}@ML>f#jh>dUYM*kaU}&nf^Voe8H`+*#U~Rl0X7oMsWc4Sb65cl)bf+%w$++_ zWeN!LzqSyMv{gbJ7r^2zh0|@CP{@t_$PdB=lGA-zdK1>z z3KzunHwSJWOlGMqPTjCAfel#PPoP{OlQ1GCGMO$$5Y%?JC`zv^VzYs`0bw&h@*ceU zjhKNv6aNZZnk+`Zuxg#9;M>F135Z1noBGskdZ|E_q2R`8Ok#ab{SHBALM*sUxP{m| zJ2i0)Mytd%2+nafD6z}r#D%uQgj#iM&|O)&;cde96P5+cK*XC2^o0FR$I>L9%x_#M zXogvHejKOCKBk5Rkg3U7$pnTUO%W&Ob$WYCX!tfRPaOu(N4IdG{?5u8wq!Q`fS>`QGBLIY?Negt#w?l) z=1meJ!b$pK-sjY$wMo~>NdvGU!i`)}%LIsKSF2B6vsgID)xMWgA(yLRfPGJVJ`-e< z5Zg=vrA=*|J3SpK;BC2bOJ+JUzm!j%YO1YYLa&UkfDAJl&fMfDb(%vnCDUgHTIo`o zbbGW(e@-Q6S|taUZ^Ca2z?cz^uD6se_(eH}eM{W?V22^@r}dT}t5!u}wTZ-{TAQ0R zwN)79^r<#)9h#Cf6wqQu_5%`qL@+L?JwXV;Z+V%qFBX&w4z4;~oDOqZU~`T|;( zCd8Gsw!j%C=5n{@L3-CV_R|jXswylfB{2vupmCi|9v|Rsx>-rR@Hs0rAy+^{#P?O& ztcRwZuDgI4=w$e5Yiz+wr54yy3))orW66X>G{7V_bwH=hl;m**vPn1(uvOuwU2 zl3(7O`Ix1;cZsm*4r`N`pfau^Q6+piz#6M(Y-I|1I&us1NL^WqYK2k;HZ%e)1mRZ$ zY=;sM(g?6>$@U~ARSoW|mK$M0S~P=GH!S#IAxe9y4fl&lehDC4jp7=dw=k)!@Fphv zy-Mpwd6AX}ZJ#NeNKI=!Y(dv-ZheJ{jp0(>+0HTyCSN)TCZBGM)Iyj%86|y?46m+e z4=w-|gGqsivePU>hauW!R7KO7in=pUIOv-`kxEz-YA*h-O><{BykO}qU7NlE8Mfj) zRQP%w(rii7Yas*&TMEl#)h-~1{0aa@%G6ZD2wH;pQiay&tftllMj{i37|8?w7aMwA zzF~uj=DZ@yDaSD>#(KVC`5ppuqZ3o+tW1s9Nt3C?$>pUvObu$&YI|B3zgefjy@r=n z@G+An&M~z~F@$-c&$@}3jP;NghJd*VoMHBrq2P8cis8wJP)CYpuzGheOigaSB*v!0 zm<}>ndJN;;yA9{GOprjhyfZv-^;1$mp*wE-YLsVm&61 zHYizQsNCZ)ouJq-*p{gWMx?ofy?EeBg@aL|K`b|kY4nl9M>GL)Ni)4^&>NQH*ZI4&xpgHR?W zf}>(YfhdsGj{?HFM-jFx32RVmmtK0Gt+Irr>Klb=Wy7GbrW&qWJyhH|R~&eKi7i>B zX)+&-6D7gky)6lnj^d#CP{_z^p!Xt75+>3vlREGnOj3KdLB~K=ocK?X9QHHl)^5m# ze0L@u~C%d?OyfidjGC}4n;QWMzF+c`@x@B^fBCWpXKVGU4| zW4i*wR9?+7@?)=XDw`~A`!NW7x3+?{Ol#267K>(DqVXgND)phosVn0+K*8ovGk)?p zv=~y+rXe0l3Vx(uNc@r)gDFsW=SzYUfAGiXX34 zsPtWR0ey!J0~VeYC`a_0#rzBz;5R!1sNw@D@b!&huwO8m5bUeQ)mB$!6&JY4VK{b4 z34u%scTIt4B@2eCx?x!OO_q~HU=Qfq(^zv@qCQ5qRH$M&ln2C-oo7(%R%pLb4N}=m z>EPapDIGO!HMs9~l6?t^qAVT3F-@W_syd64e5@MDvh6G4?3+Nc??_7Epc>G!bi|u( zMMD`&&_D&_2`DF1VpyojtDEr7+v$X}nR2OCv;{JP%p2^t@Ph;hGoh#hwPyj_#rjL@zetRh3cI-mq*&OmK%;$&^hFQ-{P{Iu=HpDxv+5o9(DpBAl z?NWKKZFMWJOzLonFLBU-nd>TC1!Wq6Fj6~7Ak39~DaR$BC`;cne!~C*_DT{$UM!;D zV{wZZ%-Ql2Phw3cMP+<~wa82`iq3>3 z$+oy4&PGZ9OLodg&4Tqk%zl}lSVY@iB*bDFq)FhoOjgUUQ}p}fk~@ilXAbPXNmkn0 z=B9zO?lMYeO@hEbzh@?Gk5qMzSkDHLz+2~#bbGq$3^(-L}z_r1z|-tj$#C`;$niv zD+3ey)J+5506i*e6bGTsPxY0n94AiWm+gbs%4OOO-05Lhh$`o`B_ zsRV|u6T5Ih(Segg!b0FIkptcoG%a}A_*YrywAFG4gt=c);h>m-#ys}Km59P!7XkBG zv{{{G3k_4C+uFkH2oTdQ0HVl7c?2tl=pj$8WaUlYi!5Rui#U00+-)MI7ZW^t7znD_B~~sAxfZW1hF`LF8wS8gvw~Tp7_MkUckedb*f3L9>p%DfC9S~W zR(~hN(5<0?3*E{*PzD987K(w(?X8!Eu}a;}S<}I?cPlrJq;oJVRC;=*f;d8Aaxw`6 z3l5P>V$pHvR+=D$66UxT&b`DiLE3T2yOPw8$q^ZBCs6p(t*a|@lfe?8>}Exj;=!H< z{V`egDuYq5Z#r4&RhcPlVWa4MBz-3gl=I>2f|^3mj1V^0tIBK~!^vXGO}?ld72P&W_KK zlsG%fM}u-rJUIzc;w+xFaBx?A@S~<-$At!)tgBc-oYYZ>rNTK0OQ%5uEjDJ6qMW`` zc_K*8c~mePxq_SC=C7Uft-WEY8} z!y25)y#B$(-4#rv<(F<|@*=}1)@3<=o5rvvPD2{iH#dX+WEGo*+RDsT4N;LsFXCii zM~2zdH?%BOLlBp|+tOsZE?(&iHJmYsHDw-U0U^F1nx_>@z)yCfLgI@qN}Ne2{*t>R z{1_1h_!Nq-PoUq7mszW?HG^cbgcO)*@snJr$3`;0|6-i)n1WXD2@#%vHe<_^82w2u zEx31legelyg+USGA&~=Y0`R1#NNcC`!e4upXY{H`$aY8i3u8o^x{gH)QC#(y6Vln5 zjxTt-BIn&(kFy30JCgtt$`1z9tbn-w+)mJ(c?ODloFGLef9j(AA;EGI4k z@4PUkC0*oax58ZS`1VAFKBvYG#a2#~k;ILP6T{gsbYAcjv z{oTIP?4-*hF#d^t$q+q~+3i- z?@1c!(S7L52@lg3(uNH{r-3pJw`x6L*`DMUq_~Ty@U+tqLU=%GDm=`RblM;deRQ5a zlNS@8o*HC%wLZU^m%+KcPg0J^0ke6js+US917LmCQt*XS8dLF?21>myNF}BoVk^>} z1!0r~2a)s?>q!7UCUm<65+u`>1-lC2hV%tzACe>YMUq>Vg)%Fja*D3VDNNdAm&Q0+ zGyv(uXn=>4r9n`fN(8D$J`u%QHJ5e@4wBfs=sqRV4p&i_b*GBL{Gh<@MKGd|yU98g z1iP0J;r1=IQt2X!R)G`JsmXXqq<(-CJd(DSq1~OZ>87Hh_EeYQ7!xjXU?u_|MsZ2u zo+V3h*GTDb+g2JZ8wlak2-|(q+qmP$e{exCJ+~6vu$_6Fw}<#yk7%rku#uL=f#)z+ z>KMg+?v`NIWj8NeG_HivC}rC)`L^wsd~4eY_o;0~$Fl$#GFb2#yuuhF zXA$;7BxpGp@oZQ)4ExXo^<)%6ob5W8M7u7PyvTT=U&4{@1nS!O+A8K$3BjP(Q0 zZg(L73ot@N;gPhOU(_+C2tFB`w08hA9TsFsM~O=ez#5*wN122Tk-n*{@&eg|5%)TE zR+v)l8#DqKIPtW~AG#cwAP#{=-ld0daZ_!(s-y;CPScV!YWB5)MoZLGf|@Pa6`0sW zQ<@R>cGlh5T|j`<34@5Ggz*7X7I+Lb63`846z2u-WYXA%>d7E-d~k_}-brPHc@0)W z-4uu3vdgP=nTsTWqf6n2Xs%6*PQ@3Bb&Pg=mEG4u5{#32gggCh^-aZxsjXpcc#*?x z5@U~frv#W~YhCn{Jevt239m8*%ak6f?MPNiriI~$g-p(K@ivI5;9ISjxVYq`dE8C| zUjrUmx1x05TtMDx6aK_#!5}`A6MZ*`SL>}Dre?x$tJ}fjfO0k=a-hiAsD|3t95+l5 zp}K*OK=M9EEwhgEOOx@e?hSZ6Eg%sMZq_JzX~P^O+}0^bN8xxyhM(#ks^2sLRj}WV zhElt13}o5DNhsbm2l~-g*axMAC0IXNQ@goL&w7-T)ZLx_P+P3St5itllmuf<4M=`W z6jdWnXzMVN$syAUj{(xmnuzoWk{hnpl*-kUr_S-`)Y+%y>)BI0vHav&K8H%>Ve~D# zv;*E{@3VP=FJukAPCk3eeNlHccn~&z&YnEwZyqpQhM;Uoex}i-s4h0JD?5LAGu$^|gV4^5{sV z_sU3V*kuWhIQh%6ctXi)15A~M%aSK83CEku8u)-we!P5Eua!sL?#zu!~W5a!@Y)%^VDdItF z%%$F5WEvY8!8HcB5&<_6NJvyz2x6ps8F-9Vh6Zt4L%H|m-1=q`$;A#^g0WXWyxQA8 z)>p2L3=P@K8Zi zAnKL!NRkp)PLLg{c`!lJOM+Le0da@*MuzjHYD9Az%h1eiHO-KIgqvh@pmSXFZO|(9=c1KIFeDwiQX3n5d2r|o*u1n2 zs2k6N`rk6 zrMQx1827uRB6%%L97T1db_qtfIC!A%Y))u49gDSsCkDWX>TtO?4y}|=p8&N4@xC}p z?~Bnw^HYRZ-^6*z6l1&*Ck`HjIJ5(a3_v3IBf?z3Xa#b;RuiUDEIjA(!SHo~uiZhlkRO5gPLnEW*&wZ|x zleRR1k@YgQz1%uSRRbLzLTb zno6}ghVH4_i!f$BH&w^Zf41BU82;L#{Dg|-00;R9Q)&pL_`q-+ZV>>NRiJd>TB7qn zCm*!KLE1k*377~x0@9X8MutY@Dx|nLXdmS(C@8`$X%MzSw&6qSQ)!aU>pN_zQVR8{ zbh}=tjDYs}y`;a?FiNvgPl|DsEZN}Rp#j`ZRfg79ec6t`Hl%u~a>1!MHmEe{l$j)r z6)bU95;_hkjgDFwmK11(Pn?eAg``UrIrfa??P z?yxGaID;N22+DP0gMA}Dh$sBlN?{@iiP8+e+*_?Z6Q{CadFjySvQVX37b;L462_CS zWH{5xNSLnz2TDzrLrsauBc()mev;3a88s*oV?o)j^*!55S{LkjUxF=1q!QcER9Xij z;OGc6!!1Xr!vp-BsPx?;L?jKvrw%~G{Y0{7JBb9RdPszp?;arnu5T#RsADKZwy5K7 z4aps#0(3KcEg+~DL6@p>YUounQJ3OjBpsPBlD}0imBbP)70P+T`7%cIP?whS7*o1{ zNnZvLJ6@(BIY#i3P{*iLGKYtgoWe?o>2CAxiJqkd8bV9B5lBNI>`tVDT!LD)j9Kqcf5fCo zVpPg!YGb1p&gH?i z)}GO)Ph!$1Muja>36N~E>T8&852zgoP#}*-p-V;+@F)pwLZY>MZ6-fH&~2gwp_wTW zIZ=wp?3ACx0pSFw0^5}nT@f4`Sge#^kTK^1oD_~sIZ;BRoNxy;L!g|r5rValI@>1pq_IiGbP5)| zTpOrbwNMYFJp3qEV?Bjub|wjNwbK!77K* zESuFuW%2|Q_-rm8naS7RR~pVKhrwZ5h;+TPcck23hHW;GliD)X@~GO@+0Z&__;Fv8 z^p!6_m+0*uLiRBjar1=BK=a3yKDw_3tsrO}wHcWq|U#0VMwL-?`bOff4n7mjeGE(WPnC4KZqOl6#eFVx5EC&13?HFwE$STZr)b^Rh28~tN0;mDwT|If7wfzJ$ z_tAJOHDx?{ORt!7CB$Oya4Gc-;6Cu-${@2NuKX&hAvM+@uQS^;2yoaygYUK3UQLHt z1wEo=^+RwE0s-`+uL^>)FF1>*ehu($aV4S# za9JsVRb|Xz*@gf_t?!b?f}P5}@H_PdNXQ^AB~OY>(s-1TL_VnRQY|i~I{X?e_O<@k z24A))3&ph`kCrjDAl3PaSx|ooD&NqR3m#|qAeaewbz%F{EcR2vy`7g<$x3?gtt;(8 zfZPaXCg8~_`^9)WGZyI0%FJv!X!3?$IX-zKT!W?~GrUl+bMNNd!rFp(yM~w5)=lrN z32beZOSG_xKd>~p1~(Nr;LDjGQ!%Mil;g*>eF9g4$e*rEU zvx{)kV7X>8SnH2tmams@uC9zLl;QD}ailHFEoitDXnbx_PB1X;8ZZ5d@^D`w(44$M z-yPZi2RAYChFHFu1i|%bBKlfpl(9$s6zk5bqNl4~3&= zbw7*vIEv3=;M)cg!P~-mvDmx5kI88YOUua2v!&{WIv>|6;ns$$gs_u?E^n)P^B(SL z{w-|r!4_`$O|CW<%-I4w5PS{|1Xp;QCi$KKVX>V8O^JH=_XGw=CS=lfMMdGm2QX}d z1zwzs%b~A||H!ibOpGnUD-1VcuGY=+jrtepYKI2WJ!KL?p9*ngnY_VQfj+@Efe9@9 z`{WHcy>M@%xhl!7I+}uQc+NR?Vb382Xo(j*v6W@=hTVk)2TFXv=ia`I-_#dCUtOA5 z!pZ-WH;4v9>tC=4@xB)y=)Q2r3QjOKS9#6-qFG+MI(2gyxw&OT(3%EY@fcsNF`LX* zmrSF(3HYWraPq9wRk|8VB+t!Mw&G`U@B1dRT-oX z!4iSpVp9!mJjD|iQ{c1l%z}?X0w^>@FCb`^4dttVC=MVI`RllY_&Kh_(iz6{lPle z;l3_8MVM_CzRMjCwqu8c&>h7|Yl5kkSLVR2VVW>61+NVbWQE!Fcm&%& zaA2&#fHI}`tl@PYgPzo?Y|nd!u451W$EjC59132MD|)DzoHaF%?XvVWm9zbXB>}{S z>6<=XCSX(rD~gY%?#wJ(un2aqY;|{X8kH|SLk$NmK$U_h&}7L`J8`J=Ug!C)#kf6C zHdIheb}{2b23sAM%nws>_9Wb*nWSfh6L@rl9)`|H`NA`lr20v$2`(Q^cGbCqh8Td8 z8sI38^LOgl*Dy~}$yW3EU4(#T89r)oY7I&xFHh4OhK;3>(82qMSl8>VU)F}i{iHWqL^Miw%!q`*$$SzaJyFGg^MVr-dQo5+cf z9ombY#tC^)4}V;K7NFa)K98f`@?z@~aCc@Mvyr3JhJ0{uf0al8&|-ief-cY1=dhu{ zr?iT$+aY>v822^tJWRMOgYzfWa8U9s9~R`ZadyXN-_+H$nHlbt@JW(4Q7e)!oJVXa zsr$5{`r%M4TQljL7%;(hB7EGuV7Ag%PcL|%DfbiI_Wf;fcyQiYr&nFXfL=XsV?F4M;>#s zvRbG7Bt(I8VP$+q?)qS&@SO7So4caHW|Nu~A_3ejxkJTFcY?8w;4fa4SjYZoib2j* zmfeLym~+|_!KQHIfxQUYEKN^ih%o6@+;vD5?-d7uuNdfiTiR#TVlw-E*U|S6~z^L7|wam;S|{qZ_+hT z73z_uqWy+yx+q?K^Yf~t`;PWJ4{n5G`(W(C^x2ZwAJ_wd0Ny}-WRm1Wq9KpU{&Ywzm6Ad> z(Q>39g5--FD#86E3>Y5A0Xus92tVVan;6n(8^#URXh@#M3DxNORB%*@UQQ{O({Q6M zZ>rRfX>_ec%B|JpjdM-E37^#pr)xc5wsdXYQN z>>K(&#t7O|uz5Zb{VJ3>EvT>Jz+>8m+$s1(!m2=Wtn3(WL}riUwVh%L;zfjPPnotc zwQOke*x_h5AmqO(NTyaiw#}RDTr!V!Ird<6;z&kQaTxDmAOT(gYjmllz{? z61JTH5EEJp8gGnJs=J0{oF@s%tVjs^FcOr5tgy0-{WG``Rv-u8$zCW?VW8o=`l8uE zFCKNO2StY8c;^WtLTeV7d@S<#4TfNb6)-l$niu$fCT;?-?ooS4wRL6CEN_8{MdO7Upb${7r&V)Jejz#~HUIV)hNaPWH>;3TS)n z53OA~CP+UaD+Ql=rIJkcFjbWKj$AQhuUcB+);2cy=n|*HW`cIWpiKtmCRUc}OVg{z zuFNe$9~;57G9bXMvBW{hjj7-sB{_{xxK!KEK#f3ykr!vss3KR<5kMMIKqmaW|0-G~xaAzwGmLru3ZM}{7ImAjOV!>=#b6+021$lF^U{h?hKcloovX>4R6%kxtj=x15|O{=MteQC>B@-17E9gcyE;2p#~cbBkeH_; z8Kh(4WGaS`@?&th%L?vCk>kQA*oGiFZ!rNK^xBdIdm%~%a^Ys)h&H;Uvz71|c^Ry< zzhVTN!Ic*?qQ??LkxG_@`AzXYAkzSYdqCNZow#6(93yWPO@5~air^D!kLsfsIQ1}k z`z?3(3QPzjTZA6v9#hHd1W@HweP@Zh3*3KMolj>G1d7gL$Cti2oU#Xot;@a3ps2wD zh6)5s3$X5jbvgZ{DFmmf;EwIJt755;)*M~J(Y^z7FkwK11%Jn*|h%Fu(-j19P;cJ_t#|$1B!}C{xDg?YGV+gHy)sokqY;4`jZG+rY=`s<}xX zD8(Y~k`u*!4ldU~Cb{#vF{i16cNCE7HBwg`#7BPiV`Q-5J5dH@yh1HF94GRZ)uM>< z0d+a$0>Q?eCZscb8O4D+#j5DfL(|Z5IT0I~`z@T#IW=#f$1CY!eHYvQ5;YPS5|gRK zcyjtIW@kt)3J;_@e??x;k6#5KDj5*8Vt>WNQcnubhsf3f0Fgd?KR*vSC|~T3h!N`r z&ceXjaz2DrZrE0;V!k@XlTf+P;E&*?7o|dRd;2kHf)DH>qe7j*PWRb4tQ9&P6r@u6 z3{58_gM40|AD^&e1<_3o25`ruqt3o95_0K!$PyS31HBz&X($nzIr>qsU=6!>ejMwI zg0Lfun<0hRfnUJHB#^u12}BZX2&>Bm=SCtdATaR1h@~aK(T~!in+Qy#X}NF=V2S5xKYjoCDea` zQ}`iWnZ@*><8N^&nSltk%z$1m^|QC_ z6!Z{@MQT_{R%aI+L&?dL!D;eAW(-0wFmtM>dM9iTNeJ{lta>Jiu|hoo&nN>5bHdaZq67<1O~F-quGT=O&hl;`sPs^pWz3RpP#ttH_T-vH zIl5>9`VzHhp(h+FPv%SV2?%BDLO{ym=zFfANpHa?xm~29M-9_>qbI2(`18EprE7Xq zy6qcOss_ie&*3~Y&dCH9|1Bq^u(2?aghWLO6?H-~sOqKy%34`StfXDb*I_j0L<<38 z@R`P_P&c0^8W!i~RIAasX!K%dQ|Vi@uX_w9*`!`8wub3`l%omeEO;uS<(ACtfw^ zQR*Zy!3mP`2PykJ}LtAD{v;4fKCo=tQTc%!i0ZCth!O*MORj_ z>%=SvepdEfm1HAT99>fBqqH>3v%;?|(JXt9o#km9|B6XEeM}^7eDeDE@*LV@S+FxG z(vD}4a4g?hWaZ$fS*#(VzHqaFtWobD04HrQEi++}qGc^#FRk6wH_a|Z;wB1^2*QEJ zGMzFjgHyX;yK}Z_d7eR(b5oNNDARSXQ2-LtyZ)y_-?~KvhVYBM@I{zfF3m%0HtKu9 z(rGe>+`>)o7|J+bv%G7-`La>~PUp%F4}h7tbP*NCh=(#Tm(6jfW%Oj7>~i^jS5vJvpRllO6=41**Q#^ zfHIf`*4!0sIqDdqjS)VY!WthU9bmR z$%IG8Jz=96P$5~Ll8`Y@kH7%bHfUw^LTRCnx&Hjz)$1pZoj7*-nGc_wby83MR-_Zdx2mKAJCD7rP%(PiG$IKNoWv=44ir*D;T~a`}8?zrb8Q^!# z%p;w7v;tl4IeD`aR?1mKIcrEeWR?Z~IAF~oY|-@Mxq#4l zgs{L?>J~gT6`Y$CEYNnSUgzMMSLs%=5eLi zvV^j(4bmNg4P9taMP9bWI50E!x!R?mb}oaiq%qqE<`82ZYEepyEuW*{NyeJJYru?r z`kXQMlOD^0DQih?CZ~hLA0TfMUp`ZDV;{6G$|a=Vaf>&4(SaDMX}bnoZVB&4Jn~F0 zXts!dOTerLFs95=V9cJmr+8P64CI?I3+ zQr5J)b}$3(t(I`&0CK^Ijr=osi+lbcLdiWtfa~6&=^%6hq2_cJS{XDa7qE57Uu#HB zF4bO(Jo}$F4)4zZ*XO}!9(RNs&%)daL$kLB)H-TD0}3^DPJ$v6DASd1TG<~;nN;TIbgP6U{$5KJB{nLWK#q2=%g`O0B_ee>;rzO4ebj(RT7=e5$Qk!+b zbu0KKFFglpn6@>+-(2(~OHab{Uh4NC*E~{cO-M&Vb3J56V%SFJ#qHp@)^3phP!*hC zLLV#vM>m$4&S8`nNng-$1^>p`7uzTwF=8D^amoWMBjhNpJ^P$#Cmzz`N7=SDNV-{} z7Q7W~41eKO1IUz@H;`)*_0!bZUbe&hCpAB1Evd<`8NAP#F9`e+N>q-z3eF@qn6pf? zC~Y|dJR9YVrGR-x%b`ZXb|EEZM3>lS;!2r~&&aa_(a5Wg3`0&P@1-3 z`NX_eD6f5dP56=HjXAmi3a0fu@(1-ijv|qscOOSsO8P}WBP`}cPw8YEOiOC=G5EKW zc_~XNQAlO;An{hNB^PQdvR@Mq^xlWF)aZf6Sv6(Eo&+{0AgxNMc{n1derQUh4RzET zD4n>x4tbld*Xw{W2xy}izlkM#7#17wehrXg>_!mI9%FXBj&{B-<$ntKKLv`t4q6TY z(glom7f}**7HTi7(G=2zoMgJ;(+Btspzjdx%YaSonv|^qt2Mx6&4JsY7&0|7j^Xf< z5Th7Z&${3}X*&A^1V6Rz%j>Yn8(z6$Y`csMiVt(U!^P<%XIkKu&rmg>idED~HYCj2cjv0-aB4{qxgN zYv2eq5BelIy4e@8IEE*6?i8Kw>y=o_%1B3**#b2u=4H9%w} zqF9HiLunCUdwT1Xxi#F+KF&TUa}b#sCK|(ogvWlzS%hjiqriSdQbVF1Vx3qs_9vzz z6+*o}J64r)a#TPMbBJ6(Nux6WD=D7z7=(JW!+>;6a2GC6Y+XG0t|Bxi2eBnkl2A$0 zrDs0_Na6dzd3?Qq$HHetg`jL;l zg>wb%horpHKZ<+CmrkD1c_8%#j)~VYvp+X>nnP}+<@mWGG7~KuU^k4=aDJlH;Fw8? z&pgBj)DBuOT_cA@6_`;6F~>c&A+4&2gK<5k3h;)(UUHte8*Abx6erq zNY{WCw6Hiy?O}7SNUdm2N>Ul9T+RN}FkR3duC*JcEqVI7v>`u~Q1WClGgl565Nc8$ zNbA4sAy9j~hCk}Fi%G5!o})wDvs}rh>|rqlM{gH*7f^y8(MX@ogKC1BY}Jz#cebR? zJo`ZpO4yJ;&48~7^&Yk&<(}v8m=fDSd-3j|If><1BZu10>t!5!w#kO&T~tB#&%Y2y2Nd2)9axs=lYtkwjpo0nx#t! z!tdEa+`gu66L}#grN1934Z~PcJWOdMKTaS>M4$hY8p+)OF5~CpI zrlc#!7ks6tp<{Y3-GW+#Wl^JA0=7D0gtc%Zldp41=HKHr6!H+q19QlSF`wdN4k%Y7 zsl;liql8VdKg5Yv59&*dvtw5~N8u^Xz3$QRI7z|-FK&!amfp)^MKC2B%1T%4r)y_6R-WHEG)325--;_u%ot50~@Zo(BkUe z5#Gwt#k4<^Pt-3yR7Y(dI%&Tv%Qq*MnE zZPOU{`O9^var?{f6{NfluHr9kE#!qdWCQRl$Mw#$+S1~16cUuZll0&S(t{bJ!wU1o zy#cm(*M3Z@P^Xre*a2!SHv!4&q4s+e-)tLmi2a7#fbI0CJ28YzwR0s>1so=`Qml&O zi&#K1z$Qqj>_wv8+HYd1P+8*))RVEEq&Ago4LKiE8+X(3G?ldP^?--mDxBjm8CxG` zukd!F9%-+v9osyVPN$Np2f8rZ88)J$Dph=)d&Gjtl?+l$=Y_7Gj zN&9_DeorwxV@u9&<8URR>FoAt6sOPz+4N{*{5g)TDd#?rO?6S)9GtNQ1#;#>4`m_6 zC}VS0(((N=>Wrrv$3wNl5qw0x^QmWBRy;hkSRCe!;M(;U^b2N zs`f7PcpOjIoCEeDFL8D&cc$$b+tU1H3qNC9oWJgyEza-L@+&Qm@6*B={MB@4?Dtvz z9`W*#JYEW9VB81HQJ*rVu;$@B@G|PnRZi6V8J{}OV&Nris+8kf<)c2CN`H2%^u9-@ za-H5fm&*NAo|9YWp(IY_cwws??9H)kPUYURJm$WhE^kZPk$Y1mG#ndKvU{6!iA-uZgdEl_b5qodI zr)O7CLJcr!y)PjhHl~PuOC^4Twfh6Ckxy?PS13b}C{v*FO_9^9vg%8#4%5yd)a>59szxn?361L58LkU7@ za~yvs@Kg*)SG&dm4TSyP?43&LZ1!`VJ*hFYC1BA;nLz^DCg)x)=j>6(IfG68;6f5GFupYXAf6oC<9TuRbBh07k zZNxR?t2FhVM14l2214tTno~o3-KmpvhK<9%fHOTJlF{w-b~z~JIkPCEHk37>pv5l@ zwItLE*TT(S^_ijOs8%C@O3PT8L3u}sy%;*`x1VwuWgamwb&?F+}X2HDh($5PNO_hi%Oj3Euv z=JdLTv>8DgPh*72Xhxq_%m<{0t6i5IrQ@gO@{%?j=OI%puPMiBS~orf+;8z`JlC7l z3ZkPd!P?iPUJ6%6dI@rm^BGup0r4l{=K845eMw#nD>Ia?CxPwK~3k6}=MU zVK?W4p^pHyGuGZaGeni#BKKeW;G_B}jOQoJGkCHDT4d-iYVNr% z_)~{>Ry=c$r)v@hFEfs(u_Ss0ni*@)F@Fy6^uDoc=J#_xMT;M;TC^x6kdEd-YM5HA zM9g6x4=GYbNIo4+>vh&^f9U^Z_ENtg6!?GL6UH!n&6wZ#FzKsS6jFs!*tCjP@#(x; z@32Nq^c&1lKif(wHE1&d1x{)n+Co;4n>Lnt(Js`-E}Pptn^#JsmWj%GX6v#V!7%MN zff@P49O?zVmPNl>!EBf{7&oRjZkHRdf87u-iqm*fTcC%m*IG}Y-#8Cwh5Imck`S`5 zwfTGrCDVJt>0~{C&HmRTJgeR$>UTlTcHVOAIpihfYI-J8C#1csir0!w@YJM!m z)U`y;R>*bnDsPX#q`Y9=>5D?BtfTYrpd|3CnCjC<{aG#4^d9gvpmj-PU8nlc2K7Fm zA?(T1$ZcNv;54R{avT!uBqYRH)6_aZzQ0fHNolGy!52Ga7e7K7x(H7dTD^!jZR9=h z;h{{uCauCX>AGpM{XqFCribbaIToW`;DO#=P)VsrFBs}G1$iq)E*x-%mf}Jf1yV$6)rMqi9`v2R2>#;2b!PmZ*dOPQl~p?*s0$fc)XZJ%!%# zw1->XIUP7VKVhCtq#b()wGHt4{Tz{FxnS1-ZO>1}=(Fr=HPN)GL3%#X^(y6VYOhNe zH|D@QBE`nDeS^}GutMoa$>?+&?iJx|nVuouYI7Ai)O%lfgBC84Sz;~r*f1;^5!w?y z;-Ne#KSm!-u#zmL2fd$u9=A#$B_GK0O+RQuP2KEO?8K713$}r~ zkO+-?LXVZt0nLwAg-#q@RXg+gcNRM%t2{c^Q#xn4X$)3}irBBLzH%RT_K??Ui{f~( zYMwAhFcz`})Jw67uoc9Kub|aMS$3i&bS?__;?UfLI$mQnZTfC1JCPN-2ZPqUXYubG zaHDoX%z`~BoexXT4p;adlT^#*)2Q2H;NVsJMsGQU?R^Y#<|g{2e=h~^&+>i$W3tza zmNG(l-aG_3hmoXB_ntHzQh7oOx!D6Wqz7DIB0s0%Iz1Jh12=o#wuJizC3n2|cWR#4OX8^xIyx5qA)`KfVY2RbO{YN3B$8b5mZ5c9Bh zA+60(QbMh-u4RumPTie_7SQU+?O+9I$F`>pQ#eaLJ+sJ-S&16iX?|mSsO;tQsBsoo zhIqbHpK;Z&#qMz**94rO0ri?EARQs8@6U!)Qau4_V}Exc)vm`)Q(*sgv^EboJtd2e zv3h~dQ?l`iwC_wyF7sq471FUOE_+}Mlx2OKr1x?N`^yodYa-eC=MHTVR%`KX?_{Ia zixN^-#|50Cqbwa#8|W6r0W&UW8g2PwlqICHaEOh^!_wYdVlEbT}K+uLb(P{ z9aZPuE``pqb&r>MKG*(4PBxCCe9G~1Il}NPM`e4r5zm}#%El#fpHsSZJ+8E` zsKti%1Kri=X+ZBCtQkI&ZH=A`x2Z43HIzj-lJ96tv90qMc)GdSjv3ndXzkZpRl7L~ z47jt1bIp^mW-UU~YHFv9T$Z7&g>2Bp@WSPFs~we2Bf`&u7Lr#(z(@YL9-v1pGc zJSW!ye_(s~VUFw=9P+o>Pg~}M9Vg7t_ORnN%hseHxY8QUes5m+aN%*LwmrlwPF|K~ zTI+@F;kmVCZTE{-Uz48ibL@uHv_p?3NC{t@S`E%$|Xe@4CMk@~Y zvh<=J)ILa~S-k74?OFWt-_xea&N#C4)}EMS`@Dy9QI2k0{o)EN=2-VQ{~c=ToDISQ z_dv`C^mQgCy3-gM^MG2e2_uxRbwF%v^KsVnWt8eINR&Z4X$hr}x9xihaV5>m$D@h; z|ActF!TyY0=zism5`p@?Im$JbaYg!qsupf;xio2psud4}lB}d=mcLxKW{4Cc& z%BP_@>*C{*Txf$_@MtIOZRu&}dRdwo93JJg)yDSrERSWVi}l{L-s+{jn}@nIVI8^K zB%eM({?mCmkLS=d$a6^H##(~8M?;5TkN+*{)3B~|#*!2g)UE-)3YozjzO)>8D)GD% zT6;(X$_2jy$sHG*$u3AJWzYb=ZrSwQYcU9p=l&Q|WzJg8ypUdVqz~s8^brcn*4{gW zaOx=@C#x~r_2zIKs-sn?1uzf!*UL0F*Q&sKM#roz(mt%%vfiBY(2k-s2xdWcO|=A? z+yVut6DvpQ=&@jP%$N9sOcV9Nj3(iAR*9qLfeyD)&)?ov?P{?EFMq&%q?8>3q=5 zWnC+NAXt_{jY=#UN^P=<@eNWnI_N$oZ z_(xyoK z@*{P_Hr)RzRzta_c^!J3xsTG6{ZCg1oNb2Q9J%4}&>jarC2}Yks}yG3FLLU3h_s>? zL$puRLLtpofekrXB|-x%Y~P*+9D0F~D%yKlf88Ocnz(sf`wn+caD?H?r(2ixYctTi z4~5=?iH)!gH@je@HhcYi!R*Bq=qOiaw$E_vJ_bw1oA~4VOPCY+FJ~L{B|Qi3#z`;M zOG$n0c4iSwxWkTg?1Oii^P=zlJIkqK8{2|yl33rYd{gWx#jhfTl|uLUG7^j*@?i}i zUdx`T)A&qCJtZ=n4;{QwAYA*4VyJhY57TS_&YPmtAv8k7nT zEbSr2@-BBqbH&g3YNYW5Pd=)91GmBfKHtZmmoY1?kLBZm^mYu$TI+Vk6ST{&g7+xf zoL?qu!TB$x2G@KU$DZsYuesl)#2KNWDlHRi1B_a^{*KixN>EQRN~>G4vZS)YJm4h? zB{*>$0Zww#(lb781aa39s&Y=Trq{;2=+oqL>Nl#VnumS9hG`yj(zJo3vf7lk24xZF z$f{Kkm#{?j7c@tgV#b+)c`^%|R3`^PZ8G_SoS&_OxZJfx5~+X?pwabCl{WAHWG8@!8; zGO42D2lS{;;unQHsu0=2ewLH*`^Uax@}@h}GPM2x>cbAJa5PgM9Yxv9Yiv2>ov?h? zIH=#_3Mt#i!%-3?HcS^{21)d32hY)`1WIZvx)b=Eoo*NuBnLW;#2nGQI$C(DW+52c zzWLtkjsoN!wWfu9030(rLc=vCR#6hr^xbkW=`~B?G^vywlqp| zuEMe8353xS;G}0A={xiwKOW}CzmK`kQ(~gY-dmJSbHKDwRkMbuS>7D~rEO!NHG1I)}h1q~HKY6C)dVUQ!I>n_}Ki zj=jS10%Eqo>yJ3aW(VLR6_p+`&bUDS2w?Y5L+m~x6#JJUPRB6FE8D0r$fF+-eE)fjuNp2t8o2dvcm7pqL8sBR+1V-0PUDx|{WL<>|K}Ka zN-1h-l(_83UN#>StBa056#4%!72Fp8Z^Za>gr$(8&EX@0;s2DzP}jShHm0*Mf6B){ z6kBgg+3%$BCO6!$qC)4KA2CY*cUxin5#ffnVjRohQx0g zf_4OYV^TL~Jw75d{vXnq`dP<6uzu6dZYpc%bQj`Ac`w?AX;8NL(5PNyqUh;hgNgS-mUK~ zc}lbIEb$3V+-RM*1ax8x>C>8ltf``u25@5Uw@>6BluGu~a*Wzc}Fxqufk+r#G$$(R`*5`EWVWUj&gVCCtG7(JMG` zP9CmM3d!zKN#;C+ssSHt%EGgp67Gix1IKwfWWaF%WhKQwda zcSJ=jUha5A;j_Ap*9m$Y5{;HY9@7MQ{mJ1>A~sAGn&9ik;uLq}^cu-?uE@JzYIs7k zZoks-L>*+Q!N{|n`vAnN+sUIGrp8z9?k5Y;Y&eZS=QZ(|CfD{L>0=jB=T;CU8-p+) ztVJNhS)?}zpYVl~*p#;6!6J@x1Lp$G5Yu;OtGX}cWv!yraJu4A%ht_O>N09U^R_#) zfw<_3=Mbpn`;M)fPwr(d>*_W=_zXRYpsu6lF??4xfzSPjM*0=9JP04xM4=pVZVg3^ zVlF2QEJ6&*7ecm`Y;6)Qd`;r)A=KBXYFj`2uJ*%%Ysl6EIP zrk_-}Y)!5ZP-H5Lcpf_EYC{d?Zahq%){LC0+)Xyiv&vi~G(Fqc@j`XMGTCh%OCjl$;i$jgy=UoX zuZLUrd;|BU|aDfw5ER$Fy?FuzV^5+wwKI zits#iIC1@m4ZeyoOGEwn1?6a9g=N>qyzm zmeAPQdfwTkayw##jo?3Ak(8!{_kRYYa? zBv`&Y{$0B#^VFx zY!f5JFO`6%A10FIwupK(oBTu{2xQFpHRqtLX#4j zj+HSTyL@y72sDh$9`*c5pObjxo$VZyop<1P5IurQrTNd&IqsppC{M!26q6y0GF#oa zV3Wo0)b%Jlf<3ob$~ZRnD%QTJ2vTFTjS$15K1yQniU*(6azYu*#&w+h^Vc(p@`z&F zOL;17hdiZ(h%r)%(OgFsnHP8WvV74XbI#Gud8%%m*=IbV8Pm|yy&_Ofx62Th{PcFo zbzCQNX4eyzaT)zJ7yRN`98Rubpj*d~m*QC$=gzuV$ZQ29mHQmSvJV zeJk}bpG4Ov7LjNb6EsR9uG*}DEZ1bh#)I1gQ-w&QG}p_>Wezg4vB949P#aOhO(a9B z#HV~Vo>Q~ct<*u){FFD|CDG@hQKjR6l2@p^!&a3@x0voye%1qFO~PX(bxUlB|JI;B z<3X|4Y?KXv{kl z{?EUkjILcT`^;OD`R*$7+)lw}s}pns-&US~9KUGBt(!fN4O@XqS1phYp`aq4P)DUT zZAIP}%u~LeVN%KoZi%A$c@%C@FPzi5JyWa}(tB%U-u&vMCQwrf;QKw$RQ^eiE!nCnqd)wjNp zJE(`t9nw90f%hjov&BSJ^FzQlew=b}L)jDXp-)H}5Wc^m{1IQAPv+n`^(z=0Lmm#< zK82U|3vGas@H4lQvhbk5kPI|4`MbgcJE6Dxfijz=5JD=Bb}FPoOx0033!72+}Txq3vjWF13EjxOsFNXcQ;BF zFr{n39VB(D_>GbV)nkLPtDc8YpbV*t2ZaMb={tqCj>M0fNo<$pX>K*&`Y7`%$V%VU zaN4nJckyt`?&A8Nv=~!7yxTN)baZ#Mn_V5n^*_a1i-Bis8$$Vsk7j-}+mBuR*kwOj z`O#`WcJl*JB~O7L1^cmwAA9V_K7Q=8AN%>S-+pxQql+KAjAql|kJSP}e*MhSU@2C-R{LqYv$ z*%OP`qtMc+GWj*oRyJt|p7;SxJJ6EfFQ9$-+tDtK`EGIj-Q8$g{2%}k3?M%Yw-oRI ziyXq=FlqmncsbYJv#Y6is5o3a2cqvG(f5Gpd-im$|GPFsb+;A@_$}}kQts z>~2N6;vDi%;%{EQ&Pg*)7Ux^ggp+(|_-G4SY?6=p=G}#smL}XbW|}%*>e#ir^Cci= z41-KdGaq0O)55@(Rz7y)F%lod$s>Ms?S>PiW0us8^v6Ify>QEg90#2_=Cd!-3N(d- zhDNsrxqz{eF^P$ayU~j`*6BU81y|xW(3Lk_;yi@azRQXn z2kOe>J&kzDiEK9LyIl*IQPzPl$L>jFRkfcQ_oUh5;T|Mog*4e0ijl&3RF=nw?BO_~ zt3LNmC$An%(FZD*PMLiymE#HZwvYLEB1Hv}0{mVbap;{lia^4fG99r-!s>h%yfuoK z&2#+v5g+g2u|ekDJcGyWZz07|@N8E{D+EP{N{@HJqmU=>iYWQ6etcJ0bQnpSu|dET zM;WO{VfT4PeHuLkBwnIH_vFsGX!;1Kp$;+f>=;Ey(`b} zlH*7D3iu5E5uX6b_xJb&EId&WJddIxbJ}h15a=8qC<_%iq{aWO{`?(N&+##QiS__J z$AafNtbw+4Rgaf`xU)p>vtoDQT}EsNo(w~|NFjtXV00GQBgPD`e5Q}98Am3sJM*aV zA*?kGBXj{^e7^qo2Tt#SNdp5-Aj96?V|G#O;H?88e4Ld;|Bepoih4;Xhy{`EWfzoU7dX>qRyJHn6V zmfhXOSw1YC?Q*@2ExS9{f6O7Y1HWi0`_{3i zrv-`fJ}rwZz)^6|EQybbh=4+%~`l_!#dq-aZ$y2Al|7c{^(`XzvAT%pCF`T}L+ z$X-yZv$%1Dq%0V;G19#!xQ^Ok@CYl`vL9gZV^i)$58Gg8$2aKBj=!<5cuw-+wOd{` zx{Da{ASlkF5M21xN?yns9fZP{t|Euc;zpO1K^qhq1$?VW+UOxiBDUbX zHlEvB+iIi_(bK1}EQ8dn*{4c}I^49ZLO&@?W8|VvwtHG!Mp|gl+082e$IWiqs;-+N zf7~#qz9EG~PhlK~L{3rnOyh^+=cMUaKqw~_YTCb-$#ldli6+SL(x#~+4X3XMsbEe5 zTX$0rz&W+)v+u9&PCGn~G99Sq-Fw*JXM~f_2(wZL+Msf@ae_VkB%<&n1L+6CB{dZg zhOqaXkmos(XB(IB1BSUo2HWT>ZoDKfm%u;5a_`|~ufc%A7icgAwmV~$M=!OZq;7=Z zQ=qWn87(pdYz+xY2Ir7XUV>Bv1K}4@MEdOO?~giUET@0_yGhtmx@Ab+3z}Dy0m87l zvc@!-hWa&_X4qcyE@vSf8dXBrByxO=%B|Or zRJlTdtKgq`GyC^h)rVzU16lKyx%m%O(1?(MT+gL>^tZp?f=TQ==LRy;CE@Z*!r7M? z@LfKj4}#xy0;A;}gB3Rg#>=IFE6W-C(2C-3lRF-1u4t@S#ZUZtdu9g?`A~ z#f>t?SGZ|c@FV>VK2n* z9Mup&mCBr8Uf`h>c}pr{OZie8Wx}(Vl@OioR$?K8>R&@7;rX+r@ z|D9+Q{G}>|bQ<5yPpUFs)ns3_$-dew*sTAh6jmu7;x9CvuR`HuYL+9C=trV7c5eJd z%gxPPI2Lx(ma@YroL-ca|Lh(hg5PbnpWNRr{wPlP^uL;5NBn-9+03PJviIfLL)7$tl8Xb-DV_}xp z4j2sSP`5XJfC?8k{u;_E3)BzL8*K>l4}KSD3_^*Ym*<*1Z%I3^Z)nUHN%!LVKh~e$ z>7e$8OtxM4Tc8?(Uwz>l)RjUP2X)}UIZL4nk7mqxFyr8B7jf<=Zhnaj*WC(!XDxpd zBhcm(c-y2pzcJ3Y!+c0b+I&;^?RDgAazTgnLx0x4F6`TlOz0he$~WQ1H|6=dJO$wM zgsKzx=P?3dTmqAj+2%OOW*^mQ_w$lvl!Mmh84NqD(dL!4W3j1Wf9^-xlEjqBbb% zhHQxy#g>X+cJIMf7a3FG%eDbm#N(}+zFlaQW0B{#E;8h;Mr5G`g~&cjWs1L0riA;! z)1&MeGRfKO(at5)8TlycfB{AQD~Q7Q^A%zBuVCibx%p}f1gdFy1CPF)2-59taZTB5 z^QG~2Kxl^L(f`!Q=gmLb30|XE?Fu!+o!`flQk(KIe*fSfmV;#3-FwmD!>hQ4cT%tI zNOct?B7^Z{##eU&P;25Y@7mebUY9=@;5r(S3m&decVpOZ?F8(01W4QXCuLzQNwMAY4#dB3Y%p-)_(<6tQmi* z#JnIw@UlGTbyQVVd-Ey%n!=#nd=N^v$|3thJre`)+-@#s!RBPB2+p;cT~J!N*o8s+ zFutLi!20q_Mz4Qe?Cl#b$T+_&Pb@jXGDssS;(y7Y^Bsu-OL_bNZUv|@m^ptPc2$UH znoYze4Wnu|m6k(LXvK8*b!hsXo1))80>B$zRs#`&paWC!#>AZ{V}^lQ0qV^#!F646 z<@5uoQ{8^2%VgnPnrm4naE$VCktJM|p&>-X+Da}r0;syDuEoW`??OH|0zQt4 z*D-#a!a>ar=MN3+DLMQ3LkCMm;8cR`htOnh+&c-6?6c;L56({x;5bCs6b!sap}EaK z!kv^Q)z5wK0sfF;;d0exsU7k8%8)NJ#mySlhC0; z4Gfd!AXfb^}OP2=;Wiw$31-9%f}%; zKE}s=d>rQEem*|V#{+zH@zKr4C-^Awah{J}KKl6h^>5>W(y%<+x%r=fQxnjDp98$V z@P@Gef=@xVgAp)-(oqbL-3H`9I?M&=8-}+QzO|V)J_`KA8*7Nf?R@OvV=o_YP%vgc z9|!s9%bM%>#16O??y7TI~bi#guo zTTjb_gzyj_pXB3VJ|5xYQ9d5y<8eNo;Nu7%$OfIi^ES+;owxh>c%6@7JT`9e?Ghg^ zHSgZtZgw38)i48q^IubYJKFg0VZ0u0KfKrMKHQGD_V&ZUd&glUX*%3#3eAV{-@(q? zC%`j@4>GvJv&3jF2^TER%9qkC($0*?X!*)c$ ze9m-_96kv6tQ=rnLM09o4wA8xZE&7COZsf||7g6NJY7Giv3Vt2Ti z{p$8Q&AqqZq*h(vCnsaKS83fX;1@s5_@NdmpRfQUvSk44X5iG4DY$FT_Kac*qpo!K z_F+bozI2i8^1FiEmt|EGU+B9slf3;U&hKu2NmhgKO9OLr=k4EPC%^qAX8b)t>Kkfu zzWohF>KmL5-u?z=gT>olRAQJqHZx=5uCG2|6>4nJZ>bAEY=J;cvkm z4sg_0j2?pAg5J@KBzk@)g>pw&qq;fBQHwJ;cXt>_g{AFx*S}%Vv0B!R`8{-_-OYI5 zd!$-A$=*tN@@N0$cmL1k-=6s=pSbbdfBiSVbMBq)A2$E%skeK&-+1jafAHu3bm|jd z{-b~M;=PCd?>~F-Uv!@Q_TK;X^!NXtHy)Zf`iF=Auan>U_V@OGqwV;kKmOvsUV8Vy zuU`AFe)zwg{b~QRUn%#t{p|nv^p_sH_l0l2`^!JLz4V9g{J$56|LzZ8pZwns|2O5o z`Ng$QJz2c?C;xWp$zT54LhEn-u_F4TLX-LRi@?sX8Ff;$@mGA`5a%eEZ|}(R*3UaP z{+9i_UO+({50?0hw%OKwjVH?i(T+z(gNQmbS~`_cA+c5`m(F7iQL)U(TxDuOm@kb z^{4wxTcHF03NUQ^DN+`8aeb%*JllEuFWMoPitGQmbMvA0wpLhKIttypAY2L^9ZU^~ zy3+E+4%Ttwi>Twq7tzx@x@17yI3i@(4|rW&``TKH@N)Tc_yu(X%kD15Z5{yS|OW7P8vj36Dmikr{2W2~vHPAzDY zY?iT_h+YftJ5=8kpWWXEXQW?}?##UxfYyK1xj9f=|0_bm10T|scTgcZj&bP;)xLxO z54Iu6o#I?KOg+B>1S$NE*ydsF`94{qxcQpSfY-m@4%i!Cgz>%ugoB1~7XO3Rut$jn ztfONOh=AqV;^r%~UTtE5k-p!%+r*_}Z(B>3t0Sp3={^uqd;}CY*Nx zOgL*33fH|yCOE{$Sw7xGjyKzkx(=esotta>WT|ldZM+uG?niz&5_vjrbc3rPmfOIu z%UEth{$&CDuH?Rj_s&g@YMZyDIbXT2tsQRXVN-${Xh@0OD3Y4*IyOK|H8qsb0@)cc9mH<^4mb)`T))HSexo>xY82qR zNcu=-HXhlGt%>)q+V%twp^cyzz*xt6*B!IQTO01%$ zY_<74R%i2j(wFdIn!C9ajN&>9cp|It$>#T1_d{6qWu@_d^U*dKUhlyASV3_NLfsgV z{O^lFrGd)E9kgR*+iaR2nSTWYrD@+jHB`j$}lExc$k(mU-t8WM%SWf1@g3TR>!zy5s~dEs7B zD1599Kdtasq_ZRc6A9G?en0^B#vn^U%6ePAu~1Gyhn)Ae?V-sPZ<-m_X?R1R`C8lB zS^$T6p^kJ&E0O)A@9%<(qVU*H*iu;W*Y3Q4U^*3R+|MM%zo))~1$STo?uRQNnzG|# zZ3XH5b8w}@3m!sRwn*23w%wo~c+-}37#&GInd)7ot{~9{+ChXAz_EYe=Hig$w@ooMEyY>3pNY=>?0q;O0n1h==irzgxAySik zJO!qu2tCf9VpR_pIF?fQ$Y&Q@5iX;2cib&XGVd}=Q` z_|T8v|IJd=mlGQ`iXN7tW|zA&Z{EClU$gUO7T)9_&Ch`^ls@3j$SNKAx7Sl@dh3rW zB3>x6;>yGflSUbt1m(jU)h{uQF@um+levgY9*Wc%ZLzQMN9!V7z;(woEa?)n^rWcA zn2bBkqjIQjqY}NeVfs`xr4)dO9hVPyOXrklV{0W02qm9RK*em75i%DXtaqg8FCN@KU04cg%Z1q>zqqop{FA=E+U#Pm zRH)@|E|qGP!g9V+UFiFu);HMSKhQVO-&YOhgKD)UgRhxD&3|cOF37d z&59i5O8wJJc!x0!W2nsPXAv#wJ{!K=0i1?A+`$L|gLy5}qO2#w5!*nYTGVrote?W( z(5hS$6O4s{*k; zn#MCVsY*L1^iw%u60!Qn=+qWbBA&B5-$Y?}-y9M1e(ZQeA#*lt;ouByna)oZJN zHNEseWP2b~y23X^y~#{{Qr9Nsra?3c3V|HjGosf+Qxl>mF2Gtk(^xalW6g~0LnE|G z$Wqj&Uh?gH>=t?B&yoX6Zq-eqSO?(b`-7DSj#N+FmBjN3~6I-Yf4wyFsTeY z)V;yJxV4e?Myb?w6ctiL>wtzw?k7SzzpkZdT7zq9L$A+nd(c&#C%tAB|$5{g&I`#0W)FJ#ASw|*+4{8G2w1yHw4KwsIk#nw{a!3Ifq2U}- z;EM#^;3`bvRx@bzub82Bw?yr)ew@kzo$-pHRR4(1u~Eg>1dei>eivL$7*fnJq-$zd z75>P0=^^z2AR@VX13SytsuwPeGYFw@QTE0eb7|C=#uz{vW9qPGcGw$<8_^>YTxR2< zf<2lU;VNSyZWeMKCsQwH!nfoy^KE?SdcjfUFc~u8NK_&4!?%=-^rU_Ovu@9d-f(zX z4Wrb+BN!-OFPK=4fT9EH${kjnfSQQIiXlDuq=(5imQsl zfJ=;{LvM>$y73qqi^{z@8fZk;O!X`(xsa7NAeIL`AuPv&vH0p2$6Q6L>r~5t=mHT8 z&X;f%!XrIVA7-e>37eSsn$W_@y!I*p;LA;kQfEafsaJzAE5bsxzyTacWrT&PiJgU1 zQvIg9Ej@B7^|ExuI*{s<%u}N@_edl9x8d5|M?H(U_gxh76Jv>#SuchVuzvkMo|~L4 z+$0~T6Wr-rXo@~$*x(Q~5hE}o((H@knEGufB+$1tTnO*LLp-WnWe5QSeW+wLQrI*_ z%(jpIk^o_ypo5WJ;wKg?pj|Ry;GU{n(*Yt~lbD9EHWYYdP!)(92JM23jCmX*WW~Hd&LKM}fhlFm9N>LYj*?a4qMI+vE7VK?(Q}@oujQn>%I?luX zPT+ml-wnf~iGk`H;Q#F{C5OGqJ?nT8c)AyDZVx`$i!xfc`#f(_Kkc0+j^V|Zc}&GoiWFg#cexyP|pLTro+34H)_K)#NAUGVQ0d7QnK7p z2DCwQfbB+p=z}jPBQH1n{0KTfyoWaKWJpVqPV#Wpo$wA%&CDzos=?g3;+2`{f&RfW z`K!S#=I#<+M^OIZyE9DQCA`!?zF&XL-zB`4^keY!z+ir8$n#czlkisSQ^nb8rB<0= z@eAcS|NUZluJS?62d*C!R~Cb+?*>x=75NOQ<`{!juh#rZb=$9bzXj)PrMg^kgD<~W z_5tF*o1e)Gejmju26eV_y}VK_2DQBBolSUepRFw4sumX(SNxM_-+T%%hI)f}f3#Hc zEoTkXYC-izFb9kuCA|LkgDd_F7mBk%%^xo>7Rs~1Qczy0`Lx@gr|uS#`RVbCo@Zp- zB)}HLdDfWFw8Lu&uY0plo(l5K3i5NM5>qGkT+(a&F4oS@9>v=E+4TB$?L0$(r(XZ^ zo@sj*1L_vMII2FMj)rgV-ESBB+UL(Y_oE*>4qtBOyA1b_l}b~EB8H+iTd4+tV{y#J zzu%y|7M91Km;x~co|^&*6CT2TR<{>*#sk~D>-v5~c7n{8{?hK9!xLzJ&UKvO^gSH> z%cSG1)|tW8KF=!#E_0m5={s*(|J45Xe`z9L|Cc;sRHCEJrE?YV!~t#pNEIZ2=i+R& z&ycoYE1{AmaT~SX+w<;N9>ojx6MU-UPf0ztemp{17u&2Y2g(dUn(<$%Wv_ijlv{fg zC{<{fQ+1yATZR*f&AJu+pb!kL@oQ~uCz$Sy;o3$=F7gfTE7GBcs#36;mV+qTzO_lS z?zlZnd~1!?5blLn9?Zvy%Ft(s0H_u&PCYlBaouZZ$4^Ieph?)xar!$Q=dP0?*LaD=V{+|Z6K>Hxo#PC7HIPdd3Im(y^~yh z^C|7!yB~a7qv4R+o9Qb6QH#Oww?U^RzhCZDP{YFhn`Ff2j=dC#FD5ftUg@1!4-s6o@GhQy`|mi=n{X xcD!ECdocWBz{OBv3d9tMDG*a2ra(-Am;x~cVhY3*h$#?LAf`Y}f&V`W{0F@)P!#|G literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.Cryptography/bin/Debug/SAF.Configuration.dll b/SAF_VS2003/SAF/SAF.Cryptography/bin/Debug/SAF.Configuration.dll new file mode 100644 index 0000000000000000000000000000000000000000..f5b38bde2c2e1982932789c5a7a917d7ffdfd3eb GIT binary patch literal 24576 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 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.Cryptography/bin/Debug/SAF.Configuration.pdb b/SAF_VS2003/SAF/SAF.Cryptography/bin/Debug/SAF.Configuration.pdb new file mode 100644 index 0000000000000000000000000000000000000000..486270dd4be55f0b21676f82b00b488d2d6a88f7 GIT binary patch literal 56832 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 NI2Q{(U1rCD{|}|F-Fg53 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.Cryptography/bin/Debug/SAF.Cryptography.dll b/SAF_VS2003/SAF/SAF.Cryptography/bin/Debug/SAF.Cryptography.dll new file mode 100644 index 0000000000000000000000000000000000000000..5f88a5cb3383eb2a7b4c6d1296144f14a0293f9e GIT binary patch literal 24576 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 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.Cryptography/bin/Debug/SAF.Cryptography.pdb b/SAF_VS2003/SAF/SAF.Cryptography/bin/Debug/SAF.Cryptography.pdb new file mode 100644 index 0000000000000000000000000000000000000000..b8373357fe4cfc37e7c01e0e646b891ff229ec2a GIT binary patch literal 69120 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 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.Cryptography/bin/Microsoft.Web.Services.dll b/SAF_VS2003/SAF/SAF.Cryptography/bin/Microsoft.Web.Services.dll new file mode 100644 index 0000000000000000000000000000000000000000..b56cdea1a2c2f4a0903c4e068d88d5a3c660fbdc GIT binary patch literal 311296 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 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.Cryptography/obj/Debug/SAF.Cryptography.dll b/SAF_VS2003/SAF/SAF.Cryptography/obj/Debug/SAF.Cryptography.dll new file mode 100644 index 0000000000000000000000000000000000000000..5f88a5cb3383eb2a7b4c6d1296144f14a0293f9e GIT binary patch literal 24576 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 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.Cryptography/obj/Debug/SAF.Cryptography.dll.incr b/SAF_VS2003/SAF/SAF.Cryptography/obj/Debug/SAF.Cryptography.dll.incr new file mode 100644 index 0000000000000000000000000000000000000000..632ec504b77fe9b2d65f9ef6d9bc87cf9353b05f GIT binary patch literal 2828 zcmd5;O=uHQ5T3VHt8M)`hzKGqcv9M^t@u~Lwn?kO+S*oIk%%Un-E?g>8+Nyq_T;H3 zsE8mUc(b5KFZC*z-mF^jpe-KtA|go7g5ONCHmyB)arG^e_cHJ8d*94_GjEdx!!sST z5Tx^Z$Ecmp>WOra)-Bi5lE$0>FG^PdN6GJx`ltbAGn_B>sekHxVl+LXP~vx zexQ41hBxtJb(DN`tyD`y8z9^?$R|0R83iX2%SMkDMdq+q#m5oi_rl7pC%hK9=YU0ED9)w`A(djqAuvu6_Nzd2asw^0%MzV zoxQVA!PFWdrt|Q4_cBBhqI(}E*-N|GV`y!VsJt|QxEVBx_}cK+_%dv37)Kl*I1|eDD(g4`mMVAnNSKc?UQyk+gdS*p=b`Yax+J~p*mo}V@VZDbli#XY(obatk z!_cHC13U%v3G9}^{yB_SW9yL2$8d^?_s4|KCiqw#^|cKA$AZaG-zl`@OpDIPe}Zux z@O;|bH}&@UjA~%KXnl}>_jR zzsF(+F*bn1L$$HNkPywY_d7nb51%~UDn0u(Y@BOnAc+Y0>jKl275rWD>FTTxZKzO` zZs1zraSi%O?jch54=%RMPL#rB$h2r|YKPB#n8xl;db z(S1079`I2KSvDO zJ@?ePw;mJ`;cocXch275ew=Ub{q1i*&biliwDflOb+=`!m(N*#;f2-LHmd` z`Ll7mueA3kfA!P1jBERcao?R41c%0~{%$d0q{alnF51hER1i#n?j9Wkvth2oe>k0O z25~ooN{|LOgImByK@+$Yd<>ip&IFTy6dBnCr-0MISa2#h3!Dwk0h7VG;5_gVPz|Pl zsbCtY0n@?x-~ym>%mh4sa3Rn$T?A^u98d@5f_Y#*SO6A+MPM;d-?|uF0xkuYfy==a z;7U*rmV#wqIcNYYz)ElxSOr#ttHCv34Y(Fu2d)PaS7#uX{a3oF3gzRxaIOBrsC_eZ!FsHA#Wlmd1XQppX>m??ozV7YAOSmu7duOJ1v$l5)XaB02ayOHYu(%E|`;@v!Uibv?-v8#EceO&LQ$aT=6 z&IwkLW-G`5jRlgZq}2qZ*JS^10-HfI(0HJ6L1Ti~`Nif0e!P&hRSVLU$NKyrIzDJj z)f{1@>Ys)fd;-YnTJ7PSf32%{cg&+*s>g5PDL;j&KE0dCMV#0BiAH%<=W$-|CmQ8_ zCV|)ciAH%po51V+M5DaFPvG@_qETLMk9t?G{~+*n9c{1P?{MqCM~Vw~za{2xHEK+H zX_W3(beX}VG25GI-X`5uIc_7Jq?34xR-B7Bb3*-($yOIG&*U-JDf6hWjgyvqU5t&o9XLo z-im1g-$Xt0(v`K#ySv&twr=lj&N5UNmLVP#mFc?7j;u|?$eUz3J2NdxgHnWPM~owt zEp79pPSXa9f?4C_@9Te$Zk(%j^>0jt67{b*lBf8N_WGAzFQxw#Ue^Bz;V5$>)&JGc z)lNqPS+`NUirb>jkM&XA>;1~(e^IfGSinftzs9m7rK65D{m*Q1P~*SX|3^}`BUS&A z@%@O6t+Rsaandj78Z)*^<1BBisk3grzo=8^mZ^FYVTxs}XLfdpv_JgX& zNzPIKzK*S3&Drg}vgxN1E>kX_H@3bt-7>AtcvBj7tj_1z)7!0;k?WebW%}6$yYw)) z2Q4vw&!ugAg)5aMXs`37F^{Z|*M|EPbo{-gdMMEy^3^>1v$ zLDc`@+J+-l{{t=(wwRT{ffg1E*Z)e#xvMYJy*=BrJxd46+J(K65t7#ei$#eq^DV!m zi8+N(yF6n1H`$vFjVrDr%z*%7J#6^9-Xn z1&z3{;U8|<3N^&xmaVXZ4YO=sY-#{`O*G7+^}401!Y!Jimn`0rhhChx%GY|ukIg{L zMS^wwm)uPl+a=DyO)e%<^TuGf>sV<1I( z_Y=5__}b%EGO~B^*3M99?{;wS*P}#h-I~;8nylldfsq>jB@2~V&Oe{MEB)6$W0cFU zr|X&ZtX^(l|EXvDm z!2GX;rD+zXZ_M;<@65_ib4it>)Lc?LRDqs9tU9Z^SGThD-jUsz@7q_nemz?eY#e*R zUm~a5sYms*U}@jZu9h2Yi6~AFE82Pv)$^X}uU+uN|GK|I=O~Bbq)JpDO8=K{n_SFw zT%KN!i6bf_>5Mq9`n>!U7UlJI5|zF86OHl?rJkgR<7JS(mY>3+>1sTP^GXlPPhnAB z>FPMIbh!K!7Uk6#5$9FC$WLKWUccuVm4kGycn7l&Dm^ORXFxPvjbrgLXnd2O!lJz4 zKFARESWKK^dn(p{T|3)gt#%uS{_Xa0jCExXqEM7@uSM%YIuAe_=f7O>^&qXyh$Gsc zI>Mf0*MHPDIS1g<;_N|lwz;vhJM6QFqM*;Zb0FdR&-vtmm?Gsl`uqP#jsKEebR8

4f7sh|+5S)SE}=bZHk|pt=5*@M`>``;pg6VO;@1nx{keaC z_PX*xH9TC@USjT;?)76-L|4`!*9SB@z_Z{5@G^KE90Do$#H%$LLF1<&T`y=ZBB<>PlD(j`hrZ8QxD#Kv zJ1jfB!jwgOBf3_3bRbUGD$`nbt#WxDl}+zdiAUwz?5A+<8L)PKMfg1dOa_xS zL}}&J6d4b5YQ(%tm8;}y1(keJp^{mK(s%;cb*zeT9ZdUq`+ywfG;!xbwdXS*dLDE! zbUO56=tWS8(1zipOEc6=a7olsQDXgUwyIv_$Pq7l2 z;wuoTpaonBTEP-97bt9USoRv?Tf3;j=rL}QmL1b|y*5zVSDWV~e>cuog!Tbj14f48 z^|ERt&N%LGg32~n54AE=Stf*etN!eKw!+M9xi#klRVF#=E~oTa`-fH)#IyP~UuLS* zeB(m#Hp4HqE_xEBIui>;^`!i)ey9lbN;DpABByqNp2<}PJ><74c$@n%K>HhVODr+% zXExW!-n`5AAapNKTQ~q-2kJjFKt0f$axm{}9ErUIvQ~LjCAi``_`H7lItaQL`uvy| z*CXoZZvdsQdU_Z<1|A1b1BLH*_%T!v|Nj6lf+L|Ll;>^at@8M>#Lxew>%60_rp2qW z2N9cA@l;nbgMD~;Ea^X%%yV%z;|uXTNc z`L3LirM=WRn3g^>eyrcRX+i^AtVYIbkncX?DctjwW!zuJz7215N?PZ?yyF{JX^j^~ z#>?4A&t}Y!q&ECGvRy|U@q3=KeDm^^K9SsxxA9*#zs8q4c=igcO6fPXkKW*3?kh}R zypu3*7uvDD!stT03+zzriJa_#PG}`oski%OPuejo*$yRdV~2{y?NF<4D?(jO(L(#R z7k+gE(UXkzdX_0?4SrUK=n1S7m5nXO^H4rJC(*pd_J<17HxwS7*W3%Q<|sM-Gu8z6 zK~tQFN%6%ur4hG#XTZ}#W)FZzz!TsAI0)VWlX-vz;0ECJ*c7V*XMW>3v+qWv%w~0{m*%KD;dJ!uN0_ z!1z1(e(jPDYh2X!W;jeghp&;fx4jeAE?+|KcN1T6J%3sD#bxj9a`cx}1FrZy+S`r3 zp5CESTFlRpyT}8GW`9+wN`RDxT*p_o?E2 z%8xtwx*2%f@wQm&DXNIVJv2n0mVImLD6)t44gs6tp9a4VFV{=)dhz{1Gco4YX0GrV zCs%BQqWfu8@Jt4pTgc`WWPb@7--TBkH2)FQPXyJApnMK@?Y!_!SG9)?vwB6>I^uU=e5q(+lKbb#(In z9Ce(-Jk_@N96Tu$towx0izW+zvr+@EdI>7h;JYQM1D@{Ms7zMtj$ z?}z96PYI&4}C+f65Viuj7_`O9s@wh`2Bqz;PfkK<+hm%Xbtv!C{I5c@&4 zgSQvTZN|2l;&x!+HwV2Ph|QH?2hQ_$;9NwE&0TGHszYAvKx3EnnK1S7=-9PI{Tx5l zm40jGW$KFX;C`nM{P$n-HYn>`gnN5L)Z2N{@4vueTs6AoQLkGf>m9F?&k_dQX>j@Q za=Ta=%2jht&Cz5d?|1T(O{}whPl0E_3*cq&IuM_1Izi*NARR5J-wBelp!9~hev$lz zCh}K#RR)z=*DA;P?pkHJ)?KSSnm>z2WxCs4t6bx`);fjeDRyp(*2a*~Cezt)8F z>{etP@-t;;ZNZeCG1!!S9hCB$GV2*`=6)sg7AWU-^}BYt zEL3NB?}KiFej2(NT3A+J&IZc13|tRx3Zi9HS?su9VQc_y%^J!By1-Gdre3x|Q6;8K zW1+fN-F8Efx$##W%O4r)j7aV(XfN~zDEcUu;#cv`G{1kMI-E#ZR8!jZI~nL~^;x0p zl)u`N+LXo_In+zIWXq`;(!OWXW@~~Je$h27wPlsXmbmaN3vw`PFQ-E*kw_({%ikss$xGjckyBYF zkj4y951K$0><0V50dNqE!5*syOTb$$p3a6SZ>1-v_FiMII7>{P49A8>&$V2J-(xNw zXT6M5QB)2&$?Y`gy-DCvt-gTzP+obqfZZ;h|Y7yHFrD{sbDbFKUtFT?TJj$z4m zENK~g={9KmT&vZ^`8}%WI4-+M_Kj$CA57!5)e|55_;XEvuWvuT1azLN zPaj3?-PF_DaVN*gui*>&vd^o>(LeQlKG&YG2{SF34mKAy^=#kL+0kMcbzVaD2)1O% z*SB-qHa>NACuc7(BkgzBs-PD}csO?vo`q0*RAlVHFpcnB2L75yW2+U;mAALGDRqTm zzeVmdJrbDDPHT@5xSN^BfQLI04Zx9~`hA{oWh;GpvIa z20_1sFeInbAJjJKACz@mUTz0&UeEgYk@iDh7;EU$#ekQ{3jfF2d zu9wIEWF2sL!|D?;+jy}vfU{<8BM0J34Q(Oo5-;0X(egAtw>hIC9Dr%QXXQ{6j zvukCWs*gv7t#^wNx6~5z7yX+4358A?yYvm19mEm8=Q$q6E{z{~ zy?gZ7Aey6UT$K%7MT1hEX{?IRqn~v=vKs~29fIZ_g6dLG8bhB`$A3FR<>0+g^3lMe zYvnn`T`OOmpOnAyzRO)J|F3cV7SJ5m&I^*~)TC?X)OLNH8C784$J|UjYa3UDcD4HD zIv__Gaw^j_=(*78Q2I1uSCCVgE`T;b8N+g^;JUzm+vPH-zNxY>%;zZtZEd#-W5*H2 z>;pWm3czXaNb^$d9cfR32||v2U9*RzJqOm}bC*Lwt{%#MMs7KDDfBuhWym!_S3;Zi6fP*ebHKS_9X3!dJNK?I^KivSp9YeH9PQH7;SQ+k@K2zs!;eE%hphjY zI@EqrJ@+~Os}Apnst!L5-2nYlD00z$pV?3RGw5G%{~73`&_9R%H59+x-$HjozYF~w z^oP*TLk~bzCqIUMk^6sw?t#7mrLX6H5B(DKJ?NLADW2ggqKPus_lwR(R<}S^9}Pfl zTr#Tz7XrylvX9GFJk?+_$jfpw`P%WIA{TZ`rSULWc+m~eJFPA$-#{+_^#psVe;XkJ_l*36_|@ z@SD_3yx95QXW?*JnRKIegx0P~tvexe)&&RT8S>f;Cw7dSo^{VIo$DQ5=66@kvovO! zdt2Hg6QyN48@F${jUW0pztyQVzUPU!pGZnWGEuw_@)>1+tG+0bYYWBg81XVpqbrkm z7ZsdE60ho!v=h<|&n>B&o4K?oX@~7`2kU2k?kc-haw5Gjyt^mUr8u&QRW14QvmVPF z+Rr~F^GQU08ix7sH2|fhG}Y(g@$kaWegj|B+fwpJ$C|jxFAH)&PW31#eCT#kq`By~ zmvG8cPV;76EA7ePEg&06&im_H<*CsHjyO5VeLS?1Qxx6?I*6ZbZxyEPiC4n>xh`;| zpHn*LLQjJ-rsd9tYJ5@N)40C?D%+?QdOlQT!Ox6$;=^7s_iLat@o$A*2yKJThPJ!# zJD}o!5IP5c#yUM$&b|{fm3D9wK57pd%QbeN&)-Xp-&me>G-G)h?UfErA&iL!F6Exp zj|cjl8@Vc=wYVxCeg@DtZrZt@bYc*^OW698Y@J5?V7O*Ggx~sztdalG*4c+T#+<_Q zA}!a4iud!wU298`kKc!V);8tP?j}fWC++7Y{`ZLGufD3d`-!sx>UoZbx;d7{f7Rmw z>TomtO!k7e5srs?lpXuW=woCPv>fJowzK)l>)FWigIdp)uGM%uHPp-O?PCSVKGE0} zwb7$%c~au%MB@0hJlXb){RQ#DHAH9IE6>y6p?kWqzFlf9+$ zv(a*eJS<`=jfsTMilm*iKd-qnwn3ObX%y_wPa-@jlQ0kby?y4#n8}RgavIOQo5ADx zu{}PBx=$O8rRarf8cQiFNi;?N3drSo>4o#B40+1JS;T{!i?i@pgMqiQtx6 zV*X+`ryEJYm`x2CBSr;iOs%F+FB3=np67TNQ;$~L$j=RBr|LKERA;hZcLCPl!ZT|M zmklIHCkd)QLGgw@XG~sOS3b{>ugayoUUb*WZw7^vzw%tqwdRtWfwi%d*TqRICk6d? zQ09ffe&{Ud_o0iRKY%tse+aefb6PtrT%S`u^`pEENC~)>(;QOYER>_1W=)m3s995G z9n-9-{x9eyguev69Qq4rJ(M+Vv!?nA^g8YjLYtt!glbXX-=JDwc@6p~^jFYlpudK` z0R7)k(g@yw;uri5`UfawHS6N6o0@g;{|nXH!69f36rS7#P|aOuLf_$jA@u)2S3%#0 zu7y@s1UY@Xf%R6iE}n*N#{uj_Qp}&Qm1N{SZGW2~YzZ0HIUi%%+db`$q_03AH z1>0eKG}b|i-3;rmws1Ogb@6E3SnKavd)GRB4bZzXTCbk~e5l&dBIpL_VrU1H z{LI??CD6a%o;?uLo-Tv_HTPFQzXiP#`V_Pt`Yd!Q^hZ$D%X82b-2YGLa_H+&+KO45 zUk&|t?yrU>*UMnmi#^9&J-8V<5BgDPJ@i)S zVAtcT;qPJ1yxK*Db2U&1JD@YB1gS z>o=xSNk2lJ$;Y)kF78~djoG+$qZQXKK>K{GpX24B&vU%`9l(_Ru$KK!owHVbJR9!f zvC!ztSIzUK!WSYUis+AOA5a1*5C0jvGUSywx50CoZsnpB7O^QrmodR zGss(1eMWR9g%iCA*@`~r=vN)x=IG^)-a}gA`+`dcJ#OxAb?N*!7d{#$@qNn0Tk68E zb^Px-zKdNtzi@P+^MBXH(*m~AS?j{jaOr%(@pU+Qhs*C#m%ic%bwL(YG# zi#Oe+KgETg;le)!v-nSR`99>*xz+Jq>}baE>vzz_|82*&-GyJ|!oTkF`@Tz0W0&|p z>z?OZt{ksAzCSoV`n}lk^ zaeU{xa-2oqAt4p(4lf4^p8{tzeH)PiJ2z1LNVvpeU961WJDJw!y%Pkaq$+}( z*>^RJ`CQDc4Y&KU3DNUu_q$5s9=PCDruO?KHlT;r!(~6z0EQHuzcBA7?|?o4c7sR2 z6X0oZ02~Cr1!H*TEXV=ba1VpWfb2D$19=v_0A2>KgF~Q-N0|&}fO@b7Yy_>K2k3iS z4+4F2YcKc)coOUf&x4l$8#;mB4VwgNKpnUYtOD!6X0RJP0``HY!H#TRzxPm%%E0RD zx|Y0tSDKXx`rZ0F{#LC^*|ACQOI1c+qM~SiOz`6?EN1-D54`#?>*vyI%a5;{DOY*? z$F?~J#{Vkny_oa1fe%-EIKj2YdDv#&KGAy(Cj|MI9en$-{^>_T(fO7inmC>@7oyqH#p2KIb;Wp0P zi}QNramMP=Mf8ddb8(sr?cPxdvL5ASO}%@aB>flXwSG3;I_lip?$WoTLK`{RcDFn( zF7@x@KEU&jip@*>$HjfUSRNObdhv0!FdvWWKaTC=S{@gdI`Z=r{f5J+67who7mnx1&Zlk1`TPt2{yF{_VOf_W>Ku54JkY?u06&9v@6#f2fK~wKt=@+h6D$Y~J~w4GvZ;y|`}q z$_3a`a;5V;J!qm49e_`AR-XF?FXMck`R84*VBv~oiwBkW89_bIdx$*s9USG|^GvCB zR3K~p4&JIvXAhqRm^*i6!=h#Lu`}gLKku35L+dZVr*Awd&){E5v?*u)baZzGD;6$X zRM#+nrJ~4{&gZP)H5BPn@U^>qUMtl{++MTtS=_K<5sekAlJBE^r}lTIj9f?iy29iX zCV%a>c{hoRjo*9dO3~)7@BGuuuP#~j^_Ks5O7_cNs-23Q=d3|;<~7_oUCrD01mT>% z-j+G-nP$GvtoclBkuw`Y5{XDMnn(>s)`eZiGyyJ>cVjIFP2 z7|~I;u_&!ZxSRUAxA(SWTDn^^lJllJ`{vcv%^#}R^J)2ZptkWvFy49icBETf?*r3y zgNui0P1oB2@vs+5guPNC>^Fq%0CMp(wO`9nXXnV}P(-hJ}V z5D$BVFosIw;$d1x)Y)sfc-Z#{^YWxCg${4?JLnHPpLke13Hh?b!}PoD8mr~vVfu}5 zFPC`O?hSbQ-+S~jLp6m?&!DwVU(R?~+5WSliraBVoBdZo9m@GS*0t(Z zd-w0^1{V+0zVuQXR1h|b9xzssNx|EKIx{oI<>CEA$Cw_aUmVq252LYLPasy|Kc%F6 z1dUk&=SqTEkdM}io8r0x#&)eA*v#I!LROU3Iw1jg%V9BO| z>mNb~I^)?+_M<5C1@ONO{vLyI33P)q==2Rhy_dHNzrkPze0wP3-8^=RN9f_Pt9hh- zT<=9Dbx^I#&xWrKe?MrHqRLnE(ygE!NK%_YGeDK;8wUD*LC^*!0G-Lv`qa7LJRk{? zm65n=K@yb|Ws{!{w9d$T8K(Ah_OKdE0g~=CPy?m|)qvzQ1Iz@oz=c51auKKnb3h%K z3+4eWFDw9TGnsE?Xo4>JYH3I3WG@Am0iAKY0%)DF9xMgRz;d9vTme>stAOOO8e9#o z0c*gu;5u+UxB;vMH-bi>R&^6t4>o{};AZeqa0_Sxw}Ov>O+ZyY)H9xTOfH}C%zt-b zXlFdzXrStcs&_fHan+mLNS^Why-m`z@donL8P6tY2mZGKo$=hoz0P=6a!)xzyCLaY zYqb9`+$~uYyqiY93d2X@{SW$Bm>&7L-9l^6pmNkdqv4_b>EHjTj)ceG|DeBzas9hl zal6&O|Dpcp9eqFj3FL)(qq8Qz{~>Sx4X-6aHPcLq;h1{S}Fbwv_&7FR%QO7{;Z_aoYdz-~aSH$GXh)Z3*cU z#unGdiqB;MRb64R$K>sn7{w|uNZbo?N(=C{r5jT&+*W1k5(H*J02QWWkXM6kW!s#thyUK z2=;)z;2S_ZvKs~29fEX^pt=;4MzL-9_{x>$ok~-KqOO(h6nCw(7rAStf0w&f9$(}7 zEui%dYx@uV8=uNcd9EN0IrTk1@1+bmm1!DOYdO=Q^jodNn0J|(>*X4_p9!_=TrEM; zyUcpG!`f%%Z+t$4EZULRhw&Sqc6=>=<8vgw@u~h>Y`uwoZTj6lsP==t4yDfx>l>eb zy$PE;cx()7sdVrsq58(>^H6=`^EIfx@u{V9edANQkFyk^jXsr&{V zu)Homv+sEx_5_cmwc%)ZxNbF4>r(#v->b>XyP2rdUsKQgXK}(#gmkGj2tWRdUp!iW zFTejwC7ob*aLVuhS~-;8|5cAc7SfmKDbts%SHWLw6{EKb!-?SBK=C8tjL^X;MUXT5V8$b#OC;RxlO;qqJjs8OxCbtH`Tbw^@vx_hz5hG>Z;K4=d*7W@ zs@MNI|F8YfGuWb>7`#@aeNlh@zh2joHlzJj*#?6@|9`qU|KCFle`fsgf2-3nf^q%N z$VWa1Jf!pgrG@C4Rowq) zsGWOIJ+{d$B~=D<#5yL)Z?JqRro3nsS!U|66HbMubjvax9Yo6}XglVlZ>HSZ|(;8UP`=1Kan$FTP7cM-|9^|kBI`HG45do%Ys5dCcLFXT4MFGFgkJ-`muOII@Q=NMR+P<* z8s4rbeD7>{%Eud@g=h7PMTwutFIgP_1cfi46^jzz7(kwb zu#Kj~Z6n!>M8#Wwz3XrPFZs!Yu-U{VGyL~|tNPjh`<^_#L_P)f!7%Or@%`-oRVAOT zNS=9n=&<@Y~7(Dy%?5t$>))I{(d&C7A02lD?J zkl7VKRF0RKPE3WW{cHVM!;rSuG_fc+G%lu}le)e+tMkcMIYX|AL7)l0Rrn=g$Elpf zrWCJnu(}4MNO>2N$sLSE6QKUA_au0v7Y1@SkdNj-_W~7Gw%?zCj|1(6-UB`XSfeoe zrDSg&P7fquPy}-lUdFlBC)h^_&vt7MQRl%w0;<6jpy$^3T?3|r^MS^c8DJ)u1=vdn z&v^4lMv$t5NnjJ$44T0fpuN(?Kr*}-Tmm}5HqZsSK@YeC=uA={$btr-@p&a^0j(ed z+Q3%O4m!YX;C8Sb+zIXiJ3%A339JVjz($}d#9Rm+)mZd>(;Q*t_f4&+)c(Aa%m(`2 z$Q;Lv85KIk)3^Tkp0siCFwG;UIqqnf&)W}J>I2>>O#a@!jfX|;+jv;izKw@P?b~=* z)V_^}MeSQ(UX@kllzppr66E4x7ot4I-6K~(f!*pKT=NAnd&CDWh-+mv36Sr?QZd$*}(B{qir9!_Ska&_Ee4^24 zh403WVdfkEr)Ryu!P~-r$^Fyd|2P!0CSz~H7PAc9AFbpnEp*>tWPQn{^B_kZB zl{*LmO-4f#EvWz@lP&;V9|mEbC{3aEWu4Kz+%3N8begZR5Z*WkAXsEum?zYb`u z)SUH3ApNg#a=6ahe=-uv_TN$W{^yBQi%cDjCP&2nn?k||N!{Cj7cyU$)1JaW_TO(Q zUEBtg{r4Eg(rj=L{X3hq>M%%3*?)WCk?DozMeM+!l=5b~^~) z3fe&jxDCku>jc|?w<%==PPkE literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.Cryptography/obj/Debug/SAF.Cryptography.projdata b/SAF_VS2003/SAF/SAF.Cryptography/obj/Debug/SAF.Cryptography.projdata new file mode 100644 index 0000000000000000000000000000000000000000..40d980068ef67e574ac1b66e3432721a5251f1a3 GIT binary patch literal 22536 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 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.Cryptography/obj/Debug/SAF.Cryptography.projdata1 b/SAF_VS2003/SAF/SAF.Cryptography/obj/Debug/SAF.Cryptography.projdata1 new file mode 100644 index 0000000000000000000000000000000000000000..81d0e7aaf544acaffbc616b03777880359a94213 GIT binary patch literal 22536 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 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.Cryptography/obj/Debug/SAF.Cryptography.projdata2 b/SAF_VS2003/SAF/SAF.Cryptography/obj/Debug/SAF.Cryptography.projdata2 new file mode 100644 index 0000000000000000000000000000000000000000..f07ed8893a63e32e412c4e301e69203e988c45ce GIT binary patch literal 31752 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 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.Cryptography/obj/Release/SAF.Cryptography.projdata b/SAF_VS2003/SAF/SAF.Cryptography/obj/Release/SAF.Cryptography.projdata new file mode 100644 index 0000000000000000000000000000000000000000..a2aa532f5f120618dadcbb6bb1175f1d60221880 GIT binary patch literal 30088 zcmeHQZHQgP8Gdh)U2kICZf(1!64Tol?3%kDHciEb?NXD}##Te>rV?x{CY#OXV>i3q z-KZ<2EWsb4Eg~XF7!Ae zcgsDC`2b4olT$K|>m#Uj0(B3YcJ^Yd>9z(?f{Dr2q^WU40;>E z?-_a2oJUOAX^e9QPdtiW$4t3kG(|`5]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 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.EventNotification/AssemblyInfo.cs b/SAF_VS2003/SAF/SAF.EventNotification/AssemblyInfo.cs new file mode 100644 index 0000000..9f89a32 --- /dev/null +++ b/SAF_VS2003/SAF/SAF.EventNotification/AssemblyInfo.cs @@ -0,0 +1,58 @@ +using System.Reflection; +using System.Runtime.CompilerServices; + +// +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +// +[assembly: AssemblyTitle("")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("")] +[assembly: AssemblyCopyright("")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: + +[assembly: AssemblyVersion("1.0.*")] + +// +// In order to sign your assembly you must specify a key to use. Refer to the +// Microsoft .NET Framework documentation for more information on assembly signing. +// +// Use the attributes below to control which key is used for signing. +// +// Notes: +// (*) If no key is specified, the assembly is not signed. +// (*) KeyName refers to a key that has been installed in the Crypto Service +// Provider (CSP) on your machine. KeyFile refers to a file which contains +// a key. +// (*) If the KeyFile and the KeyName values are both specified, the +// following processing occurs: +// (1) If the KeyName can be found in the CSP, that key is used. +// (2) If the KeyName does not exist and the KeyFile does exist, the key +// in the KeyFile is installed into the CSP and used. +// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. +// When specifying the KeyFile, the location of the KeyFile should be +// relative to the project output directory which is +// %Project Directory%\obj\. For example, if your KeyFile is +// located in the project directory, you would specify the AssemblyKeyFile +// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] +// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework +// documentation for more information on this. +// +[assembly: AssemblyDelaySign(false)] +[assembly: AssemblyKeyFile("")] +[assembly: AssemblyKeyName("")] diff --git a/SAF_VS2003/SAF/SAF.EventNotification/EventClient.cs b/SAF_VS2003/SAF/SAF.EventNotification/EventClient.cs new file mode 100644 index 0000000..89b7259 --- /dev/null +++ b/SAF_VS2003/SAF/SAF.EventNotification/EventClient.cs @@ -0,0 +1,125 @@ +using System; +using System.Reflection; +using System.Collections; +using System.Threading; +using System.Runtime.Remoting; +using System.Runtime.Remoting.Channels.Http; +using System.Runtime.Remoting.Channels; +using System.Runtime.Serialization; +using System.Runtime.Remoting.Activation; + +namespace SAF.EventNotification +{ + ///

+ /// EventClient is used to communicate with EventServer. + /// It provides the client ability to subscribe, unsubscribe and publish + /// event notification to EventServer + /// + public class EventClient : MarshalByRefObject + { + public delegate void EventProcessingHandler(string eventName,object content); + public delegate void RepeaterHandler(string eventName, object content); + + private EventServer es; + //local hastable to keep track the event that client has subscribed + private Hashtable repeatDelegate= new Hashtable(); + public EventClient(string url) + { + + //set up the remoting for bilateral communciation + + IDictionary props = new Hashtable(); + props["port"] = 0; + + BinaryClientFormatterSinkProvider clientProvider = new BinaryClientFormatterSinkProvider(); + HttpChannel channel = new HttpChannel(props, clientProvider,null); + ChannelServices.RegisterChannel(channel); + //get the proxy for the remote EventServer object + es = (EventServer)Activator.GetObject(typeof(EventServer),url); + + } + + + /// + /// Subscribe an event on the EventServer + /// + /// event name + /// delegate on the client side that process the event notification + public void SubscribeEvent(string eventName, EventProcessingHandler s) + { + try + { + //check if the event has already subscribed by the client + Delegate handler =(Delegate)repeatDelegate[eventName]; + //if already subscribed, chain up the delegates + //otherwise, create a new delegate and add it to the repeatDelegate hashtable + if (handler != null) + { + //chain up the delegates together + handler = Delegate.Combine(handler, s); + //reset the delegate object in the hashtable + repeatDelegate[eventName] = handler; + + } + else + { + repeatDelegate.Add(eventName,s); + EventClient.EventProcessingHandler repeat = new EventClient.EventProcessingHandler(Repeat); + //subscribe the "repeat" delegate to the EventServer. + es.SubscribeEvent(eventName,repeat); + } + } + catch (Exception ex) + { + Console.WriteLine(ex.Message); + } + } + + /// + /// Unsubscribe a event + /// + /// event name + /// delegate on the client side that process the event notification + public void UnSubscribeEvent(string eventName, EventProcessingHandler s) + { + //retrieve the delegate handler from the hashtable + Delegate handler =(Delegate)repeatDelegate[eventName]; + //check if the handler is null + //if not null, remove the event processing handler from the chain + if (handler != null) + { + handler = Delegate.Remove(handler, s); + //reassign the chain back to the hashtable. + repeatDelegate[eventName] = handler; + } + } + /// + /// Repeat method functions as a repeater of the event notification + /// on the client side. Repeat method is invoke by the EventServer upon the + /// arrival of new notificatioin and is responsible for dispatch the notification + /// on all the "handlers" on the client side + /// + /// event name + /// the content of the notification + public void Repeat(string eventName, object content) + { + //Retrieve the delegate from the hashtable. + EventProcessingHandler eph = (EventProcessingHandler)repeatDelegate[eventName]; + if (eph !=null) + { + //invoke the delegate + eph(eventName, content); + } + } + + /// + /// Raise the event + /// + /// event name + /// event content + public void RaiseEvent(string eventName, object content) + { + es.RaiseEvent(eventName,content); + } + } +} diff --git a/SAF_VS2003/SAF/SAF.EventNotification/EventServer.cs b/SAF_VS2003/SAF/SAF.EventNotification/EventServer.cs new file mode 100644 index 0000000..99e8393 --- /dev/null +++ b/SAF_VS2003/SAF/SAF.EventNotification/EventServer.cs @@ -0,0 +1,113 @@ +using System; +using System.Collections; +using SAF.EventNotification; + +namespace SAF.EventNotification +{ + /// + /// EventServer is responsible for accepting the subscriptions from clients + /// and notify the clients when information is published to the EventServer. + /// + public class EventServer : MarshalByRefObject + { + //the hastable keep track all the event registered/subscribed + private Hashtable delegateMap =new Hashtable(); + public EventServer() + { + } + + /// + /// keep the EventServer live forever + /// + /// + public override object InitializeLifetimeService() + { + //object live indefinitely + return null; + } + + /// + /// SubscribeEvent add the client delegate to delegate chain + /// for a given event name + /// + /// event name + /// client side delegate + public void SubscribeEvent(string eventName,EventClient.EventProcessingHandler handler) + { + //ensure that only one thread modify the delegate chain at a time. + lock(this) + { + Delegate delegateChain = (Delegate)delegateMap[eventName]; + //check if the delegate chain is null. if null, add the + //client side delegate as the initial handler. Otherwise, + //add delegate to the chain. + if (delegateChain == null) + { + + delegateMap.Add(eventName,handler); + } + else + { + //add the delegate to the chain + delegateChain = Delegate.Combine(delegateChain,handler); + //reset the delegate chain in the hashtable + delegateMap[eventName] = delegateChain; + } + } + } + + /// + /// UnsubscribeEvent remove an client side delegate from delegate chain + /// + /// event name + /// + public void UnSubscribeEvent(string eventName,EventClient.EventProcessingHandler handler) + { + //ensure that only one thread modify the delegate chain at a time. + lock(this) + { + Delegate delegateChain = (Delegate)delegateMap[eventName]; + //check if the delegate chain is null. if not null, remove the + //client side delegate from the delegate chain. + if (delegateChain != null) + { + //remove the delegate from the chain + delegateChain = Delegate.Remove(delegateChain,handler); + //reset the delegate chain in the hashtable + delegateMap[eventName] = delegateChain; + } + } + } + + /// + /// RaiseEvent invokes the delegate chain of a specific event + /// + /// event name + /// content of the notification + public void RaiseEvent(string eventName, object content) + { + Delegate delegateChain = (Delegate)delegateMap[eventName]; + //retrieve the list of individul delegate from the chain + IEnumerator invocationEnumerator = delegateChain.GetInvocationList().GetEnumerator(); + //loop through each delegate and invoke it. + while(invocationEnumerator.MoveNext()) + { + Delegate handler = (Delegate)invocationEnumerator.Current; + try + { + handler.DynamicInvoke(new object[]{eventName,content}); + } + catch (Exception ex) + { + //if the client who receive event notification is no long + //available, remove the its delegate + delegateChain = Delegate.Remove(delegateChain, handler); + delegateMap[eventName] = delegateChain; + } + } + + + + } + } +} diff --git a/SAF_VS2003/SAF/SAF.EventNotification/SAF.EventNotification.csproj b/SAF_VS2003/SAF/SAF.EventNotification/SAF.EventNotification.csproj new file mode 100644 index 0000000..9cbd3ef --- /dev/null +++ b/SAF_VS2003/SAF/SAF.EventNotification/SAF.EventNotification.csproj @@ -0,0 +1,110 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SAF_VS2003/SAF/SAF.EventNotification/SAF.EventNotification.csproj.user b/SAF_VS2003/SAF/SAF.EventNotification/SAF.EventNotification.csproj.user new file mode 100644 index 0000000..5446d22 --- /dev/null +++ b/SAF_VS2003/SAF/SAF.EventNotification/SAF.EventNotification.csproj.user @@ -0,0 +1,48 @@ + + + + + + + + + + + + diff --git a/SAF_VS2003/SAF/SAF.EventNotification/bin/Debug/SAF.EventNotification.dll b/SAF_VS2003/SAF/SAF.EventNotification/bin/Debug/SAF.EventNotification.dll new file mode 100644 index 0000000000000000000000000000000000000000..edee0c1d25860d1e309aee77e992fe18a7da683d GIT binary patch literal 20480 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 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.EventNotification/bin/Debug/SAF.EventNotification.pdb b/SAF_VS2003/SAF/SAF.EventNotification/bin/Debug/SAF.EventNotification.pdb new file mode 100644 index 0000000000000000000000000000000000000000..71ea1133126355eb4db65fe7b375e6e08a3e459a GIT binary patch literal 22016 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 Km%zm@f&T$oX*3f6 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.EventNotification/obj/Debug/SAF.EventNotification.dll b/SAF_VS2003/SAF/SAF.EventNotification/obj/Debug/SAF.EventNotification.dll new file mode 100644 index 0000000000000000000000000000000000000000..edee0c1d25860d1e309aee77e992fe18a7da683d GIT binary patch literal 20480 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 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.EventNotification/obj/Debug/SAF.EventNotification.dll.incr b/SAF_VS2003/SAF/SAF.EventNotification/obj/Debug/SAF.EventNotification.dll.incr new file mode 100644 index 0000000000000000000000000000000000000000..8b6a704cdca40b7c7b60e3765e6fe40b4d4472da GIT binary patch literal 1726 zcmc&!O>5Lp6g`PmYwc28Kj=n;25k$X6{MZCI#?@q{6a<~Gn0&|`6x*`VnML3-1SE& zh)V@mU5HIL;zGfVioc+W;6L!(H<@t?F5EP}$IX53zK@)H@42rUH4`^7)E0fI}2%CS{m%m||lNv$%%yn8sBsVFndi{?_&n7?jVGV`&>(KkG2j@a)-ziCNaTY z=RFU2I^({O_7(zmX@-10{aAbUWy>(dNw%|;vXIzBpHT)eX&6VtClZ~n1*Yi|G2LXu z7j_}iDf;-LC5YZih}bSr%8JqwRuM5yzRt8o&Pg6)ZHds{g>^{4dFOt;{*W8D3j&_r zQ>-DG)zs_@h_KN|v;2AM*t<8|M*Zcc)&k~M^KH0Ylvt`v{J#@HRqO@2<#?y5p{PJmucqS&gWonx{8~jtdf6u?1 z?{QSu46)~QNXApt8`R>T4)~Rghws<&-Zr8u+s_$hB&Clby$o3SReJBydyA1xiKdJD z0QFAi=g1~=)XR;$W98=LPu?oT>K8feBJG9nF$a7I%ypt8Qd8{Yxz;k4ml|UWM}~*C d4Vg>(pPtm{MWXqb6fqZ6;>9ZpIbyC;{{|;CD0Kh; literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.EventNotification/obj/Debug/SAF.EventNotification.pdb b/SAF_VS2003/SAF/SAF.EventNotification/obj/Debug/SAF.EventNotification.pdb new file mode 100644 index 0000000000000000000000000000000000000000..71ea1133126355eb4db65fe7b375e6e08a3e459a GIT binary patch literal 22016 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 Km%zm@f&T$oX*3f6 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.EventNotification/obj/Debug/SAF.EventNotification.projdata b/SAF_VS2003/SAF/SAF.EventNotification/obj/Debug/SAF.EventNotification.projdata new file mode 100644 index 0000000000000000000000000000000000000000..8a5a6f755b461b6c08ce8c4e3c9e702972bb9bdb GIT binary patch literal 12808 zcmeI2&2Q927{{N578VjJ5<-gBW>Y*AN((^_hEx(>BtVcLD)B&+zQSU=CA*~tqNE27 z#2AdmgBrr2M-RpjPfE}zH~#};Jb2(h3^9hY`uWapr!%|Tedz|FH9O68rq9f8e)D_Y z=KDO;&o{46uP{oR+2Bfb%>JQ#Eh2T3owfruWjUL+G55Ow#jIU}u1y|lw^Z?O7NTVA zB=av&huo8SJ4`QUqc#C8&x{Z4pzUF;*KD61vbSlc>>?v0jO&e~v|;oVrW%qp;(&S?BK#`12(C%eyhAAX

$^SgmL>B9ClAl5H@1PBmcmIl1M;H6s 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 JIfSg`=P$YE76t$S literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.EventNotification/obj/Debug/SAF.EventNotification.projdata2 b/SAF_VS2003/SAF/SAF.EventNotification/obj/Debug/SAF.EventNotification.projdata2 new file mode 100644 index 0000000000000000000000000000000000000000..394beb68e938779233e56d026f80481da1ebbaa2 GIT binary patch literal 5000 zcmeH~&u>&!6vw}>&~YHxUA%?3pJi?zi#dz(({pf0MemZrjQ6N=QW%x?kLMTmg#oD1pZB!4bN_)35~ zG>)80>@z`PL&w1CI;#uN8t_bT-zaxfwO>b`!96;x%Ta^l=+jb7)9jCfoLbQEbi#8G zd9}#D2d*ZPQyC|?>mu|iPMUDmb?yaC`Vx87pq({XIUQ4(g^rbIcdF}r_DZRSsm0Q% zf8fRa!6#Fi(Ij5{Lhs?7X}neFSjLxw>~Gm+9!7vq`RwJ5(suCegv52i!I5ysJm8}R z{Z;9G@Xt-}m39~S2I&BJkoj63gFJ>+e!alf;J@X8s|fb?H?zOD0-e$0Y-c#1b_amG zlk!ZKegl90EYEi7PtF>Yh`dS=sUUepkY>TtGt0b+pxtc8kL%Bv6=9E(qjQ-&R|6K4 zziAFFhQFlB(7Rk)3RR&!yV6`WM`h@1I0vW(bJgq+xU1N?Slgs6p{6wT34S{hvS}*F zuMFJ-&Y!)#dJDT-ouHZJp($*b1SJ#?Rmem<9Q*gjI5zQ5Q@C2K0~u6 z_cf@4lSrTQvcG?)bIYqF{0n>8mTb^)SJo3;t)8}iV4tM@A(wwP*xw!A>Zc=(cuC0;?B%8`KHlh+kk$ z0!z>y0>6p0N0GJ(1)fBjd#w3Pt5`8srn{UzjvOZ=$9KSb5d#NKX3$NM?Z(B|S2=M465e%p@VYfKP|dMb`NjV0 zT;zUa`w#ij4)!lR$1L9BcYGIXl`YOMjlZtHW%dZqwtubuuGQaG=sgu?b64#m^Z(!V zw=F4F@u8T1JSRK?Hoh{mDm(6Xng}>}N4O5HvhDu*! zwy1G~XRa&UJO-QwnmPk4Wci<$`@z0tytOODlW*;3g6cG1NS}5*e}4W*XQ8D{fA+(X zWRh9Fq-XO@-A#N@A2Dlmwz0k-&&t}l{0uH?fTw&1s4aBIFz)5(bq}8gerN*g0-Ii+ z{SLfk0_zdm{ok`rmxZu?0T#6XZvHudCeFW?b^h`6W&2;c`3Jilv5sWhAA^!urk3(> rZ|qv%k6+!-egZ$yy#3{aEB7=1Z=F5-bM+>4^ZEa>p=J2L#!}YbCpa;? literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.Library.Security/AssemblyInfo.cs b/SAF_VS2003/SAF/SAF.Library.Security/AssemblyInfo.cs new file mode 100644 index 0000000..76c8358 --- /dev/null +++ b/SAF_VS2003/SAF/SAF.Library.Security/AssemblyInfo.cs @@ -0,0 +1,58 @@ +using System.Reflection; +using System.Runtime.CompilerServices; + +// +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +// +[assembly: AssemblyTitle("")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("")] +[assembly: AssemblyCopyright("")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: + +[assembly: AssemblyVersion("1.0.0.0")] + +// +// In order to sign your assembly you must specify a key to use. Refer to the +// Microsoft .NET Framework documentation for more information on assembly signing. +// +// Use the attributes below to control which key is used for signing. +// +// Notes: +// (*) If no key is specified, the assembly is not signed. +// (*) KeyName refers to a key that has been installed in the Crypto Service +// Provider (CSP) on your machine. KeyFile refers to a file which contains +// a key. +// (*) If the KeyFile and the KeyName values are both specified, the +// following processing occurs: +// (1) If the KeyName can be found in the CSP, that key is used. +// (2) If the KeyName does not exist and the KeyFile does exist, the key +// in the KeyFile is installed into the CSP and used. +// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. +// When specifying the KeyFile, the location of the KeyFile should be +// relative to the project output directory which is +// %Project Directory%\obj\. For example, if your KeyFile is +// located in the project directory, you would specify the AssemblyKeyFile +// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] +// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework +// documentation for more information on this. +// +[assembly: AssemblyDelaySign(false)] +[assembly: AssemblyKeyFile("..\\..\\..\\SAF.snk")] +[assembly: AssemblyKeyName("")] diff --git a/SAF_VS2003/SAF/SAF.Library.Security/Class1.cs b/SAF_VS2003/SAF/SAF.Library.Security/Class1.cs new file mode 100644 index 0000000..d0d0c51 --- /dev/null +++ b/SAF_VS2003/SAF/SAF.Library.Security/Class1.cs @@ -0,0 +1,12 @@ +using System; + +namespace SAF.Library.Security +{ + ///

+ /// Interface for the authorization provider + /// + public interface IAuthorizationProvider + { + void Authorize(string[] allowedRoles, string[] deniedRoles); + } +} diff --git a/SAF_VS2003/SAF/SAF.Library.Security/SAF.Library.Security.csproj b/SAF_VS2003/SAF/SAF.Library.Security/SAF.Library.Security.csproj new file mode 100644 index 0000000..2943738 --- /dev/null +++ b/SAF_VS2003/SAF/SAF.Library.Security/SAF.Library.Security.csproj @@ -0,0 +1,100 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/SAF_VS2003/SAF/SAF.Library.Security/SAF.Library.Security.csproj.user b/SAF_VS2003/SAF/SAF.Library.Security/SAF.Library.Security.csproj.user new file mode 100644 index 0000000..686cccb --- /dev/null +++ b/SAF_VS2003/SAF/SAF.Library.Security/SAF.Library.Security.csproj.user @@ -0,0 +1,48 @@ + + + + + + + + + + + + diff --git a/SAF_VS2003/SAF/SAF.Library.Security/bin/Debug/SAF.Library.Security.dll b/SAF_VS2003/SAF/SAF.Library.Security/bin/Debug/SAF.Library.Security.dll new file mode 100644 index 0000000000000000000000000000000000000000..fd6b0addc4b702d0494819cf26d3e4c79d75a346 GIT binary patch literal 16384 zcmeHNYitx%6h70I@+hs8hqWz_S=%B6GPcmjOJTQNpoN7#rk01*c6N8VopyF+nVChF zps6AV8VCveKoP+Q5(5ztluAGnHGoK?iTFU2Hj0r13>t|@jns4R?9%Nc7=I9ccyD{Z zIp>~p&pr2>nRL!f7cAWbi2#sOBRrQ;V>#B&dp;~B}3Q>G43KFH~|_65j|TS zz+fEvoCg@$({?Kz{RhO^2cTXOrwf+60#k%7xXsvJ>^!@icz`;=Fby9L(cGLUkiGEO z51B?O20AqkLz!+c*Fa{U{|04!M zq^`zBYSRSlbq;_tSTzqMgK@2#2U=Rk4fQF0_S<8#ra3Eiyt(pH=AI4mx>=E}6SDW# z`yI*0PKH)L@x$-?5=stzG`53p9h&~~TbobiWxaT9{hBdz^4=)f;;$cHf9Cy3U+1+h z^IqS!BjqXMi`i?RZ#X_9?8x4_`|q}66Gj~(mbO3^Le_2KSMM{IAJcW}zPpX{8L(J~M1?&&q6 zYfi1GhYg=xj4vptS}jh>&!0?0(gly=H6$YjO@6mIT_=sD})CX*A1V~~oSa6n{oBzj6zCu0DEqM0Rw1zt#o%@p@i zJVCLY;&qC{IpT9a#S)4V#b%1zDW2dC($IE%vh!DPogA2s7~=upc)zl!#=$vsO~Abm zgbgqh(kW&lW`Kjr<0%$UoJP?_v6Ny3#U&IaiVEUL5OAj-BMyU8h}l%0OmPOqVv6%A ziWDEA=%d&K?U2-LGlz*&mhO%20bt!QGDi4bVhaQxT%h~Isyq|=x>y9iszRwNY&GbH zvQn}XT`M>A<%(Z6`t*mGs|-QYryHu`1us8rDB7n;@<)BxM%$FkzrJ(Gx z@UroSEg1x#r5o|)If@!*j?Ht+suU5GfYvoLW~!DA6PM_1C=RPu*ytlzl_B}%pky@l zF-H$Y3?+3G{{zNZxoiNmcd7Wq+lv$|m?_O^M0ex^(f}JIS8auig!XKj-deCS^+`O(r4dNzho*#t=ADp>FD0Aty&qmO$>gR)y;5`)kT;d&{@8Z5 zaqx4U*=NT!EZ%c*`|!q>_Fs8@_m@)bxrs;8*Jif-mG$GbeZ?siTfW^gbM#NkUwFtm ze_vC6M~i#*Ofln|S!HvtmAy9QwCBLd(MyGjjQz&0^R9{m-%ssm=M-BMeu8*WuyASs%CamzBjJ&0Fl9>z-V?$0#F0AqkLz!+c* zFa{U{jDg$706z9%@Oyfd`gY}ppOc%ruT38o>AQo)PONXSHjTBxiG?Uug9x>Vv!N2D zQYeFksFxznL7B9pNmp*z^_3kfR&&jwR{Og?c}$LPZd5poDuID<6i`9Nm>SfBPTg|J z!!%T(Rl-pd?Go0v3R<;jn75Nu49a0n7J4Z-9_S-d3H8ax&*=6~Ay&cUlln-kS2-xg zctQM;akho4*pI=vakda$KZ3iJs2^FJ$3Btz#4>kd1QUETk5IQfiElps7Xf!Ow`%k? z(7S6d1z6qY-|S@9ndnd0u&A$wYpZb?h~UC#0(dZnmoj8P1a%R;eGsNuSaigX^Hj_L zU>wcYgB}4IjqE&xK7_ddG~i0{`|9$u&wwB21#zAMO_U|uw}$3f7L7s90Le4P3DF3% zfO-A*eC=~kjsq0_y?^0VJ83p literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.Library.Security/bin/Debug/SAF.Library.Security.pdb b/SAF_VS2003/SAF/SAF.Library.Security/bin/Debug/SAF.Library.Security.pdb new file mode 100644 index 0000000000000000000000000000000000000000..0bbf56f5436b9b5b9d2f66dd26b047e16c475917 GIT binary patch literal 9728 zcmeHLJ5Rz;6u$W4;RB5^MkeBl(lUXQ1I9#zLHPv;B@mP*MdJ_fFSwepIk;+KoQ#|L zUnCB$)br6^(ufUAO3OLn^pxA1^q%iL?sr?Lmkqt8SI^^FC7VdZ3&s6-I;pCQk=R~Q zkWBS{VwG-d0SpMSXc@lx00H&OWSL+DLT?l7JiBgQhEstI`q;9qWWvHUsqI^1uq?hs z03{F$E1%Lq&A!>N?Urr1R7?{k5+$7`ogwmG#f(zrpwp z8$tZhCxIopo|k&SF|C*5KPFeasYdmo4{)){~L~izh@xE=<{BzbGI1F z{Xa_+{$~GoTM3W<2Lgxm(!7KJ^ZxJN!({z05oYpqq_@2$e2rvSS03$GY2z&!| Cjb9P~ literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.Library.Security/obj/Debug/SAF.Library.Security.dll b/SAF_VS2003/SAF/SAF.Library.Security/obj/Debug/SAF.Library.Security.dll new file mode 100644 index 0000000000000000000000000000000000000000..fd6b0addc4b702d0494819cf26d3e4c79d75a346 GIT binary patch literal 16384 zcmeHNYitx%6h70I@+hs8hqWz_S=%B6GPcmjOJTQNpoN7#rk01*c6N8VopyF+nVChF zps6AV8VCveKoP+Q5(5ztluAGnHGoK?iTFU2Hj0r13>t|@jns4R?9%Nc7=I9ccyD{Z zIp>~p&pr2>nRL!f7cAWbi2#sOBRrQ;V>#B&dp;~B}3Q>G43KFH~|_65j|TS zz+fEvoCg@$({?Kz{RhO^2cTXOrwf+60#k%7xXsvJ>^!@icz`;=Fby9L(cGLUkiGEO z51B?O20AqkLz!+c*Fa{U{|04!M zq^`zBYSRSlbq;_tSTzqMgK@2#2U=Rk4fQF0_S<8#ra3Eiyt(pH=AI4mx>=E}6SDW# z`yI*0PKH)L@x$-?5=stzG`53p9h&~~TbobiWxaT9{hBdz^4=)f;;$cHf9Cy3U+1+h z^IqS!BjqXMi`i?RZ#X_9?8x4_`|q}66Gj~(mbO3^Le_2KSMM{IAJcW}zPpX{8L(J~M1?&&q6 zYfi1GhYg=xj4vptS}jh>&!0?0(gly=H6$YjO@6mIT_=sD})CX*A1V~~oSa6n{oBzj6zCu0DEqM0Rw1zt#o%@p@i zJVCLY;&qC{IpT9a#S)4V#b%1zDW2dC($IE%vh!DPogA2s7~=upc)zl!#=$vsO~Abm zgbgqh(kW&lW`Kjr<0%$UoJP?_v6Ny3#U&IaiVEUL5OAj-BMyU8h}l%0OmPOqVv6%A ziWDEA=%d&K?U2-LGlz*&mhO%20bt!QGDi4bVhaQxT%h~Isyq|=x>y9iszRwNY&GbH zvQn}XT`M>A<%(Z6`t*mGs|-QYryHu`1us8rDB7n;@<)BxM%$FkzrJ(Gx z@UroSEg1x#r5o|)If@!*j?Ht+suU5GfYvoLW~!DA6PM_1C=RPu*ytlzl_B}%pky@l zF-H$Y3?+3G{{zNZxoiNmcd7Wq+lv$|m?_O^M0ex^(f}JIS8auig!XKj-deCS^+`O(r4dNzho*#t=ADp>FD0Aty&qmO$>gR)y;5`)kT;d&{@8Z5 zaqx4U*=NT!EZ%c*`|!q>_Fs8@_m@)bxrs;8*Jif-mG$GbeZ?siTfW^gbM#NkUwFtm ze_vC6M~i#*Ofln|S!HvtmAy9QwCBLd(MyGjjQz&0^R9{m-%ssm=M-BMeu8*WuyASs%CamzBjJ&0Fl9>z-V?$0#F0AqkLz!+c* zFa{U{jDg$706z9%@Oyfd`gY}ppOc%ruT38o>AQo)PONXSHjTBxiG?Uug9x>Vv!N2D zQYeFksFxznL7B9pNmp*z^_3kfR&&jwR{Og?c}$LPZd5poDuID<6i`9Nm>SfBPTg|J z!!%T(Rl-pd?Go0v3R<;jn75Nu49a0n7J4Z-9_S-d3H8ax&*=6~Ay&cUlln-kS2-xg zctQM;akho4*pI=vakda$KZ3iJs2^FJ$3Btz#4>kd1QUETk5IQfiElps7Xf!Ow`%k? z(7S6d1z6qY-|S@9ndnd0u&A$wYpZb?h~UC#0(dZnmoj8P1a%R;eGsNuSaigX^Hj_L zU>wcYgB}4IjqE&xK7_ddG~i0{`|9$u&wwB21#zAMO_U|uw}$3f7L7s90Le4P3DF3% zfO-A*eC=~kjsq0_y?^0VJ83p literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.Library.Security/obj/Debug/SAF.Library.Security.dll.incr b/SAF_VS2003/SAF/SAF.Library.Security/obj/Debug/SAF.Library.Security.dll.incr new file mode 100644 index 0000000000000000000000000000000000000000..4ef2b8e53e434b9eaf07eef5163114d4f6c1d0b0 GIT binary patch literal 1326 zcmcgrzfTlF6#n)^je?0b)|1$oaFHL0QAh~4dyrGn1muUw8MC*y3yZtAW_OTaLa?y# z5AZ+Ggv!!d;ApHUpa5bog$)g*@p}V%IT8~q?oHm#+waZ1`R2Vhm4=u4vER^cq)JO+ zR9B9xT@@s$vhOH6iQj~gpQ_$or5D0X1^iQ)PEtQpby=trD$0rYcJ8E1vN zHP^+&>xei+EcxvIe)r{I%PO2v946E$CJxzaYC9)G<97T}vU7OGX{dvo=9uv(=NOq1 z1tZ7bcAD19%aStS0rldt6th~Msc6LN*IH~gHjh?6ZERbQZta`7y{m-f9Mv&hG{wFg z!z)%k!4f;eW9@C)bky((lrNdJ8PmybV#*t_ttG2=&3H^(l z9eQf?%(tTae|KJU(}U!FgGRe8_mLNL@@wzIkMG;L%e=Kt-f@(*$aue)H;j1e3L1Qc o3G?9*7ZGZvExx|^b91d}N?Urr1R7?{k5+$7`ogwmG#f(zrpwp z8$tZhCxIopo|k&SF|C*5KPFeasYdmo4{)){~L~izh@xE=<{BzbGI1F z{Xa_+{$~GoTM3W<2Lgxm(!7KJ^ZxJN!({z05oYpqq_@2$e2rvSS03$GY2z&!| Cjb9P~ literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.Library.Security/obj/Debug/SAF.Library.Security.projdata b/SAF_VS2003/SAF/SAF.Library.Security/obj/Debug/SAF.Library.Security.projdata new file mode 100644 index 0000000000000000000000000000000000000000..07293505779aec419a0e7f8b8d823953c7f2c7fe GIT binary patch literal 1288 zcmeH{&n^Q|6vn@4h}tw=h#+Z#g&<7)*;#2SqKSo&2tlN3q)o~sQ$%gd!os32;2}JN z1sgkyzJoWg#P7_sNJy};>Y03V?!Di4&OLMg%yoY{nGn_?Jv!EqUa`8hA$ql~oO~VW zSYGt5G9q;<7Q4zTs}tA~sz7C(t3ay+L;(E)Lx7BokOHKG=^i}#5RRD`#A zO!vXA!_R1nXZC%x#kyK1?;f!QP?L++BadY(Q$dZ0oGP$Yo@w|ZUK(%C{d2rj|JQ1> zQKg;^`Kk)_=UMLq)}&Rr?UP{%B-yV4d>aTn=k2$JI9FUr^e;O?R_M%T)(vt;Tf(SE%OR?zK3Pn zfUn_G7{56iMNm+zEHcZ#bDuLioY{xjY&s=qL<&6e# zCBeRm%Ig|$NK`|S+Nz*ME@ux*T{mdwWH-nwQEiI~2W0Jja36c5Ga@SBPCouXRq9&B z78dKGhPTPHiN6Y$)&_Nc&X>x6J~{7B4RlF|HF_yBhYP;zy$hS)90);&IhtMoX=Ixv zq9gMSX*hxZIDwd^%E0cf-PtL)ZTKR11PjtUO#2|&{3O=&)BeP3_P*=&kmHl5=a+WZ zg;=fMQcU12usyQ#ZGWtp$uEDG0LSt-))oF3hdS2!fUgoau8owJ%j7byXX|GSX&XKR GKGPeHPhG_T literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.Library.WindowsService/AssemblyInfo.cs b/SAF_VS2003/SAF/SAF.Library.WindowsService/AssemblyInfo.cs new file mode 100644 index 0000000..9f89a32 --- /dev/null +++ b/SAF_VS2003/SAF/SAF.Library.WindowsService/AssemblyInfo.cs @@ -0,0 +1,58 @@ +using System.Reflection; +using System.Runtime.CompilerServices; + +// +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +// +[assembly: AssemblyTitle("")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("")] +[assembly: AssemblyCopyright("")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: + +[assembly: AssemblyVersion("1.0.*")] + +// +// In order to sign your assembly you must specify a key to use. Refer to the +// Microsoft .NET Framework documentation for more information on assembly signing. +// +// Use the attributes below to control which key is used for signing. +// +// Notes: +// (*) If no key is specified, the assembly is not signed. +// (*) KeyName refers to a key that has been installed in the Crypto Service +// Provider (CSP) on your machine. KeyFile refers to a file which contains +// a key. +// (*) If the KeyFile and the KeyName values are both specified, the +// following processing occurs: +// (1) If the KeyName can be found in the CSP, that key is used. +// (2) If the KeyName does not exist and the KeyFile does exist, the key +// in the KeyFile is installed into the CSP and used. +// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. +// When specifying the KeyFile, the location of the KeyFile should be +// relative to the project output directory which is +// %Project Directory%\obj\. For example, if your KeyFile is +// located in the project directory, you would specify the AssemblyKeyFile +// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] +// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework +// documentation for more information on this. +// +[assembly: AssemblyDelaySign(false)] +[assembly: AssemblyKeyFile("")] +[assembly: AssemblyKeyName("")] diff --git a/SAF_VS2003/SAF/SAF.Library.WindowsService/Class1.cs b/SAF_VS2003/SAF/SAF.Library.WindowsService/Class1.cs new file mode 100644 index 0000000..5cc6a2d --- /dev/null +++ b/SAF_VS2003/SAF/SAF.Library.WindowsService/Class1.cs @@ -0,0 +1,18 @@ +using System; +using System.Xml; +using SAF.Utility; + +namespace SAF.Library.WindowsService +{ + /// + /// IService interface represents the interface class has + /// to implement to be pluggable into SAF.WindowsService + /// + public interface IService + { + + void Start(); + void Stop(); + void Initialize(XmlNode configXml); + } +} diff --git a/SAF_VS2003/SAF/SAF.Library.WindowsService/SAF.Library.WindowsService.csproj b/SAF_VS2003/SAF/SAF.Library.WindowsService/SAF.Library.WindowsService.csproj new file mode 100644 index 0000000..e5193f2 --- /dev/null +++ b/SAF_VS2003/SAF/SAF.Library.WindowsService/SAF.Library.WindowsService.csproj @@ -0,0 +1,105 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SAF_VS2003/SAF/SAF.Library.WindowsService/SAF.Library.WindowsService.csproj.user b/SAF_VS2003/SAF/SAF.Library.WindowsService/SAF.Library.WindowsService.csproj.user new file mode 100644 index 0000000..686cccb --- /dev/null +++ b/SAF_VS2003/SAF/SAF.Library.WindowsService/SAF.Library.WindowsService.csproj.user @@ -0,0 +1,48 @@ + + + + + + + + + + + + diff --git a/SAF_VS2003/SAF/SAF.Library.WindowsService/bin/Debug/SAF.Library.WindowsService.dll b/SAF_VS2003/SAF/SAF.Library.WindowsService/bin/Debug/SAF.Library.WindowsService.dll new file mode 100644 index 0000000000000000000000000000000000000000..e53005cb402fea4458bd0597f192534e88c25034 GIT binary patch literal 16384 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 NWI!??8Tjuq@NXen+adq} literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.Library.WindowsService/bin/Debug/SAF.Utility.pdb b/SAF_VS2003/SAF/SAF.Library.WindowsService/bin/Debug/SAF.Utility.pdb new file mode 100644 index 0000000000000000000000000000000000000000..927ffef48da7127c275580128436378b3a80f07f GIT binary patch literal 13824 zcmeHNZERCj7(U&~=mrzYr$WR95&4*HH*_0B9oRuO9Re0GBFR?TyK!CDyR;pHh)EL( z5yKBmFi{f|m?RRz4>bHRL?R)?z%M@ti6Ih=Ka55r0cS#tg3ojAIqhY#u`+Nl?wdV* z&-cgszUMt3cPq_U%1T>pnTl{Qyl`Q~%E*d}+CV5&UN)m4B0xp*Ps~K{TgE{%Z07!s z0txK9^!-(r?p+D^$}2A4yR&y^-cwrTsiPm8r~phqJ3j9Hog4gZXZ*(&2yxlhbZj6&3}+?HL!3ET<#r|k@613pa23%E8=xNe71<9hy| z`f&Px#@SYXK9u&|GIxgrzEs21y#J_o!yqb=*ay%K`ma~|Vft&mUg^IFTC?=m^xgFB zE{&`NX8suRWHE%^y1u!8mz?x)?=6HpC`@0WIqNb^`(WGu`1U6o5q=1m1u)M5T)HzP zKph>zP=5IE{Or@8pY%*Ga9Gqm_h;(0Ow}z!|7q0eZ!1qCjkdx(*H$2e+eq}+Uje-U z?}2)cZ$&r@aP87h>$5riI_ps9Byh<%V;)vGSDY{d=QNz3|3bttrG5VMI(i)%^CYB5%W@wIG8%W4DLqQ33Z;z+bQS}?7Sy9Pa$ zOGA+W*KI&7;B$(|QhcD7Z6<$_&nFovSrO?mGqKHhpDFgU-gcDVAWPZ#Wnzv$vMrr4 zI)#{>3kP24PG-zbBhZx07%8hOVx+d1F#~FvlrIx8V%;hD8~702MnItZulHd!Fr~FYa&+P0nQfVt0&6rj)Y+-0yGpsWU zW!0G`S2kg_w;S87{= zfncsh7(G#~d352>1UsPE9h4kR|C4)ae^nGm`V6-EazdJ$gkrGACryA{_{!$e{K|o1*?; z6FGZu+7xYADP4-Uk@~q1`Mu6xd>x_XvDe*fkaW3B>sgpcZ^S_+s!N z_!97HaP02cr@)^EUk<($d?onr7p`Pifj1z&0el6x7v}*lYIyObz>AeRMm!Hb4+sEj z5U&T&5@?KAj&rJ4j-3nH_M@Jh4=zI592NvY4q5tI^qcjHid?+}(kL6wS^K)Nh_?bH z$V|=|JpPFJ#fJg*zxJv_p3A#v2P^Hd#d?79!0 z?>!=a=+}MN>8iY||D10Ak3bnZIS%v!TpIfQm%Dlv;2Pz*0!vZw+~)kow<%%8Iz%v? ziUr%ugpm#o`hG-9Vhh|QaH^BUrOY&rg1wMfZZ^OZhD*0w0uu-6K%WhCk&wIowJ1gn zr;hnQAk#6UGO@32oOs>Gy?QgS2dD&E0ZqI^@C=C4|8dFiWB+$Z-goG@onI<;U}>L1 zWW4nMLi{|{WEYYgZ+W=~KlOD%)P-x7)mAsq6^X}=1}@Tbka$PyPt0R_u3<+3=CuR* zZsy36-iY_8dCo)?X1x=Dz5_Xn6yZixE(hev`ApuseV8Lj`%!YxsvYG>`^O$e*uhP8YKV# literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.Library.WindowsService/obj/Debug/SAF.Library.WindowsService.dll b/SAF_VS2003/SAF/SAF.Library.WindowsService/obj/Debug/SAF.Library.WindowsService.dll new file mode 100644 index 0000000000000000000000000000000000000000..e53005cb402fea4458bd0597f192534e88c25034 GIT binary patch literal 16384 zcmeHNU1%It6h4z=L)zMCZIu>_osbl@lp$$S|Iyv-_9tf3#7<1329nv?>1NFA%z9@w zbqm(K2>K!w{CR3osxN|4q|jIp5k&Bzf=|8{Z1F|ts|Z@ZduG;5x-nw)LGa$?esj(} z=bn4+H+PqunT$Pmn%aq|1O3JgqGeoV%QCJHOE7ouy3|bhHQFgBqR z?Y!Bxo(})6l)Vf3;goJf&Px&W4>ADQIL9P!Xxwz7IYWfPhQ_&NAxIw`J=L*41dTHf=-y zNk{pJs#$}4tF2kf%XlxNdpbJm(W7R;{N#uG_I|PL;_%t>nZZv#oBeVR?1e{X%-q3Q zGpGyO$>RY5t5fE_{{BHJ%5D_hlCVU>IOh80;6!LTV$rponV|H-Ou;GDE9*EJwQ>o| z(6IT`u$Jsh*2#+l#(*(2xNn~{;!(jIa2Xr#Jw>z~$#;c#!nNd_s}yV z1?YRB58>K7>;=34WK7o%-9@wkGX0_rN>U}4-RKbIGYQr=W`*jH8SuVGoshF#(D;P$|iTPGPcNL43Ccm<+|rQ zL4SVGjI!s^NOJ1d@gp;`L<9_KWH!RcsT$K&kI;|cVAF{2My}<#CmpJWb|5^r)O0)Q z9QPbMas!`oVdzv#USrg09I>iSF2Wfs)gy-tI|@YFe9-k$=H|SD<5>;Ut@tZ5o2Ds8 zgjk~0kgt1DU91soQdniDYKet4<^;8da4Yjst7$@jQhNv|E32oul);3PMQJRN@_=0Oy{2+{6J0$*%s92@6o6RfA+k@}&wGO{3zr~fAMx*Dh;iZ3keKLuI5}WJhMCD5Xs3EFF0&!gO2!$2-besaV_o0?YHn3V4 z4Pmz^f?ohFZs$8La9wUo>4li~Z!BZjP+i0k%RWVP{0y7x<&U4P=Nep>+ zWX??vq$XJ>WcAN-kMGq4)(NnqI`$T&n2B>KF#oH4ZoUhDbq@}6j2w0t@_tL$O#>(4 z@5YgQtEL!G3@8Q^1BwB~fMP%~pcqgLCesAvfyg(WYb2Gf1nfGSjeDi&8x6y7DQ5Ln0pQ_nT zl7_188(+nFp}bM$<=O2djS4kBuFQ=@tC%aLOxVFn&OJGFfSPRX#XjU8V7{<3ry_H?}`Ika#Z zO{}1SMV@kzvn8%CAYr6H4o!<;;4(hPvzwTw-$#ZBcNi;hi@r5XaEI6lOkt9}$vk)Y zw&A{v{tzj|Fq7Cy=CiC@C1EM?>|`|6)v|vJhbEBw;^1IwEB>^&583S`P_-ye^IHb z=&D|x@lJztxu+H3_r#mU2W1t)!VvF1L%lR>DkBFetEa&ljH#bX6*X~nZ?In`$JRGq ceJT52gZ%%7rI<&ozC|woyb396swSlV0WMMx^8f$< literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.Library.WindowsService/obj/Debug/SAF.Library.WindowsService.pdb b/SAF_VS2003/SAF/SAF.Library.WindowsService/obj/Debug/SAF.Library.WindowsService.pdb new file mode 100644 index 0000000000000000000000000000000000000000..64e2465a0e329bb953a4d1186aa9fddc40fd8708 GIT binary patch literal 13824 zcmeHNU1$?o6uzl{X|!t8E&iaiQr)U`lBm^EgrcoQQL$@~U8S(3>4e6n$ug5#iXa8S z=RWx2gQ6(tlc+DEC|3NzH^IL8q_BSv%06u$Ro@PKV#nFY`ao2lP9AOUY% zM$tT$!0`QfJb5+s%s^$x(?mbE(gB!HWHNC3b{n~(IV%A!f%TPvf8+$uJ2CzO8is(w zys$usHW)+$iakKFmrXs!@Pj=pu^4!+62 zOGf>}VKH*zX2p${hmKzP>-Ts5;TF5T^y;NE{@AGh>2@K;yhol+ygOT)Et|-tdoPBv z5Ky|$>Lj1iRQ{j3bo+nS`K-x2pXaMSr7Z#Kls16nEgHr3Ca<{Yr5`16JxN#%&d)lF ze;Og%`B)o|9bZ3x{mk%Tg%Br>u#YfJ-8dJI>YdR<#56-%)D$`US~sYl*^&U`VlJX> zxN`&9Pw8JuqWt-W4?)imrg5+T-?e|gec`Dsa7tX}j1`jec9t2Z`Rp&=8_B~?+fIk; z;EGB^0?eEK1MUOd2Xf7W33vX_oC;e2E7x}C*DG->T>o?p z^a0%aPv--kpwAtcCC@cB0klw`sPl&h&9vUfXUMYlOJBmN!`x4$+9 zca{fSo7G=biv|8M{MRk~;YRSS&VN^n8hSv+Q;V}~_Orft93G5v4KIL>0vt2rZzs?L zkT@5D*QZ<3d(med&VZ_9>x{BzpdX6L;o#eDE*hDYV#TtePu3UP_y4tcVp;6}ote*u{%QM#=)aH?F?sIh zm}FL;S^d|~hW@!$xXz{jFPHB>7`J#1!u_54{sTgoA@MsJxBhQi208KkpTWPF-~ZHO wjH>{SmHMXM8KY_4-!JF`3cFcu2-2OxQ}8Q1DNP{g zCLcH5d_PTjkG&)>s{ylV`ug#?R&|eq**hj?eBf;N+SY%vi3Av;d&{o-%K)L4k*67u zUPajFpu>wg0vT@VzDL;gPnIZI;^g>WxL3;i75At@9. For example, if your KeyFile is +// located in the project directory, you would specify the AssemblyKeyFile +// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] +// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework +// documentation for more information on this. +// +[assembly: AssemblyDelaySign(false)] +[assembly: AssemblyKeyFile("")] +[assembly: AssemblyKeyName("")] diff --git a/SAF_VS2003/SAF/SAF.MessageQueue/MQSeries.cs b/SAF_VS2003/SAF/SAF.MessageQueue/MQSeries.cs new file mode 100644 index 0000000..3528346 --- /dev/null +++ b/SAF_VS2003/SAF/SAF.MessageQueue/MQSeries.cs @@ -0,0 +1,203 @@ +using System; +using System.Xml; +using SAF.Configuration; +using System.Configuration; +using MQAX200; +using System.Threading; + +namespace SAF.MessageQueue +{ + /// + /// A sample implementation of IMessageQueue for MQSeries technology. + /// It allows developers to send, retrieve messages from MQSeries and register + /// event for new message arrivals. + /// + public class MQSeries : IMessageQueue + { + private ConfigurationManager cm; + private MessageArrivalHandler handler; + private string queueManager; + private string QueueName; + private MQQueue queue; + private MQSession queueSession; + private MQQueueManager mqm; + private bool queueListenerStarted; + private int sleepTime; + + + /// + /// Constructor that retrieve the queue related information + /// for MessageQueueConfiguration object + /// + /// the name of the queue + public MQSeries(string queueName) + { + cm = (ConfigurationManager)ConfigurationSettings.GetConfig("Framework"); + XmlNode queueInfo = cm.MessageQueueConfig.RetrieveQueueInformation("*[@name='" + queueName + "']" ); + queueManager = queueInfo.SelectSingleNode("QueueManager").InnerText; + QueueName = queueInfo.SelectSingleNode("QueueName").InnerText; + sleepTime = Int32.Parse(queueInfo.SelectSingleNode("SleepTime").InnerText); + queueSession = new MQSessionClass(); + } + + /// + /// send the message to the MQSeries's queue + /// + /// a message object to be sent + + public void Send(Message m) + { + //create a new MQSeries message + MQMessage message = (MQMessage)queueSession.AccessMessage(); + message.WriteString(m.Content.ToString()); + MQPutMessageOptions messageOption = (MQPutMessageOptions)queueSession.AccessPutMessageOptions(); + + //send the message to the MQSeries queue + queue.Put(message,messageOption); + + + + } + + /// + /// Retrieve message from the MQSeries's queue + /// + /// + public Message Retrieve() + { + //create a new message + MQMessage message = (MQMessage)queueSession.AccessMessage(); + MQGetMessageOptions messageOption = (MQGetMessageOptions)queueSession.AccessGetMessageOptions(); + + //fill the new message object with message from he queue + //unlike MSMQ, GET is not a blocking call, instead, it raise + //an exception if trying to retrieve message from a queue that is emtpy. + queue.Get(message,messageOption,System.Reflection.Missing.Value); + + + //create a new message object that contains the + //message from the queue. + Message m = new Message(); + m.Content = message.ReadString(message.MessageLength); + m.Label = message.MessageId; + return m; + } + + /// + /// event for arrival messages to the queue + /// + public event MessageArrivalHandler MessageArrival + { + //when new handler is register for the event, start the listener + //if it is not yet started + add + { + handler += value; + if (queueListenerStarted != true) + { + //create a new thread to listen on the queue + ThreadStart ts = new ThreadStart(StartQueueListener); + Thread t = new Thread(ts); + t.Start(); + } + } + remove + { + handler -= value; + //stop the listener if no handler is listed + if (handler == null || handler.GetInvocationList().Length <= 0) + { + StopQueueListener(); + } + } + } + + /// + /// Start the listen to the queue for incoming messages and + /// notifiy the handlers as new messges arrive + /// + public void StartQueueListener() + { + //create a separate connection to the message queue + queueListenerStarted = true; + MQQueueManager listenermqm = (MQQueueManager)queueSession.AccessQueueManager(queueManager); + MQQueue listenerqueue =(MQQueue)mqm.AccessQueue(QueueName,(int)MQ.MQOO_INPUT_AS_Q_DEF + (int)MQ.MQOO_OUTPUT,"","",""); + listenerqueue.Open(); + try + { + MQMessage message = (MQMessage)queueSession.AccessMessage(); + MQGetMessageOptions messageOption = (MQGetMessageOptions)queueSession.AccessGetMessageOptions(); + while(queueListenerStarted == true) + { + System.Threading.Thread.Sleep(sleepTime); + if (handler.GetInvocationList().Length > 0) + { + try + { + //GET will raise an exception if no message is in the queue. + //we want to keep listening despite of the exception, see exception block + //for detail + listenerqueue.Get(message,messageOption,System.Reflection.Missing.Value); + SAF.MessageQueue.Message safMessage = new SAF.MessageQueue.Message(); + safMessage.Label = message.MessageId; + safMessage.Content = message.ReadString(message.MessageLength); + //fire the event + handler(safMessage,QueueName); + } + catch (System.Runtime.InteropServices.COMException ex) + { + //-2147467259 represents the error code for retrieving + //message from an empty queue. do nothing if gotting this error code. + if (ex.ErrorCode != -2147467259) + { + throw ex; + } + } + } + } + + } + finally + { + //close the connetion + listenerqueue.Close(); + listenermqm.Disconnect(); + } + } + + /// + /// stop the listener + /// + public void StopQueueListener() + { + queueListenerStarted = false; + + } + + /// + /// open the connection to the message queue + /// + public void Open() + { + mqm = (MQQueueManager)queueSession.AccessQueueManager(queueManager); + queue = (MQQueue)mqm.AccessQueue(QueueName,(int)MQ.MQOO_INPUT_AS_Q_DEF + (int)MQ.MQOO_OUTPUT,"","",""); + queue.Open(); + + } + + /// + /// close the connection to the message queue + /// + public void Close() + { + if (queue != null) + { + queue.Close(); + } + if (mqm != null) + { + mqm.Disconnect(); + } + } + } +} diff --git a/SAF_VS2003/SAF/SAF.MessageQueue/MSMQ.cs b/SAF_VS2003/SAF/SAF.MessageQueue/MSMQ.cs new file mode 100644 index 0000000..6c3ed5a --- /dev/null +++ b/SAF_VS2003/SAF/SAF.MessageQueue/MSMQ.cs @@ -0,0 +1,183 @@ +using System; +using System.Xml; +using System.Messaging; +using SAF.Configuration; +using System.Configuration; +using System.Collections; +using System.Threading; + +namespace SAF.MessageQueue +{ + /// + /// A sample implementation of IMessageQueue for MSMQ technology. + /// It allows developers to send, retrieve messages from MSMQ and register + /// event for new message arrivals. + /// + public class MSMQ : IMessageQueue + { + private int sleepTime; + private string formatName; + private ConfigurationManager cm; + private static MessageArrivalHandler handler; + private string queueName; + private static bool queueListenerStarted = false; + private ArrayList supportedTypes = new ArrayList(); + private System.Messaging.MessageQueue mq; + + /// + /// Constructor that retrieve the queue related information + /// for MessageQueueConfiguration object + /// + /// name of the queue + public MSMQ(string queueName) + { + cm = (ConfigurationManager)ConfigurationSettings.GetConfig("Framework"); + XmlNode queueInfo = cm.MessageQueueConfig.RetrieveQueueInformation("*[@name='" + queueName + "']" ); + formatName = queueInfo.SelectSingleNode("FormatName").InnerText; + sleepTime =Int32.Parse(queueInfo.SelectSingleNode("SleepTime").InnerText); + this.queueName = queueName; + //supportedTypes is used to provide information to System.Messaging.MessageQueue + //information on how to serialize and deserialize the object sent to and retrieved from + //the queue. The default data type is string type. + supportedTypes.Add(typeof(System.String).ToString()); + } + + /// + /// allows developers to add additional type information + /// for serialization and deserialzation of the messsage + /// + /// the data type name + public void AddSupportedType(string typeName) + { + supportedTypes.Add(typeName); + } + + /// + /// event for arrival messages to the queue + /// + public event MessageArrivalHandler MessageArrival + { + //when new handler is register for the event, start the listener + //if it is not yet started + add + { + handler += value; + if (queueListenerStarted != true) + { + //create a new thread to listen on the queue + ThreadStart ts = new ThreadStart(StartQueueListener); + Thread t = new Thread(ts); + t.Start(); + } + } + remove + { + handler -= value; + //stop the listener if no handler is listed + if (handler == null || handler.GetInvocationList().Length <= 0) + { + StopQueueListener(); + } + } + } + /// + /// Sends the message to the MSMQ + /// + /// message object + + public void Send(SAF.MessageQueue.Message m) + { + //set type information queue can use to serialize the message + ((XmlMessageFormatter)mq.Formatter).TargetTypeNames = (string[])(supportedTypes.ToArray(typeof(System.String))); + mq.Send(m.Content,m.Label); + + } + + /// + /// Retrieve the message from the MSMQ + /// + + /// retrieved message object from the queue + public SAF.MessageQueue.Message Retrieve() + { + //set type information queue can use to deserialize the message + ((XmlMessageFormatter)mq.Formatter).TargetTypeNames = (string[])(supportedTypes.ToArray(typeof(System.String))); + + System.Messaging.Message message = mq.Receive(); + SAF.MessageQueue.Message safMessage = new SAF.MessageQueue.Message(); + safMessage.Label = message.Label; + safMessage.Content = message.Body; + return safMessage; + } + + + /// + /// open the connection to the message queue + /// + public void Open() + { + mq = new System.Messaging.MessageQueue(formatName); + } + + /// + /// close the connection to the message queue + /// + public void Close() + { + if (mq != null) + { + mq.Close(); + mq.Dispose(); + } + } + + /// + /// Start the listen to the queue for incoming messages and + /// notifiy the handlers as new messges arrive + /// + private void StartQueueListener() + { + //create a separate connection to the message queue + System.Messaging.MessageQueue listenermq = new System.Messaging.MessageQueue(formatName); + ((XmlMessageFormatter)listenermq.Formatter).TargetTypeNames = (string[])(supportedTypes.ToArray(typeof(System.String))); + System.Messaging.Message message = null; + queueListenerStarted = true; + try + { + //listen to the queue continusly through loop + while (queueListenerStarted == true) + { + System.Threading.Thread.Sleep(sleepTime); + if (handler.GetInvocationList().Length > 0) + { + //this is a call that will block the thread if no + //message is in the queue. + message = listenermq.Receive(); + SAF.MessageQueue.Message safMessage = new SAF.MessageQueue.Message(); + safMessage.Label = message.Label; + safMessage.Content = message.Body; + //fire the event + handler(safMessage,queueName); + } + + } + } + finally + { + //close the connetion + listenermq.Close(); + } + } + + /// + /// stop the listener + /// + private void StopQueueListener() + { + queueListenerStarted = false; + } + + + + } +} diff --git a/SAF_VS2003/SAF/SAF.MessageQueue/MessageQueue.cs b/SAF_VS2003/SAF/SAF.MessageQueue/MessageQueue.cs new file mode 100644 index 0000000..73a69fe --- /dev/null +++ b/SAF_VS2003/SAF/SAF.MessageQueue/MessageQueue.cs @@ -0,0 +1,49 @@ +using System; + +namespace SAF.MessageQueue +{ + /// + /// Containing the interface and class referenced in + /// the message queue impelmentation class + /// + public delegate void MessageArrivalHandler (Message m, string queueName); + + /// + /// interface that every message queue implementation must implements + /// + public interface IMessageQueue + { + void Send(Message message); + Message Retrieve(); + event MessageArrivalHandler MessageArrival; + void Open(); + void Close(); + + } + + /// + /// Interface for MessageQueueManager. it is used by + /// client application to interact with MessageQueueManager. + /// + public interface IMessageQueueManager + { + void SendMessage(Message message); + Message RetrieveMessage(); + void RegisterMessageArrivalHanlder(MessageArrivalHandler mah); + void UnRegisterMessageArrivalHanlder(MessageArrivalHandler mah); + void OpenConnection(); + void CloseConnection(); + } + + /// + /// A basic Message class, can be extended to create more + /// implmentation specific message class + /// + public class Message + { + public string Label; + public object Content; + } + + +} diff --git a/SAF_VS2003/SAF/SAF.MessageQueue/MessageQueueManager.cs b/SAF_VS2003/SAF/SAF.MessageQueue/MessageQueueManager.cs new file mode 100644 index 0000000..3875942 --- /dev/null +++ b/SAF_VS2003/SAF/SAF.MessageQueue/MessageQueueManager.cs @@ -0,0 +1,81 @@ +using System; +using System.Configuration; +using SAF.Configuration; + +namespace SAF.MessageQueue +{ + /// + /// MessageQueueManager contains the API that developers + /// would interact with the most. It provide the "bridge" + /// to the underlying implementation of message queueing. + /// This compnoent show most simplified linkage between MessageQueueManager + /// and underlying Message queue. The more dissimilar between IMessageManager and the + /// underlying Message Queue, the more complex MessageQueueManager becomes. + /// + public class MessageQueueManager : IMessageQueueManager + { + private IMessageQueue mq; + private ConfigurationManager cm; + + public MessageQueueManager(IMessageQueue messageQueue) + { + mq = messageQueue; + } + + /// + /// pass the call the actual message queue implementation + /// + /// message object + public void SendMessage(Message m) + { + mq.Send(m); + } + + + /// + /// pass the call the actual message queue implementation + /// + /// the retrieved message from the queue + public Message RetrieveMessage() + { + return mq.Retrieve(); + } + + /// + /// register event hanlder that trigger when new message arrives at the queue + /// + /// MessageArrivalHandler delegate + public void RegisterMessageArrivalHanlder(MessageArrivalHandler mah) + { + mq.MessageArrival += mah; + } + + /// + /// unregister event handler that trigger when new message arrives at the queue. + /// + /// MessageArrivalHandler delegate + public void UnRegisterMessageArrivalHanlder(MessageArrivalHandler mah) + { + mq.MessageArrival -= mah; + } + + /// + /// open the connection of the underlying mesage queue + /// + public void OpenConnection() + { + mq.Open(); + } + + /// + /// close the connection of the underlying message queue + /// + public void CloseConnection() + { + mq.Close(); + } + + } + + +} diff --git a/SAF_VS2003/SAF/SAF.MessageQueue/SAF.MessageQueue.csproj b/SAF_VS2003/SAF/SAF.MessageQueue/SAF.MessageQueue.csproj new file mode 100644 index 0000000..9cf3b14 --- /dev/null +++ b/SAF_VS2003/SAF/SAF.MessageQueue/SAF.MessageQueue.csproj @@ -0,0 +1,136 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SAF_VS2003/SAF/SAF.MessageQueue/SAF.MessageQueue.csproj.user b/SAF_VS2003/SAF/SAF.MessageQueue/SAF.MessageQueue.csproj.user new file mode 100644 index 0000000..e4263fd --- /dev/null +++ b/SAF_VS2003/SAF/SAF.MessageQueue/SAF.MessageQueue.csproj.user @@ -0,0 +1,48 @@ + + + + + + + + + + + + diff --git a/SAF_VS2003/SAF/SAF.MessageQueue/bin/Debug/Interop.MQAX200.dll b/SAF_VS2003/SAF/SAF.MessageQueue/bin/Debug/Interop.MQAX200.dll new file mode 100644 index 0000000000000000000000000000000000000000..dcdb8445dd871459319ed536b78f8a34de10594e GIT binary patch literal 122880 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

;HE$k+#D!@TLX8(hQQr$d!P*N2;2)3 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 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.MessageQueue/bin/Debug/SAF.Configuration.pdb b/SAF_VS2003/SAF/SAF.MessageQueue/bin/Debug/SAF.Configuration.pdb new file mode 100644 index 0000000000000000000000000000000000000000..486270dd4be55f0b21676f82b00b488d2d6a88f7 GIT binary patch literal 56832 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 NI2Q{(U1rCD{|}|F-Fg53 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.MessageQueue/bin/Debug/SAF.MessageQueue.dll b/SAF_VS2003/SAF/SAF.MessageQueue/bin/Debug/SAF.MessageQueue.dll new file mode 100644 index 0000000000000000000000000000000000000000..e51bd2416d0579835e9fd2fa8a946d708dfe745b GIT binary patch literal 20480 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 SKoEf-0zm|V2>fqH;J*R)(MZVv literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.MessageQueue/bin/Debug/SAF.MessageQueue.pdb b/SAF_VS2003/SAF/SAF.MessageQueue/bin/Debug/SAF.MessageQueue.pdb new file mode 100644 index 0000000000000000000000000000000000000000..37874b196020f64a1acf3ed4dbf52819286f6fb4 GIT binary patch literal 36352 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

|4`uxuS2$tkcy{XSiVvj}{wS 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 SXat;#u;5&5bg|7j3H(1BVVGS2 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.MessageQueue/bin/Interop.MQAX200.dll b/SAF_VS2003/SAF/SAF.MessageQueue/bin/Interop.MQAX200.dll new file mode 100644 index 0000000000000000000000000000000000000000..dcdb8445dd871459319ed536b78f8a34de10594e GIT binary patch literal 122880 zcmeF)4|o&Rx-b4o(zKa2O=l)aDOxZHC>2B$l&VF;Kc$L_h>C&|rE04nhy}|ZAqr@# zD4?L_j~Jy2)v8qiLD3zdDpgR_ZbUaowjj2G0()0QHg50t{T8}1=iGCieb4XQ-*fMC zbwBxZy=%>^nar&9W@gB4FS~x8=F&7R1+U+K*R-|xDgTA(e@+z5zLVbcX{+=t9o9Mq zZ|N|sxa988_zB}~n{d=;m8O6DHmnD!DT>;EJn4W5*TU(mgXXz0TJ{?y?!WxhLQd98 zQQj8=ET?|9HcO>85B**$1@s$fSwW(t|D2jPDf*X-Ax-lnE$l%&C@Jn9K6Ntc=6SR0}vM=PRYSC{l<*DSr)*5*f-3E%l*DG#355NPB1t_<}D-ExgQFkp~!%z<5bvf4Qh5P+~Vntb3UYcgU(eg7@JI~qI znW_zs{%R^&UIc_8g;US|eF<{jnuCuxTKDUzp<@7A~_H4l+;v* zD_y%Ls=G2_dwMRthTcwR)1`D3{g5W;FElGfdN_slp~L7MbOwElK2P7F+vvCSSDNW& zKlEIBCB2zWq~-J(`YNrbyXg^{nJWEsr03Dg>1bL?%V~_RrGKXT=s#&rn)Gu9y@cLG z@1+arO8OSvO#e!cQqv7WxHE(0#O-{zg;NWh+^fJ>5o| z=n?AAlAcea1L#OPk38%O>J3Og9cV9lIW4Bs=%aKwT|+;lyJ<6Z1f?GzJ&~SH^XbL(T3SM< z(8p*EeV_h?9-_W%=`)*lq-W3qdMO=2i|GV9l|Dch(iiDF^kdpckJ9WmvXvh60(u!8 zL5t~B`UqV_tLW==BmIniLw~039O>ClPo_QSh4gYdl8&WQ=p%FmeVcwnchLRxD7D&3 z{~c%#I*<;bH`4KRCVi6D&_B@z+C+b+z7wR+T$)Go>BaO~dI!CaK1J8jkLh3O&otvi z?jh|(2hovq94)8M(YNR)^jrE5YUN5lXV3yVl#ZrR`WUUEYw4$SKlQYe9HrtXmR?4zA%Z+Z#6flj0k(dX$~^b7he{X2Dbklsw%o}NMb z(82UNT1?C6BXlW!nXaRo>0js}>Nr{YH)sc1K(C-hbUJ;QE~Br~4Rjm*k-9ocZzs^R z=*9F#T1w~8=jj{tUAmM0K#x+hlk|29?L)7ix6vqFL|>zu={NKrG^?}p(2*91Mi%{zB8cNYAyL*tMuTf?ddsm z5FJIw(fjG+w2Hn>KcL&_cl0pzc9Wjl(=%uxEu#0(hv;HjOFy7r)BQB%bm=FT_N154 zo9JZvBwbElr5ovA=w5o5`npSR?PyOrh>oCl(TC|%bR~U**3mEMUiuGep22rYPp9Y6 zLOP5V(=s}b#^`FgiSD4y)YU`!Y(sm}E9h->3ay~a=u31X{fhob)6bNCI@5FMHME#c zqO<8D`Xb#xzoZ9f`dQM?iL?vtM~Bf8I*rby&(PQDCc1|np}wBdTZo=dhtiwr1Ui?# zL_eTA=-;TPm-KKFJ)d4dOK3S=K%b{;>Bn>@Jw)ASOF!-CIdllUnU>LVx`fuyKhZza zALu`+d5-jU8a5FJWK(L3lp z^Z`1TE~78e_4HGkpa-ZsU$zyXooEkwKD~sN&?tS9R@1lWdvphFqONnL&y(nx^dfpa zEu|08CGIn%2^{=%;iS{h6lr zk^bA#ZZu4X(GohHE}}2c*Xert9{repN%znn=`S?p0@+G{_N0U8jkJ``p)tCOzDKvw zCfZChE|lI*rG4mdT1?AmIgQa*>AUn(x{L0kf2T)jAS^wfMhDQVX)&Ej=g_C=%k+Kv z1wBAh`bs}1(F^D`bRxZ0jt~^bqy+lm0u?v+2b&LZ{KkXbs&+ zzoN}Fqrddfj-E*e&>QJEI)hfy*XUNdk9r1hA81c{DIG;8(fM=*jnfAD19cDNQKI?u za(XkJNaxVSbRFGHchlc#yNjfsGwA?&6&*##(}(F(^mV$K?xn7arH3~3OnN!Jnchnm z(%0w~`aN|Il6BkD0y>P2rw`F8`ZoQ79-`@mvTg@@E*(biq7Ty*^j*4x9-!%$aJ#e@ zy^@Zhv+1*R4gG-bqKBw{sq}Cv9Y}AYlj)OmHT{(Cp}$k#U|F{ty_DWa@1_sZC3GGA znC_#V%VgaU?L)7p#dH##L!Y8=(t5g!{z$dUrJuI+EP5#|qIc8#>0`8-zE8iVhiTvn z9tYZ=-bg3V2k8>JhQ3F4(w}M85b5D`T0pO(ljs8a8hw|3PWRK_Y3`NM!&&qqdLx}o z7t-fxoPJ50Y3fi}_e6RY9Y{yeDfCJD5?xO}rhDkmH0>(srxU%9-aseO$LKTkRr)Ud zl>U|eLNkW39~!3D&{FycT}of2AJLukFg3519=gyA>D9D^-cRS#D!P_#rhlaeXxcU0 z6M7*XL8s8UbR~Ut)>&Xis_tjnL_I0ezW%NE7rRO&cLS zbfy>3>*zi7VH%_F(4F)M%^Jx)r)SU$=rDQ*ok5?ZFVRhOH$6hl8>F9Zv>&~ePNZ|` za=M=Wnf^dMH_Eyv(>`=Cy_McepP;MhX1as!qmEJ1LtA+tah@<+Oy(rcco|^i%o+O}|;z&7=M44YZ6tL0_hI zbSM3p`bNvTr_la%6rD&Pr7P*%bSvFUT}9ky+M5og#dIcpn!ZWDq=#tMEwXNBdM+JI zZ>Ce|WAu6YHvNKrPaU^P4{hk_^ddTnPNa|06||1-qDN`=ZPLS;^io<(XVYbLJ^h4! zM~_mYSk}#>VR}8CNaxaL>1w)_?xnv|vxGg+fpj<>M`zJR^drODR?;`z+iztBCjnY!nKCoL)zZ=r}r+ zK0=q$*XRcNDcwc)(O;;eRJP@%IkX2Yq(yWpT}WS}o9Xw|Gf{eIPkYfpbR@l#K1>(W zwe&N(k2)tw583ooT0pO)x6=x`g8qqqLBFSmX~sR$PelCGrh(9h{N z^auJI%`B5XPoaIG{O2;>&m3H49{Wy@M5Aocq_SXA+atENrDZ1^Yny4j?|!kYeNwa$ z5x*>?N!zE0@O32oCs9+`$;bX5O%gdKpQ_>i4Rx%|oZR(T}N}a?KxyWRV4e#Z(7NoIb=WOdsf^}hwNuYYb5*Ga?E5&*-v!@ zM^8RM%i@yQ&&+!!=O;xE+uEL;Y$mn6VQZ_mwS6@?n6#w4ceRCmliMdn+LYur(-w8J zMg48jwYKPXTXe52nrDliwMDCJ(T7u#kHlBD=)jcZ(*}>9*)eTlBhZz4cR*_v}5}lG|-jqiySlZEfCZeUi?~iPMtztg9^wPfOn3 z)zgxXgp6HvrbpY>n{JC9v#qz%7QJSR-nT`&Y|%kmpXv7|Z@t~U$>*WRy~*z=d~fo5 z7-C!RCfj-wY;BL&+E&`y*4o-O+1ft4H+jr|e{bKUqa-t29W&?jq#WJKt+-Z+O*Do$pvj&Bgq9V(ebO2Ar2 z1{FzWP?2N?6-j1Lkz@uHNoG)yWCj&UW>Ar21{FzWP?2N?6-j1Lkz@uHNoG)yWCj&U zW>Ar21{FzWP?2N?6-j1Lkz@uHNoG)yWCj&UW>Ar21{FzWP?2N?6-j1Lkz@uHNoG)y zWCj&UW>Ar21{FzWP?2N?6-j1Lkz@uHNoG)yWCj&UW>Ar21{FzWP?2N?6-j1Lkz@uH zNoG)yWCj&UW>Ar21{FzWP?2N?6-j1Lkz@uHNoG)yWCj&UW>Ar21{FzWP?2N?6-j1L zkz@uHNoG)yWCj&UW>Ar21{FzWP?2PYmI%4PA(=r%k{MJanIZRhE^tU@Xx|!1W@w3U zU7$aXK2`Mkefdez=eD+=v1e+@Huop5clQ0sZA0%5CM`M6*7oTA?UUMGv9)csMSr(N z*)x;3aE>jy+7^}CqQ`B~tG4J9TXbk<@;l0$l^k`Sm3&;Tn3cRQ<89Hyvy$KY^R~8k zZEZVjThL}F_u0-C^|M8{&raU68MBl3Y=Ldb*KN@!vy=C1pRFz9fj&uR<&+1Kx6scP zjea0`d$S%$-s@$yXq|1nge}q@OkVF~Ta<5$hTEchZPDTfllL=jYuoi;^1J<~ZOIeL zli$NR<;nYUReADy<85tE+S=Z+wS8r4``Om!twzTIqu%Pul{M&tLc^cEYFMJxKBHNznwj-h2 zj)ZPI61we3=;}yd&ve_K>9##%zE)d*E%`m@J8h9;Uea07JI_lxp8DW<$B(>h?><}f zN^688;n+6s_?WL5M@ZR+|Y;9jZmONg( zk0%`${p`n&9~W8g#>bB@iKFD0{dn@|saSBl4NGP|wIDxfhQDfS+hl9oWo!G%)|Rm_ zxzElEll#1IVbXqP4zWcyElk?$e>1Kp*!rAh>+=a)+l#igxNQrc*rKm(+xx-RcEr|} z_C)etTTdkKXFFTlX|}fBPb43SeorJHiOXzlBW!IYwzes@wuf!od&(BQWZU}Nwze&{ zww<=N?`>_r*tYI_GI_5%Kbd?a3Z6_p5?4LhK56ufezI>;WXrpmcR!hYT;|%g@S?3P zZfpCqZR-i!*7w=g``Nah%3w0e9hJ%ZX;vohXNSt;?+gWYHPHhGGFV`8pY6OUTaj1B~|n~+D>b2 zt3#WLwxO+SYuhfgsi+Bi-L19lZ`c6=}l3!FL`9(#NUsNRdMMaWdR3!OD zMUr1sB>6=}l3!FL`9(#NUsNRdMMaWdR3!ODMUr1sB>6=}l3!FL`9(#NUsNRdMMaWd zR3!ODMUr1sB>6=}l3!FL`9(#NUsNRdMMaWdR3!ODMUr1sB>6=}l3!FL`9(#NUsNRd zMMaWdRP^5Bo)YNgh0_HBU$$?AaPg9_-Z`NgizZJr=S($%E&#wn-jT zk>tVNt!tUG);7t5 zDtcteB&|2;#FBzrDZ}n*TSMDP?n*&=T&(eJDqSnY<8r3dtjk+!!s};6Jy_eo~EIR(I`4YCd za8)UpT}6`FRV0~RMUvT7B$-`BlG#-xnO#Ma*;OQ&T}6`FRV0~RMUvT7B$-`BlG#-x znO#Ma*;OQ&T}6`FRV0~RMUvT7B$-`BlG#-xnO#Ma*;OQ&T}6`FRV0~RMUvT7B$-`B zlG#-xnO#Ma*;OQ&T}6`FRV0~RMUvT7B$-`BlG#-xnO#Ma*;OQ&T}6`FRV0~RMUvT7 zB$-`BlG#-xnO#Ma*;OQ&T}6`FRV0~RMUvT7B$-`BlG#-xnO#Ma*;OQ&T}6`FRV0~R zMUvT7B$-`BlG#-xnO#Ma*;OQ&T}6`FRV0~RMUvT7B$>S>Lhj+csEQ=Bt4K1tiX^kE zNHV*MB(o1bo;4hj*)MC2B(q=M8cAlqqBWAtKBP60%&sEI>{qt7NoH4(WcH!0ZIanl zB$@rH);7uPDw51TthG%tyNV>UU)|a!nO#Ma*{^ABlgzFn$?Vs*wn=8ct~HX(t|H0o zDw52uBFXI6x2`9dePnASnf->=NHY74t&wE*QLT|=_DE|anf<2LNHY8A)<`mYOC-5` z-qI7aBDP8N8hTMtgRSjXTU-05lGp3^RPuVa+S(qqwXJ!|OxnVqZBg@6!K60-vg9Ru zElb|suw}{HE48&fX={7a*2@>RsCilP_ROb~x7Y3IkueP?|Y;A30$?N6ElGnR7mb{<$*rJ88f z-uk#_lDEFVw%)pD+9#dAFP`a}6#Zmd&w4g_3kA<6Z{b#3TZOHy=Go+}zxQnNUVm*{ z?-$#8#`5ItoxVJIKQCRLyq_h@k8eS8h-O<{%5p62kjkYnZ zZAZ|iBI`L*8{68J_gpY3>ib-gc4uqbbUT-}Kdz@^AVoI@`A7CALVebkvg9+S+cjMN@3i0$U_k zEUK54FC0HE7)$Q8FFbIpO`^INPSx%?e#Ur@r=rcaw$E+RUs|K%=eA|N5 z=T=2>ZdD}bRz-4dRV3$DMRIOcB5=T=2>ZdD}bRz-4dRV3$DMRIOcB5=T=2>ZdD}bRz-4dRV3$DMRIOcB5=T=4jn&c%r)dZ8;MODdAFt0Eb@Dw46QA{o0XlCi5I8M`Wy zv8y5(yDE~gt0Eb@Dw46QA{o0XlCi5I8M`Wyv8y5(yDE~gt0Eb@Dw46QA{o0XlCi5I z8M`Wyv8y5(yDE~gt0Eb@Dw46QA{o0XlCi5I8M`Wyv8y5(yDE~gt0Eb@Dw46QA{o0X zlCi5I8M`WyvD*@1v^pf4sz|cwtm9*s_f;yAv8y5(yDE~gt0Eb@Dw46=5+S$h_q}w2 zHoJA~u6!v!Df;9kGb#GX7PWmjdA*BXPG0hMTQu+GK1sc-wXL_?7PWaLxzF=nN$> zTNJfL&)cHUY|*c_sB3NV7A~$$ez&7*lehPidxThj&$2O(rxERx1A&1c8+x0Inr(CNVlCM z-FA+2+d0y0=Sa7mBi(k6blW-7ZRbe0og>|Lj&$2O(rxERx1A&1c8>Tx9d*oX=ZLwr zwT<@{Dw5A|70G9ZisZ9HMfRB^-|AFt@~uu4J!>0v^7)|J7*%BSUnwi)7i6GzpR*@VD70HoMksJvX$&pZz90?W4 zkx-Ew2^GnaP>~!770HoMksJvX$=Pg)@ZKGABvd5-()9T8BjJ!Ep&~gFDv~3CD8z;T zosN)0J6d+E75`tr(B%J>B^{bM-3U3gAarSMr)%h~rKVF-`MA0#d1Hk04H`dF!kbQO@dtWI3KelfzqtSsQux*Bk5v51X zP>R+UWw+K7BTB=6|H?A|JC>B~ZeL?!w12(EKF*Kt)&HzD1%Ll81^kAj+-zlZ$N|=v5 z@n}o%@@g??(17+F$~mmhr6KJF)O6Bbfn8YBO586vxhjPC54lLl3VQnMI1GG(W zkhTR5=DI_;{4g#voaK?+VuZ^SX`f-qVz!RqR>rej%5oWdn8unYmz>45%DMG9+~;}R zhXt&uoSFwkcT(^eH)N(&pv3@Pf>$z8PZ3mXG<1(ALmCbD3%5np@wVgfh zpb0LyhchNPDOd1qZ?encU0*(6Xm6jb70JI zKCE)cxLWB5qg>+{2x}dez*XGawcOA3+~+vUbu4dUc{APWxB|;JIEKOPj_cqK$Bi)I z7!CJ0ieaN;EZpyy01rCufz6I-@UY`Pc+~L#)SM5)6z4qXaV~^j=VE9$pN0Wv70hu~ z!(8XfFyxeNb#lHAyExavZcZ6dJy_Gr`8I0uof}|*^8*-mZiWM#pTa@TZE&#jFK~!6 z0f#xig~OfS!;#JdFyd^6Mb2MgvGbpBjML@xXyct8SnAA#WljrD<94IYHYm?>=E8D1 z$JqhpdCpVd0%uoP>FfcQI?skN=XtQoc_Ccs8~|&ag|OCnIb7wu3a)hyhwGg;z_{~f zSm(SAZgP%+o1J&Tt_&UIno#aV z^IbopT;TdU47(1)0j}TRAeYmHD@FDyKSi=iL5l2EI7PC`fE39pgHj})3{H_f9Fj5veGcPRhI8GKG{Tx9TFja; z>~lQ(EM=c%>~k9XjIz&J?6W*Yvd|o^JCExwpq1=lDa$dItLVy2lpY7B6)I8isZ@06v>nOQzSDV#-^?n<;8ZaKCA_fsh6xFu)ix}QZk>&UdeY1@5-5=kFu<#a{Q;tyzr#Ty53Y- z*GQGo8%ULroWo^uSs&suomk(6%XCYX5#A$JMtHAO8R7YSUCMu{=CgM#acfnOTw4>8LN_^2JT>CbqINwH(%@J_2h~AA_q>pM-1K^Lq9cXFqkU*~C5EoXY&e zng;IY_SB_VYe(ucFu}F^V; zr@3J`EgcR>%YuW_0&s9zTR0@GJsg(S5e`r50!OBu4kKx2!J@R@usBV|#+bAMl*gy_ zg{5g1!Ll?to72)RMLC)_1kOs6F;kv)HOh0+u7~r|M!^N_p^~jjX)H~~SXG*gtCh5d z^|f4b6!e6mnLIlQ<@z4&1ofQ-O7DvNRuPKJ?&1^>`0TjnMh;) zPrDm6jcH|Yf7-q9V494&=Cu1!KAiR-JjyL*Lm%3hWYkL2foN9IM2M~*`- z%ORFKvE0QY@4A~uazzi%6Ii#GM>1HxX9>y$o)`>!o`VBCFTg<_dGCWglCOq%$Ok)Fby7vph1_$~}^G z=Xm5e%=4^5>jExW=~;*JQjcWgm`6S%syuRyy3)h(?~$BY>yab8$|D(atw*xudXMDi zxJTw@okueECeJ(QXS0Xn-?I_r29IRX?H3)x7_=6tF zpUs}nP=DAX+5V_U@~x&zwolQ&K)pwoeD2jHZyP%Ezb<(`N0(25TwOi|LOS!mE}tn~ zba{{6^c}DV?WO+}<$QfFEYSDCuznB@(0_u1^doSv{yQ9^r=;Te>pC2+``}0#(fueF z={c}iZwJTdC&TgjsjyV<2Fvs_;WYgm7}d{*v-B`5*9XEm`Xz9leg#~h4}+EZb#SSE zBaG>zVU=DCSL$P7jXnX^>i57^`ZTy!zYnh0AAoWFVOXcngPZh)aI?M`Zq=WL4SE&a zPIu_lC@1J1{biIJ_1EEkeJwnwzYUx94e+r30X(X2hFbckFeQB(^rZg+8TOg|gtNcwrODE&fMOvj`TKzV$6AuLV59G0bD1*fGChtc#K;H>nU zVR`y(a8CLdI4}J!xPVrsPeOTVy3FNR`c#yw(xY%?`fOOk`r7n|P+r9)*QU=!d42i< z7*CfxP{(C9vAj85X7Sc^nfncNd-@_Qxg%Y&M1nPYxO^j*-_QDktZ$}=*~3w)Wk?=K z$&d`-VcDA@{TLatl|Y7UC5Po)8p@EXi%u+e;ga3BOb?cOWh}#<&=$B)2zkyW2A)+wWjM3GTxl_SVRK-p~C%m?57O&D{Fo4Eansnjv{o z^U9}5idQ~CJYLBjUa#a6!z+0>;FWBU<6VzE$@NM;33(;Abn?pC>Ee}h*Uc;EsE1dw zcQ5a|STf%$Ij6uY87AzNOg_LXM_`awvdv(xWT7Em$wI@tl6i)E<&2MHpAq&}#GZ>; z9^;jaJ)W(ltSR%#Xqm=kqF%{_v$*wguVnZ+UO86tyzk5L=USCsId@CFa+G3TIeJxI zIRY!aas+C;awKcn=PK^WTCW_d^4Pdq9!<%!4A zOnJ%?%arFERhja9V`Zj1v8lzb_5;@_Avt&x8fOY#8>P2nYB=aFDMv9PB#{4)L7NZ$o8;_DBK ze1l-I?=m>XHx!QdT?iYyX z_!{7L-tk4z^*LObwH?-E?S!>i z-@sK_-@&z6`{DYmLolB8Gpx({2i%mUrQ`T#x#8BVbl8xU1-EAf;Et@eFp#&=-7WOdThP})UFyH(D7MPo1*!&a@ zFt@=$=3n4oGXaN~-@;+$_i(s*0FE@9VZ{6u7McHq#iq-P<8ON4crz20niecG+rVjN zF2tY8gR{(2V7b{9&M|wydFI)0fq5RRG%tip%>giG7Q!m?a=6mG3f7pzVXb)sTxH%2 z*P6G%_2w8DH}8UV<|MeuoC-IaQMlEd4I9jd;C6E^++i+&33CzLV=jY@=5n~-TnP`F zFTrN>HF(&310FTkL(O^@rdaPokM$AsT3exE{TT+VuV9X~3+7sTV908Mova^W7whk^ zn{^oWuzrKREN3Q;zm*0HEH4aOCLCa8!$H=GaIh7ELoE3>one+dw;yiF6Z?^tJh6{h z^2EN#k|*}XmOQZ^W62Zy@s>QXFSR;j-7@^~HXMITp58|-d3ry~lBf6OmOQP}>3z(Sr}tHsJiT9O$TJrRMl_gK_*IM%Qe!V46 z@8gy{y|1(6>HQ{4p5AY^R>G~8JiTwQ&cL2*x8xcA4ojZlCoFk}zsHhi_>Go4!{2Yo zGyH>=Ji~9cR}keI5Sn7|%GXHyUn*T!>^?w3q`5R!l|4TT>|23TF z-whY|8)2pY2e{P#HyHE(0;~K-;Yz>5hvV;;Cor}CRFqfwGvHdk0oVJ3Fz!DA*7;9@ zoBW;NW`7>s>hBI4{5|1ze?Hvd?*kM5esGWfV%X>(4EOu5ga`fCz-Iplc-S9-NBy@z zEpR(b35SFCPO1I9R>n3VNReN<^~>tp}=FXQ{YM1C9o8B3p@jR1fGYz0x!b+ zKrJi?tcKyhn{YtjPjFD64h{~~!y$o>;jqBxaCl%l92wXNBY|&VQQ$jR9M})X1P;OR zfuCV%;2*Fopk?9s2i!0kNQbimS+G11fO7(E;k-b5xFFCGRtCDjrGe97EN~XA3iO66 z0|l@q&==MQE`qB9m%_DyA#i=*Y8Ve(59

;HE$k+#D!@TLX8(hQQr$d!P*N2;2)3 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 SKoEf-0zm|V2>fqH;J*R)(MZVv literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.MessageQueue/obj/Debug/SAF.MessageQueue.dll.incr b/SAF_VS2003/SAF/SAF.MessageQueue/obj/Debug/SAF.MessageQueue.dll.incr new file mode 100644 index 0000000000000000000000000000000000000000..eaeb0a198fac74fa57627fdb2a639806c7c3e857 GIT binary patch literal 2396 zcmc(h&ubGw6vy9g>#tf+5X6JXU@uZ=&{hzwKS-0-1dVA-)gB_UNp|aMb~o;Bl;-3~ zJQM^EB6za}{{oL9xb-4})_74AJb2TC{RhPFo82`D*rVH7UUv4)?Cj^g`Oa(ecFol- z-S)MHm};4gy2xt2CJe_FnGun3tftw}T`@K${OhJC3_J} z3e>8j-vU_$>b0fPSg}oz7Vt)z=A-p{$+v*=`>xW;+RIgiPZzfmY_rJ2Y@}p&qqb8!U`|`e(ag8(U&))^gRSpI1IPCwa!h!~B;BawzP2@Yy<+uFP(GGI>;ouW_ zk6;M1& literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.MessageQueue/obj/Debug/SAF.MessageQueue.pdb b/SAF_VS2003/SAF/SAF.MessageQueue/obj/Debug/SAF.MessageQueue.pdb new file mode 100644 index 0000000000000000000000000000000000000000..37874b196020f64a1acf3ed4dbf52819286f6fb4 GIT binary patch literal 36352 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

|4`uxuS2$tkcy{XSiVvj}{wS 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 SXat;#u;5&5bg|7j3H(1BVVGS2 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.MessageQueue/obj/Debug/SAF.MessageQueue.projdata b/SAF_VS2003/SAF/SAF.MessageQueue/obj/Debug/SAF.MessageQueue.projdata new file mode 100644 index 0000000000000000000000000000000000000000..fbaf85877c151ad7d54d1af3f00e607649345f27 GIT binary patch literal 12680 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 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.MessageQueue/obj/Interop.MQAX200.dll b/SAF_VS2003/SAF/SAF.MessageQueue/obj/Interop.MQAX200.dll new file mode 100644 index 0000000000000000000000000000000000000000..dcdb8445dd871459319ed536b78f8a34de10594e GIT binary patch literal 122880 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

;HE$k+#D!@TLX8(hQQr$d!P*N2;2)3 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 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.TestConsole/AssemblyInfo.cs b/SAF_VS2003/SAF/SAF.TestConsole/AssemblyInfo.cs new file mode 100644 index 0000000..9f89a32 --- /dev/null +++ b/SAF_VS2003/SAF/SAF.TestConsole/AssemblyInfo.cs @@ -0,0 +1,58 @@ +using System.Reflection; +using System.Runtime.CompilerServices; + +// +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +// +[assembly: AssemblyTitle("")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("")] +[assembly: AssemblyCopyright("")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: + +[assembly: AssemblyVersion("1.0.*")] + +// +// In order to sign your assembly you must specify a key to use. Refer to the +// Microsoft .NET Framework documentation for more information on assembly signing. +// +// Use the attributes below to control which key is used for signing. +// +// Notes: +// (*) If no key is specified, the assembly is not signed. +// (*) KeyName refers to a key that has been installed in the Crypto Service +// Provider (CSP) on your machine. KeyFile refers to a file which contains +// a key. +// (*) If the KeyFile and the KeyName values are both specified, the +// following processing occurs: +// (1) If the KeyName can be found in the CSP, that key is used. +// (2) If the KeyName does not exist and the KeyFile does exist, the key +// in the KeyFile is installed into the CSP and used. +// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. +// When specifying the KeyFile, the location of the KeyFile should be +// relative to the project output directory which is +// %Project Directory%\obj\. For example, if your KeyFile is +// located in the project directory, you would specify the AssemblyKeyFile +// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] +// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework +// documentation for more information on this. +// +[assembly: AssemblyDelaySign(false)] +[assembly: AssemblyKeyFile("")] +[assembly: AssemblyKeyName("")] diff --git a/SAF_VS2003/SAF/SAF.TestConsole/Class1.cs b/SAF_VS2003/SAF/SAF.TestConsole/Class1.cs new file mode 100644 index 0000000..0cc2196 --- /dev/null +++ b/SAF_VS2003/SAF/SAF.TestConsole/Class1.cs @@ -0,0 +1,31 @@ +using System; +using SAF.Utility; + +namespace SAF.TestConsole +{ + ///

+ /// Summary description for Class1. + /// + class Class1 + { + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main(string[] args) + { + // + // TODO: Add code to start application here + // + SecurityUtility su = new SecurityUtility(); + try + { + su.Switch("avmin","access","AVANADE-C006T6X"); + } + catch (Exception ex) + { + string x = ex.Message; + } + } + } +} diff --git a/SAF_VS2003/SAF/SAF.TestConsole/SAF.TestConsole.csproj b/SAF_VS2003/SAF/SAF.TestConsole/SAF.TestConsole.csproj new file mode 100644 index 0000000..0fa8264 --- /dev/null +++ b/SAF_VS2003/SAF/SAF.TestConsole/SAF.TestConsole.csproj @@ -0,0 +1,102 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SAF_VS2003/SAF/SAF.TestConsole/SAF.TestConsole.csproj.user b/SAF_VS2003/SAF/SAF.TestConsole/SAF.TestConsole.csproj.user new file mode 100644 index 0000000..e1b802f --- /dev/null +++ b/SAF_VS2003/SAF/SAF.TestConsole/SAF.TestConsole.csproj.user @@ -0,0 +1,48 @@ + + + + + + + + + + + + diff --git a/SAF_VS2003/SAF/SAF.TestConsole/bin/Debug/SAF.TestConsole.exe b/SAF_VS2003/SAF/SAF.TestConsole/bin/Debug/SAF.TestConsole.exe new file mode 100644 index 0000000000000000000000000000000000000000..ebf8a5583b95789df7ae9c4fe942faecd1083d5b GIT binary patch literal 5632 zcmeHLO>7%Q6n<+vNt-lo+VWSGpDhVAt-wlXX!sM@wbL{-e~sPHmPpOonL69pUbDL{ zF(5DqAzC3+Bu;Pv^}>MzNT^hmkRsFr;{SxWP*oL&9uNo#p$bI9_ukr#otV;qDme6Q z=9~9s-psst^XA7H+JB7vL=-@ppC>wroGC1Lc_^Vec-yHUeX#P2jVHCiFE%EoO-Ik$ zR@yeQddkSMNKD~4B3vILV?&82Gd+l$SM?u z^&wkjEGUY*CQ-wEU58XfVWRC-qOf`PD~N65Ci+G+Yar6VBe8YMq77XE>O>2)UE{2V zxy_9>_`Kc9umNCUL7LArw=`L6z^pn$TQrpLP&eK}%_!rcFVVU#jhf1muX8P0Y!Rsv zFKqJ=($_i?gt2%m{_&Qbr^b(FAARGQ-@p0!nNM!Os1$u*A|BbnDU?u-8?|zdl~EH` z^3X&~B@5}rHKF`e63u9P{L$@N*(CPu;qFjZXlrlRy1W#zk zu^&IxHerMxwR7Mbe4AuMZ?QZNwb8wpYXfZ1XjJFw*Jw~|dP}62ZrY9cdo%b>TSL1M zpz8%U0@u@K;kyOz7mNrF2<{f#Cuj(of=>W%r6RD6o-gA?Z8IIA)xIwHk;`>*r~^KE zkotk^1UCq76>JfV3hok&3qCHG5}ZMt^~8io-@$MO?&Yvf!%fiXCRAPDM;*jAGnO=a#k^ zSGI%BmsUgz8Mk29=`3LzQz~oNGj-Zn`J!#6r`@Ghqc)tBs#6iQvUwv{T-pK~`=FUF z*alC2X?09FDcj7~uS}S3wI4j+hhnCY&RLFYrW}%^B5fpV)Dn@zw5^P(h0zQfo1fQp zk85U3w@7i7D%fBy$xoVYYMT0HQ%Y>1v~mv&DaSF=3gOXW&|%7A_vVON4NBoth+rHj zw?$~2A~cK?qdvNuqSS?N8_tn!v=`C#YqZ7Pb^B)nN1y)V?fvh*f1Fl)_|(Ms`ku2# zurIY+f_|N}fUapl2492j(|o=FM`fe#*MdQ=4>mRV*GAU%1^ta{BS?L|#$ba4ZXnJkf}M8& z`7rGO&-78?r;DCF*cgijr+I@shhUq z_0S9M9(=uYA0(!ocq3@y9aq}sU`wXTqBu^%9cYyhD{w`MmmDB_HH0*agtZr&2f?SM z2iD8u)xh3M(=_a^p4)<+w+d5emqk09X2esT?x@%{QtpFSfo-eIl_mBrVU@1TM$h-7 z=+B}lD&W+2t7htr854ij>MZu^-}{u;B!ZbZGOr}8E@EYu+YhEDZ+#tk7)g`3#pXub z)u)oT^GhWHhlG!d0CRJ5D8Ua<{P7P_$$B zIq>zV#KFyh?PWl)%Zl@+a=4b=);}V~T=>WNPH*}82fbzKKkaoq2PNJ23Oc@~a@9Scd;do`w(Y8qbZvnDp$Gm1$&}5* literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.TestConsole/bin/Debug/SAF.TestConsole.pdb b/SAF_VS2003/SAF/SAF.TestConsole/bin/Debug/SAF.TestConsole.pdb new file mode 100644 index 0000000000000000000000000000000000000000..643b837d63d7461a11bc4aea4a366d8c92a10bf0 GIT binary patch literal 11776 zcmeHNTWeEG6rSByO>65hMQg1nIrZLZlA_isLX~)_mw2H)M-V|{+`(X)KzBq7B6$!W z#0L={R1_4!Cx3w;$WadGSw+sX527#Dst@9&@%v`>)NL`KCMZUde)}HH{S!*sk z(PX?Y<75)qKqM4tZ4E@bHwIP)!{NG`ruE$dR3U$227>=H4r)-$Jj*}>SKq(N8ydeF zXtd6Z-_Dz!=Z{vmSsnCaQ(b`7ihLe!U&+V~m8}Ne9N5+Q@1zI*v)$s(j_VcI?rqq5 z@!6C6{f^}R|S|kP~12dO8q7OPyKuSKjX|lk{2q|$j6=rXm2FV zRqWGq2`0o^U>ii72j6R-^xuX`M+37Shpil&^K^Gl;>2C6smP{TNKap(IkPj&`N6V3 z_^ze9Tv@ZrZE!=Sp@E@+p#hH9Ts9}Zdan~p5W%eNWaF8%lS$coYK^WZU%w(45&BHuhhnB7akI?xlmGg-0ymgd0SqpZTirav@)Wn6*aC^LO_$Akk0n? z@7tM4rnBN`y_hfG)8AX}0?;59dt~AEFsZHlbb}tzjT$l#M2Gn4MiS2mo-;u(BJUc+s`f~vWBJN>(( zCLjlN0lc%tSxcU&_#KXU=razaGV#MAWR6-g! zA8fPE-8|Sy|Nl=**R8)#_inj#{N1C$ zvHubp$nR_l?~~R5quKw95w@?EyI=pL-=UA028{GGT$2j<7_(|XIp0Y9pN*mMtAURl CC{WP= literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.TestConsole/bin/Debug/SAF.Utility.dll b/SAF_VS2003/SAF/SAF.TestConsole/bin/Debug/SAF.Utility.dll new file mode 100644 index 0000000000000000000000000000000000000000..9760e7eb09b7afed75d424ef71273eb3955f78e1 GIT binary patch literal 4608 zcmeHKPi!1#75~l5?s_+lO?K^+EveM8oJwwLt?W2eS}4SS)~QYWXYtxe8Z7GB-N}05 z*`4jotep)aN-u>9fl@%I95_@6i5x&ZAQ2%Ii311@m3rX90bvk=8(b?uHNW@GuD!-q zDj^|y;9Jjc-uvF4@4ffEnQy#!<30=kF8k z4y|rFf!XlAs&CcIvQ@8pp;@v`zgah(x|v@tnl-Ot=lc3ioNc=<%mNFVfu&1ZmpZHM zqJOAYO8_T0!<&q+KTR-sP4WWLiq@mJWkTXt;~tUoG9)kHl=?fkw^=2lJNmsM^d!)T z4BC?RZ38$-^1=}C#9_&!ITJ{BX(Y+db@92-z8#YPR*FEG%C#LgIW_jR^69-~w!FN6L?ielbriq6UUFK~UPknUc+H(EVy_``HF@)&g^ zUl~0LC#e?fOAW-HK{`f1I{MrB>w{mC1@w`R%L>tCr(dOJY+)3Jcro^sV!k-|&3_JT zEMxjdOZvs1|M9!u%Thk`$@SvYWw~-|q2oGXYuzi|TF=|1X0>}Z*Qk_ah3VpFr?vJj z$ewPG=f-jq7ss9zA>wd}zv1G;ce(jo_ba@Hi=pq-tAS|ziqFj?@55_FBv}k;h2a<1 z=JUK~$=?@#+V#|8q?w?0?X*59?TEi?6VeQv1B?-%oz?`;DV$aK1%*2bzoGDl3V*5a_Xs>68zGSSB&KqlZOX;NH8>4uDyT&U>Dg7Kf;Z@`?pzw^s35B0h zIHT~2!lJ^@D=aJA!k78BsB$-MVFfkp;H&yyb?`h`WEG&ragBAjto5KmK6X!P11!e( zuJgt*#Y<-X)P5ss_=HT$cwy12G+p~M=z8RG71u>AD0{x^lu&F1p6Tp%QMAiV zpO0nx>FhScf>-tGYk}?KMLS%uf^gRNJs!(cD?N{*Kw39@L?=F4a>zf zr(W@Pg85p*_5-hOg^pLB@#^XbaE_ZS?l@t26KgbUlN}coyB;!1OU2HDdJCSvhAxM9qvA<>%2lFX}K5j569Q3Q*>9kIB?>{cH zx68JwuWD9AClI(Td@j^;IJ5wdPq>FVOf-24*u39_1&3!C(*w?!qz-fr$?$$*Zv6@L zExk20^1Hv(b{`=5lRN8IAHT5s`UxcT{{H@C@>G&ALVqfvld$#!O^VCwqF5nUtQ*^zlzmB=v+&Uwv`NDyg1$QbgqC zeS-wg5k+jazn^6CuF$4XM@Q#73wU|P^Vubfvg_(yWZSAU#Afd)+VivMe>LQsA`5c z9ShaTTjab?Nu3>f)Kfv}j4|)%cL61-0sjx+5rrB0tMO;kI^-%)TYt7o)==xWn60Js zWNnkzsM6`Im#2pSWfe!`P@JMW$uBN#KensX^{IW3%Q(;8F<#@Cz_YkW>O6lJ`E@Ws zYq38?d#O&SZ0n50?TV<#GxRd8*3`-_J%`}w!spWE4;WFgF3`5BEG6p(HKb})Y*M>B zrvtsH`W4#MXy;=~RVdP(Q!y>KeMt2srcOPCld6Ip^XS;3S{LZYW4uk)Fzm`KS}U*W zcUb4&tN39xoKrrgn1Q^#YU~1+6)@R>hj-({{4k}D-Y}#88Sg*;(F^VW5&ico@GoNC Bv1R}O literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.TestConsole/bin/Debug/SAF.Utility.pdb b/SAF_VS2003/SAF/SAF.TestConsole/bin/Debug/SAF.Utility.pdb new file mode 100644 index 0000000000000000000000000000000000000000..dfc61bd5bb6dbfcf18dd2b1921e0b17b845d3e1f GIT binary patch literal 13824 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 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.TestConsole/obj/Debug/SAF.TestConsole.exe.incr b/SAF_VS2003/SAF/SAF.TestConsole/obj/Debug/SAF.TestConsole.exe.incr new file mode 100644 index 0000000000000000000000000000000000000000..fcf36d819e81b3c2cc1f6293b2617c83eadbd85c GIT binary patch literal 1262 zcmcgrO-mb56g^REv2Mg)@SxzT87yrPO)2Qa$cWm|R4kH(Gs#RlaX!k-vwnc$4{+hW z%Whot4|LZo3We;t@81wzwC7GTApr%us4v{yxo6&c=j7ZQD{3Te=tkNO)Y6_GG*#Kw zw({acnU9qjhadgGO;oX{^anpx9xIjVIB`?el#M!8Ze%+|Jv-GZaUHoNH6FqGa@u|f zV1glQgdz1Lql{%NVG}DT;Vs@^5hjtF)`K3%(<5@j(7O71T$}!0SQzc1b4(@{P{$T5 zY>?$OpK7ev;iG{BF;a#H4TJBO$z4Z65hMQg1nIrZLZlA_isLX~)_mw2H)M-V|{+`(X)KzBq7B6$!W z#0L={R1_4!Cx3w;$WadGSw+sX527#Dst@9&@%v`>)NL`KCMZUde)}HH{S!*sk z(PX?Y<75)qKqM4tZ4E@bHwIP)!{NG`ruE$dR3U$227>=H4r)-$Jj*}>SKq(N8ydeF zXtd6Z-_Dz!=Z{vmSsnCaQ(b`7ihLe!U&+V~m8}Ne9N5+Q@1zI*v)$s(j_VcI?rqq5 z@!6C6{f^}R|S|kP~12dO8q7OPyKuSKjX|lk{2q|$j6=rXm2FV zRqWGq2`0o^U>ii72j6R-^xuX`M+37Shpil&^K^Gl;>2C6smP{TNKap(IkPj&`N6V3 z_^ze9Tv@ZrZE!=Sp@E@+p#hH9Ts9}Zdan~p5W%eNWaF8%lS$coYK^WZU%w(45&BHuhhnB7akI?xlmGg-0ymgd0SqpZTirav@)Wn6*aC^LO_$Akk0n? z@7tM4rnBN`y_hfG)8AX}0?;59dt~AEFsZHlbb}tzjT$l#M2Gn4MiS2mo-;u(BJUc+s`f~vWBJN>(( zCLjlN0lc%tSxcU&_#KXU=razaGV#MAWR6-g! zA8fPE-8|Sy|Nl=**R8)#_inj#{N1C$ zvHubp$nR_l?~~R5quKw95w@?EyI=pL-=UA028{GGT$2j<7_(|XIp0Y9pN*mMtAURl CC{WP= literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.TestConsole/obj/Debug/SAF.TestConsole.projdata b/SAF_VS2003/SAF/SAF.TestConsole/obj/Debug/SAF.TestConsole.projdata new file mode 100644 index 0000000000000000000000000000000000000000..ab6221fd457820c926f896ce2e6f10aea78525c9 GIT binary patch literal 1672 zcmeH{%}N4c6o%ia1|&!dDkumBX;EQHTM@y6AgB;>)ekh8k)S4yEovbxTXX}_#`|dL zw(calf}ox=qqZriW#p0L`T5Sz_Z{Xv_j8l65kX^8&M`%Lhh9zLU{;6P(1q%1sT}?X zcqCU*uxmk3oT#dN1^m{q*ReB1?kTU$flR4Lm4I4N&49{PJl5kgJEamalGn@rE=$_| zWtV(-zp`pNq2HCZc+nYm=yx2YYXW|OZ{2VJ+D4Bto%y~W-6n(?lEn>aIDx-Cfg7%G zxHdG~*FA$Ygs;GD81l@{z!BmjY4-8s!@l3{Ivw;v@~-fF-E}P1*bwz2BKVC!Lz(q| zvLqUfYlp2;0jJXRKwn~K9Oy{PcwMbJ&O%%rWpxUcOUh}2yewG11nD*Mn_xZi7IjXp z7kaI#hh@9XB0M$7H*X8w_Cgcc>Sg$xHrN^!I{0`ioY&bLQLpru-Lgs#?i9_#W;exT T7Ljo{35VoF?@wU-$M=5#K5327 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.Transaction/AssemblyInfo.cs b/SAF_VS2003/SAF/SAF.Transaction/AssemblyInfo.cs new file mode 100644 index 0000000..76c8358 --- /dev/null +++ b/SAF_VS2003/SAF/SAF.Transaction/AssemblyInfo.cs @@ -0,0 +1,58 @@ +using System.Reflection; +using System.Runtime.CompilerServices; + +// +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +// +[assembly: AssemblyTitle("")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("")] +[assembly: AssemblyCopyright("")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: + +[assembly: AssemblyVersion("1.0.0.0")] + +// +// In order to sign your assembly you must specify a key to use. Refer to the +// Microsoft .NET Framework documentation for more information on assembly signing. +// +// Use the attributes below to control which key is used for signing. +// +// Notes: +// (*) If no key is specified, the assembly is not signed. +// (*) KeyName refers to a key that has been installed in the Crypto Service +// Provider (CSP) on your machine. KeyFile refers to a file which contains +// a key. +// (*) If the KeyFile and the KeyName values are both specified, the +// following processing occurs: +// (1) If the KeyName can be found in the CSP, that key is used. +// (2) If the KeyName does not exist and the KeyFile does exist, the key +// in the KeyFile is installed into the CSP and used. +// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. +// When specifying the KeyFile, the location of the KeyFile should be +// relative to the project output directory which is +// %Project Directory%\obj\. For example, if your KeyFile is +// located in the project directory, you would specify the AssemblyKeyFile +// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] +// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework +// documentation for more information on this. +// +[assembly: AssemblyDelaySign(false)] +[assembly: AssemblyKeyFile("..\\..\\..\\SAF.snk")] +[assembly: AssemblyKeyName("")] diff --git a/SAF_VS2003/SAF/SAF.Transaction/Class1.cs b/SAF_VS2003/SAF/SAF.Transaction/Class1.cs new file mode 100644 index 0000000..1ad8e50 --- /dev/null +++ b/SAF_VS2003/SAF/SAF.Transaction/Class1.cs @@ -0,0 +1,17 @@ +using System; + +namespace SAF.Transaction +{ + /// + /// Summary description for Class1. + /// + public class Class1 + { + public Class1() + { + // + // TODO: Add constructor logic here + // + } + } +} diff --git a/SAF_VS2003/SAF/SAF.Transaction/SAF.Transaction.csproj b/SAF_VS2003/SAF/SAF.Transaction/SAF.Transaction.csproj new file mode 100644 index 0000000..4451a43 --- /dev/null +++ b/SAF_VS2003/SAF/SAF.Transaction/SAF.Transaction.csproj @@ -0,0 +1,105 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SAF_VS2003/SAF/SAF.Transaction/SAF.Transaction.csproj.user b/SAF_VS2003/SAF/SAF.Transaction/SAF.Transaction.csproj.user new file mode 100644 index 0000000..686cccb --- /dev/null +++ b/SAF_VS2003/SAF/SAF.Transaction/SAF.Transaction.csproj.user @@ -0,0 +1,48 @@ + + + + + + + + + + + + diff --git a/SAF_VS2003/SAF/SAF.Transaction/TransactionManager.cs b/SAF_VS2003/SAF/SAF.Transaction/TransactionManager.cs new file mode 100644 index 0000000..80ecfc3 --- /dev/null +++ b/SAF_VS2003/SAF/SAF.Transaction/TransactionManager.cs @@ -0,0 +1,240 @@ +using System; +using System.EnterpriseServices; +using System.Runtime.InteropServices; +using System.Reflection; + + +[assembly: ApplicationActivation(ActivationOption.Library)] +[assembly: ApplicationID("77769CB1-A707-11D0-989D-00C04FD444E4")] +[assembly: ApplicationName("SAF.Transaction")] +namespace SAF.Transaction +{ + /// + /// Interface each transaction controller must implement. + /// + public interface ITransactionController + { + object ExecuteMethod(object o, string method, params object[] p); + void Rollback(); + void Commit(); + } + + /// + /// TransactionControllerBase is the base class for serviced components in SAF.Transaction. + /// It provides a way to execute business method as part of the transaction context and abilities + /// to commit and rollback transactions. + /// + public abstract class TransactionControllerBase : System.EnterpriseServices.ServicedComponent,ITransactionController + { + + public virtual object ExecuteMethod(object o, string method, params object[] p ) + { + try + { + //use the reflection to invoke the business method within the current transaction scope. + return o.GetType().InvokeMember(method,BindingFlags.InvokeMethod,null,o,p); + } + catch (Exception ex) + { + //if exception occurs, mark the current transaction as such so that we can + //rollback the transaction later. + if (ContextUtil.IsInTransaction) + { + ContextUtil.DisableCommit(); + } + //rethow the exception to notify the caller. + throw ex; + } + } + + /// + /// Rollback method set abort the current transaction. + /// + public virtual void Rollback() + { + //if it is part of a transaction, abort it. + if (ContextUtil.IsInTransaction) + { + ContextUtil.SetAbort(); + } + } + + /// + /// Commit method commit the current transaction if all the transaction vode + /// are good. + /// + public virtual void Commit() + { + //check if it is in a transaction + if (ContextUtil.IsInTransaction) + { + //check if the transaction vote is good. if so, set complete on the transaction + //otherwise, abort the transaction. + if (ContextUtil.MyTransactionVote == TransactionVote.Commit) + { + ContextUtil.SetComplete(); + } + else + { + ContextUtil.SetAbort(); + } + } + } + } + + + /// + /// Provide the Manager class that + /// clients interact when creating different type of transaction compnent. + /// + public class TransactionManager + { + /// + /// Return a new serviced component that supports transaction + /// + /// SupportTransaction object + public static ITransactionController GetSupportTransactionController() + { + return new SupportTransaction(); + } + + /// + /// Return a new service component that require transaction + /// + /// RequireTransaction object + public static ITransactionController GetRequireTransactionController() + { + return new RequireTransaction(); + } + + /// + /// Return a new service component that require new transaction + /// + /// RequireNewTransaction object + public static ITransactionController GetRequireNewTransactionController() + { + return new RequireNewTransaction(); + } + + /// + /// Return a new service component with no transaction + /// + /// NoTransaction object + public static ITransactionController GetNoTransactionController() + { + return new NoTransaction(); + } + + /// + /// Helper method that will rollback array of ITransactionController objects + /// + /// ITransactionController array + public static void Rollback(params ITransactionController[] txControllers) + { + foreach (ITransactionController txController in txControllers) + { + if (txController != null) + { + txController.Rollback(); + } + + } + } + + /// + /// Helper method that will commit array of ITransactionController objects + /// + /// ITransactionController array + public static void Commit(params ITransactionController[] txControllers) + { + foreach (ITransactionController txController in txControllers) + { + if (txController != null) + { + txController.Commit(); + } + + } + } + + + /// + /// Release the resource held by the serviced components + /// + /// ITransactionController array + public static void DisposeAll(params object[] txControllers) + { + foreach (object txController in txControllers) + { + if (txController != null) + { + try + { + //check is txController is a service compnen. + if (txController is System.EnterpriseServices.ServicedComponent) + { + //destory the serviced component + ((ServicedComponent)txController).Dispose(); + } + } + catch (Exception ex){} + } + } + } + } + + /// + /// Transaction controller that supports transaction. + /// + [ProgId("SupportTransaction")] + [Guid("E42F5FFF-823B-4F20-AE80-B13A3C991112")] + [Transaction(System.EnterpriseServices.TransactionOption.Supported)] + public class SupportTransaction : TransactionControllerBase + { + public SupportTransaction() + { + } + } + + + /// + /// Transaction controller that requires transaction + /// + [ProgId("RequireTransaction")] + [Guid("E42F5FFF-823B-4F20-AE80-B13A3C991113")] + [Transaction(System.EnterpriseServices.TransactionOption.Required)] + public class RequireTransaction : TransactionControllerBase + { + public RequireTransaction() + { + } + + + } + + /// + /// Transaction controller that requires new transaction + /// + [ProgId("RequireNewTransaction")] + [Guid("E42F5FFF-823B-4F20-AE80-B13A3C991114")] + [Transaction(System.EnterpriseServices.TransactionOption.RequiresNew,Isolation=TransactionIsolationLevel.ReadCommitted)] + public class RequireNewTransaction : TransactionControllerBase + { + public RequireNewTransaction() + { + } + } + + /// + /// Transaction controller that doesn't support transaction + /// + [ProgId("NoTransaction")] + [Guid("E42F5FFF-823B-4F20-AE80-B13A3C991115")] + [Transaction(System.EnterpriseServices.TransactionOption.NotSupported)] + public class NoTransaction : TransactionControllerBase + { + public NoTransaction() + { + } + } +} diff --git a/SAF_VS2003/SAF/SAF.Transaction/bin/Debug/SAF.Transaction.dll b/SAF_VS2003/SAF/SAF.Transaction/bin/Debug/SAF.Transaction.dll new file mode 100644 index 0000000000000000000000000000000000000000..4ddfd7297a5c3a1a16d0c65a740e99dd4f4f5450 GIT binary patch literal 20480 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 f222J_222J_222J_222J_222J_222M2FB$kZuwIcA literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.Transaction/bin/Debug/SAF.Transaction.pdb b/SAF_VS2003/SAF/SAF.Transaction/bin/Debug/SAF.Transaction.pdb new file mode 100644 index 0000000000000000000000000000000000000000..ef513569a150e975df9f2a4d69329b76e9546244 GIT binary patch literal 19968 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 f222J_222J_222J_222J_222J_222M2FB$kZuwIcA literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.Transaction/obj/Debug/SAF.Transaction.dll.incr b/SAF_VS2003/SAF/SAF.Transaction/obj/Debug/SAF.Transaction.dll.incr new file mode 100644 index 0000000000000000000000000000000000000000..ca6f6625b5f5a77a8ffe802ed392bff04d531d08 GIT binary patch literal 1550 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 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.Transaction/obj/Debug/SAF.Transaction.projdata1 b/SAF_VS2003/SAF/SAF.Transaction/obj/Debug/SAF.Transaction.projdata1 new file mode 100644 index 0000000000000000000000000000000000000000..dce0c222d96b8cd23fed3c22d3f6cc72cc634b59 GIT binary patch literal 5512 zcmeI0&r4KM6vxkGPLr8MnN*Bm1!1Kk5iX>Kni)w(sI)Kxf0SiZmSevpVrn%+L`a+V zEhAcntDtDzB3id;-yaav=X>9M+SI)1jcFNqhV#yO=iPhGx%ZxX&Yk;Y+s4!?16G?2 zm5DL?3S=b&Yi!UC*@RuTDLd<)86;-qmQYiu>kSP$mrIe8mwTG@bd9GePuF@{;psY0 zD?MHBX_cc5){FhCcFo3Z67D#7!}{Te@hZb}6c5Lpr)C5A+=`!l)^1&Mv?-$fV1&HK z=^nOo*qXE^EM)Md&TEa*W|qdgi3pu$yCc5jTT{FI5l4-+$&N;74A*TEZ!YrFD9jF& z(7J;e$k0#T^fC8W_)VZ?Dnf@b^3rC$9sRO!$wu(-7Gt?=W7r61djqyFfJ0zzli6PA zD?%+tSlxp^38t#ec0%8RIl^urhn{5x}gs7snk`PY8x55vBDMC;)qcTQ!M8+tkDu?;0!Wt8a=2{mxHP*>_CgUouDrCE> z;YPkGBv-ZzwIl;AY2|6Q5NEiA%|bgt!5c7?B{iMEF{or!ba?D#Tj9fYC!`2?;ANko zPrdAmm$k5GtHUH8G>`qv((($Z+N%BE29@)1&m9|WmpcLKbP}vrkgYWoxtXN;9E2*r z6oM>5+1FVh-+umni8_TXhW+czfF#k|NnITpZv*woLy%YrxO0^{Gs|k?d|`q`hU;c{~PuH8Maw+ zSO0?BL(Z6-3v|b@!yh7aSHP=-_x@Y>u5aousDM$w@4xXE(}CLT=ka3p`JJJ=uM_I` hsCE3)D7@}3bmOSoN8Lo~R. For example, if your KeyFile is +// located in the project directory, you would specify the AssemblyKeyFile +// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] +// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework +// documentation for more information on this. +// +[assembly: AssemblyDelaySign(false)] +[assembly: AssemblyKeyFile("")] +[assembly: AssemblyKeyName("")] diff --git a/SAF_VS2003/SAF/SAF.Utility/Class1.cs b/SAF_VS2003/SAF/SAF.Utility/Class1.cs new file mode 100644 index 0000000..28c221b --- /dev/null +++ b/SAF_VS2003/SAF/SAF.Utility/Class1.cs @@ -0,0 +1,143 @@ +using System; +using System.Runtime.InteropServices; +using System.Security; +using System.Security.Principal; + +namespace SAF.Utility +{ + /// + /// SecurityUtility provide features such as check if certain window user logon is valid + /// and switch the current thread's security context to different user account. + /// + public class SecurityUtility + { + //declare for p/invoke + [DllImport(@"advapi32.dll")] + public static extern bool LogonUser(String lpszUsername, String lpszDomain, String lpszPassword, + int dwLogonType, int dwLogonProvider, out System.IntPtr phToken); + + [DllImport(@"Kernel32.dll")] + public static extern int GetLastError(); + + [DllImport(@"advapi32.dll", CharSet=System.Runtime.InteropServices.CharSet.Auto, SetLastError=true)] + public extern static bool DuplicateToken(IntPtr hToken, + int impersonationLevel, + ref IntPtr hNewToken); + + private const int LOGON32_LOGON_INTERACTIVE = 2; + private const int LOGON32_PROVIDER_DEFAULT = 0; + private const int SecurityImpersonation = 2; + private WindowsImpersonationContext impersonationContext = null; + + /// + /// This method change the thread's runing-as to the new user account + /// + /// the user account to switch to + public void Switch (string userName, string password, string domain) + { + IntPtr token = IntPtr.Zero; + WindowsImpersonationContext impersonationContext = null; + + //log on as the give user account + bool loggedOn = LogonUser( + // User name. + userName, + // Computer or domain name. + domain, + password, + LOGON32_LOGON_INTERACTIVE, + LOGON32_PROVIDER_DEFAULT, + // The user token for the specified user is returned here. + out token); + + if (loggedOn == false) + { + throw new System.Security.SecurityException(userName + " logon failed" ); + } + IntPtr tokenDuplicate = IntPtr.Zero; + WindowsIdentity tempWindowsIdentity =null; + //duplicate the security token + if(DuplicateToken(token, SecurityImpersonation, ref tokenDuplicate) != false) + { + tempWindowsIdentity = new WindowsIdentity(tokenDuplicate); + //change the current thread's run-as to the new window identity. + impersonationContext = tempWindowsIdentity.Impersonate(); + } + else + { + throw new System.Security.SecurityException("Logon use failed"); + } + } + /// + /// this method reverse the thread's run-as to the original user account + /// + public void UndoSwitch() + { + impersonationContext.Undo(); + } + + /// + /// Return WindowsIdentity object that represents the user with provided + /// username/password/domain combination. + /// + /// user name + /// user password + /// domain or computer name if using local security + /// + public WindowsIdentity LogonUser(string userName, string password, string domain) + { + IntPtr token = IntPtr.Zero; + bool loggedOn = LogonUser( + // User name. + userName, + // Computer or domain name. + domain, + password, + LOGON32_LOGON_INTERACTIVE, + LOGON32_PROVIDER_DEFAULT, + // The user token for the specified user is returned here. + out token); + + if (loggedOn == false) + { + throw new System.Security.SecurityException(userName + " logon failed" ); + } + //create an WindowIdentity object from the newly created token. + WindowsIdentity newID = new WindowsIdentity(token); + return newID; + } + + /// + /// Check if username/password/domain combination represent + /// an valid user logon. + /// + /// + /// + /// + public void ValidateUser(string userName, string password, string domain) + { + IntPtr token = IntPtr.Zero; + bool loggedOn = LogonUser( + // User name. + userName, + // Computer or domain name. + domain, + // Password. + password, + // LOGON32_LOGON_INTERACTIVE . + LOGON32_LOGON_INTERACTIVE, + // Logon provider = LOGON32_PROVIDER_DEFAULT. + LOGON32_PROVIDER_DEFAULT, + // The user token for the specified user is returned here. + out token); + + if (loggedOn == false) + { + throw new System.Security.SecurityException(userName + " logon failed" ); + } + } + + + + } +} diff --git a/SAF_VS2003/SAF/SAF.Utility/SAF.Utility.csproj b/SAF_VS2003/SAF/SAF.Utility/SAF.Utility.csproj new file mode 100644 index 0000000..d53884f --- /dev/null +++ b/SAF_VS2003/SAF/SAF.Utility/SAF.Utility.csproj @@ -0,0 +1,100 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/SAF_VS2003/SAF/SAF.Utility/SAF.Utility.csproj.user b/SAF_VS2003/SAF/SAF.Utility/SAF.Utility.csproj.user new file mode 100644 index 0000000..686cccb --- /dev/null +++ b/SAF_VS2003/SAF/SAF.Utility/SAF.Utility.csproj.user @@ -0,0 +1,48 @@ + + + + + + + + + + + + diff --git a/SAF_VS2003/SAF/SAF.Utility/bin/Debug/SAF.Utility.dll b/SAF_VS2003/SAF/SAF.Utility/bin/Debug/SAF.Utility.dll new file mode 100644 index 0000000000000000000000000000000000000000..2f7665fad1be33b326afe3c5a4b25f15306d4945 GIT binary patch literal 16384 zcmeHN-)|g89slm``Fyr>u6;J`g{JD71mvdW@UNz%6u67ePOf(Bi|_1)CaS%6w>fXU zw|m{)vwHy|g9>dQKvaTAke8Icz(YlaDmAL;KY$bjg7&Er?L!d~5+D#SK_YzSyLZkx zw$cg-6^WVCeD?dD`F>}<^O@P5owZLt`90EzD1vMt^wY zTbXum?@|9qpAsb+K#3lfI!9Y_n)N|0N4-JNuuDArLQgMO+*PX*?)0ra33fI5z`6*n|aI=W4HzE_6E zv85ph8y&eLr4fC~Gi?`!B34>M7ItIE9Vtz8qC=IUWI!??8ITM}1|$QL0m*=5Kr$d1 zkPQ4EF_0JMY9w(sRgvGtIX8=gt0D^jgETZ2rE~Cu|KKH@L3?|L`?Rh|^6mtUqAYqK z_Sr$rgH#_KM6I6yTx7%e@K7Y0OlYGxg-0Js^!P)l8j1`?++hfP5B7QY!7Fq)N<(8x zc-BQ<>Q`~hkGP+J*-_E|6w2`Rpw)k8?|t3-^d9A&4#eUQQV;u&!oT~Y`@=`2e)x!_ z4u4$)qmJG!q6y2|-!=rltH@s)LB{Bp3faQjKfdv&V{iZF#LsIly;;6%>mT=^KKtnT zLS}Zg;5NLnIgJk{tgaL$#>OUvC~|5!uxu-6o_9-6pU;}5MzymvRj-tA*e^VOLTSyU z_%5(Ho*GY0O-@WeCh8&^m;~F0FA+V5>$^fO1fJzoePOW%64JOHUM|p8$l{a2;gid` zEUvFX|Gv;q*e<%_gjrRdxKADK5!wx9QYjd!QA)VbHeJ>) z(><_iYgg%0Jkqf4Rr(CHye?|LP2I`_ysx#ie&smD>DMjoGJO%+z({EM04xV68*0g8 zu*7YGUj7WORr)7TqbQ<|&=9bT?$=a|=W~z|FHohkK#exIq`@VZxa9edR5C)xlo@(} zaUA$K9cMYim}5M{_!UNj(PDgtvB~%i;3B=q@=L(u^h5fAwoEV6%i3A`DVHAvK1B!V zms*(y=^gDj^{{0Oql;rD#VCP%0CEcJ=y~7}X9xw}{_b?6`Nflq3zHM8 zd|k~g6laz))5YA%%uY>yX>lc&ompDV&dg?(=Zibd(}(+VurjwqGKlc8+Y4V#{@oQk{U?`m|~b@-d6)!9?K zu&`wXWpE6)me_8hVmbkaODl$LRnRp@l`01aCnP4dWL~hrjEFnq`(~|VH|Naef>ARw z0UlPRMqqYU%v$z76=Gn5z4AZT}Zt^4#?|*lbVsBhL zzjAQuy%*JJEP_Wlo^wdO6jl5C`(v>Iv02BuNmG+TjwX7dx~8B?(@E*pwL~0pL{}6B zwM$nORaK+OE)xEtA{o&s(bLo2l}z-g$wXX@s%R!2>y9MVL_86XbgN0VOFYXciX9HZ zsn$D;D0)iBx{&s!_Io7WaHd@k>*TbUcYem1Ca(?QbMw>i$D5B#k^#wpWI!_Tzr}z! z-{4Frjwrj5IPLJCllPPhGx6=TOa&Asvgj_u*~%Um1ofMO@?Oj#%jS~c*#KHJ)HbJ&3|V8<2d2=ALk)EX%D zu_GH4z)tMaVR|hRpiu=e1+cPEUfrjqJll-n&*1+O{jO^GZfmM;+Pg&Z3y;7OzklWO|VLsojb=C za-ByzF5+!~!=PhiVP9G1Z@10uEPfb=r?`y_Mj+neYFGs}7|^i-chAO$wSytaBpHwl zNCqSWk^#wpWI!??8ITM}20lIp^zeVi>yLhXA;_L31CjyBfMh^2AQ_MhNCqSWk^#wp NWI!??8Tjuq@NXen+adq} literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.Utility/bin/Debug/SAF.Utility.pdb b/SAF_VS2003/SAF/SAF.Utility/bin/Debug/SAF.Utility.pdb new file mode 100644 index 0000000000000000000000000000000000000000..927ffef48da7127c275580128436378b3a80f07f GIT binary patch literal 13824 zcmeHNZERCj7(U&~=mrzYr$WR95&4*HH*_0B9oRuO9Re0GBFR?TyK!CDyR;pHh)EL( z5yKBmFi{f|m?RRz4>bHRL?R)?z%M@ti6Ih=Ka55r0cS#tg3ojAIqhY#u`+Nl?wdV* z&-cgszUMt3cPq_U%1T>pnTl{Qyl`Q~%E*d}+CV5&UN)m4B0xp*Ps~K{TgE{%Z07!s z0txK9^!-(r?p+D^$}2A4yR&y^-cwrTsiPm8r~phqJ3j9Hog4gZXZ*(&2yxlhbZj6&3}+?HL!3ET<#r|k@613pa23%E8=xNe71<9hy| z`f&Px#@SYXK9u&|GIxgrzEs21y#J_o!yqb=*ay%K`ma~|Vft&mUg^IFTC?=m^xgFB zE{&`NX8suRWHE%^y1u!8mz?x)?=6HpC`@0WIqNb^`(WGu`1U6o5q=1m1u)M5T)HzP zKph>zP=5IE{Or@8pY%*Ga9Gqm_h;(0Ow}z!|7q0eZ!1qCjkdx(*H$2e+eq}+Uje-U z?}2)cZ$&r@aP87h>$5riI_ps9Byh<%V;)vGSDY{d=QNz3|3bttrG5VMI(i)%^CYB5%W@wIG8%W4DLqQ33Z;z+bQS}?7Sy9Pa$ zOGA+W*KI&7;B$(|QhcD7Z6<$_&nFovSrO?mGqKHhpDFgU-gcDVAWPZ#Wnzv$vMrr4 zI)#{>3kP24PG-zbBhZx07%8hOVx+d1F#~FvlrIx8V%;hD8~702MnItZulHd!Fr~FYa&+P0nQfVt0&6rj)Y+-0yGpsWU zW!0G`S2kg_w;S87{= zfncsh7(G#~d352>1UsPE9h4kR|C4)ae^nGm`V6-EazdJ$gkrGACryA{_{!$e{K|o1*?; z6FGZu+7xYADP4-Uk@~q1`Mu6xd>x_XvDe*fkaW3B>sgpcZ^S_+s!N z_!97HaP02cr@)^EUk<($d?onr7p`Pifj1z&0el6x7v}*lYIyObz>AeRMm!Hb4+sEj z5U&T&5@?KAj&rJ4j-3nH_M@Jh4=zI592NvY4q5tI^qcjHid?+}(kL6wS^K)Nh_?bH z$V|=|JpPFJ#fJg*zxJv_p3A#v2P^Hd#d?79!0 z?>!=a=+}MN>8iY||D10Ak3bnZIS%v!TpIfQm%Dlv;2Pz*0!vZw+~)kow<%%8Iz%v? ziUr%ugpm#o`hG-9Vhh|QaH^BUrOY&rg1wMfZZ^OZhD*0w0uu-6K%WhCk&wIowJ1gn zr;hnQAk#6UGO@32oOs>Gy?QgS2dD&E0ZqI^@C=C4|8dFiWB+$Z-goG@onI<;U}>L1 zWW4nMLi{|{WEYYgZ+W=~KlOD%)P-x7)mAsq6^X}=1}@Tbka$PyPt0R_u3<+3=CuR* zZsy36-iY_8dCo)?X1x=Dz5_Xn6yZixE(hev`ApuseV8Lj`%!YxsvYG>`^O$e*uhP8YKV# literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.Utility/obj/Debug/SAF.Utility.dll b/SAF_VS2003/SAF/SAF.Utility/obj/Debug/SAF.Utility.dll new file mode 100644 index 0000000000000000000000000000000000000000..2f7665fad1be33b326afe3c5a4b25f15306d4945 GIT binary patch literal 16384 zcmeHN-)|g89slm``Fyr>u6;J`g{JD71mvdW@UNz%6u67ePOf(Bi|_1)CaS%6w>fXU zw|m{)vwHy|g9>dQKvaTAke8Icz(YlaDmAL;KY$bjg7&Er?L!d~5+D#SK_YzSyLZkx zw$cg-6^WVCeD?dD`F>}<^O@P5owZLt`90EzD1vMt^wY zTbXum?@|9qpAsb+K#3lfI!9Y_n)N|0N4-JNuuDArLQgMO+*PX*?)0ra33fI5z`6*n|aI=W4HzE_6E zv85ph8y&eLr4fC~Gi?`!B34>M7ItIE9Vtz8qC=IUWI!??8ITM}1|$QL0m*=5Kr$d1 zkPQ4EF_0JMY9w(sRgvGtIX8=gt0D^jgETZ2rE~Cu|KKH@L3?|L`?Rh|^6mtUqAYqK z_Sr$rgH#_KM6I6yTx7%e@K7Y0OlYGxg-0Js^!P)l8j1`?++hfP5B7QY!7Fq)N<(8x zc-BQ<>Q`~hkGP+J*-_E|6w2`Rpw)k8?|t3-^d9A&4#eUQQV;u&!oT~Y`@=`2e)x!_ z4u4$)qmJG!q6y2|-!=rltH@s)LB{Bp3faQjKfdv&V{iZF#LsIly;;6%>mT=^KKtnT zLS}Zg;5NLnIgJk{tgaL$#>OUvC~|5!uxu-6o_9-6pU;}5MzymvRj-tA*e^VOLTSyU z_%5(Ho*GY0O-@WeCh8&^m;~F0FA+V5>$^fO1fJzoePOW%64JOHUM|p8$l{a2;gid` zEUvFX|Gv;q*e<%_gjrRdxKADK5!wx9QYjd!QA)VbHeJ>) z(><_iYgg%0Jkqf4Rr(CHye?|LP2I`_ysx#ie&smD>DMjoGJO%+z({EM04xV68*0g8 zu*7YGUj7WORr)7TqbQ<|&=9bT?$=a|=W~z|FHohkK#exIq`@VZxa9edR5C)xlo@(} zaUA$K9cMYim}5M{_!UNj(PDgtvB~%i;3B=q@=L(u^h5fAwoEV6%i3A`DVHAvK1B!V zms*(y=^gDj^{{0Oql;rD#VCP%0CEcJ=y~7}X9xw}{_b?6`Nflq3zHM8 zd|k~g6laz))5YA%%uY>yX>lc&ompDV&dg?(=Zibd(}(+VurjwqGKlc8+Y4V#{@oQk{U?`m|~b@-d6)!9?K zu&`wXWpE6)me_8hVmbkaODl$LRnRp@l`01aCnP4dWL~hrjEFnq`(~|VH|Naef>ARw z0UlPRMqqYU%v$z76=Gn5z4AZT}Zt^4#?|*lbVsBhL zzjAQuy%*JJEP_Wlo^wdO6jl5C`(v>Iv02BuNmG+TjwX7dx~8B?(@E*pwL~0pL{}6B zwM$nORaK+OE)xEtA{o&s(bLo2l}z-g$wXX@s%R!2>y9MVL_86XbgN0VOFYXciX9HZ zsn$D;D0)iBx{&s!_Io7WaHd@k>*TbUcYem1Ca(?QbMw>i$D5B#k^#wpWI!_Tzr}z! z-{4Frjwrj5IPLJCllPPhGx6=TOa&Asvgj_u*~%Um1ofMO@?Oj#%jS~c*#KHJ)HbJ&3|V8<2d2=ALk)EX%D zu_GH4z)tMaVR|hRpiu=e1+cPEUfrjqJll-n&*1+O{jO^GZfmM;+Pg&Z3y;7OzklWO|VLsojb=C za-ByzF5+!~!=PhiVP9G1Z@10uEPfb=r?`y_Mj+neYFGs}7|^i-chAO$wSytaBpHwl zNCqSWk^#wpWI!??8ITM}20lIp^zeVi>yLhXA;_L31CjyBfMh^2AQ_MhNCqSWk^#wp NWI!??8Tjuq@NXen+adq} literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.Utility/obj/Debug/SAF.Utility.dll.incr b/SAF_VS2003/SAF/SAF.Utility/obj/Debug/SAF.Utility.dll.incr new file mode 100644 index 0000000000000000000000000000000000000000..621bef327b272e35878af1da6e6683465aa980fc GIT binary patch literal 1262 zcmcgrO-md>5Ph?nh#%yba}#d?m#85j8c5a|H!Ma4&DUWi%*@W1)tQ|z(<+JyISL;A z2Z`V>@F;@oC8rz$0mVbEfn59tzG|Ii4Y{t}R9DZd>gqRD)s=>y2652PZloqw>QPNO zu69+Jq{<#tb`pQAM?tEFhLrwL&s4}SmFXl6GF1~tov5JUdPGAv(<%)-36d52Q2F+y z*#n@LBBMaLP3fmNn8XBL;|0d?3UesICi1`0-3Cg8YvcaF;@Mu)n(DelA5-}lLltjP z!3=Mi@ue>Zkdj;z8J#ixXBiitz^n$ph6(6}3KNp?=JIE~*Rr+3Ww%WI5GiNa^+ z`#+l2!YxS|@PyL2EXAyrZz>wG`d*98*PTE2z8@Z2V|~AkZtp5#S*AFqi{{yvWxQwQ z6RfZ^eAeFPzD6zmaA|$R-3T6Vj<(R;T4axF-YyI@`=`p&9+s#b#_$+*v32HO-@Klt zzsPBu8`Y iSo_s=Y~{or5$_x?n`~UeObHRL?R)?z%M@ti6Ih=Ka55r0cS#tg3ojAIqhY#u`+Nl?wdV* z&-cgszUMt3cPq_U%1T>pnTl{Qyl`Q~%E*d}+CV5&UN)m4B0xp*Ps~K{TgE{%Z07!s z0txK9^!-(r?p+D^$}2A4yR&y^-cwrTsiPm8r~phqJ3j9Hog4gZXZ*(&2yxlhbZj6&3}+?HL!3ET<#r|k@613pa23%E8=xNe71<9hy| z`f&Px#@SYXK9u&|GIxgrzEs21y#J_o!yqb=*ay%K`ma~|Vft&mUg^IFTC?=m^xgFB zE{&`NX8suRWHE%^y1u!8mz?x)?=6HpC`@0WIqNb^`(WGu`1U6o5q=1m1u)M5T)HzP zKph>zP=5IE{Or@8pY%*Ga9Gqm_h;(0Ow}z!|7q0eZ!1qCjkdx(*H$2e+eq}+Uje-U z?}2)cZ$&r@aP87h>$5riI_ps9Byh<%V;)vGSDY{d=QNz3|3bttrG5VMI(i)%^CYB5%W@wIG8%W4DLqQ33Z;z+bQS}?7Sy9Pa$ zOGA+W*KI&7;B$(|QhcD7Z6<$_&nFovSrO?mGqKHhpDFgU-gcDVAWPZ#Wnzv$vMrr4 zI)#{>3kP24PG-zbBhZx07%8hOVx+d1F#~FvlrIx8V%;hD8~702MnItZulHd!Fr~FYa&+P0nQfVt0&6rj)Y+-0yGpsWU zW!0G`S2kg_w;S87{= zfncsh7(G#~d352>1UsPE9h4kR|C4)ae^nGm`V6-EazdJ$gkrGACryA{_{!$e{K|o1*?; z6FGZu+7xYADP4-Uk@~q1`Mu6xd>x_XvDe*fkaW3B>sgpcZ^S_+s!N z_!97HaP02cr@)^EUk<($d?onr7p`Pifj1z&0el6x7v}*lYIyObz>AeRMm!Hb4+sEj z5U&T&5@?KAj&rJ4j-3nH_M@Jh4=zI592NvY4q5tI^qcjHid?+}(kL6wS^K)Nh_?bH z$V|=|JpPFJ#fJg*zxJv_p3A#v2P^Hd#d?79!0 z?>!=a=+}MN>8iY||D10Ak3bnZIS%v!TpIfQm%Dlv;2Pz*0!vZw+~)kow<%%8Iz%v? ziUr%ugpm#o`hG-9Vhh|QaH^BUrOY&rg1wMfZZ^OZhD*0w0uu-6K%WhCk&wIowJ1gn zr;hnQAk#6UGO@32oOs>Gy?QgS2dD&E0ZqI^@C=C4|8dFiWB+$Z-goG@onI<;U}>L1 zWW4nMLi{|{WEYYgZ+W=~KlOD%)P-x7)mAsq6^X}=1}@Tbka$PyPt0R_u3<+3=CuR* zZsy36-iY_8dCo)?X1x=Dz5_Xn6yZixE(hev`ApuseV8Lj`%!YxsvYG>`^O$e*uhP8YKV# literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.Utility/obj/Debug/SAF.Utility.projdata b/SAF_VS2003/SAF/SAF.Utility/obj/Debug/SAF.Utility.projdata new file mode 100644 index 0000000000000000000000000000000000000000..053eeb36517c4cace2a757d638b49c738491948e GIT binary patch literal 4104 zcmeH~O>bL86oy|XZR8d(ED$PHgf7`&^5KB#qCx?+q%Dn9B~d;M3s96eZemF6$aXMA zRh1R!kge5qw#@YN!g$EiLn{YHNQcc&_MO zcoub8*R%qx2kJ6>mb?z^td>|W>MefnJj5oeg)Z6FY)h+Z@_Snav}mH)x&58Gsim); zpeC1t78Px44V`XjhI8NKbct5BvHNv;7F(YO{&iORnz8N8G&IkjwPzN1+7{Sj!;k5X zQODyspfh}g{!2WL0Ax^%_t>=eJ-B_TFn8y-jMwz(uk8nezlY-B_2ag^=O{sR=Y{uw zp4{*TFY5+bv_Y?t{Y`2`gN5}T*gSdP3RS2E{rHiyBJ1vpWNI^1wrw)iIor~Fkn$$G zq9hep|z`3OIOje!I^xP*ZQvIWi19Zp)6Ea zsG2*Wu9lJFYP^Jm&w(|lE*-g^KXA7A?1xXA#z-$}VsKz=3r}VX0q6qy&!O#{W~t6a zYI$eA!Va@&bX5z~`DsQoDlxMY$Fs#0Wz0Db-5eA%=xv^r0I$Kj4DAwp_RhhZWrpgy z1FnG$9S^obHH@TDM*UVh_t%$jNEh`H)HR~0t~Rpz%kAbI()d`3sB~ns!wpx~CK4SP zop~M|$M?HEID{oLxm@l>W-9Di*86%vXEnv%yJ)@5Ng70Aj9o%vm6Zs*V`dXA*O_^z zRkYp!8wGp<8(>zUc_VN&kXZ}o+aPirZ>FxNcxuqMneVb@YerC&`T1UU2E@8evU*s% zDLi0pSJ5tl+OVScs1u2_*?rsy=dt$IGFj{1DbcK%vR;gv(qw9<#9osR?dO-tGW*+y zY1=#3df_{{l+gn$Z@#1bVBLH9!PfpF*v-~^v?qG|z`0+=myW|#vbw*Gj`l{{A|qr@ zcdhJ>#pqD%`~79F$FDaLmlK0y3#SS4T<(W~<5+3|2`zlwK+dD&M`*aF&)_J-6I;)D z9Kl_|!Ssj_(t0$A~JVll+* zH^OQ+nOhrMbA#~~T)v?k)AnTgzd>)^?DHgkn&@DvZd{TDN!~ioOJNs#KfVu_!+yR~ z^L^L4^Wmps)#T|=$I9Hc=@Z))i6#DPob`%(pVgH)fj; zp%*D5%$G@N|3hi0xyCNO;XP)GwQa*P4AXT-*8=Z@1@^dv^V+fQ7{35?hL1A$qjee( z@*v9ii1sINgI`VN=ARuToFju@y!mr|{~+PBp3bYc8t0^6$UWzs7L2u1- z$)4;p&b1z?)I|0?Tf3jR&Bs=s%CP^P1BY?6(?wUq!+k8qMfF z_5C)hS*`G9Cyu2q$0(zd3((C&F^k?lvl`%C&Mrf{#5sHCct@F~dT)cPVncT%TcH$I zj?+@d-B$nljuZ4beFJrwD5_`|UY+^2pG;~jyFyetGIm2}E9em%9T~0n3_6ZArahR% zl8J$VfqRMRAhVzw`bZyW8reH&y~RzcL}G+pf@6uDGhwXbtQJD4E-+eJM7t-X{ZYPD&b_kq1yzzC$*c#1J*W=cIn^) zYk8gC+2l4C_KIL`9BJ9yYnRm2tQNCggqzkxOj6Tc6G!&*m&tO&hjH6G*G|K?aw(zL zSl+%r+Yh$*da31+Lf?ZRC8K2IMZ>jU8X;iNE$qr&`aP&rpGI$aeWEt_kck< zYvY~*N0}bafnNg;fnIyOis8KW_$!9<+G7;KUVabs+T#ac66~+QpP9cghxxWMZUK0e zxxxe;aCM9^?taAB12)gTXyBrq|M+b5zY*AU`(M->TRGe9fBr|+xleWbU$_6&!xuug S{~iCY(B6x>{qO(T|Na3AiCAF( literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.WindowsService/AssemblyInfo.cs b/SAF_VS2003/SAF/SAF.WindowsService/AssemblyInfo.cs new file mode 100644 index 0000000..9f89a32 --- /dev/null +++ b/SAF_VS2003/SAF/SAF.WindowsService/AssemblyInfo.cs @@ -0,0 +1,58 @@ +using System.Reflection; +using System.Runtime.CompilerServices; + +// +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +// +[assembly: AssemblyTitle("")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("")] +[assembly: AssemblyCopyright("")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: + +[assembly: AssemblyVersion("1.0.*")] + +// +// In order to sign your assembly you must specify a key to use. Refer to the +// Microsoft .NET Framework documentation for more information on assembly signing. +// +// Use the attributes below to control which key is used for signing. +// +// Notes: +// (*) If no key is specified, the assembly is not signed. +// (*) KeyName refers to a key that has been installed in the Crypto Service +// Provider (CSP) on your machine. KeyFile refers to a file which contains +// a key. +// (*) If the KeyFile and the KeyName values are both specified, the +// following processing occurs: +// (1) If the KeyName can be found in the CSP, that key is used. +// (2) If the KeyName does not exist and the KeyFile does exist, the key +// in the KeyFile is installed into the CSP and used. +// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. +// When specifying the KeyFile, the location of the KeyFile should be +// relative to the project output directory which is +// %Project Directory%\obj\. For example, if your KeyFile is +// located in the project directory, you would specify the AssemblyKeyFile +// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] +// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework +// documentation for more information on this. +// +[assembly: AssemblyDelaySign(false)] +[assembly: AssemblyKeyFile("")] +[assembly: AssemblyKeyName("")] diff --git a/SAF_VS2003/SAF/SAF.WindowsService/EmptyService.cs b/SAF_VS2003/SAF/SAF.WindowsService/EmptyService.cs new file mode 100644 index 0000000..34df698 --- /dev/null +++ b/SAF_VS2003/SAF/SAF.WindowsService/EmptyService.cs @@ -0,0 +1,59 @@ +using System; +using System.IO; +using SAF.Library.WindowsService; +using System.Threading; +using System.Xml; + +namespace SAF.WindowsService +{ + /// + /// EmptyService is a sample implementation of ISerivce class that is + /// pluggable to SAF.WindowsService. When started, EmplyService writes out some text to + /// a file every 3 seconds. + /// + public class EmptyService : IService + { + private bool continueLoop = true; + private string filePath; + public EmptyService() + { + } + + public void Initialize(XmlNode configXml) + { + filePath = configXml.SelectSingleNode("File").InnerText; + } + + public void Start() + { + StreamWriter sr = null ; + try + { + sr= new StreamWriter(filePath); + while (continueLoop) + { + try + { + Thread.Sleep(3000); + sr.WriteLine(System.DateTime.Now.ToLongTimeString()); + sr.Flush(); + } + catch (ThreadInterruptedException){} + + } + } + finally + { + if (sr != null){sr.Close();} + + } + + } + public void Stop() + { + continueLoop = false; + Thread.CurrentThread.Interrupt(); + + } + } +} diff --git a/SAF_VS2003/SAF/SAF.WindowsService/ProjectInstaller.cs b/SAF_VS2003/SAF/SAF.WindowsService/ProjectInstaller.cs new file mode 100644 index 0000000..2d31613 --- /dev/null +++ b/SAF_VS2003/SAF/SAF.WindowsService/ProjectInstaller.cs @@ -0,0 +1,57 @@ +using System; +using System.Collections; +using System.ComponentModel; +using System.Configuration.Install; + +namespace SAF.WindowsService +{ + /// + /// Summary description for ProjectInstaller. + /// + [RunInstaller(true)] + public class ProjectInstaller : System.Configuration.Install.Installer + { + private System.ServiceProcess.ServiceProcessInstaller serviceProcessInstaller1; + private System.ServiceProcess.ServiceInstaller serviceInstaller1; + /// + /// Required designer variable. + /// + private System.ComponentModel.Container components = null; + + public ProjectInstaller() + { + // This call is required by the Designer. + InitializeComponent(); + + // TODO: Add any initialization after the InitComponent call + } + + #region Component Designer generated code + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.serviceProcessInstaller1 = new System.ServiceProcess.ServiceProcessInstaller(); + this.serviceInstaller1 = new System.ServiceProcess.ServiceInstaller(); + // + // serviceProcessInstaller1 + // + this.serviceProcessInstaller1.Password = null; + this.serviceProcessInstaller1.Username = null; + // + // serviceInstaller1 + // + this.serviceInstaller1.ServiceName = "SAF.WindowsService"; + // + // ProjectInstaller + // + this.Installers.AddRange(new System.Configuration.Install.Installer[] { + this.serviceProcessInstaller1, + this.serviceInstaller1}); + + } + #endregion + } +} diff --git a/SAF_VS2003/SAF/SAF.WindowsService/ProjectInstaller.resx b/SAF_VS2003/SAF/SAF.WindowsService/ProjectInstaller.resx new file mode 100644 index 0000000..4cf67ca --- /dev/null +++ b/SAF_VS2003/SAF/SAF.WindowsService/ProjectInstaller.resx @@ -0,0 +1,111 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + 187, 17 + + + ProjectInstaller + + + False + + \ No newline at end of file diff --git a/SAF_VS2003/SAF/SAF.WindowsService/SAF.WindowsService.csproj b/SAF_VS2003/SAF/SAF.WindowsService/SAF.WindowsService.csproj new file mode 100644 index 0000000..a47ac95 --- /dev/null +++ b/SAF_VS2003/SAF/SAF.WindowsService/SAF.WindowsService.csproj @@ -0,0 +1,159 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SAF_VS2003/SAF/SAF.WindowsService/SAF.WindowsService.csproj.user b/SAF_VS2003/SAF/SAF.WindowsService/SAF.WindowsService.csproj.user new file mode 100644 index 0000000..8c4d50f --- /dev/null +++ b/SAF_VS2003/SAF/SAF.WindowsService/SAF.WindowsService.csproj.user @@ -0,0 +1,48 @@ + + + + + + + + + + + + diff --git a/SAF_VS2003/SAF/SAF.WindowsService/SecuritySwitchThread.cs b/SAF_VS2003/SAF/SAF.WindowsService/SecuritySwitchThread.cs new file mode 100644 index 0000000..4b389e4 --- /dev/null +++ b/SAF_VS2003/SAF/SAF.WindowsService/SecuritySwitchThread.cs @@ -0,0 +1,78 @@ +using System; +using System.Threading; +using System.Xml; +using SAF.Utility; + +namespace SAF.WindowsService +{ + /// + /// SecuritySwitchThread is a thread wrapper class. It allows + /// developers to customize the way a new thread is started and + /// ThreadStart object is invoked. + /// + public class SecuritySwitchThread + { + private ThreadStart serviceDelegate; + private XmlNode runAs; + private Thread newT; + + /// + /// The constructor takes more than one parameter + /// as oppose to only one parameter is the bare bone Thread + /// class. This allow we to perform some additional service + /// based on the additional parameters, in our case, we will pass + /// the configuration data that contains the user account information + /// which is later used to perform the thread's security switch + /// + /// the ThreadStart delegate for the target method + /// the configuraiton data contains the user account information + public SecuritySwitchThread (ThreadStart start, XmlNode xml) + { + serviceDelegate = start; + runAs = xml; + //create a new thread that calls the WrappingMethod + newT = new Thread(new ThreadStart(WrappingMethod)); + } + public void Start() + { + //start the thread. + newT.Start(); + } + + /// + /// WrappingMethod wraps performs the security + /// switch and then invokes the ThreadStart delegate. + /// + private void WrappingMethod() + { + //retrieve the user account information to which thread is + //switched. + bool inheritIdentity = Boolean.Parse(runAs.Attributes["InheritIdentity"].Value); + if (inheritIdentity == false) + { + string userid = runAs.SelectSingleNode("User").InnerText; + string password= runAs.SelectSingleNode("Password").InnerText; + string domain = runAs.SelectSingleNode("Domain").InnerText; + //call the utility class to switch the current thread's security context. + SecurityUtility su = new SecurityUtility(); + su.Switch(userid, password,domain); + } + //invoke the ThreadStart delegate object passed in + //on the class constructor + serviceDelegate(); + } + + /// + /// BaseThread property provide access to the + /// underlying thread, which allow external program + /// to control the thread. + /// + public Thread BaseThread + { + get + { + return newT; + } + } + } +} diff --git a/SAF_VS2003/SAF/SAF.WindowsService/Service1.cs b/SAF_VS2003/SAF/SAF.WindowsService/Service1.cs new file mode 100644 index 0000000..605f965 --- /dev/null +++ b/SAF_VS2003/SAF/SAF.WindowsService/Service1.cs @@ -0,0 +1,165 @@ +using System; +using System.Collections; +using System.ComponentModel; +using System.Data; +using System.Diagnostics; +using System.ServiceProcess; +using System.Xml; +using SAF.Library.WindowsService; +using System.Threading; +using SAF.Configuration; +using System.Configuration; + +namespace SAF.WindowsService +{ + public class Service1 : System.ServiceProcess.ServiceBase + { + /// + /// Required designer variable. + /// + /// + private ArrayList threadArray = new ArrayList(); + private ArrayList instanceArray = new ArrayList(); + private System.ComponentModel.Container components = null; + + public Service1() + { + // This call is required by the Windows.Forms Component Designer. + InitializeComponent(); + + // TODO: Add any initialization after the InitComponent call + } + + // The main entry point for the process + static void Main() + { + System.ServiceProcess.ServiceBase[] ServicesToRun; + + // More than one user Service may run within the same process. To add + // another service to this process, change the following line to + // create a second service object. For example, + // + // ServicesToRun = New System.ServiceProcess.ServiceBase[] {new Service1(), new MySecondUserService()}; + // + ServicesToRun = new System.ServiceProcess.ServiceBase[] { new Service1() }; + System.ServiceProcess.ServiceBase.Run(ServicesToRun); + } + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + components = new System.ComponentModel.Container(); + this.ServiceName = "SAF.WindowsService"; + } + + /// + /// Clean up any resources being used. + /// + protected override void Dispose( bool disposing ) + { + if( disposing ) + { + if (components != null) + { + components.Dispose(); + } + } + base.Dispose( disposing ); + } + + /// + /// Set things in motion so your service can do its work. + /// + protected override void OnStart(string[] args) + { + + + //obtain the configuration information for SAF.Service + ConfigurationManager cm = (ConfigurationManager)ConfigurationSettings.GetConfig("Framework"); + SAF.Configuration.ServiceConfiguration serviceConfig = cm.ServiceConfig; + XmlNode servicesXml = serviceConfig.ServicesXml; + //loop through service nodes and start them one by one + foreach (XmlNode node in servicesXml.ChildNodes) + { + try + { + string typeInfo; + //obtain the type information from the xml data + typeInfo =node.Attributes["type"].Value; + Type type = Type.GetType(typeInfo); + IService instance = (IService)Activator.CreateInstance(type); + //initialize the service + instance.Initialize(node); + XmlNode runAs = node.SelectSingleNode("RunAs"); + instanceArray.Add(instance); + + //create SecuritySwitchThread object to process the + //the service + ThreadStart ts = new ThreadStart(instance.Start); + SecuritySwitchThread sst = new SecuritySwitchThread(ts,runAs); + //start the SecuritySwitchThread's thread. + sst.Start(); + threadArray.Add(sst.BaseThread); + } + catch (Exception ex) + { + //write to the event log + } + } + } + + /// + /// delegate used when invoke the OnStop method asynchronous during service shut down. + /// + public delegate void OnStopDelegate(); + + /// + /// Stop this service. + /// + protected override void OnStop() + { + foreach (object o in instanceArray) + { + try + { + IService service = (IService)o; + if (service !=null) + { + //invoke the delegate asynchronous to stop each started service. + OnStopDelegate osd = new OnStopDelegate(service.Stop); + osd.BeginInvoke(null,null); + } + } + catch (Exception ex) + { + //write to the event log + } + } + + //give sometime for the each instance to shut down gracefully + Thread.Sleep(5000); + foreach (object o in threadArray) + { + try + { + Thread t = (Thread)o; + if (t !=null) + { + //if the thread is still live at this point, shut it down forcefully. + if (t.IsAlive == true) + { + t.Abort(); + } + } + } + catch (Exception ex) + { + //write to the event log + } + } + } + } +} diff --git a/SAF_VS2003/SAF/SAF.WindowsService/Service1.resx b/SAF_VS2003/SAF/SAF.WindowsService/Service1.resx new file mode 100644 index 0000000..7e32396 --- /dev/null +++ b/SAF_VS2003/SAF/SAF.WindowsService/Service1.resx @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 1.0.0.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.3102.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.3102.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + diff --git a/SAF_VS2003/SAF/SAF.WindowsService/app.config b/SAF_VS2003/SAF/SAF.WindowsService/app.config new file mode 100644 index 0000000..faba0a2 --- /dev/null +++ b/SAF_VS2003/SAF/SAF.WindowsService/app.config @@ -0,0 +1,18 @@ + + +
+
+ + + + + C:\temp\EmptyService.txt + + AVANADE-C006T6X + user1 + password + + + + + diff --git a/SAF_VS2003/SAF/SAF.WindowsService/bin/Debug/InstallUtil.InstallLog b/SAF_VS2003/SAF/SAF.WindowsService/bin/Debug/InstallUtil.InstallLog new file mode 100644 index 0000000..4a7123d --- /dev/null +++ b/SAF_VS2003/SAF/SAF.WindowsService/bin/Debug/InstallUtil.InstallLog @@ -0,0 +1,394 @@ + +Running a transacted installation. + +Beginning the Install phase of the installation. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The Install phase completed successfully, and the Commit phase is beginning. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The Commit phase completed successfully. + +The transacted install has completed. + + +The uninstall is beginning. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The uninstall has completed. + +Running a transacted installation. + +Beginning the Install phase of the installation. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +An exception occurred during the Install phase. +System.ComponentModel.Win32Exception: The account name is invalid or does not exist, or the password is invalid for the account name specified + +The Rollback phase of the installation is beginning. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The Rollback phase completed successfully. + +The transacted install has completed. + +Running a transacted installation. + +Beginning the Install phase of the installation. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The Install phase completed successfully, and the Commit phase is beginning. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The Commit phase completed successfully. + +The transacted install has completed. + + +The uninstall is beginning. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The uninstall has completed. + +Running a transacted installation. + +Beginning the Install phase of the installation. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The Install phase completed successfully, and the Commit phase is beginning. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The Commit phase completed successfully. + +The transacted install has completed. + + +The uninstall is beginning. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The uninstall has completed. + +Running a transacted installation. + +Beginning the Install phase of the installation. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The Install phase completed successfully, and the Commit phase is beginning. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The Commit phase completed successfully. + +The transacted install has completed. + + +The uninstall is beginning. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The uninstall has completed. + +Running a transacted installation. + +Beginning the Install phase of the installation. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The Install phase completed successfully, and the Commit phase is beginning. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The Commit phase completed successfully. + +The transacted install has completed. + + +The uninstall is beginning. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The uninstall has completed. + +Running a transacted installation. + +Beginning the Install phase of the installation. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The Install phase completed successfully, and the Commit phase is beginning. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The Commit phase completed successfully. + +The transacted install has completed. + + +The uninstall is beginning. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The uninstall has completed. + +Running a transacted installation. + +Beginning the Install phase of the installation. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The Install phase completed successfully, and the Commit phase is beginning. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The Commit phase completed successfully. + +The transacted install has completed. + + +The uninstall is beginning. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The uninstall has completed. + +Running a transacted installation. + +Beginning the Install phase of the installation. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +An exception occurred during the Install phase. +System.ComponentModel.Win32Exception: The specified service has been marked for deletion + +The Rollback phase of the installation is beginning. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The Rollback phase completed successfully. + +The transacted install has completed. + + +The uninstall is beginning. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The uninstall has completed. + + +The uninstall is beginning. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The uninstall has completed. + +Running a transacted installation. + +Beginning the Install phase of the installation. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The Install phase completed successfully, and the Commit phase is beginning. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The Commit phase completed successfully. + +The transacted install has completed. + + +The uninstall is beginning. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The uninstall has completed. + +Running a transacted installation. + +Beginning the Install phase of the installation. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The Install phase completed successfully, and the Commit phase is beginning. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The Commit phase completed successfully. + +The transacted install has completed. + + +The uninstall is beginning. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The uninstall has completed. + +Running a transacted installation. + +Beginning the Install phase of the installation. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The Install phase completed successfully, and the Commit phase is beginning. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The Commit phase completed successfully. + +The transacted install has completed. + +Running a transacted installation. + +Beginning the Install phase of the installation. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +An exception occurred during the Install phase. +System.InvalidOperationException: User has canceled installation of services in executable c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe. + +The Rollback phase of the installation is beginning. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The Rollback phase completed successfully. + +The transacted install has completed. + + +The uninstall is beginning. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The uninstall has completed. + +Running a transacted installation. + +Beginning the Install phase of the installation. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The Install phase completed successfully, and the Commit phase is beginning. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The Commit phase completed successfully. + +The transacted install has completed. + + +The uninstall is beginning. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The uninstall has completed. + +Running a transacted installation. + +Beginning the Install phase of the installation. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The Install phase completed successfully, and the Commit phase is beginning. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The Commit phase completed successfully. + +The transacted install has completed. + + +The uninstall is beginning. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The uninstall has completed. + +Running a transacted installation. + +Beginning the Install phase of the installation. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The Install phase completed successfully, and the Commit phase is beginning. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The Commit phase completed successfully. + +The transacted install has completed. + + +The uninstall is beginning. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The uninstall has completed. + +Running a transacted installation. + +Beginning the Install phase of the installation. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The Install phase completed successfully, and the Commit phase is beginning. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The Commit phase completed successfully. + +The transacted install has completed. + + +The uninstall is beginning. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The uninstall has completed. + +Running a transacted installation. + +Beginning the Install phase of the installation. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The Install phase completed successfully, and the Commit phase is beginning. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The Commit phase completed successfully. + +The transacted install has completed. + + +The uninstall is beginning. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The uninstall has completed. + +Running a transacted installation. + +Beginning the Install phase of the installation. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The Install phase completed successfully, and the Commit phase is beginning. +See the contents of the log file for the c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.exe assembly's progress. +The file is located at c:\saf\saf.windowsservice\bin\debug\saf.windowsservice.InstallLog. + +The Commit phase completed successfully. + +The transacted install has completed. diff --git a/SAF_VS2003/SAF/SAF.WindowsService/bin/Debug/SAF.Configuration.dll b/SAF_VS2003/SAF/SAF.WindowsService/bin/Debug/SAF.Configuration.dll new file mode 100644 index 0000000000000000000000000000000000000000..f5b38bde2c2e1982932789c5a7a917d7ffdfd3eb GIT binary patch literal 24576 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 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.WindowsService/bin/Debug/SAF.Configuration.pdb b/SAF_VS2003/SAF/SAF.WindowsService/bin/Debug/SAF.Configuration.pdb new file mode 100644 index 0000000000000000000000000000000000000000..486270dd4be55f0b21676f82b00b488d2d6a88f7 GIT binary patch literal 56832 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 NI2Q{(U1rCD{|}|F-Fg53 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.WindowsService/bin/Debug/SAF.Library.Security.dll b/SAF_VS2003/SAF/SAF.WindowsService/bin/Debug/SAF.Library.Security.dll new file mode 100644 index 0000000000000000000000000000000000000000..5ca26adec0303738c54d6a8dec6f8f17e9e8d5ee GIT binary patch literal 3584 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 NWI!??8Tjuq@NXen+adq} literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.WindowsService/bin/Debug/SAF.Utility.pdb b/SAF_VS2003/SAF/SAF.WindowsService/bin/Debug/SAF.Utility.pdb new file mode 100644 index 0000000000000000000000000000000000000000..927ffef48da7127c275580128436378b3a80f07f GIT binary patch literal 13824 zcmeHNZERCj7(U&~=mrzYr$WR95&4*HH*_0B9oRuO9Re0GBFR?TyK!CDyR;pHh)EL( z5yKBmFi{f|m?RRz4>bHRL?R)?z%M@ti6Ih=Ka55r0cS#tg3ojAIqhY#u`+Nl?wdV* z&-cgszUMt3cPq_U%1T>pnTl{Qyl`Q~%E*d}+CV5&UN)m4B0xp*Ps~K{TgE{%Z07!s z0txK9^!-(r?p+D^$}2A4yR&y^-cwrTsiPm8r~phqJ3j9Hog4gZXZ*(&2yxlhbZj6&3}+?HL!3ET<#r|k@613pa23%E8=xNe71<9hy| z`f&Px#@SYXK9u&|GIxgrzEs21y#J_o!yqb=*ay%K`ma~|Vft&mUg^IFTC?=m^xgFB zE{&`NX8suRWHE%^y1u!8mz?x)?=6HpC`@0WIqNb^`(WGu`1U6o5q=1m1u)M5T)HzP zKph>zP=5IE{Or@8pY%*Ga9Gqm_h;(0Ow}z!|7q0eZ!1qCjkdx(*H$2e+eq}+Uje-U z?}2)cZ$&r@aP87h>$5riI_ps9Byh<%V;)vGSDY{d=QNz3|3bttrG5VMI(i)%^CYB5%W@wIG8%W4DLqQ33Z;z+bQS}?7Sy9Pa$ zOGA+W*KI&7;B$(|QhcD7Z6<$_&nFovSrO?mGqKHhpDFgU-gcDVAWPZ#Wnzv$vMrr4 zI)#{>3kP24PG-zbBhZx07%8hOVx+d1F#~FvlrIx8V%;hD8~702MnItZulHd!Fr~FYa&+P0nQfVt0&6rj)Y+-0yGpsWU zW!0G`S2kg_w;S87{= zfncsh7(G#~d352>1UsPE9h4kR|C4)ae^nGm`V6-EazdJ$gkrGACryA{_{!$e{K|o1*?; z6FGZu+7xYADP4-Uk@~q1`Mu6xd>x_XvDe*fkaW3B>sgpcZ^S_+s!N z_!97HaP02cr@)^EUk<($d?onr7p`Pifj1z&0el6x7v}*lYIyObz>AeRMm!Hb4+sEj z5U&T&5@?KAj&rJ4j-3nH_M@Jh4=zI592NvY4q5tI^qcjHid?+}(kL6wS^K)Nh_?bH z$V|=|JpPFJ#fJg*zxJv_p3A#v2P^Hd#d?79!0 z?>!=a=+}MN>8iY||D10Ak3bnZIS%v!TpIfQm%Dlv;2Pz*0!vZw+~)kow<%%8Iz%v? ziUr%ugpm#o`hG-9Vhh|QaH^BUrOY&rg1wMfZZ^OZhD*0w0uu-6K%WhCk&wIowJ1gn zr;hnQAk#6UGO@32oOs>Gy?QgS2dD&E0ZqI^@C=C4|8dFiWB+$Z-goG@onI<;U}>L1 zWW4nMLi{|{WEYYgZ+W=~KlOD%)P-x7)mAsq6^X}=1}@Tbka$PyPt0R_u3<+3=CuR* zZsy36-iY_8dCo)?X1x=Dz5_Xn6yZixE(hev`ApuseV8Lj`%!YxsvYG>`^O$e*uhP8YKV# literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.WindowsService/bin/Debug/SAF.WindowsService.exe b/SAF_VS2003/SAF/SAF.WindowsService/bin/Debug/SAF.WindowsService.exe new file mode 100644 index 0000000000000000000000000000000000000000..a34632a26e682eb068d84b46afd82e0802e28933 GIT binary patch literal 20480 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 H2@CuOtX2q7 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.WindowsService/bin/Debug/SAF.WindowsService.exe.config b/SAF_VS2003/SAF/SAF.WindowsService/bin/Debug/SAF.WindowsService.exe.config new file mode 100644 index 0000000..faba0a2 --- /dev/null +++ b/SAF_VS2003/SAF/SAF.WindowsService/bin/Debug/SAF.WindowsService.exe.config @@ -0,0 +1,18 @@ + + +
+
+ + + + + C:\temp\EmptyService.txt + + AVANADE-C006T6X + user1 + password + + + + + diff --git a/SAF_VS2003/SAF/SAF.WindowsService/bin/Debug/SAF.WindowsService.pdb b/SAF_VS2003/SAF/SAF.WindowsService/bin/Debug/SAF.WindowsService.pdb new file mode 100644 index 0000000000000000000000000000000000000000..b05ecc963f0c75e5812b8e1b9825a40ce370d754 GIT binary patch literal 28160 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 + + +0.72 +2 + + +11 + + + + +_reserved_lastInstallerAttempted +_reserved_nestedSavedStates + + +0 + + + + + + +0.72 +2 + + +11 + + + + + + + + +1 + + + + + + + +0.72 +5 + + +11 + + + + +0.72 +3 + + +11 + + + + + +Account + +Username +hadServiceLogonRight + + +-1 +User + +AVANADE-C006T6X\avmin +false + + + +installed + + + +0 +true + + + + + + + + +0.72 +5 + + +11 + + + + + +baseInstalledAndPlatformOK + +logExists +alreadyRegistered + + +-1 +true + +true +false + + + + + diff --git a/SAF_VS2003/SAF/SAF.WindowsService/obj/Debug/SAF.WindowsService.ProjectInstaller.resources b/SAF_VS2003/SAF/SAF.WindowsService/obj/Debug/SAF.WindowsService.ProjectInstaller.resources new file mode 100644 index 0000000000000000000000000000000000000000..01839be0756463b4b1b9e8cb13fc41687815a504 GIT binary patch literal 1102 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 H2@CuOtX2q7 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.WindowsService/obj/Debug/SAF.WindowsService.exe.incr b/SAF_VS2003/SAF/SAF.WindowsService/obj/Debug/SAF.WindowsService.exe.incr new file mode 100644 index 0000000000000000000000000000000000000000..801b2bd974315635abe66c681897497f21808ef7 GIT binary patch literal 3614 zcmdT`&r1|h9RJSR4>hwQ@)iu49tww2A<95>cNI}9T&=)~oZX$(S$B41X4HxhArBrp z86E3jf#(heK~T6|y3`>ei~a#2gic-ieBU_E4w-ssu(y2oz4^XhpYQj5Ki~IyiWyrs z^`fg4kd+gftI0XbmgDtu+%hMOf^N%AO|m;?IC2hOvg2B|?#Njl=vuN~)Y8!A zG{==~JZBp+rZyU+0qUSQG+UKwD0$|7R9uJ3 znVQk>OC_nd!qZ+rm7zAVjGu~i?qar!aVGRxD&WUO;=fNn?mhpyBKZ(6LlqU01kk&Xa!kTg zD^>H1se$pKbU~uRl!BLRc#*xX(>39FZaMgs;}i#1XU_8}e%mjV0FPNa205sF`xnA|vQ%PXc=|b32OyzjG$L|8TCJEf9>yx4K6x z=!11>aTYdm)b_q8Kb1=0UwpK7s@x`yrM++}Lx_6=ab%!on}U-N_erk(=kmvrbW6~I z=ps=6I|i7Ds0<>@7I@MjG;@#Z8rgqMK;T8{PX70@VIGl~fo);VaMn~HoGAk?IJlGi zQ*n?Ra^OmNKV$Q_;`dIWKj4a|RiWd#3K&w(6$iToxmv|qY04wEc}1TqyP2ub1lF-I z*RzcG;QP|c27j{*hS9?7lfs95Q|-=&VSe*H{in|||Ao)O-rw4i{LF~(&&yZCqTUF4 z@g`#b4MGwTWl}#nw#ua2;hl#i^AnPzUbBJgKOm!HWK+Nw~TF>Cr=M?=O8&R`a%`~pI}Cu7oE&x%@n)0fITN6yA$m)fC<(uyF{ XbFT4yJ`Fg>;BXKzCe0Gzy(a44iI{ee literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/SAF.WindowsService/obj/Debug/SAF.WindowsService.pdb b/SAF_VS2003/SAF/SAF.WindowsService/obj/Debug/SAF.WindowsService.pdb new file mode 100644 index 0000000000000000000000000000000000000000..b05ecc963f0c75e5812b8e1b9825a40ce370d754 GIT binary patch literal 28160 zcmeI43yhT4b;rM9XNR?UgazyZeq_LF9tQRS%gZ75!Y*WKjBvc9xG60xy8}$U%&cYx z1F0pCU0k`9)mjmeNaaMhw%SBR6{$#s+C*K&q-i8vk;Ii;)l#F>ZAs+BNo1*1!ghcE z`8|`v2aV9iQyAk-(AL+G6Xa z$7VT%+!=iMA!^^oiB7^zD}l@VKJ)NDPW@5ii#@^6j#s9xQz6?Fl#rZOxgQ!@xlpxuU|g5}@}a1N-cHx+CEr-L)V z+2CC84)9L!H^6z|d~gAH7kD>#4|p&5aWDxk1Q&t#flc83pz2=&E(Vu@9|I@BN?^Rk ze^Q<8Mow{QRg%Kx^#^nBi^o=o?pcBc*v7LK_;i7_NNC@`If#1cauRF%`}+H z{(h>jkj~@_y#oWO+?X@wQ+!FhX>yw~sJGHY2qL(o0PrGs z8z?JNQMZHAS^{aX*FnWeqsiLc1vY>a6V#LOwEv}JB^8yc-pj_9j+gx}+g`SQRL@IN znoIHp#!Kg`9ZNv3`zQ51!l(d~`oDruZlS308vnAYucWoB>-cJ_dZZk~^|J=cTa%yT zS-ScKMFL(g+tB3a)e;!5@t4%Sj@2kg|K9bJ*4XywliU>C6EMd1g8O z@k0YHylHFmXA9{8EH;~u@GfgV_E`H-wglyE+RAlg!eDdofXs&Ape70MuqEcR0rq*s zo1~sXZ?2&B)HR+XwV%j`pg#RZwt1~<^Bd-HB?z7kwHbRUvCFr4SFU$(5P@w^6%JPEOHM#C;rv7F*uMa?AhF#PuW>&Wc?-$J4Zg{@qFVUYqKUsnA;D~FST)6sbBG+ zv!|)m!fOA}Djwh07_(e9vwXP!aD9?&o&ui-Pk^UDrEAU$HGhQao1C*pt)I0m>}T~G zuWU~~dpOsZ>dW@0?R7>`P@leu>aJkQunhibok3!F)K1@s-_w153A zNK~M6H$jnr_O^|RjDUQuYM?zjPM#^>`@-@oiSse}ZPx;tYx46{?MVB-`k?lWW&c;- z#H%vH`?UJM6b#!Hl8bni7Uq?VqP&U|uV|Rp9u`Dr+cda*OL!axs!csnN$QzeDzEpW z2Oqrq!Mkd`nK#vq?&$eVP@VNg+W(zKyHwI4TXf*$tOx0i>YUZIP4yg=^ksOqXikQq z(rjU0n-Ji~e?WSq`k+pZKZluaI#t{+YuQhtbF`K{B|0$I+79W`v&`4syMBA|_y6I1 zENmx@WrAuR`xDZCck^Caajd#mS)#mN>nbg*r?oFed9`0krzm`6SGPlCPD{9K?w$Z0k>D3f5<@YYh8;-annl z{@*wK{20am^L#f#*4OL*4Y@vPZF;}&G|xKs&>Gd87i#_p)iD??ntIj3vS@o`R&#L=3dHyxH6SR6HR?49dsYG zj#HpGZ-vFVWs390dL5rCTMn~b?=f=+MG*hlz8|J%+Ez3=0UBqT`+UbqvuiC@I;)X? zbX1uD`cX_mS3{{^@5L84K-WTdKzV1rD7{TwaRB-t^hqe^PsL}ToLLp)^gPa6YxTs| z2c2LC*a|Kso>MD6eIM*xjG1!@vJdM6axAKCpN7`chd3p?M;KigXpa;m9kxRs0r!IH z%SlkW{357!-)qm>njcB;%k}1tMcnhT?=_?8a?SS`_0c@1Tf*lZtA?F--0AcX+i^(` z<#WnA{5pXN;x$Q>E#rMgd?WozB zi)z2tb^$DcFMt|5fow40{SMV1q4HJtWVReqd44Z_gJ*%t@j#tgc2;(g{a^D%Yf+%K zO(fZ^a%Zil&7j-&M@>WdVAvDhW(~Gw(uH*IK>G73d-g~ASIMJyPCd^=>X#p@^KMOV z_nm?=l@l6&)8&xebB2f^__gMJ`b6l{t%ypV_lELIs{*&r;8=dH^V^h+QdNZT9rJ&^q4QuA}7e zzGv5A%)A4xe46@AdH`rcQEQd=!i(`>V=3PS;_O_H1%8d_d~ygB$evI+NvO*I#k(IA z)i?4K7eE(7S3+eQu)mvheeZ1!Aw?cewCoXba&jjzqH}roJ!zi3EF@3KSMo$=2Ey{BT}Ga=JG4p4?ub)foL;Gn z_lT1{;LnJYJYNE3cg3HoK(&dYw z4?vrtU{UV|tm0~3V=jFf4;~NVc&Tw>Ej|QoGj)1>dfv@3?H{LjJ_}v|e+f=>oh5mD zn{tr$3Xn$$CiVYtC4aN&fBU{p^G&(mdjA3+byPj+&pFGy92MA?kMcXSj~&+D?{%r) zTh3_l0NRs1kUud6!_q9J5%!jL_VUx@mmc!`*SojeD)y82?VHTWg#G@fm;X%UKi|v0 zE1e(A=2J@3ets5tC&?pU#q&(c+}Ng9o$*C&Rxk5z9Wnwxx5RwnS0&bYneWKBlLssF zrO3OBJnz8ic_w8(vdpEo*mw0lO$EKRcG$V7c<~wJOIP46ouRgAp!^vsjE)!E_K?od z?KvzyWhp*yb)U7v$?MT&$g$ou^WeU zBYB=9qTuqVE~!?MN_7>E4W_nb_Ggt(W!6Kn8Hc4SO?jmjuo+8f<_kobK2xXi$|elA zCwDlrDNmf_L!Hoa-U11Vr-{<@r84vRLTNwn`$EZ%(trT3Sze8A$ z1)c`af#<=C;9H>he&$fNl2H4%P6m2JD%cMKJH#{h_b}v{VMf!Cn%6_i@Y>uMU5LerfBRF=zWBdZ*dt^ z_nvi}BGz%sXno(gLD=`*2#;i>dhnAC(2UYqEA208P*y@^ugcerbK4i^lrVh0sQ#%8 zZ_|d$px>sg>!4~YbGfK{);Kq|z6|xt+Ey`iu?5YEZuhJ^PnEd|s(yDuRn}Ih`u!|;`dzm`%u;Y zFE0EJbdYeIQsdmn#DjM1QKKffOH-el!DV14m;~2=i@5}805k3HY5vujCd{4UY)6f&dQ%3Mb=nK%3P@aQ7hrR?AzvK)SPr2}4Kvmvf zyYP3QuMnQ^WHEzTpWvK3fwr2;+0azI836e6bT6YgGkd-}gSUC^BF`N7@4?={0;-Tl za($2Z22k&X30lDhp6>?R!ESIbcpQ8QJPTd`-v+OMbL+?>V5nyY_Z$7F`{$UukiIim z7K&?KYk1qsywbx{+ySiTwQ-JjjqEsE?wf|Uvh(TlTAtRm`o8yq+gg4_LxMrt(+1@~ zxW}}OHQ~bBT=)+9q4YH_e4C>$JHDTiru2o5zVGM{9KFNw{mRk*bot+R^vjOY9aGL9 zJHF>!{OgW>!^MBYg}?6j54-qY7e40bHW$C$g}>xzuP@i7$0XDdV6=2)T@=nw`C%A2 ze=>0Ct`)PwS6cNYp#4&~{l{?0)V`iHU z=RB|p)LP#Nc7sR3;~=^ykgobFcorN2FMwKCZ-c)CuYe5Dy{^)PtgE1Z>H?>KFbX{HIm2s@0ldDk zagKMr{4}epbca|Mec_S(KA%l@`8JgE={s6=(Jya>^4WBkueaPb^&?iHA2HvLHrdK$ zJsJzYAQCR$l;g_BBk+AcLw}^x^`%4K2OH;jCz$@H8`ll?*P+V49pb~b;OW6j>=~~T z&>bfK!KGz?FW1Sy)nET=4!?R3tXi|WYfIaPwVvOX?SH4lhi&?d;1U%aCGZBQx;lRF zrig(Gbw#hNg0}Ttt2VD+v&rZ26OV~!{#mP+ShI! zV;^S*1s3Z?>eRbys_gR45&P&}n_zA0hW4#(Ta2-}^6#3p1qVsik=8^d@V0^M9@#qL zFLka`hMO-=UB9Wp*qO{cufH@G;uZ8`-0R1EWnQi4cwk>r@Vd^%IbGLRwn=s05fACo z@MXKtYk6GWe(eEP59{1M9+VIBJ->~2{5WTxUuVwvwxxq;&u`-$|Nb(+&fqM+c{Q}8 zw{5)TZ^H;M-`=eF?Vlj<-=i|?BfLnoh%C$x{XiyrR~f{M8I6c(rokGp>@Ac<-^c#Ru$a8{I>*of4*l-8W=SbGQ_6nZg zv8-Z8Hs(Bt&tDAjVPIq(Im_t(Z^8L0<*2Bmf29*o3l((ob?E;_qyJ@_dHw(RPckFb zb)EYEV@CgeH#b;Kila4OVs%mV=Z|;KU$skYsVG!KiSQ@e4=4cx!k3d z&Viz7_Y)ysDhkS%1Fa`LJXLAO!MQG4VGnvf3HG~)Xqs$k%|(Hm-sV|+OZo7F98GH{ z?ODTlb-r(s<_(c(z9G{5d0lwT5pB-d=D9MXX*xd(pPe~2Gfp}e)A@=Znos9i)z-hx za$d99hUKfY{&oI2*7Yx$cF>_S(C48ey(d1_Z_`E>RBhkAt^P$+ciwHzX=^*@t^958 zTFMG5D)qCLGAhZdmU6t2r*@2CFPa(Ni`>+@c7nfeGj$kZKW&Wv46iF6cdfMJS~JwZ zFa4o4-2}4LkGsFGGuepkRBZR?$6&|_2b>$fBE3?C2Rhm`%{}4yp~7O znJ3J}YfGm0P|E#s<3WBdlPN%+Tm-q-BdXfSNU$ z3A(qEpCW%m_Lg)v_ta+As84r;_kgmuJ`N_qg`j58eW3KbY}m!%5>S0v2Ce{?gR=cr zf|_kNGqlq=$u1%&*_nIh>&*F{ z$=la;lv_+?Z3?PRZ8H0IjT-9MV2|4#o3f)eZPoBw7shOzmGn!^KPpY1>8TC}u&)&nTv)+f)KVY}% z?~e1>*xPRp+qiZZ)~w^&=TO+;S>agg@usx&Yg}CvZAocadOfpS!VZ-{?YK@gtMB95 zZCdM$*M=R9fNE}qV< z8g)fYy4@mGo9zMV+ad98N*vrP&ZE_%k~#LWn*7@(&8=(CNjoAMW`m`Th^k0wtElM~ zY?tAlx)R+r>lCtlm06cK2{(huTUqwMQEe=Ex8N^$ou-!qaD95U;$N5rEEJD7SFA9q+iZ5mUR{nBnPtmnW_4 zQQ0?-nwz!9mA18|6e#b76dPQ-BY3om?Nncz?a(=9bcV@r(%BS?x2cL>747FfmQ%<5 zlfaj!HKMLDlYu5iPixkY#wTGGm}6npA&sf37jM9xLt!2|eoQ0LGv-dE^U$}YR!HO% z*_Yjzc_i%NEvTiH_m=Efk&M{2E)DixU&A8@{yh<7bR1K=CjErllj^Ih#TgQ&ZX%-QP6^LQT!&jxp=_NuC{hZgFkliD1 zTz(@OGa6RFlQ`XpDC28LGhJ@eVSQ)?%f5Lo&xF%J!;q+8U95mPjEtPh)`yDYk`U2y zER13`q~LmxXny36%YHu3;~A)9S9O|US`xqdT-T9rX+=(@+nt@m=!%`NA9b~@Ih;At9l_k42r!>-&5iL#y&yh8>U_Mu}skoa$L|C3?n{ zYEggckr&h5JkK{Mnz}E@>!{hC%i_>NbKwTrwey7hGh)c#(D-Qk_-C-_tFg`l-$_NY=6B_ei0^;nv&%&Bfmai`V( zTJT+~+10WS)}#HK;KItBcE4ZHt!2o6er7oxsXgRzQA49$Zj>gGWum?J39|kkS@LY~ zjAVlS>fNQUS&gaKpyuFVC&YWtWbz}kaeJht#3$lmMV8?iNiPiSBtYT!gyM~UGr7p#kCp2c zbOuy+3APE&rntXV|14-x|K|e6G54(MUj&!7%xQ-KK-&<1J`p9bWit!qnkL+k?rennw`h)H+*4wzgd-c1t%Z>9WYa9zL2QPq@#ua_{Gg|l3 zMy&zK{e@-O#>J1{MbEpO_w&VK>7|O7o0`T;d}1SKigC){ACmB9dLhyB{}wCL#4%X% z8`4z#8|7UA*4-)HqD|>i8{D*N+9w6Pl;YpEsos)K-l-a225wC7W{MZ;Vim3Uj&{cr z+TC)ux9;1Q+8`dT`bi}0FN)&Ev_CmIXW`r4QJpTc7Lx?#br z%@nKf1oN}Go&{b`8{c;QPV$kcYWCtm6!$ns<{8@_Cv`Chazs{})3&N`TLXtb>;|C% z2az9~ct}9u{z=?BBY06jIV%9ixE}?S-vtr(SHP^+&zv?oDUis6{HZD3ibI4VX8-}oGkx_nk4{xG)b z&%Q(C#MP|v=Lh8H;0cV`5sKEG%ok!r!!7}zpZmy5W$u#?zC_Bum(6(4k+66 zhWSKT@FkO~stoMo&a*d2MCqLb1@|GMtOAMN--A>mdGA1sAXSO%+udzFGsENYtQmxz zkaR#fNn$n+=(z?^!M^OOC{kXV1DD0whrVwCE#H(}k}^w70-6iuH{B`K#n`R=;tjP4 z{`49+-;0y3zLq!Hw@S@E7fD0*jZ$_U;Q~T9kMKF|#9#~Gh7}iwtX5Q8!q~H@N@;Lb72VS15_$D#EQ8aKmx~|GY9}nz zl{^Q5A<_^+J@$Vu+Qq}i5Oyd?+==)jV?yKjy0;M+AnVf6okh0i`#xHjwXwH{nr#W7 z2F>#X!3W0yCz#$hb-7^B}z{D6LvNM!y0&Y9Dhd3Sd9otd{K zXwT+(@9+CO=RDW*JZJWux3~P|l~-^4tLJO?d2756m)3iimt1esF<{ze&ui8J@Zr+Z zlD+78I=s|AMkDYa(YjX5yIydaV4VP-uNPb)*dX|X;6}lff~y4E1)BsC0dI={{$E$v zZ`J-;!F6oFrvx_(ZV`N15E0xe zaQeSj$JhY$A3K2lV+Wl6->u^oL95^%L7Sjm&>`p)JSylG^ay$deS&_$F2QcW9>KkW z`vmt3J}Vdy3<{!xm|#dSEO+qM3T6aP333ATBrli~ z%nMEno))0Z&j=O;X9VB|zM$jh1pkPx*S7w4gI?V*x{#TeoSRK$q0HMnvJg2so6JR` z*-So{O&b-ydLS_$&rBo}k>R<_L_V8J*vqkaK0Y3wO_pE2Haa&wmyYLC^Zpy76RBh- zpPEcf_}|E8=94*SD8F%yFeL9elA88?Y0JLsRB9sLB!U5Ce$tGh4$9hw<0JbbqZ22R z)9}i>Dwc|;vs00wL@J-nnRk(!n51k>5;7p^c|!ZFIFU0t9My3`d@bI^;&e!Q+a$H_ z>X^Q9nP7v!(WJw&=B}fw&j}jGIjV0YC4Y00w<#UvB)4(N(S&3#S#dPV2+|4m2VI9I ziPe(-ex>uZx`+*+`SD|QlcM32q&q8Z!zUR@v5zm??ob2@Ue}gAP~igO{4NGg&5wUb zT7%`C5#E$2$W+CSt*RYA8i#GA`SA~%J}1f~$Ua$lEBsB!F7Xy)Q2D9ytH{_l5hgX{ zwN+eaq!a2d{;u2yA)%!{sa?-cm{Gz06+UCW)yM|j1(V`aL>8CmVNOq{bvCMNbLtKJi-_9&vg$|l<|BHqS9{*hYwvk4TqKO> zR9Zcm6z(xmie(r(fBsR^VX0$0>TAsvUTfr9h0j&JG$uZ$#qYHEkKPi+jY*QCk_5~9 zQ6on)dICE0?qHuQsCf0#J;ucvQbLzJ{lV0}cZsDs{F{S9kBVd%Ee z_XiN-9y_WV2tUN)%opz{xj7&?&l_8fokTC-rL|kK$vaCPCBPn6$K!$pDFsSB;m!H& z&xkHhYXo_y+$!i>724f(*gxWRVkH{(HZPnxX+PRq)O2eDP8u@v8ZB%wPnLUxU9x}J zvs&!`HF_Q&M2qRW8V2>*ez~;I2X$}O4E)NTpiTIZnOgAg)AM)Ygw(3xcXOeb;cDEz z;M=y=G5*);8^;UZAyP>jDYAXE<2Q;HY*$ zLU~d)9b3N=kL{C{x3|>Me{vP0D6U#j3-KXI`M=tzVE&0L)xv+`Z-ZPLC*|k?_6f~H z8}MO_J@bKT4gAP6eF{4Mn3vxb!u~@MV#$Q@y0gMKspu8I>Y~>P9VbKuUd!H{*HJNg zJ^nV@*Feh|1v8e7`Jyv>PUZ)Nb=Hi+!uFEe)x>m>d7}HykY+WIvxqIN<#!f) zaZkzH0}=>CqMY2;WhP^vKC&PJmtvjgJ1H0UiX5^Kc>gU-^Kh7o)Bw4r4g|j$ab|% z4EY~SdA<4%{$j)pM!zMXmn%2)f1_^Ki=T*JVnfQrNv%IpD0PWNQjtpZVzE>&qN0C6 zLQ4#0qxTu{((;8#GwxQ69Cv`dUx$i*QPHa-a1IM=i_V~DSbtrD9-VcXBdAEo z3Kd6uPIml&@kFIq$^3_l^{|{E0iumkgZF<==#Cm-q9V0!paUo2sjd3ANO6uoAkH&Xcqu4Fz5g_foItI@X8DIc1myyC)N-rkG6Hr6hV{C_R79~`XlWRoHx!qsH_%q(7vmh%vZVabC4sc(LKgF7~`%$9=*M6@$iNAj6&D zD67(Lislw(^YL`#aB?P_%bUsfT1vDU0k3)?R1a(($&RPe$;h$fcw{)6n>MenFFV^1 z%}&o`Gb-Vln^zr6WfIxbv&F~PK6qq={HV7vnoiA(XXCj<MPF80qoTMdWw!oH{vEnTHEz?&&657A*6OK$ zl6xji7FKh)kD&RVu<*L?e4O!D%4XPp)jpRhW`&o}IxFXe>YumOhs*YCM)J*S4NGNh z`EGyDlIQcw8R<%;{Icug#m8!Ui#D&^TPMS%d*T|R|6UW};5#}Cek-bDyj72hfACq= z_^|R^-C_$PkMi!%*O(kFUmVkXk7i3d@PZ6Gb(FN3qvg(9eV*DUZ@;hJ4)T8SO}=aM|Mr`Bqt)_@VT{&t zY}Knf{vK0|C@mt(i3bZaY=QxSVJc6E)U7~-2|iBzOu>D&%8A;9U!`oIeWsCT@^l^#Vf)Tq(QD8%iGoph)n=r4}gkvOC2n?At5Cjq!GUX#A z>(icVZQ3&hLG{`+N?khVZI)NIcXTSwyWZQe_E*gcTbGvZY(Agl`SD{fuX}Us<#h;U ze(QE4o6j{Z>icc_784X-y61U4_(j2&1TP4_EclAxs{-mYm)igK2pIXRCEZulReznx zAN;y-ywxo3E;SqeC#|Mj2)$iyu*|9#SqQtHhQ(mcO}T|_7e-^dRbso|`_Y(zAj|DI&;iE3ww^w6N&_MOSmbO*+!Ak}qDE<*WySadbj0in- z>m1x{h3Z$ec|&dC6OnRpz06bMxLq$(#FhvVTQRyWU0qYeH5MW+!qwvP%p#63tJ0Qa=~E zW#N%;>X}TyY&DrGGFpH}pbuyYwKnQGOiHOsx9iP8@nJ|?>%)WVLYP<^<3gB})XxQ` zxJ>=27q1jaQKg{HM!h1YX9u+<#_~r}!MPA7*2cIHCMETAfovT$%`QndDTfwqk#JWR zLJNp-sVol_xX_`yXb$>=7De?;Z5Am^tc`IYOiJqKLXR0o(mB-V7<;^LRL5AP9*sU4 zz?v6ofi04Me08VJ@#Z~-XC#Me;lj%KTYif%qIfKA;+V>n=+YH5w!+9dAy(fY4@2rl zi?-0o5vvgf%n_AF(u1rgVdY4_p5`rUU2W>GmIxzEtc^)hn3U8nN!0J!G@7hQU|x!> zU@>dS-;-#pMUsds!^7Gb7s8~ZelFN}jg@hvR&9MB`-LB7e{= zt%&KJ4soo#MlOVjwJ|P)Nl7DIU_4oqXe(00bX>uLvYwH(4%VthjebP+B%Tc(u;P$f zSM6)qdJT?nur|tt@cLgr7s6cs5z$;MH&W#1?8 zufiGDHCO(tbtU$QvUpU2?MfT+wXTu33uC1XYsdH&;BW3ay?ap*Gqrfzm-_xsM38Y9 zliiy(tDhG%Zl(D>x9;h7(Q>(9wMRtu7KTYl{aP4i{v$XS!o=Db7s8~Z zelCQW{|L^7FtIkqh1Dp*4)DK`{1%tr#00T4tyL^daW;9$_VQy%XM6d1BDR-3zeT+m zV~>w=Elj`n(7;{iPCoqIKYsi9!yo?id)5O|N#yr8uC`Szf8hM1qs{Hzb^PWzL3n<% ze2LLz=D&Za%t0$zQ*%eP`n>+7mg@7y&8$87lbNIc{$TjEr>=bUjZMkztTwBq|LOAo zR<(5`p65SJ<@K+re781_=5tyIUH<${gQ;hZ#M7rD2U9c2bSlGg?$QO;TiyKwIsFH# z*?dl4&Sp&Mc2g`lpPHy8|6RWo4m1B5+zN+@wJ|FkCMETAAqA)TtGNf-t$Z`-_nrvk` zO)5*_BwHyWOD0S4)no~c@6Gjn=UnG{ujhV#_wWAw?&taAy&sUw`veX{fMni86#6K| zlCmKPaanl`)>!mP@U^4dIzw7%ks+IG#Yg za9HgLiGev>sqtG_+dCosBHXH{bn}$rAk8dpx4qtq)zZ~kX;TOvH=Q>rWiVBa^-pMU zoqG3;MC@bJ$+u@je5HXMOYm)2)yt+JhQ0OD`M2!AP5=jNX(WS^+U*RC0e$Q|eDQrH!Mz1|;Dv zhN^bp?@3+ajL>C%BaHJS|E+w3tfsuXM4+(x1$LemT{XJdufR(vB@y_$_;f$H2v&Ze zAk*HqA_;7fYYoe(Bq6MviZR$TVHKg4SYSq7iw;5L$E*!qf2Cz9VKg+*t*~hRA%@Fv zbGSa6(NVqJ@ZU#I^jb$4pL;!EuPkNrC4%4P8{_-X)gwi-`c)T$ z&zPYqOurK*?QcoaJ-F=#&A7DEH2$_8X{Y8U0Bf1~ae0_p;znEAeCsB(^K6`fQZtj4 zCZXM4xUUl~a!l$=N$|48Lm-=AmvcZ}sk8Rr{F#cK}1dgdY zksjYk!#KX_*5H4kQ$jCrG*NIdYCQ}jUdkNqqqM2UvJk|I;C_zoY^$a&C5lXHIe^Tq z#zg)HNAMh{zgfTgdf;QyvyYp%Uy+|$FFw_~VcSd1eYJKdRMBQg`{%1FD{KzkFdaZ);4W9uen6ZvW75TP;XBS}cXIBpKz+im{Y& zWEckA|JQ$x7RRBGNEiSBUSl1NWR5z;4eS2W7sHIto(90XRS%0Kt^Pzpo&M zOUaT;p#qwK4uFT0{!nimpbda~y9R{t5Qm5A+7OS2J`nJRq6T!9F68lpvR_WGJ){Sz z`~f{c3({ht=nv&SdkDX$#zIP8$e{~y-cSc$2x;y0^MjPXx@ki%f$Lw_<3W{@k(Lle zfWrW2JN9=4_K)#L{ThFtB#$g+&6Ur;#y^>i6lr5~mv(F<%lxRcl>*qr^upP`dIX$2xj$HzYPRwwMo;OcqvrA59Wc_^pu&G44XjRdxQimDsn}AQ zzfO}g6Sk+_wfR@9IE-2)kgngE+Tq&hT^Y|y`~KcfK4Q_NKV5TG<|^@FHBX`#23fDuTT)8-7m2Vh3?t7;VVq^gr7 zg>!;ELUcq}8*1;k!p_&8OErZwP!yh=(-=GB6X{Be@J>(&x#oat>-4BCv)|989z9aC z%jI>$Ca*6%WslYS46TjE^`w&N{yzHKf2hTt7KiLZ2tU;IpC#sqV<-MP1?+b z_A=I?8ox;Q{2hzD6gd9nPUNP9^RVR!Yk!trJ*`AJ=?n(bm)ei zSU}pJouZ(55S_A{IvZRV+qby=ar?Vdvu&D0z<4Y@?GwCGpDK!w8sC@IM%4= zX$8Bk3U?ba6qGe>9Mn<%>a1(WH){IFSr5tLN4I449_2-kl|7H;zFQMmUVRXWy~9%y zi1fvC>U9bQ!R(ev@x{;BQ)X7f6EZmLdfWqQ-9qOXwMdV@#O1-+>k zc-Krp<}?H(h)%*F_0h$RVfA~83^bVDF(bD5J9>Hm4OHm5TnwRj)GDL zMClMvkzR%_O{#biq(rK8^&Wlhoq6WRUgz8I`qtX}$5|W47I+JVz;JAVK!hMV+&p|k z6v7WlXA5}2*#hn$cEz#bh<~JD8*nyk6~~4xf@>Zj{J$y@AqX^`4K2s9p~W~^gwX#n z*jx-Q@MVyU$#*hJg+lqe;cRHMxi-yV#)^Wv~ma#3Yf zn^I*@1Rsrh0=LwX;F$X(tv*+%6(9s^qaIs|K81 zcb>G_J{3Mz!Xl?$jhBxfGU@SsGTXY~JwAB6gyZ&`z;ZQ9KxcjB=x_2Tw2gQ zg?4CzTOvrEKlsVJQZpycr(y)JdSxQm|Ivw-?@Hy|FGbI3am9GfZ+e66=IlJIT`kOTZmq0G9zD;0m~yz*RsIFax{+ zH-HXC2H*;~faC<|xC!`zSs&mcsOg|~`&Fq3SpTZ_2X`)@`!eYE2k?LffWw8P{Cx!! zKIDOX2nWm%fTQ3!Oh603ftmnDJ&-tqga~MZJ#b)mEkFlk+F(Bhn9=)Hg$FqUxB#-B zgaG>WKnEVcf{_XC8NZY+SV;txF4)N#)L1amL9GM2oI&aeI*C6c_!8Lubv=GWIvZ{d zA`%n=fS+T3XCVI=f5gx6FMK|Eihs0?`g8n)*>EHo^)+66I)+t9V1_%v^L&tEvH zTi-Hf#j|Nc5@Qb;W{b6)Y>}({U3>__+s((;|mF| zK4~rGo>~>;!wFbyeb%$Kw$$u4x1hv*Fqwl9F8*51jgr7?jtfb=$-{UJyRUax1Qw%Q3 z4tKQ2gz-2L>Xd{1H6LKDf#;J6DxStw3*UR5t;&bau}Z!Pc?LJWGSrQ4@gOh5^W;== z)AmO_aFI2o2DE9HN7@mrl7$xHzHB9oP=|B-l&IQX5nGz%ti1i186w#q^L@P~TjLyW z(fBS$j+NAlbT}+DmlLz+hr1Rw(*3sPQnSy$^u)|zHEq*cK4HG>bz6JnwXvr7EW#5;FOGwOKhUNLyV^Gg=c*r0o-8v>>Es%z zzv5lM%hnU(fe86ep^)thi36JMh3c8_mdL&(|Jus>eZng;bj0X$Zz%LD4Q=-Hhu>1N zmSi~Yv+r5`$Qj9c{$nY&c})$e*u7s1QGLyu4^^VX(DDSvkkjBnCOK#`3Y{%gQ>@rI z?k=?g6H60%9kJy-w#K6}b$l-*4A{@1-W#c_p_x~TFy=~if8LTK01BN?QDd`_eeO{cH^Q literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Setup/Certificates/CompanyB_PublicKey.cer b/SAF_VS2003/SAF/Setup/Certificates/CompanyB_PublicKey.cer new file mode 100644 index 0000000..34effde --- /dev/null +++ b/SAF_VS2003/SAF/Setup/Certificates/CompanyB_PublicKey.cer @@ -0,0 +1,23 @@ +-----BEGIN CERTIFICATE----- +MIIDwDCCAqigAwIBAgIKYRVvjAAAAAAADjANBgkqhkiG9w0BAQUFADASMRAwDgYD +VQQDEwdEZWxsNDIwMB4XDTAzMTAwOTE3MDcwM1oXDTA0MTAwOTE3MTcwM1owEzER +MA8GA1UEAxMIQ29tcGFueUIwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAKdw +e2Z+5+GjBIYbOAjphQRFAO8sdxQ78NBvvi31ql9TPJ7J1iVw7/RTN39p7B1WG1To +59eVDdY0btgQw6NcFfVkd5ZzYUKRXAFu4yILgvUfamIwfCQYR6y2Q3/ao9tgURO4 +rFwtMSunnJIR0RxR5t+cQuBC0fGu2DqNldNCfDXhAgMBAAGjggGZMIIBlTAOBgNV +HQ8BAf8EBAMCBPAwRAYJKoZIhvcNAQkPBDcwNTAOBggqhkiG9w0DAgICAIAwDgYI +KoZIhvcNAwQCAgCAMAcGBSsOAwIHMAoGCCqGSIb3DQMHMB0GA1UdDgQWBBRyC5BK +zX7Q1GBVq4E+noZe4BRYITATBgNVHSUEDDAKBggrBgEFBQcDAjAfBgNVHSMEGDAW +gBTtPRL/6OfaUWW/BVAxYkAGMnHYvTBfBgNVHR8EWDBWMFSgUqBQhiVodHRwOi8v +ZGVsbDQyMC9DZXJ0RW5yb2xsL0RlbGw0MjAuY3JshidmaWxlOi8vXFxkZWxsNDIw +XENlcnRFbnJvbGxcRGVsbDQyMC5jcmwwgYYGCCsGAQUFBwEBBHoweDA5BggrBgEF +BQcwAoYtaHR0cDovL2RlbGw0MjAvQ2VydEVucm9sbC9kZWxsNDIwX0RlbGw0MjAu +Y3J0MDsGCCsGAQUFBzAChi9maWxlOi8vXFxkZWxsNDIwXENlcnRFbnJvbGxcZGVs +bDQyMF9EZWxsNDIwLmNydDANBgkqhkiG9w0BAQUFAAOCAQEAOSYKSM2qN6PqmC4q +pB9t7aYAIJNM+sQrN5xn3Xa4OiqtxK8SkSmN3lAMONF9ExjfLR1OnV9Dn8/3RVdn +hosc4giuVeDvHH7IkcNyn6FeJrVRTsc6bxhjvMPiW0/lpLTkLaXNQ1pIJe7Xue0z +eVO9yabq64vuzl8m2pxei2jeki5p2ykhOO0PqhjNyaT7bsgw3hJ8NIjzsqCrymsL +7HMBRrzOX+zXg5fyDl6n1Kb8qlQQBqLEEqR3ZlWxpdd07KaSYzCK4fvWUlSeNOpK +xJXqJ3h6izR0xtWawPYUTmnI8Gnc/eyQ2gHnx3hUGqzSuvuiEDYmi8ssNfELJows +IwoHSQ== +-----END CERTIFICATE----- diff --git a/SAF_VS2003/SAF/Setup/Certificates/Dell420.cer b/SAF_VS2003/SAF/Setup/Certificates/Dell420.cer new file mode 100644 index 0000000..0ef71a2 --- /dev/null +++ b/SAF_VS2003/SAF/Setup/Certificates/Dell420.cer @@ -0,0 +1,21 @@ +-----BEGIN CERTIFICATE----- +MIIDYjCCAkqgAwIBAgIQelRz2WDSx6lNXeEpgoPgATANBgkqhkiG9w0BAQUFADAS +MRAwDgYDVQQDEwdEZWxsNDIwMB4XDTAzMDcwMjAxNTAxNVoXDTA4MDcwMjAxNTYy +NFowEjEQMA4GA1UEAxMHRGVsbDQyMDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC +AQoCggEBALIM6q7qbV4KDv4xIc3AhYzlaN9wFzgW/j4Jm/ig1hnIPWeA22HoZGVL +vWJ/i7qfVLbcYNnth1Ti+H+EjMNSCZabOuvq9x+YEf2J3RNU7oIZotBXNbj120bN +V3tlnSpitzJuPc8erlPDQ9elugP9rHPFuL2noJ6SPmieeh53nlzeMrv9dLC/CYdZ +1QZPQk0rYTyRRlVREw8SsE2jBPOYLC35BtZ1mDtX7VG0JA5asy+/kUgm/nHecZ2f ++ln4HVoqi4eFxbGn/JBJgbXq4+CZc0HzV7prS8W8g+D8gHJvIascepiSEslKIFA/ +hkU+ZuROmJMWU+SQs0sDDh37+5WXwwcCAwEAAaOBszCBsDALBgNVHQ8EBAMCAYYw +DwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU7T0S/+jn2lFlvwVQMWJABjJx2L0w +XwYDVR0fBFgwVjBUoFKgUIYlaHR0cDovL2RlbGw0MjAvQ2VydEVucm9sbC9EZWxs +NDIwLmNybIYnZmlsZTovL1xcZGVsbDQyMFxDZXJ0RW5yb2xsXERlbGw0MjAuY3Js +MBAGCSsGAQQBgjcVAQQDAgEAMA0GCSqGSIb3DQEBBQUAA4IBAQANf+P55RPAPJaa +Q5peIXof8PDuGTH03AyOjfEclwaAHLGk0dGTSEOre19nkAx1Cx+cm8iH9R7l9Mf3 +g83sL+IkSx0ygxFqMo6JhkRBBz/2IvtZSf5VL0Cc7LFNDyc2jAJj5MQzKob5Dmoz +D/NBOyN+FOLxFcZApiAsBS1cyeaUsgRZChkw/CmNDQWpGPzIdp4CzBNCFtjUHlbi +zunxL7aV7TUCcSDhIqe+n0df5UifAtPwCBQdEBFk09EhLaJ6BtGDhv0DMm2rluUt +bRjmwVLL8OWqwYX3jFe9py/jlcHSF80pj8Kb+n8YA7Ucv7W7ztlvYqAIbCH9maCh +1C64h2IN +-----END CERTIFICATE----- diff --git a/SAF_VS2003/SAF/Setup/SAFDemo.sql b/SAF_VS2003/SAF/Setup/SAFDemo.sql new file mode 100644 index 0000000..0dd4e68 --- /dev/null +++ b/SAF_VS2003/SAF/Setup/SAFDemo.sql @@ -0,0 +1,23 @@ +if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[DocumentLogging]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) +drop table [dbo].[DocumentLogging] +GO + +if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Employees]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) +drop table [dbo].[Employees] +GO + +CREATE TABLE [dbo].[DocumentLogging] ( + [ID] [int] NOT NULL , + [Direction] [char] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , + [Sender] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , + [Content] [varchar] (8000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , + [TimeReceived] [datetime] NULL +) ON [PRIMARY] +GO + +CREATE TABLE [dbo].[Employees] ( + [name] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , + [ssn] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL +) ON [PRIMARY] +GO + diff --git a/SAF_VS2003/SAF/Test.BusinessLibrary/AssemblyInfo.cs b/SAF_VS2003/SAF/Test.BusinessLibrary/AssemblyInfo.cs new file mode 100644 index 0000000..9f89a32 --- /dev/null +++ b/SAF_VS2003/SAF/Test.BusinessLibrary/AssemblyInfo.cs @@ -0,0 +1,58 @@ +using System.Reflection; +using System.Runtime.CompilerServices; + +// +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +// +[assembly: AssemblyTitle("")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("")] +[assembly: AssemblyCopyright("")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: + +[assembly: AssemblyVersion("1.0.*")] + +// +// In order to sign your assembly you must specify a key to use. Refer to the +// Microsoft .NET Framework documentation for more information on assembly signing. +// +// Use the attributes below to control which key is used for signing. +// +// Notes: +// (*) If no key is specified, the assembly is not signed. +// (*) KeyName refers to a key that has been installed in the Crypto Service +// Provider (CSP) on your machine. KeyFile refers to a file which contains +// a key. +// (*) If the KeyFile and the KeyName values are both specified, the +// following processing occurs: +// (1) If the KeyName can be found in the CSP, that key is used. +// (2) If the KeyName does not exist and the KeyFile does exist, the key +// in the KeyFile is installed into the CSP and used. +// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. +// When specifying the KeyFile, the location of the KeyFile should be +// relative to the project output directory which is +// %Project Directory%\obj\. For example, if your KeyFile is +// located in the project directory, you would specify the AssemblyKeyFile +// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] +// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework +// documentation for more information on this. +// +[assembly: AssemblyDelaySign(false)] +[assembly: AssemblyKeyFile("")] +[assembly: AssemblyKeyName("")] diff --git a/SAF_VS2003/SAF/Test.BusinessLibrary/Class1.cs b/SAF_VS2003/SAF/Test.BusinessLibrary/Class1.cs new file mode 100644 index 0000000..1d285eb --- /dev/null +++ b/SAF_VS2003/SAF/Test.BusinessLibrary/Class1.cs @@ -0,0 +1,22 @@ +using System; +using System.Threading; + + +namespace Test.BusinessLibrary +{ + /// + /// this demo shows how to use CryptoRemotingClientSink and CryptoRemotingServerSink + /// together to provide an secure communication environment for .NET remoting + /// + public class SampleBusiness : MarshalByRefObject + { + public string SayHelloWorld() + { + //retrieve the data slot from the thread which contains the sender's identity information + LocalDataStoreSlot dataSlot = Thread.GetNamedDataSlot("Identity"); + string sender = (string)Thread.GetData(dataSlot); + Console.WriteLine("Caller named '" + sender + "' calls the SayHelloWorld() at " + System.DateTime.Now.ToLongTimeString()); + return "Hello World"; + } + } +} diff --git a/SAF_VS2003/SAF/Test.BusinessLibrary/Test.BusinessLibrary.csproj b/SAF_VS2003/SAF/Test.BusinessLibrary/Test.BusinessLibrary.csproj new file mode 100644 index 0000000..2d736d7 --- /dev/null +++ b/SAF_VS2003/SAF/Test.BusinessLibrary/Test.BusinessLibrary.csproj @@ -0,0 +1,100 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/SAF_VS2003/SAF/Test.BusinessLibrary/Test.BusinessLibrary.csproj.user b/SAF_VS2003/SAF/Test.BusinessLibrary/Test.BusinessLibrary.csproj.user new file mode 100644 index 0000000..686cccb --- /dev/null +++ b/SAF_VS2003/SAF/Test.BusinessLibrary/Test.BusinessLibrary.csproj.user @@ -0,0 +1,48 @@ + + + + + + + + + + + + diff --git a/SAF_VS2003/SAF/Test.BusinessLibrary/bin/Debug/Test.BusinessLibrary.dll b/SAF_VS2003/SAF/Test.BusinessLibrary/bin/Debug/Test.BusinessLibrary.dll new file mode 100644 index 0000000000000000000000000000000000000000..fb1060e7d18b4f585b1aba206cf004941ab5ebf9 GIT binary patch literal 16384 zcmeHNU5Fc16h1SXZnxVunr%UgE6%!=uC<12ceQGZO*YwW)9#;5y47}Rcaq#@r=4Wt z%)~Z6NM95M!3rYkldnD~f(5G}f`|`-;HwWpAH-J?(FXYwBW7b63p>?K919sO<#>%HD3ownHyY6U`cZ^u`y@XF980qxi^Xqo3$@ zj9Ag=>0NC-E&YUy!_IlLbgpy>9i9ilzA%iA^gGu-&EhkFxCPeIL@zQCH_Hmq7K~l7 zh=y;r-Kr1&fiC+1`iHyv$xvMk(XVU-z$Q7i^F~j^B3eoMfnP>Xa!W&D9}BHZ(#SsP zE7yY~=SnMR?3Y68k~Gm&S68c=0nLDBKr^5j&Gy|Fe&46Y=Gw?rRAkB3(glkh1 zEjL2+`353`2mgj_OT{RQd6=K@0gbUZ(cobJ*loCk2^co}+c3P*A7>+~)WNMoePb{T zjtw!uIOsnO+m;7tU^i_`8N?+ri#fI(#@(WK-WPDr@TRXVG(m8KK*U_ z-PcaN^45DVzk#JG_tq>iz*0{Q_aAst00(lO1|y4 zmc7!s<(w)tt3A!hMx}(%G*vh#x&j!U!Zf6-`i2|&WjX>EkPG) zh;|5$0PmptMIRS@R4^l$7konSDM4G%5qugrOf4EV?*%?+j?t?$Z6<+p<{-U9r_Bj^ zlWOLEu*xeZ!Cn!#P4F(k3Bmn>S;3=%1;JB-Wx?}wlG2o?Sz4snrD*5h_kR}=fPF_J zFY*l&eKb-S56pR$rmG&OULVM0#dWC`ls(^dN>peCp{miG?FXy2JJmX-&MuVBsd7jK zyVh`3=hNIX6nt8TmFs#Z5UfJUa_IT(h)D!;5ytWAlnDY=E4i(ssx@!dR3^m7w$uz& zw_(O{dl+)cwOa+JT3Mb&Koe2+O^qvbo*)o{IO(Fd31 z9)_$}YuNSH`WacTe%7freVaGG-keiG*>@VfjYTKy<{`Q}$(&s}B#<$&Z-QngDx z+={EdvMYEZP^8hUSGL`p9ohxl7*%k+kPfMk??FXI+XJjq^eiFhs_4`dRaJOq-n&3W zZ`P|Gy|Fe&46Y= zGoTsxXBn`f|1-X_@1I>pN7oE!1~dbj0nLDBKr^5j&Gy|Fe&46a$-(%npyYoJr literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.BusinessLibrary/bin/Debug/Test.BusinessLibrary.pdb b/SAF_VS2003/SAF/Test.BusinessLibrary/bin/Debug/Test.BusinessLibrary.pdb new file mode 100644 index 0000000000000000000000000000000000000000..0a236bf377d5c690eddd356c8d5ea1d403c95734 GIT binary patch literal 13824 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 I4^9UD0x&B1DF6Tf literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.BusinessLibrary/obj/Debug/Test.BusinessLibrary.dll b/SAF_VS2003/SAF/Test.BusinessLibrary/obj/Debug/Test.BusinessLibrary.dll new file mode 100644 index 0000000000000000000000000000000000000000..fb1060e7d18b4f585b1aba206cf004941ab5ebf9 GIT binary patch literal 16384 zcmeHNU5Fc16h1SXZnxVunr%UgE6%!=uC<12ceQGZO*YwW)9#;5y47}Rcaq#@r=4Wt z%)~Z6NM95M!3rYkldnD~f(5G}f`|`-;HwWpAH-J?(FXYwBW7b63p>?K919sO<#>%HD3ownHyY6U`cZ^u`y@XF980qxi^Xqo3$@ zj9Ag=>0NC-E&YUy!_IlLbgpy>9i9ilzA%iA^gGu-&EhkFxCPeIL@zQCH_Hmq7K~l7 zh=y;r-Kr1&fiC+1`iHyv$xvMk(XVU-z$Q7i^F~j^B3eoMfnP>Xa!W&D9}BHZ(#SsP zE7yY~=SnMR?3Y68k~Gm&S68c=0nLDBKr^5j&Gy|Fe&46Y=Gw?rRAkB3(glkh1 zEjL2+`353`2mgj_OT{RQd6=K@0gbUZ(cobJ*loCk2^co}+c3P*A7>+~)WNMoePb{T zjtw!uIOsnO+m;7tU^i_`8N?+ri#fI(#@(WK-WPDr@TRXVG(m8KK*U_ z-PcaN^45DVzk#JG_tq>iz*0{Q_aAst00(lO1|y4 zmc7!s<(w)tt3A!hMx}(%G*vh#x&j!U!Zf6-`i2|&WjX>EkPG) zh;|5$0PmptMIRS@R4^l$7konSDM4G%5qugrOf4EV?*%?+j?t?$Z6<+p<{-U9r_Bj^ zlWOLEu*xeZ!Cn!#P4F(k3Bmn>S;3=%1;JB-Wx?}wlG2o?Sz4snrD*5h_kR}=fPF_J zFY*l&eKb-S56pR$rmG&OULVM0#dWC`ls(^dN>peCp{miG?FXy2JJmX-&MuVBsd7jK zyVh`3=hNIX6nt8TmFs#Z5UfJUa_IT(h)D!;5ytWAlnDY=E4i(ssx@!dR3^m7w$uz& zw_(O{dl+)cwOa+JT3Mb&Koe2+O^qvbo*)o{IO(Fd31 z9)_$}YuNSH`WacTe%7freVaGG-keiG*>@VfjYTKy<{`Q}$(&s}B#<$&Z-QngDx z+={EdvMYEZP^8hUSGL`p9ohxl7*%k+kPfMk??FXI+XJjq^eiFhs_4`dRaJOq-n&3W zZ`P|Gy|Fe&46Y= zGoTsxXBn`f|1-X_@1I>pN7oE!1~dbj0nLDBKr^5j&Gy|Fe&46a$-(%npyYoJr literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.BusinessLibrary/obj/Debug/Test.BusinessLibrary.dll.incr b/SAF_VS2003/SAF/Test.BusinessLibrary/obj/Debug/Test.BusinessLibrary.dll.incr new file mode 100644 index 0000000000000000000000000000000000000000..152add45d67dbe49664699de35ff7283d5043312 GIT binary patch literal 1334 zcmcgrO>5Lp6g?ShiysSDt{(_hgbwzD7OhaGNk;~)f^D^nNJ%ouG@48#?~S4>SE8Hw z6AJzU*9E706<00YcIT%5z;oYp$`rcj#(9sEcXRK{%enWS*Jwv&oX2ewWNNvSW=-V< zCQwOHD))wRi~Mz(#ig2>Qf52VD&d>brYK{rnzGRpDsBfMy-A>rD&tTN(bdaneEHCu z0C0(rQ6a{OD};v?EMo%?u!wa$MGY=JXN|ETr<`zV+`ig6_||hCUg&!lxJ0-IAJ5Ui zWB%m{tu?-{B4wmR0Zk+@s4~97fBUG@A0S7Jw~Uo|Mc*4tbBACKvzX!ZdCoh2ZMZL| zzln@fh9i$Zf8T%I`{7iMDc+}RR7^awH^eX}OXGU}NvgAd%xQ6ioHkkUN2eIs79~qZ z-+%U;7Z;^uz+K}1RVin;BHPi7-49RL%q{qbzjt<>$!i;S9afdF+$21!qBZKWjxBb+ zK!?hR*n5|DldI^VAALq^26s4TPrN>r6jtZlF!L&z qYI5wewz3%i{Hry#>kOzaF*Zu3F8KwPt=xWLH((+)rB*66uKxg{BIED? literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.BusinessLibrary/obj/Debug/Test.BusinessLibrary.pdb b/SAF_VS2003/SAF/Test.BusinessLibrary/obj/Debug/Test.BusinessLibrary.pdb new file mode 100644 index 0000000000000000000000000000000000000000..0a236bf377d5c690eddd356c8d5ea1d403c95734 GIT binary patch literal 13824 zcmeHNO>7%Q6rObragrKpeuC-(vQTJC8f+(Z(-2jPQnyhnQhu}nB(M~1>@~5vu`90& z$^}^haYE2T4h0El1vdf`;)YbUhrki3^u!ejBra5~ic|?T;rnKHT4Tk?`Eg{DdCBLu zJAXU#=FNL=X7^MfTQ0e!d?l7nqz@d3oifK`hvUg)xGQ?h6rh0o7khBIzD zKmr$T-dWbPeI*bI2e$9v^~jgs?i?_NX~%Z?01J!dWte?0ja<`~mB8)kmq&l>xE48Q ziYqUE5xBT`{P~an`2FX|xl!-F`_uPdkL0gKF7*jlp+Dig^ zeoY!xbgAdtANI`z7Y)wSYREug+6u*4m)Fz}wtXjbv3SBy+vjr|TvK~UfOE8fuI%0Q z%5PUMFB)8{t0B%k{Ws^Fu^nkO^Zy~r*Xzm)NTaSWPwNVV&_bfU{u1~K;670K_%g1m z0M{<#V~$C#iL>xJs*^Q|9aSPwBK5EnQ!_&bi^56WNiBYvnT)+pWZ>&$@-8 z?Yd53x@?u_GFiuR-GO-46(T*7F~`O;lPq@BFE-&9OW!R<4dIMa6G(gtwMbJtNkGm2 zPwdo&&i^r~B~xbUY&mPEOF5fLGxe%Dm`omQMt^cr8K+!XKg;^i&8fFsS-%N2?eN8{ zbdVZO9i&$w(W+_UDjgDi5lUj1;sMp}0gxo!y38`Ixf8bIlwK>9og89Du_MCzDP*cT zEY~G^Bj%i2v1eIEUB@S9%C?m&6yM}CqDWuKfH05snaArs5sNU!0AwHOdD3QY(xZdw zBB{#K!T>9j9aLopSoTS@OOF2gWrfID70Yx=^0`sub1e6sD}-wob2c1f03sm_{BaLN z;`mvffM_H!ZN002&meJsbrYE64T$M%pF~ZjpC+MPl|CASs`5P@&eE#Sf#b}rItGsZ zR)b<(1jQlX9bh-)6%@CSN53xpfPW1p9_LRB$s66qK7ixU)SLtu??pQkH>h7bq3ln9 zb50bRYh~@F^!%?~cAHs~XF1a5O6$3qPu9 z`kZN}lszpHZaJIC7aZG7G#5XzImQ%R`Xc~|KA35$X{NE{3}Up9nLxCJ3yZMc8Lqa-QwL4ef=3A z2J{0JKv54acFUVTuc$Qd?clw$Lv`=vcZwsh^lZ-oX!KvY>hKYgR@wu`O>6dyW2>Vj zkv^O{G&YzTVufeFkKbS$B(?wX?!4asc4lE&z_@#s$#NmYwj_>Mac^&Bh`mT?&ULMK zHz$NTZ}Gdxu6V?bc@&bJ^sZHI%lLeJz*xBT-YDn)uhjf^zg+(N_}BAqeDujTADsUT zX^DwK@$|`Jz9bSwYu0u>cRz!Tyj@2SSf6?oNZD1{1%A89?l}mY+x5be1pEdeb7Edeb7Edeco?InSK09kK$_(ihxiTBaxXLQ1sWY_|`a5Do z8d8@$qmlxh>Rb){o4Qb>6L=vyf|qDZ8$^_pS5ZgkCY+Y4Ff4Bk{pH=qzp7=Pwa?MA z_B>l#OF#1OGFOFc0f>nxP(|P~ufVQ)1q(gLOLzZTZQd&l>0X7pW9`tlIz9QQ+}33Z z)WHqwW8d2#gKcYs>0-XV^gHmE4kQF00^4J@wF}-9~W&yW?gX*SfZjk?CsR literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.BusinessLibrary/obj/Debug/Test.BusinessLibrary.projdata1 b/SAF_VS2003/SAF/Test.BusinessLibrary/obj/Debug/Test.BusinessLibrary.projdata1 new file mode 100644 index 0000000000000000000000000000000000000000..84a1b023b0143c5c18c01c476c6411e1fc035933 GIT binary patch literal 1288 zcmeH{yGjF55QhI~l-P)ssE7m`qo8;J3%eKz3U(2-2*@Vch!Blrqp)DHl_-e4ZzGro z@KJmN{bu3?5hNg3WtM+u_RK$XX6IZUCdV=ZLekP>$_(ihxiTBaxXLQ1sWY_|`a5Do z8d8@$qmlxh>Rb){o4Qb>6L=vyf|qDZ8$^_pS5ZgkCY+Y4Ff4Bk{pH=qzp7=Pwa?MA z_B>l#OF#1OGFOFc0f>nxP(|P~ufVQ)1q(gLOLzZTZQd&l>0X7pW9`tlIz9QQ+}33Z z)WHqwW8d2#gKcYs>0-XV^gHmE4kQF00^4J@wF}-9~W&yW?gX*SfZjk?CsR literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.BusinessLibrary/obj/Release/Test.BusinessLibrary.dll b/SAF_VS2003/SAF/Test.BusinessLibrary/obj/Release/Test.BusinessLibrary.dll new file mode 100644 index 0000000000000000000000000000000000000000..360e628ac71f81562399bab61e532b84425b58b3 GIT binary patch literal 4096 zcmeHKO>9(E6h3b{ZJ~vM77Y+lUM<2%@TIlIM&)NZot9Rnv@+8oN`N;rm+6By?+y38 zk&X*e6Ez`mp&R1@(BtM5?<5yesN-X*$$nkgmt&#(eg+kOPd@S;tJJ^4r6(IVVI4+{C^0!(ynj$0G0lPWoQ$!y|0~(S>b)IO`+MfT` zG9&k!${Wz0ZZ=R`p;``6ha8`Y!m&2|1}9_^owszLi)e{&DKH#p4@wKA;Ju}l>qAj| zJr5zqYUOk?Re#YRo+7W-bFpQkfW`L6BE#7T5d1>$C*w!#jb9A5nTRnyDtH9Q6wS&xG7#MqEl{WM^CnB* zp^M_#^{BOD8H>cgc3MV6I|T=T+v#cHhXtP(92cAsd|B|cpe^VKUZ&rSU38hcVo%aF zdLott?v3@(n=}@ChTf;C*g<5H=d`F7i_t>v7#|ZH5qwc_Lh!g?PVhCsBJc%@uS9X$ zowrVt&;pPnzr%|HWYA#5FdmxqOEp&=p}Y!0D_sj5PX$5NDQH{Qt&;0fB`EsZbqbWL z2cfFatgVA3+fCO`sta?4i>eq>&aPBl)g0W`6m;s-%60uyFjgX~82Y+l(SjitW*pz6 z@gPu@f?GeX>L=`q8V|8N3$;+S3Z@*ljUc03yPk8(-uf|%N(V5$UNBK}!1}i{PtjpO;8otKC@QP)+zI~* z<^8PhmAR{-0l$lONT>qeRdh-_p~_}#nBoML z?(Pmq`zAXLvD>&8m_N(B$=rHs-XE)ya}&PKxbCd&c+s{}O12nl+!?mj~C)#~{|J+_R$G0KTgYShcZNrmzEf*UezhUBK>P+9QvoJft>y1IT$F zIgolH$15j(UGDK5`ZXjTmD^Za7M&q#{zj<)o@f_5GH3$!DzeM@9N@==iL$3fR+ahd zh&DP6AQqhiqSN#|1MdTz4(vyDjh}2UMO!deQ+E-%8rrL|4CD43LK(&@V+=owo&^_q z%=6`Os~eJ?P{#7f2#%a1FS&MYfh@W!}8~jDs&t}}s^OWP^Y~7o`(Knfg zZ68t8kn6A|1JV2$$@5yBzi0d3ay>0J#^GNeF%}R(9htaSJ4oIABQyG+q59nYoATjI I4^9UD0x&B1DF6Tf literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.BusinessLibrary/obj/Release/Test.BusinessLibrary.projdata b/SAF_VS2003/SAF/Test.BusinessLibrary/obj/Release/Test.BusinessLibrary.projdata new file mode 100644 index 0000000000000000000000000000000000000000..121d65639774bc24417eb412291bf050ecf59bcb GIT binary patch literal 1416 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 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.Client.SAF.Cryptography/TestConsole/AssemblyInfo.cs b/SAF_VS2003/SAF/Test.Client.SAF.Cryptography/TestConsole/AssemblyInfo.cs new file mode 100644 index 0000000..9f89a32 --- /dev/null +++ b/SAF_VS2003/SAF/Test.Client.SAF.Cryptography/TestConsole/AssemblyInfo.cs @@ -0,0 +1,58 @@ +using System.Reflection; +using System.Runtime.CompilerServices; + +// +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +// +[assembly: AssemblyTitle("")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("")] +[assembly: AssemblyCopyright("")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: + +[assembly: AssemblyVersion("1.0.*")] + +// +// In order to sign your assembly you must specify a key to use. Refer to the +// Microsoft .NET Framework documentation for more information on assembly signing. +// +// Use the attributes below to control which key is used for signing. +// +// Notes: +// (*) If no key is specified, the assembly is not signed. +// (*) KeyName refers to a key that has been installed in the Crypto Service +// Provider (CSP) on your machine. KeyFile refers to a file which contains +// a key. +// (*) If the KeyFile and the KeyName values are both specified, the +// following processing occurs: +// (1) If the KeyName can be found in the CSP, that key is used. +// (2) If the KeyName does not exist and the KeyFile does exist, the key +// in the KeyFile is installed into the CSP and used. +// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. +// When specifying the KeyFile, the location of the KeyFile should be +// relative to the project output directory which is +// %Project Directory%\obj\. For example, if your KeyFile is +// located in the project directory, you would specify the AssemblyKeyFile +// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] +// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework +// documentation for more information on this. +// +[assembly: AssemblyDelaySign(false)] +[assembly: AssemblyKeyFile("")] +[assembly: AssemblyKeyName("")] diff --git a/SAF_VS2003/SAF/Test.Client.SAF.Cryptography/TestConsole/Class1.cs b/SAF_VS2003/SAF/Test.Client.SAF.Cryptography/TestConsole/Class1.cs new file mode 100644 index 0000000..0a3383c --- /dev/null +++ b/SAF_VS2003/SAF/Test.Client.SAF.Cryptography/TestConsole/Class1.cs @@ -0,0 +1,55 @@ +using System; +using System.Runtime.Remoting; +using Test.BusinessLibrary; +using SAF.Cryptography; + +namespace TestConsole +{ + /// + /// Summary description for Class1. + /// + class Class1 + { + /// + /// This demo shows how to use CryptoRemotingClientSink and CrytoRemotingServerSink + /// together to provide an secure communciation environment for .NET remoting, as + /// well as use SAF.Crytography to encrypt and decrypt data. You need to start the + /// Test.Server.SAF.Cryptography project first in order to test the secure remoting calls. + /// Please refer to SAF.Cryptography section in app.config file fore more information on how + /// to configure the cryptography of the remoting client sink. + /// + [STAThread] + static void Main(string[] args) + { + //load configuration data + RemotingConfiguration.Configure(@"TestConsole.exe.config"); + + //(1). Test the data encryption/decryption using SAF.Cryptography + // (a) test the symmatric cryptography + string original ="This is a test!" ; + string encrypted = Encryption.Encrypt(original,"Profile1"); + Console.WriteLine("Encrypted data is : " + encrypted); + string decrypted = Decryption.Decrypt(encrypted,"Profile1"); + Console.WriteLine("Decrypted data is : " + decrypted); + + // (b) test the asymmatric cryptography + byte[] key; + byte[] iv; + byte[] signature; + encrypted = Encryption.Encrypt(original,"Profile2",out key,out iv, out signature); + Console.WriteLine("Encrypted data is : " + encrypted); + decrypted = Decryption.Decrypt(encrypted,"Profile3",key,iv,signature); + Console.WriteLine("Decrypted data is : " + decrypted); + + + //(2). Test the secure remoting call via CryptoRemotingClient(Server)Sink. + //Please refer to configuration file for profile information used for remoting calls. + //creating the remoting object + SampleBusiness sb = new SampleBusiness(); + //invoking the secure remoting call. + Console.WriteLine(sb.SayHelloWorld()); + Console.WriteLine("press enter to exit"); + Console.ReadLine(); + } + } +} diff --git a/SAF_VS2003/SAF/Test.Client.SAF.Cryptography/TestConsole/TestConsole.csproj b/SAF_VS2003/SAF/Test.Client.SAF.Cryptography/TestConsole/TestConsole.csproj new file mode 100644 index 0000000..a9bd371 --- /dev/null +++ b/SAF_VS2003/SAF/Test.Client.SAF.Cryptography/TestConsole/TestConsole.csproj @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SAF_VS2003/SAF/Test.Client.SAF.Cryptography/TestConsole/TestConsole.csproj.user b/SAF_VS2003/SAF/Test.Client.SAF.Cryptography/TestConsole/TestConsole.csproj.user new file mode 100644 index 0000000..e4263fd --- /dev/null +++ b/SAF_VS2003/SAF/Test.Client.SAF.Cryptography/TestConsole/TestConsole.csproj.user @@ -0,0 +1,48 @@ + + + + + + + + + + + + diff --git a/SAF_VS2003/SAF/Test.Client.SAF.Cryptography/TestConsole/app.config b/SAF_VS2003/SAF/Test.Client.SAF.Cryptography/TestConsole/app.config new file mode 100644 index 0000000..7202970 --- /dev/null +++ b/SAF_VS2003/SAF/Test.Client.SAF.Cryptography/TestConsole/app.config @@ -0,0 +1,69 @@ + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + 6HD+Ngi8JoGmD0g= + gi8JoGmD + + + CN=CompanyA + CN=CompanyB + TripleDES + + + CN=CompanyB + CN=CompanyA + TripleDES + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/SAF_VS2003/SAF/Test.Client.SAF.Cryptography/TestConsole/bin/Debug/Microsoft.Web.Services.dll b/SAF_VS2003/SAF/Test.Client.SAF.Cryptography/TestConsole/bin/Debug/Microsoft.Web.Services.dll new file mode 100644 index 0000000000000000000000000000000000000000..b56cdea1a2c2f4a0903c4e068d88d5a3c660fbdc GIT binary patch literal 311296 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 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.Client.SAF.Cryptography/TestConsole/bin/Debug/SAF.Configuration.dll b/SAF_VS2003/SAF/Test.Client.SAF.Cryptography/TestConsole/bin/Debug/SAF.Configuration.dll new file mode 100644 index 0000000000000000000000000000000000000000..038afda542d290d081c167f577897c4c480c3684 GIT binary patch literal 24576 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 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.Client.SAF.Cryptography/TestConsole/bin/Debug/SAF.Configuration.pdb b/SAF_VS2003/SAF/Test.Client.SAF.Cryptography/TestConsole/bin/Debug/SAF.Configuration.pdb new file mode 100644 index 0000000000000000000000000000000000000000..ff2b21f6a1a421faca45c9a229c8053afec3acb4 GIT binary patch literal 56832 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 WT|m<5LNxspdf-AV_;i^a2mU|IoXXVz literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.Client.SAF.Cryptography/TestConsole/bin/Debug/SAF.Cryptography.dll b/SAF_VS2003/SAF/Test.Client.SAF.Cryptography/TestConsole/bin/Debug/SAF.Cryptography.dll new file mode 100644 index 0000000000000000000000000000000000000000..5f88a5cb3383eb2a7b4c6d1296144f14a0293f9e GIT binary patch literal 24576 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 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.Client.SAF.Cryptography/TestConsole/bin/Debug/SAF.Cryptography.pdb b/SAF_VS2003/SAF/Test.Client.SAF.Cryptography/TestConsole/bin/Debug/SAF.Cryptography.pdb new file mode 100644 index 0000000000000000000000000000000000000000..b8373357fe4cfc37e7c01e0e646b891ff229ec2a GIT binary patch literal 69120 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 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.Client.SAF.Cryptography/TestConsole/bin/Debug/Test.BusinessLibrary.dll b/SAF_VS2003/SAF/Test.Client.SAF.Cryptography/TestConsole/bin/Debug/Test.BusinessLibrary.dll new file mode 100644 index 0000000000000000000000000000000000000000..fb1060e7d18b4f585b1aba206cf004941ab5ebf9 GIT binary patch literal 16384 zcmeHNU5Fc16h1SXZnxVunr%UgE6%!=uC<12ceQGZO*YwW)9#;5y47}Rcaq#@r=4Wt z%)~Z6NM95M!3rYkldnD~f(5G}f`|`-;HwWpAH-J?(FXYwBW7b63p>?K919sO<#>%HD3ownHyY6U`cZ^u`y@XF980qxi^Xqo3$@ zj9Ag=>0NC-E&YUy!_IlLbgpy>9i9ilzA%iA^gGu-&EhkFxCPeIL@zQCH_Hmq7K~l7 zh=y;r-Kr1&fiC+1`iHyv$xvMk(XVU-z$Q7i^F~j^B3eoMfnP>Xa!W&D9}BHZ(#SsP zE7yY~=SnMR?3Y68k~Gm&S68c=0nLDBKr^5j&Gy|Fe&46Y=Gw?rRAkB3(glkh1 zEjL2+`353`2mgj_OT{RQd6=K@0gbUZ(cobJ*loCk2^co}+c3P*A7>+~)WNMoePb{T zjtw!uIOsnO+m;7tU^i_`8N?+ri#fI(#@(WK-WPDr@TRXVG(m8KK*U_ z-PcaN^45DVzk#JG_tq>iz*0{Q_aAst00(lO1|y4 zmc7!s<(w)tt3A!hMx}(%G*vh#x&j!U!Zf6-`i2|&WjX>EkPG) zh;|5$0PmptMIRS@R4^l$7konSDM4G%5qugrOf4EV?*%?+j?t?$Z6<+p<{-U9r_Bj^ zlWOLEu*xeZ!Cn!#P4F(k3Bmn>S;3=%1;JB-Wx?}wlG2o?Sz4snrD*5h_kR}=fPF_J zFY*l&eKb-S56pR$rmG&OULVM0#dWC`ls(^dN>peCp{miG?FXy2JJmX-&MuVBsd7jK zyVh`3=hNIX6nt8TmFs#Z5UfJUa_IT(h)D!;5ytWAlnDY=E4i(ssx@!dR3^m7w$uz& zw_(O{dl+)cwOa+JT3Mb&Koe2+O^qvbo*)o{IO(Fd31 z9)_$}YuNSH`WacTe%7freVaGG-keiG*>@VfjYTKy<{`Q}$(&s}B#<$&Z-QngDx z+={EdvMYEZP^8hUSGL`p9ohxl7*%k+kPfMk??FXI+XJjq^eiFhs_4`dRaJOq-n&3W zZ`P|Gy|Fe&46Y= zGoTsxXBn`f|1-X_@1I>pN7oE!1~dbj0nLDBKr^5j&Gy|Fe&46a$-(%npyYoJr literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.Client.SAF.Cryptography/TestConsole/bin/Debug/Test.BusinessLibrary.pdb b/SAF_VS2003/SAF/Test.Client.SAF.Cryptography/TestConsole/bin/Debug/Test.BusinessLibrary.pdb new file mode 100644 index 0000000000000000000000000000000000000000..0a236bf377d5c690eddd356c8d5ea1d403c95734 GIT binary patch literal 13824 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 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.Client.SAF.Cryptography/TestConsole/bin/Debug/TestConsole.exe.config b/SAF_VS2003/SAF/Test.Client.SAF.Cryptography/TestConsole/bin/Debug/TestConsole.exe.config new file mode 100644 index 0000000..7202970 --- /dev/null +++ b/SAF_VS2003/SAF/Test.Client.SAF.Cryptography/TestConsole/bin/Debug/TestConsole.exe.config @@ -0,0 +1,69 @@ + + +

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + 6HD+Ngi8JoGmD0g= + gi8JoGmD + + + CN=CompanyA + CN=CompanyB + TripleDES + + + CN=CompanyB + CN=CompanyA + TripleDES + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/SAF_VS2003/SAF/Test.Client.SAF.Cryptography/TestConsole/bin/Debug/TestConsole.pdb b/SAF_VS2003/SAF/Test.Client.SAF.Cryptography/TestConsole/bin/Debug/TestConsole.pdb new file mode 100644 index 0000000000000000000000000000000000000000..bb3ef41c02affea3549fd394b9ae7d1994cdd900 GIT binary patch literal 13824 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 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.Client.SAF.Cryptography/TestConsole/obj/Debug/TestConsole.exe.incr b/SAF_VS2003/SAF/Test.Client.SAF.Cryptography/TestConsole/obj/Debug/TestConsole.exe.incr new file mode 100644 index 0000000000000000000000000000000000000000..72850e4e52fdfd3fbbc8af1d04f7e981fe170001 GIT binary patch literal 2154 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 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.Client.SAF.EventNotification/TestConsole/App.ico b/SAF_VS2003/SAF/Test.Client.SAF.EventNotification/TestConsole/App.ico new file mode 100644 index 0000000000000000000000000000000000000000..3a5525fd794f7a7c5c8e6187f470ea3af38cd2b6 GIT binary patch literal 1078 zcmeHHJr05}7=1t!Hp3A*8IHkVf+j?-!eHY14Gtcw1Eb*_9>Bq^zETJ@GKj{_2j4$w zo9}xCh!8{T3=X##Skq>ikMjsvB|y%crWBM2iW(4pI}c%z6%lW!=~4v77#3{z!dmB1 z__&l)-{KUYR+|8|;wB^R|9ET$J@(@=#rd^=)qs85?vAy(PSF5CyNkus435LVkZ$rj zNw|JG-P7^hF<(;#o*Vk}5R#e|^13tBbQkeF?djULtvqyxd3<{9 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.Client.SAF.EventNotification/TestConsole/AssemblyInfo.cs b/SAF_VS2003/SAF/Test.Client.SAF.EventNotification/TestConsole/AssemblyInfo.cs new file mode 100644 index 0000000..9f89a32 --- /dev/null +++ b/SAF_VS2003/SAF/Test.Client.SAF.EventNotification/TestConsole/AssemblyInfo.cs @@ -0,0 +1,58 @@ +using System.Reflection; +using System.Runtime.CompilerServices; + +// +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +// +[assembly: AssemblyTitle("")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("")] +[assembly: AssemblyCopyright("")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: + +[assembly: AssemblyVersion("1.0.*")] + +// +// In order to sign your assembly you must specify a key to use. Refer to the +// Microsoft .NET Framework documentation for more information on assembly signing. +// +// Use the attributes below to control which key is used for signing. +// +// Notes: +// (*) If no key is specified, the assembly is not signed. +// (*) KeyName refers to a key that has been installed in the Crypto Service +// Provider (CSP) on your machine. KeyFile refers to a file which contains +// a key. +// (*) If the KeyFile and the KeyName values are both specified, the +// following processing occurs: +// (1) If the KeyName can be found in the CSP, that key is used. +// (2) If the KeyName does not exist and the KeyFile does exist, the key +// in the KeyFile is installed into the CSP and used. +// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. +// When specifying the KeyFile, the location of the KeyFile should be +// relative to the project output directory which is +// %Project Directory%\obj\. For example, if your KeyFile is +// located in the project directory, you would specify the AssemblyKeyFile +// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] +// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework +// documentation for more information on this. +// +[assembly: AssemblyDelaySign(false)] +[assembly: AssemblyKeyFile("")] +[assembly: AssemblyKeyName("")] diff --git a/SAF_VS2003/SAF/Test.Client.SAF.EventNotification/TestConsole/Class1.cs b/SAF_VS2003/SAF/Test.Client.SAF.EventNotification/TestConsole/Class1.cs new file mode 100644 index 0000000..1b87037 --- /dev/null +++ b/SAF_VS2003/SAF/Test.Client.SAF.EventNotification/TestConsole/Class1.cs @@ -0,0 +1,54 @@ +using System; +using SAF.EventNotification; +using SAF.Configuration; +using System.Configuration; + + +namespace TestConsole +{ + /// + /// The console application shows how to use EventNotification service. + /// + class Class1 + { + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main(string[] args) + { + + ConfigurationManager cm = (ConfigurationManager)ConfigurationSettings.GetConfig("Framework"); + //retrieve the url of the centralized event server + string url = cm.EventNotificationConfig.GetEventServerUrl(); + + //create an event client. + EventClient ec= new EventClient(url); + //event client subscribes some event. + ec.SubscribeEvent("test1",new EventClient.EventProcessingHandler(Test1_EventReceiver)); + ec.SubscribeEvent("test2",new EventClient.EventProcessingHandler(Test2_EventReceiver)); + + //event client publishes or raises some event + ec.RaiseEvent("test1","this is test1 event"); + ec.RaiseEvent("test2","this is test2 event"); + + Console.ReadLine(); + } + + //this target method will be invoked when "test1" event occurs + static void Test1_EventReceiver(string sender, object content) + { + Console.WriteLine("Event Received! -- " + content.ToString()); + } + + //this target method will be invoked when "test2" event occurs. + static void Test2_EventReceiver(string sender, object content) + { + Console.WriteLine("Event Received! -- " + content.ToString()); + } + + } + + + +} diff --git a/SAF_VS2003/SAF/Test.Client.SAF.EventNotification/TestConsole/TestConsole.csproj b/SAF_VS2003/SAF/Test.Client.SAF.EventNotification/TestConsole/TestConsole.csproj new file mode 100644 index 0000000..4b7db93 --- /dev/null +++ b/SAF_VS2003/SAF/Test.Client.SAF.EventNotification/TestConsole/TestConsole.csproj @@ -0,0 +1,118 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SAF_VS2003/SAF/Test.Client.SAF.EventNotification/TestConsole/TestConsole.csproj.user b/SAF_VS2003/SAF/Test.Client.SAF.EventNotification/TestConsole/TestConsole.csproj.user new file mode 100644 index 0000000..686cccb --- /dev/null +++ b/SAF_VS2003/SAF/Test.Client.SAF.EventNotification/TestConsole/TestConsole.csproj.user @@ -0,0 +1,48 @@ + + + + + + + + + + + + diff --git a/SAF_VS2003/SAF/Test.Client.SAF.EventNotification/TestConsole/app.config b/SAF_VS2003/SAF/Test.Client.SAF.EventNotification/TestConsole/app.config new file mode 100644 index 0000000..a7bc1b3 --- /dev/null +++ b/SAF_VS2003/SAF/Test.Client.SAF.EventNotification/TestConsole/app.config @@ -0,0 +1,14 @@ + + +
+
+ + + + localhost + 4000 + EventNotification + EventURI + + + diff --git a/SAF_VS2003/SAF/Test.Client.SAF.EventNotification/TestConsole/bin/Debug/SAF.Configuration.dll b/SAF_VS2003/SAF/Test.Client.SAF.EventNotification/TestConsole/bin/Debug/SAF.Configuration.dll new file mode 100644 index 0000000000000000000000000000000000000000..840f0b9a138d705c56725e8e19f59b8ad17a0e67 GIT binary patch literal 24576 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 Q2!sfP2!sgypG4q40SytzEdT%j literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.Client.SAF.EventNotification/TestConsole/bin/Debug/SAF.Configuration.pdb b/SAF_VS2003/SAF/Test.Client.SAF.EventNotification/TestConsole/bin/Debug/SAF.Configuration.pdb new file mode 100644 index 0000000000000000000000000000000000000000..220a19b61f470499dd29bbf6d9cd25f7f5a62d4f GIT binary patch literal 56832 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 Hb`<#kCB2s? literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.Client.SAF.EventNotification/TestConsole/bin/Debug/SAF.EventNotification.dll b/SAF_VS2003/SAF/Test.Client.SAF.EventNotification/TestConsole/bin/Debug/SAF.EventNotification.dll new file mode 100644 index 0000000000000000000000000000000000000000..e62e3a8df20e1d237bd400d13556df6d31ebed28 GIT binary patch literal 20480 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 Q0yPQLBv6yU^q0W@0973{LI3~& literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.Client.SAF.EventNotification/TestConsole/bin/Debug/SAF.Library.Security.dll b/SAF_VS2003/SAF/Test.Client.SAF.EventNotification/TestConsole/bin/Debug/SAF.Library.Security.dll new file mode 100644 index 0000000000000000000000000000000000000000..3f37716d27cc498d73164dda280c3e02cf8bcb35 GIT binary patch literal 3584 zcmeHJPiz!r6o1n{*n%veA`(HT77|U&*rr7UiSDw?pVEcaPOTzM=e-U_#=}ghWps@ZbR>G4Wzlf`&5(J@nwggVBo@Jcz&dW+q+O4G}LS#&7rgeeZqm z&-dP&Z{O_k*UnQf5%po-yh(H!E04V3onZyy+~Z&7=+fY|q02`3+R*Hh7nuzm*0fVM zT_*^_*sLg1Hv`iP%+i!?*2Ai@Hf~(MD|J16h^TDz(z~a;7qin=DL1siSVx4fOf1%J zfQgyMB-$c$PZBq8aQre>fY|53c@b@v@7kKOA|qNwAd^hziOwYksU%$%i0%hDZ4&KB zxBk%r{ed>c0q{rLcq>+K#^A^M0gy?aY24ssm_!Sfj;cUMTL7LzLc{M6{etxmrtMgJK`mm9pL&x!F?{6Zi4yo8MMaj~#R8!(j{AQA`y)<_`ov6}%$2DtJTi zA%k_E5j-mB2(AcT5WHes64!};&irGXGfew|SsjSJ>z_(FgMNf+4{{%*_vr!rco??> zx6zQ$PYI3+?h`BsP6)mvcv8?2^ng3aLZ(ju9~694a7^%d!J^=#pe=Yx&=p*!C#i2G zsa(1L`X&UAk>o)1b9#3N>0}~cJa9a$HhuL1b-OB7)%R(l(2SQt?VWXEFAS!2c*d(L z-Bq75RYmp44Ylu8$Zkcks#`N^(N`{eph6U>dc|)|s@4got_m@(O{EztvfMb-?c&3p z-zLuNO3HUywpR<*EHlxZ(h-j66cn3&+|*s1&1$Er>W*ISViPu6+N&+aog!4B+H|`J ziebIs1g%bsVi+uXwWgLLc8W_Xa<$js`g96sy|}#&X+=w(Qwzc<_S}f%=Uj6t?P`wi zhi|CrOz5kKsw(g@`unR7f4lFwV-p{~_1oL~Z(LlU`^+9=XKrV1;ES{KbKA#P-|I6C zBgfFw4^dA~zx*uL;fKJ)K-%B<`aH(8$yDda`XJHiVyH{Lf86ncgKb)^U}X<>}yB@s&(W8S>z>nh{%;V8n?vBx(6tSvohT|=xS)MGGF_}g<_(@UO46?S#lXD9nOO0>UxxLbNs&h%~3&<#v{3?jPg(rPCKDf5`WSGg{#PrY7Jqh9e JL+@P${sye4&cy%# literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.Client.SAF.EventNotification/TestConsole/bin/Debug/SAF.Library.Security.pdb b/SAF_VS2003/SAF/Test.Client.SAF.EventNotification/TestConsole/bin/Debug/SAF.Library.Security.pdb new file mode 100644 index 0000000000000000000000000000000000000000..cd2d5d76aef6a2aaec27bdb22b846a7684f99a80 GIT binary patch literal 7680 zcmeHL%}T>S5Z?ILrdp~85pycyt=gog){}>dpjZ&<3)D2lQcWOLd=amLHxFJF#FKav zU%)relf@TkoX_l*QWPp)nsh$+cCyQs?tZf~nN6i>`(E2?oMy{rIhV^;s@vIO-m=mu zW2-6%6GCWYGQ6|mmMc=NpV;9M_gCFHSrNiw#QQ3I3Sdm} zdq6hf+4y)wcl{yXJ3HM@w}V;{3>!Q!Mp=QM@;}Z*fBr`wdlQ#hz>l;##1+u6TQ5jClG5iB#)D*zCJd5ZPaSt4< z|5fdeT%drQF-yc90A7ZN)m?zSOkzX`@Y_C7`5!*U^40whK2~==%;orp2=M{p_%HE~ b*vFZ`?>P2JgouN`-9+4hynI&R9}0W{699Dh literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.Client.SAF.EventNotification/TestConsole/bin/Debug/TestConsole.exe b/SAF_VS2003/SAF/Test.Client.SAF.EventNotification/TestConsole/bin/Debug/TestConsole.exe new file mode 100644 index 0000000000000000000000000000000000000000..0c627157d05d2a57ddd4bc7ff640a4877002b5af GIT binary patch literal 16384 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 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.Client.SAF.EventNotification/TestConsole/bin/Debug/TestConsole.exe.config b/SAF_VS2003/SAF/Test.Client.SAF.EventNotification/TestConsole/bin/Debug/TestConsole.exe.config new file mode 100644 index 0000000..a7bc1b3 --- /dev/null +++ b/SAF_VS2003/SAF/Test.Client.SAF.EventNotification/TestConsole/bin/Debug/TestConsole.exe.config @@ -0,0 +1,14 @@ + + +
+
+ + + + localhost + 4000 + EventNotification + EventURI + + + diff --git a/SAF_VS2003/SAF/Test.Client.SAF.EventNotification/TestConsole/bin/Debug/TestConsole.pdb b/SAF_VS2003/SAF/Test.Client.SAF.EventNotification/TestConsole/bin/Debug/TestConsole.pdb new file mode 100644 index 0000000000000000000000000000000000000000..c95c704f12a17f05a3bc71f8a4e5382d357b2bb5 GIT binary patch literal 13824 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 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.Client.SAF.EventNotification/TestConsole/obj/Debug/TestConsole.exe.incr b/SAF_VS2003/SAF/Test.Client.SAF.EventNotification/TestConsole/obj/Debug/TestConsole.exe.incr new file mode 100644 index 0000000000000000000000000000000000000000..50d79ae3f7bd37e6c7f3263c900a00a9bb7e96e6 GIT binary patch literal 1970 zcmdT_J!=$E6g{&^{D@myKd=cx22BLf2qD=?WKkm+H7QnQW@lzIIv-(X5YQyuI%c7oLzbOWTCoc%)x5wK5kr6+=#UqjE-TK#iuU>B$gRDzQX|C35o*6KUD~xf172-`sxyHK7uSCA+y~x@a z4)Gc9q77>3X>~Mti zTWmS>tkvE3Z`SQqL^xMRo@xGN6372F{~}fr%a+#ccRYJ}50NAM$?wnKw2e!;0URUr z?@mWV{hHJ<)!E>5v+&2~>Ql+SFE57lw{tAyUeY(q61}qeIvW$_;MG5}ar?|QnXfl! z`fehxHCCkliFThRr%~Um13xz(thLKwxJRo#)f1+9oy6=zYOc l{yUi5yfZwwVU*++3H3KOxxZ}9PyRf@r}SNPlROnNzW^m0UUvWh literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.Client.SAF.EventNotification/TestConsole/obj/Debug/TestConsole.pdb b/SAF_VS2003/SAF/Test.Client.SAF.EventNotification/TestConsole/obj/Debug/TestConsole.pdb new file mode 100644 index 0000000000000000000000000000000000000000..c95c704f12a17f05a3bc71f8a4e5382d357b2bb5 GIT binary patch literal 13824 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 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/TestConsole/AssemblyInfo.cs b/SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/TestConsole/AssemblyInfo.cs new file mode 100644 index 0000000..9f89a32 --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/TestConsole/AssemblyInfo.cs @@ -0,0 +1,58 @@ +using System.Reflection; +using System.Runtime.CompilerServices; + +// +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +// +[assembly: AssemblyTitle("")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("")] +[assembly: AssemblyCopyright("")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: + +[assembly: AssemblyVersion("1.0.*")] + +// +// In order to sign your assembly you must specify a key to use. Refer to the +// Microsoft .NET Framework documentation for more information on assembly signing. +// +// Use the attributes below to control which key is used for signing. +// +// Notes: +// (*) If no key is specified, the assembly is not signed. +// (*) KeyName refers to a key that has been installed in the Crypto Service +// Provider (CSP) on your machine. KeyFile refers to a file which contains +// a key. +// (*) If the KeyFile and the KeyName values are both specified, the +// following processing occurs: +// (1) If the KeyName can be found in the CSP, that key is used. +// (2) If the KeyName does not exist and the KeyFile does exist, the key +// in the KeyFile is installed into the CSP and used. +// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. +// When specifying the KeyFile, the location of the KeyFile should be +// relative to the project output directory which is +// %Project Directory%\obj\. For example, if your KeyFile is +// located in the project directory, you would specify the AssemblyKeyFile +// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] +// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework +// documentation for more information on this. +// +[assembly: AssemblyDelaySign(false)] +[assembly: AssemblyKeyFile("")] +[assembly: AssemblyKeyName("")] diff --git a/SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/TestConsole/Class1.cs b/SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/TestConsole/Class1.cs new file mode 100644 index 0000000..5e9e5b6 --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/TestConsole/Class1.cs @@ -0,0 +1,51 @@ +using System; +using TestDocumentLayer; +using SAF.Application.Configuration; +using System.Configuration; +using SAF.Application.DocumentLayer; +using System.IO; +using System.Security.Principal; + +namespace TestConsole +{ + /// + /// Summary description for Class1. + /// + class Class1 + { + /// + /// The demo shows how to use DocumentLayer in the application. + /// + [STAThread] + static void Main(string[] args) + { + StreamReader sr = null; + string content=null; + try + { + //load the order xml. + sr = new StreamReader("..\\..\\OrderSample.xml"); + content = sr.ReadToEnd(); + } + finally + { + sr.Close(); + } + + GenericIdentity gi = new GenericIdentity("CustomerA"); + GenericPrincipal gp = new GenericPrincipal(gi,null); + //create a new document object + Document doc = new Document(gp,content,null); + + SAF.Application.Configuration.ConfigurationManager cm =null; + cm = (SAF.Application.Configuration.ConfigurationManager)ConfigurationSettings.GetConfig("MyApplication"); + //get the initial document layer object + IDocumentLayer layer = (IDocumentLayer)cm.DocumentLayerConfig.GetDocumentLayerByName("Special"); + //start processing the document. + IDocument response = layer.ProcessDocument(doc); + Console.WriteLine(">>>>>>>>>>>>>Repsonse document from " + response.Sender.Identity.Name + " has arrived <<<<<<<<<<<<"); + Console.WriteLine("Response Document is: \n " + response.Content + "\n"); + + } + } +} diff --git a/SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/TestConsole/ConfirmationSample.xml b/SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/TestConsole/ConfirmationSample.xml new file mode 100644 index 0000000000000000000000000000000000000000..de20bd1de58a88f5de73fb853f655c8c9d7624b7 GIT binary patch literal 314 zcmaiwO$x#=5QV?B;2lB_V5`d#yRhKKML|y>S~1`sO$1MG`x4x^C?$)$c{B6nk^XCW z;3+7nc}ib!blf=-q@v?7eB|7cE`RfDGOn5lytJF^)NI&u;3U6I1kYlWno%)lCbq%S w=*_dXI#o_8(w9nA=r&@8l;^E1v9nd>l&95X?B|oL)hMfB_s6iJP5(&60Jfns4gdfE literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/TestConsole/Confirmations.xsd b/SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/TestConsole/Confirmations.xsd new file mode 100644 index 0000000000000000000000000000000000000000..a2bb508e2cc203cc9dbb56f171652ef5f13c0492 GIT binary patch literal 1324 zcmbtUO;3YB6r8h(|DoyKe%QoA(~qRRs!gm1uN0_lEKu1+(I2nQTOe$KT1`VJbl-b3 z^XBdH{WZcADFW=!!W(?VP}m|uh%wseqk|rwEk;7PT=y6a@ob_AG}gFc)(vx}nBWo@ z7!gll$lJw+bpagKXB;6{1$V1D?M>MUvb)k+EMfkN zUdhuVpJ%3N_q-sEMB-YHg&JG`U;AyUb?CPy&z6eh#P}8Wx4Al&$r(NF}W#;d@sLVU1qs(mLE~EBWWP%^o CbkINm literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/TestConsole/Order.xsd b/SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/TestConsole/Order.xsd new file mode 100644 index 0000000000000000000000000000000000000000..ebd6e45bee8df465fcce9226efa318ecce7868c1 GIT binary patch literal 2014 zcmcgt%T9wp6g_Jb|ABOGA2xB(^pVu9uc!;R6wo#nsAbUV$E)WKkfC&JX`_bln)^8C zo_hzrKKmG9g%EQ%ctwCE63h@I!T=3)&_tVehn5H)*L_+eJZWnRg-4vw>x@1l3~`Jj z^qDU~kEe$z<3hNM&oCmcO5Q0W6&Cbr@i@mAx40|$C&axb7hf|Hd=uZp#FC?oCea~z zddv_LF(ymJHQ^r;Z%o?kAlh#pjSu37NW#4lKC)au;nj z6?lUjO`cs|W6hx8)gi+NT;gI)p+>H@Lv0Gh1J)yYORp5yqny9s88s8WWu21Pa(t%G zLT6b~pLfKL$XzDG z*S_{Dt2GvE%KYorYm2Q{yDjoRbhy!z?^7v{ldw$-8^c3%vE^}zt;l4?uF1C|sLbRn z@1V*jP3E-tc4Tq#rIFp=`eC-psKs-!8+M^fm5Elz;We9e!$9WCBXgO=`JZu+-Q#ka z6_JF4)Vj$<_K9?{z7BmVmMM8?FHMH^dA09xqkVz9-~OoEv)`E*Q` + + + + + + + + + + + \ No newline at end of file diff --git a/SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/TestConsole/TestConsole.csproj b/SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/TestConsole/TestConsole.csproj new file mode 100644 index 0000000..5dff4cc --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/TestConsole/TestConsole.csproj @@ -0,0 +1,144 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/TestConsole/TestConsole.csproj.user b/SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/TestConsole/TestConsole.csproj.user new file mode 100644 index 0000000..686cccb --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/TestConsole/TestConsole.csproj.user @@ -0,0 +1,48 @@ + + + + + + + + + + + + diff --git a/SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/TestConsole/app.config b/SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/TestConsole/app.config new file mode 100644 index 0000000..376f4b5 --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/TestConsole/app.config @@ -0,0 +1,22 @@ + + + +
+
+ + + + + + + + + + + + + + + + + diff --git a/SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/TestConsole/bin/Debug/SAF.Application.Configuration.dll b/SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/TestConsole/bin/Debug/SAF.Application.Configuration.dll new file mode 100644 index 0000000000000000000000000000000000000000..90a9f0d4e91100120751b9ac67c0f81741fe51bd GIT binary patch literal 16384 zcmeHNU2Ggz6+Sbwp7l?>$=Zab!coRaATACoJ5EYlQdnmwHL06Y|_LPZ1+sPF`l$_pTPASetqm70{QM;q8qq!$_j1{SD;Sq`az1`>3MJX zhBouw@Zxzlv}%E04(y6mva3};vWkus)T@?TweoWXtKzRXng0IXy-nBiM~P-MgX%wj zX|mPZZAuOIX(rJ&NUT`;`$wAPtklyYho0l+)Vk6YRJa`y#sx7dQg26vML9$l=4Dh9 zknUQOVwY}ShAQz<8XVIJtt7SDU&g*1D(DjALWA~c{RI{VHA7zAwT9{B(+{SRG(D{U~DPJS@?W;!{T=t(C=wnH=6mF^leM=5Qh z+l^yF%yCTdctIIrVqwr|b>3?l5>On%wT=+_l3PZpo4wQ8*$4CgMda6qkrDPnAzyfC zc=ST_&uz0`dhX6&zWU2wo#8Eg{)y$ngl z@MQ$P=S8Bw;rbY+Wltdr+-f;wi~Tspc^%h1PZ#KC%_E&X$DW?fL-t$Lzs9;Fo{z31 z@r0b(t`i@N&_A>Zz9}Ii%$J<;fMN6+XUr7!A%lCdfhkgNGg^}l(;?J;O*hG;ecE=M zC}jno5sU<{34TNHCxX8d{JUUE=T;vRJT4gNwreL+@b+UuD8{6dMmEc zpKvy1&|cg(Ez1OD;~FKjVPQ;@dD7@jVf5RAaXDi=Otp14`N zYL}g0b8nRQOZAFVjb`kI6LhqvQ+{x9%JZM^ly1=AKFelMnbQ@IkWb=OL77tI2ULQ__aphmd{7)Rr3L+ zxU_*H=T~ZWwXwcM2l?yOc_%CdZjG5)uUvGab{^t;C6jmUa@7wbw-l1Rkjr+l-7JiW z4yoWU=LNh|Jx3-np1!;t*;M7(ieI>V*Wr!NQ@s{K&i7jLRd%AYYx1zeidZ*|`*&_t zic7XvcWALulN&*rx`IaI|nIYTxz zP!0$mgY+qA1G-34_-gogUTO5-+n=EDsV9Q(8obkB4t<8` z&lh{?t;PcAIPzsP@&;;}@OV@PWun>p^vy@3j3MpaHz)_Y=r=UyWEk7`uN|HV_FuQYT zYqEQw2ew=u8rnIen?r`lmlS%LHIoK(sV@0enD{zK;YM>k#xehb%NCc`r`EcS=xojp z@}4(qyVdw@0bjP_VbsH7NB3@8Q^1B!vo7~mZVVI56ZI<0u`B7aU^Cuci8 zJ2;&sns2VQSvGGR1TIm5&H|6p0!q^~M<-FA22P>O=|_n_zaOv7HCiz4U`H5VKPB3D z&xfr_N8-Js2Cp_&6I1eqci^*1tN8wN+ABN7MQE`+!n(l2HG-XwTAbcaybY%sVv1np zLSEj$(^tf13_F_mcaVzmC-ouOyX9oH(OT*7X4gXA+or2Y{|$^bUdM3XY_nf%T9N0m zf(fx|;y7v@akA}U>PMU{+ok4O>fTt!v2Pkf9;c6E&-Exuk73sv|KWdycB3sb6G=N> zPkC+86lfBjGr$^t9{Mk}F_po-l^I)wyo~h~v)N)XgB_QLAJK@6Wd{Ds;+@;nurA}# zl<7QLw2%3oT|7H0XveEGUKPr5f$-x=+;dGIJUbkBi-XpxkT81>9)CPv^XSXRnCf64 zYGWvlJu7q2X> literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/TestConsole/bin/Debug/SAF.Application.Configuration.pdb b/SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/TestConsole/bin/Debug/SAF.Application.Configuration.pdb new file mode 100644 index 0000000000000000000000000000000000000000..7b201f527e947b72e82e667c4c6226d28e83a128 GIT binary patch literal 19968 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 EKZWtg&Hw-a literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/TestConsole/bin/Debug/SAF.Configuration.dll b/SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/TestConsole/bin/Debug/SAF.Configuration.dll new file mode 100644 index 0000000000000000000000000000000000000000..721afd0db8c91caae4e2ecb96a609cf8f5229821 GIT binary patch literal 24576 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 TfpgIeQ0T#PvEVahb{zQs!^72# literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/TestConsole/bin/Debug/TestConsole.exe b/SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/TestConsole/bin/Debug/TestConsole.exe new file mode 100644 index 0000000000000000000000000000000000000000..cde7c031b358af82486ec2a3330c588cb5dab269 GIT binary patch literal 16384 zcmeHNZERE58Gf(rIKhCMIB5q3+M6bufVFM{^kXezHa0k36GGxZ%N7JT_QAPe`N z+oY9Nw`;4i9~zdv`O8HCQZsFqzSF9v>#|&wN+G_5Y?nj)%a0uQ`z&r z*CsXztZdr)qxYEep7-mV^PcCPdp<51`}|1?5>W{G$`ztBC^;pB-k8*3j^6pRD80Jk zjs7#*=o|f0v!xRENOzkT5Q&A&A^8ubRc@duaDj z<`P7Yb&0B-941-?O`@M@eY@qxl1|jxTo>e#mKt$a&AE_6D?wnB7#ndzlB5$Ij@yo% zha|Bjz_5>w+>#OqFK(-n1xJpR4kNSQ5OPaO5bbOcebz_7N5DtGN5DtGN5DtGN5DtG zN5DtGN8n?Gzy-cnBk|odfP4Y>+_Sj2YT%J^3BS3tZYV^rdUbpHB7G}uG*WeLA&Nx8 z7Ve~xm2Y>3tsXFcuJ^=RP9K=wP+xC{orHbktq|R{2&T8Ar{k&H zAlV0@w?4u8b*vBfgnL5P8m`u9mtpJav``^p-OdCq5&Jc63D@_?#tkg~*>k#s`3+jD zX|skH1Ndyvw}v{e9eMANc2ybJcqeLm;5ENpFn-S>Pxm8Zh?BW=?wPkv-1Y9gzuoiF z+kZTH`?EjI^0hqu&~z@j`%uoR*?E=12N4nX=e7(DZDn?PN;z&EOgvewmdw22npP#A zw(_;Is<@-Zyt2h5WmO!jq^7Nzqtj_MQ!BP=a717rHMy)cRx!ntjWU1!{fZxLs{yhwL<$r*U~28hlPGdXi{ia=!DP%LJgs&(Bq(Y z&^%~2JtLYE^iORQouF`_8xe3X-vqsfeh7LW{epfS*g@xLAef@x&;!8?{ho@!QF@1- z2;P%TF_YvfeEW}EJOd@okQ zyje9$lu;FBoB3=3YcMQLdC?(z)pWz9o0+^#+-3z#BgR^9%eJ9Hdv`m z$|={C6+5GN{sMivHikC;_S$1c#V7)nW?-_zwEHh(0swBCdZ$co%C;#NMZ!eNE5~V? zsi@pTIaT2Y!t7P_Sm4)$pBVNAbZbewD| zkOIwN4=Ga>`<#Mh4m@_e-W1iaYPn=VX0IgCx-qPpNqDlaNqN+BQCd_Xx+Mp#g3g2% z^|L$ZdcR5dRna!rbHM9}!$QrP^i)BcIvqie+_O%!Ri|0B>3}z&wb8@ls8xWx{W?Dy z<~|(sve-v@NgpOW9zrV-?j;z(B8TGQ%l6TCE@w`iyWDT=`_2?~z4qkv{p%CY09mkfltdKP&Mc^|SuE+ZfB;9e<= zt&^G88)sD3{e^j*xuvOjmTk8jN?G=1wm zyb%cU|C!T9qIwkN2ui;19Y%?wB?aW(G6y~TpIl&jqUyqPr85C(TwQ$V>U2_GIzBXtG0f!mMs!y(XJ zGzl(?bHyIWS9X$&LDjL;Zq4;_I2dJ7F$*NpT}tV45g%J_PJYpnvtjFG?JG%s%>$y?{->^zM8)K z;cKI>#<>diVVuf_kca63x*xwd?s)e}ltc;KE;T{Mm3kG#QEG{1N_xi0uyGQy1j#tG zbI3f8d7Pu*i&B&QsyOBGDXWNc7fy{bW^X);ejf6Cek`M&O~(Ws&v!&(;`1f9VFEjj zsX0EDJf!|zY#z>g(T;`FUJWNiw`F8rUkSmk-RD{aZ-if3>L(FBpG3=e`X!8B$INSg z3O8y4Yk^>tK&i>R#LJ6$wS203Z+5*-;E?fS70ANE0yJ0TAOE2dIAr`-#pJ(DPqd|K zDBYH-A#}2sF8lH#7~p`%i>>LorTC3D)1Eiq%(~Uk>#gZ5K5Dk6#7#fVws0UUV7k@+ zcR7gmJ6rqYdCq&Cj@+E*3*eVeb)MWjvAqHm>`l${&c<|Ypq3ezVBY_a%MtJKWk$Wn zk~!-&ynra%62EHoHqD0+G=4|D%;*G2*Lh_Q$qpN!?ru-w{k3Ha{SXcNE + + +
+
+ + + + + + + + + + + + + + + + + diff --git a/SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/TestConsole/bin/Debug/TestConsole.pdb b/SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/TestConsole/bin/Debug/TestConsole.pdb new file mode 100644 index 0000000000000000000000000000000000000000..db2568f981739e18215cac4157a3b4675aed504f GIT binary patch literal 13824 zcmeHNUuaup6#vpim;QB`vv!@-SgUmFc9YgxOHtdAcC^^qO2h{Vg!JZSyDUvYZmJYS zQx!o_DC)x$1g9^1*n^<>Ak0lD;KvH9gLN#4||xczu&$2(!1E!{#k5I?w7T^NoZ~_#RUNf!eCZ{*VAw2;l-d1e|9XbkJhX z|1yw(r>5cNl0&;z0=Yka-L-3X7QVFfVr9Fln|^Fx9$M!4UXL_x2^@ndf?~TuSFB}o#hG*!)YJym4FSVj`J+KG3 z6W9+_0#(2rKs8VU)B<&Y7oZv51?&YJD!l|ssefq`gILDBfV6{q@SD1)Ew}*>V7CM6 zpSB|H!LbDhqeQfl|EJ#U{-0%DzL=NjmYiw-LkVo>{%0Im&;DnuaHzBr_&h(o;@rIy#Sj z%G>XLI_;iyG56XCF;Acmr>>aelN_B|a`->|Uz}f@r@pv9h1wG~qVaH6GqOrFolfX# zG^?kQN-U*LPH4$&B08mI%w{!}G*SsItR|v{(XOb*t%EVkh9{sE$(_ub;a$#i66>wn`!pvO>@{ZO?C<9 zO*2?9&6sJ{5yPBW<;<|p$P0!!bHU&@W3w{i(Qdhe7~Mz|CL_|$&s@0c6mf))+Tu6f zHprd>qRMpZX46PiPolkE?D2Bk6;yu40U)+li572Y%E)RH?9<|%o3X)Mg66gRCnzW5q-%j1VeF<;YiIi#tR89h6tjAitss;8p~w6nj>a&YfH zQyz$ICPx=xWO!dbFV_jLRH%m|%)&F8WAd@E&~{R%9DH7SF<8QKecGz03?bY?J>0C> zpH>6QD%7ixC$CLKcx?5iJ4Rg-+GvS5PbrMaXhs?v!AyxNa23LZzXRw;qK>&1A_tII zSGrxuYw>DayAZzvS6BeCUfLWNAa@b^!5_U0PYPTlAo<8)ygmfFuwDI)Rsf5!i}b{E0Epn-yd8zkT4Hz;+X#;TkLb3tUkR zg#7?Gwe)D7gKe37Ys_F-#2Ou(rX3*xKA*dU6#(kRVbjlWPr5{)D?q|#DMRA6Eo*8L zb*3({4-sC1qa$sRfn+u_6&XwE2y3tG7Z2HV?dZR(jlo%5u>{I~|MOd}bHD*OfNpT+ z0~Er?0MCU60oHAWI0y4n=E2Ni`R-4i{W8}z&kq<(*vN#yO0%qNmUYblC*U9sAhEwg zTb97xn1MO;*8ue&q5MJPKn|epT7hd&p8fovy5v}@hwp0nE|=<|nmoW-@AlE`&<>G+ z4>|v8TZwy~&j!?|2mNRodGpvIcVF_`;L^*QsAGNuz~{ee@lkh;c+JD_al(KPI0~Et zB=Nc1`u_L&C0S=hjOExN%T{}pxCWzn3x%5i?dQz7eFZbJox3R3iJce-c6N1i1v|vC zFO>z^QJxQ2b6Wo^aH>&jc5oHq7W>gwNnD%c*4cwg^r6Cj%(r{DSM$C<`gzZg1*oA3|o$-<#b# zpJNj!Rr#kor+GK;&6_uGe)DE_XU^XAxv!E+L>lsm6GTtqn^V7}rzVrAPMq;nf*x-< zy7);ke01^1c*!-Yj$L%}WuuUG%Qr| zp1*aV-rH-GSllXfA_Ef6NYAVTF_8O_iITEB$M>5B?7vKtppbLIxF7~2`TBRGTIyJ^ zyM;^rMEe+slhbuXZIIo4HqoM!>rTZRM6ss&82F7%eA+YjdElR$4}!Y-cu;C2gXp@n z<2nUMq;LHw@K}10n^Hf#Pdlb%Ly>)@>yTNmAGs;@6J658hQ$zp5P=YZ5P=YZ5P=YZ z5P=YZ5P=YZ5P|jq73BV9L@RN26fFE0siRj=G-#)ECy3(9siRk=t&qWH z(wC_Y%2oSQsE+F^FVJoD7WP0`*mPe0PqrbJ`ib0PKMso0MS zZ8`VX3fmF3eG`k~D@f-)mB#s7QGMNoy&8Q9y6`XQ;M`qR?bEooc}&2^ovR`2UVu_} zC$k5o&gooydRoog_}o_Krx3XdQ5n~5Tn)rqk4JU83x!vl_qgiQD7MAsx@X|Ky(K!= zHBji#l3GV(1tlZPNnq3pj^uN9G$4a_ewrOejcTaIC}+V@QJqc^fa>G9jM)aB`&EGR zvB3u7+H&+g9dDM-inmnfIXDMx5Cus^?Z!0eN;fV=^py$!TeTMhk~uyok27MtgM79%|po3Gr&;;)pY-IA501 z&XZ^PNbGdyK3TO;wRv)n#1=V+rJx&4M3;OK&sEIsBIG4G&nZ=kE^BN=BMXCEaz&0F$F9S$EZJ~HHiPfyz>fo& zC6`z>_r(dU*g5}*zzh=oORV9CHiHKY`58zo$Bgp6Dev`xx_mxjpOZXxQi2Pz4K_=p zc;LN`YvmqrSI|1_*ngm7D8Gktif$1lk)U6QV`zDy(xd1!B57ID+a*0L=~I%vDCygh zwy3OsrlbRseqPes)tZ{1C)8u;>s3&lPN+SgZ5q?8wo23KT1jt_l7o`|Q2RdQKbQ1X zS^E}foZi>gq1EY;Xhf%_kskPbaik1 zjnU0Ovd-NpIR)BW_if2Vs9kc8N=}Dd(DM>UpDqxqAXy?-gB}zYHfp~oB-l?ZJNIJOd@T|OtR=yb2-4$xY$7B3@<@U$U1Kv{4xx?6JG!+ONm<32}U6YDYN zIe0dpcY07{5ND70oE%XrJ=@??s2j&NU-zYrCIgOrX`{P+PWsYLzmePl`a610Pz)=d zeTgb-5!L+xXDA7|Rs`LTkQQ_nf?3cCNoPuYxlflzSaYqUAFQchq$+X*`F!G$4@jB? z9j0xve3hhmNlTLMk#s`R1Crh$=^;t)1KkFDJl~!49d#$@3+gp=nEtAcqWrEpPCp<` zv*^b(PjhH7jc8w|pHWHs7UFBKHcr2#+q8%1_jHf;UDQ4Z$seWVH|Z$KZ_-Ozg8nHb z?}0u-LcBna<2`{Rh1IXBm)Us=oGg`;$pG5D>4W4 z{>W*f4|dj5AKLbbK6)o|o;Y91vto|!dv%#eV~(!|?T~b#q-!L-P|`t3FPAhY>D7`J zB)x(1;zqia?x2Ho2yyic9filM=tYe7Rr(XXMeouHiil3Es%2uOSTBaeRH6Pxp8bHKwJ#3($crix2T)+`kn)5=feO2x{|Hakqm1r#$Y z25XjAb7nC%;$XPtymP}WZS3lVQ!0*oGpjJ^W3|F86@zxUny*aEY=L>&T`JZb8FMqM zGp1W`N>!f6nUy0YuNjAWT$J*~itT!(f=lv^u9zQfRzoM`v4pqmmPJf#&7_fus>wknzXuS7d-J@41|2i+Axc~?Un!Wh zSL$LN)T1DW5Oqr4M0zV;8VjXr-lFVOk-f;76%N8|b_`(-O~3nQhGT|;B?fHq_DlG3 zZOf#cux$>PD*n2K)RSvP?m+467H(zc%R!uvU|9!6{u;4|Dq}Qg*)9*PVmhTl!-s&M z^0cvfgBh8E(xr`gciiI%p=`xlvsx}rSH2{ZyT_s}RkPwR-*P$6J;EgqZ}~pQ+e}bq z|LTi+vt9AmHP$`v1cBedk`Fjchut@R7v(&p4wYyx^v39-5BShIA8x+{dl$fB9LEae^V5{Z zy@5{$(Q}1%qaOzzV^Vr0QTvp& zBGG9DX{mzRLc=a)OX$y)Ef@{vJm?ve0d2-*7<>^Q)+nNWFFdjW91X(lNYbE{v`p47 zlO+)izB~DQ0}as#tPX$bgK=dc*cnS+<){8abi{flbHuDKX%^Y z2PyW%jk|Vqp8MJzs-9|54H6MUh*Y~~P^v{1TXaLDlBuND4T+*B6g?*8Ni;Z3gK`3` zVqiL%Q6h#S6j0bmu#s(Cyn=NSI9a8xN<>Lnl)9>GQ9P=p+PToRNYy!~+L5o)q9WD8 z4f9M)ozw)9M(8IB(Irv81oCvH>9*m%J@*wLSl!8MTLo5bomG)>P25D;YP-^m?7;7A2au3iz zlLz=KIeA#NzmF^K!m4b&^@Nh%`Z_;s^MB#4#m60X%D3=W`%}n(>dA|mGo0GAu zP5DyAe?v4)`L@WlC(eQmTmyzFL?A>UL?A>UL?A>UMBw8hz<1n)8)urFZh>#Z<)59; zkh9)K)8krE_88QH$7#*3RvaS%%ynq<@f9?-jjFZJ($x{*=hu}c}QK57s=lm>bg6i>p}6$>B2*@eeEj21;{g-2h-DV4o0;zZ&> z$3XVSHl^p!0-xsi#NyBm@Sc-_JR<$u64>BbVE^i4WzI+KKk?JY-#;+Nx+vR=~TUb1U=VBb)8p?jdGpm*;2`0(o1)-|X8 z`X21uy@f{yh8~{!caOo@$?bGD&u23k767?uvgH3S!gMp7J^P~Q&5&WZ5?w8QayU?} z@t>Xd`qpNeseNLy!U5hRT~K=FIe>J{q%J6(QF^5G$qN9;BUDqTYf1-|ektAZLf|4` zA#gEp32-T}2)GQ8jw*e%5is5I3Z9#QD*@?~(lt$|OzWJ|b7uk4gQb5;XPutmy?W{2 zXzDr78EMhttb(}rX+WB~dLvH$4m#tcxc_b9%KI5AgS7d385-620CCBgR{&}I3e}kv z6PW{&a>+TM7MXo96>~s6pU!ijTI+w5De*SbMC;#VfySviBc5H$jZD9G-e_oFaB?ppYt#zI?Cp2p%HzXe<52_^#GzXG0N;a+Jl-aeKACecRLrzp{{B49Z{u&1x z6OD(-W69nm-^FjOMe*m-*IIMGoB4FV%0C0#8E^q?;VvGQ0ZCe=iB>pCOSBfo!GUUx z|M=v8`S_bGp3L!Q&NVbL8QG)|#N8tULy`sc^9~VR#18chu;tH+n&x%xA08>})edIQ z%{%t?sZ287+}Zt5VQ&{@mnePx#^&`2d#EFrQ(I*ZL8G$Uv5L~^%cI75S|>C^OM{S) zHgq<%`mov_Bo>fIjgAKTKpREHkwL|0Vlxrv2idv=wO{k~Jn%Z4XGx{)?eW${?GAl3AwJnEbDXKB&2Ea(y+=@>j}l zDfzE`U?m_QrR@RL82>MyhVjqzA8fdOCu?J;=6>^-i^P$XEsvcRWA)t=I}O~5l4oM_ z+!0zS+Dww+P9k@*TAl@-;n@ij@c#jKS%hbW?-G}atO<1n1nI|Lqq+So3fWcK$JOkm zET*HRYd;HWTHz$EmS37yX`&TQ(rTHe zX_Y2g;Uuk=aGF+Wt_|QMt(JD0R%xOYPST!e|9AT~>+E}MV6sp8Sc6o-v)}8nLFN&4 zLG{+L!x`kD)Y@GJ&mRxvW)eRPyb8PlNGDK*vw?*`6CnDQ0RIfGmi|Z8h&r*lnQAJ)W+ zQg#Vfd*uEjHyU0EYoeO#|7;q6sdgGu?E^`fJ`wq^BQ@It682D$oPO99?l$zIfcF_-on1)8AyE3ibK*@p8I`$hM_-o0J@J@I}aS-CpQi6n0+8t4UOuI)c>lgs;0-k8eE-f`>(^y3 zCXYn--E8sy2wW!-o(RwIY~BbZ%bd#cSSU|H+nvG;wug@c{|(6NArsNP=yd4EdN+0r zYP>?yKf0#OKWetXtznNl6qvEX7j*yeK{U*QQDRyYoJxf){cM$7dNF?!S=wh0LwArm zmJ_!!Q{De1!4Bk%I`lt^m=4%Io;o5Y+@7Oo8XP~#= zQ%BL4$X77zV<-MEAC1m&#M95nfke=A+D2BICYW#mu#jbYSJJ&S(bM(1NlInPOV+Ci zoTk;pRvVO;q@9RPr$v^oSBp>eDlb{@MEn(6oauU%rh0{w^*)n9t2EIHCu#FATsq?- zU>UH2zON4OB3Nf>M@j$5Cr7{W(%&D-Eus8GLT&uL@SU#X&(Mx}{$t}`*Y(%E8vn%; z8GL9@_xNkwi}$tlpS}Lg{?|E^1=;^UW9^5z!P%4dpB)SYcKb(BHvb064ACb2XRtl` zA)xKX@~3)#w7t*TU&;R`d6#bgA=+){zm`AM?Vl|F-&aC^$8-LRem4(RxG>l?)U~%T zQWzR8_cfc}U@rA4B#*Y{GX=DdIR5S_jO_Xd+6gq$p_-_CHhH2qn$y8!wV8Pu`gvj< z()#;y=dvQ{5M>53wEok9+KD`oB0fe*Hgf_q;G8ik@e&$nLq8@z=VZ>T#cl-D7L@ zxv*)e-4?jt+ps(IA-4C(lx#XkAHPo-`NfT9s{5&Syh}Um{BJ0Iby&>b74t1lbFv-%@@O6ls;uilEHUlUh3ugBz^{3eR;-22(}%)5&W6>}#l z)^q#2KFYgtkCW#0hg^K_D4lo|P@tWz91fczd!_D_7IjC7JLbimVD6X~cYzm!KLN)6 zDt-Zc1z2~}t^(I{t10i`ez4#IZergAGy@yswx|z&pQX<{DpNeW5_l=4(5UF`e zTi^YDm2-0_U529#>KRid(>WINWK1ui$$I{rt9`HFS~B$jjOv8th#B7tNU)S>b?hDsc!LVcWAe06_ULA z)m!fsHCD_C$1BCP>HQIL&70j|@u~|fnbi#j!5^i{#=D5;b-*0Qt9MD0Jdkffq22xW zYlwN^;yb{DzyaVX;CbK(@HU|P0&awhv+S0IxI$Sj=J#i}? z-%J_N8_ig*@M@@n68UqWgy@p4O2Pxfg8~tyjjOK*VOa%|r zOtYU}4h>ZsEYSCcH;K4$OWdDTxx)bY?lWA*H8m%)#flvO#Soi1xj{XkBSTgKlU{AGg@euPnv-2e07#WThW&O$Semz@2v z7GCsG{!vO9{dD1nL?)2IkMhqXn4K~=rj4SWhomF>&mAx?LLJ=WeWZ^%{ryGbpX@IM z=|&c2!@tXTx#Us=|H3g<(oA*y8-aJSn;wSD=-)5=lkU5KersR;V&Iin`6}=RAl*+4 zOy2txt@bp5bS#1N41w08K=V)_ehO6gr7~30K+g=yQ#X5v^I-9e!t<1i= zl(_7>MPTe4XWwBTM2*BB051khzi0y2V^Mj#?rv~po6hUR*)|>ga5mivaN4HxdStdu z2k)G1#^(+xS8mgJ`J8Rj!Dm-aHk@oa*>JMyWWzOr+rdl0w}NR?v;myQ+AX)~E+<}Y z(|H+~i)E>{nazL#-0HeT@z;nQhz}o+#*f&O-OT zq27`G&D(~0`@4GwyEJc;_LF#Fy7Cd86>NRznfAF|&b2e8|G!Lr*aBTYCaaD1JtO9$ zwmX%T?n&A{WBu9&zZJH5C&%i+5y@dWE)9tBC8x9s%;1C z2_D={5_L zKzI`n|J9Ed0Lkj3z%PMgfP&!u;^8HsW`8>1roB zk9$^oO$StarEf`Bldh*wN!O#^qV_F#g${N_tSe}5)Voy9_6o&!0}Ar}tK34c+IBJc z0xvg=!`kj|`6W8z5f3?-*isn=kpioJ_J4l{*rE<1r zKS2CBKtXz)>bL=nPUrNxcCdW&w}Ll-(Yx@VN5$=6`Kj@HJ3sr*5WgS%Ve%gWZv``j zosRYiFnlc*!FPi5(QuT4Oj;(aAWl@`RcRo^C>I? zX7aoUSPRIPyc-w=o&>%F90ZO6jCs6<_I8c-_E1*maE&nUaq>Sz{3kqX2HJkeSjT1T za}~CR8UHx1XUNx;r=B99I@B&qo~Lug**2ZhW3-Ixo`yhI+<(0MmHV$rnV(N|6^^_JXOcC z=Be>R*z}Pnm@5h&^T_=_AD(C)Ii74PjNINex}}30z4MnO9-xfqjb=LVL;A4hZ)r_e zzT0CwD$zz!ZT;)p8_TS!F}{c)+gGEt{{Um4{Y3NekHfR(3F6J|$2Wq#jL5~ZMN?3F zrUK>NzS;wpJVB{Jd@hah+|DpNUUm8To{QJA_5khK3cR<7J|%x(@ggwkMeQVe!B>K{ zPb~#MLVR_IYkiLpm)~Rt{(~8KYXl1Ni743nU+3A+{an0mwCE%&6lhm_DX(ogQcJ*_@zS@A6IfKM7V>gJdOla%aFDj0mJcVHzEJpfX@y1$7Cx1 z>3}u&6*ssn(CrWPt`B+lF=nFq0sn*_3Gw?v{O19GG2pL+^4|^h%?b4X5$gMSNM9e) zFAn8?9LmWcBPm)Ru=kxt(LaQ8_l5Mo4fS0a>gfvkzX|neEvg>7gL`!-_r;LDD$u{43=7;RpS&1}zR9+V#5u6UnlO6h4I)k|K-UMWOD=2P3 z&%Xxtg@kmT&PuE;={&7zYfCy$XC5mn)Ty(H(F%DwTj;BhC!NP^sU&;#Zs{^>L%DRG z^bFI@(|NMamS zMtjK7`@;aE^=W~2mFxyzZxbEJCmg*-@6!W43YpRC4n2N>_&~(yeR`lral1U!uY2nG zj7tYr&gX}6F#M`ePM`10$CrYSKc%r>+-hvw9xL_ z_{ZZp-N#>NU3D4j)2D~|(pH);x~Eu|u|9ozp#NZLed^v%-5BfB=ZA7#I-B%zL-%9q zbOGe}r5W?q(}c1Ql*;OEh%0;ivW&}mnozd8w05+navAF^7X@18wylF#GiZHUpiRg% zoo(eZ`0UdIJ#x*~rOtqJ8GQEXfgX8ga!}_fc&(57FptR#e^% z@`L&@kqoJi${l7_zt0Qx7fSt*eo-Hl97;y-(*ym3RGbLf%WC_-X9&|K4&qC-_kYQF z{RYeu>Ru2%)pkMjxtaK=qeHyx056wLWIj|LnVee+K9j;2NKl^6W264k=IRHT~buCF70wa;EG5>VrP}V|EdbaZsK<-(z-BI!~X&kxx@0ou|*yRLa{; z-f~~8tXv(t_8h&G6>ID4OVG|_t}9rYa31Yhbam7q-?RP{IzfW};`wCG!^ZCqPst~J zD{;@H{(ezk>erbjw|mEn4E1nw-m9&%ql^g!Q0_rsNbBjth6I?pgul*Z) z@K3e&Y%W)5{>lD)+W5P0vTqnC|4+916LM*C*WlRvo7{Jg!P&`uaW>CO>mLa_g}?u# zb5(z?1#)-C)e`PZxqIE5b3Qgm{8r+Rf;+%t-Ro{)Q>a6R^+Bs3jX>vS3Y#gby0=hg z512Dkcdz>+;7a$p^*vw;xI3Z)RHl2~-vS>6e;+JA`3vB7@KJEqy>3^*8T7A}wmt>e z_y7MZz7vJ z3xP`jhS1GN>AspPIt4!um;-2cyck#n==A(@KsN&#fyIFK%PW8;;7Z^sU@0JeTn$LS zmHxXD(3$7C0PdjpH;ZxCy6-2D{iXTFeZ9=zfI89n8pT)xiBJ|{ho_UNq_QII#4_^Z z3Yq#YzZj>KKUAncCMxB($7$7k7_04iPwo6~{O5nHsaXkKx|+jOt81EaKyp<6KkonO zVrtv`=#3`HJoEpx^Sn|*AcTqg|IT;*zc(mv{=Z}2{hoqxo=i*r-@zkdZF(;lnums#mh6ewSnKjb$?vCdKT423JFuDOG;AYnCJwW04AILd9F3IG z=R@S{60Pipv4Rv_jjm|70D9#H;5J|*unCY|5^T~kKb>ZZ{B-isCH;Bw)yb!KDIohb z>HEW$iG71t@Z1C>eRlHoNe@>4lQ|n8O12qoR QI8ft2jRQ3fjEe*R4>&pkNdN!< literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/TestConsole/obj/Debug/TestConsole.exe b/SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/TestConsole/obj/Debug/TestConsole.exe new file mode 100644 index 0000000000000000000000000000000000000000..cde7c031b358af82486ec2a3330c588cb5dab269 GIT binary patch literal 16384 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 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/TestConsole/obj/Debug/TestConsole.pdb b/SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/TestConsole/obj/Debug/TestConsole.pdb new file mode 100644 index 0000000000000000000000000000000000000000..db2568f981739e18215cac4157a3b4675aed504f GIT binary patch literal 13824 zcmeHNUuaup6#vpim;QB`vv!@-SgUmFc9YgxOHtdAcC^^qO2h{Vg!JZSyDUvYZmJYS zQx!o_DC)x$1g9^1*n^<>Ak0lD;KvH9gLN#4||xczu&$2(!1E!{#k5I?w7T^NoZ~_#RUNf!eCZ{*VAw2;l-d1e|9XbkJhX z|1yw(r>5cNl0&;z0=Yka-L-3X7QVFfVr9Fln|^Fx9$M!4UXL_x2^@ndf?~TuSFB}o#hG*!)YJym4FSVj`J+KG3 z6W9+_0#(2rKs8VU)B<&Y7oZv51?&YJD!l|ssefq`gILDBfV6{q@SD1)Ew}*>V7CM6 zpSB|H!LbDhqeQfl|EJ#U{-0%DzL=NjmYiw-LkVo>{%0Im&;DnuaHzBr_&h(o;@rIy#Sj z%G>XLI_;iyG56XCF;Acmr>>aelN_B|a`->|Uz}f@r@pv9h1wG~qVaH6GqOrFolfX# zG^?kQN-U*LPH4$&B08mI%w{!}G*SsItR|v{(XOb*t%EVkh9{sE$(_ub;a$#i66>wn`!pvO>@{ZO?C<9 zO*2?9&6sJ{5yPBW<;<|p$P0!!bHU&@W3w{i(Qdhe7~Mz|CL_|$&s@0c6mf))+Tu6f zHprd>qRMpZX46PiPolkE?D2Bk6;yu40U)+li572Y%E)RH?9<|%o3X)Mg66gRCnzW5q-%j1VeF<;YiIi#tR89h6tjAitss;8p~w6nj>a&YfH zQyz$ICPx=xWO!dbFV_jLRH%m|%)&F8WAd@E&~{R%9DH7SF<8QKecGz03?bY?J>0C> zpH>6QD%7ixC$CLKcx?5iJ4Rg-+GvS5PbrMaXhs?v!AyxNa23LZzXRw;qK>&1A_tII zSGrxuYw>DayAZzvS6BeCUfLWNAa@b^!5_U0PYPTlAo<8)ygmfFuwDI)Rsf5!i}b{E0Epn-yd8zkT4Hz;+X#;TkLb3tUkR zg#7?Gwe)D7gKe37Ys_F-#2Ou(rX3*xKA*dU6#(kRVbjlWPr5{)D?q|#DMRA6Eo*8L zb*3({4-sC1qa$sRfn+u_6&XwE2y3tG7Z2HV?dZR(jlo%5u>{I~|MOd}bHD*OfNpT+ z0~Er?0MCU60oHAWI0y4n=E2Ni`R-4i{W8}z&kq<(*vN#yO0%qNmUYblC*U9sAhEwg zTb97xn1MO;*8ue&q5MJPKn|epT7hd&p8fovy5v}@hwp0nE|=<|nmoW-@AlE`&<>G+ z4>|v8TZwy~&j!?|2mNRodGpvIcVF_`;L^*QsAGNuz~{ee@lkh;c+JD_al(KPI0~Et zB=Nc1`u_L&C0S=hjOExN%T{}pxCWzn3x%5i?dQz7eFZbJox3R3iJce-c6N1i1v|vC zFO>z^QJxQ2b6Wo^aH>&jc5oHq7W>gwNnD%c*4cwg^r6Cj%(r{DSM$C<`gzZg1*oA3|o$bvJ56dLQLIP`X)v0p8KZe7&2F;tFIf05`~kur zV`*Wh@HzL*3=2~>N^xH2opaBxd+xdSoU5T!yh}j0)Z-ZG4Y>1=u^!N_7FE%S&Xjlm z5Q!9%8AwUACFK8>`h3E3}b zMhS>@%2!g6I5{*$mr=l86(lv4o4Ku_t;1J|)`}8kA7WW@dwv%`SBqOmShC+_J4#z&O0!G^_*D{lj0aK!byCgZ4V?RSZI{ z!$-kK5b$lC2BXf8Y`bi6{ru8`HAFBfN z9O^eYp9y1{8Zxu(JY{^Bnb}8Ca~>3D4f~u;hfM*H2g`EMpshrl31)>Ai@Y^0A{}E4B73~riA}x!rRphRY zRcq(V^R)#GjKfd zu{7Jexwt+#eQ=)8Rk@3F!y4P^{t*Fw0cfY+@;_P-i3YX7{8yM6X|$`)GWA>9(Hve^ zi;gp$)RnT@i|&qP4H1`R?(7z+5#M0$VsAkQ#Cnm}R`sy#ZZm|(eN>Nfh3Gb;4P@Ak nD1LKa#kta7X3Hwwttsw@^=^dD%pjBS0vwSO?>~j{ANT(TPK>4J literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/TestDocumentLayer/AssemblyInfo.cs b/SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/TestDocumentLayer/AssemblyInfo.cs new file mode 100644 index 0000000..9f89a32 --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/TestDocumentLayer/AssemblyInfo.cs @@ -0,0 +1,58 @@ +using System.Reflection; +using System.Runtime.CompilerServices; + +// +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +// +[assembly: AssemblyTitle("")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("")] +[assembly: AssemblyCopyright("")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: + +[assembly: AssemblyVersion("1.0.*")] + +// +// In order to sign your assembly you must specify a key to use. Refer to the +// Microsoft .NET Framework documentation for more information on assembly signing. +// +// Use the attributes below to control which key is used for signing. +// +// Notes: +// (*) If no key is specified, the assembly is not signed. +// (*) KeyName refers to a key that has been installed in the Crypto Service +// Provider (CSP) on your machine. KeyFile refers to a file which contains +// a key. +// (*) If the KeyFile and the KeyName values are both specified, the +// following processing occurs: +// (1) If the KeyName can be found in the CSP, that key is used. +// (2) If the KeyName does not exist and the KeyFile does exist, the key +// in the KeyFile is installed into the CSP and used. +// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. +// When specifying the KeyFile, the location of the KeyFile should be +// relative to the project output directory which is +// %Project Directory%\obj\. For example, if your KeyFile is +// located in the project directory, you would specify the AssemblyKeyFile +// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] +// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework +// documentation for more information on this. +// +[assembly: AssemblyDelaySign(false)] +[assembly: AssemblyKeyFile("")] +[assembly: AssemblyKeyName("")] diff --git a/SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/TestDocumentLayer/DocumentDoSomeWorkLayer.cs b/SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/TestDocumentLayer/DocumentDoSomeWorkLayer.cs new file mode 100644 index 0000000..94d26cc --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/TestDocumentLayer/DocumentDoSomeWorkLayer.cs @@ -0,0 +1,83 @@ +using System; +using System.Xml; +using System.IO; +using System.Security.Principal; +using SAF.Application.DocumentLayer; + + +namespace TestDocumentLayer +{ + /// + /// This class demonstrates what's going on inside a document layer object and + /// how it process the document. + /// + public class DocumentDoSomeWorkLayer : IDocumentLayer + { + private IDocumentLayer next; + + public DocumentDoSomeWorkLayer() + { + } + + public DocumentDoSomeWorkLayer(XmlNode configXml) + { + XmlNode node = configXml.SelectSingleNode("Layer"); + if (node != null) + { + //retrieve the type information of the document layer from the configuration xml + Type type = Type.GetType(node.Attributes["type"].Value); + object[] parameters= new Object[1]{node}; + next = (IDocumentLayer)Activator.CreateInstance(type,parameters); + + } + } + + /// + /// Next Property holds the reference for the next document object. + /// + public IDocumentLayer Next + { + get + { + return next; + } + set + { + next = value; + } + } + + /// + /// ProcessDocument is responsible for process the document. + /// + /// + /// + public IDocument ProcessDocument(IDocument doc) + { + //do some serious work here + Console.WriteLine(">>>>>>>>>>>Request document from " + doc.Sender.Identity.Name + " has arrived<<<<<<<<<<<<"); + Console.WriteLine("Request document is: \n" + doc.Content + "\n"); + + + StreamReader sr = null; + string content=null; + try + { + //load the confirmation document. + sr = new StreamReader("..\\..\\ConfirmationSample.xml"); + content = sr.ReadToEnd(); + } + finally + { + sr.Close(); + } + + GenericIdentity gi = new GenericIdentity("ServerProviderX"); + GenericPrincipal gp = new GenericPrincipal(gi,null); + + //generate a response document and return it to the caller. + Document response = new Document(gp,content,null); + return response; + } + } +} diff --git a/SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/TestDocumentLayer/DocumentLoggingLayer.cs b/SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/TestDocumentLayer/DocumentLoggingLayer.cs new file mode 100644 index 0000000..8148e34 --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/TestDocumentLayer/DocumentLoggingLayer.cs @@ -0,0 +1,149 @@ +using System; +using System.Xml; +using SAF.Application.DocumentLayer; +using System.Data; +using System.Data.SqlClient; + +namespace TestDocumentLayer +{ + /// + /// DocumentLoggingLayer shows a sample implementation of document layer + /// that would log incoming and outgoing document to database as documnet flows through the + /// system. + /// + public class DocumentLoggingLayer : IDocumentLayer + { + private IDocumentLayer next; + private string connString; + private int documentLoggingID; + + public DocumentLoggingLayer() + { + } + + public DocumentLoggingLayer(XmlNode configXml) + { + XmlNode node = configXml.SelectSingleNode("Layer"); + connString = configXml.SelectSingleNode("Config").Attributes["connection"].Value; + if (node != null) + { + //retrieve the type information of the document layer. + Type type = Type.GetType(node.Attributes["type"].Value); + object[] parameters= new Object[1]{node}; + next = (IDocumentLayer)Activator.CreateInstance(type,parameters); + + } + } + + public IDocumentLayer Next + { + get + { + return next; + } + set + { + next = value; + } + } + + /// + /// Log the incoming and outgoing document to database table + /// + /// request document + /// response document + public IDocument ProcessDocument(IDocument doc) + { + LogIncomingDocument(doc); + if (Next != null) + { + doc = Next.ProcessDocument(doc); + } + if (doc != null) + { + LogOutgoingDocument(doc); + } + return doc; + } + + private void LogIncomingDocument(IDocument doc) + { + DataHelper dh = new DataHelper(connString); + documentLoggingID = dh.GetMaxID(); + string sql = "insert into DocumentLogging values (" + + documentLoggingID + " ,'in','" + doc.Sender.Identity.Name + "','" + + doc.Content + "',GETDATE())"; + + dh.ExecuteQuery(sql); + + } + + private void LogOutgoingDocument(IDocument doc) + { + DataHelper dh = new DataHelper(connString); + string sql = "insert into DocumentLogging values (" + + documentLoggingID + " ,'out','" + doc.Sender.Identity.Name + "','" + + doc.Content + "',GETDATE())"; + + dh.ExecuteQuery(sql); + } + } + + /// + /// Database helper class + /// + public class DataHelper + { + private SqlConnection conn; + public DataHelper(string connstring) + { + conn = new SqlConnection(connstring); + } + public void ExecuteQuery(string sql) + { + try + { + conn.Open(); + SqlCommand command = conn.CreateCommand(); + command.CommandText = sql; + command.ExecuteNonQuery(); + } + finally + { + conn.Close(); + } + + } + + public int GetMaxID() + { + int maxid = 0; + try + { + conn.Open(); + SqlCommand command = conn.CreateCommand(); + command.CommandText ="select max(id) from DocumentLogging"; + SqlDataReader dr = command.ExecuteReader(); + while (dr.Read()) + { + try + { + maxid =dr.GetInt32(0); + } + catch (System.Data.SqlTypes.SqlNullValueException ex) + { + maxid =0; + } + break; + } + + return maxid + 1 ; + } + finally + { + conn.Close(); + } + + } + } +} diff --git a/SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/TestDocumentLayer/DocumentXmlValidationLayer.cs b/SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/TestDocumentLayer/DocumentXmlValidationLayer.cs new file mode 100644 index 0000000..63f4f40 --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/TestDocumentLayer/DocumentXmlValidationLayer.cs @@ -0,0 +1,102 @@ +using System; +using System.Xml; +using System.Xml.Schema; +using SAF.Application.DocumentLayer; + +namespace TestDocumentLayer +{ + /// + /// DocumentXmlValidationLayer shows a sample implementation of + /// document layer that validate whether the document is compliant with + /// the predefined schemas. + /// + public class DocumentXmlValidationLayer : IDocumentLayer + { + private IDocumentLayer next; + private string incomingSchema ; + private string outgoingSchema; + private XmlValidatingReader xmlValidatingReader; + + public DocumentXmlValidationLayer() + { + } + + public DocumentXmlValidationLayer(XmlNode configXml) + { + XmlNode node = configXml.SelectSingleNode("Layer"); + //retrieve the schema information. + incomingSchema = configXml.SelectSingleNode("Config").Attributes["incomingSchema"].Value; + outgoingSchema = configXml.SelectSingleNode("Config").Attributes["outgoingSchema"].Value; + + if (node != null) + { + Type type = Type.GetType(node.Attributes["type"].Value); + object[] parameters= new Object[1]{node}; + next = (IDocumentLayer)Activator.CreateInstance(type,parameters); + + } + } + + public IDocumentLayer Next + { + get + { + return next; + } + set + { + next = value; + } + } + public IDocument ProcessDocument(IDocument doc) + { + ValidateIncomingDocument(doc); + if (Next != null) + { + doc = Next.ProcessDocument(doc); + } + if (doc != null) + { + ValidateOutgoingDocument(doc); + } + return doc; + } + /// + /// Ensure the incoming document is compliant with schema + /// + /// incoming document + private void ValidateIncomingDocument(IDocument doc) + { + XmlTextReader xmlTextReader = new XmlTextReader(incomingSchema); + xmlValidatingReader = new XmlValidatingReader(xmlTextReader); + xmlValidatingReader.ValidationType = ValidationType.Schema; + Validate(); + } + + /// + /// Ensure the outgoing document is compliant with schema + /// + /// outgoing document + private void ValidateOutgoingDocument(IDocument doc) + { + XmlTextReader xmlTextReader = new XmlTextReader(outgoingSchema); + xmlValidatingReader = new XmlValidatingReader(xmlTextReader); + xmlValidatingReader.ValidationType = ValidationType.Schema; + Validate(); + } + + private void Validate() + { + try + { + while (xmlValidatingReader.Read()){} + } + catch (Exception e) + { + Console.WriteLine ("Exception: " + e.ToString()); + throw e; + } + } + + } +} diff --git a/SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/TestDocumentLayer/TestDocumentLayer.csproj b/SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/TestDocumentLayer/TestDocumentLayer.csproj new file mode 100644 index 0000000..cf3c4d7 --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/TestDocumentLayer/TestDocumentLayer.csproj @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/TestDocumentLayer/TestDocumentLayer.csproj.user b/SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/TestDocumentLayer/TestDocumentLayer.csproj.user new file mode 100644 index 0000000..686cccb --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/TestDocumentLayer/TestDocumentLayer.csproj.user @@ -0,0 +1,48 @@ + + + + + + + + + + + + diff --git a/SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/TestDocumentLayer/bin/Debug/SAF.Application.DocumentLayer.dll b/SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/TestDocumentLayer/bin/Debug/SAF.Application.DocumentLayer.dll new file mode 100644 index 0000000000000000000000000000000000000000..3780fcc8ad1a97179698ff9dd4db5033b4c18907 GIT binary patch literal 16384 zcmeHNU5p!76+U;y_O3Uvvvx{bL@H+U14|Q`-6RSmjoNkAO|#9XcL)3N00l3T@Sg3V|AlDt)L_1cC^tiXw;tA_xHwNaZ2oA>si9Nbmrv2;Vs~ z_By+(l^_owG1r=N&)+@w-0$9*xp#ICe)7wt6HyG;ty@HwQF9p+x-yxEIsL)!rRm$r z>qD2-f$KvvCu^S3be*be){U~+XgI!6vJAJ?Flr5>Fj+L}PQ}WlQUe>q&{Gc+9Z))X zKlwtw)7uS753N!OqCsekK>O5|kRKB{BYN05Z!Vph<{@x96pRaM2qJgtu33CW5O+Uw zV?>u2h{feN(Q4>^Jw&u_v27*UAnNb2_e0*-Bj^Rw<-%uE4VS;3=m$w6#mfJntR2xP9k$bk!3}8oa34|PexkJ_I!(cb z*qOklyWpG78n_K4w(LqcIJFMADb{7cIa!e5wIHkRxd2atySm)4tOpBdElb9A46ZaS70SJ)?dn}s=8@f3oZ}@VUWqsMu^#wNY z&VD9X8FqHn@zh`HvO8@$Q7J&t8O*?17_QD=bX~xa|Nr^s;=yp zYgS752vK}=j|x{9f3G+*nj6h+-?nutc%DHUbRHww@D$M>Q2z`FY$*C}tx@&Z<1!}n zUep^NE7C8(^QVptk32R}Kz#%9Z&}`BJLpOZubfZZb5UVVi2k9r@j{1=Fr&O)I=Of^mU;>7WzA(tM$KY12m&wLoa7R6ZBQR1o{Rj7tV>PqSsJwp$9@q z0hK1CI4m)-JuNnklF$s&1+i%uv!b_Y2=oPY1oRa(2l_R2jKiW_O})|`ElXdQ7NISE z2^eZLWw89ry;oq<$?i&<(DOBsZYDWOoNj~?M~Ty414(fd+=WuErbulj+?k=YN{#eL zcdH%UyZLHrz1r0y?N<+BY@K$WRs~4whFIpz%IJSeq?-U>Go|QcC~*%d`fMn14{3Ti zl(>g9T?!@cVGaE-l(+|8F^UYVPemUR`ca`fg$DX7J$#@E=vC-7x(2G#PnYr0F}65n z>LYZ8cG0NNouD@5g`W^QE%c~RQ)o@-X`yYQ=Y>88dK#Eqq0dl;#`PybPwD6BEA*`X z4EPuI9atx?>Ce*}^ez2GtO@qa;ZC>?x>o21gl-f1fY5QF`-K*TeoAOr=qcP8uhKUV z@lEQQK(P?MnZstCGR6SP-| zz)=#2p|D!w;FG8o=A7wjNE*h$G=*AWPMKyPX+RiD4&z$`J}dMtSQOS|hGO%<9dtCJS9V;xR-$6t z^Q}5fmL9jtK6OIuvCYOQc{VSE?HZ|S`Nt0N2WYRuOu0_k^1M!S5^IB9a%JCf!(MVn z>Nepzgcn3dRkX@2x8}EVQ+Pm^YfTdaSzx)RqSdHauJjeMtQ~h6KHeXq?(o4_a^sF| zV=#Elc(l*-PWooawj}9%rBY+PX%|f2l(vghVGo^%i>zLdN;&M?yggjl{bB1w*gfSv z&#IT~_I|5<$gEp=A8(;j%eQ(Bdu#SGhJt0A?P9IkSlVXRay^V;sbRcj`z?2wU^A{+ zvFfIKYMC}pv+dTZC;g=+%xR@nUdAx))SG6by|e{TJ5j5)TzSPWH5V+e?ADq*0ZWZD zHNO{!5X(Z%tTr6aua!NL4MLUYa-sDZ({5Q*2{#kOD=t{Im?EUY>#b<ER|q=bSB8-W!m);+XQZt$rHlPO0P5RrbUlfzSMcFw=*U$^>NoSeQToO`DUXm zxsiwWhlx$W0nj#CX7K#Q{Ih3I|M9(_zju-Pzk7CW_Wj#$JQp)4 z+aEWS%JwG=l^x6u#)hHM6QMTA4k>X+=?0}^a0Q`kMsykWPU*uifXSd)N=u|sW%>3v89OeU`QF_yp%LzpAsd4ZJ;<_+eSmd?3?2sgT0u@@^oia~$#N_*rO;T@3UFu8lpmru5&&Xif2hS$wvLPbc#NBJlf#^Jw0dC&$|@ zyVH*EEPSz%>KV%@_U0qFM(Ja;1HT-7oVL?W?ush39(gh{zO-u~54$IuB2E%}(ISt2 zo3Pa6E!ROR2b>*fTHP@&y!~>BZR1BYEMqx<_*IF{s5J3r0^MYS6I~BC6 zqn%5q1i`@9mb@p!7(6?icLxKO7>NsIdQkIIO2`Ff=rV88GgcgkBkO;@lY_k$+ zKcbCQoho&aR%vYNB+#a5NYyk={Gb)p_z_k7KvPxN#I$OPCNyOdTSwI&`LV&C=iYnl z*N&6e#igm^qdY$M`{SH@&pq#b-y9kZ#bb%saMIV)-1F2^zC#21eeM20VBPBa-T?)w z(0^(>f&mv3lxj4r{96hVSbz6knO3d@I?lP&%*vhqil6yQt6E$gv}4s4n%%nxvv1PK z%T%%wm^=RB-gh6mUNbeIuDtNeiu2R^zVfqw{^R|csl6t?<`*x2t7iCm%{x1ln)4ob zXCXm+RvW1g1KI{u0v^BzYz5W>Yk?ZzA;1f)2G#%@fJcChz$Ty;coe7u9s}xu&A=9* z0eBqv06Gqf(w{vGzaL#)G6CP>K%_yH6WU zTm3LVyYB|70G3xl{DKS}>RdyWot?E-qeGzJXqmH>}Ud>Y}=XjMCP*^Lwi z$ZMGX#d`CMAcQWJN`#YxUk#s5B3P>`YkF~LRih5qq?B3BaZDtV;W7Hy680Y%izxMk z8RNq44%*45%mzn0qJRJF`Loo26WS<*Nv(6ZMfx=u zR*tpUnz0t^?Yc#ITUMzkP9jv-YmIxn0}VZk_%?v^V;$?y=oAv7t zC1Y{h9@4G>JU>XwL0+;SWjX+Zsk>E9~MNA#;4^I56-r{19B)S5|7jO#VifVDyK zrPrQP_?r*vVUm26LnZ#$}ERH$Dyti z`=4!dM6Y|SP1u4BL*ly;A)IfXaYVFE`{S`tIFXPCZI+=ut;3?KLtWOBvdcxc7=I3X zn)_^bVV3+(fb=TBIa4HW0+)bkfOhi(fJECua6J<|*9ppiU>im9>@%N1&@RVH;&>V6 zI2vr2V+q(W$McL0b4=a9M*w{zlGJ6GTblJqXm^r_0lt@*q}_+VH(9CLU_UmYoLjd6 zH%0f$Hu@1J(Z4yy00`sJZTP_XK5i>GzrolB&VCxfc_-5Z&a-$2c%^DqZq*KKg6y9I z{J{QHpRC9Eu}`r*v|VUR6Y?i{N6-RZ1=YJzoAYHo%7XR0;3Q`~$Y_#dZ`1WQr0Vq{ zZ5&`d*%w&uDfvO3lWeaCoZpu01Ls}xesD8~CgsMPO3LhGq_gZTfV9Ift;1aicL7HL z_V)^K4&b`G3FPaS{*IFZu^%C90MBJaIBq#FZ`jQ3QV1OHQ$4coo#!R%y$5^|kbLL< zZbqyEhhk40!3C5MT?GhO*rhhF1K9@LT@BtFv#G2vS z=Ne&|Q~Awhq;M< z*A}2(k;CiUj3DR!#`kTWKO!xq-z+&?h76`qk2;oe%RvsJWAQ)E@vsGnU1u2Qkmt|f zDIIqY4UN)%1S7q{WKiq*EavtG>aw1cT@LdTJ>zW7dmoD|^udYwIQ5LP(=#Ko;6BbF zi(f$w-^0O8T}#>JAPdno&r#@9pChw&E@FGGBF=MZ2DlB(0eqI_nM3Yx?{$+5U&7I)%(JHn7^ssW{^mD^=6Mrp$ zG8{9Hz)& zaJ_B;I)Hv40-OQP0ha*!8@GXK2!01}kP29UP)z%%3uLE~yD*b{i0|?0S2f?cg2G49 z?|F2|BKCk z(&oQq z|59G~Vtq>)uX|F0MdxnSmCc}3ty>F@a)!C{NE-8=@)XOGjs8DI){1NaSa z5x4?e18xGh0PfxY0$wO(Bam{Ekyfjo)aN(LR;WN5-w(9FnAWQ%olYORLSOh>$J$ZH znc={odHEA%B<+F6r+OrEXNnyy1X&h#_Cj>)ricJtZFjE%mL>8E>WgH1ycByBE4 zrB9P)>Ic3=-`do_k)y0hvt@BO)!MSXn3KzK@h5GYbX&g7Q6BSgIbM{c%IkDn9*16o zZJ+l{xM`So2_^MRzO4s?EOX%8Dss$MbQyqw7hM`1J027ry8OKBzZ!E{h~#XLe34yQ z|E074Gaj6vXxTT$Mwormg1s-cgU=Gi-ef&!IO>`*wk~Xe4|Qgd{|am({?ygeCuyEF zE&BPEUv8DtSDk8icYFIY9j!0{n#|Wq>F<^#ZgSVEGamR===7@X+dENc-|G3cUVI(W z)2*I<+kc1SC#^Ru+V zh++Em(qDESeRuZ9Jr)FlDNDc{-IsUpP^CunH3 z7Jvy$?x)UQ_qVt%xL?}K{onHAcYprZu@illescKL?|1$B{UHpt`QT{u{kPm-)4uZuS$j65(gQ)S07!p--WNg%TcFw5{hI1l(iw zQ~24WT;KohK>B5Laux&Fg>pO_hOi}N0e=>}4`blFNY0;f@Bv!^%9Bn8K;9Dg EKZWtg&Hw-a literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/TestDocumentLayer/bin/Debug/TestDocumentLayer.dll b/SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/TestDocumentLayer/bin/Debug/TestDocumentLayer.dll new file mode 100644 index 0000000000000000000000000000000000000000..e9b7806bc9d18d3b47ba97bc8a94f431d834502f GIT binary patch literal 20480 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 QI8ft2jRQ3fjEe*R4>&pkNdN!< literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/TestDocumentLayer/obj/Debug/TestDocumentLayer.dll b/SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/TestDocumentLayer/obj/Debug/TestDocumentLayer.dll new file mode 100644 index 0000000000000000000000000000000000000000..e9b7806bc9d18d3b47ba97bc8a94f431d834502f GIT binary patch literal 20480 zcmeHOeQX@X6@Rn4w|73<*W5WIF^S8D1Y#%QVke~GtHj1-<#b# zpJNj!Rr#kor+GK;&6_uGe)DE_XU^XAxv!E+L>lsm6GTtqn^V7}rzVrAPMq;nf*x-< zy7);ke01^1c*!-Yj$L%}WuuUG%Qr| zp1*aV-rH-GSllXfA_Ef6NYAVTF_8O_iITEB$M>5B?7vKtppbLIxF7~2`TBRGTIyJ^ zyM;^rMEe+slhbuXZIIo4HqoM!>rTZRM6ss&82F7%eA+YjdElR$4}!Y-cu;C2gXp@n z<2nUMq;LHw@K}10n^Hf#Pdlb%Ly>)@>yTNmAGs;@6J658hQ$zp5P=YZ5P=YZ5P=YZ z5P=YZ5P=YZ5P|jq73BV9L@RN26fFE0siRj=G-#)ECy3(9siRk=t&qWH z(wC_Y%2oSQsE+F^FVJoD7WP0`*mPe0PqrbJ`ib0PKMso0MS zZ8`VX3fmF3eG`k~D@f-)mB#s7QGMNoy&8Q9y6`XQ;M`qR?bEooc}&2^ovR`2UVu_} zC$k5o&gooydRoog_}o_Krx3XdQ5n~5Tn)rqk4JU83x!vl_qgiQD7MAsx@X|Ky(K!= zHBji#l3GV(1tlZPNnq3pj^uN9G$4a_ewrOejcTaIC}+V@QJqc^fa>G9jM)aB`&EGR zvB3u7+H&+g9dDM-inmnfIXDMx5Cus^?Z!0eN;fV=^py$!TeTMhk~uyok27MtgM79%|po3Gr&;;)pY-IA501 z&XZ^PNbGdyK3TO;wRv)n#1=V+rJx&4M3;OK&sEIsBIG4G&nZ=kE^BN=BMXCEaz&0F$F9S$EZJ~HHiPfyz>fo& zC6`z>_r(dU*g5}*zzh=oORV9CHiHKY`58zo$Bgp6Dev`xx_mxjpOZXxQi2Pz4K_=p zc;LN`YvmqrSI|1_*ngm7D8Gktif$1lk)U6QV`zDy(xd1!B57ID+a*0L=~I%vDCygh zwy3OsrlbRseqPes)tZ{1C)8u;>s3&lPN+SgZ5q?8wo23KT1jt_l7o`|Q2RdQKbQ1X zS^E}foZi>gq1EY;Xhf%_kskPbaik1 zjnU0Ovd-NpIR)BW_if2Vs9kc8N=}Dd(DM>UpDqxqAXy?-gB}zYHfp~oB-l?ZJNIJOd@T|OtR=yb2-4$xY$7B3@<@U$U1Kv{4xx?6JG!+ONm<32}U6YDYN zIe0dpcY07{5ND70oE%XrJ=@??s2j&NU-zYrCIgOrX`{P+PWsYLzmePl`a610Pz)=d zeTgb-5!L+xXDA7|Rs`LTkQQ_nf?3cCNoPuYxlflzSaYqUAFQchq$+X*`F!G$4@jB? z9j0xve3hhmNlTLMk#s`R1Crh$=^;t)1KkFDJl~!49d#$@3+gp=nEtAcqWrEpPCp<` zv*^b(PjhH7jc8w|pHWHs7UFBKHcr2#+q8%1_jHf;UDQ4Z$seWVH|Z$KZ_-Ozg8nHb z?}0u-LcBna<2`{Rh1IXBm)Us=oGg`;$pG5D>4W4 z{>W*f4|dj5AKLbbK6)o|o;Y91vto|!dv%#eV~(!|?T~b#q-!L-P|`t3FPAhY>D7`J zB)x(1;zqia?x2Ho2yyic9filM=tYe7Rr(XXMeouHiil3Es%2uOSTBaeRH6Pxp8bHKwJ#3($crix2T)+`kn)5=feO2x{|Hakqm1r#$Y z25XjAb7nC%;$XPtymP}WZS3lVQ!0*oGpjJ^W3|F86@zxUny*aEY=L>&T`JZb8FMqM zGp1W`N>!f6nUy0YuNjAWT$J*~itT!(f=lv^u9zQfRzoM`v4pqmmPJf#&7_fus>wknzXuS7d-J@41|2i+Axc~?Un!Wh zSL$LN)T1DW5Oqr4M0zV;8VjXr-lFVOk-f;76%N8|b_`(-O~3nQhGT|;B?fHq_DlG3 zZOf#cux$>PD*n2K)RSvP?m+467H(zc%R!uvU|9!6{u;4|Dq}Qg*)9*PVmhTl!-s&M z^0cvfgBh8E(xr`gciiI%p=`xlvsx}rSH2{ZyT_s}RkPwR-*P$6J;EgqZ}~pQ+e}bq z|LTi+vt9AmHP$`v1cBedk`Fjchut@R7v(&p4wYyx^v39-5BShIA8x+{dl$fB9LEae^V5{Z zy@5{$(Q}1%qaOzzV^Vr0QTvp& zBGG9DX{mzRLc=a)OX$y)Ef@{vJm?ve0d2-*7<>^Q)+nNWFFdjW91X(lNYbE{v`p47 zlO+)izB~DQ0}as#tPX$bgK=dc*cnS+<){8abi{flbHuDKX%^Y z2PyW%jk|Vqp8MJzs-9|54H6MUh*Y~~P^v{1TXaLDlBuND4T+*B6g?*8Ni;Z3gK`3` zVqiL%Q6h#S6j0bmu#s(Cyn=NSI9a8xN<>Lnl)9>GQ9P=p+PToRNYy!~+L5o)q9WD8 z4f9M)ozw)9M(8IB(Irv81oCvH>9*m%J@*wLSl!8MTLo5bomG)>P25D;YP-^m?7;7A2au3iz zlLz=KIeA#NzmF^K!m4b&^@Nh%`Z_;s^MB#4#m60X%D3=W`%}n(>dA|mGo0GAu zP5DyAe?v4)`L@WlC(eQmTmyzFL?A>UL?A>UL?A>UMBw8hz<1n)8)urFZh>#Z<)59; zkh9)K)8krE_88QH$7#*3RvaS%%ynq<@f9?-jjFZJ($x{*=hu}c}QK57s=lm>bg6i>p}6$>B2*@eeEj21;{g-2h-DV4o0;zZ&> z$3XVSHl^p!0-xsi#NyBm@Sc-_JR<$u64>BbVE^i4WzI+KKk?JY-#CZO`^&(^XTQ zmTM`)j7{YPp(-C%<-lvVTsu?~6Dq#hij>2disB%&BW20LI8e54)@gOjC|03e7blUP zN9EZ{Zx4XI9MW>dVvnkA8RFe6XtK)**W4BfLE#_^pTC@x0Z)cRQpH#X q5t&Pq`Wfa5Ss;+Nx+vR=~TUb1U=VBb)8p?jdGpm*;2`0(o1)-|X8 z`X21uy@f{yh8~{!caOo@$?bGD&u23k767?uvgH3S!gMp7J^P~Q&5&WZ5?w8QayU?} z@t>Xd`qpNeseNLy!U5hRT~K=FIe>J{q%J6(QF^5G$qN9;BUDqTYf1-|ektAZLf|4` zA#gEp32-T}2)GQ8jw*e%5is5I3Z9#QD*@?~(lt$|OzWJ|b7uk4gQb5;XPutmy?W{2 zXzDr78EMhttb(}rX+WB~dLvH$4m#tcxc_b9%KI5AgS7d385-620CCBgR{&}I3e}kv z6PW{&a>+TM7MXo96>~s6pU!ijTI+w5De*SbMC;#VfySviBc5H$jZD9G-e_oFaB?ppYt#zI?Cp2p%HzXe<52_^#GzXG0N;a+Jl-aeKACecRLrzp{{B49Z{u&1x z6OD(-W69nm-^FjOMe*m-*IIMGoB4FV%0C0#8E^q?;VvGQ0ZCe=iB>pCOSBfo!GUUx z|M=v8`S_bGp3L!Q&NVbL8QG)|#N8tULy`sc^9~VR#18chu;tH+n&x%xA08>})edIQ z%{%t?sZ287+}Zt5VQ&{@mnePx#^&`2d#EFrQ(I*ZL8G$Uv5L~^%cI75S|>C^OM{S) zHgq<%`mov_Bo>fIjgAKTKpREHkwL|0Vlxrv2idv=wO{k~Jn%Z4XGx{)?eW${?GAl3AwJnEbDXKB&2Ea(y+=@>j}l zDfzE`U?m_QrR@RL82>MyhVjqzA8fdOCu?J;=6>^-i^P$XEsvcRWA)t=I}O~5l4oM_ z+!0zS+Dww+P9k@*TAl@-;n@ij@c#jKS%hbW?-G}atO<1n1nI|Lqq+So3fWcK$JOkm zET*HRYd;HWTHz$EmS37yX`&TQ(rTHe zX_Y2g;Uuk=aGF+Wt_|QMt(JD0R%xOYPST!e|9AT~>+E}MV6sp8Sc6o-v)}8nLFN&4 zLG{+L!x`kD)Y@GJ&mRxvW)eRPyb8PlNGDK*vw?*`6CnDQ0RIfGmi|Z8h&r*lnQAJ)W+ zQg#Vfd*uEjHyU0EYoeO#|7;q6sdgGu?E^`fJ`wq^BQ@It682D$oPO99?l$zIfcF_-on1)8AyE3ibK*@p8I`$hM_-o0J@J@I}aS-CpQi6n0+8t4UOuI)c>lgs;0-k8eE-f`>(^y3 zCXYn--E8sy2wW!-o(RwIY~BbZ%bd#cSSU|H+nvG;wug@c{|(6NArsNP=yd4EdN+0r zYP>?yKf0#OKWetXtznNl6qvEX7j*yeK{U*QQDRyYoJxf){cM$7dNF?!S=wh0LwArm zmJ_!!Q{De1!4Bk%I`lt^m=4%Io;o5Y+@7Oo8XP~#= zQ%BL4$X77zV<-MEAC1m&#M95nfke=A+D2BICYW#mu#jbYSJJ&S(bM(1NlInPOV+Ci zoTk;pRvVO;q@9RPr$v^oSBp>eDlb{@MEn(6oauU%rh0{w^*)n9t2EIHCu#FATsq?- zU>UH2zON4OB3Nf>M@j$5Cr7{W(%&D-Eus8GLT&uL@SU#X&(Mx}{$t}`*Y(%E8vn%; z8GL9@_xNkwi}$tlpS}Lg{?|E^1=;^UW9^5z!P%4dpB)SYcKb(BHvb064ACb2XRtl` zA)xKX@~3)#w7t*TU&;R`d6#bgA=+){zm`AM?Vl|F-&aC^$8-LRem4(RxG>l?)U~%T zQWzR8_cfc}U@rA4B#*Y{GX=DdIR5S_jO_Xd+6gq$p_-_CHhH2qn$y8!wV8Pu`gvj< z()#;y=dvQ{5M>53wEok9+KD`oB0fe*Hgf_q;G8ik@e&$nLq8@z=VZ>T#cl-D7L@ zxv*)e-4?jt+ps(IA-4C(lx#XkAHPo-`NfT9s{5&Syh}Um{BJ0Iby&>b74t1lbFv-%@@O6ls;uilEHUlUh3ugBz^{3eR;-22(}%)5&W6>}#l z)^q#2KFYgtkCW#0hg^K_D4lo|P@tWz91fczd!_D_7IjC7JLbimVD6X~cYzm!KLN)6 zDt-Zc1z2~}t^(I{t10i`ez4#IZergAGy@yswx|z&pQX<{DpNeW5_l=4(5UF`e zTi^YDm2-0_U529#>KRid(>WINWK1ui$$I{rt9`HFS~B$jjOv8th#B7tNU)S>b?hDsc!LVcWAe06_ULA z)m!fsHCD_C$1BCP>HQIL&70j|@u~|fnbi#j!5^i{#=D5;b-*0Qt9MD0Jdkffq22xW zYlwN^;yb{DzyaVX;CbK(@HU|P0&awhv+S0IxI$Sj=J#i}? z-%J_N8_ig*@M@@n68UqWgy@p4O2Pxfg8~tyjjOK*VOa%|r zOtYU}4h>ZsEYSCcH;K4$OWdDTxx)bY?lWA*H8m%)#flvO#Soi1xj{XkBSTgKlU{AGg@euPnv-2e07#WThW&O$Semz@2v z7GCsG{!vO9{dD1nL?)2IkMhqXn4K~=rj4SWhomF>&mAx?LLJ=WeWZ^%{ryGbpX@IM z=|&c2!@tXTx#Us=|H3g<(oA*y8-aJSn;wSD=-)5=lkU5KersR;V&Iin`6}=RAl*+4 zOy2txt@bp5bS#1N41w08K=V)_ehO6gr7~30K+g=yQ#X5v^I-9e!t<1i= zl(_7>MPTe4XWwBTM2*BB051khzi0y2V^Mj#?rv~po6hUR*)|>ga5mivaN4HxdStdu z2k)G1#^(+xS8mgJ`J8Rj!Dm-aHk@oa*>JMyWWzOr+rdl0w}NR?v;myQ+AX)~E+<}Y z(|H+~i)E>{nazL#-0HeT@z;nQhz}o+#*f&O-OT zq27`G&D(~0`@4GwyEJc;_LF#Fy7Cd86>NRznfAF|&b2e8|G!Lr*aBTYCaaD1JtO9$ zwmX%T?n&A{WBu9&zZJH5C&%i+5y@dWE)9tBC8x9s%;1C z2_D={5_L zKzI`n|J9Ed0Lkj3z%PMgfP&!u;^8HsW`8>1roB zk9$^oO$StarEf`Bldh*wN!O#^qV_F#g${N_tSe}5)Voy9_6o&!0}Ar}tK34c+IBJc z0xvg=!`kj|`6W8z5f3?-*isn=kpioJ_J4l{*rE<1r zKS2CBKtXz)>bL=nPUrNxcCdW&w}Ll-(Yx@VN5$=6`Kj@HJ3sr*5WgS%Ve%gWZv``j zosRYiFnlc*!FPi5(QuT4Oj;(aAWl@`RcRo^C>I? zX7aoUSPRIPyc-w=o&>%F90ZO6jCs6<_I8c-_E1*maE&nUaq>Sz{3kqX2HJkeSjT1T za}~CR8UHx1XUNx;r=B99I@B&qo~Lug**2ZhW3-Ixo`yhI+<(0MmHV$rnV(N|6^^_JXOcC z=Be>R*z}Pnm@5h&^T_=_AD(C)Ii74PjNINex}}30z4MnO9-xfqjb=LVL;A4hZ)r_e zzT0CwD$zz!ZT;)p8_TS!F}{c)+gGEt{{Um4{Y3NekHfR(3F6J|$2Wq#jL5~ZMN?3F zrUK>NzS;wpJVB{Jd@hah+|DpNUUm8To{QJA_5khK3cR<7J|%x(@ggwkMeQVe!B>K{ zPb~#MLVR_IYkiLpm)~Rt{(~8KYXl1Ni743nU+3A+{an0mwCE%&6lhm_DX(ogQcJ*_@zS@A6IfKM7V>gJdOla%aFDj0mJcVHzEJpfX@y1$7Cx1 z>3}u&6*ssn(CrWPt`B+lF=nFq0sn*_3Gw?v{O19GG2pL+^4|^h%?b4X5$gMSNM9e) zFAn8?9LmWcBPm)Ru=kxt(LaQ8_l5Mo4fS0a>gfvkzX|neEvg>7gL`!-_r;LDD$u{43=7;RpS&1}zR9+V#5u6UnlO6h4I)k|K-UMWOD=2P3 z&%Xxtg@kmT&PuE;={&7zYfCy$XC5mn)Ty(H(F%DwTj;BhC!NP^sU&;#Zs{^>L%DRG z^bFI@(|NMamS zMtjK7`@;aE^=W~2mFxyzZxbEJCmg*-@6!W43YpRC4n2N>_&~(yeR`lral1U!uY2nG zj7tYr&gX}6F#M`ePM`10$CrYSKc%r>+-hvw9xL_ z_{ZZp-N#>NU3D4j)2D~|(pH);x~Eu|u|9ozp#NZLed^v%-5BfB=ZA7#I-B%zL-%9q zbOGe}r5W?q(}c1Ql*;OEh%0;ivW&}mnozd8w05+navAF^7X@18wylF#GiZHUpiRg% zoo(eZ`0UdIJ#x*~rOtqJ8GQEXfgX8ga!}_fc&(57FptR#e^% z@`L&@kqoJi${l7_zt0Qx7fSt*eo-Hl97;y-(*ym3RGbLf%WC_-X9&|K4&qC-_kYQF z{RYeu>Ru2%)pkMjxtaK=qeHyx056wLWIj|LnVee+K9j;2NKl^6W264k=IRHT~buCF70wa;EG5>VrP}V|EdbaZsK<-(z-BI!~X&kxx@0ou|*yRLa{; z-f~~8tXv(t_8h&G6>ID4OVG|_t}9rYa31Yhbam7q-?RP{IzfW};`wCG!^ZCqPst~J zD{;@H{(ezk>erbjw|mEn4E1nw-m9&%ql^g!Q0_rsNbBjth6I?pgul*Z) z@K3e&Y%W)5{>lD)+W5P0vTqnC|4+916LM*C*WlRvo7{Jg!P&`uaW>CO>mLa_g}?u# zb5(z?1#)-C)e`PZxqIE5b3Qgm{8r+Rf;+%t-Ro{)Q>a6R^+Bs3jX>vS3Y#gby0=hg z512Dkcdz>+;7a$p^*vw;xI3Z)RHl2~-vS>6e;+JA`3vB7@KJEqy>3^*8T7A}wmt>e z_y7MZz7vJ z3xP`jhS1GN>AspPIt4!um;-2cyck#n==A(@KsN&#fyIFK%PW8;;7Z^sU@0JeTn$LS zmHxXD(3$7C0PdjpH;ZxCy6-2D{iXTFeZ9=zfI89n8pT)xiBJ|{ho_UNq_QII#4_^Z z3Yq#YzZj>KKUAncCMxB($7$7k7_04iPwo6~{O5nHsaXkKx|+jOt81EaKyp<6KkonO zVrtv`=#3`HJoEpx^Sn|*AcTqg|IT;*zc(mv{=Z}2{hoqxo=i*r-@zkdZF(;lnums#mh6ewSnKjb$?vCdKT423JFuDOG;AYnCJwW04AILd9F3IG z=R@S{60Pipv4Rv_jjm|70D9#H;5J|*unCY|5^T~kKb>ZZ{B-isCH;Bw)yb!KDIohb z>HEW$iG71t@Z1C>eRlHoNe@>4lQ|n8O12qoR QI8ft2jRQ3fjEe*R4>&pkNdN!< literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/TestDocumentLayer/obj/Debug/TestDocumentLayer.projdata b/SAF_VS2003/SAF/Test.SAF.Application.DocumentLayer/TestDocumentLayer/obj/Debug/TestDocumentLayer.projdata new file mode 100644 index 0000000000000000000000000000000000000000..80d1bc77b64c4dacbc5741004bc3d2251085c560 GIT binary patch literal 5896 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 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Application.Workflow/AssemblyInfo.cs b/SAF_VS2003/SAF/Test.SAF.Application.Workflow/AssemblyInfo.cs new file mode 100644 index 0000000..9f89a32 --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.Application.Workflow/AssemblyInfo.cs @@ -0,0 +1,58 @@ +using System.Reflection; +using System.Runtime.CompilerServices; + +// +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +// +[assembly: AssemblyTitle("")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("")] +[assembly: AssemblyCopyright("")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: + +[assembly: AssemblyVersion("1.0.*")] + +// +// In order to sign your assembly you must specify a key to use. Refer to the +// Microsoft .NET Framework documentation for more information on assembly signing. +// +// Use the attributes below to control which key is used for signing. +// +// Notes: +// (*) If no key is specified, the assembly is not signed. +// (*) KeyName refers to a key that has been installed in the Crypto Service +// Provider (CSP) on your machine. KeyFile refers to a file which contains +// a key. +// (*) If the KeyFile and the KeyName values are both specified, the +// following processing occurs: +// (1) If the KeyName can be found in the CSP, that key is used. +// (2) If the KeyName does not exist and the KeyFile does exist, the key +// in the KeyFile is installed into the CSP and used. +// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. +// When specifying the KeyFile, the location of the KeyFile should be +// relative to the project output directory which is +// %Project Directory%\obj\. For example, if your KeyFile is +// located in the project directory, you would specify the AssemblyKeyFile +// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] +// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework +// documentation for more information on this. +// +[assembly: AssemblyDelaySign(false)] +[assembly: AssemblyKeyFile("")] +[assembly: AssemblyKeyName("")] diff --git a/SAF_VS2003/SAF/Test.SAF.Application.Workflow/Class1.cs b/SAF_VS2003/SAF/Test.SAF.Application.Workflow/Class1.cs new file mode 100644 index 0000000..3a2f49b --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.Application.Workflow/Class1.cs @@ -0,0 +1,63 @@ +using System; +using SAF.Application.Configuration; +using SAF.Application.DocumentLayer; +using System.Configuration; +using System.IO; +using System.Security.Principal; + +namespace Test.xSAF.Application.Workflow +{ + /// + /// Summary description for Class1. + /// + class Class1 + { + /// + /// Demo that shows how ProcessingUnits and Visitor object + /// are used together to provide the process flow and coordination logic + /// of certain tasks + /// + [STAThread] + static void Main(string[] args) + { + //read the customer order + StreamReader sr = null; + string content=null; + try + { + sr = new StreamReader("..\\..\\OrderSample.xml"); + content = sr.ReadToEnd(); + } + finally + { + sr.Close(); + } + + GenericIdentity gi = new GenericIdentity("CustomerA"); + GenericPrincipal gp = new GenericPrincipal(gi,null); + //create the document object + IDocument doc = new Document(gp,content,null); + + //load the configuration obect for the workflow + SAF.Application.Configuration.ConfigurationManager cm =null; + cm = (ConfigurationManager)ConfigurationSettings.GetConfig("MyApplication"); + + //get the inital documet layer + IDocumentLayer layer = (IDocumentLayer)cm.DocumentLayerConfig.GetDocumentLayerByName("PurchaseOrderWorkFlow"); + //start process the document by calling the ProcessDocument on the inital layer. + //For this perticular example, the last document layer is DocumentWorkFlowLayer object + //which will trigger the work flow defined in the GenericPurchaseOrderVisitor class + IDocument response = layer.ProcessDocument(doc); + //display potential response document + if (response != null) + { + Console.WriteLine(">>>>>>>>>>>>>Repsonse document from " + response.Sender.Identity.Name + " has arrived <<<<<<<<<<<<"); + Console.WriteLine("Response Document is: \n " + response.Content + "\n"); + } + + //change the cost of some product to greater than $100 and run this demo again + //to see how the workflow is changed. + + } + } +} diff --git a/SAF_VS2003/SAF/Test.SAF.Application.Workflow/ConfirmationSample.xml b/SAF_VS2003/SAF/Test.SAF.Application.Workflow/ConfirmationSample.xml new file mode 100644 index 0000000000000000000000000000000000000000..de20bd1de58a88f5de73fb853f655c8c9d7624b7 GIT binary patch literal 314 zcmaiwO$x#=5QV?B;2lB_V5`d#yRhKKML|y>S~1`sO$1MG`x4x^C?$)$c{B6nk^XCW z;3+7nc}ib!blf=-q@v?7eB|7cE`RfDGOn5lytJF^)NI&u;3U6I1kYlWno%)lCbq%S w=*_dXI#o_8(w9nA=r&@8l;^E1v9nd>l&95X?B|oL)hMfB_s6iJP5(&60Jfns4gdfE literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Application.Workflow/Confirmations.xsd b/SAF_VS2003/SAF/Test.SAF.Application.Workflow/Confirmations.xsd new file mode 100644 index 0000000000000000000000000000000000000000..a2bb508e2cc203cc9dbb56f171652ef5f13c0492 GIT binary patch literal 1324 zcmbtUO;3YB6r8h(|DoyKe%QoA(~qRRs!gm1uN0_lEKu1+(I2nQTOe$KT1`VJbl-b3 z^XBdH{WZcADFW=!!W(?VP}m|uh%wseqk|rwEk;7PT=y6a@ob_AG}gFc)(vx}nBWo@ z7!gll$lJw+bpagKXB;6{1$V1D?M>MUvb)k+EMfkN zUdhuVpJ%3N_q-sEMB-YHg&JG`U;AyUb?CPy&z6eh#P}8Wx4Al&$r(NF}W#;d@sLVU1qs(mLE~EBWWP%^o CbkINm literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Application.Workflow/Order.xsd b/SAF_VS2003/SAF/Test.SAF.Application.Workflow/Order.xsd new file mode 100644 index 0000000000000000000000000000000000000000..ebd6e45bee8df465fcce9226efa318ecce7868c1 GIT binary patch literal 2014 zcmcgt%T9wp6g_Jb|ABOGA2xB(^pVu9uc!;R6wo#nsAbUV$E)WKkfC&JX`_bln)^8C zo_hzrKKmG9g%EQ%ctwCE63h@I!T=3)&_tVehn5H)*L_+eJZWnRg-4vw>x@1l3~`Jj z^qDU~kEe$z<3hNM&oCmcO5Q0W6&Cbr@i@mAx40|$C&axb7hf|Hd=uZp#FC?oCea~z zddv_LF(ymJHQ^r;Z%o?kAlh#pjSu37NW#4lKC)au;nj z6?lUjO`cs|W6hx8)gi+NT;gI)p+>H@Lv0Gh1J)yYORp5yqny9s88s8WWu21Pa(t%G zLT6b~pLfKL$XzDG z*S_{Dt2GvE%KYorYm2Q{yDjoRbhy!z?^7v{ldw$-8^c3%vE^}zt;l4?uF1C|sLbRn z@1V*jP3E-tc4Tq#rIFp=`eC-psKs-!8+M^fm5Elz;We9e!$9WCBXgO=`JZu+-Q#ka z6_JF4)Vj$<_K9?{z7BmVmMM8?FHMH^dA09xqkVz9-~OoEv)`E*Q` + + + + + + + + + + + \ No newline at end of file diff --git a/SAF_VS2003/SAF/Test.SAF.Application.Workflow/Test.SAF.Application.Workflow.csproj b/SAF_VS2003/SAF/Test.SAF.Application.Workflow/Test.SAF.Application.Workflow.csproj new file mode 100644 index 0000000..e9845d3 --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.Application.Workflow/Test.SAF.Application.Workflow.csproj @@ -0,0 +1,142 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SAF_VS2003/SAF/Test.SAF.Application.Workflow/Test.SAF.Application.Workflow.csproj.user b/SAF_VS2003/SAF/Test.SAF.Application.Workflow/Test.SAF.Application.Workflow.csproj.user new file mode 100644 index 0000000..8b92102 --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.Application.Workflow/Test.SAF.Application.Workflow.csproj.user @@ -0,0 +1,48 @@ + + + + + + + + + + + + diff --git a/SAF_VS2003/SAF/Test.SAF.Application.Workflow/Test.SAF.Application.Workflow.sln b/SAF_VS2003/SAF/Test.SAF.Application.Workflow/Test.SAF.Application.Workflow.sln new file mode 100644 index 0000000..a40d34e --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.Application.Workflow/Test.SAF.Application.Workflow.sln @@ -0,0 +1,69 @@ +Microsoft Visual Studio Solution File, Format Version 8.00 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SAF.Application.Configuration", "..\SAF.Application.Configuration\SAF.Application.Configuration.csproj", "{AE5F42AC-D432-4B6D-8259-371E4C7FC556}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SAF.Application.Workflow", "..\SAF.Application.Workflow\SAF.Application.Workflow.csproj", "{6B86701F-B2C1-4694-81DE-542312E6FB64}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SAF.Application.DocumentLayer", "..\SAF.Application.DocumentLayer\SAF.Application.DocumentLayer.csproj", "{22AC47FC-FBEF-4BA2-B9EE-D12F4C84B8C2}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestDocumentLayer", "..\Test.SAF.Application.DocumentLayer\TestDocumentLayer\TestDocumentLayer.csproj", "{695CA917-A8C5-4E1F-B381-4D5622310CD9}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SAF.Configuration", "..\SAF.Configuration\SAF.Configuration.csproj", "{CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestWorkFlow", "TestWorkFlow\TestWorkFlow.csproj", "{8C38D3E2-3E3C-4E7E-91C3-AF504231FA38}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestConsole", "TestConsole\TestConsole.csproj", "{B33096D8-2ECA-46D2-944D-4A2D7DA0965C}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfiguration) = preSolution + Debug = Debug + Release = Release + EndGlobalSection + GlobalSection(ProjectConfiguration) = postSolution + {AE5F42AC-D432-4B6D-8259-371E4C7FC556}.Debug.ActiveCfg = Debug|.NET + {AE5F42AC-D432-4B6D-8259-371E4C7FC556}.Debug.Build.0 = Debug|.NET + {AE5F42AC-D432-4B6D-8259-371E4C7FC556}.Release.ActiveCfg = Release|.NET + {AE5F42AC-D432-4B6D-8259-371E4C7FC556}.Release.Build.0 = Release|.NET + {6B86701F-B2C1-4694-81DE-542312E6FB64}.Debug.ActiveCfg = Debug|.NET + {6B86701F-B2C1-4694-81DE-542312E6FB64}.Debug.Build.0 = Debug|.NET + {6B86701F-B2C1-4694-81DE-542312E6FB64}.Release.ActiveCfg = Release|.NET + {6B86701F-B2C1-4694-81DE-542312E6FB64}.Release.Build.0 = Release|.NET + {22AC47FC-FBEF-4BA2-B9EE-D12F4C84B8C2}.Debug.ActiveCfg = Debug|.NET + {22AC47FC-FBEF-4BA2-B9EE-D12F4C84B8C2}.Debug.Build.0 = Debug|.NET + {22AC47FC-FBEF-4BA2-B9EE-D12F4C84B8C2}.Release.ActiveCfg = Release|.NET + {22AC47FC-FBEF-4BA2-B9EE-D12F4C84B8C2}.Release.Build.0 = Release|.NET + {695CA917-A8C5-4E1F-B381-4D5622310CD9}.Debug.ActiveCfg = Debug|.NET + {695CA917-A8C5-4E1F-B381-4D5622310CD9}.Debug.Build.0 = Debug|.NET + {695CA917-A8C5-4E1F-B381-4D5622310CD9}.Release.ActiveCfg = Release|.NET + {695CA917-A8C5-4E1F-B381-4D5622310CD9}.Release.Build.0 = Release|.NET + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Debug.ActiveCfg = Debug|.NET + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Debug.Build.0 = Debug|.NET + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Release.ActiveCfg = Release|.NET + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Release.Build.0 = Release|.NET + {8C38D3E2-3E3C-4E7E-91C3-AF504231FA38}.Debug.ActiveCfg = Debug|.NET + {8C38D3E2-3E3C-4E7E-91C3-AF504231FA38}.Debug.Build.0 = Debug|.NET + {8C38D3E2-3E3C-4E7E-91C3-AF504231FA38}.Release.ActiveCfg = Release|.NET + {8C38D3E2-3E3C-4E7E-91C3-AF504231FA38}.Release.Build.0 = Release|.NET + {B33096D8-2ECA-46D2-944D-4A2D7DA0965C}.Debug.ActiveCfg = Debug|.NET + {B33096D8-2ECA-46D2-944D-4A2D7DA0965C}.Debug.Build.0 = Debug|.NET + {B33096D8-2ECA-46D2-944D-4A2D7DA0965C}.Release.ActiveCfg = Release|.NET + {B33096D8-2ECA-46D2-944D-4A2D7DA0965C}.Release.Build.0 = Release|.NET + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + EndGlobalSection + GlobalSection(ExtensibilityAddIns) = postSolution + EndGlobalSection +EndGlobal diff --git a/SAF_VS2003/SAF/Test.SAF.Application.Workflow/Test.SAF.Application.Workflow.sln.old b/SAF_VS2003/SAF/Test.SAF.Application.Workflow/Test.SAF.Application.Workflow.sln.old new file mode 100644 index 0000000..fcf75c1 --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.Application.Workflow/Test.SAF.Application.Workflow.sln.old @@ -0,0 +1,57 @@ +Microsoft Visual Studio Solution File, Format Version 7.00 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SAF.Application.Configuration", "..\SAF.Application.Configuration\SAF.Application.Configuration.csproj", "{AE5F42AC-D432-4B6D-8259-371E4C7FC556}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SAF.Application.Workflow", "..\SAF.Application.Workflow\SAF.Application.Workflow.csproj", "{6B86701F-B2C1-4694-81DE-542312E6FB64}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SAF.Application.DocumentLayer", "..\SAF.Application.DocumentLayer\SAF.Application.DocumentLayer.csproj", "{22AC47FC-FBEF-4BA2-B9EE-D12F4C84B8C2}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestDocumentLayer", "..\Test.SAF.Application.DocumentLayer\TestDocumentLayer\TestDocumentLayer.csproj", "{695CA917-A8C5-4E1F-B381-4D5622310CD9}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SAF.Configuration", "..\SAF.Configuration\SAF.Configuration.csproj", "{CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestWorkFlow", "TestWorkFlow\TestWorkFlow.csproj", "{8C38D3E2-3E3C-4E7E-91C3-AF504231FA38}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestConsole", "TestConsole\TestConsole.csproj", "{B33096D8-2ECA-46D2-944D-4A2D7DA0965C}" +EndProject +Global + GlobalSection(SolutionConfiguration) = preSolution + ConfigName.0 = Debug + ConfigName.1 = Release + EndGlobalSection + GlobalSection(ProjectDependencies) = postSolution + EndGlobalSection + GlobalSection(ProjectConfiguration) = postSolution + {AE5F42AC-D432-4B6D-8259-371E4C7FC556}.Debug.ActiveCfg = Debug|.NET + {AE5F42AC-D432-4B6D-8259-371E4C7FC556}.Debug.Build.0 = Debug|.NET + {AE5F42AC-D432-4B6D-8259-371E4C7FC556}.Release.ActiveCfg = Release|.NET + {AE5F42AC-D432-4B6D-8259-371E4C7FC556}.Release.Build.0 = Release|.NET + {6B86701F-B2C1-4694-81DE-542312E6FB64}.Debug.ActiveCfg = Debug|.NET + {6B86701F-B2C1-4694-81DE-542312E6FB64}.Debug.Build.0 = Debug|.NET + {6B86701F-B2C1-4694-81DE-542312E6FB64}.Release.ActiveCfg = Release|.NET + {6B86701F-B2C1-4694-81DE-542312E6FB64}.Release.Build.0 = Release|.NET + {22AC47FC-FBEF-4BA2-B9EE-D12F4C84B8C2}.Debug.ActiveCfg = Debug|.NET + {22AC47FC-FBEF-4BA2-B9EE-D12F4C84B8C2}.Debug.Build.0 = Debug|.NET + {22AC47FC-FBEF-4BA2-B9EE-D12F4C84B8C2}.Release.ActiveCfg = Release|.NET + {22AC47FC-FBEF-4BA2-B9EE-D12F4C84B8C2}.Release.Build.0 = Release|.NET + {695CA917-A8C5-4E1F-B381-4D5622310CD9}.Debug.ActiveCfg = Debug|.NET + {695CA917-A8C5-4E1F-B381-4D5622310CD9}.Debug.Build.0 = Debug|.NET + {695CA917-A8C5-4E1F-B381-4D5622310CD9}.Release.ActiveCfg = Release|.NET + {695CA917-A8C5-4E1F-B381-4D5622310CD9}.Release.Build.0 = Release|.NET + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Debug.ActiveCfg = Debug|.NET + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Debug.Build.0 = Debug|.NET + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Release.ActiveCfg = Release|.NET + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Release.Build.0 = Release|.NET + {8C38D3E2-3E3C-4E7E-91C3-AF504231FA38}.Debug.ActiveCfg = Debug|.NET + {8C38D3E2-3E3C-4E7E-91C3-AF504231FA38}.Debug.Build.0 = Debug|.NET + {8C38D3E2-3E3C-4E7E-91C3-AF504231FA38}.Release.ActiveCfg = Release|.NET + {8C38D3E2-3E3C-4E7E-91C3-AF504231FA38}.Release.Build.0 = Release|.NET + {B33096D8-2ECA-46D2-944D-4A2D7DA0965C}.Debug.ActiveCfg = Debug|.NET + {B33096D8-2ECA-46D2-944D-4A2D7DA0965C}.Debug.Build.0 = Debug|.NET + {B33096D8-2ECA-46D2-944D-4A2D7DA0965C}.Release.ActiveCfg = Release|.NET + {B33096D8-2ECA-46D2-944D-4A2D7DA0965C}.Release.Build.0 = Release|.NET + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + EndGlobalSection + GlobalSection(ExtensibilityAddIns) = postSolution + EndGlobalSection +EndGlobal diff --git a/SAF_VS2003/SAF/Test.SAF.Application.Workflow/Test.SAF.Application.Workflow.suo b/SAF_VS2003/SAF/Test.SAF.Application.Workflow/Test.SAF.Application.Workflow.suo new file mode 100644 index 0000000000000000000000000000000000000000..59bc64887c643108841b334ba07f3c1791feb7ed GIT binary patch literal 14336 zcmeI3TX0)P8OM*Elw8QYZBlweq-k+Wt=f*AOH^rahwqp&I z?%!=|PIz%I@16HXJfCa9JHc-XE?jxOUV}W_g9nlxN@vB#3e}e%OShE{LrEi$_NMrK z)EhU{7vLsAZsip6Iy*#H`rasg`Ox=@j`Xm15}Ko4)H_bEv)-JcUqA{&=Kex)JZf=r z2lQpXqODY`UTJx$zgAv8Trybzr9NPsd-;K{0@afbsI-4)=kf!p;~;+`e<8mh`@aF) z2yOy5gHMAH_zaLL+yeH1TfyhRXTc!29mIgzy_0J<2!p#o59kGbU@zzg17IK64-SBX z;BIgT+yg!j?gjUO`@vx_1R@{`z6gfF1K>e$9DD&B0V7}(90kX~Y48vj1789Y-~>1c zPJv0_#^VfmAAA{n1w0J&EY5WbBtQ~K=cd67I194i95@fsU>3MG=g2<-azJ)c0Q2A? zxBwmnvgXHt-nqo}@nT;0Pm%vyL=s+ol6*IgFJ=_Y3?>)inM5iX8lKN23RypCi=**Ed@7z#l^0(VnV+3c#|!>K<%98rpUM>cX+Kf< zMmDpM%87^a2UkNOb=QPHThY??k?f40h4%7^;M)V`JX&Y<72XIb`cS)7=4~I%%aF@8=n3V26f>YsCXrn+N%veOQPo(@@F%LL z7@GpzpEcaLTD7n8zgP3P6NrJ@HG?Pemz&nu`%3!qx+!=#kG!(TQR8PcHF&)&*9CpW zLZ9hC^VXsG-fhKtKB=7C#s<#VVJ@4r&L{T=8rYFXCDZ5%KN>6fAf-xwT-xX3(9AOi^*lij z^f%FtrQR6*C#io*4wKZJ=2zE4TPk~4T`ICt_Hrv_Wet76H&@}oI?!dsVv4(*Tz~&k z|BiQG{mGy7Oi4c1^{Mok;^$GkP1;CVo+oa+%RDVQ4OG->r>jFI#=VGVjS=Y%bJs^c zLR1_jzn8miu0uq?QE~^kA0Ptm=E;5{IA!U_4$x_ZYMlO9oUG zF}IiM7?vcDtkqx2yR__O!}z!%N^J}aDO3YmyJ_FM76aV^=X_kMf0sJeOr2#O7p$QDcAdoe`{8H4c#LYtjnaMOAac zmZRf;eD&Q;qu;spxz{>>c&*(Udi#~XpMGZduVO#G`wxld{_*Hd9g5iZ02`x+i+WPs zQr?i8bj!iI0lAxF6bC6*S7dHif0~ID@6=DyKk1!fsz&v%i@N_VuD?zYRf%dGKc51Q z9~*TAaaJuZcCW(zO7-9EGrIl9aaNuh1I<73N-J@o{YUlNrCNNJmfyjRTYtI!9%dY- zp)5HxlXe!ze+w^(heqDjI!SvTN)Ls!{!5xwQywWyv-;Dz$gTbo44) zmb#~5>QrCzsU7vO(yyO>OOes)lOmYbVu^NHvN&127gMw_fK3l_?ZuOIlapT>AlHvp zxcFi(r8d5Zng~wZE28M3Zj^VMi|E=(wKXZUlatj;A;PTD!^kUs9x_rGASanf3QXK5FHxz3t{_7#%oD|wgwKXZUlatj;K_eB=^*YV>55F62IR?&*j^IlXK;~rLSfCQV>p7&B865-;F5Z$bKY8BM2j-D zmM%Z7+&LOAoK4Mg@|lQNJlZy1$oZL>^7=On`HxM+)8|9S{kc@y&!jkXot?{OI3qPH zm!0nUv0UP8DqqOaayDZgZH=ZD{DfWzPHDGBa*O!_l*dwY*_>@+t&V8bt&OKgM?&K? zGiz=)NBwv@I}?f}{X#aU3fo4rQ+_%XI+dCV4QF$+hRlYtyN%`SZ9e5^lGzLSp!(Ve zCq{M7?rn*r{kf@ZJeLfO(QOs2dmxob<>ESm^(=3jPbH0f?8+jCoPzzLn7Pxrj~nYG z^OtIS38YCM0rSGsMHF}GPUqo5yT>flz@`l)QQe@aH|IYR`3pYAjKTF*YceW08&3oyw zosAWgYd2L_^`>$*rl>5*9ac-F<)!&*bye2rsQrk#AMU8RSj3uUU@5B^&7<^2?KQSL z=xlUl`>waXajn#=<7TlR)V2C{b6wjjUH-&zDDPhI)}H(2+=+kwYxtE%Hog4D*3_QB zZ!y68aK8J^0!y2L-7KnfgliYziV^mC-D;y;o;n%Oe5Tn!)-g(6vqYDnr*G3VQ=Y+J zg?REc$b21q13V4B3BCos4W0qoEB`qC?~Xt)o7?a2^!HsPa2rjip7{Q! z>GO{#XiDF}v@4ZLr(JC})6PelemjmF+#1DAFbYDnDO>v!z}i81uoQ2tjtvXu*rdvG zz<=qAP6zcSs75BS%ik|uBq^zETJ@GKj{_2j4$w zo9}xCh!8{T3=X##Skq>ikMjsvB|y%crWBM2iW(4pI}c%z6%lW!=~4v77#3{z!dmB1 z__&l)-{KUYR+|8|;wB^R|9ET$J@(@=#rd^=)qs85?vAy(PSF5CyNkus435LVkZ$rj zNw|JG-P7^hF<(;#o*Vk}5R#e|^13tBbQkeF?djULtvqyxd3<{9 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestConsole/AssemblyInfo.cs b/SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestConsole/AssemblyInfo.cs new file mode 100644 index 0000000..9f89a32 --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestConsole/AssemblyInfo.cs @@ -0,0 +1,58 @@ +using System.Reflection; +using System.Runtime.CompilerServices; + +// +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +// +[assembly: AssemblyTitle("")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("")] +[assembly: AssemblyCopyright("")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: + +[assembly: AssemblyVersion("1.0.*")] + +// +// In order to sign your assembly you must specify a key to use. Refer to the +// Microsoft .NET Framework documentation for more information on assembly signing. +// +// Use the attributes below to control which key is used for signing. +// +// Notes: +// (*) If no key is specified, the assembly is not signed. +// (*) KeyName refers to a key that has been installed in the Crypto Service +// Provider (CSP) on your machine. KeyFile refers to a file which contains +// a key. +// (*) If the KeyFile and the KeyName values are both specified, the +// following processing occurs: +// (1) If the KeyName can be found in the CSP, that key is used. +// (2) If the KeyName does not exist and the KeyFile does exist, the key +// in the KeyFile is installed into the CSP and used. +// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. +// When specifying the KeyFile, the location of the KeyFile should be +// relative to the project output directory which is +// %Project Directory%\obj\. For example, if your KeyFile is +// located in the project directory, you would specify the AssemblyKeyFile +// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] +// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework +// documentation for more information on this. +// +[assembly: AssemblyDelaySign(false)] +[assembly: AssemblyKeyFile("")] +[assembly: AssemblyKeyName("")] diff --git a/SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestConsole/Class1.cs b/SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestConsole/Class1.cs new file mode 100644 index 0000000..83c6a5f --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestConsole/Class1.cs @@ -0,0 +1,63 @@ +using System; +using SAF.Application.Configuration; +using SAF.Application.DocumentLayer; +using System.Configuration; +using System.IO; +using System.Security.Principal; + +namespace TestConsole +{ + /// + /// Summary description for Class1. + /// + class Class1 + { + /// + /// Demo that shows how Components and Visitor object + /// are used together to provide the process flow and coordination logic + /// of certain tasks + /// + [STAThread] + static void Main(string[] args) + { + //read the customer order + StreamReader sr = null; + string content=null; + try + { + sr = new StreamReader("..\\..\\OrderSample.xml"); + content = sr.ReadToEnd(); + } + finally + { + sr.Close(); + } + + GenericIdentity gi = new GenericIdentity("CustomerA"); + GenericPrincipal gp = new GenericPrincipal(gi,null); + //create the document object + IDocument doc = new Document(gp,content,null); + + //load the configuration obect for the workflow + SAF.Application.Configuration.ConfigurationManager cm =null; + cm = (ConfigurationManager)ConfigurationSettings.GetConfig("MyApplication"); + + //get the inital documet layer + IDocumentLayer layer = (IDocumentLayer)cm.DocumentLayerConfig.GetDocumentLayerByName("PurchaseOrderWorkFlow"); + //start process the document by calling the ProcessDocument on the inital layer. + //For this perticular example, the last document layer is DocumentWorkFlowLayer object + //which will trigger the work flow defined in the GenericPurchaseOrderVisitor class + IDocument response = layer.ProcessDocument(doc); + //display potential response document + if (response != null) + { + Console.WriteLine(">>>>>>>>>>>>>Repsonse document from " + response.Sender.Identity.Name + " has arrived <<<<<<<<<<<<"); + Console.WriteLine("Response Document is: \n " + response.Content + "\n"); + } + + //change the cost of some product to greater than $100 and run this demo again + //to see how the workflow is changed. + + } + } +} diff --git a/SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestConsole/ConfirmationSample.xml b/SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestConsole/ConfirmationSample.xml new file mode 100644 index 0000000000000000000000000000000000000000..de20bd1de58a88f5de73fb853f655c8c9d7624b7 GIT binary patch literal 314 zcmaiwO$x#=5QV?B;2lB_V5`d#yRhKKML|y>S~1`sO$1MG`x4x^C?$)$c{B6nk^XCW z;3+7nc}ib!blf=-q@v?7eB|7cE`RfDGOn5lytJF^)NI&u;3U6I1kYlWno%)lCbq%S w=*_dXI#o_8(w9nA=r&@8l;^E1v9nd>l&95X?B|oL)hMfB_s6iJP5(&60Jfns4gdfE literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestConsole/Confirmations.xsd b/SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestConsole/Confirmations.xsd new file mode 100644 index 0000000000000000000000000000000000000000..a2bb508e2cc203cc9dbb56f171652ef5f13c0492 GIT binary patch literal 1324 zcmbtUO;3YB6r8h(|DoyKe%QoA(~qRRs!gm1uN0_lEKu1+(I2nQTOe$KT1`VJbl-b3 z^XBdH{WZcADFW=!!W(?VP}m|uh%wseqk|rwEk;7PT=y6a@ob_AG}gFc)(vx}nBWo@ z7!gll$lJw+bpagKXB;6{1$V1D?M>MUvb)k+EMfkN zUdhuVpJ%3N_q-sEMB-YHg&JG`U;AyUb?CPy&z6eh#P}8Wx4Al&$r(NF}W#;d@sLVU1qs(mLE~EBWWP%^o CbkINm literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestConsole/Order.xsd b/SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestConsole/Order.xsd new file mode 100644 index 0000000000000000000000000000000000000000..ebd6e45bee8df465fcce9226efa318ecce7868c1 GIT binary patch literal 2014 zcmcgt%T9wp6g_Jb|ABOGA2xB(^pVu9uc!;R6wo#nsAbUV$E)WKkfC&JX`_bln)^8C zo_hzrKKmG9g%EQ%ctwCE63h@I!T=3)&_tVehn5H)*L_+eJZWnRg-4vw>x@1l3~`Jj z^qDU~kEe$z<3hNM&oCmcO5Q0W6&Cbr@i@mAx40|$C&axb7hf|Hd=uZp#FC?oCea~z zddv_LF(ymJHQ^r;Z%o?kAlh#pjSu37NW#4lKC)au;nj z6?lUjO`cs|W6hx8)gi+NT;gI)p+>H@Lv0Gh1J)yYORp5yqny9s88s8WWu21Pa(t%G zLT6b~pLfKL$XzDG z*S_{Dt2GvE%KYorYm2Q{yDjoRbhy!z?^7v{ldw$-8^c3%vE^}zt;l4?uF1C|sLbRn z@1V*jP3E-tc4Tq#rIFp=`eC-psKs-!8+M^fm5Elz;We9e!$9WCBXgO=`JZu+-Q#ka z6_JF4)Vj$<_K9?{z7BmVmMM8?FHMH^dA09xqkVz9-~OoEv)`E*Q` + + + + + + + + + + + \ No newline at end of file diff --git a/SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestConsole/TestConsole.csproj b/SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestConsole/TestConsole.csproj new file mode 100644 index 0000000..e1c66e0 --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestConsole/TestConsole.csproj @@ -0,0 +1,149 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestConsole/TestConsole.csproj.user b/SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestConsole/TestConsole.csproj.user new file mode 100644 index 0000000..686cccb --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestConsole/TestConsole.csproj.user @@ -0,0 +1,48 @@ + + + + + + + + + + + + diff --git a/SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestConsole/app.config b/SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestConsole/app.config new file mode 100644 index 0000000..ca8a999 --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestConsole/app.config @@ -0,0 +1,30 @@ + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestConsole/bin/Debug/SAF.Application.Configuration.dll b/SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestConsole/bin/Debug/SAF.Application.Configuration.dll new file mode 100644 index 0000000000000000000000000000000000000000..57d5a6da3b0fbf4120e468db94c58b3fdac4357a GIT binary patch literal 16384 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 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestConsole/bin/Debug/SAF.Application.DocumentLayer.dll b/SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestConsole/bin/Debug/SAF.Application.DocumentLayer.dll new file mode 100644 index 0000000000000000000000000000000000000000..28147183ea2ae8dc98ddf1f382c05834f27d0559 GIT binary patch literal 16384 zcmeHNU5p!76+U;y_O3Uvvvx`wL@K=bflU(`ZxRKPM(u9aO|#9AT76 zLzmTo>qFD0EHBq|otkUZa}}e}aQs}^%(<;b&T8a}lcikUshaszYG6Ycdg>vf14^g$ zKmYVtr?(rF9$KLiM1#=e0`1dVLVi@_jObzKyt#C0nuEaYP%tj2A&A_myJqnzAntzV zMu{#l5DUu*qLtA7c8F;0Lfdk3j;O!K-Vb?SkDT|-Cw$1C;^44Jj$z)Aq~wTB!LUybS5Fy5_IcN|9XN70I)RJ*3b=a8DAArCF=8VGA_O7?A_O7?A_O7?A_O7? zA_O7?A_V@A5IBMJFBd+WYPkG$L_bOrDOUamWpzQLbl6TC1~;JT!+k`F`-oN-bee(< zu`_{9cfmKERd5?fY}u7?aB3ZJQ>@E?bFv`At3g)Wa{-mR-gS|1r} z=U|B4x4NKc1!BiJ_EW4H*vy@BKAm&8rgwZbIm;t0tySm)4tOpBdElb9A46ZaS70SJ)?dn}m;8@f3oZ}@VUC4Je@^#wNY zpnoZlP7{28+@R$qZ^(Ei68a0nSE@ML1 zpkDuIiGBs1KXt5s_|b_X>Kl-M&+;DIL03|E<$Uy>iwbi>^mnz57dmu=8RhjN-;S8a zGL(COd0tDrj?ulWAMS(OFrHWlVfG2Ks0`^hbd3`9S9%9@Oy%+I>TUG~=)W|E`C=|(7VlsNq*kQ7J3T`1*hiqvMpof%3iRG~+@ zTkYuH%~w$Lm0DneR2#4=}ALH|=C-2?!eDMhD3iF-)VCqs#QNYj@> ziF-)XrBLD?R?&|`iF@D`qbP^DeoC{rV~%6|3ZvJsPIQcw*T7|YG6(dGdIXv$)FkMfDuFK41nm_f zaFhgMD6Ez^_#|qDIcK^Ol7?|GO`%qpQ>Gb68W6^k!}wN#&kDT@7KJsLq1aq-huutU z!VGZUt)if}Wd6s)BnT@LHN?#$%+Ht4hWcG2(+X}drb_RxvA!0H95RKmWE+rx$3A2Cmc-P4%o znf0>W-fy-K8Fh2a$6Kh}^37huUdvv>P&93$U9xJ8#cgIx*TWbV8^&9<-*T4-HtiZ! zvu?PjmuTZO+pbkR?m^3sxvX$m(!-`N^%&OMS%a7QxN91|InnTZqfwFE z$iw@?z^32;Xq!xOiIP6JCU~OrYc9U~^?!VM&$o=iW5=HT=1-{q`%li!ym$MJ7h*Ze z_Q!KdW&0C3l^x6u#)hHM6QMTA4k>X+={ZWr;0i+7jOa4#ozjP40Fyzpl$J=N%Jk=S zl})9y8E&D)bDGjL1W;&}O-h6bW)G(EM9dye_mQ?Xd-&e91AVbIuHGNnD3x zeMpeWAf!QNQhFZ}0h5UGa}ouLwT zc{B779RW8%lXM931n6GyT;7WP@t?sSOVK9%Cbob<{h(Nb^H*@@3KgjMoTm`gz;k#n zPGB~k!V}b>ljMlg2J9z^reQUp^|&tL;o8t+YfArZjMfl8n8jy{_;fNaA_Bi(IFIISd2+nn zvODeg&cGKNsh+WnU~gW)H9{Yz9r)$xBanA;S5&2S$di%rrCkGg*ge^laFW=I7GvnQ z35z9fxeii!;Os!t>W*>#?UzSv8$Y698Os60uSs-9rHMBqkETYa&~xvY=lz1&siIvS z?OZx72nN2k4(M&+Wdm nFj4CWfe3*Jfe3*Jfe3*Jfe3*Jfe3*Jfe3*Jfe3;BT?GCGG@>Rq literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestConsole/bin/Debug/SAF.Application.DocumentLayer.pdb b/SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestConsole/bin/Debug/SAF.Application.DocumentLayer.pdb new file mode 100644 index 0000000000000000000000000000000000000000..2d069f1436d8bc48c5653381deec05e39bf61761 GIT binary patch literal 19968 zcmeHOU2N0W6~9i5Yd)K#kfuPhP{K$lb)2v!DT9$T0RXkrpuN7V-&*0SI4-h1r7 z9Xr^a0ps|HU(WshIOpDT&%OS$cRUo2C1Rt=mj3qsC!T288`#y-?eqJWFIhbhP@o#6 zTwogkKLemv!>WHPKmy*kYt-zmDlJqA_`RPm)TvkJ4GFxkxWm;$J630**{xeJ`zDRN zN);=Cn}?p?@xcR^>Q4mJ`RCrOIW@EM*PIitzrRVTo8H~; z=M%)e+DwBO(0ZU2@Bl5qI$#B`45$Yl0KC8wU@6c5JOr!+RsoH`!$1@82(TJh1FQv_ zfk%O_0E>Z2qf+U=(&VyG=9A0*b1ysXKjV}~HeV<*s^oc=YX5U>+)ZkOQd$79`?S%t z)ei!+`)*(nz;l4E4bOqw*?ro4+J4&oO0@Nu)*LF8{^vAYO}H;4P}To^p{6@F$WrP5 zZrXllU)laY{qz>Vc?Y2VmpcH@1lsmO&I7pz@NAL00MC_5q-%Ck!n5Z{`N>(!dlb)A zIb+FPHXlqK19(2K`Mclsx%X6*I%3*3%fsM8+Y!hv%eGjSdCszkR;k1i_+g^c@85DD z5ga9a!O6+Ucqo`0k41eWvCz?pa5NbSPKDzKGGe|^Lhm5wV1A2;XznV)Pa{GNQuEpL z3iAHO!XWO(FVlbj)&qgQU4*aCG3o(3>OFeY88MEU>zKs#MUoM6Fq{GH!$KlICd=P- zE(1LX)3$Q{FX95|MjH37z-f2OCCstW{)la&UCQ0n;PeUwi?5M*wJ_>+#eeW(|`gOQ4i{}&Go@0Zk)~#zdyvbacIuxNdm-q*YX7O|G|@++oqy%* z#j#6&m~pkHvkD5)_VV4GYlv^?q+I?V&({Cf|D#8d?JIKKvR&pmeMNc~*=6ZZbWSIU7|K20|RgU>ARQ*$L&~a+bB&R0znrX(`p!m{jPpQdZJU9_f zhU0MeMAqbD|9ZJtL3|$&!s79K9})JW4rkdvG`q*&i(JjWG!=C0o+g+F?zY`$6 z3~Ao<*#OS7xDC8kwJW#k23A4#+W{Z2E7d3KaenMm zY!7W0+R}vlY2N=kz!yRFZq(*{S&y<{Juf)PSr0Or=GeP*y@pi1L8MIrtS9>d%RMDO z$a9+Q^@H=-V-7KwyId~(FOQmp@)&wk07bj56m)Ve^|{5{z7dvKk_Gbs>` zj)dddZc(m$3*$PHGUYHYxtCyE1=}u>!F>AHGT^<$A%l;R_%7BA*FM(>%anr*QTQ^t{mnj`dwCpenk$iaWjIP z`y1c4dH#sBlzy}1a1Js!fqK-jlq&~0h>peoILX5nBzB!)oI{>JgQs-dH!?C#`w@%` z1d~Cn=hrc}H&B=Lq-;6NPxOqlx!`>)vd{-7=Ht{e&Q8y)$b$Pghb-QL9Dam@o4S^= z|Dh5TtJ-X(kyTtxC!ts%QJ`enV^j#xSt8GXM%bsW-ZuuiF~ir zt18FNv4}s#@eBY==a>dC8|L^9+3+m*DDWw85HRPeOaI>+M0qDs`xpSx zH(3ha4bFvxd;N41_*QWK2L5$$p3U39>7&(Z|LH;H#_8vV=O+G|A7waZj#u^=-Gx?w zgt=(nX(#w1^$_Z&eJ9S3^}M=drtgG#Pg94xbJU|O^7RK9>HaWJ^tVzu`=i|Q^#^(C z{`TjnXZC;Y`9b!&zmTrCMmhVNou@zON%wcyQSUR9r!4r+Na_Lp18}{r1$uxXAOai* zP6B5D`Wx4QItacE*h2;6Ar#X-YM$&=axZ352=RBk)r;G2oJZjU==T&lU>|?7obRfP z-vG#;w47mL0)NPVVB?Ey{FIHuKIwcuCa_$ejqkPbpW5>8S^gKB|G3S6&&K~{^B=YR zdCR|R^M7VJ*lp#5rst)M{EUdHmLnT!L3vuus>ck%au4j9wbYJ*Ov4_%`l{Hwp&w`ZnOn!?**aTzw=!d+Z)E!E8)>jN*HEFgi4yQ(2b^vp7IUfF`ZIf=xcR9*qJ}$=(C8_c{-Im9p*KFJ8I}=_S<~%}4 zJ(F+i!63^VIJcS{^A%nCVcYuR^C6Y~S9gV*6IlbPeF^kp4dPDbjR-uVBmX`xX(DsB#WabV{H1gBU-ymS zd#3;1?Zx(8+4`rBve(88((|_9gV5>D1Q7+sP;rW)IJst;=%k- zBo;bi5=O@(;Y52;AM#~>?WUXk60Jn|nJ;zbXkg?{e2!Q8_ESUWI|^Sp5QiHYwNlzimiAhfZF{ z05+o>&xR3fNm;=6f)8R0{4J96ryN>Hp*V>YH*1Ig^}WIJYdXFD_7 zc1zI+7Ak`HpwJhgeGq(UDOj)wicbX}T10&Dt-jR12cb{J2kUpv>@=HhTCns%@ZRNq zbIv{Io_o$WI}`5R960 zu?d}MA>F{rDu(v|r-=G_Tbs~WNBg%|wiSmxzbfP)K^SwLFG z8bkk8$6hl@q(Oez7VYIZUJc#R(Xk($%x1FJ4*&6P=V!tA2Wvmw_ghzYZwB_v?wM?Q zcsA=+y}UJq0|HT}vwb~1{VZ}f(v^y1=gq)&%f=zsTbOs;<1=pVt(lCKs}}F;VpIw_ zEJ1_WR|d6uRlG+&)@$?{1O0t{Y{W6a9B>K=Z+@HTGOq8joDDp?T=dyvCph6P_2zxA zjd0HUp--?r=(w@~WN@bKd;FZX8Z!N*^)sQ&V>@~reHA(mB&ZF2EjrtHoR0ulhCA9C zk$KdkDQKOVrmdkq!BN3^!FL4D3VtDYUGNt{it(&Xf_nt#V_8{%SK{?FI*;q~#0*5* zXkCj=F0Qtn5*yDTy4rRIS%vdi`xtVVGi&EzThcD#B!X+>cD3zW>R8f}KhP7xgGMJY zVL2|wI%u2LLmLFUfG^Nik$VMq38n={1YZ?=L(mko1&;!ElL4kvz)r!Z1p5VF6dV#9 z70e30DVP^rpkdU+75_v}1Ai9$ot}}=xYQqq9H%7Y1Tcoa3UUiDu^8Uhn=M=GRD@g; zEsabeYUp*QQ$*a6+o3?T=YU(NI@U{czX!l5I1Y^rxuuF*w#vbM{b*#`_U*v+nmjUY zzFNZ6F|%fQG!m&)w1U}5>uA;T1M(Z>aNNgwzEwBW6}F7yP-`h0p0|7?ozGj9fTF;Y zR(7Oax#Evzudt<*fbcqC{xO?bGe z`4tRIoLR0l&lqyc^LDZ7$;+?VoU#18XIGe?X5*9{H1beqG-I2^vg-$S-Y0o~7R_9v z+cDFrT67HG!&|3!w4J!Haq!}WPj1~l^I??|I;~G8bxm8JWU*Dm5Z5KPz{b$p`sK-) z=?w!n-cP`@ogtRgV_Gbhl-EZKUO3@<@KHZH8JYLZc+e07h2dZCC(wJhMWR;*%&Xb z5b2co^x$Xo@H0R;`AK~vc6k~NAzld|3$w9DLSP-eyTMkG^=qis6hB^@eYS~Dlz9db ze9B86m1TLd?;e~MXm@j)hOYlm0H!x+;Aynwm0(f;G9fxNDk|VLVNDX6%Ta>8GMg^xm%w~~}ppM2` zm;A!JQoy_t=5cg6UJ+gjlJCKK48ALzZ^RR8%r@b!J$&Bb{h7cTE~=@b;-G<%Fz1wT zzTD?t<{!j+M&_qcnJ;zbP(=+D{+k#=vI50`Vn8vV7*Gr-1{4E|0mXn~Kr!$r8PLQ3 q8UKF!qYSEIDFze+iUGxdVn8vV7*Gr-1{4E|0mXn~Kr!%NV&EV6u^-p~ literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestConsole/bin/Debug/SAF.Application.Workflow.pdb b/SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestConsole/bin/Debug/SAF.Application.Workflow.pdb new file mode 100644 index 0000000000000000000000000000000000000000..9a69e14d72109e568129a04390accaba4bd81289 GIT binary patch literal 11776 zcmeHN-Afcv6u)C1u4`7CWwgC)Wnr$(&h}uN1R{Q~+E-r36va=u*gcj68 zFFy2ABq-5y?|~pBz6Fv0K@X7xS#Q4Nbbd2)bqFWcT69+Lf#2MjyLaZEIp^GS&pESw z88xrzTDlNwkFI7X-@R1ppk4iRbyhY2uS#3Pji zL0gvq^cJj&{N#7uwPU>d)G z6Q}>jHKzKrEy48S5j!ja=oB{4L45SHnV63~_QB7Bu+BKl4*PJ*Y`@Q=x%5t6_Z@31 zYb$UcrVFwC2*$AdXgaHnC)%?~U60DDPF=2J%^SpFyCiV>vm#B)yPOHIh@K5Wi@rw z>PTm@DLtaLB=lq&kdtF$*^HVjWVD<-uGt%ay1oHmTR~_KchEur1qkT#6An?uzDT-6(UJyZzK zj~xI6l|y2JydVMC>M*I~Ew!ivVR3;kXa0u;$!*+e-+OueW9_5<%m3WQi~jPH0Q}Yhf$#s&Io<;M!UO@e8~6qu z=OCxSJxI`YApWCS1(i|)&^PM8sQZy_V}ACv9x;BF5F#Mp$qTEM_Bj z;Me#K+3+hmCJ3-4WPcwgf6&n)w**qQ5=eHnvm>TlZfnM9)S7WWh!+H`E9+Q6mB<=% zfV7^+V4TnVnBnBlFeH-`>uJU3vVW;tLy#7oHz&8wo$Pt?oY#M#|1zlmlwALf^xnmn zJ&Ly!URSZraYOgqN(|$i7wqH$apsKwz4ZMT`%EnXaW(%B0I#hf<`(|}AR+uG;eQrR r{XexGtTX@L&hP&X#1E1W@CCg?|IV6|&^rmFgmj{W&k~O+KMDK>D_wVe literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestConsole/bin/Debug/SAF.Configuration.dll b/SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestConsole/bin/Debug/SAF.Configuration.dll new file mode 100644 index 0000000000000000000000000000000000000000..a28ca48dbc12acaef518dd7286b6f83773be9762 GIT binary patch literal 24576 zcmeHPeUuc{mA_TpUER|&(>Nb6GcrhzfDAGWgQ9{#!+fC=`R?IEBtlJ3G1Ji9)l~PO zqm035$f~dlIjqJtezAIz9JARNF-lI{nBCQ*8;xrcPt+X6?7CU^XqIeL;u0hKySJ)( zx~CiC?#UlHXRDxYy?gI__ucoq_r0omU9e))0rC-%ALpr4M33Xj$5NpmPxe3^nf~1f z9jSP}<#A>C^DX_uiEK1unM0PIipKSH+RQ}j4E${aM>tEs6v4^M%vZZs0nkVW$j*k+B3iKiHmlyEuIpf+K_#?AGpp&tR zpC~&=6kfGkSt|}+eA|iw*IA0Q;8+StyJaLzRAgUi4^FPP8fU?=l&GtK^@<(>9s(W$ z9s(W$9s(W$9s(W$9s(W$9s>W55IDf^)j0UwRK@uW-g6H$5mm6T;8-2CUn>hlWs7fr zDQiH|C5=s5B_ZU=3BI;i=TWd{^POt@BQePi`8#--A)I; z{IlcrFYOOqad!HyrW0My@87SCJ$LUl*F9nW{?^4;y^z}ZZsaG=zT5lCuReTg@w(r= z{n*%D#@W`rGn4W3LvL*OQGa0moFnP6DG%MY_@>0wPcCoI{J{U6x(<~hj%R8sN@3ME zreGuBT%x)TKP`d|Y>j$73oVe0&$brR~Dcxw)aHM0g6YXzicElcY_DuY#XDReH| zfTGaGj1}scm{S~({q+Jg>@pq`?BD&zwto!$AlHGz>HV*-)Y=-I z5&WWP1eJ5oa~hU+%nrkZHaB3N`GY3L9-gg{1KSY9T+NI*NjKAA7r zQvyCLv@T*_c#@QJEv$)al|kDvXTFrNA8_saDGGn=JY=C2gZ+~HIc*-Iq3dTFcBP|U+XW+jloHu;#d~JmBTbrt3n!2SS?gNmnyJi(bNu~tTzxMz%r}L z*a$c5$4aJfz^4Qb*JzdXRa#K8qw4iYb%i+{PS^SC>jJL_LUjSS9$?!FoF>NnOV8##WYk4V9 z(#Ehk%2I6oNJ~=rz;VvNE%Dl%-gZH#+TF-`Qa|V-{ zAYpsH`RNhpk@PhID+Tkd*r^V;g{+%U4$qw$u#Of8Ul5^Y1p-iN)&;mY?g0KUW+ZzV zlo?r7U+uT9LF$LF6>0d?eJI&+hm4athPeU9YyoCL)S?1XwX^I0jm!+KMP>Rcb5Z zpjDqGcmKLTO<;<39K9T_2{dRRjn*lfYYKup)ADJen;HVw>~hm8z{zug3yH)Ww+M;3 zdObU11<}+VORF1szVE6upt!1m2O#=yu>sjfXUIDj8^VxQ?!oF$xp1KPEq zeL?%e^UpgEWugEjL8DlSXWT%v4_AKZnGwrbiS$sGYwW`W?Z?7AV_l5iz@r#gnsM2> zz8+kE4gNk1ZbnzqL|1ZPT~;$xX`gf5!Q`P7L-_McWbNo!R0X?A6KA{f^eNyNvLVqK) zTH`vcLOX?S5;`jMcA-ydf1_#i@7f&nr3LR%BGd+|(KW$2@Z>h3Uj~iPQPDmx+J+Eo zW1+5)M!C=?&_hCBg`5u_JyZU323>?-6$5$B5KcvV*6k6_4?LLrl5hc_#@siA(`XXi z4{J|@K}HgC=|fpu2tBKo9x0gWl&$!veQb z=n)^&qkg6p0k*Ra^q->`4&Bsv6qqaYj&OVF`$|31r=x{+d+Bwh3BTO#bGQ${1?WA8 z3#!vG{wODrVvBNzGp>jlN~z8gZAjeOXCUs4dS$!1=K-xub2MsBnAf3Ey;Tq~#7*>9?qf z_Bh-n{%f&*A91*={PlQJ_`ugjI#%yz9PYfp ze40T~zV$khW}p@NDb^^3jtN~EKdW+D5Lhl4U1bau7l~_UkQ(J=h^S(A6*)c8Ht$dvp2QP=D zC)g$0jVQ;1S1b3^?%;^hLZ1)bru={o1P>_B(&6CkkUWgFuSKlA=+LKvx6+IBa_~vz z7t|8!!aCCE3#to18`b}y&xPiz|3&wN7OMYE4?%lB{U~&a%ARzqit;a^ezl3-g1jB` z@p`o#xql<*R4Jb?^ix8+g^EluT-yAb#bpJ0kB(+T|ab20p-Fkc&&lUXqU_U-kcT&%0m+A4GX^j>e zF5)_e(EkcOtq&O%^_8j|hl`(0CRB`JD0pJITu%=sVWr4OS)tosw>6r{@s~rH;R!zW z?t)t@&0JzzS!`Aq*(^L>Gh&Q5qjsK}C}vo@68wl&@F?YuVPh&uI9KBFi*z8*d^-a~ zml?U$crJ=3GJ3LqG-E6?tGaL&zCn&tZggCe$eC%@AmHn=hP6^p8MYmBS7Okx ziahAibGqwAx0y`ZfMw}&Jv*G!2a*Qi3o2>WFC6DZKGN)FXEJGCV+^h}lSY<$jC8^+ z!-1m8s~tNSn2apWiNO|7QIZ4?fO^gt8l`waf;bhNbP;dkg$RlS7TjwmXASkG6S;(* zOk5`eFB)*n$mQ^yN!^x#-io7AE{{=hVk(rK9A(m)PLnHCFej)qVVoX$Fl4lg}Gr^u|#@DU)o7$GSW`$ z1x21chPBR;bXjd$xs@ZS0ZeK3aC|#W4MaY_};Ot!q1(J^+}QhK6&cDgnKEBM+kdfPxmuHJ=iLMWK#8um*xL!|= z7&PLpr|37owz8Ggx+V7o^p)oIwtHB&D29bPmp4Sbese;~wG(%yT{12^{!0k#ZTb47L_yN64_t@82QLEYcKHB zdu`m1n1~@K)ydIjdC})(hOn@>cZdFAteArgvR!iJ`Q;~npQ66;B4g7%Vlg=5!oK`s z!0IAKyid4mKwQ>d!E4AeM>1q)w)E~C!OET+r7jcq96e2dK5N)0r_+Yj&)>4{wmw3#+(PGHnK5Tuw<-pl(1>$ z)apcEIe2SAo1p8&Tf0|kaqDzL$C;W#ts(I&gBBQ1zAx8`o4_Jlw6n;Kt1Br)Q|4|R z&(k3X8%8Nbw2mzmBC-~JrW|k6sLe6v+~b)XLn)2j)QPj(&PI-M!j9VHa;|ys`IN#R1C|-xII=V=zHw%a<1ukvrAfnRkwcbWjA+frw#UUd zajjS_@rR$&%dfO6k%8PF)vcld+Ky5jcGgMnR9%QF(cf3rT($P0VBhz0-`@9J?9CGt zdhEK*>zfw7af?r@tqw#LrMB81RU(l4}RLv3WIV-*>HM0_2lp?{X zuerIowi;yxl^5cy!r6*5gtH!J8_qLuc5ti7Vz?=yMSbXmt*T5EAu767RCUjNytC-v zLv#om2bu~3er>FC0e{%RyTfaY=HgUz)&BhAww;j?xpd(((QBX>I)?yImf8G^|yKzu~d1VK}P zixD7SJIZ~I`GN`tsUk^&91%E^p#W}M;$GeqjyjADlbDcVEQpfF& z-^#P{p3eK5?mj81ioFi}F9J&5xAmxNp|-QnggOhbU)7O6@qa1cixEZ8u=f>s{~%f5 z!T1gj?;`SE!NfhYcIEO*?e6+_iUe88;5baWE zXJHqI(Xs3Hi+`&e8@$KE{<&B%Cp!X&jJ+3k`n|nzKW)tI{ft5EtneUB* zqB#-EMbf4d-t#_43eitu^igD9aTF%Dlfin#L%>78L%>78L%>78L%>78L%>78L*P#h xfu;8U8TYLV{?r`v{P7U*5bzN25bzN25bzN25bzN25bzN25bzN25cp#u@INZ6LPP)n literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestConsole/bin/Debug/SAF.Configuration.pdb b/SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestConsole/bin/Debug/SAF.Configuration.pdb new file mode 100644 index 0000000000000000000000000000000000000000..e6d0884eecbe1756eb9bf602876c4fc0ea2d4d3b GIT binary patch literal 56832 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�IAJ#RI{K?+-gsuM{IW%jt`hPEeCSs=hzpwAls{VJn|9jb% z`;L{*n*O)a{;zq&%5X>GSm^jB8}ySi2T3n8vTDfxM2+&;&^(DD!EEdEUL4M2Kn~8mcBkOFP<9+PFi1MPeDjEL?=H9;mQTVj< zp%*~aueqC;J_o&O07=3Y5nh~^ZbWox$cA(yW4)8%GbM1 zw9dD4BU4q^*0$+aCC7lt-v2i}u6Q(&`~Mbhs(DmS|1ZTOyIK#cO}S*-Ia~Cg3f%vHiTXRvgvIIhg5Rm+zw*jmhLZg= zAO9=4|Nke(AB}@$-2XTKQ_Z8Xc31d4)cJUnyZ^8LY-<_K<9-tO!Ew9jb#M~A4c-R{ zDrXK@2$q8;pfGN8f&Q+!fuQkEkh~Y34p9FV)FuV-Qc#+etchYL%d^%;I>f9pDQ}v~ z>REYYJao^>&(_V^ytx1+ad6v$e@Jf3_Rvdobl0Oc3B3?UzFfYqgEF2K)e?ZSbsVb=K*!%&J%5LVH+~xj^ophA2pe=2wq38 z`Y2R?j_-UUFRgfW?nv+U+`;d~&^w{<#o2QfN#BM@D=*zp@~LlYxU)Y!(A)Uk3&oGV zv5|fVx*z&2=snQCfU-7DKMNg%CU~36O!xLw?ZGYPc?B-2>Z_szCxQ~3G)iz%O6Q1X z@`Z{q`lU?yRL5SH*Em_N@bNmPO}hLZf@-hkFf_rf)dXjwjJJxz%dZ-pw{j*P$2SS1 zx_uaWCG-(!g4Uj3^{O~dV^<4wUR8!VaQcp?p+5p|f)9XXLks8!4})Xi1)z1ryI?*Q zs&{g10sFyGQ0aFADw(^eZOtQ}k~_yJ3t2)6`ZBx>eGQxdr+~^VfBz$(1^>bw0mD$? zTLFr%0$Eo2Rtx!1zLgir4?QbSDuvSp|WgHjrAmH8sGk zbzc4F!sNcEfiU*X2wS_5N5rW&J>3K2bacv}m(9K$2k>fk71UMMSQAsjIo>PYX5tr* zp9$%xevGHHv3nB8;LnW-%)Oj!()q&$*watbtDri6*a^J>dKXmk^FC+`^!K5y(5Ikn z(7%GVLscJyNuPr@SA9Rhmq8O~W)pn%CV{j|AlW?K7ifD{-`4FI8TIpL=$9`5({D!Y zyp)j_P)g^kc5{M8u}KsmqW1Ag*T4GyOqZ_Jf8n{1{L2q& z+Oy;_eLB;gQ-{3&QT*y$W3GSI167pqkM~Ubx3!wuA91>Rvc9S^s2?c2_5UM0%VZ+s znQCbNm0JSj_?EUb6m+^yS>VDo&kAQo5E`v#X%b7P{+3+%+!$PLD}i8#3jo z$?!ouqE9-5Ki6m37fa8=241Db1KI<9t|`)dZYJY>e7w}%6&Z>Xy-sE6UBNP%n+odV z!earyh6=j7UGViDC0@y-a>*!fdR96M!?V(&UY&is{!jWKS$EKBH%aT?)BWGSmrrc^ zy!3z7tz<$4eX8g--{i^6S`M~ueKc>g!~FIiz`8U5eq8JnE_pGUEh+%)%U$bZu-?g+BT%BcKY zL0){>`7wd-e_5ExX_G?6eo#^(=}egDhXN31OIR<^PD_rEOcWXnW(^lHqKWm5Uo zR>tIBy!_eor+j)R?XBCpO^fZlE3De{SUTDBtK4~l+MdlnR2H@2C%`cQH`To$ehKnh zfvk(yOqSd;U6a!KEcSoRcVv(s=|#|`(B)A2y}O@v1yp{pOZzp%6;XmaRtYpb@i~s} z9?Q%JIt$VPb^?9l;7RZr=-YQNyy23L9KQQ!{fas-*#@odZBJ^HIAtVj&0J2@TK_un zp?$jp2m1T`YkA$v-8J`qp2Q9iR^iO=Wc!iQpGX-p?~Ycd!oN5%q*q81q+Y{*`?0{68-L>&T1r1dg8tm4q4&v~e2lvt z7#bcGALNF8tgY$&5(iw{mh4oQh=&_;t4`l`jK|jYo>fGcc-vbHkEKg89&aJtTMiEF zvG?4c#zEgdQ5f?#S^g>yV|k8`EBVLO>Hc56{$J_-ubmZqH;?>c3`t7YXl=-MQQtqC z@&9&^UFPSLZaOCKV+Wph^^oeukD=xg8vI0a4v`TM-;f5i)v_mUm;Kqju|&>Ww6 zIBSvX8288aBz9x(Wo%7GPK%FPYskRkG|j+$-%)9xr*(TSoGEkrK+F}=`>;orq_yYa z^_5pbmx9fiwTtrPWlc>+R!MX%0W#>l)0%f&3QeGcu{Dpv`SCq}IAom*cex99V^%mn zuI3MSMF{8TMC-G{`8J(D+=>wHYM0(x7f$V~7U&%|GRpHQD&hkmy}%|C#$_`myER z#->e9c(}6wczO^|y9YmxS1@7+`SN@EUb=~?MW?`L~HzOM53dBQmT!v#?Fd9Tyd z`QL2)gXeAjJ!;Z&d(`TaiRk96Hm-LL$tZ7iJU0P-8$jfykV5_6+$Yo5tpD5G?ua@LW}PSQ z?`-n&1NiKm=>P78xZ6fqQ>OME#)rv(NAaL==65prk_;fpvUDVc^dA1JVq^3AeEUjP zev=>Ksqd>^ejFkX4+Gh&T!P#yksrAqoG=}R;)cggZYX|@sU|mk9p{%DgmH2M`5e<* zu8I=0P#cRk5SOoynoOOl?MWvpQ|G-r6QrDKVZTnpTtJROa<3)SVGI99;AKW+otbQ`Q-H!6HYiKy83v#mJS;9-6D-MMYc)U+3%glJ=OD*Rgs>pJnYxWp!@;8)c?XpRLNrZ1TkY#VXm!lkv;W zZ;!F6Z**wT%hi*3swIHJTbMIh-xJ}L_@M&Dc{Sbt%j^ICR${hp%EqxcKS#RvTJy*& zOL5Q0!rZ>Pf%%DyooUoFR!Qw~Tidg*DP}3x!-rfYTX!O;ItZjVEZmuHf6C_=4+_gx zE3b{+3a7P~%BG@APUfz=uyQg-a;GyuV}_ve35uhF@x8>!0OiYZJ+nqo9<)Y~z4CHp zcvfB{8)dKjv;&(D@aXInRt7$0bO-s@5!W(0Ey$V=D6HZ(8LqL&<^x(sC{J2PG(xqu z*Lr~ZPbWBanc#G8ZhXqS;xic+kB>6B_^yK9gukyqZ-%abCL*1Mx*v?`HZ)&R`4ykd z0pjtIXLruB8M+;R>!CZKI?I)a{xC|g%Nmcb9yjq&@mW7WerI$T@HR~u#s9SSS>k&u zdS|W7a&T&=tEHi9AR-4yvwmi-^7Z~){m|gi!l9KfDwCQMV;DhZUjO7I# zQ{aj5RMhyYZPQXtjj`3Gs|m;!!YPdT`#kZrneuI-eB$fxO^~lP z?^;0x$o#7(?(Z!4`nSec?NRc@!_1drY#_v^+U^e0UrrnfZ(+_9kLgEct#gaD$9(H7 zzFQi;l&muObC~C4+P&trzO33OUP4*bo>swoSd=+WiBsrPn(O-b;%htHv*yFO=M5z1 z&X2_*cdT6es-k#)EPgw&8SgJ9E2U$SAza4rocwmkH?q>bEJJlzkKb2;{F?ijs6)%A z#+Z4eCAsX^?S{KHLsJx0i%2>eVtd*v+`i`5ar|Q zV6VK~5T2DEjX5?C@ncVZy@bwBX*i_eIK70|XI_I;UYwbS?8aT`Dt(iE3ZpSyCO!|* zxUKnz<_~pH%^wy+Z-rhCO>he&!EVRQs0CcW^PH@7yo}7B4rO)ola)}VQx8=-4N#@C z8me@fpnkrRKb_2(($7I}gT4UW2K@>2YtUanzYaYCWe%10{JA9ZJkqRA?Q%EJ zS@q@6L2y0Lb1SHK_6cSrrbk*r7~h9#GJTKYI$f3Gqiv+MPj#AS#xM6p3E3|P%i>vW+|i8@*!i;#sSHvl~01D}-wZ^o1Ru z-(ic-(hKRV3He(P{4EIa|1$XdK?v6wXicC4A>3`j|E%!)sSwXoA^wKo{%;}N-NF6a z;rIUv`TUn)zd6KH6MnxD{Cy+j=gLstw?e$gEm!`(4B`GR{N8Nk4F2B;`HA%pd}f;# ze#*Uux`JT*U-uaML(*~)+Y=h}%}CBEe5QW}$2#*c&OPS9qYEFR%%q%okl&W<_*-Nr zQ|JEbPpo|DjAf~Z(3!{e=}(~lkIP!!IGel{V*Ys3GTy3y&1~%FgC&5m&aL}5KsD~} z2K_+e&BNd*coIAVo(C&Pycu+WEnp|u4|GQ+4YYUk1kk<1XTb~L6`=bwC&Al5>%jzV zXAW2hmV+kH0ycpipcfnf4}wR*>37|V2rvU?1Bwee%&#?s5gX_Qs zpf%QR&<}KmPiG^^hMSye%$K3NWsKZ(uXkCn$#v6x-9m1s^ z(fF5&SUB$c(pd^m_JwK1%^Ml_; z`meQV$-1OnaEs-`+lPEKWygJ9p19AmxXFi|wb1x=UXcqcR%Y+dr`3pzYYg&MEGeQ|~kK@N0(gi+*nH zP~+l^D0>6K;`eSLe)_hBAprlgmFpJ9yM-|HVdLix_%TEEQb2KR;k~~QJ|^p=k5rlb z+kD4luD1{VnU`el>quX>YGk-))!sgKRaW(0vy<)KT_f%b@ICqhynfz4;=TaSqkgXJ ziGMA3XV$N7O#@?JsjXtv)r&Rua-pouPo5X0KQ=o#h76=eMqu%M2U7=AC9|$M-UG85 zY7j%Tucw=@h`w37oafoJkrnix6+GKLD;|-bc3DJT7NIE)j{jL(}=2uro>)YE_ zcdqNA3p!Ig-OHn+BqsTL3@F{&%ZsJ!1bDmaE#Y=t+v@8Bxg2#uWhSl|ron33oO!tzg895}Ge~3ht?v9_`RV>}OKxmZ+2=7jby4J03 ztZ(b|3Sr_YUf#>1H%aV4{7I%N-J{puS8lo+x(9pvxy#gA-`w23rWrwuDW2Y!-CYo+ z_YzQgr~ba|a#|4)s_kpmG<6WVRC)`e1RF&yB=ml0x6zV&ij^-WseCiCTb64&+txO> zwspEhOQyRhI-S51={^Zm&f^;|5OHRFKP~>sqG)a7`gL7v*IQ#M&f_|#Pf=Ss1(fK~ z8;bRr_#8O9%&R-rHm>VvY;&3BPw{jwb^TOzyBjFoL;qN;ZZ%o#>q%uN*|ct5XZ^Z{ z=IH7luar92nfMusVCCYMy>E49>#4%2qBdn)yI*p94BSz`?bq0w{wVH6;j}+ydC_k( zde*+zmSBIvZ?!$#r`(77me5CL+`ne_gpueF-aMS%ctB2a)M?^f+{jt7a zm+RI-A`1$*>0VbMH{IPT_%rZ- z!L_9Gt$<%ZEBQ`z>{|pyCTN-*SN)_w1rd&$Q&pI;f^(%x<0~`=sz!Wau2E@Jg{Bb| z##elLP+_D6$NdW9%Qv1Yswn#CosZs8_Z0jeJz&%!y}3B{Jh(G!EuJ+&a1l;0KA+Yn z@b~eR4K+X9bm+zuX`OoLcRz0X@FyFO{nrN{pL_J5pI?S-UbU%j@Lu=gmQ{niT!o=|_PApSGh zTMBjJFEM&71Dd>cJv6j-B~<2D44;}&FM^&A-2;^>Lo;Fqm*`IkpxJ*fD<_?_S`3&> zM+aGj%!hX4u37gFS#{~e!pHnp*b8x2ns;G;0aP<)oE++${ zACrzWm@-<~EhRoqiAJ;dF%Oyo@l^;vKj-Ei%BOSg7sGbxH*XS~Fn3a2`Y!MWo~woB z#PuLG^C(SX3291iIFB^?;r`2{uQN8s1)k?oZE5_jAdJ>UHt9NBsp>#2UA1?igQa9KGdO$BwOWq6i0q#&a{lX&X60j7gx7LFO0GnMeQ7=+&RS!|`QV&!w;vEd^ zSNWc+=AoXt5a|4H9k?7^0aU-M09$bG>=9dIPN$=GwH`=!z&ozpS+DD%oJDruTWEo{ zf;P|&IzT7r0yhDbeIxiPxEV d*7?)l2D`v+An9~AntlpBa5ffvy3CFP{~r*^)Gq)4 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestConsole/bin/Debug/TestConsole.exe b/SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestConsole/bin/Debug/TestConsole.exe new file mode 100644 index 0000000000000000000000000000000000000000..87fc29671b8d9f3bafedd75c14990fa1af48a685 GIT binary patch literal 16384 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 Z2>1y22>1y22>1y22>1y22>c%q_!nGk>em1O literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestConsole/bin/Debug/TestConsole.exe.config b/SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestConsole/bin/Debug/TestConsole.exe.config new file mode 100644 index 0000000..ca8a999 --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestConsole/bin/Debug/TestConsole.exe.config @@ -0,0 +1,30 @@ + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestConsole/bin/Debug/TestConsole.pdb b/SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestConsole/bin/Debug/TestConsole.pdb new file mode 100644 index 0000000000000000000000000000000000000000..759301fb05f1490bd2a96bc3aac391047018d1ac GIT binary patch literal 13824 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 J;D3(5zW{yMI*kAT literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestConsole/bin/Debug/TestDocumentLayer.pdb b/SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestConsole/bin/Debug/TestDocumentLayer.pdb new file mode 100644 index 0000000000000000000000000000000000000000..e4cdf5ca45f8b196fe0864d7c6c5cbc441c94777 GIT binary patch literal 40448 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 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestConsole/bin/Debug/TestWorkFlow.dll b/SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestConsole/bin/Debug/TestWorkFlow.dll new file mode 100644 index 0000000000000000000000000000000000000000..0ba24ed6ba4993cecb99ed95309e298b1c0cbbfc GIT binary patch literal 20480 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 N3e+f2qd?Ut@c&2MJp%v$ literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestConsole/obj/Debug/TestConsole.exe b/SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestConsole/obj/Debug/TestConsole.exe new file mode 100644 index 0000000000000000000000000000000000000000..87fc29671b8d9f3bafedd75c14990fa1af48a685 GIT binary patch literal 16384 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 Z2>1y22>1y22>1y22>1y22>c%q_!nGk>em1O literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestConsole/obj/Debug/TestConsole.exe.incr b/SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestConsole/obj/Debug/TestConsole.exe.incr new file mode 100644 index 0000000000000000000000000000000000000000..6cc7470739aea3084e604d5ed86cac0faf1ea6cc GIT binary patch literal 2680 zcmds3OKTKC5Uz>uxCc)jrNNt!K@&kVqGV^XVK6F~=&G!Qd2VK%$1*cfqX#_(L2~!1 z;2+SNL2x{X7m=I{{sa-kKj2rrGy4z?UJSc-Q`wZ7eBtYM%Xt2Dp7$dwDbI?_`ZY&t^? zs*^#NNTy@;=exfs#z?d7u~nHzyT(ZZex^E$pPSk&yE_h;=L9UgWz zC5HZ!d)cxZn5z#zEwdk(=k|a3L5DAGcz|zI1n(Czb_D?ioOCEl`zyAX|De9Nj)E2>6+ zo!!qUz4PB+eaw|xoYH8gLI1Ayhp1AvtYci?tnQs^ufLbRe*GbrWBFEMl#h}FtMs9) zwJ}h%eyO$P-5RXRDyqmmkbH50=Ls0*e}JBX_+62?W-L88@;EP-(M`yQ6Z;IJnF3J= z9|Wk91}dh9=&Fcu3adN##+kXXvBj85P>T=^CngO@Oo@yCKQWHdW{wl*qk?Pm6F_&_ Am;e9( literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestConsole/obj/Debug/TestConsole.pdb b/SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestConsole/obj/Debug/TestConsole.pdb new file mode 100644 index 0000000000000000000000000000000000000000..759301fb05f1490bd2a96bc3aac391047018d1ac GIT binary patch literal 13824 zcmeHN|7%-S6u;?Om$vIPQ@gHnHI7Z|I$zRSyHeC{q%AA9wi?|)A|ZW!S!2_@n3q}$ zehCQTPg2kyCMay|7eT=vE#k1?7$S;d{R>1KBCMPG!+x>#^SST6^bxwyZe2*zcgiQ{ z-E+U6bM8I&-PhrSn$ZnCp7nvaCpFfObG@X>YDq)0#qf02W&rZmT6Fv$=u%x z&_HW-)AEW-+g1a)f39rXxw{izS(&MA_jGd~yT<}pgIHO?wr|SFU8-0O+!%YV_wvp~ z-&|NMj9jQXf2seOkN*7Q7vEg3nXdoj-IsjvMc>6ELfr5UUc8wixRzRx*$C_a?gI7z zwLl$E1Jnb%fCgYU-~;G(cLO^CmrAdJ&9r|pAMj#o)qv{*rMGdh9@pCcX-DV&&otX8 zIyxfk4wP9lFVV4nl- z$20eRo&y*I80($q0LFj%k9{6+{R7G<5$*pi==mIdef|BnuPlCZ$wM1$gcv7iQ{EBr z%t!hW;8~Du|K~lQqCZgfq{TIGo1Vf$VOh#pmfTquNtZTR1GfFMXFnUJ{dr#B2(8!t zucJ}d{u|M3Y054yEiZBH9^_A`ClWp}5P3l}vI-uQ6X|p^p~kWaJ*Ax1Gn4V8J|lBO zddkp~S|pT=8AiLJ8bYW&5hE6lWLXyvO3YDr#;(g;)vBxJ>-NcRqhWnIqiP|2T;nLB zr@|e<;N!PEpm8~#s399w*(gR8ea(=K-s(shx$NDEJDN@OZYpr=MK12$ia5g1D}Lq_ zK+ZD&L~>h~S;MhJ3i*vF2oxE ziLyJgJkT!tCN%+n1J{@UQEvMc&w9U0sVtYHKKBWcqn;iB=Xvk|IPa3KE-mNS)ho1USm%uuF+f@EPzf@Q=ZdfzyYvs&m!& z%2kb#*C4kB-bAXAH&i_1^Z?yJ2XGu11u{Sw8F66;IuiIcphoq3!b!Ol&_aqhl;cB zf1P)~eCJu~4uC$$_a6FJ4?tqzp^SHutVd$Gg8<)yT)KS?+>0joezgG5{)V-{`EHa0 zXvY%F&lHtePF;@2uJ8kCIieKSV?;+s@r+dwxewkfJa@@x#=5358h zGvKah37v{~^;0i(eC_hJ)xysjl2**9uE*d~+uA@@Xb&HK+mv$!w;dz?nq?g?6}e9S zL0kIzpPpha);U*4FFDs6EpQ_noUwl*-{chVh0A%*je7qO7>D+)LdIp;**dGhumbNO zp8$R_ekqe+clb1L0xJ?GR(`#X|Ir@c zP3RFF-{PH17Y6h-dit53>pI*q-ORGfHND6hOqYV*zNd58HRzQdozlU+q*oGm9?K3| zfhn>TXGuVB3(g)moKhjqstz;9ldnJb0{T0|2wEni3g{v)*%$QVEA*Oh9NQ6d_&v1p zXkpDwXh+SXjX8k`CHOVIJQ-6~#)B$-f6K4Y&dPi}e#7g{>d} literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestWorkFlow/AssemblyInfo.cs b/SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestWorkFlow/AssemblyInfo.cs new file mode 100644 index 0000000..9f89a32 --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestWorkFlow/AssemblyInfo.cs @@ -0,0 +1,58 @@ +using System.Reflection; +using System.Runtime.CompilerServices; + +// +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +// +[assembly: AssemblyTitle("")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("")] +[assembly: AssemblyCopyright("")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: + +[assembly: AssemblyVersion("1.0.*")] + +// +// In order to sign your assembly you must specify a key to use. Refer to the +// Microsoft .NET Framework documentation for more information on assembly signing. +// +// Use the attributes below to control which key is used for signing. +// +// Notes: +// (*) If no key is specified, the assembly is not signed. +// (*) KeyName refers to a key that has been installed in the Crypto Service +// Provider (CSP) on your machine. KeyFile refers to a file which contains +// a key. +// (*) If the KeyFile and the KeyName values are both specified, the +// following processing occurs: +// (1) If the KeyName can be found in the CSP, that key is used. +// (2) If the KeyName does not exist and the KeyFile does exist, the key +// in the KeyFile is installed into the CSP and used. +// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. +// When specifying the KeyFile, the location of the KeyFile should be +// relative to the project output directory which is +// %Project Directory%\obj\. For example, if your KeyFile is +// located in the project directory, you would specify the AssemblyKeyFile +// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] +// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework +// documentation for more information on this. +// +[assembly: AssemblyDelaySign(false)] +[assembly: AssemblyKeyFile("")] +[assembly: AssemblyKeyName("")] diff --git a/SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestWorkFlow/Component.cs b/SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestWorkFlow/Component.cs new file mode 100644 index 0000000..e93ab7f --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestWorkFlow/Component.cs @@ -0,0 +1,133 @@ +using System; +using SAF.Application.Workflow; +using SAF.Application.DocumentLayer; +using System.Web.Mail; + +namespace TestWorkFlow +{ + ///

+ /// ComponentHelper is an abstract method that implements + /// some of the IComponent's interface members. It reduces the + /// amount developers have to write to create the processing unit component + /// + public abstract class ComponentHelper : IComponent + { + private IComponent nextComponent; + private IDocument request; + private IDocument response; + + public IDocument Request + { + get{return request;} + set {request = value;} + } + + public IDocument Response + { + get{return response;} + set{response =value;} + } + + public IComponent NextComponent + { + get{return nextComponent;} + set{nextComponent = value;} + } + + public abstract void Accept(IVisitor v); + } + + /// + /// acts as an initial processing unit, it determines + /// what the inital action to take to process the cusotmer order. + /// + public class InitialComponent : ComponentHelper + { + public override void Accept(IVisitor v) + { + //triggers the coordination logic stored in the visitor object + ((IPurchaseOrderVisitor)v).Visit(this); + } + + } + + /// + /// contains the methods that send out the email with given + /// email address and content. Its method is called by the visitor object + /// + public class SendConfirmationEmail : ComponentHelper + { public string CustomerEmail; + public string SMTPServerName; + public string MessageContent; + + public override void Accept(IVisitor v) + { + //triggers the coordination logic stored in the visitor object + ((IPurchaseOrderVisitor)v).Visit(this); + } + + + /// + /// method that perform the email sending. It is + /// called from the Visitor object, + /// refer to GenericPurchaseOrderVisitor.Visit(SendConfirmationEmail sce) + /// for more detail + /// + public void SendEmail() + { + try + { + SmtpMail.SmtpServer = SMTPServerName; + MailMessage mm = new MailMessage(); + mm.To = CustomerEmail; + mm.From = "confirmation@company.com"; + mm.Body = MessageContent; + SmtpMail.Send(mm); + } + catch (Exception ex) + { + //ignor the exception if SMTP is setup right on your computer + } + } + } + + /// + /// Sample processing unit for processing customer order. + /// potential methods can be added to provide more complex implementation + /// + public class ProcessCustomerOrder : ComponentHelper + { + public override void Accept(IVisitor v) + { + //triggers the coordination logic stored in the visitor object + ((IPurchaseOrderVisitor)v).Visit(this); + } + } + + /// + /// Sample processing unti for alerting the account managers + /// potential methods can be added to provide more complext implementation + /// + public class AlertAccountManager : ComponentHelper + { + public override void Accept(IVisitor v) + { + //triggers the coordination logic stored in the visitor object + ((IPurchaseOrderVisitor)v).Visit(this); + } + } + + + /// + /// Sample processing unti for generating and sending response document + /// potential methods can be added to provide more complext implementation + /// + public class SendResponseToCustomer : ComponentHelper + { + public override void Accept(IVisitor v) + { + //triggers the coordination logic stored in the visitor object + ((IPurchaseOrderVisitor)v).Visit(this); + } + } +} diff --git a/SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestWorkFlow/DocumentWorkFlowLayer.cs b/SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestWorkFlow/DocumentWorkFlowLayer.cs new file mode 100644 index 0000000..9b8c5d0 --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestWorkFlow/DocumentWorkFlowLayer.cs @@ -0,0 +1,104 @@ +using System; +using System.Xml; +using SAF.Application.Workflow; +using SAF.Application.DocumentLayer; + +namespace TestWorkFlow +{ + /// + /// A sample show how to triggers the processing units with + /// its visitor object in a document layer component + /// + public class DocumentWorkFlowLayer : IDocumentLayer + { + private IDocumentLayer next; + private IComponent nextComponent; + private IVisitor v; + + public DocumentWorkFlowLayer() + { + } + public DocumentWorkFlowLayer(IDocumentLayer nextLayer) + { + Next = nextLayer; + } + + /// + /// constructor that initialize the first processing unit and the visitor class + /// which contain the process flow and coordination logic used to process the cusotmer orders. + /// + /// + public DocumentWorkFlowLayer(XmlNode configXml) + { + XmlNode node = configXml.SelectSingleNode("Layer"); + string initialComponent = configXml.SelectSingleNode("Config/InitialComponent").Attributes["type"].Value; + string visitor = configXml.SelectSingleNode("Config/Visitor").Attributes["type"].Value; + + //use reflect to create the processing unit and visitor object + nextComponent = (IComponent)Activator.CreateInstance(Type.GetType(initialComponent),null); + v = (IVisitor)Activator.CreateInstance(Type.GetType(visitor),null); + + //set the Next property to the next document layer if there is one. + if (node != null) + { + Type type = Type.GetType(node.Attributes["type"].Value); + object[] parameters= new Object[1]{node}; + next = (IDocumentLayer)Activator.CreateInstance(type,parameters); + + } + } + /// + /// interface property implementation + /// + public IDocumentLayer Next + { + get + { + return next; + } + + set + { + next = value; + } + } + + /// + /// interface method that process the document + /// + /// document containing the customer order + /// response document + public IDocument ProcessDocument(IDocument doc) + { + IDocument request = null; + IDocument response = null; + nextComponent.Request = doc; + + //Start each processing unit by calling Accept(v) method + while (nextComponent != null) + { + //trigger the process flow logics + nextComponent.Accept(v); + request = nextComponent.Request; + response = nextComponent.Response; + //set the next proessing unit + nextComponent = nextComponent.NextComponent; + //if this is the last processing unit, retrieve + //the request and response document + if (nextComponent != null) + { + nextComponent.Request = request; + nextComponent.Response = response; + + } + } + + //if next document layer exist, proceed with the next layer. + if (Next != null) + { + response = Next.ProcessDocument(response); + } + return response; + } + } +} diff --git a/SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestWorkFlow/TestWorkFlow.csproj b/SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestWorkFlow/TestWorkFlow.csproj new file mode 100644 index 0000000..b51bd9e --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestWorkFlow/TestWorkFlow.csproj @@ -0,0 +1,130 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestWorkFlow/TestWorkFlow.csproj.user b/SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestWorkFlow/TestWorkFlow.csproj.user new file mode 100644 index 0000000..69ac193 --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestWorkFlow/TestWorkFlow.csproj.user @@ -0,0 +1,48 @@ + + + + + + + + + + + + diff --git a/SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestWorkFlow/Visitor.cs b/SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestWorkFlow/Visitor.cs new file mode 100644 index 0000000..bbc2d6f --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestWorkFlow/Visitor.cs @@ -0,0 +1,132 @@ +using System; +using System.Xml; +using System.Configuration; +using SAF.Application.Configuration; +using SAF.Application.Workflow; +using System.Collections; +using SAF.Application.DocumentLayer; +using System.Security.Principal; + +namespace TestWorkFlow +{ + /// + /// GenericPurchaseOrderVisitor shows a sample visitor class which + /// contain the coordination logic among different components or processing units. + /// + public class GenericPurchaseOrderVisitor : IPurchaseOrderVisitor + { + private ConfigurationManager cm; + private WorkFlowConfiguration wc; + /// + /// Constrcutor to initialize the configuration object + /// + public GenericPurchaseOrderVisitor() + { + cm = (ConfigurationManager)ConfigurationSettings.GetConfig("MyApplication"); + wc = cm.WorkFlowConfig; + } + + /// + /// Set up the first processing unit for the workflow + /// + /// + public void Visit (InitialComponent ipu) + { + ipu.NextComponent = new SendConfirmationEmail(); + } + + /// + /// sends a confirmation email to + /// customers and then set the next processing for order processing + /// + /// SendConfirmationEmail processing unit + public void Visit(SendConfirmationEmail sce) + { + string customer = sce.Request.Sender.Identity.Name; + string email = wc.GetCustomerEmail(customer); + string content = "Your purchase order with following content has been received : \n "; + //send the email to customer + sce.CustomerEmail = email; + sce.MessageContent = content + sce.Request.Content; + sce.SendEmail(); + + //set the next processing unit after the confirmation email has been sent + sce.NextComponent = new ProcessCustomerOrder(); + } + + /// + /// Process the customer order and then set the next processing unit + /// depending on the outcome of the order processing + /// + /// ProcessCustomerOrder processing unit + public void Visit(ProcessCustomerOrder pco) + { + //check if any product is creater than $100 + XmlDocument doc = new XmlDocument(); + doc.LoadXml(pco.Request.Content); + XmlNodeList nodes = doc.SelectNodes("//*[@cost > 100]"); + //make a decision on what is the next component or processing unit is called + if (nodes.Count > 0 ) + { + if (pco.Request.AdditionalData == null) + { + pco.Request.AdditionalData = new Hashtable(); + pco.Request.AdditionalData.Add("ErrorDescription","Unable to process product that costs more than $100"); + } + //set the next processing unit to alert the account manager if error occur + pco.NextComponent = new AlertAccountManager(); + + } + else + { + //code here to perform some real work on the order.... + //otherwise, forward the order to the next unit which + //will send a response to the customer. + pco.NextComponent = new SendResponseToCustomer(); + } + } + + /// + /// Display the message about the failed order on the console + /// + /// AlertAccountManager processing unit + public void Visit(AlertAccountManager sce) + { + Console.WriteLine("An error occured while processing the following document: \n"); + Console.WriteLine(sce.Request.Content + "\n"); + Console.WriteLine("The cause : " + sce.Request.AdditionalData["ErrorDescription"].ToString()); + } + + /// + /// Returns a response document containing the status information for the customer order + /// + /// SendResponseToCustomer processing unit + public void Visit(SendResponseToCustomer sce) + { + //add some code here to generate the response document + string content = "" + + "" + + "" + + ""; + GenericIdentity gi = new GenericIdentity("ServerProviderX"); + GenericPrincipal gp = new GenericPrincipal(gi,null); + Document response = new Document(gp,content,null); + //set the response document + sce.Response = response; + } + + } + + /// + /// The interface that is used defined possible process flow inside + /// visitor class + /// + public interface IPurchaseOrderVisitor : IVisitor + { + void Visit(InitialComponent ipu); + void Visit(SendConfirmationEmail sce); + void Visit(ProcessCustomerOrder pco); + void Visit(AlertAccountManager aam); + void Visit(SendResponseToCustomer sce); + } +} diff --git a/SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestWorkFlow/bin/Debug/SAF.Application.Configuration.dll b/SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestWorkFlow/bin/Debug/SAF.Application.Configuration.dll new file mode 100644 index 0000000000000000000000000000000000000000..57d5a6da3b0fbf4120e468db94c58b3fdac4357a GIT binary patch literal 16384 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 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestWorkFlow/bin/Debug/SAF.Application.DocumentLayer.dll b/SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestWorkFlow/bin/Debug/SAF.Application.DocumentLayer.dll new file mode 100644 index 0000000000000000000000000000000000000000..28147183ea2ae8dc98ddf1f382c05834f27d0559 GIT binary patch literal 16384 zcmeHNU5p!76+U;y_O3Uvvvx`wL@K=bflU(`ZxRKPM(u9aO|#9AT76 zLzmTo>qFD0EHBq|otkUZa}}e}aQs}^%(<;b&T8a}lcikUshaszYG6Ycdg>vf14^g$ zKmYVtr?(rF9$KLiM1#=e0`1dVLVi@_jObzKyt#C0nuEaYP%tj2A&A_myJqnzAntzV zMu{#l5DUu*qLtA7c8F;0Lfdk3j;O!K-Vb?SkDT|-Cw$1C;^44Jj$z)Aq~wTB!LUybS5Fy5_IcN|9XN70I)RJ*3b=a8DAArCF=8VGA_O7?A_O7?A_O7?A_O7? zA_O7?A_V@A5IBMJFBd+WYPkG$L_bOrDOUamWpzQLbl6TC1~;JT!+k`F`-oN-bee(< zu`_{9cfmKERd5?fY}u7?aB3ZJQ>@E?bFv`At3g)Wa{-mR-gS|1r} z=U|B4x4NKc1!BiJ_EW4H*vy@BKAm&8rgwZbIm;t0tySm)4tOpBdElb9A46ZaS70SJ)?dn}m;8@f3oZ}@VUC4Je@^#wNY zpnoZlP7{28+@R$qZ^(Ei68a0nSE@ML1 zpkDuIiGBs1KXt5s_|b_X>Kl-M&+;DIL03|E<$Uy>iwbi>^mnz57dmu=8RhjN-;S8a zGL(COd0tDrj?ulWAMS(OFrHWlVfG2Ks0`^hbd3`9S9%9@Oy%+I>TUG~=)W|E`C=|(7VlsNq*kQ7J3T`1*hiqvMpof%3iRG~+@ zTkYuH%~w$Lm0DneR2#4=}ALH|=C-2?!eDMhD3iF-)VCqs#QNYj@> ziF-)XrBLD?R?&|`iF@D`qbP^DeoC{rV~%6|3ZvJsPIQcw*T7|YG6(dGdIXv$)FkMfDuFK41nm_f zaFhgMD6Ez^_#|qDIcK^Ol7?|GO`%qpQ>Gb68W6^k!}wN#&kDT@7KJsLq1aq-huutU z!VGZUt)if}Wd6s)BnT@LHN?#$%+Ht4hWcG2(+X}drb_RxvA!0H95RKmWE+rx$3A2Cmc-P4%o znf0>W-fy-K8Fh2a$6Kh}^37huUdvv>P&93$U9xJ8#cgIx*TWbV8^&9<-*T4-HtiZ! zvu?PjmuTZO+pbkR?m^3sxvX$m(!-`N^%&OMS%a7QxN91|InnTZqfwFE z$iw@?z^32;Xq!xOiIP6JCU~OrYc9U~^?!VM&$o=iW5=HT=1-{q`%li!ym$MJ7h*Ze z_Q!KdW&0C3l^x6u#)hHM6QMTA4k>X+={ZWr;0i+7jOa4#ozjP40Fyzpl$J=N%Jk=S zl})9y8E&D)bDGjL1W;&}O-h6bW)G(EM9dye_mQ?Xd-&e91AVbIuHGNnD3x zeMpeWAf!QNQhFZ}0h5UGa}ouLwT zc{B779RW8%lXM931n6GyT;7WP@t?sSOVK9%Cbob<{h(Nb^H*@@3KgjMoTm`gz;k#n zPGB~k!V}b>ljMlg2J9z^reQUp^|&tL;o8t+YfArZjMfl8n8jy{_;fNaA_Bi(IFIISd2+nn zvODeg&cGKNsh+WnU~gW)H9{Yz9r)$xBanA;S5&2S$di%rrCkGg*ge^laFW=I7GvnQ z35z9fxeii!;Os!t>W*>#?UzSv8$Y698Os60uSs-9rHMBqkETYa&~xvY=lz1&siIvS z?OZx72nN2k4(M&+Wdm nFj4CWfe3*Jfe3*Jfe3*Jfe3*Jfe3*Jfe3*Jfe3;BT?GCGG@>Rq literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestWorkFlow/bin/Debug/SAF.Application.DocumentLayer.pdb b/SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestWorkFlow/bin/Debug/SAF.Application.DocumentLayer.pdb new file mode 100644 index 0000000000000000000000000000000000000000..2d069f1436d8bc48c5653381deec05e39bf61761 GIT binary patch literal 19968 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 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestWorkFlow/bin/Debug/SAF.Application.Workflow.pdb b/SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestWorkFlow/bin/Debug/SAF.Application.Workflow.pdb new file mode 100644 index 0000000000000000000000000000000000000000..9a69e14d72109e568129a04390accaba4bd81289 GIT binary patch literal 11776 zcmeHN-Afcv6u)C1u4`7CWwgC)Wnr$(&h}uN1R{Q~+E-r36va=u*gcj68 zFFy2ABq-5y?|~pBz6Fv0K@X7xS#Q4Nbbd2)bqFWcT69+Lf#2MjyLaZEIp^GS&pESw z88xrzTDlNwkFI7X-@R1ppk4iRbyhY2uS#3Pji zL0gvq^cJj&{N#7uwPU>d)G z6Q}>jHKzKrEy48S5j!ja=oB{4L45SHnV63~_QB7Bu+BKl4*PJ*Y`@Q=x%5t6_Z@31 zYb$UcrVFwC2*$AdXgaHnC)%?~U60DDPF=2J%^SpFyCiV>vm#B)yPOHIh@K5Wi@rw z>PTm@DLtaLB=lq&kdtF$*^HVjWVD<-uGt%ay1oHmTR~_KchEur1qkT#6An?uzDT-6(UJyZzK zj~xI6l|y2JydVMC>M*I~Ew!ivVR3;kXa0u;$!*+e-+OueW9_5<%m3WQi~jPH0Q}Yhf$#s&Io<;M!UO@e8~6qu z=OCxSJxI`YApWCS1(i|)&^PM8sQZy_V}ACv9x;BF5F#Mp$qTEM_Bj z;Me#K+3+hmCJ3-4WPcwgf6&n)w**qQ5=eHnvm>TlZfnM9)S7WWh!+H`E9+Q6mB<=% zfV7^+V4TnVnBnBlFeH-`>uJU3vVW;tLy#7oHz&8wo$Pt?oY#M#|1zlmlwALf^xnmn zJ&Ly!URSZraYOgqN(|$i7wqH$apsKwz4ZMT`%EnXaW(%B0I#hf<`(|}AR+uG;eQrR r{XexGtTX@L&hP&X#1E1W@CCg?|IV6|&^rmFgmj{W&k~O+KMDK>D_wVe literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestWorkFlow/bin/Debug/TestWorkFlow.dll b/SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestWorkFlow/bin/Debug/TestWorkFlow.dll new file mode 100644 index 0000000000000000000000000000000000000000..0ba24ed6ba4993cecb99ed95309e298b1c0cbbfc GIT binary patch literal 20480 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 N3e+f2qd?Ut@c&2MJp%v$ literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestWorkFlow/obj/Debug/TestWorkFlow.dll b/SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestWorkFlow/obj/Debug/TestWorkFlow.dll new file mode 100644 index 0000000000000000000000000000000000000000..0ba24ed6ba4993cecb99ed95309e298b1c0cbbfc GIT binary patch literal 20480 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 N3e+f2qd?Ut@c&2MJp%v$ literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestWorkFlow/obj/Debug/TestWorkFlow.projdata b/SAF_VS2003/SAF/Test.SAF.Application.Workflow/TestWorkFlow/obj/Debug/TestWorkFlow.projdata new file mode 100644 index 0000000000000000000000000000000000000000..c81093c217e92c6787998c8fb599b5f9611cfeaf GIT binary patch literal 9736 zcmd^_O>9*~6vxlwqm~M!l7;{=t`5cRt!}2%gz4QGcOj}e%owAHfST(<9^Fv%w}7GU)63j_00HL z1BIU**L89IKwQ_y^&D3hZ41=9?T8(U>A%Qx$zHRqHbCo`?XXTe&bt!*zoT~>^S@vl zdH)La5F<;B?{TXz?}2L$k=NvsfNvHF0?i7>- zI?eUV%ob7WgmwY@IqLqjo1Np?pJcPwL8jk*!m~f^;2~7~&RYhv(fHjX&{7%Gq`)P{ zFQNG#Wf5)R9(H>3I?$%O`MKZRkP+0j7 zZzThjTOu0ppM&lUZ9!odO3yrYyetViS~bny?gzyw)SaT zFvE)TmtsA3;ukuc6)D+K^st0Bb~^81wv@Nt!gg98t*ke{)f|4GWj9sqS$eIDYG7BG zG<~M6LMk5?)?@GG587>>HQ0J=x}pNv!4eUG$0|w~L2HNT8@ZOOWE9)JUgrT0#cz73 zdn%SQa$Z9|wI7?(hmVc;+vY~ge?)FpMF0c*^*H*y%q;)qXA-^aIgNPRWv|k^8#=|9 zhHOqRP;%pj_?@~vmM3dX&9xZ9EENyIKhQ+tqC9bupHC!W)*Yw~)% zt){P+h$1>~ah{}(;x?5n2LeuQl`TNPsjYGV(3$&;S~gH+43L-k1Na`e3f!eq@b*Wx z^M15HGK;dmZTI>9H{GZEKSkhn5|Brf{$GlZdqXAuk|!A-JEgNTMN#t^fAcZhUPjNt zgUKt8kA6h|1n;JnGd9{XXPssJ(*CBH!B4a^`6wTGX?IIA<6gq94&ZI&k7RKbFJ^IJ z?9-gEE4h4JH`E5P$Rn)yNM-G5Zzm6?e5c=etA0D-?7IA-?7Pn&G+ur&onv{=7eUpJ zj~FkHnE1D&&`ffvh}j3|qx?*s;ute1qd3S2ze?{%22&KWGio(Hk5A^(NJ+zc;v~z7 zT+co?gVw0{+pkSNw3=?%t?mxW&>KM#-sgJSYM1e$6MMK}c2@%A;|E>cW6uzU`rV0> zeX%^7i9qBLlMx|KNqfnLN*%-ig~(E+oo45Y5ZT?nEx-BaxO}nw>Pg|`lkFuFc(34sjRyOLNo613qo75!#ktIm4 zMeEMqO35xXPueT^$FI?tKXY+Nw`KBeN3e*=nV*W+3pr6Zug6%s?wo_KnwUQ~vKRfV z=LkE_<0slOoXmg!C!S92zR*W53ps0NbJ<^cUBv{-h&zEqr?PjF+1y&%DXw{MoLD|j zB^_fZR?r-hVBo**hIMxqJYTpI4t6!jE3u-rd)}Pfe6}pP<(EV4`IE@1wv|u&;&mAf z=s^GS+=Wa2Q@J^hrB5{fWiIJw*O5r5TCQo2mPB@5o;M@mBqEgz6-z7nNp5R2UpmUv zcb^fbn~Dwewl}3uw?|Kg-F(uMESEO3mh|_S-N@2^xtP9|tj%c2Mi&8=*tx$?78evf zW<8*EWCcAGEl$=qSl>1-l-qM@$QJyMA`|5WicG^9mK>BPct0$i=t3%zQqo5eu5O)t zT%VRwR=VEiD5_WA>7MF*oS43>)@NiDY{?$Smx;gNNn-jQ=`}vjh#-)OKzf? zM3~;TD}J0f$_(~DfXx{JP(et0R; zy;BzbEOXrri}Ww^#+QdK)9Z!Djev@jN(%W45WYkP+;+zO4qheT#=z|b(zsS$UW#%4 z%`N$b;uQ#KX6b)8HocsS>hIW~TzM~k_eT7z@84lzV^!mHwqz?*u2sF$IL)il#M!Q% zPux^ds;s_ta^t>l-o0FC7vlKgIoIF3TsTM5KKpd`vNM+p?t6OSx5w&e3$0vu(!v5R z#EaMdWv}yPZ}}sQukP9Z%h>257u~IO5pf)MIjekD_zw+num!jdmqxL&&9udzQEtp- zF+T=hANl`Y_yR7DA{kJ&fp$IZHrnc6KiA)|4=}ENzV{FgAK!fJpdM{9+Z6iG^V-Ox LEBeo@+f)7r#Q=87 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Application.Workflow/app.config b/SAF_VS2003/SAF/Test.SAF.Application.Workflow/app.config new file mode 100644 index 0000000..0b1315a --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.Application.Workflow/app.config @@ -0,0 +1,30 @@ + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/SAF_VS2003/SAF/Test.SAF.Application.Workflow/bin/Debug/SAF.Application.Configuration.dll b/SAF_VS2003/SAF/Test.SAF.Application.Workflow/bin/Debug/SAF.Application.Configuration.dll new file mode 100644 index 0000000000000000000000000000000000000000..a7db78abe1ac429d4bb93cd6bedbb5836c4c3f7e GIT binary patch literal 4608 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 GB=BF43XJ*y literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Application.Workflow/bin/Debug/SAF.Application.DocumentLayer.dll b/SAF_VS2003/SAF/Test.SAF.Application.Workflow/bin/Debug/SAF.Application.DocumentLayer.dll new file mode 100644 index 0000000000000000000000000000000000000000..5787a038336bfa11d3abe7bccb4d3f756b023452 GIT binary patch literal 5632 zcmeHLU2Ggz6+U-nckOku8}GWbLAYX^A8;FMv6VDY)2OxMts6Iv?POgi0jtUE?qogn z?9OIpHtn_qxgZr)G%6J6Lxn)Cph_Pq6@jP)RIMVgtcpkoct8pd5kh@J0wj2V2f}yG z%-ZYNvIMA7AA0Tk&H20Mo^$V+JJ&w(`LB~sL^1SRw}_VTDjT_KmvdRy?z6l+0Sq4UD2?c#WE2*NpsB!Kk`rE0;=j?TK7ZKTI^Cbc(ze9rT| z5;%!%7z8JZl-k=cqR)AjlxG}6&|YfV*|T1y}tw7crQ`Upia|}!*?ds=^p61y8~ujiGjlj7nyZ=DVAkGxmiGe z4`AC}S7519$vYFTCAVuGo&CtID?r5BWhi3z_6#c82H$b^{S1q`_VJ_~Pir4Ey=AM( zULq{SfdWemq{FA~q68A%N|(Vr_OqM_n&y836JEyZ$69G!#_TaIb{RurT3l2-Ul<3L z5OJ`@rg5-hHD<&OTXwUlEh|=Su{N;fFgCSi1y&mC5WP>Bh-~z~_MyYmsY1Rm^y2a> zH>#CmOW&ON+Lwo4{|&!pqlf1TBV*iiBlWstm(0L+Yq`8zYE-RSFkv<=Z_X_~F_*WB zjmp+`xq7(>mvpr7=us6_64&LWq1<3@|DnPASc#o-fQyKD_m_zNjOVWq-|j--*|mz# z7E9Q;op|nktU$j8&1Jv)k;lgKc-{p62j-7Du1p4+E9CTDuPLlO(ZAGwE@;RIJI8e) zuMX2FH>q`|xn?+jOfPl9bMP2mH*9zmeFAG(1ovB7!GZJ-x&a(fIh;}NsyBhZ7yO&x zc8w)_1s@bVD;Nk~5qw?nmx6y3+^+vq>!KNb1+zR2Owf1qBJd3$H;#!>(W`h4&;t>t zuqt(MacE+q`-td8PfEv zh~pX3bT#65h8^@?#PJMVF^UY-r=rgYeopXy!BBp!jSeLtE<>)-3Q(u_H?h%?TO2!e z4_%|fG$eRG(4i5b#|2Lco)t6&ZNZCzO~Gdcp9fyVnp~qN@tGXep8+oD&(b&OtNL@G zU(yevPF~etpf~78`b($@w#?y8xDMVXcTHPL$Ss14Lcpb5fy0o zei8jiKB%lci?~9oHQ9>D1dg0=%MHhRkhVNRb7jY&@pY%_)&r>Omt4=Wi&SX(fmNlc z;uBUWpq7iHj#*of(|OJ9s*);JaBh+>8h(qI_S}-?`>o+5+8UeWN`dP|v*gZH9YUYP zZLK9LSfz$%2hH3x4(O6yH<8F1$ukwKTG{esu83sms9Ov01rc$J4s*$kx{iZn@S*YP znCZ_4X3?=E=#g^SX1VF)&A^ngw~3+|S{`rH`e7)gXl`@8yJ-4T)`e(#8u5LrT6CJn zt>&azwMGJbg^G>9YFCWe&L)by<(SQaU8!vxGi!N1a@eRCZ8$;0+r-(7XO^w1=`CzB z#;rF!yD}eaRAEocjnXEHQMXz*Yt4-#uxc0VO2dj!qpC%Gb2crVvRUoxGBMdj!^L0oZR)nbbf3fEh~;@v3V>+e`nco42SSSyvV zK3W^(bD6GMiEbRP$S1lGw<{_rt`c zU;@}Ai#(!a0ICj}X#Bkc_cWbDlW%u^|J(Eaz%A;0`{}vaPae4We9WM1XWURK+nF#_ zwmaJ$>xV>7MA9T1q{JYl8uPsTbBAVW8}ZYENC z2Lb_+i7P(F61ZUqF&zC}z{1CwHkjJjT7N&RY4E~(dB-_n+O_cTvMf3E*y7e+_`%Ko z90lqQHoqKV8eBmvA5TEDU<;)*LKQl};joVGDP3s3h&f;(DbHIn`6sU2UqDk=M zz%kI=-iiI?-{DtP(T&9EIMe)W{WE~?<>6gi%mw)Vui(|h`#FZ2xr4WJoN9D|T+#2r zJ%eZlS`$(qdXoa!x!}U~R_rY}Rfs8ol?{1i6HhOQ%^@6vb6&Fxcc+YTRgCj!K~^xdbtLYo$OrEZ z$K6^l=6Kcl|2F@B{Na90V=fmtHIQ%6wnAY%!?FkKZEoL*t@a@=<42I8FZmXcO%s*y a-}pefA5JsE{~6Vfd^qku_WIFYf&T!QC>zlL literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Application.Workflow/bin/Debug/SAF.Application.DocumentLayer.pdb b/SAF_VS2003/SAF/Test.SAF.Application.Workflow/bin/Debug/SAF.Application.DocumentLayer.pdb new file mode 100644 index 0000000000000000000000000000000000000000..7ea6ea7201512e9cfcb3522265cb8da66d5a466c GIT binary patch literal 17920 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 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Application.Workflow/bin/Debug/SAF.Application.Workflow.dll b/SAF_VS2003/SAF/Test.SAF.Application.Workflow/bin/Debug/SAF.Application.Workflow.dll new file mode 100644 index 0000000000000000000000000000000000000000..780bd1a387e76d75ed7d78b3f2c1e543eb4f3a29 GIT binary patch literal 4096 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 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Application.Workflow/bin/Debug/SAF.Configuration.dll b/SAF_VS2003/SAF/Test.SAF.Application.Workflow/bin/Debug/SAF.Configuration.dll new file mode 100644 index 0000000000000000000000000000000000000000..0413c89757c21ccb790ec1d78a1013b5e159f59d GIT binary patch literal 11264 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 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Application.Workflow/bin/Debug/SAF.Configuration.pdb b/SAF_VS2003/SAF/Test.SAF.Application.Workflow/bin/Debug/SAF.Configuration.pdb new file mode 100644 index 0000000000000000000000000000000000000000..3be794452e75ad7d10db93b6cafb3cae380968f2 GIT binary patch literal 50688 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 T(7gZ6C3oNQ44)eQ4@cmiQ{xX| literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Application.Workflow/bin/Debug/Test.SAF.Application.Workflow.exe.config b/SAF_VS2003/SAF/Test.SAF.Application.Workflow/bin/Debug/Test.SAF.Application.Workflow.exe.config new file mode 100644 index 0000000..0b1315a --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.Application.Workflow/bin/Debug/Test.SAF.Application.Workflow.exe.config @@ -0,0 +1,30 @@ + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/SAF_VS2003/SAF/Test.SAF.Application.Workflow/bin/Debug/Test.SAF.Application.Workflow.pdb b/SAF_VS2003/SAF/Test.SAF.Application.Workflow/bin/Debug/Test.SAF.Application.Workflow.pdb new file mode 100644 index 0000000000000000000000000000000000000000..076e31628b2ce83188f109f8017b136cf0054ecf GIT binary patch literal 13824 zcmeHMTW=dh6dtDub#A3D5Yn^+6H*cCvbIAnAp)hvX_bhi2}%(Xid5XKovz~ShFwQ) zB#_KY#RCs{=mX{QP{B_C6_6@gfk3<=`VSD|BB7>5JcI`lzHfKO*}7>|tA)DG9P9I$ zIWs#md(N55*%>u-+j6XIKAMWBVzKDx#F6L$EsKL35pgJK!U^{?o%!3~FnEI~) z4fNEvuPEBM8d&)I*Nyw~>djXQjmc0S*RicWz*@x03YL9OMy{x4HL!Hz<$-TEUx_SC zh)ZK1*PZ|7@Jr`@|K-QX!hn}={^-nWk?fVo#oa*DFi~Vn9`!HUq9#FQw*|xVMS!@00Tn?`P%(Ja> zemm`}I`@YLKKF+ydHJaKz#$F-BPgIB+{t|8TCJ!$G_d2RM5u_N{4jL+!qGEdhoVSV zLi{$swL)?}%QXFiZT}NKZw~pggwHeJimF2c%Ztm4v{#bD(fcQzbapbIaq=1xT6%Ui zXXxp?VVPRNvZu2-t1zkO(vFkVbjRCxX;eu;Cy+A5t6Bqc{wKcr;)CZf{~xb#w9@2~ z^Kqut{I5`v_ozD0&YIZGP)Y1`4}C%e&j7F`LoL^)Vl-`-NVkbi5kA+B`WILTqRpE` zcVuGT$!BJS=wkZN5$#Z52}xOI)|i^J-30~p*QzsU>2os~Ge44^&)BHbQEF2we;hHM z>`xmWL*35R{6t2dvyJ?`Hf|fHZp@~0et*Zfww*2?*{lBI=JmH`9X!weN@d9NeVIoR zI*GbEgi2ganS&STfSkHP%vzG`mYK&Zy3bJM&}FG?%JAA^jEi&9s(jXyQ|~ZHNq*AO z-FA4ULX2CI>#za)rt!i7dCu2sC(0NT2ivkU&a7oR?)F@V5+a1(!>C81U+`UsV*rV= zO1BNRNooiF1gF2qQ zbt8|@7Gf88FZfg7&x1o&8~~4jkArLAr@&FCh+R$W1uuZ_2mcWK066{p1@L;@gw$i? z4Jd7Z$B`P`uMD(fKhOvC0tbO{zy|gL+fnZ=;3#~dUi^jUU>9E#UOI|A`WBKS`JWTd z@*R!w>s!%N3zQ5Ux?|es^Sd#C=sJyfp0G{@Ra6xk;CD4ewWonjvBljpFb}a6q{c>L z#}Au%d;a*iWnhacY!kcOa<01}{{YY?o({+o`xB&O?db+@#3fph(m>5>Ac{Sob9*h4 zX9G@xFzRuy-eCK6&Ch?@n0EkC*cNwbeNE!GZr-IJ+z^!Q0eEJX#Pc@J;h?LRT!ugI zb|82^AWO)@f-Q*a*o&*}F**lPY)i4pH$7;=AKZ~mVxoBQ6Dc5nW<7IEEq1PHD@TywZjther{{R0XrBcA6J UDGewMC=DnLC=DnLY%C4@3*L|hng9R* literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Application.Workflow/bin/Debug/TestDocumentLayer.dll b/SAF_VS2003/SAF/Test.SAF.Application.Workflow/bin/Debug/TestDocumentLayer.dll new file mode 100644 index 0000000000000000000000000000000000000000..7c6d98987d29d7bf45889ba8d605ce2340ac7be5 GIT binary patch literal 8192 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 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Application.Workflow/bin/Debug/TestDocumentLayer.pdb b/SAF_VS2003/SAF/Test.SAF.Application.Workflow/bin/Debug/TestDocumentLayer.pdb new file mode 100644 index 0000000000000000000000000000000000000000..77fc5822776abfbe1bf063aa4a039dc387d8b07b GIT binary patch literal 40448 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 X3R2NPMFSNLR5Vc0Kt%(kYT*9?^39#L literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Application.Workflow/bin/Debug/TestWorkFlow.dll b/SAF_VS2003/SAF/Test.SAF.Application.Workflow/bin/Debug/TestWorkFlow.dll new file mode 100644 index 0000000000000000000000000000000000000000..8b9208a7d4fd01e5a19f84d7b0c22c9d05029b92 GIT binary patch literal 9216 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 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Application.Workflow/bin/Debug/TestWorkFlow.pdb b/SAF_VS2003/SAF/Test.SAF.Application.Workflow/bin/Debug/TestWorkFlow.pdb new file mode 100644 index 0000000000000000000000000000000000000000..66c8692a83d8c4a2ae942bfe46ac108a612ecae5 GIT binary patch literal 34304 zcmeI5e{5aFmB+8`7sm-nh(mx7Qr096g#2*q{B-zH5}bsjB@jsXStMd!Uckb?uwRy- zX4ShYMazms*)6KlUAh86C00Uestpz04NC;5O0}t$-Bzpqv;QEvf~qP|u~I5g*w1%n z&hz#4eU5FMn8fdd<8$xKnP2D3oS8W@_pzfR-`CUMv#;3Dwz6&6vW6YIwl=J9YHpr6 zeg5WM5m4>^i`sast5QG|t@fny_dJk5{KDrIn8Xrjy-S_=qe(1*$=&qFrnOYHste2x z2)Q`={Bz8{4->7xc`Jca58i&`&!+ye{?M-I_-!v%zwq{!uYdo8|NXD}LpS>O3x4qA zef9f(S^xUdC^}WQ{q=H!cx@W-bebi(C|VBFj44rcBeVvr1vh}#f!BjKfER!(!Kq*q zNb+a}I1`)&HiIqTDp2c(E@0obZK6NiB~kqtG~Z2;w2bvqF8YM`I#7LIpl5;nR}&2yqgv-3 z|L>pw{e~yss-kJ50`begCpj+)Db>#OI8~U&sc3SXDqWgaVd51{@{VTwzvy)2^N{|( z$GgJDqJO2`Ngk$uy_eHJd`|zjpGN=cN87+J3)s5PXu4j~MYJiOFZ34izt+@iK7Jci zU-#o7iYnuO^yB}B2v)L9%5K(x-Mgo&Q~qtUt4(b^-TOKo+TZ64D#v9(KGo+o$~*u17^&Q@w| zd{5@_--0a6{tq|*!{_Y(D(Fb&|A`*|r_=wH=-$D8_wpaU!BSIpXxK- z^FK@4lKzLA|KW4`?>>$GZT|l>*ZHfT|62)M4yVN@ z^?x?!Fje-FWH;XPf4--?hDlBY$TL5;~cUJ`TYDP53N+GU?=!uqMM+x^z*8bv{-G$cNVM9w?Lbr+MnDET@95T;f`FaIhA{IagM(^ICIf` z;1!_W=Yp-J@}Gm(+xjYhcEr2tc?c9BM<<7yppttVRQ1>bl{_dr-T>VW1*5M)^HAy% zvv!Vt|KVpbT`anjcg-tzLvwfvbKK;}A?+Lzp2F(0mKM}TJv_Ie7m1DkQ^yNUh+5?itjg{x2uYo7Q_rO!& zZ2CbXsP+3!P;jE!Q?<`vF4dh~6Xx%S3dINRDD+DnHs_xRj593(bP;K6FI8^;XYolp zI+6Q7)kl6zi9)y=w6H8&QT|lYk1wTFAGGo6+neqGhtKW*SU1JP?f)O9Vlk*Qj&kQ2 zUk!el=cFVcsY}Lo?ZVK;NV>eWaG1!rj_QST-3I!vDw3Fd(e<7t-q}8 zC)H5^*-(RvXnUQ>xZjPJL2Xy(IsxkJ+W01_?Kan1dqz6`ZL*dw-=QsUV>hHrvlA25 zo-d-y!{|(q)Ft-^Yv&KvWoe0jTrcURTjQT--D=&29GuNG|GL%=hd`~ZUIveX$3e~YvaPZ) zLXAzK`l(QMU8uGRmETzAIhCP%wyK-T(fU!(DvR~2dscZ1!n4Y}GCZr?g*@9F>E{C0 z)PxDhx^zZD88J3mWyN)@m@nld+|qeFO8H6zB-2r!SUMD)#`^CvR@au!+pFyIsJkmq zw2rdokr`PLn;edMOk^i|7Dkl{9JjWb);E@#6F?D zl7;yNGE6{54Zl~JDS?3(5;Fo zxBj#EFUy!xee6s^_1+Cy*jUDe((WM-)1hx~_WBP#xBhE~4!8b$AHA^PcXCb2E$uf? z>uap{Xwqv;n_rXqf14@^G{y{&pUjfif6D)VoNyNz;wPdVHdk67{wvo}{dWaa%K@UU zRhwK?q75eqdxAjicP#$P&<5FW!CRiVzXa8K+stdC4Np`5W+LAt*y1Om4eC#tqLFpR z+`eki+S`0kR6FoSk^G`+sPd7X=$ECq4mL9#?VYLJjeILZ&$ENy$L&pyk&*1}SIO@% zsC<=%Ap8Ua`4=DWb!E$+rSUM(2G$MjeeGR^Vxf=CyY)5ERbkJh?;Qm;&*_<<+FwIe zUTJT}qt=E_x^rh<2?=$q3y;rg}e-zqmbF}h7p0)2nU7NL6(prpnwRt)G zzXLVKjAtU+Z2G&_bQg@*Gt|p~pxWQ^;@S~5O+G+M}^TUyVkx z-?cF}z#Bzj}*bNyU8a$3TN;-9S?g{v&qE{;d#$=9fGl_`6mXO+7hw0WIJ7p{B+l5L}Va^IrG zYU^C)^%_>a<`cZ0F!3wDS%Fvf#W@+E)WfA?uM%sXndj1Ph;qbO9?y9`m&aQ?3zEK6 z+TrrJ5~{W?gsy@vg5CkW3fcj^8X7~FLca~g&l>+DbOrQB&?e}c&=zQo^KHtn`xy8Q zunXJ`Ud&j&0c--dmg=bXNRDdfbf_RHALQ%SynJ6BPr;<*NNsX`7ha_^dy!0sE@H{= zMwf0*DV@raew5C}=WO1!7ZRYiSowSn%5aRn4pqGT#*)$Pyd$3o`NZ<2?t)$iy%Ty1 z^d6|zh4(@CK)(U)gx(63-D-y(gyx}7L75=pzk%+9=J?9o`^6U%BHOnRTna7+H-e4K z5X-<7@LdH;rYoUyojgAwjb!0_ukS1KYW!Ta8F~-c3qAqLe|Ho-3BCt@3NE0*s_Oyp z3GgU*9F%M%xA(x0z)!(C3YiNwfXl&Fa5E@B@%^A=XKN>|hXm@U1`Du2`cN{c^mq0a!*FZIfrK8=@ z94ELrcb+yMs%MQ!w8`I3;L-RZUk9=aYv|~=fP2A%>h$9YI>;FW)u9LCr=iVbff*#4 z2R4Gu;Pv1(khVLyNv7j5{`I}*{Anvcj;ZG1YVP1TJw?&0ysPE~WF`8Y5Wb&hy?+qm zcZB%A4DbI$9*XY>ba4oOG^F1W=w*Snhx}HA_uB)%&drpM=4a8bgmV5E-v2h_Ulr2* zXLx@#yuV=SLik^V^uG!5zXeFaFQ&ZX$582XV!F_tq7t*gANdG*# z^JQi@`>CU)_k1D!dWHM)rTSWPWG481c;IJ|Hz&bg6&x;>w|J`}&)dv^Hr^91+&gEC z*M|k(RRg?|bvj=k7I;?=)LA}*s*=nG+UUarKYFn?YQJ6O^x`++Ru>;0_|eG~w9(S2 zO}R31$%VGIv=5Xa{;6g7rw0C23E7ChIzx`tCdd4MY&IgB>TqG!>h8lr-S-ag>ON?i z*M|jO7Vf4W-BV2S`mn&8(0e>(D6bFmye&-1map!VrStV+ffqR>UU~2=5uZ(|hnQC zv$QSuaiPyt>_2w${L#P0w)~k@(NJfn*$f}=_20}~oU~cW2f!+$n6Q9BS zW&Yj&y}4`&o8bn>q`9MLv4!+238<(cazukcwK{yuNjFE5pFS@MX;$ zQr4+Af0A96#KL_%cOPeWk2Nn^wPC|en_AayQDH0orRihUSD^iK8WgASS?LJg6?ZZC zRw_<5UcUjSK0OEb&_&VvjdOYKtYIC<+`63Se}}Wajqx@1a z`KcaDJ}#qMbF|yX{r-ml*0wgcuHVqcBnk{)){JOx9e1+eD~7V(|A$wz<$ZIZyU^E> z-?_gp|8RSM!Sy5eO#@#zt+{FImUXMw)72deU*;_L?StC4hsLRWr+)NScA0~hyW0w# zy>zHmt2b?0*Sco&NXnW%v_JjFvFx(8XC9iZZe721{hDSL#K7?Fs&{(;`52CYu3ZoO zYj#=cyY8dozApD+viGgsw0ccz+ty~^u;I(Pa7epa3uVeW1LObH8$Zo%*BKc9M|!?n z8lHpf+60Y%^#kcv{kJ3p1qM*uyCB1A2q^Bi;4?#Fe4aYfSrOvIYoKS{d7lvi(s4f~ z;NCKEx^sT8Oq}j|o6j$ur|$4CEt5`nm8|VNmOy#9J69nj9j7}-<w*w0Otj9mw2Bn++D>6#K9y91|0(?n@Rl-|<=-xQW|+mC z_)sJ(dN^OX{dQJpuBz%mjq`A+6M}!v{QgsIlW3CX4e2{TXY%(So^5KW`u86`cBA^m zz5nxn*S!93T|55z#W&WUY*@DSb;4HO($W3M_U?T>(aLTvLi9%~`}^`MA1<`B?0T@X zC;x~K*w@in=wF#7z_QA48I@0$(93B!%d1G8Rs&56>H!5$fYZQw&^ommzYtVM=0MPO zOQo{`G0g86o$c?A$NT%wc{EdFOMd!R=p$h;zrwTTgl!3o;Sv6d!y3`|;1x~(_V=^M z(+0p2(o5W0y-D2a?@gf2WOc5gb07I2RIKctY>HIFT6Elh`}Jz_RDG6$*MQ5w<=};& z{pOTAw;biS;C5y=BXMR&w|94q5RclVCOH`G_n))Kz?n|BHq~CLre1z1`~K77$7(-t z8%62g=^D-N$EZA3@Cc~AhCp^gxFO)*L51q?Lg`MZ{IaH<#PmTQfC;z= z)U)!vJUlD^hVZQXWt+sKGTOqk%F#LGAHZ#(!1B>EvMhc7Ng1))#$G#C8SIy1*%;mb zDfj)S>ZAOy9}d)K8^besxU=yE(De78s=LzJT3N%OGo)*PUwic{p^KnQZ|>Ve@^#;T zE{5Jr_*KvyQ0$`n{u8?xkM#Rb$xG$idR(^r5GX*7P7c_4_x&ff-qoW8DtX{~cHe(; z3=vDV?6u=OlsRb7_n$ZL{!PMlKWHr9e|r0v{rxBUjWx}0hDzRBppwN_Xu0n{z0Jt} z{*!jN??1^S*5G0<5?==02}S1j3cQDA`I&S{|3y1js8}<$FyXI%l^?m*r{QnteSG7OSZr=#~ z|FcavDXO{9)&{Al%IkS10qI#yvNIaryg5V8e>N^Xn%&pF@cGZ|A?H8M-zsxX`i0Mb zW(+AS`s0~8|Cu$Utg`2k=i&KJW6>{5F&HOlW$^IX>9n25FvM zV&^~VLzVL%gphUqb9Pm7R!h@*UdF`Ef4-%I7~mB!eg1dSo#0IB7-vl_*E-Vkw8TP M6$w-%FbO5_|AK9;@Bjb+ literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Application.Workflow/obj/Debug/Test.SAF.Application.Workflow.exe b/SAF_VS2003/SAF/Test.SAF.Application.Workflow/obj/Debug/Test.SAF.Application.Workflow.exe new file mode 100644 index 0000000000000000000000000000000000000000..49ee7c60f8c13d9c9b4108ddf2b11d8f1caa6204 GIT binary patch literal 6656 zcmeHLU2Ggz6+Scj=d7E>Uc2Csq#ZX#Bu%=qm84OdDBaC&>}+GlPS%YHI7;?syq;!v zW-~L}*lk5!genq6Rf{5|A|#5`hZbH6LLw?ca;5SU)K-GLP?e$!!U2MZ9#?tCRiKVI`j z|3zi=jsD45!_jKCRkrh0t(Z4W%hd|HX4g&4FtyBhPODlaJ+XFebf7Wy#D1btB|y<% zpLw9U+Pf4}I+ZZdZQyW6+q)G&LrJB~jSy1+I@U71=e?9ZV-Qn(_g}p|5BHfW~N&771-4P2$ zQS0*zpcb_+^K3Z6=;n<~Mif!HgYo--w?ua<@KZ%b_4ZL@>F#?5mFrA(^PR9p0--hY zmt$z4pX^6R0v^d_a(4~9`ofdnzLa_H@n3E_zx8UT26_7a>0D}fdQx}X1dv3kR;w7r zylYryV#=~l%~Y&2(^lc(>5N{emsi(I)Jg?RN&9jS?o;ICygYbhC^4AWzH4wN3n@eu zz>9Ej(^rWG;9CbC`b|04Hq5fa8r!hjB+hHoLpiD-c@YNMH1be3gYj|DFEG8YV##8_ zp{k7Bt`gFP=5Me3;aM} zNMWfaaJRrofmMO$1->Nkva*QU5mI^1FRB~WFzpa%sN=xr1)c+p(vQ>&;QUlLZ>hgf zV{}#hlNzUc1AT!w9R!Thvw;iHd>$}NZwGkJ_W`-_P8sspMQM5v5oT&aWB#+q0^Z?Z zKT}Wjnb7g#(WiEkNxigAU_anG+9LRn!21NI1ZD*u7I;ixUZ5fHG~gXH57Qx#qJggU8N>}oZGvwLN-RRk+ zvAkhYqUc(7!#r_BpQ*qePdKFaOk=3>%dd1R1@OpU)X( zbGgk?-F7hfazVOYaqIR9lTF(Bl3vZ*r&h4BYV)>Ho^_XtCTv8oxPl;URcm>3ez`^3 zGG~l(-InsUT%6IJqHWYTGRuXNhU<@mcNB??kuRH;;~GVWq(YYS1;5&=hfBH1)a0zK z=S!{S@-}KJg~uHcooZZJ<0%TKmlsvcPimrbSLK)@{R`PfVbg7L8iI zLL<7V+eR^4(oGkVCf!oVUKcIRp^R0mS7A1qpU3J=in1-+hNEe#(#R->4&gfuJa zj?)xVS$9w5bdwK+(d*G;f*&G2Gi-`|#XZV{V<8$-I2V1?FmTz@jz(6f|r)MZ>VN=nPSIFWu;O1eP_}^PD`31|KcVS{E-&tf$coW@E23qU~B^ zJq@ec_!;yFtV)pWxxtTycnt@uwARQhTf>0H{g@@ntKd%LR@gE8(GULi-tf7K^Q$YD zK7Nrpe)8z_(RDlCJ&RjV*%%9Gqy#lZi7`+^nyRR3P=O%?u?Wcc;f=8lEuh4Y#p1_< zq-=-jbDY5QIM?4jaXX9hg(c{(lY1pOIFq>!5 z$IzLjqgO+`B871+Gt%35*JWO!`8~nJlGc1D_Sh%Vmc4&YmwGNYg03e@6@Hh(7t_5eh0*}cxk;NZwH>z#0d7~nF(VKo4d-vQ}S)Poa% z`{@X-ptFF(-d7|2Ecn-tJ%1E>Cp;BmoX6(JEWhjemX#IZ8hA(LDILaB%C&~y z^k(qnaT_4En#2>#Z+i~pzS<%hF9%=7-W2%c%5!c~86GX2>AdI+QuDWi3c&e0R)uX^ z>IT;{t|a^cprH@=WHniT9=qk5s6*=MY!jX4dKsx8Me(E7s(}sNJ@{BvuKRWrx;EBo z)Jfa76p4&0b|(C&_`I2vm0j56P>F{zu3V23)U3KQ zjjEe~%xZcv)uWsMJu|xq6mSPx-3Q(7ipk^t{vIJEICauITa!CAt;yn`=JL z!SCwqcQam0dC~k&`0t(91lF<;uR3lA*B2qr_oSRbyUx;+SnV7#VxPhe`4*}oizf|<5f3u2L0`{+};6%1gA$2a`#>&xRe+H8m3d^79Tg0K7AYxswlza?+_G~3(( zv50hA`0w=q=8yQ-l_`GG_6ab#5c7{U0oi<_q6XS{sa?$s&dN_ T(7gZ6C3oNQ44)eQ4@cmiQ{xX| literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Application.Workflow/obj/Debug/Test.SAF.Application.Workflow.exe.incr b/SAF_VS2003/SAF/Test.SAF.Application.Workflow/obj/Debug/Test.SAF.Application.Workflow.exe.incr new file mode 100644 index 0000000000000000000000000000000000000000..919108857ecdb952ea70a85e54a334bec009ffc2 GIT binary patch literal 2108 zcmd5-O=}ZT6g{c6YF!xo1rJO0i-I8dL)?idt~~c;#wH?CAql>4=e@b_&3osabMH+ls7H?P1c~jb#qFlo zP?nw8$_*oBo>6A#Z#6w9QZq9u*=WYf<(rC=FmhtmkcCO8oWQQp>)LUmBBv&s#KtsA z&v(1W0Gyyno1mRc&B78EaTnK7z#8sg0VX|vYJFc%$PNST$E(NX)9-WhM|$2lb|&Ug zMFl0Sz``m=Wxn4+6Lmxg5z|~GFgU-&v#Ti5Z^MU!hn$PBN#6sUdEDVR8o(}i+pDME2=+A8{sZi$X2RvI*Leep z;RALKqVp)R@1B3Ev1hq-ZREUXI%X;rQ1@A5P)p0;=+HQ*!;L$jx?{HoE%bGe_$>|0FMKzjCGR>}#ez-FT<_tX{L% zwR^bv9`fYYZ~30Z-M`llgIWKGmKJdAa3JF^v^|>Sz2r~6-J1OVq?;|nMf!$U!xqSF zOcXxv=CKl$Se0BdZIJJnC-pE*v!4w5JcI`lzHfKO*}7>|tA)DG9P9I$ zIWs#md(N55*%>u-+j6XIKAMWBVzKDx#F6L$EsKL35pgJK!U^{?o%!3~FnEI~) z4fNEvuPEBM8d&)I*Nyw~>djXQjmc0S*RicWz*@x03YL9OMy{x4HL!Hz<$-TEUx_SC zh)ZK1*PZ|7@Jr`@|K-QX!hn}={^-nWk?fVo#oa*DFi~Vn9`!HUq9#FQw*|xVMS!@00Tn?`P%(Ja> zemm`}I`@YLKKF+ydHJaKz#$F-BPgIB+{t|8TCJ!$G_d2RM5u_N{4jL+!qGEdhoVSV zLi{$swL)?}%QXFiZT}NKZw~pggwHeJimF2c%Ztm4v{#bD(fcQzbapbIaq=1xT6%Ui zXXxp?VVPRNvZu2-t1zkO(vFkVbjRCxX;eu;Cy+A5t6Bqc{wKcr;)CZf{~xb#w9@2~ z^Kqut{I5`v_ozD0&YIZGP)Y1`4}C%e&j7F`LoL^)Vl-`-NVkbi5kA+B`WILTqRpE` zcVuGT$!BJS=wkZN5$#Z52}xOI)|i^J-30~p*QzsU>2os~Ge44^&)BHbQEF2we;hHM z>`xmWL*35R{6t2dvyJ?`Hf|fHZp@~0et*Zfww*2?*{lBI=JmH`9X!weN@d9NeVIoR zI*GbEgi2ganS&STfSkHP%vzG`mYK&Zy3bJM&}FG?%JAA^jEi&9s(jXyQ|~ZHNq*AO z-FA4ULX2CI>#za)rt!i7dCu2sC(0NT2ivkU&a7oR?)F@V5+a1(!>C81U+`UsV*rV= zO1BNRNooiF1gF2qQ zbt8|@7Gf88FZfg7&x1o&8~~4jkArLAr@&FCh+R$W1uuZ_2mcWK066{p1@L;@gw$i? z4Jd7Z$B`P`uMD(fKhOvC0tbO{zy|gL+fnZ=;3#~dUi^jUU>9E#UOI|A`WBKS`JWTd z@*R!w>s!%N3zQ5Ux?|es^Sd#C=sJyfp0G{@Ra6xk;CD4ewWonjvBljpFb}a6q{c>L z#}Au%d;a*iWnhacY!kcOa<01}{{YY?o({+o`xB&O?db+@#3fph(m>5>Ac{Sob9*h4 zX9G@xFzRuy-eCK6&Ch?@n0EkC*cNwbeNE!GZr-IJ+z^!Q0eEJX#Pc@J;h?LRT!ugI zb|82^AWO)@f-Q*a*o&*}F**lPY)i4pH$7;=AKZ~mVxoBQ6Dc5nW<7IEEq1PHD@TywZjther{{R0XrBcA6J UDGewMC=DnLC=DnLY%C4@3*L|hng9R* literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Application.Workflow/obj/Debug/Test.SAF.Application.Workflow.projdata b/SAF_VS2003/SAF/Test.SAF.Application.Workflow/obj/Debug/Test.SAF.Application.Workflow.projdata new file mode 100644 index 0000000000000000000000000000000000000000..dfe66e33bd5535f78c2551ecbfe5e91e8aff9827 GIT binary patch literal 2184 zcmeH|O-oc!7{~v&oRXkHp#p{AA}vaCtgQ@!C_zvWRJy1HyK^09bY^7ksI?1%m}QFy z>N~XU3-}#c^cng9?dtbG$E!h`gj(sjJokAy&vRa$xASpgZ1jv6BhvfCg!GfKWSWU9 zdZtD7)YU+F_!mf|ilTDGN{lL6TUt}WcN=~ceh$q?TF@QvW2_6-s2xaZ$hY~n)KZ4s z0PJ0AS^@X9sdeUh+6((1tz1L9VEy^uR(yHvHKq1HJl{gNb*_$HaOPLK%RSaPdwJHg zoOcTNg3E@L;8xv(AI0aBr5xIRhYe$RzNAj^sR#bQ2VS#<>)O@qJiH8cg--*Y07hzl z4u};W@i+LfckPiMZ}t<<-Rge-{NU|=VqJrC|F6b@!6eGVbJ7R%Y;-~Q=?*O_O1gAN zU#FWq)pOlITG33BT&=2|)YYKsGJ3;B?CMnI4mH`qzE4#~=@OP5v{E|GM(8^!dK;nB z6i6eL>LE5>%U!Do`#1H3Q?#(N-WqfRyo|*21GM|_J$gVJs|<-x;k|R@J80#>!kSHJ z@1F-7OMY8Q!m~An5u8MKOcnw?yZUV;` N#NPLx0#4%ne*wEh=-~hW literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Authentication/Test.SAF.Authentication.sln b/SAF_VS2003/SAF/Test.SAF.Authentication/Test.SAF.Authentication.sln new file mode 100644 index 0000000..e0b0cd0 --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.Authentication/Test.SAF.Authentication.sln @@ -0,0 +1,45 @@ +Microsoft Visual Studio Solution File, Format Version 8.00 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SAF.Authentication", "..\SAF.Authentication\SAF.Authentication.csproj", "{FCE84DBB-04F6-4FF5-B84A-776CDB28DDEE}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SAF.Utility", "..\SAF.Utility\SAF.Utility.csproj", "{25E53F84-184D-43EA-9713-CDD63021560C}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SAF.Configuration", "..\SAF.Configuration\SAF.Configuration.csproj", "{CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestConsole", "TestConsole\TestConsole.csproj", "{14EF704B-A7B1-4EED-B4B7-DC3AF0B98AB0}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfiguration) = preSolution + Debug = Debug + Release = Release + EndGlobalSection + GlobalSection(ProjectConfiguration) = postSolution + {FCE84DBB-04F6-4FF5-B84A-776CDB28DDEE}.Debug.ActiveCfg = Debug|.NET + {FCE84DBB-04F6-4FF5-B84A-776CDB28DDEE}.Debug.Build.0 = Debug|.NET + {FCE84DBB-04F6-4FF5-B84A-776CDB28DDEE}.Release.ActiveCfg = Release|.NET + {FCE84DBB-04F6-4FF5-B84A-776CDB28DDEE}.Release.Build.0 = Release|.NET + {25E53F84-184D-43EA-9713-CDD63021560C}.Debug.ActiveCfg = Debug|.NET + {25E53F84-184D-43EA-9713-CDD63021560C}.Debug.Build.0 = Debug|.NET + {25E53F84-184D-43EA-9713-CDD63021560C}.Release.ActiveCfg = Release|.NET + {25E53F84-184D-43EA-9713-CDD63021560C}.Release.Build.0 = Release|.NET + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Debug.ActiveCfg = Debug|.NET + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Debug.Build.0 = Debug|.NET + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Release.ActiveCfg = Release|.NET + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Release.Build.0 = Release|.NET + {14EF704B-A7B1-4EED-B4B7-DC3AF0B98AB0}.Debug.ActiveCfg = Debug|.NET + {14EF704B-A7B1-4EED-B4B7-DC3AF0B98AB0}.Debug.Build.0 = Debug|.NET + {14EF704B-A7B1-4EED-B4B7-DC3AF0B98AB0}.Release.ActiveCfg = Release|.NET + {14EF704B-A7B1-4EED-B4B7-DC3AF0B98AB0}.Release.Build.0 = Release|.NET + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + EndGlobalSection + GlobalSection(ExtensibilityAddIns) = postSolution + EndGlobalSection +EndGlobal diff --git a/SAF_VS2003/SAF/Test.SAF.Authentication/Test.SAF.Authentication.sln.old b/SAF_VS2003/SAF/Test.SAF.Authentication/Test.SAF.Authentication.sln.old new file mode 100644 index 0000000..13443f9 --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.Authentication/Test.SAF.Authentication.sln.old @@ -0,0 +1,39 @@ +Microsoft Visual Studio Solution File, Format Version 7.00 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SAF.Authentication", "..\SAF.Authentication\SAF.Authentication.csproj", "{FCE84DBB-04F6-4FF5-B84A-776CDB28DDEE}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SAF.Utility", "..\SAF.Utility\SAF.Utility.csproj", "{25E53F84-184D-43EA-9713-CDD63021560C}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SAF.Configuration", "..\SAF.Configuration\SAF.Configuration.csproj", "{CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestConsole", "TestConsole\TestConsole.csproj", "{14EF704B-A7B1-4EED-B4B7-DC3AF0B98AB0}" +EndProject +Global + GlobalSection(SolutionConfiguration) = preSolution + ConfigName.0 = Debug + ConfigName.1 = Release + EndGlobalSection + GlobalSection(ProjectDependencies) = postSolution + EndGlobalSection + GlobalSection(ProjectConfiguration) = postSolution + {FCE84DBB-04F6-4FF5-B84A-776CDB28DDEE}.Debug.ActiveCfg = Debug|.NET + {FCE84DBB-04F6-4FF5-B84A-776CDB28DDEE}.Debug.Build.0 = Debug|.NET + {FCE84DBB-04F6-4FF5-B84A-776CDB28DDEE}.Release.ActiveCfg = Release|.NET + {FCE84DBB-04F6-4FF5-B84A-776CDB28DDEE}.Release.Build.0 = Release|.NET + {25E53F84-184D-43EA-9713-CDD63021560C}.Debug.ActiveCfg = Debug|.NET + {25E53F84-184D-43EA-9713-CDD63021560C}.Debug.Build.0 = Debug|.NET + {25E53F84-184D-43EA-9713-CDD63021560C}.Release.ActiveCfg = Release|.NET + {25E53F84-184D-43EA-9713-CDD63021560C}.Release.Build.0 = Release|.NET + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Debug.ActiveCfg = Debug|.NET + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Debug.Build.0 = Debug|.NET + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Release.ActiveCfg = Release|.NET + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Release.Build.0 = Release|.NET + {14EF704B-A7B1-4EED-B4B7-DC3AF0B98AB0}.Debug.ActiveCfg = Debug|.NET + {14EF704B-A7B1-4EED-B4B7-DC3AF0B98AB0}.Debug.Build.0 = Debug|.NET + {14EF704B-A7B1-4EED-B4B7-DC3AF0B98AB0}.Release.ActiveCfg = Release|.NET + {14EF704B-A7B1-4EED-B4B7-DC3AF0B98AB0}.Release.Build.0 = Release|.NET + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + EndGlobalSection + GlobalSection(ExtensibilityAddIns) = postSolution + EndGlobalSection +EndGlobal diff --git a/SAF_VS2003/SAF/Test.SAF.Authentication/Test.SAF.Authentication.suo b/SAF_VS2003/SAF/Test.SAF.Authentication/Test.SAF.Authentication.suo new file mode 100644 index 0000000000000000000000000000000000000000..bc4dfd24b1683b4078d1213426be439f68d51f6a GIT binary patch literal 15360 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 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Authentication/TestConsole/AssemblyInfo.cs b/SAF_VS2003/SAF/Test.SAF.Authentication/TestConsole/AssemblyInfo.cs new file mode 100644 index 0000000..9f89a32 --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.Authentication/TestConsole/AssemblyInfo.cs @@ -0,0 +1,58 @@ +using System.Reflection; +using System.Runtime.CompilerServices; + +// +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +// +[assembly: AssemblyTitle("")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("")] +[assembly: AssemblyCopyright("")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: + +[assembly: AssemblyVersion("1.0.*")] + +// +// In order to sign your assembly you must specify a key to use. Refer to the +// Microsoft .NET Framework documentation for more information on assembly signing. +// +// Use the attributes below to control which key is used for signing. +// +// Notes: +// (*) If no key is specified, the assembly is not signed. +// (*) KeyName refers to a key that has been installed in the Crypto Service +// Provider (CSP) on your machine. KeyFile refers to a file which contains +// a key. +// (*) If the KeyFile and the KeyName values are both specified, the +// following processing occurs: +// (1) If the KeyName can be found in the CSP, that key is used. +// (2) If the KeyName does not exist and the KeyFile does exist, the key +// in the KeyFile is installed into the CSP and used. +// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. +// When specifying the KeyFile, the location of the KeyFile should be +// relative to the project output directory which is +// %Project Directory%\obj\. For example, if your KeyFile is +// located in the project directory, you would specify the AssemblyKeyFile +// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] +// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework +// documentation for more information on this. +// +[assembly: AssemblyDelaySign(false)] +[assembly: AssemblyKeyFile("")] +[assembly: AssemblyKeyName("")] diff --git a/SAF_VS2003/SAF/Test.SAF.Authentication/TestConsole/Class1.cs b/SAF_VS2003/SAF/Test.SAF.Authentication/TestConsole/Class1.cs new file mode 100644 index 0000000..d28103a --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.Authentication/TestConsole/Class1.cs @@ -0,0 +1,53 @@ +using System; +using SAF.Authentication; +using System.Threading; +using System.Xml.Serialization; +using System.IO; + + +namespace TestConsole +{ + /// + /// Summary description for Class1. + /// + class Class1 + { + /// + /// The memo show how to use SAF.Authentication service + /// to "log on" once and have access to many application without + /// relogging again. + /// + [STAThread] + static void Main(string[] args) + { + //Note: modify the user login information to match with that of + //you computer. + + //create an SAFIdentity type object, modify the parameters to fit your computer's security enviroment + ADIdentity adIdentity = new ADIdentity("myuser","mypassword","mylocalcomputer","Application1"); + SAFPrincipal sp = new SAFPrincipal(adIdentity); + //attach the SAFPrincipal to the thread + Thread.CurrentPrincipal = sp; + + //refer to the configuraiton file for more information how how the + //users and applications are mapped + //check if the current principal is member of Administrators group + bool result1 = sp.IsInRole("Administrators"); + string user1 = sp.Identity.Name; + + //switch to another application, then check what the original caller means to them membership-wise. + sp.SetApplication("Application2"); + bool result2 = sp.IsInRole("Administrators"); + string user2 = sp.Identity.Name; + + //switch to another application, then check what the original caller means to them membership-wise. + sp.SetApplication("Application1"); + bool result3 = sp.IsInRole("Administrators"); + string user3 = sp.Identity.Name; + + + + Console.ReadLine(); + } + } +} diff --git a/SAF_VS2003/SAF/Test.SAF.Authentication/TestConsole/TestConsole.csproj b/SAF_VS2003/SAF/Test.SAF.Authentication/TestConsole/TestConsole.csproj new file mode 100644 index 0000000..63c7221 --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.Authentication/TestConsole/TestConsole.csproj @@ -0,0 +1,113 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SAF_VS2003/SAF/Test.SAF.Authentication/TestConsole/TestConsole.csproj.user b/SAF_VS2003/SAF/Test.SAF.Authentication/TestConsole/TestConsole.csproj.user new file mode 100644 index 0000000..e4263fd --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.Authentication/TestConsole/TestConsole.csproj.user @@ -0,0 +1,48 @@ + + + + + + + + + + + + diff --git a/SAF_VS2003/SAF/Test.SAF.Authentication/TestConsole/app.config b/SAF_VS2003/SAF/Test.SAF.Authentication/TestConsole/app.config new file mode 100644 index 0000000..7dc8fc5 --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.Authentication/TestConsole/app.config @@ -0,0 +1,26 @@ + + +
+
+ + + + + + + WinNT://mylocalcomputer,computer + + + WinNT://mylocalcomputer,computer + + + + + + + + + + + + \ No newline at end of file diff --git a/SAF_VS2003/SAF/Test.SAF.Authentication/TestConsole/bin/Debug/SAF.Authentication.dll b/SAF_VS2003/SAF/Test.SAF.Authentication/TestConsole/bin/Debug/SAF.Authentication.dll new file mode 100644 index 0000000000000000000000000000000000000000..8a7dc4f5e3c04ddab9a29c9733b9a48809135fa5 GIT binary patch literal 20480 zcmeHOYm6J!6+ZLuW1XxMdm$lV1KupqZ4%6eq)7^>UGI7q+^~6h6OuO3X4anU4zWGX z%s5~|XizEQRRk4kRTWeMLeR&LM5S#&v;_(ErKUhtR8^uCm1tBb68wOowov+=Gxpm1 zAX58-Kb>pcGxwfz?z!iF_c1ePc1J&dA8ACSBY*fI(J5Rx4G29uIRX>dfr8Ho;{qEMsW-3FV$rz~ zcJo{sAUeiC%uf4>7J_$AFH!ew+1ctTqG+2uiuyHe^|WW+=%N0*1PEl!@t`!FQbhaH zj_VY_5#I(-;IZ^0x1|AipLWcW4Mp~q_9L_20CHOzAR26|2E_n@0D%C30D%C30D%C3 z0D%C30D%C30D=D_1WxdKH4?v@s>tWz#e9D!k;2UXA$9eubZ(=a+7~B^soGHuFXF0x z6gKr$kahJd6q%v3N_Y#vgHA#{!kV$w6mIch0(^Kl%~z-2uh9bwRyg$d(xbJjh2uL!%M!JH%FF z+$?rhqr*PD<;T1(3@;Wwl0;dv;a=DVC$>P1IG=@%eGV!%u!|jqLk!gU{Te+4n|P;B zxJw|2sYh7kF6Cws`#fBHAM9l)ItE)=j?%)Ya}ebvU%_A%`+RUZJ3Oc;HbNM&uE^?C zB4V%LqMp#*3%C#pCqnjxDA_5HOCayT_0r$}>D)x51`A48G!b1BNkr|H;J*^q>|R{E z!mBBPS%MsRsWeKL-ZVY^;QFbnKSVhcF>v6_*vt>g0^p3OkFG{E8&~upAYnzujv|(# zt3IO-T}hw3);N3uEzAXGMAvN0XRI;3(`(9~E4JKP53O~=mYaNy9N5D|BtF7JcySq>#~!ZULXE`?(H8uw&|W6hj_AA?9FFJ z#`AW~DVReDu1R%Q{__6*bzJ0}&eXgqv*K9=!?WzlUVGyDy;*ajHaU+lT`f+)EDh#A zH>fmD0gfphUYlN#HMgv40wC>r|kD(m<#0*|mtd4I}YXB+Gbup@vd zdmURr>VQ&oxD8xEiZ#3s(^^^u-VWLXdb`lSE3YBGxJYH%Cv-^YUZFLi_X+*3(C3Bz zQRw?ZmucK~NbA>P^mXlSElw|M&uU4E=dua*?G;2ptiz2KU71{kF({bvs=0j2o10$WjBjbOX zI#K?Wlr3c=v>b(T@yib>+faTAoNX!Y@k{5u04oZ4Qo9YcCBXI$sofrZnUxL|$EJv@eN$qDH%cb_duL+x%LDt_xNM|~3QLe;Du94d9kPV>r zpf6MIRz@(c;!4)^Wifh2YG*{YfL`%yVr3z{<7-BrLw^ftA@&X0(P?E&){H{eVcDp( z4^*LwP~L5rB90VL7d(SeHDvOA;0`sNQFl_FbyI1&zCoMxyXZLW*YBlo(@~-K zVkMmv&8I-e=qZYYzK4^Laet1MhE9Uh9Xdt7q%EPJ(o3{A^gK8(&@Vt)=Oj&qPJ>?x zT|j@JTSH60xid6^UcMH3kCqW5f1FN+bmcg`2+p7Btx$*ZIw|2rN*cRvJ!qHE^M$Sx zdZo}Ip__%~g?>S3LFhrcLK(+uEC9a>xpV_L32%N>Ds(qi%51&%J?v}UO7G62 zH;VN&v+bkwlJKO}Rik#XRx&?Ba}V%zu~ee6TdzQTRI&r;O@EWyr-YnD{ z%d4li;Y2Q2Rii|?T#@eqUY#wrmuKA`D3hI*=331&*;W|_S{0*OEj8{eTa2Pwb1488@`Cdex-ac4ym^wr!r_Mkwv9CMvFJ zIEAV0HPfk!qb(5JTxEw{GHIFvY#m_P)@2J0*Eq1#HT|&yCn@L6c3sBbXUoi`cbErC zm^wH_8P_$-6Q%lQv(ElzJls$xY92<{5{y`-c?4OrWYqK4WMyufU8dv0_*}tIt>o35 zd5n!YM$s%A&cS)w*wwmYO-^}pMcW*#*up%5A-h~PD)qT7hV04#YqI9ZW64}`)^rPw zRb^!63dbz39S46Gq_dVWS+QL_>bNA2IFrUiyV|&{#_`!}_OMZ^nN-8PSw*TEu6u*+ z6sc&J4XYv>aHnULWa~8cRkOa!C|O0rGi5$8_0vnF;m?c_(u^7wg(pu-SDT(Mke+7f z%xp1gRE$Y1t(mKMW`p@;%|l^#xkSiY@RUgC6!Uc$tKXSnAZvIA)a|;hFm$lrg?MidMXz~nrSOqS*SQ@a?*t~L_v@Iha(8gKI2g``p-=wQT*XcdFsI8dgIoRf)&76e-AjRrQpjs9GN?eWXTG zI>b;2Cp+{MB|AcpCZo{7`*k1c5Oi{jI2%$`EuzGc)o@DVc6vlf4nt*_3mrNs-SOxT zH}zch=F_?k_I6lH?u>^cYH~EW6O2*hozWAY9sgqD<=7S6p%G50$$jxSF5U4J-ORG! zB?^kdBpOddI+A;m`;z;*yOaCWq?Ihgh=t78J;?jia5ubzJAOyo(JUShk&-+V$74lz z^3aOz#gQmn*dC83qg-9lt%W%!qsWIs{4habJjP3b9&W^4nEMkhr?@mXHRCfa$@q}% zWJ{${KAPkqz%=E7fHgk67p!v;;&EgXXkVHtalCa?g4zelqffIxV#>87yh<>9CR38-}3kdyp^_~o&z00 znbVK;xBl%%!4+Dgp24R(|B5f-k~ko)Hp3ugmQfLVF z$`WPa7z{^BQpgvz$*R(S9i#Q5G2AultP!22=UI5~A|}IrRA>0fx>w;Fg);5iE{V`^ z6sS3twUmZWX?%g&NE`4=)2Hy;fR;qtXertiX!H+jmyavJobqe*Ehq78rT z#hi-Y*TUAMSYiaKh#j%#lZZy~|1+eJ{qeQ*{Fx}CT^a2-9_7cCSa-MhxV2$}XM%lf zV#76#WAXoJ{CB?k^RNweZH%BMF|XP4Fd*2@)R~R&+3?Lu`wT|Ik+U*ZM+s=8urfK0 z)|#cW*}%|(6d({F5FijB5FijB5FijB5FijB5FqgJAkgpsP3?&0Ra)UNckaRds}{0M4(qZEJgR;>^-y zX3@-LEHlw9Ee{2cMFmVgUy0A?ROBQ8`OI)%oZkdY{U0h@dlYPGD$Gz{p+fQ!NTpc+gAnw~SkEHE2f0_K3Z zU>>*>%mkaU1-KH_f`#BJPzM%)#b7!(*Qr$Ff3ElAL~VaA{jaqg*8jR!`?C2& zZF9Na=^iN6`q$hTFO9VaTtqb^;5=|4DDMGuLW!wV<6q)xm9zVtdf*AlnF=ldT4y4y zIoV*c%Z>usP_mt5kHvv(vZeTflt$#&r@brxPNW_v)%t%3Lw*GfUj-k}KCqcI*8-B6 zd8j$3ec@`L^MQ1}&H}Ri!+U||pw0!d;Xmz}U=exfT%a?E&ILM$Xs(|NRI2fh_3Rvu z_0-4qCht!4Cwt?uWbZ(~f_l4kpWIg;9}eQ{6p}}9aHzLG-a8oUlcewdwTwXw$VGw1 zNs*>PnM%+Dr5b+?j_fs&uC<0Q`)jn~f7MU-YmF;RgDIW>o;0x8vI>)|cvv=;Lsnsa zl7wXmF4GzGK&i%Gw!k3J_+Ajy)pYF}PA2Y^kH%luw+{66CF0Tx!?GuGh1YitCgQ!Z zzTO8D-SXe0WZHU%NIEdIuPZThe{VcN4w`SN_&e_Hb7i%3P*8tQ?_GO`j1EF>ep)U& z%H~0u9m(E4v{bmvu0(wAkTlmeubIfpvVxGrjW$83!!q+rzg9iSmHIWPR~M)bl{F6&5JA43U>{#hzn5zKRlh>( z|J%f$>H2@g$)3sj|EH6U!L!$YocVVZ-j9FRC%q~>LVrF@v&M&5Z;m)XK*!5mV8{@B)ptBn+*nm#kNw{pcY>el8H2Q!bV|>QrkKQ+$!)pO<4aNACmI!MPts{SMF+vmIM>e{~`S;6{ z%U*l=NQKVY;~|Zg#!qd3U4sbedKn1Y|I)s>_J3*SY*}e+$to_qr>n2CWnXdmDlRM= z%OR`rQof1{%SxMP=PNBQS;d8AwF6|!YG;tF;=-~M#RjJ8!S&QV%Y|+gUrk4+O08;sO4o+d44ClBnr+A) z0(zfqo|9J@1Z9+O${@`94Lz@*1icd{JuO>a<*9y;fhWPUKymUD3Zo8^E#~}K=zOcX zsH_`-u2tU6?s^oy6Z{)Qf#f73+fk(ct}|CA{fN$kzJP9Q4WxnV>@XsF@ zAE%qfe*WO?KRr(n`Sqx4bZylOzWuq*e_FJpQyMRKw)6q(VBCFBt%(hV``}{w;N@^1 z;6SrGfz|ibv_C>RrSWoSOCK;i*CKc&Z~a(1 zK>O`1puKk)s?FL1nj}`oSETj_x+7(;Q2!D11beCW?KK(ctX|A*=g?MT=UAS$b5x$y zCArhlFD9Mk^VsJvHGQ+6bawq!q}H$W(!)TsiF7mIEpYXJD_rmQwZWUHcaDBJ_R)>4@pa)$lvO64MXfCXt_1v<#@8nuD5u$H04_ znlY{g>%n%A1o`&*V)nTW&d>39C55Rx%gisTt4e)Nkt{^{Ifp|<>um(9>))dd`$@0) z=H!1!hs!bTH1B|%8}EJi{e!WoF&)Rx@ZQsPvHEHdsH=q} z@L|R1*0IiF%6kEj-rNoBSXHFPSo_F!AVSXQP3cGM{-73q3H&O!&QOcs8gDRC8GI#( z1Px#XxCYG4SnK}$p*8jx4LtzD^JA>@!C330y#7nS{-0v3L>hBX44bBinXB3BUv|W7 zCx~20$JgsYubY}x03^NZ2~}LBx|*nvZaP5NDpzqIU&^`X>*n{98E#*b&h>;EuF|?Q zb(4+`8O+{Bl)lzpH;wd4>*Y&XSHDgu!s(^4&x5{Q|H#oU^nTTnaJ%yCle0QPhRjZ#4QpdyKRd5Xa8OXjp0YuVCg4VmB^&!Zf6lAvvYNw#Q zi?I#D@A>FGE!9`#&t0m6_H~8(dgxkp@#itsM}AF(t4?d(wd%DI$gbE7M3PaSB8Dqi zZ?4kkF}~3@K3Sd1)NeYMRhn~F4f0Ek{h<6*rt(pKUf(k=sk0V!Hg<}5C4S+{sJ&08 zb|{_K#o=_c%bb}kuMKKB0s3@mbG~#s+iBieo|#T{RXW)@qHuXS3#$I&Qz>g9mXt3~ zeVMO3`q-3b`6cwloK!mXyVChJ6fTeP7*RbeU&1&p4L;&tVTbI{n=yQm>!aWuZ~|!m zS_N(agWwVH6L18)4L$-3*wE7CTbmB?SBMs*vEuV29yu+1(`g|k4Uqji57YsTvF7q- zupR6NPl4ybC^!n<0`Gtiz)7I9tZd*~umZ?_X#?AUd>=_5pIIb`u8|+UkwRt$i_Ko9 zwKK&TTXTY|Lt$1n%H#>lR^*VaaQQ|X)3OK1H(OTk=gptm@F5XFAA|E>IRArvMi&1I zVY+|L-EVRCk2=2B$^XsqUpW39$G_+Ear}2KywlykEwaB}}~_m?yO2nz0V z_kVEmJDl84UHDXYFXx=(f9?3wF5K$7Ao!O{FBxH>i?2}U7oc$bNNUw*CZNbPW!z9! z?)+!?1bO039VMf>7NUIVeZsu)IWo;%RSA~Y|72PJ^FunPGV2AOunuv`4KBPtUpg=Zll?e#qq%PB#UMK<|>MWQ~ii^gN~-h8Eqm6Jo~Ln+gWexCj2}B2!*kHbh|dVtb8eR|J_z_9MDM&s z=CvWTY1W5f^`T>H&=OtK(b(3~Ze$CWb8&DtnU5g(08lxPY`&>bIW29er>(13HZ?VO zw7a!kxSZ+15!!Q*{QF#cJ~)4C;c`-66a`Id+uB;LTZIyW3YT+H@HXWfLr&wM_6)vW zus!r!x}e79HEUP5Hg%|+Ykyh)q0)=|`P|-F=h-vQJhV~IF1LRDc*D<{-);YS=Lau5 z*Zf$g%5Au%xBs5b{+@xLp`QoL!$HIFP`u&pM2znz_w)_K@38?ry?u${2Cr03|3d(U zK4CIBj+H^ymt<#}CgbbCP@?W4zIi;uHWZU}{?-+lTSmL5GPV~1&4Isc;0MyV?LvEL z!Zk0vuf+u$rZfwH->>u{e_}CN z6nb1)OnzaVXTC-C-?M6b%)}NKX`{0=Ep)ACo96F9*1f^nCwmEOeMFr?FioQ_rCD7X@6ooG$OfpmKK?|*SyrU}{uwbc7X z(8k86J(gpK|bRZ@K5vizcknMjHv-=&MgNkfSy4~FUdBY4OBJF zQQ0lifovL`Rb;#9TrwBT13I7Zj7iUzjO`+yZ?3-uyohk=ed&DZezi-w|7zgv2refz TMJILZ%8e`cK)DAB^}zoDQx|qx literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Authentication/TestConsole/bin/Debug/SAF.Configuration.dll b/SAF_VS2003/SAF/Test.SAF.Authentication/TestConsole/bin/Debug/SAF.Configuration.dll new file mode 100644 index 0000000000000000000000000000000000000000..038afda542d290d081c167f577897c4c480c3684 GIT binary patch literal 24576 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 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Authentication/TestConsole/bin/Debug/SAF.Configuration.pdb b/SAF_VS2003/SAF/Test.SAF.Authentication/TestConsole/bin/Debug/SAF.Configuration.pdb new file mode 100644 index 0000000000000000000000000000000000000000..ff2b21f6a1a421faca45c9a229c8053afec3acb4 GIT binary patch literal 56832 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 WT|m<5LNxspdf-AV_;i^a2mU|IoXXVz literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Authentication/TestConsole/bin/Debug/SAF.Utility.dll b/SAF_VS2003/SAF/Test.SAF.Authentication/TestConsole/bin/Debug/SAF.Utility.dll new file mode 100644 index 0000000000000000000000000000000000000000..2f7665fad1be33b326afe3c5a4b25f15306d4945 GIT binary patch literal 16384 zcmeHN-)|g89slm``Fyr>u6;J`g{JD71mvdW@UNz%6u67ePOf(Bi|_1)CaS%6w>fXU zw|m{)vwHy|g9>dQKvaTAke8Icz(YlaDmAL;KY$bjg7&Er?L!d~5+D#SK_YzSyLZkx zw$cg-6^WVCeD?dD`F>}<^O@P5owZLt`90EzD1vMt^wY zTbXum?@|9qpAsb+K#3lfI!9Y_n)N|0N4-JNuuDArLQgMO+*PX*?)0ra33fI5z`6*n|aI=W4HzE_6E zv85ph8y&eLr4fC~Gi?`!B34>M7ItIE9Vtz8qC=IUWI!??8ITM}1|$QL0m*=5Kr$d1 zkPQ4EF_0JMY9w(sRgvGtIX8=gt0D^jgETZ2rE~Cu|KKH@L3?|L`?Rh|^6mtUqAYqK z_Sr$rgH#_KM6I6yTx7%e@K7Y0OlYGxg-0Js^!P)l8j1`?++hfP5B7QY!7Fq)N<(8x zc-BQ<>Q`~hkGP+J*-_E|6w2`Rpw)k8?|t3-^d9A&4#eUQQV;u&!oT~Y`@=`2e)x!_ z4u4$)qmJG!q6y2|-!=rltH@s)LB{Bp3faQjKfdv&V{iZF#LsIly;;6%>mT=^KKtnT zLS}Zg;5NLnIgJk{tgaL$#>OUvC~|5!uxu-6o_9-6pU;}5MzymvRj-tA*e^VOLTSyU z_%5(Ho*GY0O-@WeCh8&^m;~F0FA+V5>$^fO1fJzoePOW%64JOHUM|p8$l{a2;gid` zEUvFX|Gv;q*e<%_gjrRdxKADK5!wx9QYjd!QA)VbHeJ>) z(><_iYgg%0Jkqf4Rr(CHye?|LP2I`_ysx#ie&smD>DMjoGJO%+z({EM04xV68*0g8 zu*7YGUj7WORr)7TqbQ<|&=9bT?$=a|=W~z|FHohkK#exIq`@VZxa9edR5C)xlo@(} zaUA$K9cMYim}5M{_!UNj(PDgtvB~%i;3B=q@=L(u^h5fAwoEV6%i3A`DVHAvK1B!V zms*(y=^gDj^{{0Oql;rD#VCP%0CEcJ=y~7}X9xw}{_b?6`Nflq3zHM8 zd|k~g6laz))5YA%%uY>yX>lc&ompDV&dg?(=Zibd(}(+VurjwqGKlc8+Y4V#{@oQk{U?`m|~b@-d6)!9?K zu&`wXWpE6)me_8hVmbkaODl$LRnRp@l`01aCnP4dWL~hrjEFnq`(~|VH|Naef>ARw z0UlPRMqqYU%v$z76=Gn5z4AZT}Zt^4#?|*lbVsBhL zzjAQuy%*JJEP_Wlo^wdO6jl5C`(v>Iv02BuNmG+TjwX7dx~8B?(@E*pwL~0pL{}6B zwM$nORaK+OE)xEtA{o&s(bLo2l}z-g$wXX@s%R!2>y9MVL_86XbgN0VOFYXciX9HZ zsn$D;D0)iBx{&s!_Io7WaHd@k>*TbUcYem1Ca(?QbMw>i$D5B#k^#wpWI!_Tzr}z! z-{4Frjwrj5IPLJCllPPhGx6=TOa&Asvgj_u*~%Um1ofMO@?Oj#%jS~c*#KHJ)HbJ&3|V8<2d2=ALk)EX%D zu_GH4z)tMaVR|hRpiu=e1+cPEUfrjqJll-n&*1+O{jO^GZfmM;+Pg&Z3y;7OzklWO|VLsojb=C za-ByzF5+!~!=PhiVP9G1Z@10uEPfb=r?`y_Mj+neYFGs}7|^i-chAO$wSytaBpHwl zNCqSWk^#wpWI!??8ITM}20lIp^zeVi>yLhXA;_L31CjyBfMh^2AQ_MhNCqSWk^#wp NWI!??8Tjuq@NXen+adq} literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Authentication/TestConsole/bin/Debug/SAF.Utility.pdb b/SAF_VS2003/SAF/Test.SAF.Authentication/TestConsole/bin/Debug/SAF.Utility.pdb new file mode 100644 index 0000000000000000000000000000000000000000..927ffef48da7127c275580128436378b3a80f07f GIT binary patch literal 13824 zcmeHNZERCj7(U&~=mrzYr$WR95&4*HH*_0B9oRuO9Re0GBFR?TyK!CDyR;pHh)EL( z5yKBmFi{f|m?RRz4>bHRL?R)?z%M@ti6Ih=Ka55r0cS#tg3ojAIqhY#u`+Nl?wdV* z&-cgszUMt3cPq_U%1T>pnTl{Qyl`Q~%E*d}+CV5&UN)m4B0xp*Ps~K{TgE{%Z07!s z0txK9^!-(r?p+D^$}2A4yR&y^-cwrTsiPm8r~phqJ3j9Hog4gZXZ*(&2yxlhbZj6&3}+?HL!3ET<#r|k@613pa23%E8=xNe71<9hy| z`f&Px#@SYXK9u&|GIxgrzEs21y#J_o!yqb=*ay%K`ma~|Vft&mUg^IFTC?=m^xgFB zE{&`NX8suRWHE%^y1u!8mz?x)?=6HpC`@0WIqNb^`(WGu`1U6o5q=1m1u)M5T)HzP zKph>zP=5IE{Or@8pY%*Ga9Gqm_h;(0Ow}z!|7q0eZ!1qCjkdx(*H$2e+eq}+Uje-U z?}2)cZ$&r@aP87h>$5riI_ps9Byh<%V;)vGSDY{d=QNz3|3bttrG5VMI(i)%^CYB5%W@wIG8%W4DLqQ33Z;z+bQS}?7Sy9Pa$ zOGA+W*KI&7;B$(|QhcD7Z6<$_&nFovSrO?mGqKHhpDFgU-gcDVAWPZ#Wnzv$vMrr4 zI)#{>3kP24PG-zbBhZx07%8hOVx+d1F#~FvlrIx8V%;hD8~702MnItZulHd!Fr~FYa&+P0nQfVt0&6rj)Y+-0yGpsWU zW!0G`S2kg_w;S87{= zfncsh7(G#~d352>1UsPE9h4kR|C4)ae^nGm`V6-EazdJ$gkrGACryA{_{!$e{K|o1*?; z6FGZu+7xYADP4-Uk@~q1`Mu6xd>x_XvDe*fkaW3B>sgpcZ^S_+s!N z_!97HaP02cr@)^EUk<($d?onr7p`Pifj1z&0el6x7v}*lYIyObz>AeRMm!Hb4+sEj z5U&T&5@?KAj&rJ4j-3nH_M@Jh4=zI592NvY4q5tI^qcjHid?+}(kL6wS^K)Nh_?bH z$V|=|JpPFJ#fJg*zxJv_p3A#v2P^Hd#d?79!0 z?>!=a=+}MN>8iY||D10Ak3bnZIS%v!TpIfQm%Dlv;2Pz*0!vZw+~)kow<%%8Iz%v? ziUr%ugpm#o`hG-9Vhh|QaH^BUrOY&rg1wMfZZ^OZhD*0w0uu-6K%WhCk&wIowJ1gn zr;hnQAk#6UGO@32oOs>Gy?QgS2dD&E0ZqI^@C=C4|8dFiWB+$Z-goG@onI<;U}>L1 zWW4nMLi{|{WEYYgZ+W=~KlOD%)P-x7)mAsq6^X}=1}@Tbka$PyPt0R_u3<+3=CuR* zZsy36-iY_8dCo)?X1x=Dz5_Xn6yZixE(hev`ApuseV8Lj`%!YxsvYG>`^O$e*uhP8YKV# literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Authentication/TestConsole/bin/Debug/TestConsole.exe b/SAF_VS2003/SAF/Test.SAF.Authentication/TestConsole/bin/Debug/TestConsole.exe new file mode 100644 index 0000000000000000000000000000000000000000..4b2853d8e0a11fc3e3baf1323635439057da5105 GIT binary patch literal 16384 zcmeHNU2Ggz6+Saw@48OB_$Mh%ap|N^!HJ^5PSTd2Qg*ZJ*xNX^>vc>4BYS@)>q%y3 zmYLZmu0&Zx3$27u5j=qUSP6lIsv;p#Ayu+arSd@ghE#=@JXL)FAw(ad77@O4X16=b zx}gCf1l+s6-#zEvbMKt{-JiX8yyw37EDaD*0`bNTqL+|z$OzsXS}0E6{mV4{{I=H) zzoad`c6e>u4vdEH)%;T3sFYmS3yrd6_)XWaT_e9-H0oZ}GDk*+kF=X!nIl@%259=# zr?Q==U8A(NPfHSwBFBhwm!{ithIN2}1m)~EhfYc@C|nN#{X#Yr(L3pT#bWdJ$B91A zQikZ!A<626Eu#ILbC_tdx8&xUK@@Lp2>L>-h8bE{Lg;I3gfj85?Kdi;}G|!ya^=U0l-Mg|0?Gn>@}H4#B3%8Q_^amQ8I3nn!X)veC*i7 zj7F(;cl7BGBk!1Kop%r1|I3Jz;9wG-trqje6Y1aGclk$S3*UL-`ClJ@XLe~A<@rx< z6tibGi(b>OSUJ4V5OuwHVrJ$fiyLcJ5SkFoY%|=p+|aI+LfdmCKj*oD=U5wF`Qk?2 zDmQEKT(eOvA<6QzuWH5N`*`K{^d*r=GxgA^j=K#n89iTEHfm zL82cZojPBnHz4z?fT{WOg*?)?pkHDAwBzAX5-?2K{6U>=W9=R7Bu@n75m=Ks0abJ` zChr%}gy@_P65F08=@?C6!jxzk__*Nr1YZz*Rq&eNyMniCZ21Yn1;Lu&lY%d3&*2@= zue2#V;SbtXZJ4eL4(eBte~&(%gP* z3~-iyNK5(ykSqFUfsg5@=_m9JeID|+^#k-XdR{+^G2mJT1$2Z=`V3tJP6&QP@TA~A z!JOb(!J^=o1S^7;qeLqjvp18+qhSLtQO?s?aU3+dvz-!kt*%CN5zs1p2Vhg#iDvp@qEWFQ*kEKFF!;QIPZMjgq_5UjqzYuxm|UHirJ)@`( z5?UHz5c%T;HXeTjHaZMx{5-0q2k<6-e`;tvJ3gnU`7@9l&mzw0NnKB-2W1r}u_>}J z+5XPw<^B-M221^+b2jKL+01$V+!ad}v#fo~GOG@MC*eN`_mYtjNr7TOF`yVw3@8Q^ z1OF`y4DkQV2}gof8Y$ihwD|70g%n9F=yGSmJ+j62xbL@Og%EMd_!`lV_sHk-$L=2a zT>lM*p1{_)v-ae%66IfipZp;d8@TMg)xPPl+0Z=t6;+d3Gw9qsvHEvpVZ)tihoON} zkk+Y4o4`3*g;cdYvhkc$MrYm%?YQUlhWvS39-jYE?h$o)^Td| z(T70N3PP>EeXx$oVole~JOUnAk?&H2B1)Pdm^W+k zWL!1nWF7#SNfYr3BF|&)=OW~q)MUE``oo^qXdAx9`_r|Hn6IK<9rb*=BiP$ z)o{5dG!prq&`97R-SD>3yJSEDA5X`_ll}ZHcEZx@uNT5b;y3Z|3SNrFL*|x8v&S7M zyO?gRe_tFx`>FUdd7krkoq^by=ev;i4lSPCJh7t$2=SKYd8$2K+pNtmi!;~%>2x6) zzWK#ySms}e8s3GMJ%N{6t0(6JD4Hx;S*y&BPKLodb3(phbs8OwH2!{#eT9C2hLwq8 zKrx^gPz)#r6a)Ve28`%`x-0zeKot}NiUGxdVn8vV7*Gr-1{4E|0mXn~Krx^g_@89p EZ-A9OqW}N^ literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Authentication/TestConsole/bin/Debug/TestConsole.exe.config b/SAF_VS2003/SAF/Test.SAF.Authentication/TestConsole/bin/Debug/TestConsole.exe.config new file mode 100644 index 0000000..7dc8fc5 --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.Authentication/TestConsole/bin/Debug/TestConsole.exe.config @@ -0,0 +1,26 @@ + + +
+
+ + + + + + + WinNT://mylocalcomputer,computer + + + WinNT://mylocalcomputer,computer + + + + + + + + + + + + \ No newline at end of file diff --git a/SAF_VS2003/SAF/Test.SAF.Authentication/TestConsole/bin/Debug/TestConsole.pdb b/SAF_VS2003/SAF/Test.SAF.Authentication/TestConsole/bin/Debug/TestConsole.pdb new file mode 100644 index 0000000000000000000000000000000000000000..0c45b95f0e9c8b5ce32a3d14ed1f3a401b51f4bf GIT binary patch literal 13824 zcmeHNPiz!b7=K$9n6|XAsHGOtELs(4nf+5Jq?%N+l(aytW*afGNwb}u+6~(svojTI zh;Cv+Vq&xh5@XavLV_H6;NXc!;LsQko*>49HxC*w5{w5lvGw@yj?#a1IYoHS(k@hL0@eW= zfUQ6+PzS6B>VZu_1JDSB0B*m{z(&BQN2h^u+kZLRD_Bwx@NNI-Y)3J)wrLC-ymvYU>n?_DgX}Pp%##GI;&F`Alot+FH zZpPBuqnIK*d1Ka@LQ(r zZsqQYFO&=<^ia~tfxEH1z@UJ_AA|!@4XQNN4jXZxZW5Y=1ALL>Y?IFPXBfV$Nsb#1agMl?D3zOU3ef_&^9)mx7j$zXXT@Y0 z?=bMZS}L0`^+F6XwxbS!QkmT@F3ZqnNxQhyjtX7cu2Z(-c3nJPCuB7+0};UA;z&!8}RHh>20uk zQ2dFu3gEf{ro+HKpjwIVaxJxy+gqT3O*ja&7x&YChl4#Zh40Y=$MR|IYk>E)0bvJ# zCb3)kJoqrkqFqrEonqw?T|`Awt7w$A#5qJ*N(>IP5BKJ+!sPJFMmBGW_qK{>Jht}j zU(uVvU)*91RQ&l5Bj(eO-;La711dp5J;v%Pi`Nxze=hJGa0TG+0BCbCaS|v3eE|1| z`z_b|9d{&WXs1NPENGF@Y)&^LtGYj6?|dWT&guq83^|m!UyLbZy{7=aA^B7;4LpX9 z_gyN)NB5WioS4F7D8G4DIvyj@-^E@Mv>k@+6r_GAJL zxx-QIJ3!H!*w+>BO2oz9E9z}$J1&@m+qMQbA`P-apyaoBAHi5fa(x*&?4?LU1n)c4W57ryKGJND8y zkVTGX^QZdrqlSp&)8o2nyZbR*-06k#_R6SEo{uaLEr=*?q#1$y z2^LlfHDR4E06U-`#{aJzJ*@|yMxODX{$GK^_xgW#lP<^Ej`4y0Ge%ISj0p-ryD(1B q3An!j+l(~h2qQo5q8ROcdiWaH_V9=BNANY^YrxlluYonFfqwyz<9Aj7 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Authentication/TestConsole/obj/Debug/TestConsole.exe b/SAF_VS2003/SAF/Test.SAF.Authentication/TestConsole/obj/Debug/TestConsole.exe new file mode 100644 index 0000000000000000000000000000000000000000..4b2853d8e0a11fc3e3baf1323635439057da5105 GIT binary patch literal 16384 zcmeHNU2Ggz6+Saw@48OB_$Mh%ap|N^!HJ^5PSTd2Qg*ZJ*xNX^>vc>4BYS@)>q%y3 zmYLZmu0&Zx3$27u5j=qUSP6lIsv;p#Ayu+arSd@ghE#=@JXL)FAw(ad77@O4X16=b zx}gCf1l+s6-#zEvbMKt{-JiX8yyw37EDaD*0`bNTqL+|z$OzsXS}0E6{mV4{{I=H) zzoad`c6e>u4vdEH)%;T3sFYmS3yrd6_)XWaT_e9-H0oZ}GDk*+kF=X!nIl@%259=# zr?Q==U8A(NPfHSwBFBhwm!{ithIN2}1m)~EhfYc@C|nN#{X#Yr(L3pT#bWdJ$B91A zQikZ!A<626Eu#ILbC_tdx8&xUK@@Lp2>L>-h8bE{Lg;I3gfj85?Kdi;}G|!ya^=U0l-Mg|0?Gn>@}H4#B3%8Q_^amQ8I3nn!X)veC*i7 zj7F(;cl7BGBk!1Kop%r1|I3Jz;9wG-trqje6Y1aGclk$S3*UL-`ClJ@XLe~A<@rx< z6tibGi(b>OSUJ4V5OuwHVrJ$fiyLcJ5SkFoY%|=p+|aI+LfdmCKj*oD=U5wF`Qk?2 zDmQEKT(eOvA<6QzuWH5N`*`K{^d*r=GxgA^j=K#n89iTEHfm zL82cZojPBnHz4z?fT{WOg*?)?pkHDAwBzAX5-?2K{6U>=W9=R7Bu@n75m=Ks0abJ` zChr%}gy@_P65F08=@?C6!jxzk__*Nr1YZz*Rq&eNyMniCZ21Yn1;Lu&lY%d3&*2@= zue2#V;SbtXZJ4eL4(eBte~&(%gP* z3~-iyNK5(ykSqFUfsg5@=_m9JeID|+^#k-XdR{+^G2mJT1$2Z=`V3tJP6&QP@TA~A z!JOb(!J^=o1S^7;qeLqjvp18+qhSLtQO?s?aU3+dvz-!kt*%CN5zs1p2Vhg#iDvp@qEWFQ*kEKFF!;QIPZMjgq_5UjqzYuxm|UHirJ)@`( z5?UHz5c%T;HXeTjHaZMx{5-0q2k<6-e`;tvJ3gnU`7@9l&mzw0NnKB-2W1r}u_>}J z+5XPw<^B-M221^+b2jKL+01$V+!ad}v#fo~GOG@MC*eN`_mYtjNr7TOF`yVw3@8Q^ z1OF`y4DkQV2}gof8Y$ihwD|70g%n9F=yGSmJ+j62xbL@Og%EMd_!`lV_sHk-$L=2a zT>lM*p1{_)v-ae%66IfipZp;d8@TMg)xPPl+0Z=t6;+d3Gw9qsvHEvpVZ)tihoON} zkk+Y4o4`3*g;cdYvhkc$MrYm%?YQUlhWvS39-jYE?h$o)^Td| z(T70N3PP>EeXx$oVole~JOUnAk?&H2B1)Pdm^W+k zWL!1nWF7#SNfYr3BF|&)=OW~q)MUE``oo^qXdAx9`_r|Hn6IK<9rb*=BiP$ z)o{5dG!prq&`97R-SD>3yJSEDA5X`_ll}ZHcEZx@uNT5b;y3Z|3SNrFL*|x8v&S7M zyO?gRe_tFx`>FUdd7krkoq^by=ev;i4lSPCJh7t$2=SKYd8$2K+pNtmi!;~%>2x6) zzWK#ySms}e8s3GMJ%N{6t0(6JD4Hx;S*y&BPKLodb3(phbs8OwH2!{#eT9C2hLwq8 zKrx^gPz)#r6a)Ve28`%`x-0zeKot}NiUGxdVn8vV7*Gr-1{4E|0mXn~Krx^g_@89p EZ-A9OqW}N^ literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Authentication/TestConsole/obj/Debug/TestConsole.exe.incr b/SAF_VS2003/SAF/Test.SAF.Authentication/TestConsole/obj/Debug/TestConsole.exe.incr new file mode 100644 index 0000000000000000000000000000000000000000..901da39331b1627895c8e7c0ae5c84d316e302bc GIT binary patch literal 1636 zcmd6nziSjx5XWa@{4Iiw^+P)$izbSACrGlF$e~6^)L5L#-ra7px<6!h&tHYa&OgAv zKm|)HYay3jFqM)*(9*`j-p{qCI-DcX!gCs~xKQ>dnDDIku zU-~A@a^syeUY0zJ;vhF;W2Rh+3KOz3MVaM6VY=#AW+q7eHrCKDN|Og|4N|y=r1@sK zzh6WSB05G8-5*98GA&bbQ!YzgZpfTWiic&pv3F?X?GcTzWt=*)xc;v1T-h_Qo@ePu zOuB@ruSvv7E}0ZaD5bcZPjh!mX0ZE`NFa|n%jE&KM{))am9sJ-`?G%y*=u2cXCR?fF$xE%y*J0V}JBaBv6~DR# zky7;h`&#Yu$5m$(T}Oa)Eno9=z>M6Z#+mfspu?Gm-euLw4^D5Pjmv4~#D=v6hk@nA z9s0R=_o&Dc_LNnb*9t|%OL?#I*Z8UJhuGfI#zW5=?AkZ45jWS}W)@!h_2EY1V+8IB&FgQ+>RRjC!U4Nh-wvy7(z~E)?3&tVAiw`t?YHO2 zg`Fpe{p!fULs9)b@(R&DvxWbC;@rw|zjA~1-IVVntQBODkax^~rAg<7u;{{N0n$NE l`&3!~F?V!y)u|Gh#k6~P^FZ(0T=ZY5*ejgMhxXbF)<1ov8`1y( literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Authentication/TestConsole/obj/Debug/TestConsole.pdb b/SAF_VS2003/SAF/Test.SAF.Authentication/TestConsole/obj/Debug/TestConsole.pdb new file mode 100644 index 0000000000000000000000000000000000000000..0c45b95f0e9c8b5ce32a3d14ed1f3a401b51f4bf GIT binary patch literal 13824 zcmeHNPiz!b7=K$9n6|XAsHGOtELs(4nf+5Jq?%N+l(aytW*afGNwb}u+6~(svojTI zh;Cv+Vq&xh5@XavLV_H6;NXc!;LsQko*>49HxC*w5{w5lvGw@yj?#a1IYoHS(k@hL0@eW= zfUQ6+PzS6B>VZu_1JDSB0B*m{z(&BQN2h^u+kZLRD_Bwx@NNI-Y)3J)wrLC-ymvYU>n?_DgX}Pp%##GI;&F`Alot+FH zZpPBuqnIK*d1Ka@LQ(r zZsqQYFO&=<^ia~tfxEH1z@UJ_AA|!@4XQNN4jXZxZW5Y=1ALL>Y?IFPXBfV$Nsb#1agMl?D3zOU3ef_&^9)mx7j$zXXT@Y0 z?=bMZS}L0`^+F6XwxbS!QkmT@F3ZqnNxQhyjtX7cu2Z(-c3nJPCuB7+0};UA;z&!8}RHh>20uk zQ2dFu3gEf{ro+HKpjwIVaxJxy+gqT3O*ja&7x&YChl4#Zh40Y=$MR|IYk>E)0bvJ# zCb3)kJoqrkqFqrEonqw?T|`Awt7w$A#5qJ*N(>IP5BKJ+!sPJFMmBGW_qK{>Jht}j zU(uVvU)*91RQ&l5Bj(eO-;La711dp5J;v%Pi`Nxze=hJGa0TG+0BCbCaS|v3eE|1| z`z_b|9d{&WXs1NPENGF@Y)&^LtGYj6?|dWT&guq83^|m!UyLbZy{7=aA^B7;4LpX9 z_gyN)NB5WioS4F7D8G4DIvyj@-^E@Mv>k@+6r_GAJL zxx-QIJ3!H!*w+>BO2oz9E9z}$J1&@m+qMQbA`P-apyaoBAHi5fa(x*&?4?LU1n)c4W57ryKGJND8y zkVTGX^QZdrqlSp&)8o2nyZbR*-06k#_R6SEo{uaLEr=*?q#1$y z2^LlfHDR4E06U-`#{aJzJ*@|yMxODX{$GK^_xgW#lP<^Ej`4y0Ge%ISj0p-ryD(1B q3An!j+l(~h2qQo5q8ROcdiWaH_V9=BNANY^YrxlluYonFfqwyz<9Aj7 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Authentication/TestConsole/obj/Debug/TestConsole.projdata b/SAF_VS2003/SAF/Test.SAF.Authentication/TestConsole/obj/Debug/TestConsole.projdata new file mode 100644 index 0000000000000000000000000000000000000000..4b23daa4f7049c11dc99d6834ad29f31030e193d GIT binary patch literal 1672 zcmeH{y-H(I5Xb*l6hts=v4{!_mtdiw@e3OXLQq5t8x;|Bk*HAvF;{Yv6+5x=2?QGp zOG_U?eF96dw6xuN_c!NU6Gc!93k&BkcjnBQuRG_=oOb6KTekaMGh_^iZqRXqH@AHh2mRywQnPsqv$*;5S{iU{a@r5$axq23~ zt9Ab6K(kbSi~oB13%jvy@SICH=H_fa1Gd83?ZG;*vv2sW!21Wv|-eADIVaZJMLki@bm7 zXPxh*zgP5IeMnn05Cp$cS_-mEmxw-}P&;;6dZO$iAf0 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Authorization/Test.SAF.Authorization.sln b/SAF_VS2003/SAF/Test.SAF.Authorization/Test.SAF.Authorization.sln new file mode 100644 index 0000000..71332ec --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.Authorization/Test.SAF.Authorization.sln @@ -0,0 +1,47 @@ +Microsoft Visual Studio Solution File, Format Version 8.00 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestConsole", "TestConsole\TestConsole.csproj", "{6802B353-974F-462A-B1D3-7A515590DF97}" + ProjectSection(ProjectDependencies) = postProject + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206} = {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206} + {C087F526-0CDF-4555-A894-454D813B28B4} = {C087F526-0CDF-4555-A894-454D813B28B4} + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SAF.Configuration", "..\SAF.Configuration\SAF.Configuration.csproj", "{CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SAF.Library.Security", "..\SAF.Library.Security\SAF.Library.Security.csproj", "{C087F526-0CDF-4555-A894-454D813B28B4}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SAF.Authorization", "..\SAF.Authorization\SAF.Authorization.csproj", "{A5018D44-988F-4B34-83D6-0B21FE85B95C}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfiguration) = preSolution + Debug = Debug + Release = Release + EndGlobalSection + GlobalSection(ProjectConfiguration) = postSolution + {6802B353-974F-462A-B1D3-7A515590DF97}.Debug.ActiveCfg = Debug|.NET + {6802B353-974F-462A-B1D3-7A515590DF97}.Debug.Build.0 = Debug|.NET + {6802B353-974F-462A-B1D3-7A515590DF97}.Release.ActiveCfg = Release|.NET + {6802B353-974F-462A-B1D3-7A515590DF97}.Release.Build.0 = Release|.NET + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Debug.ActiveCfg = Debug|.NET + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Debug.Build.0 = Debug|.NET + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Release.ActiveCfg = Release|.NET + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Release.Build.0 = Release|.NET + {C087F526-0CDF-4555-A894-454D813B28B4}.Debug.ActiveCfg = Debug|.NET + {C087F526-0CDF-4555-A894-454D813B28B4}.Debug.Build.0 = Debug|.NET + {C087F526-0CDF-4555-A894-454D813B28B4}.Release.ActiveCfg = Release|.NET + {C087F526-0CDF-4555-A894-454D813B28B4}.Release.Build.0 = Release|.NET + {A5018D44-988F-4B34-83D6-0B21FE85B95C}.Debug.ActiveCfg = Debug|.NET + {A5018D44-988F-4B34-83D6-0B21FE85B95C}.Debug.Build.0 = Debug|.NET + {A5018D44-988F-4B34-83D6-0B21FE85B95C}.Release.ActiveCfg = Release|.NET + {A5018D44-988F-4B34-83D6-0B21FE85B95C}.Release.Build.0 = Release|.NET + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + EndGlobalSection + GlobalSection(ExtensibilityAddIns) = postSolution + EndGlobalSection +EndGlobal diff --git a/SAF_VS2003/SAF/Test.SAF.Authorization/Test.SAF.Authorization.sln.old b/SAF_VS2003/SAF/Test.SAF.Authorization/Test.SAF.Authorization.sln.old new file mode 100644 index 0000000..6d555a9 --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.Authorization/Test.SAF.Authorization.sln.old @@ -0,0 +1,35 @@ +Microsoft Visual Studio Solution File, Format Version 7.00 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestConsole", "TestConsole\TestConsole.csproj", "{6802B353-974F-462A-B1D3-7A515590DF97}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SAF.Configuration", "..\SAF.Configuration\SAF.Configuration.csproj", "{CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SAF.Library.Security", "..\SAF.Library.Security\SAF.Library.Security.csproj", "{C087F526-0CDF-4555-A894-454D813B28B4}" +EndProject +Global + GlobalSection(SolutionConfiguration) = preSolution + ConfigName.0 = Debug + ConfigName.1 = Release + EndGlobalSection + GlobalSection(ProjectDependencies) = postSolution + {6802B353-974F-462A-B1D3-7A515590DF97}.0 = {C087F526-0CDF-4555-A894-454D813B28B4} + {6802B353-974F-462A-B1D3-7A515590DF97}.1 = {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206} + EndGlobalSection + GlobalSection(ProjectConfiguration) = postSolution + {6802B353-974F-462A-B1D3-7A515590DF97}.Debug.ActiveCfg = Debug|.NET + {6802B353-974F-462A-B1D3-7A515590DF97}.Debug.Build.0 = Debug|.NET + {6802B353-974F-462A-B1D3-7A515590DF97}.Release.ActiveCfg = Release|.NET + {6802B353-974F-462A-B1D3-7A515590DF97}.Release.Build.0 = Release|.NET + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Debug.ActiveCfg = Debug|.NET + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Debug.Build.0 = Debug|.NET + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Release.ActiveCfg = Release|.NET + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Release.Build.0 = Release|.NET + {C087F526-0CDF-4555-A894-454D813B28B4}.Debug.ActiveCfg = Debug|.NET + {C087F526-0CDF-4555-A894-454D813B28B4}.Debug.Build.0 = Debug|.NET + {C087F526-0CDF-4555-A894-454D813B28B4}.Release.ActiveCfg = Release|.NET + {C087F526-0CDF-4555-A894-454D813B28B4}.Release.Build.0 = Release|.NET + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + EndGlobalSection + GlobalSection(ExtensibilityAddIns) = postSolution + EndGlobalSection +EndGlobal diff --git a/SAF_VS2003/SAF/Test.SAF.Authorization/Test.SAF.Authorization.suo b/SAF_VS2003/SAF/Test.SAF.Authorization/Test.SAF.Authorization.suo new file mode 100644 index 0000000000000000000000000000000000000000..ff145196aeee7d5c938863a2f69e22095b2981a4 GIT binary patch literal 22528 zcmeI4ZERat8OLwZj&7yz+qyT_d0o4;qs`JL&C9wM5^E~IY@4dVBZ?C_3`}>ZkJmM^IF3;THe5$0rg?oWp);LZp zH-gJEGc%^raky=kMMQ!BG1jFp?^fVCU>P8u-vC?>EC)Uf+ytxuRsySl)c_*ktOeEq zHv%^Ul7;nLZvk#AJgZI+RPLegCSWsgFK{2Q1=tGQ58Ms}z29t`8wCzI8UFH4$Qf|b zT(iy@C|!G5kJMPql9Qm)e*5F!eCX|8w=7YoyG_qwC+g&!lg>UT$u;jB<~PA8Y<({1 zgS2gOT3aNWl39(TO841j$+pT~=V@oi8FV7fL9k|=Nf&z_D)hV0rwZdSy|4VeAN-Pk zOM@$WTv=0UFZVK2aUkW4@_U-GX!g@kBgS3z5(2+)OBZ#m{)VyP9~BI_#v&Uoo*V;Y z14PRcfM_H;@DQMWmGob2(tlkA(*HYv4Ztp-2T=WIxZYW~zl&=KkQi(Ps_Fk{>9Y;k z4zvLe0PVmIU?g#phq*oiJPLdc=mYwJFc1L-fIYxtz~jJP z;0fSKU>`6D><112p9h`-4go`e@Ezv*G;jns3OoaR0f+)4z!w4a6NtaMj&h9wao{8{ z1{?>}mMmO#pW=Q3NCO#Q5_k^C0@9N_Fa=BlrvbeqZ9WT}1I`1_178Nd0=xkHGb|3z zz1+sD%ZJXSV`EdfWJV)%)(oBr9nK}Pp>QUh&t_5@nzODiJ{?WR67kTUsdOx#Nybfe zB$|(oMstbs>YKt-6H}>ZJ~{1e7>Xqm>3ni58S}o8Nlz!T8bf)*jbKPTFr1w5d}-~z z%y=>uZDDMZdC61`%7>hXfi${zit7+Gjl!Fg$V8UA3F@~XZ(HdtDbgEl$V!5KgYNHf zI1{JO*4g@lyl3Cd(2RCaAA%)4YCPc<|zv)lD#llgu&WQX?NYjxFF94TM|8;t0CR$Jro9hT_FP z0L5i_C!s=;5u^jL%U5Z2am(MS6~BBcyZ(6b?{ViGFXN!bS*ck3?&NEnzt-tjMKp?) znGr0cIG#stjTE&ZOH({cq9vDSUCA&sktNd%G!uQO@Gi1^x8@1mF zi>y!B)dRDZk27xRYzUo5vchV9Bj~BtR;~3pV2l}tu-NiGrs$pGNt!r?7Hh5{=&_$w zVVF0c=DlvNdOOe6abCJg7^RabW-pnxD*hT|94RCu=}N9v8_Dlv!K0NY_poc99cQ=eBb~!T>cRT&#PjjmAFW~&uEw8X zEzoKd=Sg0$f7!;2HRlyTt@dvnedUj-$ljV&G3{z!QB#c$pK$4%N3Ugz)lPupVpdw=17-Sd}B|3g6rKldPPsx(>w^sVgFE5~< z)luoeBxBK9D?iM5o|5)9QF>n=pz0ic3{W+oVI1O+Op1xKeSQ=%rHnp72Sh zz3<8X6LbXLQdg_hm@lN8% ztdSOL_Yb(z%jZzx7jVV%L89#F<^u?|F!)#*U=uIn_RjPInYxw6`6N?n00I(c=&lzZO&pLN2y-8%k1WG3o)x`!)vW!>RGj1e#$lZw7aBQ|`Ea2fs&+$_UC^@& zI=8ztHa1w6RN;duvq5f6I!?W~&%jl()$E;Mc=bLWEAwRR}l17$n; zGjiVpS48oCD6Kkaf}~$O66JT$K0vK>p_kuqom^-fR(Z(UGf~#WM1;zfX#arRuN)1V zRxxg+TqBt;6mkZwn)qHn67Ute1<|5+<@IY$g<>dCuUEi)d`1anplXR?!)s@uV%Vy|ARn%3g4-?-IU zT3>o!e6#%STBCzv6VYAQ&A_!rhYO6!KRaBHc3N9n*+g1R_FC$L=zf+Ake>{d((YLw z+Kp0I9kb1;*M?cE=>*!U+?(0uQG{WOB(QPXI$w{vaVu#XGGOaJJiK89T*uQpCI)0bUK?q?BICy>?oF0gRgJzq+f`U3KVg4ZD1+sJ`+<}4SO zXx*G&dg3ROhyU~6J#Rg?;>};JPHeImcj6_xizT{&-@7o%2}K)3jzNpG~I6 z%lqH)cNsX!%w_#*M?vR+;^bw=uxr|pR;)dtM&DA*50ALIHb!r=8&TN~o7|H!EAqOs zvtE$Rujwk+*}G2tj=EZGZD|fahtgNt%eitK-oDypm#66Uqf+>A+7(GS{mHY#(bUP% z!Q^Bjl}sl%^e{1*NpnWQ&0MXw?FX{4UkDRGB94Ndfu8<}8?kmEfZM z_bR$*AF9^;_p|if2B^qBd-GqyFIz4Xty2j>WiI>QS|64cK5FxzdztYVc$J5*r>tlG znzwSmwa))b^tF3>#r4UYztH}d^lyj=asu05jRVZTMdul`r&BBbQ}opyn96u)AfC); zbcBS1JDJgBDiJ!87!B>oWG7rPy`k)BdAWG6Jd#YuGpBOJ?n@sZ9^9votqP}-lcSkv zHXb^J*-_Q9#}es8HtLF$k?oa7R9{+ZeSf!mD(xJU(g{Yhx4+FtS7l++&@@rjQxQ;W z30kdHjq|C>BL<5`I0RY~F9P#l6KzCjz02Se8@9L6?&8|z7ms!@J{4URJ;@Sl>?*pR z2mHSmGzR-d8~c4{kZ|kEB(Tv%iyEg@=c(*Ts#5zKg2UpS9SgVa{ng~%tKghJ@2an3 zm7^?Atuz+-Yw}^`<2HE11^+@%eo>f- zel#Xq#QCeq?F-=hIJxad70a*nj7?TdSJBAJuQ#Zx#;+IY^Htz$fcB-D<&#B$G}>=u z#H+9Vl2?1*ExsD9m_ji_!jUbv_X}myt7kN?b5C#K9H`vl{AkI^R#FNxGaFi6l~V1G zpS-l}xBD(Flj-UFV3RJ+3oVV@P*b|2Z8rU^ly2puxK-%NeT;dS#I$BeeOEbu;9@E| z1H&*zY$ieQxE}Lwxlu(fX2v4nHuIU}~j5f+ahe^I+>dhv?d1fr$bhBNg&AJY9 zK0P=weQYFYD{niSM>tI`ne`2t+qw~s5KQGVB zahS^6L3TO!c&dy5Kx5P#!8BJZ!U=#-{hWP-komp&WCp~)-z)(?Y8^EtY#kDxG9)d zufVJ3dRDs58ec^#nht>4ZGQDACOzamE~H1|;o;^W9=1B)YVy$YkHh?VI0@JMx7im) z6U)}SdxLoBIIlH%=;5KFxZ-ABWe?QEncmI3h2f}2FYgQH>BW}P<3P2>!?i@OHlC_X zl@T%ui-LZi`20sb{4UKil>g(XYa$N2D_9@2PMJfWjX3n|jh&nM59KP4M3nS#0{&%zu>s2PW5QKHoofZstGy{u7$T z#lvR)V=?h?k;Lyhj6m@_qj1rU_Zsz&e!cOY*=6(phkI5pEB9Hrz0%+qz0y(e%5N=P Tp1I5)-4YzTpM{qTvWNPAm`KGo literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Authorization/TestConsole/App.ico b/SAF_VS2003/SAF/Test.SAF.Authorization/TestConsole/App.ico new file mode 100644 index 0000000000000000000000000000000000000000..3a5525fd794f7a7c5c8e6187f470ea3af38cd2b6 GIT binary patch literal 1078 zcmeHHJr05}7=1t!Hp3A*8IHkVf+j?-!eHY14Gtcw1Eb*_9>Bq^zETJ@GKj{_2j4$w zo9}xCh!8{T3=X##Skq>ikMjsvB|y%crWBM2iW(4pI}c%z6%lW!=~4v77#3{z!dmB1 z__&l)-{KUYR+|8|;wB^R|9ET$J@(@=#rd^=)qs85?vAy(PSF5CyNkus435LVkZ$rj zNw|JG-P7^hF<(;#o*Vk}5R#e|^13tBbQkeF?djULtvqyxd3<{9 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Authorization/TestConsole/AssemblyInfo.cs b/SAF_VS2003/SAF/Test.SAF.Authorization/TestConsole/AssemblyInfo.cs new file mode 100644 index 0000000..9f89a32 --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.Authorization/TestConsole/AssemblyInfo.cs @@ -0,0 +1,58 @@ +using System.Reflection; +using System.Runtime.CompilerServices; + +// +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +// +[assembly: AssemblyTitle("")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("")] +[assembly: AssemblyCopyright("")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: + +[assembly: AssemblyVersion("1.0.*")] + +// +// In order to sign your assembly you must specify a key to use. Refer to the +// Microsoft .NET Framework documentation for more information on assembly signing. +// +// Use the attributes below to control which key is used for signing. +// +// Notes: +// (*) If no key is specified, the assembly is not signed. +// (*) KeyName refers to a key that has been installed in the Crypto Service +// Provider (CSP) on your machine. KeyFile refers to a file which contains +// a key. +// (*) If the KeyFile and the KeyName values are both specified, the +// following processing occurs: +// (1) If the KeyName can be found in the CSP, that key is used. +// (2) If the KeyName does not exist and the KeyFile does exist, the key +// in the KeyFile is installed into the CSP and used. +// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. +// When specifying the KeyFile, the location of the KeyFile should be +// relative to the project output directory which is +// %Project Directory%\obj\. For example, if your KeyFile is +// located in the project directory, you would specify the AssemblyKeyFile +// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] +// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework +// documentation for more information on this. +// +[assembly: AssemblyDelaySign(false)] +[assembly: AssemblyKeyFile("")] +[assembly: AssemblyKeyName("")] diff --git a/SAF_VS2003/SAF/Test.SAF.Authorization/TestConsole/Class1.cs b/SAF_VS2003/SAF/Test.SAF.Authorization/TestConsole/Class1.cs new file mode 100644 index 0000000..c61a4b5 --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.Authorization/TestConsole/Class1.cs @@ -0,0 +1,63 @@ +using System; +using System.Security.Principal; +using System.Security.Permissions; +using SAF.Authorization; +using System.Threading; +using System.Security; + +namespace TestConsole +{ + /// + /// Summary description for Class1. + /// + class Class1 + { + /// + /// This demo show how to use SAF.Authorization service in the applicaiton + /// + [STAThread] + static void Main(string[] args) + { + AuthorizationTest at = new AuthorizationTest(); + //attach an principal object to the thread + Thread.CurrentPrincipal = new WindowsPrincipal(WindowsIdentity.GetCurrent()); + try + { + Console.WriteLine("Enter the MySecureAllowedMethod: "); + //access the method + at.MySecureAllowedMethod("ok"); + + Console.WriteLine("Enter the MySecureDeniedMethod: "); + //access the method + at.MySecureDeniedMethod(); + } + catch (SecurityException se) + { + Console.WriteLine(se.Message); + } + Console.WriteLine("Press enter to exit"); + Console.ReadLine(); + } + } + + /// + /// It contains the methods marked with SAFSecurityAttribute tag + /// + public class AuthorizationTest + { + //with the SAFSecurityAttribute, the SAFSecurityPermission takes over the task + //of access checking of the caller. + //Refer to the "SAF.Authorization" configuraiton file for more detail + [SAFSecurityAttribute(SecurityAction.Demand, Name="MyAssembly.MyType.MyMethod1")] + public void MySecureAllowedMethod(string s) + { + Console.WriteLine("it works!\n"); + } + + [SAFSecurityAttribute(SecurityAction.Demand, Name="MyAssembly.MyType.MyMethod2")] + public void MySecureDeniedMethod() + { + Console.WriteLine("it works!\n"); + } + } +} diff --git a/SAF_VS2003/SAF/Test.SAF.Authorization/TestConsole/ImportantReadme.txt b/SAF_VS2003/SAF/Test.SAF.Authorization/TestConsole/ImportantReadme.txt new file mode 100644 index 0000000..fa1d4c5 --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.Authorization/TestConsole/ImportantReadme.txt @@ -0,0 +1,11 @@ +Due to the change in .NET 1.1, you must install CodeAccessSecurityAttribute(which SAFSecurityAttribute inherits) +to GAC in order to use it. You would get a "Failed to load assembly SAF.Authorization" error when compiling the +Test.SAF.Authorization solution if you didn't add SAF.Authorization.dll to GAC. + +To add SAF.Authorization.dll to GAC, use the following instruction: + +1. Open the command prompt and navigate to "\SAF\SAF.Authorization\bin\Debug" +2. run "gacutil /i SAF.Authroization.dll" at the prompt. + +Then compile the solution and hit F5 to run. + diff --git a/SAF_VS2003/SAF/Test.SAF.Authorization/TestConsole/TestConsole.csproj b/SAF_VS2003/SAF/Test.SAF.Authorization/TestConsole/TestConsole.csproj new file mode 100644 index 0000000..78b97f3 --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.Authorization/TestConsole/TestConsole.csproj @@ -0,0 +1,128 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SAF_VS2003/SAF/Test.SAF.Authorization/TestConsole/TestConsole.csproj.user b/SAF_VS2003/SAF/Test.SAF.Authorization/TestConsole/TestConsole.csproj.user new file mode 100644 index 0000000..404ba32 --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.Authorization/TestConsole/TestConsole.csproj.user @@ -0,0 +1,48 @@ + + + + + + + + + + + + diff --git a/SAF_VS2003/SAF/Test.SAF.Authorization/TestConsole/app.config b/SAF_VS2003/SAF/Test.SAF.Authorization/TestConsole/app.config new file mode 100644 index 0000000..60be4db --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.Authorization/TestConsole/app.config @@ -0,0 +1,26 @@ + + +
+
+ + + + + + + + + + + + + + + + + + + + + + diff --git a/SAF_VS2003/SAF/Test.SAF.Authorization/TestConsole/bin/Debug/SAF.Configuration.dll b/SAF_VS2003/SAF/Test.SAF.Authorization/TestConsole/bin/Debug/SAF.Configuration.dll new file mode 100644 index 0000000000000000000000000000000000000000..f5b38bde2c2e1982932789c5a7a917d7ffdfd3eb GIT binary patch literal 24576 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 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Authorization/TestConsole/bin/Debug/SAF.Configuration.pdb b/SAF_VS2003/SAF/Test.SAF.Authorization/TestConsole/bin/Debug/SAF.Configuration.pdb new file mode 100644 index 0000000000000000000000000000000000000000..486270dd4be55f0b21676f82b00b488d2d6a88f7 GIT binary patch literal 56832 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 NI2Q{(U1rCD{|}|F-Fg53 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Authorization/TestConsole/bin/Debug/SAF.Library.Security.dll b/SAF_VS2003/SAF/Test.SAF.Authorization/TestConsole/bin/Debug/SAF.Library.Security.dll new file mode 100644 index 0000000000000000000000000000000000000000..fd6b0addc4b702d0494819cf26d3e4c79d75a346 GIT binary patch literal 16384 zcmeHNYitx%6h70I@+hs8hqWz_S=%B6GPcmjOJTQNpoN7#rk01*c6N8VopyF+nVChF zps6AV8VCveKoP+Q5(5ztluAGnHGoK?iTFU2Hj0r13>t|@jns4R?9%Nc7=I9ccyD{Z zIp>~p&pr2>nRL!f7cAWbi2#sOBRrQ;V>#B&dp;~B}3Q>G43KFH~|_65j|TS zz+fEvoCg@$({?Kz{RhO^2cTXOrwf+60#k%7xXsvJ>^!@icz`;=Fby9L(cGLUkiGEO z51B?O20AqkLz!+c*Fa{U{|04!M zq^`zBYSRSlbq;_tSTzqMgK@2#2U=Rk4fQF0_S<8#ra3Eiyt(pH=AI4mx>=E}6SDW# z`yI*0PKH)L@x$-?5=stzG`53p9h&~~TbobiWxaT9{hBdz^4=)f;;$cHf9Cy3U+1+h z^IqS!BjqXMi`i?RZ#X_9?8x4_`|q}66Gj~(mbO3^Le_2KSMM{IAJcW}zPpX{8L(J~M1?&&q6 zYfi1GhYg=xj4vptS}jh>&!0?0(gly=H6$YjO@6mIT_=sD})CX*A1V~~oSa6n{oBzj6zCu0DEqM0Rw1zt#o%@p@i zJVCLY;&qC{IpT9a#S)4V#b%1zDW2dC($IE%vh!DPogA2s7~=upc)zl!#=$vsO~Abm zgbgqh(kW&lW`Kjr<0%$UoJP?_v6Ny3#U&IaiVEUL5OAj-BMyU8h}l%0OmPOqVv6%A ziWDEA=%d&K?U2-LGlz*&mhO%20bt!QGDi4bVhaQxT%h~Isyq|=x>y9iszRwNY&GbH zvQn}XT`M>A<%(Z6`t*mGs|-QYryHu`1us8rDB7n;@<)BxM%$FkzrJ(Gx z@UroSEg1x#r5o|)If@!*j?Ht+suU5GfYvoLW~!DA6PM_1C=RPu*ytlzl_B}%pky@l zF-H$Y3?+3G{{zNZxoiNmcd7Wq+lv$|m?_O^M0ex^(f}JIS8auig!XKj-deCS^+`O(r4dNzho*#t=ADp>FD0Aty&qmO$>gR)y;5`)kT;d&{@8Z5 zaqx4U*=NT!EZ%c*`|!q>_Fs8@_m@)bxrs;8*Jif-mG$GbeZ?siTfW^gbM#NkUwFtm ze_vC6M~i#*Ofln|S!HvtmAy9QwCBLd(MyGjjQz&0^R9{m-%ssm=M-BMeu8*WuyASs%CamzBjJ&0Fl9>z-V?$0#F0AqkLz!+c* zFa{U{jDg$706z9%@Oyfd`gY}ppOc%ruT38o>AQo)PONXSHjTBxiG?Uug9x>Vv!N2D zQYeFksFxznL7B9pNmp*z^_3kfR&&jwR{Og?c}$LPZd5poDuID<6i`9Nm>SfBPTg|J z!!%T(Rl-pd?Go0v3R<;jn75Nu49a0n7J4Z-9_S-d3H8ax&*=6~Ay&cUlln-kS2-xg zctQM;akho4*pI=vakda$KZ3iJs2^FJ$3Btz#4>kd1QUETk5IQfiElps7Xf!Ow`%k? z(7S6d1z6qY-|S@9ndnd0u&A$wYpZb?h~UC#0(dZnmoj8P1a%R;eGsNuSaigX^Hj_L zU>wcYgB}4IjqE&xK7_ddG~i0{`|9$u&wwB21#zAMO_U|uw}$3f7L7s90Le4P3DF3% zfO-A*eC=~kjsq0_y?^0VJ83p literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Authorization/TestConsole/bin/Debug/SAF.Library.Security.pdb b/SAF_VS2003/SAF/Test.SAF.Authorization/TestConsole/bin/Debug/SAF.Library.Security.pdb new file mode 100644 index 0000000000000000000000000000000000000000..0bbf56f5436b9b5b9d2f66dd26b047e16c475917 GIT binary patch literal 9728 zcmeHLJ5Rz;6u$W4;RB5^MkeBl(lUXQ1I9#zLHPv;B@mP*MdJ_fFSwepIk;+KoQ#|L zUnCB$)br6^(ufUAO3OLn^pxA1^q%iL?sr?Lmkqt8SI^^FC7VdZ3&s6-I;pCQk=R~Q zkWBS{VwG-d0SpMSXc@lx00H&OWSL+DLT?l7JiBgQhEstI`q;9qWWvHUsqI^1uq?hs z03{F$E1%Lq&A!>N?Urr1R7?{k5+$7`ogwmG#f(zrpwp z8$tZhCxIopo|k&SF|C*5KPFeasYdmo4{)){~L~izh@xE=<{BzbGI1F z{Xa_+{$~GoTM3W<2Lgxm(!7KJ^ZxJN!({z05oYpqq_@2$e2rvSS03$GY2z&!| Cjb9P~ literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Authorization/TestConsole/bin/Debug/TestConsole.exe b/SAF_VS2003/SAF/Test.SAF.Authorization/TestConsole/bin/Debug/TestConsole.exe new file mode 100644 index 0000000000000000000000000000000000000000..4cfa475bf6f0953838e1e4425e93486c19a5ba61 GIT binary patch literal 16384 zcmeHNU2Ggz6+Sb&-ndTe#7uGjp zmYLba8$?;EQd;q&@b_4xN<=L}NFYJ~q*g{$@X{Y15GpTKpQ=c$1VTJSeIR`2%&d3U z>!c2d28p@OJ@?#m&pr3tZ_d4U?qsLFbeSSV6h*#%o#+LWoDxEBPO50``s7Pp^y@ob z?|VU+e7$dW(R8(vW9J>csAYA_vOR6V(44ZRnUe0n!2e7~jb zbngM`y3==e#nG*U3T+5#>cDn%*i9_k7|5L8)U4fHzS;(NuYIRrtS%sr1Fvz+>qI7< z+4bfx9{u~3-UomF^qo)b`RajJ&_wC|XEMp7^BKGBWQ`O)en@pLGdwsr!t9w@!}a1| z;>ohNXglU5-7{@V#3|cy?SgT}UU>LS+E^&(8>R75ZUOcWXC6GP$kX!g{uhSgL-Em( z;bF89wNU}|F*w`*2+`kA9su0^8P74TyvrJU@PuDO*?%%a*Md(j{bMI5(vYIl4z(QfKTfc=EN z1NywsKMH+MXjEbOJwo>h%?K?B{ie{L3jM9n_msEr&FH$qHiy)YsWF-qYN=laUl#ty zDz`o(^v~+=)eibVy^7Y)L^iYYfoDFRTWE;(VLn__@Hr(N)FL#avF`V2PUi9_sXg9% z8agUn^=k>8w()#91nBX^MYKhz*RP2t52sL%ptnELjWx54b_neQ-9h&WKP2>XLX$!# zgnmKjDWSShQ|MPfKS34HE%Xgas`t^8;N$SMs*cjr^pv`ven!7i4}pJKP2nlB=8K^7 zq>)Rzp!<2s#^SV9=v_ibgl-g?5_(K%M(AmwS)u32jH%Q~2688DR#fU1zMEc*jL~sA zLD8y@^1HG06+nQr51FIm39NTc3Vl2%r4TYlSN-5Y08iPua>00jc;N&qByKDjRCKep zQ!p1OQ*k|`NYe`s8(EK11>JRr8nvlurLh^B(oKuvS!!lQd{y^~)#<>DU!m6dD>l(#{LgkoIIj$Ftq=$vJQ1*<*hNEU-jfS*Q&?^}; zZ?*QBGaMJjTN_g4g2$e=j56!!IisjM=UbancB$f+`9-g_X~qGv*)zE}*rnPa_^crypuuPkJ-m+cK%(^67US3~lQkzZAE;@#us~glE z>|{ZAd32^%iO*nz%bF#@ckd0`pcWt{`{pgb2~=gc@jIea!*%8BPFUSN*5EgO;Z(B zjVkDf1F0w31|cXkd#0kGtlot!xhu9o?b+0GDiZ72gnX*~xqW?m-+w6@jN{}K@Qg6F^}v(9R)*Ft&^(Dk)% zW|6h#Rv|qE9|l)4Yoy>&0bckE=pZ7(5FZ`*Rv^}xL45(di5NMC)(Xuca?XRZ=pb6| zrx6^4!+3_nbPm!iWI9F}mAsyKI0;L1Bl19u;=IFg^?OY>TQkG;fDQkJ(1d`@VjUXw*fF` zgL^ZJ9${W%t~J%}*Y%e9l`R z-vp|B%|43~MMF~MF1G|Z>tAkZ2S8sZdUg#tW4OGAoQ=Q5q$#mB(bXmySA6-k8_3(y zJctYI%AEmvymLbd7M(q!Q}dkP@?0D@eCU*5$$urP=_Y71#;WNyAEm5QJ4}b@vp59r z$AL16BX9(M^1YBKf%~Z<==kr47JMl*cr+`cj=LB9IM=EI)_&wn7mAc0bmIK^T{oUNUz{z|V_ z2^=#1SOl`XybK9`aD;#S!y_p``8P<{nf#~eVpA$b(@m)q#US2PP_6tz3w-o0af^ZE`8=DqquKnBPxc~UZCjG}U_Ns4q8D2IeUTW1Q$vP^EELmBr zjE+j0#=CS>PF$6?Z1HP+-ZmVm>o6Rugb0KPgb0KPgb0KPd?W~H{{PcnKJ<}{77h|3 i5F!vF5F!vF5F!vF5F!vF5F!vF5F!vF5F&6J5cn6Gn1B`l literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Authorization/TestConsole/bin/Debug/TestConsole.exe.config b/SAF_VS2003/SAF/Test.SAF.Authorization/TestConsole/bin/Debug/TestConsole.exe.config new file mode 100644 index 0000000..60be4db --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.Authorization/TestConsole/bin/Debug/TestConsole.exe.config @@ -0,0 +1,26 @@ + + +
+
+ + + + + + + + + + + + + + + + + + + + + + diff --git a/SAF_VS2003/SAF/Test.SAF.Authorization/TestConsole/bin/Debug/TestConsole.pdb b/SAF_VS2003/SAF/Test.SAF.Authorization/TestConsole/bin/Debug/TestConsole.pdb new file mode 100644 index 0000000000000000000000000000000000000000..3e21dd1abb336629bd65aa513c0a8e855edc526f GIT binary patch literal 15872 zcmeHN-H%g66rV12>GCB7U2q}T#RXRuZo3P+ATGkD3jw48DKQ3{Y)bd8+)#R~5HNFu!XM1mk$jEN>1`44fHb8pN@WlhT*%7vogXh%mV7T*+Ftwka;r?vFQ1*k#(#FGsB_$R~yn|c2= zpn=(!ZhKV68fb43f7NmK>%QxUn>u}KXvbzd0GlOl--g+@)5txlSqIv0pEaBu+4#c8fBg1K@aTFwKK;b|yMsfQgXfkBaU-zh+`SYr5eumumA3#>fJR^* zFdvu+GyzkAM}S$tqX4IL5SRnZ1)71!fyaOV;1S03AsPR2V?PZ8$+7nX-q=?*t4rB` zu4T9VXPl*u=9SgtNl!)%jMw^~jD7RkbpIMS=!hylI_Gg1ga|g?1o#GE1Ol`NS_K{Z~QA%*d!C@x#=d*f~qDW?E0A(n-te z)KZq*ebDfNHF=K_hiIkP^7VIYhoF%$waTC@K;<_ zAxXM*@=+{lWbmw6ObIgI8YJ#^WchrWXbZ-Nt(?AJh((347S~gUvPN!L+mSUgDdRvg z4cU^<_3VDbvS7|F)Pb`4HfeosE026KUDl!P+MCsrgGT06Het@)_2Dk4Ew~HYMbzFG zkT)dz37aK3^Cfe3e^w#93Z39x(mH_sp*%U}UqRl2L)rk9DEJ`B`$Q7;MtK6oN@Cjh zt`L^b8tl8w>)>C@n4PZ1j(arsa1!o3^Ui%~9%0_0=J`H%AvmseF%}}v{)fQVf?v6M zE8h#g7;);N4V*pz)3<^zMSK_d)8HKcc5uH~Dg0t5?q7R>HsCoxzBNXA2;rw7$sKnE zFb_KQi@y;M0QB=o42J-=WxUEkQDw>2WLc4#e#mwFytDqDX(i|rD8k%tRP$QIhUHq; z`_gIius#^m;eibn?E(Ert{){o+3kT^!-f9SnE|=`5B)R_Ax+K`)&G7yV-&j&I{|wL zftvvPujC(={wo{CaXaYrm8!@C9|25fp9ns$hCO2)v;%Al>!JOjZHoZ*eDW2>g>7pC zNXV0?&R2u`#S&>(R6ctgO6NoQG9T<)A>U|w#P>(rfCIn>0R7}zBcAtKn!?wp=Y>#g z44iZQLx-#R(CWnLoALP>hl9C^CLENP|NNuuSQIKFa6kFWWFPZUwaXu~0W~5p1O4E; zSguRXC9Yqan#2YuIgiMX0QLR*Cp)=hCAs`FEh^9LVq^(yd6_B8N+Y9It#$+hhw*a0ETxBiLI^w2lpBA`vBts?4(YJUB5jQI^n zD+YDC_;k$-@os>32P44Cz;a*^P}GdT6Ebq;f=aW$4k^AnP;vYD-TVLdpMOhtK~lN> zp8~2Zw$mM#nQ_|kV_qIdBoA zKb?8!`WN%Jes!|>#PT$6ZhH^>}-UWE%X~5Hf QrvXm`o(4P()R_kU178T2GXMYp literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Authorization/TestConsole/obj/Debug/TestConsole.exe b/SAF_VS2003/SAF/Test.SAF.Authorization/TestConsole/obj/Debug/TestConsole.exe new file mode 100644 index 0000000000000000000000000000000000000000..4cfa475bf6f0953838e1e4425e93486c19a5ba61 GIT binary patch literal 16384 zcmeHNU2Ggz6+Sb&-ndTe#7uGjp zmYLba8$?;EQd;q&@b_4xN<=L}NFYJ~q*g{$@X{Y15GpTKpQ=c$1VTJSeIR`2%&d3U z>!c2d28p@OJ@?#m&pr3tZ_d4U?qsLFbeSSV6h*#%o#+LWoDxEBPO50``s7Pp^y@ob z?|VU+e7$dW(R8(vW9J>csAYA_vOR6V(44ZRnUe0n!2e7~jb zbngM`y3==e#nG*U3T+5#>cDn%*i9_k7|5L8)U4fHzS;(NuYIRrtS%sr1Fvz+>qI7< z+4bfx9{u~3-UomF^qo)b`RajJ&_wC|XEMp7^BKGBWQ`O)en@pLGdwsr!t9w@!}a1| z;>ohNXglU5-7{@V#3|cy?SgT}UU>LS+E^&(8>R75ZUOcWXC6GP$kX!g{uhSgL-Em( z;bF89wNU}|F*w`*2+`kA9su0^8P74TyvrJU@PuDO*?%%a*Md(j{bMI5(vYIl4z(QfKTfc=EN z1NywsKMH+MXjEbOJwo>h%?K?B{ie{L3jM9n_msEr&FH$qHiy)YsWF-qYN=laUl#ty zDz`o(^v~+=)eibVy^7Y)L^iYYfoDFRTWE;(VLn__@Hr(N)FL#avF`V2PUi9_sXg9% z8agUn^=k>8w()#91nBX^MYKhz*RP2t52sL%ptnELjWx54b_neQ-9h&WKP2>XLX$!# zgnmKjDWSShQ|MPfKS34HE%Xgas`t^8;N$SMs*cjr^pv`ven!7i4}pJKP2nlB=8K^7 zq>)Rzp!<2s#^SV9=v_ibgl-g?5_(K%M(AmwS)u32jH%Q~2688DR#fU1zMEc*jL~sA zLD8y@^1HG06+nQr51FIm39NTc3Vl2%r4TYlSN-5Y08iPua>00jc;N&qByKDjRCKep zQ!p1OQ*k|`NYe`s8(EK11>JRr8nvlurLh^B(oKuvS!!lQd{y^~)#<>DU!m6dD>l(#{LgkoIIj$Ftq=$vJQ1*<*hNEU-jfS*Q&?^}; zZ?*QBGaMJjTN_g4g2$e=j56!!IisjM=UbancB$f+`9-g_X~qGv*)zE}*rnPa_^crypuuPkJ-m+cK%(^67US3~lQkzZAE;@#us~glE z>|{ZAd32^%iO*nz%bF#@ckd0`pcWt{`{pgb2~=gc@jIea!*%8BPFUSN*5EgO;Z(B zjVkDf1F0w31|cXkd#0kGtlot!xhu9o?b+0GDiZ72gnX*~xqW?m-+w6@jN{}K@Qg6F^}v(9R)*Ft&^(Dk)% zW|6h#Rv|qE9|l)4Yoy>&0bckE=pZ7(5FZ`*Rv^}xL45(di5NMC)(Xuca?XRZ=pb6| zrx6^4!+3_nbPm!iWI9F}mAsyKI0;L1Bl19u;=IFg^?OY>TQkG;fDQkJ(1d`@VjUXw*fF` zgL^ZJ9${W%t~J%}*Y%e9l`R z-vp|B%|43~MMF~MF1G|Z>tAkZ2S8sZdUg#tW4OGAoQ=Q5q$#mB(bXmySA6-k8_3(y zJctYI%AEmvymLbd7M(q!Q}dkP@?0D@eCU*5$$urP=_Y71#;WNyAEm5QJ4}b@vp59r z$AL16BX9(M^1YBKf%~Z<==kr47JMl*cr+`cj=LB9IM=EI)_&wn7mAc0bmIK^T{oUNUz{z|V_ z2^=#1SOl`XybK9`aD;#S!y_p``8P<{nf#~eVpA$b(@m)q#US2PP_6tz3w-o0af^ZE`8=DqquKnBPxc~UZCjG}U_Ns4q8D2IeUTW1Q$vP^EELmBr zjE+j0#=CS>PF$6?Z1HP+-ZmVm>o6Rugb0KPgb0KPgb0KPd?W~H{{PcnKJ<}{77h|3 i5F!vF5F!vF5F!vF5F!vF5F!vF5F!vF5F&6J5cn6Gn1B`l literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Authorization/TestConsole/obj/Debug/TestConsole.exe.incr b/SAF_VS2003/SAF/Test.SAF.Authorization/TestConsole/obj/Debug/TestConsole.exe.incr new file mode 100644 index 0000000000000000000000000000000000000000..c360fd89ed019c559c0f684cfba099e9cf2e897e GIT binary patch literal 2058 zcmdT_J!=$E6g?9)YD{GzmJjTN3}z#UMv-JU35$t=Bz_bdWM*e(GddqKGwa8K!Afkb z^dBh1KVWTi6R@+;#t*Qyu(7kS@Z2|R8QQ{jWR1x zlTANxRK?0H<;96ApHSsEyzK{WqDDqkw&JJCQp;a)2NnF7U#<7G2OrT6puO>T4Y>&Ly}--yMuHLhLlg zP~ubLKKHpgV_ZnTgMg1TLw-K|XubIK)+ivJr)#&6RER#Kbz;&?9Sa`|JD;~`8{b7t z*U9*77a}Rq$0xs5pRI2g`#F}jKy!4x7O8+~+#ts>nyf*cESEWU*bDRd>{X6RIK^jd z+gr?_U@nceH2z@$&sL}PkAI1n zL|5iko;x9`QL%ZnuoG!D2bv?B3YScKWthi$jA&?fMK3usof#frHtTP`KadJ(P4nIR zPcockKDIu`2~Vjo>9RVaB%is8=kIwPWKQrd{(SYmZ7fUDY-efz?!1PqQ(fya&^QY; z&iu@pu>E`Ug6@m^jlI4|mWis;_xUIk)1SV2ouFdpZY`SR{vNH+P{e_ZztEo2#Mhj5XUk*-o%xDRT&^s(|{b@@#pmpvgL>#F=Mwi2dNpGCB7U2q}T#RXRuZo3P+ATGkD3jw48DKQ3{Y)bd8+)#R~5HNFu!XM1mk$jEN>1`44fHb8pN@WlhT*%7vogXh%mV7T*+Ftwka;r?vFQ1*k#(#FGsB_$R~yn|c2= zpn=(!ZhKV68fb43f7NmK>%QxUn>u}KXvbzd0GlOl--g+@)5txlSqIv0pEaBu+4#c8fBg1K@aTFwKK;b|yMsfQgXfkBaU-zh+`SYr5eumumA3#>fJR^* zFdvu+GyzkAM}S$tqX4IL5SRnZ1)71!fyaOV;1S03AsPR2V?PZ8$+7nX-q=?*t4rB` zu4T9VXPl*u=9SgtNl!)%jMw^~jD7RkbpIMS=!hylI_Gg1ga|g?1o#GE1Ol`NS_K{Z~QA%*d!C@x#=d*f~qDW?E0A(n-te z)KZq*ebDfNHF=K_hiIkP^7VIYhoF%$waTC@K;<_ zAxXM*@=+{lWbmw6ObIgI8YJ#^WchrWXbZ-Nt(?AJh((347S~gUvPN!L+mSUgDdRvg z4cU^<_3VDbvS7|F)Pb`4HfeosE026KUDl!P+MCsrgGT06Het@)_2Dk4Ew~HYMbzFG zkT)dz37aK3^Cfe3e^w#93Z39x(mH_sp*%U}UqRl2L)rk9DEJ`B`$Q7;MtK6oN@Cjh zt`L^b8tl8w>)>C@n4PZ1j(arsa1!o3^Ui%~9%0_0=J`H%AvmseF%}}v{)fQVf?v6M zE8h#g7;);N4V*pz)3<^zMSK_d)8HKcc5uH~Dg0t5?q7R>HsCoxzBNXA2;rw7$sKnE zFb_KQi@y;M0QB=o42J-=WxUEkQDw>2WLc4#e#mwFytDqDX(i|rD8k%tRP$QIhUHq; z`_gIius#^m;eibn?E(Ert{){o+3kT^!-f9SnE|=`5B)R_Ax+K`)&G7yV-&j&I{|wL zftvvPujC(={wo{CaXaYrm8!@C9|25fp9ns$hCO2)v;%Al>!JOjZHoZ*eDW2>g>7pC zNXV0?&R2u`#S&>(R6ctgO6NoQG9T<)A>U|w#P>(rfCIn>0R7}zBcAtKn!?wp=Y>#g z44iZQLx-#R(CWnLoALP>hl9C^CLENP|NNuuSQIKFa6kFWWFPZUwaXu~0W~5p1O4E; zSguRXC9Yqan#2YuIgiMX0QLR*Cp)=hCAs`FEh^9LVq^(yd6_B8N+Y9It#$+hhw*a0ETxBiLI^w2lpBA`vBts?4(YJUB5jQI^n zD+YDC_;k$-@os>32P44Cz;a*^P}GdT6Ebq;f=aW$4k^AnP;vYD-TVLdpMOhtK~lN> zp8~2Zw$mM#nQ_|kV_qIdBoA zKb?8!`WN%Jes!|>#PT$6ZhH^>}-UWE%X~5Hf QrvXm`o(4P()R_kU178T2GXMYp literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Authorization/TestConsole/obj/Debug/TestConsole.projdata b/SAF_VS2003/SAF/Test.SAF.Authorization/TestConsole/obj/Debug/TestConsole.projdata new file mode 100644 index 0000000000000000000000000000000000000000..be6701752feb599c94a82b576fbcd4e1f6ad7a78 GIT binary patch literal 1928 zcmeH|-%34iaIalNod&5{M#n(UsCoMoi8Ljd6~6W)iyyucRjk z1Rub+FsLMYg6PI~@CEYs?Kv|Vh7?2uwKnVQwbxpE{o8x5vwLl@a7jR~G#Ci!8}Kd% zkM&h8X;z6EYAO!j6pqvGNY7 z0M`2t|5gRINw*35PWUdAGkTQy3kXDh@l#;?#Y@M~mcfshg3LMw>y*8?{IPiS`hCv( z^84kTPX`}@itpuF*oJ!#^!>E|&lX~2Ob@x$3%umz&_80{XPuE~6J8BzoOJ}>jY?c0h)IRz6A|MP3tyV z30dD~?UH$KF>;5JO5hmy`=C?*VNAOI`OIaJT&q-}0sl&ucI_VPNyx6x^&2YbD=~K> z9tatvoY)$pO1Iu34|5mk-mCPi2wiur1S$<3eG|%^-E%YWTS#J7?SIHc-QPB1yu8G= g|1eRA*mhRJs;YHHJxHC6?KeU^uJe!L{L}S60mJ^pZ2$lO literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Cache/Test.SAF.Cache.sln b/SAF_VS2003/SAF/Test.SAF.Cache/Test.SAF.Cache.sln new file mode 100644 index 0000000..93c04a0 --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.Cache/Test.SAF.Cache.sln @@ -0,0 +1,37 @@ +Microsoft Visual Studio Solution File, Format Version 8.00 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SAF.Configuration", "..\SAF.Configuration\SAF.Configuration.csproj", "{CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SAF.Cache", "..\SAF.Cache\SAF.Cache.csproj", "{725D8525-B7F8-480A-B3C6-6634D51D2291}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestConsole", "TestConsole\TestConsole.csproj", "{CEB6D151-68C0-4548-B16E-5267725AB0F7}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfiguration) = preSolution + Debug = Debug + Release = Release + EndGlobalSection + GlobalSection(ProjectConfiguration) = postSolution + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Debug.ActiveCfg = Debug|.NET + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Debug.Build.0 = Debug|.NET + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Release.ActiveCfg = Release|.NET + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Release.Build.0 = Release|.NET + {725D8525-B7F8-480A-B3C6-6634D51D2291}.Debug.ActiveCfg = Debug|.NET + {725D8525-B7F8-480A-B3C6-6634D51D2291}.Debug.Build.0 = Debug|.NET + {725D8525-B7F8-480A-B3C6-6634D51D2291}.Release.ActiveCfg = Release|.NET + {725D8525-B7F8-480A-B3C6-6634D51D2291}.Release.Build.0 = Release|.NET + {CEB6D151-68C0-4548-B16E-5267725AB0F7}.Debug.ActiveCfg = Debug|.NET + {CEB6D151-68C0-4548-B16E-5267725AB0F7}.Debug.Build.0 = Debug|.NET + {CEB6D151-68C0-4548-B16E-5267725AB0F7}.Release.ActiveCfg = Release|.NET + {CEB6D151-68C0-4548-B16E-5267725AB0F7}.Release.Build.0 = Release|.NET + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + EndGlobalSection + GlobalSection(ExtensibilityAddIns) = postSolution + EndGlobalSection +EndGlobal diff --git a/SAF_VS2003/SAF/Test.SAF.Cache/Test.SAF.Cache.sln.old b/SAF_VS2003/SAF/Test.SAF.Cache/Test.SAF.Cache.sln.old new file mode 100644 index 0000000..b50b92c --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.Cache/Test.SAF.Cache.sln.old @@ -0,0 +1,33 @@ +Microsoft Visual Studio Solution File, Format Version 7.00 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SAF.Configuration", "..\SAF.Configuration\SAF.Configuration.csproj", "{CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SAF.Cache", "..\SAF.Cache\SAF.Cache.csproj", "{725D8525-B7F8-480A-B3C6-6634D51D2291}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestConsole", "TestConsole\TestConsole.csproj", "{CEB6D151-68C0-4548-B16E-5267725AB0F7}" +EndProject +Global + GlobalSection(SolutionConfiguration) = preSolution + ConfigName.0 = Debug + ConfigName.1 = Release + EndGlobalSection + GlobalSection(ProjectDependencies) = postSolution + EndGlobalSection + GlobalSection(ProjectConfiguration) = postSolution + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Debug.ActiveCfg = Debug|.NET + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Debug.Build.0 = Debug|.NET + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Release.ActiveCfg = Release|.NET + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Release.Build.0 = Release|.NET + {725D8525-B7F8-480A-B3C6-6634D51D2291}.Debug.ActiveCfg = Debug|.NET + {725D8525-B7F8-480A-B3C6-6634D51D2291}.Debug.Build.0 = Debug|.NET + {725D8525-B7F8-480A-B3C6-6634D51D2291}.Release.ActiveCfg = Release|.NET + {725D8525-B7F8-480A-B3C6-6634D51D2291}.Release.Build.0 = Release|.NET + {CEB6D151-68C0-4548-B16E-5267725AB0F7}.Debug.ActiveCfg = Debug|.NET + {CEB6D151-68C0-4548-B16E-5267725AB0F7}.Debug.Build.0 = Debug|.NET + {CEB6D151-68C0-4548-B16E-5267725AB0F7}.Release.ActiveCfg = Release|.NET + {CEB6D151-68C0-4548-B16E-5267725AB0F7}.Release.Build.0 = Release|.NET + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + EndGlobalSection + GlobalSection(ExtensibilityAddIns) = postSolution + EndGlobalSection +EndGlobal diff --git a/SAF_VS2003/SAF/Test.SAF.Cache/Test.SAF.Cache.suo b/SAF_VS2003/SAF/Test.SAF.Cache/Test.SAF.Cache.suo new file mode 100644 index 0000000000000000000000000000000000000000..5f9c8a94a8895291221371ad9274f752458986fc GIT binary patch literal 10752 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 Hlkxut+OXi1 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Cache/TestConsole/App.ico b/SAF_VS2003/SAF/Test.SAF.Cache/TestConsole/App.ico new file mode 100644 index 0000000000000000000000000000000000000000..3a5525fd794f7a7c5c8e6187f470ea3af38cd2b6 GIT binary patch literal 1078 zcmeHHJr05}7=1t!Hp3A*8IHkVf+j?-!eHY14Gtcw1Eb*_9>Bq^zETJ@GKj{_2j4$w zo9}xCh!8{T3=X##Skq>ikMjsvB|y%crWBM2iW(4pI}c%z6%lW!=~4v77#3{z!dmB1 z__&l)-{KUYR+|8|;wB^R|9ET$J@(@=#rd^=)qs85?vAy(PSF5CyNkus435LVkZ$rj zNw|JG-P7^hF<(;#o*Vk}5R#e|^13tBbQkeF?djULtvqyxd3<{9 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Cache/TestConsole/AssemblyInfo.cs b/SAF_VS2003/SAF/Test.SAF.Cache/TestConsole/AssemblyInfo.cs new file mode 100644 index 0000000..9f89a32 --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.Cache/TestConsole/AssemblyInfo.cs @@ -0,0 +1,58 @@ +using System.Reflection; +using System.Runtime.CompilerServices; + +// +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +// +[assembly: AssemblyTitle("")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("")] +[assembly: AssemblyCopyright("")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: + +[assembly: AssemblyVersion("1.0.*")] + +// +// In order to sign your assembly you must specify a key to use. Refer to the +// Microsoft .NET Framework documentation for more information on assembly signing. +// +// Use the attributes below to control which key is used for signing. +// +// Notes: +// (*) If no key is specified, the assembly is not signed. +// (*) KeyName refers to a key that has been installed in the Crypto Service +// Provider (CSP) on your machine. KeyFile refers to a file which contains +// a key. +// (*) If the KeyFile and the KeyName values are both specified, the +// following processing occurs: +// (1) If the KeyName can be found in the CSP, that key is used. +// (2) If the KeyName does not exist and the KeyFile does exist, the key +// in the KeyFile is installed into the CSP and used. +// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. +// When specifying the KeyFile, the location of the KeyFile should be +// relative to the project output directory which is +// %Project Directory%\obj\. For example, if your KeyFile is +// located in the project directory, you would specify the AssemblyKeyFile +// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] +// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework +// documentation for more information on this. +// +[assembly: AssemblyDelaySign(false)] +[assembly: AssemblyKeyFile("")] +[assembly: AssemblyKeyName("")] diff --git a/SAF_VS2003/SAF/Test.SAF.Cache/TestConsole/Class1.cs b/SAF_VS2003/SAF/Test.SAF.Cache/TestConsole/Class1.cs new file mode 100644 index 0000000..ab02750 --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.Cache/TestConsole/Class1.cs @@ -0,0 +1,47 @@ +using System; +using SAF.Cache; +using SAF.Configuration; +using System.Configuration; + +namespace TestConsole +{ + /// + /// The demo shows how to use the SAF.Cache service + /// to add, remove and retrieve objects from the cache + /// + class Class1 + { + + [STAThread] + static void Main(string[] args) + { + //get the cache object + Cache cache = SAF.Cache.Cache.GetSAFCacheService(); + //add some objects into the cache service + cache.AddObject("/WebApplication/Users/Xin", "customer xin"); + cache.AddObject("/WebApplication/Users/Mike", "customer mike"); + cache.AddObject("/WebApplication/Users/Steve", "customer steve"); + cache.AddObject("/WebApplication/GlobalData", "1/1/2003"); + + //retrieve the objects as a group + object[] objects = cache.RetrieveObjectList("/WebApplication/Users"); + foreach (object o in objects) + { + Console.WriteLine("Customer in cache: {0}", o.ToString()); + } + + //retrieve the object as individual + string time =(string) cache.RetrieveObject("/WebApplication/GlobalData"); + string name = (string) cache.RetrieveObject("/WebApplication/Users/Xin"); + + //remove the object + cache.RemoveObject("/WebApplication/GlobalData"); + + //remove all the object under /Users + cache.RemoveObject("/WebApplication/Users"); + + Console.WriteLine("Press Enter to finish"); + Console.ReadLine(); + } + } +} diff --git a/SAF_VS2003/SAF/Test.SAF.Cache/TestConsole/TestConsole.csproj b/SAF_VS2003/SAF/Test.SAF.Cache/TestConsole/TestConsole.csproj new file mode 100644 index 0000000..b7af09f --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.Cache/TestConsole/TestConsole.csproj @@ -0,0 +1,118 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SAF_VS2003/SAF/Test.SAF.Cache/TestConsole/TestConsole.csproj.user b/SAF_VS2003/SAF/Test.SAF.Cache/TestConsole/TestConsole.csproj.user new file mode 100644 index 0000000..686cccb --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.Cache/TestConsole/TestConsole.csproj.user @@ -0,0 +1,48 @@ + + + + + + + + + + + + diff --git a/SAF_VS2003/SAF/Test.SAF.Cache/TestConsole/app.config b/SAF_VS2003/SAF/Test.SAF.Cache/TestConsole/app.config new file mode 100644 index 0000000..2c3cb73 --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.Cache/TestConsole/app.config @@ -0,0 +1,12 @@ + + +
+
+ + + + + + + + \ No newline at end of file diff --git a/SAF_VS2003/SAF/Test.SAF.Cache/TestConsole/bin/Debug/SAF.Cache.dll b/SAF_VS2003/SAF/Test.SAF.Cache/TestConsole/bin/Debug/SAF.Cache.dll new file mode 100644 index 0000000000000000000000000000000000000000..a875b3b167dcbf8c1ace9e6f02f1613dfd1db16c GIT binary patch literal 20480 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 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Cache/TestConsole/bin/Debug/SAF.Configuration.pdb b/SAF_VS2003/SAF/Test.SAF.Cache/TestConsole/bin/Debug/SAF.Configuration.pdb new file mode 100644 index 0000000000000000000000000000000000000000..ff2b21f6a1a421faca45c9a229c8053afec3acb4 GIT binary patch literal 56832 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 WT|m<5LNxspdf-AV_;i^a2mU|IoXXVz literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Cache/TestConsole/bin/Debug/SAF.Library.Security.dll b/SAF_VS2003/SAF/Test.SAF.Cache/TestConsole/bin/Debug/SAF.Library.Security.dll new file mode 100644 index 0000000000000000000000000000000000000000..3f37716d27cc498d73164dda280c3e02cf8bcb35 GIT binary patch literal 3584 zcmeHJPiz!r6o1n{*n%veA`(HT77|U&*rr7UiSDw?pVEcaPOTzM=e-U_#=}ghWps@ZbR>G4Wzlf`&5(J@nwggVBo@Jcz&dW+q+O4G}LS#&7rgeeZqm z&-dP&Z{O_k*UnQf5%po-yh(H!E04V3onZyy+~Z&7=+fY|q02`3+R*Hh7nuzm*0fVM zT_*^_*sLg1Hv`iP%+i!?*2Ai@Hf~(MD|J16h^TDz(z~a;7qin=DL1siSVx4fOf1%J zfQgyMB-$c$PZBq8aQre>fY|53c@b@v@7kKOA|qNwAd^hziOwYksU%$%i0%hDZ4&KB zxBk%r{ed>c0q{rLcq>+K#^A^M0gy?aY24ssm_!Sfj;cUMTL7LzLc{M6{etxmrtMgJK`mm9pL&x!F?{6Zi4yo8MMaj~#R8!(j{AQA`y)<_`ov6}%$2DtJTi zA%k_E5j-mB2(AcT5WHes64!};&irGXGfew|SsjSJ>z_(FgMNf+4{{%*_vr!rco??> zx6zQ$PYI3+?h`BsP6)mvcv8?2^ng3aLZ(ju9~694a7^%d!J^=#pe=Yx&=p*!C#i2G zsa(1L`X&UAk>o)1b9#3N>0}~cJa9a$HhuL1b-OB7)%R(l(2SQt?VWXEFAS!2c*d(L z-Bq75RYmp44Ylu8$Zkcks#`N^(N`{eph6U>dc|)|s@4got_m@(O{EztvfMb-?c&3p z-zLuNO3HUywpR<*EHlxZ(h-j66cn3&+|*s1&1$Er>W*ISViPu6+N&+aog!4B+H|`J ziebIs1g%bsVi+uXwWgLLc8W_Xa<$js`g96sy|}#&X+=w(Qwzc<_S}f%=Uj6t?P`wi zhi|CrOz5kKsw(g@`unR7f4lFwV-p{~_1oL~Z(LlU`^+9=XKrV1;ES{KbKA#P-|I6C zBgfFw4^dA~zx*uL;fKJ)K-%B<`aH(8$yDda`XJHiVyH{Lf86ncgKb)^U}X<>}yB@s&(W8S>z>nh{%;V8n?vBx(6tSvohT|=xS)MGGF_}g<_(@UO46?S#lXD9nOO0>UxxLbNs&h%~3&<#v{3?jPg(rPCKDf5`WSGg{#PrY7Jqh9e JL+@P${sye4&cy%# literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Cache/TestConsole/bin/Debug/SAF.Library.Security.pdb b/SAF_VS2003/SAF/Test.SAF.Cache/TestConsole/bin/Debug/SAF.Library.Security.pdb new file mode 100644 index 0000000000000000000000000000000000000000..cd2d5d76aef6a2aaec27bdb22b846a7684f99a80 GIT binary patch literal 7680 zcmeHL%}T>S5Z?ILrdp~85pycyt=gog){}>dpjZ&<3)D2lQcWOLd=amLHxFJF#FKav zU%)relf@TkoX_l*QWPp)nsh$+cCyQs?tZf~nN6i>`(E2?oMy{rIhV^;s@vIO-m=mu zW2-6%6GCWYGQ6|mmMc=NpV;9M_gCFHSrNiw#QQ3I3Sdm} zdq6hf+4y)wcl{yXJ3HM@w}V;{3>!Q!Mp=QM@;}Z*fBr`wdlQ#hz>l;##1+u6TQ5jClG5iB#)D*zCJd5ZPaSt4< z|5fdeT%drQF-yc90A7ZN)m?zSOkzX`@Y_C7`5!*U^40whK2~==%;orp2=M{p_%HE~ b*vFZ`?>P2JgouN`-9+4hynI&R9}0W{699Dh literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Cache/TestConsole/bin/Debug/TestConsole.exe b/SAF_VS2003/SAF/Test.SAF.Cache/TestConsole/bin/Debug/TestConsole.exe new file mode 100644 index 0000000000000000000000000000000000000000..c54c2339d69a4f1814cab5162cb7ae2bde9a76de GIT binary patch literal 16384 zcmeHNU2Ggz6+Sb&Uc32O>};AQ?Hb0|ASY=zcI=QgRLO336UW4{jd$aQViC{oPS%s` z?kuz8U>5;fDMjrIDnhDMc;XFSqCOx|kWeiYK_6(}5VYbU6{w0pf)`LLPzm2Tvm4KL zw;={Wk+|2s=bpcN=FB&D?%X>&=bn6?LPQisy?vYLWwcz9Lhnu*Fh@W3<0$>$zSo9c z)@EKC%B|RSqvkp#*Q^)?vs!gLBX1e*YSpl-MrJN+RGgxf*tv7tNHg^ODWVxIMDP6U znN;g&Hz}%Z*CIsy&=|h<3;UaVl4TGB4eXpZmsU#+2;2_^=LIzckz4H@v-pG&_X*~b zL>Kx*)lQa)c0lv!5K+9{a(Brf3Wn>0d?wH%;aO`Q1ydg<3h?Wy>-7P?p z+>&6}$3P8~B(hJqR@s3g=Ss_{>^FuQC`qD|0a39E0fm4>D7-h-QEy27-+|GO5N+EQaS^BH9szN%DTO@8 z@-v(AcUgX8Q+|i#N3=WsCzu^T*X_Nro;|V1!T3PWK;+vy+$%8jIlEvPje!hA9=H&T z3`7QczF{B!O~mCm&TbeyxM(~5L^c(%aMR^}xI|nz3bXEu2s^q5+~@-!pF9v7(+H4A z(MR_}cR={oI}66GikcfjMV<@UO!k#)zy1Cn{<1vx^c$fkUzmLBSN!fEb8IP_I(;$g zthxm&jTa#zE@lspjZHASl(Xty0!$)p7FH|~(@wSSl&vKve|afmw0JA5oIaMh;n*NISlG(@*OJCnR4IlqJeyI)6H0`E+LWe;2(SG5_ zg+3-UC3IToXN7)Fs43JI`bE%>(mH5AJx#yY_Jh8sB|v-iNuc?levF=@gZgo3j_4WC zv-)n)OoLv~XW_$r4XV=!CFs*s1C0rNNa%#n?LyN+&kD^7{k+hE&?|J67U&`s=n`F~ z3WXa!LT^W6{$&C_zUEonT3j@Gu-OuAdcEnxO7!?Sr?^_SjuQ{!=BQ0rYZg`N1;;Jh zdCIQWJ*z@<`O8+pqjcG<*T;k2bk4M^lqh(P+w@H=SeMFhww)@a>UFD;#y{L^Ju1v3F6LtL^3PUl;uGseAaTW+67#KVzGHu7c5*B>#F68 zGj`phoa0Y5)EpG_gll`&j9s;;-J6Vq=gMli!#xB3|-Upu!gR9PVGvu9F6xF+F+bLqdmkj zT;tI&x<^C!QDR4L@2=EfJRXe>#`{8%!MGklvn!=XqIx9W!?7rW$zK?HxVZ*m?JV;K zbDgENR%*9gOgrwWHA^Nhnd>YoQ7rQ_7r&@{f{dhaiYNpW0tx|zfI{GZ7l9D}W=^Bn z@AZwfwqGR@K#ngq8)8M)MB>bnp`}t@T)8EEc*KbdV)&DLba9GhIHFzyzrRE}zja8e4m{qKk9I=lO z7CMxJ)r7VV`{o)~9O$L+3eHVKP9D5?byeyTDI-3-`t$!Lu}0)i0^+!O8l`1L%xhv^ zuknij19c=|tI6@#aki$conaQAhsCFrc}7-#1<9j^Nd8*9<@-48#Iahwi?S}P2Ykk{ zgB?R1r=#>K{3YlJ)~e&&os!t=YJ!Zvo~$B|av+`d+`Jf9-Alv2vl|Tphl)Q|foyDSK!XpA@XsF_NdwB?9NlK}@0KsMm0CE{ zR%&4!WV8HP$(vw+10K%?%e7AYW?E(T_1CApTKE^iasw|ngC)7;tJ#(ggbfV0#(%Dc z5WhEgOdjX_tTRws<9q{r_tN0O%>&zSK*4TlocA_|YZJApIZ5W-f4M#5U%sgs|FTTo z@B?ok%eKO|TBA*K4}vDQtlX=Nj!uTbGjmv;usZek`w~B21CP*q2&`Nb0tx|zfI>ha zpb+>_5HS4TXqO-RP>!w+st`~JCy)5Kssx1QY@a0foSS0fB!262Dzq literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Cache/TestConsole/bin/Debug/TestConsole.exe.config b/SAF_VS2003/SAF/Test.SAF.Cache/TestConsole/bin/Debug/TestConsole.exe.config new file mode 100644 index 0000000..2c3cb73 --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.Cache/TestConsole/bin/Debug/TestConsole.exe.config @@ -0,0 +1,12 @@ + + +
+
+ + + + + + + + \ No newline at end of file diff --git a/SAF_VS2003/SAF/Test.SAF.Cache/TestConsole/bin/Debug/TestConsole.pdb b/SAF_VS2003/SAF/Test.SAF.Cache/TestConsole/bin/Debug/TestConsole.pdb new file mode 100644 index 0000000000000000000000000000000000000000..498d1564b073f283e444d8f86d31a35c2b0ee993 GIT binary patch literal 13824 zcmeHNT})g>6rKxfyZq{6rIc#3YE=sD?t&CZW5i|)fwTm5)kLxhT`s%rTDsTlU8;T2 zYixWi4@TpINr^sK!-GDVG-*l`qCB?`YSagRqOm5$8k=CEtlu~HURVfFD3C16oaDP_ z{_gC|IcLt9nY%qnJ#CmqBI6GS!wn7oo=B&^H4q9_l-3@J2vCs_8rW{&7v@1VHdD_6 zkbrkv%}iF&mX*NBKfi6+xvPn1v#*sjYHjpm_c;Ko5ZNr;zFkJHs9+^9J@8!nm)o!V zMj~Ro_oJfGiH@Tm{Qm1T-$=WiFZ=MFK40Rx?{d8m)86jOO9^5l)>0jQtQsf=wgFW@ z2~Y~$1C#;fKm||<_yC&my}))r(VZobulip~_g+lN11R0!S+^@`v6%noTF&+V%(JhB zd?o#>Hk(5Nlg=<*zHrq0VGz#%$525#Sj+mP?^cu_64?DyNE^dYZVZnGbXIe$YG<8t?g5L)1LA?sC4%v|7`YME;Yz{x5N;t6Kj@4n-q}JNqNXa9WRtjlsCg zz7%N+g`Q+G`U2eu5`nOEBg}>!Hxiz8BZJcA^qaC5oxQ;E^q((LcLFeuc~!EH9IFxa!tdkW5&lMwmwF9H z_J(X~brT^pk!?9}>`4}B+vc`yWZPQwOO81?ZLt(+vrZl7HusxC7z3}w^^7Usx<6&9Y-dsC4+vrL-UhH92j2!SRwp=O zjKw))uW7vqesgNZ>T~kP!S|s2Rj2%nQ~n0{BPc%){wVk;IQq7@cijj61vq4BT?O9{ zPP>FRusotwc*J2K40Hfb1Knbm@S_Fqj%uKzcA56zR>32B92^7>0YP9V?8qbjMk_BM z_exIM4^CZfR^nN%wj_9q_h#iVzK6jz;Go07)=d6odf;y<%6|!zV~Cot130H|{?c_y*Iy8zk;&p8MX z^S-|h3>o?<5j4|!Fp(UJo59uGAFxw)NQ1(LUlJn?%dpXxA8_3dy{ufyNLi=ot|h?p z8~@Me>c7`n;5?sM0QFx7T)_Iz{RTvP;JZ{;72tlC=S>W4YPs*Ts8*CG65x90H(-AE zDHRvm%Ea4V?)9U9AHZ2!+5wm(p6hqX)Xj0p@UT6`obPb+c72KX3^w&TGCRO&Uf-PW z;L4VibH5X?Zv{n1xVfdNCEO$qTngM`d(x!M<~@sWD^ejFXtREc?HH>_t}i3E?=mzw zpVhdj^}0)O?^&JU+5>b4$pL1wUO8YpJy*ZMsdod7+PNDi+Nu95=YGEU$L-_2Z+%D!={5QPoUpMzcfh!5lm85&gn6?_asvv} z3?K^w%gZQxf|XmA>M--CfKrH!@&A2kp!gn)^cc_uuuT^ney;zw&2;0R{C&n5`W?m^ y+%3x3;svM18E@#XDu7CW|NUY-qUL$0rM3+a!ZL)rSw%_$N&-p(N&;I@0{;UnVl*HC literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Cache/TestConsole/obj/Debug/TestConsole.exe b/SAF_VS2003/SAF/Test.SAF.Cache/TestConsole/obj/Debug/TestConsole.exe new file mode 100644 index 0000000000000000000000000000000000000000..c54c2339d69a4f1814cab5162cb7ae2bde9a76de GIT binary patch literal 16384 zcmeHNU2Ggz6+Sb&Uc32O>};AQ?Hb0|ASY=zcI=QgRLO336UW4{jd$aQViC{oPS%s` z?kuz8U>5;fDMjrIDnhDMc;XFSqCOx|kWeiYK_6(}5VYbU6{w0pf)`LLPzm2Tvm4KL zw;={Wk+|2s=bpcN=FB&D?%X>&=bn6?LPQisy?vYLWwcz9Lhnu*Fh@W3<0$>$zSo9c z)@EKC%B|RSqvkp#*Q^)?vs!gLBX1e*YSpl-MrJN+RGgxf*tv7tNHg^ODWVxIMDP6U znN;g&Hz}%Z*CIsy&=|h<3;UaVl4TGB4eXpZmsU#+2;2_^=LIzckz4H@v-pG&_X*~b zL>Kx*)lQa)c0lv!5K+9{a(Brf3Wn>0d?wH%;aO`Q1ydg<3h?Wy>-7P?p z+>&6}$3P8~B(hJqR@s3g=Ss_{>^FuQC`qD|0a39E0fm4>D7-h-QEy27-+|GO5N+EQaS^BH9szN%DTO@8 z@-v(AcUgX8Q+|i#N3=WsCzu^T*X_Nro;|V1!T3PWK;+vy+$%8jIlEvPje!hA9=H&T z3`7QczF{B!O~mCm&TbeyxM(~5L^c(%aMR^}xI|nz3bXEu2s^q5+~@-!pF9v7(+H4A z(MR_}cR={oI}66GikcfjMV<@UO!k#)zy1Cn{<1vx^c$fkUzmLBSN!fEb8IP_I(;$g zthxm&jTa#zE@lspjZHASl(Xty0!$)p7FH|~(@wSSl&vKve|afmw0JA5oIaMh;n*NISlG(@*OJCnR4IlqJeyI)6H0`E+LWe;2(SG5_ zg+3-UC3IToXN7)Fs43JI`bE%>(mH5AJx#yY_Jh8sB|v-iNuc?levF=@gZgo3j_4WC zv-)n)OoLv~XW_$r4XV=!CFs*s1C0rNNa%#n?LyN+&kD^7{k+hE&?|J67U&`s=n`F~ z3WXa!LT^W6{$&C_zUEonT3j@Gu-OuAdcEnxO7!?Sr?^_SjuQ{!=BQ0rYZg`N1;;Jh zdCIQWJ*z@<`O8+pqjcG<*T;k2bk4M^lqh(P+w@H=SeMFhww)@a>UFD;#y{L^Ju1v3F6LtL^3PUl;uGseAaTW+67#KVzGHu7c5*B>#F68 zGj`phoa0Y5)EpG_gll`&j9s;;-J6Vq=gMli!#xB3|-Upu!gR9PVGvu9F6xF+F+bLqdmkj zT;tI&x<^C!QDR4L@2=EfJRXe>#`{8%!MGklvn!=XqIx9W!?7rW$zK?HxVZ*m?JV;K zbDgENR%*9gOgrwWHA^Nhnd>YoQ7rQ_7r&@{f{dhaiYNpW0tx|zfI{GZ7l9D}W=^Bn z@AZwfwqGR@K#ngq8)8M)MB>bnp`}t@T)8EEc*KbdV)&DLba9GhIHFzyzrRE}zja8e4m{qKk9I=lO z7CMxJ)r7VV`{o)~9O$L+3eHVKP9D5?byeyTDI-3-`t$!Lu}0)i0^+!O8l`1L%xhv^ zuknij19c=|tI6@#aki$conaQAhsCFrc}7-#1<9j^Nd8*9<@-48#Iahwi?S}P2Ykk{ zgB?R1r=#>K{3YlJ)~e&&os!t=YJ!Zvo~$B|av+`d+`Jf9-Alv2vl|Tphl)Q|foyDSK!XpA@XsF_NdwB?9NlK}@0KsMm0CE{ zR%&4!WV8HP$(vw+10K%?%e7AYW?E(T_1CApTKE^iasw|ngC)7;tJ#(ggbfV0#(%Dc z5WhEgOdjX_tTRws<9q{r_tN0O%>&zSK*4TlocA_|YZJApIZ5W-f4M#5U%sgs|FTTo z@B?ok%eKO|TBA*K4}vDQtlX=Nj!uTbGjmv;usZek`w~B21CP*q2&`Nb0tx|zfI>ha zpb+>_5HS4TXqO-RP>!w+st`~JCy)5Kssx1QY@a0foSS0fB!262Dzq literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Cache/TestConsole/obj/Debug/TestConsole.exe.incr b/SAF_VS2003/SAF/Test.SAF.Cache/TestConsole/obj/Debug/TestConsole.exe.incr new file mode 100644 index 0000000000000000000000000000000000000000..64007aa4be507604ae28e80f6e2d55dda7101e87 GIT binary patch literal 1756 zcmd5+%W4!s6g?f^8gS=MC~zmF(Tor@f+XFE4Do@9QNa=E=cKhC(p}>V7cPDLg5bh{ zU*KA?-MA7TAd0vW1aadR=(&~YFp+G{Sk3LKI(6&zsdH~vI}gezi*oIyYPy%Cp>jR# zskkVWvrjoib}dPxQjLu%y_8fc=1f((D5FY+;;0K1<(^M8_A0H)$d@3My%X&xck68c zcF?4a(6-Zd(Ok@68jCoNNu0$zrr;1+uWjvv+&v-@*0lYj-7imTYi`pDI>9c$5p-}K zZJgp)PII)t`AH;PDN&%J#n7<1KErQ!FiYG+h6p#fR^lqL>o`acu|sHKoKJ^wZgID! zUq(Dc%14?dulGN1FMoPzH588$+9)P2*=yP$C!^G!?4GFexi8z~26DPU#ZRnZBq{o~ z`^@s&=dY|$j-_3sg(hDMtbkcurp5(&%t1hv9gaixqWsG0IgZA0fKO``?J$Rt$&20h zv$@k_ge9}LS(RwH$$n~ZpB0faip!bLZ+2HB%6{>U>CrW8MBl_Z|DA-oH*DsAzcxDl=)Ev~ z^QW^nztkdGxkIXyf;_MMRVnLNmCahZNi#PB8J8T$_&e<(O{&D)XD$EH$2)c7hB@NH zI^7gAQjv4UQ>MJ(+NSagW+osmO=!wJj(Xz3SF&zs%Y8j8)(*LPhPm9)!n9!}T1(Xk F%|G*(FCqW{ literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Cache/TestConsole/obj/Debug/TestConsole.pdb b/SAF_VS2003/SAF/Test.SAF.Cache/TestConsole/obj/Debug/TestConsole.pdb new file mode 100644 index 0000000000000000000000000000000000000000..498d1564b073f283e444d8f86d31a35c2b0ee993 GIT binary patch literal 13824 zcmeHNT})g>6rKxfyZq{6rIc#3YE=sD?t&CZW5i|)fwTm5)kLxhT`s%rTDsTlU8;T2 zYixWi4@TpINr^sK!-GDVG-*l`qCB?`YSagRqOm5$8k=CEtlu~HURVfFD3C16oaDP_ z{_gC|IcLt9nY%qnJ#CmqBI6GS!wn7oo=B&^H4q9_l-3@J2vCs_8rW{&7v@1VHdD_6 zkbrkv%}iF&mX*NBKfi6+xvPn1v#*sjYHjpm_c;Ko5ZNr;zFkJHs9+^9J@8!nm)o!V zMj~Ro_oJfGiH@Tm{Qm1T-$=WiFZ=MFK40Rx?{d8m)86jOO9^5l)>0jQtQsf=wgFW@ z2~Y~$1C#;fKm||<_yC&my}))r(VZobulip~_g+lN11R0!S+^@`v6%noTF&+V%(JhB zd?o#>Hk(5Nlg=<*zHrq0VGz#%$525#Sj+mP?^cu_64?DyNE^dYZVZnGbXIe$YG<8t?g5L)1LA?sC4%v|7`YME;Yz{x5N;t6Kj@4n-q}JNqNXa9WRtjlsCg zz7%N+g`Q+G`U2eu5`nOEBg}>!Hxiz8BZJcA^qaC5oxQ;E^q((LcLFeuc~!EH9IFxa!tdkW5&lMwmwF9H z_J(X~brT^pk!?9}>`4}B+vc`yWZPQwOO81?ZLt(+vrZl7HusxC7z3}w^^7Usx<6&9Y-dsC4+vrL-UhH92j2!SRwp=O zjKw))uW7vqesgNZ>T~kP!S|s2Rj2%nQ~n0{BPc%){wVk;IQq7@cijj61vq4BT?O9{ zPP>FRusotwc*J2K40Hfb1Knbm@S_Fqj%uKzcA56zR>32B92^7>0YP9V?8qbjMk_BM z_exIM4^CZfR^nN%wj_9q_h#iVzK6jz;Go07)=d6odf;y<%6|!zV~Cot130H|{?c_y*Iy8zk;&p8MX z^S-|h3>o?<5j4|!Fp(UJo59uGAFxw)NQ1(LUlJn?%dpXxA8_3dy{ufyNLi=ot|h?p z8~@Me>c7`n;5?sM0QFx7T)_Iz{RTvP;JZ{;72tlC=S>W4YPs*Ts8*CG65x90H(-AE zDHRvm%Ea4V?)9U9AHZ2!+5wm(p6hqX)Xj0p@UT6`obPb+c72KX3^w&TGCRO&Uf-PW z;L4VibH5X?Zv{n1xVfdNCEO$qTngM`d(x!M<~@sWD^ejFXtREc?HH>_t}i3E?=mzw zpVhdj^}0)O?^&JU+5>b4$pL1wUO8YpJy*ZMsdod7+PNDi+Nu95=YGEU$L-_2Z+%D!={5QPoUpMzcfh!5lm85&gn6?_asvv} z3?K^w%gZQxf|XmA>M--CfKrH!@&A2kp!gn)^cc_uuuT^ney;zw&2;0R{C&n5`W?m^ y+%3x3;svM18E@#XDu7CW|NUY-qUL$0rM3+a!ZL)rSw%_$N&-p(N&;I@0{;UnVl*HC literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Cache/TestConsole/obj/Debug/TestConsole.projdata b/SAF_VS2003/SAF/Test.SAF.Cache/TestConsole/obj/Debug/TestConsole.projdata new file mode 100644 index 0000000000000000000000000000000000000000..4d7e9f76e31a490287e89aed7f8eac8615d63617 GIT binary patch literal 1288 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. For example, if your KeyFile is +// located in the project directory, you would specify the AssemblyKeyFile +// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] +// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework +// documentation for more information on this. +// +[assembly: AssemblyDelaySign(false)] +[assembly: AssemblyKeyFile("")] +[assembly: AssemblyKeyName("")] diff --git a/SAF_VS2003/SAF/Test.SAF.ClassFactory/TestConcreteFactory/TestConcreteFactory.cs b/SAF_VS2003/SAF/Test.SAF.ClassFactory/TestConcreteFactory/TestConcreteFactory.cs new file mode 100644 index 0000000..aae40a4 --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.ClassFactory/TestConcreteFactory/TestConcreteFactory.cs @@ -0,0 +1,192 @@ +using System; +using System.Runtime.Remoting; + +//TestConcreteFactory consists sample class factory and business class used by +//the TestConsole application. +namespace TestConcreteFactory +{ + /// + /// Summary description for Class1. + /// + public abstract class ProductFactory : MarshalByRefObject + { + public abstract Product GetCheapProduct(); + public abstract Product GetExpensiveProduct(); + + } + + public class ConcreteProductFactory : ProductFactory + { + public override Product GetCheapProduct() + { + return new CheapProduct(); + } + public override Product GetExpensiveProduct() + { + return new ExpensiveProduct(); + } + } + + public class ConcreteNewProductFactory : ProductFactory + { + public override Product GetCheapProduct() + { + return new NewCheapProduct(); + } + public override Product GetExpensiveProduct() + { + return new NewExpensiveProduct(); + } + } + + public class ConcreteRemoteProductFactory: ProductFactory + { + public override Product GetCheapProduct() + { + return new RemoteCheapProduct(); + } + public override Product GetExpensiveProduct() + { + return new RemoteExpensiveProduct(); + } + } + public abstract class Product : MarshalByRefObject + { + public abstract string Name {get;} + public abstract int GetPrice(); + public abstract string GetColor(); + } + + public class CheapProduct : Product + { + private const int cost = 10; + private const string color = "red"; + private const string name ="Cheap Product"; + + public override int GetPrice() + { + return cost *2; + } + public override string GetColor() + { + return color; + } + public override string Name + { + get + { + return name; + } + } + } + public class NewCheapProduct : Product + { + private const int cost = 10; + private const string color = "black"; + private const string name ="New Cheap Product"; + public override int GetPrice() + { + return cost *2; + } + public override string GetColor() + { + return color; + } + public override string Name + { + get + { + return name; + } + } + + } + public class ExpensiveProduct : Product + { + private const int cost = 10; + private const string color = "red"; + private const string name ="Expensive Product"; + + public override int GetPrice() + { + return cost * 10; + } + public override string GetColor() + { + return color; + } + public override string Name + { + get + { + return name; + } + } + } + public class NewExpensiveProduct : Product + { + private const int cost = 10; + private const string color = "black"; + private const string name ="New Expensive Product"; + public override int GetPrice() + { + return cost * 10; + } + public override string GetColor() + { + return color; + } + public override string Name + { + get + { + return name; + } + } + + } + public class RemoteCheapProduct : Product + { + private const int cost = 10; + private const string color = "yellow"; + private const string name ="Remote Cheap Product"; + + public override int GetPrice() + { + return cost * 100; + } + public override string GetColor() + { + return color; + } + public override string Name + { + get + { + return name; + } + } + } + public class RemoteExpensiveProduct : Product + { + private const int cost = 10; + private const string color = "gray"; + private const string name ="Remote Expensive Product"; + public override int GetPrice() + { + return cost * 1000; + } + public override string GetColor() + { + return color; + } + public override string Name + { + get + { + return name; + } + } + + } +} diff --git a/SAF_VS2003/SAF/Test.SAF.ClassFactory/TestConcreteFactory/TestConcreteFactory.csproj b/SAF_VS2003/SAF/Test.SAF.ClassFactory/TestConcreteFactory/TestConcreteFactory.csproj new file mode 100644 index 0000000..732c234 --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.ClassFactory/TestConcreteFactory/TestConcreteFactory.csproj @@ -0,0 +1,100 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/SAF_VS2003/SAF/Test.SAF.ClassFactory/TestConcreteFactory/TestConcreteFactory.csproj.user b/SAF_VS2003/SAF/Test.SAF.ClassFactory/TestConcreteFactory/TestConcreteFactory.csproj.user new file mode 100644 index 0000000..e4263fd --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.ClassFactory/TestConcreteFactory/TestConcreteFactory.csproj.user @@ -0,0 +1,48 @@ + + + + + + + + + + + + diff --git a/SAF_VS2003/SAF/Test.SAF.ClassFactory/TestConcreteFactory/bin/Debug/TestConcreteFactory.dll b/SAF_VS2003/SAF/Test.SAF.ClassFactory/TestConcreteFactory/bin/Debug/TestConcreteFactory.dll new file mode 100644 index 0000000000000000000000000000000000000000..770662475ee015115de67d2272ee23afee4f5f3d GIT binary patch literal 16384 zcmeHMQEVJn6}_`wuQyJ-iR(mluu;abt+;Nq*p7j;gkpQwZbIyh<8|B=f}Gji$$FdF zon>a6dMlttYEk&BLC7 z{oJx%HMUQsQn~Q&@bpZB5!MLCX5bU2fo5kh^;y%T- z38Hl-Vtctvv=6#V{Y1Un+jhe$QM|4_4t%-}Cmnsw0e){k1llA=FK-|zD$(VnWm|b5 z$!!7^wo!4^l?h~@v~ZFt3my)F)+^h{x)L_1@+BhZ0WYf$2w%%dE}rwIDgEo z&{-IGb=#OlzbB~Qii?+bZ_K;K9Sr*O7$oj!P`_*3!UxFr!hacer+jPoj>}_Xe${s& zn{oM_V2n*Jei+m@<6<-Rfn&{M|0x(_Gxnc@`t7li^5%Cfo?9>CSnJ2pMYNDjXDfq) zPb|HAd+uxV$CI-^=-I%uqx9pKvXe8*S##CO>nVIJ6S$Ne8yPvl)k}-I?Icl2rVP!t zXSBRyS~bz8%u3$U9o^TNxo0k=_1tQ)S!=Rd$e}x$%6@uE@n$=JJGwTS98Hd&7#rh8 z+)W1LP25!dU&8k+e3JVI2GXB(tWu?DiwW-GUfkdP7qZj~V)(OD|C1Naq;WnDyuxi$ zhAEvv2dF&N`-%cLqJJtUc+r85Fq7ol)k8RA3JT^rbAoPVO<{idV0%7rvAlDP#t3T) zeO-A0-wnSn^0vsgMgB|Vp$NB*h&(H@Ao7bMZ;Je>$hRYJA}_xe=I6^8*)%PJ5k?Bo z3Q!!isG#RP)F$Yg9%>iAAA5cs()J6WZqzyj{YFrf4hj0Bpf)-z=#HRv`mi8U*sp{7 z1a%2IK!bFC-BFG})|6wA&x`zDX_ynDTdl*2&pe~Y1(h>hP$r~3tk*M*&d9d9jnP+X!k)&WGX%P zB_mh^S`eiR-Vu6OBK9C&gpMFu1edA<@)+%>=(@Xty%Wns5E^9>hl1leb|5Ya#_N?+ zb7o=H(4QdQV76@~$%0`}+0L7mQOZ%aW;=SB<}}M*(Tu6uf_~*(?ioGr(7c5hdB@v; znnfZ%@-|anozb7&p=CiYn~uJ%(Swv)(Y2}%5F>!6*Q$EOE?x7T2?h;1H+;a)RW(>X zsXGBP;0Bu{@5)rvo#l*H)(Ix_Rw*x)lxd(z)Opi(C@;9eW-hTw@M(a}l3Afi+t$lD zqjpxWvB#u?jW@UI==BXVC8J40S~s*>wp6S%`Yh>|jo^(9sa3;SwVDK5w6ua=)~u^d ze9UUiDiv3p#wPE2G&ZEna#gF;nl)6el!~jC#)EHcPV08wDpi{|E|#2n9y~77C9PNi z&856e@+?%;a`k3-ps+}%0#Q#2JGxF9Rk3Q!lSL-9tCT1FOSd|)2mwQ-y3Q(KXZ>Vm|7}xewcp8X_3@ndq4wSpX`d?nvBS^4L?vI5fiJ^=Q!N zKKjJ6aA@pTzke(7m&|vkHV%KIoOzkzKY8xb(&6!quSQjRsJlfa1xEr$yk&?Ikyt#+ zkH(Q$BIc6%p`CMU-=g%W&&1BwNAI2Rupi~#ru*vY911eCa}IHz%#onSz59!*ijrUv zX;mXiBob{?z+MbTn-a&7XyrATVtB5U%In@cIV<1dy2`c2;=j8GTb5I%l{SnytyFQ> zY+aZ2o2~8+B35V6z8>*&Enx?x^?EJu6Py_SPHxb%9e+ExIDzN(7DjFvY8gjmiL$f| zIZX?wouPA-0mfcWGpKXH<>e{N(e+{G6#E$!Bo8w~RXP!m`8*2;aQ4QqDwx_V0 zE1S73!Pb&B#UINkC6QASPeC82kKvc3kJ4k3C1Dlg_Y7u+R|*Sf4P0zxvnV|~GLnj9 zpo`@U?0DTX;ZsAz0=)P=a7gl=g;!A`F#}ataOOp(dC#kwSWw?^*fIU(EzZMHMK8^3AspG01^jE$GH z8W{K>F)*~SgbaiXgbaiXgbaiXgbaiXgbaiXgbX|w22}Tdx4-)@+z+PLu$Pd5kb#ha ekb#hakb#hakb#hakb#hakb#hakbwutz`p@rZddRC literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.ClassFactory/TestConcreteFactory/bin/Debug/TestConcreteFactory.pdb b/SAF_VS2003/SAF/Test.SAF.ClassFactory/TestConcreteFactory/bin/Debug/TestConcreteFactory.pdb new file mode 100644 index 0000000000000000000000000000000000000000..1af0d05bcfa43c51e5ac5a84bb836e61874f53d2 GIT binary patch literal 24064 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 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.ClassFactory/TestConcreteFactory/obj/Debug/TestConcreteFactory.dll b/SAF_VS2003/SAF/Test.SAF.ClassFactory/TestConcreteFactory/obj/Debug/TestConcreteFactory.dll new file mode 100644 index 0000000000000000000000000000000000000000..770662475ee015115de67d2272ee23afee4f5f3d GIT binary patch literal 16384 zcmeHMQEVJn6}_`wuQyJ-iR(mluu;abt+;Nq*p7j;gkpQwZbIyh<8|B=f}Gji$$FdF zon>a6dMlttYEk&BLC7 z{oJx%HMUQsQn~Q&@bpZB5!MLCX5bU2fo5kh^;y%T- z38Hl-Vtctvv=6#V{Y1Un+jhe$QM|4_4t%-}Cmnsw0e){k1llA=FK-|zD$(VnWm|b5 z$!!7^wo!4^l?h~@v~ZFt3my)F)+^h{x)L_1@+BhZ0WYf$2w%%dE}rwIDgEo z&{-IGb=#OlzbB~Qii?+bZ_K;K9Sr*O7$oj!P`_*3!UxFr!hacer+jPoj>}_Xe${s& zn{oM_V2n*Jei+m@<6<-Rfn&{M|0x(_Gxnc@`t7li^5%Cfo?9>CSnJ2pMYNDjXDfq) zPb|HAd+uxV$CI-^=-I%uqx9pKvXe8*S##CO>nVIJ6S$Ne8yPvl)k}-I?Icl2rVP!t zXSBRyS~bz8%u3$U9o^TNxo0k=_1tQ)S!=Rd$e}x$%6@uE@n$=JJGwTS98Hd&7#rh8 z+)W1LP25!dU&8k+e3JVI2GXB(tWu?DiwW-GUfkdP7qZj~V)(OD|C1Naq;WnDyuxi$ zhAEvv2dF&N`-%cLqJJtUc+r85Fq7ol)k8RA3JT^rbAoPVO<{idV0%7rvAlDP#t3T) zeO-A0-wnSn^0vsgMgB|Vp$NB*h&(H@Ao7bMZ;Je>$hRYJA}_xe=I6^8*)%PJ5k?Bo z3Q!!isG#RP)F$Yg9%>iAAA5cs()J6WZqzyj{YFrf4hj0Bpf)-z=#HRv`mi8U*sp{7 z1a%2IK!bFC-BFG})|6wA&x`zDX_ynDTdl*2&pe~Y1(h>hP$r~3tk*M*&d9d9jnP+X!k)&WGX%P zB_mh^S`eiR-Vu6OBK9C&gpMFu1edA<@)+%>=(@Xty%Wns5E^9>hl1leb|5Ya#_N?+ zb7o=H(4QdQV76@~$%0`}+0L7mQOZ%aW;=SB<}}M*(Tu6uf_~*(?ioGr(7c5hdB@v; znnfZ%@-|anozb7&p=CiYn~uJ%(Swv)(Y2}%5F>!6*Q$EOE?x7T2?h;1H+;a)RW(>X zsXGBP;0Bu{@5)rvo#l*H)(Ix_Rw*x)lxd(z)Opi(C@;9eW-hTw@M(a}l3Afi+t$lD zqjpxWvB#u?jW@UI==BXVC8J40S~s*>wp6S%`Yh>|jo^(9sa3;SwVDK5w6ua=)~u^d ze9UUiDiv3p#wPE2G&ZEna#gF;nl)6el!~jC#)EHcPV08wDpi{|E|#2n9y~77C9PNi z&856e@+?%;a`k3-ps+}%0#Q#2JGxF9Rk3Q!lSL-9tCT1FOSd|)2mwQ-y3Q(KXZ>Vm|7}xewcp8X_3@ndq4wSpX`d?nvBS^4L?vI5fiJ^=Q!N zKKjJ6aA@pTzke(7m&|vkHV%KIoOzkzKY8xb(&6!quSQjRsJlfa1xEr$yk&?Ikyt#+ zkH(Q$BIc6%p`CMU-=g%W&&1BwNAI2Rupi~#ru*vY911eCa}IHz%#onSz59!*ijrUv zX;mXiBob{?z+MbTn-a&7XyrATVtB5U%In@cIV<1dy2`c2;=j8GTb5I%l{SnytyFQ> zY+aZ2o2~8+B35V6z8>*&Enx?x^?EJu6Py_SPHxb%9e+ExIDzN(7DjFvY8gjmiL$f| zIZX?wouPA-0mfcWGpKXH<>e{N(e+{G6#E$!Bo8w~RXP!m`8*2;aQ4QqDwx_V0 zE1S73!Pb&B#UINkC6QASPeC82kKvc3kJ4k3C1Dlg_Y7u+R|*Sf4P0zxvnV|~GLnj9 zpo`@U?0DTX;ZsAz0=)P=a7gl=g;!A`F#}ataOOp(dC#kwSWw?^*fIU(EzZMHMK8^3AspG01^jE$GH z8W{K>F)*~SgbaiXgbaiXgbaiXgbaiXgbaiXgbX|w22}Tdx4-)@+z+PLu$Pd5kb#ha ekb#hakb#hakb#hakb#hakb#hakbwutz`p@rZddRC literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.ClassFactory/TestConcreteFactory/obj/Debug/TestConcreteFactory.dll.incr b/SAF_VS2003/SAF/Test.SAF.ClassFactory/TestConcreteFactory/obj/Debug/TestConcreteFactory.dll.incr new file mode 100644 index 0000000000000000000000000000000000000000..00e21d6d87b64b9e7224c85e9e2f709ad88d750e GIT binary patch literal 1564 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 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.ClassFactory/TestConcreteFactory/obj/Debug/TestConcreteFactory.projdata b/SAF_VS2003/SAF/Test.SAF.ClassFactory/TestConcreteFactory/obj/Debug/TestConcreteFactory.projdata new file mode 100644 index 0000000000000000000000000000000000000000..df0e2b47eab5fa052269ad096860c19143aa81f2 GIT binary patch literal 5256 zcmeHL&1(};5dX!tHjO2=6-0B85K4(!L#cY{LFk7Sdl0E2A_etAU z@M0BD{sEpmc@XSLJP7_HJ$Vp8f4}$PHk%D8MU2?IWOm-pyf^b^-puUVeQ~%Wxd&{` z4v2ySz?UX=$T)}z3}X?uaR)_nEs+AWAi=A!nN6$-x|bl~7Kisb-0E=B;Wmd;4(~I# z2jkRpiyEbG7&m#H!V)fGnY0_Yiy3l&4UAxbE4hS0jN&@+B6-W?YL-S8w{WkJ-;X~2 zPX4A&;4;UQD6Qb66gYE%+DiP55=+w}Wv+6LA8UOvLu%2iaA)HRlwG0~`EAMtPPttO zHDBNg?nV4kz8cU&(e-ZiZn;mRb8|S0`}Dkay@WZeuvb1q>$j_@Ju>S?R^QPK*II42 zJ1R66%HpK9e(kNIIP_n+Em7-_L^MYE@BY#F8#K|Y44P&vui`vyo~7kJ;@TN?^MoAJ zH`xgsV}Fyd=0MpTbODEmm64A*ZjxZL9atyLW;&Pyl{}lxz=xQ5wlV-eVt7UY=^4uW z$@ZRDr6r4VCey0NMt6-7c^svv$_Q%32^=4jn!J-xJBoU@InwHsF9nYXs+rvcwON9v zJv9_wXuBXs^uO8P#*L5K?`cu{6_2~w{{CHT|7Y4h;Oy5kUdfZi>dyo`*9+S~w$Z>YMWR851&Xm%%G2$>!}D;vNy$ zMhME~CBjw0PTLxDzn?Hf0gC_E5@hV3;hJ?y(QR+Coi>MdkdjWZ!g~*STSHHTwuZFO z)}44~>yGGbCr=G!QQ;}k_%~i7GS$!1d?oB7-B$v6Qf-lI^IKfFPZjh74Ru$9!aLH$MEb|E8u&KOuuH$ z&*-H&_44hv2OksChtpr*B$_wO5WSPjz*oX-vOl1aIrcXR0T-vbY~I;fQylS-kPRwfq$d@0$ztx A;s5{u literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.ClassFactory/TestConsole/App.ico b/SAF_VS2003/SAF/Test.SAF.ClassFactory/TestConsole/App.ico new file mode 100644 index 0000000000000000000000000000000000000000..3a5525fd794f7a7c5c8e6187f470ea3af38cd2b6 GIT binary patch literal 1078 zcmeHHJr05}7=1t!Hp3A*8IHkVf+j?-!eHY14Gtcw1Eb*_9>Bq^zETJ@GKj{_2j4$w zo9}xCh!8{T3=X##Skq>ikMjsvB|y%crWBM2iW(4pI}c%z6%lW!=~4v77#3{z!dmB1 z__&l)-{KUYR+|8|;wB^R|9ET$J@(@=#rd^=)qs85?vAy(PSF5CyNkus435LVkZ$rj zNw|JG-P7^hF<(;#o*Vk}5R#e|^13tBbQkeF?djULtvqyxd3<{9 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.ClassFactory/TestConsole/AssemblyInfo.cs b/SAF_VS2003/SAF/Test.SAF.ClassFactory/TestConsole/AssemblyInfo.cs new file mode 100644 index 0000000..9f89a32 --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.ClassFactory/TestConsole/AssemblyInfo.cs @@ -0,0 +1,58 @@ +using System.Reflection; +using System.Runtime.CompilerServices; + +// +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +// +[assembly: AssemblyTitle("")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("")] +[assembly: AssemblyCopyright("")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: + +[assembly: AssemblyVersion("1.0.*")] + +// +// In order to sign your assembly you must specify a key to use. Refer to the +// Microsoft .NET Framework documentation for more information on assembly signing. +// +// Use the attributes below to control which key is used for signing. +// +// Notes: +// (*) If no key is specified, the assembly is not signed. +// (*) KeyName refers to a key that has been installed in the Crypto Service +// Provider (CSP) on your machine. KeyFile refers to a file which contains +// a key. +// (*) If the KeyFile and the KeyName values are both specified, the +// following processing occurs: +// (1) If the KeyName can be found in the CSP, that key is used. +// (2) If the KeyName does not exist and the KeyFile does exist, the key +// in the KeyFile is installed into the CSP and used. +// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. +// When specifying the KeyFile, the location of the KeyFile should be +// relative to the project output directory which is +// %Project Directory%\obj\. For example, if your KeyFile is +// located in the project directory, you would specify the AssemblyKeyFile +// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] +// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework +// documentation for more information on this. +// +[assembly: AssemblyDelaySign(false)] +[assembly: AssemblyKeyFile("")] +[assembly: AssemblyKeyName("")] diff --git a/SAF_VS2003/SAF/Test.SAF.ClassFactory/TestConsole/TestConsole.cs b/SAF_VS2003/SAF/Test.SAF.ClassFactory/TestConsole/TestConsole.cs new file mode 100644 index 0000000..ec5487f --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.ClassFactory/TestConsole/TestConsole.cs @@ -0,0 +1,57 @@ +using System; +using SAF.ClassFactory; +using SAF.Configuration; +using System.Configuration; +using TestConcreteFactory; +using System.Runtime.Remoting; + +namespace TestConsole +{ + /// + /// The demo show how to use the SAF.ClassFactory service + /// + class Class1 + { + [STAThread] + static void Main(string[] args) + { + //set up the sever side remoting for remote class factory. + RemotingConfiguration.Configure("TestConsole.exe.config"); + //create the instances for class factory + ProductFactory pfA = (ProductFactory)ClassFactory.GetFactory("ProductFactory-A"); + ProductFactory pfB = (ProductFactory)ClassFactory.GetFactory("ProductFactory-B"); + ProductFactory pfC = (ProductFactory)ClassFactory.GetFactory("Remote-ProductFactory-C"); + + //creating different product objects on each class factory instance + Product p1 =pfA.GetCheapProduct(); + Product p3 =pfA.GetExpensiveProduct(); + Product p2 =pfB.GetCheapProduct(); + Product p4 =pfB.GetExpensiveProduct(); + //these two are the remoting calls because of remoting class factory. + Product p5 =pfC.GetCheapProduct(); + Product p6 =pfC.GetExpensiveProduct(); + + //calling the methods and properties on each prodcut object. + PrintOutProductDescription(p1); + PrintOutProductDescription(p2); + PrintOutProductDescription(p3); + PrintOutProductDescription(p4); + //these two call are remoting calls. + PrintOutProductDescription(p5); + PrintOutProductDescription(p6); + + Console.WriteLine("Press enter to finish"); + Console.ReadLine(); + + } + + private static void PrintOutProductDescription(Product p) + { + Console.WriteLine ("Product Name: {0}",p.Name); + Console.WriteLine ("Product Color: {0}",p.GetColor()); + Console.WriteLine ("Product Price: {0} \n\n",p.GetPrice()); + + + } + } +} diff --git a/SAF_VS2003/SAF/Test.SAF.ClassFactory/TestConsole/TestConsole.csproj b/SAF_VS2003/SAF/Test.SAF.ClassFactory/TestConsole/TestConsole.csproj new file mode 100644 index 0000000..2ed765f --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.ClassFactory/TestConsole/TestConsole.csproj @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SAF_VS2003/SAF/Test.SAF.ClassFactory/TestConsole/TestConsole.csproj.user b/SAF_VS2003/SAF/Test.SAF.ClassFactory/TestConsole/TestConsole.csproj.user new file mode 100644 index 0000000..21d133e --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.ClassFactory/TestConsole/TestConsole.csproj.user @@ -0,0 +1,48 @@ + + + + + + + + + + + + diff --git a/SAF_VS2003/SAF/Test.SAF.ClassFactory/TestConsole/app.config b/SAF_VS2003/SAF/Test.SAF.ClassFactory/TestConsole/app.config new file mode 100644 index 0000000..d24e52b --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.ClassFactory/TestConsole/app.config @@ -0,0 +1,27 @@ + + +
+
+ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/SAF_VS2003/SAF/Test.SAF.ClassFactory/TestConsole/bin/Debug/SAF.ClassFactory.dll b/SAF_VS2003/SAF/Test.SAF.ClassFactory/TestConsole/bin/Debug/SAF.ClassFactory.dll new file mode 100644 index 0000000000000000000000000000000000000000..3532fc8b6000f1cbab0edeeaac5b6226d0e1e432 GIT binary patch literal 16384 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 MI1+FqPb%7 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.ClassFactory/TestConsole/bin/Debug/SAF.Configuration.dll b/SAF_VS2003/SAF/Test.SAF.ClassFactory/TestConsole/bin/Debug/SAF.Configuration.dll new file mode 100644 index 0000000000000000000000000000000000000000..038afda542d290d081c167f577897c4c480c3684 GIT binary patch literal 24576 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 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.ClassFactory/TestConsole/bin/Debug/SAF.Configuration.pdb b/SAF_VS2003/SAF/Test.SAF.ClassFactory/TestConsole/bin/Debug/SAF.Configuration.pdb new file mode 100644 index 0000000000000000000000000000000000000000..ff2b21f6a1a421faca45c9a229c8053afec3acb4 GIT binary patch literal 56832 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 WT|m<5LNxspdf-AV_;i^a2mU|IoXXVz literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.ClassFactory/TestConsole/bin/Debug/SAF.Library.Security.dll b/SAF_VS2003/SAF/Test.SAF.ClassFactory/TestConsole/bin/Debug/SAF.Library.Security.dll new file mode 100644 index 0000000000000000000000000000000000000000..b19072f85497f5bc1d4bcb4b8e311e8fe1e46023 GIT binary patch literal 3584 zcmeHJ&2QXP5Fe*WNm`nIQI(1ooPJ0kA(N1;N=pU1-R(!xv)g~SCRDpd6^D2E)7;DFQ%7dTLUGq#m&cLkI~g%B@! zzc=&d>e16(84Gyg}Rukc0 zCKhWCz{D(K5^WT^CykpoIDQ#RKRd%tn_gG3)u>gG zls$gP$Rg&H&y85a*66I99>> zGx%ZV4+Rn2%Ycb-bPLe{bH5p*TrBL-I!us4^UD0%jAuE~nk=%_lu#9q`CY+J1g{A$ z3;rtjkij}n2_6%41eXLa3SKiVi|f=sXZ{h+*+mC{c^!zp?VHRvgKk2#2e}W>+q4NU z592oARvHre3BeJ;{emUIF~JuEPYF7LK5#o($aE)gv*06wqk_*0mIaRs+JdhLx`K=J zIQ1^2l^gFneF?#1q&X1%kloz@I+Y3-51xo>%|Jaz-L8sN3j!J|HIs!%`xl(VkHRS( zo%3r-ch#p{RZ%^5BOUlvvRiSY>ejS68z`4OP$`a8y&ANRtJX=Uu1X26O|_XQvfL!n z?cyVT&?e69Dk^YVw(o^2mbqwF=@>_J3d+qOY3eS{X0%gNbw@9Dv56Wj?RyJJrwCQ3 zHQg?Pa#U|PVXM=k9EE3nuc@Voo#Kj$UF|oxKAplDKWVQ+R?&*@cwrPLz8jOg&Yn|k zS95|OdQH`)qd>(}Q=y;Jh0U9Gdbe(#{Pgqvd#`-(@pXE@>@ju>?ilR<;=6{f)2BqfDDjb&k9b5}heWx)KB@96wAihEj61_%*-1 z2lg8~t^X@KhV;RQiI(onDD5ifi5>f_$KQ^Zi+DY`nP=nRssgB4vgr))FinFRqe(gm zehhd7G>@-(Z~dP30E13n8t-G8*Zju-K1I@BML7fR(FVLaq~XV>fE0X&be1B~*exH) z8Au)M#*jPcy*{L2=Hav6_oaW^*w>JRElB?g=+OLK*p7${D#KqLe+t$K zPD!uU?lxIN&Tk=GNA&n`6Z1*Y$s@18Lrkv3(YPZ{)-BR{oR#a&LRUk3C6^KO-(k!V z8l}Bd09Bx;=@~(o(+v8&A=OF5Hbg8zTSPXM;N7AL_^e9BG_}Cn&~~XQQ6;idgI&Nb z(YHDO321oYjVsZB4p-8n1?144=ZaqXL~5|B!%owpR4vt=lQ<_cAN)i(&OC4CxYC5U z?mgc0nM}cVL^b5(BEq|$Nk!^>r_SBg{;OIa6CWjH6-$m)WYEGBzgIt8IyqDXr3ImXL2Xkk)dmv9f5f%m=HRLzPU0Yl z|A>>t(WUWyO|FEZrDM{(kAC;=E?3BX@7>G0YP(@uj@7!<%6d7M)2g*Yt(Z5AbSisL z6NI_pPh_Zjf-xcO8E$7l0prJI#8`pkTZ}i)TX(P3f>J^rTlGms6|PHZ-7CU}_h3q_WiKr42#3V6AWJFT|_#Zg{eq9!#ln|fW@F}nm;Bdlk zyx919!EpCEKZ>0}f6!NG4)hvy7-3f6ul$dg2?g28#%leOMf>F(fwL*97hJI$&o2GqwZZ$fir}*k; zv4XHhM3sojaFGb0nqY)Y0o3sZQTl(p{+G2s;sUt>@qqupyYQ^M1F&~Vj0oZ;Ur?^@ zoBOE$Gp~0a>%GqLL-Fzbc5mZpi{|u7yW2VHwk)A{>ldcO=Rbl@p76@J(@%T;We&jk XM;_oDFhSUeJc9ojtN<$zPX&Gf+ShFN literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.ClassFactory/TestConsole/bin/Debug/TestConcreteFactory.dll b/SAF_VS2003/SAF/Test.SAF.ClassFactory/TestConsole/bin/Debug/TestConcreteFactory.dll new file mode 100644 index 0000000000000000000000000000000000000000..770662475ee015115de67d2272ee23afee4f5f3d GIT binary patch literal 16384 zcmeHMQEVJn6}_`wuQyJ-iR(mluu;abt+;Nq*p7j;gkpQwZbIyh<8|B=f}Gji$$FdF zon>a6dMlttYEk&BLC7 z{oJx%HMUQsQn~Q&@bpZB5!MLCX5bU2fo5kh^;y%T- z38Hl-Vtctvv=6#V{Y1Un+jhe$QM|4_4t%-}Cmnsw0e){k1llA=FK-|zD$(VnWm|b5 z$!!7^wo!4^l?h~@v~ZFt3my)F)+^h{x)L_1@+BhZ0WYf$2w%%dE}rwIDgEo z&{-IGb=#OlzbB~Qii?+bZ_K;K9Sr*O7$oj!P`_*3!UxFr!hacer+jPoj>}_Xe${s& zn{oM_V2n*Jei+m@<6<-Rfn&{M|0x(_Gxnc@`t7li^5%Cfo?9>CSnJ2pMYNDjXDfq) zPb|HAd+uxV$CI-^=-I%uqx9pKvXe8*S##CO>nVIJ6S$Ne8yPvl)k}-I?Icl2rVP!t zXSBRyS~bz8%u3$U9o^TNxo0k=_1tQ)S!=Rd$e}x$%6@uE@n$=JJGwTS98Hd&7#rh8 z+)W1LP25!dU&8k+e3JVI2GXB(tWu?DiwW-GUfkdP7qZj~V)(OD|C1Naq;WnDyuxi$ zhAEvv2dF&N`-%cLqJJtUc+r85Fq7ol)k8RA3JT^rbAoPVO<{idV0%7rvAlDP#t3T) zeO-A0-wnSn^0vsgMgB|Vp$NB*h&(H@Ao7bMZ;Je>$hRYJA}_xe=I6^8*)%PJ5k?Bo z3Q!!isG#RP)F$Yg9%>iAAA5cs()J6WZqzyj{YFrf4hj0Bpf)-z=#HRv`mi8U*sp{7 z1a%2IK!bFC-BFG})|6wA&x`zDX_ynDTdl*2&pe~Y1(h>hP$r~3tk*M*&d9d9jnP+X!k)&WGX%P zB_mh^S`eiR-Vu6OBK9C&gpMFu1edA<@)+%>=(@Xty%Wns5E^9>hl1leb|5Ya#_N?+ zb7o=H(4QdQV76@~$%0`}+0L7mQOZ%aW;=SB<}}M*(Tu6uf_~*(?ioGr(7c5hdB@v; znnfZ%@-|anozb7&p=CiYn~uJ%(Swv)(Y2}%5F>!6*Q$EOE?x7T2?h;1H+;a)RW(>X zsXGBP;0Bu{@5)rvo#l*H)(Ix_Rw*x)lxd(z)Opi(C@;9eW-hTw@M(a}l3Afi+t$lD zqjpxWvB#u?jW@UI==BXVC8J40S~s*>wp6S%`Yh>|jo^(9sa3;SwVDK5w6ua=)~u^d ze9UUiDiv3p#wPE2G&ZEna#gF;nl)6el!~jC#)EHcPV08wDpi{|E|#2n9y~77C9PNi z&856e@+?%;a`k3-ps+}%0#Q#2JGxF9Rk3Q!lSL-9tCT1FOSd|)2mwQ-y3Q(KXZ>Vm|7}xewcp8X_3@ndq4wSpX`d?nvBS^4L?vI5fiJ^=Q!N zKKjJ6aA@pTzke(7m&|vkHV%KIoOzkzKY8xb(&6!quSQjRsJlfa1xEr$yk&?Ikyt#+ zkH(Q$BIc6%p`CMU-=g%W&&1BwNAI2Rupi~#ru*vY911eCa}IHz%#onSz59!*ijrUv zX;mXiBob{?z+MbTn-a&7XyrATVtB5U%In@cIV<1dy2`c2;=j8GTb5I%l{SnytyFQ> zY+aZ2o2~8+B35V6z8>*&Enx?x^?EJu6Py_SPHxb%9e+ExIDzN(7DjFvY8gjmiL$f| zIZX?wouPA-0mfcWGpKXH<>e{N(e+{G6#E$!Bo8w~RXP!m`8*2;aQ4QqDwx_V0 zE1S73!Pb&B#UINkC6QASPeC82kKvc3kJ4k3C1Dlg_Y7u+R|*Sf4P0zxvnV|~GLnj9 zpo`@U?0DTX;ZsAz0=)P=a7gl=g;!A`F#}ataOOp(dC#kwSWw?^*fIU(EzZMHMK8^3AspG01^jE$GH z8W{K>F)*~SgbaiXgbaiXgbaiXgbaiXgbaiXgbX|w22}Tdx4-)@+z+PLu$Pd5kb#ha ekb#hakb#hakb#hakb#hakb#hakbwutz`p@rZddRC literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.ClassFactory/TestConsole/bin/Debug/TestConcreteFactory.pdb b/SAF_VS2003/SAF/Test.SAF.ClassFactory/TestConsole/bin/Debug/TestConcreteFactory.pdb new file mode 100644 index 0000000000000000000000000000000000000000..1af0d05bcfa43c51e5ac5a84bb836e61874f53d2 GIT binary patch literal 24064 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 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.ClassFactory/TestConsole/bin/Debug/TestConsole.exe b/SAF_VS2003/SAF/Test.SAF.ClassFactory/TestConsole/bin/Debug/TestConsole.exe new file mode 100644 index 0000000000000000000000000000000000000000..b2063930fb82e34a662fa6477eb65307f4b08be8 GIT binary patch literal 16384 zcmeHNU2Ggz6+Saw+iNE=aonZ}1a*wl$_Zp+$0jtTYS;EAj){NLtm~FG$eCSVuP5Ez zS!QO77bx9IZPiLev`@4TAgY1{4^&h_v;t8X6bXs`AR#1p0ab!leW=6(JQRc)zH?^A zo{f!Zil7hNW8ZVn-#v5gH+N?4j6HMr6VygTDYVO%iC#p{loh@`Yr@@g{f~R-hh4As zzi3Rq+CRVI_*TtxOP*b^igvZ?23A2?UcG8LRVz1_w<_+E%Iwr00sIm! z65W*+Q!Bebv=f%Q`iTy-dbZarqGY->^wWtEnLw=u&@Xj?!6!9Fbwd-fh%RJ2-z!3s z+OiNh#zIR_7S(4wRdx}`wbBJNjvGQtP?l&sp=wbhpb^jrXaqC@8Uc-fMnEH=5zq)| z1pbc@_!hrcgZSOlM0*?WxvQN-24pn6gkK%?4H@)oIJVbAg4*DRh`PO_Ea8>3JLp5+ zZtwOMeTV0_=sP>yUc~O|aQC3=OLdCc*WMZG9qCZ-Oow{9YY?S(^tOjxD(pJKt~2b? z(s?MYHi#0s2d@FU@i6rbwbAitir%l_HQj63y%)^;i|E&_>-!D%?}Pq0f(!{dOvqsn zAQLhN_rnb%DE_9wxYp4EU>jg!=kmGy{V(?(ztMhZ^7+X>zVe6XzW0qC@aJwmpC3E5 zn0M=5QBB}OiKq+tV?#qDES{fNevpBXnJC-7f66WfuGbLjgj@C9vO4b;E}qY+LcNr< zW@<|Xq^I%xXT}XVv*CAw`-U^anbDDB$Jj~jR0f|%u>)TrT0{RQmh*w9*|xFb(*N1tZ~ChwTa!S@g7Uq(MLUUubRkP&K3UTYG6;-J49BfP+1BVZ?Mtu5+- zn0&Wjo&DSc#Hi8^I!pu5K1Wknj!)4e;Li*HrSLa|zbpJYgT2Ru&j?=@{($gr3jc}l zH;iB73)A0>0mL6Nd(9rY+nh4H$us#V-!a+#dvGSMi8=SXX_#&TR;-=1*#0Et!dm-7 zO(DjloM?~iYtmksk3l<%IAt;ZwqI7yen{ws1%I=Y==G z57L9+d+9N{%{+=qO6Dj%O%IwUz@G$vhQ1H`GxUOaEA`UP%|)>kA-@c{mwsb9I6Iud zA|E(s=+jgI?-TwJ;UmI#2%ivsMtENMJ;IB^??sMrd`-KDQq2&xH#=rAYo?pf7{5nx z@i7^gao7`WL``jFi!#7<%Z$5JFRNRLFNA2xXVj{qieGfSvQwaZ!w*!2<_Z^8F(A22 zhLh1WV>{K@Q1n!wqN|9`ddQ72XR+Laxq1-kIpr5UrxrMFl`?$2MTf|oQ_E!>gY9F! zuPTLd`pca;j`M@=mF`dCY?Hd?erOn5dV7y0=BLdCy)_ z72CUai!pAk;W?$1V6!Wl=Vr%*TdCRA##WB%vQw&iHcx)DJAv3{=e!dnaR^UWCg<3t zs_O?%(I>fkmFz-G*!F3pHY%l9Q*`Am zG+Ze0N|;nZEJonODm)V_%C5z01^UU=nyUKFeJZv^%aZQ&oIp)GRfTHoB@t>=Qo$lG z5#mg48LJ5bR$NihR5cjk8}X5OQn-$=c*&(IBp3H(g=M% zissV_9tW-2ESg1y6~y0+$S>go_5DOQTp7bNFQa+MC^_oJOf9L?!EBScEZm8^jT0fIY4jX`ly2t~)PZM&2#-g5EH*yJ zvc=M7iuYozp2Z2*JGrXl#wGVTr7}xpepcfzHaC!!6-hIVfJQ(gpb^jrynh7RuVu2(PD@R5Q4U6)Yl`Q`8t-oT>}|J;k8y6@`Nn%= z43}eN1-sUmD-qldznqL8L-oGQrGQEs$b2<92G?uh^~UQG7cbV;*3=BI>}Hc7q2Y&3 zU~6k@u;3qz@XP;bBpo>a&(URO|0#W;g=(o>3)NCM$OipY>l7mW|O~*9* z+G|rmE%i#0F5%;4lCoEQHe1SpvWDf>{O`3knyZ*ov%UOnwq@0d0~eg zIK-=3=bh1VjZmAMlVaX^-~H+E^i58Or)Ba|n0O6Uwh&)x%@)ghPz + +
+
+ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/SAF_VS2003/SAF/Test.SAF.ClassFactory/TestConsole/bin/Debug/TestConsole.pdb b/SAF_VS2003/SAF/Test.SAF.ClassFactory/TestConsole/bin/Debug/TestConsole.pdb new file mode 100644 index 0000000000000000000000000000000000000000..1f23fe3da9a53d7755c7604b97ccac684c5446d7 GIT binary patch literal 13824 zcmeHNU2GIp6u#50W!qA85kZSTD-=>%-Q5-}NDQ@XTiV!$pH&md#%7t$;)ZsI?976F zAZ{Y@MIVSUMiZL=^@W6(_-fMFn8uJ`VgfIc7#=h+`XXX{-~p-McV}*y-9Vd`0_%1T zoPKxCoqOlrbIv{I&fOWz=sD9e({?x>jkmUj2NS*F?U7ilp{}tzAwX5~zgUmrm%Ii& z<$(XU0yJ>?=8rQzEnf`;t7A8p@9h1VAFplGb})`T<}#o`%*-I{J2IkA6{~?8hxT`V zzv6P}R6IZ~W&q`zgiw`u6MpKN`5=4pm|4$h+YXuYymZf_`wX>zjGNr-!eB^}ocl0*3Kv zbH_O?Fs(61FN8GQ%vhn2ZCR#&u{+>}3}XpikwYfm_#ZU8B8raya_Vq?Jl1 zZNsu7C`9y;lx3w;x^3phq*OPvmN{a0%MsmjGP<&^nwQKV>cYn|)d1J%d5rD%@k#yC zx6>N;WeXu%nfp2V5cm6}kHDqtpZ-M;VV!sV`>_HFd5EOe|5c7*(d)l^XEM>%JCrc< zIo*hx!-l+kGtnN4ZDld}IztKykvKz2uNzV*jk_VmQ)WmRmZ50Kl0E9|5dmrFm?e8$ zRFG0{l`2lr6J^wMwNEcze#BWvLhn_QR!*w5T zn*;f*of$PE2aHkE&SVecT%jrCaVhi>mUBeBlE|?fO?OE-$6hSoE#-`D#qzk6GtPl; z_tVCCg{4l48fLeK^8;N0yEYXk zQRX`fi8>&&e(56?pD8sg&%0RWvtVlRH~1!)q~t8~Ta6}o`<9j?$1d>XhP_zdtZ;B&wfFbvE9Hv&yy6Yv;t6YvCZGmtt#elC0n+yeX< z*b4jt_yX`OFaivST_Pafa5)Lw3~sptZiMVk9EE%xd^sR>!1n;^ggQ|E$vE-~m;_xF zc>afFQwRgG918Tq?Z5z}0mSQo=#>5a13A}&ir{P)2BVD_0KW^Khxq7aPkfhetc_j| zLlbMT?#F-{_<0wpe_ju|$nw2Xc#aO1qW?L%_g4A#_iAH-<(0VqNpKT5MnVp35u0RA zWDe2hN;GJ*R&4Ry8|#pLFj$rsF~n3fJu6m8JHTYvj>Pv4whr}V?cCVVJ`?){@!o3J zrd%wVy8%?Tb7ZdVeEV0lpDfeKRs8x7Bj?{O5vsibl@P>z%*_ulKbM2cRlNNCtp%#IT}^JwIY+?3~V}HuTI& zl&OyfP?Qhd08~dgl=*Z|8sIxK_i@Vp$K3_)wSP0}2Vf)bZ-CX1u`Nx+_gM9P2Teo& znD6&}+~QLiXn^aT-vH2Fb>j4ndhvdcd;27q@8viT5TAh+;atM~{`b!*C37Oi?bxBN zo%&jF0l9-QW*ELD-76pGBP4mw=$y0RHqjH`*3sS(Zx=6q6S?lXqdYfIZ4|PO=Lza8 zLCJ|#_}3sCYqK$p=RVA1Bo*g~&bf^yCgR{y_iI(#a&>MN-iuj`KY8~piB?F!4J*uJa905A**;>1_Be z4|pEeePG7_pG)Gu<8pKVWn1P5K7)CJnswrgqjlyA1_JMQfIP=zK3NT>m1sSm?w!cYT!SqZUsI7 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.ClassFactory/TestConsole/obj/Debug/TestConsole.exe b/SAF_VS2003/SAF/Test.SAF.ClassFactory/TestConsole/obj/Debug/TestConsole.exe new file mode 100644 index 0000000000000000000000000000000000000000..b2063930fb82e34a662fa6477eb65307f4b08be8 GIT binary patch literal 16384 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 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.ClassFactory/TestConsole/obj/Debug/TestConsole.pdb b/SAF_VS2003/SAF/Test.SAF.ClassFactory/TestConsole/obj/Debug/TestConsole.pdb new file mode 100644 index 0000000000000000000000000000000000000000..1f23fe3da9a53d7755c7604b97ccac684c5446d7 GIT binary patch literal 13824 zcmeHNU2GIp6u#50W!qA85kZSTD-=>%-Q5-}NDQ@XTiV!$pH&md#%7t$;)ZsI?976F zAZ{Y@MIVSUMiZL=^@W6(_-fMFn8uJ`VgfIc7#=h+`XXX{-~p-McV}*y-9Vd`0_%1T zoPKxCoqOlrbIv{I&fOWz=sD9e({?x>jkmUj2NS*F?U7ilp{}tzAwX5~zgUmrm%Ii& z<$(XU0yJ>?=8rQzEnf`;t7A8p@9h1VAFplGb})`T<}#o`%*-I{J2IkA6{~?8hxT`V zzv6P}R6IZ~W&q`zgiw`u6MpKN`5=4pm|4$h+YXuYymZf_`wX>zjGNr-!eB^}ocl0*3Kv zbH_O?Fs(61FN8GQ%vhn2ZCR#&u{+>}3}XpikwYfm_#ZU8B8raya_Vq?Jl1 zZNsu7C`9y;lx3w;x^3phq*OPvmN{a0%MsmjGP<&^nwQKV>cYn|)d1J%d5rD%@k#yC zx6>N;WeXu%nfp2V5cm6}kHDqtpZ-M;VV!sV`>_HFd5EOe|5c7*(d)l^XEM>%JCrc< zIo*hx!-l+kGtnN4ZDld}IztKykvKz2uNzV*jk_VmQ)WmRmZ50Kl0E9|5dmrFm?e8$ zRFG0{l`2lr6J^wMwNEcze#BWvLhn_QR!*w5T zn*;f*of$PE2aHkE&SVecT%jrCaVhi>mUBeBlE|?fO?OE-$6hSoE#-`D#qzk6GtPl; z_tVCCg{4l48fLeK^8;N0yEYXk zQRX`fi8>&&e(56?pD8sg&%0RWvtVlRH~1!)q~t8~Ta6}o`<9j?$1d>XhP_zdtZ;B&wfFbvE9Hv&yy6Yv;t6YvCZGmtt#elC0n+yeX< z*b4jt_yX`OFaivST_Pafa5)Lw3~sptZiMVk9EE%xd^sR>!1n;^ggQ|E$vE-~m;_xF zc>afFQwRgG918Tq?Z5z}0mSQo=#>5a13A}&ir{P)2BVD_0KW^Khxq7aPkfhetc_j| zLlbMT?#F-{_<0wpe_ju|$nw2Xc#aO1qW?L%_g4A#_iAH-<(0VqNpKT5MnVp35u0RA zWDe2hN;GJ*R&4Ry8|#pLFj$rsF~n3fJu6m8JHTYvj>Pv4whr}V?cCVVJ`?){@!o3J zrd%wVy8%?Tb7ZdVeEV0lpDfeKRs8x7Bj?{O5vsibl@P>z%*_ulKbM2cRlNNCtp%#IT}^JwIY+?3~V}HuTI& zl&OyfP?Qhd08~dgl=*Z|8sIxK_i@Vp$K3_)wSP0}2Vf)bZ-CX1u`Nx+_gM9P2Teo& znD6&}+~QLiXn^aT-vH2Fb>j4ndhvdcd;27q@8viT5TAh+;atM~{`b!*C37Oi?bxBN zo%&jF0l9-QW*ELD-76pGBP4mw=$y0RHqjH`*3sS(Zx=6q6S?lXqdYfIZ4|PO=Lza8 zLCJ|#_}3sCYqK$p=RVA1Bo*g~&bf^yCgR{y_iI(#a&>MN-iuj`KY8~piB?F!4J*uJa905A**;>1_Be z4|pEeePG7_pG)Gu<8pKVWn1P5K7)CJnswrgqjlyA1_JMQfIP=zK3NT>m1sSm?w!cYT!SqZUsI7 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.ClassFactory/TestConsole/obj/Debug/TestConsole.projdata b/SAF_VS2003/SAF/Test.SAF.ClassFactory/TestConsole/obj/Debug/TestConsole.projdata new file mode 100644 index 0000000000000000000000000000000000000000..f58b6c2b8656d8f3647cf7725a81e89700616375 GIT binary patch literal 1544 zcmeH{KTCp96viJTAtb~hqJlu8!6>B+8rmcg8=|0yAS22Q0?p{v!CD;KTWXKSK11Nr z+|z>UZv&6;c!}HF#d0_uPB_-Fwfy=bZLOx;g}PO1A+UNYBuTjZyR}rx}&C ztBMNl?;(+b@{Pl2i`tOKH-Y?2X-#9XsFX5VhnH2=zVdimoGtjfb{TzA<9w5E(wvsC z@mMeM8YS^zjSOq$(Upl=!>4KM@6khEbSr!=PvGmZ%f2uCr1O8W|CGyUK_zW+qMByO z{Whm-p1|(RkOf`b-2nU%95J^0W9Z1{ZE9!WyA0GZSONB??EUn?t-^=E4S=FHPXfR4 zecOA}Tt6K@95e!^Q~a(JI&3%-i}h2g=172$=BW4`Ucc1yHjYu_t6I|t z(xBpjz+hNYTA(MGWkvJ!oQj)U$EmuGk#=1r?`-za?odq@HTx^SSW9% + + + + + + + + + + + + + + + + + + + + + + diff --git a/SAF_VS2003/SAF/Test.SAF.Configuration/Application.Configuration/Application.Configuration.csproj.user b/SAF_VS2003/SAF/Test.SAF.Configuration/Application.Configuration/Application.Configuration.csproj.user new file mode 100644 index 0000000..dcd2b69 --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.Configuration/Application.Configuration/Application.Configuration.csproj.user @@ -0,0 +1,48 @@ + + + + + + + + + + + + diff --git a/SAF_VS2003/SAF/Test.SAF.Configuration/Application.Configuration/AssemblyInfo.cs b/SAF_VS2003/SAF/Test.SAF.Configuration/Application.Configuration/AssemblyInfo.cs new file mode 100644 index 0000000..9f89a32 --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.Configuration/Application.Configuration/AssemblyInfo.cs @@ -0,0 +1,58 @@ +using System.Reflection; +using System.Runtime.CompilerServices; + +// +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +// +[assembly: AssemblyTitle("")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("")] +[assembly: AssemblyCopyright("")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: + +[assembly: AssemblyVersion("1.0.*")] + +// +// In order to sign your assembly you must specify a key to use. Refer to the +// Microsoft .NET Framework documentation for more information on assembly signing. +// +// Use the attributes below to control which key is used for signing. +// +// Notes: +// (*) If no key is specified, the assembly is not signed. +// (*) KeyName refers to a key that has been installed in the Crypto Service +// Provider (CSP) on your machine. KeyFile refers to a file which contains +// a key. +// (*) If the KeyFile and the KeyName values are both specified, the +// following processing occurs: +// (1) If the KeyName can be found in the CSP, that key is used. +// (2) If the KeyName does not exist and the KeyFile does exist, the key +// in the KeyFile is installed into the CSP and used. +// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. +// When specifying the KeyFile, the location of the KeyFile should be +// relative to the project output directory which is +// %Project Directory%\obj\. For example, if your KeyFile is +// located in the project directory, you would specify the AssemblyKeyFile +// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] +// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework +// documentation for more information on this. +// +[assembly: AssemblyDelaySign(false)] +[assembly: AssemblyKeyFile("")] +[assembly: AssemblyKeyName("")] diff --git a/SAF_VS2003/SAF/Test.SAF.Configuration/Application.Configuration/ConfigurationManager.cs b/SAF_VS2003/SAF/Test.SAF.Configuration/Application.Configuration/ConfigurationManager.cs new file mode 100644 index 0000000..f46ca8b --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.Configuration/Application.Configuration/ConfigurationManager.cs @@ -0,0 +1,90 @@ +using System; +using System.Xml; +using SAF.Configuration; + +namespace Application.Configuration +{ + /// + /// A sample configuration system for the business application + /// it shows how you can extend the SAF.Configuraiton with your custom + /// configuration manager and objectsl + /// + public class AppConfigurationManager + { + public DatabaseConfiguration DatabaseConfig; + public MessageQueueConfiguration MessageQueueConfig; + private XmlNode configurationData; + /// + /// the constructor start the chain reaction of + /// creating all the configuration object used by the application + /// + /// the xml element containing the configuraiton settings + public AppConfigurationManager(XmlNode sections) + { + configurationData = sections; + ConfigurationAgentManager cam = new ConfigurationAgentManager(configurationData); + //create the indivdual configuraiton object and assign them to the public fields + DatabaseConfig = new DatabaseConfiguration(cam.GetData("Application.Database")); + MessageQueueConfig = new MessageQueueConfiguration(cam.GetData("Application.MessageQueue")); + } + } + + /// + /// Sample configuraiton object + /// + public class DatabaseConfiguration + { + + private XmlNode databaseXml; + /// + /// constructor is called by the configuration manager. + /// + /// + public DatabaseConfiguration (XmlNode configData) + { + databaseXml = configData; + } + /// + /// method that parse the information out of the Xml + /// + /// + public string GetDatabaseConnection() + { + return databaseXml.SelectSingleNode("ConnectionString").InnerText; + } + } + + /// + /// sample configuration object + /// + public class MessageQueueConfiguration + { + private XmlNode mqXml; + /// + /// the constructor is called by configuration manager + /// + /// + public MessageQueueConfiguration(XmlNode configData) + { + mqXml = configData; + } + + /// + /// method that parse the information out of the Xml + /// + /// + public string GetCustomerQueueLocation() + { + return mqXml.SelectSingleNode("CustomerQueue").InnerText; + } + + /// + /// method that parse the information out of the Xml + /// + /// + public string GetAccountQueueLocation() + { + return mqXml.SelectSingleNode("AccountQueue").InnerText; + } + } +} diff --git a/SAF_VS2003/SAF/Test.SAF.Configuration/Application.Configuration/bin/Debug/Application.Configuration.dll b/SAF_VS2003/SAF/Test.SAF.Configuration/Application.Configuration/bin/Debug/Application.Configuration.dll new file mode 100644 index 0000000000000000000000000000000000000000..5a3684846689c687ca9214c26630b6d7c2e61107 GIT binary patch literal 16384 zcmeHNU2GiH6+Sb&-o$|{v8_a;L}ivFY64-g6N~?r-R$Dj#7>;7F$r~L&(2OZLuO|- zGqZ?o2pEY{5JE!mQi+!qA)cvP6%@59Qr=LhcnRVO_nOS@6wetW- zt<-y0_sl&%_uO;8J9BmJwWptaoiap}MZJEV=mR{tl!V@xEJ2;W{ZgL(GWc=f18wT# z!t7ZmG}?jR49u2cnV#oIM%^}oj%PTYQ9WKWT7JVWZr!?NPvUy!QKBg=Ll-{!ZMiqv zRmvA`(sD%GATeU;bNiEaN%$d=L(g$@={;!)4EIC9ydVZ6eDAre7MoG{J<6>T(eD|E zwPlg$X2@m>M7!4NZp0fzn^XGD;D4Foi;?|I1pdWA5a=YvByMn045Gzi5C#@FiLHbN z+Zd>+QbP2_z;=BYa;&t7%66lusZt_3oMKf|A)pXY2q**;0tx|zfI>hapb$_9C(5$Ecxet~It3nW|gTmXIB z#~F1?h*5JF!Db=7Ygvked+s7s**l3wMsvT)()d08pVq5opG9-z>FN*DeT_?W! zpl`H8{Nh0-R~A@7jEKcY#V~{=q?=G#&NeK=swUCq=zbal_bwYKP z0AkJ29}!iK-otyV(WjV&M*kMNO&g{egZ;jA>owW|`8z32rw?O}zQJu%hOVV_8Oj#W zjb5T1+AfT7AmQ#2jw8GzIQ}Q0JLwu3R1mr!bT5!%$pb>mLMMfu5PDjuDbx{qUT7Ee zPOQ~6TqnH%x&!np{pU19dWPvpW)~H)Mm5k8p|=S=B=jMn6`@Ck)`b2_s3r6qou&$Q zpedT6>{5*Q7r86(QUlXi^7058(%zRmiB@Enmu1ob8K-#t(0q8>Z**My7qsEmQf#;` zwL;4eT&GU8ZW!4uI$nRuwj%Dd>YJN3J+o;C8#|+_8JTr6#CM$fRB74{Lv%dRu{&!t ztL@h@Od=|tYPp1Z4EqCFY3J;LidN(Y)JO(r+aq?A^6grXYCm#l^j+qLE8Y1+}kr03beY4SA{dFj%P?V z(bz_o)6j?Uovj9%r;CM~b$@&g)gDLL%E`QH{^=+KrYjh>^ z1&)33^AXX;=RO>0Ruw*1YVc|zPnbXk;UZ(0L~d{fIRckGa$1~))`T>KekGp~19~s} z2RS9BbC7;d&x*|`&OPyO961pGNqv``_c*6%Nw&gS2_J+F)IBL(TgLBVwx-xYEj9}#oUNU~C{5&CjAAdUA~oQF?*sP99H!v6DPFlxo4PWKCY?o(^juf$ z;#Fy&Ukm*LIw#1*whf8*c;bUILyosMcjh=ZB>Ew7$LlkLF?`IWBl+ms^(hJFt8LaI zehapb$_9CBc4$0Vnt~2^xMzTek5V6t<25kx8IardhI;?i(&_E$P=GYK%1+ z;{_KB;Q|s&h7!XCBpQhl6XHw=F_8-*n&^!&UXYlmh;YG$GN0#s=WJh_Zr#Y%uuHISsYo%*k8)(PoDIl0DhK6AFtvrSf6)gwu?%%WJ z%Ixd@{)iad{c*|Z%iEqm`TLFU{ry|4^qddhf5qQ*-G6DN5O;k$FO9~C2U(MrW73NO zH{b;p0hPcUpcI$|lmivOL%>{s>fi_F0}lfWfd#;9pqQxG_kXOt_hBPFz)anH%5g6H zPhGa#f2LVCJ7k_i)0+d6rT^Nt(oWL8(ynU#qMaQ}$7ok+V`+ySDl7+<{1$SZ!;o+6 z`_6Oy>&vd{2@X#?K^w}e0m=ZW90}T8_WhslbbJTm9|3z*nSoFf+hx~f9_uo+*EQux zx@0d(NqST(<@~=t4xCrbbeP@C-`I>@*yw+;;imw~$yVg?OqdQt8C(KrJ4OHRQGj;I z2hjG=w;Rg`q@AK|qm84?7XxYizjEyM+8?0*t0%aqLhAnnr{+{22M0Ex4)1mM0=x&H zF09To7!5~AtHfrMu+vb z4l_$KQq3bBHp>3mBZ<7e3KS#T&hHO$H15AWhCUS-%5KASJJOkZ+w)+;?#zGJ$ zTqc(JBd?n&qnGz6Iv!~4?O_|Fvn2p+ov@FLIxbilrO#2u8=r=cW~7$;f&i`#z=Q#t_#vS0iDUy!w| zJ1`Yxxfk1Mts-mxKSe(0sLKnn|9YPrl+2#B*elnf=M0VUzNzQD-AIM|%v7S+Nbcz~ z`ixx(%Y>nva(oft8T3J3=r)B|$4Vu~;IEQnj|fMWg)FMokr1XeEZcg`^uI}*vnI%l z_c#)g9awXHESBhtr?QtU*KFT^-R41Ev({(I*m<=+p5bQ!%IhG&GVUG0^$@IEXg%jV z!T{&YxxAp_oXky)6i}E;L3{(fv^q4nsU{#OTY6=>CAxeOz_Hq1GQche_2G=64?VTkbx$Pa=NPD*$VFlU*5V}R3@W8{NFQe_9rJuR&7RHix zYaK!lIFZW-nuorB0{#Fz5a#7lpplp$QmDzJLh-v;?m%)4#caW?0+KU zXe;oK;ma!hvkI|KGM{Ax@4^^zN5lfD8!#QsnU#(Mfu9J+Lq8j*(qQ9eC77O za>ett&sUzS&-{5)(`){5C$EP72GKp1BSK$-KFbb(`rQHa07roL01|yww;0`_T_jdW z|JkY+S||Ny7=roYX_?RStwepe>bh2*s#_z(QdRe&tc$U7I1IY2RY$e0qt zzo>s|&$nut<-U zd+ahX0N?Z~s$K>-c4f1F9P4g2OcM_%^5!ms0ivd+p|&AZSI^N`e-*gJK1uw($|jaE zUw_N%x~#`I{Vi)Btu*sVEb9eyJG*<$GTuAscG+deM=7I|ULhyo8n!RzQP-zB7~$X0 zkXu?B7h3SfLpDN9iwgNotKY@cwDlD1kD)%>!>D>9%h)g5yOj_V>~CbeDUKZvtZ}va zyS7mO`;*tUE}VO&{>zfje!1N`>vMj42X}SH5AKY2B}6bD?KMox+`no>JB{R&+ke~9 z(pj+gIG$`gT)6XJ03?0rFwVo~Enp*{522-qPtU`L$EpuY)$jk?dC-IG@Bhn@E{5O# z(AVMb!0A3z0<>c^$a)v)+f)FweYt)Ez5w|=|9IyyJ$D-u&!Qz+X(#D$z~O+y0fz%K Hg9HBqxXE0Y literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Configuration/Application.Configuration/bin/Debug/SAF.Configuration.dll b/SAF_VS2003/SAF/Test.SAF.Configuration/Application.Configuration/bin/Debug/SAF.Configuration.dll new file mode 100644 index 0000000000000000000000000000000000000000..3c9c82b094437090429da5627495471d3a4914a6 GIT binary patch literal 24576 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 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Configuration/Application.Configuration/bin/Debug/SAF.Library.Security.dll b/SAF_VS2003/SAF/Test.SAF.Configuration/Application.Configuration/bin/Debug/SAF.Library.Security.dll new file mode 100644 index 0000000000000000000000000000000000000000..b19072f85497f5bc1d4bcb4b8e311e8fe1e46023 GIT binary patch literal 3584 zcmeHJ&2QXP5Fe*WNm`nIQI(1ooPJ0kA(N1;N=pU1-R(!xv)g~SCRDpd6^D2E)7;DFQ%7dTLUGq#m&cLkI~g%B@! zzc=&d>e16(84Gyg}Rukc0 zCKhWCz{D(K5^WT^CykpoIDQ#RKRd%tn_gG3)u>gG zls$gP$Rg&H&y85a*66I99>> zGx%ZV4+Rn2%Ycb-bPLe{bH5p*TrBL-I!us4^UD0%jAuE~nk=%_lu#9q`CY+J1g{A$ z3;rtjkij}n2_6%41eXLa3SKiVi|f=sXZ{h+*+mC{c^!zp?VHRvgKk2#2e}W>+q4NU z592oARvHre3BeJ;{emUIF~JuEPYF7LK5#o($aE)gv*06wqk_*0mIaRs+JdhLx`K=J zIQ1^2l^gFneF?#1q&X1%kloz@I+Y3-51xo>%|Jaz-L8sN3j!J|HIs!%`xl(VkHRS( zo%3r-ch#p{RZ%^5BOUlvvRiSY>ejS68z`4OP$`a8y&ANRtJX=Uu1X26O|_XQvfL!n z?cyVT&?e69Dk^YVw(o^2mbqwF=@>_J3d+qOY3eS{X0%gNbw@9Dv56Wj?RyJJrwCQ3 zHQg?Pa#U|PVXM=k9EE3nuc@Voo#Kj$UF|oxKAplDKWVQ+R?&*@cwrPLz8jOg&Yn|k zS95|OdQH`)qd>(}Q=y;Jh0U9Gdbe(#{Pgqvd#`-(@pXE@>@ju>?ilR<;=6{f)2BqfDDjb&k9b5}heWx)KB@96wAihEj61_%*-1 z2lg8~t^X@KhV;RQiI(onDD5ifi5>f_$KQ^Zi+DY`nP=nRssgB4vgr))FinFRqe(gm zehhd7G>@-(Z~dP30E13n8t-G8*Zju-K1I@BML7fR(FVLaq~XV>fE0X&be1B~*exH) z8Au)M#*jPcy*{L2=Hav6_oaW^*w>JRElB?g=+OLK*p7${D#KqLe+t$K zPD!uU?lxIN&Tk=GNA&n`6Z1*Y$s@18Lrkv3(YPZ{)-BR{oR#a&LRUk3C6^KO-(k!V z8l}Bd09Bx;=@~(o(+v8&A=OF5Hbg8zTSPXM;N7AL_^e9BG_}Cn&~~XQQ6;idgI&Nb z(YHDO321oYjVsZB4p-8n1?144=ZaqXL~5|B!%owpR4vt=lQ<_cAN)i(&OC4CxYC5U z?mgc0nM}cVL^b5(BEq|$Nk!^>r_SBg{;OIa6CWjH6-$m)WYEGBzgIt8IyqDXr3ImXL2Xkk)dmv9f5f%m=HRLzPU0Yl z|A>>t(WUWyO|FEZrDM{(kAC;=E?3BX@7>G0YP(@uj@7!<%6d7M)2g*Yt(Z5AbSisL z6NI_pPh_Zjf-xcO8E$7l0prJI#8`pkTZ}i)TX(P3f>J^rTlGms6|PHZ-7CU}_h3q_WiKr42#3V6AWJFT|_#Zg{eq9!#ln|fW@F}nm;Bdlk zyx919!EpCEKZ>0}f6!NG4)hvy7-3f6ul$dg2?g28#%leOMf>F(fwL*97hJI$&o2GqwZZ$fir}*k; zv4XHhM3sojaFGb0nqY)Y0o3sZQTl(p{+G2s;sUt>@qqupyYQ^M1F&~Vj0oZ;Ur?^@ zoBOE$Gp~0a>%GqLL-Fzbc5mZpi{|u7yW2VHwk)A{>ldcO=Rbl@p76@J(@%T;We&jk XM;_oDFhSUeJc9ojtN<$zPX&Gf+ShFN literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Configuration/Application.Configuration/obj/Debug/Application.Configuration.dll b/SAF_VS2003/SAF/Test.SAF.Configuration/Application.Configuration/obj/Debug/Application.Configuration.dll new file mode 100644 index 0000000000000000000000000000000000000000..5a3684846689c687ca9214c26630b6d7c2e61107 GIT binary patch literal 16384 zcmeHNU2GiH6+Sb&-o$|{v8_a;L}ivFY64-g6N~?r-R$Dj#7>;7F$r~L&(2OZLuO|- zGqZ?o2pEY{5JE!mQi+!qA)cvP6%@59Qr=LhcnRVO_nOS@6wetW- zt<-y0_sl&%_uO;8J9BmJwWptaoiap}MZJEV=mR{tl!V@xEJ2;W{ZgL(GWc=f18wT# z!t7ZmG}?jR49u2cnV#oIM%^}oj%PTYQ9WKWT7JVWZr!?NPvUy!QKBg=Ll-{!ZMiqv zRmvA`(sD%GATeU;bNiEaN%$d=L(g$@={;!)4EIC9ydVZ6eDAre7MoG{J<6>T(eD|E zwPlg$X2@m>M7!4NZp0fzn^XGD;D4Foi;?|I1pdWA5a=YvByMn045Gzi5C#@FiLHbN z+Zd>+QbP2_z;=BYa;&t7%66lusZt_3oMKf|A)pXY2q**;0tx|zfI>hapb$_9C(5$Ecxet~It3nW|gTmXIB z#~F1?h*5JF!Db=7Ygvked+s7s**l3wMsvT)()d08pVq5opG9-z>FN*DeT_?W! zpl`H8{Nh0-R~A@7jEKcY#V~{=q?=G#&NeK=swUCq=zbal_bwYKP z0AkJ29}!iK-otyV(WjV&M*kMNO&g{egZ;jA>owW|`8z32rw?O}zQJu%hOVV_8Oj#W zjb5T1+AfT7AmQ#2jw8GzIQ}Q0JLwu3R1mr!bT5!%$pb>mLMMfu5PDjuDbx{qUT7Ee zPOQ~6TqnH%x&!np{pU19dWPvpW)~H)Mm5k8p|=S=B=jMn6`@Ck)`b2_s3r6qou&$Q zpedT6>{5*Q7r86(QUlXi^7058(%zRmiB@Enmu1ob8K-#t(0q8>Z**My7qsEmQf#;` zwL;4eT&GU8ZW!4uI$nRuwj%Dd>YJN3J+o;C8#|+_8JTr6#CM$fRB74{Lv%dRu{&!t ztL@h@Od=|tYPp1Z4EqCFY3J;LidN(Y)JO(r+aq?A^6grXYCm#l^j+qLE8Y1+}kr03beY4SA{dFj%P?V z(bz_o)6j?Uovj9%r;CM~b$@&g)gDLL%E`QH{^=+KrYjh>^ z1&)33^AXX;=RO>0Ruw*1YVc|zPnbXk;UZ(0L~d{fIRckGa$1~))`T>KekGp~19~s} z2RS9BbC7;d&x*|`&OPyO961pGNqv``_c*6%Nw&gS2_J+F)IBL(TgLBVwx-xYEj9}#oUNU~C{5&CjAAdUA~oQF?*sP99H!v6DPFlxo4PWKCY?o(^juf$ z;#Fy&Ukm*LIw#1*whf8*c;bUILyosMcjh=ZB>Ew7$LlkLF?`IWBl+ms^(hJFt8LaI zehapb$_9Cr#;@W;c5ipj)%{3zUzDhYcG`;n zfr4!i6s!bSY%NTqSX$bMot3|Nw|8D71S|~Pd(6(fc{A_L%x~T{({>&tL8{$Y&8|eT zuN+sqD$H`#IG`F?vJ}NZt|lgwz7Z8FsuIbp*%IM(_4qO{KJ=xUFVwQ&M1 zTtO4(c*}W8i(D@t;!chX1u2Av&HXvv-NHQeE)oQ|!@V50sJo3Lv=Exc6ec-aJZF{O znsy2GK4MN8mV7>azx(|2JF8ZOc#^8^io{{`nlu=b31eUKNUHOtifLvWW4g+UpWP6V zK=gY0>CyGK@2xS)GL}ic!E2EnFpul3afTIQ&}Nkzlznoke0TRUrAZv-oa$>^#4s?p z*p;1aJX4|^p<_;y`b0b}rB@wGoU!SLKl-hGJX(vd!<#&w*y-QCmERy9J0;!l)Q?vm zOY2(I(#NU#e?5}0CT-KtlB?IpV*Sl8gTaRviaG`@DP?3wYk4M&yg?1F+_o3L6jv2C)CLw1GD-YA$uH{0DJ xJRbixdcU-)UnzTLI5L#K#O7~(fheV<4)f2ejC%kIzU=(kLuSd04d)v*{5PEwJhA`) literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Configuration/Application.Configuration/obj/Debug/Application.Configuration.pdb b/SAF_VS2003/SAF/Test.SAF.Configuration/Application.Configuration/obj/Debug/Application.Configuration.pdb new file mode 100644 index 0000000000000000000000000000000000000000..4918c145510de29c9a350cd100f8c8e0f18f90d6 GIT binary patch literal 15872 zcmeHNU2Kz87(QJ~>Bc4$0Vnt~2^xMzTek5V6t<25kx8IardhI;?i(&_E$P=GYK%1+ z;{_KB;Q|s&h7!XCBpQhl6XHw=F_8-*n&^!&UXYlmh;YG$GN0#s=WJh_Zr#Y%uuHISsYo%*k8)(PoDIl0DhK6AFtvrSf6)gwu?%%WJ z%Ixd@{)iad{c*|Z%iEqm`TLFU{ry|4^qddhf5qQ*-G6DN5O;k$FO9~C2U(MrW73NO zH{b;p0hPcUpcI$|lmivOL%>{s>fi_F0}lfWfd#;9pqQxG_kXOt_hBPFz)anH%5g6H zPhGa#f2LVCJ7k_i)0+d6rT^Nt(oWL8(ynU#qMaQ}$7ok+V`+ySDl7+<{1$SZ!;o+6 z`_6Oy>&vd{2@X#?K^w}e0m=ZW90}T8_WhslbbJTm9|3z*nSoFf+hx~f9_uo+*EQux zx@0d(NqST(<@~=t4xCrbbeP@C-`I>@*yw+;;imw~$yVg?OqdQt8C(KrJ4OHRQGj;I z2hjG=w;Rg`q@AK|qm84?7XxYizjEyM+8?0*t0%aqLhAnnr{+{22M0Ex4)1mM0=x&H zF09To7!5~AtHfrMu+vb z4l_$KQq3bBHp>3mBZ<7e3KS#T&hHO$H15AWhCUS-%5KASJJOkZ+w)+;?#zGJ$ zTqc(JBd?n&qnGz6Iv!~4?O_|Fvn2p+ov@FLIxbilrO#2u8=r=cW~7$;f&i`#z=Q#t_#vS0iDUy!w| zJ1`Yxxfk1Mts-mxKSe(0sLKnn|9YPrl+2#B*elnf=M0VUzNzQD-AIM|%v7S+Nbcz~ z`ixx(%Y>nva(oft8T3J3=r)B|$4Vu~;IEQnj|fMWg)FMokr1XeEZcg`^uI}*vnI%l z_c#)g9awXHESBhtr?QtU*KFT^-R41Ev({(I*m<=+p5bQ!%IhG&GVUG0^$@IEXg%jV z!T{&YxxAp_oXky)6i}E;L3{(fv^q4nsU{#OTY6=>CAxeOz_Hq1GQche_2G=64?VTkbx$Pa=NPD*$VFlU*5V}R3@W8{NFQe_9rJuR&7RHix zYaK!lIFZW-nuorB0{#Fz5a#7lpplp$QmDzJLh-v;?m%)4#caW?0+KU zXe;oK;ma!hvkI|KGM{Ax@4^^zN5lfD8!#QsnU#(Mfu9J+Lq8j*(qQ9eC77O za>ett&sUzS&-{5)(`){5C$EP72GKp1BSK$-KFbb(`rQHa07roL01|yww;0`_T_jdW z|JkY+S||Ny7=roYX_?RStwepe>bh2*s#_z(QdRe&tc$U7I1IY2RY$e0qt zzo>s|&$nut<-U zd+ahX0N?Z~s$K>-c4f1F9P4g2OcM_%^5!ms0ivd+p|&AZSI^N`e-*gJK1uw($|jaE zUw_N%x~#`I{Vi)Btu*sVEb9eyJG*<$GTuAscG+deM=7I|ULhyo8n!RzQP-zB7~$X0 zkXu?B7h3SfLpDN9iwgNotKY@cwDlD1kD)%>!>D>9%h)g5yOj_V>~CbeDUKZvtZ}va zyS7mO`;*tUE}VO&{>zfje!1N`>vMj42X}SH5AKY2B}6bD?KMox+`no>JB{R&+ke~9 z(pj+gIG$`gT)6XJ03?0rFwVo~Enp*{522-qPtU`L$EpuY)$jk?dC-IG@Bhn@E{5O# z(AVMb!0A3z0<>c^$a)v)+f)FweYt)Ez5w|=|9IyyJ$D-u&!Qz+X(#D$z~O+y0fz%K Hg9HBqxXE0Y literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Configuration/Application.Configuration/obj/Debug/Application.Configuration.projdata b/SAF_VS2003/SAF/Test.SAF.Configuration/Application.Configuration/obj/Debug/Application.Configuration.projdata new file mode 100644 index 0000000000000000000000000000000000000000..97e9b2ede1dd621762239001f2bae65cc911269c GIT binary patch literal 4232 zcmeH~!E4+_6vw~YTG^H=IY}F&{)i&AO*b``9!e~PiXvF4C{iS#NxErQ(oOyC1{6K) zp_H}<4<1A>9{dYDi6<}h;IW4u`~!OOe ztf{5T+ElJ(^jpEsdH6PT8GAW8_wpxrMSa&_On{r*La<({xq=J!K+g{SVfv87LL@iR-jIdKwHD&=rzs< zzdOuzG~Xa@%|N4fEB)}Vi1#Ai+yARXVqG8URdQyHY)J7XU3ColjI^sClxE5ywh0U3jR>;tCt;+e%pfvXivKD@4j5Ogr zzo`8gE3P5;imP$dV{PhJ#>{m-WlN)?XFDr;AM3WAu_xDxOK>afy>DST+(mevFUI=bETc7Gn?Bw!vLUwtmirB3s6GhMR?1;h0MEs4;k4HB2TA3pu^CG8kq;Z z1O0QY2i`Nt=rsO+^!A}cc)0yWEYLCvH&3EA*)3WPGq(FXr|@vh6qx@zR$82?Gor}y zVc9ymT4dx@`PI~jn4L6-%PXV`rZr7y!^gq*o2mJ!=dgK268vOZ9W&E9v_wPaC z_CdT!Mq$oRshzz=t6|Uff2))k=^Q7=U>O&VK`isV*%NFQ3RJ819aZW9{`vd4M<-rxevOOTtvfXVx%x946lJT!w)A#p(awn{7Z+5%= E1x!&&nE(I) literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Configuration/ConfigurationData/AssemblyInfo.cs b/SAF_VS2003/SAF/Test.SAF.Configuration/ConfigurationData/AssemblyInfo.cs new file mode 100644 index 0000000..b26491c --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.Configuration/ConfigurationData/AssemblyInfo.cs @@ -0,0 +1,62 @@ +using System.Reflection; +using System.Runtime.CompilerServices; + +// +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +// +[assembly: AssemblyTitle("")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("")] +[assembly: AssemblyCopyright("")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: + +[assembly: AssemblyVersion("1.0.*")] + +// +// In order to sign your assembly you must specify a key to use. Refer to the +// Microsoft .NET Framework documentation for more information on assembly signing. +// +// Use the attributes below to control which key is used for signing. +// +// Notes: +// (*) If no key is specified, the assembly is not signed. +// (*) KeyName refers to a key that has been installed in the Crypto Service +// Provider (CSP) on your machine. KeyFile refers to a file which contains +// a key. +// (*) If the KeyFile and the KeyName values are both specified, the +// following processing occurs: +// (1) If the KeyName can be found in the CSP, that key is used. +// (2) If the KeyName does not exist and the KeyFile does exist, the key +// in the KeyFile is installed into the CSP and used. +// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. +// When specifying the KeyFile, the location of the KeyFile should be +// relative to the "project output directory". The location of the project output +// directory is dependent on whether you are working with a local or web project. +// For local projects, the project output directory is defined as +// \obj\. For example, if your KeyFile is +// located in the project directory, you would specify the AssemblyKeyFile +// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] +// For web projects, the project output directory is defined as +// %HOMEPATH%\VSWebCache\\\obj\. +// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework +// documentation for more information on this. +// +[assembly: AssemblyDelaySign(false)] +[assembly: AssemblyKeyFile("")] +[assembly: AssemblyKeyName("")] diff --git a/SAF_VS2003/SAF/Test.SAF.Configuration/ConfigurationData/ConfigurationData.csproj b/SAF_VS2003/SAF/Test.SAF.Configuration/ConfigurationData/ConfigurationData.csproj new file mode 100644 index 0000000..eb949b8 --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.Configuration/ConfigurationData/ConfigurationData.csproj @@ -0,0 +1,138 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SAF_VS2003/SAF/Test.SAF.Configuration/ConfigurationData/ConfigurationData.csproj.webinfo b/SAF_VS2003/SAF/Test.SAF.Configuration/ConfigurationData/ConfigurationData.csproj.webinfo new file mode 100644 index 0000000..fcf7c38 --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.Configuration/ConfigurationData/ConfigurationData.csproj.webinfo @@ -0,0 +1,4 @@ + + + + diff --git a/SAF_VS2003/SAF/Test.SAF.Configuration/ConfigurationData/ConfigurationData.vsdisco b/SAF_VS2003/SAF/Test.SAF.Configuration/ConfigurationData/ConfigurationData.vsdisco new file mode 100644 index 0000000..10b0ed1 --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.Configuration/ConfigurationData/ConfigurationData.vsdisco @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/SAF_VS2003/SAF/Test.SAF.Configuration/ConfigurationData/ConfigurationService.asmx b/SAF_VS2003/SAF/Test.SAF.Configuration/ConfigurationData/ConfigurationService.asmx new file mode 100644 index 0000000..b5412a8 --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.Configuration/ConfigurationData/ConfigurationService.asmx @@ -0,0 +1 @@ +<%@ WebService Language="c#" Codebehind="ConfigurationService.asmx.cs" Class="ConfigurationData.ConfigurationService" %> diff --git a/SAF_VS2003/SAF/Test.SAF.Configuration/ConfigurationData/ConfigurationService.asmx.cs b/SAF_VS2003/SAF/Test.SAF.Configuration/ConfigurationData/ConfigurationService.asmx.cs new file mode 100644 index 0000000..c658a95 --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.Configuration/ConfigurationData/ConfigurationService.asmx.cs @@ -0,0 +1,69 @@ +using System; +using System.Collections; +using System.ComponentModel; +using System.Data; +using System.Diagnostics; +using System.Web; +using System.Web.Services; + +namespace ConfigurationData +{ + /// + /// Summary description for Service1. + /// + public class ConfigurationService : System.Web.Services.WebService + { + public ConfigurationService() + { + //CODEGEN: This call is required by the ASP.NET Web Services Designer + InitializeComponent(); + } + + #region Component Designer generated code + + //Required by the Web Services Designer + private IContainer components = null; + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + } + + /// + /// Clean up any resources being used. + /// + protected override void Dispose( bool disposing ) + { + if(disposing && components != null) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #endregion + + + /// + /// the method that returns the configuration information stored in + /// the centralized location via web service. + /// + [WebMethod] + public string GetConfiguration(string section, string environment) + { + string qa = @"Direct=OS:.\customerDirect=OS:.\account"; + string test = @"Direct=OS:.\test_customerDirect=OS:.\test_account"; + if (environment == "QAEnvironment" && section == "Application.MessageQueue") + { + return qa; + } + else + { + return test; + } + } + } +} diff --git a/SAF_VS2003/SAF/Test.SAF.Configuration/ConfigurationData/ConfigurationService.asmx.resx b/SAF_VS2003/SAF/Test.SAF.Configuration/ConfigurationData/ConfigurationService.asmx.resx new file mode 100644 index 0000000..7e32396 --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.Configuration/ConfigurationData/ConfigurationService.asmx.resx @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 1.0.0.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.3102.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.3102.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + diff --git a/SAF_VS2003/SAF/Test.SAF.Configuration/ConfigurationData/Global.asax b/SAF_VS2003/SAF/Test.SAF.Configuration/ConfigurationData/Global.asax new file mode 100644 index 0000000..a89d18c --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.Configuration/ConfigurationData/Global.asax @@ -0,0 +1 @@ +<%@ Application Codebehind="Global.asax.cs" Inherits="ConfigurationData.Global" %> diff --git a/SAF_VS2003/SAF/Test.SAF.Configuration/ConfigurationData/Global.asax.cs b/SAF_VS2003/SAF/Test.SAF.Configuration/ConfigurationData/Global.asax.cs new file mode 100644 index 0000000..9885319 --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.Configuration/ConfigurationData/Global.asax.cs @@ -0,0 +1,70 @@ +using System; +using System.Collections; +using System.ComponentModel; +using System.Web; +using System.Web.SessionState; + +namespace ConfigurationData +{ + /// + /// Summary description for Global. + /// + public class Global : System.Web.HttpApplication + { + public Global() + { + InitializeComponent(); + } + + protected void Application_Start(Object sender, EventArgs e) + { + + } + + protected void Session_Start(Object sender, EventArgs e) + { + + } + + protected void Application_BeginRequest(Object sender, EventArgs e) + { + + } + + protected void Application_EndRequest(Object sender, EventArgs e) + { + + } + + protected void Application_AuthenticateRequest(Object sender, EventArgs e) + { + + } + + protected void Application_Error(Object sender, EventArgs e) + { + + } + + protected void Session_End(Object sender, EventArgs e) + { + + } + + protected void Application_End(Object sender, EventArgs e) + { + + } + + #region Web Form Designer generated code + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + } + #endregion + } +} + diff --git a/SAF_VS2003/SAF/Test.SAF.Configuration/ConfigurationData/Global.asax.resx b/SAF_VS2003/SAF/Test.SAF.Configuration/ConfigurationData/Global.asax.resx new file mode 100644 index 0000000..7e32396 --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.Configuration/ConfigurationData/Global.asax.resx @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 1.0.0.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.3102.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.3102.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + diff --git a/SAF_VS2003/SAF/Test.SAF.Configuration/ConfigurationData/Web.config b/SAF_VS2003/SAF/Test.SAF.Configuration/ConfigurationData/Web.config new file mode 100644 index 0000000..3803940 --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.Configuration/ConfigurationData/Web.config @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SAF_VS2003/SAF/Test.SAF.Configuration/ConfigurationData/_vti_pvt/access.cnf b/SAF_VS2003/SAF/Test.SAF.Configuration/ConfigurationData/_vti_pvt/access.cnf new file mode 100644 index 0000000..bea0003 --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.Configuration/ConfigurationData/_vti_pvt/access.cnf @@ -0,0 +1,4 @@ +vti_encoding:SR|utf8-nl +RealmName:AVANADE-C006T6X +InheritPermissions:true +PasswordDir:c:\\inetpub\\wwwroot\\_vti_pvt diff --git a/SAF_VS2003/SAF/Test.SAF.Configuration/ConfigurationData/_vti_pvt/deptodoc.btr b/SAF_VS2003/SAF/Test.SAF.Configuration/ConfigurationData/_vti_pvt/deptodoc.btr new file mode 100644 index 0000000000000000000000000000000000000000..4762cd90931319d98b396f3ee9640086ede4ee1e GIT binary patch literal 324 xcmb1PWMFUsVjdti6=E0#z!2a8VjUp<4+RWN&|m?E5f_jN!XT;4;=}@w3;;#<4yOPB literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Configuration/ConfigurationData/_vti_pvt/doctodep.btr b/SAF_VS2003/SAF/Test.SAF.Configuration/ConfigurationData/_vti_pvt/doctodep.btr new file mode 100644 index 0000000000000000000000000000000000000000..4b85379668e9a1f2fa1b5208103367d12c5cdbb7 GIT binary patch literal 324 wcmb1PWMFUsVjdti6-q5;7zGSGz%bAO;{Q;I=$nIH_3f{HQ#06;(u(f|Me literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Configuration/ConfigurationData/_vti_pvt/service.cnf b/SAF_VS2003/SAF/Test.SAF.Configuration/ConfigurationData/_vti_pvt/service.cnf new file mode 100644 index 0000000..924de14 --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.Configuration/ConfigurationData/_vti_pvt/service.cnf @@ -0,0 +1,20 @@ +vti_encoding:SR|utf8-nl +vti_casesensitiveurls:IX|0 +vti_httpdversion:SX|Microsoft-IIS/5.1 +vti_textextensions:SX|.txt.actproj.asm.c.cc.cod.cpp.cs.cxx.dbs.def.dsp.dsw.etp.ext.fky.h.hpp.hxx.i.idl.inc.inl.kci.lgn.lst.mak.map.mk.odh.odl.prc.rc.rc2.rct.rgs.rul.s.sql.srf.tab.tlh.tli.trg.txt.udf.udt.user.usr.vap.vb.vcproj.viw.vsmproj.vspscc.vsscc.vssscc. +vti_featurelist:VX|vti_ACIPAddresses vti_ACCreateNewUsers vti_ACChangePassword vti_ACNoUserGroup vti_ACCreateNewGroups vti_ACModifyGroups vti_ServiceMarkUrlDirExec vti_ServerEmailTransport vti_ServerIndexServer +vti_dependenciesood:IR|0 +vti_webservertype:SR|msiis +vti_publishmetainfokeys:VR|vti_assignedto vti_approvallevel vti_categories vti_description +vti_categories:VR|Travel Expense\\ Report Business Competition Goals/Objectives Ideas Miscellaneous Waiting VIP In\\ Process Planning Schedule +vti_htmlextensions:SX|.htm.html.stm.html.htm.shtml.shtm.htt.htx.asp.alx.asa. +vti_approvallevels:VR|Content\\ Review Legal\\ Review Code\\ Review Manager\\ Review +vti_timecreated:TR|15 Sep 2003 18:58:51 -0000 +vti_extenderversion:SR|4.0.2.6513 +vti_longfilenames:IX|1 +vti_welcomenames:VX|Default.htm Default.asp index.htm iisstart.asp Default.aspx +vti_insecureserverurl:SR|http://localhost +vti_secureserverurl:SR|https://localhost +vti_disableautoimgsizeexts:SX|.asp +vti_oldestcompatibleversion:SR|2.0.0.0 +vti_restartmanual:IX|0 diff --git a/SAF_VS2003/SAF/Test.SAF.Configuration/ConfigurationData/_vti_pvt/service.lck b/SAF_VS2003/SAF/Test.SAF.Configuration/ConfigurationData/_vti_pvt/service.lck new file mode 100644 index 0000000..e69de29 diff --git a/SAF_VS2003/SAF/Test.SAF.Configuration/ConfigurationData/_vti_pvt/services.cnf b/SAF_VS2003/SAF/Test.SAF.Configuration/ConfigurationData/_vti_pvt/services.cnf new file mode 100644 index 0000000..b498fd4 --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.Configuration/ConfigurationData/_vti_pvt/services.cnf @@ -0,0 +1 @@ +/ diff --git a/SAF_VS2003/SAF/Test.SAF.Configuration/ConfigurationData/bin/ConfigurationData.dll b/SAF_VS2003/SAF/Test.SAF.Configuration/ConfigurationData/bin/ConfigurationData.dll new file mode 100644 index 0000000000000000000000000000000000000000..40834c91512e5985a585759bef0d8892d2460b34 GIT binary patch literal 6144 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 DgNNpr literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Configuration/ConfigurationData/bin/ConfigurationData.pdb b/SAF_VS2003/SAF/Test.SAF.Configuration/ConfigurationData/bin/ConfigurationData.pdb new file mode 100644 index 0000000000000000000000000000000000000000..27876e6c9d75a597115b3d3f7f5d89cfff871d32 GIT binary patch literal 17920 zcmeHOU2I&%6`tK}7CShOmzXp$v|Xq}jS0K!kiVusiM?%m_LY{@R$W0iP1nSS7b`0>Gq;ML^dKOrz@n5|j1~spy1?u^K#znXPXPSNR)79)(Q1{wcAXxuvW9LR~B^duk z9htT5*OX~a=-Rd(wD$k9z-J$Q_7U&*oN><{9Lg1}N^xRjXmWD0WZRXYtX&w(ot!9T zDml9_nyF;GIc2MKI+wK)nezBlB3oAKnyNUNw?{I02xT0h2-;5@1N4KkKO0OsAggPE zyZ)96T|^VbmbV^%>e)YqX#48{?h`qF?lI#Sb^%%Uf16$^4B(l09Ai=oC_p(sFZ0Mt z>gGiEezgeWJxo6zRqPswJ>=TT?8M9@^ zU*<_8ja{Fak5gt7;GWyKPmG?D`RHD|eb&ib;Rn{K39F1H?5yGEFvlyXgYqKNNP2$D z=sCp21aRw#JJTqZn$C0Ud89BZTGCJb4Ej9=dCCfZBkA~UqvJ6+5`tSt+!IIPG8gLD zJ5hN8ev@w55@o?heTSjz0P12rBHKv%ir?AA3vqy3U)+gDIX9g=&zP1<;#W^Vw=T$% zM|c}aKZ!d{yxa%4^+PO(PDq~k9n4qqaqLpiD*`#n2wx-VCS&(u9o-NUqo+kT&)C)U zYk}McMnBlwST!s@RxW^9fWulXkceIeJR_46i`HHz7}1;cp}z zL+DvM`o=v8&$R3(!hqr=d7h~!0ehPbYY4sbspD?r?bQka#kn^w# zJO`Wx&Hy=R+kpeXVPF+_4#>01W#AQHB#gKK%w@q?l4Cp^kxXvW{JmK8UlriTP zKPyGhyzKvH*%tu&D}bgs{q(%@?fKHBy!Vwe5$Cx)-_ZHUInBB1=wE5Qc}^66 z=r{<`(dYwHM`;J@rIzrAS5bTwOym>(^=60NW{-9iN)x`MiSr-6D0(NJ96R*q%0;_u zv4F9Fb8;5=MWlsiz3DD7f0zpa0Dm$M$cjFMl%xA2R>gDQfPC6O!9d)#d+b_8T#v3wp(sKQ?Q>z#27>N^C|SAg5z9+t%wSG`|MjZFhl} z-_;BKQJF>KjHGbz{piuj$Mm1riwJm_7)~y~Wo-?*siN zDB4iHpb5}4XhdC95%ntY1lrjGH0_6qpC{e(C~n8aM-_zaZ~_ z4E-k(OpE`x-{ik%=nhkU2|VO`&rs;>q~9{-ytrohxRKjv=y{V*r^WIR4O$ltJGqOO z*A>#6OIOh{@=feR4KRy*;4SwRBDqZc%ak8pP$9qR=x9!U{60!JUcWYW`?;~(dE~QC zmrVX2On$FPvyAvdlRj$7Glm{F<-e19O*$BV7{d7qjjD*eh`i=A@(7Fx)BZ4w z;FYg`IVtsMepAmn82^P42u3j=u|d)Sz4k^OtD*o9X=8a!ue-umFW$o0k1p#Hu{rT6Ua=}n~{c7&F0uUWl~ z9mz#-zHiza*w(p3dyhCDBdMPKdynky+k2~xKYyF?TVN|}g|IpQjra3-rVR%SVhFiZ zaH3!M`;JmJIhM;?<>co-tS8IYSDEiiGHkM(U!QQ6ody!Py<)Ek)PgGs6U5;o|Ghw- z=x^V=qIeqs8t%t+u0{|M&SR~eB@T9L7xBmfy?>-dcL1i zmvMpqKMrIJxEuIoAU9ksKt^0fS?($EF8i8(`^k93-+gkQ$(X`DN&u^4fqPb`+Mw2T HVuAkwMu2mN literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Configuration/Test.SAF.Configuration.sln b/SAF_VS2003/SAF/Test.SAF.Configuration/Test.SAF.Configuration.sln new file mode 100644 index 0000000..511f337 --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.Configuration/Test.SAF.Configuration.sln @@ -0,0 +1,53 @@ +Microsoft Visual Studio Solution File, Format Version 8.00 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SAF.Configuration", "..\SAF.Configuration\SAF.Configuration.csproj", "{CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestConsole", "TestConsole\TestConsole.csproj", "{271F07F5-3CA2-4699-81DF-7A3B71CAFA44}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Application.Configuration", "Application.Configuration\Application.Configuration.csproj", "{BEF04072-BB93-40AD-8378-8A9F7521D38B}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestConfigurationAgent", "TestConfigurationAgent\TestConfigurationAgent.csproj", "{E08436B4-D2DB-4813-BE55-E94A0005741C}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConfigurationData", "http://localhost/ConfigurationData/ConfigurationData.csproj", "{D003ED90-9935-4C8E-A7E6-B72996A7F9C7}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfiguration) = preSolution + Debug = Debug + Release = Release + EndGlobalSection + GlobalSection(ProjectConfiguration) = postSolution + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Debug.ActiveCfg = Debug|.NET + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Debug.Build.0 = Debug|.NET + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Release.ActiveCfg = Release|.NET + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Release.Build.0 = Release|.NET + {271F07F5-3CA2-4699-81DF-7A3B71CAFA44}.Debug.ActiveCfg = Debug|.NET + {271F07F5-3CA2-4699-81DF-7A3B71CAFA44}.Debug.Build.0 = Debug|.NET + {271F07F5-3CA2-4699-81DF-7A3B71CAFA44}.Release.ActiveCfg = Release|.NET + {271F07F5-3CA2-4699-81DF-7A3B71CAFA44}.Release.Build.0 = Release|.NET + {BEF04072-BB93-40AD-8378-8A9F7521D38B}.Debug.ActiveCfg = Debug|.NET + {BEF04072-BB93-40AD-8378-8A9F7521D38B}.Debug.Build.0 = Debug|.NET + {BEF04072-BB93-40AD-8378-8A9F7521D38B}.Release.ActiveCfg = Release|.NET + {BEF04072-BB93-40AD-8378-8A9F7521D38B}.Release.Build.0 = Release|.NET + {E08436B4-D2DB-4813-BE55-E94A0005741C}.Debug.ActiveCfg = Debug|.NET + {E08436B4-D2DB-4813-BE55-E94A0005741C}.Debug.Build.0 = Debug|.NET + {E08436B4-D2DB-4813-BE55-E94A0005741C}.Release.ActiveCfg = Release|.NET + {E08436B4-D2DB-4813-BE55-E94A0005741C}.Release.Build.0 = Release|.NET + {D003ED90-9935-4C8E-A7E6-B72996A7F9C7}.Debug.ActiveCfg = Debug|.NET + {D003ED90-9935-4C8E-A7E6-B72996A7F9C7}.Debug.Build.0 = Debug|.NET + {D003ED90-9935-4C8E-A7E6-B72996A7F9C7}.Release.ActiveCfg = Release|.NET + {D003ED90-9935-4C8E-A7E6-B72996A7F9C7}.Release.Build.0 = Release|.NET + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + EndGlobalSection + GlobalSection(ExtensibilityAddIns) = postSolution + EndGlobalSection +EndGlobal diff --git a/SAF_VS2003/SAF/Test.SAF.Configuration/Test.SAF.Configuration.sln.old b/SAF_VS2003/SAF/Test.SAF.Configuration/Test.SAF.Configuration.sln.old new file mode 100644 index 0000000..034bc8d --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.Configuration/Test.SAF.Configuration.sln.old @@ -0,0 +1,45 @@ +Microsoft Visual Studio Solution File, Format Version 7.00 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SAF.Configuration", "..\SAF.Configuration\SAF.Configuration.csproj", "{CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestConsole", "TestConsole\TestConsole.csproj", "{271F07F5-3CA2-4699-81DF-7A3B71CAFA44}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Application.Configuration", "Application.Configuration\Application.Configuration.csproj", "{BEF04072-BB93-40AD-8378-8A9F7521D38B}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestConfigurationAgent", "TestConfigurationAgent\TestConfigurationAgent.csproj", "{E08436B4-D2DB-4813-BE55-E94A0005741C}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConfigurationData", "http://localhost/ConfigurationData/ConfigurationData.csproj", "{D003ED90-9935-4C8E-A7E6-B72996A7F9C7}" +EndProject +Global + GlobalSection(SolutionConfiguration) = preSolution + ConfigName.0 = Debug + ConfigName.1 = Release + EndGlobalSection + GlobalSection(ProjectDependencies) = postSolution + EndGlobalSection + GlobalSection(ProjectConfiguration) = postSolution + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Debug.ActiveCfg = Debug|.NET + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Debug.Build.0 = Debug|.NET + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Release.ActiveCfg = Release|.NET + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Release.Build.0 = Release|.NET + {271F07F5-3CA2-4699-81DF-7A3B71CAFA44}.Debug.ActiveCfg = Debug|.NET + {271F07F5-3CA2-4699-81DF-7A3B71CAFA44}.Debug.Build.0 = Debug|.NET + {271F07F5-3CA2-4699-81DF-7A3B71CAFA44}.Release.ActiveCfg = Release|.NET + {271F07F5-3CA2-4699-81DF-7A3B71CAFA44}.Release.Build.0 = Release|.NET + {BEF04072-BB93-40AD-8378-8A9F7521D38B}.Debug.ActiveCfg = Debug|.NET + {BEF04072-BB93-40AD-8378-8A9F7521D38B}.Debug.Build.0 = Debug|.NET + {BEF04072-BB93-40AD-8378-8A9F7521D38B}.Release.ActiveCfg = Release|.NET + {BEF04072-BB93-40AD-8378-8A9F7521D38B}.Release.Build.0 = Release|.NET + {E08436B4-D2DB-4813-BE55-E94A0005741C}.Debug.ActiveCfg = Debug|.NET + {E08436B4-D2DB-4813-BE55-E94A0005741C}.Debug.Build.0 = Debug|.NET + {E08436B4-D2DB-4813-BE55-E94A0005741C}.Release.ActiveCfg = Release|.NET + {E08436B4-D2DB-4813-BE55-E94A0005741C}.Release.Build.0 = Release|.NET + {D003ED90-9935-4C8E-A7E6-B72996A7F9C7}.Debug.ActiveCfg = Debug|.NET + {D003ED90-9935-4C8E-A7E6-B72996A7F9C7}.Debug.Build.0 = Debug|.NET + {D003ED90-9935-4C8E-A7E6-B72996A7F9C7}.Release.ActiveCfg = Release|.NET + {D003ED90-9935-4C8E-A7E6-B72996A7F9C7}.Release.Build.0 = Release|.NET + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + EndGlobalSection + GlobalSection(ExtensibilityAddIns) = postSolution + EndGlobalSection +EndGlobal diff --git a/SAF_VS2003/SAF/Test.SAF.Configuration/Test.SAF.Configuration.suo b/SAF_VS2003/SAF/Test.SAF.Configuration/Test.SAF.Configuration.suo new file mode 100644 index 0000000000000000000000000000000000000000..42a7295b1d36e1c8817caf85af5e740dbe5f9098 GIT binary patch literal 13312 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 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Configuration/TestConfigurationAgent/AssemblyInfo.cs b/SAF_VS2003/SAF/Test.SAF.Configuration/TestConfigurationAgent/AssemblyInfo.cs new file mode 100644 index 0000000..9f89a32 --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.Configuration/TestConfigurationAgent/AssemblyInfo.cs @@ -0,0 +1,58 @@ +using System.Reflection; +using System.Runtime.CompilerServices; + +// +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +// +[assembly: AssemblyTitle("")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("")] +[assembly: AssemblyCopyright("")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: + +[assembly: AssemblyVersion("1.0.*")] + +// +// In order to sign your assembly you must specify a key to use. Refer to the +// Microsoft .NET Framework documentation for more information on assembly signing. +// +// Use the attributes below to control which key is used for signing. +// +// Notes: +// (*) If no key is specified, the assembly is not signed. +// (*) KeyName refers to a key that has been installed in the Crypto Service +// Provider (CSP) on your machine. KeyFile refers to a file which contains +// a key. +// (*) If the KeyFile and the KeyName values are both specified, the +// following processing occurs: +// (1) If the KeyName can be found in the CSP, that key is used. +// (2) If the KeyName does not exist and the KeyFile does exist, the key +// in the KeyFile is installed into the CSP and used. +// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. +// When specifying the KeyFile, the location of the KeyFile should be +// relative to the project output directory which is +// %Project Directory%\obj\. For example, if your KeyFile is +// located in the project directory, you would specify the AssemblyKeyFile +// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] +// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework +// documentation for more information on this. +// +[assembly: AssemblyDelaySign(false)] +[assembly: AssemblyKeyFile("")] +[assembly: AssemblyKeyName("")] diff --git a/SAF_VS2003/SAF/Test.SAF.Configuration/TestConfigurationAgent/TestConfigurationAgent.cs b/SAF_VS2003/SAF/Test.SAF.Configuration/TestConfigurationAgent/TestConfigurationAgent.cs new file mode 100644 index 0000000..4fc23d0 --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.Configuration/TestConfigurationAgent/TestConfigurationAgent.cs @@ -0,0 +1,42 @@ +using System; +using SAF.Configuration; +using System.Xml; + +namespace TestConfigurationAgent +{ + /// + /// A sample Agent class that is responsible for retrieve configuration + /// data stored in other system via web service. + /// + public class ConfigurationWSAgent : IConfigurationAgent + { + private string section; + private string environment; + private string url; + public ConfigurationWSAgent(){} + /// + /// this method sets up the agent with parameters information + /// defined in the configuration file. + /// + /// + public void Initialize(XmlNode configData) + { + section= configData.SelectSingleNode("Parameters/Section").InnerText; + environment = configData.SelectSingleNode("Parameters/Environment").InnerText; + + url = configData.SelectSingleNode("Url").InnerText; + } + + /// + /// this method call the web service and retrieve the actual configration data + /// + /// the configuration data + public string GetConfigurationSetting() + { + localhost.ConfigurationService cs = new localhost.ConfigurationService(); + cs.Url = url; + return cs.GetConfiguration(section,environment); + } + + } +} diff --git a/SAF_VS2003/SAF/Test.SAF.Configuration/TestConfigurationAgent/TestConfigurationAgent.csproj b/SAF_VS2003/SAF/Test.SAF.Configuration/TestConfigurationAgent/TestConfigurationAgent.csproj new file mode 100644 index 0000000..129e573 --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.Configuration/TestConfigurationAgent/TestConfigurationAgent.csproj @@ -0,0 +1,141 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SAF_VS2003/SAF/Test.SAF.Configuration/TestConfigurationAgent/TestConfigurationAgent.csproj.user b/SAF_VS2003/SAF/Test.SAF.Configuration/TestConfigurationAgent/TestConfigurationAgent.csproj.user new file mode 100644 index 0000000..e4263fd --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.Configuration/TestConfigurationAgent/TestConfigurationAgent.csproj.user @@ -0,0 +1,48 @@ + + + + + + + + + + + + diff --git a/SAF_VS2003/SAF/Test.SAF.Configuration/TestConfigurationAgent/Web References/localhost/ConfigurationService.disco b/SAF_VS2003/SAF/Test.SAF.Configuration/TestConfigurationAgent/Web References/localhost/ConfigurationService.disco new file mode 100644 index 0000000..229e85f --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.Configuration/TestConfigurationAgent/Web References/localhost/ConfigurationService.disco @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/SAF_VS2003/SAF/Test.SAF.Configuration/TestConfigurationAgent/Web References/localhost/ConfigurationService.wsdl b/SAF_VS2003/SAF/Test.SAF.Configuration/TestConfigurationAgent/Web References/localhost/ConfigurationService.wsdl new file mode 100644 index 0000000..41f72b8 --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.Configuration/TestConfigurationAgent/Web References/localhost/ConfigurationService.wsdl @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/SAF_VS2003/SAF/Test.SAF.Configuration/TestConfigurationAgent/Web References/localhost/Reference.cs b/SAF_VS2003/SAF/Test.SAF.Configuration/TestConfigurationAgent/Web References/localhost/Reference.cs new file mode 100644 index 0000000..2627a0c --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.Configuration/TestConfigurationAgent/Web References/localhost/Reference.cs @@ -0,0 +1,56 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version: 1.0.3705.288 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +// +// This source code was auto-generated by Microsoft.VSDesigner, Version 1.0.3705.288. +// +namespace TestConfigurationAgent.localhost { + using System.Diagnostics; + using System.Xml.Serialization; + using System; + using System.Web.Services.Protocols; + using System.ComponentModel; + using System.Web.Services; + + + /// + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Web.Services.WebServiceBindingAttribute(Name="ConfigurationServiceSoap", Namespace="http://tempuri.org/")] + public class ConfigurationService : System.Web.Services.Protocols.SoapHttpClientProtocol { + + /// + public ConfigurationService() { + this.Url = "http://localhost/ConfigurationData/ConfigurationService.asmx"; + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetConfiguration", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string GetConfiguration(string section, string environment) { + object[] results = this.Invoke("GetConfiguration", new object[] { + section, + environment}); + return ((string)(results[0])); + } + + /// + public System.IAsyncResult BeginGetConfiguration(string section, string environment, System.AsyncCallback callback, object asyncState) { + return this.BeginInvoke("GetConfiguration", new object[] { + section, + environment}, callback, asyncState); + } + + /// + public string EndGetConfiguration(System.IAsyncResult asyncResult) { + object[] results = this.EndInvoke(asyncResult); + return ((string)(results[0])); + } + } +} diff --git a/SAF_VS2003/SAF/Test.SAF.Configuration/TestConfigurationAgent/Web References/localhost/Reference.map b/SAF_VS2003/SAF/Test.SAF.Configuration/TestConfigurationAgent/Web References/localhost/Reference.map new file mode 100644 index 0000000..1ca59da --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.Configuration/TestConfigurationAgent/Web References/localhost/Reference.map @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/SAF_VS2003/SAF/Test.SAF.Configuration/TestConfigurationAgent/bin/Debug/SAF.Configuration.dll b/SAF_VS2003/SAF/Test.SAF.Configuration/TestConfigurationAgent/bin/Debug/SAF.Configuration.dll new file mode 100644 index 0000000000000000000000000000000000000000..3c9c82b094437090429da5627495471d3a4914a6 GIT binary patch literal 24576 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 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Configuration/TestConfigurationAgent/bin/Debug/SAF.Library.Security.dll b/SAF_VS2003/SAF/Test.SAF.Configuration/TestConfigurationAgent/bin/Debug/SAF.Library.Security.dll new file mode 100644 index 0000000000000000000000000000000000000000..b19072f85497f5bc1d4bcb4b8e311e8fe1e46023 GIT binary patch literal 3584 zcmeHJ&2QXP5Fe*WNm`nIQI(1ooPJ0kA(N1;N=pU1-R(!xv)g~SCRDpd6^D2E)7;DFQ%7dTLUGq#m&cLkI~g%B@! zzc=&d>e16(84Gyg}Rukc0 zCKhWCz{D(K5^WT^CykpoIDQ#RKRd%tn_gG3)u>gG zls$gP$Rg&H&y85a*66I99>> zGx%ZV4+Rn2%Ycb-bPLe{bH5p*TrBL-I!us4^UD0%jAuE~nk=%_lu#9q`CY+J1g{A$ z3;rtjkij}n2_6%41eXLa3SKiVi|f=sXZ{h+*+mC{c^!zp?VHRvgKk2#2e}W>+q4NU z592oARvHre3BeJ;{emUIF~JuEPYF7LK5#o($aE)gv*06wqk_*0mIaRs+JdhLx`K=J zIQ1^2l^gFneF?#1q&X1%kloz@I+Y3-51xo>%|Jaz-L8sN3j!J|HIs!%`xl(VkHRS( zo%3r-ch#p{RZ%^5BOUlvvRiSY>ejS68z`4OP$`a8y&ANRtJX=Uu1X26O|_XQvfL!n z?cyVT&?e69Dk^YVw(o^2mbqwF=@>_J3d+qOY3eS{X0%gNbw@9Dv56Wj?RyJJrwCQ3 zHQg?Pa#U|PVXM=k9EE3nuc@Voo#Kj$UF|oxKAplDKWVQ+R?&*@cwrPLz8jOg&Yn|k zS95|OdQH`)qd>(}Q=y;Jh0U9Gdbe(#{Pgqvd#`-(@pXE@>@ju>?ilR<;=6{f)2BqfDDjb&k9b5}heWx)KB@96wAihEj61_%*-1 z2lg8~t^X@KhV;RQiI(onDD5ifi5>f_$KQ^Zi+DY`nP=nRssgB4vgr))FinFRqe(gm zehhd7G>@-(Z~dP30E13n8t-G8*Zju-K1I@BML7fR(FVLaq~XV>fE0X&be1B~*exH) z8Au)M#*jPcy*{L2=Hav6_oaW^*w>JRElB?g=+OLK*p7${D#KqLe+t$K zPD!uU?lxIN&Tk=GNA&n`6Z1*Y$s@18Lrkv3(YPZ{)-BR{oR#a&LRUk3C6^KO-(k!V z8l}Bd09Bx;=@~(o(+v8&A=OF5Hbg8zTSPXM;N7AL_^e9BG_}Cn&~~XQQ6;idgI&Nb z(YHDO321oYjVsZB4p-8n1?144=ZaqXL~5|B!%owpR4vt=lQ<_cAN)i(&OC4CxYC5U z?mgc0nM}cVL^b5(BEq|$Nk!^>r_SBg{;OIa6CWjH6-$m)WYEGBzgIt8IyqDXr3ImXL2Xkk)dmv9f5f%m=HRLzPU0Yl z|A>>t(WUWyO|FEZrDM{(kAC;=E?3BX@7>G0YP(@uj@7!<%6d7M)2g*Yt(Z5AbSisL z6NI_pPh_Zjf-xcO8E$7l0prJI#8`pkTZ}i)TX(P3f>J^rTlGms6|PHZ-7CU}_h3q_WiKr42#3V6AWJFT|_#Zg{eq9!#ln|fW@F}nm;Bdlk zyx919!EpCEKZ>0}f6!NG4)hvy7-3f6ul$dg2?g28#%leOMf>F(fwL*97hJI$&o2GqwZZ$fir}*k; zv4XHhM3sojaFGb0nqY)Y0o3sZQTl(p{+G2s;sUt>@qqupyYQ^M1F&~Vj0oZ;Ur?^@ zoBOE$Gp~0a>%GqLL-Fzbc5mZpi{|u7yW2VHwk)A{>ldcO=Rbl@p76@J(@%T;We&jk XM;_oDFhSUeJc9ojtN<$zPX&Gf+ShFN literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Configuration/TestConfigurationAgent/bin/Debug/TestConfigurationAgent.dll b/SAF_VS2003/SAF/Test.SAF.Configuration/TestConfigurationAgent/bin/Debug/TestConfigurationAgent.dll new file mode 100644 index 0000000000000000000000000000000000000000..4b51779e0d41ab745622e94fb77b170c08a1b63a GIT binary patch literal 16384 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 AegFUf literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Configuration/TestConfigurationAgent/bin/Debug/TestConfigurationAgent.pdb b/SAF_VS2003/SAF/Test.SAF.Configuration/TestConfigurationAgent/bin/Debug/TestConfigurationAgent.pdb new file mode 100644 index 0000000000000000000000000000000000000000..560695939fe2e1f9f655b722741ef4e2f4e44d8a GIT binary patch literal 19968 zcmeHOOKg-?6uwi&u`LuC#VQ4Hs0EbAba<7fqO`OiL>nGs#ONfoo&GHo%M6(r9vTuS zYJBWi7!so<5Lpmo;>LwBF?NB*g)1?}1tx^3(U>S07bGh9efROtKhv3ZD1Te0{3ktg zU+2Egx%ZrN?|<8yh^JGT)KE6m-P*l+b*MMGBeXdji8RzV^+W}rM*fMFhahhHWpMpE)V|7N=)tVzz}11hTfe;h zeDFk6jP8EF=JdJkkH7uv&))=3Y*p#G@4fa+aOiySvsFS|t=;umIY!)vf;qqdunD*r zSPyIf)&g$_&IjHB-47;A6SyV+X&SEA zjmsSH`9>{l63aEd$aI;0odj;hAtLkY_&HexCcxS&%D? zcD~#>kiGzYiA6x3Czk-}S5WRAxX%IZc7h32YU1A-kWePvf0Q|a`|&~G;!6?VzqO~6 zTpP^eer0F@4X|D@E%Qjr&`Fz$r$(SvupU~1(HAmV>tMJ$b?{Is34PO>8ni}G)|fBb zZw-W_R{BT+YDBC+{*%x{-A+x_B{h|;VNhMRU7C*HK>`vx#40XZagmb;aQp_at^=aw1pb&R_w(LbDo!b?zvF3r#9>4PJjPojS$@uF0;?4sT- zrv|tA;+%VUPdb$?$2;D^@Vm|qjEDDt=8Sh1X+OqE*%@S6IUvnkpmYD1+xN~rOg@nh z&b7k4YL!3O79dYKhf3scXlF|PsifKjSZjmQTK8pAhtqK@j{QXA-FGCjJ`&k52|G@! zKi0g{c5|J42&9acfl()cv37H@GWk?gE>=WiRN`SoU?Lp8smw0Ok;^{@eHq$U%IUN-xo}Nii+;3~5>BY?p@?WZ$$coi0CQl?Vkf1wPG?eh59V?r2Ly!3GnFa86C2WeB^h zX@y8znZqO5jPzxU{P!(-xb0iWAO6b?!EBJfIbm|*^ev0Fh&GXx`G3`B|0%z)_Gcqp zQ~>%U29PD)dRY{XXH#kA!?NBQWST|A@|p5srfc6-;{R8h{HKd|H=?shOLru%vz+>E zz0q&$xJD<^ZnhSKnG%SeQ&dd6UniMHlEpj#DKD>&$@Nv-_5%?!?3y@&w8OPcc(rH47wsJIl_ah{eLkR0|i_{?Yh{XB!y9%S(`lvfN694gBI)XHWP$zc-H&g=wHJKA7GUJGywa1hvwJOtuR9X^5t(?94m<3zsKWLSqEhRbzm>F^6(Zt3uf z4wWqy;c`1M0_><;oV(edl6x$8<4&lniLe&-na>CWKyoTj?g zD~HfA?T#n^LJ5p7zv`EN;cTZpWwUo4x~5)&UXwbL`t(WQb3nL>;u!E%;0Yl8PW!b9 z;*H`VX`6T!^odBDya(OLbINj=&y885ofku^@-!`+H@C zMCnTw!y`qb>u$)`RkAI85n$?i^1tx~1&di0jBPLkHPX1!Gg903Srkm+6R$}%oh|#- zSqSs3Q;uFuK}{|Hs9}M80HM-m+Os<3RQW#uIOpMR;8gp3@k%YY9F={ZVz;+tjtay?b-dcDB3r)9@9u zgy?@41Iw8IU~vJ`Eb9O^mnn-Oe_@$2`f27|V)`d3<2-+uyOH8Do+Zp!oMjEj|8>pl zTWJq3{`S)|AAIyq&+C78_MN<|FYp}*Tc1cIpWl@nN{QBF|3N&YYR#nMtp}|BK`T7~ zDLt<;h7u!Irq$&gE4#XhmMiKkM1x!qKKt$0C6v@+ z&k*u^ivJVD%)I_TjFih~_{!d4xZG(O9mH#nN^C}bHQS80!s~q8|J489{&)8U+)V4A zO7=f2vo4dR=exIVh!#hR#m-hg97hvB0^W8uH gmjHLA`2OXAn;dw+&Bna8JPvpq@HpUcplUeqANBqh#Q*>R literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Configuration/TestConfigurationAgent/obj/Debug/TempPE/Web References.localhost.Reference.cs.dll b/SAF_VS2003/SAF/Test.SAF.Configuration/TestConfigurationAgent/obj/Debug/TempPE/Web References.localhost.Reference.cs.dll new file mode 100644 index 0000000000000000000000000000000000000000..e3c3bb175ab449861986713751edd8423e99b24e GIT binary patch literal 4608 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 AegFUf literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Configuration/TestConfigurationAgent/obj/Debug/TestConfigurationAgent.dll.incr b/SAF_VS2003/SAF/Test.SAF.Configuration/TestConfigurationAgent/obj/Debug/TestConfigurationAgent.dll.incr new file mode 100644 index 0000000000000000000000000000000000000000..156e95e350eb8f5da447982cd63fb318dd77bede GIT binary patch literal 2212 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 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Configuration/TestConfigurationAgent/obj/Debug/TestConfigurationAgent.projdata b/SAF_VS2003/SAF/Test.SAF.Configuration/TestConfigurationAgent/obj/Debug/TestConfigurationAgent.projdata new file mode 100644 index 0000000000000000000000000000000000000000..60f8172aad5f50124f1c810d82d1c632746f7c35 GIT binary patch literal 3080 zcmd6pO>0zF7{~u(Vx1Novk)=G#Us#jAfny#D>snyWzFy}0XBy*oY8N}JZ=k88q1=>G?w~)TPEOL! z#>~EVqb_S6JA@snMcwF7M}N(5wwk`fd-jO*-#+)(6|B6jNYl(q!FEU5wmVm1B05ht z#9CqHn9a7KO#OKFo%~pCBVGDqpZjYPFVykQExZ_r%>LdbsG=jCKHBL`)7Eb7}K4Mo3-k)Q>NhC&h@uRzRj=WU7>53bn)|_Q!`fQ!OYw}#E#F)&RV|No<7J_Yq zEgTneJg)0H9XiGvj!3t%r6U^Y9lAk~OQoS7nNARwudrjGi*rwRN!hLCjzCc(g;Fqx z@(H=x&-^7&2F?R_fDeJcfnNaQb^zo4u3|~7i`e8l+#c_1!6h*$4E@EoONG|Dbe7%X=gQn@R%L^GqkmQ-<$XOLPUg^VWjS^t}>=F5wgSrBG$I zKCdz@^TF@!UJ_B@is33ZyUi%N-aOZM&ZY?2iEUqy0eRU|;2XdI-WaD-W#>qHS-xkD z?O9junT-(7Dt;2Zaj!1-I!D%5OFHvj@k`zWan7gf*yeYHGd_F&IHK+t5jfjkBNB_` zzGI!m+uvKiC*wvDk`}zwvlk6C^@~7I;J4pHf z&r{sIYo(*jHIsbnrZ}%XyiakSJ;nidu1#PC@Yn*}k^TW50RIAGC^7B<^L5~7D{VVo E0XM1XR{#J2 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Configuration/TestConsole/App.ico b/SAF_VS2003/SAF/Test.SAF.Configuration/TestConsole/App.ico new file mode 100644 index 0000000000000000000000000000000000000000..3a5525fd794f7a7c5c8e6187f470ea3af38cd2b6 GIT binary patch literal 1078 zcmeHHJr05}7=1t!Hp3A*8IHkVf+j?-!eHY14Gtcw1Eb*_9>Bq^zETJ@GKj{_2j4$w zo9}xCh!8{T3=X##Skq>ikMjsvB|y%crWBM2iW(4pI}c%z6%lW!=~4v77#3{z!dmB1 z__&l)-{KUYR+|8|;wB^R|9ET$J@(@=#rd^=)qs85?vAy(PSF5CyNkus435LVkZ$rj zNw|JG-P7^hF<(;#o*Vk}5R#e|^13tBbQkeF?djULtvqyxd3<{9 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Configuration/TestConsole/AssemblyInfo.cs b/SAF_VS2003/SAF/Test.SAF.Configuration/TestConsole/AssemblyInfo.cs new file mode 100644 index 0000000..9f89a32 --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.Configuration/TestConsole/AssemblyInfo.cs @@ -0,0 +1,58 @@ +using System.Reflection; +using System.Runtime.CompilerServices; + +// +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +// +[assembly: AssemblyTitle("")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("")] +[assembly: AssemblyCopyright("")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: + +[assembly: AssemblyVersion("1.0.*")] + +// +// In order to sign your assembly you must specify a key to use. Refer to the +// Microsoft .NET Framework documentation for more information on assembly signing. +// +// Use the attributes below to control which key is used for signing. +// +// Notes: +// (*) If no key is specified, the assembly is not signed. +// (*) KeyName refers to a key that has been installed in the Crypto Service +// Provider (CSP) on your machine. KeyFile refers to a file which contains +// a key. +// (*) If the KeyFile and the KeyName values are both specified, the +// following processing occurs: +// (1) If the KeyName can be found in the CSP, that key is used. +// (2) If the KeyName does not exist and the KeyFile does exist, the key +// in the KeyFile is installed into the CSP and used. +// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. +// When specifying the KeyFile, the location of the KeyFile should be +// relative to the project output directory which is +// %Project Directory%\obj\. For example, if your KeyFile is +// located in the project directory, you would specify the AssemblyKeyFile +// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] +// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework +// documentation for more information on this. +// +[assembly: AssemblyDelaySign(false)] +[assembly: AssemblyKeyFile("")] +[assembly: AssemblyKeyName("")] diff --git a/SAF_VS2003/SAF/Test.SAF.Configuration/TestConsole/Class1.cs b/SAF_VS2003/SAF/Test.SAF.Configuration/TestConsole/Class1.cs new file mode 100644 index 0000000..f85ab15 --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.Configuration/TestConsole/Class1.cs @@ -0,0 +1,35 @@ +using System; +using System.Configuration; +using Application.Configuration; +using SAF.Configuration; + +namespace TestConsole +{ + /// + /// The demo shows how to use SAF.Configuration service inside a program and + /// how to use the custom configuration object defined for the business application + /// + class Class1 + { + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main(string[] args) + { + //get the configuraiton manager of Application.Configuration + AppConfigurationManager cm1 = (AppConfigurationManager)ConfigurationSettings.GetConfig("MyApplication"); + //retrieve the configuraiton data by calling the properties and methods of configuration manager. + string connection = cm1.DatabaseConfig.GetDatabaseConnection(); + //these two calls involve the agents which retrieve the configuraiton data via web service + //at http://localhost/ConfigurationData/ConfigurationService.asmx + string customerQueueLocation = cm1.MessageQueueConfig.GetCustomerQueueLocation(); + string accountQueueLocation = cm1.MessageQueueConfig.GetAccountQueueLocation(); + + //get the configuration manager of SAF.Configuration + ConfigurationManager cm2 = (ConfigurationManager)ConfigurationSettings.GetConfig("Framework"); + string eventServerUrl = cm2.EventNotificationConfig.GetEventServerUrl(); + + } + } +} diff --git a/SAF_VS2003/SAF/Test.SAF.Configuration/TestConsole/TestConsole.csproj b/SAF_VS2003/SAF/Test.SAF.Configuration/TestConsole/TestConsole.csproj new file mode 100644 index 0000000..f2aaef2 --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.Configuration/TestConsole/TestConsole.csproj @@ -0,0 +1,128 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SAF_VS2003/SAF/Test.SAF.Configuration/TestConsole/TestConsole.csproj.user b/SAF_VS2003/SAF/Test.SAF.Configuration/TestConsole/TestConsole.csproj.user new file mode 100644 index 0000000..e4263fd --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.Configuration/TestConsole/TestConsole.csproj.user @@ -0,0 +1,48 @@ + + + + + + + + + + + + diff --git a/SAF_VS2003/SAF/Test.SAF.Configuration/TestConsole/app.config b/SAF_VS2003/SAF/Test.SAF.Configuration/TestConsole/app.config new file mode 100644 index 0000000..e5c5778 --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.Configuration/TestConsole/app.config @@ -0,0 +1,33 @@ + + +
+
+ + + + localhost + 4000 + EventNotification + EventURI + + + + + + + +
Application.MessageQueue
+ QAEnvironment +
+ http://localhost/ConfigurationData/ConfigurationService.asmx +
+
+
+ + Persist Security Info=False;User ID=sa;Password=password;Initial Catalog=pubs;Data Source=127.0.0.1 + + + + +
+ \ No newline at end of file diff --git a/SAF_VS2003/SAF/Test.SAF.Configuration/TestConsole/bin/Debug/Application.Configuration.dll b/SAF_VS2003/SAF/Test.SAF.Configuration/TestConsole/bin/Debug/Application.Configuration.dll new file mode 100644 index 0000000000000000000000000000000000000000..5a3684846689c687ca9214c26630b6d7c2e61107 GIT binary patch literal 16384 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 Hg9HBqxXE0Y literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Configuration/TestConsole/bin/Debug/SAF.Configuration.dll b/SAF_VS2003/SAF/Test.SAF.Configuration/TestConsole/bin/Debug/SAF.Configuration.dll new file mode 100644 index 0000000000000000000000000000000000000000..3c9c82b094437090429da5627495471d3a4914a6 GIT binary patch literal 24576 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 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Configuration/TestConsole/bin/Debug/SAF.Library.Security.dll b/SAF_VS2003/SAF/Test.SAF.Configuration/TestConsole/bin/Debug/SAF.Library.Security.dll new file mode 100644 index 0000000000000000000000000000000000000000..b19072f85497f5bc1d4bcb4b8e311e8fe1e46023 GIT binary patch literal 3584 zcmeHJ&2QXP5Fe*WNm`nIQI(1ooPJ0kA(N1;N=pU1-R(!xv)g~SCRDpd6^D2E)7;DFQ%7dTLUGq#m&cLkI~g%B@! zzc=&d>e16(84Gyg}Rukc0 zCKhWCz{D(K5^WT^CykpoIDQ#RKRd%tn_gG3)u>gG zls$gP$Rg&H&y85a*66I99>> zGx%ZV4+Rn2%Ycb-bPLe{bH5p*TrBL-I!us4^UD0%jAuE~nk=%_lu#9q`CY+J1g{A$ z3;rtjkij}n2_6%41eXLa3SKiVi|f=sXZ{h+*+mC{c^!zp?VHRvgKk2#2e}W>+q4NU z592oARvHre3BeJ;{emUIF~JuEPYF7LK5#o($aE)gv*06wqk_*0mIaRs+JdhLx`K=J zIQ1^2l^gFneF?#1q&X1%kloz@I+Y3-51xo>%|Jaz-L8sN3j!J|HIs!%`xl(VkHRS( zo%3r-ch#p{RZ%^5BOUlvvRiSY>ejS68z`4OP$`a8y&ANRtJX=Uu1X26O|_XQvfL!n z?cyVT&?e69Dk^YVw(o^2mbqwF=@>_J3d+qOY3eS{X0%gNbw@9Dv56Wj?RyJJrwCQ3 zHQg?Pa#U|PVXM=k9EE3nuc@Voo#Kj$UF|oxKAplDKWVQ+R?&*@cwrPLz8jOg&Yn|k zS95|OdQH`)qd>(}Q=y;Jh0U9Gdbe(#{Pgqvd#`-(@pXE@>@ju>?ilR<;=6{f)2BqfDDjb&k9b5}heWx)KB@96wAihEj61_%*-1 z2lg8~t^X@KhV;RQiI(onDD5ifi5>f_$KQ^Zi+DY`nP=nRssgB4vgr))FinFRqe(gm zehhd7G>@-(Z~dP30E13n8t-G8*Zju-K1I@BML7fR(FVLaq~XV>fE0X&be1B~*exH) z8Au)M#*jPcy*{L2=Hav6_oaW^*w>JRElB?g=+OLK*p7${D#KqLe+t$K zPD!uU?lxIN&Tk=GNA&n`6Z1*Y$s@18Lrkv3(YPZ{)-BR{oR#a&LRUk3C6^KO-(k!V z8l}Bd09Bx;=@~(o(+v8&A=OF5Hbg8zTSPXM;N7AL_^e9BG_}Cn&~~XQQ6;idgI&Nb z(YHDO321oYjVsZB4p-8n1?144=ZaqXL~5|B!%owpR4vt=lQ<_cAN)i(&OC4CxYC5U z?mgc0nM}cVL^b5(BEq|$Nk!^>r_SBg{;OIa6CWjH6-$m)WYEGBzgIt8IyqDXr3ImXL2Xkk)dmv9f5f%m=HRLzPU0Yl z|A>>t(WUWyO|FEZrDM{(kAC;=E?3BX@7>G0YP(@uj@7!<%6d7M)2g*Yt(Z5AbSisL z6NI_pPh_Zjf-xcO8E$7l0prJI#8`pkTZ}i)TX(P3f>J^rTlGms6|PHZ-7CU}_h3q_WiKr42#3V6AWJFT|_#Zg{eq9!#ln|fW@F}nm;Bdlk zyx919!EpCEKZ>0}f6!NG4)hvy7-3f6ul$dg2?g28#%leOMf>F(fwL*97hJI$&o2GqwZZ$fir}*k; zv4XHhM3sojaFGb0nqY)Y0o3sZQTl(p{+G2s;sUt>@qqupyYQ^M1F&~Vj0oZ;Ur?^@ zoBOE$Gp~0a>%GqLL-Fzbc5mZpi{|u7yW2VHwk)A{>ldcO=Rbl@p76@J(@%T;We&jk XM;_oDFhSUeJc9ojtN<$zPX&Gf+ShFN literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Configuration/TestConsole/bin/Debug/TestConfigurationAgent.dll b/SAF_VS2003/SAF/Test.SAF.Configuration/TestConsole/bin/Debug/TestConfigurationAgent.dll new file mode 100644 index 0000000000000000000000000000000000000000..4b51779e0d41ab745622e94fb77b170c08a1b63a GIT binary patch literal 16384 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 AegFUf literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Configuration/TestConsole/bin/Debug/TestConfigurationAgent.pdb b/SAF_VS2003/SAF/Test.SAF.Configuration/TestConsole/bin/Debug/TestConfigurationAgent.pdb new file mode 100644 index 0000000000000000000000000000000000000000..560695939fe2e1f9f655b722741ef4e2f4e44d8a GIT binary patch literal 19968 zcmeHOOKg-?6uwi&u`LuC#VQ4Hs0EbAba<7fqO`OiL>nGs#ONfoo&GHo%M6(r9vTuS zYJBWi7!so<5Lpmo;>LwBF?NB*g)1?}1tx^3(U>S07bGh9efROtKhv3ZD1Te0{3ktg zU+2Egx%ZrN?|<8yh^JGT)KE6m-P*l+b*MMGBeXdji8RzV^+W}rM*fMFhahhHWpMpE)V|7N=)tVzz}11hTfe;h zeDFk6jP8EF=JdJkkH7uv&))=3Y*p#G@4fa+aOiySvsFS|t=;umIY!)vf;qqdunD*r zSPyIf)&g$_&IjHB-47;A6SyV+X&SEA zjmsSH`9>{l63aEd$aI;0odj;hAtLkY_&HexCcxS&%D? zcD~#>kiGzYiA6x3Czk-}S5WRAxX%IZc7h32YU1A-kWePvf0Q|a`|&~G;!6?VzqO~6 zTpP^eer0F@4X|D@E%Qjr&`Fz$r$(SvupU~1(HAmV>tMJ$b?{Is34PO>8ni}G)|fBb zZw-W_R{BT+YDBC+{*%x{-A+x_B{h|;VNhMRU7C*HK>`vx#40XZagmb;aQp_at^=aw1pb&R_w(LbDo!b?zvF3r#9>4PJjPojS$@uF0;?4sT- zrv|tA;+%VUPdb$?$2;D^@Vm|qjEDDt=8Sh1X+OqE*%@S6IUvnkpmYD1+xN~rOg@nh z&b7k4YL!3O79dYKhf3scXlF|PsifKjSZjmQTK8pAhtqK@j{QXA-FGCjJ`&k52|G@! zKi0g{c5|J42&9acfl()cv37H@GWk?gE>=WiRN`SoU?Lp8smw0Ok;^{@eHq$U%IUN-xo}Nii+;3~5>BY?p@?WZ$$coi0CQl?Vkf1wPG?eh59V?r2Ly!3GnFa86C2WeB^h zX@y8znZqO5jPzxU{P!(-xb0iWAO6b?!EBJfIbm|*^ev0Fh&GXx`G3`B|0%z)_Gcqp zQ~>%U29PD)dRY{XXH#kA!?NBQWST|A@|p5srfc6-;{R8h{HKd|H=?shOLru%vz+>E zz0q&$xJD<^ZnhSKnG%SeQ&dd6UniMHlEpj#DKD>&$@Nv-_5%?!?3y@&w8OPcc(rH47wsJIl_ah{eLkR0|i_{?Yh{XB!y9%S(`lvfN694gBI)XHWP$zc-H&g=wHJKA7GUJGywa1hvwJOtuR9X^5t(?94m<3zsKWLSqEhRbzm>F^6(Zt3uf z4wWqy;c`1M0_><;oV(edl6x$8<4&lniLe&-na>CWKyoTj?g zD~HfA?T#n^LJ5p7zv`EN;cTZpWwUo4x~5)&UXwbL`t(WQb3nL>;u!E%;0Yl8PW!b9 z;*H`VX`6T!^odBDya(OLbINj=&y885ofku^@-!`+H@C zMCnTw!y`qb>u$)`RkAI85n$?i^1tx~1&di0jBPLkHPX1!Gg903Srkm+6R$}%oh|#- zSqSs3Q;uFuK}{|Hs9}M80HM-m+Os<3RQW#uIOpMR;8gp3@k%YY9F={ZVz;+tjtay?b-dcDB3r)9@9u zgy?@41Iw8IU~vJ`Eb9O^mnn-Oe_@$2`f27|V)`d3<2-+uyOH8Do+Zp!oMjEj|8>pl zTWJq3{`S)|AAIyq&+C78_MN<|FYp}*Tc1cIpWl@nN{QBF|3N&YYR#nMtp}|BK`T7~ zDLt<;h7u!Irq$&gE4#XhmMiKkM1x!qKKt$0C6v@+ z&k*u^ivJVD%)I_TjFih~_{!d4xZG(O9mH#nN^C}bHQS80!s~q8|J489{&)8U+)V4A zO7=f2vo4dR=exIVh!#hR#m-hg97hvB0^W8uH gmjHLA`2OXAn;dw+&Bna8JPvpq@HpUcplUeqANBqh#Q*>R literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Configuration/TestConsole/bin/Debug/TestConsole.exe b/SAF_VS2003/SAF/Test.SAF.Configuration/TestConsole/bin/Debug/TestConsole.exe new file mode 100644 index 0000000000000000000000000000000000000000..072d22fcb683929cd4057eb682ce4504c2f100d7 GIT binary patch literal 16384 zcmeHNU2GiH6+W}O-WZ2$92+Ppp&i#ja-wQuI~D|r+THB>5B!s49RsaPJi8vRhwRR5 zXJ&&tCZ1pYiXihSoFa9>`*A@SO?Ql!OwX!wQFiY;dUU*3uY*yx9b~jiRnhaC6;nT zPj`zc&X$SphUKzObRh1zy@vQ`ciqsZA}zAMx$Z+>;UM@V$1rbbLORiM*7e*9G|4Ro zfn#)(2<4D{)-`Jm0y$S&M&Y<&lnCXBjz?4_Dg+b)3ITy)5Kssx1QY@a0foT- z5dyiPV6uERO`tqIKy(pDZw)dEq&uVjVT~4ow)(6#>5zSQ}9Ir2WR{;tE^|E@5l#LzcjJSx6-y(3zVOs1SAIEhVeFA3Pt0r`<|!8+TPo!z&Xk;{TQLiGDIw}&X>@q_D2q!A zrsroNWDAbHYE_%A;aiR^W>`F@W-dA9=a!0Qxmk@`vyGK9`afQJ; z_}jw&DEzAMzYD)l`i1SFZ@ODKKd-N z1+FExIK?oJ0J&Zop<}>`wG%pfe?>*f^`dCMxPKb2If9v8(e}|a-9!6@4}kBdLn4m| ze^hv0__Xko!k-at2)Bg)1pHgH0p3d&s4H=ZUZJNFS&Y4!7=`?s#KZI&y#@I-dLR6C z(vt;xi;g8nfj+m=$)kgmrSH*?!TW_jApEHC-NFmPpA=pa{v+WP;b*BrlXQv}=^0A3 z0$i@8KgM0cbPR>B-phD?m^AukSVwJxH*D9^SHhNiBPffT9-{zxXphf2E6tkued3!x zyvwuZx=D4f;J4z39Gh)qiEKQjgnQhJKHRpu7}P$9ffAiZ@N2lw%{5o zX5Dbl?$E|*Y`9i+&F^%bZ~;zb2S>rFHw=5Dvqfy>=yVrNui{z_MyAubVEIuT0^GAj z%c$Cp=UWwzWaX(EV4HpYa*gTdH#k7*?`?B^-ntbK4;!(cQs96tKu)5wx}la(+)B+d?Rjak$4(8tN9*}SQFr-!>JG(F#` zo31pNae_42k*`#ortQb=9qV{}^6mV`&zZJA=lIrYIPdsGZsF!p#Z@xhbEbRR<+Yg} zn8g~Brw0CNWZ`Kx$VcsvP1HX@F7!H?^gJvsos~!NEBn%sXWtpk|1NEB{q>DEH0plm zg{8&)V^?3n8mK*(N$RAfbWO`JOLXZ8Es;nCi@0_mlT7zbBZBMM?%y99IP%$hsT7pc zJ-gC<WV{H{-INS%YagJr3rA}(^7q&fT3XVIzZpwo%>x5}$ zS89R*U4Mx5+;*sv6aoqXg@8gpA)pZWFGL{8-giChPm|^@3Aov@jviv0A0Ir@!1&mggJ*bUd_@#r6axmg+U|bu!*tu}8 z%0qL^cO|Bsc@f!r*xzyd82dQw!C39sMZ~&@4)?)`8Nms87-fVWp@;F8rAKkP z4c?OEaF*5t8DHAj$fFj?WeoKt&#tnsd%uO6dv>)ZmIPoN)%R;UU5{K(9L zymEqFJmzKuZ--w|+UJpnCvzzy(+ym~JLzL6#3+Yallu}6Z{)dxIYO=A$!@g>5(@s< z1h%=k2@8H;gn#~_kyPOPo1^Q@{#ANDMvYW4MvW8(*`_a)z6}N>;PG;lUh2eercHAn zeKhSiQXfR=GG0nXDR;+LGnNjNP26s+e_u(W|6S2B`99~*Ivu5bpKn6mnOb~v^Nk%; z;1KWVKHnAIt|4lZ^ODS$|8zYST)xSf;Id3!4m#dMmNDW-trfF;4MmejR-RQxCqcT- zD|1RdVH4Eb8)*Fb8uhapb$_9 ZCy)5Kssx1pX%x_y={ + +
+
+ + + + localhost + 4000 + EventNotification + EventURI + + + + + + + +
Application.MessageQueue
+ QAEnvironment +
+ http://localhost/ConfigurationData/ConfigurationService.asmx +
+
+
+ + Persist Security Info=False;User ID=sa;Password=password;Initial Catalog=pubs;Data Source=127.0.0.1 + + + + +
+ \ No newline at end of file diff --git a/SAF_VS2003/SAF/Test.SAF.Configuration/TestConsole/bin/Debug/TestConsole.pdb b/SAF_VS2003/SAF/Test.SAF.Configuration/TestConsole/bin/Debug/TestConsole.pdb new file mode 100644 index 0000000000000000000000000000000000000000..812cfb79c40f801c3b13de567821f55d2383e44d GIT binary patch literal 15872 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 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Configuration/TestConsole/obj/Debug/TestConsole.exe b/SAF_VS2003/SAF/Test.SAF.Configuration/TestConsole/obj/Debug/TestConsole.exe new file mode 100644 index 0000000000000000000000000000000000000000..072d22fcb683929cd4057eb682ce4504c2f100d7 GIT binary patch literal 16384 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 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Configuration/TestConsole/obj/Debug/TestConsole.pdb b/SAF_VS2003/SAF/Test.SAF.Configuration/TestConsole/obj/Debug/TestConsole.pdb new file mode 100644 index 0000000000000000000000000000000000000000..812cfb79c40f801c3b13de567821f55d2383e44d GIT binary patch literal 15872 zcmeHNU2GIp6ut`uwgoE7PsLJk#TskD{i)a@iQ#8y1KJ8?3mUUYU8b{i!*+)3Y)eQm zmPm++#5Bc zbART}opa9p?wvC;kk+!MWu|h$SU9$ReQ+S&7wic|B1@ZEcf1w?O-L8B*{Fe9ng5)(4+Dz3TXDPwAa|3)$={s6PVOdWle@{`=92 z$h{TCj|}~VegES>YtSC&fM@b`I#MM(&)t?~Y|GTyw!27Mma#2UXIuO1lPIOo>YfzS zfUU|dKl6w< zUhWr^Z@RhP$?e)`RIC-j0NVl#2}sdQ!_c){+BAgdL_Ha#pnlBCnWK7k@0dQO_nTVM zZYtZde`njIrkP_#&fOII)nI^e3bem{-O(FU3qWAQeQ)s>`h~D(Av5drFdbEVD{Qy?L3r@sb8gA-k7)kQwzm}nhA+c z$v>y^9_V}qK#_DvSv8PMgAT!4^Ccg?i9-2~7-g()677NbQ7fm93eh@!TsVQz41C)j z*mn4ECT+9k9SvG|u6yR=yk?Y>7V`67@+bSl@I8pI5M-fBr;@lJB5gpg4I&2Y1LA-N^h2)=;xDxE6ZSCV zaS(a-<;nl60q&w&8^hOW&n1`?u$A-%GHKo%|9Jqx5VVE1IP(F%PlM$94~_AL=!7*`q^y%(RgcuP+ymJ8bRQ zzpkCZyE(T8>VEzQvF4Mvi4RpEl+<03ERHVsU2E67hzg@v;OE z1U3L414>$OV1NI6^`a`XBZjwQhbnK^H;G9&%>*(h0Q%3eE33Jkkm7ir3)%4;(Hq;? z-PIlI5>K5AU0435oU2iTrLfX{&%da&hl-VH#-|1U_#yEFbz|2TtrHCx{Ql3@4^2u(uH zBBwDDOViLSd_Pd?{Vz=h$tQNE9{*S4rl^x*Lb_pWfJz{z(lzq#QLK4AmesxeX=ASc zi0N^DVEzBSopa?oU=rZ^e;QD7FYEs?@ZMMGU?rS~{?qZzW%W`-IM@H_7ea**VZQZB zYr5#&-V@#4)Ay_#irQmv{47v;S&7+w5f>Up<^zD&JpIMjMXyhtgGgpM(NH=@2&y0|Kt33@Bg?}na%q@ZnxAnjqj}}!5b*=?5DNv38aoL>P$U*siU>v|YNCO}gj`anjit4nU}2eO zuuUfxRz8II2!j6RE?yKYQd(q=xtX2so!!~H(ZNWMfL`gZ_w#{Z~!LbV@suji;t>VzD{~JU%eC+idxt&5;06ZSlGkm;q@htq0vX!xPrQ|D;m>SIErc}%eY2iKU1=H`1Lr`4FN$k~i2wiq literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.MessageQueue/Test.SAF.MessageQueue.sln b/SAF_VS2003/SAF/Test.SAF.MessageQueue/Test.SAF.MessageQueue.sln new file mode 100644 index 0000000..c58d017 --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.MessageQueue/Test.SAF.MessageQueue.sln @@ -0,0 +1,37 @@ +Microsoft Visual Studio Solution File, Format Version 8.00 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestConsole", "TestConsole\TestConsole.csproj", "{F28F69E5-EFE6-4A4E-9652-67C8D60E2D64}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SAF.MessageQueue", "..\SAF.MessageQueue\SAF.MessageQueue.csproj", "{4F210282-BB72-4DAF-9324-D1BDDA58605A}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SAF.Configuration", "..\SAF.Configuration\SAF.Configuration.csproj", "{CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfiguration) = preSolution + Debug = Debug + Release = Release + EndGlobalSection + GlobalSection(ProjectConfiguration) = postSolution + {F28F69E5-EFE6-4A4E-9652-67C8D60E2D64}.Debug.ActiveCfg = Debug|.NET + {F28F69E5-EFE6-4A4E-9652-67C8D60E2D64}.Debug.Build.0 = Debug|.NET + {F28F69E5-EFE6-4A4E-9652-67C8D60E2D64}.Release.ActiveCfg = Release|.NET + {F28F69E5-EFE6-4A4E-9652-67C8D60E2D64}.Release.Build.0 = Release|.NET + {4F210282-BB72-4DAF-9324-D1BDDA58605A}.Debug.ActiveCfg = Debug|.NET + {4F210282-BB72-4DAF-9324-D1BDDA58605A}.Debug.Build.0 = Debug|.NET + {4F210282-BB72-4DAF-9324-D1BDDA58605A}.Release.ActiveCfg = Release|.NET + {4F210282-BB72-4DAF-9324-D1BDDA58605A}.Release.Build.0 = Release|.NET + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Debug.ActiveCfg = Debug|.NET + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Debug.Build.0 = Debug|.NET + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Release.ActiveCfg = Release|.NET + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Release.Build.0 = Release|.NET + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + EndGlobalSection + GlobalSection(ExtensibilityAddIns) = postSolution + EndGlobalSection +EndGlobal diff --git a/SAF_VS2003/SAF/Test.SAF.MessageQueue/Test.SAF.MessageQueue.sln.old b/SAF_VS2003/SAF/Test.SAF.MessageQueue/Test.SAF.MessageQueue.sln.old new file mode 100644 index 0000000..e967c1c --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.MessageQueue/Test.SAF.MessageQueue.sln.old @@ -0,0 +1,33 @@ +Microsoft Visual Studio Solution File, Format Version 7.00 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestConsole", "TestConsole\TestConsole.csproj", "{F28F69E5-EFE6-4A4E-9652-67C8D60E2D64}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SAF.MessageQueue", "..\SAF.MessageQueue\SAF.MessageQueue.csproj", "{4F210282-BB72-4DAF-9324-D1BDDA58605A}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SAF.Configuration", "..\SAF.Configuration\SAF.Configuration.csproj", "{CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}" +EndProject +Global + GlobalSection(SolutionConfiguration) = preSolution + ConfigName.0 = Debug + ConfigName.1 = Release + EndGlobalSection + GlobalSection(ProjectDependencies) = postSolution + EndGlobalSection + GlobalSection(ProjectConfiguration) = postSolution + {F28F69E5-EFE6-4A4E-9652-67C8D60E2D64}.Debug.ActiveCfg = Debug|.NET + {F28F69E5-EFE6-4A4E-9652-67C8D60E2D64}.Debug.Build.0 = Debug|.NET + {F28F69E5-EFE6-4A4E-9652-67C8D60E2D64}.Release.ActiveCfg = Release|.NET + {F28F69E5-EFE6-4A4E-9652-67C8D60E2D64}.Release.Build.0 = Release|.NET + {4F210282-BB72-4DAF-9324-D1BDDA58605A}.Debug.ActiveCfg = Debug|.NET + {4F210282-BB72-4DAF-9324-D1BDDA58605A}.Debug.Build.0 = Debug|.NET + {4F210282-BB72-4DAF-9324-D1BDDA58605A}.Release.ActiveCfg = Release|.NET + {4F210282-BB72-4DAF-9324-D1BDDA58605A}.Release.Build.0 = Release|.NET + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Debug.ActiveCfg = Debug|.NET + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Debug.Build.0 = Debug|.NET + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Release.ActiveCfg = Release|.NET + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Release.Build.0 = Release|.NET + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + EndGlobalSection + GlobalSection(ExtensibilityAddIns) = postSolution + EndGlobalSection +EndGlobal diff --git a/SAF_VS2003/SAF/Test.SAF.MessageQueue/Test.SAF.MessageQueue.suo b/SAF_VS2003/SAF/Test.SAF.MessageQueue/Test.SAF.MessageQueue.suo new file mode 100644 index 0000000000000000000000000000000000000000..12ab90ef37254ec4865138eefc29bcbad9aa18ed GIT binary patch literal 12800 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 M#tjeh|4#}02b7+VeEBq^zETJ@GKj{_2j4$w zo9}xCh!8{T3=X##Skq>ikMjsvB|y%crWBM2iW(4pI}c%z6%lW!=~4v77#3{z!dmB1 z__&l)-{KUYR+|8|;wB^R|9ET$J@(@=#rd^=)qs85?vAy(PSF5CyNkus435LVkZ$rj zNw|JG-P7^hF<(;#o*Vk}5R#e|^13tBbQkeF?djULtvqyxd3<{9 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.MessageQueue/TestConsole/AssemblyInfo.cs b/SAF_VS2003/SAF/Test.SAF.MessageQueue/TestConsole/AssemblyInfo.cs new file mode 100644 index 0000000..9f89a32 --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.MessageQueue/TestConsole/AssemblyInfo.cs @@ -0,0 +1,58 @@ +using System.Reflection; +using System.Runtime.CompilerServices; + +// +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +// +[assembly: AssemblyTitle("")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("")] +[assembly: AssemblyCopyright("")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: + +[assembly: AssemblyVersion("1.0.*")] + +// +// In order to sign your assembly you must specify a key to use. Refer to the +// Microsoft .NET Framework documentation for more information on assembly signing. +// +// Use the attributes below to control which key is used for signing. +// +// Notes: +// (*) If no key is specified, the assembly is not signed. +// (*) KeyName refers to a key that has been installed in the Crypto Service +// Provider (CSP) on your machine. KeyFile refers to a file which contains +// a key. +// (*) If the KeyFile and the KeyName values are both specified, the +// following processing occurs: +// (1) If the KeyName can be found in the CSP, that key is used. +// (2) If the KeyName does not exist and the KeyFile does exist, the key +// in the KeyFile is installed into the CSP and used. +// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. +// When specifying the KeyFile, the location of the KeyFile should be +// relative to the project output directory which is +// %Project Directory%\obj\. For example, if your KeyFile is +// located in the project directory, you would specify the AssemblyKeyFile +// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] +// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework +// documentation for more information on this. +// +[assembly: AssemblyDelaySign(false)] +[assembly: AssemblyKeyFile("")] +[assembly: AssemblyKeyName("")] diff --git a/SAF_VS2003/SAF/Test.SAF.MessageQueue/TestConsole/Class1.cs b/SAF_VS2003/SAF/Test.SAF.MessageQueue/TestConsole/Class1.cs new file mode 100644 index 0000000..d08a280 --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.MessageQueue/TestConsole/Class1.cs @@ -0,0 +1,76 @@ +using System; +using SAF.MessageQueue; + +namespace TestConsole +{ + /// + /// Demo application to show how to use SAF.MessageQueue service + /// + class Class1 + { + /// + ///Demo application to show how to use SAF.MessageQueue service. Please + ///refer to configuration file to determine what message queues need + ///to be setup on MSMQ and MQSeries in order to run this demo. + /// + [STAThread] + static void Main(string[] args) + { + //create a new MSMQ implementation object + IMessageQueue msmq = new MSMQ("QueueA"); + //bind the implementation to the MessageQueueManager + IMessageQueueManager mqm = new MessageQueueManager(msmq); + + //create a new message object + Message m = new Message(); + m.Label = "test"; + m.Content ="this is test"; + try + { + mqm.OpenConnection(); + mqm.SendMessage(m); + Message retrievedMessage = mqm.RetrieveMessage(); + //send two more method the queue for MessageArrival event test later + mqm.SendMessage(m); + mqm.SendMessage(m); + } + finally + { + mqm.CloseConnection(); + } + + //register the client with the message arrive + mqm.RegisterMessageArrivalHanlder(new MessageArrivalHandler(RecieveMessage)); + + //create a new MQSeries implementation + IMessageQueue mqseries = new MQSeries("QueueB"); + //bind implementation object to the MessageQueueManager + mqm = new MessageQueueManager(mqseries); + try + { + mqm.OpenConnection(); + mqm.SendMessage(m); + Message retrievedMessage = mqm.RetrieveMessage(); + } + finally + { + mqm.CloseConnection(); + } + + + Console.ReadLine(); + } + + /// + /// The method that will be called when message arrives at the queue + /// + /// message object + /// name of queue + public static void RecieveMessage(Message message, string queueName) + { + Console.WriteLine("Received from queue listener: "); + Console.WriteLine(message.Content.ToString()); + Console.WriteLine(queueName); + } + } +} diff --git a/SAF_VS2003/SAF/Test.SAF.MessageQueue/TestConsole/TestConsole.csproj b/SAF_VS2003/SAF/Test.SAF.MessageQueue/TestConsole/TestConsole.csproj new file mode 100644 index 0000000..cfe270f --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.MessageQueue/TestConsole/TestConsole.csproj @@ -0,0 +1,113 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SAF_VS2003/SAF/Test.SAF.MessageQueue/TestConsole/TestConsole.csproj.user b/SAF_VS2003/SAF/Test.SAF.MessageQueue/TestConsole/TestConsole.csproj.user new file mode 100644 index 0000000..dcd2b69 --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.MessageQueue/TestConsole/TestConsole.csproj.user @@ -0,0 +1,48 @@ + + + + + + + + + + + + diff --git a/SAF_VS2003/SAF/Test.SAF.MessageQueue/TestConsole/app.config b/SAF_VS2003/SAF/Test.SAF.MessageQueue/TestConsole/app.config new file mode 100644 index 0000000..792f8ba --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.MessageQueue/TestConsole/app.config @@ -0,0 +1,20 @@ + + +
+
+ + + + + + FormatName:DIRECT=OS:.\private$\MSMQTest + 1000 + + + MQ_Local + MQSeriesTest + 1000 + + + + diff --git a/SAF_VS2003/SAF/Test.SAF.MessageQueue/TestConsole/bin/Debug/Interop.MQAX200.dll b/SAF_VS2003/SAF/Test.SAF.MessageQueue/TestConsole/bin/Debug/Interop.MQAX200.dll new file mode 100644 index 0000000000000000000000000000000000000000..dcdb8445dd871459319ed536b78f8a34de10594e GIT binary patch literal 122880 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

;HE$k+#D!@TLX8(hQQr$d!P*N2;2)3 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 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.MessageQueue/TestConsole/bin/Debug/SAF.Configuration.pdb b/SAF_VS2003/SAF/Test.SAF.MessageQueue/TestConsole/bin/Debug/SAF.Configuration.pdb new file mode 100644 index 0000000000000000000000000000000000000000..ff2b21f6a1a421faca45c9a229c8053afec3acb4 GIT binary patch literal 56832 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 WT|m<5LNxspdf-AV_;i^a2mU|IoXXVz literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.MessageQueue/TestConsole/bin/Debug/SAF.MessageQueue.dll b/SAF_VS2003/SAF/Test.SAF.MessageQueue/TestConsole/bin/Debug/SAF.MessageQueue.dll new file mode 100644 index 0000000000000000000000000000000000000000..e51bd2416d0579835e9fd2fa8a946d708dfe745b GIT binary patch literal 20480 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 SKoEf-0zm|V2>fqH;J*R)(MZVv literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.MessageQueue/TestConsole/bin/Debug/SAF.MessageQueue.pdb b/SAF_VS2003/SAF/Test.SAF.MessageQueue/TestConsole/bin/Debug/SAF.MessageQueue.pdb new file mode 100644 index 0000000000000000000000000000000000000000..37874b196020f64a1acf3ed4dbf52819286f6fb4 GIT binary patch literal 36352 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

|4`uxuS2$tkcy{XSiVvj}{wS z+BddwHRklR6_h)Qe1?+7(#7|)zU&9i4wT2{VBw)ycMGJ-+4n%EV|*pF<4~Sd+S@p zpYFD-598PBpn5V7%7;T;lx#JjlNBc&dpER=NVVViPFKB6M_u6s#QJXi#`JY_L&fNL0zP*UC*8p{6Pv<3!wC(;2 zK{sc#u0O#-F$5mtJJsXP#*)pMmD>0KTesvMOTCvtUA^5IC{}U8HQ#qo?-is~-HrEj z)m?f3^V-2G{;HnR!PxiRoyQx{cfrG;_GI4>zb%+k3Q}R)GTQnbjDngr-?3O_!=6Om$b;w(iE$(Wb2O zrA?%}xK}#0Q|WAda3i=C+y?FfcZ2VM`Yv&M#n#6GA=@ zhjg!m@Y_Q8DIF)7Z5Eq>LQ=I=f zQS^3Xdwcux^>_XsAyeIB$KSg(;MZF>eHYpdX2D0nC%|VxtrdI01K``>LGXR>6EIC@ zj{x;HLwD)2E7XHJx2yy=gJYs;?ku5lOQM>&dZ#_BMd6cOxbBNfB0B{2@cZz>v=-jjPBxm zops-$w8=-PR;G^+>DKDKtWT#qjFNDvVZ1)f^Uh}RH(uQZltlh=z<7OF;GNaOtNB?P zKJYSL9~O8~bgb^O&z43$e`zVe4!wsvW4-33=d&b^A`m{99*z@6mAH~k{*1P`FM1T0Oz>894yn6dyn&=N7 z7I-lno2>LEoI3Y8wmeTr%lxta(Hmx^Ei|@#yiYfRelG;38(6&N>1^hXwMXNlB+r=1 z&1u?Wyne3t?t|j|FWg6`YyQt>9kq2=Z@#q#_^-Ts)=nQD##yodb93};TmMse=5osR zXV(95VGq*TA?4Q79s{MVt3J+;m07I)wkB<4&q(Fg)uYq-_>hiue|jiO_J5`8>!QHQ z_Pikv*8l2|hwSd$$Q;v1Z~1uskPmxM=bnF+hsR(F#4iKMv-@Pb=B;)jk|EmS!^uGFn0&!a7^&8;W&3R+8qi$sM?F#YM zQlRd9X5c;u8ep4o@3gp?+h<|^7lV3!JIMS#{(NU67)pN99o3F~cU&OiAo=4`y?$vb z{O(IMw_$GGO|$2qt~jv#Rd)rL-^UJ*vh05~l(53dopbKcUr9Z7aCCX$DnGiZrndI# zng!@j0?RXh8N;IY$x-^T|Hgo~%=_F=dAPJkm%*nR(VT|a*IZN6uz)l5FRDK@0m$Z* z1jQ-b>`n1_#mSCkHmqcvY*mHQ$sScGu7S9mkYbstyk&jF$@ci2z;A7mSMJ||^W*`N zancd(em@zf`*+>t3zBiVGiORVNXF^@n{#U3INj%>e&vnRo$aj!;&lIdd4V{+9eFCm zCFi5Yh4pPRPT!ZPF9gXr*$GbP{FnYW=%eh7n)5HTcKo(=^Q%jrpSkyE!|uB2HJ$fn zF4@q2m-`*Wne8o`GF{QkuFlq(>-llTOy`{&J6iAZ0c$sG%yi8>!QYQ^Ssf!~?uUv( z$;V(1KPnr`xgS4{l>axHK3|^s+tH88g%)x=aN|qE{nueIy@0zCd<0ZH%OH3D9vD{9 zV3-xAL$>Vf&G_{VjcogZVD` zRuPyiOtchDRD30%{s|U?e+QnlyN-Tj6nps9kJPzO_9FY;wIB{P&x0E8VW<<5cZc5y ztv;deS?mtY?)US3|GB+-R!Z|<`+sr%`(LjSv~bNXTC~>!Of&sIZe7+R;Kgm*{RWhio$Ni1x zZ6Obx7bb#xLHqsBpRnc&`uhFPsl@L?VOWOp(8$2)rcpX4e4gL`mmb2=$9=D+zM${i zw-@RkjU(y1qd>_|Rg|u(zE!_#?UEdIHqkg`47xMQIH+`G_2C3iul%&vRf1|aV^iNA zYfNf9x|f2NL)AX@w{&Usi`sT2SPjku)kl)K`jjKC+f!ShPt$MfpwB?Npg(|WZ0~?> zgKmd@AF4Nvyn{UD-*{>cYpk3{SpvMSt#Ut4T_k7e+3~p{S!lj1o#F*4P%;%D-)#IF z&s%-4`^HoKuRfBzmVmqPKLmXpx*vK3dIYL(FDl7&Jah@P2D%m60No8;4}Bl1y9C`M z6yelKK z9KZXtySw-ur-jAuGLPrZ(rn>{?k3L=ah!A27|}d9*?tx&5s-|NO();|ulRmW9OfDa$#ky~m(Tt$zQe@r zERasNg}7ZIu(^84eqcw4czLqv=d=I&u#()J!1qXWymtb!$25Z{c=c3}J$6r1kSAQh z9FGlubj*ftB08g}+5gp-N&COrxH+>d~Rz)7H_ zpmZq0=Ll#&*ZJ>DU>)weLeqbYTj#^Z7(UA)Qj5Yk12LM-_aQ_n9U=+KNGEAFfRgq+ z@Fs9RI0TgKR?=5-k~rBqTWT$I4mcOo8mT(*jL_LBuY>m2o~!flm%$srdQdh>v*&7r SXat;#u;5&5bg|7j3H(1BVVGS2 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.MessageQueue/TestConsole/bin/Debug/TestConsole.exe b/SAF_VS2003/SAF/Test.SAF.MessageQueue/TestConsole/bin/Debug/TestConsole.exe new file mode 100644 index 0000000000000000000000000000000000000000..03251eef9e2d28095e4be3c12355b5d4fb850b3b GIT binary patch literal 16384 zcmeHNU2Ggz6+SawuYZy(vC}pQNy{X5krU8jC!r-Jgk5_R$E`Pxy^d2_qhxmXW7+val zX~&DkuEvIayrZQH^&8zr^4ZVYP*T)VKO&T3^ z<>yZ%8%KMMV#YcnO0*FzR@i!US6xnU9bln=p5x}!C}{~5?uUeNp&1paH_8>Y*t|1D zG{sVa=;3Z@YK2oo>(R2fgJ^rJ=GHZfsM%dN>PMP-!~?Y$pg!9JfKFnp$BmjKi|AC` z^SvBu5?cZS+gQj=DS_zYo+`R9Cv8Xj4^-ngPv#W-;|8`fd+xl`r>0?)J8_xCvsHdk15;d#6K? z9d)Ib#DRz4q}P0mN8#QLka~yUZrHKCIA{Mu_rQQ#Y2}><^Ik=M22P&=Lo=CF=IzVo z&Ve8N`oZVsuiyCnJ-_(fI_Ogm%x98^PiEYzms4YSks{T(%%0)ly)4epDnE!rh^LkB z+XXdURaGUeV{X}Zi)!A@o|#XnY_-tb8n5KDa8IL|2S*J#^Wl4h^CR(*_`bb+_OOyV zsR*nf*nzJQy^8W3mNS9plnXvvywXYX`eopFh90iJz8M%lK9PcM0riV02S$so91Jq1 zhcSMqN&E_g-Zu8~1VkI*9Lrq9`x|*T1;*sP243cf9%e|r^+=<%n+8yOgeEXupQH=G z=LN3_zAX5rV7I~A0l|ZUCj={k-xU0=;LFC(@CNFS275Nm31FAtHo^M^zae-97^SP` zfJDXdbCg_eq!IcIc;nhJi`$>3l*GMn2iKmZENo25OYQ4h&SB)?82^s$2K@>HHR(6z zRys%9Fyk0^0WJ7tdB0#%a6)ie@C$;rpd)xrum-%Bz6#t7p4h|Fz+vi>mOk2L-Us

2L?*m4n<9Vdfu z`AbQ(YBeEkfCFhaUoEPG#1~2Za)_%%MI}GydPOHonVKJ{5=~{#s9Zo}McemBnyo2q zJ7s$BENQRh{o8qWo;SN9p8QKyS=>bPY}`o1b8r z#bKw|Mv+oQyOwbZ<+Xk0l;^|wTE$qk7*xGB&SpJ3uS&LewoM+||nR)(in8y7@Nlp^=1dx5g+vlwTEsz7* zs^f~LsmCbM=Vs6&hwRXKU>^3T$s?Cakj}06ws41FZ|tRv?9l_z6a8e*rE7nxeR1;A zPw)EWfcv*T>i*%E=I6HVd+kZAjmF)vD49loPprctBVrjwjKS=*Ov5xI2KslR-k&z3 zF*CYdx%ZL`=|SR@JsjibfAVjjocH#aoB&Xll@T?D>8(^ z`m+x=9c0;JX>DpeBZZoiW3G2-QORN;Yll+te39>s_z%jxWFpc&8%Xa+O`nt}fv z20CQFHH2+k3_;_az!Lu(`4mbNP05t~*&^C`kM`6WJ#Ma#6Mef)JKuko+qARuR~T9n zTNAy}(#Dmr{l@#WcSCJq)A@$EYS2ASG!%A|#$gO@=c<~vB=P@x9!x!TckF{SM;ST^ zJVY~)Ch(=eQPd}Zhr_Q1=*N*a-woq2=q>Yg>~h2M^L0OsJ!``+mk143b7bQQ=`fy{ zig;F41QcZPglWT&@{5}SP9{-)#kkn-ip7J^iLvsU&fL}q&1BA zc6a<>h6x-~%K4@rOoI0QsAvn+*SMy3mp; zkyJ~nL~xMR^jBS9B?A)pxY(S&wwAxiMml=^`b1EPTx(8Ov8Xkt#BHC=mT*v6#&lcy z&*cvI?`l3K&vU-lS;&ofz6`m2TH?vg6FV$`5N~Uqch#qBowe~P3FgMXTpkHe-}q#B zTE?%2j+YT-OX5pysioxuR1CRfGy|Fe&46Y=GoTsJ3}^;41Db*V0t5d5 D3^H=B literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.MessageQueue/TestConsole/bin/Debug/TestConsole.exe.config b/SAF_VS2003/SAF/Test.SAF.MessageQueue/TestConsole/bin/Debug/TestConsole.exe.config new file mode 100644 index 0000000..792f8ba --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.MessageQueue/TestConsole/bin/Debug/TestConsole.exe.config @@ -0,0 +1,20 @@ + + +

+
+ + + + + + FormatName:DIRECT=OS:.\private$\MSMQTest + 1000 + + + MQ_Local + MQSeriesTest + 1000 + + + + diff --git a/SAF_VS2003/SAF/Test.SAF.MessageQueue/TestConsole/bin/Debug/TestConsole.pdb b/SAF_VS2003/SAF/Test.SAF.MessageQueue/TestConsole/bin/Debug/TestConsole.pdb new file mode 100644 index 0000000000000000000000000000000000000000..6f64eb61dfe7cf319b249daf0d13e191e0459ff9 GIT binary patch literal 13824 zcmeHNT}&KR6ut`!U7%FAwv^HYm$oVb?k*H@#UHc_E!1vWy49%J1h>ne8(>#mq+xSU`awAW!ExC$%pZr!)H-~3!jqa(mLcE1I%axpiDuy59p+myE&m^stk_U*PQ z_r_;PjCJ9gZpBeSuVT$!K?1RDfiVnA!b}%S65O*=1i(Zr#(O+Pz>w_ zN`O+J2q*)#1LeRD;67j{;0EZ1+W?#HjRrQu{`7^Fe87d*assvw+#CC@^_1n}Kkb(p z|5>J-rF<>fcKiQF12?RpD!z2&?Qn?afcMZqKj8eX091@;{AP?_X@0BN&REYiz^2^L zz`kGn4g*7(yft(9!;ijkaE)FMInbH0LUG>9Yx)Oe|Kl1mSdIbY?9{ss)>e_V&^Ro32P0f6cF2G!$w4V9@4*D;R74${A6Wi=q0VQlA zsrmmspRtko-`*MtKYyeroE%QYv|zGVlf{?9O@99&UPewcn&844GNVbij3%rNTG1pp zA5D5?0P4}Duo#6Q4E3DVrLgseCbf-J(TQ$Fmr_Kx-SR{wctsu4Gw~KR1)4CK{6&?V z*0L!SjVDlBAqw5RFOAA^t1sJ2#X)y?L{Dpj?1SqiMrYR@sL!yys1hFeY{U`C*=JB6 z93rnk8|5O$Txc5_l=bM(xU*1?ay9yMT#IB4=~^nTVWBd|&A8G4p*7%Mfbt*4eavGs z<)ySVZab^>T3(B0$Ss!dP8o0F#$Dj&0VRWZ?SGL$IYf)4cPC#4#4#yCRq+H0lr2ta zF^)wIh5CP+4d~D~dp2YVd-2g1{!oc+ffW+qzY|rYnhde%?#4+%i&p8VG z2?Wfh`Fd1|N`Q7G;U0tQ7WN|s_aXQ`Ww5;p`~WzHFz`lgWykrd%zEa?+5P! zM_=P4`0eRg;}rNKD8Fo#UjeU2xgQ*|jC0_AaN7S6`1|0HZBSPTG{z-x%J~@lNt8dc z%9p{PL3tefS#YOl5Kh!MF*+ws%E*f_@*=!p5j@1?d>ihY_!W*m)(tcR4X9h_%eI9+ zdoXXDQh&_9sZZ*)hMho8;Awd!^=vTjM?V8P6VQd>0Y3)r6anEBO+by5_ZRA2fXo-c zd0yuMsMq7b0I(K$R_WkarOj^2z6Q9LuPX7~@j&!0#1n*Wc!?Q{$Z2Qtkj1lM9}i@$ zMA?wPl5D$v4GpYA`P(6iQRyJyCp9v@J|x#;u1$`mix&D-h(|Np{VnpoCN$(OG1TQX zRf`?cCNLTDyx@sYeNRUsof_#mnT#jW;`~m_rd%%^!b|{_9nCt+j<)^t+E2FV%jNz2 z=L<47{SpWO%m=^(^IZez1h}u^{)ijF%rpKo1Ibvw@ad_TuP;8J>Anq|A25bcE|;EG zfW&~rI`zGnb?k>c-TpRAWn_^afGn=#%Ko~Q17zC27VVvIfXr_|^atKcJ8{oNzo5N% z=t7_3evCPS`o>S2a<9PeKQ`r#20Y05Ik%Q0wKt$WUFb*Gu-s$0?)g~9SI=vrjrl(S zoUf%~G*Bkqb#dNC0GHi^f+_TEwcHem`|^vgEZ*DR_v3k5hFE0;Gr=GQcyThWh6 zd~e0gvnL17aW--Up4Fo;bsldGokKK<12)Me2X9`h)(!JZ-bTlZH%HoN|G&Q~*ni-Q zACHYizMJ{A`sPnu6MVR;J!JLppE(QHBkJ*U zfb<$b|5f<~E@kXfdB#@EFZh3YoadELQ~>;%bUe%tTweh?fm+}+7KzODUpeDyocA(E y;4_#fQ1@n>G4;+|fw4yA2+R$bBkTs4Q_xPdqfMKqfy&JjZA-Q_U~3@9HSjMtq_)2R literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.MessageQueue/TestConsole/obj/Debug/TestConsole.exe b/SAF_VS2003/SAF/Test.SAF.MessageQueue/TestConsole/obj/Debug/TestConsole.exe new file mode 100644 index 0000000000000000000000000000000000000000..03251eef9e2d28095e4be3c12355b5d4fb850b3b GIT binary patch literal 16384 zcmeHNU2Ggz6+SawuYZy(vC}pQNy{X5krU8jC!r-Jgk5_R$E`Pxy^d2_qhxmXW7+val zX~&DkuEvIayrZQH^&8zr^4ZVYP*T)VKO&T3^ z<>yZ%8%KMMV#YcnO0*FzR@i!US6xnU9bln=p5x}!C}{~5?uUeNp&1paH_8>Y*t|1D zG{sVa=;3Z@YK2oo>(R2fgJ^rJ=GHZfsM%dN>PMP-!~?Y$pg!9JfKFnp$BmjKi|AC` z^SvBu5?cZS+gQj=DS_zYo+`R9Cv8Xj4^-ngPv#W-;|8`fd+xl`r>0?)J8_xCvsHdk15;d#6K? z9d)Ib#DRz4q}P0mN8#QLka~yUZrHKCIA{Mu_rQQ#Y2}><^Ik=M22P&=Lo=CF=IzVo z&Ve8N`oZVsuiyCnJ-_(fI_Ogm%x98^PiEYzms4YSks{T(%%0)ly)4epDnE!rh^LkB z+XXdURaGUeV{X}Zi)!A@o|#XnY_-tb8n5KDa8IL|2S*J#^Wl4h^CR(*_`bb+_OOyV zsR*nf*nzJQy^8W3mNS9plnXvvywXYX`eopFh90iJz8M%lK9PcM0riV02S$so91Jq1 zhcSMqN&E_g-Zu8~1VkI*9Lrq9`x|*T1;*sP243cf9%e|r^+=<%n+8yOgeEXupQH=G z=LN3_zAX5rV7I~A0l|ZUCj={k-xU0=;LFC(@CNFS275Nm31FAtHo^M^zae-97^SP` zfJDXdbCg_eq!IcIc;nhJi`$>3l*GMn2iKmZENo25OYQ4h&SB)?82^s$2K@>HHR(6z zRys%9Fyk0^0WJ7tdB0#%a6)ie@C$;rpd)xrum-%Bz6#t7p4h|Fz+vi>mOk2L-Us

2L?*m4n<9Vdfu z`AbQ(YBeEkfCFhaUoEPG#1~2Za)_%%MI}GydPOHonVKJ{5=~{#s9Zo}McemBnyo2q zJ7s$BENQRh{o8qWo;SN9p8QKyS=>bPY}`o1b8r z#bKw|Mv+oQyOwbZ<+Xk0l;^|wTE$qk7*xGB&SpJ3uS&LewoM+||nR)(in8y7@Nlp^=1dx5g+vlwTEsz7* zs^f~LsmCbM=Vs6&hwRXKU>^3T$s?Cakj}06ws41FZ|tRv?9l_z6a8e*rE7nxeR1;A zPw)EWfcv*T>i*%E=I6HVd+kZAjmF)vD49loPprctBVrjwjKS=*Ov5xI2KslR-k&z3 zF*CYdx%ZL`=|SR@JsjibfAVjjocH#aoB&Xll@T?D>8(^ z`m+x=9c0;JX>DpeBZZoiW3G2-QORN;Yll+te39>s_z%jxWFpc&8%Xa+O`nt}fv z20CQFHH2+k3_;_az!Lu(`4mbNP05t~*&^C`kM`6WJ#Ma#6Mef)JKuko+qARuR~T9n zTNAy}(#Dmr{l@#WcSCJq)A@$EYS2ASG!%A|#$gO@=c<~vB=P@x9!x!TckF{SM;ST^ zJVY~)Ch(=eQPd}Zhr_Q1=*N*a-woq2=q>Yg>~h2M^L0OsJ!``+mk143b7bQQ=`fy{ zig;F41QcZPglWT&@{5}SP9{-)#kkn-ip7J^iLvsU&fL}q&1BA zc6a<>h6x-~%K4@rOoI0QsAvn+*SMy3mp; zkyJ~nL~xMR^jBS9B?A)pxY(S&wwAxiMml=^`b1EPTx(8Ov8Xkt#BHC=mT*v6#&lcy z&*cvI?`l3K&vU-lS;&ofz6`m2TH?vg6FV$`5N~Uqch#qBowe~P3FgMXTpkHe-}q#B zTE?%2j+YT-OX5pysioxuR1CRfGy|Fe&46Y=GoTsJ3}^;41Db*V0t5d5 D3^H=B literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.MessageQueue/TestConsole/obj/Debug/TestConsole.exe.incr b/SAF_VS2003/SAF/Test.SAF.MessageQueue/TestConsole/obj/Debug/TestConsole.exe.incr new file mode 100644 index 0000000000000000000000000000000000000000..fa6cb70a2190d4d77f084295e9b599a6e0903037 GIT binary patch literal 1616 zcmd5+O>5Oa6g{a=i?(am11^Np25kk=3eqNRc~}*#pAeCJOrEhXi6m3Cu5=@={Rt}g z3tV(1__|l98^uL`fE)1-c<%J2_K7Yn?}nSXbLZyHnR{-gUBs2nbz#D;nqSMhiSk1e zscT9O@{vhk>N=;2Eb1$n^%9*N7S?O9O5@<@Li!h=$4Qrz+9Z8bfJ%aY@r@c`C zhp8eXRGE)aeJo%e*Rh0IT*Fn&!K3GIa6&`SQVOAfBUZzmWJuZ>W1Q*-9PFUr2Sn_RBWAkC<+;;>!bwgre>C ztBI}mo6b0Gk&v2LzE;=)i@3`gmsleQF{|v+PB=>CcUEuEn#Kt}GrQh^9BRvp+mCa( zw|Hvi@6fu!jN0n&Sjk;5q9lj1L&W|lIQpDLjP2~^|97^%^=`>=((^ywee5}R`Yn5g zuK(8qInl?&U-1MPF*j&F-~MT9+*;bUWAo2&w9Oe1l|K|UFNym8A2n~d9OTC(E03x6 zPb2;f8e$*k>m^6&EnD=-&Zmv%y(WzJ%CMYu&i13+91;0i=j~MR7AnbF%oPy literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.MessageQueue/TestConsole/obj/Debug/TestConsole.pdb b/SAF_VS2003/SAF/Test.SAF.MessageQueue/TestConsole/obj/Debug/TestConsole.pdb new file mode 100644 index 0000000000000000000000000000000000000000..6f64eb61dfe7cf319b249daf0d13e191e0459ff9 GIT binary patch literal 13824 zcmeHNT}&KR6ut`!U7%FAwv^HYm$oVb?k*H@#UHc_E!1vWy49%J1h>ne8(>#mq+xSU`awAW!ExC$%pZr!)H-~3!jqa(mLcE1I%axpiDuy59p+myE&m^stk_U*PQ z_r_;PjCJ9gZpBeSuVT$!K?1RDfiVnA!b}%S65O*=1i(Zr#(O+Pz>w_ zN`O+J2q*)#1LeRD;67j{;0EZ1+W?#HjRrQu{`7^Fe87d*assvw+#CC@^_1n}Kkb(p z|5>J-rF<>fcKiQF12?RpD!z2&?Qn?afcMZqKj8eX091@;{AP?_X@0BN&REYiz^2^L zz`kGn4g*7(yft(9!;ijkaE)FMInbH0LUG>9Yx)Oe|Kl1mSdIbY?9{ss)>e_V&^Ro32P0f6cF2G!$w4V9@4*D;R74${A6Wi=q0VQlA zsrmmspRtko-`*MtKYyeroE%QYv|zGVlf{?9O@99&UPewcn&844GNVbij3%rNTG1pp zA5D5?0P4}Duo#6Q4E3DVrLgseCbf-J(TQ$Fmr_Kx-SR{wctsu4Gw~KR1)4CK{6&?V z*0L!SjVDlBAqw5RFOAA^t1sJ2#X)y?L{Dpj?1SqiMrYR@sL!yys1hFeY{U`C*=JB6 z93rnk8|5O$Txc5_l=bM(xU*1?ay9yMT#IB4=~^nTVWBd|&A8G4p*7%Mfbt*4eavGs z<)ySVZab^>T3(B0$Ss!dP8o0F#$Dj&0VRWZ?SGL$IYf)4cPC#4#4#yCRq+H0lr2ta zF^)wIh5CP+4d~D~dp2YVd-2g1{!oc+ffW+qzY|rYnhde%?#4+%i&p8VG z2?Wfh`Fd1|N`Q7G;U0tQ7WN|s_aXQ`Ww5;p`~WzHFz`lgWykrd%zEa?+5P! zM_=P4`0eRg;}rNKD8Fo#UjeU2xgQ*|jC0_AaN7S6`1|0HZBSPTG{z-x%J~@lNt8dc z%9p{PL3tefS#YOl5Kh!MF*+ws%E*f_@*=!p5j@1?d>ihY_!W*m)(tcR4X9h_%eI9+ zdoXXDQh&_9sZZ*)hMho8;Awd!^=vTjM?V8P6VQd>0Y3)r6anEBO+by5_ZRA2fXo-c zd0yuMsMq7b0I(K$R_WkarOj^2z6Q9LuPX7~@j&!0#1n*Wc!?Q{$Z2Qtkj1lM9}i@$ zMA?wPl5D$v4GpYA`P(6iQRyJyCp9v@J|x#;u1$`mix&D-h(|Np{VnpoCN$(OG1TQX zRf`?cCNLTDyx@sYeNRUsof_#mnT#jW;`~m_rd%%^!b|{_9nCt+j<)^t+E2FV%jNz2 z=L<47{SpWO%m=^(^IZez1h}u^{)ijF%rpKo1Ibvw@ad_TuP;8J>Anq|A25bcE|;EG zfW&~rI`zGnb?k>c-TpRAWn_^afGn=#%Ko~Q17zC27VVvIfXr_|^atKcJ8{oNzo5N% z=t7_3evCPS`o>S2a<9PeKQ`r#20Y05Ik%Q0wKt$WUFb*Gu-s$0?)g~9SI=vrjrl(S zoUf%~G*Bkqb#dNC0GHi^f+_TEwcHem`|^vgEZ*DR_v3k5hFE0;Gr=GQcyThWh6 zd~e0gvnL17aW--Up4Fo;bsldGokKK<12)Me2X9`h)(!JZ-bTlZH%HoN|G&Q~*ni-Q zACHYizMJ{A`sPnu6MVR;J!JLppE(QHBkJ*U zfb<$b|5f<~E@kXfdB#@EFZh3YoadELQ~>;%bUe%tTweh?fm+}+7KzODUpeDyocA(E y;4_#fQ1@n>G4;+|fw4yA2+R$bBkTs4Q_xPdqfMKqfy&JjZA-Q_U~3@9HSjMtq_)2R literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.MessageQueue/TestConsole/obj/Debug/TestConsole.projdata b/SAF_VS2003/SAF/Test.SAF.MessageQueue/TestConsole/obj/Debug/TestConsole.projdata new file mode 100644 index 0000000000000000000000000000000000000000..9f9c42e9dc8f4716b93adf28bfcc35295aedbc77 GIT binary patch literal 2312 zcmeH}&r4KM6vw|KN@_H?h_Ik|NDHHJENc;Afh1uIqf#Qs3Z33)HKWseqY|`m6|UOX zAJG5My4Ddb`wRLn>hrzVnQ=5jTD9n2j_1B}&OPVc^J{!}a;U#YtX}C`!3XIl>#ff) zPG~_lw5C-xm4?4L6sb>9xCpnVMdj>^(BErXSCN?0ly2$?cunidRN=PuJOy{S_u)_I z0{c>%x}bSva_p6Nw3Ia)C^>ePIo(BL8lWQ^eax{?gJ+*RUX`()wg3eAAv1I9{{c{SJE)p z9XKT0?9dDmU>G6kpq;pXFG*&2_F6w(>lIgNWuV2?O?oHB5>vU3``x(6ysngu7Bb7jH zuxse9aBhM<I4!`$5MnW>&`Em_Y}PvwjkIYQ=a;;-){&^$$3Gc(c4_SDSbS~?|ON$?}S zZ7FE5Z%t$y@M1(}dF?Dy*D+fSclKZO);t~$XL=|I|JpN zER93mpQlNUBN?+PozXpRRf4q*PTju;(&az$NB78=(BR4$+C!HHG}co%|CqWfYWq<2 zG*7%8cSpM!YQ-`2DQ004pKI)diEcU9n!jW0oh|>W?$4HM*3tEA9kr;45)KwHQ-d&=;`j-7@;@1DbD1Qo@1-RTbzrIrdD@#DBZd{zTMujX#Fkg)?Dp+ i!SA*2&c5e}VK9--f{Q>2@INjC&>G-T;I)PRa{U6;?hnTR literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Transaction/Test.SAF.Transaction.sln b/SAF_VS2003/SAF/Test.SAF.Transaction/Test.SAF.Transaction.sln new file mode 100644 index 0000000..34ac4e4 --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.Transaction/Test.SAF.Transaction.sln @@ -0,0 +1,37 @@ +Microsoft Visual Studio Solution File, Format Version 8.00 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SAF.Configuration", "..\SAF.Configuration\SAF.Configuration.csproj", "{CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SAF.Transaction", "..\SAF.Transaction\SAF.Transaction.csproj", "{5D0B84C7-8189-405B-A275-395A71DBEEBA}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestConsole", "TestConsole\TestConsole.csproj", "{32CE2848-15E4-4BA1-BAF3-A22C86DD646C}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfiguration) = preSolution + Debug = Debug + Release = Release + EndGlobalSection + GlobalSection(ProjectConfiguration) = postSolution + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Debug.ActiveCfg = Debug|.NET + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Debug.Build.0 = Debug|.NET + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Release.ActiveCfg = Release|.NET + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Release.Build.0 = Release|.NET + {5D0B84C7-8189-405B-A275-395A71DBEEBA}.Debug.ActiveCfg = Debug|.NET + {5D0B84C7-8189-405B-A275-395A71DBEEBA}.Debug.Build.0 = Debug|.NET + {5D0B84C7-8189-405B-A275-395A71DBEEBA}.Release.ActiveCfg = Release|.NET + {5D0B84C7-8189-405B-A275-395A71DBEEBA}.Release.Build.0 = Release|.NET + {32CE2848-15E4-4BA1-BAF3-A22C86DD646C}.Debug.ActiveCfg = Debug|.NET + {32CE2848-15E4-4BA1-BAF3-A22C86DD646C}.Debug.Build.0 = Debug|.NET + {32CE2848-15E4-4BA1-BAF3-A22C86DD646C}.Release.ActiveCfg = Release|.NET + {32CE2848-15E4-4BA1-BAF3-A22C86DD646C}.Release.Build.0 = Release|.NET + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + EndGlobalSection + GlobalSection(ExtensibilityAddIns) = postSolution + EndGlobalSection +EndGlobal diff --git a/SAF_VS2003/SAF/Test.SAF.Transaction/Test.SAF.Transaction.sln.old b/SAF_VS2003/SAF/Test.SAF.Transaction/Test.SAF.Transaction.sln.old new file mode 100644 index 0000000..6dd94b6 --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.Transaction/Test.SAF.Transaction.sln.old @@ -0,0 +1,33 @@ +Microsoft Visual Studio Solution File, Format Version 7.00 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SAF.Configuration", "..\SAF.Configuration\SAF.Configuration.csproj", "{CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SAF.Transaction", "..\SAF.Transaction\SAF.Transaction.csproj", "{5D0B84C7-8189-405B-A275-395A71DBEEBA}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestConsole", "TestConsole\TestConsole.csproj", "{32CE2848-15E4-4BA1-BAF3-A22C86DD646C}" +EndProject +Global + GlobalSection(SolutionConfiguration) = preSolution + ConfigName.0 = Debug + ConfigName.1 = Release + EndGlobalSection + GlobalSection(ProjectDependencies) = postSolution + EndGlobalSection + GlobalSection(ProjectConfiguration) = postSolution + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Debug.ActiveCfg = Debug|.NET + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Debug.Build.0 = Debug|.NET + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Release.ActiveCfg = Release|.NET + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Release.Build.0 = Release|.NET + {5D0B84C7-8189-405B-A275-395A71DBEEBA}.Debug.ActiveCfg = Debug|.NET + {5D0B84C7-8189-405B-A275-395A71DBEEBA}.Debug.Build.0 = Debug|.NET + {5D0B84C7-8189-405B-A275-395A71DBEEBA}.Release.ActiveCfg = Release|.NET + {5D0B84C7-8189-405B-A275-395A71DBEEBA}.Release.Build.0 = Release|.NET + {32CE2848-15E4-4BA1-BAF3-A22C86DD646C}.Debug.ActiveCfg = Debug|.NET + {32CE2848-15E4-4BA1-BAF3-A22C86DD646C}.Debug.Build.0 = Debug|.NET + {32CE2848-15E4-4BA1-BAF3-A22C86DD646C}.Release.ActiveCfg = Release|.NET + {32CE2848-15E4-4BA1-BAF3-A22C86DD646C}.Release.Build.0 = Release|.NET + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + EndGlobalSection + GlobalSection(ExtensibilityAddIns) = postSolution + EndGlobalSection +EndGlobal diff --git a/SAF_VS2003/SAF/Test.SAF.Transaction/Test.SAF.Transaction.suo b/SAF_VS2003/SAF/Test.SAF.Transaction/Test.SAF.Transaction.suo new file mode 100644 index 0000000000000000000000000000000000000000..49ff6dde149bb77ae891b1da69a11d345b38cac0 GIT binary patch literal 9728 zcmeI2U2I%O701U;LYk28v<@U~xuk9hrP(@;?Knw4uy^e?G@GPe=R?A%TJK)FH(BpB zyK5&Vsl)?9h^IbPiFiO&-wFu&1oWW=feeQVxE=g7xEI_3?gV#%yFpaI%3kvS1U{ZSFlIvj zD#kM-rbt;b3rMwn=rUWDY+gFk3SJ)k+v~r7`_~^`Z>_&pU4C3Lc?#6C>|gt-J(5g^ zK(#lsfB6OVNt`N$hvNF@DF?v8`1yXy2fzox&w(DO@rNlN0=vP7!AHO^fJeYDf{%h< z0v`j9f(h_(um?N__JYU3KCmCuoG0S)B;_gaH26f^rv9g?e;GUj4ueTB1&)BD;4|Q} z;B(+tK)rJ|E>-`3fxjp3X0si?U{vQZfdR^ghh?qlV0#Hmi>~K42zXgSg}0m=*EiproST^|WGlgZV@DbH|o);)XGl%WUha{=zDXYDg=zCx*`O`>$)UG*Sr$Ls{6@H-KA>F+XY?r>`xmUDlz{YE* z(__sn-PPGD?N3tbtS{rU6YR0}^`O;Y%g8!^Bu?33(%Rt#v?xTQWj`~GciNA&fqX|Jtf#GUt`GBhi?Qw}Z)qGb2R8k(1M^;7Jkq(O+CO>j z&eq?ay|cB0G2K@mqUbc0j+=xkDbvIIb_Ut-{oo^ZB4d8{gT8(5z4fC%YxXp4!q{ci z^(p>JqpbxrB(R#Bwc0s{2aBxWDkGkZ-#u+(q?=gDD5uX5(OIMaNn@)s=)LX%mzlAM z9fan(wN@rt29L3reY7ezY}fy2{CGT*{A~rAB`C@Is+Q`w_tEu=^;0?ve8$zD2&eFW z@~5lu|2nU91_@HEF30}O#532f`2u}q_Q0LI%}#;B+Yf6^9e?!=o{g0nCF+w zEe`nvEV`ww6nMApkAj+66gfntZ>?ifqOEdUmOu@fUj(9XN)CGxBVMrXdJ5_hC%53? zrgie#oj(4C*qx*7%!sXPmqst*PnB!PS}En1&WyWM|m*;W$pA6ch z(?@p@d8NB?p!|oky>|8gAWLxZxAHF;{7))g`7F9B>I~BBwIUeeF zr}^?Mk1o$QKBzbx>ovF&Hy?w$ln0^A?+AIFM4@CZf&TKXKBw% z5INRsV-~h%$>wB8GCg$+#io~{MMikiP9oDAhRh(CVzORqnDPJvOqxLNuCrEoJMFvT zmh<-ZRU5S^GgTk8te5H-d#rnjOvtwmAd2!6c(7qwqdV|0V-(s|iVRxk({hu3dhmtBra7Z(+3_!2L0B>%E9V@Ic62KWH z5=g;i!P>V$#VtejZW5Sz-cRB=rfJje%Oh9kJiUUnwf^Rj_9lg><8+sCL{UKM5-G-f z&!e+-C?fCBp58Tv8j9D7O}WzjJ_;K1A3MUCBZ)I~it6d2bB0SJT#K{GwmV7F3VFA06`08Rd9= zz7ER9o#uFU6-BEvwKq)3b0c)deFzdSjZnAZ4{81St|}R?cl|DQIAgtjNZcY#X&<_{ zf9UR^{|iys&YMp%NZ-o^)l)M1{-pe$a*i2pV7k^SJJkx-^8H1*ROJ9S3bbwq8#U)@ N=5e%DuI4?B{V(W*Bd-7e literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Transaction/TestConsole/App.ico b/SAF_VS2003/SAF/Test.SAF.Transaction/TestConsole/App.ico new file mode 100644 index 0000000000000000000000000000000000000000..3a5525fd794f7a7c5c8e6187f470ea3af38cd2b6 GIT binary patch literal 1078 zcmeHHJr05}7=1t!Hp3A*8IHkVf+j?-!eHY14Gtcw1Eb*_9>Bq^zETJ@GKj{_2j4$w zo9}xCh!8{T3=X##Skq>ikMjsvB|y%crWBM2iW(4pI}c%z6%lW!=~4v77#3{z!dmB1 z__&l)-{KUYR+|8|;wB^R|9ET$J@(@=#rd^=)qs85?vAy(PSF5CyNkus435LVkZ$rj zNw|JG-P7^hF<(;#o*Vk}5R#e|^13tBbQkeF?djULtvqyxd3<{9 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Transaction/TestConsole/AssemblyInfo.cs b/SAF_VS2003/SAF/Test.SAF.Transaction/TestConsole/AssemblyInfo.cs new file mode 100644 index 0000000..9f89a32 --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.Transaction/TestConsole/AssemblyInfo.cs @@ -0,0 +1,58 @@ +using System.Reflection; +using System.Runtime.CompilerServices; + +// +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +// +[assembly: AssemblyTitle("")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("")] +[assembly: AssemblyCopyright("")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: + +[assembly: AssemblyVersion("1.0.*")] + +// +// In order to sign your assembly you must specify a key to use. Refer to the +// Microsoft .NET Framework documentation for more information on assembly signing. +// +// Use the attributes below to control which key is used for signing. +// +// Notes: +// (*) If no key is specified, the assembly is not signed. +// (*) KeyName refers to a key that has been installed in the Crypto Service +// Provider (CSP) on your machine. KeyFile refers to a file which contains +// a key. +// (*) If the KeyFile and the KeyName values are both specified, the +// following processing occurs: +// (1) If the KeyName can be found in the CSP, that key is used. +// (2) If the KeyName does not exist and the KeyFile does exist, the key +// in the KeyFile is installed into the CSP and used. +// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. +// When specifying the KeyFile, the location of the KeyFile should be +// relative to the project output directory which is +// %Project Directory%\obj\. For example, if your KeyFile is +// located in the project directory, you would specify the AssemblyKeyFile +// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] +// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework +// documentation for more information on this. +// +[assembly: AssemblyDelaySign(false)] +[assembly: AssemblyKeyFile("")] +[assembly: AssemblyKeyName("")] diff --git a/SAF_VS2003/SAF/Test.SAF.Transaction/TestConsole/Class1.cs b/SAF_VS2003/SAF/Test.SAF.Transaction/TestConsole/Class1.cs new file mode 100644 index 0000000..8ac9172 --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.Transaction/TestConsole/Class1.cs @@ -0,0 +1,174 @@ +using System; +using System.Reflection; +using SAF.Transaction; +using System.Data; +using System.Data.SqlClient; + +namespace TestConsole +{ + ///

+ /// Demo that show SAF.Transaction can be used wrap multiple + /// calls into different transactions + /// + class Class1 + { + + [STAThread] + static void Main(string[] args) + { + DataAccess data = new DataAccess(); + //clean up the table + data.ClearupTable(); + + //--------------Sample 1--------------------------------// + ITransactionController transaction_A= TransactionManager.GetRequireTransactionController(); + try + { + transaction_A.ExecuteMethod(data,"AddNewRecord",new object[2]{"xin","111111111"}); + transaction_A.ExecuteMethod(data,"AddNewRecord",new object[2]{"mike","222222222"}); + //this call will fail due to duplicate key error. + transaction_A.ExecuteMethod(data,"AddNewRecord",new object[2]{"john","111111111"}); + TransactionManager.Commit(transaction_A); + } + catch (Exception ex) + { + TransactionManager.Rollback(transaction_A); + //additional error handling code.... + } + finally + { + //release the resource used by the serviced component + TransactionManager.DisposeAll(transaction_A); + } + + //--------------Sample 1 result --------------------------// + //None of three record is inserted to the employee table. // + //--------------------------------------------------------// + + //clean up the table + data.ClearupTable(); + + //--------------Sample 2----------------------------------// + ITransactionController transaction_C= TransactionManager.GetRequireNewTransactionController(); + ITransactionController transaction_B= TransactionManager.GetRequireTransactionController(); + + try + { + transaction_B.ExecuteMethod(data,"AddNewRecord","xin","111111111"); + transaction_B.ExecuteMethod(data,"AddNewRecord","mike ","222222222"); + try + { + //add an important employee. Add him regardless whether other + //employees are added to table successfully + transaction_C.ExecuteMethod(data,"AddNewRecord","bill","333333333"); + TransactionManager.Commit(transaction_C); + } + catch (Exception ex) + { + TransactionManager.Rollback(transaction_C); + } + //this call will fail due to duplicate key error. + transaction_B.ExecuteMethod(data,"AddNewRecord",new object[2]{"john","111111111"}); + TransactionManager.Commit(transaction_B); + } + catch (Exception ex) + { + TransactionManager.Rollback(transaction_B); + //additional error handling code.... + } + finally + { + //release the resource used by the serviced component + TransactionManager.DisposeAll(transaction_B,transaction_C); + } + + //--------------Sample 2 result ---------------------------// + //----------Only bill is added to the employee table.------// + //---------------------------------------------------------// + + + //clean up the table + data.ClearupTable(); + + //--------------Sample 3-----------------------------------// + ITransactionController transaction_D= TransactionManager.GetNoTransactionController(); + ITransactionController transaction_E= TransactionManager.GetSupportTransactionController(); + ITransactionController transaction_F= TransactionManager.GetRequireTransactionController(); + try + { + data.AddNewRecord("xin","111111111"); + transaction_D.ExecuteMethod(data,"AddNewRecord","mike","222222222"); + transaction_E.ExecuteMethod(data,"AddNewRecord","bill","333333333"); + //this call will fail due to duplicate key error. + transaction_F.ExecuteMethod(data,"AddNewRecord","john","111111111"); + TransactionManager.Commit(transaction_D,transaction_E,transaction_F); + } + catch (Exception ex) + { + TransactionManager.Rollback(transaction_D,transaction_E,transaction_F); + //additional error handling code.... + } + finally + { + //release the resource used by the serviced component + TransactionManager.DisposeAll(transaction_D,transaction_E,transaction_F); + } + + //--------------Sample 3 result --------------------------------------------// + //only xin, mike, bill are added to the employee table. John is not added.--// + //--------------------------------------------------------------------------// + + } + + } + /// + /// DataAccess provides access to testing db. + /// + public class DataAccess + { + private string connection; + public DataAccess() + { + connection ="Initial Catalog=SAFDemo;Data Source=localhost;Integrated Security=SSPI"; + } + /// + /// Insert a record to the table + /// + /// + /// + public void AddNewRecord(string name,string ssn) + { + + SqlConnection conn = new SqlConnection(connection); + try + { + conn.Open(); + SqlCommand command = new SqlCommand("insert into employees values('" + name + "','" + ssn + "')",conn); + command.ExecuteNonQuery(); + } + finally + { + conn.Close(); + } + + } + + /// + /// Clearn up the table for the next test + /// + public void ClearupTable() + { + SqlConnection conn = new SqlConnection(connection); + try + { + conn.Open(); + SqlCommand command = new SqlCommand("delete from employees",conn); + command.ExecuteNonQuery(); + } + finally + { + conn.Close(); + } + } + } +} diff --git a/SAF_VS2003/SAF/Test.SAF.Transaction/TestConsole/TestConsole.csproj b/SAF_VS2003/SAF/Test.SAF.Transaction/TestConsole/TestConsole.csproj new file mode 100644 index 0000000..2fc4e89 --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.Transaction/TestConsole/TestConsole.csproj @@ -0,0 +1,114 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SAF_VS2003/SAF/Test.SAF.Transaction/TestConsole/TestConsole.csproj.user b/SAF_VS2003/SAF/Test.SAF.Transaction/TestConsole/TestConsole.csproj.user new file mode 100644 index 0000000..686cccb --- /dev/null +++ b/SAF_VS2003/SAF/Test.SAF.Transaction/TestConsole/TestConsole.csproj.user @@ -0,0 +1,48 @@ + + + + + + + + + + + + diff --git a/SAF_VS2003/SAF/Test.SAF.Transaction/TestConsole/bin/Debug/SAF.Transaction.dll b/SAF_VS2003/SAF/Test.SAF.Transaction/TestConsole/bin/Debug/SAF.Transaction.dll new file mode 100644 index 0000000000000000000000000000000000000000..4ddfd7297a5c3a1a16d0c65a740e99dd4f4f5450 GIT binary patch literal 20480 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 f222J_222J_222J_222J_222J_222M2FB$kZuwIcA literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Transaction/TestConsole/bin/Debug/SAF.Transaction.pdb b/SAF_VS2003/SAF/Test.SAF.Transaction/TestConsole/bin/Debug/SAF.Transaction.pdb new file mode 100644 index 0000000000000000000000000000000000000000..ef513569a150e975df9f2a4d69329b76e9546244 GIT binary patch literal 19968 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 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Transaction/TestConsole/bin/Debug/TestConsole.pdb b/SAF_VS2003/SAF/Test.SAF.Transaction/TestConsole/bin/Debug/TestConsole.pdb new file mode 100644 index 0000000000000000000000000000000000000000..5e6bcbf54b3ddfe08ef40eb17866535984b7ee78 GIT binary patch literal 17920 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 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Transaction/TestConsole/obj/Debug/TestConsole.exe.incr b/SAF_VS2003/SAF/Test.SAF.Transaction/TestConsole/obj/Debug/TestConsole.exe.incr new file mode 100644 index 0000000000000000000000000000000000000000..e728ed5ea1b80d6254e9f30c83d491403433c7c7 GIT binary patch literal 1790 zcmd5+yKdA#6g>{%O^2XmBs!$5AVES9BuMNHTEauHyabDoy&f+HKUTIAUJW1$DnuPo zkw|<2H4>YO1|ft5hyr>VI!ex+U58x+C956ldS>oi-#K&78P}3#remEHZlq=x!pK*S zTevDnGiC2qb{e(#B|;Xj^Fxs+h%j9K$ru;Vfog)AP5sq37h+W0GN@?b+7)@}gtSuj_gbuxsKF z8n}oWPH~sh9Mw5LiI6K9QslG%1u9&xa__lkEJ@Fdu5v*BBo2M_=y2T zhN5rVA4-*unvwy>hlr?(#Bi6PO^!n{smZA3c+qG>)6-wUabkP6p+^*$(Cac&K|CpE zzau5Htfo|)kelg_iwFb|5vX5ldYGd1V?_neA}_Enh9`_uK%aknAn>{pAmmZ z#3h=KyPmH|ec$|CGJSc!*_(@Wg{YhnsCP=tH~y%1$>Jb46*6+0))P3|tgno}Qch3V z%PlZ}w3d40J?NBSI5Q$Aogq_lGh&`N;{UEjodsmBLjH1M?4HKlhovW%?~SioC1>*^ aasr#UU2_WgdkgBa$ijgr%c6rknEn@`C^jqr literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.SAF.Transaction/TestConsole/obj/Debug/TestConsole.pdb b/SAF_VS2003/SAF/Test.SAF.Transaction/TestConsole/obj/Debug/TestConsole.pdb new file mode 100644 index 0000000000000000000000000000000000000000..5e6bcbf54b3ddfe08ef40eb17866535984b7ee78 GIT binary patch literal 17920 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 D&Ux6- literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.Server.SAF.Cryptography/Test.Server.SAF.Cryptography.sln b/SAF_VS2003/SAF/Test.Server.SAF.Cryptography/Test.Server.SAF.Cryptography.sln new file mode 100644 index 0000000..2d55d3f --- /dev/null +++ b/SAF_VS2003/SAF/Test.Server.SAF.Cryptography/Test.Server.SAF.Cryptography.sln @@ -0,0 +1,45 @@ +Microsoft Visual Studio Solution File, Format Version 8.00 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Test.BusinessLibrary", "..\Test.BusinessLibrary\Test.BusinessLibrary.csproj", "{A9F1D923-9606-4F00-84A5-166710966412}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SAF.Cryptography", "..\SAF.Cryptography\SAF.Cryptography.csproj", "{CA2E46AF-05AB-4428-91C8-27E1725EA8AB}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SAF.Configuration", "..\SAF.Configuration\SAF.Configuration.csproj", "{CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestConsole", "TestConsole\TestConsole.csproj", "{1F8737A3-2134-46A5-83A0-B5AB74A5FD22}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfiguration) = preSolution + Debug = Debug + Release = Release + EndGlobalSection + GlobalSection(ProjectConfiguration) = postSolution + {A9F1D923-9606-4F00-84A5-166710966412}.Debug.ActiveCfg = Debug|.NET + {A9F1D923-9606-4F00-84A5-166710966412}.Debug.Build.0 = Debug|.NET + {A9F1D923-9606-4F00-84A5-166710966412}.Release.ActiveCfg = Release|.NET + {A9F1D923-9606-4F00-84A5-166710966412}.Release.Build.0 = Release|.NET + {CA2E46AF-05AB-4428-91C8-27E1725EA8AB}.Debug.ActiveCfg = Debug|.NET + {CA2E46AF-05AB-4428-91C8-27E1725EA8AB}.Debug.Build.0 = Debug|.NET + {CA2E46AF-05AB-4428-91C8-27E1725EA8AB}.Release.ActiveCfg = Release|.NET + {CA2E46AF-05AB-4428-91C8-27E1725EA8AB}.Release.Build.0 = Release|.NET + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Debug.ActiveCfg = Debug|.NET + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Debug.Build.0 = Debug|.NET + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Release.ActiveCfg = Release|.NET + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Release.Build.0 = Release|.NET + {1F8737A3-2134-46A5-83A0-B5AB74A5FD22}.Debug.ActiveCfg = Debug|.NET + {1F8737A3-2134-46A5-83A0-B5AB74A5FD22}.Debug.Build.0 = Debug|.NET + {1F8737A3-2134-46A5-83A0-B5AB74A5FD22}.Release.ActiveCfg = Release|.NET + {1F8737A3-2134-46A5-83A0-B5AB74A5FD22}.Release.Build.0 = Release|.NET + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + EndGlobalSection + GlobalSection(ExtensibilityAddIns) = postSolution + EndGlobalSection +EndGlobal diff --git a/SAF_VS2003/SAF/Test.Server.SAF.Cryptography/Test.Server.SAF.Cryptography.sln.old b/SAF_VS2003/SAF/Test.Server.SAF.Cryptography/Test.Server.SAF.Cryptography.sln.old new file mode 100644 index 0000000..0398cab --- /dev/null +++ b/SAF_VS2003/SAF/Test.Server.SAF.Cryptography/Test.Server.SAF.Cryptography.sln.old @@ -0,0 +1,39 @@ +Microsoft Visual Studio Solution File, Format Version 7.00 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Test.BusinessLibrary", "..\Test.BusinessLibrary\Test.BusinessLibrary.csproj", "{A9F1D923-9606-4F00-84A5-166710966412}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SAF.Cryptography", "..\SAF.Cryptography\SAF.Cryptography.csproj", "{CA2E46AF-05AB-4428-91C8-27E1725EA8AB}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SAF.Configuration", "..\SAF.Configuration\SAF.Configuration.csproj", "{CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestConsole", "TestConsole\TestConsole.csproj", "{1F8737A3-2134-46A5-83A0-B5AB74A5FD22}" +EndProject +Global + GlobalSection(SolutionConfiguration) = preSolution + ConfigName.0 = Debug + ConfigName.1 = Release + EndGlobalSection + GlobalSection(ProjectDependencies) = postSolution + EndGlobalSection + GlobalSection(ProjectConfiguration) = postSolution + {A9F1D923-9606-4F00-84A5-166710966412}.Debug.ActiveCfg = Debug|.NET + {A9F1D923-9606-4F00-84A5-166710966412}.Debug.Build.0 = Debug|.NET + {A9F1D923-9606-4F00-84A5-166710966412}.Release.ActiveCfg = Release|.NET + {A9F1D923-9606-4F00-84A5-166710966412}.Release.Build.0 = Release|.NET + {CA2E46AF-05AB-4428-91C8-27E1725EA8AB}.Debug.ActiveCfg = Debug|.NET + {CA2E46AF-05AB-4428-91C8-27E1725EA8AB}.Debug.Build.0 = Debug|.NET + {CA2E46AF-05AB-4428-91C8-27E1725EA8AB}.Release.ActiveCfg = Release|.NET + {CA2E46AF-05AB-4428-91C8-27E1725EA8AB}.Release.Build.0 = Release|.NET + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Debug.ActiveCfg = Debug|.NET + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Debug.Build.0 = Debug|.NET + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Release.ActiveCfg = Release|.NET + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Release.Build.0 = Release|.NET + {1F8737A3-2134-46A5-83A0-B5AB74A5FD22}.Debug.ActiveCfg = Debug|.NET + {1F8737A3-2134-46A5-83A0-B5AB74A5FD22}.Debug.Build.0 = Debug|.NET + {1F8737A3-2134-46A5-83A0-B5AB74A5FD22}.Release.ActiveCfg = Release|.NET + {1F8737A3-2134-46A5-83A0-B5AB74A5FD22}.Release.Build.0 = Release|.NET + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + EndGlobalSection + GlobalSection(ExtensibilityAddIns) = postSolution + EndGlobalSection +EndGlobal diff --git a/SAF_VS2003/SAF/Test.Server.SAF.Cryptography/Test.Server.SAF.Cryptography.suo b/SAF_VS2003/SAF/Test.Server.SAF.Cryptography/Test.Server.SAF.Cryptography.suo new file mode 100644 index 0000000000000000000000000000000000000000..d36a4700f174d29e890a9826ef6fb40579b8eeea GIT binary patch literal 55808 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 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.Server.SAF.Cryptography/TestConsole/App.ico b/SAF_VS2003/SAF/Test.Server.SAF.Cryptography/TestConsole/App.ico new file mode 100644 index 0000000000000000000000000000000000000000..3a5525fd794f7a7c5c8e6187f470ea3af38cd2b6 GIT binary patch literal 1078 zcmeHHJr05}7=1t!Hp3A*8IHkVf+j?-!eHY14Gtcw1Eb*_9>Bq^zETJ@GKj{_2j4$w zo9}xCh!8{T3=X##Skq>ikMjsvB|y%crWBM2iW(4pI}c%z6%lW!=~4v77#3{z!dmB1 z__&l)-{KUYR+|8|;wB^R|9ET$J@(@=#rd^=)qs85?vAy(PSF5CyNkus435LVkZ$rj zNw|JG-P7^hF<(;#o*Vk}5R#e|^13tBbQkeF?djULtvqyxd3<{9 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.Server.SAF.Cryptography/TestConsole/AssemblyInfo.cs b/SAF_VS2003/SAF/Test.Server.SAF.Cryptography/TestConsole/AssemblyInfo.cs new file mode 100644 index 0000000..9f89a32 --- /dev/null +++ b/SAF_VS2003/SAF/Test.Server.SAF.Cryptography/TestConsole/AssemblyInfo.cs @@ -0,0 +1,58 @@ +using System.Reflection; +using System.Runtime.CompilerServices; + +// +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +// +[assembly: AssemblyTitle("")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("")] +[assembly: AssemblyCopyright("")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: + +[assembly: AssemblyVersion("1.0.*")] + +// +// In order to sign your assembly you must specify a key to use. Refer to the +// Microsoft .NET Framework documentation for more information on assembly signing. +// +// Use the attributes below to control which key is used for signing. +// +// Notes: +// (*) If no key is specified, the assembly is not signed. +// (*) KeyName refers to a key that has been installed in the Crypto Service +// Provider (CSP) on your machine. KeyFile refers to a file which contains +// a key. +// (*) If the KeyFile and the KeyName values are both specified, the +// following processing occurs: +// (1) If the KeyName can be found in the CSP, that key is used. +// (2) If the KeyName does not exist and the KeyFile does exist, the key +// in the KeyFile is installed into the CSP and used. +// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. +// When specifying the KeyFile, the location of the KeyFile should be +// relative to the project output directory which is +// %Project Directory%\obj\. For example, if your KeyFile is +// located in the project directory, you would specify the AssemblyKeyFile +// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] +// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework +// documentation for more information on this. +// +[assembly: AssemblyDelaySign(false)] +[assembly: AssemblyKeyFile("")] +[assembly: AssemblyKeyName("")] diff --git a/SAF_VS2003/SAF/Test.Server.SAF.Cryptography/TestConsole/Class1.cs b/SAF_VS2003/SAF/Test.Server.SAF.Cryptography/TestConsole/Class1.cs new file mode 100644 index 0000000..fd6929f --- /dev/null +++ b/SAF_VS2003/SAF/Test.Server.SAF.Cryptography/TestConsole/Class1.cs @@ -0,0 +1,28 @@ +using System; +using System.Runtime.Remoting; + +namespace Test.Server.SAF.Cryptography +{ + /// + /// Summary description for Class1. + /// + class Class1 + { + /// + /// The demo application set up the server side remoting service for secure communication. + /// You need to start this console app first before you start Test.Client.SAF.Cryptography project + /// in order to get the secure remoting to work. + /// Please refer to SAF.Cryptography section in app.config file for more information on how + /// to configure the cryptography of the remoting server sink. + /// + [STAThread] + static void Main(string[] args) + { + //load the configuration data which will set up the server remoting sink for + //secure communication. + RemotingConfiguration.Configure(@"TestConsole.exe.config"); + Console.WriteLine("press enter to exit"); + Console.ReadLine(); + } + } +} diff --git a/SAF_VS2003/SAF/Test.Server.SAF.Cryptography/TestConsole/TestConsole.csproj b/SAF_VS2003/SAF/Test.Server.SAF.Cryptography/TestConsole/TestConsole.csproj new file mode 100644 index 0000000..2aa0b4e --- /dev/null +++ b/SAF_VS2003/SAF/Test.Server.SAF.Cryptography/TestConsole/TestConsole.csproj @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SAF_VS2003/SAF/Test.Server.SAF.Cryptography/TestConsole/TestConsole.csproj.user b/SAF_VS2003/SAF/Test.Server.SAF.Cryptography/TestConsole/TestConsole.csproj.user new file mode 100644 index 0000000..686cccb --- /dev/null +++ b/SAF_VS2003/SAF/Test.Server.SAF.Cryptography/TestConsole/TestConsole.csproj.user @@ -0,0 +1,48 @@ + + + + + + + + + + + + diff --git a/SAF_VS2003/SAF/Test.Server.SAF.Cryptography/TestConsole/app.config b/SAF_VS2003/SAF/Test.Server.SAF.Cryptography/TestConsole/app.config new file mode 100644 index 0000000..c291780 --- /dev/null +++ b/SAF_VS2003/SAF/Test.Server.SAF.Cryptography/TestConsole/app.config @@ -0,0 +1,59 @@ + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + 6HD+Ngi8JoGmD0g= + gi8JoGmD + + + CN=CompanyA + CN=CompanyB + TripleDES + + + CN=CompanyB + CN=CompanyA + TripleDES + + + + + + + + + + + + + \ No newline at end of file diff --git a/SAF_VS2003/SAF/Test.Server.SAF.Cryptography/TestConsole/bin/Debug/Microsoft.Web.Services.dll b/SAF_VS2003/SAF/Test.Server.SAF.Cryptography/TestConsole/bin/Debug/Microsoft.Web.Services.dll new file mode 100644 index 0000000000000000000000000000000000000000..b56cdea1a2c2f4a0903c4e068d88d5a3c660fbdc GIT binary patch literal 311296 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 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.Server.SAF.Cryptography/TestConsole/bin/Debug/SAF.Configuration.dll b/SAF_VS2003/SAF/Test.Server.SAF.Cryptography/TestConsole/bin/Debug/SAF.Configuration.dll new file mode 100644 index 0000000000000000000000000000000000000000..038afda542d290d081c167f577897c4c480c3684 GIT binary patch literal 24576 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 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.Server.SAF.Cryptography/TestConsole/bin/Debug/SAF.Configuration.pdb b/SAF_VS2003/SAF/Test.Server.SAF.Cryptography/TestConsole/bin/Debug/SAF.Configuration.pdb new file mode 100644 index 0000000000000000000000000000000000000000..ff2b21f6a1a421faca45c9a229c8053afec3acb4 GIT binary patch literal 56832 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 WT|m<5LNxspdf-AV_;i^a2mU|IoXXVz literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.Server.SAF.Cryptography/TestConsole/bin/Debug/SAF.Cryptography.dll b/SAF_VS2003/SAF/Test.Server.SAF.Cryptography/TestConsole/bin/Debug/SAF.Cryptography.dll new file mode 100644 index 0000000000000000000000000000000000000000..5f88a5cb3383eb2a7b4c6d1296144f14a0293f9e GIT binary patch literal 24576 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 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.Server.SAF.Cryptography/TestConsole/bin/Debug/SAF.Cryptography.pdb b/SAF_VS2003/SAF/Test.Server.SAF.Cryptography/TestConsole/bin/Debug/SAF.Cryptography.pdb new file mode 100644 index 0000000000000000000000000000000000000000..b8373357fe4cfc37e7c01e0e646b891ff229ec2a GIT binary patch literal 69120 zcmeI53zSvWndeVYmn%Nd0ufQs6i_H27R4Li1r!L14=e;UWuU0KMU@s+Wz|KYqw#7? zT03+%Nl2DS%nYt}t&r|y#$L;;FO zJ@?ePw;mJ`;cocXch275ew=Ub{q1i*&biliwDflOb+=`!m(N*#;f2-LHmd` z`Ll7mueA3kfA!P1jBERcao?R41c%0~{%$d0q{alnF51hER1i#n?j9Wkvth2oe>k0O z25~ooN{|LOgImByK@+$Yd<>ip&IFTy6dBnCr-0MISa2#h3!Dwk0h7VG;5_gVPz|Pl zsbCtY0n@?x-~ym>%mh4sa3Rn$T?A^u98d@5f_Y#*SO6A+MPM;d-?|uF0xkuYfy==a z;7U*rmV#wqIcNYYz)ElxSOr#ttHCv34Y(Fu2d)PaS7#uX{a3oF3gzRxaIOBrsC_eZ!FsHA#Wlmd1XQppX>m??ozV7YAOSmu7duOJ1v$l5)XaB02ayOHYu(%E|`;@v!Uibv?-v8#EceO&LQ$aT=6 z&IwkLW-G`5jRlgZq}2qZ*JS^10-HfI(0HJ6L1Ti~`Nif0e!P&hRSVLU$NKyrIzDJj z)f{1@>Ys)fd;-YnTJ7PSf32%{cg&+*s>g5PDL;j&KE0dCMV#0BiAH%<=W$-|CmQ8_ zCV|)ciAH%po51V+M5DaFPvG@_qETLMk9t?G{~+*n9c{1P?{MqCM~Vw~za{2xHEK+H zX_W3(beX}VG25GI-X`5uIc_7Jq?34xR-B7Bb3*-($yOIG&*U-JDf6hWjgyvqU5t&o9XLo z-im1g-$Xt0(v`K#ySv&twr=lj&N5UNmLVP#mFc?7j;u|?$eUz3J2NdxgHnWPM~owt zEp79pPSXa9f?4C_@9Te$Zk(%j^>0jt67{b*lBf8N_WGAzFQxw#Ue^Bz;V5$>)&JGc z)lNqPS+`NUirb>jkM&XA>;1~(e^IfGSinftzs9m7rK65D{m*Q1P~*SX|3^}`BUS&A z@%@O6t+Rsaandj78Z)*^<1BBisk3grzo=8^mZ^FYVTxs}XLfdpv_JgX& zNzPIKzK*S3&Drg}vgxN1E>kX_H@3bt-7>AtcvBj7tj_1z)7!0;k?WebW%}6$yYw)) z2Q4vw&!ugAg)5aMXs`37F^{Z|*M|EPbo{-gdMMEy^3^>1v$ zLDc`@+J+-l{{t=(wwRT{ffg1E*Z)e#xvMYJy*=BrJxd46+J(K65t7#ei$#eq^DV!m zi8+N(yF6n1H`$vFjVrDr%z*%7J#6^9-Xn z1&z3{;U8|<3N^&xmaVXZ4YO=sY-#{`O*G7+^}401!Y!Jimn`0rhhChx%GY|ukIg{L zMS^wwm)uPl+a=DyO)e%<^TuGf>sV<1I( z_Y=5__}b%EGO~B^*3M99?{;wS*P}#h-I~;8nylldfsq>jB@2~V&Oe{MEB)6$W0cFU zr|X&ZtX^(l|EXvDm z!2GX;rD+zXZ_M;<@65_ib4it>)Lc?LRDqs9tU9Z^SGThD-jUsz@7q_nemz?eY#e*R zUm~a5sYms*U}@jZu9h2Yi6~AFE82Pv)$^X}uU+uN|GK|I=O~Bbq)JpDO8=K{n_SFw zT%KN!i6bf_>5Mq9`n>!U7UlJI5|zF86OHl?rJkgR<7JS(mY>3+>1sTP^GXlPPhnAB z>FPMIbh!K!7Uk6#5$9FC$WLKWUccuVm4kGycn7l&Dm^ORXFxPvjbrgLXnd2O!lJz4 zKFARESWKK^dn(p{T|3)gt#%uS{_Xa0jCExXqEM7@uSM%YIuAe_=f7O>^&qXyh$Gsc zI>Mf0*MHPDIS1g<;_N|lwz;vhJM6QFqM*;Zb0FdR&-vtmm?Gsl`uqP#jsKEebR8

4f7sh|+5S)SE}=bZHk|pt=5*@M`>``;pg6VO;@1nx{keaC z_PX*xH9TC@USjT;?)76-L|4`!*9SB@z_Z{5@G^KE90Do$#H%$LLF1<&T`y=ZBB<>PlD(j`hrZ8QxD#Kv zJ1jfB!jwgOBf3_3bRbUGD$`nbt#WxDl}+zdiAUwz?5A+<8L)PKMfg1dOa_xS zL}}&J6d4b5YQ(%tm8;}y1(keJp^{mK(s%;cb*zeT9ZdUq`+ywfG;!xbwdXS*dLDE! zbUO56=tWS8(1zipOEc6=a7olsQDXgUwyIv_$Pq7l2 z;wuoTpaonBTEP-97bt9USoRv?Tf3;j=rL}QmL1b|y*5zVSDWV~e>cuog!Tbj14f48 z^|ERt&N%LGg32~n54AE=Stf*etN!eKw!+M9xi#klRVF#=E~oTa`-fH)#IyP~UuLS* zeB(m#Hp4HqE_xEBIui>;^`!i)ey9lbN;DpABByqNp2<}PJ><74c$@n%K>HhVODr+% zXExW!-n`5AAapNKTQ~q-2kJjFKt0f$axm{}9ErUIvQ~LjCAi``_`H7lItaQL`uvy| z*CXoZZvdsQdU_Z<1|A1b1BLH*_%T!v|Nj6lf+L|Ll;>^at@8M>#Lxew>%60_rp2qW z2N9cA@l;nbgMD~;Ea^X%%yV%z;|uXTNc z`L3LirM=WRn3g^>eyrcRX+i^AtVYIbkncX?DctjwW!zuJz7215N?PZ?yyF{JX^j^~ z#>?4A&t}Y!q&ECGvRy|U@q3=KeDm^^K9SsxxA9*#zs8q4c=igcO6fPXkKW*3?kh}R zypu3*7uvDD!stT03+zzriJa_#PG}`oski%OPuejo*$yRdV~2{y?NF<4D?(jO(L(#R z7k+gE(UXkzdX_0?4SrUK=n1S7m5nXO^H4rJC(*pd_J<17HxwS7*W3%Q<|sM-Gu8z6 zK~tQFN%6%ur4hG#XTZ}#W)FZzz!TsAI0)VWlX-vz;0ECJ*c7V*XMW>3v+qWv%w~0{m*%KD;dJ!uN0_ z!1z1(e(jPDYh2X!W;jeghp&;fx4jeAE?+|KcN1T6J%3sD#bxj9a`cx}1FrZy+S`r3 zp5CESTFlRpyT}8GW`9+wN`RDxT*p_o?E2 z%8xtwx*2%f@wQm&DXNIVJv2n0mVImLD6)t44gs6tp9a4VFV{=)dhz{1Gco4YX0GrV zCs%BQqWfu8@Jt4pTgc`WWPb@7--TBkH2)FQPXyJApnMK@?Y!_!SG9)?vwB6>I^uU=e5q(+lKbb#(In z9Ce(-Jk_@N96Tu$towx0izW+zvr+@EdI>7h;JYQM1D@{Ms7zMtj$ z?}z96PYI&4}C+f65Viuj7_`O9s@wh`2Bqz;PfkK<+hm%Xbtv!C{I5c@&4 zgSQvTZN|2l;&x!+HwV2Ph|QH?2hQ_$;9NwE&0TGHszYAvKx3EnnK1S7=-9PI{Tx5l zm40jGW$KFX;C`nM{P$n-HYn>`gnN5L)Z2N{@4vueTs6AoQLkGf>m9F?&k_dQX>j@Q za=Ta=%2jht&Cz5d?|1T(O{}whPl0E_3*cq&IuM_1Izi*NARR5J-wBelp!9~hev$lz zCh}K#RR)z=*DA;P?pkHJ)?KSSnm>z2WxCs4t6bx`);fjeDRyp(*2a*~Cezt)8F z>{etP@-t;;ZNZeCG1!!S9hCB$GV2*`=6)sg7AWU-^}BYt zEL3NB?}KiFej2(NT3A+J&IZc13|tRx3Zi9HS?su9VQc_y%^J!By1-Gdre3x|Q6;8K zW1+fN-F8Efx$##W%O4r)j7aV(XfN~zDEcUu;#cv`G{1kMI-E#ZR8!jZI~nL~^;x0p zl)u`N+LXo_In+zIWXq`;(!OWXW@~~Je$h27wPlsXmbmaN3vw`PFQ-E*kw_({%ikss$xGjckyBYF zkj4y951K$0><0V50dNqE!5*syOTb$$p3a6SZ>1-v_FiMII7>{P49A8>&$V2J-(xNw zXT6M5QB)2&$?Y`gy-DCvt-gTzP+obqfZZ;h|Y7yHFrD{sbDbFKUtFT?TJj$z4m zENK~g={9KmT&vZ^`8}%WI4-+M_Kj$CA57!5)e|55_;XEvuWvuT1azLN zPaj3?-PF_DaVN*gui*>&vd^o>(LeQlKG&YG2{SF34mKAy^=#kL+0kMcbzVaD2)1O% z*SB-qHa>NACuc7(BkgzBs-PD}csO?vo`q0*RAlVHFpcnB2L75yW2+U;mAALGDRqTm zzeVmdJrbDDPHT@5xSN^BfQLI04Zx9~`hA{oWh;GpvIa z20_1sFeInbAJjJKACz@mUTz0&UeEgYk@iDh7;EU$#ekQ{3jfF2d zu9wIEWF2sL!|D?;+jy}vfU{<8BM0J34Q(Oo5-;0X(egAtw>hIC9Dr%QXXQ{6j zvukCWs*gv7t#^wNx6~5z7yX+4358A?yYvm19mEm8=Q$q6E{z{~ zy?gZ7Aey6UT$K%7MT1hEX{?IRqn~v=vKs~29fIZ_g6dLG8bhB`$A3FR<>0+g^3lMe zYvnn`T`OOmpOnAyzRO)J|F3cV7SJ5m&I^*~)TC?X)OLNH8C784$J|UjYa3UDcD4HD zIv__Gaw^j_=(*78Q2I1uSCCVgE`T;b8N+g^;JUzm+vPH-zNxY>%;zZtZEd#-W5*H2 z>;pWm3czXaNb^$d9cfR32||v2U9*RzJqOm}bC*Lwt{%#MMs7KDDfBuhWym!_S3;Zi6fP*ebHKS_9X3!dJNK?I^KivSp9YeH9PQH7;SQ+k@K2zs!;eE%hphjY zI@EqrJ@+~Os}Apnst!L5-2nYlD00z$pV?3RGw5G%{~73`&_9R%H59+x-$HjozYF~w z^oP*TLk~bzCqIUMk^6sw?t#7mrLX6H5B(DKJ?NLADW2ggqKPus_lwR(R<}S^9}Pfl zTr#Tz7XrylvX9GFJk?+_$jfpw`P%WIA{TZ`rSULWc+m~eJFPA$-#{+_^#psVe;XkJ_l*36_|@ z@SD_3yx95QXW?*JnRKIegx0P~tvexe)&&RT8S>f;Cw7dSo^{VIo$DQ5=66@kvovO! zdt2Hg6QyN48@F${jUW0pztyQVzUPU!pGZnWGEuw_@)>1+tG+0bYYWBg81XVpqbrkm z7ZsdE60ho!v=h<|&n>B&o4K?oX@~7`2kU2k?kc-haw5Gjyt^mUr8u&QRW14QvmVPF z+Rr~F^GQU08ix7sH2|fhG}Y(g@$kaWegj|B+fwpJ$C|jxFAH)&PW31#eCT#kq`By~ zmvG8cPV;76EA7ePEg&06&im_H<*CsHjyO5VeLS?1Qxx6?I*6ZbZxyEPiC4n>xh`;| zpHn*LLQjJ-rsd9tYJ5@N)40C?D%+?QdOlQT!Ox6$;=^7s_iLat@o$A*2yKJThPJ!# zJD}o!5IP5c#yUM$&b|{fm3D9wK57pd%QbeN&)-Xp-&me>G-G)h?UfErA&iL!F6Exp zj|cjl8@Vc=wYVxCeg@DtZrZt@bYc*^OW698Y@J5?V7O*Ggx~sztdalG*4c+T#+<_Q zA}!a4iud!wU298`kKc!V);8tP?j}fWC++7Y{`ZLGufD3d`-!sx>UoZbx;d7{f7Rmw z>TomtO!k7e5srs?lpXuW=woCPv>fJowzK)l>)FWigIdp)uGM%uHPp-O?PCSVKGE0} zwb7$%c~au%MB@0hJlXb){RQ#DHAH9IE6>y6p?kWqzFlf9+$ zv(a*eJS<`=jfsTMilm*iKd-qnwn3ObX%y_wPa-@jlQ0kby?y4#n8}RgavIOQo5ADx zu{}PBx=$O8rRarf8cQiFNi;?N3drSo>4o#B40+1JS;T{!i?i@pgMqiQtx6 zV*X+`ryEJYm`x2CBSr;iOs%F+FB3=np67TNQ;$~L$j=RBr|LKERA;hZcLCPl!ZT|M zmklIHCkd)QLGgw@XG~sOS3b{>ugayoUUb*WZw7^vzw%tqwdRtWfwi%d*TqRICk6d? zQ09ffe&{Ud_o0iRKY%tse+aefb6PtrT%S`u^`pEENC~)>(;QOYER>_1W=)m3s995G z9n-9-{x9eyguev69Qq4rJ(M+Vv!?nA^g8YjLYtt!glbXX-=JDwc@6p~^jFYlpudK` z0R7)k(g@yw;uri5`UfawHS6N6o0@g;{|nXH!69f36rS7#P|aOuLf_$jA@u)2S3%#0 zu7y@s1UY@Xf%R6iE}n*N#{uj_Qp}&Qm1N{SZGW2~YzZ0HIUi%%+db`$q_03AH z1>0eKG}b|i-3;rmws1Ogb@6E3SnKavd)GRB4bZzXTCbk~e5l&dBIpL_VrU1H z{LI??CD6a%o;?uLo-Tv_HTPFQzXiP#`V_Pt`Yd!Q^hZ$D%X82b-2YGLa_H+&+KO45 zUk&|t?yrU>*UMnmi#^9&J-8V<5BgDPJ@i)S zVAtcT;qPJ1yxK*Db2U&1JD@YB1gS z>o=xSNk2lJ$;Y)kF78~djoG+$qZQXKK>K{GpX24B&vU%`9l(_Ru$KK!owHVbJR9!f zvC!ztSIzUK!WSYUis+AOA5a1*5C0jvGUSywx50CoZsnpB7O^QrmodR zGss(1eMWR9g%iCA*@`~r=vN)x=IG^)-a}gA`+`dcJ#OxAb?N*!7d{#$@qNn0Tk68E zb^Px-zKdNtzi@P+^MBXH(*m~AS?j{jaOr%(@pU+Qhs*C#m%ic%bwL(YG# zi#Oe+KgETg;le)!v-nSR`99>*xz+Jq>}baE>vzz_|82*&-GyJ|!oTkF`@Tz0W0&|p z>z?OZt{ksAzCSoV`n}lk^ zaeU{xa-2oqAt4p(4lf4^p8{tzeH)PiJ2z1LNVvpeU961WJDJw!y%Pkaq$+}( z*>^RJ`CQDc4Y&KU3DNUu_q$5s9=PCDruO?KHlT;r!(~6z0EQHuzcBA7?|?o4c7sR2 z6X0oZ02~Cr1!H*TEXV=ba1VpWfb2D$19=v_0A2>KgF~Q-N0|&}fO@b7Yy_>K2k3iS z4+4F2YcKc)coOUf&x4l$8#;mB4VwgNKpnUYtOD!6X0RJP0``HY!H#TRzxPm%%E0RD zx|Y0tSDKXx`rZ0F{#LC^*|ACQOI1c+qM~SiOz`6?EN1-D54`#?>*vyI%a5;{DOY*? z$F?~J#{Vkny_oa1fe%-EIKj2YdDv#&KGAy(Cj|MI9en$-{^>_T(fO7inmC>@7oyqH#p2KIb;Wp0P zi}QNramMP=Mf8ddb8(sr?cPxdvL5ASO}%@aB>flXwSG3;I_lip?$WoTLK`{RcDFn( zF7@x@KEU&jip@*>$HjfUSRNObdhv0!FdvWWKaTC=S{@gdI`Z=r{f5J+67who7mnx1&Zlk1`TPt2{yF{_VOf_W>Ku54JkY?u06&9v@6#f2fK~wKt=@+h6D$Y~J~w4GvZ;y|`}q z$_3a`a;5V;J!qm49e_`AR-XF?FXMck`R84*VBv~oiwBkW89_bIdx$*s9USG|^GvCB zR3K~p4&JIvXAhqRm^*i6!=h#Lu`}gLKku35L+dZVr*Awd&){E5v?*u)baZzGD;6$X zRM#+nrJ~4{&gZP)H5BPn@U^>qUMtl{++MTtS=_K<5sekAlJBE^r}lTIj9f?iy29iX zCV%a>c{hoRjo*9dO3~)7@BGuuuP#~j^_Ks5O7_cNs-23Q=d3|;<~7_oUCrD01mT>% z-j+G-nP$GvtoclBkuw`Y5{XDMnn(>s)`eZiGyyJ>cVjIFP2 z7|~I;u_&!ZxSRUAxA(SWTDn^^lJllJ`{vcv%^#}R^J)2ZptkWvFy49icBETf?*r3y zgNui0P1oB2@vs+5guPNC>^Fq%0CMp(wO`9nXXnV}P(-hJ}V z5D$BVFosIw;$d1x)Y)sfc-Z#{^YWxCg${4?JLnHPpLke13Hh?b!}PoD8mr~vVfu}5 zFPC`O?hSbQ-+S~jLp6m?&!DwVU(R?~+5WSliraBVoBdZo9m@GS*0t(Z zd-w0^1{V+0zVuQXR1h|b9xzssNx|EKIx{oI<>CEA$Cw_aUmVq252LYLPasy|Kc%F6 z1dUk&=SqTEkdM}io8r0x#&)eA*v#I!LROU3Iw1jg%V9BO| z>mNb~I^)?+_M<5C1@ONO{vLyI33P)q==2Rhy_dHNzrkPze0wP3-8^=RN9f_Pt9hh- zT<=9Dbx^I#&xWrKe?MrHqRLnE(ygE!NK%_YGeDK;8wUD*LC^*!0G-Lv`qa7LJRk{? zm65n=K@yb|Ws{!{w9d$T8K(Ah_OKdE0g~=CPy?m|)qvzQ1Iz@oz=c51auKKnb3h%K z3+4eWFDw9TGnsE?Xo4>JYH3I3WG@Am0iAKY0%)DF9xMgRz;d9vTme>stAOOO8e9#o z0c*gu;5u+UxB;vMH-bi>R&^6t4>o{};AZeqa0_Sxw}Ov>O+ZyY)H9xTOfH}C%zt-b zXlFdzXrStcs&_fHan+mLNS^Why-m`z@donL8P6tY2mZGKo$=hoz0P=6a!)xzyCLaY zYqb9`+$~uYyqiY93d2X@{SW$Bm>&7L-9l^6pmNkdqv4_b>EHjTj)ceG|DeBzas9hl zal6&O|Dpcp9eqFj3FL)(qq8Qz{~>Sx4X-6aHPcLq;h1{S}Fbwv_&7FR%QO7{;Z_aoYdz-~aSH$GXh)Z3*cU z#unGdiqB;MRb64R$K>sn7{w|uNZbo?N(=C{r5jT&+*W1k5(H*J02QWWkXM6kW!s#thyUK z2=;)z;2S_ZvKs~29fEX^pt=;4MzL-9_{x>$ok~-KqOO(h6nCw(7rAStf0w&f9$(}7 zEui%dYx@uV8=uNcd9EN0IrTk1@1+bmm1!DOYdO=Q^jodNn0J|(>*X4_p9!_=TrEM; zyUcpG!`f%%Z+t$4EZULRhw&Sqc6=>=<8vgw@u~h>Y`uwoZTj6lsP==t4yDfx>l>eb zy$PE;cx()7sdVrsq58(>^H6=`^EIfx@u{V9edANQkFyk^jXsr&{V zu)Homv+sEx_5_cmwc%)ZxNbF4>r(#v->b>XyP2rdUsKQgXK}(#gmkGj2tWRdUp!iW zFTejwC7ob*aLVuhS~-;8|5cAc7SfmKDbts%SHWLw6{EKb!-?SBK=C8tjL^X;MUXT5V8$b#OC;RxlO;qqJjs8OxCbtH`Tbw^@vx_hz5hG>Z;K4=d*7W@ zs@MNI|F8YfGuWb>7`#@aeNlh@zh2joHlzJj*#?6@|9`qU|KCFle`fsgf2-3nf^q%N z$VWa1Jf!pgrG@C4Rowq) zsGWOIJ+{d$B~=D<#5yL)Z?JqRro3nsS!U|66HbMubjvax9Yo6}XglVlZ>HSZ|(;8UP`=1Kan$FTP7cM-|9^|kBI`HG45do%Ys5dCcLFXT4MFGFgkJ-`muOII@Q=NMR+P<* z8s4rbeD7>{%Eud@g=h7PMTwutFIgP_1cfi46^jzz7(kwb zu#Kj~Z6n!>M8#Wwz3XrPFZs!Yu-U{VGyL~|tNPjh`<^_#L_P)f!7%Or@%`-oRVAOT zNS=9n=&<@Y~7(Dy%?5t$>))I{(d&C7A02lD?J zkl7VKRF0RKPE3WW{cHVM!;rSuG_fc+G%lu}le)e+tMkcMIYX|AL7)l0Rrn=g$Elpf zrWCJnu(}4MNO>2N$sLSE6QKUA_au0v7Y1@SkdNj-_W~7Gw%?zCj|1(6-UB`XSfeoe zrDSg&P7fquPy}-lUdFlBC)h^_&vt7MQRl%w0;<6jpy$^3T?3|r^MS^c8DJ)u1=vdn z&v^4lMv$t5NnjJ$44T0fpuN(?Kr*}-Tmm}5HqZsSK@YeC=uA={$btr-@p&a^0j(ed z+Q3%O4m!YX;C8Sb+zIXiJ3%A339JVjz($}d#9Rm+)mZd>(;Q*t_f4&+)c(Aa%m(`2 z$Q;Lv85KIk)3^Tkp0siCFwG;UIqqnf&)W}J>I2>>O#a@!jfX|;+jv;izKw@P?b~=* z)V_^}MeSQ(UX@kllzppr66E4x7ot4I-6K~(f!*pKT=NAnd&CDWh-+mv36Sr?QZd$*}(B{qir9!_Ska&_Ee4^24 zh403WVdfkEr)Ryu!P~-r$^Fyd|2P!0CSz~H7PAc9AFbpnEp*>tWPQn{^B_kZB zl{*LmO-4f#EvWz@lP&;V9|mEbC{3aEWu4Kz+%3N8begZR5Z*WkAXsEum?zYb`u z)SUH3ApNg#a=6ahe=-uv_TN$W{^yBQi%cDjCP&2nn?k||N!{Cj7cyU$)1JaW_TO(Q zUEBtg{r4Eg(rj=L{X3hq>M%%3*?)WCk?DozMeM+!l=5b~^~) z3fe&jxDCku>jc|?w<%==PPkE literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.Server.SAF.Cryptography/TestConsole/bin/Debug/Test.BusinessLibrary.dll b/SAF_VS2003/SAF/Test.Server.SAF.Cryptography/TestConsole/bin/Debug/Test.BusinessLibrary.dll new file mode 100644 index 0000000000000000000000000000000000000000..fb1060e7d18b4f585b1aba206cf004941ab5ebf9 GIT binary patch literal 16384 zcmeHNU5Fc16h1SXZnxVunr%UgE6%!=uC<12ceQGZO*YwW)9#;5y47}Rcaq#@r=4Wt z%)~Z6NM95M!3rYkldnD~f(5G}f`|`-;HwWpAH-J?(FXYwBW7b63p>?K919sO<#>%HD3ownHyY6U`cZ^u`y@XF980qxi^Xqo3$@ zj9Ag=>0NC-E&YUy!_IlLbgpy>9i9ilzA%iA^gGu-&EhkFxCPeIL@zQCH_Hmq7K~l7 zh=y;r-Kr1&fiC+1`iHyv$xvMk(XVU-z$Q7i^F~j^B3eoMfnP>Xa!W&D9}BHZ(#SsP zE7yY~=SnMR?3Y68k~Gm&S68c=0nLDBKr^5j&Gy|Fe&46Y=Gw?rRAkB3(glkh1 zEjL2+`353`2mgj_OT{RQd6=K@0gbUZ(cobJ*loCk2^co}+c3P*A7>+~)WNMoePb{T zjtw!uIOsnO+m;7tU^i_`8N?+ri#fI(#@(WK-WPDr@TRXVG(m8KK*U_ z-PcaN^45DVzk#JG_tq>iz*0{Q_aAst00(lO1|y4 zmc7!s<(w)tt3A!hMx}(%G*vh#x&j!U!Zf6-`i2|&WjX>EkPG) zh;|5$0PmptMIRS@R4^l$7konSDM4G%5qugrOf4EV?*%?+j?t?$Z6<+p<{-U9r_Bj^ zlWOLEu*xeZ!Cn!#P4F(k3Bmn>S;3=%1;JB-Wx?}wlG2o?Sz4snrD*5h_kR}=fPF_J zFY*l&eKb-S56pR$rmG&OULVM0#dWC`ls(^dN>peCp{miG?FXy2JJmX-&MuVBsd7jK zyVh`3=hNIX6nt8TmFs#Z5UfJUa_IT(h)D!;5ytWAlnDY=E4i(ssx@!dR3^m7w$uz& zw_(O{dl+)cwOa+JT3Mb&Koe2+O^qvbo*)o{IO(Fd31 z9)_$}YuNSH`WacTe%7freVaGG-keiG*>@VfjYTKy<{`Q}$(&s}B#<$&Z-QngDx z+={EdvMYEZP^8hUSGL`p9ohxl7*%k+kPfMk??FXI+XJjq^eiFhs_4`dRaJOq-n&3W zZ`P|Gy|Fe&46Y= zGoTsxXBn`f|1-X_@1I>pN7oE!1~dbj0nLDBKr^5j&Gy|Fe&46a$-(%npyYoJr literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.Server.SAF.Cryptography/TestConsole/bin/Debug/Test.BusinessLibrary.pdb b/SAF_VS2003/SAF/Test.Server.SAF.Cryptography/TestConsole/bin/Debug/Test.BusinessLibrary.pdb new file mode 100644 index 0000000000000000000000000000000000000000..0a236bf377d5c690eddd356c8d5ea1d403c95734 GIT binary patch literal 13824 zcmeHNO>7%Q6rObragrKpeuC-(vQTJC8f+(Z(-2jPQnyhnQhu}nB(M~1>@~5vu`90& z$^}^haYE2T4h0El1vdf`;)YbUhrki3^u!ejBra5~ic|?T;rnKHT4Tk?`Eg{DdCBLu zJAXU#=FNL=X7^MfTQ0e!d?l7nqz@d3oifK`hvUg)xGQ?h6rh0o7khBIzD zKmr$T-dWbPeI*bI2e$9v^~jgs?i?_NX~%Z?01J!dWte?0ja<`~mB8)kmq&l>xE48Q ziYqUE5xBT`{P~an`2FX|xl!-F`_uPdkL0gKF7*jlp+Dig^ zeoY!xbgAdtANI`z7Y)wSYREug+6u*4m)Fz}wtXjbv3SBy+vjr|TvK~UfOE8fuI%0Q z%5PUMFB)8{t0B%k{Ws^Fu^nkO^Zy~r*Xzm)NTaSWPwNVV&_bfU{u1~K;670K_%g1m z0M{<#V~$C#iL>xJs*^Q|9aSPwBK5EnQ!_&bi^56WNiBYvnT)+pWZ>&$@-8 z?Yd53x@?u_GFiuR-GO-46(T*7F~`O;lPq@BFE-&9OW!R<4dIMa6G(gtwMbJtNkGm2 zPwdo&&i^r~B~xbUY&mPEOF5fLGxe%Dm`omQMt^cr8K+!XKg;^i&8fFsS-%N2?eN8{ zbdVZO9i&$w(W+_UDjgDi5lUj1;sMp}0gxo!y38`Ixf8bIlwK>9og89Du_MCzDP*cT zEY~G^Bj%i2v1eIEUB@S9%C?m&6yM}CqDWuKfH05snaArs5sNU!0AwHOdD3QY(xZdw zBB{#K!T>9j9aLopSoTS@OOF2gWrfID70Yx=^0`sub1e6sD}-wob2c1f03sm_{BaLN z;`mvffM_H!ZN002&meJsbrYE64T$M%pF~ZjpC+MPl|CASs`5P@&eE#Sf#b}rItGsZ zR)b<(1jQlX9bh-)6%@CSN53xpfPW1p9_LRB$s66qK7ixU)SLtu??pQkH>h7bq3ln9 zb50bRYh~@F^!%?~cAHs~XF1a5O6$3qPu9 z`kZN}lszpHZaJIC7aZG7G#5XzImQ%R`Xc~|KA35$X{NE{3}Up9nLxCJ3yZMc8Lqa-QwL4ef=3A z2J{0JKv54acFUVTuc$Qd?clw$Lv`=vcZwsh^lZ-oX!KvY>hKYgR@wu`O>6dyW2>Vj zkv^O{G&YzTVufeFkKbS$B(?wX?!4asc4lE&z_@#s$#NmYwj_>Mac^&Bh`mT?&ULMK zHz$NTZ}Gdxu6V?bc@&bJ^sZHI%lLeJz*xBT-YDn)uhjf^zg+(N_}BAqeDujTADsUT zX^DwK@$|`Jz9bSwYu0u>cRz!Tyj@2SSf6?oNZD1{1%A89?l}mY+x5be1pEdeb7Edeb7Edeco?InSK09kKt%CJ;YSJ2uj!7H*ExOxmlg6e^?544;fp&KHb~AQ&XPueV zT@_tHMN#Sx_~45u^g+c39|T1Z^B_KHUwlyz6cMSQ6h%=Ktlv4aV`j}7tfD@6PjbI| z&bjCQeRF4a?%mzF|4Hg1q9oGElSFSIXGsYz4^0&JUh-xyy>{CB>)tRX-(NQ~@Azib zbBmr`HuH9+;s$0;nO?18Iu$cBl{L$5L0PL;uNr7IJ-v-+(&(aR-+d?@_4Xq4&8BEj`6Hz(j^}9yd#rQxgW)gJ528!w@^le=C-lX|%h8wG`3b9&xq9L83F@ zdE6wru)Sn?3-R&hdSGvl)vy9p4`3g~G^4phfo6~tGugN!rlYQ?zMsupsz zHGA_`Ll_D7*LMzE!`8^=O`Fg^(F!U7-@{z{?<2Yv1D{0d&jy}TDf%4oAWk9nBJbam zrH{iC3F;r;Gm(MsE7&P6+gfsS$XU>oF@7%5X>9ytY~~9CAAvf#Mli(&YqHc_?Na1_u@j|mU$ZqX%ex;&OVFt`STpEO5wvlYAN=i*BGzz%_yw2yPZU zU2s%zhhSFlHo?5$VazSr44M9-`}1((^Z{~KA6Wx{7<7K9FmBoD7HTDRBk>|^tuss2 z6_x$G>y?}wWgC8=$~2X`UF8EBE!n<5EYW|oWND}ERLIH)uGgw;?N*0MsO`8FO8dSl z=Sqzos^d?d}+aGtrXO}4vo!tc0rYG z?{J4YZnfb##ra@q(X%zMf%EcR@BxZ_(*?XFbt;!%5H#10YysN zs421(Yy2RhTRkUGlTJmUhFuT^Yw5}vQdq@UB;-;Bnv3U-!fIAjmpm{2L*!7A=&~yA zeUA6B_7&m-pa(rb6npB3N7h{b^QBKUKck-4@1C1oJM!tHxQ~sC zdb>&)LWk?>^s7`$=XthK6i)?jJn>o zx{`G*_k~hcp~TNroJg-HGbNe^&46Y=GoTsJ3}^;41Db(679)mtNzUXG1^P8kJ{9Qtuf;Xf^tZVrLQSA$oBx!`Q(LAq~?t zbT$4g8o@rBxhG0t=WYly;qIk^ag<`CS$;>v>zL;`i9U-`lXp&4oD?u)MVgoWkBNT5 z`7FkT%ok9vjCvj&#)w%=r0p`Msa6}zJdY`wA6v{QU%lmaYZ1@WXvd`j)xcj6n_1Xb zO1Nu}`8|Wn@t2YMX^h^Nx#Td?24-<8Z49>NokDKNy2Q{-zhQBL!wMjLZX_IOaoh-_C+Fm3B8u)l5E)Oo{Z!(fy$Bs<| z)#Q6|c?SovaY>!>)odFMj0G&W=0BIZ(EiGJpS;fbv(7|{*7*YT&eG(?%?mrsfKX3q zov&;y*A{EzQ!?FuE`N^D= zPuK+Y^@SFHzQ#U6|3t$&L^Gfn&Gy|G}|AYZE{0{l~tN)YUb*GvE&46Y=GoTsJ Y3}^;41DXNNfM!55pc&8%{0j{H3UMItR{#J2 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.Server.SAF.Cryptography/TestConsole/bin/Debug/TestConsole.exe.config b/SAF_VS2003/SAF/Test.Server.SAF.Cryptography/TestConsole/bin/Debug/TestConsole.exe.config new file mode 100644 index 0000000..c291780 --- /dev/null +++ b/SAF_VS2003/SAF/Test.Server.SAF.Cryptography/TestConsole/bin/Debug/TestConsole.exe.config @@ -0,0 +1,59 @@ + + +

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + 6HD+Ngi8JoGmD0g= + gi8JoGmD + + + CN=CompanyA + CN=CompanyB + TripleDES + + + CN=CompanyB + CN=CompanyA + TripleDES + + + + + + + + + + + + + \ No newline at end of file diff --git a/SAF_VS2003/SAF/Test.Server.SAF.Cryptography/TestConsole/bin/Debug/TestConsole.pdb b/SAF_VS2003/SAF/Test.Server.SAF.Cryptography/TestConsole/bin/Debug/TestConsole.pdb new file mode 100644 index 0000000000000000000000000000000000000000..95a84ca70ab9c2a466479af937e161f2dd991e2b GIT binary patch literal 13824 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 Y3}^;41DXNNfM!55pc&8%{0j{H3UMItR{#J2 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.Server.SAF.Cryptography/TestConsole/obj/Debug/TestConsole.exe.incr b/SAF_VS2003/SAF/Test.Server.SAF.Cryptography/TestConsole/obj/Debug/TestConsole.exe.incr new file mode 100644 index 0000000000000000000000000000000000000000..7c1635f904812af327289940f146ba0ab58162ce GIT binary patch literal 2154 zcmdUwJ!lkB5Xa|Y{Epb!*gUWkvS<>B8bOk~oWxJ`{Dc$P+uOZcy}b>)d(l`~TG1r)T@|y~_-(g_G;q_*Bz{ddNu3=s z_xNsitB7oem4;yL?}SS-D>HIYj?0u>kn=JvMI?VB-9d@fL%KsB?H_4;e$p+R+_Wm4 zr19j4ROPbF$r(;LORvKCw1mtg5=#mPl8M9oEN54xjNFw-e7VJ3A~%sO$U!ueCuCg4 z_^Rx)$m$He2zgyvd`boVz5jM+`P1t{ZsJiy>t#s^>od65ChMs^(LMFf$}hJ~t)op> z@c5}di!?+Nlhv>9UcD(;k1)8^lmBqdiKVH6Ay5G&! zUQI8oVg<$K&p_OttyjCwO$OjQo5ge{Xr7xzU$b+CU J(o8Jy`w5%Id$0fi literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.Server.SAF.Cryptography/TestConsole/obj/Debug/TestConsole.pdb b/SAF_VS2003/SAF/Test.Server.SAF.Cryptography/TestConsole/obj/Debug/TestConsole.pdb new file mode 100644 index 0000000000000000000000000000000000000000..95a84ca70ab9c2a466479af937e161f2dd991e2b GIT binary patch literal 13824 zcmeHNO>7%Q6rN4pWb@;Kqmn`@Ri>h-H0j#uA62Lnz)70WMx`<0fGj!gW}RA1b|bG_ z8gal9KjIhx2arG_;sU5gPL-Bk-}0W2&Q7vc8(GIB*VD}j6G&i37Cx*3^G ziup62Hq0#yoci$gtsf(^eSW_6+u+^mWzdp+?r+XcW4FT1xd)nSg{+|*F`hVux_Cd}vMYSOT z?(ayF`?=+7Hw@xg;53S82Wz!^`a?z4BZ1vN$F(aM&I{r9e*NM4f;L#;(C8=V=Xf;0 z_(z%rXdmqRAAQaqLiz;o48S@Iki`2QY|ApXB@ebmR?!Aa;QpQacPMA-N0_}SHBSIPpmaAw{4kTLm*`ZIzEeToNCcey(%j$_ZUqc+=mQ{RPnt1RX5c1)c)?3qJB$Km|?hxA|yzgtE6ChEJE#iqt za>gxKQ!JNhWAvh3$W2+ss5Rvja`uGSi@Md!f&I1rzYX@x|GCe59{XYY1`LzX@Y~4( z5a+>h5tjiH%QnMS`CJmejr;-dorlD7DNoAGi?iTpSLFG?qu?CxW8jn}Pz;Ga5fTT1 zU3jMoiN8>;1M*&`qreehy~KC<&gR%%o=dbLU_TDdnH()~uys>(l^%SltBm_L|F@0J$$7|MzO^}iqZ4CTRZ0JI0*O9fF;(k`ed+ElskUZ_%3 zMH1k8=QqGXjHyL@a=cZ%q4QmT8i)ejz(;_j4kWNw1^qtnF^0Dqd>Pv@ zevzbqBlq|0n&?IO+FjRXoF)h%&*e%}@y705IB=hIZ!&&*xxT{G`$mtp^UJsTsQ=e; zUxa@8?c~XKn+mr-Kk?n%4V1-B=j;o^cGeLwJ2PduzPmqfWyY=i2KxU%5ZR1VzwMX_ z!w02#3n0nx!ZgE=3^Nl*p9O;9Mv8o8PX9<>$a9=VAm|VINC|` z@$3f>^sYxgf%s7b{rzXM-AIIrAP73k?94p#yuZ!Zm&r{aw_8#|3y2y9= z0J^Rc!|09na&C4 z!UC%+{1o#Glactm#Eg|6aeda6&#T$=$J&A~zP^9AzxN@anAa~4a_%*G>HM_(oV}Hq z({1WIBa@|L2m3Qr^+P?)KS4?$V{Yuj(jtO{!r)Ep(uFzlhK^Iz_4^ z^q~&eN$4Iu>Lr7+MNi3q=D-W^c31~=mxNuUGqmhT#>oPw1eoit8|ZVoQlvMg`C6hY zu|I;hLr*lc4b(agkoltqjbOzC?g!xI@JNwmO{}&1qwTVW)-3}Px#jF)-z#mi>JSbNBqb6RsGj}GXvk<|M32s;Hf_Rou4TjhP65W>~*sjH^%TLeKeVyxk_I(bpbz3 Y)`Q_?)x^qn)y^f-Y1TUP9P`hQ@5I^(DF6Tf literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.Server.SAF.EventNotification/Test.Server.SAF.EventNotification.sln b/SAF_VS2003/SAF/Test.Server.SAF.EventNotification/Test.Server.SAF.EventNotification.sln new file mode 100644 index 0000000..8fec2e2 --- /dev/null +++ b/SAF_VS2003/SAF/Test.Server.SAF.EventNotification/Test.Server.SAF.EventNotification.sln @@ -0,0 +1,37 @@ +Microsoft Visual Studio Solution File, Format Version 8.00 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SAF.EventNotification", "..\SAF.EventNotification\SAF.EventNotification.csproj", "{7D58B200-AD5E-453D-81C9-CBF45119790C}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SAF.Configuration", "..\SAF.Configuration\SAF.Configuration.csproj", "{CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestConsole", "TestConsole\TestConsole.csproj", "{EB0B6104-0AB2-4090-8D00-74C7537AAFF6}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfiguration) = preSolution + Debug = Debug + Release = Release + EndGlobalSection + GlobalSection(ProjectConfiguration) = postSolution + {7D58B200-AD5E-453D-81C9-CBF45119790C}.Debug.ActiveCfg = Debug|.NET + {7D58B200-AD5E-453D-81C9-CBF45119790C}.Debug.Build.0 = Debug|.NET + {7D58B200-AD5E-453D-81C9-CBF45119790C}.Release.ActiveCfg = Release|.NET + {7D58B200-AD5E-453D-81C9-CBF45119790C}.Release.Build.0 = Release|.NET + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Debug.ActiveCfg = Debug|.NET + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Debug.Build.0 = Debug|.NET + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Release.ActiveCfg = Release|.NET + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Release.Build.0 = Release|.NET + {EB0B6104-0AB2-4090-8D00-74C7537AAFF6}.Debug.ActiveCfg = Debug|.NET + {EB0B6104-0AB2-4090-8D00-74C7537AAFF6}.Debug.Build.0 = Debug|.NET + {EB0B6104-0AB2-4090-8D00-74C7537AAFF6}.Release.ActiveCfg = Release|.NET + {EB0B6104-0AB2-4090-8D00-74C7537AAFF6}.Release.Build.0 = Release|.NET + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + EndGlobalSection + GlobalSection(ExtensibilityAddIns) = postSolution + EndGlobalSection +EndGlobal diff --git a/SAF_VS2003/SAF/Test.Server.SAF.EventNotification/Test.Server.SAF.EventNotification.sln.old b/SAF_VS2003/SAF/Test.Server.SAF.EventNotification/Test.Server.SAF.EventNotification.sln.old new file mode 100644 index 0000000..c1aee0c --- /dev/null +++ b/SAF_VS2003/SAF/Test.Server.SAF.EventNotification/Test.Server.SAF.EventNotification.sln.old @@ -0,0 +1,33 @@ +Microsoft Visual Studio Solution File, Format Version 7.00 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SAF.EventNotification", "..\SAF.EventNotification\SAF.EventNotification.csproj", "{7D58B200-AD5E-453D-81C9-CBF45119790C}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SAF.Configuration", "..\SAF.Configuration\SAF.Configuration.csproj", "{CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestConsole", "TestConsole\TestConsole.csproj", "{EB0B6104-0AB2-4090-8D00-74C7537AAFF6}" +EndProject +Global + GlobalSection(SolutionConfiguration) = preSolution + ConfigName.0 = Debug + ConfigName.1 = Release + EndGlobalSection + GlobalSection(ProjectDependencies) = postSolution + EndGlobalSection + GlobalSection(ProjectConfiguration) = postSolution + {7D58B200-AD5E-453D-81C9-CBF45119790C}.Debug.ActiveCfg = Debug|.NET + {7D58B200-AD5E-453D-81C9-CBF45119790C}.Debug.Build.0 = Debug|.NET + {7D58B200-AD5E-453D-81C9-CBF45119790C}.Release.ActiveCfg = Release|.NET + {7D58B200-AD5E-453D-81C9-CBF45119790C}.Release.Build.0 = Release|.NET + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Debug.ActiveCfg = Debug|.NET + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Debug.Build.0 = Debug|.NET + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Release.ActiveCfg = Release|.NET + {CF0A6DB7-5DA9-4D79-9835-BC8CD625B206}.Release.Build.0 = Release|.NET + {EB0B6104-0AB2-4090-8D00-74C7537AAFF6}.Debug.ActiveCfg = Debug|.NET + {EB0B6104-0AB2-4090-8D00-74C7537AAFF6}.Debug.Build.0 = Debug|.NET + {EB0B6104-0AB2-4090-8D00-74C7537AAFF6}.Release.ActiveCfg = Release|.NET + {EB0B6104-0AB2-4090-8D00-74C7537AAFF6}.Release.Build.0 = Release|.NET + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + EndGlobalSection + GlobalSection(ExtensibilityAddIns) = postSolution + EndGlobalSection +EndGlobal diff --git a/SAF_VS2003/SAF/Test.Server.SAF.EventNotification/Test.Server.SAF.EventNotification.suo b/SAF_VS2003/SAF/Test.Server.SAF.EventNotification/Test.Server.SAF.EventNotification.suo new file mode 100644 index 0000000000000000000000000000000000000000..24c01430f0b8d4fe97a3e4aa777d37c20f3480b8 GIT binary patch literal 12800 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 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.Server.SAF.EventNotification/TestConsole/AssemblyInfo.cs b/SAF_VS2003/SAF/Test.Server.SAF.EventNotification/TestConsole/AssemblyInfo.cs new file mode 100644 index 0000000..9f89a32 --- /dev/null +++ b/SAF_VS2003/SAF/Test.Server.SAF.EventNotification/TestConsole/AssemblyInfo.cs @@ -0,0 +1,58 @@ +using System.Reflection; +using System.Runtime.CompilerServices; + +// +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +// +[assembly: AssemblyTitle("")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("")] +[assembly: AssemblyCopyright("")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: + +[assembly: AssemblyVersion("1.0.*")] + +// +// In order to sign your assembly you must specify a key to use. Refer to the +// Microsoft .NET Framework documentation for more information on assembly signing. +// +// Use the attributes below to control which key is used for signing. +// +// Notes: +// (*) If no key is specified, the assembly is not signed. +// (*) KeyName refers to a key that has been installed in the Crypto Service +// Provider (CSP) on your machine. KeyFile refers to a file which contains +// a key. +// (*) If the KeyFile and the KeyName values are both specified, the +// following processing occurs: +// (1) If the KeyName can be found in the CSP, that key is used. +// (2) If the KeyName does not exist and the KeyFile does exist, the key +// in the KeyFile is installed into the CSP and used. +// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. +// When specifying the KeyFile, the location of the KeyFile should be +// relative to the project output directory which is +// %Project Directory%\obj\. For example, if your KeyFile is +// located in the project directory, you would specify the AssemblyKeyFile +// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] +// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework +// documentation for more information on this. +// +[assembly: AssemblyDelaySign(false)] +[assembly: AssemblyKeyFile("")] +[assembly: AssemblyKeyName("")] diff --git a/SAF_VS2003/SAF/Test.Server.SAF.EventNotification/TestConsole/Class1.cs b/SAF_VS2003/SAF/Test.Server.SAF.EventNotification/TestConsole/Class1.cs new file mode 100644 index 0000000..053e896 --- /dev/null +++ b/SAF_VS2003/SAF/Test.Server.SAF.EventNotification/TestConsole/Class1.cs @@ -0,0 +1,47 @@ +using System; +using System.Runtime.Remoting; +using System.Runtime.Remoting.Channels.Http; +using System.Runtime.Remoting.Channels; +using SAF.EventNotification; +using SAF.Configuration; +using System.Configuration; +using System.Collections; +using System.Runtime.Serialization.Formatters; + +namespace TestConsole +{ + /// + /// This console application show how to install EventNotification service on the event server. + /// + class Class1 + { + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main(string[] args) + { + + ConfigurationManager cm = (ConfigurationManager)ConfigurationSettings.GetConfig("Framework"); + EventNotificationConfiguration enc = cm.EventNotificationConfig; + //set up the network channel for accepting calls from event clients and making calls + //to the event clients. + IDictionary props = new Hashtable(); + props["port"] = Int32.Parse(enc.GetPortNumber()); + + BinaryServerFormatterSinkProvider provider = new BinaryServerFormatterSinkProvider(); + provider.TypeFilterLevel = TypeFilterLevel.Full; + HttpChannel channel = new HttpChannel(props,null,provider); + + ChannelServices.RegisterChannel(channel); + //register the remote object type. + WellKnownServiceTypeEntry wste= new WellKnownServiceTypeEntry(typeof(EventServer),enc.GetObjectUri(),WellKnownObjectMode.Singleton); + RemotingConfiguration.ApplicationName = enc.GetApplicationName(); + RemotingConfiguration.RegisterWellKnownServiceType(wste); + Console.WriteLine("Press Enter to exit"); + Console.ReadLine(); + + + } + } +} diff --git a/SAF_VS2003/SAF/Test.Server.SAF.EventNotification/TestConsole/TestConsole.csproj b/SAF_VS2003/SAF/Test.Server.SAF.EventNotification/TestConsole/TestConsole.csproj new file mode 100644 index 0000000..1cd8593 --- /dev/null +++ b/SAF_VS2003/SAF/Test.Server.SAF.EventNotification/TestConsole/TestConsole.csproj @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SAF_VS2003/SAF/Test.Server.SAF.EventNotification/TestConsole/TestConsole.csproj.user b/SAF_VS2003/SAF/Test.Server.SAF.EventNotification/TestConsole/TestConsole.csproj.user new file mode 100644 index 0000000..686cccb --- /dev/null +++ b/SAF_VS2003/SAF/Test.Server.SAF.EventNotification/TestConsole/TestConsole.csproj.user @@ -0,0 +1,48 @@ + + + + + + + + + + + + diff --git a/SAF_VS2003/SAF/Test.Server.SAF.EventNotification/TestConsole/app.config b/SAF_VS2003/SAF/Test.Server.SAF.EventNotification/TestConsole/app.config new file mode 100644 index 0000000..de0e062 --- /dev/null +++ b/SAF_VS2003/SAF/Test.Server.SAF.EventNotification/TestConsole/app.config @@ -0,0 +1,14 @@ + + +
+
+ + + + localhost + 4000 + EventNotification + EventURI + + + \ No newline at end of file diff --git a/SAF_VS2003/SAF/Test.Server.SAF.EventNotification/TestConsole/bin/Debug/SAF.Configuration.dll b/SAF_VS2003/SAF/Test.Server.SAF.EventNotification/TestConsole/bin/Debug/SAF.Configuration.dll new file mode 100644 index 0000000000000000000000000000000000000000..840f0b9a138d705c56725e8e19f59b8ad17a0e67 GIT binary patch literal 24576 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 Q2!sfP2!sgypG4q40SytzEdT%j literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.Server.SAF.EventNotification/TestConsole/bin/Debug/SAF.Configuration.pdb b/SAF_VS2003/SAF/Test.Server.SAF.EventNotification/TestConsole/bin/Debug/SAF.Configuration.pdb new file mode 100644 index 0000000000000000000000000000000000000000..220a19b61f470499dd29bbf6d9cd25f7f5a62d4f GIT binary patch literal 56832 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 Hb`<#kCB2s? literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.Server.SAF.EventNotification/TestConsole/bin/Debug/SAF.EventNotification.dll b/SAF_VS2003/SAF/Test.Server.SAF.EventNotification/TestConsole/bin/Debug/SAF.EventNotification.dll new file mode 100644 index 0000000000000000000000000000000000000000..e62e3a8df20e1d237bd400d13556df6d31ebed28 GIT binary patch literal 20480 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 Q0yPQLBv6yU^q0W@0973{LI3~& literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.Server.SAF.EventNotification/TestConsole/bin/Debug/SAF.Library.Security.dll b/SAF_VS2003/SAF/Test.Server.SAF.EventNotification/TestConsole/bin/Debug/SAF.Library.Security.dll new file mode 100644 index 0000000000000000000000000000000000000000..3f37716d27cc498d73164dda280c3e02cf8bcb35 GIT binary patch literal 3584 zcmeHJPiz!r6o1n{*n%veA`(HT77|U&*rr7UiSDw?pVEcaPOTzM=e-U_#=}ghWps@ZbR>G4Wzlf`&5(J@nwggVBo@Jcz&dW+q+O4G}LS#&7rgeeZqm z&-dP&Z{O_k*UnQf5%po-yh(H!E04V3onZyy+~Z&7=+fY|q02`3+R*Hh7nuzm*0fVM zT_*^_*sLg1Hv`iP%+i!?*2Ai@Hf~(MD|J16h^TDz(z~a;7qin=DL1siSVx4fOf1%J zfQgyMB-$c$PZBq8aQre>fY|53c@b@v@7kKOA|qNwAd^hziOwYksU%$%i0%hDZ4&KB zxBk%r{ed>c0q{rLcq>+K#^A^M0gy?aY24ssm_!Sfj;cUMTL7LzLc{M6{etxmrtMgJK`mm9pL&x!F?{6Zi4yo8MMaj~#R8!(j{AQA`y)<_`ov6}%$2DtJTi zA%k_E5j-mB2(AcT5WHes64!};&irGXGfew|SsjSJ>z_(FgMNf+4{{%*_vr!rco??> zx6zQ$PYI3+?h`BsP6)mvcv8?2^ng3aLZ(ju9~694a7^%d!J^=#pe=Yx&=p*!C#i2G zsa(1L`X&UAk>o)1b9#3N>0}~cJa9a$HhuL1b-OB7)%R(l(2SQt?VWXEFAS!2c*d(L z-Bq75RYmp44Ylu8$Zkcks#`N^(N`{eph6U>dc|)|s@4got_m@(O{EztvfMb-?c&3p z-zLuNO3HUywpR<*EHlxZ(h-j66cn3&+|*s1&1$Er>W*ISViPu6+N&+aog!4B+H|`J ziebIs1g%bsVi+uXwWgLLc8W_Xa<$js`g96sy|}#&X+=w(Qwzc<_S}f%=Uj6t?P`wi zhi|CrOz5kKsw(g@`unR7f4lFwV-p{~_1oL~Z(LlU`^+9=XKrV1;ES{KbKA#P-|I6C zBgfFw4^dA~zx*uL;fKJ)K-%B<`aH(8$yDda`XJHiVyH{Lf86ncgKb)^U}X<>}yB@s&(W8S>z>nh{%;V8n?vBx(6tSvohT|=xS)MGGF_}g<_(@UO46?S#lXD9nOO0>UxxLbNs&h%~3&<#v{3?jPg(rPCKDf5`WSGg{#PrY7Jqh9e JL+@P${sye4&cy%# literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.Server.SAF.EventNotification/TestConsole/bin/Debug/SAF.Library.Security.pdb b/SAF_VS2003/SAF/Test.Server.SAF.EventNotification/TestConsole/bin/Debug/SAF.Library.Security.pdb new file mode 100644 index 0000000000000000000000000000000000000000..cd2d5d76aef6a2aaec27bdb22b846a7684f99a80 GIT binary patch literal 7680 zcmeHL%}T>S5Z?ILrdp~85pycyt=gog){}>dpjZ&<3)D2lQcWOLd=amLHxFJF#FKav zU%)relf@TkoX_l*QWPp)nsh$+cCyQs?tZf~nN6i>`(E2?oMy{rIhV^;s@vIO-m=mu zW2-6%6GCWYGQ6|mmMc=NpV;9M_gCFHSrNiw#QQ3I3Sdm} zdq6hf+4y)wcl{yXJ3HM@w}V;{3>!Q!Mp=QM@;}Z*fBr`wdlQ#hz>l;##1+u6TQ5jClG5iB#)D*zCJd5ZPaSt4< z|5fdeT%drQF-yc90A7ZN)m?zSOkzX`@Y_C7`5!*U^40whK2~==%;orp2=M{p_%HE~ b*vFZ`?>P2JgouN`-9+4hynI&R9}0W{699Dh literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.Server.SAF.EventNotification/TestConsole/bin/Debug/TestConsole.exe b/SAF_VS2003/SAF/Test.Server.SAF.EventNotification/TestConsole/bin/Debug/TestConsole.exe new file mode 100644 index 0000000000000000000000000000000000000000..d577d34bba32e6eeb596c6d4dc80764396105976 GIT binary patch literal 16384 zcmeHNU2Ggz6+W{&UjL-o*lRb9N!m_u05_n;KOrO}Dt5g7S>iZu)=m@%B(v+udYavt z?aVmw1_4{qRB6?Rq!cv>@!LFr1W_whBCS9&C=xu-iasEtoJzyIYpz1aN9 z=F7_XE1RcgO;;;9cHYs8T28kt+tad!=FC}|X=$nb8Leo~7|FG3Teei2o*X6`SEAJZ z!!v`m-mX$yS);^=TA|T=?Zn5c`~b@!8VcAsZceq5DiF9H62=8J1d(gyqFH?2*-CVX zxdEctCQ;RsV?=jBqi!bJRBw52Nh1n2*93ViP$TIX^B&}>H6XA_jMcayNz#apB^}qv zL6X=8z_5>o97qF*KIs?*8;%?+9Ybcn9^^n8AlefULpDSpL?A>UL?A>UL?A>UL?A>U zL?A>UMBx7jfgZkBBk|odf_xG8+{tDl1w1k?;dhqWdsI5_*KKpqK&g8jQH$4x)>>j; z#-+4njSHdWt|sShSR3sGgzk2br#j$cgS5D?w5)CJwAZ6->S%WFLD{ahsofjE{O(@( zb$5bmv_AxTkGql04UIPL=Pli^wzM^L--p7vpZf=C>DE9#imN`g_bAj@9a5wlgKc3g z^wsYVjKQPG8cZ4jJ&;Ld;)9tTmp6WI;<>+^Iexw2(%1PrK+kDhBQ;O~^c@7=^;KN`@zLWtzIt?JJjb;1 zE_;mQLj=!n*K~%S0neWXx<;qdDU=r>|Agf|1zS1;k7-jz?~V|b0nuNTeqI>RQ5P~; z$t(jR`QE^IvfO|SK&z3)Xe(;ONT>avr-gn)=p~`Q7J60a--NDL*z=P@$AspEJ|^^% z@@;$*`jyg!9&RXqP~x;XvMv&*?VvHLM2esnBHZIe@Co{J`s*-E{%1EXeXQe*vjO3C=& z7U}T~Y4|W=3jJPbqcn9;r_jxyo%De4y+U^i9Tb`t`jF7WLUp00&__V;qcUhKR%%1! z0eXU_BT4#}XwK7e}TrMgY--Aqx1&78GVRu(pL2lBHpd` zk)ovOOW;p|Z&SXn&Vs(E7O7Kt1AM3QN7ch>;2t${X$vK37kvk`UFb%k{X*9W9TK`% zXh!H4gyw{vpyz0w&Z7QPbdH{(3#3+jWUs~a3xEr02Qp)P7Fz=+h48FP8PqM!$+g&x zXT^cmG2qMUzO<-Y^1F#ArJ8o{vuEZC#)HHUZS|2%8uJDf-JIcirBgH|^6+i;_9dcB;O~1IFU7@3vEDbow$;NzZ5nR?!`UC+$9B->{#pASP|co0uzR(L>tu`uk{7cU*(gDO1*x?v%+jyrXGej@98En6o^y zXkf(^alTj>fvnc#a(!}W7N6vef=hc$3k~_F(}?X9b^=X<56KcvNm16}fZ z<+lnt!aUn+)hnDJALF}=eDa);5=0BjYl<7R83LhOd<_h zM2SRH-q2N2HpQc{L>eA(2u*P|ZraoUzqT(nYf&XJoiGw6HZDaL>)YsYU+q?19y-zbQE-$4uDJJmO24B4LSmz z(=XH;fA`~2NWX9m-%I@RvtsrCFCoyaX!+i)pj90w>j=)%0?ySm&f4QRV>xXh6?6(# z9ak5$TK|24J7=Fyh)*r@l)NwGB#u&Doa{S5>(E!t_n^E@xPh_s;uhG0 z+)JOP?er;d{j^i!-HF;`hW8Wd`gk=k4a4Xt8Fm)98+zKEb-eF&mg}^-99!S zYkuRhX@=$~2jAsbrv$%xpXDh2GYrS1jX}iX%6PJfwv3V7X*(Da?+t>%07^yHDIR95 zv(;0@f6^-z0*8zrR)H)mEI@Nhe)%7dz#-#@RZRZfbgC|u)Kpz6spw=Wy%WkyV1NT2 zXM^dnmH3U<(!{H;roEE-+hDqa52V2~aL2P*7Y>94EVs&kE=SRRW3W$N=X~~Q$hCF8 z0DkpU;l<4h+b=-D-qAX5tS;9oYNPuln0No>a?GE;(Q$uTMz8n{FCfag#E)8~PV+tl zg`ZJBGddB{G~T6EIdLP@+UiSu-Ug1;_t9|Z5+V>H5F!vF5F!vF@PQzp`G3Qm-1UL< m7IqRM5F!vF5F!vF5F!vF5F!vF5F!vF5F!vF5F+qjK;R$NDLUZ* literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.Server.SAF.EventNotification/TestConsole/bin/Debug/TestConsole.exe.config b/SAF_VS2003/SAF/Test.Server.SAF.EventNotification/TestConsole/bin/Debug/TestConsole.exe.config new file mode 100644 index 0000000..de0e062 --- /dev/null +++ b/SAF_VS2003/SAF/Test.Server.SAF.EventNotification/TestConsole/bin/Debug/TestConsole.exe.config @@ -0,0 +1,14 @@ + + +
+
+ + + + localhost + 4000 + EventNotification + EventURI + + + \ No newline at end of file diff --git a/SAF_VS2003/SAF/Test.Server.SAF.EventNotification/TestConsole/bin/Debug/TestConsole.pdb b/SAF_VS2003/SAF/Test.Server.SAF.EventNotification/TestConsole/bin/Debug/TestConsole.pdb new file mode 100644 index 0000000000000000000000000000000000000000..437c193eed85eed78844fbdf2bb6281802cbf9cf GIT binary patch literal 13824 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 literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/Test.Server.SAF.EventNotification/TestConsole/obj/Debug/TestConsole.exe.incr b/SAF_VS2003/SAF/Test.Server.SAF.EventNotification/TestConsole/obj/Debug/TestConsole.exe.incr new file mode 100644 index 0000000000000000000000000000000000000000..238cf8abc59636a214144e69d7f1ff5e99a9547c GIT binary patch literal 2142 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 Q;0Wlz3;XX!XvY3O0OZ`a9{>OV literal 0 HcmV?d00001 diff --git a/SAF_VS2003/SAF/readme.txt b/SAF_VS2003/SAF/readme.txt new file mode 100644 index 0000000..5aa248d --- /dev/null +++ b/SAF_VS2003/SAF/readme.txt @@ -0,0 +1,9 @@ +The source code is categorized into two groups: SAF and Testing projects + +Folders that start with "SAF" contain the source code for the various SAF components +SAF.sln file on the root folder represents the solution containing the only SAF source code. + +Folders that start with "Test" contain the testing project for the a specific SAF component +Each "Test.*" folder contains VS.NET solution file for the testing project + +Please refer to "Testing project" section in each book chapter for more information and instruction on how to run the demo in the Testing project diff --git a/SAF_VS2003/Update.doc b/SAF_VS2003/Update.doc new file mode 100644 index 0000000000000000000000000000000000000000..fe816de748699f80434f457bd54c603fffcf3ed9 GIT binary patch literal 20480 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 u=o$BYS0{;c{f@2E+ literal 0 HcmV?d00001 diff --git a/contributing.md b/contributing.md new file mode 100644 index 0000000..f6005ad --- /dev/null +++ b/contributing.md @@ -0,0 +1,14 @@ +# Contributing to Apress Source Code + +Copyright for Apress source code belongs to the author(s). However, under fair use you are encouraged to fork and contribute minor corrections and updates for the benefit of the author(s) and other readers. + +## How to Contribute + +1. Make sure you have a GitHub account. +2. Fork the repository for the relevant book. +3. Create a new branch on which to make your change, e.g. +`git checkout -b my_code_contribution` +4. Commit your change. Include a commit message describing the correction. Please note that if your commit message is not clear, the correction will not be accepted. +5. Submit a pull request. + +Thank you for your contribution! \ No newline at end of file

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%0A=>J<_M3zL1Ewx3 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 literal 0 HcmV?d00001 diff --git a/9781590592885.jpg b/9781590592885.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f35bf7fcb18d266acf8840422bb6e73d8423aec1 GIT binary patch literal 10337 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 literal 0 HcmV?d00001 diff --git a/LICENSE.txt b/LICENSE.txt new file mode 100644 index 0000000..8f50522 --- /dev/null +++ b/LICENSE.txt @@ -0,0 +1,27 @@ +Freeware License, some rights reserved + +Copyright (c) 2004 Xin Chen + +Permission is hereby granted, free of charge, to anyone obtaining a copy +of this software and associated documentation files (the "Software"), +to work with the Software within the limits of freeware distribution and fair use. +This includes the rights to use, copy, and modify the Software for personal use. +Users are also allowed and encouraged to submit corrections and modifications +to the Software for the benefit of other users. + +It is not allowed to reuse, modify, or redistribute the Software for +commercial use in any way, or for a user’s educational materials such as books +or blog articles without prior permission from the copyright holder. + +The above copyright notice and this permission notice need to be included +in all copies or substantial portions of the software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS OR APRESS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + diff --git a/README.md b/README.md new file mode 100644 index 0000000..507d951 --- /dev/null +++ b/README.md @@ -0,0 +1,15 @@ +#Apress Source Code + +This repository accompanies [*Developing Application Frameworks in .NET*](http://www.apress.com/9781590592885) by Xin Chen (Apress, 2004). + +![Cover image](9781590592885.jpg) + +Download the files as a zip using the green button, or clone the repository to your machine using Git. + +##Releases + +Release v1.0 corresponds to the code in the published book, without corrections or updates. + +##Contributions + +See the file Contributing.md for more information on how you can contribute to this repository. diff --git a/SAF/Certificates/CompanyA.pfx b/SAF/Certificates/CompanyA.pfx new file mode 100644 index 0000000000000000000000000000000000000000..69f4b45921bab162de84f7fa5a1c929c69648706 GIT binary patch literal 2244 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 literal 0 HcmV?d00001 diff --git a/SAF/Certificates/CompanyB_PublicKey.cer b/SAF/Certificates/CompanyB_PublicKey.cer new file mode 100644 index 0000000..34effde --- /dev/null +++ b/SAF/Certificates/CompanyB_PublicKey.cer @@ -0,0 +1,23 @@ +-----BEGIN CERTIFICATE----- +MIIDwDCCAqigAwIBAgIKYRVvjAAAAAAADjANBgkqhkiG9w0BAQUFADASMRAwDgYD +VQQDEwdEZWxsNDIwMB4XDTAzMTAwOTE3MDcwM1oXDTA0MTAwOTE3MTcwM1owEzER +MA8GA1UEAxMIQ29tcGFueUIwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAKdw +e2Z+5+GjBIYbOAjphQRFAO8sdxQ78NBvvi31ql9TPJ7J1iVw7/RTN39p7B1WG1To +59eVDdY0btgQw6NcFfVkd5ZzYUKRXAFu4yILgvUfamIwfCQYR6y2Q3/ao9tgURO4 +rFwtMSunnJIR0RxR5t+cQuBC0fGu2DqNldNCfDXhAgMBAAGjggGZMIIBlTAOBgNV +HQ8BAf8EBAMCBPAwRAYJKoZIhvcNAQkPBDcwNTAOBggqhkiG9w0DAgICAIAwDgYI +KoZIhvcNAwQCAgCAMAcGBSsOAwIHMAoGCCqGSIb3DQMHMB0GA1UdDgQWBBRyC5BK +zX7Q1GBVq4E+noZe4BRYITATBgNVHSUEDDAKBggrBgEFBQcDAjAfBgNVHSMEGDAW +gBTtPRL/6OfaUWW/BVAxYkAGMnHYvTBfBgNVHR8EWDBWMFSgUqBQhiVodHRwOi8v +ZGVsbDQyMC9DZXJ0RW5yb2xsL0RlbGw0MjAuY3JshidmaWxlOi8vXFxkZWxsNDIw +XENlcnRFbnJvbGxcRGVsbDQyMC5jcmwwgYYGCCsGAQUFBwEBBHoweDA5BggrBgEF +BQcwAoYtaHR0cDovL2RlbGw0MjAvQ2VydEVucm9sbC9kZWxsNDIwX0RlbGw0MjAu +Y3J0MDsGCCsGAQUFBzAChi9maWxlOi8vXFxkZWxsNDIwXENlcnRFbnJvbGxcZGVs +bDQyMF9EZWxsNDIwLmNydDANBgkqhkiG9w0BAQUFAAOCAQEAOSYKSM2qN6PqmC4q +pB9t7aYAIJNM+sQrN5xn3Xa4OiqtxK8SkSmN3lAMONF9ExjfLR1OnV9Dn8/3RVdn +hosc4giuVeDvHH7IkcNyn6FeJrVRTsc6bxhjvMPiW0/lpLTkLaXNQ1pIJe7Xue0z +eVO9yabq64vuzl8m2pxei2jeki5p2ykhOO0PqhjNyaT7bsgw3hJ8NIjzsqCrymsL +7HMBRrzOX+zXg5fyDl6n1Kb8qlQQBqLEEqR3ZlWxpdd07KaSYzCK4fvWUlSeNOpK +xJXqJ3h6izR0xtWawPYUTmnI8Gnc/eyQ2gHnx3hUGqzSuvuiEDYmi8ssNfELJows +IwoHSQ== +-----END CERTIFICATE----- diff --git a/SAF/Certificates/Dell420.cer b/SAF/Certificates/Dell420.cer new file mode 100644 index 0000000..0ef71a2 --- /dev/null +++ b/SAF/Certificates/Dell420.cer @@ -0,0 +1,21 @@ +-----BEGIN CERTIFICATE----- +MIIDYjCCAkqgAwIBAgIQelRz2WDSx6lNXeEpgoPgATANBgkqhkiG9w0BAQUFADAS +MRAwDgYDVQQDEwdEZWxsNDIwMB4XDTAzMDcwMjAxNTAxNVoXDTA4MDcwMjAxNTYy +NFowEjEQMA4GA1UEAxMHRGVsbDQyMDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC +AQoCggEBALIM6q7qbV4KDv4xIc3AhYzlaN9wFzgW/j4Jm/ig1hnIPWeA22HoZGVL +vWJ/i7qfVLbcYNnth1Ti+H+EjMNSCZabOuvq9x+YEf2J3RNU7oIZotBXNbj120bN +V3tlnSpitzJuPc8erlPDQ9elugP9rHPFuL2noJ6SPmieeh53nlzeMrv9dLC/CYdZ +1QZPQk0rYTyRRlVREw8SsE2jBPOYLC35BtZ1mDtX7VG0JA5asy+/kUgm/nHecZ2f ++ln4HVoqi4eFxbGn/JBJgbXq4+CZc0HzV7prS8W8g+D8gHJvIascepiSEslKIFA/ +hkU+ZuROmJMWU+SQs0sDDh37+5WXwwcCAwEAAaOBszCBsDALBgNVHQ8EBAMCAYYw +DwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU7T0S/+jn2lFlvwVQMWJABjJx2L0w +XwYDVR0fBFgwVjBUoFKgUIYlaHR0cDovL2RlbGw0MjAvQ2VydEVucm9sbC9EZWxs +NDIwLmNybIYnZmlsZTovL1xcZGVsbDQyMFxDZXJ0RW5yb2xsXERlbGw0MjAuY3Js +MBAGCSsGAQQBgjcVAQQDAgEAMA0GCSqGSIb3DQEBBQUAA4IBAQANf+P55RPAPJaa +Q5peIXof8PDuGTH03AyOjfEclwaAHLGk0dGTSEOre19nkAx1Cx+cm8iH9R7l9Mf3 +g83sL+IkSx0ygxFqMo6JhkRBBz/2IvtZSf5VL0Cc7LFNDyc2jAJj5MQzKob5Dmoz +D/NBOyN+FOLxFcZApiAsBS1cyeaUsgRZChkw/CmNDQWpGPzIdp4CzBNCFtjUHlbi +zunxL7aV7TUCcSDhIqe+n0df5UifAtPwCBQdEBFk09EhLaJ6BtGDhv0DMm2rluUt +bRjmwVLL8OWqwYX3jFe9py/jlcHSF80pj8Kb+n8YA7Ucv7W7ztlvYqAIbCH9maCh +1C64h2IN +-----END CERTIFICATE----- diff --git a/SAF/Certificates/XinChen.pfx b/SAF/Certificates/XinChen.pfx new file mode 100644 index 0000000000000000000000000000000000000000..9949e2951a072001c667c7c8970c5b8900fe5279 GIT binary patch literal 2210 zcmY+Ec{tQv8^?dYF*9ZuluSe>OWD&5%HEJY3?j$z2*P@J21n1oQXF^T430(!*FsT=6<7}}f{ zj=ELNuKM)n6Jr>Ra{$hOrFnw12zbtL_2}|IMS>+<{8*t(m zH;DH2P*3JIBsuI@ZsvCjh|O;?6dw!)v2S&nPjZh{;;TdR`b#Q9^?R(biOG+5irtNo zFZvfR3in1)e{iW2z4VWV*O;Bp($!MS5_^HH&I#AdiBn0;s(b!~Y1OqdP_)TWF|I|T z@vjic?&_lI55FpHeaSa+b@81fz6YnLsez>DJF*?D;5^{dRTsEO+> z&3ulJjY3CRJ-Fbm3AS-%5dM47YRTvUHt0W6k`Q^*@<{aE2H$o4X(Zde#BKs#(?Sp#+|dS;A4F(!w%Vz9Rv_8yPxet;9XYB zsfA{`fuH53O@91!A*b)v137sJ1)Ndsry+0g44s=Xb5e^x_j4?11B<)OBfJ*mhL-}Q zlu@ihXaz!sd6aUU>QaOq33cO!2^cuUbM|^nM4B4&IfH@d^G`IyWEfK$@KU8jRxG_d zYrK-AXX2s+QbD`oAP(`kGi$Tnz1KFjzlR>Olhig%`vE%^N8+=B|A8QVn0l}ugZy@a5xA60N&vrC_o_L%z!9B8Nfq90Mvi0Ii7%3AsZccLa2_B7ny;;E{jd zg%erGfcrqm69xj%HDcp4AKqo4@g^dFc!|9+BR8H-_a&rI#H^UN;%0 z>DU@fvlk*#$h^hZBx6ms|2s9c@XQx$w9(c1cD3c$6zZG}ML6vE%;dHSjyH3Qm3{JT zC|)ut>T2yiavXb`n-;OY4o3TB<+sj{yMBH!_>k)n2EW~}P(L=`Qr%e`O=iinpGTt2 zis&)u@yHvWG92FaUhmUgbXp7vL4PTftdcd8@w!3Vr^EJ?cHz;{u`#ouq9rnIoEtss z;!WAaY;9vQ{jbtL~Md&Q~#k7ec;tFJ%7pn^kI}}-Nk%ZMu7NKkX(wY z-m9->_mSSDdT;M^rqEEFdq`m*55Zdf{FPB%!PG&VNQomEk(ZmWq!Ohk&D;yq01ZUp z1(LXoPa->;LC);t@OASog>S{jFgD7Dp=`=m9>Q&9&-Y!yVq}Wk^m15u(&m0Rv;%i{fgm(=i=+_3p{<8j&ZrF zX=eL_ae?(HY*b@ivfPfUDdx#FKrRprWjAy$QNuym2Ub!a(y&$vK2k{AlD9>R!^Iy} zQfrJ%z9ev_fzUpkla@=J&_1Qt1a!Bj@ZnlyeyOW zVRtr3f*qQTKw-yP-JSFgys7XI+)gXxXDeKpWTcw!Q&zfIuB;~{S5T~^Fd81-h_Q1^ zSeh7G);nHH+_`^nj>4=<&XhxyH$8u;A$sm~$yLdfucT`0_B9MEh<(P`i@Jz2Em~<4 zl9OF?JG86b>{&qDR+wPm*jS?jc=bvmKr6C_pL6gB}%w18+. For example, if your KeyFile is +// located in the project directory, you would specify the AssemblyKeyFile +// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] +// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework +// documentation for more information on this. +// +[assembly: AssemblyDelaySign(false)] +[assembly: AssemblyKeyFile("")] +[assembly: AssemblyKeyName("")] diff --git a/SAF/SAF.Application.Configuration/ConfigurationManager.cs b/SAF/SAF.Application.Configuration/ConfigurationManager.cs new file mode 100644 index 0000000..33d5bc2 --- /dev/null +++ b/SAF/SAF.Application.Configuration/ConfigurationManager.cs @@ -0,0 +1,28 @@ +using System; +using System.Xml; + +namespace SAF.Application.Configuration +{ + ///