新注册的用户请输入邮箱并保存,随后登录邮箱激活账号。后续可直接使用邮箱登录!

Commit cf123144 authored by colinlong's avatar colinlong

Initial commit

HELP.md
target/
!.mvn/wrapper/maven-wrapper.jar
!**/src/main/**/target/
!**/src/test/**/target/
### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache
### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr
### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/
build/
!**/src/main/**/build/
!**/src/test/**/build/
### VS Code ###
.vscode/
/*
* Copyright 2007-present the original author or authors.
*
* Licensed 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
*
* https://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.
*/
import java.net.*;
import java.io.*;
import java.nio.channels.*;
import java.util.Properties;
public class MavenWrapperDownloader {
private static final String WRAPPER_VERSION = "0.5.6";
/**
* Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided.
*/
private static final String DEFAULT_DOWNLOAD_URL = "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/"
+ WRAPPER_VERSION + "/maven-wrapper-" + WRAPPER_VERSION + ".jar";
/**
* Path to the maven-wrapper.properties file, which might contain a downloadUrl property to
* use instead of the default one.
*/
private static final String MAVEN_WRAPPER_PROPERTIES_PATH =
".mvn/wrapper/maven-wrapper.properties";
/**
* Path where the maven-wrapper.jar will be saved to.
*/
private static final String MAVEN_WRAPPER_JAR_PATH =
".mvn/wrapper/maven-wrapper.jar";
/**
* Name of the property which should be used to override the default download url for the wrapper.
*/
private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl";
public static void main(String args[]) {
System.out.println("- Downloader started");
File baseDirectory = new File(args[0]);
System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath());
// If the maven-wrapper.properties exists, read it and check if it contains a custom
// wrapperUrl parameter.
File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH);
String url = DEFAULT_DOWNLOAD_URL;
if (mavenWrapperPropertyFile.exists()) {
FileInputStream mavenWrapperPropertyFileInputStream = null;
try {
mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile);
Properties mavenWrapperProperties = new Properties();
mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream);
url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url);
} catch (IOException e) {
System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'");
} finally {
try {
if (mavenWrapperPropertyFileInputStream != null) {
mavenWrapperPropertyFileInputStream.close();
}
} catch (IOException e) {
// Ignore ...
}
}
}
System.out.println("- Downloading from: " + url);
File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH);
if (!outputFile.getParentFile().exists()) {
if (!outputFile.getParentFile().mkdirs()) {
System.out.println(
"- ERROR creating output directory '" + outputFile.getParentFile().getAbsolutePath() + "'");
}
}
System.out.println("- Downloading to: " + outputFile.getAbsolutePath());
try {
downloadFileFromURL(url, outputFile);
System.out.println("Done");
System.exit(0);
} catch (Throwable e) {
System.out.println("- Error downloading");
e.printStackTrace();
System.exit(1);
}
}
private static void downloadFileFromURL(String urlString, File destination) throws Exception {
if (System.getenv("MVNW_USERNAME") != null && System.getenv("MVNW_PASSWORD") != null) {
String username = System.getenv("MVNW_USERNAME");
char[] password = System.getenv("MVNW_PASSWORD").toCharArray();
Authenticator.setDefault(new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
});
}
URL website = new URL(urlString);
ReadableByteChannel rbc;
rbc = Channels.newChannel(website.openStream());
FileOutputStream fos = new FileOutputStream(destination);
fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
fos.close();
rbc.close();
}
}
File added
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.2/apache-maven-3.8.2-bin.zip
wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar
File added
#!/bin/sh
# ----------------------------------------------------------------------------
# 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
#
# https://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.
# ----------------------------------------------------------------------------
# ----------------------------------------------------------------------------
# Maven Start Up Batch script
#
# Required ENV vars:
# ------------------
# JAVA_HOME - location of a JDK home dir
#
# Optional ENV vars
# -----------------
# M2_HOME - location of maven2's installed home dir
# MAVEN_OPTS - parameters passed to the Java VM when running Maven
# e.g. to debug Maven itself, use
# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
# MAVEN_SKIP_RC - flag to disable loading of mavenrc files
# ----------------------------------------------------------------------------
if [ -z "$MAVEN_SKIP_RC" ] ; then
if [ -f /etc/mavenrc ] ; then
. /etc/mavenrc
fi
if [ -f "$HOME/.mavenrc" ] ; then
. "$HOME/.mavenrc"
fi
fi
# OS specific support. $var _must_ be set to either true or false.
cygwin=false;
darwin=false;
mingw=false
case "`uname`" in
CYGWIN*) cygwin=true ;;
MINGW*) mingw=true;;
Darwin*) darwin=true
# Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home
# See https://developer.apple.com/library/mac/qa/qa1170/_index.html
if [ -z "$JAVA_HOME" ]; then
if [ -x "/usr/libexec/java_home" ]; then
export JAVA_HOME="`/usr/libexec/java_home`"
else
export JAVA_HOME="/Library/Java/Home"
fi
fi
;;
esac
if [ -z "$JAVA_HOME" ] ; then
if [ -r /etc/gentoo-release ] ; then
JAVA_HOME=`java-config --jre-home`
fi
fi
if [ -z "$M2_HOME" ] ; then
## resolve links - $0 may be a link to maven's home
PRG="$0"
# need this for relative symlinks
while [ -h "$PRG" ] ; do
ls=`ls -ld "$PRG"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
PRG="$link"
else
PRG="`dirname "$PRG"`/$link"
fi
done
saveddir=`pwd`
M2_HOME=`dirname "$PRG"`/..
# make it fully qualified
M2_HOME=`cd "$M2_HOME" && pwd`
cd "$saveddir"
# echo Using m2 at $M2_HOME
fi
# For Cygwin, ensure paths are in UNIX format before anything is touched
if $cygwin ; then
[ -n "$M2_HOME" ] &&
M2_HOME=`cygpath --unix "$M2_HOME"`
[ -n "$JAVA_HOME" ] &&
JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
[ -n "$CLASSPATH" ] &&
CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
fi
# For Mingw, ensure paths are in UNIX format before anything is touched
if $mingw ; then
[ -n "$M2_HOME" ] &&
M2_HOME="`(cd "$M2_HOME"; pwd)`"
[ -n "$JAVA_HOME" ] &&
JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
fi
if [ -z "$JAVA_HOME" ]; then
javaExecutable="`which javac`"
if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then
# readlink(1) is not available as standard on Solaris 10.
readLink=`which readlink`
if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then
if $darwin ; then
javaHome="`dirname \"$javaExecutable\"`"
javaExecutable="`cd \"$javaHome\" && pwd -P`/javac"
else
javaExecutable="`readlink -f \"$javaExecutable\"`"
fi
javaHome="`dirname \"$javaExecutable\"`"
javaHome=`expr "$javaHome" : '\(.*\)/bin'`
JAVA_HOME="$javaHome"
export JAVA_HOME
fi
fi
fi
if [ -z "$JAVACMD" ] ; then
if [ -n "$JAVA_HOME" ] ; then
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
# IBM's JDK on AIX uses strange locations for the executables
JAVACMD="$JAVA_HOME/jre/sh/java"
else
JAVACMD="$JAVA_HOME/bin/java"
fi
else
JAVACMD="`which java`"
fi
fi
if [ ! -x "$JAVACMD" ] ; then
echo "Error: JAVA_HOME is not defined correctly." >&2
echo " We cannot execute $JAVACMD" >&2
exit 1
fi
if [ -z "$JAVA_HOME" ] ; then
echo "Warning: JAVA_HOME environment variable is not set."
fi
CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
# traverses directory structure from process work directory to filesystem root
# first directory with .mvn subdirectory is considered project base directory
find_maven_basedir() {
if [ -z "$1" ]
then
echo "Path not specified to find_maven_basedir"
return 1
fi
basedir="$1"
wdir="$1"
while [ "$wdir" != '/' ] ; do
if [ -d "$wdir"/.mvn ] ; then
basedir=$wdir
break
fi
# workaround for JBEAP-8937 (on Solaris 10/Sparc)
if [ -d "${wdir}" ]; then
wdir=`cd "$wdir/.."; pwd`
fi
# end of workaround
done
echo "${basedir}"
}
# concatenates all lines of a file
concat_lines() {
if [ -f "$1" ]; then
echo "$(tr -s '\n' ' ' < "$1")"
fi
}
BASE_DIR=`find_maven_basedir "$(pwd)"`
if [ -z "$BASE_DIR" ]; then
exit 1;
fi
##########################################################################################
# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
# This allows using the maven wrapper in projects that prohibit checking in binary data.
##########################################################################################
if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then
if [ "$MVNW_VERBOSE" = true ]; then
echo "Found .mvn/wrapper/maven-wrapper.jar"
fi
else
if [ "$MVNW_VERBOSE" = true ]; then
echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..."
fi
if [ -n "$MVNW_REPOURL" ]; then
jarUrl="$MVNW_REPOURL/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
else
jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
fi
while IFS="=" read key value; do
case "$key" in (wrapperUrl) jarUrl="$value"; break ;;
esac
done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties"
if [ "$MVNW_VERBOSE" = true ]; then
echo "Downloading from: $jarUrl"
fi
wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar"
if $cygwin; then
wrapperJarPath=`cygpath --path --windows "$wrapperJarPath"`
fi
if command -v wget > /dev/null; then
if [ "$MVNW_VERBOSE" = true ]; then
echo "Found wget ... using wget"
fi
if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
wget "$jarUrl" -O "$wrapperJarPath"
else
wget --http-user=$MVNW_USERNAME --http-password=$MVNW_PASSWORD "$jarUrl" -O "$wrapperJarPath"
fi
elif command -v curl > /dev/null; then
if [ "$MVNW_VERBOSE" = true ]; then
echo "Found curl ... using curl"
fi
if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
curl -o "$wrapperJarPath" "$jarUrl" -f
else
curl --user $MVNW_USERNAME:$MVNW_PASSWORD -o "$wrapperJarPath" "$jarUrl" -f
fi
else
if [ "$MVNW_VERBOSE" = true ]; then
echo "Falling back to using Java to download"
fi
javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java"
# For Cygwin, switch paths to Windows format before running javac
if $cygwin; then
javaClass=`cygpath --path --windows "$javaClass"`
fi
if [ -e "$javaClass" ]; then
if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
if [ "$MVNW_VERBOSE" = true ]; then
echo " - Compiling MavenWrapperDownloader.java ..."
fi
# Compiling the Java class
("$JAVA_HOME/bin/javac" "$javaClass")
fi
if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
# Running the downloader
if [ "$MVNW_VERBOSE" = true ]; then
echo " - Running MavenWrapperDownloader.java ..."
fi
("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR")
fi
fi
fi
fi
##########################################################################################
# End of extension
##########################################################################################
export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}
if [ "$MVNW_VERBOSE" = true ]; then
echo $MAVEN_PROJECTBASEDIR
fi
MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
# For Cygwin, switch paths to Windows format before running java
if $cygwin; then
[ -n "$M2_HOME" ] &&
M2_HOME=`cygpath --path --windows "$M2_HOME"`
[ -n "$JAVA_HOME" ] &&
JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
[ -n "$CLASSPATH" ] &&
CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
[ -n "$MAVEN_PROJECTBASEDIR" ] &&
MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"`
fi
# Provide a "standardized" way to retrieve the CLI args that will
# work with both Windows and non-Windows executions.
MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@"
export MAVEN_CMD_LINE_ARGS
WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
exec "$JAVACMD" \
$MAVEN_OPTS \
-classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
"-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@"
@REM ----------------------------------------------------------------------------
@REM Licensed to the Apache Software Foundation (ASF) under one
@REM or more contributor license agreements. See the NOTICE file
@REM distributed with this work for additional information
@REM regarding copyright ownership. The ASF licenses this file
@REM to you under the Apache License, Version 2.0 (the
@REM "License"); you may not use this file except in compliance
@REM with the License. You may obtain a copy of the License at
@REM
@REM https://www.apache.org/licenses/LICENSE-2.0
@REM
@REM Unless required by applicable law or agreed to in writing,
@REM software distributed under the License is distributed on an
@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@REM KIND, either express or implied. See the License for the
@REM specific language governing permissions and limitations
@REM under the License.
@REM ----------------------------------------------------------------------------
@REM ----------------------------------------------------------------------------
@REM Maven Start Up Batch script
@REM
@REM Required ENV vars:
@REM JAVA_HOME - location of a JDK home dir
@REM
@REM Optional ENV vars
@REM M2_HOME - location of maven2's installed home dir
@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending
@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
@REM e.g. to debug Maven itself, use
@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
@REM ----------------------------------------------------------------------------
@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
@echo off
@REM set title of command window
title %0
@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on'
@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO%
@REM set %HOME% to equivalent of $HOME
if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
@REM Execute a user defined script before this one
if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
@REM check for pre script, once with legacy .bat ending and once with .cmd ending
if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat"
if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd"
:skipRcPre
@setlocal
set ERROR_CODE=0
@REM To isolate internal variables from possible post scripts, we use another setlocal
@setlocal
@REM ==== START VALIDATION ====
if not "%JAVA_HOME%" == "" goto OkJHome
echo.
echo Error: JAVA_HOME not found in your environment. >&2
echo Please set the JAVA_HOME variable in your environment to match the >&2
echo location of your Java installation. >&2
echo.
goto error
:OkJHome
if exist "%JAVA_HOME%\bin\java.exe" goto init
echo.
echo Error: JAVA_HOME is set to an invalid directory. >&2
echo JAVA_HOME = "%JAVA_HOME%" >&2
echo Please set the JAVA_HOME variable in your environment to match the >&2
echo location of your Java installation. >&2
echo.
goto error
@REM ==== END VALIDATION ====
:init
@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
@REM Fallback to current working directory if not found.
set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
set EXEC_DIR=%CD%
set WDIR=%EXEC_DIR%
:findBaseDir
IF EXIST "%WDIR%"\.mvn goto baseDirFound
cd ..
IF "%WDIR%"=="%CD%" goto baseDirNotFound
set WDIR=%CD%
goto findBaseDir
:baseDirFound
set MAVEN_PROJECTBASEDIR=%WDIR%
cd "%EXEC_DIR%"
goto endDetectBaseDir
:baseDirNotFound
set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
cd "%EXEC_DIR%"
:endDetectBaseDir
IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
@setlocal EnableExtensions EnableDelayedExpansion
for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
:endReadAdditionalConfig
SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
FOR /F "tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO (
IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B
)
@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
@REM This allows using the maven wrapper in projects that prohibit checking in binary data.
if exist %WRAPPER_JAR% (
if "%MVNW_VERBOSE%" == "true" (
echo Found %WRAPPER_JAR%
)
) else (
if not "%MVNW_REPOURL%" == "" (
SET DOWNLOAD_URL="%MVNW_REPOURL%/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
)
if "%MVNW_VERBOSE%" == "true" (
echo Couldn't find %WRAPPER_JAR%, downloading it ...
echo Downloading from: %DOWNLOAD_URL%
)
powershell -Command "&{"^
"$webclient = new-object System.Net.WebClient;"^
"if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^
"$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^
"}"^
"[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^
"}"
if "%MVNW_VERBOSE%" == "true" (
echo Finished downloading %WRAPPER_JAR%
)
)
@REM End of extension
@REM Provide a "standardized" way to retrieve the CLI args that will
@REM work with both Windows and non-Windows executions.
set MAVEN_CMD_LINE_ARGS=%*
%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
if ERRORLEVEL 1 goto error
goto end
:error
set ERROR_CODE=1
:end
@endlocal & set ERROR_CODE=%ERROR_CODE%
if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost
@REM check for post script, once with legacy .bat ending and once with .cmd ending
if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat"
if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd"
:skipRcPost
@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
if "%MAVEN_BATCH_PAUSE%" == "on" pause
if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE%
exit /B %ERROR_CODE%
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.5</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>chainmaker.sdk</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>demo</name>
<description>java sdk Demo</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!--依赖java-sdk本地jar包-->
<dependency>
<groupId>org.chainmaker</groupId>
<artifactId>chainmaker-sdk-java</artifactId>
<version>1.2.6</version>
</dependency>
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-tcnative-openssl-static</artifactId>
<scope>system</scope>
<version>2.0.39.Final</version>
<systemPath>${project.basedir}/lib/netty-tcnative-openssl-static-2.0.39.Final.jar</systemPath>
</dependency>
<!-- java-sdk中的依赖 -->
<dependency>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
<version>3.2.2</version>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcpkix-jdk15on</artifactId>
<version>1.62</version>
</dependency>
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-tcnative-boringssl-static</artifactId>
<version>2.0.39.Final</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.6</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.62</version>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java-util</artifactId>
<version>3.2.0</version>
<exclusions>
<exclusion>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
</exclusion>
<exclusion>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-handler</artifactId>
<version>4.1.53.Final</version>
</dependency>
<dependency>
<groupId>io.grpc</groupId>
<artifactId>grpc-api</artifactId>
<version>1.23.0</version>
</dependency>
<dependency>
<groupId>io.grpc</groupId>
<artifactId>grpc-netty</artifactId>
<version>1.23.0</version>
</dependency>
<dependency>
<groupId>io.grpc</groupId>
<artifactId>grpc-stub</artifactId>
<version>1.23.0</version>
</dependency>
<dependency>
<groupId>io.grpc</groupId>
<artifactId>grpc-protobuf</artifactId>
<version>1.23.0</version>
</dependency>
<!-- <dependency>-->
<!-- <groupId>org.projectlombok</groupId>-->
<!-- <artifactId>lombok</artifactId>-->
<!-- <version>1.18.16</version>-->
<!-- </dependency>-->
<dependency>
<groupId>org.web3j</groupId>
<artifactId>abi</artifactId>
<version>5.0.0</version>
</dependency>
<!-- <dependency>-->
<!-- <groupId>mysql</groupId>-->
<!-- <artifactId>mysql-connector-java</artifactId>-->
<!-- <version>8.0.21</version>-->
<!-- </dependency>-->
<dependency>
<groupId>net.java.dev.jna</groupId>
<artifactId>jna</artifactId>
<version>5.6.0</version>
</dependency>
<!--spring boot-->
<!-- <dependency>-->
<!-- <groupId>ch.qos.logback</groupId>-->
<!-- <artifactId>logback-classic</artifactId>-->
<!-- <version>1.2.3</version>-->
<!-- </dependency>-->
<!--spring boot-->
<!-- <dependency>-->
<!-- <groupId>org.yaml</groupId>-->
<!-- <artifactId>snakeyaml</artifactId>-->
<!-- <version>1.29</version>-->
<!-- </dependency>-->
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<!-- 打包时包含引入的外部jar包 -->
<includeSystemScope>true</includeSystemScope>
</configuration>
<version>2.2.2.RELEASE</version>
</plugin>
</plugins>
</build>
</project>
package chainmaker.sdk.demo;
import org.chainmaker.pb.config.ChainConfigOuterClass;
import org.chainmaker.sdk.ChainClient;
public class ChainConfig {
public static void getChainConfig(ChainClient chainClient) {
ChainConfigOuterClass.ChainConfig chainConfig = null;
try {
chainConfig = chainClient.getChainConfig(20000);
} catch (Exception e) {
e.printStackTrace();
}
System.out.println(chainConfig.toString());
}
// public static void updateChainConfig(ChainClient chainClient, User adminUser1, User adminUser2, User adminUser3) {
// ResultOuterClass.TxResponse responseInfo = null;
// try {
// Request.Payload payload = chainClient.createPayloadOfChainConfigBlockUpdate(false,
// 9002, 200, 225, 2000, 10000);
// Request.EndorsementEntry[] endorsementEntries = SdkUtils.getEndorsers(payload,
// new User[]{adminUser1, adminUser2, adminUser3});
// responseInfo = chainClient.updateChainConfig(payload, endorsementEntries, 10000, 10000);
// } catch (Exception e) {
// e.printStackTrace();
// }
// System.out.println(responseInfo);
// }
}
package chainmaker.sdk.demo;
import org.chainmaker.pb.common.ContractOuterClass;
import org.chainmaker.sdk.ChainClient;
import org.chainmaker.sdk.ResponseInfo;
import org.chainmaker.sdk.User;
import org.chainmaker.sdk.utils.FileUtils;
public class Contract {
private static final String QUERY_CONTRACT_METHOD = "query";
private static final String INVOKE_CONTRACT_METHOD = "increase";
private static final String CONTRACT_NAME = "counter";
private static final String CONTRACT_FILE_PATH = "rust-fact-1.0.0.wasm";
public static void createContract(ChainClient chainClient, User adminUser1, User adminUser2, User adminUser3) {
ResponseInfo responseInfo = null;
try {
byte[] byteCode = FileUtils.getResourceFileBytes(CONTRACT_FILE_PATH);
// 1. create payload
byte[] payload = chainClient.createPayloadOfContractCreation(CONTRACT_NAME,
"1", ContractOuterClass.RuntimeType.WASMER, null, byteCode);
// 2. create payloads with endorsement
byte[] payloadWithEndorsement1 = adminUser1.signPayloadOfContractMgmt(payload, chainClient.isEnabledCertHash());
// 3. merge endorsements using payloadsWithEndorsement
byte[][] payloadsWithEndorsement = new byte[1][];
payloadsWithEndorsement[0] = payloadWithEndorsement1;
byte[] payloadWithEndorsement = chainClient.mergeSignedPayloadsOfContractMgmt(payloadsWithEndorsement);
// 4. create contract
responseInfo = chainClient.createContract(payloadWithEndorsement, 10000, 10000);
} catch (Exception e) {
e.printStackTrace();
return;
}
System.out.println(responseInfo.getTxResponse().getMessage());
}
public static void invokeContract(ChainClient chainClient) {
ResponseInfo responseInfo = null;
try {
responseInfo = chainClient.invokeContract(CONTRACT_NAME, INVOKE_CONTRACT_METHOD, null, 10000, 10000);
} catch (Exception e) {
e.printStackTrace();
return;
}
System.out.println(responseInfo.getTxResponse().getMessage());
}
public static void queryContract(ChainClient chainClient) {
ResponseInfo responseInfo = null;
try {
responseInfo = chainClient.queryContract(CONTRACT_NAME, QUERY_CONTRACT_METHOD, null, 10000);
} catch (Exception e) {
e.printStackTrace();
return;
}
System.out.println(responseInfo.getTxResponse().getMessage());
}
}
package chainmaker.sdk.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import static chainmaker.sdk.demo.InitClient.inItChainClient;
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) throws Exception {
SpringApplication.run(DemoApplication.class, args);
inItChainClient();
//查询链配置
ChainConfig.getChainConfig(InitClient.chainClient);
//创建合约
// Contract.createContract(InitClient.chainClient, InitClient.adminUser1, InitClient.adminUser2, InitClient.adminUser3);
//调用合约
// Contract.invokeContract(InitClient.chainClient);
}
}
package chainmaker.sdk.demo;
import org.chainmaker.sdk.ChainClient;
import org.chainmaker.sdk.ChainManager;
import org.chainmaker.sdk.Node;
import org.chainmaker.sdk.User;
import org.chainmaker.sdk.config.NodeConfig;
import org.chainmaker.sdk.config.SdkConfig;
import org.chainmaker.sdk.utils.FileUtils;
import org.yaml.snakeyaml.Yaml;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
public class InitClient {
private static final String OPENSSL_PROVIDER = "openSSL";
private static final String TLS_NEGOTIATION = "TLS";
static final String ADMIN1_KEY_PATH = "crypto-config/wx-org1.chainmaker.org/user/admin1/admin1.sign.key";
static final String ADMIN1_CERT_PATH = "crypto-config/wx-org1.chainmaker.org/user/admin1/admin1.sign.crt";
static final String ADMIN2_KEY_PATH = "crypto-config/wx-org2.chainmaker.org/user/admin1/admin1.sign.key";
static final String ADMIN2_CERT_PATH = "crypto-config/wx-org2.chainmaker.org/user/admin1/admin1.sign.crt";
static final String ADMIN3_KEY_PATH = "crypto-config/wx-org3.chainmaker.org/user/admin1/admin1.sign.key";
static final String ADMIN3_CERT_PATH = "crypto-config/wx-org3.chainmaker.org/user/admin1/admin1.sign.crt";
static final String ORG_ID1 = "wx-org1.chainmaker.org";
static final String ORG_ID2 = "wx-org2.chainmaker.org";
static final String ORG_ID3 = "wx-org3.chainmaker.org";
static ChainClient chainClient;
static ChainManager chainManager;
static User adminUser1;
static User adminUser2;
static User adminUser3;
public static void inItChainClient() throws Exception {
Yaml yaml = new Yaml();
InputStream in = InitClient.class.getClassLoader().getResourceAsStream("sdk_config.yml");
SdkConfig sdkConfig;
sdkConfig = yaml.loadAs(in, SdkConfig.class);
in.close();
List<Node> nodeList = new ArrayList<>();
for (NodeConfig nodeConfig : sdkConfig.getChainClient().getNodes()) {
List<byte[]> tlsCaCertList = new ArrayList<>();
for (String rootPath : nodeConfig.getTrustRootPaths()){
tlsCaCertList.add(FileUtils.getResourceFileBytes(rootPath));
}
byte[][] tlsCaCerts = new byte[tlsCaCertList.size()][];
tlsCaCertList.toArray(tlsCaCerts);
String url = "";
if (nodeConfig.isEnableTls()){
url = "grpcs://" + nodeConfig.getNodeAddr();
}else {
url = "grpc://" + nodeConfig.getNodeAddr();
}
Node node = new Node();
node.setClientKeyBytes(FileUtils.getResourceFileBytes(sdkConfig.getChainClient().getUserKeyFilePath()));
node.setClientCertBytes(FileUtils.getResourceFileBytes(sdkConfig.getChainClient().getUserCrtFilePath()));
node.setTlsCertBytes(tlsCaCerts);
node.setHostname(nodeConfig.getTlsHostName());
node.setGrpcUrl(url);
node.setSslProvider(OPENSSL_PROVIDER);
node.setNegotiationType(TLS_NEGOTIATION);
node.setConnectCount(nodeConfig.getConnCnt());
node.setMessageSize(sdkConfig.getChainClient().getRpcClient().getMaxReceiveMessageSize());
nodeList.add(node);
}
Node[] nodes = new Node[nodeList.size()];
nodeList.toArray(nodes);
chainManager = ChainManager.getInstance();
chainClient = chainManager.getChainClient(sdkConfig.getChainClient().getChain_id());
User clientUser = new User(sdkConfig.getChainClient().getOrgId(), FileUtils.getResourceFileBytes(sdkConfig.getChainClient().getUserKeyFilePath()),
FileUtils.getResourceFileBytes(sdkConfig.getChainClient().getUserCrtFilePath()));
if (chainClient == null) {
chainClient = chainManager.createChainClient(sdkConfig.getChainClient().getChain_id(), clientUser, nodes);
}
adminUser1 = new User(ORG_ID1, FileUtils.getResourceFileBytes(ADMIN1_KEY_PATH),
FileUtils.getResourceFileBytes(ADMIN1_CERT_PATH));
adminUser2 = new User(ORG_ID2, FileUtils.getResourceFileBytes(ADMIN2_KEY_PATH),
FileUtils.getResourceFileBytes(ADMIN2_CERT_PATH));
adminUser3 = new User(ORG_ID3, FileUtils.getResourceFileBytes(ADMIN3_KEY_PATH),
FileUtils.getResourceFileBytes(ADMIN3_CERT_PATH));
}
}
package chainmaker.sdk.demo;
import com.google.protobuf.InvalidProtocolBufferException;
import io.grpc.stub.StreamObserver;
import org.chainmaker.pb.common.ChainmakerBlock;
import org.chainmaker.pb.common.ResultOuterClass;
import org.chainmaker.sdk.ChainClient;
public class Subscribe extends InitClient implements Runnable {
public void run() {
testSubscribeBlock();
}
static public void testSubscribeBlock() {
StreamObserver<ResultOuterClass.SubscribeResult> responseObserver = new StreamObserver<ResultOuterClass.SubscribeResult>() {
@Override
public void onNext(ResultOuterClass.SubscribeResult result) {
try {
ChainmakerBlock.BlockInfo blockInfo = ChainmakerBlock.BlockInfo.parseFrom(result.getData());
System.out.println("订阅到了");
System.out.println(blockInfo.toString());
} catch (InvalidProtocolBufferException e) {
e.printStackTrace();
}
}
@Override
public void onError(Throwable throwable) {
// just do nothing
System.out.println(throwable.getMessage());
}
@Override
public void onCompleted() {
// just do nothing
}
};
try {
chainClient.subscribeBlock(-1, -1, true, responseObserver);
System.out.println("开始订阅");
Thread.sleep(500000000);
} catch (Exception e) {
e.printStackTrace();
}
}
}
package chainmaker.sdk.demo;
import org.chainmaker.pb.common.ChainmakerBlock;
import org.chainmaker.sdk.ChainClient;
public class SystemContract {
public static void getBlockByHeight(ChainClient chainClient) {
ChainmakerBlock.BlockInfo blockInfo = null;
try {
blockInfo = chainClient.getBlockByHeight(3, false, 10000);
} catch (Exception e) {
e.printStackTrace();
}
System.out.println(blockInfo);
}
}
-----BEGIN CERTIFICATE-----
MIICrjCCAlWgAwIBAgIDASpWMAoGCCqGSM49BAMCMIGKMQswCQYDVQQGEwJDTjEQ
MA4GA1UECBMHQmVpamluZzEQMA4GA1UEBxMHQmVpamluZzEfMB0GA1UEChMWd3gt
b3JnMS5jaGFpbm1ha2VyLm9yZzESMBAGA1UECxMJcm9vdC1jZXJ0MSIwIAYDVQQD
ExljYS53eC1vcmcxLmNoYWlubWFrZXIub3JnMB4XDTIyMDMxNTExNTkyMVoXDTMy
MDMxMjExNTkyMVowgYoxCzAJBgNVBAYTAkNOMRAwDgYDVQQIEwdCZWlqaW5nMRAw
DgYDVQQHEwdCZWlqaW5nMR8wHQYDVQQKExZ3eC1vcmcxLmNoYWlubWFrZXIub3Jn
MRIwEAYDVQQLEwlyb290LWNlcnQxIjAgBgNVBAMTGWNhLnd4LW9yZzEuY2hhaW5t
YWtlci5vcmcwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATjUBLimYR6FdHeRVSV
VpX5eHGOLBXmRpHmEsiWZWcdqC9hjRo6R/gI9HtQ/g6LVEUwEzQ42CiyJqK7hHSU
E5Jlo4GnMIGkMA4GA1UdDwEB/wQEAwIBpjAPBgNVHSUECDAGBgRVHSUAMA8GA1Ud
EwEB/wQFMAMBAf8wKQYDVR0OBCIEIG2OTxIoZzKFiotllOsDeo77/OdnTrkp+POT
8xCCyG+iMEUGA1UdEQQ+MDyCDmNoYWlubWFrZXIub3Jngglsb2NhbGhvc3SCGWNh
Lnd4LW9yZzEuY2hhaW5tYWtlci5vcmeHBH8AAAEwCgYIKoZIzj0EAwIDRwAwRAIg
TqGjJU8+HX+5G9GRtW6xspVzb/gel0AiZuA4TvfT+cECIHbKbHWkvQvsiqh6ihu2
P534ITTFStL7PYF7UhOCx41U
-----END CERTIFICATE-----
-----BEGIN EC PRIVATE KEY-----
MHcCAQEEIEZevElMWn2MaaReUCTl7Cqeo4mUA5tI+IDxTVBOxLeIoAoGCCqGSM49
AwEHoUQDQgAE41AS4pmEehXR3kVUlVaV+XhxjiwV5kaR5hLIlmVnHagvYY0aOkf4
CPR7UP4Oi1RFMBM0ONgosiaiu4R0lBOSZQ==
-----END EC PRIVATE KEY-----
QmWaUsFKCMTxoaMcWeSFq8Hs2GpTwYGj6GNomGow8JSm6C
\ No newline at end of file
-----BEGIN CERTIFICATE-----
MIICvDCCAmKgAwIBAgIDBuXLMAoGCCqGSM49BAMCMIGKMQswCQYDVQQGEwJDTjEQ
MA4GA1UECBMHQmVpamluZzEQMA4GA1UEBxMHQmVpamluZzEfMB0GA1UEChMWd3gt
b3JnMS5jaGFpbm1ha2VyLm9yZzESMBAGA1UECxMJcm9vdC1jZXJ0MSIwIAYDVQQD
ExljYS53eC1vcmcxLmNoYWlubWFrZXIub3JnMB4XDTIyMDMxNTExNTkyMVoXDTI3
MDMxNDExNTkyMVowgZExCzAJBgNVBAYTAkNOMRAwDgYDVQQIEwdCZWlqaW5nMRAw
DgYDVQQHEwdCZWlqaW5nMR8wHQYDVQQKExZ3eC1vcmcxLmNoYWlubWFrZXIub3Jn
MQ8wDQYDVQQLEwZjb21tb24xLDAqBgNVBAMTI2NvbW1vbjEuc2lnbi53eC1vcmcx
LmNoYWlubWFrZXIub3JnMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEZmWyC0Y+
KCupqhaMUJMcMm0VjH3fyt+3D+PBXA7R2m9/ecAC0MTpEitkDIp41XRTn/ane7Jt
+nUGtU5JxZ3Zg6OBrTCBqjAOBgNVHQ8BAf8EBAMCAaYwDwYDVR0lBAgwBgYEVR0l
ADApBgNVHQ4EIgQg62bdwLzDXsH6G1Piz67XMQB96zHnnvs/TuziP7Cf4yYwKwYD
VR0jBCQwIoAgbY5PEihnMoWKi2WU6wN6jvv852dOuSn485PzEILIb6IwLwYLgSdY
j2QLHo9kCwQEIDVhNDQ2OWI5Mjg3MzQ3ZWM4ZTczZDgwYmY3ZDU1MjMyMAoGCCqG
SM49BAMCA0gAMEUCIBEWhjGApkE5z24JAN++vuk4toAAYgFFJj4TKixWVfPsAiEA
i2AbK+mVk0HiSCvks80DmCPzCb2v0XwEPSa7OA4b4BY=
-----END CERTIFICATE-----
-----BEGIN EC PRIVATE KEY-----
MHcCAQEEIMxtlL16SmHvkeEBib+Sl5F2QtjBNBZFz0A1dIzehb77oAoGCCqGSM49
AwEHoUQDQgAEZmWyC0Y+KCupqhaMUJMcMm0VjH3fyt+3D+PBXA7R2m9/ecAC0MTp
EitkDIp41XRTn/ane7Jt+nUGtU5JxZ3Zgw==
-----END EC PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
MIIDDDCCArGgAwIBAgIDBCa+MAoGCCqGSM49BAMCMIGKMQswCQYDVQQGEwJDTjEQ
MA4GA1UECBMHQmVpamluZzEQMA4GA1UEBxMHQmVpamluZzEfMB0GA1UEChMWd3gt
b3JnMS5jaGFpbm1ha2VyLm9yZzESMBAGA1UECxMJcm9vdC1jZXJ0MSIwIAYDVQQD
ExljYS53eC1vcmcxLmNoYWlubWFrZXIub3JnMB4XDTIyMDMxNTExNTkyMVoXDTI3
MDMxNDExNTkyMVowgZAxCzAJBgNVBAYTAkNOMRAwDgYDVQQIEwdCZWlqaW5nMRAw
DgYDVQQHEwdCZWlqaW5nMR8wHQYDVQQKExZ3eC1vcmcxLmNoYWlubWFrZXIub3Jn
MQ8wDQYDVQQLEwZjb21tb24xKzApBgNVBAMTImNvbW1vbjEudGxzLnd4LW9yZzEu
Y2hhaW5tYWtlci5vcmcwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQU4uFbMfbk
SxXACzZWZTpv1S+Xyf7ZjvSDKhW/oo99cKY3MQbtJQPO3gyUtThMQkEra7KAQ/mz
1QEuebuwn9Qlo4H9MIH6MA4GA1UdDwEB/wQEAwIBpjAPBgNVHSUECDAGBgRVHSUA
MCkGA1UdDgQiBCBhYDujiHTkfnyUdQBLSouPH/tmlgIkKK2pQ7IyFz1DszArBgNV
HSMEJDAigCBtjk8SKGcyhYqLZZTrA3qO+/znZ065Kfjzk/MQgshvojBOBgNVHREE
RzBFgg5jaGFpbm1ha2VyLm9yZ4IJbG9jYWxob3N0giJjb21tb24xLnRscy53eC1v
cmcxLmNoYWlubWFrZXIub3JnhwR/AAABMC8GC4EnWI9kCx6PZAsEBCA1YTQ0Njli
OTI4NzM0N2VjOGU3M2Q4MGJmN2Q1NTIzMjAKBggqhkjOPQQDAgNJADBGAiEAjT64
i65v0xpPLFgImMb3iXmjnd2s7UMgSpdEED85hZICIQCbpBOt0lBNHPEzZuxFSbvO
SDP2J3chFe1HdPXjiD8W4Q==
-----END CERTIFICATE-----
-----BEGIN EC PRIVATE KEY-----
MHcCAQEEIOZcYtd7GLEqgO6KuxINmncA7m5/VTLn/+nF1prf2wHooAoGCCqGSM49
AwEHoUQDQgAEFOLhWzH25EsVwAs2VmU6b9Uvl8n+2Y70gyoVv6KPfXCmNzEG7SUD
zt4MlLU4TEJBK2uygEP5s9UBLnm7sJ/UJQ==
-----END EC PRIVATE KEY-----
QmQFYzjnhuuF61mq2utdxgEqjbMvQRQqB3kjp2UKkKAVGC
\ No newline at end of file
-----BEGIN CERTIFICATE-----
MIICwjCCAmigAwIBAgIDC9EmMAoGCCqGSM49BAMCMIGKMQswCQYDVQQGEwJDTjEQ
MA4GA1UECBMHQmVpamluZzEQMA4GA1UEBxMHQmVpamluZzEfMB0GA1UEChMWd3gt
b3JnMS5jaGFpbm1ha2VyLm9yZzESMBAGA1UECxMJcm9vdC1jZXJ0MSIwIAYDVQQD
ExljYS53eC1vcmcxLmNoYWlubWFrZXIub3JnMB4XDTIyMDMxNTExNTkyMVoXDTI3
MDMxNDExNTkyMVowgZcxCzAJBgNVBAYTAkNOMRAwDgYDVQQIEwdCZWlqaW5nMRAw
DgYDVQQHEwdCZWlqaW5nMR8wHQYDVQQKExZ3eC1vcmcxLmNoYWlubWFrZXIub3Jn
MRIwEAYDVQQLEwljb25zZW5zdXMxLzAtBgNVBAMTJmNvbnNlbnN1czEuc2lnbi53
eC1vcmcxLmNoYWlubWFrZXIub3JnMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE
XCqcw+KAJ/pFVzokCBgTBLwpqziI7R0++vksCu4qU5c8X9JrpkdQ+llpglstauZ4
rDWd9oQ3dRv48TR3PpeZR6OBrTCBqjAOBgNVHQ8BAf8EBAMCAaYwDwYDVR0lBAgw
BgYEVR0lADApBgNVHQ4EIgQggxMGKOia/zrz0Iv3lkR7UNWcs5y5N2QL7uk0XSMm
i1wwKwYDVR0jBCQwIoAgbY5PEihnMoWKi2WU6wN6jvv852dOuSn485PzEILIb6Iw
LwYLgSdYj2QLHo9kCwQEIGZiYTZkMGU1MTlhMzRhNTRhN2Y5Nzk1MjhiYTg3MDkz
MAoGCCqGSM49BAMCA0gAMEUCIQCY22hl7uHAcBQDZPNZhEUQoGdR3MO2uh9ICRpG
hljfSQIgejmp63pkIeC7msVsN9Ui/D25sDBIR5hiNbhcIRix1vk=
-----END CERTIFICATE-----
-----BEGIN EC PRIVATE KEY-----
MHcCAQEEIEY1BbhJh6Fd/3sC5NLZcfu+x2dBDCVO7hfvHLf8BiXyoAoGCCqGSM49
AwEHoUQDQgAEXCqcw+KAJ/pFVzokCBgTBLwpqziI7R0++vksCu4qU5c8X9JrpkdQ
+llpglstauZ4rDWd9oQ3dRv48TR3PpeZRw==
-----END EC PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
MIIDFTCCArugAwIBAgIDCaExMAoGCCqGSM49BAMCMIGKMQswCQYDVQQGEwJDTjEQ
MA4GA1UECBMHQmVpamluZzEQMA4GA1UEBxMHQmVpamluZzEfMB0GA1UEChMWd3gt
b3JnMS5jaGFpbm1ha2VyLm9yZzESMBAGA1UECxMJcm9vdC1jZXJ0MSIwIAYDVQQD
ExljYS53eC1vcmcxLmNoYWlubWFrZXIub3JnMB4XDTIyMDMxNTExNTkyMVoXDTI3
MDMxNDExNTkyMVowgZYxCzAJBgNVBAYTAkNOMRAwDgYDVQQIEwdCZWlqaW5nMRAw
DgYDVQQHEwdCZWlqaW5nMR8wHQYDVQQKExZ3eC1vcmcxLmNoYWlubWFrZXIub3Jn
MRIwEAYDVQQLEwljb25zZW5zdXMxLjAsBgNVBAMTJWNvbnNlbnN1czEudGxzLnd4
LW9yZzEuY2hhaW5tYWtlci5vcmcwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQg
9GkNKRMZElNw3cOqWgx1K6FjkC9eu4Fe15sLW/q5aR/CUxCYqqr8v+ELWeQpb3i/
KhvlCgxYugzomUQAWs0xo4IBADCB/TAOBgNVHQ8BAf8EBAMCAaYwDwYDVR0lBAgw
BgYEVR0lADApBgNVHQ4EIgQgCJMSB4zVJpMsE884l9DTs4DgyxqIz4V7hnIpaepT
w9wwKwYDVR0jBCQwIoAgbY5PEihnMoWKi2WU6wN6jvv852dOuSn485PzEILIb6Iw
UQYDVR0RBEowSIIOY2hhaW5tYWtlci5vcmeCCWxvY2FsaG9zdIIlY29uc2Vuc3Vz
MS50bHMud3gtb3JnMS5jaGFpbm1ha2VyLm9yZ4cEfwAAATAvBguBJ1iPZAsej2QL
BAQgZmJhNmQwZTUxOWEzNGE1NGE3Zjk3OTUyOGJhODcwOTMwCgYIKoZIzj0EAwID
SAAwRQIgKg1kVfBMBns3g5eiQdRM5ipt6Uo1LKk2+XbzVk5jo2oCIQDeRGS6MOd5
YE8NyLmbdlyM1Vh52UMANALvztomkTHUPA==
-----END CERTIFICATE-----
-----BEGIN EC PRIVATE KEY-----
MHcCAQEEIEDnVu+6euNmT7JY45IEdGne/ZMZ/tyrJNxX3fr/EUQooAoGCCqGSM49
AwEHoUQDQgAEIPRpDSkTGRJTcN3DqloMdSuhY5AvXruBXtebC1v6uWkfwlMQmKqq
/L/hC1nkKW94vyob5QoMWLoM6JlEAFrNMQ==
-----END EC PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
MIIChzCCAi2gAwIBAgIDApt4MAoGCCqGSM49BAMCMIGKMQswCQYDVQQGEwJDTjEQ
MA4GA1UECBMHQmVpamluZzEQMA4GA1UEBxMHQmVpamluZzEfMB0GA1UEChMWd3gt
b3JnMS5jaGFpbm1ha2VyLm9yZzESMBAGA1UECxMJcm9vdC1jZXJ0MSIwIAYDVQQD
ExljYS53eC1vcmcxLmNoYWlubWFrZXIub3JnMB4XDTIyMDMxNTExNTkyMVoXDTI3
MDMxNDExNTkyMVowgY8xCzAJBgNVBAYTAkNOMRAwDgYDVQQIEwdCZWlqaW5nMRAw
DgYDVQQHEwdCZWlqaW5nMR8wHQYDVQQKExZ3eC1vcmcxLmNoYWlubWFrZXIub3Jn
MQ4wDAYDVQQLEwVhZG1pbjErMCkGA1UEAxMiYWRtaW4xLnNpZ24ud3gtb3JnMS5j
aGFpbm1ha2VyLm9yZzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABLOl5583Cy63
eiw7Ic8L682JQLtqDssRp++/iAnR5mteV8HiQdPG5A95wH5MgJNTs79VpV2KcpFJ
ocNsOVofMzSjezB5MA4GA1UdDwEB/wQEAwIBpjAPBgNVHSUECDAGBgRVHSUAMCkG
A1UdDgQiBCCxgPHqwtmclg5xZgUfh4UcCfm1PW9ZB6/R3qQWePZtwDArBgNVHSME
JDAigCBtjk8SKGcyhYqLZZTrA3qO+/znZ065Kfjzk/MQgshvojAKBggqhkjOPQQD
AgNIADBFAiEA6S23QAmcxvcPEV4tSaGktJmN0DfjSYi9f9bwB/bpZXACICEglcYy
RV/HveVBV7W9dC8g+y0NPToC5UTtf1fuVsqn
-----END CERTIFICATE-----
-----BEGIN EC PRIVATE KEY-----
MHcCAQEEICnQ2jHR1EhPtqlTqylcIMoiHEu4sLFltVmxzAa5HBqqoAoGCCqGSM49
AwEHoUQDQgAEs6XnnzcLLrd6LDshzwvrzYlAu2oOyxGn77+ICdHma15XweJB08bk
D3nAfkyAk1Ozv1WlXYpykUmhw2w5Wh8zNA==
-----END EC PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
MIIChjCCAiygAwIBAgIDCbjyMAoGCCqGSM49BAMCMIGKMQswCQYDVQQGEwJDTjEQ
MA4GA1UECBMHQmVpamluZzEQMA4GA1UEBxMHQmVpamluZzEfMB0GA1UEChMWd3gt
b3JnMS5jaGFpbm1ha2VyLm9yZzESMBAGA1UECxMJcm9vdC1jZXJ0MSIwIAYDVQQD
ExljYS53eC1vcmcxLmNoYWlubWFrZXIub3JnMB4XDTIyMDMxNTExNTkyMVoXDTI3
MDMxNDExNTkyMVowgY4xCzAJBgNVBAYTAkNOMRAwDgYDVQQIEwdCZWlqaW5nMRAw
DgYDVQQHEwdCZWlqaW5nMR8wHQYDVQQKExZ3eC1vcmcxLmNoYWlubWFrZXIub3Jn
MQ4wDAYDVQQLEwVhZG1pbjEqMCgGA1UEAxMhYWRtaW4xLnRscy53eC1vcmcxLmNo
YWlubWFrZXIub3JnMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEl8bT77tjJvWz
1KRiHHEbMKlQDj5B2dpniRq8avhQe284Qmxx1E6tKnnDhQ3cVUZTdfYWV8WApvjG
CKXDWabwXaN7MHkwDgYDVR0PAQH/BAQDAgGmMA8GA1UdJQQIMAYGBFUdJQAwKQYD
VR0OBCIEICv/SLXGomxSt+rjxEJkwFJ+aKzc9ygN6BLdY6TXrqc8MCsGA1UdIwQk
MCKAIG2OTxIoZzKFiotllOsDeo77/OdnTrkp+POT8xCCyG+iMAoGCCqGSM49BAMC
A0gAMEUCIQCzZnR+GgjT3/MrbG3GyUBGrH8v9ROFrCh/+GLgRT5U+gIgJhNzdchm
e02jy0dzVpWFPd7g+4P1DTzi+ROO1nxl4a0=
-----END CERTIFICATE-----
-----BEGIN EC PRIVATE KEY-----
MHcCAQEEIKz2zqE62jlgUYqhREhsQVsDih1IJLDt/w853CdRKbSvoAoGCCqGSM49
AwEHoUQDQgAEl8bT77tjJvWz1KRiHHEbMKlQDj5B2dpniRq8avhQe284Qmxx1E6t
KnnDhQ3cVUZTdfYWV8WApvjGCKXDWabwXQ==
-----END EC PRIVATE KEY-----
FAZqhwiLu8MzrgisyZrgXkcDH9oagbPyRmRi2XE9mHYd
\ No newline at end of file
-----BEGIN CERTIFICATE-----
MIICiTCCAi+gAwIBAgIDDn81MAoGCCqGSM49BAMCMIGKMQswCQYDVQQGEwJDTjEQ
MA4GA1UECBMHQmVpamluZzEQMA4GA1UEBxMHQmVpamluZzEfMB0GA1UEChMWd3gt
b3JnMS5jaGFpbm1ha2VyLm9yZzESMBAGA1UECxMJcm9vdC1jZXJ0MSIwIAYDVQQD
ExljYS53eC1vcmcxLmNoYWlubWFrZXIub3JnMB4XDTIyMDMxNTExNTkyMVoXDTI3
MDMxNDExNTkyMVowgZExCzAJBgNVBAYTAkNOMRAwDgYDVQQIEwdCZWlqaW5nMRAw
DgYDVQQHEwdCZWlqaW5nMR8wHQYDVQQKExZ3eC1vcmcxLmNoYWlubWFrZXIub3Jn
MQ8wDQYDVQQLEwZjbGllbnQxLDAqBgNVBAMTI2NsaWVudDEuc2lnbi53eC1vcmcx
LmNoYWlubWFrZXIub3JnMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEjd/6IS25
8zzEnDce/gNyX6oOxQlgnoEaskYQ4plnrZR1AEa04ngVjOqM58SxmP2HeJnw8coP
Gx9g83JQIqXdH6N7MHkwDgYDVR0PAQH/BAQDAgGmMA8GA1UdJQQIMAYGBFUdJQAw
KQYDVR0OBCIEICD6AEtopV84oMA3BizlXqBt0nFj5xsL0VK9pCuEovhdMCsGA1Ud
IwQkMCKAIG2OTxIoZzKFiotllOsDeo77/OdnTrkp+POT8xCCyG+iMAoGCCqGSM49
BAMCA0gAMEUCIFajyU4diEAcMbvW/OWgP/h1atNd9Tpv1oSizfaeCEofAiEA7YJL
R6I69sbL32RVbUffqg5BeareISDVlVpkTWQUxow=
-----END CERTIFICATE-----
-----BEGIN EC PRIVATE KEY-----
MHcCAQEEIHxc9kXEI7YN1de4G41EYn/Rrb/GgA4Y1zWRaFcFe8IdoAoGCCqGSM49
AwEHoUQDQgAEjd/6IS258zzEnDce/gNyX6oOxQlgnoEaskYQ4plnrZR1AEa04ngV
jOqM58SxmP2HeJnw8coPGx9g83JQIqXdHw==
-----END EC PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
MIICiDCCAi6gAwIBAgIDDDb0MAoGCCqGSM49BAMCMIGKMQswCQYDVQQGEwJDTjEQ
MA4GA1UECBMHQmVpamluZzEQMA4GA1UEBxMHQmVpamluZzEfMB0GA1UEChMWd3gt
b3JnMS5jaGFpbm1ha2VyLm9yZzESMBAGA1UECxMJcm9vdC1jZXJ0MSIwIAYDVQQD
ExljYS53eC1vcmcxLmNoYWlubWFrZXIub3JnMB4XDTIyMDMxNTExNTkyMVoXDTI3
MDMxNDExNTkyMVowgZAxCzAJBgNVBAYTAkNOMRAwDgYDVQQIEwdCZWlqaW5nMRAw
DgYDVQQHEwdCZWlqaW5nMR8wHQYDVQQKExZ3eC1vcmcxLmNoYWlubWFrZXIub3Jn
MQ8wDQYDVQQLEwZjbGllbnQxKzApBgNVBAMTImNsaWVudDEudGxzLnd4LW9yZzEu
Y2hhaW5tYWtlci5vcmcwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAS80DQY68nW
kSi5FbgZeBOi0CDfd4MXQ0xlIjxB7fGmTO0nwauMJcctc821OPYOe8FP5SHmuTnr
CTdHseFpRb+Ro3sweTAOBgNVHQ8BAf8EBAMCAaYwDwYDVR0lBAgwBgYEVR0lADAp
BgNVHQ4EIgQgnOdVbZcjtiaajeuPbLqAf4YvzQ9L/Bgzgx3/oLgsyx8wKwYDVR0j
BCQwIoAgbY5PEihnMoWKi2WU6wN6jvv852dOuSn485PzEILIb6IwCgYIKoZIzj0E
AwIDSAAwRQIhAPGSE/Z7vZi99DyV+r5Y2VlCSIRCnCHNNEbXtaTXjbB4AiBSTRNq
cItxMYQ6IYGz2XFh7voUWyVJCXdeNEex05SpBw==
-----END CERTIFICATE-----
-----BEGIN EC PRIVATE KEY-----
MHcCAQEEIMTxelFEENjlfdIWa1yu4ubwes4+O8VQb7suLe93sgG2oAoGCCqGSM49
AwEHoUQDQgAEvNA0GOvJ1pEouRW4GXgTotAg33eDF0NMZSI8Qe3xpkztJ8GrjCXH
LXPNtTj2DnvBT+Uh5rk56wk3R7HhaUW/kQ==
-----END EC PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
MIICrzCCAlWgAwIBAgIDCf0NMAoGCCqGSM49BAMCMIGKMQswCQYDVQQGEwJDTjEQ
MA4GA1UECBMHQmVpamluZzEQMA4GA1UEBxMHQmVpamluZzEfMB0GA1UEChMWd3gt
b3JnMi5jaGFpbm1ha2VyLm9yZzESMBAGA1UECxMJcm9vdC1jZXJ0MSIwIAYDVQQD
ExljYS53eC1vcmcyLmNoYWlubWFrZXIub3JnMB4XDTIyMDMxNTExNTkyMVoXDTMy
MDMxMjExNTkyMVowgYoxCzAJBgNVBAYTAkNOMRAwDgYDVQQIEwdCZWlqaW5nMRAw
DgYDVQQHEwdCZWlqaW5nMR8wHQYDVQQKExZ3eC1vcmcyLmNoYWlubWFrZXIub3Jn
MRIwEAYDVQQLEwlyb290LWNlcnQxIjAgBgNVBAMTGWNhLnd4LW9yZzIuY2hhaW5t
YWtlci5vcmcwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARYyABR/Y6dF4sv5ffA
bwVUW0YgbHuDYrDcMfzx6/uNYrC9kYW/OLasCC8lm+2gAw2fcDeE4ZPc5jbW2FxA
AVWdo4GnMIGkMA4GA1UdDwEB/wQEAwIBpjAPBgNVHSUECDAGBgRVHSUAMA8GA1Ud
EwEB/wQFMAMBAf8wKQYDVR0OBCIEINByD7x2XQ22mzkaqND5s+fwvXXaNWnNTIH8
6lJSZjjhMEUGA1UdEQQ+MDyCDmNoYWlubWFrZXIub3Jngglsb2NhbGhvc3SCGWNh
Lnd4LW9yZzIuY2hhaW5tYWtlci5vcmeHBH8AAAEwCgYIKoZIzj0EAwIDSAAwRQIh
AI+fmacnJUZWPM7Yl07luirn1UPtm5HjVo2HED780xjNAiATGEcb9LV0vdzp1TbV
ElzBfnm1BrFimYfUwg/PahqpGQ==
-----END CERTIFICATE-----
-----BEGIN EC PRIVATE KEY-----
MHcCAQEEIKKPbqc+KDbA+ApZtmeYGrAWfT2BC4wqGPSXYn4uVjDLoAoGCCqGSM49
AwEHoUQDQgAEWMgAUf2OnReLL+X3wG8FVFtGIGx7g2Kw3DH88ev7jWKwvZGFvzi2
rAgvJZvtoAMNn3A3hOGT3OY21thcQAFVnQ==
-----END EC PRIVATE KEY-----
QmWUf9kh23xptXAnejKRQibiD9C3BqBpBEedNuT247RZE2
\ No newline at end of file
-----BEGIN CERTIFICATE-----
MIICvTCCAmKgAwIBAgIDA9MAMAoGCCqGSM49BAMCMIGKMQswCQYDVQQGEwJDTjEQ
MA4GA1UECBMHQmVpamluZzEQMA4GA1UEBxMHQmVpamluZzEfMB0GA1UEChMWd3gt
b3JnMi5jaGFpbm1ha2VyLm9yZzESMBAGA1UECxMJcm9vdC1jZXJ0MSIwIAYDVQQD
ExljYS53eC1vcmcyLmNoYWlubWFrZXIub3JnMB4XDTIyMDMxNTExNTkyMVoXDTI3
MDMxNDExNTkyMVowgZExCzAJBgNVBAYTAkNOMRAwDgYDVQQIEwdCZWlqaW5nMRAw
DgYDVQQHEwdCZWlqaW5nMR8wHQYDVQQKExZ3eC1vcmcyLmNoYWlubWFrZXIub3Jn
MQ8wDQYDVQQLEwZjb21tb24xLDAqBgNVBAMTI2NvbW1vbjEuc2lnbi53eC1vcmcy
LmNoYWlubWFrZXIub3JnMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE3hDcGI+f
aUd3Ni2jlNtqOmodNImQalug+TeXi6wAEE1Z5qXRpZ9HyStwxmp4CdHOFY5jfiAL
GwhxeIRymXGNZqOBrTCBqjAOBgNVHQ8BAf8EBAMCAaYwDwYDVR0lBAgwBgYEVR0l
ADApBgNVHQ4EIgQgm2boa9Tjm+8NTkq74figs+ytou/ZQ4CYwlePtLMncT4wKwYD
VR0jBCQwIoAg0HIPvHZdDbabORqo0Pmz5/C9ddo1ac1MgfzqUlJmOOEwLwYLgSdY
j2QLHo9kCwQEIGIwODMyMzY0ZjY2NDRmYTM4NTc4OTVmZTgyNGVhODhhMAoGCCqG
SM49BAMCA0kAMEYCIQCZCLgoBrytpQQUed0Kun5K6DDgDN37in65TskULzHF7AIh
ANn5iqwFh2It0MP3INTu6COlzH7npAD8g0UwLsHehU+v
-----END CERTIFICATE-----
-----BEGIN EC PRIVATE KEY-----
MHcCAQEEIAEVWK0rM3RXex5I0RByyb/iNwswTWUK53GVTqFwN7lFoAoGCCqGSM49
AwEHoUQDQgAE3hDcGI+faUd3Ni2jlNtqOmodNImQalug+TeXi6wAEE1Z5qXRpZ9H
yStwxmp4CdHOFY5jfiALGwhxeIRymXGNZg==
-----END EC PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
MIIDDDCCArGgAwIBAgIDCYn+MAoGCCqGSM49BAMCMIGKMQswCQYDVQQGEwJDTjEQ
MA4GA1UECBMHQmVpamluZzEQMA4GA1UEBxMHQmVpamluZzEfMB0GA1UEChMWd3gt
b3JnMi5jaGFpbm1ha2VyLm9yZzESMBAGA1UECxMJcm9vdC1jZXJ0MSIwIAYDVQQD
ExljYS53eC1vcmcyLmNoYWlubWFrZXIub3JnMB4XDTIyMDMxNTExNTkyMVoXDTI3
MDMxNDExNTkyMVowgZAxCzAJBgNVBAYTAkNOMRAwDgYDVQQIEwdCZWlqaW5nMRAw
DgYDVQQHEwdCZWlqaW5nMR8wHQYDVQQKExZ3eC1vcmcyLmNoYWlubWFrZXIub3Jn
MQ8wDQYDVQQLEwZjb21tb24xKzApBgNVBAMTImNvbW1vbjEudGxzLnd4LW9yZzIu
Y2hhaW5tYWtlci5vcmcwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQaG76u8qlr
vyZKqAbX3khb8VG6d5lxmKc/2ItBr9hkdnXc5eOzcJyusNJlWKSyJj1hH0VBPdWN
Xt734HadoDoPo4H9MIH6MA4GA1UdDwEB/wQEAwIBpjAPBgNVHSUECDAGBgRVHSUA
MCkGA1UdDgQiBCDQG71GsDP0uFVhE1V53iJPN8G9Ko7RAkwVTzLo1e6wMTArBgNV
HSMEJDAigCDQcg+8dl0Ntps5GqjQ+bPn8L112jVpzUyB/OpSUmY44TBOBgNVHREE
RzBFgg5jaGFpbm1ha2VyLm9yZ4IJbG9jYWxob3N0giJjb21tb24xLnRscy53eC1v
cmcyLmNoYWlubWFrZXIub3JnhwR/AAABMC8GC4EnWI9kCx6PZAsEBCBiMDgzMjM2
NGY2NjQ0ZmEzODU3ODk1ZmU4MjRlYTg4YTAKBggqhkjOPQQDAgNJADBGAiEAqeD4
WCceAqe8/yM9TCmtQEegMGl9Kr0r/pqz6PAhfUkCIQC1p9hKQrbOBakM2UegD2x5
ZGlMvMBzQb/7Iuwj0P18xA==
-----END CERTIFICATE-----
-----BEGIN EC PRIVATE KEY-----
MHcCAQEEIBHkbOeEGdipUSAomph7k7PVtAcAKY5Fi4FEVPCyuH5LoAoGCCqGSM49
AwEHoUQDQgAEGhu+rvKpa78mSqgG195IW/FRuneZcZinP9iLQa/YZHZ13OXjs3Cc
rrDSZViksiY9YR9FQT3VjV7e9+B2naA6Dw==
-----END EC PRIVATE KEY-----
QmY9fa2pPQyrYLJEvtgfVHCq5C7PHEBC6948jCXo5YhvBF
\ No newline at end of file
-----BEGIN CERTIFICATE-----
MIICwzCCAmigAwIBAgIDA6mgMAoGCCqGSM49BAMCMIGKMQswCQYDVQQGEwJDTjEQ
MA4GA1UECBMHQmVpamluZzEQMA4GA1UEBxMHQmVpamluZzEfMB0GA1UEChMWd3gt
b3JnMi5jaGFpbm1ha2VyLm9yZzESMBAGA1UECxMJcm9vdC1jZXJ0MSIwIAYDVQQD
ExljYS53eC1vcmcyLmNoYWlubWFrZXIub3JnMB4XDTIyMDMxNTExNTkyMVoXDTI3
MDMxNDExNTkyMVowgZcxCzAJBgNVBAYTAkNOMRAwDgYDVQQIEwdCZWlqaW5nMRAw
DgYDVQQHEwdCZWlqaW5nMR8wHQYDVQQKExZ3eC1vcmcyLmNoYWlubWFrZXIub3Jn
MRIwEAYDVQQLEwljb25zZW5zdXMxLzAtBgNVBAMTJmNvbnNlbnN1czEuc2lnbi53
eC1vcmcyLmNoYWlubWFrZXIub3JnMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE
IR3WenVhkWnbTK+xNotzF1V9SgUW4QQ1o0KN4uwA3p1Mupn7B9oMEs7yTduVzp0V
YawnPqFZj9vh0clP+smr2qOBrTCBqjAOBgNVHQ8BAf8EBAMCAaYwDwYDVR0lBAgw
BgYEVR0lADApBgNVHQ4EIgQgfXVMN3TZaAqvWa70JsypZOaXsdGxwd8xIDpR96Fa
B1cwKwYDVR0jBCQwIoAg0HIPvHZdDbabORqo0Pmz5/C9ddo1ac1MgfzqUlJmOOEw
LwYLgSdYj2QLHo9kCwQEIDM0NzU4YzBiZDdhOTQwOWE5YjcxMTE0N2IxNWU3YjJm
MAoGCCqGSM49BAMCA0kAMEYCIQC5Xx9+VQwHsXN2ZrFkCYUs5WncLDPwsm82OgT7
JoHu9AIhAL6sPRh3FzpyO82/ecudz7lyJf5/W8jT19qYjsZDyCnm
-----END CERTIFICATE-----
-----BEGIN EC PRIVATE KEY-----
MHcCAQEEIBCZoZbVw0juzfaR72UAZbC7U0uQ0SB7TxYQgzBA/uW9oAoGCCqGSM49
AwEHoUQDQgAEIR3WenVhkWnbTK+xNotzF1V9SgUW4QQ1o0KN4uwA3p1Mupn7B9oM
Es7yTduVzp0VYawnPqFZj9vh0clP+smr2g==
-----END EC PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
MIIDFDCCArugAwIBAgIDDS2/MAoGCCqGSM49BAMCMIGKMQswCQYDVQQGEwJDTjEQ
MA4GA1UECBMHQmVpamluZzEQMA4GA1UEBxMHQmVpamluZzEfMB0GA1UEChMWd3gt
b3JnMi5jaGFpbm1ha2VyLm9yZzESMBAGA1UECxMJcm9vdC1jZXJ0MSIwIAYDVQQD
ExljYS53eC1vcmcyLmNoYWlubWFrZXIub3JnMB4XDTIyMDMxNTExNTkyMVoXDTI3
MDMxNDExNTkyMVowgZYxCzAJBgNVBAYTAkNOMRAwDgYDVQQIEwdCZWlqaW5nMRAw
DgYDVQQHEwdCZWlqaW5nMR8wHQYDVQQKExZ3eC1vcmcyLmNoYWlubWFrZXIub3Jn
MRIwEAYDVQQLEwljb25zZW5zdXMxLjAsBgNVBAMTJWNvbnNlbnN1czEudGxzLnd4
LW9yZzIuY2hhaW5tYWtlci5vcmcwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQA
d8zZkTbZs0rqy7VITmLeYhie0ahqSx5Hxu/VuAyExN4IyfK6kSflzUJUNtOEfRWL
O/9Q41W3ScZSeUSV6bvco4IBADCB/TAOBgNVHQ8BAf8EBAMCAaYwDwYDVR0lBAgw
BgYEVR0lADApBgNVHQ4EIgQgRhYwyWBV42DnbnS7xSGRCt3yop8RO0BqEK5qbHwH
kUQwKwYDVR0jBCQwIoAg0HIPvHZdDbabORqo0Pmz5/C9ddo1ac1MgfzqUlJmOOEw
UQYDVR0RBEowSIIOY2hhaW5tYWtlci5vcmeCCWxvY2FsaG9zdIIlY29uc2Vuc3Vz
MS50bHMud3gtb3JnMi5jaGFpbm1ha2VyLm9yZ4cEfwAAATAvBguBJ1iPZAsej2QL
BAQgMzQ3NThjMGJkN2E5NDA5YTliNzExMTQ3YjE1ZTdiMmYwCgYIKoZIzj0EAwID
RwAwRAIgSNzigXAniRtTrYP3uplL5MDewM4JH6Sy2wFMzE9pnHICIEMW0Y/q10YZ
wCTo8Ui+yUkyn2pkC/x3TSdwJOiD7XfY
-----END CERTIFICATE-----
-----BEGIN EC PRIVATE KEY-----
MHcCAQEEIN4rOdKG5QMWhWuj9eo4CHydDQ8iBkTibOPCAcq2CLF5oAoGCCqGSM49
AwEHoUQDQgAEAHfM2ZE22bNK6su1SE5i3mIYntGoakseR8bv1bgMhMTeCMnyupEn
5c1CVDbThH0Vizv/UONVt0nGUnlElem73A==
-----END EC PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
MIIChzCCAi2gAwIBAgIDCk+yMAoGCCqGSM49BAMCMIGKMQswCQYDVQQGEwJDTjEQ
MA4GA1UECBMHQmVpamluZzEQMA4GA1UEBxMHQmVpamluZzEfMB0GA1UEChMWd3gt
b3JnMi5jaGFpbm1ha2VyLm9yZzESMBAGA1UECxMJcm9vdC1jZXJ0MSIwIAYDVQQD
ExljYS53eC1vcmcyLmNoYWlubWFrZXIub3JnMB4XDTIyMDMxNTExNTkyMVoXDTI3
MDMxNDExNTkyMVowgY8xCzAJBgNVBAYTAkNOMRAwDgYDVQQIEwdCZWlqaW5nMRAw
DgYDVQQHEwdCZWlqaW5nMR8wHQYDVQQKExZ3eC1vcmcyLmNoYWlubWFrZXIub3Jn
MQ4wDAYDVQQLEwVhZG1pbjErMCkGA1UEAxMiYWRtaW4xLnNpZ24ud3gtb3JnMi5j
aGFpbm1ha2VyLm9yZzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABCGS62SlKnXo
Tq+hnqKcYzkjun5zR+JUQLfA444w0XSa11mIPL/iwoANc2s6xuMNPnq/Nvp/iLnn
UZCjEDYNzFOjezB5MA4GA1UdDwEB/wQEAwIBpjAPBgNVHSUECDAGBgRVHSUAMCkG
A1UdDgQiBCDhzIrQTlZB2eVgfhmJu68YPhNibs/TCDrTMZYgs/CSbDArBgNVHSME
JDAigCDQcg+8dl0Ntps5GqjQ+bPn8L112jVpzUyB/OpSUmY44TAKBggqhkjOPQQD
AgNIADBFAiEAhQbpKUHkZQ+k4yuA1EkVNhCia0R7pcPEZkuXZTarCnoCIB10jYL1
dG1Dwridysmck2OSoWt4yz2kBiJ5qWn3SH8Z
-----END CERTIFICATE-----
-----BEGIN EC PRIVATE KEY-----
MHcCAQEEIJiAe1/Yi9SOzosrH5SyYf3DF3xLeq6wb1jPsBwp7QtdoAoGCCqGSM49
AwEHoUQDQgAEIZLrZKUqdehOr6GeopxjOSO6fnNH4lRAt8DjjjDRdJrXWYg8v+LC
gA1zazrG4w0+er82+n+IuedRkKMQNg3MUw==
-----END EC PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
MIIChzCCAiygAwIBAgIDAS3yMAoGCCqGSM49BAMCMIGKMQswCQYDVQQGEwJDTjEQ
MA4GA1UECBMHQmVpamluZzEQMA4GA1UEBxMHQmVpamluZzEfMB0GA1UEChMWd3gt
b3JnMi5jaGFpbm1ha2VyLm9yZzESMBAGA1UECxMJcm9vdC1jZXJ0MSIwIAYDVQQD
ExljYS53eC1vcmcyLmNoYWlubWFrZXIub3JnMB4XDTIyMDMxNTExNTkyMVoXDTI3
MDMxNDExNTkyMVowgY4xCzAJBgNVBAYTAkNOMRAwDgYDVQQIEwdCZWlqaW5nMRAw
DgYDVQQHEwdCZWlqaW5nMR8wHQYDVQQKExZ3eC1vcmcyLmNoYWlubWFrZXIub3Jn
MQ4wDAYDVQQLEwVhZG1pbjEqMCgGA1UEAxMhYWRtaW4xLnRscy53eC1vcmcyLmNo
YWlubWFrZXIub3JnMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEp6x9RqVpsDnA
820qRkArwou2LYuo+agsaIzDRjlQ08CnWSjVr8/TQk8uW0PYIE5hSnNijiUFAOZ5
97NYKHkPa6N7MHkwDgYDVR0PAQH/BAQDAgGmMA8GA1UdJQQIMAYGBFUdJQAwKQYD
VR0OBCIEIBKlhYGuiTK3JFKFLtgU3ksPHwC3jSQXAUaRUk4mLh4zMCsGA1UdIwQk
MCKAINByD7x2XQ22mzkaqND5s+fwvXXaNWnNTIH86lJSZjjhMAoGCCqGSM49BAMC
A0kAMEYCIQD2q4I4vyAxo9HBpzW9yz4X5xvhvqre//JIOcprDP0PRQIhAMCc46oP
6VKBwg24HfR3HQbldIltYJhtmp6PC6h9sXOo
-----END CERTIFICATE-----
-----BEGIN EC PRIVATE KEY-----
MHcCAQEEIAYGQfa4OpufZ7oQri2+BnP3+Ylf0+ueJrTYeBnxU3FHoAoGCCqGSM49
AwEHoUQDQgAEp6x9RqVpsDnA820qRkArwou2LYuo+agsaIzDRjlQ08CnWSjVr8/T
Qk8uW0PYIE5hSnNijiUFAOZ597NYKHkPaw==
-----END EC PRIVATE KEY-----
D6zqMdK6nHu6ewHefRUBH5uzLLYSmecXqFBUxEd18ZWJ
\ No newline at end of file
-----BEGIN CERTIFICATE-----
MIICiTCCAi+gAwIBAgIDAtZuMAoGCCqGSM49BAMCMIGKMQswCQYDVQQGEwJDTjEQ
MA4GA1UECBMHQmVpamluZzEQMA4GA1UEBxMHQmVpamluZzEfMB0GA1UEChMWd3gt
b3JnMi5jaGFpbm1ha2VyLm9yZzESMBAGA1UECxMJcm9vdC1jZXJ0MSIwIAYDVQQD
ExljYS53eC1vcmcyLmNoYWlubWFrZXIub3JnMB4XDTIyMDMxNTExNTkyMVoXDTI3
MDMxNDExNTkyMVowgZExCzAJBgNVBAYTAkNOMRAwDgYDVQQIEwdCZWlqaW5nMRAw
DgYDVQQHEwdCZWlqaW5nMR8wHQYDVQQKExZ3eC1vcmcyLmNoYWlubWFrZXIub3Jn
MQ8wDQYDVQQLEwZjbGllbnQxLDAqBgNVBAMTI2NsaWVudDEuc2lnbi53eC1vcmcy
LmNoYWlubWFrZXIub3JnMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEK2GRF+hE
Y3smotl7lwC1YNoFJ4AeRjkzR6x+Bvsy14b6ZFqVSovod786f5LVygdQsK5nXcgQ
Ar5iv4RI1zojOqN7MHkwDgYDVR0PAQH/BAQDAgGmMA8GA1UdJQQIMAYGBFUdJQAw
KQYDVR0OBCIEIMCwGpEPjXsUhW9K9BN23iIr0G6MCil2Ytw/2HGHLTJHMCsGA1Ud
IwQkMCKAINByD7x2XQ22mzkaqND5s+fwvXXaNWnNTIH86lJSZjjhMAoGCCqGSM49
BAMCA0gAMEUCIQCJjFFI5Om2xqrjCYimo+cWWSe+bicv17BQwME0fkwg+wIgKtFd
5H5zXuSB9oOt+eq1w+m5EUryV1kbrZTr5zVv2Fg=
-----END CERTIFICATE-----
-----BEGIN EC PRIVATE KEY-----
MHcCAQEEIBSPsvTYbX2yr5NpHOoVRGLrPKOfhXwmXyZGzrLgEd/3oAoGCCqGSM49
AwEHoUQDQgAEK2GRF+hEY3smotl7lwC1YNoFJ4AeRjkzR6x+Bvsy14b6ZFqVSovo
d786f5LVygdQsK5nXcgQAr5iv4RI1zojOg==
-----END EC PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
MIICiDCCAi6gAwIBAgIDBYyTMAoGCCqGSM49BAMCMIGKMQswCQYDVQQGEwJDTjEQ
MA4GA1UECBMHQmVpamluZzEQMA4GA1UEBxMHQmVpamluZzEfMB0GA1UEChMWd3gt
b3JnMi5jaGFpbm1ha2VyLm9yZzESMBAGA1UECxMJcm9vdC1jZXJ0MSIwIAYDVQQD
ExljYS53eC1vcmcyLmNoYWlubWFrZXIub3JnMB4XDTIyMDMxNTExNTkyMVoXDTI3
MDMxNDExNTkyMVowgZAxCzAJBgNVBAYTAkNOMRAwDgYDVQQIEwdCZWlqaW5nMRAw
DgYDVQQHEwdCZWlqaW5nMR8wHQYDVQQKExZ3eC1vcmcyLmNoYWlubWFrZXIub3Jn
MQ8wDQYDVQQLEwZjbGllbnQxKzApBgNVBAMTImNsaWVudDEudGxzLnd4LW9yZzIu
Y2hhaW5tYWtlci5vcmcwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATfi2SGeHI3
MB77NSr4A0L+gha8ubVCQrlp3kFAl+r8YcvbyP8Ob0ai5xowTOOzfRgsDF0dkcuW
L0dxmwCNQma5o3sweTAOBgNVHQ8BAf8EBAMCAaYwDwYDVR0lBAgwBgYEVR0lADAp
BgNVHQ4EIgQgoMEeOWHAZ809F2Hm9L4z81C4qjphmZ85nNOaRS+CiUAwKwYDVR0j
BCQwIoAg0HIPvHZdDbabORqo0Pmz5/C9ddo1ac1MgfzqUlJmOOEwCgYIKoZIzj0E
AwIDSAAwRQIhANz6t0pOt6nqiVvWKPL/JRlDENjCMCKwonYbwoHkzTgJAiBBUGHn
eyQkZt8uDP+HMxhErmib+XkznG7ljxUSkbzkxw==
-----END CERTIFICATE-----
-----BEGIN EC PRIVATE KEY-----
MHcCAQEEILI9FojmWAsCP8vkwGc3EG6hwHE+YxxOwK/E4qeese+/oAoGCCqGSM49
AwEHoUQDQgAE34tkhnhyNzAe+zUq+ANC/oIWvLm1QkK5ad5BQJfq/GHL28j/Dm9G
oucaMEzjs30YLAxdHZHLli9HcZsAjUJmuQ==
-----END EC PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
MIICrjCCAlWgAwIBAgIDDl3GMAoGCCqGSM49BAMCMIGKMQswCQYDVQQGEwJDTjEQ
MA4GA1UECBMHQmVpamluZzEQMA4GA1UEBxMHQmVpamluZzEfMB0GA1UEChMWd3gt
b3JnMy5jaGFpbm1ha2VyLm9yZzESMBAGA1UECxMJcm9vdC1jZXJ0MSIwIAYDVQQD
ExljYS53eC1vcmczLmNoYWlubWFrZXIub3JnMB4XDTIyMDMxNTExNTkyMVoXDTMy
MDMxMjExNTkyMVowgYoxCzAJBgNVBAYTAkNOMRAwDgYDVQQIEwdCZWlqaW5nMRAw
DgYDVQQHEwdCZWlqaW5nMR8wHQYDVQQKExZ3eC1vcmczLmNoYWlubWFrZXIub3Jn
MRIwEAYDVQQLEwlyb290LWNlcnQxIjAgBgNVBAMTGWNhLnd4LW9yZzMuY2hhaW5t
YWtlci5vcmcwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATjBnQJ4T7J4NekJfqk
Cm321gH0ZpCwQi+ucGXtyZgPlo/K8a8dsMdV+i/RtdcAubAKB3F4MuAcnHKVI8Dd
cXhyo4GnMIGkMA4GA1UdDwEB/wQEAwIBpjAPBgNVHSUECDAGBgRVHSUAMA8GA1Ud
EwEB/wQFMAMBAf8wKQYDVR0OBCIEIE/YlX6oHPxeKPnCM37EE7grCvm8wfJBibZ9
18ZMaGnmMEUGA1UdEQQ+MDyCDmNoYWlubWFrZXIub3Jngglsb2NhbGhvc3SCGWNh
Lnd4LW9yZzMuY2hhaW5tYWtlci5vcmeHBH8AAAEwCgYIKoZIzj0EAwIDRwAwRAIg
bytw/NVXd/XFzdKs5s6DRci2cO+6TsaWrwO+Ru9sJsICIHpvYCa1BsSYsk7G1oLv
zB1DJMzPQaYbUPbaHqRPm2SU
-----END CERTIFICATE-----
-----BEGIN EC PRIVATE KEY-----
MHcCAQEEIEZGplbzfPfPfYfBOc388ko2ZrIXKfmxKvg3DIU6LXzsoAoGCCqGSM49
AwEHoUQDQgAE4wZ0CeE+yeDXpCX6pApt9tYB9GaQsEIvrnBl7cmYD5aPyvGvHbDH
Vfov0bXXALmwCgdxeDLgHJxylSPA3XF4cg==
-----END EC PRIVATE KEY-----
QmPFha1i2gYQAj9enJu45dPffqq8Aqc9ogF9NKKt6eefQ6
\ No newline at end of file
-----BEGIN CERTIFICATE-----
MIICuzCCAmKgAwIBAgIDCEHlMAoGCCqGSM49BAMCMIGKMQswCQYDVQQGEwJDTjEQ
MA4GA1UECBMHQmVpamluZzEQMA4GA1UEBxMHQmVpamluZzEfMB0GA1UEChMWd3gt
b3JnMy5jaGFpbm1ha2VyLm9yZzESMBAGA1UECxMJcm9vdC1jZXJ0MSIwIAYDVQQD
ExljYS53eC1vcmczLmNoYWlubWFrZXIub3JnMB4XDTIyMDMxNTExNTkyMVoXDTI3
MDMxNDExNTkyMVowgZExCzAJBgNVBAYTAkNOMRAwDgYDVQQIEwdCZWlqaW5nMRAw
DgYDVQQHEwdCZWlqaW5nMR8wHQYDVQQKExZ3eC1vcmczLmNoYWlubWFrZXIub3Jn
MQ8wDQYDVQQLEwZjb21tb24xLDAqBgNVBAMTI2NvbW1vbjEuc2lnbi53eC1vcmcz
LmNoYWlubWFrZXIub3JnMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEtGtagxDt
XK3AltTNfxVgNd4tf+d4a9hVoRdN8dKO5/tnpB64RaeXSsGCZ95IzQbrqiKnTUPX
/uu8JOt8UhaxF6OBrTCBqjAOBgNVHQ8BAf8EBAMCAaYwDwYDVR0lBAgwBgYEVR0l
ADApBgNVHQ4EIgQgnb6AJSqCS3ufbdCRucxBEeKqhKAyt5tRf7OWOS7/ZK0wKwYD
VR0jBCQwIoAgT9iVfqgc/F4o+cIzfsQTuCsK+bzB8kGJtn3XxkxoaeYwLwYLgSdY
j2QLHo9kCwQEIGU1NDg2YjliMTA4MjRiZGViMTdhMGYwZmU3ODI5NjUzMAoGCCqG
SM49BAMCA0cAMEQCIHHUscdUlVVuiLxLeVcHCr1puD4A/8F5Qp5HzjsZubJVAiBn
O8i12i01ORb8UBD8RsUs6W55jzr72vQrRiK9ErJULA==
-----END CERTIFICATE-----
-----BEGIN EC PRIVATE KEY-----
MHcCAQEEICqqmhz6qYinOuyPlVPmDVxxh9VnsXVGWYFZDhiMJWU6oAoGCCqGSM49
AwEHoUQDQgAEtGtagxDtXK3AltTNfxVgNd4tf+d4a9hVoRdN8dKO5/tnpB64RaeX
SsGCZ95IzQbrqiKnTUPX/uu8JOt8UhaxFw==
-----END EC PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
MIIDCzCCArGgAwIBAgIDCDrsMAoGCCqGSM49BAMCMIGKMQswCQYDVQQGEwJDTjEQ
MA4GA1UECBMHQmVpamluZzEQMA4GA1UEBxMHQmVpamluZzEfMB0GA1UEChMWd3gt
b3JnMy5jaGFpbm1ha2VyLm9yZzESMBAGA1UECxMJcm9vdC1jZXJ0MSIwIAYDVQQD
ExljYS53eC1vcmczLmNoYWlubWFrZXIub3JnMB4XDTIyMDMxNTExNTkyMVoXDTI3
MDMxNDExNTkyMVowgZAxCzAJBgNVBAYTAkNOMRAwDgYDVQQIEwdCZWlqaW5nMRAw
DgYDVQQHEwdCZWlqaW5nMR8wHQYDVQQKExZ3eC1vcmczLmNoYWlubWFrZXIub3Jn
MQ8wDQYDVQQLEwZjb21tb24xKzApBgNVBAMTImNvbW1vbjEudGxzLnd4LW9yZzMu
Y2hhaW5tYWtlci5vcmcwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASRwbT3AXk+
3XQzSdFYCucwGym0hAMcMNP3MLkt4pCc7HgXshl80jdzpqGsb0TrdCaLkVSq8Q7M
uMogoL94AmFco4H9MIH6MA4GA1UdDwEB/wQEAwIBpjAPBgNVHSUECDAGBgRVHSUA
MCkGA1UdDgQiBCCpxBqJjgkWMmiCGh4KsdnoBNY012cQQKvfNqBJnlK2PzArBgNV
HSMEJDAigCBP2JV+qBz8Xij5wjN+xBO4Kwr5vMHyQYm2fdfGTGhp5jBOBgNVHREE
RzBFgg5jaGFpbm1ha2VyLm9yZ4IJbG9jYWxob3N0giJjb21tb24xLnRscy53eC1v
cmczLmNoYWlubWFrZXIub3JnhwR/AAABMC8GC4EnWI9kCx6PZAsEBCBlNTQ4NmI5
YjEwODI0YmRlYjE3YTBmMGZlNzgyOTY1MzAKBggqhkjOPQQDAgNIADBFAiEA6lP5
y+9dwP/pz7VzZ121MSC08/mOK8/E8ohLjaYGcdUCIGd+OS4nDjQ1hqBqx7Bu2Oqw
GapTCt+gYS35O7hu7o+L
-----END CERTIFICATE-----
-----BEGIN EC PRIVATE KEY-----
MHcCAQEEIMWM9+uVIs/zOUhm97AZtVfSZ6qAv5MR35KWopm98lxnoAoGCCqGSM49
AwEHoUQDQgAEkcG09wF5Pt10M0nRWArnMBsptIQDHDDT9zC5LeKQnOx4F7IZfNI3
c6ahrG9E63Qmi5FUqvEOzLjKIKC/eAJhXA==
-----END EC PRIVATE KEY-----
QmQwufkUgDNMTR5db7x3fNWV1cgjtNZvRZmQMxugpZ6n4F
\ No newline at end of file
-----BEGIN CERTIFICATE-----
MIICwzCCAmigAwIBAgIDCwY/MAoGCCqGSM49BAMCMIGKMQswCQYDVQQGEwJDTjEQ
MA4GA1UECBMHQmVpamluZzEQMA4GA1UEBxMHQmVpamluZzEfMB0GA1UEChMWd3gt
b3JnMy5jaGFpbm1ha2VyLm9yZzESMBAGA1UECxMJcm9vdC1jZXJ0MSIwIAYDVQQD
ExljYS53eC1vcmczLmNoYWlubWFrZXIub3JnMB4XDTIyMDMxNTExNTkyMVoXDTI3
MDMxNDExNTkyMVowgZcxCzAJBgNVBAYTAkNOMRAwDgYDVQQIEwdCZWlqaW5nMRAw
DgYDVQQHEwdCZWlqaW5nMR8wHQYDVQQKExZ3eC1vcmczLmNoYWlubWFrZXIub3Jn
MRIwEAYDVQQLEwljb25zZW5zdXMxLzAtBgNVBAMTJmNvbnNlbnN1czEuc2lnbi53
eC1vcmczLmNoYWlubWFrZXIub3JnMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE
rNdXIUoiLlbTqFiZmF/VK700l+WV9DK2YFbvI9k8ly0biyajILk+esdDza44efvq
iRnx/4OyZN1gaSY6nQNvVaOBrTCBqjAOBgNVHQ8BAf8EBAMCAaYwDwYDVR0lBAgw
BgYEVR0lADApBgNVHQ4EIgQgNwxWkVb1GdnLP7515ZUp1JdgjFcGdG9hr7k1db39
xpIwKwYDVR0jBCQwIoAgT9iVfqgc/F4o+cIzfsQTuCsK+bzB8kGJtn3XxkxoaeYw
LwYLgSdYj2QLHo9kCwQEIDI2NTI4NTNlMTRjOTRhM2M4YmI5YmE5YmQxMjE5ZWMx
MAoGCCqGSM49BAMCA0kAMEYCIQCOrOl/GoMRG5RqR2BxE1n7mAZ2BZRun8gz5Fxi
lZTL5wIhAKm1QwVWmPVkdLK/+/77sWSmYnYWZL6lELorMXzrLZCP
-----END CERTIFICATE-----
-----BEGIN EC PRIVATE KEY-----
MHcCAQEEIDUA7JtSxmLVWfDxXmMmz6G7Xdv1WcMhgYTxXw1fQBavoAoGCCqGSM49
AwEHoUQDQgAErNdXIUoiLlbTqFiZmF/VK700l+WV9DK2YFbvI9k8ly0biyajILk+
esdDza44efvqiRnx/4OyZN1gaSY6nQNvVQ==
-----END EC PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
MIIDFTCCArugAwIBAgIDBc0wMAoGCCqGSM49BAMCMIGKMQswCQYDVQQGEwJDTjEQ
MA4GA1UECBMHQmVpamluZzEQMA4GA1UEBxMHQmVpamluZzEfMB0GA1UEChMWd3gt
b3JnMy5jaGFpbm1ha2VyLm9yZzESMBAGA1UECxMJcm9vdC1jZXJ0MSIwIAYDVQQD
ExljYS53eC1vcmczLmNoYWlubWFrZXIub3JnMB4XDTIyMDMxNTExNTkyMVoXDTI3
MDMxNDExNTkyMVowgZYxCzAJBgNVBAYTAkNOMRAwDgYDVQQIEwdCZWlqaW5nMRAw
DgYDVQQHEwdCZWlqaW5nMR8wHQYDVQQKExZ3eC1vcmczLmNoYWlubWFrZXIub3Jn
MRIwEAYDVQQLEwljb25zZW5zdXMxLjAsBgNVBAMTJWNvbnNlbnN1czEudGxzLnd4
LW9yZzMuY2hhaW5tYWtlci5vcmcwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQl
Ave/yogmgAdTEtuYV3Oru8Qfla2lw0/NaegIMn9uIQBx2vXen68V1ws74KDMEd01
CP3/R8fcC5D5bWzt486Zo4IBADCB/TAOBgNVHQ8BAf8EBAMCAaYwDwYDVR0lBAgw
BgYEVR0lADApBgNVHQ4EIgQgrKR5nkzulUXdRrgh1lPQhLyZCXSyMCLwcPDcFGiL
F7swKwYDVR0jBCQwIoAgT9iVfqgc/F4o+cIzfsQTuCsK+bzB8kGJtn3XxkxoaeYw
UQYDVR0RBEowSIIOY2hhaW5tYWtlci5vcmeCCWxvY2FsaG9zdIIlY29uc2Vuc3Vz
MS50bHMud3gtb3JnMy5jaGFpbm1ha2VyLm9yZ4cEfwAAATAvBguBJ1iPZAsej2QL
BAQgMjY1Mjg1M2UxNGM5NGEzYzhiYjliYTliZDEyMTllYzEwCgYIKoZIzj0EAwID
SAAwRQIhAOZ7JBO6Hw5rg0oPN5QdP5YGQbBVIoDY94LlmULuGinrAiBerfNYK6bx
A7CbYb/P6K9iuRc170LMpPG8jQi/uqUP/w==
-----END CERTIFICATE-----
-----BEGIN EC PRIVATE KEY-----
MHcCAQEEIJj+Y3tTejHlpfAXMnXZ8yLRbvI8CiAvjqXqgxl/AfVQoAoGCCqGSM49
AwEHoUQDQgAEJQL3v8qIJoAHUxLbmFdzq7vEH5WtpcNPzWnoCDJ/biEAcdr13p+v
FdcLO+CgzBHdNQj9/0fH3AuQ+W1s7ePOmQ==
-----END EC PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
MIIChzCCAi2gAwIBAgIDBobhMAoGCCqGSM49BAMCMIGKMQswCQYDVQQGEwJDTjEQ
MA4GA1UECBMHQmVpamluZzEQMA4GA1UEBxMHQmVpamluZzEfMB0GA1UEChMWd3gt
b3JnMy5jaGFpbm1ha2VyLm9yZzESMBAGA1UECxMJcm9vdC1jZXJ0MSIwIAYDVQQD
ExljYS53eC1vcmczLmNoYWlubWFrZXIub3JnMB4XDTIyMDMxNTExNTkyMVoXDTI3
MDMxNDExNTkyMVowgY8xCzAJBgNVBAYTAkNOMRAwDgYDVQQIEwdCZWlqaW5nMRAw
DgYDVQQHEwdCZWlqaW5nMR8wHQYDVQQKExZ3eC1vcmczLmNoYWlubWFrZXIub3Jn
MQ4wDAYDVQQLEwVhZG1pbjErMCkGA1UEAxMiYWRtaW4xLnNpZ24ud3gtb3JnMy5j
aGFpbm1ha2VyLm9yZzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABJxyuOdSVJpA
nwK1cmfGLyiH4USMY/JDoVhaIZOWYFpRrvf6W9uAIEiPOFEFmw/Mkw9xcMdGzpzk
MtTV3BpjZIqjezB5MA4GA1UdDwEB/wQEAwIBpjAPBgNVHSUECDAGBgRVHSUAMCkG
A1UdDgQiBCAnsBbIQa8T02J/hv13QBBmVsWrH5QMRNnyyfxks9RO1jArBgNVHSME
JDAigCBP2JV+qBz8Xij5wjN+xBO4Kwr5vMHyQYm2fdfGTGhp5jAKBggqhkjOPQQD
AgNIADBFAiAbsf434Lvfo3aYhw9t3c/62Ye1n7tGvQA+8jI7ugc7gAIhAPR/SIDs
ngPcwGh+NZPqFfYWaGRUH0pMAe+SLdkfAaPF
-----END CERTIFICATE-----
-----BEGIN EC PRIVATE KEY-----
MHcCAQEEIBdTFCiLe24i22LVt6TS4GNnDJ9baOZEEovpBIZZBVAboAoGCCqGSM49
AwEHoUQDQgAEnHK451JUmkCfArVyZ8YvKIfhRIxj8kOhWFohk5ZgWlGu9/pb24Ag
SI84UQWbD8yTD3Fwx0bOnOQy1NXcGmNkig==
-----END EC PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
MIIChjCCAiygAwIBAgIDBnZyMAoGCCqGSM49BAMCMIGKMQswCQYDVQQGEwJDTjEQ
MA4GA1UECBMHQmVpamluZzEQMA4GA1UEBxMHQmVpamluZzEfMB0GA1UEChMWd3gt
b3JnMy5jaGFpbm1ha2VyLm9yZzESMBAGA1UECxMJcm9vdC1jZXJ0MSIwIAYDVQQD
ExljYS53eC1vcmczLmNoYWlubWFrZXIub3JnMB4XDTIyMDMxNTExNTkyMVoXDTI3
MDMxNDExNTkyMVowgY4xCzAJBgNVBAYTAkNOMRAwDgYDVQQIEwdCZWlqaW5nMRAw
DgYDVQQHEwdCZWlqaW5nMR8wHQYDVQQKExZ3eC1vcmczLmNoYWlubWFrZXIub3Jn
MQ4wDAYDVQQLEwVhZG1pbjEqMCgGA1UEAxMhYWRtaW4xLnRscy53eC1vcmczLmNo
YWlubWFrZXIub3JnMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEZxUf9JD0UYcg
FWb8WrireQKwFqdE0WTYVhf+RYB8Y9gyO46PZFN9CFKWOXBuhKZBgo+djIZIvBRQ
/s8amBahUKN7MHkwDgYDVR0PAQH/BAQDAgGmMA8GA1UdJQQIMAYGBFUdJQAwKQYD
VR0OBCIEIDwuJhqGMnYG4EzSxfwWqkT1/8HbS3kx6Df3BjEMu8doMCsGA1UdIwQk
MCKAIE/YlX6oHPxeKPnCM37EE7grCvm8wfJBibZ918ZMaGnmMAoGCCqGSM49BAMC
A0gAMEUCIQCYGzhejNq5YjMs+VybtF04xKqCXLjl0xoud2l4Gba2EQIgNOLYnjtO
fh1E4NIXd1REak05IWuPW3Wzz2rm5F5K+hY=
-----END CERTIFICATE-----
-----BEGIN EC PRIVATE KEY-----
MHcCAQEEIG6xE3o5nr9VvgPIr9Ns8NnChLMeMXhv364aAGTl1I9boAoGCCqGSM49
AwEHoUQDQgAEZxUf9JD0UYcgFWb8WrireQKwFqdE0WTYVhf+RYB8Y9gyO46PZFN9
CFKWOXBuhKZBgo+djIZIvBRQ/s8amBahUA==
-----END EC PRIVATE KEY-----
mGfEnXWUbpVY5U3XpBobT2jTfRwiUsX1gegmzsmKtPm
\ No newline at end of file
-----BEGIN CERTIFICATE-----
MIICiTCCAi+gAwIBAgIDDrGvMAoGCCqGSM49BAMCMIGKMQswCQYDVQQGEwJDTjEQ
MA4GA1UECBMHQmVpamluZzEQMA4GA1UEBxMHQmVpamluZzEfMB0GA1UEChMWd3gt
b3JnMy5jaGFpbm1ha2VyLm9yZzESMBAGA1UECxMJcm9vdC1jZXJ0MSIwIAYDVQQD
ExljYS53eC1vcmczLmNoYWlubWFrZXIub3JnMB4XDTIyMDMxNTExNTkyMVoXDTI3
MDMxNDExNTkyMVowgZExCzAJBgNVBAYTAkNOMRAwDgYDVQQIEwdCZWlqaW5nMRAw
DgYDVQQHEwdCZWlqaW5nMR8wHQYDVQQKExZ3eC1vcmczLmNoYWlubWFrZXIub3Jn
MQ8wDQYDVQQLEwZjbGllbnQxLDAqBgNVBAMTI2NsaWVudDEuc2lnbi53eC1vcmcz
LmNoYWlubWFrZXIub3JnMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEO6iQIrfw
vD8m+RFVavbJbL41F1+uRJplQFLNwF4+mfTLEfAf587cK98saZ59SIyHPuR3k8RJ
mpCG7xfYjBoQJaN7MHkwDgYDVR0PAQH/BAQDAgGmMA8GA1UdJQQIMAYGBFUdJQAw
KQYDVR0OBCIEIH/N6yyZUlDzCx0M7fvA/NTlsh10EmPtdnbMEB/+eb0rMCsGA1Ud
IwQkMCKAIE/YlX6oHPxeKPnCM37EE7grCvm8wfJBibZ918ZMaGnmMAoGCCqGSM49
BAMCA0gAMEUCIFx497p7CXQHXjKH4WaIVsaqqMm6iAh6j0pCe3aAPyQFAiEAnWW7
WbL6d3qh5ze6ZQtJ2TdTuNMCQ56dZ64QLvswlHM=
-----END CERTIFICATE-----
-----BEGIN EC PRIVATE KEY-----
MHcCAQEEIJq/T6d9Ju0+LRLrzq/Z30MDrgbeXfufw9At2zady+NaoAoGCCqGSM49
AwEHoUQDQgAEO6iQIrfwvD8m+RFVavbJbL41F1+uRJplQFLNwF4+mfTLEfAf587c
K98saZ59SIyHPuR3k8RJmpCG7xfYjBoQJQ==
-----END EC PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
MIIChzCCAi6gAwIBAgIDB8N9MAoGCCqGSM49BAMCMIGKMQswCQYDVQQGEwJDTjEQ
MA4GA1UECBMHQmVpamluZzEQMA4GA1UEBxMHQmVpamluZzEfMB0GA1UEChMWd3gt
b3JnMy5jaGFpbm1ha2VyLm9yZzESMBAGA1UECxMJcm9vdC1jZXJ0MSIwIAYDVQQD
ExljYS53eC1vcmczLmNoYWlubWFrZXIub3JnMB4XDTIyMDMxNTExNTkyMVoXDTI3
MDMxNDExNTkyMVowgZAxCzAJBgNVBAYTAkNOMRAwDgYDVQQIEwdCZWlqaW5nMRAw
DgYDVQQHEwdCZWlqaW5nMR8wHQYDVQQKExZ3eC1vcmczLmNoYWlubWFrZXIub3Jn
MQ8wDQYDVQQLEwZjbGllbnQxKzApBgNVBAMTImNsaWVudDEudGxzLnd4LW9yZzMu
Y2hhaW5tYWtlci5vcmcwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAT+8XkA6dc6
0dujvHYbEFRxbyjNJRCRL9w/sqYk4+tdnuVtHIc0BdHhglGIGk3DTFH64Whmh7k/
M/KGP9nvFz/5o3sweTAOBgNVHQ8BAf8EBAMCAaYwDwYDVR0lBAgwBgYEVR0lADAp
BgNVHQ4EIgQg1JBVXY1RtWefDRIPa23y9kzMA7Cl5hNgqti35SBOyPwwKwYDVR0j
BCQwIoAgT9iVfqgc/F4o+cIzfsQTuCsK+bzB8kGJtn3XxkxoaeYwCgYIKoZIzj0E
AwIDRwAwRAIgBPPhsk2o0vFCUtsIzmsUqG2A2+LF9pVCpOd3yAsJiN8CID+7vzC5
OVisXagZ0fef2vp0KgTrhyvbxE8c+X1C+OOo
-----END CERTIFICATE-----
-----BEGIN EC PRIVATE KEY-----
MHcCAQEEIM/Lie4rxh8kE48tuEAd0PD7IjZRXelk4rerP6FfS1WhoAoGCCqGSM49
AwEHoUQDQgAE/vF5AOnXOtHbo7x2GxBUcW8ozSUQkS/cP7KmJOPrXZ7lbRyHNAXR
4YJRiBpNw0xR+uFoZoe5PzPyhj/Z7xc/+Q==
-----END EC PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
MIICrzCCAlWgAwIBAgIDCMqxMAoGCCqGSM49BAMCMIGKMQswCQYDVQQGEwJDTjEQ
MA4GA1UECBMHQmVpamluZzEQMA4GA1UEBxMHQmVpamluZzEfMB0GA1UEChMWd3gt
b3JnNC5jaGFpbm1ha2VyLm9yZzESMBAGA1UECxMJcm9vdC1jZXJ0MSIwIAYDVQQD
ExljYS53eC1vcmc0LmNoYWlubWFrZXIub3JnMB4XDTIyMDMxNTExNTkyMVoXDTMy
MDMxMjExNTkyMVowgYoxCzAJBgNVBAYTAkNOMRAwDgYDVQQIEwdCZWlqaW5nMRAw
DgYDVQQHEwdCZWlqaW5nMR8wHQYDVQQKExZ3eC1vcmc0LmNoYWlubWFrZXIub3Jn
MRIwEAYDVQQLEwlyb290LWNlcnQxIjAgBgNVBAMTGWNhLnd4LW9yZzQuY2hhaW5t
YWtlci5vcmcwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASTkyKI2/2pte9RhQjU
2DW49Y6H3DO2GFZg0CD3hda4/Dl4+58cEKHQ9vsGDbULeoXTm7ZflnSn7it+0O8d
7BDjo4GnMIGkMA4GA1UdDwEB/wQEAwIBpjAPBgNVHSUECDAGBgRVHSUAMA8GA1Ud
EwEB/wQFMAMBAf8wKQYDVR0OBCIEIA1L5SYKMifwwNKxPPhcdeVzXpPeVXv408ch
S/HencPdMEUGA1UdEQQ+MDyCDmNoYWlubWFrZXIub3Jngglsb2NhbGhvc3SCGWNh
Lnd4LW9yZzQuY2hhaW5tYWtlci5vcmeHBH8AAAEwCgYIKoZIzj0EAwIDSAAwRQIh
AOSWKoZIWacLC4fwpzmM+Or2m9rnoQJmzuk16Y26WIUUAiBWPU+mSZnkrNSo42Zx
1ygSLtQuVUfQ+iPRlUeGfgJ17Q==
-----END CERTIFICATE-----
-----BEGIN EC PRIVATE KEY-----
MHcCAQEEIG65zt/r/xDQEw6gG0TbGfgcI6rv2E3he7UmlRBU6DVZoAoGCCqGSM49
AwEHoUQDQgAEk5MiiNv9qbXvUYUI1Ng1uPWOh9wzthhWYNAg94XWuPw5ePufHBCh
0Pb7Bg21C3qF05u2X5Z0p+4rftDvHewQ4w==
-----END EC PRIVATE KEY-----
QmVsh3V2jVTWuDHwdfN1jFuqe9GKGPaJRAW4HFzFC3BPWd
\ No newline at end of file
-----BEGIN CERTIFICATE-----
MIICvDCCAmKgAwIBAgIDDrv9MAoGCCqGSM49BAMCMIGKMQswCQYDVQQGEwJDTjEQ
MA4GA1UECBMHQmVpamluZzEQMA4GA1UEBxMHQmVpamluZzEfMB0GA1UEChMWd3gt
b3JnNC5jaGFpbm1ha2VyLm9yZzESMBAGA1UECxMJcm9vdC1jZXJ0MSIwIAYDVQQD
ExljYS53eC1vcmc0LmNoYWlubWFrZXIub3JnMB4XDTIyMDMxNTExNTkyMVoXDTI3
MDMxNDExNTkyMVowgZExCzAJBgNVBAYTAkNOMRAwDgYDVQQIEwdCZWlqaW5nMRAw
DgYDVQQHEwdCZWlqaW5nMR8wHQYDVQQKExZ3eC1vcmc0LmNoYWlubWFrZXIub3Jn
MQ8wDQYDVQQLEwZjb21tb24xLDAqBgNVBAMTI2NvbW1vbjEuc2lnbi53eC1vcmc0
LmNoYWlubWFrZXIub3JnMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEDTwNO/hT
KiVkxt5WxAkyVqBEICnMZgF6UX/Ovd8m944dwcoqQzk5MMmDvgMD2r2IzK03hT5J
HsuvSRiQ1n+PKKOBrTCBqjAOBgNVHQ8BAf8EBAMCAaYwDwYDVR0lBAgwBgYEVR0l
ADApBgNVHQ4EIgQg/JD7cXQQzqyTz15E4NnelEj15hf54ISaUt62icPpozkwKwYD
VR0jBCQwIoAgDUvlJgoyJ/DA0rE8+Fx15XNek95Ve/jTxyFL8d6dw90wLwYLgSdY
j2QLHo9kCwQEIGMyYWM0OWMxNTY2NjQ1NTU4NGZkNjJkNGFmNWQ0ZWYxMAoGCCqG
SM49BAMCA0gAMEUCIQClOJfAxJAYFBmFGo5LPbdnmb9B4JNSN4ssJZqflraU4QIg
SYZbz/p79ZrQpglXN2NioqDW7o1+8fSnp7reXBPJGf0=
-----END CERTIFICATE-----
-----BEGIN EC PRIVATE KEY-----
MHcCAQEEIDjIkyUvd/hpDbBBT/kIdPpCPgU49KdtyOnGC9amLPf+oAoGCCqGSM49
AwEHoUQDQgAEDTwNO/hTKiVkxt5WxAkyVqBEICnMZgF6UX/Ovd8m944dwcoqQzk5
MMmDvgMD2r2IzK03hT5JHsuvSRiQ1n+PKA==
-----END EC PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
MIIDCzCCArGgAwIBAgIDAg+wMAoGCCqGSM49BAMCMIGKMQswCQYDVQQGEwJDTjEQ
MA4GA1UECBMHQmVpamluZzEQMA4GA1UEBxMHQmVpamluZzEfMB0GA1UEChMWd3gt
b3JnNC5jaGFpbm1ha2VyLm9yZzESMBAGA1UECxMJcm9vdC1jZXJ0MSIwIAYDVQQD
ExljYS53eC1vcmc0LmNoYWlubWFrZXIub3JnMB4XDTIyMDMxNTExNTkyMVoXDTI3
MDMxNDExNTkyMVowgZAxCzAJBgNVBAYTAkNOMRAwDgYDVQQIEwdCZWlqaW5nMRAw
DgYDVQQHEwdCZWlqaW5nMR8wHQYDVQQKExZ3eC1vcmc0LmNoYWlubWFrZXIub3Jn
MQ8wDQYDVQQLEwZjb21tb24xKzApBgNVBAMTImNvbW1vbjEudGxzLnd4LW9yZzQu
Y2hhaW5tYWtlci5vcmcwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQGhIGTBr+w
wpPc0sG/x7yFX4X5e3NoL+jLwnfPHnXgbfqSQgDgThlKCdG60zZghyVsz7qN6/N2
bGHmYQOrLzXso4H9MIH6MA4GA1UdDwEB/wQEAwIBpjAPBgNVHSUECDAGBgRVHSUA
MCkGA1UdDgQiBCCKMf0CSnRv9YJ1SDu41d4Yy+53wa253H5eDt+ZUtOuvzArBgNV
HSMEJDAigCANS+UmCjIn8MDSsTz4XHXlc16T3lV7+NPHIUvx3p3D3TBOBgNVHREE
RzBFgg5jaGFpbm1ha2VyLm9yZ4IJbG9jYWxob3N0giJjb21tb24xLnRscy53eC1v
cmc0LmNoYWlubWFrZXIub3JnhwR/AAABMC8GC4EnWI9kCx6PZAsEBCBjMmFjNDlj
MTU2NjY0NTU1ODRmZDYyZDRhZjVkNGVmMTAKBggqhkjOPQQDAgNIADBFAiEAm/1R
ipd0goFYBek/tT6xGdwNWqUuHXwVnCidvMhTcosCIHF3TNAQX2ScJHVvF8NEomqP
pIQeFGeZB8ZpThq/G74x
-----END CERTIFICATE-----
-----BEGIN EC PRIVATE KEY-----
MHcCAQEEIOQ3/BWbFbYgTLAHplLqvyFssK6oAWVt8GWYK/mhXGgzoAoGCCqGSM49
AwEHoUQDQgAEBoSBkwa/sMKT3NLBv8e8hV+F+XtzaC/oy8J3zx514G36kkIA4E4Z
SgnRutM2YIclbM+6jevzdmxh5mEDqy817A==
-----END EC PRIVATE KEY-----
QmUin3izmhB9NiStAv3SFBUzrtaFMRUVTi3A7ZBAFwFmUZ
\ No newline at end of file
-----BEGIN CERTIFICATE-----
MIICwjCCAmigAwIBAgIDCBO5MAoGCCqGSM49BAMCMIGKMQswCQYDVQQGEwJDTjEQ
MA4GA1UECBMHQmVpamluZzEQMA4GA1UEBxMHQmVpamluZzEfMB0GA1UEChMWd3gt
b3JnNC5jaGFpbm1ha2VyLm9yZzESMBAGA1UECxMJcm9vdC1jZXJ0MSIwIAYDVQQD
ExljYS53eC1vcmc0LmNoYWlubWFrZXIub3JnMB4XDTIyMDMxNTExNTkyMVoXDTI3
MDMxNDExNTkyMVowgZcxCzAJBgNVBAYTAkNOMRAwDgYDVQQIEwdCZWlqaW5nMRAw
DgYDVQQHEwdCZWlqaW5nMR8wHQYDVQQKExZ3eC1vcmc0LmNoYWlubWFrZXIub3Jn
MRIwEAYDVQQLEwljb25zZW5zdXMxLzAtBgNVBAMTJmNvbnNlbnN1czEuc2lnbi53
eC1vcmc0LmNoYWlubWFrZXIub3JnMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE
tHatCbIo2N8YYMHHTXbJWSQIQ/EiTR43LUdwmYRwTd+O9FY/xpqWDiGDjoXficoE
AJk+PMsjMQT9XXhYou4PI6OBrTCBqjAOBgNVHQ8BAf8EBAMCAaYwDwYDVR0lBAgw
BgYEVR0lADApBgNVHQ4EIgQgKz9TGYiRo78aWESz/yvH8OZYmiDlQwXEfFiML4Ba
55swKwYDVR0jBCQwIoAgDUvlJgoyJ/DA0rE8+Fx15XNek95Ve/jTxyFL8d6dw90w
LwYLgSdYj2QLHo9kCwQEIGFlNTFiOGM4NDUxOTQ1ZjQ4OGEyNDZhYjFhOGRlNDlk
MAoGCCqGSM49BAMCA0gAMEUCIQDMu+Xj67pONLOTDlD9vAj4g2FsF8FPKvCuxIlJ
kevDBQIgWwgRLREnuO4BS6P91x0d2L6QF+O6qRZAknrAXpvuKXM=
-----END CERTIFICATE-----
-----BEGIN EC PRIVATE KEY-----
MHcCAQEEIIWi0dI9EEvmc+boD3J9PPDZ0NN6N+ByLtu+vRzHQtBJoAoGCCqGSM49
AwEHoUQDQgAEtHatCbIo2N8YYMHHTXbJWSQIQ/EiTR43LUdwmYRwTd+O9FY/xpqW
DiGDjoXficoEAJk+PMsjMQT9XXhYou4PIw==
-----END EC PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
MIIDFDCCArugAwIBAgIDChnsMAoGCCqGSM49BAMCMIGKMQswCQYDVQQGEwJDTjEQ
MA4GA1UECBMHQmVpamluZzEQMA4GA1UEBxMHQmVpamluZzEfMB0GA1UEChMWd3gt
b3JnNC5jaGFpbm1ha2VyLm9yZzESMBAGA1UECxMJcm9vdC1jZXJ0MSIwIAYDVQQD
ExljYS53eC1vcmc0LmNoYWlubWFrZXIub3JnMB4XDTIyMDMxNTExNTkyMVoXDTI3
MDMxNDExNTkyMVowgZYxCzAJBgNVBAYTAkNOMRAwDgYDVQQIEwdCZWlqaW5nMRAw
DgYDVQQHEwdCZWlqaW5nMR8wHQYDVQQKExZ3eC1vcmc0LmNoYWlubWFrZXIub3Jn
MRIwEAYDVQQLEwljb25zZW5zdXMxLjAsBgNVBAMTJWNvbnNlbnN1czEudGxzLnd4
LW9yZzQuY2hhaW5tYWtlci5vcmcwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARw
ZQkquyFa40Bh0ya8wd44+UtfuRUkF3KexmHUxpmtDKYL5s+beo/muyrHAr0puoSm
NZjzmVq2lvjiIZ9G2VYbo4IBADCB/TAOBgNVHQ8BAf8EBAMCAaYwDwYDVR0lBAgw
BgYEVR0lADApBgNVHQ4EIgQgBQJObwO1jkaxvcaowUa1uzuaJZEozZhKVhgpBADL
75YwKwYDVR0jBCQwIoAgDUvlJgoyJ/DA0rE8+Fx15XNek95Ve/jTxyFL8d6dw90w
UQYDVR0RBEowSIIOY2hhaW5tYWtlci5vcmeCCWxvY2FsaG9zdIIlY29uc2Vuc3Vz
MS50bHMud3gtb3JnNC5jaGFpbm1ha2VyLm9yZ4cEfwAAATAvBguBJ1iPZAsej2QL
BAQgYWU1MWI4Yzg0NTE5NDVmNDg4YTI0NmFiMWE4ZGU0OWQwCgYIKoZIzj0EAwID
RwAwRAIgROJpSbc3KavAQU8J6aNd4nZCQ9nRvYwAdBnVLPvvlc4CIGwex5T9rAmI
ijRwzjej8te1pCspwHf+Cm9/+opDp7OL
-----END CERTIFICATE-----
-----BEGIN EC PRIVATE KEY-----
MHcCAQEEIP9xo4Jed1z0R5lOu/r3O4laygw02DURyOVPavEOK+wtoAoGCCqGSM49
AwEHoUQDQgAEcGUJKrshWuNAYdMmvMHeOPlLX7kVJBdynsZh1MaZrQymC+bPm3qP
5rsqxwK9KbqEpjWY85latpb44iGfRtlWGw==
-----END EC PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
MIIChzCCAi2gAwIBAgIDBcbmMAoGCCqGSM49BAMCMIGKMQswCQYDVQQGEwJDTjEQ
MA4GA1UECBMHQmVpamluZzEQMA4GA1UEBxMHQmVpamluZzEfMB0GA1UEChMWd3gt
b3JnNC5jaGFpbm1ha2VyLm9yZzESMBAGA1UECxMJcm9vdC1jZXJ0MSIwIAYDVQQD
ExljYS53eC1vcmc0LmNoYWlubWFrZXIub3JnMB4XDTIyMDMxNTExNTkyMVoXDTI3
MDMxNDExNTkyMVowgY8xCzAJBgNVBAYTAkNOMRAwDgYDVQQIEwdCZWlqaW5nMRAw
DgYDVQQHEwdCZWlqaW5nMR8wHQYDVQQKExZ3eC1vcmc0LmNoYWlubWFrZXIub3Jn
MQ4wDAYDVQQLEwVhZG1pbjErMCkGA1UEAxMiYWRtaW4xLnNpZ24ud3gtb3JnNC5j
aGFpbm1ha2VyLm9yZzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABASozRr/joMc
DTsixiE4w7pB7e4SieVpXpoBWr0KFaTkJXG7AmXiXfGH/AezpvgSbkMZtjzF4WYc
zmtj/e3cUOGjezB5MA4GA1UdDwEB/wQEAwIBpjAPBgNVHSUECDAGBgRVHSUAMCkG
A1UdDgQiBCCiu1JZrIeE/FNFcM1UyswMNoSMRi2v13LLp1knY3GppTArBgNVHSME
JDAigCANS+UmCjIn8MDSsTz4XHXlc16T3lV7+NPHIUvx3p3D3TAKBggqhkjOPQQD
AgNIADBFAiEA949AEIv3HUEbxNt6Kz7g2kd9qE62L9WOAVf3pFvIWG4CIGo9tAD7
5bUX/Kl5lTc8gSIJT7rnslnTv4WabKr5/myr
-----END CERTIFICATE-----
-----BEGIN EC PRIVATE KEY-----
MHcCAQEEIFQOr7/XlFHq+Wo+9XT5/q2veDPYCwF7WDuVDiZpmGRVoAoGCCqGSM49
AwEHoUQDQgAEBKjNGv+OgxwNOyLGITjDukHt7hKJ5WlemgFavQoVpOQlcbsCZeJd
8Yf8B7Om+BJuQxm2PMXhZhzOa2P97dxQ4Q==
-----END EC PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
MIIChjCCAiygAwIBAgIDAOCUMAoGCCqGSM49BAMCMIGKMQswCQYDVQQGEwJDTjEQ
MA4GA1UECBMHQmVpamluZzEQMA4GA1UEBxMHQmVpamluZzEfMB0GA1UEChMWd3gt
b3JnNC5jaGFpbm1ha2VyLm9yZzESMBAGA1UECxMJcm9vdC1jZXJ0MSIwIAYDVQQD
ExljYS53eC1vcmc0LmNoYWlubWFrZXIub3JnMB4XDTIyMDMxNTExNTkyMVoXDTI3
MDMxNDExNTkyMVowgY4xCzAJBgNVBAYTAkNOMRAwDgYDVQQIEwdCZWlqaW5nMRAw
DgYDVQQHEwdCZWlqaW5nMR8wHQYDVQQKExZ3eC1vcmc0LmNoYWlubWFrZXIub3Jn
MQ4wDAYDVQQLEwVhZG1pbjEqMCgGA1UEAxMhYWRtaW4xLnRscy53eC1vcmc0LmNo
YWlubWFrZXIub3JnMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE1h4yKWI/zXtF
G5SkAla/P2wczDk+//BSI9UcCd/MKumMOUGfeqzMqF8aTtew4k0HVKgzaayZQPDi
VN35eykPQKN7MHkwDgYDVR0PAQH/BAQDAgGmMA8GA1UdJQQIMAYGBFUdJQAwKQYD
VR0OBCIEIG/V6gcvchDdITN8/YBsP9Mh02kf4JkM8WucqWLreGRAMCsGA1UdIwQk
MCKAIA1L5SYKMifwwNKxPPhcdeVzXpPeVXv408chS/HencPdMAoGCCqGSM49BAMC
A0gAMEUCIHgdYwLt6a7oNLyCExFGENVBXwjXCm3yD2/8fUFQ/iugAiEAuUE8X4B8
4OUlGp2e3z7THgCUnxTqiMJ2U0aWgSW1zEY=
-----END CERTIFICATE-----
-----BEGIN EC PRIVATE KEY-----
MHcCAQEEILA6qKy9P+V6SqNMsGfhRP885b1vVk93JXdZtE7vkLoDoAoGCCqGSM49
AwEHoUQDQgAE1h4yKWI/zXtFG5SkAla/P2wczDk+//BSI9UcCd/MKumMOUGfeqzM
qF8aTtew4k0HVKgzaayZQPDiVN35eykPQA==
-----END EC PRIVATE KEY-----
GwvHYaiiZjeTdh3QRPxrH3ThMMnD89G5TUbGEtFhc5o9
\ No newline at end of file
-----BEGIN CERTIFICATE-----
MIICiTCCAi+gAwIBAgIDBs5lMAoGCCqGSM49BAMCMIGKMQswCQYDVQQGEwJDTjEQ
MA4GA1UECBMHQmVpamluZzEQMA4GA1UEBxMHQmVpamluZzEfMB0GA1UEChMWd3gt
b3JnNC5jaGFpbm1ha2VyLm9yZzESMBAGA1UECxMJcm9vdC1jZXJ0MSIwIAYDVQQD
ExljYS53eC1vcmc0LmNoYWlubWFrZXIub3JnMB4XDTIyMDMxNTExNTkyMVoXDTI3
MDMxNDExNTkyMVowgZExCzAJBgNVBAYTAkNOMRAwDgYDVQQIEwdCZWlqaW5nMRAw
DgYDVQQHEwdCZWlqaW5nMR8wHQYDVQQKExZ3eC1vcmc0LmNoYWlubWFrZXIub3Jn
MQ8wDQYDVQQLEwZjbGllbnQxLDAqBgNVBAMTI2NsaWVudDEuc2lnbi53eC1vcmc0
LmNoYWlubWFrZXIub3JnMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEUnFQ9pP8
cB6kTE2WozSk2GPg5N/+WiTpss2RsC1+iDzBlSozi3SkKWyx8OOQccbW+8BPpHKg
oceGT9WAtUhp+aN7MHkwDgYDVR0PAQH/BAQDAgGmMA8GA1UdJQQIMAYGBFUdJQAw
KQYDVR0OBCIEIFVXEASYtM4p4rN8FZoMSvJ+vRCYIEstFVklVXFCs+4zMCsGA1Ud
IwQkMCKAIA1L5SYKMifwwNKxPPhcdeVzXpPeVXv408chS/HencPdMAoGCCqGSM49
BAMCA0gAMEUCID/AB7Jn6Y5emQiHaUok1q0EnQV151FeNlkjNd6AL4jmAiEAvqLX
iQglOS/55AgVIrekrZPrI4iJmJ9ehV1tvdCBt8k=
-----END CERTIFICATE-----
-----BEGIN EC PRIVATE KEY-----
MHcCAQEEIK9GlEy5SAyCYhQHcrLKTEM59IzChB4Ca3lt7K5OF8bnoAoGCCqGSM49
AwEHoUQDQgAEUnFQ9pP8cB6kTE2WozSk2GPg5N/+WiTpss2RsC1+iDzBlSozi3Sk
KWyx8OOQccbW+8BPpHKgoceGT9WAtUhp+Q==
-----END EC PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
MIICiTCCAi6gAwIBAgIDA+hTMAoGCCqGSM49BAMCMIGKMQswCQYDVQQGEwJDTjEQ
MA4GA1UECBMHQmVpamluZzEQMA4GA1UEBxMHQmVpamluZzEfMB0GA1UEChMWd3gt
b3JnNC5jaGFpbm1ha2VyLm9yZzESMBAGA1UECxMJcm9vdC1jZXJ0MSIwIAYDVQQD
ExljYS53eC1vcmc0LmNoYWlubWFrZXIub3JnMB4XDTIyMDMxNTExNTkyMVoXDTI3
MDMxNDExNTkyMVowgZAxCzAJBgNVBAYTAkNOMRAwDgYDVQQIEwdCZWlqaW5nMRAw
DgYDVQQHEwdCZWlqaW5nMR8wHQYDVQQKExZ3eC1vcmc0LmNoYWlubWFrZXIub3Jn
MQ8wDQYDVQQLEwZjbGllbnQxKzApBgNVBAMTImNsaWVudDEudGxzLnd4LW9yZzQu
Y2hhaW5tYWtlci5vcmcwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASb1PLtMHtf
kXxhYqZghkk0STAgYk3UG9hciH+YGVQaT+PTJNITQwibjavqfylHFNbTuY4iAH6n
UjLCTgCHJvyRo3sweTAOBgNVHQ8BAf8EBAMCAaYwDwYDVR0lBAgwBgYEVR0lADAp
BgNVHQ4EIgQgo2U+Ja3IrYYXp6IH7u+2GSyDXlCF0OWUrVJfYR58oLgwKwYDVR0j
BCQwIoAgDUvlJgoyJ/DA0rE8+Fx15XNek95Ve/jTxyFL8d6dw90wCgYIKoZIzj0E
AwIDSQAwRgIhAKMqGKo36L0FZlt+jhipLcPgMu34IdlyK/MlO0976vMPAiEA6cNu
D2LtSEMfNOfcX2kTdz08H+aT+ZCuHTaF5ugkuos=
-----END CERTIFICATE-----
-----BEGIN EC PRIVATE KEY-----
MHcCAQEEILrmglBTimvGE0zgtaTocHvAHM9UQm1ioneYgjTP1X/woAoGCCqGSM49
AwEHoUQDQgAEm9Ty7TB7X5F8YWKmYIZJNEkwIGJN1BvYXIh/mBlUGk/j0yTSE0MI
m42r6n8pRxTW07mOIgB+p1Iywk4Ahyb8kQ==
-----END EC PRIVATE KEY-----
File added
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment