You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by cl...@apache.org on 2015/11/09 21:41:43 UTC

[1/4] activemq-artemis git commit: ARTEMIS-299 file-based login module performance

Repository: activemq-artemis
Updated Branches:
  refs/heads/master 08e5245c0 -> 74c20ea92


http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/ae70d717/artemis-server/src/test/resources/cert-users-SMALL.properties
----------------------------------------------------------------------
diff --git a/artemis-server/src/test/resources/cert-users-SMALL.properties b/artemis-server/src/test/resources/cert-users-SMALL.properties
new file mode 100644
index 0000000..0a3d16f
--- /dev/null
+++ b/artemis-server/src/test/resources/cert-users-SMALL.properties
@@ -0,0 +1,116 @@
+## ---------------------------------------------------------------------------
+## Licensed to the Apache Software Foundation (ASF) under one or more
+## contributor license agreements.  See the NOTICE file distributed with
+## this work for additional information regarding copyright ownership.
+## The ASF licenses this file to You under the Apache License, Version 2.0
+## (the "License"); you may not use this file except in compliance with
+## the License.  You may obtain a copy of the License at
+##
+## http://www.apache.org/licenses/LICENSE-2.0
+##
+## Unless required by applicable law or agreed to in writing, software
+## distributed under the License is distributed on an "AS IS" BASIS,
+## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+## See the License for the specific language governing permissions and
+## limitations under the License.
+## ---------------------------------------------------------------------------
+1CN=TEST0000001, OU=TEST, O=TEST TEST TEST1 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+2CN=TEST0000001, OU=TEST, O=TEST TEST TEST2 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+3CN=TEST0000001, OU=TEST, O=TEST TEST TEST3 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+4CN=TEST0000001, OU=TEST, O=TEST TEST TEST4 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+5CN=TEST0000001, OU=TEST, O=TEST TEST TEST5 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+6CN=TEST0000001, OU=TEST, O=TEST TEST TEST6 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+7CN=TEST0000001, OU=TEST, O=TEST TEST TEST7 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+8CN=TEST0000001, OU=TEST, O=TEST TEST TEST8 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+9CN=TEST0000001, OU=TEST, O=TEST TEST TEST9 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+10CN=TEST0000001, OU=TEST, O=TEST TEST TEST10 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+11CN=TEST0000001, OU=TEST, O=TEST TEST TEST11 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+12CN=TEST0000001, OU=TEST, O=TEST TEST TEST12 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+13CN=TEST0000001, OU=TEST, O=TEST TEST TEST13 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+14CN=TEST0000001, OU=TEST, O=TEST TEST TEST14 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+15CN=TEST0000001, OU=TEST, O=TEST TEST TEST15 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+16CN=TEST0000001, OU=TEST, O=TEST TEST TEST16 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+17CN=TEST0000001, OU=TEST, O=TEST TEST TEST17 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+18CN=TEST0000001, OU=TEST, O=TEST TEST TEST18 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+19CN=TEST0000001, OU=TEST, O=TEST TEST TEST19 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+20CN=TEST0000001, OU=TEST, O=TEST TEST TEST20 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+21CN=TEST0000001, OU=TEST, O=TEST TEST TEST21 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+22CN=TEST0000001, OU=TEST, O=TEST TEST TEST22 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+23CN=TEST0000001, OU=TEST, O=TEST TEST TEST23 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+24CN=TEST0000001, OU=TEST, O=TEST TEST TEST24 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+25CN=TEST0000001, OU=TEST, O=TEST TEST TEST25 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+26CN=TEST0000001, OU=TEST, O=TEST TEST TEST26 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+27CN=TEST0000001, OU=TEST, O=TEST TEST TEST27 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+28CN=TEST0000001, OU=TEST, O=TEST TEST TEST28 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+29CN=TEST0000001, OU=TEST, O=TEST TEST TEST29 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+30CN=TEST0000001, OU=TEST, O=TEST TEST TEST30 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+31CN=TEST0000001, OU=TEST, O=TEST TEST TEST31 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+32CN=TEST0000001, OU=TEST, O=TEST TEST TEST32 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+33CN=TEST0000001, OU=TEST, O=TEST TEST TEST33 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+34CN=TEST0000001, OU=TEST, O=TEST TEST TEST34 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+35CN=TEST0000001, OU=TEST, O=TEST TEST TEST35 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+36CN=TEST0000001, OU=TEST, O=TEST TEST TEST36 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+37CN=TEST0000001, OU=TEST, O=TEST TEST TEST37 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+38CN=TEST0000001, OU=TEST, O=TEST TEST TEST38 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+39CN=TEST0000001, OU=TEST, O=TEST TEST TEST39 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+40CN=TEST0000001, OU=TEST, O=TEST TEST TEST40 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+41CN=TEST0000001, OU=TEST, O=TEST TEST TEST41 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+42CN=TEST0000001, OU=TEST, O=TEST TEST TEST42 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+43CN=TEST0000001, OU=TEST, O=TEST TEST TEST43 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+44CN=TEST0000001, OU=TEST, O=TEST TEST TEST44 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+45CN=TEST0000001, OU=TEST, O=TEST TEST TEST45 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+46CN=TEST0000001, OU=TEST, O=TEST TEST TEST46 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+47CN=TEST0000001, OU=TEST, O=TEST TEST TEST47 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+48CN=TEST0000001, OU=TEST, O=TEST TEST TEST48 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+49CN=TEST0000001, OU=TEST, O=TEST TEST TEST49 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+50CN=TEST0000001, OU=TEST, O=TEST TEST TEST50 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+51CN=TEST0000001, OU=TEST, O=TEST TEST TEST51 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+52CN=TEST0000001, OU=TEST, O=TEST TEST TEST52 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+53CN=TEST0000001, OU=TEST, O=TEST TEST TEST53 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+54CN=TEST0000001, OU=TEST, O=TEST TEST TEST54 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+55CN=TEST0000001, OU=TEST, O=TEST TEST TEST55 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+56CN=TEST0000001, OU=TEST, O=TEST TEST TEST56 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+57CN=TEST0000001, OU=TEST, O=TEST TEST TEST57 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+58CN=TEST0000001, OU=TEST, O=TEST TEST TEST58 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+59CN=TEST0000001, OU=TEST, O=TEST TEST TEST59 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+60CN=TEST0000001, OU=TEST, O=TEST TEST TEST60 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+61CN=TEST0000001, OU=TEST, O=TEST TEST TEST61 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+62CN=TEST0000001, OU=TEST, O=TEST TEST TEST62 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+63CN=TEST0000001, OU=TEST, O=TEST TEST TEST63 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+64CN=TEST0000001, OU=TEST, O=TEST TEST TEST64 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+65CN=TEST0000001, OU=TEST, O=TEST TEST TEST65 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+66CN=TEST0000001, OU=TEST, O=TEST TEST TEST66 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+67CN=TEST0000001, OU=TEST, O=TEST TEST TEST67 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+68CN=TEST0000001, OU=TEST, O=TEST TEST TEST68 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+69CN=TEST0000001, OU=TEST, O=TEST TEST TEST69 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+70CN=TEST0000001, OU=TEST, O=TEST TEST TEST70 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+71CN=TEST0000001, OU=TEST, O=TEST TEST TEST71 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+72CN=TEST0000001, OU=TEST, O=TEST TEST TEST72 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+73CN=TEST0000001, OU=TEST, O=TEST TEST TEST73 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+74CN=TEST0000001, OU=TEST, O=TEST TEST TEST74 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+75CN=TEST0000001, OU=TEST, O=TEST TEST TEST75 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+76CN=TEST0000001, OU=TEST, O=TEST TEST TEST76 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+77CN=TEST0000001, OU=TEST, O=TEST TEST TEST77 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+78CN=TEST0000001, OU=TEST, O=TEST TEST TEST78 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+79CN=TEST0000001, OU=TEST, O=TEST TEST TEST79 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+80CN=TEST0000001, OU=TEST, O=TEST TEST TEST80 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+81CN=TEST0000001, OU=TEST, O=TEST TEST TEST81 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+82CN=TEST0000001, OU=TEST, O=TEST TEST TEST82 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+83CN=TEST0000001, OU=TEST, O=TEST TEST TEST83 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+84CN=TEST0000001, OU=TEST, O=TEST TEST TEST84 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+85CN=TEST0000001, OU=TEST, O=TEST TEST TEST85 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+86CN=TEST0000001, OU=TEST, O=TEST TEST TEST86 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+87CN=TEST0000001, OU=TEST, O=TEST TEST TEST87 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+88CN=TEST0000001, OU=TEST, O=TEST TEST TEST88 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+89CN=TEST0000001, OU=TEST, O=TEST TEST TEST89 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+90CN=TEST0000001, OU=TEST, O=TEST TEST TEST90 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+10001CN=DN=TEST_USER_1
+10002CN=DN=TEST_USER_2
+10003CN=DN=TEST_USER_3
+10004CN=DN=TEST_USER_4
+10005CN=DN=TEST_USER_5
+10006CN=DN=TEST_USER_6
+10007CN=DN=TEST_USER_7
+10008CN=DN=TEST_USER_8
+10009CN=DN=TEST_USER_9
+10010CN=DN=TEST_USER_10


[3/4] activemq-artemis git commit: ARTEMIS-299 file-based login module performance

Posted by cl...@apache.org.
ARTEMIS-299 file-based login module performance

This is based on improvements made in ActiveMQ 5.x. See more at
https://issues.apache.org/jira/browse/AMQ-5876.


Project: http://git-wip-us.apache.org/repos/asf/activemq-artemis/repo
Commit: http://git-wip-us.apache.org/repos/asf/activemq-artemis/commit/ae70d717
Tree: http://git-wip-us.apache.org/repos/asf/activemq-artemis/tree/ae70d717
Diff: http://git-wip-us.apache.org/repos/asf/activemq-artemis/diff/ae70d717

Branch: refs/heads/master
Commit: ae70d7178e201dff5b13ac9c6cb63146d29fc4b9
Parents: 08e5245
Author: jbertram <jb...@apache.org>
Authored: Wed Nov 4 16:38:40 2015 -0600
Committer: jbertram <jb...@apache.org>
Committed: Thu Nov 5 10:10:49 2015 -0600

----------------------------------------------------------------------
 .../security/jaas/CertificateLoginModule.java   |      9 +-
 .../core/security/jaas/PrincipalProperties.java |     75 -
 .../core/security/jaas/PropertiesLoader.java    |    137 +
 .../security/jaas/PropertiesLoginModule.java    |     86 +-
 .../security/jaas/ReloadableProperties.java     |     99 +
 .../jaas/TextFileCertificateLoginModule.java    |     62 +-
 .../PropertiesLoginModuleRaceConditionTest.java |      3 +-
 .../core/security/jaas/StubX509Certificate.java |    137 +
 .../TextFileCertificateLoginModuleTest.java     |    123 +
 .../src/test/resources/cert-roles.properties    |     16 +
 .../test/resources/cert-users-LARGE.properties  | 200026 ++++++++++++++++
 .../test/resources/cert-users-SMALL.properties  |    116 +
 12 files changed, 200682 insertions(+), 207 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/ae70d717/artemis-server/src/main/java/org/apache/activemq/artemis/spi/core/security/jaas/CertificateLoginModule.java
----------------------------------------------------------------------
diff --git a/artemis-server/src/main/java/org/apache/activemq/artemis/spi/core/security/jaas/CertificateLoginModule.java b/artemis-server/src/main/java/org/apache/activemq/artemis/spi/core/security/jaas/CertificateLoginModule.java
index fbacb31..20d107e 100644
--- a/artemis-server/src/main/java/org/apache/activemq/artemis/spi/core/security/jaas/CertificateLoginModule.java
+++ b/artemis-server/src/main/java/org/apache/activemq/artemis/spi/core/security/jaas/CertificateLoginModule.java
@@ -37,7 +37,7 @@ import org.apache.activemq.artemis.core.server.ActiveMQServerLogger;
  * Allows for subclasses to define methods used to verify user certificates and
  * find user roles. Uses CertificateCallbacks to retrieve certificates.
  */
-public abstract class CertificateLoginModule implements LoginModule {
+public abstract class CertificateLoginModule extends PropertiesLoader implements LoginModule {
 
    private CallbackHandler callbackHandler;
    private Subject subject;
@@ -46,7 +46,6 @@ public abstract class CertificateLoginModule implements LoginModule {
    private String username;
    private Set<String> roles;
    private Set<Principal> principals = new HashSet<Principal>();
-   private boolean debug;
 
    /**
     * Overriding to allow for proper initialization. Standard JAAS.
@@ -56,11 +55,7 @@ public abstract class CertificateLoginModule implements LoginModule {
       this.subject = subject;
       this.callbackHandler = callbackHandler;
 
-      debug = "true".equalsIgnoreCase((String) options.get("debug"));
-
-      if (debug) {
-         ActiveMQServerLogger.LOGGER.debug("Initialized debug");
-      }
+      init(options);
    }
 
    /**

http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/ae70d717/artemis-server/src/main/java/org/apache/activemq/artemis/spi/core/security/jaas/PrincipalProperties.java
----------------------------------------------------------------------
diff --git a/artemis-server/src/main/java/org/apache/activemq/artemis/spi/core/security/jaas/PrincipalProperties.java b/artemis-server/src/main/java/org/apache/activemq/artemis/spi/core/security/jaas/PrincipalProperties.java
deleted file mode 100644
index 97e2355..0000000
--- a/artemis-server/src/main/java/org/apache/activemq/artemis/spi/core/security/jaas/PrincipalProperties.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.activemq.artemis.spi.core.security.jaas;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.util.Map;
-import java.util.Properties;
-import java.util.Set;
-
-import org.apache.activemq.artemis.core.server.ActiveMQServerLogger;
-
-class PrincipalProperties {
-
-   private final Properties principals;
-   private final long reloadTime;
-
-   PrincipalProperties(final String type, final File source, final ActiveMQServerLogger log) {
-      Properties props = new Properties();
-      long reloadTime = 0;
-      try {
-         load(source, props);
-         reloadTime = System.currentTimeMillis();
-      }
-      catch (IOException ioe) {
-         ioe.printStackTrace();
-         log.warn("Unable to load " + type + " properties file " + source);
-      }
-      this.reloadTime = reloadTime;
-      this.principals = props;
-   }
-
-   @SuppressWarnings({"unchecked", "rawtypes"})
-   Set<Map.Entry<String, String>> entries() {
-      return (Set) principals.entrySet();
-   }
-
-   String getProperty(String name) {
-      return principals.getProperty(name);
-   }
-
-   long getReloadTime() {
-      return reloadTime;
-   }
-
-   private void load(final File source, Properties props) throws FileNotFoundException, IOException {
-      FileInputStream in = new FileInputStream(source);
-      try {
-         props.load(in);
-      }
-      finally {
-         in.close();
-      }
-   }
-
-   Properties getPrincipals() {
-      return principals;
-   }
-}

http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/ae70d717/artemis-server/src/main/java/org/apache/activemq/artemis/spi/core/security/jaas/PropertiesLoader.java
----------------------------------------------------------------------
diff --git a/artemis-server/src/main/java/org/apache/activemq/artemis/spi/core/security/jaas/PropertiesLoader.java b/artemis-server/src/main/java/org/apache/activemq/artemis/spi/core/security/jaas/PropertiesLoader.java
new file mode 100644
index 0000000..89b80db
--- /dev/null
+++ b/artemis-server/src/main/java/org/apache/activemq/artemis/spi/core/security/jaas/PropertiesLoader.java
@@ -0,0 +1,137 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.activemq.artemis.spi.core.security.jaas;
+
+import java.io.File;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.activemq.artemis.core.server.ActiveMQServerLogger;
+
+public class PropertiesLoader {
+
+   static Map<FileNameKey, ReloadableProperties> staticCache = new HashMap<FileNameKey, ReloadableProperties>();
+   protected boolean debug;
+
+   public void init(Map options) {
+      debug = booleanOption("debug", options);
+      if (debug) {
+         ActiveMQServerLogger.LOGGER.debug("Initialized debug");
+      }
+   }
+
+   public ReloadableProperties load(String nameProperty, String fallbackName, Map options) {
+      ReloadableProperties result;
+      FileNameKey key = new FileNameKey(nameProperty, fallbackName, options);
+      key.setDebug(debug);
+
+      synchronized (staticCache) {
+         result = staticCache.get(key);
+         if (result == null) {
+            result = new ReloadableProperties(key);
+            staticCache.put(key, result);
+         }
+      }
+
+      return result.obtained();
+   }
+
+   private static boolean booleanOption(String name, Map options) {
+      return Boolean.parseBoolean((String) options.get(name));
+   }
+
+   public class FileNameKey {
+
+      final File file;
+      final String absPath;
+      final boolean reload;
+      private boolean decrypt;
+      private boolean debug;
+
+      public FileNameKey(String nameProperty, String fallbackName, Map options) {
+         this.file = new File(baseDir(options), stringOption(nameProperty, fallbackName, options));
+         absPath = file.getAbsolutePath();
+         reload = booleanOption("reload", options);
+         decrypt = booleanOption("decrypt", options);
+      }
+
+      @Override
+      public boolean equals(Object other) {
+         return other instanceof FileNameKey && this.absPath.equals(((FileNameKey) other).absPath);
+      }
+
+      public int hashCode() {
+         return this.absPath.hashCode();
+      }
+
+      public boolean isReload() {
+         return reload;
+      }
+
+      public File file() {
+         return file;
+      }
+
+      public boolean isDecrypt() {
+         return decrypt;
+      }
+
+      public void setDecrypt(boolean decrypt) {
+         this.decrypt = decrypt;
+      }
+
+      private String stringOption(String key, String nameDefault, Map options) {
+         Object result = options.get(key);
+         return result != null ? result.toString() : nameDefault;
+      }
+
+      private File baseDir(Map options) {
+         File baseDir = null;
+         if (options.get("baseDir") != null) {
+            baseDir = new File((String) options.get("baseDir"));
+         }
+         else {
+            if (System.getProperty("java.security.auth.login.config") != null) {
+               baseDir = new File(System.getProperty("java.security.auth.login.config")).getParentFile();
+            }
+         }
+         if (debug) {
+            ActiveMQServerLogger.LOGGER.debug("Using basedir=" + baseDir.getAbsolutePath());
+         }
+         return baseDir;
+      }
+
+      public String toString() {
+         return "PropsFile=" + absPath;
+      }
+
+      public void setDebug(boolean debug) {
+         this.debug = debug;
+      }
+
+      public boolean isDebug() {
+         return debug;
+      }
+   }
+
+   /**
+    * For test-usage only.
+    */
+   public static void resetUsersAndGroupsCache() {
+      staticCache.clear();
+   }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/ae70d717/artemis-server/src/main/java/org/apache/activemq/artemis/spi/core/security/jaas/PropertiesLoginModule.java
----------------------------------------------------------------------
diff --git a/artemis-server/src/main/java/org/apache/activemq/artemis/spi/core/security/jaas/PropertiesLoginModule.java b/artemis-server/src/main/java/org/apache/activemq/artemis/spi/core/security/jaas/PropertiesLoginModule.java
index 6b96ed0..0a75a24 100644
--- a/artemis-server/src/main/java/org/apache/activemq/artemis/spi/core/security/jaas/PropertiesLoginModule.java
+++ b/artemis-server/src/main/java/org/apache/activemq/artemis/spi/core/security/jaas/PropertiesLoginModule.java
@@ -25,87 +25,41 @@ import javax.security.auth.callback.UnsupportedCallbackException;
 import javax.security.auth.login.FailedLoginException;
 import javax.security.auth.login.LoginException;
 import javax.security.auth.spi.LoginModule;
-import java.io.File;
 import java.io.IOException;
 import java.security.Principal;
 import java.util.HashSet;
 import java.util.Map;
+import java.util.Properties;
 import java.util.Set;
 
 import org.apache.activemq.artemis.core.server.ActiveMQServerLogger;
 
-public class PropertiesLoginModule implements LoginModule {
+public class PropertiesLoginModule extends PropertiesLoader implements LoginModule {
 
-   private static final String USER_FILE = "org.apache.activemq.jaas.properties.user";
-   private static final String GROUP_FILE = "org.apache.activemq.jaas.properties.role";
+   private static final String USER_FILE_PROP_NAME = "org.apache.activemq.jaas.properties.user";
+   private static final String ROLE_FILE_PROP_NAME = "org.apache.activemq.jaas.properties.role";
 
    private Subject subject;
    private CallbackHandler callbackHandler;
 
-   private boolean debug;
-   private boolean reload = false;
-   private static volatile PrincipalProperties users;
-   private static volatile PrincipalProperties roles;
+   private Properties users;
+   private Properties roles;
    private String user;
    private final Set<Principal> principals = new HashSet<Principal>();
-   private File baseDir;
    private boolean loginSucceeded;
-   //    private boolean decrypt = true;
 
    @Override
-   public void initialize(Subject subject, CallbackHandler callbackHandler, Map sharedState, Map options) {
+   public void initialize(Subject subject,
+                          CallbackHandler callbackHandler,
+                          Map sharedState,
+                          Map options) {
       this.subject = subject;
       this.callbackHandler = callbackHandler;
       loginSucceeded = false;
 
-      debug = "true".equalsIgnoreCase((String) options.get("debug"));
-      if (options.get("reload") != null) {
-         reload = "true".equalsIgnoreCase((String) options.get("reload"));
-      }
-
-      if (options.get("baseDir") != null) {
-         baseDir = new File((String) options.get("baseDir"));
-      }
-
-      setBaseDir();
-      String usersFile = options.get(USER_FILE) + "";
-      File uf = baseDir != null ? new File(baseDir, usersFile) : new File(usersFile);
-
-      if (reload || users == null || uf.lastModified() > users.getReloadTime()) {
-         if (debug) {
-            ActiveMQServerLogger.LOGGER.debug("Reloading users from " + uf.getAbsolutePath());
-         }
-         users = new PrincipalProperties("user", uf, ActiveMQServerLogger.LOGGER);
-         //            if( decrypt ) {
-         //                try {
-         //                    EncryptionSupport.decrypt(users.getPrincipals());
-         //                } catch(NoClassDefFoundError e) {
-         //                    // this Happens whe jasypt is not on the classpath..
-         //                    decrypt = false;
-         //                    ActiveMQServerLogger.LOGGER.info("jasypt is not on the classpath: password decryption disabled.");
-         //                }
-         //            }
-      }
-
-      String groupsFile = options.get(GROUP_FILE) + "";
-      File gf = baseDir != null ? new File(baseDir, groupsFile) : new File(groupsFile);
-      if (reload || roles == null || gf.lastModified() > roles.getReloadTime()) {
-         if (debug) {
-            ActiveMQServerLogger.LOGGER.debug("Reloading roles from " + gf.getAbsolutePath());
-         }
-         roles = new PrincipalProperties("role", gf, ActiveMQServerLogger.LOGGER);
-      }
-   }
-
-   private void setBaseDir() {
-      if (baseDir == null) {
-         if (System.getProperty("java.security.auth.login.config") != null) {
-            baseDir = new File(System.getProperty("java.security.auth.login.config")).getParentFile();
-            if (debug) {
-               ActiveMQServerLogger.LOGGER.debug("Using basedir=" + baseDir.getAbsolutePath());
-            }
-         }
-      }
+      init(options);
+      users = load(USER_FILE_PROP_NAME, "user", options).getProps();
+      roles = load(ROLE_FILE_PROP_NAME, "role", options).getProps();
    }
 
    @Override
@@ -153,12 +107,12 @@ public class PropertiesLoginModule implements LoginModule {
       if (result) {
          principals.add(new UserPrincipal(user));
 
-         for (Map.Entry<String, String> entry : roles.entries()) {
-            String name = entry.getKey();
+         for (Map.Entry<Object, Object> entry : roles.entrySet()) {
+            String name = (String) entry.getKey();
+            String[] userList = ((String) entry.getValue()).split(",");
             if (debug) {
                ActiveMQServerLogger.LOGGER.debug("Inspecting role '" + name + "' with user(s): " + entry.getValue());
             }
-            String[] userList = entry.getValue().split(",");
             for (int i = 0; i < userList.length; i++) {
                if (user.equals(userList[i])) {
                   principals.add(new RolePrincipal(name));
@@ -204,12 +158,4 @@ public class PropertiesLoginModule implements LoginModule {
       user = null;
       loginSucceeded = false;
    }
-
-   /**
-    * For test-usage only.
-    */
-   public static void resetUsersAndGroupsCache() {
-      users = null;
-      roles = null;
-   }
 }

http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/ae70d717/artemis-server/src/main/java/org/apache/activemq/artemis/spi/core/security/jaas/ReloadableProperties.java
----------------------------------------------------------------------
diff --git a/artemis-server/src/main/java/org/apache/activemq/artemis/spi/core/security/jaas/ReloadableProperties.java b/artemis-server/src/main/java/org/apache/activemq/artemis/spi/core/security/jaas/ReloadableProperties.java
new file mode 100644
index 0000000..46d10a5
--- /dev/null
+++ b/artemis-server/src/main/java/org/apache/activemq/artemis/spi/core/security/jaas/ReloadableProperties.java
@@ -0,0 +1,99 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.activemq.artemis.spi.core.security.jaas;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Properties;
+
+import org.apache.activemq.artemis.core.server.ActiveMQServerLogger;
+
+public class ReloadableProperties {
+
+   private Properties props = new Properties();
+   private Map<String, String> invertedProps;
+   private long reloadTime = -1;
+   private final PropertiesLoader.FileNameKey key;
+
+   public ReloadableProperties(PropertiesLoader.FileNameKey key) {
+      this.key = key;
+   }
+
+   public synchronized Properties getProps() {
+      return props;
+   }
+
+   public synchronized ReloadableProperties obtained() {
+      if (reloadTime < 0 || (key.isReload() && hasModificationAfter(reloadTime))) {
+         props = new Properties();
+         try {
+            load(key.file(), props);
+            invertedProps = null;
+            if (key.isDebug()) {
+               ActiveMQServerLogger.LOGGER.debug("Load of: " + key);
+            }
+         }
+         catch (IOException e) {
+            ActiveMQServerLogger.LOGGER.error("Failed to load: " + key + ", reason:" + e.getLocalizedMessage());
+            if (key.isDebug()) {
+               ActiveMQServerLogger.LOGGER.debug("Load of: " + key + ", failure exception" + e);
+            }
+         }
+         reloadTime = System.currentTimeMillis();
+      }
+      return this;
+   }
+
+   public synchronized Map<String, String> invertedPropertiesMap() {
+      if (invertedProps == null) {
+         invertedProps = new HashMap<>(props.size());
+         for (Map.Entry<Object, Object> val : props.entrySet()) {
+            invertedProps.put((String) val.getValue(), (String) val.getKey());
+         }
+      }
+      return invertedProps;
+   }
+
+   private void load(final File source,
+                     Properties props) throws IOException {
+      FileInputStream in = new FileInputStream(source);
+      try {
+         props.load(in);
+         //            if (key.isDecrypt()) {
+         //                try {
+         //                    EncryptionSupport.decrypt(this.props);
+         //                } catch (NoClassDefFoundError e) {
+         //                    // this Happens whe jasypt is not on the classpath..
+         //                    key.setDecrypt(false);
+         //                    ActiveMQServerLogger.LOGGER.info("jasypt is not on the classpath: password decryption disabled.");
+         //                }
+         //            }
+
+      }
+      finally {
+         in.close();
+      }
+   }
+
+   private boolean hasModificationAfter(long reloadTime) {
+      return key.file.lastModified() > reloadTime;
+   }
+
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/ae70d717/artemis-server/src/main/java/org/apache/activemq/artemis/spi/core/security/jaas/TextFileCertificateLoginModule.java
----------------------------------------------------------------------
diff --git a/artemis-server/src/main/java/org/apache/activemq/artemis/spi/core/security/jaas/TextFileCertificateLoginModule.java b/artemis-server/src/main/java/org/apache/activemq/artemis/spi/core/security/jaas/TextFileCertificateLoginModule.java
index 68639db..b1e4ba7 100644
--- a/artemis-server/src/main/java/org/apache/activemq/artemis/spi/core/security/jaas/TextFileCertificateLoginModule.java
+++ b/artemis-server/src/main/java/org/apache/activemq/artemis/spi/core/security/jaas/TextFileCertificateLoginModule.java
@@ -20,8 +20,6 @@ import javax.security.auth.Subject;
 import javax.security.auth.callback.CallbackHandler;
 import javax.security.auth.login.LoginException;
 import javax.security.cert.X509Certificate;
-import java.io.File;
-import java.io.IOException;
 import java.util.Enumeration;
 import java.util.HashSet;
 import java.util.Map;
@@ -37,16 +35,15 @@ import java.util.Set;
  * org.apache.activemq.jaas.textfiledn.user and
  * org.apache.activemq.jaas.textfiledn.role properties respectively. NOTE: This
  * class will re-read user and group files for every authentication (i.e it does
- * live updates of allowed groups and users).
+ * live updates of allowed roles and users).
  */
 public class TextFileCertificateLoginModule extends CertificateLoginModule {
 
-   private static final String USER_FILE = "org.apache.activemq.jaas.textfiledn.user";
-   private static final String ROLE_FILE = "org.apache.activemq.jaas.textfiledn.role";
+   private static final String USER_FILE_PROP_NAME = "org.apache.activemq.jaas.textfiledn.user";
+   private static final String ROLE_FILE_PROP_NAME = "org.apache.activemq.jaas.textfiledn.role";
 
-   private File baseDir;
-   private String usersFilePathname;
-   private String rolesFilePathname;
+   private Properties roles;
+   private Map<String, String> usersByDn;
 
    /**
     * Performs initialization of file paths. A standard JAAS override.
@@ -54,15 +51,8 @@ public class TextFileCertificateLoginModule extends CertificateLoginModule {
    @Override
    public void initialize(Subject subject, CallbackHandler callbackHandler, Map sharedState, Map options) {
       super.initialize(subject, callbackHandler, sharedState, options);
-      if (System.getProperty("java.security.auth.login.config") != null) {
-         baseDir = new File(System.getProperty("java.security.auth.login.config")).getParentFile();
-      }
-      else {
-         baseDir = new File(".");
-      }
-
-      usersFilePathname = options.get(USER_FILE) + "";
-      rolesFilePathname = options.get(ROLE_FILE) + "";
+      usersByDn = load(USER_FILE_PROP_NAME, "", options).invertedPropertiesMap();
+      roles = load(ROLE_FILE_PROP_NAME, "", options).getProps();
    }
 
    /**
@@ -81,32 +71,7 @@ public class TextFileCertificateLoginModule extends CertificateLoginModule {
          throw new LoginException("Client certificates not found. Cannot authenticate.");
       }
 
-      File usersFile = new File(baseDir, usersFilePathname);
-
-      Properties users = new Properties();
-
-      try {
-         java.io.FileInputStream in = new java.io.FileInputStream(usersFile);
-         users.load(in);
-         in.close();
-      }
-      catch (IOException ioe) {
-         throw new LoginException("Unable to load user properties file " + usersFile);
-      }
-
-      String dn = getDistinguishedName(certs);
-
-      Enumeration<Object> keys = users.keys();
-      for (Enumeration<Object> vals = users.elements(); vals.hasMoreElements(); ) {
-         if (vals.nextElement().equals(dn)) {
-            return (String) keys.nextElement();
-         }
-         else {
-            keys.nextElement();
-         }
-      }
-
-      return null;
+      return usersByDn.get(getDistinguishedName(certs));
    }
 
    /**
@@ -119,17 +84,6 @@ public class TextFileCertificateLoginModule extends CertificateLoginModule {
     */
    @Override
    protected Set<String> getUserRoles(String username) throws LoginException {
-      File rolesFile = new File(baseDir, rolesFilePathname);
-
-      Properties roles = new Properties();
-      try {
-         java.io.FileInputStream in = new java.io.FileInputStream(rolesFile);
-         roles.load(in);
-         in.close();
-      }
-      catch (IOException ioe) {
-         throw new LoginException("Unable to load role properties file " + rolesFile);
-      }
       Set<String> userRoles = new HashSet<String>();
       for (Enumeration<Object> enumeration = roles.keys(); enumeration.hasMoreElements(); ) {
          String groupName = (String) enumeration.nextElement();

http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/ae70d717/artemis-server/src/test/java/org/apache/activemq/artemis/core/security/jaas/PropertiesLoginModuleRaceConditionTest.java
----------------------------------------------------------------------
diff --git a/artemis-server/src/test/java/org/apache/activemq/artemis/core/security/jaas/PropertiesLoginModuleRaceConditionTest.java b/artemis-server/src/test/java/org/apache/activemq/artemis/core/security/jaas/PropertiesLoginModuleRaceConditionTest.java
index eb71c4c..13907f8 100644
--- a/artemis-server/src/test/java/org/apache/activemq/artemis/core/security/jaas/PropertiesLoginModuleRaceConditionTest.java
+++ b/artemis-server/src/test/java/org/apache/activemq/artemis/core/security/jaas/PropertiesLoginModuleRaceConditionTest.java
@@ -33,6 +33,7 @@ import java.util.concurrent.Executors;
 import java.util.concurrent.TimeUnit;
 
 import org.apache.activemq.artemis.spi.core.security.jaas.JaasCallbackHandler;
+import org.apache.activemq.artemis.spi.core.security.jaas.PropertiesLoader;
 import org.apache.activemq.artemis.spi.core.security.jaas.PropertiesLoginModule;
 import org.junit.After;
 import org.junit.Before;
@@ -126,7 +127,7 @@ public class PropertiesLoginModuleRaceConditionTest {
    public void after() throws InterruptedException {
       pool.shutdown();
       assertTrue(pool.awaitTermination(500, TimeUnit.SECONDS));
-      PropertiesLoginModule.resetUsersAndGroupsCache();
+      PropertiesLoader.resetUsersAndGroupsCache();
    }
 
    @Test

http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/ae70d717/artemis-server/src/test/java/org/apache/activemq/artemis/core/security/jaas/StubX509Certificate.java
----------------------------------------------------------------------
diff --git a/artemis-server/src/test/java/org/apache/activemq/artemis/core/security/jaas/StubX509Certificate.java b/artemis-server/src/test/java/org/apache/activemq/artemis/core/security/jaas/StubX509Certificate.java
new file mode 100644
index 0000000..72295f1
--- /dev/null
+++ b/artemis-server/src/test/java/org/apache/activemq/artemis/core/security/jaas/StubX509Certificate.java
@@ -0,0 +1,137 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.activemq.artemis.core.security.jaas;
+
+import javax.security.cert.X509Certificate;
+import java.math.BigInteger;
+import java.security.Principal;
+import java.security.PublicKey;
+import java.util.Date;
+import java.util.Set;
+
+public class StubX509Certificate extends X509Certificate {
+
+   private final Principal id;
+
+   public StubX509Certificate(Principal id) {
+      this.id = id;
+   }
+
+   public Principal getSubjectDN() {
+      return this.id;
+   }
+
+   // --- Stubbed Methods ---
+   public void checkValidity() {
+   }
+
+   public void checkValidity(Date arg0) {
+   }
+
+   public int getVersion() {
+      return 0;
+   }
+
+   public BigInteger getSerialNumber() {
+      return null;
+   }
+
+   public Principal getIssuerDN() {
+      return null;
+   }
+
+   public Date getNotBefore() {
+      return null;
+   }
+
+   public Date getNotAfter() {
+      return null;
+   }
+
+   public byte[] getTBSCertificate() {
+      return null;
+   }
+
+   public byte[] getSignature() {
+      return null;
+   }
+
+   public String getSigAlgName() {
+      return null;
+   }
+
+   public String getSigAlgOID() {
+      return null;
+   }
+
+   public byte[] getSigAlgParams() {
+      return null;
+   }
+
+   public boolean[] getIssuerUniqueID() {
+      return null;
+   }
+
+   public boolean[] getSubjectUniqueID() {
+      return null;
+   }
+
+   public boolean[] getKeyUsage() {
+      return null;
+   }
+
+   public int getBasicConstraints() {
+      return 0;
+   }
+
+   public byte[] getEncoded() {
+      return null;
+   }
+
+   public void verify(PublicKey arg0) {
+   }
+
+   public void verify(PublicKey arg0, String arg1) {
+   }
+
+   public String toString() {
+      return null;
+   }
+
+   public PublicKey getPublicKey() {
+      return null;
+   }
+
+   public boolean hasUnsupportedCriticalExtension() {
+      return false;
+   }
+
+   @SuppressWarnings({"unchecked", "rawtypes"})
+   public Set getCriticalExtensionOIDs() {
+      return null;
+   }
+
+   @SuppressWarnings({"unchecked", "rawtypes"})
+   public Set getNonCriticalExtensionOIDs() {
+      return null;
+   }
+
+   public byte[] getExtensionValue(String arg0) {
+      return null;
+   }
+
+}

http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/ae70d717/artemis-server/src/test/java/org/apache/activemq/artemis/core/security/jaas/TextFileCertificateLoginModuleTest.java
----------------------------------------------------------------------
diff --git a/artemis-server/src/test/java/org/apache/activemq/artemis/core/security/jaas/TextFileCertificateLoginModuleTest.java b/artemis-server/src/test/java/org/apache/activemq/artemis/core/security/jaas/TextFileCertificateLoginModuleTest.java
new file mode 100644
index 0000000..0eb736c
--- /dev/null
+++ b/artemis-server/src/test/java/org/apache/activemq/artemis/core/security/jaas/TextFileCertificateLoginModuleTest.java
@@ -0,0 +1,123 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.activemq.artemis.core.security.jaas;
+
+import javax.management.remote.JMXPrincipal;
+import javax.security.auth.Subject;
+import javax.security.auth.login.LoginException;
+import javax.security.cert.X509Certificate;
+import java.net.URL;
+import java.util.HashMap;
+
+import org.apache.activemq.artemis.core.server.ActiveMQServerLogger;
+import org.apache.activemq.artemis.spi.core.security.jaas.CertificateLoginModule;
+import org.apache.activemq.artemis.spi.core.security.jaas.JaasCallbackHandler;
+import org.apache.activemq.artemis.spi.core.security.jaas.PropertiesLoader;
+import org.apache.activemq.artemis.spi.core.security.jaas.TextFileCertificateLoginModule;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+public class TextFileCertificateLoginModuleTest {
+
+   private static final String CERT_USERS_FILE_SMALL = "cert-users-SMALL.properties";
+   private static final String CERT_USERS_FILE_LARGE = "cert-users-LARGE.properties";
+   private static final String CERT_GROUPS_FILE = "cert-roles.properties";
+
+   private static final int NUMBER_SUBJECTS = 10;
+
+   static {
+      String path = System.getProperty("java.security.auth.login.config");
+      if (path == null) {
+         URL resource = TextFileCertificateLoginModuleTest.class.getClassLoader().getResource("login.config");
+         if (resource != null) {
+            path = resource.getFile();
+            System.setProperty("java.security.auth.login.config", path);
+         }
+      }
+   }
+
+   private CertificateLoginModule loginModule;
+
+   @Before
+   public void setUp() throws Exception {
+      loginModule = new TextFileCertificateLoginModule();
+   }
+
+   @After
+   public void tearDown() throws Exception {
+      PropertiesLoader.resetUsersAndGroupsCache();
+   }
+
+   @Test
+   public void testLoginWithSMALLUsersFile() throws Exception {
+      loginTest(CERT_USERS_FILE_SMALL, CERT_GROUPS_FILE);
+   }
+
+   @Test
+   public void testLoginWithLARGEUsersFile() throws Exception {
+      loginTest(CERT_USERS_FILE_LARGE, CERT_GROUPS_FILE);
+   }
+
+   private void loginTest(String usersFiles, String groupsFile) throws LoginException {
+
+      HashMap options = new HashMap<String, String>();
+      options.put("org.apache.activemq.jaas.textfiledn.user", usersFiles);
+      options.put("org.apache.activemq.jaas.textfiledn.role", groupsFile);
+      options.put("reload", "true");
+
+      JaasCallbackHandler[] callbackHandlers = new JaasCallbackHandler[NUMBER_SUBJECTS];
+      Subject[] subjects = new Subject[NUMBER_SUBJECTS];
+
+      for (int i = 0; i < callbackHandlers.length; i++) {
+         callbackHandlers[i] = getJaasCertificateCallbackHandler("DN=TEST_USER_" + (i + 1));
+      }
+
+      long startTime = System.currentTimeMillis();
+
+      for (int outer = 0; outer < 500; outer++) {
+         for (int i = 0; i < NUMBER_SUBJECTS; i++) {
+            Subject subject = doAuthenticate(options, callbackHandlers[i]);
+            subjects[i] = subject;
+         }
+      }
+
+      long endTime = System.currentTimeMillis();
+      long timeTaken = endTime - startTime;
+
+      for (int i = 0; i < NUMBER_SUBJECTS; i++) {
+         ActiveMQServerLogger.LOGGER.info("subject is: " + subjects[i].getPrincipals().toString());
+      }
+
+      ActiveMQServerLogger.LOGGER.info(usersFiles + ": Time taken is " + timeTaken);
+
+   }
+
+   private JaasCallbackHandler getJaasCertificateCallbackHandler(String user) {
+      JMXPrincipal principal = new JMXPrincipal(user);
+      X509Certificate cert = new StubX509Certificate(principal);
+      return new JaasCallbackHandler(null, null, new X509Certificate[]{cert});
+   }
+
+   private Subject doAuthenticate(HashMap options, JaasCallbackHandler callbackHandler) throws LoginException {
+      Subject mySubject = new Subject();
+      loginModule.initialize(mySubject, callbackHandler, null, options);
+      loginModule.login();
+      loginModule.commit();
+      return mySubject;
+   }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/ae70d717/artemis-server/src/test/resources/cert-roles.properties
----------------------------------------------------------------------
diff --git a/artemis-server/src/test/resources/cert-roles.properties b/artemis-server/src/test/resources/cert-roles.properties
new file mode 100644
index 0000000..aab571c
--- /dev/null
+++ b/artemis-server/src/test/resources/cert-roles.properties
@@ -0,0 +1,16 @@
+## ---------------------------------------------------------------------------
+## Licensed to the Apache Software Foundation (ASF) under one or more
+## contributor license agreements.  See the NOTICE file distributed with
+## this work for additional information regarding copyright ownership.
+## The ASF licenses this file to You under the Apache License, Version 2.0
+## (the "License"); you may not use this file except in compliance with
+## the License.  You may obtain a copy of the License at
+##
+## http://www.apache.org/licenses/LICENSE-2.0
+##
+## Unless required by applicable law or agreed to in writing, software
+## distributed under the License is distributed on an "AS IS" BASIS,
+## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+## See the License for the specific language governing permissions and
+## limitations under the License.
+## ---------------------------------------------------------------------------


[2/4] activemq-artemis git commit: ARTEMIS-299 file-based login module performance

Posted by cl...@apache.org.
http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/ae70d717/artemis-server/src/test/resources/cert-users-LARGE.properties
----------------------------------------------------------------------
diff --git a/artemis-server/src/test/resources/cert-users-LARGE.properties b/artemis-server/src/test/resources/cert-users-LARGE.properties
new file mode 100644
index 0000000..8696910
--- /dev/null
+++ b/artemis-server/src/test/resources/cert-users-LARGE.properties
@@ -0,0 +1,200026 @@
+## ---------------------------------------------------------------------------
+## Licensed to the Apache Software Foundation (ASF) under one or more
+## contributor license agreements.  See the NOTICE file distributed with
+## this work for additional information regarding copyright ownership.
+## The ASF licenses this file to You under the Apache License, Version 2.0
+## (the "License"); you may not use this file except in compliance with
+## the License.  You may obtain a copy of the License at
+##
+## http://www.apache.org/licenses/LICENSE-2.0
+##
+## Unless required by applicable law or agreed to in writing, software
+## distributed under the License is distributed on an "AS IS" BASIS,
+## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+## See the License for the specific language governing permissions and
+## limitations under the License.
+## ---------------------------------------------------------------------------
+1CN=TEST0000001, OU=TEST, O=TEST TEST TEST1 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+2CN=TEST0000001, OU=TEST, O=TEST TEST TEST2 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+3CN=TEST0000001, OU=TEST, O=TEST TEST TEST3 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+4CN=TEST0000001, OU=TEST, O=TEST TEST TEST4 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+5CN=TEST0000001, OU=TEST, O=TEST TEST TEST5 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+6CN=TEST0000001, OU=TEST, O=TEST TEST TEST6 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+7CN=TEST0000001, OU=TEST, O=TEST TEST TEST7 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+8CN=TEST0000001, OU=TEST, O=TEST TEST TEST8 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+9CN=TEST0000001, OU=TEST, O=TEST TEST TEST9 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+10CN=TEST0000001, OU=TEST, O=TEST TEST TEST10 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+11CN=TEST0000001, OU=TEST, O=TEST TEST TEST11 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+12CN=TEST0000001, OU=TEST, O=TEST TEST TEST12 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+13CN=TEST0000001, OU=TEST, O=TEST TEST TEST13 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+14CN=TEST0000001, OU=TEST, O=TEST TEST TEST14 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+15CN=TEST0000001, OU=TEST, O=TEST TEST TEST15 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+16CN=TEST0000001, OU=TEST, O=TEST TEST TEST16 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+17CN=TEST0000001, OU=TEST, O=TEST TEST TEST17 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+18CN=TEST0000001, OU=TEST, O=TEST TEST TEST18 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+19CN=TEST0000001, OU=TEST, O=TEST TEST TEST19 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+20CN=TEST0000001, OU=TEST, O=TEST TEST TEST20 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+21CN=TEST0000001, OU=TEST, O=TEST TEST TEST21 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+22CN=TEST0000001, OU=TEST, O=TEST TEST TEST22 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+23CN=TEST0000001, OU=TEST, O=TEST TEST TEST23 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+24CN=TEST0000001, OU=TEST, O=TEST TEST TEST24 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+25CN=TEST0000001, OU=TEST, O=TEST TEST TEST25 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+26CN=TEST0000001, OU=TEST, O=TEST TEST TEST26 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+27CN=TEST0000001, OU=TEST, O=TEST TEST TEST27 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+28CN=TEST0000001, OU=TEST, O=TEST TEST TEST28 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+29CN=TEST0000001, OU=TEST, O=TEST TEST TEST29 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+30CN=TEST0000001, OU=TEST, O=TEST TEST TEST30 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+31CN=TEST0000001, OU=TEST, O=TEST TEST TEST31 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+32CN=TEST0000001, OU=TEST, O=TEST TEST TEST32 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+33CN=TEST0000001, OU=TEST, O=TEST TEST TEST33 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+34CN=TEST0000001, OU=TEST, O=TEST TEST TEST34 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+35CN=TEST0000001, OU=TEST, O=TEST TEST TEST35 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+36CN=TEST0000001, OU=TEST, O=TEST TEST TEST36 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+37CN=TEST0000001, OU=TEST, O=TEST TEST TEST37 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+38CN=TEST0000001, OU=TEST, O=TEST TEST TEST38 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+39CN=TEST0000001, OU=TEST, O=TEST TEST TEST39 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+40CN=TEST0000001, OU=TEST, O=TEST TEST TEST40 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+41CN=TEST0000001, OU=TEST, O=TEST TEST TEST41 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+42CN=TEST0000001, OU=TEST, O=TEST TEST TEST42 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+43CN=TEST0000001, OU=TEST, O=TEST TEST TEST43 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+44CN=TEST0000001, OU=TEST, O=TEST TEST TEST44 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+45CN=TEST0000001, OU=TEST, O=TEST TEST TEST45 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+46CN=TEST0000001, OU=TEST, O=TEST TEST TEST46 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+47CN=TEST0000001, OU=TEST, O=TEST TEST TEST47 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+48CN=TEST0000001, OU=TEST, O=TEST TEST TEST48 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+49CN=TEST0000001, OU=TEST, O=TEST TEST TEST49 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+50CN=TEST0000001, OU=TEST, O=TEST TEST TEST50 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+51CN=TEST0000001, OU=TEST, O=TEST TEST TEST51 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+52CN=TEST0000001, OU=TEST, O=TEST TEST TEST52 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+53CN=TEST0000001, OU=TEST, O=TEST TEST TEST53 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+54CN=TEST0000001, OU=TEST, O=TEST TEST TEST54 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+55CN=TEST0000001, OU=TEST, O=TEST TEST TEST55 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+56CN=TEST0000001, OU=TEST, O=TEST TEST TEST56 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+57CN=TEST0000001, OU=TEST, O=TEST TEST TEST57 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+58CN=TEST0000001, OU=TEST, O=TEST TEST TEST58 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+59CN=TEST0000001, OU=TEST, O=TEST TEST TEST59 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+60CN=TEST0000001, OU=TEST, O=TEST TEST TEST60 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+61CN=TEST0000001, OU=TEST, O=TEST TEST TEST61 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+62CN=TEST0000001, OU=TEST, O=TEST TEST TEST62 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+63CN=TEST0000001, OU=TEST, O=TEST TEST TEST63 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+64CN=TEST0000001, OU=TEST, O=TEST TEST TEST64 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+65CN=TEST0000001, OU=TEST, O=TEST TEST TEST65 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+66CN=TEST0000001, OU=TEST, O=TEST TEST TEST66 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+67CN=TEST0000001, OU=TEST, O=TEST TEST TEST67 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+68CN=TEST0000001, OU=TEST, O=TEST TEST TEST68 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+69CN=TEST0000001, OU=TEST, O=TEST TEST TEST69 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+70CN=TEST0000001, OU=TEST, O=TEST TEST TEST70 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+71CN=TEST0000001, OU=TEST, O=TEST TEST TEST71 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+72CN=TEST0000001, OU=TEST, O=TEST TEST TEST72 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+73CN=TEST0000001, OU=TEST, O=TEST TEST TEST73 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+74CN=TEST0000001, OU=TEST, O=TEST TEST TEST74 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+75CN=TEST0000001, OU=TEST, O=TEST TEST TEST75 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+76CN=TEST0000001, OU=TEST, O=TEST TEST TEST76 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+77CN=TEST0000001, OU=TEST, O=TEST TEST TEST77 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+78CN=TEST0000001, OU=TEST, O=TEST TEST TEST78 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+79CN=TEST0000001, OU=TEST, O=TEST TEST TEST79 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+80CN=TEST0000001, OU=TEST, O=TEST TEST TEST80 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+81CN=TEST0000001, OU=TEST, O=TEST TEST TEST81 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+82CN=TEST0000001, OU=TEST, O=TEST TEST TEST82 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+83CN=TEST0000001, OU=TEST, O=TEST TEST TEST83 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+84CN=TEST0000001, OU=TEST, O=TEST TEST TEST84 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+85CN=TEST0000001, OU=TEST, O=TEST TEST TEST85 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+86CN=TEST0000001, OU=TEST, O=TEST TEST TEST86 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+87CN=TEST0000001, OU=TEST, O=TEST TEST TEST87 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+88CN=TEST0000001, OU=TEST, O=TEST TEST TEST88 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+89CN=TEST0000001, OU=TEST, O=TEST TEST TEST89 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+90CN=TEST0000001, OU=TEST, O=TEST TEST TEST90 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+91CN=TEST0000001, OU=TEST, O=TEST TEST TEST91 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+92CN=TEST0000001, OU=TEST, O=TEST TEST TEST92 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+93CN=TEST0000001, OU=TEST, O=TEST TEST TEST93 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+94CN=TEST0000001, OU=TEST, O=TEST TEST TEST94 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+95CN=TEST0000001, OU=TEST, O=TEST TEST TEST95 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+96CN=TEST0000001, OU=TEST, O=TEST TEST TEST96 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+97CN=TEST0000001, OU=TEST, O=TEST TEST TEST97 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+98CN=TEST0000001, OU=TEST, O=TEST TEST TEST98 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+99CN=TEST0000001, OU=TEST, O=TEST TEST TEST99 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+100CN=TEST0000001, OU=TEST, O=TEST TEST TEST100 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+101CN=TEST0000001, OU=TEST, O=TEST TEST TEST101 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+102CN=TEST0000001, OU=TEST, O=TEST TEST TEST102 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+103CN=TEST0000001, OU=TEST, O=TEST TEST TEST103 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+104CN=TEST0000001, OU=TEST, O=TEST TEST TEST104 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+105CN=TEST0000001, OU=TEST, O=TEST TEST TEST105 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+106CN=TEST0000001, OU=TEST, O=TEST TEST TEST106 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+107CN=TEST0000001, OU=TEST, O=TEST TEST TEST107 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+108CN=TEST0000001, OU=TEST, O=TEST TEST TEST108 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+109CN=TEST0000001, OU=TEST, O=TEST TEST TEST109 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+110CN=TEST0000001, OU=TEST, O=TEST TEST TEST110 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+111CN=TEST0000001, OU=TEST, O=TEST TEST TEST111 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+112CN=TEST0000001, OU=TEST, O=TEST TEST TEST112 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+113CN=TEST0000001, OU=TEST, O=TEST TEST TEST113 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+114CN=TEST0000001, OU=TEST, O=TEST TEST TEST114 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+115CN=TEST0000001, OU=TEST, O=TEST TEST TEST115 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+116CN=TEST0000001, OU=TEST, O=TEST TEST TEST116 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+117CN=TEST0000001, OU=TEST, O=TEST TEST TEST117 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+118CN=TEST0000001, OU=TEST, O=TEST TEST TEST118 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+119CN=TEST0000001, OU=TEST, O=TEST TEST TEST119 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+120CN=TEST0000001, OU=TEST, O=TEST TEST TEST120 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+121CN=TEST0000001, OU=TEST, O=TEST TEST TEST121 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+122CN=TEST0000001, OU=TEST, O=TEST TEST TEST122 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+123CN=TEST0000001, OU=TEST, O=TEST TEST TEST123 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+124CN=TEST0000001, OU=TEST, O=TEST TEST TEST124 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+125CN=TEST0000001, OU=TEST, O=TEST TEST TEST125 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+126CN=TEST0000001, OU=TEST, O=TEST TEST TEST126 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+127CN=TEST0000001, OU=TEST, O=TEST TEST TEST127 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+128CN=TEST0000001, OU=TEST, O=TEST TEST TEST128 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+129CN=TEST0000001, OU=TEST, O=TEST TEST TEST129 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+130CN=TEST0000001, OU=TEST, O=TEST TEST TEST130 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+131CN=TEST0000001, OU=TEST, O=TEST TEST TEST131 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+132CN=TEST0000001, OU=TEST, O=TEST TEST TEST132 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+133CN=TEST0000001, OU=TEST, O=TEST TEST TEST133 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+134CN=TEST0000001, OU=TEST, O=TEST TEST TEST134 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+135CN=TEST0000001, OU=TEST, O=TEST TEST TEST135 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+136CN=TEST0000001, OU=TEST, O=TEST TEST TEST136 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+137CN=TEST0000001, OU=TEST, O=TEST TEST TEST137 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+138CN=TEST0000001, OU=TEST, O=TEST TEST TEST138 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+139CN=TEST0000001, OU=TEST, O=TEST TEST TEST139 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+140CN=TEST0000001, OU=TEST, O=TEST TEST TEST140 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+141CN=TEST0000001, OU=TEST, O=TEST TEST TEST141 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+142CN=TEST0000001, OU=TEST, O=TEST TEST TEST142 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+143CN=TEST0000001, OU=TEST, O=TEST TEST TEST143 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+144CN=TEST0000001, OU=TEST, O=TEST TEST TEST144 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+145CN=TEST0000001, OU=TEST, O=TEST TEST TEST145 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+146CN=TEST0000001, OU=TEST, O=TEST TEST TEST146 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+147CN=TEST0000001, OU=TEST, O=TEST TEST TEST147 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+148CN=TEST0000001, OU=TEST, O=TEST TEST TEST148 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+149CN=TEST0000001, OU=TEST, O=TEST TEST TEST149 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+150CN=TEST0000001, OU=TEST, O=TEST TEST TEST150 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+151CN=TEST0000001, OU=TEST, O=TEST TEST TEST151 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+152CN=TEST0000001, OU=TEST, O=TEST TEST TEST152 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+153CN=TEST0000001, OU=TEST, O=TEST TEST TEST153 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+154CN=TEST0000001, OU=TEST, O=TEST TEST TEST154 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+155CN=TEST0000001, OU=TEST, O=TEST TEST TEST155 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+156CN=TEST0000001, OU=TEST, O=TEST TEST TEST156 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+157CN=TEST0000001, OU=TEST, O=TEST TEST TEST157 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+158CN=TEST0000001, OU=TEST, O=TEST TEST TEST158 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+159CN=TEST0000001, OU=TEST, O=TEST TEST TEST159 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+160CN=TEST0000001, OU=TEST, O=TEST TEST TEST160 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+161CN=TEST0000001, OU=TEST, O=TEST TEST TEST161 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+162CN=TEST0000001, OU=TEST, O=TEST TEST TEST162 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+163CN=TEST0000001, OU=TEST, O=TEST TEST TEST163 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+164CN=TEST0000001, OU=TEST, O=TEST TEST TEST164 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+165CN=TEST0000001, OU=TEST, O=TEST TEST TEST165 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+166CN=TEST0000001, OU=TEST, O=TEST TEST TEST166 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+167CN=TEST0000001, OU=TEST, O=TEST TEST TEST167 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+168CN=TEST0000001, OU=TEST, O=TEST TEST TEST168 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+169CN=TEST0000001, OU=TEST, O=TEST TEST TEST169 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+170CN=TEST0000001, OU=TEST, O=TEST TEST TEST170 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+171CN=TEST0000001, OU=TEST, O=TEST TEST TEST171 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+172CN=TEST0000001, OU=TEST, O=TEST TEST TEST172 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+173CN=TEST0000001, OU=TEST, O=TEST TEST TEST173 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+174CN=TEST0000001, OU=TEST, O=TEST TEST TEST174 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+175CN=TEST0000001, OU=TEST, O=TEST TEST TEST175 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+176CN=TEST0000001, OU=TEST, O=TEST TEST TEST176 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+177CN=TEST0000001, OU=TEST, O=TEST TEST TEST177 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+178CN=TEST0000001, OU=TEST, O=TEST TEST TEST178 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+179CN=TEST0000001, OU=TEST, O=TEST TEST TEST179 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+180CN=TEST0000001, OU=TEST, O=TEST TEST TEST180 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+181CN=TEST0000001, OU=TEST, O=TEST TEST TEST181 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+182CN=TEST0000001, OU=TEST, O=TEST TEST TEST182 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+183CN=TEST0000001, OU=TEST, O=TEST TEST TEST183 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+184CN=TEST0000001, OU=TEST, O=TEST TEST TEST184 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+185CN=TEST0000001, OU=TEST, O=TEST TEST TEST185 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+186CN=TEST0000001, OU=TEST, O=TEST TEST TEST186 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+187CN=TEST0000001, OU=TEST, O=TEST TEST TEST187 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+188CN=TEST0000001, OU=TEST, O=TEST TEST TEST188 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+189CN=TEST0000001, OU=TEST, O=TEST TEST TEST189 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+190CN=TEST0000001, OU=TEST, O=TEST TEST TEST190 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+191CN=TEST0000001, OU=TEST, O=TEST TEST TEST191 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+192CN=TEST0000001, OU=TEST, O=TEST TEST TEST192 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+193CN=TEST0000001, OU=TEST, O=TEST TEST TEST193 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+194CN=TEST0000001, OU=TEST, O=TEST TEST TEST194 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+195CN=TEST0000001, OU=TEST, O=TEST TEST TEST195 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+196CN=TEST0000001, OU=TEST, O=TEST TEST TEST196 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+197CN=TEST0000001, OU=TEST, O=TEST TEST TEST197 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+198CN=TEST0000001, OU=TEST, O=TEST TEST TEST198 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+199CN=TEST0000001, OU=TEST, O=TEST TEST TEST199 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+200CN=TEST0000001, OU=TEST, O=TEST TEST TEST200 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+201CN=TEST0000001, OU=TEST, O=TEST TEST TEST201 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+202CN=TEST0000001, OU=TEST, O=TEST TEST TEST202 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+203CN=TEST0000001, OU=TEST, O=TEST TEST TEST203 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+204CN=TEST0000001, OU=TEST, O=TEST TEST TEST204 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+205CN=TEST0000001, OU=TEST, O=TEST TEST TEST205 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+206CN=TEST0000001, OU=TEST, O=TEST TEST TEST206 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+207CN=TEST0000001, OU=TEST, O=TEST TEST TEST207 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+208CN=TEST0000001, OU=TEST, O=TEST TEST TEST208 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+209CN=TEST0000001, OU=TEST, O=TEST TEST TEST209 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+210CN=TEST0000001, OU=TEST, O=TEST TEST TEST210 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+211CN=TEST0000001, OU=TEST, O=TEST TEST TEST211 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+212CN=TEST0000001, OU=TEST, O=TEST TEST TEST212 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+213CN=TEST0000001, OU=TEST, O=TEST TEST TEST213 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+214CN=TEST0000001, OU=TEST, O=TEST TEST TEST214 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+215CN=TEST0000001, OU=TEST, O=TEST TEST TEST215 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+216CN=TEST0000001, OU=TEST, O=TEST TEST TEST216 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+217CN=TEST0000001, OU=TEST, O=TEST TEST TEST217 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+218CN=TEST0000001, OU=TEST, O=TEST TEST TEST218 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+219CN=TEST0000001, OU=TEST, O=TEST TEST TEST219 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+220CN=TEST0000001, OU=TEST, O=TEST TEST TEST220 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+221CN=TEST0000001, OU=TEST, O=TEST TEST TEST221 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+222CN=TEST0000001, OU=TEST, O=TEST TEST TEST222 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+223CN=TEST0000001, OU=TEST, O=TEST TEST TEST223 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+224CN=TEST0000001, OU=TEST, O=TEST TEST TEST224 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+225CN=TEST0000001, OU=TEST, O=TEST TEST TEST225 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+226CN=TEST0000001, OU=TEST, O=TEST TEST TEST226 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+227CN=TEST0000001, OU=TEST, O=TEST TEST TEST227 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+228CN=TEST0000001, OU=TEST, O=TEST TEST TEST228 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+229CN=TEST0000001, OU=TEST, O=TEST TEST TEST229 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+230CN=TEST0000001, OU=TEST, O=TEST TEST TEST230 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+231CN=TEST0000001, OU=TEST, O=TEST TEST TEST231 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+232CN=TEST0000001, OU=TEST, O=TEST TEST TEST232 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+233CN=TEST0000001, OU=TEST, O=TEST TEST TEST233 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+234CN=TEST0000001, OU=TEST, O=TEST TEST TEST234 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+235CN=TEST0000001, OU=TEST, O=TEST TEST TEST235 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+236CN=TEST0000001, OU=TEST, O=TEST TEST TEST236 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+237CN=TEST0000001, OU=TEST, O=TEST TEST TEST237 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+238CN=TEST0000001, OU=TEST, O=TEST TEST TEST238 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+239CN=TEST0000001, OU=TEST, O=TEST TEST TEST239 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+240CN=TEST0000001, OU=TEST, O=TEST TEST TEST240 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+241CN=TEST0000001, OU=TEST, O=TEST TEST TEST241 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+242CN=TEST0000001, OU=TEST, O=TEST TEST TEST242 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+243CN=TEST0000001, OU=TEST, O=TEST TEST TEST243 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+244CN=TEST0000001, OU=TEST, O=TEST TEST TEST244 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+245CN=TEST0000001, OU=TEST, O=TEST TEST TEST245 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+246CN=TEST0000001, OU=TEST, O=TEST TEST TEST246 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+247CN=TEST0000001, OU=TEST, O=TEST TEST TEST247 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+248CN=TEST0000001, OU=TEST, O=TEST TEST TEST248 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+249CN=TEST0000001, OU=TEST, O=TEST TEST TEST249 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+250CN=TEST0000001, OU=TEST, O=TEST TEST TEST250 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+251CN=TEST0000001, OU=TEST, O=TEST TEST TEST251 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+252CN=TEST0000001, OU=TEST, O=TEST TEST TEST252 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+253CN=TEST0000001, OU=TEST, O=TEST TEST TEST253 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+254CN=TEST0000001, OU=TEST, O=TEST TEST TEST254 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+255CN=TEST0000001, OU=TEST, O=TEST TEST TEST255 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+256CN=TEST0000001, OU=TEST, O=TEST TEST TEST256 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+257CN=TEST0000001, OU=TEST, O=TEST TEST TEST257 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+258CN=TEST0000001, OU=TEST, O=TEST TEST TEST258 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+259CN=TEST0000001, OU=TEST, O=TEST TEST TEST259 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+260CN=TEST0000001, OU=TEST, O=TEST TEST TEST260 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+261CN=TEST0000001, OU=TEST, O=TEST TEST TEST261 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+262CN=TEST0000001, OU=TEST, O=TEST TEST TEST262 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+263CN=TEST0000001, OU=TEST, O=TEST TEST TEST263 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+264CN=TEST0000001, OU=TEST, O=TEST TEST TEST264 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+265CN=TEST0000001, OU=TEST, O=TEST TEST TEST265 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+266CN=TEST0000001, OU=TEST, O=TEST TEST TEST266 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+267CN=TEST0000001, OU=TEST, O=TEST TEST TEST267 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+268CN=TEST0000001, OU=TEST, O=TEST TEST TEST268 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+269CN=TEST0000001, OU=TEST, O=TEST TEST TEST269 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+270CN=TEST0000001, OU=TEST, O=TEST TEST TEST270 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+271CN=TEST0000001, OU=TEST, O=TEST TEST TEST271 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+272CN=TEST0000001, OU=TEST, O=TEST TEST TEST272 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+273CN=TEST0000001, OU=TEST, O=TEST TEST TEST273 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+274CN=TEST0000001, OU=TEST, O=TEST TEST TEST274 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+275CN=TEST0000001, OU=TEST, O=TEST TEST TEST275 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+276CN=TEST0000001, OU=TEST, O=TEST TEST TEST276 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+277CN=TEST0000001, OU=TEST, O=TEST TEST TEST277 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+278CN=TEST0000001, OU=TEST, O=TEST TEST TEST278 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+279CN=TEST0000001, OU=TEST, O=TEST TEST TEST279 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+280CN=TEST0000001, OU=TEST, O=TEST TEST TEST280 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+281CN=TEST0000001, OU=TEST, O=TEST TEST TEST281 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+282CN=TEST0000001, OU=TEST, O=TEST TEST TEST282 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+283CN=TEST0000001, OU=TEST, O=TEST TEST TEST283 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+284CN=TEST0000001, OU=TEST, O=TEST TEST TEST284 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+285CN=TEST0000001, OU=TEST, O=TEST TEST TEST285 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+286CN=TEST0000001, OU=TEST, O=TEST TEST TEST286 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+287CN=TEST0000001, OU=TEST, O=TEST TEST TEST287 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+288CN=TEST0000001, OU=TEST, O=TEST TEST TEST288 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+289CN=TEST0000001, OU=TEST, O=TEST TEST TEST289 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+290CN=TEST0000001, OU=TEST, O=TEST TEST TEST290 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+291CN=TEST0000001, OU=TEST, O=TEST TEST TEST291 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+292CN=TEST0000001, OU=TEST, O=TEST TEST TEST292 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+293CN=TEST0000001, OU=TEST, O=TEST TEST TEST293 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+294CN=TEST0000001, OU=TEST, O=TEST TEST TEST294 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+295CN=TEST0000001, OU=TEST, O=TEST TEST TEST295 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+296CN=TEST0000001, OU=TEST, O=TEST TEST TEST296 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+297CN=TEST0000001, OU=TEST, O=TEST TEST TEST297 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+298CN=TEST0000001, OU=TEST, O=TEST TEST TEST298 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+299CN=TEST0000001, OU=TEST, O=TEST TEST TEST299 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+300CN=TEST0000001, OU=TEST, O=TEST TEST TEST300 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+301CN=TEST0000001, OU=TEST, O=TEST TEST TEST301 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+302CN=TEST0000001, OU=TEST, O=TEST TEST TEST302 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+303CN=TEST0000001, OU=TEST, O=TEST TEST TEST303 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+304CN=TEST0000001, OU=TEST, O=TEST TEST TEST304 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+305CN=TEST0000001, OU=TEST, O=TEST TEST TEST305 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+306CN=TEST0000001, OU=TEST, O=TEST TEST TEST306 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+307CN=TEST0000001, OU=TEST, O=TEST TEST TEST307 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+308CN=TEST0000001, OU=TEST, O=TEST TEST TEST308 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+309CN=TEST0000001, OU=TEST, O=TEST TEST TEST309 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+310CN=TEST0000001, OU=TEST, O=TEST TEST TEST310 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+311CN=TEST0000001, OU=TEST, O=TEST TEST TEST311 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+312CN=TEST0000001, OU=TEST, O=TEST TEST TEST312 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+313CN=TEST0000001, OU=TEST, O=TEST TEST TEST313 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+314CN=TEST0000001, OU=TEST, O=TEST TEST TEST314 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+315CN=TEST0000001, OU=TEST, O=TEST TEST TEST315 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+316CN=TEST0000001, OU=TEST, O=TEST TEST TEST316 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+317CN=TEST0000001, OU=TEST, O=TEST TEST TEST317 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+318CN=TEST0000001, OU=TEST, O=TEST TEST TEST318 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+319CN=TEST0000001, OU=TEST, O=TEST TEST TEST319 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+320CN=TEST0000001, OU=TEST, O=TEST TEST TEST320 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+321CN=TEST0000001, OU=TEST, O=TEST TEST TEST321 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+322CN=TEST0000001, OU=TEST, O=TEST TEST TEST322 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+323CN=TEST0000001, OU=TEST, O=TEST TEST TEST323 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+324CN=TEST0000001, OU=TEST, O=TEST TEST TEST324 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+325CN=TEST0000001, OU=TEST, O=TEST TEST TEST325 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+326CN=TEST0000001, OU=TEST, O=TEST TEST TEST326 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+327CN=TEST0000001, OU=TEST, O=TEST TEST TEST327 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+328CN=TEST0000001, OU=TEST, O=TEST TEST TEST328 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+329CN=TEST0000001, OU=TEST, O=TEST TEST TEST329 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+330CN=TEST0000001, OU=TEST, O=TEST TEST TEST330 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+331CN=TEST0000001, OU=TEST, O=TEST TEST TEST331 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+332CN=TEST0000001, OU=TEST, O=TEST TEST TEST332 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+333CN=TEST0000001, OU=TEST, O=TEST TEST TEST333 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+334CN=TEST0000001, OU=TEST, O=TEST TEST TEST334 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+335CN=TEST0000001, OU=TEST, O=TEST TEST TEST335 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+336CN=TEST0000001, OU=TEST, O=TEST TEST TEST336 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+337CN=TEST0000001, OU=TEST, O=TEST TEST TEST337 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+338CN=TEST0000001, OU=TEST, O=TEST TEST TEST338 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+339CN=TEST0000001, OU=TEST, O=TEST TEST TEST339 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+340CN=TEST0000001, OU=TEST, O=TEST TEST TEST340 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+341CN=TEST0000001, OU=TEST, O=TEST TEST TEST341 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+342CN=TEST0000001, OU=TEST, O=TEST TEST TEST342 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+343CN=TEST0000001, OU=TEST, O=TEST TEST TEST343 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+344CN=TEST0000001, OU=TEST, O=TEST TEST TEST344 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+345CN=TEST0000001, OU=TEST, O=TEST TEST TEST345 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+346CN=TEST0000001, OU=TEST, O=TEST TEST TEST346 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+347CN=TEST0000001, OU=TEST, O=TEST TEST TEST347 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+348CN=TEST0000001, OU=TEST, O=TEST TEST TEST348 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+349CN=TEST0000001, OU=TEST, O=TEST TEST TEST349 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+350CN=TEST0000001, OU=TEST, O=TEST TEST TEST350 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+351CN=TEST0000001, OU=TEST, O=TEST TEST TEST351 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+352CN=TEST0000001, OU=TEST, O=TEST TEST TEST352 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+353CN=TEST0000001, OU=TEST, O=TEST TEST TEST353 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+354CN=TEST0000001, OU=TEST, O=TEST TEST TEST354 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+355CN=TEST0000001, OU=TEST, O=TEST TEST TEST355 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+356CN=TEST0000001, OU=TEST, O=TEST TEST TEST356 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+357CN=TEST0000001, OU=TEST, O=TEST TEST TEST357 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+358CN=TEST0000001, OU=TEST, O=TEST TEST TEST358 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+359CN=TEST0000001, OU=TEST, O=TEST TEST TEST359 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+360CN=TEST0000001, OU=TEST, O=TEST TEST TEST360 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+361CN=TEST0000001, OU=TEST, O=TEST TEST TEST361 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+362CN=TEST0000001, OU=TEST, O=TEST TEST TEST362 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+363CN=TEST0000001, OU=TEST, O=TEST TEST TEST363 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+364CN=TEST0000001, OU=TEST, O=TEST TEST TEST364 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+365CN=TEST0000001, OU=TEST, O=TEST TEST TEST365 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+366CN=TEST0000001, OU=TEST, O=TEST TEST TEST366 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+367CN=TEST0000001, OU=TEST, O=TEST TEST TEST367 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+368CN=TEST0000001, OU=TEST, O=TEST TEST TEST368 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+369CN=TEST0000001, OU=TEST, O=TEST TEST TEST369 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+370CN=TEST0000001, OU=TEST, O=TEST TEST TEST370 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+371CN=TEST0000001, OU=TEST, O=TEST TEST TEST371 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+372CN=TEST0000001, OU=TEST, O=TEST TEST TEST372 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+373CN=TEST0000001, OU=TEST, O=TEST TEST TEST373 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+374CN=TEST0000001, OU=TEST, O=TEST TEST TEST374 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+375CN=TEST0000001, OU=TEST, O=TEST TEST TEST375 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+376CN=TEST0000001, OU=TEST, O=TEST TEST TEST376 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+377CN=TEST0000001, OU=TEST, O=TEST TEST TEST377 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+378CN=TEST0000001, OU=TEST, O=TEST TEST TEST378 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+379CN=TEST0000001, OU=TEST, O=TEST TEST TEST379 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+380CN=TEST0000001, OU=TEST, O=TEST TEST TEST380 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+381CN=TEST0000001, OU=TEST, O=TEST TEST TEST381 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+382CN=TEST0000001, OU=TEST, O=TEST TEST TEST382 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+383CN=TEST0000001, OU=TEST, O=TEST TEST TEST383 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+384CN=TEST0000001, OU=TEST, O=TEST TEST TEST384 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+385CN=TEST0000001, OU=TEST, O=TEST TEST TEST385 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+386CN=TEST0000001, OU=TEST, O=TEST TEST TEST386 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+387CN=TEST0000001, OU=TEST, O=TEST TEST TEST387 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+388CN=TEST0000001, OU=TEST, O=TEST TEST TEST388 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+389CN=TEST0000001, OU=TEST, O=TEST TEST TEST389 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+390CN=TEST0000001, OU=TEST, O=TEST TEST TEST390 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+391CN=TEST0000001, OU=TEST, O=TEST TEST TEST391 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+392CN=TEST0000001, OU=TEST, O=TEST TEST TEST392 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+393CN=TEST0000001, OU=TEST, O=TEST TEST TEST393 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+394CN=TEST0000001, OU=TEST, O=TEST TEST TEST394 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+395CN=TEST0000001, OU=TEST, O=TEST TEST TEST395 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+396CN=TEST0000001, OU=TEST, O=TEST TEST TEST396 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+397CN=TEST0000001, OU=TEST, O=TEST TEST TEST397 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+398CN=TEST0000001, OU=TEST, O=TEST TEST TEST398 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+399CN=TEST0000001, OU=TEST, O=TEST TEST TEST399 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+400CN=TEST0000001, OU=TEST, O=TEST TEST TEST400 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+401CN=TEST0000001, OU=TEST, O=TEST TEST TEST401 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+402CN=TEST0000001, OU=TEST, O=TEST TEST TEST402 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+403CN=TEST0000001, OU=TEST, O=TEST TEST TEST403 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+404CN=TEST0000001, OU=TEST, O=TEST TEST TEST404 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+405CN=TEST0000001, OU=TEST, O=TEST TEST TEST405 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+406CN=TEST0000001, OU=TEST, O=TEST TEST TEST406 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+407CN=TEST0000001, OU=TEST, O=TEST TEST TEST407 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+408CN=TEST0000001, OU=TEST, O=TEST TEST TEST408 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+409CN=TEST0000001, OU=TEST, O=TEST TEST TEST409 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+410CN=TEST0000001, OU=TEST, O=TEST TEST TEST410 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+411CN=TEST0000001, OU=TEST, O=TEST TEST TEST411 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+412CN=TEST0000001, OU=TEST, O=TEST TEST TEST412 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+413CN=TEST0000001, OU=TEST, O=TEST TEST TEST413 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+414CN=TEST0000001, OU=TEST, O=TEST TEST TEST414 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+415CN=TEST0000001, OU=TEST, O=TEST TEST TEST415 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+416CN=TEST0000001, OU=TEST, O=TEST TEST TEST416 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+417CN=TEST0000001, OU=TEST, O=TEST TEST TEST417 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+418CN=TEST0000001, OU=TEST, O=TEST TEST TEST418 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+419CN=TEST0000001, OU=TEST, O=TEST TEST TEST419 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+420CN=TEST0000001, OU=TEST, O=TEST TEST TEST420 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+421CN=TEST0000001, OU=TEST, O=TEST TEST TEST421 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+422CN=TEST0000001, OU=TEST, O=TEST TEST TEST422 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+423CN=TEST0000001, OU=TEST, O=TEST TEST TEST423 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+424CN=TEST0000001, OU=TEST, O=TEST TEST TEST424 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+425CN=TEST0000001, OU=TEST, O=TEST TEST TEST425 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+426CN=TEST0000001, OU=TEST, O=TEST TEST TEST426 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+427CN=TEST0000001, OU=TEST, O=TEST TEST TEST427 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+428CN=TEST0000001, OU=TEST, O=TEST TEST TEST428 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+429CN=TEST0000001, OU=TEST, O=TEST TEST TEST429 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+430CN=TEST0000001, OU=TEST, O=TEST TEST TEST430 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+431CN=TEST0000001, OU=TEST, O=TEST TEST TEST431 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+432CN=TEST0000001, OU=TEST, O=TEST TEST TEST432 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+433CN=TEST0000001, OU=TEST, O=TEST TEST TEST433 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+434CN=TEST0000001, OU=TEST, O=TEST TEST TEST434 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+435CN=TEST0000001, OU=TEST, O=TEST TEST TEST435 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+436CN=TEST0000001, OU=TEST, O=TEST TEST TEST436 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+437CN=TEST0000001, OU=TEST, O=TEST TEST TEST437 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+438CN=TEST0000001, OU=TEST, O=TEST TEST TEST438 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+439CN=TEST0000001, OU=TEST, O=TEST TEST TEST439 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+440CN=TEST0000001, OU=TEST, O=TEST TEST TEST440 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+441CN=TEST0000001, OU=TEST, O=TEST TEST TEST441 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+442CN=TEST0000001, OU=TEST, O=TEST TEST TEST442 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+443CN=TEST0000001, OU=TEST, O=TEST TEST TEST443 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+444CN=TEST0000001, OU=TEST, O=TEST TEST TEST444 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+445CN=TEST0000001, OU=TEST, O=TEST TEST TEST445 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+446CN=TEST0000001, OU=TEST, O=TEST TEST TEST446 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+447CN=TEST0000001, OU=TEST, O=TEST TEST TEST447 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+448CN=TEST0000001, OU=TEST, O=TEST TEST TEST448 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+449CN=TEST0000001, OU=TEST, O=TEST TEST TEST449 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+450CN=TEST0000001, OU=TEST, O=TEST TEST TEST450 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+451CN=TEST0000001, OU=TEST, O=TEST TEST TEST451 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+452CN=TEST0000001, OU=TEST, O=TEST TEST TEST452 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+453CN=TEST0000001, OU=TEST, O=TEST TEST TEST453 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+454CN=TEST0000001, OU=TEST, O=TEST TEST TEST454 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+455CN=TEST0000001, OU=TEST, O=TEST TEST TEST455 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+456CN=TEST0000001, OU=TEST, O=TEST TEST TEST456 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+457CN=TEST0000001, OU=TEST, O=TEST TEST TEST457 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+458CN=TEST0000001, OU=TEST, O=TEST TEST TEST458 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+459CN=TEST0000001, OU=TEST, O=TEST TEST TEST459 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+460CN=TEST0000001, OU=TEST, O=TEST TEST TEST460 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+461CN=TEST0000001, OU=TEST, O=TEST TEST TEST461 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+462CN=TEST0000001, OU=TEST, O=TEST TEST TEST462 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+463CN=TEST0000001, OU=TEST, O=TEST TEST TEST463 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+464CN=TEST0000001, OU=TEST, O=TEST TEST TEST464 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+465CN=TEST0000001, OU=TEST, O=TEST TEST TEST465 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+466CN=TEST0000001, OU=TEST, O=TEST TEST TEST466 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+467CN=TEST0000001, OU=TEST, O=TEST TEST TEST467 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+468CN=TEST0000001, OU=TEST, O=TEST TEST TEST468 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+469CN=TEST0000001, OU=TEST, O=TEST TEST TEST469 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+470CN=TEST0000001, OU=TEST, O=TEST TEST TEST470 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+471CN=TEST0000001, OU=TEST, O=TEST TEST TEST471 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+472CN=TEST0000001, OU=TEST, O=TEST TEST TEST472 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+473CN=TEST0000001, OU=TEST, O=TEST TEST TEST473 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+474CN=TEST0000001, OU=TEST, O=TEST TEST TEST474 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+475CN=TEST0000001, OU=TEST, O=TEST TEST TEST475 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+476CN=TEST0000001, OU=TEST, O=TEST TEST TEST476 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+477CN=TEST0000001, OU=TEST, O=TEST TEST TEST477 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+478CN=TEST0000001, OU=TEST, O=TEST TEST TEST478 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+479CN=TEST0000001, OU=TEST, O=TEST TEST TEST479 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+480CN=TEST0000001, OU=TEST, O=TEST TEST TEST480 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+481CN=TEST0000001, OU=TEST, O=TEST TEST TEST481 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+482CN=TEST0000001, OU=TEST, O=TEST TEST TEST482 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+483CN=TEST0000001, OU=TEST, O=TEST TEST TEST483 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+484CN=TEST0000001, OU=TEST, O=TEST TEST TEST484 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+485CN=TEST0000001, OU=TEST, O=TEST TEST TEST485 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+486CN=TEST0000001, OU=TEST, O=TEST TEST TEST486 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+487CN=TEST0000001, OU=TEST, O=TEST TEST TEST487 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+488CN=TEST0000001, OU=TEST, O=TEST TEST TEST488 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+489CN=TEST0000001, OU=TEST, O=TEST TEST TEST489 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+490CN=TEST0000001, OU=TEST, O=TEST TEST TEST490 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+491CN=TEST0000001, OU=TEST, O=TEST TEST TEST491 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+492CN=TEST0000001, OU=TEST, O=TEST TEST TEST492 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+493CN=TEST0000001, OU=TEST, O=TEST TEST TEST493 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+494CN=TEST0000001, OU=TEST, O=TEST TEST TEST494 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+495CN=TEST0000001, OU=TEST, O=TEST TEST TEST495 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+496CN=TEST0000001, OU=TEST, O=TEST TEST TEST496 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+497CN=TEST0000001, OU=TEST, O=TEST TEST TEST497 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+498CN=TEST0000001, OU=TEST, O=TEST TEST TEST498 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+499CN=TEST0000001, OU=TEST, O=TEST TEST TEST499 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+500CN=TEST0000001, OU=TEST, O=TEST TEST TEST500 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+501CN=TEST0000001, OU=TEST, O=TEST TEST TEST501 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+502CN=TEST0000001, OU=TEST, O=TEST TEST TEST502 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+503CN=TEST0000001, OU=TEST, O=TEST TEST TEST503 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+504CN=TEST0000001, OU=TEST, O=TEST TEST TEST504 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+505CN=TEST0000001, OU=TEST, O=TEST TEST TEST505 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+506CN=TEST0000001, OU=TEST, O=TEST TEST TEST506 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+507CN=TEST0000001, OU=TEST, O=TEST TEST TEST507 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+508CN=TEST0000001, OU=TEST, O=TEST TEST TEST508 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+509CN=TEST0000001, OU=TEST, O=TEST TEST TEST509 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+510CN=TEST0000001, OU=TEST, O=TEST TEST TEST510 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+511CN=TEST0000001, OU=TEST, O=TEST TEST TEST511 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+512CN=TEST0000001, OU=TEST, O=TEST TEST TEST512 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+513CN=TEST0000001, OU=TEST, O=TEST TEST TEST513 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+514CN=TEST0000001, OU=TEST, O=TEST TEST TEST514 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+515CN=TEST0000001, OU=TEST, O=TEST TEST TEST515 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+516CN=TEST0000001, OU=TEST, O=TEST TEST TEST516 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+517CN=TEST0000001, OU=TEST, O=TEST TEST TEST517 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+518CN=TEST0000001, OU=TEST, O=TEST TEST TEST518 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+519CN=TEST0000001, OU=TEST, O=TEST TEST TEST519 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+520CN=TEST0000001, OU=TEST, O=TEST TEST TEST520 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+521CN=TEST0000001, OU=TEST, O=TEST TEST TEST521 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+522CN=TEST0000001, OU=TEST, O=TEST TEST TEST522 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+523CN=TEST0000001, OU=TEST, O=TEST TEST TEST523 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+524CN=TEST0000001, OU=TEST, O=TEST TEST TEST524 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+525CN=TEST0000001, OU=TEST, O=TEST TEST TEST525 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+526CN=TEST0000001, OU=TEST, O=TEST TEST TEST526 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+527CN=TEST0000001, OU=TEST, O=TEST TEST TEST527 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+528CN=TEST0000001, OU=TEST, O=TEST TEST TEST528 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+529CN=TEST0000001, OU=TEST, O=TEST TEST TEST529 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+530CN=TEST0000001, OU=TEST, O=TEST TEST TEST530 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+531CN=TEST0000001, OU=TEST, O=TEST TEST TEST531 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+532CN=TEST0000001, OU=TEST, O=TEST TEST TEST532 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+533CN=TEST0000001, OU=TEST, O=TEST TEST TEST533 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+534CN=TEST0000001, OU=TEST, O=TEST TEST TEST534 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+535CN=TEST0000001, OU=TEST, O=TEST TEST TEST535 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+536CN=TEST0000001, OU=TEST, O=TEST TEST TEST536 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+537CN=TEST0000001, OU=TEST, O=TEST TEST TEST537 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+538CN=TEST0000001, OU=TEST, O=TEST TEST TEST538 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+539CN=TEST0000001, OU=TEST, O=TEST TEST TEST539 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+540CN=TEST0000001, OU=TEST, O=TEST TEST TEST540 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+541CN=TEST0000001, OU=TEST, O=TEST TEST TEST541 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+542CN=TEST0000001, OU=TEST, O=TEST TEST TEST542 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+543CN=TEST0000001, OU=TEST, O=TEST TEST TEST543 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+544CN=TEST0000001, OU=TEST, O=TEST TEST TEST544 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+545CN=TEST0000001, OU=TEST, O=TEST TEST TEST545 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+546CN=TEST0000001, OU=TEST, O=TEST TEST TEST546 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+547CN=TEST0000001, OU=TEST, O=TEST TEST TEST547 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+548CN=TEST0000001, OU=TEST, O=TEST TEST TEST548 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+549CN=TEST0000001, OU=TEST, O=TEST TEST TEST549 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+550CN=TEST0000001, OU=TEST, O=TEST TEST TEST550 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+551CN=TEST0000001, OU=TEST, O=TEST TEST TEST551 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+552CN=TEST0000001, OU=TEST, O=TEST TEST TEST552 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+553CN=TEST0000001, OU=TEST, O=TEST TEST TEST553 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+554CN=TEST0000001, OU=TEST, O=TEST TEST TEST554 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+555CN=TEST0000001, OU=TEST, O=TEST TEST TEST555 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+556CN=TEST0000001, OU=TEST, O=TEST TEST TEST556 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+557CN=TEST0000001, OU=TEST, O=TEST TEST TEST557 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+558CN=TEST0000001, OU=TEST, O=TEST TEST TEST558 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+559CN=TEST0000001, OU=TEST, O=TEST TEST TEST559 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+560CN=TEST0000001, OU=TEST, O=TEST TEST TEST560 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+561CN=TEST0000001, OU=TEST, O=TEST TEST TEST561 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+562CN=TEST0000001, OU=TEST, O=TEST TEST TEST562 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+563CN=TEST0000001, OU=TEST, O=TEST TEST TEST563 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+564CN=TEST0000001, OU=TEST, O=TEST TEST TEST564 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+565CN=TEST0000001, OU=TEST, O=TEST TEST TEST565 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+566CN=TEST0000001, OU=TEST, O=TEST TEST TEST566 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+567CN=TEST0000001, OU=TEST, O=TEST TEST TEST567 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+568CN=TEST0000001, OU=TEST, O=TEST TEST TEST568 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+569CN=TEST0000001, OU=TEST, O=TEST TEST TEST569 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+570CN=TEST0000001, OU=TEST, O=TEST TEST TEST570 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+571CN=TEST0000001, OU=TEST, O=TEST TEST TEST571 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+572CN=TEST0000001, OU=TEST, O=TEST TEST TEST572 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+573CN=TEST0000001, OU=TEST, O=TEST TEST TEST573 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+574CN=TEST0000001, OU=TEST, O=TEST TEST TEST574 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+575CN=TEST0000001, OU=TEST, O=TEST TEST TEST575 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+576CN=TEST0000001, OU=TEST, O=TEST TEST TEST576 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+577CN=TEST0000001, OU=TEST, O=TEST TEST TEST577 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+578CN=TEST0000001, OU=TEST, O=TEST TEST TEST578 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+579CN=TEST0000001, OU=TEST, O=TEST TEST TEST579 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+580CN=TEST0000001, OU=TEST, O=TEST TEST TEST580 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+581CN=TEST0000001, OU=TEST, O=TEST TEST TEST581 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+582CN=TEST0000001, OU=TEST, O=TEST TEST TEST582 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+583CN=TEST0000001, OU=TEST, O=TEST TEST TEST583 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+584CN=TEST0000001, OU=TEST, O=TEST TEST TEST584 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+585CN=TEST0000001, OU=TEST, O=TEST TEST TEST585 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+586CN=TEST0000001, OU=TEST, O=TEST TEST TEST586 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+587CN=TEST0000001, OU=TEST, O=TEST TEST TEST587 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+588CN=TEST0000001, OU=TEST, O=TEST TEST TEST588 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+589CN=TEST0000001, OU=TEST, O=TEST TEST TEST589 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+590CN=TEST0000001, OU=TEST, O=TEST TEST TEST590 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+591CN=TEST0000001, OU=TEST, O=TEST TEST TEST591 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+592CN=TEST0000001, OU=TEST, O=TEST TEST TEST592 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+593CN=TEST0000001, OU=TEST, O=TEST TEST TEST593 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+594CN=TEST0000001, OU=TEST, O=TEST TEST TEST594 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+595CN=TEST0000001, OU=TEST, O=TEST TEST TEST595 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+596CN=TEST0000001, OU=TEST, O=TEST TEST TEST596 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+597CN=TEST0000001, OU=TEST, O=TEST TEST TEST597 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+598CN=TEST0000001, OU=TEST, O=TEST TEST TEST598 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+599CN=TEST0000001, OU=TEST, O=TEST TEST TEST599 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+600CN=TEST0000001, OU=TEST, O=TEST TEST TEST600 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+601CN=TEST0000001, OU=TEST, O=TEST TEST TEST601 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+602CN=TEST0000001, OU=TEST, O=TEST TEST TEST602 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+603CN=TEST0000001, OU=TEST, O=TEST TEST TEST603 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+604CN=TEST0000001, OU=TEST, O=TEST TEST TEST604 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+605CN=TEST0000001, OU=TEST, O=TEST TEST TEST605 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+606CN=TEST0000001, OU=TEST, O=TEST TEST TEST606 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+607CN=TEST0000001, OU=TEST, O=TEST TEST TEST607 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+608CN=TEST0000001, OU=TEST, O=TEST TEST TEST608 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+609CN=TEST0000001, OU=TEST, O=TEST TEST TEST609 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+610CN=TEST0000001, OU=TEST, O=TEST TEST TEST610 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+611CN=TEST0000001, OU=TEST, O=TEST TEST TEST611 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+612CN=TEST0000001, OU=TEST, O=TEST TEST TEST612 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+613CN=TEST0000001, OU=TEST, O=TEST TEST TEST613 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+614CN=TEST0000001, OU=TEST, O=TEST TEST TEST614 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+615CN=TEST0000001, OU=TEST, O=TEST TEST TEST615 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+616CN=TEST0000001, OU=TEST, O=TEST TEST TEST616 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+617CN=TEST0000001, OU=TEST, O=TEST TEST TEST617 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+618CN=TEST0000001, OU=TEST, O=TEST TEST TEST618 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+619CN=TEST0000001, OU=TEST, O=TEST TEST TEST619 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+620CN=TEST0000001, OU=TEST, O=TEST TEST TEST620 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+621CN=TEST0000001, OU=TEST, O=TEST TEST TEST621 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+622CN=TEST0000001, OU=TEST, O=TEST TEST TEST622 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+623CN=TEST0000001, OU=TEST, O=TEST TEST TEST623 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+624CN=TEST0000001, OU=TEST, O=TEST TEST TEST624 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+625CN=TEST0000001, OU=TEST, O=TEST TEST TEST625 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+626CN=TEST0000001, OU=TEST, O=TEST TEST TEST626 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+627CN=TEST0000001, OU=TEST, O=TEST TEST TEST627 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+628CN=TEST0000001, OU=TEST, O=TEST TEST TEST628 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+629CN=TEST0000001, OU=TEST, O=TEST TEST TEST629 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+630CN=TEST0000001, OU=TEST, O=TEST TEST TEST630 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+631CN=TEST0000001, OU=TEST, O=TEST TEST TEST631 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+632CN=TEST0000001, OU=TEST, O=TEST TEST TEST632 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+633CN=TEST0000001, OU=TEST, O=TEST TEST TEST633 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+634CN=TEST0000001, OU=TEST, O=TEST TEST TEST634 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+635CN=TEST0000001, OU=TEST, O=TEST TEST TEST635 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+636CN=TEST0000001, OU=TEST, O=TEST TEST TEST636 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+637CN=TEST0000001, OU=TEST, O=TEST TEST TEST637 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+638CN=TEST0000001, OU=TEST, O=TEST TEST TEST638 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+639CN=TEST0000001, OU=TEST, O=TEST TEST TEST639 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+640CN=TEST0000001, OU=TEST, O=TEST TEST TEST640 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+641CN=TEST0000001, OU=TEST, O=TEST TEST TEST641 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+642CN=TEST0000001, OU=TEST, O=TEST TEST TEST642 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+643CN=TEST0000001, OU=TEST, O=TEST TEST TEST643 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+644CN=TEST0000001, OU=TEST, O=TEST TEST TEST644 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+645CN=TEST0000001, OU=TEST, O=TEST TEST TEST645 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+646CN=TEST0000001, OU=TEST, O=TEST TEST TEST646 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+647CN=TEST0000001, OU=TEST, O=TEST TEST TEST647 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+648CN=TEST0000001, OU=TEST, O=TEST TEST TEST648 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+649CN=TEST0000001, OU=TEST, O=TEST TEST TEST649 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+650CN=TEST0000001, OU=TEST, O=TEST TEST TEST650 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+651CN=TEST0000001, OU=TEST, O=TEST TEST TEST651 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+652CN=TEST0000001, OU=TEST, O=TEST TEST TEST652 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+653CN=TEST0000001, OU=TEST, O=TEST TEST TEST653 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+654CN=TEST0000001, OU=TEST, O=TEST TEST TEST654 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+655CN=TEST0000001, OU=TEST, O=TEST TEST TEST655 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+656CN=TEST0000001, OU=TEST, O=TEST TEST TEST656 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+657CN=TEST0000001, OU=TEST, O=TEST TEST TEST657 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+658CN=TEST0000001, OU=TEST, O=TEST TEST TEST658 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+659CN=TEST0000001, OU=TEST, O=TEST TEST TEST659 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+660CN=TEST0000001, OU=TEST, O=TEST TEST TEST660 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+661CN=TEST0000001, OU=TEST, O=TEST TEST TEST661 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+662CN=TEST0000001, OU=TEST, O=TEST TEST TEST662 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+663CN=TEST0000001, OU=TEST, O=TEST TEST TEST663 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+664CN=TEST0000001, OU=TEST, O=TEST TEST TEST664 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+665CN=TEST0000001, OU=TEST, O=TEST TEST TEST665 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+666CN=TEST0000001, OU=TEST, O=TEST TEST TEST666 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+667CN=TEST0000001, OU=TEST, O=TEST TEST TEST667 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+668CN=TEST0000001, OU=TEST, O=TEST TEST TEST668 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+669CN=TEST0000001, OU=TEST, O=TEST TEST TEST669 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+670CN=TEST0000001, OU=TEST, O=TEST TEST TEST670 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+671CN=TEST0000001, OU=TEST, O=TEST TEST TEST671 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+672CN=TEST0000001, OU=TEST, O=TEST TEST TEST672 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+673CN=TEST0000001, OU=TEST, O=TEST TEST TEST673 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+674CN=TEST0000001, OU=TEST, O=TEST TEST TEST674 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+675CN=TEST0000001, OU=TEST, O=TEST TEST TEST675 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+676CN=TEST0000001, OU=TEST, O=TEST TEST TEST676 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+677CN=TEST0000001, OU=TEST, O=TEST TEST TEST677 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+678CN=TEST0000001, OU=TEST, O=TEST TEST TEST678 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+679CN=TEST0000001, OU=TEST, O=TEST TEST TEST679 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+680CN=TEST0000001, OU=TEST, O=TEST TEST TEST680 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+681CN=TEST0000001, OU=TEST, O=TEST TEST TEST681 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+682CN=TEST0000001, OU=TEST, O=TEST TEST TEST682 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+683CN=TEST0000001, OU=TEST, O=TEST TEST TEST683 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+684CN=TEST0000001, OU=TEST, O=TEST TEST TEST684 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+685CN=TEST0000001, OU=TEST, O=TEST TEST TEST685 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+686CN=TEST0000001, OU=TEST, O=TEST TEST TEST686 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+687CN=TEST0000001, OU=TEST, O=TEST TEST TEST687 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+688CN=TEST0000001, OU=TEST, O=TEST TEST TEST688 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+689CN=TEST0000001, OU=TEST, O=TEST TEST TEST689 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+690CN=TEST0000001, OU=TEST, O=TEST TEST TEST690 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+691CN=TEST0000001, OU=TEST, O=TEST TEST TEST691 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+692CN=TEST0000001, OU=TEST, O=TEST TEST TEST692 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+693CN=TEST0000001, OU=TEST, O=TEST TEST TEST693 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+694CN=TEST0000001, OU=TEST, O=TEST TEST TEST694 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+695CN=TEST0000001, OU=TEST, O=TEST TEST TEST695 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+696CN=TEST0000001, OU=TEST, O=TEST TEST TEST696 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+697CN=TEST0000001, OU=TEST, O=TEST TEST TEST697 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+698CN=TEST0000001, OU=TEST, O=TEST TEST TEST698 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+699CN=TEST0000001, OU=TEST, O=TEST TEST TEST699 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+700CN=TEST0000001, OU=TEST, O=TEST TEST TEST700 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+701CN=TEST0000001, OU=TEST, O=TEST TEST TEST701 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+702CN=TEST0000001, OU=TEST, O=TEST TEST TEST702 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+703CN=TEST0000001, OU=TEST, O=TEST TEST TEST703 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+704CN=TEST0000001, OU=TEST, O=TEST TEST TEST704 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+705CN=TEST0000001, OU=TEST, O=TEST TEST TEST705 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+706CN=TEST0000001, OU=TEST, O=TEST TEST TEST706 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+707CN=TEST0000001, OU=TEST, O=TEST TEST TEST707 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+708CN=TEST0000001, OU=TEST, O=TEST TEST TEST708 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+709CN=TEST0000001, OU=TEST, O=TEST TEST TEST709 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+710CN=TEST0000001, OU=TEST, O=TEST TEST TEST710 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+711CN=TEST0000001, OU=TEST, O=TEST TEST TEST711 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+712CN=TEST0000001, OU=TEST, O=TEST TEST TEST712 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+713CN=TEST0000001, OU=TEST, O=TEST TEST TEST713 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+714CN=TEST0000001, OU=TEST, O=TEST TEST TEST714 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+715CN=TEST0000001, OU=TEST, O=TEST TEST TEST715 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+716CN=TEST0000001, OU=TEST, O=TEST TEST TEST716 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+717CN=TEST0000001, OU=TEST, O=TEST TEST TEST717 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+718CN=TEST0000001, OU=TEST, O=TEST TEST TEST718 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+719CN=TEST0000001, OU=TEST, O=TEST TEST TEST719 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+720CN=TEST0000001, OU=TEST, O=TEST TEST TEST720 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+721CN=TEST0000001, OU=TEST, O=TEST TEST TEST721 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+722CN=TEST0000001, OU=TEST, O=TEST TEST TEST722 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+723CN=TEST0000001, OU=TEST, O=TEST TEST TEST723 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+724CN=TEST0000001, OU=TEST, O=TEST TEST TEST724 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+725CN=TEST0000001, OU=TEST, O=TEST TEST TEST725 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+726CN=TEST0000001, OU=TEST, O=TEST TEST TEST726 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+727CN=TEST0000001, OU=TEST, O=TEST TEST TEST727 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+728CN=TEST0000001, OU=TEST, O=TEST TEST TEST728 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+729CN=TEST0000001, OU=TEST, O=TEST TEST TEST729 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+730CN=TEST0000001, OU=TEST, O=TEST TEST TEST730 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+731CN=TEST0000001, OU=TEST, O=TEST TEST TEST731 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+732CN=TEST0000001, OU=TEST, O=TEST TEST TEST732 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+733CN=TEST0000001, OU=TEST, O=TEST TEST TEST733 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+734CN=TEST0000001, OU=TEST, O=TEST TEST TEST734 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+735CN=TEST0000001, OU=TEST, O=TEST TEST TEST735 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+736CN=TEST0000001, OU=TEST, O=TEST TEST TEST736 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+737CN=TEST0000001, OU=TEST, O=TEST TEST TEST737 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+738CN=TEST0000001, OU=TEST, O=TEST TEST TEST738 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+739CN=TEST0000001, OU=TEST, O=TEST TEST TEST739 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+740CN=TEST0000001, OU=TEST, O=TEST TEST TEST740 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+741CN=TEST0000001, OU=TEST, O=TEST TEST TEST741 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+742CN=TEST0000001, OU=TEST, O=TEST TEST TEST742 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+743CN=TEST0000001, OU=TEST, O=TEST TEST TEST743 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+744CN=TEST0000001, OU=TEST, O=TEST TEST TEST744 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+745CN=TEST0000001, OU=TEST, O=TEST TEST TEST745 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+746CN=TEST0000001, OU=TEST, O=TEST TEST TEST746 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+747CN=TEST0000001, OU=TEST, O=TEST TEST TEST747 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+748CN=TEST0000001, OU=TEST, O=TEST TEST TEST748 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+749CN=TEST0000001, OU=TEST, O=TEST TEST TEST749 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+750CN=TEST0000001, OU=TEST, O=TEST TEST TEST750 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+751CN=TEST0000001, OU=TEST, O=TEST TEST TEST751 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+752CN=TEST0000001, OU=TEST, O=TEST TEST TEST752 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+753CN=TEST0000001, OU=TEST, O=TEST TEST TEST753 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+754CN=TEST0000001, OU=TEST, O=TEST TEST TEST754 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+755CN=TEST0000001, OU=TEST, O=TEST TEST TEST755 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+756CN=TEST0000001, OU=TEST, O=TEST TEST TEST756 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+757CN=TEST0000001, OU=TEST, O=TEST TEST TEST757 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+758CN=TEST0000001, OU=TEST, O=TEST TEST TEST758 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+759CN=TEST0000001, OU=TEST, O=TEST TEST TEST759 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+760CN=TEST0000001, OU=TEST, O=TEST TEST TEST760 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+761CN=TEST0000001, OU=TEST, O=TEST TEST TEST761 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+762CN=TEST0000001, OU=TEST, O=TEST TEST TEST762 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+763CN=TEST0000001, OU=TEST, O=TEST TEST TEST763 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+764CN=TEST0000001, OU=TEST, O=TEST TEST TEST764 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+765CN=TEST0000001, OU=TEST, O=TEST TEST TEST765 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+766CN=TEST0000001, OU=TEST, O=TEST TEST TEST766 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+767CN=TEST0000001, OU=TEST, O=TEST TEST TEST767 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+768CN=TEST0000001, OU=TEST, O=TEST TEST TEST768 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+769CN=TEST0000001, OU=TEST, O=TEST TEST TEST769 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+770CN=TEST0000001, OU=TEST, O=TEST TEST TEST770 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+771CN=TEST0000001, OU=TEST, O=TEST TEST TEST771 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+772CN=TEST0000001, OU=TEST, O=TEST TEST TEST772 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+773CN=TEST0000001, OU=TEST, O=TEST TEST TEST773 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+774CN=TEST0000001, OU=TEST, O=TEST TEST TEST774 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+775CN=TEST0000001, OU=TEST, O=TEST TEST TEST775 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+776CN=TEST0000001, OU=TEST, O=TEST TEST TEST776 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+777CN=TEST0000001, OU=TEST, O=TEST TEST TEST777 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+778CN=TEST0000001, OU=TEST, O=TEST TEST TEST778 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+779CN=TEST0000001, OU=TEST, O=TEST TEST TEST779 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+780CN=TEST0000001, OU=TEST, O=TEST TEST TEST780 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+781CN=TEST0000001, OU=TEST, O=TEST TEST TEST781 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+782CN=TEST0000001, OU=TEST, O=TEST TEST TEST782 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+783CN=TEST0000001, OU=TEST, O=TEST TEST TEST783 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+784CN=TEST0000001, OU=TEST, O=TEST TEST TEST784 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+785CN=TEST0000001, OU=TEST, O=TEST TEST TEST785 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+786CN=TEST0000001, OU=TEST, O=TEST TEST TEST786 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+787CN=TEST0000001, OU=TEST, O=TEST TEST TEST787 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+788CN=TEST0000001, OU=TEST, O=TEST TEST TEST788 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+789CN=TEST0000001, OU=TEST, O=TEST TEST TEST789 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+790CN=TEST0000001, OU=TEST, O=TEST TEST TEST790 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+791CN=TEST0000001, OU=TEST, O=TEST TEST TEST791 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+792CN=TEST0000001, OU=TEST, O=TEST TEST TEST792 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+793CN=TEST0000001, OU=TEST, O=TEST TEST TEST793 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+794CN=TEST0000001, OU=TEST, O=TEST TEST TEST794 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+795CN=TEST0000001, OU=TEST, O=TEST TEST TEST795 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+796CN=TEST0000001, OU=TEST, O=TEST TEST TEST796 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+797CN=TEST0000001, OU=TEST, O=TEST TEST TEST797 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+798CN=TEST0000001, OU=TEST, O=TEST TEST TEST798 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+799CN=TEST0000001, OU=TEST, O=TEST TEST TEST799 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+800CN=TEST0000001, OU=TEST, O=TEST TEST TEST800 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+801CN=TEST0000001, OU=TEST, O=TEST TEST TEST801 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+802CN=TEST0000001, OU=TEST, O=TEST TEST TEST802 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+803CN=TEST0000001, OU=TEST, O=TEST TEST TEST803 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+804CN=TEST0000001, OU=TEST, O=TEST TEST TEST804 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+805CN=TEST0000001, OU=TEST, O=TEST TEST TEST805 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+806CN=TEST0000001, OU=TEST, O=TEST TEST TEST806 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+807CN=TEST0000001, OU=TEST, O=TEST TEST TEST807 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+808CN=TEST0000001, OU=TEST, O=TEST TEST TEST808 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+809CN=TEST0000001, OU=TEST, O=TEST TEST TEST809 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+810CN=TEST0000001, OU=TEST, O=TEST TEST TEST810 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+811CN=TEST0000001, OU=TEST, O=TEST TEST TEST811 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+812CN=TEST0000001, OU=TEST, O=TEST TEST TEST812 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+813CN=TEST0000001, OU=TEST, O=TEST TEST TEST813 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+814CN=TEST0000001, OU=TEST, O=TEST TEST TEST814 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+815CN=TEST0000001, OU=TEST, O=TEST TEST TEST815 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+816CN=TEST0000001, OU=TEST, O=TEST TEST TEST816 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+817CN=TEST0000001, OU=TEST, O=TEST TEST TEST817 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+818CN=TEST0000001, OU=TEST, O=TEST TEST TEST818 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+819CN=TEST0000001, OU=TEST, O=TEST TEST TEST819 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+820CN=TEST0000001, OU=TEST, O=TEST TEST TEST820 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+821CN=TEST0000001, OU=TEST, O=TEST TEST TEST821 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+822CN=TEST0000001, OU=TEST, O=TEST TEST TEST822 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+823CN=TEST0000001, OU=TEST, O=TEST TEST TEST823 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+824CN=TEST0000001, OU=TEST, O=TEST TEST TEST824 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+825CN=TEST0000001, OU=TEST, O=TEST TEST TEST825 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+826CN=TEST0000001, OU=TEST, O=TEST TEST TEST826 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+827CN=TEST0000001, OU=TEST, O=TEST TEST TEST827 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+828CN=TEST0000001, OU=TEST, O=TEST TEST TEST828 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+829CN=TEST0000001, OU=TEST, O=TEST TEST TEST829 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+830CN=TEST0000001, OU=TEST, O=TEST TEST TEST830 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+831CN=TEST0000001, OU=TEST, O=TEST TEST TEST831 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+832CN=TEST0000001, OU=TEST, O=TEST TEST TEST832 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+833CN=TEST0000001, OU=TEST, O=TEST TEST TEST833 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+834CN=TEST0000001, OU=TEST, O=TEST TEST TEST834 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+835CN=TEST0000001, OU=TEST, O=TEST TEST TEST835 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+836CN=TEST0000001, OU=TEST, O=TEST TEST TEST836 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+837CN=TEST0000001, OU=TEST, O=TEST TEST TEST837 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+838CN=TEST0000001, OU=TEST, O=TEST TEST TEST838 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+839CN=TEST0000001, OU=TEST, O=TEST TEST TEST839 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+840CN=TEST0000001, OU=TEST, O=TEST TEST TEST840 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+841CN=TEST0000001, OU=TEST, O=TEST TEST TEST841 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+842CN=TEST0000001, OU=TEST, O=TEST TEST TEST842 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+843CN=TEST0000001, OU=TEST, O=TEST TEST TEST843 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+844CN=TEST0000001, OU=TEST, O=TEST TEST TEST844 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+845CN=TEST0000001, OU=TEST, O=TEST TEST TEST845 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+846CN=TEST0000001, OU=TEST, O=TEST TEST TEST846 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+847CN=TEST0000001, OU=TEST, O=TEST TEST TEST847 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+848CN=TEST0000001, OU=TEST, O=TEST TEST TEST848 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+849CN=TEST0000001, OU=TEST, O=TEST TEST TEST849 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+850CN=TEST0000001, OU=TEST, O=TEST TEST TEST850 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+851CN=TEST0000001, OU=TEST, O=TEST TEST TEST851 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+852CN=TEST0000001, OU=TEST, O=TEST TEST TEST852 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+853CN=TEST0000001, OU=TEST, O=TEST TEST TEST853 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+854CN=TEST0000001, OU=TEST, O=TEST TEST TEST854 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+855CN=TEST0000001, OU=TEST, O=TEST TEST TEST855 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+856CN=TEST0000001, OU=TEST, O=TEST TEST TEST856 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+857CN=TEST0000001, OU=TEST, O=TEST TEST TEST857 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+858CN=TEST0000001, OU=TEST, O=TEST TEST TEST858 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+859CN=TEST0000001, OU=TEST, O=TEST TEST TEST859 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+860CN=TEST0000001, OU=TEST, O=TEST TEST TEST860 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+861CN=TEST0000001, OU=TEST, O=TEST TEST TEST861 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+862CN=TEST0000001, OU=TEST, O=TEST TEST TEST862 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+863CN=TEST0000001, OU=TEST, O=TEST TEST TEST863 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+864CN=TEST0000001, OU=TEST, O=TEST TEST TEST864 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+865CN=TEST0000001, OU=TEST, O=TEST TEST TEST865 TEST TEST TEST TEST TEST TEST, L=TEST, ST=TEST, C=GB
+866CN=TEST0000001, 

<TRUNCATED>

[4/4] activemq-artemis git commit: This closes #239

Posted by cl...@apache.org.
This closes #239


Project: http://git-wip-us.apache.org/repos/asf/activemq-artemis/repo
Commit: http://git-wip-us.apache.org/repos/asf/activemq-artemis/commit/74c20ea9
Tree: http://git-wip-us.apache.org/repos/asf/activemq-artemis/tree/74c20ea9
Diff: http://git-wip-us.apache.org/repos/asf/activemq-artemis/diff/74c20ea9

Branch: refs/heads/master
Commit: 74c20ea92751ba8461281a6c4b68deb5b0570aa7
Parents: 08e5245 ae70d71
Author: Clebert Suconic <cl...@apache.org>
Authored: Mon Nov 9 15:41:23 2015 -0500
Committer: Clebert Suconic <cl...@apache.org>
Committed: Mon Nov 9 15:41:23 2015 -0500

----------------------------------------------------------------------
 .../security/jaas/CertificateLoginModule.java   |      9 +-
 .../core/security/jaas/PrincipalProperties.java |     75 -
 .../core/security/jaas/PropertiesLoader.java    |    137 +
 .../security/jaas/PropertiesLoginModule.java    |     86 +-
 .../security/jaas/ReloadableProperties.java     |     99 +
 .../jaas/TextFileCertificateLoginModule.java    |     62 +-
 .../PropertiesLoginModuleRaceConditionTest.java |      3 +-
 .../core/security/jaas/StubX509Certificate.java |    137 +
 .../TextFileCertificateLoginModuleTest.java     |    123 +
 .../src/test/resources/cert-roles.properties    |     16 +
 .../test/resources/cert-users-LARGE.properties  | 200026 ++++++++++++++++
 .../test/resources/cert-users-SMALL.properties  |    116 +
 12 files changed, 200682 insertions(+), 207 deletions(-)
----------------------------------------------------------------------