diff --git a/.idea/.gitignore b/.idea/.gitignore
deleted file mode 100644
index 26d33521a..000000000
--- a/.idea/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-# Default ignored files
-/shelf/
-/workspace.xml
diff --git a/.idea/misc.xml b/.idea/misc.xml
deleted file mode 100644
index 6e8667213..000000000
--- a/.idea/misc.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
deleted file mode 100644
index 674698be7..000000000
--- a/.idea/modules.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/mygit.iml b/.idea/mygit.iml
deleted file mode 100644
index d6ebd4805..000000000
--- a/.idea/mygit.iml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
deleted file mode 100644
index 2596f599c..000000000
--- a/.idea/vcs.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
new file mode 100644
index 000000000..a6e8b3149
--- /dev/null
+++ b/.idea/workspace.xml
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {
+ "keyToString": {
+ "RunOnceActivity.OpenProjectViewOnStart": "true",
+ "RunOnceActivity.ShowReadmeOnStart": "true",
+ "RunOnceActivity.cidr.known.project.marker": "true",
+ "cf.first.check.clang-format": "false",
+ "cidr.known.project.marker": "true",
+ "git-widget-placeholder": "master",
+ "last_opened_file_path": "/Users/remicolin/Documents/Proof of passport/mygit"
+ }
+}
+
+
+
+
+ 1704880619858
+
+
+ 1704880619858
+
+
+
+
\ No newline at end of file
diff --git a/README.md b/README.md
index b62c6b507..17878e721 100644
--- a/README.md
+++ b/README.md
@@ -14,21 +14,28 @@ As a first application, users who can prove they indeed hold a valid passport ca
- `app`: Mobile app
- `circuits`: Circom circuits
- `contracts`: Solidity contracts
+- `common`: Common utils
## Roadmap
- β
Basic passport verifier circuit
-- π§ Optimization
-- π§ Selective disclosure
+- β
Selective disclosure
- β
Basic react native frontend
- β
Passport verification pipeline, android
-- π§ Passport verification pipeline, iOS
+- β
Passport verification pipeline, iOS
+- β
Contracts
+- β
On-chain registry of CSCA pubkeys based on the official ICAO masterlist
+- π§ Optimizations
- π§ Reimplementation of the passport NFC specs in javascript
-- π§ Contracts
-- π§ On-chain registry of CSCA pubkeys based on the official ICAO masterlist
## FAQ
+#### Does my passport support Proof of Passport ?
+
+
+
+If it has this symbol on the front cover, yes.
+
#### What exactly is being signed ?
The circuit looks like this:
@@ -91,6 +98,7 @@ The SBT circuit includes a commitment to your address. If someone else tries to
- Build a social network/anonymous message board for people from one specific country
- Create a sybil-resistance tool to protect social networks against spambots
- Do an airdrop farming protection tool
+- Allow DeFi protocols to check if the nationality of a user is included in a set of forbidden states
- Gate an adult content website to a specific age
- Passport Wallet: use [active authentication](https://en.wikipedia.org/wiki/Biometric_passport#:~:text=Active%20Authentication%20(AA),Using%20AA%20is%20optional.) to build a wallet, a multisig or a recovery module using passport signatures
@@ -106,7 +114,4 @@ We are actively looking for contributors. Please check the [open issues](https:/
Contact me @FlorentTavernier on telegram for any feedback.
-Thanks to [Youssef](https://github.com/yssf-io), [Aayush](https://twitter.com/yush_g), [Andy](https://twitter.com/viv_boop), [Vivek](https://twitter.com/viv_boop), [Marcus](https://github.com/base0010) and [Andrew](https://github.com/AndrewCLu) for contributing ideas and helping build this technology, and to [EF PSE](https://pse.dev/) for supporting this work through grants!
-
-
-//check
\ No newline at end of file
+Thanks to [Youssef](https://github.com/yssf-io), [Aayush](https://twitter.com/yush_g), [Andy](https://twitter.com/AndyGuzmanEth), [Vivek](https://twitter.com/viv_boop), [Marcus](https://github.com/base0010) and [Andrew](https://github.com/AndrewCLu) for contributing ideas and helping build this technology, and to [EF PSE](https://pse.dev/) for supporting this work through grants!
diff --git a/app/App.tsx b/app/App.tsx
index 2fa7e0286..c2ec15aa8 100644
--- a/app/App.tsx
+++ b/app/App.tsx
@@ -8,6 +8,7 @@ import {
NativeModules,
DeviceEventEmitter,
TextInput,
+ Platform,
} from 'react-native';
import {
@@ -54,7 +55,10 @@ import {
dataHashesObjToArray,
formatAndConcatenateDataHashes,
formatMrz,
- splitToWords
+ splitToWords,
+ hexStringToSignedIntArray,
+ formatProofIOS,
+ formatInputsIOS
} from '../common/src/utils/utils';
import { samplePassportData } from '../common/src/utils/passportDataStatic';
@@ -64,9 +68,15 @@ import axios from 'axios';
import groth16ExportSolidityCallData from './utils/snarkjs';
import contractAddresses from "./deployments/addresses.json"
import proofOfPassportArtefact from "./deployments/ProofOfPassport.json";
-import EnterDetailsScreen from './src/screens/EnterDetailsScreen';
import MainScreen from './src/screens/MainScreen';
import { extractMRZInfo , Steps} from './src/utils/utils';
+import forge from 'node-forge';
+import { Buffer } from 'buffer';
+global.Buffer = Buffer;
+
+import CustomTextInput from './src/components/CustomTextInput';
+import EnterDetailsScreen from './src/screens/EnterDetailsScreen';
+
console.log('DEFAULT_PNUMBER', DEFAULT_PNUMBER);
const SKIP_SCAN = false;
@@ -115,8 +125,15 @@ function App(): JSX.Element {
});
const startCameraScan = () => {
+ if (Platform.OS !== 'android') {
+ Toast.show({
+ type: 'info',
+ text1: "Camera scan supported soon on iOS",
+ })
+ return
+ }
NativeModules.CameraActivityModule.startCameraActivity()
- .then((mrzInfo) => {
+ .then((mrzInfo : string) => {
try {
const { documentNumber, birthDate, expiryDate } = extractMRZInfo(mrzInfo);
setPassportNumber(documentNumber);
@@ -127,7 +144,7 @@ function App(): JSX.Element {
console.error('Invalid MRZ format:', error.message);
}
})
- .catch((error) => {
+ .catch((error: any) => {
console.error('Camera Activity Error:', error);
});
};
@@ -164,14 +181,77 @@ function App(): JSX.Element {
}, []);
useEffect(() => {
+ if (Platform.OS !== 'android') {
+ NativeModules.Prover.runInitAction() // for mopro, ios only rn
+ }
if (SKIP_SCAN && passportData === null) {
setPassportData(samplePassportData as PassportData);
setStep(Steps.NFC_SCAN_COMPLETED);
}
}, []);
-
- async function handleResponse(response: any) {
+ async function handleResponseIOS(response: any) {
+ const parsed = JSON.parse(response);
+
+ const eContentBase64 = parsed.eContentBase64; // this is what we call concatenatedDataHashes in our world
+ const signedAttributes = parsed.signedAttributes; // this is what we call eContent in our world
+ const signatureAlgorithm = parsed.signatureAlgorithm;
+ const mrz = parsed.passportMRZ;
+ const dataGroupHashes = parsed.dataGroupHashes;
+ const signatureBase64 = parsed.signatureBase64;
+
+ console.log('parsed.documentSigningCertificate', parsed.documentSigningCertificate)
+ const pem = JSON.parse(parsed.documentSigningCertificate).PEM.replace(/\\\\n/g, '\n')
+ console.log('pem', pem)
+
+ const cert = forge.pki.certificateFromPem(pem);
+ const publicKey = cert.publicKey;
+ console.log('publicKey', publicKey)
+
+ const modulus = (publicKey as any).n.toString(10);
+
+ const eContentArray = Array.from(Buffer.from(signedAttributes, 'base64'));
+ const signedEContentArray = eContentArray.map(byte => byte > 127 ? byte - 256 : byte);
+
+ const concatenatedDataHashesArray = Array.from(Buffer.from(eContentBase64, 'base64'));
+ const concatenatedDataHashesArraySigned = concatenatedDataHashesArray.map(byte => byte > 127 ? byte - 256 : byte);
+
+ const dgHashes = JSON.parse(dataGroupHashes);
+ console.log('dgHashes', dgHashes)
+
+ const dataGroupHashesArray = Object.keys(dgHashes)
+ .map(key => {
+ const dgNumber = parseInt(key.replace('DG', ''));
+ const hashArray = hexStringToSignedIntArray(dgHashes[key].computedHash);
+ return [dgNumber, hashArray];
+ })
+ .sort((a, b) => (a[0] as number) - (b[0] as number));
+
+ const encryptedDigestArray = Array.from(Buffer.from(signatureBase64, 'base64')).map(byte => byte > 127 ? byte - 256 : byte);
+
+ const passportData = {
+ mrz,
+ signatureAlgorithm,
+ pubKey: {
+ modulus: modulus,
+ },
+ dataGroupHashes: concatenatedDataHashesArraySigned,
+ eContent: signedEContentArray,
+ encryptedDigest: encryptedDigestArray,
+ };
+
+ console.log('mrz', passportData.mrz);
+ console.log('signatureAlgorithm', passportData.signatureAlgorithm);
+ console.log('pubKey', passportData.pubKey);
+ console.log('dataGroupHashes', passportData.dataGroupHashes);
+ console.log('eContent', passportData.eContent);
+ console.log('encryptedDigest', passportData.encryptedDigest);
+
+ setPassportData(passportData);
+ setStep('scanCompleted');
+ }
+
+ async function handleResponseAndroid(response: any) {
const {
mrz,
signatureAlgorithm,
@@ -216,11 +296,18 @@ function App(): JSX.Element {
})
return
}
- // 1. start a scan
- // 2. press the back of your android phone against the passport
- // 3. wait for the scan(...) Promise to get resolved/rejected
+
console.log('scanning...');
setStep(Steps.NFC_SCANNING);
+
+ if (Platform.OS === 'android') {
+ scanAndroid();
+ } else {
+ scanIOS();
+ }
+ }
+
+ async function scanAndroid() {
try {
const response = await PassportReader.scan({
documentNumber: passportNumber,
@@ -229,7 +316,26 @@ function App(): JSX.Element {
});
console.log('response', response);
console.log('scanned');
- handleResponse(response);
+ handleResponseAndroid(response);
+ } catch (e: any) {
+ console.log('error during scan :', e);
+ Toast.show({
+ type: 'error',
+ text1: e.message,
+ })
+ }
+ }
+
+ async function scanIOS() {
+ try {
+ const response = await NativeModules.PassportReader.scanPassport(
+ passportNumber,
+ dateOfBirth,
+ dateOfExpiry
+ );
+ console.log('response', response);
+ console.log('scanned');
+ handleResponseIOS(response);
} catch (e: any) {
console.log('error during scan :', e);
Toast.show({
@@ -254,10 +360,14 @@ function App(): JSX.Element {
// 2. Format all the data as inputs for the circuit
const formattedMrz = formatMrz(passportData.mrz);
const mrzHash = hash(formatMrz(passportData.mrz));
- const concatenatedDataHashes = formatAndConcatenateDataHashes(
- mrzHash,
- passportData.dataGroupHashes as DataHash[],
- );
+
+ const concatenatedDataHashes =
+ Array.isArray(passportData.dataGroupHashes[0])
+ ? formatAndConcatenateDataHashes(
+ mrzHash,
+ passportData.dataGroupHashes as DataHash[],
+ )
+ : passportData.dataGroupHashes
const reveal_bitmap = Array.from({ length: 88 }, (_) => '0');
@@ -271,7 +381,7 @@ function App(): JSX.Element {
}
}
- if (passportData.signatureAlgorithm !== "SHA256withRSA") {
+ if (!["SHA256withRSA", "sha256WithRSAEncryption"].includes(passportData.signatureAlgorithm)) {
console.log(`${passportData.signatureAlgorithm} not supported for proof right now.`);
setError(`${passportData.signatureAlgorithm} not supported for proof right now.`);
return;
@@ -280,7 +390,7 @@ function App(): JSX.Element {
const inputs = {
mrz: Array.from(formattedMrz).map(byte => String(byte)),
reveal_bitmap: reveal_bitmap.map(byte => String(byte)),
- dataHashes: Array.from(concatenatedDataHashes.map(toUnsignedByte)).map(byte => String(byte)),
+ dataHashes: Array.from((concatenatedDataHashes as number[]).map(toUnsignedByte)).map(byte => String(byte)),
eContentBytes: Array.from(passportData.eContent.map(toUnsignedByte)).map(byte => String(byte)),
signature: splitToWords(
BigInt(bytesToBigDecimal(passportData.encryptedDigest)),
@@ -295,11 +405,21 @@ function App(): JSX.Element {
address,
}
- // 3. Generate a proof of passport
- const start = Date.now();
- NativeModules.RNPassportReader.provePassport(inputs, (err: any, res: any) => {
- const end = Date.now();
+ console.log('inputs', inputs)
+ const start = Date.now();
+ if (Platform.OS === 'android') {
+ await proveAndroid(inputs);
+ } else {
+ await proveIOS(inputs);
+ }
+ const end = Date.now();
+ console.log('Total proof time from frontend:', end - start);
+ setTotalTime(end - start);
+ };
+
+ async function proveAndroid(inputs: any) {
+ NativeModules.RNPassportReader.provePassport(inputs, (err: any, res: any) => {
if (err) {
console.error(err);
setError(
@@ -319,7 +439,6 @@ function App(): JSX.Element {
console.log('deserializedInputs', deserializedInputs);
setProofTime(parsedResponse.duration);
- setTotalTime(end - start);
setProof({
proof: JSON.stringify(deserializedProof),
@@ -328,7 +447,41 @@ function App(): JSX.Element {
setGeneratingProof(false);
setStep(Steps.PROOF_GENERATED);
});
- };
+ }
+
+ async function proveIOS(inputs: any) {
+ try {
+ console.log('running mopro init action')
+ await NativeModules.Prover.runInitAction()
+
+ console.log('running mopro prove action')
+ const response = await NativeModules.Prover.runProveAction({
+ ...inputs,
+ address: [BigInt(address).toString()]
+ })
+ console.log('proof response:', response)
+ const parsedResponse = JSON.parse(response)
+
+ console.log('running mopro verify action')
+ const res = await NativeModules.Prover.runVerifyAction()
+ console.log('verify response:', res)
+
+ setProof({
+ proof: JSON.stringify(formatProofIOS(parsedResponse.proof)),
+ inputs: JSON.stringify(formatInputsIOS(parsedResponse.inputs)),
+ });
+
+ // setProofTime(response.duration);
+ setGeneratingProof(false)
+ setStep('proofGenerated');
+ } catch (err: any) {
+ console.log('err', err);
+ setError(
+ "err: " + err.toString(),
+ );
+ }
+ }
+
const handleMint = async () => {
setMinting(true)
@@ -353,22 +506,22 @@ function App(): JSX.Element {
console.log('callData', callData);
// format transaction
- // for now, we do it all on mumbai
+ // for now, we do it all on sepolia
try {
- const provider = new ethers.JsonRpcProvider('https://polygon-mumbai-bor.publicnode.com');
- const proofOfPassportOnMumbai = new ethers.Contract(contractAddresses.ProofOfPassport, proofOfPassportArtefact.abi, provider);
+ const provider = new ethers.JsonRpcProvider('https://gateway.tenderly.co/public/sepolia');
+ const proofOfPassportOnSepolia = new ethers.Contract(contractAddresses.ProofOfPassport, proofOfPassportArtefact.abi, provider);
- const transactionRequest = await proofOfPassportOnMumbai
+ const transactionRequest = await proofOfPassportOnSepolia
.mint.populateTransaction(...callData);
console.log('transactionRequest', transactionRequest);
const response = await axios.post(AWS_ENDPOINT, {
- chain: "mumbai",
+ chain: "sepolia",
tx_data: transactionRequest
});
console.log('response status', response.status)
console.log('response data', response.data)
- setMintText(`Network: Mumbai. Transaction hash: ${response.data.hash}`)
+ setMintText(`Network: Sepolia. Transaction hash: ${response.data.hash}`)
const receipt = await provider.waitForTransaction(response.data.hash);
console.log('receipt', receipt)
if (receipt?.status === 1) {
@@ -376,16 +529,37 @@ function App(): JSX.Element {
type: 'success',
text1: 'Proof of passport minted',
})
- setMintText(`SBT minted. Network: Mumbai. Transaction hash: ${response.data.hash}`)
+ setMintText(`SBT minted. Network: Sepolia. Transaction hash: ${response.data.hash}`)
} else {
Toast.show({
type: 'error',
text1: 'Proof of passport minting failed',
})
- setMintText(`Error minting SBT. Network: Mumbai. Transaction hash: ${response.data.hash}`)
+ setMintText(`Error minting SBT. Network: Sepolia. Transaction hash: ${response.data.hash}`)
}
- } catch (err) {
+ } catch (err: any) {
console.log('err', err);
+ if (err.isAxiosError && err.response) {
+ const errorMessage = err.response.data.error
+ console.log('Server error message:', errorMessage);
+
+ // parse blockchain error and show it
+ const match = errorMessage.match(/execution reverted: "([^"]*)"/);
+ if (match && match[1]) {
+ console.log('Parsed blockchain error:', match[1]);
+ Toast.show({
+ type: 'error',
+ text1: `Error: ${match[1]}`,
+ })
+ } else {
+ Toast.show({
+ type: 'error',
+ text1: `Error: mint failed`,
+ })
+ console.log('Failed to parse blockchain error');
+ }
+ }
+ setMintText(`Error minting SBT. Network: Sepolia.`)
}
};
diff --git a/app/README.md b/app/README.md
index 291b70206..d6c2e8227 100644
--- a/app/README.md
+++ b/app/README.md
@@ -1,12 +1,14 @@
# Proof of Passport App
-Only Android right now, under heavy development
+### Requirements
-#### Requirements
+Install `nodejs v18`, [circom](https://docs.circom.io/) and [snarkjs](https://github.com/iden3/snarkjs)
-Install `nodejs v18`
+For android, install java, android studio and the android sdk
-#### Installation
+For ios, install Xcode and [cocoapods](https://cocoapods.org/)
+
+### Installation
```bash
yarn
@@ -17,38 +19,65 @@ In `/common`, also run:
yarn
```
-#### Add circuit build
+### Build the app
Go to the `circuit` folder of the monorepo and build the circuit.
-#### Build native lib
+#### Build the android native module
-In `/script`, run:
+Run:
```
-./build_rust.sh
+./scripts/build_android_module.sh
```
-This will build the `libhalo2_circom_passport.so` lib and copy it to the desired place to be used by the app.
-The config used is in `android/react-native-passport-reader/android/build.gradle`.
-You can go there to change the profile (`debug` or `release`)
You might need to set the rust-toolchain rust version as global default. Example:
```
rustup default 1.67.0
```
-And install the targets like this:
+
+This you modify the circuits, you might have to modify `ark-circom-passport/src/passport.rs` too.
+
+#### Build the iOS native module
+
+Run:
```
-rustup target add aarch64-linux-android
+./scripts/build_ios_module.sh
```
+Now:
+```
+cd ios
+pod install
+./post_install.sh
+cd ..
+```
+
+#### Run the server
+
To run the server, first connect your phone to your computer, allow access, then:
```
yarn start
```
Then press `a` for android or `i` for iOS
+If you want to see the logs and have a better ios developer experience, open `/ios` in Xcode and launch the app from there instead.
+
+> :warning: Due to the current limitations of mopro, see [#51](https://github.com/zk-passport/proof-of-passport/issues/51), the proving on iOS only works when the app is run on Xcode. It will not work with the react native server or in a .ipa build. We are working on fixing that.
+
+To see the android logs you'll have to use the Android Studio Logcat.
+
To export an apk:
```
cd android
./gradlew assembleRelease
```
The built apk it located at `android/app/build/outputs/apk/release/app-release.apk`
+
+#### Download zkey
+If you want to mint a proof of passport SBT, instead of building the circuit yourself, run:
+```
+./scripts/download_current_zkey.sh
+```
+
+This will download the zkey currently deployed onchain in the proof of passport contract and place it in `circuits/build``
+Then, build the android or iOS native module and run the app.
diff --git a/app/android/android-passport-reader/app/build.gradle b/app/android/android-passport-reader/app/build.gradle
index 3c353a252..dfb69a1ab 100644
--- a/app/android/android-passport-reader/app/build.gradle
+++ b/app/android/android-passport-reader/app/build.gradle
@@ -53,8 +53,6 @@ dependencies {
androidTestImplementation 'androidx.test:runner:1.5.2'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1'
// ML Kit dependencies
- implementation 'com.google.firebase:firebase-core:21.1.1'
- implementation 'com.google.firebase:firebase-ml-common:22.1.2'
implementation 'com.google.android.gms:play-services-mlkit-text-recognition:18.0.2'
//NFC Passport
@@ -100,5 +98,4 @@ dependencies {
implementation 'com.squareup.retrofit2:adapter-rxjava2:2.9.0'
}
-apply plugin: 'com.google.gms.google-services'
diff --git a/app/android/android-passport-reader/app/google-services.json b/app/android/android-passport-reader/app/google-services.json
deleted file mode 100644
index a01329ae8..000000000
--- a/app/android/android-passport-reader/app/google-services.json
+++ /dev/null
@@ -1,29 +0,0 @@
-{
- "project_info": {
- "project_number": "535192847858",
- "project_id": "passport-reader-7e4e8",
- "storage_bucket": "passport-reader-7e4e8.appspot.com"
- },
- "client": [
- {
- "client_info": {
- "mobilesdk_app_id": "1:535192847858:android:7adfb90700a24d15af176b",
- "android_client_info": {
- "package_name": "example.jllarraz.com.passportreader"
- }
- },
- "oauth_client": [],
- "api_key": [
- {
- "current_key": "AIzaSyAFicYp41w4dFSq4SIiZbpKTJVVYUrMSHw"
- }
- ],
- "services": {
- "appinvite_service": {
- "other_platform_oauth_client": []
- }
- }
- }
- ],
- "configuration_version": "1"
-}
\ No newline at end of file
diff --git a/app/android/android-passport-reader/app/src/main/java/example/jllarraz/com/passportreader/mlkit/VisionImageProcessor.kt b/app/android/android-passport-reader/app/src/main/java/example/jllarraz/com/passportreader/mlkit/VisionImageProcessor.kt
index 3b9b6d3ec..3e9446d73 100755
--- a/app/android/android-passport-reader/app/src/main/java/example/jllarraz/com/passportreader/mlkit/VisionImageProcessor.kt
+++ b/app/android/android-passport-reader/app/src/main/java/example/jllarraz/com/passportreader/mlkit/VisionImageProcessor.kt
@@ -16,7 +16,6 @@ package example.jllarraz.com.passportreader.mlkit
import android.graphics.Bitmap
import android.media.Image
-import com.google.firebase.ml.common.FirebaseMLException
import com.google.mlkit.vision.common.InputImage
import io.fotoapparat.preview.Frame
@@ -26,7 +25,6 @@ import java.nio.ByteBuffer
interface VisionImageProcessor {
/** Processes the images with the underlying machine learning models. */
- @Throws(FirebaseMLException::class)
fun process(data: ByteBuffer, frameMetadata: FrameMetadata, graphicOverlay: GraphicOverlay?=null, isOriginalImageReturned:Boolean = true, listener: VisionProcessorBase.Listener):Boolean
/** Processes the bitmap images. */
diff --git a/app/android/android-passport-reader/app/src/main/java/example/jllarraz/com/passportreader/mlkit/VisionProcessorBase.kt b/app/android/android-passport-reader/app/src/main/java/example/jllarraz/com/passportreader/mlkit/VisionProcessorBase.kt
index 9f587a51d..05ac63e3b 100755
--- a/app/android/android-passport-reader/app/src/main/java/example/jllarraz/com/passportreader/mlkit/VisionProcessorBase.kt
+++ b/app/android/android-passport-reader/app/src/main/java/example/jllarraz/com/passportreader/mlkit/VisionProcessorBase.kt
@@ -17,7 +17,6 @@ import android.graphics.Bitmap
import android.media.Image
import com.google.android.gms.tasks.Task
-import com.google.firebase.ml.common.FirebaseMLException
import com.google.mlkit.vision.common.InputImage
import example.jllarraz.com.passportreader.utils.ImageUtil
import io.fotoapparat.preview.Frame
@@ -270,7 +269,6 @@ abstract class VisionProcessorBase : VisionImageProcessor {
override fun stop() {}
- @Throws(FirebaseMLException::class)
protected abstract fun detectInImage(image: InputImage): Task
diff --git a/app/android/android-passport-reader/app/src/main/java/example/jllarraz/com/passportreader/ui/fragments/CameraMLKitFragment.kt b/app/android/android-passport-reader/app/src/main/java/example/jllarraz/com/passportreader/ui/fragments/CameraMLKitFragment.kt
index 88fac2998..52f8b6537 100755
--- a/app/android/android-passport-reader/app/src/main/java/example/jllarraz/com/passportreader/ui/fragments/CameraMLKitFragment.kt
+++ b/app/android/android-passport-reader/app/src/main/java/example/jllarraz/com/passportreader/ui/fragments/CameraMLKitFragment.kt
@@ -250,8 +250,6 @@ class CameraMLKitFragment : CameraFragment() {
mHandler.post {
try {
- binding?.statusViewTop?.text = getString(R.string.status_bar_ocr, mrzInfo.documentNumber, mrzInfo.dateOfBirth, mrzInfo.dateOfExpiry)
- binding?.statusViewBottom?.text = getString(R.string.status_bar_success, timeRequired)
binding?.statusViewBottom?.setTextColor(resources.getColor(R.color.status_text))
if (cameraMLKitCallback != null) {
cameraMLKitCallback!!.onPassportRead(mrzInfo)
@@ -270,7 +268,6 @@ class CameraMLKitFragment : CameraFragment() {
}
mHandler.post {
try {
- binding?.statusViewBottom?.text = getString(R.string.status_bar_failure, timeRequired)
binding?.statusViewBottom?.setTextColor(Color.RED)
binding?.statusViewTop?.text = ""
} catch (e: IllegalStateException) {
diff --git a/app/android/android-passport-reader/app/src/main/res/values/strings.xml b/app/android/android-passport-reader/app/src/main/res/values/strings.xml
index 6b8507d88..4d542d8b2 100644
--- a/app/android/android-passport-reader/app/src/main/res/values/strings.xml
+++ b/app/android/android-passport-reader/app/src/main/res/values/strings.xml
@@ -16,9 +16,6 @@
Installation OCR: %1d%%
- Document Number: %1s Date of Birth: %2s Expiration Date: %3s
- OCR Detected - Time required: %2dms
- OCR Read failure - Time required: %1d ms
Put your phone over your passport and don\'t move it
diff --git a/app/android/android-passport-reader/build.gradle b/app/android/android-passport-reader/build.gradle
index 04cdbb6f3..4a9f497f9 100644
--- a/app/android/android-passport-reader/build.gradle
+++ b/app/android/android-passport-reader/build.gradle
@@ -21,7 +21,6 @@ buildscript {
}
dependencies {
classpath 'com.android.tools.build:gradle:7.4.2'
- classpath 'com.google.gms:google-services:4.4.0'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
diff --git a/app/android/app/src/main/java/com/awesomeproject/MainActivity.java b/app/android/app/src/main/java/com/awesomeproject/MainActivity.java
index 7cb608d26..7db9d1577 100644
--- a/app/android/app/src/main/java/com/awesomeproject/MainActivity.java
+++ b/app/android/app/src/main/java/com/awesomeproject/MainActivity.java
@@ -28,7 +28,7 @@ public class MainActivity extends ReactActivity {
*/
@Override
protected String getMainComponentName() {
- return "Proof of Passport";
+ return "ProofOfPassport";
}
/**
diff --git a/app/app.json b/app/app.json
index ce93916b4..a16ecce19 100644
--- a/app/app.json
+++ b/app/app.json
@@ -1,4 +1,4 @@
{
- "name": "Proof of Passport",
+ "name": "ProofOfPassport",
"displayName": "Proof of Passport"
}
diff --git a/app/ark-circom-passport/README.md b/app/ark-circom-passport/README.md
index fc587528a..9bc8c90e4 100644
--- a/app/ark-circom-passport/README.md
+++ b/app/ark-circom-passport/README.md
@@ -1,6 +1,8 @@
-# ark circom proof and verification of passport circuit
+# rust module to generate the proof of passport android native lib
To run tests and see logs:
```
cargo test -- --nocapture
-```
\ No newline at end of file
+```
+
+Could be replaced by mopro once mopro is available on Android.
\ No newline at end of file
diff --git a/app/ark-zkey/.gitignore b/app/ark-zkey/.gitignore
new file mode 100644
index 000000000..6985cf1bd
--- /dev/null
+++ b/app/ark-zkey/.gitignore
@@ -0,0 +1,14 @@
+# Generated by Cargo
+# will have compiled files and executables
+debug/
+target/
+
+# Remove Cargo.lock from gitignore if creating an executable, leave it for libraries
+# More information here https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html
+Cargo.lock
+
+# These are backup files generated by rustfmt
+**/*.rs.bk
+
+# MSVC Windows builds of rustc generate these, which store debugging information
+*.pdb
diff --git a/app/ark-zkey/Cargo.toml b/app/ark-zkey/Cargo.toml
new file mode 100644
index 000000000..97c4985d0
--- /dev/null
+++ b/app/ark-zkey/Cargo.toml
@@ -0,0 +1,32 @@
+[package]
+name = "ark-zkey"
+version = "0.1.0"
+edition = "2021"
+
+# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
+
+[[bin]]
+name = "arkzkey-util"
+path = "src/bin/arkzkey_util.rs"
+
+# XXX: Shouldn't be necessary, but this way we stay consistent with wasmer version and fix
+# error[E0432]: unresolved import `wasmer` error
+# (likely due to other packages)
+[patch.crates-io]
+# NOTE: Forked wasmer to work around memory limits
+# See https://github.com/wasmerio/wasmer/commit/09c7070
+wasmer = { git = "https://github.com/oskarth/wasmer.git", rev = "09c7070" }
+
+[dependencies]
+color-eyre = "0.6"
+memmap2 = "0.9"
+flame = "0.2"
+flamer = "0.5"
+
+ark-serialize = { version = "=0.4.1", features = ["derive"] }
+ark-bn254 = { version = "=0.4.0" }
+ark-groth16 = { version = "=0.4.0" }
+ark-circom = { git = "https://github.com/arkworks-rs/circom-compat.git" }
+ark-relations = { version = "=0.4.0" }
+ark-ff = { version = "=0.4.1" }
+ark-ec = { version = "=0.4.1" }
diff --git a/app/ark-zkey/README.md b/app/ark-zkey/README.md
new file mode 100644
index 000000000..4fda435a9
--- /dev/null
+++ b/app/ark-zkey/README.md
@@ -0,0 +1,52 @@
+# ark-zkey
+
+Library to read `zkey` faster by serializing to `arkworks` friendly format.
+
+See https://github.com/oskarth/mopro/issues/25 for context.
+
+## How to use
+
+Run the following to convert a `zkey` to an `arkzkey`. This should be done as a pre-processing step.
+
+`cargo run --bin arkzkey-util --release -- ../mopro-core/examples/circom/keccak256/target/keccak256_256_test_final.zkey`
+
+This will generate and place an `arkzkey` file in the same directory as the original zkey.
+
+You can also install it locally:
+
+`cargo install --bin arkzkey-util --path . --release`
+
+## Tests
+
+```
+cargo test multiplier2 --release -- --nocapture
+cargo test keccak256 --release -- --nocapture
+cargo test rsa --release -- --nocapture
+```
+
+## Benchmark (Keccak)
+
+`cargo test keccak256 --release -- --nocapture`
+
+```
+[build] Processing zkey data...
+test tests::test_keccak256_serialization_deserialization has been running for over 60 seconds
+[build]Time to process zkey data: 158.753181958s
+[build] Serializing proving key and constraint matrices
+[build] Time to serialize proving key and constraint matrices: 42ns
+[build] Writing arkzkey to: ../mopro-core/examples/circom/keccak256/target/keccak256_256_test_final.arkzkey
+[build] Time to write arkzkey: 16.204274125s
+Reading arkzkey from: ../mopro-core/examples/circom/keccak256/target/keccak256_256_test_final.arkzkey
+Time to open arkzkey file: 51.75Β΅s
+Time to mmap arkzkey: 17.25Β΅s
+Time to deserialize proving key: 18.323550083s
+Time to deserialize matrices: 46.935792ms
+Time to read arkzkey: 18.3730695s
+test tests::test_keccak256_serialization_deserialization ... ok
+```
+
+Vs naive:
+
+`[build] Time to process zkey data: 158.753181958s`
+
+**Result: 18s vs 158s**
\ No newline at end of file
diff --git a/app/ark-zkey/src/bin/arkzkey_util.rs b/app/ark-zkey/src/bin/arkzkey_util.rs
new file mode 100644
index 000000000..130a93a2b
--- /dev/null
+++ b/app/ark-zkey/src/bin/arkzkey_util.rs
@@ -0,0 +1,36 @@
+use std::env;
+use std::path::{Path, PathBuf};
+
+extern crate ark_zkey;
+use ark_zkey::{convert_zkey, read_proving_key_and_matrices_from_zkey};
+
+fn main() -> color_eyre::eyre::Result<()> {
+ color_eyre::install()?;
+
+ let args: Vec = env::args().collect();
+ if args.len() != 2 {
+ eprintln!("Usage: zkey_to_arkzkey ");
+ std::process::exit(1);
+ }
+
+ let zkey_path = &args[1];
+ let (proving_key, constraint_matrices) = read_proving_key_and_matrices_from_zkey(zkey_path)?;
+
+ let arkzkey_path = get_arkzkey_path(zkey_path);
+ let arkzkey_path_str = arkzkey_path
+ .to_str()
+ .ok_or_else(|| color_eyre::eyre::eyre!("Failed to convert arkzkey path to string"))?;
+
+ convert_zkey(proving_key, constraint_matrices, &arkzkey_path_str)?;
+
+ println!("Converted zkey file saved to: {}", arkzkey_path.display());
+
+ Ok(())
+}
+
+fn get_arkzkey_path(zkey_path: &str) -> PathBuf {
+ let path = Path::new(zkey_path);
+ let mut arkzkey_path = path.to_path_buf();
+ arkzkey_path.set_extension("arkzkey");
+ arkzkey_path
+}
diff --git a/app/ark-zkey/src/lib.rs b/app/ark-zkey/src/lib.rs
new file mode 100644
index 000000000..a41c84a92
--- /dev/null
+++ b/app/ark-zkey/src/lib.rs
@@ -0,0 +1,247 @@
+use ark_bn254::{Bn254, Fr};
+use ark_circom::read_zkey;
+//use ark_ec::pairing::Pairing;
+use ark_ff::Field;
+use ark_groth16::ProvingKey;
+//use ark_groth16::VerifyingKey;
+use ark_relations::r1cs::ConstraintMatrices;
+use ark_serialize::{CanonicalDeserialize, CanonicalSerialize};
+use color_eyre::eyre::{Result, WrapErr};
+use memmap2::Mmap;
+use std::fs::File;
+//use std::io::Cursor;
+//use std::io::{Read,self};
+use std::io::BufReader;
+use std::path::PathBuf;
+use std::time::Instant;
+
+#[derive(CanonicalSerialize, CanonicalDeserialize, Clone, Debug, PartialEq)]
+pub struct SerializableProvingKey(pub ProvingKey);
+
+#[derive(CanonicalSerialize, CanonicalDeserialize, Clone, Debug, PartialEq)]
+pub struct SerializableMatrix {
+ pub data: Vec>,
+}
+
+#[derive(CanonicalSerialize, CanonicalDeserialize, Clone, Debug, PartialEq)]
+pub struct SerializableConstraintMatrices {
+ pub num_instance_variables: usize,
+ pub num_witness_variables: usize,
+ pub num_constraints: usize,
+ pub a_num_non_zero: usize,
+ pub b_num_non_zero: usize,
+ pub c_num_non_zero: usize,
+ pub a: SerializableMatrix,
+ pub b: SerializableMatrix,
+ pub c: SerializableMatrix,
+}
+
+impl From>> for SerializableMatrix {
+ fn from(matrix: Vec>) -> Self {
+ SerializableMatrix { data: matrix }
+ }
+}
+
+impl From> for Vec> {
+ fn from(serializable_matrix: SerializableMatrix) -> Self {
+ serializable_matrix.data
+ }
+}
+
+pub fn serialize_proving_key(pk: &SerializableProvingKey) -> Vec {
+ let mut serialized_data = Vec::new();
+ pk.serialize_compressed(&mut serialized_data)
+ .expect("Serialization failed");
+ serialized_data
+}
+
+pub fn deserialize_proving_key(data: Vec) -> SerializableProvingKey {
+ SerializableProvingKey::deserialize_compressed_unchecked(&mut &data[..])
+ .expect("Deserialization failed")
+}
+
+pub fn read_arkzkey(
+ arkzkey_path: &str,
+) -> Result<(SerializableProvingKey, SerializableConstraintMatrices)> {
+ let now = std::time::Instant::now();
+ let arkzkey_file_path = PathBuf::from(arkzkey_path);
+ let arkzkey_file = File::open(arkzkey_file_path).wrap_err("Failed to open arkzkey file")?;
+ println!("Time to open arkzkey file: {:?}", now.elapsed());
+
+ //let mut buf_reader = BufReader::new(arkzkey_file);
+
+ // Using mmap
+ let now = std::time::Instant::now();
+ let mmap = unsafe { Mmap::map(&arkzkey_file)? };
+ let mut cursor = std::io::Cursor::new(mmap);
+ println!("Time to mmap arkzkey: {:?}", now.elapsed());
+
+ // Was &mut buf_reader
+ let now = std::time::Instant::now();
+ let proving_key = SerializableProvingKey::deserialize_compressed_unchecked(&mut cursor)
+ .wrap_err("Failed to deserialize proving key")?;
+ println!("Time to deserialize proving key: {:?}", now.elapsed());
+
+ let now = std::time::Instant::now();
+ let constraint_matrices =
+ SerializableConstraintMatrices::deserialize_compressed_unchecked(&mut cursor)
+ .wrap_err("Failed to deserialize constraint matrices")?;
+ println!("Time to deserialize matrices: {:?}", now.elapsed());
+
+ Ok((proving_key, constraint_matrices))
+}
+
+// TODO: Return ProvingKey, ConstraintMatrices?
+pub fn read_arkzkey_from_bytes(
+ arkzkey_bytes: &[u8],
+) -> Result<(ProvingKey, ConstraintMatrices)> {
+ let mut cursor = std::io::Cursor::new(arkzkey_bytes);
+
+ let now = std::time::Instant::now();
+ let serialized_proving_key =
+ SerializableProvingKey::deserialize_compressed_unchecked(&mut cursor)
+ .wrap_err("Failed to deserialize proving key")?;
+ println!("Time to deserialize proving key: {:?}", now.elapsed());
+
+ let now = std::time::Instant::now();
+ let serialized_constraint_matrices =
+ SerializableConstraintMatrices::deserialize_compressed_unchecked(&mut cursor)
+ .wrap_err("Failed to deserialize constraint matrices")?;
+ println!("Time to deserialize matrices: {:?}", now.elapsed());
+
+ // Get on right form for API
+ let proving_key: ProvingKey = serialized_proving_key.0;
+ let constraint_matrices: ConstraintMatrices = ConstraintMatrices {
+ num_instance_variables: serialized_constraint_matrices.num_instance_variables,
+ num_witness_variables: serialized_constraint_matrices.num_witness_variables,
+ num_constraints: serialized_constraint_matrices.num_constraints,
+ a_num_non_zero: serialized_constraint_matrices.a_num_non_zero,
+ b_num_non_zero: serialized_constraint_matrices.b_num_non_zero,
+ c_num_non_zero: serialized_constraint_matrices.c_num_non_zero,
+ a: serialized_constraint_matrices.a.data,
+ b: serialized_constraint_matrices.b.data,
+ c: serialized_constraint_matrices.c.data,
+ };
+
+ Ok((proving_key, constraint_matrices))
+}
+
+pub fn read_proving_key_and_matrices_from_zkey(
+ zkey_path: &str,
+) -> Result<(SerializableProvingKey, SerializableConstraintMatrices)> {
+ println!("Reading zkey from: {}", zkey_path);
+ let now = Instant::now();
+ let zkey_file_path = PathBuf::from(zkey_path);
+ let zkey_file = File::open(zkey_file_path).wrap_err("Failed to open zkey file")?;
+
+ let mut buf_reader = BufReader::new(zkey_file);
+
+ let (proving_key, matrices) =
+ read_zkey(&mut buf_reader).wrap_err("Failed to read zkey file")?;
+ println!("Time to read zkey: {:?}", now.elapsed());
+
+ println!("Serializing proving key and constraint matrices");
+ let now = Instant::now();
+ let serializable_proving_key = SerializableProvingKey(proving_key);
+ let serializable_constrain_matrices = SerializableConstraintMatrices {
+ num_instance_variables: matrices.num_instance_variables,
+ num_witness_variables: matrices.num_witness_variables,
+ num_constraints: matrices.num_constraints,
+ a_num_non_zero: matrices.a_num_non_zero,
+ b_num_non_zero: matrices.b_num_non_zero,
+ c_num_non_zero: matrices.c_num_non_zero,
+ a: SerializableMatrix { data: matrices.a },
+ b: SerializableMatrix { data: matrices.b },
+ c: SerializableMatrix { data: matrices.c },
+ };
+ println!(
+ "Time to serialize proving key and constraint matrices: {:?}",
+ now.elapsed()
+ );
+
+ Ok((serializable_proving_key, serializable_constrain_matrices))
+}
+
+pub fn convert_zkey(
+ proving_key: SerializableProvingKey,
+ constraint_matrices: SerializableConstraintMatrices,
+ arkzkey_path: &str,
+) -> Result<()> {
+ let arkzkey_file_path = PathBuf::from(arkzkey_path);
+
+ let serialized_path = PathBuf::from(arkzkey_file_path);
+
+ let mut file =
+ File::create(&serialized_path).wrap_err("Failed to create serialized proving key file")?;
+
+ proving_key
+ .serialize_compressed(&mut file)
+ .wrap_err("Failed to serialize proving key")?;
+
+ constraint_matrices
+ .serialize_compressed(&mut file)
+ .wrap_err("Failed to serialize constraint matrices")?;
+
+ Ok(())
+}
+
+#[cfg(test)]
+mod tests {
+ use super::*;
+ use std::time::Instant;
+
+ fn test_circuit_serialization_deserialization(zkey_path: &str) -> Result<()> {
+ let arkzkey_path = zkey_path.replace(".zkey", ".arkzkey");
+
+ let (original_proving_key, original_constraint_matrices) =
+ read_proving_key_and_matrices_from_zkey(zkey_path)?;
+
+ println!("[build] Writing arkzkey to: {}", arkzkey_path);
+ let now = Instant::now();
+ convert_zkey(
+ original_proving_key.clone(),
+ original_constraint_matrices.clone(),
+ &arkzkey_path,
+ )?;
+ println!("[build] Time to write arkzkey: {:?}", now.elapsed());
+
+ println!("Reading arkzkey from: {}", arkzkey_path);
+ let now = Instant::now();
+ let (deserialized_proving_key, deserialized_constraint_matrices) =
+ read_arkzkey(&arkzkey_path)?;
+ println!("Time to read arkzkey: {:?}", now.elapsed());
+
+ assert_eq!(
+ original_proving_key, deserialized_proving_key,
+ "Original and deserialized proving keys do not match"
+ );
+
+ assert_eq!(
+ original_constraint_matrices, deserialized_constraint_matrices,
+ "Original and deserialized constraint matrices do not match"
+ );
+
+ Ok(())
+ }
+
+ #[test]
+ fn test_multiplier2_serialization_deserialization() -> Result<()> {
+ test_circuit_serialization_deserialization(
+ "../mopro-core/examples/circom/multiplier2/target/multiplier2_final.zkey",
+ )
+ }
+
+ #[test]
+ fn test_keccak256_serialization_deserialization() -> Result<()> {
+ test_circuit_serialization_deserialization(
+ "../mopro-core/examples/circom/keccak256/target/keccak256_256_test_final.zkey",
+ )
+ }
+
+ #[test]
+ fn test_rsa_serialization_deserialization() -> Result<()> {
+ test_circuit_serialization_deserialization(
+ "../mopro-core/examples/circom/rsa/target/main_final.zkey",
+ )
+ }
+}
diff --git a/app/deployments/Groth16Verifier.json b/app/deployments/Groth16Verifier.json
index fc729dd6f..c95cc99c1 100644
--- a/app/deployments/Groth16Verifier.json
+++ b/app/deployments/Groth16Verifier.json
@@ -38,8 +38,8 @@
"type": "function"
}
],
- "bytecode": "0x608060405234801561001057600080fd5b50610b91806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063c82febf514610030575b600080fd5b61004a60048036038101906100459190610abc565b610060565b6040516100579190610b40565b60405180910390f35b6000610944565b7f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd478110610098576000805260206000f35b50565b600060405183815284602082015285604082015260408160608360076107d05a03fa9150816100ce576000805260206000f35b825160408201526020830151606082015260408360808360066107d05a03fa9150816100fe576000805260206000f35b505050505050565b600060808601600087017f0ad4104ba0cab26e17a390c2297e5930790fe2138c4965fa33a92c6efb1ce61181527f2f25144c009fda8ee383ef224c934e7f6df65425132809ae464ff31ac891734760208201526101a960008801357f22afda344f3fa9caa050472eedf614641a3dc81bffaacd4fbe374447e8713c527f0785808d31f021c38a389a35384e87a0c483cc6665f1fb11fd8cb6220ab68a6c8461009b565b6101f960208801357f11885e413266172e3aee33cfdd2bfa186b52178bcf1cefaea78062c05722107d7f26756d1fcadd13849941c067839540f95b0ee5614c0ea6436a0b1371c61918028461009b565b61024960408801357f14034f89a294ea4bcb70f8a05f38319d25b7876baeeb2a1cf1d953be05023c4f7f014b60dec736fc8ef91c82345c2872f10e4f9e1e2a45419a91dfc6f3bf48a5008461009b565b61029960608801357f15b66475b701246e5afeb0fef2c8b1766992b6c862af6343ff7695defcb466b97f0f7f42f9ce4d9e86b9cde0c0a508655c8c79bc0a684a3fc7e31736926bd3164e8461009b565b6102e860808801357e9f8254f248559f4f9347784214ede9a9aa8f08c8ed859b42c55941f6ebac4d7f1f7aa8bbe543dc53d9efab5d487a2f462881d366f25ddf0d5e38747333195eca8461009b565b61033860a08801357f224f0eea46b164e5fd8793f81110dd606a17a916695f431dd9a82930337be6467f05b94074736f283d880c3adc6ca902dd9509466e817281f32b70103f5b5c426c8461009b565b61038860c08801357f121cf7452967876d6eb025f7713bf8392f39e7d8f82e653fbd7b3a4286f04d8e7f2648cf8ce91f5074123ea29d363f00ff58345fa0cf8854cee6b3cdb9cd06f2518461009b565b6103d860e08801357f207375b930a98fe9cbbeb3eb1fe8cff0ec58733416b0385826b0c5203addb82a7f106036e1ef36d5bcc9419747eb69833e04a8835d8eda804a0ce30273e6511d928461009b565b6104296101008801357f2773127f6766e3dfee9d345806c72cd2892e2b3a7c5f0c9c80a894b8e718dde47f1fab68875dd34949d9531c866809371111b147f288eb3fb0e0c516ae9c4d763e8461009b565b61047a6101208801357f18e0b48b621d672b8afb675eeba9ee68d33a71ac5b84e839b1350ff832e2731d7f10ab6d5e5bbf2815c7b436af60a20c885d0aded20f41b5aff518343aa32fe8e28461009b565b6104cb6101408801357f08534d6feb186a62091134bc726c2a6d0ba479bee663ad9702ef4c5931d454897f1d67bf83c43954992a44732500ee24ca44c594d914e6dd0dd722428250170b668461009b565b61051c6101608801357f18cff185263b89e2d1f0a745c7edcae4a6126402cad1205d90aea5ab53f1da167f147e05d126df37c08cf603b77b624feb87a8d33c333dff3f3e1b886aac27fb778461009b565b61056d6101808801357f01acfec350b849fd019997e649774c9795fff3f4af624586841f42181f252eb87f05be1ef6bbed0f7942c562bd8ceb15491221a5176d4709c58f156f65c51018268461009b565b6105be6101a08801357f0723950b7af06aebfcdab4bf96923795f95ea0fa86454831287358be15bf4a397f23b332764411bcec1aad32817dda66a3bfb502a4a0c92494736137c3f9aa010a8461009b565b61060f6101c08801357f26a47a8df4e6edda06f707b27f3b150bf90cb49d52fa68fbb1f57efc30d642777f18ee382f9056082dd010bb84da6fcdcae6fd0b0a86d9922cba113b823b7b0d118461009b565b6106606101e08801357f1d9ed1b6b90a7f3fd9724dd10b98ccfbde0404ad4dd751ff54949274461fe6ff7f10a9f28b202c0acbeb9b877b5ebe348312df9e093190df0eee947f50ffd5c5288461009b565b833582527f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4760208501357f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4703066020830152843560408301526020850135606083015260408501356080830152606085013560a08301527f2d4d9aa7e302d9df41749d5507949d05dbea33fbb16c643b22f599a2be6df2e260c08301527f14bedd503c37ceb061d8ec60209fe345ce89830a19230301f076caff004d192660e08301527f0967032fcbf776d1afc985f88877f182d38480a653f2decaa9794cbc3bf3060c6101008301527f0e187847ad4c798374d0d6732bf501847dd68bc0e071241e0213bc7fc13db7ab6101208301527f304cfbd1e08a704a99f5e847d93f8c3caafddec46b7a0d379da69a4d112346a76101408301527f1739c1b1a457a8c7313123d24d2f9192f896b7c63eea05a9d57f06547ad0cec8610160830152600088015161018083015260206000018801516101a08301527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c26101c08301527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6101e08301527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b6102008301527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa610220830152853561024083015260208601356102608301527f0b67b25fb7a77948fa56298f85351f81ea556bf7bebea58cfaf22a41c2add0b16102808301527f125210f527bd6baed1fc4723673927cfcb8bf3c1e6da90e570ffa3926d946e586102a08301527f20286cd5cfcf365bf654135508c3873fb0241ad595b0ba879fb5dd5aaedcccff6102c08301527f200e3e8bf7c87c79b2f15e5b56e823f0798b09832c5b4e73f73b482862c826ea6102e08301526020826103008460086107d05a03fa82518116935050505095945050505050565b604051610380810160405261095c6000840135610067565b6109696020840135610067565b6109766040840135610067565b6109836060840135610067565b6109906080840135610067565b61099d60a0840135610067565b6109aa60c0840135610067565b6109b760e0840135610067565b6109c5610100840135610067565b6109d3610120840135610067565b6109e1610140840135610067565b6109ef610160840135610067565b6109fd610180840135610067565b610a0b6101a0840135610067565b610a196101c0840135610067565b610a276101e0840135610067565b610a35610200840135610067565b610a42818486888a610106565b8060005260206000f35b600080fd5b600080fd5b600081905082602060020282011115610a7257610a71610a51565b5b92915050565b600081905082604060020282011115610a9457610a93610a51565b5b92915050565b600081905082602060100282011115610ab657610ab5610a51565b5b92915050565b6000806000806103008587031215610ad757610ad6610a4c565b5b6000610ae587828801610a56565b9450506040610af687828801610a78565b93505060c0610b0787828801610a56565b925050610100610b1987828801610a9a565b91505092959194509250565b60008115159050919050565b610b3a81610b25565b82525050565b6000602082019050610b556000830184610b31565b9291505056fea2646970667358221220ca8705bfa93a78cf62acae4455e632f0ba4658ce4427955bfbebcd1edea5b56464736f6c63430008120033",
- "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061002b5760003560e01c8063c82febf514610030575b600080fd5b61004a60048036038101906100459190610abc565b610060565b6040516100579190610b40565b60405180910390f35b6000610944565b7f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd478110610098576000805260206000f35b50565b600060405183815284602082015285604082015260408160608360076107d05a03fa9150816100ce576000805260206000f35b825160408201526020830151606082015260408360808360066107d05a03fa9150816100fe576000805260206000f35b505050505050565b600060808601600087017f0ad4104ba0cab26e17a390c2297e5930790fe2138c4965fa33a92c6efb1ce61181527f2f25144c009fda8ee383ef224c934e7f6df65425132809ae464ff31ac891734760208201526101a960008801357f22afda344f3fa9caa050472eedf614641a3dc81bffaacd4fbe374447e8713c527f0785808d31f021c38a389a35384e87a0c483cc6665f1fb11fd8cb6220ab68a6c8461009b565b6101f960208801357f11885e413266172e3aee33cfdd2bfa186b52178bcf1cefaea78062c05722107d7f26756d1fcadd13849941c067839540f95b0ee5614c0ea6436a0b1371c61918028461009b565b61024960408801357f14034f89a294ea4bcb70f8a05f38319d25b7876baeeb2a1cf1d953be05023c4f7f014b60dec736fc8ef91c82345c2872f10e4f9e1e2a45419a91dfc6f3bf48a5008461009b565b61029960608801357f15b66475b701246e5afeb0fef2c8b1766992b6c862af6343ff7695defcb466b97f0f7f42f9ce4d9e86b9cde0c0a508655c8c79bc0a684a3fc7e31736926bd3164e8461009b565b6102e860808801357e9f8254f248559f4f9347784214ede9a9aa8f08c8ed859b42c55941f6ebac4d7f1f7aa8bbe543dc53d9efab5d487a2f462881d366f25ddf0d5e38747333195eca8461009b565b61033860a08801357f224f0eea46b164e5fd8793f81110dd606a17a916695f431dd9a82930337be6467f05b94074736f283d880c3adc6ca902dd9509466e817281f32b70103f5b5c426c8461009b565b61038860c08801357f121cf7452967876d6eb025f7713bf8392f39e7d8f82e653fbd7b3a4286f04d8e7f2648cf8ce91f5074123ea29d363f00ff58345fa0cf8854cee6b3cdb9cd06f2518461009b565b6103d860e08801357f207375b930a98fe9cbbeb3eb1fe8cff0ec58733416b0385826b0c5203addb82a7f106036e1ef36d5bcc9419747eb69833e04a8835d8eda804a0ce30273e6511d928461009b565b6104296101008801357f2773127f6766e3dfee9d345806c72cd2892e2b3a7c5f0c9c80a894b8e718dde47f1fab68875dd34949d9531c866809371111b147f288eb3fb0e0c516ae9c4d763e8461009b565b61047a6101208801357f18e0b48b621d672b8afb675eeba9ee68d33a71ac5b84e839b1350ff832e2731d7f10ab6d5e5bbf2815c7b436af60a20c885d0aded20f41b5aff518343aa32fe8e28461009b565b6104cb6101408801357f08534d6feb186a62091134bc726c2a6d0ba479bee663ad9702ef4c5931d454897f1d67bf83c43954992a44732500ee24ca44c594d914e6dd0dd722428250170b668461009b565b61051c6101608801357f18cff185263b89e2d1f0a745c7edcae4a6126402cad1205d90aea5ab53f1da167f147e05d126df37c08cf603b77b624feb87a8d33c333dff3f3e1b886aac27fb778461009b565b61056d6101808801357f01acfec350b849fd019997e649774c9795fff3f4af624586841f42181f252eb87f05be1ef6bbed0f7942c562bd8ceb15491221a5176d4709c58f156f65c51018268461009b565b6105be6101a08801357f0723950b7af06aebfcdab4bf96923795f95ea0fa86454831287358be15bf4a397f23b332764411bcec1aad32817dda66a3bfb502a4a0c92494736137c3f9aa010a8461009b565b61060f6101c08801357f26a47a8df4e6edda06f707b27f3b150bf90cb49d52fa68fbb1f57efc30d642777f18ee382f9056082dd010bb84da6fcdcae6fd0b0a86d9922cba113b823b7b0d118461009b565b6106606101e08801357f1d9ed1b6b90a7f3fd9724dd10b98ccfbde0404ad4dd751ff54949274461fe6ff7f10a9f28b202c0acbeb9b877b5ebe348312df9e093190df0eee947f50ffd5c5288461009b565b833582527f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4760208501357f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4703066020830152843560408301526020850135606083015260408501356080830152606085013560a08301527f2d4d9aa7e302d9df41749d5507949d05dbea33fbb16c643b22f599a2be6df2e260c08301527f14bedd503c37ceb061d8ec60209fe345ce89830a19230301f076caff004d192660e08301527f0967032fcbf776d1afc985f88877f182d38480a653f2decaa9794cbc3bf3060c6101008301527f0e187847ad4c798374d0d6732bf501847dd68bc0e071241e0213bc7fc13db7ab6101208301527f304cfbd1e08a704a99f5e847d93f8c3caafddec46b7a0d379da69a4d112346a76101408301527f1739c1b1a457a8c7313123d24d2f9192f896b7c63eea05a9d57f06547ad0cec8610160830152600088015161018083015260206000018801516101a08301527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c26101c08301527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6101e08301527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b6102008301527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa610220830152853561024083015260208601356102608301527f0b67b25fb7a77948fa56298f85351f81ea556bf7bebea58cfaf22a41c2add0b16102808301527f125210f527bd6baed1fc4723673927cfcb8bf3c1e6da90e570ffa3926d946e586102a08301527f20286cd5cfcf365bf654135508c3873fb0241ad595b0ba879fb5dd5aaedcccff6102c08301527f200e3e8bf7c87c79b2f15e5b56e823f0798b09832c5b4e73f73b482862c826ea6102e08301526020826103008460086107d05a03fa82518116935050505095945050505050565b604051610380810160405261095c6000840135610067565b6109696020840135610067565b6109766040840135610067565b6109836060840135610067565b6109906080840135610067565b61099d60a0840135610067565b6109aa60c0840135610067565b6109b760e0840135610067565b6109c5610100840135610067565b6109d3610120840135610067565b6109e1610140840135610067565b6109ef610160840135610067565b6109fd610180840135610067565b610a0b6101a0840135610067565b610a196101c0840135610067565b610a276101e0840135610067565b610a35610200840135610067565b610a42818486888a610106565b8060005260206000f35b600080fd5b600080fd5b600081905082602060020282011115610a7257610a71610a51565b5b92915050565b600081905082604060020282011115610a9457610a93610a51565b5b92915050565b600081905082602060100282011115610ab657610ab5610a51565b5b92915050565b6000806000806103008587031215610ad757610ad6610a4c565b5b6000610ae587828801610a56565b9450506040610af687828801610a78565b93505060c0610b0787828801610a56565b925050610100610b1987828801610a9a565b91505092959194509250565b60008115159050919050565b610b3a81610b25565b82525050565b6000602082019050610b556000830184610b31565b9291505056fea2646970667358221220ca8705bfa93a78cf62acae4455e632f0ba4658ce4427955bfbebcd1edea5b56464736f6c63430008120033",
+ "bytecode": "0x608060405234801561001057600080fd5b50610b91806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063c82febf514610030575b600080fd5b61004a60048036038101906100459190610abc565b610060565b6040516100579190610b40565b60405180910390f35b6000610944565b7f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd478110610098576000805260206000f35b50565b600060405183815284602082015285604082015260408160608360076107d05a03fa9150816100ce576000805260206000f35b825160408201526020830151606082015260408360808360066107d05a03fa9150816100fe576000805260206000f35b505050505050565b600060808601600087017f0ad4104ba0cab26e17a390c2297e5930790fe2138c4965fa33a92c6efb1ce61181527f2f25144c009fda8ee383ef224c934e7f6df65425132809ae464ff31ac891734760208201526101a960008801357f22afda344f3fa9caa050472eedf614641a3dc81bffaacd4fbe374447e8713c527f0785808d31f021c38a389a35384e87a0c483cc6665f1fb11fd8cb6220ab68a6c8461009b565b6101f960208801357f11885e413266172e3aee33cfdd2bfa186b52178bcf1cefaea78062c05722107d7f26756d1fcadd13849941c067839540f95b0ee5614c0ea6436a0b1371c61918028461009b565b61024960408801357f14034f89a294ea4bcb70f8a05f38319d25b7876baeeb2a1cf1d953be05023c4f7f014b60dec736fc8ef91c82345c2872f10e4f9e1e2a45419a91dfc6f3bf48a5008461009b565b61029960608801357f15b66475b701246e5afeb0fef2c8b1766992b6c862af6343ff7695defcb466b97f0f7f42f9ce4d9e86b9cde0c0a508655c8c79bc0a684a3fc7e31736926bd3164e8461009b565b6102e860808801357e9f8254f248559f4f9347784214ede9a9aa8f08c8ed859b42c55941f6ebac4d7f1f7aa8bbe543dc53d9efab5d487a2f462881d366f25ddf0d5e38747333195eca8461009b565b61033860a08801357f224f0eea46b164e5fd8793f81110dd606a17a916695f431dd9a82930337be6467f05b94074736f283d880c3adc6ca902dd9509466e817281f32b70103f5b5c426c8461009b565b61038860c08801357f121cf7452967876d6eb025f7713bf8392f39e7d8f82e653fbd7b3a4286f04d8e7f2648cf8ce91f5074123ea29d363f00ff58345fa0cf8854cee6b3cdb9cd06f2518461009b565b6103d860e08801357f207375b930a98fe9cbbeb3eb1fe8cff0ec58733416b0385826b0c5203addb82a7f106036e1ef36d5bcc9419747eb69833e04a8835d8eda804a0ce30273e6511d928461009b565b6104296101008801357f2773127f6766e3dfee9d345806c72cd2892e2b3a7c5f0c9c80a894b8e718dde47f1fab68875dd34949d9531c866809371111b147f288eb3fb0e0c516ae9c4d763e8461009b565b61047a6101208801357f18e0b48b621d672b8afb675eeba9ee68d33a71ac5b84e839b1350ff832e2731d7f10ab6d5e5bbf2815c7b436af60a20c885d0aded20f41b5aff518343aa32fe8e28461009b565b6104cb6101408801357f08534d6feb186a62091134bc726c2a6d0ba479bee663ad9702ef4c5931d454897f1d67bf83c43954992a44732500ee24ca44c594d914e6dd0dd722428250170b668461009b565b61051c6101608801357f18cff185263b89e2d1f0a745c7edcae4a6126402cad1205d90aea5ab53f1da167f147e05d126df37c08cf603b77b624feb87a8d33c333dff3f3e1b886aac27fb778461009b565b61056d6101808801357f01acfec350b849fd019997e649774c9795fff3f4af624586841f42181f252eb87f05be1ef6bbed0f7942c562bd8ceb15491221a5176d4709c58f156f65c51018268461009b565b6105be6101a08801357f0723950b7af06aebfcdab4bf96923795f95ea0fa86454831287358be15bf4a397f23b332764411bcec1aad32817dda66a3bfb502a4a0c92494736137c3f9aa010a8461009b565b61060f6101c08801357f26a47a8df4e6edda06f707b27f3b150bf90cb49d52fa68fbb1f57efc30d642777f18ee382f9056082dd010bb84da6fcdcae6fd0b0a86d9922cba113b823b7b0d118461009b565b6106606101e08801357f1d9ed1b6b90a7f3fd9724dd10b98ccfbde0404ad4dd751ff54949274461fe6ff7f10a9f28b202c0acbeb9b877b5ebe348312df9e093190df0eee947f50ffd5c5288461009b565b833582527f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4760208501357f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4703066020830152843560408301526020850135606083015260408501356080830152606085013560a08301527f2d4d9aa7e302d9df41749d5507949d05dbea33fbb16c643b22f599a2be6df2e260c08301527f14bedd503c37ceb061d8ec60209fe345ce89830a19230301f076caff004d192660e08301527f0967032fcbf776d1afc985f88877f182d38480a653f2decaa9794cbc3bf3060c6101008301527f0e187847ad4c798374d0d6732bf501847dd68bc0e071241e0213bc7fc13db7ab6101208301527f304cfbd1e08a704a99f5e847d93f8c3caafddec46b7a0d379da69a4d112346a76101408301527f1739c1b1a457a8c7313123d24d2f9192f896b7c63eea05a9d57f06547ad0cec8610160830152600088015161018083015260206000018801516101a08301527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c26101c08301527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6101e08301527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b6102008301527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa610220830152853561024083015260208601356102608301527f1d7a1d45cd0d7dc185b008a1db27d49fce51cc6867181bc7cc20b082334bebab6102808301527f30249a46876435e31836541ae970041820f931fcac2965e123310140ced152926102a08301527f22254873bf251351180667cdc810f5bb28fc4367da32e764751a1756c4cc66ed6102c08301527f1b00bcdb0dab39dc3e54fdc18bd323d8468fd0c9f50a45a7ed6d65129185769f6102e08301526020826103008460086107d05a03fa82518116935050505095945050505050565b604051610380810160405261095c6000840135610067565b6109696020840135610067565b6109766040840135610067565b6109836060840135610067565b6109906080840135610067565b61099d60a0840135610067565b6109aa60c0840135610067565b6109b760e0840135610067565b6109c5610100840135610067565b6109d3610120840135610067565b6109e1610140840135610067565b6109ef610160840135610067565b6109fd610180840135610067565b610a0b6101a0840135610067565b610a196101c0840135610067565b610a276101e0840135610067565b610a35610200840135610067565b610a42818486888a610106565b8060005260206000f35b600080fd5b600080fd5b600081905082602060020282011115610a7257610a71610a51565b5b92915050565b600081905082604060020282011115610a9457610a93610a51565b5b92915050565b600081905082602060100282011115610ab657610ab5610a51565b5b92915050565b6000806000806103008587031215610ad757610ad6610a4c565b5b6000610ae587828801610a56565b9450506040610af687828801610a78565b93505060c0610b0787828801610a56565b925050610100610b1987828801610a9a565b91505092959194509250565b60008115159050919050565b610b3a81610b25565b82525050565b6000602082019050610b556000830184610b31565b9291505056fea26469706673582212203182fad1c2c45996256e57e04133b91811fae14bccf65921dacf71742c83784364736f6c63430008120033",
+ "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061002b5760003560e01c8063c82febf514610030575b600080fd5b61004a60048036038101906100459190610abc565b610060565b6040516100579190610b40565b60405180910390f35b6000610944565b7f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd478110610098576000805260206000f35b50565b600060405183815284602082015285604082015260408160608360076107d05a03fa9150816100ce576000805260206000f35b825160408201526020830151606082015260408360808360066107d05a03fa9150816100fe576000805260206000f35b505050505050565b600060808601600087017f0ad4104ba0cab26e17a390c2297e5930790fe2138c4965fa33a92c6efb1ce61181527f2f25144c009fda8ee383ef224c934e7f6df65425132809ae464ff31ac891734760208201526101a960008801357f22afda344f3fa9caa050472eedf614641a3dc81bffaacd4fbe374447e8713c527f0785808d31f021c38a389a35384e87a0c483cc6665f1fb11fd8cb6220ab68a6c8461009b565b6101f960208801357f11885e413266172e3aee33cfdd2bfa186b52178bcf1cefaea78062c05722107d7f26756d1fcadd13849941c067839540f95b0ee5614c0ea6436a0b1371c61918028461009b565b61024960408801357f14034f89a294ea4bcb70f8a05f38319d25b7876baeeb2a1cf1d953be05023c4f7f014b60dec736fc8ef91c82345c2872f10e4f9e1e2a45419a91dfc6f3bf48a5008461009b565b61029960608801357f15b66475b701246e5afeb0fef2c8b1766992b6c862af6343ff7695defcb466b97f0f7f42f9ce4d9e86b9cde0c0a508655c8c79bc0a684a3fc7e31736926bd3164e8461009b565b6102e860808801357e9f8254f248559f4f9347784214ede9a9aa8f08c8ed859b42c55941f6ebac4d7f1f7aa8bbe543dc53d9efab5d487a2f462881d366f25ddf0d5e38747333195eca8461009b565b61033860a08801357f224f0eea46b164e5fd8793f81110dd606a17a916695f431dd9a82930337be6467f05b94074736f283d880c3adc6ca902dd9509466e817281f32b70103f5b5c426c8461009b565b61038860c08801357f121cf7452967876d6eb025f7713bf8392f39e7d8f82e653fbd7b3a4286f04d8e7f2648cf8ce91f5074123ea29d363f00ff58345fa0cf8854cee6b3cdb9cd06f2518461009b565b6103d860e08801357f207375b930a98fe9cbbeb3eb1fe8cff0ec58733416b0385826b0c5203addb82a7f106036e1ef36d5bcc9419747eb69833e04a8835d8eda804a0ce30273e6511d928461009b565b6104296101008801357f2773127f6766e3dfee9d345806c72cd2892e2b3a7c5f0c9c80a894b8e718dde47f1fab68875dd34949d9531c866809371111b147f288eb3fb0e0c516ae9c4d763e8461009b565b61047a6101208801357f18e0b48b621d672b8afb675eeba9ee68d33a71ac5b84e839b1350ff832e2731d7f10ab6d5e5bbf2815c7b436af60a20c885d0aded20f41b5aff518343aa32fe8e28461009b565b6104cb6101408801357f08534d6feb186a62091134bc726c2a6d0ba479bee663ad9702ef4c5931d454897f1d67bf83c43954992a44732500ee24ca44c594d914e6dd0dd722428250170b668461009b565b61051c6101608801357f18cff185263b89e2d1f0a745c7edcae4a6126402cad1205d90aea5ab53f1da167f147e05d126df37c08cf603b77b624feb87a8d33c333dff3f3e1b886aac27fb778461009b565b61056d6101808801357f01acfec350b849fd019997e649774c9795fff3f4af624586841f42181f252eb87f05be1ef6bbed0f7942c562bd8ceb15491221a5176d4709c58f156f65c51018268461009b565b6105be6101a08801357f0723950b7af06aebfcdab4bf96923795f95ea0fa86454831287358be15bf4a397f23b332764411bcec1aad32817dda66a3bfb502a4a0c92494736137c3f9aa010a8461009b565b61060f6101c08801357f26a47a8df4e6edda06f707b27f3b150bf90cb49d52fa68fbb1f57efc30d642777f18ee382f9056082dd010bb84da6fcdcae6fd0b0a86d9922cba113b823b7b0d118461009b565b6106606101e08801357f1d9ed1b6b90a7f3fd9724dd10b98ccfbde0404ad4dd751ff54949274461fe6ff7f10a9f28b202c0acbeb9b877b5ebe348312df9e093190df0eee947f50ffd5c5288461009b565b833582527f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4760208501357f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4703066020830152843560408301526020850135606083015260408501356080830152606085013560a08301527f2d4d9aa7e302d9df41749d5507949d05dbea33fbb16c643b22f599a2be6df2e260c08301527f14bedd503c37ceb061d8ec60209fe345ce89830a19230301f076caff004d192660e08301527f0967032fcbf776d1afc985f88877f182d38480a653f2decaa9794cbc3bf3060c6101008301527f0e187847ad4c798374d0d6732bf501847dd68bc0e071241e0213bc7fc13db7ab6101208301527f304cfbd1e08a704a99f5e847d93f8c3caafddec46b7a0d379da69a4d112346a76101408301527f1739c1b1a457a8c7313123d24d2f9192f896b7c63eea05a9d57f06547ad0cec8610160830152600088015161018083015260206000018801516101a08301527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c26101c08301527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6101e08301527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b6102008301527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa610220830152853561024083015260208601356102608301527f1d7a1d45cd0d7dc185b008a1db27d49fce51cc6867181bc7cc20b082334bebab6102808301527f30249a46876435e31836541ae970041820f931fcac2965e123310140ced152926102a08301527f22254873bf251351180667cdc810f5bb28fc4367da32e764751a1756c4cc66ed6102c08301527f1b00bcdb0dab39dc3e54fdc18bd323d8468fd0c9f50a45a7ed6d65129185769f6102e08301526020826103008460086107d05a03fa82518116935050505095945050505050565b604051610380810160405261095c6000840135610067565b6109696020840135610067565b6109766040840135610067565b6109836060840135610067565b6109906080840135610067565b61099d60a0840135610067565b6109aa60c0840135610067565b6109b760e0840135610067565b6109c5610100840135610067565b6109d3610120840135610067565b6109e1610140840135610067565b6109ef610160840135610067565b6109fd610180840135610067565b610a0b6101a0840135610067565b610a196101c0840135610067565b610a276101e0840135610067565b610a35610200840135610067565b610a42818486888a610106565b8060005260206000f35b600080fd5b600080fd5b600081905082602060020282011115610a7257610a71610a51565b5b92915050565b600081905082604060020282011115610a9457610a93610a51565b5b92915050565b600081905082602060100282011115610ab657610ab5610a51565b5b92915050565b6000806000806103008587031215610ad757610ad6610a4c565b5b6000610ae587828801610a56565b9450506040610af687828801610a78565b93505060c0610b0787828801610a56565b925050610100610b1987828801610a9a565b91505092959194509250565b60008115159050919050565b610b3a81610b25565b82525050565b6000602082019050610b556000830184610b31565b9291505056fea26469706673582212203182fad1c2c45996256e57e04133b91811fae14bccf65921dacf71742c83784364736f6c63430008120033",
"linkReferences": {},
"deployedLinkReferences": {}
}
diff --git a/app/deployments/ProofOfPassport.json b/app/deployments/ProofOfPassport.json
index 59c58c157..df6173c1a 100644
--- a/app/deployments/ProofOfPassport.json
+++ b/app/deployments/ProofOfPassport.json
@@ -648,8 +648,8 @@
"type": "function"
}
],
- "bytecode": "0x60a06040526000600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503480156200005357600080fd5b5060405162006ad838038062006ad88339818101604052810190620000799190620009d1565b6040518060400160405280600f81526020017f50726f6f664f6650617373706f727400000000000000000000000000000000008152506040518060400160405280600f81526020017f50726f6f664f6650617373706f727400000000000000000000000000000000008152508160009081620000f6919062000c92565b50806001908162000108919062000c92565b5050506200012b6200011f620001c960201b60201c565b620001d160201b60201c565b8173ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505080600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620001b06200029760201b60201c565b620001c133620007bd60201b60201c565b505062000e94565b600033905090565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600e60405180608001604052806040518060400160405280600d81526020017f69737375696e675f7374617465000000000000000000000000000000000000008152508152602001600281526020016004815260200160008152509080600181540180825580915050600190039060005260206000209060040201600090919091909150600082015181600001908162000332919062000c92565b506020820151816001015560408201518160020155606082015181600301555050600e60405180608001604052806040518060400160405280600481526020017f6e616d6500000000000000000000000000000000000000000000000000000000815250815260200160058152602001602b8152602001600181525090806001815401808255809150506001900390600052602060002090600402016000909190919091506000820151816000019081620003ee919062000c92565b506020820151816001015560408201518160020155606082015181600301555050600e60405180608001604052806040518060400160405280600f81526020017f70617373706f72745f6e756d62657200000000000000000000000000000000008152508152602001602c815260200160348152602001600281525090806001815401808255809150506001900390600052602060002090600402016000909190919091506000820151816000019081620004aa919062000c92565b506020820151816001015560408201518160020155606082015181600301555050600e60405180608001604052806040518060400160405280600b81526020017f6e6174696f6e616c6974790000000000000000000000000000000000000000008152508152602001603681526020016038815260200160038152509080600181540180825580915050600190039060005260206000209060040201600090919091909150600082015181600001908162000566919062000c92565b506020820151816001015560408201518160020155606082015181600301555050600e60405180608001604052806040518060400160405280600d81526020017f646174655f6f665f626972746800000000000000000000000000000000000000815250815260200160398152602001603e815260200160048152509080600181540180825580915050600190039060005260206000209060040201600090919091909150600082015181600001908162000622919062000c92565b506020820151816001015560408201518160020155606082015181600301555050600e60405180608001604052806040518060400160405280600681526020017f67656e646572000000000000000000000000000000000000000000000000000081525081526020016040815260200160408152602001600581525090806001815401808255809150506001900390600052602060002090600402016000909190919091506000820151816000019081620006de919062000c92565b506020820151816001015560408201518160020155606082015181600301555050600e60405180608001604052806040518060400160405280600b81526020017f6578706972795f64617465000000000000000000000000000000000000000000815250815260200160418152602001604681526020016006815250908060018154018082558091505060019003906000526020600020906004020160009091909190915060008201518160000190816200079a919062000c92565b506020820151816001015560408201518160020155606082015181600301555050565b620007cd6200085360201b60201c565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036200083f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008369062000e00565b60405180910390fd5b6200085081620001d160201b60201c565b50565b62000863620001c960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1662000889620008e460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1614620008e2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008d99062000e72565b60405180910390fd5b565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620009408262000913565b9050919050565b6000620009548262000933565b9050919050565b620009668162000947565b81146200097257600080fd5b50565b60008151905062000986816200095b565b92915050565b6000620009998262000933565b9050919050565b620009ab816200098c565b8114620009b757600080fd5b50565b600081519050620009cb81620009a0565b92915050565b60008060408385031215620009eb57620009ea6200090e565b5b6000620009fb8582860162000975565b925050602062000a0e85828601620009ba565b9150509250929050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000a9a57607f821691505b60208210810362000ab05762000aaf62000a52565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000b1a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000adb565b62000b26868362000adb565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000b7362000b6d62000b678462000b3e565b62000b48565b62000b3e565b9050919050565b6000819050919050565b62000b8f8362000b52565b62000ba762000b9e8262000b7a565b84845462000ae8565b825550505050565b600090565b62000bbe62000baf565b62000bcb81848462000b84565b505050565b5b8181101562000bf35762000be760008262000bb4565b60018101905062000bd1565b5050565b601f82111562000c425762000c0c8162000ab6565b62000c178462000acb565b8101602085101562000c27578190505b62000c3f62000c368562000acb565b83018262000bd0565b50505b505050565b600082821c905092915050565b600062000c676000198460080262000c47565b1980831691505092915050565b600062000c82838362000c54565b9150826002028217905092915050565b62000c9d8262000a18565b67ffffffffffffffff81111562000cb95762000cb862000a23565b5b62000cc5825462000a81565b62000cd282828562000bf7565b600060209050601f83116001811462000d0a576000841562000cf5578287015190505b62000d01858262000c74565b86555062000d71565b601f19841662000d1a8662000ab6565b60005b8281101562000d445784890151825560018201915060208501945060208101905062000d1d565b8683101562000d64578489015162000d60601f89168262000c54565b8355505b6001600288020188555050505b505050505050565b600082825260208201905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600062000de860268362000d79565b915062000df58262000d8a565b604082019050919050565b6000602082019050818103600083015262000e1b8162000dd9565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600062000e5a60208362000d79565b915062000e678262000e22565b602082019050919050565b6000602082019050818103600083015262000e8d8162000e4b565b9050919050565b608051615c2162000eb7600039600081816108db01526114ee0152615c216000f3fe608060405234801561001057600080fd5b50600436106101cf5760003560e01c8063715018a611610104578063c87b56dd116100a2578063dc54daf011610071578063dc54daf014610569578063e985e9c514610599578063eba11e05146105c9578063f2fde38b146105e7576101cf565b8063c87b56dd146104bd578063d21e82ab146104ed578063d4d9c00f1461051d578063d9548e5314610539576101cf565b806395d89b41116100de57806395d89b4114610434578063a22cb46514610452578063b04e3a3b1461046e578063b88d4fde146104a1576101cf565b8063715018a6146103dc57806376e6a447146103e65780638da5cb5b14610416576101cf565b80632f745c59116101715780634f6ccce71161014b5780634f6ccce71461033057806354f96d52146103605780636352211e1461037c57806370a08231146103ac576101cf565b80632f745c59146102c65780633a41515f146102f657806342842e0e14610314576101cf565b8063095ea7b3116101ad578063095ea7b31461025257806318160ddd1461026e57806323b872dd1461028c5780632b7ac3f3146102a8576101cf565b806301ffc9a7146101d457806306fdde0314610204578063081812fc14610222575b600080fd5b6101ee60048036038101906101e991906134d8565b610603565b6040516101fb9190613520565b60405180910390f35b61020c61067d565b60405161021991906135cb565b60405180910390f35b61023c60048036038101906102379190613623565b61070f565b6040516102499190613691565b60405180910390f35b61026c600480360381019061026791906136d8565b610755565b005b61027661086c565b6040516102839190613727565b60405180910390f35b6102a660048036038101906102a19190613742565b610879565b005b6102b06108d9565b6040516102bd91906137f4565b60405180910390f35b6102e060048036038101906102db91906136d8565b6108fd565b6040516102ed9190613727565b60405180910390f35b6102fe6109a2565b60405161030b9190613830565b60405180910390f35b61032e60048036038101906103299190613742565b6109c8565b005b61034a60048036038101906103459190613623565b6109e8565b6040516103579190613727565b60405180910390f35b61037a6004803603810190610375919061384b565b610a59565b005b61039660048036038101906103919190613623565b610aa5565b6040516103a39190613691565b60405180910390f35b6103c660048036038101906103c1919061384b565b610b2b565b6040516103d39190613727565b60405180910390f35b6103e4610be2565b005b61040060048036038101906103fb91906139ae565b610bf6565b60405161040d9190613a87565b60405180910390f35b61041e610c63565b60405161042b9190613691565b60405180910390f35b61043c610c8d565b60405161044991906135cb565b60405180910390f35b61046c60048036038101906104679190613ace565b610d1f565b005b61048860048036038101906104839190613623565b610d35565b6040516104989493929190613b0e565b60405180910390f35b6104bb60048036038101906104b69190613c0f565b610dfd565b005b6104d760048036038101906104d29190613623565b610e5f565b6040516104e491906135cb565b60405180910390f35b61050760048036038101906105029190613623565b6114cc565b6040516105149190613520565b60405180910390f35b61053760048036038101906105329190613df4565b6114ec565b005b610553600480360381019061054e9190613623565b611971565b6040516105609190613520565b60405180910390f35b610583600480360381019061057e9190613f0e565b611b23565b6040516105909190613f90565b60405180910390f35b6105b360048036038101906105ae9190613fb2565b611c83565b6040516105c09190613520565b60405180910390f35b6105d1611d17565b6040516105de9190613691565b60405180910390f35b61060160048036038101906105fc919061384b565b611d3d565b005b60007f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610676575061067582611dc0565b5b9050919050565b60606000805461068c90614021565b80601f01602080910402602001604051908101604052809291908181526020018280546106b890614021565b80156107055780601f106106da57610100808354040283529160200191610705565b820191906000526020600020905b8154815290600101906020018083116106e857829003601f168201915b5050505050905090565b600061071a82611ea2565b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061076082610aa5565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107c7906140c4565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166107ef611eed565b73ffffffffffffffffffffffffffffffffffffffff16148061081e575061081d81610818611eed565b611c83565b5b61085d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085490614156565b60405180910390fd5b6108678383611ef5565b505050565b6000600880549050905090565b61088a610884611eed565b82611fae565b6108c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108c0906141e8565b60405180910390fd5b6108d4838383612043565b505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600061090883610b2b565b8210610949576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109409061427a565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002054905092915050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6109e383838360405180602001604052806000815250610dfd565b505050565b60006109f261086c565b8210610a33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2a9061430c565b60405180910390fd5b60088281548110610a4757610a4661432c565b5b90600052602060002001549050919050565b610a6161233c565b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080610ab1836123ba565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610b22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b19906143a7565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610b9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9290614439565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610bea61233c565b610bf460006123f7565b565b610bfe61344a565b610c0661344a565b60005b6003811015610c5957838160108110610c2557610c2461432c565b5b6020020151828260038110610c3d57610c3c61432c565b5b6020020181815250508080610c5190614488565b915050610c09565b5080915050919050565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060018054610c9c90614021565b80601f0160208091040260200160405190810160405280929190818152602001828054610cc890614021565b8015610d155780601f10610cea57610100808354040283529160200191610d15565b820191906000526020600020905b815481529060010190602001808311610cf857829003601f168201915b5050505050905090565b610d31610d2a611eed565b83836124bd565b5050565b600e8181548110610d4557600080fd5b9060005260206000209060040201600091509050806000018054610d6890614021565b80601f0160208091040260200160405190810160405280929190818152602001828054610d9490614021565b8015610de15780601f10610db657610100808354040283529160200191610de1565b820191906000526020600020905b815481529060010190602001808311610dc457829003601f168201915b5050505050908060010154908060020154908060030154905084565b610e0e610e08611eed565b83611fae565b610e4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e44906141e8565b60405180910390fd5b610e5984848484612629565b50505050565b6060610e6a82612685565b610ea9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea090614542565b60405180910390fd5b6000600f600084815260200190815260200160002060405180602001604052908160008201600780602002604051908101604052809291906000905b82821015610f88578382018054610efb90614021565b80601f0160208091040260200160405190810160405280929190818152602001828054610f2790614021565b8015610f745780601f10610f4957610100808354040283529160200191610f74565b820191906000526020600020905b815481529060010190602001808311610f5757829003601f168201915b505050505081526020019060010190610ee5565b50505050815250509050610fed6040518060400160405280601981526020017f49737375696e6720737461746520696e20746f6b656e555249000000000000008152508260000151600060078110610fe357610fe261432c565b5b60200201516126c6565b606080600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630903cd0284600001516001600781106110465761104561432c565b5b60200201516040518263ffffffff1660e01b815260040161106791906135cb565b600060405180830381865afa158015611084573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906110ad9190614603565b80925081935050506000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663028143ed856000015160006007811061110d5761110c61432c565b5b60200201516040518263ffffffff1660e01b815260040161112e91906135cb565b600060405180830381865afa15801561114b573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190611174919061467b565b8383866000015160026007811061118e5761118d61432c565b5b6020020151600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663028143ed89600001516003600781106111e9576111e861432c565b5b60200201516040518263ffffffff1660e01b815260040161120a91906135cb565b600060405180830381865afa158015611227573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190611250919061467b565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bb0870ee8a600001516004600781106112a6576112a561432c565b5b60200201516040518263ffffffff1660e01b81526004016112c791906135cb565b600060405180830381865afa1580156112e4573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019061130d919061467b565b89600001516005600781106113255761132461432c565b5b6020020151600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bb0870ee8c600001516006600781106113805761137f61432c565b5b60200201516040518263ffffffff1660e01b81526004016113a191906135cb565b600060405180830381865afa1580156113be573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906113e7919061467b565b6113f08e611971565b61142f576040518060400160405280600281526020017f4e6f000000000000000000000000000000000000000000000000000000000000815250611466565b6040518060400160405280600381526020017f59657300000000000000000000000000000000000000000000000000000000008152505b61146f8f612762565b6040516020016114889a99989796959493929190614d16565b60405160208183030381529060405290506114a281612830565b6040516020016114b29190614e88565b604051602081830303815290604052945050505050919050565b600d6020528060005260406000206000915054906101000a900460ff1681565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663c82febf5858585856040518563ffffffff1660e01b815260040161154b94939291906150b0565b602060405180830381865afa158015611568573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061158c919061510c565b6115cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c290615185565b60405180910390fd5b600081600160106115dc91906151a5565b601081106115ed576115ec61432c565b5b6020020151905060006115fe61086c565b905061160a82826129b4565b6001600d6000856003601081106116245761162361432c565b5b6020020151815260200190815260200160002060006101000a81548160ff021916908315150217905550600061165984610bf6565b9050600061166682611b23565b90506000600f6000858152602001908152602001600020905060005b600e80549050811015611965576000600e82815481106116a5576116a461432c565b5b90600052602060002090600402016040518060800160405290816000820180546116ce90614021565b80601f01602080910402602001604051908101604052809291908181526020018280546116fa90614021565b80156117475780601f1061171c57610100808354040283529160200191611747565b820191906000526020600020905b81548152906001019060200180831161172a57829003601f168201915b5050505050815260200160018201548152602001600282015481526020016003820154815250509050600060018260200151836040015161178891906151a5565b61179291906151d9565b67ffffffffffffffff8111156117ab576117aa61387d565b5b6040519080825280601f01601f1916602001820160405280156117dd5781602001600182028036833780820191505090505b5090506000826020015190505b82604001518111611877578581815181106118085761180761432c565b5b602001015160f81c60f81b8284602001518361182491906151a5565b815181106118355761183461432c565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350808061186f90614488565b9150506117ea565b506000819050808560000185600781106118945761189361432c565b5b0190816118a191906153af565b5061194f83600001518660000186600781106118c0576118bf61432c565b5b0180546118cc90614021565b80601f01602080910402602001604051908101604052809291908181526020018280546118f890614021565b80156119455780601f1061191a57610100808354040283529160200191611945565b820191906000526020600020905b81548152906001019060200180831161192857829003601f168201915b50505050506126c6565b505050808061195d90614488565b915050611682565b50505050505050505050565b600080600f600084815260200190815260200160002060405180602001604052908160008201600780602002604051908101604052809291906000905b82821015611a515783820180546119c490614021565b80601f01602080910402602001604051908101604052809291908181526020018280546119f090614021565b8015611a3d5780601f10611a1257610100808354040283529160200191611a3d565b820191906000526020600020905b815481529060010190602001808311611a2057829003601f168201915b5050505050815260200190600101906119ae565b505050508152505090506000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fc0bb5d48360000151600660078110611ab357611ab261432c565b5b60200201516040518263ffffffff1660e01b8152600401611ad491906135cb565b602060405180830381865afa158015611af1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b159190615496565b905080421192505050919050565b606060006040518060600160405280601f60ff168152602001601f60ff168152602001601a60ff1681525090506000605867ffffffffffffffff811115611b6d57611b6c61387d565b5b6040519080825280601f01601f191660200182016040528015611b9f5781602001600182028036833780820191505090505b5090506000805b6003811015611c77576000868260038110611bc457611bc361432c565b5b6020020151905060005b858360038110611be157611be061432c565b5b602002015160ff168160ff161015611c625760ff821660f81b858580611c0690614488565b965081518110611c1957611c1861432c565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600882901c91508080611c5a906154d0565b915050611bce565b50508080611c6f90614488565b915050611ba6565b50819350505050919050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611d4561233c565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611db4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dab9061556b565b60405180910390fd5b611dbd816123f7565b50565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611e8b57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80611e9b5750611e9a82612bd1565b5b9050919050565b611eab81612685565b611eea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ee1906143a7565b60405180910390fd5b50565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16611f6883610aa5565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600080611fba83610aa5565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480611ffc5750611ffb8185611c83565b5b8061203a57508373ffffffffffffffffffffffffffffffffffffffff166120228461070f565b73ffffffffffffffffffffffffffffffffffffffff16145b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff1661206382610aa5565b73ffffffffffffffffffffffffffffffffffffffff16146120b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120b0906155fd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612128576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161211f9061568f565b60405180910390fd5b6121358383836001612c3b565b8273ffffffffffffffffffffffffffffffffffffffff1661215582610aa5565b73ffffffffffffffffffffffffffffffffffffffff16146121ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121a2906155fd565b60405180910390fd5b6004600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46123378383836001612cbc565b505050565b612344611eed565b73ffffffffffffffffffffffffffffffffffffffff16612362610c63565b73ffffffffffffffffffffffffffffffffffffffff16146123b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123af906156fb565b60405180910390fd5b565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361252b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161252290615767565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405161261c9190613520565b60405180910390a3505050565b612634848484612043565b61264084848484612cc2565b61267f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612676906157f9565b60405180910390fd5b50505050565b60008073ffffffffffffffffffffffffffffffffffffffff166126a7836123ba565b73ffffffffffffffffffffffffffffffffffffffff1614159050919050565b61275e82826040516024016126dc929190615819565b6040516020818303038152906040527f4b5c4277000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612e49565b5050565b60606000600161277184612e6a565b01905060008167ffffffffffffffff8111156127905761278f61387d565b5b6040519080825280601f01601f1916602001820160405280156127c25781602001600182028036833780820191505090505b509050600082602001820190505b600115612825578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a858161281957612818615850565b5b049450600085036127d0575b819350505050919050565b60606000825103612852576040518060200160405280600081525090506129af565b6000604051806060016040528060408152602001615bac604091399050600060036002855161288191906151d9565b61288b919061587f565b600461289791906158b0565b905060006020826128a891906151d9565b67ffffffffffffffff8111156128c1576128c061387d565b5b6040519080825280601f01601f1916602001820160405280156128f35781602001600182028036833780820191505090505b509050818152600183018586518101602084015b8183101561296e576003830192508251603f8160121c1685015160f81b8252600182019150603f81600c1c1685015160f81b8252600182019150603f8160061c1685015160f81b8252600182019150603f811685015160f81b825260018201915050612907565b6003895106600181146129885760028114612998576129a3565b613d3d60f01b60028303526129a3565b603d60f81b60018303525b50505050508093505050505b919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612a23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a1a9061593e565b60405180910390fd5b612a2c81612685565b15612a6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a63906159aa565b60405180910390fd5b612a7a600083836001612c3b565b612a8381612685565b15612ac3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612aba906159aa565b60405180910390fd5b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4612bcd600083836001612cbc565b5050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b612c4784848484612fbd565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614612cb6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cad90615a3c565b60405180910390fd5b50505050565b50505050565b6000612ce38473ffffffffffffffffffffffffffffffffffffffff1661311b565b15612e3c578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02612d0c611eed565b8786866040518563ffffffff1660e01b8152600401612d2e9493929190615a5c565b6020604051808303816000875af1925050508015612d6a57506040513d601f19601f82011682018060405250810190612d679190615abd565b60015b612dec573d8060008114612d9a576040519150601f19603f3d011682016040523d82523d6000602084013e612d9f565b606091505b506000815103612de4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ddb906157f9565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050612e41565b600190505b949350505050565b60006a636f6e736f6c652e6c6f679050600080835160208501845afa505050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310612ec8577a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008381612ebe57612ebd615850565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310612f05576d04ee2d6d415b85acef81000000008381612efb57612efa615850565b5b0492506020810190505b662386f26fc100008310612f3457662386f26fc100008381612f2a57612f29615850565b5b0492506010810190505b6305f5e1008310612f5d576305f5e1008381612f5357612f52615850565b5b0492506008810190505b6127108310612f82576127108381612f7857612f77615850565b5b0492506004810190505b60648310612fa55760648381612f9b57612f9a615850565b5b0492506002810190505b600a8310612fb4576001810190505b80915050919050565b612fc98484848461313e565b600181111561300d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161300490615b5c565b60405180910390fd5b6000829050600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036130545761304f81613144565b613093565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161461309257613091858261318d565b5b5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036130d5576130d0816132fa565b613114565b8473ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146131135761311284826133cb565b5b5b5050505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b50505050565b6008805490506009600083815260200190815260200160002081905550600881908060018154018082558091505060019003906000526020600020016000909190919091505550565b6000600161319a84610b2b565b6131a491906151a5565b9050600060076000848152602001908152602001600020549050818114613289576000600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002054905080600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002081905550816007600083815260200190815260200160002081905550505b6007600084815260200190815260200160002060009055600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206000905550505050565b6000600160088054905061330e91906151a5565b905060006009600084815260200190815260200160002054905060006008838154811061333e5761333d61432c565b5b9060005260206000200154905080600883815481106133605761335f61432c565b5b9060005260206000200181905550816009600083815260200190815260200160002081905550600960008581526020019081526020016000206000905560088054806133af576133ae615b7c565b5b6001900381819060005260206000200160009055905550505050565b60006133d683610b2b565b905081600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002081905550806007600084815260200190815260200160002081905550505050565b6040518060600160405280600390602082028036833780820191505090505090565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6134b581613480565b81146134c057600080fd5b50565b6000813590506134d2816134ac565b92915050565b6000602082840312156134ee576134ed613476565b5b60006134fc848285016134c3565b91505092915050565b60008115159050919050565b61351a81613505565b82525050565b60006020820190506135356000830184613511565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561357557808201518184015260208101905061355a565b60008484015250505050565b6000601f19601f8301169050919050565b600061359d8261353b565b6135a78185613546565b93506135b7818560208601613557565b6135c081613581565b840191505092915050565b600060208201905081810360008301526135e58184613592565b905092915050565b6000819050919050565b613600816135ed565b811461360b57600080fd5b50565b60008135905061361d816135f7565b92915050565b60006020828403121561363957613638613476565b5b60006136478482850161360e565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061367b82613650565b9050919050565b61368b81613670565b82525050565b60006020820190506136a66000830184613682565b92915050565b6136b581613670565b81146136c057600080fd5b50565b6000813590506136d2816136ac565b92915050565b600080604083850312156136ef576136ee613476565b5b60006136fd858286016136c3565b925050602061370e8582860161360e565b9150509250929050565b613721816135ed565b82525050565b600060208201905061373c6000830184613718565b92915050565b60008060006060848603121561375b5761375a613476565b5b6000613769868287016136c3565b935050602061377a868287016136c3565b925050604061378b8682870161360e565b9150509250925092565b6000819050919050565b60006137ba6137b56137b084613650565b613795565b613650565b9050919050565b60006137cc8261379f565b9050919050565b60006137de826137c1565b9050919050565b6137ee816137d3565b82525050565b600060208201905061380960008301846137e5565b92915050565b600061381a826137c1565b9050919050565b61382a8161380f565b82525050565b60006020820190506138456000830184613821565b92915050565b60006020828403121561386157613860613476565b5b600061386f848285016136c3565b91505092915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6138b582613581565b810181811067ffffffffffffffff821117156138d4576138d361387d565b5b80604052505050565b60006138e761346c565b90506138f382826138ac565b919050565b600067ffffffffffffffff8211156139135761391261387d565b5b602082029050919050565b600080fd5b6000613936613931846138f8565b6138dd565b905080602084028301858111156139505761394f61391e565b5b835b818110156139795780613965888261360e565b845260208401935050602081019050613952565b5050509392505050565b600082601f83011261399857613997613878565b5b60106139a5848285613923565b91505092915050565b600061020082840312156139c5576139c4613476565b5b60006139d384828501613983565b91505092915050565b600060039050919050565b600081905092915050565b6000819050919050565b613a05816135ed565b82525050565b6000613a1783836139fc565b60208301905092915050565b6000602082019050919050565b613a39816139dc565b613a4381846139e7565b9250613a4e826139f2565b8060005b83811015613a7f578151613a668782613a0b565b9650613a7183613a23565b925050600181019050613a52565b505050505050565b6000606082019050613a9c6000830184613a30565b92915050565b613aab81613505565b8114613ab657600080fd5b50565b600081359050613ac881613aa2565b92915050565b60008060408385031215613ae557613ae4613476565b5b6000613af3858286016136c3565b9250506020613b0485828601613ab9565b9150509250929050565b60006080820190508181036000830152613b288187613592565b9050613b376020830186613718565b613b446040830185613718565b613b516060830184613718565b95945050505050565b600080fd5b600067ffffffffffffffff821115613b7a57613b7961387d565b5b613b8382613581565b9050602081019050919050565b82818337600083830152505050565b6000613bb2613bad84613b5f565b6138dd565b905082815260208101848484011115613bce57613bcd613b5a565b5b613bd9848285613b90565b509392505050565b600082601f830112613bf657613bf5613878565b5b8135613c06848260208601613b9f565b91505092915050565b60008060008060808587031215613c2957613c28613476565b5b6000613c37878288016136c3565b9450506020613c48878288016136c3565b9350506040613c598782880161360e565b925050606085013567ffffffffffffffff811115613c7a57613c7961347b565b5b613c8687828801613be1565b91505092959194509250565b600067ffffffffffffffff821115613cad57613cac61387d565b5b602082029050919050565b6000613ccb613cc684613c92565b6138dd565b90508060208402830185811115613ce557613ce461391e565b5b835b81811015613d0e5780613cfa888261360e565b845260208401935050602081019050613ce7565b5050509392505050565b600082601f830112613d2d57613d2c613878565b5b6002613d3a848285613cb8565b91505092915050565b600067ffffffffffffffff821115613d5e57613d5d61387d565b5b602082029050919050565b6000613d7c613d7784613d43565b6138dd565b90508060408402830185811115613d9657613d9561391e565b5b835b81811015613dbf5780613dab8882613d18565b845260208401935050604081019050613d98565b5050509392505050565b600082601f830112613dde57613ddd613878565b5b6002613deb848285613d69565b91505092915050565b6000806000806103008587031215613e0f57613e0e613476565b5b6000613e1d87828801613d18565b9450506040613e2e87828801613dc9565b93505060c0613e3f87828801613d18565b925050610100613e5187828801613983565b91505092959194509250565b600067ffffffffffffffff821115613e7857613e7761387d565b5b602082029050919050565b6000613e96613e9184613e5d565b6138dd565b90508060208402830185811115613eb057613eaf61391e565b5b835b81811015613ed95780613ec5888261360e565b845260208401935050602081019050613eb2565b5050509392505050565b600082601f830112613ef857613ef7613878565b5b6003613f05848285613e83565b91505092915050565b600060608284031215613f2457613f23613476565b5b6000613f3284828501613ee3565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000613f6282613f3b565b613f6c8185613f46565b9350613f7c818560208601613557565b613f8581613581565b840191505092915050565b60006020820190508181036000830152613faa8184613f57565b905092915050565b60008060408385031215613fc957613fc8613476565b5b6000613fd7858286016136c3565b9250506020613fe8858286016136c3565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061403957607f821691505b60208210810361404c5761404b613ff2565b5b50919050565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b60006140ae602183613546565b91506140b982614052565b604082019050919050565b600060208201905081810360008301526140dd816140a1565b9050919050565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60008201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c000000602082015250565b6000614140603d83613546565b915061414b826140e4565b604082019050919050565b6000602082019050818103600083015261416f81614133565b9050919050565b7f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560008201527f72206f7220617070726f76656400000000000000000000000000000000000000602082015250565b60006141d2602d83613546565b91506141dd82614176565b604082019050919050565b60006020820190508181036000830152614201816141c5565b9050919050565b7f455243373231456e756d657261626c653a206f776e657220696e646578206f7560008201527f74206f6620626f756e6473000000000000000000000000000000000000000000602082015250565b6000614264602b83613546565b915061426f82614208565b604082019050919050565b6000602082019050818103600083015261429381614257565b9050919050565b7f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60008201527f7574206f6620626f756e64730000000000000000000000000000000000000000602082015250565b60006142f6602c83613546565b91506143018261429a565b604082019050919050565b60006020820190508181036000830152614325816142e9565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4552433732313a20696e76616c696420746f6b656e2049440000000000000000600082015250565b6000614391601883613546565b915061439c8261435b565b602082019050919050565b600060208201905081810360008301526143c081614384565b9050919050565b7f4552433732313a2061646472657373207a65726f206973206e6f74206120766160008201527f6c6964206f776e65720000000000000000000000000000000000000000000000602082015250565b6000614423602983613546565b915061442e826143c7565b604082019050919050565b6000602082019050818103600083015261445281614416565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000614493826135ed565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036144c5576144c4614459565b5b600182019050919050565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b600061452c602f83613546565b9150614537826144d0565b604082019050919050565b6000602082019050818103600083015261455b8161451f565b9050919050565b600067ffffffffffffffff82111561457d5761457c61387d565b5b61458682613581565b9050602081019050919050565b60006145a66145a184614562565b6138dd565b9050828152602081018484840111156145c2576145c1613b5a565b5b6145cd848285613557565b509392505050565b600082601f8301126145ea576145e9613878565b5b81516145fa848260208601614593565b91505092915050565b6000806040838503121561461a57614619613476565b5b600083015167ffffffffffffffff8111156146385761463761347b565b5b614644858286016145d5565b925050602083015167ffffffffffffffff8111156146655761466461347b565b5b614671858286016145d5565b9150509250929050565b60006020828403121561469157614690613476565b5b600082015167ffffffffffffffff8111156146af576146ae61347b565b5b6146bb848285016145d5565b91505092915050565b600081905092915050565b7f7b202261747472696275746573223a205b000000000000000000000000000000600082015250565b60006147056011836146c4565b9150614710826146cf565b601182019050919050565b7f7b2274726169745f74797065223a202249737375696e67205374617465222c2060008201527f2276616c7565223a202200000000000000000000000000000000000000000000602082015250565b6000614777602a836146c4565b91506147828261471b565b602a82019050919050565b60006147988261353b565b6147a281856146c4565b93506147b2818560208601613557565b80840191505092915050565b7f227d2c7b2274726169745f74797065223a202246697273744e616d65222c202260008201527f76616c7565223a20220000000000000000000000000000000000000000000000602082015250565b600061481a6029836146c4565b9150614825826147be565b602982019050919050565b7f227d2c7b2274726169745f74797065223a20224c6173744e616d65222c20227660008201527f616c7565223a2022000000000000000000000000000000000000000000000000602082015250565b600061488c6028836146c4565b915061489782614830565b602882019050919050565b7f227d2c7b2274726169745f74797065223a202250617373706f7274204e756d6260008201527f6572222c202276616c7565223a20220000000000000000000000000000000000602082015250565b60006148fe602f836146c4565b9150614909826148a2565b602f82019050919050565b7f227d2c7b2274726169745f74797065223a20224e6174696f6e616c697479222c60008201527f202276616c7565223a2022000000000000000000000000000000000000000000602082015250565b6000614970602b836146c4565b915061497b82614914565b602b82019050919050565b7f227d2c7b2274726169745f74797065223a202244617465206f6620626972746860008201527f222c202276616c7565223a202200000000000000000000000000000000000000602082015250565b60006149e2602d836146c4565b91506149ed82614986565b602d82019050919050565b7f227d2c7b2274726169745f74797065223a202247656e646572222c202276616c60008201527f7565223a20220000000000000000000000000000000000000000000000000000602082015250565b6000614a546026836146c4565b9150614a5f826149f8565b602682019050919050565b7f227d2c7b2274726169745f74797065223a20224578706972792064617465222c60008201527f202276616c7565223a2022000000000000000000000000000000000000000000602082015250565b6000614ac6602b836146c4565b9150614ad182614a6a565b602b82019050919050565b7f227d2c7b2274726169745f74797065223a202245787069726564222c2022766160008201527f6c7565223a202200000000000000000000000000000000000000000000000000602082015250565b6000614b386027836146c4565b9150614b4382614adc565b602782019050919050565b7f227d000000000000000000000000000000000000000000000000000000000000600082015250565b6000614b846002836146c4565b9150614b8f82614b4e565b600282019050919050565b7f5d2c000000000000000000000000000000000000000000000000000000000000600082015250565b6000614bd06002836146c4565b9150614bdb82614b9a565b600282019050919050565b7f226465736372697074696f6e223a202250726f6f66206f662050617373706f7260008201527f742067756172616e7465657320706f7373657373696f6e206f6620612076616c60208201527f69642070617373706f72742e222c2265787465726e616c5f75726c223a20226860408201527f747470733a2f2f6769746875622e636f6d2f7a6b2d70617373706f72742f707260608201527f6f6f662d6f662d70617373706f7274222c22696d616765223a2022687474707360808201527f3a2f2f692e696d6775722e636f6d2f396b766574696a2e706e67222c226e616d60a08201527f65223a202250726f6f66206f662050617373706f72742023000000000000000060c082015250565b6000614d0060d8836146c4565b9150614d0b82614be6565b60d882019050919050565b6000614d21826146f8565b9150614d2c8261476a565b9150614d38828d61478d565b9150614d438261480d565b9150614d4f828c61478d565b9150614d5a8261487f565b9150614d66828b61478d565b9150614d71826148f1565b9150614d7d828a61478d565b9150614d8882614963565b9150614d94828961478d565b9150614d9f826149d5565b9150614dab828861478d565b9150614db682614a47565b9150614dc2828761478d565b9150614dcd82614ab9565b9150614dd9828661478d565b9150614de482614b2b565b9150614df0828561478d565b9150614dfb82614b77565b9150614e0682614bc3565b9150614e1182614cf3565b9150614e1d828461478d565b9150614e2882614b77565b91508190509b9a5050505050505050505050565b7f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c000000600082015250565b6000614e72601d836146c4565b9150614e7d82614e3c565b601d82019050919050565b6000614e9382614e65565b9150614e9f828461478d565b915081905092915050565b600060029050919050565b600081905092915050565b6000819050919050565b6000602082019050919050565b614ee081614eaa565b614eea8184614eb5565b9250614ef582614ec0565b8060005b83811015614f26578151614f0d8782613a0b565b9650614f1883614eca565b925050600181019050614ef9565b505050505050565b600060029050919050565b600081905092915050565b6000819050919050565b600081905092915050565b614f6281614eaa565b614f6c8184614f4e565b9250614f7782614ec0565b8060005b83811015614fa8578151614f8f8782613a0b565b9650614f9a83614eca565b925050600181019050614f7b565b505050505050565b6000614fbc8383614f59565b60408301905092915050565b6000602082019050919050565b614fde81614f2e565b614fe88184614f39565b9250614ff382614f44565b8060005b8381101561502457815161500b8782614fb0565b965061501683614fc8565b925050600181019050614ff7565b505050505050565b600060109050919050565b600081905092915050565b6000819050919050565b6000602082019050919050565b6150628161502c565b61506c8184615037565b925061507782615042565b8060005b838110156150a857815161508f8782613a0b565b965061509a8361504c565b92505060018101905061507b565b505050505050565b6000610300820190506150c66000830187614ed7565b6150d36040830186614fd5565b6150e060c0830185614ed7565b6150ee610100830184615059565b95945050505050565b60008151905061510681613aa2565b92915050565b60006020828403121561512257615121613476565b5b6000615130848285016150f7565b91505092915050565b7f496e76616c69642050726f6f6600000000000000000000000000000000000000600082015250565b600061516f600d83613546565b915061517a82615139565b602082019050919050565b6000602082019050818103600083015261519e81615162565b9050919050565b60006151b0826135ed565b91506151bb836135ed565b92508282039050818111156151d3576151d2614459565b5b92915050565b60006151e4826135ed565b91506151ef836135ed565b925082820190508082111561520757615206614459565b5b92915050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830261526f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82615232565b6152798683615232565b95508019841693508086168417925050509392505050565b60006152ac6152a76152a2846135ed565b613795565b6135ed565b9050919050565b6000819050919050565b6152c683615291565b6152da6152d2826152b3565b84845461523f565b825550505050565b600090565b6152ef6152e2565b6152fa8184846152bd565b505050565b5b8181101561531e576153136000826152e7565b600181019050615300565b5050565b601f821115615363576153348161520d565b61533d84615222565b8101602085101561534c578190505b61536061535885615222565b8301826152ff565b50505b505050565b600082821c905092915050565b600061538660001984600802615368565b1980831691505092915050565b600061539f8383615375565b9150826002028217905092915050565b6153b88261353b565b67ffffffffffffffff8111156153d1576153d061387d565b5b6153db8254614021565b6153e6828285615322565b600060209050601f8311600181146154195760008415615407578287015190505b6154118582615393565b865550615479565b601f1984166154278661520d565b60005b8281101561544f5784890151825560018201915060208501945060208101905061542a565b8683101561546c5784890151615468601f891682615375565b8355505b6001600288020188555050505b505050505050565b600081519050615490816135f7565b92915050565b6000602082840312156154ac576154ab613476565b5b60006154ba84828501615481565b91505092915050565b600060ff82169050919050565b60006154db826154c3565b915060ff82036154ee576154ed614459565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000615555602683613546565b9150615560826154f9565b604082019050919050565b6000602082019050818103600083015261558481615548565b9050919050565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b60006155e7602583613546565b91506155f28261558b565b604082019050919050565b60006020820190508181036000830152615616816155da565b9050919050565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000615679602483613546565b91506156848261561d565b604082019050919050565b600060208201905081810360008301526156a88161566c565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006156e5602083613546565b91506156f0826156af565b602082019050919050565b60006020820190508181036000830152615714816156d8565b9050919050565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b6000615751601983613546565b915061575c8261571b565b602082019050919050565b6000602082019050818103600083015261578081615744565b9050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b60006157e3603283613546565b91506157ee82615787565b604082019050919050565b60006020820190508181036000830152615812816157d6565b9050919050565b600060408201905081810360008301526158338185613592565b905081810360208301526158478184613592565b90509392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061588a826135ed565b9150615895836135ed565b9250826158a5576158a4615850565b5b828204905092915050565b60006158bb826135ed565b91506158c6836135ed565b92508282026158d4816135ed565b915082820484148315176158eb576158ea614459565b5b5092915050565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b6000615928602083613546565b9150615933826158f2565b602082019050919050565b600060208201905081810360008301526159578161591b565b9050919050565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b6000615994601c83613546565b915061599f8261595e565b602082019050919050565b600060208201905081810360008301526159c381615987565b9050919050565b7f43616e6e6f74207472616e73666572202d2050726f6f66206f6620506173737060008201527f6f727420697320736f756c626f756e6400000000000000000000000000000000602082015250565b6000615a26603083613546565b9150615a31826159ca565b604082019050919050565b60006020820190508181036000830152615a5581615a19565b9050919050565b6000608082019050615a716000830187613682565b615a7e6020830186613682565b615a8b6040830185613718565b8181036060830152615a9d8184613f57565b905095945050505050565b600081519050615ab7816134ac565b92915050565b600060208284031215615ad357615ad2613476565b5b6000615ae184828501615aa8565b91505092915050565b7f455243373231456e756d657261626c653a20636f6e736563757469766520747260008201527f616e7366657273206e6f7420737570706f727465640000000000000000000000602082015250565b6000615b46603583613546565b9150615b5182615aea565b604082019050919050565b60006020820190508181036000830152615b7581615b39565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfe4142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2fa2646970667358221220fc7b3e1065ff76ed9c3e55279cd3a205fc1183775e22ad1efea30ad39c94a3cc64736f6c63430008120033",
- "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101cf5760003560e01c8063715018a611610104578063c87b56dd116100a2578063dc54daf011610071578063dc54daf014610569578063e985e9c514610599578063eba11e05146105c9578063f2fde38b146105e7576101cf565b8063c87b56dd146104bd578063d21e82ab146104ed578063d4d9c00f1461051d578063d9548e5314610539576101cf565b806395d89b41116100de57806395d89b4114610434578063a22cb46514610452578063b04e3a3b1461046e578063b88d4fde146104a1576101cf565b8063715018a6146103dc57806376e6a447146103e65780638da5cb5b14610416576101cf565b80632f745c59116101715780634f6ccce71161014b5780634f6ccce71461033057806354f96d52146103605780636352211e1461037c57806370a08231146103ac576101cf565b80632f745c59146102c65780633a41515f146102f657806342842e0e14610314576101cf565b8063095ea7b3116101ad578063095ea7b31461025257806318160ddd1461026e57806323b872dd1461028c5780632b7ac3f3146102a8576101cf565b806301ffc9a7146101d457806306fdde0314610204578063081812fc14610222575b600080fd5b6101ee60048036038101906101e991906134d8565b610603565b6040516101fb9190613520565b60405180910390f35b61020c61067d565b60405161021991906135cb565b60405180910390f35b61023c60048036038101906102379190613623565b61070f565b6040516102499190613691565b60405180910390f35b61026c600480360381019061026791906136d8565b610755565b005b61027661086c565b6040516102839190613727565b60405180910390f35b6102a660048036038101906102a19190613742565b610879565b005b6102b06108d9565b6040516102bd91906137f4565b60405180910390f35b6102e060048036038101906102db91906136d8565b6108fd565b6040516102ed9190613727565b60405180910390f35b6102fe6109a2565b60405161030b9190613830565b60405180910390f35b61032e60048036038101906103299190613742565b6109c8565b005b61034a60048036038101906103459190613623565b6109e8565b6040516103579190613727565b60405180910390f35b61037a6004803603810190610375919061384b565b610a59565b005b61039660048036038101906103919190613623565b610aa5565b6040516103a39190613691565b60405180910390f35b6103c660048036038101906103c1919061384b565b610b2b565b6040516103d39190613727565b60405180910390f35b6103e4610be2565b005b61040060048036038101906103fb91906139ae565b610bf6565b60405161040d9190613a87565b60405180910390f35b61041e610c63565b60405161042b9190613691565b60405180910390f35b61043c610c8d565b60405161044991906135cb565b60405180910390f35b61046c60048036038101906104679190613ace565b610d1f565b005b61048860048036038101906104839190613623565b610d35565b6040516104989493929190613b0e565b60405180910390f35b6104bb60048036038101906104b69190613c0f565b610dfd565b005b6104d760048036038101906104d29190613623565b610e5f565b6040516104e491906135cb565b60405180910390f35b61050760048036038101906105029190613623565b6114cc565b6040516105149190613520565b60405180910390f35b61053760048036038101906105329190613df4565b6114ec565b005b610553600480360381019061054e9190613623565b611971565b6040516105609190613520565b60405180910390f35b610583600480360381019061057e9190613f0e565b611b23565b6040516105909190613f90565b60405180910390f35b6105b360048036038101906105ae9190613fb2565b611c83565b6040516105c09190613520565b60405180910390f35b6105d1611d17565b6040516105de9190613691565b60405180910390f35b61060160048036038101906105fc919061384b565b611d3d565b005b60007f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610676575061067582611dc0565b5b9050919050565b60606000805461068c90614021565b80601f01602080910402602001604051908101604052809291908181526020018280546106b890614021565b80156107055780601f106106da57610100808354040283529160200191610705565b820191906000526020600020905b8154815290600101906020018083116106e857829003601f168201915b5050505050905090565b600061071a82611ea2565b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061076082610aa5565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107c7906140c4565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166107ef611eed565b73ffffffffffffffffffffffffffffffffffffffff16148061081e575061081d81610818611eed565b611c83565b5b61085d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085490614156565b60405180910390fd5b6108678383611ef5565b505050565b6000600880549050905090565b61088a610884611eed565b82611fae565b6108c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108c0906141e8565b60405180910390fd5b6108d4838383612043565b505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600061090883610b2b565b8210610949576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109409061427a565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002054905092915050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6109e383838360405180602001604052806000815250610dfd565b505050565b60006109f261086c565b8210610a33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2a9061430c565b60405180910390fd5b60088281548110610a4757610a4661432c565b5b90600052602060002001549050919050565b610a6161233c565b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080610ab1836123ba565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610b22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b19906143a7565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610b9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9290614439565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610bea61233c565b610bf460006123f7565b565b610bfe61344a565b610c0661344a565b60005b6003811015610c5957838160108110610c2557610c2461432c565b5b6020020151828260038110610c3d57610c3c61432c565b5b6020020181815250508080610c5190614488565b915050610c09565b5080915050919050565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060018054610c9c90614021565b80601f0160208091040260200160405190810160405280929190818152602001828054610cc890614021565b8015610d155780601f10610cea57610100808354040283529160200191610d15565b820191906000526020600020905b815481529060010190602001808311610cf857829003601f168201915b5050505050905090565b610d31610d2a611eed565b83836124bd565b5050565b600e8181548110610d4557600080fd5b9060005260206000209060040201600091509050806000018054610d6890614021565b80601f0160208091040260200160405190810160405280929190818152602001828054610d9490614021565b8015610de15780601f10610db657610100808354040283529160200191610de1565b820191906000526020600020905b815481529060010190602001808311610dc457829003601f168201915b5050505050908060010154908060020154908060030154905084565b610e0e610e08611eed565b83611fae565b610e4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e44906141e8565b60405180910390fd5b610e5984848484612629565b50505050565b6060610e6a82612685565b610ea9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea090614542565b60405180910390fd5b6000600f600084815260200190815260200160002060405180602001604052908160008201600780602002604051908101604052809291906000905b82821015610f88578382018054610efb90614021565b80601f0160208091040260200160405190810160405280929190818152602001828054610f2790614021565b8015610f745780601f10610f4957610100808354040283529160200191610f74565b820191906000526020600020905b815481529060010190602001808311610f5757829003601f168201915b505050505081526020019060010190610ee5565b50505050815250509050610fed6040518060400160405280601981526020017f49737375696e6720737461746520696e20746f6b656e555249000000000000008152508260000151600060078110610fe357610fe261432c565b5b60200201516126c6565b606080600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630903cd0284600001516001600781106110465761104561432c565b5b60200201516040518263ffffffff1660e01b815260040161106791906135cb565b600060405180830381865afa158015611084573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906110ad9190614603565b80925081935050506000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663028143ed856000015160006007811061110d5761110c61432c565b5b60200201516040518263ffffffff1660e01b815260040161112e91906135cb565b600060405180830381865afa15801561114b573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190611174919061467b565b8383866000015160026007811061118e5761118d61432c565b5b6020020151600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663028143ed89600001516003600781106111e9576111e861432c565b5b60200201516040518263ffffffff1660e01b815260040161120a91906135cb565b600060405180830381865afa158015611227573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190611250919061467b565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bb0870ee8a600001516004600781106112a6576112a561432c565b5b60200201516040518263ffffffff1660e01b81526004016112c791906135cb565b600060405180830381865afa1580156112e4573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019061130d919061467b565b89600001516005600781106113255761132461432c565b5b6020020151600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bb0870ee8c600001516006600781106113805761137f61432c565b5b60200201516040518263ffffffff1660e01b81526004016113a191906135cb565b600060405180830381865afa1580156113be573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906113e7919061467b565b6113f08e611971565b61142f576040518060400160405280600281526020017f4e6f000000000000000000000000000000000000000000000000000000000000815250611466565b6040518060400160405280600381526020017f59657300000000000000000000000000000000000000000000000000000000008152505b61146f8f612762565b6040516020016114889a99989796959493929190614d16565b60405160208183030381529060405290506114a281612830565b6040516020016114b29190614e88565b604051602081830303815290604052945050505050919050565b600d6020528060005260406000206000915054906101000a900460ff1681565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663c82febf5858585856040518563ffffffff1660e01b815260040161154b94939291906150b0565b602060405180830381865afa158015611568573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061158c919061510c565b6115cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c290615185565b60405180910390fd5b600081600160106115dc91906151a5565b601081106115ed576115ec61432c565b5b6020020151905060006115fe61086c565b905061160a82826129b4565b6001600d6000856003601081106116245761162361432c565b5b6020020151815260200190815260200160002060006101000a81548160ff021916908315150217905550600061165984610bf6565b9050600061166682611b23565b90506000600f6000858152602001908152602001600020905060005b600e80549050811015611965576000600e82815481106116a5576116a461432c565b5b90600052602060002090600402016040518060800160405290816000820180546116ce90614021565b80601f01602080910402602001604051908101604052809291908181526020018280546116fa90614021565b80156117475780601f1061171c57610100808354040283529160200191611747565b820191906000526020600020905b81548152906001019060200180831161172a57829003601f168201915b5050505050815260200160018201548152602001600282015481526020016003820154815250509050600060018260200151836040015161178891906151a5565b61179291906151d9565b67ffffffffffffffff8111156117ab576117aa61387d565b5b6040519080825280601f01601f1916602001820160405280156117dd5781602001600182028036833780820191505090505b5090506000826020015190505b82604001518111611877578581815181106118085761180761432c565b5b602001015160f81c60f81b8284602001518361182491906151a5565b815181106118355761183461432c565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350808061186f90614488565b9150506117ea565b506000819050808560000185600781106118945761189361432c565b5b0190816118a191906153af565b5061194f83600001518660000186600781106118c0576118bf61432c565b5b0180546118cc90614021565b80601f01602080910402602001604051908101604052809291908181526020018280546118f890614021565b80156119455780601f1061191a57610100808354040283529160200191611945565b820191906000526020600020905b81548152906001019060200180831161192857829003601f168201915b50505050506126c6565b505050808061195d90614488565b915050611682565b50505050505050505050565b600080600f600084815260200190815260200160002060405180602001604052908160008201600780602002604051908101604052809291906000905b82821015611a515783820180546119c490614021565b80601f01602080910402602001604051908101604052809291908181526020018280546119f090614021565b8015611a3d5780601f10611a1257610100808354040283529160200191611a3d565b820191906000526020600020905b815481529060010190602001808311611a2057829003601f168201915b5050505050815260200190600101906119ae565b505050508152505090506000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fc0bb5d48360000151600660078110611ab357611ab261432c565b5b60200201516040518263ffffffff1660e01b8152600401611ad491906135cb565b602060405180830381865afa158015611af1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b159190615496565b905080421192505050919050565b606060006040518060600160405280601f60ff168152602001601f60ff168152602001601a60ff1681525090506000605867ffffffffffffffff811115611b6d57611b6c61387d565b5b6040519080825280601f01601f191660200182016040528015611b9f5781602001600182028036833780820191505090505b5090506000805b6003811015611c77576000868260038110611bc457611bc361432c565b5b6020020151905060005b858360038110611be157611be061432c565b5b602002015160ff168160ff161015611c625760ff821660f81b858580611c0690614488565b965081518110611c1957611c1861432c565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600882901c91508080611c5a906154d0565b915050611bce565b50508080611c6f90614488565b915050611ba6565b50819350505050919050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611d4561233c565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611db4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dab9061556b565b60405180910390fd5b611dbd816123f7565b50565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611e8b57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80611e9b5750611e9a82612bd1565b5b9050919050565b611eab81612685565b611eea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ee1906143a7565b60405180910390fd5b50565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16611f6883610aa5565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600080611fba83610aa5565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480611ffc5750611ffb8185611c83565b5b8061203a57508373ffffffffffffffffffffffffffffffffffffffff166120228461070f565b73ffffffffffffffffffffffffffffffffffffffff16145b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff1661206382610aa5565b73ffffffffffffffffffffffffffffffffffffffff16146120b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120b0906155fd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612128576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161211f9061568f565b60405180910390fd5b6121358383836001612c3b565b8273ffffffffffffffffffffffffffffffffffffffff1661215582610aa5565b73ffffffffffffffffffffffffffffffffffffffff16146121ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121a2906155fd565b60405180910390fd5b6004600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46123378383836001612cbc565b505050565b612344611eed565b73ffffffffffffffffffffffffffffffffffffffff16612362610c63565b73ffffffffffffffffffffffffffffffffffffffff16146123b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123af906156fb565b60405180910390fd5b565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361252b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161252290615767565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405161261c9190613520565b60405180910390a3505050565b612634848484612043565b61264084848484612cc2565b61267f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612676906157f9565b60405180910390fd5b50505050565b60008073ffffffffffffffffffffffffffffffffffffffff166126a7836123ba565b73ffffffffffffffffffffffffffffffffffffffff1614159050919050565b61275e82826040516024016126dc929190615819565b6040516020818303038152906040527f4b5c4277000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612e49565b5050565b60606000600161277184612e6a565b01905060008167ffffffffffffffff8111156127905761278f61387d565b5b6040519080825280601f01601f1916602001820160405280156127c25781602001600182028036833780820191505090505b509050600082602001820190505b600115612825578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a858161281957612818615850565b5b049450600085036127d0575b819350505050919050565b60606000825103612852576040518060200160405280600081525090506129af565b6000604051806060016040528060408152602001615bac604091399050600060036002855161288191906151d9565b61288b919061587f565b600461289791906158b0565b905060006020826128a891906151d9565b67ffffffffffffffff8111156128c1576128c061387d565b5b6040519080825280601f01601f1916602001820160405280156128f35781602001600182028036833780820191505090505b509050818152600183018586518101602084015b8183101561296e576003830192508251603f8160121c1685015160f81b8252600182019150603f81600c1c1685015160f81b8252600182019150603f8160061c1685015160f81b8252600182019150603f811685015160f81b825260018201915050612907565b6003895106600181146129885760028114612998576129a3565b613d3d60f01b60028303526129a3565b603d60f81b60018303525b50505050508093505050505b919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612a23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a1a9061593e565b60405180910390fd5b612a2c81612685565b15612a6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a63906159aa565b60405180910390fd5b612a7a600083836001612c3b565b612a8381612685565b15612ac3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612aba906159aa565b60405180910390fd5b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4612bcd600083836001612cbc565b5050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b612c4784848484612fbd565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614612cb6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cad90615a3c565b60405180910390fd5b50505050565b50505050565b6000612ce38473ffffffffffffffffffffffffffffffffffffffff1661311b565b15612e3c578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02612d0c611eed565b8786866040518563ffffffff1660e01b8152600401612d2e9493929190615a5c565b6020604051808303816000875af1925050508015612d6a57506040513d601f19601f82011682018060405250810190612d679190615abd565b60015b612dec573d8060008114612d9a576040519150601f19603f3d011682016040523d82523d6000602084013e612d9f565b606091505b506000815103612de4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ddb906157f9565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050612e41565b600190505b949350505050565b60006a636f6e736f6c652e6c6f679050600080835160208501845afa505050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310612ec8577a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008381612ebe57612ebd615850565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310612f05576d04ee2d6d415b85acef81000000008381612efb57612efa615850565b5b0492506020810190505b662386f26fc100008310612f3457662386f26fc100008381612f2a57612f29615850565b5b0492506010810190505b6305f5e1008310612f5d576305f5e1008381612f5357612f52615850565b5b0492506008810190505b6127108310612f82576127108381612f7857612f77615850565b5b0492506004810190505b60648310612fa55760648381612f9b57612f9a615850565b5b0492506002810190505b600a8310612fb4576001810190505b80915050919050565b612fc98484848461313e565b600181111561300d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161300490615b5c565b60405180910390fd5b6000829050600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036130545761304f81613144565b613093565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161461309257613091858261318d565b5b5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036130d5576130d0816132fa565b613114565b8473ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146131135761311284826133cb565b5b5b5050505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b50505050565b6008805490506009600083815260200190815260200160002081905550600881908060018154018082558091505060019003906000526020600020016000909190919091505550565b6000600161319a84610b2b565b6131a491906151a5565b9050600060076000848152602001908152602001600020549050818114613289576000600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002054905080600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002081905550816007600083815260200190815260200160002081905550505b6007600084815260200190815260200160002060009055600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206000905550505050565b6000600160088054905061330e91906151a5565b905060006009600084815260200190815260200160002054905060006008838154811061333e5761333d61432c565b5b9060005260206000200154905080600883815481106133605761335f61432c565b5b9060005260206000200181905550816009600083815260200190815260200160002081905550600960008581526020019081526020016000206000905560088054806133af576133ae615b7c565b5b6001900381819060005260206000200160009055905550505050565b60006133d683610b2b565b905081600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002081905550806007600084815260200190815260200160002081905550505050565b6040518060600160405280600390602082028036833780820191505090505090565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6134b581613480565b81146134c057600080fd5b50565b6000813590506134d2816134ac565b92915050565b6000602082840312156134ee576134ed613476565b5b60006134fc848285016134c3565b91505092915050565b60008115159050919050565b61351a81613505565b82525050565b60006020820190506135356000830184613511565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561357557808201518184015260208101905061355a565b60008484015250505050565b6000601f19601f8301169050919050565b600061359d8261353b565b6135a78185613546565b93506135b7818560208601613557565b6135c081613581565b840191505092915050565b600060208201905081810360008301526135e58184613592565b905092915050565b6000819050919050565b613600816135ed565b811461360b57600080fd5b50565b60008135905061361d816135f7565b92915050565b60006020828403121561363957613638613476565b5b60006136478482850161360e565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061367b82613650565b9050919050565b61368b81613670565b82525050565b60006020820190506136a66000830184613682565b92915050565b6136b581613670565b81146136c057600080fd5b50565b6000813590506136d2816136ac565b92915050565b600080604083850312156136ef576136ee613476565b5b60006136fd858286016136c3565b925050602061370e8582860161360e565b9150509250929050565b613721816135ed565b82525050565b600060208201905061373c6000830184613718565b92915050565b60008060006060848603121561375b5761375a613476565b5b6000613769868287016136c3565b935050602061377a868287016136c3565b925050604061378b8682870161360e565b9150509250925092565b6000819050919050565b60006137ba6137b56137b084613650565b613795565b613650565b9050919050565b60006137cc8261379f565b9050919050565b60006137de826137c1565b9050919050565b6137ee816137d3565b82525050565b600060208201905061380960008301846137e5565b92915050565b600061381a826137c1565b9050919050565b61382a8161380f565b82525050565b60006020820190506138456000830184613821565b92915050565b60006020828403121561386157613860613476565b5b600061386f848285016136c3565b91505092915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6138b582613581565b810181811067ffffffffffffffff821117156138d4576138d361387d565b5b80604052505050565b60006138e761346c565b90506138f382826138ac565b919050565b600067ffffffffffffffff8211156139135761391261387d565b5b602082029050919050565b600080fd5b6000613936613931846138f8565b6138dd565b905080602084028301858111156139505761394f61391e565b5b835b818110156139795780613965888261360e565b845260208401935050602081019050613952565b5050509392505050565b600082601f83011261399857613997613878565b5b60106139a5848285613923565b91505092915050565b600061020082840312156139c5576139c4613476565b5b60006139d384828501613983565b91505092915050565b600060039050919050565b600081905092915050565b6000819050919050565b613a05816135ed565b82525050565b6000613a1783836139fc565b60208301905092915050565b6000602082019050919050565b613a39816139dc565b613a4381846139e7565b9250613a4e826139f2565b8060005b83811015613a7f578151613a668782613a0b565b9650613a7183613a23565b925050600181019050613a52565b505050505050565b6000606082019050613a9c6000830184613a30565b92915050565b613aab81613505565b8114613ab657600080fd5b50565b600081359050613ac881613aa2565b92915050565b60008060408385031215613ae557613ae4613476565b5b6000613af3858286016136c3565b9250506020613b0485828601613ab9565b9150509250929050565b60006080820190508181036000830152613b288187613592565b9050613b376020830186613718565b613b446040830185613718565b613b516060830184613718565b95945050505050565b600080fd5b600067ffffffffffffffff821115613b7a57613b7961387d565b5b613b8382613581565b9050602081019050919050565b82818337600083830152505050565b6000613bb2613bad84613b5f565b6138dd565b905082815260208101848484011115613bce57613bcd613b5a565b5b613bd9848285613b90565b509392505050565b600082601f830112613bf657613bf5613878565b5b8135613c06848260208601613b9f565b91505092915050565b60008060008060808587031215613c2957613c28613476565b5b6000613c37878288016136c3565b9450506020613c48878288016136c3565b9350506040613c598782880161360e565b925050606085013567ffffffffffffffff811115613c7a57613c7961347b565b5b613c8687828801613be1565b91505092959194509250565b600067ffffffffffffffff821115613cad57613cac61387d565b5b602082029050919050565b6000613ccb613cc684613c92565b6138dd565b90508060208402830185811115613ce557613ce461391e565b5b835b81811015613d0e5780613cfa888261360e565b845260208401935050602081019050613ce7565b5050509392505050565b600082601f830112613d2d57613d2c613878565b5b6002613d3a848285613cb8565b91505092915050565b600067ffffffffffffffff821115613d5e57613d5d61387d565b5b602082029050919050565b6000613d7c613d7784613d43565b6138dd565b90508060408402830185811115613d9657613d9561391e565b5b835b81811015613dbf5780613dab8882613d18565b845260208401935050604081019050613d98565b5050509392505050565b600082601f830112613dde57613ddd613878565b5b6002613deb848285613d69565b91505092915050565b6000806000806103008587031215613e0f57613e0e613476565b5b6000613e1d87828801613d18565b9450506040613e2e87828801613dc9565b93505060c0613e3f87828801613d18565b925050610100613e5187828801613983565b91505092959194509250565b600067ffffffffffffffff821115613e7857613e7761387d565b5b602082029050919050565b6000613e96613e9184613e5d565b6138dd565b90508060208402830185811115613eb057613eaf61391e565b5b835b81811015613ed95780613ec5888261360e565b845260208401935050602081019050613eb2565b5050509392505050565b600082601f830112613ef857613ef7613878565b5b6003613f05848285613e83565b91505092915050565b600060608284031215613f2457613f23613476565b5b6000613f3284828501613ee3565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000613f6282613f3b565b613f6c8185613f46565b9350613f7c818560208601613557565b613f8581613581565b840191505092915050565b60006020820190508181036000830152613faa8184613f57565b905092915050565b60008060408385031215613fc957613fc8613476565b5b6000613fd7858286016136c3565b9250506020613fe8858286016136c3565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061403957607f821691505b60208210810361404c5761404b613ff2565b5b50919050565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b60006140ae602183613546565b91506140b982614052565b604082019050919050565b600060208201905081810360008301526140dd816140a1565b9050919050565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60008201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c000000602082015250565b6000614140603d83613546565b915061414b826140e4565b604082019050919050565b6000602082019050818103600083015261416f81614133565b9050919050565b7f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560008201527f72206f7220617070726f76656400000000000000000000000000000000000000602082015250565b60006141d2602d83613546565b91506141dd82614176565b604082019050919050565b60006020820190508181036000830152614201816141c5565b9050919050565b7f455243373231456e756d657261626c653a206f776e657220696e646578206f7560008201527f74206f6620626f756e6473000000000000000000000000000000000000000000602082015250565b6000614264602b83613546565b915061426f82614208565b604082019050919050565b6000602082019050818103600083015261429381614257565b9050919050565b7f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60008201527f7574206f6620626f756e64730000000000000000000000000000000000000000602082015250565b60006142f6602c83613546565b91506143018261429a565b604082019050919050565b60006020820190508181036000830152614325816142e9565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4552433732313a20696e76616c696420746f6b656e2049440000000000000000600082015250565b6000614391601883613546565b915061439c8261435b565b602082019050919050565b600060208201905081810360008301526143c081614384565b9050919050565b7f4552433732313a2061646472657373207a65726f206973206e6f74206120766160008201527f6c6964206f776e65720000000000000000000000000000000000000000000000602082015250565b6000614423602983613546565b915061442e826143c7565b604082019050919050565b6000602082019050818103600083015261445281614416565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000614493826135ed565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036144c5576144c4614459565b5b600182019050919050565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b600061452c602f83613546565b9150614537826144d0565b604082019050919050565b6000602082019050818103600083015261455b8161451f565b9050919050565b600067ffffffffffffffff82111561457d5761457c61387d565b5b61458682613581565b9050602081019050919050565b60006145a66145a184614562565b6138dd565b9050828152602081018484840111156145c2576145c1613b5a565b5b6145cd848285613557565b509392505050565b600082601f8301126145ea576145e9613878565b5b81516145fa848260208601614593565b91505092915050565b6000806040838503121561461a57614619613476565b5b600083015167ffffffffffffffff8111156146385761463761347b565b5b614644858286016145d5565b925050602083015167ffffffffffffffff8111156146655761466461347b565b5b614671858286016145d5565b9150509250929050565b60006020828403121561469157614690613476565b5b600082015167ffffffffffffffff8111156146af576146ae61347b565b5b6146bb848285016145d5565b91505092915050565b600081905092915050565b7f7b202261747472696275746573223a205b000000000000000000000000000000600082015250565b60006147056011836146c4565b9150614710826146cf565b601182019050919050565b7f7b2274726169745f74797065223a202249737375696e67205374617465222c2060008201527f2276616c7565223a202200000000000000000000000000000000000000000000602082015250565b6000614777602a836146c4565b91506147828261471b565b602a82019050919050565b60006147988261353b565b6147a281856146c4565b93506147b2818560208601613557565b80840191505092915050565b7f227d2c7b2274726169745f74797065223a202246697273744e616d65222c202260008201527f76616c7565223a20220000000000000000000000000000000000000000000000602082015250565b600061481a6029836146c4565b9150614825826147be565b602982019050919050565b7f227d2c7b2274726169745f74797065223a20224c6173744e616d65222c20227660008201527f616c7565223a2022000000000000000000000000000000000000000000000000602082015250565b600061488c6028836146c4565b915061489782614830565b602882019050919050565b7f227d2c7b2274726169745f74797065223a202250617373706f7274204e756d6260008201527f6572222c202276616c7565223a20220000000000000000000000000000000000602082015250565b60006148fe602f836146c4565b9150614909826148a2565b602f82019050919050565b7f227d2c7b2274726169745f74797065223a20224e6174696f6e616c697479222c60008201527f202276616c7565223a2022000000000000000000000000000000000000000000602082015250565b6000614970602b836146c4565b915061497b82614914565b602b82019050919050565b7f227d2c7b2274726169745f74797065223a202244617465206f6620626972746860008201527f222c202276616c7565223a202200000000000000000000000000000000000000602082015250565b60006149e2602d836146c4565b91506149ed82614986565b602d82019050919050565b7f227d2c7b2274726169745f74797065223a202247656e646572222c202276616c60008201527f7565223a20220000000000000000000000000000000000000000000000000000602082015250565b6000614a546026836146c4565b9150614a5f826149f8565b602682019050919050565b7f227d2c7b2274726169745f74797065223a20224578706972792064617465222c60008201527f202276616c7565223a2022000000000000000000000000000000000000000000602082015250565b6000614ac6602b836146c4565b9150614ad182614a6a565b602b82019050919050565b7f227d2c7b2274726169745f74797065223a202245787069726564222c2022766160008201527f6c7565223a202200000000000000000000000000000000000000000000000000602082015250565b6000614b386027836146c4565b9150614b4382614adc565b602782019050919050565b7f227d000000000000000000000000000000000000000000000000000000000000600082015250565b6000614b846002836146c4565b9150614b8f82614b4e565b600282019050919050565b7f5d2c000000000000000000000000000000000000000000000000000000000000600082015250565b6000614bd06002836146c4565b9150614bdb82614b9a565b600282019050919050565b7f226465736372697074696f6e223a202250726f6f66206f662050617373706f7260008201527f742067756172616e7465657320706f7373657373696f6e206f6620612076616c60208201527f69642070617373706f72742e222c2265787465726e616c5f75726c223a20226860408201527f747470733a2f2f6769746875622e636f6d2f7a6b2d70617373706f72742f707260608201527f6f6f662d6f662d70617373706f7274222c22696d616765223a2022687474707360808201527f3a2f2f692e696d6775722e636f6d2f396b766574696a2e706e67222c226e616d60a08201527f65223a202250726f6f66206f662050617373706f72742023000000000000000060c082015250565b6000614d0060d8836146c4565b9150614d0b82614be6565b60d882019050919050565b6000614d21826146f8565b9150614d2c8261476a565b9150614d38828d61478d565b9150614d438261480d565b9150614d4f828c61478d565b9150614d5a8261487f565b9150614d66828b61478d565b9150614d71826148f1565b9150614d7d828a61478d565b9150614d8882614963565b9150614d94828961478d565b9150614d9f826149d5565b9150614dab828861478d565b9150614db682614a47565b9150614dc2828761478d565b9150614dcd82614ab9565b9150614dd9828661478d565b9150614de482614b2b565b9150614df0828561478d565b9150614dfb82614b77565b9150614e0682614bc3565b9150614e1182614cf3565b9150614e1d828461478d565b9150614e2882614b77565b91508190509b9a5050505050505050505050565b7f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c000000600082015250565b6000614e72601d836146c4565b9150614e7d82614e3c565b601d82019050919050565b6000614e9382614e65565b9150614e9f828461478d565b915081905092915050565b600060029050919050565b600081905092915050565b6000819050919050565b6000602082019050919050565b614ee081614eaa565b614eea8184614eb5565b9250614ef582614ec0565b8060005b83811015614f26578151614f0d8782613a0b565b9650614f1883614eca565b925050600181019050614ef9565b505050505050565b600060029050919050565b600081905092915050565b6000819050919050565b600081905092915050565b614f6281614eaa565b614f6c8184614f4e565b9250614f7782614ec0565b8060005b83811015614fa8578151614f8f8782613a0b565b9650614f9a83614eca565b925050600181019050614f7b565b505050505050565b6000614fbc8383614f59565b60408301905092915050565b6000602082019050919050565b614fde81614f2e565b614fe88184614f39565b9250614ff382614f44565b8060005b8381101561502457815161500b8782614fb0565b965061501683614fc8565b925050600181019050614ff7565b505050505050565b600060109050919050565b600081905092915050565b6000819050919050565b6000602082019050919050565b6150628161502c565b61506c8184615037565b925061507782615042565b8060005b838110156150a857815161508f8782613a0b565b965061509a8361504c565b92505060018101905061507b565b505050505050565b6000610300820190506150c66000830187614ed7565b6150d36040830186614fd5565b6150e060c0830185614ed7565b6150ee610100830184615059565b95945050505050565b60008151905061510681613aa2565b92915050565b60006020828403121561512257615121613476565b5b6000615130848285016150f7565b91505092915050565b7f496e76616c69642050726f6f6600000000000000000000000000000000000000600082015250565b600061516f600d83613546565b915061517a82615139565b602082019050919050565b6000602082019050818103600083015261519e81615162565b9050919050565b60006151b0826135ed565b91506151bb836135ed565b92508282039050818111156151d3576151d2614459565b5b92915050565b60006151e4826135ed565b91506151ef836135ed565b925082820190508082111561520757615206614459565b5b92915050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830261526f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82615232565b6152798683615232565b95508019841693508086168417925050509392505050565b60006152ac6152a76152a2846135ed565b613795565b6135ed565b9050919050565b6000819050919050565b6152c683615291565b6152da6152d2826152b3565b84845461523f565b825550505050565b600090565b6152ef6152e2565b6152fa8184846152bd565b505050565b5b8181101561531e576153136000826152e7565b600181019050615300565b5050565b601f821115615363576153348161520d565b61533d84615222565b8101602085101561534c578190505b61536061535885615222565b8301826152ff565b50505b505050565b600082821c905092915050565b600061538660001984600802615368565b1980831691505092915050565b600061539f8383615375565b9150826002028217905092915050565b6153b88261353b565b67ffffffffffffffff8111156153d1576153d061387d565b5b6153db8254614021565b6153e6828285615322565b600060209050601f8311600181146154195760008415615407578287015190505b6154118582615393565b865550615479565b601f1984166154278661520d565b60005b8281101561544f5784890151825560018201915060208501945060208101905061542a565b8683101561546c5784890151615468601f891682615375565b8355505b6001600288020188555050505b505050505050565b600081519050615490816135f7565b92915050565b6000602082840312156154ac576154ab613476565b5b60006154ba84828501615481565b91505092915050565b600060ff82169050919050565b60006154db826154c3565b915060ff82036154ee576154ed614459565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000615555602683613546565b9150615560826154f9565b604082019050919050565b6000602082019050818103600083015261558481615548565b9050919050565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b60006155e7602583613546565b91506155f28261558b565b604082019050919050565b60006020820190508181036000830152615616816155da565b9050919050565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000615679602483613546565b91506156848261561d565b604082019050919050565b600060208201905081810360008301526156a88161566c565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006156e5602083613546565b91506156f0826156af565b602082019050919050565b60006020820190508181036000830152615714816156d8565b9050919050565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b6000615751601983613546565b915061575c8261571b565b602082019050919050565b6000602082019050818103600083015261578081615744565b9050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b60006157e3603283613546565b91506157ee82615787565b604082019050919050565b60006020820190508181036000830152615812816157d6565b9050919050565b600060408201905081810360008301526158338185613592565b905081810360208301526158478184613592565b90509392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061588a826135ed565b9150615895836135ed565b9250826158a5576158a4615850565b5b828204905092915050565b60006158bb826135ed565b91506158c6836135ed565b92508282026158d4816135ed565b915082820484148315176158eb576158ea614459565b5b5092915050565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b6000615928602083613546565b9150615933826158f2565b602082019050919050565b600060208201905081810360008301526159578161591b565b9050919050565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b6000615994601c83613546565b915061599f8261595e565b602082019050919050565b600060208201905081810360008301526159c381615987565b9050919050565b7f43616e6e6f74207472616e73666572202d2050726f6f66206f6620506173737060008201527f6f727420697320736f756c626f756e6400000000000000000000000000000000602082015250565b6000615a26603083613546565b9150615a31826159ca565b604082019050919050565b60006020820190508181036000830152615a5581615a19565b9050919050565b6000608082019050615a716000830187613682565b615a7e6020830186613682565b615a8b6040830185613718565b8181036060830152615a9d8184613f57565b905095945050505050565b600081519050615ab7816134ac565b92915050565b600060208284031215615ad357615ad2613476565b5b6000615ae184828501615aa8565b91505092915050565b7f455243373231456e756d657261626c653a20636f6e736563757469766520747260008201527f616e7366657273206e6f7420737570706f727465640000000000000000000000602082015250565b6000615b46603583613546565b9150615b5182615aea565b604082019050919050565b60006020820190508181036000830152615b7581615b39565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfe4142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2fa2646970667358221220fc7b3e1065ff76ed9c3e55279cd3a205fc1183775e22ad1efea30ad39c94a3cc64736f6c63430008120033",
+ "bytecode": "0x60a06040526000600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503480156200005357600080fd5b5060405162006bbd38038062006bbd8339818101604052810190620000799190620009d1565b6040518060400160405280600f81526020017f50726f6f664f6650617373706f727400000000000000000000000000000000008152506040518060400160405280600f81526020017f50726f6f664f6650617373706f727400000000000000000000000000000000008152508160009081620000f6919062000c92565b50806001908162000108919062000c92565b5050506200012b6200011f620001c960201b60201c565b620001d160201b60201c565b8173ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505080600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620001b06200029760201b60201c565b620001c133620007bd60201b60201c565b505062000e94565b600033905090565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600e60405180608001604052806040518060400160405280600d81526020017f69737375696e675f7374617465000000000000000000000000000000000000008152508152602001600281526020016004815260200160008152509080600181540180825580915050600190039060005260206000209060040201600090919091909150600082015181600001908162000332919062000c92565b506020820151816001015560408201518160020155606082015181600301555050600e60405180608001604052806040518060400160405280600481526020017f6e616d6500000000000000000000000000000000000000000000000000000000815250815260200160058152602001602b8152602001600181525090806001815401808255809150506001900390600052602060002090600402016000909190919091506000820151816000019081620003ee919062000c92565b506020820151816001015560408201518160020155606082015181600301555050600e60405180608001604052806040518060400160405280600f81526020017f70617373706f72745f6e756d62657200000000000000000000000000000000008152508152602001602c815260200160348152602001600281525090806001815401808255809150506001900390600052602060002090600402016000909190919091506000820151816000019081620004aa919062000c92565b506020820151816001015560408201518160020155606082015181600301555050600e60405180608001604052806040518060400160405280600b81526020017f6e6174696f6e616c6974790000000000000000000000000000000000000000008152508152602001603681526020016038815260200160038152509080600181540180825580915050600190039060005260206000209060040201600090919091909150600082015181600001908162000566919062000c92565b506020820151816001015560408201518160020155606082015181600301555050600e60405180608001604052806040518060400160405280600d81526020017f646174655f6f665f626972746800000000000000000000000000000000000000815250815260200160398152602001603e815260200160048152509080600181540180825580915050600190039060005260206000209060040201600090919091909150600082015181600001908162000622919062000c92565b506020820151816001015560408201518160020155606082015181600301555050600e60405180608001604052806040518060400160405280600681526020017f67656e646572000000000000000000000000000000000000000000000000000081525081526020016040815260200160408152602001600581525090806001815401808255809150506001900390600052602060002090600402016000909190919091506000820151816000019081620006de919062000c92565b506020820151816001015560408201518160020155606082015181600301555050600e60405180608001604052806040518060400160405280600b81526020017f6578706972795f64617465000000000000000000000000000000000000000000815250815260200160418152602001604681526020016006815250908060018154018082558091505060019003906000526020600020906004020160009091909190915060008201518160000190816200079a919062000c92565b506020820151816001015560408201518160020155606082015181600301555050565b620007cd6200085360201b60201c565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036200083f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008369062000e00565b60405180910390fd5b6200085081620001d160201b60201c565b50565b62000863620001c960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1662000889620008e460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1614620008e2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008d99062000e72565b60405180910390fd5b565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620009408262000913565b9050919050565b6000620009548262000933565b9050919050565b620009668162000947565b81146200097257600080fd5b50565b60008151905062000986816200095b565b92915050565b6000620009998262000933565b9050919050565b620009ab816200098c565b8114620009b757600080fd5b50565b600081519050620009cb81620009a0565b92915050565b60008060408385031215620009eb57620009ea6200090e565b5b6000620009fb8582860162000975565b925050602062000a0e85828601620009ba565b9150509250929050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000a9a57607f821691505b60208210810362000ab05762000aaf62000a52565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000b1a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000adb565b62000b26868362000adb565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000b7362000b6d62000b678462000b3e565b62000b48565b62000b3e565b9050919050565b6000819050919050565b62000b8f8362000b52565b62000ba762000b9e8262000b7a565b84845462000ae8565b825550505050565b600090565b62000bbe62000baf565b62000bcb81848462000b84565b505050565b5b8181101562000bf35762000be760008262000bb4565b60018101905062000bd1565b5050565b601f82111562000c425762000c0c8162000ab6565b62000c178462000acb565b8101602085101562000c27578190505b62000c3f62000c368562000acb565b83018262000bd0565b50505b505050565b600082821c905092915050565b600062000c676000198460080262000c47565b1980831691505092915050565b600062000c82838362000c54565b9150826002028217905092915050565b62000c9d8262000a18565b67ffffffffffffffff81111562000cb95762000cb862000a23565b5b62000cc5825462000a81565b62000cd282828562000bf7565b600060209050601f83116001811462000d0a576000841562000cf5578287015190505b62000d01858262000c74565b86555062000d71565b601f19841662000d1a8662000ab6565b60005b8281101562000d445784890151825560018201915060208501945060208101905062000d1d565b8683101562000d64578489015162000d60601f89168262000c54565b8355505b6001600288020188555050505b505050505050565b600082825260208201905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600062000de860268362000d79565b915062000df58262000d8a565b604082019050919050565b6000602082019050818103600083015262000e1b8162000dd9565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600062000e5a60208362000d79565b915062000e678262000e22565b602082019050919050565b6000602082019050818103600083015262000e8d8162000e4b565b9050919050565b608051615d0662000eb7600039600081816108db01526115670152615d066000f3fe608060405234801561001057600080fd5b50600436106101cf5760003560e01c8063715018a611610104578063c87b56dd116100a2578063dc54daf011610071578063dc54daf014610569578063e985e9c514610599578063eba11e05146105c9578063f2fde38b146105e7576101cf565b8063c87b56dd146104bd578063d21e82ab146104ed578063d4d9c00f1461051d578063d9548e5314610539576101cf565b806395d89b41116100de57806395d89b4114610434578063a22cb46514610452578063b04e3a3b1461046e578063b88d4fde146104a1576101cf565b8063715018a6146103dc57806376e6a447146103e65780638da5cb5b14610416576101cf565b80632f745c59116101715780634f6ccce71161014b5780634f6ccce71461033057806354f96d52146103605780636352211e1461037c57806370a08231146103ac576101cf565b80632f745c59146102c65780633a41515f146102f657806342842e0e14610314576101cf565b8063095ea7b3116101ad578063095ea7b31461025257806318160ddd1461026e57806323b872dd1461028c5780632b7ac3f3146102a8576101cf565b806301ffc9a7146101d457806306fdde0314610204578063081812fc14610222575b600080fd5b6101ee60048036038101906101e99190613551565b610603565b6040516101fb9190613599565b60405180910390f35b61020c61067d565b6040516102199190613644565b60405180910390f35b61023c6004803603810190610237919061369c565b61070f565b604051610249919061370a565b60405180910390f35b61026c60048036038101906102679190613751565b610755565b005b61027661086c565b60405161028391906137a0565b60405180910390f35b6102a660048036038101906102a191906137bb565b610879565b005b6102b06108d9565b6040516102bd919061386d565b60405180910390f35b6102e060048036038101906102db9190613751565b6108fd565b6040516102ed91906137a0565b60405180910390f35b6102fe6109a2565b60405161030b91906138a9565b60405180910390f35b61032e600480360381019061032991906137bb565b6109c8565b005b61034a6004803603810190610345919061369c565b6109e8565b60405161035791906137a0565b60405180910390f35b61037a600480360381019061037591906138c4565b610a59565b005b6103966004803603810190610391919061369c565b610aa5565b6040516103a3919061370a565b60405180910390f35b6103c660048036038101906103c191906138c4565b610b2b565b6040516103d391906137a0565b60405180910390f35b6103e4610be2565b005b61040060048036038101906103fb9190613a27565b610bf6565b60405161040d9190613b00565b60405180910390f35b61041e610c63565b60405161042b919061370a565b60405180910390f35b61043c610c8d565b6040516104499190613644565b60405180910390f35b61046c60048036038101906104679190613b47565b610d1f565b005b6104886004803603810190610483919061369c565b610d35565b6040516104989493929190613b87565b60405180910390f35b6104bb60048036038101906104b69190613c88565b610dfd565b005b6104d760048036038101906104d2919061369c565b610e5f565b6040516104e49190613644565b60405180910390f35b6105076004803603810190610502919061369c565b6114cc565b6040516105149190613599565b60405180910390f35b61053760048036038101906105329190613e6d565b6114ec565b005b610553600480360381019061054e919061369c565b6119ea565b6040516105609190613599565b60405180910390f35b610583600480360381019061057e9190613f87565b611b9c565b6040516105909190614009565b60405180910390f35b6105b360048036038101906105ae919061402b565b611cfc565b6040516105c09190613599565b60405180910390f35b6105d1611d90565b6040516105de919061370a565b60405180910390f35b61060160048036038101906105fc91906138c4565b611db6565b005b60007f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610676575061067582611e39565b5b9050919050565b60606000805461068c9061409a565b80601f01602080910402602001604051908101604052809291908181526020018280546106b89061409a565b80156107055780601f106106da57610100808354040283529160200191610705565b820191906000526020600020905b8154815290600101906020018083116106e857829003601f168201915b5050505050905090565b600061071a82611f1b565b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061076082610aa5565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107c79061413d565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166107ef611f66565b73ffffffffffffffffffffffffffffffffffffffff16148061081e575061081d81610818611f66565b611cfc565b5b61085d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610854906141cf565b60405180910390fd5b6108678383611f6e565b505050565b6000600880549050905090565b61088a610884611f66565b82612027565b6108c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108c090614261565b60405180910390fd5b6108d48383836120bc565b505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600061090883610b2b565b8210610949576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610940906142f3565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002054905092915050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6109e383838360405180602001604052806000815250610dfd565b505050565b60006109f261086c565b8210610a33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2a90614385565b60405180910390fd5b60088281548110610a4757610a466143a5565b5b90600052602060002001549050919050565b610a616123b5565b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080610ab183612433565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610b22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1990614420565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610b9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b92906144b2565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610bea6123b5565b610bf46000612470565b565b610bfe6134c3565b610c066134c3565b60005b6003811015610c5957838160108110610c2557610c246143a5565b5b6020020151828260038110610c3d57610c3c6143a5565b5b6020020181815250508080610c5190614501565b915050610c09565b5080915050919050565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060018054610c9c9061409a565b80601f0160208091040260200160405190810160405280929190818152602001828054610cc89061409a565b8015610d155780601f10610cea57610100808354040283529160200191610d15565b820191906000526020600020905b815481529060010190602001808311610cf857829003601f168201915b5050505050905090565b610d31610d2a611f66565b8383612536565b5050565b600e8181548110610d4557600080fd5b9060005260206000209060040201600091509050806000018054610d689061409a565b80601f0160208091040260200160405190810160405280929190818152602001828054610d949061409a565b8015610de15780601f10610db657610100808354040283529160200191610de1565b820191906000526020600020905b815481529060010190602001808311610dc457829003601f168201915b5050505050908060010154908060020154908060030154905084565b610e0e610e08611f66565b83612027565b610e4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4490614261565b60405180910390fd5b610e59848484846126a2565b50505050565b6060610e6a826126fe565b610ea9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea0906145bb565b60405180910390fd5b6000600f600084815260200190815260200160002060405180602001604052908160008201600780602002604051908101604052809291906000905b82821015610f88578382018054610efb9061409a565b80601f0160208091040260200160405190810160405280929190818152602001828054610f279061409a565b8015610f745780601f10610f4957610100808354040283529160200191610f74565b820191906000526020600020905b815481529060010190602001808311610f5757829003601f168201915b505050505081526020019060010190610ee5565b50505050815250509050610fed6040518060400160405280601981526020017f49737375696e6720737461746520696e20746f6b656e555249000000000000008152508260000151600060078110610fe357610fe26143a5565b5b602002015161273f565b606080600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630903cd028460000151600160078110611046576110456143a5565b5b60200201516040518263ffffffff1660e01b81526004016110679190613644565b600060405180830381865afa158015611084573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906110ad919061467c565b80925081935050506000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663028143ed856000015160006007811061110d5761110c6143a5565b5b60200201516040518263ffffffff1660e01b815260040161112e9190613644565b600060405180830381865afa15801561114b573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019061117491906146f4565b8383866000015160026007811061118e5761118d6143a5565b5b6020020151600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663028143ed89600001516003600781106111e9576111e86143a5565b5b60200201516040518263ffffffff1660e01b815260040161120a9190613644565b600060405180830381865afa158015611227573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019061125091906146f4565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bb0870ee8a600001516004600781106112a6576112a56143a5565b5b60200201516040518263ffffffff1660e01b81526004016112c79190613644565b600060405180830381865afa1580156112e4573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019061130d91906146f4565b8960000151600560078110611325576113246143a5565b5b6020020151600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bb0870ee8c600001516006600781106113805761137f6143a5565b5b60200201516040518263ffffffff1660e01b81526004016113a19190613644565b600060405180830381865afa1580156113be573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906113e791906146f4565b6113f08e6119ea565b61142f576040518060400160405280600281526020017f4e6f000000000000000000000000000000000000000000000000000000000000815250611466565b6040518060400160405280600381526020017f59657300000000000000000000000000000000000000000000000000000000008152505b61146f8f6127db565b6040516020016114889a99989796959493929190614d8f565b60405160208183030381529060405290506114a2816128a9565b6040516020016114b29190614f01565b604051602081830303815290604052945050505050919050565b600d6020528060005260406000206000915054906101000a900460ff1681565b600d600082600360108110611504576115036143a5565b5b6020020151815260200190815260200160002060009054906101000a900460ff1615611565576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155c90614f6f565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663c82febf5858585856040518563ffffffff1660e01b81526004016115c49493929190615195565b602060405180830381865afa1580156115e1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061160591906151f1565b611644576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163b9061526a565b60405180910390fd5b60008160016010611655919061528a565b60108110611666576116656143a5565b5b60200201519050600061167761086c565b90506116838282612a2d565b6001600d60008560036010811061169d5761169c6143a5565b5b6020020151815260200190815260200160002060006101000a81548160ff02191690831515021790555060006116d284610bf6565b905060006116df82611b9c565b90506000600f6000858152602001908152602001600020905060005b600e805490508110156119de576000600e828154811061171e5761171d6143a5565b5b90600052602060002090600402016040518060800160405290816000820180546117479061409a565b80601f01602080910402602001604051908101604052809291908181526020018280546117739061409a565b80156117c05780601f10611795576101008083540402835291602001916117c0565b820191906000526020600020905b8154815290600101906020018083116117a357829003601f168201915b50505050508152602001600182015481526020016002820154815260200160038201548152505090506000600182602001518360400151611801919061528a565b61180b91906152be565b67ffffffffffffffff811115611824576118236138f6565b5b6040519080825280601f01601f1916602001820160405280156118565781602001600182028036833780820191505090505b5090506000826020015190505b826040015181116118f057858181518110611881576118806143a5565b5b602001015160f81c60f81b8284602001518361189d919061528a565b815181106118ae576118ad6143a5565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535080806118e890614501565b915050611863565b5060008190508085600001856007811061190d5761190c6143a5565b5b01908161191a9190615494565b506119c88360000151866000018660078110611939576119386143a5565b5b0180546119459061409a565b80601f01602080910402602001604051908101604052809291908181526020018280546119719061409a565b80156119be5780601f10611993576101008083540402835291602001916119be565b820191906000526020600020905b8154815290600101906020018083116119a157829003601f168201915b505050505061273f565b50505080806119d690614501565b9150506116fb565b50505050505050505050565b600080600f600084815260200190815260200160002060405180602001604052908160008201600780602002604051908101604052809291906000905b82821015611aca578382018054611a3d9061409a565b80601f0160208091040260200160405190810160405280929190818152602001828054611a699061409a565b8015611ab65780601f10611a8b57610100808354040283529160200191611ab6565b820191906000526020600020905b815481529060010190602001808311611a9957829003601f168201915b505050505081526020019060010190611a27565b505050508152505090506000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fc0bb5d48360000151600660078110611b2c57611b2b6143a5565b5b60200201516040518263ffffffff1660e01b8152600401611b4d9190613644565b602060405180830381865afa158015611b6a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b8e919061557b565b905080421192505050919050565b606060006040518060600160405280601f60ff168152602001601f60ff168152602001601a60ff1681525090506000605867ffffffffffffffff811115611be657611be56138f6565b5b6040519080825280601f01601f191660200182016040528015611c185781602001600182028036833780820191505090505b5090506000805b6003811015611cf0576000868260038110611c3d57611c3c6143a5565b5b6020020151905060005b858360038110611c5a57611c596143a5565b5b602002015160ff168160ff161015611cdb5760ff821660f81b858580611c7f90614501565b965081518110611c9257611c916143a5565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600882901c91508080611cd3906155b5565b915050611c47565b50508080611ce890614501565b915050611c1f565b50819350505050919050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611dbe6123b5565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611e2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2490615650565b60405180910390fd5b611e3681612470565b50565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611f0457507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80611f145750611f1382612c4a565b5b9050919050565b611f24816126fe565b611f63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f5a90614420565b60405180910390fd5b50565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16611fe183610aa5565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60008061203383610aa5565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061207557506120748185611cfc565b5b806120b357508373ffffffffffffffffffffffffffffffffffffffff1661209b8461070f565b73ffffffffffffffffffffffffffffffffffffffff16145b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff166120dc82610aa5565b73ffffffffffffffffffffffffffffffffffffffff1614612132576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612129906156e2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036121a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161219890615774565b60405180910390fd5b6121ae8383836001612cb4565b8273ffffffffffffffffffffffffffffffffffffffff166121ce82610aa5565b73ffffffffffffffffffffffffffffffffffffffff1614612224576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161221b906156e2565b60405180910390fd5b6004600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46123b08383836001612d35565b505050565b6123bd611f66565b73ffffffffffffffffffffffffffffffffffffffff166123db610c63565b73ffffffffffffffffffffffffffffffffffffffff1614612431576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612428906157e0565b60405180910390fd5b565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036125a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161259b9061584c565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516126959190613599565b60405180910390a3505050565b6126ad8484846120bc565b6126b984848484612d3b565b6126f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126ef906158de565b60405180910390fd5b50505050565b60008073ffffffffffffffffffffffffffffffffffffffff1661272083612433565b73ffffffffffffffffffffffffffffffffffffffff1614159050919050565b6127d782826040516024016127559291906158fe565b6040516020818303038152906040527f4b5c4277000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612ec2565b5050565b6060600060016127ea84612ee3565b01905060008167ffffffffffffffff811115612809576128086138f6565b5b6040519080825280601f01601f19166020018201604052801561283b5781602001600182028036833780820191505090505b509050600082602001820190505b60011561289e578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a858161289257612891615935565b5b04945060008503612849575b819350505050919050565b606060008251036128cb57604051806020016040528060008152509050612a28565b6000604051806060016040528060408152602001615c9160409139905060006003600285516128fa91906152be565b6129049190615964565b60046129109190615995565b9050600060208261292191906152be565b67ffffffffffffffff81111561293a576129396138f6565b5b6040519080825280601f01601f19166020018201604052801561296c5781602001600182028036833780820191505090505b509050818152600183018586518101602084015b818310156129e7576003830192508251603f8160121c1685015160f81b8252600182019150603f81600c1c1685015160f81b8252600182019150603f8160061c1685015160f81b8252600182019150603f811685015160f81b825260018201915050612980565b600389510660018114612a015760028114612a1157612a1c565b613d3d60f01b6002830352612a1c565b603d60f81b60018303525b50505050508093505050505b919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612a9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a9390615a23565b60405180910390fd5b612aa5816126fe565b15612ae5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612adc90615a8f565b60405180910390fd5b612af3600083836001612cb4565b612afc816126fe565b15612b3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b3390615a8f565b60405180910390fd5b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4612c46600083836001612d35565b5050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b612cc084848484613036565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614612d2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d2690615b21565b60405180910390fd5b50505050565b50505050565b6000612d5c8473ffffffffffffffffffffffffffffffffffffffff16613194565b15612eb5578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02612d85611f66565b8786866040518563ffffffff1660e01b8152600401612da79493929190615b41565b6020604051808303816000875af1925050508015612de357506040513d601f19601f82011682018060405250810190612de09190615ba2565b60015b612e65573d8060008114612e13576040519150601f19603f3d011682016040523d82523d6000602084013e612e18565b606091505b506000815103612e5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e54906158de565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050612eba565b600190505b949350505050565b60006a636f6e736f6c652e6c6f679050600080835160208501845afa505050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310612f41577a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008381612f3757612f36615935565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310612f7e576d04ee2d6d415b85acef81000000008381612f7457612f73615935565b5b0492506020810190505b662386f26fc100008310612fad57662386f26fc100008381612fa357612fa2615935565b5b0492506010810190505b6305f5e1008310612fd6576305f5e1008381612fcc57612fcb615935565b5b0492506008810190505b6127108310612ffb576127108381612ff157612ff0615935565b5b0492506004810190505b6064831061301e576064838161301457613013615935565b5b0492506002810190505b600a831061302d576001810190505b80915050919050565b613042848484846131b7565b6001811115613086576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161307d90615c41565b60405180910390fd5b6000829050600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036130cd576130c8816131bd565b61310c565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161461310b5761310a8582613206565b5b5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361314e5761314981613373565b61318d565b8473ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161461318c5761318b8482613444565b5b5b5050505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b50505050565b6008805490506009600083815260200190815260200160002081905550600881908060018154018082558091505060019003906000526020600020016000909190919091505550565b6000600161321384610b2b565b61321d919061528a565b9050600060076000848152602001908152602001600020549050818114613302576000600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002054905080600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002081905550816007600083815260200190815260200160002081905550505b6007600084815260200190815260200160002060009055600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206000905550505050565b60006001600880549050613387919061528a565b90506000600960008481526020019081526020016000205490506000600883815481106133b7576133b66143a5565b5b9060005260206000200154905080600883815481106133d9576133d86143a5565b5b90600052602060002001819055508160096000838152602001908152602001600020819055506009600085815260200190815260200160002060009055600880548061342857613427615c61565b5b6001900381819060005260206000200160009055905550505050565b600061344f83610b2b565b905081600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002081905550806007600084815260200190815260200160002081905550505050565b6040518060600160405280600390602082028036833780820191505090505090565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61352e816134f9565b811461353957600080fd5b50565b60008135905061354b81613525565b92915050565b600060208284031215613567576135666134ef565b5b60006135758482850161353c565b91505092915050565b60008115159050919050565b6135938161357e565b82525050565b60006020820190506135ae600083018461358a565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156135ee5780820151818401526020810190506135d3565b60008484015250505050565b6000601f19601f8301169050919050565b6000613616826135b4565b61362081856135bf565b93506136308185602086016135d0565b613639816135fa565b840191505092915050565b6000602082019050818103600083015261365e818461360b565b905092915050565b6000819050919050565b61367981613666565b811461368457600080fd5b50565b60008135905061369681613670565b92915050565b6000602082840312156136b2576136b16134ef565b5b60006136c084828501613687565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006136f4826136c9565b9050919050565b613704816136e9565b82525050565b600060208201905061371f60008301846136fb565b92915050565b61372e816136e9565b811461373957600080fd5b50565b60008135905061374b81613725565b92915050565b60008060408385031215613768576137676134ef565b5b60006137768582860161373c565b925050602061378785828601613687565b9150509250929050565b61379a81613666565b82525050565b60006020820190506137b56000830184613791565b92915050565b6000806000606084860312156137d4576137d36134ef565b5b60006137e28682870161373c565b93505060206137f38682870161373c565b925050604061380486828701613687565b9150509250925092565b6000819050919050565b600061383361382e613829846136c9565b61380e565b6136c9565b9050919050565b600061384582613818565b9050919050565b60006138578261383a565b9050919050565b6138678161384c565b82525050565b6000602082019050613882600083018461385e565b92915050565b60006138938261383a565b9050919050565b6138a381613888565b82525050565b60006020820190506138be600083018461389a565b92915050565b6000602082840312156138da576138d96134ef565b5b60006138e88482850161373c565b91505092915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61392e826135fa565b810181811067ffffffffffffffff8211171561394d5761394c6138f6565b5b80604052505050565b60006139606134e5565b905061396c8282613925565b919050565b600067ffffffffffffffff82111561398c5761398b6138f6565b5b602082029050919050565b600080fd5b60006139af6139aa84613971565b613956565b905080602084028301858111156139c9576139c8613997565b5b835b818110156139f257806139de8882613687565b8452602084019350506020810190506139cb565b5050509392505050565b600082601f830112613a1157613a106138f1565b5b6010613a1e84828561399c565b91505092915050565b60006102008284031215613a3e57613a3d6134ef565b5b6000613a4c848285016139fc565b91505092915050565b600060039050919050565b600081905092915050565b6000819050919050565b613a7e81613666565b82525050565b6000613a908383613a75565b60208301905092915050565b6000602082019050919050565b613ab281613a55565b613abc8184613a60565b9250613ac782613a6b565b8060005b83811015613af8578151613adf8782613a84565b9650613aea83613a9c565b925050600181019050613acb565b505050505050565b6000606082019050613b156000830184613aa9565b92915050565b613b248161357e565b8114613b2f57600080fd5b50565b600081359050613b4181613b1b565b92915050565b60008060408385031215613b5e57613b5d6134ef565b5b6000613b6c8582860161373c565b9250506020613b7d85828601613b32565b9150509250929050565b60006080820190508181036000830152613ba1818761360b565b9050613bb06020830186613791565b613bbd6040830185613791565b613bca6060830184613791565b95945050505050565b600080fd5b600067ffffffffffffffff821115613bf357613bf26138f6565b5b613bfc826135fa565b9050602081019050919050565b82818337600083830152505050565b6000613c2b613c2684613bd8565b613956565b905082815260208101848484011115613c4757613c46613bd3565b5b613c52848285613c09565b509392505050565b600082601f830112613c6f57613c6e6138f1565b5b8135613c7f848260208601613c18565b91505092915050565b60008060008060808587031215613ca257613ca16134ef565b5b6000613cb08782880161373c565b9450506020613cc18782880161373c565b9350506040613cd287828801613687565b925050606085013567ffffffffffffffff811115613cf357613cf26134f4565b5b613cff87828801613c5a565b91505092959194509250565b600067ffffffffffffffff821115613d2657613d256138f6565b5b602082029050919050565b6000613d44613d3f84613d0b565b613956565b90508060208402830185811115613d5e57613d5d613997565b5b835b81811015613d875780613d738882613687565b845260208401935050602081019050613d60565b5050509392505050565b600082601f830112613da657613da56138f1565b5b6002613db3848285613d31565b91505092915050565b600067ffffffffffffffff821115613dd757613dd66138f6565b5b602082029050919050565b6000613df5613df084613dbc565b613956565b90508060408402830185811115613e0f57613e0e613997565b5b835b81811015613e385780613e248882613d91565b845260208401935050604081019050613e11565b5050509392505050565b600082601f830112613e5757613e566138f1565b5b6002613e64848285613de2565b91505092915050565b6000806000806103008587031215613e8857613e876134ef565b5b6000613e9687828801613d91565b9450506040613ea787828801613e42565b93505060c0613eb887828801613d91565b925050610100613eca878288016139fc565b91505092959194509250565b600067ffffffffffffffff821115613ef157613ef06138f6565b5b602082029050919050565b6000613f0f613f0a84613ed6565b613956565b90508060208402830185811115613f2957613f28613997565b5b835b81811015613f525780613f3e8882613687565b845260208401935050602081019050613f2b565b5050509392505050565b600082601f830112613f7157613f706138f1565b5b6003613f7e848285613efc565b91505092915050565b600060608284031215613f9d57613f9c6134ef565b5b6000613fab84828501613f5c565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000613fdb82613fb4565b613fe58185613fbf565b9350613ff58185602086016135d0565b613ffe816135fa565b840191505092915050565b600060208201905081810360008301526140238184613fd0565b905092915050565b60008060408385031215614042576140416134ef565b5b60006140508582860161373c565b92505060206140618582860161373c565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806140b257607f821691505b6020821081036140c5576140c461406b565b5b50919050565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b60006141276021836135bf565b9150614132826140cb565b604082019050919050565b600060208201905081810360008301526141568161411a565b9050919050565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60008201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c000000602082015250565b60006141b9603d836135bf565b91506141c48261415d565b604082019050919050565b600060208201905081810360008301526141e8816141ac565b9050919050565b7f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560008201527f72206f7220617070726f76656400000000000000000000000000000000000000602082015250565b600061424b602d836135bf565b9150614256826141ef565b604082019050919050565b6000602082019050818103600083015261427a8161423e565b9050919050565b7f455243373231456e756d657261626c653a206f776e657220696e646578206f7560008201527f74206f6620626f756e6473000000000000000000000000000000000000000000602082015250565b60006142dd602b836135bf565b91506142e882614281565b604082019050919050565b6000602082019050818103600083015261430c816142d0565b9050919050565b7f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60008201527f7574206f6620626f756e64730000000000000000000000000000000000000000602082015250565b600061436f602c836135bf565b915061437a82614313565b604082019050919050565b6000602082019050818103600083015261439e81614362565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4552433732313a20696e76616c696420746f6b656e2049440000000000000000600082015250565b600061440a6018836135bf565b9150614415826143d4565b602082019050919050565b60006020820190508181036000830152614439816143fd565b9050919050565b7f4552433732313a2061646472657373207a65726f206973206e6f74206120766160008201527f6c6964206f776e65720000000000000000000000000000000000000000000000602082015250565b600061449c6029836135bf565b91506144a782614440565b604082019050919050565b600060208201905081810360008301526144cb8161448f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061450c82613666565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361453e5761453d6144d2565b5b600182019050919050565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b60006145a5602f836135bf565b91506145b082614549565b604082019050919050565b600060208201905081810360008301526145d481614598565b9050919050565b600067ffffffffffffffff8211156145f6576145f56138f6565b5b6145ff826135fa565b9050602081019050919050565b600061461f61461a846145db565b613956565b90508281526020810184848401111561463b5761463a613bd3565b5b6146468482856135d0565b509392505050565b600082601f830112614663576146626138f1565b5b815161467384826020860161460c565b91505092915050565b60008060408385031215614693576146926134ef565b5b600083015167ffffffffffffffff8111156146b1576146b06134f4565b5b6146bd8582860161464e565b925050602083015167ffffffffffffffff8111156146de576146dd6134f4565b5b6146ea8582860161464e565b9150509250929050565b60006020828403121561470a576147096134ef565b5b600082015167ffffffffffffffff811115614728576147276134f4565b5b6147348482850161464e565b91505092915050565b600081905092915050565b7f7b202261747472696275746573223a205b000000000000000000000000000000600082015250565b600061477e60118361473d565b915061478982614748565b601182019050919050565b7f7b2274726169745f74797065223a202249737375696e67205374617465222c2060008201527f2276616c7565223a202200000000000000000000000000000000000000000000602082015250565b60006147f0602a8361473d565b91506147fb82614794565b602a82019050919050565b6000614811826135b4565b61481b818561473d565b935061482b8185602086016135d0565b80840191505092915050565b7f227d2c7b2274726169745f74797065223a202246697273744e616d65222c202260008201527f76616c7565223a20220000000000000000000000000000000000000000000000602082015250565b600061489360298361473d565b915061489e82614837565b602982019050919050565b7f227d2c7b2274726169745f74797065223a20224c6173744e616d65222c20227660008201527f616c7565223a2022000000000000000000000000000000000000000000000000602082015250565b600061490560288361473d565b9150614910826148a9565b602882019050919050565b7f227d2c7b2274726169745f74797065223a202250617373706f7274204e756d6260008201527f6572222c202276616c7565223a20220000000000000000000000000000000000602082015250565b6000614977602f8361473d565b91506149828261491b565b602f82019050919050565b7f227d2c7b2274726169745f74797065223a20224e6174696f6e616c697479222c60008201527f202276616c7565223a2022000000000000000000000000000000000000000000602082015250565b60006149e9602b8361473d565b91506149f48261498d565b602b82019050919050565b7f227d2c7b2274726169745f74797065223a202244617465206f6620626972746860008201527f222c202276616c7565223a202200000000000000000000000000000000000000602082015250565b6000614a5b602d8361473d565b9150614a66826149ff565b602d82019050919050565b7f227d2c7b2274726169745f74797065223a202247656e646572222c202276616c60008201527f7565223a20220000000000000000000000000000000000000000000000000000602082015250565b6000614acd60268361473d565b9150614ad882614a71565b602682019050919050565b7f227d2c7b2274726169745f74797065223a20224578706972792064617465222c60008201527f202276616c7565223a2022000000000000000000000000000000000000000000602082015250565b6000614b3f602b8361473d565b9150614b4a82614ae3565b602b82019050919050565b7f227d2c7b2274726169745f74797065223a202245787069726564222c2022766160008201527f6c7565223a202200000000000000000000000000000000000000000000000000602082015250565b6000614bb160278361473d565b9150614bbc82614b55565b602782019050919050565b7f227d000000000000000000000000000000000000000000000000000000000000600082015250565b6000614bfd60028361473d565b9150614c0882614bc7565b600282019050919050565b7f5d2c000000000000000000000000000000000000000000000000000000000000600082015250565b6000614c4960028361473d565b9150614c5482614c13565b600282019050919050565b7f226465736372697074696f6e223a202250726f6f66206f662050617373706f7260008201527f742067756172616e7465657320706f7373657373696f6e206f6620612076616c60208201527f69642070617373706f72742e222c2265787465726e616c5f75726c223a20226860408201527f747470733a2f2f6769746875622e636f6d2f7a6b2d70617373706f72742f707260608201527f6f6f662d6f662d70617373706f7274222c22696d616765223a2022687474707360808201527f3a2f2f692e696d6775722e636f6d2f396b766574696a2e706e67222c226e616d60a08201527f65223a202250726f6f66206f662050617373706f72742023000000000000000060c082015250565b6000614d7960d88361473d565b9150614d8482614c5f565b60d882019050919050565b6000614d9a82614771565b9150614da5826147e3565b9150614db1828d614806565b9150614dbc82614886565b9150614dc8828c614806565b9150614dd3826148f8565b9150614ddf828b614806565b9150614dea8261496a565b9150614df6828a614806565b9150614e01826149dc565b9150614e0d8289614806565b9150614e1882614a4e565b9150614e248288614806565b9150614e2f82614ac0565b9150614e3b8287614806565b9150614e4682614b32565b9150614e528286614806565b9150614e5d82614ba4565b9150614e698285614806565b9150614e7482614bf0565b9150614e7f82614c3c565b9150614e8a82614d6c565b9150614e968284614806565b9150614ea182614bf0565b91508190509b9a5050505050505050505050565b7f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c000000600082015250565b6000614eeb601d8361473d565b9150614ef682614eb5565b601d82019050919050565b6000614f0c82614ede565b9150614f188284614806565b915081905092915050565b7f5369676e617475726520616c7265616479206e756c6c69666965640000000000600082015250565b6000614f59601b836135bf565b9150614f6482614f23565b602082019050919050565b60006020820190508181036000830152614f8881614f4c565b9050919050565b600060029050919050565b600081905092915050565b6000819050919050565b6000602082019050919050565b614fc581614f8f565b614fcf8184614f9a565b9250614fda82614fa5565b8060005b8381101561500b578151614ff28782613a84565b9650614ffd83614faf565b925050600181019050614fde565b505050505050565b600060029050919050565b600081905092915050565b6000819050919050565b600081905092915050565b61504781614f8f565b6150518184615033565b925061505c82614fa5565b8060005b8381101561508d5781516150748782613a84565b965061507f83614faf565b925050600181019050615060565b505050505050565b60006150a1838361503e565b60408301905092915050565b6000602082019050919050565b6150c381615013565b6150cd818461501e565b92506150d882615029565b8060005b838110156151095781516150f08782615095565b96506150fb836150ad565b9250506001810190506150dc565b505050505050565b600060109050919050565b600081905092915050565b6000819050919050565b6000602082019050919050565b61514781615111565b615151818461511c565b925061515c82615127565b8060005b8381101561518d5781516151748782613a84565b965061517f83615131565b925050600181019050615160565b505050505050565b6000610300820190506151ab6000830187614fbc565b6151b860408301866150ba565b6151c560c0830185614fbc565b6151d361010083018461513e565b95945050505050565b6000815190506151eb81613b1b565b92915050565b600060208284031215615207576152066134ef565b5b6000615215848285016151dc565b91505092915050565b7f496e76616c69642050726f6f6600000000000000000000000000000000000000600082015250565b6000615254600d836135bf565b915061525f8261521e565b602082019050919050565b6000602082019050818103600083015261528381615247565b9050919050565b600061529582613666565b91506152a083613666565b92508282039050818111156152b8576152b76144d2565b5b92915050565b60006152c982613666565b91506152d483613666565b92508282019050808211156152ec576152eb6144d2565b5b92915050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026153547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82615317565b61535e8683615317565b95508019841693508086168417925050509392505050565b600061539161538c61538784613666565b61380e565b613666565b9050919050565b6000819050919050565b6153ab83615376565b6153bf6153b782615398565b848454615324565b825550505050565b600090565b6153d46153c7565b6153df8184846153a2565b505050565b5b81811015615403576153f86000826153cc565b6001810190506153e5565b5050565b601f82111561544857615419816152f2565b61542284615307565b81016020851015615431578190505b61544561543d85615307565b8301826153e4565b50505b505050565b600082821c905092915050565b600061546b6000198460080261544d565b1980831691505092915050565b6000615484838361545a565b9150826002028217905092915050565b61549d826135b4565b67ffffffffffffffff8111156154b6576154b56138f6565b5b6154c0825461409a565b6154cb828285615407565b600060209050601f8311600181146154fe57600084156154ec578287015190505b6154f68582615478565b86555061555e565b601f19841661550c866152f2565b60005b828110156155345784890151825560018201915060208501945060208101905061550f565b86831015615551578489015161554d601f89168261545a565b8355505b6001600288020188555050505b505050505050565b60008151905061557581613670565b92915050565b600060208284031215615591576155906134ef565b5b600061559f84828501615566565b91505092915050565b600060ff82169050919050565b60006155c0826155a8565b915060ff82036155d3576155d26144d2565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061563a6026836135bf565b9150615645826155de565b604082019050919050565b600060208201905081810360008301526156698161562d565b9050919050565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b60006156cc6025836135bf565b91506156d782615670565b604082019050919050565b600060208201905081810360008301526156fb816156bf565b9050919050565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061575e6024836135bf565b915061576982615702565b604082019050919050565b6000602082019050818103600083015261578d81615751565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006157ca6020836135bf565b91506157d582615794565b602082019050919050565b600060208201905081810360008301526157f9816157bd565b9050919050565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b60006158366019836135bf565b915061584182615800565b602082019050919050565b6000602082019050818103600083015261586581615829565b9050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b60006158c86032836135bf565b91506158d38261586c565b604082019050919050565b600060208201905081810360008301526158f7816158bb565b9050919050565b60006040820190508181036000830152615918818561360b565b9050818103602083015261592c818461360b565b90509392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061596f82613666565b915061597a83613666565b92508261598a57615989615935565b5b828204905092915050565b60006159a082613666565b91506159ab83613666565b92508282026159b981613666565b915082820484148315176159d0576159cf6144d2565b5b5092915050565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b6000615a0d6020836135bf565b9150615a18826159d7565b602082019050919050565b60006020820190508181036000830152615a3c81615a00565b9050919050565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b6000615a79601c836135bf565b9150615a8482615a43565b602082019050919050565b60006020820190508181036000830152615aa881615a6c565b9050919050565b7f43616e6e6f74207472616e73666572202d2050726f6f66206f6620506173737060008201527f6f727420697320736f756c626f756e6400000000000000000000000000000000602082015250565b6000615b0b6030836135bf565b9150615b1682615aaf565b604082019050919050565b60006020820190508181036000830152615b3a81615afe565b9050919050565b6000608082019050615b5660008301876136fb565b615b6360208301866136fb565b615b706040830185613791565b8181036060830152615b828184613fd0565b905095945050505050565b600081519050615b9c81613525565b92915050565b600060208284031215615bb857615bb76134ef565b5b6000615bc684828501615b8d565b91505092915050565b7f455243373231456e756d657261626c653a20636f6e736563757469766520747260008201527f616e7366657273206e6f7420737570706f727465640000000000000000000000602082015250565b6000615c2b6035836135bf565b9150615c3682615bcf565b604082019050919050565b60006020820190508181036000830152615c5a81615c1e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfe4142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2fa2646970667358221220fef4d2bd805817fccea2e50e7cba6d5947b65319eed8284ae10c75fd49f3cabd64736f6c63430008120033",
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101cf5760003560e01c8063715018a611610104578063c87b56dd116100a2578063dc54daf011610071578063dc54daf014610569578063e985e9c514610599578063eba11e05146105c9578063f2fde38b146105e7576101cf565b8063c87b56dd146104bd578063d21e82ab146104ed578063d4d9c00f1461051d578063d9548e5314610539576101cf565b806395d89b41116100de57806395d89b4114610434578063a22cb46514610452578063b04e3a3b1461046e578063b88d4fde146104a1576101cf565b8063715018a6146103dc57806376e6a447146103e65780638da5cb5b14610416576101cf565b80632f745c59116101715780634f6ccce71161014b5780634f6ccce71461033057806354f96d52146103605780636352211e1461037c57806370a08231146103ac576101cf565b80632f745c59146102c65780633a41515f146102f657806342842e0e14610314576101cf565b8063095ea7b3116101ad578063095ea7b31461025257806318160ddd1461026e57806323b872dd1461028c5780632b7ac3f3146102a8576101cf565b806301ffc9a7146101d457806306fdde0314610204578063081812fc14610222575b600080fd5b6101ee60048036038101906101e99190613551565b610603565b6040516101fb9190613599565b60405180910390f35b61020c61067d565b6040516102199190613644565b60405180910390f35b61023c6004803603810190610237919061369c565b61070f565b604051610249919061370a565b60405180910390f35b61026c60048036038101906102679190613751565b610755565b005b61027661086c565b60405161028391906137a0565b60405180910390f35b6102a660048036038101906102a191906137bb565b610879565b005b6102b06108d9565b6040516102bd919061386d565b60405180910390f35b6102e060048036038101906102db9190613751565b6108fd565b6040516102ed91906137a0565b60405180910390f35b6102fe6109a2565b60405161030b91906138a9565b60405180910390f35b61032e600480360381019061032991906137bb565b6109c8565b005b61034a6004803603810190610345919061369c565b6109e8565b60405161035791906137a0565b60405180910390f35b61037a600480360381019061037591906138c4565b610a59565b005b6103966004803603810190610391919061369c565b610aa5565b6040516103a3919061370a565b60405180910390f35b6103c660048036038101906103c191906138c4565b610b2b565b6040516103d391906137a0565b60405180910390f35b6103e4610be2565b005b61040060048036038101906103fb9190613a27565b610bf6565b60405161040d9190613b00565b60405180910390f35b61041e610c63565b60405161042b919061370a565b60405180910390f35b61043c610c8d565b6040516104499190613644565b60405180910390f35b61046c60048036038101906104679190613b47565b610d1f565b005b6104886004803603810190610483919061369c565b610d35565b6040516104989493929190613b87565b60405180910390f35b6104bb60048036038101906104b69190613c88565b610dfd565b005b6104d760048036038101906104d2919061369c565b610e5f565b6040516104e49190613644565b60405180910390f35b6105076004803603810190610502919061369c565b6114cc565b6040516105149190613599565b60405180910390f35b61053760048036038101906105329190613e6d565b6114ec565b005b610553600480360381019061054e919061369c565b6119ea565b6040516105609190613599565b60405180910390f35b610583600480360381019061057e9190613f87565b611b9c565b6040516105909190614009565b60405180910390f35b6105b360048036038101906105ae919061402b565b611cfc565b6040516105c09190613599565b60405180910390f35b6105d1611d90565b6040516105de919061370a565b60405180910390f35b61060160048036038101906105fc91906138c4565b611db6565b005b60007f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610676575061067582611e39565b5b9050919050565b60606000805461068c9061409a565b80601f01602080910402602001604051908101604052809291908181526020018280546106b89061409a565b80156107055780601f106106da57610100808354040283529160200191610705565b820191906000526020600020905b8154815290600101906020018083116106e857829003601f168201915b5050505050905090565b600061071a82611f1b565b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061076082610aa5565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107c79061413d565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166107ef611f66565b73ffffffffffffffffffffffffffffffffffffffff16148061081e575061081d81610818611f66565b611cfc565b5b61085d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610854906141cf565b60405180910390fd5b6108678383611f6e565b505050565b6000600880549050905090565b61088a610884611f66565b82612027565b6108c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108c090614261565b60405180910390fd5b6108d48383836120bc565b505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600061090883610b2b565b8210610949576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610940906142f3565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002054905092915050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6109e383838360405180602001604052806000815250610dfd565b505050565b60006109f261086c565b8210610a33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2a90614385565b60405180910390fd5b60088281548110610a4757610a466143a5565b5b90600052602060002001549050919050565b610a616123b5565b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080610ab183612433565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610b22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1990614420565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610b9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b92906144b2565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610bea6123b5565b610bf46000612470565b565b610bfe6134c3565b610c066134c3565b60005b6003811015610c5957838160108110610c2557610c246143a5565b5b6020020151828260038110610c3d57610c3c6143a5565b5b6020020181815250508080610c5190614501565b915050610c09565b5080915050919050565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060018054610c9c9061409a565b80601f0160208091040260200160405190810160405280929190818152602001828054610cc89061409a565b8015610d155780601f10610cea57610100808354040283529160200191610d15565b820191906000526020600020905b815481529060010190602001808311610cf857829003601f168201915b5050505050905090565b610d31610d2a611f66565b8383612536565b5050565b600e8181548110610d4557600080fd5b9060005260206000209060040201600091509050806000018054610d689061409a565b80601f0160208091040260200160405190810160405280929190818152602001828054610d949061409a565b8015610de15780601f10610db657610100808354040283529160200191610de1565b820191906000526020600020905b815481529060010190602001808311610dc457829003601f168201915b5050505050908060010154908060020154908060030154905084565b610e0e610e08611f66565b83612027565b610e4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4490614261565b60405180910390fd5b610e59848484846126a2565b50505050565b6060610e6a826126fe565b610ea9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea0906145bb565b60405180910390fd5b6000600f600084815260200190815260200160002060405180602001604052908160008201600780602002604051908101604052809291906000905b82821015610f88578382018054610efb9061409a565b80601f0160208091040260200160405190810160405280929190818152602001828054610f279061409a565b8015610f745780601f10610f4957610100808354040283529160200191610f74565b820191906000526020600020905b815481529060010190602001808311610f5757829003601f168201915b505050505081526020019060010190610ee5565b50505050815250509050610fed6040518060400160405280601981526020017f49737375696e6720737461746520696e20746f6b656e555249000000000000008152508260000151600060078110610fe357610fe26143a5565b5b602002015161273f565b606080600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630903cd028460000151600160078110611046576110456143a5565b5b60200201516040518263ffffffff1660e01b81526004016110679190613644565b600060405180830381865afa158015611084573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906110ad919061467c565b80925081935050506000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663028143ed856000015160006007811061110d5761110c6143a5565b5b60200201516040518263ffffffff1660e01b815260040161112e9190613644565b600060405180830381865afa15801561114b573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019061117491906146f4565b8383866000015160026007811061118e5761118d6143a5565b5b6020020151600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663028143ed89600001516003600781106111e9576111e86143a5565b5b60200201516040518263ffffffff1660e01b815260040161120a9190613644565b600060405180830381865afa158015611227573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019061125091906146f4565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bb0870ee8a600001516004600781106112a6576112a56143a5565b5b60200201516040518263ffffffff1660e01b81526004016112c79190613644565b600060405180830381865afa1580156112e4573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019061130d91906146f4565b8960000151600560078110611325576113246143a5565b5b6020020151600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bb0870ee8c600001516006600781106113805761137f6143a5565b5b60200201516040518263ffffffff1660e01b81526004016113a19190613644565b600060405180830381865afa1580156113be573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906113e791906146f4565b6113f08e6119ea565b61142f576040518060400160405280600281526020017f4e6f000000000000000000000000000000000000000000000000000000000000815250611466565b6040518060400160405280600381526020017f59657300000000000000000000000000000000000000000000000000000000008152505b61146f8f6127db565b6040516020016114889a99989796959493929190614d8f565b60405160208183030381529060405290506114a2816128a9565b6040516020016114b29190614f01565b604051602081830303815290604052945050505050919050565b600d6020528060005260406000206000915054906101000a900460ff1681565b600d600082600360108110611504576115036143a5565b5b6020020151815260200190815260200160002060009054906101000a900460ff1615611565576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155c90614f6f565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663c82febf5858585856040518563ffffffff1660e01b81526004016115c49493929190615195565b602060405180830381865afa1580156115e1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061160591906151f1565b611644576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163b9061526a565b60405180910390fd5b60008160016010611655919061528a565b60108110611666576116656143a5565b5b60200201519050600061167761086c565b90506116838282612a2d565b6001600d60008560036010811061169d5761169c6143a5565b5b6020020151815260200190815260200160002060006101000a81548160ff02191690831515021790555060006116d284610bf6565b905060006116df82611b9c565b90506000600f6000858152602001908152602001600020905060005b600e805490508110156119de576000600e828154811061171e5761171d6143a5565b5b90600052602060002090600402016040518060800160405290816000820180546117479061409a565b80601f01602080910402602001604051908101604052809291908181526020018280546117739061409a565b80156117c05780601f10611795576101008083540402835291602001916117c0565b820191906000526020600020905b8154815290600101906020018083116117a357829003601f168201915b50505050508152602001600182015481526020016002820154815260200160038201548152505090506000600182602001518360400151611801919061528a565b61180b91906152be565b67ffffffffffffffff811115611824576118236138f6565b5b6040519080825280601f01601f1916602001820160405280156118565781602001600182028036833780820191505090505b5090506000826020015190505b826040015181116118f057858181518110611881576118806143a5565b5b602001015160f81c60f81b8284602001518361189d919061528a565b815181106118ae576118ad6143a5565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535080806118e890614501565b915050611863565b5060008190508085600001856007811061190d5761190c6143a5565b5b01908161191a9190615494565b506119c88360000151866000018660078110611939576119386143a5565b5b0180546119459061409a565b80601f01602080910402602001604051908101604052809291908181526020018280546119719061409a565b80156119be5780601f10611993576101008083540402835291602001916119be565b820191906000526020600020905b8154815290600101906020018083116119a157829003601f168201915b505050505061273f565b50505080806119d690614501565b9150506116fb565b50505050505050505050565b600080600f600084815260200190815260200160002060405180602001604052908160008201600780602002604051908101604052809291906000905b82821015611aca578382018054611a3d9061409a565b80601f0160208091040260200160405190810160405280929190818152602001828054611a699061409a565b8015611ab65780601f10611a8b57610100808354040283529160200191611ab6565b820191906000526020600020905b815481529060010190602001808311611a9957829003601f168201915b505050505081526020019060010190611a27565b505050508152505090506000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fc0bb5d48360000151600660078110611b2c57611b2b6143a5565b5b60200201516040518263ffffffff1660e01b8152600401611b4d9190613644565b602060405180830381865afa158015611b6a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b8e919061557b565b905080421192505050919050565b606060006040518060600160405280601f60ff168152602001601f60ff168152602001601a60ff1681525090506000605867ffffffffffffffff811115611be657611be56138f6565b5b6040519080825280601f01601f191660200182016040528015611c185781602001600182028036833780820191505090505b5090506000805b6003811015611cf0576000868260038110611c3d57611c3c6143a5565b5b6020020151905060005b858360038110611c5a57611c596143a5565b5b602002015160ff168160ff161015611cdb5760ff821660f81b858580611c7f90614501565b965081518110611c9257611c916143a5565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600882901c91508080611cd3906155b5565b915050611c47565b50508080611ce890614501565b915050611c1f565b50819350505050919050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611dbe6123b5565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611e2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2490615650565b60405180910390fd5b611e3681612470565b50565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611f0457507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80611f145750611f1382612c4a565b5b9050919050565b611f24816126fe565b611f63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f5a90614420565b60405180910390fd5b50565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16611fe183610aa5565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60008061203383610aa5565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061207557506120748185611cfc565b5b806120b357508373ffffffffffffffffffffffffffffffffffffffff1661209b8461070f565b73ffffffffffffffffffffffffffffffffffffffff16145b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff166120dc82610aa5565b73ffffffffffffffffffffffffffffffffffffffff1614612132576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612129906156e2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036121a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161219890615774565b60405180910390fd5b6121ae8383836001612cb4565b8273ffffffffffffffffffffffffffffffffffffffff166121ce82610aa5565b73ffffffffffffffffffffffffffffffffffffffff1614612224576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161221b906156e2565b60405180910390fd5b6004600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46123b08383836001612d35565b505050565b6123bd611f66565b73ffffffffffffffffffffffffffffffffffffffff166123db610c63565b73ffffffffffffffffffffffffffffffffffffffff1614612431576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612428906157e0565b60405180910390fd5b565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036125a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161259b9061584c565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516126959190613599565b60405180910390a3505050565b6126ad8484846120bc565b6126b984848484612d3b565b6126f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126ef906158de565b60405180910390fd5b50505050565b60008073ffffffffffffffffffffffffffffffffffffffff1661272083612433565b73ffffffffffffffffffffffffffffffffffffffff1614159050919050565b6127d782826040516024016127559291906158fe565b6040516020818303038152906040527f4b5c4277000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612ec2565b5050565b6060600060016127ea84612ee3565b01905060008167ffffffffffffffff811115612809576128086138f6565b5b6040519080825280601f01601f19166020018201604052801561283b5781602001600182028036833780820191505090505b509050600082602001820190505b60011561289e578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a858161289257612891615935565b5b04945060008503612849575b819350505050919050565b606060008251036128cb57604051806020016040528060008152509050612a28565b6000604051806060016040528060408152602001615c9160409139905060006003600285516128fa91906152be565b6129049190615964565b60046129109190615995565b9050600060208261292191906152be565b67ffffffffffffffff81111561293a576129396138f6565b5b6040519080825280601f01601f19166020018201604052801561296c5781602001600182028036833780820191505090505b509050818152600183018586518101602084015b818310156129e7576003830192508251603f8160121c1685015160f81b8252600182019150603f81600c1c1685015160f81b8252600182019150603f8160061c1685015160f81b8252600182019150603f811685015160f81b825260018201915050612980565b600389510660018114612a015760028114612a1157612a1c565b613d3d60f01b6002830352612a1c565b603d60f81b60018303525b50505050508093505050505b919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612a9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a9390615a23565b60405180910390fd5b612aa5816126fe565b15612ae5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612adc90615a8f565b60405180910390fd5b612af3600083836001612cb4565b612afc816126fe565b15612b3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b3390615a8f565b60405180910390fd5b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4612c46600083836001612d35565b5050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b612cc084848484613036565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614612d2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d2690615b21565b60405180910390fd5b50505050565b50505050565b6000612d5c8473ffffffffffffffffffffffffffffffffffffffff16613194565b15612eb5578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02612d85611f66565b8786866040518563ffffffff1660e01b8152600401612da79493929190615b41565b6020604051808303816000875af1925050508015612de357506040513d601f19601f82011682018060405250810190612de09190615ba2565b60015b612e65573d8060008114612e13576040519150601f19603f3d011682016040523d82523d6000602084013e612e18565b606091505b506000815103612e5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e54906158de565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050612eba565b600190505b949350505050565b60006a636f6e736f6c652e6c6f679050600080835160208501845afa505050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310612f41577a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008381612f3757612f36615935565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310612f7e576d04ee2d6d415b85acef81000000008381612f7457612f73615935565b5b0492506020810190505b662386f26fc100008310612fad57662386f26fc100008381612fa357612fa2615935565b5b0492506010810190505b6305f5e1008310612fd6576305f5e1008381612fcc57612fcb615935565b5b0492506008810190505b6127108310612ffb576127108381612ff157612ff0615935565b5b0492506004810190505b6064831061301e576064838161301457613013615935565b5b0492506002810190505b600a831061302d576001810190505b80915050919050565b613042848484846131b7565b6001811115613086576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161307d90615c41565b60405180910390fd5b6000829050600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036130cd576130c8816131bd565b61310c565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161461310b5761310a8582613206565b5b5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361314e5761314981613373565b61318d565b8473ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161461318c5761318b8482613444565b5b5b5050505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b50505050565b6008805490506009600083815260200190815260200160002081905550600881908060018154018082558091505060019003906000526020600020016000909190919091505550565b6000600161321384610b2b565b61321d919061528a565b9050600060076000848152602001908152602001600020549050818114613302576000600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002054905080600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002081905550816007600083815260200190815260200160002081905550505b6007600084815260200190815260200160002060009055600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206000905550505050565b60006001600880549050613387919061528a565b90506000600960008481526020019081526020016000205490506000600883815481106133b7576133b66143a5565b5b9060005260206000200154905080600883815481106133d9576133d86143a5565b5b90600052602060002001819055508160096000838152602001908152602001600020819055506009600085815260200190815260200160002060009055600880548061342857613427615c61565b5b6001900381819060005260206000200160009055905550505050565b600061344f83610b2b565b905081600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002081905550806007600084815260200190815260200160002081905550505050565b6040518060600160405280600390602082028036833780820191505090505090565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61352e816134f9565b811461353957600080fd5b50565b60008135905061354b81613525565b92915050565b600060208284031215613567576135666134ef565b5b60006135758482850161353c565b91505092915050565b60008115159050919050565b6135938161357e565b82525050565b60006020820190506135ae600083018461358a565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156135ee5780820151818401526020810190506135d3565b60008484015250505050565b6000601f19601f8301169050919050565b6000613616826135b4565b61362081856135bf565b93506136308185602086016135d0565b613639816135fa565b840191505092915050565b6000602082019050818103600083015261365e818461360b565b905092915050565b6000819050919050565b61367981613666565b811461368457600080fd5b50565b60008135905061369681613670565b92915050565b6000602082840312156136b2576136b16134ef565b5b60006136c084828501613687565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006136f4826136c9565b9050919050565b613704816136e9565b82525050565b600060208201905061371f60008301846136fb565b92915050565b61372e816136e9565b811461373957600080fd5b50565b60008135905061374b81613725565b92915050565b60008060408385031215613768576137676134ef565b5b60006137768582860161373c565b925050602061378785828601613687565b9150509250929050565b61379a81613666565b82525050565b60006020820190506137b56000830184613791565b92915050565b6000806000606084860312156137d4576137d36134ef565b5b60006137e28682870161373c565b93505060206137f38682870161373c565b925050604061380486828701613687565b9150509250925092565b6000819050919050565b600061383361382e613829846136c9565b61380e565b6136c9565b9050919050565b600061384582613818565b9050919050565b60006138578261383a565b9050919050565b6138678161384c565b82525050565b6000602082019050613882600083018461385e565b92915050565b60006138938261383a565b9050919050565b6138a381613888565b82525050565b60006020820190506138be600083018461389a565b92915050565b6000602082840312156138da576138d96134ef565b5b60006138e88482850161373c565b91505092915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61392e826135fa565b810181811067ffffffffffffffff8211171561394d5761394c6138f6565b5b80604052505050565b60006139606134e5565b905061396c8282613925565b919050565b600067ffffffffffffffff82111561398c5761398b6138f6565b5b602082029050919050565b600080fd5b60006139af6139aa84613971565b613956565b905080602084028301858111156139c9576139c8613997565b5b835b818110156139f257806139de8882613687565b8452602084019350506020810190506139cb565b5050509392505050565b600082601f830112613a1157613a106138f1565b5b6010613a1e84828561399c565b91505092915050565b60006102008284031215613a3e57613a3d6134ef565b5b6000613a4c848285016139fc565b91505092915050565b600060039050919050565b600081905092915050565b6000819050919050565b613a7e81613666565b82525050565b6000613a908383613a75565b60208301905092915050565b6000602082019050919050565b613ab281613a55565b613abc8184613a60565b9250613ac782613a6b565b8060005b83811015613af8578151613adf8782613a84565b9650613aea83613a9c565b925050600181019050613acb565b505050505050565b6000606082019050613b156000830184613aa9565b92915050565b613b248161357e565b8114613b2f57600080fd5b50565b600081359050613b4181613b1b565b92915050565b60008060408385031215613b5e57613b5d6134ef565b5b6000613b6c8582860161373c565b9250506020613b7d85828601613b32565b9150509250929050565b60006080820190508181036000830152613ba1818761360b565b9050613bb06020830186613791565b613bbd6040830185613791565b613bca6060830184613791565b95945050505050565b600080fd5b600067ffffffffffffffff821115613bf357613bf26138f6565b5b613bfc826135fa565b9050602081019050919050565b82818337600083830152505050565b6000613c2b613c2684613bd8565b613956565b905082815260208101848484011115613c4757613c46613bd3565b5b613c52848285613c09565b509392505050565b600082601f830112613c6f57613c6e6138f1565b5b8135613c7f848260208601613c18565b91505092915050565b60008060008060808587031215613ca257613ca16134ef565b5b6000613cb08782880161373c565b9450506020613cc18782880161373c565b9350506040613cd287828801613687565b925050606085013567ffffffffffffffff811115613cf357613cf26134f4565b5b613cff87828801613c5a565b91505092959194509250565b600067ffffffffffffffff821115613d2657613d256138f6565b5b602082029050919050565b6000613d44613d3f84613d0b565b613956565b90508060208402830185811115613d5e57613d5d613997565b5b835b81811015613d875780613d738882613687565b845260208401935050602081019050613d60565b5050509392505050565b600082601f830112613da657613da56138f1565b5b6002613db3848285613d31565b91505092915050565b600067ffffffffffffffff821115613dd757613dd66138f6565b5b602082029050919050565b6000613df5613df084613dbc565b613956565b90508060408402830185811115613e0f57613e0e613997565b5b835b81811015613e385780613e248882613d91565b845260208401935050604081019050613e11565b5050509392505050565b600082601f830112613e5757613e566138f1565b5b6002613e64848285613de2565b91505092915050565b6000806000806103008587031215613e8857613e876134ef565b5b6000613e9687828801613d91565b9450506040613ea787828801613e42565b93505060c0613eb887828801613d91565b925050610100613eca878288016139fc565b91505092959194509250565b600067ffffffffffffffff821115613ef157613ef06138f6565b5b602082029050919050565b6000613f0f613f0a84613ed6565b613956565b90508060208402830185811115613f2957613f28613997565b5b835b81811015613f525780613f3e8882613687565b845260208401935050602081019050613f2b565b5050509392505050565b600082601f830112613f7157613f706138f1565b5b6003613f7e848285613efc565b91505092915050565b600060608284031215613f9d57613f9c6134ef565b5b6000613fab84828501613f5c565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000613fdb82613fb4565b613fe58185613fbf565b9350613ff58185602086016135d0565b613ffe816135fa565b840191505092915050565b600060208201905081810360008301526140238184613fd0565b905092915050565b60008060408385031215614042576140416134ef565b5b60006140508582860161373c565b92505060206140618582860161373c565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806140b257607f821691505b6020821081036140c5576140c461406b565b5b50919050565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b60006141276021836135bf565b9150614132826140cb565b604082019050919050565b600060208201905081810360008301526141568161411a565b9050919050565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60008201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c000000602082015250565b60006141b9603d836135bf565b91506141c48261415d565b604082019050919050565b600060208201905081810360008301526141e8816141ac565b9050919050565b7f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560008201527f72206f7220617070726f76656400000000000000000000000000000000000000602082015250565b600061424b602d836135bf565b9150614256826141ef565b604082019050919050565b6000602082019050818103600083015261427a8161423e565b9050919050565b7f455243373231456e756d657261626c653a206f776e657220696e646578206f7560008201527f74206f6620626f756e6473000000000000000000000000000000000000000000602082015250565b60006142dd602b836135bf565b91506142e882614281565b604082019050919050565b6000602082019050818103600083015261430c816142d0565b9050919050565b7f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60008201527f7574206f6620626f756e64730000000000000000000000000000000000000000602082015250565b600061436f602c836135bf565b915061437a82614313565b604082019050919050565b6000602082019050818103600083015261439e81614362565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4552433732313a20696e76616c696420746f6b656e2049440000000000000000600082015250565b600061440a6018836135bf565b9150614415826143d4565b602082019050919050565b60006020820190508181036000830152614439816143fd565b9050919050565b7f4552433732313a2061646472657373207a65726f206973206e6f74206120766160008201527f6c6964206f776e65720000000000000000000000000000000000000000000000602082015250565b600061449c6029836135bf565b91506144a782614440565b604082019050919050565b600060208201905081810360008301526144cb8161448f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061450c82613666565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361453e5761453d6144d2565b5b600182019050919050565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b60006145a5602f836135bf565b91506145b082614549565b604082019050919050565b600060208201905081810360008301526145d481614598565b9050919050565b600067ffffffffffffffff8211156145f6576145f56138f6565b5b6145ff826135fa565b9050602081019050919050565b600061461f61461a846145db565b613956565b90508281526020810184848401111561463b5761463a613bd3565b5b6146468482856135d0565b509392505050565b600082601f830112614663576146626138f1565b5b815161467384826020860161460c565b91505092915050565b60008060408385031215614693576146926134ef565b5b600083015167ffffffffffffffff8111156146b1576146b06134f4565b5b6146bd8582860161464e565b925050602083015167ffffffffffffffff8111156146de576146dd6134f4565b5b6146ea8582860161464e565b9150509250929050565b60006020828403121561470a576147096134ef565b5b600082015167ffffffffffffffff811115614728576147276134f4565b5b6147348482850161464e565b91505092915050565b600081905092915050565b7f7b202261747472696275746573223a205b000000000000000000000000000000600082015250565b600061477e60118361473d565b915061478982614748565b601182019050919050565b7f7b2274726169745f74797065223a202249737375696e67205374617465222c2060008201527f2276616c7565223a202200000000000000000000000000000000000000000000602082015250565b60006147f0602a8361473d565b91506147fb82614794565b602a82019050919050565b6000614811826135b4565b61481b818561473d565b935061482b8185602086016135d0565b80840191505092915050565b7f227d2c7b2274726169745f74797065223a202246697273744e616d65222c202260008201527f76616c7565223a20220000000000000000000000000000000000000000000000602082015250565b600061489360298361473d565b915061489e82614837565b602982019050919050565b7f227d2c7b2274726169745f74797065223a20224c6173744e616d65222c20227660008201527f616c7565223a2022000000000000000000000000000000000000000000000000602082015250565b600061490560288361473d565b9150614910826148a9565b602882019050919050565b7f227d2c7b2274726169745f74797065223a202250617373706f7274204e756d6260008201527f6572222c202276616c7565223a20220000000000000000000000000000000000602082015250565b6000614977602f8361473d565b91506149828261491b565b602f82019050919050565b7f227d2c7b2274726169745f74797065223a20224e6174696f6e616c697479222c60008201527f202276616c7565223a2022000000000000000000000000000000000000000000602082015250565b60006149e9602b8361473d565b91506149f48261498d565b602b82019050919050565b7f227d2c7b2274726169745f74797065223a202244617465206f6620626972746860008201527f222c202276616c7565223a202200000000000000000000000000000000000000602082015250565b6000614a5b602d8361473d565b9150614a66826149ff565b602d82019050919050565b7f227d2c7b2274726169745f74797065223a202247656e646572222c202276616c60008201527f7565223a20220000000000000000000000000000000000000000000000000000602082015250565b6000614acd60268361473d565b9150614ad882614a71565b602682019050919050565b7f227d2c7b2274726169745f74797065223a20224578706972792064617465222c60008201527f202276616c7565223a2022000000000000000000000000000000000000000000602082015250565b6000614b3f602b8361473d565b9150614b4a82614ae3565b602b82019050919050565b7f227d2c7b2274726169745f74797065223a202245787069726564222c2022766160008201527f6c7565223a202200000000000000000000000000000000000000000000000000602082015250565b6000614bb160278361473d565b9150614bbc82614b55565b602782019050919050565b7f227d000000000000000000000000000000000000000000000000000000000000600082015250565b6000614bfd60028361473d565b9150614c0882614bc7565b600282019050919050565b7f5d2c000000000000000000000000000000000000000000000000000000000000600082015250565b6000614c4960028361473d565b9150614c5482614c13565b600282019050919050565b7f226465736372697074696f6e223a202250726f6f66206f662050617373706f7260008201527f742067756172616e7465657320706f7373657373696f6e206f6620612076616c60208201527f69642070617373706f72742e222c2265787465726e616c5f75726c223a20226860408201527f747470733a2f2f6769746875622e636f6d2f7a6b2d70617373706f72742f707260608201527f6f6f662d6f662d70617373706f7274222c22696d616765223a2022687474707360808201527f3a2f2f692e696d6775722e636f6d2f396b766574696a2e706e67222c226e616d60a08201527f65223a202250726f6f66206f662050617373706f72742023000000000000000060c082015250565b6000614d7960d88361473d565b9150614d8482614c5f565b60d882019050919050565b6000614d9a82614771565b9150614da5826147e3565b9150614db1828d614806565b9150614dbc82614886565b9150614dc8828c614806565b9150614dd3826148f8565b9150614ddf828b614806565b9150614dea8261496a565b9150614df6828a614806565b9150614e01826149dc565b9150614e0d8289614806565b9150614e1882614a4e565b9150614e248288614806565b9150614e2f82614ac0565b9150614e3b8287614806565b9150614e4682614b32565b9150614e528286614806565b9150614e5d82614ba4565b9150614e698285614806565b9150614e7482614bf0565b9150614e7f82614c3c565b9150614e8a82614d6c565b9150614e968284614806565b9150614ea182614bf0565b91508190509b9a5050505050505050505050565b7f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c000000600082015250565b6000614eeb601d8361473d565b9150614ef682614eb5565b601d82019050919050565b6000614f0c82614ede565b9150614f188284614806565b915081905092915050565b7f5369676e617475726520616c7265616479206e756c6c69666965640000000000600082015250565b6000614f59601b836135bf565b9150614f6482614f23565b602082019050919050565b60006020820190508181036000830152614f8881614f4c565b9050919050565b600060029050919050565b600081905092915050565b6000819050919050565b6000602082019050919050565b614fc581614f8f565b614fcf8184614f9a565b9250614fda82614fa5565b8060005b8381101561500b578151614ff28782613a84565b9650614ffd83614faf565b925050600181019050614fde565b505050505050565b600060029050919050565b600081905092915050565b6000819050919050565b600081905092915050565b61504781614f8f565b6150518184615033565b925061505c82614fa5565b8060005b8381101561508d5781516150748782613a84565b965061507f83614faf565b925050600181019050615060565b505050505050565b60006150a1838361503e565b60408301905092915050565b6000602082019050919050565b6150c381615013565b6150cd818461501e565b92506150d882615029565b8060005b838110156151095781516150f08782615095565b96506150fb836150ad565b9250506001810190506150dc565b505050505050565b600060109050919050565b600081905092915050565b6000819050919050565b6000602082019050919050565b61514781615111565b615151818461511c565b925061515c82615127565b8060005b8381101561518d5781516151748782613a84565b965061517f83615131565b925050600181019050615160565b505050505050565b6000610300820190506151ab6000830187614fbc565b6151b860408301866150ba565b6151c560c0830185614fbc565b6151d361010083018461513e565b95945050505050565b6000815190506151eb81613b1b565b92915050565b600060208284031215615207576152066134ef565b5b6000615215848285016151dc565b91505092915050565b7f496e76616c69642050726f6f6600000000000000000000000000000000000000600082015250565b6000615254600d836135bf565b915061525f8261521e565b602082019050919050565b6000602082019050818103600083015261528381615247565b9050919050565b600061529582613666565b91506152a083613666565b92508282039050818111156152b8576152b76144d2565b5b92915050565b60006152c982613666565b91506152d483613666565b92508282019050808211156152ec576152eb6144d2565b5b92915050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026153547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82615317565b61535e8683615317565b95508019841693508086168417925050509392505050565b600061539161538c61538784613666565b61380e565b613666565b9050919050565b6000819050919050565b6153ab83615376565b6153bf6153b782615398565b848454615324565b825550505050565b600090565b6153d46153c7565b6153df8184846153a2565b505050565b5b81811015615403576153f86000826153cc565b6001810190506153e5565b5050565b601f82111561544857615419816152f2565b61542284615307565b81016020851015615431578190505b61544561543d85615307565b8301826153e4565b50505b505050565b600082821c905092915050565b600061546b6000198460080261544d565b1980831691505092915050565b6000615484838361545a565b9150826002028217905092915050565b61549d826135b4565b67ffffffffffffffff8111156154b6576154b56138f6565b5b6154c0825461409a565b6154cb828285615407565b600060209050601f8311600181146154fe57600084156154ec578287015190505b6154f68582615478565b86555061555e565b601f19841661550c866152f2565b60005b828110156155345784890151825560018201915060208501945060208101905061550f565b86831015615551578489015161554d601f89168261545a565b8355505b6001600288020188555050505b505050505050565b60008151905061557581613670565b92915050565b600060208284031215615591576155906134ef565b5b600061559f84828501615566565b91505092915050565b600060ff82169050919050565b60006155c0826155a8565b915060ff82036155d3576155d26144d2565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061563a6026836135bf565b9150615645826155de565b604082019050919050565b600060208201905081810360008301526156698161562d565b9050919050565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b60006156cc6025836135bf565b91506156d782615670565b604082019050919050565b600060208201905081810360008301526156fb816156bf565b9050919050565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061575e6024836135bf565b915061576982615702565b604082019050919050565b6000602082019050818103600083015261578d81615751565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006157ca6020836135bf565b91506157d582615794565b602082019050919050565b600060208201905081810360008301526157f9816157bd565b9050919050565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b60006158366019836135bf565b915061584182615800565b602082019050919050565b6000602082019050818103600083015261586581615829565b9050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b60006158c86032836135bf565b91506158d38261586c565b604082019050919050565b600060208201905081810360008301526158f7816158bb565b9050919050565b60006040820190508181036000830152615918818561360b565b9050818103602083015261592c818461360b565b90509392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061596f82613666565b915061597a83613666565b92508261598a57615989615935565b5b828204905092915050565b60006159a082613666565b91506159ab83613666565b92508282026159b981613666565b915082820484148315176159d0576159cf6144d2565b5b5092915050565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b6000615a0d6020836135bf565b9150615a18826159d7565b602082019050919050565b60006020820190508181036000830152615a3c81615a00565b9050919050565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b6000615a79601c836135bf565b9150615a8482615a43565b602082019050919050565b60006020820190508181036000830152615aa881615a6c565b9050919050565b7f43616e6e6f74207472616e73666572202d2050726f6f66206f6620506173737060008201527f6f727420697320736f756c626f756e6400000000000000000000000000000000602082015250565b6000615b0b6030836135bf565b9150615b1682615aaf565b604082019050919050565b60006020820190508181036000830152615b3a81615afe565b9050919050565b6000608082019050615b5660008301876136fb565b615b6360208301866136fb565b615b706040830185613791565b8181036060830152615b828184613fd0565b905095945050505050565b600081519050615b9c81613525565b92915050565b600060208284031215615bb857615bb76134ef565b5b6000615bc684828501615b8d565b91505092915050565b7f455243373231456e756d657261626c653a20636f6e736563757469766520747260008201527f616e7366657273206e6f7420737570706f727465640000000000000000000000602082015250565b6000615c2b6035836135bf565b9150615c3682615bcf565b604082019050919050565b60006020820190508181036000830152615c5a81615c1e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfe4142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2fa2646970667358221220fef4d2bd805817fccea2e50e7cba6d5947b65319eed8284ae10c75fd49f3cabd64736f6c63430008120033",
"linkReferences": {},
"deployedLinkReferences": {}
}
diff --git a/app/deployments/addresses.json b/app/deployments/addresses.json
index 19b48a62e..09a89916d 100644
--- a/app/deployments/addresses.json
+++ b/app/deployments/addresses.json
@@ -1 +1 @@
-{"ProofOfPassport":"0x7D459347d092D35f043f73021f06c19f834f8c3E","Groth16Verifier":"0x72d8Fb7Dd33c264b53D313ff3BF25D993c0AD050"}
\ No newline at end of file
+{"ProofOfPassport":"0x50c47Be849dFac1FCbEDa031425896AF49d9FDFC","Groth16Verifier":"0xD6F5CA79b90a9E20B38df773122B4f50a1fda317"}
\ No newline at end of file
diff --git a/app/ios/AwesomeProject/AES_3DES_DESEncryption.swift b/app/ios/AwesomeProject/AES_3DES_DESEncryption.swift
deleted file mode 100644
index ddd331099..000000000
--- a/app/ios/AwesomeProject/AES_3DES_DESEncryption.swift
+++ /dev/null
@@ -1,368 +0,0 @@
-import Foundation
-import CommonCrypto
-
-
-/// Encrypts a message using AES/CBC/NOPADDING with a specified key and initialisation vector
-/// - Parameter key: Key use to encrypt
-/// - Parameter message: Message to encrypt
-/// - Parameter iv: Initialisation vector
-@available(iOS 13, macOS 10.15, *)
-public func AESEncrypt(key:[UInt8], message:[UInt8], iv:[UInt8]) -> [UInt8] {
-
- let dataLength = message.count
-
- let cryptLen = message.count + kCCBlockSizeAES128
- var cryptData = Data(count: cryptLen)
-
- let keyLength = size_t(key.count)
- let operation: CCOperation = CCOperation(kCCEncrypt)
- let algorithm: CCAlgorithm = CCAlgorithm(kCCAlgorithmAES)
- let options: CCOptions = CCOptions(0)
-
- var numBytesEncrypted = 0
-
- var cryptStatus: CCCryptorStatus = CCCryptorStatus(kCCSuccess)
- key.withUnsafeBytes {keyBytes in
- message.withUnsafeBytes{ dataBytes in
- iv.withUnsafeBytes{ ivBytes in
- cryptData.withUnsafeMutableBytes{ cryptBytes in
-
- cryptStatus = CCCrypt(operation,
- algorithm,
- options,
- keyBytes.baseAddress,
- keyLength,
- ivBytes.baseAddress,
- dataBytes.baseAddress,
- dataLength,
- cryptBytes.bindMemory(to: UInt8.self).baseAddress,
- cryptLen,
- &numBytesEncrypted)
-
- }
- }
- }
- }
-
- if cryptStatus == kCCSuccess {
- cryptData.count = Int(numBytesEncrypted)
-
- return [UInt8](cryptData)
- } else {
- Log.error("AES Encrypt Error: \(cryptStatus)")
- }
- return []
-}
-
-/// Decrypts a message using AES/CBC/NOPADDING with a specified key and initialisation vector
-/// - Parameter key: Key use to decrypt
-/// - Parameter message: Message to decrypt
-/// - Parameter iv: Initialisation vector
-@available(iOS 13, macOS 10.15, *)
-public func AESDecrypt(key:[UInt8], message:[UInt8], iv:[UInt8]) -> [UInt8] {
- var fixedKey = key
- if key.count == 16 {
- fixedKey += key[0..<8]
- }
-
- let data = Data(message)
- let dataLength = message.count
-
- let cryptLen = data.count + kCCBlockSizeAES128
- var cryptData = Data(count: cryptLen)
-
- let keyLength = size_t(key.count)
- let operation: CCOperation = UInt32(kCCDecrypt)
- let algorithm: CCAlgorithm = UInt32(kCCAlgorithmAES)
- let options: CCOptions = UInt32(0)
-
- var numBytesEncrypted = 0
-
- let cryptStatus = fixedKey.withUnsafeBytes {keyBytes in
- message.withUnsafeBytes{ dataBytes in
- cryptData.withUnsafeMutableBytes{ cryptBytes in
- CCCrypt(operation,
- algorithm,
- options,
- keyBytes.baseAddress,
- keyLength,
- iv,
- dataBytes.baseAddress,
- dataLength,
- cryptBytes.bindMemory(to: UInt8.self).baseAddress,
- cryptLen,
- &numBytesEncrypted)
-
- }
- }
- }
-
- if cryptStatus == kCCSuccess {
- cryptData.count = Int(numBytesEncrypted)
-
- return [UInt8](cryptData)
- } else {
- Log.error("AES Decrypt Error: \(cryptStatus)")
- }
- return []
-}
-
-/// Decrypts a message using AES/ECB/NOPADDING with a specified key and initialisation vector
-/// - Parameter key: Key use to decrypt
-/// - Parameter message: Message to decrypt
-/// - Parameter iv: Initialisation vector
-@available(iOS 13, macOS 10.15, *)
-public func AESECBEncrypt(key:[UInt8], message:[UInt8]) -> [UInt8] {
-
- let dataLength = message.count
-
- let cryptLen = message.count + kCCBlockSizeAES128
- var cryptData = Data(count: cryptLen)
-
- let keyLength = size_t(key.count)
- let operation: CCOperation = CCOperation(kCCEncrypt)
- let algorithm: CCAlgorithm = CCAlgorithm(kCCAlgorithmAES)
- let options: CCOptions = CCOptions(kCCOptionECBMode)
-
- var numBytesEncrypted = 0
-
- let cryptStatus = key.withUnsafeBytes {keyBytes in
- message.withUnsafeBytes{ dataBytes in
- cryptData.withUnsafeMutableBytes{ cryptBytes in
-
- CCCrypt(operation,
- algorithm,
- options,
- keyBytes.baseAddress,
- keyLength,
- nil,
- dataBytes.baseAddress,
- dataLength,
- cryptBytes.bindMemory(to: UInt8.self).baseAddress,
- cryptLen,
- &numBytesEncrypted)
-
- }
- }
- }
-
- if cryptStatus == kCCSuccess {
- cryptData.count = Int(numBytesEncrypted)
-
- return [UInt8](cryptData)
- } else {
- Log.error("AESECBEncrypt Error: \(cryptStatus)")
- }
- return []
-}
-
-/// Encrypts a message using DES3 with a specified key and initialisation vector
-/// - Parameter key: Key use to encrypt
-/// - Parameter message: Message to encrypt
-/// - Parameter iv: Initialisation vector
-@available(iOS 13, macOS 10.15, *)
-public func tripleDESEncrypt(key:[UInt8], message:[UInt8], iv:[UInt8]) -> [UInt8] {
- // Fix key data - if length is 16 then take the first 98 bytes and append them to the end to make 24 bytes
- var fixedKey = key
- if key.count == 16 {
- fixedKey += key[0..<8]
- }
-
- let dataLength = message.count
-
- let cryptLen = message.count + kCCBlockSize3DES
- var cryptData = Data(count: cryptLen)
-
- let keyLength = size_t(kCCKeySize3DES)
- let operation: CCOperation = UInt32(kCCEncrypt)
- let algorithm: CCAlgorithm = UInt32(kCCAlgorithm3DES)
- let options: CCOptions = UInt32(0)
-
- var numBytesEncrypted = 0
-
- let cryptStatus = fixedKey.withUnsafeBytes {keyBytes in
- message.withUnsafeBytes{ dataBytes in
- iv.withUnsafeBytes{ ivBytes in
- cryptData.withUnsafeMutableBytes{ cryptBytes in
- CCCrypt(operation,
- algorithm,
- options,
- keyBytes.baseAddress,
- keyLength,
- ivBytes.baseAddress,
- dataBytes.baseAddress,
- dataLength,
- cryptBytes.bindMemory(to: UInt8.self).baseAddress,
- cryptLen,
- &numBytesEncrypted)
-
- }
- }
- }
- }
-
- if cryptStatus == kCCSuccess {
- cryptData.count = Int(numBytesEncrypted)
-
- return [UInt8](cryptData)
- } else {
- Log.error("Error: \(cryptStatus)")
- }
- return []
-}
-
-/// Decrypts a message using DES3 with a specified key and initialisation vector
-/// - Parameter key: Key use to decrypt
-/// - Parameter message: Message to decrypt
-/// - Parameter iv: Initialisation vector
-@available(iOS 13, macOS 10.15, *)
-public func tripleDESDecrypt(key:[UInt8], message:[UInt8], iv:[UInt8]) -> [UInt8] {
- var fixedKey = key
- if key.count == 16 {
- fixedKey += key[0..<8]
- }
-
- let data = Data(message)
- let dataLength = message.count
-
- let cryptLen = data.count + kCCBlockSize3DES
- var cryptData = Data(count: cryptLen)
-
- let keyLength = size_t(kCCKeySize3DES)
- let operation: CCOperation = UInt32(kCCDecrypt)
- let algorithm: CCAlgorithm = UInt32(kCCAlgorithm3DES)
- let options: CCOptions = UInt32(0)
-
- var numBytesEncrypted = 0
-
- let cryptStatus = fixedKey.withUnsafeBytes {keyBytes in
- message.withUnsafeBytes{ dataBytes in
- cryptData.withUnsafeMutableBytes{ cryptBytes in
- CCCrypt(operation,
- algorithm,
- options,
- keyBytes.baseAddress,
- keyLength,
- iv,
- dataBytes.baseAddress,
- dataLength,
- cryptBytes.bindMemory(to: UInt8.self).baseAddress,
- cryptLen,
- &numBytesEncrypted)
-
- }
- }
- }
-
- if cryptStatus == kCCSuccess {
- cryptData.count = Int(numBytesEncrypted)
-
- return [UInt8](cryptData)
- } else {
- Log.error("Error: \(cryptStatus)")
- }
- return []
-}
-
-
-/// Encrypts a message using DES with a specified key and initialisation vector
-/// - Parameter key: Key use to encrypt
-/// - Parameter message: Message to encrypt
-/// - Parameter iv: Initialisation vector
-/// - Parameter options: Encryption options to use
-@available(iOS 13, macOS 10.15, *)
-public func DESEncrypt(key:[UInt8], message:[UInt8], iv:[UInt8], options:UInt32 = 0) -> [UInt8] {
-
- let dataLength = message.count
-
- let cryptLen = message.count + kCCBlockSizeDES
- var cryptData = Data(count: cryptLen)
-
- let keyLength = size_t(kCCKeySizeDES)
- let operation: CCOperation = UInt32(kCCEncrypt)
- let algorithm: CCAlgorithm = UInt32(kCCAlgorithmDES)
- let options: CCOptions = options
-
- var numBytesEncrypted = 0
-
- let cryptStatus = key.withUnsafeBytes {keyBytes in
- message.withUnsafeBytes{ dataBytes in
- iv.withUnsafeBytes{ ivBytes in
- cryptData.withUnsafeMutableBytes{ cryptBytes in
- CCCrypt(operation,
- algorithm,
- options,
- keyBytes.baseAddress,
- keyLength,
- ivBytes.baseAddress,
- dataBytes.baseAddress,
- dataLength,
- cryptBytes.bindMemory(to: UInt8.self).baseAddress,
- cryptLen,
- &numBytesEncrypted)
-
- }
- }
- }
- }
-
- if cryptStatus == kCCSuccess {
- cryptData.count = Int(numBytesEncrypted)
-
- return [UInt8](cryptData)
- } else {
- Log.error("Error: \(cryptStatus)")
- }
- return []
-}
-
-/// Decrypts a message using DES with a specified key and initialisation vector
-/// - Parameter key: Key use to decrypt
-/// - Parameter message: Message to decrypt
-/// - Parameter iv: Initialisation vector
-/// - Parameter options: Decryption options to use
-@available(iOS 13, macOS 10.15, *)
-public func DESDecrypt(key:[UInt8], message:[UInt8], iv:[UInt8], options:UInt32 = 0) -> [UInt8] {
-
- let dataLength = message.count
-
- let cryptLen = message.count + kCCBlockSizeDES
- var cryptData = Data(count: cryptLen)
-
- let keyLength = size_t(kCCKeySizeDES)
- let operation: CCOperation = UInt32(kCCDecrypt)
- let algorithm: CCAlgorithm = UInt32(kCCAlgorithmDES)
- let options: CCOptions = options
-
- var numBytesEncrypted = 0
-
- let cryptStatus = key.withUnsafeBytes {keyBytes in
- message.withUnsafeBytes{ dataBytes in
- iv.withUnsafeBytes{ ivBytes in
- cryptData.withUnsafeMutableBytes{ cryptBytes in
- CCCrypt(operation,
- algorithm,
- options,
- keyBytes.baseAddress,
- keyLength,
- nil,
- dataBytes.baseAddress,
- dataLength,
- cryptBytes.bindMemory(to: UInt8.self).baseAddress,
- cryptLen,
- &numBytesEncrypted)
-
- }
- }
- }
- }
-
- if cryptStatus == kCCSuccess {
- cryptData.count = Int(numBytesEncrypted)
-
- return [UInt8](cryptData)
- } else {
- Log.error("Error: \(cryptStatus)")
- }
- return []
-}
diff --git a/app/ios/AwesomeProject/DataGroups/ActiveAuthenticationInfo.swift b/app/ios/AwesomeProject/DataGroups/ActiveAuthenticationInfo.swift
deleted file mode 100644
index df627f085..000000000
--- a/app/ios/AwesomeProject/DataGroups/ActiveAuthenticationInfo.swift
+++ /dev/null
@@ -1,62 +0,0 @@
-import Foundation
-
-@available(iOS 13, macOS 10.15, *)
-public class ActiveAuthenticationInfo : SecurityInfo {
-
- var oid : String
- var version : Int
- var signatureAlgorithmOID : String?
-
- static func checkRequiredIdentifier(_ oid : String) -> Bool {
- return ID_AA_OID == oid
- }
-
- init(oid: String, version: Int, signatureAlgorithmOID: String? = nil) {
- self.oid = oid
- self.version = version
- self.signatureAlgorithmOID = signatureAlgorithmOID
- }
-
- public override func getObjectIdentifier() -> String {
- return oid
- }
-
- public override func getProtocolOIDString() -> String {
- return ActiveAuthenticationInfo.toProtocolOIDString(oid:oid)
- }
-
- public func getSignatureAlgorithmOIDString() -> String? {
- return ActiveAuthenticationInfo.toSignatureAlgorithmOIDString(oid: signatureAlgorithmOID)
- }
-
- private static func toProtocolOIDString(oid : String) -> String {
- if ID_AA_OID == oid {
- return "id-AA"
- }
-
- return oid
- }
-
- private static func toSignatureAlgorithmOIDString(oid: String?) -> String? {
- if (ECDSA_PLAIN_SHA1_OID == oid) {
- return "ecdsa-plain-SHA1";
- }
- if (ECDSA_PLAIN_SHA224_OID == oid) {
- return "ecdsa-plain-SHA224";
- }
- if (ECDSA_PLAIN_SHA256_OID == oid) {
- return "ecdsa-plain-SHA256";
- }
- if (ECDSA_PLAIN_SHA384_OID == oid) {
- return "ecdsa-plain-SHA384";
- }
- if (ECDSA_PLAIN_SHA512_OID == oid) {
- return "ecdsa-plain-SHA512";
- }
- if (ECDSA_PLAIN_RIPEMD160_OID == oid) {
- return "ecdsa-plain-RIPEMD160";
- }
-
- return nil
- }
-}
diff --git a/app/ios/AwesomeProject/DataGroups/COM.swift b/app/ios/AwesomeProject/DataGroups/COM.swift
deleted file mode 100644
index d5cb53835..000000000
--- a/app/ios/AwesomeProject/DataGroups/COM.swift
+++ /dev/null
@@ -1,59 +0,0 @@
-import Foundation
-
-@available(iOS 13, macOS 10.15, *)
-public class COM : DataGroup {
- public private(set) var version : String = "Unknown"
- public private(set) var unicodeVersion : String = "Unknown"
- public private(set) var dataGroupsPresent : [String] = []
-
- required init( _ data : [UInt8] ) throws {
- try super.init(data)
- datagroupType = .COM
- }
-
- override func parse(_ data: [UInt8]) throws {
- var tag = try getNextTag()
- if tag != 0x5F01 {
- throw NFCPassportReaderError.InvalidResponse
- }
-
- // Version is 4 bytes (ascii) - AABB
- // AA is major number, BB is minor number
- // e.g. 48 49 48 55 -> 01 07 -> 1.7
- var versionBytes = try getNextValue()
- if versionBytes.count == 4 {
- let aa = Int( String(cString: Array(versionBytes[0..<2] + [0]) )) ?? -1
- let bb = Int( String(cString: Array(versionBytes[2...] + [0])) ) ?? -1
- if aa != -1 && bb != -1 {
- version = "\(aa).\(bb)"
- }
- }
- tag = try getNextTag()
- if tag != 0x5F36 {
- throw NFCPassportReaderError.InvalidResponse
- }
-
- versionBytes = try getNextValue()
- if versionBytes.count == 6 {
- let aa = Int( String(cString: Array(versionBytes[0..<2] + [0])) ) ?? -1
- let bb = Int( String(cString: Array(versionBytes[2..<4] + [0])) ) ?? -1
- let cc = Int( String(cString: Array(versionBytes[4...]) + [0]) ) ?? -1
- if aa != -1 && bb != -1 && cc != -1 {
- unicodeVersion = "\(aa).\(bb).\(cc)"
- }
- }
-
- tag = try getNextTag()
- if tag != 0x5C {
- throw NFCPassportReaderError.InvalidResponse
- }
-
- let vals = try getNextValue()
- for v in vals {
- if let index = DataGroupParser.tags.firstIndex(of: v) {
- dataGroupsPresent.append( DataGroupParser.dataGroupNames[index] )
- }
- }
- Log.debug( "DG Found - \(dataGroupsPresent)" )
- }
-}
diff --git a/app/ios/AwesomeProject/DataGroups/CardAccess.swift b/app/ios/AwesomeProject/DataGroups/CardAccess.swift
deleted file mode 100644
index f8759ea4a..000000000
--- a/app/ios/AwesomeProject/DataGroups/CardAccess.swift
+++ /dev/null
@@ -1,31 +0,0 @@
-import Foundation
-
-// SecurityInfos ::= SET of SecurityInfo
-// SecurityInfo ::= SEQUENCE {
-// protocol OBJECT IDENTIFIER,
-// requiredData ANY DEFINED BY protocol,
-// optionalData ANY DEFINED BY protocol OPTIONAL
-@available(iOS 13, macOS 10.15, *)
-public class CardAccess {
- private var asn1 : ASN1Item!
- public private(set) var securityInfos : [SecurityInfo] = [SecurityInfo]()
-
- var paceInfo : PACEInfo? {
- get {
- return (securityInfos.filter { ($0 as? PACEInfo) != nil }).first as? PACEInfo
- }
- }
-
- required init( _ data : [UInt8] ) throws {
- let p = SimpleASN1DumpParser()
- asn1 = try p.parse(data: Data(data))
-
- // Bit of a hack at the moment - passing in the body - if we had a decent ASN1 parser then this would be better! ;)
- for i in 0 ..< asn1.getNumberOfChildren() {
- if let child = asn1.getChild(i),
- let secInfo = SecurityInfo.getInstance( object:child, body : data ) {
- securityInfos.append(secInfo)
- }
- }
- }
-}
diff --git a/app/ios/AwesomeProject/DataGroups/ChipAuthenticationInfo.swift b/app/ios/AwesomeProject/DataGroups/ChipAuthenticationInfo.swift
deleted file mode 100644
index 7eda04a33..000000000
--- a/app/ios/AwesomeProject/DataGroups/ChipAuthenticationInfo.swift
+++ /dev/null
@@ -1,128 +0,0 @@
-import Foundation
-
-@available(iOS 13, macOS 10.15, *)
-public class ChipAuthenticationInfo : SecurityInfo {
-
- var oid : String
- var version : Int
- var keyId : Int?
-
- static func checkRequiredIdentifier(_ oid : String) -> Bool {
- return ID_CA_DH_3DES_CBC_CBC_OID == oid
- || ID_CA_ECDH_3DES_CBC_CBC_OID == oid
- || ID_CA_DH_AES_CBC_CMAC_128_OID == oid
- || ID_CA_DH_AES_CBC_CMAC_192_OID == oid
- || ID_CA_DH_AES_CBC_CMAC_256_OID == oid
- || ID_CA_ECDH_AES_CBC_CMAC_128_OID == oid
- || ID_CA_ECDH_AES_CBC_CMAC_192_OID == oid
- || ID_CA_ECDH_AES_CBC_CMAC_256_OID == oid
- }
-
- init(oid: String, version: Int, keyId: Int? = nil) {
- self.oid = oid
- self.version = version
- self.keyId = keyId
- }
-
- public override func getObjectIdentifier() -> String {
- return oid
- }
-
- public override func getProtocolOIDString() -> String {
- return ChipAuthenticationInfo.toProtocolOIDString(oid:oid)
- }
-
- // The keyid refers to a specific key if there are multiple otherwise if not set, only one key is present so set to 0
- public func getKeyId() -> Int {
- return keyId ?? 0
- }
-
- /// Returns the key agreement algorithm - DH or ECDH for the given Chip Authentication oid
- /// - Parameter oid: the object identifier
- /// - Returns: key agreement algorithm
- /// - Throws: InvalidDataPassed error if invalid oid specified
- public static func toKeyAgreementAlgorithm( oid : String ) throws -> String {
- if ID_CA_DH_3DES_CBC_CBC_OID == oid
- || ID_CA_DH_AES_CBC_CMAC_128_OID == oid
- || ID_CA_DH_AES_CBC_CMAC_192_OID == oid
- || ID_CA_DH_AES_CBC_CMAC_256_OID == oid {
- return "DH";
- } else if ID_CA_ECDH_3DES_CBC_CBC_OID == oid
- || ID_CA_ECDH_AES_CBC_CMAC_128_OID == oid
- || ID_CA_ECDH_AES_CBC_CMAC_192_OID == oid
- || ID_CA_ECDH_AES_CBC_CMAC_256_OID == oid {
- return "ECDH";
- }
-
- throw NFCPassportReaderError.InvalidDataPassed( "Unable to lookup key agreement algorithm - invalid oid" )
- }
-
- /// Returns the cipher algorithm - DESede or AES for the given Chip Authentication oid
- /// - Parameter oid: the object identifier
- /// - Returns: the cipher algorithm type
- /// - Throws: InvalidDataPassed error if invalid oid specified
- public static func toCipherAlgorithm( oid : String ) throws -> String {
- if ID_CA_DH_3DES_CBC_CBC_OID == oid
- || ID_CA_ECDH_3DES_CBC_CBC_OID == oid {
- return "DESede";
- } else if ID_CA_DH_AES_CBC_CMAC_128_OID == oid
- || ID_CA_DH_AES_CBC_CMAC_192_OID == oid
- || ID_CA_DH_AES_CBC_CMAC_256_OID == oid
- || ID_CA_ECDH_AES_CBC_CMAC_128_OID == oid
- || ID_CA_ECDH_AES_CBC_CMAC_192_OID == oid
- || ID_CA_ECDH_AES_CBC_CMAC_256_OID == oid {
- return "AES";
- }
- throw NFCPassportReaderError.InvalidDataPassed( "Unable to lookup cipher algorithm - invalid oid" )
- }
-
- /// Returns the key length in bits (128, 192, or 256) for the given Chip Authentication oid
- /// - Parameter oid: the object identifier
- /// - Returns: the key length in bits
- /// - Throws: InvalidDataPassed error if invalid oid specified
- public static func toKeyLength( oid : String ) throws -> Int {
- if ID_CA_DH_3DES_CBC_CBC_OID == oid
- || ID_CA_ECDH_3DES_CBC_CBC_OID == oid
- || ID_CA_DH_AES_CBC_CMAC_128_OID == oid
- || ID_CA_ECDH_AES_CBC_CMAC_128_OID == oid {
- return 128;
- } else if ID_CA_DH_AES_CBC_CMAC_192_OID == oid
- || ID_CA_ECDH_AES_CBC_CMAC_192_OID == oid {
- return 192;
- } else if ID_CA_DH_AES_CBC_CMAC_256_OID == oid
- || ID_CA_ECDH_AES_CBC_CMAC_256_OID == oid {
- return 256;
- }
-
- throw NFCPassportReaderError.InvalidDataPassed( "Unable to get key length - invalid oid" )
- }
-
- private static func toProtocolOIDString(oid : String) -> String {
- if ID_CA_DH_3DES_CBC_CBC_OID == oid {
- return "id-CA-DH-3DES-CBC-CBC"
- }
- if ID_CA_DH_AES_CBC_CMAC_128_OID == oid {
- return "id-CA-DH-AES-CBC-CMAC-128"
- }
- if ID_CA_DH_AES_CBC_CMAC_192_OID == oid {
- return "id-CA-DH-AES-CBC-CMAC-192"
- }
- if ID_CA_DH_AES_CBC_CMAC_256_OID == oid {
- return "id-CA-DH-AES-CBC-CMAC-256"
- }
- if ID_CA_ECDH_3DES_CBC_CBC_OID == oid {
- return "id-CA-ECDH-3DES-CBC-CBC"
- }
- if ID_CA_ECDH_AES_CBC_CMAC_128_OID == oid {
- return "id-CA-ECDH-AES-CBC-CMAC-128"
- }
- if ID_CA_ECDH_AES_CBC_CMAC_192_OID == oid {
- return "id-CA-ECDH-AES-CBC-CMAC-192"
- }
- if ID_CA_ECDH_AES_CBC_CMAC_256_OID == oid {
- return "id-CA-ECDH-AES-CBC-CMAC-256"
- }
-
- return oid
- }
-}
diff --git a/app/ios/AwesomeProject/DataGroups/ChipAuthenticationPublicKeyInfo.swift b/app/ios/AwesomeProject/DataGroups/ChipAuthenticationPublicKeyInfo.swift
deleted file mode 100644
index 7f989c5b2..000000000
--- a/app/ios/AwesomeProject/DataGroups/ChipAuthenticationPublicKeyInfo.swift
+++ /dev/null
@@ -1,46 +0,0 @@
-import Foundation
-
-@available(iOS 13, macOS 10.15, *)
-public class ChipAuthenticationPublicKeyInfo : SecurityInfo {
- var oid : String
- var pubKey : OpaquePointer
- var keyId : Int?
-
-
- static func checkRequiredIdentifier(_ oid : String) -> Bool {
- return ID_PK_DH_OID == oid
- || ID_PK_ECDH_OID == oid
- }
-
- init(oid:String, pubKey:OpaquePointer, keyId: Int? = nil) {
- self.oid = oid
- self.pubKey = pubKey
- self.keyId = keyId
- }
-
- public override func getObjectIdentifier() -> String {
- return oid
- }
-
- public override func getProtocolOIDString() -> String {
- return ChipAuthenticationPublicKeyInfo.toProtocolOIDString(oid:oid)
- }
-
- // The keyid refers to a specific key if there are multiple otherwise if not set, only one key is present so set to 0
- public func getKeyId() -> Int {
- return keyId ?? 0
- }
-
-
- private static func toProtocolOIDString(oid : String) -> String {
- if ID_PK_DH_OID == oid {
- return "id-PK-DH"
- }
- if ID_PK_ECDH_OID == oid {
- return "id-PK-ECDH"
- }
-
- return oid
- }
-
-}
diff --git a/app/ios/AwesomeProject/DataGroups/DataGroup.swift b/app/ios/AwesomeProject/DataGroups/DataGroup.swift
deleted file mode 100644
index 3719fa8f7..000000000
--- a/app/ios/AwesomeProject/DataGroups/DataGroup.swift
+++ /dev/null
@@ -1,78 +0,0 @@
-import Foundation
-
-@available(iOS 13, macOS 10.15, *)
-public class DataGroup {
- public var datagroupType : DataGroupId = .Unknown
-
- /// Body contains the actual data
- public private(set) var body : [UInt8] = []
-
- /// Data contains the whole DataGroup data (as that is what the hash is calculated from
- public private(set) var data : [UInt8] = []
-
- var pos = 0
-
- required init( _ data : [UInt8] ) throws {
- self.data = data
-
- // Skip the first byte which is the header byte
- pos = 1
- let _ = try getNextLength()
- self.body = [UInt8](data[pos...])
-
- try parse(data)
- }
-
- func parse( _ data:[UInt8] ) throws {
- }
-
- func getNextTag() throws -> Int {
- var tag = 0
-
- // Fix for some passports that may have invalid data - ensure that we do have data!
- guard data.count > pos else {
- throw NFCPassportReaderError.TagNotValid
- }
-
- if binToHex(data[pos]) & 0x0F == 0x0F {
- tag = Int(binToHex(data[pos.. Int {
- let end = pos+4 < data.count ? pos+4 : data.count
- let (len, lenOffset) = try asn1Length([UInt8](data[pos.. [UInt8] {
- let length = try getNextLength()
- let value = [UInt8](data[pos ..< pos+length])
- pos += length
- return value
- }
-
- public func hash( _ hashAlgorythm: String ) -> [UInt8] {
- var ret : [UInt8] = []
- if hashAlgorythm == "SHA1" {
- ret = calcSHA1Hash(self.data)
- } else if hashAlgorythm == "SHA224" {
- ret = calcSHA224Hash(self.data)
- } else if hashAlgorythm == "SHA256" {
- ret = calcSHA256Hash(self.data)
- } else if hashAlgorythm == "SHA384" {
- ret = calcSHA384Hash(self.data)
- } else if hashAlgorythm == "SHA512" {
- ret = calcSHA512Hash(self.data)
- }
-
- return ret
- }
-
-}
diff --git a/app/ios/AwesomeProject/DataGroups/DataGroup1.swift b/app/ios/AwesomeProject/DataGroups/DataGroup1.swift
deleted file mode 100644
index a0cd80873..000000000
--- a/app/ios/AwesomeProject/DataGroups/DataGroup1.swift
+++ /dev/null
@@ -1,108 +0,0 @@
-
-import Foundation
-
-@available(iOS 13, macOS 10.15, *)
-public enum DocTypeEnum: String {
- case TD1
- case TD2
- case OTHER
-
- var desc: String {
- get {
- return self.rawValue
- }
- }
-}
-
-@available(iOS 13, macOS 10.15, *)
-public class DataGroup1 : DataGroup {
-
- public private(set) var elements : [String:String] = [:]
-
- required init( _ data : [UInt8] ) throws {
- try super.init(data)
- datagroupType = .DG1
- }
-
- override func parse(_ data: [UInt8]) throws {
- let tag = try getNextTag()
- if tag != 0x5F1F {
- throw NFCPassportReaderError.InvalidResponse
- }
- let body = try getNextValue()
- let docType = getMRZType(length:body.count)
-
- switch docType {
- case .TD1:
- self.parseTd1(body)
- case .TD2:
- self.parseTd2(body)
- default:
- self.parseOther(body)
- }
-
- // Store MRZ data
- elements["5F1F"] = String(bytes: body, encoding:.utf8)
- }
-
- func parseTd1(_ data : [UInt8]) {
- elements["5F03"] = String(bytes: data[0..<2], encoding:.utf8)
- elements["5F28"] = String( bytes:data[2..<5], encoding:.utf8)
- elements["5A"] = String( bytes:data[5..<14], encoding:.utf8)
- elements["5F04"] = String( bytes:data[14..<15], encoding:.utf8)
- elements["53"] = (String( bytes:data[15..<30], encoding:.utf8) ?? "") +
- (String( bytes:data[48..<59], encoding:.utf8) ?? "")
- elements["5F57"] = String( bytes:data[30..<36], encoding:.utf8)
- elements["5F05"] = String( bytes:data[36..<37], encoding:.utf8)
- elements["5F35"] = String( bytes:data[37..<38], encoding:.utf8)
- elements["59"] = String( bytes:data[38..<44], encoding:.utf8)
- elements["5F06"] = String( bytes:data[44..<45], encoding:.utf8)
- elements["5F2C"] = String( bytes:data[45..<48], encoding:.utf8)
- elements["5F07"] = String( bytes:data[59..<60], encoding:.utf8)
- elements["5B"] = String( bytes:data[60...], encoding:.utf8)
- }
-
- func parseTd2(_ data : [UInt8]) {
- elements["5F03"] = String( bytes:data[0..<2], encoding:.utf8)
- elements["5F28"] = String( bytes:data[2..<5], encoding:.utf8)
- elements["5B"] = String( bytes:data[5..<36], encoding:.utf8)
- elements["5A"] = String( bytes:data[36..<45], encoding:.utf8)
- elements["5F04"] = String( bytes:data[45..<46], encoding:.utf8)
- elements["5F2C"] = String( bytes:data[46..<49], encoding:.utf8)
- elements["5F57"] = String( bytes:data[49..<55], encoding:.utf8)
- elements["5F05"] = String( bytes:data[55..<56], encoding:.utf8)
- elements["5F35"] = String( bytes:data[56..<57], encoding:.utf8)
- elements["59"] = String( bytes:data[57..<63], encoding:.utf8)
- elements["5F06"] = String( bytes:data[63..<64], encoding:.utf8)
- elements["53"] = String( bytes:data[64..<71], encoding:.utf8)
- elements["5F07"] = String( bytes:data[71..<72], encoding:.utf8)
- }
-
- func parseOther(_ data : [UInt8]) {
- elements["5F03"] = String( bytes:data[0..<2], encoding:.utf8)
- elements["5F28"] = String( bytes:data[2..<5], encoding:.utf8)
- elements["5B"] = String( bytes:data[5..<44], encoding:.utf8)
- elements["5A"] = String( bytes:data[44..<53], encoding:.utf8)
- elements["5F04"] = String( bytes:[data[53]], encoding:.utf8)
- elements["5F2C"] = String( bytes:data[54..<57], encoding:.utf8)
- elements["5F57"] = String( bytes:data[57..<63], encoding:.utf8)
- elements["5F05"] = String( bytes:[data[63]], encoding:.utf8)
- elements["5F35"] = String( bytes:[data[64]], encoding:.utf8)
- elements["59"] = String( bytes:data[65..<71], encoding:.utf8)
- elements["5F06"] = String( bytes:[data[71]], encoding:.utf8)
- elements["53"] = String( bytes:data[72..<86], encoding:.utf8)
- elements["5F02"] = String( bytes:[data[86]], encoding:.utf8)
- elements["5F07"] = String( bytes:[data[87]], encoding:.utf8)
- }
-
- private func getMRZType(length: Int) -> DocTypeEnum {
- if length == 0x5A {
- return .TD1
- }
- if length == 0x48 {
- return .TD2
- }
- return .OTHER
- }
-
-}
diff --git a/app/ios/AwesomeProject/DataGroups/DataGroup11.swift b/app/ios/AwesomeProject/DataGroups/DataGroup11.swift
deleted file mode 100644
index 970185ac0..000000000
--- a/app/ios/AwesomeProject/DataGroups/DataGroup11.swift
+++ /dev/null
@@ -1,62 +0,0 @@
-
-import Foundation
-
-@available(iOS 13, macOS 10.15, *)
-public class DataGroup11 : DataGroup {
-
- public private(set) var fullName : String?
- public private(set) var personalNumber : String?
- public private(set) var dateOfBirth : String?
- public private(set) var placeOfBirth : String?
- public private(set) var address : String?
- public private(set) var telephone : String?
- public private(set) var profession : String?
- public private(set) var title : String?
- public private(set) var personalSummary : String?
- public private(set) var proofOfCitizenship : String?
- public private(set) var tdNumbers : String?
- public private(set) var custodyInfo : String?
-
- required init( _ data : [UInt8] ) throws {
- try super.init(data)
- datagroupType = .DG11
- }
-
- override func parse(_ data: [UInt8]) throws {
- var tag = try getNextTag()
- if tag != 0x5C {
- throw NFCPassportReaderError.InvalidResponse
- }
- _ = try getNextValue()
-
- repeat {
- tag = try getNextTag()
- let val = try String( bytes:getNextValue(), encoding:.utf8)
- if tag == 0x5F0E {
- fullName = val
- } else if tag == 0x5F10 {
- personalNumber = val
- } else if tag == 0x5F11 {
- placeOfBirth = val
- } else if tag == 0x5F2B {
- dateOfBirth = val
- } else if tag == 0x5F42 {
- address = val
- } else if tag == 0x5F12 {
- telephone = val
- } else if tag == 0x5F13 {
- profession = val
- } else if tag == 0x5F14 {
- title = val
- } else if tag == 0x5F15 {
- personalSummary = val
- } else if tag == 0x5F16 {
- proofOfCitizenship = val
- } else if tag == 0x5F17 {
- tdNumbers = val
- } else if tag == 0x5F18 {
- custodyInfo = val
- }
- } while pos < data.count
- }
-}
diff --git a/app/ios/AwesomeProject/DataGroups/DataGroup12.swift b/app/ios/AwesomeProject/DataGroups/DataGroup12.swift
deleted file mode 100644
index bc24b037b..000000000
--- a/app/ios/AwesomeProject/DataGroups/DataGroup12.swift
+++ /dev/null
@@ -1,72 +0,0 @@
-
-import Foundation
-
-@available(iOS 13, macOS 10.15, *)
-public class DataGroup12 : DataGroup {
-
- public private(set) var issuingAuthority : String?
- public private(set) var dateOfIssue : String?
- public private(set) var otherPersonsDetails : String?
- public private(set) var endorsementsOrObservations : String?
- public private(set) var taxOrExitRequirements : String?
- public private(set) var frontImage : [UInt8]?
- public private(set) var rearImage : [UInt8]?
- public private(set) var personalizationTime : String?
- public private(set) var personalizationDeviceSerialNr : String?
-
- required init( _ data : [UInt8] ) throws {
- try super.init(data)
- datagroupType = .DG12
- }
-
- override func parse(_ data: [UInt8]) throws {
- var tag = try getNextTag()
- if tag != 0x5C {
- throw NFCPassportReaderError.InvalidResponse
- }
-
- // Skip the taglist - ideally we would check this but...
- let _ = try getNextValue()
-
- repeat {
- tag = try getNextTag()
- let val = try getNextValue()
-
- if tag == 0x5F19 {
- issuingAuthority = String( bytes:val, encoding:.utf8)
- } else if tag == 0x5F26 {
- dateOfIssue = parseDateOfIssue(value: val)
- } else if tag == 0xA0 {
- // Not yet handled
- } else if tag == 0x5F1B {
- endorsementsOrObservations = String( bytes:val, encoding:.utf8)
- } else if tag == 0x5F1C {
- taxOrExitRequirements = String( bytes:val, encoding:.utf8)
- } else if tag == 0x5F1D {
- frontImage = val
- } else if tag == 0x5F1E {
- rearImage = val
- } else if tag == 0x5F55 {
- personalizationTime = String( bytes:val, encoding:.utf8)
- } else if tag == 0x5F56 {
- personalizationDeviceSerialNr = String( bytes:val, encoding:.utf8)
- }
- } while pos < data.count
- }
-
- private func parseDateOfIssue(value: [UInt8]) -> String? {
- if value.count == 4 {
- return decodeBCD(value: value)
- } else {
- return decodeASCII(value: value)
- }
- }
-
- private func decodeASCII(value: [UInt8]) -> String? {
- return String(bytes:value, encoding:.utf8)
- }
-
- private func decodeBCD(value: [UInt8]) -> String? {
- value.map({ String(format: "%02X", $0) }).joined()
- }
-}
diff --git a/app/ios/AwesomeProject/DataGroups/DataGroup14.swift b/app/ios/AwesomeProject/DataGroups/DataGroup14.swift
deleted file mode 100644
index 8bb0124bb..000000000
--- a/app/ios/AwesomeProject/DataGroups/DataGroup14.swift
+++ /dev/null
@@ -1,31 +0,0 @@
-
-import Foundation
-
-// SecurityInfos ::= SET of SecurityInfo
-// SecurityInfo ::= SEQUENCE {
-// protocol OBJECT IDENTIFIER,
-// requiredData ANY DEFINED BY protocol,
-// optionalData ANY DEFINED BY protocol OPTIONAL
-@available(iOS 13, macOS 10.15, *)
-public class DataGroup14 : DataGroup {
- private var asn1 : ASN1Item!
- public private(set) var securityInfos : [SecurityInfo] = [SecurityInfo]()
-
- required init( _ data : [UInt8] ) throws {
- try super.init(data)
- datagroupType = .DG14
- }
-
- override func parse(_ data: [UInt8]) throws {
- let p = SimpleASN1DumpParser()
- asn1 = try p.parse(data: Data(body))
-
- // Bit of a hack at the moment - passing in the body - if we had a decent ASN1 parser then this would be better! ;)
- for i in 0 ..< asn1.getNumberOfChildren() {
- if let child = asn1.getChild(i),
- let secInfo = SecurityInfo.getInstance( object:child, body : body ) {
- securityInfos.append(secInfo)
- }
- }
- }
-}
diff --git a/app/ios/AwesomeProject/DataGroups/DataGroup15.swift b/app/ios/AwesomeProject/DataGroups/DataGroup15.swift
deleted file mode 100644
index ce6ffdbd5..000000000
--- a/app/ios/AwesomeProject/DataGroups/DataGroup15.swift
+++ /dev/null
@@ -1,40 +0,0 @@
-
-import Foundation
-import OpenSSL
-
-@available(iOS 13, macOS 10.15, *)
-public class DataGroup15 : DataGroup {
-
- public private(set) var rsaPublicKey : OpaquePointer?
- public private(set) var ecdsaPublicKey : OpaquePointer?
-
- deinit {
- if ( ecdsaPublicKey != nil ) {
- EVP_PKEY_free(ecdsaPublicKey);
- }
- if ( rsaPublicKey != nil ) {
- EVP_PKEY_free(rsaPublicKey);
- }
- }
-
- required init( _ data : [UInt8] ) throws {
- try super.init(data)
- datagroupType = .DG15
- }
-
-
- override func parse(_ data: [UInt8]) throws {
-
- // the public key can either be in EC (elliptic curve) or RSA format
- // Try ec first and if this fails try RSA
- // Note - this will be improved in a later version to read the ASN1 body to
- // check the actual type
- if let key = try? OpenSSLUtils.readECPublicKey( data:body ) {
- // NOTE We are responsible for freeing the key!
- ecdsaPublicKey = key
- } else if let key = try? OpenSSLUtils.readRSAPublicKey( data:body ) {
-
- rsaPublicKey = key
- }
- }
-}
diff --git a/app/ios/AwesomeProject/DataGroups/DataGroup2.swift b/app/ios/AwesomeProject/DataGroups/DataGroup2.swift
deleted file mode 100644
index eb3586d7b..000000000
--- a/app/ios/AwesomeProject/DataGroups/DataGroup2.swift
+++ /dev/null
@@ -1,164 +0,0 @@
-
-import Foundation
-
-#if !os(macOS)
-import UIKit
-#endif
-
-@available(iOS 13, macOS 10.15, *)
-public class DataGroup2 : DataGroup {
- public private(set) var nrImages : Int = 0
- public private(set) var versionNumber : Int = 0
- public private(set) var lengthOfRecord : Int = 0
- public private(set) var numberOfFacialImages : Int = 0
- public private(set) var facialRecordDataLength : Int = 0
- public private(set) var nrFeaturePoints : Int = 0
- public private(set) var gender : Int = 0
- public private(set) var eyeColor : Int = 0
- public private(set) var hairColor : Int = 0
- public private(set) var featureMask : Int = 0
- public private(set) var expression : Int = 0
- public private(set) var poseAngle : Int = 0
- public private(set) var poseAngleUncertainty : Int = 0
- public private(set) var faceImageType : Int = 0
- public private(set) var imageDataType : Int = 0
- public private(set) var imageWidth : Int = 0
- public private(set) var imageHeight : Int = 0
- public private(set) var imageColorSpace : Int = 0
- public private(set) var sourceType : Int = 0
- public private(set) var deviceType : Int = 0
- public private(set) var quality : Int = 0
- public private(set) var imageData : [UInt8] = []
-
-
-#if !os(macOS)
-func getImage() -> UIImage? {
- if imageData.count == 0 {
- return nil
- }
-
- let image = UIImage(data:Data(imageData) )
- return image
- }
-#endif
-
- required init( _ data : [UInt8] ) throws {
- try super.init(data)
- datagroupType = .DG2
- }
-
- override func parse(_ data: [UInt8]) throws {
- var tag = try getNextTag()
- if tag != 0x7F61 {
- throw NFCPassportReaderError.InvalidResponse
- }
- _ = try getNextLength()
-
- // Tag should be 0x02
- tag = try getNextTag()
- if tag != 0x02 {
- throw NFCPassportReaderError.InvalidResponse
- }
- nrImages = try Int(getNextValue()[0])
-
- // Next tag is 0x7F60
- tag = try getNextTag()
- if tag != 0x7F60 {
- throw NFCPassportReaderError.InvalidResponse
- }
- _ = try getNextLength()
-
- // Next tag is 0xA1 (Biometric Header Template) - don't care about this
- tag = try getNextTag()
- if tag != 0xA1 {
- throw NFCPassportReaderError.InvalidResponse
- }
- _ = try getNextValue()
-
- // Now we get to the good stuff - next tag is either 5F2E or 7F2E
- tag = try getNextTag()
- if tag != 0x5F2E && tag != 0x7F2E {
- throw NFCPassportReaderError.InvalidResponse
- }
- let value = try getNextValue()
-
- try parseISO19794_5( data:value )
- }
-
- func parseISO19794_5( data : [UInt8] ) throws {
- // Validate header - 'F', 'A' 'C' 0x00 - 0x46414300
- if data[0] != 0x46 && data[1] != 0x41 && data[2] != 0x43 && data[3] != 0x00 {
- throw NFCPassportReaderError.InvalidResponse
- }
-
- var offset = 4
- versionNumber = binToInt(data[offset.. UIImage? {
- if imageData.count == 0 {
- return nil
- }
-
- let image = UIImage(data:Data(imageData) )
- return image
- }
-#endif
-
-
- override func parse(_ data: [UInt8]) throws {
- var tag = try getNextTag()
- if tag != 0x02 {
- throw NFCPassportReaderError.InvalidResponse
- }
- _ = try getNextValue()
-
- tag = try getNextTag()
- if tag != 0x5F43 {
- throw NFCPassportReaderError.InvalidResponse
- }
-
- imageData = try getNextValue()
- }
-}
diff --git a/app/ios/AwesomeProject/DataGroups/DataGroupId.swift b/app/ios/AwesomeProject/DataGroups/DataGroupId.swift
deleted file mode 100644
index b2fcab535..000000000
--- a/app/ios/AwesomeProject/DataGroups/DataGroupId.swift
+++ /dev/null
@@ -1,98 +0,0 @@
-
-import Foundation
-
-@available(iOS 13, macOS 10.15, *)
-public enum DataGroupId : Int, CaseIterable {
- case COM = 0x60
- case DG1 = 0x61
- case DG2 = 0x75
- case DG3 = 0x63
- case DG4 = 0x76
- case DG5 = 0x65
- case DG6 = 0x66
- case DG7 = 0x67
- case DG8 = 0x68
- case DG9 = 0x69
- case DG10 = 0x6A
- case DG11 = 0x6B
- case DG12 = 0x6C
- case DG13 = 0x6D
- case DG14 = 0x6E
- case DG15 = 0x6F
- case DG16 = 0x70
- case SOD = 0x77
- case Unknown = 0x00
-
- public func getName() -> String {
- switch( self ) {
- case .COM: return "COM"
- case .DG1: return "DG1"
- case .DG2: return "DG2"
- case .DG3: return "DG3"
- case .DG4: return "DG4"
- case .DG5: return "DG5"
- case .DG6: return "DG6"
- case .DG7: return "DG7"
- case .DG8: return "DG8"
- case .DG9: return "DG9"
- case .DG10: return "DG10"
- case .DG11: return "DG11"
- case .DG12: return "DG12"
- case .DG13: return "DG13"
- case .DG14: return "DG14"
- case .DG15: return "DG15"
- case .DG16: return "DG16"
- case .SOD: return "SOD"
- case .Unknown: return "Unknown"
- }
- }
-
- static public func getIDFromName( name: String ) -> DataGroupId {
- switch( name ) {
- case "COM": return .COM
- case "DG1": return .DG1
- case "DG2": return .DG2
- case "DG3": return .DG3
- case "DG4": return .DG4
- case "DG5": return .DG5
- case "DG6": return .DG6
- case "DG7": return .DG7
- case "DG8": return .DG8
- case "DG9": return .DG9
- case "DG10": return .DG10
- case "DG11": return .DG11
- case "DG12": return .DG12
- case "DG13": return .DG13
- case "DG14": return .DG14
- case "DG15": return .DG15
- case "DG16": return .DG16
- case "SOD": return .SOD
- default: return .Unknown
- }
- }
-
- func getFileIDTag() -> [UInt8]? {
- switch( self ) {
- case .COM: return [0x01,0x1E]
- case .DG1: return [0x01,0x01]
- case .DG2: return [0x01,0x02]
- case .DG3: return [0x01,0x03]
- case .DG4: return [0x01,0x04]
- case .DG5: return [0x01,0x05]
- case .DG6: return [0x01,0x06]
- case .DG7: return [0x01,0x07]
- case .DG8: return [0x01,0x08]
- case .DG9: return [0x01,0x09]
- case .DG10: return [0x01,0x0A]
- case .DG11: return [0x01,0x0B]
- case .DG12: return [0x01,0x0C]
- case .DG13: return [0x01,0x0D]
- case .DG14: return [0x01,0x0E]
- case .DG15: return [0x01,0x0F]
- case .DG16: return [0x01,0x10]
- case .SOD: return [0x01,0x1D]
- case .Unknown: return nil
- }
- }
-}
-
diff --git a/app/ios/AwesomeProject/DataGroups/NotImplementedDG.swift b/app/ios/AwesomeProject/DataGroups/NotImplementedDG.swift
deleted file mode 100644
index 58e2c7552..000000000
--- a/app/ios/AwesomeProject/DataGroups/NotImplementedDG.swift
+++ /dev/null
@@ -1,11 +0,0 @@
-
-import Foundation
-
-@available(iOS 13, macOS 10.15, *)
-public class NotImplementedDG : DataGroup {
- required init( _ data : [UInt8] ) throws {
- try super.init(data)
- datagroupType = .Unknown
- }
-}
-
diff --git a/app/ios/AwesomeProject/DataGroups/PACEInfo.swift b/app/ios/AwesomeProject/DataGroups/PACEInfo.swift
deleted file mode 100644
index fe214c181..000000000
--- a/app/ios/AwesomeProject/DataGroups/PACEInfo.swift
+++ /dev/null
@@ -1,397 +0,0 @@
-
-import Foundation
-import OpenSSL
-
-public enum PACEMappingType {
- case GM // Generic Mapping
- case IM // Integrated Mapping
- case CAM // Chip Authentication Mapping
-}
-
-@available(iOS 13, macOS 10.15, *)
-public class PACEInfo : SecurityInfo {
-
- // Standardized domain parameters. Based on Table 6.
- public static let PARAM_ID_GFP_1024_160 = 0
- public static let PARAM_ID_GFP_2048_224 = 1
- public static let PARAM_ID_GFP_2048_256 = 2
- public static let PARAM_ID_ECP_NIST_P192_R1 = 8
- public static let PARAM_ID_ECP_BRAINPOOL_P192_R1 = 9
- public static let PARAM_ID_ECP_NIST_P224_R1 = 10
- public static let PARAM_ID_ECP_BRAINPOOL_P224_R1 = 11
- public static let PARAM_ID_ECP_NIST_P256_R1 = 12
- public static let PARAM_ID_ECP_BRAINPOOL_P256_R1 = 13
- public static let PARAM_ID_ECP_BRAINPOOL_P320_R1 = 14
- public static let PARAM_ID_ECP_NIST_P384_R1 = 15
- public static let PARAM_ID_ECP_BRAINPOOL_P384_R1 = 16
- public static let PARAM_ID_ECP_BRAINPOOL_P512_R1 = 17
- public static let PARAM_ID_ECP_NIST_P521_R1 = 18
-
- static let allowedIdentifiers = [
- ID_PACE_DH_GM_3DES_CBC_CBC,
- ID_PACE_DH_GM_AES_CBC_CMAC_128,
- ID_PACE_DH_GM_AES_CBC_CMAC_192,
- ID_PACE_DH_GM_AES_CBC_CMAC_256,
- ID_PACE_DH_IM_3DES_CBC_CBC,
- ID_PACE_DH_IM_AES_CBC_CMAC_128,
- ID_PACE_DH_IM_AES_CBC_CMAC_192,
- ID_PACE_DH_IM_AES_CBC_CMAC_256,
- ID_PACE_ECDH_GM_3DES_CBC_CBC,
- ID_PACE_ECDH_GM_AES_CBC_CMAC_128,
- ID_PACE_ECDH_GM_AES_CBC_CMAC_192,
- ID_PACE_ECDH_GM_AES_CBC_CMAC_256,
- ID_PACE_ECDH_IM_3DES_CBC_CBC,
- ID_PACE_ECDH_IM_AES_CBC_CMAC_128,
- ID_PACE_ECDH_IM_AES_CBC_CMAC_192,
- ID_PACE_ECDH_IM_AES_CBC_CMAC_256,
- ID_PACE_ECDH_CAM_AES_CBC_CMAC_128,
- ID_PACE_ECDH_CAM_AES_CBC_CMAC_192,
- ID_PACE_ECDH_CAM_AES_CBC_CMAC_256]
-
- var oid : String
- var version : Int
- var parameterId : Int?
-
- static func checkRequiredIdentifier(_ oid : String) -> Bool {
- return allowedIdentifiers.contains( oid )
- }
-
- init(oid: String, version: Int, parameterId: Int?) {
- self.oid = oid
- self.version = version
- self.parameterId = parameterId
- }
-
- public override func getObjectIdentifier() -> String {
- return oid
- }
-
- public override func getProtocolOIDString() -> String {
- return PACEInfo.toProtocolOIDString(oid:oid)
- }
-
- public func getVersion() -> Int {
- return version
- }
-
- public func getParameterId() -> Int? {
- return parameterId
- }
-
- public func getParameterSpec() throws -> Int32 {
- return try PACEInfo.getParameterSpec(stdDomainParam: self.parameterId ?? -1 )
- }
-
- public func getMappingType() throws -> PACEMappingType {
- return try PACEInfo.toMappingType(oid: oid); // Either GM, CAM, or IM.
- }
-
- public func getKeyAgreementAlgorithm() throws -> String {
- return try PACEInfo.toKeyAgreementAlgorithm(oid: oid); // Either DH or ECDH.
- }
-
- public func getCipherAlgorithm() throws -> String {
- return try PACEInfo.toCipherAlgorithm(oid: oid); // Either DESede or AES.
- }
-
- public func getDigestAlgorithm() throws -> String {
- return try PACEInfo.toDigestAlgorithm(oid: oid); // Either SHA-1 or SHA-256.
- }
-
- public func getKeyLength() throws -> Int {
- return try PACEInfo.toKeyLength(oid: oid); // Of the enc cipher. Either 128, 192, or 256.
- }
-
- /// Caller is required to free the returned EVP_PKEY value
- public func createMappingKey( ) throws -> OpaquePointer {
- // This will get freed later
- let mappingKey : OpaquePointer = EVP_PKEY_new()
-
- switch try getKeyAgreementAlgorithm() {
- case "DH":
- Log.debug( "Generating DH mapping keys")
- //The EVP_PKEY_CTX_set_dh_rfc5114() and EVP_PKEY_CTX_set_dhx_rfc5114() macros are synonymous. They set the DH parameters to the values defined in RFC5114. The rfc5114 parameter must be 1, 2 or 3 corresponding to RFC5114 sections 2.1, 2.2 and 2.3. or 0 to clear the stored value. This macro can be called during parameter generation. The ctx must have a key type of EVP_PKEY_DHX. The rfc5114 parameter and the nid parameter are mutually exclusive.
- var dhKey : OpaquePointer? = nil
- switch try getParameterSpec() {
- case 0:
- Log.verbose( "Using DH_get_1024_160" )
- dhKey = DH_get_1024_160()
- case 1:
- Log.verbose( "Using DH_get_2048_224" )
- dhKey = DH_get_2048_224()
- case 2:
- Log.verbose( "Using DH_get_2048_256" )
- dhKey = DH_get_2048_256()
- default:
- // Error
- break
- }
- guard dhKey != nil else {
- throw NFCPassportReaderError.InvalidDataPassed("Unable to create DH mapping key")
- }
- defer{ DH_free( dhKey ) }
-
- DH_generate_key(dhKey)
- EVP_PKEY_set1_DH(mappingKey, dhKey)
-
- case "ECDH":
- let parameterSpec = try getParameterSpec()
- Log.debug( "Generating ECDH mapping keys from parameterSpec - \(parameterSpec)")
- guard let ecKey = EC_KEY_new_by_curve_name(parameterSpec) else {
- throw NFCPassportReaderError.InvalidDataPassed("Unable to create EC mapping key")
- }
- defer{ EC_KEY_free( ecKey ) }
-
- EC_KEY_generate_key(ecKey)
- EVP_PKEY_set1_EC_KEY(mappingKey, ecKey)
- default:
- throw NFCPassportReaderError.InvalidDataPassed("Unsupported agreement algorithm")
- }
-
- return mappingKey
- }
-
- public static func getParameterSpec(stdDomainParam : Int) throws -> Int32 {
- switch (stdDomainParam) {
- case PARAM_ID_GFP_1024_160:
- return 0 // "rfc5114_1024_160";
- case PARAM_ID_GFP_2048_224:
- return 1 // "rfc5114_2048_224";
- case PARAM_ID_GFP_2048_256:
- return 2 // "rfc5114_2048_256";
- case PARAM_ID_ECP_NIST_P192_R1:
- return NID_X9_62_prime192v1 // "secp192r1";
- case PARAM_ID_ECP_NIST_P224_R1:
- return NID_secp224r1 // "secp224r1";
- case PARAM_ID_ECP_NIST_P256_R1:
- return NID_X9_62_prime256v1 //"secp256r1";
- case PARAM_ID_ECP_NIST_P384_R1:
- return NID_secp384r1 // "secp384r1";
- case PARAM_ID_ECP_BRAINPOOL_P192_R1:
- return NID_brainpoolP192r1 //"brainpoolp192r1";
- case PARAM_ID_ECP_BRAINPOOL_P224_R1:
- return NID_brainpoolP224r1 // "brainpoolp224r1";
- case PARAM_ID_ECP_BRAINPOOL_P256_R1:
- return NID_brainpoolP256r1 // "brainpoolp256r1";
- case PARAM_ID_ECP_BRAINPOOL_P320_R1:
- return NID_brainpoolP320r1 //"brainpoolp320r1";
- case PARAM_ID_ECP_BRAINPOOL_P384_R1:
- return NID_brainpoolP384r1 //"brainpoolp384r1";
- case PARAM_ID_ECP_BRAINPOOL_P512_R1:
- return NID_brainpoolP512r1 //"";
- case PARAM_ID_ECP_NIST_P521_R1:
- return NID_secp521r1 //"secp224r1";
- default:
- throw NFCPassportReaderError.InvalidDataPassed( "Unable to lookup p arameterSpec - invalid oid" )
- }
- }
-
- public static func toMappingType( oid : String ) throws -> PACEMappingType {
- if ID_PACE_DH_GM_3DES_CBC_CBC == oid
- || ID_PACE_DH_GM_AES_CBC_CMAC_128 == oid
- || ID_PACE_DH_GM_AES_CBC_CMAC_192 == oid
- || ID_PACE_DH_GM_AES_CBC_CMAC_256 == oid
- || ID_PACE_ECDH_GM_3DES_CBC_CBC == oid
- || ID_PACE_ECDH_GM_AES_CBC_CMAC_128 == oid
- || ID_PACE_ECDH_GM_AES_CBC_CMAC_192 == oid
- || ID_PACE_ECDH_GM_AES_CBC_CMAC_256 == oid {
- return PACEMappingType.GM
- } else if ID_PACE_DH_IM_3DES_CBC_CBC == oid
- || ID_PACE_DH_IM_AES_CBC_CMAC_128 == oid
- || ID_PACE_DH_IM_AES_CBC_CMAC_192 == oid
- || ID_PACE_DH_IM_AES_CBC_CMAC_256 == oid
- || ID_PACE_ECDH_IM_3DES_CBC_CBC == oid
- || ID_PACE_ECDH_IM_AES_CBC_CMAC_128 == oid
- || ID_PACE_ECDH_IM_AES_CBC_CMAC_192 == oid
- || ID_PACE_ECDH_IM_AES_CBC_CMAC_256 == oid {
- return PACEMappingType.IM
- } else if ID_PACE_ECDH_CAM_AES_CBC_CMAC_128 == oid
- || ID_PACE_ECDH_CAM_AES_CBC_CMAC_192 == oid
- || ID_PACE_ECDH_CAM_AES_CBC_CMAC_256 == oid {
- return PACEMappingType.CAM
- }
-
- throw NFCPassportReaderError.InvalidDataPassed( "Unable to lookup mapping type - invalid oid" )
- }
-
-
- /// Returns the key agreement algorithm - DH or ECDH for the given Chip Authentication oid
- /// - Parameter oid: the object identifier
- /// - Returns: key agreement algorithm
- /// - Throws: InvalidDataPassed error if invalid oid specified
- public static func toKeyAgreementAlgorithm( oid : String ) throws -> String {
- if ID_PACE_DH_GM_3DES_CBC_CBC == oid
- || ID_PACE_DH_GM_AES_CBC_CMAC_128 == oid
- || ID_PACE_DH_GM_AES_CBC_CMAC_192 == oid
- || ID_PACE_DH_GM_AES_CBC_CMAC_256 == oid
- || ID_PACE_DH_IM_3DES_CBC_CBC == oid
- || ID_PACE_DH_IM_AES_CBC_CMAC_128 == oid
- || ID_PACE_DH_IM_AES_CBC_CMAC_192 == oid
- || ID_PACE_DH_IM_AES_CBC_CMAC_256 == oid {
- return "DH"
- } else if ID_PACE_ECDH_GM_3DES_CBC_CBC == oid
- || ID_PACE_ECDH_GM_AES_CBC_CMAC_128 == oid
- || ID_PACE_ECDH_GM_AES_CBC_CMAC_192 == oid
- || ID_PACE_ECDH_GM_AES_CBC_CMAC_256 == oid
- || ID_PACE_ECDH_IM_3DES_CBC_CBC == oid
- || ID_PACE_ECDH_IM_AES_CBC_CMAC_128 == oid
- || ID_PACE_ECDH_IM_AES_CBC_CMAC_192 == oid
- || ID_PACE_ECDH_IM_AES_CBC_CMAC_256 == oid
- || ID_PACE_ECDH_CAM_AES_CBC_CMAC_128 == oid
- || ID_PACE_ECDH_CAM_AES_CBC_CMAC_192 == oid
- || ID_PACE_ECDH_CAM_AES_CBC_CMAC_256 == oid {
- return "ECDH"
- }
- throw NFCPassportReaderError.InvalidDataPassed( "Unable to lookup key agreement algorithm - invalid oid" )
- }
-
- /// Returns the cipher algorithm - DESede or AES for the given Chip Authentication oid
- /// - Parameter oid: the object identifier
- /// - Returns: the cipher algorithm type
- /// - Throws: InvalidDataPassed error if invalid oid specified
- public static func toCipherAlgorithm( oid : String ) throws -> String {
- if ID_PACE_DH_GM_3DES_CBC_CBC == oid
- || ID_PACE_DH_IM_3DES_CBC_CBC == oid
- || ID_PACE_ECDH_GM_3DES_CBC_CBC == oid
- || ID_PACE_ECDH_IM_3DES_CBC_CBC == oid {
- return "DESede"
- } else if ID_PACE_DH_GM_AES_CBC_CMAC_128 == oid
- || ID_PACE_DH_GM_AES_CBC_CMAC_192 == oid
- || ID_PACE_DH_GM_AES_CBC_CMAC_256 == oid
- || ID_PACE_DH_IM_AES_CBC_CMAC_128 == oid
- || ID_PACE_DH_IM_AES_CBC_CMAC_192 == oid
- || ID_PACE_DH_IM_AES_CBC_CMAC_256 == oid
- || ID_PACE_ECDH_GM_AES_CBC_CMAC_128 == oid
- || ID_PACE_ECDH_GM_AES_CBC_CMAC_192 == oid
- || ID_PACE_ECDH_GM_AES_CBC_CMAC_256 == oid
- || ID_PACE_ECDH_IM_AES_CBC_CMAC_128 == oid
- || ID_PACE_ECDH_IM_AES_CBC_CMAC_192 == oid
- || ID_PACE_ECDH_IM_AES_CBC_CMAC_256 == oid
- || ID_PACE_ECDH_CAM_AES_CBC_CMAC_128 == oid
- || ID_PACE_ECDH_CAM_AES_CBC_CMAC_192 == oid
- || ID_PACE_ECDH_CAM_AES_CBC_CMAC_256 == oid {
- return "AES"
- }
- throw NFCPassportReaderError.InvalidDataPassed( "Unable to lookup cipher algorithm - invalid oid" )
- }
-
- public static func toDigestAlgorithm( oid : String ) throws -> String {
- if ID_PACE_DH_GM_3DES_CBC_CBC == oid
- || ID_PACE_DH_IM_3DES_CBC_CBC == oid
- || ID_PACE_ECDH_GM_3DES_CBC_CBC == oid
- || ID_PACE_ECDH_IM_3DES_CBC_CBC == oid
- || ID_PACE_DH_GM_AES_CBC_CMAC_128 == oid
- || ID_PACE_DH_IM_AES_CBC_CMAC_128 == oid
- || ID_PACE_ECDH_GM_AES_CBC_CMAC_128 == oid
- || ID_PACE_ECDH_IM_AES_CBC_CMAC_128 == oid
- || ID_PACE_ECDH_CAM_AES_CBC_CMAC_128 == oid {
- return "SHA-1"
- } else if ID_PACE_DH_GM_AES_CBC_CMAC_192 == oid
- || ID_PACE_DH_IM_AES_CBC_CMAC_192 == oid
- || ID_PACE_ECDH_GM_AES_CBC_CMAC_192 == oid
- || ID_PACE_ECDH_IM_AES_CBC_CMAC_192 == oid
- || ID_PACE_ECDH_CAM_AES_CBC_CMAC_192 == oid
- || ID_PACE_DH_GM_AES_CBC_CMAC_256 == oid
- || ID_PACE_DH_IM_AES_CBC_CMAC_256 == oid
- || ID_PACE_ECDH_GM_AES_CBC_CMAC_256 == oid
- || ID_PACE_ECDH_IM_AES_CBC_CMAC_256 == oid
- || ID_PACE_ECDH_CAM_AES_CBC_CMAC_256 == oid {
- return "SHA-256"
- }
-
- throw NFCPassportReaderError.InvalidDataPassed( "Unable to lookup digest algorithm - invalid oid" )
-
- }
- /// Returns the key length in bits (128, 192, or 256) for the given Chip Authentication oid
- /// - Parameter oid: the object identifier
- /// - Returns: the key length in bits
- /// - Throws: InvalidDataPassed error if invalid oid specified
- public static func toKeyLength( oid : String ) throws -> Int {
- if ID_PACE_DH_GM_3DES_CBC_CBC == oid
- || ID_PACE_DH_IM_3DES_CBC_CBC == oid
- || ID_PACE_ECDH_GM_3DES_CBC_CBC == oid
- || ID_PACE_ECDH_IM_3DES_CBC_CBC == oid
- || ID_PACE_DH_GM_AES_CBC_CMAC_128 == oid
- || ID_PACE_DH_IM_AES_CBC_CMAC_128 == oid
- || ID_PACE_ECDH_GM_AES_CBC_CMAC_128 == oid
- || ID_PACE_ECDH_IM_AES_CBC_CMAC_128 == oid
- || ID_PACE_ECDH_CAM_AES_CBC_CMAC_128 == oid {
- return 128
- } else if ID_PACE_DH_GM_AES_CBC_CMAC_192 == oid
- || ID_PACE_ECDH_GM_AES_CBC_CMAC_192 == oid
- || ID_PACE_DH_IM_AES_CBC_CMAC_192 == oid
- || ID_PACE_ECDH_IM_AES_CBC_CMAC_192 == oid
- || ID_PACE_ECDH_CAM_AES_CBC_CMAC_192 == oid {
- return 192
- } else if ID_PACE_DH_GM_AES_CBC_CMAC_256 == oid
- || ID_PACE_DH_IM_AES_CBC_CMAC_256 == oid
- || ID_PACE_ECDH_GM_AES_CBC_CMAC_256 == oid
- || ID_PACE_ECDH_IM_AES_CBC_CMAC_256 == oid
- || ID_PACE_ECDH_CAM_AES_CBC_CMAC_256 == oid {
- return 256
- }
- throw NFCPassportReaderError.InvalidDataPassed( "Unable to get key length - invalid oid" )
- }
-
- private static func toProtocolOIDString(oid : String) -> String {
- if ID_PACE_DH_GM_3DES_CBC_CBC == oid {
- return "id-PACE-DH-GM-3DES-CBC-CBC"
- }
- if ID_PACE_DH_GM_AES_CBC_CMAC_128 == oid {
- return "id-PACE-DH-GM-AES-CBC-CMAC-128"
- }
- if ID_PACE_DH_GM_AES_CBC_CMAC_192 == oid {
- return "id-PACE-DH-GM-AES-CBC-CMAC-192"
- }
- if ID_PACE_DH_GM_AES_CBC_CMAC_256 == oid {
- return "id-PACE-DH-GM-AES-CBC-CMAC-256"
- }
- if ID_PACE_DH_IM_3DES_CBC_CBC == oid {
- return "id-PACE-DH-IM-3DES-CBC-CBC"
- }
- if ID_PACE_DH_IM_AES_CBC_CMAC_128 == oid {
- return "id-PACE-DH-IM-AES-CBC-CMAC-128"
- }
- if ID_PACE_DH_IM_AES_CBC_CMAC_192 == oid {
- return "id-PACE-DH-IM-AES-CBC-CMAC-192"
- }
- if ID_PACE_DH_IM_AES_CBC_CMAC_256 == oid {
- return "id-PACE_DH-IM-AES-CBC-CMAC-256"
- }
- if ID_PACE_ECDH_GM_3DES_CBC_CBC == oid {
- return "id-PACE-ECDH-GM-3DES-CBC-CBC"
- }
- if ID_PACE_ECDH_GM_AES_CBC_CMAC_128 == oid {
- return "id-PACE-ECDH-GM-AES-CBC-CMAC-128"
- }
- if ID_PACE_ECDH_GM_AES_CBC_CMAC_192 == oid {
- return "id-PACE-ECDH-GM-AES-CBC-CMAC-192"
- }
- if ID_PACE_ECDH_GM_AES_CBC_CMAC_256 == oid {
- return "id-PACE-ECDH-GM-AES-CBC-CMAC-256"
- }
- if ID_PACE_ECDH_IM_3DES_CBC_CBC == oid {
- return "id-PACE-ECDH-IM_3DES-CBC-CBC"
- }
- if ID_PACE_ECDH_IM_AES_CBC_CMAC_128 == oid {
- return "id-PACE-ECDH-IM-AES-CBC-CMAC-128"
- }
- if ID_PACE_ECDH_IM_AES_CBC_CMAC_192 == oid {
- return "id-PACE-ECDH-IM-AES-CBC-CMAC-192"
- }
- if ID_PACE_ECDH_IM_AES_CBC_CMAC_256 == oid {
- return "id-PACE-ECDH-IM-AES-CBC-CMAC-256"
- }
- if ID_PACE_ECDH_CAM_AES_CBC_CMAC_128 == oid {
- return "id-PACE-ECDH-CAM-AES-CBC-CMAC-128"
- }
- if ID_PACE_ECDH_CAM_AES_CBC_CMAC_192 == oid {
- return "id-PACE-ECDH-CAM-AES-CBC-CMAC-192"
- }
- if ID_PACE_ECDH_CAM_AES_CBC_CMAC_256 == oid {
- return "id-PACE-ECDH-CAM-AES-CBC-CMAC-256"
- }
-
- return oid
- }
-}
diff --git a/app/ios/AwesomeProject/DataGroups/SOD.swift b/app/ios/AwesomeProject/DataGroups/SOD.swift
deleted file mode 100644
index b4f779aac..000000000
--- a/app/ios/AwesomeProject/DataGroups/SOD.swift
+++ /dev/null
@@ -1,234 +0,0 @@
-
-import Foundation
-import OpenSSL
-
-
-// Format of SOD: ASN1 - Signed Data (taken from rfc5652 - https://tools.ietf.org/html/rfc5652):
-// The SOD is a CMS container of type Signed-data
-//
-// Note - ideally I'd be using a proper ASN1 parser, however currently there isn't a reliable one for Swift
-// and I haven't written on (yet?). So for the moment, I'm relying on the output from ASN1Dump and a
-// simple parser for that
-//
-// Sequence
-// Object ID: signedData
-// Content: SignedData
-// SignedData ::= SEQUENCE {
-// INTEGER version CMSVersion,
-// SET digestAlgorithms DigestAlgorithmIdentifiers,
-// SEQUENCE encapContentInfo EncapsulatedContentInfo,
-// certificates [0] IMPLICIT CertificateSet OPTIONAL,
-// crls [1] IMPLICIT RevocationInfoChoices OPTIONAL,
-// SET signerInfos SignerInfos }
-//
-// AlgorithmIdentifier ::= SEQUENCE {
-// algorithm OBJECT IDENTIFIER,
-// parameters ANY OPTIONAL
-// }
-//
-// EncapsulatedContentInfo ::= SEQUENCE {
-// eContentType ContentType,
-// eContent [0] EXPLICIT OCTET STRING OPTIONAL }
-//
-// ContentType ::= OBJECT IDENTIFIER
-//
-// SignerInfos ::= SET OF SignerInfo
-//
-// SignerInfo ::= SEQUENCE {
-// version CMSVersion,
-// sid SignerIdentifier,
-// digestAlgorithm DigestAlgorithmIdentifier,
-// signedAttrs [0] IMPLICIT SignedAttributes OPTIONAL,
-// signatureAlgorithm SignatureAlgorithmIdentifier,
-// signature SignatureValue,
-// unsignedAttrs [1] IMPLICIT UnsignedAttributes OPTIONAL }
-//
-// SignerIdentifier ::= CHOICE {
-// issuerAndSerialNumber IssuerAndSerialNumber,
-// subjectKeyIdentifier [0] SubjectKeyIdentifier }
-//
-// SignedAttributes ::= SET SIZE (1..MAX) OF Attribute
-// UnsignedAttributes ::= SET SIZE (1..MAX) OF Attribute
-// Attribute ::= SEQUENCE {
-// attrType OBJECT IDENTIFIER,
-// attrValues SET OF AttributeValue }
-// AttributeValue ::= ANY
-// SignatureValue ::= OCTET STRING
-@available(iOS 13, macOS 10.15, *)
-class SOD : DataGroup {
-
- public private(set) var pkcs7CertificateData : [UInt8] = []
- private var asn1 : ASN1Item!
- private var pubKey : OpaquePointer?
-
- required init( _ data : [UInt8] ) throws {
- try super.init(data)
- self.pkcs7CertificateData = body
- datagroupType = .SOD
- }
-
- deinit {
- if ( pubKey != nil ) {
- EVP_PKEY_free(pubKey);
- }
- }
-
- override func parse(_ data: [UInt8]) throws {
- let p = SimpleASN1DumpParser()
- asn1 = try p.parse(data: Data(body))
- }
-
- /// Returns the public key from the embedded X509 certificate
- /// - Returns pointer to the public key
- func getPublicKey( ) throws -> OpaquePointer {
-
- if let key = pubKey {
- return key
- }
-
- let certs = try OpenSSLUtils.getX509CertificatesFromPKCS7(pkcs7Der:Data(pkcs7CertificateData))
- if let key = X509_get_pubkey (certs[0].cert) {
- pubKey = key
- return key
- }
-
- throw OpenSSLError.UnableToExtractSignedDataFromPKCS7("Unable to get public key")
- }
-
-
- /// Extracts the encapsulated content section from a SignedData PKCS7 container (if present)
- /// - Returns: The encapsulated content from a PKCS7 container if we could read it
- /// - Throws: Error if we can't find or read the encapsulated content
- func getEncapsulatedContent() throws -> Data {
- guard let signedData = asn1.getChild(1)?.getChild(0),
- let encContent = signedData.getChild(2)?.getChild(1),
- let content = encContent.getChild(0) else {
-
- throw OpenSSLError.UnableToExtractSignedDataFromPKCS7("Data in invalid format")
- }
-
- var sigData : Data?
- if content.type.hasPrefix("OCTET STRING" ) {
- sigData = Data(hexRepToBin( content.value ))
- }
-
- guard let ret = sigData else { throw OpenSSLError.UnableToExtractSignedDataFromPKCS7("noDataReturned") }
- return ret
- }
-
- /// Gets the digest algorithm used to hash the encapsulated content in the signed data section (if present)
- /// - Returns: The digest algorithm used to hash the encapsulated content in the signed data section
- /// - Throws: Error if we can't find or read the digest algorithm
- func getEncapsulatedContentDigestAlgorithm() throws -> String {
- guard let signedData = asn1.getChild(1)?.getChild(0),
- let digestAlgo = signedData.getChild(1)?.getChild(0)?.getChild(0) else {
- throw OpenSSLError.UnableToExtractSignedDataFromPKCS7("Data in invalid format")
- }
-
- return String(digestAlgo.value)
- }
-
- /// Gets the signed attributes section (if present)
- /// - Returns: the signed attributes section
- /// - Throws: Error if we can't find or read the signed attributes
- func getSignedAttributes( ) throws -> Data {
-
- // Get the SignedAttributes section.
- guard let signedData = asn1.getChild(1)?.getChild(0),
- let signerInfo = signedData.getChild(4),
- let signedAttrs = signerInfo.getChild(0)?.getChild(3) else {
-
- throw OpenSSLError.UnableToExtractSignedDataFromPKCS7("Data in invalid format")
- }
-
- var bytes = [UInt8](self.pkcs7CertificateData[signedAttrs.pos ..< signedAttrs.pos + signedAttrs.headerLen + signedAttrs.length])
-
- // The first byte will be 0xA0 -> as its a explicit tag for a contextual item which we need to convert
- // for the hash to calculate correctly
- // We know that the actual tag is a SET (0x31) - See section 5.4 of https://tools.ietf.org/html/rfc5652
- // So we need to change this from 0xA0 to 0x31
- if bytes[0] == 0xA0 {
- bytes[0] = 0x31
- }
- let signedAttribs = Data(bytes)
-
- return signedAttribs
- }
-
-/// Gets the message digest from the signed attributes section (if present)
-/// - Returns: the message digest
-/// - Throws: Error if we can't find or read the message digest
- func getMessageDigestFromSignedAttributes( ) throws -> Data {
-
- // For the SOD, the SignedAttributes consists of:
- // A Content type Object (which has the value of the attributes content type)
- // A messageDigest Object which has the message digest as it value
- // We want the messageDigest value
-
- guard let signedData = asn1.getChild(1)?.getChild(0),
- let signerInfo = signedData.getChild(4),
- let signedAttrs = signerInfo.getChild(0)?.getChild(3) else {
-
- throw OpenSSLError.UnableToExtractSignedDataFromPKCS7("Data in invalid format")
- }
-
- // Find the messageDigest in the signedAttributes section
- var sigData : Data?
- for i in 0 ..< signedAttrs.getNumberOfChildren() {
- let attrObj = signedAttrs.getChild(i)
- if attrObj?.getChild(0)?.value == "messageDigest" {
- if let set = attrObj?.getChild(1),
- let digestVal = set.getChild(0) {
-
- if digestVal.type.hasPrefix("OCTET STRING" ) {
- sigData = Data(hexRepToBin( digestVal.value ) )
- }
- }
- }
- }
-
- guard let messageDigest = sigData else { throw OpenSSLError.UnableToExtractSignedDataFromPKCS7("No messageDigest Returned") }
-
- return messageDigest
- }
-
- /// Gets the signature data (if present)
- /// - Returns: the signature
- /// - Throws: Error if we can't find or read the signature
- func getSignature( ) throws -> Data {
-
- guard let signedData = asn1.getChild(1)?.getChild(0),
- let signerInfo = signedData.getChild(4),
- let signature = signerInfo.getChild(0)?.getChild(5) else {
-
- throw OpenSSLError.UnableToExtractSignedDataFromPKCS7("Data in invalid format")
- }
-
- var sigData : Data?
- if signature.type.hasPrefix("OCTET STRING" ) {
- sigData = Data(hexRepToBin( signature.value ))
- }
-
- guard let ret = sigData else { throw OpenSSLError.UnableToExtractSignedDataFromPKCS7("noDataReturned") }
- return ret
- }
-
- /// Gets the signature algorithm used (if present)
- /// - Returns: the signature algorithm used
- /// - Throws: Error if we can't find or read the signature algorithm
- func getSignatureAlgorithm( ) throws -> String {
-
- guard let signedData = asn1.getChild(1)?.getChild(0),
- let signerInfo = signedData.getChild(4),
- let signatureAlgo = signerInfo.getChild(0)?.getChild(4)?.getChild(0) else {
-
- throw OpenSSLError.UnableToExtractSignedDataFromPKCS7("Data in invalid format")
- }
-
- // Vals I've seen are:
- // sha1WithRSAEncryption => default pkcs1
- // sha256WithRSAEncryption => default pkcs1
- // rsassaPss => pss
- return signatureAlgo.value
- }
-}
diff --git a/app/ios/AwesomeProject/DataGroups/SecurityInfo.swift b/app/ios/AwesomeProject/DataGroups/SecurityInfo.swift
deleted file mode 100644
index 5b1c651dd..000000000
--- a/app/ios/AwesomeProject/DataGroups/SecurityInfo.swift
+++ /dev/null
@@ -1,130 +0,0 @@
-
-import Foundation
-import OpenSSL
-
-@available(iOS 13, macOS 10.15,*)
-public class SecurityInfo {
- // Active Authentication OID
- static let ID_AA_OID = "2.23.136.1.1.5"
-
- // Active Authentication Signature Algorithm OIDS
- // Specified in BSI TR 03111 Section 5.2.1.
- static let ECDSA_PLAIN_SIGNATURES = "0.4.0.127.0.7.1.1.4.1";
- static let ECDSA_PLAIN_SHA1_OID = ECDSA_PLAIN_SIGNATURES + ".1"; // 0.4.0.127.0.7.1.1.4.1.1, ecdsa-plain-SHA1
- static let ECDSA_PLAIN_SHA224_OID = ECDSA_PLAIN_SIGNATURES + ".2"; // 0.4.0.127.0.7.1.1.4.1.2, ecdsa-plain-SHA224
- static let ECDSA_PLAIN_SHA256_OID = ECDSA_PLAIN_SIGNATURES + ".3"; // 0.4.0.127.0.7.1.1.4.1.3, ecdsa-plain-SHA256
- static let ECDSA_PLAIN_SHA384_OID = ECDSA_PLAIN_SIGNATURES + ".4"; // 0.4.0.127.0.7.1.1.4.1.4, ecdsa-plain-SHA384
- static let ECDSA_PLAIN_SHA512_OID = ECDSA_PLAIN_SIGNATURES + ".5"; // 0.4.0.127.0.7.1.1.4.1.5, ecdsa-plain-SHA512
- static let ECDSA_PLAIN_RIPEMD160_OID = ECDSA_PLAIN_SIGNATURES + ".6"; // 0.4.0.127.0.7.1.1.4.1.6, ecdsa-plain-RIPEMD160
-
- // Chip Authentication Public Key OIDS
- static let ID_PK_DH_OID = "0.4.0.127.0.7.2.2.1.1"
- static let ID_PK_ECDH_OID = "0.4.0.127.0.7.2.2.1.2"
-
- // Chip Authentication OIDS
- static let ID_CA_DH_3DES_CBC_CBC_OID = "0.4.0.127.0.7.2.2.3.1.1"
- static let ID_CA_ECDH_3DES_CBC_CBC_OID = "0.4.0.127.0.7.2.2.3.2.1"
- static let ID_CA_DH_AES_CBC_CMAC_128_OID = "0.4.0.127.0.7.2.2.3.1.2"
- static let ID_CA_DH_AES_CBC_CMAC_192_OID = "0.4.0.127.0.7.2.2.3.1.3"
- static let ID_CA_DH_AES_CBC_CMAC_256_OID = "0.4.0.127.0.7.2.2.3.1.4"
- static let ID_CA_ECDH_AES_CBC_CMAC_128_OID = "0.4.0.127.0.7.2.2.3.2.2"
- static let ID_CA_ECDH_AES_CBC_CMAC_192_OID = "0.4.0.127.0.7.2.2.3.2.3"
- static let ID_CA_ECDH_AES_CBC_CMAC_256_OID = "0.4.0.127.0.7.2.2.3.2.4"
-
-
- // PACE OIDS
- static let ID_BSI = "0.4.0.127.0.7"
- static let ID_PACE = ID_BSI + ".2.2.4"
- static let ID_PACE_DH_GM = ID_PACE + ".1"
- static let ID_PACE_DH_GM_3DES_CBC_CBC = ID_PACE_DH_GM + ".1"; // 0.4.0.127.0.7.2.2.4.1.1, id-PACE-DH-GM-3DES-CBC-CBC
- static let ID_PACE_DH_GM_AES_CBC_CMAC_128 = ID_PACE_DH_GM + ".2"; // 0.4.0.127.0.7.2.2.4.1.2, id-PACE-DH-GM-AES-CBC-CMAC-128
- static let ID_PACE_DH_GM_AES_CBC_CMAC_192 = ID_PACE_DH_GM + ".3"; // 0.4.0.127.0.7.2.2.4.1.3, id-PACE-DH-GM-AES-CBC-CMAC-192
- static let ID_PACE_DH_GM_AES_CBC_CMAC_256 = ID_PACE_DH_GM + ".4"; // 0.4.0.127.0.7.2.2.4.1.4, id-PACE-DH-GM-AES-CBC-CMAC-256
-
- static let ID_PACE_ECDH_GM = ID_PACE + ".2"
- static let ID_PACE_ECDH_GM_3DES_CBC_CBC = ID_PACE_ECDH_GM + ".1"; // 0.4.0.127.0.7.2.2.4.2.1, id-PACE-ECDH-GM-3DES-CBC-CBC
- static let ID_PACE_ECDH_GM_AES_CBC_CMAC_128 = ID_PACE_ECDH_GM + ".2"; // 0.4.0.127.0.7.2.2.4.2.2, id-PACE-ECDH-GM-AES-CBC-CMAC-128
- static let ID_PACE_ECDH_GM_AES_CBC_CMAC_192 = ID_PACE_ECDH_GM + ".3"; // 0.4.0.127.0.7.2.2.4.2.3, id-PACE-ECDH-GM-AES-CBC-CMAC-192
- static let ID_PACE_ECDH_GM_AES_CBC_CMAC_256 = ID_PACE_ECDH_GM + ".4"; // 0.4.0.127.0.7.2.2.4.2.4, id-PACE-ECDH-GM-AES-CBC-CMAC-256
-
- static let ID_PACE_DH_IM = ID_PACE + ".3"
- static let ID_PACE_DH_IM_3DES_CBC_CBC = ID_PACE_DH_IM + ".1"; // 0.4.0.127.0.7.2.2.4.3.1, id-PACE-DH-IM-3DES-CBC-CBC
- static let ID_PACE_DH_IM_AES_CBC_CMAC_128 = ID_PACE_DH_IM + ".2"; // 0.4.0.127.0.7.2.2.4.3.2, id-PACE-DH-IM-AES-CBC-CMAC-128
- static let ID_PACE_DH_IM_AES_CBC_CMAC_192 = ID_PACE_DH_IM + ".3"; // 0.4.0.127.0.7.2.2.4.3.3, id-PACE-DH-IM-AES-CBC-CMAC-192
- static let ID_PACE_DH_IM_AES_CBC_CMAC_256 = ID_PACE_DH_IM + ".4"; // 0.4.0.127.0.7.2.2.4.3.4, id-PACE-DH-IM-AES-CBC-CMAC-256
-
- static let ID_PACE_ECDH_IM = ID_PACE + ".4"
- static let ID_PACE_ECDH_IM_3DES_CBC_CBC = ID_PACE_ECDH_IM + ".1"; // 0.4.0.127.0.7.2.2.4.4.1, id-PACE-ECDH-IM-3DES-CBC-CBC
- static let ID_PACE_ECDH_IM_AES_CBC_CMAC_128 = ID_PACE_ECDH_IM + ".2"; // 0.4.0.127.0.7.2.2.4.4.2, id-PACE-ECDH-IM-AES-CBC-CMAC-128
- static let ID_PACE_ECDH_IM_AES_CBC_CMAC_192 = ID_PACE_ECDH_IM + ".3"; // 0.4.0.127.0.7.2.2.4.4.3, id-PACE-ECDH-IM-AES-CBC-CMAC-192
- static let ID_PACE_ECDH_IM_AES_CBC_CMAC_256 = ID_PACE_ECDH_IM + ".4"; // 0.4.0.127.0.7.2.2.4.4.4, id-PACE-ECDH-IM-AES-CBC-CMAC-256
-
- static let ID_PACE_ECDH_CAM = ID_PACE + ".6"
- static let ID_PACE_ECDH_CAM_AES_CBC_CMAC_128 = ID_PACE_ECDH_CAM + ".2"; // 0.4.0.127.0.7.2.2.4.6.2, id-PACE-ECDH-CAM-AES-CBC-CMAC-128
- static let ID_PACE_ECDH_CAM_AES_CBC_CMAC_192 = ID_PACE_ECDH_CAM + ".3"; // 0.4.0.127.0.7.2.2.4.6.3, id-PACE-ECDH-CAM-AES-CBC-CMAC-192
- static let ID_PACE_ECDH_CAM_AES_CBC_CMAC_256 = ID_PACE_ECDH_CAM + ".4"; // 0.4.0.127.0.7.2.2.4.6.4, id-PACE-ECDH-CAM-AES-CBC-CMAC-256
-
- public func getObjectIdentifier() -> String {
- preconditionFailure("This method must be overridden")
- }
-
- public func getProtocolOIDString() -> String {
- preconditionFailure("This method must be overridden")
- }
-
- static func getInstance( object : ASN1Item, body: [UInt8] ) -> SecurityInfo? {
- let oid = object.getChild(0)?.value ?? ""
- let requiredData = object.getChild(1)!
- var optionalData : ASN1Item? = nil
- if (object.getNumberOfChildren() == 3) {
- optionalData = object.getChild(2)
- }
-
- if ChipAuthenticationPublicKeyInfo.checkRequiredIdentifier(oid) {
-
- let keyData : [UInt8] = [UInt8](body[requiredData.pos ..< requiredData.pos+requiredData.headerLen+requiredData.length])
-
- var subjectPublicKeyInfo : OpaquePointer? = nil
- let _ = keyData.withUnsafeBytes { (ptr) in
- var newPtr = ptr.baseAddress?.assumingMemoryBound(to: UInt8.self)
-
- subjectPublicKeyInfo = d2i_PUBKEY(nil, &newPtr, keyData.count)
- }
-
- if let subjectPublicKeyInfo = subjectPublicKeyInfo {
-
- if optionalData == nil {
- return ChipAuthenticationPublicKeyInfo(oid:oid, pubKey:subjectPublicKeyInfo);
- } else {
- let keyId = Int(optionalData!.value, radix: 16)
- return ChipAuthenticationPublicKeyInfo(oid:oid, pubKey:subjectPublicKeyInfo, keyId: keyId);
- }
-
- }
- } else if ChipAuthenticationInfo.checkRequiredIdentifier(oid) {
- let version = Int(requiredData.value) ?? -1
- if let optionalData = optionalData {
- let keyId = Int(optionalData.value, radix: 16)
- return ChipAuthenticationInfo(oid: oid, version: version, keyId: keyId);
- } else {
- return ChipAuthenticationInfo(oid: oid, version: version);
- }
- } else if PACEInfo.checkRequiredIdentifier(oid) {
- let version = Int(requiredData.value) ?? -1
- var parameterId : Int? = nil
-
- if let optionalData = optionalData {
- parameterId = Int(optionalData.value, radix:16)
- }
- return PACEInfo(oid: oid, version: version, parameterId: parameterId);
- } else if ActiveAuthenticationInfo.checkRequiredIdentifier(oid) {
- let version = Int(requiredData.value) ?? -1
- if let optionalData = optionalData {
- return ActiveAuthenticationInfo(oid: oid, version: version, signatureAlgorithmOID: optionalData.value)
- } else {
- return ActiveAuthenticationInfo(oid: oid, version: version)
- }
- }
- return nil
- }
-}
diff --git a/app/ios/AwesomeProject/NFCViewDisplayMessage.swift b/app/ios/AwesomeProject/NFCViewDisplayMessage.swift
deleted file mode 100644
index 94ad49b72..000000000
--- a/app/ios/AwesomeProject/NFCViewDisplayMessage.swift
+++ /dev/null
@@ -1,50 +0,0 @@
-import Foundation
-
-@available(iOS 13, macOS 10.15, *)
-public enum NFCViewDisplayMessage {
- case requestPresentPassport
- case authenticatingWithPassport(Int)
- case readingDataGroupProgress(DataGroupId, Int)
- case error(NFCPassportReaderError)
- case successfulRead
-}
-
-@available(iOS 13, macOS 10.15, *)
-extension NFCViewDisplayMessage {
- public var description: String {
- switch self {
- case .requestPresentPassport:
- return "Hold your iPhone near an NFC enabled passport."
- case .authenticatingWithPassport(let progress):
- let progressString = handleProgress(percentualProgress: progress)
- return "Authenticating with passport.....\n\n\(progressString)"
- case .readingDataGroupProgress(let dataGroup, let progress):
- let progressString = handleProgress(percentualProgress: progress)
- return "Reading \(dataGroup).....\n\n\(progressString)"
- case .error(let tagError):
- switch tagError {
- case NFCPassportReaderError.TagNotValid:
- return "Tag not valid."
- case NFCPassportReaderError.MoreThanOneTagFound:
- return "More than 1 tags was found. Please present only 1 tag."
- case NFCPassportReaderError.ConnectionError:
- return "Connection error. Please try again."
- case NFCPassportReaderError.InvalidMRZKey:
- return "MRZ Key not valid for this document."
- case NFCPassportReaderError.ResponseError(let description, let sw1, let sw2):
- return "Sorry, there was a problem reading the passport. \(description) - (0x\(sw1), 0x\(sw2)"
- default:
- return "Sorry, there was a problem reading the passport. Please try again"
- }
- case .successfulRead:
- return "Passport read successfully"
- }
- }
-
- func handleProgress(percentualProgress: Int) -> String {
- let p = (percentualProgress/20)
- let full = String(repeating: "π’ ", count: p)
- let empty = String(repeating: "βͺοΈ ", count: 5-p)
- return "\(full)\(empty)"
- }
-}
diff --git a/app/ios/AwesomeProject/OpenSSLUtils.swift b/app/ios/AwesomeProject/OpenSSLUtils.swift
deleted file mode 100644
index b0b4851f3..000000000
--- a/app/ios/AwesomeProject/OpenSSLUtils.swift
+++ /dev/null
@@ -1,697 +0,0 @@
-import Foundation
-import OpenSSL
-import CryptoTokenKit
-
-@available(iOS 13, macOS 10.15, *)
-public class OpenSSLUtils {
- private static var loaded = false
-
- /// Returns any OpenSSL Error as a String
- public static func getOpenSSLError() -> String {
-
- guard let out = BIO_new(BIO_s_mem()) else { return "Unknown" }
- defer { BIO_free(out) }
-
- ERR_print_errors( out )
- let str = OpenSSLUtils.bioToString( bio:out )
-
- return str
- }
-
- /// Extracts the contents of a BIO object and returns it as a String
- /// - Parameter bio: a Pointer to a BIO buffer
- /// - Returns: A string containing the contents of the BIO buffer
- static func bioToString( bio : OpaquePointer ) -> String {
-
- let len = BIO_ctrl(bio, BIO_CTRL_PENDING, 0, nil)
- var buffer = [CChar](repeating: 0, count: len+1)
- BIO_read(bio, &buffer, Int32(len))
-
- // Ensure last value is 0 (null terminated) otherwise we get buffer overflow!
- buffer[len] = 0
- let ret = String(cString:buffer)
- return ret
- }
-
- static func X509ToPEM( x509: OpaquePointer ) -> String {
-
- let out = BIO_new(BIO_s_mem())!
- defer { BIO_free( out) }
-
- PEM_write_bio_X509(out, x509);
- let str = OpenSSLUtils.bioToString( bio:out )
-
- return str
- }
-
- static func pubKeyToPEM( pubKey: OpaquePointer ) -> String {
-
- let out = BIO_new(BIO_s_mem())!
- defer { BIO_free( out) }
-
- PEM_write_bio_PUBKEY(out, pubKey);
- let str = OpenSSLUtils.bioToString( bio:out )
-
- return str
- }
-
- static func privKeyToPEM( privKey: OpaquePointer ) -> String {
-
- let out = BIO_new(BIO_s_mem())!
- defer { BIO_free( out) }
-
- PEM_write_bio_PrivateKey(out, privKey, nil, nil, 0, nil, nil)
- let str = OpenSSLUtils.bioToString( bio:out )
-
- return str
- }
-
- static func pkcs7DataToPEM( pkcs7: Data ) -> String {
-
- let inf = BIO_new(BIO_s_mem())!
- defer { BIO_free( inf) }
- let out = BIO_new(BIO_s_mem())!
- defer { BIO_free( out) }
-
- let _ = pkcs7.withUnsafeBytes { (ptr) in
- BIO_write(inf, ptr.baseAddress?.assumingMemoryBound(to: Int8.self), Int32(pkcs7.count))
- }
- guard let p7 = d2i_PKCS7_bio(inf, nil) else { return "" }
- defer { PKCS7_free(p7) }
-
- PEM_write_bio_PKCS7(out, p7)
- let str = OpenSSLUtils.bioToString( bio:out )
- return str
- }
-
-
- /// Extracts a X509 certificate in PEM format from a PKCS7 container
- /// - Parameter pkcs7Der: The PKCS7 container in DER format
- /// - Returns: The PEM formatted X509 certificate
- /// - Throws: A OpenSSLError.UnableToGetX509CertificateFromPKCS7 are thrown for any error
- static func getX509CertificatesFromPKCS7( pkcs7Der : Data ) throws -> [X509Wrapper] {
-
- guard let inf = BIO_new(BIO_s_mem()) else { throw OpenSSLError.UnableToGetX509CertificateFromPKCS7("Unable to allocate input buffer") }
- defer { BIO_free(inf) }
- let _ = pkcs7Der.withUnsafeBytes { (ptr) in
- BIO_write(inf, ptr.baseAddress?.assumingMemoryBound(to: Int8.self), Int32(pkcs7Der.count))
- }
- guard let p7 = d2i_PKCS7_bio(inf, nil) else { throw OpenSSLError.UnableToGetX509CertificateFromPKCS7("Unable to read PKCS7 DER data") }
- defer { PKCS7_free(p7) }
-
- var certs : OpaquePointer? = nil
- let i = OBJ_obj2nid(p7.pointee.type);
- switch (i) {
- case NID_pkcs7_signed:
- if let sign = p7.pointee.d.sign {
- certs = sign.pointee.cert
- }
- break;
- case NID_pkcs7_signedAndEnveloped:
- if let signed_and_enveloped = p7.pointee.d.signed_and_enveloped {
- certs = signed_and_enveloped.pointee.cert
- }
- break;
- default:
- break;
- }
-
- var ret = [X509Wrapper]()
- if let certs = certs {
- let certCount = sk_X509_num(certs)
- for i in 0 ..< certCount {
- let x = sk_X509_value(certs, i);
- if let x509 = X509Wrapper(with:x) {
- ret.append( x509 )
- }
- }
- }
-
- return ret
- }
-
- /// Checks whether a trust chain can be built up to verify a X509 certificate. A CAFile containing a list of trusted certificates (each in PEM format)
- /// is used to build the trust chain.
- /// The trusted certificates in this use case are typically from a Countries master list (see the scripts for more informaton on how to prepare this)
- /// - Parameter x509Cert: The X509 certificate (in PEM format) to verify
- /// - Parameter CAFile: The URL path of a file containing the list of certificates used to try to discover and build a trust chain
- /// - Returns: either the X509 issue signing certificate that was used to sign the passed in X509 certificate or an error
- static func verifyTrustAndGetIssuerCertificate( x509 : X509Wrapper, CAFile : URL ) -> Result {
-
- guard let cert_ctx = X509_STORE_new() else { return .failure(OpenSSLError.UnableToVerifyX509CertificateForSOD("Unable to create certificate store")) }
- defer { X509_STORE_free(cert_ctx) }
-
- X509_STORE_set_verify_cb(cert_ctx) { (ok, ctx) -> Int32 in
- let cert_error = X509_STORE_CTX_get_error(ctx)
-
- if ok == 0 {
- let errVal = X509_verify_cert_error_string(Int(cert_error))
- let val = errVal!.withMemoryRebound(to: CChar.self, capacity: 1000) { (ptr) in
- return String(cString: ptr)
- }
-
- Log.error("error \(cert_error) at \(X509_STORE_CTX_get_error_depth(ctx)) depth lookup:\(val)" )
- }
-
- return ok;
- }
-
- guard let lookup = X509_STORE_add_lookup(cert_ctx, X509_LOOKUP_file()) else { return .failure(OpenSSLError.UnableToVerifyX509CertificateForSOD("Unable to add lookup to store")) }
-
- // Load masterList.pem file
- var rc = X509_LOOKUP_ctrl(lookup, X509_L_FILE_LOAD, CAFile.path, Int(X509_FILETYPE_PEM), nil)
-
- guard let store = X509_STORE_CTX_new() else {
- return .failure(OpenSSLError.UnableToVerifyX509CertificateForSOD("Unable to create new X509_STORE_CTX"))
- }
- defer { X509_STORE_CTX_free(store) }
-
- X509_STORE_set_flags(cert_ctx, 0)
- rc = X509_STORE_CTX_init(store, cert_ctx, x509.cert, nil)
- if rc == 0 {
- return .failure(OpenSSLError.UnableToVerifyX509CertificateForSOD("Unable to initialise X509_STORE_CTX"))
- }
-
- // discover and verify X509 certificte chain
- let i = X509_verify_cert(store);
- if i != 1 {
- let err = X509_STORE_CTX_get_error(store)
-
- return .failure(OpenSSLError.UnableToVerifyX509CertificateForSOD("Verification of certificate failed - errorCode \(err)"))
- }
-
- // Get chain and issue certificate is the last cert in the chain
- let chain = X509_STORE_CTX_get1_chain(store);
- let nrCertsInChain = sk_X509_num(chain)
- if nrCertsInChain > 1 {
- let cert = sk_X509_value(chain, nrCertsInChain-1)
- if let certWrapper = X509Wrapper(with: cert) {
- return .success( certWrapper )
- }
- }
-
- return .failure(OpenSSLError.UnableToVerifyX509CertificateForSOD("Unable to get issuer certificate - not found"))
- }
-
-
- /// Verifies the signed data section against the stored certificate and extracts the signed data section from a PKCS7 container (if present and valid)
- /// - Parameter pkcs7Der: The PKCS7 container in DER format
- /// - Returns: The signed data from a PKCS7 container if we could read it
- ///
- /// - Note: To test from the command line using openssl (NOTE NOT THE default mac version as it doesn't currently support CMS):
- /// extract the SOD Base64 from an exported passport (you will need to unescape slashes!) - save this to ppt.b64
- /// convert to binary (cat ppt.b64 | base64 -D > ppt.bin
- /// extract the der file from the SOD (which includes header) - tail -c+5 ppt.bin > aq.der (blindy discards header)
- /// convert der to PEM - openssl pkcs7 -in ppt.der --inform der -out ppt.pem -outform pem
- /// verify signature data against included document signing cert - openssl cms -verify -in ppt.pem -inform pem -noverify
- /// the -noverify is don't verify against the signers certifcate (as we don' thave that!)
- ///
- /// This should return Verification Successful and the signed data
- static func verifyAndReturnSODEncapsulatedDataUsingCMS( sod : SOD ) throws -> Data {
-
- guard let inf = BIO_new(BIO_s_mem()) else { throw OpenSSLError.VerifyAndReturnSODEncapsulatedData("CMS - Unable to allocate input buffer") }
- defer { BIO_free(inf) }
-
- guard let out = BIO_new(BIO_s_mem()) else { throw OpenSSLError.VerifyAndReturnSODEncapsulatedData("CMS - Unable to allocate output buffer") }
- defer { BIO_free(out) }
-
- let _ = sod.body.withUnsafeBytes { (ptr) in
- BIO_write(inf, ptr.baseAddress?.assumingMemoryBound(to: UInt8.self), Int32(sod.body.count))
- }
-
- guard let cms = d2i_CMS_bio(inf, nil) else {
- throw OpenSSLError.VerifyAndReturnSODEncapsulatedData("CMS - Verification of P7 failed - unable to create CMS")
- }
- defer { CMS_ContentInfo_free(cms) }
-
- let flags : UInt32 = UInt32(CMS_NO_SIGNER_CERT_VERIFY)
-
- if CMS_verify(cms, nil, nil, nil, out, flags) == 0 {
- throw OpenSSLError.VerifyAndReturnSODEncapsulatedData("CMS - Verification of P7 failed - unable to verify signature")
- }
-
- Log.debug("Verification successful\n");
- let len = BIO_ctrl(out, BIO_CTRL_PENDING, 0, nil)
- var buffer = [UInt8](repeating: 0, count: len)
- BIO_read(out, &buffer, Int32(len))
- let sigData = Data(buffer)
-
- return sigData
- }
-
-
- static func verifyAndReturnSODEncapsulatedData( sod : SOD ) throws -> Data {
-
- let encapsulatedContent = try sod.getEncapsulatedContent()
- let signedAttribsHashAlgo = try sod.getEncapsulatedContentDigestAlgorithm()
- let signedAttributes = try sod.getSignedAttributes()
- let messageDigest = try sod.getMessageDigestFromSignedAttributes()
- let signature = try sod.getSignature()
- let sigType = try sod.getSignatureAlgorithm()
-
- let pubKey = try sod.getPublicKey()
-
- let mdHash : Data = try Data(calcHash(data: [UInt8](encapsulatedContent), hashAlgorithm: signedAttribsHashAlgo))
-
- // Make sure that hash equals the messageDigest
- if messageDigest != mdHash {
- // Invalid - signed data hash doesn't match message digest hash
- throw OpenSSLError.VerifyAndReturnSODEncapsulatedData("messageDigest Hash doesn't hatch that of the signed attributes")
- }
-
- // Verify signed attributes
- if !verifySignature( data : [UInt8](signedAttributes), signature : [UInt8](signature), pubKey : pubKey, digestType: sigType ) {
-
- throw OpenSSLError.VerifyAndReturnSODEncapsulatedData("Unable to verify signature for signed attributes")
- }
-
- return encapsulatedContent
- }
-
- /// Parses a signed data structures encoded in ASN1 format and returns the structure in text format
- /// - Parameter data: The data to be parsed in ASN1 format
- /// - Returns: The parsed data as A String
- static func ASN1Parse( data: Data ) throws -> String {
-
- guard let out = BIO_new(BIO_s_mem()) else { throw OpenSSLError.UnableToParseASN1("Unable to allocate output buffer") }
- defer { BIO_free(out) }
-
- var parsed : String = ""
- let _ = try data.withUnsafeBytes { (ptr) in
- let rc = ASN1_parse_dump(out, ptr.baseAddress?.assumingMemoryBound(to: UInt8.self), data.count, 0, 0)
- if rc == 0 {
- let str = OpenSSLUtils.getOpenSSLError()
- Log.debug( "Failed to parse ASN1 Data - \(str)" )
- throw OpenSSLError.UnableToParseASN1("Failed to parse ASN1 Data - \(str)")
- }
-
- parsed = bioToString(bio: out)
- }
-
- return parsed
- }
-
-
-
- /// Reads an RSA Public Key in DER format and converts it to an OpenSSL EVP_PKEY value for use whilst decrypting or verifying an RSA signature
- /// - Parameter data: The RSA key in DER format
- /// - Returns: The EVP_PKEY value
- /// NOTE THE CALLER IS RESPONSIBLE FOR FREEING THE RETURNED KEY USING
- /// EVP_PKEY_free(pemKey);
- static func readRSAPublicKey( data : [UInt8] ) throws -> OpaquePointer? {
-
- guard let inf = BIO_new(BIO_s_mem()) else { throw OpenSSLError.UnableToReadECPublicKey("Unable to allocate output buffer") }
- defer { BIO_free(inf) }
-
- let _ = data.withUnsafeBytes { (ptr) in
- BIO_write(inf, ptr.baseAddress?.assumingMemoryBound(to: UInt8.self), Int32(data.count))
- }
-
- guard let rsakey = d2i_RSA_PUBKEY_bio(inf, nil) else { throw OpenSSLError.UnableToReadECPublicKey("Failed to load") }
- defer{ RSA_free(rsakey) }
-
- let key = EVP_PKEY_new()
- if EVP_PKEY_set1_RSA(key, rsakey) != 1 {
- EVP_PKEY_free(key)
- throw OpenSSLError.UnableToReadECPublicKey("Failed to load")
- }
- return key
- }
-
- /// This code is taken pretty much from rsautl.c - to decrypt a signature with a public key
- /// NOTE: Current no padding is used! - This seems to be the default for Active Authentication RSA signatures (guess)
- /// - Parameter signature: The RSA encrypted signature to decrypt
- /// - Parameter pubKey: The RSA Public Key
- /// - Returns: The decrypted signature data
- static func decryptRSASignature( signature : Data, pubKey : OpaquePointer ) throws -> [UInt8] {
-
- let pad = RSA_NO_PADDING
- let rsa = EVP_PKEY_get1_RSA( pubKey )
-
- let keysize = RSA_size(rsa);
- var outputBuf = [UInt8](repeating: 0, count: Int(keysize))
-
- // Decrypt signature
- var outlen : Int32 = 0
- let _ = signature.withUnsafeBytes { (sigPtr) in
- let _ = outputBuf.withUnsafeMutableBytes { (outPtr) in
- outlen = RSA_public_decrypt(Int32(signature.count), sigPtr.baseAddress?.assumingMemoryBound(to: UInt8.self), outPtr.baseAddress?.assumingMemoryBound(to: UInt8.self), rsa, pad)
- }
- }
-
- if outlen == 0 {
- let error = OpenSSLUtils.getOpenSSLError()
- throw OpenSSLError.UnableToDecryptRSASignature( "RSA_public_decrypt failed - \(error)" )
- }
-
- return outputBuf
- }
-
- /// Reads an ECDSA Public Key in DER format and converts it to an OpenSSL EVP_PKEY value for use whilst verifying a ECDSA signature
- /// - Parameter data: The ECDSA key in DER forma
- /// - Returns: The EVP_PKEY value
- /// NOTE THE CALLER IS RESPONSIBLE FOR FREEING THE RETURNED KEY USING
- /// EVP_PKEY_free(pemKey);
- static func readECPublicKey( data : [UInt8] ) throws -> OpaquePointer? {
-
- guard let inf = BIO_new(BIO_s_mem()) else { throw OpenSSLError.UnableToReadECPublicKey("Unable to allocate output buffer") }
- defer { BIO_free(inf) }
-
- let _ = data.withUnsafeBytes { (ptr) in
- BIO_write(inf, ptr.baseAddress?.assumingMemoryBound(to: UInt8.self), Int32(data.count))
- }
-
- guard let eckey = d2i_EC_PUBKEY_bio(inf, nil) else { throw OpenSSLError.UnableToReadECPublicKey("Failed to load") }
- defer{ EC_KEY_free(eckey) }
-
- guard let outf = BIO_new(BIO_s_mem()) else { throw OpenSSLError.UnableToReadECPublicKey("Unable to allocate output buffer") }
- defer { BIO_free(outf) }
- let _ = PEM_write_bio_EC_PUBKEY(outf, eckey);
- let pemKey = PEM_read_bio_PUBKEY(outf, nil, nil, nil)
-
- return pemKey
- }
-
-
- /// Verifies Active Authentication data valid against an ECDSA signature and ECDSA Public Key - used in Active Authentication
- /// - Parameter publicKey: The OpenSSL EVP_PKEY ECDSA key
- /// - Parameter signature: The ECDSA signature to verify
- /// - Parameter data: The data used to generate the signature
- /// - Returns: True if the signature was verified
- static func verifyECDSASignature( publicKey:OpaquePointer, signature: [UInt8], data: [UInt8], digestType: String = "" ) -> Bool {
-
- // We first need to convert the signature from PLAIN ECDSA to ASN1 DER encoded
- let ecsig = ECDSA_SIG_new()
- defer { ECDSA_SIG_free(ecsig) }
- let sigData = signature
- let l = sigData.count / 2
- sigData.withUnsafeBufferPointer { (unsafeBufPtr) in
- let unsafePointer = unsafeBufPtr.baseAddress!
- let r = BN_bin2bn(unsafePointer, Int32(l), nil)
- let s = BN_bin2bn((unsafePointer + l), Int32(l), nil)
- ECDSA_SIG_set0(ecsig, r, s)
- }
- let sigSize = i2d_ECDSA_SIG(ecsig, nil)
- var derBytes = [UInt8](repeating: 0, count: Int(sigSize))
- derBytes.withUnsafeMutableBufferPointer { (unsafeBufPtr) in
- var unsafePointer = unsafeBufPtr.baseAddress
- let _ = i2d_ECDSA_SIG(ecsig, &unsafePointer)
- }
-
- let rc = verifySignature(data: data, signature: derBytes, pubKey: publicKey, digestType: digestType)
- return rc
- }
-
- /// Verifies that a signature is valid for some data and a Public Key
- /// - Parameter data: The data used to generate the signature
- /// - Parameter signature: The signature to verify
- /// - Parameter publicKey: The OpenSSL EVP_PKEY key
- /// - Parameter digestType: the type of hash to use (empty string to use no digest type)
- /// - Returns: True if the signature was verified
- static func verifySignature( data : [UInt8], signature : [UInt8], pubKey : OpaquePointer, digestType: String ) -> Bool {
-
- var digest = "sha256"
- let digestType = digestType.lowercased()
- if digestType.contains( "sha1" ) {
- digest = "sha1"
- } else if digestType.contains( "sha224" ) {
- digest = "sha224"
- } else if digestType.contains( "sha256" ) || digestType.contains( "rsassapss" ) {
- digest = "sha256"
- } else if digestType.contains( "sha384" ) {
- digest = "sha384"
- } else if digestType.contains( "sha512" ) {
- digest = "sha512"
- }
-
- // Fix for some invalid ECDSA based signatures
- // An ECDSA signature comprises of a Sequence of 2 big integers (R & S) and the verification
- // is a linear equation of these two integers, the data hash and the public key
- // However, in some passports the encoding of the integers is incorrect and has a leading 00
- // causing the verification to fail.
- // So in this case, we check to see if it is actually a valid BigInteger, and if not, we remove the
- // leading prefix, check again and if a valid big integer this time then we use this otherwise
- // we keep the original value
- // If we change any values then we re-generate the signature and use this
- var fixedSignature = signature
- if digestType.contains( "ecdsa" ) {
- // Decode signature
- if let sequence = TKBERTLVRecord(from:Data(signature)),
- sequence.tag == 0x30,
- var intRecords = TKBERTLVRecord.sequenceOfRecords(from: sequence.value),
- intRecords.count == 2 {
-
- var didFix = false
- for (idx, rec) in intRecords.enumerated() {
- // Only process if the first byte is a 0
- if rec.value[0] != 0 {
- continue
- }
-
- // There is a feature in TKBERTLVRecord.sequenceOfRecords where the 2nd record.data call
- // contains the data for the whole data not the actual record
- // (reported as FB9077037)
- // So for the moment, work aroud this and create a new record
- let fixedRec = TKBERTLVRecord( tag: rec.tag, value: rec.value)
- let data = [UInt8](fixedRec.data)
-
- // Check to see if a valid Big Integer (we need the whole record including tag and length for the d2i_ASN1_INTEGER call)
- data.withUnsafeBufferPointer { (ptr) in
- var address = ptr.baseAddress
- let v = d2i_ASN1_INTEGER(nil, &address, data.count)
- defer { ASN1_INTEGER_free(v) }
- if v == nil {
- // Not a valid BigInteger, so remove the first value and try again
- let newRec = TKBERTLVRecord( tag: rec.tag, value: rec.value[1...])
-
- let data2 = [UInt8](newRec.data)
- data2.withUnsafeBufferPointer { (ptr) in
- var address = ptr.baseAddress
- let v2 = d2i_ASN1_INTEGER(nil, &address, data2.count)
- defer { ASN1_INTEGER_free(v2) }
- if v2 != nil {
- // OK, we have a valid BigInteger this time so replace the original
- // record with the new one
- intRecords[idx] = newRec
- didFix = true
- }
- }
- }
- }
- }
-
- // We only reencode if we changed any of the integers, otherwise assume they were actually
- // correctly encoded
- if didFix {
- // re-encode
- let newSequence = TKBERTLVRecord( tag: sequence.tag, records: intRecords)
- fixedSignature = [UInt8](newSequence.data)
- }
- }
- }
-
- let md = EVP_get_digestbyname(digest)
-
- let ctx = EVP_MD_CTX_new()
- var pkey_ctx : OpaquePointer?
-
- defer{ EVP_MD_CTX_free( ctx) }
-
- var nRes = EVP_DigestVerifyInit(ctx, &pkey_ctx, md, nil, pubKey)
- if ( nRes != 1 ) {
- return false;
- }
-
- if digestType.contains( "rsassapss" ) {
- EVP_PKEY_CTX_ctrl_str(pkey_ctx, "rsa_padding_mode", "pss" )
- EVP_PKEY_CTX_ctrl_str(pkey_ctx, "rsa_pss_saltlen", "auto" )
- }
-
- nRes = EVP_DigestUpdate(ctx, data, data.count);
- if ( nRes != 1 ) {
- return false;
- }
-
- nRes = EVP_DigestVerifyFinal(ctx, fixedSignature, fixedSignature.count);
- if (nRes != 1) {
- return false;
- }
-
- return true
- }
-
- @available(iOS 13, macOS 10.15, *)
- static func generateAESCMAC( key: [UInt8], message : [UInt8] ) -> [UInt8] {
- let ctx = CMAC_CTX_new();
- defer { CMAC_CTX_free(ctx) }
- var key = key
-
- var mac = [UInt8](repeating: 0, count: 32)
- var maclen : Int = 0
-
- if key.count == 16 {
- CMAC_Init(ctx, &key, key.count, EVP_aes_128_cbc(), nil)
- } else if key.count == 24 {
- CMAC_Init(ctx, &key, key.count, EVP_aes_192_cbc(), nil)
- } else if key.count == 32 {
- CMAC_Init(ctx, &key, key.count, EVP_aes_256_cbc(), nil)
- }
- CMAC_Update(ctx, message, message.count);
- CMAC_Final(ctx, &mac, &maclen);
-
- Log.verbose( "aesMac - mac - \(binToHexRep(mac))" )
-
- return [UInt8](mac[0.. [UInt8] {
-
- let obj = OBJ_txt2obj( oid.cString(using: .utf8), 1)
- let payloadLen = i2d_ASN1_OBJECT(obj, nil)
-
- var data = [UInt8](repeating: 0, count: Int(payloadLen))
-
- let _ = data.withUnsafeMutableBytes { (ptr) in
- var newPtr = ptr.baseAddress?.assumingMemoryBound(to: UInt8.self)
- _ = i2d_ASN1_OBJECT(obj, &newPtr)
- }
-
- return data
- }
-
- @available(iOS 13, macOS 10.15, *)
- public static func getPublicKeyData(from key:OpaquePointer) -> [UInt8]? {
- var data : [UInt8] = []
- // Get Key type
- let v = EVP_PKEY_base_id( key )
- if v == EVP_PKEY_DH || v == EVP_PKEY_DHX {
- guard let dh = EVP_PKEY_get0_DH(key) else {
- return nil
- }
- var dhPubKey : OpaquePointer?
- DH_get0_key(dh, &dhPubKey, nil)
-
- let nrBytes = (BN_num_bits(dhPubKey)+7)/8
- data = [UInt8](repeating: 0, count: Int(nrBytes))
- _ = BN_bn2bin(dhPubKey, &data)
- } else if v == EVP_PKEY_EC {
-
- guard let ec = EVP_PKEY_get0_EC_KEY(key),
- let ec_pub = EC_KEY_get0_public_key(ec),
- let ec_group = EC_KEY_get0_group(ec) else {
- return nil
- }
-
- let form = EC_KEY_get_conv_form(ec)
- let len = EC_POINT_point2oct(ec_group, ec_pub, form, nil, 0, nil)
- data = [UInt8](repeating: 0, count: Int(len))
- if len == 0 {
- return nil
- }
- _ = EC_POINT_point2oct(ec_group, ec_pub, form, &data, len, nil)
- }
-
- return data
- }
-
- // Caller is responsible for freeing the key
- @available(iOS 13, macOS 10.15, *)
- public static func decodePublicKeyFromBytes(pubKeyData: [UInt8], params: OpaquePointer) -> OpaquePointer? {
- var pubKey : OpaquePointer?
-
- let keyType = EVP_PKEY_base_id( params )
- if keyType == EVP_PKEY_DH || keyType == EVP_PKEY_DHX {
-
- let dhKey = DH_new()
- defer{ DH_free(dhKey) }
-
- // We don't free this as its part of the key!
- let bn = BN_bin2bn(pubKeyData, Int32(pubKeyData.count), nil)
- DH_set0_key(dhKey, bn, nil)
-
- pubKey = EVP_PKEY_new()
- guard EVP_PKEY_set1_DH(pubKey, dhKey) == 1 else {
- return nil
- }
- } else {
- let ec = EVP_PKEY_get1_EC_KEY(params)
- let group = EC_KEY_get0_group(ec);
- let ecp = EC_POINT_new(group);
- let key = EC_KEY_new();
- defer {
- EC_KEY_free(ec)
- EC_POINT_free(ecp)
- EC_KEY_free(key)
- }
-
- // Read EC_Point from public key data
- guard EC_POINT_oct2point(group, ecp, pubKeyData, pubKeyData.count, nil) == 1,
- EC_KEY_set_group(key, group) == 1,
- EC_KEY_set_public_key(key, ecp) == 1 else {
-
- return nil
- }
-
- pubKey = EVP_PKEY_new()
- guard EVP_PKEY_set1_EC_KEY(pubKey, key) == 1 else {
- return nil
- }
- }
-
- return pubKey
- }
-
-
- public static func computeSharedSecret( privateKeyPair: OpaquePointer, publicKey: OpaquePointer ) -> [UInt8] {
-
- // Oddly it seems that we cant use EVP_PKEY stuff for DH as it uses DTX keys which OpenSSL doesn't quite handle right
- // OR I'm misunderstanding something (which is more possible)
- // Works fine though for ECDH keys
- var secret : [UInt8]
- let keyType = EVP_PKEY_base_id( privateKeyPair )
- if keyType == EVP_PKEY_DH || keyType == EVP_PKEY_DHX {
- // Get bn for public key
- let dh = EVP_PKEY_get1_DH(privateKeyPair);
-
- let dh_pub = EVP_PKEY_get1_DH(publicKey)
- var bn = BN_new()
- DH_get0_key( dh_pub, &bn, nil )
-
- secret = [UInt8](repeating: 0, count: Int(DH_size(dh)))
- let len = DH_compute_key(&secret, bn, dh);
-
- Log.verbose( "OpenSSLUtils.computeSharedSecret - DH secret len - \(len)" )
- } else {
- let ctx = EVP_PKEY_CTX_new(privateKeyPair, nil)
- defer{ EVP_PKEY_CTX_free(ctx) }
-
- if EVP_PKEY_derive_init(ctx) != 1 {
- // error
- Log.error( "ERROR - \(OpenSSLUtils.getOpenSSLError())" )
- }
-
- // Set the public key
- if EVP_PKEY_derive_set_peer( ctx, publicKey ) != 1 {
- // error
- Log.error( "ERROR - \(OpenSSLUtils.getOpenSSLError())" )
- }
-
- // get buffer length needed for shared secret
- var keyLen = 0
- if EVP_PKEY_derive(ctx, nil, &keyLen) != 1 {
- // Error
- Log.error( "ERROR - \(OpenSSLUtils.getOpenSSLError())" )
- }
-
- // Derive the shared secret
- secret = [UInt8](repeating: 0, count: keyLen)
- if EVP_PKEY_derive(ctx, &secret, &keyLen) != 1 {
- // Error
- Log.error( "ERROR - \(OpenSSLUtils.getOpenSSLError())" )
- }
- }
- return secret
- }
-
-}
diff --git a/app/ios/AwesomeProject/PACEHandler.swift b/app/ios/AwesomeProject/PACEHandler.swift
deleted file mode 100644
index f4f408fa4..000000000
--- a/app/ios/AwesomeProject/PACEHandler.swift
+++ /dev/null
@@ -1,614 +0,0 @@
-import Foundation
-import OpenSSL
-import CryptoTokenKit
-
-#if !os(macOS)
-import CoreNFC
-import CryptoKit
-
-@available(iOS 15, *)
-private enum PACEHandlerError {
- case DHKeyAgreementError(String)
- case ECDHKeyAgreementError(String)
-
- var value: String {
- switch self {
- case .DHKeyAgreementError(let errMsg): return errMsg
- case .ECDHKeyAgreementError(let errMsg): return errMsg
-
- }
- }
-}
-
-@available(iOS 15, *)
-extension PACEHandlerError: LocalizedError {
- public var errorDescription: String? {
- return NSLocalizedString(value, comment: "PACEHandlerError")
- }
-}
-
-@available(iOS 15, *)
-public class PACEHandler {
-
-
- private static let MRZ_PACE_KEY_REFERENCE : UInt8 = 0x01
- private static let CAN_PACE_KEY_REFERENCE : UInt8 = 0x02 // Not currently supported
- private static let PIN_PACE_KEY_REFERENCE : UInt8 = 0x03 // Not currently supported
- private static let CUK_PACE_KEY_REFERENCE : UInt8 = 0x04 // Not currently supported
-
- var tagReader : TagReader
- var paceInfo : PACEInfo
-
- var isPACESupported : Bool = false
- var paceError : String = ""
-
- // Params used
- private var paceKey : [UInt8] = []
- private var paceKeyType : UInt8 = 0
- private var paceOID : String = ""
- private var parameterSpec : Int32 = -1
- private var mappingType : PACEMappingType!
- private var agreementAlg : String = ""
- private var cipherAlg : String = ""
- private var digestAlg : String = ""
- private var keyLength : Int = -1
-
- public init(cardAccess : CardAccess, tagReader: TagReader) throws {
- self.tagReader = tagReader
-
- guard let pi = cardAccess.paceInfo else {
- throw NFCPassportReaderError.NotYetSupported( "PACE not supported" )
- }
-
- self.paceInfo = pi
- isPACESupported = true
- }
-
- public func doPACE( mrzKey : String ) async throws {
- guard isPACESupported else {
- throw NFCPassportReaderError.NotYetSupported( "PACE not supported" )
- }
-
- Log.info( "Performing PACE with \(paceInfo.getProtocolOIDString())" )
-
- paceOID = paceInfo.getObjectIdentifier()
- parameterSpec = try paceInfo.getParameterSpec()
-
- mappingType = try paceInfo.getMappingType() // Either GM, CAM, or IM.
- agreementAlg = try paceInfo.getKeyAgreementAlgorithm() // Either DH or ECDH.
- cipherAlg = try paceInfo.getCipherAlgorithm() // Either DESede or AES.
- digestAlg = try paceInfo.getDigestAlgorithm() // Either SHA-1 or SHA-256.
- keyLength = try paceInfo.getKeyLength() // Get key length the enc cipher. Either 128, 192, or 256.
-
- paceKeyType = PACEHandler.MRZ_PACE_KEY_REFERENCE
- paceKey = try createPaceKey( from: mrzKey )
-
- // Temporary logging
- Log.verbose("doPace - inpit parameters" )
- Log.verbose("paceOID - \(paceOID)" )
- Log.verbose("parameterSpec - \(parameterSpec)" )
- Log.verbose("mappingType - \(mappingType!)" )
- Log.verbose("agreementAlg - \(agreementAlg)" )
- Log.verbose("cipherAlg - \(cipherAlg)" )
- Log.verbose("digestAlg - \(digestAlg)" )
- Log.verbose("keyLength - \(keyLength)" )
- Log.verbose("keyLength - \(mrzKey)" )
- Log.verbose("paceKey - \(binToHexRep(paceKey, asArray:true))" )
-
- // First start the initial auth call
- _ = try await tagReader.sendMSESetATMutualAuth(oid: paceOID, keyType: paceKeyType)
-
- let decryptedNonce = try await self.doStep1()
- let ephemeralParams = try await self.doStep2(passportNonce: decryptedNonce)
- let (ephemeralKeyPair, passportPublicKey) = try await self.doStep3KeyExchange(ephemeralParams: ephemeralParams)
- let (encKey, macKey) = try await self.doStep4KeyAgreement( pcdKeyPair: ephemeralKeyPair, passportPublicKey: passportPublicKey)
- try self.paceCompleted( ksEnc: encKey, ksMac: macKey )
- Log.debug("PACE SUCCESSFUL" )
- }
-
- /// Handles an error during the PACE process
- /// Logs and stoes the error and returns false to the caller
- /// - Parameters:
- /// - stage: Where in the PACE process the error occurred
- /// - error: The error message
- func handleError( _ stage: String, _ error: String, needToTerminateGA: Bool = false ) {
- Log.error( "PACEHandler: \(stage) - \(error)" )
- Log.error( " OpenSSLError: \(OpenSSLUtils.getOpenSSLError())" )
- self.paceError = "\(stage) - \(error)"
- //self.completedHandler?( false )
-
-/*
- if needToTerminateGA {
- // This is to fix some passports that don't automatically terminate command chaining!
- // No idea if this is the correct way to do it but testing.....
- let terminateGA = wrapDO(b:0x83, arr:[0x00])
- tagReader.sendGeneralAuthenticate(data:terminateGA, isLast:true, completed: { [weak self] response, error in
- self?.completedHandler?( false )
- })
- } else {
- self.completedHandler?( false )
- }
-*/
- }
-
- /// Performs PACE Step 1- receives an encrypted nonce from the passport and decypts it with the PACE key - derived from MRZ, CAN (not yet supported)
- func doStep1() async throws -> [UInt8] {
- Log.debug("Doing PACE Step1...")
- let response = try await tagReader.sendGeneralAuthenticate(data: [], isLast: false)
-
- let data = response.data
- let encryptedNonce = try unwrapDO(tag: 0x80, wrappedData: data)
- Log.verbose( "Encrypted nonce - \(binToHexRep(encryptedNonce, asArray:true))" )
-
- let decryptedNonce: [UInt8]
- if self.cipherAlg == "DESede" {
- let iv = [UInt8](repeating:0, count: 8)
- decryptedNonce = tripleDESDecrypt(key: self.paceKey, message: encryptedNonce, iv: iv)
- } else if self.cipherAlg == "AES" {
- let iv = [UInt8](repeating:0, count: 16)
- decryptedNonce = AESDecrypt(key: self.paceKey, message: encryptedNonce, iv: iv)
- } else {
- throw NFCPassportReaderError.UnsupportedCipherAlgorithm
- }
-
- Log.verbose( "Decrypted nonce - \(binToHexRep(decryptedNonce, asArray:true) )" )
- return decryptedNonce
- }
-
-
- /// Performs PACE Step 2 - computes ephemeral parameters by mapping the nonce received from the passport
- /// (and if IM used the nonce generated by us)
- ///
- /// Using the supported
- /// - Parameters:
- /// - passportNonce: The decrypted nonce received from the passport
- func doStep2( passportNonce: [UInt8]) async throws -> OpaquePointer {
- Log.debug( "Doing PACE Step2...")
- switch(mappingType) {
- case .CAM, .GM:
- Log.debug( " Using General Mapping (GM)...")
- return try await doPACEStep2GM(passportNonce: passportNonce)
- case .IM:
- Log.debug( " Using Integrated Mapping (IM)...")
- return try await doPACEStep2IM(passportNonce: passportNonce)
- default:
- throw NFCPassportReaderError.PACEError( "Step2GM", "Unsupported Mapping Type" )
- }
-
- }
-
- /// Performs PACEStep 2 using Generic Mapping
- ///
- /// Using the supported
- /// - Parameters:
- /// - passportNonce: The decrypted nonce received from the passport
- func doPACEStep2GM(passportNonce : [UInt8]) async throws -> OpaquePointer {
-
- let mappingKey : OpaquePointer
- mappingKey = try self.paceInfo.createMappingKey( )
-
- guard let pcdMappingEncodedPublicKey = OpenSSLUtils.getPublicKeyData(from: mappingKey) else {
- throw NFCPassportReaderError.PACEError( "Step2GM", "Unable to get public key from mapping key")
- }
- Log.verbose( "public mapping key - \(binToHexRep(pcdMappingEncodedPublicKey, asArray:true))")
-
- Log.debug( "Sending public mapping key to passport..")
- let step2Data = wrapDO(b:0x81, arr:pcdMappingEncodedPublicKey)
- let response = try await tagReader.sendGeneralAuthenticate(data:step2Data, isLast:false)
-
- let piccMappingEncodedPublicKey = try unwrapDO(tag: 0x82, wrappedData: response.data)
-
- Log.debug( "Received passports public mapping key")
- Log.verbose( " public mapping key - \(binToHexRep(piccMappingEncodedPublicKey, asArray: true))")
-
- // Do mapping agreement
-
- // First, Convert nonce to BIGNUM
- guard let bn_nonce = BN_bin2bn(passportNonce, Int32(passportNonce.count), nil) else {
- throw NFCPassportReaderError.PACEError( "Step2GM", "Unable to convert picc nonce to bignum" )
- }
- defer { BN_free(bn_nonce) }
-
- // ephmeralParams are free'd in stage 3
- let ephemeralParams : OpaquePointer
- if self.agreementAlg == "DH" {
- Log.debug( "Doing DH Mapping agreement")
- ephemeralParams = try self.doDHMappingAgreement(mappingKey: mappingKey, passportPublicKeyData: piccMappingEncodedPublicKey, nonce: bn_nonce )
- } else if self.agreementAlg == "ECDH" {
- Log.debug( "Doing ECDH Mapping agreement")
- ephemeralParams = try self.doECDHMappingAgreement(mappingKey: mappingKey, passportPublicKeyData: piccMappingEncodedPublicKey, nonce: bn_nonce )
- } else {
- throw NFCPassportReaderError.PACEError( "Step2GM", "Unsupported agreement algorithm" )
- }
-
- // Need to free the mapping key we created now
- EVP_PKEY_free(mappingKey)
- return ephemeralParams
- }
-
- func doPACEStep2IM( passportNonce: [UInt8] ) async throws -> OpaquePointer {
- // Not implemented yet
- throw NFCPassportReaderError.PACEError( "Step2IM", "IM not yet implemented" )
- }
-
- /// Generates an ephemeral public/private key pair based on mapping parameters from step 2, and then sends
- /// the public key to the passport and receives its ephmeral public key in exchange
- /// - Parameters:
- /// - ephemeralParams: The ehpemeral mapping keys generated by step2
- /// - Returns:
-/// - Tuple of Generated Ephemeral KeyPair and the Passport's public key
- func doStep3KeyExchange(ephemeralParams: OpaquePointer) async throws -> (OpaquePointer, OpaquePointer) {
- Log.debug( "Doing PACE Step3 - Key Exchange")
-
- // Generate ephemeral keypair from ephemeralParams
- var ephKeyPair : OpaquePointer? = nil
- let pctx = EVP_PKEY_CTX_new(ephemeralParams, nil)
- EVP_PKEY_keygen_init(pctx)
- EVP_PKEY_keygen(pctx, &ephKeyPair)
- EVP_PKEY_CTX_free(pctx)
-
- guard let ephemeralKeyPair = ephKeyPair else {
- throw NFCPassportReaderError.PACEError( "Step3 KeyEx", "Unable to get create ephermeral key pair" )
- }
-
- Log.debug( "Generated Ephemeral key pair")
-
- // We've finished with the ephemeralParams now - we can now free it
- EVP_PKEY_free( ephemeralParams )
-
- guard let publicKey = OpenSSLUtils.getPublicKeyData( from: ephemeralKeyPair ) else {
- throw NFCPassportReaderError.PACEError( "Step3 KeyEx", "Unable to get public key from ephermeral key pair" )
- }
- Log.verbose( "Ephemeral public key - \(binToHexRep(publicKey, asArray: true))")
-
- // exchange public keys
- Log.debug( "Sending ephemeral public key to passport")
- let step3Data = wrapDO(b:0x83, arr:publicKey)
- let response = try await tagReader.sendGeneralAuthenticate(data:step3Data, isLast:false)
- let passportEncodedPublicKey = try? unwrapDO(tag: 0x84, wrappedData: response.data)
- guard let passportPublicKey = OpenSSLUtils.decodePublicKeyFromBytes(pubKeyData: passportEncodedPublicKey!, params: ephemeralKeyPair) else {
- throw NFCPassportReaderError.PACEError( "Step3 KeyEx", "Unable to decode passports ephemeral key" )
- }
-
- Log.verbose( "Received passports ephemeral public key - \(binToHexRep(passportEncodedPublicKey!, asArray: true))" )
- return (ephemeralKeyPair, passportPublicKey)
- }
-
- /// This performs PACE Step 4 - Key Agreement.
- /// Here the shared secret is computed from our ephemeral private key and the passports ephemeral public key
- /// The new secure messaging (ksEnc and ksMac) keys are computed from the shared secret
- /// An authentication token is generated from the passports public key and the computed ksMac key
- /// Then, the authetication token is send to the passport, it returns its own computed authentication token
- /// We then compute an expected authentication token from the ksMac key and our ephemeral public key
- /// Finally we compare the recieved auth token to the expected token and if they are the same then PACE has succeeded!
- /// - Parameters:
- /// - pcdKeyPair: our ephemeral key pair
- /// - passportPublicKey: passports ephemeral public key
- /// - Returns:
- /// - Tuple of KSEnc KSMac
- func doStep4KeyAgreement( pcdKeyPair: OpaquePointer, passportPublicKey: OpaquePointer) async throws -> ([UInt8], [UInt8]) {
- Log.debug( "Doing PACE Step4 Key Agreement...")
-
- Log.debug( "Computing shared secret...")
- let sharedSecret = OpenSSLUtils.computeSharedSecret(privateKeyPair: pcdKeyPair, publicKey: passportPublicKey)
- Log.verbose( "Shared secret - \(binToHexRep(sharedSecret, asArray:true))")
-
- Log.debug( "Deriving ksEnc and ksMac keys from shared secret")
- let gen = SecureMessagingSessionKeyGenerator()
- let encKey = try! gen.deriveKey(keySeed: sharedSecret, cipherAlgName: cipherAlg, keyLength: keyLength, mode: .ENC_MODE)
- let macKey = try! gen.deriveKey(keySeed: sharedSecret, cipherAlgName: cipherAlg, keyLength: keyLength, mode: .MAC_MODE)
- Log.verbose( "encKey - \(binToHexRep(encKey, asArray:true))")
- Log.verbose( "macKey - \(binToHexRep(macKey, asArray:true))")
-
- // Step 4 - generate authentication token
- Log.debug( "Generating authentication token")
- guard let pcdAuthToken = try? generateAuthenticationToken( publicKey: passportPublicKey, macKey: macKey) else {
- throw NFCPassportReaderError.PACEError( "Step3 KeyAgreement", "Unable to generate authentication token using passports public key" )
- }
- Log.verbose( "authentication token - \(pcdAuthToken)")
-
- Log.debug( "Sending auth token to passport")
- let step4Data = wrapDO(b:0x85, arr:pcdAuthToken)
- let response = try await tagReader.sendGeneralAuthenticate(data:step4Data, isLast:true)
-
- let tvlResp = TKBERTLVRecord.sequenceOfRecords(from: Data(response.data))!
- if tvlResp[0].tag != 0x86 {
- Log.warning("Was expecting tag 0x86, found: \(binToHex(UInt8(tvlResp[0].tag)))")
- }
- // Calculate expected authentication token
- let expectedPICCToken = try self.generateAuthenticationToken( publicKey: pcdKeyPair, macKey: macKey)
-
- Log.verbose( "Expecting authentication token from passport - \(expectedPICCToken)")
-
- let piccToken = [UInt8](tvlResp[0].value)
- Log.verbose( "Received authentication token from passport - \(piccToken)")
-
- guard piccToken == expectedPICCToken else {
- Log.error( "Error PICC Token mismatch!\npicToken - \(piccToken)\nexpectedPICCToken - \(expectedPICCToken)" )
- throw NFCPassportReaderError.PACEError( "Step3 KeyAgreement", "Error PICC Token mismatch!\npicToken - \(piccToken)\nexpectedPICCToken - \(expectedPICCToken)" )
- }
-
- Log.debug( "Auth token from passport matches expected token!" )
-
- // This will be added for CAM when supported
- // var encryptedChipAuthenticationData : [UInt8]? = nil
- // if (sself.mappingType == PACEMappingType.CAM) {
- // if tvlResp[1].tag != 0x8A {
- // Log.warning("CAM: Was expecting tag 0x86, found: \(binToHex(UInt8(tvlResp[1].tag)))")
- // }
- // encryptedChipAuthenticationData = [UInt8](tvlResp[1].value)
- // }
-
- // We're done!
- return (encKey, macKey)
- }
-
- /// Called once PACE has completed with the newly generated ksEnc and ksMac keys for restarting secure messaging
- /// - Parameters:
- /// - ksEnc: the computed encryption key derived from the key agreement
- /// - ksMac: the computed mac key derived from the key agreement
- func paceCompleted( ksEnc: [UInt8], ksMac: [UInt8] ) throws {
- // Restart secure messaging
- let ssc = withUnsafeBytes(of: 0.bigEndian, Array.init)
- if (cipherAlg.hasPrefix("DESede")) {
- Log.info( "Restarting secure messaging using DESede encryption")
- let sm = SecureMessaging(encryptionAlgorithm: .DES, ksenc: ksEnc, ksmac: ksMac, ssc: ssc)
- tagReader.secureMessaging = sm
- } else if (cipherAlg.hasPrefix("AES")) {
- Log.info( "Restarting secure messaging using AES encryption")
- let sm = SecureMessaging(encryptionAlgorithm: .AES, ksenc: ksEnc, ksmac: ksMac, ssc: ssc)
- tagReader.secureMessaging = sm
- } else {
- throw NFCPassportReaderError.PACEError( "PACECompleted", "Not restarting secure messaging as unsupported cipher algorithm requested - \(cipherAlg)" )
- }
- }
-}
-
-// MARK - PACEHandler Utility functions
-@available(iOS 15, *)
-extension PACEHandler {
-
- /// Does the DH key Mapping agreement
- /// - Parameter mappingKey - Pointer to an EVP_PKEY structure containing the mapping key
- /// - Parameter passportPublicKeyData - byte array containing the publick key read from the passport
- /// - Parameter nonce - Pointer to an BIGNUM structure containing the unencrypted nonce
- /// - Returns the EVP_PKEY containing the mapped ephemeral parameters
- func doDHMappingAgreement( mappingKey : OpaquePointer, passportPublicKeyData: [UInt8], nonce: OpaquePointer ) throws -> OpaquePointer {
- guard let dh_mapping_key = EVP_PKEY_get1_DH(mappingKey) else {
- // Error
- throw PACEHandlerError.DHKeyAgreementError( "Unable to get DH mapping key" )
- }
-
- // Compute the shared secret using the mapping key and the passports public mapping key
- let bn = BN_bin2bn(passportPublicKeyData, Int32(passportPublicKeyData.count), nil)
- defer { BN_free( bn ) }
-
- var secret = [UInt8](repeating: 0, count: Int(DH_size(dh_mapping_key)))
- DH_compute_key( &secret, bn, dh_mapping_key)
-
- // Convert the secret to a bignum
- let bn_h = BN_bin2bn(secret, Int32(secret.count), nil)
- defer { BN_clear_free(bn_h) }
-
- // Initialize ephemeral parameters with parameters from the mapping key
- guard let ephemeral_key = DHparams_dup(dh_mapping_key) else {
- // Error
- throw PACEHandlerError.DHKeyAgreementError("Unable to get initialise ephemeral parameters from DH mapping key")
- }
- defer{ DH_free(ephemeral_key) }
-
- var p : OpaquePointer? = nil
- var q : OpaquePointer? = nil
- var g : OpaquePointer? = nil
- DH_get0_pqg(dh_mapping_key, &p, &q, &g)
-
- // map to new generator
- guard let bn_g = BN_new() else {
- throw PACEHandlerError.DHKeyAgreementError( "Unable to create bn_g" )
- }
- defer{ BN_free(bn_g) }
- guard let new_g = BN_new() else {
- throw PACEHandlerError.DHKeyAgreementError( "Unable to create new_g" )
- }
- defer{ BN_free(new_g) }
-
- // bn_g = g^nonce mod p
- // ephemeral_key->g = bn_g mod p * h => (g^nonce mod p) * h mod p
- let bn_ctx = BN_CTX_new()
- guard BN_mod_exp(bn_g, g, nonce, p, bn_ctx) == 1,
- BN_mod_mul(new_g, bn_g, bn_h, p, bn_ctx) == 1 else {
- // Error
- throw PACEHandlerError.DHKeyAgreementError( "Failed to generate new parameters" )
- }
-
- guard DH_set0_pqg(ephemeral_key, BN_dup(p), BN_dup(q), BN_dup(new_g)) == 1 else {
- // Error
- throw PACEHandlerError.DHKeyAgreementError( "Unable to set DH pqg paramerters" )
- }
-
- // Set the ephemeral params
- guard let ephemeralParams = EVP_PKEY_new() else {
- throw PACEHandlerError.ECDHKeyAgreementError( "Unable to create ephemeral params" )
- }
-
- guard EVP_PKEY_set1_DH(ephemeralParams, ephemeral_key) == 1 else {
- // Error
- EVP_PKEY_free( ephemeralParams )
- throw PACEHandlerError.DHKeyAgreementError( "Unable to set ephemeral parameters" )
- }
- return ephemeralParams
- }
-
- /// Does the ECDH key Mapping agreement
- /// - Parameter mappingKey - Pointer to an EVP_PKEY structure containing the mapping key
- /// - Parameter passportPublicKeyData - byte array containing the publick key read from the passport
- /// - Parameter nonce - Pointer to an BIGNUM structure containing the unencrypted nonce
- /// - Returns the EVP_PKEY containing the mapped ephemeral parameters
- func doECDHMappingAgreement( mappingKey : OpaquePointer, passportPublicKeyData: [UInt8], nonce: OpaquePointer ) throws -> OpaquePointer {
-
- let ec_mapping_key = EVP_PKEY_get1_EC_KEY(mappingKey)
-
- guard let group = EC_GROUP_dup(EC_KEY_get0_group(ec_mapping_key)) else {
- // Error
- throw PACEHandlerError.ECDHKeyAgreementError( "Unable to get EC group" )
- }
- defer { EC_GROUP_free(group) }
-
- guard let order = BN_new() else {
- // Error
- throw PACEHandlerError.ECDHKeyAgreementError( "Unable to create order bignum" )
- }
- defer { BN_free( order ) }
-
- guard let cofactor = BN_new() else {
- // error
- throw PACEHandlerError.ECDHKeyAgreementError( "Unable to create cofactor bignum" )
- }
- defer { BN_free( cofactor ) }
-
- guard EC_GROUP_get_order(group, order, nil) == 1 ||
- EC_GROUP_get_cofactor(group, cofactor, nil) == 1 else {
- // Handle error
- throw PACEHandlerError.ECDHKeyAgreementError( "Unable to get order or cofactor from group" )
- }
-
- // Create the shared secret in the form of a ECPoint
-
- // Ideally I'd use OpenSSLUtls.computeSharedSecret for this but for reasons as yet unknown, it only returns the first 32 bytes
- // NOT the full 64 bytes (would then convert to 65 with e header of 4 for uncompressed)
- guard let sharedSecretMappingPoint = self.computeECDHMappingKeyPoint(privateKey: mappingKey, inputKey: passportPublicKeyData) else {
- // Error
- throw PACEHandlerError.ECDHKeyAgreementError( "Failed to compute new shared secret mapping point from mapping key and passport public mapping key" )
- }
- defer { EC_POINT_free( sharedSecretMappingPoint ) }
-
- // Map the nonce using Generic mapping to get the new parameters (inc a new generator)
- guard let newGenerater = EC_POINT_new(group) else {
- throw PACEHandlerError.ECDHKeyAgreementError( "Unable to create new mapping generator point" )
- }
- defer{ EC_POINT_free(newGenerater) }
-
- // g = (generator * nonce) + (sharedSecretMappingPoint * 1)
- guard EC_POINT_mul(group, newGenerater, nonce, sharedSecretMappingPoint, BN_value_one(), nil) == 1 else {
- throw PACEHandlerError.ECDHKeyAgreementError( "Failed to map nonce to get new generator params" )
- }
-
- // Initialize ephemeral parameters with parameters from the mapping key
- guard let ephemeralParams = EVP_PKEY_new() else {
- throw PACEHandlerError.ECDHKeyAgreementError( "Unable to create ephemeral params" )
- }
-
- let ephemeral_key = EC_KEY_dup(ec_mapping_key)
- defer{ EC_KEY_free(ephemeral_key) }
-
- // configure the new EC_KEY
- guard EVP_PKEY_set1_EC_KEY(ephemeralParams, ephemeral_key) == 1,
- EC_GROUP_set_generator(group, newGenerater, order, cofactor) == 1,
- EC_GROUP_check(group, nil) == 1,
- EC_KEY_set_group(ephemeral_key, group) == 1 else {
- // Error
-
- EVP_PKEY_free( ephemeralParams )
- throw PACEHandlerError.ECDHKeyAgreementError( "Unable to configure new ephemeral params" )
- }
- return ephemeralParams
- }
-
- /// Generate Authentication token from a publicKey and and a mac key
- /// - Parameters:
- /// - publicKey: An EVP_PKEY structure containing a public key data which will be used to generate the auth code
- /// - macKey: The mac key derived from the key agreement
- /// - Throws: An error if we are unable to encode the public key data
- /// - Returns: The authentication token (8 bytes)
- func generateAuthenticationToken( publicKey: OpaquePointer, macKey: [UInt8] ) throws -> [UInt8] {
- var encodedPublicKeyData = try encodePublicKey(oid:self.paceOID, key:publicKey)
-
- if cipherAlg == "DESede" {
- // If DESede (3DES), we need to pad the data
- encodedPublicKeyData = pad(encodedPublicKeyData, blockSize: 8)
- }
-
- Log.verbose( "Generating Authentication Token" )
- Log.verbose( "EncodedPubKey = \(binToHexRep(encodedPublicKeyData, asArray: true))" )
- Log.verbose( "macKey = \(binToHexRep(macKey, asArray: true))" )
-
- let maccedPublicKeyDataObject = mac(algoName: cipherAlg == "DESede" ? .DES : .AES, key: macKey, msg: encodedPublicKeyData)
-
- // Take 8 bytes for auth token
- let authToken = [UInt8](maccedPublicKeyDataObject[0..<8])
- Log.verbose( "Generated authToken = \(binToHexRep(authToken, asArray: true))" )
- return authToken
- }
-
- /// Encodes a PublicKey as an TLV strucuture based on TR-SAC 1.01 4.5.1 and 4.5.2
- /// - Parameters:
- /// - oid: The object identifier specifying the key type
- /// - key: The ECP_PKEY public key to encode
- /// - Throws: Error if unable to encode
- /// - Returns: the encoded public key in tlv format
- func encodePublicKey( oid : String, key : OpaquePointer ) throws -> [UInt8] {
- let encodedOid = oidToBytes(oid:oid, replaceTag: false)
- guard let pubKeyData = OpenSSLUtils.getPublicKeyData(from: key) else {
- Log.error( "PACEHandler: encodePublicKey() - Unable to get public key data" )
- throw NFCPassportReaderError.InvalidDataPassed("Unable to get public key data")
- }
-
- let keyType = EVP_PKEY_base_id( key )
- let tag : TKTLVTag
- if keyType == EVP_PKEY_DH || keyType == EVP_PKEY_DHX {
- tag = 0x84
- } else {
- tag = 0x86
- }
-
- guard let encOid = TKBERTLVRecord(from: Data(encodedOid)) else {
- throw NFCPassportReaderError.InvalidASN1Value
- }
- let encPub = TKBERTLVRecord(tag:tag, value: Data(pubKeyData))
- let record = TKBERTLVRecord(tag: 0x7F49, records:[encOid, encPub])
- let data = record.data
-
- return [UInt8](data)
- }
-
- /// Computes a key seed based on an MRZ key
- /// - Parameter the mrz key
- /// - Returns a encoded key based on the mrz key that can be used for PACE
- func createPaceKey( from mrzKey: String ) throws -> [UInt8] {
- let buf: [UInt8] = Array(mrzKey.utf8)
- let hash = calcSHA1Hash(buf)
-
- let smskg = SecureMessagingSessionKeyGenerator()
- let key = try smskg.deriveKey(keySeed: hash, cipherAlgName: cipherAlg, keyLength: keyLength, nonce: nil, mode: .PACE_MODE, paceKeyReference: paceKeyType)
- return key
- }
-
- /// Performs the ECDH PACE GM key agreement protocol by multiplying a private key with a public key
- /// - Parameters:
- /// - key: an EVP_PKEY structure containng a ECDH private key
- /// - inputKey: a public key
- /// - Returns: a new EC_POINT
- func computeECDHMappingKeyPoint( privateKey : OpaquePointer, inputKey : [UInt8] ) -> OpaquePointer? {
-
- let ecdh = EVP_PKEY_get1_EC_KEY(privateKey)
- defer { EC_KEY_free(ecdh) }
-
- let privateECKey = EC_KEY_get0_private_key(ecdh) // BIGNUM
-
- // decode public key
- guard let group = EC_KEY_get0_group(ecdh) else{ return nil }
- guard let ecp = EC_POINT_new(group) else { return nil }
- defer { EC_POINT_free(ecp) }
- guard EC_POINT_oct2point(group, ecp, inputKey, inputKey.count,nil) != 0 else { return nil }
-
- // create our output point
- let output = EC_POINT_new(group)
-
- // Multiply our private key with the passports public key to get a new point
- EC_POINT_mul(group, output, nil, ecp, privateECKey, nil)
-
- return output
- }
-}
-
-#endif
diff --git a/app/ios/AwesomeProject/PassportReader.swift b/app/ios/AwesomeProject/PassportReader.swift
deleted file mode 100644
index 5f9499c6e..000000000
--- a/app/ios/AwesomeProject/PassportReader.swift
+++ /dev/null
@@ -1,405 +0,0 @@
-import Foundation
-
-#if !os(macOS)
-import UIKit
-import CoreNFC
-
-@available(iOS 15, *)
-public class PassportReader : NSObject {
- private typealias NFCCheckedContinuation = CheckedContinuation
- private var nfcContinuation: NFCCheckedContinuation?
-
- private var passport : NFCPassportModel = NFCPassportModel()
-
- private var readerSession: NFCTagReaderSession?
- private var currentlyReadingDataGroup : DataGroupId?
-
- private var dataGroupsToRead : [DataGroupId] = []
- private var readAllDatagroups = false
- private var skipSecureElements = true
- private var skipCA = false
- private var skipPACE = false
-
- private var bacHandler : BACHandler?
- private var caHandler : ChipAuthenticationHandler?
- private var paceHandler : PACEHandler?
- private var mrzKey : String = ""
- private var dataAmountToReadOverride : Int? = nil
-
- private var scanCompletedHandler: ((NFCPassportModel?, NFCPassportReaderError?)->())!
- private var nfcViewDisplayMessageHandler: ((NFCViewDisplayMessage) -> String?)?
- private var masterListURL : URL?
- private var shouldNotReportNextReaderSessionInvalidationErrorUserCanceled : Bool = false
-
- // By default, Passive Authentication uses the new RFS5652 method to verify the SOD, but can be switched to use
- // the previous OpenSSL CMS verification if necessary
- public var passiveAuthenticationUsesOpenSSL : Bool = false
-
- public init( logLevel: LogLevel = .info, masterListURL: URL? = nil ) {
- super.init()
-
- Log.logLevel = logLevel
- self.masterListURL = masterListURL
- }
-
- public func setMasterListURL( _ masterListURL : URL ) {
- self.masterListURL = masterListURL
- }
-
- // This function allows you to override the amount of data the TagReader tries to read from the NFC
- // chip. NOTE - this really shouldn't be used for production but is useful for testing as different
- // passports support different data amounts.
- // It appears that the most reliable is 0xA0 (160 chars) but some will support arbitary reads (0xFF or 256)
- public func overrideNFCDataAmountToRead( amount: Int ) {
- dataAmountToReadOverride = amount
- }
-
- public func readPassport( mrzKey : String, tags : [DataGroupId] = [], skipSecureElements : Bool = true, skipCA : Bool = false, skipPACE : Bool = false, customDisplayMessage : ((NFCViewDisplayMessage) -> String?)? = nil) async throws -> NFCPassportModel {
-
- self.passport = NFCPassportModel()
- self.mrzKey = mrzKey
- self.skipCA = skipCA
- self.skipPACE = skipPACE
-
- self.dataGroupsToRead.removeAll()
- self.dataGroupsToRead.append( contentsOf:tags)
- self.nfcViewDisplayMessageHandler = customDisplayMessage
- self.skipSecureElements = skipSecureElements
- self.currentlyReadingDataGroup = nil
- self.bacHandler = nil
- self.caHandler = nil
- self.paceHandler = nil
-
- // If no tags specified, read all
- if self.dataGroupsToRead.count == 0 {
- // Start off with .COM, will always read (and .SOD but we'll add that after), and then add the others from the COM
- self.dataGroupsToRead.append(contentsOf:[.COM, .SOD] )
- self.readAllDatagroups = true
- } else {
- // We are reading specific datagroups
- self.readAllDatagroups = false
- }
-
- guard NFCNDEFReaderSession.readingAvailable else {
- throw NFCPassportReaderError.NFCNotSupported
- }
-
- if NFCTagReaderSession.readingAvailable {
- readerSession = NFCTagReaderSession(pollingOption: [.iso14443], delegate: self, queue: nil)
-
- self.updateReaderSessionMessage( alertMessage: NFCViewDisplayMessage.requestPresentPassport )
- readerSession?.begin()
- }
-
- return try await withCheckedThrowingContinuation({ (continuation: NFCCheckedContinuation) in
- self.nfcContinuation = continuation
- })
- }
-}
-
-@available(iOS 15, *)
-extension PassportReader : NFCTagReaderSessionDelegate {
- // MARK: - NFCTagReaderSessionDelegate
- public func tagReaderSessionDidBecomeActive(_ session: NFCTagReaderSession) {
- // If necessary, you may perform additional operations on session start.
- // At this point RF polling is enabled.
- Log.debug( "tagReaderSessionDidBecomeActive" )
- }
-
- public func tagReaderSession(_ session: NFCTagReaderSession, didInvalidateWithError error: Error) {
- // If necessary, you may handle the error. Note session is no longer valid.
- // You must create a new session to restart RF polling.
- Log.debug( "tagReaderSession:didInvalidateWithError - \(error.localizedDescription)" )
- self.readerSession?.invalidate()
- self.readerSession = nil
-
- if let readerError = error as? NFCReaderError, readerError.code == NFCReaderError.readerSessionInvalidationErrorUserCanceled
- && self.shouldNotReportNextReaderSessionInvalidationErrorUserCanceled {
-
- self.shouldNotReportNextReaderSessionInvalidationErrorUserCanceled = false
- } else {
- var userError = NFCPassportReaderError.UnexpectedError
- if let readerError = error as? NFCReaderError {
- Log.error( "tagReaderSession:didInvalidateWithError - Got NFCReaderError - \(readerError.localizedDescription)" )
- switch (readerError.code) {
- case NFCReaderError.readerSessionInvalidationErrorUserCanceled:
- Log.error( " - User cancelled session" )
- userError = NFCPassportReaderError.UserCanceled
- default:
- Log.error( " - some other error - \(readerError.localizedDescription)" )
- userError = NFCPassportReaderError.UnexpectedError
- }
- } else {
- Log.error( "tagReaderSession:didInvalidateWithError - Received error - \(error.localizedDescription)" )
- }
- nfcContinuation?.resume(throwing: userError)
- nfcContinuation = nil
- }
- }
-
- public func tagReaderSession(_ session: NFCTagReaderSession, didDetect tags: [NFCTag]) {
- Log.debug( "tagReaderSession:didDetect - \(tags[0])" )
- if tags.count > 1 {
- Log.debug( "tagReaderSession:more than 1 tag detected! - \(tags)" )
-
- let errorMessage = NFCViewDisplayMessage.error(.MoreThanOneTagFound)
- self.invalidateSession(errorMessage: errorMessage, error: NFCPassportReaderError.MoreThanOneTagFound)
- return
- }
-
- let tag = tags.first!
- var passportTag: NFCISO7816Tag
- switch tags.first! {
- case let .iso7816(tag):
- passportTag = tag
- default:
- Log.debug( "tagReaderSession:invalid tag detected!!!" )
-
- let errorMessage = NFCViewDisplayMessage.error(NFCPassportReaderError.TagNotValid)
- self.invalidateSession(errorMessage:errorMessage, error: NFCPassportReaderError.TagNotValid)
- return
- }
-
- Task { [passportTag] in
- do {
- try await session.connect(to: tag)
-
- Log.debug( "tagReaderSession:connected to tag - starting authentication" )
- self.updateReaderSessionMessage( alertMessage: NFCViewDisplayMessage.authenticatingWithPassport(0) )
-
- let tagReader = TagReader(tag:passportTag)
-
- if let newAmount = self.dataAmountToReadOverride {
- tagReader.overrideDataAmountToRead(newAmount: newAmount)
- }
-
- tagReader.progress = { [unowned self] (progress) in
- if let dgId = self.currentlyReadingDataGroup {
- self.updateReaderSessionMessage( alertMessage: NFCViewDisplayMessage.readingDataGroupProgress(dgId, progress) )
- } else {
- self.updateReaderSessionMessage( alertMessage: NFCViewDisplayMessage.authenticatingWithPassport(progress) )
- }
- }
-
- let passportModel = try await self.startReading( tagReader : tagReader)
- nfcContinuation?.resume(returning: passportModel)
- nfcContinuation = nil
-
-
- } catch let error as NFCPassportReaderError {
- let errorMessage = NFCViewDisplayMessage.error(error)
- self.invalidateSession(errorMessage: errorMessage, error: error)
- } catch let error {
-
- nfcContinuation?.resume(throwing: error)
- nfcContinuation = nil
- Log.debug( "tagReaderSession:failed to connect to tag - \(error.localizedDescription)" )
- let errorMessage = NFCViewDisplayMessage.error(NFCPassportReaderError.ConnectionError)
- self.invalidateSession(errorMessage: errorMessage, error: NFCPassportReaderError.ConnectionError)
- }
- }
- }
-
- func updateReaderSessionMessage(alertMessage: NFCViewDisplayMessage ) {
- self.readerSession?.alertMessage = self.nfcViewDisplayMessageHandler?(alertMessage) ?? alertMessage.description
- }
-}
-
-@available(iOS 15, *)
-extension PassportReader {
-
- func startReading(tagReader : TagReader) async throws -> NFCPassportModel {
-
- if !skipPACE {
- do {
- let data = try await tagReader.readCardAccess()
- Log.verbose( "Read CardAccess - data \(binToHexRep(data))" )
- let cardAccess = try CardAccess(data)
- passport.cardAccess = cardAccess
-
- Log.info( "Starting Password Authenticated Connection Establishment (PACE)" )
-
- let paceHandler = try PACEHandler( cardAccess: cardAccess, tagReader: tagReader )
- try await paceHandler.doPACE(mrzKey: mrzKey )
- passport.PACEStatus = .success
- Log.debug( "PACE Succeeded" )
- } catch {
- passport.PACEStatus = .failed
- Log.error( "PACE Failed - falling back to BAC" )
- }
-
- _ = try await tagReader.selectPassportApplication()
- }
-
- // If either PACE isn't supported, we failed whilst doing PACE or we didn't even attempt it, then fall back to BAC
- if passport.PACEStatus != .success {
- try await doBACAuthentication(tagReader : tagReader)
- }
-
- // Now to read the datagroups
- try await readDataGroups(tagReader: tagReader)
-
- self.updateReaderSessionMessage(alertMessage: NFCViewDisplayMessage.successfulRead)
-
- try await doActiveAuthenticationIfNeccessary(tagReader : tagReader)
- self.shouldNotReportNextReaderSessionInvalidationErrorUserCanceled = true
- self.readerSession?.invalidate()
-
- // If we have a masterlist url set then use that and verify the passport now
- self.passport.verifyPassport(masterListURL: self.masterListURL, useCMSVerification: self.passiveAuthenticationUsesOpenSSL)
-
- return self.passport
- }
-
-
- func doActiveAuthenticationIfNeccessary( tagReader : TagReader) async throws {
- guard self.passport.activeAuthenticationSupported else {
- return
- }
-
- Log.info( "Performing Active Authentication" )
-
- let challenge = generateRandomUInt8Array(8)
- Log.verbose( "Generated Active Authentication challange - \(binToHexRep(challenge))")
- let response = try await tagReader.doInternalAuthentication(challenge: challenge)
- self.passport.verifyActiveAuthentication( challenge:challenge, signature:response.data )
- }
-
-
- func doBACAuthentication(tagReader : TagReader) async throws {
- self.currentlyReadingDataGroup = nil
-
- Log.info( "Starting Basic Access Control (BAC)" )
-
- self.passport.BACStatus = .failed
-
- self.bacHandler = BACHandler( tagReader: tagReader )
- try await bacHandler?.performBACAndGetSessionKeys( mrzKey: mrzKey )
- Log.info( "Basic Access Control (BAC) - SUCCESS!" )
-
- self.passport.BACStatus = .success
- }
-
- func readDataGroups( tagReader: TagReader ) async throws {
-
- // Read COM
- var DGsToRead = [DataGroupId]()
-
- self.updateReaderSessionMessage( alertMessage: NFCViewDisplayMessage.readingDataGroupProgress(.COM, 0) )
- if let com = try await readDataGroup(tagReader:tagReader, dgId:.COM) as? COM {
- self.passport.addDataGroup( .COM, dataGroup:com )
-
- // SOD and COM shouldn't be present in the DG list but just in case (worst case here we read the sod twice)
- DGsToRead = [.SOD] + com.dataGroupsPresent.map { DataGroupId.getIDFromName(name:$0) }
- DGsToRead.removeAll { $0 == .COM }
- }
-
- if DGsToRead.contains( .DG14 ) {
- DGsToRead.removeAll { $0 == .DG14 }
-
- if !skipCA {
- // Do Chip Authentication
- if let dg14 = try await readDataGroup(tagReader:tagReader, dgId:.DG14) as? DataGroup14 {
- self.passport.addDataGroup( .DG14, dataGroup:dg14 )
- let caHandler = ChipAuthenticationHandler(dg14: dg14, tagReader: tagReader)
-
- if caHandler.isChipAuthenticationSupported {
- do {
- // Do Chip authentication and then continue reading datagroups
- try await caHandler.doChipAuthentication()
- self.passport.chipAuthenticationStatus = .success
- } catch {
- Log.info( "Chip Authentication failed - re-establishing BAC")
- self.passport.chipAuthenticationStatus = .failed
-
- // Failed Chip Auth, need to re-establish BAC
- try await doBACAuthentication(tagReader: tagReader)
- }
- }
- }
- }
- }
-
- // If we are skipping secure elements then remove .DG3 and .DG4
- if self.skipSecureElements {
- DGsToRead = DGsToRead.filter { $0 != .DG3 && $0 != .DG4 }
- }
-
- if self.readAllDatagroups != true {
- DGsToRead = DGsToRead.filter { dataGroupsToRead.contains($0) }
- }
- for dgId in DGsToRead {
- self.updateReaderSessionMessage( alertMessage: NFCViewDisplayMessage.readingDataGroupProgress(dgId, 0) )
- if let dg = try await readDataGroup(tagReader:tagReader, dgId:dgId) {
- self.passport.addDataGroup( dgId, dataGroup:dg )
- }
- }
- }
-
- func readDataGroup( tagReader : TagReader, dgId : DataGroupId ) async throws -> DataGroup? {
-
- self.currentlyReadingDataGroup = dgId
- Log.info( "Reading tag - \(dgId)" )
- var readAttempts = 0
-
- self.updateReaderSessionMessage( alertMessage: NFCViewDisplayMessage.readingDataGroupProgress(dgId, 0) )
-
- repeat {
- do {
- let response = try await tagReader.readDataGroup(dataGroup:dgId)
- let dg = try DataGroupParser().parseDG(data: response)
- return dg
- } catch let error as NFCPassportReaderError {
- Log.error( "TagError reading tag - \(error)" )
-
- // OK we had an error - depending on what happened, we may want to try to re-read this
- // E.g. we failed to read the last Datagroup because its protected and we can't
- let errMsg = error.value
- Log.error( "ERROR - \(errMsg)" )
-
- var redoBAC = false
- if errMsg == "Session invalidated" || errMsg == "Class not supported" || errMsg == "Tag connection lost" {
- // Check if we have done Chip Authentication, if so, set it to nil and try to redo BAC
- if self.caHandler != nil {
- self.caHandler = nil
- redoBAC = true
- } else {
- // Can't go any more!
- throw error
- }
- } else if errMsg == "Security status not satisfied" || errMsg == "File not found" {
- // Can't read this element as we aren't allowed - remove it and return out so we re-do BAC
- self.dataGroupsToRead.removeFirst()
- redoBAC = true
- } else if errMsg == "SM data objects incorrect" || errMsg == "Class not supported" {
- // Can't read this element security objects now invalid - and return out so we re-do BAC
- redoBAC = true
- } else if errMsg.hasPrefix( "Wrong length" ) || errMsg.hasPrefix( "End of file" ) { // Should now handle errors 0x6C xx, and 0x67 0x00
- // OK passport can't handle max length so drop it down
- tagReader.reduceDataReadingAmount()
- redoBAC = true
- }
-
- if redoBAC {
- // Redo BAC and try again
- try await doBACAuthentication(tagReader : tagReader)
- } else {
- // Some other error lets have another try
- }
- }
- readAttempts += 1
- } while ( readAttempts < 2 )
-
- return nil
- }
-
- func invalidateSession(errorMessage: NFCViewDisplayMessage, error: NFCPassportReaderError) {
- // Mark the next 'invalid session' error as not reportable (we're about to cause it by invalidating the
- // session). The real error is reported back with the call to the completed handler
- self.shouldNotReportNextReaderSessionInvalidationErrorUserCanceled = true
- self.readerSession?.invalidate(errorMessage: self.nfcViewDisplayMessageHandler?(errorMessage) ?? errorMessage.description)
- nfcContinuation?.resume(throwing: error)
- nfcContinuation = nil
- }
-}
-#endif
diff --git a/app/ios/AwesomeProject/ResponseAPDU.swift b/app/ios/AwesomeProject/ResponseAPDU.swift
deleted file mode 100644
index 4ce6dceba..000000000
--- a/app/ios/AwesomeProject/ResponseAPDU.swift
+++ /dev/null
@@ -1,17 +0,0 @@
-#if !os(macOS)
-
-@available(iOS 13, *)
-public struct ResponseAPDU {
-
- public var data : [UInt8]
- public var sw1 : UInt8
- public var sw2 : UInt8
-
- public init(data: [UInt8], sw1: UInt8, sw2: UInt8) {
- self.data = data
- self.sw1 = sw1
- self.sw2 = sw2
- }
-}
-
-#endif
diff --git a/app/ios/AwesomeProject/SecureMessaging.swift b/app/ios/AwesomeProject/SecureMessaging.swift
deleted file mode 100644
index 7b3d9e3e0..000000000
--- a/app/ios/AwesomeProject/SecureMessaging.swift
+++ /dev/null
@@ -1,292 +0,0 @@
-import Foundation
-
-public enum SecureMessagingSupportedAlgorithms {
- case DES
- case AES
-}
-
-#if !os(macOS)
-import CoreNFC
-
-
-/// This class implements the secure messaging protocol.
-/// The class is a new layer that comes between the reader and the iso7816.
-/// It gives a new transmit method that takes an APDU object formed by the iso7816 layer,
-/// ciphers it following the doc9303 specification, sends the ciphered APDU to the reader
-/// layer and returns the unciphered APDU.
-@available(iOS 13, *)
-public class SecureMessaging {
- private var ksenc : [UInt8]
- private var ksmac : [UInt8]
- private var ssc : [UInt8]
- private let algoName : SecureMessagingSupportedAlgorithms
- private let padLength : Int
-
- public init( encryptionAlgorithm : SecureMessagingSupportedAlgorithms = .DES, ksenc : [UInt8], ksmac : [UInt8], ssc : [UInt8]) {
- self.ksenc = ksenc
- self.ksmac = ksmac
- self.ssc = ssc
- self.algoName = encryptionAlgorithm
- self.padLength = algoName == .DES ? 8 : 16
- }
-
- /// Protect the apdu following the doc9303 specification
- func protect(apdu : NFCISO7816APDU ) throws -> NFCISO7816APDU {
-
- Log.verbose("\t\tSSC: " + binToHexRep(self.ssc))
- self.ssc = self.incSSC()
- let paddedSSC = algoName == .DES ? self.ssc : [UInt8](repeating: 0, count: 8) + ssc
- Log.verbose("\tIncrement SSC with 1")
- Log.verbose("\t\tSSC: " + binToHexRep(self.ssc))
-
-
- let cmdHeader = self.maskClassAndPad(apdu: apdu)
- var do87 : [UInt8] = []
- var do97 : [UInt8] = []
-
- var tmp = "Concatenate CmdHeader"
- if apdu.data != nil {
- tmp += " and DO87"
- do87 = try self.buildD087(apdu: apdu)
- }
-
- let isMSE = apdu.instructionCode == 0x22
- if apdu.expectedResponseLength > 0 && (isMSE ? apdu.expectedResponseLength < 256 : true) {
- tmp += " and DO97"
- do97 = try self.buildD097(apdu: apdu)
- }
-
- let M = cmdHeader + do87 + do97
- Log.verbose(tmp)
- Log.verbose("\tM: " + binToHexRep(M))
-
- Log.verbose("Compute MAC of M")
-
- let N = pad(paddedSSC + M, blockSize:padLength)
- Log.verbose("\tConcatenate SSC and M and add padding")
- Log.verbose("\t\tN: " + binToHexRep(N))
-
- var CC = mac(algoName: algoName, key: self.ksmac, msg: N)
- if CC.count > 8 {
- CC = [UInt8](CC[0..<8])
- }
- Log.verbose("\tCompute MAC over N with KSmac")
- Log.verbose("\t\tCC: " + binToHexRep(CC))
-
- let do8e = self.buildD08E(mac: CC)
-
- // If dataSize > 255 then it will be encoded in 3 bytes with the first byte being 0x00
- // otherwise its a single byte of size
- let size = do87.count + do97.count + do8e.count
- var dataSize: [UInt8]
- if size > 255 {
- dataSize = [0x00] + intToBin(size, pad: 4)
- } else {
- dataSize = intToBin(size)
- }
- var protectedAPDU = [UInt8](cmdHeader[0..<4]) + dataSize
- protectedAPDU += do87 + do97 + do8e
-
- // If the data is more that 255, specify the we are using extended length (0x00, 0x00)
- // Thanks to @filom for the fix!
- if size > 255 {
- protectedAPDU += [0x00,0x00]
- } else {
- protectedAPDU += [0x00]
- }
- Log.verbose("Construct and send protected APDU")
- Log.verbose("\tProtectedAPDU: " + binToHexRep(protectedAPDU))
-
- let newAPDU = NFCISO7816APDU(data:Data(protectedAPDU))!
- return newAPDU
- }
-
- /// Unprotect the APDU following the iso7816 specification
- func unprotect(rapdu : ResponseAPDU ) throws -> ResponseAPDU {
- var needCC = false
- var do87 : [UInt8] = []
- var do87Data : [UInt8] = []
- var do99 : [UInt8] = []
- //var do8e : [UInt8] = []
- var offset = 0
-
- self.ssc = self.incSSC()
- let paddedSSC = algoName == .DES ? self.ssc : [UInt8](repeating: 0, count: 8) + ssc
- Log.verbose("\tIncrement SSC with 1")
- Log.verbose("\t\tSSC: " + binToHexRep(self.ssc))
-
- // Check for a SM error
- if(rapdu.sw1 != 0x90 || rapdu.sw2 != 0x00) {
- return rapdu
- }
-
- let rapduBin = rapdu.data + [rapdu.sw1, rapdu.sw2]
- Log.verbose("Receive response APDU of MRTD's chip")
- Log.verbose("\tRAPDU: " + binToHexRep(rapduBin))
-
- // DO'87'
- // Mandatory if data is returned, otherwise absent
- if rapduBin[0] == 0x87 {
- let (encDataLength, o) = try asn1Length([UInt8](rapduBin[1...]))
- offset = 1 + o
-
- if rapduBin[offset] != 0x1 {
- throw NFCPassportReaderError.D087Malformed
- }
-
- do87 = [UInt8](rapduBin[0 ..< offset + Int(encDataLength)])
- do87Data = [UInt8](rapduBin[offset+1 ..< offset + Int(encDataLength)])
- offset += Int(encDataLength)
- needCC = true
- }
-
- //DO'99'
- // Mandatory, only absent if SM error occurs
- guard rapduBin.count >= offset + 5 else {
- print("size error")
- let returnSw1 = (rapduBin.count >= offset+3) ? rapduBin[offset+2] : 0;
- let returnSw2 = (rapduBin.count >= offset+4) ? rapduBin[offset+3] : 0;
- return ResponseAPDU(data: [], sw1: returnSw1, sw2: returnSw2);
- }
-
- do99 = [UInt8](rapduBin[offset.. 0 {
- tmp += " DO'87"
- }
- if do99.count > 0 {
- tmp += " DO'99"
- }
- Log.verbose("Verify RAPDU CC by computing MAC of" + tmp)
-
- let K = pad(paddedSSC + do87 + do99, blockSize:padLength)
- Log.verbose("\tConcatenate SSC and" + tmp + " and add padding")
- Log.verbose("\t\tK: " + binToHexRep(K))
-
- Log.verbose("\tCompute MAC with KSmac")
- var CCb = mac(algoName: algoName, key: self.ksmac, msg: K)
- if CCb.count > 8 {
- CCb = [UInt8](CC[0..<8])
- }
- Log.verbose("\t\tCC: " + binToHexRep(CCb))
-
- let res = (CC == CCb)
- Log.verbose("\tCompare CC with data of DO'8E of RAPDU")
- Log.verbose("\t\t\(binToHexRep(CC)) == \(binToHexRep(CCb)) ? \(res)")
-
- if !res {
- throw NFCPassportReaderError.InvalidResponseChecksum
- }
- }
- else if needCC {
- throw NFCPassportReaderError.MissingMandatoryFields
- }
-
- var data : [UInt8] = []
- if do87Data.count > 0 {
-
- let dec : [UInt8]
- if algoName == .DES {
- dec = tripleDESDecrypt(key: self.ksenc, message: do87Data, iv: [0,0,0,0,0,0,0,0])
- } else {
- // for AES the IV is the ssc with AES/EBC/NOPADDING
- let paddedssc = [UInt8](repeating: 0, count: 8) + ssc
- let iv = AESECBEncrypt(key: ksenc, message: paddedssc)
- dec = AESDecrypt(key: self.ksenc, message: do87Data, iv: iv)
- }
-
- // There is a payload
- data = unpad(dec)
- Log.verbose("Decrypt data of DO'87 with KSenc")
- Log.verbose("\tDecryptedData: " + binToHexRep(data))
- }
-
- Log.verbose("Unprotected APDU: [\(binToHexRep(data))] \(binToHexRep(sw1)) \(binToHexRep(sw2))" )
- return ResponseAPDU(data: data, sw1: sw1, sw2: sw2)
- }
-
- func maskClassAndPad(apdu : NFCISO7816APDU ) -> [UInt8] {
- Log.verbose("Mask class byte and pad command header")
- let res = pad([0x0c, apdu.instructionCode, apdu.p1Parameter, apdu.p2Parameter], blockSize: padLength)
- Log.verbose("\tCmdHeader: " + binToHexRep(res))
- return res
- }
-
- func buildD087(apdu : NFCISO7816APDU) throws -> [UInt8] {
- let cipher = [0x01] + self.padAndEncryptData(apdu)
- let res = try [0x87] + toAsn1Length(cipher.count) + cipher
- Log.verbose("Build DO'87")
- Log.verbose("\tDO87: " + binToHexRep(res))
- return res
- }
-
- func padAndEncryptData(_ apdu : NFCISO7816APDU) -> [UInt8] {
- // Pad the data, encrypt data with KSenc and build DO'87
- let data = [UInt8](apdu.data!)
- let paddedData = pad( data, blockSize: padLength )
-
- let enc : [UInt8]
- if algoName == .DES {
- enc = tripleDESEncrypt(key: self.ksenc, message: paddedData, iv: [0,0,0,0,0,0,0,0])
- } else {
- // for AES the IV is the ssc with AES/EBC/NOPADDING
- let paddedssc = [UInt8](repeating: 0, count: 8) + ssc
- let iv = AESECBEncrypt(key: ksenc, message: paddedssc)
- enc = AESEncrypt(key: self.ksenc, message: paddedData, iv: iv)
- }
-
- Log.verbose("Pad data")
- Log.verbose("\tData: " + binToHexRep(paddedData))
- Log.verbose("Encrypt data with KSenc")
- Log.verbose("\tEncryptedData: " + binToHexRep(enc))
- return enc
- }
-
- func incSSC() -> [UInt8] {
- let val = binToHex(self.ssc) + 1
-
- // This needs to be fully zero padded - to 8 bytes = i.e. if SSC is 1 it should return [0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1]
- // NOT [0x1]
- return withUnsafeBytes(of: val.bigEndian, Array.init)
- }
-
- func buildD08E(mac : [UInt8]) -> [UInt8] {
- let res : [UInt8] = [0x8E, UInt8(mac.count)] + mac
- Log.verbose("Build DO'8E")
- Log.verbose("\tDO8E: \(binToHexRep(res))" )
- return res
- }
-
- func buildD097(apdu : NFCISO7816APDU) throws -> [UInt8] {
- let le = apdu.expectedResponseLength
- var binLe = intToBin(le)
- if (le == 256 || le == 65536) {
- binLe = [0x00] + (le > 256 ? [0x00] : [])
- }
-
- let res : [UInt8] = try [0x97] + toAsn1Length(binLe.count) + binLe
- Log.verbose("Build DO'97")
- Log.verbose("\tDO97: \(res)")
- return res
- }
-
-}
-#endif
diff --git a/app/ios/AwesomeProject/SecureMessagingSessionKeyGenerator.swift b/app/ios/AwesomeProject/SecureMessagingSessionKeyGenerator.swift
deleted file mode 100644
index 01d8f5699..000000000
--- a/app/ios/AwesomeProject/SecureMessagingSessionKeyGenerator.swift
+++ /dev/null
@@ -1,149 +0,0 @@
-import Foundation
-
-import CryptoKit
-
-@available(iOS 13, macOS 10.15, *)
-class SecureMessagingSessionKeyGenerator {
- static let NO_PACE_KEY_REFERENCE : UInt8 = 0x00
- enum SMSMode : UInt8 {
- case ENC_MODE = 0x1;
- case MAC_MODE = 0x2;
- case PACE_MODE = 0x3;
- }
-
- /// Derives the ENC or MAC key for BAC from the keySeed.
- /// - Parameter keySeed the key seed.
- /// - Parameter mode either ENC_MODE or MAC_MODE
- /// - Returns the key.
- /// - Throws InvalidDataPassed on data error
- func deriveKey( keySeed : [UInt8], mode : SMSMode) throws -> [UInt8] {
- return try deriveKey(keySeed: keySeed, cipherAlgName: "DESede", keyLength: 128, mode: mode);
- }
-
- /// Derives the ENC or MAC key for BAC or PACE or CA.
- /// - Parameter keySeed the key seed.
- /// - Parameter cipherAlgName either AES or DESede
- /// - Parameter keyLength key length in bits
- /// - Parameter mode either {@code ENC_MODE}, {@code MAC_MODE}, or {@code PACE_MODE}
- /// - Returns the key.
- /// - Throws InvalidDataPassed on data error
- func deriveKey(keySeed : [UInt8], cipherAlgName :String, keyLength : Int, mode : SMSMode) throws -> [UInt8] {
- return try deriveKey(keySeed: keySeed, cipherAlgName: cipherAlgName, keyLength: keyLength, nonce: nil, mode: mode);
- }
-
- /// Derives the ENC or MAC key for BAC or PACE or CA.
- /// - Parameter keySeed the shared secret, as octets
- /// - Parameter cipherAlg in Java mnemonic notation (for example "DESede", "AES")
- /// - Parameter keyLength length in bits
- /// - Parameter nonce optional nonce or nil
- /// - Parameter mode the mode either {@code ENC}, {@code MAC}, or {@code PACE} mode
- /// - Returns the key.
- /// - Throws InvalidDataPassed on data error
- func deriveKey(keySeed : [UInt8], cipherAlgName :String, keyLength : Int, nonce : [UInt8]? = nil, mode : SMSMode) throws -> [UInt8] {
- return try deriveKey(keySeed: keySeed, cipherAlgName: cipherAlgName, keyLength: keyLength, nonce: nonce, mode: mode, paceKeyReference: SecureMessagingSessionKeyGenerator.NO_PACE_KEY_REFERENCE);
- }
-
- /// Derives the ENC or MAC key for BAC or PACE or CA.
- /// - Parameter keySeed the shared secret, as octets
- /// - Parameter cipherAlg in Java mnemonic notation (for example "DESede", "AES")
- /// - Parameter keyLength length in bits
- /// - Parameter nonce optional nonce or null
- /// - Parameter mode the mode either {@code ENC}, {@code MAC}, or {@code PACE} mode
- /// - Parameter paceKeyReference Key Reference For Pace Protocol
- /// - Returns the key.
- /// - Throws InvalidDataPassed on data error
- func deriveKey(keySeed : [UInt8], cipherAlgName :String, keyLength : Int, nonce : [UInt8]?, mode : SMSMode, paceKeyReference : UInt8) throws -> [UInt8] {
- let digestAlgo = try inferDigestAlgorithmFromCipherAlgorithmForKeyDerivation(cipherAlg: cipherAlgName, keyLength: keyLength);
-
- let modeArr : [UInt8] = [0x00, 0x00, 0x00, mode.rawValue]
- var dataEls = [Data(keySeed)]
- if let nonce = nonce {
- dataEls.append( Data(nonce) )
- }
- dataEls.append( Data(modeArr) )
- let hashResult = try getHash(algo: digestAlgo, dataElements: dataEls)
-
- var keyBytes : [UInt8]
- if cipherAlgName == "DESede" || cipherAlgName == "3DES" {
- // TR-SAC 1.01, 4.2.1.
- switch(keyLength) {
- case 112, 128:
- // Copy E (Octects 1 to 8), D (Octects 9 to 16), E (again Octects 1 to 8), 112-bit 3DES key
- keyBytes = [UInt8](hashResult[0..<16] + hashResult[0..<8])
- break;
- default:
- throw NFCPassportReaderError.InvalidDataPassed("Can only use DESede with 128-but key length")
- }
- } else if cipherAlgName.lowercased() == "aes" || cipherAlgName.lowercased().hasPrefix("aes") {
- // TR-SAC 1.01, 4.2.2.
- switch(keyLength) {
- case 128:
- keyBytes = [UInt8](hashResult[0..<16]) // NOTE: 128 = 16 * 8
- case 192:
- keyBytes = [UInt8](hashResult[0..<24]) // NOTE: 192 = 24 * 8
- case 256:
- keyBytes = [UInt8](hashResult[0..<32]) // NOTE: 256 = 32 * 8
- default:
- throw NFCPassportReaderError.InvalidDataPassed("Can only use AES with 128-bit, 192-bit key or 256-bit length")
- }
- } else {
- throw NFCPassportReaderError.InvalidDataPassed( "Unsupported cipher algorithm used" )
- }
-
- return keyBytes
- }
-
- func inferDigestAlgorithmFromCipherAlgorithmForKeyDerivation( cipherAlg : String, keyLength : Int) throws -> String {
- if cipherAlg == "DESede" || cipherAlg == "AES-128" {
- return "SHA1";
- }
- if cipherAlg == "AES" && keyLength == 128 {
- return "SHA1";
- }
- if cipherAlg == "AES-256" || cipherAlg == "AES-192" {
- return "SHA256";
- }
- if cipherAlg == "AES" && (keyLength == 192 || keyLength == 256) {
- return "SHA256";
- }
-
- throw NFCPassportReaderError.InvalidDataPassed("Unsupported cipher algorithm or key length")
- }
-
- /// This generates a SHA-X hash based on the passed in algo.
- /// There must be a more generic way to do this?
- func getHash(algo: String, dataElements:[Data] ) throws -> [UInt8] {
- var hash : [UInt8]
-
- let algo = algo.lowercased()
- if algo == "sha1" {
- var hasher = Insecure.SHA1()
- for d in dataElements {
- hasher.update( data:d )
- }
- hash = Array(hasher.finalize())
- } else if algo == "sha256" {
- var hasher = SHA256()
- for d in dataElements {
- hasher.update( data:d )
- }
- hash = Array(hasher.finalize())
- } else if algo == "sha384" {
- var hasher = SHA384()
- for d in dataElements {
- hasher.update( data:d )
- }
- hash = Array(hasher.finalize())
- } else if algo == "sha512" {
- var hasher = SHA512()
- for d in dataElements {
- hasher.update( data:d )
- }
- hash = Array(hasher.finalize())
- } else {
- throw NFCPassportReaderError.InvalidHashAlgorithmSpecified
- }
-
- return hash
- }
-}
diff --git a/app/ios/AwesomeProject/SimpleASN1DumpParser.swift b/app/ios/AwesomeProject/SimpleASN1DumpParser.swift
deleted file mode 100644
index 90196b4d9..000000000
--- a/app/ios/AwesomeProject/SimpleASN1DumpParser.swift
+++ /dev/null
@@ -1,166 +0,0 @@
-import Foundation
-import OpenSSL
-
-@available(iOS 13, macOS 10.15, *)
-public class ASN1Item : CustomDebugStringConvertible {
- var pos : Int = -1
- var depth : Int = -1
- var headerLen : Int = -1
- var length : Int = -1
- var itemType : String = "" // Primative or Constructed (prim or cons)
- var type : String = "" // Actual type of the value ( object, set, etc)
- var value : String = ""
- var line : String = ""
- var parent : ASN1Item? = nil
-
- private var children = [ASN1Item] ()
-
- public init( line : String) {
- self.line = line
-
- let scanner = Scanner(string: line)
-
- let space = CharacterSet(charactersIn: " =:")
- let equals = CharacterSet(charactersIn: "= ")
- let colon = CharacterSet(charactersIn: ":")
- let end = CharacterSet(charactersIn: "\n")
-
- scanner.charactersToBeSkipped = space
- self.pos = scanner.scanInt() ?? -1
- _ = scanner.scanUpToCharacters(from: equals)
- self.depth = scanner.scanInt() ?? -1
- _ = scanner.scanUpToCharacters(from: equals)
- self.headerLen = scanner.scanInt() ?? -1
- _ = scanner.scanUpToCharacters(from: equals)
- self.length = scanner.scanInt() ?? -1
- self.itemType = scanner.scanUpToCharacters(from: colon) ?? ""
- let rest = scanner.scanUpToCharacters(from: end)?.trimmingCharacters(in: .whitespacesAndNewlines) ?? ""
-
- if itemType == "cons" {
- type = rest
-
- } else {
- let items = rest.components(separatedBy: ":" ).filter{ !$0.isEmpty }
- self.type = items[0].trimmingCharacters(in: .whitespacesAndNewlines)
- if ( items.count > 1 ) {
- self.value = items[1].trimmingCharacters(in: .whitespacesAndNewlines)
- }
- }
- }
-
- func addChild( _ child : ASN1Item ) {
- child.parent = self
- self.children.append( child )
- }
-
- public func getChild( _ child : Int ) -> ASN1Item? {
- if ( child < children.count ) {
- return children[child]
- } else {
- return nil
- }
- }
-
- public func getNumberOfChildren() -> Int {
- return children.count
- }
-
- public var debugDescription: String {
- var ret = "pos:\(pos), d=\(depth), hl=\(headerLen), l=\(length): \(itemType): \(type) \(value)\n"
- children.forEach { ret += $0.debugDescription }
- return ret
- }
-}
-
-/// Very very basic ASN1 parser class - uses OpenSSL to dump an ASN1 structure to a string, and then parses that out into
-/// a tree based hieracy of ASN1Item structures - depth based
-@available(iOS 13, macOS 10.15, *)
-public class SimpleASN1DumpParser {
- public init() {
-
- }
-
- public func parse( data: Data ) throws -> ASN1Item {
- var parsed : String = ""
-
-
- let _ = try data.withUnsafeBytes { (ptr) in
- guard let out = BIO_new(BIO_s_mem()) else { throw OpenSSLError.UnableToParseASN1("Unable to allocate output buffer") }
- defer { BIO_free(out) }
-
- let rc = ASN1_parse_dump(out, ptr.baseAddress?.assumingMemoryBound(to: UInt8.self), data.count, 0, 0)
- if rc == 0 {
- throw OpenSSLError.UnableToParseASN1("Failed to parse ASN1 Data")
- }
-
- parsed = OpenSSLUtils.bioToString(bio: out)
- }
-
- let lines = parsed.components(separatedBy: "\n")
- let topItem : ASN1Item? = parseLines( lines:lines)
-
- guard let ret = topItem else {
- throw OpenSSLError.UnableToParseASN1("Failed to format ASN1 Data")
- }
-
- return ret
- }
-
- func parseLines( lines : [String] ) -> ASN1Item? {
- var topItem : ASN1Item?
-
- var currentParent : ASN1Item?
- for line in lines {
- if line.trimmingCharacters(in: .whitespacesAndNewlines) == "" {
- continue
- }
- let item = ASN1Item(line: line)
- if item.depth == 0 {
- topItem = item
- } else if item.depth == currentParent!.depth {
- currentParent!.parent!.addChild( item )
- } else if item.depth > currentParent!.depth {
- currentParent!.addChild( item )
- } else {
- repeat {
- currentParent = currentParent!.parent
- } while currentParent!.depth > item.depth-1 && currentParent!.depth != 0
- if currentParent!.depth == item.depth-1 {
- currentParent!.addChild( item )
- }
- }
- currentParent = item
- }
-
- return topItem
- }
-
- public func test() {
- let lines = [
- " 0:d=0 hl=4 l= 758 cons: SET ",
- " 662:d=1 hl=2 l= 18 cons: SEQUENCE ",
- " 664:d=2 hl=2 l= 10 prim: OBJECT :0.4.0.127.0.7.2.2.3.2.4",
- " 676:d=2 hl=2 l= 1 prim: INTEGER :01",
- " 679:d=2 hl=2 l= 1 prim: INTEGER :01",
- " 682:d=1 hl=2 l= 18 cons: SEQUENCE ",
- " 684:d=2 hl=2 l= 10 prim: OBJECT :0.4.0.127.0.7.2.2.3.2.1",
- " 696:d=2 hl=2 l= 1 prim: INTEGER :01",
- " 699:d=2 hl=2 l= 1 prim: INTEGER :02",
- " 702:d=1 hl=2 l= 13 cons: SEQUENCE ",
- " 704:d=2 hl=2 l= 8 prim: OBJECT :0.4.0.127.0.7.2.2.2",
- " 714:d=2 hl=2 l= 1 prim: INTEGER :01",
- " 717:d=1 hl=2 l= 18 cons: SEQUENCE ",
- " 719:d=2 hl=2 l= 10 prim: OBJECT :0.4.0.127.0.7.2.2.4.2.4",
- " 731:d=2 hl=2 l= 1 prim: INTEGER :02",
- " 734:d=2 hl=2 l= 1 prim: INTEGER :0D",
- " 737:d=1 hl=2 l= 23 cons: SEQUENCE ",
- " 739:d=2 hl=2 l= 6 prim: OBJECT :2.23.136.1.1.5",
- " 747:d=2 hl=2 l= 1 prim: INTEGER :01",
- " 750:d=2 hl=2 l= 10 prim: OBJECT :0.4.0.127.0.7.1.1.4.1.3",
- ""
- ]
-
- let topItem = parseLines( lines:lines )
- print( topItem?.debugDescription ?? "" )
- }
-}
diff --git a/app/ios/AwesomeProject/TagReader.swift b/app/ios/AwesomeProject/TagReader.swift
deleted file mode 100644
index ef9c786a7..000000000
--- a/app/ios/AwesomeProject/TagReader.swift
+++ /dev/null
@@ -1,349 +0,0 @@
-import Foundation
-
-#if !os(macOS)
-import CoreNFC
-
-@available(iOS 15, *)
-public class TagReader {
- var tag : NFCISO7816Tag
- var secureMessaging : SecureMessaging?
- var maxDataLengthToRead : Int = 0xA0 // Should be able to use 256 to read arbitrary amounts of data at full speed BUT this isn't supported across all passports so for reliability just use the smaller amount.
-
- var progress : ((Int)->())?
-
- init( tag: NFCISO7816Tag ) {
- self.tag = tag
- }
-
- func overrideDataAmountToRead( newAmount : Int ) {
- maxDataLengthToRead = newAmount
- }
-
- func reduceDataReadingAmount() {
- if maxDataLengthToRead > 0xA0 {
- maxDataLengthToRead = 0xA0
- }
- }
-
-
- func readDataGroup( dataGroup: DataGroupId ) async throws -> [UInt8] {
- guard let tag = dataGroup.getFileIDTag() else {
- throw NFCPassportReaderError.UnsupportedDataGroup
- }
-
- return try await selectFileAndRead(tag: tag )
- }
-
- func getChallenge() async throws -> ResponseAPDU{
- let cmd : NFCISO7816APDU = NFCISO7816APDU(instructionClass: 00, instructionCode: 0x84, p1Parameter: 0, p2Parameter: 0, data: Data(), expectedResponseLength: 8)
-
- return try await send( cmd: cmd )
- }
-
- func doInternalAuthentication( challenge: [UInt8] ) async throws -> ResponseAPDU {
- let randNonce = Data(challenge)
-
- let cmd = NFCISO7816APDU(instructionClass: 00, instructionCode: 0x88, p1Parameter: 0, p2Parameter: 0, data: randNonce, expectedResponseLength: 256)
-
- return try await send( cmd: cmd )
- }
-
- func doMutualAuthentication( cmdData : Data ) async throws -> ResponseAPDU{
- let cmd : NFCISO7816APDU = NFCISO7816APDU(instructionClass: 00, instructionCode: 0x82, p1Parameter: 0, p2Parameter: 0, data: cmdData, expectedResponseLength: 256)
-
- return try await send( cmd: cmd )
- }
-
- /// The MSE KAT APDU, see EAC 1.11 spec, Section B.1.
- /// This command is sent in the "DESede" case.
- /// - Parameter keyData key data object (tag 0x91)
- /// - Parameter idData key id data object (tag 0x84), can be null
- /// - Parameter completed the complete handler - returns the success response or an error
- func sendMSEKAT( keyData : Data, idData: Data? ) async throws -> ResponseAPDU {
-
- var data = keyData
- if let idData = idData {
- data += idData
- }
-
- let cmd : NFCISO7816APDU = NFCISO7816APDU(instructionClass: 00, instructionCode: 0x22, p1Parameter: 0x41, p2Parameter: 0xA6, data: data, expectedResponseLength: 256)
-
- return try await send( cmd: cmd )
- }
-
- /// The MSE Set AT for Chip Authentication.
- /// This command is the first command that is sent in the "AES" case.
- /// For Chip Authentication. We prefix 0x80 for OID and 0x84 for keyId.
- ///
- /// NOTE THIS IS CURRENTLY UNTESTED
- /// - Parameter oid the OID
- /// - Parameter keyId the keyId or {@code null}
- /// - Parameter completed the complete handler - returns the success response or an error
- func sendMSESetATIntAuth( oid: String, keyId: Int? ) async throws -> ResponseAPDU {
-
- let cmd : NFCISO7816APDU
- let oidBytes = oidToBytes(oid: oid, replaceTag: true)
-
- if let keyId = keyId, keyId != 0 {
- let keyIdBytes = wrapDO(b:0x84, arr:intToBytes(val:keyId, removePadding: true))
- let data = oidBytes + keyIdBytes
-
- cmd = NFCISO7816APDU(instructionClass: 00, instructionCode: 0x22, p1Parameter: 0x41, p2Parameter: 0xA4, data: Data(data), expectedResponseLength: 256)
-
- } else {
- cmd = NFCISO7816APDU(instructionClass: 00, instructionCode: 0x22, p1Parameter: 0x41, p2Parameter: 0xA4, data: Data(oidBytes), expectedResponseLength: 256)
- }
-
- return try await send( cmd: cmd )
- }
-
- func sendMSESetATMutualAuth( oid: String, keyType: UInt8 ) async throws -> ResponseAPDU {
-
- let oidBytes = oidToBytes(oid: oid, replaceTag: true)
- let keyTypeBytes = wrapDO( b: 0x83, arr:[keyType])
-
- let data = oidBytes + keyTypeBytes
-
- let cmd = NFCISO7816APDU(instructionClass: 00, instructionCode: 0x22, p1Parameter: 0xC1, p2Parameter: 0xA4, data: Data(data), expectedResponseLength: -1)
-
- return try await send( cmd: cmd )
- }
-
-
- /// Sends a General Authenticate command.
- /// This command is the second command that is sent in the "AES" case.
- /// - Parameter data data to be sent, without the {@code 0x7C} prefix (this method will add it)
- /// - Parameter lengthExpected the expected length defaults to 256
- /// - Parameter isLast indicates whether this is the last command in the chain
- /// - Parameter completed the complete handler - returns the dynamic authentication data without the {@code 0x7C} prefix (this method will remove it) or an error
- func sendGeneralAuthenticate( data : [UInt8], lengthExpected : Int = 256, isLast: Bool) async throws -> ResponseAPDU {
-
- let wrappedData = wrapDO(b:0x7C, arr:data)
- let commandData = Data(wrappedData)
-
- // NOTE: Support of Protocol Response Data is CONDITIONAL:
- // It MUST be provided for version 2 but MUST NOT be provided for version 1.
- // So, we are expecting 0x7C (= tag), 0x00 (= length) here.
-
- // 0x10 is class command chaining
- let instructionClass : UInt8 = isLast ? 0x00 : 0x10
- let INS_BSI_GENERAL_AUTHENTICATE : UInt8 = 0x86
-
- let cmd : NFCISO7816APDU = NFCISO7816APDU(instructionClass: instructionClass, instructionCode: INS_BSI_GENERAL_AUTHENTICATE, p1Parameter: 0x00, p2Parameter: 0x00, data: commandData, expectedResponseLength: lengthExpected)
- var response : ResponseAPDU
- do {
- response = try await send( cmd: cmd )
- response.data = try unwrapDO( tag:0x7c, wrappedData:response.data)
- } catch {
- // If wrong length error
- if case NFCPassportReaderError.ResponseError(_, let sw1, let sw2) = error,
- sw1 == 0x67, sw2 == 0x00 {
-
- // Resend
- let cmd : NFCISO7816APDU = NFCISO7816APDU(instructionClass: instructionClass, instructionCode: INS_BSI_GENERAL_AUTHENTICATE, p1Parameter: 0x00, p2Parameter: 0x00, data: commandData, expectedResponseLength: 256)
- response = try await send( cmd: cmd )
- response.data = try unwrapDO( tag:0x7c, wrappedData:response.data)
- } else {
- throw error
- }
- }
- return response
- }
-
-
- func selectFileAndRead( tag: [UInt8]) async throws -> [UInt8] {
- var resp = try await selectFile(tag: tag )
-
- // Read first 4 bytes of header to see how big the data structure is
- guard let readHeaderCmd = NFCISO7816APDU(data:Data([0x00, 0xB0, 0x00, 0x00, 0x00, 0x00,0x04])) else {
- throw NFCPassportReaderError.UnexpectedError
- }
- resp = try await self.send( cmd: readHeaderCmd )
-
- // Header looks like: e.g.60145F01 -
- // the total length is the 2nd value plus the two header 2 bytes
- // We've read 4 bytes so we now need to read the remaining bytes from offset 4
- let (len, o) = try! asn1Length([UInt8](resp.data[1..<4]))
- var remaining = Int(len)
- var amountRead = o + 1
-
- var data = [UInt8](resp.data[.. 0 {
- if maxDataLengthToRead != 256 && remaining < maxDataLengthToRead {
- readAmount = remaining
- }
-
- self.progress?( Int(Float(amountRead) / Float(remaining+amountRead ) * 100))
- let offset = intToBin(amountRead, pad:4)
-
- Log.verbose( "TagReader - data bytes remaining: \(remaining), will read : \(readAmount)" )
- let cmd = NFCISO7816APDU(
- instructionClass: 00,
- instructionCode: 0xB0,
- p1Parameter: offset[0],
- p2Parameter: offset[1],
- data: Data(),
- expectedResponseLength: readAmount
- )
- resp = try await self.send( cmd: cmd )
-
- Log.verbose( "TagReader - got resp - \(binToHexRep(resp.data, asArray: true)), sw1 : \(resp.sw1), sw2 : \(resp.sw2)" )
- data += resp.data
-
- remaining -= resp.data.count
- amountRead += resp.data.count
- Log.verbose( "TagReader - Amount of data left to read - \(remaining)" )
- }
-
- return data
- }
-
-
- func readCardAccess() async throws -> [UInt8]{
- // Info provided by @smulu
- // By default NFCISO7816Tag requirers a list of ISO/IEC 7816 applets (AIDs). Upon discovery of NFC tag the first found applet from this list is automatically selected (and you have no way of changing this).
- // This is a problem for PACE protocol becaues it requires reading parameters from file EF.CardAccess which lies outside of eMRTD applet (AID: A0000002471001) in the master file.
-
- // Now, the ICAO 9303 standard does specify command for selecting master file by sending SELECT APDU with P1=0x00, P2=0x0C and empty data field (see part 10 page 8). But after some testing I found out this command doesn't work on some passports (European passports) and although receiving success (sw=9000) from passport the master file is not selected.
-
- // After a bit of researching standard ISO/IEC 7816 I found there is an alternative SELECT command for selecting master file. The command doesn't differ much from the command specified in ICAO 9303 doc with only difference that data field is set to: 0x3F00. See section 6.11.3 of ISO/IEC 7816-4.
- // By executing above SELECT command (with data=0x3F00) master file should be selected and you should be able to read EF.CardAccess from passport.
-
- // First select master file
- let cmd : NFCISO7816APDU = NFCISO7816APDU(instructionClass: 0x00, instructionCode: 0xA4, p1Parameter: 0x00, p2Parameter: 0x0C, data: Data([0x3f,0x00]), expectedResponseLength: -1)
-
- _ = try await send( cmd: cmd)
-
- // Now read EC.CardAccess
- let data = try await self.selectFileAndRead(tag: [0x01,0x1C])
- return data
- }
-
- func selectPassportApplication() async throws -> ResponseAPDU {
- // Finally reselect the eMRTD application so the rest of the reading works as normal
- Log.debug( "Re-selecting eMRTD Application" )
- let cmd : NFCISO7816APDU = NFCISO7816APDU(instructionClass: 0x00, instructionCode: 0xA4, p1Parameter: 0x04, p2Parameter: 0x0C, data: Data([0xA0, 0x00, 0x00, 0x02, 0x47, 0x10, 0x01]), expectedResponseLength: -1)
-
- let response = try await self.send( cmd: cmd)
- return response
- }
-
- func selectFile( tag: [UInt8] ) async throws -> ResponseAPDU {
-
- let data : [UInt8] = [0x00, 0xA4, 0x02, 0x0C, 0x02] + tag
- let cmd = NFCISO7816APDU(data:Data(data))!
-
- return try await send( cmd: cmd )
- }
-
- func send( cmd: NFCISO7816APDU ) async throws -> ResponseAPDU {
- Log.verbose( "TagReader - sending \(cmd)" )
- var toSend = cmd
- if let sm = secureMessaging {
- toSend = try sm.protect(apdu:cmd)
- Log.verbose("TagReader - [SM] \(toSend)" )
- }
-
- let (data, sw1, sw2) = try await tag.sendCommand(apdu: toSend)
- Log.verbose( "TagReader - Received response" )
- var rep = ResponseAPDU(data: [UInt8](data), sw1: sw1, sw2: sw2)
-
- if let sm = self.secureMessaging {
- rep = try sm.unprotect(rapdu:rep)
- Log.verbose(String(format:"TagReader [SM - unprotected] \(binToHexRep(rep.data, asArray:true)), sw1:0x%02x sw2:0x%02x", rep.sw1, rep.sw2) )
- } else {
- Log.verbose(String(format:"TagReader [unprotected] \(binToHexRep(rep.data, asArray:true)), sw1:0x%02x sw2:0x%02x", rep.sw1, rep.sw2) )
-
- }
-
- if rep.sw1 != 0x90 && rep.sw2 != 0x00 {
- Log.error( "Error reading tag: sw1 - 0x\(binToHexRep(sw1)), sw2 - 0x\(binToHexRep(sw2))" )
- let tagError: NFCPassportReaderError
- if (rep.sw1 == 0x63 && rep.sw2 == 0x00) {
- tagError = NFCPassportReaderError.InvalidMRZKey
- } else {
- let errorMsg = self.decodeError(sw1: rep.sw1, sw2: rep.sw2)
- Log.error( "reason: \(errorMsg)" )
- tagError = NFCPassportReaderError.ResponseError( errorMsg, sw1, sw2 )
- }
- throw tagError
- }
-
- return rep
- }
-
- private func decodeError( sw1: UInt8, sw2:UInt8 ) -> String {
-
- let errors : [UInt8 : [UInt8:String]] = [
- 0x62: [0x00:"No information given",
- 0x81:"Part of returned data may be corrupted",
- 0x82:"End of file/record reached before reading Le bytes",
- 0x83:"Selected file invalidated",
- 0x84:"FCI not formatted according to ISO7816-4 section 5.1.5"],
-
- 0x63: [0x81:"File filled up by the last write",
- 0x82:"Card Key not supported",
- 0x83:"Reader Key not supported",
- 0x84:"Plain transmission not supported",
- 0x85:"Secured Transmission not supported",
- 0x86:"Volatile memory not available",
- 0x87:"Non Volatile memory not available",
- 0x88:"Key number not valid",
- 0x89:"Key length is not correct",
- 0xC:"Counter provided by X (valued from 0 to 15) (exact meaning depending on the command)"],
- 0x65: [0x00:"No information given",
- 0x81:"Memory failure"],
- 0x67: [0x00:"Wrong length"],
- 0x68: [0x00:"No information given",
- 0x81:"Logical channel not supported",
- 0x82:"Secure messaging not supported",
- 0x83:"Last command of the chain expected",
- 0x84:"Command chaining not supported"],
- 0x69: [0x00:"No information given",
- 0x81:"Command incompatible with file structure",
- 0x82:"Security status not satisfied",
- 0x83:"Authentication method blocked",
- 0x84:"Referenced data invalidated",
- 0x85:"Conditions of use not satisfied",
- 0x86:"Command not allowed (no current EF)",
- 0x87:"Expected SM data objects missing",
- 0x88:"SM data objects incorrect"],
- 0x6A: [0x00:"No information given",
- 0x80:"Incorrect parameters in the data field",
- 0x81:"Function not supported",
- 0x82:"File not found",
- 0x83:"Record not found",
- 0x84:"Not enough memory space in the file",
- 0x85:"Lc inconsistent with TLV structure",
- 0x86:"Incorrect parameters P1-P2",
- 0x87:"Lc inconsistent with P1-P2",
- 0x88:"Referenced data not found"],
- 0x6B: [0x00:"Wrong parameter(s) P1-P2]"],
- 0x6D: [0x00:"Instruction code not supported or invalid"],
- 0x6E: [0x00:"Class not supported"],
- 0x6F: [0x00:"No precise diagnosis"],
- 0x90: [0x00:"Success"] //No further qualification
- ]
-
- // Special cases - where sw2 isn't an error but contains a value
- if sw1 == 0x61 {
- return "SW2 indicates the number of response bytes still available - (\(sw2) bytes still available)"
- } else if sw1 == 0x64 {
- return "State of non-volatile memory unchanged (SW2=00, other values are RFU)"
- } else if sw1 == 0x6C {
- return "Wrong length Le: SW2 indicates the exact length - (exact length :\(sw2))"
- }
-
- if let dict = errors[sw1], let errorMsg = dict[sw2] {
- return errorMsg
- }
-
- return "Unknown error - sw1: 0x\(binToHexRep(sw1)), sw2 - 0x\(binToHexRep(sw2)) "
- }
-}
-
-#endif
diff --git a/app/ios/AwesomeProject/Utils.swift b/app/ios/AwesomeProject/Utils.swift
deleted file mode 100644
index ac3f0af6d..000000000
--- a/app/ios/AwesomeProject/Utils.swift
+++ /dev/null
@@ -1,415 +0,0 @@
-import Foundation
-import CommonCrypto
-import CryptoTokenKit
-
-#if canImport(CryptoKit)
- import CryptoKit
-#endif
-
-private extension UInt8 {
- var hexString: String {
- let string = String(self, radix: 16)
- return (self < 16 ? "0" + string : string)
- }
-}
-
-
-extension FileManager {
- static var documentDir : URL {
- return FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!
- }
-}
-
-extension StringProtocol {
- subscript(bounds: CountableClosedRange) -> SubSequence {
- let start = index(startIndex, offsetBy: bounds.lowerBound)
- let end = index(start, offsetBy: bounds.count)
- return self[start..) -> SubSequence {
- let start = index(startIndex, offsetBy: bounds.lowerBound)
- let end = index(start, offsetBy: bounds.count)
- return self[start.. Index? {
- return range(of: string, options: options)?.lowerBound
- }
-
-}
-
-
-public func binToHexRep( _ val : [UInt8], asArray : Bool = false ) -> String {
- var string = asArray ? "[" : ""
- for x in val {
- if asArray {
- string += String(format:"0x%02x, ", x )
-
- } else {
- string += String(format:"%02x", x )
- }
- }
- string += asArray ? "]" : ""
- return asArray ? string : string.uppercased()
-}
-
-public func binToHexRep( _ val : UInt8 ) -> String {
- let string = String(format:"%02x", val ).uppercased()
- return string
-}
-
-public func binToHex( _ val: UInt8 ) -> Int {
- let hexRep = String(format:"%02X", val)
- return Int(hexRep, radix:16)!
-}
-
-public func binToHex( _ val: [UInt8] ) -> UInt64 {
- let hexVal = UInt64(binToHexRep(val), radix:16)!
- return hexVal
-}
-
-public func binToHex( _ val: ArraySlice ) -> UInt64 {
- return binToHex( [UInt8](val) )
-}
-
-
-public func hexToBin( _ val : UInt64 ) -> [UInt8] {
- let hexRep = String(format:"%lx", val)
- return hexRepToBin( hexRep)
-}
-
-public func binToInt( _ val: ArraySlice ) -> Int {
- let hexVal = binToInt( [UInt8](val) )
- return hexVal
-}
-
-public func binToInt( _ val: [UInt8] ) -> Int {
- let hexVal = Int(binToHexRep(val), radix:16)!
- return hexVal
-}
-
-public func intToBin(_ data : Int, pad : Int = 2) -> [UInt8] {
- if pad == 2 {
- let hex = String(format:"%02x", data)
- return hexRepToBin(hex)
- } else {
- let hex = String(format:"%04x", data)
- return hexRepToBin(hex)
-
- }
-}
-
-/// 'AABB' --> \xaa\xbb'"""
-public func hexRepToBin(_ val : String) -> [UInt8] {
- var output : [UInt8] = []
- var x = 0
- while x < val.count {
- if x+2 <= val.count {
- output.append( UInt8(val[x ..< x + 2], radix:16)! )
- } else {
- output.append( UInt8(val[x ..< x+1], radix:16)! )
-
- }
- x += 2
- }
- return output
-}
-
-public func xor(_ kifd : [UInt8], _ response_kicc : [UInt8] ) -> [UInt8] {
- var kseed = [UInt8]()
- for i in 0 ..< kifd.count {
- kseed.append( kifd[i] ^ response_kicc[i] )
- }
- return kseed
-}
-
-public func generateRandomUInt8Array( _ size: Int ) -> [UInt8] {
-
- var ret : [UInt8] = []
- for _ in 0 ..< size {
- ret.append( UInt8(arc4random_uniform(UInt32(UInt8.max) + 1)) )
- }
- return ret
-}
-
-public func pad(_ toPad : [UInt8], blockSize : Int) -> [UInt8] {
-
- var ret = toPad + [0x80]
- while ret.count % blockSize != 0 {
- ret.append(0x00)
- }
- return ret
-}
-
-public func unpad( _ tounpad : [UInt8]) -> [UInt8] {
- var i = tounpad.count-1
- while tounpad[i] == 0x00 {
- i -= 1
- }
-
- if tounpad[i] == 0x80 {
- return [UInt8](tounpad[0.. [UInt8] {
- if algoName == .DES {
- return desMAC(key: key, msg: msg)
- } else {
- return aesMAC(key: key, msg: msg)
- }
-}
-
-@available(iOS 13, macOS 10.15, *)
-public func desMAC(key : [UInt8], msg : [UInt8]) -> [UInt8]{
-
- let size = msg.count / 8
- var y : [UInt8] = [0,0,0,0,0,0,0,0]
-
- Log.verbose("Calc mac" )
- for i in 0 ..< size {
- let tmp = [UInt8](msg[i*8 ..< i*8+8])
- Log.verbose("x\(i): \(binToHexRep(tmp))" )
- y = DESEncrypt(key: [UInt8](key[0..<8]), message: tmp, iv: y)
- Log.verbose("y\(i): \(binToHexRep(y))" )
- }
-
- Log.verbose("y: \(binToHexRep(y))" )
- Log.verbose("bkey: \(binToHexRep([UInt8](key[8..<16])))" )
- Log.verbose("akey: \(binToHexRep([UInt8](key[0..<8])))" )
- let iv : [UInt8] = [0,0,0,0,0,0,0,0]
- let b = DESDecrypt(key: [UInt8](key[8..<16]), message: y, iv: iv, options:UInt32(kCCOptionECBMode))
- Log.verbose( "b: \(binToHexRep(b))" )
- let a = DESEncrypt(key: [UInt8](key[0..<8]), message: b, iv: iv, options:UInt32(kCCOptionECBMode))
- Log.verbose( "a: \(binToHexRep(a))" )
-
- return a
-}
-
-@available(iOS 13, macOS 10.15, *)
-public func aesMAC( key: [UInt8], msg : [UInt8] ) -> [UInt8] {
- let mac = OpenSSLUtils.generateAESCMAC( key: key, message:msg )
- return mac
-}
-
-@available(iOS 13, macOS 10.15, *)
-public func wrapDO( b : UInt8, arr : [UInt8] ) -> [UInt8] {
- let tag = TKBERTLVRecord(tag: TKTLVTag(b), value: Data(arr))
- let result = [UInt8](tag.data)
- return result;
-}
-
-@available(iOS 13, macOS 10.15, *)
-public func unwrapDO( tag : UInt8, wrappedData : [UInt8]) throws -> [UInt8] {
- guard let rec = TKBERTLVRecord(from: Data(wrappedData)),
- rec.tag == tag else {
- throw NFCPassportReaderError.InvalidASN1Value
- }
- return [UInt8](rec.value);
-}
-
-
-public func intToBytes( val: Int, removePadding:Bool) -> [UInt8] {
- if val == 0 {
- return [0]
- }
- var data = withUnsafeBytes(of: val.bigEndian, Array.init)
-
- if removePadding {
- // Remove initial 0 bytes
- for i in 0 ..< data.count {
- if data[i] != 0 {
- data = [UInt8](data[i...])
- break
- }
- }
- }
- return data
-}
-
-@available(iOS 13, macOS 10.15, *)
-public func oidToBytes(oid : String, replaceTag : Bool) -> [UInt8] {
- var encOID = OpenSSLUtils.asn1EncodeOID(oid: oid)
-
- if replaceTag {
- // Replace tag (0x06) with 0x80
- encOID[0] = 0x80
- }
- return encOID
-}
-
-
-
-/// Take an asn.1 length, and return a couple with the decoded length in hexa and the total length of the encoding (1,2 or 3 bytes)
-///
-/// Using Basic Encoding Rules (BER):
-/// If the first byte is <= 0x7F (0-127), then this is the total length of the data
-/// If the first byte is 0x81 then the length is the value of the next byte
-/// If the first byte is 0x82 then the length is the value of the next two bytes
-/// If the first byte is 0x80 then the length is indefinite (never seen this and not sure exactle what it means)
-/// e.g.
-/// if the data was 0x02, 0x11, 0x12, then the amount of data we have to read is two bytes, and the actual data is [0x11, 0x12]
-/// If the length was 0x81,0x80,....... then we know that the data length is contained in the next byte - 0x80 (128), so the amount of data to read is 128 bytes
-/// If the length was 0x82,0x01,0x01,....... then we know that the data length is contained in the next 2 bytes - 0x01, 0x01 (257) so the amount of data to read is 257 bytes
-///
-/// @param data: A length value encoded in the asn.1 format.
-/// @type data: A binary string.
-/// @return: A tuple with the decoded hexa length and the length of the asn.1 encoded value.
-/// @raise asn1Exception: If the parameter does not follow the asn.1 notation.
-
-@available(iOS 13, macOS 10.15, *)
-public func asn1Length( _ data: ArraySlice ) throws -> (Int, Int) {
- return try asn1Length( Array(data) )
-}
-
-@available(iOS 13, macOS 10.15, *)
-public func asn1Length(_ data : [UInt8]) throws -> (Int, Int) {
- if data[0] < 0x80 {
- return (Int(binToHex(data[0])), 1)
- }
- if data[0] == 0x81 {
- return (Int(binToHex(data[1])), 2)
- }
- if data[0] == 0x82 {
- let val = binToHex([UInt8](data[1..<3]))
- return (Int(val), 3)
- }
-
- throw NFCPassportReaderError.CannotDecodeASN1Length
-
-}
-
-/// Convert a length to asn.1 format
-/// @param data: The value to encode in asn.1
-/// @type data: An integer (hexa)
-/// @return: The asn.1 encoded value
-/// @rtype: A binary string
-/// @raise asn1Exception: If the parameter is too big, must be >= 0 and <= FFFF
-@available(iOS 13, macOS 10.15, *)
-public func toAsn1Length(_ data : Int) throws -> [UInt8] {
- if data < 0x80 {
- return hexRepToBin(String(format:"%02x", data))
- }
- if data >= 0x80 && data <= 0xFF {
- return [0x81] + hexRepToBin( String(format:"%02x",data))
- }
- if data >= 0x0100 && data <= 0xFFFF {
- return [0x82] + hexRepToBin( String(format:"%04x",data))
- }
-
- throw NFCPassportReaderError.InvalidASN1Value
-}
-
-
-
-/// This function calculates a Hash of the input data based on the input algorithm
-/// @param data: a byte array of data
-/// @param hashAlgorithm: the hash algorithm to be used - supported ones are SHA1, SHA224, SHA256, SHA384 and SHA512
-/// Currently specifying any others return empty array
-/// @return: A hash of the data
-@available(iOS 13, macOS 10.15, *)
-public func calcHash( data: [UInt8], hashAlgorithm: String ) throws -> [UInt8] {
- var ret : [UInt8] = []
-
- let hashAlgorithm = hashAlgorithm.lowercased()
- if hashAlgorithm == "sha1" {
- ret = calcSHA1Hash(data)
- } else if hashAlgorithm == "sha224" {
- ret = calcSHA224Hash(data)
- } else if hashAlgorithm == "sha256" {
- ret = calcSHA256Hash(data)
- } else if hashAlgorithm == "sha384" {
- ret = calcSHA384Hash(data)
- } else if hashAlgorithm == "sha512" {
- ret = calcSHA512Hash(data)
- } else {
- throw NFCPassportReaderError.InvalidHashAlgorithmSpecified
- }
-
- return ret
-}
-
-
-/// This function calculates a SHA1 Hash of the input data
-/// @param data: a byte array of data
-/// @return: A SHA1 hash of the data
-@available(iOS 13, macOS 10.15, *)
-public func calcSHA1Hash( _ data: [UInt8] ) -> [UInt8] {
- #if canImport(CryptoKit)
- var sha1 = Insecure.SHA1()
- sha1.update(data: data)
- let hash = sha1.finalize()
-
- return Array(hash)
- #else
- fatalError("Couldn't import CryptoKit")
- #endif
-}
-
-/// This function calculates a SHA224 Hash of the input data
-/// @param data: a byte array of data
-/// @return: A SHA224 hash of the data
-@available(iOS 13, macOS 10.15, *)
-public func calcSHA224Hash( _ data: [UInt8] ) -> [UInt8] {
-
- var digest = [UInt8](repeating: 0, count:Int(CC_SHA224_DIGEST_LENGTH))
-
- data.withUnsafeBytes {
- _ = CC_SHA224($0.baseAddress, CC_LONG(data.count), &digest)
- }
- return digest
-}
-
-/// This function calculates a SHA256 Hash of the input data
-/// @param data: a byte array of data
-/// @return: A SHA256 hash of the data
-@available(iOS 13, macOS 10.15, *)
-public func calcSHA256Hash( _ data: [UInt8] ) -> [UInt8] {
- #if canImport(CryptoKit)
- var sha256 = SHA256()
- sha256.update(data: data)
- let hash = sha256.finalize()
-
- return Array(hash)
- #else
- fatalError("Couldn't import CryptoKit")
- #endif
-}
-
-/// This function calculates a SHA512 Hash of the input data
-/// @param data: a byte array of data
-/// @return: A SHA512 hash of the data
-@available(iOS 13, macOS 10.15, *)
-public func calcSHA512Hash( _ data: [UInt8] ) -> [UInt8] {
- #if canImport(CryptoKit)
- var sha512 = SHA512()
- sha512.update(data: data)
- let hash = sha512.finalize()
-
- return Array(hash)
- #else
- fatalError("Couldn't import CryptoKit")
- #endif
-}
-
-/// This function calculates a SHA384 Hash of the input data
-/// @param data: a byte array of data
-/// @return: A SHA384 hash of the data
-@available(iOS 13, macOS 10.15, *)
-public func calcSHA384Hash( _ data: [UInt8] ) -> [UInt8] {
- #if canImport(CryptoKit)
- var sha384 = SHA384()
- sha384.update(data: data)
- let hash = sha384.finalize()
-
- return Array(hash)
- #else
- fatalError("Couldn't import CryptoKit")
- #endif
-}
-
diff --git a/app/ios/AwesomeProject/X509Wrapper.swift b/app/ios/AwesomeProject/X509Wrapper.swift
deleted file mode 100644
index eb995a900..000000000
--- a/app/ios/AwesomeProject/X509Wrapper.swift
+++ /dev/null
@@ -1,161 +0,0 @@
-import OpenSSL
-
-@available(iOS 13, macOS 10.15, *)
-public enum CertificateType {
- case documentSigningCertificate
- case issuerSigningCertificate
-}
-
-@available(iOS 13, macOS 10.15, *)
-public enum CertificateItem : String {
- case fingerprint = "Certificate fingerprint"
- case issuerName = "Issuer"
- case subjectName = "Subject"
- case serialNumber = "Serial number"
- case signatureAlgorithm = "Signature algorithm"
- case publicKeyAlgorithm = "Public key algorithm"
- case notBefore = "Valid from"
- case notAfter = "Valid to"
-}
-
-@available(iOS 13, macOS 10.15, *)
-public class X509Wrapper {
- public let cert : OpaquePointer
-
- public init?( with cert: OpaquePointer? ) {
- guard let cert = cert else { return nil }
-
- self.cert = X509_dup(cert)
- }
-
- public func getItemsAsDict() -> [CertificateItem:String] {
- var item = [CertificateItem:String]()
- if let fingerprint = self.getFingerprint() {
- item[.fingerprint] = fingerprint
- }
- if let issuerName = self.getIssuerName() {
- item[.issuerName] = issuerName
-
- }
- if let subjectName = self.getSubjectName() {
- item[.subjectName] = subjectName
- }
- if let serialNr = self.getSerialNumber() {
- item[.serialNumber] = serialNr
- }
- if let signatureAlgorithm = self.getSignatureAlgorithm() {
- item[.signatureAlgorithm] = signatureAlgorithm
- }
- if let publicKeyAlgorithm = self.getPublicKeyAlgorithm() {
- item[.publicKeyAlgorithm] = publicKeyAlgorithm
- }
- if let notBefore = self.getNotBeforeDate() {
- item[.notBefore] = notBefore
- }
- if let notAfter = self.getNotAfterDate() {
- item[.notAfter] = notAfter
- }
-
- return item
- }
- public func certToPEM() -> String {
- return OpenSSLUtils.X509ToPEM( x509:cert )
- }
-
- public func getFingerprint( ) -> String? {
- let fdig = EVP_sha1();
-
- var n : UInt32 = 0
- let md = UnsafeMutablePointer.allocate(capacity: Int(EVP_MAX_MD_SIZE))
- defer { md.deinitialize(count: Int(EVP_MAX_MD_SIZE)); md.deallocate() }
-
- X509_digest(cert, fdig, md, &n)
- let arr = UnsafeMutableBufferPointer(start: md, count: Int(n)).map({ binToHexRep($0) }).joined(separator: ":")
- return arr
- }
-
- public func getNotBeforeDate() -> String? {
- var notBefore : String?
- if let val = X509_get0_notBefore(cert) {
- notBefore = ASN1TimeToString( val )
- }
- return notBefore
-
- }
-
- public func getNotAfterDate() -> String? {
- var notAfter : String?
- if let val = X509_get0_notAfter(cert) {
- notAfter = ASN1TimeToString( val )
- }
- return notAfter
- }
-
- public func getSerialNumber() -> String? {
- let serialNr = String( ASN1_INTEGER_get(X509_get_serialNumber(cert)), radix:16, uppercase: true )
- return serialNr
- }
-
- public func getSignatureAlgorithm() -> String? {
- let algor = X509_get0_tbs_sigalg(cert);
- let algo = getAlgorithm( algor?.pointee.algorithm )
- return algo
- }
-
- public func getPublicKeyAlgorithm() -> String? {
- let pubKey = X509_get_X509_PUBKEY(cert)
- var ptr : OpaquePointer?
- X509_PUBKEY_get0_param(&ptr, nil, nil, nil, pubKey)
- let algo = getAlgorithm(ptr)
- return algo
- }
-
- public func getIssuerName() -> String? {
- return getName(for: X509_get_issuer_name(cert))
- }
-
- public func getSubjectName() -> String? {
- return getName(for: X509_get_subject_name(cert))
- }
-
- private func getName( for name: OpaquePointer? ) -> String? {
- guard let name = name else { return nil }
-
- var issuer: String = ""
-
- guard let out = BIO_new( BIO_s_mem()) else { return nil }
- defer { BIO_free(out) }
-
- X509_NAME_print_ex(out, name, 0, UInt(ASN1_STRFLGS_ESC_2253 |
- ASN1_STRFLGS_ESC_CTRL |
- ASN1_STRFLGS_ESC_MSB |
- ASN1_STRFLGS_UTF8_CONVERT |
- ASN1_STRFLGS_DUMP_UNKNOWN |
- ASN1_STRFLGS_DUMP_DER | XN_FLAG_SEP_COMMA_PLUS |
- XN_FLAG_DN_REV |
- XN_FLAG_FN_SN |
- XN_FLAG_DUMP_UNKNOWN_FIELDS))
- issuer = OpenSSLUtils.bioToString(bio: out)
-
- return issuer
- }
-
- private func getAlgorithm( _ algo: OpaquePointer? ) -> String? {
- guard let algo = algo else { return nil }
- let len = OBJ_obj2nid(algo)
- var algoString : String? = nil
- if let sa = OBJ_nid2ln(len) {
- algoString = String(cString: sa )
- }
- return algoString
- }
-
- private func ASN1TimeToString( _ date: UnsafePointer ) -> String? {
- guard let b = BIO_new(BIO_s_mem()) else { return nil }
- defer { BIO_free(b) }
-
- ASN1_TIME_print(b, date)
- return OpenSSLUtils.bioToString(bio: b)
- }
-
-}
diff --git a/app/ios/AwesomeProject/masterList.pem b/app/ios/AwesomeProject/masterList.pem
deleted file mode 100644
index 033412744..000000000
--- a/app/ios/AwesomeProject/masterList.pem
+++ /dev/null
@@ -1,32 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIFdDCCA1wCCQDFcc+Un66UsDANBgkqhkiG9w0BAQsFADB8MQswCQYDVQQGEwJH
-QjESMBAGA1UECAwJU29tZXdoZXJlMRIwEAYDVQQHDAlUaGlzIENpdHkxCzAJBgNV
-BAoMAk5BMQswCQYDVQQLDAJOQTENMAsGA1UEAwwEdGVzdDEcMBoGCSqGSIb3DQEJ
-ARYNdGVzdEB0ZXN0LmNvbTAeFw0xOTA2MjgxMzAyNTlaFw0yMDA2MjcxMzAyNTla
-MHwxCzAJBgNVBAYTAkdCMRIwEAYDVQQIDAlTb21ld2hlcmUxEjAQBgNVBAcMCVRo
-aXMgQ2l0eTELMAkGA1UECgwCTkExCzAJBgNVBAsMAk5BMQ0wCwYDVQQDDAR0ZXN0
-MRwwGgYJKoZIhvcNAQkBFg10ZXN0QHRlc3QuY29tMIICIjANBgkqhkiG9w0BAQEF
-AAOCAg8AMIICCgKCAgEA4sTb0Xd20ATso1VffMGK/N2TuEcsZvQkbhr75dd6f77y
-3h5r5ikFCcppGwlgEy6/wn0iEiv4iGDm7cxvVSfwZ+Bm7nbYZVHl8G7vYUZRdLnh
-tcUpfa+jPyrQ+XXfTygjoE2shAs8Wv+uB/O0oLbltdx5HMcitHj6MkIz3bs6hY4Z
-2kSy6JB1Iw0GwB6vfHbD8MUkn0Aqxwdrd5ks61lVpYx3JyvhUXVjC/9rE+dk6+cN
-16WvRhCEH6aClgWcfkSfDtZ85ltcyL3glAqX1YMLl4CFRKZ3NLVgXjHj/QYvAXJq
-yWoNbAQvCFv5WK8/JjtAzFYKwjGGUhG5tL6etLrfDF/RudrLDIS2Js9cTMbbB10O
-UehVksJvYQBaj8VRSsI7GrGydecfBixwqYD5DxcPzZsGcsfzuQYkotG+poDhjRE4
-Ow9zqIG20hgnBn3VTbP21yc4woYLzIK7M7MdWDiDqqcrLwtxolIk6R6lc/3wVR8i
-19F5HFwKM0RW3cWZhXqCHrpYBzj8gx7hJAKSFZWDygLFH8h1LtMx93kstxPR7FA6
-99737YU1HF0j7kjKJAIQqoJ43ftUN9q8sDN/rRpEgKnRUuFrvcaTdTZCJ7NT3u6p
-edC+8rdbKQO6TX0JC8PEl1FjTiVnb3wpMpWPYaI3hspSN/CMUunypoKRJ5IgSK8C
-AwEAATANBgkqhkiG9w0BAQsFAAOCAgEAJtrliSVzukKjUJR3AnZrgcnWZ8kTGH9E
-TSfpmc9IkMvwWvBs/vgpKMm3XVzTM1RcI/pQYR9Y4beXf4wgTQIg1I2kWLVcRMzU
-rwFWl2/h6uA6G+tJpaVVy30rPcYGqLmBqzCCRb3sf/H77/6nknafA4jMASlIWnTE
-R7HBd0cJa50jaTgFaIe734oIMqaAZvFFKK5KDnxSBMHwUf7ej1ibT/rB5Ry80qpJ
-FsKlxpjaeUDWsnnjR4Z98rjDsWOSI8tUTStdnPYTw/6VFsf+zPKwE2u2Qe7SXg3S
-eUoCQqWYaSMqmAfTVJx7zIDIvxa8+LmtijeqYUZcfnos0xxTEeJ6EH65rAPOi23x
-1pg8Z28NAAinqFAo74Hr2hTKESmq0mykF/XP4wLhhaxYHy+FFwm984IIpqbKJmuY
-/LapNMi6hZXRXft5PQYe57ZXD9/Lp8pn+19nX0nyv5agius0/R4M3CvuPbdose64
-jm+2325MQAhihrHmcU0YIt1kwSMuiYOqwD5plx+yenCIhdR6Oa5WX7Xf/hiKZult
-5UVNVxfG1tZbsk/u2iwd2fDMBGQ3/D36REA5el6GUPpBOaa6gVmpS38qRCTVTBqH
-NY8Qy6N+AHsahMtMakwo/EWsDsGTajcrvXX1psLgpRdMNeXgU3nNzJ+wPMUPCTFB
-ZhNynFjgmgY=
------END CERTIFICATE-----
diff --git a/app/ios/AwesomeProjectTests/AwesomeProjectTests.m b/app/ios/AwesomeProjectTests/AwesomeProjectTests.m
deleted file mode 100644
index adc7bf169..000000000
--- a/app/ios/AwesomeProjectTests/AwesomeProjectTests.m
+++ /dev/null
@@ -1,66 +0,0 @@
-#import
-#import
-
-#import
-#import
-
-#define TIMEOUT_SECONDS 600
-#define TEXT_TO_LOOK_FOR @"Welcome to React"
-
-@interface AwesomeProjectTests : XCTestCase
-
-@end
-
-@implementation AwesomeProjectTests
-
-- (BOOL)findSubviewInView:(UIView *)view matching:(BOOL (^)(UIView *view))test
-{
- if (test(view)) {
- return YES;
- }
- for (UIView *subview in [view subviews]) {
- if ([self findSubviewInView:subview matching:test]) {
- return YES;
- }
- }
- return NO;
-}
-
-- (void)testRendersWelcomeScreen
-{
- UIViewController *vc = [[[RCTSharedApplication() delegate] window] rootViewController];
- NSDate *date = [NSDate dateWithTimeIntervalSinceNow:TIMEOUT_SECONDS];
- BOOL foundElement = NO;
-
- __block NSString *redboxError = nil;
-#ifdef DEBUG
- RCTSetLogFunction(
- ^(RCTLogLevel level, RCTLogSource source, NSString *fileName, NSNumber *lineNumber, NSString *message) {
- if (level >= RCTLogLevelError) {
- redboxError = message;
- }
- });
-#endif
-
- while ([date timeIntervalSinceNow] > 0 && !foundElement && !redboxError) {
- [[NSRunLoop mainRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]];
- [[NSRunLoop mainRunLoop] runMode:NSRunLoopCommonModes beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]];
-
- foundElement = [self findSubviewInView:vc.view
- matching:^BOOL(UIView *view) {
- if ([view.accessibilityLabel isEqualToString:TEXT_TO_LOOK_FOR]) {
- return YES;
- }
- return NO;
- }];
- }
-
-#ifdef DEBUG
- RCTSetLogFunction(RCTDefaultLogFunction);
-#endif
-
- XCTAssertNil(redboxError, @"RedBox error: %@", redboxError);
- XCTAssertTrue(foundElement, @"Couldn't find element with text '%@' in %d seconds", TEXT_TO_LOOK_FOR, TIMEOUT_SECONDS);
-}
-
-@end
diff --git a/app/ios/MoproKit/.gitignore b/app/ios/MoproKit/.gitignore
new file mode 100644
index 000000000..49c016dd7
--- /dev/null
+++ b/app/ios/MoproKit/.gitignore
@@ -0,0 +1,52 @@
+# macOS
+.DS_Store
+
+# Xcode
+build/
+*.pbxuser
+!default.pbxuser
+*.mode1v3
+!default.mode1v3
+*.mode2v3
+!default.mode2v3
+*.perspectivev3
+!default.perspectivev3
+xcuserdata/
+*.xccheckout
+*.moved-aside
+DerivedData
+*.hmap
+*.ipa
+*.xcuserstate
+
+# Bundler
+.bundle
+
+# Add this line if you want to avoid checking in source code from Carthage dependencies.
+# Carthage/Checkouts
+
+Carthage/Build
+
+# We recommend against adding the Pods directory to your .gitignore. However
+# you should judge for yourself, the pros and cons are mentioned at:
+# https://guides.cocoapods.org/using/using-cocoapods.html#should-i-ignore-the-pods-directory-in-source-control
+#
+# Note: if you ignore the Pods directory, make sure to uncomment
+# `pod install` in .travis.yml
+#
+# Pods/
+
+# Xcode
+#
+/.build
+/Packages
+/*.xcodeproj
+.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata
+
+# CocoaPods
+Podfile.lock
+Pods
+*.xcworkspace
+
+# Ignore static libs
+*.a
\ No newline at end of file
diff --git a/app/ios/MoproKit/.travis.yml b/app/ios/MoproKit/.travis.yml
new file mode 100644
index 000000000..b2d81587a
--- /dev/null
+++ b/app/ios/MoproKit/.travis.yml
@@ -0,0 +1,14 @@
+# references:
+# * https://www.objc.io/issues/6-build-tools/travis-ci/
+# * https://github.com/supermarin/xcpretty#usage
+
+osx_image: xcode7.3
+language: objective-c
+# cache: cocoapods
+# podfile: Example/Podfile
+# before_install:
+# - gem install cocoapods # Since Travis is not always on latest version
+# - pod install --project-directory=Example
+script:
+- set -o pipefail && xcodebuild test -enableCodeCoverage YES -workspace Example/MoproKit.xcworkspace -scheme MoproKit-Example -sdk iphonesimulator9.3 ONLY_ACTIVE_ARCH=NO | xcpretty
+- pod lib lint
diff --git a/app/ios/MoproKit/Bindings/mopro.swift b/app/ios/MoproKit/Bindings/mopro.swift
new file mode 100644
index 000000000..32127caf7
--- /dev/null
+++ b/app/ios/MoproKit/Bindings/mopro.swift
@@ -0,0 +1,805 @@
+// This file was autogenerated by some hot garbage in the `uniffi` crate.
+// Trust me, you don't want to mess with it!
+import Foundation
+
+// Depending on the consumer's build setup, the low-level FFI code
+// might be in a separate module, or it might be compiled inline into
+// this module. This is a bit of light hackery to work with both.
+#if canImport(moproFFI)
+import moproFFI
+#endif
+
+fileprivate extension RustBuffer {
+ // Allocate a new buffer, copying the contents of a `UInt8` array.
+ init(bytes: [UInt8]) {
+ let rbuf = bytes.withUnsafeBufferPointer { ptr in
+ RustBuffer.from(ptr)
+ }
+ self.init(capacity: rbuf.capacity, len: rbuf.len, data: rbuf.data)
+ }
+
+ static func from(_ ptr: UnsafeBufferPointer) -> RustBuffer {
+ try! rustCall { ffi_mopro_ffi_rustbuffer_from_bytes(ForeignBytes(bufferPointer: ptr), $0) }
+ }
+
+ // Frees the buffer in place.
+ // The buffer must not be used after this is called.
+ func deallocate() {
+ try! rustCall { ffi_mopro_ffi_rustbuffer_free(self, $0) }
+ }
+}
+
+fileprivate extension ForeignBytes {
+ init(bufferPointer: UnsafeBufferPointer) {
+ self.init(len: Int32(bufferPointer.count), data: bufferPointer.baseAddress)
+ }
+}
+
+// For every type used in the interface, we provide helper methods for conveniently
+// lifting and lowering that type from C-compatible data, and for reading and writing
+// values of that type in a buffer.
+
+// Helper classes/extensions that don't change.
+// Someday, this will be in a library of its own.
+
+fileprivate extension Data {
+ init(rustBuffer: RustBuffer) {
+ // TODO: This copies the buffer. Can we read directly from a
+ // Rust buffer?
+ self.init(bytes: rustBuffer.data!, count: Int(rustBuffer.len))
+ }
+}
+
+// Define reader functionality. Normally this would be defined in a class or
+// struct, but we use standalone functions instead in order to make external
+// types work.
+//
+// With external types, one swift source file needs to be able to call the read
+// method on another source file's FfiConverter, but then what visibility
+// should Reader have?
+// - If Reader is fileprivate, then this means the read() must also
+// be fileprivate, which doesn't work with external types.
+// - If Reader is internal/public, we'll get compile errors since both source
+// files will try define the same type.
+//
+// Instead, the read() method and these helper functions input a tuple of data
+
+fileprivate func createReader(data: Data) -> (data: Data, offset: Data.Index) {
+ (data: data, offset: 0)
+}
+
+// Reads an integer at the current offset, in big-endian order, and advances
+// the offset on success. Throws if reading the integer would move the
+// offset past the end of the buffer.
+fileprivate func readInt(_ reader: inout (data: Data, offset: Data.Index)) throws -> T {
+ let range = reader.offset...size
+ guard reader.data.count >= range.upperBound else {
+ throw UniffiInternalError.bufferOverflow
+ }
+ if T.self == UInt8.self {
+ let value = reader.data[reader.offset]
+ reader.offset += 1
+ return value as! T
+ }
+ var value: T = 0
+ let _ = withUnsafeMutableBytes(of: &value, { reader.data.copyBytes(to: $0, from: range)})
+ reader.offset = range.upperBound
+ return value.bigEndian
+}
+
+// Reads an arbitrary number of bytes, to be used to read
+// raw bytes, this is useful when lifting strings
+fileprivate func readBytes(_ reader: inout (data: Data, offset: Data.Index), count: Int) throws -> Array {
+ let range = reader.offset..<(reader.offset+count)
+ guard reader.data.count >= range.upperBound else {
+ throw UniffiInternalError.bufferOverflow
+ }
+ var value = [UInt8](repeating: 0, count: count)
+ value.withUnsafeMutableBufferPointer({ buffer in
+ reader.data.copyBytes(to: buffer, from: range)
+ })
+ reader.offset = range.upperBound
+ return value
+}
+
+// Reads a float at the current offset.
+fileprivate func readFloat(_ reader: inout (data: Data, offset: Data.Index)) throws -> Float {
+ return Float(bitPattern: try readInt(&reader))
+}
+
+// Reads a float at the current offset.
+fileprivate func readDouble(_ reader: inout (data: Data, offset: Data.Index)) throws -> Double {
+ return Double(bitPattern: try readInt(&reader))
+}
+
+// Indicates if the offset has reached the end of the buffer.
+fileprivate func hasRemaining(_ reader: (data: Data, offset: Data.Index)) -> Bool {
+ return reader.offset < reader.data.count
+}
+
+// Define writer functionality. Normally this would be defined in a class or
+// struct, but we use standalone functions instead in order to make external
+// types work. See the above discussion on Readers for details.
+
+fileprivate func createWriter() -> [UInt8] {
+ return []
+}
+
+fileprivate func writeBytes(_ writer: inout [UInt8], _ byteArr: S) where S: Sequence, S.Element == UInt8 {
+ writer.append(contentsOf: byteArr)
+}
+
+// Writes an integer in big-endian order.
+//
+// Warning: make sure what you are trying to write
+// is in the correct type!
+fileprivate func writeInt(_ writer: inout [UInt8], _ value: T) {
+ var value = value.bigEndian
+ withUnsafeBytes(of: &value) { writer.append(contentsOf: $0) }
+}
+
+fileprivate func writeFloat(_ writer: inout [UInt8], _ value: Float) {
+ writeInt(&writer, value.bitPattern)
+}
+
+fileprivate func writeDouble(_ writer: inout [UInt8], _ value: Double) {
+ writeInt(&writer, value.bitPattern)
+}
+
+// Protocol for types that transfer other types across the FFI. This is
+// analogous go the Rust trait of the same name.
+fileprivate protocol FfiConverter {
+ associatedtype FfiType
+ associatedtype SwiftType
+
+ static func lift(_ value: FfiType) throws -> SwiftType
+ static func lower(_ value: SwiftType) -> FfiType
+ static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> SwiftType
+ static func write(_ value: SwiftType, into buf: inout [UInt8])
+}
+
+// Types conforming to `Primitive` pass themselves directly over the FFI.
+fileprivate protocol FfiConverterPrimitive: FfiConverter where FfiType == SwiftType { }
+
+extension FfiConverterPrimitive {
+ public static func lift(_ value: FfiType) throws -> SwiftType {
+ return value
+ }
+
+ public static func lower(_ value: SwiftType) -> FfiType {
+ return value
+ }
+}
+
+// Types conforming to `FfiConverterRustBuffer` lift and lower into a `RustBuffer`.
+// Used for complex types where it's hard to write a custom lift/lower.
+fileprivate protocol FfiConverterRustBuffer: FfiConverter where FfiType == RustBuffer {}
+
+extension FfiConverterRustBuffer {
+ public static func lift(_ buf: RustBuffer) throws -> SwiftType {
+ var reader = createReader(data: Data(rustBuffer: buf))
+ let value = try read(from: &reader)
+ if hasRemaining(reader) {
+ throw UniffiInternalError.incompleteData
+ }
+ buf.deallocate()
+ return value
+ }
+
+ public static func lower(_ value: SwiftType) -> RustBuffer {
+ var writer = createWriter()
+ write(value, into: &writer)
+ return RustBuffer(bytes: writer)
+ }
+}
+// An error type for FFI errors. These errors occur at the UniFFI level, not
+// the library level.
+fileprivate enum UniffiInternalError: LocalizedError {
+ case bufferOverflow
+ case incompleteData
+ case unexpectedOptionalTag
+ case unexpectedEnumCase
+ case unexpectedNullPointer
+ case unexpectedRustCallStatusCode
+ case unexpectedRustCallError
+ case unexpectedStaleHandle
+ case rustPanic(_ message: String)
+
+ public var errorDescription: String? {
+ switch self {
+ case .bufferOverflow: return "Reading the requested value would read past the end of the buffer"
+ case .incompleteData: return "The buffer still has data after lifting its containing value"
+ case .unexpectedOptionalTag: return "Unexpected optional tag; should be 0 or 1"
+ case .unexpectedEnumCase: return "Raw enum value doesn't match any cases"
+ case .unexpectedNullPointer: return "Raw pointer value was null"
+ case .unexpectedRustCallStatusCode: return "Unexpected RustCallStatus code"
+ case .unexpectedRustCallError: return "CALL_ERROR but no errorClass specified"
+ case .unexpectedStaleHandle: return "The object in the handle map has been dropped already"
+ case let .rustPanic(message): return message
+ }
+ }
+}
+
+fileprivate let CALL_SUCCESS: Int8 = 0
+fileprivate let CALL_ERROR: Int8 = 1
+fileprivate let CALL_PANIC: Int8 = 2
+fileprivate let CALL_CANCELLED: Int8 = 3
+
+fileprivate extension RustCallStatus {
+ init() {
+ self.init(
+ code: CALL_SUCCESS,
+ errorBuf: RustBuffer.init(
+ capacity: 0,
+ len: 0,
+ data: nil
+ )
+ )
+ }
+}
+
+private func rustCall(_ callback: (UnsafeMutablePointer) -> T) throws -> T {
+ try makeRustCall(callback, errorHandler: nil)
+}
+
+private func rustCallWithError(
+ _ errorHandler: @escaping (RustBuffer) throws -> Error,
+ _ callback: (UnsafeMutablePointer) -> T) throws -> T {
+ try makeRustCall(callback, errorHandler: errorHandler)
+}
+
+private func makeRustCall(
+ _ callback: (UnsafeMutablePointer) -> T,
+ errorHandler: ((RustBuffer) throws -> Error)?
+) throws -> T {
+ uniffiEnsureInitialized()
+ var callStatus = RustCallStatus.init()
+ let returnedVal = callback(&callStatus)
+ try uniffiCheckCallStatus(callStatus: callStatus, errorHandler: errorHandler)
+ return returnedVal
+}
+
+private func uniffiCheckCallStatus(
+ callStatus: RustCallStatus,
+ errorHandler: ((RustBuffer) throws -> Error)?
+) throws {
+ switch callStatus.code {
+ case CALL_SUCCESS:
+ return
+
+ case CALL_ERROR:
+ if let errorHandler = errorHandler {
+ throw try errorHandler(callStatus.errorBuf)
+ } else {
+ callStatus.errorBuf.deallocate()
+ throw UniffiInternalError.unexpectedRustCallError
+ }
+
+ case CALL_PANIC:
+ // When the rust code sees a panic, it tries to construct a RustBuffer
+ // with the message. But if that code panics, then it just sends back
+ // an empty buffer.
+ if callStatus.errorBuf.len > 0 {
+ throw UniffiInternalError.rustPanic(try FfiConverterString.lift(callStatus.errorBuf))
+ } else {
+ callStatus.errorBuf.deallocate()
+ throw UniffiInternalError.rustPanic("Rust panic")
+ }
+
+ case CALL_CANCELLED:
+ throw CancellationError()
+
+ default:
+ throw UniffiInternalError.unexpectedRustCallStatusCode
+ }
+}
+
+// Public interface members begin here.
+
+
+fileprivate struct FfiConverterUInt32: FfiConverterPrimitive {
+ typealias FfiType = UInt32
+ typealias SwiftType = UInt32
+
+ public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> UInt32 {
+ return try lift(readInt(&buf))
+ }
+
+ public static func write(_ value: SwiftType, into buf: inout [UInt8]) {
+ writeInt(&buf, lower(value))
+ }
+}
+
+fileprivate struct FfiConverterBool : FfiConverter {
+ typealias FfiType = Int8
+ typealias SwiftType = Bool
+
+ public static func lift(_ value: Int8) throws -> Bool {
+ return value != 0
+ }
+
+ public static func lower(_ value: Bool) -> Int8 {
+ return value ? 1 : 0
+ }
+
+ public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> Bool {
+ return try lift(readInt(&buf))
+ }
+
+ public static func write(_ value: Bool, into buf: inout [UInt8]) {
+ writeInt(&buf, lower(value))
+ }
+}
+
+fileprivate struct FfiConverterString: FfiConverter {
+ typealias SwiftType = String
+ typealias FfiType = RustBuffer
+
+ public static func lift(_ value: RustBuffer) throws -> String {
+ defer {
+ value.deallocate()
+ }
+ if value.data == nil {
+ return String()
+ }
+ let bytes = UnsafeBufferPointer(start: value.data!, count: Int(value.len))
+ return String(bytes: bytes, encoding: String.Encoding.utf8)!
+ }
+
+ public static func lower(_ value: String) -> RustBuffer {
+ return value.utf8CString.withUnsafeBufferPointer { ptr in
+ // The swift string gives us int8_t, we want uint8_t.
+ ptr.withMemoryRebound(to: UInt8.self) { ptr in
+ // The swift string gives us a trailing null byte, we don't want it.
+ let buf = UnsafeBufferPointer(rebasing: ptr.prefix(upTo: ptr.count - 1))
+ return RustBuffer.from(buf)
+ }
+ }
+ }
+
+ public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> String {
+ let len: Int32 = try readInt(&buf)
+ return String(bytes: try readBytes(&buf, count: Int(len)), encoding: String.Encoding.utf8)!
+ }
+
+ public static func write(_ value: String, into buf: inout [UInt8]) {
+ let len = Int32(value.utf8.count)
+ writeInt(&buf, len)
+ writeBytes(&buf, value.utf8)
+ }
+}
+
+fileprivate struct FfiConverterData: FfiConverterRustBuffer {
+ typealias SwiftType = Data
+
+ public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> Data {
+ let len: Int32 = try readInt(&buf)
+ return Data(try readBytes(&buf, count: Int(len)))
+ }
+
+ public static func write(_ value: Data, into buf: inout [UInt8]) {
+ let len = Int32(value.count)
+ writeInt(&buf, len)
+ writeBytes(&buf, value)
+ }
+}
+
+
+public protocol MoproCircomProtocol {
+ func generateProof(circuitInputs: [String: [String]]) throws -> GenerateProofResult
+ func setup(wasmPath: String, r1csPath: String) throws -> SetupResult
+ func verifyProof(proof: Data, publicInput: Data) throws -> Bool
+
+}
+
+public class MoproCircom: MoproCircomProtocol {
+ fileprivate let pointer: UnsafeMutableRawPointer
+
+ // TODO: We'd like this to be `private` but for Swifty reasons,
+ // we can't implement `FfiConverter` without making this `required` and we can't
+ // make it `required` without making it `public`.
+ required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) {
+ self.pointer = pointer
+ }
+ public convenience init() {
+ self.init(unsafeFromRawPointer: try! rustCall() {
+ uniffi_mopro_ffi_fn_constructor_moprocircom_new($0)
+})
+ }
+
+ deinit {
+ try! rustCall { uniffi_mopro_ffi_fn_free_moprocircom(pointer, $0) }
+ }
+
+
+
+
+
+
+ public func generateProof(circuitInputs: [String: [String]]) throws -> GenerateProofResult {
+ return try FfiConverterTypeGenerateProofResult.lift(
+ try
+ rustCallWithError(FfiConverterTypeMoproError.lift) {
+ uniffi_mopro_ffi_fn_method_moprocircom_generate_proof(self.pointer,
+ FfiConverterDictionaryStringSequenceString.lower(circuitInputs),$0
+ )
+}
+ )
+ }
+
+ public func setup(wasmPath: String, r1csPath: String) throws -> SetupResult {
+ return try FfiConverterTypeSetupResult.lift(
+ try
+ rustCallWithError(FfiConverterTypeMoproError.lift) {
+ uniffi_mopro_ffi_fn_method_moprocircom_setup(self.pointer,
+ FfiConverterString.lower(wasmPath),
+ FfiConverterString.lower(r1csPath),$0
+ )
+}
+ )
+ }
+
+ public func verifyProof(proof: Data, publicInput: Data) throws -> Bool {
+ return try FfiConverterBool.lift(
+ try
+ rustCallWithError(FfiConverterTypeMoproError.lift) {
+ uniffi_mopro_ffi_fn_method_moprocircom_verify_proof(self.pointer,
+ FfiConverterData.lower(proof),
+ FfiConverterData.lower(publicInput),$0
+ )
+}
+ )
+ }
+}
+
+public struct FfiConverterTypeMoproCircom: FfiConverter {
+ typealias FfiType = UnsafeMutableRawPointer
+ typealias SwiftType = MoproCircom
+
+ public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> MoproCircom {
+ let v: UInt64 = try readInt(&buf)
+ // The Rust code won't compile if a pointer won't fit in a UInt64.
+ // We have to go via `UInt` because that's the thing that's the size of a pointer.
+ let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v))
+ if (ptr == nil) {
+ throw UniffiInternalError.unexpectedNullPointer
+ }
+ return try lift(ptr!)
+ }
+
+ public static func write(_ value: MoproCircom, into buf: inout [UInt8]) {
+ // This fiddling is because `Int` is the thing that's the same size as a pointer.
+ // The Rust code won't compile if a pointer won't fit in a `UInt64`.
+ writeInt(&buf, UInt64(bitPattern: Int64(Int(bitPattern: lower(value)))))
+ }
+
+ public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> MoproCircom {
+ return MoproCircom(unsafeFromRawPointer: pointer)
+ }
+
+ public static func lower(_ value: MoproCircom) -> UnsafeMutableRawPointer {
+ return value.pointer
+ }
+}
+
+
+public func FfiConverterTypeMoproCircom_lift(_ pointer: UnsafeMutableRawPointer) throws -> MoproCircom {
+ return try FfiConverterTypeMoproCircom.lift(pointer)
+}
+
+public func FfiConverterTypeMoproCircom_lower(_ value: MoproCircom) -> UnsafeMutableRawPointer {
+ return FfiConverterTypeMoproCircom.lower(value)
+}
+
+
+public struct GenerateProofResult {
+ public var proof: Data
+ public var inputs: Data
+
+ // Default memberwise initializers are never public by default, so we
+ // declare one manually.
+ public init(proof: Data, inputs: Data) {
+ self.proof = proof
+ self.inputs = inputs
+ }
+}
+
+
+extension GenerateProofResult: Equatable, Hashable {
+ public static func ==(lhs: GenerateProofResult, rhs: GenerateProofResult) -> Bool {
+ if lhs.proof != rhs.proof {
+ return false
+ }
+ if lhs.inputs != rhs.inputs {
+ return false
+ }
+ return true
+ }
+
+ public func hash(into hasher: inout Hasher) {
+ hasher.combine(proof)
+ hasher.combine(inputs)
+ }
+}
+
+
+public struct FfiConverterTypeGenerateProofResult: FfiConverterRustBuffer {
+ public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> GenerateProofResult {
+ return try GenerateProofResult(
+ proof: FfiConverterData.read(from: &buf),
+ inputs: FfiConverterData.read(from: &buf)
+ )
+ }
+
+ public static func write(_ value: GenerateProofResult, into buf: inout [UInt8]) {
+ FfiConverterData.write(value.proof, into: &buf)
+ FfiConverterData.write(value.inputs, into: &buf)
+ }
+}
+
+
+public func FfiConverterTypeGenerateProofResult_lift(_ buf: RustBuffer) throws -> GenerateProofResult {
+ return try FfiConverterTypeGenerateProofResult.lift(buf)
+}
+
+public func FfiConverterTypeGenerateProofResult_lower(_ value: GenerateProofResult) -> RustBuffer {
+ return FfiConverterTypeGenerateProofResult.lower(value)
+}
+
+
+public struct SetupResult {
+ public var provingKey: Data
+
+ // Default memberwise initializers are never public by default, so we
+ // declare one manually.
+ public init(provingKey: Data) {
+ self.provingKey = provingKey
+ }
+}
+
+
+extension SetupResult: Equatable, Hashable {
+ public static func ==(lhs: SetupResult, rhs: SetupResult) -> Bool {
+ if lhs.provingKey != rhs.provingKey {
+ return false
+ }
+ return true
+ }
+
+ public func hash(into hasher: inout Hasher) {
+ hasher.combine(provingKey)
+ }
+}
+
+
+public struct FfiConverterTypeSetupResult: FfiConverterRustBuffer {
+ public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> SetupResult {
+ return try SetupResult(
+ provingKey: FfiConverterData.read(from: &buf)
+ )
+ }
+
+ public static func write(_ value: SetupResult, into buf: inout [UInt8]) {
+ FfiConverterData.write(value.provingKey, into: &buf)
+ }
+}
+
+
+public func FfiConverterTypeSetupResult_lift(_ buf: RustBuffer) throws -> SetupResult {
+ return try FfiConverterTypeSetupResult.lift(buf)
+}
+
+public func FfiConverterTypeSetupResult_lower(_ value: SetupResult) -> RustBuffer {
+ return FfiConverterTypeSetupResult.lower(value)
+}
+
+public enum MoproError {
+
+
+
+ // Simple error enums only carry a message
+ case CircomError(message: String)
+
+
+ fileprivate static func uniffiErrorHandler(_ error: RustBuffer) throws -> Error {
+ return try FfiConverterTypeMoproError.lift(error)
+ }
+}
+
+
+public struct FfiConverterTypeMoproError: FfiConverterRustBuffer {
+ typealias SwiftType = MoproError
+
+ public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> MoproError {
+ let variant: Int32 = try readInt(&buf)
+ switch variant {
+
+
+
+
+ case 1: return .CircomError(
+ message: try FfiConverterString.read(from: &buf)
+ )
+
+
+ default: throw UniffiInternalError.unexpectedEnumCase
+ }
+ }
+
+ public static func write(_ value: MoproError, into buf: inout [UInt8]) {
+ switch value {
+
+
+
+
+ case .CircomError(_ /* message is ignored*/):
+ writeInt(&buf, Int32(1))
+
+
+ }
+ }
+}
+
+
+extension MoproError: Equatable, Hashable {}
+
+extension MoproError: Error { }
+
+fileprivate struct FfiConverterSequenceString: FfiConverterRustBuffer {
+ typealias SwiftType = [String]
+
+ public static func write(_ value: [String], into buf: inout [UInt8]) {
+ let len = Int32(value.count)
+ writeInt(&buf, len)
+ for item in value {
+ FfiConverterString.write(item, into: &buf)
+ }
+ }
+
+ public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> [String] {
+ let len: Int32 = try readInt(&buf)
+ var seq = [String]()
+ seq.reserveCapacity(Int(len))
+ for _ in 0 ..< len {
+ seq.append(try FfiConverterString.read(from: &buf))
+ }
+ return seq
+ }
+}
+
+fileprivate struct FfiConverterDictionaryStringSequenceString: FfiConverterRustBuffer {
+ public static func write(_ value: [String: [String]], into buf: inout [UInt8]) {
+ let len = Int32(value.count)
+ writeInt(&buf, len)
+ for (key, value) in value {
+ FfiConverterString.write(key, into: &buf)
+ FfiConverterSequenceString.write(value, into: &buf)
+ }
+ }
+
+ public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> [String: [String]] {
+ let len: Int32 = try readInt(&buf)
+ var dict = [String: [String]]()
+ dict.reserveCapacity(Int(len))
+ for _ in 0.. UInt32 {
+ return try! FfiConverterUInt32.lift(
+ try! rustCall() {
+ uniffi_mopro_ffi_fn_func_add(
+ FfiConverterUInt32.lower(a),
+ FfiConverterUInt32.lower(b),$0)
+}
+ )
+}
+
+public func generateProof2(circuitInputs: [String: [String]]) throws -> GenerateProofResult {
+ return try FfiConverterTypeGenerateProofResult.lift(
+ try rustCallWithError(FfiConverterTypeMoproError.lift) {
+ uniffi_mopro_ffi_fn_func_generate_proof2(
+ FfiConverterDictionaryStringSequenceString.lower(circuitInputs),$0)
+}
+ )
+}
+
+public func hello() -> String {
+ return try! FfiConverterString.lift(
+ try! rustCall() {
+ uniffi_mopro_ffi_fn_func_hello($0)
+}
+ )
+}
+
+public func initializeMopro() throws {
+ try rustCallWithError(FfiConverterTypeMoproError.lift) {
+ uniffi_mopro_ffi_fn_func_initialize_mopro($0)
+}
+}
+
+
+
+public func initializeMoproDylib(dylibPath: String) throws {
+ try rustCallWithError(FfiConverterTypeMoproError.lift) {
+ uniffi_mopro_ffi_fn_func_initialize_mopro_dylib(
+ FfiConverterString.lower(dylibPath),$0)
+}
+}
+
+
+
+public func verifyProof2(proof: Data, publicInput: Data) throws -> Bool {
+ return try FfiConverterBool.lift(
+ try rustCallWithError(FfiConverterTypeMoproError.lift) {
+ uniffi_mopro_ffi_fn_func_verify_proof2(
+ FfiConverterData.lower(proof),
+ FfiConverterData.lower(publicInput),$0)
+}
+ )
+}
+
+private enum InitializationResult {
+ case ok
+ case contractVersionMismatch
+ case apiChecksumMismatch
+}
+// Use a global variables to perform the versioning checks. Swift ensures that
+// the code inside is only computed once.
+private var initializationResult: InitializationResult {
+ // Get the bindings contract version from our ComponentInterface
+ let bindings_contract_version = 24
+ // Get the scaffolding contract version by calling the into the dylib
+ let scaffolding_contract_version = ffi_mopro_ffi_uniffi_contract_version()
+ if bindings_contract_version != scaffolding_contract_version {
+ return InitializationResult.contractVersionMismatch
+ }
+ if (uniffi_mopro_ffi_checksum_func_add() != 8411) {
+ return InitializationResult.apiChecksumMismatch
+ }
+ if (uniffi_mopro_ffi_checksum_func_generate_proof2() != 40187) {
+ return InitializationResult.apiChecksumMismatch
+ }
+ if (uniffi_mopro_ffi_checksum_func_hello() != 46136) {
+ return InitializationResult.apiChecksumMismatch
+ }
+ if (uniffi_mopro_ffi_checksum_func_initialize_mopro() != 17540) {
+ return InitializationResult.apiChecksumMismatch
+ }
+ if (uniffi_mopro_ffi_checksum_func_initialize_mopro_dylib() != 64476) {
+ return InitializationResult.apiChecksumMismatch
+ }
+ if (uniffi_mopro_ffi_checksum_func_verify_proof2() != 37192) {
+ return InitializationResult.apiChecksumMismatch
+ }
+ if (uniffi_mopro_ffi_checksum_method_moprocircom_generate_proof() != 64602) {
+ return InitializationResult.apiChecksumMismatch
+ }
+ if (uniffi_mopro_ffi_checksum_method_moprocircom_setup() != 57700) {
+ return InitializationResult.apiChecksumMismatch
+ }
+ if (uniffi_mopro_ffi_checksum_method_moprocircom_verify_proof() != 61522) {
+ return InitializationResult.apiChecksumMismatch
+ }
+ if (uniffi_mopro_ffi_checksum_constructor_moprocircom_new() != 42205) {
+ return InitializationResult.apiChecksumMismatch
+ }
+
+ return InitializationResult.ok
+}
+
+private func uniffiEnsureInitialized() {
+ switch initializationResult {
+ case .ok:
+ break
+ case .contractVersionMismatch:
+ fatalError("UniFFI contract version mismatch: try cleaning and rebuilding your project")
+ case .apiChecksumMismatch:
+ fatalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
+ }
+}
\ No newline at end of file
diff --git a/app/ios/MoproKit/Example/MoproKit.xcodeproj/project.pbxproj b/app/ios/MoproKit/Example/MoproKit.xcodeproj/project.pbxproj
new file mode 100644
index 000000000..5c436abc2
--- /dev/null
+++ b/app/ios/MoproKit/Example/MoproKit.xcodeproj/project.pbxproj
@@ -0,0 +1,670 @@
+// !$*UTF8*$!
+{
+ archiveVersion = 1;
+ classes = {
+ };
+ objectVersion = 46;
+ objects = {
+
+/* Begin PBXBuildFile section */
+ 2A418AB02AF4B1200004B747 /* CircomUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2A418AAF2AF4B1200004B747 /* CircomUITests.swift */; };
+ 2A6E5BAF2AF499460052A601 /* CircomTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2A6E5BAE2AF499460052A601 /* CircomTests.swift */; };
+ 4384FD09A96F702A375841EE /* Pods_MoproKit_Tests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 78B0F9CBE5DD22576996A993 /* Pods_MoproKit_Tests.framework */; };
+ 607FACD61AFB9204008FA782 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 607FACD51AFB9204008FA782 /* AppDelegate.swift */; };
+ 607FACD81AFB9204008FA782 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 607FACD71AFB9204008FA782 /* ViewController.swift */; };
+ 607FACDB1AFB9204008FA782 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 607FACD91AFB9204008FA782 /* Main.storyboard */; };
+ 607FACDD1AFB9204008FA782 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 607FACDC1AFB9204008FA782 /* Images.xcassets */; };
+ 607FACE01AFB9204008FA782 /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = 607FACDE1AFB9204008FA782 /* LaunchScreen.xib */; };
+ 7A38AEC233A3880A843B0133 /* Pods_MoproKit_Example.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8BE5A40EAC7D019B9C7566CA /* Pods_MoproKit_Example.framework */; };
+ CE2C1B8C2AFFCC5E002AF8BC /* main.wasm in Resources */ = {isa = PBXBuildFile; fileRef = CE2C1B8B2AFFCC5E002AF8BC /* main.wasm */; };
+ CE2C1B8D2AFFCC5E002AF8BC /* main.wasm in Resources */ = {isa = PBXBuildFile; fileRef = CE2C1B8B2AFFCC5E002AF8BC /* main.wasm */; };
+ CE5A5C062AD43A790074539D /* keccak256_256_test.wasm in Resources */ = {isa = PBXBuildFile; fileRef = CE5A5C052AD43A790074539D /* keccak256_256_test.wasm */; };
+ CE5A5C072AD43A790074539D /* keccak256_256_test.wasm in Resources */ = {isa = PBXBuildFile; fileRef = CE5A5C052AD43A790074539D /* keccak256_256_test.wasm */; };
+ CE5A5C092AD43A860074539D /* keccak256_256_test.r1cs in Resources */ = {isa = PBXBuildFile; fileRef = CE5A5C082AD43A860074539D /* keccak256_256_test.r1cs */; };
+ CE5A5C0A2AD43A860074539D /* keccak256_256_test.r1cs in Resources */ = {isa = PBXBuildFile; fileRef = CE5A5C082AD43A860074539D /* keccak256_256_test.r1cs */; };
+ CEA2D12F2AB96A7A00F292D2 /* multiplier2.wasm in Resources */ = {isa = PBXBuildFile; fileRef = CEA2D12E2AB96A7A00F292D2 /* multiplier2.wasm */; };
+ CEA2D1302AB96A7A00F292D2 /* multiplier2.wasm in Resources */ = {isa = PBXBuildFile; fileRef = CEA2D12E2AB96A7A00F292D2 /* multiplier2.wasm */; };
+ CEA2D1322AB96AB500F292D2 /* multiplier2.r1cs in Resources */ = {isa = PBXBuildFile; fileRef = CEA2D1312AB96AB500F292D2 /* multiplier2.r1cs */; };
+ CEA2D1332AB96AB500F292D2 /* multiplier2.r1cs in Resources */ = {isa = PBXBuildFile; fileRef = CEA2D1312AB96AB500F292D2 /* multiplier2.r1cs */; };
+ CEB804502AFF81960063F091 /* KeccakSetupViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = CEB8044F2AFF81960063F091 /* KeccakSetupViewController.swift */; };
+ CEB804562AFF81AF0063F091 /* KeccakZkeyViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = CEB804552AFF81AF0063F091 /* KeccakZkeyViewController.swift */; };
+ CEB804582AFF81BF0063F091 /* RSAViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = CEB804572AFF81BF0063F091 /* RSAViewController.swift */; };
+ E69338642AFFDB1A00B80312 /* AnonAadhaarViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = E69338632AFFDB1A00B80312 /* AnonAadhaarViewController.swift */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXContainerItemProxy section */
+ 607FACE61AFB9204008FA782 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = 607FACC81AFB9204008FA782 /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = 607FACCF1AFB9204008FA782;
+ remoteInfo = MoproKit;
+ };
+/* End PBXContainerItemProxy section */
+
+/* Begin PBXFileReference section */
+ 1E5E014D70B48C9A59F14658 /* Pods-MoproKit_Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MoproKit_Example.release.xcconfig"; path = "Target Support Files/Pods-MoproKit_Example/Pods-MoproKit_Example.release.xcconfig"; sourceTree = ""; };
+ 2A418AAF2AF4B1200004B747 /* CircomUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CircomUITests.swift; sourceTree = ""; };
+ 2A6E5BAE2AF499460052A601 /* CircomTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CircomTests.swift; sourceTree = ""; };
+ 47F8ADB0AC4168C6E874818D /* MoproKit.podspec */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; name = MoproKit.podspec; path = ../MoproKit.podspec; sourceTree = ""; };
+ 5DAF212A114DFA0C9F4282B2 /* Pods-MoproKit_Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MoproKit_Tests.debug.xcconfig"; path = "Target Support Files/Pods-MoproKit_Tests/Pods-MoproKit_Tests.debug.xcconfig"; sourceTree = ""; };
+ 607FACD01AFB9204008FA782 /* MoproKit_Example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = MoproKit_Example.app; sourceTree = BUILT_PRODUCTS_DIR; };
+ 607FACD41AFB9204008FA782 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
+ 607FACD51AFB9204008FA782 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; };
+ 607FACD71AFB9204008FA782 /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; };
+ 607FACDA1AFB9204008FA782 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; };
+ 607FACDC1AFB9204008FA782 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = ""; };
+ 607FACDF1AFB9204008FA782 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/LaunchScreen.xib; sourceTree = ""; };
+ 607FACE51AFB9204008FA782 /* MoproKit_Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = MoproKit_Tests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
+ 607FACEA1AFB9204008FA782 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
+ 78B0F9CBE5DD22576996A993 /* Pods_MoproKit_Tests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_MoproKit_Tests.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ 8BE5A40EAC7D019B9C7566CA /* Pods_MoproKit_Example.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_MoproKit_Example.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ 90EAF1BEF8AD3C193665DBED /* Pods-MoproKit_Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MoproKit_Tests.release.xcconfig"; path = "Target Support Files/Pods-MoproKit_Tests/Pods-MoproKit_Tests.release.xcconfig"; sourceTree = ""; };
+ 92580ABC3B6DBAD1A9544456 /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; name = LICENSE; path = ../LICENSE; sourceTree = ""; };
+ B4016A34BBB20BC381CCFC2D /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = net.daringfireball.markdown; name = README.md; path = ../README.md; sourceTree = ""; };
+ C61628A63419B5C140B24AF7 /* Pods-MoproKit_Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MoproKit_Example.debug.xcconfig"; path = "Target Support Files/Pods-MoproKit_Example/Pods-MoproKit_Example.debug.xcconfig"; sourceTree = ""; };
+ CE2C1B8B2AFFCC5E002AF8BC /* main.wasm */ = {isa = PBXFileReference; lastKnownFileType = file; name = main.wasm; path = "../../../../../mopro-core/examples/circom/rsa/target/main_js/main.wasm"; sourceTree = ""; };
+ CE5A5C052AD43A790074539D /* keccak256_256_test.wasm */ = {isa = PBXFileReference; lastKnownFileType = file; name = keccak256_256_test.wasm; path = "../../../../../mopro-core/examples/circom/keccak256/target/keccak256_256_test_js/keccak256_256_test.wasm"; sourceTree = ""; };
+ CE5A5C082AD43A860074539D /* keccak256_256_test.r1cs */ = {isa = PBXFileReference; lastKnownFileType = file; name = keccak256_256_test.r1cs; path = "../../../../../mopro-core/examples/circom/keccak256/target/keccak256_256_test.r1cs"; sourceTree = ""; };
+ CEA2D12E2AB96A7A00F292D2 /* multiplier2.wasm */ = {isa = PBXFileReference; lastKnownFileType = file; name = multiplier2.wasm; path = "../../../../../mopro-core/examples/circom/multiplier2/target/multiplier2_js/multiplier2.wasm"; sourceTree = ""; };
+ CEA2D1312AB96AB500F292D2 /* multiplier2.r1cs */ = {isa = PBXFileReference; lastKnownFileType = file; name = multiplier2.r1cs; path = "../../../../../mopro-core/examples/circom/multiplier2/target/multiplier2.r1cs"; sourceTree = ""; };
+ CEB8044F2AFF81960063F091 /* KeccakSetupViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = KeccakSetupViewController.swift; sourceTree = ""; };
+ CEB804552AFF81AF0063F091 /* KeccakZkeyViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = KeccakZkeyViewController.swift; sourceTree = ""; };
+ CEB804572AFF81BF0063F091 /* RSAViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RSAViewController.swift; sourceTree = ""; };
+ E69338632AFFDB1A00B80312 /* AnonAadhaarViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AnonAadhaarViewController.swift; sourceTree = ""; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+ 607FACCD1AFB9204008FA782 /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 7A38AEC233A3880A843B0133 /* Pods_MoproKit_Example.framework in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ 607FACE21AFB9204008FA782 /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 4384FD09A96F702A375841EE /* Pods_MoproKit_Tests.framework in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+ 164B820D208F5EFE221D6A86 /* Frameworks */ = {
+ isa = PBXGroup;
+ children = (
+ 8BE5A40EAC7D019B9C7566CA /* Pods_MoproKit_Example.framework */,
+ 78B0F9CBE5DD22576996A993 /* Pods_MoproKit_Tests.framework */,
+ );
+ name = Frameworks;
+ sourceTree = "";
+ };
+ 607FACC71AFB9204008FA782 = {
+ isa = PBXGroup;
+ children = (
+ 607FACF51AFB993E008FA782 /* Podspec Metadata */,
+ 607FACD21AFB9204008FA782 /* Example for MoproKit */,
+ 607FACE81AFB9204008FA782 /* Tests */,
+ 607FACD11AFB9204008FA782 /* Products */,
+ EEB809FA0FFBEC7559BC7169 /* Pods */,
+ 164B820D208F5EFE221D6A86 /* Frameworks */,
+ );
+ sourceTree = "";
+ };
+ 607FACD11AFB9204008FA782 /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ 607FACD01AFB9204008FA782 /* MoproKit_Example.app */,
+ 607FACE51AFB9204008FA782 /* MoproKit_Tests.xctest */,
+ );
+ name = Products;
+ sourceTree = "";
+ };
+ 607FACD21AFB9204008FA782 /* Example for MoproKit */ = {
+ isa = PBXGroup;
+ children = (
+ CEB804572AFF81BF0063F091 /* RSAViewController.swift */,
+ E69338632AFFDB1A00B80312 /* AnonAadhaarViewController.swift */,
+ CEB804552AFF81AF0063F091 /* KeccakZkeyViewController.swift */,
+ CEB8044F2AFF81960063F091 /* KeccakSetupViewController.swift */,
+ CEA2D1282AB9681E00F292D2 /* Resources */,
+ 607FACD51AFB9204008FA782 /* AppDelegate.swift */,
+ 607FACD71AFB9204008FA782 /* ViewController.swift */,
+ 607FACD91AFB9204008FA782 /* Main.storyboard */,
+ 607FACDC1AFB9204008FA782 /* Images.xcassets */,
+ 607FACDE1AFB9204008FA782 /* LaunchScreen.xib */,
+ 607FACD31AFB9204008FA782 /* Supporting Files */,
+ );
+ name = "Example for MoproKit";
+ path = MoproKit;
+ sourceTree = "";
+ };
+ 607FACD31AFB9204008FA782 /* Supporting Files */ = {
+ isa = PBXGroup;
+ children = (
+ 607FACD41AFB9204008FA782 /* Info.plist */,
+ );
+ name = "Supporting Files";
+ sourceTree = "";
+ };
+ 607FACE81AFB9204008FA782 /* Tests */ = {
+ isa = PBXGroup;
+ children = (
+ 2A418AAF2AF4B1200004B747 /* CircomUITests.swift */,
+ 607FACE91AFB9204008FA782 /* Supporting Files */,
+ 2A6E5BAE2AF499460052A601 /* CircomTests.swift */,
+ );
+ path = Tests;
+ sourceTree = "";
+ };
+ 607FACE91AFB9204008FA782 /* Supporting Files */ = {
+ isa = PBXGroup;
+ children = (
+ 607FACEA1AFB9204008FA782 /* Info.plist */,
+ );
+ name = "Supporting Files";
+ sourceTree = "";
+ };
+ 607FACF51AFB993E008FA782 /* Podspec Metadata */ = {
+ isa = PBXGroup;
+ children = (
+ 47F8ADB0AC4168C6E874818D /* MoproKit.podspec */,
+ B4016A34BBB20BC381CCFC2D /* README.md */,
+ 92580ABC3B6DBAD1A9544456 /* LICENSE */,
+ );
+ name = "Podspec Metadata";
+ sourceTree = "";
+ };
+ CEA2D1282AB9681E00F292D2 /* Resources */ = {
+ isa = PBXGroup;
+ children = (
+ CE2C1B8B2AFFCC5E002AF8BC /* main.wasm */,
+ CE5A5C082AD43A860074539D /* keccak256_256_test.r1cs */,
+ CE5A5C052AD43A790074539D /* keccak256_256_test.wasm */,
+ CEA2D12E2AB96A7A00F292D2 /* multiplier2.wasm */,
+ CEA2D1312AB96AB500F292D2 /* multiplier2.r1cs */,
+ );
+ path = Resources;
+ sourceTree = "";
+ };
+ EEB809FA0FFBEC7559BC7169 /* Pods */ = {
+ isa = PBXGroup;
+ children = (
+ C61628A63419B5C140B24AF7 /* Pods-MoproKit_Example.debug.xcconfig */,
+ 1E5E014D70B48C9A59F14658 /* Pods-MoproKit_Example.release.xcconfig */,
+ 5DAF212A114DFA0C9F4282B2 /* Pods-MoproKit_Tests.debug.xcconfig */,
+ 90EAF1BEF8AD3C193665DBED /* Pods-MoproKit_Tests.release.xcconfig */,
+ );
+ path = Pods;
+ sourceTree = "";
+ };
+/* End PBXGroup section */
+
+/* Begin PBXNativeTarget section */
+ 607FACCF1AFB9204008FA782 /* MoproKit_Example */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = 607FACEF1AFB9204008FA782 /* Build configuration list for PBXNativeTarget "MoproKit_Example" */;
+ buildPhases = (
+ C880BC635097821F74482E9F /* [CP] Check Pods Manifest.lock */,
+ 607FACCC1AFB9204008FA782 /* Sources */,
+ 607FACCD1AFB9204008FA782 /* Frameworks */,
+ 607FACCE1AFB9204008FA782 /* Resources */,
+ AE90EE4FFCA95237FBC047A3 /* [CP] Embed Pods Frameworks */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = MoproKit_Example;
+ productName = MoproKit;
+ productReference = 607FACD01AFB9204008FA782 /* MoproKit_Example.app */;
+ productType = "com.apple.product-type.application";
+ };
+ 607FACE41AFB9204008FA782 /* MoproKit_Tests */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = 607FACF21AFB9204008FA782 /* Build configuration list for PBXNativeTarget "MoproKit_Tests" */;
+ buildPhases = (
+ 2A673A4155C4EBC1B609897B /* [CP] Check Pods Manifest.lock */,
+ 607FACE11AFB9204008FA782 /* Sources */,
+ 607FACE21AFB9204008FA782 /* Frameworks */,
+ 607FACE31AFB9204008FA782 /* Resources */,
+ 2B1BB55A83D0E5B7D03D5DA0 /* [CP] Embed Pods Frameworks */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ 607FACE71AFB9204008FA782 /* PBXTargetDependency */,
+ );
+ name = MoproKit_Tests;
+ productName = Tests;
+ productReference = 607FACE51AFB9204008FA782 /* MoproKit_Tests.xctest */;
+ productType = "com.apple.product-type.bundle.unit-test";
+ };
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+ 607FACC81AFB9204008FA782 /* Project object */ = {
+ isa = PBXProject;
+ attributes = {
+ LastSwiftUpdateCheck = 0830;
+ LastUpgradeCheck = 0830;
+ ORGANIZATIONNAME = CocoaPods;
+ TargetAttributes = {
+ 607FACCF1AFB9204008FA782 = {
+ CreatedOnToolsVersion = 6.3.1;
+ DevelopmentTeam = 5B29R5LYHQ;
+ LastSwiftMigration = 0900;
+ };
+ 607FACE41AFB9204008FA782 = {
+ CreatedOnToolsVersion = 6.3.1;
+ DevelopmentTeam = 5B29R5LYHQ;
+ LastSwiftMigration = 0900;
+ TestTargetID = 607FACCF1AFB9204008FA782;
+ };
+ };
+ };
+ buildConfigurationList = 607FACCB1AFB9204008FA782 /* Build configuration list for PBXProject "MoproKit" */;
+ compatibilityVersion = "Xcode 3.2";
+ developmentRegion = English;
+ hasScannedForEncodings = 0;
+ knownRegions = (
+ English,
+ en,
+ Base,
+ );
+ mainGroup = 607FACC71AFB9204008FA782;
+ productRefGroup = 607FACD11AFB9204008FA782 /* Products */;
+ projectDirPath = "";
+ projectRoot = "";
+ targets = (
+ 607FACCF1AFB9204008FA782 /* MoproKit_Example */,
+ 607FACE41AFB9204008FA782 /* MoproKit_Tests */,
+ );
+ };
+/* End PBXProject section */
+
+/* Begin PBXResourcesBuildPhase section */
+ 607FACCE1AFB9204008FA782 /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ CEA2D1322AB96AB500F292D2 /* multiplier2.r1cs in Resources */,
+ 607FACDB1AFB9204008FA782 /* Main.storyboard in Resources */,
+ 607FACE01AFB9204008FA782 /* LaunchScreen.xib in Resources */,
+ CE5A5C062AD43A790074539D /* keccak256_256_test.wasm in Resources */,
+ CE2C1B8C2AFFCC5E002AF8BC /* main.wasm in Resources */,
+ 607FACDD1AFB9204008FA782 /* Images.xcassets in Resources */,
+ CEA2D12F2AB96A7A00F292D2 /* multiplier2.wasm in Resources */,
+ CE5A5C092AD43A860074539D /* keccak256_256_test.r1cs in Resources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ 607FACE31AFB9204008FA782 /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ CE5A5C0A2AD43A860074539D /* keccak256_256_test.r1cs in Resources */,
+ CE5A5C072AD43A790074539D /* keccak256_256_test.wasm in Resources */,
+ CE2C1B8D2AFFCC5E002AF8BC /* main.wasm in Resources */,
+ CEA2D1332AB96AB500F292D2 /* multiplier2.r1cs in Resources */,
+ CEA2D1302AB96A7A00F292D2 /* multiplier2.wasm in Resources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXShellScriptBuildPhase section */
+ 2A673A4155C4EBC1B609897B /* [CP] Check Pods Manifest.lock */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputFileListPaths = (
+ );
+ inputPaths = (
+ "${PODS_PODFILE_DIR_PATH}/Podfile.lock",
+ "${PODS_ROOT}/Manifest.lock",
+ );
+ name = "[CP] Check Pods Manifest.lock";
+ outputFileListPaths = (
+ );
+ outputPaths = (
+ "$(DERIVED_FILE_DIR)/Pods-MoproKit_Tests-checkManifestLockResult.txt",
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
+ showEnvVarsInLog = 0;
+ };
+ 2B1BB55A83D0E5B7D03D5DA0 /* [CP] Embed Pods Frameworks */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputPaths = (
+ "${PODS_ROOT}/Target Support Files/Pods-MoproKit_Tests/Pods-MoproKit_Tests-frameworks.sh",
+ "${BUILT_PRODUCTS_DIR}/Nimble/Nimble.framework",
+ "${BUILT_PRODUCTS_DIR}/Quick/Quick.framework",
+ );
+ name = "[CP] Embed Pods Frameworks";
+ outputPaths = (
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Nimble.framework",
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Quick.framework",
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-MoproKit_Tests/Pods-MoproKit_Tests-frameworks.sh\"\n";
+ showEnvVarsInLog = 0;
+ };
+ AE90EE4FFCA95237FBC047A3 /* [CP] Embed Pods Frameworks */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputPaths = (
+ "${PODS_ROOT}/Target Support Files/Pods-MoproKit_Example/Pods-MoproKit_Example-frameworks.sh",
+ "${BUILT_PRODUCTS_DIR}/MoproKit/MoproKit.framework",
+ );
+ name = "[CP] Embed Pods Frameworks";
+ outputPaths = (
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MoproKit.framework",
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-MoproKit_Example/Pods-MoproKit_Example-frameworks.sh\"\n";
+ showEnvVarsInLog = 0;
+ };
+ C880BC635097821F74482E9F /* [CP] Check Pods Manifest.lock */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputFileListPaths = (
+ );
+ inputPaths = (
+ "${PODS_PODFILE_DIR_PATH}/Podfile.lock",
+ "${PODS_ROOT}/Manifest.lock",
+ );
+ name = "[CP] Check Pods Manifest.lock";
+ outputFileListPaths = (
+ );
+ outputPaths = (
+ "$(DERIVED_FILE_DIR)/Pods-MoproKit_Example-checkManifestLockResult.txt",
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
+ showEnvVarsInLog = 0;
+ };
+/* End PBXShellScriptBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+ 607FACCC1AFB9204008FA782 /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ CEB804582AFF81BF0063F091 /* RSAViewController.swift in Sources */,
+ CEB804562AFF81AF0063F091 /* KeccakZkeyViewController.swift in Sources */,
+ 607FACD81AFB9204008FA782 /* ViewController.swift in Sources */,
+ CEB804502AFF81960063F091 /* KeccakSetupViewController.swift in Sources */,
+ 607FACD61AFB9204008FA782 /* AppDelegate.swift in Sources */,
+ E69338642AFFDB1A00B80312 /* AnonAadhaarViewController.swift in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ 607FACE11AFB9204008FA782 /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 2A6E5BAF2AF499460052A601 /* CircomTests.swift in Sources */,
+ 2A418AB02AF4B1200004B747 /* CircomUITests.swift in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXSourcesBuildPhase section */
+
+/* Begin PBXTargetDependency section */
+ 607FACE71AFB9204008FA782 /* PBXTargetDependency */ = {
+ isa = PBXTargetDependency;
+ target = 607FACCF1AFB9204008FA782 /* MoproKit_Example */;
+ targetProxy = 607FACE61AFB9204008FA782 /* PBXContainerItemProxy */;
+ };
+/* End PBXTargetDependency section */
+
+/* Begin PBXVariantGroup section */
+ 607FACD91AFB9204008FA782 /* Main.storyboard */ = {
+ isa = PBXVariantGroup;
+ children = (
+ 607FACDA1AFB9204008FA782 /* Base */,
+ );
+ name = Main.storyboard;
+ sourceTree = "";
+ };
+ 607FACDE1AFB9204008FA782 /* LaunchScreen.xib */ = {
+ isa = PBXVariantGroup;
+ children = (
+ 607FACDF1AFB9204008FA782 /* Base */,
+ );
+ name = LaunchScreen.xib;
+ sourceTree = "";
+ };
+/* End PBXVariantGroup section */
+
+/* Begin XCBuildConfiguration section */
+ 607FACED1AFB9204008FA782 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
+ CLANG_CXX_LIBRARY = "libc++";
+ CLANG_ENABLE_MODULES = YES;
+ CLANG_ENABLE_OBJC_ARC = YES;
+ CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
+ CLANG_WARN_BOOL_CONVERSION = YES;
+ CLANG_WARN_COMMA = YES;
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
+ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+ CLANG_WARN_EMPTY_BODY = YES;
+ CLANG_WARN_ENUM_CONVERSION = YES;
+ CLANG_WARN_INFINITE_RECURSION = YES;
+ CLANG_WARN_INT_CONVERSION = YES;
+ CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+ CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
+ CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+ CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+ CLANG_WARN_STRICT_PROTOTYPES = YES;
+ CLANG_WARN_SUSPICIOUS_MOVE = YES;
+ CLANG_WARN_UNREACHABLE_CODE = YES;
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+ COPY_PHASE_STRIP = NO;
+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+ ENABLE_STRICT_OBJC_MSGSEND = YES;
+ ENABLE_TESTABILITY = YES;
+ GCC_C_LANGUAGE_STANDARD = gnu99;
+ GCC_DYNAMIC_NO_PIC = NO;
+ GCC_NO_COMMON_BLOCKS = YES;
+ GCC_OPTIMIZATION_LEVEL = 0;
+ GCC_PREPROCESSOR_DEFINITIONS = (
+ "DEBUG=1",
+ "$(inherited)",
+ );
+ GCC_SYMBOLS_PRIVATE_EXTERN = NO;
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+ GCC_WARN_UNDECLARED_SELECTOR = YES;
+ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
+ GCC_WARN_UNUSED_FUNCTION = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ IPHONEOS_DEPLOYMENT_TARGET = 14.0;
+ MTL_ENABLE_DEBUG_INFO = YES;
+ ONLY_ACTIVE_ARCH = YES;
+ SDKROOT = iphoneos;
+ SWIFT_OPTIMIZATION_LEVEL = "-Onone";
+ };
+ name = Debug;
+ };
+ 607FACEE1AFB9204008FA782 /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
+ CLANG_CXX_LIBRARY = "libc++";
+ CLANG_ENABLE_MODULES = YES;
+ CLANG_ENABLE_OBJC_ARC = YES;
+ CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
+ CLANG_WARN_BOOL_CONVERSION = YES;
+ CLANG_WARN_COMMA = YES;
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
+ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+ CLANG_WARN_EMPTY_BODY = YES;
+ CLANG_WARN_ENUM_CONVERSION = YES;
+ CLANG_WARN_INFINITE_RECURSION = YES;
+ CLANG_WARN_INT_CONVERSION = YES;
+ CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+ CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
+ CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+ CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+ CLANG_WARN_STRICT_PROTOTYPES = YES;
+ CLANG_WARN_SUSPICIOUS_MOVE = YES;
+ CLANG_WARN_UNREACHABLE_CODE = YES;
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+ COPY_PHASE_STRIP = NO;
+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+ ENABLE_NS_ASSERTIONS = NO;
+ ENABLE_STRICT_OBJC_MSGSEND = YES;
+ GCC_C_LANGUAGE_STANDARD = gnu99;
+ GCC_NO_COMMON_BLOCKS = YES;
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+ GCC_WARN_UNDECLARED_SELECTOR = YES;
+ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
+ GCC_WARN_UNUSED_FUNCTION = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ IPHONEOS_DEPLOYMENT_TARGET = 14.0;
+ MTL_ENABLE_DEBUG_INFO = NO;
+ SDKROOT = iphoneos;
+ SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
+ VALIDATE_PRODUCT = YES;
+ };
+ name = Release;
+ };
+ 607FACF01AFB9204008FA782 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ baseConfigurationReference = C61628A63419B5C140B24AF7 /* Pods-MoproKit_Example.debug.xcconfig */;
+ buildSettings = {
+ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
+ DEVELOPMENT_TEAM = 5B29R5LYHQ;
+ GCC_SYMBOLS_PRIVATE_EXTERN = NO;
+ INFOPLIST_FILE = MoproKit/Info.plist;
+ IPHONEOS_DEPLOYMENT_TARGET = 13.0;
+ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
+ MODULE_NAME = ExampleApp;
+ PRODUCT_BUNDLE_IDENTIFIER = org.mopro.examples;
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ SWIFT_SWIFT3_OBJC_INFERENCE = Default;
+ SWIFT_VERSION = 4.0;
+ };
+ name = Debug;
+ };
+ 607FACF11AFB9204008FA782 /* Release */ = {
+ isa = XCBuildConfiguration;
+ baseConfigurationReference = 1E5E014D70B48C9A59F14658 /* Pods-MoproKit_Example.release.xcconfig */;
+ buildSettings = {
+ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
+ DEVELOPMENT_TEAM = 5B29R5LYHQ;
+ GCC_SYMBOLS_PRIVATE_EXTERN = NO;
+ INFOPLIST_FILE = MoproKit/Info.plist;
+ IPHONEOS_DEPLOYMENT_TARGET = 13.0;
+ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
+ MODULE_NAME = ExampleApp;
+ PRODUCT_BUNDLE_IDENTIFIER = org.mopro.examples;
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ SWIFT_SWIFT3_OBJC_INFERENCE = Default;
+ SWIFT_VERSION = 4.0;
+ };
+ name = Release;
+ };
+ 607FACF31AFB9204008FA782 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ baseConfigurationReference = 5DAF212A114DFA0C9F4282B2 /* Pods-MoproKit_Tests.debug.xcconfig */;
+ buildSettings = {
+ BUNDLE_LOADER = "$(BUILT_PRODUCTS_DIR)/MoproKit_Example.app/MoproKit_Example";
+ DEVELOPMENT_TEAM = 5B29R5LYHQ;
+ FRAMEWORK_SEARCH_PATHS = (
+ "$(PLATFORM_DIR)/Developer/Library/Frameworks",
+ "$(inherited)",
+ );
+ GCC_PREPROCESSOR_DEFINITIONS = (
+ "DEBUG=1",
+ "$(inherited)",
+ );
+ INFOPLIST_FILE = Tests/Info.plist;
+ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
+ PRODUCT_BUNDLE_IDENTIFIER = org.mopro.examples.test;
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ SWIFT_SWIFT3_OBJC_INFERENCE = Default;
+ SWIFT_VERSION = 4.0;
+ TEST_HOST = "$(BUILT_PRODUCTS_DIR)/MoproKit_Example.app/MoproKit_Example";
+ };
+ name = Debug;
+ };
+ 607FACF41AFB9204008FA782 /* Release */ = {
+ isa = XCBuildConfiguration;
+ baseConfigurationReference = 90EAF1BEF8AD3C193665DBED /* Pods-MoproKit_Tests.release.xcconfig */;
+ buildSettings = {
+ BUNDLE_LOADER = "$(BUILT_PRODUCTS_DIR)/MoproKit_Example.app/MoproKit_Example";
+ DEVELOPMENT_TEAM = 5B29R5LYHQ;
+ FRAMEWORK_SEARCH_PATHS = (
+ "$(PLATFORM_DIR)/Developer/Library/Frameworks",
+ "$(inherited)",
+ );
+ INFOPLIST_FILE = Tests/Info.plist;
+ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
+ PRODUCT_BUNDLE_IDENTIFIER = org.mopro.examples.test;
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ SWIFT_SWIFT3_OBJC_INFERENCE = Default;
+ SWIFT_VERSION = 4.0;
+ TEST_HOST = "$(BUILT_PRODUCTS_DIR)/MoproKit_Example.app/MoproKit_Example";
+ };
+ name = Release;
+ };
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+ 607FACCB1AFB9204008FA782 /* Build configuration list for PBXProject "MoproKit" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 607FACED1AFB9204008FA782 /* Debug */,
+ 607FACEE1AFB9204008FA782 /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+ 607FACEF1AFB9204008FA782 /* Build configuration list for PBXNativeTarget "MoproKit_Example" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 607FACF01AFB9204008FA782 /* Debug */,
+ 607FACF11AFB9204008FA782 /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+ 607FACF21AFB9204008FA782 /* Build configuration list for PBXNativeTarget "MoproKit_Tests" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 607FACF31AFB9204008FA782 /* Debug */,
+ 607FACF41AFB9204008FA782 /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+/* End XCConfigurationList section */
+ };
+ rootObject = 607FACC81AFB9204008FA782 /* Project object */;
+}
diff --git a/app/ios/MoproKit/Example/MoproKit.xcodeproj/xcshareddata/xcschemes/MoproKit-Example.xcscheme b/app/ios/MoproKit/Example/MoproKit.xcodeproj/xcshareddata/xcschemes/MoproKit-Example.xcscheme
new file mode 100644
index 000000000..6db6dc2f9
--- /dev/null
+++ b/app/ios/MoproKit/Example/MoproKit.xcodeproj/xcshareddata/xcschemes/MoproKit-Example.xcscheme
@@ -0,0 +1,129 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/ios/MoproKit/Example/MoproKit/AnonAadhaarViewController.swift b/app/ios/MoproKit/Example/MoproKit/AnonAadhaarViewController.swift
new file mode 100644
index 000000000..636041410
--- /dev/null
+++ b/app/ios/MoproKit/Example/MoproKit/AnonAadhaarViewController.swift
@@ -0,0 +1,192 @@
+//
+// AnonAadhaarViewController.swift
+// MoproKit_Example
+//
+// Created by Yanis Meziane on 11/11/2023.
+// Copyright Β© 2023 CocoaPods. All rights reserved.
+//
+
+import UIKit
+import WebKit
+import MoproKit
+
+class AnonAadhaarViewController: UIViewController, WKScriptMessageHandler, WKNavigationDelegate {
+ let webView = WKWebView()
+ let moproCircom = MoproKit.MoproCircom()
+ //var setupResult: SetupResult?
+ var generatedProof: Data?
+ var publicInputs: Data?
+ let containerView = UIView()
+ var textView = UITextView()
+
+ override func viewDidLoad() {
+ super.viewDidLoad()
+ runInitAction()
+ setupUI()
+
+ let contentController = WKUserContentController()
+ contentController.add(self, name: "startProvingHandler")
+ contentController.add(self, name: "messageHandler")
+
+ let configuration = WKWebViewConfiguration()
+ configuration.userContentController = contentController
+ configuration.preferences.javaScriptEnabled = true
+
+ // Assign the configuration to the WKWebView
+ let webView = WKWebView(frame: view.bounds, configuration: configuration)
+ webView.navigationDelegate = self
+
+ view.addSubview(webView)
+ view.addSubview(textView)
+
+ guard let url = URL(string: "https://webview-anon-adhaar.vercel.app/") else { return }
+ webView.load(URLRequest(url: url))
+ }
+
+ func setupUI() {
+ textView.isEditable = false
+
+ textView.translatesAutoresizingMaskIntoConstraints = false
+ view.addSubview(textView)
+
+ // Make text view visible
+ textView.heightAnchor.constraint(equalToConstant: 200).isActive = true
+
+ NSLayoutConstraint.activate([
+ textView.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: 20),
+ textView.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant: -20),
+ textView.bottomAnchor.constraint(equalTo: view.safeAreaLayoutGuide.bottomAnchor, constant: -20)
+ ])
+ }
+
+
+
+ @objc func runInitAction() {
+ // Update the textView on the main thread
+ DispatchQueue.main.async {
+ self.textView.text += "Initializing library\n"
+ }
+
+ // Execute long-running tasks in the background
+ DispatchQueue.global(qos: .userInitiated).async {
+ // Record start time
+ let start = CFAbsoluteTimeGetCurrent()
+
+ do {
+ try initializeMopro()
+
+ // Record end time and compute duration
+ let end = CFAbsoluteTimeGetCurrent()
+ let timeTaken = end - start
+
+ // Again, update the UI on the main thread
+ DispatchQueue.main.async {
+ self.textView.text += "Initializing arkzkey took \(timeTaken) seconds.\n"
+ }
+ } catch {
+ // Handle errors - update UI on main thread
+ DispatchQueue.main.async {
+ self.textView.text += "An error occurred during initialization: \(error)\n"
+ }
+ }
+ }
+ }
+
+ @objc func runProveAction(inputs: [String: [String]]) {
+ // Logic for prove (generate_proof2)
+ do {
+ textView.text += "Starts proving...\n"
+ // Record start time
+ let start = CFAbsoluteTimeGetCurrent()
+
+ // Generate Proof
+ let generateProofResult = try generateProof2(circuitInputs: inputs)
+ assert(!generateProofResult.proof.isEmpty, "Proof should not be empty")
+ //assert(Data(expectedOutput) == generateProofResult.inputs, "Circuit outputs mismatch the expected outputs")
+
+ // Record end time and compute duration
+ let end = CFAbsoluteTimeGetCurrent()
+ let timeTaken = end - start
+
+ // Store the generated proof and public inputs for later verification
+ generatedProof = generateProofResult.proof
+ publicInputs = generateProofResult.inputs
+
+ print("Proof generation took \(timeTaken) seconds.\n")
+
+ textView.text += "Proof generated!!! \n"
+ textView.text += "Proof generation took \(timeTaken) seconds.\n"
+ textView.text += "---\n"
+ runVerifyAction()
+ } catch let error as MoproError {
+ print("MoproError: \(error)")
+ } catch {
+ print("Unexpected error: \(error)")
+ }
+ }
+
+ override func viewDidLayoutSubviews() {
+ super.viewDidLayoutSubviews()
+ webView.frame = view.bounds
+ }
+
+ struct Witness {
+ let signature: [String]
+ let modulus: [String]
+ let base_message: [String]
+ }
+
+ // Implement WKScriptMessageHandler method
+ func provingContentController(_ userContentController: WKUserContentController, didReceive message: WKScriptMessage) {
+ if message.name == "messageHandler" {
+ // Handle messages for "messageHandler"
+ print("Received message from JavaScript:", message.body)
+ }
+ }
+
+ func userContentController(_ userContentController: WKUserContentController, didReceive message: WKScriptMessage) {
+ if message.name == "startProvingHandler", let data = message.body as? [String: Any] {
+ // Check for the "witness" key in the received data
+ if let witnessData = data["witness"] as? [String: [String]] {
+ if let signature = witnessData["signature"],
+ let modulus = witnessData["modulus"],
+ let baseMessage = witnessData["base_message"] {
+
+ let inputs: [String: [String]] = [
+ "signature": signature,
+ "modulus": modulus,
+ "base_message": baseMessage
+ ]
+
+ // Call your Swift function with the received witness data
+ runProveAction(inputs: inputs)
+ }
+ } else if let error = data["error"] as? String {
+ // Handle error data
+ print("Received error value from JavaScript:", error)
+ } else {
+ print("No valid data keys found in the message data.")
+ }
+ }
+ }
+
+ @objc func runVerifyAction() {
+ // Logic for verify
+ guard let proof = generatedProof,
+ let publicInputs = publicInputs else {
+ print("Proof has not been generated yet.")
+ return
+ }
+ do {
+ // Verify Proof
+ let isValid = try verifyProof2(proof: proof, publicInput: publicInputs)
+ assert(isValid, "Proof verification should succeed")
+
+ textView.text += "Proof verification succeeded.\n"
+ } catch let error as MoproError {
+ print("MoproError: \(error)")
+ } catch {
+ print("Unexpected error: \(error)")
+ }
+ }
+}
diff --git a/app/ios/MoproKit/Example/MoproKit/AppDelegate.swift b/app/ios/MoproKit/Example/MoproKit/AppDelegate.swift
new file mode 100644
index 000000000..bd6ad93e3
--- /dev/null
+++ b/app/ios/MoproKit/Example/MoproKit/AppDelegate.swift
@@ -0,0 +1,52 @@
+//
+// AppDelegate.swift
+// MoproKit
+//
+// Created by 1552237 on 09/16/2023.
+// Copyright (c) 2023 1552237. All rights reserved.
+//
+
+import UIKit
+
+@UIApplicationMain
+class AppDelegate: UIResponder, UIApplicationDelegate {
+
+ var window: UIWindow?
+
+ func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
+ // Override point for customization after application launch.
+
+ window = UIWindow(frame: UIScreen.main.bounds)
+ let viewController = ViewController()
+ let navigationController = UINavigationController(rootViewController: viewController)
+ window?.rootViewController = navigationController
+ window?.makeKeyAndVisible()
+
+ return true
+ }
+
+ func applicationWillResignActive(_ application: UIApplication) {
+ // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
+ // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game.
+ }
+
+ func applicationDidEnterBackground(_ application: UIApplication) {
+ // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
+ // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
+ }
+
+ func applicationWillEnterForeground(_ application: UIApplication) {
+ // Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background.
+ }
+
+ func applicationDidBecomeActive(_ application: UIApplication) {
+ // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
+ }
+
+ func applicationWillTerminate(_ application: UIApplication) {
+ // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
+ }
+
+
+}
+
diff --git a/app/ios/MoproKit/Example/MoproKit/Base.lproj/LaunchScreen.xib b/app/ios/MoproKit/Example/MoproKit/Base.lproj/LaunchScreen.xib
new file mode 100644
index 000000000..32e97361f
--- /dev/null
+++ b/app/ios/MoproKit/Example/MoproKit/Base.lproj/LaunchScreen.xib
@@ -0,0 +1,46 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/ios/MoproKit/Example/MoproKit/Base.lproj/Main.storyboard b/app/ios/MoproKit/Example/MoproKit/Base.lproj/Main.storyboard
new file mode 100644
index 000000000..2709ffc6e
--- /dev/null
+++ b/app/ios/MoproKit/Example/MoproKit/Base.lproj/Main.storyboard
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/ios/MoproKit/Example/MoproKit/Images.xcassets/AppIcon.appiconset/Contents.json b/app/ios/MoproKit/Example/MoproKit/Images.xcassets/AppIcon.appiconset/Contents.json
new file mode 100644
index 000000000..7006c9eeb
--- /dev/null
+++ b/app/ios/MoproKit/Example/MoproKit/Images.xcassets/AppIcon.appiconset/Contents.json
@@ -0,0 +1,53 @@
+{
+ "images" : [
+ {
+ "idiom" : "iphone",
+ "size" : "20x20",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "iphone",
+ "size" : "20x20",
+ "scale" : "3x"
+ },
+ {
+ "idiom" : "iphone",
+ "size" : "29x29",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "iphone",
+ "size" : "29x29",
+ "scale" : "3x"
+ },
+ {
+ "idiom" : "iphone",
+ "size" : "40x40",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "iphone",
+ "size" : "40x40",
+ "scale" : "3x"
+ },
+ {
+ "idiom" : "iphone",
+ "size" : "60x60",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "iphone",
+ "size" : "60x60",
+ "scale" : "3x"
+ },
+ {
+ "idiom" : "ios-marketing",
+ "size" : "1024x1024",
+ "scale" : "1x"
+ }
+ ],
+ "info" : {
+ "version" : 1,
+ "author" : "xcode"
+ }
+}
diff --git a/app/ios/MoproKit/Example/MoproKit/Info.plist b/app/ios/MoproKit/Example/MoproKit/Info.plist
new file mode 100644
index 000000000..eb18faac5
--- /dev/null
+++ b/app/ios/MoproKit/Example/MoproKit/Info.plist
@@ -0,0 +1,39 @@
+
+
+
+
+ CFBundleDevelopmentRegion
+ en
+ CFBundleExecutable
+ $(EXECUTABLE_NAME)
+ CFBundleIdentifier
+ $(PRODUCT_BUNDLE_IDENTIFIER)
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundleName
+ $(PRODUCT_NAME)
+ CFBundlePackageType
+ APPL
+ CFBundleShortVersionString
+ 1.0
+ CFBundleSignature
+ ????
+ CFBundleVersion
+ 1
+ LSRequiresIPhoneOS
+
+ UILaunchStoryboardName
+ LaunchScreen
+ UIMainStoryboardFile
+ Main
+ UIRequiredDeviceCapabilities
+
+ armv7
+
+ UISupportedInterfaceOrientations
+
+ UIInterfaceOrientationPortrait
+ UIInterfaceOrientationLandscapeLeft
+
+
+
diff --git a/app/ios/MoproKit/Example/MoproKit/KeccakSetupViewController.swift b/app/ios/MoproKit/Example/MoproKit/KeccakSetupViewController.swift
new file mode 100644
index 000000000..51936e437
--- /dev/null
+++ b/app/ios/MoproKit/Example/MoproKit/KeccakSetupViewController.swift
@@ -0,0 +1,186 @@
+//
+// ViewController.swift
+// MoproKit
+//
+// Created by 1552237 on 09/16/2023.
+// Copyright (c) 2023 1552237. All rights reserved.
+//
+
+import UIKit
+import MoproKit
+
+class KeccakSetupViewController: UIViewController {
+
+ var setupButton = UIButton(type: .system)
+ var proveButton = UIButton(type: .system)
+ var verifyButton = UIButton(type: .system)
+ var textView = UITextView()
+
+ let moproCircom = MoproKit.MoproCircom()
+ var setupResult: SetupResult?
+ var generatedProof: Data?
+ var publicInputs: Data?
+
+ override func viewDidLoad() {
+ super.viewDidLoad()
+
+ // Set title
+ let title = UILabel()
+ title.text = "Keccak256 (setup)"
+ title.textColor = .white
+ title.textAlignment = .center
+ navigationItem.titleView = title
+ navigationController?.navigationBar.isHidden = false
+ navigationController?.navigationBar.prefersLargeTitles = true
+
+ // view.backgroundColor = .white
+ // navigationController?.navigationBar.prefersLargeTitles = true
+ // navigationController?.navigationBar.titleTextAttributes = [NSAttributedString.Key.foregroundColor: UIColor.black]
+ // navigationController?.navigationBar.barTintColor = UIColor.white // or any other contrasting color
+ // self.title = "Keccak256 (setup)"
+
+ setupUI()
+ }
+
+ func setupUI() {
+ setupButton.setTitle("Setup", for: .normal)
+ proveButton.setTitle("Prove", for: .normal)
+ verifyButton.setTitle("Verify", for: .normal)
+
+ textView.isEditable = false
+
+ //self.title = "Keccak256 (setup)"
+ //view.backgroundColor = .black
+
+ // Setup actions for buttons
+ setupButton.addTarget(self, action: #selector(runSetupAction), for: .touchUpInside)
+ proveButton.addTarget(self, action: #selector(runProveAction), for: .touchUpInside)
+ verifyButton.addTarget(self, action: #selector(runVerifyAction), for: .touchUpInside)
+
+ setupButton.contentEdgeInsets = UIEdgeInsets(top: 12, left: 16, bottom: 12, right: 16)
+ proveButton.contentEdgeInsets = UIEdgeInsets(top: 12, left: 16, bottom: 12, right: 16)
+ verifyButton.contentEdgeInsets = UIEdgeInsets(top: 12, left: 16, bottom: 12, right: 16)
+
+ let stackView = UIStackView(arrangedSubviews: [setupButton, proveButton, verifyButton, textView])
+ stackView.axis = .vertical
+ stackView.spacing = 10
+ stackView.translatesAutoresizingMaskIntoConstraints = false
+ view.addSubview(stackView)
+
+ // Make text view visible
+ textView.heightAnchor.constraint(equalToConstant: 200).isActive = true
+
+ NSLayoutConstraint.activate([
+ stackView.centerXAnchor.constraint(equalTo: view.centerXAnchor),
+ stackView.centerYAnchor.constraint(equalTo: view.centerYAnchor),
+ stackView.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: 20),
+ stackView.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant: -20)
+ ])
+ }
+
+ @objc func runSetupAction() {
+ // Logic for setup
+ if let wasmPath = Bundle.main.path(forResource: "keccak256_256_test", ofType: "wasm"),
+ let r1csPath = Bundle.main.path(forResource: "keccak256_256_test", ofType: "r1cs") {
+
+ // Multiplier example
+ // if let wasmPath = Bundle.main.path(forResource: "multiplier2", ofType: "wasm"),
+ // let r1csPath = Bundle.main.path(forResource: "multiplier2", ofType: "r1cs") {
+
+ do {
+ setupResult = try moproCircom.setup(wasmPath: wasmPath, r1csPath: r1csPath)
+ proveButton.isEnabled = true // Enable the Prove button upon successful setup
+ } catch let error as MoproError {
+ print("MoproError: \(error)")
+ } catch {
+ print("Unexpected error: \(error)")
+ }
+ } else {
+ print("Error getting paths for resources")
+ }
+ }
+
+ @objc func runProveAction() {
+ // Logic for prove
+ guard let setupResult = setupResult else {
+ print("Setup is not completed yet.")
+ return
+ }
+ do {
+ // Prepare inputs
+ let inputVec: [UInt8] = [
+ 116, 101, 115, 116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,
+ ]
+ let bits = bytesToBits(bytes: inputVec)
+ var inputs = [String: [String]]()
+ inputs["in"] = bits
+
+ // Multiplier example
+ // var inputs = [String: [String]]()
+ // let a = 3
+ // let b = 5
+ // inputs["a"] = [String(a)]
+ // inputs["b"] = [String(b)]
+
+ // Record start time
+ let start = CFAbsoluteTimeGetCurrent()
+
+ // Generate Proof
+ let generateProofResult = try moproCircom.generateProof(circuitInputs: inputs)
+ assert(!generateProofResult.proof.isEmpty, "Proof should not be empty")
+
+ // Record end time and compute duration
+ let end = CFAbsoluteTimeGetCurrent()
+ let timeTaken = end - start
+
+ // Store the generated proof and public inputs for later verification
+ generatedProof = generateProofResult.proof
+ publicInputs = generateProofResult.inputs
+
+ textView.text += "Proof generation took \(timeTaken) seconds.\n"
+ verifyButton.isEnabled = true // Enable the Verify button once proof has been generated
+ } catch let error as MoproError {
+ print("MoproError: \(error)")
+ } catch {
+ print("Unexpected error: \(error)")
+ }
+ }
+
+ @objc func runVerifyAction() {
+ // Logic for verify
+ guard let setupResult = setupResult,
+ let proof = generatedProof,
+ let publicInputs = publicInputs else {
+ print("Setup is not completed or proof has not been generated yet.")
+ return
+ }
+ do {
+ // Verify Proof
+ let isValid = try moproCircom.verifyProof(proof: proof, publicInput: publicInputs)
+ assert(isValid, "Proof verification should succeed")
+
+ textView.text += "Proof verification succeeded.\n"
+ } catch let error as MoproError {
+ print("MoproError: \(error)")
+ } catch {
+ print("Unexpected error: \(error)")
+ }
+ }
+
+ override func didReceiveMemoryWarning() {
+ super.didReceiveMemoryWarning()
+ // Dispose of any resources that can be recreated.
+ }
+}
+
+func bytesToBits(bytes: [UInt8]) -> [String] {
+ var bits = [String]()
+ for byte in bytes {
+ for j in 0..<8 {
+ let bit = (byte >> j) & 1
+ bits.append(String(bit))
+ }
+ }
+ return bits
+}
diff --git a/app/ios/MoproKit/Example/MoproKit/KeccakZkeyViewController.swift b/app/ios/MoproKit/Example/MoproKit/KeccakZkeyViewController.swift
new file mode 100644
index 000000000..ceca744d7
--- /dev/null
+++ b/app/ios/MoproKit/Example/MoproKit/KeccakZkeyViewController.swift
@@ -0,0 +1,147 @@
+//
+// ViewController.swift
+// MoproKit
+//
+// Created by 1552237 on 09/16/2023.
+// Copyright (c) 2023 1552237. All rights reserved.
+//
+
+import UIKit
+import MoproKit
+
+class KeccakZkeyViewController: UIViewController {
+
+ var initButton = UIButton(type: .system)
+ var proveButton = UIButton(type: .system)
+ var verifyButton = UIButton(type: .system)
+ var textView = UITextView()
+
+ let moproCircom = MoproKit.MoproCircom()
+ //var setupResult: SetupResult?
+ var generatedProof: Data?
+ var publicInputs: Data?
+
+ override func viewDidLoad() {
+ super.viewDidLoad()
+
+ // Set title
+ let title = UILabel()
+ title.text = "Keccak256 (Zkey)"
+ title.textColor = .white
+ title.textAlignment = .center
+ navigationItem.titleView = title
+ navigationController?.navigationBar.isHidden = false
+ navigationController?.navigationBar.prefersLargeTitles = true
+
+ setupUI()
+ }
+
+ func setupUI() {
+ initButton.setTitle("Init", for: .normal)
+ proveButton.setTitle("Prove", for: .normal)
+ verifyButton.setTitle("Verify", for: .normal)
+
+ // Uncomment once init separate
+ //proveButton.isEnabled = false
+ proveButton.isEnabled = true
+ verifyButton.isEnabled = false
+ textView.isEditable = false
+
+ // Setup actions for buttons
+ initButton.addTarget(self, action: #selector(runInitAction), for: .touchUpInside)
+ proveButton.addTarget(self, action: #selector(runProveAction), for: .touchUpInside)
+ verifyButton.addTarget(self, action: #selector(runVerifyAction), for: .touchUpInside)
+
+ initButton.contentEdgeInsets = UIEdgeInsets(top: 12, left: 16, bottom: 12, right: 16)
+ proveButton.contentEdgeInsets = UIEdgeInsets(top: 12, left: 16, bottom: 12, right: 16)
+ verifyButton.contentEdgeInsets = UIEdgeInsets(top: 12, left: 16, bottom: 12, right: 16)
+
+ let stackView = UIStackView(arrangedSubviews: [initButton, proveButton, verifyButton, textView])
+ stackView.axis = .vertical
+ stackView.spacing = 10
+ stackView.translatesAutoresizingMaskIntoConstraints = false
+ view.addSubview(stackView)
+
+ // Make text view visible
+ textView.heightAnchor.constraint(equalToConstant: 200).isActive = true
+
+ NSLayoutConstraint.activate([
+ stackView.centerXAnchor.constraint(equalTo: view.centerXAnchor),
+ stackView.centerYAnchor.constraint(equalTo: view.centerYAnchor),
+ stackView.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: 20),
+ stackView.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant: -20)
+ ])
+ }
+
+ @objc func runInitAction() {
+ // Logic for init
+ do {
+ textView.text += "Initializing library\n"
+ // Record start time
+ let start = CFAbsoluteTimeGetCurrent()
+
+ try initializeMopro()
+
+ // Record end time and compute duration
+ let end = CFAbsoluteTimeGetCurrent()
+ let timeTaken = end - start
+
+ textView.text += "Initializing arkzkey took \(timeTaken) seconds.\n"
+ } catch let error as MoproError {
+ print("MoproError: \(error)")
+ } catch {
+ print("Unexpected error: \(error)")
+ }
+ }
+
+ @objc func runProveAction() {
+ // Logic for prove (generate_proof2)
+ do {
+ // Prepare inputs
+ let inputVec: [UInt8] = [
+ 116, 101, 115, 116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,
+ ]
+ let bits = bytesToBits(bytes: inputVec)
+ var inputs = [String: [String]]()
+ inputs["in"] = bits
+
+ // Expected outputs
+ let outputVec: [UInt8] = [
+ 37, 17, 98, 135, 161, 178, 88, 97, 125, 150, 143, 65, 228, 211, 170, 133, 153, 9, 88,
+ 212, 4, 212, 175, 238, 249, 210, 214, 116, 170, 85, 45, 21,
+ ]
+ let outputBits: [String] = bytesToBits(bytes: outputVec)
+ // let expectedOutput: [UInt8] = serializeOutputs(outputBits)
+
+ // Record start time
+ let start = CFAbsoluteTimeGetCurrent()
+
+ // Generate Proof
+ let generateProofResult = try generateProof2(circuitInputs: inputs)
+ assert(!generateProofResult.proof.isEmpty, "Proof should not be empty")
+ //assert(Data(expectedOutput) == generateProofResult.inputs, "Circuit outputs mismatch the expected outputs")
+
+ // Record end time and compute duration
+ let end = CFAbsoluteTimeGetCurrent()
+ let timeTaken = end - start
+
+ // Store the generated proof and public inputs for later verification
+ generatedProof = generateProofResult.proof
+ publicInputs = generateProofResult.inputs
+
+ textView.text += "Proof generation took \(timeTaken) seconds.\n"
+ // TODO: Enable verify
+ verifyButton.isEnabled = false
+ //verifyButton.isEnabled = true // Enable the Verify button once proof has been generated
+ } catch let error as MoproError {
+ print("MoproError: \(error)")
+ } catch {
+ print("Unexpected error: \(error)")
+ }
+ }
+
+ @objc func runVerifyAction() {
+ // Logic for verify
+ }
+}
diff --git a/app/ios/MoproKit/Example/MoproKit/RSAViewController.swift b/app/ios/MoproKit/Example/MoproKit/RSAViewController.swift
new file mode 100644
index 000000000..80ddadc93
--- /dev/null
+++ b/app/ios/MoproKit/Example/MoproKit/RSAViewController.swift
@@ -0,0 +1,235 @@
+//
+// ViewController.swift
+// MoproKit
+//
+// Created by 1552237 on 09/16/2023.
+// Copyright (c) 2023 1552237. All rights reserved.
+//
+
+import UIKit
+import MoproKit
+
+class RSAViewController: UIViewController {
+
+ var initButton = UIButton(type: .system)
+ var proveButton = UIButton(type: .system)
+ var verifyButton = UIButton(type: .system)
+ var textView = UITextView()
+
+ let moproCircom = MoproKit.MoproCircom()
+ //var setupResult: SetupResult?
+ var generatedProof: Data?
+ var publicInputs: Data?
+
+ override func viewDidLoad() {
+ super.viewDidLoad()
+
+ // Set title
+ let title = UILabel()
+ title.text = "RSA (Zkey)"
+ title.textColor = .white
+ title.textAlignment = .center
+ navigationItem.titleView = title
+ navigationController?.navigationBar.isHidden = false
+ navigationController?.navigationBar.prefersLargeTitles = true
+
+ setupUI()
+ }
+
+ func setupUI() {
+ initButton.setTitle("Init", for: .normal)
+ proveButton.setTitle("Prove", for: .normal)
+ verifyButton.setTitle("Verify", for: .normal)
+
+ // Uncomment once init separate
+ //proveButton.isEnabled = false
+ proveButton.isEnabled = true
+ verifyButton.isEnabled = false
+ textView.isEditable = false
+
+ // Setup actions for buttons
+ initButton.addTarget(self, action: #selector(runInitAction), for: .touchUpInside)
+ proveButton.addTarget(self, action: #selector(runProveAction), for: .touchUpInside)
+ verifyButton.addTarget(self, action: #selector(runVerifyAction), for: .touchUpInside)
+
+ initButton.contentEdgeInsets = UIEdgeInsets(top: 12, left: 16, bottom: 12, right: 16)
+ proveButton.contentEdgeInsets = UIEdgeInsets(top: 12, left: 16, bottom: 12, right: 16)
+ verifyButton.contentEdgeInsets = UIEdgeInsets(top: 12, left: 16, bottom: 12, right: 16)
+
+ let stackView = UIStackView(arrangedSubviews: [initButton, proveButton, verifyButton, textView])
+ stackView.axis = .vertical
+ stackView.spacing = 10
+ stackView.translatesAutoresizingMaskIntoConstraints = false
+ view.addSubview(stackView)
+
+ // Make text view visible
+ textView.heightAnchor.constraint(equalToConstant: 200).isActive = true
+
+ NSLayoutConstraint.activate([
+ stackView.centerXAnchor.constraint(equalTo: view.centerXAnchor),
+ stackView.centerYAnchor.constraint(equalTo: view.centerYAnchor),
+ stackView.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: 20),
+ stackView.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant: -20)
+ ])
+ }
+
+ @objc func runInitAction() {
+ // Update the textView on the main thread
+ DispatchQueue.main.async {
+ self.textView.text += "Initializing library\n"
+ }
+
+ // Execute long-running tasks in the background
+ DispatchQueue.global(qos: .userInitiated).async {
+ // Record start time
+ let start = CFAbsoluteTimeGetCurrent()
+
+ do {
+ try initializeMopro()
+
+ // Record end time and compute duration
+ let end = CFAbsoluteTimeGetCurrent()
+ let timeTaken = end - start
+
+ // Again, update the UI on the main thread
+ DispatchQueue.main.async {
+ self.textView.text += "Initializing arkzkey took \(timeTaken) seconds.\n"
+ }
+ } catch {
+ // Handle errors - update UI on main thread
+ DispatchQueue.main.async {
+ self.textView.text += "An error occurred during initialization: \(error)\n"
+ }
+ }
+ }
+ }
+
+ @objc func runProveAction() {
+ // Logic for prove (generate_proof2)
+ do {
+ // Prepare inputs
+ let signature: [String] = [
+ "3582320600048169363",
+ "7163546589759624213",
+ "18262551396327275695",
+ "4479772254206047016",
+ "1970274621151677644",
+ "6547632513799968987",
+ "921117808165172908",
+ "7155116889028933260",
+ "16769940396381196125",
+ "17141182191056257954",
+ "4376997046052607007",
+ "17471823348423771450",
+ "16282311012391954891",
+ "70286524413490741",
+ "1588836847166444745",
+ "15693430141227594668",
+ "13832254169115286697",
+ "15936550641925323613",
+ "323842208142565220",
+ "6558662646882345749",
+ "15268061661646212265",
+ "14962976685717212593",
+ "15773505053543368901",
+ "9586594741348111792",
+ "1455720481014374292",
+ "13945813312010515080",
+ "6352059456732816887",
+ "17556873002865047035",
+ "2412591065060484384",
+ "11512123092407778330",
+ "8499281165724578877",
+ "12768005853882726493",
+ ]
+
+ let modulus: [String] = [
+ "13792647154200341559",
+ "12773492180790982043",
+ "13046321649363433702",
+ "10174370803876824128",
+ "7282572246071034406",
+ "1524365412687682781",
+ "4900829043004737418",
+ "6195884386932410966",
+ "13554217876979843574",
+ "17902692039595931737",
+ "12433028734895890975",
+ "15971442058448435996",
+ "4591894758077129763",
+ "11258250015882429548",
+ "16399550288873254981",
+ "8246389845141771315",
+ "14040203746442788850",
+ "7283856864330834987",
+ "12297563098718697441",
+ "13560928146585163504",
+ "7380926829734048483",
+ "14591299561622291080",
+ "8439722381984777599",
+ "17375431987296514829",
+ "16727607878674407272",
+ "3233954801381564296",
+ "17255435698225160983",
+ "15093748890170255670",
+ "15810389980847260072",
+ "11120056430439037392",
+ "5866130971823719482",
+ "13327552690270163501",
+ ]
+
+ let base_message: [String] = ["18114495772705111902", "2254271930739856077",
+ "2068851770", "0","0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0",
+ "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0","0", "0", "0","0",
+ ]
+
+ var inputs = [String: [String]]()
+ inputs["signature"] = signature;
+ inputs["modulus"] = modulus;
+ inputs["base_message"] = base_message;
+
+ let start = CFAbsoluteTimeGetCurrent()
+
+ // Generate Proof
+ let generateProofResult = try generateProof2(circuitInputs: inputs)
+ assert(!generateProofResult.proof.isEmpty, "Proof should not be empty")
+
+ // Record end time and compute duration
+ let end = CFAbsoluteTimeGetCurrent()
+ let timeTaken = end - start
+
+ // Store the generated proof and public inputs for later verification
+ generatedProof = generateProofResult.proof
+ publicInputs = generateProofResult.inputs
+
+ textView.text += "Proof generation took \(timeTaken) seconds.\n"
+ verifyButton.isEnabled = true
+ } catch let error as MoproError {
+ print("MoproError: \(error)")
+ textView.text += "MoproError: \(error)\n"
+ } catch {
+ print("Unexpected error: \(error)")
+ textView.text += "Unexpected error: \(error)\n"
+ }
+ }
+
+ @objc func runVerifyAction() {
+ // Logic for verify
+ guard let proof = generatedProof,
+ let publicInputs = publicInputs else {
+ print("Proof has not been generated yet.")
+ return
+ }
+ do {
+ // Verify Proof
+ let isValid = try verifyProof2(proof: proof, publicInput: publicInputs)
+ assert(isValid, "Proof verification should succeed")
+
+ textView.text += "Proof verification succeeded.\n"
+ } catch let error as MoproError {
+ print("MoproError: \(error)")
+ } catch {
+ print("Unexpected error: \(error)")
+ }
+ }
+}
diff --git a/app/ios/MoproKit/Example/MoproKit/ViewController.swift b/app/ios/MoproKit/Example/MoproKit/ViewController.swift
new file mode 100644
index 000000000..934e2266a
--- /dev/null
+++ b/app/ios/MoproKit/Example/MoproKit/ViewController.swift
@@ -0,0 +1,100 @@
+//
+// ViewController.swift
+// MoproKit
+//
+// Created by 1552237 on 09/16/2023.
+// Copyright (c) 2023 1552237. All rights reserved.
+//
+
+import UIKit
+import MoproKit
+
+
+// Main ViewController
+class ViewController: UIViewController {
+
+ let keccakSetupButton = UIButton(type: .system)
+ let keccakZkeyButton = UIButton(type: .system)
+ let rsaButton = UIButton(type: .system)
+ let aadhaarButton = UIButton(type: .system)
+
+ override func viewDidLoad() {
+ super.viewDidLoad()
+ // TODO: Improve style
+
+ // Set title
+ let title = UILabel()
+ title.text = "Mopro Examples"
+ title.textColor = .white
+ title.textAlignment = .center
+ navigationItem.titleView = title
+ navigationController?.navigationBar.isHidden = false
+ navigationController?.navigationBar.prefersLargeTitles = true
+
+ setupMainUI()
+ }
+
+ func setupMainUI() {
+ keccakSetupButton.setTitle("Keccak (Setup)", for: .normal)
+ keccakSetupButton.addTarget(self, action: #selector(openKeccakSetup), for: .touchUpInside)
+
+ keccakZkeyButton.setTitle("Keccak (Zkey)", for: .normal)
+ keccakZkeyButton.addTarget(self, action: #selector(openKeccakZkey), for: .touchUpInside)
+
+ rsaButton.setTitle("RSA", for: .normal)
+ rsaButton.addTarget(self, action: #selector(openRSA), for: .touchUpInside)
+
+ aadhaarButton.setTitle("Anon Aadhaar", for: .normal)
+ aadhaarButton.addTarget(self, action: #selector(openAnonAadhaar), for: .touchUpInside)
+
+
+ keccakSetupButton.contentEdgeInsets = UIEdgeInsets(top: 12, left: 16, bottom: 12, right: 16)
+ keccakZkeyButton.contentEdgeInsets = UIEdgeInsets(top: 12, left: 16, bottom: 12, right: 16)
+ rsaButton.contentEdgeInsets = UIEdgeInsets(top: 12, left: 16, bottom: 12, right: 16)
+
+// self.title = "Mopro Examples"
+// navigationController?.navigationBar.prefersLargeTitles = true
+
+
+ let stackView = UIStackView(arrangedSubviews: [keccakSetupButton, keccakZkeyButton, rsaButton, aadhaarButton])
+ stackView.axis = .vertical
+ stackView.spacing = 20
+ stackView.translatesAutoresizingMaskIntoConstraints = false
+ view.addSubview(stackView)
+
+ NSLayoutConstraint.activate([
+ stackView.centerXAnchor.constraint(equalTo: view.centerXAnchor),
+ stackView.centerYAnchor.constraint(equalTo: view.centerYAnchor)
+ ])
+ }
+
+ @objc func openKeccakSetup() {
+ let keccakSetupVC = KeccakSetupViewController()
+ navigationController?.pushViewController(keccakSetupVC, animated: true)
+ }
+
+ @objc func openKeccakZkey() {
+ let keccakZkeyVC = KeccakZkeyViewController()
+ navigationController?.pushViewController(keccakZkeyVC, animated: true)
+ }
+
+ @objc func openRSA() {
+ let rsaVC = RSAViewController()
+ navigationController?.pushViewController(rsaVC, animated: true)
+ }
+
+ @objc func openAnonAadhaar() {
+ let anonAadhaarVC = AnonAadhaarViewController()
+ navigationController?.pushViewController(anonAadhaarVC, animated: true)
+ }
+}
+
+// // Make buttons bigger
+// proveButton.contentEdgeInsets = UIEdgeInsets(top: 12, left: 16, bottom: 12, right: 16)
+// verifyButton.contentEdgeInsets = UIEdgeInsets(top: 12, left: 16, bottom: 12, right: 16)
+
+// NSLayoutConstraint.activate([
+// stackView.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: 20),
+// stackView.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant: -20),
+// stackView.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor, constant: 20)
+// ])
diff --git a/app/ios/MoproKit/Example/Podfile b/app/ios/MoproKit/Example/Podfile
new file mode 100644
index 000000000..e27037177
--- /dev/null
+++ b/app/ios/MoproKit/Example/Podfile
@@ -0,0 +1,24 @@
+use_frameworks!
+
+platform :ios, '13.0'
+
+target 'MoproKit_Example' do
+ pod 'MoproKit', :path => '../'
+
+ target 'MoproKit_Tests' do
+ inherit! :search_paths
+
+ pod 'Quick', '~> 2.2.0'
+ pod 'Nimble', '~> 10.0.0'
+ end
+end
+
+post_install do |installer|
+ installer.generated_projects.each do |project|
+ project.targets.each do |target|
+ target.build_configurations.each do |config|
+ config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '13.0'
+ end
+ end
+ end
+end
\ No newline at end of file
diff --git a/app/ios/MoproKit/Example/Tests/CircomTests.swift b/app/ios/MoproKit/Example/Tests/CircomTests.swift
new file mode 100644
index 000000000..03e60a908
--- /dev/null
+++ b/app/ios/MoproKit/Example/Tests/CircomTests.swift
@@ -0,0 +1,109 @@
+@testable import MoproKit
+import XCTest
+
+final class CircomTests: XCTestCase {
+
+ let moproCircom = MoproKit.MoproCircom()
+
+ func testMultiplier() {
+ let wasmPath = Bundle.main.path(forResource: "multiplier2", ofType: "wasm")!
+ let r1csPath = Bundle.main.path(forResource: "multiplier2", ofType: "r1cs")!
+ XCTAssertNoThrow(try moproCircom.setup(wasmPath: wasmPath, r1csPath: r1csPath), "Mopro circom setup failed")
+
+ do {
+ var inputs = [String: [String]]()
+ let a = 3
+ let b = 5
+ let c = a*b
+ inputs["a"] = [String(a)]
+ inputs["b"] = [String(b)]
+ let outputs: [String] = [String(c), String(a)]
+ let expectedOutput: [UInt8] = serializeOutputs(outputs)
+
+ // Generate Proof
+ let generateProofResult = try moproCircom.generateProof(circuitInputs: inputs)
+ XCTAssertFalse(generateProofResult.proof.isEmpty, "Proof should not be empty")
+ XCTAssertEqual(Data(expectedOutput), generateProofResult.inputs, "Circuit outputs mismatch the expected outputs")
+
+ let isValid = try moproCircom.verifyProof(proof: generateProofResult.proof, publicInput: generateProofResult.inputs)
+ XCTAssertTrue(isValid, "Proof verification should succeed")
+ } catch let error as MoproError {
+ print("MoproError: \(error)")
+ } catch {
+ print("Unexpected error: \(error)")
+ }
+ }
+
+ func testKeccak256() {
+ let wasmPath = Bundle.main.path(forResource: "keccak256_256_test", ofType: "wasm")!
+ let r1csPath = Bundle.main.path(forResource: "keccak256_256_test", ofType: "r1cs")!
+ XCTAssertNoThrow(try moproCircom.setup(wasmPath: wasmPath, r1csPath: r1csPath), "Mopro circom setup failed")
+
+ do {
+ // Prepare inputs
+ let inputVec: [UInt8] = [
+ 116, 101, 115, 116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,
+ ]
+ let bits = bytesToBits(bytes: inputVec)
+ var inputs = [String: [String]]()
+ inputs["in"] = bits
+
+ // Expected outputs
+ let outputVec: [UInt8] = [
+ 37, 17, 98, 135, 161, 178, 88, 97, 125, 150, 143, 65, 228, 211, 170, 133, 153, 9, 88,
+ 212, 4, 212, 175, 238, 249, 210, 214, 116, 170, 85, 45, 21,
+ ]
+ let outputBits: [String] = bytesToBits(bytes: outputVec)
+ let expectedOutput: [UInt8] = serializeOutputs(outputBits)
+
+ // Generate Proof
+ let generateProofResult = try moproCircom.generateProof(circuitInputs: inputs)
+ XCTAssertFalse(generateProofResult.proof.isEmpty, "Proof should not be empty")
+ XCTAssertEqual(Data(expectedOutput), generateProofResult.inputs, "Circuit outputs mismatch the expected outputs")
+
+ let isValid = try moproCircom.verifyProof(proof: generateProofResult.proof, publicInput: generateProofResult.inputs)
+ XCTAssertTrue(isValid, "Proof verification should succeed")
+ } catch let error as MoproError {
+ print("MoproError: \(error)")
+ } catch {
+ print("Unexpected error: \(error)")
+ }
+ }
+}
+
+func bytesToBits(bytes: [UInt8]) -> [String] {
+ var bits = [String]()
+ for byte in bytes {
+ for j in 0..<8 {
+ let bit = (byte >> j) & 1
+ bits.append(String(bit))
+ }
+ }
+ return bits
+}
+
+func serializeOutputs(_ stringArray: [String]) -> [UInt8] {
+ var bytesArray: [UInt8] = []
+ let length = stringArray.count
+ var littleEndianLength = length.littleEndian
+ let targetLength = 32
+ withUnsafeBytes(of: &littleEndianLength) {
+ bytesArray.append(contentsOf: $0)
+ }
+ for value in stringArray {
+ // TODO: should handle 254-bit input
+ var littleEndian = Int32(value)!.littleEndian
+ var byteLength = 0
+ withUnsafeBytes(of: &littleEndian) {
+ bytesArray.append(contentsOf: $0)
+ byteLength = byteLength + $0.count
+ }
+ if byteLength < targetLength {
+ let paddingCount = targetLength - byteLength
+ let paddingArray = [UInt8](repeating: 0, count: paddingCount)
+ bytesArray.append(contentsOf: paddingArray)
+ }
+ }
+ return bytesArray
+}
diff --git a/app/ios/MoproKit/Example/Tests/CircomUITests.swift b/app/ios/MoproKit/Example/Tests/CircomUITests.swift
new file mode 100644
index 000000000..e5e5d1e32
--- /dev/null
+++ b/app/ios/MoproKit/Example/Tests/CircomUITests.swift
@@ -0,0 +1,13 @@
+import XCTest
+@testable import MoproKit_Example
+
+final class CircomUITests: XCTestCase {
+
+ let ui = KeccakSetupViewController()
+
+ func testSuccessUI() {
+ XCTAssertNoThrow(ui.setupUI(), "Setup UI failed")
+ XCTAssertNoThrow(ui.runProveAction(), "Prove action failed")
+ XCTAssertNoThrow(ui.runVerifyAction(), "Verify action failed")
+ }
+}
diff --git a/app/ios/AwesomeProjectTests/Info.plist b/app/ios/MoproKit/Example/Tests/Info.plist
similarity index 100%
rename from app/ios/AwesomeProjectTests/Info.plist
rename to app/ios/MoproKit/Example/Tests/Info.plist
diff --git a/app/ios/MoproKit/Include/moproFFI.h b/app/ios/MoproKit/Include/moproFFI.h
new file mode 100644
index 000000000..745221d87
--- /dev/null
+++ b/app/ios/MoproKit/Include/moproFFI.h
@@ -0,0 +1,238 @@
+// This file was autogenerated by some hot garbage in the `uniffi` crate.
+// Trust me, you don't want to mess with it!
+
+#pragma once
+
+#include
+#include
+#include
+
+// The following structs are used to implement the lowest level
+// of the FFI, and thus useful to multiple uniffied crates.
+// We ensure they are declared exactly once, with a header guard, UNIFFI_SHARED_H.
+#ifdef UNIFFI_SHARED_H
+ // We also try to prevent mixing versions of shared uniffi header structs.
+ // If you add anything to the #else block, you must increment the version suffix in UNIFFI_SHARED_HEADER_V4
+ #ifndef UNIFFI_SHARED_HEADER_V4
+ #error Combining helper code from multiple versions of uniffi is not supported
+ #endif // ndef UNIFFI_SHARED_HEADER_V4
+#else
+#define UNIFFI_SHARED_H
+#define UNIFFI_SHARED_HEADER_V4
+// β οΈ Attention: If you change this #else block (ending in `#endif // def UNIFFI_SHARED_H`) you *must* β οΈ
+// β οΈ increment the version suffix in all instances of UNIFFI_SHARED_HEADER_V4 in this file. β οΈ
+
+typedef struct RustBuffer
+{
+ int32_t capacity;
+ int32_t len;
+ uint8_t *_Nullable data;
+} RustBuffer;
+
+typedef int32_t (*ForeignCallback)(uint64_t, int32_t, const uint8_t *_Nonnull, int32_t, RustBuffer *_Nonnull);
+
+// Task defined in Rust that Swift executes
+typedef void (*UniFfiRustTaskCallback)(const void * _Nullable, int8_t);
+
+// Callback to execute Rust tasks using a Swift Task
+//
+// Args:
+// executor: ForeignExecutor lowered into a size_t value
+// delay: Delay in MS
+// task: UniFfiRustTaskCallback to call
+// task_data: data to pass the task callback
+typedef int8_t (*UniFfiForeignExecutorCallback)(size_t, uint32_t, UniFfiRustTaskCallback _Nullable, const void * _Nullable);
+
+typedef struct ForeignBytes
+{
+ int32_t len;
+ const uint8_t *_Nullable data;
+} ForeignBytes;
+
+// Error definitions
+typedef struct RustCallStatus {
+ int8_t code;
+ RustBuffer errorBuf;
+} RustCallStatus;
+
+// β οΈ Attention: If you change this #else block (ending in `#endif // def UNIFFI_SHARED_H`) you *must* β οΈ
+// β οΈ increment the version suffix in all instances of UNIFFI_SHARED_HEADER_V4 in this file. β οΈ
+#endif // def UNIFFI_SHARED_H
+
+// Continuation callback for UniFFI Futures
+typedef void (*UniFfiRustFutureContinuation)(void * _Nonnull, int8_t);
+
+// Scaffolding functions
+void uniffi_mopro_ffi_fn_free_moprocircom(void*_Nonnull ptr, RustCallStatus *_Nonnull out_status
+);
+void*_Nonnull uniffi_mopro_ffi_fn_constructor_moprocircom_new(RustCallStatus *_Nonnull out_status
+
+);
+RustBuffer uniffi_mopro_ffi_fn_method_moprocircom_generate_proof(void*_Nonnull ptr, RustBuffer circuit_inputs, RustCallStatus *_Nonnull out_status
+);
+RustBuffer uniffi_mopro_ffi_fn_method_moprocircom_setup(void*_Nonnull ptr, RustBuffer wasm_path, RustBuffer r1cs_path, RustCallStatus *_Nonnull out_status
+);
+int8_t uniffi_mopro_ffi_fn_method_moprocircom_verify_proof(void*_Nonnull ptr, RustBuffer proof, RustBuffer public_input, RustCallStatus *_Nonnull out_status
+);
+uint32_t uniffi_mopro_ffi_fn_func_add(uint32_t a, uint32_t b, RustCallStatus *_Nonnull out_status
+);
+RustBuffer uniffi_mopro_ffi_fn_func_generate_proof2(RustBuffer circuit_inputs, RustCallStatus *_Nonnull out_status
+);
+RustBuffer uniffi_mopro_ffi_fn_func_hello(RustCallStatus *_Nonnull out_status
+
+);
+void uniffi_mopro_ffi_fn_func_initialize_mopro(RustCallStatus *_Nonnull out_status
+
+);
+void uniffi_mopro_ffi_fn_func_initialize_mopro_dylib(RustBuffer dylib_path, RustCallStatus *_Nonnull out_status
+);
+int8_t uniffi_mopro_ffi_fn_func_verify_proof2(RustBuffer proof, RustBuffer public_input, RustCallStatus *_Nonnull out_status
+);
+RustBuffer ffi_mopro_ffi_rustbuffer_alloc(int32_t size, RustCallStatus *_Nonnull out_status
+);
+RustBuffer ffi_mopro_ffi_rustbuffer_from_bytes(ForeignBytes bytes, RustCallStatus *_Nonnull out_status
+);
+void ffi_mopro_ffi_rustbuffer_free(RustBuffer buf, RustCallStatus *_Nonnull out_status
+);
+RustBuffer ffi_mopro_ffi_rustbuffer_reserve(RustBuffer buf, int32_t additional, RustCallStatus *_Nonnull out_status
+);
+void ffi_mopro_ffi_rust_future_continuation_callback_set(UniFfiRustFutureContinuation _Nonnull callback
+);
+void ffi_mopro_ffi_rust_future_poll_u8(void* _Nonnull handle, void* _Nonnull uniffi_callback
+);
+void ffi_mopro_ffi_rust_future_cancel_u8(void* _Nonnull handle
+);
+void ffi_mopro_ffi_rust_future_free_u8(void* _Nonnull handle
+);
+uint8_t ffi_mopro_ffi_rust_future_complete_u8(void* _Nonnull handle, RustCallStatus *_Nonnull out_status
+);
+void ffi_mopro_ffi_rust_future_poll_i8(void* _Nonnull handle, void* _Nonnull uniffi_callback
+);
+void ffi_mopro_ffi_rust_future_cancel_i8(void* _Nonnull handle
+);
+void ffi_mopro_ffi_rust_future_free_i8(void* _Nonnull handle
+);
+int8_t ffi_mopro_ffi_rust_future_complete_i8(void* _Nonnull handle, RustCallStatus *_Nonnull out_status
+);
+void ffi_mopro_ffi_rust_future_poll_u16(void* _Nonnull handle, void* _Nonnull uniffi_callback
+);
+void ffi_mopro_ffi_rust_future_cancel_u16(void* _Nonnull handle
+);
+void ffi_mopro_ffi_rust_future_free_u16(void* _Nonnull handle
+);
+uint16_t ffi_mopro_ffi_rust_future_complete_u16(void* _Nonnull handle, RustCallStatus *_Nonnull out_status
+);
+void ffi_mopro_ffi_rust_future_poll_i16(void* _Nonnull handle, void* _Nonnull uniffi_callback
+);
+void ffi_mopro_ffi_rust_future_cancel_i16(void* _Nonnull handle
+);
+void ffi_mopro_ffi_rust_future_free_i16(void* _Nonnull handle
+);
+int16_t ffi_mopro_ffi_rust_future_complete_i16(void* _Nonnull handle, RustCallStatus *_Nonnull out_status
+);
+void ffi_mopro_ffi_rust_future_poll_u32(void* _Nonnull handle, void* _Nonnull uniffi_callback
+);
+void ffi_mopro_ffi_rust_future_cancel_u32(void* _Nonnull handle
+);
+void ffi_mopro_ffi_rust_future_free_u32(void* _Nonnull handle
+);
+uint32_t ffi_mopro_ffi_rust_future_complete_u32(void* _Nonnull handle, RustCallStatus *_Nonnull out_status
+);
+void ffi_mopro_ffi_rust_future_poll_i32(void* _Nonnull handle, void* _Nonnull uniffi_callback
+);
+void ffi_mopro_ffi_rust_future_cancel_i32(void* _Nonnull handle
+);
+void ffi_mopro_ffi_rust_future_free_i32(void* _Nonnull handle
+);
+int32_t ffi_mopro_ffi_rust_future_complete_i32(void* _Nonnull handle, RustCallStatus *_Nonnull out_status
+);
+void ffi_mopro_ffi_rust_future_poll_u64(void* _Nonnull handle, void* _Nonnull uniffi_callback
+);
+void ffi_mopro_ffi_rust_future_cancel_u64(void* _Nonnull handle
+);
+void ffi_mopro_ffi_rust_future_free_u64(void* _Nonnull handle
+);
+uint64_t ffi_mopro_ffi_rust_future_complete_u64(void* _Nonnull handle, RustCallStatus *_Nonnull out_status
+);
+void ffi_mopro_ffi_rust_future_poll_i64(void* _Nonnull handle, void* _Nonnull uniffi_callback
+);
+void ffi_mopro_ffi_rust_future_cancel_i64(void* _Nonnull handle
+);
+void ffi_mopro_ffi_rust_future_free_i64(void* _Nonnull handle
+);
+int64_t ffi_mopro_ffi_rust_future_complete_i64(void* _Nonnull handle, RustCallStatus *_Nonnull out_status
+);
+void ffi_mopro_ffi_rust_future_poll_f32(void* _Nonnull handle, void* _Nonnull uniffi_callback
+);
+void ffi_mopro_ffi_rust_future_cancel_f32(void* _Nonnull handle
+);
+void ffi_mopro_ffi_rust_future_free_f32(void* _Nonnull handle
+);
+float ffi_mopro_ffi_rust_future_complete_f32(void* _Nonnull handle, RustCallStatus *_Nonnull out_status
+);
+void ffi_mopro_ffi_rust_future_poll_f64(void* _Nonnull handle, void* _Nonnull uniffi_callback
+);
+void ffi_mopro_ffi_rust_future_cancel_f64(void* _Nonnull handle
+);
+void ffi_mopro_ffi_rust_future_free_f64(void* _Nonnull handle
+);
+double ffi_mopro_ffi_rust_future_complete_f64(void* _Nonnull handle, RustCallStatus *_Nonnull out_status
+);
+void ffi_mopro_ffi_rust_future_poll_pointer(void* _Nonnull handle, void* _Nonnull uniffi_callback
+);
+void ffi_mopro_ffi_rust_future_cancel_pointer(void* _Nonnull handle
+);
+void ffi_mopro_ffi_rust_future_free_pointer(void* _Nonnull handle
+);
+void*_Nonnull ffi_mopro_ffi_rust_future_complete_pointer(void* _Nonnull handle, RustCallStatus *_Nonnull out_status
+);
+void ffi_mopro_ffi_rust_future_poll_rust_buffer(void* _Nonnull handle, void* _Nonnull uniffi_callback
+);
+void ffi_mopro_ffi_rust_future_cancel_rust_buffer(void* _Nonnull handle
+);
+void ffi_mopro_ffi_rust_future_free_rust_buffer(void* _Nonnull handle
+);
+RustBuffer ffi_mopro_ffi_rust_future_complete_rust_buffer(void* _Nonnull handle, RustCallStatus *_Nonnull out_status
+);
+void ffi_mopro_ffi_rust_future_poll_void(void* _Nonnull handle, void* _Nonnull uniffi_callback
+);
+void ffi_mopro_ffi_rust_future_cancel_void(void* _Nonnull handle
+);
+void ffi_mopro_ffi_rust_future_free_void(void* _Nonnull handle
+);
+void ffi_mopro_ffi_rust_future_complete_void(void* _Nonnull handle, RustCallStatus *_Nonnull out_status
+);
+uint16_t uniffi_mopro_ffi_checksum_func_add(void
+
+);
+uint16_t uniffi_mopro_ffi_checksum_func_generate_proof2(void
+
+);
+uint16_t uniffi_mopro_ffi_checksum_func_hello(void
+
+);
+uint16_t uniffi_mopro_ffi_checksum_func_initialize_mopro(void
+
+);
+uint16_t uniffi_mopro_ffi_checksum_func_initialize_mopro_dylib(void
+
+);
+uint16_t uniffi_mopro_ffi_checksum_func_verify_proof2(void
+
+);
+uint16_t uniffi_mopro_ffi_checksum_method_moprocircom_generate_proof(void
+
+);
+uint16_t uniffi_mopro_ffi_checksum_method_moprocircom_setup(void
+
+);
+uint16_t uniffi_mopro_ffi_checksum_method_moprocircom_verify_proof(void
+
+);
+uint16_t uniffi_mopro_ffi_checksum_constructor_moprocircom_new(void
+
+);
+uint32_t ffi_mopro_ffi_uniffi_contract_version(void
+
+);
+
diff --git a/circuits/circuits/rsa/LICENSE b/app/ios/MoproKit/LICENSE
similarity index 87%
rename from circuits/circuits/rsa/LICENSE
rename to app/ios/MoproKit/LICENSE
index a1c6d7a8c..46df76b78 100644
--- a/circuits/circuits/rsa/LICENSE
+++ b/app/ios/MoproKit/LICENSE
@@ -1,6 +1,4 @@
-MIT License
-
-Copyright (c) 2023 zk-email
+Copyright (c) 2023 1552237
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
@@ -9,13 +7,13 @@ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/app/ios/MoproKit/Libs/.gitkeep b/app/ios/MoproKit/Libs/.gitkeep
new file mode 100644
index 000000000..e69de29bb
diff --git a/app/ios/MoproKit/MoproKit.podspec b/app/ios/MoproKit/MoproKit.podspec
new file mode 100644
index 000000000..a7be6ace4
--- /dev/null
+++ b/app/ios/MoproKit/MoproKit.podspec
@@ -0,0 +1,50 @@
+#
+# Be sure to run `pod lib lint MoproKit.podspec' to ensure this is a
+# valid spec before submitting.
+#
+# Any lines starting with a # are optional, but their use is encouraged
+# To learn more about a Podspec see https://guides.cocoapods.org/syntax/podspec.html
+#
+
+Pod::Spec.new do |s|
+ s.name = 'MoproKit'
+ s.version = '0.1.0'
+ s.summary = 'A short description of MoproKit.'
+
+# This description is used to generate tags and improve search results.
+# * Think: What does it do? Why did you write it? What is the focus?
+# * Try to keep it short, snappy and to the point.
+# * Write the description between the DESC delimiters below.
+# * Finally, don't worry about the indent, CocoaPods strips it!
+
+ s.description = <<-DESC
+TODO: Add long description of the pod here.
+ DESC
+
+ s.homepage = 'https://github.com/1552237/MoproKit'
+ # s.screenshots = 'www.example.com/screenshots_1', 'www.example.com/screenshots_2'
+ s.license = { :type => 'MIT', :file => 'LICENSE' }
+ s.author = { '1552237' => 'oskarth@titanproxy.com' }
+ s.source = { :git => 'https://github.com/1552237/MoproKit.git', :tag => s.version.to_s }
+ # s.social_media_url = 'https://twitter.com/'
+
+ s.ios.deployment_target = '13.0'
+
+ s.source_files = 'MoproKit/Classes/**/*'
+
+ # libmopro library, headers and modulemap
+ # XXX: static library is not in source control, and needs to be inlcuded manually
+ # Have to be mindful of architecture and simulator or not here, should be improved
+ s.preserve_paths = 'Libs/libmopro_uniffi.a'
+ s.vendored_libraries = 'Libs/libmopro_uniffi.a'
+ s.source_files = 'Include/*.h', 'Bindings/*.swift'
+ s.resource = 'Resources/moproFFI.modulemap'
+
+ # s.resource_bundles = {
+ # 'MoproKit' => ['MoproKit/Assets/*.png']
+ # }
+
+ # s.public_header_files = 'Pod/Classes/**/*.h'
+ # s.frameworks = 'UIKit', 'MapKit'
+ # s.dependency 'AFNetworking', '~> 2.3'
+end
diff --git a/app/ios/MoproKit/MoproKit/Assets/.gitkeep b/app/ios/MoproKit/MoproKit/Assets/.gitkeep
new file mode 100644
index 000000000..e69de29bb
diff --git a/app/ios/MoproKit/README.md b/app/ios/MoproKit/README.md
new file mode 100644
index 000000000..98e7a94eb
--- /dev/null
+++ b/app/ios/MoproKit/README.md
@@ -0,0 +1,29 @@
+# MoproKit
+
+[](https://travis-ci.org/1552237/MoproKit)
+[](https://cocoapods.org/pods/MoproKit)
+[](https://cocoapods.org/pods/MoproKit)
+[](https://cocoapods.org/pods/MoproKit)
+
+## Example
+
+To run the example project, clone the repo, and run `pod install` from the Example directory first.
+
+## Requirements
+
+## Installation
+
+MoproKit is available through [CocoaPods](https://cocoapods.org). To install
+it, simply add the following line to your Podfile:
+
+```ruby
+pod 'MoproKit'
+```
+
+## Author
+
+1552237, oskarth@titanproxy.com
+
+## License
+
+MoproKit is available under the MIT license. See the LICENSE file for more info.
diff --git a/app/ios/MoproKit/Resources/moproFFI.modulemap b/app/ios/MoproKit/Resources/moproFFI.modulemap
new file mode 100644
index 000000000..93b8adffb
--- /dev/null
+++ b/app/ios/MoproKit/Resources/moproFFI.modulemap
@@ -0,0 +1,6 @@
+// This file was autogenerated by some hot garbage in the `uniffi` crate.
+// Trust me, you don't want to mess with it!
+module moproFFI {
+ header "moproFFI.h"
+ export *
+}
\ No newline at end of file
diff --git a/app/ios/NFCPassportReader/BACHandler.swift b/app/ios/NFCPassportReader/BACHandler.swift
deleted file mode 100644
index cd35be7c7..000000000
--- a/app/ios/NFCPassportReader/BACHandler.swift
+++ /dev/null
@@ -1,193 +0,0 @@
-//
-// BACHandler.swift
-// NFCTest
-//
-// Created by Andy Qua on 07/06/2019.
-// Copyright Β© 2019 Andy Qua. All rights reserved.
-//
-
-import Foundation
-
-#if !os(macOS)
-import CoreNFC
-
-@available(iOS 15, *)
-public class BACHandler {
- let KENC : [UInt8] = [0,0,0,1]
- let KMAC : [UInt8] = [0,0,0,2]
-
- public var ksenc : [UInt8] = []
- public var ksmac : [UInt8] = []
-
- var rnd_icc : [UInt8] = []
- var rnd_ifd : [UInt8] = []
- public var kifd : [UInt8] = []
-
- var tagReader : TagReader?
-
- public init() {
- // For testing only
- }
-
- public init(tagReader: TagReader) {
- self.tagReader = tagReader
- }
-
- public func performBACAndGetSessionKeys( mrzKey : String ) async throws {
- guard let tagReader = self.tagReader else {
- throw NFCPassportReaderError.NoConnectedTag
- }
-
- Log.debug( "BACHandler - deriving Document Basic Access Keys" )
- _ = try self.deriveDocumentBasicAccessKeys(mrz: mrzKey)
-
- // Make sure we clear secure messaging (could happen if we read an invalid DG or we hit a secure error
- tagReader.secureMessaging = nil
-
- // get Challenge
- Log.debug( "BACHandler - Getting initial challenge" )
- let response = try await tagReader.getChallenge()
-
- Log.verbose( "DATA - \(response.data)" )
-
- Log.debug( "BACHandler - Doing mutual authentication" )
- let cmd_data = self.authentication(rnd_icc: [UInt8](response.data))
- let maResponse = try await tagReader.doMutualAuthentication(cmdData: Data(cmd_data))
- Log.debug( "DATA - \(maResponse.data)" )
- guard maResponse.data.count > 0 else {
- throw NFCPassportReaderError.InvalidMRZKey
- }
-
- let (KSenc, KSmac, ssc) = try self.sessionKeys(data: [UInt8](maResponse.data))
- tagReader.secureMessaging = SecureMessaging(ksenc: KSenc, ksmac: KSmac, ssc: ssc)
- Log.debug( "BACHandler - complete" )
- }
-
-
- func deriveDocumentBasicAccessKeys(mrz: String) throws -> ([UInt8], [UInt8]) {
- let kseed = generateInitialKseed(kmrz:mrz)
-
- Log.verbose("Calculate the Basic Access Keys (Kenc and Kmac) using TR-SAC 1.01, 4.2")
- let smskg = SecureMessagingSessionKeyGenerator()
- self.ksenc = try smskg.deriveKey(keySeed: kseed, mode: .ENC_MODE)
- self.ksmac = try smskg.deriveKey(keySeed: kseed, mode: .MAC_MODE)
-
- return (ksenc, ksmac)
- }
-
- ///
- /// Calculate the kseed from the kmrz:
- /// - Calculate a SHA-1 hash of the kmrz
- /// - Take the most significant 16 bytes to form the Kseed.
- /// @param kmrz: The MRZ information
- /// @type kmrz: a string
- /// @return: a 16 bytes string
- ///
- /// - Parameter kmrz: mrz key
- /// - Returns: first 16 bytes of the mrz SHA1 hash
- ///
- func generateInitialKseed(kmrz : String ) -> [UInt8] {
-
- Log.verbose("Calculate the SHA-1 hash of MRZ_information")
- Log.verbose("\tMRZ KEY - \(kmrz)")
- let hash = calcSHA1Hash( [UInt8](kmrz.data(using:.utf8)!) )
-
- Log.verbose("\tsha1(MRZ_information): \(binToHexRep(hash))")
-
- let subHash = Array(hash[0..<16])
- Log.verbose("Take the most significant 16 bytes to form the Kseed")
- Log.verbose("\tKseed: \(binToHexRep(subHash))" )
-
- return Array(subHash)
- }
-
-
- /// Construct the command data for the mutual authentication.
- /// - Request an 8 byte random number from the MRTD's chip (rnd.icc)
- /// - Generate an 8 byte random (rnd.ifd) and a 16 byte random (kifd)
- /// - Concatenate rnd.ifd, rnd.icc and kifd (s = rnd.ifd + rnd.icc + kifd)
- /// - Encrypt it with TDES and the Kenc key (eifd = TDES(s, Kenc))
- /// - Compute the MAC over eifd with TDES and the Kmax key (mifd = mac(pad(eifd))
- /// - Construct the APDU data for the mutualAuthenticate command (cmd_data = eifd + mifd)
- ///
- /// @param rnd_icc: The challenge received from the ICC.
- /// @type rnd_icc: A 8 bytes binary string
- /// @return: The APDU binary data for the mutual authenticate command
- func authentication( rnd_icc : [UInt8]) -> [UInt8] {
- self.rnd_icc = rnd_icc
-
- Log.verbose("Request an 8 byte random number from the MRTD's chip")
- Log.verbose("\tRND.ICC: " + binToHexRep(self.rnd_icc))
-
- self.rnd_icc = rnd_icc
-
- let rnd_ifd = generateRandomUInt8Array(8)
- let kifd = generateRandomUInt8Array(16)
-
- Log.verbose("Generate an 8 byte random and a 16 byte random")
- Log.verbose("\tRND.IFD: \(binToHexRep(rnd_ifd))" )
- Log.verbose("\tRND.Kifd: \(binToHexRep(kifd))")
-
- let s = rnd_ifd + rnd_icc + kifd
-
- Log.verbose("Concatenate RND.IFD, RND.ICC and Kifd")
- Log.verbose("\tS: \(binToHexRep(s))")
-
- let iv : [UInt8] = [0, 0, 0, 0, 0, 0, 0, 0]
- let eifd = tripleDESEncrypt(key: ksenc,message: s, iv: iv)
-
- Log.verbose("Encrypt S with TDES key Kenc as calculated in Appendix 5.2")
- Log.verbose("\tEifd: \(binToHexRep(eifd))")
-
- let mifd = mac(algoName: .DES, key: ksmac, msg: pad(eifd, blockSize:8))
-
- Log.verbose("Compute MAC over eifd with TDES key Kmac as calculated in-Appendix 5.2")
- Log.verbose("\tMifd: \(binToHexRep(mifd))")
- // Construct APDU
-
- let cmd_data = eifd + mifd
- Log.verbose("Construct command data for MUTUAL AUTHENTICATE")
- Log.verbose("\tcmd_data: \(binToHexRep(cmd_data))")
-
- self.rnd_ifd = rnd_ifd
- self.kifd = kifd
-
- return cmd_data
- }
-
- /// Calculate the session keys (KSenc, KSmac) and the SSC from the data
- /// received by the mutual authenticate command.
-
- /// @param data: the data received from the mutual authenticate command send to the chip.
- /// @type data: a binary string
- /// @return: A set of two 16 bytes keys (KSenc, KSmac) and the SSC
- public func sessionKeys(data : [UInt8] ) throws -> ([UInt8], [UInt8], [UInt8]) {
- Log.verbose("Decrypt and verify received data and compare received RND.IFD with generated RND.IFD \(binToHexRep(self.ksmac))" )
-
- let response = tripleDESDecrypt(key: self.ksenc, message: [UInt8](data[0..<32]), iv: [0,0,0,0,0,0,0,0] )
-
- let response_kicc = [UInt8](response[16..<32])
- let Kseed = xor(self.kifd, response_kicc)
- Log.verbose("Calculate XOR of Kifd and Kicc")
- Log.verbose("\tKseed: \(binToHexRep(Kseed))" )
-
- let smskg = SecureMessagingSessionKeyGenerator()
- let KSenc = try smskg.deriveKey(keySeed: Kseed, mode: .ENC_MODE)
- let KSmac = try smskg.deriveKey(keySeed: Kseed, mode: .MAC_MODE)
-
-// let KSenc = self.keyDerivation(kseed: Kseed,c: KENC)
-// let KSmac = self.keyDerivation(kseed: Kseed,c: KMAC)
-
- Log.verbose("Calculate Session Keys (KSenc and KSmac) using Appendix 5.1")
- Log.verbose("\tKSenc: \(binToHexRep(KSenc))" )
- Log.verbose("\tKSmac: \(binToHexRep(KSmac))" )
-
-
- let ssc = [UInt8](self.rnd_icc.suffix(4) + self.rnd_ifd.suffix(4))
- Log.verbose("Calculate Send Sequence Counter")
- Log.verbose("\tSSC: \(binToHexRep(ssc))" )
- return (KSenc, KSmac, ssc)
- }
-
-}
-#endif
diff --git a/app/ios/NFCPassportReader/ChipAuthenticationHandler.swift b/app/ios/NFCPassportReader/ChipAuthenticationHandler.swift
deleted file mode 100644
index c374bf9b0..000000000
--- a/app/ios/NFCPassportReader/ChipAuthenticationHandler.swift
+++ /dev/null
@@ -1,223 +0,0 @@
-//
-// ChipAuthenticationHandler.swift
-// NFCPassportReader
-//
-// Created by Andy Qua on 25/02/2021.
-//
-
-import Foundation
-import OpenSSL
-
-#if !os(macOS)
-import CoreNFC
-import CryptoKit
-
-@available(iOS 15, *)
-class ChipAuthenticationHandler {
-
- private static let NO_PACE_KEY_REFERENCE : UInt8 = 0x00
- private static let ENC_MODE : UInt8 = 0x1
- private static let MAC_MODE : UInt8 = 0x2
- private static let PACE_MODE : UInt8 = 0x3
-
- private static let COMMAND_CHAINING_CHUNK_SIZE = 224
-
- var tagReader : TagReader?
- var gaSegments = [[UInt8]]()
-
- var chipAuthInfos = [Int:ChipAuthenticationInfo]()
- var chipAuthPublicKeyInfos = [ChipAuthenticationPublicKeyInfo]()
-
- var isChipAuthenticationSupported : Bool = false
-
- public init(dg14 : DataGroup14, tagReader: TagReader) {
- self.tagReader = tagReader
-
- for secInfo in dg14.securityInfos {
- if let cai = secInfo as? ChipAuthenticationInfo {
- let keyId = cai.getKeyId()
- chipAuthInfos[keyId] = cai
- } else if let capki = secInfo as? ChipAuthenticationPublicKeyInfo {
- chipAuthPublicKeyInfos.append(capki)
- }
- }
-
- if chipAuthPublicKeyInfos.count > 0 {
- isChipAuthenticationSupported = true
- }
- }
-
- public func doChipAuthentication() async throws {
-
- Log.info( "Performing Chip Authentication - number of public keys found - \(chipAuthPublicKeyInfos.count)" )
- guard isChipAuthenticationSupported else {
- throw NFCPassportReaderError.NotYetSupported( "ChipAuthentication not supported" )
- }
-
- var success = false
- for pubKey in chipAuthPublicKeyInfos {
- do {
- success = try await self.doChipAuthentication( with: pubKey)
- if success {
- break
- }
- } catch {
- // try next key
- }
- }
-
- if !success {
- throw NFCPassportReaderError.ChipAuthenticationFailed
- }
- }
-
- private func doChipAuthentication( with chipAuthPublicKeyInfo : ChipAuthenticationPublicKeyInfo ) async throws -> Bool {
-
- // So it turns out that some passports don't have ChipAuthInfo items.
- // So if we do have a ChipAuthInfo the we take the keyId (if present) and OID from there,
- // BUT if we don't then we will try to infer the OID from the public key
- let keyId = chipAuthPublicKeyInfo.keyId
- let chipAuthInfoOID : String
- if let chipAuthInfo = chipAuthInfos[keyId ?? 0] {
- chipAuthInfoOID = chipAuthInfo.oid
- } else {
- if let oid = inferOID( fromPublicKeyOID:chipAuthPublicKeyInfo.oid) {
- chipAuthInfoOID = oid
- } else {
- return false
- }
- }
-
- try await self.doCA( keyId: keyId, encryptionDetailsOID: chipAuthInfoOID, publicKey: chipAuthPublicKeyInfo.pubKey )
- return true
- }
-
- /// Infer OID from public key type - Best guess seems to be to use 3DES_CBC_CBC for both ECDH and DH keys
- /// Apparently works for French passports
- private func inferOID(fromPublicKeyOID: String ) -> String? {
- if fromPublicKeyOID == SecurityInfo.ID_PK_ECDH_OID {
- Log.warning("No ChipAuthenticationInfo - guessing its id-CA-ECDH-3DES-CBC-CBC");
- return SecurityInfo.ID_CA_ECDH_3DES_CBC_CBC_OID
- } else if fromPublicKeyOID == SecurityInfo.ID_PK_DH_OID {
- Log.warning("No ChipAuthenticationInfo - guessing its id-CA-DH-3DES-CBC-CBC");
- return SecurityInfo.ID_CA_DH_3DES_CBC_CBC_OID
- }
-
- Log.warning("No ChipAuthenticationInfo and unsupported ChipAuthenticationPublicKeyInfo public key OID \(fromPublicKeyOID)")
- return nil;
- }
-
- private func doCA( keyId: Int?, encryptionDetailsOID oid: String, publicKey: OpaquePointer) async throws {
-
- // Generate Ephemeral Keypair from parameters from DG14 Public key
- // This should work for both EC and DH keys
- var ephemeralKeyPair : OpaquePointer? = nil
- let pctx = EVP_PKEY_CTX_new(publicKey, nil)
- EVP_PKEY_keygen_init(pctx)
- EVP_PKEY_keygen(pctx, &ephemeralKeyPair)
- EVP_PKEY_CTX_free(pctx)
-
- // Send the public key to the passport
- try await sendPublicKey(oid: oid, keyId: keyId, pcdPublicKey: ephemeralKeyPair!)
-
- Log.debug( "Public Key successfully sent to passport!" )
-
- // Use our ephemeral private key and the passports public key to generate a shared secret
- // (the passport with do the same thing with their private key and our public key)
- let sharedSecret = OpenSSLUtils.computeSharedSecret(privateKeyPair:ephemeralKeyPair!, publicKey:publicKey)
-
- // Now try to restart Secure Messaging using the new shared secret and
- try restartSecureMessaging( oid : oid, sharedSecret : sharedSecret, maxTranceiveLength : 1, shouldCheckMAC : true)
- }
-
- private func sendPublicKey(oid : String, keyId : Int?, pcdPublicKey : OpaquePointer) async throws {
- let cipherAlg = try ChipAuthenticationInfo.toCipherAlgorithm(oid: oid)
- guard let keyData = OpenSSLUtils.getPublicKeyData(from: pcdPublicKey) else {
- throw NFCPassportReaderError.InvalidDataPassed("Unable to get public key data from public key" )
- }
-
- if cipherAlg.hasPrefix("DESede") {
-
- var idData : [UInt8] = []
- if let keyId = keyId {
- idData = intToBytes( val:keyId, removePadding:true)
- idData = wrapDO( b:0x84, arr:idData)
- }
- let wrappedKeyData = wrapDO( b:0x91, arr:keyData)
- _ = try await self.tagReader?.sendMSEKAT(keyData: Data(wrappedKeyData), idData: Data(idData))
- } else if cipherAlg.hasPrefix("AES") {
- _ = try await self.tagReader?.sendMSESetATIntAuth(oid: oid, keyId: keyId)
- let data = wrapDO(b: 0x80, arr:keyData)
- gaSegments = self.chunk(data: data, segmentSize: ChipAuthenticationHandler.COMMAND_CHAINING_CHUNK_SIZE )
- try await self.handleGeneralAuthentication()
- } else {
- throw NFCPassportReaderError.InvalidDataPassed("Cipher Algorithm \(cipherAlg) not supported")
- }
- }
-
- private func handleGeneralAuthentication() async throws {
- repeat {
- // Pull next segment from list
- let segment = gaSegments.removeFirst()
- let isLast = gaSegments.isEmpty
-
- // send it
- _ = try await self.tagReader?.sendGeneralAuthenticate(data: segment, isLast: isLast)
- } while ( !gaSegments.isEmpty )
- }
-
- private func restartSecureMessaging( oid : String, sharedSecret : [UInt8], maxTranceiveLength : Int, shouldCheckMAC : Bool) throws {
- let cipherAlg = try ChipAuthenticationInfo.toCipherAlgorithm(oid: oid)
- let keyLength = try ChipAuthenticationInfo.toKeyLength(oid: oid)
-
- // Start secure messaging.
- let smskg = SecureMessagingSessionKeyGenerator()
- let ksEnc = try smskg.deriveKey(keySeed: sharedSecret, cipherAlgName: cipherAlg, keyLength: keyLength, mode: .ENC_MODE)
- let ksMac = try smskg.deriveKey(keySeed: sharedSecret, cipherAlgName: cipherAlg, keyLength: keyLength, mode: .MAC_MODE)
-
- let ssc = withUnsafeBytes(of: 0.bigEndian, Array.init)
- if (cipherAlg.hasPrefix("DESede")) {
- Log.info( "Restarting secure messaging using DESede encryption")
- let sm = SecureMessaging(encryptionAlgorithm: .DES, ksenc: ksEnc, ksmac: ksMac, ssc: ssc)
- tagReader?.secureMessaging = sm
- } else if (cipherAlg.hasPrefix("AES")) {
- Log.info( "Restarting secure messaging using AES encryption")
- let sm = SecureMessaging(encryptionAlgorithm: .AES, ksenc: ksEnc, ksmac: ksMac, ssc: ssc)
- tagReader?.secureMessaging = sm
- } else {
- Log.error( "Not restarting secure messaging as unsupported cipher algorithm requested - \(cipherAlg)")
- throw NFCPassportReaderError.InvalidDataPassed("Unsupported cipher algorithm \(cipherAlg)" )
- }
- }
-
-
- func inferDigestAlgorithmFromCipherAlgorithmForKeyDerivation( cipherAlg : String, keyLength : Int) throws -> String {
- if cipherAlg == "DESede" || cipherAlg == "AES-128" {
- return "SHA1"
- }
- if cipherAlg == "AES" && keyLength == 128 {
- return "SHA1"
- }
- if cipherAlg == "AES-256" || cipherAlg == "AES-192" {
- return "SHA256"
- }
- if cipherAlg == "AES" && (keyLength == 192 || keyLength == 256) {
- return "SHA256"
- }
-
- throw NFCPassportReaderError.InvalidDataPassed("Unsupported cipher algorithm or key length")
- }
-
- /// Chunks up a byte array into a number of segments of the given size,
- /// and a final segment if there is a remainder.
- /// - Parameter segmentSize the number of bytes per segment
- /// - Parameter data the data to be partitioned
- /// - Parameter a list with the segments
- func chunk( data : [UInt8], segmentSize: Int ) -> [[UInt8]] {
- return stride(from: 0, to: data.count, by: segmentSize).map {
- Array(data[$0 ..< Swift.min($0 + segmentSize, data.count)])
- }
- }
-}
-
-#endif
diff --git a/app/ios/NFCPassportReader/DataGroupHash.swift b/app/ios/NFCPassportReader/DataGroupHash.swift
deleted file mode 100644
index 578fd9f29..000000000
--- a/app/ios/NFCPassportReader/DataGroupHash.swift
+++ /dev/null
@@ -1,16 +0,0 @@
-//
-// DataGroupHash.swift
-// NFCPassportReader
-//
-// Created by Andy Qua on 09/02/2021.
-// Copyright Β© 2021 Andy Qua. All rights reserved.
-//
-
-@available(iOS 13, macOS 10.15, *)
-public struct DataGroupHash {
- public var id: String
- public var sodHash: String
- public var computedHash : String
- public var match : Bool
-}
-
diff --git a/app/ios/NFCPassportReader/DataGroupParser.swift b/app/ios/NFCPassportReader/DataGroupParser.swift
deleted file mode 100644
index 42b462bc9..000000000
--- a/app/ios/NFCPassportReader/DataGroupParser.swift
+++ /dev/null
@@ -1,36 +0,0 @@
-//
-// DataGroupParser.swift
-//
-// Created by Andy Qua on 14/06/2019.
-//
-
-import OpenSSL
-
-@available(iOS 13, macOS 10.15, *)
-class DataGroupParser {
-
- static let dataGroupNames = ["Common", "DG1", "DG2", "DG3", "DG4", "DG5", "DG6", "DG7", "DG8", "DG9", "DG10", "DG11", "DG12", "DG13", "DG14", "DG15", "DG16", "SecurityData"]
- static let tags : [UInt8] = [0x60, 0x61, 0x75, 0x63, 0x76, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x77]
- static let classes : [DataGroup.Type] = [COM.self, DataGroup1.self, DataGroup2.self,
- NotImplementedDG.self, NotImplementedDG.self, NotImplementedDG.self,
- NotImplementedDG.self, DataGroup7.self, NotImplementedDG.self,
- NotImplementedDG.self, NotImplementedDG.self, DataGroup11.self,
- DataGroup12.self, NotImplementedDG.self, DataGroup14.self,
- DataGroup15.self, NotImplementedDG.self, SOD.self]
-
-
- func parseDG( data : [UInt8] ) throws -> DataGroup {
-
- let header = data[0..<4]
-
- let dg = try tagToDG(header[0])
-
- return try dg.init(data)
- }
-
-
- func tagToDG( _ tag : UInt8 ) throws -> DataGroup.Type {
- guard let index = DataGroupParser.tags.firstIndex(of: tag) else { throw NFCPassportReaderError.UnknownTag}
- return DataGroupParser.classes[index]
- }
-}
diff --git a/app/ios/NFCPassportReader/Errors.swift b/app/ios/NFCPassportReader/Errors.swift
deleted file mode 100644
index 14077db21..000000000
--- a/app/ios/NFCPassportReader/Errors.swift
+++ /dev/null
@@ -1,145 +0,0 @@
-//
-// Errors.swift
-// NFCPassportReader
-//
-// Created by Andy Qua on 09/02/2021.
-// Copyright Β© 2021 Andy Qua. All rights reserved.
-//
-
-import Foundation
-
-// MARK: TagError
-@available(iOS 13, macOS 10.15, *)
-public enum NFCPassportReaderError: Error {
- case ResponseError(String, UInt8, UInt8)
- case InvalidResponse
- case UnexpectedError
- case NFCNotSupported
- case NoConnectedTag
- case D087Malformed
- case InvalidResponseChecksum
- case MissingMandatoryFields
- case CannotDecodeASN1Length
- case InvalidASN1Value
- case UnableToProtectAPDU
- case UnableToUnprotectAPDU
- case UnsupportedDataGroup
- case DataGroupNotRead
- case UnknownTag
- case UnknownImageFormat
- case NotImplemented
- case TagNotValid
- case ConnectionError
- case UserCanceled
- case InvalidMRZKey
- case MoreThanOneTagFound
- case InvalidHashAlgorithmSpecified
- case UnsupportedCipherAlgorithm
- case UnsupportedMappingType
- case PACEError(String,String)
- case ChipAuthenticationFailed
- case InvalidDataPassed(String)
- case NotYetSupported(String)
-
- var value: String {
- switch self {
- case .ResponseError(let errMsg, _, _): return errMsg
- case .InvalidResponse: return "InvalidResponse"
- case .UnexpectedError: return "UnexpectedError"
- case .NFCNotSupported: return "NFCNotSupported"
- case .NoConnectedTag: return "NoConnectedTag"
- case .D087Malformed: return "D087Malformed"
- case .InvalidResponseChecksum: return "InvalidResponseChecksum"
- case .MissingMandatoryFields: return "MissingMandatoryFields"
- case .CannotDecodeASN1Length: return "CannotDecodeASN1Length"
- case .InvalidASN1Value: return "InvalidASN1Value"
- case .UnableToProtectAPDU: return "UnableToProtectAPDU"
- case .UnableToUnprotectAPDU: return "UnableToUnprotectAPDU"
- case .UnsupportedDataGroup: return "UnsupportedDataGroup"
- case .DataGroupNotRead: return "DataGroupNotRead"
- case .UnknownTag: return "UnknownTag"
- case .UnknownImageFormat: return "UnknownImageFormat"
- case .NotImplemented: return "NotImplemented"
- case .TagNotValid: return "TagNotValid"
- case .ConnectionError: return "ConnectionError"
- case .UserCanceled: return "UserCanceled"
- case .InvalidMRZKey: return "InvalidMRZKey"
- case .MoreThanOneTagFound: return "MoreThanOneTagFound"
- case .InvalidHashAlgorithmSpecified: return "InvalidHashAlgorithmSpecified"
- case .UnsupportedCipherAlgorithm: return "UnsupportedCipherAlgorithm"
- case .UnsupportedMappingType: return "UnsupportedMappingType"
- case .PACEError(let step, let reason): return "PACEError (\(step)) - \(reason)"
- case .ChipAuthenticationFailed: return "ChipAuthenticationFailed"
- case .InvalidDataPassed(let reason) : return "Invalid data passed - \(reason)"
- case .NotYetSupported(let reason) : return "Not yet supported - \(reason)"
- }
- }
-}
-
-@available(iOS 13, macOS 10.15, *)
-extension NFCPassportReaderError: LocalizedError {
- public var errorDescription: String? {
- return NSLocalizedString(value, comment: "My error")
- }
-}
-
-
-// MARK: OpenSSLError
-@available(iOS 13, macOS 10.15, *)
-public enum OpenSSLError: Error {
- case UnableToGetX509CertificateFromPKCS7(String)
- case UnableToVerifyX509CertificateForSOD(String)
- case VerifyAndReturnSODEncapsulatedData(String)
- case UnableToReadECPublicKey(String)
- case UnableToExtractSignedDataFromPKCS7(String)
- case VerifySignedAttributes(String)
- case UnableToParseASN1(String)
- case UnableToDecryptRSASignature(String)
-}
-
-@available(iOS 13, macOS 10.15, *)
-extension OpenSSLError: LocalizedError {
- public var errorDescription: String? {
- switch self {
- case .UnableToGetX509CertificateFromPKCS7(let reason):
- return NSLocalizedString("Unable to read the SOD PKCS7 Certificate. \(reason)", comment: "UnableToGetPKCS7CertificateForSOD")
- case .UnableToVerifyX509CertificateForSOD(let reason):
- return NSLocalizedString("Unable to verify the SOD X509 certificate. \(reason)", comment: "UnableToVerifyX509CertificateForSOD")
- case .VerifyAndReturnSODEncapsulatedData(let reason):
- return NSLocalizedString("Unable to verify the SOD Datagroup hashes. \(reason)", comment: "UnableToGetSignedDataFromPKCS7")
- case .UnableToReadECPublicKey(let reason):
- return NSLocalizedString("Unable to read ECDSA Public key \(reason)!", comment: "UnableToReadECPublicKey")
- case .UnableToExtractSignedDataFromPKCS7(let reason):
- return NSLocalizedString("Unable to extract Signer data from PKCS7 \(reason)!", comment: "UnableToExtractSignedDataFromPKCS7")
- case .VerifySignedAttributes(let reason):
- return NSLocalizedString("Unable to Verify the SOD SignedAttributes \(reason)!", comment: "UnableToExtractSignedDataFromPKCS7")
- case .UnableToParseASN1(let reason):
- return NSLocalizedString("Unable to parse ASN1 \(reason)!", comment: "UnableToParseASN1")
- case .UnableToDecryptRSASignature(let reason):
- return NSLocalizedString("DatUnable to decrypt RSA Signature \(reason)!", comment: "UnableToDecryptRSSignature")
- }
- }
-}
-
-
-// MARK: PassiveAuthenticationError
-public enum PassiveAuthenticationError: Error {
- case UnableToParseSODHashes(String)
- case InvalidDataGroupHash(String)
- case SODMissing(String)
-}
-
-
-extension PassiveAuthenticationError: LocalizedError {
- public var errorDescription: String? {
- switch self {
- case .UnableToParseSODHashes(let reason):
- return NSLocalizedString("Unable to parse the SOD Datagroup hashes. \(reason)", comment: "UnableToParseSODHashes")
- case .InvalidDataGroupHash(let reason):
- return NSLocalizedString("DataGroup hash not present or didn't match \(reason)!", comment: "InvalidDataGroupHash")
- case .SODMissing(let reason):
- return NSLocalizedString("DataGroup SOD not present or not read \(reason)!", comment: "SODMissing")
-
- }
- }
-}
diff --git a/app/ios/NFCPassportReader/Logging.swift b/app/ios/NFCPassportReader/Logging.swift
deleted file mode 100644
index 2201b5404..000000000
--- a/app/ios/NFCPassportReader/Logging.swift
+++ /dev/null
@@ -1,68 +0,0 @@
-//
-// Logging.swift
-// NFCTest
-//
-// Created by Andy Qua on 11/06/2019.
-// Copyright Β© 2019 Andy Qua. All rights reserved.
-//
-
-import Foundation
-
-// TODO: Quick log functions - will move this to something better
-public enum LogLevel : Int, CaseIterable {
- case verbose = 0
- case debug = 1
- case info = 2
- case warning = 3
- case error = 4
- case none = 5
-}
-
-public class Log {
- public static var logLevel : LogLevel = .info
- public static var storeLogs = false
- public static var logData = [String]()
-
- private static let df = DateFormatter()
- private static var dfInit = false
-
- public class func verbose( _ msg : @autoclosure () -> String ) {
- log( .verbose, msg )
- }
- public class func debug( _ msg : @autoclosure () -> String ) {
- log( .debug, msg )
- }
- public class func info( _ msg : @autoclosure () -> String ) {
- log( .info, msg )
- }
- public class func warning( _ msg : @autoclosure () -> String ) {
- log( .warning, msg )
- }
- public class func error( _ msg : @autoclosure () -> String ) {
- log( .error, msg )
- }
-
- public class func clearStoredLogs() {
- logData.removeAll()
- }
-
- class func log( _ logLevel : LogLevel, _ msg : () -> String ) {
- guard logLevel != .none else { return }
-
- if !dfInit {
- df.dateFormat = "y-MM-dd H:m:ss.SSSS"
- dfInit = true
- }
-
- if self.logLevel.rawValue <= logLevel.rawValue {
- let message = msg()
-
-
- print( "\(df.string(from:Date())) - \(message)" )
-
- if storeLogs {
- logData.append( message )
- }
- }
- }
-}
diff --git a/app/ios/NFCPassportReader/NFCPassportModel.swift b/app/ios/NFCPassportReader/NFCPassportModel.swift
deleted file mode 100644
index a2714b132..000000000
--- a/app/ios/NFCPassportReader/NFCPassportModel.swift
+++ /dev/null
@@ -1,534 +0,0 @@
-//
-// NFCPassportModel.swift
-// NFCPassportReader
-//
-// Created by Andy Qua on 29/10/2019.
-//
-
-
-import Foundation
-
-#if os(iOS)
-import UIKit
-#endif
-
-
-public enum PassportAuthenticationStatus {
- case notDone
- case success
- case failed
-}
-
-@available(iOS 13, macOS 10.15, *)
-public class NFCPassportModel {
-
- public private(set) lazy var documentType : String = { return String( passportDataElements?["5F03"]?.first ?? "?" ) }()
- public private(set) lazy var documentSubType : String = { return String( passportDataElements?["5F03"]?.last ?? "?" ) }()
- public private(set) lazy var documentNumber : String = { return (passportDataElements?["5A"] ?? "?").replacingOccurrences(of: "<", with: "" ) }()
- public private(set) lazy var issuingAuthority : String = { return passportDataElements?["5F28"] ?? "?" }()
- public private(set) lazy var documentExpiryDate : String = { return passportDataElements?["59"] ?? "?" }()
- public private(set) lazy var dateOfBirth : String = { return passportDataElements?["5F57"] ?? "?" }()
- public private(set) lazy var gender : String = { return passportDataElements?["5F35"] ?? "?" }()
- public private(set) lazy var nationality : String = { return passportDataElements?["5F2C"] ?? "?" }()
-
- public private(set) lazy var lastName : String = {
- return names[0].replacingOccurrences(of: "<", with: " " )
- }()
-
- public private(set) lazy var firstName : String = {
- var name = ""
- for i in 1 ..< names.count {
- let fn = names[i].replacingOccurrences(of: "<", with: " " ).trimmingCharacters(in: CharacterSet.whitespacesAndNewlines)
- name += fn + " "
- }
- return name.trimmingCharacters(in: CharacterSet.whitespacesAndNewlines)
- }()
-
- public private(set) lazy var passportMRZ : String = { return passportDataElements?["5F1F"] ?? "NOT FOUND" }()
-
- // Extract fields from DG11 if present
- private lazy var names : [String] = {
- guard let dg11 = dataGroupsRead[.DG11] as? DataGroup11,
- let fullName = dg11.fullName?.components(separatedBy: "<<") else { return (passportDataElements?["5B"] ?? "?").components(separatedBy: "<<") }
- return fullName
- }()
-
- public private(set) lazy var placeOfBirth : String? = {
- guard let dg11 = dataGroupsRead[.DG11] as? DataGroup11,
- let placeOfBirth = dg11.placeOfBirth else { return nil }
- return placeOfBirth
- }()
-
- /// residence address
- public private(set) lazy var residenceAddress : String? = {
- guard let dg11 = dataGroupsRead[.DG11] as? DataGroup11,
- let address = dg11.address else { return nil }
- return address
- }()
-
- /// phone number
- public private(set) lazy var phoneNumber : String? = {
- guard let dg11 = dataGroupsRead[.DG11] as? DataGroup11,
- let telephone = dg11.telephone else { return nil }
- return telephone
- }()
-
- /// personal number
- public private(set) lazy var personalNumber : String? = {
- if let dg11 = dataGroupsRead[.DG11] as? DataGroup11,
- let personalNumber = dg11.personalNumber { return personalNumber }
-
- return (passportDataElements?["53"] ?? "?").replacingOccurrences(of: "<", with: "" )
- }()
-
- public private(set) lazy var documentSigningCertificate : X509Wrapper? = {
- return certificateSigningGroups[.documentSigningCertificate]
- }()
-
- public private(set) lazy var countrySigningCertificate : X509Wrapper? = {
- return certificateSigningGroups[.issuerSigningCertificate]
- }()
-
- // Extract data from COM
- public private(set) lazy var LDSVersion : String = {
- guard let com = dataGroupsRead[.COM] as? COM else { return "Unknown" }
- return com.version
- }()
-
-
- public private(set) lazy var dataGroupsPresent : [String] = {
- guard let com = dataGroupsRead[.COM] as? COM else { return [] }
- return com.dataGroupsPresent
- }()
-
- // Parsed datagroup hashes
- public private(set) var dataGroupsAvailable = [DataGroupId]()
- public private(set) var dataGroupsRead : [DataGroupId:DataGroup] = [:]
- public private(set) var dataGroupHashes = [DataGroupId: DataGroupHash]()
-
- public internal(set) var cardAccess : CardAccess?
- public internal(set) var BACStatus : PassportAuthenticationStatus = .notDone
- public internal(set) var PACEStatus : PassportAuthenticationStatus = .notDone
- public internal(set) var chipAuthenticationStatus : PassportAuthenticationStatus = .notDone
-
- public private(set) var passportCorrectlySigned : Bool = false
- public private(set) var documentSigningCertificateVerified : Bool = false
- public private(set) var passportDataNotTampered : Bool = false
- public private(set) var activeAuthenticationPassed : Bool = false
- public private(set) var activeAuthenticationChallenge : [UInt8] = []
- public private(set) var activeAuthenticationSignature : [UInt8] = []
- public private(set) var verificationErrors : [Error] = []
-
- public var isPACESupported : Bool {
- get {
- if cardAccess?.paceInfo != nil {
- return true
- } else {
- // We may not have stored the cardAccess so check the DG14
- if let dg14 = dataGroupsRead[.DG14] as? DataGroup14,
- (dg14.securityInfos.filter { ($0 as? PACEInfo) != nil }).count > 0 {
- return true
- }
- return false
- }
- }
- }
-
- public var isChipAuthenticationSupported : Bool {
- get {
- if let dg14 = dataGroupsRead[.DG14] as? DataGroup14,
- (dg14.securityInfos.filter { ($0 as? ChipAuthenticationPublicKeyInfo) != nil }).count > 0 {
-
- return true
- } else {
- return false
- }
- }
- }
-
-#if os(iOS)
- public var passportImage : UIImage? {
- guard let dg2 = dataGroupsRead[.DG2] as? DataGroup2 else { return nil }
-
- return dg2.getImage()
- }
-
- public var signatureImage : UIImage? {
- guard let dg7 = dataGroupsRead[.DG7] as? DataGroup7 else { return nil }
-
- return dg7.getImage()
- }
-#endif
-
- public var activeAuthenticationSupported : Bool {
- guard let dg15 = dataGroupsRead[.DG15] as? DataGroup15 else { return false }
- if dg15.ecdsaPublicKey != nil || dg15.rsaPublicKey != nil {
- return true
- }
- return false
- }
-
- private var certificateSigningGroups : [CertificateType:X509Wrapper] = [:]
-
- private var passportDataElements : [String:String]? {
- guard let dg1 = dataGroupsRead[.DG1] as? DataGroup1 else { return nil }
-
- return dg1.elements
- }
-
-
- public init() {
-
- }
-
- public init( from dump: [String:String] ) {
- var AAChallenge : [UInt8]?
- var AASignature : [UInt8]?
- for (key,value) in dump {
- if let data = Data(base64Encoded: value) {
- let bin = [UInt8](data)
- if key == "AASignature" {
- AASignature = bin
- } else if key == "AAChallenge" {
- AAChallenge = bin
- } else {
- do {
- let dg = try DataGroupParser().parseDG(data: bin)
- let dgId = DataGroupId.getIDFromName(name:key)
- self.addDataGroup( dgId, dataGroup:dg )
- } catch {
- Log.error("Failed to import Datagroup - \(key) from dump - \(error)" )
- }
- }
- }
- }
-
- // See if we have Active Auth info in the dump
- if let challenge = AAChallenge, let signature = AASignature {
- verifyActiveAuthentication(challenge: challenge, signature: signature)
- }
- }
-
- public func addDataGroup(_ id : DataGroupId, dataGroup: DataGroup ) {
- self.dataGroupsRead[id] = dataGroup
- if id != .COM && id != .SOD {
- self.dataGroupsAvailable.append( id )
- }
- }
-
- public func getDataGroup( _ id : DataGroupId ) -> DataGroup? {
- return dataGroupsRead[id]
- }
-
- /// Dumps the passport data
- /// - Parameters:
- /// selectedDataGroups - the Data Groups to be exported (if they are present in the passport)
- /// includeActiveAutheticationData - Whether to include the Active Authentication challenge and response (if supported and retrieved)
- /// - Returns: dictionary of DataGroup ids and Base64 encoded data
- public func dumpPassportData( selectedDataGroups : [DataGroupId], includeActiveAuthenticationData : Bool = false) -> [String:String] {
- var ret = [String:String]()
- for dg in selectedDataGroups {
- if let dataGroup = self.dataGroupsRead[dg] {
- let val = Data(dataGroup.data)
- let base64 = val.base64EncodedString()
- ret[dg.getName()] = base64
- }
- }
- if includeActiveAuthenticationData && self.activeAuthenticationSupported {
- ret["AAChallenge"] = Data(activeAuthenticationChallenge).base64EncodedString()
- ret["AASignature"] = Data(activeAuthenticationSignature).base64EncodedString()
- }
- return ret
- }
-
- public func getHashesForDatagroups( hashAlgorythm: String ) -> [DataGroupId:[UInt8]] {
- var ret = [DataGroupId:[UInt8]]()
-
- for (key, value) in dataGroupsRead {
- if hashAlgorythm == "SHA1" {
- ret[key] = calcSHA1Hash(value.body)
- } else if hashAlgorythm == "SHA224" {
- ret[key] = calcSHA224Hash(value.body)
- } else if hashAlgorythm == "SHA256" {
- ret[key] = calcSHA256Hash(value.body)
- } else if hashAlgorythm == "SHA384" {
- ret[key] = calcSHA384Hash(value.body)
- } else if hashAlgorythm == "SHA512" {
- ret[key] = calcSHA512Hash(value.body)
- }
- }
-
- return ret
- }
-
-
- /// This method performs the passive authentication
- /// Passive Authentication : Two Parts:
- /// Part 1 - Has the SOD (Security Object Document) been signed by a valid country signing certificate authority (CSCA)?
- /// Part 2 - has it been tampered with (e.g. hashes of Datagroups match those in the SOD?
- /// guard let sod = model.getDataGroup(.SOD) else { return }
- ///
- /// - Parameter masterListURL: the path to the masterlist to try to verify the document signing certiifcate in the SOD
- /// - Parameter useCMSVerification: Should we use OpenSSL CMS verification to verify the SOD content
- /// is correctly signed by the document signing certificate OR should we do this manully based on RFC5652
- /// CMS fails under certain circumstances (e.g. hashes are SHA512 whereas content is signed with SHA256RSA).
- /// Currently defaulting to manual verification - hoping this will replace the CMS verification totally
- /// CMS Verification currently there just in case
- public func verifyPassport( masterListURL: URL?, useCMSVerification : Bool = false ) {
- if let masterListURL = masterListURL {
- do {
- try validateAndExtractSigningCertificates( masterListURL: masterListURL )
- } catch let error {
- verificationErrors.append( error )
- }
- }
-
- do {
- try ensureReadDataNotBeenTamperedWith( useCMSVerification : useCMSVerification )
- } catch let error {
- verificationErrors.append( error )
- }
- }
-
- public func verifyActiveAuthentication( challenge: [UInt8], signature: [UInt8] ) {
- self.activeAuthenticationChallenge = challenge
- self.activeAuthenticationSignature = signature
-
- Log.verbose( "Active Authentication")
- Log.verbose( " challange - \(binToHexRep(challenge))")
- Log.verbose( " signature - \(binToHexRep(signature))")
-
- // Get AA Public key
- self.activeAuthenticationPassed = false
- guard let dg15 = self.dataGroupsRead[.DG15] as? DataGroup15 else { return }
- if let rsaKey = dg15.rsaPublicKey {
- do {
- var decryptedSig = try OpenSSLUtils.decryptRSASignature(signature: Data(signature), pubKey: rsaKey)
-
- // Decrypted signature compromises of header (6A), Message, Digest hash, Trailer
- // Trailer can be 1 byte (BC - SHA-1 hash) or 2 bytes (xxCC) - where xx identifies the hash algorithm used
-
- // if the last byte of the digest is 0xBC, then this uses dedicated hash function 3 (SHA-1),
- // If the last byte is 0xCC, then the preceding byte tells you which hash function
- // should be used (currently not yet implemented!)
- // See ISO/IEC9796-2 for details on the verification and ISO/IEC 10118-3 for the dedicated hash functions!
- var hashTypeByte = decryptedSig.popLast() ?? 0x00
- if hashTypeByte == 0xCC {
- hashTypeByte = decryptedSig.popLast() ?? 0x00
- }
- var hashType : String = ""
- var hashLength = 0
-
- switch hashTypeByte {
- case 0xBC, 0x33:
- hashType = "SHA1"
- hashLength = 20 // 160 bits for SHA-1 -> 20 bytes
- case 0x34:
- hashType = "SHA256"
- hashLength = 32 // 256 bits for SHA-256 -> 32 bytes
- case 0x35:
- hashType = "SHA512"
- hashLength = 64 // 512 bits for SHA-512 -> 64 bytes
- case 0x36:
- hashType = "SHA384"
- hashLength = 48 // 384 bits for SHA-384 -> 48 bytes
- case 0x38:
- hashType = "SHA224"
- hashLength = 28 // 224 bits for SHA-224 -> 28 bytes
- default:
- Log.error( "Error identifying Active Authentication RSA message digest hash algorithm" )
- return
- }
-
- let message = [UInt8](decryptedSig[1 ..< (decryptedSig.count-hashLength)])
- let digest = [UInt8](decryptedSig[(decryptedSig.count-hashLength)...])
-
- // Concatenate the challenge to the end of the message
- let fullMsg = message + challenge
-
- // Then generate the hash
- let msgHash : [UInt8] = try calcHash(data: fullMsg, hashAlgorithm: hashType)
-
- // Check hashes match
- if msgHash == digest {
- self.activeAuthenticationPassed = true
- Log.debug( "Active Authentication (RSA) successful" )
- } else {
- Log.error( "Error verifying Active Authentication RSA signature - Hash doesn't match" )
- }
- } catch {
- Log.error( "Error verifying Active Authentication RSA signature - \(error)" )
- }
- } else if let ecdsaPublicKey = dg15.ecdsaPublicKey {
- var digestType = ""
- if let dg14 = dataGroupsRead[.DG14] as? DataGroup14,
- let aa = dg14.securityInfos.compactMap({ $0 as? ActiveAuthenticationInfo }).first {
- digestType = aa.getSignatureAlgorithmOIDString() ?? ""
- }
-
- if OpenSSLUtils.verifyECDSASignature( publicKey:ecdsaPublicKey, signature: signature, data: challenge, digestType: digestType ) {
- self.activeAuthenticationPassed = true
- Log.debug( "Active Authentication (ECDSA) successful" )
- } else {
- Log.error( "Error verifying Active Authentication ECDSA signature" )
- }
- }
- }
-
- // Check if signing certificate is on the revocation list
- // We do this by trying to build a trust chain of the passport certificate against the ones in the revocation list
- // and if we are successful then its been revoked.
- // NOTE - NOT USED YET AS NOT ABLE TO TEST
- func hasCertBeenRevoked( revocationListURL : URL ) -> Bool {
- var revoked = false
- do {
- try validateAndExtractSigningCertificates( masterListURL: revocationListURL )
-
- // Certificate chain found - which means certificate is on revocation list
- revoked = true
- } catch {
- // No chain found - certificate not revoked
- }
-
- return revoked
- }
-
- private func validateAndExtractSigningCertificates( masterListURL: URL ) throws {
- self.passportCorrectlySigned = false
-
- guard let sod = getDataGroup(.SOD) else {
- throw PassiveAuthenticationError.SODMissing("No SOD found" )
- }
-
- let data = Data(sod.body)
- let cert = try OpenSSLUtils.getX509CertificatesFromPKCS7( pkcs7Der: data ).first!
- self.certificateSigningGroups[.documentSigningCertificate] = cert
-
- let rc = OpenSSLUtils.verifyTrustAndGetIssuerCertificate( x509:cert, CAFile: masterListURL )
- switch rc {
- case .success(let csca):
- self.certificateSigningGroups[.issuerSigningCertificate] = csca
- case .failure(let error):
- throw error
- }
-
- Log.debug( "Passport passed SOD Verification" )
- self.passportCorrectlySigned = true
-
- }
-
- private func ensureReadDataNotBeenTamperedWith( useCMSVerification: Bool ) throws {
- guard let sod = getDataGroup(.SOD) as? SOD else {
- throw PassiveAuthenticationError.SODMissing("No SOD found" )
- }
-
- // Get SOD Content and verify that its correctly signed by the Document Signing Certificate
- var signedData : Data
- documentSigningCertificateVerified = false
- do {
- if useCMSVerification {
- signedData = try OpenSSLUtils.verifyAndReturnSODEncapsulatedDataUsingCMS(sod: sod)
- } else {
- signedData = try OpenSSLUtils.verifyAndReturnSODEncapsulatedData(sod: sod)
- }
- documentSigningCertificateVerified = true
- } catch {
- signedData = try sod.getEncapsulatedContent()
- }
-
- // Now Verify passport data by comparing compare Hashes in SOD against
- // computed hashes to ensure data not been tampered with
- passportDataNotTampered = false
- let asn1Data = try OpenSSLUtils.ASN1Parse( data: signedData )
- let (sodHashAlgorythm, sodHashes) = try parseSODSignatureContent( asn1Data )
-
- var errors : String = ""
- // pour chaque dataGroupsRead, il faut que le hash sodHashVal parsΓ© du eContent (signedData) soit Γ©gal
- // au computedHashVal qui sort du dataGroupsRead
- for (id,dgVal) in dataGroupsRead {
- guard let sodHashVal = sodHashes[id] else {
- // SOD and COM don't have hashes so these aren't errors
- if id != .SOD && id != .COM {
- errors += "DataGroup \(id) is missing!\n"
- }
- continue
- }
-
- let computedHashVal = binToHexRep(dgVal.hash(sodHashAlgorythm))
-
- var match = true
- if computedHashVal != sodHashVal {
- errors += "\(id) invalid hash:\n SOD hash:\(sodHashVal)\n Computed hash:\(computedHashVal)\n"
- match = false
- }
-
- dataGroupHashes[id] = DataGroupHash(id: id.getName(), sodHash:sodHashVal, computedHash:computedHashVal, match:match)
- }
-
- if errors != "" {
- Log.error( "HASH ERRORS - \(errors)" )
- throw PassiveAuthenticationError.InvalidDataGroupHash(errors)
- }
-
- Log.debug( "Passport passed Datagroup Tampering check" )
- passportDataNotTampered = true
- }
-
-
- /// Parses an text ASN1 structure, and extracts the Hash Algorythm and Hashes contained from the Octect strings
- /// - Parameter content: the text ASN1 stucure format
- /// - Returns: The Hash Algorythm used - either SHA1 or SHA256, and a dictionary of hashes for the datagroups (currently only DG1 and DG2 are handled)
- private func parseSODSignatureContent( _ content : String ) throws -> (String, [DataGroupId : String]){
- var currentDG = ""
- var sodHashAlgo = ""
- var sodHashes : [DataGroupId : String] = [:]
-
- let lines = content.components(separatedBy: "\n")
-
- let dgList : [DataGroupId] = [.COM,.DG1,.DG2,.DG3,.DG4,.DG5,.DG6,.DG7,.DG8,.DG9,.DG10,.DG11,.DG12,.DG13,.DG14,.DG15,.DG16,.SOD]
-
- for line in lines {
- if line.contains( "d=2" ) && line.contains( "OBJECT" ) {
- if line.contains( "sha1" ) {
- sodHashAlgo = "SHA1"
- } else if line.contains( "sha224" ) {
- sodHashAlgo = "SHA224"
- } else if line.contains( "sha256" ) {
- sodHashAlgo = "SHA256"
- } else if line.contains( "sha384" ) {
- sodHashAlgo = "SHA384"
- } else if line.contains( "sha512" ) {
- sodHashAlgo = "SHA512"
- }
- } else if line.contains("d=3" ) && line.contains( "INTEGER" ) {
- if let range = line.range(of: "INTEGER") {
- let substr = line[range.upperBound.. String {
+ switch self {
+ case .documentSigningCertificate:
+ return "documentSigningCertificate"
+ case .issuerSigningCertificate:
+ return "issuerSigningCertificate"
+ }
+ }
+}
+
+// Helper function to map the keys of a dictionary
+extension Dictionary {
+ func mapKeys(_ transform: (Key) -> T) -> Dictionary {
+ Dictionary(uniqueKeysWithValues: map { (transform($0.key), $0.value) })
+ }
+}
@available(iOS 15, *)
@objc(PassportReader)
@@ -58,42 +78,276 @@ class PassportReader: NSObject{
@objc(scanPassport:dateOfBirth:dateOfExpiry:resolve:reject:)
func scanPassport(_ passportNumber: String, dateOfBirth: String, dateOfExpiry: String, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
let customMessageHandler : (NFCViewDisplayMessage)->String? = { (displayMessage) in
- switch displayMessage {
- case .requestPresentPassport:
- return "Hold your iPhone near ann NFC enabled passport."
- default:
- // Return nil for all other messages so we use the provided default
- return nil
- }
- }
+ switch displayMessage {
+ case .requestPresentPassport:
+ return "Hold your iPhone against an NFC enabled passport."
+ default:
+ // Return nil for all other messages so we use the provided default
+ return nil
+ }
+ }
Task { [weak self] in
- guard let self = self else {
- return
- }
+ guard let self = self else {
+ return
+ }
- do {
- let mrzKey = getMRZKey( passportNumber: passportNumber, dateOfBirth: dateOfBirth, dateOfExpiry: dateOfExpiry)
- let masterListURL = Bundle.main.url(forResource: "masterList", withExtension: ".pem")
- passportReader.setMasterListURL( masterListURL! )
+ do {
+ let mrzKey = getMRZKey( passportNumber: passportNumber, dateOfBirth: dateOfBirth, dateOfExpiry: dateOfExpiry)
+ let masterListURL = Bundle.main.url(forResource: "masterList", withExtension: ".pem")
+ passportReader.setMasterListURL( masterListURL! )
- let passport = try await passportReader.readPassport( mrzKey: mrzKey, customDisplayMessage: customMessageHandler)
+ let passport = try await passportReader.readPassport( mrzKey: mrzKey, customDisplayMessage: customMessageHandler)
- let passportData = passport.lastName
- resolve(passportData)
- } catch {
- reject("E_PASSPORT_READ", "Failed to read passport", error)
- }
+ var ret = [String:String]()
+ print("documentType", passport.documentType)
+
+ ret["documentType"] = passport.documentType
+ ret["documentSubType"] = passport.documentSubType
+ ret["documentNumber"] = passport.documentNumber
+ ret["issuingAuthority"] = passport.issuingAuthority
+ ret["documentExpiryDate"] = passport.documentExpiryDate
+ ret["dateOfBirth"] = passport.dateOfBirth
+ ret["gender"] = passport.gender
+ ret["nationality"] = passport.nationality
+ ret["lastName"] = passport.lastName
+ ret["firstName"] = passport.firstName
+ ret["passportMRZ"] = passport.passportMRZ
+ ret["placeOfBirth"] = passport.placeOfBirth
+ ret["residenceAddress"] = passport.residenceAddress
+ ret["phoneNumber"] = passport.phoneNumber
+ ret["personalNumber"] = passport.personalNumber
+
+ // documentSigningCertificate
+ // countrySigningCertificate
+
+ if let serializedDocumentSigningCertificate = serializeX509Wrapper(passport.documentSigningCertificate) {
+ ret["documentSigningCertificate"] = serializedDocumentSigningCertificate
}
+
+ if let serializedCountrySigningCertificate = serializeX509Wrapper(passport.countrySigningCertificate) {
+ ret["countrySigningCertificate"] = serializedCountrySigningCertificate
+ }
+ print("passport.documentSigningCertificate", passport.documentSigningCertificate)
+ print("passport.countrySigningCertificate", passport.countrySigningCertificate)
+
+ ret["LDSVersion"] = passport.LDSVersion
+ ret["dataGroupsPresent"] = passport.dataGroupsPresent.joined(separator: ", ")
+
+ print("passport.LDSVersion", passport.LDSVersion)
+
+ // ret["dataGroupsAvailable"] = passport.dataGroupsAvailable.map(dataGroupIdToString)
+
+ print("passport.dataGroupsAvailable", passport.dataGroupsAvailable)
+ print("passport.dataGroupsRead", passport.dataGroupsRead)
+ print("passport.dataGroupHashes", passport.dataGroupHashes)
+
+ // do {
+ // let dataGroupsReadData = try JSONSerialization.data(withJSONObject: passport.dataGroupsRead.mapValues { self.convertDataGroupToSerializableFormat($0) }, options: [])
+ // let dataGroupsReadJsonString = String(data: dataGroupsReadData, encoding: .utf8) ?? ""
+ // ret["dataGroupsRead"] = dataGroupsReadJsonString
+ // } catch {
+ // print("Error serializing dataGroupsRead: \(error)")
+ // }
+
+ // ret["dataGroupsRead"] = passport.dataGroupsRead.mapValues { convertDataGroupToSerializableFormat($0) }
+ do {
+ let dataGroupHashesDict = passport.dataGroupHashes.mapKeys { "\($0)" }
+ let serializableDataGroupHashes = dataGroupHashesDict.mapValues { convertDataGroupHashToSerializableFormat($0) }
+ let dataGroupHashesData = try JSONSerialization.data(withJSONObject: serializableDataGroupHashes, options: [])
+ let dataGroupHashesJsonString = String(data: dataGroupHashesData, encoding: .utf8) ?? ""
+ ret["dataGroupHashes"] = dataGroupHashesJsonString
+ } catch {
+ print("Error serializing dataGroupHashes: \(error)")
+ }
+
+
+ // cardAccess
+ // BACStatus
+ // PACEStatus
+ // chipAuthenticationStatus
+ ret["passportCorrectlySigned"] = String(passport.passportCorrectlySigned)
+ ret["documentSigningCertificateVerified"] = String(passport.documentSigningCertificateVerified)
+ ret["passportDataNotTampered"] = String(passport.passportDataNotTampered)
+ ret["activeAuthenticationPassed"] = String(passport.activeAuthenticationPassed)
+ ret["activeAuthenticationChallenge"] = encodeByteArrayToHexString(passport.activeAuthenticationChallenge)
+ ret["activeAuthenticationSignature"] = encodeByteArrayToHexString(passport.activeAuthenticationSignature)
+ ret["verificationErrors"] = encodeErrors(passport.verificationErrors).joined(separator: ", ")
+
+ ret["isPACESupported"] = String(passport.isPACESupported)
+ ret["isChipAuthenticationSupported"] = String(passport.isChipAuthenticationSupported)
+
+ // passportImage
+ // signatureImage
+
+ // activeAuthenticationSupported
+
+ print("passport.certificateSigningGroups", passport.certificateSigningGroups)
+
+ // ret["certificateSigningGroups"] = passport.certificateSigningGroups.mapKeys(certificateTypeToString).mapValues(encodeX509WrapperToJsonString)
+ // if let passportDataElements = passport.passportDataElements {
+ // ret["passportDataElements"] = passportDataElements
+ // } else {
+ // ret["passportDataElements"] = [:]
+ // }
+
+ do {
+ let sod = passport.getDataGroup(DataGroupId.SOD) as! SOD
+
+ // ret["concatenatedDataHashes"] = try sod.getEncapsulatedContent().base64EncodedString() // this is what we call concatenatedDataHashes, not the true eContent
+ ret["eContentBase64"] = try sod.getEncapsulatedContent().base64EncodedString() // this is what we call concatenatedDataHashes, not the true eContent
+
+ ret["signatureAlgorithm"] = try sod.getSignatureAlgorithm()
+
+ let messageDigestFromSignedAttributes = try sod.getMessageDigestFromSignedAttributes()
+ let signedAttributes = try sod.getSignedAttributes()
+ print("messageDigestFromSignedAttributes", messageDigestFromSignedAttributes)
+
+ ret["signedAttributes"] = signedAttributes.base64EncodedString()
+ // if let pubKey = convertOpaquePointerToSecKey(opaquePointer: sod.pubKey),
+ // let serializedPublicKey = serializePublicKey(pubKey) {
+ // ret["publicKeyBase64"] = serializedPublicKey
+ // } else {
+ // // Handle the case where pubKey is nil
+ // }
+
+ if let serializedSignature = serializeSignature(from: sod) {
+ ret["signatureBase64"] = serializedSignature
+ }
+
+ } catch {
+ print("Error serializing SOD data: \(error)")
+ reject("E_PASSPORT_READ", "Failed to read passport", error)
+ }
+
+ let stringified = String(data: try JSONEncoder().encode(ret), encoding: .utf8)
+
+ resolve(stringified)
+ } catch {
+ reject("E_PASSPORT_READ", "Failed to read passport", error)
+ }
+ }
+ }
+
+ // mrz β
+ // dataHashes β
+ // eContentBytes β
+ // pubkey
+ // signature β
+
+// func convertOpaquePointerToSecKey(opaquePointer: OpaquePointer?) -> SecKey? {
+// guard let opaquePointer = opaquePointer else { return nil }
+
+// // Assuming the key is in DER format
+// // Replace with actual code to convert OpaquePointer to Data
+// let keyData = Data(bytes: opaquePointer, count: keyLength) // Replace `keyLength` with actual length of key data
+
+// let attributes: [String: Any] = [
+// kSecAttrKeyType as String: kSecAttrKeyTypeRSA, // or kSecAttrKeyTypeECSECPrimeRandom for ECDSA
+// kSecAttrKeyClass as String: kSecAttrKeyClassPublic
+// ]
+
+// var error: Unmanaged?
+// let secKey = SecKeyCreateWithData(keyData as CFData, attributes as CFDictionary, &error)
+
+// if let error = error {
+// print("Error creating SecKey: \(error.takeRetainedValue())")
+// return nil
+// }
+
+// return secKey
+// }
+
+func serializePublicKey(_ publicKey: SecKey) -> String? {
+ var error: Unmanaged?
+ guard let publicKeyData = SecKeyCopyExternalRepresentation(publicKey, &error) as Data? else {
+ print("Error serializing public key: \(error!.takeRetainedValue() as Error)")
+ return nil
+ }
+ return publicKeyData.base64EncodedString()
+}
+
+ func serializeSignature(from sod: SOD) -> String? {
+ do {
+ let signature = try sod.getSignature()
+ return signature.base64EncodedString()
+ } catch {
+ print("Error extracting signature: \(error)")
+ return nil
+ }
+ }
+
+ func serializeX509Wrapper(_ certificate: X509Wrapper?) -> String? {
+ guard let certificate = certificate else { return nil }
+
+ let itemsDict = certificate.getItemsAsDict()
+ var certInfoStringKeys = [String: String]()
+
+ // Convert CertificateItem keys to String keys
+ for (key, value) in itemsDict {
+ certInfoStringKeys[key.rawValue] = value
+ }
+
+ // Add PEM representation
+ let certPEM = certificate.certToPEM()
+ certInfoStringKeys["PEM"] = certPEM
+
+ do {
+ let jsonData = try JSONSerialization.data(withJSONObject: certInfoStringKeys, options: [])
+ return String(data: jsonData, encoding: .utf8)
+ } catch {
+ print("Error serializing X509Wrapper: \(error)")
+ return nil
+ }
}
-// @objc(scanPassport:dateOfBirth:dateOfExpiry:resolve:reject:)
-// func scanPassport(_ passportNumber: String, dateOfBirth: String, dateOfExpiry: String, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
-// let concatenatedString = "\(passportNumber), \(dateOfBirth), \(dateOfExpiry)"
-// resolve(concatenatedString)
-// }
+ func encodeX509WrapperToJsonString(_ certificate: X509Wrapper?) -> String? {
+ guard let certificate = certificate else { return nil }
+ let certificateItems = certificate.getItemsAsDict()
+
+ // Convert certificate items to JSON
+ do {
+ let jsonData = try JSONSerialization.data(withJSONObject: certificateItems, options: [])
+ return String(data: jsonData, encoding: .utf8)
+ } catch {
+ print("Error serializing certificate items to JSON: \(error)")
+ return nil
+ }
+ }
+
+ func encodeByteArrayToHexString(_ byteArray: [UInt8]) -> String {
+ return byteArray.map { String(format: "%02x", $0) }.joined()
+ }
+
+ func encodeErrors(_ errors: [Error]) -> [String] {
+ return errors.map { $0.localizedDescription }
+ }
+
+ func convertDataGroupHashToSerializableFormat(_ dataGroupHash: DataGroupHash) -> [String: Any] {
+ return [
+ "id": dataGroupHash.id,
+ "sodHash": dataGroupHash.sodHash,
+ "computedHash": dataGroupHash.computedHash,
+ "match": dataGroupHash.match
+ ]
+ }
+
+ func dataGroupIdToString(_ id: DataGroupId) -> String {
+ return String(id.rawValue) // or any other method to get a string representation
+ }
+
+ func certificateTypeToString(_ type: CertificateType) -> String {
+ return type.stringValue()
+ }
+
+ func convertDataGroupToSerializableFormat(_ dataGroup: DataGroup) -> [String: Any] {
+ return [
+ "datagroupType": dataGroupIdToString(dataGroup.datagroupType),
+ "body": encodeByteArrayToHexString(dataGroup.body),
+ "data": encodeByteArrayToHexString(dataGroup.data)
+ ]
+ }
-
@objc
static func requiresMainQueueSetup() -> Bool {
return true
diff --git a/app/ios/Podfile b/app/ios/Podfile
index c30a8a70e..54addf801 100644
--- a/app/ios/Podfile
+++ b/app/ios/Podfile
@@ -1,3 +1,5 @@
+use_frameworks!
+
# Resolve react_native_pods.rb with node to allow for hoisting
require Pod::Executable.execute_command('node', ['-p',
'require.resolve(
@@ -5,7 +7,7 @@ require Pod::Executable.execute_command('node', ['-p',
{paths: [process.argv[1]]},
)', __dir__]).strip
-platform :ios, min_ios_version_supported
+platform :ios, '13.0'
prepare_react_native_project!
# If you are using a `react-native-flipper` your iOS build will fail when `NO_FLIPPER=1` is set.
@@ -25,14 +27,15 @@ if linkage != nil
use_frameworks! :linkage => linkage.to_sym
end
-target 'AwesomeProject' do
+target 'ProofOfPassport' do
config = use_native_modules!
# Flags change depending on the env values.
flags = get_default_flags()
use_frameworks!
- pod 'NFCPassportReader', git:'https://github.com/yssf-io/NFCPassportReader.git'
+ pod 'NFCPassportReader', git: 'https://github.com/0xturboblitz/NFCPassportReader.git', commit: 'd36952eeaa2025ff1a9c9abbc244bd5ff53eb0f9'
+ pod 'MoproKit', :path => './MoproKit'
use_react_native!(
:path => config[:reactNativePath],
@@ -48,12 +51,20 @@ target 'AwesomeProject' do
:app_path => "#{Pod::Config.instance.installation_root}/.."
)
- target 'AwesomeProjectTests' do
+ target 'ProofOfPassportTests' do
inherit! :complete
# Pods for testing
end
post_install do |installer|
+ installer.generated_projects.each do |project|
+ project.targets.each do |target|
+ target.build_configurations.each do |config|
+ config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '13.0'
+ end
+ end
+ end
+
# https://github.com/facebook/react-native/blob/main/packages/react-native/scripts/react_native_pods.rb#L197-L202
react_native_post_install(
installer,
diff --git a/app/ios/Podfile.lock b/app/ios/Podfile.lock
index 782f38982..afdcabe3b 100644
--- a/app/ios/Podfile.lock
+++ b/app/ios/Podfile.lock
@@ -11,7 +11,8 @@ PODS:
- ReactCommon/turbomodule/core (= 0.72.3)
- fmt (6.2.1)
- glog (0.3.5)
- - NFCPassportReader (2.0.2):
+ - MoproKit (0.1.0)
+ - NFCPassportReader (2.0.3):
- OpenSSL-Universal (= 1.1.1100)
- OpenSSL-Universal (1.1.1100)
- RCT-Folly (2021.07.22.00):
@@ -390,7 +391,7 @@ PODS:
- React-jsi (= 0.72.3)
- React-logger (= 0.72.3)
- React-perflogger (= 0.72.3)
- - RNFS (2.20.0):
+ - RNSVG (13.4.0):
- React-Core
- SocketRocket (0.6.1)
- Yoga (1.14.0)
@@ -401,7 +402,8 @@ DEPENDENCIES:
- FBLazyVector (from `../node_modules/react-native/Libraries/FBLazyVector`)
- FBReactNativeSpec (from `../node_modules/react-native/React/FBReactNativeSpec`)
- glog (from `../node_modules/react-native/third-party-podspecs/glog.podspec`)
- - NFCPassportReader (from `https://github.com/yssf-io/NFCPassportReader.git`)
+ - MoproKit (from `./MoproKit`)
+ - NFCPassportReader (from `https://github.com/0xturboblitz/NFCPassportReader.git`, commit `d36952eeaa2025ff1a9c9abbc244bd5ff53eb0f9`)
- RCT-Folly (from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`)
- RCTRequired (from `../node_modules/react-native/Libraries/RCTRequired`)
- RCTTypeSafety (from `../node_modules/react-native/Libraries/TypeSafety`)
@@ -435,7 +437,7 @@ DEPENDENCIES:
- React-runtimescheduler (from `../node_modules/react-native/ReactCommon/react/renderer/runtimescheduler`)
- React-utils (from `../node_modules/react-native/ReactCommon/react/utils`)
- ReactCommon/turbomodule/core (from `../node_modules/react-native/ReactCommon`)
- - RNFS (from `../node_modules/react-native-fs`)
+ - RNSVG (from `../node_modules/react-native-svg`)
- Yoga (from `../node_modules/react-native/ReactCommon/yoga`)
SPEC REPOS:
@@ -455,8 +457,11 @@ EXTERNAL SOURCES:
:path: "../node_modules/react-native/React/FBReactNativeSpec"
glog:
:podspec: "../node_modules/react-native/third-party-podspecs/glog.podspec"
+ MoproKit:
+ :path: "./MoproKit"
NFCPassportReader:
- :git: https://github.com/yssf-io/NFCPassportReader.git
+ :commit: d36952eeaa2025ff1a9c9abbc244bd5ff53eb0f9
+ :git: https://github.com/0xturboblitz/NFCPassportReader.git
RCT-Folly:
:podspec: "../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec"
RCTRequired:
@@ -521,15 +526,15 @@ EXTERNAL SOURCES:
:path: "../node_modules/react-native/ReactCommon/react/utils"
ReactCommon:
:path: "../node_modules/react-native/ReactCommon"
- RNFS:
- :path: "../node_modules/react-native-fs"
+ RNSVG:
+ :path: "../node_modules/react-native-svg"
Yoga:
:path: "../node_modules/react-native/ReactCommon/yoga"
CHECKOUT OPTIONS:
NFCPassportReader:
- :commit: 08f9874f1e3287c9a726225e1e9193ef2b194d93
- :git: https://github.com/yssf-io/NFCPassportReader.git
+ :commit: d36952eeaa2025ff1a9c9abbc244bd5ff53eb0f9
+ :git: https://github.com/0xturboblitz/NFCPassportReader.git
SPEC CHECKSUMS:
boost: 57d2868c099736d80fcd648bf211b4431e51a558
@@ -538,7 +543,8 @@ SPEC CHECKSUMS:
FBReactNativeSpec: c6bd9e179757b3c0ecf815864fae8032377903ef
fmt: ff9d55029c625d3757ed641535fd4a75fedc7ce9
glog: 04b94705f318337d7ead9e6d17c019bd9b1f6b1b
- NFCPassportReader: 09906a0f1940f09eea79c141cb5b53a19aa74bab
+ MoproKit: d1faf8f9495e8e84d085f6c4e57e36f951e6f07e
+ NFCPassportReader: a160b80e3df3b5325c13902f90405f5eef7520b3
OpenSSL-Universal: ebc357f1e6bc71fa463ccb2fe676756aff50e88c
RCT-Folly: 424b8c9a7a0b9ab2886ffe9c3b041ef628fd4fb1
RCTRequired: a2faf4bad4e438ca37b2040cb8f7799baa065c18
@@ -549,13 +555,13 @@ SPEC CHECKSUMS:
React-Core: 8293312ad137ea82fd2c29deb163dbc24aa4e00e
React-CoreModules: 32fab1d62416849a3b6dac6feff9d54e5ddc2d1e
React-cxxreact: 55d0f7cb6b4cc09ba9190797f1da87182d1a2fb6
- React-debug: 6c3d27a8aef6df933dff63b0f31fdcf2ad437718
+ React-debug: 7e61555c8158126c6cd98c3154381ad3821aaaca
React-jsc: 0db8e8cc2074d979c37ffa7b8d7c914833960497
React-jsi: 58677ff4848ceb6aeb9118fe03448a843ea5e16a
React-jsiexecutor: 2c15ba1bace70177492368d5180b564f165870fd
React-jsinspector: b511447170f561157547bc0bef3f169663860be7
React-logger: c5b527272d5f22eaa09bb3c3a690fee8f237ae95
- React-NativeModulesApple: a1c74fa3d7f0b1f93bbd4102061a93abfc8a739a
+ React-NativeModulesApple: 0438665fc7473be6edc496e823e6ea0b0537b46c
React-perflogger: 6bd153e776e6beed54c56b0847e1220a3ff92ba5
React-RCTActionSheet: c0b62af44e610e69d9a2049a682f5dba4e9dff17
React-RCTAnimation: fe7005136b58f58871cab2f70732343b6e330d30
@@ -569,13 +575,13 @@ SPEC CHECKSUMS:
React-RCTVibration: ea3a68a49873a54ced927c90923fc6932baf344a
React-rncore: 9672a017af4a7da7495d911f0b690cbcae9dd18d
React-runtimeexecutor: 369ae9bb3f83b65201c0c8f7d50b72280b5a1dbc
- React-runtimescheduler: 5c392d612fffa213b673e651f886ead35995e262
- React-utils: 2589af83a714e02813d10a4c5fc064a6832c006b
- ReactCommon: a34545a02528203cee0839eeb01d754e8c4ad948
- RNFS: 4ac0f0ea233904cb798630b3c077808c06931688
+ React-runtimescheduler: ec1066a4f2d1152eb1bc3fb61d69376b3bc0dde0
+ React-utils: d55ba834beb39f01b0b470ae43478c0a3a024abe
+ ReactCommon: 68e3a815fbb69af3bb4196e04c6ae7abb306e7a8
+ RNSVG: 07dbd870b0dcdecc99b3a202fa37c8ca163caec2
SocketRocket: f32cd54efbe0f095c4d7594881e52619cfe80b17
Yoga: 8796b55dba14d7004f980b54bcc9833ee45b28ce
-PODFILE CHECKSUM: ef3dd3fed039eab5043d469e8f98dbcd0de8a7d5
+PODFILE CHECKSUM: d401e6efe0c933985349c8c115c7edca8fef3182
-COCOAPODS: 1.12.1
+COCOAPODS: 1.14.3
diff --git a/app/ios/AwesomeProject-Bridging-Header.h b/app/ios/ProofOfPassport-Bridging-Header.h
similarity index 100%
rename from app/ios/AwesomeProject-Bridging-Header.h
rename to app/ios/ProofOfPassport-Bridging-Header.h
diff --git a/app/ios/AwesomeProject.xcodeproj/project.pbxproj b/app/ios/ProofOfPassport.xcodeproj/project.pbxproj
similarity index 65%
rename from app/ios/AwesomeProject.xcodeproj/project.pbxproj
rename to app/ios/ProofOfPassport.xcodeproj/project.pbxproj
index 1db696f46..b9f442f7f 100644
--- a/app/ios/AwesomeProject.xcodeproj/project.pbxproj
+++ b/app/ios/ProofOfPassport.xcodeproj/project.pbxproj
@@ -7,16 +7,21 @@
objects = {
/* Begin PBXBuildFile section */
- 00E356F31AD99517003FC87E /* AwesomeProjectTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* AwesomeProjectTests.m */; };
+ 00E356F31AD99517003FC87E /* ProofOfPassportTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* ProofOfPassportTests.m */; };
+ 057DFC5F2B56DC0D003D24A3 /* libmopro_ffi.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 057DFC5E2B56DC0D003D24A3 /* libmopro_ffi.a */; };
+ 05BD9DCC2B548AA900823023 /* MoproKit in Resources */ = {isa = PBXBuildFile; fileRef = 05BD9DCB2B548AA900823023 /* MoproKit */; };
+ 05BD9DCE2B554FA300823023 /* libmopro_ffi.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 05BD9DCD2B554FA300823023 /* libmopro_ffi.a */; };
+ 05EDEDC62B52D25D00AA51AD /* Prover.m in Sources */ = {isa = PBXBuildFile; fileRef = 05EDEDC42B52D25D00AA51AD /* Prover.m */; };
+ 05EDEDC72B52D25D00AA51AD /* Prover.swift in Sources */ = {isa = PBXBuildFile; fileRef = 05EDEDC52B52D25D00AA51AD /* Prover.swift */; };
+ 0651723A94C70A2B31E3E4F8 /* Pods_ProofOfPassport.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAAF621B99F62C9ED35AA07 /* Pods_ProofOfPassport.framework */; };
13B07FBC1A68108700A75B9A /* AppDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.mm */; };
13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; };
13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; };
- 1ADA5CBFFFB043C12B3C4011 /* Pods_AwesomeProject.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9F81894AE401F61E2393104D /* Pods_AwesomeProject.framework */; };
+ 75E785E6A486EA107852C8A6 /* Pods_ProofOfPassport_ProofOfPassportTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CFAE0EE7E1942128592D0CC4 /* Pods_ProofOfPassport_ProofOfPassportTests.framework */; };
81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */; };
905B70052A72767900AFA232 /* PassportReader.swift in Sources */ = {isa = PBXBuildFile; fileRef = 905B70042A72767900AFA232 /* PassportReader.swift */; };
905B70072A72774000AFA232 /* PassportReader.m in Sources */ = {isa = PBXBuildFile; fileRef = 905B70062A72774000AFA232 /* PassportReader.m */; };
905B700B2A72A5E900AFA232 /* masterList.pem in Resources */ = {isa = PBXBuildFile; fileRef = 905B700A2A72A5E900AFA232 /* masterList.pem */; };
- D5B4CD952178B51C14F77614 /* Pods_AwesomeProject_AwesomeProjectTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 455B3F561C1D3D833AB15B26 /* Pods_AwesomeProject_AwesomeProjectTests.framework */; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
@@ -25,32 +30,38 @@
containerPortal = 83CBB9F71A601CBA00E9B192 /* Project object */;
proxyType = 1;
remoteGlobalIDString = 13B07F861A680F5B00A75B9A;
- remoteInfo = AwesomeProject;
+ remoteInfo = ProofOfPassport;
};
/* End PBXContainerItemProxy section */
/* Begin PBXFileReference section */
- 00E356EE1AD99517003FC87E /* AwesomeProjectTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = AwesomeProjectTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
+ 00E356EE1AD99517003FC87E /* ProofOfPassportTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ProofOfPassportTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
00E356F11AD99517003FC87E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
- 00E356F21AD99517003FC87E /* AwesomeProjectTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AwesomeProjectTests.m; sourceTree = ""; };
- 0D05C085F8CBAC104F72E160 /* Pods-AwesomeProject-AwesomeProjectTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-AwesomeProject-AwesomeProjectTests.release.xcconfig"; path = "Target Support Files/Pods-AwesomeProject-AwesomeProjectTests/Pods-AwesomeProject-AwesomeProjectTests.release.xcconfig"; sourceTree = ""; };
- 13B07F961A680F5B00A75B9A /* AwesomeProject.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = AwesomeProject.app; sourceTree = BUILT_PRODUCTS_DIR; };
- 13B07FAF1A68108700A75B9A /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = AwesomeProject/AppDelegate.h; sourceTree = ""; };
- 13B07FB01A68108700A75B9A /* AppDelegate.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = AppDelegate.mm; path = AwesomeProject/AppDelegate.mm; sourceTree = ""; };
- 13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = AwesomeProject/Images.xcassets; sourceTree = ""; };
- 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = AwesomeProject/Info.plist; sourceTree = ""; };
- 13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = AwesomeProject/main.m; sourceTree = ""; };
- 26A432E0434B89485C7E3765 /* Pods-AwesomeProject.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-AwesomeProject.debug.xcconfig"; path = "Target Support Files/Pods-AwesomeProject/Pods-AwesomeProject.debug.xcconfig"; sourceTree = ""; };
- 455B3F561C1D3D833AB15B26 /* Pods_AwesomeProject_AwesomeProjectTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_AwesomeProject_AwesomeProjectTests.framework; sourceTree = BUILT_PRODUCTS_DIR; };
- 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = LaunchScreen.storyboard; path = AwesomeProject/LaunchScreen.storyboard; sourceTree = ""; };
- 905B70032A72767800AFA232 /* AwesomeProject-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "AwesomeProject-Bridging-Header.h"; sourceTree = ""; };
+ 00E356F21AD99517003FC87E /* ProofOfPassportTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ProofOfPassportTests.m; sourceTree = ""; };
+ 057DFC5E2B56DC0D003D24A3 /* libmopro_ffi.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libmopro_ffi.a; path = MoproKit/Libs/libmopro_ffi.a; sourceTree = ""; };
+ 05A0773D2B5333CE0037E489 /* MoproKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = MoproKit.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ 05BD9DCB2B548AA900823023 /* MoproKit */ = {isa = PBXFileReference; lastKnownFileType = folder; path = MoproKit; sourceTree = ""; };
+ 05BD9DCD2B554FA300823023 /* libmopro_ffi.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libmopro_ffi.a; path = MoproKit/Libs/libmopro_ffi.a; sourceTree = ""; };
+ 05EDEDC42B52D25D00AA51AD /* Prover.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Prover.m; sourceTree = ""; };
+ 05EDEDC52B52D25D00AA51AD /* Prover.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Prover.swift; sourceTree = ""; };
+ 13B07F961A680F5B00A75B9A /* ProofOfPassport.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = ProofOfPassport.app; sourceTree = BUILT_PRODUCTS_DIR; };
+ 13B07FAF1A68108700A75B9A /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = ProofOfPassport/AppDelegate.h; sourceTree = ""; };
+ 13B07FB01A68108700A75B9A /* AppDelegate.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = AppDelegate.mm; path = ProofOfPassport/AppDelegate.mm; sourceTree = ""; };
+ 13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = ProofOfPassport/Images.xcassets; sourceTree = ""; };
+ 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = ProofOfPassport/Info.plist; sourceTree = ""; };
+ 13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = ProofOfPassport/main.m; sourceTree = ""; };
+ 22FDF2ADA5789E09558ADB4E /* Pods-ProofOfPassport-ProofOfPassportTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ProofOfPassport-ProofOfPassportTests.release.xcconfig"; path = "Target Support Files/Pods-ProofOfPassport-ProofOfPassportTests/Pods-ProofOfPassport-ProofOfPassportTests.release.xcconfig"; sourceTree = ""; };
+ 2B01EC4981C171CA304E6D2B /* Pods-ProofOfPassport.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ProofOfPassport.release.xcconfig"; path = "Target Support Files/Pods-ProofOfPassport/Pods-ProofOfPassport.release.xcconfig"; sourceTree = ""; };
+ 3DAAF621B99F62C9ED35AA07 /* Pods_ProofOfPassport.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_ProofOfPassport.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = LaunchScreen.storyboard; path = ProofOfPassport/LaunchScreen.storyboard; sourceTree = ""; };
+ 905B70032A72767800AFA232 /* ProofOfPassport-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "ProofOfPassport-Bridging-Header.h"; sourceTree = ""; };
905B70042A72767900AFA232 /* PassportReader.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PassportReader.swift; sourceTree = ""; };
905B70062A72774000AFA232 /* PassportReader.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PassportReader.m; sourceTree = ""; };
- 905B70082A729CD400AFA232 /* AwesomeProject.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; name = AwesomeProject.entitlements; path = AwesomeProject/AwesomeProject.entitlements; sourceTree = ""; };
- 905B700A2A72A5E900AFA232 /* masterList.pem */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = masterList.pem; path = AwesomeProject/masterList.pem; sourceTree = ""; };
- 9F81894AE401F61E2393104D /* Pods_AwesomeProject.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_AwesomeProject.framework; sourceTree = BUILT_PRODUCTS_DIR; };
- A1B7A34F7E4C3F2D19C5D973 /* Pods-AwesomeProject.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-AwesomeProject.release.xcconfig"; path = "Target Support Files/Pods-AwesomeProject/Pods-AwesomeProject.release.xcconfig"; sourceTree = ""; };
- BCC787E0FDFB928F9DA23E3F /* Pods-AwesomeProject-AwesomeProjectTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-AwesomeProject-AwesomeProjectTests.debug.xcconfig"; path = "Target Support Files/Pods-AwesomeProject-AwesomeProjectTests/Pods-AwesomeProject-AwesomeProjectTests.debug.xcconfig"; sourceTree = ""; };
+ 905B70082A729CD400AFA232 /* ProofOfPassport.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; name = ProofOfPassport.entitlements; path = ProofOfPassport/ProofOfPassport.entitlements; sourceTree = ""; };
+ 905B700A2A72A5E900AFA232 /* masterList.pem */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = masterList.pem; path = ProofOfPassport/masterList.pem; sourceTree = ""; };
+ 918081ECA23C8F232594E334 /* Pods-ProofOfPassport-ProofOfPassportTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ProofOfPassport-ProofOfPassportTests.debug.xcconfig"; path = "Target Support Files/Pods-ProofOfPassport-ProofOfPassportTests/Pods-ProofOfPassport-ProofOfPassportTests.debug.xcconfig"; sourceTree = ""; };
+ CE0B085EC65BAFEB61DD9C49 /* Pods-ProofOfPassport.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ProofOfPassport.debug.xcconfig"; path = "Target Support Files/Pods-ProofOfPassport/Pods-ProofOfPassport.debug.xcconfig"; sourceTree = ""; };
+ CFAE0EE7E1942128592D0CC4 /* Pods_ProofOfPassport_ProofOfPassportTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_ProofOfPassport_ProofOfPassportTests.framework; sourceTree = BUILT_PRODUCTS_DIR; };
ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; };
/* End PBXFileReference section */
@@ -59,7 +70,7 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
- D5B4CD952178B51C14F77614 /* Pods_AwesomeProject_AwesomeProjectTests.framework in Frameworks */,
+ 75E785E6A486EA107852C8A6 /* Pods_ProofOfPassport_ProofOfPassportTests.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -67,20 +78,22 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
- 1ADA5CBFFFB043C12B3C4011 /* Pods_AwesomeProject.framework in Frameworks */,
+ 0651723A94C70A2B31E3E4F8 /* Pods_ProofOfPassport.framework in Frameworks */,
+ 05BD9DCE2B554FA300823023 /* libmopro_ffi.a in Frameworks */,
+ 057DFC5F2B56DC0D003D24A3 /* libmopro_ffi.a in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
- 00E356EF1AD99517003FC87E /* AwesomeProjectTests */ = {
+ 00E356EF1AD99517003FC87E /* ProofOfPassportTests */ = {
isa = PBXGroup;
children = (
- 00E356F21AD99517003FC87E /* AwesomeProjectTests.m */,
+ 00E356F21AD99517003FC87E /* ProofOfPassportTests.m */,
00E356F01AD99517003FC87E /* Supporting Files */,
);
- path = AwesomeProjectTests;
+ path = ProofOfPassportTests;
sourceTree = "";
};
00E356F01AD99517003FC87E /* Supporting Files */ = {
@@ -91,30 +104,36 @@
name = "Supporting Files";
sourceTree = "";
};
- 13B07FAE1A68108700A75B9A /* AwesomeProject */ = {
+ 13B07FAE1A68108700A75B9A /* ProofOfPassport */ = {
isa = PBXGroup;
children = (
+ 05EDEDC42B52D25D00AA51AD /* Prover.m */,
+ 05EDEDC52B52D25D00AA51AD /* Prover.swift */,
905B700A2A72A5E900AFA232 /* masterList.pem */,
- 905B70082A729CD400AFA232 /* AwesomeProject.entitlements */,
+ 905B70082A729CD400AFA232 /* ProofOfPassport.entitlements */,
+ 057DFC5E2B56DC0D003D24A3 /* libmopro_ffi.a */,
13B07FAF1A68108700A75B9A /* AppDelegate.h */,
+ 05BD9DCB2B548AA900823023 /* MoproKit */,
13B07FB01A68108700A75B9A /* AppDelegate.mm */,
13B07FB51A68108700A75B9A /* Images.xcassets */,
13B07FB61A68108700A75B9A /* Info.plist */,
+ 05BD9DCD2B554FA300823023 /* libmopro_ffi.a */,
81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */,
13B07FB71A68108700A75B9A /* main.m */,
905B70042A72767900AFA232 /* PassportReader.swift */,
- 905B70032A72767800AFA232 /* AwesomeProject-Bridging-Header.h */,
+ 905B70032A72767800AFA232 /* ProofOfPassport-Bridging-Header.h */,
905B70062A72774000AFA232 /* PassportReader.m */,
);
- name = AwesomeProject;
+ name = ProofOfPassport;
sourceTree = "";
};
2D16E6871FA4F8E400B85C8A /* Frameworks */ = {
isa = PBXGroup;
children = (
+ 05A0773D2B5333CE0037E489 /* MoproKit.framework */,
ED297162215061F000B7C4FE /* JavaScriptCore.framework */,
- 9F81894AE401F61E2393104D /* Pods_AwesomeProject.framework */,
- 455B3F561C1D3D833AB15B26 /* Pods_AwesomeProject_AwesomeProjectTests.framework */,
+ 3DAAF621B99F62C9ED35AA07 /* Pods_ProofOfPassport.framework */,
+ CFAE0EE7E1942128592D0CC4 /* Pods_ProofOfPassport_ProofOfPassportTests.framework */,
);
name = Frameworks;
sourceTree = "";
@@ -129,9 +148,9 @@
83CBB9F61A601CBA00E9B192 = {
isa = PBXGroup;
children = (
- 13B07FAE1A68108700A75B9A /* AwesomeProject */,
+ 13B07FAE1A68108700A75B9A /* ProofOfPassport */,
832341AE1AAA6A7D00B99B32 /* Libraries */,
- 00E356EF1AD99517003FC87E /* AwesomeProjectTests */,
+ 00E356EF1AD99517003FC87E /* ProofOfPassportTests */,
83CBBA001A601CBA00E9B192 /* Products */,
2D16E6871FA4F8E400B85C8A /* Frameworks */,
BBD78D7AC51CEA395F1C20DB /* Pods */,
@@ -144,8 +163,8 @@
83CBBA001A601CBA00E9B192 /* Products */ = {
isa = PBXGroup;
children = (
- 13B07F961A680F5B00A75B9A /* AwesomeProject.app */,
- 00E356EE1AD99517003FC87E /* AwesomeProjectTests.xctest */,
+ 13B07F961A680F5B00A75B9A /* ProofOfPassport.app */,
+ 00E356EE1AD99517003FC87E /* ProofOfPassportTests.xctest */,
);
name = Products;
sourceTree = "";
@@ -153,10 +172,10 @@
BBD78D7AC51CEA395F1C20DB /* Pods */ = {
isa = PBXGroup;
children = (
- 26A432E0434B89485C7E3765 /* Pods-AwesomeProject.debug.xcconfig */,
- A1B7A34F7E4C3F2D19C5D973 /* Pods-AwesomeProject.release.xcconfig */,
- BCC787E0FDFB928F9DA23E3F /* Pods-AwesomeProject-AwesomeProjectTests.debug.xcconfig */,
- 0D05C085F8CBAC104F72E160 /* Pods-AwesomeProject-AwesomeProjectTests.release.xcconfig */,
+ CE0B085EC65BAFEB61DD9C49 /* Pods-ProofOfPassport.debug.xcconfig */,
+ 2B01EC4981C171CA304E6D2B /* Pods-ProofOfPassport.release.xcconfig */,
+ 918081ECA23C8F232594E334 /* Pods-ProofOfPassport-ProofOfPassportTests.debug.xcconfig */,
+ 22FDF2ADA5789E09558ADB4E /* Pods-ProofOfPassport-ProofOfPassportTests.release.xcconfig */,
);
path = Pods;
sourceTree = "";
@@ -164,45 +183,45 @@
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
- 00E356ED1AD99517003FC87E /* AwesomeProjectTests */ = {
+ 00E356ED1AD99517003FC87E /* ProofOfPassportTests */ = {
isa = PBXNativeTarget;
- buildConfigurationList = 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "AwesomeProjectTests" */;
+ buildConfigurationList = 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "ProofOfPassportTests" */;
buildPhases = (
- 2CEEDB4F696405D4E4B0CA04 /* [CP] Check Pods Manifest.lock */,
+ 30EF76FEB71F2239D12E988C /* [CP] Check Pods Manifest.lock */,
00E356EA1AD99517003FC87E /* Sources */,
00E356EB1AD99517003FC87E /* Frameworks */,
00E356EC1AD99517003FC87E /* Resources */,
- 4786C99960C198CBC0841652 /* [CP] Embed Pods Frameworks */,
+ 3407A7677F910117EC6ADA91 /* [CP] Embed Pods Frameworks */,
);
buildRules = (
);
dependencies = (
00E356F51AD99517003FC87E /* PBXTargetDependency */,
);
- name = AwesomeProjectTests;
- productName = AwesomeProjectTests;
- productReference = 00E356EE1AD99517003FC87E /* AwesomeProjectTests.xctest */;
+ name = ProofOfPassportTests;
+ productName = ProofOfPassportTests;
+ productReference = 00E356EE1AD99517003FC87E /* ProofOfPassportTests.xctest */;
productType = "com.apple.product-type.bundle.unit-test";
};
- 13B07F861A680F5B00A75B9A /* AwesomeProject */ = {
+ 13B07F861A680F5B00A75B9A /* ProofOfPassport */ = {
isa = PBXNativeTarget;
- buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "AwesomeProject" */;
+ buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "ProofOfPassport" */;
buildPhases = (
- 141C3B9CB8F4134662795CF4 /* [CP] Check Pods Manifest.lock */,
+ CC47E87AFD57D7866D1463AC /* [CP] Check Pods Manifest.lock */,
FD10A7F022414F080027D42C /* Start Packager */,
13B07F871A680F5B00A75B9A /* Sources */,
13B07F8C1A680F5B00A75B9A /* Frameworks */,
13B07F8E1A680F5B00A75B9A /* Resources */,
00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */,
- FAF2988CBB80C1B370711DF7 /* [CP] Embed Pods Frameworks */,
+ A8CC45FE941CED993895A21C /* [CP] Embed Pods Frameworks */,
);
buildRules = (
);
dependencies = (
);
- name = AwesomeProject;
- productName = AwesomeProject;
- productReference = 13B07F961A680F5B00A75B9A /* AwesomeProject.app */;
+ name = ProofOfPassport;
+ productName = ProofOfPassport;
+ productReference = 13B07F961A680F5B00A75B9A /* ProofOfPassport.app */;
productType = "com.apple.product-type.application";
};
/* End PBXNativeTarget section */
@@ -222,7 +241,7 @@
};
};
};
- buildConfigurationList = 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "AwesomeProject" */;
+ buildConfigurationList = 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "ProofOfPassport" */;
compatibilityVersion = "Xcode 12.0";
developmentRegion = en;
hasScannedForEncodings = 0;
@@ -235,8 +254,8 @@
projectDirPath = "";
projectRoot = "";
targets = (
- 13B07F861A680F5B00A75B9A /* AwesomeProject */,
- 00E356ED1AD99517003FC87E /* AwesomeProjectTests */,
+ 13B07F861A680F5B00A75B9A /* ProofOfPassport */,
+ 00E356ED1AD99517003FC87E /* ProofOfPassportTests */,
);
};
/* End PBXProject section */
@@ -254,6 +273,7 @@
buildActionMask = 2147483647;
files = (
905B700B2A72A5E900AFA232 /* masterList.pem in Resources */,
+ 05BD9DCC2B548AA900823023 /* MoproKit in Resources */,
81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */,
13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */,
);
@@ -278,7 +298,7 @@
shellPath = /bin/sh;
shellScript = "set -e\n\nWITH_ENVIRONMENT=\"../node_modules/react-native/scripts/xcode/with-environment.sh\"\nREACT_NATIVE_XCODE=\"../node_modules/react-native/scripts/react-native-xcode.sh\"\n\n/bin/sh -c \"$WITH_ENVIRONMENT $REACT_NATIVE_XCODE\"\n";
};
- 141C3B9CB8F4134662795CF4 /* [CP] Check Pods Manifest.lock */ = {
+ 30EF76FEB71F2239D12E988C /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
@@ -293,14 +313,48 @@
outputFileListPaths = (
);
outputPaths = (
- "$(DERIVED_FILE_DIR)/Pods-AwesomeProject-checkManifestLockResult.txt",
+ "$(DERIVED_FILE_DIR)/Pods-ProofOfPassport-ProofOfPassportTests-checkManifestLockResult.txt",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
showEnvVarsInLog = 0;
};
- 2CEEDB4F696405D4E4B0CA04 /* [CP] Check Pods Manifest.lock */ = {
+ 3407A7677F910117EC6ADA91 /* [CP] Embed Pods Frameworks */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputFileListPaths = (
+ "${PODS_ROOT}/Target Support Files/Pods-ProofOfPassport-ProofOfPassportTests/Pods-ProofOfPassport-ProofOfPassportTests-frameworks-${CONFIGURATION}-input-files.xcfilelist",
+ );
+ name = "[CP] Embed Pods Frameworks";
+ outputFileListPaths = (
+ "${PODS_ROOT}/Target Support Files/Pods-ProofOfPassport-ProofOfPassportTests/Pods-ProofOfPassport-ProofOfPassportTests-frameworks-${CONFIGURATION}-output-files.xcfilelist",
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-ProofOfPassport-ProofOfPassportTests/Pods-ProofOfPassport-ProofOfPassportTests-frameworks.sh\"\n";
+ showEnvVarsInLog = 0;
+ };
+ A8CC45FE941CED993895A21C /* [CP] Embed Pods Frameworks */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputFileListPaths = (
+ "${PODS_ROOT}/Target Support Files/Pods-ProofOfPassport/Pods-ProofOfPassport-frameworks-${CONFIGURATION}-input-files.xcfilelist",
+ );
+ name = "[CP] Embed Pods Frameworks";
+ outputFileListPaths = (
+ "${PODS_ROOT}/Target Support Files/Pods-ProofOfPassport/Pods-ProofOfPassport-frameworks-${CONFIGURATION}-output-files.xcfilelist",
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-ProofOfPassport/Pods-ProofOfPassport-frameworks.sh\"\n";
+ showEnvVarsInLog = 0;
+ };
+ CC47E87AFD57D7866D1463AC /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
@@ -315,47 +369,13 @@
outputFileListPaths = (
);
outputPaths = (
- "$(DERIVED_FILE_DIR)/Pods-AwesomeProject-AwesomeProjectTests-checkManifestLockResult.txt",
+ "$(DERIVED_FILE_DIR)/Pods-ProofOfPassport-checkManifestLockResult.txt",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
showEnvVarsInLog = 0;
};
- 4786C99960C198CBC0841652 /* [CP] Embed Pods Frameworks */ = {
- isa = PBXShellScriptBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- inputFileListPaths = (
- "${PODS_ROOT}/Target Support Files/Pods-AwesomeProject-AwesomeProjectTests/Pods-AwesomeProject-AwesomeProjectTests-frameworks-${CONFIGURATION}-input-files.xcfilelist",
- );
- name = "[CP] Embed Pods Frameworks";
- outputFileListPaths = (
- "${PODS_ROOT}/Target Support Files/Pods-AwesomeProject-AwesomeProjectTests/Pods-AwesomeProject-AwesomeProjectTests-frameworks-${CONFIGURATION}-output-files.xcfilelist",
- );
- runOnlyForDeploymentPostprocessing = 0;
- shellPath = /bin/sh;
- shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-AwesomeProject-AwesomeProjectTests/Pods-AwesomeProject-AwesomeProjectTests-frameworks.sh\"\n";
- showEnvVarsInLog = 0;
- };
- FAF2988CBB80C1B370711DF7 /* [CP] Embed Pods Frameworks */ = {
- isa = PBXShellScriptBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- inputFileListPaths = (
- "${PODS_ROOT}/Target Support Files/Pods-AwesomeProject/Pods-AwesomeProject-frameworks-${CONFIGURATION}-input-files.xcfilelist",
- );
- name = "[CP] Embed Pods Frameworks";
- outputFileListPaths = (
- "${PODS_ROOT}/Target Support Files/Pods-AwesomeProject/Pods-AwesomeProject-frameworks-${CONFIGURATION}-output-files.xcfilelist",
- );
- runOnlyForDeploymentPostprocessing = 0;
- shellPath = /bin/sh;
- shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-AwesomeProject/Pods-AwesomeProject-frameworks.sh\"\n";
- showEnvVarsInLog = 0;
- };
FD10A7F022414F080027D42C /* Start Packager */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
@@ -382,7 +402,7 @@
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
- 00E356F31AD99517003FC87E /* AwesomeProjectTests.m in Sources */,
+ 00E356F31AD99517003FC87E /* ProofOfPassportTests.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -391,9 +411,11 @@
buildActionMask = 2147483647;
files = (
13B07FBC1A68108700A75B9A /* AppDelegate.mm in Sources */,
+ 05EDEDC72B52D25D00AA51AD /* Prover.swift in Sources */,
13B07FC11A68108700A75B9A /* main.m in Sources */,
905B70072A72774000AFA232 /* PassportReader.m in Sources */,
905B70052A72767900AFA232 /* PassportReader.swift in Sources */,
+ 05EDEDC62B52D25D00AA51AD /* Prover.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -402,7 +424,7 @@
/* Begin PBXTargetDependency section */
00E356F51AD99517003FC87E /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
- target = 13B07F861A680F5B00A75B9A /* AwesomeProject */;
+ target = 13B07F861A680F5B00A75B9A /* ProofOfPassport */;
targetProxy = 00E356F41AD99517003FC87E /* PBXContainerItemProxy */;
};
/* End PBXTargetDependency section */
@@ -410,7 +432,7 @@
/* Begin XCBuildConfiguration section */
00E356F61AD99517003FC87E /* Debug */ = {
isa = XCBuildConfiguration;
- baseConfigurationReference = BCC787E0FDFB928F9DA23E3F /* Pods-AwesomeProject-AwesomeProjectTests.debug.xcconfig */;
+ baseConfigurationReference = 918081ECA23C8F232594E334 /* Pods-ProofOfPassport-ProofOfPassportTests.debug.xcconfig */;
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
BUNDLE_LOADER = "$(TEST_HOST)";
@@ -418,7 +440,7 @@
"DEBUG=1",
"$(inherited)",
);
- INFOPLIST_FILE = AwesomeProjectTests/Info.plist;
+ INFOPLIST_FILE = ProofOfPassportTests/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 15.0;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
@@ -432,18 +454,18 @@
);
PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)";
PRODUCT_NAME = "$(TARGET_NAME)";
- TEST_HOST = "$(BUILT_PRODUCTS_DIR)/AwesomeProject.app/AwesomeProject";
+ TEST_HOST = "$(BUILT_PRODUCTS_DIR)/ProofOfPassport.app/ProofOfPassport";
};
name = Debug;
};
00E356F71AD99517003FC87E /* Release */ = {
isa = XCBuildConfiguration;
- baseConfigurationReference = 0D05C085F8CBAC104F72E160 /* Pods-AwesomeProject-AwesomeProjectTests.release.xcconfig */;
+ baseConfigurationReference = 22FDF2ADA5789E09558ADB4E /* Pods-ProofOfPassport-ProofOfPassportTests.release.xcconfig */;
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
BUNDLE_LOADER = "$(TEST_HOST)";
COPY_PHASE_STRIP = NO;
- INFOPLIST_FILE = AwesomeProjectTests/Info.plist;
+ INFOPLIST_FILE = ProofOfPassportTests/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 15.0;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
@@ -457,25 +479,32 @@
);
PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)";
PRODUCT_NAME = "$(TARGET_NAME)";
- TEST_HOST = "$(BUILT_PRODUCTS_DIR)/AwesomeProject.app/AwesomeProject";
+ TEST_HOST = "$(BUILT_PRODUCTS_DIR)/ProofOfPassport.app/ProofOfPassport";
};
name = Release;
};
13B07F941A680F5B00A75B9A /* Debug */ = {
isa = XCBuildConfiguration;
- baseConfigurationReference = 26A432E0434B89485C7E3765 /* Pods-AwesomeProject.debug.xcconfig */;
+ baseConfigurationReference = CE0B085EC65BAFEB61DD9C49 /* Pods-ProofOfPassport.debug.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
- CODE_SIGN_ENTITLEMENTS = AwesomeProject/AwesomeProject.entitlements;
+ CODE_SIGN_ENTITLEMENTS = ProofOfPassport/ProofOfPassport.entitlements;
CURRENT_PROJECT_VERSION = 1;
- DEVELOPMENT_TEAM = G46U6J456T;
+ DEVELOPMENT_TEAM = 5B29R5LYHQ;
ENABLE_BITCODE = NO;
- INFOPLIST_FILE = AwesomeProject/Info.plist;
+ INFOPLIST_FILE = ProofOfPassport/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 15.0;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
+ "$(PROJECT_DIR)/../../cargo/target/universal/release",
+ );
+ LIBRARY_SEARCH_PATHS = (
+ "$(SDKROOT)/usr/lib/swift",
+ "$(inherited)",
+ "$(PROJECT_DIR)",
+ "$(PROJECT_DIR)/MoproKit/Libs",
);
MARKETING_VERSION = 1.0;
OTHER_LDFLAGS = (
@@ -483,9 +512,8 @@
"-ObjC",
"-lc++",
);
- PRODUCT_BUNDLE_IDENTIFIER = com.warroom.nfcios;
- PRODUCT_NAME = AwesomeProject;
- SWIFT_OBJC_BRIDGING_HEADER = "AwesomeProject-Bridging-Header.h";
+ PRODUCT_BUNDLE_IDENTIFIER = com.warroom.proofofpassport;
+ PRODUCT_NAME = ProofOfPassport;
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
SWIFT_VERSION = 5.0;
VERSIONING_SYSTEM = "apple-generic";
@@ -494,28 +522,33 @@
};
13B07F951A680F5B00A75B9A /* Release */ = {
isa = XCBuildConfiguration;
- baseConfigurationReference = A1B7A34F7E4C3F2D19C5D973 /* Pods-AwesomeProject.release.xcconfig */;
+ baseConfigurationReference = 2B01EC4981C171CA304E6D2B /* Pods-ProofOfPassport.release.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
- CODE_SIGN_ENTITLEMENTS = AwesomeProject/AwesomeProject.entitlements;
+ CODE_SIGN_ENTITLEMENTS = ProofOfPassport/ProofOfPassport.entitlements;
CURRENT_PROJECT_VERSION = 1;
- DEVELOPMENT_TEAM = G46U6J456T;
- INFOPLIST_FILE = AwesomeProject/Info.plist;
+ DEVELOPMENT_TEAM = 5B29R5LYHQ;
+ INFOPLIST_FILE = ProofOfPassport/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 15.0;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
+ LIBRARY_SEARCH_PATHS = (
+ "$(SDKROOT)/usr/lib/swift",
+ "$(inherited)",
+ "$(PROJECT_DIR)",
+ "$(PROJECT_DIR)/MoproKit/Libs",
+ );
MARKETING_VERSION = 1.0;
OTHER_LDFLAGS = (
"$(inherited)",
"-ObjC",
"-lc++",
);
- PRODUCT_BUNDLE_IDENTIFIER = com.warroom.nfcios;
- PRODUCT_NAME = AwesomeProject;
- SWIFT_OBJC_BRIDGING_HEADER = "AwesomeProject-Bridging-Header.h";
+ PRODUCT_BUNDLE_IDENTIFIER = com.warroom.proofofpassport;
+ PRODUCT_NAME = ProofOfPassport;
SWIFT_VERSION = 5.0;
VERSIONING_SYSTEM = "apple-generic";
};
@@ -679,7 +712,7 @@
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
- 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "AwesomeProjectTests" */ = {
+ 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "ProofOfPassportTests" */ = {
isa = XCConfigurationList;
buildConfigurations = (
00E356F61AD99517003FC87E /* Debug */,
@@ -688,7 +721,7 @@
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
- 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "AwesomeProject" */ = {
+ 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "ProofOfPassport" */ = {
isa = XCConfigurationList;
buildConfigurations = (
13B07F941A680F5B00A75B9A /* Debug */,
@@ -697,7 +730,7 @@
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
- 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "AwesomeProject" */ = {
+ 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "ProofOfPassport" */ = {
isa = XCConfigurationList;
buildConfigurations = (
83CBBA201A601CBA00E9B192 /* Debug */,
diff --git a/app/ios/AwesomeProject.xcodeproj/xcshareddata/xcschemes/AwesomeProject.xcscheme b/app/ios/ProofOfPassport.xcodeproj/xcshareddata/xcschemes/ProofOfPassport.xcscheme
similarity index 78%
rename from app/ios/AwesomeProject.xcodeproj/xcshareddata/xcschemes/AwesomeProject.xcscheme
rename to app/ios/ProofOfPassport.xcodeproj/xcshareddata/xcschemes/ProofOfPassport.xcscheme
index 20f13d11a..80f5bc148 100644
--- a/app/ios/AwesomeProject.xcodeproj/xcshareddata/xcschemes/AwesomeProject.xcscheme
+++ b/app/ios/ProofOfPassport.xcodeproj/xcshareddata/xcschemes/ProofOfPassport.xcscheme
@@ -15,9 +15,9 @@
+ BuildableName = "ProofOfPassport.app"
+ BlueprintName = "ProofOfPassport"
+ ReferencedContainer = "container:ProofOfPassport.xcodeproj">
@@ -33,9 +33,9 @@
+ BuildableName = "ProofOfPassportTests.xctest"
+ BlueprintName = "ProofOfPassportTests"
+ ReferencedContainer = "container:ProofOfPassport.xcodeproj">
@@ -55,9 +55,9 @@
+ BuildableName = "ProofOfPassport.app"
+ BlueprintName = "ProofOfPassport"
+ ReferencedContainer = "container:ProofOfPassport.xcodeproj">
@@ -72,9 +72,9 @@
+ BuildableName = "ProofOfPassport.app"
+ BlueprintName = "ProofOfPassport"
+ ReferencedContainer = "container:ProofOfPassport.xcodeproj">
diff --git a/app/ios/AwesomeProject.xcworkspace/contents.xcworkspacedata b/app/ios/ProofOfPassport.xcworkspace/contents.xcworkspacedata
similarity index 77%
rename from app/ios/AwesomeProject.xcworkspace/contents.xcworkspacedata
rename to app/ios/ProofOfPassport.xcworkspace/contents.xcworkspacedata
index 575b8628b..74485f6f0 100644
--- a/app/ios/AwesomeProject.xcworkspace/contents.xcworkspacedata
+++ b/app/ios/ProofOfPassport.xcworkspace/contents.xcworkspacedata
@@ -2,7 +2,7 @@
+ location = "group:ProofOfPassport.xcodeproj">
diff --git a/app/ios/AwesomeProject.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/app/ios/ProofOfPassport.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
similarity index 100%
rename from app/ios/AwesomeProject.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
rename to app/ios/ProofOfPassport.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
diff --git a/app/ios/AwesomeProject/AppDelegate.h b/app/ios/ProofOfPassport/AppDelegate.h
similarity index 100%
rename from app/ios/AwesomeProject/AppDelegate.h
rename to app/ios/ProofOfPassport/AppDelegate.h
diff --git a/app/ios/AwesomeProject/AppDelegate.mm b/app/ios/ProofOfPassport/AppDelegate.mm
similarity index 94%
rename from app/ios/AwesomeProject/AppDelegate.mm
rename to app/ios/ProofOfPassport/AppDelegate.mm
index 2cacdcb6e..9fd251767 100644
--- a/app/ios/AwesomeProject/AppDelegate.mm
+++ b/app/ios/ProofOfPassport/AppDelegate.mm
@@ -6,7 +6,7 @@
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
- self.moduleName = @"AwesomeProject";
+ self.moduleName = @"ProofOfPassport";
// You can add your custom initial props in the dictionary below.
// They will be passed down to the ViewController used by React Native.
self.initialProps = @{};
diff --git a/app/ios/AwesomeProject/Images.xcassets/AppIcon.appiconset/Contents.json b/app/ios/ProofOfPassport/Images.xcassets/AppIcon.appiconset/Contents.json
similarity index 100%
rename from app/ios/AwesomeProject/Images.xcassets/AppIcon.appiconset/Contents.json
rename to app/ios/ProofOfPassport/Images.xcassets/AppIcon.appiconset/Contents.json
diff --git a/app/ios/AwesomeProject/Images.xcassets/Contents.json b/app/ios/ProofOfPassport/Images.xcassets/Contents.json
similarity index 100%
rename from app/ios/AwesomeProject/Images.xcassets/Contents.json
rename to app/ios/ProofOfPassport/Images.xcassets/Contents.json
diff --git a/app/ios/AwesomeProject/Info.plist b/app/ios/ProofOfPassport/Info.plist
similarity index 86%
rename from app/ios/AwesomeProject/Info.plist
rename to app/ios/ProofOfPassport/Info.plist
index b3165cf22..cf7bd77c7 100644
--- a/app/ios/AwesomeProject/Info.plist
+++ b/app/ios/ProofOfPassport/Info.plist
@@ -5,7 +5,7 @@
CFBundleDevelopmentRegion
en
CFBundleDisplayName
- AwesomeProject
+ ProofOfPassport
CFBundleExecutable
$(EXECUTABLE_NAME)
CFBundleIdentifier
@@ -46,11 +46,11 @@
UIViewControllerBasedStatusBarAppearance
- com.apple.developer.nfc.readersession.iso7816.select-identifiers
-
- A0000002471001
- A0000002472001
- 00000000000000
-
+ com.apple.developer.nfc.readersession.iso7816.select-identifiers
+
+ A0000002471001
+ A0000002472001
+ 00000000000000
+
diff --git a/app/ios/NFCPassportReader/LaunchScreen.storyboard b/app/ios/ProofOfPassport/LaunchScreen.storyboard
similarity index 63%
rename from app/ios/NFCPassportReader/LaunchScreen.storyboard
rename to app/ios/ProofOfPassport/LaunchScreen.storyboard
index 1ba1a6464..029abec98 100644
--- a/app/ios/NFCPassportReader/LaunchScreen.storyboard
+++ b/app/ios/ProofOfPassport/LaunchScreen.storyboard
@@ -1,10 +1,11 @@
-
+
-
+
+
@@ -16,27 +17,19 @@
-
-
+
+
-
-
-
-
@@ -44,4 +37,9 @@
+
+
+
+
+
diff --git a/app/ios/AwesomeProject/AwesomeProject.entitlements b/app/ios/ProofOfPassport/ProofOfPassport.entitlements
similarity index 100%
rename from app/ios/AwesomeProject/AwesomeProject.entitlements
rename to app/ios/ProofOfPassport/ProofOfPassport.entitlements
diff --git a/app/ios/AwesomeProject/main.m b/app/ios/ProofOfPassport/main.m
similarity index 100%
rename from app/ios/AwesomeProject/main.m
rename to app/ios/ProofOfPassport/main.m
diff --git a/app/ios/ProofOfPassport/masterList.pem b/app/ios/ProofOfPassport/masterList.pem
new file mode 100644
index 000000000..bf2ee5c5a
--- /dev/null
+++ b/app/ios/ProofOfPassport/masterList.pem
@@ -0,0 +1,24033 @@
+-----BEGIN CERTIFICATE-----
+MIICmTCCAj6gAwIBAgICJxswCwYHKoZIzj0EAQUAMEMxCzAJBgNVBAYTAkxUMRcw
+FQYDVQQKDA5BRElDIHVuZGVyIE1PSTENMAsGA1UEAwwEQ1NDQTEMMAoGA1UEBRMD
+MDAxMB4XDTA3MDIyMTE0NDgzOFoXDTIwMTAyMTEzNDgzOFowQzELMAkGA1UEBhMC
+TFQxFzAVBgNVBAoMDkFESUMgdW5kZXIgTU9JMQ0wCwYDVQQDDARDU0NBMQwwCgYD
+VQQFEwMwMDEwggEzMIHsBgcqhkjOPQIBMIHgAgEBMCwGByqGSM49AQECIQCp+1fb
+oe6pvD5mCpCdg41ybjv2I9UmICggE0gdH25TdzBEBCB9Wgl1/CwwV+72dTBBev/n
++4BVwSbcXGzpSktE8zC12QQgJtxcbOlKS0TzMLXZu9d8v5WEFilc9+HOa8zcGP+M
+B7YEQQSL0q65y35XyyxLSC/8gbevud4n4eO9I8I6RFO9ms4yYlR++DXD2sT9l/hG
+GhRhHcnCd0UTLe2OVFwdVMcvBGmXAiEAqftX26Huqbw+ZgqQnYONcYw5eqO1Yab3
+kB4OgpdIVqcCAQEDQgAEGzr0bpiRq6BGSb4C/CMObuP/JpevjNdv+607QPG++A93
+qFvUsFu6lUUbyriFNrOvZaxpDETgfpkzrO9Hs/JmtqNFMEMwEgYDVR0TAQH/BAgw
+BgEB/wIBADAdBgNVHQ4EFgQU0IMmflZl871SGf6W1Q2bnAkg/kAwDgYDVR0PAQH/
+BAQDAgEGMAsGByqGSM49BAEFAANIADBFAiEAp/qQLwWdWJsEz+heYNeQvRW0462T
+QLIlpAZJZAlpPxwCIFlPFYmq4UcD6I5HJzTUvTRR1oMlYqwBC7SjwtwyspKc
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDKzCCAtCgAwIBAgIII+3Lgsfb3yUwCgYIKoZIzj0EAwIweTEUMBIGA1UEAwwL
+Q1NDQUVDX0JFXzIxNzA1BgNVBAsMLkZFREVSQUwgUFVCTElDIFNFUlZJQ0UgRk9S
+RUlHTiBBRkZBSVJTIEJFTEdJVU0xGzAZBgNVBAoMEktJTkdET00gT0YgQkVMR0lV
+TTELMAkGA1UEBhMCQkUwHhcNMTQwNjE0MDgxODU5WhcNMjYwOTIyMDgxODU5WjB5
+MRQwEgYDVQQDDAtDU0NBRUNfQkVfMjE3MDUGA1UECwwuRkVERVJBTCBQVUJMSUMg
+U0VSVklDRSBGT1JFSUdOIEFGRkFJUlMgQkVMR0lVTTEbMBkGA1UECgwSS0lOR0RP
+TSBPRiBCRUxHSVVNMQswCQYDVQQGEwJCRTCCATMwgewGByqGSM49AgEwgeACAQEw
+LAYHKoZIzj0BAQIhAP////8AAAABAAAAAAAAAAAAAAAA////////////////MEQE
+IP////8AAAABAAAAAAAAAAAAAAAA///////////////8BCBaxjXYqjqT57PrvVV2
+mIa8ZR0GsMxTsPY7zjw+J9JgSwRBBGsX0fLhLEJH+Lzm5WOkQPJ3A32BLeszoPSh
+OUXYmMKWT+NC4v4af5uO5+tKfA+eFivOM1drMV7Oy7ZAaDe/UfUCIQD/////AAAA
+AP//////////vOb6racXnoTzucrC/GMlUQIBAQNCAAQKrzt7YOGNNYwqglJhz6Pj
+nloN4w7KIIh3w5Z+1sESSJsddif4n2TweuIxZEbR0lHgaIQZvk/pE8tZ2U3THidI
+o2YwZDAdBgNVHQ4EFgQUHukRMAwUQBLm/FiSPOY2B/QAdhswEgYDVR0TAQH/BAgw
+BgEB/wIBADAfBgNVHSMEGDAWgBQe6REwDBRAEub8WJI85jYH9AB2GzAOBgNVHQ8B
+Af8EBAMCAQYwCgYIKoZIzj0EAwIDSQAwRgIhAMVLKwBX4w83P37qASDaNQglaN2x
+6ULXgND0oncG+gPPAiEA4S9X2U6/hgwjcuUS0bgvbmgEAwRNHzvvTheWtPbzpJA=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDWjCCAwGgAwIBAgIBAjAKBggqhkjOPQQDAjByMQswCQYDVQQGEwJDWTEbMBkG
+A1UECgwSUmVwdWJsaWMgb2YgQ3lwcnVzMTAwLgYDVQQLDCdDaXZpbCBSZWdpc3Ry
+eSBhbmQgTWlncmF0aW9uIERlcGFydG1lbnQxFDASBgNVBAMMC0NTQ0EtQ1lQUlVT
+MB4XDTEwMTExMDA5MzQ1MloXDTI1MDIwODIxMzQ1MlowcjELMAkGA1UEBhMCQ1kx
+GzAZBgNVBAoMElJlcHVibGljIG9mIEN5cHJ1czEwMC4GA1UECwwnQ2l2aWwgUmVn
+aXN0cnkgYW5kIE1pZ3JhdGlvbiBEZXBhcnRtZW50MRQwEgYDVQQDDAtDU0NBLUNZ
+UFJVUzCCATMwgewGByqGSM49AgEwgeACAQEwLAYHKoZIzj0BAQIhAKn7V9uh7qm8
+PmYKkJ2DjXJuO/Yj1SYgKCATSB0fblN3MEQEIH1aCXX8LDBX7vZ1MEF6/+f7gFXB
+JtxcbOlKS0TzMLXZBCAm3Fxs6UpLRPMwtdm713y/lYQWKVz34c5rzNwY/4wHtgRB
+BIvSrrnLflfLLEtIL/yBt6+53ifh470jwjpEU72azjJiVH74NcPaxP2X+EYaFGEd
+ycJ3RRMt7Y5UXB1Uxy8EaZcCIQCp+1fboe6pvD5mCpCdg41xjDl6o7VhpveQHg6C
+l0hWpwIBAQNCAAQCwyxWm6/IzUoU6WuSGnqRZZcugNHy2UvBHzAoP5XAGk/BtRIu
+4v25ZkgQdHw6oIcZoc3w/fWYldFwGG0q8rj/o4GrMIGoMBQGA1UdIAQNMAswCQYH
+BAB/AAsBATAfBgNVHSMEGDAWgBSfxV4CyOp7zJXtWIiCGIgO7I/IHzAdBgNVHQ4E
+FgQUn8VeAsjqe8yV7ViIghiIDuyPyB8wDwYDVR0PAQH/BAUDAwAGADArBgNVHRAE
+JDAigA8yMDEwMTExMDExMzQ1MlqBDzIwMTQxMTEwMTEzNDUyWjASBgNVHRMBAf8E
+CDAGAQH/AgEAMAoGCCqGSM49BAMCA0cAMEQCIAOFdvHhEF4VUcFAGHLctbecKfUq
+C+mnRqs6feNIWQThAiArQRVrgaCEKR0Qzx7I5PWYZJmh6YrV2cVvTBwAtiC4/w==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDfTCCAyOgAwIBAgICAN8wCwYHKoZIzj0EAQUAME8xCzAJBgNVBAYTAkRFMQ0w
+CwYDVQQKDARidW5kMQwwCgYDVQQLDANic2kxDDAKBgNVBAUTAzAwMTEVMBMGA1UE
+AwwMY3NjYS1nZXJtYW55MB4XDTA1MDgwODExMzEzNloXDTE5MDIwODIyNTk1OVow
+TzELMAkGA1UEBhMCREUxDTALBgNVBAoMBGJ1bmQxDDAKBgNVBAsMA2JzaTEMMAoG
+A1UEBRMDMDAxMRUwEwYDVQQDDAxjc2NhLWdlcm1hbnkwggEzMIHsBgcqhkjOPQIB
+MIHgAgEBMCwGByqGSM49AQECIQCp+1fboe6pvD5mCpCdg41ybjv2I9UmICggE0gd
+H25TdzBEBCB9Wgl1/CwwV+72dTBBev/n+4BVwSbcXGzpSktE8zC12QQgJtxcbOlK
+S0TzMLXZu9d8v5WEFilc9+HOa8zcGP+MB7YEQQSL0q65y35XyyxLSC/8gbevud4n
+4eO9I8I6RFO9ms4yYlR++DXD2sT9l/hGGhRhHcnCd0UTLe2OVFwdVMcvBGmXAiEA
+qftX26Huqbw+ZgqQnYONcYw5eqO1Yab3kB4OgpdIVqcCAQEDQgAEnyWKxDv9nyJG
+wIGiCkC89KnO2CZkD7GLJDSEBXV9RjoO0ShtHdzj6bi6O+cF+VnaWEUbOwXFE7Yp
+5WKjVY2m/KOCARAwggEMMDYGA1UdEQQvMC2BGGNzY2EtZ2VybWFueUBic2kuYnVu
+ZC5kZYYRZmF4Ois0OTIyODk1ODI3MjIwKwYDVR0QBCQwIoAPMjAwNTA4MDgxMTMx
+MzZagQ8yMDA4MDkwODIxNTk1OVowDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRu
+fr6FmOePobBhphJ0qE+e0i7fxzAfBgNVHSMEGDAWgBRufr6FmOePobBhphJ0qE+e
+0i7fxzBBBgNVHSAEOjA4MDYGCQQAfwAHAwEBATApMCcGCCsGAQUFBwIBFhtodHRw
+Oi8vd3d3LmJzaS5idW5kLmRlL2NzY2EwEgYDVR0TAQH/BAgwBgEB/wIBADALBgcq
+hkjOPQQBBQADRwAwRAIgWqNdT/kV12pdGjhF5XIzGi/+U36CYfywgnCsSMivEkkC
+IFjK+OTmCwaHs7cwAyUL9qz6ciPT04d3PhxZ6ajFLP6O
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDfzCCAySgAwIBAgICAR0wDAYIKoZIzj0EAwIFADBPMQswCQYDVQQGEwJERTEN
+MAsGA1UECgwEYnVuZDEMMAoGA1UECwwDYnNpMQwwCgYDVQQFEwMwMTMxFTATBgNV
+BAMMDGNzY2EtZ2VybWFueTAeFw0wODAyMjYxMzQzMDRaFw0yMTA4MjYxMjM1NTZa
+ME8xCzAJBgNVBAYTAkRFMQ0wCwYDVQQKDARidW5kMQwwCgYDVQQLDANic2kxDDAK
+BgNVBAUTAzAxMzEVMBMGA1UEAwwMY3NjYS1nZXJtYW55MIIBMzCB7AYHKoZIzj0C
+ATCB4AIBATAsBgcqhkjOPQEBAiEAqftX26Huqbw+ZgqQnYONcm479iPVJiAoIBNI
+HR9uU3cwRAQgfVoJdfwsMFfu9nUwQXr/5/uAVcEm3Fxs6UpLRPMwtdkEICbcXGzp
+SktE8zC12bvXfL+VhBYpXPfhzmvM3Bj/jAe2BEEEi9Kuuct+V8ssS0gv/IG3r7ne
+J+HjvSPCOkRTvZrOMmJUfvg1w9rE/Zf4RhoUYR3JwndFEy3tjlRcHVTHLwRplwIh
+AKn7V9uh7qm8PmYKkJ2DjXGMOXqjtWGm95AeDoKXSFanAgEBA0IABEqUSYF3nd8d
+pefFJ+J9JHGpKOtNe2d1rgkKUUUZm9R+oIHlXtSkP2B8alDuNkGKh//NphA5ypV2
+fa7Kw0Q/4yyjggEQMIIBDDA2BgNVHREELzAtgRhjc2NhLWdlcm1hbnlAYnNpLmJ1
+bmQuZGWGEWZheDorNDkyMjg5NTgyNzIyMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4E
+FgQUYETyRfLgcdTVZPTld9Y2advrGFkwHwYDVR0jBBgwFoAUYETyRfLgcdTVZPTl
+d9Y2advrGFkwQQYDVR0gBDowODA2BgkEAH8ABwMBAQEwKTAnBggrBgEFBQcCARYb
+aHR0cDovL3d3dy5ic2kuYnVuZC5kZS9jc2NhMBIGA1UdEwEB/wQIMAYBAf8CAQAw
+KwYDVR0QBCQwIoAPMjAwODAyMjYxMzQzMDRagQ8yMDExMDIyNjEyMzU1NlowDAYI
+KoZIzj0EAwIFAANHADBEAiAaOXEiepaq55JYiqXcC0iY6RelijCO0evRmhaXlOoE
+5wIgKn5Ofpsi85jHKEkFGUlrc9XALkspq2WSKSlS85iUR/c=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIID+zCCArSgAwIBAgIIImPeveaxBkIwPAYJKoZIhvcNAQEKMC+gDzANBglghkgB
+ZQMEAgEFAKEcMBoGCSqGSIb3DQEBCDANBglghkgBZQMEAgEFADBPMSMwIQYDVQQD
+ExpTd2VkaXNoIENvdW50cnkgU2lnbmluZyBDQTEbMBkGA1UEChMSUmlrc3BvbGlz
+c3R5cmVsc2VuMQswCQYDVQQGEwJTRTAeFw0wNTA5MjYxOTAzMDJaFw0yMTA5MjIx
+OTEzMDJaME8xIzAhBgNVBAMTGlN3ZWRpc2ggQ291bnRyeSBTaWduaW5nIENBMRsw
+GQYDVQQKExJSaWtzcG9saXNzdHlyZWxzZW4xCzAJBgNVBAYTAlNFMIIBIjANBgkq
+hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnT3OKLYsTrHJRLUbKeoZCuABgIYSBvHy
+MvaKlwvJ18phNsW2RTVKY1MgT10/QuMSjVghPLnb1axJ1exsbUEP2x5EfsLFSi8a
+FbMVPJxg6933+frjOViI2Zs/yf6NrO9qTqMjBYS2Ht9aH6UqXfxYW3Wvof3Kwihn
+0rCPz9VQUObLcym5Eb41Ry3bhCL+1W6eyQJ2Dk5JXPBP3EbNKJVedwosWE3nl+Ib
+vsKOnNnrzYZBVZEbn8puUAhSJ39WPeCN9AH5RoWf2C3fu/hmqYmX9cZFcH3k/zvx
+rn50xcJs7WWla4bHgO1F95uVvbjF5lXAmMKC45nN8kWuXk5Q7/zmIQIDAQABo30w
+ezASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU
+OtRdqXuSyO2ch41v7Arfw8gEih8wHwYDVR0jBBgwFoAUOtRdqXuSyO2ch41v7Arf
+w8gEih8wFQYDVR0gBA4wDDAKBggqhXBUCgEBATA8BgkqhkiG9w0BAQowL6APMA0G
+CWCGSAFlAwQCAQUAoRwwGgYJKoZIhvcNAQEIMA0GCWCGSAFlAwQCAQUAA4IBAQCS
+lwvA1699I6JNKrqK4Rbr7WTLWxCmJ0ZZ8xq6hqyEsh+IaR72frqRjd0dWjs2kMEB
+/Q8zPoFm7Gp0vh+IYs97q9Y2iuOucmU1toR5PWSDGTm6x05H7mYrCZGUkv3SxjYd
+yQg2iDaTOYLKYlvwLrMht5l6DewuPfU3u4iSoOSLlFPFy+8wHhBggonuMtPauJta
+rylS4F+e5mF2hMb9WYQ1ixHk+S5w5u5/26mzPR4FyHwF4YQWTSsTdDH9NIv6PSvG
+FOpMbekwwyO1GyqAjSAJsFqAlmAXO0ZsZ2KBxCubqdyILv7ii2/HLK3OqbwOSe0k
+iyuOcEEn7cNtfA0IwPN6
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEIzCCA6qgAwIBAgIBATAJBgcqhkjOPQQBMHExCzAJBgNVBAYTAkNIMQ4wDAYD
+VQQKEwVBZG1pbjERMA8GA1UECxMIU2VydmljZXMxIjAgBgNVBAsTGUNlcnRpZmlj
+YXRpb24gQXV0aG9yaXRpZXMxGzAZBgNVBAMTEmNzY2Etc3dpdHplcmxhbmQtMTAe
+Fw0wNjA2MjgxMDAxMDJaFw0xNzA4MzExMDAxMDJaMHExCzAJBgNVBAYTAkNIMQ4w
+DAYDVQQKEwVBZG1pbjERMA8GA1UECxMIU2VydmljZXMxIjAgBgNVBAsTGUNlcnRp
+ZmljYXRpb24gQXV0aG9yaXRpZXMxGzAZBgNVBAMTEmNzY2Etc3dpdHplcmxhbmQt
+MTCCAbUwggFNBgcqhkjOPQIBMIIBQAIBATA8BgcqhkjOPQEBAjEA////////////
+//////////////////////////////7/////AAAAAAAAAAD/////MGQEMP//////
+///////////////////////////////////+/////wAAAAAAAAAA/////AQwszEv
+p+I+5+SYjgVr4/gtGRgdnG7+gUESAxQIj1ATh1rGVjmNii7RnSqFyO3T7CrvBGEE
+qofKIr6LBTeOscce8yCtdG4dO2KLp5uYWfdB4IJUKjhVAvJdv1UpbDpUXjhydgq3
+NhfeSpYmLG9dnpi/kpLcKfj0Hb0omhR86doxE7XwuMAKYLHOHX6BnXpDHXyQ6g5f
+AjEA////////////////////////////////x2NNgfQ3Ld9YGg2ySLCneuzsGWrM
+xSlzAgEBA2IABN6WVjm3wm2hcdSmRgXpi9tjeGmyc7InpZox/ENoEKLesbNAmTdm
+rztedS6zbFFRkrU8OiKSdQNS501I1ZSpsjGoNgBKe6jPHFusagdvjYxhD7Yb6LgY
+bn7DXyMiEIB0ZqOB1TCB0jArBgNVHRAEJDAigA8yMDA2MDYyODEwMDEwMlqBDzIw
+MTEwNjI5MTAwMTAyWjBgBgNVHSAEWTBXMFUGCGCFdAERAzQBMEkwRwYIKwYBBQUH
+AgEWO2h0dHA6Ly93d3cucGtpLmFkbWluLmNoL3BvbGljeS9DUFNfMl8xNl83NTZf
+MV8xN18zXzUyXzEucGRmMB0GA1UdDgQWBBROyJ2YybTgkPUrW4WXUFa/6CTrdjAO
+BgNVHQ8BAf8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB/wIBADAJBgcqhkjOPQQBA2gA
+MGUCMQD+60RRg8WKkFXI7BeSarETXXI09UCkSGlR5zln/GDC1thrYjD/CB7TT+wy
+UfzeXE0CMApVXKI1mpScD2jFa/e3LBrXcQiCW4BTeDoy8Av2haJ4Xu7LWhZzpu1l
+d6G1lWDEpA==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEJDCCA6ugAwIBAgIBATAKBggqhkjOPQQDAzBxMQswCQYDVQQGEwJDSDEOMAwG
+A1UECgwFQWRtaW4xETAPBgNVBAsMCFNlcnZpY2VzMSIwIAYDVQQLDBlDZXJ0aWZp
+Y2F0aW9uIEF1dGhvcml0aWVzMRswGQYDVQQDDBJjc2NhLXN3aXR6ZXJsYW5kLTIw
+HhcNMTAwMjE2MTIxNTU4WhcNMjQwNDI5MTIxNTU4WjBxMQswCQYDVQQGEwJDSDEO
+MAwGA1UECgwFQWRtaW4xETAPBgNVBAsMCFNlcnZpY2VzMSIwIAYDVQQLDBlDZXJ0
+aWZpY2F0aW9uIEF1dGhvcml0aWVzMRswGQYDVQQDDBJjc2NhLXN3aXR6ZXJsYW5k
+LTIwggG1MIIBTQYHKoZIzj0CATCCAUACAQEwPAYHKoZIzj0BAQIxAIy5HoKjOG0o
+D11vflDmQd8VL3EJ7VRWtBKx2hl/txEjrNOnKZAdGnGHRwATMQfsUzBkBDB7w4LG
+PYwVDDxyCArOBa+gwr6ijk+yJ4cTkWXvupH5D4qlgUpQOtTrBKjH3SLOKCYEMASo
+x90izigmizm1VBbwRHwvt33hB9zSpi6IDqU+62LVfLQ5ApXbyZQ6t4aW+lBMEQRh
+BB0cZPBoz0X/oqY6gbfBP2uIR6PnfvFP49t/yv4MvRDo6CbgNDbWRqrvh7LiR9Sv
+Hoq+HXUg+cKkXLHrjpXP1VJitwsp/uxYZOGcBU/5kSkoDkZGIXeRgRFCggNBJjxT
+FQIxAIy5HoKjOG0oD11vflDmQd8VL3EJ7VRWsx8WbmysBCWnzzq2r2t/wxA7iDIC
+6QRlZQIBAQNiAAQBH6xYTAqlp1aTyOtzE4sISRuxgf0MZhqghhJOiatzdBbi35Jk
+jxaKbjZubwkctxIP8cuchwAEotwTM1SZCyGHIRZMAHMwPcDr+9ArCg05LsVCo3oo
+KnMPez45wYdRb5ujgdUwgdIwKwYDVR0QBCQwIoAPMjAxMDAyMTYxMjE1NThagQ8y
+MDEzMDIxODEyMTU1OFowYAYDVR0gBFkwVzBVBghghXQBEQM+ATBJMEcGCCsGAQUF
+BwIBFjtodHRwOi8vd3d3LnBraS5hZG1pbi5jaC9wb2xpY3kvQ1BTXzJfMTZfNzU2
+XzFfMTdfM182Ml8xLnBkZjAdBgNVHQ4EFgQUv61P0stSZ1sEEF150srDuJRLJeAw
+DgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYBAf8CAQAwCgYIKoZIzj0EAwMD
+ZwAwZAIwZCSdadWnOO2gb2j5d4QwEeLmHejjmDAkQABLUaab61xlLEcj6LRLbC3Y
+q9i/CfQ5AjB2EVGFSk94wX/uswbnsazImGdVIr8X2XWGlyc8QwzJD7jf6aPWqaYR
+Uc1X1t3k15A=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEQTCCA8igAwIBAgIII6qfyMeyn7AwCgYIKoZIzj0EAwMwPzELMAkGA1UEBhMC
+QVQxCzAJBgNVBAoMAkdWMQwwCgYDVQQLDANCTUkxFTATBgNVBAMMDENTQ0EtQVVT
+VFJJQTAeFw0xNDEwMDIwODUzMjlaFw0zMDAxMDUwODUzMjlaMD8xCzAJBgNVBAYT
+AkFUMQswCQYDVQQKDAJHVjEMMAoGA1UECwwDQk1JMRUwEwYDVQQDDAxDU0NBLUFV
+U1RSSUEwggG1MIIBTQYHKoZIzj0CATCCAUACAQEwPAYHKoZIzj0BAQIxAIy5HoKj
+OG0oD11vflDmQd8VL3EJ7VRWtBKx2hl/txEjrNOnKZAdGnGHRwATMQfsUzBkBDB7
+w4LGPYwVDDxyCArOBa+gwr6ijk+yJ4cTkWXvupH5D4qlgUpQOtTrBKjH3SLOKCYE
+MASox90izigmizm1VBbwRHwvt33hB9zSpi6IDqU+62LVfLQ5ApXbyZQ6t4aW+lBM
+EQRhBB0cZPBoz0X/oqY6gbfBP2uIR6PnfvFP49t/yv4MvRDo6CbgNDbWRqrvh7Li
+R9SvHoq+HXUg+cKkXLHrjpXP1VJitwsp/uxYZOGcBU/5kSkoDkZGIXeRgRFCggNB
+JjxTFQIxAIy5HoKjOG0oD11vflDmQd8VL3EJ7VRWsx8WbmysBCWnzzq2r2t/wxA7
+iDIC6QRlZQIBAQNiAAQF/FafxxJ8Xpb5r91l7Fq75TEde/sOmPROSRLXXHEmvtfG
+ocm8j2tYA8LT3Y+4mumLtXiwkWyp5rme1rO4YPyCUaAV5xCmKQw1S11HGHqG49HW
+5LP/sPvaFD5h2z4BHVejggFOMIIBSjAdBgNVHQ4EFgQU/43qhq8Y7uWLota6jPqr
+OaFpr1swEgYDVR0TAQH/BAgwBgEB/wIBADAfBgNVHSMEGDAWgBT/jeqGrxju5Yui
+1rqM+qs5oWmvWzAaBgNVHRAEEzARgQ8yMDIwMDEwOTA4NTMyOVowFgYDVR0gBA8w
+DTALBgkqKAAKAQIBAQEwPgYDVR0fBDcwNTAzoDGgL4YtaHR0cDovL3d3dy5ibWku
+Z3YuYXQvY3NjYS9jcmwvQ1NDQUFVU1RSSUEuY3JsMA4GA1UdDwEB/wQEAwIBBjA3
+BgNVHRIEMDAupBAwDjEMMAoGA1UEBwwDQVVUhhpodHRwOi8vd3d3LmJtaS5ndi5h
+dC9jc2NhLzA3BgNVHREEMDAupBAwDjEMMAoGA1UEBwwDQVVUhhpodHRwOi8vd3d3
+LmJtaS5ndi5hdC9jc2NhLzAKBggqhkjOPQQDAwNnADBkAjBz1iWgzJoxKSNrkF5K
+Be5UYk7aaPuTWn8VTC98SIEtWQ5Q5ckWNcgOVzbn3ReUv9QCMCQIB4di7gb+ViLt
+BcC/9PjFlhAzKVtP10IDwFBndsYFhnSllFJlHeSC34VXt1pLCA==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEcjCCA/igAwIBAgIBATAKBggqhkjOPQQDAzBPMQswCQYDVQQGEwJERTENMAsG
+A1UECgwEYnVuZDEMMAoGA1UECwwDYnNpMQwwCgYDVQQFEwMxMDAxFTATBgNVBAMM
+DGNzY2EtZ2VybWFueTAeFw0xMTAxMTcxNDIyMjlaFw0yNDA3MTcyMzU5NTlaME8x
+CzAJBgNVBAYTAkRFMQ0wCwYDVQQKDARidW5kMQwwCgYDVQQLDANic2kxDDAKBgNV
+BAUTAzEwMDEVMBMGA1UEAwwMY3NjYS1nZXJtYW55MIIBtTCCAU0GByqGSM49AgEw
+ggFAAgEBMDwGByqGSM49AQECMQCMuR6CozhtKA9db35Q5kHfFS9xCe1UVrQSsdoZ
+f7cRI6zTpymQHRpxh0cAEzEH7FMwZAQwe8OCxj2MFQw8cggKzgWvoMK+oo5PsieH
+E5Fl77qR+Q+KpYFKUDrU6wSox90izigmBDAEqMfdIs4oJos5tVQW8ER8L7d94Qfc
+0qYuiA6lPuti1Xy0OQKV28mUOreGlvpQTBEEYQQdHGTwaM9F/6KmOoG3wT9riEej
+537xT+Pbf8r+DL0Q6Ogm4DQ21kaq74ey4kfUrx6Kvh11IPnCpFyx646Vz9VSYrcL
+Kf7sWGThnAVP+ZEpKA5GRiF3kYERQoIDQSY8UxUCMQCMuR6CozhtKA9db35Q5kHf
+FS9xCe1UVrMfFm5srAQlp886tq9rf8MQO4gyAukEZWUCAQEDYgAEXRVISEwikatM
+RXAd9/ALIE/7cj9eUFWH5+3NzWJpVOWfxfv2QYgAB+cQaBCmPaFkZOvQMyxkzpCT
+rrrU9KiR26YFuFfPD2/mbwPmbRQe34uVKph4KnBONjGo8tiU9XTmo4IBZTCCAWEw
+HQYDVR0OBBYEFON2rmYS/nqB5nIsUThb2INJD8OiMA4GA1UdDwEB/wQEAwIBBjAr
+BgNVHRAEJDAigA8yMDExMDExNzE0MjIyOVqBDzIwMTQwMTE3MjM1OTU5WjAWBgNV
+HSAEDzANMAsGCQQAfwAHAwEBATBBBgNVHREEOjA4gRhjc2NhLWdlcm1hbnlAYnNp
+LmJ1bmQuZGWGHGh0dHBzOi8vd3d3LmJzaS5idW5kLmRlL2NzY2EwQQYDVR0SBDow
+OIEYY3NjYS1nZXJtYW55QGJzaS5idW5kLmRlhhxodHRwczovL3d3dy5ic2kuYnVu
+ZC5kZS9jc2NhMBIGA1UdEwEB/wQIMAYBAf8CAQAwMAYDVR0fBCkwJzAloCOgIYYf
+aHR0cDovL3d3dy5ic2kuYnVuZC5kZS9jc2NhX2NybDAfBgNVHSMEGDAWgBTjdq5m
+Ev56geZyLFE4W9iDSQ/DojAKBggqhkjOPQQDAwNoADBlAjA9TKXFMHCky6raf3ix
++pSSsZDTexj4fzpiXOKNQkhjt8jAvQOULvxpeIYYBI5Z2d8CMQCJaQMezRDxF1Fn
+lblybiUGakeSdqmInydeTVHs5d2rmti5IaBDM75ibOdus2WDezg=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEdzCCAt+gAwIBAgIBATANBgkqhkiG9w0BAQsFADA/MQswCQYDVQQGEwJBVDEL
+MAkGA1UEChMCR1YxDDAKBgNVBAsTA0JNSTEVMBMGA1UEAxMMQ1NDQS1BVVNUUklB
+MB4XDTA2MDYwODIyMDAwMFoXDTIxMDkxMjIxNTk1OVowPzELMAkGA1UEBhMCQVQx
+CzAJBgNVBAoTAkdWMQwwCgYDVQQLEwNCTUkxFTATBgNVBAMTDENTQ0EtQVVTVFJJ
+QTCCAaIwDQYJKoZIhvcNAQEBBQADggGPADCCAYoCggGBAMIR9wGRpFaP3ndGcHrG
+n074Ng5YmZ9knm2+3dDH1C1BjJIhSxi4xoiUJ4YijmK+/RhA+nt7oBoYN0qny+5q
+9Gbc0k2pNDjfOuwxEE1TPpqVLDnhZH1UxVxQj7l4w6VndFuqEAbw3MyiJguVNlcD
+W4bA1afbIb83wgWspOybikIq04TzyEUGTArvYZ16N4bsHYFQXxwiM5PelbwLQ7iS
+yqMsvyclU1X9/X66sW2P//8VsuUUVNPEcEgycYiEmyhhIQCzoLsrlUwbF5s8NkU6
+EA0o6rllkwmESUPplWFHvAhggGYCfBUygy2zEjqR1E2I/TPmaFoiA+fpQ65KQ3zw
+ZK9BsotNJhS8CjOX1opBaIkWLNd0P+nGtoZ+6+GV3jxrKWJumMycVmGucKSN41h6
+GI668vDYkJcJlWAPAAQQuX5s99FQlPVimz+n7sXkd/0olsE9Woz+CLuV27shvo9g
+HfcS2xiJijZAfkvBhTGqmIFEdKhADYnf1JRf8xXtIfHtCQIDAKnDo34wfDAfBgNV
+HSMEGDAWgBT5fcYFy+GDaxtwf01YApU7AXt1dTAdBgNVHQ4EFgQU+X3GBcvhg2sb
+cH9NWAKVOwF7dXUwDgYDVR0PAQH/BAQDAgEGMBYGA1UdIAQPMA0wCwYJKigACgEC
+AQEBMBIGA1UdEwEB/wQIMAYBAf8CAQAwDQYJKoZIhvcNAQELBQADggGBAEvarKyF
+DQxy1kmuhhwqh67aRlPYgHG6N5mOnzc7+cyYsJMK0/FZxGdxHZbCY3B/SjyRM43C
+pa9Jr02tIdsYG+TBMMEKvLEGis7zPJSuj133Zfd1OVU86VLeLZmr+3j+q4jNFtuF
+Ifhsp/4SNla7D68YdzOT8jXzzMtxH8LxZWbDMnaBQUVGYhMH1KmQeuwXWkklTkdQ
+XJSNN+IWquF/nyTxSAoOl2Izf46Y5thvCxgzRfn2c6plC4IJE+bKpdXb9utD8jGz
+mJAFOVzhUbQiXxlJognaLP8CosaJE4EaNKEuOS4jnnccd+9LjjjnJjOuJEBrjPwf
+XYq7q1g7iko5Ty87s8CERjW6HqzUm4BhJV6vCpLbostKzwd7f/pl29GQ3aI0B1uS
+3/q0Kdn7Jvo7ZYV9TiM/mPOirq325mGHNftM7AvwF/A5Wz3opldKEuwzEx4gtAoF
+GDWXvShMzanQlIDwJGfps4ozohurs9nKsCxWaC6k/BryJN/LAgObgRMfwA==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEljCCA36gAwIBAgIQPNiB19U8dO0HEYWVixrNRjANBgkqhkiG9w0BAQsFADCB
+0jELMAkGA1UEBhMCSVMxEjAQBgNVBAcTCVJFWUtKQVZJSzEaMBgGA1UEChMRVGhq
+b2Rza3JhIElzbGFuZHMxFzAVBgNVBAsTDkt0LiA2NTAzNzYwNjQ5MRswGQYDVQQL
+ExJDb3VudHJ5IFNpZ25pbmcgQ0ExNzA1BgNVBAsTLlZvdHR1bmFyc3RlZm5hIGh0
+dHA6Ly93d3cudmVnYWJyZWYuaXMvc2tpbHJpa2kxJDAiBgNVBAMTG0ZlcmRhc2tp
+bHJpa2kgLSBJc2xhbmQgLSBHMjAeFw0xMzAxMzEwMDAwMDBaFw0zMzAxMzAyMzU5
+NTlaMIHSMQswCQYDVQQGEwJJUzESMBAGA1UEBxMJUkVZS0pBVklLMRowGAYDVQQK
+ExFUaGpvZHNrcmEgSXNsYW5kczEXMBUGA1UECxMOS3QuIDY1MDM3NjA2NDkxGzAZ
+BgNVBAsTEkNvdW50cnkgU2lnbmluZyBDQTE3MDUGA1UECxMuVm90dHVuYXJzdGVm
+bmEgaHR0cDovL3d3dy52ZWdhYnJlZi5pcy9za2lscmlraTEkMCIGA1UEAxMbRmVy
+ZGFza2lscmlraSAtIElzbGFuZCAtIEcyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
+MIIBCgKCAQEAsBbFrlwYPweEjQHcAa4ZuJoQSlkxC94WmX60RXHh/UbNjc0RQiZd
+78zjWombCH0kAovaRfYG0Dp6d4DjmU92i8pt52yWK3O1PqW0w7kZWT48znbeDNNR
+mpRas8CRqsEulPpE9rSXmpJIPQXrGrNC8ZxaEKqhvr3R4eEKkEz/3F6a31xwLC5q
+qjOBTYlE/CQL6ukxZiCjdqsN1TE4iZnVPdgvF1jMD7xXr00XPFLeebsPH0W23xPj
+yFQ36h27W/GE5lpjwPWiPp46a3/tFqBVEImP7G/xalDKksdytjT/rxLeHpJaYo9D
++t3CgkyLFfZdeExU3/yPpt1gNPNtbJ13BwIDAQABo2YwZDASBgNVHRMBAf8ECDAG
+AQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUhX/1alO2xNgzYAXZq16A
+IGdzx04wHwYDVR0jBBgwFoAUhX/1alO2xNgzYAXZq16AIGdzx04wDQYJKoZIhvcN
+AQELBQADggEBAE2eSsee3izieM31EPL5PPQR8Ip0fU/4w71QEJoyPiFxdF3RbmqB
+peUkQyKU548ccko/CNWtXv7yIUroPtC3yb4jVDGdSb0BxzzZ8Ocw2tHAyE38rq/T
+Cnp5N5ThMA9PNUdoHytSEGvIeZJ3KW2KULCeCgglLya/crmql6ihjONnHIQQ4JhT
+f2Kr9udw5sLijh0YWAL5vfIZ7hUFrb0EUSKgrhW55WXVHdmgQZKzMXd440yjOb9N
+mVIl89WvyKqoXnt/H2h3GklGGeBUwhXU1rngsrkWpynTMHSmGQaqpsNsvEPyX/v2
+MsDwbjXxIcR0MYl5Cy0IsombyTZE10aTlF4=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEoDCCBCegAwIBAgIBATAKBggqhkjOPQQDAzBPMQswCQYDVQQGEwJERTENMAsG
+A1UECgwEYnVuZDEMMAoGA1UECwwDYnNpMQwwCgYDVQQFEwMxMDExFTATBgNVBAMM
+DGNzY2EtZ2VybWFueTAeFw0xMzEwMzAxMDQ5NDJaFw0yNzA0MzAyMzU5NTlaME8x
+CzAJBgNVBAYTAkRFMQ0wCwYDVQQKDARidW5kMQwwCgYDVQQLDANic2kxDDAKBgNV
+BAUTAzEwMTEVMBMGA1UEAwwMY3NjYS1nZXJtYW55MIIBtTCCAU0GByqGSM49AgEw
+ggFAAgEBMDwGByqGSM49AQECMQCMuR6CozhtKA9db35Q5kHfFS9xCe1UVrQSsdoZ
+f7cRI6zTpymQHRpxh0cAEzEH7FMwZAQwe8OCxj2MFQw8cggKzgWvoMK+oo5PsieH
+E5Fl77qR+Q+KpYFKUDrU6wSox90izigmBDAEqMfdIs4oJos5tVQW8ER8L7d94Qfc
+0qYuiA6lPuti1Xy0OQKV28mUOreGlvpQTBEEYQQdHGTwaM9F/6KmOoG3wT9riEej
+537xT+Pbf8r+DL0Q6Ogm4DQ21kaq74ey4kfUrx6Kvh11IPnCpFyx646Vz9VSYrcL
+Kf7sWGThnAVP+ZEpKA5GRiF3kYERQoIDQSY8UxUCMQCMuR6CozhtKA9db35Q5kHf
+FS9xCe1UVrMfFm5srAQlp886tq9rf8MQO4gyAukEZWUCAQEDYgAEa/vuxp3nLGam
+aOzhqvGiZKPJsoj7MtBZ6Sw+XVvU17UBSHj0R5wTyIPQVFVc2Q7NE27EzDRkic3W
+TmlD8zOGSrnf5ELcv49pwZ5x0DX/MX/AMvwhVcrqpltJPRkdOZrAo4IBlDCCAZAw
+HQYDVR0OBBYEFMF7qRX3XN3Saz1gmiNU3hLuPw7GMA4GA1UdDwEB/wQEAwIBBjAr
+BgNVHRAEJDAigA8yMDEzMTAzMDEwNDk0MlqBDzIwMTYxMDMwMjM1OTU5WjAWBgNV
+HSAEDzANMAsGCQQAfwAHAwEBATBRBgNVHREESjBIgRhjc2NhLWdlcm1hbnlAYnNp
+LmJ1bmQuZGWGHGh0dHBzOi8vd3d3LmJzaS5idW5kLmRlL2NzY2GkDjAMMQowCAYD
+VQQHDAFEMFEGA1UdEgRKMEiBGGNzY2EtZ2VybWFueUBic2kuYnVuZC5kZYYcaHR0
+cHM6Ly93d3cuYnNpLmJ1bmQuZGUvY3NjYaQOMAwxCjAIBgNVBAcMAUQwEgYDVR0T
+AQH/BAgwBgEB/wIBADAwBgNVHR8EKTAnMCWgI6Ahhh9odHRwOi8vd3d3LmJzaS5i
+dW5kLmRlL2NzY2FfY3JsMA0GB2eBCAEBBgEEAgUAMB8GA1UdIwQYMBaAFMF7qRX3
+XN3Saz1gmiNU3hLuPw7GMAoGCCqGSM49BAMDA2cAMGQCMArj9pauIPbLaaR8mNbn
+DRrrdT9c5XN1ugudoxvtuVqTWWETBqLYOE2MPv8KZFqVjQIwfXnbT0FTMXE4NeCs
+k2F77p81/ozjNsw8VLL0UlU6IovX6jhIG02OrMPvvVc9M2/n
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEoTCCAwmgAwIBAgIETmVNYTANBgkqhkiG9w0BAQsFADBHMQswCQYDVQQGEwJE
+SzEbMBkGA1UEChMSS2luZ2RvbSBvZiBEZW5tYXJrMRswGQYDVQQDExJDb3VudHJ5
+IFNpZ25pbmcgQ0EwHhcNMTUxMDI4MDgyNDIzWhcNMzEwNjI4MDg1NDIzWjBHMQsw
+CQYDVQQGEwJESzEbMBkGA1UEChMSS2luZ2RvbSBvZiBEZW5tYXJrMRswGQYDVQQD
+ExJDb3VudHJ5IFNpZ25pbmcgQ0EwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGK
+AoIBgQDWLAKeOWC2k7YekC2Vtr4I/+odZsJsxAEXjq+kjXf+qmn02TXDgWI5dKAd
+K7o14j+JGQa+0+dnCi0192PjSGeTOZ2BdCqMyMNC2DtnWBwKj/7w9bGTrWVRwSpo
+1Aam0X56UKFjPJW53xujnqIDdXhQ04Lhayq2gHfapjE85q629mc91ZaPHJ6M6VI4
+XyQOlaXgv2UCDhgFJyEyKxtpYvmOIIR/rjeXumK9PD0G+lzapZEycs5r3tiXmXlG
+aAVCJGB/k7tL1bp0MB6OSw2PY5dRgKF7GGnED+dOfp1StT/o38H5tOMAzIV0boYM
+ancQq5QeD0Thq92Zhnmr5RBcJmTvohIjZMokNS6IWOeca22UsoxaTW/7s80xBO2B
+0ot6MW3lEJm5aaPrBS8KMs/QifPOQ/Zx3NGRFi6b7LB168blVUs+cm3fGBj6lJrh
+CfoxxOb08UCfb6U/ssOagUq4xZTDLbmxe3EvbREQpz4ZUdsGrQOyb512/YIYYvGO
+fGtLI28CAwEAAaOBlDCBkTAOBgNVHQ8BAf8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB
+/wIBADArBgNVHRAEJDAigA8yMDE1MTAyODA4MjQyM1qBDzIwMjAwOTA1MDM1NDIz
+WjAfBgNVHSMEGDAWgBQ2JW0ZizFhmJI0uRZ4beaXiCp0YTAdBgNVHQ4EFgQUNiVt
+GYsxYZiSNLkWeG3ml4gqdGEwDQYJKoZIhvcNAQELBQADggGBADu/hHvCuC3Ph6VR
+y8+Uvx56/F4SIiczpAPGuyDIHKLLloRztxzbLQzKcLEBf3jlsJ5bnRqxBjRMLLMT
+pw3i3dWyUxIv7BEMyTj0hnPOjJgBDhYUEwopebXbuLsnTdnsr7/6h4svkMRnmf/U
+QTzQQ8KOQcOrrPJVqAg4nAYzWXtojDjvIUoZR6+7OEGuhJBOghHqwXqQ4hoq3DE9
+gL2SvVupVPl2TJtuR08/ans+KURCTeau0khrcSM44Ovdrok/7ON+OISiTOMTMgUa
+NXC1nrFy+RrX2T9mp1yfTk38u+eHEgCkH5LgsZ6PPaJhnOauIKiSaf3ZoDOPV5am
+YwxZp30giE+esKqMTzmT8tQ+PTls3DCxVCwooZRMso7JOlyoHtav/7Gu8t/Fmnz+
+cwNjVs7to6TurL07y/jFC8DYXFg+PSDodcvGtvqZ5cqzGEQLro2lrv4p+1b+eo6m
+3BnK+joCy5jGe7zIvusEHKwaiFf2mvAFZAxmBOLB9TLfGSyHog==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIErzCCA5egAwIBAgIQH7Mw2FR7c+pZ/hXlQamjyzANBgkqhkiG9w0BAQUFADCB
+1TELMAkGA1UEBhMCSVMxEjAQBgNVBAcTCVJleWtqYXZpazEaMBgGA1UEChMRRmph
+cm1hbGFyYWR1bmV5dGkxFzAVBgNVBAsTDkt0LiA1NTAxNjkyODI5MRswGQYDVQQL
+ExJDb3VudHJ5IFNpZ25pbmcgQ0ExPzA9BgNVBAsTNlZvdHR1bmFyc3RlZm5hIGh0
+dHBzOi8vd3d3LnRoam9kc2tyYS5pcy9yZXBvc2l0b3J5L2NwczEfMB0GA1UEAxMW
+RmVyZGFza2lscmlraSAtIElzbGFuZDAeFw0wNjAyMTMwMDAwMDBaFw0xOTAyMTIy
+MzU5NTlaMIHVMQswCQYDVQQGEwJJUzESMBAGA1UEBxMJUmV5a2phdmlrMRowGAYD
+VQQKExFGamFybWFsYXJhZHVuZXl0aTEXMBUGA1UECxMOS3QuIDU1MDE2OTI4Mjkx
+GzAZBgNVBAsTEkNvdW50cnkgU2lnbmluZyBDQTE/MD0GA1UECxM2Vm90dHVuYXJz
+dGVmbmEgaHR0cHM6Ly93d3cudGhqb2Rza3JhLmlzL3JlcG9zaXRvcnkvY3BzMR8w
+HQYDVQQDExZGZXJkYXNraWxyaWtpIC0gSXNsYW5kMIIBIjANBgkqhkiG9w0BAQEF
+AAOCAQ8AMIIBCgKCAQEAzLXa+uDs7lHJKY4JwuHKQlrwtDbemEby6HkgId6kvrGG
+2CanHr0lmzXj8CjHWYlXhdDlAJwXNzpPb2dzpXIL/kkXb5R44fECIfmsrvSOXcA6
+Xa/4C1yeI1hbZV0M0zN39oZ08AzrdXIiPl+AyoGgIkDqug2o/zloGt2IaRMi1K9P
+OWBCorx/2xrmTZNAExWmHucRUIw7WYzUgSVvnBg+rksd7BHedmSIMjIQ56R1e8Cb
+qc7VzMJOyoH4+903Ecc9dTuJNzDRmDT6olHVELrmnCr8UUHNy37oEWstxC18XB+F
+LE7ZILSqu+Gksr5mFT0r+Lf1zJhJTg+SKsC2USN3mwIDAQABo3kwdzAdBgNVHQ4E
+FgQU6wU7JxBTWZabvqEcM8xNSxYyCKcwEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNV
+HQ8BAf8EBAMCAQYwEQYJYIZIAYb4QgEBBAQDAgEGMB8GA1UdIwQYMBaAFOsFOycQ
+U1mWm76hHDPMTUsWMginMA0GCSqGSIb3DQEBBQUAA4IBAQDAklk3kQ4v+XflS9wq
+95ZjWMd2n+T/n31OzcGNVeMJcARSI5ZlAxHjIgY2+GzCIoHreKkF0Q4qWCE9VWs+
+QZdjOGbB5bQWt1xTFiuzncH2ad6FaeiCdveHxLGCA+N6tyxWUdwoqyLlWijeqaiR
+KUodqkSsrpH9KGhIFCOAaBohIz6bpVV55vIlwOQA+n8ZVRHk/bayLbZ1JgL1ZTW+
+eU9nEuAnzPLMQIbQVZ+o6jeoba6fwud++ZrNFWXXcA7RO0vIndAF+nGjw1Yxyxgd
+48mPf97OwUZ9yIGC1d8NyKOecKCHMLKimJ3HhuH5uWV4DK8PVwWdJmugt2ahJbYN
+Z0Y2
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEvjCCAyagAwIBAgIBATANBgkqhkiG9w0BAQsFADBwMQswCQYDVQQGEwJQTDES
+MBAGA1UECgwJSUNBTyBDU0NBMQ4wDAYDVQQLDAVNU1dpQTE9MDsGA1UEAww0U3lz
+dGVtIFd5ZGF3YW5pYSBQYXN6cG9ydMOzdyB6IERhbnltaSBCaW9tZXRyeWN6bnlt
+aTAeFw0wNTA5MzAxNDMwMDlaFw0xOTA5MzAyMzU5NTlaMHAxCzAJBgNVBAYTAlBM
+MRIwEAYDVQQKDAlJQ0FPIENTQ0ExDjAMBgNVBAsMBU1TV2lBMT0wOwYDVQQDDDRT
+eXN0ZW0gV3lkYXdhbmlhIFBhc3pwb3J0w7N3IHogRGFueW1pIEJpb21ldHJ5Y3pu
+eW1pMIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEAuiwpaSSQUCOPtadG
+toH0/hcfmSk9/MBfyiaA0ZLKuiTRYqKnX/9b6zytMC6wWrn7Rn7KvAkjUYgfAS83
+xf+vA/qUW7EjEwIao6/Gd3/iJfjvWFV8qIqofDkCfL1ql/Oum3rRXvHm4r5+eieK
+9l+Ghz/Fvuw9K9jC0VgSLb+UQcb7UEI/xEiQCTHcPen7XOa8UYRgt1fbtvQJAAJ1
+vFXBCav3FXENobZH2VJCR6a7cBR8LaqV8mAP+ZF4ZR+vlBnYcpOCiHnuhEishStb
+acDeOZqMerI+YFSYLPU09V4ItHWhv55Wag4lTyDY1zzP/gQCdDD80zW1jnT54Wum
+g4x88Z6L0sd3fV2RKrkWIDJAB/IGJmcycSsOw2xzFLDhgf/BLSP9DMvr3YyflTGy
+t6yPXIAWSpo6e6aqbam9KrkHvVU/uJr/okidRqXDh2iUkVsFELkuPQa/gEZomeJg
+ZpWD2TH/Wk8ModsbU/LPNYGEeyVRcjm2+iEk2UHUhTiPWEnrAgMBAAGjYzBhMA4G
+A1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFEdS9KeS
+t+LseDNSRSjve8QVpj2WMB0GA1UdDgQWBBRHUvSnkrfi7HgzUkUo73vEFaY9ljAN
+BgkqhkiG9w0BAQsFAAOCAYEAa6p8bPDIttB6yiOVeybZBnqz2H5q+4RuK5w/k3ju
+7Aj/TZoCtkN5aGrxRVCHDRlatyicA6F//Vp/i9deCPslq9sEfJRyGpKJzmZKiEM8
+u6P2Nk4ydITxsuX5k8eKU+vz1EqoIB4kmbhNV9NWHvvcCXJiLIs/64QrSZoern2F
+/7uC6NW6KKGxV3lWtZnfzg+5fgxABMXDVz3zacA2lqsBq7Dpi+2RCBcecMFgQnrE
+3feZFicJSUv/uDyjDjxbnlRzFWNgk7Df51Bk8bebDHOf7TrJOanckuS/BUdjRCRS
+ok7OeOW3zGgrYDpbuitq+dhJL4tE4jrvEbTZmmiOG+SsaaEXqdy/1g3g9ilIqqnk
+l6E2ajwQqJjXsqN2bsvTxD2A+SzdBxwUzsrZ94RyXuJnb8kEG6jkUqX8MXGfjqk4
+XtJype4CFy25lSwInYwX4IbaE3jBfrUAVxHZy26tWussxonGFq6a4WXvoYkl4nfV
+oLFqA05rHY2Plov7KtrsLVvz
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEvzCCAyegAwIBAgICAKAwDQYJKoZIhvcNAQELBQAwcDELMAkGA1UEBhMCUEwx
+EjAQBgNVBAoMCUlDQU8gQ1NDQTEOMAwGA1UECwwFTVNXaUExPTA7BgNVBAMMNFN5
+c3RlbSBXeWRhd2FuaWEgUGFzenBvcnTDs3cgeiBEYW55bWkgQmlvbWV0cnljem55
+bWkwHhcNMDgwOTI2MTEwOTUwWhcNMjIwOTI2MjM1OTU5WjBwMQswCQYDVQQGEwJQ
+TDESMBAGA1UECgwJSUNBTyBDU0NBMQ4wDAYDVQQLDAVNU1dpQTE9MDsGA1UEAww0
+U3lzdGVtIFd5ZGF3YW5pYSBQYXN6cG9ydMOzdyB6IERhbnltaSBCaW9tZXRyeWN6
+bnltaTCCAaIwDQYJKoZIhvcNAQEBBQADggGPADCCAYoCggGBALYYRjSdaa2qqt48
+PWMGEMh9CTIj9/BM6iLeMEHZKmJHGLzIzJ8i3SJfIliZxJTPmf72U1tvxYzl6ytd
+gsTWx6YKnYpjhSnri6a9vBE2TItr9xELz6u+IOof1o648nttSc2KNE/g+HWv9Oyd
+NNY7oZawgSBuU/y8EZdpO7GdvxogSphOXmHeRPRh7keTHEitsz08WmHp2ayj41kR
+gtrMuoLqHdmoY8CZFhZxngKRvK6aGz3CtYiailAEiw6mS1nn9VRn2Ont/5Ns6wFi
+qwqhSbWMJ4Ssl5Gzooc8tna05IgjLRpuw3Bq3au71y0obvfc9qZounkQmIlLlJx0
+fvey+A4igFYKh9Cuut17LLxJqlerkdqjQlBnkaHFUZs/zXpUJhb/sol8GTd62HzG
+AjcPwbPF8rhZLpz0jYhHB04p+ZI1zX25848DcIEbGTTPNFAh4vS6ua+s+rLoOYUv
+NydxCnirv45rt6e3psV47SYX8+Kv3W7Hj1t8aF7Yof+Jj/u2AwIDAQABo2MwYTAO
+BgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTIlGhk
+hnEQt/yOe4Jn0NWxlwvRbDAdBgNVHQ4EFgQUyJRoZIZxELf8jnuCZ9DVsZcL0Www
+DQYJKoZIhvcNAQELBQADggGBABKcSVK2bFVM4Zd4trH2wB+FYc92SpfWCJHOREKu
+jcCRCJkcwvsxOH+Rq7AwA9PSbESxsPX7EcP362xLfxn49lryOX9eyAosyVD68YGT
+NwRczyAaUvViM7piGDO8oUKE/dFQl7JEuA85zRjBLRjvPhsRqIp8UNCayr7eu2z6
+u6OroI/OTUtOVPqZshzOcUcA46kJ8SZAbVi36OwShY+o7glIp1WmgjyNwM4Rr3CI
+OCXzDJyfTfgQ7tCY+kgAlqlPwxKYZ6pfRP9jybO7fRstPaf8P11vn1tFrpRDMfEW
+ro04enlQtNGx7b5feikzwVvQfL5lDNxsvgMnnS6GTB9cKgeE1nXmYSm8b4bGAc9V
+s1/28ZJqFhvBkzm5Zf3iUNyfnvTualywSrLCAoeawKaPL/mPX2Ra6IcIF8IoHxTy
+vhbpVEEQnXXGg89b2MjjJjpYAsoElLvZ4qBWFB8GI49dtHNex/el1CDR4ukb08z/
+e2LdqV+4Qcp9MCMPHz7SY8Pcmw==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEvzCCAyegAwIBAgICAaIwDQYJKoZIhvcNAQELBQAwcDELMAkGA1UEBhMCUEwx
+EjAQBgNVBAoMCUlDQU8gQ1NDQTEOMAwGA1UECwwFTVNXaUExPTA7BgNVBAMMNFN5
+c3RlbSBXeWRhd2FuaWEgUGFzenBvcnTDs3cgeiBEYW55bWkgQmlvbWV0cnljem55
+bWkwHhcNMTEwOTIxMDgyODM3WhcNMjUwOTIxMjM1OTU5WjBwMQswCQYDVQQGEwJQ
+TDESMBAGA1UECgwJSUNBTyBDU0NBMQ4wDAYDVQQLDAVNU1dpQTE9MDsGA1UEAww0
+U3lzdGVtIFd5ZGF3YW5pYSBQYXN6cG9ydMOzdyB6IERhbnltaSBCaW9tZXRyeWN6
+bnltaTCCAaIwDQYJKoZIhvcNAQEBBQADggGPADCCAYoCggGBAOPxsR7cBgMJgc1F
+7usylh0gKpwVjERSG7xYOPICYBWvZIeyPulYCFt6N60WbQmCeAGywv85qt9PGTgy
+iXTk1zz9E6qhiLHy5qumwxjSM3nbVSu8fsE1ryvWB2a0R3mRMrHO4MZCBWM8za2S
+k2H0W/MFN++uIRYlOCdNvpfVwtGo6hN1wiP0J2WI5FeurnqUWjr7Kne+sygVVpEQ
+1z6nGpvZivdB/0aaYAoa6IiBOdoeAmRbqrd0+tm4i6jfP3vj0hP/33JsmBBCaqGI
+H+CXlZcTLJ3RrYZlW6yqMzrB/gFsB1kPLNiFjaXRmvQTYEH/K2vu2SEb4wmeQk/6
+5jhqJKrd2fVPHfujKCtIxELEFAKAiTzYqhCr5HL+547BOYx6094sz54Ug2GKvQWg
+kS4RHdzxZd2avi9YG++gD1arpO656hY6id33LXW2CLYpBrHhHet5dD7daAOZzADg
+a0JwQd2dvmytq4IIEawh3vGpGqrwd2PdSvXpDMIHsYwYpYNTzQIDAQABo2MwYTAO
+BgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRThXBm
++CUo7sF7ffJk3tDqATIEzTAdBgNVHQ4EFgQUU4VwZvglKO7Be33yZN7Q6gEyBM0w
+DQYJKoZIhvcNAQELBQADggGBADHicn0MWBQ6BaUmtRC1i3bJbgLkQYMuqsv4hO5A
+hDN/LqG77bW/u0/bnYIxnxvKl4+rV4fnRfKJW8HlLRH1rprSe65yXxyQvl283x7f
+JLzu9ScnLVyK9PgzhLq6WCjntFFOBcSBsLx9C8e0OsJIyzDjq0Q3n2oWf43LFnh/
+ZA/AUveJGvQJ1ZxH21PS89bqZUmf6wt9FOul1Ha6ThOdoDlKVHYNlhEPv0GquQap
+TASoty3tFu2bnzJGyQkA6O3OBHMaWm1Y2BB3FsbrySs/DTqxhjLXKZWrM+oKLMmP
+rHMz8Ht8mcau3+aVgf8mD7QzIv5FiImXwDvv+Fx/1jzFrav9BDO1hxdyARgJMt6A
+enMCfNWzm4PnHKDjlmnlxa5Ta33IR6C8SF1Tu9RrkVpUx9L03XaOAa4NkKhPKJKG
+upnjpLJN2UAO20BuVh1Je9/osHwdv48zx9xFT87GOXOWiH+6NTJli/UqVyYRHam7
+aauAQ5RnubVsFsozwMkGs5EeWA==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEvzCCAyegAwIBAgICAkgwDQYJKoZIhvcNAQELBQAwcDELMAkGA1UEBhMCUEwx
+EjAQBgNVBAoMCUlDQU8gQ1NDQTEOMAwGA1UECwwFTVNXaUExPTA7BgNVBAMMNFN5
+c3RlbSBXeWRhd2FuaWEgUGFzenBvcnTDs3cgeiBEYW55bWkgQmlvbWV0cnljem55
+bWkwHhcNMTQwOTE4MTAyMDE4WhcNMjgwOTE4MjM1OTU5WjBwMQswCQYDVQQGEwJQ
+TDESMBAGA1UECgwJSUNBTyBDU0NBMQ4wDAYDVQQLDAVNU1dpQTE9MDsGA1UEAww0
+U3lzdGVtIFd5ZGF3YW5pYSBQYXN6cG9ydMOzdyB6IERhbnltaSBCaW9tZXRyeWN6
+bnltaTCCAaIwDQYJKoZIhvcNAQEBBQADggGPADCCAYoCggGBAMgRvOR1bwEQoyWw
+Yt+nYRNye/2im99Ryw9ZP2cpv2pDFc/+ND3riyc7NdulbbHWutoM1LiX/dCn/ct1
+PUzeFuc/ER+n+l7aoF1JhbLY0uSbOIuaS+1/8ZCu4oEWktSlJkBJKk6rMgZ39xuW
+eS8P0AmJHeiI75RbT1Ccl7iflw2Lt6pIXF++Xc+DZhyckCzxtelZoC4RkbWMzyZ8
+VoQAyIJX1c0Iy1cZrqSUb0LJxrbZuDB73Xq7T7RF4sN8SXpxCHqUXnsLx1MSDaCH
+UYky4rv7MBTkLaqusfs0MzEsf7SSJka9/kwXy/cap79NKJ+9aWdEPlXxosHctaRJ
+n8DqY52S170gCd5RDONgQzLJ4Ykhbu9zzJXBiAei9+j0+vJXHbe6xKC3rLsbbPIK
+m6Q0ozLzv2TsKSxzwnRjfn1lahpUibHV11K3OCYevWV8TC62HKWOBh2jzAS6JVO7
+VqN98D8LfhSBdYiAIPtp1ez1OmuxckMEerJT9Bqr4qdY9ziiSQIDAQABo2MwYTAO
+BgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBSWNUur
+wU/HEQ101szKVPuuAxGaJzAdBgNVHQ4EFgQUljVLq8FPxxENdNbMylT7rgMRmicw
+DQYJKoZIhvcNAQELBQADggGBAA1y393jGsLhVL5k5+b/hFkphJaqlc7/aYNKj9eX
+sgF7iuAoNtRbN5ldxBECndyWNyNhO2fcxeskqzq18AXLmDo1JO7zfQATBEJFg6Iz
+N5gSuQzMr/XqINNYzNF0WsF9ajmze+JTzcuf2pBdHqP2p24OgJ6nyy/SMDT8lvBQ
+Tnb7xGVVZbMJ3Y2LNbVr87ENoofHQr0mlNfuqKLPZ+H6thUdLnQvfGNxtWZJrUHn
+9vw7AA8d+/meW9eH5iGqKKYzPNOat5aBhRwiNpQ6aa94dK3zv86csi/eL//sJKXv
+Qj3ODpF6pV4xN3KOAna2Jm+DQ7Y1+1EeVuVWb+OI8DnqqImT5ekI0APRIWLbZwZU
+Wbhszfx7i/1GKLaZp5z2ECIRpDA6JWRcctCKtzwUUrUGyLP1BOswwwa5+ahnB1vI
+0CpVxSNCvQh8EDeIaoMfPNZ+xGaIHzuaEqCUM6Gb+BlfIfPj5yuD3vBqTB82O8D6
+IsMxgNtovk7tesBSKThrmMeS5w==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEzjCCAzagAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgDEKMAgGA1UEBRMBMTEN
+MAsGA1UEAwwEQ1NDQTE1MDMGA1UECwwsU2VydmljaW8gZGUgUmVnaXN0cm8gQ2l2
+aWwgZSBJZGVudGlmaWNhY2nDs24xHzAdBgNVBAoMFk1pbmlzdGVyaW8gZGUgSnVz
+dGljaWExCzAJBgNVBAYTAkNMMB4XDTEzMDgwMTAwMDAwMFoXDTI5MTExNjAwMDAw
+MFowgYAxCjAIBgNVBAUTATExDTALBgNVBAMMBENTQ0ExNTAzBgNVBAsMLFNlcnZp
+Y2lvIGRlIFJlZ2lzdHJvIENpdmlsIGUgSWRlbnRpZmljYWNpw7NuMR8wHQYDVQQK
+DBZNaW5pc3RlcmlvIGRlIEp1c3RpY2lhMQswCQYDVQQGEwJDTDCCAaIwDQYJKoZI
+hvcNAQEBBQADggGPADCCAYoCggGBAJ8AkjdkP0euUKArJ7Rqj7xgLTicXDK7b/vJ
+55w6MHMd5elzWv+dhoD0CKnO01Nt80VLTbfmqpnKudUpNiN6Nx53eUnKRvutNt+i
+T6ZFBPN4hx39PfRhsgTILA9l4xVLRWri/MkP+soLl1BFRCneNsZ9KWd32jd18QYM
+E87YAm3jfuT3dcfCtxoYTRkrGqStP6nX0wMbr+QvfZl8qNosqO6Sr+20Vt8tb0uZ
+ri7g6EhrKUn0IiXiqYHLKOrdsh2WBcNPNwK/PrCNlLf7QMnBwE5MegujFLoaJNks
+vezJt0dOGwi2ZAGOkGQAeSNzL9qPSc4+f/D+e78sGctAMx2jYHmH8Wq461BjjOes
+msekfIh84f8AbLf+3JCqn+J/i9SwyVzCNe+CzyS49/FcgOfvfMLUWWjxAt0L88lT
+Vch5MJ10MYWcV3LhorBAXMjJThnnHlZ8M+CxnNfJDYrXJX50J3meQ+J6XZnO3GeC
+aKh/vkkzJSfRDaHmuy+/8saJKZoZmQIDAQABo1EwTzASBgNVHRMBAf8ECDAGAQH/
+AgEAMA4GA1UdDwEB/wQEAwIBBjApBgNVHQ4EIgQgzcmGZWZ1McStyth0oqlKcgle
+7RygrC7xTVOi0sk2640wDQYJKoZIhvcNAQELBQADggGBAGBPhjazHREZkmBHSDm4
+VDKl+ESz2rpWJF89CwqaxzwBhk5rHQVjgslJcFi74QdmYYA4vJr+N8Ue+N8I1uds
+d+9NdHN6RkRBMcEwnVVxZkZYhCoTx3fMWPp9QS3w2x6kgYPWYgv6xFg8odgLVIz6
+kRY4P3SoN9YL+gEJRgrlY5fOs+62WCSVot3227PhKk8ds2n1plgN8M9rDZsl3ss4
+c2F3rikxXk+H56W5gK39X8OrsIK0EG5IE2AkhwGjdytm431Pak46xAbxgNMC2T3r
+MadtEYE0BsZnL6SExQKKQxuZnHZ/N/YXLvv+hiO+D0vWAxuG4Hd5YEXLIuwGTqWB
+IXDgQSdoLnD+Io3KSaGaeIpWZ+cBmFnNs8uYmhqTFpazC1nLRI/KjYE/H0eUIQcD
+JdY26freGTUBjblhhqzRlOwaHZE1EfBcLMu7wl5tbG5dAYyjRYBASaeM9AIXoFr8
+LLs/CTiNNJr102vYlcGtOP64dULfmOtRYXkfcD9+7zeyMw==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIE1TCCAwmgAwIBAgIBDDBBBgkqhkiG9w0BAQowNKAPMA0GCWCGSAFlAwQCAQUA
+oRwwGgYJKoZIhvcNAQEIMA0GCWCGSAFlAwQCAQUAogMCASAwQTELMAkGA1UEBhMC
+S1IxEzARBgNVBAoMCkdvdmVybm1lbnQxDjAMBgNVBAsMBU1PRkFUMQ0wCwYDVQQD
+DARDU0NBMB4XDTA4MDMwNzA5MjQxN1oXDTIzMDYwNzE0NTk1OVowQTELMAkGA1UE
+BhMCS1IxEzARBgNVBAoMCkdvdmVybm1lbnQxDjAMBgNVBAsMBU1PRkFUMQ0wCwYD
+VQQDDARDU0NBMIIBoDANBgkqhkiG9w0BAQEFAAOCAY0AMIIBiAKCAYEA1v8yx07z
+90mNKAafu1kNKOoRmc9qbIKH0Fjz1JEtu+5A5X65q9NUfm7uWjaX5mQTkRuEjeP1
+xoWy6g3ReAgRd/62GOFeNGDpnBRcfxtUGUyT5yHxQMWhgdyVgT0452LE+LQUr2xu
+vrzOWPpsigu5ZeDD13NlNGEeYTUxvtKnkskqizmtP2yinGqInWUh27i2hHNqtyBZ
+tcf/CC+E4ilDS6h/lYokhXGpMio8P0QeuPelkQdwRR3+y3Eek87dq2Tb3Uwn0BhB
+ccV/ofq3Lr0vn0kJUL9ukGfnz9CEldhRUgDQ51HebCcQwk9IVJbP4DN/wwaJrqun
+BRz5k1cfL/aRuvi8AoEDCjoZLdqq+nbC5mHKdhLi6V91AF1p7n6hFqs4huWdlrP5
++zO53Srp7GDTjpgZu9kjfljZu0w0XGqZxxzi6uIggEJftUUrHvlv09SXTg2KFxp2
+GBSWy08oHHwsrQh6ERxvvzN1idwASBQ1Aq9MMaYyISRcfceH0jv4SrSPAgEDo3Iw
+cDAdBgNVHQ4EFgQUjYs7Vu7DbhGsBZ1AnM9ik2QvRzUwDgYDVR0PAQH/BAQDAgEG
+MCsGA1UdEAQkMCKADzIwMDgwMzA3MTgyNDAwWoEPMjAxMzAzMDcyMzU5MDBaMBIG
+A1UdEwEB/wQIMAYBAf8CAQAwQQYJKoZIhvcNAQEKMDSgDzANBglghkgBZQMEAgEF
+AKEcMBoGCSqGSIb3DQEBCDANBglghkgBZQMEAgEFAKIDAgEgA4IBgQCAdkGmB+BN
+ZQMIX6A9LjC2tg9Ds6PiyQJKGoryY3PBZ2oUk5XXr0NebxqDpaQ4AtBtveSJqthS
+t4o86mp6WOBKkLzAfaG8fpnGz1eb6b/5TMAExOnsdLTLSO7k9PDZQbTsxLeP7Nxw
+WWh7smSvGhGy30nljIL4yC3U4KRE4T8xH2K+ugxwIj/q8eUuDdZRuFRnXaFxPYKC
+w8vS+fac/H+qUfOlA/cIG4z9lV9bQdUAwDetqjWW6HLcHK62kokhEoZec0ZBTl3t
+cL+K7ouUtbKHxFbOO3DJX//r0IWozeLawRmFOPshNYtERJg2FXi/VnPrrn1sHv71
+pAMWZNuLQBitVyq5U8YOt+gAvwlVwd/nXfV8F6f3eCM52N++TF708aPwQqXkvjjG
+SN8v66yfJE5x5yPS5tABJGp7loH7TvvWRYfC05gvHg6ses7stDJS9mageS5Po6Dh
+jxCzEPIwIs8V2bSN+mBkTahovz434Zu8x2IqtkX5f+55hHPxkws9YCo=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIE1TCCAz2gAwIBAgIBATANBgkqhkiG9w0BAQsFADB7MRAwDgYDVQQDDAdDU0NB
+IE5MMTcwNQYDVQQLDC5NaW5pc3RyeSBvZiB0aGUgSW50ZXJpb3IgYW5kIEtpbmdk
+b20gUmVsYXRpb25zMSEwHwYDVQQKDBhTdGF0ZSBvZiB0aGUgTmV0aGVybGFuZHMx
+CzAJBgNVBAYTAk5MMB4XDTA2MDgyMTAwMDAwMFoXDTE0MDgzMDAwMDAwMFowezEQ
+MA4GA1UEAwwHQ1NDQSBOTDE3MDUGA1UECwwuTWluaXN0cnkgb2YgdGhlIEludGVy
+aW9yIGFuZCBLaW5nZG9tIFJlbGF0aW9uczEhMB8GA1UECgwYU3RhdGUgb2YgdGhl
+IE5ldGhlcmxhbmRzMQswCQYDVQQGEwJOTDCCAaIwDQYJKoZIhvcNAQEBBQADggGP
+ADCCAYoCggGBAM3JOU25iNJGd97Obv9R1xGz361dNzkPquNhnHR1ModXjV3mDTX5
+qayQSf2/Pzd+MFDp8JPBfocbBUBgEdYWTRdPOv5xzK8TkOk32FgF4NPKuqMQ6r56
+c854HaV97/fmgY25lkv9bKjZeJckjRuSorb9zRgrjyaKzFnXF3qJnd7zzysK9Wv5
+BG7f8Y6Nazrk0BgCwWGQGKcmD0hzSuHMn3oJQRUF5UP2XtqObG2x8DW2KNJX/e6B
+JXMKVkACYSzp0Yc14BuQ0p463w0oU7EDqj+2ekxSojJT5oqgadeeYqCV+W3bsJvW
+8lHKkeT00EfibEfKyGusu9Ch42VRFPWXV7PcWE+OiSAfkje8LSyBJu6g/LAt5Qxq
+XgXArTa3EC84jl6iRPUfp8qf1LslWAa4N3/0Nf4dPQ9QJs0CrkLwpD63dZ+gyIIN
+98/3ueRHb8GzRLERscWzqsbyr0fLovmK5+MtH28KinYTBmeGXNnnnxnvNel9BfO6
+/OCkWlvO8/erZwIDAQABo2QwYjASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB
+/wQEAwIBBjARBgNVHSAECjAIMAYGBFUdIAAwKQYDVR0OBCIEIAr42oYJxgTDYxvM
+/KvKNba8qnpk5RftVQZUh+SiMtzJMA0GCSqGSIb3DQEBCwUAA4IBgQAoUqlLbdB4
+gA0utx1x1kcYRlVExyGnWbwX/eDw3DCxE6IRzirh+RqVUlNMavPCf+mkcOVZbsdv
+qn01VBBfq30JUZ7C3FzsNpwWZ7gSwtG+A4n3C6BhgE6pLhl94HLCzbZm9LkARDLw
+PXTEDQwxE5NltDlr28ewtMZn52E+14v7qCQSgRO1pHNBSNSKfrGu7M9C+J7Eb6Ag
+DMSySnmZVv0Ag7UC3oxxSaBfJpl+4f/aOg5EyFefX67l1K63hJEsxLSiZXzEvpRA
+L0ntSoN8YI30JAU2GbXd80+hy12WCTdjrJQa+XzjHx1W7kZ7DZA+SOFJXM1k7FHp
+vf8YSlyuwH84tNPxeNOjaBlguw/4BR2OHOz4XqsQoh5vuWkv0I4omi0+g08TpYKp
+eIe2TEa+WIaPH6PF+UxMTkTstpkcGTgHQdRrUT6B3cmLQeKWxj7HO0ZnOW72OZdC
+FF9DtfuI+gq26CN1Glb6NzQzv/OYYLM0ZS/9dJlCh8KTrRF83UfFFkw=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIE8jCCAyagAwIBAgIBATBBBgkqhkiG9w0BAQowNKAPMA0GCWCGSAFlAwQCAQUA
+oRwwGgYJKoZIhvcNAQEIMA0GCWCGSAFlAwQCAQUAogMCASAwVzELMAkGA1UEBhMC
+Q1oxFzAVBgNVBAoTDkN6ZWNoIFJlcHVibGljMR0wGwYDVQQLExRNaW5pc3RyeSBv
+ZiBJbnRlcmlvcjEQMA4GA1UEAxQHQ1NDQV9DWjAeFw0wNjA3MjQwMDAwMDBaFw0y
+MTEwMjQyMzU5NTlaMFcxCzAJBgNVBAYTAkNaMRcwFQYDVQQKEw5DemVjaCBSZXB1
+YmxpYzEdMBsGA1UECxMUTWluaXN0cnkgb2YgSW50ZXJpb3IxEDAOBgNVBAMUB0NT
+Q0FfQ1owggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQCvUZnqqCTF+LC1
+aqVLMoUsigvNhOcqWfKu+XGy4NvS3Je0LICgRZe9A3IUnf5N0ArDN3jdmJrX1ug0
+0XwuRgG+80OifmMH32kFLyB0+RbPFmOJWi3v7mxwMdtLQw1xTdhgv/WMPRaxnlbf
+Qm3IZXhwTvrBsZmI6q1y54ibmOc63UsAZdqDc+t9AIX11oFwq3zO4MBxMkCYsEfh
+JoylB9Uhufdk5pGEdTWUTs8aRuPFWrS3WzhSmoWDiR8hCiZnYhSJx5I8g/vKfRyj
+JtpJXaqvWRbnfnL+iSJl5cCUH9f+bIL026BZY6tF8EsNiloay/qewEKAlNdxXczJ
+l9OShkUuKeVrpYlUhD/B9g6vXUMrkznax5l273KS79kk8GgcwZmY87qZwp1wE/Q6
+Rc/iDl4Bcum/nezXVrb+vnMprbSwid7Wt7e5z2rXtsP/56Sa01N/kJ3C+UKlSuhd
+9kTOvmLPUMwOVKld75WqRKZbw6B+JtNvBCeyu89wrGkt527RF3kCAwEAAaNhMF8w
+HQYDVR0OBBYEFLSBmfXskNo/DW+fOn3n4MF1lJYsMA4GA1UdDwEB/wQEAwIBBjAa
+BgNVHSAEEzARMA8GDSqBS7cYAQEBAYnIsmswEgYDVR0TAQH/BAgwBgEB/wIBADBB
+BgkqhkiG9w0BAQowNKAPMA0GCWCGSAFlAwQCAQUAoRwwGgYJKoZIhvcNAQEIMA0G
+CWCGSAFlAwQCAQUAogMCASADggGBAChyozpMnqq+HarcDKatzMbFnbG4YlgbZXfS
+kVsAK3y8qWli1oVI6TW8U199xsR/GVACjJ1YLE8hiHjmtG8mSh8MUM7qqf0JnjFo
+3g5/q/jJH7+d6BnPGWsc0s/vwzfla1Oa/bozYeOYq9drMkDzTfOGNEDWisWma4RR
+B5F7ithB+/7dxnZ3xOrJcoemkw4qeCbZN86FToMo2eNc8CbtlI6AixDzzKC67LS8
+YiObOFwpn5U09aBwcW5oUVGvVmeeQ9XRb7nkocHm6ElpWlhwvFVejFQR0hDSKazf
+eFrRYPb7n2MsAg1wLHABOJPoEA7yENjXh5maybtv+ksUFdJ469f4n4cvVyQOeDtZ
+XBDmG2YOVyaSOjxVkHsTbR2PTW1s9cvLZwxf/6Nnq9gpzIf+VzBJSxGyrwDWkKnA
+tnFnFsk3q93/7t0qmIyf2sxCi95CfTFlR2Brs5GwqCczFT5DzMt4NKXWiAx0DfC+
+6MTSBMSW5O/G5ZryNPNl79qLqhXn+Q==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIE8jCCAyagAwIBAgIBOjBBBgkqhkiG9w0BAQowNKAPMA0GCWCGSAFlAwQCAQUA
+oRwwGgYJKoZIhvcNAQEIMA0GCWCGSAFlAwQCAQUAogMCASAwVzELMAkGA1UEBhMC
+Q1oxFzAVBgNVBAoTDkN6ZWNoIFJlcHVibGljMR0wGwYDVQQLExRNaW5pc3RyeSBv
+ZiBJbnRlcmlvcjEQMA4GA1UEAxQHQ1NDQV9DWjAeFw0wOTAxMTMwMDAwMDBaFw0y
+NDA0MTMwMDAwMDBaMFcxCzAJBgNVBAYTAkNaMRcwFQYDVQQKEw5DemVjaCBSZXB1
+YmxpYzEdMBsGA1UECxMUTWluaXN0cnkgb2YgSW50ZXJpb3IxEDAOBgNVBAMUB0NT
+Q0FfQ1owggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQCkpr7fpZae5WRx
+FPPmEMq4IseyEJjmFWzgc8ym2lEej5q2ob0dpk7WsFmCJMmG7xATsHnFQal4ZL6x
+PW3mOpCjWEjwi69ZlxuWZx+RUxTrYNr7GeAZnFogfWBwPdASvrPBzqF+zUAMYCaq
+SJDqxcMR/yeSh9LnVBDQrve3xLxjoQZ+/EkDGsZjkyOx2jAsH0DVm06QDF1wpS6W
+FHxph6iifM0c8gQ0X+RJdNxm/5czHCqCwbvH8h39M0D1S/0ME3FfGoLe33ROOoDM
+6iyGTfe397zWhmclSlGXcFSaK536+8tZuMl4SimY86oItOgrpMep3lbt1LqzbbV3
+/Tzaf3pKDbtFGHn8+r3FH927g6kdUhtQFmFQSMe6Dk02F35h9Ji69Qq/ZWvxv7fF
+m+EjbigUTONmFVxFM2EJHW5ysDXtqQeqatkCH/bpY2CaZpGLvE785kc8sMVEWS57
+gbju+imKqjDprU0CJ+VmYO3/T0VT4h6/wF7hPVVeJrZcyOG/pL0CAwEAAaNhMF8w
+HQYDVR0OBBYEFLd4lxmAgngbWQxK6fiEsIv2AkCIMA4GA1UdDwEB/wQEAwIBBjAa
+BgNVHSAEEzARMA8GDSqBS7cYAQEBAYnKmXwwEgYDVR0TAQH/BAgwBgEB/wIBADBB
+BgkqhkiG9w0BAQowNKAPMA0GCWCGSAFlAwQCAQUAoRwwGgYJKoZIhvcNAQEIMA0G
+CWCGSAFlAwQCAQUAogMCASADggGBABtL+RZVJvRLQOpAiueTJ6pnaH7+r6IzPdIk
+j7r6g22n3p/hdx+nxplM0CNH7duEKkqCo4Chh9hdM6qmrrc11pZ4+ubX0BHXN8rR
+UHtXAnON7Yt+UJutZ7Z+M8gn0iio7hJgwhFzPLb/clNta2xpvQtuDsv4PoNbh/x2
++DTrZhFFYU4u3c1sv4sp5YUxazJgYOsRveivlx8Q887TTeF6RIF1lic2SD3taMFR
+HAh9JwMdldwWiaRffXOqR3ra9Ff9L7YxF50dLglATMc6nFGkHnb4eT4KY3M+liQo
+CXkTyK1nih3nvQqfPopJiuIpu7qUxK2n4WrF7XkZ+XWv3ByLZouuLpZy9pgtA78p
+6EnwRxswATp8P7TjQwY23pBKh8v3ehv1qr7q27KsAFeHPYcFOqBrEUCSpT3J0vN8
+nCMeEwH6P0YaTNh9EJ5L/Sa1GoSQljMVbn9DU/HK8q7hXHxOEi2tAl5Q4I1MT+K2
+jQfqrCY2NhZig/mNG6xprPMfTSSF1w==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIE8jCCAyagAwIBAgIBdDBBBgkqhkiG9w0BAQowNKAPMA0GCWCGSAFlAwQCAQUA
+oRwwGgYJKoZIhvcNAQEIMA0GCWCGSAFlAwQCAQUAogMCASAwVzELMAkGA1UEBhMC
+Q1oxFzAVBgNVBAoMDkN6ZWNoIFJlcHVibGljMR0wGwYDVQQLDBRNaW5pc3RyeSBv
+ZiBJbnRlcmlvcjEQMA4GA1UEAwwHQ1NDQV9DWjAeFw0xMTAzMjUwMDAwMDBaFw0y
+NjA2MjUwMDAwMDBaMFcxCzAJBgNVBAYTAkNaMRcwFQYDVQQKDA5DemVjaCBSZXB1
+YmxpYzEdMBsGA1UECwwUTWluaXN0cnkgb2YgSW50ZXJpb3IxEDAOBgNVBAMMB0NT
+Q0FfQ1owggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQCdFhq+ScQXepAA
+0kp0IwF/nEv+Md3Wx41Y6WRJkTVVyU6CFPlvr/F6XLGX/ILJtM8QL97CgojDVQbE
+ccNxUsZ+yjtB4n52ttWYLBN5nktJksP2aBVMu1fqoyTqBhaf0JtkpQjWKNVJYbUH
+k2pXkzGUJ+YHG04jOEYIKNclY82f1Ho1Wd7di4gZ1LCBRTzIU9JVPEMOZdmLx1qQ
+InOWf8deZ4Gmkj5UqzXt7vGQF/TbIedhmfnbulvyHN3UEDMZgVgzkF2fIOaBwu5s
+kfo8e08/J155hZIJtUjXk/moLF8U/4ETo7qER1EkoJ9KIRIvoPwPk2QAI4JP0Hd6
+GgUMEsz0dmTxKHcJZAWXcDaKcwTrG7/xhPTAffdOZnTnOpYQPcKmjUvogqY839VQ
+mwYyo+s51tVrAIe2YcdHhIdBY5SLOhHsDNadpRrBYIa8vzUgtfUH50US7dZuwUu6
+WbUiQu5vmDjvGEUa7F6eehCCf9xXkbPJZoE63t/NJYvHSFa1wDcCAwEAAaNhMF8w
+HQYDVR0OBBYEFOuhT488aYrathCbEjUoztRlSghZMA4GA1UdDwEB/wQEAwIBBjAa
+BgNVHSAEEzARMA8GDSqBS7cYAQEBAYnKmXwwEgYDVR0TAQH/BAgwBgEB/wIBADBB
+BgkqhkiG9w0BAQowNKAPMA0GCWCGSAFlAwQCAQUAoRwwGgYJKoZIhvcNAQEIMA0G
+CWCGSAFlAwQCAQUAogMCASADggGBAEcppLLH0xAkWXbBMXDa1hwqOZfKVdoUVDNT
+G20V3VbDT74R2yFCLWBge9rr7S2LfF/w4Xrl3kyZ2Tn0dYoOmBcqVzH6nCYrniGx
+apPmSkAexI/bjW55BOMe6CVI9qdKayqm99om/2+R+VSAKaopwOKn9IQ+4itNA0VI
+0ZDHbI/pdJClRZ0OPA8DREz7+hZWMNb7S4aAYGdd1fLo0uDKf/siFkUUfkpBtkgr
+4Enb1e8NMU0a5abpI25NgURB+OWhfArLB9jFmnlql6TZADLZfw49bEmr4KOddxyk
+toBmFgu4/uQXcukNWB487iREvEPPIL7A90W+W3ymtlol76SChKKBGexaaNA1JW+O
+sRxoN5FnXTBhyRm96lZOfvF7SjCQHMCaIeYaQ4ajjPJgxB0EbyyJMeSrjh4yJPEH
+pKc3AM9MUCxC0LO/qb5oBio8TQqHYnpyvp2CsvPSezPGh/40hxsKTL8GqTxB5m9G
+g6qpdcDQxM6VtrnTh08nMjaKnfXVJQ==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFXTCCA0WgAwIBAgIESVZmfjANBgkqhkiG9w0BAQUFADAyMQswCQYDVQQGEwJy
+bzEMMAoGA1UECgwDREdQMRUwEwYDVQQDDAxDU0NBIFJvbWFuaWEwHhcNMTExMTI4
+MTI0NzIwWhcNMjYxMTI4MTMxNzIwWjAyMQswCQYDVQQGEwJybzEMMAoGA1UECgwD
+REdQMRUwEwYDVQQDDAxDU0NBIFJvbWFuaWEwggIiMA0GCSqGSIb3DQEBAQUAA4IC
+DwAwggIKAoICAQDddU24oqUZpFcPAyatYRE8BhPm1Ud75yQKp7b+X4bPbQR88Sk8
+pH+V3CYwV1CPrUN7DlrdM7tUkmpLNjUyeCHGjSbdjHvYr01n7p5rNZJq7uV4nV/A
+PgmV4WRKBLUO0zPz7WH6DJ/qlTu6NGobGSj6qEBpslyazNJ9flZ0+pZuEoRjafnm
+4XVluKTPPhI3MPwZhX8nnHVa+SxwA5A68vXEHbqk3Yg/s8+8Uv7hN/ytn6CFxcbr
+ECcCXS3klGEyhLxd8yl2Wt6lvGAguFG0T2uj10Dp+/xR6NgKa8bFvtWi+JGIeDY3
+E+0r3+DKTwjdcIILmTl9+ITpTR6zOGizN0uz51o6EWOOc3tz/Bc0WMYZZxbQ6NMj
+//QI6lrlKwnYtkas6hUAVcCRcVgq4c2iWvNNTxKjP2LWx7FK0PivNAKbBc8YAVhZ
+ElyA5NVnBDjCPHO9JucMpettR/2z8NdBrETwroN7fEMzFC3oItF6ooU7Mj3PbL8I
+xQmJ0nSNtV/5TJ2AMrDfH9Sj2sTdnoorIcvpdzyMvu8AA3gBbV1X8mLnTgtBZmK3
+lSregV3JngsxYhQZW4YPqEbLUIkmjMup2oaRoUA1CNCLqU6GIqVeJp7c6ycuAUdV
+MLmkRW3g+r/Z7MIEqd0nIq4+O3pEM4y/5G0YvG6ltqPH0+B2smXdq67GPQIDAQAB
+o3sweTASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjArBgNVHRAE
+JDAigA8yMDExMTEyODEyNDcyMFqBDzIwMTUwODI5MDcxNzIwWjATBgNVHSMEDDAK
+gAhKJO4EtR9gIzARBgNVHQ4ECgQISiTuBLUfYCMwDQYJKoZIhvcNAQEFBQADggIB
+ACdlyzTidwfIP3A7ItRsdn0ull60EH9iFQLUiyZfL9r8EH4XkTNx3vZGu1Zk2Phh
+i53Fnhmx2FPexezcnAXsElqxJ1Z7GWXp3bibnpCylAWQBA0DFQoshrFtprN5z/HP
+FmeIR/j33lJeOVA+IGBYmshaUtVHgO++XcX84PPUYOk5ztKjBwlW1wZldkffSFT3
+nIQgu3nayrrBTz0uS5DcqoIMnuGGGQ+ZncCcWLQ5Usizf4JjCve3b+YwUMYM2KIm
+gkeY5dR4GqpvcsIBRDlk8rVaP+6JdzpPUuP4wIHpeNOQGyD9Hi7zG34u/MwUDz0o
+YY5uxAd2795/mFVVACG8tYQKYHJEs8CbCY23uuDjb9CoqIrCPrcM1AIlpfLcaW/s
+GXK9IOkJWX5QRWntO02rTTRpMDgi2sUSyAULXuCrsPYPfgkziaPVNbxcngjbPIoH
+4Q18m7/W3jCUu52/vWtAfwc7K+rYLrSnRAre2LXoZLtRKaEskIqe8fsx0ocp1W8P
+v1sa99xFdir5AVAYlo9fwjb6TixCE5HnHhskajMyY695URGm0TVTnp6e+9XMXDI2
+/qgwtNlJIZYJeBA90b0u5L62i5pcPXnICVlD0vP0dsqO08GcnP2JPta+PMUBqrAA
+1GORRuuHysBLTRoylU/Bgkl8V0tk7iBFG54uvSYShJaX
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFdTCCBPygAwIBAgIBHDAKBggqhkjOPQQDAzBxMQswCQYDVQQGEwJDSDEOMAwG
+A1UECgwFQWRtaW4xETAPBgNVBAsMCFNlcnZpY2VzMSIwIAYDVQQLDBlDZXJ0aWZp
+Y2F0aW9uIEF1dGhvcml0aWVzMRswGQYDVQQDDBJjc2NhLXN3aXR6ZXJsYW5kLTIw
+HhcNMTMwMjExMDg0NDI0WhcNMjcwNDI1MDg0NDI0WjBxMQswCQYDVQQGEwJDSDEO
+MAwGA1UECgwFQWRtaW4xETAPBgNVBAsMCFNlcnZpY2VzMSIwIAYDVQQLDBlDZXJ0
+aWZpY2F0aW9uIEF1dGhvcml0aWVzMRswGQYDVQQDDBJjc2NhLXN3aXR6ZXJsYW5k
+LTIwggG1MIIBTQYHKoZIzj0CATCCAUACAQEwPAYHKoZIzj0BAQIxAIy5HoKjOG0o
+D11vflDmQd8VL3EJ7VRWtBKx2hl/txEjrNOnKZAdGnGHRwATMQfsUzBkBDB7w4LG
+PYwVDDxyCArOBa+gwr6ijk+yJ4cTkWXvupH5D4qlgUpQOtTrBKjH3SLOKCYEMASo
+x90izigmizm1VBbwRHwvt33hB9zSpi6IDqU+62LVfLQ5ApXbyZQ6t4aW+lBMEQRh
+BB0cZPBoz0X/oqY6gbfBP2uIR6PnfvFP49t/yv4MvRDo6CbgNDbWRqrvh7LiR9Sv
+Hoq+HXUg+cKkXLHrjpXP1VJitwsp/uxYZOGcBU/5kSkoDkZGIXeRgRFCggNBJjxT
+FQIxAIy5HoKjOG0oD11vflDmQd8VL3EJ7VRWsx8WbmysBCWnzzq2r2t/wxA7iDIC
+6QRlZQIBAQNiAAR/cqzN7a5RWFIqF37VePaSghiuCCevYhuCUNFwCORTfS5bcGgS
+lhSG9hn+yaWnEkRYX3659se17mC+Rcjj5BOncCvyHukza205aOSCai/NXayQ+kNK
+LTLZZKt4MCOPUXijggIlMIICITArBgNVHRAEJDAigA8yMDEzMDIxMTA4NDQyNFqB
+DzIwMTYwMjE0MDg0NDI0WjBgBgNVHSAEWTBXMFUGCGCFdAERAz4BMEkwRwYIKwYB
+BQUHAgEWO2h0dHA6Ly93d3cucGtpLmFkbWluLmNoL3BvbGljeS9DUFNfMl8xNl83
+NTZfMV8xN18zXzYyXzEucGRmMDkGA1UdEgQyMDCBHGVhYy1zcG9jLmNoZUBmZWRw
+b2wuYWRtaW4uY2ikEDAOMQwwCgYDVQQHDANDSEUwOQYDVR0RBDIwMIEcZWFjLXNw
+b2MuY2hlQGZlZHBvbC5hZG1pbi5jaKQQMA4xDDAKBgNVBAcMA0NIRTCBtQYDVR0f
+BIGtMIGqMG6gbKBqhmhsZGFwOi8vYWRtaW5kaXIuYWRtaW4uY2g6Mzg5L2NuPWNz
+Y2Etc3dpdHplcmxhbmQtMixvdT1DZXJ0aWZpY2F0aW9uIEF1dGhvcml0aWVzLG91
+PVNlcnZpY2VzLG89QWRtaW4sYz1DSDA4oDagNIYyaHR0cDovL3d3dy5wa2kuYWRt
+aW4uY2gvY3JsL2NzY2Etc3dpdHplcmxhbmQtMi5jcmwwHwYDVR0jBBgwFoAUtGxi
+0Tyr+nC39ta0zSfbhZa0aKwwHQYDVR0OBBYEFLRsYtE8q/pwt/bWtM0n24WWtGis
+MA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/AgEAMAoGCCqGSM49BAMD
+A2cAMGQCMA3GHbcTQZ3aebAGwFlQGsfkCAVnsKVaDNcJZUgJeM2Uw4Y0Vrqq/GCO
+EsyxJGD8NwIwRESdA3f7elXS9WyeX/kPsfZ5AzSRmOVmEDWGVibxO1dgGEhPhQ+m
+GAHK623H7Amh
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFdTCCBPygAwIBAgIBQzAKBggqhkjOPQQDAzBxMQswCQYDVQQGEwJDSDEOMAwG
+A1UECgwFQWRtaW4xETAPBgNVBAsMCFNlcnZpY2VzMSIwIAYDVQQLDBlDZXJ0aWZp
+Y2F0aW9uIEF1dGhvcml0aWVzMRswGQYDVQQDDBJjc2NhLXN3aXR6ZXJsYW5kLTIw
+HhcNMTYwMTExMTc0NzAwWhcNMjkwNjEyMTc0NzAwWjBxMQswCQYDVQQGEwJDSDEO
+MAwGA1UECgwFQWRtaW4xETAPBgNVBAsMCFNlcnZpY2VzMSIwIAYDVQQLDBlDZXJ0
+aWZpY2F0aW9uIEF1dGhvcml0aWVzMRswGQYDVQQDDBJjc2NhLXN3aXR6ZXJsYW5k
+LTIwggG1MIIBTQYHKoZIzj0CATCCAUACAQEwPAYHKoZIzj0BAQIxAIy5HoKjOG0o
+D11vflDmQd8VL3EJ7VRWtBKx2hl/txEjrNOnKZAdGnGHRwATMQfsUzBkBDB7w4LG
+PYwVDDxyCArOBa+gwr6ijk+yJ4cTkWXvupH5D4qlgUpQOtTrBKjH3SLOKCYEMASo
+x90izigmizm1VBbwRHwvt33hB9zSpi6IDqU+62LVfLQ5ApXbyZQ6t4aW+lBMEQRh
+BB0cZPBoz0X/oqY6gbfBP2uIR6PnfvFP49t/yv4MvRDo6CbgNDbWRqrvh7LiR9Sv
+Hoq+HXUg+cKkXLHrjpXP1VJitwsp/uxYZOGcBU/5kSkoDkZGIXeRgRFCggNBJjxT
+FQIxAIy5HoKjOG0oD11vflDmQd8VL3EJ7VRWsx8WbmysBCWnzzq2r2t/wxA7iDIC
+6QRlZQIBAQNiAARYRytgZRQuGrLeH9RMQR0n5qjn9SZvDuic0oOBl/GhVUQN/7LF
+HZ663zJyS5KvsHYuq+fg2KLbz6WfuSjj7KeukoJ1r99UWkbvw24U/zxNQsP8cnn5
+hsHUdrLANAuFZYOjggIlMIICITArBgNVHRAEJDAigA8yMDE2MDExMTE3NDcwMFqB
+DzIwMTkwMTEzMTc0NzAwWjBgBgNVHSAEWTBXMFUGCGCFdAERAz4BMEkwRwYIKwYB
+BQUHAgEWO2h0dHA6Ly93d3cucGtpLmFkbWluLmNoL3BvbGljeS9DUFNfMl8xNl83
+NTZfMV8xN18zXzYyXzEucGRmMDkGA1UdEgQyMDCBHGVhYy1zcG9jLmNoZUBmZWRw
+b2wuYWRtaW4uY2ikEDAOMQwwCgYDVQQHDANDSEUwOQYDVR0RBDIwMIEcZWFjLXNw
+b2MuY2hlQGZlZHBvbC5hZG1pbi5jaKQQMA4xDDAKBgNVBAcMA0NIRTCBtQYDVR0f
+BIGtMIGqMDigNqA0hjJodHRwOi8vd3d3LnBraS5hZG1pbi5jaC9jcmwvY3NjYS1z
+d2l0emVybGFuZC0yLmNybDBuoGygaoZobGRhcDovL2FkbWluZGlyLmFkbWluLmNo
+OjM4OS9jbj1jc2NhLXN3aXR6ZXJsYW5kLTIsb3U9Q2VydGlmaWNhdGlvbiBBdXRo
+b3JpdGllcyxvdT1TZXJ2aWNlcyxvPUFkbWluLGM9Q0gwHwYDVR0jBBgwFoAUdwbA
+TOVJ8CYHjD/wctApu6BjHpQwHQYDVR0OBBYEFHcGwEzlSfAmB4w/8HLQKbugYx6U
+MA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/AgEAMAoGCCqGSM49BAMD
+A2cAMGQCMFo4ObqY0HlAe88Q+NOOFaf5iXFzc82f2VjlY0F4HSmfPgC7G3Ez37lE
+eNi4Mq/JHQIwIO8KBGC/q6TP73W1WKfMbgYhedzXGw8MTTRPiPh2xuEmRKfFmnTf
+hGdxTCdiU4bB
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFfjCCA2agAwIBAgIID9OQB66C9YUwDQYJKoZIhvcNAQELBQAwPzELMAkGA1UE
+BhMCQVQxCzAJBgNVBAoMAkdWMQwwCgYDVQQLDANCTUkxFTATBgNVBAMMDENTQ0Et
+QVVTVFJJQTAeFw0xMTA0MTUwODUwNDRaFw0yNjA3MTkwODUwNDRaMD8xCzAJBgNV
+BAYTAkFUMQswCQYDVQQKDAJHVjEMMAoGA1UECwwDQk1JMRUwEwYDVQQDDAxDU0NB
+LUFVU1RSSUEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDSE9FIBFmo
+J1NPASbZ8X/6vPWynKGDAx4fTZhm1dJ4tUGlqDwZDqB6Xf9r6cJfynMw7j3+Evll
+XWxkJCYyVUj0Nv9+uXnXITj0k+PVYx4UCf3ebacOfPTpw2aZBaSKI1Ykh9ReijYB
+pKliOWRZpTPeqgPuKWyz0n0N05es5Zf32865wMPazG3gINPU+cHCIM2nTj2enFrA
+pwcrRMz8iwfG+0STDcQ9uZ1f38oPPQB/3eKSvfiS6Z63MOZSQy1eZNcpfkfDEfeR
+exT2DjHBUohVyanQJyRu2qqgU+UWtZijdGWddZ95pPi3MWs/ybUalfcd0rlVndy7
+bmltYvOOCatiXCyHiE4b2JtLun9GuNDknDjRQlhKBL2IO/luyBP0Vht1j6FNHzE2
+Dz4SMKwOWOCB1vvamLESRXkPDwEX7hZi3jLAD44872qrpBPJ3Ugz6TRSCdyEPzjU
+ZM14qB/4Z0lok5cfjMQG6aFSkAQX/CMoO4aymAVbjArhJ0aBWZh23ZC7qPrhzT8C
+a73/7MZX44WnDCI+v2eM4gm05957To6rTgYm2J/Etu0WvxYctOFvvLtlUUQZzVcL
+FJmwDskkOWx4LJjHVDi4VzAF3vjYSBfNcroPyznNZo1Wth0cLAFI843sRrlpqOUG
++d8lRe/ji4cNXqPTELafIjK8uY2q5B2jnwIDAJTxo34wfDAdBgNVHQ4EFgQUH+FX
+Lps1EhNjpQ/uPiziwdGHqN0wEgYDVR0TAQH/BAgwBgEB/wIBADAfBgNVHSMEGDAW
+gBQf4VcumzUSE2OlD+4+LOLB0Yeo3TAWBgNVHSAEDzANMAsGCSooAAoBAgEBATAO
+BgNVHQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQELBQADggIBAKjWsqHNtDcO7OKiw0Rm
+lsvkn/ubichMi93YE7nm6g4+yfQKA6RaQ1pRgNZzYIaP/rh60vQ36yZGO8P89iue
+gnBdZM9MY5F57VGOsdBsJpgBSVyHn0PnrS14L8lhz/RRCcr8xl3NrtpKrRDtm1SU
+3KaOWfDcOfrgi19vIKbLpLK+SFRI1Ar+uephhIKURzBCSlHv+aSHRFy7uazERIts
+0H28y6ikY+qD5yiWAUsaJJpiSPw7m7XgKBW2R5HxlV4yXC3CAM7GbQ7XhoiZ7IWn
+MpTHAK8rRg268Z62/5Ya5Sp2C9YcxKBlkARSMmTxl6SZHlnL/8vrN6x+ahhUSX8t
+P9SrXQVXGvYwQCx7vZt7CPLeYkHj5aPBZ1JmIu3HcnIOa+AqVgC1Cp3Mlxu54pih
+xzOs5jVjucDoRgLr1VbsJqtu0yVSGLHvTREWVi2gESVYKTWQWByvw79qTgaoIJR/
+7Tcblw9DalQYxPuv5za6vuAXUjodAivMpmGhuhjbrYJ6O04XkKwROvtQILQ+M5RP
+TTU8RMr7LbhvAzCsIzEJ3ra8GUgVxdm4aQSnEc2DjVsMuwT3ycQ09930dhCWUEwb
+zrnWTdkdIuKoP4W83r0S4cqYPeWRjf538Gzj6eg76iH8Xuo0V7R97HaY1Ulqp+8B
+YscI/lTNa96OiJE6F5KOKH3x
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFfzCCA2egAwIBAgIQGHzqHiOX3WtP/WTL93cJTDANBgkqhkiG9w0BAQUFADBY
+MQswCQYDVQQGEwJFUzEoMCYGA1UECgwfRElSRUNDSU9OIEdFTkVSQUwgREUgTEEg
+UE9MSUNJQTEKMAgGA1UEBRMBMjETMBEGA1UEAwwKQ1NDQSBTUEFJTjAeFw0xMjA3
+MTExMTM0MzVaFw0yNzEwMTExMTM0MzVaMFgxCzAJBgNVBAYTAkVTMSgwJgYDVQQK
+DB9ESVJFQ0NJT04gR0VORVJBTCBERSBMQSBQT0xJQ0lBMQowCAYDVQQFEwEyMRMw
+EQYDVQQDDApDU0NBIFNQQUlOMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKC
+AgEA1JREujAXcuKq6BLFOtHTGvPC6uH+mxsSjdQWxSB1Bd8XPvDb0h8Wcu/SPHaz
+3MtYdN5g44BbkXMxnEDtxFUq7j8oyJRj7kgpWmIYDEbUnoAaOYRYOYPknfZ/b1IE
+Njd4d57+CnVmaD5fhn6dlPxA8gNM94AKVg5DIAhlJTBLGofnp5Ef+Xysnx6LkS9q
+2t3g0P0eaUCxnM71ntAiKtXZJcMHxoUxSzd2HWbg3vhYAbGXShc3k2m+G9eVyObk
+s1Q+OIFZpGDWXqxGL2inwWnwg6RLSAnrBIujHyfl20EdxRGAMOn0Mt0IAEbUhWLW
+GRz8Gau17+lfWbjfHnl4EA4mAZ+bO3zFTSB1pww7vK8Beq5PHgPuEWw7h257Hz+O
++jcluu2fH23Qdlok6w62ckYGU73+7kW+tccx0q1M3DhINVuoWuJ6uYnfx6BKFxT8
+PZN8Ej5l6FssW3hUdAoMCFiYZ9iBkH3+8wYaImDLsXroXLC+7KTauRYadgN3rh17
+G+cbP/wBn27JfaCBpiObrQr5p/25ofSbR01rkYe//9jiXDR6pQEjI9QgcqZO5UGl
+HSgWYY5r5vPGRPui7/eU0dY7+OwUMlVDgXNiFGT3ca9ybKsblIjULg+RTO6P/42Z
+JbIaB9VkiHzqhU2AlnRIN6NBVGfSr6AyZLuJ7XhPISusRkcCAwEAAaNFMEMwEgYD
+VR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFP+AK+A9
+9A8cF883i0cYDAHpGWPpMA0GCSqGSIb3DQEBBQUAA4ICAQBexyU+7SsxgEsqfMO0
+s/UDNPWvMyKWgSRqBkvzuDrXBOtyG4V5Cm0KDI60mGvLNY6UHe9mswi3XGztmelm
+C05QeFrIQxFEsrtaYcXCxFeRp49u+S1eT+KUcculCEWQ9vP2CVdwzkwJ79p9/bzH
+8HfWcOnZDtC3y1qhEeh5C45u6uH3n6lxR3BXxGmXyQw3Qd9Vr0wdfwpqE3pYFlpr
++7tToDeMxQCQ11gvKAkxIccrNarkze1kkDuT2tEOErqoX2hqE/wxbFfg0K6LR5La
+J5zcHZzTayXrKMAh7I6ilZORQkegccLReybiFxo6ZC/jdRrXC3lYfoKw4S/wV1u2
+t15V8N8gzmJedlcRm4xt+toNaRinWXPOot/kOIDVUv7/JmSOL0brYeXPGtBRI6Fx
+gd2kWbnvlXqb8eZl17XpOgMeUvkkX9DWd/eILA/4D6FEtbRZq+Kb923FhP8wMsQk
+n5vHsxDSIGSpljtHp2K8zktmq33OBcUTW8jDW9l4MlGpv06AAatxoUD1dXXhEs6X
+0ohxmeCV/WlFBzvfqZvUz+WnUr5K38vJvSHJ+Dl0i+TDnyD26RuO0l92zryF6GxG
+86rFwefj4EtdD3qdKBSaGLG1mNu5mQ6K6Hq/SZ/lQxqMc6xqm/KrIQWgaBwB7RaG
+559rStlXjVevzgS5ASpCFoF/ug==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFhDCCA2ygAwIBAgIEAJiWgDANBgkqhkiG9w0BAQsFADBQMQswCQYDVQQGEwJG
+STEWMBQGA1UECgwNU3VvbWkgRmlubGFuZDEMMAoGA1UECwwDVlJLMRswGQYDVQQD
+DBJGaW5sYW5kIENvdW50cnkgQ0EwHhcNMDYwNjEyMDkzOTEwWhcNMTYwOTExMDcz
+OTEwWjBQMQswCQYDVQQGEwJGSTEWMBQGA1UECgwNU3VvbWkgRmlubGFuZDEMMAoG
+A1UECwwDVlJLMRswGQYDVQQDDBJGaW5sYW5kIENvdW50cnkgQ0EwggIiMA0GCSqG
+SIb3DQEBAQUAA4ICDwAwggIKAoICAQDT3r0O2OvP0IVFRQhI3LhEoUW0ukHN7AlP
+eTmuhfvYRi0vsrBLTyuTlZ8U0XZj4XK6BTkaaiAshStmgTWBrZ+r1IpIgsqQaKCh
+M4YmfaMsqfNh8r4yNR0LPY4OVcLMjwfLwSbyEO3bSs0kwjSWivS4au2mYSqEAuy8
+1FIQMA0+08xatAzV1GFgViSUPVfi/iiAAHIYjYU+g/EcsblPQh/C+ExYj17ik616
+TVT6xKIPKORx5tgIBKEM+riZ+9IkoZhyhHcaZLjtHRMR5aSbxVpH5gHVX8d4w2Nn
+R6r9o9m7/w4pCwrOgeiCX3CYlbUGvYkre8g3bek9VRv114wj2ZO4ji8UUI4qRsGm
+RDPIfa52JbQEMlW/91nlPj4CmDelB8XKFWJkYXDwOk9j7Z4o/+K/3PJPGk8fWWSL
+OxHPS8j8Sng6E2x0VDW1N9Ff+1Wcu/uAtjmnkhIaZI2Tz04mfhCwgEGDPkbMQ0c1
+OqzU94H/ONm92C4fpg3gJNpQ8iGuCguetvUpEvWS8fcTj3ucqlKJ5Ivo4npzSc8u
+VdsnnJe2VKPxjQbLSnsYnfua3PsS/zN2xOzPa9IxsqwGnp34LaKbjNkUjopzuI0c
+zFEf6iD20TeU5zvMeVXDN1v/PSIkDbpvs9JsCMOc5JV6jfw/GHSu+UpogXsgko5b
+EkqueLQhDQIDAQABo2YwZDASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQE
+AwIBxjAfBgNVHSMEGDAWgBT2JHIy9xSB+QBRy0cHJLKZTgx8zjAdBgNVHQ4EFgQU
+9iRyMvcUgfkAUctHBySymU4MfM4wDQYJKoZIhvcNAQELBQADggIBAIhHYB5DbzLV
++vgWfGlKmk7PB8UPO6BnPcEVj28sLUUk58k6WopBoAh39rItl+9UVpG23sG9hMEX
+NDcr8hTxZM1d41hF/XYRhdaBkoOP8PsNlVWUFMRFUTb5+fTD23Xo1kontPM6V82A
+aTWt6a/8kvde3s8pJFPysbs6gjnFYWlbaBIHADSI1ArqiUG6etXdf9g5YEGXbKVQ
+0RI83LF2+J4RZibCB8C5qBCuou8y/ElJG0GXgXNwN/ibFox2WSOR1yPF584lqJfP
+J4lK/ic5umG7J9WgJrt1EfjfbXx9FD3IpJh2wIWqin6hjM1opcxPT5NYvzuJ7XiM
+5Sw7S0eWML4sHLa4r3j3y1ps/7Oa7NQDoResFXUwPGDc8D2hbBeachvv/BnFXv4Q
++wkICwAOPzv/t3Vu1lhhKQDhbOCEzG8qU9luJ6TQT6Xy6ut8zk6S1iMJr8HkQejy
+fajzR1OYW2CvpK8TkNOyJAmnDKyRosm/fskv7vpphxLJf+GddbTCAMp7WA85HfzR
+QoLRtdB6Z78S1MhtdZ6IEAwtszXLZaNpHSFcqSqGH4iB+3pqjHAOAmyh1kbO3nrX
+eG4hfcRk0g3Bf7AaWh6k3EUcIRCTeD3kRZjSVieZLWCfzp/0Bcel5FEc7HLxj5Tx
+hUGr51MJQ1Cn/QiiBHGol8dws6iadx+h
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFmTCCA4GgAwIBAgIIH7RLt6sHQyQwDQYJKoZIhvcNAQELBQAwWjENMAsGA1UE
+AwwEQ1NDQTEdMBsGA1UECwwURWxlY3Ryb25pYyBQYXNzcG9ydHMxHTAbBgNVBAoM
+FE1pbmlzdHJ5IG9mIEludGVyaW9yMQswCQYDVQQGEwJCRzAeFw0xMDAzMDUwOTQz
+MjFaFw0yNTA1MzAwOTQzMjFaMFoxDTALBgNVBAMMBENTQ0ExHTAbBgNVBAsMFEVs
+ZWN0cm9uaWMgUGFzc3BvcnRzMR0wGwYDVQQKDBRNaW5pc3RyeSBvZiBJbnRlcmlv
+cjELMAkGA1UEBhMCQkcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCq
+wnz4njoYJE4WFAHiS+83MUIn3JTQYZCjgsSAH+0cnhRYOKT40xPOQ4MH2bhnlggL
+EDUSjnTaZjsAXEmgAuhF4avyXjYsdmCQEP6nmeveKVwgOYsR/01nRwQkXtuA3ojc
+Jo9jYhMpVa8Uctx9H/Wi82M2EtQGC77GR3hIQEAqHaBDejbARShQKqFdwqPQzGzW
+E9qbNVYwXJSmHvFEbVCJ5lr9l2BGKuIDYYriWJDmdCwl5ne39pUyAEOpBQ7UstGD
+9PKLqAQBQu347pcTEOXzyBjJyfWbWO5Mu4BBT+ztNcC6s4hhpts/4Omhlv4yVWKB
+9lKCnxjOFRWusz5Q5/BOL35j+FmNYXr3+jlXBXa+D9QCUgyGtLQJjM+DNpYKis72
+nd5qJ66LEtWWu4Z0rpQez5Q1rtVXr6JM1P99SgcO9MGWWEldsUWTzJCkF382Cbia
+lfM3abgtPnfh/L9TOS4g0T1KnoJqHUzZlex/vJJLfYwgVfgGVume/UwdR7HaPp09
+g9+lnqfsttwmk/ZncA87fopVgDvCwT2KkBWoDHizmmnjLR3T1yfxvZG/SmN6Rc2G
+WIFS99NmzwRjplGGBNRaft6umeZQebVxb3AdoVIzl7xWNrNlX53zNLuoHSC4h4id
+1NV1WlmDL8vHLVtsxg0TO0MX1LY+u65+Aj+7t+KozwIDAQABo2MwYTAdBgNVHQ4E
+FgQUM+QTgk6UfsUyzN2EbpdRDQN+b2EwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSME
+GDAWgBQz5BOCTpR+xTLM3YRul1ENA35vYTAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZI
+hvcNAQELBQADggIBAGAXVqJVkukjvkH8a9JjTrQ+IDoCenAqkeijcliwBzlaG8TL
+E2MY+uBBD0obXCvXE5uvg/RO+GNVe4bItO/tLOwu+xPwjdb0z+C4R7invIONWxQ0
+fcr901oOHZmXjOT9em9rv1P8SmUC6J/rMReF04UW43HwGPT5rvzRD3n8jArCxGUP
+pyDuVyO9k5z++3tnWLXpiA3kjwPVCpwXLpXyFcmbOIElnpC3x+XzWHh3DGWLzEH+
+g5fnXY9T+1WQV0U2f1Snm2ozRJLvU1ovzQTXS4X5Z3vv2yJK8aPq5/XdTjKBbnUL
+4w7kAyAMVFKZYldWvUg6lyWERUBZRcgSmxjDHStso6yPNT6Xtb06pzVH9x9xHNbi
+0qgw2VTZaYwF7fU6kAanK9OOR71Qv0OnEezXaIVKw1pbp+bTBwIm/usQwcP9jYuS
+yFsQDGmKO/19Vub0fcvsjhnfCFQ7g9MgScrf23BkJe/Eus6dWprdP9yuFU2uQeLu
+NiaVRW4+OSpzOAUvBJlO1XSBqxXoNSoGacw2xEoE2cTbKLveSrEY9/3zAi0i2zAt
+jr+7O4ZztYp7Qlb+nL2QWh4fsj8Xf7etnDUUNCbYso1yhyCpPvLuCsfCgh3R1d9U
+wAiKjOSPS2LmfBtiXg0971kfkqlfoTkjnVF5a1Hp26hIM6WgPhyJnUHHUe8K
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFmTCCA4GgAwIBAgIJAPga7XKQBZQZMA0GCSqGSIb3DQEBBQUAMEIxCzAJBgNV
+BAYTAkhVMQwwCgYDVQQKDANHT1YxDDAKBgNVBAsMA0NSTzEXMBUGA1UEAwwOQ1ND
+QS1IVU5HQVJZIDQwHhcNMTUwNzAyMDgxODA4WhcNMjgxMDAyMDgxODA4WjBCMQsw
+CQYDVQQGEwJIVTEMMAoGA1UECgwDR09WMQwwCgYDVQQLDANDUk8xFzAVBgNVBAMM
+DkNTQ0EtSFVOR0FSWSA0MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA
+8V6tzZI+CJvZ4OUxBCSzXON99ecbQqKEw3BAKy73JSS7Iyl99y2EVpPi2gk6Qeql
+nh+iDJDlEULEi4nNW+XnrO9V33I5oXpNCcOB4aO+nndY6Jr5xx3y9aqL9V8cLrL/
+oAI84cRM8LAVyyDvWiYOBFmGM3leA2uzu/NhGAynvg2UqVDnvmVp0D9lLUH5yG9y
+dK56EA+dRF+Divdkey5wxOdJc+d0MBAB+x8tsDKs4FfAcnzehF4SpK31zKe2ngOL
+N9OHK5rqNKxMKIyBCfD7RdSYY8ZR6F2T4cl6rcgguht3npOGBzcpSBuPNwIllazQ
++x01jCqy1EkCRajlCh1BrNlFh4ljvLCtM/oYwYP4pwXc4t+q0JHkdNT2d1G2ZUYG
+9xMpP86WAW10RyA9McH6NBMnGWY4IteUQ23xapY/Qk6lvEz+93iEOur/nuSCp8Nd
+aFZ2NYFseviklB56rIS8nTXS3toBoXSW6cjOlVFLNQuhksM2Ue9dX5YXdR0HCZjk
+GP9D66+dWwXeDJPw7NTNNIIvExSfOv0WAj8USPrJY7HEGb4DyuIlD/Ppc612mvS9
+bakt0jIF1tNHbwXrcEMM/VoWTn2sb5RkWj2MF5nhq3ohg4rImnDwnPqstKve+tvv
+bvAepbwK4feqd/VfMp09JuxqWFQgr4GugHcWqVTQNp8CAwEAAaOBkTCBjjAPBgNV
+HRMBAf8EBTADAQH/MB0GA1UdDgQWBBSRA0Y6DB9D5d3sZbh04gQ3FFWQRjAfBgNV
+HSMEGDAWgBSRA0Y6DB9D5d3sZbh04gQ3FFWQRjAOBgNVHQ8BAf8EBAMCAQYwKwYD
+VR0QBCQwIoAPMjAxNDA0MTAwOTAwMDBagQ8yMDE3MDQxMDA5MDAwMFowDQYJKoZI
+hvcNAQEFBQADggIBAFUk6Vq/EL6A1vamL3xtSxI2gQipaP4RmZgVDUJBdxs7+RYN
+ssKGNmLYsVzhJauXHfs/4sQlSbSP9THXtZbfOgo6oiJzdHTo4xS8imZdCmhFJk/W
+PkVcv/xmYos+dhVURfDT8jmJXgT5fOInhqM5faCQUiDJh3/Zvcxb/kQBb59pHmrB
+EQbrE3X4FpcKW3jHLWPREBOstbz2CE9jbJsWcprHC20nUnm1iaN4JvUj7AoeEjXI
+owi1+uI4sPoNT5OrOhoerdRpT9g6G0vIfzAMGTUBYCm3HmdeQrvu8/Y5WMUgphZ3
+X0rXUAyjX5TKr2jPZZhITx1z1eaAUPgNqUQF6eFPx9pzZHqLEoyM+uz2BUEuFlyl
+iwuirg7C+mpeCBGQP/T8dk512HG7LCnPhpWmy5q152IMs1WrjlonMWIRh/p3N/6Q
++vFe5qKzmc7M1FhkJzaNKmvVhxonm0Z0lEboBp9xxJwfpW/wCrZlJgOBHKgasSs0
+4tzDcKzTyRS1miiyqT7tWYUl/g1XgX9XmhosLGbdg5c8NuarHOPYWW6VCdSkqCPN
+HtonxqH3XAIFVp12wjrDSoB9kChHoXpvWdOEqByde6vgVgLAUmmmhsaBwZX14Of7
+7mk3kpjr7wx9Y226RZ8OLi22NWGZQKflYyfdUqIzE4PbCQk2mx8wcHzJ60E1
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFmzCCA4OgAwIBAgIBATANBgkqhkiG9w0BAQUFADBdMQswCQYDVQQGEwJJVDEf
+MB0GA1UEChMWTUlOSVNURVJPIERFTEwnSU5URVJOTzELMAkGA1UECxMCUEUxIDAe
+BgNVBAMTF0NFUlRJRklDQVRJT04gQVVUSE9SSVRZMB4XDTA2MTAyMzE0MDM0NFoX
+DTIyMDExNzE0MDM0NFowXTELMAkGA1UEBhMCSVQxHzAdBgNVBAoTFk1JTklTVEVS
+TyBERUxMJ0lOVEVSTk8xCzAJBgNVBAsTAlBFMSAwHgYDVQQDExdDRVJUSUZJQ0FU
+SU9OIEFVVEhPUklUWTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALam
+hYIZPsrh4PYPlXecIcqpfimaWmrvEoGtsEsW4yK5eB4bKBfY9Yc64IZSq7ImN1f7
+BLqflfVNsD89LSrNrREK13A7g4q6vrK6TDSGXZ/Xl76YXFRHw8+spLzQmMD12fFh
+ZrzhSzwCG2cl8drA1ri04OaoZ86v0FE2PJOpm9k3vvT9eZQ1YhGDjXJ9w6gDC4ol
+tlzNtRylrtivloAEYLEKiK6udn9HMXeD01zSVV2LzY5TzRRfAxQCj4jO0KAXtgpq
+QAHiFOS0QHfjHDHDExuAEywKvtUM4LRvMz6KnPMoLLaHypxtEwOmjFoAMn0MxJiN
+Od8YQBREGD22A8x4Z0YFwfK+meyPc0TFOpm7lJ5ohzbW0vKq5Lz8CvpVZjbwNkMd
+uXZkzBjwo2uMyJNOtplo27QnRbRqrpnwdGjxWmBkGjcmOIQ3rFz1x4S2B5XZRzLx
+W5udhcoAu6VsziTk8QdkiUdk7BHirwhKNKMwaKLgYl26RmzYvu2O+fXDPW1lSo8r
+w8cBcPvO0m+jUQG7xEFyMv1R++r213ikDmOBaSNUI5x4Z8/UhVqCf3rVAt1ikXbI
+GuN6y3TyzWZDKYXAc6xJvGDAqFPxdn3PvcjPQcMLY9xCqPGLidhN9r9vF2ccVnyL
+BSX4RkMPP9yWDOTln1ntYdcDrMFlku8RVd2DLvf3AgMBAAGjZjBkMBIGA1UdEwEB
+/wQIMAYBAf8CAQAwHQYDVR0OBBYEFKD1ZVIYDMvMD/19DfOfhgTHyY9iMB8GA1Ud
+IwQYMBaAFKD1ZVIYDMvMD/19DfOfhgTHyY9iMA4GA1UdDwEB/wQEAwIBBjANBgkq
+hkiG9w0BAQUFAAOCAgEAQSKMpiaEusnOi4W/Dt0dN769mta9ljGpbjQNGSv564Dg
+gGYzfuKMdEiRyA3QfWZBCg0N4VhEbwRIIW091s1RyU8e/cAAwJvigY8e2oOwnTzg
+gyz2hB/tAqQvT/hwKs4DA9BF6u6+7ct6X1dfPFpG1xlVhZJToRfxW9BbTh5rGTdE
+uSJt9oDn6aZCmxYUG5aw6ywqPmFu9KItQ2ylmoGyECEErnJyOI0jVFfIjIwzOz0p
+GLStft5m2AB+iX7HCZlan7bVr64IjusLhn7oyww0V0gkNA0ZDu2WqVhtDZWKxW1C
+kpFFoY3b1eQGliD5vn35kWEqYw7+bpQ5rQe/auMktQK65/ykzYa4QsgyU7gKgzeA
+p+XlPy51zH9LAQwu3uyLjAV6sv5htu7RB9+qN59rNfWD+NTUKmH3Xtd/AUPfxYeN
+BRSKjZLPtqY/iU3oF0in3UobCRZbruGiSQNOsykFwrKVaAHKrRKZnWNhHnUjAV6c
+u1p2C3pALyrmHOrQO0SVU7Mel5c7J1aMJSwWNJjVBoBr6eytGkz09qVo96L/s6xz
+U06Qnd6JEgwLTsb/s+8F2gc2UNTqfM2GMZi1NksU1t/Ct02Ed71h/Az4zdOj5Rf4
+6CXZvF2mxIT09/oV0uz3N/cSLr8MrnR43eUVqvJxCUpSe/E+6tqfvq4YaukTv2Q=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFnDCCA4SgAwIBAgIICU2qSSrmZfwwDQYJKoZIhvcNAQELBQAwWjENMAsGA1UE
+AwwEQ1NDQTEdMBsGA1UECwwURWxlY3Ryb25pYyBQYXNzcG9ydHMxHTAbBgNVBAoM
+FE1pbmlzdHJ5IG9mIEludGVyaW9yMQswCQYDVQQGEwJCRzAeFw0xNDA0MTYwNzM4
+NDZaFw0yOTA3MTEwNzM4NDZaMFoxDTALBgNVBAMMBENTQ0ExHTAbBgNVBAsMFEVs
+ZWN0cm9uaWMgUGFzc3BvcnRzMR0wGwYDVQQKDBRNaW5pc3RyeSBvZiBJbnRlcmlv
+cjELMAkGA1UEBhMCQkcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCR
+hk9Hf+MacgAWiyVbLGuCAEE+9H0VwA9RPweOM+PU9wFDBqDoc6wLFKUt16Bhvgs4
+Xsz04VV2ALUYMAeQ1+YB/SZQZPiTifPgTGz4eFSgwkmNMPnkioi6d9uy/IF7oEoC
+Xi8NGf1fSLY68mTGdOYs245WfV8mfRHz/rm6VQYBMK5SF/mbAyl0sy52vdrl5FxS
+HPMhykFuFmOYVHDGVrATiYlFBMVDJ7Jfx7irvgjT9R0Z3icq6jtWajUvOd5Uz7ik
+FdTscRE8tgqTLbAY/EvOvkV9Rgib5sYy+YtrgihUuH1bico7u6GqlFU+eNYXNlSI
+nGaH2RftwzloyeXaicIfqiVQlS+t6qNqtWv05HkzQzP0p7XRquX+rMkcjbl8FMYE
+tIJr5JMmgjwZv5bc6AJSfQ2Lfxqigc3MWwYoIni/E7uU2ub12cs80WBP74cebUNM
+i7FAcKWRVJknfYuvxVgZROwoqoYMe1yhcJBmuCdX6Zf0KTuwaJLPf5QnYKqdjrCX
+eVfOq2+s3xRL0CPIe0DuN0XmGAzakDKimVUFdR2WTf/r8c0XOyPcfbAf5ZBhohuJ
+Ln+lbwQoXTc9s6iqoUBat/922btzH2xuAS+OfEqekpikq//zS4lt32RHRnNBYTE2
+DL9f115RH2AnT5SLK/qIZh6I3qpVBxcVbg2As1lTmwIDAQABo2YwZDAdBgNVHQ4E
+FgQUnuC/3uLT1PztGzko9UqnsyZd+vkwEgYDVR0TAQH/BAgwBgEB/wIBADAfBgNV
+HSMEGDAWgBSe4L/e4tPU/O0bOSj1SqezJl36+TAOBgNVHQ8BAf8EBAMCAQYwDQYJ
+KoZIhvcNAQELBQADggIBADHDMnwOzf94V8jAqPFwvlyP7gIt+oGAsLccYVfzDLu3
+WBF2FYqwL6Iia4f2QZphLsZxDDsRv+HSmzJsnW19ugZFAV4BnX6v8bo8Wix/6wAc
+1ZsOF81ojGitiPGirpMIIc3wQlbOSPELOwldBAtrRiUhf8Pf+3avlobrTLI0wOw/
+UG5zbrfN2dSfmo+TXlo7KMCRYUkdVbB4y172f+ZwUPHfLbL27HOCPKRAUMSONyMt
+iZSSR7q8KO7dXbNKpw2myta4iXqFKj0opEqC44Yryoy3e40TrrygFuY3rku198On
+3HybDUItc6nUk+eLFOrY9kZHfN9bcQA71a1BOp2Kfvl8kVX7DfxkUopBSmwqeb06
+WlYsJrtNKqy3cpHUofnfBLr64URFIvwU5KQIRtkoOtG5jEgw0Il2UEkoSX3svHex
+oxcdW0JumWKC3MkWjcQyuLgj6hPV58pa1OJeWhW+Oki2VAIhnzC25dm6tOtn47hU
+5vV5XNQrDWnejJMA2uRjH820hVlewyNTkG4AnuPkSbZzOmtdLPA/GF38RzXmHSe7
+rYmfnQ3MxaVBQQV7wwcbA/E6XLfFdplecExzqP5fRitQj9vVCNBRek70sC81LG4w
+9NpjiDB/gQaTXz8Fvfciz4C7Ct9rYoI9Fki1kb5dol5K7Rnub+OWpq6rt370qhmP
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFnTCCA4WgAwIBAgIQAIfGVvw89CEud1h5m/YmkjANBgkqhkiG9w0BAQUFADBn
+MQswCQYDVQQGEwJFUzEoMCYGA1UECgwfRElSRUNDSU9OIEdFTkVSQUwgREUgTEEg
+UE9MSUNJQTESMBAGA1UECwwJUEFTQVBPUlRFMRowGAYDVQQDDBFBQyBSQUlaIFBB
+U0FQT1JURTAeFw0wNjA3MjAxMTE0MjhaFw0yMTEwMjAxMzE1MzFaMGcxCzAJBgNV
+BAYTAkVTMSgwJgYDVQQKDB9ESVJFQ0NJT04gR0VORVJBTCBERSBMQSBQT0xJQ0lB
+MRIwEAYDVQQLDAlQQVNBUE9SVEUxGjAYBgNVBAMMEUFDIFJBSVogUEFTQVBPUlRF
+MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAgAFsbDgtxIMuxh+lObDI
+H+3kC4MayhlIlR2jaVuk+hwta+N7Z1EKsKVx2BKS/gL49wi0BNPu+YRhAN71hjGp
+a8/kc1Hs8nQEuR01T6abgcWPQe6HZlivTvIU0+Cu6xG21mKsvpY/lfWv0NyFCiPg
+1WRL19uBGmhZVSip4miQYuySxqpJaT3XSSc/GRp4fzOBAnDzHOCSOyssKUofNbe6
+fbA8x4GF4xRdyYuM59i8tj9eWmgoP23mzd4/36Na9TmJCyI1pYJ9kw2LA6slplmO
+LrLGuRdifHXEdOuZWJflFr99oqlhLZN9op+F0b+0Y+92ZEhIEQ2Q5cwcseLCLz5l
+Knsy8drN0V3PnAU7E3LnbWRMj5doC1jYCyEKs6Oekd6uiyeYIzODoMKWBVuM2Um5
+Gx0KrSqsd/y+ykETVoOHMoDDoTb5OjDpEhHL6v1B5yoy7Pi4DiJp3vw4Z//p2M2c
+4635EcFpYuYc3ElS6pqVb6SCkzXEvtFsrvmEIg33HdklzTw5/KqHKqhWkwxpCnCu
+Iy1lgtRvzTdvHuLapv4e4grtZJRkEO6Z6/TvzDVEoLlzi2P5TYQ1hkVOsYbo27g2
+prCjH9TT6IkKXQ9nj4TaVJIOoMfci2WKlHk0ngTeRSDg32682qqL+VMgIW6xbcxY
+jQ/XZ/jR/Mf3b67FVkzp6C8CAwEAAaNFMEMwEgYDVR0TAQH/BAgwBgEB/wIBADAO
+BgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJ3MRXa4rW8qSocoAy/zQFj0dMk+MA0G
+CSqGSIb3DQEBBQUAA4ICAQBD5vBbo6pxki6b5DjAI1ETAqae3vy1kn7PlGAjoQh3
+my5IB9WxvpUucXsJZu51iB9UxWFol+Ms+1Hzax6U/YiMVFYme1tS6zWdGAfIPPCF
+yHwa/OZm/2IjOMET4Pnla3XdPiRd18ozpbzVXrxDttQc3qFdXI8m8gKsBKA+POFB
+FXbIN7HAOlcXXaobPdeQaxC97CsXEJtMkLlio/PjE9J4rf9bsrMVQT2S9VP8uTNh
+QyaLj9bazBdlVyDGyIEE+NYNf6xJW3ghvKNF2E4zj+yMK/chlDHTWz8kIvVP57NF
+pamQqf2AEfylE88McqbNC7M1+92IWTxNEjUeLk6nGgTbDpY8C/ZHAXoRA7YLl009
+ZSKlQ1MuhhUZOZHD1a4xAaZUK+HgdCmdeb0wE8n5gIkLKjycKt9iJcyCPRptWE0d
+thDff0RjmhQJuhK9Fi4IEsFOiVKxzpKbZhc20JtILuewkVlLmyjBJiWB3eJ7M9o6
++nvqvHzG0zZ2RLPRjOLvCWMDMzcUF3MUe3VasepGkw7xEPlvA6Pl/wYq4oj4n5dZ
+UERmKx0UagvtVVbMPqqoG5dg/b3tmbQ6udGsBFKIN6QzI6sBltdTR1+pYtTg5hlT
+xTYmEpSXINL2lNyA9KdYpFu7QlFJpiqVKLpUYTgrIcZ97C9HtFzLd+NiuzzoUsCg
+9Q==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFnjCCA4agAwIBAgIIJurN0mpcf90wDQYJKoZIhvcNAQELBQAwUDELMAkGA1UE
+BhMCTk8xIDAeBgNVBAoMF1RoZSBNaW5pc3RyeSBvZiBKdXN0aWNlMQ0wCwYDVQQL
+DARQRE1UMRAwDgYDVQQDDAdDU0NBX05PMB4XDTEyMDUxMDExNTAwNFoXDTI3MDUx
+MDExNTAwNFowUDELMAkGA1UEBhMCTk8xIDAeBgNVBAoMF1RoZSBNaW5pc3RyeSBv
+ZiBKdXN0aWNlMQ0wCwYDVQQLDARQRE1UMRAwDgYDVQQDDAdDU0NBX05PMIICIjAN
+BgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAp+vVihWD2BDdZqVh9GzYF0a0GvNy
+8d+0zYRrKnP6fh6FpUvoW8litbmtkOf/FnjlqavMlwfTRqAAp6rFxiZLxjg7PmZR
+JSb9LO2tmg/IDZP5y6K5Zj3puKR6qVTS6AJJNb1a97wkmkjwgf+YIq/CAAGKymcT
+xlS4RLvJu+5vFMUM05sj1DEWAZVHXN5EmotydtCDd6AmRyvX+gu0pJ+2Bg5/qJZX
+pFKzX576ypHgBekJN6t21PnbuZV3dN8Chl1P+8KSP9L1nvswlfkvu3s8Vm08N+qc
+hrYwUv22FfEAViqqehrX0fzBhaENcPJCNiuTu2vUlsYnaYJr8+vbeFvsSZmG/b80
+bZrOH1vnrSkMRHQ7veFJTXppXBJL0IuLeXefH6cIphz7DLdB9mvUYAcJV08y2G8x
+x5BZHUaZ7VkwCQlX7mWCIkwy0h+rZPlq88hFRR3AdnN114d8POPKOGf8meOCiikA
+xX1v/Syh2zqK+G6HKlxOgunQ2gnU3XX2D7HhQ9PDa8e5NBuo6CGiqK1RCV54RiPg
+gz8cO6W20XLO7Mq1qvfS6zlYHZ+bqsDdl3ru+FgbqCmSeIMQoKLKp9ftWaVsJ+bt
+DSHMpDfLxTNRpFlch623LkDzC0ryiRtf5G7+0+z7ZDeGtwlx05O0eXsVsOyWipDq
+pNjABjiSA6nmK60CAwEAAaN8MHowHQYDVR0OBBYEFIxxfkFxG9KSBITiaSMdCX2p
+9ndYMBIGA1UdEwEB/wQIMAYBAf8CAQAwHwYDVR0jBBgwFoAUjHF+QXEb0pIEhOJp
+Ix0Jfan2d1gwFAYDVR0gBA0wCzAJBgdghEIBJAECMA4GA1UdDwEB/wQEAwIBBjAN
+BgkqhkiG9w0BAQsFAAOCAgEAT7tPnxIoLowISmgTG6y7mfNUoCoxOFMkdYvokBEB
+0TvVTs9zyC8dPtdeV3A7VzicOdzmL9HdqfHBOhD9QP8GtMhlYReKrul5iXi3K7Ad
+irD5YTQ/vLwBw+ROKoF/xvqIUm9gckwViVQ/HLD27f8UgchiolOYikgUWFYjAWWr
+HRR4aDWKdEFrrCcL1BtMcgJU1pgOLsXIAlP72mnSJ/FAQo0iHkbBCb4HDCH2DSB/
+hVFclEfZQUTkNCyl6suLiuL9if2KszTxwL8/h96oMmS6pqD9CvxblFcXRIW3UugX
+vqy2GEt2bBqxmjERN7/HhGKQm1NYjA7iF8YbHiSf1HRKtdA0Qv/Go3KVQ7ipI+ua
+T+8BZJMLp9o8xhI7SF3PhyFfawHvc9R3ZCwsTpD5vMm/iSWOCizc9hetx3CKWLdP
+n9RS8aoSdja56yWZ8OHmNB7tfa6cFFs5k7W7jTqtqCIbX/cbiPef3k0Zd6PmEmEJ
+/b/CYz5PO4z0PApKp1w+f/lTgKr4hOBFDJMpp/7u0Qo0X0DVukdfvMiipglTzxXs
+L2kD88U53VWSoCvjnuiSDLng0+pvmCJcGmL0DWtCsTHJon5Yfg/WfuKSUYGlFBgf
+8eUXx8jeOI0qLG0teMxk359tXao43sOoakK/H0s2Ij0cr3uYZeDkV78WEtMBVfVK
+rsc=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFnzCCA4egAwIBAgIQPVG0Oca3C+1h9Rx6N3NTUTANBgkqhkiG9w0BAQUFADBA
+MQswCQYDVQQGEwJIVTEMMAoGA1UEChMDR09WMQwwCgYDVQQLEwNDUk8xFTATBgNV
+BAMTDENTQ0EtSFVOR0FSWTAeFw0wNjA4MjUwODI1MjZaFw0xOTExMjUwODI1MjZa
+MEAxCzAJBgNVBAYTAkhVMQwwCgYDVQQKEwNHT1YxDDAKBgNVBAsTA0NSTzEVMBMG
+A1UEAxMMQ1NDQS1IVU5HQVJZMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKC
+AgEAzCRcIAfM8f1afCXvYmfGQS0dytGjYX8VMHLq+6qWhC/c3NwNCsXUc5op/MKD
+fSClbH2ecOZS31nOqRbr7h92YzC34Ao/pwPvIS0nxR8NRPN1Ou6hPYjuPYiO1Ft+
+BPQpUC6kKKndqvzPNBSzUuL5t/ND/P89Q270V7Xsf24M6CjkmfhsWlyX9TU4p0ac
+H+O2yAWJ7y5LLURcPHOHPvIJJw3E2idLjNWNOyafYS2Acbu35ozb9/QhWWRqfaMI
+p2UmloJAYl/50/vNv0yqpgCrZ5Ypqq9nzGqgCXLrIwBqnHC3Je4Azxzv4DmzHyc3
+qlCYgU7EKigKJp6heC+e+ANhEltF7wALAmKIaXB82LSh66qZROpqmSBQk8YXLypJ
+atOsZbNbUVck6DJ+bT1GWEH6d9gcjClV2cMgxOJ/Jx0z6Nsn2NQyNP7VVvkR7wJF
+gR9b1gAcWi/todGBqG4ssEDrr1X0ICG/7I55fuzP5twVBEewjMtpeJMAvD7fjPY5
+Qh9YDD0jqME4qOFxWR5lrT3QIEhP/XTiJKb8ffBE4kwMoBbbLryVvP2lLMVDn+ju
+YeYhgN+YV49/dyL4yExPbcc1aNVBoaibNrbzTGjQVQoHXBKovrjjzmtQ6n+euLUV
+MJCnz6OugIBugP+gcUTNhk2SfjsFbtuxPuvRUmVyyc7ar7cCAwEAAaOBlDCBkTAS
+BgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjArBgNVHRAEJDAigA8y
+MDA2MDgyNTA4MjYwMFqBDzIwMDkwODI1MDgyNjAwWjAfBgNVHSMEGDAWgBTRI9BK
+13kT0VEB6aTTkFmfEJ2/DTAdBgNVHQ4EFgQU0SPQStd5E9FRAemk05BZnxCdvw0w
+DQYJKoZIhvcNAQEFBQADggIBAK5rXnkqQva+KWRrgaTLfMZif42KIt/RmBMMN+Og
+MBNUNg732U83QOAt8CX8d9VXTfWZY2VDxuAe0krEc71w4zMT5d76pcKb0+aNJwQj
+eghMzP/6csgrJqq6MEwFmipSKjSdureuLQjISq80l/DvxgnhSOI1c3mXMwBFljED
+z7munufDNGLP0y2Fi/566peq3gSe1oQL/imSpOdNxHttZevqixJCkIDrFa44E5fS
+Qc+OL83aJJ32NC+WF1qhHNdY/IAwdTWpGgopwFgYG3IZbLftKA6ehl9DIAT/fE+E
+sn2kadkn0SBzbKxEgr+8QjochcXpmna5lHu5gISKlpXSiNp+z0tCQPzxO8sK3KNl
+cOycLkyYZuZuDpWVqgwd6C+lrYtbGSoKl2ZTFZE4aZwiiNQYZDBFUM1SyCX3Zly5
+e3RnQuRh1d0hDdVm773t053Rfqo7/i3y8fstmh0Vrbf4yzqKcDl7JtN1/CTqSatE
+C7Y/8byTagU/Kroenn7Wu/1SrrCzH2chEycgz4VIo/EeQKJflSHtjMgYqUSMjH0m
+LyAo6SanrWHLwafLIvEVcUl11uMNMkZ/Xs/6BSdR3r7xAWJGv8gonQkm8DCfk9fP
+DXN2RPLx/WdO0VWP2T5jUoB/PxXzWiiRMIEYiJk6AInRCbkxuicF3i00pWomvBl1
+kB41
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFoTCCA4mgAwIBAgIBATANBgkqhkiG9w0BAQUFADBgMQswCQYDVQQGEwJJVDEf
+MB0GA1UEChMWTUlOSVNURVJPIERFTEwnSU5URVJOTzELMAkGA1UECxMCUEUxIzAh
+BgNVBAMTGkNFUlRJRklDQVRJT04gQVVUSE9SSVRZIDAxMB4XDTExMTIxNDEwMjkw
+NFoXDTI3MDMxMDEwMjkwNFowYDELMAkGA1UEBhMCSVQxHzAdBgNVBAoTFk1JTklT
+VEVSTyBERUxMJ0lOVEVSTk8xCzAJBgNVBAsTAlBFMSMwIQYDVQQDExpDRVJUSUZJ
+Q0FUSU9OIEFVVEhPUklUWSAwMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC
+ggIBAMZew8lGUyDceVBx5lNQ86dgwnQnMpC2vr8AH+B7ZTT7TB7DxTFF1+0Z/8FK
+R7cfB89/7PHHPe1tAToxN916SQcq3Rhwtm0LWJ2PraNZmcOqiFEZ7gCE5zlh5qhP
+2e8v9WmR/kn8opEocAkZklZlNWotV54Qx2ix3BIOOl69/57rpFp8kNywhh8YTfBA
+uimZtMMWveab02Xq0pKsmew3oF6gxNSzkSuiwk6MA4WvHY4ionxJHO5DRjCzMm/y
+7xrP9wp2gvkemZ6rZ0lXru6719l6rvWTHu2SIkdQC0wh3bj8eaNDkBSeZilFs0aC
+E7xPT1YZwETSXwX/n/ojxB1LUbn2R+tcqpddY+eZ9oG/xRb1OVmaor0fswWyB2JM
+FMFdbkKY9cchCn3FUIonQ/S3ImWsScxWnsuHdeJUXo68FoKjv9YMvK6hQPmUlt/N
+tpeG7l918F1236OQclb/k57cXi7N0+SUGp2wTdxyNOPkDlHhYqSw90HAfKYTbhEJ
+qORey/w8D1nCOrgwAp+xWrWmAgDuZUb/N5IzXAcnd/j+LdwCx0FvfCwAtzLiNEG1
+OZQtrTLnde39jmbVguv34Wszd+U8SN8dXQk5PDxivsoMpU9hlDXS6UK+2vmHVN6m
+b06OprsMuHkxy/sVOwac/m8KKpZd+S2zBcU05Hxssiwf8dlhAgMBAAGjZjBkMBIG
+A1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFLC/O7ns68cgl0wdE6WQWhphNYmg
+MB8GA1UdIwQYMBaAFLC/O7ns68cgl0wdE6WQWhphNYmgMA4GA1UdDwEB/wQEAwIB
+BjANBgkqhkiG9w0BAQUFAAOCAgEAL4YxiYafGtGs1JNMZUX1av30EAivvxxrh+Ho
+CIUtXR/Qj7Atu1RcyoZg77JwYV0AowxffCTwxDpmc3ObLr7aqdrI+oSkD2Ruqv08
+gZd6oqsYqeVmYqbWnlTM8fLsiOk8kN7am1RHPTOeKGFSklIEfhrXvBipiewjPkp2
+aiZT9UdSQNtHCiENlkuii3JJTf4whfvU9bzUvOI91az/7/EON6F0Z9646fZyJBhw
+k6zjhQ82K16LFIbfW08AdDkwlwErvU41ndH6aGemkokQ4ed3kPxRLFiaQKnc/EEV
+VDnnglPEt2DHHYITr2dxwPwppBbI3+QcNFl+atowZuGbwW6yWFC6iJ9NnH6GX4VV
+lB88nF0wfc8qiVGL6fB1kRfsvVLMYnfP4H6T3pV09j26V91GpFVociepcNkYXgAW
+n9zRE/GLiNbD+RoQ4wQKC/IoXtk0+Z69zBmjyYR2DBtB6O1013aBiQsNDbqKI/Ln
+digYvCnR5a3GZ5xPUd9+9UmR+/1C7VCmrZndJCQBNgtLTy4AyImNEKFLzCeojX5W
+Kavazz3sfWn2wGFbA9VJgevTHvzM+3SywbgYAJatflMo3hNVtg1IYbCqCLQBps20
+wzKuCoqVWWqu+rHmWQySXkyB8D9n3WeRFf8iaZcb0rU97LLEAKjfpRaQ4C2Zii1M
+JVg8ZDA=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFpDCCA4ygAwIBAgIRALPYvzp+Q5mYJ0xxme+D4ckwDQYJKoZIhvcNAQEFBQAw
+QjELMAkGA1UEBhMCSFUxDDAKBgNVBAoTA0dPVjEMMAoGA1UECxMDQ1JPMRcwFQYD
+VQQDEw5DU0NBLUhVTkdBUlkgMzAeFw0xMjA4MDIwNjQ5NTRaFw0yNTExMDIwODQ5
+NTRaMEIxCzAJBgNVBAYTAkhVMQwwCgYDVQQKEwNHT1YxDDAKBgNVBAsTA0NSTzEX
+MBUGA1UEAxMOQ1NDQS1IVU5HQVJZIDMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
+ggIKAoICAQCvOQssgQ6pXcKOPWZ/XvRoQ7FYI6ehZrdgU6n2XfZvWgxaoBzEpFRj
+KsKVtrv9czwGJqFc2M3FSdn25H3LVkU+RXrGe1TTo7StTH7Kr6S6z5Jb+2dfTmIp
+qpKKXhqUB+D4My0rQGGTGVrOOUP1i5jkeVxXxmKxh8nZ56nfoZ2bMjIQFgtkJjiM
+UZyYP47jPpyJEYrLmeAyuUsUFQ4WpmzVTFXnKFsETsQpBLg4V2tU+rKkz/3f0x3D
+9g/27KDERns0rm3TI/L9iNY9TZB6g7GuIeTQpS/5ZtwEAV7BkZIXtS6i4wcVyoX2
+WX28CLozTBt6j53HdMEYt8D7fBBc70j9VyA1zPjC6dHWySDx2OGELA1zNw3Mk1nK
+93q9pdu2Q/CFlLitM2qKFoqgbs9PupWzPTA4TL3njc01HGpqh6Coci4pXAivSmAC
+NtK925cGCsYIF2BBFfLUPb8Y+pnqg2VD7Jy4HQEHomA1c5OwPgndrXSasysVoei+
+Q/TSDZ/mPfulXo4OUJRe/gBYhCEm80m1r3dVaBHHC7n3lwQnH3UtRwKhFm3vnyjq
+7P8sGR0IEsRL1cAhrXdguUwj7YpUCj0jVQqtPv2qNJhw39NlHZLdWmlZTmbg6DZw
++udmS/3Ps6FmBGZ/S93pXw3Q59BA2uRMZLuKXSBCFfGXUjDRQa/U6QIDAQABo4GU
+MIGRMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgEGMCsGA1UdEAQk
+MCKADzIwMTIwODAyMDYzNTU2WoEPMjAxNTA4MDIwNjM1NTZaMB8GA1UdIwQYMBaA
+FDD+BwXMhWgbVm5Fv4wrDmQiguwTMB0GA1UdDgQWBBQw/gcFzIVoG1ZuRb+MKw5k
+IoLsEzANBgkqhkiG9w0BAQUFAAOCAgEAUJxeFDtS9/J/05MfGAoP2eFHhjlC7RXG
+sKHVt/ixBlcMvVVmQSNuQE8yIdhGvx/Dvfh3GEh8/S1pICT2t5cYfvXVLEaZAhXr
+D8D1U6fQ1ZPQ1P9Gd9wr2pxksnC/hkPQ1u5EjGgeyQvgOd76ZFGLz4RbOWg2Kvmn
+UrF6ZouQ9wLhpghypvZXwbp38+GuDFG/UEku3mgkfwSGKQ2o3Tgd4QpOXQb2vUsW
+/3pIQ82rNr6zaMnEiCEhRQEFpgMGKq6zqLaAuWHuEK5RknyuZZC20R3/plXI3ztU
+3Mhwa/oQKJ4Zi8zk091WyxsOkKf9W9Nq+K/udknH5vRBws7GyK2tztORLB0lrPnL
+e/rS68XspkLLfuSrY4+G44uCIoDNAd8tVRkZZNiHOG+v12lqBTUKXzOjG2Ai0H5H
+PIf2EyPt08B0ldrX11xWq0mpMId7ODY/qJO/Rqo82CeG8ms0rA3fOj9s12JbaFD5
+NfrgLvTB3UdWjIo3ZtqniEvIY+1tEwOVMIk9HG1KrmW85jOfl678MuxsRXbeNJkZ
+iKXuzLvPSU8+w5J6XrdjAqjhXr7bXQdTg8MK9yjizEiVlF7X2M3x0iAUFLD2fhyV
+64OzKj5ShBb6fFw6yGH1xNTg5Bsu1XkroWDgaxazKh5simd+k/K5ZzcoMKU9nfl3
+5DRIWEygDuE=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFpDCCA4ygAwIBAgIRANgtqGAx9UY2UPHZ9oQ85kAwDQYJKoZIhvcNAQEFBQAw
+QjELMAkGA1UEBhMCSFUxDDAKBgNVBAoTA0dPVjEMMAoGA1UECxMDQ1JPMRcwFQYD
+VQQDEw5DU0NBLUhVTkdBUlkgMjAeFw0wOTA4MTMwOTE5MDRaFw0yMjExMTkwOTE5
+MDRaMEIxCzAJBgNVBAYTAkhVMQwwCgYDVQQKEwNHT1YxDDAKBgNVBAsTA0NSTzEX
+MBUGA1UEAxMOQ1NDQS1IVU5HQVJZIDIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
+ggIKAoICAQDBLuoc28SPj25dwPEC5UiaYRy8M/3Wu4fI1MNcw/NKUwAmdIwtVPxP
+tzVDZ6JL8ZT3INUAogAWmCmZLmW+vdDVjOFLmKMb/N5igyVyZdrmvzP6VUU5Qb4R
+vHJjws4RUw/xwjnd69Tm/y+IKHjjUM0wMPHH3AGx4PIfL5iKCQfjzH1xlCrduppm
+ES7eQP3vzwgutZxpcKlQk/u3+bTgojTYH0JDBO2XZE1OIFiyHCXpW70Vz8gUuao0
+1GPytKHJ/bPUde7nuklPbV2Sweko8KTaMFOD3d48errl2eCkMKfwTlz7GU1oZrtT
+tRF14+iRdh+YC+QorjtlbgMKBdtbYItinfeMdjik261dc8X8Mh1ntfsrprNYbsSh
+QUY69ILZV3GGJfhkEcAvQjkyprMmX8kaxpf2JpuMfTy6NySzBJM9T6To+rTDI0FI
+HF31oOe7p9Hpi/fUw03F+trW4Rio4lv+AMq2OPSvmLqYUQmUhHOQD3viSpEvNJLC
+dEElEa7Win+CSB5cGjI3IJLBXDcWajnEciEtAQTXiGZB6FwgNugUvKMTdswbUK30
+0aO1Z0cWDDPTPUTbU0KI46WxH40tBi8yh5ewylmFX50euDcCpFV4puUjJUf33sWa
+kHfv3wzVEtWvKxzh9vGMVCDPmZumeToPFjDU+YftXc581hH3BkQmDQIDAQABo4GU
+MIGRMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgEGMCsGA1UdEAQk
+MCKADzIwMDkwODA3MDkxNDAwWoEPMjAxMjA4MDcwOTE0MDBaMB8GA1UdIwQYMBaA
+FPmnrmsegMC/JBanHHvW0kN2vPsMMB0GA1UdDgQWBBT5p65rHoDAvyQWpxx71tJD
+drz7DDANBgkqhkiG9w0BAQUFAAOCAgEAahr3FBtP2h1f81tsBiHGJfg6sTx9I98d
+xFhogpLay68gWCpDwSPw8VXTdUWTxCPCc07BYSOrAtfKdsWuEdRF1h0BfLhGNwcz
+3SrrLETYu+b9Ps7pFzpgfYO35jBNrlkyD3uSII/ZH/WpDyNe8Qf3gBb+9BSTdtEJ
+yCUh+wSNQCMgaE0dqW4smoxz/ZxhYGd7t+RbAgKEDc0cYPlYCYV18l41UjFeR46V
+WvItkUXcGvqrPdK77HmnQD8fssvXQsB8+pXEWSjuXGGOXb0h7bREt+6UboB10RZH
+GSoku/VVdiAFqLW4NqEyZkD4hrRslaqIVCV2E6DsJiQZLl+GtTKruXSjzVk4J2fW
+yHbygCjUyM54oyH2wTubmxhQuBdaoxc7UOi3wpvzPrktw+LyAZBLdNc8VBWOXC7y
+jnd2mcjSeayJpGNCO45wdAH9//PqCkgJIhGVf7TmgTGmHV6/0DYJtU+XIwIsYflI
+R3huuQZa+O9Xb1W0yiWx6XiGg7hzoCX4qIWX1GTRnSvJ9e+kJzZGS99nc2wKRuLd
+jmORcJ/TveavLg4rJAWS+Hj1i3Sg5sXuX7kbt21kebdN2HE8R3wE9M0+M6izcZ7/
+ESZyktWwHxg/Yq30bFePcDrO4frZ+ox1paBpQc60+tkSJirkAmlh6/AXFCIxL9CX
+9Zn2tv7eIm4=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFpzCCA4+gAwIBAgIERIgtJDANBgkqhkiG9w0BAQsFADBXMQswCQYDVQQGEwJz
+aTEbMBkGA1UECgwSc3RhdGUtaW5zdGl0dXRpb25zMRMwEQYDVQQLDAplLXBhc3Nw
+b3J0MRYwFAYDVQQDDA1DU0NBLVNsb3ZlbmlhMB4XDTA2MDYwODEzMzAzOFoXDTIx
+MDYwODE0MDAzOFowVzELMAkGA1UEBhMCc2kxGzAZBgNVBAoMEnN0YXRlLWluc3Rp
+dHV0aW9uczETMBEGA1UECwwKZS1wYXNzcG9ydDEWMBQGA1UEAwwNQ1NDQS1TbG92
+ZW5pYTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAJ7zDQMoc0SxjEWO
+kdalo2W4bXfsf9s5LvKJea9N4fhfQc/o0Pbp/7CJcmLE8lBCT2sm0TT/E+yLLU0S
+DmLz1fOJFd6ShwXEGugl2Vhx0Z573RGEdRXOfmBO4CsiMGS64ruAmfeS6XFEGCn3
+vEVos/QHXKC75jS7aa+XqsCgK8XxMjMGUK+BmdzjLPegsuWJT5Yo6LhPLxGTzf6s
+7CeRdDeCPR7yLjF4H6tLXmAMK6TdfO55LcYQuyKPLqcqLPzEaKqwFFzssUPVPAFv
+VNI7hSJwb8DpFVfRfHjo6qa07KoHwEZW4VSGh/Xwu6wbj6MzkphnTHSagl3NdBaq
+4k3dV3rME1frN7flygqJkN3xwSm353vct4nIaleekEP0eJLmBotCVRJokU87HsDV
+mvCfe+CtOOOWXXFs3gIy33pVfEAW/YRLX8Puc+Th1hmIGfOzxiRxuv9g8VOegx/B
+CIrJ76/LIMOFOhgD4hgguo4EaC2CGcDgXZziOB/jvWqiHHr/K+dt1/1evsIklbw9
+IafdcxeAUTEoGkPbp2MxkDgolT0idIchuejKvfPWwaKs+E98z66Eb2lo+5cXPyGv
+nNE528tsEkWJPRCnW4H9enwaxPgUYYsth/Ju0UxtJFN3Unbd6UUjIwE1Ee7OH8hn
+taY8Jl9D19+w2D5Tp9BQ1xVQGkqzAgMBAAGjezB5MBIGA1UdEwEB/wQIMAYBAf8C
+AQAwDgYDVR0PAQH/BAQDAgEGMCsGA1UdEAQkMCKADzIwMDYwNjA4MTMzMDM4WoEP
+MjAxMDEyMDgwNjAwMzhaMBMGA1UdIwQMMAqACE9baIg26OenMBEGA1UdDgQKBAhP
+W2iINujnpzANBgkqhkiG9w0BAQsFAAOCAgEATRuGLwd7VSFbA3+miFXV9Y19wZOk
+LpLf971jbhHQJpxCDiWvXQXFHUKqu1Ps8Au3eNPyiBTYyz0Dw4WC3+gXhgI84L4l
+GMNB1YKu5O9k0JngYfG1k4cOEi1QaD1GnV13F4V33PURsSo3alFIcvd3fJX6zAT7
+3RwJj+XAjW7b97vnU95XZKbhQWXlHhBgXQnmuPGkkarTJNNt/2CtnYR7lpQKQzrn
+B9WX2tK4Th+lCW7MiAqNiaJkerQoR1dOloiEtD9IeY0CWZeLjM+8AEZUWgPCZwJp
+yXWLm/p1jNKEcH/lOPK7YToQ4KqRvHxlGzOqrww8jr3TXNhye2kV79GxcUlZeAPT
+5Rh7NN2e2M/ttOu1jXi1RyU5lJHTMWsSWDfY4Sbw+SSB1H4M68zgc7rVWqXGjI8N
+LDv633Gz5185BMLy/3ScYL+sBaNR4/hS4FbP2qkwZIrxlI8/ntEy3iIrycBRRuNg
+SSgCuqbqJdReaUUhPT5Op6yCTHzR2QKAEhH6NK+OvLqWkp+CWRbag8y3qVuj3YNs
+bdCRowtmlX/9CE4KCxrqoLXMJCGA3pZQ+5Ib5tAbJPB4SHpilGH70mhNsLaQFcSK
+qgpu3bBO+HvdASzI/b9OBctpRv2OSomg9p6qhtP0DwHD/g3rgRzig9dymfZFSI/v
+QadpLUAPmv67amc=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFpzCCA4+gAwIBAgIERIgx8TANBgkqhkiG9w0BAQsFADBXMQswCQYDVQQGEwJz
+aTEbMBkGA1UECgwSc3RhdGUtaW5zdGl0dXRpb25zMRMwEQYDVQQLDAplLXBhc3Nw
+b3J0MRYwFAYDVQQDDA1DU0NBLVNsb3ZlbmlhMB4XDTEwMTAyNzA3MzMwMloXDTI1
+MTAyNzA4MDMwMlowVzELMAkGA1UEBhMCc2kxGzAZBgNVBAoMEnN0YXRlLWluc3Rp
+dHV0aW9uczETMBEGA1UECwwKZS1wYXNzcG9ydDEWMBQGA1UEAwwNQ1NDQS1TbG92
+ZW5pYTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMsSVO/FzJRD7Oee
+2sHwLZ23Fm/FJEKcoEcIPElpAcYccHNcjWBbBzo1myqr2rWkhcTNg5IEOqCOMExV
+F/8K/NRcTDeJ+pfOr1DgSaaIXUJfyzF+bqWznS4ikksHkEMTuMWytgxDY41qFkwx
+BrzXU6iEN4qrh/AnBbdsnOZAlZ9gy12aKNdn+ccuop7Kit7tSEqSyrNdadAv8AYF
+v+UURBMhjOpw6cEduL9gS7E26RVC6N2Sa4wi0xYgFN5kEvtFYXp85a0qUXBg6oMm
+7lXjPq41so7tJ8ccMnL7x1JqBsYVB5+ffyxaVtdpZglxaIYFhf/Uep5RhcAbW/So
+bp8tV5PzUZcc9MqYuy3Y4jAPcIjbAEJ/R6L9UmQn2xDagD4r5iVUP2evRTNOIjG3
+FIe2uHEPyQoL4y119ar8zpbVONAI7z4rMjmiMIgCp2noXpMtquHgw8gRL0OPzALu
+sOMJ4/9KVqC78Gie4j8BUAJJAQQMO6qKcWGa0cybf51MuhC/2bjCf9fy/WPDRSqD
+6UyD4RKAt3+wImvy+eXsaOeO/6Q4KidNSCdJm3s9fbj4yBc3DXiPlJc/BjPwnUr+
+R475Fzrun1OW0Omkp3GX3L/squ0s21d5LvL6AlJHaeeTm5s3hTBE74PDKdsd/u7x
+031LFgm1S/TddqPjD3nV2GJ9W/EnAgMBAAGjezB5MBIGA1UdEwEB/wQIMAYBAf8C
+AQAwDgYDVR0PAQH/BAQDAgEGMCsGA1UdEAQkMCKADzIwMTAxMDI3MDczMzAyWoEP
+MjAxNTA0MjgwMDAzMDJaMBMGA1UdIwQMMAqACEXAJFi+EK3TMBEGA1UdDgQKBAhF
+wCRYvhCt0zANBgkqhkiG9w0BAQsFAAOCAgEAgK3l3SuMaoN/nLtNeNdGWTbu7KAT
+pGWpJeYX5ghYiFHsK67oWNBk4hqmAVW+L2Q6hBkLGC2Mi3VCBpHtRrGmkeTTK4vV
+Yc96pdA5Gwa5On0Kv3NDEZSumtF0DSLG1nt62FO1hYu6TtQj4kkoUFvDIgtFEsQ/
+PZz90B40UTxNZuw3RRo1ppaWWzjCDoNSpqARoZ5tLZKexGRCSYGgf2/K1JX8deko
+US1U0zVT2NRAhUgvsku8tTz62nzCYb46wfW8tIUSvM4nHCwYuFV0xdCXk0sLOthD
+NpGG5uawEMb2RHxWbGoDI+KRuv+DZC801gA1JyAC9kyqsIYWqVk/5fixSAqLsqJu
++ZfZQidPyklP6hYGgtUVNBJPdRLr2Xc4sXo/tUGWaHGvwfGc/WjQ7nOpxA0DJ25J
+/GMg3RBnDXYUkmZ/W/1SuNS4AqbUF321N1Z9Jio5fsw6hfDSgsI2phf/xLdq9Dnq
+mQZR9s9/IpkE0g2igcwL49U+yHr76GOzjBjo1j2q98XIIliaYegmfZID3SYg2uMI
+oUMQ3Ajd3mbS64CcpoYZs3V4tB0mhIMde/oDpad9vkT/3m1dQKKPoGw9oisFxjjC
+WYxVl2D/G8k+vL5qUymttmTpciBsaXLvciBr7Hxl0wmamH66U1rupQSSSS17ZaOK
++5+h+8VZNnR7e2Q=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFrTCCA5WgAwIBAgIBADANBgkqhkiG9w0BAQUFADB4MQswCQYDVQQGEwJCRTEb
+MBkGA1UECgwSS2luZ2RvbSBvZiBCZWxnaXVtMTcwNQYDVQQLDC5GZWRlcmFsIFB1
+YmxpYyBTZXJ2aWNlIEZvcmVpZ24gQWZmYWlycyBCZWxnaXVtMRMwEQYDVQQDDApD
+U0NBUEtJX0JFMB4XDTA0MTEwOTA5NDM1MVoXDTE1MDIwNzA5NDM1MVoweDELMAkG
+A1UEBhMCQkUxGzAZBgNVBAoMEktpbmdkb20gb2YgQmVsZ2l1bTE3MDUGA1UECwwu
+RmVkZXJhbCBQdWJsaWMgU2VydmljZSBGb3JlaWduIEFmZmFpcnMgQmVsZ2l1bTET
+MBEGA1UEAwwKQ1NDQVBLSV9CRTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC
+ggIBAKp/MA+BfKMUUzCwSdNl0YgFFIwjD7uVfOeYL3IxkWGHFkGLa1BTI4m/VwjJ
+9EXaYWIC+Sjh/mSQ4hNT/mi02epTU9pT99bd9EK0T5OsoyHRQVzcY+qEdmog0ctR
+nkTU/J8FGEI7rGPTvB5SAjlwt1U7X9xX+RTgmX/BQqcnB3w8zJfQT6cNO1g3lijK
+kZ1PlEs3zH8cp+3PYXu7aN1hC738UEV2dcyG4NWB/jOm+AJRrQg2JCwjCqYiFDpi
+G74YItH+eCPj6teuvlFQUB3t5DrXj5JHK+lU90lf1yf4lwXB+OJZjG82N/1rdiau
+u4+U4iq0TXDsglgQMW8n7FUusilWy3AqEEPh1YB55JANbSOsXLYEP8qzaeo7rVM7
+B7VjGihlOQzU0Z3cSCmAyLtTekqOnySuqxxTT5LNVkJG78Z68DXcnA2FN898nDlE
+QgYDZokYNrU5W28xkA/O1nqXfYHXTqwhdSPDvB5+lwwWTiCD9IO5dpIlsFiQUzeN
+5to/kv9X7wC88e83HxqwrQMlHtXvzP18RpDvdvlEVKYzKiGQYSiz1br/DOshbB0X
+IJP+23SLa272Bd91uQCje6A02cCfssR6M0+2Ys0GXsLS520VV8SGncuansfrDPN1
+oJhR2axei522KS3Tfu9diGooC5FAELRQDvtLKUSvnZGjyRrjAgMBAAGjQjBAMB0G
+A1UdDgQWBBQAhBkUss5+Ct46Jvn93R/0AUKoDjAPBgNVHRMBAf8EBTADAQH/MA4G
+A1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAgEAcJIjJ7n5qOjaJ5zrYAz+
+zCvb19ZFG1Yjzx1JhpP6K+BQqjoaz+mTgtbkZeUb0frsJ/yhE7yw5twpbUrwkTVf
+HNrPsxWxarnDBzuZ5YDs91LRaeRDRmr/ruNroxtN55Fd7Uv+x9eA+k3wHzX/MC7c
+BiOdTzlbZSIHL9Fn7nIx2HHAt9VJxYNrLVedv+MDAb0FhZrW1XX1U48Z6wd35lEx
+R0U8fImL50ixXZADmCR3oA4YFqo8vYFRMqDkqmOIAMSX4TEYiM0HNrasz8zKa3T3
+p32bnlfZ6z8vyiho3Y3mCrqAnLUJiqzR1F1wL8KFAekN2wMINZ4h6hZQ7TZwyoyU
+4Kbxgt22pqYo2FlS50p/y6fqSw3XDsaaXDGSypeKywvVydrqsWLQB3bX/+l90j61
+cfs17x/AUkZzKvFxfRtDUtewl7aHFT7br6uj/GuFbxGFuJwHyT7i9HHLEbdZsYMR
+MV7nNLFzf8K6w3+lB+LVcUF1AK/3ITaolMM2ZbESkuZvrVAmYf0UeXsn+0woSQ1y
+5u7xgExnBBAwVMYi9j/2vrj9VE28gKRNOMDwsDXEFgHJkWRxfrjgAa5ejkrM6GLS
+sGDMaG95B5SeshkgBXHpGXmQWl4zHYZqm4nLBce8h7k7EodZlfih9KgCuvM/IQVZ
+uN5STVggOWqVJaJfhHDS4ug=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFyjCCA7KgAwIBAgIEQuV2UzANBgkqhkiG9w0BAQsFADBtMQswCQYDVQQGEwJO
+WjEiMCAGA1UECgwZR292ZXJubWVudCBvZiBOZXcgWmVhbGFuZDESMBAGA1UECwwJ
+UGFzc3BvcnRzMSYwJAYDVQQLDB1JZGVudGl0eSBTZXJ2aWNlcyBQYXNzcG9ydCBD
+QTAeFw0xMTA2MzAwMjMwMjNaFw0yMDAxMzAwMzAwMjNaMG0xCzAJBgNVBAYTAk5a
+MSIwIAYDVQQKDBlHb3Zlcm5tZW50IG9mIE5ldyBaZWFsYW5kMRIwEAYDVQQLDAlQ
+YXNzcG9ydHMxJjAkBgNVBAsMHUlkZW50aXR5IFNlcnZpY2VzIFBhc3Nwb3J0IENB
+MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA1/PcPtXhjkcGSLdyaSAC
+ay2V/Y7rIqspKnuJUzrL41H1dCPJW0pn678hLWkvPNvaIg29fXuzESPdWRrwpcvj
+Ikq+l2GWoHdybHe/gBUyOWX4bQKNnc0RJJ5dH0Xig3MoW5Ok4db9+yzCukjw1kjU
+hEiyzxDKVWWCA006USrwTA+QV6kNbJdAwYipXDRdwKfKtZRZEohPr0sv34cE1oFq
+lF/tbHnvIM4JNxEcbFkJIe8kuwmogcyS/w6dQAUCdPk5wFBiON5s+myJFJvXrW3e
+mm9RyO8bJa3fqV6cMGgHWHdLRW0IBTF2EowjjyW7BfjViMJtrhdXqwyJtgNCwjqa
+PvSKEoeqaBhYd57h0D+6wFyXHioNrgOPzrL49exvShhfLr6kDhf69bTPJ5UnkY7l
+OPSAseCU8PxPnqqtcFcjdgP8/BkqbHHjwaY5is/kQNwRPRfFCsBTVT99aczeAJwk
+GK1BKT6O9DVKdCAFxVSZWWGXsTJA9m6rGmj1SbfAZHDibg8GUPXCox+DFYIpYmzT
+ACgOtqIlRLOSWD330oyIDX3A2Vt0YcjCxacAF/iPqj8HqiUUObDi4+jtFkwZdjLe
+Hk3tQmWmSiNARUumifQlhvjmbf+Z4AfoLrIANoVBFY7+ur5QMmZ8q+EMgh5PU7js
+/rpAgCEsYzB39imzppwK0n0CAwEAAaNyMHAwEgYDVR0TAQH/BAgwBgEB/wIBADAO
+BgNVHQ8BAf8EBAMCAQYwKwYDVR0QBCQwIoAPMjAxMTA2MzAwMjMwMjNagQ8yMDE0
+MDcwMTE3MDAyM1owHQYDVR0OBBYEFPBksktsR/MSmTRc0ZZye8Z69I2QMA0GCSqG
+SIb3DQEBCwUAA4ICAQCLW7nDFsAivXEb1jcLDoHv05kQAg4O+eE+dSvggTkBYGQ6
+iZJgNj8sGDeafujPAVOl0LAOUwOdYxnHCJYPlt5qnAMC46MZnNcub1/DeH93dS1d
+HwkJoi2mVzjyemZ/yhWH047FSWnIxcoYknmoEII1KEe+ce6X2cBK8alymuKVeQ0Q
+CQ/LD4gQ6vsNq4qr8GO8+CnJyKwqPcPjEaetU8jsztY0aJqujedkCLhEDyG6/FWB
+VqStggcsQ7IApEzi0H672RJFKcUUL1g5NEJ5ebaidxDZ1kAFehr00CzAJ+XlsWRt
+I1H88kaOGOShuoxHuABmkfk+qaqtleLO6MkS4sj6jrD84tHiaH4JcJHMBcJ/tqfB
+c7zD665O3KqdN5S2sTrXOO+N1ErR7elljP4ea9tzzxYZBRDenSbBMwy3m2Z7rzjD
+lQJYPlNm6l/V7Vjn4vy003ShgmxMO/FRnMxohM/uRxleqT/gdyNYDzPQdleThWkI
+t2S8r5uAxrexdh0yt0ODFAjtT5PZakJLq+J0FxOXVARZDXX7SC/TX0WBk/vqQqVP
+D6CHi1sDeWfrOZllV2CYQSkpn/6EzdV3N5JQQ3gx0oiUgOgtdDQ1Okc0D2l0DDLr
+UqRwmjoXTW5Y1YSBwBBYsDUgL4/wvWP8Kjv+KMgtJPwflTlsf4GAZetuzPGKTQ==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+dN+fKfDxppI+xi8wVsmoWKrQgYmtKRA=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIF+DCCA+CgAwIBAgIESRfV2jANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMC
+VFcxGjAYBgNVBAoMEVRhaXdhbiBHb3Zlcm5tZW50MSQwIgYDVQQLDBtNaW5pc3Ry
+eSBvZiBGb3JlaWduIEFmZmFpcnMxIzAhBgNVBAsMGkJ1cmVhdSBvZiBDb25zdWxh
+ciBBZmZhaXJzMQ0wCwYDVQQDDARDU0NBMB4XDTA4MTExMDA2MDQxMFoXDTIyMDQx
+MDA2MzQxMFowgYMxCzAJBgNVBAYTAlRXMRowGAYDVQQKDBFUYWl3YW4gR292ZXJu
+bWVudDEkMCIGA1UECwwbTWluaXN0cnkgb2YgRm9yZWlnbiBBZmZhaXJzMSMwIQYD
+VQQLDBpCdXJlYXUgb2YgQ29uc3VsYXIgQWZmYWlyczENMAsGA1UEAwwEQ1NDQTCC
+AiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAONG/75EAyWXYH2013nfo5qJ
+yQiAnZ/ydB0GnNRHtBJHWqckxiMzQT/k3968+Nd4FCgy+M2NLH3ChSPPdx5OSMtK
+puAEEenwWFZgzs8rDVP/8t4AJSl2dmhj6qjsnB0/uqLikQzFLFScnWlso0QL/rh5
+sbWE42FSE9mDbyKpBFWlwkvS/Vwqxhr09hEk2vYqp1SvWpjwWZ5rv7KMAriWasoJ
+aZPauw3RxFWgmQSrfaHksXykzlvCG1AcF5KCRHdNXw+AWzyiGV48yxIU+7xGA+We
+aEOpWNj/phuE4VwKXCYcWvY6Jx5Zx5snHFapVhd8Y+nfioyHcvBzV1PT2TAy1KyL
+YVjhK8J1EsliTitx2vCkyZziO5wh6jFVZq3TIdRxNaRkQvlNS8i3Rj5js8WUc3Wf
+RplgoBAuoNd7wp6rV+c3UpNOMiQMO6cjjIlqgagU0307+rRh89vc+os+XCVBhyHj
+VI4/uCml15UCFYkZ+kg5FyrIElAh+xXtB4EnEU/eOLXe2xfbKDxLNL+FMMV2i9o6
+f9NazaOFtgm+5ar//UKHrSDYJS+mi4PvJaKx8M0Kq2JAaiqnSGRw0mTpKMvFUDAm
+4KEtKRl/WokhrPpXRDmC9lyrtWeesZXDvfiJbeJECG2geRT6jZMD5OloFBA2khEG
+TQBShK/nZV1LG4b60cJPAgMBAAGjcjBwMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYD
+VR0PAQH/BAQDAgEGMCsGA1UdEAQkMCKADzIwMDgxMTEwMDYwNDEwWoEPMjAxMjA1
+MDYyMzM0MTBaMB0GA1UdDgQWBBR45ANFAdD+k0Mflc9tLEF+loH1BDANBgkqhkiG
+9w0BAQsFAAOCAgEAkkQboesrfUxlUqrjNYUPiZXffhF69wuTonEoVVV2yeKd8dqL
+806faWS4mp5o7MLIs8Yg4ifMYlkrHlDFTCJ98TXilW7H1LFfLehIZxf2Ii8ewED+
+9l5G/Tc+3Oo7RGSTZqSEgciCwWe4BWMSUtpIRG5G9jv0eJ2Q45tHCp5yN/xXBHZj
+sJxjfmzeMtGb7lLHXp5YJVNM/06Tt2tn+pSFVb/H+K9aDrtntOimyUdG9hwQ0Zpa
+9IMV8/MwMAUcPaDmKXQ8tQRV5zoeKucTH1hPoBbP8kLo034SUa0g64hVFlWhgIXn
+W+EcB3pnomnyCs5oPtbbHHujx8vNahXkNb6NPbabiGO9rJORgC7UFQgW648fFAXt
+vQlfvVw/17/qbFxZUi74ipjRJVEmUPWBcTLdcSCdqkodvIaf3flB5mE09fSauDpn
+z+EhvyCkxVlic0crWMmbcD1/XNf0pMUhaK3Nc6mwOzIPVkK5/6ENKhIaVdPAVuuu
+k1+uFZNbHGsXXw8rRL1l8JgatXAS60qao0UMFlgYoR2TI2vlgvLfiV5cQvxZBnAD
+75mMEkSdOQFCGTZ9VP2gOBwsw6O/elwCzDL4GU9stl2QWV8VEi4I8auj76gqTfSb
+j7T2Y+htIZba0uxDDi8rOf+ZRJTaEFCrtF2RgWF6ZLvKTIAYupbpttnDcMQ=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+j/sfUhyHHc9GFJPteLrV
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGCzCCA/OgAwIBAgIIQ05EU0NBAAIwDQYJKoZIhvcNAQEFBQAwgaExCzAJBgNV
+BAYTAkNOMRswGQYDVQQKDBJDaGluZXNlIEdvdmVybm1lbnQxJDAiBgNVBAsMG01p
+bmlzdHJ5IG9mIEZvcmVpZ24gQWZmYWlyczEaMBgGA1UECwwRQ2hpbmEgUGFzc3Bv
+cnQgQ0ExMzAxBgNVBAMMKkNoaW5hIFBhc3Nwb3J0IENvdW50cnkgU2lnbmluZyBD
+ZXJ0aWZpY2F0ZTAeFw0xMDExMTAxNjAwMDBaFw0yNjAzMTAxNjAwMDBaMIGhMQsw
+CQYDVQQGEwJDTjEbMBkGA1UECgwSQ2hpbmVzZSBHb3Zlcm5tZW50MSQwIgYDVQQL
+DBtNaW5pc3RyeSBvZiBGb3JlaWduIEFmZmFpcnMxGjAYBgNVBAsMEUNoaW5hIFBh
+c3Nwb3J0IENBMTMwMQYDVQQDDCpDaGluYSBQYXNzcG9ydCBDb3VudHJ5IFNpZ25p
+bmcgQ2VydGlmaWNhdGUwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDG
+Giy88T1JWTgSlGoo8pUgp5HAeILokDmu7QGz3ZKMK+eUK95dAXjQw51WbFZtnCiH
+SRkkV/svnlQKDwxBUV+czktfczWIuFTOZlrSn0P4QgXu+v7nxrxHEQTG7K7FO/Fm
+wBat31qfKSWYAZeWl2U6MBHfM0/hEFIafM7+8+Pg74u5QMrYG8OOMcJ7ByI3zhyt
+8BwBvLOdG3YWy4OQbY2jEJB9gJt9Gw/XhR9p6nlhlyChF8fRnJ76BuwJdkanHlpB
+7IY2mXJm+e3ZfwDw0BWhBHhCXiv0f8incalkqZCXM6uk81FXIE/Gco2PDYj6phTJ
+ETK8oth7xxXZBHO+p/TJifLSy32+gi3rX40Qt8WL1s0UpWykPXyQgY1ea8Xuiilm
+cgVSNXs7P2PtZUA6+k3smuHUnKBubzK8TXrzSU1eo+JDEpZTqMvrlvVp0LDrVgmG
+TtzuJpy0J8T4lP58IRmsEAKKlVFpaBH35c4EyqutkAV+yMtlQ2/VVmmKZi2OuLQR
+LyCoTTaazRiF0IrcGF1j1KVbLrS565Z86i8eENiA/XOgqo5qn2RpyEelQyNfhvOh
+OVh1PT7rJNt0hvOicK5VADHTPDOydB/heqXb57CXNypjDhQlGlZCgtuiOS1RJS6U
+KuRzx2Tb6A+N/ukzP+iGE6g9hQSn3uXlXqCcMgMkTQIDAQABo0UwQzASBgNVHRMB
+Af8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIABjAdBgNVHQ4EFgQUGx+qWRWI1LVS
+C6jnv37GT51tGb4wDQYJKoZIhvcNAQEFBQADggIBAFzh+ocgCrIlZGFpgnApf+rl
+6vRB7oYfNk6f0o54MqfqI6fwRzpDlnO1nUvsct2xBcAsll5LJC3eD3w0YJftBWyb
+DrnjY77VmTWCO6mMfcEGQaVk9HnwG74E27xpJvvmnIzcmZpzjK3H7JSy2heXdPkq
+VHAezGUaG1YZpaJkiqeyQ7bW3085cleZRkX1gT8kXe01qDu1QcmhUpZEmvbHrN4N
+hONSv0XvwUj/8HJZhGWaAf7xNTNk9dFA+mVS3PvP7pKO6++ozD2cbq/4ZRyK2O7P
+Tfebo7Wdwobzz11f7Fru0x6YkK8sYtIbLlxGBuoGfstYqDLCPqrsjZdvpKECabPt
+I8qGlT2gaDTN0lUr+Eye9EXRXOdIcLXagJ7ablSIYdxEyUyLE7bEcHVLYfmHqjKA
+tgT5k0BiY2Ji7sNt2xx3S2ziSYso71sZ71B6kV18iRrSte+B22mfldGv9m77HXU1
+17jy7VCL6bXKRc7nO6Zz9VvbdAFeKWNOogQvWFC5DX8vpi4kfbKU9Th44wXDevTk
+xDccUl27kX0m/WWHgEDn/JMqAs4IKE968pbEOtIdGE04JIf02za0PslDdMVRk20y
+cBJeAhp6Bp3oXSWRXAnHEgjIdEe4J9DuwTj6FYtGeeLiRfpJ8liKKx6V4nOV6kLc
+atefeWIFMKQq2b0Ft80n
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGEzCCA/ugAwIBAgIIIrVHu4YWQtIwDQYJKoZIhvcNAQEFBQAwgYgxJTAjBgNV
+BAMMHEVDTiBEb2N1bWVudG9zIGRlIFZpYWdlbSAwMDQxHTAbBgNVBAsMFElDQU8g
+TVJURCBQS0kgLSBDU0NBMTMwMQYDVQQKDCpSZXB1YmxpY2EgUG9ydHVndWVzYSAt
+IFBvcnR1Z3Vlc2UgUmVwdWJsaWMxCzAJBgNVBAYTAlBUMB4XDTE2MDEyNjEwNDc1
+NFoXDTI0MDcyMjEwNTc1NFowgYgxJTAjBgNVBAMMHEVDTiBEb2N1bWVudG9zIGRl
+IFZpYWdlbSAwMDQxHTAbBgNVBAsMFElDQU8gTVJURCBQS0kgLSBDU0NBMTMwMQYD
+VQQKDCpSZXB1YmxpY2EgUG9ydHVndWVzYSAtIFBvcnR1Z3Vlc2UgUmVwdWJsaWMx
+CzAJBgNVBAYTAlBUMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAxHE8
+0xeI0f0Bo5MBGoboE1teBX4KlQxD4cZg5N4j4SNduwxkn5w21xGRiYol5LNbh09V
+d8QsJpmcBzm9yiCzjOxGIxuz7WjN626BJxiKVXrQdr2Mo4JuhPlEk+Oi2QvwhMgn
+9q+7KxcnHnLmwcbDNRs8XPkSSa/4+W2Ba5swNGbDPPEU7nEpdAWrzBKP9Zhlf1IL
+QpP+baz98Ah9kUhyc08Rej8GrnYwKBC3axXmf5lym1VYsjxaVupzmYuc62C+vIV3
+rYoGoyAHm0+MQps1BThU3Zk7LLaAmEUfAjJ7oyJbq+9AIJmKtwC6IixjMmUX0Jqr
+hY5NXn6MfVo2jYkRQix0xFIcGbU9wJ73K4LBe4nSuWOlOphrmDnCiREHvjQRTx7C
+19sKnd2tH7rJtI8iRYVL38bRS610sKnE169OekHfOlmu8petq6zpfzT9bkjQRDcO
+P4Rg1fDieLaD0S9fklHCna99QjsDoewPuLrM+17eOhHirDpGKQWO1OOoiS24UAXf
+5S7JlvsdbFHOoYYPgjyWRfaDZ3jWlpCdAJkow7DvufmXBkyecwe+fAX4EFEl62p8
+zEMal9CZ+yNjBwBLSyV4/5yXlVoSFYBd3ePcCbxLv+XnupgJ92quXxNizEHHCIVi
+y5YsF5dw7DOtlro75dNLMtFD1m10Lhwt8kg70WcCAwEAAaN/MH0wEgYDVR0TAQH/
+BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFGw/YYO7Ma0ZVHTq
+VgavS/Fava5BMB8GA1UdIwQYMBaAFGw/YYO7Ma0ZVHTqVgavS/Fava5BMBcGA1Ud
+IAQQMA4wDAYKYIRsAQEBAwEBATANBgkqhkiG9w0BAQUFAAOCAgEAf0R8aS4ST4u+
+Qj+aFb7Xg3ygXaDJD88gv7A505uMn2wI1kEmWihbmdDhTSOLRKh7yLHRLfz3DYu6
++SxWbjGoaslIwNKDNSyLFcaPml89TMZWBcO5gvVR4+2lKuz46ylFV+3Gc7aBMrbv
+yp4qGKE4X+55iSP2Gg8c29rkmDpd7kOY6AnsdRx5jXQtvxrys2PDwbw8e5FbRoDT
+tOXbrhED63wspqa7KR4C6Og47CKktf6s/NWpdg4+wehI1yIW7enD97XfsI7ra4cq
+IROD8y+GDfHXQcRmSQ+eEOT9xMSrRfWVgyVM4f5FUDK9RPD0+WFamDuA0M1BkReo
+Wyy4JpGwK1Hpk/PVO6VY/Ce/ObHetv/iVRff2DIz3de8sCI0pAGyWp4RV1vq7SDB
+bHhQa4LC/2vIkkHLHcHC2DJrFOEEx42d+/kn5yMmOweIB5+ZQQ/GwytwWPq1sCtk
+aDPt+cKHZTqU4JK97K5Mim2v9zVuQfJC38I5Jc8RInxUVyBixguKTTpP9HYxNntH
+d9wDmRXb+WQdFsi7IOJS3sPmS2HrLAycvYWAnZlNIgN0cCmQGgThCt6aOUo03bom
+SnhF+HpjZsUXq4Bei9s1L9uRKgDIGWLEhDOoZF4+VnZ96jcyDU6Eaus23v+h0Fom
+wEhBNf0RdvJGRfXO15pjD3okHeCRiOQ=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGHjCCA9KgAwIBAgIBKTBBBgkqhkiG9w0BAQowNKAPMA0GCWCGSAFlAwQCAQUA
+oRwwGgYJKoZIhvcNAQEIMA0GCWCGSAFlAwQCAQUAogMCASAwbjELMAkGA1UEBhMC
+SlAxHDAaBgNVBAoME0phcGFuZXNlIEdvdmVybm1lbnQxKDAmBgNVBAsMH1RoZSBN
+aW5pc3RyeSBvZiBGb3JlaWduIEFmZmFpcnMxFzAVBgNVBAMMDmUtcGFzc3BvcnRD
+U0NBMB4XDTA4MDYyMzAxNTczMloXDTI0MDYyMzAxNTczMlowbjELMAkGA1UEBhMC
+SlAxHDAaBgNVBAoME0phcGFuZXNlIEdvdmVybm1lbnQxKDAmBgNVBAsMH1RoZSBN
+aW5pc3RyeSBvZiBGb3JlaWduIEFmZmFpcnMxFzAVBgNVBAMMDmUtcGFzc3BvcnRD
+U0NBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAuJQ5t7CI17BeMhw+
+kQVP7+cS8PNTkqUkDfsyXz9BaVMzSSXoLIyCyyCgMLUdKnbMEE405LpMCUseoncM
+ugH6DV7daRht/2ZwI0w5dvFRZfEDOIP3VxZNFEi/qnWhTk2H/MHjFl/BqcENg1Ur
+egh0mXL53lYkhszt5jdPOivAE84mX54cLQeJzAeHgHATcCxOSPmB4wxBBfAO/O8F
+kVO0Q5F62O4qq+vEuLAz0RUMYR9yyjEQdxOTxACvSqH4wDsaV1hFgsRUGv8cAXlh
+OKmqBQr+QeHMEGTuTCbGUu5qsukAIoLofiub72AI58sTnnyGFrEAQAjvI9AuuBSp
+AcwCT3MB8UidsZWwa5j97dK3EmutnZmw0JWOajnp3BexEe2ykgYSMvcMHFcdkUlW
+cBML40nG8OfoMEy24Y9uhk2WdLxAbijpBPHlCvjEvPZZcz8Lh3Dl78U7to4Furvq
+nbWEAywjaq+F90krxlywsHw73rxyvLf+u697wvjlxbf1RcklIkyP/P7XiAF7yx3s
+xXHasKBAfdDfA6FCp4TCkQtMA9POWKa36O3P96SXAofliNBsKHbjaQx3mu4UGbHd
+eqW6GT+/hO1KC5oUl5x+6mkyOnJ8eT2LZZZjTE3oYAPt17sTeWhcGumlzq5JN+O6
+T1ASeHxyTPBZY9AltyFQw44/0+UCAwEAAaNfMF0wHQYDVR0OBBYEFFgSLuujKd38
+woZC0gW/Z1uML37WMA4GA1UdDwEB/wQEAwIBBjAYBgNVHSAEETAPMA0GCyqDCIaP
+fgYFAQEBMBIGA1UdEwEB/wQIMAYBAf8CAQAwQQYJKoZIhvcNAQEKMDSgDzANBglg
+hkgBZQMEAgEFAKEcMBoGCSqGSIb3DQEBCDANBglghkgBZQMEAgEFAKIDAgEgA4IC
+AQCON478iP4WqiqWO5Wp49rbjoReFS+8d9ows94+/OaM8hn9AJBM/oiTYP/JEhxz
+2qop9Zf7aKEmt8d/SkUHxb3odHjlgQyRm0f/wwVFDrj9ZtRyC3xG8JLhe+Q24ymC
+o5GiP9RoFB7hbvov6XQ2MxQnYn7ottiuPduHbQ/xV3yl81ovu/xoGaE1UU9fxzm1
+LlBsSAau61BHQxLgx18Afkh3ucu1VOJaRuqQeHLdaeMIJ7FYjsuiyKnCMTaTHHyb
+jF1XM2kSlTxrXbkEYgzX/oJntZZrVY6dGk3jwphreNQKOanXBWPNX6t11e9+q0v0
+LIyv8dm5//Luvd3sOJ1W8VNeR6dEG+HD11k5kMp9Qnknr9uQZHJ972t9xGcBuXmJ
+0VBGmhlHCNujBQn0dH1aLPg3/HjODLMqWla812a09sv2KfxFHsDsEhV2lB4NWaDy
+x3xjN4POSJcOsaQ1rl5oARQ8sa2dLe5fI89b7KRR8gQl4bFZLHEUK69PzvFYGNTS
+bFKW/n+i/1VImD4EEA14Yan6TWUuv98H4dYoyiBElIUElCeLpo5YzIzDq1+avTUO
+hATMdW8WHolZLQqgmOHmGtRrXyFx5wPDStooX9I/GpwlSt1Oe/Pj5xKHZyqG9bWK
+oxd+k3kdlcjur1H4a7r+tc8n/23+AgdrcpM9GUX3Vm5jiA==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGKzCCBBOgAwIBAgIIf4iuQ/iXunUwDQYJKoZIhvcNAQELBQAwgYgxCzAJBgNV
+BAYTAlBUMTMwMQYDVQQKDCpSZXB1YmxpY2EgUG9ydHVndWVzYSAtIFBvcnR1Z3Vl
+c2UgUmVwdWJsaWMxHTAbBgNVBAsMFElDQU8gTVJURCBQS0kgLSBDU0NBMSUwIwYD
+VQQDDBxFQ04gRG9jdW1lbnRvcyBkZSBWaWFnZW0gMDA1MB4XDTE2MDMyMjExMjI1
+NVoXDTI0MDgyMjExMjI1NVowgYgxCzAJBgNVBAYTAlBUMTMwMQYDVQQKDCpSZXB1
+YmxpY2EgUG9ydHVndWVzYSAtIFBvcnR1Z3Vlc2UgUmVwdWJsaWMxHTAbBgNVBAsM
+FElDQU8gTVJURCBQS0kgLSBDU0NBMSUwIwYDVQQDDBxFQ04gRG9jdW1lbnRvcyBk
+ZSBWaWFnZW0gMDA1MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAsHm5
+kipJgL8PHt8ss/afwlaJHpsAkx/T+Jo8ZJhBgARsQWDy/Y4noV/VuTlKCrc16jiw
+nodp/wXwsoH+rEzmczYmk+ro/8aMoXNumaInks3c6lqywyULY+ILcOGWNxhBpfLa
+k/zEOO0Vks5QYjBn2mfNVpFltSD7JcR5McViyFYvxLNvMKOwXnPddG7od/rcrelb
+MFj2FFUDg7vKP/6CkWmvuB5YGekSw+zWLp8p0Pgmr2tf64yb5UMt/kyn+t1wDnnR
+rtRDU5/BvKDQQb0OswpsoJupDkSHXxjtnXiBX/2pUBDhoXhtbmCg3Jnkm1c+Lglf
+/cum7FCkxueTa1rmOwBgCvxyAv6mMZoAzTYqzBGceqmmdmL/VfdvyYvmExQ6l/y3
+RmNXZzOUv2abeCcBUWvSwJTsfWNqfZYPe7ljC5F+MZV5npQpK1Az6qsKWVnCOXmH
+5fBW+ESISARRxzueZKaq10mWXnNPIRjLSgI5/otclkmjQTJeq3aJYVwQ+2S5FD89
+05RN/EYN/vYKQr2CdulU9V6/1fvl85Ch51EoZ1AVQiFx+5iJN7Bqh9Zki2W2yj3t
+6m2FuGApZ91ytbO9GA39IQDg7Jq2OBatJGLdi5Yf4j2xsX8hQ9xO2bdmndjTBlFa
+X29pOjWZHY1utSS9HeIfmaOIXPS3U3aXuTkG+ikCAwEAAaOBljCBkzAdBgNVHQ4E
+FgQUI/UX8ONPajhfCHLeObI2tV5M6/AwEgYDVR0TAQH/BAgwBgEB/wIBADAfBgNV
+HSMEGDAWgBQj9Rfw409qOF8Ict45sja1Xkzr8DAtBgNVHR8EJjAkMCKgIKAehhxo
+dHRwOi8vd3d3LnBlcC5wdC9lY24wMDUuY3JsMA4GA1UdDwEB/wQEAwIBBjANBgkq
+hkiG9w0BAQsFAAOCAgEAG/kFHhzKl1Sq8+b9FL96fcnFl1CY/7+DOUcLiq+ZvCZ6
+v83cWp6zp7fNU9FU8iU5oRq9cO20IjJijXq2rw/uMh7jfdv+xmA7rCQbIBJAaFEo
+HTQ5MZjIV+QoP8U+sB8Y7ryzud57QZ21yUljpbaTpSDVC1xKIp6LfjxIYZ0sBblI
+lVfUJ1MIl3AJu+ej/rzHWTVYrtNJbkJEak/QQ3Znkh6KLA0R4EVzhSSzWxbBWsNt
+mxyd+dKXwxaldD/gTDLGzMQTW5w/vBcoViW556frNlfBv3SG+kqVuwA+AmEGqrMc
+Ki5l4V0n++09vFhuG3ZlUG4SYoZMpl7CYu86oF9UkjueO3zMK9ZsADI43ktAYDAW
+Th11V5ncMQuY2WNdlh8Nn39r7O8sSBcW6FEaGTkHYgeQPX4VjoSx9j0AIxRYiJlc
+WfT3aTbwNV5/aijU6UqslDwpCjnFHAeAODg3lL0PPzwOyVU1TovSsHOyY1wVyFFz
+2pkhPsdso5MZzTwtGN7C6z/bIJesI3+R10onZyuA8N2JkQxpxeMl6EpBgUGcNXFC
+NEU+ofAYrhJf3TgDk+VT/1bmWvaLn1mWNN/r+bGNhTaFttbvYR5Z/z7CzB+pejMi
+IZkJy6DfGY/sWHih+BckYPm98V0ceG/GGILIsDk3PtP199OqclGzSdckFOPoHDE=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGLjCCA+agAwIBAgIBCzA9BgkqhkiG9w0BAQowMKANMAsGCWCGSAFlAwQCAaEa
+MBgGCSqGSIb3DQEBCDALBglghkgBZQMEAgGiAwIBIDCBhzE7MDkGA1UEAxMyQ2hp
+bmEgUGFzc3BvcnQgQ291bnRyeSBTaWduaW5nIENlcnRpZmljYXRlIChNYWNhbykx
+EjAQBgNVBAoTCU1hY2FvIFNBUjEnMCUGA1UECxMeSWRlbnRpZmljYXRpb24gU2Vy
+dmljZXMgQnVyZWF1MQswCQYDVQQGEwJDTjAeFw0wOTAxMTIxNjAwMDFaFw0yOTAx
+MTIxNjAwMDFaMIGHMTswOQYDVQQDEzJDaGluYSBQYXNzcG9ydCBDb3VudHJ5IFNp
+Z25pbmcgQ2VydGlmaWNhdGUgKE1hY2FvKTESMBAGA1UEChMJTWFjYW8gU0FSMScw
+JQYDVQQLEx5JZGVudGlmaWNhdGlvbiBTZXJ2aWNlcyBCdXJlYXUxCzAJBgNVBAYT
+AkNOMIICIDANBgkqhkiG9w0BAQEFAAOCAg0AMIICCAKCAgEAk8PyHxaVxnxks19d
+k3M7KNsYqdo3kfsWjQzca+nNYPJQZ27dFCiv/zS4kP1V8RB4PHDFwSuPxbHq8hzj
+nmkGdhwKTthvwaJ/14VLo4dilfhkdjFr6KaEc4JfTot31cIO0Xpq2Q2ebODcogbn
+PawBfPP1M37SFBu3ov7HystedOR29Ko0qWUHst/z/8vIS6TWOq7hUlDaMTJOWGWW
+F5Srttokn5gQXn+0wU64Uv6LvLyx41QHm979vqbkXIwnumzVETwDwTLeh7j7JoVV
+XWe9aVb0exvvwzR3ZmseMG7xO9VfQ6WEMdMFTuMI/hrt+mxZ6qkNUTinLrKp6Fv7
+HsSLh4IwjJGX+vR+qb0t4bAJbT9Kh5zl0XLUuVRx7be8sDxLiGgSu6AgwUE5fKdK
+o2/4BHRA4Er6YcmrQmNhhZ4trdxdPZm/FRyTOdy+fMNI4ftbu87PITEIObS5eQ2H
+2SMuN7VZulLgOae6iJZDelZrh3Ci7N0HfXRru1QKIcV+z5KWc0bNY83IiB/ilUeA
+EyRftj2qtfhL9YcviG7hr32mRcGpXoxktiQtl0AqhldWmOeTkx+uqrSze4PaBMLP
+9i9KLk2GgRyjQmm8EQEaDCaEKTNwBaB9pDmr1jBr903iQUG8MVcGn8R+v5UXHzt/
+iYxjXtY1BKQF3ozz44RgjsK1dW0CAQOjRTBDMB0GA1UdDgQWBBTKh9g4YhxVW2p/
+HR45LL5jtKwnBjAOBgNVHQ8BAf8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB/wIBADA9
+BgkqhkiG9w0BAQowMKANMAsGCWCGSAFlAwQCAaEaMBgGCSqGSIb3DQEBCDALBglg
+hkgBZQMEAgGiAwIBIAOCAgEAa72EzcqQGVLnIPbwhqn6g7TbGwPW4XaUkfEHiGWt
+njthE51/u0Q/rffR8ua49Ba4DeOo3vGVAJAyZnGQpYPrWs9P6HA7W+YfbO4NZ1px
+PCLXHSs84f3czUNHnsIfW0UK5zNVX9/9/J0eG9Q+jYrkVkprFmsTTdCblW3PTYb7
+Ecq+p0euEMcqguSs5P9r9pVJQLhXnua02oUGgwNHX2jbPhmGqcMw2tiCk/2VJMQ6
+ypzPwjrdpDIiS6ThpUlKtH09gZ16RrAVBaio2b7ZENhjW60m7I1OlPSyZ4kgdEMU
+h2zJCuTuBjdzSk+cEl/xYCwj5OxQm1yMLS77ZVIhdTdz/JGP+pUNRN0SR5tVXWsm
+GYyzqZlSLk8LTO7alBnFonwGCp6cOneyJWmAbo5fNZbhqVGSgX4ToSFrGM26bHlp
+lbfWmriNgX6PYUq5toNqBQrb1dW7Kk3JIJ8ItUYjiV5JAB4/G3yJ8ejyQ5UkaBIM
+Wj4ml0U4sot5SGViTzTnMnTnhn705Nr5eOgcnMi+3Ps7MXszDgKvxub4la3l09+4
+BM3o7hv2Wn1DUa0bFXkYYnPYZyX3eOmNnTX6CqkHa/0XkzxX2DeHyd4OuK7H/yEY
+uw7E9GREiLer7BxPMfTSGcqln8T541tRHDowwF5C69FuKFn+jdVYu8uBsstFNNt/
+F3A=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGNDCCBGigAwIBAgICAc0wQQYJKoZIhvcNAQEKMDSgDzANBglghkgBZQMEAgEF
+AKEcMBoGCSqGSIb3DQEBCDANBglghkgBZQMEAgEFAKIDAgEgMFcxCzAJBgNVBAYT
+AkNaMRcwFQYDVQQKDA5DemVjaCBSZXB1YmxpYzEdMBsGA1UECwwUTWluaXN0cnkg
+b2YgSW50ZXJpb3IxEDAOBgNVBAMMB0NTQ0FfQ1owHhcNMTYwMzI0MDc0OTEwWhcN
+MzEwNjI0MDc0OTEwWjBXMQswCQYDVQQGEwJDWjEXMBUGA1UECgwOQ3plY2ggUmVw
+dWJsaWMxHTAbBgNVBAsMFE1pbmlzdHJ5IG9mIEludGVyaW9yMRAwDgYDVQQDDAdD
+U0NBX0NaMIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEAseIKY10P+zGf
+DgoU0MbZ3Ux3d8wNN7KRRhBJh2xYnIgqDCTO00Gd8ZffEeT1gq0v8bO0jQYV7THM
++zFgC2WsuUq6NAzc6ATLoG3qwd/IOaOI+lQqVfu25ua1WdMJOCK1vk8+MIYBoHQ6
+3rdUEULehQxL1lEqMUc33g97sswr0CeCS+05+nvGxyUKSkIDV37nckO9Vnj3Pkd/
+avMHWb0mSSvJ70dnmH3FmKA9KfU8AFKc9/4R+wnM94YuE9zC5e2J0/2cc8LYcC3L
+iRKXeBRx8ZR60Kl2eTtDF/o5lCRUcIlyiQfd/rIZ8PeCIFeQeEyMIy3w1OmMBrTm
+pySn7a5Hh/X4ZOzfRM7Zy/FgHG2JInqFhO540yA09apll0EQ31UhPoQInTIi/rw1
+Q3y9dFdoB4PqWireG1SWyvQqvAZfxTqiLSH46eMHH/g6BfSA4uogXgBKuGk8UilE
+Wiozq/+dcrOvHSUvhDU+usaUn5w6RQjbRJlVw45lczcd9t5wmKBZAgMBAAGjggGg
+MIIBnDAdBgNVHQ4EFgQUphOLMZIFRA6Q3caO9sRL3041fVAwDgYDVR0PAQH/BAQD
+AgEGMBoGA1UdIAQTMBEwDwYNKoFLtxgBAQEBiciyazASBgNVHRMBAf8ECDAGAQH/
+AgEAMFgGA1UdEQRRME+BDG5pbXNAbXZjci5jeoYtaHR0cDovL3d3dy5tdmNyLmN6
+L2NlcnRpZmlrYXR5LWNzY2EtY3ZjYS5hc3B4pBAwDjEMMAoGA1UEBwwDQ1pFMFgG
+A1UdEgRRME+BDG5pbXNAbXZjci5jeoYtaHR0cDovL3d3dy5tdmNyLmN6L2NlcnRp
+ZmlrYXR5LWNzY2EtY3ZjYS5hc3B4pBAwDjEMMAoGA1UEBwwDQ1pFMFoGA1UdHwRT
+MFEwMKAuoCyGKmh0dHBzOi8vcGtkZG93bmxvYWQxLmljYW8uaW50L0NSTHMvQ1pF
+LmNybDAdoBugGYYXaHR0cDovL212Y3IuY3ovY3NjYS1jcmwwKwYDVR0QBCQwIoAP
+MjAxNjAzMjQwNzQ5MTBagQ8yMDIxMDMyNDIzNTk1OVowQQYJKoZIhvcNAQEKMDSg
+DzANBglghkgBZQMEAgEFAKEcMBoGCSqGSIb3DQEBCDANBglghkgBZQMEAgEFAKID
+AgEgA4IBgQBiN33okPFHvSgFrLJ/XuW2Yd2I/Z9Fsxf6udY9BovENWL+8iK20D1Q
+4xW/uKNES8soOVLxKhRDJXu/248vbcZG6hBKNJU37ozYEVvAFvPNKF/Rbab1GnEq
+zirv6ah9oWQUmObm22lq0XWv0zLcH96JBb8i+AfAwpq52tfFDVihXdSMxKVVtM5F
+3aGdIY41DB+Gua4lJVf3kMemRiMXLxVVxocFAqqabPPwt01zEQqV0v0GjZshbYJz
+VUokiXvi0hdjvYK5XUw3EI0Xv0mUJG1CTWaNz/dISD9MkvbUXPRYEgy3hAEcRZpD
+JZTKMqMx749WAC8wI7zo/l0wKzkyHnO4OJ5IJgyHafLFDDpwsPTYvFnaBk+OpQbx
++4/ahNmj0thMTFmJxNqwWQOfwFv6RB75MjmVXtPxEeOeOYPRuffGO7LcM4JPRI8E
+mx69S/pKMzdSpRQ+5qyLmnybLVmHwCHhM+RN3RL5jOHmg14ouEgB6cQzXdOefGyo
+PZaZdmnd2YM=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+cdqyD5Z1u81Al3rIsg==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGUTCCBDmgAwIBAgIQOo4uZxw32QDx90tZt21kYTANBgkqhkiG9w0BAQsFADCB
+mDExMC8GA1UEAxMoTm9yd2VnaWFuIFBhc3Nwb3J0IENlcnRpZmljYXRlIEF1dGhv
+cml0eTE3MDUGA1UECxMuTmF0aW9uYWwgUG9saWNlIENvbXB1dGluZyBhbmQgTWF0
+ZXJpYWwgU2VydmljZTEdMBsGA1UEChMUVGhlIE5vcndlZ2lhbiBQb2xpY2UxCzAJ
+BgNVBAYTAk5PMB4XDTA1MDkyNjEwMDgxOFoXDTE5MDMyNzEwMDgxOFowgZgxMTAv
+BgNVBAMTKE5vcndlZ2lhbiBQYXNzcG9ydCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkx
+NzA1BgNVBAsTLk5hdGlvbmFsIFBvbGljZSBDb21wdXRpbmcgYW5kIE1hdGVyaWFs
+IFNlcnZpY2UxHTAbBgNVBAoTFFRoZSBOb3J3ZWdpYW4gUG9saWNlMQswCQYDVQQG
+EwJOTzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALL4+dBFS3mBHYN9
+eUPo/eOtx/MsuxAvruN63kaXRoEFDBudR1Jp/c9NcUF3Wl+wK73OH3phfmT3cu9P
+kdCJUfu1fNAR3sSaHSZMkWnF4Imrf0M+3olYSz8n7a1Q+iUZMfyDWze5TJGU6PRX
+WuApStwW/LJrhS04yBsiqyRBmjudKUjmYUJjAnwIMx79/PRIa4AFmtvuIEMJPc+9
+9Gh3dTGXOpZ1OLK2VBH3boillPuXAOOmEy7jcguG5VDE5+r655qTXLbQNkymaNn1
+dsjX2q2CXvEt7d6LamaSjcmYlZKH3THhXZrFTwc0u2qQXvYdu8uckFc6fRDsXb8G
+ScVMQ3yXUP3LkPYTq0JPUxBSnA+jQ3pu1Hjg+OdF++Rtd+IIts5Seh2lCNeb2vHF
+53rzJitcbw/3qCOQUkd82VunGY8fGmnC0r8LxWkB0Gm3B5105+OnJ2XxcEpdoeD8
+Kc3XXXrjPkW6va11K3x6poWCAt9btWLvj3OIeUukrjGkvq5zT2WsOB+yGItli3+8
+dHDOSW22YVZV84vGR3UaS3T9E+K06fk7yy/g5+KkWmy9AcDFASjWS8N1eErKCV2Y
+BR3RmXBSZhKrFs8z1Cspsfl4ixVSAEUcp5m2mL8i6oUYeVSMjdd/u+d4YH/2OBWq
+ufEpooY8DRC53iZybCDJghwk2xE5AgMBAAGjgZQwgZEwKwYDVR0QBCQwIoAPMjAw
+NTA5MjYwNzQ3MjRagQ8yMDE5MDMyNzA3NDcyNFowEgYDVR0TAQH/BAgwBgEB/wIB
+ADAOBgNVHQ8BAf8EBAMCAQYwHwYDVR0jBBgwFoAU6bZdiZLBQtHSvWxAdYL6hEX0
+aAEwHQYDVR0OBBYEFOm2XYmSwULR0r1sQHWC+oRF9GgBMA0GCSqGSIb3DQEBCwUA
+A4ICAQAS8pMTYJ/v8aR/k2hStshlMkYroh8ieVYatganuQt7lYnaHUvKGcRpQIxL
+9jVYNqZU2zrMJokg4whU5bGyOouDL3TRP7h7EH3hgmINrY6SMCeCIrVIWMXTo0mP
+LZ9Zrn9C6az2YnS8Bzff3vhmgNy0yb2ejHhP8dgcZAoubqbXnbvcHbyluMcjT+Mj
+PNtnYkGusBVOfZye4OYXU1EEtT1g9tCMPx6OJSZtsCCTzs3gyStQ1pd8CoHns1Ai
+ogEy6xNzZgjBYP56ZGOqomxO4hXyYzg3TF5EDut55076thZRUttCHlJZUF9RpHbe
+ATm0K8SUjtfpjxjV/Az8las3EHxnuc3sX9lmObN5Sd22PKoEBCF8gMscxGULgoHZ
+AiZeP+YfCb0PU3Gx+06JXXZC890WgiTJwlJ6AiGNGO6wmS1E/iU9cdS1y8RidZII
+jTSvdGjW+4a/LR2fQ/+e4C+mhMcPoQ599q4Gs5lHja8tGitf+bZgaH9y5wBJscdi
+ItGgoit77iOM/mu4fomqw0MB6UhS36Y+/2NywaX2en47F+XFbVkbSXD/rF9Fo3j2
+ROgYfDCJwjYX1SmOlGM9n+V70HWzgQa5vnrgYk/n+ze9J/Ie38ZF8FILthKpVrvV
+r3cmW9H5IJtdRAkHpEQpkE40qjVFvbWNgcXGDvP+ra11Qzwmtg==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+CL5HB+/4etA4pMWX
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGajCCBFKgAwIBAgIRAKeW4H5Dbz2QRZLQBEF9+8cwDQYJKoZIhvcNAQELBQAw
+gaQxCjAIBgNVBAUTATIxMTAvBgNVBAMTKE5vcndlZ2lhbiBQYXNzcG9ydCBDZXJ0
+aWZpY2F0ZSBBdXRob3JpdHkxNzA1BgNVBAsTLk5hdGlvbmFsIFBvbGljZSBDb21w
+dXRpbmcgYW5kIE1hdGVyaWFsIFNlcnZpY2UxHTAbBgNVBAoTFFRoZSBOb3J3ZWdp
+YW4gUG9saWNlMQswCQYDVQQGEwJOTzAeFw0wODA0MDgxMTEyMDRaFw0yMjEwMDcx
+MTEyMDRaMIGkMQowCAYDVQQFEwEyMTEwLwYDVQQDEyhOb3J3ZWdpYW4gUGFzc3Bv
+cnQgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MTcwNQYDVQQLEy5OYXRpb25hbCBQb2xp
+Y2UgQ29tcHV0aW5nIGFuZCBNYXRlcmlhbCBTZXJ2aWNlMR0wGwYDVQQKExRUaGUg
+Tm9yd2VnaWFuIFBvbGljZTELMAkGA1UEBhMCTk8wggIiMA0GCSqGSIb3DQEBAQUA
+A4ICDwAwggIKAoICAQDWwZCFKuPamJEnOa8cn9sPe4LWuhy9Ns5+dAWp0Z1+lbGl
+pjE9Y0aYaTQ4dBDW5wcEa0hz60Mt7O2V1Kg8KGekQhJDux5ztpSLlTxL/cdSVLss
+cIH55qbst2l1dpLNyijRJP6jUTY/weBECZMdWdZ4glkQ5BmcbYbwIeWllEUtz3Xj
+q0gpxXsr1F2aVivsx9hC4FEe4APNaFlLF5tx2coHX21y7VNRJx8fS6iUKFteS/Es
+rXsknipyfhncHNinhie6fWifmeBwRszomqvDIfadSZZyYdwPQilIyul2ZndQ4jlV
+9TBFd+dYVFAPOwXwDj1A+SRzw6gqBiDLdEW0+Nv4bvXAjrP52+/HYlj2W0+3EPub
+MoYNFsYobBR1Fackhx0XLDkB3YRZh3xy7hzsTjq1w2zWiTuRI01iyEvKekUHttlR
+onxwvfAiniTi73LSanANqZulCMqjg5kr8LcYkRGI6M7rsvSHSwH2BfLQiEnEXDdv
+9Qb8hUCRS00Cpnm0t9JRTexQ0Bayr/qmoohtcie4Xt+1ae400VT2tp6sDALR0mLt
+ODYOrNYWvb5zCTCwsB6mKxI8MujTyvB1oIV+zzYU0A+U1l2b3FGXsrBbM2CzLMXo
+8h9HGv93pMpHzwwqU4bNiZKvf+OnytUjIP++xbDrhL971D8OMBDpA2NwZUZxBwID
+AQABo4GUMIGRMCsGA1UdEAQkMCKADzIwMDgwOTE3MjIwMDAwWoEPMjAyMjEwMDYy
+MjAwMDBaMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgEGMB8GA1Ud
+IwQYMBaAFAOS8EPY20vpY4zJknJn9KwHzTmPMB0GA1UdDgQWBBQDkvBD2NtL6WOM
+yZJyZ/SsB805jzANBgkqhkiG9w0BAQsFAAOCAgEAKKQ94mThYXGzfQPYwZvtPfiJ
+MViVC//y1Z3J8W6oRbj2E3LN+/BSYGP9lRgYrvkwvRsVJ0MX6Tkxli+Yyk2O+ELj
+U7XdN9KvgtpDFQIfMQ5/CgEy5Ar4PcBo0hA9wIdwvUWkMcmBMhIEHcGt4bKqYcMc
+50+T8mFLnUpQvYx84YsIJIyiPYXpxx6UWQF2MWwPjukGGyiyQLQCnWOiQiGFpU1i
+3g3vEVkxRTHWlw/VyoGdUgrJoqDeFvUyPymAOqwqC9qFAjR8czF4J7WComaqbSVF
+QH4cbmZ4xKEL30fpjbzgNyeZ749NRY5vIMvNo+bl7l6ZnnWEiHU/k05Br0U8kSf7
+q/ahC19KApjpIQI1SLEQ0/+rVrwUi9gqanLA6UHu9KSXXMQuQV4zNCWy/pjnrOtK
+CEwjlCtqfV7Mxhb86uGpmHLs8vxyywVeE9EeJhF5lm1mmI+JyYeqKgEEmQLSPBsy
+/sB6g+rwgpxhE8qUvCUCyW4TDAsuecy/z1gSHo+frMgo/27N+dKH2K2d3gMjT0Q8
+/mSAzaA6sFqf8fjy+Aqce9/gNZmCxk99/N5S8iGnOGqjPykahc8EbyYaVnRH3JK/
+A7lgNgK+lzuP2DqF+3a2/3Fwf9MvppKe+eyFe4LxylAlCCXWM9Ky5YyRiCIbzt+M
+LAQYrKr7QvMCUgTpYgE=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGhDCCBGygAwIBAgIIEvJDj5by7BAwDQYJKoZIhvcNAQEFBQAwgYUxIjAgBgNV
+BAMMGUl0YWxpYW4gQ291bnRyeSBTaWduZXIgQ0ExMzAxBgNVBAsMKk5hdGlvbmFs
+IEVsZWN0cm9uaWMgQ2VudGVyIG9mIFN0YXRlIFBvbGljZTEdMBsGA1UECgwUTWlu
+aXN0cnkgb2YgSW50ZXJpb3IxCzAJBgNVBAYTAklUMB4XDTE2MDUxODEzMjE1OVoX
+DTMxMDgxMzEzMjE1OVowgYUxIjAgBgNVBAMMGUl0YWxpYW4gQ291bnRyeSBTaWdu
+ZXIgQ0ExMzAxBgNVBAsMKk5hdGlvbmFsIEVsZWN0cm9uaWMgQ2VudGVyIG9mIFN0
+YXRlIFBvbGljZTEdMBsGA1UECgwUTWluaXN0cnkgb2YgSW50ZXJpb3IxCzAJBgNV
+BAYTAklUMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA1LeymtfJleSj
+QwYQxYPLebKtQrq+6SoYvb0neWm43gDzmAPQgxFveFrJ/k8w5bKsZKZ+OXBLFcNV
+oHeGbh0rZkEwaoPcfjE8Mav3hIOViL2urN2mkDJPg/HBE6u3y3KQYyMlApnG5QBS
+SWRrSET60eV6KSbqNcWJnob3irNC5J2UsOJeo7lp3HaQksX0IgcNpksjIEro18rM
+0AVAGk5YefupqUAssteXz06ATe69WhrqzrBLGNSNeh6GnZJHT/coKd5SA24QMH3p
+ktJ5Mb2Ahu/qfTq3A42zRoXV4zW2R6Q/1bYOQpg08WengZ9dcG2QkVrPJy/qvUQp
+nW+tzqazqDpVe87b/Lc2kHAM33rL+xADYZzse4SaVcFrqwIMnDwEzTH7/nHdjaZI
+In5BIjHk01nuQKPb5JThuHWwFxcJnztNere4ErB6pHXXzNU615pE7luS53XNOiBR
+RGGHCPnnzxGzGBOt3iie1MvJE8xywUkx7pLosKUXd168PhkVDQru0rkAm1QNIszD
+OGdFIt9sCkj2qiW5R1pZ8doqqrD9k9Xz3JhqkalbUUfuRurVoRdefpC1iSSJ+KD9
+3vLj/+FwRvRSFfXhks3FX0T1x2K5TyCVjJ4/ubEgWQNKh1QHNZzZIBiPuReNmSWk
+tQHSkk9UfuQ4X7VkKg7EJUfBjpfFXGkCAwEAAaOB9TCB8jAdBgNVHQ4EFgQUhS33
+pwpRLYMQPfvJ9ijLaxzuVZEwEgYDVR0TAQH/BAgwBgEB/wIBADAfBgNVHSMEGDAW
+gBSFLfenClEtgxA9+8n2KMtrHO5VkTBMBgNVHR8ERTBDMEGgP6A9hjtodHRwOi8v
+Y3NjYS1pdGEuaW50ZXJuby5nb3YuaXQvY2VydGlmaWNhdGlDU0NBL0NSTF9DU0NB
+LmNybDAOBgNVHQ8BAf8EBAMCAQYwPgYDVR0RBDcwNYETc3BvYy1pdGFAaW50ZXJu
+by5pdIYeaHR0cDovL2NzY2EtaXRhLmludGVybm8uZ292Lml0MA0GCSqGSIb3DQEB
+BQUAA4ICAQB8lHGKsLvH1Papmd24IyDBLSZS60KsGnseWEfNGrYT6D+bYByQQRNf
+f6bniPgocFKBBECJ4Z8MAUPU3hoby6TK8WB5l0Fkam1KvdFpRKCU0JDc6FQgcnTc
+4wcQzcOPRv+UPk/YaUbh9R2aDsSTj8m8O+3GuPp0fsX8979PO920QVlB/K4WQNoz
+Drt1HCpd2ytTdcD7yN9HwZDc704ZH7PKy6snnzQPq1kRiMx+0T6SZMkt/Uydgv6y
+Rs9pef87C8gK5p3Pn7z9y5WcqGZj5HPak97mDfUlUqAVhlm9Mjib8axrarBveiGk
+64ohvOLvNtIDuk/knOtwa7Bpu0pJNVc/TyEAgicVNti6+7xu6vmLAruSRNszTjX0
+qU6srvS8Kfhm1EhPkrvvaDwUTUsJ5teSHs6KeKkowiiVRCOrwhmclIppa5/0cGfq
+cfNyhg/bolOW6f7qjQfLJSC9Acyifp94DeJF1Njsb7kbVON0UUdRNDoCJYA4pMA3
++CbfJeAcvEhvL1kKaSExTfsjzbCaAJBeG1IXMwnMtP6j6fZekhyG8fgVmJ6X+IJL
+0Jd4EQTZXqpqLiDl9McKnZZX++JI/RxHBYAfF6T5nqP1h8cQ8/iH38p5hboVkntJ
+E0WGo9Y0e4BMZ/+CM3w5xPHGkS/Oini9BliZjqsMUf3GxvciHVe93Q==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGnDCCBISgAwIBAgIEAJujwDANBgkqhkiG9w0BAQsFADBEMQswCQYDVQQGEwJG
+STEQMA4GA1UECgwHRmlubGFuZDEMMAoGA1UECwwDVlJLMRUwEwYDVQQDDAxDU0NB
+IEZpbmxhbmQwHhcNMTUxMTExMDkxNjA2WhcNMjYwMjExMDkxNjA2WjBEMQswCQYD
+VQQGEwJGSTEQMA4GA1UECgwHRmlubGFuZDEMMAoGA1UECwwDVlJLMRUwEwYDVQQD
+DAxDU0NBIEZpbmxhbmQwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC6
+RKja9+xDhQlwd0T8hJdKCp85i4XDQT2ICWFfJ+Z5fsXNs6EcvGjWMGmuc+0GKUlL
+l56HGkpkuBB6mWRLV3fmFeqxqoNOvsJ86yuP3y9jrvI+LvZtNmey8zjvw9uXjRgF
+IQzo/oHjxe3QBRvlUetAqNoSX5d1qrMecTH6w+yOxEBNC9xYHGHSlzR/AVw5plr8
+J5SfinQDDhxJD09A9okUKSlmB7IsikXXd36XAV0mJCLfLAAFrV/ccpYRYkfF4XZm
++/oROahr5rzS55j7mhvKX9o98/JX1P0GKEUa+og/5JPLpA3FqdNz5GmcSZbWav1D
+co41vOJaVVeS7n8Tjhhu0pT63+KUskkoFT9hXsBl6LgbqakL7Z8t8lPDOkGUE3uP
+R0RKzHVhsgvWakIh3UczdXPzAibE2rvZudCbLFVUOuHwxEDXKtHHn5iduAtgt59w
+b8JGlBi2FL/ftUCPCs6usqmNCqr8P4XI3JdQBD9d0Tull+NXkIhCc2JguW73Dh+4
+zpWX2wyg0+SOautC7ErLbpK+ltBMJ/iJkgow9jwpUp+Atr6hvKsczWn5wDXNVQvQ
+/sYYkVA7ytFQ5N109qt21YMWyZfTxj7tNd9UTnW/YP6ZFZtw9+P2GE9wqWDTOPo0
+alXgrpWvjodw/fPhvpTcIyb5NAcxtkUdKvXUx7seRQIDAQABo4IBlDCCAZAwHwYD
+VR0jBBgwFoAUweq2GZXUKfiuJmAwQ1PjiksX9dAwHQYDVR0OBBYEFMHqthmV1Cn4
+riZgMENT44pLF/XQMA4GA1UdDwEB/wQEAwIBBjArBgNVHRAEJDAigA8yMDE1MTEx
+MTA5MTYwNlqBDzIwMjAxMTExMDkxNjA2WjAXBgNVHSAEEDAOMAwGCCqBdoQFAgoF
+MAAwVAYDVR0SBE0wS6QQMA4xDDAKBgNVBAcMA0ZJToEYQ1NDQS5GaW5sYW5kQGlu
+dGVybWluLmZphh1odHRwOi8vd3d3LnBvbGlpc2kuZmkvZW4vY3NjYTBUBgNVHREE
+TTBLpBAwDjEMMAoGA1UEBwwDRklOgRhDU0NBLkZpbmxhbmRAaW50ZXJtaW4uZmmG
+HWh0dHA6Ly93d3cucG9saWlzaS5maS9lbi9jc2NhMBIGA1UdEwEB/wQIMAYBAf8C
+AQAwOAYDVR0fBDEwLzAtoCugKYYnaHR0cDovL3Byb3h5LmZpbmVpZC5maS9jcmwv
+Y3NjYWZpbmMuY3JsMA0GCSqGSIb3DQEBCwUAA4ICAQA+hY8TH4dL1exY+u8niEZU
+dkEDGwtcdhSxBRaWx1szqLO0dvWg1SDY9zY0hgNYZ/DB1ZortetlIPDJqR53EUun
+AFFPNXlyW5wvWttiKL+m6vd7NfWE7Oa+NJ9RKKS2CqTr+Dy/O+POgkkeSlzim/Y6
+ekgDD2RP/3KmkxodSl6Sxc8Nz1nNZeV9o2JdNeoNj5yV1L/u2nzf7cntGRKk2O2d
+nqHU+S3pSdQzr5O6Rrkwo+rN8rjPehvuVY9HTltS0HJlBgJ1SXjTX85Hz3mb1k9f
+ReHThMFWgIa34MugZ95277JGBCkQlhMuly84kXAe51DUdcE6n9ee/dOh4FIGSBeS
+WzAa+H6CMWbkKDYNDmURb4Ofts/tMpMRN7G6TM0ikB/ecFmJAilGktt0shVnAMY/
+BBP4TxiZmA/ry9VknJw2mhkw8e3rIdMwkj6mAqfmQGif8cR1vuokuZN5uCPa50TH
+fCBAl5zeLdh+TFa8jIj/TlgfFMarOWqyAnWXvukcJzzcl5eIzd12JYP3nxvA3vyK
+szCGhcPy6DyhqK6DwG54gkHBbIaLwpbeHHcb+fxB+A7H6PH7yt6AFLgKbYB1sYF8
+rK5ru99+X3wzFx3Zt6mZyIgoTdVEvI1Ru6iEYQuK1/Bp1kj5l1HKyxxd4QvaV1zs
+1nX1FTOKmJ1BJ1v1ErEvYg==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGrDCCBJSgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBhDELMAkGA1UEBhMCTFUx
+PjA8BgNVBAoTNUdyYW5kLUR1Y2h5IG9mIEx1eGVtYm91cmcgTWluaXN0cnkgb2Yg
+Rm9yZWlnbiBBZmZhaXJzMTUwMwYDVQQDEyxHcmFuZC1EdWNoeSBvZiBMdXhlbWJv
+dXJnIENvdW50cnkgU2lnbmluZyBDQTAeFw0wNjA4MTcxNDMyMDBaFw0xNDExMTcx
+NDMyMDBaMIGEMQswCQYDVQQGEwJMVTE+MDwGA1UEChM1R3JhbmQtRHVjaHkgb2Yg
+THV4ZW1ib3VyZyBNaW5pc3RyeSBvZiBGb3JlaWduIEFmZmFpcnMxNTAzBgNVBAMT
+LEdyYW5kLUR1Y2h5IG9mIEx1eGVtYm91cmcgQ291bnRyeSBTaWduaW5nIENBMIIC
+IjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAyY/bB1joUnWlWUGWCe/NBgRf
+CgeW2egzSwGPFyiWSbeQSKTnlxvxd5AGAZZi/LiqdM8tlbtU8LMpyOHN9Wijwl+7
+TZ0+wYxwSXyAzwiFsfXQ/gG+9/8u9H6jSTL8rFIBtjpoA4AhV613WGzowGrO771Q
+mqMeM/7W5SJ0B0jM8sX507YF8ReUy7yysik+J+q0GRgsqy9nmwBEMLYTmGy2MV5J
+CH1XK/p3WGMOcFCkm3dtp6pDszW+ZVxsSiROuBoUFJt5rq83L7HCz+b5w7MXQrcm
+bi7M3E+1mQn3gSQc7O6dSx68PCDBxwDMtIELcFrTWWJiUZMJfb4NtbnNyi1vlwRg
+fRIF+dNGvlXYt7ZUP6/BMcEHoNbis4bbhBNTdBOpKhDaCdFjbcGToHGlLfnbSO6P
+TC4sAzLn3nkTBiCWSQEwG/PmZt66Df7Qlx0+q49YH+7DdgQu5zw+bOyhOXwzSkf+
+V1EOSwpFHLKtOz30njSdhSzyVir/c9W5X5CJKEC8KVgguB2PSIjE+Kb9UjlglWNz
+kTONHxyk4P0STzwyOAJRUyh9fke5X5TGC7ECK5gs3Tj0sLdF1ozUNBQpJzN1vA0K
+MCie7wpBs+u2gWSWcR05ZRpmxEAk8CGcfIvwBfEMCJGJZAsZa0iAlyIPFw44Pipm
+u2cSfG0e3OCve0zmxx0CAwEAAaOCASUwggEhMBIGA1UdEwEB/wQIMAYBAf8CAQAw
+TgYDVR0gBEcwRTBDBgcrgSsBAgEBMDgwNgYIKwYBBQUHAgEWKmh0dHA6Ly9yZXBv
+c2l0b3J5LkdETGVQYXNzcG9ydC5sdXh0cnVzdC5sdTBHBggrBgEFBQcBAQQ7MDkw
+NwYIKwYBBQUHMAGGK2h0dHA6Ly9jYS5HRExlUGFzc3BvcnQubHV4dHJ1c3QubHUv
+Q1NDQS5jcnQwPQYDVR0fBDYwNDAyoDCgLoYsaHR0cDovL2NybC5HRExlUGFzc3Bv
+cnQubHV4dHJ1c3QubHUvQ1NDQS5jcmwwCwYDVR0PBAQDAgHGMBMGA1UdIwQMMAqA
+CEW8wqWSLBdAMBEGA1UdDgQKBAhFvMKlkiwXQDANBgkqhkiG9w0BAQUFAAOCAgEA
+x2Levaeh6pq9liV02Nff0eUFgCovbIzXjlqi4K9XKShI4l6rmLv1YGuyLJEFCYZw
+o4QfgTYmydnXVC7Ar06wwnwRjBmwZiZdPWVCOFdUeB1yd6L0RMoa5PLEGGehw1/y
+Jvyr4yLepXZEnozQ9YqXQpVXaHNHOeTg9qtkRqHcEW4eG+2qxI2Yxb8V3HH9tIsc
+6ZIU1WgX/VFfedWdA03nD1VerqMa8ugB0n80TRriT1Jos5J2qVW0pSA1Fe1QWfOX
+esaI6tbCuFFmzB1PldjMe4B/oPU6wtXkqlPlfH7wRnRM2J4OwBU2YskjWuVbnQa7
+Jk4/338dK4Nha3USKyzeizYluNiP/W64JjkN5hUkIWH51URO0+oa1Zlc2UwvH8lF
+8fGWGBm3JAvM/1Gc9e+35y+FrPAxNxdbI5gvnQf718lwC8DvYR4f4zy//7kkhi1q
+WZp4F2DiSGAf7cBWIzMdKp0l1L8Q2awHRjFVZr+QMKI9J6+abPP5+ZqMt9jESMLn
+0yPsUdTwws4DE9R/OZ3jRXY2POaYe2UG9fn8yajaIQTI6PaHdTF9roEG1MC0cyJf
+kGwHKhEdW2640PDDYeNiuG/+Aiqex8CHNmmAm+Gu9JXXKmHcNkgcVYjMf5AxXqoo
+9nOodu2f9Ds1Q0JAABYPL8D9n3QR0ynGwKf4e17IBEQ=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+UPc=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIG8DCCBNigAwIBAgIERIg0WTANBgkqhkiG9w0BAQsFADBXMQswCQYDVQQGEwJz
+aTEbMBkGA1UECgwSc3RhdGUtaW5zdGl0dXRpb25zMRMwEQYDVQQLDAplLXBhc3Nw
+b3J0MRYwFAYDVQQDDA1DU0NBLVNsb3ZlbmlhMB4XDTE1MDQyMjA4MTExNloXDTMw
+MDQyMjA4NDExNlowVzELMAkGA1UEBhMCc2kxGzAZBgNVBAoMEnN0YXRlLWluc3Rp
+dHV0aW9uczETMBEGA1UECwwKZS1wYXNzcG9ydDEWMBQGA1UEAwwNQ1NDQS1TbG92
+ZW5pYTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAPeUO2NjQrV7TG+U
+C7Kg2RrMiMMCJn3EkphcoYY63vpuzEwDePMaO8kuSn9leJ0JDy7Y+iRo9fwfp0Wt
+TeL04Rrzw+1RohugcIuO5zLY4y5whHYBgCquaLugP4JPUdCIe5aolrh6qjpSVzwG
+Yur6uUcSpETanHkDAdFqfoxBN2saX/d6/zucL3/um6brJSsQ43wRZcjLx/dy8WKl
+aBYqu6WSRC2Zbwm+rIowfeigEhhzbxDGbPvMzCzUkBzGuz+FJ7aDZYTK7ySdEBWQ
+XF/y4Kyxqyopduwl1gmIfJdz0u9O0ZwomJ4PXLVlQg4+NlTPjpvjduQWfHfucpG6
+63yCvHfbo9qBuc4rfJLe6h6Ozw72lOl/+WJho0mQm5IaOqlwCSFzWItyt7japR1f
+/egslukaahCqXCBUUloW3fvv7oEa8xf7m8illAzt8eZAffTxHhQpOcM/UZdH378J
+oLAQUogHxXVWvHNQ+FgRFp0dhZ3oayF1aLBcZDaigmTORni/JynIWrcSrTDmSnCz
+1VXWz9M1FD9wM60+V6kheTa35UgrrdWAQmgY/nk0hCEy6BDAdH//CVZMANDHuPoP
+p7xTzYGv+iZGUiC4WwoQvs5H8a2rsDQCv+RA+VTU/jmzrsaFI8MuDWN3EeCfeSgs
+ENEerzK9qgyL29FQuNK6QDYwVi8HAgMBAAGjggHCMIIBvjASBgNVHRMBAf8ECDAG
+AQH/AgEAMA4GA1UdDwEB/wQEAwIBBjBLBgNVHREERDBCgRRjc2NhLXNsb3Zlbmlh
+QGdvdi5zaYYYaHR0cHM6Ly93d3cuY3NjYS5nb3Yuc2kvpBAwDjEMMAoGA1UEBwwD
+U1ZOMEsGA1UdEgREMEKBFGNzY2Etc2xvdmVuaWFAZ292LnNphhhodHRwczovL3d3
+dy5jc2NhLmdvdi5zaS+kEDAOMQwwCgYDVQQHDANTVk4wgagGA1UdHwSBoDCBnTAr
+oCmgJ4YlaHR0cDovL3d3dy5jc2NhLXNpLmdvdi5zaS9jc2NhLXNpLmNybDBuoGyg
+aqRoMGYxCzAJBgNVBAYTAnNpMRswGQYDVQQKDBJzdGF0ZS1pbnN0aXR1dGlvbnMx
+EzARBgNVBAsMCmUtcGFzc3BvcnQxFjAUBgNVBAMMDUNTQ0EtU2xvdmVuaWExDTAL
+BgNVBAMMBENSTDEwKwYDVR0QBCQwIoAPMjAxNTA0MjIwODExMTZagQ8yMDE5MTAy
+MjAwNDExNlowEwYDVR0jBAwwCoAIQz3lDj/ssscwEQYDVR0OBAoECEM95Q4/7LLH
+MA0GCSqGSIb3DQEBCwUAA4ICAQB+PHyJ30p+Q8MU9ifl4dFDpqouxlmdjUbxoypo
+mhSENdstpbcbQoMQ4VuU9B8zhLzzsYlBOjlCZk2viVJmKBJuAaooinNvcVEzzQRk
+/lP4IiDmLAwh0SKVpJigkhgqyk4KSWTeVFujok3gOmhq4zLmX1trtkq6G2EwXLmk
+XDvVMZr81SW2bqUUp1faEDmnhc2sQhk9gC+s1xfqanLROnSYNzMNLv8+5q85n39B
+JNplAoCI03C8Pf9UTmRaU6f9ijfkXM9lkIoSZrq0DEsspA+3SqIUadhKVmsVicHA
+OHdQrDVLXg944tBKRefcbWSdllEekY4zZ2z41M4WmdajCgrSrizeYdHPh8krRdB/
+STZgZGUfZ0cMcVkH5YVZ3FuJq4AH3IfLUhupEIeMlQgDGiickIGQDFlJxd1HV8Gm
+m+0FvbkICsq6Yr68oUwhC7Dd0cczRFoyTtLIvuOXj2RGi2Elg+nzU28QtjYpDwdK
+Bq/+6sTCilJbx5PtUXqRmdpIxLLPY+B9HwWQCB/QgxTb/CcbogjXhZZKvJ3smWFa
+UumeSkQk9Mx6a/zzNBbWHRLcon/5NkPkcyu6hBgWliG6coPKQE7JYkUu9Oj3U2JY
+C/PKcbiPvKbtTtVchGMnlEdBphPcTcKvPwazV7eUIrJTZ15Db1LtQ0NnpUO1Pe0H
+L6Mc9A==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIHDzCCBMOgAwIBAgIIEmYftqGzCYQwQQYJKoZIhvcNAQEKMDSgDzANBglghkgB
+ZQMEAgEFAKEcMBoGCSqGSIb3DQEBCDANBglghkgBZQMEAgEFAKIDAgEgME8xIzAh
+BgNVBAMMGlN3ZWRpc2ggQ291bnRyeSBTaWduaW5nIENBMRswGQYDVQQKDBJSaWtz
+cG9saXNzdHlyZWxzZW4xCzAJBgNVBAYTAlNFMB4XDTEzMTIxMTEwMjA0N1oXDTIy
+MDUwNDEwMjA0N1owTzEjMCEGA1UEAwwaU3dlZGlzaCBDb3VudHJ5IFNpZ25pbmcg
+Q0ExGzAZBgNVBAoMElJpa3Nwb2xpc3N0eXJlbHNlbjELMAkGA1UEBhMCU0UwggIi
+MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDO4Sn5Fl67Cu9bJPCXOjCOGG3D
+9DdUqKf1rbej88v/kFGHkRk0bEkRm0CaziRUwPxxQsRrdTSn2IePX8rqm7PBlVg/
+AKHixuXPef9YPx9tp9V1Zd3gKxZThenfIHuoLwkUjto8iADD2WNDhrvkQRl6f9RG
+9lFKVsxpENEIMQ/JR2AL1KBqRFcMsyWCga5jq9SJQjUMI/uH9yl6Tk4Z6tTlypMm
+j4POS82qRndrOtXPmaDQCt4NTzvlMDXnlOxLmO7Oy2g89Kov6R3yjFJS68GZDfVB
+DvNwzeKdimliQwjeO28x7hgeaLTNhXvJ0FxVecDVCisjBEMzKFi+X6KImieCbxCn
+Izz+KXns33M0+iBUezqkvbtBhG9U/VtTv3e7RcgcaOXi8MBXtSig89l42WSMDnoM
+7EE5hXQDdZyM9n5r5nEZnnIoFCsodDkQcrAiV7/1up6dHjId7JQT50bwL0MAcf5i
+DiboqFh3zU1b5HZEiQvFqkLihO5+IyfqL3qleoldmwfImCUq5Xjv8lKxXU5LIL0g
+V/c0vLX0O/vqtw74UebvQKQQ9DcZIt8lzaIbj5FrI9Gk5bYbBa4ykHnIqa6jnSxI
+PyxQImVmkhaLgOZHQivS9nnUSWxFajdxknhP2bU4qqXdNumzeh+4CX5+5ej8k96u
+zlc3rv/mP7qz7ppBlQIDAQABo4IBhTCCAYEwHQYDVR0OBBYEFBP4qm9aUqAbV/LX
+bvw6V1wiXiTdMBIGA1UdEwEB/wQIMAYBAf8CAQAwHwYDVR0jBBgwFoAUE/iqb1pS
+oBtX8tdu/DpXXCJeJN0wKwYDVR0QBCQwIoAPMjAxMzEyMTExMDIwNDdagQ8yMDE2
+MDUyOTEwMjA0N1owFwYDVR0gBBAwDjAMBgoqhXBUZAkBAwEBMGEGA1UdHwRaMFgw
+VqBUoFKGUGh0dHA6Ly9jZXJ0LnBvbGlzZW4uc2UvQ1NDQS9TRV9DU0NBXzQxMTVm
+NDEwNTc5M2RmYjEzMThhZTVhNjgxZWVkZjdlMjc2ODEyN2QuY3JsMA4GA1UdDwEB
+/wQEAwIBBjA4BgNVHREEMTAvpBAwDjEMMAoGA1UEBwwDU1dFhhtodHRwOi8vY2Vy
+dC5wb2xpc2VuLnNlL0NTQ0EwOAYDVR0SBDEwL6QQMA4xDDAKBgNVBAcMA1NXRYYb
+aHR0cDovL2NlcnQucG9saXNlbi5zZS9DU0NBMEEGCSqGSIb3DQEBCjA0oA8wDQYJ
+YIZIAWUDBAIBBQChHDAaBgkqhkiG9w0BAQgwDQYJYIZIAWUDBAIBBQCiAwIBIAOC
+AgEAFweKSNX+2NX3WPfbr9gSh7WIiYc97L9nSpZSL9bWnFp+grUQLrWsWqZPMzkq
+nrdSyGHaix1vJV7VDFh0RR+tH9TlewuHyOvgjCSZZ4adyVv5kgK613dEXnn+4neb
+pIqVWYAumCPX8AFSSIzm7BaPiP5mDygNnYe1Sm1qHE3qCfhMEU8j7yS2svQEpYlj
+PydDbAmN31iTlXdDIbr491llt0KzdqmgH9O34TmQYMsbrWdgmoPnD9OflSvwB+PJ
+8OqZrUbafxJWZyr4wDkrQYwAtT1DjRqeIgfUYROLeFznTlSnF3nBi1QKy1NDYX9h
+ppfaGEsJrmtSMzKje7LlaODxy5wfypIciW1i1YiLbp0ZBjbsXV8V7B+XY10WqolO
+8eDZQai65kWV9VFHqMUDV3TvTLGLrfI2CBzqZqGIn5PWe1Qkzfvl3ME7NGix/sX+
+i1/dy+0/taiLZMg/JSKheITJPeVTHhW8kFLg4ZzPsMBS/9flVC7LQfFDe80BEwra
+S/MU8W4e4+91+r6yzd1UD0ae+SwVR7p6/3fVMytu4Xv6CcxhuuxNXQIHaW/Z6eb0
+B7a+Ij2QO4WcnLN8YfpRnJ+s0nbrSq9khg0EfyNNicXmDe2sR5uwDWJw3LrpNewh
+IfAHXXedDVIa7+T2tK/E6kUXQNTTQFc7z8+GFCU+cQth+Hk=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIHDzCCBMOgAwIBAgIIZjSK6/NPzgowQQYJKoZIhvcNAQEKMDSgDzANBglghkgB
+ZQMEAgEFAKEcMBoGCSqGSIb3DQEBCDANBglghkgBZQMEAgEFAKIDAgEgME8xIzAh
+BgNVBAMMGlN3ZWRpc2ggQ291bnRyeSBTaWduaW5nIENBMRswGQYDVQQKDBJSaWtz
+cG9saXNzdHlyZWxzZW4xCzAJBgNVBAYTAlNFMB4XDTE1MTAyNzEyMzIxNloXDTI0
+MDMxOTEyMzIxNlowTzEjMCEGA1UEAwwaU3dlZGlzaCBDb3VudHJ5IFNpZ25pbmcg
+Q0ExGzAZBgNVBAoMElJpa3Nwb2xpc3N0eXJlbHNlbjELMAkGA1UEBhMCU0UwggIi
+MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC4cSXeMAuvtH1wVcrG3cZu/joz
+kRWaCwnVM1NcnZpCjfdaVftSvvSlxMZHT0fPpTZswsmCdR4yrHe7d4Z6lj+Y8+Uw
+rT6qpSRcDDJFW7mDNYj/iELyeBu1mwphaTwsNE2Gr8ZOV1LvMQjxBe4T+kaIUiRZ
+KZWsKajgo1Ipg9ROg+7eTWp0WE7AZstGfqcxAyU9MrxtqRW4KIKCfIbW6NeyWvVj
+FTYwFRsU0DjHYwyW2VY+oyDV8KtYNE0FkHH0uI6ygF6ohDntRjqDw2QZrHX8/SPj
+vEIOxVG3pEK6nWr/9yqTahwJycGsqPGmsLxAXrzF9FZxfWF+W8mT4XJc2GxqaVYQ
+00BY9SsrSyT5aXlZAAfNYlBbAX4lO2vY2r4j3qmubkfwjJY5wlxUZVoLlhlRogL1
+UR9cFgPrZhAx0PT7lf2ZwohVqKFpyjHmpszFvxQi0Q/QxPjUEfQQIKbAgR7WE01Y
+L1LALvjDDnI50n7blaHdRuJdiRPxHVWtnvFo9j9YeaRfx4JR6RUCicnrRx2TnLD4
+9OsRik82x/iOt4K1xbXtX1oquh/vEu71AXIe069tnPS2roNYoJnqneFwdDw79hsP
+uCg/Y8GhgpxrGcq7OFue6KZk+FLKOFAOHaTou0c9mcRwX0HzgnsQLwz4RYEGhLq+
+dnHdIDzBoBtfHkmVkQIDAQABo4IBhTCCAYEwHQYDVR0OBBYEFA4wULiS85liyEcZ
+Lpjk0/qoQxmsMBIGA1UdEwEB/wQIMAYBAf8CAQAwHwYDVR0jBBgwFoAUDjBQuJLz
+mWLIRxkumOTT+qhDGawwKwYDVR0QBCQwIoAPMjAxNTEwMjcxMjMyMTZagQ8yMDE4
+MDQxNDEyMzIxNlowFwYDVR0gBBAwDjAMBgoqhXBUZAkBAwEBMGEGA1UdHwRaMFgw
+VqBUoFKGUGh0dHA6Ly9jZXJ0LnBvbGlzZW4uc2UvQ1NDQS9TRV9DU0NBXzQxMTVm
+NDEwNTc5M2RmYjEzMThhZTVhNjgxZWVkZjdlMjc2ODEyN2QuY3JsMA4GA1UdDwEB
+/wQEAwIBBjA4BgNVHREEMTAvpBAwDjEMMAoGA1UEBwwDU1dFhhtodHRwOi8vY2Vy
+dC5wb2xpc2VuLnNlL0NTQ0EwOAYDVR0SBDEwL6QQMA4xDDAKBgNVBAcMA1NXRYYb
+aHR0cDovL2NlcnQucG9saXNlbi5zZS9DU0NBMEEGCSqGSIb3DQEBCjA0oA8wDQYJ
+YIZIAWUDBAIBBQChHDAaBgkqhkiG9w0BAQgwDQYJYIZIAWUDBAIBBQCiAwIBIAOC
+AgEAFLPYUFm8KT6VfrcyeoyszYaf0xZYk8TALErw1kCbS/sJR9x3kkQ6gxL0RNtX
+Xnc94+SBJQU7Y8jFJiKlPkCLhLVefaaDxRGD0QEkYmGmVHKxMq2oagverzypcz9O
+K0x39uskzGtL1Fq2y+5TE53+d9ksv/lFZmgMhEb6mKs+mOW1a01+AG9LCv30L1I8
+3o0r3Wq5aDksKr8NNQgDvcMfgdK0UZYlhTpoPfrU7tqQR7NHgFmkHWgNd+TtYO+1
+GBgqQLK5j/g4VOqq17BaTMvIrL6lEG8o8t7hPGkCeeDdg3pHVm0OwcNjAi2l2jJl
+D1NUAnkmLV4ZiY7ifLHUuceQOklUCZ0tgSvpeIvebvqdi6H5OLAXRk9nhh57xgIS
+VNEmupANRQclCgg3aapz359/0c2cgawzdrmRzRwsXZERxya+7QKw5UwQc44P7ouW
+MQEVuTTC5fgJGvtxU4WkvzJ7VnbeNnvU1k541ZRUGi7iini/lyYNZuUOCAvc0Skd
+2aBxAWBsyGJibClD8Gix89qJb5wbC+FIJcjkONf2xKvPCnCYvddNLLifrzDosSuz
+NUvo96uBvTaFvZf+l414lFFOH473UrosTXljId/onQD9LkyCHrQgcvMI+7/P+Iio
+g2HOhYr8ST5RmTFvH9JNxJQjJ6xW9Tst3wzdvD53uGY6RCk=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIHQTCCBSmgAwIBAgIBATANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQGEwJBVTEM
+MAoGA1UEChMDR09WMQ0wCwYDVQQLEwRERkFUMQwwCgYDVQQLEwNQVEIxKzApBgNV
+BAMTIlBhc3Nwb3J0IENvdW50cnkgU2lnbmluZyBBdXRob3JpdHkwHhcNMDUwOTAy
+MDI0ODQxWhcNMjAwOTAyMDIzNTU3WjBlMQswCQYDVQQGEwJBVTEMMAoGA1UEChMD
+R09WMQ0wCwYDVQQLEwRERkFUMQwwCgYDVQQLEwNQVEIxKzApBgNVBAMTIlBhc3Nw
+b3J0IENvdW50cnkgU2lnbmluZyBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUA
+A4ICDwAwggIKAoICAQC5GGpurGBUXu/Q3G4WFrMk2nIuLNepIIu3tcNlOm+sks++
+TxKV0cM6Wy7r4WTxChcoB4aq+RQKKnnQqHz959iVdeJ9h024hw5tad/3qd6BPsxU
+5sDnGvVJJ28rIiXHsQ+nVT7g4fy7Ejcj+2/QTbAeW5iaR/lyuOFPtGikOlZrplws
+l5XT5xM4MwlFPWcAkcYtnRW4MnfPlnOMgWoxPIiQ+TnllxMTydSB4WoT+wyeznkt
+twaSByBlSpBCuadGGTcT/K0mJq/jbaej621QzPfSF2fknB0uS69ao4pAQabbAo3D
+HV8sXvM29h0+Iobm/szvtZsEQDiqLF721PBZbLXt+eScNQljwnVPovuTyKYYafgd
+wry45UKAk7ceYe8/WCqb1eWj7L9MoHU7449AhBdOHmpkb0S5NAGwVLgtnjwHO1hD
+D9djNVA7bmhg6zGQBsOnmKoVfKXbKKX8XdPmvo6GCjoJJU62OnJ1V+EBlEbwpCoN
+lP9QE+8TPbnAB8Fj0tGK2/QGAOgg+MmObkaPeYC1O57qv7GZ2FOAoEtc7Z1hTx6Q
+V3pcLSDI/vN/ZmbySv+DpqWJwHiTkXEzdrlzjSW0ks/65QPcgQapSu2ZLFoBAfq6
+gAKZHZ0CCI9GUIoUltNnSj1zgM8LENr7+q9k6egrJjEny4utKegr4tTKKJlbPwID
+AQABo4IB+jCCAfYwEgYDVR0TAQH/BAgwBgEB/wIBATCB8QYDVR0gBIHpMIHmMIHj
+BggqJJ+mgV0BATCB1jCB0wYIKwYBBQUHAgIwgcYagcNDZXJ0aWZpY2F0ZXMgdW5k
+ZXIgdGhpcyBwb2xpY3kgYXJlIGlzc3VlZCBieSB0aGUgREZBVCBDb3VudHJ5IFNp
+Z25pbmcgQ0EgdG8gdGhlIENvdW50cnkgU2lnbmluZyBDQSBpdHNlbGYgKHNlbGYt
+c2lnbmVkKSBvciB0aGUgRG9jdW1lbnQgU2lnbmluZyBDZXJ0aWZpY2F0ZXMgc3Vi
+b3JkaW5hdGUgdG8gdGhlIENvdW50cnkgU2lnbmluZyBDQS4wDgYDVR0PAQH/BAQD
+AgEGMCsGA1UdEAQkMCKADzIwMDUwOTAyMDIzNTU3WoEPMjAwODA5MDIwMjM1NTda
+MB0GA1UdDgQWBBQ35UU4PlOsrXY2zqkmAMVn6XxyiTCBjwYDVR0jBIGHMIGEgBQ3
+5UU4PlOsrXY2zqkmAMVn6XxyiaFppGcwZTELMAkGA1UEBhMCQVUxDDAKBgNVBAoT
+A0dPVjENMAsGA1UECxMEREZBVDEMMAoGA1UECxMDUFRCMSswKQYDVQQDEyJQYXNz
+cG9ydCBDb3VudHJ5IFNpZ25pbmcgQXV0aG9yaXR5ggEBMA0GCSqGSIb3DQEBBQUA
+A4ICAQB3/a7TKbSooEOGF9C7zSDCDdrjbKVWIST7oTMk8v3FFzxTysshgRArw86s
+ZVCZRrWD6weVQqyv6VG55kZSE0NVEH6+Gme9v1h7cV2Wh+ATiYoi0LbmHnQzTgx6
+HXMijMobms2EYOaCXbMfB2ocvhMhy1kQ6Ow5GBlAI2BEPtt5eb926aVemAFVbfOc
+cQ0id62P8xxhcycKSoeVhEtEP+voC2OnxEDTAoAxXGzUAuQqVW3cs2AEd77/be7p
+265nkiGjaZGaz+QbkUjvz4LMqd41PSXETQWamb3jgobyN1pP4+5FEvaCjywC1vo7
+VA1jvBMxduDTBWATCK9ww1g7f50KuKOS/62BH/7SY+9/5bq5X5xABE0rOstY9bEE
+14HpUoVlulaX9Q1Kqz74z3OCMmxx5DI4MGia6E7sflYxx1AE6/YjEsuKS0gwv3zy
+l/mlad9N4Sp1o3HSzIoxIO4ATWaqY7HyUnQoqF8yMYJ/bSSXK//xA7X/fsWc7otw
+00rSmFlEWJl7AlVeqnUYt1NfPpDW5rTYCva2qOOq3qXfAOLwyK5XtOgDhh8X0vtt
+OOdBc0TOweG2DwJK2O1OF9OBxTp/NEJhm8lLBj6REQALbNLbG6figAeP8HGLHPNM
+kscdy7i+WLiNoE1qTuAcvKh2X6wXuj5SJkHpQdnd0fXINoUh2Q==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIH4zCCBcugAwIBAgIBVjANBgkqhkiG9w0BAQsFADBwMQowCAYDVQQFEwEzMRow
+GAYDVQQKExFIZWxsZW5pYyBSZXB1YmxpYzEUMBIGA1UEAxMLQ1NDQS1IRUxMQVMx
+CzAJBgNVBAYTAkdSMSMwIQYJKoZIhvcNAQkBFhRjc2NhQHBhc3Nwb3J0Lmdvdi5n
+cjAeFw0xMTA4MjAyMTAwMDBaFw0yMTExMjAyMTU5NTlaMHAxCjAIBgNVBAUTATMx
+GjAYBgNVBAoTEUhlbGxlbmljIFJlcHVibGljMRQwEgYDVQQDEwtDU0NBLUhFTExB
+UzELMAkGA1UEBhMCR1IxIzAhBgkqhkiG9w0BCQEWFGNzY2FAcGFzc3BvcnQuZ292
+LmdyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA4JWyBFqReB9/HDN/
+0DrhLKdMGb5DMMKLtxodnYBDMP6A1of/8/JDNxbCHw9Q9L87pBjG0tqrVtPbmSOf
+3z3cChJhH+zmmmS/EO1QYO7J+qSCIpeJ08DR0O1og4pKIj/I7pldloHxP7Ju0351
+Jga02eHfp1WEN0WpeWpGN5+RupVf0nAbGDRqwHBZV3poykKJBU1A92DiRKUpaqyD
+bS/AKz9LNAkDMRjo4eBZN9TKdoeb+7McbZS7DTvRwzTeO9NNxwsZ+0n48NsoRTaI
+ry6uZgH2YCTqmRH33JwyhF7u0O2h4Nn4nqJpq6fgfqh4vCdzWEkDIiqH4wal0gAQ
+rDSQjwsJ8tJ0Z7faABlH5sZwI96pdnJuTCNcJmbdTOE7GTUmpNFH3hEmeK2UvnFt
+EjViYeKZHlbmk/fi8YI2/5wN6/YtWi6rY4xn1I1Qf2XIf/bV770+D9N65inFBOoM
+3EbwTj4/nultZv1IoblJEUFMhNSCi93c9P9nGorSrkI5VXPfWejr8teef9151MG3
+jMpc/iBOogIZKBgys7ogct0sioLQs56q7YSvT/N+AUl+z5VI7aLcK6/tpo6X+zts
+r70NtHoTSQ6nmybLFnLtckn2AyjItq6EzjULpUIu1P3N0UkKjU0txl/hU+xOk53r
+I04UiLVK1TxR/dj/uLUGQWI2gGkCAwEAAaOCAoYwggKCMCsGA1UdEAQkMCKADzIw
+MTEwODIwMjEwMDAwWoEPMjAxNjA4MjAyMDU5NTlaMA4GA1UdDwEB/wQEAwIBBjAd
+BgNVHQ4EFgQUvSC7Feqn+R7kkN8IelLnqgiw1+YwHwYDVR0jBBgwFoAUvSC7Feqn
++R7kkN8IelLnqgiw1+YwEgYDVR0TAQH/BAgwBgEB/wIBATA5BgNVHR8EMjAwMC6g
+LKAqhihodHRwOi8vd3d3LnBhc3Nwb3J0Lmdvdi5nci9jc2NhL2NzY2EuY3JsMIIB
+sgYDVR0gBIIBqTCCAaUwggGhBgwrBgEEAapsAQpjAQAwggGPMIIBVAYIKwYBBQUH
+AgIwggFGHoIBQgBUAGgAaQBzACAAQwBlAHIAdABpAGYAaQBjAGEAdABlACAAaQBz
+ACAAZwBvAHYAZQByAG4AZQBkACAAYgB5ACAAdABoAGUAIAByAGUAZgBlAHIAcgBl
+AGQAIABQAG8AbABpAGMAaQBlAHMAIABhAG4AZAAgAHQAaABlACAAQwBlAHIAdABp
+AGYAaQBjAGEAdABpAG8AbgAgAFAAcgBhAGMAdABpAGMAZQAgAFMAdABhAHQAZQBt
+AGUAbgB0ACAAbwBmACAAdABoAGUAIABHAHIAZQBlAGsAIABDAFMAQwBBACwAIAB3
+AGgAaQBjAGgAIABmAG8AcgBtACAAYQBuACAAaQBuAHQAZQBnAHIAYQBsACAAcABh
+AHIAdAAgAG8AZgAgAHQAaABlACAAQwBlAHIAdABpAGYAaQBjAGEAdABlAC4wNQYI
+KwYBBQUHAgEWKWh0dHA6Ly93d3cucGFzc3BvcnQuZ292LmdyL2NzY2EvcG9saWNp
+ZXMvMA0GCSqGSIb3DQEBCwUAA4ICAQCl8hIGOHKa7n2pas8sFy7wEA6BrDKCsy6Z
+M28sMeLb4Uy6trqUgS1UXPzx7irL0QR4GX29F2czP1dtiLN/NU4vWmRaE1hBqJw3
+7UG6V+aX8DsXss8l7GgvDPpV5CXSgBZuZeoN+n34xt89DzkfTnbqfRQTFYJ44KqP
+rVxIVFFIL0DIbTW1CE9GudWK1mqS0GDLRiLindBPciBXDy+dfYuaBeB4Nb6GjZw/
+UlXkBulNs5bsuN65a9y0ogedO8IuGIUI3GeCrxz5jOk1zMtO6+XoxiEcJ/FfTvy/
+r//vokdv0zSV3OOH5cxSOkxZeXwFPsyVUxxxxvyakT5Q14RDfPWW4gy/Ffo4paN0
+U0HAbHmfETsHjYf6PEHp9iDg0fUsuN6llwt8qIZxQ0DlRBMF5/JmI6Qz1W8VVU4H
+TodaU7gh2NPU7taFBu5BoctRIdsc2X8tYhsD424cdna3odkEdWtrATxSLsx5IvpO
+EWwoYYErWPcKuOuIEnWf6OvBM85CJqaik/5YmfQciGsa2m7glqjxUO6dhhLF7y5Y
+0bKEceAUkGNFtu5vWngm5KwC376GA28pT/oW1XiGd40UTNd0dbXruxqxf+55jJ2W
+h28SAX9GupKanzL1uPbindio+IiQOI0oo2aS6bLvdvCqcru1UoDWYi/HzXjr4uln
+5CjW+w/3hQ==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFeDCCA2CgAwIBAgIQBMZIPFMa/oFBkNcCnJprMTANBgkqhkiG9w0BAQsFADBB
+MREwDwYDVQQLEwhNTEhBLURJQzEMMAoGA1UEChMDR09WMQswCQYDVQQGEwJCVzER
+MA8GA1UEAxMIQ1NDQS1CV0EwHhcNMDkwOTE1MDc1MjQyWhcNMjkwOTE1MDgwMTE1
+WjBBMREwDwYDVQQLEwhNTEhBLURJQzEMMAoGA1UEChMDR09WMQswCQYDVQQGEwJC
+VzERMA8GA1UEAxMIQ1NDQS1CV0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIK
+AoICAQCqrKmBNRKHHR47xpX8ArsQxLkzSP+oA1dnbwmbkohYEuaABB3Oy3uchZv1
+H/i7oovrJIKxkx9k4l73urlyKqn2xIZd/Ci+Uj2jDIBaCMAPm/bbOa8deIfnpPsG
+DZy9cT08K0eFyAK9yFZs68penXqjxgOZ2fy4SNCOjymgYGkXCBrDo+aquhzeWkSF
+WwNuNl5lMVo+7iAa52M+xcnN88O7DN/7VkTvcfGtEFAC08U0L655yqAZF0bl+AEF
+laLwtTG+S89FXW0dc7E4a73WAvZYn24kgRj49mCMe9zzS6EyQM/ul2qgiDwisUFT
+iGDS79ZkIXj2mceXW+n7Tl7vWCEKzYGG3XAw2w/QtzXLy2GdaByXV/yZ/96FH4tO
+ITjA+nyYAn7AfX1TqYvzMS+OgXJQKh/AREY4yAmJFcC130sKvwOwAoXRkTkvzmWS
+Tzv7jRw9oqplqgUwW1GWS1JxecvbYXatuW2TPs97VIMpS3leqMFgmuX8pDzE3scp
+UdsDJEJrc11RtN46E6zKg5vk9u2+KZkcgq2PEOQecy3VihzcqGk6PayLfum2lGSN
+vE4DTz2GpPwF+vPhRBop0HxvqeSkqzi+YUrrVXdkOIXTgf8/6ghFzd6Dux3e2tDY
+QJqDKJmfZDs6BB8VL/+ZtfvxdkHvjxK9u7t9hXF2LayBdT91cwIDAQABo2wwajAO
+BgNVHQ8BAf8EBAMCAQYwEwYJKwYBBAGCNxQCBAYeBABDAEEwEgYDVR0TAQH/BAgw
+BgEB/wIBADAdBgNVHQ4EFgQUbfHPhBy4UzOi6uqn6nYRHAJXkewwEAYJKwYBBAGC
+NxUBBAMCAQAwDQYJKoZIhvcNAQELBQADggIBAJL0ZUEw4jgf9q1M9h+YyQd05S7E
+RXX5rL/LaBo3xF5AkCPeA2fYXcoqBnLkzRMU+BHkzOnWRW3D1mov/Kt91WAWx+5n
+9Lyy71s3myPdc/cUXe9uuZ+7jBKtTA8AafRQpuIkrKixF47ax5IN7DP/ihbHdgL+
+i5fkuuszIcHOTGY7QUk7Hp2ME89EJAAVzSTrw0BmarPxwnKSUhW+xRluMrL/+gSS
+dZyuW8M1RYsAqlJMmWkxzKP2HPulXNL/fne0U5JPPUMgvB7C4ulFkkRsHL3wlJ4E
++nNKUxQBwIG1X4IkyGq3JSRAaeY2j8qKGXtHZz6BBcnoFm0YBuqIaA8kTRsWBU4H
+iTt/mucG0yDZAu9MOO8csp0XKLxKrvGS7AQoGVKhJIo9iP4o0jgNUeADT7P/yr3T
+Bp/tp6cpXaGbEXQDP2ITuoWE59R1N18ARFPpW/0edUGcvvtuB7B1xh+oKQ4lEWt3
+sp8+HZgpYcWpdzeQgnb17eUkzhoaw8uZA5NkHzDDuNPzYg0v5F51/gcC7FY8E8pl
+qPxmLNKYhVUvO71b/3oxdQGt+KyCfhm2mTNsMxTPYwJP0XwleMVHGnX3xSDLNkSY
+IWfhHiU5rQ78P1wo1PWcuUS+tkOg6yIjArNHLo4qYVpTXdHuqAyBt4u9WdwFMuxX
+N2PXu5CQFbYW2uTd
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGTjCCBDagAwIBAgIQOFGcgEofbpFK8jifxQuE1jANBgkqhkiG9w0BAQsFADBC
+MQswCQYDVQQGEwJCVzEMMAoGA1UEChMDR09WMRIwEAYDVQQLEwlNTklHQS1ESUMx
+ETAPBgNVBAMTCENTQ0EtQldBMB4XDTE4MTEyMzEzMTgwMVoXDTMyMTEyMzEzMjc1
+MFowQjELMAkGA1UEBhMCQlcxDDAKBgNVBAoTA0dPVjESMBAGA1UECxMJTU5JR0Et
+RElDMREwDwYDVQQDEwhDU0NBLUJXQTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCC
+AgoCggIBALJuau0gSxwZNpsa2AFSEJs8hP9tjKt33/gsPs+79kFjknPeOAr5PpXL
+nWzmrE0Knuhulld9WC9V6KUDsucMB5nkrnE6wBlfSWSn62ovyFyvHZc7HqQArGQI
+j0Ktq256jpyU/9tqNF7BgooFYLLeREsbNaeowpST/gpsytAjVxVHcJdRz/97ooVy
+0GrRvAoV3Eu/Ztvu3kbrYXvkcVY/CoIyxl2rmcI48Tk/6M9FynQugnQXuZbYUXJp
+6SK9FTEky1mw7L1tfRiQeOJbnI6n/b054fDkgmGVeXOgwg8PyWMmTZfHC7gth4G0
+biNd952KPf3ZU+R3kWg/RGsc3m24zNN1SJiw+A7dyfc1pMAAL/KPvy5JWWtIENjg
+1B2nVRrYNGC3MKWsh384e+dy30wJPYYIK3tvEYk1xPwahaqAMD7ENnHZ+VmZuBQp
+6HVaNdySMLOXFgXuSsLbeIPpc5QA89jTYL54Qf39V6u/SnG7XJ+glTPVztsTVPYw
+YurxEsaUEKBeU2ulMS8b/uarSp0LdvNdz8nsMi4gsdg5pag8T0mfLJq/jbJSV7E5
+kaRybFxwUz77z5+8llVaiU65Bh4TQaheecL9JOASDM8+VN/nRIvRgR1v+amEx9WW
+5Sts7XCrLLWnz8w5/BXoedaoC+M6g5zm/IcsFXZEYAppTfxf8bexAgMBAAGjggE+
+MIIBOjAOBgNVHQ8BAf8EBAMCAQYwKwYDVR0QBCQwIoAPMjAxODExMjMwMDAwMDBa
+gQ8yMDIxMTEyMzAwMDAwMFowGwYDVR0RBBQwEqQQMA4xDDAKBgNVBAcMA0JXQTAb
+BgNVHRIEFDASpBAwDjEMMAoGA1UEBwwDQldBMGcGA1UdHwRgMF4wXKBaoFiGKmh0
+dHBzOi8vcGtkZG93bmxvYWQxLmljYW8uaW50L0NSTHMvQldBLmNybIYqaHR0cHM6
+Ly9wa2Rkb3dubG9hZDIuaWNhby5pbnQvQ1JMcy9CV0EuY3JsMBMGCSsGAQQBgjcU
+AgQGHgQAQwBBMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFOifut3L/ghy
+yyT+cvdEt5A3G/48MBAGCSsGAQQBgjcVAQQDAgEAMA0GCSqGSIb3DQEBCwUAA4IC
+AQAinC+VkYXo3NxGeW6DQVUJNI9CUGZqpxDUpP36wAcEfLf0NTT/Q/tcOxmNBU17
+jxga9dGE0bVnS59pNTNBJCpb/jw8CJxk6lSOa0iZcCTdjJk873IOA9BBaa0rXfGy
+/ipQBizqUehAbBedcHs+EJ4CAfep7nvxwaN6Hyq8wPLtEYEaZ1bCAgFxKCkDFrJz
+WCFAlDBJfNkzMO5MfOasfKFCMcFZHLooY2jJEUTRE7AS5WMTMapwrpHnyqVEss/1
+83cU3ZjCx7tT26glYH+Je4OBCxcCjMADTyzsV42Dlm8xjUiQ9YBLBdfgqPkG7Jpl
+AkCS4QYmTlClG9R5JdIk8RC3wEj+LkxGgZEaIcG0lwBER7siBpqYvxl8x58tqXHp
+A4v3tdZERol+UTCPS+DhtHH/SX6ravZBwimlaE8ucU44EFGnynOwnUnh9uQJSTB+
+E2ui99sPolC3YEm4Zdwc+zPicE1ciy4vqQ//LXNj6MTIjAJhMqvp56WZca1Wr5w8
+or1SbWQIVNvpInIwJJUnYnh9tt5KR4rOdHQHmGfiBnIotTAeb3KAcO5MwqsxxAQ1
+zghGlkXmJpSI/O+COpWu/mvfBnnglcnts1W40/xtzS6lovrA08PdR31yAj+ODhwB
+yQdMRO4jOvWGQAkrGHDC+jJAk+C+t7MyPfZH5Vf+fLPM9g==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGNDCCBBygAwIBAgIDGGoyMA0GCSqGSIb3DQEBCwUAMIGQMQswCQYDVQQGEwJV
+QTEZMBcGA1UEBRMQVUEtMTYyODY0NDEtMDAwMTE8MDoGA1UECgwzUG9seWdyYXBo
+IGNvbWJpbmUgVUtSQUlOQSBmb3Igc2VjdXJpdGllcyBwcm9kdWN0aW9uMREwDwYD
+VQQLDAhTQ1BEIFBDVTEVMBMGA1UEAwwMQ1NDQS1VS1JBSU5FMB4XDTE1MDMyNDEy
+NTc0MFoXDTMwMDYyNDEyNTc0MFowgZAxCzAJBgNVBAYTAlVBMRkwFwYDVQQFExBV
+QS0xNjI4NjQ0MS0wMDAxMTwwOgYDVQQKDDNQb2x5Z3JhcGggY29tYmluZSBVS1JB
+SU5BIGZvciBzZWN1cml0aWVzIHByb2R1Y3Rpb24xETAPBgNVBAsMCFNDUEQgUENV
+MRUwEwYDVQQDDAxDU0NBLVVLUkFJTkUwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
+ggIKAoICAQDH8j4RT9nXeVh2LGBxJynUasebCZlEztPnKAV5KAF+lcPDB1pl0QdQ
++x0vHkCgPncOblpx7kmgMKZexPzEf1JdDj5jl2l0AvPwI6jjeQNZ9er/UirmnXWT
+3F5pP8CRC4C4txS6ee5zeB3eKWB1P8+m3nDKUHvBipPWYDXAmMREvjbrRlqJAjoY
+tNlDHm83sevTJl/Yym7Cu2TkH2aLUf7WqToLmJT6gMV3xUJr1EaVsUcILC4AOmVQ
+S2YiBt8N6QtFcbDd7dZHHON337VY8DZ5M7VCIDrReRosgNftyhjKHHFa4oGAyjzY
+KdPCEs5sqnQ3lgA9dpifPn/S8FTm5pcY6OokeQ7qepGiuc4uUlmhXj76iG5VglcI
+4iodCp55dcicyHpGSHFAU0AMoNVlFPIK+VoqOqmGIJs6fDPx+pdjl/rrPKqe2jML
+jGjUgOqQFJpiHUpsi+K9zyVP+xzH0NKhi+E/Vz6B6MuzHC86bx3NKWhV4shxL62F
+pNxVRpndP3I2WRxJRCTXbqDoqxg45hRluQ2tZou41Mq8G8g8xGLt4e/bRcuWM0LF
+TiftaexlawkoLYJ4nAvyowfr6VvO984SrwRzLn37cijQnm7NcB2/Avge1LuMRvV+
+VtUa92xLlx/20xQE8omocCXzre54RcocuNik/02ID4lPdiT3xBPlowIDAQABo4GU
+MIGRMB0GA1UdDgQWBBRgNP/WOOYC4wrv2JxxON7M0G0g9DAfBgNVHSMEGDAWgBRg
+NP/WOOYC4wrv2JxxON7M0G0g9DAOBgNVHQ8BAf8EBAMCAQYwEgYDVR0TAQH/BAgw
+BgEBAQIBADArBgNVHRAEJDAigA8yMDE1MDMyNDEyNTc0MFqBDzIwMjAwMzI0MTI1
+NzQwWjANBgkqhkiG9w0BAQsFAAOCAgEADtyi2cVGhmO5fNcxdy/gjYfOZCT6/b9v
+hjXk36Ln6d13TLObi1Pc9icu0xfDj2EsqO9kEFrsOvnBsgG3mCXl/AYQqz8ueJw4
+0L2Yorc+KBcBXbziLgFiAB9EwzF4cMAGoxLPu8gArVSwZVD9IT911EUB02yu/7pG
+EMBgvFz2qPBExuXYc0PxYBn7blS3KbNdjvZm4+g0DAu4y9e7jGyweIpGBUMpx16f
+EqCzrBpWj1dY40UycaK78GbCDZgv/5GkHFu+2d5e9UJaTtmAFTcpLwvuxO+Nsr60
+paTefrWRmpf9WXNoiAIxxBPfjMEcqTqom116xpO0E4900q28QeVAdwy/sZ9FJOAz
+Srv3npBs8sk+M97qS9tkUfbhyc7c+5ZTCFm1fAXqmpcNzyO8EpfURhS2CCvga/5s
+QXrgdfaB7lvtjfDoUrmnkGgpRJACXoRNPerxHQu2qHEhf8fKekBCSQrK0Bayacbp
+kwVdIETOKAoIn1YSQJbWcSGHwAY/g3s1tH9aXvCnbNcD/ikzAxUiJygbmDngda2U
+/akdHhbh8z/YUWdUdMRhU2YLBphsVfk5kqlSvoQi6mW+u7C3vQuxHr/2VXYkeXf1
+jtuJaV5m9XiBX2N89ks8puNO7BlRO9wIeTcsdFljc1iwQMcDIO4YdtfdwEaJP1gR
+w6aCFLjz4hQ=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGZjCCBE6gAwIBAgICAPMwDQYJKoZIhvcNAQELBQAwgZAxCzAJBgNVBAYTAlVB
+MRkwFwYDVQQFExBVQS0xNjI4NjQ0MS0wMDAxMTwwOgYDVQQKDDNQb2x5Z3JhcGgg
+Y29tYmluZSBVS1JBSU5BIGZvciBzZWN1cml0aWVzIHByb2R1Y3Rpb24xETAPBgNV
+BAsMCFNDUEQgUENVMRUwEwYDVQQDDAxDU0NBLVVLUkFJTkUwHhcNMjAwMzE3MTIw
+NzQyWhcNMzUwNjE3MTIwNzQyWjCBkDELMAkGA1UEBhMCVUExGTAXBgNVBAUTEFVB
+LTE2Mjg2NDQxLTAwMDExPDA6BgNVBAoMM1BvbHlncmFwaCBjb21iaW5lIFVLUkFJ
+TkEgZm9yIHNlY3VyaXRpZXMgcHJvZHVjdGlvbjERMA8GA1UECwwIU0NQRCBQQ1Ux
+FTATBgNVBAMMDENTQ0EtVUtSQUlORTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCC
+AgoCggIBALb8Xr1NILQ+kspv+x/KEJeSGhOLZSWSwPlDMPELqqNf61XoidNTqTA1
+vbWpy4UX/DzaWLrnVxE3FPCbdGdJVVWPL6SsE1GwTCA4M/F/dLI3YhrpzTH5cNqs
+VugnNSqMiWdemuvzRZk28l4e+jrjU+ApRItUxpByPflhVR5rbHxHU6zMgKO+zDNq
+pYpQIUbK3P8Le1SavlArybDCfCEL2QTuhVep9qWdvFQBYUIoi9RhG5ejXCSOPM5f
+egb5EM3ZPhASF0a8uBPwEeQHIxAdBEmPgUK661v6HKM9Vuu7S/lRqZ7u9LsX1xNr
+HoYk4NubevnoH/VxtP19D8G7AvhyLVEdM5YjivHznnkIFVskxTJWT5sWyuIoqoYy
+hkJ9HX3I4+8U087VB919ibPuw/orolrDBH1WzGpVInNByhlqsiGf3fRaUvXUei9d
+bqSURWLkFqp343cIziyFQYNLPwr1Q4SC+vGZLZ2f37ofs+pKjgepZjtKoynTZcSM
+BfOQD/TnM3qcdwmgdbWg1O/U1uTwPSPPHM+7DA7Cyodpz23MDmXqZy1Yb5HfkGEQ
+h6GXspePanbnJ2lyEPGRbg7W6GKqfdXPZnT9YgpsTlfR7O/nXx/Hoc3SNebHXotz
+EwiOc7LiRnqufFEAk+JFCfXKlFCoY+88X9LIBNmXAuPNTZv0iGeDAgMBAAGjgccw
+gcQwHQYDVR0OBBYEFPTOL4ymS2Oz8dDqdR+r7370UjWNMB8GA1UdIwQYMBaAFGA0
+/9Y45gLjCu/YnHE43szQbSD0MCsGA1UdEAQkMCKADzIwMjAwMzE3MTIwNzQyWoEP
+MjAyNTA2MTcxMjA3NDJaMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/
+AgEAMDEGA1UdEQQqMCikDzANMQswCQYDVQQHDAJVQYEVcGtpQHBrLXVrcmFpbmEu
+Z292LnVhMA0GCSqGSIb3DQEBCwUAA4ICAQBONpDeOYXX+b2yGS+Ur3RFyxSIG0e4
+RrSls3j2wmY+Mkk3asXm/s9vJjPx63vlGSccPW/tKi6B5cb1qte/ZC9W/gbh+LOy
+irB47uGa9UvxRu9MopWJeuvzIa2uI52RPj9WpZaDHcdxUsID0egPH0pwn2UyEzvO
+IunX42mb4P6Ss+CR8XDp5px91U9bgsyKaqxcQbfKt8Ese7f8aOUmNb5/BebBzPPG
+5+IWScqXeAzBdpy9h8gNcZNjrvrQLur6HL6KWGXJjYXFWruB1zWZLQDUUYR5S/we
+6UxpWyW49KIcNJYRbI9bbwfof/VJBUeEt50qI1tbat8SMtcu25VkKZZVpdOO8MzQ
+KryR7SS7GPMIeGDup/4vf2iwAy1IgikWKIllv4D7+FeQFCWEwy/bcr/BU7X28M68
+8565NRdS3ynyUPB9ju6E5yh0zkZimbPvtpd5HrT2HgRsedvu/JWwT8Nink4thYgz
+/VXeFDG7K0Zd4DMMinrnae8fEjJ4q0meGIAhqHRbkj1mdWvsjXgHGK5NnatLajjF
+eTXQu/zBZ3/vmg7808oU/AE/OSsoSScOMAugJTsel+FzlL+KRPM/nlud2DlQd8vI
+RPdaoupQo77d8FjsMOOC3RK1XKnWOoX7bYBTjsdsSCv6FmTWLm4KrLWFKSFEQBUL
+QDksyslSIC+iYA==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGmTCCBIGgAwIBAgICAPIwDQYJKoZIhvcNAQELBQAwgZAxCzAJBgNVBAYTAlVB
+MRkwFwYDVQQFExBVQS0xNjI4NjQ0MS0wMDAxMTwwOgYDVQQKDDNQb2x5Z3JhcGgg
+Y29tYmluZSBVS1JBSU5BIGZvciBzZWN1cml0aWVzIHByb2R1Y3Rpb24xETAPBgNV
+BAsMCFNDUEQgUENVMRUwEwYDVQQDDAxDU0NBLVVLUkFJTkUwHhcNMjAwMzE3MTIw
+NzQyWhcNMzUwNjE3MTIwNzQyWjCBkDELMAkGA1UEBhMCVUExGTAXBgNVBAUTEFVB
+LTE2Mjg2NDQxLTAwMDExPDA6BgNVBAoMM1BvbHlncmFwaCBjb21iaW5lIFVLUkFJ
+TkEgZm9yIHNlY3VyaXRpZXMgcHJvZHVjdGlvbjERMA8GA1UECwwIU0NQRCBQQ1Ux
+FTATBgNVBAMMDENTQ0EtVUtSQUlORTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCC
+AgoCggIBALb8Xr1NILQ+kspv+x/KEJeSGhOLZSWSwPlDMPELqqNf61XoidNTqTA1
+vbWpy4UX/DzaWLrnVxE3FPCbdGdJVVWPL6SsE1GwTCA4M/F/dLI3YhrpzTH5cNqs
+VugnNSqMiWdemuvzRZk28l4e+jrjU+ApRItUxpByPflhVR5rbHxHU6zMgKO+zDNq
+pYpQIUbK3P8Le1SavlArybDCfCEL2QTuhVep9qWdvFQBYUIoi9RhG5ejXCSOPM5f
+egb5EM3ZPhASF0a8uBPwEeQHIxAdBEmPgUK661v6HKM9Vuu7S/lRqZ7u9LsX1xNr
+HoYk4NubevnoH/VxtP19D8G7AvhyLVEdM5YjivHznnkIFVskxTJWT5sWyuIoqoYy
+hkJ9HX3I4+8U087VB919ibPuw/orolrDBH1WzGpVInNByhlqsiGf3fRaUvXUei9d
+bqSURWLkFqp343cIziyFQYNLPwr1Q4SC+vGZLZ2f37ofs+pKjgepZjtKoynTZcSM
+BfOQD/TnM3qcdwmgdbWg1O/U1uTwPSPPHM+7DA7Cyodpz23MDmXqZy1Yb5HfkGEQ
+h6GXspePanbnJ2lyEPGRbg7W6GKqfdXPZnT9YgpsTlfR7O/nXx/Hoc3SNebHXotz
+EwiOc7LiRnqufFEAk+JFCfXKlFCoY+88X9LIBNmXAuPNTZv0iGeDAgMBAAGjgfow
+gfcwHQYDVR0OBBYEFPTOL4ymS2Oz8dDqdR+r7370UjWNMB8GA1UdIwQYMBaAFPTO
+L4ymS2Oz8dDqdR+r7370UjWNMCsGA1UdEAQkMCKADzIwMjAwMzE3MTIwNzQyWoEP
+MjAyNTA2MTcxMjA3NDJaMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/
+AgEAMDEGA1UdEgQqMCikDzANMQswCQYDVQQHDAJVQYEVcGtpQHBrLXVrcmFpbmEu
+Z292LnVhMDEGA1UdEQQqMCikDzANMQswCQYDVQQHDAJVQYEVcGtpQHBrLXVrcmFp
+bmEuZ292LnVhMA0GCSqGSIb3DQEBCwUAA4ICAQCcUm82vaNEwk0TnIP2EryDKbvP
+5lQiVCmxBv/2+FDQpYmuU9xPZHhddnsSbz9JzS/QVabTGVxf73uVsc5Z0k7nAoX9
+r2HmYZOLT78gYwlEk6d1de4ThlYoZ+wukhECeFt6HqMXsnOT3AtHj2uR8/Ilqv8S
+6Lgx8nTrXDh1p/BxUDIXAAtIOaZWXvEcjhPLCotv7MLmSK9VKFFcpIOj/pZ53+UC
+SCR4X8dKYrB/UP7G5TEtYzXIZkfXV4Or8lFLF4Uxawa+p4xX+CcrmFw1sTafaR18
+UqIEcnbHoUUP+2gu9yqnPxgIsvcZ5SFFNM/yFGStXmBT1N6qWKAiSjI/Gqn2uoRw
+FvmPKI+oHeOODZf7gAp90Z6f6sLmfA1/A5EkkG/xGJ60EHMySXKZYxqMqd3IFErk
+s7HeiqSgSONFQvbfA3Xj81j7yeii8HFLa0umYl0c3o33oj9IFMO87VxwyuLB6di1
+dAlUWjSe0raD9FOoPWlUYYBb1ne+IQiQXYwZDXzZeE7hefEKeljMm/ILEdFdE/Ni
++y32e3M0vd+xWChTlLhAnjQfEMmzyXxSSpEaoIz5tHfmCfruCIq9Y18UkS0xhCWZ
+tdGLSS2hUGpoexTYkANHTo5YAb75588TBdpJyTQGJlZr6uDd0V+Z/yh/QVkfkfoN
+OwzAGvFGTB2oSt2mOg==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFiDCCA3CgAwIBAgIEAJodIDANBgkqhkiG9w0BAQsFADBSMQswCQYDVQQGEwJG
+STEWMBQGA1UECgwNU3VvbWkgRmlubGFuZDEMMAoGA1UECwwDVlJLMR0wGwYDVQQD
+DBRGaW5sYW5kIENvdW50cnkgQ0EgMjAeFw0xMTAyMTUxMjM2NTNaFw0yMTA1MTcx
+MjM2NTNaMFIxCzAJBgNVBAYTAkZJMRYwFAYDVQQKDA1TdW9taSBGaW5sYW5kMQww
+CgYDVQQLDANWUksxHTAbBgNVBAMMFEZpbmxhbmQgQ291bnRyeSBDQSAyMIICIjAN
+BgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEArHJCbI1xJzfL47ru1g5S2EPMn8fo
+u/a5fFfnOCe/JrVNLX6h3kwetWQnw8JFpX4dX4LUD0WxtZpieIlyAbQlJxv14xUW
+F7XXPoCO2CM9ko48Old8Tmj3ZM2WTiw2yWIFJPDEa/1j6FiMZ8J24t00pZm/Z2lo
+HV7JMmz5Cg8s5L6u5HpDzLHQbEwza97YWrg9yhlqPl86QfBEPIed5nC4GP2xkRoW
+fhflh66KAC6H67o5vB2GklCbiMnbBG7hr4AFIfbKS9Nr8BYqBm3wVEeKEOy+UVaT
+4OWqcowjzvybpGo9EMkXI+/rLpI5frVWWomWS34xHIGXqj/Uoxz2xDz/KNbRQ2lO
+Hiji2P2fWDmq7XNzTi1y/15M9wMdLy80theiLmtFXiM/aNOncjKkJyWrqEH8lmJO
+ulXzGoEyHcHZPJ80LgcDXb1wehXvha6+Kp6vpgEaRG3/qAa3Fb8AFfJ/yexbH+Ks
+e/k2+guW1uEGmI6+xkcIEoDse7SR4FKNFggJXhaJC3t4ofrgq7+8/x3BHFGJZ6Jd
+cjLt0m1Q9y+UDi5cb1nJJjaqUsQ2eG/h2BeZ3eoANDH0JrWgCp+wGSYdXWCaEg80
+qGcj8QBiqLwNB7fN/UU7vu/U7PGQr8wBJYuoflHyji80v4B+6sQ9L3FPsVx8m/Uf
+lTccoClf2W3V7/sCAwEAAaNmMGQwEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8B
+Af8EBAMCAcYwHwYDVR0jBBgwFoAURJgGSOH5/XxtuCtrNTwJzybykCYwHQYDVR0O
+BBYEFESYBkjh+f18bbgrazU8Cc8m8pAmMA0GCSqGSIb3DQEBCwUAA4ICAQCQkDUa
++FSNsD6ZCaoNGZKkjNv29oUfPVOox88HH6R5R68MKZ+4zIgWUflm3rNjrih10ODw
+vSRH4i+kXl5yVMqdALs3twiAdOF+8QORHl78sgSYu5BTtSe4kZS3NtD4VERKWhxT
+C5/QirGKstIYhlv670fE9fHCAb1RM2EjhcjYXVoNodG31qXBQfE77cApFh2V9XwX
+uynwTWYfHYisviVJQu4XSjgJCJ85FXz5V4shFmZB4Qyji0S6pmgCjh4pQ+rhjW35
+2XVzW2jdQTFet748cDaWwqsk2+RFsmz2uK427J0/nhifuV2TaEumaAGU8M5CPkFb
+ApE0GgRSf7BrWdRm/xB7OibHs7UiOWXDYc3LRQfSV8IeuZ0HPuA/JfJSgMZHtLQW
+FkRzwhhm8y+1BhIdiPh3+vvCpTIgJTlM1YzoUkPmse3Qd4hMNRRlEGwzqbPsSCsb
+YJFZavXO6r8UD91JPCRBwsPob/yuWFfsS9/I6v8JOjLhv4++Bkm/ISsoGDGUj3Sl
+8OwcOpiDJBfJYO0QyN2lsI3BUWNxnHzvINwDLaYg+T+uNmNJ9uvoY7v3SRk8X+rA
+/b2a6WOXBc7ahVFtLsdGXKDjZMlynsqYiKir7EID37jEqgYa0V4Xh1e8JrVf/WBB
+kIr5dEOFNaktQ+kW3Envrow9AOMNw3a52lxnpg==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+EZmgkj0LgCZpBe11gHI=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGmjCCBIKgAwIBAgIEAJukcjANBgkqhkiG9w0BAQsFADBEMQswCQYDVQQGEwJG
+STEQMA4GA1UECgwHRmlubGFuZDEMMAoGA1UECwwDVlJLMRUwEwYDVQQDDAxDU0NB
+IEZpbmxhbmQwHhcNMjAwNzE2MDc0OTEzWhcNMjYwNDI2MDgwNjUwWjBEMQswCQYD
+VQQGEwJGSTEQMA4GA1UECgwHRmlubGFuZDEMMAoGA1UECwwDVlJLMRUwEwYDVQQD
+DAxDU0NBIEZpbmxhbmQwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCE
+QdfnQpzAl4vJ/FwDKO4DM+c4LDrQaMz3hUe9r+ze6ARELdqOKoGynptUWaXIpIqc
+0FuU5XVm3ampn7KjToKUZ5aPng9vl8HQwrMgYjoC4Z2QEm4WzAN84AGQPNUl/oIM
+gFs88vKQaLVE3xrxZMiWtkZsJFQx4o9f+fR8dMjH7il8DMfNpZKI2Y5Omk7GpmWS
+8UCy054fAYLEEJlS5BvewcF470T56O5NIwNDDwjy8FfTBEHbGaFkATKOS6KYBB+P
+iX2ZSH8cYUczXOx3AjLlmo/rNylnekBVIK7/vs1mjcNzn9W4FXnCHQ8GBHnEYU4R
+ivD+NWvrdow1J5lAeMFU/BuZqewnGjk7tTOKtIgVDJ1jHMnj9moE2xbnqbQzuNYo
+eoM8WHpcN3oejH0V1iRlpDm0gdlzbFn6XNdfjSNDa/mHiOLGIEmJHVFDtmT93VEu
+iUIWz5jlBjbPQ0QoEnOnqt/So45xC8iNt2Xa8vIjAreN1Ts/xa8K2VId3Vq4nEVS
+MYGomKQcGBgFknO++Fc4xZkTJUtDEs7XqDH+koBCT1jYce8ijqGBJzFwWTj80VRT
+OWLAMpH084fqD8i56UGFwFxeQSbR9urzwJ6zqVuqKXZR4fB8b8PFtmkS+cno3MiC
+b0XgUCrjFjjXAVBvvAnt8T/f2PU6vgfuBc5WERGOKQIDAQABo4IBkjCCAY4wHwYD
+VR0jBBgwFoAUmllLW/kpep192amnIVS4WQDSRkIwHQYDVR0OBBYEFIdYnCnZdpz1
+t+pmGjyMpfyiaL6UMA4GA1UdDwEB/wQEAwIBBjArBgNVHRAEJDAigA8yMDIwMDcx
+NjA3NDkxM1qBDzIwMjUwNzE2MDc0OTEzWjAVBgNVHSAEDjAMMAoGCCqBdoQFAgoF
+MFQGA1UdEgRNMEukEDAOMQwwCgYDVQQHDANGSU6BGENTQ0EuRmlubGFuZEBpbnRl
+cm1pbi5maYYdaHR0cDovL3d3dy5wb2xpaXNpLmZpL2VuL2NzY2EwVAYDVR0RBE0w
+S6QQMA4xDDAKBgNVBAcMA0ZJToEYQ1NDQS5GaW5sYW5kQGludGVybWluLmZphh1o
+dHRwOi8vd3d3LnBvbGlpc2kuZmkvZW4vY3NjYTASBgNVHRMBAf8ECDAGAQH/AgEA
+MDgGA1UdHwQxMC8wLaAroCmGJ2h0dHA6Ly9wcm94eS5maW5laWQuZmkvY3JsL2Nz
+Y2FmaW5jLmNybDANBgkqhkiG9w0BAQsFAAOCAgEAEiPr4yM5QzrHvNG4Otsh0s39
+OUP/ljJ0iX6+ogo/sp0nPZ5OdlYVlHKYtmYrnn88dKmQPqBc08+pnUTf+uF32shA
+q+WzozrrHLkyT1jNz8nPUSZPunOwTRJBSwPm8X4yltsfD/7k0pfPL/dQnqDWvisB
+hqi2sXkjrdjxkOPOUqgj5YKG0aY0ReIZJoEibT86j7M8NNPXFgrvKKUviHhZqDPA
+oVnwhewhgP9ifSYARWr8yVnTBv3xFCL4KZyfbemaVfO+Wq8S6kyFiO2aEHEzyPDn
+goEiKiqW8kibE7rBmTxKdB4Qf9V9GEz+JnKPDIMG0TYwDe938Ekobxnv7aVEDEIf
+YHiJqQHDy7VRFFUoXzKrldkmdamh77Xfqiad0nUhUYshAyM4z5tVwC4XqgMMGD1A
+wZS9zRejFs1YqWFDLp45ouNKpUL1B2/vr18/LutX2e9dwS3pKrd13nR6sb0MVf2R
+7EpPImoCiZ5AM6Zd1SxpgreizDTafTaZjqjBbtE9y3NWirs4YRdLfPK7lHCrv2nu
+xMGCX/TLQyrde8wbwhkKUuB5/vCDdUpDXswtE0R7fasYwDDa4ny2XEYXUh2dUQAi
+CMxlqjQSQXOCLMKp2VlKquPE9oObSnD8Jd0znKhiFX5NVm4uku4uvRN8XFp3hWEL
+aQiML41OxehS/O3stjE=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+CPtyTx8pWeffhgMoIKw=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGtjCCBJ6gAwIBAgIEAJpqSTANBgkqhkiG9w0BAQsFADBSMQswCQYDVQQGEwJG
+STEWMBQGA1UECgwNU3VvbWkgRmlubGFuZDEMMAoGA1UECwwDVlJLMR0wGwYDVQQD
+DBRGaW5sYW5kIENvdW50cnkgQ0EgMjAeFw0xNjAxMjkwODA2NTBaFw0yMTA1MTcx
+MjM2NTNaMEQxCzAJBgNVBAYTAkZJMRAwDgYDVQQKDAdGaW5sYW5kMQwwCgYDVQQL
+DANWUksxFTATBgNVBAMMDENTQ0EgRmlubGFuZDCCAiIwDQYJKoZIhvcNAQEBBQAD
+ggIPADCCAgoCggIBAMxvfSZYWw2JUvExjQmRVTcgW8Yy+a6kKNtTq0TpgcDxllo0
+B4p18az9ovgfpSg+IXT19+7JI6dEih4Sa4m4+x+4qjVT6Rf5jbLpz4GtdlnTMxba
+D0qCJ0w53GkkUvUTMaIxG4pzTgfSafYubC0KB0O0ebuV3MnaZl/rUSDqEotRlK4U
+mQuW/6A8PNRXHEiPpk3JiY7RZTP+Hw2+KouGMc08WXBIEfKtW/Bz6DXOt5wBAUos
+CiAcpPlrjqxtnPEJlWBEuM6S3pH4zEb/4IUbrCL0IrK84PETGud8czHaQGufBzR+
+YhDcediXAxIcNrF1xHqB+bfxJcYODa719+sBAIdce64zKUUw/NAFKPTd/GvxiJ6m
+fw7O+X7QHbBULQwgd0ED7sXGH9wYlNEHkNl6c+D+HSdrmxjrvk+qyC0/ABFafoUY
+hwKvdkH2P9O/ykJvFXOq8OdszSOk1nO6if+9otdeNsH2dWvVztWDEgyvWeL/fNmG
+bDrhXH8wn2J+8HSZV9Gyp0Z5bQQTCdGM7tNaLiMm64dFt8uhAxVSLFzEdFcH+tGK
+SlYvO2bHkydCY7IADj7UXa8sJX0PDW7Izj83GjIDqb2ntBAS5JxgHCTLgyDdt42+
+66y/gzWnCmMEUILLaoY29Po6iaQZ8ynlIJWW9dXfWgYFgo3mNptar1beE8D/AgMB
+AAGjggGgMIIBnDAfBgNVHSMEGDAWgBREmAZI4fn9fG24K2s1PAnPJvKQJjAdBgNV
+HQ4EFgQUmllLW/kpep192amnIVS4WQDSRkIwDgYDVR0PAQH/BAQDAgEGMCsGA1Ud
+EAQkMCKADzIwMTYwMTI5MDgwNjUwWoEPMjAyMTAxMjkwODA2NTBaMFQGA1UdEQRN
+MEukEDAOMQwwCgYDVQQHDANGSU6BGENTQ0EuRmlubGFuZEBpbnRlcm1pbi5maYYd
+aHR0cDovL3d3dy5wb2xpaXNpLmZpL2VuL2NzY2EwgbcGA1UdHwSBrzCBrDAroCmg
+J4YlaHR0cDovL3Byb3h5LmZpbmVpZC5maS9jcmwvZmNjYWMyLmNybDB9oHugeYZ3
+bGRhcDovL2xkYXAuZmluZWlkLmZpOjM4OS9jbiUzZEZpbmxhbmQlMjBDb3VudHJ5
+JTIwQ0ElMjAyLG91JTNkVlJLLE8lM2RTdW9taSUyMEZpbmxhbmQsQyUzZEZJP2Nl
+cnRpZmljYXRlUmV2b2NhdGlvbkxpc3QwDQYHZ4EIAQEGAQQCBQAwDQYJKoZIhvcN
+AQELBQADggIBACV44MiTSATlVckHdyPBVXkH8pClOKz17rSCCqpzVFUhFULj6nst
+UKcDmL/rTNd5LoGVS2eTrnzLIf7WH4KBQHsq+Tmfoe170yJ0w5l+51NXB3LNBMDO
+8EtN9sF5ABW7iwC7l1GfpJOMr78WeWBrz16EiAX8DPxXAlWuNNFZ0ftO8wYRywkD
+CKOwY6jvy7Hkek3C894QXB54egmI41docqo8riQKWhRQsdSyMBz6+EtQJKprcbhC
+nIYSjMVcP2Ui+9ahLpbePuKN2mOUWT8W0zINg6sj4XmP9EO73DJYmrNtbWpBt6hm
+emrj7AU8nQeDvOt2Ui2ZMziHnqwghFMb+ZRg4GsC1macqVhcdTn51viKNjepJUyz
+Vd3VxXAed4rGoADaK8RG1+eJREiJxlAGlpEqLqX5KsaRYjYAvyYqQIKB0a0Nicpf
+1VCF8S1Way2nIPf/NRAfFcwglPnJPG+KoSoN0ffAZOhScp+sEQy+qQI7PQ0sF6CV
+bwDikozGDFuzKRGRzAauXsR0eLMG146HzngiQeXEPtP7MmuTIlJ7xdl0O1O1v1Ul
+UFp9ll5Xw7eG0h27GWEv9gFgX12zRrEPMD4KawpVOwK2pScfrZWpDMoBpPSK2sxL
+ISnOp1rk+g4/+XKJ3iO/yuoTYjcyrZ3r4TNjUHqdF3ffCO4S6ATEwt1C
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIH+jCCBa6gAwIBAgIQRegVJuRTaiSaNiG8Rk8odTBBBgkqhkiG9w0BAQowNKAP
+MA0GCWCGSAFlAwQCAQUAoRwwGgYJKoZIhvcNAQEIMA0GCWCGSAFlAwQCAQUAogMC
+ASAwgYoxCzAJBgNVBAYTAkVDMUgwRgYDVQQKDD9ESVJFQ0NJT04gR0VORVJBTCBE
+RSBSRUdJU1RSTyBDSVZJTCBJREVOVElGSUNBQ0lPTiBZIENFRFVMQUNJT04xFjAU
+BgNVBAsMDURJR0VSQ0lDIENTQ0ExCjAIBgNVBAUTATExDTALBgNVBAMMBENTQ0Ew
+HhcNMjAwODI0MjAwMjA1WhcNMzUxMTI0MjAwMjA1WjCBijELMAkGA1UEBhMCRUMx
+SDBGBgNVBAoMP0RJUkVDQ0lPTiBHRU5FUkFMIERFIFJFR0lTVFJPIENJVklMIElE
+RU5USUZJQ0FDSU9OIFkgQ0VEVUxBQ0lPTjEWMBQGA1UECwwNRElHRVJDSUMgQ1ND
+QTEKMAgGA1UEBRMBMTENMAsGA1UEAwwEQ1NDQTCCAiIwDQYJKoZIhvcNAQEBBQAD
+ggIPADCCAgoCggIBAI0nF5PEKWqC7yGqPIxn+ujZisUXj6IFepMFa2SNf8wXCBXG
+dOB1V/lyY+jjYyyO3uWH+OSfMS/Ubc2TX9Bi1tAlsz9RK/ilCXtIcvD9kHsIvVe4
+eMPxdaSCSIOaMz3QyH19iVfP1kFimXv2mITBgbrgaXXbSIeDLvGrTHCQXVjpuI2y
+XM7T+I9/w4omG8sUCkd2xuiGdg3QpnrKgiZ5EAbg9iJJsR0tyz5/QScTslviMsCs
+gQrLKRCBSjxnvhNCRiZNoAnJ/4pXYujzCU+d/2W9HwuqpCpqoSMyMkmlRX4LerMU
+9BfPILHRzdijA1/6Rgx+U2yG+nSwpXkNqS1ZNEhzzrndL26PzdtPIp1CQgOmt2sx
+1VsraQarz96GaGQWgBZYULo4x0HrzgoB3dFfMrCT1flVDUeZUad0pVmcEG6DcekJ
+GV2uG05tPfKWstQF9j+qgOJ2R2fgFIz5FxI50kB80tdAb7rCiVpn4zkY/ZogEUUy
+r56FfUtdbFFqhI9+3Hhzfgq2iYXh9MZsQcWWUw7r6T26WMFGQWWC+OSHurybYsMj
+vq2Qca/1/ti6FfiB3ig4I/ejgL6JqzN52M2xB+7weUkl72RI5xCgthLm2m0CnUKj
+TCQQ8OLGLzU4AGXmcH1NKJ40RAzqK2ktOr4hXSWOLtRixq+s2Cfy4Ybkl58FAgMB
+AAGjggHwMIIB7DAfBgNVHSMEGDAWgBS+J3MGpA5/7orqYn5Rx5CX8hTAtjAdBgNV
+HQ4EFgQUvidzBqQOf+6K6mJ+UceQl/IUwLYwDgYDVR0PAQH/BAQDAgEGME4GA1Ud
+IARHMEUwQwYMKwYBBAGDsV8BBQECMDMwMQYIKwYBBQUHAgEWJWh0dHBzOi8vd3d3
+LnJlZ2lzdHJvY2l2aWwuZ29iLmVjL2NzY2EwGwYDVR0RBBQwEqQQMA4xDDAKBgNV
+BAcMA0VDVTAbBgNVHRIEFDASpBAwDjEMMAoGA1UEBwwDRUNVMBIGA1UdEwEB/wQI
+MAYBAf8CAQAwgd8GA1UdHwSB1zCB1DCB0aCBzqCBy4aByGxkYXA6Ly9sZGFwLnJl
+Z2lzdHJvY2l2aWwuZ29iLmVjL2NuPUNTQ0Esb3U9Q1JMLGRjPURJUkVDQ0lPTiUy
+MEdFTkVSQUwlMjBERSUyMFJFR0lTVFJPJTIwQ0lWSUwlMjBJREVOVElGSUNBQ0lP
+TiUyMFklMjBDRURVTEFDSU9OLGRjPUVDP2NlcnRpZmljYXRlUmV2b2NhdGlvbkxp
+c3Q/YmFzZT8ob2JqZWN0Q2xhc3M9Y3JsRGlzdHJpYnV0aW9uUG9pbnQpMBoGA1Ud
+EAQTMBGBDzIwMjUwODI0MjAwMjA1WjBBBgkqhkiG9w0BAQowNKAPMA0GCWCGSAFl
+AwQCAQUAoRwwGgYJKoZIhvcNAQEIMA0GCWCGSAFlAwQCAQUAogMCASADggIBAHnM
+SbuA2JvydP+PRQB4Txgu3nqAMYUZH+aYA7zncLQtvn+2q5Qk8WeXdowC6bnaz1HF
+IrqzcwuIh3RMcBQAXZjZP8+aSJLPG93domi1Luz26DhwjIgUgkEFD7qDhKoo25Qw
+ynOOml43RORivzzalX3C1LJ+iCRDfqz6A0iL0XXGVFF4LitQJOHe0AvUdvaucV8j
+n20oPHjbrux8/PMclCnDJ51YLRVM2JUoK3pNYSjL2gdVbtYG2JOHzwcF7kprMqAH
+03NZdRXNZ/TsgAJ9FoFhGg3J5i93J5l+YqZX7XVkBpw94QyCzYWlPhrBgrQHyFBf
++PZpeJZbqeJxri7iU2f8WYrMxJhZgF2+nrKiGsMFR8ZvxarY/j+tfCDW9xc5gebG
+3saMyvebhzqfW/cNv5nnAY4BxeCCePH9j0G21Gdlm0Kqu3IrxK8h9kInqp7Q7mgW
+R5EitjfQ5d+hVeL+AmDF7FQab3WpuD9+cYplS+DaiywPNohTc5H7bGGCxuAGSost
+OwqZnfb+Vkm3gjGW1uvSp2iwL+6mTg5WXHdz/krVMmqfNSno1gKdhfO4lfU+RTM3
+h/dspuiq6fzxZ1coNorvG6n+Hp6MOA9GTSiY195EskgqtmWYjOj0C8GENC/b2Z3U
+nrPqx5GQNLCcnrqz2pRmz4MDoH5TQqUq/bJKK8zo
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEOTCCA8CgAwIBAgIIPaO2TduGmXwwCgYIKoZIzj0EAwMwQzELMAkGA1UEBhMC
+VVoxDDAKBgNVBAoMA0dPVjEMMAoGA1UECwwDR0NQMRgwFgYDVQQDDA9DU0NBLVVa
+QkVLSVNUQU4wHhcNMTkwNTA5MDU1OTAwWhcNMzIwODAzMDU1OTAwWjBDMQswCQYD
+VQQGEwJVWjEMMAoGA1UECgwDR09WMQwwCgYDVQQLDANHQ1AxGDAWBgNVBAMMD0NT
+Q0EtVVpCRUtJU1RBTjCCAbUwggFNBgcqhkjOPQIBMIIBQAIBATA8BgcqhkjOPQEB
+AjEAjLkegqM4bSgPXW9+UOZB3xUvcQntVFa0ErHaGX+3ESOs06cpkB0acYdHABMx
+B+xTMGQEMHvDgsY9jBUMPHIICs4Fr6DCvqKOT7InhxORZe+6kfkPiqWBSlA61OsE
+qMfdIs4oJgQwBKjH3SLOKCaLObVUFvBEfC+3feEH3NKmLogOpT7rYtV8tDkCldvJ
+lDq3hpb6UEwRBGEEHRxk8GjPRf+ipjqBt8E/a4hHo+d+8U/j23/K/gy9EOjoJuA0
+NtZGqu+HsuJH1K8eir4ddSD5wqRcseuOlc/VUmK3Cyn+7Fhk4ZwFT/mRKSgORkYh
+d5GBEUKCA0EmPFMVAjEAjLkegqM4bSgPXW9+UOZB3xUvcQntVFazHxZubKwEJafP
+Orava3/DEDuIMgLpBGVlAgEBA2IABCPidx4uk9voaQ6uGpbGisVnf8ckHNyzNBYX
+cH5wENZjaEWMIoIvUUKLWco3sijaZAaqKweGj3+ShELaRnFMGe7n5HnEPrsZNs4t
+jTGuAU3Er24Q+f2e19/evYvOCTCZ16OCAT4wggE6MB0GA1UdDgQWBBRRRnZ09PL0
+YmhA6gAsEh+IbgcfRzASBgNVHRMBAf8ECDAGAQH/AgEAMB8GA1UdIwQYMBaAFFFG
+dnT08vRiaEDqACwSH4huBx9HMBsGA1UdEgQUMBKkEDAOMQwwCgYDVQQHDANVWkIw
+KwYDVR0QBCQwIoAPMjAxOTA1MDkwNTU5MDBagQ8yMDIyMDUwODA1NTkwMFowbQYD
+VR0fBGYwZDAwoC6gLIYqaHR0cHM6Ly9wa2lkb3dubG9hZDEuaWNhby5pbnQvQ1JM
+cy9VWkIuY3JsMDCgLqAshipodHRwczovL3BraWRvd25sb2FkMi5pY2FvLmludC9D
+UkxzL1VaQi5jcmwwDgYDVR0PAQH/BAQDAgEGMBsGA1UdEQQUMBKkEDAOMQwwCgYD
+VQQHDANVWkIwCgYIKoZIzj0EAwMDZwAwZAIwZlIq0gnQisSRNreIq3beovqFD8gZ
+yqprGJ1O6eUOAZR45XutKN+VhJ9H0opmtGjpAjAmnidPa0SaH1Mj6FLUVhjau8ZK
+yd8mbWh5hqxxV9zimqxewGVYwSc+luE2CPJSouM=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFbjCCA1agAwIBAgIIZtkQdaufpxQwDQYJKoZIhvcNAQELBQAwQzELMAkGA1UE
+BhMCVVoxDDAKBgNVBAoMA0dPVjEMMAoGA1UECwwDR0NQMRgwFgYDVQQDDA9DU0NB
+LVVaQkVLSVNUQU4wHhcNMTcwMzMwMTAwMDQxWhcNMzAwNjI4MTAwMDQxWjBDMQsw
+CQYDVQQGEwJVWjEMMAoGA1UECgwDR09WMQwwCgYDVQQLDANHQ1AxGDAWBgNVBAMM
+D0NTQ0EtVVpCRUtJU1RBTjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
+ALJ+6vSvOrz0i33/z1gRExcpTlVMeAU/OJ4bQtkq6GZuTrXsAhOHBLTDfUD1sz5Z
+ZXVUMSVR8lQeeL48yD+ewKSQnKf1Gy93NXM12SUOj6ncwNelzAtPTAaX8R4n9B24
+/pJW6wCMWE2QPxNQ/XOKcrwUuVGsDUDFB/1yucanpeHeRCkbcuRW6PiJNRQ+F3WS
+OlYiPaX60SH5J2kBDPfxwOWwJeGoPTCZ45E+bJGpZgQclf0FWR4TOpnrsQNzUoGn
+AsYxnDxdCZ8jSwHGowZ1jmuInACaF71M76xBlfarxE4lS88FSWxmY+egft/BbAcf
+YzCw3s7XXSyYj0cVRtd8vp8nk01qW43FB9VhO8qqaLRDbhts8pSpgPatfxquiAJ5
+un3gBVK80Ps3069REyzAmpMeLX2S4WZFGpotQ39r4wAdiSTmNVZ4MOSsG/3hulu9
+Rcfm2SzDIgHqEM9Jo4JDuARRHaYUaF6XkjknE5NQa//EWBizpT5UdOJPgWlCx01K
+IeVx8gpLYZyeGda8YHE2jbNy/R4g837JFXO7G9X6gkAEJyDfOjPCWOu8WZ3A3WRq
+s4NhTR8QckRjNjhMWxN6p44QOiWkqFiwysCLfjK99lxvqipzX18P799BBGA5c51E
+rs46Qn2vumUlF4WxGcdVj8MQQ9VpJZwHfwCaWGexhMIpAgMBAAGjZjBkMB0GA1Ud
+DgQWBBRL3Da6vTg25mo7xdmQ1p8l8UxA8TASBgNVHRMBAf8ECDAGAQH/AgEAMB8G
+A1UdIwQYMBaAFEvcNrq9ODbmajvF2ZDWnyXxTEDxMA4GA1UdDwEB/wQEAwIBBjAN
+BgkqhkiG9w0BAQsFAAOCAgEAsaBocnKEvXJUsKHQI3co89CMygITERAtyPaybRYO
+nJyhef957PfDGd6ARif56zif0Cm+laDBI3g4gChtbagb3OhRlMJ+7T0EumP2rMvX
+DOwZ4heXXcLi4cpxcYB09Ic9CuOq7jOQOOsXLNzzXjOm++J2McsSrQpvL1r40VAK
+NvCO7NIdobkZ7mXnL1nhw/YAcBmr9LUhISBgBsfsfSHLs/e+HZs+yA6uD9kYawq+
+/YKAArMaqJRFXLxQsZMDENYdvsRUs5fkUehf9U9b58IN41j9B9JY9QIdghi1NwjD
+zx7Rc+50tve/w0aanJawrCNJ5S5aQxFUU6mvONUIzhrmD6DlxD74Tsp8xQkJwv3/
+OpAExQbbLx7iwMDQAiA5chi2mjvU27JVK9nMn2hDqDG/ggKA/nsOvP5XavQi1Tuy
++6uDI3sCw/9cnmSqOe0HncLn16tTIz1sDHrFUJCGNRlBzqWuq4+EgsLX8CtPe3GR
+FyDBPg0yDot5a9qYNMZWL08hqHJVBiH4PeqAMw3iRB61stWG4xBup+8sxp3eI8oV
+Of/lB4hOzcP8B0XamXuzblGfH9128s4VH8qH/tvnlTpzjOcD9mUysw3sCEcqeubv
+IoJmHkXIMCrqIy8Wr8cmjCXxBCnn3UtBhYaO1qsAeyiz7cH6m+nLmmk2cdfrPkWt
+hBo=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFbjCCA1agAwIBAgIIIGCh/YI907EwDQYJKoZIhvcNAQELBQAwQzEYMBYGA1UE
+AwwPQ1NDQS1VWkJFS0lTVEFOMQwwCgYDVQQLDANHQ1AxDDAKBgNVBAoMA0dPVjEL
+MAkGA1UEBhMCVVowHhcNMTQwNDIyMDYwMzU0WhcNMjcwNzIxMDYwMzU0WjBDMRgw
+FgYDVQQDDA9DU0NBLVVaQkVLSVNUQU4xDDAKBgNVBAsMA0dDUDEMMAoGA1UECgwD
+R09WMQswCQYDVQQGEwJVWjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
+AMZHiAXGBvcRgEK+OMzI7ul4ZQrli1Mb/l5yzYfWNYUWTYTykJCfRV7FEFT4QhQz
+ocdFaG7mmKwaskM6e8Z7vO6/x/Za+iwgn6OQwUU0Je/Jte3QqCB7un5MTcCHNuJe
+J+D95B/E7TbYFOaofD2aPcAUktWLIJ/qCalxJ6fbs83j33t9p7FBi4eQJ7dWdg1B
+SlRUdQX1Jvip1aYgvWcrzsFGxp8aVsyVXkArnbgSzz3EZwM8aZp6iP/U8YITjDjN
+T+nsWkpOkx86MAuNNp0oJ37V62f2eyMlhymM6IEyzQF7Q61dNHDt+OcU7aZ9zKT2
+RkIuEpgIfvG8O5ryGKcj9Y0aTlJ0ifvM4FTOWnqRqvKNtzuQMORpM19dhZmbP1Ek
+4f2ugc6JGRm0p/Qp5tQOrGY/KEU8jumrwJRm+MhWPUG4zawStmBXTyQMrYWQUnMu
+3cvq5JR3aVD6iSJs2/T2G2FGpflphpQjDYWFsW4+dkp7z0TsiQY5jJSr//NDtdKz
+sFhYDf9taprTtRy4DqSkEmMPPGKW+SVe+a0OMG7Sg3nZy22F2L/We3ojrOFY0kLO
+BWICO5/syqr93sOJqBCbvCGGsxe7NbbuyZ3qxro90yXz2wVIiQNUPO+/hEElOqnC
+ETm0hRWFovQ0xnBuem5VP01xqVo14Va41vvy6e/6dYkNAgMBAAGjZjBkMB0GA1Ud
+DgQWBBTZOzxEQuUXYMMxRLT4czjFqndQkTASBgNVHRMBAf8ECDAGAQH/AgEAMB8G
+A1UdIwQYMBaAFNk7PERC5RdgwzFEtPhzOMWqd1CRMA4GA1UdDwEB/wQEAwIBBjAN
+BgkqhkiG9w0BAQsFAAOCAgEAel6PWVbAT7cJasZrgzybFWQeWs1twHz+NGIy7Eyy
+xSVQ6HOPY9OAfbYNGHKqxIFMLXI6biR4y2XuSUrznFBNE4zF7wb/BBaAgw6hmb/5
+NfQSiwrDiFTrosJSZfApftxtaol102f8M5VaRBDmVrBfLqQRD2yhUk58nix3SoNx
+ae29PiN3GbfnsLOhb/aJsnzuRBtbqhoH/cNfFHSj/kJaVMaYw9BgCDa7hp1Wum0c
+3l4JiMQdIHoXBHkTX9IH/Ts6R4U9SBEQkJVu/ExxI2IIEkvA2mG6Hfk7scEPNZSk
+T1xsO1WzpfjYyn9JagBwuNCX4m6i0vXo9WwFWMf10qvCcWB3n6WwTJrReFwAsUu4
+1TpayShJvhmT67xH4YG/1wIwurNhl14ZE/A02UZWRb/bbTg/ZCmF0BCONUH++ue0
+Eq7fud7Vn9BGpsT6lEi9Cvyrblb3CmciyhK12ErOmMowcbRICVcDXuxgggTfMKfE
+m21EY2oBv+RUkGh0tSUKVz5coDMcPVqElg22weLrh/4A+8Ghf/fH9gFyjloiySNY
+YFWaE5zadsInXFLOfJIIon9yxGVIbv6SQutsGyWVYeG+VybXh/N6Dra7aimLmewt
+jZvmUvRlPlXX0muY43GcSyqeBxh5yPDmeyNhfFsEkGlIdYoWOR/Bn6ZVdsqB2czq
+U30=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFbjCCA1agAwIBAgIINmbGCzDnk5MwDQYJKoZIhvcNAQELBQAwQzEYMBYGA1UE
+AwwPQ1NDQS1VWkJFS0lTVEFOMQwwCgYDVQQLDANHQ1AxDDAKBgNVBAoMA0dPVjEL
+MAkGA1UEBhMCVVowHhcNMTEwODI3MDU1NTE0WhcNMjQxMTI0MDU1NTE0WjBDMRgw
+FgYDVQQDDA9DU0NBLVVaQkVLSVNUQU4xDDAKBgNVBAsMA0dDUDEMMAoGA1UECgwD
+R09WMQswCQYDVQQGEwJVWjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
+AKOXtIaWXo43vsxI8p24D324cdomIgSQufqDmEsnjCNDvDHEtwhuNJQ5Yl4XHKVY
+aLk3glomegeh9tDaBn/E9CeKvZ0UNV5gG9eyfw3po/wxU5uWz+hpBD7tkiTmfuSI
+B8crEXZertaTy6g+sZNT2R86LTrG/lY7yvlNT54dpyrHqnTEuZJGm2lmCHWsYZBJ
+PUBbK7orcf0ZpwiGsfPzSE1Dk7HFf1n5qWgbHRTr32OxPTwTQxOxo+e0eaXMZjMt
+zEhdsgnz8ZVlZ1ICgJo4vFS9SOYwZ5aene/XGFLZteQLn11/QX5oHd6VFlCVIGl4
+T4AQSh7Qy+oAttb3lphCSVf+1NgQIZXCEAbOMEBMZHqWEWKTzGZkajlSCA/avJEq
+XHMW/9HRaE95vjI0+1Vn9GwdM/pXTrJcXwQUA04hhFn3cH09RbByuvFJYNwi1EYr
+VWWnhP8xRuR0tdIfXk61bMbfO6D+qxYAbJvc4FR0OAXqZMb3M2pe28WvyMBstpnP
+qVvOU4bfcXvg0sDjnQZSsBtCqbHTed1pmWapweCV1imA4HLMVNtZ4nXgcLf3d+S3
+GzOuybH33+eHkrFuayzClnkRcWrwv+eJ5UqlJAiKxkQCHXkMMp91FQ7lIJWxafln
+h/Dkrwd8fuk15r3H4rbWKRs4zo6bS47a0hSA1HsNrSIpAgMBAAGjZjBkMB0GA1Ud
+DgQWBBQ/xQkamZV2QcpvUN3VXYHIwS9qVzASBgNVHRMBAf8ECDAGAQH/AgEAMB8G
+A1UdIwQYMBaAFD/FCRqZlXZBym9Q3dVdgcjBL2pXMA4GA1UdDwEB/wQEAwIBBjAN
+BgkqhkiG9w0BAQsFAAOCAgEABH6M6aQ9XziqoMkeMJPOgASWmKVJmf9KsGH2L9Eu
+aOFdC5ZSiyUMkrHN6FAj5uVoE0xYEIn+aG6RQpye5zkPqHARcr7gM9j6qyR9wpyO
+x+1HeP9Hl6wu5Z9ORYibCe1I/vQ1lsCXSYIht5IjIS1/E3n7IUSBlMYm3f5eRoRB
+i+UkEFvDlVOyeTP6HGqCY5WubecBFchGtlou6Osbrg0xJOyNXDF5l99KPmDFMrEA
+6dcEWnGYpKiq8idHgPjO0A7wsKv0wMYbpVoYq7LPmGAdX9M195lXDARwvxd4u9ke
+vDRthndoPHuM1K0y+MDT2ZhTIV8A1Pg2LZSFiro232Z8ku2SITN/DwVmiHY1LeB3
+8ZZ9pPx66+Ze/YAs+ZbaI6De1uoBBfKFG8U2kCq1Ed4YnKOwZag5XYSssqu9vD5x
+UB/ACQIzzffHwN9AIFFq5kI+ebSd5idKZgvNKmf4ODoPP+0wruDDrOFyJXeDQYzE
+He/6dwSrmiP6Hqj6wo7y84TP7GVgf/zLk2CrfCF4aJPGysM8ezq8X/dcFG1QuxhK
+rDWDD6cyA2RkgsH3uZFCkxOvg76WS5QMrONw9j1is1v4bWn0TmvQRi9lnSiySoR4
+z9S/BmiulCE1HMU+YLikuqnbMgry9hIvH2iIXPNZ4Rg3So8gSIzzdxVTkhjYsPmF
+4vU=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIIvDCCBaSgAwIBAgIETW5OlDANBgkqhkiG9w0BAQUFADCBwzELMAkGA1UEBhMC
+TUQxHDAaBgNVBAgTE01vbGRvdmEgUmVwdWJsaWMgb2YxETAPBgNVBAcTCENoaXNp
+bmF1MS8wLQYDVQQKEyZJUyBDZW50cnVsIGRlIHRlbGVjb211bmljYXRpaSBzcGVj
+aWFsZTExMC8GA1UECxMoQ2VudHJ1bCBkZSBjZXJ0aWZpY2FyZSBhIGNoZWlsb3Ig
+cHVibGljZTEfMB0GA1UEAxMWTW9sZG92YSBlUGFzc3BvcnQgQ1NDQTAeFw0xMTAz
+MDIxNDA1MDhaFw0yNjAzMDIxNDA1MDhaMIHDMQswCQYDVQQGEwJNRDEcMBoGA1UE
+CBMTTW9sZG92YSBSZXB1YmxpYyBvZjERMA8GA1UEBxMIQ2hpc2luYXUxLzAtBgNV
+BAoTJklTIENlbnRydWwgZGUgdGVsZWNvbXVuaWNhdGlpIHNwZWNpYWxlMTEwLwYD
+VQQLEyhDZW50cnVsIGRlIGNlcnRpZmljYXJlIGEgY2hlaWxvciBwdWJsaWNlMR8w
+HQYDVQQDExZNb2xkb3ZhIGVQYXNzcG9ydCBDU0NBMIIDIjANBgkqhkiG9w0BAQEF
+AAOCAw8AMIIDCgKCAwEAxXMRyhyDlTTpiv6BYQlAMkVCsJmK7mcRgiVTAimoZNpP
+rjkv9RQQkkC7wBM5KMczdSibH92Pdk4d2iYD0lNvLUd1ParPa+PV5qlixEX4StWE
+30Rh9kwjn2JzkvzkcCUo/UDAGRSrs2gPCRF8/3+CsqRZ4TMkSGyRuG2JTx0zvxOc
+gNgMw2RY02T6UlbZOalfSCwFXRKPBW6SJqjvoecERuE4x1aJmQytCXTjz+Px2Qf8
+7ooVXWqEGG2zpD9XM2qmdYOk8VFMXoF4yy1qvKhfqWKw8+Y31SHPjMqN72UI6ZQO
+b6Pnr5yww8nuT8aJkCOOOpo9bY7Dpv9+zXc3fXaxYQRwha8tEHF6oL8PBfJ0DEEi
+CAdCS0Jv/lXLAPNQAa7PlSJati3SUUHiUyOVpY5ZfwQjx17x+ESm4R1vYOT2GxGb
+DTpnXWqgWmmr6HL2HPTWoGdpklyIMd7mNL5Zr6GWJs5MUaY3N59rExF0IfT7ecTw
+B9y74cMyRtfbE75/iv7Ht7dLqjzKzGzBBBUMr9MS43lbUzPByz6QfWLONs0WG493
+XUvtFA8K+wRtJ2iacTt3X/BDzIX+UOA+tMl76bDhZQzv6tDxz35UEM6qnhhnxb69
+u8BVIqH9aLhwZYtITgn4vkvio9RNwC7DLbiIlLU4Na/ZWroY7Ha+67p0AbmntQcC
+kjH/xAy1498+yoBrnYphqPli2bOtH2NO7cWmOzlIClJfH4SENzMaJco1m7oV1M4f
+DXQ/cQYon9a9tZO/v/5n8k8r2m/sXLnfq/NqS1p21jp+s3MNd+B+GQ0SjukEpPbv
+Q7iS5UudPZ0lf2S4E4YoAZfMBVNQq2rDviwBuEJI2PGPpq43jlhe96o7ziavxdr7
+6/vZAR3CGO18ey+3dl0OUvaudMD8bYvmMPO2lszR93VzB8p7oPCOo59yX25b+aWY
+9dg7/r/x/Aj4/AamJ80Vo/xaCAzI6ZthuGSoi2dmT6f29J1fL/yS61Cbe2HmbsUj
+V61w/3G16PwDbs55tsynAgMBAAGjgbUwgbIwLwYDVR0fBCgwJjAkoCKgIIYeaHR0
+cDovL3d3dy5wa2kuY3RzLm1kL21zY2EuY3JsMBIGA1UdEwEB/wQIMAYBAf8CAQAw
+PAYDVR0gBDUwMzAxBgZgg3JUAQ8wJzAlBggrBgEFBQcCARYZaHR0cDovL3d3dy5w
+a2kuY3RzLm1kL2NzcDAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMWd1Z7n4Vy8
+LxA9UpnvMZ8++RD2MA0GCSqGSIb3DQEBBQUAA4IDAQBdDq4vLYSg6p3dA311ruWR
+EmK1LvmxuHk7ozt2Om5jTorDTiSPvbLMqcTotfIE3uej5isKkBr/8bZbxNLPWR4F
+bXWm3AF/KXAqUyh/OfuCGG3d3wJIGb2w95rJTFFVUPwTZMo9u92Cj9ktc3tszwhw
+F6nuA58Z64XeS2jsxCFFWWzMSCGrr544OM9ghPEFVgrhhn4fVOLil8LfKT+2VsBf
+V2Js83q8JjC0JShBR3YNSNTteWMl6pE2BEQwkQfUDYDSMegiE4ObGZxuyZKiqFoX
+uVT1H8WGZhZuntw6vwjHQCLc9tn1EGhrG2+52epvMWrcPzmd1R5Gg6RKaY88lalm
+p8ADj3Aq6pX/zakPwzzG9OHKOLR3n3JMNTJaQTtFKcestzoJnUtAoiI0g3+UPJM6
+NBQFzWtCLtQOQ9s4v5PKtCkGc2a73jIHW3UMPugkdK2/gSt9QMgnlxbnXV6teuKP
+JhaaMTHXTxPr2zbbFm1HP9xmb00sdfC4gHY8Q7Qevrgi4dsrj8Y7ahSUBzsqFm5g
+Mv+prBy9vLyLoSVdG9uMwW22BKgquSjuYo0YhWFj8rZw5/CoqEmzmL6yVGEnE0Dd
+rj6MomwcxxNeYUrFMrqnBJqCobcbp0MOuhWzKRdjuV9/Mv693/oOzZBINJjSMKVx
+dcVKs2LeZTjLrhW4FEvu6yD92eT7XImsewXGtvQFu9VCsowXT/ZT83qi6dhEqA4l
+MsQ4C1noozz9OPdmpV6c+fbjRJB8A75FnLHJKtgDlimI8GMAfuwH9GTuXqG4ASOw
+luxVN5Ci7J/1Oi/vYo4NpfSUojDnS4WJeSgEEyvjJ2PUFK18rnv1g0mkdsLIykok
+ZyCQNQp8PIzKgQCkBcpm/K877cM1q+xHaIx16dmds5sZMncS8AxtBjJuMH1RMLjL
+DY9MqtqWrTFmhmX2RqqPkK/rL5BAC7QvgmA/GF4F5H8w3mbTJaQvAupWJAhHFmSc
+0W2p+PydGDdqm9uqN6HINfMjrsSBstV/TOy1ydHosrg=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+F44GAWXJRdwjgSjprnLx
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIII4TCCBcmgAwIBAgIIMZeHf0ucSwswDQYJKoZIhvcNAQELBQAwYzELMAkGA1UE
+BhMCTUQxHjAcBgNVBAoMFVB1YmxpYyBTZXJ2aWNlIEFnZW5jeTEYMBYGA1UECwwP
+TVJURCBEZXBhcnRtZW50MRowGAYDVQQDDBFlUGFzc3BvcnQgQ1NDQSAwNzAeFw0y
+MTAyMDMwNzE3NDZaFw0zNDA1MDQwNzE3NDZaMGMxCzAJBgNVBAYTAk1EMR4wHAYD
+VQQKDBVQdWJsaWMgU2VydmljZSBBZ2VuY3kxGDAWBgNVBAsMD01SVEQgRGVwYXJ0
+bWVudDEaMBgGA1UEAwwRZVBhc3Nwb3J0IENTQ0EgMDcwggMiMA0GCSqGSIb3DQEB
+AQUAA4IDDwAwggMKAoIDAQCOnBO1O+D1eDbPQaaZ5OeCrmBJsSj3vKX5uuV+BqJ1
+hgBlL+4YDSpCR21zd43ADXQMLo2miHAvRarzABFqlsoeYq/pcU/8+wIbEGW/sNtW
+qOnTuBiBODkuivkH81aZHq5Bcdm6L0ozhpUEjS5lPl/OnCIpF3eFREAPoH+3m2aO
+FlBVDAmO7r4wttB9OsCFHz8kKE94BM9op2fM/BBDkcpsv5gJvL/rKLf6fOCFoiht
+3zYSj7rd9+kK7mS8w7YIF3tzQa9EExjX8q2Tsw6fLHOlDkU5Bm4i8cPPnTpFAr1Y
+V1PqXzb/Ecax+WwGIZvyHOR4ZoZG923hIfZfLxcP5DFYCcUZBznlgO2s1MQJ8biC
+WMhQCkmi33lkZ407AffVfSkCXEHh7SxsoQbcIugtEvvCe9dkJG955Z8UpEPavoOW
+LVkrVNgjJOcd4s0C2uqZQ71E03SGQ4pv7mdnYJrrMQ8vows+HvW6GXDv7FTW/3kD
+H8LJsxCPIWhl9t5kCvwgCnqz6sFoY+RtSFrIOrGx0UDSY0B78ZoR7fLSjqQ9JXor
+lRcX3CWAb21RSWAsIvn+RdhNQfaovzjPnFVJYzep8fEW1qxKBMQDYPehtrHGt2gS
+u7nNvGzAYe/2Fq3vL2o6HaeSZyu8M0BMLPZ23M0Jv7M9itDpp7LU4pe7HQu9I3iS
+CRP0+9oUaA8wsS3YYajuJcPxipW96IYFAs6TnHvm3+jNMGp3XF7EA/l7Y81z0iIj
+nVLyBKlzThZj4yDykKfdbJU+Jb7pxozgCH1yayGT+ZHRefAfUcxm9uFFCI7IW1hU
+f8pCOqxlGjfqOcnmKwVF4p8LeD8Oc3woaNPSf1KFiHi90jmFAgqJxdwQYdB3EViw
+iTDC3yHzHnw0LOIBvfqKFr4Fnos74V3M5nu5X5Vg0Y3wqDFc6rfOpBoAyLXOlbMD
+kMkRw1NPbu9I8K386HV5dA6KgjOQZkeiFaoKpt2abDU17fQykdSVFqV98L+CacJL
+WImsqHWf2CgtUNWLzY+r1IcCAwEAAaOCAZcwggGTMB0GA1UdDgQWBBSeCHjb17xS
+icOZAqwXLpy62p0jJjASBgNVHRMBAf8ECDAGAQH/AgEAMB8GA1UdIwQYMBaAFJ4I
+eNvXvFKJw5kCrBcunLranSMmMD0GA1UdEgQ2MDSBD2NzY2FAYXNwLmdvdi5tZIIP
+Y3NjYS5hc3AuZ292Lm1kpBAwDjEMMAoGA1UEBwwDTURBMCsGA1UdEAQkMCKADzIw
+MjEwMjAzMDcxNzQ2WoEPMjAyNDAyMDQwNzE3NDZaMBMGA1UdIAQMMAowCAYGKoNy
+Aw0BMG0GA1UdHwRmMGQwMKAuoCyGKmh0dHBzOi8vcGtkZG93bmxvYWQxLmljYW8u
+aW50L0NSTHMvTURBLmNybDAwoC6gLIYqaHR0cHM6Ly9wa2Rkb3dubG9hZDIuaWNh
+by5pbnQvQ1JMcy9NREEuY3JsMA4GA1UdDwEB/wQEAwIBBjA9BgNVHREENjA0gQ9j
+c2NhQGFzcC5nb3YubWSCD2NzY2EuYXNwLmdvdi5tZKQQMA4xDDAKBgNVBAcMA01E
+QTANBgkqhkiG9w0BAQsFAAOCAwEAOc+bOGDFq7ePjBTEHIRViN+FpfepvQHI5qfo
+iid1KNj0YUGRmlfccLVO7hoizT58tgFrdAsYgqxE0V1c6Uw2M6wJfmTlBPdX7dnH
+Z+fwQNg2MTRVUX4cDWbItOdF1duubEMvWbwAe/D/Zh+NmktRQW6MwR8VEbdd50+s
+SkA+1oavXGnn5hvR6K7fRU7av7VZtDhtUubAHqRs/6NDqztlEM6VAm2j2UdCZRVt
+kFhQMuPXxyyMjcgeAKklMBaTYNguqLWYLCTpsXjwcBru5eK7B0tuh9W6d28PP/mX
+D1kMhSZfnwrQ2IqdxR8QQaY0O0+wWE/yR585ApUoscj7Fe9x51KGikE/MRTO05h9
+EZ/Bs57uEPX/n5dLr+Kv71lwtlR/MnITdyyeaLUzSIJbb3AiBW0Nbx4Y3Tf1JWst
+Nvp89XNmPClzUZ97Fhcp5mNfspRAXxWUhvXBak8vKTjAAR+hZdqQhLaHM9doTpN8
+EztpNXaJeYDjWQhAMSnLZwkWjYH5Iayg+GOjMbIKB7KicB0QJjrMg0mqi1q/myaZ
+ezKr67CM21/ohJOmn8w5r6XDO9zmabOf/zmZCxermjMfb/th/Qj0qAgs2tF0V5rc
+/EQI7KKXq9fujI2E/2Tgy5+xuLbW7Up6NqChGnEbU0LATy1slBqswskbD6ybhER8
+YGjv6ZQZV5jhJZa+9z0PZXmviziNwa7T1H4jJyAKTpOY86sNWpakCeiO/wcXwl4X
+DFOPbtyTrDOk/wL+kn0uGNPesFVmLsgvupd5Y1XelxfhjUtrFQMWzcGTtMAHTIhv
+Eh4Np87L9JCUoFzAtpz1iqyWc7x6JGjjT6z2QtB4I50kKRNUspGYpBasT61ZG5rh
+8/hOWMpjSGff8qiUwD0DayYweKgUuLyOBXVfkXPMsEtAqyoJpVfgA5uUlA/qXEui
+ZOw7VYY86Xb30KcAm/YE+XdT9+Uoz4qO6srbSP6SvXTXmRa2G6sGjPwP5s+4RMk8
+J/8F38z+jQrAmv7tYJI7lsE2NL56
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIII9zCCBd+gAwIBAgIIM4o4P8To+IkwDQYJKoZIhvcNAQELBQAwZDELMAkGA1UE
+BhMCTUQxIjAgBgNVBAoMGVN0YXRlIEVudGVycHJpc2UgUkVHSVNUUlUxGDAWBgNV
+BAsMD01SVEQgRGVwYXJ0bWVudDEXMBUGA1UEAwwOZVBhc3Nwb3J0IENTQ0EwHhcN
+MTQwNzA0MTExOTI2WhcNMjQxMTAzMTExOTI2WjBkMQswCQYDVQQGEwJNRDEiMCAG
+A1UECgwZU3RhdGUgRW50ZXJwcmlzZSBSRUdJU1RSVTEYMBYGA1UECwwPTVJURCBE
+ZXBhcnRtZW50MRcwFQYDVQQDDA5lUGFzc3BvcnQgQ1NDQTCCAyIwDQYJKoZIhvcN
+AQEBBQADggMPADCCAwoCggMBALuIVl9k5qht3Hpfe5pX/RX81POaxcv3Fm5AEnJr
+kVdSG8SCU4LpKoM1eboHdPZjSnr6V0GzFV7/iVy2PJsoKB8544r+rp4zg6GxUeyL
+GAncEZaTUgZz/Nn/2Nv4vQ+dNNJlFO2pTtOjmGALy1TdMd+gUeLXImiZLGK+hme6
+QeIe6B9Iv0rrLs+ohzVBgmCTTbZiE+Qfs9rAP2h1/s3DNLhWwotsn+AGG6Nxq1ww
+DJktv/49Ok30QIaW5L116n7NwavkirRBC4vy5UpU3cdiH7xLvDZSOn8968cOCCj0
+9UWXV4pg86euCTnK4ybHZp/MNbFD3/EonHk0pEAvR1C1ct85RkfKKgxMJqAZ8jTV
+4lRr1Q75p8gAG3k9askU381kD1y5KdAejhKlIJAR6sIq7Y9wHLXv4qnjkI5i1DU0
+C2WWUPIrKukci7khjl0bWiQQB856aYku8EVV7gDOnJgEt0iGqIOBXPaES7X3uOyd
+pOgjSfhk/O45qgXyet2FWsI/nv1GeShU1fUmdCHrCK/kAzanPIH4uV3nWRfCSV9o
+18kKwDrZvriT85QoZ3hyen046j2JJA6lObU09nPAeGjlXhJMrs+I1llvlptOx1+R
+HGgL7aVrjBQpdL6wM+KB2yLvcnS+UFIjNBytcgJJbp8TgL5bpReUZDV9ssA6cXC7
+WX84cXc/UC6TU5RrCVEcOMp/Z2SOm35eI389XfNT5dYLhlynhHdCzKXD1XbycLY8
+oHBbBjeSwYnuGHEATC8Vla5htrnkkfHl5q2Rdr8Pz/UVhDNEskEoVQcCLLu8tyA/
+NoiklE+QNjNtLRZ/Xbe0VlGvidvWSn0qVwrUqWzhG97fqVsCthfxuki4+Ls2fqjV
+X7RJordM7UA9QS7gy7jJdmieAX7BnKXbZe15vIC7SJhrVRknIb2k4vTSoTSdwdqE
+8lH7TRXHwUAwPxXn7Y3JfR5o1vsxVAbpMMgD1GW1wZJCxsefSypn6XvNMsHlnfDq
+c7cKO5KJLejtm6fvEYQVvxLXmQIDAQABo4IBqzCCAacwHQYDVR0OBBYEFCtxEGF6
+T51ngeNcB4+FthDyNFlqMBIGA1UdEwEB/wQIMAYBAf8CAQAwHwYDVR0jBBgwFoAU
+K3EQYXpPnWeB41wHj4W2EPI0WWowKwYDVR0QBCQwIoAPMjAxNDA3MDQxMTE5MjZa
+gQ8yMDE3MTEwMzExMTkyNlowEwYDVR0gBAwwCjAIBgYqg3IDDQEwbQYDVR0fBGYw
+ZDAwoC6gLIYqaHR0cHM6Ly9wa2Rkb3dubG9hZDEuaWNhby5pbnQvQ1JMcy9NREEu
+Y3JsMDCgLqAshipodHRwczovL3BrZGRvd25sb2FkMi5pY2FvLmludC9DUkxzL01E
+QS5jcmwwDgYDVR0PAQH/BAQDAgEGMEcGA1UdEQRAMD6BFGNzY2FAcGtpLnJlZ2lz
+dHJ1Lm1kghRjc2NhLnBraS5yZWdpc3RydS5tZKQQMA4xDDAKBgNVBAcMA01EQTBH
+BgNVHRIEQDA+gRRjc2NhQHBraS5yZWdpc3RydS5tZIIUY3NjYS5wa2kucmVnaXN0
+cnUubWSkEDAOMQwwCgYDVQQHDANNREEwDQYJKoZIhvcNAQELBQADggMBAAeNMEa/
+titr2mfOq6PJmV+neeNAkBngpLeXEPB1w38QTrIEWeVNstm7Y1jTilg2TRDqzuPt
+CEgsD4zZNFolJ2Mz1GH3RhYs5jOBIFgycZrY8lqfwt/OBTbdbQpEjhcbB2v7VkAs
+PoavM1h34CnftN7svvetHwaegAs+3vNi50z72ZbpD34j7z2iwRnweD+pMBcOKRE6
+bRPZxwr0+oGWHXzPRAnenZozRmtQ87wuuCCZQWQcZc9dozuK2C2OsUXmArEHNVnH
+7pxE6ZthQ1hFBHB8YTRbIxW705XQLsCYK0f8T8Yu6OfBjhWcgaUGznls4Fzx5d61
+sBObpjfyQ3f/oYhZMwm7u4X4TA6VBitTD6CHDxb74YFaDoc+RuxfrvcADpn9Ux44
+XnGjqw10+oDPdkwMJUXi4afUZQY2VvjnqWMsz2MLJxDlz8APjbRHpTL47Zqb5QY3
+1UjYYN9kq3d+rH0OEHaQCgaEX5IlU8UIefPWCqrweoukJAT/H1xXbEcFiSbgjPQH
+v7hGbbEX+d1IZyLpJCXWtHPeAmOYva5d4BH4z+yOwAiyu/E8iWIN1vyb1nPq0Jcy
+l3T0PmkTRdb3IsgVspjYjl1LCOmMvjo7TyNsZ08fPwbcciJ285yQkLDM1Be9AMra
+wA1V7V31Wyq6dkR/Wn/CAYC7SHfWgux1/t9dqYdH8U2QCxbj8ymgVSDL+Aa8kjyp
+Hh+3FdehRQCPAOffVcdp2yVaUCYwY3oC5Cfas6MX97eZN4SBUpy3TiMwB06CPpUB
+RjvQgTvWIiYVjQsVNwt/nFZDOoZLZI9PG0w/l9fI1uc/ptfJWAlFjW7amUcNGon+
+dKaVT4dX7B+JfPG0qCZJJtzNBKQgNyANfFPt64M6Wy9rfqJBRbAZ8a6EbHc1eaBm
+xP0eMuSPTHlBuxuy7soAWmmxw3r/KByeiAkniDNrNTuBxnFGdyM/BJ4xxP5A3rrR
+ebP1nx/ai01Zc26AykiljPJ2yLiesx09LDb1i89/wj7neShDalEzQcqGZA==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIII9zCCBd+gAwIBAgIIR4xiui1FzGYwDQYJKoZIhvcNAQELBQAwZDELMAkGA1UE
+BhMCTUQxIjAgBgNVBAoMGVN0YXRlIEVudGVycHJpc2UgUkVHSVNUUlUxGDAWBgNV
+BAsMD01SVEQgRGVwYXJ0bWVudDEXMBUGA1UEAwwOZVBhc3Nwb3J0IENTQ0EwHhcN
+MTcwNzE4MDcwNjAxWhcNMjcxMTE4MDcwNjAxWjBkMQswCQYDVQQGEwJNRDEiMCAG
+A1UECgwZU3RhdGUgRW50ZXJwcmlzZSBSRUdJU1RSVTEYMBYGA1UECwwPTVJURCBE
+ZXBhcnRtZW50MRcwFQYDVQQDDA5lUGFzc3BvcnQgQ1NDQTCCAyIwDQYJKoZIhvcN
+AQEBBQADggMPADCCAwoCggMBALACNlGjC8iJau6A5RdP0V/9hIAvmB6j5g9HdYaY
+eIH3bK6A6hvK+DNOJK/iURlizKneGZIHwWpOOwSCM9tr12DlyCwZvrbTX40xHul4
+Ik5u0g75ld9SfHtYaSFX5k12Ayb5Yk+uM8HiUcVGuNjiMDJ0VsZMIvlOdV+V4lgY
+BKvrw7pS8he+RqdT/Dfhkcpf6PQr3R8WkEgPG5HW85al9Cn/f9QCqn22jmIGZqKT
+em5NZMkD9Y2A26g8E6S+Wf2z85SA9ypfvN1hlk4GKMrpAw3Se2eHvfjmnA0vlSNF
+OJSsBVxKZCbcwf2Ur8/YhG9DTWv2Wt+yEYV7d9d6pyKH3IRFWXAZjJu6nVhY5s4F
+3c0D8ymnDY/7ow8ufygDhq4Vo63toyYT/5gO5v4wFvG1kelYb/wU3x+0p7Y8mzkW
+rZGse3r+DhEoTK2189l8Zld71P39GAbgBGFKU1HE4ovAZc9ZpUb9THpW2SRFbc5P
+MPEoe8X6vS5Lv2jSIZfcmZGvT4ktKKqZxsSua3GzxtluDpl6r+V4n7jocUrm8WEh
+Cxg5CyrnpoIGCQFkXDAQAueEdy7DCQGF1nLaRQ16yYoAAWAg8ZX+m1OZCDNjgCo2
+pjMcirLpy8KQT2HVSdkGjztA5/VPdpnqrZAHx6HH5vveN8bPfT784UAJIJOKFwvN
+ecKBE/8PleNx9gip1WFsVUSIzGIkX+OSEfXuztJtxoaCoIXw8zOHUmqL26VtIhWh
+b4Wm722hTCI8zRFG0lHMSAvqhKGXaBk41kD3oD4R+EacVHNBu/Xajmes4P2yGBDn
+NokwpHCV9JT2A+75fGCOn5LDRD12IHtYzH4hqI+gwvsI1ipA/zgdt4pljZ9kaQZH
+8GJ5wqmsH/gjyc2lROmTqyWxuyknCuUSG3jdWo2mkgOrgAiS4S1xdIypFFZtJP4i
+JBjUdo6DJe6whrQL81TdoIVRJv/3wrn+X66ZbPZ1kJAyX6FyCZYnX01MyLr5GSjo
+iOtdiVOB7KR/SLakc3o8GMfZvwIDAQABo4IBqzCCAacwHQYDVR0OBBYEFM08xSC1
+CKRObVGN/zP6NsveEIviMBIGA1UdEwEB/wQIMAYBAf8CAQAwHwYDVR0jBBgwFoAU
+K3EQYXpPnWeB41wHj4W2EPI0WWowKwYDVR0QBCQwIoAPMjAxNzA3MTgwNzA2MDFa
+gQ8yMDIwMTExNzA3MDYwMVowEwYDVR0gBAwwCjAIBgYqg3IDDQEwbQYDVR0fBGYw
+ZDAwoC6gLIYqaHR0cHM6Ly9wa2Rkb3dubG9hZDEuaWNhby5pbnQvQ1JMcy9NREEu
+Y3JsMDCgLqAshipodHRwczovL3BrZGRvd25sb2FkMi5pY2FvLmludC9DUkxzL01E
+QS5jcmwwDgYDVR0PAQH/BAQDAgEGMEcGA1UdEQRAMD6BFGNzY2FAcGtpLnJlZ2lz
+dHJ1Lm1kghRjc2NhLnBraS5yZWdpc3RydS5tZKQQMA4xDDAKBgNVBAcMA01EQTBH
+BgNVHRIEQDA+gRRjc2NhQHBraS5yZWdpc3RydS5tZIIUY3NjYS5wa2kucmVnaXN0
+cnUubWSkEDAOMQwwCgYDVQQHDANNREEwDQYJKoZIhvcNAQELBQADggMBAFmbtCwW
+9dfYlbebunQFXG5ifio1gOe5S1min6sbeXt1QlaCqurK3uDTiifYSKRSS/S6VbrK
+XNS0ntjUDIwo/peoQEV6iU+5xYc6FYBARGJYdP3n+G4L6zO9ioSKdeAD+A84cv8e
+kbYTShYH/LIZZhDtb90YFTLG0/bLQdo5Y18CnOfUGk/SfdwXuavmjPrh5mmIj176
+S3hr1v8BwrbOSCAiO5dwIIDDf5neMgF/ORXV9R+EKeUuAzHNY3SK0vrAcsHE0Nu0
+y7sVVLIP+kyzTDPuDMML5hgshY928o1jZr7Rw2clglYBaA9hnzkAFNIZ163Qc/Pd
+UkQSmsfYy/01sx5Mh+yl/y+Q/P5O93o8z1T3xnjj8UKL/ndEeBe8+izjt2dcCeIj
+EB9ZQC0YOok1W71OMyC2dA8SwatD6RjXLIGcE5f+0F8nSPm5erhITVGkCZ8pOJLx
+S4WB3R4Ze9yD9B11yUha+yebYQIs9i+kCODxxByphJJWg7jEBDkYRxchBwBOWji+
+ziwBG3+3I0qjaVwoweh2eRui43VQlkeV4u/PTinGKdDPsWivJ1v1oBfQ1RDz/33o
+MIsfS0+l19JpSUTaKVBeABuS96xhqjXyH6wzmeCrqrNwWyPjcL1izd3tGfjWpvKD
+pGKVEeOn76DrCpCVkdgZQynncgp/dgafdn9M14iutBpUale8es5Gu8d4n7erpmTp
+QbeWL1uWAat3p9R/uDEhFv+/UG0r5FjerG48Gu/dyK+UxvWf6WzCZ7sqvvKI1qwd
+LEzN/33qzsaw22AJ/0Kh9+1EXWGoaL2pue+7pbZ15kT7bo8b1IemmNgQidQn+klA
+EJ8dBbUtRrPTsvxSdGZl41PuoXCJoVqpwm+2Ip+I4Of1QrOsvy2g1FBZPzKwIDVm
+oMR250o1ZwIZFLFyrLcs9578b2ab2FHbzk71vEfbbVSNowe1nhC0QlNyk6tyKfIY
+tf28xQRcuLrOarQMSU9bRTdXjsog2pWEIL/RihP2KKTmnGRULDaPHMz0zA==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIII9zCCBd+gAwIBAgIIdBK2cvP1qL8wDQYJKoZIhvcNAQELBQAwZDELMAkGA1UE
+BhMCTUQxIjAgBgNVBAoMGVN0YXRlIEVudGVycHJpc2UgUkVHSVNUUlUxGDAWBgNV
+BAsMD01SVEQgRGVwYXJ0bWVudDEXMBUGA1UEAwwOZVBhc3Nwb3J0IENTQ0EwHhcN
+MTcwNzE4MDcwNjAxWhcNMjcxMTE4MDcwNjAxWjBkMQswCQYDVQQGEwJNRDEiMCAG
+A1UECgwZU3RhdGUgRW50ZXJwcmlzZSBSRUdJU1RSVTEYMBYGA1UECwwPTVJURCBE
+ZXBhcnRtZW50MRcwFQYDVQQDDA5lUGFzc3BvcnQgQ1NDQTCCAyIwDQYJKoZIhvcN
+AQEBBQADggMPADCCAwoCggMBALACNlGjC8iJau6A5RdP0V/9hIAvmB6j5g9HdYaY
+eIH3bK6A6hvK+DNOJK/iURlizKneGZIHwWpOOwSCM9tr12DlyCwZvrbTX40xHul4
+Ik5u0g75ld9SfHtYaSFX5k12Ayb5Yk+uM8HiUcVGuNjiMDJ0VsZMIvlOdV+V4lgY
+BKvrw7pS8he+RqdT/Dfhkcpf6PQr3R8WkEgPG5HW85al9Cn/f9QCqn22jmIGZqKT
+em5NZMkD9Y2A26g8E6S+Wf2z85SA9ypfvN1hlk4GKMrpAw3Se2eHvfjmnA0vlSNF
+OJSsBVxKZCbcwf2Ur8/YhG9DTWv2Wt+yEYV7d9d6pyKH3IRFWXAZjJu6nVhY5s4F
+3c0D8ymnDY/7ow8ufygDhq4Vo63toyYT/5gO5v4wFvG1kelYb/wU3x+0p7Y8mzkW
+rZGse3r+DhEoTK2189l8Zld71P39GAbgBGFKU1HE4ovAZc9ZpUb9THpW2SRFbc5P
+MPEoe8X6vS5Lv2jSIZfcmZGvT4ktKKqZxsSua3GzxtluDpl6r+V4n7jocUrm8WEh
+Cxg5CyrnpoIGCQFkXDAQAueEdy7DCQGF1nLaRQ16yYoAAWAg8ZX+m1OZCDNjgCo2
+pjMcirLpy8KQT2HVSdkGjztA5/VPdpnqrZAHx6HH5vveN8bPfT784UAJIJOKFwvN
+ecKBE/8PleNx9gip1WFsVUSIzGIkX+OSEfXuztJtxoaCoIXw8zOHUmqL26VtIhWh
+b4Wm722hTCI8zRFG0lHMSAvqhKGXaBk41kD3oD4R+EacVHNBu/Xajmes4P2yGBDn
+NokwpHCV9JT2A+75fGCOn5LDRD12IHtYzH4hqI+gwvsI1ipA/zgdt4pljZ9kaQZH
+8GJ5wqmsH/gjyc2lROmTqyWxuyknCuUSG3jdWo2mkgOrgAiS4S1xdIypFFZtJP4i
+JBjUdo6DJe6whrQL81TdoIVRJv/3wrn+X66ZbPZ1kJAyX6FyCZYnX01MyLr5GSjo
+iOtdiVOB7KR/SLakc3o8GMfZvwIDAQABo4IBqzCCAacwHQYDVR0OBBYEFM08xSC1
+CKRObVGN/zP6NsveEIviMBIGA1UdEwEB/wQIMAYBAf8CAQAwHwYDVR0jBBgwFoAU
+zTzFILUIpE5tUY3/M/o2y94Qi+IwKwYDVR0QBCQwIoAPMjAxNzA3MTgwNzA2MDFa
+gQ8yMDIwMTExNzA3MDYwMVowEwYDVR0gBAwwCjAIBgYqg3IDDQEwbQYDVR0fBGYw
+ZDAwoC6gLIYqaHR0cHM6Ly9wa2Rkb3dubG9hZDEuaWNhby5pbnQvQ1JMcy9NREEu
+Y3JsMDCgLqAshipodHRwczovL3BrZGRvd25sb2FkMi5pY2FvLmludC9DUkxzL01E
+QS5jcmwwDgYDVR0PAQH/BAQDAgEGMEcGA1UdEQRAMD6BFGNzY2FAcGtpLnJlZ2lz
+dHJ1Lm1kghRjc2NhLnBraS5yZWdpc3RydS5tZKQQMA4xDDAKBgNVBAcMA01EQTBH
+BgNVHRIEQDA+gRRjc2NhQHBraS5yZWdpc3RydS5tZIIUY3NjYS5wa2kucmVnaXN0
+cnUubWSkEDAOMQwwCgYDVQQHDANNREEwDQYJKoZIhvcNAQELBQADggMBADKw/fMO
+0XWDf+ASK7LAAW9euZqCUf9v8myNvnK6twp7yuf1yUrMrQg0EjscNbHdEVuwxqr4
+tjwskaFjoJ5IyWTJ++akBS7jBtfYDG8mFZq1mNj8cFDkT2fhU4qPCXWMUInU4hDh
+Om8cTQfxMIy6pWfkVtb/P1PGTyqQmcnCw73rMh9Ctd/fMawuncz2mjH1xSoR93Pt
+AUOpL+Smap7rtESHRN+4WljceVg6+ivzxhChpdWSlvabvAAHbuug5vwv8RJFLSgl
+sBJK/vQiXR7frie4wr/2ZnrSXxfbJh2I0uz5gQ2tigpVku+mFNR3s1uQDJe5oHaf
+cWbrr5eBJOKC9qMSUSzPa2ruQ9PBUXhlg0J0vXdP8H+RAxAGzVEHwntDBYcf8Tv/
+jiSCGOzuyaLTMq9JwI6UZLtTCswnoLMztLtmMd9X4lytNZfQ5Ee7E+9GCXl+QmoF
+lWyZcioxzMi1br2TqOMNxNH6mOmUzflUnSDqdhj/eaFFQMTXDIAuxqupI4X9OkzL
+h3RCud85jrDYhmpjMlFZo3FpUQDMNUWsKcZsAcvfQm8c6WeQ4bLTwwcMS1G95B2t
+aq4IrmxkQ4swLnD41rOz40850L3IdptFz41gLB1qQft6JkOGntJnxe1KR2B7waOK
+RBqeO19wAdeflq3NJ331Pi6wIMj0DEiLYjt2blS9Joop0z/SJcphw0TGJlhRIA+w
+S9X5KxeYcdkBF1yvePmJMvligJ71DvBlhjU8b/ziw7A14Jvppk9+TzOa8hr3eqA4
+cqb/EnkzLUdlLMXqk3VZJtOQjFjfGK12vSS9FH0tpT9PfWokhYrATDDWpAjNlNmo
+KZ5WtD6qighWU7+Y3UH4Vd4UWpOy+6z/WWv5V1k7D0kAfTwyuU88y8xLcPpksnNw
++28XJS4Two10u9Zy2YkuWW9xKVhrU4DVmTScpaFOhoX+EaaF9AzffXuU3m3l/Kgd
+r43jqYCdMk19tbT1OAIbTix4BZNUnRwNt9//WJzZCeyXCgWnyTNb7Rnwcw==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIJETCCBfmgAwIBAgIER2mtwTANBgkqhkiG9w0BAQUFADCCASUxCzAJBgNVBAYT
+Ak1EMRwwGgYDVQQIExNSZXB1YmxpYyBvZiBNb2xkb3ZhMRAwDgYDVQQHEwdLaXNp
+bmF1MT4wPAYDVQQKEzVTRSBDZW50ZXIgb2Ygc3BldGlhbCB0ZWxlY29tbXVuaWNh
+dGlvbnMgMTAwMzYwMDA5NjY5NDEgMB4GA1UECxMXQ2VydGlmaWNhdGlvbiBBdXRo
+b3JpdHkxHzAdBgNVBAkTFjE2NiBTdGVmYW4gY2VsIE1hcmUgYmQxHzAdBgNVBAMT
+Fk1vbGRvdmEgZVBhc3Nwb3J0IENTQ0ExFzAVBgNVBBQTDiszNzMgMjIgMjUwNTQx
+MSkwJwYJKoZIhvcNAQkBFhphZG1pbjEtY2VydEBiaW9wYXNzLmdvdi5tZDAeFw0w
+NzEyMTkyMzQ4MTdaFw0yMjEyMTkyMzQ4MTdaMIIBJTELMAkGA1UEBhMCTUQxHDAa
+BgNVBAgTE1JlcHVibGljIG9mIE1vbGRvdmExEDAOBgNVBAcTB0tpc2luYXUxPjA8
+BgNVBAoTNVNFIENlbnRlciBvZiBzcGV0aWFsIHRlbGVjb21tdW5pY2F0aW9ucyAx
+MDAzNjAwMDk2Njk0MSAwHgYDVQQLExdDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEf
+MB0GA1UECRMWMTY2IFN0ZWZhbiBjZWwgTWFyZSBiZDEfMB0GA1UEAxMWTW9sZG92
+YSBlUGFzc3BvcnQgQ1NDQTEXMBUGA1UEFBMOKzM3MyAyMiAyNTA1NDExKTAnBgkq
+hkiG9w0BCQEWGmFkbWluMS1jZXJ0QGJpb3Bhc3MuZ292Lm1kMIIDIjANBgkqhkiG
+9w0BAQEFAAOCAw8AMIIDCgKCAwEAp4JnOVyhVq6UjPcq87XEJpNqFppdCOlSWuw5
+43eovEzhydHBt9YAJaPfKhhIZQJ33+K/SOtWRd8Mh2SFBfKsvQhM61w3og14Bi2N
+HADhXiU6q36yXMQjoDHJX7oyqm0uEU+SyI8QqLj4HU0oMsIicbTFZQk7EaNS41cB
+YL2OAjr530eHR7fgNJHvW266nYq20LHBkggsWkmvfH7qd6eagIbzQ5gJPQo/TN3s
+OLzG6ZWsLqyXP07YPlHmb3pIX2ZCbvALLFEsn0Mc5y+n/NB5UGeNnXVwhphzXfrB
+aB1X0s8TQ1U16duez5TzUQBPs9Il87UQZKc9gbbJxgGXdsTTcYnAvzP1p4hDuKxc
+11dvqTM5SS5I1dEtc/wjWprcV/H7I64xT4L8HAdg/wPUDPsXqDV1wLt2szAYXUCJ
+1w+Qqch5LOzkm1eVma9ahQV/JZBGqWCu5uldMwmb295abPrPHiBBH7s10t1QrHYA
+VtcS4jikAoJdcBnGEVw6KhWj10wGGJQliO46cT7CRkqM6RMI7N7Cl2wYE5dkspDI
+zU9Z26WJ6/99bOvgOpTJxicl377RwB7qn3nwARdQuJtXAU+XPO4PpABnKFc8DtOK
+7mfThDk71cCgP6quHRtMVkSD1s4g/0Udmys4GNdjMrGRhu+DuoU0uFsOWiy/T9d1
+QCAwMJNPvq3fC+ewjx0TPFWbXz4D4mM51mwv9At+EfFR6/gsArA6RLV9ZxsAQDQz
+J6YXHWQnJaou0fZVkzkDpvLhDqB5Or+N6pUjoP0iHNR56x/A3oVV86zLJprK0pJE
+dgB7v73lZNV+WrcdVDyE5x4G3l6i+6f7+96Tuc8+0peITQxlu4hOb+Wsm6Px+BW/
+rtdjvDo/KvLj8fc/WHchb78Xxpz1wJu5dVDj2+Yj57Kv2xnZo79IwQgR4r2ChZ82
+YmMi8GcSCCqm4quOYAJqbSAKUORFa/C2IoLqXoMSjUmpXsVswXY/b/61XlbEjlyU
+fEGGPmWj3kD/3mO3k8ZVcID5vlqDAgMBAAGjRTBDMBIGA1UdEwEB/wQIMAYBAf8C
+AQAwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTeLNaNri1a/w9to5yHxwNONMAa
+pTANBgkqhkiG9w0BAQUFAAOCAwEAA8RUm9ky2b8OIjuqb2J0EUAG9IYJOLvQtpJt
+XPh1z9+RnVPzRQdt6i6eb3/zxXDwRkET2Pq7fafSD6m/WP2rVgPiHvinigh78/+P
+Pm1LYVXskjH7fcnGVjSMU1muWt5a5DQ5j4IaOlhG+cmVWYH9qGhsDdFDNjz2dPZP
+zAH2U3eUgUH8q9Ctmh+pC277ZIY2ko8anz6xUpCP8/k8ApwR/lFBTVGU93OGqqnR
+UYFUpNV5+rtjrmzcSzbAOCBJtjeOFfvd1RnLxGf4hFM5CCyFPWUm7rfjoGtbgJFh
+XBFPVUzkck3RGPtL3PXilJ2N/dKHoz+pTw7WXOqn31c+SZk8uHHsjaq5kQisT2R7
+IVD1uxz9XShp48X3Q+9FXPWvY2APvCqOqcYBSbQI9GN6gapjeVRMTkbo67pefjjz
+7lgWTmb6j61KPJdUYaI0srfs98Cl+Fn2Qp4t1s+0L+v9xDzj4RtuYj5aT+X2n9eb
+lcmTEvejgJ8cJ60INVoBggtMQdNuvihu/u3nduYBcTcXPqId+CzMclw5G+YoRSmK
+HTY1lgYJsI6UTPBtXUPyQurzj7sTiARBxPJcvIRSWDrJF3BXG4rI3qBm4n4mSmnE
+JXqbyVYQbbhgH13sqeTN3JPo2eTN7ASvH3bjoh7Lx+vEfUoANd/6VTeyy9zPnfHD
+QT3EbvIKoCp+zb7C9FyuMvGk2jbTaqw5vHyPvg5dJI1dDbRgvf1YLIghVZmBqZ6V
+6CZ7Jolar5N1vwmHFLddv7MwLljBDYdQ2bmfwINa/9YzdtMQFs95ROxylxVarhqc
+ZpSdFZntutAzbWJSEOgGH933yEloWZS1NrJiJWqc5gww2WaHnweuHfmWPliJkixj
+DA5vmcsKhh7UNwN2D9hgnxoS0Itj3jsPN7ltKtOgucxdzonL+MNY+z1h/nk7RKcs
+6ddUwO5+DCim4ayf14hJbEbg+xsE9NDXi515uRE0smXzehCrzKykH02jY8TriC05
+nJY5Mhd8ZNsuTTYj58zfbKUQf0MA
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICmDCCAj6gAwIBAgICJ0cwCwYHKoZIzj0EAQUAMEMxCzAJBgNVBAYTAkxUMRcw
+FQYDVQQKDA5BRElDIHVuZGVyIE1vSTENMAsGA1UEAwwEQ1NDQTEMMAoGA1UEBRMD
+MDAyMB4XDTExMDMxMDEyMDAwMFoXDTI0MTExMDEyMDAwMFowQzELMAkGA1UEBhMC
+TFQxFzAVBgNVBAoMDkFESUMgdW5kZXIgTW9JMQ0wCwYDVQQDDARDU0NBMQwwCgYD
+VQQFEwMwMDIwggEzMIHsBgcqhkjOPQIBMIHgAgEBMCwGByqGSM49AQECIQCp+1fb
+oe6pvD5mCpCdg41ybjv2I9UmICggE0gdH25TdzBEBCB9Wgl1/CwwV+72dTBBev/n
++4BVwSbcXGzpSktE8zC12QQgJtxcbOlKS0TzMLXZu9d8v5WEFilc9+HOa8zcGP+M
+B7YEQQSL0q65y35XyyxLSC/8gbevud4n4eO9I8I6RFO9ms4yYlR++DXD2sT9l/hG
+GhRhHcnCd0UTLe2OVFwdVMcvBGmXAiEAqftX26Huqbw+ZgqQnYONcYw5eqO1Yab3
+kB4OgpdIVqcCAQEDQgAEINgHC7WdEbTtUXBQE2AmniAtslzgGT/TKB9+6LtTysow
+kCnTJQn7wkfTxl2rIwGtsfUsXI/B4ZQ2EpY9FH6My6NFMEMwEgYDVR0TAQH/BAgw
+BgEB/wIBADAdBgNVHQ4EFgQUJeuQkvhe5uc+R1imh5wcnwJx8wUwDgYDVR0PAQH/
+BAQDAgEGMAsGByqGSM49BAEFAANHADBEAiAspbIMik14u37zCGgncLMh3mI2WzKl
+7PrATshlSGcIlwIgd501eVBRxOzMdytdGjrHFuFxEis08RGtdlu8wKMMc4E=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICmDCCAj6gAwIBAgICJ2AwCwYHKoZIzj0EAQUAMEMxCzAJBgNVBAYTAkxUMRcw
+FQYDVQQKDA5BRElDIHVuZGVyIE1vSTENMAsGA1UEAwwEQ1NDQTEMMAoGA1UEBRMD
+MDA0MB4XDTE1MDYwNjEwMDAwMFoXDTI5MDIwNjExMDAwMFowQzELMAkGA1UEBhMC
+TFQxFzAVBgNVBAoMDkFESUMgdW5kZXIgTW9JMQ0wCwYDVQQDDARDU0NBMQwwCgYD
+VQQFEwMwMDQwggEzMIHsBgcqhkjOPQIBMIHgAgEBMCwGByqGSM49AQECIQCp+1fb
+oe6pvD5mCpCdg41ybjv2I9UmICggE0gdH25TdzBEBCB9Wgl1/CwwV+72dTBBev/n
++4BVwSbcXGzpSktE8zC12QQgJtxcbOlKS0TzMLXZu9d8v5WEFilc9+HOa8zcGP+M
+B7YEQQSL0q65y35XyyxLSC/8gbevud4n4eO9I8I6RFO9ms4yYlR++DXD2sT9l/hG
+GhRhHcnCd0UTLe2OVFwdVMcvBGmXAiEAqftX26Huqbw+ZgqQnYONcYw5eqO1Yab3
+kB4OgpdIVqcCAQEDQgAEgDXw5TsxtdZ4wGpqt+W9/EjOTDhD4BdKDzARs570VVVD
+Fq1myy4ptRGfWns8W4BYUSjXPLvxXY+OQNxUvMAxvKNFMEMwEgYDVR0TAQH/BAgw
+BgEB/wIBADAdBgNVHQ4EFgQUj73K7tZpBjJ4J1e0HIDFHXMgN1cwDgYDVR0PAQH/
+BAQDAgEGMAsGByqGSM49BAEFAANHADBEAiAgTNmdSPxuaYI3/1y/x1NB9r4VkfnT
+Mlfa79GX8WhNAQIgNrV4ob4TQ7CP/J0xEcc/Ybz2bmnm53ruahqvVjxJ2Pw=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICmDCCAj6gAwIBAgICJ3cwCwYHKoZIzj0EAQUAMEMxCzAJBgNVBAYTAkxUMRcw
+FQYDVQQKDA5BRElDIHVuZGVyIE1vSTENMAsGA1UEAwwEQ1NDQTEMMAoGA1UEBRMD
+MDA1MB4XDTE4MDYwODA2MDEzNVoXDTMyMDIwODA3MDEzNVowQzELMAkGA1UEBhMC
+TFQxFzAVBgNVBAoMDkFESUMgdW5kZXIgTW9JMQ0wCwYDVQQDDARDU0NBMQwwCgYD
+VQQFEwMwMDUwggEzMIHsBgcqhkjOPQIBMIHgAgEBMCwGByqGSM49AQECIQCp+1fb
+oe6pvD5mCpCdg41ybjv2I9UmICggE0gdH25TdzBEBCB9Wgl1/CwwV+72dTBBev/n
++4BVwSbcXGzpSktE8zC12QQgJtxcbOlKS0TzMLXZu9d8v5WEFilc9+HOa8zcGP+M
+B7YEQQSL0q65y35XyyxLSC/8gbevud4n4eO9I8I6RFO9ms4yYlR++DXD2sT9l/hG
+GhRhHcnCd0UTLe2OVFwdVMcvBGmXAiEAqftX26Huqbw+ZgqQnYONcYw5eqO1Yab3
+kB4OgpdIVqcCAQEDQgAED6PKSqxTf+QAK8jnKPqPAAEr1Lrm4Fbo+BJrU1FBd81P
+pZ/BVhNxOdUJbl8FCmwMOAiklczjW+BvlQ/ZrGNypaNFMEMwEgYDVR0TAQH/BAgw
+BgEB/wIBADAdBgNVHQ4EFgQUcxkRK8SgFeVZR8CZ7yc2RS9m6z4wDgYDVR0PAQH/
+BAQDAgEGMAsGByqGSM49BAEFAANHADBEAiBGp7XEhv0fpbT0XwPiSk952BuMMwzh
+wbhHI1tNiHbp5AIgPGDamwSGntQHjeftOZ24LRsupX8qprK1ToIDFNpfEfA=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICmDCCAj6gAwIBAgICJ4swCwYHKoZIzj0EAQUAMEMxCzAJBgNVBAYTAkxUMRcw
+FQYDVQQKDA5BRElDIHVuZGVyIE1PSTENMAsGA1UEAwwEQ1NDQTEMMAoGA1UEBRMD
+MDA2MB4XDTIxMDYwNzExMDYwOFoXDTM1MDIwNzEyMDYwOFowQzELMAkGA1UEBhMC
+TFQxFzAVBgNVBAoMDkFESUMgdW5kZXIgTU9JMQ0wCwYDVQQDDARDU0NBMQwwCgYD
+VQQFEwMwMDYwggEzMIHsBgcqhkjOPQIBMIHgAgEBMCwGByqGSM49AQECIQCp+1fb
+oe6pvD5mCpCdg41ybjv2I9UmICggE0gdH25TdzBEBCB9Wgl1/CwwV+72dTBBev/n
++4BVwSbcXGzpSktE8zC12QQgJtxcbOlKS0TzMLXZu9d8v5WEFilc9+HOa8zcGP+M
+B7YEQQSL0q65y35XyyxLSC/8gbevud4n4eO9I8I6RFO9ms4yYlR++DXD2sT9l/hG
+GhRhHcnCd0UTLe2OVFwdVMcvBGmXAiEAqftX26Huqbw+ZgqQnYONcYw5eqO1Yab3
+kB4OgpdIVqcCAQEDQgAEOmIWwWZm78vtlw9CDFENjmTkJh0S7ooP1lilUuWOz3B8
+hqVsrSZW+qjEyA7ygmx1uOqa1kuetM26nHD4IjIWy6NFMEMwEgYDVR0TAQH/BAgw
+BgEB/wIBADAdBgNVHQ4EFgQUnSxc6TvhgYf7so4HqIG/PrJjOrgwDgYDVR0PAQH/
+BAQDAgEGMAsGByqGSM49BAEFAANHADBEAiB/bzNd/2v/VDq01DeS5s+PHwHLVRFi
+qAifb5Ja3uo7ywIgP8y1m+v2biDSbMbXOc9eDdxX+iskJOtiHHZnJcjjmwY=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICmTCCAj6gAwIBAgICJ1owCwYHKoZIzj0EAQUAMEMxCzAJBgNVBAYTAkxUMRcw
+FQYDVQQKDA5BRElDIHVuZGVyIE1vSTENMAsGA1UEAwwEQ1NDQTEMMAoGA1UEBRMD
+MDAzMB4XDTE0MTEwNzE2MDAwMFoXDTI4MDcwNzE1MDAwMFowQzELMAkGA1UEBhMC
+TFQxFzAVBgNVBAoMDkFESUMgdW5kZXIgTW9JMQ0wCwYDVQQDDARDU0NBMQwwCgYD
+VQQFEwMwMDMwggEzMIHsBgcqhkjOPQIBMIHgAgEBMCwGByqGSM49AQECIQCp+1fb
+oe6pvD5mCpCdg41ybjv2I9UmICggE0gdH25TdzBEBCB9Wgl1/CwwV+72dTBBev/n
++4BVwSbcXGzpSktE8zC12QQgJtxcbOlKS0TzMLXZu9d8v5WEFilc9+HOa8zcGP+M
+B7YEQQSL0q65y35XyyxLSC/8gbevud4n4eO9I8I6RFO9ms4yYlR++DXD2sT9l/hG
+GhRhHcnCd0UTLe2OVFwdVMcvBGmXAiEAqftX26Huqbw+ZgqQnYONcYw5eqO1Yab3
+kB4OgpdIVqcCAQEDQgAELX+Bpegt/csaktDAp0eDH/HCIaiw9/vSHU9qpgVWYLsZ
+rmUB40RBAMFjKAb0bwDDsbt2lTMcdsvpwTLlIlqwfqNFMEMwEgYDVR0TAQH/BAgw
+BgEB/wIBADAdBgNVHQ4EFgQUteI9O6ECp3t3tVsOatN7jp1DTS0wDgYDVR0PAQH/
+BAQDAgEGMAsGByqGSM49BAEFAANIADBFAiEAkP5ofdFnj9rupcZXwbfjyxKY9lI2
+/+2BmZMZ+pEGQQcCIEbzKwHj7Fk5rfYfXN0wW+EEHDugLJWGU1+oQTDYNmi2
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICwDCCAmagAwIBAgICJ10wCwYHKoZIzj0EAQUAMFcxCzAJBgNVBAYTAkxWMSQw
+IgYDVQQKDBtOYXRpb25hbCBTZWN1cml0eSBBdXRob3JpdHkxFDASBgNVBAMMC0NT
+Q0EgTGF0dmlhMQwwCgYDVQQFEwMwMDIwHhcNMDkxMTE2MjIwMDAxWhcNMjIwMjE3
+MjE1OTU5WjBXMQswCQYDVQQGEwJMVjEkMCIGA1UECgwbTmF0aW9uYWwgU2VjdXJp
+dHkgQXV0aG9yaXR5MRQwEgYDVQQDDAtDU0NBIExhdHZpYTEMMAoGA1UEBRMDMDAy
+MIIBMzCB7AYHKoZIzj0CATCB4AIBATAsBgcqhkjOPQEBAiEAqftX26Huqbw+ZgqQ
+nYONcm479iPVJiAoIBNIHR9uU3cwRAQgfVoJdfwsMFfu9nUwQXr/5/uAVcEm3Fxs
+6UpLRPMwtdkEICbcXGzpSktE8zC12bvXfL+VhBYpXPfhzmvM3Bj/jAe2BEEEi9Ku
+uct+V8ssS0gv/IG3r7neJ+HjvSPCOkRTvZrOMmJUfvg1w9rE/Zf4RhoUYR3JwndF
+Ey3tjlRcHVTHLwRplwIhAKn7V9uh7qm8PmYKkJ2DjXGMOXqjtWGm95AeDoKXSFan
+AgEBA0IABEJLmld5qgzcwbAp4PJAUAafHfpnKDaZEC8EqGoXBAYsSZ83JDcHfv66
+sT6WFEYV4cdGVULJEY5VgUG6/BV9cTSjRTBDMBIGA1UdEwEB/wQIMAYBAf8CAQAw
+HQYDVR0OBBYEFJexLqpFB8O+KXUn/cMUc4PNgzkyMA4GA1UdDwEB/wQEAwIBBjAL
+BgcqhkjOPQQBBQADRwAwRAIgQxwVXcHvrvaUCoboCOEbpA48w7lixsHnI70sGRdG
+oGgCIFJN1xNEUiizvUAziGkiTuOCcrSIpY9Ej4csvdzj3GmQ
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICwDCCAmagAwIBAgICJ4cwCwYHKoZIzj0EAQUAMFcxCzAJBgNVBAYTAkxWMSQw
+IgYDVQQKDBtOYXRpb25hbCBTZWN1cml0eSBBdXRob3JpdHkxFDASBgNVBAMMC0NT
+Q0EgTGF0dmlhMQwwCgYDVQQFEwMwMDMwHhcNMTExMTE2MjIwMDAwWhcNMjQwMjE3
+MjE1OTU5WjBXMQswCQYDVQQGEwJMVjEkMCIGA1UECgwbTmF0aW9uYWwgU2VjdXJp
+dHkgQXV0aG9yaXR5MRQwEgYDVQQDDAtDU0NBIExhdHZpYTEMMAoGA1UEBRMDMDAz
+MIIBMzCB7AYHKoZIzj0CATCB4AIBATAsBgcqhkjOPQEBAiEAqftX26Huqbw+ZgqQ
+nYONcm479iPVJiAoIBNIHR9uU3cwRAQgfVoJdfwsMFfu9nUwQXr/5/uAVcEm3Fxs
+6UpLRPMwtdkEICbcXGzpSktE8zC12bvXfL+VhBYpXPfhzmvM3Bj/jAe2BEEEi9Ku
+uct+V8ssS0gv/IG3r7neJ+HjvSPCOkRTvZrOMmJUfvg1w9rE/Zf4RhoUYR3JwndF
+Ey3tjlRcHVTHLwRplwIhAKn7V9uh7qm8PmYKkJ2DjXGMOXqjtWGm95AeDoKXSFan
+AgEBA0IABFlCwbVdZWyLUEL19B8nw4d6e28C5s58kmmoL11xOXqglBsqHW6IFI4n
+SGkdj5PRVTM3Ruz6MYz+r0xDj6PSDaejRTBDMBIGA1UdEwEB/wQIMAYBAf8CAQAw
+HQYDVR0OBBYEFFmW3hwouR5Tzmic/z4S4NXEzg0yMA4GA1UdDwEB/wQEAwIBBjAL
+BgcqhkjOPQQBBQADRwAwRAIgL4cYN+ozqt5+ij58l4w7FLGDbwbIK7euaPrMATY1
+9x8CIA3B8h4932qY+ZjVxpBiGM9geVv9dmvBn/iG7Hichjuf
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICwDCCAmagAwIBAgICJ6YwCwYHKoZIzj0EAQUAMFcxCzAJBgNVBAYTAkxWMSQw
+IgYDVQQKDBtOYXRpb25hbCBTZWN1cml0eSBBdXRob3JpdHkxFDASBgNVBAMMC0NT
+Q0EgTGF0dmlhMQwwCgYDVQQFEwMwMDQwHhcNMTMxMTEyMTAwMTIzWhcNMjYwMjEy
+MTAwMTIzWjBXMQswCQYDVQQGEwJMVjEkMCIGA1UECgwbTmF0aW9uYWwgU2VjdXJp
+dHkgQXV0aG9yaXR5MRQwEgYDVQQDDAtDU0NBIExhdHZpYTEMMAoGA1UEBRMDMDA0
+MIIBMzCB7AYHKoZIzj0CATCB4AIBATAsBgcqhkjOPQEBAiEAqftX26Huqbw+ZgqQ
+nYONcm479iPVJiAoIBNIHR9uU3cwRAQgfVoJdfwsMFfu9nUwQXr/5/uAVcEm3Fxs
+6UpLRPMwtdkEICbcXGzpSktE8zC12bvXfL+VhBYpXPfhzmvM3Bj/jAe2BEEEi9Ku
+uct+V8ssS0gv/IG3r7neJ+HjvSPCOkRTvZrOMmJUfvg1w9rE/Zf4RhoUYR3JwndF
+Ey3tjlRcHVTHLwRplwIhAKn7V9uh7qm8PmYKkJ2DjXGMOXqjtWGm95AeDoKXSFan
+AgEBA0IABA+sKVRUdOyRdDI4iUnVZUgSvWoOccIGSh6XtuN27quqMYerAa5o5I+7
+HztPh2/SQiONBHBXHoYD0nvhLl17fr6jRTBDMBIGA1UdEwEB/wQIMAYBAf8CAQAw
+HQYDVR0OBBYEFHu/oc2nU9arw+X+bq/Xt0q+9q8IMA4GA1UdDwEB/wQEAwIBBjAL
+BgcqhkjOPQQBBQADRwAwRAIgdUdgcOns5Qyxl5wjwGIY5Ofm6cvXsDSiChH1bhj6
+LyMCIEiaAB2rREJyMHv0NO2sCTQib41U5/pYNDjz5MLddAnJ
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICwTCCAmagAwIBAgICJ8UwCwYHKoZIzj0EAQUAMFcxCzAJBgNVBAYTAkxWMSQw
+IgYDVQQKDBtOYXRpb25hbCBTZWN1cml0eSBBdXRob3JpdHkxFDASBgNVBAMMC0NT
+Q0EgTGF0dmlhMQwwCgYDVQQFEwMwMDUwHhcNMTUxMTEyMTIzNDQwWhcNMjgwMjEy
+MTIzNDQwWjBXMQswCQYDVQQGEwJMVjEkMCIGA1UECgwbTmF0aW9uYWwgU2VjdXJp
+dHkgQXV0aG9yaXR5MRQwEgYDVQQDDAtDU0NBIExhdHZpYTEMMAoGA1UEBRMDMDA1
+MIIBMzCB7AYHKoZIzj0CATCB4AIBATAsBgcqhkjOPQEBAiEAqftX26Huqbw+ZgqQ
+nYONcm479iPVJiAoIBNIHR9uU3cwRAQgfVoJdfwsMFfu9nUwQXr/5/uAVcEm3Fxs
+6UpLRPMwtdkEICbcXGzpSktE8zC12bvXfL+VhBYpXPfhzmvM3Bj/jAe2BEEEi9Ku
+uct+V8ssS0gv/IG3r7neJ+HjvSPCOkRTvZrOMmJUfvg1w9rE/Zf4RhoUYR3JwndF
+Ey3tjlRcHVTHLwRplwIhAKn7V9uh7qm8PmYKkJ2DjXGMOXqjtWGm95AeDoKXSFan
+AgEBA0IABBbiJGSYrnPPAhD5JROSeqXbvSZT1Vr8DsGSkEkMyY95Vulzmc+QWEh3
+q/hEn8ZpfdqRX2cZWMMS7y03qDpdyVmjRTBDMBIGA1UdEwEB/wQIMAYBAf8CAQAw
+HQYDVR0OBBYEFI9/qgtBjRYrICpx/WMazb2WX/XoMA4GA1UdDwEB/wQEAwIBBjAL
+BgcqhkjOPQQBBQADSAAwRQIgXDHWZCN0WxKfsXRM1jKu9hBNgd12Me+JpDeEwaC4
+N1UCIQCHfzMmQCn44WjNs9F8OMQ7PaCrRFKiteleOjAqTw2tHw==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIC/DCCAqKgAwIBAgIBNjAKBggqhkjOPQQDAjBBMQswCQYDVQQGEwJBRTEMMAoG
+A1UECgwDTU9JMQ4wDAYDVQQLDAVFUEFTUzEUMBIGA1UEAwwLVUFFIENTQ0EgMDEw
+HhcNMTUwNDE1MDUzNjQ4WhcNMjQwNjE0MDUzNjQ4WjBBMQswCQYDVQQGEwJBRTEM
+MAoGA1UECgwDTU9JMQ4wDAYDVQQLDAVFUEFTUzEUMBIGA1UEAwwLVUFFIENTQ0Eg
+MDEwggEzMIHsBgcqhkjOPQIBMIHgAgEBMCwGByqGSM49AQECIQCp+1fboe6pvD5m
+CpCdg41ybjv2I9UmICggE0gdH25TdzBEBCB9Wgl1/CwwV+72dTBBev/n+4BVwSbc
+XGzpSktE8zC12QQgJtxcbOlKS0TzMLXZu9d8v5WEFilc9+HOa8zcGP+MB7YEQQSL
+0q65y35XyyxLSC/8gbevud4n4eO9I8I6RFO9ms4yYlR++DXD2sT9l/hGGhRhHcnC
+d0UTLe2OVFwdVMcvBGmXAiEAqftX26Huqbw+ZgqQnYONcYw5eqO1Yab3kB4OgpdI
+VqcCAQEDQgAEesfjPgIkwdQnuATJDFr4dG+XFhxpBILo65NhNhozSMtXYW0Ic7sv
+FMY0HTVvaLMUXvooz6dYCCZdlyALcOmeqKOBrjCBqzAYBgNVHSAEETAPMA0GCysG
+AQQBgqYPAQIBMB8GA1UdIwQYMBaAFJTAQBtZEvAqsG4sqkrKqOXg9r0ZMB0GA1Ud
+DgQWBBSUwEAbWRLwKrBuLKpKyqjl4Pa9GTAOBgNVHQ8BAf8EBAMCAQYwKwYDVR0Q
+BCQwIoAPMjAxNTA0MTUwOTM2NDhagQ8yMDE5MDQxNTA5MzY0OFowEgYDVR0TAQH/
+BAgwBgEB/wIBADAKBggqhkjOPQQDAgNIADBFAiEAqS/PaU09s9RSH2fSz1nAyK6e
+wVlQKLtJEQNc6xPFSaoCIAoS+tFy7IExiwghH56Bs4qOr7TQ18P+cqUPPfr9F5JK
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDAzCCAqugAwIBAgIBATAJBgcqhkjOPQQBMFMxCzAJBgNVBAYTAkJBMQwwCgYD
+VQQKDANtY3AxDzANBgNVBAsMBmlkZGVlYTEMMAoGA1UEBRMDMDAxMRcwFQYDVQQD
+DA5jc2NhLWlkZGVlYS1iYTAeFw0xNDEwMTQwMDAwMDBaFw0yNTAyMTUwMDAwMDBa
+MFMxCzAJBgNVBAYTAkJBMQwwCgYDVQQKDANtY3AxDzANBgNVBAsMBmlkZGVlYTEM
+MAoGA1UEBRMDMDAxMRcwFQYDVQQDDA5jc2NhLWlkZGVlYS1iYTCCATMwgewGByqG
+SM49AgEwgeACAQEwLAYHKoZIzj0BAQIhAKn7V9uh7qm8PmYKkJ2DjXJuO/Yj1SYg
+KCATSB0fblN3MEQEIH1aCXX8LDBX7vZ1MEF6/+f7gFXBJtxcbOlKS0TzMLXZBCAm
+3Fxs6UpLRPMwtdm713y/lYQWKVz34c5rzNwY/4wHtgRBBIvSrrnLflfLLEtIL/yB
+t6+53ifh470jwjpEU72azjJiVH74NcPaxP2X+EYaFGEdycJ3RRMt7Y5UXB1Uxy8E
+aZcCIQCp+1fboe6pvD5mCpCdg41xjDl6o7VhpveQHg6Cl0hWpwIBAQNCAAQs8xW0
+W/A/pHxiESD3lcAN/go0SvdpI/hqQgx2Kh0h1gVtMaFC20lXGWQS4B3p3V+SkWW7
+ksyYvYq85uWk1dX2o4GUMIGRMCsGA1UdEAQkMCKADzIwMTQxMDE1MDAwMDAwWoEP
+MjAxOTEwMTUwMDAwMDBaMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUjzJnEQUq
+7vQPJuQI4Xc0Bse+SFEwHwYDVR0jBBgwFoAUjzJnEQUq7vQPJuQI4Xc0Bse+SFEw
+EgYDVR0TAQH/BAgwBgEB/wIBADAJBgcqhkjOPQQBA0cAMEQCICApmXOISVr/R3JD
+t3mQAnbOG5uUg75Lv0T3JjCNChhuAiAWMjT9/DXh86plU7Aol5ZpaDRXmLgZh0qk
+IH2gD9AogA==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDJTCCAsygAwIBAgIIAj6+LrfkMlkwCgYIKoZIzj0EAwIwdzESMBAGA1UEAwwJ
+Q1NDQUVDX0JFMTcwNQYDVQQLDC5GRURFUkFMIFBVQkxJQyBTRVJWSUNFIEZPUkVJ
+R04gQUZGQUlSUyBCRUxHSVVNMRswGQYDVQQKDBJLSU5HRE9NIE9GIEJFTEdJVU0x
+CzAJBgNVBAYTAkJFMB4XDTEzMDcwMjEyNTYzOFoXDTIzMTAxMzEyNTYzOFowdzES
+MBAGA1UEAwwJQ1NDQUVDX0JFMTcwNQYDVQQLDC5GRURFUkFMIFBVQkxJQyBTRVJW
+SUNFIEZPUkVJR04gQUZGQUlSUyBCRUxHSVVNMRswGQYDVQQKDBJLSU5HRE9NIE9G
+IEJFTEdJVU0xCzAJBgNVBAYTAkJFMIIBMzCB7AYHKoZIzj0CATCB4AIBATAsBgcq
+hkjOPQEBAiEA/////wAAAAEAAAAAAAAAAAAAAAD///////////////8wRAQg////
+/wAAAAEAAAAAAAAAAAAAAAD///////////////wEIFrGNdiqOpPns+u9VXaYhrxl
+HQawzFOw9jvOPD4n0mBLBEEEaxfR8uEsQkf4vOblY6RA8ncDfYEt6zOg9KE5RdiY
+wpZP40Li/hp/m47n60p8D54WK84zV2sxXs7LtkBoN79R9QIhAP////8AAAAA////
+//////+85vqtpxeehPO5ysL8YyVRAgEBA0IABB6cLbgBSXeRgw6EEQx5a3HVy5lO
+Tkcn2ILfEivIju85sk6Guqcg75cUuShzZL+U/kOdfSx9ZjcSvxAFGXP55lajZjBk
+MB0GA1UdDgQWBBTQ8UFo5YFIn6UszU7X+IO1qu20CzASBgNVHRMBAf8ECDAGAQH/
+AgEAMB8GA1UdIwQYMBaAFNDxQWjlgUifpSzNTtf4g7Wq7bQLMA4GA1UdDwEB/wQE
+AwIBBjAKBggqhkjOPQQDAgNHADBEAiBYQ86t7irXyk3p6LC2ivHyPHHAtKBW5mH0
+b1EnxOBHuwIgUyhRmNlRNyDlfKgr+fCTENQoVK1mYM7YqSophhfNIV0=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDLTCCArSgAwIBAgISESEnq+2BgxLPNdS51psbpjf/MAoGCCqGSM49BAMEMEEx
+CzAJBgNVBAYTAkRaMQwwCgYDVQQKEwNHb3YxDTALBgNVBAsTBE1JQ0wxFTATBgNV
+BAMTDENTQ0EtQUxHRVJJQTAeFw0xNTAyMjQwMDAwMDBaFw0zMDA0MjQwMDAwMDBa
+MEExCzAJBgNVBAYTAkRaMQwwCgYDVQQKEwNHb3YxDTALBgNVBAsTBE1JQ0wxFTAT
+BgNVBAMTDENTQ0EtQUxHRVJJQTB2MBAGByqGSM49AgEGBSuBBAAiA2IABA7TNTCp
+SCegd5pun1iGYxQh1ZuZKENX60oDm+aj2RQ3pneiPiyvvjG+SrWJSMCoLNnCqNbp
+oJXC847071rQqMUZX0OZ/11h4JkXkLU8KtwlXyAjPDBoj7N8WBsnfwJuxKOCAW0w
+ggFpMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgEGMCsGA1UdEAQk
+MCKADzIwMTUwMjI0MDAwMDAwWoEPMjAyMDAyMjQwMDAwMDBaMBsGA1UdEQQUMBKk
+EDAOMQwwCgYDVQQHEwNEWkEwGwYDVR0SBBQwEqQQMA4xDDAKBgNVBAcTA0RaQTCB
+mwYDVR0fBIGTMIGQMIGNoIGKoIGHhi1odHRwOi8vaW50ZXJpZXVyLmdvdi5kei9D
+U0NBL0NTQ0EtQUxHRVJJQS5jcmyGKmh0dHBzOi8vcGtkZG93bmxvYWQxLmljYW8u
+aW50L0NSTHMvRFpBLmNybIYqaHR0cHM6Ly9wa2Rkb3dubG9hZDIuaWNhby5pbnQv
+Q1JMcy9EWkEuY3JsMB0GA1UdDgQWBBSp04/VjhdrWkDGhL+BWKMrVY+EcjAfBgNV
+HSMEGDAWgBSp04/VjhdrWkDGhL+BWKMrVY+EcjAKBggqhkjOPQQDBANnADBkAjAR
+fajBEygyj7LuVi4wkT2f56pwWjVW2NsSbxazA0f0hFXiP2k0pDefO80j6TmMghUC
+MHtFF/xxhxGWZZIILy3DYgKCxS1KEurZXgmRbkVHkvSLYc4taVaKJpbmuBWw8mYf
+2w==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDLTCCArSgAwIBAgISESE3S6nfxC/Z86iOaeV+n+DAMAoGCCqGSM49BAMEMEEx
+CzAJBgNVBAYTAkRaMQwwCgYDVQQKEwNHb3YxDTALBgNVBAsTBE1JQ0wxFTATBgNV
+BAMTDENTQ0EtQUxHRVJJQTAeFw0yMDAxMzAwMDAwMDBaFw0zNTAzMzAwMDAwMDBa
+MEExCzAJBgNVBAYTAkRaMQwwCgYDVQQKEwNHb3YxDTALBgNVBAsTBE1JQ0wxFTAT
+BgNVBAMTDENTQ0EtQUxHRVJJQTB2MBAGByqGSM49AgEGBSuBBAAiA2IABIrKX4IR
+cPpNgjPH8j95V5KvQueRBFvfVZiWhKoW0QJ9J1QbAibWZcUOD/dvkfWu6/avUXjA
+IgQEWqQwAsiT7SuADK+h5Cy0f4CiGm8MOikZvFJCwh2spfTsPCcOViDrfKOCAW0w
+ggFpMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgEGMCsGA1UdEAQk
+MCKADzIwMjAwMTMwMDAwMDAwWoEPMjAyNTAxMzAwMDAwMDBaMBsGA1UdEQQUMBKk
+EDAOMQwwCgYDVQQHEwNEWkEwGwYDVR0SBBQwEqQQMA4xDDAKBgNVBAcTA0RaQTCB
+mwYDVR0fBIGTMIGQMIGNoIGKoIGHhi1odHRwOi8vaW50ZXJpZXVyLmdvdi5kei9D
+U0NBL0NTQ0EtQUxHRVJJQS5jcmyGKmh0dHBzOi8vcGtkZG93bmxvYWQxLmljYW8u
+aW50L0NSTHMvRFpBLmNybIYqaHR0cHM6Ly9wa2Rkb3dubG9hZDIuaWNhby5pbnQv
+Q1JMcy9EWkEuY3JsMB0GA1UdDgQWBBRf7UzTvKlfXI82c8Ya7IN7/isrUTAfBgNV
+HSMEGDAWgBRf7UzTvKlfXI82c8Ya7IN7/isrUTAKBggqhkjOPQQDBANnADBkAjBb
+PeTwBALfaE9C493mBJxB/1mfBK8qS7jJRcXYvvgZFE9kKIH5c1Sj4zYo/QiabGIC
+MAbS1KDYfO1PqBuE24A3uxo/qar5BobNDo6FUynHTIOE0GW2chwOJB8cXzVTgqkD
+FA==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDWTCCAwCgAwIBAgIBVTAKBggqhkjOPQQDAjByMQswCQYDVQQGEwJDWTEbMBkG
+A1UECgwSUmVwdWJsaWMgb2YgQ3lwcnVzMTAwLgYDVQQLDCdDaXZpbCBSZWdpc3Ry
+eSBhbmQgTWlncmF0aW9uIERlcGFydG1lbnQxFDASBgNVBAMMC0NTQ0EtQ1lQUlVT
+MB4XDTE4MTEwNDIwNDE0NloXDTMzMDIwMzA4NDE0NlowcjELMAkGA1UEBhMCQ1kx
+GzAZBgNVBAoMElJlcHVibGljIG9mIEN5cHJ1czEwMC4GA1UECwwnQ2l2aWwgUmVn
+aXN0cnkgYW5kIE1pZ3JhdGlvbiBEZXBhcnRtZW50MRQwEgYDVQQDDAtDU0NBLUNZ
+UFJVUzCCATMwgewGByqGSM49AgEwgeACAQEwLAYHKoZIzj0BAQIhAKn7V9uh7qm8
+PmYKkJ2DjXJuO/Yj1SYgKCATSB0fblN3MEQEIH1aCXX8LDBX7vZ1MEF6/+f7gFXB
+JtxcbOlKS0TzMLXZBCAm3Fxs6UpLRPMwtdm713y/lYQWKVz34c5rzNwY/4wHtgRB
+BIvSrrnLflfLLEtIL/yBt6+53ifh470jwjpEU72azjJiVH74NcPaxP2X+EYaFGEd
+ycJ3RRMt7Y5UXB1Uxy8EaZcCIQCp+1fboe6pvD5mCpCdg41xjDl6o7VhpveQHg6C
+l0hWpwIBAQNCAASCl37O34fo0GoTNWTcwxqzoP8EBkqqQ7xfKx70GfOeNhj0zDd5
+minsxuYA6zMg2yZDOUS0EDvfdcwCTte7plISo4GqMIGnMBQGA1UdIAQNMAswCQYH
+BAB/AAsBATAfBgNVHSMEGDAWgBRauPImozC/8XbIWc+CJ5uwfs2VljAdBgNVHQ4E
+FgQUWrjyJqMwv/F2yFnPgiebsH7NlZYwDgYDVR0PAQH/BAQDAgEGMCsGA1UdEAQk
+MCKADzIwMTgxMTA0MjI0MTQ2WoEPMjAyMjExMDQyMjQxNDZaMBIGA1UdEwEB/wQI
+MAYBAf8CAQAwCgYIKoZIzj0EAwIDRwAwRAIgHbvy2cnBtzO2uzWoAl8HZRWo3iqn
+6gEIeTSX4h8sWy0CIGzxyAEulDzMzwELCLLgqlawaU2vP5N5wNyLWlGrXVAU
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDWjCCAwCgAwIBAgIBFDAKBggqhkjOPQQDAjByMQswCQYDVQQGEwJDWTEbMBkG
+A1UECgwSUmVwdWJsaWMgb2YgQ3lwcnVzMTAwLgYDVQQLDCdDaXZpbCBSZWdpc3Ry
+eSBhbmQgTWlncmF0aW9uIERlcGFydG1lbnQxFDASBgNVBAMMC0NTQ0EtQ1lQUlVT
+MB4XDTExMDgwMTE0MTY1N1oXDTI1MTAzMTAyMTY1N1owcjELMAkGA1UEBhMCQ1kx
+GzAZBgNVBAoMElJlcHVibGljIG9mIEN5cHJ1czEwMC4GA1UECwwnQ2l2aWwgUmVn
+aXN0cnkgYW5kIE1pZ3JhdGlvbiBEZXBhcnRtZW50MRQwEgYDVQQDDAtDU0NBLUNZ
+UFJVUzCCATMwgewGByqGSM49AgEwgeACAQEwLAYHKoZIzj0BAQIhAKn7V9uh7qm8
+PmYKkJ2DjXJuO/Yj1SYgKCATSB0fblN3MEQEIH1aCXX8LDBX7vZ1MEF6/+f7gFXB
+JtxcbOlKS0TzMLXZBCAm3Fxs6UpLRPMwtdm713y/lYQWKVz34c5rzNwY/4wHtgRB
+BIvSrrnLflfLLEtIL/yBt6+53ifh470jwjpEU72azjJiVH74NcPaxP2X+EYaFGEd
+ycJ3RRMt7Y5UXB1Uxy8EaZcCIQCp+1fboe6pvD5mCpCdg41xjDl6o7VhpveQHg6C
+l0hWpwIBAQNCAAR08laxRyb/Nbi6NFOTEqxvsKAWlKboNJkm2vHTBcIG5zdV32zr
+INnd5UBn3dbwe9m1OwBEl+Lz0x4feU9vbZ4uo4GqMIGnMBQGA1UdIAQNMAswCQYH
+BAB/AAsBATAfBgNVHSMEGDAWgBTn2N0XWNVLQqoC24jrcB5ExpJa5jAdBgNVHQ4E
+FgQU59jdF1jVS0KqAtuI63AeRMaSWuYwDgYDVR0PAQH/BAQDAgEGMCsGA1UdEAQk
+MCKADzIwMTEwODAxMTcxNjU3WoEPMjAxNTA4MDExNzE2NTdaMBIGA1UdEwEB/wQI
+MAYBAf8CAQAwCgYIKoZIzj0EAwIDSAAwRQIgXr5JjkmgNzpjujRdK8OcT5Iire8I
+C2Nj0Mb4g7fYPmcCIQCjOiTZFsXq++k6dP5YamV44QdipWcdsUGa25py4rIxXA==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDWjCCAwCgAwIBAgIBLDAKBggqhkjOPQQDAjByMQswCQYDVQQGEwJDWTEbMBkG
+A1UECgwSUmVwdWJsaWMgb2YgQ3lwcnVzMTAwLgYDVQQLDCdDaXZpbCBSZWdpc3Ry
+eSBhbmQgTWlncmF0aW9uIERlcGFydG1lbnQxFDASBgNVBAMMC0NTQ0EtQ1lQUlVT
+MB4XDTE0MTEwNjAwMzAxM1oXDTI5MDIwNDEyMzAxM1owcjELMAkGA1UEBhMCQ1kx
+GzAZBgNVBAoMElJlcHVibGljIG9mIEN5cHJ1czEwMC4GA1UECwwnQ2l2aWwgUmVn
+aXN0cnkgYW5kIE1pZ3JhdGlvbiBEZXBhcnRtZW50MRQwEgYDVQQDDAtDU0NBLUNZ
+UFJVUzCCATMwgewGByqGSM49AgEwgeACAQEwLAYHKoZIzj0BAQIhAKn7V9uh7qm8
+PmYKkJ2DjXJuO/Yj1SYgKCATSB0fblN3MEQEIH1aCXX8LDBX7vZ1MEF6/+f7gFXB
+JtxcbOlKS0TzMLXZBCAm3Fxs6UpLRPMwtdm713y/lYQWKVz34c5rzNwY/4wHtgRB
+BIvSrrnLflfLLEtIL/yBt6+53ifh470jwjpEU72azjJiVH74NcPaxP2X+EYaFGEd
+ycJ3RRMt7Y5UXB1Uxy8EaZcCIQCp+1fboe6pvD5mCpCdg41xjDl6o7VhpveQHg6C
+l0hWpwIBAQNCAAQYjhIU5jSqRygqeUW8vRilMSUyBCfHah5FX4UAweUDdKDxsDDL
+qbOA4AuZJdaYIuqNwSwzhl2+2opLTf8ytYgro4GqMIGnMBQGA1UdIAQNMAswCQYH
+BAB/AAsBATAfBgNVHSMEGDAWgBR27LmVd5N0SQHG45L1UydCb6ELUDAdBgNVHQ4E
+FgQUduy5lXeTdEkBxuOS9VMnQm+hC1AwDgYDVR0PAQH/BAQDAgEGMCsGA1UdEAQk
+MCKADzIwMTQxMTA2MDIzMDEzWoEPMjAxODExMDYwMjMwMTNaMBIGA1UdEwEB/wQI
+MAYBAf8CAQAwCgYIKoZIzj0EAwIDSAAwRQIhAKmm0bFNRV6qUQeQ3YRNaMANGXBK
+lXaGwRcaumUMG3MBAiBobEamOqpgJ7Xqmv8bpnOsfa15hozoGK3FHnsJVAQCWA==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDmTCCAx2gAwIBAgISESAEtYVQSFOvE+Db8axy/YVbMAwGCCqGSM49BAMEBQAw
+QTELMAkGA1UEBhMCRFoxDDAKBgNVBAoTA0dvdjENMAsGA1UECxMETUlDTDEVMBMG
+A1UEAxMMQ1NDQS1BTEdFUklBMB4XDTEwMDMyNTAwMDAwMFoXDTI1MDUyNDIzMDAw
+MFowQTELMAkGA1UEBhMCRFoxDDAKBgNVBAoTA0dvdjENMAsGA1UECxMETUlDTDEV
+MBMGA1UEAxMMQ1NDQS1BTEdFUklBMIIBtTCCAU0GByqGSM49AgEwggFAAgEBMDwG
+ByqGSM49AQECMQD//////////////////////////////////////////v////8A
+AAAAAAAAAP////8wZAQw//////////////////////////////////////////7/
+////AAAAAAAAAAD////8BDCzMS+n4j7n5JiOBWvj+C0ZGB2cbv6BQRIDFAiPUBOH
+WsZWOY2KLtGdKoXI7dPsKu8EYQSqh8oivosFN46xxx7zIK10bh07Younm5hZ90Hg
+glQqOFUC8l2/VSlsOlReOHJ2Crc2F95KliYsb12emL+Sktwp+PQdvSiaFHzp2jET
+tfC4wApgsc4dfoGdekMdfJDqDl8CMQD////////////////////////////////H
+Y02B9Dct31gaDbJIsKd67OwZaszFKXMCAQEDYgAEed4osd1DfPppZULU3A76SfDh
+3v9c3QCocdoG2TvkabkKAtBhOVnnKsSxbUX/1w+DbPYhREPiVRFxMXwCtVWv2mJX
+hptMqdvqIgET7/TV1VSmX2m6SnJv74RZSuNFPmuVo4GUMIGRMBIGA1UdEwEB/wQI
+MAYBAf8CAQAwDgYDVR0PAQH/BAQDAgEGMCsGA1UdEAQkMCKADzIwMTAwMzI1MDAw
+MDAwWoEPMjAxNTAzMjUwMDAwMDBaMB0GA1UdDgQWBBSTmwLcO8X79dW7VKzqyH98
+jD0lujAfBgNVHSMEGDAWgBSTmwLcO8X79dW7VKzqyH98jD0lujAMBggqhkjOPQQD
+BAUAA2gAMGUCMQDvEWfyFO7B7G3ZvFZuiKcfpKj59gVb4kVdEwt4CAXk4sU6eL1Z
+v76j0/fBPRjfkhECMFoo2KtgqO2LFb0JMohPAP2boScS3X3V0OxrAGITtC83A5A0
+sI3Erhc3KdwiOmPy1A==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDoDCCA0egAwIBAgIBWjAKBggqhkjOPQQDAjBBMQswCQYDVQQGEwJBRTEMMAoG
+A1UECgwDTU9JMQ4wDAYDVQQLDAVFUEFTUzEUMBIGA1UEAwwLVUFFIENTQ0EgMDEw
+HhcNMTcxMDA1MTAxNzExWhcNMjYxMjA1MTAxNzExWjBBMQswCQYDVQQGEwJBRTEM
+MAoGA1UECgwDTU9JMQ4wDAYDVQQLDAVFUEFTUzEUMBIGA1UEAwwLVUFFIENTQ0Eg
+MDEwggEzMIHsBgcqhkjOPQIBMIHgAgEBMCwGByqGSM49AQECIQCp+1fboe6pvD5m
+CpCdg41ybjv2I9UmICggE0gdH25TdzBEBCB9Wgl1/CwwV+72dTBBev/n+4BVwSbc
+XGzpSktE8zC12QQgJtxcbOlKS0TzMLXZu9d8v5WEFilc9+HOa8zcGP+MB7YEQQSL
+0q65y35XyyxLSC/8gbevud4n4eO9I8I6RFO9ms4yYlR++DXD2sT9l/hGGhRhHcnC
+d0UTLe2OVFwdVMcvBGmXAiEAqftX26Huqbw+ZgqQnYONcYw5eqO1Yab3kB4OgpdI
+VqcCAQEDQgAEB4yd2p3MicAcDEhLqheFnbce5tsykV0ty6DXNM4Mb05gaj1/RFvA
+MhmQrfo6h0ealM8x1qa/7Mlh5LtgRtcrsqOCAVIwggFOMB0GA1UdDgQWBBT1qPmx
+56mSoIZUCNsqRxwEohX01zAfBgNVHSMEGDAWgBT1qPmx56mSoIZUCNsqRxwEohX0
+1zArBgNVHRAEJDAigA8yMDE3MTAwNTEwMTcxMVqBDzIwMjExMDA1MTAxNzExWjAS
+BgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjBnBgNVHR8EYDBeMFyg
+WqBYhipodHRwczovL3BrZGRvd25sb2FkMS5pY2FvLmludC9DUkxzL0FSRS5jcmyG
+Kmh0dHBzOi8vcGtkZG93bmxvYWQyLmljYW8uaW50L0NSTHMvQVJFLmNybDAbBgNV
+HREEFDASpBAwDjEMMAoGA1UEBwwDQVJFMBsGA1UdEgQUMBKkEDAOMQwwCgYDVQQH
+DANBUkUwGAYDVR0gBBEwDzANBgsrBgEEAYKmDwECATAKBggqhkjOPQQDAgNHADBE
+AiAs4EYIKjulZ0QviW+LyXlR28LlRqaS5hWwMnM6aQXOGwIgUyisdqeKtlYAteR/
+GPodNTnpKGOKavXIXpjrsRjq4U0=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDqDCCA0+gAwIBAgISESJBZXsisyqmpWhuXnnXgT/5MAoGCCqGSM49BAMCMEsx
+CzAJBgNVBAYTAk9NMQwwCgYDVQQKDANHT1YxGjAYBgNVBAsMEVJveWFsIE9tYW4g
+UG9saWNlMRIwEAYDVQQDDAlPTUFOIENTQ0EwHhcNMTkwNzAyMDAwMDAwWhcNMzQx
+MDAyMDAwMDAwWjBLMQswCQYDVQQGEwJPTTEMMAoGA1UECgwDR09WMRowGAYDVQQL
+DBFSb3lhbCBPbWFuIFBvbGljZTESMBAGA1UEAwwJT01BTiBDU0NBMIIBMzCB7AYH
+KoZIzj0CATCB4AIBATAsBgcqhkjOPQEBAiEAqftX26Huqbw+ZgqQnYONcm479iPV
+JiAoIBNIHR9uU3cwRAQgfVoJdfwsMFfu9nUwQXr/5/uAVcEm3Fxs6UpLRPMwtdkE
+ICbcXGzpSktE8zC12bvXfL+VhBYpXPfhzmvM3Bj/jAe2BEEEi9Kuuct+V8ssS0gv
+/IG3r7neJ+HjvSPCOkRTvZrOMmJUfvg1w9rE/Zf4RhoUYR3JwndFEy3tjlRcHVTH
+LwRplwIhAKn7V9uh7qm8PmYKkJ2DjXGMOXqjtWGm95AeDoKXSFanAgEBA0IABCNV
+fQI+lv2HS6AHAOCxLlmFRCJOqLD7OLx2Mh3X8KXdaZBuoi0Z7wZ63Q8I9RMpOBtt
+CGTeIihojEymHPxR5MijggE1MIIBMTASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1Ud
+DwEB/wQEAwIBBjArBgNVHRAEJDAigA8yMDE5MDcwMjAwMDAwMFqBDzIwMjQwNzAy
+MDAwMDAwWjAxBgNVHREEKjAogRRvbWFuLWNzY2FAcm9wLmdvdi5vbaQQMA4xDDAK
+BgNVBAcTA09NTjAxBgNVHRIEKjAogRRvbWFuLWNzY2FAcm9wLmdvdi5vbaQQMA4x
+DDAKBgNVBAcTA09NTjA4BgNVHR8EMTAvMC2gK6AphidodHRwczovL3d3dy5yb3Au
+Z292Lm9tL2NybC9PTUFOQ1NDQS5jcmwwHQYDVR0OBBYEFFlOTfYWfKnq0M1QGeuZ
+SxXHw2R/MB8GA1UdIwQYMBaAFFlOTfYWfKnq0M1QGeuZSxXHw2R/MAoGCCqGSM49
+BAMCA0cAMEQCIB3IkLBHpiL6cSFDk0vrqzkddts7yP1tcHSwh3nxcw9nAiANE6+X
+0QWRO/fr3IMwGuNAA+jAmPQqzt7XVZFZRVR0Hw==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDqTCCA0+gAwIBAgISESJkjErdtVa4PkZ3wfDFbBdtMAoGCCqGSM49BAMCMEsx
+CzAJBgNVBAYTAk9NMQwwCgYDVQQKDANHT1YxGjAYBgNVBAsMEVJveWFsIE9tYW4g
+UG9saWNlMRIwEAYDVQQDDAlPTUFOIENTQ0EwHhcNMTQwNzE1MDAwMDAwWhcNMjkx
+MDE1MDAwMDAwWjBLMQswCQYDVQQGEwJPTTEMMAoGA1UECgwDR09WMRowGAYDVQQL
+DBFSb3lhbCBPbWFuIFBvbGljZTESMBAGA1UEAwwJT01BTiBDU0NBMIIBMzCB7AYH
+KoZIzj0CATCB4AIBATAsBgcqhkjOPQEBAiEAqftX26Huqbw+ZgqQnYONcm479iPV
+JiAoIBNIHR9uU3cwRAQgfVoJdfwsMFfu9nUwQXr/5/uAVcEm3Fxs6UpLRPMwtdkE
+ICbcXGzpSktE8zC12bvXfL+VhBYpXPfhzmvM3Bj/jAe2BEEEi9Kuuct+V8ssS0gv
+/IG3r7neJ+HjvSPCOkRTvZrOMmJUfvg1w9rE/Zf4RhoUYR3JwndFEy3tjlRcHVTH
+LwRplwIhAKn7V9uh7qm8PmYKkJ2DjXGMOXqjtWGm95AeDoKXSFanAgEBA0IABHN3
+rJbgDDA/sjFHnenTrBAhDn0lLPfHuiMZhbqEW/bqO4qnUAHES5OaCpz5y3Sx37CL
+5yonBOXa6mqoXnteLjCjggE1MIIBMTASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1Ud
+DwEB/wQEAwIBBjArBgNVHRAEJDAigA8yMDE0MDcxNTAwMDAwMFqBDzIwMTkwNzE1
+MDAwMDAwWjAxBgNVHREEKjAogRRvbWFuLWNzY2FAcm9wLmdvdi5vbaQQMA4xDDAK
+BgNVBAcTA09NTjAxBgNVHRIEKjAogRRvbWFuLWNzY2FAcm9wLmdvdi5vbaQQMA4x
+DDAKBgNVBAcTA09NTjA4BgNVHR8EMTAvMC2gK6AphidodHRwczovL3d3dy5yb3Au
+Z292Lm9tL2NybC9PTUFOQ1NDQS5jcmwwHQYDVR0OBBYEFFw8g1x2dVtUeC0QTsNs
+9TYuJt1XMB8GA1UdIwQYMBaAFFw8g1x2dVtUeC0QTsNs9TYuJt1XMAoGCCqGSM49
+BAMCA0gAMEUCIQCL/Nre80ool26kRNCFIeAMIFJ3iqiKhVH6RxJJeRcUeAIgQ4g2
+r5cGbdgnetvu516bdg0kGJ38IgERuzKX0mTki+g=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDyzCCA3GgAwIBAgIIH2gdlCi3UIwwCgYIKoZIzj0EAwIweTEUMBIGA1UEAwwL
+Q1NDQUVDX0JFXzMxNzA1BgNVBAsMLkZFREVSQUwgUFVCTElDIFNFUlZJQ0UgRk9S
+RUlHTiBBRkZBSVJTIEJFTEdJVU0xGzAZBgNVBAoMEktJTkdET00gT0YgQkVMR0lV
+TTELMAkGA1UEBhMCQkUwHhcNMTUwNTA3MTQxNTUwWhcNMjcwOTAzMTQxNTUwWjB5
+MRQwEgYDVQQDDAtDU0NBRUNfQkVfMzE3MDUGA1UECwwuRkVERVJBTCBQVUJMSUMg
+U0VSVklDRSBGT1JFSUdOIEFGRkFJUlMgQkVMR0lVTTEbMBkGA1UECgwSS0lOR0RP
+TSBPRiBCRUxHSVVNMQswCQYDVQQGEwJCRTCCATMwgewGByqGSM49AgEwgeACAQEw
+LAYHKoZIzj0BAQIhAP////8AAAABAAAAAAAAAAAAAAAA////////////////MEQE
+IP////8AAAABAAAAAAAAAAAAAAAA///////////////8BCBaxjXYqjqT57PrvVV2
+mIa8ZR0GsMxTsPY7zjw+J9JgSwRBBGsX0fLhLEJH+Lzm5WOkQPJ3A32BLeszoPSh
+OUXYmMKWT+NC4v4af5uO5+tKfA+eFivOM1drMV7Oy7ZAaDe/UfUCIQD/////AAAA
+AP//////////vOb6racXnoTzucrC/GMlUQIBAQNCAAQ0IfhfgpvO6/MEiAA/ol/w
+H2GAt/Mm/fY6yAw0Z/EQt+gM2Y/n46GRUN1EQ6DZPYhktVpcPitjRb8EWDuqOZNw
+o4IBBTCCAQEwHQYDVR0OBBYEFAlGctIeyifZC/xAS19NcEID2YBvMBIGA1UdEwEB
+/wQIMAYBAf8CAQAwHwYDVR0jBBgwFoAUCUZy0h7KJ9kL/EBLX01wQgPZgG8wKwYD
+VR0QBCQwIoAPMjAxNTA1MDcxNDE1NTBagQ8yMDIwMDkwMzE0MTU1MFowEQYDVR0g
+BAowCDAGBgRVHSAAMDUGA1UdHwQuMCwwKqAooCaGJGh0dHA6Ly9jc2NhLXBhc3Mu
+YmVsZ2l1bS5iZS9jc2NhLmNybDAOBgNVHQ8BAf8EBAMCAQYwJAYDVR0RBB0wG4EZ
+Y3NjYS1wYXNzQGRpcGxvYmVsLmZlZC5iZTAKBggqhkjOPQQDAgNIADBFAiEAjLUA
+OvtRDQ9HKLqfv4/OB4FU7P7d6xSXkSJO0RzVhkwCIF7nlwF6F8+H755VhcZEOjf3
+fOL7xZpHrNszoRStES3J
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEFDCCA7mgAwIBAgIIeMNMBTkc578wCgYIKoZIzj0EAwIweDETMBEGA1UEAwwK
+Q1NDQV9GQV9CRTE3MDUGA1UECwwuRkVERVJBTCBQVUJMSUMgU0VSVklDRSBGT1JF
+SUdOIEFGRkFJUlMgQkVMR0lVTTEbMBkGA1UECgwSS0lOR0RPTSBPRiBCRUxHSVVN
+MQswCQYDVQQGEwJCRTAeFw0xNzA5MjgwODQ5MzlaFw0zMDAxMjUwODQ5MzlaMHgx
+EzARBgNVBAMMCkNTQ0FfRkFfQkUxNzA1BgNVBAsMLkZFREVSQUwgUFVCTElDIFNF
+UlZJQ0UgRk9SRUlHTiBBRkZBSVJTIEJFTEdJVU0xGzAZBgNVBAoMEktJTkdET00g
+T0YgQkVMR0lVTTELMAkGA1UEBhMCQkUwggEzMIHsBgcqhkjOPQIBMIHgAgEBMCwG
+ByqGSM49AQECIQD/////AAAAAQAAAAAAAAAAAAAAAP///////////////zBEBCD/
+////AAAAAQAAAAAAAAAAAAAAAP///////////////AQgWsY12Ko6k+ez671VdpiG
+vGUdBrDMU7D2O848PifSYEsEQQRrF9Hy4SxCR/i85uVjpEDydwN9gS3rM6D0oTlF
+2JjClk/jQuL+Gn+bjufrSnwPnhYrzjNXazFezsu2QGg3v1H1AiEA/////wAAAAD/
+/////////7zm+q2nF56E87nKwvxjJVECAQEDQgAE6rKjexvNXMllt2rZkijpof1i
+TR1tB2mtnDZi/Oo7bF405KvXn01KxJx8Lae7RMdCH30OrS+Br7vmghZ85TTj2aOC
+AU8wggFLMB0GA1UdDgQWBBRY2lB1MGHAsToViR1O74CphU/LdDASBgNVHRMBAf8E
+CDAGAQH/AgEAMB8GA1UdIwQYMBaAFFjaUHUwYcCxOhWJHU7vgKmFT8t0MDYGA1Ud
+EgQvMC2BGWNzY2EtcGFzc0BkaXBsb2JlbC5mZWQuYmWkEDAOMQwwCgYDVQQHDANC
+RUwwKwYDVR0QBCQwIoAPMjAxNzA5MjgwODQ5MzlagQ8yMDIzMDEyNjA4NDkzOVow
+EQYDVR0gBAowCDAGBgRVHSAAMDUGA1UdHwQuMCwwKqAooCaGJGh0dHA6Ly9jc2Nh
+LXBhc3MuYmVsZ2l1bS5iZS9jc2NhLmNybDAOBgNVHQ8BAf8EBAMCAQYwNgYDVR0R
+BC8wLYEZY3NjYS1wYXNzQGRpcGxvYmVsLmZlZC5iZaQQMA4xDDAKBgNVBAcMA0JF
+TDAKBggqhkjOPQQDAgNJADBGAiEAkvuSM+WKh2mlvBpqZiLu7b5OSHd9Ngvmwh4D
+0aCKRagCIQCM2RO0p2TVuAaVmNc5l18Yo3oKAnclPqes72rBvIOLAw==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEFTCCA72gAwIBAgIJANGoCeS7F+mTMAkGByqGSM49BAEwgY4xCzAJBgNVBAYT
+AlJVMQ8wDQYDVQQIEwZSdXNzaWExDzANBgNVBAcTBk1vc2NvdzEXMBUGA1UEChMO
+RlNVRSBTVEMgQXRsYXMxDTALBgNVBAsTBFVaSVMxFDASBgNVBAMTC0NTQ0EtUnVz
+c2lhMR8wHQYJKoZIhvcNAQkBFhBjYW1haWxAc3RjbmV0LnJ1MB4XDTE0MTExOTEy
+MDkxN1oXDTM2MTExMzEyMDkxN1owgY4xCzAJBgNVBAYTAlJVMQ8wDQYDVQQIEwZS
+dXNzaWExDzANBgNVBAcTBk1vc2NvdzEXMBUGA1UEChMORlNVRSBTVEMgQXRsYXMx
+DTALBgNVBAsTBFVaSVMxFDASBgNVBAMTC0NTQ0EtUnVzc2lhMR8wHQYJKoZIhvcN
+AQkBFhBjYW1haWxAc3RjbmV0LnJ1MIIBSzCCAQMGByqGSM49AgEwgfcCAQEwLAYH
+KoZIzj0BAQIhAP////8AAAABAAAAAAAAAAAAAAAA////////////////MFsEIP//
+//8AAAABAAAAAAAAAAAAAAAA///////////////8BCBaxjXYqjqT57PrvVV2mIa8
+ZR0GsMxTsPY7zjw+J9JgSwMVBMSdNgiG5wSTamZ44ROdJreBn36QBEEEaxfR8uEs
+Qkf4vOblY6RA8ncDfYEt6zOg9KE5RdiYwpZP40Li/hp/m47n60p8D54WK84zV2sx
+Xs7LtkBoN79R9QIhAP////8AAAAA//////////+85vqtpxeehPO5ysL8YyVRAgEB
+A0IABBKT3M8EzP1UqfWVjiIaMZYrIaQUpEo0iJNsM1yH2imbP6iAig0vSzLCui9o
+ju6EnfE3LdT2WjVn91UEKYgN73CjggENMIIBCTAdBgNVHQ4EFgQUoB6HUCdFkidg
+4tAxQDdeFHxGwAIwgcMGA1UdIwSBuzCBuIAUoB6HUCdFkidg4tAxQDdeFHxGwAKh
+gZSkgZEwgY4xCzAJBgNVBAYTAlJVMQ8wDQYDVQQIEwZSdXNzaWExDzANBgNVBAcT
+Bk1vc2NvdzEXMBUGA1UEChMORlNVRSBTVEMgQXRsYXMxDTALBgNVBAsTBFVaSVMx
+FDASBgNVBAMTC0NTQ0EtUnVzc2lhMR8wHQYJKoZIhvcNAQkBFhBjYW1haWxAc3Rj
+bmV0LnJ1ggkA0agJ5LsX6ZMwEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8E
+BAMCAQYwCQYHKoZIzj0EAQNHADBEAiBvsuI1mjwsNYCbcmtMyycWPLlGOAtbveQa
+CxjkNI/iWQIgKFp9zzAdGQ540Rp1DsWpAAMaxvDB79b1dFpbZRELnVc=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEFzCCA72gAwIBAgIJANJ6FD2S+qP4MAkGByqGSM49BAEwgY4xCzAJBgNVBAYT
+AlJVMQ8wDQYDVQQIEwZSdXNzaWExDzANBgNVBAcTBk1vc2NvdzEXMBUGA1UEChMO
+RlNVRSBTVEMgQXRsYXMxDTALBgNVBAsTBFVaSVMxFDASBgNVBAMTC0NTQ0EtUnVz
+c2lhMR8wHQYJKoZIhvcNAQkBFhBjYW1haWxAc3RjbmV0LnJ1MB4XDTE5MTAxMTEw
+MTAyM1oXDTM1MTAwNzEwMTAyM1owgY4xCzAJBgNVBAYTAlJVMQ8wDQYDVQQIEwZS
+dXNzaWExDzANBgNVBAcTBk1vc2NvdzEXMBUGA1UEChMORlNVRSBTVEMgQXRsYXMx
+DTALBgNVBAsTBFVaSVMxFDASBgNVBAMTC0NTQ0EtUnVzc2lhMR8wHQYJKoZIhvcN
+AQkBFhBjYW1haWxAc3RjbmV0LnJ1MIIBSzCCAQMGByqGSM49AgEwgfcCAQEwLAYH
+KoZIzj0BAQIhAP////8AAAABAAAAAAAAAAAAAAAA////////////////MFsEIP//
+//8AAAABAAAAAAAAAAAAAAAA///////////////8BCBaxjXYqjqT57PrvVV2mIa8
+ZR0GsMxTsPY7zjw+J9JgSwMVBMSdNgiG5wSTamZ44ROdJreBn36QBEEEaxfR8uEs
+Qkf4vOblY6RA8ncDfYEt6zOg9KE5RdiYwpZP40Li/hp/m47n60p8D54WK84zV2sx
+Xs7LtkBoN79R9QIhAP////8AAAAA//////////+85vqtpxeehPO5ysL8YyVRAgEB
+A0IABFNKqynAeO6Flom8uClFxR7RI5CPZz1qeyBgu0BN/scP+WSMuWygN5KWIQUX
+Z5fHfRS0uIfz1qlT+EpL2R996a6jggENMIIBCTAdBgNVHQ4EFgQUhQxT9xYOXe9k
+pWd898GEkgXSspwwgcMGA1UdIwSBuzCBuIAUhQxT9xYOXe9kpWd898GEkgXSspyh
+gZSkgZEwgY4xCzAJBgNVBAYTAlJVMQ8wDQYDVQQIEwZSdXNzaWExDzANBgNVBAcT
+Bk1vc2NvdzEXMBUGA1UEChMORlNVRSBTVEMgQXRsYXMxDTALBgNVBAsTBFVaSVMx
+FDASBgNVBAMTC0NTQ0EtUnVzc2lhMR8wHQYJKoZIhvcNAQkBFhBjYW1haWxAc3Rj
+bmV0LnJ1ggkA0noUPZL6o/gwEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8E
+BAMCAQYwCQYHKoZIzj0EAQNJADBGAiEA2WsmDC7lj1/fcXLvGvvueyFzeFS7qe4F
+L5xSH7WjKbMCIQDAwpGaLdgW9oDGE4Ntb3lrmmX3nX89abMUVgboa0Pq5g==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEKDCCA8+gAwIBAgIJANwdrlnS2BZbMAkGByqGSM49BAEwgZQxCzAJBgNVBAYT
+AlJVMRswGQYDVQQIExJSdXNzaWFuIEZlZGVyYXRpb24xDzANBgNVBAcTBk1vc2Nv
+dzESMBAGA1UEChMJU1RDIEF0bGFzMQwwCgYDVQQLEwNTWkQxFDASBgNVBAMTC0NT
+Q0EtUnVzc2lhMR8wHQYJKoZIhvcNAQkBFhBjYW1haWxAc3RjbmV0LnJ1MB4XDTEw
+MDIwNTA4MzE0NVoXDTMyMDEzMTA4MzE0NVowgZQxCzAJBgNVBAYTAlJVMRswGQYD
+VQQIExJSdXNzaWFuIEZlZGVyYXRpb24xDzANBgNVBAcTBk1vc2NvdzESMBAGA1UE
+ChMJU1RDIEF0bGFzMQwwCgYDVQQLEwNTWkQxFDASBgNVBAMTC0NTQ0EtUnVzc2lh
+MR8wHQYJKoZIhvcNAQkBFhBjYW1haWxAc3RjbmV0LnJ1MIIBSzCCAQMGByqGSM49
+AgEwgfcCAQEwLAYHKoZIzj0BAQIhAP////8AAAABAAAAAAAAAAAAAAAA////////
+////////MFsEIP////8AAAABAAAAAAAAAAAAAAAA///////////////8BCBaxjXY
+qjqT57PrvVV2mIa8ZR0GsMxTsPY7zjw+J9JgSwMVBMSdNgiG5wSTamZ44ROdJreB
+n36QBEEEaxfR8uEsQkf4vOblY6RA8ncDfYEt6zOg9KE5RdiYwpZP40Li/hp/m47n
+60p8D54WK84zV2sxXs7LtkBoN79R9QIhAP////8AAAAA//////////+85vqtpxee
+hPO5ysL8YyVRAgEBA0IABFgXbfjKUQhG14XIHLlpseIqYugSweVrgQWnbbfvlGX6
+pcBrLM/JoDcAOi4WlkILJGGU49ybVJ+83B/vr4TSAnejggETMIIBDzAdBgNVHQ4E
+FgQUVlmZiaHMHBPTn7ywyHcAOFAzpTMwgckGA1UdIwSBwTCBvoAUVlmZiaHMHBPT
+n7ywyHcAOFAzpTOhgZqkgZcwgZQxCzAJBgNVBAYTAlJVMRswGQYDVQQIExJSdXNz
+aWFuIEZlZGVyYXRpb24xDzANBgNVBAcTBk1vc2NvdzESMBAGA1UEChMJU1RDIEF0
+bGFzMQwwCgYDVQQLEwNTWkQxFDASBgNVBAMTC0NTQ0EtUnVzc2lhMR8wHQYJKoZI
+hvcNAQkBFhBjYW1haWxAc3RjbmV0LnJ1ggkA3B2uWdLYFlswEgYDVR0TAQH/BAgw
+BgEB/wIBADAOBgNVHQ8BAf8EBAMCAQYwCQYHKoZIzj0EAQNIADBFAiAEo0jligNV
+t8laftPk8x/toeyQyaGBfJHBxXOFNl/UEAIhAPsznr12itghRhgyEE8AROl+WsIT
+eOG4EX0HFk0NZXfT
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEQjCCA8igAwIBAgIIFtqXlpn5A1YwCgYIKoZIzj0EAwMwPzELMAkGA1UEBhMC
+QVQxCzAJBgNVBAoMAkdWMQwwCgYDVQQLDANCTUkxFTATBgNVBAMMDENTQ0EtQVVT
+VFJJQTAeFw0xOTA5MDIwNzEzNDRaFw0zNDEyMDYwNzEzNDRaMD8xCzAJBgNVBAYT
+AkFUMQswCQYDVQQKDAJHVjEMMAoGA1UECwwDQk1JMRUwEwYDVQQDDAxDU0NBLUFV
+U1RSSUEwggG1MIIBTQYHKoZIzj0CATCCAUACAQEwPAYHKoZIzj0BAQIxAIy5HoKj
+OG0oD11vflDmQd8VL3EJ7VRWtBKx2hl/txEjrNOnKZAdGnGHRwATMQfsUzBkBDB7
+w4LGPYwVDDxyCArOBa+gwr6ijk+yJ4cTkWXvupH5D4qlgUpQOtTrBKjH3SLOKCYE
+MASox90izigmizm1VBbwRHwvt33hB9zSpi6IDqU+62LVfLQ5ApXbyZQ6t4aW+lBM
+EQRhBB0cZPBoz0X/oqY6gbfBP2uIR6PnfvFP49t/yv4MvRDo6CbgNDbWRqrvh7Li
+R9SvHoq+HXUg+cKkXLHrjpXP1VJitwsp/uxYZOGcBU/5kSkoDkZGIXeRgRFCggNB
+JjxTFQIxAIy5HoKjOG0oD11vflDmQd8VL3EJ7VRWsx8WbmysBCWnzzq2r2t/wxA7
+iDIC6QRlZQIBAQNiAARDw8YCZxbgqjALOxkz6FpjmsGDSIwjXs08U+qwG5G20Mbe
+IYcLHqkuLK+KlwCWz4KMXssQeCxblpdnKh5R22SIPj7EquIwAt3ccXbH6ZQ5Pjwg
+bc9RNxCoLKLXCuUtY22jggFOMIIBSjAdBgNVHQ4EFgQUJpLH45ir++NRktPybpox
+fR/tU70wEgYDVR0TAQH/BAgwBgEB/wIBADAfBgNVHSMEGDAWgBQmksfjmKv741GS
+0/JumjF9H+1TvTAaBgNVHRAEEzARgQ8yMDI0MTIwOTA3MTM0NFowFgYDVR0gBA8w
+DTALBgkqKAAKAQIBAQEwPgYDVR0fBDcwNTAzoDGgL4YtaHR0cDovL3d3dy5ibWku
+Z3YuYXQvY3NjYS9jcmwvQ1NDQUFVU1RSSUEuY3JsMA4GA1UdDwEB/wQEAwIBBjA3
+BgNVHRIEMDAupBAwDjEMMAoGA1UEBwwDQVVUhhpodHRwOi8vd3d3LmJtaS5ndi5h
+dC9jc2NhLzA3BgNVHREEMDAupBAwDjEMMAoGA1UEBwwDQVVUhhpodHRwOi8vd3d3
+LmJtaS5ndi5hdC9jc2NhLzAKBggqhkjOPQQDAwNoADBlAjA0jEdGV11muX1j6OGk
+XeioRMXc7QQbP5niAGoxCU3W7UY/OKeUo+PxaTwm1Yafdo4CMQCFEdJjB28RbLhe
+MVT9Oh7MhLbPN6rjSFrpIzLvclb+4Uf1oHty/O6TyP603NUcUZY=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIERTCCA+ugAwIBAgIEXQDTkTAKBggqhkjOPQQDAjCBhDELMAkGA1UEBhMCUlcx
+GzAZBgNVBAoMElJlcHVibGljIG9mIFJ3YW5kYTESMBAGA1UECwwJZVBhc3Nwb3J0
+MSIwIAYDVQQLDBlDZXJ0aWZpY2F0aW9uIEF1dGhvcml0aWVzMSAwHgYDVQQDDBdS
+ZXB1YmxpYyBvZiBSd2FuZGEgQ1NDQTAeFw0xOTA2MTIwOTU4MDFaFw0zNTAxMTIx
+MDI4MDFaMIGEMQswCQYDVQQGEwJSVzEbMBkGA1UECgwSUmVwdWJsaWMgb2YgUndh
+bmRhMRIwEAYDVQQLDAllUGFzc3BvcnQxIjAgBgNVBAsMGUNlcnRpZmljYXRpb24g
+QXV0aG9yaXRpZXMxIDAeBgNVBAMMF1JlcHVibGljIG9mIFJ3YW5kYSBDU0NBMIIB
+SzCCAQMGByqGSM49AgEwgfcCAQEwLAYHKoZIzj0BAQIhAP////8AAAABAAAAAAAA
+AAAAAAAA////////////////MFsEIP////8AAAABAAAAAAAAAAAAAAAA////////
+///////8BCBaxjXYqjqT57PrvVV2mIa8ZR0GsMxTsPY7zjw+J9JgSwMVAMSdNgiG
+5wSTamZ44ROdJreBn36QBEEEaxfR8uEsQkf4vOblY6RA8ncDfYEt6zOg9KE5RdiY
+wpZP40Li/hp/m47n60p8D54WK84zV2sxXs7LtkBoN79R9QIhAP////8AAAAA////
+//////+85vqtpxeehPO5ysL8YyVRAgEBA0IABKr04UQVWQWUjEPRpznLR77AaJeG
+mfrRl40rcd6/drccv4M5CtPVLHFr7FGGwByYzvWWClHFpUNMbkhTfROd99ujggFT
+MIIBTzA6BgNVHRIEMzAxgR1lcGFzc3BvcnRwa2lAbWlncmF0aW9uLmdvdi5yd6QQ
+MA4xDDAKBgNVBAcMA1JXQTA6BgNVHREEMzAxgR1lcGFzc3BvcnRwa2lAbWlncmF0
+aW9uLmdvdi5yd6QQMA4xDDAKBgNVBAcMA1JXQTAOBgNVHQ8BAf8EBAMCAQYwEgYD
+VR0TAQH/BAgwBgEB/wIBADBEBgNVHR8EPTA7MDmgN6A1hjNodHRwOi8vd3d3LnBr
+aS5taWdyYXRpb24uZ292LnJ3L0NSTHMvUndhbmRhQ1NDQS5jcmwwKwYDVR0QBCQw
+IoAPMjAxOTA2MTIwOTU4MDFagQ8yMDI0MDYxMjA3NDAzMlowHwYDVR0jBBgwFoAU
+uxxjqYN867AeNN9aRaSlL2HTEG8wHQYDVR0OBBYEFLscY6mDfOuwHjTfWkWkpS9h
+0xBvMAoGCCqGSM49BAMCA0gAMEUCICw8QRLq/D9+5he10JWNpbzfR7qNlquMIWNs
+lGNkEVcMAiEA4kTsX240Ctf23oi4zDP4OYKhUHGJ6o9TKWZvi6UCSjY=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIERzCCAq+gAwIBAgIEAQAAATANBgkqhkiG9w0BAQsFADBCMRcwFQYDVQQDDA5D
+U0NBIE1hY2Vkb25pYTEMMAoGA1UECwwDTU9JMQwwCgYDVQQKDANHT1YxCzAJBgNV
+BAYTAk1LMB4XDTA3MDMyODE2NDkxM1oXDTIyMDYyODE2NDkxM1owQjEXMBUGA1UE
+AwwOQ1NDQSBNYWNlZG9uaWExDDAKBgNVBAsMA01PSTEMMAoGA1UECgwDR09WMQsw
+CQYDVQQGEwJNSzCCAaIwDQYJKoZIhvcNAQEBBQADggGPADCCAYoCggGBAJxE1y0q
+U1svsM1Z4LG8yrys+Qa3XB4iE2KJZk2D/38p41Aoe3XM0eFebp5AV6+bMjo0Qa4S
+ii3QgNdJOWJEBg4by8jMqOCW/s5O4jNb3fU105gz2mlizdN25U4wmYVgxMEuDtdP
+rm1PTM97vAUs+8zBqcqyZkSN8fF7Tc/5y9R0GtL33Ohj66jmXLdmk79PSJozsY6P
+qvrgnc/XLkA5IgcGvC2eJE7fEGShw0DAW7tlqcobeik1eIhYJGB0kOiX02eZbmU+
+e8hp9K4XpA1BfW1MBEwzY5jWCRSGktZ2q39LgI1NedTMQBPt4nNxkq4pqDtQ6PWB
+L2NoMRJWVjqh4D+zx2r1VnpvNkYzbDek0+O/1Il72Lj4NsZsGMfYa+TWhwOi9nd4
+gulRLI4eXWbHEof27kAGE+XfgEhXEGuLVpQX+SsW7C2EB5Nuhj2S/D2LFYIqn0Ci
+/vkGmHaEqPOpmYlWXHDBFRAYUBYrx58vw5JKibqJSLZVERAcagc/J4+39wIDAQAB
+o0UwQzASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4E
+FgQUlUb7AHMye+lR6AxP0G9tPU5mjXswDQYJKoZIhvcNAQELBQADggGBAGWqg7vi
+w4512HcfYqSwZkA/8EfZPtWmSJp9QaVqYvGZNE4Pt77SVMonP5TtbUPHFs85RamY
+YphTxqrBQNpooOyw7GitWXYh/wTqKra9rkz0J93EKkJ91GvSbkFluBNRMP3QD2SN
+BVCXbNyO4wNEFQ8KfjTiX8y8xnAlHLPysMaOpZVvJbM5eIGVGw4qBsv2Ja8h6IjE
+mAC6/96dFBlK6Q6WC2qkg8vBVQflb5IZEBE3mn0VnLVzAVyE41fAsl2J8htvR7Hd
+FAnVxQaxNcVjoxu1uggnto6nDeUSYHiGYAyh5p7GoC4/XdJ1Mm8bnb/IYxhbHlGV
+0N9t6QB7MoXi7symQV+hrJhfiBIBWbfTNZX25c8jhrQVAXT++i+/5MQBKuXShREC
+botIWJ83u6f3U2yjjER1Sxdc5X5/W4yoa7/YUVB+yxNa6eHb9d9F6ym2ji0UE1Ne
+WsZSwtcPNHPNiEe8rlzOcpObA9+U8Ft7ZXcEsdKhm87srADVOhXAOQCHVw==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEUjCCA9igAwIBAgINANcV9x+HX1uVE5eeCjAKBggqhkjOPQQDAjBRMRUwEwYD
+VQQDDAxDU0NBIEhVTkdBUlkxHTAbBgNVBAsMFE1pbmlzdHJ5IG9mIEludGVyaW9y
+MQwwCgYDVQQKDANHT1YxCzAJBgNVBAYTAkhVMB4XDTIwMTAyMDA5MTUwM1oXDTM0
+MDEyMDA5MTUwM1owUTEVMBMGA1UEAwwMQ1NDQSBIVU5HQVJZMR0wGwYDVQQLDBRN
+aW5pc3RyeSBvZiBJbnRlcmlvcjEMMAoGA1UECgwDR09WMQswCQYDVQQGEwJIVTCC
+AbUwggFNBgcqhkjOPQIBMIIBQAIBATA8BgcqhkjOPQEBAjEA////////////////
+//////////////////////////7/////AAAAAAAAAAD/////MGQEMP//////////
+///////////////////////////////+/////wAAAAAAAAAA/////AQwszEvp+I+
+5+SYjgVr4/gtGRgdnG7+gUESAxQIj1ATh1rGVjmNii7RnSqFyO3T7CrvBGEEqofK
+Ir6LBTeOscce8yCtdG4dO2KLp5uYWfdB4IJUKjhVAvJdv1UpbDpUXjhydgq3Nhfe
+SpYmLG9dnpi/kpLcKfj0Hb0omhR86doxE7XwuMAKYLHOHX6BnXpDHXyQ6g5fAjEA
+////////////////////////////////x2NNgfQ3Ld9YGg2ySLCneuzsGWrMxSlz
+AgEBA2IABIrUa9r93fYmI9mhjcofFPq45Zhgv/eRTOk3wMtvUgbPIrg6QVH9b33h
+gC8zVQqwyudfoXlrAmWwI+fAQVndnKXF2Ef2HaUyTA+3kJkUkjdjMr4YsilHMsli
+chUCcIIly6OCATUwggExMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQD
+AgEGMB0GA1UdDgQWBBTldkNgouiIHq9OrU8BuHm8RmsuxjArBgNVHRAEJDAigA8y
+MDIwMTAyMDA5MTUwM1qBDzIwMjMxMDIwMDkxNTAzWjANBgdngQgBAQYBBAIFADAz
+BgNVHREELDAqgRZjc2NhLWh1bmdhcnlAYm0uZ292Lmh1pBAwDjEMMAoGA1UEBwwD
+SFVOMDMGA1UdEgQsMCqBFmNzY2EtaHVuZ2FyeUBibS5nb3YuaHWkEDAOMQwwCgYD
+VQQHDANIVU4wRgYDVR0fBD8wPTA7oDmgN4Y1aHR0cDovL255aWx2YW50YXJ0by5o
+dS9sZXRvbHRlcy9DU0NBL0NTQ0EtSFVOR0FSWS5jcmwwCgYIKoZIzj0EAwIDaAAw
+ZQIxAK8dZxK7/U3Z1pV2BppVy5vuLYdClVtf6wtmAM/dg5lXYkybbv4up4ptd+GZ
+TsOn+wIwSsEuBpc2kC0HIzeG9xAC3fJXN2Gm/67pBGHI5ffpH+7fC/Mvkhjtexyb
+uHfzDYVO
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEjTCCBBSgAwIBAgIBJjAKBggqhkjOPQQDAzBXMQswCQYDVQQGEwJMVjEkMCIG
+A1UECgwbTmF0aW9uYWwgU2VjdXJpdHkgQXV0aG9yaXR5MRQwEgYDVQQDDAtDU0NB
+IExhdHZpYTEMMAoGA1UEBRMDMDA3MB4XDTE5MDczMTA4MDYwN1oXDTMyMTAzMTA5
+MDYwN1owVzELMAkGA1UEBhMCTFYxJDAiBgNVBAoMG05hdGlvbmFsIFNlY3VyaXR5
+IEF1dGhvcml0eTEUMBIGA1UEAwwLQ1NDQSBMYXR2aWExDDAKBgNVBAUTAzAwNzCC
+AbUwggFNBgcqhkjOPQIBMIIBQAIBATA8BgcqhkjOPQEBAjEAjLkegqM4bSgPXW9+
+UOZB3xUvcQntVFa0ErHaGX+3ESOs06cpkB0acYdHABMxB+xTMGQEMHvDgsY9jBUM
+PHIICs4Fr6DCvqKOT7InhxORZe+6kfkPiqWBSlA61OsEqMfdIs4oJgQwBKjH3SLO
+KCaLObVUFvBEfC+3feEH3NKmLogOpT7rYtV8tDkCldvJlDq3hpb6UEwRBGEEHRxk
+8GjPRf+ipjqBt8E/a4hHo+d+8U/j23/K/gy9EOjoJuA0NtZGqu+HsuJH1K8eir4d
+dSD5wqRcseuOlc/VUmK3Cyn+7Fhk4ZwFT/mRKSgORkYhd5GBEUKCA0EmPFMVAjEA
+jLkegqM4bSgPXW9+UOZB3xUvcQntVFazHxZubKwEJafPOrava3/DEDuIMgLpBGVl
+AgEBA2IABIYx+qLf5HTBwPFyHP9594d8Cmn5TflGdnG8tWRXW9ZN+jsZx9HGlWbO
+Q2mNSpRUBmnig1e+BydH8ZS7MgH/G6HtINanjJj5YDtQC1RKuwYsXvD8sfQ9NwEE
+lxWrq4QdxqOCAXEwggFtMB0GA1UdDgQWBBTEweHhBA3E+w0HThTTg6GY4NmyaTAr
+BgNVHRAEJDAigA8yMDE5MDczMTA4MDYwN1qBDzIwMjIwNzMxMDgwNjA3WjANBgdn
+gQgBAQYBBAIFADASBgNVHRMBAf8ECDAGAQH/AgEAMB8GA1UdIwQYMBaAFMTB4eEE
+DcT7DQdOFNODoZjg2bJpMA4GA1UdDwEB/wQEAwIBBjBtBgNVHR8EZjBkMDCgLqAs
+hipodHRwczovL3BrZGRvd25sb2FkMS5pY2FvLmludC9DUkxzL0xWQS5jcmwwMKAu
+oCyGKmh0dHBzOi8vcGtkZG93bmxvYWQyLmljYW8uaW50L0NSTHMvTFZBLmNybDAt
+BgNVHREEJjAkpBAwDjEMMAoGA1UEBwwDTFZBgRBucGtkQHBtbHAuZ292Lmx2MC0G
+A1UdEgQmMCSkEDAOMQwwCgYDVQQHDANMVkGBEG5wa2RAcG1scC5nb3YubHYwCgYI
+KoZIzj0EAwMDZwAwZAIwZglEJbodOCDqRIvu4vudpn5BmRCafasH30JZ+5cu+vMq
+d/5CmXDdAjiiH/h8PD0LAjAPCVzl4DtEI/AkvrncQoMisjE0uRIeHWVs7w922LA1
+pb4Jjy6iTslB3xo9lauVd0g=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEjTCCBBSgAwIBAgIBNjAKBggqhkjOPQQDAzBXMQswCQYDVQQGEwJMVjEkMCIG
+A1UECgwbTmF0aW9uYWwgU2VjdXJpdHkgQXV0aG9yaXR5MRQwEgYDVQQDDAtDU0NB
+IExhdHZpYTEMMAoGA1UEBRMDMDA4MB4XDTIwMDYyOTEzNDU1OVoXDTMzMDkyOTEz
+NDU1OVowVzELMAkGA1UEBhMCTFYxJDAiBgNVBAoMG05hdGlvbmFsIFNlY3VyaXR5
+IEF1dGhvcml0eTEUMBIGA1UEAwwLQ1NDQSBMYXR2aWExDDAKBgNVBAUTAzAwODCC
+AbUwggFNBgcqhkjOPQIBMIIBQAIBATA8BgcqhkjOPQEBAjEAjLkegqM4bSgPXW9+
+UOZB3xUvcQntVFa0ErHaGX+3ESOs06cpkB0acYdHABMxB+xTMGQEMHvDgsY9jBUM
+PHIICs4Fr6DCvqKOT7InhxORZe+6kfkPiqWBSlA61OsEqMfdIs4oJgQwBKjH3SLO
+KCaLObVUFvBEfC+3feEH3NKmLogOpT7rYtV8tDkCldvJlDq3hpb6UEwRBGEEHRxk
+8GjPRf+ipjqBt8E/a4hHo+d+8U/j23/K/gy9EOjoJuA0NtZGqu+HsuJH1K8eir4d
+dSD5wqRcseuOlc/VUmK3Cyn+7Fhk4ZwFT/mRKSgORkYhd5GBEUKCA0EmPFMVAjEA
+jLkegqM4bSgPXW9+UOZB3xUvcQntVFazHxZubKwEJafPOrava3/DEDuIMgLpBGVl
+AgEBA2IABGX0imoF0qGn8Dig3JCdVyAj5C4RljjkgJdDYYX29GtAB8qBzpcNZ55B
+V0rUciPngg1WC+e72lpwgfcpwPUw7EBT+Emt1Wi78wBHUVMn0mSrr4Z7Nch9JKH4
+7T3AOROMCqOCAXEwggFtMB8GA1UdIwQYMBaAFLcnSNHjUGL39r1bLfQ+uMy4YB6g
+MBIGA1UdEwEB/wQIMAYBAf8CAQAwDQYHZ4EIAQEGAQQCBQAwKwYDVR0QBCQwIoAP
+MjAyMDA2MjkxMzQ1NTlagQ8yMDIzMDYyOTEzNDU1OVowHQYDVR0OBBYEFLcnSNHj
+UGL39r1bLfQ+uMy4YB6gMC0GA1UdEgQmMCSkEDAOMQwwCgYDVQQHDANMVkGBEG5w
+a2RAcG1scC5nb3YubHYwLQYDVR0RBCYwJKQQMA4xDDAKBgNVBAcMA0xWQYEQbnBr
+ZEBwbWxwLmdvdi5sdjBtBgNVHR8EZjBkMDCgLqAshipodHRwczovL3BrZGRvd25s
+b2FkMS5pY2FvLmludC9DUkxzL0xWQS5jcmwwMKAuoCyGKmh0dHBzOi8vcGtkZG93
+bmxvYWQyLmljYW8uaW50L0NSTHMvTFZBLmNybDAOBgNVHQ8BAf8EBAMCAQYwCgYI
+KoZIzj0EAwMDZwAwZAIwC4wE9tWE8tnyv1O9pcMgqtjcltkEaRA1HL/jlOhpRhWH
+H6iXTdIiwuw29i/JgXwpAjBXLHbhizgEgOiuzWd+Sl4TqX7tUrDVnThP6ZIB9fAK
+JdcjpjdN31Phm7Bk4hsce3s=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEjjCCBBOgAwIBAgIESS7rKTAKBggqhkjOPQQDAzBBMQswCQYDVQQGEwJHQjEO
+MAwGA1UEChMFVUtLUEExIjAgBgNVBAMTGUNvdW50cnkgU2lnbmluZyBBdXRob3Jp
+dHkwHhcNMTYwOTA5MTAyNjMxWhcNMzMwMTA5MTA1NjMxWjBBMQswCQYDVQQGEwJH
+QjEOMAwGA1UEChMFVUtLUEExIjAgBgNVBAMTGUNvdW50cnkgU2lnbmluZyBBdXRo
+b3JpdHkwggHMMIIBZAYHKoZIzj0CATCCAVcCAQEwPAYHKoZIzj0BAQIxAP//////
+///////////////////////////////////+/////wAAAAAAAAAA/////zB7BDD/
+/////////////////////////////////////////v////8AAAAAAAAAAP////wE
+MLMxL6fiPufkmI4Fa+P4LRkYHZxu/oFBEgMUCI9QE4daxlY5jYou0Z0qhcjt0+wq
+7wMVAKM1kmqjGaJ6HQCJamdzpIJ6zaxzBGEEqofKIr6LBTeOscce8yCtdG4dO2KL
+p5uYWfdB4IJUKjhVAvJdv1UpbDpUXjhydgq3NhfeSpYmLG9dnpi/kpLcKfj0Hb0o
+mhR86doxE7XwuMAKYLHOHX6BnXpDHXyQ6g5fAjEA////////////////////////
+////////x2NNgfQ3Ld9YGg2ySLCneuzsGWrMxSlzAgEBA2IABGCi/3XqrTwye7VZ
+rhZMAYxYsU8TKMTJCCOeSpFyJFKUd2t+/dmnA+A7yFfR/xjeFBGjW1AtkHKP1G0a
+Vtt2lFgTGlL1JWT2As7I7l9RvGywXzCSA+TXPUIfD/CfvC4sIaOCAYIwggF+MA4G
+A1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/AgEAMEAGA1UdEQQ5MDeBI2Rv
+Y3VtZW50LnRlY2hub2xvZ3lAaG1wby5nc2kuZ292LnVrpBAwDjEMMAoGA1UEBxMD
+R0JSMEAGA1UdEgQ5MDeBI2RvY3VtZW50LnRlY2hub2xvZ3lAaG1wby5nc2kuZ292
+LnVrpBAwDjEMMAoGA1UEBxMDR0JSMGcGA1UdHwRgMF4wXKBaoFiGKmh0dHBzOi8v
+cGtkZG93bmxvYWQxLmljYW8uaW50L0NSTHMvR0JSLmNybIYqaHR0cHM6Ly9wa2Rk
+b3dubG9hZDIuaWNhby5pbnQvQ1JMcy9HQlIuY3JsMCsGA1UdEAQkMCKADzIwMTYw
+OTA5MTAyNjMxWoEPMjAyMTEwMDIyMTU4NTVaMB8GA1UdIwQYMBaAFNsdFlfHYCMI
+mwE54mE8CCE0tXyhMB0GA1UdDgQWBBTbHRZXx2AjCJsBOeJhPAghNLV8oTAKBggq
+hkjOPQQDAwNpADBmAjEAqn+jBkjRRg3R4wNsB9G9RGoQNyRcURJFz5jiy1EX7DHE
+7iQkvO9FKbHFVlw6RFipAjEAt0vN2ZqvRdo/nPs3yYTkR8bwH5chaiAQOUOulzW1
+BoA5LSiqPfMV6+EPfBMtiahc
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEjzCCBBSgAwIBAgIBATAKBggqhkjOPQQDAzBXMQswCQYDVQQGEwJMVjEkMCIG
+A1UECgwbTmF0aW9uYWwgU2VjdXJpdHkgQXV0aG9yaXR5MRQwEgYDVQQDDAtDU0NB
+IExhdHZpYTEMMAoGA1UEBRMDMDA2MB4XDTE3MDcxOTA3MDg0N1oXDTI5MTAxOTA3
+MDg0N1owVzELMAkGA1UEBhMCTFYxJDAiBgNVBAoMG05hdGlvbmFsIFNlY3VyaXR5
+IEF1dGhvcml0eTEUMBIGA1UEAwwLQ1NDQSBMYXR2aWExDDAKBgNVBAUTAzAwNjCC
+AbUwggFNBgcqhkjOPQIBMIIBQAIBATA8BgcqhkjOPQEBAjEAjLkegqM4bSgPXW9+
+UOZB3xUvcQntVFa0ErHaGX+3ESOs06cpkB0acYdHABMxB+xTMGQEMHvDgsY9jBUM
+PHIICs4Fr6DCvqKOT7InhxORZe+6kfkPiqWBSlA61OsEqMfdIs4oJgQwBKjH3SLO
+KCaLObVUFvBEfC+3feEH3NKmLogOpT7rYtV8tDkCldvJlDq3hpb6UEwRBGEEHRxk
+8GjPRf+ipjqBt8E/a4hHo+d+8U/j23/K/gy9EOjoJuA0NtZGqu+HsuJH1K8eir4d
+dSD5wqRcseuOlc/VUmK3Cyn+7Fhk4ZwFT/mRKSgORkYhd5GBEUKCA0EmPFMVAjEA
+jLkegqM4bSgPXW9+UOZB3xUvcQntVFazHxZubKwEJafPOrava3/DEDuIMgLpBGVl
+AgEBA2IABC5F8Cxy3+yuPTq5Wt6R+q9M5Z4PmAK2hCjxrU533v5gmGMllotYmOZY
+kT6Y+YsonQwSdcR0Nl2Aeh5zBuKqJQo0fl8FZmzPy/0nMW5UaI3p3ZTs3b4vac54
+AqU/F5YTzKOCAXEwggFtMB0GA1UdDgQWBBSWY40USDp+AaurQM6C3Zt1b0ZxlDAN
+BgdngQgBAQYBBAIFADASBgNVHRMBAf8ECDAGAQH/AgEAMC0GA1UdEgQmMCSkEDAO
+MQwwCgYDVQQHDANMVkGBEG5wa2RAcG1scC5nb3YubHYwHwYDVR0jBBgwFoAUlmON
+FEg6fgGrq0DOgt2bdW9GcZQwDgYDVR0PAQH/BAQDAgEGMG0GA1UdHwRmMGQwMKAu
+oCyGKmh0dHBzOi8vcGtkZG93bmxvYWQxLmljYW8uaW50L0NSTHMvTFZBLmNybDAw
+oC6gLIYqaHR0cHM6Ly9wa2Rkb3dubG9hZDIuaWNhby5pbnQvQ1JMcy9MVkEuY3Js
+MCsGA1UdEAQkMCKADzIwMTcwNzE5MDcwODQ3WoEPMjAxOTA3MTkwNzA4NDdaMC0G
+A1UdEQQmMCSkEDAOMQwwCgYDVQQHDANMVkGBEG5wa2RAcG1scC5nb3YubHYwCgYI
+KoZIzj0EAwMDaQAwZgIxAIOcTMQoFIvmHAm47HEsaPZAW+AcOzg/e2WWEbWQ1Brf
+a6PYNEYCdSLIMqRjPxJa6QIxAIqtoJtEIBd+FjhAWMq80nLBv1WoRz+jZ/Xduyyo
+gM8p3MeyWVS+jfbMF+QYp7BhEw==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEoTCCAwmgAwIBAgIETmSvwTANBgkqhkiG9w0BAQsFADBHMQswCQYDVQQGEwJE
+SzEbMBkGA1UEChMSS2luZ2RvbSBvZiBEZW5tYXJrMRswGQYDVQQDExJDb3VudHJ5
+IFNpZ25pbmcgQ0EwHhcNMTEwOTA1MTA0NzIyWhcNMjcwNTA1MTExNzIyWjBHMQsw
+CQYDVQQGEwJESzEbMBkGA1UEChMSS2luZ2RvbSBvZiBEZW5tYXJrMRswGQYDVQQD
+ExJDb3VudHJ5IFNpZ25pbmcgQ0EwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGK
+AoIBgQCws6lEwWGit/eldQWQNSOczigv/GPjJrEz8vJXC5LRU39WlgubZG4mSYZn
+gyN/fcis9W9MrokkqEx2AIJWLOE4Xc0kfMFcQ4FVGZgKy7VqAE6x8BfBkflQmms0
+W0m+epruQ8eCY97+8+xEvezamO3H7jvs/JUsB2AHNtsTn2EHL96vu8MsB+uWjXGY
+pEX+zWJqoQXS4QgO+5LodNm1QxWyQNcNL/fjnPkQN+4LDywtb3EpLFDHA3r1DXRc
+Oqse1pXjsXLmARSAsJGNNeYdZmJ8F/n09UDBQkfOWrv4P2LV8gd9kLbzoxxp1ct2
+San/aTNjVex85wrBYrxgCweQJ00iMmx9a+Dx+1QYCnq0SVqW7JqSmW59LMG5iOeR
+SolxL6ngzoVFGz1tIA+a42gfATmn7HHmK9k2qUW5PJNN5drG17M/ZxbZq4ahDRcA
+LARA5zBoH8BkEHq7eJkxnjvdiieC74AU0siIHPDiOWWFvrmG/9cF2RFt6S052rRe
+easixGcCAwEAAaOBlDCBkTAOBgNVHQ8BAf8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB
+/wIBADArBgNVHRAEJDAigA8yMDExMDkwNTEwNDcyMlqBDzIwMTYwNzEzMjMxNzIy
+WjAfBgNVHSMEGDAWgBRew4itPMuRPoo7xGEDTKVYup8pFzAdBgNVHQ4EFgQUXsOI
+rTzLkT6KO8RhA0ylWLqfKRcwDQYJKoZIhvcNAQELBQADggGBAC634bSFPpsT++nf
+2rGtO7suLerVlXls2IYQEoIvyZnrqyL+56lAUblgVz673NnGg0odg6upiU3BBAhs
+DXj3bPL0Bg2UvcbloF2f/Z8iNN2szLcCUCsip7D8OlZ8sUHlC4BiQnDjdzn10FZZ
+nuqKoJrs+uW1vkI5NMKWfmXEMMkF0pZ7fW2v9XHdP/rXLstryKjC171YFZxlmJoM
+Z3g+VaQ4Wq9dXEY8CM8A9Rkd6MRf88waTmJpTK630fnR10O/Mob19WyK6CYPuLUG
+2uoF3AJwlbs+u/5jrJHYHHK4cEPRgN3MVMv98vct0BKUAup4++hFN6X3vED7mbMV
+4e1oY6D8Jjq/dyNft6H5JYUcqW/0ljSokq86vjSoGoWX90M+tohr6XfF7WBojpnC
+Yer/uUo8K8gZpAsrh/45WN3l11KFssbZ9c6cnefOA0rgOiHY8L6NdV448XmnqFgi
+YIw76iThDCyjNPMEDbq7yuKQv+FI+a+zVdXZdlkGzXmlqCSNZQ==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEoTCCAwmgAwIBAgIETmXq6DANBgkqhkiG9w0BAQsFADBHMQswCQYDVQQGEwJE
+SzEbMBkGA1UEChMSS2luZ2RvbSBvZiBEZW5tYXJrMRswGQYDVQQDExJDb3VudHJ5
+IFNpZ25pbmcgQ0EwHhcNMTkxMDIzMTEzNjUzWhcNMzUwNjIzMTIwNjUzWjBHMQsw
+CQYDVQQGEwJESzEbMBkGA1UEChMSS2luZ2RvbSBvZiBEZW5tYXJrMRswGQYDVQQD
+ExJDb3VudHJ5IFNpZ25pbmcgQ0EwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGK
+AoIBgQCf75+5Gs7V68Gx4aClx9u4gzLtwcCDkMfylUmsgWfZKFdew6/2ZJLRRdhe
+G3ii14lvBlZG6uBRmhrsTV361+1LaG0gRFHIL6h9yzuB7YIc+j9j61o9BHJD7rhX
+3JWgx7ZG6/I/RDGCgtOeNN44WA/2mXqUdyyg2uHi1urc1m4GIVlEQHQgXQydh6gr
+JZzrn+z9MzqHR1ZJpf9vW5RXsdHBPRv55UJn/kpYU3YZj4jj5httsa2SanBAWYz4
+X4oWRNcNmZI3KeJvTCSEE1voPpuCBZgCFJN2kBDvwX9bLMMfOCStvTmugmcxtb1B
+oQshribiTPpnB9rrSSRgyjuY3HfN8Q/C8cmPrF/byfrcEDQCKeoCfXWVjtHGqy5f
+Nukd4z9fW0txlgNwbD5e//6N8+4PGiroJzmwTifxMjOQnvOyHBlrb598cq+Np/en
+4zCWN/rH3REMxQZZhg20Wvmo2zNIrF6JlPSxl+g9iVmLAfjtzbZYD6ImAXBMur03
+57u+LtcCAwEAAaOBlDCBkTAOBgNVHQ8BAf8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB
+/wIBADArBgNVHRAEJDAigA8yMDE5MTAyMzExMzY1M1qBDzIwMjQwODMxMDcwNjUz
+WjAfBgNVHSMEGDAWgBTonafsJy2eXWVWRVvVf1joilPnMjAdBgNVHQ4EFgQU6J2n
+7Cctnl1lVkVb1X9Y6IpT5zIwDQYJKoZIhvcNAQELBQADggGBAD1bsEDHScaL0Gwv
+uhh/jEOQ5pnzUxd3KstLTuEgdcbv16J5lTg0pcGuPzWWLxGG3G9rkebqtP7wfZcE
+QMiDsg9BLeS7SABkbr9X2CJxK7gFEXAvPplar57pIWlncXX2XmazK4ef0r+SXeky
++hW3gffqIuWpdPTvSw6/nEGDhwLJjSjYvJGdnzckF3EidCSNQx05qXUxMkhGGnYF
+BEQXH9VH8/AL1Q9E8qGY/hbxZHQM0+s+X360lOLyoxsodgQODXyV2VaBT0lbFXKk
+e9iCLZ1KOUal70X8Qe1POT0zSRKubkQRLENK1C4TMsdOuY1oUicPqG+fNaeyBcCf
+4kngN6hFr7+Ynydx/HH/lSC2Fr9CfPIJGi8DNl3cvHHoQhxhRimmv+aDX64PzeY4
+uuA3rp0T8sbNNkuMvbFBsVRcjhpbd0mSdd9pHYKayDEau2m0kS6AILvJnZc572VL
+G/l5u4DbvU07ILXHeVhO9+2sOAC4uzRXSpHWG5kSAboAh2N83Q==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEojCCBCigAwIBAgICA+gwCgYIKoZIzj0EAwMwTzELMAkGA1UEBhMCREUxDTAL
+BgNVBAoMBGJ1bmQxDDAKBgNVBAsMA2JzaTEMMAoGA1UEBRMDMTAzMRUwEwYDVQQD
+DAxjc2NhLWdlcm1hbnkwHhcNMTYwODIzMTEyMjU2WhcNMzAwMjIzMjM1OTU5WjBP
+MQswCQYDVQQGEwJERTENMAsGA1UECgwEYnVuZDEMMAoGA1UECwwDYnNpMQwwCgYD
+VQQFEwMxMDMxFTATBgNVBAMMDGNzY2EtZ2VybWFueTCCAbUwggFNBgcqhkjOPQIB
+MIIBQAIBATA8BgcqhkjOPQEBAjEAjLkegqM4bSgPXW9+UOZB3xUvcQntVFa0ErHa
+GX+3ESOs06cpkB0acYdHABMxB+xTMGQEMHvDgsY9jBUMPHIICs4Fr6DCvqKOT7In
+hxORZe+6kfkPiqWBSlA61OsEqMfdIs4oJgQwBKjH3SLOKCaLObVUFvBEfC+3feEH
+3NKmLogOpT7rYtV8tDkCldvJlDq3hpb6UEwRBGEEHRxk8GjPRf+ipjqBt8E/a4hH
+o+d+8U/j23/K/gy9EOjoJuA0NtZGqu+HsuJH1K8eir4ddSD5wqRcseuOlc/VUmK3
+Cyn+7Fhk4ZwFT/mRKSgORkYhd5GBEUKCA0EmPFMVAjEAjLkegqM4bSgPXW9+UOZB
+3xUvcQntVFazHxZubKwEJafPOrava3/DEDuIMgLpBGVlAgEBA2IABBIQYNt+G0f9
+fVZYErtxzRVfYo7OAAhV/FsztJ69ml1+dq0glVWiSQO/GeXKlkdzdV7R8CaRNk5j
+UPbkBhYAxsTMP2dEwRSLcE9AaMRulNgDwfypesmAcIozJJNxEuXSQ6OCAZQwggGQ
+MB0GA1UdDgQWBBQbx1CxR6dV+i8leSBuVdIv4uQnnjAOBgNVHQ8BAf8EBAMCAQYw
+KwYDVR0QBCQwIoAPMjAxNjA4MjMxMTIyNTZagQ8yMDE5MDgyMzIzNTk1OVowFgYD
+VR0gBA8wDTALBgkEAH8ABwMBAQEwUQYDVR0RBEowSIEYY3NjYS1nZXJtYW55QGJz
+aS5idW5kLmRlhhxodHRwczovL3d3dy5ic2kuYnVuZC5kZS9jc2NhpA4wDDEKMAgG
+A1UEBwwBRDBRBgNVHRIESjBIgRhjc2NhLWdlcm1hbnlAYnNpLmJ1bmQuZGWGHGh0
+dHBzOi8vd3d3LmJzaS5idW5kLmRlL2NzY2GkDjAMMQowCAYDVQQHDAFEMBIGA1Ud
+EwEB/wQIMAYBAf8CAQAwMAYDVR0fBCkwJzAloCOgIYYfaHR0cDovL3d3dy5ic2ku
+YnVuZC5kZS9jc2NhX2NybDANBgdngQgBAQYBBAIFADAfBgNVHSMEGDAWgBQbx1Cx
+R6dV+i8leSBuVdIv4uQnnjAKBggqhkjOPQQDAwNoADBlAjBPBmtA44RXQ93f5jW7
+RAhleQOYA4RFzAMtUnSCBgx3Bb66o9groGA8NXM/zS+zLp0CMQCKq3oTwyToIkyj
+oAuB3rwZKOH6XJsJ+KeNFitaLd5aEm8AgBqHM43/4IRwJYEG+co=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEqDCCBCugAwIBAgICAOMwDAYIKoZIzj0EAwMFADBuMQswCQYDVQQGEwJKUDEc
+MBoGA1UECgwTSmFwYW5lc2UgR292ZXJubWVudDEoMCYGA1UECwwfVGhlIE1pbmlz
+dHJ5IG9mIEZvcmVpZ24gQWZmYWlyczEXMBUGA1UEAwwOZS1wYXNzcG9ydENTQ0Ew
+HhcNMTkwNjE5MDUxNTE5WhcNMzUwNjE5MDUxNTE5WjBuMQswCQYDVQQGEwJKUDEc
+MBoGA1UECgwTSmFwYW5lc2UgR292ZXJubWVudDEoMCYGA1UECwwfVGhlIE1pbmlz
+dHJ5IG9mIEZvcmVpZ24gQWZmYWlyczEXMBUGA1UEAwwOZS1wYXNzcG9ydENTQ0Ew
+ggG1MIIBTQYHKoZIzj0CATCCAUACAQEwPAYHKoZIzj0BAQIxAP//////////////
+///////////////////////////+/////wAAAAAAAAAA/////zBkBDD/////////
+/////////////////////////////////v////8AAAAAAAAAAP////wEMLMxL6fi
+PufkmI4Fa+P4LRkYHZxu/oFBEgMUCI9QE4daxlY5jYou0Z0qhcjt0+wq7wRhBKqH
+yiK+iwU3jrHHHvMgrXRuHTtii6ebmFn3QeCCVCo4VQLyXb9VKWw6VF44cnYKtzYX
+3kqWJixvXZ6Yv5KS3Cn49B29KJoUfOnaMRO18LjACmCxzh1+gZ16Qx18kOoOXwIx
+AP///////////////////////////////8djTYH0Ny3fWBoNskiwp3rs7BlqzMUp
+cwIBAQNiAAShziPCcOjKP6lZL1eCZwpuZRnJpqg7HYoMmu97k1wTQDgsg6gT6juf
+cqCpWFHWc7Nn40+ewBIeg2VS5ErkOa/3krrUQEOt8mlcsdrm/HoYBNvNWVxacckf
+bjPxMvziNDajggFXMIIBUzArBgNVHREEJDAigQ5wa2lAbW9mYS5nby5qcKQQMA4x
+DDAKBgNVBAcMA0pQTjArBgNVHRIEJDAigQ5wa2lAbW9mYS5nby5qcKQQMA4xDDAK
+BgNVBAcMA0pQTjAdBgNVHQ4EFgQUarTykoK9lkf2/yoC95RNdJ6XhGMwDgYDVR0P
+AQH/BAQDAgEGMCsGA1UdEAQkMCKADzIwMTkwNjE5MDUxNTE5WoEPMjAzNTA2MTkw
+NTE1MTlaMBgGA1UdIAQRMA8wDQYLKoMIho9+BgUBAQEwEgYDVR0TAQH/BAgwBgEB
+/wIBADBtBgNVHR8EZjBkMDCgLqAshipodHRwczovL3BrZGRvd25sb2FkMS5pY2Fv
+LmludC9DUkxzL0pQTi5jcmwwMKAuoCyGKmh0dHBzOi8vcGtkZG93bmxvYWQyLmlj
+YW8uaW50L0NSTHMvSlBOLmNybDAMBggqhkjOPQQDAwUAA2kAMGYCMQCqewlcwiws
+GJ/lCsLSSwn6JfDlgWBFF9T6/GASt/wa944f32wULLri+PXbq0PmMdcCMQDr7Xk7
+9rnMW1p+e0/lApBGlpcRZhwgY5FwKSQWeWufbQoBzV89A8eHNsoNJ7H4vLw=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIErTCCAxWgAwIBAgICA+kwDQYJKoZIhvcNAQELBQAwZzELMAkGA1UEBhMCUEwx
+IzAhBgNVBAoMGk1pbmlzdGVyIGRzIGluZm9ybWF0eXphY2ppMR0wGwYDVQQLDBRD
+ZW50cnVtIENlcnR5ZmlrYWNqaTEUMBIGA1UEAwwLQ1NDQSBQb2xhbmQwHhcNMTkw
+MjIxMTEzMzI0WhcNMzMwMjIxMjM1OTU5WjBnMQswCQYDVQQGEwJQTDEjMCEGA1UE
+CgwaTWluaXN0ZXIgZHMgaW5mb3JtYXR5emFjamkxHTAbBgNVBAsMFENlbnRydW0g
+Q2VydHlmaWthY2ppMRQwEgYDVQQDDAtDU0NBIFBvbGFuZDCCAaIwDQYJKoZIhvcN
+AQEBBQADggGPADCCAYoCggGBAJpspX4b1AtJ8Ltjqtt+L0UjT7GN/TcG5DmtZ+gZ
+fCnN9ZfOoVC+vvs6612TnwlH5ZtSDwSPe/Nc11S14FevcjDkXhPiW+gNTZVyv7jh
+FHTpbXpG2cczNUF0Rd4uR6alWsliUXSiopp1m20xoqwIMhNG52wsegLJbJj5+4/0
+RZlzYojk7CDwAsRG2vZDZ68lKMg8uDYYYIFaX7VtRsMBJD7exq4gkkRPWC1IeW2V
+SJ5D7XgJpYv2qbKdl4LUFTPz/QAM7uVXVwqADb/eO1l7pW/Pyl7/w1Oh5octA10I
+uQcW79b/xPVWAttiD+uYNTKjOyvmO+t7c/UxaZNlZg4fbVgoH0Vawj8qogSOJHJQ
+9Cf0w6bNkeA3oJk4Qn12bwT679EgIvddOzoOa9UkGCW87GiqGkcY2BQwwNvsCqyJ
+9agnsjkmafWQ1foDc/wIr49sNkeqq+yKBhVV79UoZOMbN4xyRFAiyRe/kvc5lNA+
+C2ds0W9Nt2ZwdQnqK8bP+AkZOQIDAQABo2MwYTAOBgNVHQ8BAf8EBAMCAQYwDwYD
+VR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRoE3cmX3Hzyp+3reZaxyrSq+5gOTAd
+BgNVHQ4EFgQUaBN3Jl9x88qft63mWscq0qvuYDkwDQYJKoZIhvcNAQELBQADggGB
+ABpcjgkJjGdpKbGqyJE0JxJhYAUqcX7Rbj/c73QNTwd5+7UqmeumleFwwm1OBG2C
+8RLZnDpSG9vXAAssIKrBM0tA8XThb7XT/V8uCNPWyCFmhnY+jKH1OdBb66E746pN
+yGYChrgL+iozuuKrUNWrR5J2Yjo0gPeKvjRWm4+HUH7HTOcsnF3u4ahjDHcLJVRT
+b7pgGb7lGe8onrMgnnLd4RabJvtvIy0PSdUE6mwsn2AP/Fg8lTWDWgnU6/MHRbTq
+bbiWzgg2DShbJMZ9ozA+W7/Jg7VL9J4rPPAxK/BTkbCYqpAo0onG9i9pT0oAARsu
+r45ZJSK4CR89FUcAlKbz72yUurgXd9Pu85DPJrwkyQAzNfhcfgwnADP+DDb6ZNVf
+keuF7/XUSeqeprsd75RB4HbTetmWxtgyyzR5gMcRBeRKKfAQ83dipynLOSeHKfqh
+noYen0Z6zrcS7VwJmBtn4tR8r1d70ijpZLXdjQ858OmMhLwmDYNfvx9/402DY/p3
++w==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEtTCCBDygAwIBAgIEVhWadjAKBggqhkjOPQQDAjA7MRAwDgYDVQQDDAdDU0NB
+LVVZMQswCQYDVQQKDAJNSTENMAsGA1UECwwERE5JQzELMAkGA1UEBhMCVVkwHhcN
+MTUxMDA3MDAwMDAwWhcNMzEwMTA3MDAwMDAwWjA7MRAwDgYDVQQDDAdDU0NBLVVZ
+MQswCQYDVQQKDAJNSTENMAsGA1UECwwERE5JQzELMAkGA1UEBhMCVVkwggG1MIIB
+TQYHKoZIzj0CATCCAUACAQEwPAYHKoZIzj0BAQIxAIy5HoKjOG0oD11vflDmQd8V
+L3EJ7VRWtBKx2hl/txEjrNOnKZAdGnGHRwATMQfsUzBkBDB7w4LGPYwVDDxyCArO
+Ba+gwr6ijk+yJ4cTkWXvupH5D4qlgUpQOtTrBKjH3SLOKCYEMASox90izigmizm1
+VBbwRHwvt33hB9zSpi6IDqU+62LVfLQ5ApXbyZQ6t4aW+lBMEQRhBB0cZPBoz0X/
+oqY6gbfBP2uIR6PnfvFP49t/yv4MvRDo6CbgNDbWRqrvh7LiR9SvHoq+HXUg+cKk
+XLHrjpXP1VJitwsp/uxYZOGcBU/5kSkoDkZGIXeRgRFCggNBJjxTFQIxAIy5HoKj
+OG0oD11vflDmQd8VL3EJ7VRWsx8WbmysBCWnzzq2r2t/wxA7iDIC6QRlZQIBAQNi
+AAQyp4yzOPQDYQi/vyQNKX31kfAu4IjjE0zfL0fiwOerFez6ervYSImduu2915bY
+iYZLDuZSNver3vbFi7AE8lJS9du9FHJCSYwadSSTHYgNRBzspGgKsQx035XY2xRA
+QuqjggHOMIIByjBmBgNVHSMEXzBdgBRGq1M0aXU7t9I1aKrHQjtBFig9J6E/pD0w
+OzEQMA4GA1UEAwwHQ1NDQS1VWTELMAkGA1UECgwCTUkxDTALBgNVBAsMBEROSUMx
+CzAJBgNVBAYTAlVZggRWFZp2MB0GA1UdDgQWBBRGq1M0aXU7t9I1aKrHQjtBFig9
+JzAOBgNVHQ8BAf8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB/wIBADArBgNVHRAEJDAi
+gA8yMDE1MTAwNzAwMDAwMFqBDzIwMjAxMDA3MDAwMDAwWjBXBgNVHREEUDBOhiBo
+dHRwczovL2ljYW9wa2kubWludGVyaW9yLmd1Yi51eYEYaWNhb3BraUBtaW50ZXJp
+b3IuZ3ViLnV5pBAwDjEMMAoGA1UEBwwDVVJZMFcGA1UdEgRQME6GIGh0dHBzOi8v
+aWNhb3BraS5taW50ZXJpb3IuZ3ViLnV5gRhpY2FvcGtpQG1pbnRlcmlvci5ndWIu
+dXmkEDAOMQwwCgYDVQQHDANVUlkwPgYDVR0fBDcwNTAzoDGgL4YtaHR0cHM6Ly9p
+Y2FvcGtpLm1pbnRlcmlvci5ndWIudXkvY3Jscy9jcmwuY3JsMAoGCCqGSM49BAMC
+A2cAMGQCMGk9GOOFKCadGXP1U/RnyQEOK5WsPckOeJ5sgj8lhoXEzFj0n76XprA6
+O2PqYceyTAIwRLW1Yd0TV83efiYKbTDRU5Wvz+4fQ7SKtQdi7LTK67d54OQ9k5tj
+GLAMG2/349GE
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEvzCCAyegAwIBAgICAt8wDQYJKoZIhvcNAQELBQAwcDELMAkGA1UEBhMCUEwx
+EjAQBgNVBAoMCUlDQU8gQ1NDQTEOMAwGA1UECwwFTVNXaUExPTA7BgNVBAMMNFN5
+c3RlbSBXeWRhd2FuaWEgUGFzenBvcnTDs3cgeiBEYW55bWkgQmlvbWV0cnljem55
+bWkwHhcNMTcwOTE5MDkxMTU5WhcNMzEwOTE5MjM1OTU5WjBwMQswCQYDVQQGEwJQ
+TDESMBAGA1UECgwJSUNBTyBDU0NBMQ4wDAYDVQQLDAVNU1dpQTE9MDsGA1UEAww0
+U3lzdGVtIFd5ZGF3YW5pYSBQYXN6cG9ydMOzdyB6IERhbnltaSBCaW9tZXRyeWN6
+bnltaTCCAaIwDQYJKoZIhvcNAQEBBQADggGPADCCAYoCggGBAKrcRO4rN8BAJsCg
+WNZcClIoucmna+XOL24Ibz0uIGl0WNMGUtE1To027Je7YZ0EjJ48QdZYD1uGYLXC
+w7jBFmAWd5NxS18dUHvS/j9t9xVO+Ehy44GNaVNhjpST84TQBiW/nJ6FYESeQNCB
+YLaytIZ2pN4j5O9kWynB5xQoRNy367S08oor67vGxTaXoJpeLm03Qu6/AAZDokT6
+csTvX6AhOIWg6vp27lrkJvYT3H5ER2sHhPcZDVxCs1Beiw8DH9BxS2UOZTk37MLX
+NUFSVy2ES1ecnzviH+ytC4yweJxP/y3X2UrrVyxYgMNMuFc1fcfBMvJmSGfwvhnG
+T1XffKsBjNbKT6R6AnuzGOXBDjlrOiRcWAvsAKB8ibVP8IrPh8ZP7kCYqxrLRjrU
+K7abJ/LxfzBki8vjO6AbajdzFA0ZJNsM/MtYxobL2r00H3S3MeS/FgXUXHmhj8bX
+ndfCM7fz5o1AC7fYeF2lypO8BxlSBxXc22EAubbqiNvBxA+coQIDAQABo2MwYTAO
+BgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBSqW1+f
+QNbRn7emT2QHzJyBh260PzAdBgNVHQ4EFgQUqltfn0DW0Z+3pk9kB8ycgYdutD8w
+DQYJKoZIhvcNAQELBQADggGBAKaV/LAPTJb1LRhUnSIjsl5xiAd20qIbTYkMCcG5
+urFNV0SgpOqSEgvnu9rv2S4Ak5D7OXYdRmd9sX6/E9uGKYq7ENqfK6FCi53d5SEb
+r+lxptu+yKfBuT2QKaUZYFiiGW+xGGE15YrjLFb9FafKVh3d1dJeH9BkY6nJTOfa
+qTuGiHv8Nt18kb53S6B5q29qT0ZHR5OmlKNwjPl6DVcg3MFDcgiYHMdcST/k+cwk
+hwEgllC9B6Lmn0ScbD4F8bA1qZhKIfQM2IttDaSUo6ZRaUjw7i6vPWTacM8xvA9o
+jURTUH6R0szsoGurF1GnYug/D3Gqnjq3FAZa9eb+gL+3xdpM72QOG0hYprwKuZTj
+3BwGBRC+PY+VQGmMH9oR+ozC83wX9yPOMtMC0AhIInSjwpdnzKLVEpIKKgoZOunQ
+Q4XXNGmm5SI3rQ2KyctZEg5UzMcMCaIKVcocKYCoQF6NMb9G/OXbwu1MzsNd5Brc
+vAJAKd9h4XTOX+4IaVg18giBoA==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIExTCCAy2gAwIBAgIETzVc7DANBgkqhkiG9w0BAQsFADBZMQswCQYDVQQGEwJh
+cjEMMAoGA1UEChMDZ29iMRQwEgYDVQQLEwttaW5pbnRlcmlvcjEQMA4GA1UECxMH
+cmVuYXBlcjEUMBIGA1UEAxMLY2FwYXNhcG9ydGUwHhcNMTIwMjEwMTczODQ3WhcN
+MjcwMjEwMTgwODQ3WjBZMQswCQYDVQQGEwJhcjEMMAoGA1UEChMDZ29iMRQwEgYD
+VQQLEwttaW5pbnRlcmlvcjEQMA4GA1UECxMHcmVuYXBlcjEUMBIGA1UEAxMLY2Fw
+YXNhcG9ydGUwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQDJphBe3/vy
+HpHOQtwpsCTKj7LAwouo/MBxDYJ1lDoFhJTLeFyqFzX3LSM2ThxVgFAfuuooNFjE
+c2P830dbn4bbgDyBLYeSEULDjrGZtHh6CVc2jo1FR5TBbKGCQx43OrhT5fIdd2a4
+ZhTjANSFMymqG/iAgtEPXAlbzy/GCzcfKo834bvITO/ZiSa39JmRTdWveXe5oRE6
+/rib9G0RYr9b96qaR8Wpsil5wfr9neQ0OVzvfkbqE2A9qUlYJxPpNH344VEHnBCI
+YIVEhqsxpRGG7tQsqvY75plFLhE81YZZF/ccD9NS+vL2z2myijlRAq0ORxgo4IJ2
+QT79RwF9G8UStLVXtPsDhogVQsjvT3XP1Kx4f/NFyIYCfVTKDSOJT/z5zCGM5+AC
+bhswTAOLGrEgUunvIX06Ag7IUUHglIqX17h7kB7bRqj20nt8UsLqonu1yjLfmv/X
+O7pBNMLZxk1B4c70S1019p214x3wyHE4at/4e5NLWSOt9evLRpFAxJ0CAwEAAaOB
+lDCBkTAOBgNVHQ8BAf8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB/wIBADArBgNVHRAE
+JDAigA8yMDEyMDIxMDE3Mzg0N1qBDzIwMTcwMTIyMTkwODQ3WjAfBgNVHSMEGDAW
+gBTBwzRUOqa8Xz2yqHldhlq5bnv2/jAdBgNVHQ4EFgQUwcM0VDqmvF89sqh5XYZa
+uW579v4wDQYJKoZIhvcNAQELBQADggGBAIoRsd1dRj2YmcM5JEzv0rdTZe6TEuXx
+6VcDgUrfAduF8kyZ0IAtenKMVHpC/G8ibedqWXY6KgCgXvD+kPLxQ7o37VHtcSqV
+QmvtOXC9DZpgKJsOs5v+N8Kj4NCQgubK1dUx6Zj9MBZg+TD+VT/luJQHprpMyjE+
+hE5gBLZyThi3d/3PiYPlFPuadqPWgI8+LWdwjcsM5HSwVvc+XzrHZ+brHQSIqEpe
+KyUkogU6K5njTWNZtx9gED0oRrKwiWh6MVNVvAtLpTBskDI1tqstmlHkAiRnbAkT
+WqZ0TBudFC4zhVDK/FfvJfJ1cYpB8GHFYDNcN4/364qdSoRs/HUyK1fVLLXoEmmL
+aUSTGqL/EqttWbMzCb1ylLVTOhP3toqE/+zWaXPoL7oF890/EOLJf/YwXef6jXv7
+62unPH7c3cq+fRlldq6qYmevgwC/zL95HJMjtcm5lL/82MJRSs+zWdJtslX2N8oL
+xUcmIXPC9gp9vaj5CtvkQfL091JRqAv2AQ==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIExTCCAy2gAwIBAgIETzWCzTANBgkqhkiG9w0BAQsFADBZMQswCQYDVQQGEwJB
+UjEMMAoGA1UEChMDZ29iMRQwEgYDVQQLEwttaW5pbnRlcmlvcjEQMA4GA1UECxMH
+cmVuYXBlcjEUMBIGA1UEAxMLY2FwYXNhcG9ydGUwHhcNMTIwMjEwMTczODQ3WhcN
+MjgwNTI0MTUwMjQ5WjBZMQswCQYDVQQGEwJBUjEMMAoGA1UEChMDZ29iMRQwEgYD
+VQQLEwttaW5pbnRlcmlvcjEQMA4GA1UECxMHcmVuYXBlcjEUMBIGA1UEAxMLY2Fw
+YXNhcG9ydGUwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQDJphBe3/vy
+HpHOQtwpsCTKj7LAwouo/MBxDYJ1lDoFhJTLeFyqFzX3LSM2ThxVgFAfuuooNFjE
+c2P830dbn4bbgDyBLYeSEULDjrGZtHh6CVc2jo1FR5TBbKGCQx43OrhT5fIdd2a4
+ZhTjANSFMymqG/iAgtEPXAlbzy/GCzcfKo834bvITO/ZiSa39JmRTdWveXe5oRE6
+/rib9G0RYr9b96qaR8Wpsil5wfr9neQ0OVzvfkbqE2A9qUlYJxPpNH344VEHnBCI
+YIVEhqsxpRGG7tQsqvY75plFLhE81YZZF/ccD9NS+vL2z2myijlRAq0ORxgo4IJ2
+QT79RwF9G8UStLVXtPsDhogVQsjvT3XP1Kx4f/NFyIYCfVTKDSOJT/z5zCGM5+AC
+bhswTAOLGrEgUunvIX06Ag7IUUHglIqX17h7kB7bRqj20nt8UsLqonu1yjLfmv/X
+O7pBNMLZxk1B4c70S1019p214x3wyHE4at/4e5NLWSOt9evLRpFAxJ0CAwEAAaOB
+lDCBkTAOBgNVHQ8BAf8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB/wIBADArBgNVHRAE
+JDAigA8yMDEzMDUyNDE0MzI0OVqBDzIwMTgwNTA2MTYwMjQ5WjAfBgNVHSMEGDAW
+gBTBwzRUOqa8Xz2yqHldhlq5bnv2/jAdBgNVHQ4EFgQUwcM0VDqmvF89sqh5XYZa
+uW579v4wDQYJKoZIhvcNAQELBQADggGBAL0ei0vpjVCruAEhUdM7fe/QD/5c82jB
+FBqsZQBN/yynxGgdWR7DkjiXtqGrHtgZweH6pegvN1IOncv77SzJCrEUTCh1l5QO
+W5ATtPt5vxcjkXwRaixJHyRE+VQKBztAsdvPoKAX/F9p+QVeX7LAfH8k5hE/gQn6
+4DFpiJLamwWmVZ4XR04RmjoMUUGpDzONhfCi8IXV6CiXu0Q+rSp65APriEr3idPG
+2F9UDPBW2YxJAPBEXpofCnwUT5GjEyDHLEStZ74f9atZIopa3BnKVXANGHJ7zG48
+iTDEBV/jw1dm0fb3j6ik4X26f6sZbEO45ODLHlVFxVwjpQwg/J1UkTMjIezx1xsu
+9/AsZgdFmgHZE2COLu0HLlbovQvOkuZtimMCp586EdNRjT15mAvq3sqcNI2l8wrI
+8mO9weAJzxbfgIbu/OBVaCj55vGu8ZczAZTZYrI29cY5RPU84250IYzNxNdkSXCP
+s4NwpIGjNYad/3Zhouriqv7gmg9GzanJJQ==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEyTCCBE+gAwIBAgIESS7/ezAKBggqhkjOPQQDAzBBMQswCQYDVQQGEwJHQjEO
+MAwGA1UEChMFVUtLUEExIjAgBgNVBAMTGUNvdW50cnkgU2lnbmluZyBBdXRob3Jp
+dHkwHhcNMjEwOTE3MTIxNzU4WhcNMzgwMTE3MTI0NzU4WjBBMQswCQYDVQQGEwJH
+QjEOMAwGA1UEChMFVUtLUEExIjAgBgNVBAMTGUNvdW50cnkgU2lnbmluZyBBdXRo
+b3JpdHkwggHMMIIBZAYHKoZIzj0CATCCAVcCAQEwPAYHKoZIzj0BAQIxAP//////
+///////////////////////////////////+/////wAAAAAAAAAA/////zB7BDD/
+/////////////////////////////////////////v////8AAAAAAAAAAP////wE
+MLMxL6fiPufkmI4Fa+P4LRkYHZxu/oFBEgMUCI9QE4daxlY5jYou0Z0qhcjt0+wq
+7wMVAKM1kmqjGaJ6HQCJamdzpIJ6zaxzBGEEqofKIr6LBTeOscce8yCtdG4dO2KL
+p5uYWfdB4IJUKjhVAvJdv1UpbDpUXjhydgq3NhfeSpYmLG9dnpi/kpLcKfj0Hb0o
+mhR86doxE7XwuMAKYLHOHX6BnXpDHXyQ6g5fAjEA////////////////////////
+////////x2NNgfQ3Ld9YGg2ySLCneuzsGWrMxSlzAgEBA2IABFaTH9fUKULuySKY
+1ykTcc26wpxgIwyfY10BCTmrf49dl3zP6QvXUoyvpTr61iJb9h4q9NIIMa7R5rV4
+zLAOFTQYL20e5r9ST71ivQVtDVOMJOt/KkNuM24TnwCgcrC6GqOCAb4wggG6MA4G
+A1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/AgEAMGMGA1UdEQRcMFqkEDAO
+MQwwCgYDVQQHEwNHQlKBH2RvY3VtZW50LnRlY2hub2xvZ3lAaG1wby5nb3YudWuB
+JWRvY3VtZW50LnRlY2hub2xvZ3lAaG9tZW9mZmljZS5nb3YudWswYwYDVR0SBFww
+WqQQMA4xDDAKBgNVBAcTA0dCUoEfZG9jdW1lbnQudGVjaG5vbG9neUBobXBvLmdv
+di51a4ElZG9jdW1lbnQudGVjaG5vbG9neUBob21lb2ZmaWNlLmdvdi51azBdBgNV
+HR8EVjBUMFKgUKBOhiBodHRwczovL2htcG8uZ292LnVrL2NzY2EvR0JSLmNybIYq
+aHR0cHM6Ly9wa2Rkb3dubG9hZDEuaWNhby5pbnQvQ1JMcy9HQlIuY3JsMCsGA1Ud
+EAQkMCKADzIwMjEwOTE3MTIxNzU4WoEPMjAyNjEwMTAyMzUwMjJaMB8GA1UdIwQY
+MBaAFEmeRzAnhSDFfPwRgCThTBVioknWMB0GA1UdDgQWBBRJnkcwJ4UgxXz8EYAk
+4UwVYqJJ1jAKBggqhkjOPQQDAwNoADBlAjEA+F6OflESysM5RzsJ8vctMMH7Einc
+FVwFgcc7sg0BI8yIwUJLlKdtu+EwnqN5W60SAjAe3oRb4Jo+g2D0YqfltWE8zFcs
+8e94iaQcifRANdaZhtQa4J1TS7dcsxxvhEmUcaQ=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEzTCCBFSgAwIBAgISESH0cc5h93vtw8rEUJhXr7mVMAoGCCqGSM49BAMDMEEx
+CzAJBgNVBAYTAkxCMQwwCgYDVQQKDANHT1YxDTALBgNVBAsMBEdER1MxFTATBgNV
+BAMMDExFQkFOT04gQ1NDQTAeFw0xODA3MTcwMDAwMDBaFw0zMzEwMTcwMDAwMDBa
+MEExCzAJBgNVBAYTAkxCMQwwCgYDVQQKDANHT1YxDTALBgNVBAsMBEdER1MxFTAT
+BgNVBAMMDExFQkFOT04gQ1NDQTCCAbUwggFNBgcqhkjOPQIBMIIBQAIBATA8Bgcq
+hkjOPQEBAjEAjLkegqM4bSgPXW9+UOZB3xUvcQntVFa0ErHaGX+3ESOs06cpkB0a
+cYdHABMxB+xTMGQEMHvDgsY9jBUMPHIICs4Fr6DCvqKOT7InhxORZe+6kfkPiqWB
+SlA61OsEqMfdIs4oJgQwBKjH3SLOKCaLObVUFvBEfC+3feEH3NKmLogOpT7rYtV8
+tDkCldvJlDq3hpb6UEwRBGEEHRxk8GjPRf+ipjqBt8E/a4hHo+d+8U/j23/K/gy9
+EOjoJuA0NtZGqu+HsuJH1K8eir4ddSD5wqRcseuOlc/VUmK3Cyn+7Fhk4ZwFT/mR
+KSgORkYhd5GBEUKCA0EmPFMVAjEAjLkegqM4bSgPXW9+UOZB3xUvcQntVFazHxZu
+bKwEJafPOrava3/DEDuIMgLpBGVlAgEBA2IABCEQdj6vj7u/Is1woNHeBAL2PlQy
++z+M/jSKJc03q2EJwGX+ZMN6GgKgWZ9HgGR2/2QflcA5mfrkUjVLvyVbNDmtpHRT
+ty4pOGl1bHni+AHxKiou1pTglJubmw/zTx0XfaOCAcwwggHIMBIGA1UdEwEB/wQI
+MAYBAf8CAQAwDgYDVR0PAQH/BAQDAgEGMCsGA1UdEAQkMCKADzIwMTgwNzE3MDAw
+MDAwWoEPMjAyMzA3MTcwMDAwMDBaMGEGA1UdIARaMFgwVgYHZ4EQAQFlCzBLMEkG
+CCsGAQUFBwIBFj1odHRwczovL3d3dy5nZW5lcmFsLXNlY3VyaXR5Lmdvdi5sYi9Q
+S0kvQ1AvTEVCQU5PTkNTQ0EtQ1AucGRmMEEGA1UdEQQ6MDiBJGxlYmFub24tY3Nj
+YUBnZW5lcmFsLXNlY3VyaXR5Lmdvdi5sYqQQMA4xDDAKBgNVBAcTA0xCTjBBBgNV
+HRIEOjA4gSRsZWJhbm9uLWNzY2FAZ2VuZXJhbC1zZWN1cml0eS5nb3YubGKkEDAO
+MQwwCgYDVQQHEwNMQk4wTAYDVR0fBEUwQzBBoD+gPYY7aHR0cHM6Ly93d3cuZ2Vu
+ZXJhbC1zZWN1cml0eS5nb3YubGIvUEtJL0NSTC9MRUJBTk9OQ1NDQS5jcmwwHQYD
+VR0OBBYEFGwXIRwgkBRk0764M6qDxTjCp1e+MB8GA1UdIwQYMBaAFGwXIRwgkBRk
+0764M6qDxTjCp1e+MAoGCCqGSM49BAMDA2cAMGQCMEDHjaos1rzPT/L3ClGVPIXX
+RsafacvThEs1kKmPYimwQkXv0USaQOOB/FGVnWhZnQIwFA5YRFmvNX50ORChiX2d
+f56j0teGZeVV2eHDCJcGfDUwVMsjDwr9BA4BhBSynpaf
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEzjCCBFSgAwIBAgISESGkZqwJX+nZ1Eem/FdxV8TEMAoGCCqGSM49BAMDMEEx
+CzAJBgNVBAYTAkxCMQwwCgYDVQQKDANHT1YxDTALBgNVBAsMBEdER1MxFTATBgNV
+BAMMDExFQkFOT04gQ1NDQTAeFw0xNjA1MTEwMDAwMDBaFw0yNDA4MTEwMDAwMDBa
+MEExCzAJBgNVBAYTAkxCMQwwCgYDVQQKDANHT1YxDTALBgNVBAsMBEdER1MxFTAT
+BgNVBAMMDExFQkFOT04gQ1NDQTCCAbUwggFNBgcqhkjOPQIBMIIBQAIBATA8Bgcq
+hkjOPQEBAjEAjLkegqM4bSgPXW9+UOZB3xUvcQntVFa0ErHaGX+3ESOs06cpkB0a
+cYdHABMxB+xTMGQEMHvDgsY9jBUMPHIICs4Fr6DCvqKOT7InhxORZe+6kfkPiqWB
+SlA61OsEqMfdIs4oJgQwBKjH3SLOKCaLObVUFvBEfC+3feEH3NKmLogOpT7rYtV8
+tDkCldvJlDq3hpb6UEwRBGEEHRxk8GjPRf+ipjqBt8E/a4hHo+d+8U/j23/K/gy9
+EOjoJuA0NtZGqu+HsuJH1K8eir4ddSD5wqRcseuOlc/VUmK3Cyn+7Fhk4ZwFT/mR
+KSgORkYhd5GBEUKCA0EmPFMVAjEAjLkegqM4bSgPXW9+UOZB3xUvcQntVFazHxZu
+bKwEJafPOrava3/DEDuIMgLpBGVlAgEBA2IABDnOSMIpCnQ3kzTJir3hNYHhVrQk
+6cJjCm9Dp6fCF/aKylPGuSNBwXQizNsGp8uum4AblJDzHoFZmCBJHx7qOMqXPUpK
+ZetJFbdgCLU5Vo9+XzmrfEORHeJyi86yarjapqOCAcwwggHIMA4GA1UdDwEB/wQE
+AwIBBjASBgNVHRMBAf8ECDAGAQH/AgEAMCsGA1UdEAQkMCKADzIwMTYwNTExMDAw
+MDAwWoEPMjAyNDA4MTEwMDAwMDBaMGEGA1UdIARaMFgwVgYHZ4EQAQFlCzBLMEkG
+CCsGAQUFBwIBFj1odHRwczovL3d3dy5nZW5lcmFsLXNlY3VyaXR5Lmdvdi5sYi9Q
+S0kvQ1AvTEVCQU5PTkNTQ0EtQ1AucGRmMEEGA1UdEQQ6MDiBJGxlYmFub24tY3Nj
+YUBnZW5lcmFsLXNlY3VyaXR5Lmdvdi5sYqQQMA4xDDAKBgNVBAcTA0xCTjBBBgNV
+HRIEOjA4gSRsZWJhbm9uLWNzY2FAZ2VuZXJhbC1zZWN1cml0eS5nb3YubGKkEDAO
+MQwwCgYDVQQHEwNMQk4wTAYDVR0fBEUwQzBBoD+gPYY7aHR0cHM6Ly93d3cuZ2Vu
+ZXJhbC1zZWN1cml0eS5nb3YubGIvUEtJL0NSTC9MRUJBTk9OQ1NDQS5jcmwwHQYD
+VR0OBBYEFAGw21FFhwlp/SXjbK9G+hg8RNKsMB8GA1UdIwQYMBaAFAGw21FFhwlp
+/SXjbK9G+hg8RNKsMAoGCCqGSM49BAMDA2gAMGUCMDg9bgkla/PkLbQLIxXGpIqa
+FeXzXvdcAhyJzERzgbKXM5zgx8YY9hrcijTeO3IazAIxAIBJ/qNWFGeLJ8J7SgC4
+eW9XeecsreFI8r2KJdOgEYdEnP8MmhiieXZwZHThQXnNmw==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIE0TCCBFigAwIBAgIIeoUvw/k9z2swCgYIKoZIzj0EAwMwcjELMAkGA1UEBhMC
+Q1kxGzAZBgNVBAoMElJlcHVibGljIG9mIEN5cHJ1czEwMC4GA1UECwwnQ2l2aWwg
+UmVnaXN0cnkgYW5kIE1pZ3JhdGlvbiBEZXBhcnRtZW50MRQwEgYDVQQDDAtDU0NB
+LUNZUFJVUzAeFw0yMDA3MDIxMTAzNDJaFw0zNTA3MDIxMTAzNDJaMHIxCzAJBgNV
+BAYTAkNZMRswGQYDVQQKDBJSZXB1YmxpYyBvZiBDeXBydXMxMDAuBgNVBAsMJ0Np
+dmlsIFJlZ2lzdHJ5IGFuZCBNaWdyYXRpb24gRGVwYXJ0bWVudDEUMBIGA1UEAwwL
+Q1NDQS1DWVBSVVMwggG1MIIBTQYHKoZIzj0CATCCAUACAQEwPAYHKoZIzj0BAQIx
+AIy5HoKjOG0oD11vflDmQd8VL3EJ7VRWtBKx2hl/txEjrNOnKZAdGnGHRwATMQfs
+UzBkBDB7w4LGPYwVDDxyCArOBa+gwr6ijk+yJ4cTkWXvupH5D4qlgUpQOtTrBKjH
+3SLOKCYEMASox90izigmizm1VBbwRHwvt33hB9zSpi6IDqU+62LVfLQ5ApXbyZQ6
+t4aW+lBMEQRhBB0cZPBoz0X/oqY6gbfBP2uIR6PnfvFP49t/yv4MvRDo6CbgNDbW
+Rqrvh7LiR9SvHoq+HXUg+cKkXLHrjpXP1VJitwsp/uxYZOGcBU/5kSkoDkZGIXeR
+gRFCggNBJjxTFQIxAIy5HoKjOG0oD11vflDmQd8VL3EJ7VRWsx8WbmysBCWnzzq2
+r2t/wxA7iDIC6QRlZQIBAQNiAAQ13JQpxiPCO2YwXVBCay7bu/bX3xw3yQ632S0i
+bZ+bnmhBu+cVQ0pVFAFQLQBkNrWIx2sktD5AwaC7UjiZuqHd1ZUwcckhGhOc1dVc
+Q6S9kJJg7C1zrY0b6mJHcOJSssOjggF4MIIBdDAdBgNVHQ4EFgQUn/Mwn6M27ClE
+aBbAwnTKi2qOiBowEgYDVR0TAQH/BAgwBgEB/wIBADAfBgNVHSMEGDAWgBSf8zCf
+ozbsKURoFsDCdMqLao6IGjBSBgNVHRIESzBJgRhjeXAtY3NjYUBjcm1kLm1vaS5n
+b3YuY3mkEDAOMQwwCgYDVQQHDANDWVCGG2h0dHA6Ly9jc2NhLmNybWQubW9pLmdv
+di5jeTArBgNVHRAEJDAigA8yMDIwMDcwMjExMDM0MlqBDzIwMjQwNzAyMTEwMzQy
+WjA5BgNVHR8EMjAwMC6gLKAqhihodHRwOi8vY3NjYS5jcm1kLm1vaS5nb3YuY3kv
+Y3NjYS9jeXAuY3JsMA4GA1UdDwEB/wQEAwIBBjBSBgNVHREESzBJgRhjeXAtY3Nj
+YUBjcm1kLm1vaS5nb3YuY3mkEDAOMQwwCgYDVQQHDANDWVCGG2h0dHA6Ly9jc2Nh
+LmNybWQubW9pLmdvdi5jeTAKBggqhkjOPQQDAwNnADBkAjALHYJGT7E1TY+HyBsJ
+w1fCZxGEj5YsTfpfMrDJrtGqUrz54bCSE3Vr0g6whE2snSsCMDVvhHzzOoM64DAU
+v1vWnci2Qb7FmCuXe6hzIUpTm7H0P08jy23FnGmPf6lEIHYRjQ==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIE1DCCAwigAwIBAgICAKMwQQYJKoZIhvcNAQEKMDSgDzANBglghkgBZQMEAgEF
+AKEcMBoGCSqGSIb3DQEBCDANBglghkgBZQMEAgEFAKIDAgEgMEAxCzAJBgNVBAYT
+AktSMRMwEQYDVQQKDApHb3Zlcm5tZW50MQ0wCwYDVQQLDARNT0ZBMQ0wCwYDVQQD
+DARDU0NBMB4XDTEzMDUzMTA4NDE1NloXDTI4MDgzMTE0NTk1OVowQDELMAkGA1UE
+BhMCS1IxEzARBgNVBAoMCkdvdmVybm1lbnQxDTALBgNVBAsMBE1PRkExDTALBgNV
+BAMMBENTQ0EwggGgMA0GCSqGSIb3DQEBAQUAA4IBjQAwggGIAoIBgQDH/nWcas+e
+p0xr3OGgYFg0z0lziSszRIEfBPVm5MXT4I+6zRpttP1rT+bOQSyJw6ceEGTDNVmC
+bEKKENsLXMBnPwJPRUCNtTUoOLTAx3ydLwbjyu4OxMkTXl3LnhwFZkx+aNmmmFXX
+ik/KiybEK60bdKzvBFffAUMwJ4dWidt4tsAsDMpzqbIskX/rUTk30EHu+oxQVfjA
+8T3E/wY2Ftlw7HMQJ+Hpt+YS6FSIMxov0mOOTuASLQH0yNRT8aKreRL5Li7tIYwJ
+0iymEHWs6ZAHNlRyJVrkhlzmZBMmH0n59ljd68e7RZtebcF+2/j82aYNG1QYdey3
+pIYR32WR7Evpl6dVdzBDSZuJfvXU5qO7hyMrkb+AG29MUZUGMsQwQAhw2y/mGylv
+H3mWzOjtRqXeLLfAc1kdwrVCWqRo/HJmAyh0bRMTQq4qbZf59Bct4tXE83+pqqWn
+nJh7l8TGl5UQ8Z9dcWaqiOSgu6YXrKabTxTr6cEp0KSLFSY89wMVYI8CAQOjcjBw
+MB0GA1UdDgQWBBR8BiYa433jP/rWFHDlq79tFH0n8DAOBgNVHQ8BAf8EBAMCAQYw
+KwYDVR0QBCQwIoAPMjAxMzA1MzExNzQxMDBagQ8yMDE4MDUzMTIzNTkwMFowEgYD
+VR0TAQH/BAgwBgEB/wIBADBBBgkqhkiG9w0BAQowNKAPMA0GCWCGSAFlAwQCAQUA
+oRwwGgYJKoZIhvcNAQEIMA0GCWCGSAFlAwQCAQUAogMCASADggGBADgilI6lg++h
+Ksepo0VexD4+zwQFYaygu+dpMLtd5fbyL/ewqYAPt9NReNK1m8mcl5k3isKvcOvp
+p36hxn+DQioBHOEruBxEsmS6yueyE6ZHOANJ0caU31+GO1g+pggmEjjzA+TxhMG8
+AcJsBgquDZmLVGryb5VvbAfotXe6FwiiPtLsHzB1dYoiy1Uyu2HT8cYHRZ5l1v43
+sVqhz+TcdVN+i2E/O8H/ctQYje9ePbepLRetXbiwgpOlYEY90E1XtYeRGpD+91K6
+jKJv6H1PTs88wgMvtDVrPSNHCSz/xWDHylBjwR24ycYMArq6h9hdhOKsXsQHllht
+CA9hr362OsNfHEDxQAYfSoOCz9v13IyJBFtUY8trDVBVO7RWmChZh0OT5ocEGNW3
+mAO5FRtkWQ9O8vdlPdxBkpWX9rn1B2epyPRmH78wo79Ar49d4rLSnR+M1xLt0ClO
+KhV8xz1D7zCkDtel4dbPmFeyCHXDE5AtgTlSGb/Sfr/gz4bwghJWVQ==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIE1jCCAz6gAwIBAgICAZkwDQYJKoZIhvcNAQELBQAwezEKMAgGA1UEBRMBMzEQ
+MA4GA1UEAwwHQ1NDQSBOTDEpMCcGA1UECwwgTWluaXN0cnkgb2YgU2VjdXJpdHkg
+YW5kIEp1c3RpY2UxIzAhBgNVBAoMGktpbmdkb20gb2YgdGhlIE5ldGhlcmxhbmRz
+MQswCQYDVQQGEwJOTDAeFw0xNDA4MTcwMDAwMDBaFw0yMjExMjYwMDAwMDBaMHsx
+CjAIBgNVBAUTATMxEDAOBgNVBAMMB0NTQ0EgTkwxKTAnBgNVBAsMIE1pbmlzdHJ5
+IG9mIFNlY3VyaXR5IGFuZCBKdXN0aWNlMSMwIQYDVQQKDBpLaW5nZG9tIG9mIHRo
+ZSBOZXRoZXJsYW5kczELMAkGA1UEBhMCTkwwggGiMA0GCSqGSIb3DQEBAQUAA4IB
+jwAwggGKAoIBgQCiskFD5ng2ZNtaYIWrtO2dzXywp4lHVf6ietxAiItcMuRtkUUF
+TV0SrcI814PTtWNcx6gnTLuijQW3UC4uQfOKJ2vpF09sQOZrdN/mdtkRnHqP6xpL
+HLsLBjo9eJ4lPufKPa8/z/JjICaMSX42a62RQJHJLQ+MFFNzxqyul/MFrHDmLQ8m
+eFIO6tFyaSzAzoY4DnwJ1KLZPFhS/zifDxZdsLTXv8g8A9plEsXbCShlfPGPnbtR
+oXnCMAQwkorGxM0bb870x1CQyagBk4tfm98HUpjZi6zHct3AlgYGOtAULSvkBiIu
+sH94ZDlaTRzqzyvgZOz2uWaz44ZOnmQzxo9GKQ8T9KGXGhFOtZbBhuK/1mPK+AD7
+AF0CmNwYXxPQfnx6zRMd/wUgeew8zslHAV4zhxbxZhOv4Wede5qehv7NMt3TJOJ6
+bdfixzg+5wM2956ENyY5Y0pkaXGK7n6BbtmbMf+wx5St/KPqNfAETvCDyNZERD1Q
+MenAWS6iMcSfkEsCAwEAAaNkMGIwEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8B
+Af8EBAMCAQYwEQYDVR0gBAowCDAGBgRVHSAAMCkGA1UdDgQiBCDnlDBY+j3XKGYM
+CIin/0Ea11deOFL4Ihi/Tjk0oxmXVTANBgkqhkiG9w0BAQsFAAOCAYEAinXV3nXp
+3+9XS5CF0oRHlj1y73D+7AOc8/4NdpNI15SPg3Kb81UBPxecgsFr56QZrdt0NHo+
+B2KiJ+GdOXmOtB3yCpQE9RwatqPwrw+2ZNxg26d1Cka6CuWlIfhd8N0sKkftDPYH
+/MbuXXQch+Tj2zzR//I2SSxI2jfOuxvdaUpRiFSZY8fR8hnkcxyQ1SaRPhSuyabQ
+DPznuMZS55LvjNr8vhuTjhzD70guGWCxBVLb+R7+WcSIzi8D9CeBSskI6r6GwbRQ
+nZPHWUxQH+CjRmFoMWw3QNXPqWZHc3AJk+jpwi7umJOGlbnEuIbyrSfPMQ+v390V
+HE8jedUbTisDrIqx/AsTZ/Qbi0jcjfP1lk7JULaKhaNKDomj/NX5OWXI9rVrXSZp
+NdJGN0stNP4H3ifIrw6OLeshHwWLO7rafXk2akPzKt06BEIcLqD4giJDU7KiqF4c
+8CRfy73B6u+1gfxmWI5f/jz8Qi1hsD5Suv+eh+Y4ukfPmtaKIE4b/r/q
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIE1jCCAz6gAwIBAgICAtQwDQYJKoZIhvcNAQELBQAwezEKMAgGA1UEBRMBNDEQ
+MA4GA1UEAwwHQ1NDQSBOTDEpMCcGA1UECwwgTWluaXN0cnkgb2YgU2VjdXJpdHkg
+YW5kIEp1c3RpY2UxIzAhBgNVBAoMGktpbmdkb20gb2YgdGhlIE5ldGhlcmxhbmRz
+MQswCQYDVQQGEwJOTDAeFw0xNzA4MTcwMDAwMDBaFw0zMDA4MjYwMDAwMDBaMHsx
+CjAIBgNVBAUTATQxEDAOBgNVBAMMB0NTQ0EgTkwxKTAnBgNVBAsMIE1pbmlzdHJ5
+IG9mIFNlY3VyaXR5IGFuZCBKdXN0aWNlMSMwIQYDVQQKDBpLaW5nZG9tIG9mIHRo
+ZSBOZXRoZXJsYW5kczELMAkGA1UEBhMCTkwwggGiMA0GCSqGSIb3DQEBAQUAA4IB
+jwAwggGKAoIBgQC4n4dRYkZ+jqWukulMrvNYhY/KH2IIMYhy2KYqFGNkQf+ZoK3g
+Er8mwb/cIo9uYo93lNsGhIrFJ4xbTprjjSATUeN9YePentBBb8PhoMUYfOpH04ck
+piXykUHp/SRHIiBbhFY4YMjyaZzkn9m9nDIlfo5QWXUl3fRXttfbB+djZlLMr3El
+aX9b6CjAkK39/EhuJo5tseAdoW3WuuYTcRhdHqSnamcVPHqgf0WZ0n06Saj/jWY3
+KBxNZu9jOwP//Z7u5ONiagzZGaTw7x+AoeWm6MdFqOWZzbGyVH0njqM8BJg30WSI
+mhhFd3f6koxZS9XgZ41y1rhPjBH81QEDKppiKkthSuTpuTT2sGso18tEhGWmbSzN
+uBKswby4sndGkGwa2sGAFFUl+QmxTd+doa5W4kdcrF3E97d1Zi55rcvM8i1NWWVB
+JemTC6yX9tRFoZqqljvUjpcey/NUfOpmlgbjqY5vUZMAQTcfGdQ9htXjUKAfi/0t
+Z4+QAocriUZkunkCAwEAAaNkMGIwEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8B
+Af8EBAMCAQYwEQYDVR0gBAowCDAGBgRVHSAAMCkGA1UdDgQiBCAgXYdQKkv73Pr2
+hcP4vBQV2UagN95VLTEwVFfDPOSHJzANBgkqhkiG9w0BAQsFAAOCAYEAjhTt1mT2
+wgjrvJW4bTfGxCMjBdYz0Y9Bi6p6Ys74y+Z1xi0O7ja9R0VdZ9M6xODOyTaqYyFn
+Nzy6SgHrWHchySlMmgUuzq0xQc0tfXq6xihJ10vtCE8jei9N+zlIpIkIk+49PbWt
+7RIsnmc3jogq+XNOsIMrqq3J4sFwT9gP8RNSzxSc7Av+lQkmLi5WjVi529gxROsp
+7+CbwWOe9gaq17BejT3bFNP+5JSok/RBtHCd77TqEpeOpg1D0+8XtoCSNn5wK/Zs
+jWzG8wwc6Luu2ggWTxq40uh2lUMrXD96RipKdd/NmDIEkOQh5YD4/Zg1+Rhxq3sO
+aXHMp/piCOuFE6fiACmaf2Vk5n1bpnBjrbKV/vgZHUG3AYkNiKQL0+QDnh5WwtVb
+jKbnvSBLRjtPKPtFhHeEGvR4l6BQ+q4EShM3I+vLsnTT0O/u/zCeSW1PIMjTr9aO
+7mNbkJXoNerU6Ts4aBdDlzLn8MIgVIRI2CcTzmc2BALbwPaEOMcCOItb
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIE2TCCBGCgAwIBAgIQafeis11UobcRYdKbzVZZlTAKBggqhkjOPQQDAzB0MQsw
+CQYDVQQGEwJUSDEkMCIGA1UECgwbTWluaXN0cnkgT2YgRm9yZWlnbiBBZmZhaXJz
+MScwJQYDVQQLDB5EZXBhcnRtZW50IG9mIENvbnN1bGFyIEFmZmFpcnMxFjAUBgNV
+BAMMDVRoYWlsYW5kIENTQ0EwHhcNMjAwMzE4MDMwNjUzWhcNMzUwMzE4MDMwNjUz
+WjB0MQswCQYDVQQGEwJUSDEkMCIGA1UECgwbTWluaXN0cnkgT2YgRm9yZWlnbiBB
+ZmZhaXJzMScwJQYDVQQLDB5EZXBhcnRtZW50IG9mIENvbnN1bGFyIEFmZmFpcnMx
+FjAUBgNVBAMMDVRoYWlsYW5kIENTQ0EwggG1MIIBTQYHKoZIzj0CATCCAUACAQEw
+PAYHKoZIzj0BAQIxAIy5HoKjOG0oD11vflDmQd8VL3EJ7VRWtBKx2hl/txEjrNOn
+KZAdGnGHRwATMQfsUzBkBDB7w4LGPYwVDDxyCArOBa+gwr6ijk+yJ4cTkWXvupH5
+D4qlgUpQOtTrBKjH3SLOKCYEMASox90izigmizm1VBbwRHwvt33hB9zSpi6IDqU+
+62LVfLQ5ApXbyZQ6t4aW+lBMEQRhBB0cZPBoz0X/oqY6gbfBP2uIR6PnfvFP49t/
+yv4MvRDo6CbgNDbWRqrvh7LiR9SvHoq+HXUg+cKkXLHrjpXP1VJitwsp/uxYZOGc
+BU/5kSkoDkZGIXeRgRFCggNBJjxTFQIxAIy5HoKjOG0oD11vflDmQd8VL3EJ7VRW
+sx8WbmysBCWnzzq2r2t/wxA7iDIC6QRlZQIBAQNiAAQpxoNwplvrRviDTADj+MDT
+MTCED1YpNST9m1ckDfJYHwZPjqV8FGSxf8iGXxQIC9U1g/inUAZuRlnfF6oYWkHV
+Zc8ExKTMSa6j9PUTblWJRX6HrvpPj2XeAI/J8B5qDc6jggF0MIIBcDASBgNVHRMB
+Af8ECDAGAQH/AgEAMB8GA1UdIwQYMBaAFFBdTFBq/5XSIQeAsVq90aS81ql7MDYG
+A1UdEgQvMC2kEDAOMQwwCgYDVQQHDANUSEGGGWh0dHA6Ly93d3cuY29uc3VsYXIu
+Z28udGgwNgYDVR0RBC8wLaQQMA4xDDAKBgNVBAcMA1RIQYYZaHR0cDovL3d3dy5j
+b25zdWxhci5nby50aDBtBgNVHR8EZjBkMDCgLqAshipodHRwczovL3BrZGRvd25s
+b2FkMS5pY2FvLmludC9DUkxzL1RIQS5jcmwwMKAuoCyGKmh0dHBzOi8vcGtkZG93
+bmxvYWQyLmljYW8uaW50L0NSTHMvVEhBLmNybDAdBgNVHQ4EFgQUUF1MUGr/ldIh
+B4CxWr3RpLzWqXswKwYDVR0QBCQwIoAPMjAyMDAzMTgwMzA2NTNagQ8yMDI0MDgx
+ODAzMDY1M1owDgYDVR0PAQH/BAQDAgEGMAoGCCqGSM49BAMDA2cAMGQCMCoXFxfD
+V2PPijEkq+YCkewWbh1TaDIQ4jEQiOz5Y29yMo5lIE48Oh+PoTWBQPmudQIweL/j
+G0tCUD7pqYtyyuPwwa2Ptp0S0wPjAWNu+2Tm544vn81MmtrQqeXa2o8IrQJk
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIE2jCCAw6gAwIBAgICAQEwQQYJKoZIhvcNAQEKMDSgDzANBglghkgBZQMEAgEF
+AKEcMBoGCSqGSIb3DQEBCDANBglghkgBZQMEAgEFAKIDAgEgMEMxCzAJBgNVBAYT
+AktSMRMwEQYDVQQKDApHb3Zlcm5tZW50MQ0wCwYDVQQLDARNT0ZBMRAwDgYDVQQD
+DAdDU0NBMDAzMB4XDTE4MDUxNDA2MjcxMloXDTMzMDgxNDE0NTk1OVowQzELMAkG
+A1UEBhMCS1IxEzARBgNVBAoMCkdvdmVybm1lbnQxDTALBgNVBAsMBE1PRkExEDAO
+BgNVBAMMB0NTQ0EwMDMwggGgMA0GCSqGSIb3DQEBAQUAA4IBjQAwggGIAoIBgQDY
+MYYLabgMvhGp8VxF2hGCQxvdVBPixJNUDHBwgnTfusFSwLxSLGkoaItuWw95CzhP
+P1jb11d6j6z45CS+ozjE/kGxIGAKvkOiiJHQXL8vTVqKJ5hTuGBwdGOUc5jicTOf
+/He7Akq3JKZ9Lc9oS+YgLY3FgLHQUXxtdzQt97AdZBsUnKGf7c2s3tjuXZbiikmR
+0SVYQ+SREi2CmfhXoJkBEUHdism01uJE81Bq+ES7qivfiXWEEP/JOT1KsQkUM5Qt
+GzUpJDWFMg1isBFZb4vEJfjqTVLjYeLeRKr0hO2XTb3Z6uB45irwpzdkYbtusQe+
+uO6vjT9BF/mhWQurFpKyhfkzeiXW8nwiGOpfN6+zLifG4EtqslIiZfvrV1wnYKw6
+LuLSNvzAJ1/7IR1e8iKpoAryWjSUQbbTw5PZsd1xkU65+3q6lIg1QRRELfvjeCzN
+kstSCvscJlnkL+d9ebhTeXWiJUbAJLrt5G6mcmyxAkM3OPsK1BkC9JTKEyMn/I0C
+AQOjcjBwMB0GA1UdDgQWBBTzfxicV1tiawQYNfX6wkaOjGh6FzAOBgNVHQ8BAf8E
+BAMCAQYwKwYDVR0QBCQwIoAPMjAxODA1MTQxNTI3MDBagQ8yMDIzMDUxNDIzNTkw
+MFowEgYDVR0TAQH/BAgwBgEB/wIBADBBBgkqhkiG9w0BAQowNKAPMA0GCWCGSAFl
+AwQCAQUAoRwwGgYJKoZIhvcNAQEIMA0GCWCGSAFlAwQCAQUAogMCASADggGBAG8w
+OsFPCDPi2j9h/JfQkw/2PhwW10rEfiUEajfAZMfc1RMvXPcc96tps+qKpUTro53A
+nlqDSVhlwLFq5IGcjcEcPmsToWzQdleyr8znwXW4E2KaUs9zf9r/uravH2RWev8O
+YltK0l1xGnHfVFTPXwFrxGpJCD38FEuj6+FMoZdGbKoz3bxSTIhUPdJUIcHfGlRJ
+Mz2KJTtmk+4jvPrgW+VOkwGtUOogjMl9fMf98vrYn9rytrO0C+RK5+5Ke11ntQ1/
+D6t82+8PG2luNccTiDvXz89wzuykV9Jo3Y+jsyj6Wcw0ChSbjRC2vdlnTQ9aKkW7
+idnREgV9Nl79jzhvtFuQ+ESY/2+mUINevoDqqVkAZBPSxXMcj5hh/0FIJMfRO2iK
+uH2Q3SpFWmEnzqVGBxc1mXJALWObDSALTnnjtAmTh5iv14vBTpWO5ZYDB/M13+Nn
+VDSRcjwnX4vBLvAKr+9h/mIYEzeZyvEyndxVait7E3Ek2/nXvxSn7gZJLtDsEg==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIE6TCCAx2gAwIBAgIEAQAAATBBBgkqhkiG9w0BAQowNKAPMA0GCWCGSAFlAwQC
+AgUAoRwwGgYJKoZIhvcNAQEIMA0GCWCGSAFlAwQCAgUAogMCATAwXzEUMBIGA1UE
+AwwLQ1NDQSBTZXJiaWExHTAbBgNVBAsMFE1pbmlzdHJ5IG9mIEludGVyaW9yMRsw
+GQYDVQQKDBJSZXB1YmxpYyBvZiBTZXJiaWExCzAJBgNVBAYTAlJTMB4XDTA4MDQz
+MDE1MDAwMFoXDTIzMDczMDE1MDAwMFowXzEUMBIGA1UEAwwLQ1NDQSBTZXJiaWEx
+HTAbBgNVBAsMFE1pbmlzdHJ5IG9mIEludGVyaW9yMRswGQYDVQQKDBJSZXB1Ymxp
+YyBvZiBTZXJiaWExCzAJBgNVBAYTAlJTMIIBojANBgkqhkiG9w0BAQEFAAOCAY8A
+MIIBigKCAYEAoP4WE6fX9TnY9pieRvSy6bYobHNixwISlSUOEpofL6baoJsv0QY0
+CF1imUWdS9cBJ8EXTCaMek1o528A+15KB6IpuqQiqFw9nJYIxheWdUlCtH/OAbXE
+AzT+tQ+fgyL2Chvm2iTPEQtlqw4NoPq6c3h6AUQCJCeU/ge9oEDB2hZAjUD+CHG0
+JWbVDZCm9408pRzZ4JNOa1nEcD5gA1CQb64FhlFPHKctI8PhBjSkfN0rhYnUoOnr
+faEsTakHQB187EwdxhzpW41yw5PKW6jA9aFJGUO6KmioLV7gqhQ/eOjXIfdNU/2z
+dIsgGiTM/P66nGOPRW3ejGqxbXy0sRfTEBgHoKCveuFirpeE0GbgOMF32viaIpTx
+TIYczQM/y2oeSrMYRzbwklCygq3CzdLm57lMg0BtjwVX81L5+/UBfQSJGf7i5xSz
+bjoNA4AeR/Z9v85k/CwBO2XCWxD8jZf0UB6uh758OOJEFFgVoidK8r52cEtRdA/W
+69lk9KTyZkSBAgMBAAGjRTBDMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/
+BAQDAgEGMB0GA1UdDgQWBBSziw0bD8MQoxFsRap/woMyknYr9DBBBgkqhkiG9w0B
+AQowNKAPMA0GCWCGSAFlAwQCAgUAoRwwGgYJKoZIhvcNAQEIMA0GCWCGSAFlAwQC
+AgUAogMCATADggGBAHzgZwhw7fUxO0UlhMCDONPnn5P7oHXMBMvgecL9SauMBJMJ
+t6hMY+6zso1gINW903V5W3Cx/n3P94fb2g2hqCfRRQJmsiLov3F6cxuB21YORN7m
+/kgUc3lSlZXO1V+mz1tcMI2epfi8cbfZfUNUEFrl3Ppf25OiryDScrYY0HM0/iGF
+I7WldYsS8tDqJaM0xLVXWU84AwYAHfkixfH2IoWCvqMn4va8FGi3gLqFCQ0f7aOW
+rQQDRtygoS5c+bfg6l1UFW/q6sD9QUwjSYdajFyrMEfQDRYjiIG1Py8bNnWl1sQr
+0mHAnfvnFNsQT7ukYe73PM9WZ/msL6SxuVihMJgVu5yHl7B8+3D1jtqRqtkqYsuU
+gg6QwTVYMnBH65YhT8siAlv1nfUcmDt4rSrpHoaDTKiBVfW/2cZTR8YZgTCZedP6
+hys/suZigPbhrsZGn39xFngHteI8WulYIIFPBfnLYGhNnDDVM4H4Tqo9WudrK73z
+CIkjXpy6Qyuq+ffgEQ==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIE6TCCAx2gAwIBAgIEAQAABDBBBgkqhkiG9w0BAQowNKAPMA0GCWCGSAFlAwQC
+AgUAoRwwGgYJKoZIhvcNAQEIMA0GCWCGSAFlAwQCAgUAogMCATAwXzEUMBIGA1UE
+AwwLQ1NDQSBTZXJiaWExHTAbBgNVBAsMFE1pbmlzdHJ5IG9mIEludGVyaW9yMRsw
+GQYDVQQKDBJSZXB1YmxpYyBvZiBTZXJiaWExCzAJBgNVBAYTAlJTMB4XDTA4MTAz
+MDExMDAwMFoXDTI0MDEzMDExMDAwMFowXzEUMBIGA1UEAwwLQ1NDQSBTZXJiaWEx
+HTAbBgNVBAsMFE1pbmlzdHJ5IG9mIEludGVyaW9yMRswGQYDVQQKDBJSZXB1Ymxp
+YyBvZiBTZXJiaWExCzAJBgNVBAYTAlJTMIIBojANBgkqhkiG9w0BAQEFAAOCAY8A
+MIIBigKCAYEAsZxHWknuRqDDgHEJlBVVHGv5UDEAYcu7VSdbvnqJ8OxoOBM0QP5f
+YZZpWxtXY0dy4ny9eZiQXVVFw3lKzgWnSYRqcaSkaYhgrjsF71S701U68lr/wPEX
+cnqb4UP7M6ZF2TJkDlFdZRLFAZ2Xm/BVCClBvikmMfwHHgxYamP+o/oHB0xzGfLL
+1xC+R0MZzjCn4WaduVYLp05+UsmDFANxmm3Q6UNJoR5aH6ajRux5GaTXu3JYSOAD
+Dai/SA/a+ZxJVuzNO98JaLgvzw7Cvr9KyoOD2nPMBGSjSeLfvevX9tMc7XYFoS7o
+khGqn8VQJz6xYrmQIwbAJlz5os+OYJqVbE7W1oqSJfeTTkQy6eE+rq9fIKMX/nCL
+ujN5Tmj87cm2x4jqZD3u/+4PKXHGmNjCVQVe6KqcKUg6C7tWG6lhRIenIVT1AcEu
+JQCSzzI/RYYcSzfj2yQYbz8cQtO6Gr3/rP5BB2BSWmLQxiAQ3IUN8h9FJVdQLxzj
+QM7f0Rz7AYFfAgMBAAGjRTBDMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/
+BAQDAgEGMB0GA1UdDgQWBBR/tJ/Vzw/j4SyudCzJLiBc+SgOajBBBgkqhkiG9w0B
+AQowNKAPMA0GCWCGSAFlAwQCAgUAoRwwGgYJKoZIhvcNAQEIMA0GCWCGSAFlAwQC
+AgUAogMCATADggGBAHy1/DjTFSl/rdNB39lcV21YUHKzXBq9u1oB0dXIncQ503pI
+6u3mWf5vSO7cFrsBO5azjPcw4ShVBqw+5GyT9kcBBskpBUaC0rSi1SUfJMP2/1AK
+KG6cc/P6FvEF9uk+LRXK5i1wBHz47INEyzC6G5KTTKNLWbdbKdHX73MIwlZ5vrbb
+/6n6P8xQmfcFhLgMU21bpTdoRnL+2xL9LBhMRqai/FWq9PdNjVtCNUEQhdvJTZ0x
+2yZYPOe0ZPKeNeMhAeEAFfyn+8ctnxsIoyAkN+aSNV7cKH09VFa7js/+cuEQN9nj
+RJeb9JD+Q7sUEZFMFPQDwc2D2DYUO5vwBZcGHIlfIdcsXVgb5PqC7pl4w+qqI2tg
+h3q1P+YU5Od5Btt8m7Soou15HqI9w+TrApMQesawzJBUUZy7o3lq5a+zrpXITVL5
+xFiXUKUzji/CfILkQxBdk7t1zlTv4lUtq4MRGgGnuNr/WYbSykpKJkcwp0s7UbZo
+U4b17jPsOSvCkbjZzQ==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIE6TCCAx2gAwIBAgIEAQAAGTBBBgkqhkiG9w0BAQowNKAPMA0GCWCGSAFlAwQC
+AgUAoRwwGgYJKoZIhvcNAQEIMA0GCWCGSAFlAwQCAgUAogMCATAwXzEUMBIGA1UE
+AwwLQ1NDQSBTZXJiaWExHTAbBgNVBAsMFE1pbmlzdHJ5IG9mIEludGVyaW9yMRsw
+GQYDVQQKDBJSZXB1YmxpYyBvZiBTZXJiaWExCzAJBgNVBAYTAlJTMB4XDTEzMTAz
+MDExMDAwMFoXDTI5MDEzMDExMDAwMFowXzEUMBIGA1UEAwwLQ1NDQSBTZXJiaWEx
+HTAbBgNVBAsMFE1pbmlzdHJ5IG9mIEludGVyaW9yMRswGQYDVQQKDBJSZXB1Ymxp
+YyBvZiBTZXJiaWExCzAJBgNVBAYTAlJTMIIBojANBgkqhkiG9w0BAQEFAAOCAY8A
+MIIBigKCAYEAlFu2GQrap3u1ZfOwf+7NVIKEOzozJEAEbDHcrWMoHpMkiLT3O4+U
+f6e2yHvHhDX+DAp8lNSM4DEMMV2PxhvsRf9U+ogZqUks0fdn2b4pep6pQ70RmW2o
+16Ue7W0tvICzI0+dltbovC8U2MvaUYwtu7nwLFMqfo4esoj6gYzTZ4rzeYJgd4lY
+M9r8S98QFy70tSJN4FJaQ4/10OB1Ow/Gmfs/+M98QR64kmDdh0bdN3BJkmXvRE//
+i8o3/l73IT+O9CLt/F0ioRalRXxKyFOUKmFr1eMW2QNBUGqZLJ9cgDqJNlMtV2oH
+aeux7MB8Ltn+fvKU+iSH+63k3wPkFaPtE/0ENc1OuQHilQIoHHuMKynGZ0CX+CTc
+euUYp59mG7rypS6zV98nwiuTqs1U7XmpOwLmst3HXvtj+yNfdfclzBQ7gj3urXQ3
+QqGlrxLV76qEHkeXhgIWp3RUjyEpS13Ik5thKu0OHsyfFILLM1pZ9M9141QGDk3W
+HJFuRQ3/gtnNAgMBAAGjRTBDMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/
+BAQDAgEGMB0GA1UdDgQWBBQ6Fad2JCBVQMY3NIL0eYMw6YIcMzBBBgkqhkiG9w0B
+AQowNKAPMA0GCWCGSAFlAwQCAgUAoRwwGgYJKoZIhvcNAQEIMA0GCWCGSAFlAwQC
+AgUAogMCATADggGBAFtXgew9BHp8YrexvwMofJqTfdtqOahJb2C2HBxfOQNnoQhu
+sWWT3i1ithnJ9kro0On0BKSuSTJqZyOMo8gCn14itOsUOQFnajxlnA8E5OwC88NB
+kYrRLDWxijCLGk0rxfft7cQ2jQM5YvGFyt9rvt3tObru2l9QEMDAm5TJXfpOOzZL
+ZGFg+XPAC4mdyHFgEcoEKlt5ejDFcrMEq/IhNmf8Pa7FMtRYCJFFpcjF9FSfYBz6
+CwsWPJS1qVIAIKRHfqlm/dqVRdxb2x4eUB36W+sw/UPuKpmBhCkKOLG1KC00r7ZG
+ajuXaWhmqWcpDoYXzNlx/tUGoWvTbCr4HqJwiHW6zHFI+DNsmSzlaT4vfG6AswiY
+lRqJoRbmI4PMmwroMCtftwYRrk+iDZFal82i9Wz/xpQP5vr+H0b3dLuQu9z2cnk6
+amuv92kV+MpRj+Dztv+d5KYWtkGSycBCiHYESWsB7fzUDe5xYcp6LldxNfr1jl6W
+4F5CRGX3eydWtIawow==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIE6TCCAx2gAwIBAgIEAQAANTBBBgkqhkiG9w0BAQowNKAPMA0GCWCGSAFlAwQC
+AgUAoRwwGgYJKoZIhvcNAQEIMA0GCWCGSAFlAwQCAgUAogMCATAwXzEUMBIGA1UE
+AwwLQ1NDQSBTZXJiaWExHTAbBgNVBAsMFE1pbmlzdHJ5IG9mIEludGVyaW9yMRsw
+GQYDVQQKDBJSZXB1YmxpYyBvZiBTZXJiaWExCzAJBgNVBAYTAlJTMB4XDTE4MTAy
+NjExMDAwMFoXDTM0MDEyNjExMDAwMFowXzEUMBIGA1UEAwwLQ1NDQSBTZXJiaWEx
+HTAbBgNVBAsMFE1pbmlzdHJ5IG9mIEludGVyaW9yMRswGQYDVQQKDBJSZXB1Ymxp
+YyBvZiBTZXJiaWExCzAJBgNVBAYTAlJTMIIBojANBgkqhkiG9w0BAQEFAAOCAY8A
+MIIBigKCAYEAuOVBr64eMBNMR9L6CkFpvutX/avVcnMMfOkDXsQsFKjNeQhjl14u
+4f3xkbyqxrtuNBeRux2pgT4qemChZQddC89MjF7Nh3DxPJjRaPGS9xGOlH5j7BCt
+fO3l7swHV78CrDXaub3ksk/Q4Kow5UEnQL8CjryrmULDTiKuWzZI8UafXInKB/eu
+BWnBpPJgKW911b4Ku+EqgBQDLV0a+9o16YoKKin4ZL6gQH+JZYCt4u9J6AGYUsMn
+tR+77Urkt0x1KanTVmlB2+nkuVXkLnOhwkoeqDVIqJ3XKLQr0e2aEOLrmaavy6vB
++KwrHVLinxonob28rGZPciE1Hnj7q++4VtK93CRqPSFCrxtR8lgm2uEN4jNsaN2p
+29oHaBhq/yjbRVqXN01BEkB6aDkpzG4DhSl5yC5HFO+Vv9MgmL/z2jEMIs/IjkWv
+4wTtUPg8ykJ2rABOCy7qM9ejIgU/roHstJyH5rIwfvkQIYXgaBkIM9AmT4MIksoQ
+fJRnJuCDwvk1AgMBAAGjRTBDMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/
+BAQDAgEGMB0GA1UdDgQWBBQqCOb5m9L6KDoeszq0gYgRxStQATBBBgkqhkiG9w0B
+AQowNKAPMA0GCWCGSAFlAwQCAgUAoRwwGgYJKoZIhvcNAQEIMA0GCWCGSAFlAwQC
+AgUAogMCATADggGBAA0OmFE4U8jDZeFsTrOrxWVMRRik0W3Gazht38XMjfQ0RfNQ
+xZY2b5fzG2hbTqA49qP5ojzupKmtUG8p6mF4BH4L3ZOl0cDlIAFYVhrfcskOtYMv
+dB3/3TUDyIwWYRrtYXyVD4TUQ/3kH2BIw3hRdovAJSVr8qH4qOTMgmWRWJeFN69e
+Y/K9hhQ3CSMivqW0WEA2YM5mUKyLp0RO5yuLmxyaKP9eTtMpqNFFN1SM95JdYTNg
+3e3SFmfw1pkSqMPgVSJNmPdazmmY/jRPK0d/D1uYjbVvggoQ29DDeAcS42jVR4Uz
+f+co8vDRLwSkteVgtVcL3FeNEhRIimw9qv6lKvwMm0k7r7i02qnlmjbbkde+0r8/
+AxQ2bUJ+MocEM03BOC4SF/uQDPKDGUTVyGYaVAQ1gpZklWzXkB7u46+TfjPWSlUL
+1JBQEfDUusz1wqiOfs6zAWpP7PegSU7yuPnRi3F0U0Likxjwsnvgbgg1xB64kGCl
+ge3QULrcC2E+5f4RBQ==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIE6TCCA1GgAwIBAgIDAuzfMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRL
+MR8wHQYDVQQKDBZEYW5pc2ggTmF0aW9uYWwgUG9saWNlMR8wHQYDVQQLDBZEYW5p
+c2ggTmF0aW9uYWwgUG9saWNlMR4wHAYDVQQDDBVQYXNzcG9ydCBDU0NBLURlbm1h
+cmsxCjAIBgNVBAUTATEwHhcNMDYwNjA3MjIwMDAwWhcNMjIwMTIyMjI1OTU5WjB7
+MQswCQYDVQQGEwJESzEfMB0GA1UECgwWRGFuaXNoIE5hdGlvbmFsIFBvbGljZTEf
+MB0GA1UECwwWRGFuaXNoIE5hdGlvbmFsIFBvbGljZTEeMBwGA1UEAwwVUGFzc3Bv
+cnQgQ1NDQS1EZW5tYXJrMQowCAYDVQQFEwExMIIBojANBgkqhkiG9w0BAQEFAAOC
+AY8AMIIBigKCAYEAxdCHI+1cmj6H6nNanQ5BjgHNmmaUKdDHnzBmOZ9OzXOZVt99
+RgbVcnJIYw694IKXK1KV0aWqh+WjQ+epn2GXFLjL9Ris0TKXhVT8EZDnznv3KeX6
+wme137YqZlY9y2A6oF///rR9JaW4evZoVERMmWSlhpfn/ANkHr3sfP6aFqZHR3On
+pT+ZYujJMzQK6S4rhsIgwYsA9tqVrgl7psVGySorHlsjer8YrnVDwenH1xHBZ5fD
+gJ1Vb4YUqbR4JbPitEC0W8sfC48wZeF0psFHLKErZbGChgAuO0H7bELuXgSxs2HT
+8mDbpgUu2gGdba4PMN/q8vg63d7SYzgH2B/Fc91GUlm0hQ/RCBsJsa/O/HZy4dcm
+5vNyEms3HUgVs5+ytEW+0vCwZnDUU3U+r6SV943w3qByLkp9JzZZiPqFRJP+DU16
+Ve7SOEOqY6X5ReqorutO8LDm5r9Rc9+AJtY8OHbBF+BH59CWUItkRjQdUxwTbyCn
+IWw7AQLqldpremxZAgMBAAGjdjB0MBIGA1UdEwEB/wQIMAYBAf8CAQAwEQYDVR0O
+BAoECEaVrRhxkYIfMDsGA1UdIAQ0MDIwMAYIKoFQgSMCAgEwJDAiBggrBgEFBQcC
+ARYWaHR0cDovL3d3dy5wYnMuZGsvQ1NDQTAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZI
+hvcNAQELBQADggGBAGsuKUtj8pkgaYfEpxj28YHTQB5weH12PtRykRLvHUjuwoAF
+HoNB7PbTjoqrXRymopQYw7gNMVIk/brLZ8Not+3S150uI8DoCtr4ru6nhfrC8Ai3
+MxZdQtihtv2A1ughClPmdQjtBZGAY1uO9njIlJIPZ2lqHeEZJ4wuRS80+GQDEQ7C
+GLG9rCaiocZRjhtu4GF9uHCIqNskAaXBLw9MGi3xcYOQrETt4p3whB+GnWuVNtsF
+LLmL0UKNwMBJSEE/QYmxkqEgbEcUMUVw9VmO2B3XZys4nzM719BG8MrAga5Mfn76
+SpBZ8gTOKIYCU1MFJ+SiMJwNx3ATSH7P/NgFWqgnduKmm/LGUO+Prw2is89UsIDs
+k0DIJZNbHvmUHrjgQHJlqbWqW0IY8dnkxHWWfydmO0scIEL1bbgQTH/zdiBUKrjw
+3XuZmHciYT2fJfpJbPQaVMhQLI29nGqCsjeRebHSVFhQNfDbzKlqsp56ap5gEkGd
+O33dl3DFGAQ5T1iIuA==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIE6TCCA1GgAwIBAgIDBekEMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRL
+MR8wHQYDVQQKDBZEYW5pc2ggTmF0aW9uYWwgUG9saWNlMR8wHQYDVQQLDBZEYW5p
+c2ggTmF0aW9uYWwgUG9saWNlMR4wHAYDVQQDDBVQYXNzcG9ydCBDU0NBLURlbm1h
+cmsxCjAIBgNVBAUTATIwHhcNMDkwNjA3MjIwMDAwWhcNMjUwMTIyMjI1OTU5WjB7
+MQswCQYDVQQGEwJESzEfMB0GA1UECgwWRGFuaXNoIE5hdGlvbmFsIFBvbGljZTEf
+MB0GA1UECwwWRGFuaXNoIE5hdGlvbmFsIFBvbGljZTEeMBwGA1UEAwwVUGFzc3Bv
+cnQgQ1NDQS1EZW5tYXJrMQowCAYDVQQFEwEyMIIBojANBgkqhkiG9w0BAQEFAAOC
+AY8AMIIBigKCAYEA9Hvc9foxl/7GwiBqtKRZuGkSrnusuQygfC0b9A3A741kVb8x
+hbhNx5btsaU5VXUrJ8iaxz6/8hTicT/OriAaJve/NjP+qF0xKv1JZmBoIOEQZprz
+u3lV85gNb313Wv41Ewu4SInNQc47lsHOwczFc5N7kTl+8MVfVFfgocrq9LStcNDE
+x5jOleVYc7Su95M/SdKD9/8nHhIbEmgh5/j8U9WhRpJ1aVWrRGP7aNVvv2366JDn
+96i7qJJdC1HB1n7+jS+62xCmZgDcdkup5BH4BsMxvzxU2Um1LiXj1G67SWN2dGLx
+OwuSUyu2UmDgAuZWrzkzOr3mXsbv6yA0l90po1lVq+76362650eF1aw+sJonmBoQ
+5FBLPeUlDhZQnsOxP/LTom4NahsUE86oeW56YBI5a+MzVFIAR1ezv3Yi00Hk4tkg
+EvzRKUzE/CvcwJXYiCzQcAchgwjDI7y7j+35CsJ7oSvMfPwgDZ9rToeHcVlo8wq6
+pNvn5O8ee4aOQNAFAgMBAAGjdjB0MBIGA1UdEwEB/wQIMAYBAf8CAQAwEQYDVR0O
+BAoECEuVn1TvS/gtMDsGA1UdIAQ0MDIwMAYIKoFQgSMCAgEwJDAiBggrBgEFBQcC
+ARYWaHR0cDovL3d3dy5wYnMuZGsvQ1NDQTAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZI
+hvcNAQELBQADggGBAK0/ucPx0RS57DV7MYv6MguOAgCU2ijmeUh2BtxtbMxjNjog
+v9lEgxDDeeV54dph19A5GagzcUzuX/ID0xmydx7WiPVEHSqArV0HxasUQ8g4E1AN
+nz03FmboNsclxYlFkwssed1iNFdKJGRTTzVBTuFlkhL3DlQkSl2v3/K55anun6BF
+XTo15vpoiuUW8pj0s6c5axO8CSBlrUep0Be9u3NDScbeETzKjfXlb5ZIUgPg/iz6
+jUAaDVooWzqvE2RlGL6SAiBV42VQTstqhxzE+vFm//yOMgO5WQgaMOFAMvWz9z9d
+uSxpA37nVWE+s2coeqbo4g1C5UdzrnaysyO0klGfzdhAsY7bgnd3gvJrFM4h9yTS
+0mZ1MIGrsVugD7aiJ2VYXjPeKR19h5bAH8av+uPHHDz7ogt7IDULP0oQcl2HoFzN
+sTps90CZL40GOf2lkuY7Mhfq0mpys7832kY65XH6vOoIUDkitqxWVQ68AH3AQDuO
+knBKjUE5vGgEQvwWdw==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIE6jCCBHCgAwIBAgIIPnDBgy/ErH4wCgYIKoZIzj0EAwMwgYgxCzAJBgNVBAYT
+AkNOMRgwFgYDVQQKDA9Ib25nIEtvbmcgQ2hpbmExHzAdBgNVBAsMFkltbWlncmF0
+aW9uIERlcGFydG1lbnQxPjA8BgNVBAMMNUhvbmcgS29uZyBDaGluYSBDb3VudHJ5
+IFNpZ25pbmcgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MB4XDTE5MDIyMDA4NDAxNVoX
+DTM0MDYyMDA4NDAxNVowgYgxCzAJBgNVBAYTAkNOMRgwFgYDVQQKDA9Ib25nIEtv
+bmcgQ2hpbmExHzAdBgNVBAsMFkltbWlncmF0aW9uIERlcGFydG1lbnQxPjA8BgNV
+BAMMNUhvbmcgS29uZyBDaGluYSBDb3VudHJ5IFNpZ25pbmcgQ2VydGlmaWNhdGUg
+QXV0aG9yaXR5MIIBtTCCAU0GByqGSM49AgEwggFAAgEBMDwGByqGSM49AQECMQCM
+uR6CozhtKA9db35Q5kHfFS9xCe1UVrQSsdoZf7cRI6zTpymQHRpxh0cAEzEH7FMw
+ZAQwe8OCxj2MFQw8cggKzgWvoMK+oo5PsieHE5Fl77qR+Q+KpYFKUDrU6wSox90i
+zigmBDAEqMfdIs4oJos5tVQW8ER8L7d94Qfc0qYuiA6lPuti1Xy0OQKV28mUOreG
+lvpQTBEEYQQdHGTwaM9F/6KmOoG3wT9riEej537xT+Pbf8r+DL0Q6Ogm4DQ21kaq
+74ey4kfUrx6Kvh11IPnCpFyx646Vz9VSYrcLKf7sWGThnAVP+ZEpKA5GRiF3kYER
+QoIDQSY8UxUCMQCMuR6CozhtKA9db35Q5kHfFS9xCe1UVrMfFm5srAQlp886tq9r
+f8MQO4gyAukEZWUCAQEDYgAEdMq1HQji+mKnCvv+7amuN0Kr+ILgA8qqKCvdjvmY
+aiOZnzzuxaAgEA0Xw0J/Mz3KaeoSgT7QdBwPnigUNtaN+V++eyt6yd9zotKY1ICD
+cRIhv0CTH8GuvGIDdD+r4g40o4IBYjCCAV4wEgYDVR0TAQH/BAgwBgEB/wIBADAf
+BgNVHSMEGDAWgBQcokd772w1rt9ATttdsnMMNHunczApBgNVHRIEIjAgpB4wHDEM
+MAoGA1UEBwwDQ0hOMQwwCgYDVQQIDANIS0cwKQYDVR0RBCIwIKQeMBwxDDAKBgNV
+BAcMA0NITjEMMAoGA1UECAwDSEtHMHUGA1UdHwRuMGwwNKAyoDCGLmh0dHBzOi8v
+cGtkZG93bmxvYWQxLmljYW8uaW50L0NSTHMvQ0hOX0hLRy5jcmwwNKAyoDCGLmh0
+dHBzOi8vcGtkZG93bmxvYWQyLmljYW8uaW50L0NSTHMvQ0hOX0hLRy5jcmwwHQYD
+VR0OBBYEFByiR3vvbDWu30BO212ycww0e6dzMCsGA1UdEAQkMCKADzIwMTkwMjIw
+MDg0MDE1WoEPMjAyNDAyMjAwODQwMTVaMA4GA1UdDwEB/wQEAwIBBjAKBggqhkjO
+PQQDAwNoADBlAjAW5ssiYJkXCMuNFf8nqzQNJwhMOS0D8xzUoJzvAZ+l1AV2cApG
+wqe2kNPXWiUO1ZYCMQCFfPejIhXGYyYA8owPNj0Re6cT0267YsbcMUUuLapwXKX/
+Nhn35EmK9D7LijgjPUI=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFAzCCBImgAwIBAgIBezAKBggqhkjOPQQDAzBxMQswCQYDVQQGEwJDSDEOMAwG
+A1UECgwFQWRtaW4xETAPBgNVBAsMCFNlcnZpY2VzMSIwIAYDVQQLDBlDZXJ0aWZp
+Y2F0aW9uIEF1dGhvcml0aWVzMRswGQYDVQQDDBJjc2NhLXN3aXR6ZXJsYW5kLTIw
+HhcNMTgxMDAyMDgzMDU5WhcNMzIwMzAzMDgzMDU5WjBxMQswCQYDVQQGEwJDSDEO
+MAwGA1UECgwFQWRtaW4xETAPBgNVBAsMCFNlcnZpY2VzMSIwIAYDVQQLDBlDZXJ0
+aWZpY2F0aW9uIEF1dGhvcml0aWVzMRswGQYDVQQDDBJjc2NhLXN3aXR6ZXJsYW5k
+LTIwggG1MIIBTQYHKoZIzj0CATCCAUACAQEwPAYHKoZIzj0BAQIxAIy5HoKjOG0o
+D11vflDmQd8VL3EJ7VRWtBKx2hl/txEjrNOnKZAdGnGHRwATMQfsUzBkBDB7w4LG
+PYwVDDxyCArOBa+gwr6ijk+yJ4cTkWXvupH5D4qlgUpQOtTrBKjH3SLOKCYEMASo
+x90izigmizm1VBbwRHwvt33hB9zSpi6IDqU+62LVfLQ5ApXbyZQ6t4aW+lBMEQRh
+BB0cZPBoz0X/oqY6gbfBP2uIR6PnfvFP49t/yv4MvRDo6CbgNDbWRqrvh7LiR9Sv
+Hoq+HXUg+cKkXLHrjpXP1VJitwsp/uxYZOGcBU/5kSkoDkZGIXeRgRFCggNBJjxT
+FQIxAIy5HoKjOG0oD11vflDmQd8VL3EJ7VRWsx8WbmysBCWnzzq2r2t/wxA7iDIC
+6QRlZQIBAQNiAARqcLTNDz1nuiuc31pDI2IYPjHFIPm70llBBI3bAu5qdjez9UXV
+mQSW7d6VS86BHDkwDiG3lONXCy1HUjh9vR3X2GY8UOsuNEOQg1He8tzCfeMYi9NG
+JWIAkzMrG/FSdtGjggGyMIIBrjArBgNVHRAEJDAigA8yMDE4MTAwMjA4MzA1OVqB
+DzIwMjExMDA0MDgzMDU5WjBgBgNVHSAEWTBXMFUGCGCFdAERAz4BMEkwRwYIKwYB
+BQUHAgEWO2h0dHA6Ly93d3cucGtpLmFkbWluLmNoL3BvbGljeS9DUFNfMl8xNl83
+NTZfMV8xN18zXzYyXzEucGRmMDkGA1UdEgQyMDCBHGVhYy1zcG9jLmNoZUBmZWRw
+b2wuYWRtaW4uY2ikEDAOMQwwCgYDVQQHDANDSEUwOQYDVR0RBDIwMIEcZWFjLXNw
+b2MuY2hlQGZlZHBvbC5hZG1pbi5jaKQQMA4xDDAKBgNVBAcMA0NIRTBDBgNVHR8E
+PDA6MDigNqA0hjJodHRwOi8vd3d3LnBraS5hZG1pbi5jaC9jcmwvY3NjYS1zd2l0
+emVybGFuZC0yLmNybDAfBgNVHSMEGDAWgBSXEaxF5Xr+bg0/rNmssmt1njV7pjAd
+BgNVHQ4EFgQUlxGsReV6/m4NP6zZrLJrdZ41e6YwDgYDVR0PAQH/BAQDAgEGMBIG
+A1UdEwEB/wQIMAYBAf8CAQAwCgYIKoZIzj0EAwMDaAAwZQIxAIiNWMPTeFI3Xd6e
+5cESIPmqUK3sNcryF39K9GX4TtAHTCiOjTFP9RNfrqjIljiMogIwQ6R+om/aSv6c
+/ghb22ZybLtrcBYrxGVQnz3ItUqy8NBrwYQfsqUXTEuOmj2Lov09
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFAzCCBIqgAwIBAgICALwwCgYIKoZIzj0EAwMwcTELMAkGA1UEBhMCQ0gxDjAM
+BgNVBAoMBUFkbWluMREwDwYDVQQLDAhTZXJ2aWNlczEiMCAGA1UECwwZQ2VydGlm
+aWNhdGlvbiBBdXRob3JpdGllczEbMBkGA1UEAwwSY3NjYS1zd2l0emVybGFuZC0y
+MB4XDTIxMDgyNDEzMDUxM1oXDTM1MDEyNDEzMDUxM1owcTELMAkGA1UEBhMCQ0gx
+DjAMBgNVBAoMBUFkbWluMREwDwYDVQQLDAhTZXJ2aWNlczEiMCAGA1UECwwZQ2Vy
+dGlmaWNhdGlvbiBBdXRob3JpdGllczEbMBkGA1UEAwwSY3NjYS1zd2l0emVybGFu
+ZC0yMIIBtTCCAU0GByqGSM49AgEwggFAAgEBMDwGByqGSM49AQECMQCMuR6Cozht
+KA9db35Q5kHfFS9xCe1UVrQSsdoZf7cRI6zTpymQHRpxh0cAEzEH7FMwZAQwe8OC
+xj2MFQw8cggKzgWvoMK+oo5PsieHE5Fl77qR+Q+KpYFKUDrU6wSox90izigmBDAE
+qMfdIs4oJos5tVQW8ER8L7d94Qfc0qYuiA6lPuti1Xy0OQKV28mUOreGlvpQTBEE
+YQQdHGTwaM9F/6KmOoG3wT9riEej537xT+Pbf8r+DL0Q6Ogm4DQ21kaq74ey4kfU
+rx6Kvh11IPnCpFyx646Vz9VSYrcLKf7sWGThnAVP+ZEpKA5GRiF3kYERQoIDQSY8
+UxUCMQCMuR6CozhtKA9db35Q5kHfFS9xCe1UVrMfFm5srAQlp886tq9rf8MQO4gy
+AukEZWUCAQEDYgAEYD75/vAe/cJBEN3usF784OiTEbJ7pGs2pUmzKcV5gXKMMfU5
+O0FHlg/FvI1MIzA5CTvPyWxbZbMy9uTSm+ZQ/albrGUTDWPRI4mW3srOE8H7lgZv
+AaTP26t4dyKtg3T8o4IBsjCCAa4wKwYDVR0QBCQwIoAPMjAyMTA4MjQxMzA1MTNa
+gQ8yMDI0MDgyNjEzMDUxM1owYAYDVR0gBFkwVzBVBghghXQBEQM+ATBJMEcGCCsG
+AQUFBwIBFjtodHRwOi8vd3d3LnBraS5hZG1pbi5jaC9wb2xpY3kvQ1BTXzJfMTZf
+NzU2XzFfMTdfM182Ml8xLnBkZjA5BgNVHRIEMjAwgRxlYWMtc3BvYy5jaGVAZmVk
+cG9sLmFkbWluLmNopBAwDjEMMAoGA1UEBwwDQ0hFMDkGA1UdEQQyMDCBHGVhYy1z
+cG9jLmNoZUBmZWRwb2wuYWRtaW4uY2ikEDAOMQwwCgYDVQQHDANDSEUwQwYDVR0f
+BDwwOjA4oDagNIYyaHR0cDovL3d3dy5wa2kuYWRtaW4uY2gvY3JsL2NzY2Etc3dp
+dHplcmxhbmQtMi5jcmwwHwYDVR0jBBgwFoAUp6n4SJ8IaBDPvx0G5201pVtLDlYw
+HQYDVR0OBBYEFKep+EifCGgQz78dBudtNaVbSw5WMA4GA1UdDwEB/wQEAwIBBjAS
+BgNVHRMBAf8ECDAGAQH/AgEAMAoGCCqGSM49BAMDA2cAMGQCMGR1WWpItYirQtzh
+cfPw7AZRTg2JcH8liXic4Ywvb9G8nOKPIATPqwRydeTEj/pOXwIwJJ3DDnBk7eV6
+pmT9PAQbbzXN7x0vznCHUtAMAk+MLrqTLSvsiriJMfZiQN/Pl4py
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFBzCCAzugAwIBAgIEAQAAATBBBgkqhkiG9w0BAQowNKAPMA0GCWCGSAFlAwQC
+AgUAoRwwGgYJKoZIhvcNAQEIMA0GCWCGSAFlAwQCAgUAogMCATAwbjEYMBYGA1UE
+AwwPQ1NDQSBUYWppa2lzdGFuMSQwIgYDVQQLDBtNaW5pc3RyeSBvZiBGb3JlaWdu
+IEFmZmFpcnMxHzAdBgNVBAoMFlJlcHVibGljIG9mIFRhamlraXN0YW4xCzAJBgNV
+BAYTAlRKMB4XDTEwMDEzMDEzNDkyMloXDTI1MDQzMDEzNDkyMlowbjEYMBYGA1UE
+AwwPQ1NDQSBUYWppa2lzdGFuMSQwIgYDVQQLDBtNaW5pc3RyeSBvZiBGb3JlaWdu
+IEFmZmFpcnMxHzAdBgNVBAoMFlJlcHVibGljIG9mIFRhamlraXN0YW4xCzAJBgNV
+BAYTAlRKMIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEAohbH2ngtcEVo
+gofwUKMo0ZiekFXjkuUeXfKNMnZ2ESC8IZhGO2wK1EjxsW0of0BWGT+e3Of0gyTf
+kXbdjWVpXm/8txWj+V1p0JGfac0bfWnf+AKHbMWtgqqVxvVPaC5ESFIF9uVRlWrx
+mJHQbs1l9zL2mhfRiDf8uU8y5tGFNbCLqulIyxh5b5KJU0DakZz/kIs5CC0v71DT
+q4XsgyAN+TZbDB39bzZPO7qRjykLs5m81qfigWilQOZPbpIH2ypvN9ziFOHk6aay
+SAK23e8EJhWSLLcvH7/f6PXbcSOmiJ6MAIFhPfWrq0fYDTYqWqa6K/7R1ZJS/0Ab
+z3/bsRhT91/wdZi0O1CsQhjN9WcEoMS2UOzn+AMiTyoOBDg4gDUuB/qFhBm5OqFZ
+QH9Ugi3/WJa2CJZP9SQG7tPHfnnNZhGFu9eAejMb4uto6LO1YUYDHpGtW9JcvbwE
+dN+lCavygLkE1ShLbj6a5docnB3dOQkPTFktA7xxAEvDU7Q6n6gFAgMBAAGjRTBD
+MBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBQi
+rKl79kH4sIVWUEy6Y+7KURqkETBBBgkqhkiG9w0BAQowNKAPMA0GCWCGSAFlAwQC
+AgUAoRwwGgYJKoZIhvcNAQEIMA0GCWCGSAFlAwQCAgUAogMCATADggGBAI6XPDfN
+3WdrqUvwiBP23o4vO7AO6WWSJI5JFnl0lWPewCJNPfTA0Mq13+3Sri6UsA6mfrjo
+MKOkM6VAKLmKqKEi0CqyMMAl9v5fd3fZOiieeUov/wM4qei70WJo7KbQSgSfrWM8
+qBRmKk1aK9UuRxXbg0ORZLY9py1rt9RuptHzUYOj19Iaj2Ms5UmziDSSL8PEW7bC
+KVf7dztYLZw+c0jb0b797P0ZERZpZs6DULn7XFs5OpUiTwQjy0MG/1AYLstcQTLY
+0NYxWzLY7Xh1SkP/6kH+lkR4t8IyUyqT8/A/96NCb85i14qDq1K2Ju8I2+8mj+vj
+7jG4YcDRsiTCQfbqHOr0AcWuQ1FWg8pITHXQN1ZHadllkIcIzNrxQVD8tZ5M39wC
+r7n8MKUShr7e4hIgbwxamEayPSL9sXF/e2pSvPDOc86dZ6AaQZZGK/s7F4cLClrr
+dyiNoW8LUDRZUqV7O4pB2i9gEyLbVk3zL0wr3qpj/x+xQdLXVLErV1YL8w==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFDzCCBHOgAwIBAgIBCjAKBggqhkjOPQQDBDCBnjFEMEIGA1UEAww7QXV0b3Jp
+ZGFkZSBDZXJ0aWZpY2Fkb3JhIE1pbmlzdGVyaW8gZGFzIFJlbGFjb2VzIEV4dGVy
+aW9yZXMxNDAyBgNVBAsMK0F1dG9yaWRhZGUgQ2VydGlmaWNhZG9yYSBSYWl6IEJy
+YXNpbGVpcmEgdjQxEzARBgNVBAoMCklDUC1CcmFzaWwxCzAJBgNVBAYTAkJSMB4X
+DTE1MDQyMzE5MTkxOFoXDTM1MDQyMzE5MTkxOFowgZ4xRDBCBgNVBAMMO0F1dG9y
+aWRhZGUgQ2VydGlmaWNhZG9yYSBNaW5pc3RlcmlvIGRhcyBSZWxhY29lcyBFeHRl
+cmlvcmVzMTQwMgYDVQQLDCtBdXRvcmlkYWRlIENlcnRpZmljYWRvcmEgUmFpeiBC
+cmFzaWxlaXJhIHY0MRMwEQYDVQQKDApJQ1AtQnJhc2lsMQswCQYDVQQGEwJCUjCC
+AjgwggGvBgcqhkjOPQIBMIIBogIBATBMBgcqhkjOPQEBAkEAqt2duNvpxIs/1Oau
+M8n8B8swjbOzydIO1mOcynAzCHF9TZsAm8ZoQq7NoSrmo4DmKIH/Ly2CxoUoqmBW
+WDpI8zCBhARAeDCjMYtgO4niMnFFrCNMxZTL3Y09+RYQqDRByuqYY7wt7V1aqCU6
+oQou8cmLmsi1fxEXpyvyx7nnwaxNd/yUygRAPfkWEKg0QcrqmGO8Le1dWqglOqEK
+LvHJi5rItX8RF6cr8se558GsTXf8lMrcCD5nmEBQt1665d0oCb1jgBb3IwSBgQSB
+ruS92C7ZZFohMi6cTGqThe2fcLXZFsG0O2Lu9NAJjv87H3ji0NSNUNFoe5O5fV98
+bVBHQGpeaIs1Igm8ufgifd44XVZjMuzA6r+pz3gi/fIJ9wAkpXsaoADFW4gfgRGy
+3N5JSl9IXlvKS9iKJ2Ou0corL6jwVAZ4zR4POtgIkgJBAKrdnbjb6cSLP9TmrjPJ
+/AfLMI2zs8nSDtZjnMpwMwhwVT5cQUypJhlBhmEZf6wQRx2x04EIXdrdtYeWgpyp
+AGkCAQEDgYIABBI2PMjVDGfKcuxUeTgnExogYBYtRxydeQ6fDAK7AU0gK3x2/2Ps
+w3kzV/AmUnConlFkgeKuKVFtjUSr9s63M3E3JmLODFQoXL6pjgedmeBM7gl+knLn
+FODsoth4VRzj1pXq7li8qxO6aTULv+EdvnFHWOdoGcRZVNT0oSi61+1So4G+MIG7
+MB8GA1UdIwQYMBaAFPxM4PdrZVek2e3IynKtBTVRe2dMMB0GA1UdDgQWBBT8TOD3
+a2VXpNntyMpyrQU1UXtnTDAOBgNVHQ8BAf8EBAMCAQYwVQYDVR0gBE4wTDBKBgZg
+TAECBBYwQDA+BggrBgEFBQcCARYyaHR0cDovL3JlcG9zaXRvcmlvLnNlcnByby5n
+b3YuYnIvZG9jcy9kcGNhY21yZS5wZGYwEgYDVR0TAQH/BAgwBgEB/wIBADAKBggq
+hkjOPQQDBAOBiQAwgYUCQAuJBHrPqyAbnBmSySBsA2gOTlnT7DGDqtX/gc+mx4nR
+owVDUoEzw6P0KgT5H0RwBKLHW3qt4QlJ+ax+1DatesACQQCdroAVl0VDX/X367Z0
+IxPhfVnS1LS/9Bqcjhv5FKyxF07q0/NUW+sp9I0NSrliNb9zCWxGz7Riw+N09ZJI
+JTk1
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFHTCCA4WgAwIBAgIEUBadIDANBgkqhkiG9w0BAQsFADBoMQswCQYDVQQGEwJa
+WjEXMBUGA1UECgwOVW5pdGVkIE5hdGlvbnMxIjAgBgNVBAsMGUNlcnRpZmljYXRp
+b24gQXV0aG9yaXRpZXMxHDAaBgNVBAMME1VuaXRlZCBOYXRpb25zIENTQ0EwHhcN
+MTIwNzMwMTQxMTM2WhcNMjIxMjMwMTQ0MTM2WjBoMQswCQYDVQQGEwJaWjEXMBUG
+A1UECgwOVW5pdGVkIE5hdGlvbnMxIjAgBgNVBAsMGUNlcnRpZmljYXRpb24gQXV0
+aG9yaXRpZXMxHDAaBgNVBAMME1VuaXRlZCBOYXRpb25zIENTQ0EwggGiMA0GCSqG
+SIb3DQEBAQUAA4IBjwAwggGKAoIBgQCwi6YcKoW8+LhlTRArB582osXDUtJsCNpL
+5BYnHhy4ND8QQ0xs64OnrUHORZXs1Sl7tgJQjFPMx8SQXOMBeYZ4nY79iLRMDQcq
+STQprSrAUw0XwHs7ae09qjo134iaL+k8Q38c4q6bdmCCV7nTyHl3B7KAB/TT7r4z
+rr0qdrt58kPJUV8xwsVgU12yG4x4P/DwqKbzyBhnkhfXJ94q10EeeL8mFrXR0Y7n
+J/QVfDlTEscjBUedNdGZnmcV9pDCOGpZIaGKZjZjJsRF65Fj4KRymbm0Axrl4v8d
+VUkMnGhIrybq5kjk3FMmrl0xYhLDkTFpnyJyL4krgqyJ50pjO9OlhiiqDLXp44HG
+t2/UbpmHP/v16sfdTSHd2U+fkRmruDzUliiL2Am3W4axNWrLFiQcEIFh0H2DJ+zs
+rAvpShgZ0KO4Z9MXCpBBWEninysxXOcWw7j2DlL2X1WBi0Qd0Fo254WzO+eI6wja
+OhCsk/C53SXai5/MbDkk8Wxig+xZv3sCAwEAAaOBzjCByzAOBgNVHQ8BAf8EBAMC
+AQYwEgYDVR0TAQH/BAgwBgEB/wIBADAbBgNVHRIEFDASpBAwDjEMMAoGA1UEBwwD
+VU5PMBsGA1UdEQQUMBKkEDAOMQwwCgYDVQQHDANVTk8wKwYDVR0QBCQwIoAPMjAx
+MjA3MzAxNDExMzZagQ8yMDE3MDczMDIzNDEzNlowHwYDVR0jBBgwFoAUyWb7wejY
+GSOxEpCDhh1DIQ52K8YwHQYDVR0OBBYEFMlm+8Ho2BkjsRKQg4YdQyEOdivGMA0G
+CSqGSIb3DQEBCwUAA4IBgQCUAj1TpStp28Su6h3FvPVsZmJOWW823lpgnTaQuLXp
+/YyuDdWmnTfn65FS302GWon83vvpx5Ss2XK64USTlEQ/CLBeQ4RM99hUcBkprky+
+JsDbRBOWLVM0iBpe64gt4zV3/hH2tGWnPIFCjjtRcahzCwV1q6FCE3Ongz+ssoVJ
+6w1HxlyS8zdD/gd8Hezby3pTyPPJ1K67jJFGYrBEUfLVDxSmNmQNptJ5sguQaB7/
+l7jpgbu6+1Hcm1/42EW2IeQEgE0m/4bSPudZZO1GxfZpCpspLYKktE9PyXTa4s19
+oNQRTFNtGi0oT/RjelSPWuj+nkiSxQ4XKRRPiTGX5+hMlHzH/CMIwYlQxDVwgiZ6
+teR0+8KKSoVeQ2BfquIJ7GYNgrfHaAnNbbtKjnww8Z/m4jBuOnxMOQwflOnVciek
+51bm6EcCr3xRx5eV819xl1FnlhkK5j0+cakXIb1D5dyPHfP3Iov/mmVKaBvn1x9+
+atn6Axf8icG4a11DJKeQa5w=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFKjCCBI+gAwIBAgICBE0wCgYIKoZIzj0EAwQwQTELMAkGA1UEBhMCREUxDTAL
+BgNVBAoMBGJ1bmQxDDAKBgNVBAsMA2JzaTEVMBMGA1UEAwwMY3NjYS1nZXJtYW55
+MB4XDTE5MDUyMDA5MjYyMloXDTMzMDIyMDIzNTk1OVowQTELMAkGA1UEBhMCREUx
+DTALBgNVBAoMBGJ1bmQxDDAKBgNVBAsMA2JzaTEVMBMGA1UEAwwMY3NjYS1nZXJt
+YW55MIICODCCAa8GByqGSM49AgEwggGiAgEBMEwGByqGSM49AQECQQCq3Z242+nE
+iz/U5q4zyfwHyzCNs7PJ0g7WY5zKcDMIcX1NmwCbxmhCrs2hKuajgOYogf8vLYLG
+hSiqYFZYOkjzMIGEBEB4MKMxi2A7ieIycUWsI0zFlMvdjT35FhCoNEHK6phjvC3t
+XVqoJTqhCi7xyYuayLV/ERenK/LHuefBrE13/JTKBEA9+RYQqDRByuqYY7wt7V1a
+qCU6oQou8cmLmsi1fxEXpyvyx7nnwaxNd/yUytwIPmeYQFC3Xrrl3SgJvWOAFvcj
+BIGBBIGu5L3YLtlkWiEyLpxMapOF7Z9wtdkWwbQ7Yu700AmO/zsfeOLQ1I1Q0Wh7
+k7l9X3xtUEdAal5oizUiCby5+CJ93jhdVmMy7MDqv6nPeCL98gn3ACSlexqgAMVb
+iB+BEbLc3klKX0heW8pL2IonY67RyisvqPBUBnjNHg862AiSAkEAqt2duNvpxIs/
+1OauM8n8B8swjbOzydIO1mOcynAzCHBVPlxBTKkmGUGGYRl/rBBHHbHTgQhd2t21
+h5aCnKkAaQIBAQOBggAEEERozJeK4nstSM5WcswLo7XmgwufavFGedmYQpZdonhC
+5trUBNLYkNNW69vl5va9oTRr1fU95eJ/nKJQy5I3cRRuw1hOp+rSUUfk2V9ACscN
+pIMKLTVp9kUOKrLObvnjaDes+4eNV3WiCv6MiD77pMmSx6ek9IPqd7KxU5/iW42j
+ggGUMIIBkDAdBgNVHQ4EFgQUdBpErUvXtvzVuu7xHoJ+WKWYHCQwDgYDVR0PAQH/
+BAQDAgEGMCsGA1UdEAQkMCKADzIwMTkwNTIwMDkyNjIyWoEPMjAyMjA3MjAyMzU5
+NTlaMBYGA1UdIAQPMA0wCwYJBAB/AAcDAQEBMFEGA1UdEQRKMEiBGGNzY2EtZ2Vy
+bWFueUBic2kuYnVuZC5kZYYcaHR0cHM6Ly93d3cuYnNpLmJ1bmQuZGUvY3NjYaQO
+MAwxCjAIBgNVBAcMAUQwUQYDVR0SBEowSIEYY3NjYS1nZXJtYW55QGJzaS5idW5k
+LmRlhhxodHRwczovL3d3dy5ic2kuYnVuZC5kZS9jc2NhpA4wDDEKMAgGA1UEBwwB
+RDASBgNVHRMBAf8ECDAGAQH/AgEAMDAGA1UdHwQpMCcwJaAjoCGGH2h0dHA6Ly93
+d3cuYnNpLmJ1bmQuZGUvY3NjYV9jcmwwDQYHZ4EIAQEGAQQCBQAwHwYDVR0jBBgw
+FoAUdBpErUvXtvzVuu7xHoJ+WKWYHCQwCgYIKoZIzj0EAwQDgYgAMIGEAkA4qqxp
+icREnfeRLiNJBGAmOmRmT2JyNx76ttqogtx31bS6ZOGF+08akTb6J2gdXTuTfQ05
+buVwKjA8HMI0J463AkB+iwO2+J/NaYUdr014wTu5ZHcbSMA2QpaSl2v+Gzp0+Qpe
+P2a/2gvGZoiVpfTT4mfEmtcCN5QwRWmXpMyB2IsO
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFKjCCBLCgAwIBAgIIEp5CTxaKCOYwCgYIKoZIzj0EAwIwcjELMAkGA1UEBhMC
+TloxIjAgBgNVBAoMGUdvdmVybm1lbnQgb2YgTmV3IFplYWxhbmQxJzAlBgNVBAsM
+HklkZW50aXR5IGFuZCBQYXNzcG9ydCBTZXJ2aWNlczEWMBQGA1UEAwwNUGFzc3Bv
+cnQgQ1NDQTAeFw0xODA0MTUyMzM5MjJaFw0zMTA4MTAyMzM5MjJaMHIxCzAJBgNV
+BAYTAk5aMSIwIAYDVQQKDBlHb3Zlcm5tZW50IG9mIE5ldyBaZWFsYW5kMScwJQYD
+VQQLDB5JZGVudGl0eSBhbmQgUGFzc3BvcnQgU2VydmljZXMxFjAUBgNVBAMMDVBh
+c3Nwb3J0IENTQ0EwggG1MIIBTQYHKoZIzj0CATCCAUACAQEwPAYHKoZIzj0BAQIx
+AP/////////////////////////////////////////+/////wAAAAAAAAAA////
+/zBkBDD//////////////////////////////////////////v////8AAAAAAAAA
+AP////wEMLMxL6fiPufkmI4Fa+P4LRkYHZxu/oFBEgMUCI9QE4daxlY5jYou0Z0q
+hcjt0+wq7wRhBKqHyiK+iwU3jrHHHvMgrXRuHTtii6ebmFn3QeCCVCo4VQLyXb9V
+KWw6VF44cnYKtzYX3kqWJixvXZ6Yv5KS3Cn49B29KJoUfOnaMRO18LjACmCxzh1+
+gZ16Qx18kOoOXwIxAP///////////////////////////////8djTYH0Ny3fWBoN
+skiwp3rs7BlqzMUpcwIBAQNiAATYOcPrJhRUGUmEZ58G4mmolHmoXCSZjd8yzVKr
+Hc4ofPPq5cV7zPSoGfiPaxuZd2VsDLYO2NOhDO+Bvmjr4jJv2b7THK0HZaWEq+U7
+kUd+/eklpoTLy6m2H8pud6rGbkejggHQMIIBzDASBgNVHRMBAf8ECDAGAQH/AgEA
+MB8GA1UdIwQYMBaAFNaeFTvflJhsGtLpga2twzGvcb5xMDoGA1UdEgQzMDGkEDAO
+MQwwCgYDVQQHDANOWkyGHWh0dHBzOi8vd3d3LnBhc3Nwb3J0cy5nb3Z0Lm56MDoG
+A1UdEQQzMDGkEDAOMQwwCgYDVQQHDANOWkyGHWh0dHBzOi8vd3d3LnBhc3Nwb3J0
+cy5nb3Z0Lm56MFIGA1UdIARLMEkwRwYIYIQqZQgBAQMwOzA5BggrBgEFBQcCARYt
+aHR0cHM6Ly93d3cucGtpLmdvdnQubnovcG9saWN5L2VQYXNzcG9ydHNfQ1BTMG0G
+A1UdHwRmMGQwMKAuoCyGKmh0dHBzOi8vcGtkZG93bmxvYWQxLmljYW8uaW50L0NS
+THMvTlpMLmNybDAwoC6gLIYqaHR0cHM6Ly9wa2Rkb3dubG9hZDIuaWNhby5pbnQv
+Q1JMcy9OWkwuY3JsMB0GA1UdDgQWBBTWnhU735SYbBrS6YGtrcMxr3G+cTArBgNV
+HRAEJDAigA8yMDE4MDQxNTIzMzkyMlqBDzIwMjEwNDE0MjMzOTIyWjAOBgNVHQ8B
+Af8EBAMCAQYwCgYIKoZIzj0EAwIDaAAwZQIxAOsoBcqmACat7OqHGFiHjEnLPYY0
+OMdtIzBJJ2fgmUN19j/m4xDz8Mah0AJXn7I7uwIwHQbufJhFs4SUN4lPajEk27x7
+W+w9ULqxW9eKnBxRteW3PiYu106wBzgFreRvDYZh
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFKzCCBLCgAwIBAgIIDJDpIyfj9qIwCgYIKoZIzj0EAwIwcjELMAkGA1UEBhMC
+TloxIjAgBgNVBAoMGUdvdmVybm1lbnQgb2YgTmV3IFplYWxhbmQxJzAlBgNVBAsM
+HklkZW50aXR5IGFuZCBQYXNzcG9ydCBTZXJ2aWNlczEWMBQGA1UEAwwNUGFzc3Bv
+cnQgQ1NDQTAeFw0yMTA1MTMwMDMzNTJaFw0zNDA5MDcwMDMzNTJaMHIxCzAJBgNV
+BAYTAk5aMSIwIAYDVQQKDBlHb3Zlcm5tZW50IG9mIE5ldyBaZWFsYW5kMScwJQYD
+VQQLDB5JZGVudGl0eSBhbmQgUGFzc3BvcnQgU2VydmljZXMxFjAUBgNVBAMMDVBh
+c3Nwb3J0IENTQ0EwggG1MIIBTQYHKoZIzj0CATCCAUACAQEwPAYHKoZIzj0BAQIx
+AP/////////////////////////////////////////+/////wAAAAAAAAAA////
+/zBkBDD//////////////////////////////////////////v////8AAAAAAAAA
+AP////wEMLMxL6fiPufkmI4Fa+P4LRkYHZxu/oFBEgMUCI9QE4daxlY5jYou0Z0q
+hcjt0+wq7wRhBKqHyiK+iwU3jrHHHvMgrXRuHTtii6ebmFn3QeCCVCo4VQLyXb9V
+KWw6VF44cnYKtzYX3kqWJixvXZ6Yv5KS3Cn49B29KJoUfOnaMRO18LjACmCxzh1+
+gZ16Qx18kOoOXwIxAP///////////////////////////////8djTYH0Ny3fWBoN
+skiwp3rs7BlqzMUpcwIBAQNiAATZQon1shj+p0q+5z2lAITS/VG35sb6cLN7Tlgq
+Qcy5+wt95K1qK9C5mLUkXYsHX+rrMMHRG4zgpWoyBsozAfDkYkJJhmvanY0c2deb
+lXQMlG0yhkS4NB/AdkTuKHcFORGjggHQMIIBzDASBgNVHRMBAf8ECDAGAQH/AgEA
+MB8GA1UdIwQYMBaAFK5pPyZZ65qDZS0R9/9GMaw7FKA1MDoGA1UdEgQzMDGkEDAO
+MQwwCgYDVQQHDANOWkyGHWh0dHBzOi8vd3d3LnBhc3Nwb3J0cy5nb3Z0Lm56MDoG
+A1UdEQQzMDGkEDAOMQwwCgYDVQQHDANOWkyGHWh0dHBzOi8vd3d3LnBhc3Nwb3J0
+cy5nb3Z0Lm56MFIGA1UdIARLMEkwRwYIYIQqZQgBAQMwOzA5BggrBgEFBQcCARYt
+aHR0cHM6Ly93d3cucGtpLmdvdnQubnovcG9saWN5L2VQYXNzcG9ydHNfQ1BTMG0G
+A1UdHwRmMGQwMKAuoCyGKmh0dHBzOi8vcGtkZG93bmxvYWQxLmljYW8uaW50L0NS
+THMvTlpMLmNybDAwoC6gLIYqaHR0cHM6Ly9wa2Rkb3dubG9hZDIuaWNhby5pbnQv
+Q1JMcy9OWkwuY3JsMB0GA1UdDgQWBBSuaT8mWeuag2UtEff/RjGsOxSgNTArBgNV
+HRAEJDAigA8yMDIxMDUxMzAwMzM1MlqBDzIwMjQwNTEyMDAzMzUyWjAOBgNVHQ8B
+Af8EBAMCAQYwCgYIKoZIzj0EAwIDaQAwZgIxAPf56o3PIsp8U5/rtLtXsqa5cWi3
+NgTP9ukNT5bJWk8OdLCk8UW8sCwxOHHz38EMIAIxALELUoUj/uf2WB1yH5jkA9Cq
+kj6x+wlsbe6m43l5KPl0iHQpMAJEHBdwqMADBeER9w==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFQTCCA6mgAwIBAgIJAJQM01A/geTqMA0GCSqGSIb3DQEBCwUAMGQxCzAJBgNV
+BAYTAkxJMRYwFAYDVQQKEw1MSUVDSFRFTlNURUlOMSAwHgYDVQQLExdBdXNsYWVu
+ZGVyLSB1bmQgUGFzc2FtdDEbMBkGA1UEAxMSQ1NDQS1MSUVDSFRFTlNURUlOMB4X
+DTExMDUxNzE3MDA1NVoXDTI2MDkwMTE3MDA1NVowZDELMAkGA1UEBhMCTEkxFjAU
+BgNVBAoTDUxJRUNIVEVOU1RFSU4xIDAeBgNVBAsTF0F1c2xhZW5kZXItIHVuZCBQ
+YXNzYW10MRswGQYDVQQDExJDU0NBLUxJRUNIVEVOU1RFSU4wggGiMA0GCSqGSIb3
+DQEBAQUAA4IBjwAwggGKAoIBgQCYTMZTJ4KLFx9/00eMGfG3m2rq0qiAeGVHCWCy
+lly5r0P/lw4HknryCN0Ay4jLcWaizcynT5o5bv1xeVQxuilcKGdcFFr/C54kRI9b
+uq90UysFxIGIC6oOeT5Sfo7/9q2jrDvLb8GywC2eOkwhkNOHqdmdsdLm+6s+xSQY
+y3oEcABADLGIQRt0MJnxNO7hsHPySC0JpvVppQ3BtiX6ACfKRVc6xkYBnjrOur5P
+igdIrdP5q0ySBpweCz1HypXC0UMiU9eo5Ltkwl/nOi7stOP3dhoNoK6W244yyirj
+nhzIqdduRymCzPLMglqK6kX1beq0hPnt76qf074pl1vbCB9lxpttICujWIB6XyFb
+EXKxNSDC98rjGsHSm0OceKyRtyonHKf9ivRrf13kkU9yfFEeB9KDqhN3srtAmXv/
+Kwv78gbbTLNr12cI+1Rm0rgfGDjlSN3TbvozT9zKbcDZJBgFlOwb981ySvfvuTq1
+CGeGq2vWZRKoFykmz3eUAFCj2rUCAwEAAaOB9TCB8jAdBgNVHQ4EFgQU8REhBhyw
+UCe86cwGCvLBxj/3F9YwgZYGA1UdIwSBjjCBi4AU8REhBhywUCe86cwGCvLBxj/3
+F9ahaKRmMGQxCzAJBgNVBAYTAkxJMRYwFAYDVQQKEw1MSUVDSFRFTlNURUlOMSAw
+HgYDVQQLExdBdXNsYWVuZGVyLSB1bmQgUGFzc2FtdDEbMBkGA1UEAxMSQ1NDQS1M
+SUVDSFRFTlNURUlOggkAlAzTUD+B5OowEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNV
+HQ8BAf8EBAMCAQYwCQYDVR0RBAIwADAJBgNVHRIEAjAAMA0GCSqGSIb3DQEBCwUA
+A4IBgQCMhIwQl2rTpE2PHSNXXo/JaFXwBFa3XD+MJYjGaNhHPF3EbpUi3ZWlmWlL
+l8VBWPFOYMO4RyfeCmACg29PY2z7vVALubHAa8FvHNbVJeIy/kZr7FcSOw34wElg
+EWUNxHzOGn7FpjRlovbiACuHzZHhbdQKS6V7OVHTld6qhU7pu2gk6sQlOonAc888
+LeF6dxcOoBZH+k2IoR2SIXBUU9iPDN53hteOGrl1Ck/o5rp6D48I64hyv/LvSj74
+340zbyUJGadi8U+hvwGXAC728WLa7FjPzC+2gz0arMGhOTuoEpnJ8s7Hhi7YFWgo
+EsApJrguFQ+jfC7oHqUYIYg0MxIGz8Bnx4U4wRDTqNSQD+pSW/MV5um1mShNXUZ3
+jMYZV2QjO4h9qMZAmMqPM5fRyC/6BJQiuwCmjY18IiX7XLZpOolt/u1tbIzGKyZO
+LJhMtCguLfOlnPFk2NSDbg0nKuMqg849ktzHCuhp8T/eFq/wpnm7BiPjPyHwjrPE
+MbUU7jk=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFVTCCAz2gAwIBAgIIB6g9Qspe2FYwDQYJKoZIhvcNAQELBQAwODEUMBIGA1UE
+AwwLQ1NDQSBUdXJrZXkxEzARBgNVBAoMClR1cmtleSBHb3YxCzAJBgNVBAYTAlRS
+MB4XDTEwMDUyMDA5NDkxOVoXDTIzMDcyMDA5NDkxOVowODEUMBIGA1UEAwwLQ1ND
+QSBUdXJrZXkxEzARBgNVBAoMClR1cmtleSBHb3YxCzAJBgNVBAYTAlRSMIICIjAN
+BgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAooq6xLJXL5vooo4n9/eJx4sdJskq
+D8zJ6o+1YJ4DvePCaVG4IHG5aCyYDMxiZYNEfP/0Po700cJ9jgWB7IHaPdPHBTOZ
+bUqZaqRnbExik0ZsbefjNuj9g7qQ5Xbyng3bUv8qtCo7kc47DDE3joQL+A90BjIq
+DV0hh5z9OvNNCi8yUMeH0oBPFITLAsFabREKd4uCcFtGznIPiX04yDoxlWvAEUGO
+MDHZQWEE1S5C1wN5OpsFGC7cgwti7tMpS5RMzsOdLM6VNU98A6rcWJHx3yaepEuq
+ueIcRgqDoCMWsTp5qZPoP4y0XqzPRA7YL0xD1axHPOCmNNxPeEz4ZMcSTQvjfSX3
+hlQClJQtd+GcLajEhVhLeYz6nC0xEkYfXXQAwMpYqrGoq8YQrN+xyq25EDpj3wNr
+4U6aw3xWAC8V0PsvlpJCqcJdrFXNHqA+io9JYhMBSzdfkDs0y0RE99uFg/4RrT+s
+9waUgTgDknRlOeuSfo556SRAXREhT7sx38A24N4Y2m+VMlyDb14a6bNfebbjb+dV
+Mt+haVAAN36+21JNyAT5bjyckR0H431nD9gXpqZApxuEgwFjljGCCkZz/UY/9TAm
+eXB3E+h1swi0r9dBvL8aLNREt7seJ7hmHG4LqKdvmeZc4MOHS8WCF/rubIYyUUnu
+f1pSCO6FGkAkELUCAwEAAaNjMGEwHQYDVR0OBBYEFMRgFT0NzPulUP/io/DfvIG+
+TAVlMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUxGAVPQ3M+6VQ/+Kj8N+8
+gb5MBWUwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBCwUAA4ICAQAvCB1Z6WaC
+allI6deFVzk4552RiLZyeX4iXYBNiPmtGxQYxdusQODgTSwTe5KPDyg9xTpf+9ea
+LP11IZJK6N0KswE8OjBgKc7CIy46C9kyI3KCEvp1WDajq3fkslOjiq8dNsToHo3y
+J/bGi0EZusPynBtODcj7bmcQDp2uAxDD5KD4n0BzlZBmWvRT8tckkHkAEaTUYVrU
+NvesGinzJaSIzwMH4qViVC0S4Brn/pM4eLCocaCo72clAQx7C4PnV862Nny+Jf+A
+o2ZHd8Bzw9sO4yS13DYaa6Pjh5ZCaZkWRmvlE3xjiGqxu0hB0ZB4GXhTHqjZnK8b
+8/PBtmXmbxoaxpiPdCQagYRZoHYIGZ10AkIp++125pnZ4CBH2UYSo0JDsPM0Z6ML
+VDTAHhjQWZdSOBwtupIIR6dKaeT2hcr5BmH41tN9Rs8bKGGL+ambX7kpdsHGddDW
+SY0iRk4CQsD9nOxJ3KDSkWHwyW6rcMXAdUmLSorgmJ3Tn2lzT//eBdg4lYcKBxa+
+kyaW/v4i3yYIWo6ixuQZpmx644BKLdc909YZTZIJw0k80RnRVyWqQVUyqhnE10DV
+fkHiYzNqLVQRKJIgnmnpjMs7l+V/9PScAZ9V98zL0VYknGsCHDJ4bE1M7ILBSH0j
+Zg0aG4HvuvNlD8imhQeifXJAtp/IwBNmug==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFXTCCA0WgAwIBAgIESVZeljANBgkqhkiG9w0BAQUFADAyMQswCQYDVQQGEwJy
+bzEMMAoGA1UECgwDREdQMRUwEwYDVQQDDAxDU0NBIFJvbWFuaWEwHhcNMDgxMjI3
+MTYyODQyWhcNMjMxMjI3MTY1ODQyWjAyMQswCQYDVQQGEwJybzEMMAoGA1UECgwD
+REdQMRUwEwYDVQQDDAxDU0NBIFJvbWFuaWEwggIiMA0GCSqGSIb3DQEBAQUAA4IC
+DwAwggIKAoICAQDYsJ0CEdT7RCz4aGvz/27uCF/YUe0KF9vnXb895G5fjmvJfiO6
+QibzATZseJhsye/pkRYyATwyqteJi1auzeZPOYQv9AZ44p64pb9aezXd9N+g9Fl+
+9Q810EtdNNqsfJ5llqs05fBCfr1chQs1VmLlIoMIELu7YjSep72YOPcjA26yJbBN
+nKMbxU1Ji7x1xTG+WKJb986AJ+WiBSbp3iVD6MQXTwN1haD3XYG9sFn//DB7qsJy
+sDpEb+NYa+MFs6LA05/uOPY1gk99O66UCYrOeS4QGaiyUdXjDZsZ1lV2yBPr1oR8
+Cb5DHNTjwRIPueho7+i4RY1gH4N9v2LWuCmnubyno1EwQ0RyXksVqYeC/zq+33Ka
+EEgHKhih1XxrIQA+YQaMjwXXf1v8owf7qyToyBJ/oFlKpzibIJzv5ioUMQWxYm1R
+7Ylz5UBQSzNvaSy+rsABSlDdfGOxtf/VxKc9RBv3FXaSNMkgpOoP9ZaNExkW5ct3
+68wdRFiRCIxkDPm2SMuwgewFI3VqyCNg9g0igzCChJLpIVM4oj3hygjaTbvXVC1J
+ylmh60FaycGOD0IyQz0XrdSOcJBjdmRDrnbPlGZpMADg+Quic8/v79qG0aj8p0tq
+jtBGx5h6SLGB9fwlPNEdUKHb/MVIO9Hqwy2wCDz4a5KD1S5EN6ScV192WQIDAQAB
+o3sweTASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjArBgNVHRAE
+JDAigA8yMDA4MTIyNzE2Mjg0MlqBDzIwMTIwOTI3MDQ1ODQyWjATBgNVHSMEDDAK
+gAhCvcjdDjNAojARBgNVHQ4ECgQIQr3I3Q4zQKIwDQYJKoZIhvcNAQEFBQADggIB
+ADGVvmfm2snGFo5QZTN7y0i/bB1Om9H4UVa5wq2T4ZFm9I+eCz4pWjVqnRfVWpf0
+waL0oh72gHoOtZA9t9Au5LxLrObVEDJiDXdXJh6dgqdMGNfI3cdpYHseG6QkYYqj
+QYx3MfGtUqWxQ+yPKOJ+KHzbgOmrpgu5O9LOKtc3fFG5ys0V+49RqumQkIjdHFKf
+vwqJ3OmAYxY0MAfHZtnqK4gNw1fwzC9cXApGfHb035p6hklU0jJP3NSXsI34kWDv
+nvxAKvpUNlR4unnFiNkYGkIgrMNgeLPFbdfcsXjkSFFE2byPqj93W3cPj8o6uNcZ
+CNH+AjbXhLrGjwD3ByLgHVHbsW5Wz2JL3E4pDbJbdMHRXR0mJJ9TkLuWiOFOPCM1
+/NHM8ARftyxKh6NJhQav5KCzuStoI6wQHbTNKrazJlGi1oz3hf4XfIFIXvt68+O8
+5g9pElFrSvnREycVJWYY7hGnRKA2Ivi0MFIhFyzYWjvnIJdBYf7y/xZrCS5/WHQm
+EHqIY9/Ldj/96aTbLDy1Jf0autcNqmNFkeGe4sikWQNO+QcsjyISCchuMCquJCgD
+q/5TeeqvG8T0uhPpawqBBNGzuAcfDsS8VVDbW8FJfky4uDywdolTQfPogUkTvzwB
+D/5X3s77hueuxWvlbtdCUVcoRbXGEY8bqJR4X4YEGDCX
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFZjCCA06gAwIBAgIBATANBgkqhkiG9w0BAQsFADBNMREwDwYDVQQDDAhDU0NB
+IEFMQjEdMBsGA1UECwwUTWluaXN0cnkgb2YgSW50ZXJpb3IxDDAKBgNVBAoMA2dv
+djELMAkGA1UEBhMCYWwwHhcNMDkwMTIwMDAwMDAwWhcNMjQwNDIyMDAwMDAwWjBN
+MREwDwYDVQQDDAhDU0NBIEFMQjEdMBsGA1UECwwUTWluaXN0cnkgb2YgSW50ZXJp
+b3IxDDAKBgNVBAoMA2dvdjELMAkGA1UEBhMCYWwwggIiMA0GCSqGSIb3DQEBAQUA
+A4ICDwAwggIKAoICAQC5jXfEuX85IBFU7OuYpk/Yq/uQk+3N6QSgM8PpHwYMTwJZ
+xo7Wq9RlZhxAlmYaLjamjs7VGOw6RNoSX/20jsyOhu0+SHSawN/YG1kZqZNzDr4O
+c/i8kdQs1R20nQX7yTgVtwFrTkYCPLOWMaCuT2Mwz3yYdnNinov1UGJ8gxbJaqtJ
+oGm/KduDLKnmxlHDW9N/27ooeBMp2yfadjodwRFgzDHucYZBB8t7C+vZRgcnUhZe
+Y1XX2P8xE3mkIFBy57v7s5SWEIPrBc3sYQyR9G/yIGCAOK53dWpuFxSxsr7lKqXO
+N37uG52nKAPNBhj+TQ5JOo8zmicP0sRHoM8EC35p+ffoamdArFnmAXCLNByEgRns
+RyR1rexNnkFYm8kbtJ1Jp4VoBCgeEcmC9ZyNpS4TLMCorioTk47fZyCIWLmLwjNp
+3hAwmK7U3puLK7OPz7tBladzK3eP5nhJvyv9/llmU1quUS8LobJukszTFeS6xDLL
+2QCM+D3XP1U8ngBS2M6ZnKJf2zYrHBtmLzRGEXEV8bXfOmmK1dOu1m6b6ALvHkuh
+KCT3/a+ou8K0C92zsamb6hkxkWVlFk+5yRQWOGjRMyLlX97sLqnSl338bjrsd5oV
+APF0cMJ/dNnPfnJ5VD7Y+6fSvxIGkglKCjjx/hfgpenzkK5MGhW7yW63+arb9wID
+AQABo1EwTzASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjApBgNV
+HQ4EIgQgHpe0DnRabrCddjzK2P34MRtzUHyCnJKoqzJVC4sFIgYwDQYJKoZIhvcN
+AQELBQADggIBAEeNG+55oHK1P2EygWtXzadAJyLxOTsbCK3qMzBFC0GYTNgR17G5
+W1CHh9GHZRYPUc17iQwNsrHc/ggISjwWWXA/mrTRBOdfOCdkvUqF5C+J0k5jnCGx
+0X6TEARGGDft1FJMugLHddnrRcwwR3JFk0DFH3O5lNL5ITemCs0dm3iuZGfWINtB
+uwAhpv1ZwKrJXL+JYRoeEsiCRvbu3luvqbIgmPlSheufIlRrLcPmkv+EvZTEIv8e
+94xh9htU8bLkJR90/UawjsYmlcn09uvlYs4+RjBeSwS4WwytX/pFm6lPufwQSfaC
+nYRRua9Z7Cg1bKhtpGf+a50QX4h3r6cu+UxDSa7DNW9sv/HBrjGKEG3UUVptWEH9
+y3/eaV8vhnj2u7gHDCsth4h6zZEGWQhmABd81FA4FlvvrA09grbMdthGMQbvbkg+
+7Q9QmsGBYCVBF+k1zlWFOQ1hXHDxM0kysfix4DM2z5XUty1v4HgyHQyqagZjX5ut
+Bd0Dd7HZKee27zTyI8OOscPtD8+czK0TSSM3qooGydTto/NI83WwU9SPqrzuNzBt
+5umquy1y/CR3R/uv/Vssqk3r1Kam/yVVLVnIMkscLVV+fDKFkb2SeHDmgljvganN
+yQYz9VuhLJ4FX5FrsSoENduZ4o92i3FvFBQssIbj9F3yGG67slUuZVlP
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFaDCCA1CgAwIBAgIBADANBgkqhkiG9w0BAQUFADBVMRAwDgYDVQQLDAdTRUdT
+VEFUMSAwHgYDVQQDDBdDRVJUSUZJQ0FUSU9OIEFVVEhPUklUWTESMBAGA1UECgwJ
+SFNWQVRJQ0FOMQswCQYDVQQGEwJWQTAeFw0wODAyMjExMDE3NDVaFw0yODAyMTYx
+MDE3NDVaMFUxEDAOBgNVBAsMB1NFR1NUQVQxIDAeBgNVBAMMF0NFUlRJRklDQVRJ
+T04gQVVUSE9SSVRZMRIwEAYDVQQKDAlIU1ZBVElDQU4xCzAJBgNVBAYTAlZBMIIC
+IDANBgkqhkiG9w0BAQEFAAOCAg0AMIICCAKCAgEAnE/5ogBt9/dj91pAuy88uLab
+OdzQuwHWVndo5AP/dAgrfXosx4gFs7tJnVk2T0IoAVmP4a9FPPYoKjF2t5xqmWLT
+DGEKxtgPcab1kFZ9zADeg34xTAlVig9xeG7qEH0+x4/DL9Rzil2huoHxRtGug6t/
+XiYP0P3iVQVca6GLH1SY0+soMOGlivbhW6f6H53lLHPrtcTTI+Mo5XJt7CN7yGvl
+4LJNSYUvpuG8wNJArYZJQw+kuc9LVmZ15Vg8kZhVyJbc1Y/YujsPt/BXClfUCvX0
+xMk8Dvqt4AJ2ZKUxF8pJvjFlBOimtDNG8O9BqdUlCzu1STm8x6Xe4x2QVt2oymkK
+ykETRVKW4NS9fHa2gYWlm1h/UCR4t+IeiAPur69r2BUdKp4BPgDeSG9HzbLhLCTV
+i8murTR+hLLrPIG8ZxpNyFc76Ge8fendtneI39tMRbGuuTQ2vEE0r03/Vy3IQ5IB
+5g+MDqcQkiAUII56byhhJra0Loc9MVSUPbLeCut5XZtU22Vfg6nygjxjn2YnV4ro
+ju57RMSbBlnkXvEehwq4Unw+z1RheG3h8rMmFYi688dZos9TurkcCziOE1iWBmLj
+Ms0KJWGmHVGszo02xNVBfMd4/DoVHAr+EVRxdV6gEHRy/A6otCV4drR0hqCSfa8M
+BQNb9hevmgjYSqz2HJ8CAQOjRTBDMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0O
+BBYEFK2pB6RVq8ExJpcitbtQIQPbKLb9MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG
+9w0BAQUFAAOCAgEAU+mIVsxpKQU6JCChIj85nW/osbzuaqMRgYgXdoPuobgAbTPL
+x89VP685X08H5p7HdcQgjXV0mTohL0LC7QAIkoge2I6BE4sfbIBFBQ/ooRaJVWfe
+v3IWcmP5HxEXvVGQaUULWdC/SOJ6XqAJ7HU2pJdn/WHvdkvzKEzP/J9v+BSfhYfG
+OaZYTGpTw6LMjWssdPyECuYqChHR7W7s7mkE1K5owixFWysRr+T5dwDqfNqNKWgj
+wQ1W2uvwR7/N32X3tg7VT9SMlJDGNAscxHbIbGJmD6LgvfyGygmeyvKGExW7BmlS
+eHLn1VevUlS4ygFAJ+u1GWlKtoY5cUP2Vpiy7eGlMzYWig5xeY2vHnNPfavW1Ud+
+V+8LdXTxpdumxcvkE+00CwmcJrHyAIfDdzu/haY69b4SlB1ZUXmu36a1mwyDEW0g
+LnysFKiKc0LQt4Rw356hNuQDshMaDAmQWkCMO80V9AJQ63jfXGTXyJWJqJQoVhuW
+MBnQPN8xfId4oZccvxESFVUORn1ONoiSHBJAgpQtcliSB1ycklRdZuo9sa2lQPBF
+j88RCqfzAu1MqZKPiQxea3XkciT6ZNdIN3lyggccHITVhVlgBjrENrvV10uW8yT/
+mVMNoFdccsRzY6dk+RFs1Scc8HeZcREzggveJ3wrVMvG058OXlbBMUgXCkw=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFcDCCA1igAwIBAgIMSFQePWQrrcsXuIIKMA0GCSqGSIb3DQEBBQUAMEIxCzAJ
+BgNVBAYTAkhVMQwwCgYDVQQKDANHT1YxDDAKBgNVBAsMA0NSTzEXMBUGA1UEAwwO
+Q1NDQS1IVU5HQVJZIDQwHhcNMTUwNzAyMDgxODA4WhcNMjgxMDAyMDgxODA4WjBC
+MQswCQYDVQQGEwJIVTEMMAoGA1UECgwDR09WMQwwCgYDVQQLDANDUk8xFzAVBgNV
+BAMMDkNTQ0EtSFVOR0FSWSA0MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKC
+AgEA8V6tzZI+CJvZ4OUxBCSzXON99ecbQqKEw3BAKy73JSS7Iyl99y2EVpPi2gk6
+Qeqlnh+iDJDlEULEi4nNW+XnrO9V33I5oXpNCcOB4aO+nndY6Jr5xx3y9aqL9V8c
+LrL/oAI84cRM8LAVyyDvWiYOBFmGM3leA2uzu/NhGAynvg2UqVDnvmVp0D9lLUH5
+yG9ydK56EA+dRF+Divdkey5wxOdJc+d0MBAB+x8tsDKs4FfAcnzehF4SpK31zKe2
+ngOLN9OHK5rqNKxMKIyBCfD7RdSYY8ZR6F2T4cl6rcgguht3npOGBzcpSBuPNwIl
+lazQ+x01jCqy1EkCRajlCh1BrNlFh4ljvLCtM/oYwYP4pwXc4t+q0JHkdNT2d1G2
+ZUYG9xMpP86WAW10RyA9McH6NBMnGWY4IteUQ23xapY/Qk6lvEz+93iEOur/nuSC
+p8NdaFZ2NYFseviklB56rIS8nTXS3toBoXSW6cjOlVFLNQuhksM2Ue9dX5YXdR0H
+CZjkGP9D66+dWwXeDJPw7NTNNIIvExSfOv0WAj8USPrJY7HEGb4DyuIlD/Ppc612
+mvS9bakt0jIF1tNHbwXrcEMM/VoWTn2sb5RkWj2MF5nhq3ohg4rImnDwnPqstKve
++tvvbvAepbwK4feqd/VfMp09JuxqWFQgr4GugHcWqVTQNp8CAwEAAaNmMGQwEgYD
+VR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJEDRjoM
+H0Pl3exluHTiBDcUVZBGMB8GA1UdIwQYMBaAFJEDRjoMH0Pl3exluHTiBDcUVZBG
+MA0GCSqGSIb3DQEBBQUAA4ICAQAsUvYKrYjxnhhapvreleWS2vrxizszoQFRMfuS
+yao3eASWXubMGUu9SibLdZ6+tp9nlxqgBK7kqvszPMkiTpdBn+hZuYcihZzJ+VZM
+SVSrksJgpjqN7xefnhEoe/AHF1L7U4yNN+YAkac6zde3BDuaoSBQkMqTde+7HADw
+byLBdebm0CnrP+baWeROLlwg5s5hh8mpGXuGPUHHgCwsB4EhC9JT1KZeL4C3pWuT
+m7AwyFxRxBiJ9gr6UnsO8f1LhwZxorg2xVrwfm50sQa+PInvqYpqpjaG3sjxKTV3
+PQjhjLITUa1e+j94RDNP5EWJG0O2wDUON93E1p/IeWV2z11qfKDuwQjfUPJAX6jr
+nQbH3MzWJSjYMzBZYDPe4RtpPKLzd8SHvN3BITc/qsKQW8fjxH+CRhoJzGukEnJl
+BhmwonALXnW2SJqGA6HymY0Ygp0Kp6+JjtoUZeg/clSjBu3sSvEPHyLn1sT1UcFW
+DJ4a2xdTrlctHxOvlFdL2Kt/hBcPHIdSkoVhWsG6hNNSAotKPBlDF5eNHWEgw6a5
+eAT8hivGH7ZFfWZPwstaTJt9CEsn3DN6rMQIcNAdMrnQKxZ88VLw217JR6Oszy8b
+l5v417disugerSfw+NmTLNP37nZ6hY28I3dDsGnuUrbN0zT3APbxL9bBBMbQledt
+TVts9g==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFdjCCA16gAwIBAgIJAIGECgojjJWJMA0GCSqGSIb3DQEBCwUAMEgxCzAJBgNV
+BAYTAkhVMQwwCgYDVQQKDANHT1YxDjAMBgNVBAsMBUtFS0tIMRswGQYDVQQDDBJJ
+RC1DU0NBLUhVTkdBUlkgMDIwHhcNMTgwMTE4MTE1MTQ5WhcNMjgwNDE4MTE1MTQ5
+WjBIMQswCQYDVQQGEwJIVTEMMAoGA1UECgwDR09WMQ4wDAYDVQQLDAVLRUtLSDEb
+MBkGA1UEAwwSSUQtQ1NDQS1IVU5HQVJZIDAyMIICIjANBgkqhkiG9w0BAQEFAAOC
+Ag8AMIICCgKCAgEA5OddfOmrX++mEBOHEpXV816dwCuXt70pwSbrmmpPRC9kaOGx
+0+ZJrOH7KSlh95Gbxu/nS48u57YnltMvcnmXtbsjxKyxyNmBnF3ZDZlMbugyAoSQ
+tE0IFUnTrvMd44xPuA3nUmVherHaM47q2ZU4h2BLkVIi43Vo+eVOH0EBr41Iqpp9
+GoKdzZ+rsNe//gldQNrXdkwuAGJ7CJs8c+DVQCiK5pyjPA0Kyzf5t72jV/DDDYaS
+LmwvSPniOLkWiTBSwi1lTq+/5ROfaNy1XI8/VhLRov1KvkmLb4XXybPPgc0fqUnC
+HkoXoxr5yPc+M0y4kPksUGCylvmXC9KpIgUWHvY0ImySfBJwNuQL1LSeiMQJ4zMh
+Gs7aI2Q7dI7gO9sbIGONbqbpqZy9IP9ef0qVMkLzJBY0lJHDDZXxycvYasO0YMFp
+wmxSda3lbOjdR54mnzvTPdPoRDh3HIiwbY0yDAIRu7uDXUFQRx5+J+m17TIZQh5h
+IFVbhwAeLsQxL0bvzRRtEiZ0fRGpBqlbbqMzLzJl1LrGbaIYy/tmU33pxy1UYfN+
+FKxnUlJ5UHlrnXld00WiTkWL9qMKwIvCa4AABPD1ahajMYfrUWA4oxAV65b75Qxm
+8PtLhG69FkaPBLEWqCITIBr8qgBPng/ZC3zYUov/322IOgml4JJF7/dDjasCAwEA
+AaNjMGEwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUoSrjJvwrDXaoXItHEbnB
+wiBhyRkwHwYDVR0jBBgwFoAUoSrjJvwrDXaoXItHEbnBwiBhyRkwDgYDVR0PAQH/
+BAQDAgEGMA0GCSqGSIb3DQEBCwUAA4ICAQCu7rVLSMlfRggIMfuMM5haQxacsL/a
+P5bYr55eiihYIwtTyE/KQhJC7qgz8mDEwbi2mPF8RZGNkWOn0/ANXm++U0lwQ5iq
+8m9tFZBsO8eH7J6qgrcJp0QZpa6Fzw0024J1e+drojHmZtR02dKo68Tlq/5mlkSr
+B1Q5FEv93lXbYv1MqGNxOKhnowMAfpTJQ/aCKuxFIoSdp8YUrQ4rOpHmhdg3pq+T
+jHTH02eiXyUUjg860T+2iM4Dd196yMfL6NlE3ULXD9kLAZPcJLbSF/6o6/IgMFuG
+vWq13f4EvWPiT46xlpi3Stf66dqQ4KX5V5ji7v15agsPl4sLXMTMOaNhP4egrdBk
+c24GR72ImY014N+kFfux8AbT8zLW659bDkT3VUX9g6ZxsTJXaRaRu7cNRNT2hJZJ
+jrOOMdrqSW42Sj7RdXgBV7CvJBbzq2zOops3HwUwetjUdsD4/URh58X8YCbqdxnB
+XdFcOdO5Ei/5RXO4yU5SwjysF63iRpvqvMUW8TCpb+dQ9TScSzBy9Le/wv8ZFiEc
+wh7kv1ju7objMTfp4OaHDcGxRetGN1vX1lF1MUsDnIO2njYY8CsFt8SNBQJPthbE
+wfqXENr1ic1LnXhcw+EdO53EttbM8E9CxXUNzrkRqlK8ecPNTeplk2fX8j+/qgOu
+il4Tx3Z84n74Yw==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFdjCCA16gAwIBAgIJAJbyTXa8Y2yMMA0GCSqGSIb3DQEBCwUAMEgxCzAJBgNV
+BAYTAkhVMQwwCgYDVQQKDANHT1YxDjAMBgNVBAsMBUtFS0tIMRswGQYDVQQDDBJJ
+RC1DU0NBLUhVTkdBUlkgMDEwHhcNMTUxMjIyMTEyMTExWhcNMjUwMzIyMTEyMTEx
+WjBIMQswCQYDVQQGEwJIVTEMMAoGA1UECgwDR09WMQ4wDAYDVQQLDAVLRUtLSDEb
+MBkGA1UEAwwSSUQtQ1NDQS1IVU5HQVJZIDAxMIICIjANBgkqhkiG9w0BAQEFAAOC
+Ag8AMIICCgKCAgEAowNcZ0nr+ylY3O/UtdhQtTzE2UlQz1Cypx2oB/loAjW1/XeE
+SDFw9CzIolKxmRAyQ/kl3FzlxpJzfCzQ66jjatK5TR0piAYKbtrvY17+R+Zx2WCv
+wv9j8f/P/xfuZROi+cIvdQFfa8QkBtB4WSrHQOmpiymjXMOmKQMuetpLNzuyKsoe
+K2gXub1TZvpItSiDd408EhaW5jNtBKh6cbleLu49AedixfQdaa8zxi+PcT4OzcZ8
+hTJQ7OoX8mvN3cRXbxD6x70pSMuyHK33NPffALPlK8EpMctUfPz4z0IfbnNiq56/
+FRAAB/8McZfZW0PRptlMVlPWYrWw+j5P79nyVsKHsWW3uYZQ1azJKbZqwQctAhhu
+ooEDqHHtDI584kuoVSs7fs2Wds5Gg7BIi6ov+w3zd7DSQHHGhZeRDIWIVk4m8rJB
+xe5kGflAfqb4O23/VJF/oMy1XzRBREA/M/hoQIy0X2a3gVc1QiwhyQJZop6cRU8V
+JVlkkU+vr0H96I91hLzjDkpRI0fizUYXFEAZEdra2H2zk4A6ppggFyZnYPvTLB5d
+f6KcAZz6yhH1VLsbolXErfxXnwabZlzB1z2/FUhSPS9iFkHi/IbyImXxgccskkVz
+JaS7r1sEWuUrvXQsjDfFrBaxX5jujlSPmZ2xrAOHWvi5FN5G4XD+uFJy/acCAwEA
+AaNjMGEwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUUeeM/urlV+nSGxvwFiG4
+jYl5LV0wHwYDVR0jBBgwFoAUUeeM/urlV+nSGxvwFiG4jYl5LV0wDgYDVR0PAQH/
+BAQDAgEGMA0GCSqGSIb3DQEBCwUAA4ICAQCaeKpNP3veU3dpJp2tHiWGUzoN+gJm
+H9Ft6o5lcuwYvof15KTv6RH5c5ttLi9vOi/TbLcWipjaSzNsecz5ieAofCvdvGh9
+Vq/dNQC/R8vIXtz82BtmYPJlCz87c65NIjnVgvyeXt3hQFCD/TIyuzItB/N/U8+z
+QBgsI7E89tVjtmgRs5fAiwtxPomK1FbgbkNINxt/Bbh/GIOkaHF+a/jkrp9NHnqQ
+C3iYtzssCA/gMwwqYPOlmywZQx1JTjja5WXPBHHKLcKjMmL2HEHYMhWdydLLVuR8
+jU5HqlFYm1b7pHj3RY5J62bKwO/eAp/bM+t4wNS2QEjdTfonNwBRvZXyhlcEcOgx
+Ddrs7+qbRD/ZwJL3e/8OcYByv9XzUqWGlsTWV2cH4cVVJIa2u0kw/Uxybvq6i9sK
+vFKZiljB13brl5mcdkcI/Xz2rTq0Kk3BOvnm32Dm22BwhqZm423Bp6RUoPVmGkU8
++PcFzEiwLGVhM8YhLfq2EQFxgvyzEJ30hW2aL0eEsaBzThlsMABo4cnuO2UJtoHm
+X577Bwe6JyHkAqUKb6WmSsclbxB8YapsAZOAI+sxv1gwRr3mkc80ZKvTlKsrwI59
+6XbHBo0Dwa2KbybKD0x8tceMMMfzZsazeAKklp9JCPpV9VKkwwa1iJ0XVc29hMK3
+avAkdkTG76Nr7Q==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFfzCCA2egAwIBAgIQVLrCs5Z+VNJP/WfCcAoDdjANBgkqhkiG9w0BAQsFADBY
+MQswCQYDVQQGEwJFUzEoMCYGA1UECgwfRElSRUNDSU9OIEdFTkVSQUwgREUgTEEg
+UE9MSUNJQTEKMAgGA1UEBRMBMjETMBEGA1UEAwwKQ1NDQSBTUEFJTjAeFw0xMjA3
+MTExMTQ3MTRaFw0yNzEwMTExMTM0MzVaMFgxCzAJBgNVBAYTAkVTMSgwJgYDVQQK
+DB9ESVJFQ0NJT04gR0VORVJBTCBERSBMQSBQT0xJQ0lBMQowCAYDVQQFEwEyMRMw
+EQYDVQQDDApDU0NBIFNQQUlOMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKC
+AgEA1JREujAXcuKq6BLFOtHTGvPC6uH+mxsSjdQWxSB1Bd8XPvDb0h8Wcu/SPHaz
+3MtYdN5g44BbkXMxnEDtxFUq7j8oyJRj7kgpWmIYDEbUnoAaOYRYOYPknfZ/b1IE
+Njd4d57+CnVmaD5fhn6dlPxA8gNM94AKVg5DIAhlJTBLGofnp5Ef+Xysnx6LkS9q
+2t3g0P0eaUCxnM71ntAiKtXZJcMHxoUxSzd2HWbg3vhYAbGXShc3k2m+G9eVyObk
+s1Q+OIFZpGDWXqxGL2inwWnwg6RLSAnrBIujHyfl20EdxRGAMOn0Mt0IAEbUhWLW
+GRz8Gau17+lfWbjfHnl4EA4mAZ+bO3zFTSB1pww7vK8Beq5PHgPuEWw7h257Hz+O
++jcluu2fH23Qdlok6w62ckYGU73+7kW+tccx0q1M3DhINVuoWuJ6uYnfx6BKFxT8
+PZN8Ej5l6FssW3hUdAoMCFiYZ9iBkH3+8wYaImDLsXroXLC+7KTauRYadgN3rh17
+G+cbP/wBn27JfaCBpiObrQr5p/25ofSbR01rkYe//9jiXDR6pQEjI9QgcqZO5UGl
+HSgWYY5r5vPGRPui7/eU0dY7+OwUMlVDgXNiFGT3ca9ybKsblIjULg+RTO6P/42Z
+JbIaB9VkiHzqhU2AlnRIN6NBVGfSr6AyZLuJ7XhPISusRkcCAwEAAaNFMEMwEgYD
+VR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFP+AK+A9
+9A8cF883i0cYDAHpGWPpMA0GCSqGSIb3DQEBCwUAA4ICAQC9jBqYliE2lzJzgyPq
+fhzndkCe8hyzRl/JeqT1Jw6fJ99vvY9Wo+OIk2bgF1QjEpikA0dhm9UofInhhJ7x
+MItcYMTAi6lU2Rai2atHEUTx5RfHnPDdAdyONVh3Reif3IOlE77sQplaiQbQNoSR
+Mzqrd34vQwhfooR+slwaa4QYDF9NhCC24Q+zBQiJPfCxjpSSSr3jwgfxELL1na1u
+aG/tRpQ24jmI0jmxl+bjWJ6+HsR2b6OfVAvxRuJ/IYzqLnOk3H2ibli3VHiuQvx6
+jVxFApVJGdgnAuoX8ZDM+IAIqyFKboXBgOYqq+mvkqWM4FS1Gs6DjPSPk7xP0FYs
+DHDmdknBxl9b/D3jH4iHOnleTjcD4VFRLQlnpj3RxjRtRqJDMDXo+syPwN2ILa7Q
+n2nECByfGJ64wIXhE/esQJ4QAXjLZTCWkeOo4L1MP4IcL4d1myxAIasV2RG9T+8t
+L5+HRggN3TT8bgdMfD5SZUE68SosdakEW0z6P2nKfVKWX5HUOYVSo15Wq0R/K5F5
+F6PaY8gerMqiM+0EMbAMgsRDu5uwtMncN64lY/RKATaGQWnfyzIvCvSx0ITYt9xd
+vY1SzjJWA1t4BaL1vWpS03YZjIGqck6VVxPNTMKIRIawbHTWNdT9lhTD6l85I1PX
+p2hag1Lb5nI7r0tpcnGwGGrBxA==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFgDCCA+igAwIBAgIIY9KwNpcEODUwDQYJKoZIhvcNAQELBQAwbjELMAkGA1UE
+BhMCVEwxLzAtBgNVBAoMJlJFUMOaQkxJQ0EgREVNT0NSw4FUSUNBIERFIFRJTU9S
+LUxFU1RFMQwwCgYDVQQFEwMwMDExIDAeBgNVBAMMF0NTQ0FlUGFzc3BvcnRUaW1v
+ckxlc3RlMB4XDTE3MDMxNzEwMDA0OFoXDTMyMDYxNzEwMDA0OFowbjELMAkGA1UE
+BhMCVEwxLzAtBgNVBAoMJlJFUMOaQkxJQ0EgREVNT0NSw4FUSUNBIERFIFRJTU9S
+LUxFU1RFMQwwCgYDVQQFEwMwMDExIDAeBgNVBAMMF0NTQ0FlUGFzc3BvcnRUaW1v
+ckxlc3RlMIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEAiStIxXZpEqdr
+ZkwBH3lfqBzZByWlWFyOSJiAikxtzVnQpUXWlJBTwjFCxxtAsCh4g34Oyjtj9RP+
+hTylIEqydHGr+NZiO2qpiv2JDzOpz5v/iKCEu/m99CFWkBWW7dlhabSk7LBG/TIl
+9QMc+jC7fthcQdx4+pNCiXoKuUYHGiPTE9V0H7WiLLFkCRLtzQp49Lxb0aZ70m7e
+T48uyCk4U6+APqTUYxREjealJYvSAA4zHjVLzaIwewoKLhVfvcMtOLXWa26qDOrY
+v2e9zlGIeCRe4brX+e1Pjzp/kYR1Xtng5786CBvm5Xpbyn5zm277EqpEuw499sJZ
+w0RM6jWB2u5wwHJTIFMVLxH/btI2go9rRhn3q6dMtVjLYBfinGU79SBcWdQRheFT
+W2N3pdAfPtOW4Z4YnZns+eNhhmW1RzHOqWbQdTF2bOTAeG5fnIgwJDpQa/kxWunA
+M+WuyAJPX0YliAQKIjWt27rc/PY+1qnQDHCt72CDu6tW9OSMUywrAgMBAAGjggEg
+MIIBHDASBgNVHRMBAf8ECDAGAQH/AgEAMB8GA1UdIwQYMBaAFGtstDPyXJRGymYO
+YdAnhFtXmU+KMDcGA1UdEQQwMC6BGmNzY2FfZXBhc3NhcG9ydGVAbWouZ292LnRs
+pBAwDjEMMAoGA1UEBwwDVExTMFAGA1UdHwRJMEcwRaBDoEGGP2h0dHA6Ly93d3cu
+bWouZ292LnRsL2VwYXNzYXBvcnRlL2NzY2EvQ1NDQWVQYXNzcG9ydFRpbW9yMDAx
+LmNybDAdBgNVHQ4EFgQUa2y0M/JclEbKZg5h0CeEW1eZT4owKwYDVR0QBCQwIoAP
+MjAxNzAzMTcxMDAwNDhagQ8yMDIyMDMxNzEwMDA0OFowDgYDVR0PAQH/BAQDAgEG
+MA0GCSqGSIb3DQEBCwUAA4IBgQA0rfnYss6JQgrRrrHm4f6LRWzMlGQNZW4qRVvN
+Toz//G20xX0rDX6Ff7ydUUKGN2Z0f493z98MtI5k8Gmki2GKpmCQOoHh0OeN0wD5
+IgHmGvK/bdmTxuLYEIKh8E5pu3wMh7bqRLi40XoJJ+KVGamOdPF5AF7+fkQ5GAzw
+n105Wm21HXoGXvox7cnHzgQXktD4Py67WP2KDROFsyiDv/VbmS78QtpfgWa7pOkF
+fesD1Kp/5sIfvdYUUp2apGdkI891jnSGE5po/1glTMNzF+ztayEwYBA1kpflCQe4
+jolyQTTQbGARuWC5zI7w5+3lqvvcxlcrrZbkaoKIU0Ah8r3T2bWS3s0MeV1l8IDM
+i6DOx9wgN1WH0xIrlMb5EMltt6VYzcvte1V7ZWfMsiyBBjbLCh2Bg5M/fTBvUQ/8
+5zs42PcS91berUT9Enshp+S3/EmMLVNAH1BZt+wgJ0NYMGGeyl+xG+GK+bk6my5a
+m1WlFuWYnSAiGziPbZKk5bxVq08=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFgTCCA2mgAwIBAgISESC6kP0LdZjT1Yb90wgWUfN1MA0GCSqGSIb3DQEBCwUA
+MDAxCzAJBgNVBAYTAlFBMQwwCgYDVQQKEwNHb3YxEzARBgNVBAMTCkNTQ0EtUUFU
+QVIwHhcNMTQwMjA2MDAwMDAwWhcNMjIwNDA2MDAwMDAwWjAwMQswCQYDVQQGEwJR
+QTEMMAoGA1UEChMDR292MRMwEQYDVQQDEwpDU0NBLVFBVEFSMIICIjANBgkqhkiG
+9w0BAQEFAAOCAg8AMIICCgKCAgEAlLrNzqY90BMX6PKLRuTPtxKQ2F69wdDNvbWy
+UEHpEy+9zFkH3CZ+3ozAkJWGvjlu9oKa+R05jLC/c3VsMpb4WoHd1S6cliFHqjnt
+i/yeqlnvFxuijlO7vIovb29Igo2UJ0RB80v1OP0eDn4Zoel/copycccdzyYdh20q
+RjiU1pKiyQZXMWU21+Bkj+gxZpaQk2Fg0ogC2LQZ6DGKaGM1LTtUvUuX8eD6ME32
+SRZkiq2KvqT3onayfPTlbr2CaXU6Jv0fRYoN4AZILzvLwLoq4+BLyz+iejx/Gmci
+lFxmuNXkpp1zKmaEmEB5xQQLg4aBqgthaoBCinb/+3Ar68BEMWiwJCFLfoAjtsfj
+OIjyyrGiJdFLXpD1qQx94mypPWA6xTcPTlF4hcR6fa+1BFiPUmWBLMHotLnL3Y05
+bcYBcK8zJuRJ6pHDC5kyD5s6picF+JcdnWSNPqKaALV1NLk9us6GQqsdmtDAdz0m
+ANVvMqy4hV1+2cdGe0CYFXHTxP18YbZap5/9WXR7a3+LmE78vUJXwFEuFOx+0tYb
+WUZmw6MFtYjKgywG4LmRPBK7Z4haVSRSNgrh5GDSU1/6VMt7rzsUGoSd9vjGGUsT
+nPMmzHJ+MKSxXmVrEv4wMdhPwnd3cWpQNvu/SBKbK9PZMUNugOScz6WtbgwiK/7h
+XI/SQsECAwEAAaOBlDCBkTASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQE
+AwIBBjArBgNVHRAEJDAigA8yMDE0MDIwNjAwMDAwMFqBDzIwMTcwMjA2MDAwMDAw
+WjAdBgNVHQ4EFgQUwzeZEay/GRmPZBmNGvKOnWNCWtIwHwYDVR0jBBgwFoAUwzeZ
+Eay/GRmPZBmNGvKOnWNCWtIwDQYJKoZIhvcNAQELBQADggIBAAhyrZs9ym+Hg7Dq
+e3WdZ7JCinuZKjHK5+AyfNhYjU8uRqP/wkHUpiS5zWlfyk7K7Zw0RIJasXs2BmG8
+PD3xj1AwsFfvufjGuv4i+qpfawq9OWEn7XmYLgjBXL6CkQY4uHoCJf10bubaXuit
+QtFuszt7etf9t6SRMcgnwbLVC6Q5GHcw+WWwmObwv/LhLOIC8OmdMDSn6xkPEUkx
+CAISDmq9GUyju6ZWBAJDAO+Y0tY0GRAEvNXe6w4iJiuZZE0tOljOhXeVtv+HU4vN
+2aA0FUwX61/tVdSKNaQypWuWpQTp3xdv+BjoyAP5C5ISwqNMFa0x6jE4QeDHXsc4
+sDFDOkKOypUTNKiwp7BvUcY/MmV+57bAfABsErdxmLJ74nl6zLuI1JGyfVP6NQqS
+ovqs/uaqgtLdZu6dbfi4EVSFmfK4cvjjrfncdtAFnktI2uJ5kl9umdmYnSYidJcZ
+/rBceTEk4ZLESUUpLGegBYFX4D/xELGx7vPnd0espWj/JHIv24MzXRVIyUB7Gat3
+gMQRU8QYSkELAOmjbvgXofXUrxycmblOFVrqwgKoJplf5yUEj9K2f0qTXRlcIs9g
+IWVC39Ds4puwPbcMicTWxMCEgct0SXAq4WaVUqpcTxuPEj3Aq8T8jvRFE6hb2cBj
+whPi2zS/oR5XR0xsyd1RlLQJIleO
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFgTCCA2mgAwIBAgISESFi4bqWkWuOpcuXdLJ0otFSMA0GCSqGSIb3DQEBCwUA
+MDAxCzAJBgNVBAYTAlFBMQwwCgYDVQQKEwNHb3YxEzARBgNVBAMTCkNTQ0EtUUFU
+QVIwHhcNMTcwMjIyMDAwMDAwWhcNMjUwNDIyMDAwMDAwWjAwMQswCQYDVQQGEwJR
+QTEMMAoGA1UEChMDR292MRMwEQYDVQQDEwpDU0NBLVFBVEFSMIICIjANBgkqhkiG
+9w0BAQEFAAOCAg8AMIICCgKCAgEAq60PYeWbvQOV9qB2VT53Qam7K9FuCbl7DAe/
+sx3aNYfVZ8le2tX8E6tKGEWl0R5KoH31mIVJve+juPAoePm1wzE82mKOVmD0xoqD
+aV6SqHeCk/ubhYc/4HQkOdClZGrDveCKzCGta7UfZcberZfppwc6ioAk/9mHd+3E
+LW8t47D4Ulr768KX3ehMHTkGeDqGGFsZwqFlFhov/xP1b06f5545MdTwzMazXx+X
+B77QmecxCBo7hybZa6vWjNOux+GnPUq2NUvJjSxfH/Wl81vjKSynMUwXplyK7xgQ
+TEudp1x+MCVN/ePLOZRmV2X9h4HyCzxQSLRGCNMwbWsEtUg2Z1iNOJKUCTLQWlUS
+XXviyV6aEqSkJGhAb7s0sYqDMW7h4S6G5RtmYUlXOMP6Rg1mmRp+2ZCeSP1CCW2Q
+MBXYiQpuebK8AkKH81YYob157I1k6U2enFOoyL5f3HWn2eHx7zPuegIm/wv2GmLW
+SNER8j0z9+Lc1DOxnOnk9lhCpe4yVy5pSKnSweHl4jiXNS2BgQJDMIW0kjMOJG4D
+7vQXlBtSUdTgSAhJ7H2CoynXoxwoMdgB61UajrM0wc8BzP2Wz90d5Du/DQaRMMr9
+Pds6FN2MjDUMYKGNSmwP7ZKbeOtld59CfGpPeZmgCUWf1a4fEFEOoyYpBjLpVE7t
+3oi1ul0CAwEAAaOBlDCBkTASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQE
+AwIBBjArBgNVHRAEJDAigA8yMDE3MDIyMjAwMDAwMFqBDzIwMjAwMjIyMDAwMDAw
+WjAdBgNVHQ4EFgQUgBPwrpfq8p5xB3VDJhLccqd/X9IwHwYDVR0jBBgwFoAUgBPw
+rpfq8p5xB3VDJhLccqd/X9IwDQYJKoZIhvcNAQELBQADggIBACnC/muxORk5gvuU
+h+etIe7U7Rr3sbrHuwdQNROf+i5FP2geMgAC2uIzcnCjlkHrdT+ODLxDKMELKfGy
+A1EWmwK3bL7tHTPVj152OPzMgemCgdTw0sjEv2pGOGiAbjl5qfaCAcckWLBoRnBK
+FhSwyrMYZNGr+jUaKrjzScXiZH2ykglRqxirjlvw/f0oSO1Ft8tOZaQLvdexzDna
+mzJJv7QyzzMiP08duFHYIo6eUKap70+7HGixEXEFopvsYwFrBBc7GTVYDYTkTRCT
+EY0Bdy+P94esUHffkbXh4diPVxU1cNDhKLygnuGPPhB+A6GtrQKvszW1qBqz8ecI
+goBSJqG6A8Rrnqe9Vzw13fqHompMPIzpMuGZcVpRd+H/4PO9dYQ2GRjWmevuXJUH
+HT9jFvOqBdEXMRxEy1Aq8wITX9NDJndx9bcdyW5Fb1UmYZ2uR0f222R80Jhqek61
+OYs/L500TEtPTCuyFYokLA/eiqYLCcVj5M7/kkvIZF/6D6Rw7a9ixrOyNxnzvdGS
+E9tEQGpuu8KVEVvadqAPUP60AtVID4gJaVI8K2rVYw8lfhKoLTsXSf3H3aUqRWeS
+p10YWq8O3kUOq1g/sl/fpZpYs33kpBv5+UUsIkAFXz1vPRlnhb86E70n4L6zTYrf
+EuUPax1SzQPpoZUnF2AphQvvHLmd
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFkjCCA3qgAwIBAgIIVi1lQe5V1d4wDQYJKoZIhvcNAQEFBQAwVTEgMB4GA1UE
+AwwXQ0VSVElGSUNBVElPTiBBVVRIT1JJVFkxEDAOBgNVBAsMB1NFR1NUQVQxEjAQ
+BgNVBAoMCUhTVkFUSUNBTjELMAkGA1UEBhMCVkEwHhcNMTgwMzAxMTA0MDQ2WhcN
+MzMwNTI2MTA0MDQ2WjBVMSAwHgYDVQQDDBdDRVJUSUZJQ0FUSU9OIEFVVEhPUklU
+WTEQMA4GA1UECwwHU0VHU1RBVDESMBAGA1UECgwJSFNWQVRJQ0FOMQswCQYDVQQG
+EwJWQTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAKzw+qXAAPJvxOxP
+usBGhd9QJkdHibtxE0AcL7Zq3VIlhUPchbzfMZXHaP2+Pzf7dRIvM8wPwAT6nR6Y
+D80jyhmPdrwkQHx6I+H0jjHs5LzugrMPcr2WYovZEYs0pV+h1DX5M5bVuH5WV4Zm
+TJUs7+JKFW3ymXVbkobt7UfnbEi0NsTWrzohXJSB7XDCAkv49fVxceNqcNEnRv4y
+ntdOIfvLQgJiGFMTcZT+A/yWLhU8dftSoXU3WOPXckMIlO/pvMepCqxDnc6NTA2Q
+WbI1Cp6eI+qlqJebf4SyIAC+CwXszQVDIFjq4zIKcqGjLhFxzzWf5KadqC5AdBUF
+OFyMyFQGK8rY4Th2x0TibyUI7K8qDyusyoiZ0s7Crqi2mHAwj8PjrKjVLuB6NQ6k
+iKIa5DV5u3N7sXvnYRiMlRElk2beRcamkujAoJNWeibN+tN9tYL/HUX9RMIxf9ya
+ACQKz0hE9a2ClHm9iAQpQoI1a88zIylZwGfWMjd3WDt9g1gRBuTy0rSMjjXsnCEq
+cZM5AexANQbmnyG+B4MAlTs42IWCCU8IrRRSZyK1fgUzJeXvibbuPOiUbHrGdviB
+v1aPbgsf0SfyaD/5Rap9bvWlUxLGaYWe9DxqYuKfvvrbTYXxWa28PtkX4K+zw7WD
+Svh2qqkhhhYQZ7WJW0wHzSqfbqnpAgMBAAGjZjBkMB0GA1UdDgQWBBQvzhZuIh1S
+33f/8c26tamTBVHhwTASBgNVHRMBAf8ECDAGAQH/AgEAMB8GA1UdIwQYMBaAFC/O
+Fm4iHVLfd//xzbq1qZMFUeHBMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUF
+AAOCAgEAThupcw/ckNUD5Oy0bcn4Q4vyPoSK2GXF0ybrW7BNBfmMjNCCvT7r3+4F
+vPzHL9MGH7kxy1bhAhRR8cWaPwfq/n9/xrMvb9hIzQZH02CTmcyUdIyI/9BkoiSR
+9VqBLcIJ/Wvhteo8sn4RVDG8lqoHlUtJQIu4FaXzAPQwzbYshKNCmGsfmewAs1zm
+0lmms5GgyPf1IKQikopldMxpl8rjkQXbUj2yyMRWjFVGed85hRxYl6OeBhPC9L6o
+LQdmgB63WSyDTiWQofOBTTm+jqsfJYHxgkfpaYTYZRa2lFJIcqt33pp32NSExVwm
+tar3g0wJMxxB27Ly60YVlXQ5rTlHqFWUOe3QAYycWPAKKDXbepfIcDbGh5YOFy3B
+wjGF7jk8tPdvnWFV/3VWgJhQeNKhUVoR3J6Pc1S5ote1sl2UXlaXKAbLkdN1sMPO
+8X1qxyeJ+sKK0F2MFfasIJtWWtTv0eXQFHMnWgyhaOnTL2r6VoYIU8lY1hwcuega
+Ufc5KH2FJyp44YNlMWPzVwydHJJagsMeRHba4l+DZM4RrGEnHIpfBhTJX4F6pvE4
+FSMF9kVgXwdzSOdnB542G++Xhczweac0roODJGGyVcUEudpN4D4waFtOX5xKHXV8
+nBp0vaUj0BfuPpiY27w8qcYzFOO0hnu9bSyvKHl1+3g26d0X3qo=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFkzCCA3ugAwIBAgIIIfghsEwhO6swDQYJKoZIhvcNAQELBQAwZjELMAkGA1UE
+BhMCTUMxHzAdBgNVBAoMFlByaW5jaXBhbGl0eSBvZiBNb25hY28xITAfBgNVBAsM
+GEZvcmVpZ24gT2ZmaWNlIG9mIE1vbmFjbzETMBEGA1UEAwwKQ1NDQVBLSV9NQzAe
+Fw0xODA1MzAwNzQ0MTNaFw0zMTA4MjgwNzQ0MTNaMGYxCzAJBgNVBAYTAk1DMR8w
+HQYDVQQKDBZQcmluY2lwYWxpdHkgb2YgTW9uYWNvMSEwHwYDVQQLDBhGb3JlaWdu
+IE9mZmljZSBvZiBNb25hY28xEzARBgNVBAMMCkNTQ0FQS0lfTUMwggIiMA0GCSqG
+SIb3DQEBAQUAA4ICDwAwggIKAoICAQDdpnVwp3uW3+UEYit/rLbTvRFaFH4JlWSe
+9e9ODgqR/riaZMRmu67COTWZg26UEPARrL9MH44xx17QjeriOnwlTAnolZVLW/88
+FgxedTZFSK9k4sII9rMN6dh6dQaKgA4qo7DX6i23+fNRHF/VA+443Jq4r+HnXgQN
+0zea0EJxxYhuCN9HjSxS4s9Pwk4aZoGsmh/v5XZiC8c7i3wVKnnk6kYkpT+XZVec
+U8vc/LpI+OzzmNRHl4xCnk5Dz3QdzqcCeR64TEXb7qSmODMW/rH3avfiGogyqIfF
+tLi6rfmKIw7YN7B5Gx6tp1ADWMCHgm4TKhXEjJHCa4lcDm9ipysdR7wt/nE2PLIP
+dVVeTVHb9qvno8itobYDljXhN42sMPjrvvI4QhDfSr4pYNpirB4ULs8gJPXLYNSj
+fEcu7Z5qRh7747fe04sii04zsbBxxyCDlxI3+9o7sXAHsxNWgEbWD9os3CRB8ad9
+tKn67yBtDE21LShD1lOi8I5hZqAL7aXsZJXgFhGFiKJZPC3ASecpPnAexxELmvcn
+T1qYhQ1RmowcoZDNWRggii5fHzFBkTQLJ1cMEgPIriiIfwp0WrgYRjghkXpp4t/9
+G0RfVP0ui3RogVwvge+BG8TaY5yc5en3Ju9OPrJfQbv+sj+csaeCj6bXj4W4TIs+
+82PH5yBUoQIDAQABo0UwQzAdBgNVHQ4EFgQUtmdeJLzo5r0soo4MG7IT39dTID8w
+DgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYBAf8CAQAwDQYJKoZIhvcNAQEL
+BQADggIBACnbph/POqL6lrbeQHIJGwSmjcjl2AUPaCvQK9a6jVa53xLwH37NOrI9
+R2KVzbqOEWY3TtcYrLFN0jR1YKOWtX8KM3lLPg9KUL0y3uMwwRJ3h2i0mr4gnwfo
+mtrqmkBIR4zq3g603G8X8HFA6xms5NX4OQvE8mgOyn/Yv+N3F9ucUD8EnC5DGJhl
+5WrKde66ep0xosXy6ty0xyo6BkXF+LkNx78w0n2ygdUK9gt7+hyauJCPa8xO0djH
+q/2XqTRx3B+/cxdDKaF3YeGsx4PnnUGI1744hicBeGN+tGajL6IBz9djPUxKC7iR
+2qkDvzSO2bE4BiY0kVXZFJnrlREbOur8ApZ+4ab74qlhpgG60++82ggZTAKbXeJD
+qljF1poGgAJAQVeTtl206NS4w5GnsNfdyMPmQGjcACIW/AsvXapqgB2xQjoof8/p
+eGpgj1pdkmbzbrb1csGvJgCQv8rlvjUGGgyV2hFmeCKR+BNR3UeWB92pHschKuqe
+Qqfl05H1xH1pHBigjnTRbbvZy9Mf3wvjjHg2Jw0XOlhco+oo6jOsoJRFmCb3stPD
+T1vwDqB4ZyvTxZOQ4LLAFCXlVwVyfu3nIL+PLonO82lU5KTbwcyJET/Z27MKzmxf
+FrS/FaocamOEyKQUWdbBBuQszP32GZ5b66kq+fUi+nA779R1HkuN
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFkzCCA3ugAwIBAgIIfh46GH6nsigwDQYJKoZIhvcNAQELBQAwZjELMAkGA1UE
+BhMCTUMxHzAdBgNVBAoMFlByaW5jaXBhbGl0eSBvZiBNb25hY28xITAfBgNVBAsM
+GEZvcmVpZ24gT2ZmaWNlIG9mIE1vbmFjbzETMBEGA1UEAwwKQ1NDQVBLSV9NQzAe
+Fw0xNTA2MTExMzMzMzFaFw0yODA5MDgxMzMzMzFaMGYxCzAJBgNVBAYTAk1DMR8w
+HQYDVQQKDBZQcmluY2lwYWxpdHkgb2YgTW9uYWNvMSEwHwYDVQQLDBhGb3JlaWdu
+IE9mZmljZSBvZiBNb25hY28xEzARBgNVBAMMCkNTQ0FQS0lfTUMwggIiMA0GCSqG
+SIb3DQEBAQUAA4ICDwAwggIKAoICAQCqnZin/C/4FiWD7iwFTmBGbwm5B0PZ8QhX
+snsn5aGDj/LbTO1cGL0RgE67M2sulkWlgytstjX/UUw3U9V4fCgyUyxZJ4QzKGG4
+Hz/1yohR90uXSaT/r1MKsPACFOzyJAzSFI5zb9cmOn0Gqco+mr54hHNt3EEafki2
+Uln8xvck277ou80G1mnbzvCn8kURsSt9cRbnsJRFTezjJILBq0CA/lum2eHs8m6N
+FLFn5/+JlUIfuUS5syOFGQe8WarxLFnujVFUDNUqNBL4J/eHmc9F/49fRzclUoEp
+1jW8Vn4rPDWzJypZX1Mz2pu+3ocIRV2A4WrQ7tw5eQ3GGlIcARK5NVeXEP1WbQR1
+XLS+rHehznKzG2fz/0H1GO7xIPq9DmCiiqPjwcmGVJoQNA9WdC98VJoRW51eCiov
+EUCqsQ7+IOLq7S+pvLcfaGwFO3RPsQn+7W6KqnzV9dpTm3nx1ISrs8xW1gNxbkrS
+L/eNiAuHkT9g94SVYtNqOgzv46h57Sxoq5BPT/mk+aGIUbr5yA/LEviZuNUm43Ml
+yTL4Dw9XWrT/HSxHa087d5QiTzyn+um0q/8czCS0fRWbrvmyheeKRQOi3QATRdNx
+DAwRwf/S6pnhKHCRDKkWxBtTBx1fUetBm7hz+UXvubgs4zsmjpy7s0k0JTe6b81i
+wPfDBP3OnwIDAQABo0UwQzAdBgNVHQ4EFgQUotNgQPDQfySzbf7EEePXfkSr04Ew
+DgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYBAf8CAQAwDQYJKoZIhvcNAQEL
+BQADggIBACu8V/y/fB+R+XHuhG9kmYRCZrAjlBCRixQxFEuawHuMlnbc7ESFFcEL
+hebpQr4Dlqokt0Tlakirj6z9amCnJ4wW3K8g1/DPb5PtNfdz11H3J1GOajad9K/R
+3dAZSmYBCK6vqeb8qbPgwdOAC1dobETe9EF6F5kKuuKmyZwwhZs2ocBfFLJysxli
+e8ifsA3yOVRH1m8a7bZ1nN6CdIsHbfPOIp7eMBiJFD17uXZXRPQHnwpI0jGFlc4H
+NGuHB3s8xyRikYCLbQLcY+eqnvI2To33WSOVfsRXUGOVYkvFbhEq++iz8z3Z0zw1
+rNjLjK006oaeM7XGpAOJE4Z328LngvUXXwYxfKjan2khuO+hAsdRHosuszyr2/p3
+WSeAPadkyPN603ni8YO4KiHq2YvYzJ3O5HLUOzDeAzOZpQkz9fJ7EiqHWxJxn2G9
+96P2T6aDqqjbVkrM7RqIOOAANyCbAiHdKHBXDBEPTCfM3GYZDdvktFNkhAA2UtsE
+hBBSOt/V+OEKGtcS9eHoKrlKEui2ZQo8MSmwKCiOewOa0JSyAIqQjf6wglNvF6YV
+D38mL+BmZqyk5x98ymOSjTeMbiQ4qeBPDZxKnynJGhbRQgVogJ5RDhZN+0dEPzw1
+hNCdd9Ybe/KTCozr5BdFRvGzGvXLdcX++o+2M9pNFAN6Og4pjas9
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFlDCCBRugAwIBAgIBATAKBggqhkjOPQQDAzB+MRIwEAYDVQQDDAllUGFzc0NT
+Q0ExMTAvBgNVBAoMKFNVUEVSSU5URU5ERU5DSUEgTkFDSU9OQUwgREUgTUlHUkFD
+SU9ORVMxKDAmBgNVBAsMH0dFUkVOQ0lBIERFIFJFR0lTVFJPIE1JR1JBVE9SSU8x
+CzAJBgNVBAYTAlBFMB4XDTE2MDIxNzAwMDAwMFoXDTMxMDUxNzAwMDAwMFowfjES
+MBAGA1UEAwwJZVBhc3NDU0NBMTEwLwYDVQQKDChTVVBFUklOVEVOREVOQ0lBIE5B
+Q0lPTkFMIERFIE1JR1JBQ0lPTkVTMSgwJgYDVQQLDB9HRVJFTkNJQSBERSBSRUdJ
+U1RSTyBNSUdSQVRPUklPMQswCQYDVQQGEwJQRTCCAbUwggFNBgcqhkjOPQIBMIIB
+QAIBATA8BgcqhkjOPQEBAjEAjLkegqM4bSgPXW9+UOZB3xUvcQntVFa0ErHaGX+3
+ESOs06cpkB0acYdHABMxB+xTMGQEMHvDgsY9jBUMPHIICs4Fr6DCvqKOT7InhxOR
+Ze+6kfkPiqWBSlA61OsEqMfdIs4oJgQwBKjH3SLOKCaLObVUFvBEfC+3feEH3NKm
+LogOpT7rYtV8tDkCldvJlDq3hpb6UEwRBGEEHRxk8GjPRf+ipjqBt8E/a4hHo+d+
+8U/j23/K/gy9EOjoJuA0NtZGqu+HsuJH1K8eir4ddSD5wqRcseuOlc/VUmK3Cyn+
+7Fhk4ZwFT/mRKSgORkYhd5GBEUKCA0EmPFMVAjEAjLkegqM4bSgPXW9+UOZB3xUv
+cQntVFazHxZubKwEJafPOrava3/DEDuIMgLpBGVlAgEBA2IABIJ95cuduUbRZXYF
+Oh/pdCpmz3rbEw33tTNy3ckMnHDWt9unsDIWIHtKMEvLmjqaWVgRellAXHOOzwnB
+47n7wxAjYdzzDymXDKvAMVNcloWKNrKEIoOp8Dij2Hmq/m74bKOCAiowggImMIGq
+BgNVHSMEgaIwgZ+AFPSqJOWsyzucDxdOkT3kP95smnvYoYGDpIGAMH4xEjAQBgNV
+BAMMCWVQYXNzQ1NDQTExMC8GA1UECgwoU1VQRVJJTlRFTkRFTkNJQSBOQUNJT05B
+TCBERSBNSUdSQUNJT05FUzEoMCYGA1UECwwfR0VSRU5DSUEgREUgUkVHSVNUUk8g
+TUlHUkFUT1JJTzELMAkGA1UEBhMCUEWCAQEwHQYDVR0OBBYEFPSqJOWsyzucDxdO
+kT3kP95smnvYMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/AgEAMCsG
+A1UdEAQkMCKADzIwMTYwMjE3MDAwMDAwWoEPMjAyMTAyMTcwMDAwMDBaMGEGA1Ud
+EQRaMFiGKGh0dHBzOi8vbWlncmFjaW9uZXMuZ29iLnBlL3Bhc2Fwb3J0ZS9wa2mB
+GmljYW9wa2lAbWlncmFjaW9uZXMuZ29iLnBlpBAwDjEMMAoGA1UEBwwDUEVSMGEG
+A1UdEgRaMFiGKGh0dHBzOi8vbWlncmFjaW9uZXMuZ29iLnBlL3Bhc2Fwb3J0ZS9w
+a2mBGmljYW9wa2lAbWlncmFjaW9uZXMuZ29iLnBlpBAwDjEMMAoGA1UEBwwDUEVS
+MEEGA1UdHwQ6MDgwNqA0oDKGMGh0dHBzOi8vbWlncmFjaW9uZXMuZ29iLnBlL3Bh
+c2Fwb3J0ZS9wa2kvY3JsLmNybDAKBggqhkjOPQQDAwNnADBkAjBNhJLs3prIcyl6
+Ir8kKpUknTQQxuX6WIRue1NgQQfoiP1Jiso4qgItzS9CY+BhlMwCMB9C+4p8C8Nt
+jhX30uIkHaUj0tSgU/WuWG0nSLh/8DsiLePo8Tp7q/RF90+2Cj+Sag==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFmjCCA86gAwIBAgIETydbzzBBBgkqhkiG9w0BAQowNKAPMA0GCWCGSAFlAwQC
+AQUAoRwwGgYJKoZIhvcNAQEIMA0GCWCGSAFlAwQCAQUAogMCASAwgaAxCzAJBgNV
+BAYTAk1ZMSMwIQYDVQQKDBpKYWJhdGFuIEltaWdyZXNlbiBNYWxheXNpYTELMAkG
+A1UECAwCV1AxEjAQBgNVBAcMCVB1dHJhamF5YTEpMCcGA1UECwwgQmFoYWdpYW4g
+S2VzZWxhbWF0YW4gZGFuIFBhc3BvcnQxIDAeBgNVBAMMF01hbGF5c2lhIENvdW50
+cnkgU2lnbmVyMB4XDTEyMDEzMTAyNDE0MVoXDTIyMDEzMTAzMTE0MVowgaAxCzAJ
+BgNVBAYTAk1ZMSMwIQYDVQQKDBpKYWJhdGFuIEltaWdyZXNlbiBNYWxheXNpYTEL
+MAkGA1UECAwCV1AxEjAQBgNVBAcMCVB1dHJhamF5YTEpMCcGA1UECwwgQmFoYWdp
+YW4gS2VzZWxhbWF0YW4gZGFuIFBhc3BvcnQxIDAeBgNVBAMMF01hbGF5c2lhIENv
+dW50cnkgU2lnbmVyMIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEAsmCW
+X0c6LqdU9K8fM2t5HPzhlR/1SoHffSPCUlcfpefSfpQyMFi2XKuZrYAVFGnkBQ05
+iO4gYOsYxmYxFQA3Pp5tX5tFK34UNeJDa9lpc1EME89WWLtxwE2nleaCTo5hrtpZ
+8JpN71Ib11799xkhVBbI78HIVkxQsMmDAPR97HPp/0bgYfHMJOUbYh4LnYdztI/s
+sQzvmP1aw/NvTlkMPoH3Qs4sMbrSUi5sNy2xRIdT8lsBdwJCwNwgKRuRfqTsl3I5
+DCF3lyfhmUzPYeq/GlZwzQgYsAyKmqi45Q4npqFQsWa8XhoyutN044Dd3Z2HDzjk
+al2xD6h8OIhB8DBJORPPcIHrbDItfX36mnGAePziysB8Osy0FMiRZI6q/5l7gXo+
+abwCaGDa241rkQ0ZlrgKRwbR4kgOmyYVg+Pr3iRPzV/uZy5lD011d+/NG6qoYaEY
+mimDcIHnDToK+dYthlc9WhxpN6Ho4Lq0XROvPoqAnKmiDw3aYcKGmgZABZlfAgMB
+AAGjcjBwMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/AgEAMCsGA1Ud
+EAQkMCKADzIwMTIwMTMxMDI0MTQxWoEPMjAxNTAxMzEwMDExNDFaMB0GA1UdDgQW
+BBS2NPNSni7V7Xdzeahb5kpdreD1nDBBBgkqhkiG9w0BAQowNKAPMA0GCWCGSAFl
+AwQCAQUAoRwwGgYJKoZIhvcNAQEIMA0GCWCGSAFlAwQCAQUAogMCASADggGBAAt7
+soo2p/8tG7VWwaFinxm+gUTkBtu5ZhJzGOlxOSwHjt6xwrKkilAyb17/Y9CpSach
+XNieFUvVGqrEXaHFdSjjttdRfpuYmf2t8agY2kyNZ0QhaPYsYZbW+hu01Po0bQLK
+DXCHGNttQRCx01aMdpklF79EUr5+ISNdntv7TreoRQp+20/lXaW8dGqegnpbszZ1
+jHjuk2O/5+PfGH9fb5vFxNeT922Veb58IGzXDvSOq/21nylIjSk+JKIeQXjxeF/2
+xqZDKcdZLlck0ueiDIVFiBkLnL3PExHPgnCVRLTyovVij1dVydbvp3zbpDV7ZX4C
+aenM5GijYPcC26BhSucayId2pScz4nAUy/twgqUVH7tjGHKR4vZp8vy+1OZuWi/w
+T6mHDw/O/XAlqnMHgKR2zOS+FDB8cipjbi5Kfqm4VtLxLl9Akgnsn+fFnWXpygqx
+vz1GqP8kMIHJT7TWZtWGu4LR8uDhA/VF6w7OikQ4z8avtm5kCZwOIeNNF2nJcA==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFmjCCA86gAwIBAgIETyfFjTBBBgkqhkiG9w0BAQowNKAPMA0GCWCGSAFlAwQC
+AQUAoRwwGgYJKoZIhvcNAQEIMA0GCWCGSAFlAwQCAQUAogMCASAwgaAxCzAJBgNV
+BAYTAk1ZMSMwIQYDVQQKDBpKYWJhdGFuIEltaWdyZXNlbiBNYWxheXNpYTELMAkG
+A1UECAwCV1AxEjAQBgNVBAcMCVB1dHJhamF5YTEpMCcGA1UECwwgQmFoYWdpYW4g
+S2VzZWxhbWF0YW4gZGFuIFBhc3BvcnQxIDAeBgNVBAMMF01hbGF5c2lhIENvdW50
+cnkgU2lnbmVyMB4XDTE0MTAxNDAzMzAzMloXDTI0MTAxNDA0MDAzMlowgaAxCzAJ
+BgNVBAYTAk1ZMSMwIQYDVQQKDBpKYWJhdGFuIEltaWdyZXNlbiBNYWxheXNpYTEL
+MAkGA1UECAwCV1AxEjAQBgNVBAcMCVB1dHJhamF5YTEpMCcGA1UECwwgQmFoYWdp
+YW4gS2VzZWxhbWF0YW4gZGFuIFBhc3BvcnQxIDAeBgNVBAMMF01hbGF5c2lhIENv
+dW50cnkgU2lnbmVyMIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEAyjTj
+0smBAi13CocOD5rY7HjvaUT7YFGHdnpInezRas0h0wy/5OLr0/Dt3ik9RAmdmdn9
+9gFtla5xbX5uIzJ6aGTFE9C0s3ajfkiJu5YI+K9y3MJbelmCgyCHHM6LsIAQkgvp
+/CNn4dOQxcsLlOGU0zWNWkJQFUKzQN+AZ1xCnQbMzrUw+pWNPV5O+VGomzhobRP0
+n5nQT7YhZgEH+UFT1nQz+1FZcydyQU+XbBt6sVu/V6Ty1TLlE5GdHJbZPT7iyIHY
+MgqqmWbbmt4FQpSmSjB5aPz9uLC/EhrkDQygrnPQ0fQ5ld3FfmYn5iFTystw4SKg
+6JYJOYl9ntml0NmTwsjfRQWHm65GJAZnySVcGlwBtkuqmqHlmdLwabNm+zkh+y+B
+M9sn0hbnt7RjRAf7P0ujCQ0zaJ3e3jKePpZlggGqxiYO6IMda4qKfq8tFRL0uMO7
+xHUwP4N0XdS8xfpzW+PjumvuFCWlLD4FwEIdbV29s9N7l6+zdoxlErD65TaFAgMB
+AAGjcjBwMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/AgEAMCsGA1Ud
+EAQkMCKADzIwMTQxMDE0MDMzMDMyWoEPMjAxNzEwMTQwMTAwMzJaMB0GA1UdDgQW
+BBSwUH4L9jMGYpP3Sbk5LEssSjjS/jBBBgkqhkiG9w0BAQowNKAPMA0GCWCGSAFl
+AwQCAQUAoRwwGgYJKoZIhvcNAQEIMA0GCWCGSAFlAwQCAQUAogMCASADggGBAGXN
+mF36lTCZeo3uqN7AZFc/czK5w+F/rYTFh7FJ/UCXgAT22+IiWZA2LKkf5qLJdc7H
+U1WujA+blmeckWCpsWEVhooHHYi1q+ULEq8sKa9Hyh7ApEVfeZIaqZxAHjfYLucz
+fzh8p6JWyub+Rt5sf+h24tS9eidhi8EuG+eoUKadbiZSRguf5jw77OUuK5A54hUd
+kkseDUGyqjTmSY+bInsA7jrjs3sAR6+ZZaF5oY/7/5z6X9BJ2H3RQ6MGJG7AOGms
+XPnIG4vXlf4ZzquyR+aONZnbLfOxX+VICrdi+Mavq1juTkvLMp38VLqCII4K1FGs
+9+D8FIeW9mpvTu08z2WGoAfEMZ41+Hzca+KujA3zUcNZ7/poPofPq9QmWFGKWJJx
+1dX9mKKtJ9IhQ7LeYBoCjnZCuRj6hHl8pX2XlwvJqzVzGE7QqVgfx7K3ScUzlSht
+CgOrPcXHPRkweS9O9xsXf+HlQIr3bsq9u+3xkrt9RgR1H0mWO6wJr53ii1DFHg==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFmjCCA86gAwIBAgIETygy/jBBBgkqhkiG9w0BAQowNKAPMA0GCWCGSAFlAwQC
+AQUAoRwwGgYJKoZIhvcNAQEIMA0GCWCGSAFlAwQCAQUAogMCASAwgaAxCzAJBgNV
+BAYTAk1ZMSMwIQYDVQQKDBpKYWJhdGFuIEltaWdyZXNlbiBNYWxheXNpYTELMAkG
+A1UECAwCV1AxEjAQBgNVBAcMCVB1dHJhamF5YTEpMCcGA1UECwwgQmFoYWdpYW4g
+S2VzZWxhbWF0YW4gZGFuIFBhc3BvcnQxIDAeBgNVBAMMF01hbGF5c2lhIENvdW50
+cnkgU2lnbmVyMB4XDTE3MDcyNzAyMDkzMloXDTI3MDcyNzAyMzkzMlowgaAxCzAJ
+BgNVBAYTAk1ZMSMwIQYDVQQKDBpKYWJhdGFuIEltaWdyZXNlbiBNYWxheXNpYTEL
+MAkGA1UECAwCV1AxEjAQBgNVBAcMCVB1dHJhamF5YTEpMCcGA1UECwwgQmFoYWdp
+YW4gS2VzZWxhbWF0YW4gZGFuIFBhc3BvcnQxIDAeBgNVBAMMF01hbGF5c2lhIENv
+dW50cnkgU2lnbmVyMIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEA5V2T
+yCVJbCZF12n6GI+bir1sfHvSUhHJIL6+ArbFaUuMd51dD/Iq2B/Y/pXtW4Yh4kkQ
+0kqNixrbz2l9VwkVM4QhZ5qTYaHKifAypyrnCTfeNa4PhgY1qYxpera5eYesaAVq
+ps8sFZcE5Y8GbnrPsSF7gvd6kZIhHIvn2p5Zq7wDB+3Oc/1c0stAXN/FMV0vyrTc
+Bo85rvg/S3M8mA53ceERzlDJ1/W2cpkZbxu/nFvfKlOfe4oN8fSuUvpqNOur5lQ1
+3ITGCPqWq5C8AAWI1vUNOwUuHBUX0rIErQN5Vk/nRszziq7HBhd03hvqQ1ymuoom
+0cGxq/QG15jjkh5lip8t7oW3J/3dyDLakHOCZUGZG+yw1xj47XqTRStRzOZQEpR6
+MvHQDNSVgkCUzxHQYwH4V/P3Mv570f95jBNSaZEDwGeCfgrOYUNzLdqXWi31Ijap
+Ut6aRLpvJQZHXXhXc9fE0QuQNQuYh8Pl3WgGQyz5CZUARrVOeaJeQ1m9PPT9AgMB
+AAGjcjBwMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/AgEAMCsGA1Ud
+EAQkMCKADzIwMTcwNzI3MDIwOTMyWoEPMjAyMDA3MjYxNjM5MzJaMB0GA1UdDgQW
+BBRA/a+cAXA4oPNk6Z8mSD5XYTwVczBBBgkqhkiG9w0BAQowNKAPMA0GCWCGSAFl
+AwQCAQUAoRwwGgYJKoZIhvcNAQEIMA0GCWCGSAFlAwQCAQUAogMCASADggGBAE7a
+SxNT1a3bIT92kkPwAIowdZQDgBvRbNKu7HIWVi4p7R0yZ1lyo2O7Yud3GCSRSNbr
+gsqbCIVRS7fO18Q2+BT3QduOgOyfwkWddoWesvKohF+BxbZ//XocKBY/crWMQjWc
+ZBNYzL3MRJF8CdV7ZSjSj7H/Zabes7366EW786wbJDq5KLvrOypzyAwNqBvRIrXP
+BCRDMqqFMcLRGOeBps6TE55RdTl/hE/zpgix9Bkl+kc8MGqUlMfd3ckbWwEvR/jW
+vcMKfADYFsvNJDthF8d5rlI5vikIQS2k9adtyX0Y771/fjnG/X7SMTDt0gMYgZVX
+yOsQLORq8ZSPamsnB8dii5ne1I2s8Apzo8eRc84U9ZtYX0TMQSZxYgTPjDgc/X+2
+Fr/WJYM+wRUppfGgWWPd95DX10V4TT7uiExEtjrKynDoEJDsNBawZYI2V3cnERox
+SpQI1gZcBskbtXGE4VI0YnQ4a1LXxUQfl9EdCRsozS/hGB/8HAiTJeIddl19Cg==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFmzCCA4OgAwIBAgIJAKQencwOYdWeMA0GCSqGSIb3DQEBBQUAMEMxCzAJBgNV
+BAYTAkhVMQwwCgYDVQQKDANHT1YxDDAKBgNVBAsMA0JBSDEYMBYGA1UEAwwPQkFI
+Q0EtSFVOR0FSWSAyMB4XDTE0MDQxMDA5NTk1NloXDTI3MDcxMDA5NTk1NlowQzEL
+MAkGA1UEBhMCSFUxDDAKBgNVBAoMA0dPVjEMMAoGA1UECwwDQkFIMRgwFgYDVQQD
+DA9CQUhDQS1IVU5HQVJZIDIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC
+AQC4R2xf+M1CPk414Wy0OqwrtiTJi9NgHalLcLrS5TGTz8O5shTdglc+6uN3oXag
+MsGTyblqe8DNdvlb8HQUHypuuJtlC3WjoJBVJkkA0kBfHST/E+F+quQD2zJ9OOIG
+E7xf6+wWplHh9exJEghyy489k8vqolWfmGF9Z0nZZExUKp+KX1Qx5FCJucknhjx+
+r/h6CJgeodSl19Br9cikA5863h4my4+2CfXzMk26Yx6WIhrLqJw4geCGmkPaScpr
+fY1t6v+5IxuKhzX+n0U/d5SwgEus5yqXT3NIP7QEFkXQ9GmF0gdFVjevk6xhabO/
+kO/a0RAhtXeYooUb7VmCT/jHO1ouuw3RcYzx44JsqZ2VWXwV5u2LMFS4SNx774sb
+o8ZkAtDWLqOhsua33XMKFEvM8IQAAVe3ZJQVz7H1fVwSDXBekciJeG+/2ohRNmKq
+iDlDrxRDLQ7UggP3ZdavnGCCNZHUSO2aLz1mwebrsJqUGuq3+5rtdIfWeaLOFfFN
+Fa8GpRHj5uqza106Fk+QW02h0X17XX/WuucO5Y3uaFzWKQa0cTNvcIuJX00Xw6QI
+FMXqBXwZQ7IpqQEZ1M5y6ZTbE2JzNrGyglkcOuxWv/fJWear3XdhI5Syr8WAYPXO
+9m3bFBebDGrfda/dUzOXm7hiAMxuaWi68VwFDsDkuSL1lQIDAQABo4GRMIGOMA8G
+A1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFF5X7VOeSw/YtuHsjvchIeO/immYMB8G
+A1UdIwQYMBaAFF5X7VOeSw/YtuHsjvchIeO/immYMA4GA1UdDwEB/wQEAwIBBjAr
+BgNVHRAEJDAigA8yMDE0MDQxMDA5MDAwMFqBDzIwMTcwNDEwMDkwMDAwWjANBgkq
+hkiG9w0BAQUFAAOCAgEAsO71gO8Wn/ILnO13/GCKWUgIBNMf6MCkqrDdwc6spnl8
+Kzn+qQEqbtjXzPrgZod6jssfuDPUkThvVYZThi5fUJ696oI2lsqczwke9iQhxP7u
+f8OzGslmaDyfuXPv2Je/et5pqKPmRVHPzlXo0Nj63ZEriivq9ZOW7zXl76QGMf7r
+75X6eRXgxa1fbtapiuiwp+PdjMtSRY/plwyxvcMgdzUTapQzbJEFfrG94YHdbxXe
+KNO76C0V2DcH+uZVlZTBkhNbvK1+nEhhtUQvW54UAaqWst75A71CiAuQlr2MKBqM
+tYMss/4YMRYlSbs3DvMX9Nl9ro2VSAfGJ0VZkv7gU5q8uwTrrC+CDAWxFq9GLgBu
+9p/TXfR41wq0Ye+WLGm/0fzUE1sEBjNP2taToeKmscNGURx8W9c/ffpXLJKDaFF8
+fAugGYVLbYe4Ltw2rzL3HbAGuG1QCNVPW4k5rongv5hMBDJUV4vuxRe+0r/D2ziB
+wajutDTlrev3WlJRmKQ0/gs+isw2jwUYHgG9Pm1emMW/O6BJ95c4sqhb7s9nYOs9
+2yfI2gU51K+NBz/tKXNqctD2urO96vMtlOJnLAjtszC7NHD+I5zxBQ92CViGeJvJ
+IEY4XSJxHZJtQvy9miPkPNCsoXquF40upJId505CKdUjna3ZeoTglcVxQurKm1Q=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFnTCCA4WgAwIBAgISESJIJ+Wl5YaetgpzQSpdyGWAMA0GCSqGSIb3DQEBCwUA
+MD4xCzAJBgNVBAYTAktTMQswCQYDVQQKEwJHVjEMMAoGA1UECxMDTUlBMRQwEgYD
+VQQDEwtDU0NBLUtPU09WTzAeFw0xMTEwMzAwMDAwMDBaFw0yNzAxMzAwMTAwMDBa
+MD4xCzAJBgNVBAYTAktTMQswCQYDVQQKEwJHVjEMMAoGA1UECxMDTUlBMRQwEgYD
+VQQDEwtDU0NBLUtPU09WTzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
+ALaIgwC8QbyUlLE5u30GhXUPfGYdLvETCgnbqeMrruN0Ua0QaSJAP+y414Q82ea3
+tNM78/LTfm6uiAvtugM3Xe8/IS/rb6BSA/Y0CJ7/RS2xVWTQHMtOHs6TGh+Uu+GC
+3ZHNwrKkX2EY8O9PuuLuyOxyV/keb7oQBpsH9p6dmLbOy5A/fPMIwGFExPuleVIF
+plytuPU4WBAXnvkJly/BSoLOkqdlNeJDQ4v2vHJPdiRE2yDmrD5zSxbXaaUliYHY
+AU4wmmEYH9BWpr1IulMwafPtmGEa9kEFSZUqVU7kHDYsHeobiTksXKHf8b1m8G1c
+jPO/QckKyOnCg+ED6d4BL8pQWhkuqNQgDR10QiDf/HRdksX7LUrncXYtxgmrJgsV
+REJMB8TsXF6DYfi7KeR5O/qMpPZfNkkHXPFtYxuzSWI9whExtMHjebtMSa9IIhZM
+XRbScJaehuZSxeiwEhvo9EB+F4LFDDM9cyZX2Jy/gWKzPKXSlpQwYltOGzMyymLV
+2ZVGusct5n7dvmfrXz83akAFibx9aaBiKyiM49LyrtzER9eN/hV1OFx9OkWYfWvF
+Ke0oxyKJm33bMuRhkyPsmi51BKnQ5iw6zEtBTbdJvumBnExWu2aWq64WGzrzhbgw
+FSXbLpA+PLULyJfMYO/QdU7Ivx29BhihGg8T21UMWfNFAgMBAAGjgZQwgZEwDgYD
+VR0PAQH/BAQDAgEGMCsGA1UdEAQkMCKADzIwMTExMDMwMDAwMDAwWoEPMjAxNjEw
+MzAwMTAwMDBaMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFHEZFR5UbErH
+bjdY2HX8FQG6faqQMB8GA1UdIwQYMBaAFHEZFR5UbErHbjdY2HX8FQG6faqQMA0G
+CSqGSIb3DQEBCwUAA4ICAQBy0KuTlffh45niVS2Jm+mTfGZTtN73IyY7pljg3uia
+zEiicOeYTxU4e+QpL3cUMQgUPFsKZQF94mw734xL+8bSg/HwvTYa7m8GqIwDgRRy
+bYcCw7H1j4YU+cV25v2/psZJF1s9LZ7sNRNFfz6dUGkiVcVN558fXc09Xls6Fh9e
+z96t0XsF5Ha8rw1YWIiTMc+oKkkBEg1K2bTZFlugJQ1Cx+lgS9PeidQm2yJp3Njv
+Wo3PqxOTY/8T8dYKojHMdbOLb8uRxvrdLSIf10gKmDZ3xD2Pk7mpvaQkikhl7QEN
+WqHgMPQpWblbO2zwYFUTvz09TZcheIaIN3E/dxGe3Q+Eva1lnDxG7Rgunw0fjxHZ
+yiXL5tPnan1Y0qzv2VvJPK+Fb/x++HmgjUoMsxzbAC0EuX3r+ZQGeAU44qnzYP6H
+6MQ1t5iV2Ppkx3xMXsn6ODkUyYr6a2oKv9zoOnk1oKpluJu3NYHxeEc1E4OIYcKG
+E9LVH7a/HftAlHTeQLivMEgzb79Fz2tUH7Ddd2JW3LGGM2Hdmw+QGUcbzHHaI5VJ
+70LJw/9EAl+Kd518hm3RY6sUAKKUBEE2dD8T+6gmE3UAgQjZfstvPloIoxaT4E4S
+YZlHapFALE2YntJCg+nuyaFX4vYtgelLKffqSniOuiCMWPJROn8xEu7mP096k355
+DA==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFojCCA4qgAwIBAgIRAKZBIObrA/+HqjKJJqhq99gwDQYJKoZIhvcNAQEFBQAw
+QTELMAkGA1UEBhMCSFUxDDAKBgNVBAoTA0dPVjEMMAoGA1UECxMDQkFIMRYwFAYD
+VQQDEw1CQUhDQS1IVU5HQVJZMB4XDTExMDUxMDExNTEyMVoXDTI0MDgxMDExNTEy
+MVowQTELMAkGA1UEBhMCSFUxDDAKBgNVBAoTA0dPVjEMMAoGA1UECxMDQkFIMRYw
+FAYDVQQDEw1CQUhDQS1IVU5HQVJZMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC
+CgKCAgEAlVPWhWLc29lve4gQB6BWfP7C/lH/Vrnl/PKI7T5cccYFwfu/JfwDMEZi
+ufbbSPE5bZ27b5KkYdV/Ji+Hdt1xvOigAOTBeMk0XSREdSuVGHj0kXBPwj2Pk3i2
+UORmrE9CrQyEWcglmAB0icXW7+o0tqAL33MPJuVNpRVfhCyWMxBg8DKQbGCUU8w8
+cy9xVBcLbxxmn1PJOj84yFcex/U/F1AkJb8ICabHpvIzgbISNR7RhGM3fVAP1lGQ
+zk88RYIp+2nOOXlkoKhx0THkuaLo4P4KWkajJxybgtPYhvOBqnh4O38tGH1O83ot
+X2w4HENgRjQBXsvMdlOLrnUHuQtd0e3gI6yct7QzjEdWN/8eLYgq5j1P0zHJkzLJ
+FuG8qG+RKIh+H6qY9OyFr+Z9RTyvjxIX3n1hVrZwd3teAn/VIKVenHi0CSNjKvms
+/B29XQJQfmSfdAIw5sHslpeRwje54WPvpCHafMkle61wBv2TkMxPmxlnr6/iuY5e
+i4ujwNTUgDNTtXAeY3mg65fHrjBwlLfzLhp2mVIZsByG7Lw1aEtQLSowXWWAugNi
+e9+3g5U0R7hM1rg8553k8qYEKrI1XH9R0br7G2gJSBen42sT8z3ADT20KHtUgW4Y
+IPZ5Z4wXIqsuIXRxZ3RLQabFomnm9bgWpkLdTlptgO3iBUQy8WsCAwEAAaOBlDCB
+kTASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjArBgNVHRAEJDAi
+gA8yMDExMDUxMDExMzEwMFqBDzIwMTQwNTEwMTEzMTAwWjAfBgNVHSMEGDAWgBRp
+Hns1JMpD+RAGKsyuR3FeWUFstzAdBgNVHQ4EFgQUaR57NSTKQ/kQBirMrkdxXllB
+bLcwDQYJKoZIhvcNAQEFBQADggIBACzTDstwWvjrh4nTffsOTwMgwmlXZtiQ1mIf
+2uzaJQ8j/Vz0rrUsevyI3l2LY9PucSQeg5vPHTBBuAUO6/y5BBcfDC92vFMk47xJ
+93hsSxM9031Em8u3PxgWlKQbJlEZr1sMKSKTEKFZDG8dPxOo/LQysEBgmhql2YCM
+L7ub6cN8tOr14pSD4nSA4NaoktuiGjLwc/4msCejqAv5TM7rP3CBLd4jRrKxJJps
+kUYwEAGzARwD/sJZiXr/ZFzMOlzyrRpmNBBA1Hn4tc76w+XgJ5Qc/8D+rgzRLHfE
+QHu7QTvZSY6TaUxhJ48bnX0hiPmS/WUVuxsfvU+cLP4qmG+QxabCJ9u3jfyEphtb
+US4AYdS767LMrckEnHTzNYtl9Q6lEvRcaQ8xRqj02JybULtWTkBxQeLeTYNtDjIP
+rffE4ZDJdeiOUe1Y8nSeqgvNsXdVkDLtQ9NgbQwl3j5GUDZTTTQRgfsrTjLZzouP
+4z7XKg49pXRI0aDQ2OXxquomxQU5ojEeSZu0h60AUycEYMzOIgntLvAw8N6fXvWp
+CkeePkSAx7wLL3JZzgI8E746ydt0Sok2+OBbHw8Ja2ukRTN69u3OeDp1Ewf73bhM
++D12Y3YsUP5w1qwv4kKOh1IafZMm6QqIaycVHXLGDBe0OvJBNE5c+0BXBa/5T+5w
+4G9Pby2L
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFpTCCA42gAwIBAgIMZmVYtVM75TXjxMkKMA0GCSqGSIb3DQEBCwUAMEUxCzAJ
+BgNVBAYTAkhVMQwwCgYDVQQKDANHT1YxDDAKBgNVBAsMA0NSTzEaMBgGA1UEAwwR
+Q1NDQS1IVU5HQVJZIDIwMTcwHhcNMTcwNjEzMTIwMDAwWhcNMzAwOTEzMTIwMDAw
+WjBFMQswCQYDVQQGEwJIVTEMMAoGA1UECgwDR09WMQwwCgYDVQQLDANDUk8xGjAY
+BgNVBAMMEUNTQ0EtSFVOR0FSWSAyMDE3MIICIjANBgkqhkiG9w0BAQEFAAOCAg8A
+MIICCgKCAgEAjnq7oGg/BM3kajVMTPZPbzTul4S07fxVhggfHD6vYllrNBXvRp8E
+25aLVX3Jc1TPAX/nyH+6g3kleFvUdpjp5ALSB2tkpc/V5lhs0g5ydLC2vQRq5xif
+76usSaT7ZYYBLQ4gdwLeo+n+KZW/oZ+O9l7doXNXOdDrEXT7A1+GQqde6CZC1hXY
+CJVLGjw96pkO69KcJwitc8qLHrCCjK2ufAMNmSrlyKTiyPlwNw/Sw1da75IEedXn
+Z16C5m4KZnKEjt8uSgTvue7hfDUo9VJ58LdKgLKnOXLLtsPxiTsyCYF7KF/IHA5F
+jUvoWNzdprWLlg25WoPAZv/WWl1I7knSzFcjgahtxo5NTbjMiG5aaqwyMWwJqs5K
+IyF0lkzT35rhhUU4RoBuGssSY8xfVeZnUzJG2aG40YdHeogIjD995adfFSqkRW8e
+O+b6ahKougAxBWRRGVcZGbNs44x0mqs/dMJCAY3yisXIYVQHwLNZrF7IXoYj103U
+sJm7jhiTSEvhRhLDg/VWJ+0Uas3S0hEz37pV0BL8/GkMIq9gMY83hBJFlgzXBijN
+4IwebqqUupYQbUzTji5MzzAqUWZ5V2gXeNnPLiHSDf3A6JyBBL2MKESyPWjo2XzB
+Yr6s0k6kc/41ZXvG1nyDF1j/1dCTq47PDPOmG6f/Pq+8MGc3/GIqJSECAwEAAaOB
+lDCBkTASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4E
+FgQUE7qripbOn0IuYAWMJAetc0qBRBEwHwYDVR0jBBgwFoAUE7qripbOn0IuYAWM
+JAetc0qBRBEwKwYDVR0QBCQwIoAPMjAxNzA2MTMxMjAwMDBagQ8yMDIwMDYxMzEy
+MDAwMFowDQYJKoZIhvcNAQELBQADggIBAC4vC+9txlBjNoXqDxRmilg/o0OJzybE
+yaO377DnXQ8jKbk2Sj43U/0LRhURQoMyUaWcX4FYQJqfi3Yu9+ah/NGEw37ymlJo
+boJ8mxbIZZeVoNYosAw3WKtYvypQG0pWlCAAeGeRZDuN9nOxs6pM9CQzbvHHhAaV
+qk6oYq4oIYs03aBMLlk/0r5n7JJMBS85QLdzBePybykLDwo3eFyHNWrGQwXudCJN
+hZDM6SzH2wgVHI0uyP28iHqqcXhdX74k4XacUAYxarSvOxzsYqsLs8MnPVez5whD
+OAhiigIWxbviUJcZCtcbPBbE1GpY5TC+Wd/0h52h1xAPimh6NZgUtYZT7bVvqD8A
+lx4PvQHXh54mFBLMeCCnkpArVeAwY7ZmbC84kIysr532F0/42EjllcCLHLkoErM4
+gvUYsHz+p6H3FVjH8DHonzb34hkwZ/PGwkRPcoYNzh+h4Hoo9yurg5M7NP1gzAr9
+LM2XaXKfmxCBCulIwQrts6vjEroA7dQRDPySWf3EzTOmGCPKXiAWSYpScRj8gHO8
+7aJUKg4TEyb4D+GAHhjCZh7gkRBHA4WQEQIWmjtdpG6YDcFCgKntxat2scaOFAED
+gn0ZBy0iAr/fq170hChpoUeHXyuQ1meBPb+6WUYw4Fg5UMT85K9Hay1RjNEKkY0n
+QioDLz97d23a
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFpjCCA46gAwIBAgINAKCtbgwBWk7Nj6yXCjANBgkqhkiG9w0BAQsFADBFMQsw
+CQYDVQQGEwJIVTEMMAoGA1UECgwDR09WMQwwCgYDVQQLDANDUk8xGjAYBgNVBAMM
+EUNTQ0EtSFVOR0FSWSAyMDIwMB4XDTIwMDMyNDEwMzAwMFoXDTMzMDYyNDEwMzAw
+MFowRTELMAkGA1UEBhMCSFUxDDAKBgNVBAoMA0dPVjEMMAoGA1UECwwDQ1JPMRow
+GAYDVQQDDBFDU0NBLUhVTkdBUlkgMjAyMDCCAiIwDQYJKoZIhvcNAQEBBQADggIP
+ADCCAgoCggIBALcX6QmvDwHV8SACYE/c3LFTpE+sSfy7J6mDIAPbKRTklA17SHPk
+O/ixGilYmsEArSDs4oagS8evQYrSl2Ok4LxSprla84mEgrN6SyAvNSsrV0F+wPaW
+nekBY/FwOKoLj0DvvrR+Cqvkp75TDQ6N1SyyS32LhwBEqXQyXDE+ufoSwvm1GbFt
+ctXyClc5AhI1vWv7aUUY0M1c2sujB4UwNF9QRk/oax9tF/474lIcfjHoVfqK8W7j
+yn1zFFJHc26AxFWKEJ7GWiKJ477A0VFLasukXQL7pFgNopWznz075BUPvGrCoBNp
+Jq17kGDSZu0PvSZPGrGfLKfzoc1iaistBvR+nd/oFEVQpxP3jV4teLHsRz2pw5Wh
+v/YwAyS1P6dHR/N1jCLfWyOjlSZIxcZinkMplspTsAEnS8y1vZqrPURz/hAfdLLW
++erjR1AD8K3K7V7WMfK4QvmVHgD3zjs+JcZo1aD60LYNnqy4CWRc8fiiMW9uDzWX
+FHtIJHfHAryMJilvgS6Gl7xiquTm/euebM5GU2cgs6572rJTsZhWzH9KXUaImjOi
+XVCUaikWKVpGSkkQG8sEGNOBYubozHA3PfAWuPS3s5dZE2sBwdArZdbbeSq2Amta
+wInu3SKEvK9lVz9SEuSh3Op3bdoa4BZx7eXU7GApSe5IsflVQXGMXaiLAgMBAAGj
+gZQwgZEwEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0O
+BBYEFIn1Vohm7xEUeCV2YIMQQfiDVDHiMB8GA1UdIwQYMBaAFIn1Vohm7xEUeCV2
+YIMQQfiDVDHiMCsGA1UdEAQkMCKADzIwMjAwMzI0MTAzMDAwWoEPMjAyMzAzMjQx
+MDMwMDBaMA0GCSqGSIb3DQEBCwUAA4ICAQCbVaD2vxpjqha+xvW3G8QYVbSttU2u
+Ygggch84AhvyXrLcETZc033bw4PDz9Ibohrk3OHLIUbR0wn7iDZJOtIARry2TPiG
+bLVduzKqOOPQh8JoCqHDjmmgKFY3mleLLxJwn2Rg82aY8gMbCc26HgcznrsNyHS0
+uoo2E8OJuuWWDn8Yyf5GO+UJ8RyXD+ngZLA72xBXsFaiCoiO6yeJ39YkADUiKcca
+y3GQhs+r8hN37mjPh1zUKeOY1ZxgQ8y5gWUYYk8L15S3uJtZ0AUdsCDMHMAPQCxw
+EReIsakOp5AbDrXKKjhD3LFOtaHHwxi41h54/ImjNdg2AF9WDU44p7phAwiTG+5T
+K0dC74KXipKtKcnd8VlWLhTBbAEFnzxU6ZAD27FvWjon83T2Y1+i4l1CP7rD14Zx
+Wu2tIm6tnBn8InWm9zpqUaU/4lqsuxL6N+ELqKazJYe6fyRtjXcJc5ys2yRAAN7J
+CUkQHLa1h/msOD0SnnMame511U8HI8gRZ6/2dSPYYdFCOu9cZkdFemK1bd6phw1K
+is8ktc89tDTNdju0Hlqn3EiE3/RPu8n/ItIhoFSEG01msQ2mA4gv5/7lYY+6JbD3
+Ykif+46ggZoRC5xfmiCkMjD12MSqlImQOi2UMpwP9DZ0oZ5TnjzU44hJK2CuaAPU
+pF+pmKXc/IlkNQ==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFqDCCA5CgAwIBAgIQA0Cg2rLTQ7BN9V08geDU4jANBgkqhkiG9w0BAQsFADBG
+MQ0wCwYDVQQLEwRTTVNUMQwwCgYDVQQKEwNHT1YxCzAJBgNVBAYTAlRNMRowGAYD
+VQQDExFDU0NBLVR1cmttZW5pc3RhbjAeFw0wODA2MTcwOTMzNDRaFw0yODA2MTcw
+OTQxMTNaMEYxDTALBgNVBAsTBFNNU1QxDDAKBgNVBAoTA0dPVjELMAkGA1UEBhMC
+VE0xGjAYBgNVBAMTEUNTQ0EtVHVya21lbmlzdGFuMIICIjANBgkqhkiG9w0BAQEF
+AAOCAg8AMIICCgKCAgEAxkSp3KCeD+95x+spy7hojslH5tQV/mc0Wn0+tRFHwkOu
+AUViL5nwk7/+u0eLCjgNhsRJ6fojL1D1hRBfQvRtwCSGrA0+JXpCZW2ohkbaZd5l
+dlQhgDzPo0YrlbmeH+CDgYVTZp9tMcHcmCYY0tAw1MSNsc2KwT3MU0rQOipUKJBa
+3ZjfcvZLFguHhKZgokhRC53xrY4MEmDSO4tThKl9rrZpw+5oVaR5Jd0z9OjjOrNX
+f8bXQH2jchwwx5w1j3+Cd9PJrWXEh4GdvRUd9O8r3q+skdmbxu59xmGp/GD+RzMK
+O19ipsO4j7WnrKJ6heTTI7qvzQCgo1M7vKy4GWoP7rN3Cs4mbNYUDkT61tSitzPt
+xwR4Zh9PHMUIKRHIiDXZqo5NzZzzDO3EfyFMjgeuGjjwBpxFYvy/mEn7+zZCaOBX
+xaEO71qhR6DbR1KOxFOVEPHOc5GccMH8UIgtFAvKGmi4sU2p+kAL7CmUHpnyqQ8V
+3vdTdzhzlVMCnAG+C9/DLSLJf743Kd4X7n/mJrTVSTIHNnZ8LVdgsAq2PHNqCpPH
+q+xRLzVO5CDQHJu5Wcjs2FzjP/kDQLs9b7YIT22orbGvO9VtEmrZLEWPeujK2+gb
+zO0obRfvENbwm7uVchFJbndyKk3TQTGqmC8eQGs07nnMdm9r4vy2e4CVg0MYem8C
+AwEAAaOBkTCBjjAOBgNVHQ8BAf8EBAMCAQYwEwYJKwYBBAGCNxQCBAYeBABDAEEw
+DwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU/e/aCStidpANJOV+MvLXwqLr1Ogw
+EgYJKwYBBAGCNxUBBAUCAwEAATAjBgkrBgEEAYI3FQIEFgQUGR/+LDbGszCE/Uy6
+yXwFVxfDrKQwDQYJKoZIhvcNAQELBQADggIBAAvnDtLxh1UO496yxv9KwWkDaCd9
+7/fieZrRTtawBfNqt4cLWU9dPY2L25tbGRpLpztuXe7EakP4v1szDuGvi765r+yM
+SCAvZGb1+kWgwBqXrz4wUq2oYKpTqOx46Ah0qvfJmMnie4iUH2OtH2JD5RbMTGUf
+c+wlL67lROxEu9ME22znnyLGQbfeMMcFp9lbxBZyl5nXi5UJummu+niW0NscdaoY
+nsdxFgK04/3zT6SrzWIT7pGa1Kmi7YRGTb/TWowsk4fQMakciTDhg7K0+lo3Vf2r
+TbeBpHdLme89+kIezpjMmYpTTXwEJC70lBYwKlMJWr58weqTtWlFxwAsHg27XVWv
+bukQtslzGAv47Hb41rHGx4W4twyi99lnHMnxNBSBCg6q9a4JQMdvlTYAWLh8gija
+pVG0L1ef6CwVEHgy08cqYl5rS18SHdHtwj24j9q/iFUh/sQS8CAQnXNtjq+qhJyg
+u7bzFwTY2550O0NGOHyjifRQmVw4jycTcy8EehDgdZ8IukfZsp4x+mvv9EERjxhg
+6RGPTCHYGptC3D3GC4URGyVra/gJH0cHW5HLBWZrKQFq8XD45drTFHN+PUuFCepx
+enf1r6axXAHqNLi07VZ0Rxp8zrIhzNNoiQVljXzEagnShlG4StbMy5zlWXM4oO3i
+WXQSnXcoO21RrVqW
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFrDCCA5SgAwIBAgISESKsunl1tfghqXUjWE8cGgiAMA0GCSqGSIb3DQEBCwUA
+MF0xCzAJBgNVBAYTAk1FMRMwEQYDVQQKEwpNb250ZW5lZ3JvMR0wGwYDVQQLExRN
+aW5pc3RyeSBvZiBJbnRlcmlvcjEaMBgGA1UEAxMRY3NjYS1tb250ZW5lZ3JvLTIw
+HhcNMTIxMjI4MDAwMDAwWhcNMjgwMzI4MjM1OTU5WjBdMQswCQYDVQQGEwJNRTET
+MBEGA1UEChMKTW9udGVuZWdybzEdMBsGA1UECxMUTWluaXN0cnkgb2YgSW50ZXJp
+b3IxGjAYBgNVBAMTEWNzY2EtbW9udGVuZWdyby0yMIICIjANBgkqhkiG9w0BAQEF
+AAOCAg8AMIICCgKCAgEArqHpZqKUwgUgjJDWhzFgQnCO5NQB+lxxw80USBipXG/d
+ojgrlVac6HNxxbUODITeA/cyBejcVZa+qBmAL6iZF9sZboebNYci1F9Fx0Z/NyW/
+BKwDuXzs9mHty5fxiYHgzQNoT/uUX2fZHZEncqb3KqeE/bcHs9+g4XREeRj5HgcO
+cwNJNILg6EFhQc7rCzz6qDK/mFXNxKDqJHvvtDRUMjfif3PQc6nWV7g7opDtB0qN
+R5ZGTcGLa1WiPL7RWKh/Tq9mLothjq2P8jn9n/RrkgTkFIdxC1CMp+7BDvGdvw0T
+tLXSBoqrsLGZCY3SQkBrHrmHpkERE/+hcRMpBZDZp4O8xQogU+z7q6zNgULG/8Pa
+IVrdsEVsDouzDXniHYHMGh3T4I/Ff9IMY0qVkrUkntMkKQ5OtJIOjRPUh5SnCu3R
+Zrli1PTSZKzjOqFFMKwAlpCoWlpviE/Fkg2Z3DcPg9LKnIzf6oKUHAcvtwxurEx8
+1l6pgk9ssSP3J7KOLgcZ4LJaMOMICyPzah9MJNmAfLEMmLVTMxkou51d1Ef04Iwx
+GT4ni2joFaFudcRTe5kTEzOZi0bo7M1qpJvSMZR9MNvvdUeuWurZI1omBH4JsBoX
+o1J5g5goRwbANkXD5ihKrOBHkvo8T1Bbe0bY2eTbN8mzcl65hq7pk8SMUtXq9EMC
+AwEAAaNmMGQwDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYD
+VR0OBBYEFG1Cf4+CtgKm24r/e4/iG2SaxOdbMB8GA1UdIwQYMBaAFG1Cf4+CtgKm
+24r/e4/iG2SaxOdbMA0GCSqGSIb3DQEBCwUAA4ICAQCgFHMA614NO8bquEEAzEnA
+/lo/X9aSvXziOzAZMzBEM9Q7lm999OoPU+5zryNVG/17MGBycWu+sYpME2OMaHm4
+T1KpCLeiP2o4H/yI2JS09FbvbCBXpAtXu4C67s3VT/BJOniWvtG5ysmT7SpUEbv8
+mWSmcNWmDBMdyh396b8pBCBG1Wvyw1bRaSDsRBEA1TqHd6B/TVB7ZMjmeAaZVx02
+AEnc7HX1NMiRMEL8sxvXngtYbnN0XKHZzkoTuY2TVu9NlqaJcJ9pibVCoeTal+9p
+ujLQC15SU28zEqSeYHWSUFA1EjHzWDUMIpvLrbZcNbuueXoaM0qMd/0xZltFt/5C
+lU3J8in36GaBp8SAMuti73yiOMTmqWvWtCS3/SCSWyvhjsW+lGWuS+Nm5y0ecHCH
+CvcycE2x/pOCIRk8M3vkpxpZ23jPfEalujNm/lEYlVDywRNUk0aRSvmEvmZ8Lcdz
+59QITUowUulfWvbjqZu3fTI4mi8rf09CPj0npf+HCHPx8Yx0jeYJ9XtAAKPwT2B+
+JVxenERiZ9xbXIb8Mw9CaPc9omXLsfCGpPJkkhCwxHU6htaau5gEwU7OVRU1gkhp
+7Dr45vlH2zdDt62fSukh/cnJIZbx4KRENScbRiqZJovm9jLOzoysulneQJNlqO5y
+MHY4jbAOktvE5VOEKOmWhQ==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFtTCCA52gAwIBAgIETVoj6jANBgkqhkiG9w0BAQsFADBRMQswCQYDVQQGEwJT
+RzEhMB8GA1UECgwYTWluaXN0cnkgb2YgSG9tZSBBZmZhaXJzMR8wHQYDVQQLDBZT
+aW5nYXBvcmUgUGFzc3BvcnQgQ0EyMB4XDTExMDIxNTA2Mjc1MFoXDTI2MDgxNTA2
+NTc1MFowUTELMAkGA1UEBhMCU0cxITAfBgNVBAoMGE1pbmlzdHJ5IG9mIEhvbWUg
+QWZmYWlyczEfMB0GA1UECwwWU2luZ2Fwb3JlIFBhc3Nwb3J0IENBMjCCAiIwDQYJ
+KoZIhvcNAQEBBQADggIPADCCAgoCggIBAMLLZ9dI1IQXTUnJszOceNoJlYz6UzgF
+l3Vcy4btt+IvF8Y87Uoeyu4Eo4ewEeUxEGsudtrDSggJjTW2CmuBEpEqxlf8UHmb
+EDBj5Py2XV/hv1hsFAT3QyMLmhUbM6ua6UzbhO2KYAg1WNBkeRx6WHQtjNa95Ws6
+QpW/ooE48vL1e7enM8F+VlycZA4bCtaKn3cuzkYPcljQMzwmiW/yA14u22NE1960
+bSV+qBaHjBE8KQi5WAobT3K1gAtEzMYP5F3n45/0MFUJ9CrfrV+mSvv3YzMd72uh
+ehVIfep6egcl5swfjb5r1B+ML8tXDPpM+T69kCUrlePPPiqYy7a/ovvRF329jRsw
+Nd8kQm3D4uNwxxzkBT38H3ZfyRro7NjM1mWf4yNrC0faAT/7ripKXM2QpT44WtJm
+HtihbAez83vtMfmoMThLqxWYr1agdJMyBiXDdiXdXxXPHMoetMX0zR72Vy5eLw5j
+PU7TjwlkP4ZNDoXxnRMqjAF12oPLNo+Z0TQW4g3UXxyYKMCWL4/GYl3+Eu0staU0
+GEVQ8obCbGKy0XF43s0/QCBmFFqDCfs25yZ5J1+7b7vGGX2Wj7cT9DXkC7aWHhtc
+9VrY48ScwdbiB12nBkJrN+r5dJxOc8N2Q/XewK7SUGIVF9VFC6xUqa7Etfz6KMU/
+WcmULlTXaDSvAgMBAAGjgZQwgZEwDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQI
+MAYBAf8CAQAwKwYDVR0QBCQwIoAPMjAxMTAyMTUwNjI3NTBagQ8yMDI2MDgxNTA2
+NTc1MFowHwYDVR0jBBgwFoAUivvl2dj8bNEuFajLH+0gX/wtrDUwHQYDVR0OBBYE
+FIr75dnY/GzRLhWoyx/tIF/8Law1MA0GCSqGSIb3DQEBCwUAA4ICAQCWHUROrY6v
+bZUx15f/L6noLjbpwnJlozt1FvjqLO08tsuohFJkWkKwD0BwPBxh/FgXetSkf3cv
++2irtLq+qNpeXiDfySdb5N4G1dREroBjfelnlJr26mHJegOw9qOpjrxHYxIyT+jF
+23YrliAi2ssxbaqrjU0rLoOQJUYIp8rSvxcjmLRaTYkRJLHcPgYXiLS9a2I38Cf4
+iYmJKGwdlTy49CbQvYhP7cXIARN7DvGJVgE8BFCe5losaeVqJcpZShn1aha5Gy7N
+WQJr9gy8IkrRrunH0o/Q8xd5Ab59TQ0sPaew4OaGVWsjLE6j6/VnidD4Um74BG8i
+rzj1FhbcS4+K3N65xeOtlenM+a9wvm9ECf75BCXcFXTbW+/C3cP8RDH3g07jb1S+
+k/o0ZZIcK0MfNtS6bmN+cd9aOB2a3pbFOyc3ClWzRa8rmFDWPI8hP/Nm/nSst9Le
+PBapML+7SHMGRA0G09HE1RhQ7Ovx6MGs3U/D7N/j8ugd0Z/bTVZWpv4IGyI7x8+r
+iiy5rT/ev0GnwpkuvHd6QZB9pxPRvZgSLlx/uSvNqC4Fcv6+cgJptpV+9WtMPGfr
+Up2osgQdKd8nDoVFRnCwwo9gw2eRXwuCw6Bo7YSDPDHKRLlyHBqDHVaKCi4170DM
+KpTMtsb7CdzcFZQoWy1Hu2qKd9948Yscjw==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFtjCCA56gAwIBAgIIaWN9DfaYbbEwDQYJKoZIhvcNAQEFBQAwZzEUMBIGA1UE
+AwwLQ1NDQVBLSV9NQzQxITAfBgNVBAsTGEZvcmVpZ24gT2ZmaWNlIG9mIE1vbmFj
+bzEfMB0GA1UEChMWUHJpbmNpcGFsaXR5IG9mIE1vbmFjbzELMAkGA1UEBhMCTUMw
+HhcNMTQxMTI4MDkxNzQ5WhcNMjMwMjI4MDkyNzQ5WjBnMRQwEgYDVQQDDAtDU0NB
+UEtJX01DNDEhMB8GA1UECxMYRm9yZWlnbiBPZmZpY2Ugb2YgTW9uYWNvMR8wHQYD
+VQQKExZQcmluY2lwYWxpdHkgb2YgTW9uYWNvMQswCQYDVQQGEwJNQzCCAiIwDQYJ
+KoZIhvcNAQEBBQADggIPADCCAgoCggIBAMw+teifWJxk5OnsZOy2Imu3Ezsv2K7z
+2tFuBexl7ckQr2DOayuNAvIwsqR58RDBvTHNZkNYimj32XFHQcI5F0RhpLiDC0W8
+fbu4ag+Ak9BWxC0oIVQXZcTCnHLaaAViPepFypLStoVWVfN2ujw4sohNxptbczem
+nlxgRJ+Fi0jrwpPXAKE9SW8Wb7NPcqoa+06RYDAElfg4XH8BRj3sang/mkSJBlnf
+GvRNAZ1+9SUC8s+vqgJ+HZKgwByW/Vl6BsMlqC1UaL51E61YjJ0BDzRStMOGN9DU
+umgN90FLgGqXo1s6ms97zvAjxuhSIvpgJ7blDrAgGfGnfXNgjbQo0K+zFlv9EixQ
+d8bB4tQZWnWGLsnj67ysJASyJB7iZPJzNm+sQI6tgoEAILtAOyLHlhKgjOL585oz
+RI75KAsNPYZ6SevLMm1cRcFLyYph0rxK8X59IlkaCFyee2fa6IbJB+I/8UHSxqGq
+K3JOaNrTH2gg5uXg/s5V39eg4X7M5ZC2j7JxqModaszz1XeVKkt+3wyr+X419jWK
+TgLeLJKBHDrLIRjwCdAKdnY/68iqEhPHM6JDtQMTzbzHYHjcreZEdS6c2qtZolY+
+U9kyqJceHVuWnNDJe4q8mwJK6g93dhxbkQ2qNP58AJeySvAZ2g9SspwyIxalLB7R
+tDedN1wz06spAgMBAAGjZjBkMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/
+BAQDAgEGMB0GA1UdDgQWBBT1x8HD2lxbCWggrHN72JJY6yVx7TAfBgNVHSMEGDAW
+gBT1x8HD2lxbCWggrHN72JJY6yVx7TANBgkqhkiG9w0BAQUFAAOCAgEAVsZdhPfk
+T1Ffe69C+ufqXQLxsnqAu3HQ7Ve0u2sRUK6ej9ejFvaOavVpVtbAyyqeqxmHqnMd
+yh3/F63pSNuTGwPn2/+WyZvUPOVcDNh6bEZoVE5gd16IYUPqfA7hp8GmYmhk5Rzo
+fYYdG+o0g6FoKt++Ktiy2zELqwz72klgWa2BQl7NdEbfsKNMwxAtNG+evYQ9+bK9
+INuweb0boi5NRgmHa7luQIEA+vP7AiTNIX9ro2PneHMi7VIY2Q7kia+M5xNSsQ3K
+Rh4MFn8cYFp/tQu3SXDQtwMmdqrs7U010b0tZ3Iyzm/x3LYUp8MCjv5sgy0EPqDE
+UUsuGlzTy3S6xPTaeQOebWIV2rbPL1E/9Wvok4XRef6bvCE0z1AMpmprtQ7P6L8q
+bZ58+6ci3qzfCfM3et6wFXzTvyuvuSDloLMPbhUEous1GAUdadqYz/meUxTat8WA
+CE8Rz6wPr6dVN1nyOsi3ll/kNRQT4QfVReJ7YG6i6EnS15qBMn7Q6JMQg0UxxEKD
+kOd9xxu7E8NQCSfYCnqE2KfT2XO1UEPpba0OcZDCzfd6C6JW/1D8kB3+CMEnIJAi
+X6leOSbz9JEy1RrKEV3DfEAbeD1lKGqXHoYt+2ur+Mif7mUKcM8zTn0O3niKVEd3
+rIjE6JHA7vHuBrPBi1f4NaP+97RnKJ8h+BU=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFyTCCBDGgAwIBAgIEVXcLWjANBgkqhkiG9w0BAQsFADBqMQswCQYDVQQGEwJD
+TzERMA8GA1UECgwIQ29sb21iaWExIjAgBgNVBAsMGUNlcnRpZmljYXRpb24gQXV0
+aG9yaXRpZXMxJDAiBgNVBAMMG0dvdmVybm1lbnQgb2YgQ29sb21iaWEgQ1NDQTAe
+Fw0xNTA2MDkxOTEyMTBaFw0zMTAxMDkxOTQyMTBaMGoxCzAJBgNVBAYTAkNPMREw
+DwYDVQQKDAhDb2xvbWJpYTEiMCAGA1UECwwZQ2VydGlmaWNhdGlvbiBBdXRob3Jp
+dGllczEkMCIGA1UEAwwbR292ZXJubWVudCBvZiBDb2xvbWJpYSBDU0NBMIIBojAN
+BgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEAqEucckuMr7vZEbsQTsOM1+JtwB2I
+27en2MR9E1fUW1G+LacKWvqultz+AKaXmvlgY0cEe3UUreE2lqs5ICc6UUCEdiyG
+tSlj86e6ggnnwjo7wmOod6KprfzaMqQZpA+RtMooC6Le1h5XBruvE1zygKSoeoOv
+/sV4NYYnjmrthSrnrOGsgeZUsXxTUNGXnKmk4f6WYuj1bPHyCE/4wWImnHDnP1y5
+7OTcY04ARbxH2AonGwQ5arbyMeUv9Vpkti0sS+33bePa0SK4dd4eWrjBRiK5fBEj
+uWZcCZrWDR8pJ26iZWZgT+ClGPtl6YwGwjocHy7eumeX6bWdw2KGKvq/JHXTkvoS
+V4aESQGpeDahaIrAEnSad+WjLUyRRKDZJ8uwVP5GD6bcH5o586gOeZATTbZ88d/0
+pnJTDFS/Dm52/muEQLvGPNDyfrly/hJ34OUl1wzHUjESry52novvG/2xZywFU99g
+dJ8qP9xPGmZPw1ZKjaaDe6+9rQPi43Jb1SBdAgMBAAGjggF1MIIBcTAbBgNVHRIE
+FDASpBAwDjEMMAoGA1UEBwwDQ09MMBsGA1UdEQQUMBKkEDAOMQwwCgYDVQQHDAND
+T0wwDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYBAf8CAQAwgaMGA1UdHwSB
+mzCBmDCBlaCBkqCBj4ZMaHR0cDovL2NvbG9tYmlhY3NjYWNybC5tYW5hZ2VkLmVu
+dHJ1c3QuY29tL0NSTHMvR292ZXJubWVudG9mQ29sb21iaWFDU0NBLmNybIY/aHR0
+cHM6Ly9wa2Rkb3dubG9hZDEuaWNhby5pbnQvQ1JMcy9Hb3Zlcm5tZW50b2ZDb2xv
+bWJpYUNTQ0EuY3JsMCsGA1UdEAQkMCKADzIwMTUwNjA5MTkxMjEwWoEPMjAyMDA2
+MDkxNjU0NDFaMB8GA1UdIwQYMBaAFI0gVBjSqpI33LMHJSAXa01J8qbRMB0GA1Ud
+DgQWBBSNIFQY0qqSN9yzByUgF2tNSfKm0TANBgkqhkiG9w0BAQsFAAOCAYEAeDwX
+vVorO8s9w8omuzaGpw9Z61JYkZw05tJ5HePIMJefExWBsCz2HFvaq7P9n+EWH22S
+JbfSrF2/3YzXt2FnO0TXTXHwj/AohJlTePMVHbJ64PaM35S8kHAA4wCG3C4yJJi1
+i7wUleTTA2RgrGyz7NBIC8aiP1+nucWWZzmyi5645VPCdjoRcNu9P0lhEdKrKtmh
+5oTtNpZfyP+U9hBouAjjDoJWVUF9Cvh7KBC6n8Ebo9BkoBp7rEdKo8ODV//tsRON
+g9uawtxPIHxmV1+xFPxphDaf90XXOD/ScexAHpL7+gpvRy0J8+dzIgwBDDDLqJXk
+z2yDCnZuWiU+tW2BUpaP2YhzE6ewcaEkPMk59ZixB8t0pWrHxmW1zeijrOEk7Xtk
+x3KIWuO4BwIRlwDr4IulCdw6YIkragIKcl0Zc6aHPKYUNGS20OgngAVNPEMCogIB
+gp8g6ZfISOiS+utwrcXPchts7T2RDM7H4RYqzpyzZzcVNCD7qlxkg6rYZVAv
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFyjCCA7KgAwIBAgIBATANBgkqhkiG9w0BAQsFADB/MQowCAYDVQQFEwExMRcw
+FQYDVQQDDA5QYW5hbWEgSUQgQ1NDQTErMCkGA1UECwwiQXV0b3JpZGFkIGRlIFBh
+c2Fwb3J0ZXMgZGUgUGFuYW3DoTEeMBwGA1UECgwVUmVww7pibGljYSBkZSBQYW5h
+bcOhMQswCQYDVQQGEwJQQTAeFw0xMzEyMjAwMDAwMDBaFw0yMzEyMjkwMDAwMDBa
+MH8xCjAIBgNVBAUTATExFzAVBgNVBAMMDlBhbmFtYSBJRCBDU0NBMSswKQYDVQQL
+DCJBdXRvcmlkYWQgZGUgUGFzYXBvcnRlcyBkZSBQYW5hbcOhMR4wHAYDVQQKDBVS
+ZXDDumJsaWNhIGRlIFBhbmFtw6ExCzAJBgNVBAYTAlBBMIICIjANBgkqhkiG9w0B
+AQEFAAOCAg8AMIICCgKCAgEAxGY/nYqZ2Zv2ztp0iM5h0Oq61McC6A6LINpgCc1D
+ZqkH3dUIA1tgFDBoQmznsoFDlTJJI+CHKsEJ7tSbuLtYKUHjbCnAdRsdP/LcXZvU
+uzHvJL2SoJzte6/FroA+zLG6XGIcEOnkvHvht1Oks3TZCzw6dpt04pZ6uYWFhATJ
+jDvBXrvFd4gF7kXV2Es2YsrYN2fvn0QKwD2NRRYOIZ7yniBvSAvWRIwS83HZy+xr
+1goA6tLE53+x2e0WdBVeVgMsE411H+kARZmKnGALOqSpbNyeI4f9dSPaGHm8j7oT
+0GUQqErQ8F16yDR1P6TvAEUNLKkcoeQ1RWKbG6Stijix0y3KDZLdOsdQFSzzCV7L
+vPaNb7ZG2ptFpSzYHnKl8XxDzJQJY/4wWg31wTAnjuhzpHlhXM1joxfPHTp5EuZ+
+KX/nw6vUocq7wmHhsJ3JzDKrIlSpO7Oy5OtFf04sx+sL6+e8bp9Vi+a3ZJXtz70A
+tqnJhgPkr2mUy9BO10bcIb0H7OpcoPdq+hKVV6s47poD1ppdhLATozyvM3l929kR
+lxQVMq1pTA1HINCHYNbYC4c86kkv8QGXAJ1u8sUOgFOIRzZKZoSWu/v8nsvRNi0A
+QxHLtut5Gt4s9NNkHeljgbaFrPcQP9CQz78Ue3a8gztyMv9QCJj7yE+oU+iCttbW
+JNsCAwEAAaNRME8wEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAQYw
+KQYDVR0OBCIEIF7nmYrf8o0vHMhErMpUjycppP1zu6Zugn0zagSZsafhMA0GCSqG
+SIb3DQEBCwUAA4ICAQCMmtiMfqj0+6s4qvy/q2h8suUoTEtk8nDVPXauwbxTCTTK
+y6nxeRfcM5/S26OcOs5F/l7BlIOkYiLoq7jFinO6wEfD7VN8Up387cOv30U08hga
+4zE+fppZxhJxgfjrv0yAFuqDrnjTx/VpO1k0/1zSUJdxYsv33JaXfiMMZ1ASH2iZ
+ynaywzFIVyL2AQxvanDxujj3jQL4puccykucTd+PAqQ6gpK1sYC+6iZbOmoEf9q0
+DYJbegFnFA7faPgbAS3mtC5GVGZh+2zPMKYD1Nv4gmYnZD8RV377MT93hX/Ceaga
+cZ7mC53H650XwS+/fHHm/mG4H+cWMHDH8GN5xyApfUxVX56dyocXjHpFO+okYhsl
+sy8obcdsQveu82w81YWb+kDodPfJLcGAxjegGWV0HT9g7dPaOD60xlFHJpCP1K1T
+YZPHBQL+EBCvHiiOeJCp1+aewX6+mWWUhwcEimyNo9f3PypC8/3Y9sqC9DH+m2I3
+1bnTcHXVGBmmCrcAORzEsECqpHaCPCqmo4Yk28BksYaGXsZuZNKgpb/42QpNFoSv
+SLtZmzwBSNmEHfKizXMUAo+Kl/71HwdAHWLxjsYHkdslVHppQ7NyoBckkMUooWTb
+sFiU7FfTgx+c/ZJxyIs4HxfQhnP3tV151bCwgqjsAClo4uKg45oDYra23dMT7Q==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFyjCCA7KgAwIBAgIBUDANBgkqhkiG9w0BAQsFADB/MQowCAYDVQQFEwEyMRcw
+FQYDVQQDDA5QYW5hbWEgSUQgQ1NDQTErMCkGA1UECwwiQXV0b3JpZGFkIGRlIFBh
+c2Fwb3J0ZXMgZGUgUGFuYW3DoTEeMBwGA1UECgwVUmVww7pibGljYSBkZSBQYW5h
+bcOhMQswCQYDVQQGEwJQQTAeFw0xNDA3MjkwMDAwMDBaFw0yNDA4MDcwMDAwMDBa
+MH8xCjAIBgNVBAUTATIxFzAVBgNVBAMMDlBhbmFtYSBJRCBDU0NBMSswKQYDVQQL
+DCJBdXRvcmlkYWQgZGUgUGFzYXBvcnRlcyBkZSBQYW5hbcOhMR4wHAYDVQQKDBVS
+ZXDDumJsaWNhIGRlIFBhbmFtw6ExCzAJBgNVBAYTAlBBMIICIjANBgkqhkiG9w0B
+AQEFAAOCAg8AMIICCgKCAgEA05UGx3Tayt4UTT2vRROaqZ9xUSB7llslMByZ45dp
+5L1qTPWkHfeIPcn/ZhuT0Y1TQU/fRf4vRswFfav3acz0DwFAhqaqbINcQWZBSyZu
+xvsQSGka5NHJh7gk1WpOPxevYckMbSmpkubDVgMgtU5SXOF8pdc9iPhx5zIY1cvs
+WYLCRwrrO3V6LD9aYW5K8mlF3E40hHzQjAhgTuDvnA5k2dlHwtvHPlBibW/bda+V
+dqqZPOu6jmbJwLHQe5ZkaEU1+SCEOB4cHXRkiuZHjP+3j9AtZBR0rg9N4CbmXvh6
+J19hQetXOkRh8jnVFbWbZh9DWrdV2Ano6VSYuBnQaDba7fhGK4OJwDgmwMg6vmmc
+621+avjybzGg5qX9WoNn/zhlQnOuvZ1tjbvWhzxzcGVt9ShPBNwCV59v4vMsNho0
+KyilVWCzu4yNUlj+OSRTGZBK2rmud+nvMlnuRUHk+WmRhX0j5t+xmHiafbcLrfBv
+SJi8Z1qL1lbwQLjUvlGPNhwV1RaPA9vAmt6Cg6kAGVQJKHQNO6ouIALaFAl83Gu8
+dcMQrmPptNgB1y6zd0YtQSDAAAv0CRzheRDrphI2LpLBTUDfTyJ/v5V0jmA/0BIw
+ALifDzSzWvgK/zjh0aunKd7xgZnkmedseh3H+trwhxjeROjGqDvBi/9dXtzc3bU9
+yg0CAwEAAaNRME8wEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAQYw
+KQYDVR0OBCIEIC4SUqLBLDxKB54AtgSjkHSXAtDwFN0o94tAhaIp7v3xMA0GCSqG
+SIb3DQEBCwUAA4ICAQCY1QTL5eL9X4uE3T1mxHX8BSShMeV5VRa8MtzHy2UMPbdn
+xo6TFno/5zBM2qT9367uOqxQQBeH4W8xkEpGrcRiEJgvapC7kKzQFYD2rfscyTa7
+T2jQmI/ptrBRoZjMCjZiNH/lJ7LseC4LKQTdfmKBk4IhhtcbkpkMJX83W1sF9Gl3
+hKxzn5jf1YqbsRSYasyt9gnVgjd0W1Br3sTuKgR8DD3gI8GfJ2kfCRj9if/VtebU
+U26h1JXIs3lusjE00/e/6WkkAVwcdszGXOo3TIyYqae1GqnIgGUnhbNvNXEIP9j1
+F9TSeE7CYPRUx+ncq4GRcfM9bn5/F12SasAdiDiUTpuN1f6d5l9K3b7SJRrguhlJ
+ZGB26iYSPdCCNFL00mylDQ4XlhvpWfw3Ucmu9rnTiQH20oTVKOFHZxsAnUWQDDX2
+fC+gKYAu4ZqsfWUkiLhLk8xx7ZPOYGxD4vMeVU9rUNjZQ5W8Z8cQXWmHZfoPNKGr
+7W4kAKOHCUETcYHA69s/fQoWvGfQZka6FgUSkwKr+xjhmyvdLeIjLN+J4l7KGrX2
+BdPin43Lkix5bL3pOf7G4BJuqEpgxSPV2KeNZjdZWNSLb8Z0zTACsMG2Z6hoPh39
+cCjrjpm9clnvpdYjOt9jRe79g9zPNNp/yzbQr2izhZ6LAQ0pY+5pgzB0VTsehg==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFzDCCA7SgAwIBAgIQZbmHZ4SNVi1YSTp14kUXrzANBgkqhkiG9w0BAQsFADBw
+MQswCQYDVQQGEwJFRTEQMA4GA1UECgwHRXN0b25pYTEmMCQGA1UECwwdUG9saWNl
+IGFuZCBCb3JkZXIgR3VhcmQgQm9hcmQxEDAOBgNVBAUTBzAxLTIwMTYxFTATBgNV
+BAMMDENTQ0EgRXN0b25pYTAeFw0xNjEyMDgxMDQ4MjFaFw0zMDAzMTUxMDQ4MjFa
+MHAxCzAJBgNVBAYTAkVFMRAwDgYDVQQKDAdFc3RvbmlhMSYwJAYDVQQLDB1Qb2xp
+Y2UgYW5kIEJvcmRlciBHdWFyZCBCb2FyZDEQMA4GA1UEBRMHMDEtMjAxNjEVMBMG
+A1UEAwwMQ1NDQSBFc3RvbmlhMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKC
+AgEAtDGGqxMcgnEU7pUmFoJsJHuo8SdE3VfwVCqb5f/Ny09WQwvLh+5cW3TVnJIj
+Y7HUsnZSeMc2leHV6FTD2V0/j6N5Cq2/d4uC0r+U/LWgJMGFfGJceijFn5csGifB
+YjIAsATOpl6cG4P7ko+3Wumw8bDpKCogICUm9fwoA8AkUqRxs+r+ioe3ugSgzuMQ
+PXlwBCchhDNlpGlicVsqCOPE3UgevOGpXX/WfgC51nlw9Dp0RWWXL2vLaw028q5o
+mW44gEEQyZbqF6Znu4b2XssU1j5Vy2CGzBR+KN51QfwkgfX1lO0OhOhIwcRDx2s0
+PH3WB/2hgyAAHlSFWJe7q+dKRIMhfjq5W9IXfxmbpBJgEIcr96QtajVEuKvl7TNC
+n7TyO29p7Z2a4oc0EbrE8qGtJcR1mMd1/wLpUnVBTuxRvDcrBO6WEpKOCxOghG4H
+VoXdtogTHIQshnN/cEhj7KCSFNyuH+8tKd7ZXmxu8pmlVA5W43R/72oF/HiflYaJ
+E6yttBnxwPmcu8e5tbHcSkxjn5g9zGMH8oPftD6U9CAuh0uuQYWNkIsMQRBRm1g7
+AQuQKoHeBIkMTs1vw125SIf+Te7fOLGR1GBuBpPJanhz63LEKl8370v/xvxItS8y
+iUISoLqkXjK6oLlkV1MRoXGWePZtsNrhLZ+DDdYeyq1ptisCAwEAAaNiMGAwEgYD
+VR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFO6gfpQW
+wx8/gF1K6i3qfCqUbZLDMBsGA1UdEQQUMBKBEGNzY2FAcG9saXRzZWkuZWUwDQYJ
+KoZIhvcNAQELBQADggIBAFvkGW8RXzyFBBnO3R8RlJrlXBV4GVpdzAVJNTZJUuVx
+CBN+8N4cwYa6kb5ivjMRhBr+p2wgNOczVRpir7QE45gF0mL0IQBafEPOd0xPeVx/
+14J4ClhQxLIceXgvIL4samm0e31hrPpvipifK9XWT67Cb7YSBne/2z1TcuvCHDPT
+mBlc670Z5aD78dZN38QFruVo0OvqOV2dLUeMaF8QR9Xr9YTuQvs1dpwsUw/Ww2uE
+rp9sJuF38ivWjjkKKR9UYAXOBgO3YoM1f3Lgfj+e5LtMKMdoEDAGNjcLwEvSDcJc
+4CK8Xx+vyxHw9RZzdUW7sq3GTs4efwuVIDGba6ZrDL2D+bqK47Oqd6jQ4dMmWePC
+wrKcUB0JpH1HYY+22Xd0Wmk45s1bL6yaLIAykXF2XVrB/8tHcltpcwSUbaV+0Eoh
+kt57yKKxY9hNnHR4+lX3HLxbCMlElAwvzNi0y0ml1B3ru+SSR85RhU9pbQMMShCY
+TID9WVMxNsDsQFTHye3zipCPv34pH/siUae8GnQXoyGeoBZiwdQg0WNmnqKeS31B
+nZw2fSj/2k3MOlrb+sMlbs1zp9OHjPLleVirQtVxWerLwlx4Ed2a9vJ2ZHvTC12B
+uJdmA8c0xxdbyp4tCiKl2HvFFxr1iFXA1sTPhGZeL5JogoktFlp8dRrbIQCODgyn
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIF1jCCA76gAwIBAgIIFEBZXRFMaZgwDQYJKoZIhvcNAQELBQAwdzEfMB0GA1UE
+AwwWR0VPIENvdW50cnkgU2lnbmluZyBDQTEeMBwGA1UECwwVQ2l2aWwgUmVnaXN0
+cnkgQWdlbmN5MScwJQYDVQQKDB5NaW5pc3RyeSBvZiBKdXN0aWNlIG9mIEdlb3Jn
+aWExCzAJBgNVBAYTAkdFMB4XDTExMDcwNzE0MzkzMFoXDTI2MTAwMTE0MzkzMFow
+dzEfMB0GA1UEAwwWR0VPIENvdW50cnkgU2lnbmluZyBDQTEeMBwGA1UECwwVQ2l2
+aWwgUmVnaXN0cnkgQWdlbmN5MScwJQYDVQQKDB5NaW5pc3RyeSBvZiBKdXN0aWNl
+IG9mIEdlb3JnaWExCzAJBgNVBAYTAkdFMIICIjANBgkqhkiG9w0BAQEFAAOCAg8A
+MIICCgKCAgEA1MfBv+UGfalZ9wymt0IJANVfzl9bWbL78svrJc1nnEkaEQKUmwJn
+C03zua3UohRLz9D1fkGHlTW0VY78itM4MxDEczuBdoJhIxWDe9tNHjaTE8YqdaPK
+4gFlIKjd3EJwhLwBtR5/24BjtmsBDLBarAyO2mp71V61gN8sYQ2aXBnjpsv3r8hp
+2pw9BBi92uVAnnuLDcQxUWypc87b7nQqw3dCXRN/XSG9Zz3nrN1ktLKY04U0CiFx
+Wb9+bNqcfNaFG7eNF92r9XsL+OvBsj6cTCDZhCfXnDu2ScSfF0QveyLJt0WSUsXc
+xf4HSsjpCNSDU4riKCP8I+Y0oDjrnvIlSjsXXVIj+gnDE6NvEZaiIDwNHPverVbC
+ugXEVj9qp1bKt57D4wUVbV4nXxtZoBDjMXtV3JEM/LeUqDFGD+qQZaUgYeVD4iOh
+LCZcg3/4VAVL+ZoKtYxNj6SbWU0EiCAVYKTuWbGFwALNq8hGp0NkcESEh/0+2ynT
+YrHYwh2H//LyhGzlmA6CWpTdD6OAGy5a+XnimI0rU4RyTUWMEt2VrfKMD4jCVwIx
+s8g6r8vnxbYUdAeWILF8nnDHLQwUtGYawn1hMpQL2faQzrKw+FpIeH9Zc/8puybl
+YXdVIQ/PhVaRJHZ9OjuMJKHCG2I6H5egebWjgiwo4xoKUUzxlew5AvkCAwEAAaNm
+MGQwHQYDVR0OBBYEFPnT4DHsT1gf/IVC1IpvAaUvcssoMBIGA1UdEwEB/wQIMAYB
+Af8CAQAwHwYDVR0jBBgwFoAU+dPgMexPWB/8hULUim8BpS9yyygwDgYDVR0PAQH/
+BAQDAgEGMA0GCSqGSIb3DQEBCwUAA4ICAQAkWfGz1AuUPyYlpvfEs8MtwlhgisqJ
+cD6xchLHjM5FijXTvuc+CawCCasn/q0gk2sVLxxa4M3czzu3MQ5Z0muGxmMmGGAS
+6GCixE30J+Y2ZLsPTSiMQJnN1z7BZdSJU5Fxl2cqCCSYWs53UzjT0K94EyEGMQxY
+PZp618Ol9JTda/TrVIgSW0W2W0d8NKF/EblAcIo6Bf9AY+AH5ZTU3JSF+0LJD8tV
+TS3JjZuGXbY3RChLDNsmsSUuFN3oiicV7+E9lX/tcssR4mAkBTaTnRGtCwWvH6s/
+6fdpIEmpPfo1kF0lqHX1LaJsFHlXquI+80AUx9zYbu8JUo94DWl0/jGFutA58OXJ
+pCCT1AStFva8XouHogFDOSCC+keMnmf9XvNDDDey2xDG3mUbszrbCPXHzbKvsdAI
+zvzXdZhLek8VnnF/F7B8ckjbfrtr/FA91qDR5Xf/IJxY64wQVkx4zOJ6IkfKApK+
+qpKmiSsvibSRFdzZWL/16A9ppBoheYpDY4ol3bJ2xgozPhlLK1kOXlGZ1JtbY0ja
+ASrpxuDw+1Wgv02mHXRXWbDegbl0+uSjwxSFevhCpxQ2fLOY6JJZxR8b8Kwvv9pb
+WSEPMERVdsOkwbS0OML5kBi/P7vtmtCno6VqmKqxFhdgVuyd2jig33sfSH0pJPVz
+e+tX7kSAUvQxfg==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIF3zCCA8egAwIBAgIERQqCUTANBgkqhkiG9w0BAQsFADBmMQswCQYDVQQGEwJJ
+RTEmMCQGA1UECgwdRGVwYXJ0bWVudCBvZiBGb3JlaWduIEFmZmFpcnMxGDAWBgNV
+BAsMD1Bhc3Nwb3J0IE9mZmljZTEVMBMGA1UEAwwMQ1NDQSBJcmVsYW5kMB4XDTEx
+MDEwNjExMzkzMVoXDTI2MDEwNjEyMDkzMVowZjELMAkGA1UEBhMCSUUxJjAkBgNV
+BAoMHURlcGFydG1lbnQgb2YgRm9yZWlnbiBBZmZhaXJzMRgwFgYDVQQLDA9QYXNz
+cG9ydCBPZmZpY2UxFTATBgNVBAMMDENTQ0EgSXJlbGFuZDCCAiIwDQYJKoZIhvcN
+AQEBBQADggIPADCCAgoCggIBAKE/M5q3nsxafeKTP+IUkbZaKTMc7fYY7fzNCqzR
+DdF5CLyTZ8RvcbYqU7H9klbFEnYFRrgEUjPL0idYqlZ3Z+hmtO6ujqSjaU4kv7YR
+oDU1u6mpqxBqnh9CvarH0ODuTVInJUnmcDI8N02DbKHGZUINn/tosQfX1surKjJw
+cx2PmKzJDsqLF4yHTj4Ifj4myrfN3aN98ltlU2huIEXvTIeyzDNyeAL+6WKWPmOV
+pcAnudOivMrs0j8BnfGxKIupHVylR2BruXkSlK0oLvjiCa55dI8y0elAZhFWT6eb
+MlldR2stESKyk5dIQ5zYyja+fl7qTEDLUr+/wx19T48rfH2mi4TXD1y1nUbMIpoo
+Hl1GC7ZkFrAHM8zPI6Ab+mawjn3NTCltKttN+3haw1hpjZxVFwKgSDDGl8e3Jty0
+B+WaW3jhCQ4ribxhSIADZ7v0LlTrA5AMn3U6TsL3j5BWiNauPCfypcAzhw4Om+au
+pyfltXV2/uFSGymF1fkVRmJfYJhX68uE3AW1YxzriZnzfyHRd9jj0GhpSHc02PzA
+jYxC0KTdj/nwk79NWSL84ZWaMJarBu/es0O7tzmbDy4XbWwqK2OCavtts30TNJ/T
+3zOy3QecEeVwZYV7LQC4MH22odhrpOtXJpAGrU98Uf4Qx7Lhx7PCRujfstxTsC1Z
+2lQTAgMBAAGjgZQwgZEwEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMC
+AQYwKwYDVR0QBCQwIoAPMjAxMTAxMDYxMTM5MzFagQ8yMDE1MDcwODA0MDkzMVow
+HwYDVR0jBBgwFoAUyhUncxwsTwZLP5roiL6mIrA+Ws8wHQYDVR0OBBYEFMoVJ3Mc
+LE8GSz+a6Ii+piKwPlrPMA0GCSqGSIb3DQEBCwUAA4ICAQAqG9GZKb+P06SH7elx
+c2Ae39M02fz49/1LbTO3njyr+b7UDxspqlwFH7p6T3XHKZMclbNsu+imAymcJItQ
+HbK1xiWNX5rmWAOSJSGtuqcC030M0gK5Bi6mq13Fn4n4MPqzRF7hji2sTZjLQ6Tx
+5jub7VXR2ys9T1n64hIGgOihRa4mTPqMyMCxa+RbpEQE79hpGLcgCmuaJ6czXXyF
+6X25mTTSc93e5BpJYAELMKJ9By+wEJy7fj2mzRoYxgPdAYzfqzTCyMQYrUNaG+cG
+c/f4y+Q8/eFapIkXFhZmIqYzNYuXRBvxXmzcWzRN695qOEZa0LGRlSaAUIo+SSV6
+kz/Ch2AF1DnK1PfFoRFOZAuhyeHrfXMCYWpJFj9WJ9K8U/+GPulp5UEOzqHar6Mj
+lH1Nh8RzqOxD7PHA9LqrMAm4qpS7wpRrpnGf177kCgPvJiMGY8RB4fptYSObxyPX
+44jec1hhUwa4Z/fZ3m37mTInIyDM2oKdLHw83fek6sNfr2h/aZQzRjTERZQ9Gqca
+EbhvRdCNT4qQwVpZVj4xidY192T5soLIO/XfQjPMxxX39eFUxOvsMRnEIN0VABSl
+7/fak4kG7vhDvxpFfE3BZw9Xu1veQjSNGdZVZbENzeUlcu0vByPvWvZeNtp5ldS9
+gTACRC8Hz7k1CM9+0vof9E/utw==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIF3zCCA8egAwIBAgIERQqOFzANBgkqhkiG9w0BAQsFADBmMQswCQYDVQQGEwJJ
+RTEmMCQGA1UECgwdRGVwYXJ0bWVudCBvZiBGb3JlaWduIEFmZmFpcnMxGDAWBgNV
+BAsMD1Bhc3Nwb3J0IE9mZmljZTEVMBMGA1UEAwwMQ1NDQSBJcmVsYW5kMB4XDTE1
+MTIxNzE0NDE0MloXDTMwMTIxNzE1MTE0MlowZjELMAkGA1UEBhMCSUUxJjAkBgNV
+BAoMHURlcGFydG1lbnQgb2YgRm9yZWlnbiBBZmZhaXJzMRgwFgYDVQQLDA9QYXNz
+cG9ydCBPZmZpY2UxFTATBgNVBAMMDENTQ0EgSXJlbGFuZDCCAiIwDQYJKoZIhvcN
+AQEBBQADggIPADCCAgoCggIBALZD0U3UckregSd5BSEQ7xU/J2gNt6Q6sCUg1NXp
+msfuCpy7hpnxYHVYX8hnOJKrIhLsMJBb8A4neKcG/jfUk7EvBftNt5OEaBq2f10K
+jFZevueA1Zoz2W9MQuN/BVQIJgfLe/yN+cccSCRgo/6AcG48eobLbocNFhPpHhNy
+rid/480dIZWu4EfWxdkj0X7Ia0prdGmybIj1CGQyLvHC0CP+A2jBrsnQ2mCb7vSi
+Ny70Igpc2b/6KVXW04I5n0UEkZjbr9pQM+KYL+fScidZEyBCfzGkw26goEjpqdUQ
+l7Ns/QChGEqKAT9HyC0R7qT10CYqN06Iv2eEYiSKqz4wOo1dSFORvcqLomCsO8uk
+njHvDCldu1IlC+v+i8rd+OfJMi9IEq9aYILM7I7wttk/yRYuzVtdmYGYFt4F+W+d
+OXF+SF+l/6YMKrOjkOWyXT8b8I/7WRlWRH9bGPgiLBYd28O/dhBefruvYtluW/It
+HhVCBj0ZQ7FhKQxsnjUBW2dJnqKfRaabc61pjzGseUVIS7EP/L6vD7ELpMp82FOt
+s6cCVdMCbTe0VmJ8Y8DoOBakggBlb5hxXHIjLKUXHe5y1XgusD79KYsZjREQ/GYP
+hqbcEdnAUa7udcJ5iQiL5euMWM2Ao6unwN1jwbWGX/FjaVhyUdWSRpqS2RV7LDgn
+1fnRAgMBAAGjgZQwgZEwEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMC
+AQYwKwYDVR0QBCQwIoAPMjAxNTEyMTcxNDQxNDJagQ8yMDIwMDYxNzA3MTE0Mlow
+HwYDVR0jBBgwFoAUheaFV2nAp9k1J72KTdObORSI1XQwHQYDVR0OBBYEFIXmhVdp
+wKfZNSe9ik3TmzkUiNV0MA0GCSqGSIb3DQEBCwUAA4ICAQCqwa5rt5PNXYCmqvG1
+8uHwYy7+d35b02uT4uQ0+DfIz6PjOWdvveLJChQVUAbYPSLWxiicNblPGEyLu+Y+
+q1XpqdZd41tjQY57EoB1zzZNBYE/68xhclcDAlCpWM8t+ilD3qTRSuqkCgm+CCL3
+lCCNxxx1QDfPHB5xVpQHygUWqEYUnTKAt+2lPh081wwAxvAtTTVsxzxlcBQyCGjG
+RaU/zsGn/GN4bC1xft/aBcEfoxCaoTOmlcAOvEbpCo49HLUqLYuOuCs/ibnXghEw
+i6uoccIpw/wSUIgm5bAhPm89MDmR7h/pzRgoa6g7VnS7Xx8WU38tnFDZR101eg/o
+ilgigx2/tNVQDKAmXjFU8av3PNwBQTi8JIjnBUm+Ru3WMK9p0GPqZdd5qnwHkT48
+Jwd9LYP6OTKR5GMY2RzbNCYTSqwQRPPmZjHglWB+Yk5Ze/jaACrqHZgOkEzXU9Kl
+GdzhPti/TA9bZDWm0Qg8OCFkh5ODSDpQ9A3irb+zIfLXN6EmbyN1LojlUoPitlFK
+eatBuqFu+Es6JjzM1y3U9Fo8Gnu45eWAjfpqsfTrAzg78/kIasrOKM27Rr+jJxN6
+woOhBhlhA1pmkv5d/6C8hjDRLXvj9oh6l2os4oHRqszpXNWpxAV+8VQba7H4XwIr
+0ta77EunRgJAzmHDsTCZDNz0LA==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIF3zCCA8egAwIBAgIERQqXMTANBgkqhkiG9w0BAQsFADBmMQswCQYDVQQGEwJJ
+RTEmMCQGA1UECgwdRGVwYXJ0bWVudCBvZiBGb3JlaWduIEFmZmFpcnMxGDAWBgNV
+BAsMD1Bhc3Nwb3J0IE9mZmljZTEVMBMGA1UEAwwMQ1NDQSBJcmVsYW5kMB4XDTIw
+MDYwODEwMjQ1MFoXDTM1MDYwODEwNTQ1MFowZjELMAkGA1UEBhMCSUUxJjAkBgNV
+BAoMHURlcGFydG1lbnQgb2YgRm9yZWlnbiBBZmZhaXJzMRgwFgYDVQQLDA9QYXNz
+cG9ydCBPZmZpY2UxFTATBgNVBAMMDENTQ0EgSXJlbGFuZDCCAiIwDQYJKoZIhvcN
+AQEBBQADggIPADCCAgoCggIBALQp1xF4U/Z4nVKicbxTGE4oqaMqayQLbTl2ngQ3
+wWImv+kEVZkxVtS6OPziWsRVnAIpPham1ykA61MmTmqYOZA09UxHHsP1fiQfOOfi
+R8WAwwu8LxTwebqlcvjl6Ls24m7p6CJqIpfk+48VT/U09KRDf48tu38vEhRHsXCg
+7EbhWq/IQ2MtA1eOULzKhm0CaGCd5u+Em7cQ5+xFluqMhLFkSwLFcxdcIlGAvSig
+/WCJUEvm+1CAG+vEsIqajFUX2aKYYxDc/nG42WHKvdxi/0L6EZ9++W3Zb9naLL/R
+avNp3vdD9PVoooTkUdYQRqY64wVyrFf/r/0KuSRRKGfQg1dR17Oyn+DaGkUa6LYq
+wGWrEzITfjWJMwbTKJO8uDJUfqbH1e3KoM0TUf6Tj6OP4PtH+rtcskZdbr5UFH3p
+dKSGFL+34uieuJLWgawdCFJUMiyZlSc4akVcfkqf9xN4lc+bPavt/awQBwBeghjZ
+Kw+2/aVqeGYrxxNzs4h6Roc1iLFUtoOndgYBhFcOty8FyYGt4ZqGRiyfA+QBBdvE
+05XP9umx0vbwaoQEW8kdmchGHFiT8w7u86VGvuxqiycP/hDcnbK8BQJlJZNVAF+g
+VmEdqPGbElHjCkSi8+UNFBqUn1K6SGfVBclVqUWMipzaQJSisAKepRfuHXmnSTLl
+YHhXAgMBAAGjgZQwgZEwEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMC
+AQYwKwYDVR0QBCQwIoAPMjAyMDA2MDgxMDI0NTBagQ8yMDI0MTIwNzE5NTQ1MFow
+HwYDVR0jBBgwFoAUsHla6/e+3QP2Mlpzz2KJhkDWKOQwHQYDVR0OBBYEFLB5Wuv3
+vt0D9jJac89iiYZA1ijkMA0GCSqGSIb3DQEBCwUAA4ICAQBo344/a37V6YV2BAHI
+pTGz/kn8Mig+F2iQu/tUMgqMzgsBP0DUl65jCH9SUNno2/PX9k7MLFhDxeAvFmE1
+2kViTRoZi+myGorw9deXqmp9M+lw8eIzBKCww8R5TDhgAHpKgiVlehkCl3uG9Jn0
+W7XIfaRruMXxGIcTnoVoItMLleiFBXmjFPnxdxEz+NsY22b8uK1epkEJsYjRej8C
+amBowS4XaXnSZlzMJ+x4uo6gvSY2Raqxd/lvf7NrAF3o0IEVWOVJ83PpsH/hWj4y
+L7wE12zpF1EtgC861oKmfAM6OCWowCFpr364XAQ4j38PDdA9J6O2pAYodvpr+9+c
+s2Rm3edIwDaRSUwegLpuPDvrU3FTX50Vt3FtNHH90cqsfGkww+21ZrWW5V58TRCw
+tRiQLFXrGxir0RjALH0tydlV8DrtGUF3B/UE0GIOQQz9s2TZQyVgbtq4LgeyewsP
++9Z5hz2IkA7Wvdvb/hexbqDWx4xFRN/0dYe4cl3hzCzrW65Q12yiftF/8SE3Wvq3
+8bVGXx6gj4rv5SfOptDkFpiE5TvLzst22cOTJfzI14yml1z8vVXyJ+EVa80T0TnE
+PR60xHzS1ufOPPQ705U1PfFrfUUve4yXh+8N9W4/l4MNAmASTwaFltL3WNUlKuSc
+HZ1mbsLmOslt1KfLYz45YMfWhw==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIF7TCCA9WgAwIBAgIBEjANBgkqhkiG9w0BAQsFADCBhTELMAkGA1UEBhMCQ0kx
+MTAvBgNVBAoMKENPVEUgRCdJVk9JUkUgLSBNSU5JU1RFUkUgREUgTCdJTlRFUklF
+VVIxMTAvBgNVBAMMKENTQ0EgMjAxMTAwMSBDT1RFIEQnSVZPSVJFIC0gSVZPUlkg
+Q09BU1QxEDAOBgNVBAUTBzIwMTEwMDEwHhcNMTEwOTE0MDAwMDAwWhcNMjUwMTE0
+MjM1OTU5WjCBhTELMAkGA1UEBhMCQ0kxMTAvBgNVBAoMKENPVEUgRCdJVk9JUkUg
+LSBNSU5JU1RFUkUgREUgTCdJTlRFUklFVVIxMTAvBgNVBAMMKENTQ0EgMjAxMTAw
+MSBDT1RFIEQnSVZPSVJFIC0gSVZPUlkgQ09BU1QxEDAOBgNVBAUTBzIwMTEwMDEw
+ggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDdJ1qjXuaMyILS9wetg52Q
+z4fvQdtYbQ/r/c1YNA2mhOotuX0ZpcUyG9/+HY3I7z7Hjhc/O1stIYUBfXy1Fw6w
+qozR9zK5KtypW5TGWlbl1LiI2WHC2bUN3U+xzgb7MruenR6jXaBXByC8et2Vx8W4
+lsaDsl4EuPIrzZ4xIxUKVjwXIcFUx+XxqkJO+wfu78IYLx8efMvqKmKDcrUGXcsY
+FYf2wBSq9huWVZf2FoBQNLunL65M02rwzfGEjlxJ4kLXG/YFMkhzBOLVMkz9n3yh
+wNylwAFwuuts6J/AHM811MTb3J61g5CjsT57l6QmAe5Te5UMPdv6ZEWGCZwQcAPM
+HYrAWCVFBkZYDq2E6aCRTIx0HPcCUAW3sQf5FjFy2W3q90NvViOt6XwbpNxjkg5U
+UD6aXMJQvpBVUIxLKUpieHinN+KOvPrivyJez9cK7hxT4RoY3vAbmQjfY5B80t8T
+GgqvKSl/3l49hEGhedvWPX0asktP45ZJISKfGaNq6wV9L1P6BRWk3gqZ4lCkICRJ
+87H6YSAdA9RjsRO/y5E7uKbrTVIhOIXxa9f0AVBi9SzSqsy2tzIm66b0erw361OX
+pG6s8FLj1km07C9lAT7O3OtbCjkFWpR8oDauBf5YRAlU7inYDev4xY+wH24L3N3k
+S2BekkRXxy2uzw2QqNdeGQIDAQABo2YwZDAdBgNVHQ4EFgQUF6JTOOFDSbFe7uhE
+LkzU3F+gUscwDgYDVR0PAQH/BAQDAgAGMBIGA1UdEwEB/wQIMAYBAf8CAQAwHwYD
+VR0jBBgwFoAUF6JTOOFDSbFe7uhELkzU3F+gUscwDQYJKoZIhvcNAQELBQADggIB
+AFscQVnb2ZBOGznlc8sA8DUb/p5IKer10squV0GlkgSGH8h3NGEZB8VszES25zp7
+Ut4X3FZuvzO3cSBC/zExvbzpg6nrI4EgH4vrJGvTrIC0jU8TW9PpYdpjhzXmiKiB
+sDsvmINi91vJOdH3CpfhZKQonO+RktR0m2e5NBUmjxeB54cVzPYCRUcEJ8nHeUm7
+swTpZQFHbN0Cl6cnkqRoHbVtXuKxz6qOFXJuhc8bLZmyScxP6EU6jC5XCjaBmRQi
+wAMkvBJ3FQnErVwBk0uyuA7Bmi4FoAwJSrbFlsL2LsUeUl6CKKpdxOyvJG0n9KE8
+Uu1r8ezDr4ehotgYG1BvfbU6P9yqJaLdMbgPO8LqsTOyLow6ID+nsvKRuwiuy4f+
+9KqgigckqbVV7hrvAGyI38j4GEM0/tdmHZIMItg4KwNIKKyulaZ0Kwaa+QrrDNUn
+NbByP0Y+no1SUDzOcWwNdRoVnMruZCmbm5KK1VftgQmn0Ca0o2QUUcL6uJJdzTSo
+RANFKnGDSPWTLxniLquqU1fWsclbv/1z7GpUZ2t/nQAXpGni2uraiVV8PtG6N4GK
+Hw18nBXlTGiZB1DIkLLtfh/zH/fvxE14YALLGCdxnR63c6C04GGXtU4DD5GgCvEn
+ePiMRHIPVYHAdJaIqmFk3PWj8ubjp25ULYJbSE4dJ9/L
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIF7TCCA9WgAwIBAgIBIjANBgkqhkiG9w0BAQsFADCBhTELMAkGA1UEBhMCQ0kx
+MTAvBgNVBAoMKENPVEUgRCdJVk9JUkUgLSBNSU5JU1RFUkUgREUgTCdJTlRFUklF
+VVIxMTAvBgNVBAMMKENTQ0EgMjAxNTAwMSBDT1RFIEQnSVZPSVJFIC0gSVZPUlkg
+Q09BU1QxEDAOBgNVBAUTBzIwMTUwMDEwHhcNMTUwMzI3MDIwMDAwWhcNMjgwNzI3
+MjM1OTU5WjCBhTELMAkGA1UEBhMCQ0kxMTAvBgNVBAoMKENPVEUgRCdJVk9JUkUg
+LSBNSU5JU1RFUkUgREUgTCdJTlRFUklFVVIxMTAvBgNVBAMMKENTQ0EgMjAxNTAw
+MSBDT1RFIEQnSVZPSVJFIC0gSVZPUlkgQ09BU1QxEDAOBgNVBAUTBzIwMTUwMDEw
+ggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCkDq/+VqvU67mNGxOY7JR0
+bkmd+cIV0eVpWuhMwu1aNd5gqVMUW2lb9hFSG9kqUWj6lVFYpyR+oMiMtRYnzVcv
+BQ0diWLSurfORcB1ruNlgk5dc2BaPlcwUUl3W8aTNX/+g8hF88VH1jJl7l0AKH0b
+jutcKKgku7Juf7fsLLZ+Qj/yU/C+oGgOgc0ndfPCH+WwetkHea/4l/SU5AMYYV8V
+T99Aei0Ghd9PxHntjMWBte5fM9b/i8zB4gWRI8brXBROA9sxupxIchwmjHYh7Fl4
+rvBtutqwzpMONjo0K3WfKh0AN8DA74cw5oPCcU5NEYfyMmmRj4yw39Xg7hcdo8aG
+HrTUKkTXgtZq5BFADZjqQpcYoOTA9j1eR6loT607WzVz6iJNQui/lUH4dwUfWJNx
+WtL1NcEkWZa2iscl/Un8bX2fVczDhPhzan9VSZJLDWesCMRjesRPtyzbanFxlBGu
+fsE8sCBFHWiCi2BSz6xXzlTRNy1RFtKxtkQMWJp4coygScK0w0YhPJtndxext1+Z
+5kss5ZhZ7cfaNLoE9SFwYhHtDIvfmq5c+vdImZ6HctqkIreKsuVzAqfiaXvqtfbg
+K/e59I7CuJGucrKkfkjtd146LcrAVB3EDB6az4vXrYdU1lBxfd/uSPYIvceb4s68
+9rlxHCeDdgXsWvv4mW8M1QIDAQABo2YwZDAdBgNVHQ4EFgQUJUebZlhE7Z5YKYBV
+fGlrN+uDFCIwDgYDVR0PAQH/BAQDAgAGMBIGA1UdEwEB/wQIMAYBAf8CAQAwHwYD
+VR0jBBgwFoAUJUebZlhE7Z5YKYBVfGlrN+uDFCIwDQYJKoZIhvcNAQELBQADggIB
+AIb11CFkMKC2s+ybBSExJ1bTCHm0aqpMqEaKW4bsIU2qxGcbzAgNQTc9EZ+2BIR1
+M451jlAFm9peSJDs9kbSs9zx9On/jUBerF2EQztcc5VKHRJ8iIw/HYMI1jV2EOUT
+YHXUV6j0TK6SoD3Y0cYCerR8mtnQzU51SU9pOeFxCVfz8kyFOPKiTJzt3LC8TksP
+hmedVHacJbKe2QEQ2Qi+bdkVPAWEUVESe2ePIB5ldcUN1N+xpGXwjHYVQOSj26iD
+MrG9Ig3Bw10Xk2o+D8h28iLWiEDrCI4n2amjScwclyc72Xw7csoJClbUFwpr5xr8
+D8IcA5gfu9LUzkv9LNsSUw/JSZmjd/0YrzUipKk/a5xdoa+5M2i8JO0vOH6uFpa4
+W4O5+pGCl1utQ5x2e4u0vS28UOj2DFGigJFUE/DQUb9QRObq8aKWaPvrjc0IW/38
+1mM0lHK/AZd3ymzZftEJSiDC6qkTFdn0gpbPOalsaLSvMe+giFj8bBPdzFA3umfI
+D9MWZcp/h+AXx7IkAKovMuOl7c8pXgsr/VTH6oeriKVIzG5UzLWyy3hKx+DLzurh
+LPARKJfOyYgqZn8iITLUk1Ny198ZfNKAejd/i3YxLLSRsn3zsX9HUN9TJq0UOziT
+E0f7/Dfqxw7BgsWzwwYYssdxJSqNDD2cPMgahlyS1aeK
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIF8DCCA9igAwIBAgICAywwDQYJKoZIhvcNAQELBQAwgYcxCjAIBgNVBAUTATQx
+EDAOBgNVBAMMB0NTQ0EgTkwxNzA1BgNVBAsMLk1pbmlzdHJ5IG9mIHRoZSBJbnRl
+cmlvciBhbmQgS2luZ2RvbSBSZWxhdGlvbnMxITAfBgNVBAoMGFN0YXRlIG9mIHRo
+ZSBOZXRoZXJsYW5kczELMAkGA1UEBhMCTkwwHhcNMTQwMjIxMDAwMDAwWhcNMjcw
+MzAyMDAwMDAwWjCBhzEKMAgGA1UEBRMBNDEQMA4GA1UEAwwHQ1NDQSBOTDE3MDUG
+A1UECwwuTWluaXN0cnkgb2YgdGhlIEludGVyaW9yIGFuZCBLaW5nZG9tIFJlbGF0
+aW9uczEhMB8GA1UECgwYU3RhdGUgb2YgdGhlIE5ldGhlcmxhbmRzMQswCQYDVQQG
+EwJOTDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAOgOIoah4mu0doKD
+E9QFb8XEnhrA3uzzy4llbGUKdICRfJcnl9W48gu+x0Crhul3MCVc7DUqyeuDUBUT
+mFZvdY814ybX5GGKYmMsRFirJBDkEWY/YEwlXZN2Np2Qnqwka3n56d/EcDToEPzq
+Q9eqp9oEQb6jeRGbOHd1+AekVryh/xGbht4OrjP94J7abpBDOUDspfGmzUdNZhk8
+ZgZ/WUstFlTOR+BEaU72pbUb54lJBDUhBy4UkBC2+VukNKwG6Cgi28lckDuA8WTb
+mRsCia12/8f4oVMXRG6uo6BjDqOTHUT2hBrNu9+ukSruIe8MdfUfVqB8l7oqFIZc
+o+JvY9wvn3XZV+ykQmrG9gv+1hgxTY9pXQpDN3L9/YHkkGrCC9X9IqdobGsp1Cg4
+VU6tTf4U2I2+jNWit3vbY320vFLOgADSo+pPgMtW7DMRLku4nET00ocZOX4IpNxj
+hYKrNwiST0OhbAofW2stnTBkIcp1L8J1wB61DA2KZ4wGE2Ey1sQlvqxUQWz4ogE/
+XtMvZtb2v5tgl1rqu7qB75d1UDrM7KsrHbRPUxI3Zet1H8sviEnzCyIA5AwtS3vg
+NMQ03jodJYZMFS7ysKcIL9XpoM5yhtzC/f9DDTVHo84dwvz9tLUOj4suxBeRIN1b
+BcOyYtHe8gwDKZblggXrB1V+fY9NAgMBAAGjZDBiMBIGA1UdEwEB/wQIMAYBAf8C
+AQAwDgYDVR0PAQH/BAQDAgEGMBEGA1UdIAQKMAgwBgYEVR0gADApBgNVHQ4EIgQg
+R7u4G/DDmECWrPfz7e+SV96ndTT+Vt4NgMx8k4BfQkEwDQYJKoZIhvcNAQELBQAD
+ggIBAIdgu6tEt0ukayOLO4FvBYmm9GxVdGEVf81C87Qe8QwLif1h7LdB8NA18OPa
+lVScXGLaWvyJQ9DZu34jUt3m+AepvJWrxf8Ey5qzCrtocC9+6lPypYGpSIvsk5KL
+ht9AgTLSbeVz8olH/2YOcfJGUJAQAMazrKffLjEzap739fv8LlVbMcUYErztp5J8
+jtx6EuzcD9U/gVAqfAw6ps98Gj0pUjTobbM/pRWZHE7bw+SrHFf9CPyQj8ZS0lHp
+NfBGDgCVpRRHogr0aylapazcMke+UFbyiCi69JlcPns/V3U7AXLA+btcSTIhZ+DP
+VcNwuDg3WcuEkJBq/ZNDeg2M9l47k3EzRinRmFf+pt06x8zpjZ/8/t+0PPsj8Ccr
+WzTeRky3klffKl5EpM6J08Z1NQzk0D8gy0hY0OmmROftzEdkVSOfDAOA3rTvpe41
+57zFTgXAnWaMB4QOGkSm5ZIFNZLFIL/kNWJtzKobOIn3bEtTL7co/AC3+R8ZYAtz
+tvlGD20s9RLuNZqG1tUTRAE96pUrGBVzygo0UHoRUZRwl1knQED3h11/YjpDRGWF
+RaSPtyKT6Wht59eE4RPsxpKZJQE75UkpoxJQ66A6t8ajtfGg4wx7QTfLyZTE1psE
+G602U6+evq+4XtTcPIcmANdaJJCly4qY07Jb1kkbIH9PlHFY
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIF8DCCA9igAwIBAgICBGQwDQYJKoZIhvcNAQELBQAwgYcxCjAIBgNVBAUTATUx
+EDAOBgNVBAMMB0NTQ0EgTkwxNzA1BgNVBAsMLk1pbmlzdHJ5IG9mIHRoZSBJbnRl
+cmlvciBhbmQgS2luZ2RvbSBSZWxhdGlvbnMxITAfBgNVBAoMGFN0YXRlIG9mIHRo
+ZSBOZXRoZXJsYW5kczELMAkGA1UEBhMCTkwwHhcNMTcwMjIxMDAwMDAwWhcNMzAw
+MzAyMDAwMDAwWjCBhzEKMAgGA1UEBRMBNTEQMA4GA1UEAwwHQ1NDQSBOTDE3MDUG
+A1UECwwuTWluaXN0cnkgb2YgdGhlIEludGVyaW9yIGFuZCBLaW5nZG9tIFJlbGF0
+aW9uczEhMB8GA1UECgwYU3RhdGUgb2YgdGhlIE5ldGhlcmxhbmRzMQswCQYDVQQG
+EwJOTDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMZVunXL6FFloIZi
+weDvxis6piuUWqB14367V8wmpFXjDQpx8ENVZ7RBDlIStIJ+QvvK7RZmMDHrua5I
+N9oQYeBnsChXmT7vII0sZKQgNq0y5UKToxRcoOjdPhA49TVkzmratmxZfBxZHk69
+xEcYHKCMy/bhgSs6our+4zYOcnZYkvUTnrkrcmOGI3UftIuMHFVT7V/m7WRCsaJQ
+Vhauy5Na/MBKR7K+B3hAeSOZhWuT8DvklTNrYiTVIxthDdt1H438Av1VHrQHHLc5
+rvomdcznW+vXX8WfjmmuMYUH3JVgMT2byWnpPnbGZ5r8DPZBiY/OYn4zSCyZ2J62
+giuNmO8IX6WibmbW+FSUadwLtm4EgzoN+8p9RhCNz7atcSzrK149ohr8WpoKbiCi
+6eVdd6XwYgcl+XA+g0cojl36Dgi5NkvZtbHhSsh7LnCjOINX3MAN+7+qCY2/5Pks
+pv3OYrK7RcK7VYbaJC0HKmQnXXmSGsXdFsZABF8TMnm/dulsXtYj33AnXusDzqow
+2EmWjbvoWd4f9PJNXaQTkSFSAVFSBUU94eSgoua/kHLJW1Ac8uCC6mYu3xqT9USE
+5CnoOPmeSTuSKOLgwbqA7tZODNIJ1FRJXre7iQfu4oeMcWDORZplLnUen7+gSl6K
+ZEhyf9dfWeLgVG1JNl0OAVaL9P5BAgMBAAGjZDBiMBIGA1UdEwEB/wQIMAYBAf8C
+AQAwDgYDVR0PAQH/BAQDAgEGMBEGA1UdIAQKMAgwBgYEVR0gADApBgNVHQ4EIgQg
+GADA687i5eO/LxUPdaW2JF1UmXB4hkluKvLON4UOLTAwDQYJKoZIhvcNAQELBQAD
+ggIBAHAFP5wmLnLk4nSaKc7lDX1ioehz7MWj7kk5hGVTA73zUwH5jWyQuXSw46/U
+Jzv/6ObpBopXNRLKHPxNlUeIUHdLmYsl7pbPmxirDyr8k4oBkH41xaHwS+NmCR0d
+bmYMYYmbo4GcsD0bXBmgsOaBsq8w7WHPeqfkLD/kZGOZxM6Wum02u+V8C+c9fBwY
+/F5mee5Fc5b0+oWv8hw4g+NkmLVKt4tsG5jIDmRMe6XWjGut0XP8oyvC8FZU5jFI
+t/97mRVUbESak1OJZk5k3wZhUo/VteugMQpaGyNU5lBbP5zXI0ERSBY2zuqIXTcc
+Y/a94ZL4oV+wDygUj6bFCP0eKYK56c+0ss5z/bCKyW6EEWIFPtIp6AbZSeDSojxR
+r6BCFUZe7dk+pSOYcRB8kF+Eix1bqV2UhKf6eAMLWZeN4h+KBuA20X4jraF1K2Mb
+Hwm+rEgk2Fw73YALM7OazmXs+CufiSFkIqnVMJy2ErX77uR4wO782lTDNFLJKfnn
+zwPT2l2dTUejdIya6LB98muP0qv6h3AsaJQEZDUiLbO5tkXeeP38EtLRaea9CWE5
+8LLaguNjVI0xtOaZluzxlQVf5leFirOQjhs6y83X5jlz84bQmwq5XwUb7j2E1wEU
+sAO0tBCI4WzEvxYxKVQ3xN+FMUG/Q+OHp9PCTRsNTJ9HAcqa
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIF9DCCA9ygAwIBAgIIAU55PqVdzaIwDQYJKoZIhvcNAQEFBQAwgYUxIjAgBgNV
+BAMMGUl0YWxpYW4gQ291bnRyeSBTaWduZXIgQ0ExMzAxBgNVBAsMKk5hdGlvbmFs
+IEVsZWN0cm9uaWMgQ2VudGVyIG9mIFN0YXRlIFBvbGljZTEdMBsGA1UECgwUTWlu
+aXN0cnkgb2YgSW50ZXJpb3IxCzAJBgNVBAYTAklUMB4XDTE2MDkwNjA5NDMzMVoX
+DTMxMTIwMjA5NDMzMVowgYUxIjAgBgNVBAMMGUl0YWxpYW4gQ291bnRyeSBTaWdu
+ZXIgQ0ExMzAxBgNVBAsMKk5hdGlvbmFsIEVsZWN0cm9uaWMgQ2VudGVyIG9mIFN0
+YXRlIFBvbGljZTEdMBsGA1UECgwUTWluaXN0cnkgb2YgSW50ZXJpb3IxCzAJBgNV
+BAYTAklUMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAtfZw01ist+eN
+/R1yrKEmpJaeGWa/cXQLW+ZyAWOFQHiDFhDzGuMEx8Fz4Rxx90AZv9H6J6rD9r3c
+iadSBA2tm0qBzsGz57jaruTw2ZbatFjZhDzsuFGviXsYRLkmioPfwJDB4X/hLsSk
+3X1d70ZPb+wphM86wldXRe6rXBrIud8O+5acUOgeO7haHARuQWsZ30vkFcaRghra
+2TvAQpQX0mzjmq86D5aVCLauGA/sX1K48bIEA6SdhpEAFwRxNrNhIUNZstqsom1I
+AUeqvLTjtBIVRS8JAz1u8CdVVn7mMgndPVVFvKUi8vrDcQliWVYx1CxcFaDO4mxl
+zsIxPoSBR5gD3ooUNcgtXFB1sO5p1URYqaQxgXkKHR4PEKa3SGWqO7xpkCHG7x5b
+FSNoBY/PTeqfEKVN2viDBvOvksHUuqFfOtB0Th1/AsjXnrL061COYfkv5YaUjtOg
+OOSGGdZCDUdYbNRrtHR9A2p0BaCQ/HOkTEF+Tzu0H9wM+IumVfAB/cQQTGf5Iuet
+BwWZZ6jjkOso06XzSmsVvbmRoppi844rwkDwrF49L8KuElRi+ZSj+16mrf2CDvbG
+At/aOJ6Khxx4/NcatXgn9zOw3TcM0IW+OiO+IqTTkdu+R3Ua+H4aj6aUx+FLxiFZ
+l1wVgZW2tBMlpIXNsaQGYA32cziSD4UCAwEAAaNmMGQwHQYDVR0OBBYEFENs45Id
+EJIjB+/XovV37XUkRn8bMBIGA1UdEwEB/wQIMAYBAf8CAQAwHwYDVR0jBBgwFoAU
+Q2zjkh0QkiMH79ei9XftdSRGfxswDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEB
+BQUAA4ICAQBVr86sqlokkXP7hSL7hp1J9UUc1CPEaZDW6/+K4mHwKFv/0fso0U07
+IruVD7sTsCJ6lJ2bTCWfvo0jSo2PpMgtWZ4ateKcEYBN27k/k/lKcMZKuF6xmZpQ
+/WwM5lhQxWkvL7CiqhO3T+vDrhjZwnfxv0/x9bYYr2Ge/0tE1Mlu0kVhg8W+xOcY
+wRozVl/Zn8B6FEbpKFXWzHRh9KNiP0t6QzcWND/xKCzngpJgXurRRowWIjZiAzQo
+WQlYbxM9hg/EbZAvEYz4YBnn5R+ojrxRoETi/nX70jZ8t7bxXvV5NAyJP/BgalaL
+T9Ge+k9GXHGwU6HkKmlqZAFHL8iJtfgGG2suVgRISfl8H9zpGJQlGoz1n2iOEcQ4
+y9SfRGXJKwH+adX6kLrEYXUmU/lJ9vc0BG15avebmoqzEPETC5ZqCcSQSkzOpjmQ
+EU3fdQvrGGG2Wm5ahHKixxJvlAuQSfzH4uuvxPdVC4iZvZlZV+9PLPKzFtmR5DfQ
+V5yb1VFtzrEr6f8/IbGDIhDs0r5bpnd/yNJBhjdcEzFGSduap5Tl+eCxhEKZJpd4
+f3RPk66cNxQNjtLQ6akGaj+6NQG/S+wnilePYPsxqLE6PEpqPgaxfQVjGe9LUhMU
+Wb6zdr2YjrI8UuwWEMzL0H/wc3nLpIlRr0f6hQ1kG6ZQLQKfhwq+hA==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIF9jCCA96gAwIBAgIISqqMnd2bc4MwDQYJKoZIhvcNAQELBQAwgYYxCzAJBgNV
+BAYTAkxUMTswOQYDVQQKDDJDb25zdWxhciBkZXBhcnRtZW50IG9mIE1pbmlzdHJ5
+IG9mIEZvcmVpZ24gQWZmYWlyczEnMCUGA1UECwweQ2VydGlmaWNhdGlvbiBDZW50
+ZXIgb2YgTUZBIENEMREwDwYDVQQDDAhDU0NBIExUVTAeFw0xNDA4MjUwNjQwMTBa
+Fw0yNDA4MjQwNjQwMTBaMIGGMQswCQYDVQQGEwJMVDE7MDkGA1UECgwyQ29uc3Vs
+YXIgZGVwYXJ0bWVudCBvZiBNaW5pc3RyeSBvZiBGb3JlaWduIEFmZmFpcnMxJzAl
+BgNVBAsMHkNlcnRpZmljYXRpb24gQ2VudGVyIG9mIE1GQSBDRDERMA8GA1UEAwwI
+Q1NDQSBMVFUwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCuY9VL2Cs+
+XvY/zaxtpW5SkgVbWMVJX249eDJBad6IB98Bz9fBwlC4285Q5773A6wRphqX2xpi
+Hc1Nk6aWLRPeQ0GZL9yPmE9cNJfyc8BdPeVm3+hqD/Lg/r+4eEtcLagYJsI3kR+m
+CQnT2XhDGpbG9Z6Xpc4Nu7DF8ChWrJyjDqTN2Hojh2eK/stQ0PvXiHp/mlpQp4WL
+5YtBEbJFxJ8lmk3pPhAu3Mr6UNDINHydQ6vMGtvQc0a6+mSX2qs1mIlPMsH4Sa6g
+fdmPk9740wnUoTDRDESl8fTz4CGmIdMh8ZbfqxPG3YTu68s5h5AKSLRlKufQvIwX
+Fv0Nh7AN2qNr/8C2oTbZa2vC9grdclDrw9c/j5wH5iCsnRTGLZ0qKWAUXz2Gn5+A
+FBa4oQlRuRhWVkI/Q4qxI//PkmNHpgRU6oTXrbIwqmgUsHt3AOb20bBMrK1NySJ4
+dfCOhPpFCFS4sww47BTIICJk5Ml/lLoiCuqRZhZwNILP63YIdeJt1TTCqgSVQ5hC
+M25swGTu+FMU6m8Flqi5CAuB780sKl2W1v6LFuk6qnHSF/nBkroplRlCjqqz4wOY
+p6HGUnHpJNJfJ+/BhICQ1uP9jqrmFqAB/R80E4yk+tmTEDZgBdPe/OY2yJIwGnGl
+3peyqlwFfnQEZcOxTNeh7G1SMgW56Kn+yQIDAQABo2YwZDAdBgNVHQ4EFgQUdbZb
+FYjpTo/PDaIVb4QcQwwH7EEwEgYDVR0TAQH/BAgwBgEB/wIBADAfBgNVHSMEGDAW
+gBR1tlsViOlOj88NohVvhBxDDAfsQTAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZIhvcN
+AQELBQADggIBAFt+g74ABUsTPuv+WmLHal+fepjBCeBTl5uieupNBaSgZyrWY7Wj
+Wsfjk5OZ7RSPgkX18nusXb2a8ZRdPOvb4NUv3NMoLJQqLqltoO+c7ARc0IwwNzR4
+f+v4NbtcbAOHA08/lnzG0iPwFIQKIxy3HsmaWvzGU1X0ZrK7YnPCNCXPUCgOk3wT
+rYa4XTLvyvsF8ygFBwaHJmGbTJNZTKWzdLkTfWRZmUyoN60eWZbRiBbI2LoLRt5A
+x7jf/MxjMZJ0xT4Ju4HlzbIeakUwIjsaP9+02reerWNzC3iHm5uOmi9jVakurF5h
+Y99/ASh03ptFKsWJ+/qja1+kxpMpTx1Qg7yiI8S9kdbR56ut1R5WHC7ji0Rf8l/s
+7cVG9+2CzssisG1Pjm+4EhF+lfD6x/MOUIhIx8tf5fj2eO7LjCxkd5w+o58EpZJd
+SBCCHfGsk1tUuAvR916gaHM1/3mG0B5UEimKP4omls/r1FloSJMf7Q297JGM8vl1
+pmNwmOeUvODHVB9YQfBrNcoQLRCCfzJoIkjG/5rSjiggr+5kM5DFAVmE0TNKacCc
+ykv4/Lh1RpRHUWHp3CSFs0eOzv++ITPAdVDuf4YxgUvIke4G1AwR8w75W/hqJuzm
+wYBOo6cp1OE0S3pCnb8azgl0Z6lZFwBwcX92SISYeoejJIxCo+50vO9G
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIF+DCCA+CgAwIBAgIESRfYsTANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMC
+VFcxGjAYBgNVBAoMEVRhaXdhbiBHb3Zlcm5tZW50MSQwIgYDVQQLDBtNaW5pc3Ry
+eSBvZiBGb3JlaWduIEFmZmFpcnMxIzAhBgNVBAsMGkJ1cmVhdSBvZiBDb25zdWxh
+ciBBZmZhaXJzMQ0wCwYDVQQDDARDU0NBMB4XDTExMTIwMjA3MTM0NFoXDTI1MDUw
+MjA3NDM0NFowgYMxCzAJBgNVBAYTAlRXMRowGAYDVQQKDBFUYWl3YW4gR292ZXJu
+bWVudDEkMCIGA1UECwwbTWluaXN0cnkgb2YgRm9yZWlnbiBBZmZhaXJzMSMwIQYD
+VQQLDBpCdXJlYXUgb2YgQ29uc3VsYXIgQWZmYWlyczENMAsGA1UEAwwEQ1NDQTCC
+AiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAPVReaWqjO5TwE9WDxofldFv
+8ZzkFs7RzmQZnbIA8CpqHQgSs4fdncfDz4UkbfmOpGF4HcbmkpZ91qLD33j3MTY3
+fg66ck1L7+wnSHdFo9Bvua8Yih978UzE/6jwpuBcFWL95j7srzy0+hOnm4FfO3Ku
+stUlX9O9ZQsWEKMEXpawJDryrSYaJ+hpOWbtySVBlmeIzFSI+2eZS6t+zZNYgu6n
+gCqIT8LWuJhPgMmCW4T84vhlgQ8lQ0sDn86/skNoZtaELv4pFiW2fcqnT+w67zI2
+9aDTXGf5XCdJQUOgTP1aE63/x5H0g0TCX/WK4Hd0TFt15ZnjuNKphlir3esH2lYk
+5a/dh2pwf+7jqUKSqdEnrwWbDFkeLU7nqie99NLszcNfezPsO0bH7Bo1w2mWXYU6
+/3IHy6f3Ic4pfXi2tEnZ9nMV2QwOwUvKOA/hMMcjR5lM4hTsVGmHSYvqZxo4Aypo
+d4GzF54xfULL7P343taH6eOwzf49rgKHV+ByCxrftBaZ1213yKyqA2GaIAiKtbAj
+BcIHFj+2BCljGEgEj6Td3hLTJk7B8J1YDwW9DvA/PnA1tlim17jgtwu7UCOl9vUG
+KZOGw6FGynDJAI5VunjJnV5w+LnnBtoGbbwPulyD5Du9D+o12zGBOBUo3H3GMCVh
+J9YFJzT4YW0SeRFPG3hRAgMBAAGjcjBwMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYD
+VR0PAQH/BAQDAgEGMCsGA1UdEAQkMCKADzIwMTExMjAyMDcxMzQ0WoEPMjAxNjA2
+MjQwNzQzNDRaMB0GA1UdDgQWBBTePrSKKi6Nnu8eW6Ew4+GFNNa6HzANBgkqhkiG
+9w0BAQsFAAOCAgEAHkOMa6dy8f+zFpsjIxNACTchVie+c6x/qzagqlPl9sRU7FmS
+lebfJ8shApelGO+Pthc57cQKPysVOLIGfY6uYx7eGXjfkZ0ddxRCoObkdSrGAmhP
+fe8nMzgGGJQF2gcX0JL33QP9Th+w2zczngNRadkdpF2vPKVQ8oRDb4sCaEG9ZWVn
+B1VHlO7v0FRlmRkI/dt8U/ccYq4Pdjf3azizakU+O9J3Kjvxwi99KTTqbzRPMXew
+rrcLnXZH9HyStFvOJe5yTYje5zaeHHaH+SS/zSBi6mtC8G+7/Vi5msZgqWvLiznE
+SbFZt5ipTVwM2BD4W6ytMkb6n6PeYpqrGiTf94BfhqNKyv14TnzAyKLA6yZIw164
+S3MfoXP8faATaiDdSOebJ61WSiE7z2kBnnwtAXpZSECedtP6JKnGXgl3WfAV1+Cy
+ujcKAQpTwTilR/gw3azUGs9AgrI9i1fZ0HcYrYAmegWhQAUscNCE768aDWn3pVpC
+HDF9IJb+adpytTDWFB3gv+99DynqOutCP1xPEhXKpsbGDoVN1nSzaGOQFu3jLB1t
+HNbSVuyj2XlGvaN/cpNfZp7lFZtqB1kegt0cbmS57SwPAr2TacKg3QwCMu4XKjdJ
+O2w36e5vIa2QQNxqLyLLMKBe7OZhlfU8DHGIqPIwnGBxMjhVIN/PE4P2STk=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIF+DCCA+CgAwIBAgIESRfbNjANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMC
+VFcxGjAYBgNVBAoMEVRhaXdhbiBHb3Zlcm5tZW50MSQwIgYDVQQLDBtNaW5pc3Ry
+eSBvZiBGb3JlaWduIEFmZmFpcnMxIzAhBgNVBAsMGkJ1cmVhdSBvZiBDb25zdWxh
+ciBBZmZhaXJzMQ0wCwYDVQQDDARDU0NBMB4XDTE1MDIxMjA5MTUwNFoXDTI4MDcx
+MjA5NDUwNFowgYMxCzAJBgNVBAYTAlRXMRowGAYDVQQKDBFUYWl3YW4gR292ZXJu
+bWVudDEkMCIGA1UECwwbTWluaXN0cnkgb2YgRm9yZWlnbiBBZmZhaXJzMSMwIQYD
+VQQLDBpCdXJlYXUgb2YgQ29uc3VsYXIgQWZmYWlyczENMAsGA1UEAwwEQ1NDQTCC
+AiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAJX01rUlLj3IhziFAXDppJuY
+yJ9Rer5sH13xIBEBRbLppikHgTgUi40rITK0LT05uF76mlV0aN3a5LlZ+kuzh9xg
+BG2gD1Jx0BGIxj4dBxUm/l/xqEO3QYeCciZHu6jmGoZGCHtMvA4q0kWyIiGYnGbr
+G/XPa2/FnlzVlly1lOXXeEZNI2cytdQEA4B2D/xccXuLg+2F2FP3OADR8MFOwAcg
+YHJgSizMHatujW5h4IJUzAOuKgsmxe/OU4WEXfGdmKAJ2v8VIv5raO6MZJk00VKb
+Rql2cHLNVRQ+r1L77D/Dzl/gnNEwMDktUHLNiEyf3GYpkmKQw5WyrFd4/qmxj375
++UYuFfdTetBEUIvsCpBdceLs4umE417c8rvG9NKXEENGGn/ffDhjB3u7bQfpLlU7
+oMkMLnN0+mqF/eXfsowO6hUQLkLG/dsvVhDhMBumOAPyaMzFP3RzZeSAhf7NXIUl
+I0NilDkO1XzhYzHcVo2xX911EjCqP26tU7nP82aiE59zZlXXlUuLk2n1xRyG7FcY
+fJtABNlmfhXj+sf5aQXQGJt419+yht+r+2fYpoL1LhKaFUDK93Hw6ErTXZDcj792
+6B5wa8/mMHfN5ugPf6mmyE4/P7dyCeNmLZixcYQ4kTGmAxMUTcmAzLQbFXdCD+if
+0RtcpjRfu3Z5NTSlGlP9AgMBAAGjcjBwMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYD
+VR0PAQH/BAQDAgEGMCsGA1UdEAQkMCKADzIwMTUwMjEyMDkxNTA0WoEPMjAxOTA1
+MzAwMTQ1MDRaMB0GA1UdDgQWBBSBwGWSKnTPr5IgXfsIPn5eFQorDjANBgkqhkiG
+9w0BAQsFAAOCAgEAg+B1RxWpblV9iMr01BdPCu1tdLWMFx3NrY+PI9b3a/jUkGeL
+5Rpt6XE5crhLuzTr/zzqgGLw4Qqg5k60Z7jwwuEBHBW6U7OtQoA9odHZnChvkdFq
+SlMZsV95NvZApKptaM5XAWEB+2fmgVmA4qXZS8Cj1wUIFC/jnXxogWwY5wSugABr
+Fwazp7b9cifrWylKq0U5qNJiATNw3A6hbcfbfc14ig3g57tcZOsu3+1dq2bp4brn
+z7PcZA7O2CFwlQKIWrza9b998KDpFl4QYsQpYS3RQ5+WoxBeN2pZEEV5zrbM9xi4
+DM44emuodft4c1h+S1IRglvwb0ou7to5V7/Fy6cBITMDtkixXVFBtCY6Y7lbBtyz
+Z2M93F3ZfJTXDa3ENqSgZj7dfKy2weNPi6Aj3g05d1eiRg6GDPWuUoqeIXTh7zWa
+1W/OUC2CRk6curSG5l7A2I1LfKqfvhtNGXTJQAtDXUJnJ4weEWFkJdCA0yUysZND
+kRDuPe6yLCyjFGgsQYVPivxm/2zBTw/rhoBsBDKIN2quRzVeXs63qBN4bMvrVge1
+gv+09n+K9EgKUCkc/vBa9dSE6anY0nH08cDa36Nu4h/MYbln7GltmIEsVBV8U+Z+
+rpmkxCC6OdZ0LDkl54+vUBM49yMBgYSrwUlgc8VzMq0wz2sTrEmkbGS8Q3U=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIF+DCCA+CgAwIBAgIESRfdwTANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMC
+VFcxGjAYBgNVBAoMEVRhaXdhbiBHb3Zlcm5tZW50MSQwIgYDVQQLDBtNaW5pc3Ry
+eSBvZiBGb3JlaWduIEFmZmFpcnMxIzAhBgNVBAsMGkJ1cmVhdSBvZiBDb25zdWxh
+ciBBZmZhaXJzMQ0wCwYDVQQDDARDU0NBMB4XDTE4MDIwNjA0MzgwNloXDTMxMDcw
+NjA1MDgwNlowgYMxCzAJBgNVBAYTAlRXMRowGAYDVQQKDBFUYWl3YW4gR292ZXJu
+bWVudDEkMCIGA1UECwwbTWluaXN0cnkgb2YgRm9yZWlnbiBBZmZhaXJzMSMwIQYD
+VQQLDBpCdXJlYXUgb2YgQ29uc3VsYXIgQWZmYWlyczENMAsGA1UEAwwEQ1NDQTCC
+AiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANQzv/5MhkQw+BVkWmu44urR
+UEh9ZOjpfcCISYPwZ+oQUcsUErZhxellWY/98oePUT6Y1s08W1rkr71ebQ/P4hp6
+ru9dQ39E8te8TXC9m68Hs+u37BkVdQLXqvIBu/QS/Gg6UAYqIWaYGZ+kuqEa0U71
+u1Rcvnco/26zh/g1zqWTqCqFkmfPWZAIQnToSLbzVh+8rw2rvuYInntvJOklMrdc
+wj/VkLqvb50vCxDayiTjV+pcgk8w5Bav2/WXVurePZuUqEYRHGYA1efdJTuAgXrR
+6wXaCOJMH1MooTcJL7H97eCZ7pNU1eBmRhsQJhwbxAeNo0tiZp2+XxyzuT9H9kn/
+p3CK4b8C5B+/2klQ8KobFZq0mmJCezMPuWyCB2bTK6XMxsofYwuPf+uy90SRz59y
++upSDF/dyopz5GaatgJ2ukSYJzNH5ilDPYJiHVV/2KR4jYyM2CuYD5rxhIjy75U6
+izYmpl3NGoMg4c4SzM1pSlvdEylzdbd3Gx5diLG84ymDJKjVc+DBHLHe9iu0/JcO
+NmsFXwxOQ+FWRuHnKliPtVxTXNQTViThrne7F6DntAuq2Q8ef8pqj7kJIgtwKwsi
+zITpHVTeW9IWsh8FYMj0XwjzRtgAv/HNM57md3B3tHUHKgufKjn1RCldt8jetNru
+jywYg45WrSQh4AsnEjVTAgMBAAGjcjBwMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYD
+VR0PAQH/BAQDAgEGMCsGA1UdEAQkMCKADzIwMTgwMjA2MDQzODA2WoEPMjAyMjA1
+MjMxMzA4MDZaMB0GA1UdDgQWBBSDadJfTXzw17y2nFeQlAJmrgdW4zANBgkqhkiG
+9w0BAQsFAAOCAgEAOIYby7AReGDen9GVRG8g+9ijGncWRsf1rzafHu7S0d5RUWyt
+iCEg606cmhWGy8/ehPQ662Q7VRaMJELt7ktpSKrWOADKHzqNIPyGJfQHexI5qew7
+pYMn2B2/qe4Hp6uVIYMbxs3mPvba3JX7E0+0MDSxAq/EOMwWejmvE+JJBzFmt0uU
+GpTlj00SUsBN1NR5L/stV2tshIkD4+Gf5v3lLz+2QDeqL9SzBJrltLAzOXWcZMk1
+l4Fv3aWJXeY/XZR2mpfqAu7HeVv4VHPqI3A7l5o++AJuzPonEeU9h3cu++b8nTDP
+BuZ6X2SyiV1Izl3ZKWQwcXgblu6QGjz3c8YSwn3JINpK9KDGMPBXaxzSMgJ9KcX8
+TCnBMZvkBy6aWEh5pXnPb9djnKXpV1UCwqe5LxTvhChHPyGF6KC3iNv//+dkWPEg
+erLZFnVD1qsYVM94YcnQMxFyu76sBW+wHEBTw4TYKz3K4kiGDTonpS6DYqZ37SRy
+tncP8hBzmaVphBnSKUcvIiFp5uhe+dXK0HNrsknHhFzI9HbisJ2KbS1Q3axIbfVO
+QTDmdFZXh+11kOUaGPmUWG8sJzJWSy/xCmpASk7Spq1Fa+4aEBFfrcg9Wj0NA2n3
+egz+cT36dhcA0Df6RmbXgBdnsjE+q6UlzVgKActUabXV7h+4WJf0pJ28laA=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIF/TCCA+WgAwIBAgIESVaL1zANBgkqhkiG9w0BAQUFADAyMQswCQYDVQQGEwJy
+bzEMMAoGA1UECgwDREdQMRUwEwYDVQQDDAxDU0NBIFJvbWFuaWEwHhcNMTQwOTAx
+MTE0NDA1WhcNMjkwOTAxMTIxNDA1WjAyMQswCQYDVQQGEwJybzEMMAoGA1UECgwD
+REdQMRUwEwYDVQQDDAxDU0NBIFJvbWFuaWEwggIiMA0GCSqGSIb3DQEBAQUAA4IC
+DwAwggIKAoICAQC2llNrwv8I7xvQZU96YR3HtJ47E2FxK2Pkzq2Qbz1ODHgd7M5t
+m9ozfoW0kk+RnVJ2eynQRBxQM2oHCgG7E6uHwnl+LlkXSxxehqjowF5dgPqk3chG
+BmD/yIZniau8N/d3KL43/eOFsPKul/Uh6w9L3yhDiTz7Eo0VsHG23RuRqGF6RW+d
+X2e1ZwkMnUPc/tKxejMz4DZSk2kZT+q+gtylcaKIDoEWTqV+L6HLUOcB4xYmsCpw
+wvAC4S+1ECeOje1nPzDd9qP1aMTVPRuhM8SOEYNVxwCR4HNMDusfZdNYS31SNurd
+zxNcPe7aqugP4ohMWB3o/N4cI1yshni/NHPZkfaw4QokHroshGZcFYVU4gW3h188
+TvkWi6DZN928Or0O1MriOI3PdO9egRDrQZFEjmSvMB4VzLYjmufc7+Ix5prlSqIL
+OvK2ceHDCGLy59nLMwGwQ8OEL8BdW9FTmoP1/945iCjC7iStruxuYooRbO1WJHun
+gEMPe1f44FX81Jpq7X0AEwEOBEi9o/H/PH/mWCympdH2IaKlrUaOuOxHsEKjL+9a
+ayengoPxnHAdjb9T3qa1U8mqspVJ2uZxK1IBtEVpg4HJgabR5yXZ8YvAs/O/D4St
+9J+Iggi0Z0CrxhT6ZzLIwHJMu1aNpcc688QcKHdQewckafR7SaJW3cwinQIDAQAB
+o4IBGTCCARUwEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAQYwgZkG
+A1UdHwSBkTCBjjBBoD+gPYY7aHR0cDovL3d3dy5wYXNhcG9hcnRlLm1haS5nb3Yu
+cm8vY3NjYS9jZXJ0aWZpY2F0ZS9jYWNybC5jcmwwSaBHoEWkQzBBMQswCQYDVQQG
+EwJybzEMMAoGA1UECgwDREdQMRUwEwYDVQQDDAxDU0NBIFJvbWFuaWExDTALBgNV
+BAMMBENSTDEwKwYDVR0QBCQwIoAPMjAxNDA5MDExMTQ0MDVagQ8yMDE4MDYwMjA2
+MTQwNVowEwYDVR0jBAwwCoAIRDPKmBoxb3AwEQYDVR0OBAoECEQzypgaMW9wMA0G
+CSqGSIb3DQEBBQUAA4ICAQALrejD1FJofeTQ5eiCZxSRthWCPJTkOasCE+3zdYWW
+nQzTB2fRDx77mS9win5DsJnj9dPrwghQ8pzAtZ7bhV4+FekfTjOIffAmv2fm69Xi
+nhrF394lYXljaObcTzt1JpFpvbSTa1Rv4z2gOUKu0rJwQsf6/Qr2TJdD4TVQEp2o
+xWRBhnMT3WdPxziSpHb3HZ6XpLu29sWxdPZc4VQ63SzHWvi8FDPfTD9MTX6Uin1o
+4SqzkSjb4nrDI9nh9BTMeZixpsDyELt80ISY/4q6NcS2I1HBQQ6xE5ISg6wb5zeL
+g1HFIAX/y95SFVIg1MsXnQa0Hx0XWC6pn2WzaGUUPFaNISk+8BRfVEbmqU3HXyPE
+q1W3liiGedDsKRY2IogMNbqKxst2lJo+7Zy6HrLtEOPwjy+slwVXzIavFonsS4vQ
+lDma9GEa8qdDSebbdpb5C4CZrli/H9BW88UF13shxIzUkNFC6iXSqTOLPdJtqkzn
+9oGL+MHOxdtWCFlMzzrntx/bbaX+VSns17OKPzmya335MrYSFuMc/pUR+KFl1nkn
+r/RRPBryPW+244tNQOBjUllv/wHflJZUdf2YiDVuk6+t771ywx7aKPBG0vKvloa6
+hvaDipYlid+fXn++O5MliGkRiaKXXi8lqrzuhM6LpIn6Dg8HkfYkZQ4+QXRX7FSt
+1g==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIF/TCCA+WgAwIBAgIESVcI/TANBgkqhkiG9w0BAQsFADAyMQswCQYDVQQGEwJy
+bzEMMAoGA1UECgwDREdQMRUwEwYDVQQDDAxDU0NBIFJvbWFuaWEwHhcNMTcwNTI1
+MTAzNTE1WhcNMzIwNTI1MTEwNTE1WjAyMQswCQYDVQQGEwJybzEMMAoGA1UECgwD
+REdQMRUwEwYDVQQDDAxDU0NBIFJvbWFuaWEwggIiMA0GCSqGSIb3DQEBAQUAA4IC
+DwAwggIKAoICAQC9OchTuFNcldV5FM6KHGEEA7SCpAkMZeLpvmjrYJ0VslzdSt5z
+/p2KnHXzf7idFbDLw0ZQTWdmCwWrRMBFIHvJSNbUphvuX02VUuiPNOkhmAq32a47
++h6xLNBHopyJcU6UbDnNo6wMPAtkthpuLmC/gkTtJgnVOXwIidfauibacOZhyc3u
+Ef7Rytc5z4Dqr7Eu8zD0MonWDBnjMLxwzTO3v+tsYFEKSt+a9oE2rSlCDypSUvwk
+bQ9X0TPUkcC9htaDWBYZK0sK39Kin5mS7a9jMPzk3+id8WdgAAuTCuQQb5V3YsKw
+/52JxwCEOFjYmHFyVfWsuPW9qGpPHSXyPJyp/JjfY9vKAoT+3DXWI3oPmpzUV0Y8
+6y3TChidBwyqnpLvKeZkzO5V9nQ3TbqaGrEaS8hLZykLxn94g/P+siXEkz7wqlfr
+PkpbuYFltKpMCUxUY7JtokHvHXQLWpXkPk6px8RiCc3Yb7llRBmIC6vCUqrR8dDu
+58DsuM/fLwP5vaDW1sjhy20+jrUFloiqjgkRC3ekm1LdsLO52bIlk1s6O8MDSx+2
+w3ahodOWy0qErkX63it0xaLB2Rfv3WUVJgV88k9qnDJ96mqRHeyvkdS4QF/YU1Jj
++WoZxWX7/Mm+wj7euY2mk9SgK4jj3OrG6tYEQj5nsR4DuTqhCHulaBvx2QIDAQAB
+o4IBGTCCARUwEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAQYwgZkG
+A1UdHwSBkTCBjjBBoD+gPYY7aHR0cDovL3d3dy5wYXNhcG9hcnRlLm1haS5nb3Yu
+cm8vY3NjYS9jZXJ0aWZpY2F0ZS9jYWNybC5jcmwwSaBHoEWkQzBBMQswCQYDVQQG
+EwJybzEMMAoGA1UECgwDREdQMRUwEwYDVQQDDAxDU0NBIFJvbWFuaWExDTALBgNV
+BAMMBENSTDEwKwYDVR0QBCQwIoAPMjAxNzA1MjUxMDM1MTVagQ8yMDIxMDIyMzA1
+MDUxNVowEwYDVR0jBAwwCoAITTCjKkZC4Q4wEQYDVR0OBAoECE0woypGQuEOMA0G
+CSqGSIb3DQEBCwUAA4ICAQCTv3msrXiiflo77SDzryg5ea2Gk9/ee5V8r0r3K0q4
+imWW92Mnaou4gsHN0a0QpjpR9GeYh52atCZaYRSPsMU3yxqtmOvhrR5vK33WUcRh
+/1BpbhOxwE/ugZ+YeD2ekSyPwRPQtoKXZnQKKblifTrYLq7cgRmF2cda1tPMXv63
+zt01W0u0c2Mi7ELgVVQ4g5m2tbYzNwCZlxt6xYzlexnBiiL142AWbpzbqcN/ptHv
+C2bJQh7ciPL/u1+mw47P4bkdXP6q4gE8O6gu5OOR7aMYj+ezoCZRMjVZ6tP5rzos
+N9Y6d23gM2BMwkco2UTmhOXqYiYTQq0RBHRs76mC7liHuZRyDkrkeRVoW/Dt7LeZ
+eT71S/WrFWU0LGqiIoMLQxUoZ0AGsyJ6SCEAFnsWZyxq9i1U4+urjJ45qVY33D1C
+nepXPxiGfYOysU3DrwOtVu5j3jmtFOZBtdXQuRLOukQTocIWZfmRWC1rAZE4pDSj
+UZBcxaQSyt2VBMTf9VooiIcoZK53jrGPs5ezCABTDGIKhGtQRLV5r49FGLD8D3xJ
+1ymCMzw80OgVSAgClmfzrTpjSYTrku23CylJrG3t/INWt7I5+ZU67kXs6RwvQWs4
+VslCKFqT29/mnCG0RVCDfnTmkmgDyT4EzuWps9IBxwClzZcAJTsszSebSjq0oJS2
+Ng==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIF/jCCA+agAwIBAgIBATANBgkqhkiG9w0BAQsFADB3MQswCQYDVQQGEwJNRTET
+MBEGA1UEChMKTW9udGVuZWdybzE3MDUGA1UECxMuTWluaXN0cnkgb2YgSW50ZXJp
+b3IgYW5kIFB1YmxpYyBBZG1pbmlzdHJhdGlvbjEaMBgGA1UEAxMRY3NjYS1tb250
+ZW5lZ3JvLTEwHhcNMDgwMTAxMDAwMDAwWhcNMjMwMzMxMjM1OTU5WjB3MQswCQYD
+VQQGEwJNRTETMBEGA1UEChMKTW9udGVuZWdybzE3MDUGA1UECxMuTWluaXN0cnkg
+b2YgSW50ZXJpb3IgYW5kIFB1YmxpYyBBZG1pbmlzdHJhdGlvbjEaMBgGA1UEAxMR
+Y3NjYS1tb250ZW5lZ3JvLTEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC
+AQDPkcr2bM6mck14583qZL4VgPAnQHP5mRzfhiRkef8QrRhJJuguCMeKELOnmExZ
+MSyG9MQ2BuzLZqpXRfqQNbtgkbX1nebOnbcGO5glpvniT5Ni9BELgsiAwUQGb7li
+cPBwf6nh8gWIY7Q+3oxbohFltFxrjcjksoFBm1ZmQ38Jwe6CF5oyf/IyFd5UXozX
+5h83iU+XOhKu4jfxg54xChS6RE0TwB+XHFzKuToLp3wcyB2QB2pNZ3teuEVTdcUC
+2AqKSwC8NRVT33kaIkPjl+d5F4KmoRPbTgAyBCPLUAbBISC8I4HYVcdoCsEu2gak
+/eFTjOeAD+0oD3nOYA14TFBXvwg/ZQmB2tv9nPQMyooKVboYxL4cfgm1pOx58Lfj
+LQBICgSdknVvtXSb56AUQbUPx0Ejz/So4w4USPuORoGM6tOYxjNEXgMqTTGsuVeA
+rGF21VilNYL/zZrnZi8J9rQuCeP56350KNDeb0lLGrAvkjHWoFIleZmSGWIn8Scy
+1VoVOOdxloqGBZtxYixNDB7h/2B6P21ACcAZgX4K04BkHbd4zk3dFolmxv1o26nR
+2mmzy9NC9fzbE3AK8+giU8sr0x9MtkbsL/8WSArS/hkys5JTQVwIgIZw8CMR34L8
+l0aV0WQ7E8ZeqoqyNJ7SqwNYCgChvir9Wh+3DX8nIBB+TwIDAOLxo4GUMIGRMA4G
+A1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/AgEAMCsGA1UdEAQkMCKADzIw
+MDgwMTAxMDAwMDAwWoEPMjAxMjEyMzEyMzU5NTlaMB0GA1UdDgQWBBS5VLh/Rowa
+hb1FW4aUHu53+oARQjAfBgNVHSMEGDAWgBS5VLh/Rowahb1FW4aUHu53+oARQjAN
+BgkqhkiG9w0BAQsFAAOCAgEArZai1N0sPE6xt/IQmJloFKZeve6HzhEeU2R8dn3a
+jIGqRSeo8Lksrx6aLDZPT0kLYEZwjYIAhSBhr6/Tjw8JXVKvDhaPDmtT73D9eY/c
+dIGvRoU//qyp24U3ddlliqjSxdLxibBw487P3Zi0SDZPRXpA7s3jdnfrLvweyGmQ
+rob6mp4NSL/0ayxidCjTGxNdiD70ECqMvw8f2IsE21jK430BvSLLyA7yMaj19taA
+yBkVjrugpzG+mnIPmBubg5Mwg9QBnXgAAfRFUY0c4iMSNsCQUTB/eLDFtVqSEITA
+wH7ikeZQK0YD5xSB+EAfFb8//FBQ9aHTIAODa1JZ63ujznENo6BLlQd26Vn1cSEn
+ecbyacITrTX99b9gQ7oifwCl/mKC8HkUjGxXlK2+P5WfJT88Fkam1YIR6vsInE5H
+nLcylJTEsGHZW6GL1katvfqTYU9EH+8VIS/yeHnnzvatHZZ3KKImsMUmdHQHzS/X
+ENdAqUrGSTV7gS9PrIm5BKYiO2nP2poKiwBkz/GdBQdh94+S4ItgT2iYhETEc9Cv
+znX1FbD7aeHVjp0JOb9NLU8M8eKQj8ph7u8vfw23BjdFNPFsUum/TFYSIWH69fZ4
+r/158/OQPS5W0gUVZSd0jXWsoIXOss3QtjtTiaJJEFAurySupqUqwwzFe45JbQx3
+9hI=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+24YnLM+7w0NVPvwClrpt
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+VqR83C6ypq/Vh+NSvQUj
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGCzCCA/OgAwIBAgIIQ05EU0NBAAUwDQYJKoZIhvcNAQEFBQAwgaExCzAJBgNV
+BAYTAkNOMRswGQYDVQQKDBJDaGluZXNlIEdvdmVybm1lbnQxJDAiBgNVBAsMG01p
+bmlzdHJ5IG9mIEZvcmVpZ24gQWZmYWlyczEaMBgGA1UECwwRQ2hpbmEgUGFzc3Bv
+cnQgQ0ExMzAxBgNVBAMMKkNoaW5hIFBhc3Nwb3J0IENvdW50cnkgU2lnbmluZyBD
+ZXJ0aWZpY2F0ZTAeFw0xNTAzMjcxNjAwMDBaFw0zMDA3MjcxNjAwMDBaMIGhMQsw
+CQYDVQQGEwJDTjEbMBkGA1UECgwSQ2hpbmVzZSBHb3Zlcm5tZW50MSQwIgYDVQQL
+DBtNaW5pc3RyeSBvZiBGb3JlaWduIEFmZmFpcnMxGjAYBgNVBAsMEUNoaW5hIFBh
+c3Nwb3J0IENBMTMwMQYDVQQDDCpDaGluYSBQYXNzcG9ydCBDb3VudHJ5IFNpZ25p
+bmcgQ2VydGlmaWNhdGUwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCw
+ErEcqBe7UgPCqEtPlbVeIu82rVPNM2ULMrKxMpYyS639SJmqJ4y2FfM9zKHnbClC
+61V90MKRpGf1yiKrzYw21EYPvrTRsM9/LREupd5CEtoHnDM3qtcqu4Z+/nViYwTK
++bRba8ZC5Grbe+wF6rQgUODcYklvO2QL1eRnGOH8Ee/dqJPlidWGKCPUWItHZFmC
+8tv89cRd7B33eL7LQQ9OFohFqEmEU7mveE1Hx2LYgC/+zvKweGvc5l4MaJ4Ru2jo
+7/Fp3/puwFdc2xR/X/531Qhc1Afboag5rq0QDwO2ODeoxQ6ipwD9olKEHQcUsisR
+MHuMpOGeq7l1QL113vUmUhgSzAT3R1sCI4/yMya9yf8XxfsboIR8jL5BIqq8eBe2
+UwMvgWZH7KSRddkDIdNK3DHxduVc4jFJtMXwpvzW4s50zO/cFK3i2prD7/lpVa8E
+y6/le5OAss9AD7dNgVoGHTTBxG4K7htzp9XU9y+VwK8eqBIkIQw6P7ovvXfYPAQG
+ZL4n9M9KxhCqB4Jjd4Ix45OFwBj8gNd73BXifekooU+aUhqyaQmMAkEW2ekDLHiU
+EvT9v4eCwcE2vIXcgfFqtQZjS18Q9aC1I69zFaYe3p9fGpGyeXgwWzYVtD4Ts+dv
+TLHm0SYTlAkMI01vL1tOcxvKKVmya2JEpOPUd72h7wIDAQABo0UwQzASBgNVHRMB
+Af8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIABjAdBgNVHQ4EFgQUSmc5ih0BIsU9
+QFenYUk0X8PnAjQwDQYJKoZIhvcNAQEFBQADggIBAJ+ufz3nwS6ofAchYUTXd+wD
+m4lixiX0pgWDM9NpcDFlxm+HNLCOIPSRpxKmfpWIE76PozVqLdlNNHDjrhJeSG2N
+Ec7EXq1na2HUcm2BGljS/jgesJeZj/yjfnckl+1EswwvYx+KARo2aq4u/TX1vs05
+MmyH3B8/c0z00DN5PCEebKobV5bRm6Ii53h5JsBVJioAFVaQvJxs9WhRPZ4VE8Fq
+oI7qV5HxfJiRcgRh9Icp5AIeYa9GePfFjh7GAKCO9ybQDcM+lUai4qnU49UUKwJv
+SgeV0UyZG15OMb7oI7IUwbIOLxkAvLNlcf6s/hFgrHj+K6GwnMqiP7kS0Zr62DXN
+w9qF/+d4i7TxKdCy3+ppx6ERpGTzSfT5QR0gZF4NKTVPZ16tjHxAtiFjg7M+CZxf
+EAHCJENkIeAgTw7YORw4Lhf8NICK1+EyHCr5FdhGQoXWl51CmFjq+Hec4hCqGAlR
+BE76Ovka5E6Q8WWDCN5W9a8z0dha9LeGLlJgPaNAPS8YIxXNFTkqUMtX7s/+Caag
+7BVaMFomUTSNRLv0cTRKAAwVmboijFCfxzzjZd4bPIlQN/nDrJLkCE8v/zEtGFUC
+sEWzbeOjFyviQJpNza3qYY3EUGV2pxcid6RcsxYV2G+gDUkc5pKpOUKHXXJlXfpw
+bMto8MhsiXWWXOyZOWIe
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGCzCCA/OgAwIBAgIIVf3fb7nGNpowDQYJKoZIhvcNAQELBQAwgaExCzAJBgNV
+BAYTAkNOMRswGQYDVQQKDBJDaGluZXNlIEdvdmVybm1lbnQxJDAiBgNVBAsMG01p
+bmlzdHJ5IG9mIEZvcmVpZ24gQWZmYWlyczEaMBgGA1UECwwRQ2hpbmEgUGFzc3Bv
+cnQgQ0ExMzAxBgNVBAMMKkNoaW5hIFBhc3Nwb3J0IENvdW50cnkgU2lnbmluZyBD
+ZXJ0aWZpY2F0ZTAeFw0xNTA0MDkwMTQzMjZaFw0yOTA0MDUwMTQzMjZaMIGhMQsw
+CQYDVQQGEwJDTjEbMBkGA1UECgwSQ2hpbmVzZSBHb3Zlcm5tZW50MSQwIgYDVQQL
+DBtNaW5pc3RyeSBvZiBGb3JlaWduIEFmZmFpcnMxGjAYBgNVBAsMEUNoaW5hIFBh
+c3Nwb3J0IENBMTMwMQYDVQQDDCpDaGluYSBQYXNzcG9ydCBDb3VudHJ5IFNpZ25p
+bmcgQ2VydGlmaWNhdGUwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCR
+783TYrfp5XdO1yrrPgEuulVnUPdCBDBlKhKiLCMHSv04YH6b0yPoVIombGPy89AA
+ejDWWR5e64m5aONBk1+KzzYJ88+s/3y27N5An3g/3vaKpDhmqpB43AXR2+qOJu/8
+/2kZtcVhLu/fgj2SHYZNr2c40Jz/JfQrpMoLOAWZ0kv7ohjWpBfIikU3FjQw8zwU
+BKxvqbWSxra0+ks6NraOpkuilYumyAEqTiaNTSTNucVtyZnkXh6Wii3ouaixsj3h
+D3sZjzTgbCGyp4xhoLab7bTBgtMlGzt0vezBUsqB/f2NvJwopnMQTak0Tqd0UEwU
+LzMpKF1JAqYJKT4O5lxlodDoaYUTxtGAJS+86ivYkPNxobfaTEOmo0raa5kAy0xP
+iscyQlJ/hcjM3znO1F292hpFvDVobraU5tBSwv0sXEVI6OLI8PbmSEym00dDlDHO
+J8rA0ONyIguX7QNsl8lyR7EsaQ9yXNAs32ajdb+4IzTXn1C2ciKmgS1nb/J4V6Vp
+nZnita0o08NQM0eDbNNf5C8Moj5iA9Nq7i9T8BRM8eP1cttEOITsYxDGTA77fXBR
++ULVXC8Zgbo6x8UFWIgYzK6qruVg4MawDoPdV/eqSQaVMz5o6qEoq60OF8Qon9XZ
+MrTmY+NnKu9oBJ4DjVU/nVLzEnANO06Nkth4shrRGwIDAQABo0UwQzASBgNVHRMB
+Af8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUa2Im5FOU+Pr8
+demnh93q6M22T5MwDQYJKoZIhvcNAQELBQADggIBAHjP2YEB4CyDuc0y8XMrJ2qo
+8G6EinFwUZFrdFErSL1Tnt2FWgGRbtxt5hwh8DVecREXG9ZOIqQr+/vTjYu0xJdC
+6fO26l08Ql+qGyGkdGVm+ccCNuE+3qdiUysuFbPB7lIyl2DyC1PZz4lcMN0QS/Js
+PfCT0mMP6NlguwemgaCJzfgD9QXkyGPUHHYsoNMDPQdcllYNw5moTTQ9ujmMZ5wN
+bwhzi+sJm1kz9xp7jHqjGQ7PHSXFWpBgzJ0Nnz7c2W2dwAqOve4StaJrgjgMGJGd
+2F0fWe/wQ8tm07a1rAeA1lmPeUnkIOTFRABVEkp3e5z1nErPbVxOH13pwLB+EkGt
+bfi+tKCd5FYipdd3suAliVoRjlgHxx2JxBZZJwSFJ1fWp1d3jK5am64+cdtV4055
+Kx3KAOG6ITQEjszckGC1oi0umifWWqGsHBMrqXKt5LFD+HR/mQWELyCMYln93UhJ
+Kv+KA0Fn2aoUCf0iQD0WMTiubc+YjBeHv7iJA5Hjexd8nlzQZcxOtSV/+UrCHhM1
+328TyAmkm3feg1dHIHpDmPue/8FWGTEaP/+g8Orhj0gi1KGkC58bQcBDyyptgmeO
+v6IQ2JcbcgJckmD7m/cJXsCI6RXVs9wZug45P+oIH3FBipa8IorAfvUjwNxkL5Pm
+dHrA7XNQ7Wzm6adSbQis
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGCzCCA/OgAwIBAgIIcG4svCQ2sfowDQYJKoZIhvcNAQELBQAwgaExCzAJBgNV
+BAYTAkNOMRswGQYDVQQKDBJDaGluZXNlIEdvdmVybm1lbnQxJDAiBgNVBAsMG01p
+bmlzdHJ5IG9mIEZvcmVpZ24gQWZmYWlyczEaMBgGA1UECwwRQ2hpbmEgUGFzc3Bv
+cnQgQ0ExMzAxBgNVBAMMKkNoaW5hIFBhc3Nwb3J0IENvdW50cnkgU2lnbmluZyBD
+ZXJ0aWZpY2F0ZTAeFw0xMjAyMjExNzE0MTVaFw0yNjAyMTcxNzE0MTVaMIGhMQsw
+CQYDVQQGEwJDTjEbMBkGA1UECgwSQ2hpbmVzZSBHb3Zlcm5tZW50MSQwIgYDVQQL
+DBtNaW5pc3RyeSBvZiBGb3JlaWduIEFmZmFpcnMxGjAYBgNVBAsMEUNoaW5hIFBh
+c3Nwb3J0IENBMTMwMQYDVQQDDCpDaGluYSBQYXNzcG9ydCBDb3VudHJ5IFNpZ25p
+bmcgQ2VydGlmaWNhdGUwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCa
+MPY8gllarFneLwPaKskp9Z6wSE31ZS0VH899Hm1Jg/ecdivqRCNupLuK2PTtuSUP
+t3dECfUKvKmi4pV0TMrVUBGtpdWbIutZTkn/cHbyg+V9MgZYOhxnNa91G5YaxPJl
+hCcqp40JPaRwUMc/v+kt1KnVF8S6ZAQMKjuMzxKsdt9KMVuBwrf7c5daVLGM31N4
+MA89XlUzJKcZja4Yu88aH+qwUgf6V5DBv2eDDLm+R+ptEMzTI1pI6ueTuAMUDiGg
+3+tALTa6DNrXdZUkQqYUgnQkgXgFB1bIwD1bTNfMF/stCaLQTMigSkOm19uLg7H/
+hCNPLei3CEE4tAoyfi51cq2xvHFx3N0kaqS0oWrwtYO29IJWzTf101EeyqtCTsaU
++oIqeF012mWT17hUX2LibOXgb6G3Po1q1ZFjyQ9lbNKkliVLQUyy6H7Do8QRUOzo
+WozOxJHA/W6noB2RQmj2+dKn4B5XcOf+ld+zf0IwqBedl7mAja4xWYFZFX/o5lKD
+tdEZwAvn2YWF0LcnpkkM7IKAoxCKct0DGUi1UP0EM6vVLmnuFmMC3yPFRMdJ6gaS
+BCiD9b0HgX+S6Xl8lGEMYuGFTkZnx8TVulEFbKMeDVbbZldkDvlVZrjzBZkKJDo8
+zAWDA2ZMCs04OT304qAEztdtVPtd2htdUwSOe2g0BQIDAQABo0UwQzASBgNVHRMB
+Af8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU7kOvj17OElGi
+NdFGjJyJONBWMBEwDQYJKoZIhvcNAQELBQADggIBAFMgi6PBEAhjhm65m5Gq26gC
+cK+T+dUXNjDDzihOAzgK+/e55xhpbwsRgkEtjR/LbCd3SbUAOjsUpnOcqoOI7o6q
+DTyfyvZTAMqlPw8FgsprVzqSHen58QxFzMizeP4eN6k82hI+vh3BpQg+ArNNUBrp
+9RSsk3Kgv5+PtiJf9V0s8VcfMmqR9M6OHa7wxJoHKZ+nqiD2igR/OAh2gWkesRlh
+9WtfupJrZ+Plamqa75bHTodhFbXLzT7GMSCLckhzKc4nfUvSWVTHulyrQwlcoKnk
+XY4GpCVHJcUypiqdaCtNSBSj1rElcgcx548Q6r3MfEYWvwZeRSXkf1XmsAlhmlcV
+3bd0S41B7Vq0wrCuA6Hy759ruo061/69TcclEdBgBjUTDnflE5hs4yV5cb7zcy6R
+x71PrR/xYumg37Ya0uxely7rAOvEO9n2+2FBwACbZkfB/jx1YMjcz+MyezKNnPjK
+kCYnuGu9E9WBsP0+rHPLmgS38Wz96UZKDKhMwBk9KDhW1XRqONZfcffeRu5w2cfn
+H7xl3h0PoswEwFBYMtZKvJ3Dho/nAK9HnG2URJJ+2RBIoebDav98XFbNXOGJcThF
+wo0zgsdBT7pAFpUJFN+Ci9YUhkCT14fM/YBR9HKZuE7/miFCcBhyd+rflBwDoikb
+DUX/NxlREAfR3YLmkCQL
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGEDCCA/igAwIBAgIIGqo+ZY/ckiIwDQYJKoZIhvcNAQEFBQAwgYgxJTAjBgNV
+BAMMHEVDTiBEb2N1bWVudG9zIGRlIFZpYWdlbSAwMDMxHTAbBgNVBAsMFElDQU8g
+TVJURCBQS0kgLSBDU0NBMTMwMQYDVQQKDCpSZXB1YmxpY2EgUG9ydHVndWVzYSAt
+IFBvcnR1Z3Vlc2UgUmVwdWJsaWMxCzAJBgNVBAYTAlBUMB4XDTE1MTEwNTEwNDgw
+OFoXDTI0MDUwMTEwNTgwOFowgYgxJTAjBgNVBAMMHEVDTiBEb2N1bWVudG9zIGRl
+IFZpYWdlbSAwMDMxHTAbBgNVBAsMFElDQU8gTVJURCBQS0kgLSBDU0NBMTMwMQYD
+VQQKDCpSZXB1YmxpY2EgUG9ydHVndWVzYSAtIFBvcnR1Z3Vlc2UgUmVwdWJsaWMx
+CzAJBgNVBAYTAlBUMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAsNSi
+sB8N8FbtbgzBK/G5nV+zHw3qj1IV3wb9HgLR5f/TfqlO/O0Mw3r2RuKkLHTYFt+X
+v/i52Y2oXYJrT0hWGe8AaQg6m0NzhxDs76tH7hUbB/e5Uet/vG0wkKxtuntoeT75
+fJ5A3gMEkoHsHWt54TQwbuvi9qxzcDm3idA57E9LQbqyDXH4ieHoIz1pkRDW52xB
+LgS3Du0K2cUP+137nPuNxHsrtQylIM5f4C6FyWzHjWtUyJf61pa3Tt1ogZr3s+LI
+m/6BkjASCMeBtI1IcXXmVxuILoE8SD4cTZSP5W47gaWczOa4UrPOebCux3K4ijMG
+FpI3xGS2PkFLajitaBM8eM1KazyZ6WfQecgFoM/ywEbMkQ5lKW6uIyoTC5Y9IyEA
+IvcfEHgWZEDZMgjEmwx/PK6IJGVOilLNaNYbTJTgueurU+L18UJPZ2SvBRlGXRZR
+XJMEK2t00CwzWo9nuDR7or8A6PaKO2qHGXw6B6kBBMezXIu2S0c6ixm1BF3U8GJK
+acOB7MsjtRpNrJeTVAOQT2Y9ALlvSyJNSfoTqwbz/qSfSzUaZyhuznfSXuSg5QEE
+Mv8XvsmQNe17nDl153IAhnynHTuyLpYWBXS1scYEaFMxFyFjOQiQg+B5zSenAzFt
+JyKgUMwm4VqUO8lzsBMtQk8GTzWs5dhPMDl1aLMCAwEAAaN8MHowDwYDVR0TAQH/
+BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFKDBYH3X9UWIDqlW/vCh
+0y6gNyRwMB8GA1UdIwQYMBaAFKDBYH3X9UWIDqlW/vCh0y6gNyRwMBcGA1UdIAQQ
+MA4wDAYKYIRsAQEBAwEBATANBgkqhkiG9w0BAQUFAAOCAgEArmCVCyjcw7Nufsa/
+YsWdWzcLGK0M95DNbTlKUeiV1HB5dK1v/L85NJGTCnhdAnxWWvILSXXaQdrD8APo
+Cc8vHWPRMvCMMdeCeelQZ7MaN+CTt4St/bQTZ+QJ+urR27Wn60IufByglAfyl9+d
+Cs0EYTPY6UmQaP9oPRpc7mqki0Jolq3EnObCpzwVwsppo6chjgt3ZlJq4oBJVvk7
+bF65SfoLWvCw9M5aSSKe89TcxOyl6Oy9/ZWzzzth+gUfYDmF6bGd8rpfvA6YZ+wE
+v3Gh66okk0KrD+6kmbZQRqvdSTkbUxGr+W8tWpMrRwvw1B3aSVYbOlMRwldnmNWj
+WCMev/pixBaVPQcNcAU0xfHAhD/+w+dCrMDsWj1KPCkbfmXjvMjhnwMwWL7qScJo
+xnaqsrBaePOaawfT/SwvjhND/BODvOxHaY+Mk3jGN0/0FPPHFgr1mW5roHbU46XA
+PpRxAZvJHRZNGVWLed8Q+TjNPVm6FtG5tatFmPwyZQ6yvSlMiQ4tpkPcMjgt8JDH
+E07JfJTdl+mliRe9fAuKDSW7muJ7hgkCse7G6nLuhWl34lBd7L4bRyBuo+2z3nyK
+d5/oPB5V1GZTHj2DeB5JtrK7jXmAwOMOF0juIbEbSPNaGH7GecFyoGMTNX4s5TJC
+jCeIuz2z952LJeBPGKTTUP+L/rs=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGEjCCBEagAwIBAgICASswQQYJKoZIhvcNAQEKMDSgDzANBglghkgBZQMEAgEF
+AKEcMBoGCSqGSIb3DQEBCDANBglghkgBZQMEAgEFAKIDAgEgMEYxCzAJBgNVBAYT
+AktSMRMwEQYDVQQKDApHb3Zlcm5tZW50MQ0wCwYDVQQLDARNT0ZBMRMwEQYDVQQD
+DApDU0NBLUtPUkVBMB4XDTIwMDMxOTAyMTcyOVoXDTM1MDYxOTE0NTk1OVowRjEL
+MAkGA1UEBhMCS1IxEzARBgNVBAoMCkdvdmVybm1lbnQxDTALBgNVBAsMBE1PRkEx
+EzARBgNVBAMMCkNTQ0EtS09SRUEwggGgMA0GCSqGSIb3DQEBAQUAA4IBjQAwggGI
+AoIBgQC8yoTBKqq9wjcRk1N9vm3Z2egeyrzTIFRIffap7x3NoCH8quoCjs4P8TWn
+D5e0nygNtJf4/1TiGXfwJAFLBJ3uDh3/EwLd/MLsnel7acMgLi6JKFyMiHTwP1Yv
+FAFaBlKmt6ylhJNUWSFB3GEp51N9rbCRFkvx8/sRmYB6CNgLkXuDabDHpDXMzKuJ
+S71MelOUQ1AOKm+D8BfDZFBuPCiuXbB9rMaDoe7qbq19WRhF6ZNViSFuff7mmA/+
+md9TT1TcexdnPXND1E/QuUPQ3nTkdi2g+Md6vLN9vjKO+MDkLcaO+H0b5N+/dgH+
+z1pjmFtlZvXR3h9loUPMQ4punlY+Wsl8CYdrwWCLm327YTs/aH9Sp5u9OkQjYskW
+QQ+XZ0m9EpvkbbY4a681fxtInaIfUeYAqTsKTM6s7CWAzLXR4T+Z11O2YjeZKgVD
+fcZS4R+ZtB3QoA7/WepN/ACdcgRvpxKmnQ+VH5BtVGb6x4UlywEl0RSFoPc17wNW
+lY7ZZ4sCAQOjggGiMIIBnjBvBgNVHSMEaDBmgBRMMk8c+mUfBztxq8rMXF5/6KRk
+sKFKpEgwRjELMAkGA1UEBhMCS1IxEzARBgNVBAoMCkdvdmVybm1lbnQxDTALBgNV
+BAsMBE1PRkExEzARBgNVBAMMCkNTQ0EtS09SRUGCAgErMB0GA1UdDgQWBBRMMk8c
++mUfBztxq8rMXF5/6KRksDAOBgNVHQ8BAf8EBAMCAQYwKwYDVR0QBCQwIoAPMjAy
+MDAzMTkxMTE3MDBagQ8yMDI1MDMxOTIzNTkwMFowEgYDVR0TAQH/BAgwBgEB/wIB
+ADAyBgNVHREEKzApgRVwa2RvZmtvcmVhQG1vZmEuZ28ua3KkEDAOMQwwCgYDVQQH
+DANLT1IwMgYDVR0SBCswKYEVcGtkb2Zrb3JlYUBtb2ZhLmdvLmtypBAwDjEMMAoG
+A1UEBwwDS09SMEQGA1UdHwQ9MDswOaA3oDWGM2h0dHA6Ly9wa2kucGFzc3BvcnQu
+Z28ua3IvdXJsL2NzY2Eta29yZWEtNGMzMjRmLmNybDANBgdngQgBAQYBBAIFADBB
+BgkqhkiG9w0BAQowNKAPMA0GCWCGSAFlAwQCAQUAoRwwGgYJKoZIhvcNAQEIMA0G
+CWCGSAFlAwQCAQUAogMCASADggGBAAPTdHi+QrcNBmES87UheVft9V3NJhg7w03I
+yZivjfSfKGm/WvS7wN3/B4Hm/n5wBhUHxmoeO2CbmSjCjJA8yZ9WSG7M2J8KReK6
+POGjzv3KqwAwbz9g7NgbpIKt9CS+XPiTiEPtNdMyN9AtLpDaunC4DHFW0/gIxmR5
+M2ffml+ZtrAeqp05Ws5TG8AGGRPvKzmV5GuRYKvBG2wM8Titp8ospcEFhRp9Nl9i
+LcLieoK67PZbDyBScM4b+cAW+koFsEOye0fPCfqZ9sSpLvP3eZwpQAauroN7Yu8o
+T+Zr1utK7DhEXEJrYu3wJtvyj27fPVA1+Rb3QCN5KPcTjmlysJukQ19PqpewV3yW
+LscoGKVRtg9RP8Vgn2sLZAISD/58bAZh/GNg8x5Y3hU2F5JwvQYBpiY2O6yc+FZH
+8zWqFQ1tL6BMDAh41KbzWp/2Pgk+Y1p3007aZuiu8M3HXJ+Bh54La6nR8u7Q6bOo
+Sej9cQA1k70HTEzj31bV18FWtpJoog==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+/YbQTHFxryK2rr0akPfzP9dW0avqxBe2pQaPdA==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGLjCCA+agAwIBAgIBDDA9BgkqhkiG9w0BAQowMKANMAsGCWCGSAFlAwQCAaEa
+MBgGCSqGSIb3DQEBCDALBglghkgBZQMEAgGiAwIBIDCBhzE7MDkGA1UEAxMyQ2hp
+bmEgUGFzc3BvcnQgQ291bnRyeSBTaWduaW5nIENlcnRpZmljYXRlIChNYWNhbykx
+EjAQBgNVBAoTCU1hY2FvIFNBUjEnMCUGA1UECxMeSWRlbnRpZmljYXRpb24gU2Vy
+dmljZXMgQnVyZWF1MQswCQYDVQQGEwJDTjAeFw0wOTAxMTIxNjAwMDFaFw0yOTAx
+MTIxNjAwMDFaMIGHMTswOQYDVQQDEzJDaGluYSBQYXNzcG9ydCBDb3VudHJ5IFNp
+Z25pbmcgQ2VydGlmaWNhdGUgKE1hY2FvKTESMBAGA1UEChMJTWFjYW8gU0FSMScw
+JQYDVQQLEx5JZGVudGlmaWNhdGlvbiBTZXJ2aWNlcyBCdXJlYXUxCzAJBgNVBAYT
+AkNOMIICIDANBgkqhkiG9w0BAQEFAAOCAg0AMIICCAKCAgEAiGZfE+LBBbhrOYPR
+CrFFRW+QLOm85P486V+dwuoVL7Sv7jGaVAfOW5OFQfkxjCV5d9xET1KTSpfKUj0n
+w431MR291It8miSCY/IGekamwsfJ7GMZU8KuAI296TPRhkEnWH3svUPmWbIefB2T
+gWXK0Yq0TtTtnopKNgkUdxaVcudbQQIJfQMljgrPWAp7CA2wNximJ/6U3D+MJFCI
+rHppbzk54C/inj9M5/QMZ3pwRbMtwmeTUToaKueY5HrcTXdSDCY1S6SKZYDvp5rc
+0tt9SI+DAI8PcwH5yInLUDKf+KvMb/PcLUJy47AGlg0RYUUa9/Z1STo6IqY9dR3q
+UIHq932fhsuaTH2JiPHcHeQmQyDco0xvBEpmBYMU/2Xowc2uXOX5R/56HzKU4ZvJ
+HeK9tNr8OFIhRKdvDmuwfaYqdQB1xvWwKv8F0tLVB1kbY/zCf5vUEmEjN9XA+ZOj
+c4Ic/QSvkbHNx1RQHX+5ZB7kWwQTwAIH4qiDPHMhItC0gR0fuKrngMTf2GjMn/tF
+bMu2gNnei81M99HOtTV30Cm+qAfGkH8tvLr6QH6JnrV40lfqRWWCWGy2yMJm4vDh
+b3K846nUXISlSG2YQPI8oSarU0twVfOj6oeLwZGm+wqfvwGhTl+nwnJsB1IBuG4w
+CKRtLsd+qv8ffFS6w70uw8pagBECAQOjRTBDMB0GA1UdDgQWBBSEQ1MZ3sS1I27q
+xnIOgsIlAFDWvjAOBgNVHQ8BAf8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB/wIBADA9
+BgkqhkiG9w0BAQowMKANMAsGCWCGSAFlAwQCAaEaMBgGCSqGSIb3DQEBCDALBglg
+hkgBZQMEAgGiAwIBIAOCAgEAO27lpZDiFEPzUDpTdoKxx5iUl7ZCIjp+56P6jo0S
+RnmTETDuKDseNiXk7SbW/1HqidOM28pBOICUZZ+alhXAdHB66oQiFnISFAggbj9Q
+y3j/RTk6IzHUTJihOYcVWG3IFrxgTY/+/R1T3rVEOWHdb+J4tI6z6UND2TXw5idq
+jYZHH1jKAiCPCyR/4s+xvOXCdFUfTajOPG4w6J1v5ShpiqZcxlaUnU1Q8p41HtiT
+wsgbX5HU6n+uUydjsY5C14efRLc5g+2eVG5eqdldhnQCyK1y9rLFX84SBWPzF4QE
+QAX3gTKjt2dKIqutDYYRbtBWKD1AJCjbcRYSylS/6qen7I9zD7VxAn2pxGuA49ri
+qXnHFtdyd6ifXgoy5TUctmLpBKqna4eSyNUx6l+kxC0990m7mY2jS17OFkpZqC+/
+bi6M4G1TeYfgXDHYwirrAUxKtsNTml9OsSDv+KYmF8tNR0OSTs1ROrL2dKyykv9r
+f80IpXPTgjbgDaoSItwWV/b1e1qeePnO/T7eprg1XoMdwjjCU1FT/toUQwqpdVJk
+Y4e2622WZJCgG2rqSbPfBVn3s1/EjLHR2xleOvMH4I92fNex86OgHucE3U5Qssnk
+A9jNfn+3SqiavAIcxvogsGa0bGqLVA2tK+dkUEfVHuaTBJCMRFpic7wanssQPTOZ
+DLQ=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGLjCCA+agAwIBAgIBMzA9BgkqhkiG9w0BAQowMKANMAsGCWCGSAFlAwQCAaEa
+MBgGCSqGSIb3DQEBCDALBglghkgBZQMEAgGiAwIBIDCBhzELMAkGA1UEBhMCQ04x
+EjAQBgNVBAoMCU1hY2FvIFNBUjEnMCUGA1UECwweSWRlbnRpZmljYXRpb24gU2Vy
+dmljZXMgQnVyZWF1MTswOQYDVQQDDDJDaGluYSBQYXNzcG9ydCBDb3VudHJ5IFNp
+Z25pbmcgQ2VydGlmaWNhdGUgKE1hY2FvKTAeFw0xMzA3MTAxNjAwMDFaFw0zMzA3
+MTAxNjAwMDFaMIGHMQswCQYDVQQGEwJDTjESMBAGA1UECgwJTWFjYW8gU0FSMScw
+JQYDVQQLDB5JZGVudGlmaWNhdGlvbiBTZXJ2aWNlcyBCdXJlYXUxOzA5BgNVBAMM
+MkNoaW5hIFBhc3Nwb3J0IENvdW50cnkgU2lnbmluZyBDZXJ0aWZpY2F0ZSAoTWFj
+YW8pMIICIDANBgkqhkiG9w0BAQEFAAOCAg0AMIICCAKCAgEAk36aawkcMmYilDNV
+N0fuiObdvnW6CnYeLvpuY9PDUMojs6rVrvSJgNX4znqFx3djaXoeunXfxSNUA+Ec
+AbJHUTOYxpzUiy7hLT8zPzeoEFtcXhdEBddQ18isujcf1MvSE55MvjOpQ+4OUey5
+cz8uayuarycxF6MVkFRlpYY0k8mRsUQZqzGysNrYNti5fr3T1QbMqvufAeKkYW3n
+Dx+0P0Ct+bmBEASnmpor5I9GFC8xocaTnhTXK+X1ruKq13d5IaMisEow6HBq0ym0
+liit+d74Ul6sHt8xz1AmQzYO3m8icqFS0yKbD5CXeAS0j1y8xVXqCtUQO8aTxlEU
+NhR4JJqUXTmGuRiF3JMFh8eGT3dAJKt8euwK2xRBNk+Ml8in7typTq+QOrF7Cnn3
+VzGVelw9YzrQR01/nBp/eiIT97ArpSNz1VjNaFNSFtHRQbon4FBwcZbLfJEGl6AL
+2iEUOq8G4xq2/kpUaGffzgMyibRujBmjvWv2LeqxKH/ROcKB3Z72sgUiEoxVPIzX
+c/RiV5NtngQoI77gRNfiSS3NLdSKopPbVpWKk3bWDeVusmCSy9n55sgQ5KpbhN7R
+a5fcmEeKKNYopv9oiwZln0aRmenT5omGY9DP2evkm8KjDmseZ0maMmOfhr0unr7B
+bsOqOsIFNKCnPRWJxljH1+GfJLUCAQOjRTBDMB0GA1UdDgQWBBRtckHLKyFzYmEZ
+TALTOesDxx1T3DAOBgNVHQ8BAf8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB/wIBADA9
+BgkqhkiG9w0BAQowMKANMAsGCWCGSAFlAwQCAaEaMBgGCSqGSIb3DQEBCDALBglg
+hkgBZQMEAgGiAwIBIAOCAgEAEH2OX7BVQfzVq5wRB69SB3DNuHf1shi3HzMS22oB
+px2xrDzxDIisyYrlIjwMXOdA4eK1wz1MUOaPm/P7OsJpGO0gam5WoiNYIatWTcX/
+ojg/ZsMm/83o1/lZKx8/oDS2SeMUIjuILawPynXwxjRAyUbLdlHo9sVbsssWEoI/
+r1eG0UjDvLTnbeFlt+f85fJGv8bM1VN7Wjx+2fDpo9Vpc8CB/A6c3p+r1Omg3/zJ
+teLuKE+R7cekDaAQ98TQQJ4QB4kvKDB3EK2hQMKCdCohEhRD3ozemOdJpxBajlEO
+6Y/UuItNRyC16+W2XzxzaCkOQbe6UBOVYPM0hQcK/CfQU9FInY6E4ULN1BDzYnbN
+eczSWvJbxdHUCEJixpCPdOdslbEM1wStTXxCZsUDJPSwVCYvWM7XcD5waJ5tr4S5
+6EAC/EIk5EkrbeEXQSwKubE+Vs6s3lg5KUXwUP42FWv7rkSOR78F88n9X6Dz2e3h
+Di2uGWn3kjgxChKVmvbdF9wG+sw4CjVfBwSbHomoTKj976Y1ddmrlcla9ar9BOLi
+7czP8+y0yuOFhzOC5wir897u8rTDneCIIB+qaS9AZBAffHxznP8CYBi7bXflkN+T
+3YVlUVPjJZy3v2864F1oUmfqb8Qkzc5Ac7419FdemeMyihSZbdPq4phmRrwXj3vb
+3TI=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGLjCCA+agAwIBAgIBNDA9BgkqhkiG9w0BAQowMKANMAsGCWCGSAFlAwQCAaEa
+MBgGCSqGSIb3DQEBCDALBglghkgBZQMEAgGiAwIBIDCBhzELMAkGA1UEBhMCQ04x
+EjAQBgNVBAoMCU1hY2FvIFNBUjEnMCUGA1UECwweSWRlbnRpZmljYXRpb24gU2Vy
+dmljZXMgQnVyZWF1MTswOQYDVQQDDDJDaGluYSBQYXNzcG9ydCBDb3VudHJ5IFNp
+Z25pbmcgQ2VydGlmaWNhdGUgKE1hY2FvKTAeFw0xMzA3MTAxNjAwMDFaFw0zMzA3
+MTAxNjAwMDFaMIGHMQswCQYDVQQGEwJDTjESMBAGA1UECgwJTWFjYW8gU0FSMScw
+JQYDVQQLDB5JZGVudGlmaWNhdGlvbiBTZXJ2aWNlcyBCdXJlYXUxOzA5BgNVBAMM
+MkNoaW5hIFBhc3Nwb3J0IENvdW50cnkgU2lnbmluZyBDZXJ0aWZpY2F0ZSAoTWFj
+YW8pMIICIDANBgkqhkiG9w0BAQEFAAOCAg0AMIICCAKCAgEAuf2AhjjYu/nvT3Pp
+0rRLUw3d/V/U5h+cZW/aYVookoMFKpP7fdg50FJj2LV4eEb8XZqOdU+Rwe87A2Bj
+SBU3z67S744x1qgV2M8uKgRY7LCOZjV6EU5ZhryB3XMhnlisXDWfnW0cRHDt031+
+7WUSbX1o+cknitVgV85O4btaYmo2Aop+a7OIFhMy1ol1/ZY8qa9SZBY/yYdI1Kb+
+pwFJ16auypVGBpqSZi9bgZ+1fUf1YZTSJYHCuPT/88SYsy5LKF9yo8p4pGy6BMIw
+zgvB9z5Pj72kvEab2XMALKH72zaWnTmaXeoXY0H1BLON1xwUb8f0nLgJpPhBRPtm
+JOH5tGAFSe4EpW4Qvtp6Y/C7IxNQ1aKJBhnJv6zm8g2/H255/bhK/D11zDotbWtb
+B9p7/JFcQIGbV+ayGOZfYFz2ZEsAH7PVBLYwbay/J5ILpE1PfAqsdFCVsUu1rTtI
+xMdPoMbkMavL5zD21Z4sQKWZ5zJinPgwxjHXcCNRaFwGz0yboU9BWyxIgHssG+Ug
+mJLqFKePEUdDUvF9DMFpx8vT2ZcSb1XkH0ollMxDfQAn8R0c1Q5GUoKagX6rUxr0
+777jw0DfgMOMKOZy9zHXPlgwKsEKxxLdBQe4Erqs21EKDr8n2CDsew0yCi5ex1bw
+moN1gZdfXMIq1cR7Bv1H2YyW/HkCAQOjRTBDMB0GA1UdDgQWBBTxUweQqrmQyL+M
+NpF+WAscr6lpuzAOBgNVHQ8BAf8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB/wIBADA9
+BgkqhkiG9w0BAQowMKANMAsGCWCGSAFlAwQCAaEaMBgGCSqGSIb3DQEBCDALBglg
+hkgBZQMEAgGiAwIBIAOCAgEAnH6fXLBNiJOV/rwYjILzEGQGil8oiGtErXfRnds9
+N4XmkIr4gCOki1GFxYxx6eHn+aJX7ph/WEUiXdcJhksAR9cD4c6ixmvS5c+2PAGP
+bS7MBEyrOHEPGjzRpeTaYqGB/5LsFeqaqK3COAdk96zFPOhZ3oYSyCwmWB26Qjyo
+onQt+DaA7sbk01fzbXM/9FtJgd99kAeoK9MiwxG/wm43vsKi+U/dWFpoSjbbjREh
+OPJeY7VSaQgmLmzC91bgRMokmq9UYUiJTmGSkgwb+VXDG5vLbNLIFfkRR5R25e1M
+4JCZ46RZRbrnFXLbhS1RRdU9I7FH5wVWwxh+W3Q9ZCDwTZ18VY4iDLgFB48nok/X
++KOuQmn5rwUQpZnhdDzjOkNGEPEAt5YGri7vmEjR5xKsg07eCl/KP24J7NJaOa/+
+numiDqCMGS8HNn0YrdiNfIO/tGVNYErflD0cOVNBKi1F4pblEierDTjScRuCP9Z0
+e2ODL6oEs1ND4m12Q4CDmg64scfyszSkxEVY5I6jFXd3wOoJtPQb5wH4zYilr6zs
+58cRDWZzndc9nfKZjsDxElauQPGiB4GNxbt3VuDfhZ9t+I/XF1BSnVu0/2t3ru3X
+f7y3mj0rI3C7cw9Z0gSaYuwgBK+8l84Hjm/ZWnr9aEMg0UNJAy77bcIeZSsk5dw8
+qs0=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGLzCCBBegAwIBAgIIXwkJZFFkRe8wDQYJKoZIhvcNAQELBQAwgYsxCzAJBgNV
+BAYTAk5HMQ4wDAYDVQQIDAVBYnVqYTEOMAwGA1UEBwwFQWJ1amExJDAiBgNVBAoM
+G05pZ2VyaWEgSW1taWdyYXRpb24gU2VydmljZTEdMBsGA1UECwwUTWluaXN0cnkg
+b2YgSW50ZXJpb3IxFzAVBgNVBAMMDkNvdW50cnkgU2lnbmVyMB4XDTE3MDUxNzEz
+MTkwOFoXDTI3MDUxODEzMTkwOFowgYsxCzAJBgNVBAYTAk5HMQ4wDAYDVQQIDAVB
+YnVqYTEOMAwGA1UEBwwFQWJ1amExJDAiBgNVBAoMG05pZ2VyaWEgSW1taWdyYXRp
+b24gU2VydmljZTEdMBsGA1UECwwUTWluaXN0cnkgb2YgSW50ZXJpb3IxFzAVBgNV
+BAMMDkNvdW50cnkgU2lnbmVyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKC
+AgEAzH+8uTMc759L4RVGiwlfYiu4Sila+TdwOIxnL2Pj2DoP7PWFIIEHWLU9A+1u
+56qdQcFlzLe9XP23p9S8cbFNLe3HPabRLqGr752/H1TOOfJWCdYAwz2ibiGVSjAE
+Ku+5a2rUefYX5YfsB8lf4Le5mleDVewSUkdYZtKD3iEmtuu2/4F3j3FMX0UnFXI7
+2Avo5GllqTMZTnSTF9Mh83eyokBSTqfwJfUDoeFGTK76xgGU32h1VUiJHIr9mETx
+f8XVcSMzdkBSrEHq1OwIeJOK2vsZNnLzgFLUkyMHY231RTNz7huKTydOZtM61PJH
+Az01qzEKUE2nHdxNJCmsqb7xf9L6T5CYBhjxah4IyTbkmD2EnEfXfjOKOrWqaByT
+LRHFsQbLjHAC5lwqAKvu4B3ChLeGcqFn1N2DIeEttNQ7p0hFgZtcrGwQUKynFjfs
+DRVqfIjKuprFqyKyteQwOeRM90KjJ9X/BvqksuRojdocjSXeWsZh5BoqVfAWLkQ8
+D3V8ku6g27EmhZsf6mFCiaN7NKfLHusohtmtFHoqS0SEYD8h9ImF2cQYNU5sI2sx
+MfCfEAoqZYpDduKiSpwsWPHJOVqE0GtGYuqf3Bf93ZyWKhquYeWbRuULyWAm+jVz
+WA7QUZSPKXRPPdAbAk7/jYux5eY2vs0P6umv1c/j52NAY+MCAwGlf6OBlDCBkTAd
+BgNVHQ4EFgQUrzz6c1ayJXvpsZ3zkHI3Jr58jfwwEgYDVR0TAQH/BAgwBgEB/wIB
+ADAfBgNVHSMEGDAWgBSvPPpzVrIle+mxnfOQcjcmvnyN/DArBgNVHRAEJDAigA8y
+MDE3MDUxNzEzMTkwOFqBDzIwMjAwNTE3MTMxOTA4WjAOBgNVHQ8BAf8EBAMCAQYw
+DQYJKoZIhvcNAQELBQADggIBAEYiFzLcrF0YW+gdDSKaCLy6y0DsF/BbbJxCaxQO
+GYtsjxLSc61MjCihcQGD+kmv/HX6YErVygloYg0LXWg2k6N7RZRAIG8umXuZhD8U
+huAIXz8L41xY1Vh9rfMu0WArRMM2FO72siCsx3NhgRwC28lfLhIybiVmhnFQNvBu
+Dpsh/LFB5iwevQxmWD3R7zUc1mGa1l96Rt++tHPcCOKD8qXvW8wrnoAaDsFAKED3
+OsK/l+AEuF3R377uUBR2mbNtNeWEk9S0eB4dqE69H1zM/q+oPTrw0qAlWqq7Bc0I
+20jHMO48Ge2U2wce3pch6hA4AuvqNMJ5Goviu8o8+LeS8szE50fVspV3JUgZIJpv
+CzeGa1745UZel98WyTVWPFEqzjGsRc951nZDNBjUe1PEdy/Y8vT9aAO9ZXmZTIix
+T4uPywu5xu7U+210PymqXdNIRS6gMD02/KiT2LYPsjPiD5RGNRQy177i4aOy4Nn8
+87ORZzWMYAKqoKt+D19bBd6ksbiwWv/4MvBPcgWbehGzzvoW8QrnXUsTMxKdJ+ty
+8suBET2hQbgtVo1RlpTHq76s3khkARxhVQujQpMIH55CbINrEIP+ycE5ulEVL85+
+XlGy3CfT8b1vlwSI8Grg2Oi9saIVJUhK5GpQdHco2iuroHRooA9H49jtpxE5AgYZ
+NcHc
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+qHIS
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+CDWw
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+OTfe
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGMDCCA+igAwIBAgIBATA9BgkqhkiG9w0BAQowMKANMAsGCWCGSAFlAwQCAaEa
+MBgGCSqGSIb3DQEBCDALBglghkgBZQMEAgGiAwIBIDCBiDE+MDwGA1UEAxM1SG9u
+ZyBLb25nIENoaW5hIENvdW50cnkgU2lnbmluZyBDZXJ0aWZpY2F0ZSBBdXRob3Jp
+dHkxGDAWBgNVBAoTD0hvbmcgS29uZyBDaGluYTEfMB0GA1UECxMWSW1taWdyYXRp
+b24gRGVwYXJ0bWVudDELMAkGA1UEBhMCQ04wHhcNMDYxMjA0MTYwMDAxWhcNMjIx
+MjA0MTYwMDAxWjCBiDE+MDwGA1UEAxM1SG9uZyBLb25nIENoaW5hIENvdW50cnkg
+U2lnbmluZyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkxGDAWBgNVBAoTD0hvbmcgS29u
+ZyBDaGluYTEfMB0GA1UECxMWSW1taWdyYXRpb24gRGVwYXJ0bWVudDELMAkGA1UE
+BhMCQ04wggIgMA0GCSqGSIb3DQEBAQUAA4ICDQAwggIIAoICAQCQXKBG8WK3H2t6
+j8+PtWdh6JbpqbS3Bv+BqZ7VngFoUX+iDJlIjAWPuhmUPBLGVQgIk5sGGjrbfixQ
+lqLqGK1p27ncsmsd3f1wtXyQlQJbkGzmw/vxb9fX5D3wSWAUggZfK6Eexz47DAls
+mrDuY/Cr882eVgrniAIiOXmWqRqV3WUTi0EU6jFNBOKteS0jtohy4c/p2A933w/V
+OrIJPse7uZSn232/sTsiRAPWoJiGEozJqakFR65K/OcobBcCcefGcV9vw60OKb9B
+ra8yd1IBoZDyK7DXfPIKst1ZI+RZJvVPAhNWG3PxXfztE5D71Ga3UjvPcI2VQ7th
+pilXMkn3PB74m9pPhwTXI5qB8r67xGvvMlCZKNV7hBSmAYNH1AvhgLSxHJp2D1wo
+Pgf3dShZdHlu6IO01sLTmE5rkhb5t5KuljgxKd+oATr6d5GTqCWH90EfvHZiowRv
+6BfjFKwevyJODrD9UctuC6vL1Kh6bF3ZuLUhWO2EpiRw9es9XPgHZ5CW2xGNb2u/
+x3gVed8vaSEukyjMktaZ7HwzKTJk5QquxmGZj+HiI/xzAGQUwvk/GaHQqFfBmOXi
+USSr9KnWy6bdojHLC0dESIcJYFqLQbldH9aJZszrwtexsrVHUotPNTsVgMYaxejr
+Uzxfcd49wBLcD0UiNnIcAyAtNtn8RwIBA6NFMEMwHQYDVR0OBBYEFDub7Wzic3cE
+wmom+bdM6XSw802sMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/AgEA
+MD0GCSqGSIb3DQEBCjAwoA0wCwYJYIZIAWUDBAIBoRowGAYJKoZIhvcNAQEIMAsG
+CWCGSAFlAwQCAaIDAgEgA4ICAQAOv7wU3MNJQv41vW16l9zkoT+Y2FomVJNcNLKw
+m45B/GPcYDA5B4NCDoqjzl8087oIatrchsTlVFdd59mWO/11YmeUFn4HbpnSQq5n
+bVgdKABfLJtjwGPxA22cA5+Q9rpZmziQ9PtgZkhF+oldQgQeht4NG72O2sfN2DLN
+SdqfFKx0dzYQJdqca1uDnk0fxQWakuezDXLEI96QDsoM7bFOkQr961yQCW4pZKLr
+XOqwXblmdO2FUS7470AnbVrFb8zNdxZc12x648D5oxNY70ZidoeOzgbdwbOWYhBt
+7SEU8KZfIJzxkhgMHqlkkBfIqc9aU3XiZ1MAGs5KJtUUoql1DN8v+VZCRknnOYhq
+7Vo/U6Ukzb0gPDSlcn1xvHYqwa/SPKT2uB1lHHT/Qz1rHCR3oRMAd3H5OTqVM82A
+duvM9dokzAeQYX25e7yU6S6XlBH06a+VHx1jLCoo8bMwlLbleW88Ye49GG7mWdSg
+O5AHCUeyr3893VchN+8E4syalN5arZiCiiTt/mqot8trHp2lhNjfT3vxSmytXtzr
+JNo3E8LVmHZMAYTvaNyY2Kl8DnQzQlKBTnWPWvjdp4BC18jwKEfJJoqfKpFUCJBh
+bZ8+tCznz9pYyvNMPxx8tQV0ELr3KJAOrjBEDd4TLZ+orqRxOZ4HqcXVTYo6zDAq
+K1JDmg==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGMDCCA+igAwIBAgIBKTA9BgkqhkiG9w0BAQowMKANMAsGCWCGSAFlAwQCAaEa
+MBgGCSqGSIb3DQEBCDALBglghkgBZQMEAgGiAwIBIDCBiDELMAkGA1UEBhMCQ04x
+GDAWBgNVBAoMD0hvbmcgS29uZyBDaGluYTEfMB0GA1UECwwWSW1taWdyYXRpb24g
+RGVwYXJ0bWVudDE+MDwGA1UEAww1SG9uZyBLb25nIENoaW5hIENvdW50cnkgU2ln
+bmluZyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcNMTEwNjEzMTYwMDAxWhcNMjcw
+NjEzMTYwMDAxWjCBiDELMAkGA1UEBhMCQ04xGDAWBgNVBAoMD0hvbmcgS29uZyBD
+aGluYTEfMB0GA1UECwwWSW1taWdyYXRpb24gRGVwYXJ0bWVudDE+MDwGA1UEAww1
+SG9uZyBLb25nIENoaW5hIENvdW50cnkgU2lnbmluZyBDZXJ0aWZpY2F0ZSBBdXRo
+b3JpdHkwggIgMA0GCSqGSIb3DQEBAQUAA4ICDQAwggIIAoICAQCgq+637INet9ru
+Quy970VFXuRF63ymLaQlLcpTWg7VBAtjdchOUX5q8DBmWzzJtxp6EsDlhFMAz6m3
+6/scHnxsmE7LZGJllnzvPmEmiZi41oWvBxVyHNah91itMMxMGWDurIlH66/1sqkz
+0iYVdZItIYktGXtlSt1wPRfUyvbPMRwrGHiF5eUt8vqhVMzw667q2xU0EuBDDv8c
+dJam6lE/2Y9a8nEhsL4lJVgvMJl0twLHDzFLlYzWMSNfqxvcdWmq+IT7dLScQJdj
+7r3QtBL2XGMxgCvY5fMcYJ+yQ1BhjdCLK36uh3EVevVgXCa7wDeG9gfBFDqBX6Ud
+R6C8DOln0dSeoG7kNTDd0iHannA0KiGztEPae12oP1wJQkE1kh/R6jBB2pXW0OF9
+df6h7zkw2vCgBGzKAgm2wDsAxOdo7v2y2rz+dRnBmBTFESNhDyArg8mIwbabfLnp
+pHfTQArtXw4JNgEum+nyyfLsw/4f4121rWCzOnpM+51GL2SNzLj0S3XTnX538WE9
+2EfGS8dY68I6cqEUxtyD8zfjSTxKCo5+j940yK5EHUpeKNJRXHE7t7pbm15xHdJS
+3QS0oaPf5WnMM+t6hiA0Ga7+k7rTwm66eZAgUMr7QdseLO/VuIY8n5XLUgSlC/nq
+0hV/1vPk6kIYS0EvZ8NakODbT/LBwwIBA6NFMEMwHQYDVR0OBBYEFKFLZlBtub35
+wHZ06mGKm1qI2KzfMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/AgEA
+MD0GCSqGSIb3DQEBCjAwoA0wCwYJYIZIAWUDBAIBoRowGAYJKoZIhvcNAQEIMAsG
+CWCGSAFlAwQCAaIDAgEgA4ICAQB63sCxn9yon6XPXjMyl0SiDiIQ6SL50/izARIi
+ggrPQeY47Sfq4wtEOD+HNy3C2tmF3m+s6FpQG3ZO3eKu5wrWss2Mc0pwTSKSdrdL
+c3zfPAgi6A+P+71+hy7axtaUYmlxcU6RT4NYT8H5H8xWZrRCv4gItWfrfyfHlmxA
+LETGF6E4zobVVzrlC8IHMrDvNWmcilgLLF6Fh8BTC1TFpBI5G4juFXxGB2f8CWSA
+H3nqZ0Aw2kkY4QvQ5guOKVnz0o5d9tgSQKlN6FaYLqVKWqgdd5739MHDe79sKTnN
+6ir3WmemK+lGGLgRwS+t61RqBaLsTMl7UOF+xypSkFZCo+WkmAek2XyFYv8R5dSB
+Z5ErBWRyty2aRmKBckFnTwgzTw6Yt0nqLtYLQePml2CO+NAhNMIT6ztBxmqlQ/LM
+fR3L8r0ke5AJNCWa0FuRsvkNtoxCzirxyEPiSQITuOMpWCqQOKTu3yAK1zCOvC58
+3IfeU2eNI/B30wF1EERZcsWKPybCsLKs3prf85l+W23o/zWSPIVTPd8TIKZnONs5
+zIlEq0sNB6AhmfJm+t3SVtPIwETTHPiFONpxmCViVNbh6+v0WRGLL6+MbYXHj5jU
+PQlHenD9lEvYlVA4VKpjOMo8MAiTB9mCe0cmswYr5XBzRPfd8avFq96g/oCmZs/i
+xS54jA==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGMDCCA+igAwIBAgIBLDA9BgkqhkiG9w0BAQowMKANMAsGCWCGSAFlAwQCAaEa
+MBgGCSqGSIb3DQEBCDALBglghkgBZQMEAgGiAwIBIDCBiDELMAkGA1UEBhMCQ04x
+GDAWBgNVBAoMD0hvbmcgS29uZyBDaGluYTEfMB0GA1UECwwWSW1taWdyYXRpb24g
+RGVwYXJ0bWVudDE+MDwGA1UEAww1SG9uZyBLb25nIENoaW5hIENvdW50cnkgU2ln
+bmluZyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcNMTYwNDIwMTYwMDAxWhcNMzIw
+NDIwMTYwMDAxWjCBiDELMAkGA1UEBhMCQ04xGDAWBgNVBAoMD0hvbmcgS29uZyBD
+aGluYTEfMB0GA1UECwwWSW1taWdyYXRpb24gRGVwYXJ0bWVudDE+MDwGA1UEAww1
+SG9uZyBLb25nIENoaW5hIENvdW50cnkgU2lnbmluZyBDZXJ0aWZpY2F0ZSBBdXRo
+b3JpdHkwggIgMA0GCSqGSIb3DQEBAQUAA4ICDQAwggIIAoICAQCcyOqxMTnwaYiO
+cq9ZZpAosoTtjGY1rEdY2LeY8DxnwdwD/44HpVTApjHjOp9KvtgNGI11Gv07ePHZ
+N4oiM6cZgZsrnkgzgiE+VoexooQ2f8pL2h9qZctBCmudsDC5QZO9ZoQQo3878lyX
+o8UqaITmjcF5pXpXThGjrvFd2ne1jpqQ1QYgNUmlPKi9r1tufLFkJusGn2EM/j2m
+SJp9+n9S5BTYhgnEzf/IlHJNAPqfADkfy2Tzsv6R4EkQj804qZQryvilppdWMj6E
+gz3+0pkONVSeAD6Vmwh6SoDLX7kGSRrNzSFJyERvCyku3rybR77/jGvteXQvBbPx
+V3dydzLLn+Fp/OXb+5KFxtbXoovAzXrcbGxH5vws8rrYzPS91+7LnLjxBZY5VnTt
+tRyNBU+RD9OvY9GbNXAFrYPwAuiRQabt1utj1sNAj5yhjHjfewy2lTgbvksYP9cg
+8C8bHmMns9/M2jHcoapl5pY9FUcqQKrleySUWP8Bj+p9qVQjScaExHVushrSsBYo
+ZmxJp3R/pBuGiXLCJR/PTqFg1KR46l8cmWavNzIE3IVS17phO/3vTMK+4iH6TLq0
+rUU0BkDpLfp6tLu7ibORZn16sdqBYuxELNrzKU7VpYRS1gU9XkXB+shqhp0ReF92
+GUaplY9MTZlVQEZom93PjkCAR27X8wIBA6NFMEMwHQYDVR0OBBYEFF2JHnkU9v3/
+1AobxvEKXl3NS8qGMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/AgEA
+MD0GCSqGSIb3DQEBCjAwoA0wCwYJYIZIAWUDBAIBoRowGAYJKoZIhvcNAQEIMAsG
+CWCGSAFlAwQCAaIDAgEgA4ICAQBXIDiYzcvWZfjbmwFzkqf4V2bWRP2DjXoQrwBZ
+zz4GnCgnZ6nqqXNoIgCGEQi7zo/D87vRyVoWsTAjNzZcjsiKZbf1Pg6K00iOin/M
+PwP/5XplMlbjKRBp5GYJIO0N+c6d0bQ1DJ7Z6aRahy8FTeh6PYMk+8nZ8OeJpfuX
+N2cXBWvD2gmLyVY7foHuig0BRm9Z6blDS2vFEdvQ4RWNeX3qocmlX7GxKQ+kwcZd
++alydkYdgnY/GXIJrAApVd/DhoG+m/GH9ElbGQpo6t7vCkqKjNXbSgHO0Q7IaPUv
+4q8MWtSsfc7KntCOFRGtpHlby06PLi+c9Ui3+JbbwVyPHbrpr+/DSr062v8wqlXL
+akXWsRyk0Gqo+m3DLRV8vSSD/taKxTEelr6gfWOhHFGs+DgcQpy4c7ey4cEOiNDg
+OJYoaNi0G9m8Fq9NQnYaIr7Ip0ArlOvvzjvTYWy21F7h3kHK97zmNW6g6LSxzu2Z
+VLs+ZBOPZRMUtiOjBQi4SDvBdSA3qFaSWjweGARdX6YzQoFm6bpGAaEBcz7RBosi
+248BaE0wHsCvf3TeEH84xdfEuFTp7NFSWONIH2ADARpJBu+f2kAhjTiN+ZFVftKK
+xvFRzf7o8Pb26Ak6WiFXCudxQ37v6wrfO4tEpr93r4ISlFKIQfZDY/rLinD5m9Ww
+xSYBiw==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGMjCCBBqgAwIBAgIESPScHTANBgkqhkiG9w0BAQsFADBTMQswCQYDVQQGEwJn
+YjEOMAwGA1UEChMFVUtLUEExNDAyBgNVBAMTK0RvbWVzdGljIFVzZSBPbmx5IENv
+dW50cnkgU2lnbmluZyBBdXRob3JpdHkwHhcNMDgxMTEwMTE1MDMzWhcNMjQwMjEw
+MTIyMDMzWjBTMQswCQYDVQQGEwJnYjEOMAwGA1UEChMFVUtLUEExNDAyBgNVBAMT
+K0RvbWVzdGljIFVzZSBPbmx5IENvdW50cnkgU2lnbmluZyBBdXRob3JpdHkwggIi
+MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCy+1+yjOW7jfzShdh5WjQTJrEu
+muMkLrW5qn7WedpbLNmqOVE5uHju/XTKq9rNhRANRLeculPPfJYH8Gmk3RqxAJ3q
+hxjCCcjb3fu+vVfiQAnucWRYoyHxEZ5n7DAh0upPbQ48f8uRj+VGcOpIekwkHkwI
+00nBs1k/ifrdFdAkuEopb4jOhl2ElLOfGUCZ0Rr+ps4vlIe+Tur/1oYh/sJQv6AG
+cU/xxUbnxRMdw7SHkVPIQdnOwouC42xWBCXMs/90HH2QoWjnGpykdI3UWYO4bhhT
+zcsbCk2euuquFqVrjP6qqiVfYl1H2b30JfGC7JuNI+kuLl8poaiDxdnrpBHhEbPq
+mSW5xuc3wcLymtKcgtHIC+dx5k5KsCr1OcKivr3B/j63/7SbmfLrPfGLi65w/CzH
+z/cw/zygPaFJbXYmZWlIqgPesEJBhfxEXB16P3d//aLL16bNu2x6NZ+DvcDYqlNb
+aP5c78BSM26+oiZy1j2rm1iYD3DwsEfVPonYuwhobjipUC6+8peSMtJ9JqMggh0f
+Soj6i5hBtykTZTqUGnaoCvnunb0SYDLHnxgMLD4xGGWix6q+G3Hl55nzCJbEMBOD
+S77aQWIhMgPGPMUZowsa6Ql1p7DLsj3sphjrhphnrgJYwtonZ+qoEnjxKC10Z3aH
+hsRczqRT1ZjuEdn0LwIDAQABo4IBDDCCAQgwDgYDVR0PAQH/BAQDAgEGMBIGA1Ud
+EwEB/wQIMAYBAf8CAQAwdQYDVR0fBG4wbDBqoGigZqRkMGIxCzAJBgNVBAYTAmdi
+MQ4wDAYDVQQKEwVVS0tQQTE0MDIGA1UEAxMrRG9tZXN0aWMgVXNlIE9ubHkgQ291
+bnRyeSBTaWduaW5nIEF1dGhvcml0eTENMAsGA1UEAxMEQ1JMMTArBgNVHRAEJDAi
+gA8yMDA4MTExMDExNTAzM1qBDzIwMjQwMjEwMTIyMDMzWjAfBgNVHSMEGDAWgBTy
+dcTjqSZ1hasKG2V4ycrtY0ufCzAdBgNVHQ4EFgQU8nXE46kmdYWrChtleMnK7WNL
+nwswDQYJKoZIhvcNAQELBQADggIBAJuUkXqcULjlWvDwEPzGKKN42/WYOume1aK3
+bAx73bLtuPvYJfoPYyMfz9+HAs6vPE+6rHRtx+BKlmZF4r9NJ7fD2wdiVaaZfRB0
+MXRu6KWVH5OOmnH+smF/HqL8uySsOdOMGN0LJU0tBUc2MbjIwjx9AkYk7whfm6i3
+0dgETeCnZHIJ8TY/nuyc47Oh/zFa/GQGFaAoec6MkUknbGSYinjMffETBzV8t8Ng
+8l9Ri61fp5Hp7lg/BmLY/W071f3cNeDt/fYwlTs1doOlD9heVAWnIw7oPqE1XqCH
+ZG8bTCpQT798xT/OF8RruutAdkQWOvg8fzvqXsq9draSQ7oDow1qeVv2ig2hQg1e
+b/vlSdxQ1O/9uw3+qe6XlxqOIOqHiteX7E0oLzfXlWcB6zd2lX9VpuE8SIvj7a5s
+cw8c87BdZFza/op34XvD/PqVNkwYYf8boYyc44x7qiye9bcS5josl3Ht5RjkOhE0
+V5WWYlgFGb6FdRWk1W859DqmWnL4o/4eQk+KTISZ8J5RU0dIPwv/AN9HjudBKzJB
+6G/zuUSD/zcqM85WwEXY0Trf+Z2Co7wCYQ7XckLqq8Pe7IaJW2XlvKy3JOkwQEhE
+vTscbcX9T4oEIuri8O80amWAGKAxNBCfa3dQet3S7lzUxNzEaH2dmIhVi6ZuAM9Y
+Z/C0TkI+
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+D5Yuz6IW
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGNDCCBGigAwIBAgICAvUwQQYJKoZIhvcNAQEKMDSgDzANBglghkgBZQMEAgEF
+AKEcMBoGCSqGSIb3DQEBCDANBglghkgBZQMEAgEFAKIDAgEgMFcxCzAJBgNVBAYT
+AkNaMRcwFQYDVQQKDA5DemVjaCBSZXB1YmxpYzEdMBsGA1UECwwUTWluaXN0cnkg
+b2YgSW50ZXJpb3IxEDAOBgNVBAMMB0NTQ0FfQ1owHhcNMjEwMzIzMDkwODU2WhcN
+MzYwNjIzMDkwODU2WjBXMQswCQYDVQQGEwJDWjEXMBUGA1UECgwOQ3plY2ggUmVw
+dWJsaWMxHTAbBgNVBAsMFE1pbmlzdHJ5IG9mIEludGVyaW9yMRAwDgYDVQQDDAdD
+U0NBX0NaMIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEA5kEDlXh9L/P8
+zE5f4e8O8nvt56DRQLEOEfAnkB3fL6mMBf7jam7ShjjblzAzxNEtp1XLOuJReCpO
+xFvLZ1CsxjP7bNnlZT0FuLSHaNtbCkTQlATzM9AOduzc7/gKAniVbZwyqUI7RHve
+edFltVWjDPoRwcCEahJdf43tFaMJ4iSOtLuRrxGOavNlC6/sT/Ek2ZM3VUOZX3/N
+6UBpXnG13mLfvWHO6n0Q6sfgX1Y/e5Du10Dzmc60khWyOz8XTf6zwFz0lh/53YgJ
+KaOpBzi+YJ5LpcCTc9wnUsLIgmWDpSq53kbToZ70cjsb895lKTrHsw12DM7Fry1R
+utj2PlKXvC9c+m0cv2V8zlNh4J6XcpGLO7UGRYuuYtXVSKR/5nDpT4YRguLgvZD0
+2JdL1960WGdN8TdTNqgMSBCN3lYG1kEvrkqjHYgGcDWlbc17/bKppRQhL2yhTeju
+h++cSR8kEYVxxFycPYnnfyQ4sqayhjYYfcLjuflOUwL0YcPRV3llAgMBAAGjggGg
+MIIBnDAdBgNVHQ4EFgQU5OphvrIVpsQC1U5mWE+oqH1Q40EwDgYDVR0PAQH/BAQD
+AgEGMBoGA1UdIAQTMBEwDwYNKoFLtxgBAQEBiciyazASBgNVHRMBAf8ECDAGAQH/
+AgEAMFgGA1UdEQRRME+BDG5pbXNAbXZjci5jeoYtaHR0cDovL3d3dy5tdmNyLmN6
+L2NlcnRpZmlrYXR5LWNzY2EtY3ZjYS5hc3B4pBAwDjEMMAoGA1UEBwwDQ1pFMFgG
+A1UdEgRRME+BDG5pbXNAbXZjci5jeoYtaHR0cDovL3d3dy5tdmNyLmN6L2NlcnRp
+ZmlrYXR5LWNzY2EtY3ZjYS5hc3B4pBAwDjEMMAoGA1UEBwwDQ1pFMFoGA1UdHwRT
+MFEwMKAuoCyGKmh0dHBzOi8vcGtkZG93bmxvYWQxLmljYW8uaW50L0NSTHMvQ1pF
+LmNybDAdoBugGYYXaHR0cDovL212Y3IuY3ovY3NjYS1jcmwwKwYDVR0QBCQwIoAP
+MjAyMTAzMjMwOTA4NTZagQ8yMDI2MDMyMzIzNTk1OVowQQYJKoZIhvcNAQEKMDSg
+DzANBglghkgBZQMEAgEFAKEcMBoGCSqGSIb3DQEBCDANBglghkgBZQMEAgEFAKID
+AgEgA4IBgQC4Dn5KyCRAZahpH0oRPKRr32XAiU8yGPVGDQ6PCvnV4xnQAqplGWKJ
+OEpRT/79EcyhZi0r20liLSlw7vmflNrwu+yAaXWdbwbgaUYkdlKV3jsxbjV8WGKE
+qBSg3Ui1xpgS3TLYfSVo2miTZ+JYGMWttt53GU/pKixflrkbbnBqrdxFiOGttAKl
+vlSMz0yzf1u0x0txrMneZSif0XKUYpIV5Pj7313hLgaE9SL8WtJ5D0uUNKj0rYIn
+tDq9ZDOfROs7uCNMi/kfXxCKEcpZ5NHBVojJtRvkjUiNZNu3RfckO6uRdyEh9pT5
+GwLTmm97B5IOmL2s+z5G2JpSYQ2V5jI8AFvtvgoOFyOru9mOCoDesqBZN5ATDJgf
+mCVuhw5g5HIxLwE4/NO6cMXv0g8cIQH5kTzU86gAYbdo1XomfcbiTk1V6ffqOycM
+v2PLC8wmzFRmOqqcf/DUEOww+Xm8ZciwgTNkWVb0YpYd2fgCqbFdFwuFYqWom6gL
+7st9WescNSM=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+4jVnDDii5F7ywHSS
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+gYPFbd/9XZ0twqADbw==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGOTCCA+2gAwIBAgIBNTBBBgkqhkiG9w0BAQowNKAPMA0GCWCGSAFlAwQCAQUA
+oRwwGgYJKoZIhvcNAQEIMA0GCWCGSAFlAwQCAQUAogMCASAweDEYMBYGA1UECgwP
+U3RhdGUgb2YgSXNyYWVsMQ0wCwYDVQQLDARQSUJBMQswCQYDVQQGEwJJTDEQMA4G
+A1UEAwwHRVBQQ1NDQTEhMB8GCSqGSIb3DQEJARYSY3J5cHRvQHBpYmEuZ292Lmls
+MQswCQYDVQQFEwI1MzAeFw0xODA4MTIwMDAwMjVaFw0zNDAyMTMwMDAwMjVaMHgx
+GDAWBgNVBAoMD1N0YXRlIG9mIElzcmFlbDENMAsGA1UECwwEUElCQTELMAkGA1UE
+BhMCSUwxEDAOBgNVBAMMB0VQUENTQ0ExITAfBgkqhkiG9w0BCQEWEmNyeXB0b0Bw
+aWJhLmdvdi5pbDELMAkGA1UEBRMCNTMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
+ggIKAoICAQDAE0K38iXlALrIVw4oKwylOxhS+GBqykvPcJHaRURdQBAytmMIZHPI
+RD1sbNdyxUjow0I8qnREijIx6AyRlWLqI64WGavTtoE5t9r4yPSVG16xG9TJBWjC
+Z5mBduY9r5RgKl3r+BBzqbUDgGJZV8SO4JOq2Ly0EjofQl+vaH+413z7L2aA30bw
+7sb0H/kEg71vJsWFCwxBkrD3JxjfAMbysToxO050kzC6JCHJcXnPNkCzrkm2HCI2
+qwdxOD470M/ZQ5rZSqv36/h32a11ls3jR+CDViPtaZWS0yqlr15yyboeBwKVZARx
+qnaQsJme74C0fs4SnS+z2a4O2g18l6Gb+LOdnr+ySA6W+exlME1ThqDw3itZXcvY
+7grn1rFri9XnvsiEt+turYEFbgS00wjuCrL1wzk0iSCQGmSvkzHoiGQq7mdeDcu9
+NMuiJfUmzw4Orh8klHfSKXVX5c1BufMLSr4zVm9HjaSt4dDlOTT/7kj9GpMT7uZf
+X2e3cC07cjot/N3fW/6IOx1rthJdqjZ4V8oWTNhKvs6mCoIi6M9BdR8es2BwSNjK
+FcQvOSH/6b+uYYDvIL9r2cl3ezC3sK3wa1YApDO32RGn+/9ihDwJnPK1+mWD5dig
+x9fZYl5ju36FroOhTGe4ISwqNdFy4+7rLrxX++cEdPzJu2b0tWmn8QIDAQABo2Yw
+ZDASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU
+WKkdn9oNed99zMXFbaF+BQ5y0agwHwYDVR0jBBgwFoAUWKkdn9oNed99zMXFbaF+
+BQ5y0agwQQYJKoZIhvcNAQEKMDSgDzANBglghkgBZQMEAgEFAKEcMBoGCSqGSIb3
+DQEBCDANBglghkgBZQMEAgEFAKIDAgEgA4ICAQA/2RbgUYnVGb+lN6NNyAZC4Lu2
+Yw7tIidLcIL4toQNKduKDxKP0CFlNff2GTy8+mg2KjqauNaUEP91nw1/gZnubZd7
+X12HzngJrtzQapfJkxTm3+qDCAmZrM2PIduxOESIT4ZWjzYd2qJqNCTdWFPWZt8A
+GFTvxdAIwZvOnj+OKx5quh4uuPSOBwNM0d4y/M9BIi3+PHuwDvQcRrhfRx0Ftc+0
++dKihMHcFBjFrYJxt0moajvCOXgtoJSoI80A0egfAxZ1NsB4FC9mF/wU54R0j6AS
+mVQKmcPPnsHBAXL3yiKD+x3HoXtehHxOtqS+Vz2Rx23mX59oY4uuwe7AQpEBSE/b
+Cr1uEnxDYknYzCwHJbgeM2/SdLaasCorosmMaZADdSfZlrFGc/YGZoDvXIfFLKbf
+De7hAFIE/s5NqhbkPOffMw2ZmzYKdrZTtRIonngUpCgv2XVqJM+59HqlvNnmlvqT
+JQ/zb56t2y2ZXoQQiXJxzNf0pHo248hqAURiBwZ7x2YJSi2PEMyR+SypFbxvBvxW
+OdP5RXDWbPR9bOVSkKInI+4LobCo3gcQ48qVfis00v90Iuqxf730ygU3jIdsARud
+ztpsaMcNVkV8GcvMx3pBcuweQumhwUsro/qwC7IYA3WkZaP1fPX1TfjdlbZnZrV9
+5lH1gf+l9ewaQGxOFw==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+rVldISDvDzyISaMp7Q==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+SinDP8LMwFbBcUDGKQ==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGOTCCBCGgAwIBAgICAvwwDQYJKoZIhvcNAQEFBQAwTjELMAkGA1UEBhMCTVQx
+HDAaBgNVBAoTE0dvdmVybm1lbnQgb2YgTWFsdGExITAfBgNVBAMTGE1hbHRhIENv
+dW50cnkgU2lnbmluZyBDQTAeFw0xNDA4MjcxMTE5MTFaFw0yNzEyMjcxMjE2MjJa
+ME4xCzAJBgNVBAYTAk1UMRwwGgYDVQQKExNHb3Zlcm5tZW50IG9mIE1hbHRhMSEw
+HwYDVQQDExhNYWx0YSBDb3VudHJ5IFNpZ25pbmcgQ0EwggIiMA0GCSqGSIb3DQEB
+AQUAA4ICDwAwggIKAoICAQCy+gbIJTiSR0A5Qd/MqS7trSsOqKBvXLqtA2SmYugA
+UIsztlatAaLLYt9gpcBrEIO8UDaDeSRKQK1oqzFPJ51CfQnyTwHmZ6umgNQ4GNES
+9S4brAdo9msAjb2iaz+pcB+uO7Q3rF87sGMvK/inqZaMdROE4gbJsL3fgwSilWwo
+5FoPq6zozppXi+mCcuZp5L8+RHxKGvie25KP8Lhhk8r1mNTINP8n7dr8cM6LSvQw
+WcEFmBLx51Eo91ZLjCD+4VcZEaBrw/Yg4rfh1DxVBv5JeLQ9Sm9Bvc4ctH+1BVQf
+s59Jm2ECrHYoDQUWLCIoTTueI2QUI+nRjoVfAsEC4wAUKGizLX6s3tQCajuK4d0M
+xgAXw1RbnBRPUeGJT3RSL0gOm5i+SH6UNj7Utzz56iyIA60VZ8159I6zYGM7XwfR
+ESoQ0BhhQtp3ZXpO2GG3vsV9bx0XXnTlhp/bydZ2i52bPk0YWJJ67G77JA0bcDqE
+FdG1MmL3WX0Wme5p7HQRv1BclscdaXL/xNSTynm0URKiJJFwNn2e5HIoAOA/W3eV
+SkKC+NNRmETOpw/V8nKGjgUZEy30DjXpYxpvdyUKnx8K9cUI270T0rKyTGj7sdpo
+pmouOWp0jTh6lURLC7f0g9YTtOUArVq6IUD//V5HfwsOYGzxD/nMLuujzgaeRl36
+QQIDAQABo4IBHzCCARswEgYDVR0TAQH/BAgwBgEB/wIBADA/BgNVHSAEODA2MDQG
+BWCDVgIBMCswKQYIKwYBBQUHAgEWHWh0dHA6Ly9yZXBvc2l0b3J5LmNzY2EuZ292
+Lm10MEcGA1UdHwRAMD4wHaAboBmGF2h0dHA6Ly9jcmwxLmNzY2EuZ292Lm10MB2g
+G6AZhhdodHRwOi8vY3JsMi5jc2NhLmdvdi5tdDAOBgNVHQ8BAf8EBAMCAQYwKwYD
+VR0QBCQwIoAPMjAxNDA4MjcxMTE2MjJagQ8yMDE3MDgyNzExMTYyMlowHwYDVR0j
+BBgwFoAU6ITiDpqOjOtHUTzfHagBZ/iReLswHQYDVR0OBBYEFOiE4g6ajozrR1E8
+3x2oAWf4kXi7MA0GCSqGSIb3DQEBBQUAA4ICAQAQzbawYh33Mh+c3WYlHVWs+yBP
+a/XED+MfrWNjhj5MN6yhwIHtpqQc+NJcIIjl9n/rYdedONjs+ZmpYNPYBPoxlory
+qrlE2CGfB7AH53kOVGfbzOW3AGzS/Qs7hCLd9N9c982HQBQ+GBK0iPedTuz3l1fO
+7UcXTVw+/ANiMaabj+Ae0zrrXPJiiuaaXRtAvG8VsPbBw2akaGHrhFptY32We9lh
+CQKbtOrUbhhAXP9lNJE79DsIVkvIEseU0NTub9UmUC55H3sO2iyEW+9vpeKwZiY1
+gnSSS4oC1MYh3zegTtnATNlEJZxeO47lazpww7F1/Lk4+6yu/HpqWiGQQ52K7SpJ
+273reJRD+uIfN41yaoz/ZcMalHaRaLnn28eL+38Ry6wSV8+ezP3Tb3G2TEm7PqVv
+HBhESuPOJYvItg8qAk7PfOuCxlJpIUw4saofsJbeuw3FVaWgRZtcz4qhmT4TWjPy
+QQf4ij5b35UO/ayrMWUzVsnQZYcSEOemFJO4vzwoRPNG/3cZj3NavOikx9SLY8wc
+E/A8AbZfXRIFIsA8W5v+uUO2lBA4AxZlWW70xE3tjaUHHw5P9mF9eS0az7R+emFz
+GZgDSeN6T9F6xJnmjaceTYzBA8al/qS44NXYnqJxHkeQIdw7sUoGMraM3Ofm9wpN
+fPZJzKRBWURhx2dG4w==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGOTCCBCGgAwIBAgICBGQwDQYJKoZIhvcNAQEFBQAwTjELMAkGA1UEBhMCTVQx
+HDAaBgNVBAoTE0dvdmVybm1lbnQgb2YgTWFsdGExITAfBgNVBAMTGE1hbHRhIENv
+dW50cnkgU2lnbmluZyBDQTAeFw0xNzA3MTEwOTExMzRaFw0zMDExMTExMDA4NTBa
+ME4xCzAJBgNVBAYTAk1UMRwwGgYDVQQKExNHb3Zlcm5tZW50IG9mIE1hbHRhMSEw
+HwYDVQQDExhNYWx0YSBDb3VudHJ5IFNpZ25pbmcgQ0EwggIiMA0GCSqGSIb3DQEB
+AQUAA4ICDwAwggIKAoICAQDt9PevbTjCHLTEVSw/vCaWhbNPbDqxoN1lEkd6y9cd
+h8Id56Q6QeEltq9xDTVV0KDf4vscJDt6toOSpNGU8uKFTFif5OENAvliJhRY/aH/
+8vrMX/Cf1pfIgKJcmUmfCYUsok2EKdQlqo+sCBnLekAhtgP02UcGCfHEYIz6ZrRy
+brj2iT4RApP7E/UahNlyzayN0iv1TdSYoaobiu4sSLf9PXHiw8d3wXr71G9Ab3+z
+R3Ko38h8q2Uy9RV2Nl7P28woxnndfJx9cxkpGYSI/cEMASaQga3tMuMu0t514c1T
+zBatUoWVwdmwvANy8p9rzA7VPvgIMQXIloC4Ro1wiVDwOu7RVoZLg1p3Ej77BU9n
+agzJUWtheO1JyYmGOuZQoGsOITesf3DjkHH1aA5iKlU5ZGxYfghZg1qWuVhehj/f
+1D/cAMz0gnwtvinS1swExHfNsewEPud8b/bKx+34jgoAUVB94LbuKoWk2P6oSbsv
+gJeE56v7khTmI3F6QrHICldnWY3F+uijnMfNxZv3FJq6wcxPGuir1ddD9S1qMPFr
++QbCjTWXgKtq55GN40i8bphN3lWKWlN0pHLUvO8gyttCJqrKq6o185YkEl5q7grj
+R8f5i+AwKi0LkDZPwEuzPuej4s1Jh6HzevEpi+5Ph8cqRPZQ1axHXRASYk0+6rya
+HQIDAQABo4IBHzCCARswEgYDVR0TAQH/BAgwBgEB/wIBADA/BgNVHSAEODA2MDQG
+BWCDVgIBMCswKQYIKwYBBQUHAgEWHWh0dHA6Ly9yZXBvc2l0b3J5LmNzY2EuZ292
+Lm10MEcGA1UdHwRAMD4wHaAboBmGF2h0dHA6Ly9jcmwxLmNzY2EuZ292Lm10MB2g
+G6AZhhdodHRwOi8vY3JsMi5jc2NhLmdvdi5tdDAOBgNVHQ8BAf8EBAMCAQYwKwYD
+VR0QBCQwIoAPMjAxNzA3MTEwOTA4NTBagQ8yMDIwMDcxMTA5MDg1MFowHwYDVR0j
+BBgwFoAUlEVfxCFupV+zHt0QORkbtWihCx8wHQYDVR0OBBYEFJRFX8QhbqVfsx7d
+EDkZG7VooQsfMA0GCSqGSIb3DQEBBQUAA4ICAQC+Gq7H3jhhfrMZ2OGuPXRLfGHz
+rLSnEnr3Ppk9JUnUKL81DCpaOM9+nGMEI0K+nBAIMoMHRtfPsdCEAHCmI5+9lCdv
+KbstT/k5wyjCM6CFNF8wxorEHvW6BI60Z+Sn8l4yF5f3agP5yk7fM/Chtcyca1Sq
+NOV+VrRhkmZfjI8lBtJ4Z795DgtK452Jvc79NwDorJ813jIrAea2HjOE5P57l3vG
+o6kSAySGkyWmmHKHpeiYUXkEkIk8gI9APttt0/H/dwFMDMnqg6D452EjIhcBK0CC
+ALcjXCsIK+XpDdWNeVB2UpEldhaI0kVrUSXQsafGnGGI9Dc+jzDfjaaQON6y+lYM
+tcjh7ui5/aCfI9UNFmbAXL6zaije727GxZnNWO/p03CoLZsSXOKhFY7xrHl1zQlM
+pRWHEjS7WyFYC0IvfoZ6/Q/zwO1LgI1fqOKe6kWtcV5QM437QsY5/NpGFuuseJf8
+7ALMK6SS1FEFMJfb1t1Pd0/WoFs8e8IRunWnDH5GavTokDRndy8DEilkz3MvDWPd
+2rQyJmeYFJaMlMxtwfKnOYIiDBEsaNzzF8DIfKmI/gCVeAwkBl7KNsSYYoqTdiON
+5PtI4baag4QSGNPq+RLKl5/JGKdesPS44RZPghG8qMCPqZ1rr0zxW+2hQlYWlQX2
+nfSnZL7WSvgLsQ/wZg==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+MUiLPo23wnNxgQEGig==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+jNOEAj7hRrcgyhA+KA==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+jHPC/lYmuKuFRQFZrw==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+siRr2lJAQAct9LNkYDQrdam5XjO28Xo6
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGUTCCBDmgAwIBAgISESJDv4Cygpg9+xotpMximO+mMA0GCSqGSIb3DQEBCwUA
+MF0xCzAJBgNVBAYTAk1FMRMwEQYDVQQKDApNb250ZW5lZ3JvMR0wGwYDVQQLDBRN
+aW5pc3RyeSBvZiBJbnRlcmlvcjEaMBgGA1UEAwwRY3NjYS1tb250ZW5lZ3JvLTIw
+HhcNMTcxMTI4MDAwMDAwWhcNMzMwMjI4MDAwMDAwWjBdMQswCQYDVQQGEwJNRTET
+MBEGA1UECgwKTW9udGVuZWdybzEdMBsGA1UECwwUTWluaXN0cnkgb2YgSW50ZXJp
+b3IxGjAYBgNVBAMMEWNzY2EtbW9udGVuZWdyby0yMIICIjANBgkqhkiG9w0BAQEF
+AAOCAg8AMIICCgKCAgEAwTp0pNKvCDsoph5q7QfjvFSKcEqnsqOK9g7qjJ4wEifP
+nj6bkCDijZQLo41JzYa8EERcGYFADeu/Mq1pslj5o4Q36HxfR6QU/iGGh1vD38aM
+guT5ctS5+8IfBjUGNoXEycTTrv8tG1+CwnP52eIEVHI9wL/MoN1YD7dV8ZLlMWrZ
+kLQucuOvC0DEpYyVXqSPFZ9U5iOuNY/wZL52Kf+7nTYt0+SNdUuzdyY5gz1KJNwf
+Zze8oZL5d7cIO2DuFfj1Cqk2cNtm6+UYx83nHDu87ZsQvHRORyPeC1JehlMaDFQs
+YPH0+sNuzdsXydG8pFZs/xJSIaLrKX8bM77CWTz465sJEK906U5QedblJfwsMthO
+az1unF6XRIHuC0fRc1N+Azb1lFxYtuNGiUSpLsK+4ylgmUqlyFT5zHz0nyIYIxPA
+fjoYil3USwddwsQa3Rj61NVya2yvI+T6sAOLVe2SovLhKPQZtwieaLB1Y7evbzSi
+XaY28FnxrbvXrYofpq58Enz6S+jHar6fr/2v+GmcYHWYB9C5x7ONrlHTGZjzioZl
+c4e5MBHLvYKz78ET2JbyBMHRWBfAaQX9krMqvNamqeCMgH2STd1uDnWpHotO/0uX
+QCqLDIpMx6WqYBQ7tRje7+WWM/18EBlAqg73wKHpfTYrFQcrrRORDVB4PxtqbosC
+AwEAAaOCAQkwggEFMA4GA1UdDwEB/wQEAwIBBjArBgNVHRAEJDAigA8yMDE3MTEy
+ODAwMDAwMFqBDzIwMjIxMTI4MDAwMDAwWjASBgNVHRMBAf8ECDAGAQH/AgEAMBsG
+A1UdEQQUMBKkEDAOMQwwCgYDVQQHEwNNTkUwGwYDVR0SBBQwEqQQMA4xDDAKBgNV
+BAcTA01ORTA4BgNVHR8EMTAvMC2gK6AphidodHRwOi8vd3d3LmNzY2EubXVwLmdv
+di5tZS9DUkxzL01ORS5jcmwwHQYDVR0OBBYEFKnoLB5yGtqPpOgC65lLL4P1SYtB
+MB8GA1UdIwQYMBaAFKnoLB5yGtqPpOgC65lLL4P1SYtBMA0GCSqGSIb3DQEBCwUA
+A4ICAQCq3a224eQ8b4zwAO0JdEESO43ALlipqqFOKJ4ZhEGUFGwbZF2pa+hHeqg3
+FwLiSvZX21HAMi0iLPUF9BzD9RahvwRtxIcVJCfm3w8jgBYikbHKykj4JqVDBd7y
+JsbJ0VP1h4YQES7bKS4VXofKqVI+vJt9BsH6d8wmaKrPWN1hguHn3DZ6lab40pt9
+OBF62HZbMccna//43rP2wV2zpzDsVSIxKkq63Jn+iqDQKvMxnhqOgehsuKZWxQD3
+qQSxvJoVOHS42hHsJC1ktisL6iuIAX9soF699//5F/jhdN52Uqcq/hGMH0w57rNC
+mW4WrAI+bGLBF0qgL6s5uLjR3xJU9qaefcO5H6kfTqoEj2xaGnUuNJjfJ9n+SgJe
+xTUB00iC2EnjwCkQd1Pk9iMJ1ACUzejQkj9ZefIO5LHVgIFkt2hkup9anaAHU2ow
+AjLVR9a0cdAAm3hFHbbKZGR1qd7BwQXRdrJMJ0AL5hM2Urt+2t9d0cpOFmwF/q5M
+XXeYjPB/61oNqFWtbKUpQG8cJQbetYgXJ5CEJocS64AFp6IwG/5s5Rd3hGyqHGKE
+Tqth7+uu1wVtADyc4ot9U53+bNFl9AbwWZY9deZI6qCSfFvVOQnRVQp3SehuLXE9
+hikZWCmWKh3qwzj67Oe/CzXrZjPQPJVnydg5bwmwPE1Ie4JZ8A==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGXzCCBEegAwIBAgIUad/sy3paLAYsC+Vw8/16xNRiY9AwDQYJKoZIhvcNAQEL
+BQAwRzELMAkGA1UEBhMCQkUxEDAOBgNVBAoMB0ZFREVSQUwxJjAkBgNVBAMMHUJl
+bGdpdW0gQ291bnRyeSBTaWduaW5nIENBIDA1MB4XDTIwMDUxODEzNTAzOFoXDTM1
+MDExODEzNTAzOFowRzELMAkGA1UEBhMCQkUxEDAOBgNVBAoMB0ZFREVSQUwxJjAk
+BgNVBAMMHUJlbGdpdW0gQ291bnRyeSBTaWduaW5nIENBIDA1MIICIjANBgkqhkiG
+9w0BAQEFAAOCAg8AMIICCgKCAgEAgZMhGmQu7zjwb3vJfpqQ27d+ZqhK/g099t+J
+FopXQfFbbzn7pr6KGD9O9jh8BhvDMABIRlPdwl41hvmqRch59A6KXHyLRY85rRck
++7cJSpW+RjpSSrY2uFRerVxR3zK8lQiNOml9F6aT+lN61VdYSyMhAr6bNKfsGTRC
+hk5f6A7fw2bzPt3tmRaXiJY5mOiRbwsaQjEo9rsl928wihUoNa6XwaVqeTuZFeGw
+goqooLr35uW3TLX9m6tTVhoGBEUx3anJMVnwlyAb7KUTJB95HxNNYPLsl5v/D9dd
+p9B6wQUn4oY2Z/U5Ew7KjEW01gWe5ccCVSzPJmdJs+J8IMKTOpKZeNmlahtqZF6I
+V4a1JVlotlekUgmPrhLNwww5cx3zT0GeIaTpzc8UIeIlfFJ5Un7SsGSGPOcDYwzV
+fief8LplT1kdxHUruADuN43nPWfJ0tlOWEK35QvDr5Kc2v0abmIYsgzb2C7D57Fd
+KQnfPvlHucFxn44iQCC1+P3DXBTHqgOUNloneRMqeMhYWME4WiGq6CZV9WwvweOB
+6GUaMXs/DFKRPdY4yiRdAcsINqsCgvni+zK198aLaQYFYNgNdu6aJdkIGAhYGD2D
+E5jqbiqabyPv6fn2kH/23bR9fYGCf9I/8uxNhvuKOqZsFrv4Fn1Hzl2naJrHQPE9
+r+KzkNkCAwEAAaOCAUEwggE9MBIGA1UdEwEB/wQIMAYBAf8CAQAwHwYDVR0jBBgw
+FoAURAdlwVYsik7HA7reZRoXzt/o+9swMgYDVR0SBCswKYEVSVBJQi1DU0NBQHJy
+bi5mZ292LmJlpBAwDjEMMAoGA1UEBwwDQkVMMDIGA1UdEQQrMCmBFUlQSUItQ1ND
+QUBycm4uZmdvdi5iZaQQMA4xDDAKBgNVBAcMA0JFTDAUBgNVHSAEDTALMAkGB2A4
+DgEBh2gwPQYDVR0fBDYwNDAyoDCgLoYsaHR0cDovL2NybC5laWRwa2kuYmVsZ2l1
+bS5iZS90cmF2ZWwvY3NjYS5jcmwwHQYDVR0OBBYEFEQHZcFWLIpOxwO63mUaF87f
+6PvbMBoGA1UdEAQTMBGBDzIwMjQwNDI3MTM1MDM4WjAOBgNVHQ8BAf8EBAMCAQYw
+DQYJKoZIhvcNAQELBQADggIBAHYdnyneMzWU1Td8KKD2Is7Okr3e4B3sOkRYI/mu
+V5gSwX/H0qQs8ZelBzrHHxtgKG2yl1HNCEJfqc9Xy3+KcfO0TeizDWs9sMdI9nRA
+h9HYeLu97jjeLgIm3xj9CU/bXb2xO7zURr/3dD9Ht2bC0xcsdyBeleUNTZVZyQYb
+Ba6sNht1uRyhq8aaxUCKGFxv1+N5JdigZvhr1zmlYy27gFn9CE3/OLt79EMjfheX
+AXl5uMBXIChNId7VtVpjZNXqRExOpNOmOXHiC+bP9kxRazZ5acgx/seZKt5Gb3Nv
+JN3JMrmhaVgKN3FcHbffHKwO5WWS4qC3Scz5wjk/EkxJpvpR/DFJdxCXXjFe/Wt0
+cMrwcMaLjJ9rtMceEb30fXHDcxOXsoc7F+JoolZMIZ3M6HD3qH+Rm37T/QWV8NUQ
+i+fO0QA0LdJduES7HtB4G8sVhtM5OVJoWId6FqMMgu/oaRSvReUXY445PKZ3ZAoh
+9cO2UhU/RhAlN73+NMWom4H3z/zie3DYtu6HlxoFDRQavTO7WYiZaB83WMe10oFl
+LZ6l+e6ekL78i4RYwOTo9QzXND+1Hb/DZmvpZkFyR1O8HX9RNzCloTIeymTM7JoT
+FXGdJlX02CAU55hptqX8SCzSu3r1eqEz0QRQlEo+CH3bk31Bpeatuf3OUAEWck66
+2hA/
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGYDCCBMigAwIBAgIEWZYECTANBgkqhkiG9w0BAQsFADBoMQswCQYDVQQGEwJV
+TjEXMBUGA1UECgwOVW5pdGVkIE5hdGlvbnMxIjAgBgNVBAsMGUNlcnRpZmljYXRp
+b24gQXV0aG9yaXRpZXMxHDAaBgNVBAMME1VuaXRlZCBOYXRpb25zIENTQ0EwHhcN
+MTcwODE3MjAwODUzWhcNMjcwOTIyMjExOTEwWjBoMQswCQYDVQQGEwJVTjEXMBUG
+A1UECgwOVW5pdGVkIE5hdGlvbnMxIjAgBgNVBAsMGUNlcnRpZmljYXRpb24gQXV0
+aG9yaXRpZXMxHDAaBgNVBAMME1VuaXRlZCBOYXRpb25zIENTQ0EwggGiMA0GCSqG
+SIb3DQEBAQUAA4IBjwAwggGKAoIBgQCXzeLqVKPfHpRPh03kQGK1EY9dd/AfEsOh
+5srrgtD2K/5b+b3BO1nPoyjeWkvtAae5ESgpa8Ncj9U9z0M0rgUpy9u6CgViWbDg
+tMpBg0W8s7JwXeATpX6GF3OXNANS1c0C0HKJXXuF+DEKEnaPvHNZWEMUnROzlJlT
+LAf81sJbNkdEePZWp+kac6Lwy0QaLB4bZkr1FOVVejUQSlGBNk6JeqEeg9KBPZYU
+Bbudyt8lA5UkJNVjj1PFlcSIQFRyABjZNTdpDRZPny9IBeDtqI1x7+mZo3SNmX96
+tIoTOQ+R2x/1IqL97qdCrIk0mn6uvk+rIPH/jZCN0Bq337CfiFA4EO19jndDEQ7z
+ea6TsBm5Lj34IohaG/SQoQHNJ/NpSnHioxAa3eBvACJQNBVyTEbJCJOHVnTmylJI
+1voETOVa6iznDB95fiQcwOE3ugTACuY17d9pLjM9kNpTA6KUow0rIHABkRcsZmzR
+e2+ckojoTbKmP8I6kBLjMhANBltyOj0CAwEAAaOCAhAwggIMMCoGA1UdEgQjMCGB
+DXRyYXZlbEB1bi5vcmekEDAOMQwwCgYDVQQHDANVTk8wKgYDVR0RBCMwIYENdHJh
+dmVsQHVuLm9yZ6QQMA4xDDAKBgNVBAcMA1VOTzAOBgNVHQ8BAf8EBAMCAQYwEgYD
+VR0TAQH/BAgwBgEB/wIBADCCAR8GA1UdHwSCARYwggESMIGOoIGLoIGIhi5odHRw
+Oi8vdW5vY3JsLm1hbmFnZWQuZW50cnVzdC5jb20vQ1JMcy9VTk8uY3JshipodHRw
+czovL3BrZGRvd25sb2FkMS5pY2FvLmludC9DUkxzL1VOTy5jcmyGKmh0dHBzOi8v
+cGtkZG93bmxvYWQyLmljYW8uaW50L0NSTHMvVU5PLmNybDB/oH2ge6R5MHcxCzAJ
+BgNVBAYTAlVOMRcwFQYDVQQKDA5Vbml0ZWQgTmF0aW9uczEiMCAGA1UECwwZQ2Vy
+dGlmaWNhdGlvbiBBdXRob3JpdGllczEcMBoGA1UEAwwTVW5pdGVkIE5hdGlvbnMg
+Q1NDQTENMAsGA1UEAwwEQ1JMMTArBgNVHRAEJDAigA8yMDE3MDkyMjIwNDkxMFqB
+DzIwMjMwOTIzMDIwNzEwWjAfBgNVHSMEGDAWgBSnda9ktEDo3ThvLwAigOzt0Z0b
+lzAdBgNVHQ4EFgQUp3WvZLRA6N04by8AIoDs7dGdG5cwDQYJKoZIhvcNAQELBQAD
+ggGBAIMsnwZuFka+aUPESlWD69aNMD+pLlBvDDV9K2MzczEvGvQrlfm8O+K0gr1g
+waA+CrjVRnr2nShOSQi1bdPta7BWguLkbG/QTcScq+i8OcZFE+yWeAN3wUvuIdLk
+yYW4FqobTt6hhh6HXgK/EWk58NK3dp2nPmjETvrOikhipSWhVsd4lhLIFLjrKRDO
+OJm+uPRM4aBCoGZrSq8TufvBBO6yONihNc1MWIWH3QyolvLKYglTHJ6F9dx7q2jl
+1h1o9FqIv8nB/cwTT9CO6HmawCyH3p5iaAQkM9/+92sBPZ+sDeJOlreYfjf1sW3N
+22HGskJlGIQFtrPIjFMwkCPx2LRuxQQiy+YtC/bsVwgE+3ADpfcN7zxcncVA9vl3
+d21moxdWflowjl94NFgtmK7y5X5QBngAzkhmev6iHpIYxDpvhYvvjwGikXc3nWVe
+M83AVzhVVwRuX/s/Ep8+SC9lhrud5r0JFJJWkZG06DM00FrfqiNo0bZojW3PtYsv
+LzYYOw==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGYTCCBEmgAwIBAgIESVd/DTANBgkqhkiG9w0BAQsFADAyMQswCQYDVQQGEwJS
+TzEMMAoGA1UECgwDREdQMRUwEwYDVQQDDAxDU0NBIFJvbWFuaWEwHhcNMTkxMjA2
+MTA1NzU4WhcNMzUwNzA2MTEyNzU4WjAyMQswCQYDVQQGEwJSTzEMMAoGA1UECgwD
+REdQMRUwEwYDVQQDDAxDU0NBIFJvbWFuaWEwggIiMA0GCSqGSIb3DQEBAQUAA4IC
+DwAwggIKAoICAQDHPQqapi9eJzVxo8UrCBmzJAbBNZASDwc4CkCocmzEVELmosSh
+tymxoNaSG1a06DtduQkeLEn50HFgjQ4bHmw0jv25jSzDKj915iD1pHDlSSR7jAHr
+hfZd4csTr4xy7gWSo+xf/OIbmKvKSNA031MSoqbuUFoxYjoK4hL9GBvsQW0vsyCN
+tJVdeCeOAqwolL3RmurpJTHzpMBPzHq7hdu0+6Ckf/DWckgfTIvcmHR732rk+Dpz
+V8AWV4HjPpm4eqXNdqWsoWOpvGdVYQmeApv+RmP77jxwgSUPThwHGGWmRnQH7BS1
+88hLIMBWiSZah5j8MG+CXV50OakwzKgPXIlV0CkJnXpQDD/XZY8lcET3JsWw5ZYk
+TzegZp31hUgIweHSuqaLONi481TwgB8KA94zU6M+xxl0T/YIogShBKHwVMdbPaJw
+CaJmELwcrqIO5Gd5E9O4iJ4/4P9i/V3Ll8VphAfMjdAn7v2dDmuKB3W7zRrxH7fj
+uBtIAzfurHT0TLtGW7MSecvc6umBYD9J4vUxSN43+5L5r5S2ibxMNwnnX9fleEDx
+zIGPnGCAI8dqaPqYWxqKUiWorHHqav7YPQW39YrYWsFvn3gy5/J4r6levz0usHtd
+un4duufZ/uP7LilJE3gsW31EGafDDeCEKGeeS/0zcgSP4zfZJDRHQEzRUwIDAQAB
+o4IBfTCCAXkwVwYDVR0SBFAwToEOZGdwQG1haS5nb3Yucm+kEDAOMQwwCgYDVQQH
+DANST1WGKmh0dHA6Ly93d3cucGFzYXBvYXJ0ZS5tYWkuZ292LnJvL2NzY2EuaHRt
+bDBXBgNVHREEUDBOgQ5kZ3BAbWFpLmdvdi5yb6QQMA4xDDAKBgNVBAcMA1JPVYYq
+aHR0cDovL3d3dy5wYXNhcG9hcnRlLm1haS5nb3Yucm8vY3NjYS5odG1sMA4GA1Ud
+DwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/AgEAMEwGA1UdHwRFMEMwQaA/oD2G
+O2h0dHA6Ly93d3cucGFzYXBvYXJ0ZS5tYWkuZ292LnJvL2NzY2EvY2VydGlmaWNh
+dGUvY2FjcmwuY3JsMCsGA1UdEAQkMCKADzIwMTkxMjA2MTA1NzU4WoEPMjAyNDEy
+MDUxNzE2MThaMBMGA1UdIwQMMAqACEgcRDUgEyz2MBEGA1UdDgQKBAhIHEQ1IBMs
+9jANBgkqhkiG9w0BAQsFAAOCAgEAUpeNvDMx6DvGI0GZYLwZenZ07KFznMjosgR4
+uz82/UcOuuoMWV5jFcSrNBFP4lZ8WTAs7HySe5AibRWsB7+5AjvCj8FVAe1BaUjk
+S91iLqkrco51s7ziLu/OWS09yMJxeCJ8neI8PeoaIXiDNwfdVKMWk485S+Y5CkBw
+IcMENgfpj+/dPot4NrZN4QZE91opiZTxzOEVnJ9gOI1N9+qHrvUTESJI/0GEx3xo
+qTGs/ZY2/5BXoMnGjZIltVrOdqYpC3DInJtG+TPPhlZE699I8n8eUwDwGUAug+Rw
+jnTUWRa8o2aoENs2Qtm52Zu//GmcigpBk38eStRDdSbsRycD44dStYL4bGxiG90E
+c7avFpZ77QjoK2A19wjRdoR8r3lli+Eg29dloO90TfV0nPv7eH+BdFvAbe4yCUSF
+GGOYoxgutFvZvpXAtgLuCXavsb4Vt9ME0rAbbCdGnHQ9tdCXx/UKxI/A3tgnPHTu
+50tOe0NH8tf/fDNBRgLjjIZMTME//B8DubAg07ST60YNhjqK20+ON1Yok7soSChA
+FdLhPccK9/JN2yd1hmQNw289Oabl2YZaNXbHtOU60VclAsecAiFiHAB72fXTYsq/
+V0t3A48TE1bzZ7KL1HYAt6MUEN46PoqI9/Wv3vC2C3oNmf9rajEQ67hqklCLdN0G
+POhXZgg=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+CPkoA02OgI15
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGZTCCBBmgAwIBAgIEWEcVgzBBBgkqhkiG9w0BAQowNKAPMA0GCWCGSAFlAwQC
+AQUAoRwwGgYJKoZIhvcNAQEIMA0GCWCGSAFlAwQCAQUAogMCASAwQTELMAkGA1UE
+BhMCQlMxDDAKBgNVBAoMA2dvdjENMAsGA1UECwwEbW9mYTEVMBMGA1UEAwwMY3Nj
+YS1iYWhhbWFzMB4XDTE2MTIwNjE5MTYxNVoXDTMyMDYwNjE5NDYxNVowQTELMAkG
+A1UEBhMCQlMxDDAKBgNVBAoMA2dvdjENMAsGA1UECwwEbW9mYTEVMBMGA1UEAwwM
+Y3NjYS1iYWhhbWFzMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0JeI
+JiwoJscNMBanHHcn+xBJEHA0gns1MajY6YOEQFDXBYzM2o/3r71iSJfhnbePveqU
+yhuxxj/l/Q+H0jFAlGf9WiQxETURYhnZo9cnJ+mRpviXr5SsovyokJfWHWQ6/PMs
+vasewtKWxlvBNtknntXbS7eSKqHOriWu7ICcnAeHSNYMT2QtL04rK8kURO8q4XYT
+8HKwYorLDcWmP4Sswll7/0MHaNYodYMKHfcbD7+XtEwKNCJFG7BmwADCBCQuIWVT
+OYodumKozyR8wQTIgfXP5+IRe8YBIUGQT8cqePJ9pymz8L1E/V/+yISVbJxjqNDa
+0G0+A8uDcdxSvEUXiT+P6swBvdfmCgqF0ryNyU5w/r4wKv488HpLIu+iIrZOZCMO
+JT/SgqlHZR9oylieFZJ2iNwgtlE9NK/3DeZX0X0VogA7ua75QRxdDeLwwuUzUAdF
+4/VrxWaFELs4u2Fraxx1+PHLU9MVhh81b6mDmVBT4sWf3HjrhKquDhr8g5PpWu4K
+hZe3GmJ2rZG95pXOKQVU8VoaV0enLznWVcdbHl+pFyYEwJwnFPh6aQPLEeKo6nOj
+z8VPJ6BT15BQk3p+P7Hp4MwLg+cNdc9gtOxtcTXhJi2bmcihQkevsJ7iV0pwxB9L
+BIfKPfdRzxsQ+G8SYL8Px6ie3/QaaEhompu7wz0CAwEAAaOB/DCB+TAOBgNVHQ8B
+Af8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB/wIBADAyBgNVHRIEKzAppBAwDjEMMAoG
+A1UEBwwDQkhThhVodHRwOi8vYmFoYW1hcy5nb3YuYnMwMgYDVR0RBCswKaQQMA4x
+DDAKBgNVBAcMA0JIU4YVaHR0cDovL2JhaGFtYXMuZ292LmJzMCsGA1UdEAQkMCKA
+DzIwMTYxMjA2MTkxNjE1WoEPMjAyMTExMjIwNzQ2MTVaMB8GA1UdIwQYMBaAFGSl
+UQSGX98MKXgOBriuvKYLYQE7MB0GA1UdDgQWBBRkpVEEhl/fDCl4Dga4rrymC2EB
+OzBBBgkqhkiG9w0BAQowNKAPMA0GCWCGSAFlAwQCAQUAoRwwGgYJKoZIhvcNAQEI
+MA0GCWCGSAFlAwQCAQUAogMCASADggIBADhuApDQA4PhiEYo5RghJPKN+V0ukSXX
+QQiMIVpxws1Cai5H+iI7WO3fgMjszUWWWKlJFMv0CacJIXr4quUBaJIlQ7cp280w
+l3NkQOXIRAoenv4y4HtccpaTbZjHTQzaddMw0RmizpTEMGPGGWyNtFO40z1YcIjl
+XPDSxPcT9UqJeu4ZHS5LMXEfeeEduUVvBIp+Zy42/PwcOEJ2N9TtQ7PrGynDpnmU
+JdEL8mrvIc9HtyUn9cdioH10yxHBLXPYEYJ0jvAgmtJAcpHsA0Z9AkvQl7uLkfZT
+rostBDk4kHEa+VOV2xwgHdkyFt3DhAawCStCDh3lXkMw+O3yA5/Wth/bTe+rVkzL
+oGQxD3bfwRuXzvx01OiyLSx+NeMr+mz58RNK4+uyDsOQsvma8rh/2h2OZ4DVV4zg
+lAZZq+x3UIpfbw2XXPT4Vw9VDEgEUwTrHz1ZlauQf7zLza1P1UJVkTBb7IYdNXgj
+J5TS2CvezCFJ0Y8idyuOkj63HQpScWXeVYuFcTACKa0ZUSTCOXCMqyI9Sz9yp5Xh
+y2zWCXN9H1Pg0/EAElsikwEiXVpoXOgtaYfNlp4Q21yC4xAS5kRg9OJfzFAgoGnG
+7cBYxLEOfXqLEmsHydOnxFpM+Hud0M2mZOefzqKmhHDgG0CZoOx4Oim9SguLrgvs
+LqDMmbzn9RUM
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+N9sl3s2Wikpq
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+B3HDSGYEOVdjpaNe
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+YhObe6puoMKDiOx6bgQGGyE=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+49x7v63X5uRIAlnsDxTfx9U=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGcTCCBCWgAwIBAgIESULC/DBBBgkqhkiG9w0BAQowNKAPMA0GCWCGSAFlAwQC
+AQUAoRwwGgYJKoZIhvcNAQEIMA0GCWCGSAFlAwQCAQUAogMCASAwPzELMAkGA1UE
+BhMCQ0ExCzAJBgNVBAoMAmdjMQ0wCwYDVQQLDARwcHRjMRQwEgYDVQQDDAtjc2Nh
+LWNhbmFkYTAeFw0xMjEyMDUxNTU3MzdaFw0yODA2MDUxNjI3MzdaMD8xCzAJBgNV
+BAYTAkNBMQswCQYDVQQKDAJnYzENMAsGA1UECwwEcHB0YzEUMBIGA1UEAwwLY3Nj
+YS1jYW5hZGEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDL5DZMQCWD
+1k+MnU07pU6+p0sixT1s625/XxUQCgQtWpxDBMIYd8llqZnBsy/leHjZfzuNqMro
+dCHg3BjqpWLLEIXsEOsU7TpG/qx6dBTQEq3Z69ZPnuGhwmHFHkRxBqJd1ZNKsP3i
+nTQ7QhGZKp7zB+6kUW9Mi7lfhPovp3UVx5fUce3eCKZ7J08qLQiY/nc+jI+iqVhE
+Auvy7q/Wy3j2hVJCdll2x5YAKolONxILgn42FCCMZxADCEXAo04h/Lsi1cPJ1veS
+zTYKFc+vKW6VqFsEuw5mUkJMTk/JI2/vsV9SEucSCDpFMUeJrS1YeSd4f1nzZIHM
+ccSdqkDFR4ievIU0+D3gUADtCq1TZYbjemqQVf1xEGniCuK4Q73qksL+th+ffsFq
+yIeQpfzYLF4YC6ICrBsQiPv8vi2pMHj+BTtOaGtTeF5dSwiJ+NanVVokKUJnXtD1
+Zwrx/UQJUC9+HcSFTooKGidYG9DDJn45BSTc9LLbo4oBfjLT9k4pyqNYOS5niOjH
+ue3ZRzUDeAfwMMpatorm82ElbEGWTU+HFadMmR2HZk+e0XzYnpY9pdYpBfO38P6o
+V1g1j5Iei8p5d+yDWrIZCxyd7X80Vy9cGfVTY2ljd3uBXCXt1VZWenaRRyX4QQcH
+RUr/Eu4/WoBIHHMeofPv1mZf3Lmm+V0FnQIDAQABo4IBCzCCAQcwEgYDVR0TAQH/
+BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAQYwOQYDVR0SBDIwMKQQMA4xDDAKBgNV
+BAcMA0NBToYcaHR0cDovL3d3dy5wYXNzcG9ydGNhbmFkYS5jYTA5BgNVHREEMjAw
+pBAwDjEMMAoGA1UEBwwDQ0FOhhxodHRwOi8vd3d3LnBhc3Nwb3J0Y2FuYWRhLmNh
+MCsGA1UdEAQkMCKADzIwMTIxMjA1MTU1NzM3WoEPMjAxNzExMjEwNDI3MzdaMB8G
+A1UdIwQYMBaAFIyOl2lGfq0Gh9u9+F7m5sXJLwciMB0GA1UdDgQWBBSMjpdpRn6t
+Bofbvfhe5ubFyS8HIjBBBgkqhkiG9w0BAQowNKAPMA0GCWCGSAFlAwQCAQUAoRww
+GgYJKoZIhvcNAQEIMA0GCWCGSAFlAwQCAQUAogMCASADggIBAKk/X412wl6IoRZ9
+Q+jUbYjLlv9gvs+xzCPJIgpeCgqQ4QWUaOmC0Dyy0VAOWA1chF9kMkL/q305Ejz9
+biP0J7ImzgvpkYZo26wGiP0X/m8yyiT2wo3tIdWlG/2C6av9BxZotmZqvXZcRMfs
+C9Do6ELxe5PLRCVmFwODhPasIfyrLuaTx8nEbTCeUwWyTSD5TodyQjOOnijywKu+
+hV6d1Fh60u7AtNxOGSUTyQzfkhNYtWtY5vD/zOYnYDtPUL70pVV6kHC/OF8iSPS5
+iM0+DS+vKAOXclQxKqPcRnOsJ9Zy2svcBCvCgVOO3QMb+m90s59AQQGeZDGVVI5s
+LsJ3Q6o+AgoDz1v7mXiVkAqYj3ZLMhiWf6/o1I4A8b9Dw8fUKdd+LF5NPjhhUrZG
++/KxvCjYhtwcyw01QHl9VZY4yNywfuI+hXomZHXBKhKFBorISM9gwyMLTMVce8tw
+8Pfyd/Vk57Hq+FAhzH9TgyyTADaBEmiAlnyZA3Xg4LKsY+7SXMRtVzYwWVB+9ohI
+lj5Ub/G8MHmT2IujyuEyNCHokrrvlYQzn3ORYAtRbplAH1fGLwH43I/shqqcYGRt
+bnL9d29vwYnQ1qBiM8yBslZCS/2nKS5jMCZFUobL1e31eW5t03R7eSFwDHCw4aZV
+Q5qDALmOAOGWdakTLnfOMdiGBqGB
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGcjCCBdWgAwIBAgICSwEwCgYIKoZIzj0EAwQwgaIxCzAJBgNVBAYTAlRSMTAw
+LgYDVQQKDCdSZXB1YmxpYyBvZiBUdXJrZXkgTWluaXN0cnkgb2YgSW50ZXJpb3Ix
+QjBABgNVBAsMOUdlbmVyYWwgRGlyZWN0b3JhdGUgb2YgQ2l2aWwgUmVnaXN0cmF0
+aW9uIGFuZCBOYXRpb25hbGl0eTEdMBsGA1UEAwwUUGFzc3BvcnQgQ1NDQSBUdXJr
+ZXkwHhcNMTgwMzA5MTMzODIzWhcNMzEwNjA5MTMzODIzWjCBojELMAkGA1UEBhMC
+VFIxMDAuBgNVBAoMJ1JlcHVibGljIG9mIFR1cmtleSBNaW5pc3RyeSBvZiBJbnRl
+cmlvcjFCMEAGA1UECww5R2VuZXJhbCBEaXJlY3RvcmF0ZSBvZiBDaXZpbCBSZWdp
+c3RyYXRpb24gYW5kIE5hdGlvbmFsaXR5MR0wGwYDVQQDDBRQYXNzcG9ydCBDU0NB
+IFR1cmtleTCCAkUwggG4BgcqhkjOPQIBMIIBqwIBATBNBgcqhkjOPQEBAkIB////
+////////////////////////////////////////////////////////////////
+//////////////////8wgYcEQgH/////////////////////////////////////
+/////////////////////////////////////////////////ARBUZU+uWGOHJof
+kpohoLaFQO6i2nJbmbMV87i0iZGO8QnhVhk5Uex+k3sWUsC9O7G/BzVz34g9LDTx
+70Uf1GtQPwAEgYUEAMaFjga3BATpzZ4+y2YjlbRCnGSBOQU/tSH4KK9ga009uqFL
+Xnfv51ko/h3BJ6L/qN4zSLPBhWpCm/l+fjHC5b1mARg5KWp4mjvABFyKX7QsfRvZ
+mPVESVebRGgXr70XJz5mLJfucple9CZAxVC5AT+tB2E1PHCGonLCQIi+lHaf0WZQ
+AkIB///////////////////////////////////////////6UYaHg78vlmt/zAFI
+9wml0Du1ybiJnEeuu2+3HpE4ZAkCAQEDgYYABAEDj9snZ74s3ZmGYcTQqwDfYt23
+M2YbKiKcu5z/JBJykQWHcsXbK62F7k4rRQpaOZsn5eL24UMurF5HZTyLlYLMOgBs
+v4bhY5Q9DpX+o97qXFtKmwHo/pQhRZYyLHoaKahbEt6Keq2lBlKwumCyV05Z+LWq
+LBHq3Fh7G0/2YRBq7Qgo5qOCAgkwggIFMB8GA1UdIwQYMBaAFG+bu8ae7NrZvDHp
+UOEe0MoAIgWWMB0GA1UdDgQWBBRvm7vGnuza2bwx6VDhHtDKACIFljAOBgNVHQ8B
+Af8EBAMCAQYwgYQGA1UdIAR9MHsweQYLYIYYAQIBAQUHBgEwajAyBggrBgEFBQcC
+ARYmaHR0cHM6Ly9wYXNhcG9ydC5rYW11c20uZ292LnRyL0NTQ0EvQ1AwNAYIKwYB
+BQUHAgIwKAwmVmlzaXQgb3VyIHdlYnNpdGUgZm9yIG1vcmUgaW5mb3JtYXRpb24w
+EgYDVR0TAQH/BAgwBgEB/wIBADBBBgNVHR8EOjA4MDagNKAyhjBodHRwOi8vcGFz
+YXBvcnQua2FtdXNtLmdvdi50ci9DU0NBL0NTQ0FUUl9WMS5jcmwwUwYDVR0RBEww
+SoEWcGFzYXBvcnRAa2FtdXNtLmdvdi50coIeaHR0cHM6Ly9wYXNhcG9ydC5rYW11
+c20uZ292LnRypBAwDjEMMAoGA1UEBwwDVFVSMFMGA1UdEgRMMEqBFnBhc2Fwb3J0
+QGthbXVzbS5nb3YudHKCHmh0dHBzOi8vcGFzYXBvcnQua2FtdXNtLmdvdi50cqQQ
+MA4xDDAKBgNVBAcMA1RVUjArBgNVHRAEJDAigA8yMDE4MDMwOTEzMzgyM1qBDzIw
+MjEwMzA4MTMzODIzWjAKBggqhkjOPQQDBAOBigAwgYYCQQjz92A0LonPCVw+GM9U
+P3AZ2+vOfqT6dMit12eK3lfV05x0hedfQ5bsOwODhv4iVb+HMHE02pGYNUlZlqIK
+GYImAkFolmVGtwvyZXOg6UFUROo8HL+LD8B8OiZ4tm/ShYxUusAHmBHaG/eQ9zyW
+RhtzAzCHnF5XSVwA+q5HhDhJsjpcYw==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+W5cKYdPGK5zXqp8VbQELr301sN7aKZk=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+KYhu0K6DchGZeZwjJq2Y75v+OIztH6LVp2k4vg==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGejCCBd2gAwIBAgIKAJFhHVWs4X+hVDAKBggqhkjOPQQDBDCBojELMAkGA1UE
+BhMCVFIxMDAuBgNVBAoMJ1JlcHVibGljIG9mIFR1cmtleSBNaW5pc3RyeSBvZiBJ
+bnRlcmlvcjFCMEAGA1UECww5R2VuZXJhbCBEaXJlY3RvcmF0ZSBvZiBDaXZpbCBS
+ZWdpc3RyYXRpb24gYW5kIE5hdGlvbmFsaXR5MR0wGwYDVQQDDBRQYXNzcG9ydCBD
+U0NBIFR1cmtleTAeFw0yMTAzMDUwODA3MTdaFw0zNDA2MDUwODA3MTdaMIGiMQsw
+CQYDVQQGEwJUUjEwMC4GA1UECgwnUmVwdWJsaWMgb2YgVHVya2V5IE1pbmlzdHJ5
+IG9mIEludGVyaW9yMUIwQAYDVQQLDDlHZW5lcmFsIERpcmVjdG9yYXRlIG9mIENp
+dmlsIFJlZ2lzdHJhdGlvbiBhbmQgTmF0aW9uYWxpdHkxHTAbBgNVBAMMFFBhc3Nw
+b3J0IENTQ0EgVHVya2V5MIICRTCCAbgGByqGSM49AgEwggGrAgEBME0GByqGSM49
+AQECQgH/////////////////////////////////////////////////////////
+/////////////////////////////zCBhwRCAf//////////////////////////
+///////////////////////////////////////////////////////////8BEFR
+lT65YY4cmh+SmiGgtoVA7qLacluZsxXzuLSJkY7xCeFWGTlR7H6TexZSwL07sb8H
+NXPfiD0sNPHvRR/Ua1A/AASBhQQAxoWOBrcEBOnNnj7LZiOVtEKcZIE5BT+1Ifgo
+r2BrTT26oUted+/nWSj+HcEnov+o3jNIs8GFakKb+X5+McLlvWYBGDkpaniaO8AE
+XIpftCx9G9mY9URJV5tEaBevvRcnPmYsl+5ymV70JkDFULkBP60HYTU8cIaicsJA
+iL6Udp/RZlACQgH///////////////////////////////////////////pRhoeD
+vy+Wa3/MAUj3CaXQO7XJuImcR667b7cekThkCQIBAQOBhgAEAM+02ULzpF2ptrhm
+BNuFBPLH1smVEWlb42BUGc57xR1h/pU77I1IW+3GVMdzrPfxJZzTa2uFHASF5Ngn
+JoZMBVEaAQrlhOYG/SummKYVvyyfUmxhbPyufHSJ7kS0Q1T23jT2nnls5Bpzhcps
+qVtyHdsN2P3B8u/MKPjD6XCDhp5SbE1ao4ICCTCCAgUwHwYDVR0jBBgwFoAUhx9m
+vuJY8ZDfG1LbPNDjxY1FDe8wHQYDVR0OBBYEFIcfZr7iWPGQ3xtS2zzQ48WNRQ3v
+MA4GA1UdDwEB/wQEAwIBBjCBhAYDVR0gBH0wezB5BgtghhgBAgEBBQcGATBqMDIG
+CCsGAQUFBwIBFiZodHRwczovL3Bhc2Fwb3J0LmthbXVzbS5nb3YudHIvQ1NDQS9D
+UDA0BggrBgEFBQcCAjAoDCZWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZv
+cm1hdGlvbjASBgNVHRMBAf8ECDAGAQH/AgEAMEEGA1UdHwQ6MDgwNqA0oDKGMGh0
+dHA6Ly9wYXNhcG9ydC5rYW11c20uZ292LnRyL0NTQ0EvQ1NDQVRSX1YyLmNybDBT
+BgNVHREETDBKgRZwYXNhcG9ydEBrYW11c20uZ292LnRygh5odHRwczovL3Bhc2Fw
+b3J0LmthbXVzbS5nb3YudHKkEDAOMQwwCgYDVQQHDANUVVIwUwYDVR0SBEwwSoEW
+cGFzYXBvcnRAa2FtdXNtLmdvdi50coIeaHR0cHM6Ly9wYXNhcG9ydC5rYW11c20u
+Z292LnRypBAwDjEMMAoGA1UEBwwDVFVSMCsGA1UdEAQkMCKADzIwMjEwMzA1MDgw
+NzE3WoEPMjAyNDAzMDQwODA3MTdaMAoGCCqGSM49BAMEA4GKADCBhgJBGThpJWU8
+6BtNFQ2WN0AVzFKBO+OAFv5FUo3d14I2tKRUvJFIezgxtag+BrHUr76YrQ4JVGNN
+5/J1zas2xtmt+F8CQTD/rUUlQNba/iIpbKRFmJdirY7amTlZcr9OIogkJ9Ou15yj
+b2MKLkMJWwdaUley9nDdu9NtKCqNpLhgDjo8cfdh
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGfDCCBGSgAwIBAgIEFTTIVjANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMC
+SUQxJTAjBgNVBAoMHERpcmVrdG9yYXQgSmVuZGVyYWwgSW1pZ3Jhc2kxPzA9BgNV
+BAsMNkRpcmVrdG9yYXQgU2lzdGVtIGRhbiBUZWtub2xvZ2kgSW5mb3JtYXNpIEtl
+aW1pZ3Jhc2lhbjERMA8GA1UEAwwIQ1NDQVByb2QwHhcNMTgxMjE4MTAxMzUwWhcN
+MjcwNjE0MTAxMzUwWjCBiDELMAkGA1UEBhMCSUQxJTAjBgNVBAoMHERpcmVrdG9y
+YXQgSmVuZGVyYWwgSW1pZ3Jhc2kxPzA9BgNVBAsMNkRpcmVrdG9yYXQgU2lzdGVt
+IGRhbiBUZWtub2xvZ2kgSW5mb3JtYXNpIEtlaW1pZ3Jhc2lhbjERMA8GA1UEAwwI
+Q1NDQVByb2QwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDxa03wa52I
+BXLetbCDXJN798J1bEe5RGzYnp6W9EtXTPkSWA1WjXYuf6bPzNLaAojQK6T3N6vd
+X5RDRRAVcH5RQ3ibc2KJM8N2218bdhT3aP7PubmA7iFIUheJFyf1hK4D1eOfRgeK
+v9q963LMXELpoWRxL9vieBzJo4gflYEZRw12FGUUJoR+JtaseLZC6TOANCBtqq4K
+LsAyACzFr6wVYelQHwdcdV1aLP+SEhGiLEPM0dSAAuKLDF4eZ9VMm8WXRfHh1bGJ
+HrOQhraJF3ifbLYhCHnpO9SMCLYcoxY1LtEYSoDEXamO5uuHxx4/znxZZ9rPPA+M
++f5SOYW2Y0gIaZYBkIi4WQHwPzr7/JiDwHJ3O+gVWj52ur0UBsAaLxEfczOtKjjr
+iae97HgmuLQqQ4cQ46K8c9AflrgRVYvJGXKRjo3SpW2ZOWM0IwPjN8aQa6QLpiaf
+yUFb3QSZZD4VnVYfFOmzoL6BBPaxHH14Qux1C8BPPtfYC7HBUvXBYw5Lt+d6Azbk
+cOwnhJiuXDBtuy+j0wMRIsRXSWerpTNHPnTRVftnTIZFL9jGXpCm7M+F/Zx8x7vq
+DX04inagnFokO8PCZqi6AGPyCQYrVzjWWwxdaRaI9H538bCmimKace/IxSFfmdKE
+5D1em2++CBiWgBKwpE6GA9SeN+u972GPDQIDAQABo4HrMIHoMCQGA1UdEgQdMBuB
+GWRpdC5zaXN0aWtAaW1pZ3Jhc2kuZ28uaWQwHQYDVR0OBBYEFC/bOl1gmZrF12lf
+UyeYe1urKclNMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/AgEAMCsG
+A1UdEAQkMCKADzIwMTgxMjE4MTAxMzUwWoEPMjAyMTEyMTgxNjU5NTlaMCoGA1Ud
+HwQjMCEwH6AdoBuGGWh0dHA6Ly93d3cuaW1pZ3Jhc2kuZ28uaWQwJAYDVR0RBB0w
+G4EZZGl0LnNpc3Rpa0BpbWlncmFzaS5nby5pZDANBgkqhkiG9w0BAQsFAAOCAgEA
+HZoA1nq+cRPPeQY4sA8tInCKGQeQBjoG8WLNREzSkQQH7XeyaCdsb0n5p1m3UYYo
+IZtkvkOCB9JvrI3Y7vnper8U7yM9yRhwXoiNyp5S6biHADQa79pG4H5FrV31sJg8
++btm+euvZAJQO2E5IrVJ2RBVEb+Hn+Z4ONizYOZUVE6Ek7nngJeC1bIByvLaCTxw
+aDZiMneSBwDiBn3If14DxY/+G5y7lU0lUAGm15KTpODQZgbRzzIDwsRiUgdvOU0S
+/P93BjohzCM0nbCb1kavYvAn3yChRVPdGKo2YHvHirQ0MoNo7/HOO9Akt7zPWgMg
+cD6Z85dxlnIt9TZWsy/ouC9v4Zr97vNv9Vfq7bkZs+H5/8spjlD23NOzpD4sgPD0
+i2DsH9c1LH8ulpwaHORuZC9NgDAiHRYIh7yrtJMa83e6VXWkoLLY3ZWMhhHR/iJ4
+vONJFJ7dWowS4d126hOLFj7LQrRdw0LeDO7FIIEQ77XI/lpNq2CwU6l/dO1Lx0Rh
+mWG/Wfw7+/D0D2s6b5GlC+NImV7wKoj05mIrnpRkZxNrrFNeLBYXeBSLX1b2MHTp
+JIYmKXKyah21cyX+muptqE7S67qijHNNlgGCDB/bGN1tGiV9csaC9tNZ6r+4/0pe
+sB9g2lIjk5SMoV7blfSD2a3p+ZiF0GwDkQYGmTWwM4o=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGfTCCBGWgAwIBAgIIGijtldQEPagwDQYJKoZIhvcNAQELBQAwgYgxJTAjBgNV
+BAMMHEVDTiBEb2N1bWVudG9zIGRlIFZpYWdlbSAwMDYxHTAbBgNVBAsMFElDQU8g
+TVJURCBQS0kgLSBDU0NBMTMwMQYDVQQKDCpSZXB1YmxpY2EgUG9ydHVndWVzYSAt
+IFBvcnR1Z3Vlc2UgUmVwdWJsaWMxCzAJBgNVBAYTAlBUMB4XDTE5MDYwNDEwMzQ1
+OFoXDTI3MTEwNDEwMzQ1OFowgYgxJTAjBgNVBAMMHEVDTiBEb2N1bWVudG9zIGRl
+IFZpYWdlbSAwMDYxHTAbBgNVBAsMFElDQU8gTVJURCBQS0kgLSBDU0NBMTMwMQYD
+VQQKDCpSZXB1YmxpY2EgUG9ydHVndWVzYSAtIFBvcnR1Z3Vlc2UgUmVwdWJsaWMx
+CzAJBgNVBAYTAlBUMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA1QQJ
+F20sFyWhJ0E2+xONc3+KFyOaAt/hbO/JGFn9fIME0NNvp9L1JqEJ4oCopnCLD2G/
+51N33/CuUVUiv1d1wJMFO/jXbKIHHISLPC6g5hh+EMhYVgxDnJ0LlizTJgSskb6l
+xOztg/UE6c9T+2GI0C/1bVN/aOlIi2QAJ7EeVNgjnA/vaQsLFDnopstzTv1ykjMI
+4NbWkvbt/yZm6ApzjVRU8eGrkgB2o4srvzEH4JhANqLDBVoW/8zyA27Eu9ukELgh
+uaYmJkq4v7LOWeisL1VV1gXxsPnAbcBAnyWCBPb0al5DdnndF7sZHknDW0uxL7Jo
+bNeBzxbabHDGN5Hu45HD+6DzWKrtcmmrdQCMANFPPxeISNPmePWXNRG+ssvq73ir
+N6izxqSVytST7d9SVvNG6lu68RgZp7f4P0pgYpgyfIvVtx2HPvu/5d3MZT3o/f9B
+OgutYk53BEqFfvC4MIRFwSIgynYSghm6aGDPX2PvSGI1BvJ6uYji3o3FdFYKKCB1
+UcPZzQaJEhrKhUr9wWTFvn4ivsYpIJHQt7JV5xAQ+j1ZmjXRQQUutwYQj2uAVOL8
+8jBJogWGQWQ31bt48lftLXBIjGVKD6CgQit7WOxpFRKiAIxAy6qrNDYx0xvn97vg
+bMa820l0XWHezI2xwh4WXrBjE/1DevXWK/cZt48CAwEAAaOB6DCB5TAdBgNVHQ4E
+FgQU30PEnl/bhkxNME0iMv6W+OafYJswEgYDVR0TAQH/BAgwBgEB/wIBADAfBgNV
+HSMEGDAWgBTfQ8SeX9uGTE0wTSIy/pb45p9gmzAaBgNVHRAEEzARgA8yMDE5MDYw
+NDEwMjQ1OFowFwYDVR0gBBAwDjAMBgpghGwBAQEDAQEBMC0GA1UdHwQmMCQwIqAg
+oB6GHGh0dHA6Ly93d3cucGVwLnB0L2VjbjAwNi5jcmwwDgYDVR0PAQH/BAQDAgEG
+MBsGA1UdEQQUMBKkEDAOMQwwCgYDVQQHDANQUlQwDQYJKoZIhvcNAQELBQADggIB
+ACx+WeRDDuJxIc+3V3zgkNaD3DAfPHAeLV3OHjqsgSxn8e1EHQElZFUJe7EHh9Xp
+y4NZaxq9oyTDXTQnAO/Vu2NOHeDa3IDMU2ygRgjlsueIgt6sf7euOCR8a8NcyKlg
+nPrdCeFHKYHx9nzGoDu4craVaeQgbHpg0+NRmEt5kRaV+UOG16tQm4BipZkJr90T
+TtyO1qg2dx98LZ9CrVvRJhGYXX7dqRc/G24MpaPk3K+wzrxwBXPzosrIqMHj/vqS
+ttbYrX82KtTmdUlyJkoeODHX9yFoyprteqVudK8T6VRJ48ZIdOhOX4lwx/oHiPyD
+9hx34jZJ/5lVBl+qn91gnSzrDjiMME1Ydp51jjkV4+nl1gcCiFgWRDxnTi+UBdD0
+hsiIojYG7svgNxkqJhuuDr7pF4NmdxHzvIDFb9vB7GiZO6hcM8HakZ00V9UCdHi9
+XDcYfF9FDNB0wmAZ1pNxGirL4be+QNn5NjIefRgkRAER/M+6toAL7KHAoJlTg9fU
+TNAJ+lDGZvewDuRMOn9AorZtgpwOPoQNLpmq8fg49XBrEHMwQuzEXSM63QAl34Oc
+Tx4e2A313aobeXmVdHKxl+a9jkR2nzDtet5hxeWg/l/76GBS5RMLqB9mYQ44Iyk8
+8TxXny7q6rSeVy8pyBszEtAi/Pl5qw8Naw+TVyqvWysV
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGgDCCBGigAwIBAgIBAjANBgkqhkiG9w0BAQsFADB8MQswCQYDVQQGEwJJUjEd
+MBsGA1UECgwUTWluaXN0cnkgb2YgSW50ZXJpb3IxGTAXBgNVBAsMEFBvbGljZSBD
+QSBDZW50ZXIxCzAJBgNVBAUTAjAyMSYwJAYDVQQDDB1DU0NBLUlzbGFtaWMgUmVw
+dWJsaWMgb2YgSVJBTjAeFw0xNzA4MTUxMTQ1MjNaFw0yOTExMTYxMjQ1MjNaMHwx
+CzAJBgNVBAYTAklSMR0wGwYDVQQKDBRNaW5pc3RyeSBvZiBJbnRlcmlvcjEZMBcG
+A1UECwwQUG9saWNlIENBIENlbnRlcjELMAkGA1UEBRMCMDIxJjAkBgNVBAMMHUNT
+Q0EtSXNsYW1pYyBSZXB1YmxpYyBvZiBJUkFOMIICIjANBgkqhkiG9w0BAQEFAAOC
+Ag8AMIICCgKCAgEA52a8LhCTejth20l54hgHwlxKOzr3/UvPVBchs6SdEzN/Wxrk
+SNWMO2N6+iKA9LB+mDgYqMhubQQcuUuWjALuh0eFFMtvj6mK8I3T+Cli1Jyk3hzk
+edXa9wot0Ua/o40/GvrfOplNdz121sqvIgJFM3RN9T4aLvTk07w0FpIw5glmzf1/
+FXk5jhvmTiWOahCNgvl1jdbzLdpkHc9MMJzq7JUqFZ0H//nQi85RHdAz4ztvyola
+zLRA3zHhWvjsZYBIQ7KKnapVE7JoYMnac4TNrDemIFgSwarh4GWCJmzwihjewsJy
+elJbut0vXngdsQooY6Gt1woiqxi/mjhUgHZagR2LRG0FaF8jjmUyFal7GLtTdNQs
+5JEXjl0XW3s4VcTIs0dkCGZmEOjXRFzlaIb2az4Pyftg1dhr4c7MrD7uaWWznuKU
+AzVN/nlN/qP3+HMwtIBaeUCTDZkfkSKVd/XWfeTsy8paHWiNBunuij1ITiAWeIaF
+giIghI66RJHJMuT0q+M/4nwWgHqnzc5mlNiden2fcSzBjbtzNResdbI2/cclsUtc
+REmaowWvpYDmMl/0LfofofiHn3AQOaJmeLm1Ns+PzlfKt+/rTt4WznbBRm159zs9
+2rNmn7Sew0I0XCjDHQi1nLFk0dtuVFZ44LmGybezz7N2DTL4eB/ltN604jsCAwDd
+I6OCAQswggEHMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/AgEAMCsG
+A1UdEAQkMCKADzIwMTcwODE1MTE0NTIzWoEPMjAyNDA4MTUxMTQ1MjNaMB0GA1Ud
+DgQWBBRJiS5pTRyWiqzhtkBD3PTMMYJ2uDA3BgNVHR8EMDAuMCygKqAohiZodHRw
+czovL3d3dy5pcmljc2NhLnBvbGljZS5pci9jc2NhX2NybDAtBgNVHRIEJjAkhiJo
+dHRwczovL3d3dy5pcmljc2NhLnBvbGljZS5pci9jc2NhMC0GA1UdEQQmMCSGImh0
+dHBzOi8vd3d3LmlyaWNzY2EucG9saWNlLmlyL2NzY2EwDQYJKoZIhvcNAQELBQAD
+ggIBABJtnVQ8z/DXRgxRw2sBIGKxh9vjYgfCddg1qTJzAnH0u43Zb2NV4omzkPT9
+65IyTjSyIzk4WNcf9lmUPiYR1t8KJYMuZ3e8FuJ+QIKTSEtR3+i8mF0gDoTcukDt
+DmRe8tx8MDAoZLiJQ31YRgfpmCi72PZe0sHX9tqbHjqmKpNuev+7lRqjmgRoyphq
+n7v/SoQHvDBpwKbJICQ1zckG2nUbVa3as6d6bL1u0824wZu+8+dXuC8iAdqZtDA4
+cSAwFL+RjfEeWxmENXiBL7yEuikRy5GYI5kw+2l8OUmWFbceY4GlHg55thL0CNh3
+Yh833CI+n8W1S+Qk2huGQltYBH9jtPgENW4Hb9sOVNkO8mA+M0XuBCHjqx2V5XLM
+lHgguo/KdSqJkg3TmclHIVzazKP0yNmCPgyN0DrIe56pkJ/KTKgKAmxuQDbvXvii
+hHiv44v74SUW/X9J++A0kytu2YhTkjIzbJWDMr/2qtY9GAyyRoeOFlQUsks1hZGE
+OzgE8kY3KdQ3+WuA93F5ChwMv795lEi9fB3frEwf5KpQmWto7CFFwNRZLuofJt7I
+9TPKp3R21h3ywWIsz+bbXlYGe1fHTctRKcX64Syatv1qNF90kBTliLTlt6qVeilk
+TPNTVHU9/JKzlmYI0VmSvOZ+KljT5BUHwKX/Y09dmoXGBws/
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGiDCCBHCgAwIBAgIBGDANBgkqhkiG9w0BAQwFADBkMQswCQYDVQQGEwJMSTEW
+MBQGA1UECgwNTElFQ0hURU5TVEVJTjEgMB4GA1UECwwXQXVzbGFlbmRlci0gdW5k
+IFBhc3NhbXQxGzAZBgNVBAMMEkNTQ0EtTElFQ0hURU5TVEVJTjAeFw0xNjA1MTkw
+MDAwMDBaFw0zMjA2MTkwMDAwMDBaMGQxCzAJBgNVBAYTAkxJMRYwFAYDVQQKDA1M
+SUVDSFRFTlNURUlOMSAwHgYDVQQLDBdBdXNsYWVuZGVyLSB1bmQgUGFzc2FtdDEb
+MBkGA1UEAwwSQ1NDQS1MSUVDSFRFTlNURUlOMIICIjANBgkqhkiG9w0BAQEFAAOC
+Ag8AMIICCgKCAgEAnd3K4dtsN9KpwrWLY/qFpe9/Q2zYmXPRfZmKN83ck4CZZCzk
+2ChEahCyQb/+LHbO0aC9Xkw5mUhpMUHc2PUcBzd8jABXtIf6vIigxHDAp03Fa/Yv
+gKy8kIVytRugF95SmWbiYxgUiUvTQqJE/s+AIiBD9hQNUJsV4d//4Uhh4lGVA75/
+mEomiK3xXc5zNQk68rsAhe1I8qhXNOshVz4yJLB3jp4+O+GkU5NVGlPtIEG5itcH
+ZDr6fuKVpGkopNLkQGRrIOUO2YUYIdzhRIe0LrN3D+YIgU08lpkmle+imWGUBJyM
+uv4Q3gWNhUNMOmxtVnweiRKzN7oDMvaaJwaYiBeZmeRWlZYPYp9ATGKxdDDVt6tO
+dWRoB1XfcU+wvnPCG7gLBkkOH+WxQXm0T5fKhtH6UQHhZcFBzRVllG0ZIN+R+7Je
+cvJwk7QFmViyzjx9POdaBVjtSwTJyEyWui7izUexSRStjsEj02A3DUWUOiX60NET
+VAemW/jnez1RxepNiaFDQlQACFNzBpstEZnX6X25NoujdslPuD6sapVA3f1fMWOf
+OZz0FOqhBXFEpaQXPpqY74Lhxze32cQIt3F626a6tbT7chOcvWsBw2QValNXnF7L
+KPaXjrOjzIbalsdrrIoiO9BA2G/xQFyn9RmyvraKuvmB9+yJFepmJN0aDjUCAwEA
+AaOCAUMwggE/MBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgEGMB8G
+A1UdIwQYMBaAFLNKeaIjpOF9+RL10yM12CnYPxCCMB0GA1UdDgQWBBSzSnmiI6Th
+ffkS9dMjNdgp2D8QgjAsBgNVHREEJTAjgQ9pbmZvQGFwYS5sbHYubGmkEDAOMQww
+CgYDVQQHDANMSUUwLAYDVR0SBCUwI4EPaW5mb0BhcGEubGx2LmxppBAwDjEMMAoG
+A1UEBwwDTElFMFAGA1UdHwRJMEcwRaBDoEGGP2h0dHA6Ly93d3cubGx2LmxpLyMv
+MTIxNjUvZGF0ZW5zY2h1dHotdW5kLXNpY2hlcmhlaXRzbWFzc25haG1lbjArBgNV
+HRAEJDAigA8yMDE2MDUxOTAwMDAwMFqBDzIwMjEwNjE5MDAwMDAwWjANBgkqhkiG
+9w0BAQwFAAOCAgEAcaT8RKOW/ZBGYejNwEBCZZIQDamQeWmyWP1TH6Y/ys2dqIuO
+13i7zd40UZ1Wg9PJ2Vu0BXDbL+waYWZMiSJe9yrAxY8yQijgblBoqIbnDhlA639M
+1i74NTjbM/4vYbhqBV8K/H7IVx8fJkZ55recvFltmCjgNVtRfFGO70NClLDcLiGy
+uM+fP6CG6QhIVqw3C+yw4SNqm1OhBNPeCoHQu1zLBaVmtCwP6RWw+eas9tr+V9+h
+doJqex3/qCJrSQivFN/USFnnvcp71SE11NMCsBoO/i9wHtb6Bd4yx1uqiKOP5NTZ
+ynUPkQQStiG+kk7pDAdreiMPl5rdYNEe7htmkZzu9MizBkaNQYiY/izgdGx3WCNN
+69gUMvaTwIR50Q6b+e49CzZYRO4vGjt7awfCfNhL16Ojszv/fsKUjgbKLZJC9UmT
+AEsFtYk+SS2oIo5flC+ToohgdVejwDH9lHFznZSg5wrAy94ggupXtx2tYvR90c7E
+NxjtejP5nV2c/KBn2yHNx1X2Z9Yi37RZtMr5tQFpxN7qFLjzVC3PwYaYqKCBV062
+dldGdSzBFAISSErxkqNQHbbCdhMrDd7xoe/srMZpwO7rourWWqaARDpo2yFk/iv+
+8uaYJIvT2H6yCXBaQ7Laiv4xqTB9BYwKjhGSoPa4Y5y5NwUngFXyUWDW6v8=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGiDCCBHCgAwIBAgIBGjANBgkqhkiG9w0BAQ0FADBkMRYwFAYDVQQKEw1MSUVD
+SFRFTlNURUlOMRswGQYDVQQDExJDU0NBLUxJRUNIVEVOU1RFSU4xIDAeBgNVBAsT
+F0F1c2xhZW5kZXItIHVuZCBQYXNzYW10MQswCQYDVQQGEwJMSTAeFw0xNzEyMjAx
+MzIyMzZaFw0zMjAxMTkwMDAwMDBaMGQxFjAUBgNVBAoTDUxJRUNIVEVOU1RFSU4x
+GzAZBgNVBAMTEkNTQ0EtTElFQ0hURU5TVEVJTjEgMB4GA1UECxMXQXVzbGFlbmRl
+ci0gdW5kIFBhc3NhbXQxCzAJBgNVBAYTAkxJMIICIjANBgkqhkiG9w0BAQEFAAOC
+Ag8AMIICCgKCAgEAq85bZad/NPFLq1WyGRSzogKvy7SMoDFugd+Ht9e/Y3fZm8xF
+OtCsulib3ABcUeNXbnfupAhqTW3JsdHuh7I7polb/xCJFELRDroK+2qlfseaMNA3
+7O5xEmo597HIu2d1I1I36VBpE9H9OuI2nzujy0teZQD2MYZ4bRUxkq58Y8FlkhdP
+kqCJakEswKziZ700GmlIfE0XyiTwr7v9GrLKGxbPtsugJ4PB23iHQlpMbsw7N0FW
+CyTGNVNNxLa/0G9BMpdE4X5ujlDKxZpJ5CTvIA8LNmowtqk4dGPlLK4H/9VloylD
+ULi0tXMLd6rFrB6pEvBQsUYl96ALoX1HcJK3lfnZbIzO9IqXbNQj/HqyF8le1t8q
+4ReS38Nv7mbNhhxc1St1Y0U5ELNbnHoHKBJYUrGoaU2t5uez59Qeusxlk826s4UX
+bNJzE5DVi7BJxPoPN/4nuFxQByMlB093cWTgCsz5jUc0MvJO6nLWv9xOUpT9HeSS
+bJLZ7cE1RvIAdTrT3nVesaPz2gkMDCJgkClvPkIwCZXRz2qyONEI+uI3FbWdALy8
++N9Zrfe11R7i6+FqC9VV5BEuqdbcpf0tMbyMJwVZLriLDdlB5PiCCq1V/jTjc+Bk
+W645yMU5VPPx+s/q6+YrhDTj7weESwBE6JgYj0UQjI9A8YCxgLlBwFKzqvsCAwEA
+AaOCAUMwggE/MA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/AgEAMB8G
+A1UdIwQYMBaAFD4rPpfI4nJ6+yn61DVpP7PPP73AMFAGA1UdHwRJMEcwRaBDoEGG
+P2h0dHA6Ly93d3cubGx2LmxpLyMvMTIxNjUvZGF0ZW5zY2h1dHotdW5kLXNpY2hl
+cmhlaXRzbWFzc25haG1lbjAsBgNVHRIEJTAjgQ9pbmZvQGFwYS5sbHYubGmkEDAO
+MQwwCgYDVQQHEwNMSUUwLAYDVR0RBCUwI4EPaW5mb0BhcGEubGx2LmxppBAwDjEM
+MAoGA1UEBxMDTElFMCsGA1UdEAQkMCKADzIwMTcxMjIwMTMyMjM2WoEPMjAyMTAx
+MTkwMDAwMDBaMB0GA1UdDgQWBBQ+Kz6XyOJyevsp+tQ1aT+zzz+9wDANBgkqhkiG
+9w0BAQ0FAAOCAgEAphyu7xkyRPYPHFOyNdeLw9LasrfKMtxSyIykzuBxjfvKAQuY
+xu6atuE2XxlDgRFr44XCzMxQyzXMi/9BKJwhrzax6aRALcwwIX6cmfVmmhnxKSBR
+A8bKxlZB1ElhCqXMOcSraijaTOUcSBvPcuPrN9peM4+5Rakc7+8EdAybFDL2uV4D
+3/vTEYp9BnsDKx/gt2BNfsjMUTlviy19KjfeyAYxdosbIN2AnqRcJhgRDEkr7j/B
+k8zrVIOVMHB3RgtMjCcQnt73yeblo1eiG9tvJAIBULtqaESy/3iH37+1g0yu2lXk
+plmldGTbmKcEipivAA5WdcCY4ULC7vlozGGBKCaxTgkmaBU8sIMFlT6RqY1c/PO0
+W0jXZ/TDDTsLMkk2yxtAjv+1mkaLuumifBk2qWWbPojgIsoYCsWyuIKkyX5LKmju
+QJ/aEuPwaIMtYqkV4fDbw0kddVP9WIG/n0mdq3mBV2RDRFE9UebS7BbELz7uzpKh
+ynQqxBM8f0hjKG72FTD4WOyQbfXoPB2NJn6rGeGS+pC6xFpT/g9VB6aTI5OwtaCe
+7ke2jKaHv8vPKhYPfGsichjqCf6GTvhY7cV8srkzY4edjdiNXDzxjBxOvQPYSq4D
+lAU8nb2P9YXUERC7Y5umoTI6ZlD6TAr8mEx9jkvWeVe1hos7TAextD9MtTY=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGkjCCBHqgAwIBAgIUPNm2x+9pmvSrTG0JxVUnS92hlBQwDQYJKoZIhvcNAQEL
+BQAwZjELMAkGA1UEBhMCTUMxHzAdBgNVBAoMFlByaW5jaXBhbGl0eSBvZiBNb25h
+Y28xITAfBgNVBAsMGEZvcmVpZ24gT2ZmaWNlIG9mIE1vbmFjbzETMBEGA1UEAwwK
+Q1NDQVBLSV9NQzAeFw0yMTAxMTMxNDA5MjhaFw0zNDA0MTMxNDA5MjhaMGYxCzAJ
+BgNVBAYTAk1DMR8wHQYDVQQKDBZQcmluY2lwYWxpdHkgb2YgTW9uYWNvMSEwHwYD
+VQQLDBhGb3JlaWduIE9mZmljZSBvZiBNb25hY28xEzARBgNVBAMMCkNTQ0FQS0lf
+TUMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC5DPsHIVqHQkZWcX6d
+Ge/dEF3+AvJnukqAF88Mla6NtCzrrIjGbZ3OVpDDWPSnYTho0vY0HIBhlcaAH4CQ
+qo+yoJUo4dwTB63vqwCRl4Y64/uKs0f1Y8YgrwWajsblSf3Ic6O5/8IJopSNDRsZ
+XKPTsdGASDKPNpKqiOrEvbH/2tX7eYaLsRAvXJNp+QaPWK27LSiHsxye08bBTr8a
+JVA6AETrr5M2RNh2EQrwwZh/IUnB7aJvBWbewSh0MqAHMt8WOS693xzDRfVruJdu
+Wk5HCglelhL+gFERCumyw4pL09xASOJIMYr4dEUhdjEeKoXiLdYjzIZgi2UdmUX8
+iTTSZXRg6XrWSqpyqGzaL0MfNbh0UWVbzweTrOVJd9jWx/GbXamm6GSj1zXmaRZ2
+R2dwaKEt++ZL3/XyEJgkbPYRrJYg9z7s/hASNrbgfP+FW0AoYXfQaWsIB3gtk5Ya
+Cc5XTJTWTmNI9T/9n2jRaiS0M3W0gsqZvVrtZuj8hXYAzPzEeghGqOxO7hDXtHXI
+tQeIWgZ1E8Cy/hMgkctGBg4gUzpnDKgLx0JNS+8YnN4b6FIbGZrFEdZzBktKteWY
+AaH6hdaiUrvsO9w1Irt1YUJP0XAfK/eKbIktCojYJBCyzM2zxBNGacuLCJedLGBC
+EbFJORHZXwRfQDBhyN5FFRPzqwIDAQABo4IBNjCCATIwNQYDVR0RBC4wLIYYaHR0
+cHM6Ly9jc2NhLW1jby5nb3V2Lm1jpBAwDjEMMAoGA1UEBwwDTUNPMDUGA1UdEgQu
+MCyGGGh0dHBzOi8vY3NjYS1tY28uZ291di5tY6QQMA4xDDAKBgNVBAcMA01DTzAS
+BgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjArBgNVHRAEJDAigA8y
+MDIxMDExMzE0MDkyOFqBDzIwMjQwMTEzMTQwOTI4WjAdBgNVHQ4EFgQUMDKcfP59
+jwLtxRJa4OtXv+iFiSkwHwYDVR0jBBgwFoAUMDKcfP59jwLtxRJa4OtXv+iFiSkw
+MQYDVR0fBCowKDAmoCSgIoYgaHR0cHM6Ly9jc2NhLW1jby5nb3V2Lm1jL01DTy5j
+cmwwDQYJKoZIhvcNAQELBQADggIBAH+bqxWACaur7nnopcZ+ppCF/s47qE2x86dl
+BITTmJTlou3iSDMPdEaBeuthsqFyipnK19ZzzZ9x259IQWxCWLLjUCVCA75d4zCr
+qJ7pJuyuImJ7HT50RCM1mGCgSRRgiqGhcZqtVrxOWpNmsmgNhekbgkBSu+7S/Dub
+76U0hJA3AckOopFw2rtKCe1/mMfJXZ64ft7hdV+BsXaNU8UFoay3dNrpqOv2fK4G
+NNmJ/OhWXRGS0GU3TZA6ujDwrIf6fgMO1qb4Tau8ucrT9KC6pR3r4Nerz67AguM2
+jj3kmgNyhpprjDrUFxggXWRQ7//7XjsfI0sBls0SokH0O6XutnEBUVo9rzfy7Kys
+DLVGtKMx8Cq5Pqb0KkzfDNkDggzLDYMg5may9vmsJXdPOKfj9tWoPb/k9DTahYn3
+3KENztG6H7ofjDY1Rn1m7DqPR1NYUbtniVK2cyZ806mKeAT7u+7GJDTmX2D7sFtI
+6WCDX389sG8oz5OP1DQ7O2TyZo8oDbLbErSk9xR+4r4cQ7K0rnRTu32ViGrBswAs
+BMMzu+Htr4acNxHIzBFVAq5tfgSxHWk0AxLRJTaBEwmEIYW8jcsvcD0/I3jMVsD0
+aT5tvhIVnvLDj7M/yfRQb7T5htFKuOGpAFAWrBqK5RaNdIf1zDbBamw73RrNOYP3
+5xJvDG0F
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+j5ed6RKXoyrn83E=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGmDCCBEygAwIBAgIBATBBBgkqhkiG9w0BAQowNKAPMA0GCWCGSAFlAwQCAQUA
+oRwwGgYJKoZIhvcNAQEIMA0GCWCGSAFlAwQCAQUAogMCASAwazENMAsGA1UEAwwE
+Q1NDQTEnMCUGA1UECwweUGFzc3BvcnQgYW5kIENvbnN1bGFyIFNlcnZpY2VzMSQw
+IgYDVQQKDBtNaW5pc3RyeSBvZiBGb3JlaWduIEFmZmFpcnMxCzAJBgNVBAYTAlBZ
+MB4XDTE1MTIxNDA0MDAwMFoXDTI1MTIxNTAzNTk1OVowazENMAsGA1UEAwwEQ1ND
+QTEnMCUGA1UECwweUGFzc3BvcnQgYW5kIENvbnN1bGFyIFNlcnZpY2VzMSQwIgYD
+VQQKDBtNaW5pc3RyeSBvZiBGb3JlaWduIEFmZmFpcnMxCzAJBgNVBAYTAlBZMIIC
+IjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAuvqGVbjosqIqQljnL6Z2jG/y
+U4R/BNto9PydJCsQlwFhC6q7mqE01bxNlGqmU5JcQbaOzZ0H7g3VI8p5rqhMGl2U
+5z/tKO4iUYlJDV/AF+AIG2wPWwEtiQsS3lgI373V6U9PG7HOv7bzaq0xiycU7HjZ
+6r64V3yd9eZoLW0HHTva/ecN8l4Gue/ZiW8laQRlg8pfKEj8tUkr9rrCBQwhIV9q
+Vgu7QDhw2LUCJ5KjaAhbLp/y+vsVT8rS+78wuPOSNr0HBDD11ylHjIY7i9lZHzQN
+6afUptf8J845A+V4Oh+0uHbatKQAD/CtuuLd4lNbPb9ShgoTSdddhv+6FHgsPGSs
+EmNkcsoEpdV+sSlT66hf37t+vmTHkg91lkCNJAsIuE2IUlQcorhYb6DM3g+ZVy9w
+BjzPUHxjE2XMUc/2EjpJeMPHKHkxK1YSY7rP08V3LkUYiwmy+/plfl4dj5XndFq3
+38vrimIr9akewNO/xbNCBU8mLdbbBDpSpyLuRjrUanBBM/wdFLzivRgLAgCiRnor
+0vvBJh9FCOo7OCS/7xLkaCYiSUKli3Cn/NJHTawbYsUFk3siD5q5CLdo7a9DZccU
+YFEPypi6D2DEJP/1XuNflonAOF6gkVuV+Hrgczuqq5Ngff7XJsNlIzL9AGQsydW9
+3ALMbAWJe0Bn7msc+RECAwEAAaOB3jCB2zASBgNVHRMBAf8ECDAGAQH/AgEAMA4G
+A1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUtr2A+5AJbi5bo/ZkGT5MK+kYzekwgZUG
+A1UdIwSBjTCBioAUtr2A+5AJbi5bo/ZkGT5MK+kYzemhb6RtMGsxDTALBgNVBAMM
+BENTQ0ExJzAlBgNVBAsMHlBhc3Nwb3J0IGFuZCBDb25zdWxhciBTZXJ2aWNlczEk
+MCIGA1UECgwbTWluaXN0cnkgb2YgRm9yZWlnbiBBZmZhaXJzMQswCQYDVQQGEwJQ
+WYIBATBBBgkqhkiG9w0BAQowNKAPMA0GCWCGSAFlAwQCAQUAoRwwGgYJKoZIhvcN
+AQEIMA0GCWCGSAFlAwQCAQUAogMCASADggIBAAuwrH8lc8ESLcMtRFlN7u5O2bvv
+BJqvU3E2yYnj+UmsSA+LUFbwnyTri1kKKBmdQetcBWxqCyMtBbvtGCXUo6hTc81M
+YkdpBTOhF1SDP//krkjZd7Ra2s7/zNEXJ38pJx32AeTAOlBzR+c3ZbXewxu8o47g
+bwcywir3/PgA29aZPKWEUbzTjVFekjNVZW+1QgB5HjUvC4wt2YtM2wtID9cHZ+ry
+9sAyJqF3ngpMdLOHTiZbnItMqhXaiY6wKyJF2gomUkUUXDNlpToZB9pFeiqhtxQL
+dq3GzlEhxyvPPEaaxcZBypgULtA7EbOiFAp5pnubiS1XVVkLr/vnZOQ9wGZkceAe
+4ODEyU+dgY54Qb3ofAzhw/bz5hxWcjavyzjge9uma1/ES17iNYA1ApVkMQycvicM
+lkO7sQQf2qufsXe4CVaL5xpu4WWhaxlB3ivQuz9tLoq2DGp7Ixj1YgAzhtgIb5wM
+n+9ee7b4R5YHnILMDSTWXQL81njzwCxNjVdbV71/+AhkOv0Vr0LaptKffXQp7h+d
+NIRDQsgrWiq7Cu42g3MRJaJd09N7pl7phPP7Fp3ll3PakBcjkD/79WWrS209yP89
+f2ptilUfQkjxPQB/yBm+aIhtOmBnwIbnbRn47FK61n5Et7fk9mYw5TgIocSnjk+2
+c1KN8S9+BQic62si
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGpTCCBI2gAwIBAgISESBW1GeTHTgZ1PE0KmCnSsLRMA0GCSqGSIb3DQEBCwUA
+MDAxCzAJBgNVBAYTAk1BMQwwCgYDVQQKDANHb3YxEzARBgNVBAMMCkNTQ0EtTUFS
+T0MwHhcNMjEwMTI3MDAwMDAwWhcNMjkwMzI3MDAwMDAwWjAwMQswCQYDVQQGEwJN
+QTEMMAoGA1UECgwDR292MRMwEQYDVQQDDApDU0NBLU1BUk9DMIICIjANBgkqhkiG
+9w0BAQEFAAOCAg8AMIICCgKCAgEAyZfTvYzN4644Hc+pR5WEVVo7E8K2qvF95Cay
+571WJ4fZsB0kDpzhXD38jLKw+OSv0hGJ/qmVZfROHs9kHWOqxkxhqWn1kRt0idB7
+uLIH5Y0R6Ea2B8JCKEFFmTrLemAGRP0/o5YwZQC/0+lBZme5IACVu4PLiWOqvglo
+6F8pZV98Uv91PZGNmQWTLhc6Ik8bndB6rdl35EWJyATEJYDSpWsP5KQlvgW8hMNH
+IlzT/1BoMWzWrEmxZ8yosNK+GNzTKLS5MiRee3O6OEIqllHu7oDTKYysxX2puRbl
+dQrevYwH5GTJQfFArz6LHJHgus7vI2KoMW2h8ozz9bnepy8kRPp5Rf+wLHW7rP4g
+mUe0Xg1CjxgfCbn0aFOp6THy/GglE+qVq519s/dYFiYiS5g4FcCSN31NjYnABvHy
+fowdhrwNO3C6fPdDnonLXsTWp7qmA80Vfi0AINGfXroBQh/AZty7H6zKk4Y1TUas
+R6D8behdRu1urvgqtb52p/UTTeMz5SWP7Qfk+Z57NPWEIhvRvnP/UygN2NH92le9
+FC6wuW9Pqw3oRGPnAXLNez3phMvESYnE7kpuaYy+XSuQxDsJSW5uJ54GI+BiJbru
+ciK0SsLfUPtt8/yC2FomYzYW5dEG5gV7+nxkpxHa4WoHKhJShYB39H8WB/P6v0gK
+dmGOrrECAwEAAaOCAbcwggGzMA4GA1UdDwEB/wQEAwIBBjArBgNVHRAEJDAigA8y
+MDIxMDEyNzAwMDAwMFqBDzIwMjQwMTI3MDAwMDAwWjASBgNVHRMBAf8ECDAGAQH/
+AgEAMBsGA1UdEQQUMBKkEDAOMQwwCgYDVQQHEwNNQVIwGwYDVR0SBBQwEqQQMA4x
+DDAKBgNVBAcTA01BUjANBgdngQgBAQYBBAIFADCB1gYDVR0fBIHOMIHLMDGgL6At
+hitodHRwOi8vd3d3LnBhc3NlcG9ydC5tYS9DU0NBL0NTQ0EtTUFST0MuY3JsMDKg
+MKAuhixodHRwczovL3d3dy5wYXNzZXBvcnQubWEvQ1NDQS9DU0NBLU1BUk9DLmNy
+bDAwoC6gLIYqaHR0cHM6Ly9wa2Rkb3dubG9hZDEuaWNhby5pbnQvQ1JMcy9NQVIu
+Y3JsMDCgLqAshipodHRwczovL3BrZGRvd25sb2FkMi5pY2FvLmludC9DUkxzL01B
+Ui5jcmwwHQYDVR0OBBYEFJH7Z0uAgv9NVAyasyNLfw7IXevjMB8GA1UdIwQYMBaA
+FJH7Z0uAgv9NVAyasyNLfw7IXevjMA0GCSqGSIb3DQEBCwUAA4ICAQAKg1auvFA7
+3PHWLYwQhDsrUuNnuXx6aLUxFi7ubGe/uv1K5koe1/M6SJmanD7KQQi4xEIUdewf
+2XLXSHZWOxcqD0hhbXmUlV2DGzrr8Q3TnN2BEPi9XJeEmW8M1l1kQ+VAQuxo4NCt
+h7JAlo0poTgNdkqRGkSR9c4RGWgSqoSXnCjiRtI02jzkBnEL4rCKDUiFKQ5yodSe
+Allt+mYFz/n5lxJrPpefp+44iNwnjCop7yVK3RYj1myIP2lfV9I6wevfW7Jbf9iw
+Dyjf7ybugpd4VfK8zOkmdJ7CNS34sA9kAYX+ZJ6YszXeYXhivciwtB9HN6w3PSsq
+NbCOlxCAReKMlhwhZ1ypAVLbyjUrlhLj7M/xERQcQ1kwAyCnsy4KlmJEDDxkN5E5
+1/Nr89L+cjKDv7vslRzz0Ket82rtNSTmKIvvzRkr7v95S8gzx+hkJpTDXPBVve9W
+TYljZNL9F31FW7G7NYQta+hVlWoCQ8Lc0x8tqy3zkYIDZJptfBbyLBBdm6FGrjcH
+zLwlTWtwBbl6GY7M/8vv11q4I9x45wgABS94NXAdfF03j0zS7NzrXgxG9Z16Ve7g
+Ly0zfX8+0t14CH0p+uwvJSCBFLx+lHnLhlSv3YtibhZ0wnnYkG+s69WVJufo2Yot
+StIhvEKMjrCnse2P4PejPU9/o0PE8XSuLQ==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGpTCCBI2gAwIBAgISESDev5Cr/7HpCR5EP+a1+QNRMA0GCSqGSIb3DQEBCwUA
+MDAxCzAJBgNVBAYTAk1BMQwwCgYDVQQKDANHb3YxEzARBgNVBAMMCkNTQ0EtTUFS
+T0MwHhcNMTUwNDA5MDAwMDAwWhcNMjMwNjA5MDAwMDAwWjAwMQswCQYDVQQGEwJN
+QTEMMAoGA1UECgwDR292MRMwEQYDVQQDDApDU0NBLU1BUk9DMIICIjANBgkqhkiG
+9w0BAQEFAAOCAg8AMIICCgKCAgEA3XLVxhHDxq2iphmjbuAMt1F74nwE2tXM1iWL
+53dbPQi5LbsYyLM8sr/cVO/xKJHCZZnZDw3BloKWoOSysCW+V+0QK2hMT02iLCqF
+1wf9EgcTCkj02U6yd5GKJvBI1Haa2mHxg83vGOLAzzl96QMbkRbUohFFPYEG+i0T
+xRE6fitbp91ZlMhfY/rzlINjFW22Dt+KUi3DtgRTTa6oTaMXvl08NcOsjXQKR4lt
+Z19/H5dkasKTLQdlmCEbJUVyCLFpcpov+3ybzPOk3doxIU6GwWpvxY/WcIeyAQA0
+B1vjcre/zmU4cTaJ6/zCEwmK4tDA4VIQgaYX9RRUQg8q9OlU18miPm2bhd7jaCWu
+vO7CSPIDZdRL8TfM8ODgk1w8fys4NNpAaNXqM7CYFoAXAhF/olduKnletAsHv5ZZ
+AhpxkrGsDOOneOGDDYGjPQR7vtzWXzm3CkNSXWGbwNtRPQ3dBpcelavJWWCO9Eb4
+lPc5S2Tl9lF4JNVm/FTRl0fn0TpztKZ7q06j8/BJbILytkljqWo9iAy20yTNIH25
+GCok4laicofzikvfFXKkI0pBKTs5b/qMvEyS+eUKrzq1b23Q72QYGi6G7e6wzzQ+
+lOrL20PY9WrMqpuNRYbX6/22yM051aHgH6rlePkscLq1ACrGVH/BVQhHleK9OoyR
+0e6SMa8CAwEAAaOCAbcwggGzMA4GA1UdDwEB/wQEAwIBBjArBgNVHRAEJDAigA8y
+MDE1MDQwOTAwMDAwMFqBDzIwMTgwNDA5MDAwMDAwWjASBgNVHRMBAf8ECDAGAQH/
+AgEAMBsGA1UdEQQUMBKkEDAOMQwwCgYDVQQHEwNNQVIwGwYDVR0SBBQwEqQQMA4x
+DDAKBgNVBAcTA01BUjANBgdngQgBAQYBBAIFADCB1gYDVR0fBIHOMIHLMDGgL6At
+hitodHRwOi8vd3d3LnBhc3NlcG9ydC5tYS9DU0NBL0NTQ0EtTUFST0MuY3JsMDKg
+MKAuhixodHRwczovL3d3dy5wYXNzZXBvcnQubWEvQ1NDQS9DU0NBLU1BUk9DLmNy
+bDAwoC6gLIYqaHR0cHM6Ly9wa2Rkb3dubG9hZDEuaWNhby5pbnQvQ1JMcy9NQVIu
+Y3JsMDCgLqAshipodHRwczovL3BrZGRvd25sb2FkMi5pY2FvLmludC9DUkxzL01B
+Ui5jcmwwHQYDVR0OBBYEFEsiJI+1EHrs8vYFUP9VU+hJRCKnMB8GA1UdIwQYMBaA
+FEsiJI+1EHrs8vYFUP9VU+hJRCKnMA0GCSqGSIb3DQEBCwUAA4ICAQCw1YV0sldk
+XytNbEs0MMXCGDXq+0WhB31XXcbdZkrgMGz2sPIV0sEXujqa2IG6cvJkTbFPSi9w
+98/mDHAbNBytrNemVyXJfDbS+/wd5xGpht53DlqlBpsjsm7yJh9PubO7uES6wVAN
+l3iQig+aXyydvBbT7+84YwhZLKXWFlg0qY/Uf21ezbU4q7NgaMR4vjIBPlRVgRzP
+kCYbHcdUpfE2o1423QnHSm/EDuFQeAS78aWLio0A2fM4MQo6QBvv0RqkPX+KrxsE
+3YxpVudciSdAxs8FEgumA7mILhe4VlJ8wEltd5aLucFdUZG5ayzSAH3KGCRnLQ0o
+fMBNCAQY4HlzbpPRLiU/clM48ayp5dQfPS1vi8lBXvJlnZpnnj4rjVMWqepdV6f5
+tyaDzffvBBIrQoxH65KXlYtoM4BtkPFkCQEsfrltSYcNVXtIWGFOEYMIMP8gq/ld
+CeEmQmP2IKz3nT9vM1IRlZji/MmmRyemVURH9gwp/C2wRp3ffoelPnrD5OXTJlPL
+XtDMtvjLYwHa+VquiI293TIA5Li/mew3zHbv0y4aqeFpsQjc9Ztx4l4ItnV0QjVq
+dXm2+2TDFtLiUah+t9vE/Mj2tCQkBxm/8erfzkRmqdAICAhM23IiOuZ4k01lzmgN
+k12i28wzfNUkfKZ3Pr5SixzkyLjCzh7T6w==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGpTCCBI2gAwIBAgISESEJG1Zc4yJ15ijRBtqswDFeMA0GCSqGSIb3DQEBCwUA
+MDAxCzAJBgNVBAYTAk1BMQwwCgYDVQQKDANHb3YxEzARBgNVBAMMCkNTQ0EtTUFS
+T0MwHhcNMTgwMjIyMDAwMDAwWhcNMjYwNDIyMDAwMDAwWjAwMQswCQYDVQQGEwJN
+QTEMMAoGA1UECgwDR292MRMwEQYDVQQDDApDU0NBLU1BUk9DMIICIjANBgkqhkiG
+9w0BAQEFAAOCAg8AMIICCgKCAgEA0Rc1TmoyWClIcIUpKurTQmhzKe3f+L2KbB8z
+Fefuu11dc/hMK1He2jNSmY/9dY6wYiU7lAAsCv8+1JoALhc5tWX92WRYB7Ah3Bub
+Zz3Z8e9pwk6KsBtts8Ubmc6mHvYOHR64qVMzgRmveRrSyXb68PP41MbzU9E+/Fgo
+XMfuhDi1z3z8Coh92Bpg1rYY3ELK7WlSfoVha3VwMcT1Hm0tvhJh23fzu6J/eaIx
+115R7VHcrNrB5QtWCZT+hrRnakAnOcifIFRiXrzEd+VYbuvslE1xCI032/XWyY2X
+iOJiWR0vndiYsAObayVnSoS/I4BCwppxF/yyMxcixG5mU3E7NKWjwtcQAABmwYHF
+3fRELk1zSAjnzQz12IkqAb6ItC2Pb3+qSz7fOP/s9iWXGhbcjmp6DJSqJHP3yf7Z
+eUCeP82Yu2C0KMWJby2EjkC1Y2j2/RxsG7Z7dxmb3kQygWyZNGOru/Oc2JS/uyaR
+1nWfAHgaqptsEziYjbKwryhooYFT4lFGd9Lm09dR/PZLwLjVXDpT3H4rujpyE6qO
+vRamqtRI8jjTsKUXPZeYBnGXLCgvlHsgpYmYeaLQcGyrBLiu7P1Fc96Xi3ghvs8V
+kCS+DELZqJblCLMKU6ierQ7vQF9X9d1AT606qX6bLGELprMvHnvHW+1aAI2Mf8LQ
+VX3JX3sCAwEAAaOCAbcwggGzMA4GA1UdDwEB/wQEAwIBBjArBgNVHRAEJDAigA8y
+MDE4MDIyMjAwMDAwMFqBDzIwMjEwMjIyMDAwMDAwWjASBgNVHRMBAf8ECDAGAQH/
+AgEAMBsGA1UdEQQUMBKkEDAOMQwwCgYDVQQHEwNNQVIwGwYDVR0SBBQwEqQQMA4x
+DDAKBgNVBAcTA01BUjANBgdngQgBAQYBBAIFADCB1gYDVR0fBIHOMIHLMDGgL6At
+hitodHRwOi8vd3d3LnBhc3NlcG9ydC5tYS9DU0NBL0NTQ0EtTUFST0MuY3JsMDKg
+MKAuhixodHRwczovL3d3dy5wYXNzZXBvcnQubWEvQ1NDQS9DU0NBLU1BUk9DLmNy
+bDAwoC6gLIYqaHR0cHM6Ly9wa2Rkb3dubG9hZDEuaWNhby5pbnQvQ1JMcy9NQVIu
+Y3JsMDCgLqAshipodHRwczovL3BrZGRvd25sb2FkMi5pY2FvLmludC9DUkxzL01B
+Ui5jcmwwHQYDVR0OBBYEFNsE2uY1osvs1j+NYMIGDv1d9xnjMB8GA1UdIwQYMBaA
+FNsE2uY1osvs1j+NYMIGDv1d9xnjMA0GCSqGSIb3DQEBCwUAA4ICAQBWTwJIhIq2
+kc/d2PvSgqECa9AxSJPnTrFzY1aXkPCdySJCczruaGcV39fTOSKyBe884PKapIx8
+3qHGbbaMlscqmCopB4U8NaOHapknkUVfuYrVJTlxzEf+kVEFjChmP5mi8REqoA96
+zupXrTHD5ws8dnTd++DBVYGKtuEikIuOAKbUAo2FPtlYA4dpRdcrBP7qrSqpMh+A
+nNptnLOnlD8gcqMujoiBApErrSuyMTUXHXus9zJxe/mR6X7vbaWDx7Yz7ESJWaB3
+hhyaWcgS0jI7lyUA2Pv+xgPtyBdzsQ0UBVKAPIY2tPMUQt/tFykR1kF63Ph6urWb
+PzuGjOr7RWyd/JLl7fsMCbjAAZAJn0jfJiZuCx95DFjkpzaUKiDJSnr4R7R2NPUj
+fJJ9kuOk176CBbs1OX65h/i/paoYxYEo+ul+zYlyyYlg/FksRhXUNuJLcllhAo+h
+tyI2gtu/CpBDx61WiRL//JJmxOu37KghZMxSDWhU6IzCiIIFK67OncJENzqPKQ+n
+0H5ImFeJ5WbI31e7TL6wPGrrQvdJjbCiJCTEzCl6jOWMG1ircPT/ykGi58z23MK7
+eA84tSV7CGeg8eXd0pGaCwVX/v3LFV8XyEr/16IjhxH5d+cqBb0x6eevYcHugwaV
+WqnCKthoc88MXnx0BLt4029Yr32e99gefw==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGrTCCBJWgAwIBAgIIEBIFtmCt6OEwDQYJKoZIhvcNAQELBQAwejELMAkGA1UE
+BhMCTVYxMTAvBgNVBAoMKERlcGFydG1lbnQgb2YgSW1taWdyYXRpb24gYW5kIEVt
+aWdyYXRpb24xIDAeBgNVBAsMF1RyYXZlbCBEb2N1bWVudCBTZWN0aW9uMRYwFAYD
+VQQDDA1DU0NBLU1hbGRpdmVzMB4XDTE2MDExNTA2NDM0NVoXDTI0MDQxNTA2NDM0
+NVowejELMAkGA1UEBhMCTVYxMTAvBgNVBAoMKERlcGFydG1lbnQgb2YgSW1taWdy
+YXRpb24gYW5kIEVtaWdyYXRpb24xIDAeBgNVBAsMF1RyYXZlbCBEb2N1bWVudCBT
+ZWN0aW9uMRYwFAYDVQQDDA1DU0NBLU1hbGRpdmVzMIICIjANBgkqhkiG9w0BAQEF
+AAOCAg8AMIICCgKCAgEAzpa1Bwy568pyF4GWWrz2yZ7lBUZ33G2Zv8mgcQ1T1Dbr
+W5ste6bWLLyk7sz7Ig1tLgZjAxP1RtMtus9djdgAvzGwq3OpDEveNHZp3VgR7z1F
++9uehBgbKcv6gIARYT/E2uVy1zFbzuG/X7fRlraEFhKD0bF3XaO7b0ty/RFf4mjq
+J/cmqmyInNTcQDl1GV2+MYO73/yD5hDW1zNGPH5ah6ZVWOBMbEWvdpp0eBSTWtyy
+3arEzKiMIpVBvg54FFAxMe7LdLOeJrHjEoQQxAio7O1myF7FZ6yPqwE0zyka016S
+CyHvmBt8PHlKBvZ+O0gi6KlSre27jEm4Te+ps08Einl7kZY5oG9Gj5MUs04mhqw9
+c2ngqjDBoh4D2a+kFCRfalE/PCbmbMKLiYJcGnrVuhBV5sIAFBGFjlQoLIt6yRKK
+wUu28PoCGKGcd4VZCyVzmvgfw6AzGr09DY9rgFnxR73JCpI4ixZn4n1QJhFvCx5F
+NJjgnm/cXSsfyKWsYkiyrkPisGLEKaQq9FNvRd3o9F/RWcgQL+gv3gNmluOBEkxy
+98LKKu042zdguhWayGQk568K00yHXvaf6vfi4F965NxQ8BDsSSN9BtdeXPpsPS6h
+7bhOOGRRZ7fyHHtz9gKyAwwGeVl0aPG0pWZ2gDOYzB5e3yILRkX+sO5oAdzYvMsC
+AwEAAaOCATUwggExMB0GA1UdDgQWBBRhAd54qgWYWRQTfcwC/J+6eg2sdTASBgNV
+HRMBAf8ECDAGAQH/AgEAMB8GA1UdIwQYMBaAFGEB3niqBZhZFBN9zAL8n7p6Dax1
+MCsGA1UdEAQkMCKADzIwMTYwMTE1MDY0MzQ1WoEPMjAxOTAxMTUwNjQzNDVaMDIG
+A1UdHwQrMCkwJ6AloCOGIWh0dHA6Ly93d3cuaW1taWdyYXRpb24uZ292Lm12L2Ny
+bDAOBgNVHQ8BAf8EBAMCAQYwNAYDVR0RBC0wK4EXaW5mb0BpbW1pZ3JhdGlvbi5n
+b3YubXakEDAOMQwwCgYDVQQHDANNRFYwNAYDVR0SBC0wK4EXaW5mb0BpbW1pZ3Jh
+dGlvbi5nb3YubXakEDAOMQwwCgYDVQQHDANNRFYwDQYJKoZIhvcNAQELBQADggIB
+AEs30j+oLx0BIM+iZxK+ohQhGKNPIDUWjsB/8gqYNcrLdSP1bu6n/XfRFiMxV0rd
+GfE7gk4HSP20RXOBSeSAGFEAFme7PUfvE+BcPAP83cC2AvaLL1rXcJLVw6tvfW3l
+c9VmqWB2il8x/jdY/EXR309vH0cqvr647QgFSr5ZohkPwbxFvvM/Ulqk79ZKYDcc
+UStZ0d+s6jrnImLrneV4Ch1TDxaMD3i4+LlJweIxE9cvCCLpHeX9IE3sjN7GftkU
+yD0ESRWZfQxGVDQeiyaIRaRNXYGeEwfa2QeUCPmRW4h/y7xsHFHztlZhI0Cm2XJo
+chO3bc+vcrTL7qL7Im3p440LTfJxnzqD2XWFukD7i33W7C26JB9i7YnkeBCgo7xq
+ZJUTDqjF9xiZnMohuYChqe3gfRNCK9qiHkrCkhaJqqMKkoJvtqMyHhZuUJ5hySaF
+AkYJsH2tu/P9HVUa8gRf3JpGVQGXZWISUXWrhi21QDuYBd1yDicURJ5ZAd5pWtbu
+8fUYJl0I0BaGcdW74ZvtW0FuaLk7rkBX3ZcwNCzA7AmEbeiAEfNq3qke2TkejJkS
+0I6V6s1nY6d+sXrILIODUEpGq3fXOkDUeb8kz52vGvl2Iiqix3YWaV5XaWL6ZyOC
+hcFpB9jSOXs44ofSKdpxwIAJfHRPszNwY32nwPD5e2yQ
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+y0k=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGyTCCBLGgAwIBAgIIfYBVfrHbuX8wDQYJKoZIhvcNAQELBQAwgYMxCzAJBgNV
+BAYTAlRXMRowGAYDVQQKDBFUYWl3YW4gR292ZXJubWVudDEkMCIGA1UECwwbTWlu
+aXN0cnkgb2YgRm9yZWlnbiBBZmZhaXJzMSMwIQYDVQQLDBpCdXJlYXUgb2YgQ29u
+c3VsYXIgQWZmYWlyczENMAsGA1UEAwwEQ1NDQTAeFw0yMDExMjcwNzUyNDhaFw0z
+NDA1MDMwNzUyNDhaMIGDMQswCQYDVQQGEwJUVzEaMBgGA1UECgwRVGFpd2FuIEdv
+dmVybm1lbnQxJDAiBgNVBAsMG01pbmlzdHJ5IG9mIEZvcmVpZ24gQWZmYWlyczEj
+MCEGA1UECwwaQnVyZWF1IG9mIENvbnN1bGFyIEFmZmFpcnMxDTALBgNVBAMMBENT
+Q0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCvPCNUEPmJPJrd0bCX
+YYacgu69ObWV2TGjdN9TjLLHmPG58f87V+JercHY+XXo6syCm2ULHIXBTizJy2w3
+vehznQPugLC4MP4Q9CjtNOAE+YDwsLhpvzv8LWlSphrA1Vtf+CivKqPVH5I7QFfC
+f3dXELXnVaF7RCQXmu+uKy8vRfHpQFgbyN6z/vV7ypxa+RAh6iEdR6O/nVYR4Xvl
+efChU0/VqL3shJM3AohYPXKg5CWVh7xFbhBs08jXfNrCjjz+PQtcNyqUUUsKstgE
+NTbc9VtRGFbW7G0LCwf+ExG4fnDbBaFurpQTWPQ1T7QKdqveoOkl5nBwLIechF6W
+7tYZTd3x4Somc1sxe7oK8hy+yURPnlT/mDmpdP0abYib4Cng/feFMpUZ45zN2hDk
+AADwl0Tu+XOv7uAVlhKBgJIyZ7Uj1xgF2EWX+kj7xscZFouoEgreotglHJlAjg3H
+RpF/u46DqxmmLQ4dK6HNH/mZe+FqgcQr3LFUe9J7h1VloY8TxvHgKGWOp5up21w5
+hL6pyuiyNcIfzctJoQ/y/xALX66u0J4fWyClpUjG9W5T47cIa4yLZmB1KA4AT7Ea
+AuDP0lXRWY+Jsoa4xoIu2yFYRkZtOxLGEB7NxPnVxWHBOQ92Z3wVOXryB0F2+H/V
+820SrWHoFJKF2a4YPWB64RH6jQIDAQABo4IBPTCCATkwEgYDVR0TAQH/BAgwBgEB
+/wIBADAfBgNVHSMEGDAWgBQYQYacOaS/W6+bXEiickJ5qkcHxzBjBgNVHREEXDBa
+gRRDU0NBLVRXTkBib2NhLmdvdi50d6QQMA4xDDAKBgNVBAcMA1RXToYwaHR0cHM6
+Ly93d3cuYm9jYS5nb3YudHcvY3AtMjQzLTQ0NDktMjM5MTItMi5odG1sMEEGA1Ud
+HwQ6MDgwNqA0oDKGMGh0dHBzOi8vd3d3LmJvY2EuZ292LnR3L2NwLTI0My00NDQ5
+LTIzOTEyLTIuaHRtbDAdBgNVHQ4EFgQUGEGGnDmkv1uvm1xIonJCeapHB8cwKwYD
+VR0QBCQwIoAPMjAyMDExMjcwNzU3NDhagQ8yMDI0MDQyNTA3NTc0OFowDgYDVR0P
+AQH/BAQDAgEGMA0GCSqGSIb3DQEBCwUAA4ICAQBtoVGlOnEG6ekL6ZSCxjCi2LA/
+JvTO5pCVOCieJEMDAuIgh6g2DAR7OT4Ym8oxvBfK3rOLttBnS53rnH4sffR/xmg+
+ou8vULoTkmCz1mULYc71b6jsAhCNp7P0xScfyBZqD2aXIF4Bgp35GpXjtTxVF4aR
+LDwtkhrqdDTz0QEhLcrYfhzn5eGnNaS04FGpUtTn3f7cNyz++k2zfEb6eaHC5O6r
+3Dg2TF7Y7X6hNI8m2/WRVn5Ndogzqf1yFItGrNq6zXqvTnTmYdEfX192Hai9ztkT
+hbzbmobaK2Hq6kGs+VGUxQyuZC3YkyGDzPaOkfrdoS9Lixbsnq9KPH6EWdvOpFFB
+2Vdqjh3YnlGSckXoNKXyZIWzutCW542XW60nP+jZ8yURCGxUEcuOAn1Elx3A+OSZ
+aaOJYJ7PzVrOMk1h4+UvohLel3a8TQIcETcYRnPSDjqRYpcj54Cf4UeLV9zYdyoZ
+vYxxoVPOvav0pzBhasDN/i8qJivJdNX+IrVxXfEgapG2nCciR/RpfvlNtALSoDmy
+cFrlonzVUdcSrRy8JNtcKVuY0MBRg66mo+iVPZFD3wu4B3gdSNyrSV9iA6S3Toxw
+JyBBKgMsprJ6cU3sKn3dYtozNLr057COfISTwCbJnkcWocKcNOrNdTSbOIHMzA4Z
++cRmMAefFFezF+fEPg==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+Ga5r2V/2bfVIXaKRZJv1HBI5bOfEm42w
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIG1TCCBL2gAwIBAgIIUHFIGPxYvbQwDQYJKoZIhvcNAQELBQAwWjENMAsGA1UE
+AwwEQ1NDQTEdMBsGA1UECwwURWxlY3Ryb25pYyBQYXNzcG9ydHMxHTAbBgNVBAoM
+FE1pbmlzdHJ5IG9mIEludGVyaW9yMQswCQYDVQQGEwJCRzAeFw0xOTAzMjAxMjI4
+MDJaFw0zNDA2MTMxMjI4MDJaMFoxDTALBgNVBAMMBENTQ0ExHTAbBgNVBAsMFEVs
+ZWN0cm9uaWMgUGFzc3BvcnRzMR0wGwYDVQQKDBRNaW5pc3RyeSBvZiBJbnRlcmlv
+cjELMAkGA1UEBhMCQkcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCb
+lcm/X/Vfp6/HprGtS2f7jbSH+N1ZONNwFlGTOQyzAzj8XWBB3Kp3pPhqNNJl9sRr
+bkN3xIImWljcbYGZ3LRbC2VusMq80WY/Abv3AXogveN5XbFHL7XiTmBJaCeXUF2t
+swDgEkKV1Vad4Q9lddSaf3iIE2hujopGPJqKP2i67AP5ryuGswEdRk9T8QM44EpE
+pG8UA9R710urY6qQI/BocAuZcLkgiBZ+B6GCjJxVmX4g0Tw5CpALDWvGU8aU3/eR
+yCEGFzSx5V9ymGRahRZk+djQLFK73Uw4nszzWHg5UgZQ7c+/gSIoWV47NTPGd5LF
+2BXhalaB1e9xDcI1bTr/0Eb+2x9w91glKWQ6LzxbxfHcb8Bx2uzSDrD1Uat3Tlkd
+kCsNuqzEDLMYpMjncFWF7VK/yF/6NCYFofXMYZYHG8IgGLns4mWu38aBz0JP/RJX
+Q67b/a8CdHPljSEXqQuugVxB7chqgYKqJr+WViVtwCrIE48wy9HftWXnJ2iI5RXC
+83kHJ2hoPOJanHP5KwQVoeHzdvEDaQMDiGaAcnM/re3K7XZ7WGVAHNQd/1Haj5YK
+OvE4X2ea61SOkOIozOde/O70n9KjR+2OXplWLnyMsttOiB2iPbLv2To6nwwC4VeD
+WmsIVNCm8Y1b0iDAcTJ7qDnzPlJkLDG/bOjcmy+GJQIDAQABo4IBnTCCAZkwHQYD
+VR0OBBYEFOESnWV/pvd54rQYsgXbJ177nvW3MBIGA1UdEwEB/wQIMAYBAf8CAQAw
+HwYDVR0jBBgwFoAU4RKdZX+m93nitBiyBdsnXvue9bcwDgYDVR0PAQH/BAQDAgEG
+MCsGA1UdEAQkMCKADzIwMTkwMzIwMTIyODAyWoEPMjAyNDAzMjAyMzU5NTlaMCsG
+A1UdEQQkMCKBDmNzY2EuYmdAbXZyLmJnpBAwDjEMMAoGA1UEBwwDQkdSMCsGA1Ud
+EgQkMCKBDmNzY2EuYmdAbXZyLmJnpBAwDjEMMAoGA1UEBwwDQkdSMIGrBgNVHR8E
+gaMwgaAwOqA4oDaGNGh0dHBzOi8vd3d3Lm12ci5iZy9kb2NzL2RlZmF1bHQtc291
+cmNlL2NybC9iZ2NybC5jcmwwMKAuoCyGKmh0dHBzOi8vcGtkZG93bmxvYWQxLmlj
+YW8uaW50L0NSTHMvQkdSLmNybDAwoC6gLIYqaHR0cHM6Ly9wa2Rkb3dubG9hZDIu
+aWNhby5pbnQvQ1JMcy9CR1IuY3JsMA0GCSqGSIb3DQEBCwUAA4ICAQBSru/+VoKj
+jVeDF73N35vaUMpi1TXEOD1DQOCYHtU3ko1l3pvDcLcETdB8OO4xXkoFAjS9A73f
+ig2SuWUV7d7Mp8Ju4gw6312snu1uwcVmJd6XtCtPk5TyqAW5CGnOTpCrandfE1wl
+zHdxstDt8WvgNfn1cK21fFyyg5UHeQMC7xluw22Y5zeY2vPnr0e+yYEhrP1N54JB
+G9/LTBU7CWbxPBEWhH/7V7LRRMbfD1EX63A4bxxIJ1JL/6117rNK7ExqA1QcaNAW
+yW9NdIN+N44m2krAbIPnwrJgZHtHcLEFrrWVqlfJvx5LDA1GnvzAnr4nc3yVSB78
+HJEdXOnI/IJ1+N/rfIv5G+YbAoc3iwJbtYQszvyGTdZJRAz3LFTfOV5OwhYfpGn7
+adv97d9I6E6EIWVyCWYb2172uAAamO70W0tSp7g/exsFQdb1wKl5y894H5F5Ljgs
+Y+oeR6LX1bQ6qs524xD7hd6OZ2VnDGeKEKz1Aa2kgZOu3aGKeYQooPMbwd/DgbuR
+BJcXeS4cpT+1dpG+Z/2cEvjqZULjruFpqo+5TN2o3lB3KUAR1P68mls6mp7n4w63
+JSPs6hT6pcThgGfvcUPl9HSe2H4zSrSeVvu/ZBElxvQjlwlbuEwOZxvJnU/ybc+/
+yyILOaSm8mbOC4zacu6X+QIoITFzdubjSQ==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIG1jCCBIqgAwIBAgILAMjjoPACCYGRgRYwQQYJKoZIhvcNAQEKMDSgDzANBglg
+hkgBZQMEAgEFAKEcMBoGCSqGSIb3DQEBCDANBglghkgBZQMEAgEFAKIDAgEgMC8x
+EjAQBgNVBAMMCUNTQ0EwMTAwNDEMMAoGA1UECgwDREZBMQswCQYDVQQGEwJQSDAe
+Fw0xNjAyMDIxNjAwMDBaFw0yNjAyMDMxNTU5NTlaMC8xEjAQBgNVBAMMCUNTQ0Ew
+MTAwNDEMMAoGA1UECgwDREZBMQswCQYDVQQGEwJQSDCCAiIwDQYJKoZIhvcNAQEB
+BQADggIPADCCAgoCggIBANB6PVHisZJX4ZIiuvb8vnoEv5PbZvnmIwblOgCT7P+N
+rkikjdBczi0TEJtcn1IbkesR4/iIiRO9/mi6NLIitmEZ+3dlfugioK/hNgxfIneK
+AXPv+AnamW6yv+NI7PLxP/7x8yQ6nLElk1a5haiXfttjSEe+/KOVx6PuaPSeDAa6
+OVFoc9dvtyFfy6KyzEIM3EikaTuRKV2OKqPwmEmxFx/q/fsxZGQRxahHZrnhPjOu
+9X8n00tKNs1Vgp4VVkFbtJMJO/WlrosRvtkaJF4sFwCrjdcrTk7IY1VR0jh9G48K
+/kzaPhlK4npMg6VW/xKTiQi4T6dILXdrU1Hr8rQPg8EbxTo1TSyu6WjvLEynoqFF
+7R/pPgplwWzVcUGUkKmeDWF0w9/OWWym2aBYxbRxr324oimS8HVgwHNmZxyy/ym4
+McihPstDLosO5QmOHtzbLOnvXzPS3vEjC+1thQ5rMuBRb9YsV24vCXa5xbTeQZVB
++/QoXosx9kPz9iyOXUYz6ymCNjiIV8XM2CDlbhI358wlJJo60w5pXEhHTHsx19il
+/sQvJYuKDGlBOHhBne2AXxCeyLwWWq12gpvupybBvT5osEHf3olXujGMKXDryL9W
+FOD7Qhj5IMeMyfkW//jHTgQUXKm6FN+WbJfahP9poCI2jIrYxR/kGeVHI2YkkgYH
+AgMBAAGjggGJMIIBhTASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIB
+BjAdBgNVHQ4EFgQUkw/7G/dwVXmXGyAqZvAyG0wrLkowYQYDVR0jBFowWIAUkw/7
+G/dwVXmXGyAqZvAyG0wrLkqhM6QxMC8xEjAQBgNVBAMMCUNTQ0EwMTAwNDEMMAoG
+A1UECgwDREZBMQswCQYDVQQGEwJQSIILAMjjoPACCYGRgRYwZwYDVR0fBGAwXjBc
+oFqgWIYqaHR0cHM6Ly9wa2Rkb3dubG9hZDEuaWNhby5pbnQvQ1JMcy9QSEwuY3Js
+hipodHRwczovL3BrZGRvd25sb2FkMi5pY2FvLmludC9DUkxzL1BITC5jcmwwOQYD
+VR0RBDIwMIEccGFzc3BvcnQuZGlyZWN0b3JAZGZhLmdvdi5waKQQMA4xDDAKBgNV
+BAcMA1BITDA5BgNVHRIEMjAwgRxwYXNzcG9ydC5kaXJlY3RvckBkZmEuZ292LnBo
+pBAwDjEMMAoGA1UEBwwDUEhMMEEGCSqGSIb3DQEBCjA0oA8wDQYJYIZIAWUDBAIB
+BQChHDAaBgkqhkiG9w0BAQgwDQYJYIZIAWUDBAIBBQCiAwIBIAOCAgEAp5tOkUvu
+3N9fsuRCbhMCL1Fk14fN4/h3Bc85BV4MvfBavHSxInXnOtdAVrEGEwXnZO+dogJH
+dcGKjiRmuB4+VdBUnjZuH3pCWi+m/rAH84jB0vxLvHldlQx5Lwf9wOFCdMy6i6PZ
+6eOf5Sa83m0OYpDFZTBGR3QZT2MPC2EDHytNqoIo2X/jJp2xq3SsGAVE0i9tp8/U
+AWhP9FPQMPCDOLf78dwjPR0c6jx5MgjSRoGHzzYbkS+7Rd3OLnHFgtjUh4eO9M5T
+X42G6WiIeUnHiaa96rIAMJYW3RzghiYNQLvnlOJxL84QKGwHkTUK9F3MFPbabNy+
+OLSJgcekgWJ+9bhSgnWAMynrfFyFpwzEsYeLBFap1O9Cu7F3TlnzhFBd/rDIPh6r
+oaFInxbXdQAHzrKxUB0n2itmhEANGLLzxJg/DU0etKxpiURvaEd9yvcP1Mn0VWLQ
+6C4JG//FliCuc5yenKUfjC3gKFDQFvsxi4a5pO4z7reSYnQbqWk6lNS3R6H3JzDy
+JBUQQhHMA1ZnpLMIezdOfpDxfSiogtkkq6TnKfkYVd+KKT9fkHCmRq3JjhnUSwYh
+LAJ8VVWZ/Xuua5je1JuqyFhLl198RgtRxfTY03f5r0AoYTr8q5d3n8EpO0YJ35th
+fAX3h0IBOe62OdqeaoP74xUOeSh2iSPtz/0=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIG2DCCBMCgAwIBAgIUdiG4t2biEjw5dGq4miqb9nO2lOQwDQYJKoZIhvcNAQEF
+BQAwdTEoMCYGA1UEAxMfQ2VydGlmaWNhdGUgQXV0aG9yaXR5IE9mZmxpbmUtMTEb
+MBkGA1UECxMSZURvY3VtZW50cyBhbmQgZUlEMR8wHQYDVQQKExZSZXB1YmxpYyBv
+ZiBLYXpha2hzdGFuMQswCQYDVQQGEwJLWjAeFw0wODA3MTYxNDUxNTlaFw0yMzEw
+MTYxNDUxNTlaMHUxKDAmBgNVBAMTH0NlcnRpZmljYXRlIEF1dGhvcml0eSBPZmZs
+aW5lLTExGzAZBgNVBAsTEmVEb2N1bWVudHMgYW5kIGVJRDEfMB0GA1UEChMWUmVw
+dWJsaWMgb2YgS2F6YWtoc3RhbjELMAkGA1UEBhMCS1owggIiMA0GCSqGSIb3DQEB
+AQUAA4ICDwAwggIKAoICAQC4+r+OfJyXsJbRO1qtWBSvuKPzHMj0+VJsMFcoKl4W
+yJ9TjXEagmmf/ToRw75yBuzfde4QImTfZGbMX7rWlBPNrC/Os2zpIS/zQ5hKcY62
++iu+mjCke3nvVUqcmPxjtIf+Moezegn6JBdl5sUbiYSktqol9+a4qYK9uWbhdyaC
+iva8kBR09EIJC/jkVshKkz8MOUKy1XHZxctUsAMAsHpyIZAoiQoqvmcqpkFfMVLb
+zHELkYYco/glT8ab0qqkNKqI8qZCH7xE8KSKOMxCaPCo30u1UbRUkUI2dtRBhkEC
+q9aPK1TNvZCjIlOJHbIZtww0l0qOL/WTlC5I8aS+L8VH3IwyOstOe+DSpqFQmxgP
+pFn9ghY9mOtZB8M4oc2SIf5Fd6LIuTekZCVbbFwyfDcD7VYfKX3hpr5GgtcpeKNa
+2Se9O4+fjh9bmAVxlUKyxSPf2YctJu9Vk2RS7JPYceB+az0BJ4nhOZvW8kjWLPNm
+zb9ivDWKZKu1TR27YLA+JKyy1MvghR+D7v3VYLpBtM7rMzndIXkLLJgF3auaZg4/
+7oJnZFcBDWX5g8r3tVYjYln1uTmstl/T2DbgPGiKUkCZyxNqgxrJNEAl4OZ4eHsE
+T+GErglXkMtDiH3wPoZeUW3+L31wQdIXO2cY3HhKEH4qIerOYO2lfDtXu0eMYflY
+dQIDAQABo4IBXjCCAVowEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMC
+AQYwHQYDVR0OBBYEFHYhuLdm4hI8OXRquJoqm/ZztpTkMIGyBgNVHSMEgaowgaeA
+FHYhuLdm4hI8OXRquJoqm/ZztpTkoXmkdzB1MSgwJgYDVQQDEx9DZXJ0aWZpY2F0
+ZSBBdXRob3JpdHkgT2ZmbGluZS0xMRswGQYDVQQLExJlRG9jdW1lbnRzIGFuZCBl
+SUQxHzAdBgNVBAoTFlJlcHVibGljIG9mIEthemFraHN0YW4xCzAJBgNVBAYTAkta
+ghR2Ibi3ZuISPDl0ariaKpv2c7aU5DBgBgNVHSAEWTBXMFUGByqDDgMDAQEwSjBI
+BggrBgEFBQcCARY8aHR0cDovL3d3dy5rbmNhLmt6L2RvY3MvY2VydGlmaWNhdGlv
+bl9wcmFjdGlzZV9zdGF0ZW1lbnQucGRmMA0GCSqGSIb3DQEBBQUAA4ICAQCZ+SR6
+XpqdBekHZM3UwA4a+48wl5bmel55wQbT/JKc1rOEaRclcZYOTHP0GJLoifbl2g8Z
+o5/DQIZRB77S59M13M79H/J4HRgPHo7rW1lMs2L1gNjv98vYdftjOz4E8dn3lSMj
+q8yQtGqxTK2NvZ8PPmtobK0RcBpEhJ7V9kWdTGMpoqQEeMthm+NriOtdJzVh49e5
+51ygG+SztcVPfpdvxnCp68RJI5liq9+ZLrg8ChNHb0hxRgmO940OwMZ1idzhN1AU
+YLOjV8R+YddGSJRRNFbKHfp4/PSVOr7D+/dW72/dJeauQTC5lw7JzdNW69bCMEgC
+pTjNQ5o8WwjkCY843uwVrLWWaTl6egOI7tsXzklZvnyv27t6L0kArXsDEixP6cIf
+QRuiTs3FgIqjvMoAVwRV4P60OVRLXFAflu8i69JHwqvXZ3N+KFbKWTaLPTWj4VD+
+CGrnuS7mIihDpSpdbiJiWn5knKEqvKbgi8IXMSyrmHZw8nAxyPo8hSW/wIKPDQ5Q
+DlYBkVNnmZdLt+afD+su0lyNdNpcX22ALMJb+IjT5pYFW8JfNFKGoeoTwgdvptQZ
+LexTtx6trWBFLB1BXwF+ypo/AUwNR96wkfHdSSBREGI++Iz8WpKQAg7UMLoDgPKa
+/MeeW031jkp0wGnj8D42NRAznD1jyhOHc6M8yw==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIG2DCCBMCgAwIBAgIU9iG4t2biEjw5dGq4miqb9nO2lOQwDQYJKoZIhvcNAQEF
+BQAwdTEoMCYGA1UEAxMfQ2VydGlmaWNhdGUgQXV0aG9yaXR5IE9mZmxpbmUtMTEb
+MBkGA1UECxMSZURvY3VtZW50cyBhbmQgZUlEMR8wHQYDVQQKExZSZXB1YmxpYyBv
+ZiBLYXpha2hzdGFuMQswCQYDVQQGEwJLWjAeFw0wODA3MTYxMjQ2MzZaFw0yMzEw
+MTYxMjQ2MzZaMHUxKDAmBgNVBAMTH0NlcnRpZmljYXRlIEF1dGhvcml0eSBPZmZs
+aW5lLTExGzAZBgNVBAsTEmVEb2N1bWVudHMgYW5kIGVJRDEfMB0GA1UEChMWUmVw
+dWJsaWMgb2YgS2F6YWtoc3RhbjELMAkGA1UEBhMCS1owggIiMA0GCSqGSIb3DQEB
+AQUAA4ICDwAwggIKAoICAQC4+r+OfJyXsJbRO1qtWBSvuKPzHMj0+VJsMFcoKl4W
+yJ9TjXEagmmf/ToRw75yBuzfde4QImTfZGbMX7rWlBPNrC/Os2zpIS/zQ5hKcY62
++iu+mjCke3nvVUqcmPxjtIf+Moezegn6JBdl5sUbiYSktqol9+a4qYK9uWbhdyaC
+iva8kBR09EIJC/jkVshKkz8MOUKy1XHZxctUsAMAsHpyIZAoiQoqvmcqpkFfMVLb
+zHELkYYco/glT8ab0qqkNKqI8qZCH7xE8KSKOMxCaPCo30u1UbRUkUI2dtRBhkEC
+q9aPK1TNvZCjIlOJHbIZtww0l0qOL/WTlC5I8aS+L8VH3IwyOstOe+DSpqFQmxgP
+pFn9ghY9mOtZB8M4oc2SIf5Fd6LIuTekZCVbbFwyfDcD7VYfKX3hpr5GgtcpeKNa
+2Se9O4+fjh9bmAVxlUKyxSPf2YctJu9Vk2RS7JPYceB+az0BJ4nhOZvW8kjWLPNm
+zb9ivDWKZKu1TR27YLA+JKyy1MvghR+D7v3VYLpBtM7rMzndIXkLLJgF3auaZg4/
+7oJnZFcBDWX5g8r3tVYjYln1uTmstl/T2DbgPGiKUkCZyxNqgxrJNEAl4OZ4eHsE
+T+GErglXkMtDiH3wPoZeUW3+L31wQdIXO2cY3HhKEH4qIerOYO2lfDtXu0eMYflY
+dQIDAQABo4IBXjCCAVowEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMC
+AQYwHQYDVR0OBBYEFPYhuLdm4hI8OXRquJoqm/ZztpTkMIGyBgNVHSMEgaowgaeA
+FPYhuLdm4hI8OXRquJoqm/ZztpTkoXmkdzB1MSgwJgYDVQQDEx9DZXJ0aWZpY2F0
+ZSBBdXRob3JpdHkgT2ZmbGluZS0xMRswGQYDVQQLExJlRG9jdW1lbnRzIGFuZCBl
+SUQxHzAdBgNVBAoTFlJlcHVibGljIG9mIEthemFraHN0YW4xCzAJBgNVBAYTAkta
+ghT2Ibi3ZuISPDl0ariaKpv2c7aU5DBgBgNVHSAEWTBXMFUGByqDDgMDAQEwSjBI
+BggrBgEFBQcCARY8aHR0cDovL3d3dy5rbmNhLmt6L2RvY3MvY2VydGlmaWNhdGlv
+bl9wcmFjdGlzZV9zdGF0ZW1lbnQucGRmMA0GCSqGSIb3DQEBBQUAA4ICAQCPyrMh
+1c8ThfHRwW5pEDXIHjm2rIHTOrknxFngmKii+T1wj5YNf9grCKMuO9UdD+4svjVN
+2cszkgqM14oauL+DOF4lmjGQb9aUC50ALpB/ws8wwwTrq1jF4J4+fUDXqg20BbTj
+VcROISV+xnq2wYeF+YU/M7G9h7Epkifmjccf6PwXyxjI0A856buOjSE3lJA0QkDw
+zutgGg6s/ywrOyljLfG3gLwlVPdxT+SsnxoikCY4IIkGjhJ8rt1z9WghEri0YFHu
+gbFGKOSKf944h3toiRtOzB8OXug6csMYt+EADZyd5wfk7kZ4fYEl6QpppKARpzFp
+ivGlXkyjK21/QofMQhcNuOJbG+Gkqm4jx0QLWGCRcoVT68AqIgeL/vMUXBNLXWiD
+sROm3wQ8ZWwG+YfkP1aeNYzoFY62souNvvblUuE0YCfsbae8DFGy0TKqWKTGg0oq
+Jq3Y6V9vHIp1RXTK68h/1Icon9pL0eCtbjaOyJztl5u4lUsaf8zKktZPDiu6kjmP
+brmXGEjdnL8Eie1qULj8tEpLdbUSw5FaGRS2c8mscstVU+lyG9m2y/Bl9aS9BhIJ
+qZfv1oo0bHFl7fBn0Vp3+svHcR+LlKzS75O4SnQQvhRvbRZVGBL1WYpUp6Oesb3f
+jxVQFb8/B8YhCFAk0JecTy8Uefs7X0jOhnVz0w==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIG4zCCBMugAwIBAgIEWMKT5TANBgkqhkiG9w0BAQsFADBwMQswCQYDVQQGEwJC
+QjEfMB0GA1UEChMWR292ZXJubWVudCBvZiBCYXJiYWRvczEfMB0GA1UECxMWSW1t
+aWdyYXRpb24gRGVwYXJ0bWVudDEfMB0GA1UEAxMWQmFyYmFkb3MgUGFzc3BvcnQg
+Q1NDQTAeFw0xNzAzMTAxMTU3NDJaFw0zMTA2MTAxMjI3NDJaMHAxCzAJBgNVBAYT
+AkJCMR8wHQYDVQQKExZHb3Zlcm5tZW50IG9mIEJhcmJhZG9zMR8wHQYDVQQLExZJ
+bW1pZ3JhdGlvbiBEZXBhcnRtZW50MR8wHQYDVQQDExZCYXJiYWRvcyBQYXNzcG9y
+dCBDU0NBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAtEVGl3N/MFo2
+utD1Xxdd47RccjumJoMTnNeOGiMz/JZAj7owTKEJ4vyIrK6GZS4nIUlAMj3Q9M0J
+YSFMrlM/LaQX56lU4Tb6FIEds2tOrrsucQCL8qnBoKdx44rbs/16zidczCzdqmoo
+uCW2iHTLqbEGWHt03tYgBayuJXrOZPg07Bscy7ZEVyqRClQfD3tsHDDyzYPZtKHW
+J3qNpHTI6QnhlHVANLG3DJ90+BwIQVDwduzFuo2tgy+7Vug3+pFZx7v2FHbaFEhU
+LtNXbjkGBbn00cJxyMF/Cl8eClhR5K0LQDph8PQeXbhGMiEM9hgm/IpMTTBtQjCV
+kbXYLBULgWehQ4Y9RsJucT4Al0zNSXsmjY4vdZAloeBrwSpSi6AL6qH/s6y9XGDx
+0fIKbTKF6/9Hv+qcaWVMEmB/2vDmOIr/G0OilsWo8qJF7TDd7rLzk8f3mb4s9vld
+W+smZ4jDeV53FLAwyohvz/h+oDj/PEnNI63ZUjAIaxm4U1nGo6V6I1MFymTs3hkL
+S+/BEX4Oywg+HZ2KukC9qoKN7YSGhVzZ2FrZvk0Y8gvguUWcPGseJARbEM6HHZhR
+PhEjjhXk7DJojeJewov6xYz6S3svTycPLPVaiQZL1WcFOxIOw2ZfgF7teEWD7h1G
+oy0LAG3t+TDdMFQjs7Nq+Ujuu80X1l0CAwEAAaOCAYMwggF/MA4GA1UdDwEB/wQE
+AwIBBjASBgNVHRMBAf8ECDAGAQH/AgEAMDYGA1UdEQQvMC2BGWVwYXNzcG9ydEBi
+YXJiYWRvcy5nb3YuYmKkEDAOMQwwCgYDVQQHEwNCUkIwNgYDVR0SBC8wLYEZZXBh
+c3Nwb3J0QGJhcmJhZG9zLmdvdi5iYqQQMA4xDDAKBgNVBAcTA0JSQjCBnAYDVR0f
+BIGUMIGRMIGOoIGLoIGIhipodHRwczovL3BrZGRvd25sb2FkMS5pY2FvLmludC9D
+UkxzL0JSQi5jcmyGKmh0dHBzOi8vcGtkZG93bmxvYWQyLmljYW8uaW50L0NSTHMv
+QlJCLmNybIYuaHR0cDovL3d3dy5pbW1pZ3JhdGlvbi5nb3YuYmIvQ1NDQV9DUkwv
+QlJCLmNybDArBgNVHRAEJDAigA8yMDE3MDMxMDExNTc0MlqBDzIwMjAxMjA5MDYw
+MjAyWjAdBgNVHQ4EFgQUOf6vQQq3LqGpq19BMN0NU2D7e+YwDQYJKoZIhvcNAQEL
+BQADggIBAEMh9rCQ9vran93zTSxN59WPh7tf8eST+12H6o8Sy6Ciw8icNVZ+2OPD
+1jDQ9f74Hv+WpkvulgZ6prGK2WyXcH2oannW6rXmGpR7GXHw1Iy9LX3s3KN4jMpL
+7L1oH5M/42HPW/QajGCbPDiSgs5gCz0vLzwmEcjJbxssXcxVTopm0U5Dpnf42KeC
+BPkaNea8+pRJD5+GZTk9xQr69jXeizAshqicTyBxcDe+MvPw0zFMoqHTuHyF4xMB
+uZTa0b5u6vqXSVp2T8s3f52uRteIWqyZjKZFZxX3Q/unVSeDwoHMfKtlzO2Hp8AH
+78xzfpcK1BJdXYzgwIy9zH9iuZ0CzRi1XqQdfWjqpcA0Qs0TWXn5IkxEeQ5K2HHZ
+EarS9iZ0d0+Gbl4/x1VX5KDy+unfiJBiTHB8H2Z3/saBdzYG/Q0d+2yQzk9ZgqSg
+yroCbVD3xKfoSJEvriXJW1hdIUPwRvmq1oEoRFJviwFOlwgdrx+bwsxeFy5/KKec
+HVcJgH/lGDn8h+jXFrx8AWz1lSj24vtaavX8xgp/1D26vUaAXcPVPXhxdajA1k15
+hs8coU5ENsPeYBDoY6x8X6/qrIFncPl7+pYoGutBsesA9dwNlu/oXZ4D3J9/wySE
+rYVT42D86yBcpDumcHs01O5qPKgPsGxfRuRYlsDaA4U1PA13VHmg
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIG4zCCBM2gAwIBAgIBAjALBgkqhkiG9w0BAQ0wgYExCzAJBgNVBAYTAklTMRow
+GAYDVQQKDBFUaGpvZHNrcmEgSXNsYW5kczEbMBkGA1UECwwSQ291bnRyeSBTaWdu
+aW5nIENBMRMwEQYDVQQEDAo2NTAzNzYwNjQ5MSQwIgYDVQQDDBtGZXJkYXNraWxy
+aWtpIC0gSXNsYW5kIC0gRzMwHhcNMTkwMTE0MTM1NzI1WhcNMzQwNDEwMTM1NzI1
+WjCBgTELMAkGA1UEBhMCSVMxGjAYBgNVBAoMEVRoam9kc2tyYSBJc2xhbmRzMRsw
+GQYDVQQLDBJDb3VudHJ5IFNpZ25pbmcgQ0ExEzARBgNVBAQMCjY1MDM3NjA2NDkx
+JDAiBgNVBAMMG0ZlcmRhc2tpbHJpa2kgLSBJc2xhbmQgLSBHMzCCAiIwDQYJKoZI
+hvcNAQEBBQADggIPADCCAgoCggIBAIme6ox6GVlAv6JG1Q9mDhovDZ/kjNtzFsgR
+pwuPpoE+crG+n6uMpc8h9daAyA1sGpVTkau+gvxNE2WbgbI0REI384WKI7P9Dl8N
+Bv3TYQ1l6IH74mYMpmJxcUcdHk2zxVhNsW/G8XdOiorCwvcpGQ9cj8zs44LwH8zd
+3bo7ZJpn1mJifV8wOmZfsZACctnVrd6AJPzu3qJE7M3aevUiy8fcxwMTgGMAGHoM
+GaIt6txir40vzktYQkuDg3YkeST+T9WG3iblhijq7Pflql4+azxngc+MuVWWCZw2
+QR0ZVnQYCFboswxLgxs0Iv4Z7Qo8WCeSAwBxaeeLE4XoaHpKoeIqItWUTanVIpQV
+BTXdtkBo/oYYVWmehHJBv/JUNiQr9yjX/IzVAWBhlaXhfHTXm55cvhpU4Vpi7Exd
+fyhXNnUoyTAXteNLkXi9lBiwZeQBJiBCTHDVPlWrTQeEmZVYNd2OdbFZnaYDxXWG
+CjWOFpE2mkTrLrD35XCjRcR9luPt/yo2H63fif9jwa2E0ysGOffGD1PEc94Zbq9u
+7LtdXcQyuyTRsZQ/PKprI+u3nWW1y9OtqTgJaPaghjg2nMqyhNP0XsRN0sHHcCzC
+QODpaPZVuj4SvaoL4KRPaR7036UhyUm/VLv2WSZNT3PxHKfUvgv9T0o5Y9lkzd1/
+3JtyG6c5AgMBAAGjggFmMIIBYjASBgNVHRMBAf8ECDAGAQH/AgEAMB8GA1UdIwQY
+MBaAFH0s5oCDag3sU+yp0wQd5Z2u9w7LMA4GA1UdDwEB/wQEAwIBBjAvBgNVHREE
+KDAmpBAwDjEMMAoGA1UEBwwDSVNMhhJodHRwOi8vdmVnYWJyZWYuaXMwKwYDVR0Q
+BCQwIoAPMjAxOTAxMTQxMzU3MjVagQ8yMDI0MDExMzEzNTcyNVowHQYDVR0OBBYE
+FH0s5oCDag3sU+yp0wQd5Z2u9w7LMG0GA1UdHwRmMGQwMKAuoCyGKmh0dHBzOi8v
+cGtkZG93bmxvYWQxLmljYW8uaW50L0NSTHMvSVNMLmNybDAwoC6gLIYqaHR0cHM6
+Ly9wa2Rkb3dubG9hZDIuaWNhby5pbnQvQ1JMcy9JU0wuY3JsMC8GA1UdEgQoMCak
+EDAOMQwwCgYDVQQHDANJU0yGEmh0dHA6Ly92ZWdhYnJlZi5pczALBgkqhkiG9w0B
+AQ0DggIBAGLXR2SpwSU/6N2DJ1cDzU/y1FWgJFzimAdKJUWPSjl2X93PiQS5bgLO
+kK8M0sVTLK2o5zCiqPYnbITOHHONoPEfouECii58SwY6j3iQLkL4Lbzupg8o+uip
+TcX9AIA8GsucYuBLOXsvhP1C0+Gt/YqF4nryAviekK5GizfZ8IqfLpXd0ZFlp08k
+4nXOlaHwaKW2Q3zZidLSwCh3KFSMXykMraH+QYsQt89m/iAfxDf9rPvQGXw8hoJ7
+2DjiaE2YXPYITQTbEVTfkU7gzpoMJv0PDm6Qg1SchkEzW69mYfPSzUMIs3WMFU8R
+2sMBrca+4q5diBIR83OYb6HLuRgZnd9qh81u27X/XAYHhptkBkp0uc4dWSqBHYWE
+VVtfWzma3JxMJqaUlk8Ar+GWtytjNmV3pCvXMvcAUMb80kwkKrkna4UGdzEaYAQO
+tvDLbGgyGMkVSC2HQmFW0RoX7xKEw34L2PM/TMdaDs6HwjOuwVFo1E0aCEnH5dCn
+P3p2G3ucdHmEa5kmnaz2V6yK845wCnga0haLv6KkIth3rvNUlYUMJWdSexuyiXah
+vJkA46NMoAaVQa52v2HHIdg6RQPbRCGfSKJRR/kp2hv2Q/Wr6D1xd48oBLIw+Ns0
+Xe9iT2alhkfHmMn7BNBwtD26AgnRnyxNVJQUxneVE42GEiLENhHT
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIG6TCCBNGgAwIBAgIQN1+xwMgjiPOkzttiEB/rrjANBgkqhkiG9w0BAQsFADCB
+mDELMAkGA1UEBhMCS1cxHTAbBgNVBAoTFE1pbmlzdHJ5IG9mIEludGVyaW9yMT8w
+PQYDVQQLEzZHZW5lcmFsIERlcGFydG1lbnQgb2YgTmF0aW9uYWxpdHkgYW5kIFRy
+YXZlbCBEb2N1bWVudHMxEzARBgNVBAUTCjIwMTYwNDAxMDExFDASBgNVBAMTC0NT
+Q0EgS3V3YWl0MB4XDTE2MDQwMTAwMDAwMFoXDTMxMDYzMDIzNTk1OVowgZgxCzAJ
+BgNVBAYTAktXMR0wGwYDVQQKExRNaW5pc3RyeSBvZiBJbnRlcmlvcjE/MD0GA1UE
+CxM2R2VuZXJhbCBEZXBhcnRtZW50IG9mIE5hdGlvbmFsaXR5IGFuZCBUcmF2ZWwg
+RG9jdW1lbnRzMRMwEQYDVQQFEwoyMDE2MDQwMTAxMRQwEgYDVQQDEwtDU0NBIEt1
+d2FpdDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANJ3gVIokwy2kKzD
+2cLSll4LrCI53Xg/wlsYJGR13dXZmt82MAaqHLsCe6JtUcxiwiDl34ziDsNlc/ra
+2uTQHxopLu8VQt0bebtjvHOL6XkSf9wNTmqSAJDioTxI6X+V0AOFFNSIx8eNgLhn
+dUwfG/y+gvTC7F9/pTx5wCNf/YnR64G+i22Qdu0ydbfzZYTyer72QMfAuRYOpivf
+DEcvXUfXG6NegIY/E6xzSC/z3nasRVXTO7F6hEVunSUjizOK1XkbP9z3DiKVzD9d
+2YCon/2iWkErHf/khDr6T8/4qJdiqN6qGhoNPYAR9kkcPA52sM/iWnDDwPhXfnSz
+frNG1ILj4f9HrOQEZAjbKfXFhjy1uZZTCeNGJFx6ErGfnhovveDu6UBasTN7IbAn
++XA44JaUyUpw/T6Jc4ppai3FGQ5OiunidKeVP+Y/AYhsHBqk0A61UobYWfCQu38L
+lL4pYTuFPVvjTy08B2+j62X9cjVrZy74673pnpFqI6V1w7kV+hJSMxdURq22sUsm
+2tAdhlcCHnlGn9vJ3u16HMPbtdBVcNBCNgW+vA8al4y8dj1GLjs/S23NaeE9s4Yd
+RqLlfX7a+bOhYCHEB85LQW5e+Aw1jh1SG3vOLgQ/ZF5RaA40rOWkHu1E27dPbeJE
+qiKmGWD+voCIqQ+cgHTe27LzkzdvAgMBAAGjggErMIIBJzASBgNVHRMBAf8ECDAG
+AQH/AgEAMDUGA1UdHwQuMCwwKqAooCaGJGh0dHBzOi8vZXBwLm1vaS5nb3Yua3cv
+Y3NjYS9jc2NhLmNybDA+BgNVHRIENzA1gRZjc2NhLWt1d2FpdEBtb2kuZ292Lmt3
+hhtodHRwczovL2VwcC5tb2kuZ292Lmt3L2NzY2EwDgYDVR0PAQH/BAQDAgEGMCsG
+A1UdEAQkMCKADzIwMTYwNDAxMDAwMDAwWoEPMjAyMTAzMzEyMzU5NTlaMD4GA1Ud
+EQQ3MDWBFmNzY2Eta3V3YWl0QG1vaS5nb3Yua3eGG2h0dHBzOi8vZXBwLm1vaS5n
+b3Yua3cvY3NjYTAdBgNVHQ4EFgQUo0pmFxWUb7rAiKiTmalHf1VPH6MwDQYJKoZI
+hvcNAQELBQADggIBAB53HEPTzYYZhCtjNtAtfeeCv6pZb1x4vjPRi5Z1bCSEqjmZ
+eYD6I+BUbQS9qj2LgwqSkYBzkR5V44bDZxv3FnZDIHb7QHuukBVlDgp7FaZx5t0W
+CCTBqUARvwgdCMBZVvI1NNm8j7LTBa/KKBQxjYBCkLNEPvFnwg9Oq9524/7ABhsA
+Du/lE2kplWcrfKuV4THoatAYvZ0LP7kNQ6s+xZ837KmhyaNclWcL46oXK51dkWBo
+dA9OE2ot7l29ERxGHCPJYo/CDpuyWteOk73LeMuqfWhgQJqqe7EMqkzMMdcN6+SB
+CEqzFaRsGOl1Pp19opoWs8ANC1rBPpPmi3/mzyLecBYyebiCLTG23Irq3xwJ95KM
+bHXuAhqy2XlWSZR/GnqIp3faNnSSoxisxqwQ+PKWclc5FSkvrVtVdBjuCrY9TZvv
+31tjcasmOjjoueTLW1+fN9hxo1Eqqd9//CrOGoKCSf+jatAePfR+gaNRHHe9auK7
+o7U3Jzto189Hl1VxN1FxleMG8znnapNSL+lNmyv30PNSXzRJ7u2JWPeYfXd5NAzw
+iucQPNYizS4ym83SEDL28+pMCIbG0LG3YnwEtbkzAjEJ3IGW1y7S6/+dRLXB6aNc
+UKOLyJa193c7x7f/v9uX9KGN+3XUvfv7yAsIcs9WlR4kM9AE+EdK/1DZvrMv
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+Ltb6
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+ZpXQwlq6YMNjJD3E8Sd5xqVYwmKqFco=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIHEDCCBMSgAwIBAgIIK2aMJtdDxJUwQQYJKoZIhvcNAQEKMDSgDzANBglghkgB
+ZQMEAgEFAKEcMBoGCSqGSIb3DQEBCDANBglghkgBZQMEAgEFAKIDAgEgMFAxJjAk
+BgNVBAMMHVN3ZWRpc2ggQ291bnRyeSBTaWduaW5nIENBIHYyMRkwFwYDVQQKDBBQ
+b2xpc215bmRpZ2hldGVuMQswCQYDVQQGEwJTRTAeFw0yMTA5MTQxMTIwNTlaFw0z
+NTA5MTExMTIwNThaMFAxJjAkBgNVBAMMHVN3ZWRpc2ggQ291bnRyeSBTaWduaW5n
+IENBIHYyMRkwFwYDVQQKDBBQb2xpc215bmRpZ2hldGVuMQswCQYDVQQGEwJTRTCC
+AiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAJ8igT5yClOp/F2rY6Bfy1RA
+JKMNIsAS3rsfZDAkm5CRtfyStbeEjMv+7W7BEbh5oMgw+q/3S3lPQuFZ/xLe7qC8
+tgvSFYtvNtEbpEnWs+ZZcsAhyqueEe4WR7lEEKiLi/fxIf9a/+QVhRkzHM4bjjTo
+7X5C0S63sbuI1BdU9KyOF+sh+IIFQC2++kZ/sbU4Fb7pOwy0HWuV5ZT+VscAoYLu
+YsM7pQmf6G4J4/N2tVsHKXxqAP0EntuhENNltggvPWNlQ4lRvdTy/78UWpt9X4cx
+6vnIbnS2xCX9wF/Chy7Ktt+oZ+TfyxL5SPGAIpEsToCT+Bv6qDN6P+NN6t+DPC6D
+VNs4RfJ2RB/ZH8nVjRBp/enG7JsNYGGUOb649hGKBB5ph0XG7JkmzSyNYjqik01/
+qag925W+43etzdsSXLsiC4Qt3safVd9f6tR5/nW4QP9ukucSqrucNVhty6grpFeO
+ImZeUvCbVkOjehRNFJovpvf5AvHCwB2d7RljJk9zAUTxzSF1/nTOgsbJKTOGs0sU
+VMAyp9cueOee4JK756vYUNUd/glhetqiglPbn+xKPMq1xJZx+fhv6I3JRXeeTJMp
+aF/QUBdxaSxnxp7KsGREggo08PiKpU3LX7UaO9LUkRHHKbI+/wfEf4+ZD4EStaGM
+dHk3QBQk247dReTZO+vzAgMBAAGjggGEMIIBgDASBgNVHRMBAf8ECDAGAQH/AgEA
+MB8GA1UdIwQYMBaAFDcSA888xFowN/0LptoBvUdmkkDvMFAGA1UdEgRJMEeBFmNz
+Y2Euc3dlZGVuQHBvbGlzZW4uc2WkEDAOMQwwCgYDVQQHDANTV0WGG2h0dHA6Ly9j
+ZXJ0LnBvbGlzZW4uc2UvQ1NDQTBQBgNVHREESTBHgRZjc2NhLnN3ZWRlbkBwb2xp
+c2VuLnNlpBAwDjEMMAoGA1UEBwwDU1dFhhtodHRwOi8vY2VydC5wb2xpc2VuLnNl
+L0NTQ0EwEwYDVR0gBAwwCjAIBgYqhXBUZQEwNAYDVR0fBC0wKzApoCegJYYjaHR0
+cDovL2NlcnQucG9saXNlbi5zZS9DU0NBL1NXRS5jcmwwHQYDVR0OBBYEFDcSA888
+xFowN/0LptoBvUdmkkDvMCsGA1UdEAQkMCKADzIwMjEwOTE0MTEyMDU5WoEPMjAy
+NTA5MTMxMTIwNTlaMA4GA1UdDwEB/wQEAwIBBjBBBgkqhkiG9w0BAQowNKAPMA0G
+CWCGSAFlAwQCAQUAoRwwGgYJKoZIhvcNAQEIMA0GCWCGSAFlAwQCAQUAogMCASAD
+ggIBAGjyuKdPoafV8Tqo8HhZOKBwqdyS2w1P+skZtBdEI0fiybhx5uI8d9XHUzM3
+KGJoJWI6wyrEfd5gHnZoqCMctXFnl3AoGuq6CK4rWU9WsMr43dGQXV8T7iRYDf1/
+MZgGjDtve0iZcvynV9/h1GXoRXbksnWxyXBAcy7QjQ0zhmtnikZqHzZBTO57qA1H
+i3xVzQPrvz/5uLNI9YBWbXb8O6RkrWOv8YMrWkyNNeZ83Oc71l3or/mmAa6drs2j
+F1DqzrSOs4y6x9et6c14gk72y0KAYXdy35nFEn0Tjc8w4ZB9IU8MJhvqm+arvgFX
+XKspBbYS1MPZQWmjfZ9bvP819CpejzwLLdTT5LathGvSxnXHJf6+FqgA+Mydoybv
+VQB3ymO7yxYmmRmqV9S37W32QGruRNI2VVQwE9Z2gLXtV6/ibx2AZVHEECisqpMu
+NVdeEWWceK04A2Sj98Y6wAmT6AZA8I4uWicQDTFn2H9B2rvonL2pz0tveFopxXeo
+BnBgdb5qmbEq77ZM9IycNOVPAxd9eQQe7RbK3nLO87GHaXxU81dhHQI5u5JdGglt
+9lvvwQvxHbk97zHF4YIE3ZOzt4UB7LxdRGusenCJYWGld0ihmI6yALD+ZPWWfv6N
+3c1huaQoViIaX1p3KPpumDh1vtqkMEzs8m3AczPnD1fsrPWz
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIHEjCCBMagAwIBAgIIItklK//mqVcwQQYJKoZIhvcNAQEKMDSgDzANBglghkgB
+ZQMEAgEFAKEcMBoGCSqGSIb3DQEBCDANBglghkgBZQMEAgEFAKIDAgEgMC8xCzAJ
+BgNVBAYTAlBIMQwwCgYDVQQKDANERkExEjAQBgNVBAMMCUNTQ0EwMTAwNjAeFw0x
+OTA2MTcxNjAwMDBaFw0zMjA3MDExNTU5NTlaMC8xCzAJBgNVBAYTAlBIMQwwCgYD
+VQQKDANERkExEjAQBgNVBAMMCUNTQ0EwMTAwNjCCAiIwDQYJKoZIhvcNAQEBBQAD
+ggIPADCCAgoCggIBAM2l3TGov7ytA4jJL+IwKT4ViOUzZPNrruKIk93zjGjm9IL3
+rka3jsfAE1KjiPoBS4dO+c/XiMzUGEzcGWf+RSeX2tRqu5Er4SaMD0NjPQMEHTH5
+MjVCWjQFnQSSVWBkVEytP1AF4vxM6VXcTlEUcMyVRkAaw0s9LGuRRLL8KDl/BWsc
+hjeb5A8Cuu3zdKEAFY5Qp3TWPE9lHeWf1Lmgl4aYV0on3sAOVfNQ5OwdBv+t1VpJ
+w5fLhRgO15zLjYUyLu9nwcQSNzA++QmY7cw2rKl68XJWdzBclOzvumismZZpZDvu
+yBHSq2c/rjtrIiw1V969ePja8Aj6VMdRrlya7giFypQOrIKCor3kcwsNDPh7q4Uy
+xa7kamx6NOw2HPR+WcVTWa12V9dx9KY9G+hgGkU6cIrH+g6ZJXBaeLDDIcIy15w0
+bcJdZZbW09WPUd7IsL/KdTAO5j8bs+qMxujadHPP+Fvev04q6/J2A3OLl0HZDqkE
+SZ68yHAQHUrnkC/fjJTiZMDDxhmDThmvDzadAQQQOkBz98gcwZJPOadY5bisijfW
+EvznKCIy5rRLI8BKroku+k1bL9aEazKBW5sOCIUvUydQ7PihM0JmSv/Ol03ajd1o
+c93A1kft7Cod5TDIhLJjBeHRNeH0j1AQ4pffvKBd2GHpxrLxlRKMirtg3raFAgMB
+AAGjggHIMIIBxDASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAd
+BgNVHQ4EFgQU5WXl0gc3WY49k4/DWBZggEOZtOcwXgYDVR0jBFcwVYAU5WXl0gc3
+WY49k4/DWBZggEOZtOehM6QxMC8xCzAJBgNVBAYTAlBIMQwwCgYDVQQKDANERkEx
+EjAQBgNVBAMMCUNTQ0EwMTAwNoIIItklK//mqVcwKwYDVR0QBCQwIoAPMjAxOTA2
+MTcxNjAwMDBagQ8yMDIyMDcwMTE1NTk1OVowOQYDVR0RBDIwMIEccGFzc3BvcnQu
+ZGlyZWN0b3JAZGZhLmdvdi5waKQQMA4xDDAKBgNVBAcMA1BITDA5BgNVHRIEMjAw
+gRxwYXNzcG9ydC5kaXJlY3RvckBkZmEuZ292LnBopBAwDjEMMAoGA1UEBwwDUEhM
+MG0GA1UdHwRmMGQwMKAuoCyGKmh0dHBzOi8vcGtkZG93bmxvYWQxLmljYW8uaW50
+L0NSTHMvUEhMLmNybDAwoC6gLIYqaHR0cHM6Ly9wa2Rkb3dubG9hZDIuaWNhby5p
+bnQvQ1JMcy9QSEwuY3JsMA0GB2eBCAEBBgEEAgUAMEEGCSqGSIb3DQEBCjA0oA8w
+DQYJYIZIAWUDBAIBBQChHDAaBgkqhkiG9w0BAQgwDQYJYIZIAWUDBAIBBQCiAwIB
+IAOCAgEAbYxntynX6T1AeLhoQX7NGS+s8l4vCyCAnUBmEqd2ZIXL16Z9PzowVB6c
+Mcy5wz5z3bqRlHhcT+/lBf8D1AXHJe5cQThcmH3OYTASEjsY6Mp8kabumcIS4HSC
+cEXc8F/sjvrBSGjaPLUatu/PJdt7dcGTUE5Q5NSsL4b5Uv0FnmBYBg19X7TOnDMA
+r4kl+LCrA6sAcpvSm15CiDqfdbLhFrmQfd1Hs2sHBHWyyTh1mpAKMawmc/RgOqCc
+4tFOQ6kj7zIYc9WNV4Z44oCzW6lSquXNmbEDXwBGgCzr2IVmgl7bASiPym/jCvcI
+QoXBJBL7B6n8p3Y5ag6OsGASRBAtE8GQNxc7WQTVrPWdIclxn5FVu6o/6WF5nyz+
+jZUdQOnL7zfzylmGoG6qRcPPo9AoCvgE3wur4Y11pyrvYMD2EtPb/F3wT/kWCF47
+vngKyAwFuPzFqKQD/oZoM2XJsgFu+K/4Yj+qhlJS/nWW7WIxvz4k64JgXiHp7i22
+sVeDpQHdmX/JLYURDjEx1AX0UHBn9K1SB9kXV/Sfi6Wh6/1Rcrnwx020bxCeSCcf
+yTktd1eC65XJ9WV5h25kzwScDaRiJeU0g2ryqirA+83M5Xes0ImsBfLEYKIyh5fA
+i6PQ5QhILriZEIcXyB73FUPjzInLTNNeD1saw81bbfVDU7+uYOg=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIHFDCCBPygAwIBAgIETjLQBjANBgkqhkiG9w0BAQsFADCBozELMAkGA1UEBhMC
+VVMxGDAWBgNVBAoMD1UuUy4gR292ZXJubWVudDEcMBoGA1UECwwTRGVwYXJ0bWVu
+dCBvZiBTdGF0ZTENMAsGA1UECwwETVJURDEiMCAGA1UECwwZQ2VydGlmaWNhdGlv
+biBBdXRob3JpdGllczEpMCcGA1UECwwgVS5TLiBEZXBhcnRtZW50IG9mIFN0YXRl
+IE1SVEQgQ0EwHhcNMTkxMTE0MTYzNzEyWhcNNDAwNTE0MTcwNzEyWjCBozELMAkG
+A1UEBhMCVVMxGDAWBgNVBAoMD1UuUy4gR292ZXJubWVudDEcMBoGA1UECwwTRGVw
+YXJ0bWVudCBvZiBTdGF0ZTENMAsGA1UECwwETVJURDEiMCAGA1UECwwZQ2VydGlm
+aWNhdGlvbiBBdXRob3JpdGllczEpMCcGA1UECwwgVS5TLiBEZXBhcnRtZW50IG9m
+IFN0YXRlIE1SVEQgQ0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCj
+Mg42Fipd4tZOLauEOb5fZlfU4xSv+PsNmBzrNdntXOxhUH7oBGIhuiTvtLE+2T1l
+5Qiq6ONbn0nJv4RSIjqCIhk673NjsED41B+Fl7LDOvVcpeF9E53maZSK/c3Pm6Qw
+EXAGgJo4dRyGirCaXfmUKT5fsrc05L74dZufG9FAWo4i2xNxoyDaOn0EX6+YevSd
+u5yyLjMDcHNQpaytu9xXTkzgf/KjKu7/m6rwmS1LFvELMreIpdXKLpLBGQ6Il6Rv
+O1Uqi4QtCVWGWEZpxQ5Dy5v49NriBFYpUe2HrxiZhbmTXb/YHnYKvMCd3EIZ7B83
+kq8PLnChAQNcdwn472zneWJiNkU1Tlx4v5HjyNShctU+4KZcVAqqjU3+376VZHqJ
+xbLy2WUdkayvUYNVfT4Rj7SAlRQtH5I/OwCq3kiAKrQGVD+LPiItRLx8CgezjoBT
+e7/Ic1FqkG7dc6orAKZAfYc1S59RnIPnpxVogHMTQgtYrBjsdoRw/bzLQP/746mo
+/PjhzxiHAtxJ2ghgkg5vcXMFWyr7UHbdV6pNnwjGkOQjjC6YEvAlL54nXfpcFR6A
+vWFBC/kFGtw39eAn3DILjdA353wt8FZRlCh3LuQpcLQq2tq2AfDBrMJ3GXw9HenR
+p5du95QFsmbJFBLbuMPKSdythSvOQbxZFaGtbS1RHQIDAQABo4IBTDCCAUgwHAYD
+VR0SBBUwE4ERbXJ0ZG9wc0BzdGF0ZS5nb3YwHAYDVR0RBBUwE4ERbXJ0ZG9wc0Bz
+dGF0ZS5nb3YwDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYBAf8CAQAwgZkG
+A1UdHwSBkTCBjjCBi6CBiKCBhYYqaHR0cHM6Ly9wa2Rkb3dubG9hZDEuaWNhby5p
+bnQvQ1JMcy9VU0EuY3JshipodHRwczovL3BrZGRvd25sb2FkMi5pY2FvLmludC9D
+UkxzL1VTQS5jcmyGK2h0dHA6Ly9jcmxzLnBraS5zdGF0ZS5nb3YvY3Jscy9VU01S
+VERDQS5jcmwwKwYDVR0QBCQwIoAPMjAxOTExMTQxNjM3MTJagQ8yMDI1MDUxNTEw
+MDkwOVowHQYDVR0OBBYEFPGKi/tqRKNGgzTS1ZIVgViCSkz7MA0GCSqGSIb3DQEB
+CwUAA4ICAQARoYLCR1di+iUGqrcBi/ABSFx4oHm2cJzMAT7cs6cUAbzeGhFELYEC
+Jzjbwb93lQgg8IpFl8mcBPT4yoMlZDZKKzDiztI9hTwLJw054n5oRk6YJm/45g3Q
+1HUb+0wv6HzXfRlCx1fjPsPQFOpcKIKgdNc1QarEaxnUSHG29ie9E2WR3dD8yCFW
+kbdGvmlf4FO+P1O+gfUwSbfLuuUg5RDif9bU+D7VBzuC+6QxueKRo6y99ZZcmHTJ
+6dsaw/oKABOB+FfSad2RGLvpIynpKjpPNpoFw8H8FcSpOiwpdtSp5tdgLAKVwR/6
+hVMGhuwsSxmxknbLopaKSBC1shp4uZNOlSNjh/d2ssYfGPLrWuTARb/dD9H9SQjg
+eqWZV8CJ8cNASsgenIwbygmH70J2p3+qlmA4WLq86qpOzrCUOZaUHYuVSjTEb8fy
+CGUjAparnyVnPEUwqeVWOC9tbZtscV9WE4A9c0u8gr1DPVVWIdXrhdpXeOZQwJDm
+sKLyTo/yp7GYLMBvNZcMz+orcsyTXoznGk/Xu/7piTpKQZ+EPT8yBp3zb2zNs0Cp
+iNTD+szdm/UZE4Wl0kfzCPAz0fSKprZa7ifoiaZZzOwzkpnkpU2SuYcKQqyTw0E+
+Up7Z2qhj2NjkxaikFjTjm4d03dwnU+ojALwufJG1LIj9VShAVQG0ZQ==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIHKDCCBNygAwIBAgIIDmswsj5q5x8wQQYJKoZIhvcNAQEKMDSgDzANBglghkgB
+ZQMEAgEFAKEcMBoGCSqGSIb3DQEBCDANBglghkgBZQMEAgEFAKIDAgEgMDsxCzAJ
+BgNVBAYTAlRaMRQwEgYDVQQKDAtJbW1pZ3JhdGlvbjEWMBQGA1UEAwwNY3NjYS10
+YW56YW5pYTAeFw0xOTA5MjUyMTAwMDBaFw0zMzAxMDEyMDU5NTlaMDsxCzAJBgNV
+BAYTAlRaMRQwEgYDVQQKDAtJbW1pZ3JhdGlvbjEWMBQGA1UEAwwNY3NjYS10YW56
+YW5pYTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALI0YNjWq2A+6iib
+YcTaYIpuowIZCy+ujzzQfq/r67rtv2H3dzb0jyZbAWF/E4t3gVwiAw1YigOL+sst
+1xLCaneIeQvN+MYksL4LVK+F8Aqd7M3Jk7SAX/rneEysQsY/XBAs1Zakuf+VSP9d
+Ahm/wBprSfjZzVeT/PD1leVD8raSAiMD3sn3vJcV9TYuu3yy4LIIEemwgKqp1rOy
+SLcFvHPOuC+nhFfG8QTS9vaXKMWrhiYo17II938qOHhn0OPySqD1h0fdoROOl7vP
+X25YEHigno4z9mYusP5QfxBOSe2fujBAJ2vuzCODGvpF2W5q4nKpzlBeZF4OVulx
+NwJEWWvdlCccQQyayOjpp6BIm6js0+qDN3/G70pvH+Xd6m1v09gG4PXGWqWR0SNd
+iGZZdHfBsRiKwGoT5z4frVNuHT77FDhEf7QE1sl/6JJ4/+ZyzTCoWfubaLhv7i/U
+uK49S48IN2qPi88YMZQtIB9Rfd+vdPDLpR1M2hMJAVDJHxiI5JI3sH8A6Sdk2tmg
+4cU/obIwGZAc63U+NHPiproRGNF7tRyLzE2K0qE3DyxApwPrOwakGHiCc/V7FL9L
+5KS45XzeOF26a3M+Ax+j+E0BSIbt1FcvgUjQ+RPxUjvFV4j+Wil9lSKhk6bRhFjO
+iQ5BKi+rH2GDzlNb2ZD37a7vlmhnAgMBAAGjggHGMIIBwjASBgNVHRMBAf8ECDAG
+AQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUkPfRchwDH0gmljfe8czR
+lPWHrPswagYDVR0jBGMwYYAUkPfRchwDH0gmljfe8czRlPWHrPuhP6Q9MDsxCzAJ
+BgNVBAYTAlRaMRQwEgYDVQQKDAtJbW1pZ3JhdGlvbjEWMBQGA1UEAwwNY3NjYS10
+YW56YW5pYYIIDmswsj5q5x8wKwYDVR0QBCQwIoAPMjAxOTA5MjUyMTAwMDBagQ8y
+MDIyMTAwMTIwNTk1OVowMgYDVR0RBCswKYEVcGtpQGltbWlncmF0aW9uLmdvLnR6
+pBAwDjEMMAoGA1UEBwwDVFpBMDIGA1UdEgQrMCmBFXBraUBpbW1pZ3JhdGlvbi5n
+by50eqQQMA4xDDAKBgNVBAcMA1RaQTBtBgNVHR8EZjBkMDCgLqAshipodHRwczov
+L3BrZGRvd25sb2FkMS5pY2FvLmludC9DUkxzL1RaQS5jcmwwMKAuoCyGKmh0dHBz
+Oi8vcGtkZG93bmxvYWQyLmljYW8uaW50L0NSTHMvVFpBLmNybDANBgdngQgBAQYB
+BAIFADBBBgkqhkiG9w0BAQowNKAPMA0GCWCGSAFlAwQCAQUAoRwwGgYJKoZIhvcN
+AQEIMA0GCWCGSAFlAwQCAQUAogMCASADggIBAA3q1cxA/3zGYuGV3MdGu7xS0k1+
+41gRtDYZZ9CZQCXHmGm7Tjmpps6jw2OEYVhCyE3ym4IuS1m+zo0QQIAyJFbTwb4O
+B5EFN3Cav1Xsi+dkrqn5oFDZYJhm0xWNdbAwJ0WB2Yz6Cc4Iyq6M//iB6SCmoC03
+NOsjmYcwc4VpdPi1JcX+Nfp8dGlbG37aOR9Mut5vAng9XtnWhDynHnSdI4NCBdjc
+fy/E2H8xnPn1x1Gu6TFIaE90XjamfgQoCxzxEuHw9DSx6MlJSwknJ8504oMIv1V3
+m4CjPQL23Hl0VGPlgyRKzcnoLe5tA9B5ar+TnVFVZfnyCClAdCw7I8dMluWp9Tb6
+i0S3bECc6p/RFZtotYsWSul+hLQo8iqw5dIES5Gsvlnv1BryRgnwUsX+YtLJpB/z
+5QRtVyN1M1zPDSGZQ0Vh1jgbTpn7LGpM45iIxBkqeZcVRDCPqy7y03DlXIRWyvVe
+7+qqcHQsQC5+GwX7x+ABux9P2rC9gtOElK4HGqZ/MRMCM0h+bYm0jemtRavp/YBP
+A1lTBXd2uETpEuci+srdoG4qlziPAnlUOX3vifpnuj3WrrUkmyNMoQovU5YZweAm
+JA7GSuIXS1gUt9JMB6iAjKnkJ7GBuaUebA2DyAEgyYjW9SrPZv5CaXRNAjvdyCSB
+kaQW/LbHJn0qjOeO
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIHODCCBOygAwIBAgIEVjo8gzBBBgkqhkiG9w0BAQowNKAPMA0GCWCGSAFlAwQC
+AgUAoRwwGgYJKoZIhvcNAQEIMA0GCWCGSAFlAwQCAgUAogMCATAwZTEfMB0GA1UE
+AwwWRVUgTGFpc3NleiBQYXNzZXIgQ1NDQTEXMBUGA1UECgwORXVyb3BlYW4gVW5p
+b24xHDAaBgNVBAsME0V1cm9wZWFuIENvbW1pc3Npb24xCzAJBgNVBAYTAkVVMB4X
+DTE1MTEwNDAwMDAwMFoXDTI3MDIwNDAwMDAwMFowZTEfMB0GA1UEAwwWRVUgTGFp
+c3NleiBQYXNzZXIgQ1NDQTEXMBUGA1UECgwORXVyb3BlYW4gVW5pb24xHDAaBgNV
+BAsME0V1cm9wZWFuIENvbW1pc3Npb24xCzAJBgNVBAYTAkVVMIICIjANBgkqhkiG
+9w0BAQEFAAOCAg8AMIICCgKCAgEAohP/iOVhnNuN8Bh3/+ddPBipDmXIXtuxl8Hy
+0PUVMYMbh0w6na5HCziXibHYqiS/GNPREnv9v6DT27jh82hDtr6x0jmlPKQmLJsP
+yAa8nRkVPamWnUP/dkbtNl4hpiVRnhlMh2Poc5Rxfjrdqywersi8TJChj4FnqV6p
+JeVsur/LXow/T6WwBMzYu40LUcPAlOZvHQwukg+pmskJ6Sk5MsCMMUf799vmFIEc
+eTcY2StNtb8oMxeGO7fwgoWmVPn+XWOeukgEdQgZQr3l+ohlVvf6PxXgBa59ToIy
+NhbivuhXz2NRsoN9YwPc6ZdNTZTgjoFEw8v8VIS/TzCc+0PPdnrZ8WxaxrAOeDSX
+yuCKcR6m2ubJPRJ3C3M954FXE5OXpEtil0G4MezZxjEbiVT4GRtO5O0qpJ0ukdeX
+TaR/0Qhgl6ol1we0BC7BjmkDf07nxbjrWOdTcImyX4F/gr5kyiPOXN0jG/Ehs2SA
+/ajkgerMEkfgg+HAwfSexh4frL6c8pBZ2s29SsCIPw5zQ71iF8yKZMAuqjdvwgwk
+TtWDBYa3u3ZYcGtB/3OWnJnP7npDciKxiztbtO6Xm/ak2m6/xTiGzg0asON/+YQw
+PDiJDwhu/l3hZZWHeiFgT/MBFnEHl2IcmrNFaFIwz9gqxmEf6lghhueChSpDA4if
+eEHUImECAwEAAaOCAYYwggGCMIGSBgNVHSMEgYowgYeAFLzJa1HIIq419SeHZio3
+OjmKIvw/oWmkZzBlMR8wHQYDVQQDDBZFVSBMYWlzc2V6IFBhc3NlciBDU0NBMRcw
+FQYDVQQKDA5FdXJvcGVhbiBVbmlvbjEcMBoGA1UECwwTRXVyb3BlYW4gQ29tbWlz
+c2lvbjELMAkGA1UEBhMCRVWCBFY6PIMwHQYDVR0OBBYEFLzJa1HIIq419SeHZio3
+OjmKIvw/MA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/AgEAMCsGA1Ud
+EAQkMCKADzIwMTUxMTA0MDAwMDAwWoEPMjAyMDExMDQwMDAwMDBaMCMGA1UdEQQc
+MBqBGGV1LWNzY2FAanJjLmVjLmV1cm9wYS5ldTAjBgNVHRIEHDAagRhldS1jc2Nh
+QGpyYy5lYy5ldXJvcGEuZXUwMQYDVR0fBCowKDAmoCSgIoYgaHR0cHM6Ly9ldS1j
+c2NhLmpyYy5lYy5ldXJvcGEuZXUwQQYJKoZIhvcNAQEKMDSgDzANBglghkgBZQME
+AgIFAKEcMBoGCSqGSIb3DQEBCDANBglghkgBZQMEAgIFAKIDAgEwA4ICAQBPKYKV
+KV3MU6+e4I1C8XhbhHFuOnB9zNtGlPa2hrSJ0IbpJpg6LEx7RFE5ML3eT/4LCSsf
+sf5vK7xJGtA1ojw8Gd72ZrHgSTd4NKlU4rAE7SNmA+datHTrii3MAuCWfBrOQZRa
+f/4ej0yIPSVeP6BwOuFT6iiCq+SWiFEZzHW2mZJujWURL/BEgwC4+yYFwK04qk0H
+MkwKkQjRPbAjmdKtcxLxf5Euf1ZT0VB8SvzcBs+63dFF/ttJ47MlxRMp0A/OqteO
+XLWWbIlIZRM1W9VBZTGrEtZ8ZX6kMcSQRKkKCMs1DjGkmZx0lj9alfF/06x+ugSj
+UYMN/Ih+OHZpSvfZsVUcfuUqlLJCuXtMWGs4PDaW6k68g7GUU1serwggngU9qgGf
+fDaQaSBDhL1XVNoXJ2BHGOI/FTiUUotGb1y0Sj75mRW2pQHijd1f+1TQOzVTf4ab
+5JBo3Iuz0P2eLciCbZbCRs90rPwQFVJaVe2NAaBNckP+2IaKOiaI/gbKZC3MpDwX
+Bdt4bjFHHzZ+XGugg4vlkNQQ46vRxr10bFg+CPaNplg/HMZPjJVOuxg3amYfanIr
+2mSPScKJA9fJZuxOd7rGIb4Z1Bvs16S2WfNPTZRnQjxAqXir9Wa2xxvw3GriU6Dd
+C2ceDox/pCY0HZZvVMOh/AYHDptR0uO4jSdjUQ==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIHPzCCBPOgAwIBAgIIAPcVFd00H0MwQQYJKoZIhvcNAQEKMDSgDzANBglghkgB
+ZQMEAgEFAKEcMBoGCSqGSIb3DQEBCDANBglghkgBZQMEAgEFAKIDAgEgMIGIMTkw
+NwYDVQQDDDBHcmFuZC1EdWNoeSBvZiBMdXhlbWJvdXJnIENTQ0EgZVRyYXZlbCBE
+b2N1bWVudHMxPjA8BgNVBAoMNUdyYW5kLUR1Y2h5IG9mIEx1eGVtYm91cmcgTWlu
+aXN0cnkgb2YgRm9yZWlnbiBBZmZhaXJzMQswCQYDVQQGEwJMVTAeFw0xODEwMzAx
+NTQ1MzNaFw0zMjEyMzAxNTQ1MzNaMIGIMTkwNwYDVQQDDDBHcmFuZC1EdWNoeSBv
+ZiBMdXhlbWJvdXJnIENTQ0EgZVRyYXZlbCBEb2N1bWVudHMxPjA8BgNVBAoMNUdy
+YW5kLUR1Y2h5IG9mIEx1eGVtYm91cmcgTWluaXN0cnkgb2YgRm9yZWlnbiBBZmZh
+aXJzMQswCQYDVQQGEwJMVTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
+AKgNuEvu/MySNuvZ4XxxowIaTEpgbu4inDQWJee3UXFT9ua1K66cn/IByqIrvFji
+Kbww/kTcAOz1RsEY8Ic/qkFqe+Yeyna6TY+kgusL4cGtBJbNa+pzmlQ3rg9xXJAO
+NSQD6PjJHncPxLfkWzl/YzhzV8ArTUAvKlVar6YlZTkNuWd90705ipcrSf359nxI
+1GPdE1kszDregjSGogf9Lw145/fRhQA7YmGRefh7v78lgibb3ZheMpTQ/+hHOvv4
+XwqYmhP09H6ooFaoNGBlp+tHeaBiAEpm26aQvtNJudO+0zIeO0bYgKIrUZlch1Ya
+LyHFLjZ/KQDdaP7PP3YiWWwyaJrRn7heFfv55btAIH69j+ukuVxPq8koEXPMZSnL
+IugjCYSsLSLy2icy85Zp4qwlghb0cy/+x5M/32duORrcKTU5vLyMQkYpAQFs7VAB
+uer/Ip8t9+oBYDERFwOlt/zih8kQiO7njmIe145WVTRG/28bhpmOlXpaC2JagR6f
+VVqkVNWuYK+NrujncZ/ktG53szuB/egIScJqfbeNvnbwiop/plVL97A2W0U8ATPT
+IDtzLWcRwxdGvFx3p9zaKuSB9BIlWW/8VZmMkpwaZhxZCris1zHDoiVgIZQA1nMW
+AhB4qpNwaExSJxH814njkRaoB1hQueOJZ8lH5yv+6I7XAgMBAAGjggFBMIIBPTAd
+BgNVHQ4EFgQUoFn8AxKVTcE62USmIMCeZ57VU6cwEgYDVR0TAQH/BAgwBgEB/wIB
+ADAfBgNVHSMEGDAWgBSgWfwDEpVNwTrZRKYgwJ5nntVTpzArBgNVHRAEJDAigA8y
+MDE4MTAzMDE1NDUzM1qBDzIwMjIxMDMwMTU0NTMzWjAVBgNVHSAEDjAMMAoGCCuB
+KwUBAQEBMDsGA1UdHwQ0MDIwMKAuoCyGKmh0dHA6Ly9yZXBvc2l0b3J5LmluY2Vy
+dC5sdS9jc2NhX2VtcnRkLmNybDAOBgNVHQ8BAf8EBAMCAQYwKgYDVR0RBCMwIYEO
+Y3NjYUBpbmNlcnQubHWkDzANMQswCQYDVQQHDAJMVTAqBgNVHRIEIzAhgQ5jc2Nh
+QGluY2VydC5sdaQPMA0xCzAJBgNVBAcMAkxVMEEGCSqGSIb3DQEBCjA0oA8wDQYJ
+YIZIAWUDBAIBBQChHDAaBgkqhkiG9w0BAQgwDQYJYIZIAWUDBAIBBQCiAwIBIAOC
+AgEAVrYAAG7p2CPSK20LXkmJW4oI1N1grnqotCMTFs1x79jbenwKf/uSTnnc3mIH
+C/0tM9r3Xj9T3HCibC2mc58vaeLafbieR/SDiEkuQ752o6Oq+XqfP4zO2YZNQjAM
+iuqcqiW8wIBzBYooJGveX+D273IlhNVGVrzlnbse95Om0wSjHVMEFvu8yNrZVrxF
+wTFz5B6WnZhIcfNA6OQVc3li/+FZB7VduoX1VEMdWOYw8n5P3GtCgrpLJUy/EVhp
+g5i7O4HHKb5H/HYFz22+DkTwoDy+sa5IBJdm45VmAwrMgGgfPc8fj20sXHznLExd
+T/++ZhQ8PpbZPgT8jSioaKFMweMWY09LMgBRZqGpDyajP5sC53f68mAT0HbL4B0o
+sCoFYoM5h3H/TTJ9EnhSzq/rxWEz4f/sOoBctEUajyL3EUzaVWEjjeUABuC8v4wS
+ygb/ZvPJy70OogPgTSwaLzxtTDdnPFPAv88C8EDgYBRnJrmMxrxzbrTn3fe+iFDa
+5ta6YiSae0CZBLDpbTjaev1GOVVScLX4X1hG2egB4W98r2eHGN6UTrWpqx8I0n9B
+o03uek+XnFkdXpUgTG+e9d4tP/LTt/B5+qIXCROa1zDBkw2y9FYzk4qJ21WyCiM0
+n4wZ2HU3j59Cj+4lAJ/F2cHbLK9kKpS1dwi70Zp1hBIuli0=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIHQTCCBSmgAwIBAgIBAjANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQGEwJBVTEM
+MAoGA1UEChMDR09WMQ0wCwYDVQQLEwRERkFUMQwwCgYDVQQLEwNQVEIxKzApBgNV
+BAMTIlBhc3Nwb3J0IENvdW50cnkgU2lnbmluZyBBdXRob3JpdHkwHhcNMDgwNTIz
+MDIzNzUzWhcNMjMwNTIzMDIzMjExWjBlMQswCQYDVQQGEwJBVTEMMAoGA1UEChMD
+R09WMQ0wCwYDVQQLEwRERkFUMQwwCgYDVQQLEwNQVEIxKzApBgNVBAMTIlBhc3Nw
+b3J0IENvdW50cnkgU2lnbmluZyBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUA
+A4ICDwAwggIKAoICAQDTRaXFCXMc9SWNOzZleZMBMogbX2uebpEtN5jKTKbfLkrI
+HLoTx4YeJbv2GlU5cVRfCwfp5CGMSY7AIbn/ovvAUoX0F/rxGIybA5MUJN4hrzpx
+pcZhJRKggrdwzhWpPBO/g0XzhFod8RFZYdB8JTY6LWgyXTeP7jrizsEejeJhnGjr
+GQI8qzOnKlFpZBkVgHJCKnI7nd0fxmwQLp348IORySVRJ4K6PBfAfPVOuv0766if
+kpqCOuOAutDfGb1cHGv8WMLxZ9dpulRSb5wuk5YC7AhsQJKbfYOw2xkSEDJLIitG
+6Rev8MsYpNYAlxwGNpNO4HYege4A6EqKLAmaov2WEjGIguZUiN6V8b4m0GOZIz13
+U4f1DT1Baj2AfoBA7hzKGBaH7Ndeb//CdYh0LKqfy2tAS4jyLcHwdb+BX80jpRdE
+iUPAUUQbSN3RP6EtOAc42gVFK5OGxWeS1+KodasKBbKbM/5WWR54RxoxJICPEJQZ
+iIdrwypCOBTqhs0UUc9XbYYqX63Gmh/nHuj0UrFamK5hlBLky3pQHy9SXPsOjGVj
+U/JWWPKw3CElioKJG3Bshzya0Q2AFQlYk2Apeyhkna3ya/6x+nXLrpPKFDtx/xLN
+GjRXlkBLlQdUv4OShL9lDfoIFEkKU2ifKPOfDnWjitKhHnhiTreE0CPntSEvLwID
+AQABo4IB+jCCAfYwEgYDVR0TAQH/BAgwBgEB/wIBADCB8QYDVR0gBIHpMIHmMIHj
+BggqJJ+mgV0BATCB1jCB0wYIKwYBBQUHAgIwgcYagcNDZXJ0aWZpY2F0ZXMgdW5k
+ZXIgdGhpcyBwb2xpY3kgYXJlIGlzc3VlZCBieSB0aGUgREZBVCBDb3VudHJ5IFNp
+Z25pbmcgQ0EgdG8gdGhlIENvdW50cnkgU2lnbmluZyBDQSBpdHNlbGYgKHNlbGYt
+c2lnbmVkKSBvciB0aGUgRG9jdW1lbnQgU2lnbmluZyBDZXJ0aWZpY2F0ZXMgc3Vi
+b3JkaW5hdGUgdG8gdGhlIENvdW50cnkgU2lnbmluZyBDQS4wDgYDVR0PAQH/BAQD
+AgEGMCsGA1UdEAQkMCKADzIwMDgwNTIzMDIzMjExWoEPMjAxMTA1MjMwMjMyMTFa
+MB0GA1UdDgQWBBSJUhghMvDepX8TOhcqXVYXoHkSajCBjwYDVR0jBIGHMIGEgBSJ
+UhghMvDepX8TOhcqXVYXoHkSaqFppGcwZTELMAkGA1UEBhMCQVUxDDAKBgNVBAoT
+A0dPVjENMAsGA1UECxMEREZBVDEMMAoGA1UECxMDUFRCMSswKQYDVQQDEyJQYXNz
+cG9ydCBDb3VudHJ5IFNpZ25pbmcgQXV0aG9yaXR5ggECMA0GCSqGSIb3DQEBBQUA
+A4ICAQAEqjDutevDMs4Xk7FeSCvr1UHXKDNYmleeWjH/cO/iLUujapR3bCXv7kOr
+o9oScviuqmdISaa0eJdrjkVoAbrQuoZUPYmjhBsQiiJr1rssOgcpxic+atx0jSp+
+x3epZT/xQrspoDCJ4axT7dSyr/7BDtPbI7RGX6VXiG151PnKljJ7APjlV5mc1qFS
+Y1CJbmZhvbT26/HwMUdGMVl3XVn4nTJ/az/HxPsQ26UuIkMrCH5Q1OmxEsqDRFAh
+x+nR6thPDNrDb+9QhP5/cxot23u0+AswUQ58FGPRyAcmOhr6zqsjv74khPavQyjf
+MLbwgemQKr94S4YMHRtFdhXttI2H7wxEFQBtmTXX343puet6+/z9k3RtVequZikE
+wJQdH5/gLVlw13/1tkzkTMA42Vt8qrxe7ETEtutHBdelUVAIsD0GRVvN6/436gor
+pmzZ++EWhEkRIzQ5JBNOaZC6P3OKG1H/FGlZBChb/lsXUqEnrIzVt+NF4V5RwZHV
+403Y5tWW0XWWSWRalYoRH5nwhOwyrMHrjwWdgWSWcwPjNpgrSF7ZgOTcW2zVQYC/
+5LaRZDFGjl5SihngIpyc3hP8x8D+isUJeaIf0APJ0XkVxPGXUGOioFYg4oz1kYeG
+m5dcjtNQNHSBst32FDqnoviop+pMDdbdy/JSmwPHFtl4KseAWA==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIHQzCCBSugAwIBAgICMAAwDQYJKoZIhvcNAQELBQAwZTELMAkGA1UEBhMCQVUx
+DDAKBgNVBAoMA0dPVjENMAsGA1UECwwEREZBVDEMMAoGA1UECwwDUFRCMSswKQYD
+VQQDDCJQYXNzcG9ydCBDb3VudHJ5IFNpZ25pbmcgQXV0aG9yaXR5MB4XDTExMDIy
+NzIzMjI0MFoXDTI2MDIyNzIzMTQ1MFowZTELMAkGA1UEBhMCQVUxDDAKBgNVBAoM
+A0dPVjENMAsGA1UECwwEREZBVDEMMAoGA1UECwwDUFRCMSswKQYDVQQDDCJQYXNz
+cG9ydCBDb3VudHJ5IFNpZ25pbmcgQXV0aG9yaXR5MIICIjANBgkqhkiG9w0BAQEF
+AAOCAg8AMIICCgKCAgEAn8NW03F55Sf4tvQMk2KN9CDsMteBreJhHmfj5QH4RjWG
+Dwx+XisGmZDMxuklCfCVCgbKlV9pYlrH2niAA9Kdcm/58AqX/9Vi0ks8nEkUY1g+
+Cb3oP0lZZR0QKVrSyD7C191d9/eAAjXrYglZUK+cq2f1zXqKcPclNhkOpob9e29Q
+lLPO5Nlmfk6ZJKVUg5+exQvSGI3kDIS6ie4cO18cLL0rVdG8J50WQuHK85di/P/U
+vWjXMZfOEPRUiv7owKZ5Sz9nZCY8yHlFcCDajwZ00L2OeXMbjDfe/WLSsxjPRLcv
+DKNUD7Ce5BJzj+EgM3z2BMICNhIfsi6R5emxu3PWguJXrfn6YVsmoksQ1xeKdlGu
++exEi58Hvqx8WJFsySBkz0s/7d1rf8FRqhl13qv4G2v0OfC1LtG9L3uOFR0ZwjWg
+aLNMq6390Q3s0i4Xizysk8aON2UjtrqZeSopJAos9E4+TGs+Sp21PqieEeYtEDuT
+N3FyO8h6jljsyEOdTcmbAUIGpFKy1k7or8KEeZkSu2qOD5zJNmKMeveytPmAnCC4
+wRAUYUCLbqxeBRnWxr1b7ZMXYeNMDaK5Ceh9MDTB6kCpUCb93H3csVX1huxRTgSl
+QT99UvwI9AY71pzGc61dPvWtR1CnVCrjG1drrr0nxDRT2veJUxK7ld/D3tQdBrUC
+AwEAAaOCAfswggH3MBIGA1UdEwEB/wQIMAYBAf8CAQAwgfEGA1UdIASB6TCB5jCB
+4wYIKiSfpoFdAQEwgdYwgdMGCCsGAQUFBwICMIHGDIHDQ2VydGlmaWNhdGVzIHVu
+ZGVyIHRoaXMgcG9saWN5IGFyZSBpc3N1ZWQgYnkgdGhlIERGQVQgQ291bnRyeSBT
+aWduaW5nIENBIHRvIHRoZSBDb3VudHJ5IFNpZ25pbmcgQ0EgaXRzZWxmIChzZWxm
+LXNpZ25lZCkgb3IgdGhlIERvY3VtZW50IFNpZ25pbmcgQ2VydGlmaWNhdGVzIHN1
+Ym9yZGluYXRlIHRvIHRoZSBDb3VudHJ5IFNpZ25pbmcgQ0EuMA4GA1UdDwEB/wQE
+AwIBBjArBgNVHRAEJDAigA8yMDExMDIyNzIzMTQ0OFqBDzIwMTQwMjI3MjMxNDQ4
+WjAdBgNVHQ4EFgQUKw+Zo0vp1a4Akzp4aMvNIabPR+UwgZAGA1UdIwSBiDCBhYAU
+Kw+Zo0vp1a4Akzp4aMvNIabPR+WhaaRnMGUxCzAJBgNVBAYTAkFVMQwwCgYDVQQK
+DANHT1YxDTALBgNVBAsMBERGQVQxDDAKBgNVBAsMA1BUQjErMCkGA1UEAwwiUGFz
+c3BvcnQgQ291bnRyeSBTaWduaW5nIEF1dGhvcml0eYICMAAwDQYJKoZIhvcNAQEL
+BQADggIBAAx08OCxP9QuABV17oCnPz77Hg3/a8w+Z63UOzuM8pm0pvvZsJ49Y1XD
++8Jkt6J1BfKfQzHFoX2ySsqPYt5vWITCIHhijzCA1nopCV0T7Gpp58ZHamsmsf90
+S4v6drlpHu0h/QvD1mUWXuCqXtGifQwhPOPUTaGHU6axUa176cUa0bj8xeWAyl5i
+AeD1LrvIiEu+yorWonS0eZhxPX7exnU2zuXRKmpPJ3qH07Q4fHGm5oNI8esw/hYP
+6S9I40PiVYaoyaeAFNq/TJ04r/27BqRlQUADuz0ZLcHEgsVFkEr2G8jPtOJ/UoQD
+Jbfy1OL/wBlEx5s5jAmNREdgo/VhqBTSH0Mt+TdroSsU/qSwFSYgTEOSBavMeqs4
+CqpgCxh7UyEsa9T+HQ+1C8oszRlV4Iz5K3q+U5rYZNKwWJ1GpI1BJ170CnUots8+
+R5Sm2LCFxdvV9/DQObstUVdb4NEU5gtg8Xca9ZN/ZCwidEVhobooMk9he1OWtl+z
+nPSeUy/6iNcqdNJ/O57byioxA7wigiC1jgc1cnO5h7pM8+VdJ4tTXUZZeE0kvZ7t
+bmpawKflvgqnlmfzMeDRYCO4xwPv09RNJPeIHIkgr07oEa5FOgBqOvOtfnrMsFcP
+dXF4R3XFHLoGAbwPDuIDKfttAwG+XPLtmX5hiZ8gUHHrv0MtL343
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIHUjCCBQagAwIBAgIIBU9VRtdAbrwwQQYJKoZIhvcNAQEKMDSgDzANBglghkgB
+ZQMEAgEFAKEcMBoGCSqGSIb3DQEBCDANBglghkgBZQMEAgEFAKIDAgEgMIGEMTUw
+MwYDVQQDEyxHcmFuZC1EdWNoeSBvZiBMdXhlbWJvdXJnIENvdW50cnkgU2lnbmlu
+ZyBDQTE+MDwGA1UEChM1R3JhbmQtRHVjaHkgb2YgTHV4ZW1ib3VyZyBNaW5pc3Ry
+eSBvZiBGb3JlaWduIEFmZmFpcnMxCzAJBgNVBAYTAkxVMB4XDTE0MDMxMjEwNDcz
+MVoXDTIyMDYwMzEwNDczMVowgYQxNTAzBgNVBAMTLEdyYW5kLUR1Y2h5IG9mIEx1
+eGVtYm91cmcgQ291bnRyeSBTaWduaW5nIENBMT4wPAYDVQQKEzVHcmFuZC1EdWNo
+eSBvZiBMdXhlbWJvdXJnIE1pbmlzdHJ5IG9mIEZvcmVpZ24gQWZmYWlyczELMAkG
+A1UEBhMCTFUwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDN2bxAe2Y5
+D9GLcHMs/UlHDbKiw+x0oJ/QefRazv4Vh9jx80o8CG7GDo16ARGw4RP3KRzjKm9m
+2ug4sLDHrQXqLxR+LjKJJnwvJJZbbG53PKaE07bLs8/zOd9iKezvig8cZDJ5CSka
+Zg4oxW0N6V6KYMvL0MovjCjCIwcBugaa46ad9HjUKdtnyu5WnduTEdru0rm3omHm
+X5mUdN/JaRWnbhHbnW0VlEvVB/aN0Wx8mbAFkMXzqrZVUTn3o+urjx9NticdsTuQ
+6f9EVq7OVxb1Erzmnw4HChfDx2bmSIknVAzJQSfaLVOOaxXD7+8g+DBLgqleXMrn
+OTnKQ8zutprFWE2sT8muMJ00WIUIKXhCGyN4UyZmxNVmU9PIVPiJ2z0UDSmxVIL7
+ENzi0eyaGJvQT01U8l5IzDIDXqwZd97tgQ4lq/LjpXOq3dePXHkKM17dr5dvj3K2
+kXEaWimNXAFoEitDAkJTtnS7Xu5xiBiG3e8sQy/Zi4owSgZWhj4pjIAtl4WuCW33
+2+f78QhQNBVSGZaS/Kgt4lHsc2IuuP+akZlbV1RltZVOL3LW6lTZ4oKYGT2p9ExQ
+qJwgHl2C1Ga31KUXbA3Pl0j54X3cv9A4720z9fVeAwLtyFCq7BfPC3hZw/4asBCy
+HNJ+kED0k8PW9oGE1Yy0dfw4rc2nLdBB2wIDAQABo4IBXDCCAVgwQQYIKwYBBQUH
+AQEENTAzMDEGCCsGAQUFBzAChiVodHRwOi8vY2EuR0RMZVJQLmx1eHRydXN0Lmx1
+L0NTQ0EuY3J0MB0GA1UdDgQWBBRv0Yag4M+Zgll2Vp03LOgnqH+n4TASBgNVHRMB
+Af8ECDAGAQH/AgEAMB8GA1UdIwQYMBaAFG/RhqDgz5mCWXZWnTcs6Ceof6fhMHYG
+A1UdIARvMG0wawYEVR0gADBjMBUGCCsGAQUFBwICMAkMB0lkLXF0LTEwMwYIKwYB
+BQUHAgEWJ2h0dHA6Ly9yZXBvc2l0b3J5LkdETGVSUC5sdXh0cnVzdC5sdS9DUDAV
+BggrBgEFBQcCAjAJDAdJZC1xdC0yMDcGA1UdHwQwMC4wLKAqoCiGJmh0dHA6Ly9j
+cmwuR0RMZVJQLmx1eHRydXN0Lmx1L0NTQ0EuY3JsMA4GA1UdDwEB/wQEAwIBBjBB
+BgkqhkiG9w0BAQowNKAPMA0GCWCGSAFlAwQCAQUAoRwwGgYJKoZIhvcNAQEIMA0G
+CWCGSAFlAwQCAQUAogMCASADggIBAEsOtQ1UQEkDLYHnwBBdtkM6Eq+pXcYIaswm
+FPYs0g9MTTSbjh74vPEzeW7+Bgc8QpyMffyz87PxK2aV1E+MmiNqSQg5no60Azq5
+mCNMdSpJ6prj+EkxzuLJQtjC+O3HodqUDieZjuU134vaYxnDjxIMOt2YDLtTv4iy
+zi/xWzq7G3imblsU4TanYuzghAeDMr1VQUc5Mn9r33mx6aakmv8sB8VFir+79LfA
+pZIORvBLGkr6ymnzCM/nyzLB5R/9otq+GUYs7nAHpqkb8ANaOTi51SK65lj/UfC3
+LrBkaq+cdzzvgZOodVwtEKhqnlKZevJ7Z8PLHV0cQguT1dzWV5Rq4NsiRoFeiRSJ
+LbIJvttH6HlCMTfunmUFdaXSsGPbnebmdVIwkOea+S9QYs9wZb2j1+mULv6LdoVg
+a89IeTwx0hFWUJOzQynNHvFSOTKlFR3MANuF5nruTv/FstSax3sLO3TbVP4+HhOs
+DIDSZk6EF/Wivs+L6KIMUpwMWqI2CV+o9G58PP+SK0xeF11hlI3lG4NdfiUXdC10
+f8husKOEbxX/44KfSdZGKMv+cfiGXvCnNyBxr7sENbD7M2vALy+rx8bh8+4TKKuZ
+U7lZLQh3YqVv/Ko4dGvHLES4SPL3tLggigIM5moa1+HYRfOKbd7S88Nvze3CW4k4
+G0BLUzUY
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIHWDCCBRCgAwIBAgIBXzA9BgkqhkiG9w0BAQowMKANMAsGCWCGSAFlAwQCAaEa
+MBgGCSqGSIb3DQEBCDALBglghkgBZQMEAgGiAwIBIDCBhzELMAkGA1UEBhMCQ04x
+EjAQBgNVBAoMCU1hY2FvIFNBUjEnMCUGA1UECwweSWRlbnRpZmljYXRpb24gU2Vy
+dmljZXMgQnVyZWF1MTswOQYDVQQDDDJDaGluYSBQYXNzcG9ydCBDb3VudHJ5IFNp
+Z25pbmcgQ2VydGlmaWNhdGUgKE1hY2FvKTAeFw0xODAxMTAxNjAwMDFaFw0zODAx
+MTAxNjAwMDFaMIGHMQswCQYDVQQGEwJDTjESMBAGA1UECgwJTWFjYW8gU0FSMScw
+JQYDVQQLDB5JZGVudGlmaWNhdGlvbiBTZXJ2aWNlcyBCdXJlYXUxOzA5BgNVBAMM
+MkNoaW5hIFBhc3Nwb3J0IENvdW50cnkgU2lnbmluZyBDZXJ0aWZpY2F0ZSAoTWFj
+YW8pMIICIDANBgkqhkiG9w0BAQEFAAOCAg0AMIICCAKCAgEAwBBn1ERWiEe8DBUv
+eKRJWwVnwTqPysl3QwclxMtTpFLzlukRUA37lm2Q0brpM4ifpa/vdTMeuZ90Jo98
+qLD6DtjqR2G6Um3SkfitSzlVRDS35ose0gI2l+nH312wfGnZCvr1hEg1mArr5tlk
+7fO5L5g8Ri+8JFi2yHj9/ajLfjtwy7oFHwt+AqVaelKW3Q7j+oPuW4EsAFQJazas
+9hCX8eFGqxsp9SX0Dt61HfXLV5XV7zBKagkxEHlCeNG5tED+FEz1An0e/BKc3M6Z
+swC/FqZLExlzEMPROFV7z/CpUgjCnYBJAW26YPbnWHJJTBXx8pFyiyqlGpZ5ys+t
+EyTsf5hgS/ivOYVKwH4oij7tzCddmgXKD88LawBIT0odjiUymEfKmYLBxCc3Y4tY
+iEz3QtZ8xCvkrptKJZq+wDL1nWOJpDrzN7HHMaoFp/uOKc0SnBmjOiPiFg9FMUFB
+p4z1zxsK4U2QTJw+63fcCNdiJjj/W/Nm5+Zspa7rNeFh1qnkl3lAvCIv97vMUKle
+0EbhARhrojupJSVILKItbQ2+S9qtZP+eGSn4m38RSMesL9s7POFXQ+6m0iSRcFOv
+5jmTK/PzzxdfCTXDMTIrM51p3R/HsD7TqzuHMyJ88f8UqEju17ycIT7FNLWaECn3
+TDk6fmv8WTC1Oc+Y0DVcomtYpF0CAQOjggFtMIIBaTAdBgNVHQ4EFgQUeO9EcTNU
+WeaYrZSxdbknvkdJ8D0wDgYDVR0PAQH/BAQDAgEGMCsGA1UdEAQkMCKADzIwMTgw
+MTEwMTYwMDAxWoEPMjAyMzAxMTAxNjAwMDFaMD8GA1UdEQQ4MDaBFGVwYXNzcG9y
+dEBkc2kuZ292Lm1vpB4wHDEMMAoGA1UEBwwDQ0hOMQwwCgYDVQQIDANNQUMwPwYD
+VR0SBDgwNoEUZXBhc3Nwb3J0QGRzaS5nb3YubW+kHjAcMQwwCgYDVQQHDANDSE4x
+DDAKBgNVBAgMA01BQzASBgNVHRMBAf8ECDAGAQH/AgEAMHUGA1UdHwRuMGwwNKAy
+oDCGLmh0dHBzOi8vcGtkZG93bmxvYWQxLmljYW8uaW50L0NSTHMvQ0hOX01BQy5j
+cmwwNKAyoDCGLmh0dHBzOi8vcGtkZG93bmxvYWQyLmljYW8uaW50L0NSTHMvQ0hO
+X01BQy5jcmwwPQYJKoZIhvcNAQEKMDCgDTALBglghkgBZQMEAgGhGjAYBgkqhkiG
+9w0BAQgwCwYJYIZIAWUDBAIBogMCASADggIBALr2PRzLxJA8lvq+yIa2YJp02qHZ
+zq2wLiR0/K387k1Rq06W3ONU214+3LyQOIIOTHclXnVF1U0uMsVM+L8DnQFfobBB
+D488xDXvtiqrYe0NXLFszi0RbQnRsB/Q3YhUQTqQCYuu01ZLk9SyuTUoB4hYitLQ
+5Ls/v/oZe/khhZN9b8r+kxrlUE+fjupZRCORBrbDN08sCtl0pD/ZCfJEBK02bqkn
+ImyfjgBzPUkVyFlHgztFBb4IXIIm83m85d2NlekZikzfP5E9bK65prE3DbRuPGS2
+3KxfYzquzie+y5SzvdPV3Nr//Bi9Gx8opsZ36ZIPb3YVxrvXXzNDrdut1qlLtIPS
+xQWNHdJDquGVRc9AcKHDN80P8NMgPYi4UuOhdfTbNYofY/nyq29W4DK4Aj3SdpS0
+GAwXtJaRHKK6ipU3iFoeQpxuMUG89ggjmPNraIUPjXd/Pp84AZuTNyh+qWSXitR0
+qIro/+hE+GF+pXqYEywXkutnRzWRuxXijbKIXMJt82654bHKgwAzhJ5WOMbGFhUN
+MxaM4kzkLYVAUxyDk0OabqwkVshRccegerucTiAc3Yblg8Rnmm9SteO6iXNy/Ei2
+xLhCethFq5Xkzbd8CRWqfhryDlOWLv2qhua9S2XJwpUKIbvoPu+krj0oDLj7tlLk
+HNyOWau2O9AHDhm8
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIHWDCCBUCgAwIBAgIIPPPJQSf9nlwwDQYJKoZIhvcNAQELBQAwgaExCzAJBgNV
+BAYTAkNOMRswGQYDVQQKExJDaGluZXNlIEdvdmVybm1lbnQxJDAiBgNVBAsTG01p
+bmlzdHJ5IG9mIEZvcmVpZ24gQWZmYWlyczEaMBgGA1UECxMRQ2hpbmEgUGFzc3Bv
+cnQgQ0ExMzAxBgNVBAMTKkNoaW5hIFBhc3Nwb3J0IENvdW50cnkgU2lnbmluZyBD
+ZXJ0aWZpY2F0ZTAeFw0xODA3MDcwNDE2MThaFw0zMjA3MDMwNDE2MThaMIGhMQsw
+CQYDVQQGEwJDTjEbMBkGA1UEChMSQ2hpbmVzZSBHb3Zlcm5tZW50MSQwIgYDVQQL
+ExtNaW5pc3RyeSBvZiBGb3JlaWduIEFmZmFpcnMxGjAYBgNVBAsTEUNoaW5hIFBh
+c3Nwb3J0IENBMTMwMQYDVQQDEypDaGluYSBQYXNzcG9ydCBDb3VudHJ5IFNpZ25p
+bmcgQ2VydGlmaWNhdGUwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCB
+O1x7psTI+pWRkjk167FDL3aM67OiCGxrr9xXWpT4RciyKK1mczSxv3QovcHSKVga
+MM0s1K1tdMKnNu166+T0hQuCLUcfHpZWzeEsewU+rzJZovzu4sNi26hg23MUfoRs
+txIBizq2mHvo1uowjMfQ79XyB30CaZ5BOMbY2qJnRS9eWXvxxBOc/eC03HbOnSdd
+P8zRGG/dx8HzR24A3w4dyEqKjR8iKJ2drp5aYNwv/qZAYVyntD7rz/qq/gwYMzbN
+XEODCPJIoTzMRz1oUS4OlS5G5tdldkge9fvHvrUdRLh8Z/CsQ0xTblrhQH91nvTO
+0YBIRrOUR7kWn+oUtmCxKXCoR+0i6m6ClLAQ/jduzNCcaB9uV9objJPJrxZp1aI0
+dtmqhs3oZKDHnu3ARv3Qeydx4kgVkp1QjF0N8ZGLz+E0YtBU6020u0aiLR73KYCk
+A0X2v9Gc/LIdecH9wnZq17OBAVu+ek9c+MAvWVHOJA2BywnXAvGqVdkePb2YnFr1
+Nf6w67iSDfZUW3Xjlitmr/UZrazk9m9uXOKoP0Wsa4HoX9cIn6nCsfcAX4oYsiQ8
+8+bE41y53/SboBLo6M8mdrtOrf6n7hL1qC4ai/yLo2wnp3rdeRRlaeDJTIvdyxP2
+hkgkfn0m4qSq4ZlKxRFQxpihyL4E+Uxd1J9j8FMJJQIDAQABo4IBkDCCAYwwHwYD
+VR0jBBgwFoAUpYdSik1CxAM0yCf0kab0qmhi9+cwHQYDVR0OBBYEFKWHUopNQsQD
+NMgn9JGm9KpoYvfnMA4GA1UdDwEB/wQEAwIBBjArBgNVHRAEJDAigA8yMDE4MDcw
+NzEyMTYxOFqBDzIwMjEwNzA2MTIxNjE4WjBABgNVHREEOTA3gRVsc3NzZXJ2aWNl
+QG1mYS5nb3YuY26kHjAcMQwwCgYDVQQHEwNDSE4xDDAKBgNVBAgTA0NITjBABgNV
+HRIEOTA3gRVsc3NzZXJ2aWNlQG1mYS5nb3YuY26kHjAcMQwwCgYDVQQHEwNDSE4x
+DDAKBgNVBAgTA0NITjASBgNVHRMBAf8ECDAGAQH/AgEAMHUGA1UdHwRuMGwwNKAy
+oDCGLmh0dHBzOi8vcGtkZG93bmxvYWQxLmljYW8uaW50L0NSTHMvQ0hOX0NITi5j
+cmwwNKAyoDCGLmh0dHBzOi8vcGtkZG93bmxvYWQyLmljYW8uaW50L0NSTHMvQ0hO
+X0NITi5jcmwwDQYJKoZIhvcNAQELBQADggIBADIRjzj5+hFnq6o0Lyfkap/2br66
+0QXCYEsvcFXLap92f6AQbrQEK46D4DRWCHIO15gk8qeVK1MwSSQUTbheZZSUZrm1
+oRb18N4zU9PQbF9h0VqZ1KAR/Gvgz6SVaNcAGb1qnCuF8agrD5hX+K4yBs26fCwP
+FKvamQGWtQV2Cf9qeo6DHCgxO7F1LputEcsG27oDy1RNWNIpOLz4Mp7rgdCBFfOs
+Gv1KxzcZ+kFHFm68H3rf0Qjt9PSE/3Xc3ZVrpbNRIhjoo42qI+TP3gI3DUWbFLqe
+mffLeCPcTvYY7ARwCqO/zTiPaaE0AEY3rbj6RKHHhOh2ytE67hJYXRdVicNPAd0X
+u7SjzGZ4IzhPKEFqVJRPA/Wc3O2nyxtDIDzt6OEVnl9mUgb3Rui8cw/Xd42E/0SN
+qPd5nXxL8w5YVaIhbj39pCDhyPwRdtv357JABIdMFN6CHyRpbJ59oT0grKla/fbZ
+OrLEOcqzT64evvTlEbvkBUXXBVgILTW9U87E0h5bcqkOZuIBzKAKx1GjOccXMmzG
+o5tOIVKNxL4aatfXZCgqS9te4uzJmBg9AjPQnjHqWdio6qQhIcGd73L+n5JCfIm0
+6ijCZCh314MlIkpjKwtDpDerH0BEaRywV0sOoBKWR98lQtzengSxA7KXjWPvh6sG
+gDkjybOAldtafn8u
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIHWjCCBUKgAwIBAgIKQ05DU0NBAAAABzANBgkqhkiG9w0BAQsFADCBoTELMAkG
+A1UEBhMCQ04xGzAZBgNVBAoMEkNoaW5lc2UgR292ZXJubWVudDEkMCIGA1UECwwb
+TWluaXN0cnkgb2YgRm9yZWlnbiBBZmZhaXJzMRowGAYDVQQLDBFDaGluYSBQYXNz
+cG9ydCBDQTEzMDEGA1UEAwwqQ2hpbmEgUGFzc3BvcnQgQ291bnRyeSBTaWduaW5n
+IENlcnRpZmljYXRlMB4XDTE4MDIwOTAzNTQ0NFoXDTMxMDYwOTAzNTQ0NFowgaEx
+CzAJBgNVBAYTAkNOMRswGQYDVQQKDBJDaGluZXNlIEdvdmVybm1lbnQxJDAiBgNV
+BAsMG01pbmlzdHJ5IG9mIEZvcmVpZ24gQWZmYWlyczEaMBgGA1UECwwRQ2hpbmEg
+UGFzc3BvcnQgQ0ExMzAxBgNVBAMMKkNoaW5hIFBhc3Nwb3J0IENvdW50cnkgU2ln
+bmluZyBDZXJ0aWZpY2F0ZTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
+AKpWShb7G/iqU2TqRr+ZeTYboFz4p5w+Mskp4SmHsYXlyrimej+QVOYq1JH+pns2
+tN9qaDORfbT5tQ4qTejk+K6lxGWYaX0IIXS4rzRs8PlwfikwSv9PZPq5LfrztW2e
+WLKDjY9yrOWnsGl+nxKU1phpvWM5QgPf1odNbH9CJZLwP5Nyy81wp1q2oZp+G6CJ
+0cPkRstZXojLBSmklusrnMEylvXd4xwg3eXZOhMukFw0OmVK2Nh5K0jfAnrnzwd7
+iXe/G0ilgaun6aKkxR9TXqoZD+09DsUZPrmJa4eAOnERZNFTjGljGUrKZDAAaqC0
+xp8C1AZEGYKQ3kw6logPBB5cu9xlJ8IByTZ/YQpmTIFtkYuerTiaU2KoKKzRTRJN
+vA3YOobiPa5quy5czh0mTiLtL1Z7+QV22Lr0o5rXAtmQaiEPkdppd09mTrDJ5R7E
+jOF1FrVAPehs40D44Aootb1aXqYU0g+HO0vCVFwj+PZotwoeY9DNU6LO5N6s5Qcx
+eFrgSHMTlkNsoFnf5xf4pqUvDAhM+/RLgLA0EpcEWHKU3tXvxhL8+I4Xd4q1Waos
+NSYSfTH6vtiJwIrd6g9ixifP7bClUQkeMBOyBHHLEnogVZig2596OznkxZDyCgSF
+Ptfu1kmGPSAN8wqAc1rVdE1aQyUwqrreWEeIiuQ+e6uPAgMBAAGjggGQMIIBjDAf
+BgNVHSMEGDAWgBTxe0/7J26eDqCqj3VZtBTBmvE2KTAdBgNVHQ4EFgQU8XtP+ydu
+ng6gqo91WbQUwZrxNikwDgYDVR0PAQH/BAQDAgEGMCsGA1UdEAQkMCKADzIwMTgw
+MjA5MDM1NDQ0WoEPMjAyMTAyMDkwMzU0NDRaMEAGA1UdEQQ5MDeBFWxzc3NlcnZp
+Y2VAbWZhLmdvdi5jbqQeMBwxDDAKBgNVBAcMA0NITjEMMAoGA1UECAwDQ0hOMEAG
+A1UdEgQ5MDeBFWxzc3NlcnZpY2VAbWZhLmdvdi5jbqQeMBwxDDAKBgNVBAcMA0NI
+TjEMMAoGA1UECAwDQ0hOMBIGA1UdEwEB/wQIMAYBAf8CAQAwdQYDVR0fBG4wbDA0
+oDKgMIYuaHR0cHM6Ly9wa2Rkb3dubG9hZDEuaWNhby5pbnQvQ1JMcy9DSE5fQ0hO
+LmNybDA0oDKgMIYuaHR0cHM6Ly9wa2Rkb3dubG9hZDIuaWNhby5pbnQvQ1JMcy9D
+SE5fQ0hOLmNybDANBgkqhkiG9w0BAQsFAAOCAgEAboJXitFigp+pR+Hvy1HkfQR/
+/7JsFQPic3sy8+19CoRpgc8CocSRvbbQLx+Su9O/sOlwbdsFx1iAAzSe/hdy9Frh
+DjCtPoR1furDcQYNhvi8h0VS9chupQSVF2FU7R+82Z0oTx8yegQl3IQdRYtfi4Xm
+NDndrApBN+myx8ie/cdS2avkaA13bcY/x+NMBFKFLTISk8LMbtQuE7jATEqxcoaV
+sSVwgVDE9GYDejFXi/51xGmizYcjl4cOUuNZ8GzI3u3yRoCNA1AO5PIBTTz9vB/9
+hiDRjlWk7Ywg++cJh5tXQw2DAQfZ8NT2S8urAGuosy4L8u4Qw9rbqqm8zJ5xsk8s
+oRTNszn51j4uvCQZXxEmPUaC+NXgYmmS189YDEUpH7EPXAnNrbFkW1bPrS1boaps
+d87cSUEeogaiznbDVEVdQBdX4Ppy7S0FfNr8xbwrPYQUNdPFCaRM8wMvAAMvHetF
+yjKuGIr4e+1G6SGDlKRvn4FhhumpN1UQcxLQrGhsJ8iUcTqivDJ52bkFh1cF0VHm
+UO7TKlHrbbPxBTjaExqhSre1MEPon9DmPfqgv62zLuGYLUqFyU0PS+RxLeJhoSQA
+xFLZ+Sq71oUasVh2a369JlWtcvU5+eKohiGIZJUs2r6sm9heOpUq/szNKX88LaeC
+ZhJ3XBarvE0EOYQnvgQ=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIHWjCCBUKgAwIBAgIKQ05DU0NBAAAACTANBgkqhkiG9w0BAQsFADCBoTELMAkG
+A1UEBhMCQ04xGzAZBgNVBAoMEkNoaW5lc2UgR292ZXJubWVudDEkMCIGA1UECwwb
+TWluaXN0cnkgb2YgRm9yZWlnbiBBZmZhaXJzMRowGAYDVQQLDBFDaGluYSBQYXNz
+cG9ydCBDQTEzMDEGA1UEAwwqQ2hpbmEgUGFzc3BvcnQgQ291bnRyeSBTaWduaW5n
+IENlcnRpZmljYXRlMB4XDTIxMDIwNTAxMzcxOFoXDTM0MDYwNTAxMzcxOFowgaEx
+CzAJBgNVBAYTAkNOMRswGQYDVQQKDBJDaGluZXNlIEdvdmVybm1lbnQxJDAiBgNV
+BAsMG01pbmlzdHJ5IG9mIEZvcmVpZ24gQWZmYWlyczEaMBgGA1UECwwRQ2hpbmEg
+UGFzc3BvcnQgQ0ExMzAxBgNVBAMMKkNoaW5hIFBhc3Nwb3J0IENvdW50cnkgU2ln
+bmluZyBDZXJ0aWZpY2F0ZTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
+ANYcKdULxZXg12IfadlvVcUiHNz3uHeWuDkn9g/itas0cKou1WNpgPp+z6jSDU3J
+2DZfKCv7dRvSYk06EAufEhcmAjGM7iS0/pDmtCNqR3R+IugRCkpa/ILwG3SwDv5Q
+sjbIDLUw9bCZgJsn2QJNTnxzD+WL9S2f07nLoFvyjVluBQ3dMP61qmTHpals9nJr
+Xqt37qnWrDrB330dZHv65vFgJpVFYQjv6XcflTXPD17BMA8Zrn7TPk+GpkY7K/iI
+CGQU/OUHsNOB58aBmVtWbVpSDaxMdq4YWLzh7q+DKnwOaHW20q1aY57zMyJic0Jb
+wvEFZb4gLYCNiuf7Xh9ribvLCh5C4mFx7LfRN+2L/6sR7CNm8kFWHAUGecvZx5qj
+eCeFA5diR/A7kT1lzzkkHms+5z+Vb99fGx6KTryQ0syflIM3BCWsnPmfBgPEiOyA
+l/+xQd8hlYZEB5gF5Z8I+mJb4f2nBTM6PL4sL3kzYp299NDQqh5tNkykVpp5JtAw
+l0237/UNsCNLvP3/VJRcx/XjHiMx39NqjTvorjj3Yxj39Pz/KnxK5hniios9vjad
+o9M9Yuxhd/LH18/qKljtv5YGk+h3S6vIK9d/1M3CCM9u8gq7aTlnuVSxW/UTv43M
+wGQXycBoIktKweIePy/qILPuA63hJvDPxHLB+k+7tGVTAgMBAAGjggGQMIIBjDAf
+BgNVHSMEGDAWgBTFq4bYQNF3/4sYEyA6IBFwxdxshTAdBgNVHQ4EFgQUxauG2EDR
+d/+LGBMgOiARcMXcbIUwDgYDVR0PAQH/BAQDAgEGMCsGA1UdEAQkMCKADzIwMjEw
+MjA1MDEzNzE4WoEPMjAyNDAyMDUwMTM3MThaMEAGA1UdEQQ5MDeBFWxzc3NlcnZp
+Y2VAbWZhLmdvdi5jbqQeMBwxDDAKBgNVBAcMA0NITjEMMAoGA1UECAwDQ0hOMEAG
+A1UdEgQ5MDeBFWxzc3NlcnZpY2VAbWZhLmdvdi5jbqQeMBwxDDAKBgNVBAcMA0NI
+TjEMMAoGA1UECAwDQ0hOMBIGA1UdEwEB/wQIMAYBAf8CAQAwdQYDVR0fBG4wbDA0
+oDKgMIYuaHR0cHM6Ly9wa2Rkb3dubG9hZDEuaWNhby5pbnQvQ1JMcy9DSE5fQ0hO
+LmNybDA0oDKgMIYuaHR0cHM6Ly9wa2Rkb3dubG9hZDIuaWNhby5pbnQvQ1JMcy9D
+SE5fQ0hOLmNybDANBgkqhkiG9w0BAQsFAAOCAgEAg8Uh14s82vewOYPolk/akVKD
+yuYpLvt23C8/hO3pj3Hggr0qO3zMEk9jRGmm7RsrLWI/ZpMa872GmF/Ybii1nlUW
+0GaqjMqjvkxDGoXenwYGWkoxpD1B056f1aMbCbn2bqGqZp+lXlfQf2+4szXoCUaO
+68zHOQvLTLksPin/tW155dZlym6Uqi9KFfQGnhiMqJ2dIprmXBAH+009idCiDw1e
+Q3pYSLww76mVqkjpzkXJRYEFN0hVeX/B0khPEKsoLWCrSVgkmffRJXm7hV3E9lq9
+NW9eOS2mhxrMXt2XZurtu/7O9tyNcM2Xz9wjCXCf6Yv3ohi2vxpVFDrDpn6CEgsr
+2HM+FwIYl2Ri1UtTMfiDEEoUnW8NZbD9ibthpwfB1hNATf0anmF3ClkESTj4ojiA
+rKJ9SyLOrz7U8d3+0LnR1WrUL942LEm3COIjWV3oS36L0oUwxdq+ltVmQixVuhit
+RVOdktzBzkJDTaReDuLcwv/fiWGe94kkjDKdGFpB9BOuHhkpyeMdODmqbal4kf/4
+xbDHN35PY+OQcq4NM6xirvwNFQM7l1YN7wPkBQ27qfgcRdjuT203cSeeKIZj2q1V
+48mjbbwExD7KcsKdyAeWxPtXbz4w/LySUcaR7V7AA8yfQWBnAy6MLWeaCRvHwNCe
+mJtBo3iV8+f5Y6p9jR4=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIHXDCCBRCgAwIBAgIEWOyg8TBBBgkqhkiG9w0BAQowNKAPMA0GCWCGSAFlAwQC
+AQUAoRwwGgYJKoZIhvcNAQEIMA0GCWCGSAFlAwQCAQUAogMCASAwYDELMAkGA1UE
+BhMCU0cxITAfBgNVBAoMGE1pbmlzdHJ5IG9mIEhvbWUgQWZmYWlyczEMMAoGA1UE
+CwwDSUNBMSAwHgYDVQQDDBdTaW5nYXBvcmUgUGFzc3BvcnQgQ0EgNDAeFw0xNzA0
+MTEwODU1MTZaFw0zMjA0MTEwOTI1MTZaMGAxCzAJBgNVBAYTAlNHMSEwHwYDVQQK
+DBhNaW5pc3RyeSBvZiBIb21lIEFmZmFpcnMxDDAKBgNVBAsMA0lDQTEgMB4GA1UE
+AwwXU2luZ2Fwb3JlIFBhc3Nwb3J0IENBIDQwggIiMA0GCSqGSIb3DQEBAQUAA4IC
+DwAwggIKAoICAQCSDMBiMZ94LMTQnOJW82noZ/l9xGJd4ToKgHlgeA9s5KDQa5YI
+Ac8klGAbxWyUwJS/deArBW1Y417quTG3yQDor+ME7GhrQDkFgTqcENuk5zByq27w
+rTvDO4yjhN4U1qT96tu30ukwcChUasbhMKZejANXP1PZcYHORxbjSGI8wQMcbzP5
+g6CnUOZ1BmVC5+N3y3ffUiQANkfiWSw5EFNSKvXbpFYXp0DYT3Ky0QO0FmbGm8Nl
+xBcxbRyEkSxsWBo8B7RPPH3H7IHOy3jvBRPzmB6udqRo/rvw0SwYxiHQPOJBCvuF
+QTeGtAX9Tig8EDAD25dLHZR7Xpz7UddFZOdSEUi1b6p5oJ0O66ivxPxX/5yjwjnl
+Qs27hI+eLKYUz0MvxTmhGQuZ6J/6CaL3PBSiKmUfhHENTdNmR7ZkmMeeEF9gsvea
+/2pNRANrK38olWqK1g5iEmt6g6KOQJLo7zUvH+63rtfFdAWhUMy5LNSwKY0AA2KJ
+en4MW6Fmz7y0F2p+uKODOv81Y1cAwb2RFP05vC+BrdfT7+5/JdToP+4s8LhKPnq3
+01W5aXTsAcYWX/oQFu3QY2AUphGfkxXc8DGbzMXjsbg8O7jkN/skGqe790+CggCf
+vYF5rAKR53DNJ8NWjEoK+eLe483UXuFmWFuZTL6Zsojw5yBpjIlGFaIYowIDAQAB
+o4IBtDCCAbAwDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYBAf8CAQAwGwYD
+VR0RBBQwEqQQMA4xDDAKBgNVBAcMA1NHUDAbBgNVHRIEFDASpBAwDjEMMAoGA1UE
+BwwDU0dQMIHiBgNVHR8EgdowgdcwXKBaoFiGKmh0dHBzOi8vcGtkZG93bmxvYWQx
+LmljYW8uaW50L0NSTHMvU0dQLmNybIYqaHR0cHM6Ly9wa2Rkb3dubG9hZDIuaWNh
+by5pbnQvQ1JMcy9TR1AuY3JsMHegdaBzpHEwbzELMAkGA1UEBhMCU0cxITAfBgNV
+BAoMGE1pbmlzdHJ5IG9mIEhvbWUgQWZmYWlyczEMMAoGA1UECwwDSUNBMSAwHgYD
+VQQDDBdTaW5nYXBvcmUgUGFzc3BvcnQgQ0EgNDENMAsGA1UEAwwEQ1JMMTArBgNV
+HRAEJDAigA8yMDE3MDQxMTA4NTUxNlqBDzIwMjIxMDI5MTQyNTE2WjAfBgNVHSME
+GDAWgBQ6TY3o/iQHpwK7n3oyAxMJii1KjTAdBgNVHQ4EFgQUOk2N6P4kB6cCu596
+MgMTCYotSo0wQQYJKoZIhvcNAQEKMDSgDzANBglghkgBZQMEAgEFAKEcMBoGCSqG
+SIb3DQEBCDANBglghkgBZQMEAgEFAKIDAgEgA4ICAQAyAEoU1WM41V6CxshEFXrK
++rMaOXMbep7rcjwfSDyzKCBzZCurVgT8U7KuuF3L0E+7Ao9S0pwxbYQ+31f9qI0A
+JU6X2eBVQVIz95RImqmohox2lmTD1PfGylNxXxxBVPsuchx1Dwa/NtRk+hV9BzBa
+f0fZhsfrcRlGaHNpcTd+qDQWiAImfMezOxdYMKwBYQL4psOrwbRDSez5CzizOf9H
+1liUYt+b07K11LqOFvJfowbkNgWUcLvJeqUvx/F+9d/9Y3floTytRde3lFnLAPWk
+Wc1t0wqAIr+rAd1J2ztN2W16jBRNsuc6ttx7MkFvWQMAUzgl3X0yHdvNCG+P6v9k
+ps14qOMulLL6U7RNbTBaN5jOtfSbZQ2vJK2t2zydxobv2rkjayBihW8Kv0rMV31/
+OlvuwpCZwmbYavXTJnGG6hTF1IZTLvUIFEUrw0iTCwo5bHHx0vHXGOvIlIp9kVRK
+ilu5pGF6Nd4oaN3ujO7xjUd8/2KLYPH0ZrHP+r+7z2zrO1kPDTBqSjgolc5m3pNp
+VigX7aqgDG4Xw1agOPL4LsIoo0pD+2uuVC/u1tKUoLIdCAHL2yVBZXLxpYMszbU4
+/3LuySqwnw84Fj3ZvA96/V6CzXgS63H5psgvfQk9aNM8xHgF0z4y5Gld1cxIE5HY
+xmM4cnoWAf4DN0XRkGxSuw==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+xO0I3XwTfrKgZfleSd5JnQ==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+ZH4Pza5DofRpgiNxJ5Msmxk5PnE=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIHZDCCBRygAwIBAgIBATA9BgkqhkiG9w0BAQowMKANMAsGCWCGSAFlAwQCAaEa
+MBgGCSqGSIb3DQEBCDALBglghkgBZQMEAgGiAwIBIDB3MQswCQYDVQQGEwJOTzEw
+MC4GA1UECgwnTWluaXN0cnkgb2YgSnVzdGljZSBhbmQgUHVibGljIFNlY3VyaXR5
+MSQwIgYDVQQLDBtOYXRpb25hbCBQb2xpY2UgRGlyZWN0b3JhdGUxEDAOBgNVBAMM
+B0NTQ0FfTk8wHhcNMTcwNTA4MDgxNTQyWhcNMzIwODAyMDgxNTQyWjB3MQswCQYD
+VQQGEwJOTzEwMC4GA1UECgwnTWluaXN0cnkgb2YgSnVzdGljZSBhbmQgUHVibGlj
+IFNlY3VyaXR5MSQwIgYDVQQLDBtOYXRpb25hbCBQb2xpY2UgRGlyZWN0b3JhdGUx
+EDAOBgNVBAMMB0NTQ0FfTk8wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC
+AQDcBAVYq+U/NXKrwNEmrKM7FA92zAFrvW7z5WrqDX1GpiLz2vaTBmfN83nrl7Lk
+S2kUp+s3WdnDmooWiRcByx0wBqqZGGU/XWfby8rhBE+UAwQ0n+WGIBcNlAQBcEVm
+j5yBqMxHlNMuZF5KDGVnOXY7Ouz8RQ3UwenlwLc5EoNh3ozkSna5Ng9hTdGChbCe
+5P3/RjtJI1iZQMOKkvKdBgRYkduOMQu/D1y/9yHX0juu/DNZsgMHU6n/ZRMGwYb1
+sqT2+sSG2sS7qqjTuLZ6YsLeK7cq4v0EH1/uUUY3MP6fKzHJcNKvKBD1tgjkr8ZF
+O6W3vt2k/GGlJpgFCgjt2C8qOusFx1/6DizF/DUoYb4CCrpiIHPNJwlCu9q8bhiU
+VeQOpK4Xhd/dk3Br7pIIICGDFAT70W0i5hsquA9o1ZINnfheSzs6CvKUzi6JGQdx
+aoZ2Hzov5mHcPMw7TqYUwTWlum/jy4k7lzrcNZ4OfI9CsfMSABdAt1d8K4sotna3
+YZx7pnOuVIQk8LbVjpTVCx8wAVm99kWpE+B1yzk/wU4wx6RmOhx/36fKs2Om7bj7
+ohN1DUDLa5MEbGVYMClWk3+hJGo53/6yFTd2cdbcsAZg1i3jo2cYZEIwv0hd/f4m
+xIUYqii7c6CV/8QKmGSQQKqTV5Y2SiFqup/vTndnOeivLwIDAQABo4IBmTCCAZUw
+HQYDVR0OBBYEFB/DeD9tcyIdj2evUKVlAHiooUpwMCsGA1UdEAQkMCKADzIwMTcw
+NTA4MDgxNTQyWoEPMjAyMjA1MDcwODE1NDJaMA4GA1UdDwEB/wQEAwIBBjA2BgNV
+HRIELzAtpA8wDTELMAkGA1UEBwwCTk+BGnBraS5lRG9jdW1lbnRzQHBvbGl0aWV0
+Lm5vMDYGA1UdEQQvMC2kDzANMQswCQYDVQQHDAJOT4EacGtpLmVEb2N1bWVudHNA
+cG9saXRpZXQubm8wFAYDVR0gBA0wCzAJBgdghEIBJAECMB8GA1UdIwQYMBaAFB/D
+eD9tcyIdj2evUKVlAHiooUpwMG0GA1UdHwRmMGQwMKAuoCyGKmh0dHBzOi8vcGtk
+ZG93bmxvYWQxLmljYW8uaW50L0NSTHMvTk9SLmNybDAwoC6gLIYqaHR0cHM6Ly9w
+a2Rkb3dubG9hZDIuaWNhby5pbnQvQ1JMcy9OT1IuY3JsMBIGA1UdEwEB/wQIMAYB
+Af8CAQAwDQYHZ4EIAQEGAQQCBQAwPQYJKoZIhvcNAQEKMDCgDTALBglghkgBZQME
+AgGhGjAYBgkqhkiG9w0BAQgwCwYJYIZIAWUDBAIBogMCASADggIBADmzHWy2URjJ
+gGnI+la+S06pAZF05yRfzrRf8WV/Icit3t6Mztx/b98SRbVAsQ1TQhFslCrpHl06
+29ExK/3Grq5EKhyOUAMSSsOp7Um9wNcYPs1tWvMl7z1JxCcJPddYHxZ0ZEuu4V9u
+bwxQOb5PxCWEOLvTAA8QZm/EciPCUUER8BRaC5tVBszii0FCK0DRNmttk/WowhjL
+p/kROI/45DkRwUx/5ElkMDOuH9BPIqN2cSDC+fCAdy6DWaOoY5bC7UBjPu8xkyQJ
+i9/sxmkrBGQH8etG9/COpmsuG7Na8vE3nAfDJnwwRyhvSHgPrL5JD4yiRdJq13sk
+3iHvbGM+oooUKKdQldGq5LzgO7sFDv4eifJZsBSTmIVdRksnjXIRBuoW7tzzVKzO
+Lghm9iZub4u7QmR7DmDTLz35SR0HnFl0aLcEUJ6OE9DXX5nEHuxNSqwTe/FFFzeI
+SK3mB68yRzvM4pwHAyKJJMRwl7Z1bBTyZQVvy8l2C/gwD4NvscnJZy6keQV8zVaK
+V1foitwitLUPr5brigSWUOQKoD/gQl8rh52PuQc1FEgrgkHsfqCk4SWmb5cybJLl
+hpUhfmeWDkOHmxHSHmxx09/B7dL8tp6yWiE9hPUCZSFL40SV0bnsSRfueyarSIj2
+83XScstaWsayeXCuLmj47vlZCbtIvmLx
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIHeTCCBS2gAwIBAgIIDXbHZOBI1LMwQQYJKoZIhvcNAQEKMDSgDzANBglghkgB
+ZQMEAgEFAKEcMBoGCSqGSIb3DQEBCDANBglghkgBZQMEAgEFAKIDAgEgMIGQMUQw
+QgYDVQQDDDtHcmFuZC1EdWNoeSBvZiBMdXhlbWJvdXJnIENvdW50cnkgU2lnbmlu
+ZyBDQSBlSWRlbnRpdHkgY2FyZDE7MDkGA1UECgwyR3JhbmQtRHVjaHkgb2YgTHV4
+ZW1ib3VyZyBNaW5pc3RyeSBvZiB0aGUgSW50ZXJpb3IxCzAJBgNVBAYTAkxVMB4X
+DTE0MDYwMjExNDcwNFoXDTI4MDgwMjExNDcwNFowgZAxRDBCBgNVBAMMO0dyYW5k
+LUR1Y2h5IG9mIEx1eGVtYm91cmcgQ291bnRyeSBTaWduaW5nIENBIGVJZGVudGl0
+eSBjYXJkMTswOQYDVQQKDDJHcmFuZC1EdWNoeSBvZiBMdXhlbWJvdXJnIE1pbmlz
+dHJ5IG9mIHRoZSBJbnRlcmlvcjELMAkGA1UEBhMCTFUwggIiMA0GCSqGSIb3DQEB
+AQUAA4ICDwAwggIKAoICAQC1K/jnaUD61H937aGG0OFJQ4QGipUVG6+/+KGewzRA
+q2kzYqo72f8O8cwr/XWKizpSD1cRpX/J2goIAPf3gcX5N47pFx9W172AvmCQhe2K
+D1+sWLc6FCTBnzhc3V76p7PgB478KdI3qgNsLhY/iiglv9NiVOFv6rn59+pDjate
+B06broYprivKS96JEzN4K7b0htTMxaVTOEIZgrGT+YA1RYpwcseytj52Fna9hVvs
+8lmBw5YyPWBpC72B7Lb7LX0NsjbJuahARRsS6+ZADRT7RRJCZNuwUzb3TpaFPh7/
+uAOPpIFi5j+erit3IqwODA3MX4f6UcoJIkZKpfEUQhsy5ZP4jew72sCtVsu9rlWY
+1cv/3rMuI6gUJxk/A3lkAI0ccJ/IEKsOC4dCB8uP+AHrPOZaboKUFRtivua4RuxV
+yOOMQ5rnwxNiwlfh56E+HD9e5AiZMroEGqvqVdOXcwWniR+y2ceyKgmOVH1G4VHj
+n8BvNQfUE1XPtn6tFP1HznMQUjRtW6MQvrAHG4LWOLyb1xAWlIO/tIzgxelwr0o5
+SbyLW1J1lL1bBY/KMdrqnAlEGSD+NFsGP2ED97XvALnXlbdwUt/WS458RzvYwvfV
+1W4lhwFi8UJrMLi0BQfBsOvCjlTWZCKEqCc6phRV4vcV3C4xqTH7Of8Bqqh1XKRP
+2QIDAQABo4IBazCCAWcwHQYDVR0OBBYEFP3oaWKt/hPgv+upevWZQGDQwDwJMBIG
+A1UdEwEB/wQIMAYBAf8CAQAwHwYDVR0jBBgwFoAU/ehpYq3+E+C/66l69ZlAYNDA
+PAkwKwYDVR0QBCQwIoAPMjAxNDA2MDIxMTQ3MDRagQ8yMDE4MDYwMjExNDcwNFow
+PAYDVR0gBDUwMzAxBgRVHSAAMCkwJwYIKwYBBQUHAgEWG2h0dHA6Ly9yZXBvc2l0
+b3J5LmluY2VydC5sdTA+BgNVHR8ENzA1MDOgMaAvhi1odHRwOi8vcmVwb3NpdG9y
+eS5pbmNlcnQubHUvQ1NDQV9lSURfY2FyZC5jcmwwDgYDVR0PAQH/BAQDAgEGMCoG
+A1UdEQQjMCGBDmNzY2FAaW5jZXJ0Lmx1pA8wDTELMAkGA1UEBwwCTFUwKgYDVR0S
+BCMwIYEOY3NjYUBpbmNlcnQubHWkDzANMQswCQYDVQQHDAJMVTBBBgkqhkiG9w0B
+AQowNKAPMA0GCWCGSAFlAwQCAQUAoRwwGgYJKoZIhvcNAQEIMA0GCWCGSAFlAwQC
+AQUAogMCASADggIBAGYTCov2S7zC2sfWaWgAEQgRXH3hF/fGLTjT/wNau5PE1oG5
+MHPrSsbhUNpykqiuwyms3zZRGDY1zete6G5sr30/dQyHjHGm7qH4PUlRnjWq9wOq
+64dkn6tAExx+9/6QVSxQUjWIKxU5+00kOuVQvY7DKp1u3uN8BoOd+vgCnAx7SAay
+B9yEdNSYgHz5yNgwB4mcIesRCl2x8OVMYbOfitB/OYOm0saeOwnUS7GlACoIA/Vz
+/2cwzd4ZbReFXk/RmbueuyW7OLcY8UWEDfTOj8LpXshcTVNsIcdS0+Lj8IYA8LGN
+YapSUq0iy2Lgh/Ni2JXxUE0mCUAFXDn1+Rfofcw2qp82EEjVGxANvAahDgHog+dt
+qu7KpKGPBUSvEUo18/jA6dbEt3UKKaEjk7nK7gpQHL50EqoCHdKw11/gMGF/aMKc
+mbyjAyuya4APSWrjgudoFSP5zXMUhJKdTtgoyJh+eJ38zd0qihcI+jK6p15Cuj4q
+3aw7j1wl8D5J/nCdwo3M7M6Sn1JB9BLs+jmxBwMpikgGil/0pAkGqOBKC9yFQH3r
+KgQo9vc0vEF+96bEt+sfuCOWiQdgYWU6tGw8qTpQktvnmZ+lbvG8KlazR515NvoA
+PDzHA9d2DMimDRrzGU8/lBU3x2GGTvWDCaCnUlgedbn+3MUtj92tfZcrQg0N
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIHeTCCBS2gAwIBAgIIHocCvky0f0YwQQYJKoZIhvcNAQEKMDSgDzANBglghkgB
+ZQMEAgEFAKEcMBoGCSqGSIb3DQEBCDANBglghkgBZQMEAgEFAKIDAgEgMIGQMUQw
+QgYDVQQDDDtHcmFuZC1EdWNoeSBvZiBMdXhlbWJvdXJnIENvdW50cnkgU2lnbmlu
+ZyBDQSBlSWRlbnRpdHkgY2FyZDE7MDkGA1UECgwyR3JhbmQtRHVjaHkgb2YgTHV4
+ZW1ib3VyZyBNaW5pc3RyeSBvZiB0aGUgSW50ZXJpb3IxCzAJBgNVBAYTAkxVMB4X
+DTE4MDUyMjEyMjE1M1oXDTMyMDcyMjEyMjE1M1owgZAxRDBCBgNVBAMMO0dyYW5k
+LUR1Y2h5IG9mIEx1eGVtYm91cmcgQ291bnRyeSBTaWduaW5nIENBIGVJZGVudGl0
+eSBjYXJkMTswOQYDVQQKDDJHcmFuZC1EdWNoeSBvZiBMdXhlbWJvdXJnIE1pbmlz
+dHJ5IG9mIHRoZSBJbnRlcmlvcjELMAkGA1UEBhMCTFUwggIiMA0GCSqGSIb3DQEB
+AQUAA4ICDwAwggIKAoICAQDKGgGo9DifrTeUlnmhT30aolbHo0oYdEj5/zihVz81
+/3iJTiWBdKiACSG1GAJCKdUKvnWN09KdcBkrqUA65sGvWLpnbWIcfItH+QNkCeHz
+hHui/fuXBfF+y1hEpWNtQWuZ9PcLX1w3yeKOP0GFgcopGzUw3wfnnpx27EH47Ojx
+SbWGzMel6O393uJYkxlFZZUVBVINFWulalwMs2QG9BsjymsipD/sFuKvYZcSvPRl
+kDysA2kY0E+Xh8+9a/d6MR8Us7/HS7iB4cfc/XCZeuMN7aP1n8XP9P5Sxff5wOn6
+OwTiNvT3yizUaus+rGjfLYJpH6FNRKuPksB6To+iHwoEcY/PnJtH2hNotYv1N/Ba
+tRLw4j77x36rgyawnmoQsm4js4Qymae9JXQz0rSLH7saZRs219hN6mrz4x7Ib4k5
+Vtjw+IPxm+Bpl/CCEe3Dwp3H5nEyvi7/FWuN2ur7VCdG/LGFNqK/pifswGSusT5A
+AC7wW3j1KfBNtn6OkA1SxghpS1uBM71o5ZhtjE76EpPSd5LrCCpUZi3LpEI0yGmb
+X91T542a1ml1xsWm1OYs7U2I4sRDgocuUd8yOG2SwAmBhHGz6l/xfQ2zQoyl0JHc
+D2K1tA4uMfxqeJq6FU8Lgzn0rkV/zeWEcp9z68M+t57tcDyIPutPdNCwFQQH08he
+7wIDAQABo4IBazCCAWcwHQYDVR0OBBYEFK1Ic/ftrC7ItFl+EuJhcE0/f4PIMBIG
+A1UdEwEB/wQIMAYBAf8CAQAwHwYDVR0jBBgwFoAUrUhz9+2sLsi0WX4S4mFwTT9/
+g8gwKwYDVR0QBCQwIoAPMjAxODA1MjIxMjIxNTNagQ8yMDIyMDUyMjEyMjE1M1ow
+PAYDVR0gBDUwMzAxBgRVHSAAMCkwJwYIKwYBBQUHAgEWG2h0dHA6Ly9yZXBvc2l0
+b3J5LmluY2VydC5sdTA+BgNVHR8ENzA1MDOgMaAvhi1odHRwOi8vcmVwb3NpdG9y
+eS5pbmNlcnQubHUvQ1NDQV9lSURfY2FyZC5jcmwwDgYDVR0PAQH/BAQDAgEGMCoG
+A1UdEQQjMCGBDmNzY2FAaW5jZXJ0Lmx1pA8wDTELMAkGA1UEBwwCTFUwKgYDVR0S
+BCMwIYEOY3NjYUBpbmNlcnQubHWkDzANMQswCQYDVQQHDAJMVTBBBgkqhkiG9w0B
+AQowNKAPMA0GCWCGSAFlAwQCAQUAoRwwGgYJKoZIhvcNAQEIMA0GCWCGSAFlAwQC
+AQUAogMCASADggIBAIg+7XRRqipuT6vyWGSbIGbxOAM0rVQWAZzOcUjcTxGgsMPV
+aIwpAr0BlS6ViHx2SE03fsfDDFvEgQ5LeO9eo7CJPMzMk6u48TCYLJY9czhBw2dO
+a5nqyE3jPhZFSUzQJHFHgK4XqY8Ty+fSTkt15Mot13jM5OSO5eGtDgQ6uBqGQbT0
+q4/fCAWa3UkenOHzMMITXYGZvP++v5H7Oaz82sDvFG9ssl+i3Hq60OgjqJUgBMuf
+08LyaOxPXEVjlUsC9eoZDaBNtIZ5kQg6zmUy/qNpBcU91zrWboF5KT1VQVZ5NnA3
+XVBYeW/lfwc+YbwelhPgJ5LAYkqJLZJEgcS3fVJVtk8UGvi99Go9m5/OFw8sF1Hd
+i0rQlskE8yEDeJTfveHtwFIGd6LLXwdAfpRjoOozNgDa3v9ek7j1Tc7KuHCHkFgg
+HhBBT50zsf9aOu7yJCXBWyc7O7b5h1SrLZg018ZJ2R0MHr15LKwuqJbfHohCNUjK
+xEJ7Ne/AieRRw4gMGbAbfO4bdS/N9zrdZGzZ28umybKIoSDkpZ0HST76KDTGBS2T
+HaYT6KNvIwWHOGL1s/8TDx5cgQjedqCpGfeAiZ1ka18Jh4q5b8pO1P7yZf/fjqos
+Fgp1t03XDyR7wiepJoutq5XYzamfKjXdU4WaeiP+zZ+WLuguwdgOD9vzdIk4
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIHejCCBWKgAwIBAgICFvIwDQYJKoZIhvcNAQELBQAwZTELMAkGA1UEBhMCQVUx
+DDAKBgNVBAoMA0dPVjENMAsGA1UECwwEREZBVDEMMAoGA1UECwwDQVBPMSswKQYD
+VQQDDCJQYXNzcG9ydCBDb3VudHJ5IFNpZ25pbmcgQXV0aG9yaXR5MB4XDTIwMDUw
+NTAxMDQzMloXDTM2MDUwNTAwNDcwMlowZTELMAkGA1UEBhMCQVUxDDAKBgNVBAoM
+A0dPVjENMAsGA1UECwwEREZBVDEMMAoGA1UECwwDQVBPMSswKQYDVQQDDCJQYXNz
+cG9ydCBDb3VudHJ5IFNpZ25pbmcgQXV0aG9yaXR5MIICIjANBgkqhkiG9w0BAQEF
+AAOCAg8AMIICCgKCAgEA5Px4u6BkmBlCq4PyXHDaV9KDg1siTg9OImmoqdt4CPLl
+3llcuw5Dp0Yi0gT9FUmBzPfdkR7U4q8cC4L70e/GyBK41AQU64bKkBDj2vXIldnO
+yxQ3LcNTvCOPany8ocx0y7iZFA/DqOh18tgyfhQEop/9q0mJMukDAfT1Zc9Enjg/
+ZsneNz9aUL+mkDUS4lNk1pBGbKuWYn83xGVXpaiUa5+k2weLCswKRBpkbES3riJN
+RvHwKWLIEp5mc17gcin1gL9/C5eZpR9JcKcgNHmdJCPGT+ntd3XXLRQ3XzG7I4Gu
+Kcagbw3lB66nN4K1VnKWHmAUqJhQI2wJ5xaMh6l0E0ioHPnGl1l+pj8MpOV7L76W
+q02kzDuXxiVbo/EhU/dJsppYOkqSrXYbKyyLAQLyZkvsn8kvnUkqARK0APRXMKBN
+woPKMqO/I8q8rYSzUCu0uzzRL9nTu3DKPqis2B9d1Sz8uUf3s6yKrufhawH3XXbA
+9qwnu79BmDkuLV3U12kThb8Z/Vo+07P3WgGiztoDSaC6tLvu5d9LlvoFU/Y61T4u
+upmF80Uz0WcKzhjHu8tcq0Lp/UXj1szerwqrPZ0ZbKMOw8brJtiPUsX6Mcv+QF4i
+r+RWqryE69NJZbiqH+/nF7Uj7wekU10uL8V2CyKkErRohNZwLKRzJorVlGkh6GkC
+AwEAAaOCAjIwggIuMBIGA1UdEwEB/wQIMAYBAf8CAQAwgfEGA1UdIASB6TCB5jCB
+4wYIKiSfpoFdAQEwgdYwgdMGCCsGAQUFBwICMIHGDIHDQ2VydGlmaWNhdGVzIHVu
+ZGVyIHRoaXMgcG9saWN5IGFyZSBpc3N1ZWQgYnkgdGhlIERGQVQgQ291bnRyeSBT
+aWduaW5nIENBIHRvIHRoZSBDb3VudHJ5IFNpZ25pbmcgQ0EgaXRzZWxmIChzZWxm
+LXNpZ25lZCkgb3IgdGhlIERvY3VtZW50IFNpZ25pbmcgQ2VydGlmaWNhdGVzIHN1
+Ym9yZGluYXRlIHRvIHRoZSBDb3VudHJ5IFNpZ25pbmcgQ0EuMBsGA1UdEQQUMBKk
+EDAOMQwwCgYDVQQHDANBVVMwbQYDVR0fBGYwZDAwoC6gLIYqaHR0cHM6Ly9wa2Rk
+b3dubG9hZDEuaWNhby5pbnQvQ1JMcy9BVVMuY3JsMDCgLqAshipodHRwczovL3Br
+ZGRvd25sb2FkMi5pY2FvLmludC9DUkxzL0FVUy5jcmwwDgYDVR0PAQH/BAQDAgEG
+MCsGA1UdEAQkMCKADzIwMjAwNTA1MDA0NzM4WoEPMjAyNDA1MDUwMDQ3MzhaMBsG
+A1UdEgQUMBKkEDAOMQwwCgYDVQQHDANBVVMwHwYDVR0jBBgwFoAUNhfB5/VnlXEu
+N3VwjlWDMYbpOA4wHQYDVR0OBBYEFDYXwef1Z5VxLjd1cI5VgzGG6TgOMA0GCSqG
+SIb3DQEBCwUAA4ICAQAcLnxtwc8uN/HwWfbb3jOBEPM5XouTWK4qOAnWkwuuB4Vs
+L/PXo7nCZY00HQTAxMAxY2zmPjhvqKaCD98Bc8ttdjTno9Nc4Voa4+roaSv0lErP
+2wMvpkXbLXGuqZMF4ueOsKqW6DcYaFsOPd3Zry5wIEwj2zQDAfnq73DkydNL0FwZ
+vOyBERoq+1D9KCnFzd4h5ewDu/4Nu01SCx+k+0xHe7BmH2+TfhzB/QnW7qJuUG9j
+39tid3FuZwYwmbcXj8WBG+2FIBG3uTZa9ukwNG47+fz2jitv6ecQkFy1pIBUBKwi
+g+3cXAEkRfheudpcFq/oa69xt3PzL8eofYLmtj2gWkvKD/THsKzh2SUDuX4qKhFZ
+F3LlBhkAwax03MPwwvDkUK9nlaeqQMtZ33LV/S3BvLMQk8q4JaVX+Zh8H8JLDcmR
+pNKnCrs13VZ6ioHtHEcy3Ny6ZnZZEEoKFOt6D6cmA5KoepJtimMpwLaptyWOLF9j
+43JnGLpQIX1j1+BsiWbSJ4vpc0LEhgLxuYMzDjCg91S6ytzX2NKPIkQQyy1eP6h6
+v5TYd3byevXfIy+Qv+inZlENh5IalqXGObUHqYs92u54gd4vTSM+Cd0ygjI9d+yH
+34J3i6iysPYhHRZe4qgY1CfnXYKDI+ZbqUMXYA+bnxnEplieSMXYurPh8Uc1ew==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIHgjCCBeqgAwIBAgIBATANBgkqhkiG9w0BAQsFADCBwzEVMBMGA1UEAxMMQUMg
+UGFzYXBvcnRlMQswCQYDVQQGEwJWRTEQMA4GA1UEBxMHQ2FyYWNhczEZMBcGA1UE
+CBMQRGlzdHJpdG8gQ2FwaXRhbDE2MDQGA1UEChMtU2lzdGVtYSBOYWNpb25hbCBk
+ZSBDZXJ0aWZpY2FjaW9uIEVsZWN0cm9uaWNhMREwDwYDVQQLEwhTVVNDRVJURTEl
+MCMGCSqGSIb3DQEJARYWYWNwYXNzQHN1c2NlcnRlLmdvYi52ZTAeFw0wNzAzMDIx
+MzM4NTVaFw0yMjAyMjYyMzU5NTlaMIHDMRUwEwYDVQQDEwxBQyBQYXNhcG9ydGUx
+CzAJBgNVBAYTAlZFMRAwDgYDVQQHEwdDYXJhY2FzMRkwFwYDVQQIExBEaXN0cml0
+byBDYXBpdGFsMTYwNAYDVQQKEy1TaXN0ZW1hIE5hY2lvbmFsIGRlIENlcnRpZmlj
+YWNpb24gRWxlY3Ryb25pY2ExETAPBgNVBAsTCFNVU0NFUlRFMSUwIwYJKoZIhvcN
+AQkBFhZhY3Bhc3NAc3VzY2VydGUuZ29iLnZlMIIBojANBgkqhkiG9w0BAQEFAAOC
+AY8AMIIBigKCAYEAiKwkFCDz96D4PiIvz0v4QOuvDCekYPWLzvDgO9K6ARfxV1tf
+b596C5cjGIUAvk95MYl9baqCQOSMCPlQ0rWQ628WmU+A2PT8ddISjQzuJ211p+y3
+HrP4qj4uYu+ILtTMK6lgqzbZVHnDAWo32GqDiLiN9sC+sIJ55sVZ3i6mW1qFpSN2
+5zaq/9rh4FeXp7AqQ4SkXd7wVsdhDZCOD16gA39lihF/bAFsWX6VODoeW2ONj2fo
+3YFS+xXuUzrAiuJX/QpWChvHW66DwBNlHbPYKCCyZA+0s9TcbxSOmPnsQOGNFNRB
+/ufYZfO8sqdC996rEW1/to+/va8PcPWkml+hES5xdgMbmOYPjVYk2SNc6hcApl1Y
+kFMvdYDMYJV6l0+JGRYhmutI/cUkzxBY3pc6QI1kQUzvJY+19Vq+SaVAnC20QJBL
+M1+NLtWk2jH36zGPKFiuxabcw4mr98jjRqYXd5WLPgR1cuHeZOPQtXB1UvpU6yTf
+EJyxhC04+E68VgalAgMBAAGjggJ9MIICeTASBgNVHRMBAf8ECDAGAQH/AgEBMDcG
+A1UdEgQwMC6CD3N1c2NlcnRlLmdvYi52ZaAbBgVghl4CAqASDBBSSUYtRy0yMDAw
+NDAzNi0wMB0GA1UdDgQWBBT41FXV45ArV3dHaO5iWK7/nonAFjCB8AYDVR0jBIHo
+MIHlgBT41FXV45ArV3dHaO5iWK7/nonAFqGByaSBxjCBwzEVMBMGA1UEAxMMQUMg
+UGFzYXBvcnRlMQswCQYDVQQGEwJWRTEQMA4GA1UEBxMHQ2FyYWNhczEZMBcGA1UE
+CBMQRGlzdHJpdG8gQ2FwaXRhbDE2MDQGA1UEChMtU2lzdGVtYSBOYWNpb25hbCBk
+ZSBDZXJ0aWZpY2FjaW9uIEVsZWN0cm9uaWNhMREwDwYDVQQLEwhTVVNDRVJURTEl
+MCMGCSqGSIb3DQEJARYWYWNwYXNzQHN1c2NlcnRlLmdvYi52ZYIBATAOBgNVHQ8B
+Af8EBAMCAQYwNwYDVR0RBDAwLoIPc3VzY2VydGUuZ29iLnZloBsGBWCGXgICoBIM
+EFJJRi1HLTIwMDA0MDM2LTAwVAYDVR0fBE0wSzAkoCKgIIYeaHR0cDovL3d3dy5z
+dXNjZXJ0ZS5nb2IudmUvbGNyMCOgIaAfhh1sZGFwOi8vYWNyYWl6LnN1c2NlcnRl
+LmdvYi52ZTA3BggrBgEFBQcBAQQrMCkwJwYIKwYBBQUHMAGGG2h0dHA6Ly9vY3Nw
+LnN1c2NlcnRlLmdvYi52ZTBABgNVHSAEOTA3MDUGBWCGXgECMCwwKgYIKwYBBQUH
+AgEWHmh0dHA6Ly93d3cuc3VzY2VydGUuZ29iLnZlL2RwYzANBgkqhkiG9w0BAQsF
+AAOCAYEAFt7jd/um1JlMHysfQOJ/fE3RVCaN2krBQSJk0GePD+rdlI3mZcn5PMGb
+vKLbzNb5nGTIsv2a8L4YnpXBljjssBwbCDcuksW617NRD1OeR7vz6xDJNDLaC7s0
+Sg2GcbcU8SUai6ms+kWUuXYQdoLI+mJzgAC/tptHVu+pdTiEQE6Uv1klU1hzytZI
+5oehDiTRreFRxeL1IOeuyDjRi/qPvSawDPNzRGiKSksIiYSGQ1Do19GUmENUpMj0
+qH/JpBZQieHeHLHYjoTpKwys5HP41v8NqB3A4ps3p3Mmb+QpzJWFEL5x0xG+DaqX
+NrZl2jMYhQeV29DcbW7tVaqNEyCYMOQMrHHMzAWbgkwCXDhlNE7cU2u04j6j9uu4
+nNdAzzUaFdvYkCNrK6jaPF8fUfKw7FrwZWPYePKNtEpFhf/5TPSGJOBns31M5c8n
+MLtu6cVsEYRKmmx6HVW8HU8hA/jQnaGZCea8hjsLwdFQ/Ivcx3n7jIXvSM6JToVT
+u1fYn0fn
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIHmjCCBU6gAwIBAgIIPUAemMq7rdowQQYJKoZIhvcNAQEKMDSgDzANBglghkgB
+ZQMEAgMFAKEcMBoGCSqGSIb3DQEBCDANBglghkgBZQMEAgMFAKIDAgFAMIGQMSIw
+IAYDVQQDDBlJdGFsaWFuIENvdW50cnkgU2lnbmVyIENBMT4wPAYDVQQLDDVOYXRp
+b25hbCBFbGVjdHJvbmljIENlbnRlciBvZiBJdGFsaWFuIE5hdGlvbmFsIFBvbGlj
+ZTEdMBsGA1UECgwUTWluaXN0cnkgb2YgSW50ZXJpb3IxCzAJBgNVBAYTAklUMB4X
+DTIwMDQyOTA5MzA0M1oXDTM1MDcyNTA5MzA0M1owgZAxIjAgBgNVBAMMGUl0YWxp
+YW4gQ291bnRyeSBTaWduZXIgQ0ExPjA8BgNVBAsMNU5hdGlvbmFsIEVsZWN0cm9u
+aWMgQ2VudGVyIG9mIEl0YWxpYW4gTmF0aW9uYWwgUG9saWNlMR0wGwYDVQQKDBRN
+aW5pc3RyeSBvZiBJbnRlcmlvcjELMAkGA1UEBhMCSVQwggIiMA0GCSqGSIb3DQEB
+AQUAA4ICDwAwggIKAoICAQCtJJ2wrH5rysNnPvZAM5PZhkYTeD8pUGFiDLM0BGoe
+nnUoz9Gv/TZHvWvRupbGFsdwpcE1r5v3Oeni2bZ2y2c8mUNZT8LITMSqjb8zvjhW
+WOaSRjEZHc/WDZefcUU1mYOqa+C17uk+b1aBDFGFK2outUImXUXI6D3CgWC3ouCY
+qTeNtfuDslO8GUHLXjtMCyppEmKpFWz75rrl1gRSaIA9OgZi+OBFBnFFmPywbuoK
+dMPoVjNE6nDAQXPn2l5kzGsq/97QFkcFIowYYJ6x7HBA2Pa/cQdY61uGp/ueMhIo
+MYXKjkKO3QrJptX6RqX3vteKMqzd+3I9S+Wp8aqkdnSQZCYt9lSODN78AOc2f3sV
+iEonb2HUTL9ZrDZWG7UdKf/Dv5Co/rjQmied1fZw7/5XObH9QBk2yubFuYSK+G+C
+AhkOZfxH/KKh9s+VGON3VNlc6MaTHGz5nfI4gg/8fFCfUC6H+U0zQthTibJk9UDF
+rb5v3b6WUZlPO00LXHy3sQDyBYvo2MZcK1kLKfWCR4NNrY7fb+5tTJeRCoQyuVcj
+r4F87hhgr3MyrzfH3wz6aqExL2o4XNy2aC7GzIT4SlqtmfOvX8h2sbJj6WggCpXg
+odA5q8tpbL2ypnpvSaHHdTOLkHywc6qHd4maEKGzVzbRCAnoKpgGM1VU7M5kMZAw
+2wIDAQABo4IBjDCCAYgwEgYDVR0TAQH/BAgwBgEB/wIBADAfBgNVHSMEGDAWgBTR
+GlBeFa3qWmF3nKSiqZHsOUnR+TBSBgNVHRIESzBJgRNzcG9jLWl0YUBpbnRlcm5v
+Lml0pBAwDjEMMAoGA1UEBwwDSVRBhiBodHRwczovL2NzY2EtaXRhLmludGVybm8u
+Z292Lml0LzBSBgNVHREESzBJgRNzcG9jLWl0YUBpbnRlcm5vLml0pBAwDjEMMAoG
+A1UEBwwDSVRBhiBodHRwczovL2NzY2EtaXRhLmludGVybm8uZ292Lml0LzBNBgNV
+HR8ERjBEMEKgQKA+hjxodHRwczovL2NzY2EtaXRhLmludGVybm8uZ292Lml0L2Nl
+cnRpZmljYXRpQ1NDQS9DUkxfQ1NDQS5jcmwwHQYDVR0OBBYEFNEaUF4VrepaYXec
+pKKpkew5SdH5MCsGA1UdEAQkMCKADzIwMjAwNDI5MDkzMDQzWoEPMjAyNDA0Mjgw
+OTMwNDNaMA4GA1UdDwEB/wQEAwIBBjBBBgkqhkiG9w0BAQowNKAPMA0GCWCGSAFl
+AwQCAwUAoRwwGgYJKoZIhvcNAQEIMA0GCWCGSAFlAwQCAwUAogMCAUADggIBACU7
+Opmhsik7lW7GqMmCUTzBYLxRTNRYNeswoc8mLwj5G+evqhmJKbx066LF/D9gO0D5
+6G61ant4VNw10SXH+zj3iydUwwpkPVMLEXqyXd+I52feR5uO8wtnd/Ao6Hk2cH3G
+tn8sGCiSs6Vru2DdhC8y23TLsxazWmIoARcQLnyX8BhoMbHcrXp5GsPQWEkY/iTm
+nqmdaXRzUBOiZ8byIOl5IoMk8oVLF9zLe8fuAsd85yRwJ9Xy8PjgBGjOdwKNJ5Ul
+IaIVZ8MH0unJT0qkxAc4i/rvZCwDBg4f6K54c81VY/3Nf2gzIuSS3Tn6Eb/U6tDl
+tYcqKv/PjRHnuQoQT6BJHTH18I1FFRccZiXDWDmwI7AmEz2Gbht/yTzXHWcHXzQz
+suL30NhTBaMPiCGdY8JstIZyEqoYYcEV7Pucn/WJRHBBBdo0RQfPK1CfYIvyCaE6
+ZlRhWq3q5LIqO0/NRdQRPabEicixNjBh5BXksApczW4h36rxOleYfDSahbGjqHiZ
+avqiNUtXTRAoTjNnTwHFHwoTOsUzlr5wOE3ToO7O0LMxsb1/PzKnAsNGjZdtVzSJ
+/mUWSIZ+3Mh6k6GWCh3hqOwV+TslyKekHv/plBhWrxCb/V0TWhY7E7kuX1ABftS/
+QdrMIF38OkJilEBlMzEYU9li2vjJ4hl12nrNjJQX
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIH5DCCBcygAwIBAgICAJwwDQYJKoZIhvcNAQELBQAwcDEKMAgGA1UEBRMBNTEa
+MBgGA1UEChMRSGVsbGVuaWMgUmVwdWJsaWMxFDASBgNVBAMTC0NTQ0EtSEVMTEFT
+MQswCQYDVQQGEwJHUjEjMCEGCSqGSIb3DQEJARYUY3NjYUBwYXNzcG9ydC5nb3Yu
+Z3IwHhcNMTYwODA3MjEwMDAwWhcNMjYxMTA3MjE1OTU5WjBwMQowCAYDVQQFEwE1
+MRowGAYDVQQKExFIZWxsZW5pYyBSZXB1YmxpYzEUMBIGA1UEAxMLQ1NDQS1IRUxM
+QVMxCzAJBgNVBAYTAkdSMSMwIQYJKoZIhvcNAQkBFhRjc2NhQHBhc3Nwb3J0Lmdv
+di5ncjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMfQ6mI/WEnR+qQi
+B14+UXf6+1IhZL1SZozSruHg5L4a0RdCkOioc/RxzB0pb8KxQU5o0+r1omRsoP9v
+19dEKyBn00ajDrhE2avPWTXnF0GResvqPXr4KaDzAwXLTisrD/+9uCg/SbKGgx06
+fLwqrNzoCyS7B7JurIZBwHVaps8P1hAKPQInEtQxUo8MP57aGNaW+QU4MiLGNmYZ
+lusoNP2vwESjTaLyewQ54wLWiLzGHbHApMLMjxut+BBMavLs6ovpm1McRoLHbqjo
+FOJMsPh80QYJaQVy2EdZRTpe+BbzRB7/LiCoRwBB3NPi9JWzBUNDSRe2Tle+JWzF
+MhaaH0RAqguegjH6Te0fuBTkEIcgdEjKdQrNKJe+5BEtK4TgElqA9D19SzXFaPZa
+bJCy2doDpjW/XfOxyMOxEfNyKULapbXrumIIVj8KAv3Aujqbu/hY74h+KKaQ7Kx+
+w8F6h1PgXsyTjOEeQlbfSR86L6OTnb4Phork32wGFjHCUqi36PbqoQlrCQ7acyQv
+bNLzcA+qx9txRhEwWBFdHAVSJEyUasb/t2TaX1tdzPNovUfPNbhY2ZmD+6dqdtbq
+m9bd+w5ZW39qognr8gz6/oAYz/tv5apMnBt5h4lcNgrRe+3VAxhLNEgWWIWtuFbr
+gmKZcaQC6czmAvP6gxdOYEvFfWexAgMBAAGjggKGMIICgjArBgNVHRAEJDAigA8y
+MDE2MDgwNzIxMDAwMFqBDzIwMjEwODA3MjA1OTU5WjAOBgNVHQ8BAf8EBAMCAQYw
+HQYDVR0OBBYEFGQ6dlrfVzGTRWbOWFUmmBWWO/7cMB8GA1UdIwQYMBaAFGQ6dlrf
+VzGTRWbOWFUmmBWWO/7cMBIGA1UdEwEB/wQIMAYBAf8CAQEwOQYDVR0fBDIwMDAu
+oCygKoYoaHR0cDovL3d3dy5wYXNzcG9ydC5nb3YuZ3IvY3NjYS9jc2NhLmNybDCC
+AbIGA1UdIASCAakwggGlMIIBoQYMKwYBBAGqbAEKYwEAMIIBjzCCAVQGCCsGAQUF
+BwICMIIBRh6CAUIAVABoAGkAcwAgAEMAZQByAHQAaQBmAGkAYwBhAHQAZQAgAGkA
+cwAgAGcAbwB2AGUAcgBuAGUAZAAgAGIAeQAgAHQAaABlACAAcgBlAGYAZQByAHIA
+ZQBkACAAUABvAGwAaQBjAGkAZQBzACAAYQBuAGQAIAB0AGgAZQAgAEMAZQByAHQA
+aQBmAGkAYwBhAHQAaQBvAG4AIABQAHIAYQBjAHQAaQBjAGUAIABTAHQAYQB0AGUA
+bQBlAG4AdAAgAG8AZgAgAHQAaABlACAARwByAGUAZQBrACAAQwBTAEMAQQAsACAA
+dwBoAGkAYwBoACAAZgBvAHIAbQAgAGEAbgAgAGkAbgB0AGUAZwByAGEAbAAgAHAA
+YQByAHQAIABvAGYAIAB0AGgAZQAgAEMAZQByAHQAaQBmAGkAYwBhAHQAZQAuMDUG
+CCsGAQUFBwIBFilodHRwOi8vd3d3LnBhc3Nwb3J0Lmdvdi5nci9jc2NhL3BvbGlj
+aWVzLzANBgkqhkiG9w0BAQsFAAOCAgEAdLJ4tA5WM3vlOFMpF0xYBk8oRqNSCXFk
+TGzWk395VPvXW+bpXnE7wE167X08ysGnX8iFAHqwJnDCb5WnrX2g67MoYWJRYks+
+zLFovKwgLOgtvuJk7nxK1D5s3SACC2tc6UbdtXTPj7Kuh11CesohNvO0WhKPwKAf
+30qa5QHsDPqaa1ubCyhsvLMccKY9LAkn7TAMvP2/7KA6nSxoatik79w0x0aFj8yD
+wwa/k/FJZRyoRZ1z0MVluLQElci3wBefwdM+Pu82jB1RWc9lUWSm5vwBJvvuJhkA
+BKv323gLhswYwaJwjwTPlnTKklTq72Gt3GW9L+NEVuZRZJ2CokQsNNoyOltqo8mD
+aAmFJIzXVgcjr1Px2KrajImwa9nQEhst/8V57Mn6Zkkm8B0gpgAWgD9PiiWbqGof
+41d3uipofVIm1+ZjZKdd3znSAXrBbUMRxwNRX3cwfa7kAVMIXbmfVwiV+xGOkOkG
+BZtKs+tl+W9DTdZ8DzMJg2xgSTrQm/7e6Sw4MZjcEo4S1jP5A9WjWrEfZBwOgqZZ
+VZ5D8PgBqmxMvv0a1aAFn4h0D5b3Cwbj1CU8yVNJQaeGei20dTwWTWk93VgtuLul
+6/kvA16NFVILGyNtziUomY5cUmDP/XVRThLAjJJywJ3Ek5JfDtDCMUOeqgYyGDuM
+97szl84xDsM=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIH5DCCBcygAwIBAgICAN8wDQYJKoZIhvcNAQELBQAwcDEKMAgGA1UEBRMBNzEa
+MBgGA1UEChMRSGVsbGVuaWMgUmVwdWJsaWMxFDASBgNVBAMTC0NTQ0EtSEVMTEFT
+MQswCQYDVQQGEwJHUjEjMCEGCSqGSIb3DQEJARYUY3NjYUBwYXNzcG9ydC5nb3Yu
+Z3IwHhcNMjEwNzIwMjEwMDAwWhcNMzExMDIwMjA1OTU5WjBwMQowCAYDVQQFEwE3
+MRowGAYDVQQKExFIZWxsZW5pYyBSZXB1YmxpYzEUMBIGA1UEAxMLQ1NDQS1IRUxM
+QVMxCzAJBgNVBAYTAkdSMSMwIQYJKoZIhvcNAQkBFhRjc2NhQHBhc3Nwb3J0Lmdv
+di5ncjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAKDyLEOr3wuc6YrA
+hadiiDqoXjjTObKKvtJpymfZBfSFWInFLIw1hyK6WjdWecGvJDRzF9llAK6FzJXD
+Lgb8hYkM4COgbgyGtnVyezw1Z/HcCdpnz5IS6LhsXGn2uqDnvo0+AXQI+0joYl1X
+vwMEthJyOAIRZhCkc6Oj/byufG8HLh7IrHkFLm2JgnKUBMR4Ne7/6J9P8JyEhLqA
+puE8dJWSSNu5YzepNBPdgNo9c4FdIeGyKC8yFtbwJtYSfYubhRxhRC9dGghjT8Ev
+fQGH2gEcZfpv06m0yc7lMgat0EZQZE4p1XoD8PLIhR5omS5yAEim1ORZu5vrb/TT
+S4fNt84EctlB7DbCWmltsVWnUdAgqtgHJrCvz33a0a7eabIGncLO1Yj2EJZZDEbL
+dvuReSisO7RwCXQPB1doXdqCbeBji/iai8K48KZ8XvR34Xgd1GukrbvhxgQ3mnvx
+G9oBgRc8cWWr6L7VZyNyyFCvdhzrdONG4Taeoa6rMFQ8fGeLgPmBXjLBigmfKIfd
+tFIlCTVxbK3ULKHK7J4o7v+gTEvMFplJUvbc+wpDIeL88NYX/OekgNj6N6MmPdcA
+Q0IRb/8PK3tIhXtvMx+ljXxYrcjsbF2P4UNI785phf54WHwMiI03sDaKJQ+2s5tk
+mVKt8D/bm3ZXzznavOxmwfZVAFVxAgMBAAGjggKGMIICgjArBgNVHRAEJDAigA8y
+MDIxMDcyMDIxMDAwMFqBDzIwMjYwNzIwMjA1OTU5WjAOBgNVHQ8BAf8EBAMCAQYw
+HQYDVR0OBBYEFEH1vvhYbNcdDNjit0bSKnzgY8Q6MB8GA1UdIwQYMBaAFEH1vvhY
+bNcdDNjit0bSKnzgY8Q6MBIGA1UdEwEB/wQIMAYBAf8CAQEwOQYDVR0fBDIwMDAu
+oCygKoYoaHR0cDovL3d3dy5wYXNzcG9ydC5nb3YuZ3IvY3NjYS9jc2NhLmNybDCC
+AbIGA1UdIASCAakwggGlMIIBoQYMKwYBBAGqbAEKYwEAMIIBjzCCAVQGCCsGAQUF
+BwICMIIBRh6CAUIAVABoAGkAcwAgAEMAZQByAHQAaQBmAGkAYwBhAHQAZQAgAGkA
+cwAgAGcAbwB2AGUAcgBuAGUAZAAgAGIAeQAgAHQAaABlACAAcgBlAGYAZQByAHIA
+ZQBkACAAUABvAGwAaQBjAGkAZQBzACAAYQBuAGQAIAB0AGgAZQAgAEMAZQByAHQA
+aQBmAGkAYwBhAHQAaQBvAG4AIABQAHIAYQBjAHQAaQBjAGUAIABTAHQAYQB0AGUA
+bQBlAG4AdAAgAG8AZgAgAHQAaABlACAARwByAGUAZQBrACAAQwBTAEMAQQAsACAA
+dwBoAGkAYwBoACAAZgBvAHIAbQAgAGEAbgAgAGkAbgB0AGUAZwByAGEAbAAgAHAA
+YQByAHQAIABvAGYAIAB0AGgAZQAgAEMAZQByAHQAaQBmAGkAYwBhAHQAZQAuMDUG
+CCsGAQUFBwIBFilodHRwOi8vd3d3LnBhc3Nwb3J0Lmdvdi5nci9jc2NhL3BvbGlj
+aWVzLzANBgkqhkiG9w0BAQsFAAOCAgEANUjBsxCDc1cq+135zgkywx7O7FbU904u
+0gWaJ0fxX2j3SLVyczNS+fd9qLRKG8tR1HpRzIX8VQAX5ZFbb37PFGe+LVNUIHnh
+bGEKCirNcfy5T2JfAk45aJCbX5trCnQVkMdXbUI08odZk12zvX4MqHeV/6a2wdUA
+Xu11MTFFav5XiYTav02csnGAttpfIev3Bmd07SPQnBMEjQdT3vq4KkkSJHricTTS
+b/AckxkZUWkIp8JjdsHtpXmoJFAW96evOlYHu6arFVD0dQL8XCfDBtg4GOTyLnGl
+y/EU24NdAF7HC1OnCaWgetFu+coqb4SiSIIK73xkV9Wo0ceg9RVQjp+pEsKDad1n
+qkKvpzuGdFNUrIaN4fSLw6QcBlNcPYlAD409ibCS2w5+miRztMplXZG9o4Pkmg2I
+dqoYHT7JSX8Pf+l2XTVWUym4qv6wxwbO2Zfds13YF1aWhsNH0d5TjQDqoqixNbuY
+jfnJy+zsYPezsSn5+terNPpUYOcUFLOzpodt8HNM7/bNe0la9+P6UwI5zalNH/DH
+ujqyNuZxl+8Wntcu6gUmSfmv/ZFCadY+6Yi1tGBLVgk2AsAc56DftbBaENXTlE/x
+xgFh0O0pt3SA9kpwE2LRYkHY8CdUh8Bibkgy6HLGaP1K71EIc1JAZaRx6Wa1LBHQ
+20xGdFec40o=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIH7DCCBdSgAwIBAgICMRswDQYJKoZIhvcNAQELBQAwZTELMAkGA1UEBhMCQVUx
+DDAKBgNVBAoMA0dPVjENMAsGA1UECwwEREZBVDEMMAoGA1UECwwDUFRCMSswKQYD
+VQQDDCJQYXNzcG9ydCBDb3VudHJ5IFNpZ25pbmcgQXV0aG9yaXR5MB4XDTEzMTEx
+ODAwMDE1NVoXDTI5MTExNzIzNTYwNlowZTELMAkGA1UEBhMCQVUxDDAKBgNVBAoM
+A0dPVjENMAsGA1UECwwEREZBVDEMMAoGA1UECwwDUFRCMSswKQYDVQQDDCJQYXNz
+cG9ydCBDb3VudHJ5IFNpZ25pbmcgQXV0aG9yaXR5MIICIjANBgkqhkiG9w0BAQEF
+AAOCAg8AMIICCgKCAgEAw+QzaMU+DpemI4CpHnpCF0pnIKI/M9JenO9UBKMIYim9
+LOPnx/1mZOqvENoGudAWfKzKqdBc4Z00NHObKZw1HPATYatKFzoHAdfEWsoURk3w
+ps4RHNjwHygwtPRMyHVtP5FwlKM6jILt/qgpS3pzYNMieLo7FIC1TpcSTEdtwVGR
+/bAsL/Ts8mjQfMX731L6s3/BJgOR0Ng1GvvETjOPQ9KfIWynvWqCHmQ0BZHDysHM
+bafMSl8V34A1nqsmtCkYFXr8ZZTUmzey4dwqgSIO1gQR2lGCssBVFktz1tjLv4o0
+VKgf8X0MJL6TASakK72fe9aM3Ghia+6pEf3mmMBvartA4Y44CoOuK2/RqV9fjJoB
+7BiDCSupcNDY54xlpIrGBEyD2Veyh5JwUB3ahGvN4X4QfweQKS/bwJbGcD1Q8b41
+4fU9H+LrRe235XH63rLMONmCidk0Hpi37T7NecFhMQwLlxvwWqJhej5qZSD9z+g7
+L1NN5n8vxn3oGSOuu3ylKNmIekdz0aOU3eSorzFd1h49aT59R4z7e3lPfO6ChLiE
+D36BtBbtYORFtPV7vTjG7WjhbUE/e/ZQwfKsBqOzKv/vUey+0e2x4ljI023IHkeh
+ut7Ylq2tctORrDjyEsQJR+dbqdqnp/u4dNVS7gi9Rn8+NygCA8JyP1B16gKp8IkC
+AwEAAaOCAqQwggKgMBIGA1UdEwEB/wQIMAYBAf8CAQAwgfEGA1UdIASB6TCB5jCB
+4wYIKiSfpoFdAQEwgdYwgdMGCCsGAQUFBwICMIHGDIHDQ2VydGlmaWNhdGVzIHVu
+ZGVyIHRoaXMgcG9saWN5IGFyZSBpc3N1ZWQgYnkgdGhlIERGQVQgQ291bnRyeSBT
+aWduaW5nIENBIHRvIHRoZSBDb3VudHJ5IFNpZ25pbmcgQ0EgaXRzZWxmIChzZWxm
+LXNpZ25lZCkgb3IgdGhlIERvY3VtZW50IFNpZ25pbmcgQ2VydGlmaWNhdGVzIHN1
+Ym9yZGluYXRlIHRvIHRoZSBDb3VudHJ5IFNpZ25pbmcgQ0EuMBsGA1UdEQQUMBKk
+EDAOMQwwCgYDVQQHDANBVVMwbQYDVR0fBGYwZDAwoC6gLIYqaHR0cHM6Ly9wa2Rk
+b3dubG9hZDEuaWNhby5pbnQvQ1JMcy9BVVMuY3JsMDCgLqAshipodHRwczovL3Br
+ZGRvd25sb2FkMi5pY2FvLmludC9DUkxzL0FVUy5jcmwwDgYDVR0PAQH/BAQDAgEG
+MCsGA1UdEAQkMCKADzIwMTMxMTE3MjM1NjA1WoEPMjAxNzExMTcyMzU2MDVaMBsG
+A1UdEgQUMBKkEDAOMQwwCgYDVQQHDANBVVMwHQYDVR0OBBYEFEmxQpvzh8zKmYCi
+RYMRV6NfRQWYMIGQBgNVHSMEgYgwgYWAFEmxQpvzh8zKmYCiRYMRV6NfRQWYoWmk
+ZzBlMQswCQYDVQQGEwJBVTEMMAoGA1UECgwDR09WMQ0wCwYDVQQLDARERkFUMQww
+CgYDVQQLDANQVEIxKzApBgNVBAMMIlBhc3Nwb3J0IENvdW50cnkgU2lnbmluZyBB
+dXRob3JpdHmCAjEbMA0GCSqGSIb3DQEBCwUAA4ICAQBIP1/iSU3r2QvdEyxBsMm0
+Dre9PGH6qGdHraiznhyQBrcKGGZIzhxZhuqq3lBkW3Qult5igbYB6CxZjlr0A+KV
+Gdfym4oo137HGrUwqDOJSpSBPt1r3A2x2U3xJljQgUPJwXzk3ScdHg1116Xbn6mR
+f4IcTxxdw6V5tjcOnQW69cqBQQvOioUQWstVe+PnfBwO7bVdll/WMY0UGkqFoMT6
+5KYzUDsOdFfYe+4z1qe8IAW9rBaouAVnzN6QhPu0gceFqjlrcyN83+ITNxu052Xh
+Y4LisUJK7ZIzQgCM4aqKjgpmm5SUQ9QDP7f2/Afpf0privYsfto9wdDXXthGvShF
+U3FEcoaPLYr+w0ZtIfuzLwqrZkTcIdSdAvS6DSAqxhRsdy9ovvqGxzfFnoKoJX3p
+/fmCERPh07u7IIt8lBLWR1a8nkodMcWu4Lrc5++xWTsYXRur/ol7ysLLcpFF8uTN
+BY2dnWwj5/8EzQ9a9Iqxbkrfa9MD6gmpPjITfp+0Si6grlRBy0lOZ5Gn48i7SEtO
+70PHpdWq+yyFt92ZNxgDKIOn/eU54vyta9dsphKnJ7va4JUkaaY25j3nKHCF9av2
+PLJ2EB3eZE+eRKiRkT7ZKgZpNckljN9/xLZ13WTdPVxZFvoMqdcxuNFT+6dFsQvF
+IbLgPsoTkLmE+DJr4MV17Q==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIH+zCCBeOgAwIBAgICE4kwDQYJKoZIhvcNAQELBQAwZTELMAkGA1UEBhMCQVUx
+DDAKBgNVBAoMA0dPVjENMAsGA1UECwwEREZBVDEMMAoGA1UECwwDQVBPMSswKQYD
+VQQDDCJQYXNzcG9ydCBDb3VudHJ5IFNpZ25pbmcgQXV0aG9yaXR5MB4XDTE3MDYw
+MTAyMDQ0OFoXDTMyMDYwMTAxNDkwMlowZTELMAkGA1UEBhMCQVUxDDAKBgNVBAoM
+A0dPVjENMAsGA1UECwwEREZBVDEMMAoGA1UECwwDQVBPMSswKQYDVQQDDCJQYXNz
+cG9ydCBDb3VudHJ5IFNpZ25pbmcgQXV0aG9yaXR5MIICIjANBgkqhkiG9w0BAQEF
+AAOCAg8AMIICCgKCAgEAzgdjHihPOoqH19h/Ml5NNJPN5JWDNBwzjwLUcKNYoAGg
+hPXo9CPyQP2L/q/LlxZkCTS3pYOI/BLc70rw/Kl3uLwQmFAttHoPNWf5kwW+HWNg
+v8mAt55QjOD6UmD0qq6F/PPzYax8A1VGX2fmgtU5iMuHKAsT+3iVssrcAkeh8D/i
+zpaYENY6v17VdIR+hQ8rXy9WVziaZfalRN0cbmE4LrTavD24ZoPW78AzFU3SXlr1
+RxjzR6GxZ0i26TmmaMN1poI7et8ARByVNqIgSmwveO1t2fZ1hvymQYeeJSLrvYvN
+EroWtmaFsaPWpexTzn8G0s9lgOrwp++qBCDDd0tcskLPpj08aw2ncYVh4qu/Q4cI
+3xpxqWsdFtLdHo4di4VRDZ97OEM11IIned4omDLEFsWwLYv7LfWEv2sSREsm1uL8
+/mbL/4bM9dKV8+txxfdquT73eJdRJIOIeSNcxlFLoiV2FKmwYXcDSK2rtoLqIxFm
+qfm1UFZOOAHvNIIhtsOvIETSnUbnarzhwOnowC9kqjjx1eCUzpu9HTcq2l/Istna
+7vhuhKR3HKvJcKEVaQtWF3qD2XQcrFoYl3GV+F7MlJLNqfqZPrn33+v+pva54gNJ
+trZQuFl5IcvX/bNk4MaWlG0S4IrBc4S9K3YZPUitEgPneikYkC9S0/x4Zg2kiucC
+AwEAAaOCArMwggKvMBIGA1UdEwEB/wQIMAYBAf8CAQAwgfEGA1UdIASB6TCB5jCB
+4wYIKiSfpoFdAQEwgdYwgdMGCCsGAQUFBwICMIHGDIHDQ2VydGlmaWNhdGVzIHVu
+ZGVyIHRoaXMgcG9saWN5IGFyZSBpc3N1ZWQgYnkgdGhlIERGQVQgQ291bnRyeSBT
+aWduaW5nIENBIHRvIHRoZSBDb3VudHJ5IFNpZ25pbmcgQ0EgaXRzZWxmIChzZWxm
+LXNpZ25lZCkgb3IgdGhlIERvY3VtZW50IFNpZ25pbmcgQ2VydGlmaWNhdGVzIHN1
+Ym9yZGluYXRlIHRvIHRoZSBDb3VudHJ5IFNpZ25pbmcgQ0EuMBsGA1UdEQQUMBKk
+EDAOMQwwCgYDVQQHDANBVVMwbQYDVR0fBGYwZDAwoC6gLIYqaHR0cHM6Ly9wa2Rk
+b3dubG9hZDEuaWNhby5pbnQvQ1JMcy9BVVMuY3JsMDCgLqAshipodHRwczovL3Br
+ZGRvd25sb2FkMi5pY2FvLmludC9DUkxzL0FVUy5jcmwwDQYHZ4EIAQEGAQQCBQAw
+DgYDVR0PAQH/BAQDAgEGMCsGA1UdEAQkMCKADzIwMTcwNjAxMDE0OTAwWoEPMjAy
+MDA2MDEwMTQ5MDBaMBsGA1UdEgQUMBKkEDAOMQwwCgYDVQQHDANBVVMwHQYDVR0O
+BBYEFKsCMFU8A4Phy1zMwxDB8sHJlpPGMIGQBgNVHSMEgYgwgYWAFKsCMFU8A4Ph
+y1zMwxDB8sHJlpPGoWmkZzBlMQswCQYDVQQGEwJBVTEMMAoGA1UECgwDR09WMQ0w
+CwYDVQQLDARERkFUMQwwCgYDVQQLDANBUE8xKzApBgNVBAMMIlBhc3Nwb3J0IENv
+dW50cnkgU2lnbmluZyBBdXRob3JpdHmCAhOJMA0GCSqGSIb3DQEBCwUAA4ICAQAK
+Ji00lnXa+JU7A51uVMreKfeUUi+vSvW8EflfwGK+YiUt7h1W3Nysk1ZHt1tSyZkZ
+uDW1lAyMQzlsWb1iYynrz2s/2AoxGn6k57jTV08KAjL1Q7hLQYvysTeYqHsCy0qY
+q5Rgfb9dcZfPJHe1tWFy5DpXLHNQFxTMyZwzrj4oEfqRT9cukMo1rbl2a+nKlt30
+lyGYM2P8HygL9/U67jLURWbreuCj68qH/2/CKH5xu6bsYUQPqXgKwA4BB3wV5gha
+0f1mShVNVXj3GKXBRK1PEQPN8xkdhwUUYQFa+aG9E0EtoO4D8qKFWgW8eGXs0FPO
+3uC13YocGx9k5SmH/oHyO8aOcx4GvQMyMUaSZOSCF/SYlN6oXRIt+jL0pxZsu+te
+nmPmwoFIyy6SZijXRzgyNR3TkFfUlpB4CclrwkT6J3lB3AV5PpHUnTVFq/zZoUy1
+3WPTeFunjYGm9y0Ijes6tVygtEgupnTsXfn3zEMIcssB0xitb6dm1AOiHpFbQqty
+2UKHFU7axHR1xIr3w8PKtnltG9tOteuH64sqIIGadr8qDguONgPy+hkVRAZTaTW4
+nURCluZlDa7tT4ty7iR/9iYeiMnta8RRUfq4jXzCQR9lOfHoi+kps9CPT64YFveU
+mTcR/fbgCx0+sbBjhBHIZoBAbcaCuBO56TXYgXsmyw==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIIMDCCBeSgAwIBAgIINFd6dvsnc6wwQQYJKoZIhvcNAQEKMDSgDzANBglghkgB
+ZQMEAgEFAKEcMBoGCSqGSIb3DQEBCDANBglghkgBZQMEAgEFAKIDAgEgMIGBMQsw
+CQYDVQQGEwJMVTE7MDkGA1UECgwyR3JhbmQtRHVjaHkgb2YgTHV4ZW1ib3VyZyBN
+aW5pc3RyeSBGb3JlaWduIEFmZmFpcnMxNTAzBgNVBAMMLEdyYW5kLUR1Y2h5IG9m
+IEx1eGVtYm91cmcgQ291bnRyeSBTaWduaW5nIENBMB4XDTE0MTExMjEzMzAwN1oX
+DTI5MDExMjEzMzAwN1owgYExCzAJBgNVBAYTAkxVMTswOQYDVQQKDDJHcmFuZC1E
+dWNoeSBvZiBMdXhlbWJvdXJnIE1pbmlzdHJ5IEZvcmVpZ24gQWZmYWlyczE1MDMG
+A1UEAwwsR3JhbmQtRHVjaHkgb2YgTHV4ZW1ib3VyZyBDb3VudHJ5IFNpZ25pbmcg
+Q0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCfWtPMjYzqlFYmnKu2
+LkPKB1ys/fqn509sbPckH+UhqgmSeHFPq8ebrx8P4jrR7xiOH1oGblzY3xkCDgur
+a3UR+ivjZ45NWCcn/C/u3F52Dn93z9TVaeu9PozfoJtQnXISj8i8BJRkV2747ImE
+D4disID5Bj+PQiDTj9wrQJagxAoEiBu1Abzq/hI51Xy/06gDakUTWG55VetjIP22
+y4D5i1FtD8dUlSdwOI+0H/YhwuTxC1URMD3PP1yv8fnn76BUahUdYM202IG5+Iy0
+Bur8cTLckuYrvy8E3vl7FDrNExy0/Q9D63TuZgwAJHLalHs7ICk6pntgYuG1CcSK
+dsDk+dqBmdt57QfelBLt23QL6O2ZeXMR+34cQod/nhww78YMBPLHAgPWXGAZuU/D
+AZ4oJJga8XVw348bz/Kvnbu0Tb0RkS3SiYIA4lEWxMOcJ0+2Fgjryb8AhbKon922
+q0xZq1baOKPjkvtuARxmaXb4Ed9fTTBo87td+dNupgXbgxqAxzrWGi6Q9GqbnV5X
+JDewhIzFar966OO8asv+mlug+w22AvbF8GkIFLz67PIdRnu5MwjFfvNuffxhKR4N
+hUTdVvGVSBQoPrg6O4KMfZ3PKcQoubPOCaIJPYMYOJrX3f0CkGnCITolg0wTw4wC
+vMXZ3v2PpCS5eB8UPGzCKipkzQIDAQABo4ICQDCCAjwwHQYDVR0OBBYEFOOL38sK
+r6ecUEbQL99PPIx7OkcsMBIGA1UdEwEB/wQIMAYBAf8CAQAwHwYDVR0jBBgwFoAU
+44vfywqvp5xQRtAv3088jHs6RywwKwYDVR0QBCQwIoAPMjAxNDExMTIxMzMwMDda
+gQ8yMDE4MTExMjEzMzAwN1owggEHBgNVHSAEgf8wgfwwgfkGBFUdIAAwgfAwgcQG
+CCsGAQUFBwICMIG3HoG0AGUAUgBQACAAQwBvAHUAbgB0AHIAeQAgAFMAaQBnAG4A
+aQBuAGcAIABDAEEAIABDAGUAcgB0AGkAZgBpAGMAYQB0AGUAOgAgAFUAcwBhAGcA
+ZQA6ACAAZQBSAFAAIABEAG8AYwB1AG0AZQBuAHQAIABTAGkAZwBuAGUAcgAgAEMA
+ZQByAHQAaQBmAGkAYwBhAHQAZQAgAFMAaQBnAG4AYQB0AHUAcgBlACAAbwBuAGwA
+eQAuMCcGCCsGAQUFBwIBFhtodHRwOi8vcmVwb3NpdG9yeS5pbmNlcnQubHUwRgYD
+VR0fBD8wPTA7oDmgN4Y1aHR0cDovL3JlcG9zaXRvcnkuaW5jZXJ0Lmx1L0NTQ0Ff
+ZVJlc2lkZW5jZVBlcm1pdC5jcmwwDgYDVR0PAQH/BAQDAgEGMCoGA1UdEgQjMCGB
+DmNzY2FAaW5jZXJ0Lmx1pA8wDTELMAkGA1UEBwwCTFUwKgYDVR0RBCMwIYEOY3Nj
+YUBpbmNlcnQubHWkDzANMQswCQYDVQQHDAJMVTBBBgkqhkiG9w0BAQowNKAPMA0G
+CWCGSAFlAwQCAQUAoRwwGgYJKoZIhvcNAQEIMA0GCWCGSAFlAwQCAQUAogMCASAD
+ggIBACNaFElwe1lPr9NwkbQK6pR49jy0j5Ess7ox8nr7OrCcvp4yQDV40jnptjhL
+0lgLaik+AbE+fwN7kZ7HbfqBs+NIXyXMTtuyZTM51xoTGRixbWYcDqL+h0DYqIlF
+XDce2ambS+gxUMbGpDOzMln605SI37xaK8UAiEmrmfC4uwc9L3+OSQssGnj/KG4I
+J1WmiTgFHNTLLGYuP4SO2hGRp7GNwiUe3NcUpqsXYeNu9Aip8P43oENkpJFiMIIk
+cRTB84auaZSy6nZ9Ys+jFIOJhjEJCRkFZJX+vWQOayTNO+kULTrAYDxkkMVCd6Vf
+RHop7RGAyGKG8OAq+Y61RosppOJ7YdhoXokmfKOjKLJlkQX8QrQupTZb9+eyqzHT
+cnZdpzDQGcJhOlDKTm5VP2MXhje7FI0hj+scloAzxrtbWw33uYhVLgjzeBXsbJ9J
+JLFX+e4LHP04xeKEoqC3Ycv1MTCAPXu2h3KJbAj8TI36bGHYJWtb6jBCWFws+Vf5
+3sQbaCl+RmssxXJ0DGnhI/o/ABHnAT/NGmO7A3dQ1qT3DAEdFFL4x/FstcVs7urJ
+f3kFvVwiLQyxNQOCpqfb9qIK2+DPbtf07ECWvKLP2Kzr+xSGpZr1hmNb6QVgVAMs
+3Egfnoxyatfffyg0Dbsh8rvyqWavXLTgaTbXgXLsbsQb+hfB
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIIOzCCBe+gAwIBAgIIHC1FsauzkkcwQQYJKoZIhvcNAQEKMDSgDzANBglghkgB
+ZQMEAgEFAKEcMBoGCSqGSIb3DQEBCDANBglghkgBZQMEAgEFAKIDAgEgMH0xCzAJ
+BgNVBAYTAkxVMTswOQYDVQQKDDJHcmFuZC1EdWNoeSBvZiBMdXhlbWJvdXJnIE1p
+bmlzdHJ5IEZvcmVpZ24gQWZmYWlyczExMC8GA1UEAwwoR3JhbmQtRHVjaHkgb2Yg
+THV4ZW1ib3VyZyBDU0NBIGVQYXNzcG9ydDAeFw0xNDExMTIxNDMxMDVaFw0yOTAx
+MTIxNDMxMDVaMH0xCzAJBgNVBAYTAkxVMTswOQYDVQQKDDJHcmFuZC1EdWNoeSBv
+ZiBMdXhlbWJvdXJnIE1pbmlzdHJ5IEZvcmVpZ24gQWZmYWlyczExMC8GA1UEAwwo
+R3JhbmQtRHVjaHkgb2YgTHV4ZW1ib3VyZyBDU0NBIGVQYXNzcG9ydDCCAiIwDQYJ
+KoZIhvcNAQEBBQADggIPADCCAgoCggIBAM95cAOEIhKHWpOQ6Hd/KSUyq3dIwXis
+Oy0nC3n9D+EUi3+gmhDd06e+rVE02kfU2i0RdLaIFUDQVhJjKHDY5W/FPFffsSzk
+axORmKo0+AjiSrWySz/HI4a6zD8g/o1sxYYwvF1J4u+orhRVWMlcL+kjWb5G3qsD
+PxMmkQAftEO5d7OyuFcOltjQqp/U+M24EI1pfobfCXDwRlVEBo6RRa1qH6Enji38
+7TN3bxhG+UH60jbFDjM9gHH1D7F5dxL3v0W3T1duIhE2ch144sUpOtEy90OxvBFB
+OC8oJ+I4RF6m7igRye+oXrJd0PbUcsHJUFYeUrs3QdExjJth596KD6/ASJb+Fnx3
+zeCucIBiwM7KLZGjLh8mHKsjplpdhuUrSIBgf0xpKVDIGPM9xzanWe5JLn4kOo5u
+Q1EUoyRgU7PN3mzkaR02zqeAMcin95+Ksj9N9+6WTtSbk0ZUqtoubttie/ndTvI8
+h48SQxEOuXF2KwLIO/K4HbWXWxxIkRSUGSyjb0cc8kYz4JKghAgrl5/Ak8Ez0O5b
+9tZaIew/q1q5AG8xJRjzVBo3KoD/bt3XjjNF++OP8EG5onrt4yELkJTH8fCHEw11
+57SonkYSmg+kCBHShxqA4u2Uy99u5i/rHmgzHL7bGXzzW3IJQHwtlIZJLh3qc3wy
+Bkt5OC4nkCxvAgMBAAGjggJVMIICUTAdBgNVHQ4EFgQU++zZT/RZpEPRrLGw0+bB
+43KkazgwEgYDVR0TAQH/BAgwBgEB/wIBADAfBgNVHSMEGDAWgBT77NlP9FmkQ9Gs
+sbDT5sHjcqRrODArBgNVHRAEJDAigA8yMDE0MTExMjE0MzEwNVqBDzIwMTgxMTEy
+MTQzMTA1WjCCASMGA1UdIASCARowggEWMIIBEgYEVR0gADCCAQgwgdwGCCsGAQUF
+BwICMIHPHoHMAGUAUABhAHMAcwBwAG8AcgB0ACAAQwBvAHUAbgB0AHIAeQAgAFMA
+aQBnAG4AaQBuAGcAIABDAEEAIABDAGUAcgB0AGkAZgBpAGMAYQB0AGUAOgAgAFUA
+cwBhAGcAZQA6ACAAZQBQAGEAcwBzAHAAbwByAHQAIABEAG8AYwB1AG0AZQBuAHQA
+IABTAGkAZwBuAGUAcgAgAEMAZQByAHQAaQBmAGkAYwBhAHQAZQAgAFMAaQBnAG4A
+YQB0AHUAcgBlACAAbwBuAGwAeQAuMCcGCCsGAQUFBwIBFhtodHRwOi8vcmVwb3Np
+dG9yeS5pbmNlcnQubHUwPwYDVR0fBDgwNjA0oDKgMIYuaHR0cDovL3JlcG9zaXRv
+cnkuaW5jZXJ0Lmx1L0NTQ0FfZVBhc3Nwb3J0LmNybDAOBgNVHQ8BAf8EBAMCAQYw
+KgYDVR0SBCMwIYEOY3NjYUBpbmNlcnQubHWkDzANMQswCQYDVQQHDAJMVTAqBgNV
+HREEIzAhgQ5jc2NhQGluY2VydC5sdaQPMA0xCzAJBgNVBAcMAkxVMEEGCSqGSIb3
+DQEBCjA0oA8wDQYJYIZIAWUDBAIBBQChHDAaBgkqhkiG9w0BAQgwDQYJYIZIAWUD
+BAIBBQCiAwIBIAOCAgEAKRgsv795NbVxEAmLrdQ4V2rwZaRDU0JPAwaahXzsGdN6
+h9y7FVMJEvaPvTnHVEWhghx9/jhPFrQTNNQGAlWMEaxXYXHQE/hMPZDeKIbaKbbE
+p2S5CRKRVQhwzeBtGVsmJK9B4Ymq4t5NVVvqZjjr7VEX5fAzBgTUMhJPVHdEgp+O
+MuLM/Y+NHgPEzaHpm+Df2JGFG5NM4PmylZ1Zg3Y/XygQb7nSR8Zv4Td+lTyjido9
+29OZanuXe0zTD+nNMirQPTxaUC65z/8mZ+Shct6D/4Th6D+onryc1EOzK2akrcG3
+KmTrOz4/pFn8FtYwWPFyVB3rSoyUjZsopnI+vEKhTj2hv6IFC73PXw3AdKihFljo
+Y0MsrfuPYu5OfLnMdCr4mzOeX50Fv99Pu4+B8p6T0BiqtGaFdqpruY6QRwW+7dKY
+ZIAs5IYsjq3H92P0sGog4Ube8Bq3OHAc1l2P5w3FV8Wgak49Uh7zIE2QPpsbz4vh
+dxe8348oaeMws2u7p1TtldzzBmZFGfP/SGRYGrVUITF1uH1RSbwfjEgzcCOBLOr5
+0ty6n4qr67eQs/gRJEWtuDJpcNa7WZSqYrNqlouj3VhWWGgwvYjuVdNvc+DdXS5V
+vh1WBpTSFDVHqQ9xpnDBnu12ox95V1sq25LjPBfedBIBVEeZNKs8fIRrCkRZV44=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDLTCCArSgAwIBAgISESEipU3E+YVnH0LTBkMKw9WyMAoGCCqGSM49BAMEMEEx
+CzAJBgNVBAYTAkRaMQwwCgYDVQQKEwNHb3YxDTALBgNVBAsTBE1JQ0wxFTATBgNV
+BAMTDENTQ0EtQUxHRVJJQTAeFw0yMDAxMzAwMDAwMDBaFw0zNTAzMzAwMDAwMDBa
+MEExCzAJBgNVBAYTAkRaMQwwCgYDVQQKEwNHb3YxDTALBgNVBAsTBE1JQ0wxFTAT
+BgNVBAMTDENTQ0EtQUxHRVJJQTB2MBAGByqGSM49AgEGBSuBBAAiA2IABIrKX4IR
+cPpNgjPH8j95V5KvQueRBFvfVZiWhKoW0QJ9J1QbAibWZcUOD/dvkfWu6/avUXjA
+IgQEWqQwAsiT7SuADK+h5Cy0f4CiGm8MOikZvFJCwh2spfTsPCcOViDrfKOCAW0w
+ggFpMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgEGMCsGA1UdEAQk
+MCKADzIwMjAwMTMwMDAwMDAwWoEPMjAyNTAxMzAwMDAwMDBaMBsGA1UdEQQUMBKk
+EDAOMQwwCgYDVQQHEwNEWkEwGwYDVR0SBBQwEqQQMA4xDDAKBgNVBAcTA0RaQTCB
+mwYDVR0fBIGTMIGQMIGNoIGKoIGHhi1odHRwOi8vaW50ZXJpZXVyLmdvdi5kei9D
+U0NBL0NTQ0EtQUxHRVJJQS5jcmyGKmh0dHBzOi8vcGtkZG93bmxvYWQxLmljYW8u
+aW50L0NSTHMvRFpBLmNybIYqaHR0cHM6Ly9wa2Rkb3dubG9hZDIuaWNhby5pbnQv
+Q1JMcy9EWkEuY3JsMB0GA1UdDgQWBBRf7UzTvKlfXI82c8Ya7IN7/isrUTAfBgNV
+HSMEGDAWgBSp04/VjhdrWkDGhL+BWKMrVY+EcjAKBggqhkjOPQQDBANnADBkAjAu
+ke4WEfl8vtADe0oE1+KeTOe+zzZUpOmrvXKUZnlm77nxAt4YlAb0qDBsouYP4+cC
+MFsirhwtkzN/hbtWbNff8bGf8l5RStNK+lmLj3pduzyb36lA57lUQttEpXm9gzJa
+IA==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDRDCCAuqgAwIBAgIBFTAKBggqhkjOPQQDAjByMQswCQYDVQQGEwJDWTEbMBkG
+A1UECgwSUmVwdWJsaWMgb2YgQ3lwcnVzMTAwLgYDVQQLDCdDaXZpbCBSZWdpc3Ry
+eSBhbmQgTWlncmF0aW9uIERlcGFydG1lbnQxFDASBgNVBAMMC0NTQ0EtQ1lQUlVT
+MB4XDTExMDgwMTE0MTg1MloXDTI1MTAzMTAyMTg1MlowcjELMAkGA1UEBhMCQ1kx
+GzAZBgNVBAoMElJlcHVibGljIG9mIEN5cHJ1czEwMC4GA1UECwwnQ2l2aWwgUmVn
+aXN0cnkgYW5kIE1pZ3JhdGlvbiBEZXBhcnRtZW50MRQwEgYDVQQDDAtDU0NBLUNZ
+UFJVUzCCATMwgewGByqGSM49AgEwgeACAQEwLAYHKoZIzj0BAQIhAKn7V9uh7qm8
+PmYKkJ2DjXJuO/Yj1SYgKCATSB0fblN3MEQEIH1aCXX8LDBX7vZ1MEF6/+f7gFXB
+JtxcbOlKS0TzMLXZBCAm3Fxs6UpLRPMwtdm713y/lYQWKVz34c5rzNwY/4wHtgRB
+BIvSrrnLflfLLEtIL/yBt6+53ifh470jwjpEU72azjJiVH74NcPaxP2X+EYaFGEd
+ycJ3RRMt7Y5UXB1Uxy8EaZcCIQCp+1fboe6pvD5mCpCdg41xjDl6o7VhpveQHg6C
+l0hWpwIBAQNCAAR08laxRyb/Nbi6NFOTEqxvsKAWlKboNJkm2vHTBcIG5zdV32zr
+INnd5UBn3dbwe9m1OwBEl+Lz0x4feU9vbZ4uo4GUMIGRMB0GA1UdDgQWBBTn2N0X
+WNVLQqoC24jrcB5ExpJa5jAfBgNVHSMEGDAWgBSfxV4CyOp7zJXtWIiCGIgO7I/I
+HzAOBgNVHQ8BAf8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB/wIBADArBgNVHRAEJDAi
+gA8yMDExMDgwMTE3MTY1N1qBDzIwMTUwODAxMTcxNjU3WjAKBggqhkjOPQQDAgNI
+ADBFAiBsopMqYR+X+ng7r2hzPrYhR+NWUQiTEyTa/KvvHR6MeAIhAKZGfyF1Ej9V
+Wr/UBQ9YLkeW+En/x8H2Hm9OWVmgpUmf
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDoTCCA0egAwIBAgIBcjAKBggqhkjOPQQDAjBBMQswCQYDVQQGEwJBRTEMMAoG
+A1UECgwDTU9JMQ4wDAYDVQQLDAVFUEFTUzEUMBIGA1UEAwwLVUFFIENTQ0EgMDEw
+HhcNMjEwOTIyMTI0MjIxWhcNMzAxMTIyMTI0MjIxWjBBMQswCQYDVQQGEwJBRTEM
+MAoGA1UECgwDTU9JMQ4wDAYDVQQLDAVFUEFTUzEUMBIGA1UEAwwLVUFFIENTQ0Eg
+MDEwggEzMIHsBgcqhkjOPQIBMIHgAgEBMCwGByqGSM49AQECIQCp+1fboe6pvD5m
+CpCdg41ybjv2I9UmICggE0gdH25TdzBEBCB9Wgl1/CwwV+72dTBBev/n+4BVwSbc
+XGzpSktE8zC12QQgJtxcbOlKS0TzMLXZu9d8v5WEFilc9+HOa8zcGP+MB7YEQQSL
+0q65y35XyyxLSC/8gbevud4n4eO9I8I6RFO9ms4yYlR++DXD2sT9l/hGGhRhHcnC
+d0UTLe2OVFwdVMcvBGmXAiEAqftX26Huqbw+ZgqQnYONcYw5eqO1Yab3kB4OgpdI
+VqcCAQEDQgAETjRklnZQwAOPhbO+tD8xlADoBQngNOQ12bucXXl1xmVkVIj8T7yE
+jdiCyzLiYGK/bIX/oxD8hNPlhPIVNj62iqOCAVIwggFOMB0GA1UdDgQWBBTgWxEx
+nFeuM60HskZv2HK4rElk2TAfBgNVHSMEGDAWgBTgWxExnFeuM60HskZv2HK4rElk
+2TArBgNVHRAEJDAigA8yMDIxMDkyMjEyNDIyMVqBDzIwMjUwOTIyMTI0MjIxWjAS
+BgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjBnBgNVHR8EYDBeMFyg
+WqBYhipodHRwczovL3BrZGRvd25sb2FkMS5pY2FvLmludC9DUkxzL0FSRS5jcmyG
+Kmh0dHBzOi8vcGtkZG93bmxvYWQyLmljYW8uaW50L0NSTHMvQVJFLmNybDAbBgNV
+HREEFDASpBAwDjEMMAoGA1UEBwwDQVJFMBsGA1UdEgQUMBKkEDAOMQwwCgYDVQQH
+DANBUkUwGAYDVR0gBBEwDzANBgsrBgEEAYKmDwECATAKBggqhkjOPQQDAgNIADBF
+AiB4p4yEwlN0r+x10izbsbO7i53O/PnRmewNnc3mVhAzeQIhAKYejwS+fkhNde66
+ntnFC7IVaQjiTKJ0srQ8O94IQLrE
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDoTCCA0egAwIBAgIBczAKBggqhkjOPQQDAjBBMQswCQYDVQQGEwJBRTEMMAoG
+A1UECgwDTU9JMQ4wDAYDVQQLDAVFUEFTUzEUMBIGA1UEAwwLVUFFIENTQ0EgMDEw
+HhcNMjEwOTIyMTI0MjIxWhcNMzAxMTIyMTI0MjIxWjBBMQswCQYDVQQGEwJBRTEM
+MAoGA1UECgwDTU9JMQ4wDAYDVQQLDAVFUEFTUzEUMBIGA1UEAwwLVUFFIENTQ0Eg
+MDEwggEzMIHsBgcqhkjOPQIBMIHgAgEBMCwGByqGSM49AQECIQCp+1fboe6pvD5m
+CpCdg41ybjv2I9UmICggE0gdH25TdzBEBCB9Wgl1/CwwV+72dTBBev/n+4BVwSbc
+XGzpSktE8zC12QQgJtxcbOlKS0TzMLXZu9d8v5WEFilc9+HOa8zcGP+MB7YEQQSL
+0q65y35XyyxLSC/8gbevud4n4eO9I8I6RFO9ms4yYlR++DXD2sT9l/hGGhRhHcnC
+d0UTLe2OVFwdVMcvBGmXAiEAqftX26Huqbw+ZgqQnYONcYw5eqO1Yab3kB4OgpdI
+VqcCAQEDQgAETjRklnZQwAOPhbO+tD8xlADoBQngNOQ12bucXXl1xmVkVIj8T7yE
+jdiCyzLiYGK/bIX/oxD8hNPlhPIVNj62iqOCAVIwggFOMB0GA1UdDgQWBBTgWxEx
+nFeuM60HskZv2HK4rElk2TAfBgNVHSMEGDAWgBT1qPmx56mSoIZUCNsqRxwEohX0
+1zArBgNVHRAEJDAigA8yMDIxMDkyMjEyNDIyMVqBDzIwMjUwOTIyMTI0MjIxWjAS
+BgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjBnBgNVHR8EYDBeMFyg
+WqBYhipodHRwczovL3BrZGRvd25sb2FkMS5pY2FvLmludC9DUkxzL0FSRS5jcmyG
+Kmh0dHBzOi8vcGtkZG93bmxvYWQyLmljYW8uaW50L0NSTHMvQVJFLmNybDAbBgNV
+HREEFDASpBAwDjEMMAoGA1UEBwwDQVJFMBsGA1UdEgQUMBKkEDAOMQwwCgYDVQQH
+DANBUkUwGAYDVR0gBBEwDzANBgsrBgEEAYKmDwECATAKBggqhkjOPQQDAgNIADBF
+AiEAn2TbIzsuPFM9MxyNPS4S0OgUOjmDUURLhVJwKdB1+AsCIGXeiWJGNcgrZSoA
+ORVXXEh6XVK3Nci93H/BK2Sm0NpK
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDqjCCA0+gAwIBAgISESJ8b/06kvfLhaife6B8RX64MAoGCCqGSM49BAMCMEsx
+CzAJBgNVBAYTAk9NMQwwCgYDVQQKDANHT1YxGjAYBgNVBAsMEVJveWFsIE9tYW4g
+UG9saWNlMRIwEAYDVQQDDAlPTUFOIENTQ0EwHhcNMTkwNzAyMDAwMDAwWhcNMzQx
+MDAyMDAwMDAwWjBLMQswCQYDVQQGEwJPTTEMMAoGA1UECgwDR09WMRowGAYDVQQL
+DBFSb3lhbCBPbWFuIFBvbGljZTESMBAGA1UEAwwJT01BTiBDU0NBMIIBMzCB7AYH
+KoZIzj0CATCB4AIBATAsBgcqhkjOPQEBAiEAqftX26Huqbw+ZgqQnYONcm479iPV
+JiAoIBNIHR9uU3cwRAQgfVoJdfwsMFfu9nUwQXr/5/uAVcEm3Fxs6UpLRPMwtdkE
+ICbcXGzpSktE8zC12bvXfL+VhBYpXPfhzmvM3Bj/jAe2BEEEi9Kuuct+V8ssS0gv
+/IG3r7neJ+HjvSPCOkRTvZrOMmJUfvg1w9rE/Zf4RhoUYR3JwndFEy3tjlRcHVTH
+LwRplwIhAKn7V9uh7qm8PmYKkJ2DjXGMOXqjtWGm95AeDoKXSFanAgEBA0IABCNV
+fQI+lv2HS6AHAOCxLlmFRCJOqLD7OLx2Mh3X8KXdaZBuoi0Z7wZ63Q8I9RMpOBtt
+CGTeIihojEymHPxR5MijggE1MIIBMTASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1Ud
+DwEB/wQEAwIBBjArBgNVHRAEJDAigA8yMDE5MDcwMjAwMDAwMFqBDzIwMjQwNzAy
+MDAwMDAwWjAxBgNVHREEKjAogRRvbWFuLWNzY2FAcm9wLmdvdi5vbaQQMA4xDDAK
+BgNVBAcTA09NTjAxBgNVHRIEKjAogRRvbWFuLWNzY2FAcm9wLmdvdi5vbaQQMA4x
+DDAKBgNVBAcTA09NTjA4BgNVHR8EMTAvMC2gK6AphidodHRwczovL3d3dy5yb3Au
+Z292Lm9tL2NybC9PTUFOQ1NDQS5jcmwwHQYDVR0OBBYEFFlOTfYWfKnq0M1QGeuZ
+SxXHw2R/MB8GA1UdIwQYMBaAFFw8g1x2dVtUeC0QTsNs9TYuJt1XMAoGCCqGSM49
+BAMCA0kAMEYCIQCUbSBxLBhLa9LVZ1qz6yKbjGVoM+mwOAYrzdKG+frM4wIhAI+S
+izWqq+ckgp9d3MPcgbjKoiy/q6euEOEjbJTnc3e1
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEATCCA6igAwIBAgIIVEqQfUdXBnIwCgYIKoZIzj0EAwIweDETMBEGA1UEAwwK
+Q1NDQV9GQV9CRTE3MDUGA1UECwwuRkVERVJBTCBQVUJMSUMgU0VSVklDRSBGT1JF
+SUdOIEFGRkFJUlMgQkVMR0lVTTEbMBkGA1UECgwSS0lOR0RPTSBPRiBCRUxHSVVN
+MQswCQYDVQQGEwJCRTAeFw0yMTEyMTMwODU3MjhaFw0zMDAxMjUwODQ5MzlaMHgx
+CzAJBgNVBAYTAkJFMRswGQYDVQQKDBJLSU5HRE9NIE9GIEJFTEdJVU0xNzA1BgNV
+BAsMLkZFREVSQUwgUFVCTElDIFNFUlZJQ0UgRk9SRUlHTiBBRkZBSVJTIEJFTEdJ
+VU0xEzARBgNVBAMMCkNTQ0FfRkFfQkUwggEzMIHsBgcqhkjOPQIBMIHgAgEBMCwG
+ByqGSM49AQECIQD/////AAAAAQAAAAAAAAAAAAAAAP///////////////zBEBCD/
+////AAAAAQAAAAAAAAAAAAAAAP///////////////AQgWsY12Ko6k+ez671VdpiG
+vGUdBrDMU7D2O848PifSYEsEQQRrF9Hy4SxCR/i85uVjpEDydwN9gS3rM6D0oTlF
+2JjClk/jQuL+Gn+bjufrSnwPnhYrzjNXazFezsu2QGg3v1H1AiEA/////wAAAAD/
+/////////7zm+q2nF56E87nKwvxjJVECAQEDQgAEfHWvF0nrxhdsc892Dnzx9plB
+F+TfzwtRapGmVwUu/nx2pQSxEk/bd0qtlWcUavQzUlWCFXzNdS0EOzrLtq20tKOC
+AT4wggE6MA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/AgEAMBoGA1Ud
+EAQTMBGBDzIwMjQxMjA5MTIyNjI4WjAdBgNVHQ4EFgQU8psF/fhjxfD8GQOQj0dz
+/Rjiud0wNQYDVR0fBC4wLDAqoCigJoYkaHR0cDovL2NzY2EtcGFzcy5iZWxnaXVt
+LmJlL2NzY2EuY3JsMBEGA1UdIAQKMAgwBgYEVR0gADA2BgNVHRIELzAtgRljc2Nh
+LXBhc3NAZGlwbG9iZWwuZmVkLmJlpBAwDjEMMAoGA1UEBwwDQkVMMDYGA1UdEQQv
+MC2BGWNzY2EtcGFzc0BkaXBsb2JlbC5mZWQuYmWkEDAOMQwwCgYDVQQHDANCRUww
+HwYDVR0jBBgwFoAUWNpQdTBhwLE6FYkdTu+AqYVPy3QwCgYIKoZIzj0EAwIDRwAw
+RAIgEL6C64bcyGVwjbM07cqPJGGjAWtSUZLuobcOVFQ0heYCICiA+OcQHGMwOWgF
+tAMwCUFHM2n1VRjRV/3djZ9ppxCr
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEDjCCA7SgAwIBAgIUOy83cbCeCzNEKQUdoGNPo4fifFkwCgYIKoZIzj0EAwIw
+eDELMAkGA1UEBhMCQkUxGzAZBgNVBAoMEktJTkdET00gT0YgQkVMR0lVTTE3MDUG
+A1UECwwuRkVERVJBTCBQVUJMSUMgU0VSVklDRSBGT1JFSUdOIEFGRkFJUlMgQkVM
+R0lVTTETMBEGA1UEAwwKQ1NDQV9GQV9CRTAeFw0yMTEyMDkxMjI2MjhaFw0zMjAz
+MDkxMjI2MjdaMHgxCzAJBgNVBAYTAkJFMRswGQYDVQQKDBJLSU5HRE9NIE9GIEJF
+TEdJVU0xNzA1BgNVBAsMLkZFREVSQUwgUFVCTElDIFNFUlZJQ0UgRk9SRUlHTiBB
+RkZBSVJTIEJFTEdJVU0xEzARBgNVBAMMCkNTQ0FfRkFfQkUwggEzMIHsBgcqhkjO
+PQIBMIHgAgEBMCwGByqGSM49AQECIQD/////AAAAAQAAAAAAAAAAAAAAAP//////
+/////////zBEBCD/////AAAAAQAAAAAAAAAAAAAAAP///////////////AQgWsY1
+2Ko6k+ez671VdpiGvGUdBrDMU7D2O848PifSYEsEQQRrF9Hy4SxCR/i85uVjpEDy
+dwN9gS3rM6D0oTlF2JjClk/jQuL+Gn+bjufrSnwPnhYrzjNXazFezsu2QGg3v1H1
+AiEA/////wAAAAD//////////7zm+q2nF56E87nKwvxjJVECAQEDQgAEfHWvF0nr
+xhdsc892Dnzx9plBF+TfzwtRapGmVwUu/nx2pQSxEk/bd0qtlWcUavQzUlWCFXzN
+dS0EOzrLtq20tKOCAT4wggE6MBIGA1UdEwEB/wQIMAYBAf8CAQAwHwYDVR0jBBgw
+FoAU8psF/fhjxfD8GQOQj0dz/Rjiud0wNgYDVR0SBC8wLYEZY3NjYS1wYXNzQGRp
+cGxvYmVsLmZlZC5iZaQQMA4xDDAKBgNVBAcMA0JFTDA2BgNVHREELzAtgRljc2Nh
+LXBhc3NAZGlwbG9iZWwuZmVkLmJlpBAwDjEMMAoGA1UEBwwDQkVMMBEGA1UdIAQK
+MAgwBgYEVR0gADA1BgNVHR8ELjAsMCqgKKAmhiRodHRwOi8vY3NjYS1wYXNzLmJl
+bGdpdW0uYmUvY3NjYS5jcmwwHQYDVR0OBBYEFPKbBf34Y8Xw/BkDkI9Hc/0Y4rnd
+MBoGA1UdEAQTMBGBDzIwMjQxMjA5MTIyNjI4WjAOBgNVHQ8BAf8EBAMCAQYwCgYI
+KoZIzj0EAwIDSAAwRQIgHnyh1NG4KfMmYgdg2TIGXjuA2rNJ8ZfvOYSoFiWcDt0C
+IQCUF0aU95MZAAp2ixwSZ3hOSh8tH/qn5bU/vVr7H4xKww==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEFTCCA5ugAwIBAgIINcY/rYJQincwCgYIKoZIzj0EAwMwUTELMAkGA1UEBhMC
+QlkxHDAaBgNVBAoME1JlcHVibGljIG9mIEJlbGFydXMxDTALBgNVBAsMBE5DRVMx
+FTATBgNVBAMMDENTQ0EgQmVsYXJ1czAeFw0yMDExMjUwNzI1NDdaFw0zNjAyMjAw
+NzI1NDdaMFExCzAJBgNVBAYTAkJZMRwwGgYDVQQKDBNSZXB1YmxpYyBvZiBCZWxh
+cnVzMQ0wCwYDVQQLDAROQ0VTMRUwEwYDVQQDDAxDU0NBIEJlbGFydXMwggG1MIIB
+TQYHKoZIzj0CATCCAUACAQEwPAYHKoZIzj0BAQIxAP//////////////////////
+///////////////////+/////wAAAAAAAAAA/////zBkBDD/////////////////
+/////////////////////////v////8AAAAAAAAAAP////wEMLMxL6fiPufkmI4F
+a+P4LRkYHZxu/oFBEgMUCI9QE4daxlY5jYou0Z0qhcjt0+wq7wRhBKqHyiK+iwU3
+jrHHHvMgrXRuHTtii6ebmFn3QeCCVCo4VQLyXb9VKWw6VF44cnYKtzYX3kqWJixv
+XZ6Yv5KS3Cn49B29KJoUfOnaMRO18LjACmCxzh1+gZ16Qx18kOoOXwIxAP//////
+/////////////////////////8djTYH0Ny3fWBoNskiwp3rs7BlqzMUpcwIBAQNi
+AAR5hHTOUut6AJu7tadzVuwUAntMDiFEpbQ4nJEryuMmGePhhvLVMLFPbKqsokeP
+bSDFDIBZfKnxTSDhWZd2dJ29Kn6kFd21eitPol496y62SdnxngSuogD3r6mMkPG2
+NlSjgf4wgfswEgYDVR0TAQH/BAgwBgEB/wIBADAfBgNVHSMEGDAWgBTmCeD1bxZd
+sOS780O4KO7TJs+LkDAbBgNVHRIEFDASpBAwDjEMMAoGA1UEBwwDQkxSMBsGA1Ud
+EQQUMBKkEDAOMQwwCgYDVQQHDANCTFIwLgYDVR0fBCcwJTAjoCGgH4YdaHR0cHM6
+Ly9uY2VzLmJ5L2ljYW8vY3NjYS5jcmwwHQYDVR0OBBYEFOYJ4PVvFl2w5LvzQ7go
+7tMmz4uQMCsGA1UdEAQkMCKADzIwMjAxMTI1MDcyNTQ3WoEPMjAyNTExMjQwNzI1
+NDdaMA4GA1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDAwNoADBlAjEAiNgyoJR6N0IE
+KzkIHyiC3EwBi0l4jPkAHP4v4zg0vdot52hLzW4JJbpIMQ5ajQuMAjBkO9yakzcZ
+09HcQVjzoZyxcjZ53hMI0+QBFftp/VNprCFlBBHT7KFYBfriZhkaWXI=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEJDCCA8mgAwIBAgIIT8oG6/jl6QUwCgYIKoZIzj0EAwIweTEUMBIGA1UEAwwL
+Q1NDQUVDX0JFXzMxNzA1BgNVBAsMLkZFREVSQUwgUFVCTElDIFNFUlZJQ0UgRk9S
+RUlHTiBBRkZBSVJTIEJFTEdJVU0xGzAZBgNVBAoMEktJTkdET00gT0YgQkVMR0lV
+TTELMAkGA1UEBhMCQkUwHhcNMTcwOTI4MDg0NjA1WhcNMjcwOTAzMTQxNTUwWjB4
+MRMwEQYDVQQDDApDU0NBX0ZBX0JFMTcwNQYDVQQLDC5GRURFUkFMIFBVQkxJQyBT
+RVJWSUNFIEZPUkVJR04gQUZGQUlSUyBCRUxHSVVNMRswGQYDVQQKDBJLSU5HRE9N
+IE9GIEJFTEdJVU0xCzAJBgNVBAYTAkJFMIIBMzCB7AYHKoZIzj0CATCB4AIBATAs
+BgcqhkjOPQEBAiEA/////wAAAAEAAAAAAAAAAAAAAAD///////////////8wRAQg
+/////wAAAAEAAAAAAAAAAAAAAAD///////////////wEIFrGNdiqOpPns+u9VXaY
+hrxlHQawzFOw9jvOPD4n0mBLBEEEaxfR8uEsQkf4vOblY6RA8ncDfYEt6zOg9KE5
+RdiYwpZP40Li/hp/m47n60p8D54WK84zV2sxXs7LtkBoN79R9QIhAP////8AAAAA
+//////////+85vqtpxeehPO5ysL8YyVRAgEBA0IABOqyo3sbzVzJZbdq2ZIo6aH9
+Yk0dbQdprZw2YvzqO2xeNOSr159NSsScfC2nu0THQh99Dq0vga+75oIWfOU049mj
+ggFeMIIBWjAdBgNVHQ4EFgQUWNpQdTBhwLE6FYkdTu+AqYVPy3QwEgYDVR0TAQH/
+BAgwBgEB/wIBADAfBgNVHSMEGDAWgBQJRnLSHson2Qv8QEtfTXBCA9mAbzA2BgNV
+HRIELzAtgRljc2NhLXBhc3NAZGlwbG9iZWwuZmVkLmJlpBAwDjEMMAoGA1UEBwwD
+QkVMMCsGA1UdEAQkMCKADzIwMTcwOTI4MDg0NjA1WoEPMjAyMzAxMjYwODQ2MDVa
+MBEGA1UdIAQKMAgwBgYEVR0gADA1BgNVHR8ELjAsMCqgKKAmhiRodHRwOi8vY3Nj
+YS1wYXNzLmJlbGdpdW0uYmUvY3NjYS5jcmwwDgYDVR0PAQH/BAQDAgEGMDYGA1Ud
+EQQvMC2BGWNzY2EtcGFzc0BkaXBsb2JlbC5mZWQuYmWkEDAOMQwwCgYDVQQHDANC
+RUwwDQYHZ4EIAQEGAQQCBQAwCgYIKoZIzj0EAwIDSQAwRgIhANV9bbZzHJefc7Tw
+NDzDGM+JRRjOJZsXb/uVg6voMPC6AiEAqQN/WMSTIvoL1V0Han8YnHByu9Atgl/s
+Vl2Z74j2mjk=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEPjCCA+SgAwIBAgIEXO5uNjAKBggqhkjOPQQDAjBkMQswCQYDVQQGEwJCSjEN
+MAsGA1UECgwER09VVjENMAsGA1UECwwEQU5JUDEiMCAGA1UECwwZQ2VydGlmaWNh
+dGlvbiBBdXRob3JpdGllczETMBEGA1UEAwwKQ1NDQS1CZW5pbjAeFw0xOTA1Mjkx
+MTA0MTdaFw0zNDEyMjkxMTM0MTdaMGQxCzAJBgNVBAYTAkJKMQ0wCwYDVQQKDARH
+T1VWMQ0wCwYDVQQLDARBTklQMSIwIAYDVQQLDBlDZXJ0aWZpY2F0aW9uIEF1dGhv
+cml0aWVzMRMwEQYDVQQDDApDU0NBLUJlbmluMIIBSzCCAQMGByqGSM49AgEwgfcC
+AQEwLAYHKoZIzj0BAQIhAP////8AAAABAAAAAAAAAAAAAAAA////////////////
+MFsEIP////8AAAABAAAAAAAAAAAAAAAA///////////////8BCBaxjXYqjqT57Pr
+vVV2mIa8ZR0GsMxTsPY7zjw+J9JgSwMVAMSdNgiG5wSTamZ44ROdJreBn36QBEEE
+axfR8uEsQkf4vOblY6RA8ncDfYEt6zOg9KE5RdiYwpZP40Li/hp/m47n60p8D54W
+K84zV2sxXs7LtkBoN79R9QIhAP////8AAAAA//////////+85vqtpxeehPO5ysL8
+YyVRAgEBA0IABBy/zUG3Ib3Ar2tw11z+UdZmK1vVatINb3dR4LeHkGRXbRkUlxfj
+3Dt3dlU80UfYUwMbnCOcwqeisULW1h3hqIKjggGOMIIBijAtBgNVHRIEJjAkpBAw
+DjEMMAoGA1UEBwwDQkVOghBwa2ktYW5pcC5nb3V2LmJqMC0GA1UdEQQmMCSkEDAO
+MQwwCgYDVQQHDANCRU6CEHBraS1hbmlwLmdvdXYuYmowDgYDVR0PAQH/BAQDAgEG
+MBIGA1UdEwEB/wQIMAYBAf8CAQAwgZgGA1UdHwSBkDCBjTCBiqCBh6CBhIYqaHR0
+cHM6Ly9wa2Rkb3dubG9hZDEuaWNhby5pbnQvQ1JMcy9CRU4uY3JshipodHRwczov
+L3BrZGRvd25sb2FkMi5pY2FvLmludC9DUkxzL0JFTi5jcmyGKmh0dHA6Ly9wa2kt
+YW5pcC5nb3V2LmJqL0NSTHMvQmVuaW5DU0NBLmNybDArBgNVHRAEJDAigA8yMDE5
+MDUyOTExMDQxN1qBDzIwMjQwNTI5MDg0NjQ4WjAfBgNVHSMEGDAWgBRQBs6ZH/vV
+shJaIM9clNm5eMPcBTAdBgNVHQ4EFgQUUAbOmR/71bISWiDPXJTZuXjD3AUwCgYI
+KoZIzj0EAwIDSAAwRQIgWdVqzQ27iRqXiqxZX1suxW8pOmJrSuFOcmNlPNuuUycC
+IQDxFxpc1I4cVXTYjkrUhvhYaf+n7v/AwlZ6Cm+EurCA2A==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEPzCCA8SgAwIBAgICBH8wDAYIKoZIzj0EAwMFADA/MQswCQYDVQQGEwJBVDEL
+MAkGA1UECgwCR1YxDDAKBgNVBAsMA0JNSTEVMBMGA1UEAwwMQ1NDQS1BVVNUUklB
+MB4XDTE5MDkwMjA3MTM0NFoXDTMwMDEwNTA4NTMyOVowPzELMAkGA1UEBhMCQVQx
+CzAJBgNVBAoMAkdWMQwwCgYDVQQLDANCTUkxFTATBgNVBAMMDENTQ0EtQVVTVFJJ
+QTCCAbUwggFNBgcqhkjOPQIBMIIBQAIBATA8BgcqhkjOPQEBAjEAjLkegqM4bSgP
+XW9+UOZB3xUvcQntVFa0ErHaGX+3ESOs06cpkB0acYdHABMxB+xTMGQEMHvDgsY9
+jBUMPHIICs4Fr6DCvqKOT7InhxORZe+6kfkPiqWBSlA61OsEqMfdIs4oJgQwBKjH
+3SLOKCaLObVUFvBEfC+3feEH3NKmLogOpT7rYtV8tDkCldvJlDq3hpb6UEwRBGEE
+HRxk8GjPRf+ipjqBt8E/a4hHo+d+8U/j23/K/gy9EOjoJuA0NtZGqu+HsuJH1K8e
+ir4ddSD5wqRcseuOlc/VUmK3Cyn+7Fhk4ZwFT/mRKSgORkYhd5GBEUKCA0EmPFMV
+AjEAjLkegqM4bSgPXW9+UOZB3xUvcQntVFazHxZubKwEJafPOrava3/DEDuIMgLp
+BGVlAgEBA2IABEPDxgJnFuCqMAs7GTPoWmOawYNIjCNezTxT6rAbkbbQxt4hhwse
+qS4sr4qXAJbPgoxeyxB4LFuWl2cqHlHbZIg+PsSq4jAC3dxxdsfplDk+PCBtz1E3
+EKgsotcK5S1jbaOCAU4wggFKMBoGA1UdEAQTMBGBDzIwMjQxMjA5MDcxMzQ0WjAO
+BgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFCaSx+OYq/vjUZLT8m6aMX0f7VO9MD4G
+A1UdHwQ3MDUwM6AxoC+GLWh0dHA6Ly93d3cuYm1pLmd2LmF0L2NzY2EvY3JsL0NT
+Q0FBVVNUUklBLmNybDAWBgNVHSAEDzANMAsGCSooAAoBAgEBATASBgNVHRMBAf8E
+CDAGAQH/AgEAMDcGA1UdEgQwMC6kEDAOMQwwCgYDVQQHDANBVVSGGmh0dHA6Ly93
+d3cuYm1pLmd2LmF0L2NzY2EvMDcGA1UdEQQwMC6kEDAOMQwwCgYDVQQHDANBVVSG
+Gmh0dHA6Ly93d3cuYm1pLmd2LmF0L2NzY2EvMB8GA1UdIwQYMBaAFP+N6oavGO7l
+i6LWuoz6qzmhaa9bMAwGCCqGSM49BAMDBQADZwAwZAIwYEg6Bzva7SUs7jMyI7HC
+mRw6oHbFKZeleZQgo26O0KUpn9p2S1y1UxkaTmeM1yk1AjBJpc2c12bt2VPbM/GY
+/twUAD9bgo+eSo7jFphllNIfTrchqBp8mxU6cIjkYDVYBWQ=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEjTCCBBSgAwIBAgIBKDAKBggqhkjOPQQDAzBXMQswCQYDVQQGEwJMVjEkMCIG
+A1UECgwbTmF0aW9uYWwgU2VjdXJpdHkgQXV0aG9yaXR5MRQwEgYDVQQDDAtDU0NB
+IExhdHZpYTEMMAoGA1UEBRMDMDA2MB4XDTE5MDczMTA4MDYwN1oXDTI5MTAxOTA3
+MDg0N1owVzELMAkGA1UEBhMCTFYxJDAiBgNVBAoMG05hdGlvbmFsIFNlY3VyaXR5
+IEF1dGhvcml0eTEUMBIGA1UEAwwLQ1NDQSBMYXR2aWExDDAKBgNVBAUTAzAwNzCC
+AbUwggFNBgcqhkjOPQIBMIIBQAIBATA8BgcqhkjOPQEBAjEAjLkegqM4bSgPXW9+
+UOZB3xUvcQntVFa0ErHaGX+3ESOs06cpkB0acYdHABMxB+xTMGQEMHvDgsY9jBUM
+PHIICs4Fr6DCvqKOT7InhxORZe+6kfkPiqWBSlA61OsEqMfdIs4oJgQwBKjH3SLO
+KCaLObVUFvBEfC+3feEH3NKmLogOpT7rYtV8tDkCldvJlDq3hpb6UEwRBGEEHRxk
+8GjPRf+ipjqBt8E/a4hHo+d+8U/j23/K/gy9EOjoJuA0NtZGqu+HsuJH1K8eir4d
+dSD5wqRcseuOlc/VUmK3Cyn+7Fhk4ZwFT/mRKSgORkYhd5GBEUKCA0EmPFMVAjEA
+jLkegqM4bSgPXW9+UOZB3xUvcQntVFazHxZubKwEJafPOrava3/DEDuIMgLpBGVl
+AgEBA2IABIYx+qLf5HTBwPFyHP9594d8Cmn5TflGdnG8tWRXW9ZN+jsZx9HGlWbO
+Q2mNSpRUBmnig1e+BydH8ZS7MgH/G6HtINanjJj5YDtQC1RKuwYsXvD8sfQ9NwEE
+lxWrq4QdxqOCAXEwggFtMC0GA1UdEgQmMCSkEDAOMQwwCgYDVQQHDANMVkGBEG5w
+a2RAcG1scC5nb3YubHYwLQYDVR0RBCYwJKQQMA4xDDAKBgNVBAcMA0xWQYEQbnBr
+ZEBwbWxwLmdvdi5sdjBtBgNVHR8EZjBkMDCgLqAshipodHRwczovL3BrZGRvd25s
+b2FkMS5pY2FvLmludC9DUkxzL0xWQS5jcmwwMKAuoCyGKmh0dHBzOi8vcGtkZG93
+bmxvYWQyLmljYW8uaW50L0NSTHMvTFZBLmNybDAOBgNVHQ8BAf8EBAMCAQYwHwYD
+VR0jBBgwFoAUlmONFEg6fgGrq0DOgt2bdW9GcZQwEgYDVR0TAQH/BAgwBgEB/wIB
+ADANBgdngQgBAQYBBAIFADArBgNVHRAEJDAigA8yMDE5MDczMTA4MDYwN1qBDzIw
+MjIwNzMxMDgwNjA3WjAdBgNVHQ4EFgQUxMHh4QQNxPsNB04U04OhmODZsmkwCgYI
+KoZIzj0EAwMDZwAwZAIwaPO5seyUk1vWTDoWp03T5WblAnAmnincRNZWJhlOtwlp
+4x9vBCjuaC+qgBx7exBRAjAJmxV5K36mDvddoSYKAsmwXw82EyJNzxIr7z48oM8B
+sG+QEPM6efpR1JiDqBUckOA=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEjTCCBBSgAwIBAgIBNzAKBggqhkjOPQQDAzBXMQswCQYDVQQGEwJMVjEkMCIG
+A1UECgwbTmF0aW9uYWwgU2VjdXJpdHkgQXV0aG9yaXR5MRQwEgYDVQQDDAtDU0NB
+IExhdHZpYTEMMAoGA1UEBRMDMDA2MB4XDTIwMDYyOTEzNTczNFoXDTI5MTAxOTA3
+MDgwMFowVzELMAkGA1UEBhMCTFYxJDAiBgNVBAoMG05hdGlvbmFsIFNlY3VyaXR5
+IEF1dGhvcml0eTEUMBIGA1UEAwwLQ1NDQSBMYXR2aWExDDAKBgNVBAUTAzAwODCC
+AbUwggFNBgcqhkjOPQIBMIIBQAIBATA8BgcqhkjOPQEBAjEAjLkegqM4bSgPXW9+
+UOZB3xUvcQntVFa0ErHaGX+3ESOs06cpkB0acYdHABMxB+xTMGQEMHvDgsY9jBUM
+PHIICs4Fr6DCvqKOT7InhxORZe+6kfkPiqWBSlA61OsEqMfdIs4oJgQwBKjH3SLO
+KCaLObVUFvBEfC+3feEH3NKmLogOpT7rYtV8tDkCldvJlDq3hpb6UEwRBGEEHRxk
+8GjPRf+ipjqBt8E/a4hHo+d+8U/j23/K/gy9EOjoJuA0NtZGqu+HsuJH1K8eir4d
+dSD5wqRcseuOlc/VUmK3Cyn+7Fhk4ZwFT/mRKSgORkYhd5GBEUKCA0EmPFMVAjEA
+jLkegqM4bSgPXW9+UOZB3xUvcQntVFazHxZubKwEJafPOrava3/DEDuIMgLpBGVl
+AgEBA2IABGX0imoF0qGn8Dig3JCdVyAj5C4RljjkgJdDYYX29GtAB8qBzpcNZ55B
+V0rUciPngg1WC+e72lpwgfcpwPUw7EBT+Emt1Wi78wBHUVMn0mSrr4Z7Nch9JKH4
+7T3AOROMCqOCAXEwggFtMB8GA1UdIwQYMBaAFJZjjRRIOn4Bq6tAzoLdm3VvRnGU
+MBIGA1UdEwEB/wQIMAYBAf8CAQAwDQYHZ4EIAQEGAQQCBQAwKwYDVR0QBCQwIoAP
+MjAyMDA2MjkxMzQ1NTlagQ8yMDIzMDYyOTEzNDU1OVowHQYDVR0OBBYEFLcnSNHj
+UGL39r1bLfQ+uMy4YB6gMC0GA1UdEgQmMCSkEDAOMQwwCgYDVQQHDANMVkGBEG5w
+a2RAcG1scC5nb3YubHYwLQYDVR0RBCYwJKQQMA4xDDAKBgNVBAcMA0xWQYEQbnBr
+ZEBwbWxwLmdvdi5sdjBtBgNVHR8EZjBkMDCgLqAshipodHRwczovL3BrZGRvd25s
+b2FkMS5pY2FvLmludC9DUkxzL0xWQS5jcmwwMKAuoCyGKmh0dHBzOi8vcGtkZG93
+bmxvYWQyLmljYW8uaW50L0NSTHMvTFZBLmNybDAOBgNVHQ8BAf8EBAMCAQYwCgYI
+KoZIzj0EAwMDZwAwZAIwO5YEWfLMGeGfRPzPVKDkJYE7EtRRepr4nAzx0I63DbFQ
+qTdX+C0xYAVL0jMeFvmjAjBHF+89jWOOQsnzGm0tqpY6ryfnBz9EHqXuRsBWALGi
++Qje++fWP0OwFqqn/FnYbUA=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEoTCCBCegAwIBAgIBTjAKBggqhkjOPQQDAzBPMQswCQYDVQQGEwJERTENMAsG
+A1UECgwEYnVuZDEMMAoGA1UECwwDYnNpMQwwCgYDVQQFEwMxMDAxFTATBgNVBAMM
+DGNzY2EtZ2VybWFueTAeFw0xMzExMTExMzE4MDlaFw0yNDA3MTcyMzU5NTlaME8x
+CzAJBgNVBAYTAkRFMQ0wCwYDVQQKDARidW5kMQwwCgYDVQQLDANic2kxDDAKBgNV
+BAUTAzEwMTEVMBMGA1UEAwwMY3NjYS1nZXJtYW55MIIBtTCCAU0GByqGSM49AgEw
+ggFAAgEBMDwGByqGSM49AQECMQCMuR6CozhtKA9db35Q5kHfFS9xCe1UVrQSsdoZ
+f7cRI6zTpymQHRpxh0cAEzEH7FMwZAQwe8OCxj2MFQw8cggKzgWvoMK+oo5PsieH
+E5Fl77qR+Q+KpYFKUDrU6wSox90izigmBDAEqMfdIs4oJos5tVQW8ER8L7d94Qfc
+0qYuiA6lPuti1Xy0OQKV28mUOreGlvpQTBEEYQQdHGTwaM9F/6KmOoG3wT9riEej
+537xT+Pbf8r+DL0Q6Ogm4DQ21kaq74ey4kfUrx6Kvh11IPnCpFyx646Vz9VSYrcL
+Kf7sWGThnAVP+ZEpKA5GRiF3kYERQoIDQSY8UxUCMQCMuR6CozhtKA9db35Q5kHf
+FS9xCe1UVrMfFm5srAQlp886tq9rf8MQO4gyAukEZWUCAQEDYgAEa/vuxp3nLGam
+aOzhqvGiZKPJsoj7MtBZ6Sw+XVvU17UBSHj0R5wTyIPQVFVc2Q7NE27EzDRkic3W
+TmlD8zOGSrnf5ELcv49pwZ5x0DX/MX/AMvwhVcrqpltJPRkdOZrAo4IBlDCCAZAw
+HwYDVR0jBBgwFoAU43auZhL+eoHmcixROFvYg0kPw6IwHQYDVR0OBBYEFMF7qRX3
+XN3Saz1gmiNU3hLuPw7GMA4GA1UdDwEB/wQEAwIBBjArBgNVHRAEJDAigA8yMDEz
+MTExMTEzMTgwOVqBDzIwMTYxMTExMjM1OTU5WjAWBgNVHSAEDzANMAsGCQQAfwAH
+AwEBATBRBgNVHREESjBIgRhjc2NhLWdlcm1hbnlAYnNpLmJ1bmQuZGWGHGh0dHBz
+Oi8vd3d3LmJzaS5idW5kLmRlL2NzY2GkDjAMMQowCAYDVQQHDAFEMFEGA1UdEgRK
+MEiBGGNzY2EtZ2VybWFueUBic2kuYnVuZC5kZYYcaHR0cHM6Ly93d3cuYnNpLmJ1
+bmQuZGUvY3NjYaQOMAwxCjAIBgNVBAcMAUQwEgYDVR0TAQH/BAgwBgEB/wIBADAw
+BgNVHR8EKTAnMCWgI6Ahhh9odHRwOi8vd3d3LmJzaS5idW5kLmRlL2NzY2FfY3Js
+MA0GB2eBCAEBBgEEAgUAMAoGCCqGSM49BAMDA2gAMGUCMBu3r7p0/BeVgrxUwDyZ
+5NeAcSIIGaKGnrNPFUcErT59oOQjfdvFmGVo5X8hOEG4EwIxAIUjMstIcs/7xGyi
+6AWoVfMXNVo3qdIZCa7R9Qn82qb1ypnzy02dp+jWEyru6Xnkew==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEoTCCBCigAwIBAgICAJ0wCgYIKoZIzj0EAwMwTzELMAkGA1UEBhMCREUxDTAL
+BgNVBAoMBGJ1bmQxDDAKBgNVBAsMA2JzaTEMMAoGA1UEBRMDMTAxMRUwEwYDVQQD
+DAxjc2NhLWdlcm1hbnkwHhcNMTYwODIzMTEyMzM3WhcNMjcwNDMwMjM1OTU5WjBP
+MQswCQYDVQQGEwJERTENMAsGA1UECgwEYnVuZDEMMAoGA1UECwwDYnNpMQwwCgYD
+VQQFEwMxMDMxFTATBgNVBAMMDGNzY2EtZ2VybWFueTCCAbUwggFNBgcqhkjOPQIB
+MIIBQAIBATA8BgcqhkjOPQEBAjEAjLkegqM4bSgPXW9+UOZB3xUvcQntVFa0ErHa
+GX+3ESOs06cpkB0acYdHABMxB+xTMGQEMHvDgsY9jBUMPHIICs4Fr6DCvqKOT7In
+hxORZe+6kfkPiqWBSlA61OsEqMfdIs4oJgQwBKjH3SLOKCaLObVUFvBEfC+3feEH
+3NKmLogOpT7rYtV8tDkCldvJlDq3hpb6UEwRBGEEHRxk8GjPRf+ipjqBt8E/a4hH
+o+d+8U/j23/K/gy9EOjoJuA0NtZGqu+HsuJH1K8eir4ddSD5wqRcseuOlc/VUmK3
+Cyn+7Fhk4ZwFT/mRKSgORkYhd5GBEUKCA0EmPFMVAjEAjLkegqM4bSgPXW9+UOZB
+3xUvcQntVFazHxZubKwEJafPOrava3/DEDuIMgLpBGVlAgEBA2IABBIQYNt+G0f9
+fVZYErtxzRVfYo7OAAhV/FsztJ69ml1+dq0glVWiSQO/GeXKlkdzdV7R8CaRNk5j
+UPbkBhYAxsTMP2dEwRSLcE9AaMRulNgDwfypesmAcIozJJNxEuXSQ6OCAZQwggGQ
+MB8GA1UdIwQYMBaAFMF7qRX3XN3Saz1gmiNU3hLuPw7GMB0GA1UdDgQWBBQbx1Cx
+R6dV+i8leSBuVdIv4uQnnjAOBgNVHQ8BAf8EBAMCAQYwKwYDVR0QBCQwIoAPMjAx
+NjA4MjMxMTIzMzdagQ8yMDE5MDgyMzIzNTk1OVowFgYDVR0gBA8wDTALBgkEAH8A
+BwMBAQEwUQYDVR0RBEowSIEYY3NjYS1nZXJtYW55QGJzaS5idW5kLmRlhhxodHRw
+czovL3d3dy5ic2kuYnVuZC5kZS9jc2NhpA4wDDEKMAgGA1UEBwwBRDBRBgNVHRIE
+SjBIgRhjc2NhLWdlcm1hbnlAYnNpLmJ1bmQuZGWGHGh0dHBzOi8vd3d3LmJzaS5i
+dW5kLmRlL2NzY2GkDjAMMQowCAYDVQQHDAFEMBIGA1UdEwEB/wQIMAYBAf8CAQAw
+MAYDVR0fBCkwJzAloCOgIYYfaHR0cDovL3d3dy5ic2kuYnVuZC5kZS9jc2NhX2Ny
+bDANBgdngQgBAQYBBAIFADAKBggqhkjOPQQDAwNnADBkAjAdg3Ag/sof5SAIp1PF
+ud+ME8rgZOtEhIbASD9oXKY+I03arKBX95czW6rxq6542AcCMFGvjsZ4ErbBJrFZ
+a8aISkNXbju8o6JwhzHFQhzfrSblyQF5B6/zn3dtgLww+T679Q==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEyTCCBE+gAwIBAgIESS7/fTAKBggqhkjOPQQDAjBBMQswCQYDVQQGEwJHQjEO
+MAwGA1UEChMFVUtLUEExIjAgBgNVBAMTGUNvdW50cnkgU2lnbmluZyBBdXRob3Jp
+dHkwHhcNMjEwOTE3MTIxNzU4WhcNMzgwMTE3MTI0NzU4WjBBMQswCQYDVQQGEwJH
+QjEOMAwGA1UEChMFVUtLUEExIjAgBgNVBAMTGUNvdW50cnkgU2lnbmluZyBBdXRo
+b3JpdHkwggHMMIIBZAYHKoZIzj0CATCCAVcCAQEwPAYHKoZIzj0BAQIxAP//////
+///////////////////////////////////+/////wAAAAAAAAAA/////zB7BDD/
+/////////////////////////////////////////v////8AAAAAAAAAAP////wE
+MLMxL6fiPufkmI4Fa+P4LRkYHZxu/oFBEgMUCI9QE4daxlY5jYou0Z0qhcjt0+wq
+7wMVAKM1kmqjGaJ6HQCJamdzpIJ6zaxzBGEEqofKIr6LBTeOscce8yCtdG4dO2KL
+p5uYWfdB4IJUKjhVAvJdv1UpbDpUXjhydgq3NhfeSpYmLG9dnpi/kpLcKfj0Hb0o
+mhR86doxE7XwuMAKYLHOHX6BnXpDHXyQ6g5fAjEA////////////////////////
+////////x2NNgfQ3Ld9YGg2ySLCneuzsGWrMxSlzAgEBA2IABFaTH9fUKULuySKY
+1ykTcc26wpxgIwyfY10BCTmrf49dl3zP6QvXUoyvpTr61iJb9h4q9NIIMa7R5rV4
+zLAOFTQYL20e5r9ST71ivQVtDVOMJOt/KkNuM24TnwCgcrC6GqOCAb4wggG6MA4G
+A1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/AgEAMGMGA1UdEQRcMFqkEDAO
+MQwwCgYDVQQHEwNHQlKBH2RvY3VtZW50LnRlY2hub2xvZ3lAaG1wby5nb3YudWuB
+JWRvY3VtZW50LnRlY2hub2xvZ3lAaG9tZW9mZmljZS5nb3YudWswYwYDVR0SBFww
+WqQQMA4xDDAKBgNVBAcTA0dCUoEfZG9jdW1lbnQudGVjaG5vbG9neUBobXBvLmdv
+di51a4ElZG9jdW1lbnQudGVjaG5vbG9neUBob21lb2ZmaWNlLmdvdi51azArBgNV
+HRAEJDAigA8yMDIxMDkxNzEyMTc1OFqBDzIwMjYxMDEwMjM1MDIyWjAfBgNVHSME
+GDAWgBTbHRZXx2AjCJsBOeJhPAghNLV8oTAdBgNVHQ4EFgQUSZ5HMCeFIMV8/BGA
+JOFMFWKiSdYwXQYDVR0fBFYwVDBSoFCgToYgaHR0cHM6Ly9obXBvLmdvdi51ay9j
+c2NhL0dCUi5jcmyGKmh0dHBzOi8vcGtkZG93bmxvYWQxLmljYW8uaW50L0NSTHMv
+R0JSLmNybDAKBggqhkjOPQQDAgNoADBlAjEAsKRRRovvMvMRfNEBrYAAEDFUeCXA
+V7ZKU9oFIEtWKIkh7jwEqtinNR1Xr3R/1sSnAjAiKRFY4CVkXMXWr+QwspAHIgmn
+dEQKWMLmfilqnwG25/Ka3SUfh9ZNci+BlfZOjQY=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEzTCCBFSgAwIBAgISESGXOZypVjXyueaFhoukpfPxMAoGCCqGSM49BAMDMEEx
+CzAJBgNVBAYTAkxCMQwwCgYDVQQKDANHT1YxDTALBgNVBAsMBEdER1MxFTATBgNV
+BAMMDExFQkFOT04gQ1NDQTAeFw0xODA3MTcwMDAwMDBaFw0zMzEwMTcwMDAwMDBa
+MEExCzAJBgNVBAYTAkxCMQwwCgYDVQQKDANHT1YxDTALBgNVBAsMBEdER1MxFTAT
+BgNVBAMMDExFQkFOT04gQ1NDQTCCAbUwggFNBgcqhkjOPQIBMIIBQAIBATA8Bgcq
+hkjOPQEBAjEAjLkegqM4bSgPXW9+UOZB3xUvcQntVFa0ErHaGX+3ESOs06cpkB0a
+cYdHABMxB+xTMGQEMHvDgsY9jBUMPHIICs4Fr6DCvqKOT7InhxORZe+6kfkPiqWB
+SlA61OsEqMfdIs4oJgQwBKjH3SLOKCaLObVUFvBEfC+3feEH3NKmLogOpT7rYtV8
+tDkCldvJlDq3hpb6UEwRBGEEHRxk8GjPRf+ipjqBt8E/a4hHo+d+8U/j23/K/gy9
+EOjoJuA0NtZGqu+HsuJH1K8eir4ddSD5wqRcseuOlc/VUmK3Cyn+7Fhk4ZwFT/mR
+KSgORkYhd5GBEUKCA0EmPFMVAjEAjLkegqM4bSgPXW9+UOZB3xUvcQntVFazHxZu
+bKwEJafPOrava3/DEDuIMgLpBGVlAgEBA2IABCEQdj6vj7u/Is1woNHeBAL2PlQy
++z+M/jSKJc03q2EJwGX+ZMN6GgKgWZ9HgGR2/2QflcA5mfrkUjVLvyVbNDmtpHRT
+ty4pOGl1bHni+AHxKiou1pTglJubmw/zTx0XfaOCAcwwggHIMA4GA1UdDwEB/wQE
+AwIBBjASBgNVHRMBAf8ECDAGAQH/AgEAMCsGA1UdEAQkMCKADzIwMTgwNzE3MDAw
+MDAwWoEPMjAyMzA3MTcwMDAwMDBaMGEGA1UdIARaMFgwVgYHZ4EQAQFlCzBLMEkG
+CCsGAQUFBwIBFj1odHRwczovL3d3dy5nZW5lcmFsLXNlY3VyaXR5Lmdvdi5sYi9Q
+S0kvQ1AvTEVCQU5PTkNTQ0EtQ1AucGRmMEEGA1UdEQQ6MDiBJGxlYmFub24tY3Nj
+YUBnZW5lcmFsLXNlY3VyaXR5Lmdvdi5sYqQQMA4xDDAKBgNVBAcTA0xCTjBBBgNV
+HRIEOjA4gSRsZWJhbm9uLWNzY2FAZ2VuZXJhbC1zZWN1cml0eS5nb3YubGKkEDAO
+MQwwCgYDVQQHEwNMQk4wTAYDVR0fBEUwQzBBoD+gPYY7aHR0cHM6Ly93d3cuZ2Vu
+ZXJhbC1zZWN1cml0eS5nb3YubGIvUEtJL0NSTC9MRUJBTk9OQ1NDQS5jcmwwHQYD
+VR0OBBYEFGwXIRwgkBRk0764M6qDxTjCp1e+MB8GA1UdIwQYMBaAFAGw21FFhwlp
+/SXjbK9G+hg8RNKsMAoGCCqGSM49BAMDA2cAMGQCMA7u86sPU+AenojCLPyVTXIb
+AocVf/Ynfd0w5oRQ6CksfwhgWA6r7kZUivvyZI+07QIwYtmTq23kgd71qP2u9LRf
+jPfkk2VWchkFVqsDNAq28GbcofgxCPX0dHwzRbFbrnRs
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIE/jCCA2agAwIBAgIIBhfXFNnkRx0wDQYJKoZIhvcNAQELBQAwPzELMAkGA1UE
+BhMCQVQxCzAJBgNVBAoMAkdWMQwwCgYDVQQLDANCTUkxFTATBgNVBAMMDENTQ0Et
+QVVTVFJJQTAeFw0xMTA0MTUwODUwNDRaFw0yNjA3MTkwODUwNDRaMD8xCzAJBgNV
+BAYTAkFUMQswCQYDVQQKDAJHVjEMMAoGA1UECwwDQk1JMRUwEwYDVQQDDAxDU0NB
+LUFVU1RSSUEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDSE9FIBFmo
+J1NPASbZ8X/6vPWynKGDAx4fTZhm1dJ4tUGlqDwZDqB6Xf9r6cJfynMw7j3+Evll
+XWxkJCYyVUj0Nv9+uXnXITj0k+PVYx4UCf3ebacOfPTpw2aZBaSKI1Ykh9ReijYB
+pKliOWRZpTPeqgPuKWyz0n0N05es5Zf32865wMPazG3gINPU+cHCIM2nTj2enFrA
+pwcrRMz8iwfG+0STDcQ9uZ1f38oPPQB/3eKSvfiS6Z63MOZSQy1eZNcpfkfDEfeR
+exT2DjHBUohVyanQJyRu2qqgU+UWtZijdGWddZ95pPi3MWs/ybUalfcd0rlVndy7
+bmltYvOOCatiXCyHiE4b2JtLun9GuNDknDjRQlhKBL2IO/luyBP0Vht1j6FNHzE2
+Dz4SMKwOWOCB1vvamLESRXkPDwEX7hZi3jLAD44872qrpBPJ3Ugz6TRSCdyEPzjU
+ZM14qB/4Z0lok5cfjMQG6aFSkAQX/CMoO4aymAVbjArhJ0aBWZh23ZC7qPrhzT8C
+a73/7MZX44WnDCI+v2eM4gm05957To6rTgYm2J/Etu0WvxYctOFvvLtlUUQZzVcL
+FJmwDskkOWx4LJjHVDi4VzAF3vjYSBfNcroPyznNZo1Wth0cLAFI843sRrlpqOUG
++d8lRe/ji4cNXqPTELafIjK8uY2q5B2jnwIDAJTxo34wfDAdBgNVHQ4EFgQUH+FX
+Lps1EhNjpQ/uPiziwdGHqN0wEgYDVR0TAQH/BAgwBgEB/wIBADAfBgNVHSMEGDAW
+gBT5fcYFy+GDaxtwf01YApU7AXt1dTAWBgNVHSAEDzANMAsGCSooAAoBAgEBATAO
+BgNVHQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQELBQADggGBAL+69x0vQqHTEPqZs7n7
+fWfWN6Uisk6sHkl+zdxbY10PCgtXAHbRY9tSYFjb8lzzwwUXx6J1tW19LpQKcRqS
+ZEHRxLlvedQ8daRGDjXGo8/IbEq4py58DuyAt9aYvqQMQRvrMzQFPhcFf3XzlUAo
+g2fUQg9HsPiEbeG7Jl6lrM20C6SA/Gj4WrVu1BIzQ3VHPrKv2BMedCovHp8Dx4EN
+gvZMNQGx2CeT9Ku4wl2SoY3LBFjIdLdyhJyL4ztrGCccd9Yza7qU/+tZCsUIXSjJ
+0iwbs8KFiyvJHHlBsH3y//LirlUbg4h05JnIDW1jFd7+gCeV2u4UWIC43cUWY+ms
+trpE7XZJ6D/JcpaZHSeJY0ckQShORmr+cdq4KhMr+Jeb73D+zTDEo1StqKf/F7Xn
+N+2Ljd01qL6Z58nx36TOh4mw2f3tOxz7otspH87yxz46jNtYwj4OpYksSw13cCFG
+DH9sKk6nO5yLvCuEzsHaJwvasspMilBZ0+iCEq2EgxoX4A==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFFTCCA0mgAwIBAgIBdTBBBgkqhkiG9w0BAQowNKAPMA0GCWCGSAFlAwQCAQUA
+oRwwGgYJKoZIhvcNAQEIMA0GCWCGSAFlAwQCAQUAogMCASAwVzELMAkGA1UEBhMC
+Q1oxFzAVBgNVBAoTDkN6ZWNoIFJlcHVibGljMR0wGwYDVQQLExRNaW5pc3RyeSBv
+ZiBJbnRlcmlvcjEQMA4GA1UEAxQHQ1NDQV9DWjAeFw0xMTAzMjUwMDAwMDBaFw0y
+NDA0MTMyMzU5NTlaMFcxCzAJBgNVBAYTAkNaMRcwFQYDVQQKDA5DemVjaCBSZXB1
+YmxpYzEdMBsGA1UECwwUTWluaXN0cnkgb2YgSW50ZXJpb3IxEDAOBgNVBAMMB0NT
+Q0FfQ1owggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQCdFhq+ScQXepAA
+0kp0IwF/nEv+Md3Wx41Y6WRJkTVVyU6CFPlvr/F6XLGX/ILJtM8QL97CgojDVQbE
+ccNxUsZ+yjtB4n52ttWYLBN5nktJksP2aBVMu1fqoyTqBhaf0JtkpQjWKNVJYbUH
+k2pXkzGUJ+YHG04jOEYIKNclY82f1Ho1Wd7di4gZ1LCBRTzIU9JVPEMOZdmLx1qQ
+InOWf8deZ4Gmkj5UqzXt7vGQF/TbIedhmfnbulvyHN3UEDMZgVgzkF2fIOaBwu5s
+kfo8e08/J155hZIJtUjXk/moLF8U/4ETo7qER1EkoJ9KIRIvoPwPk2QAI4JP0Hd6
+GgUMEsz0dmTxKHcJZAWXcDaKcwTrG7/xhPTAffdOZnTnOpYQPcKmjUvogqY839VQ
+mwYyo+s51tVrAIe2YcdHhIdBY5SLOhHsDNadpRrBYIa8vzUgtfUH50US7dZuwUu6
+WbUiQu5vmDjvGEUa7F6eehCCf9xXkbPJZoE63t/NJYvHSFa1wDcCAwEAAaOBgzCB
+gDAfBgNVHSMEGDAWgBS3eJcZgIJ4G1kMSun4hLCL9gJAiDAdBgNVHQ4EFgQU66FP
+jzxpitq2EJsSNSjO1GVKCFkwDgYDVR0PAQH/BAQDAgEGMBoGA1UdIAQTMBEwDwYN
+KoFLtxgBAQEBicqZfDASBgNVHRMBAf8ECDAGAQH/AgEAMEEGCSqGSIb3DQEBCjA0
+oA8wDQYJYIZIAWUDBAIBBQChHDAaBgkqhkiG9w0BAQgwDQYJYIZIAWUDBAIBBQCi
+AwIBIAOCAYEAJwAEh4vWuRFX92607tr2WKpnVwFCtVowDkP61k+ESUB26lt/qMsm
+3368BjB0uiSZKUbLJXyCATXNAXMZmcMDq9k4Yu5uUomYmwmyoVZPKGSaNc9rM4Fp
+NOIzD8sYTigj+gOokyUl5b3xcgMXG9q9R35sF/8DcK4xKHQUmbHcZYOE8JGyX7Ej
+eF8bD1dM/d+3ptltKM91GMXdSmav47KXSJH0Ipdm1ZVsvahF6mzi1ZcGlNvwSo5H
+xZEy3xElJ1x/tCPBKijBJxF1fesrjSFmPaHa/XxnynSQpDIDgPriMPjLUkiHLqYi
+nQ5is57fE/IXdlyaOsKnSx0a+2f0iDnvxzI/uxkWO5jcB538vCqFDf7ndgI4SNsO
+/X5s86xCOuox/uLbCoVwSlFRof+fCYTTJHxfbAe3u/xJ1b6eRv8sd3cqLGrc5TwP
+ATBpB+et7915bzTFCPwCtDzycw00ndiFZ/h4Da+8B8ZRuHVAuHpb3QAYCqKp+LEU
+LffonWll3qSD
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFFjCCBJ2gAwIBAgICBCswCgYIKoZIzj0EAwMwTzELMAkGA1UEBhMCREUxDTAL
+BgNVBAoMBGJ1bmQxDDAKBgNVBAsMA2JzaTEMMAoGA1UEBRMDMTAzMRUwEwYDVQQD
+DAxjc2NhLWdlcm1hbnkwHhcNMTkwNTIwMDkzMDU3WhcNMzAwMjIzMjM1OTU5WjBB
+MQswCQYDVQQGEwJERTENMAsGA1UECgwEYnVuZDEMMAoGA1UECwwDYnNpMRUwEwYD
+VQQDDAxjc2NhLWdlcm1hbnkwggI4MIIBrwYHKoZIzj0CATCCAaICAQEwTAYHKoZI
+zj0BAQJBAKrdnbjb6cSLP9TmrjPJ/AfLMI2zs8nSDtZjnMpwMwhxfU2bAJvGaEKu
+zaEq5qOA5iiB/y8tgsaFKKpgVlg6SPMwgYQEQHgwozGLYDuJ4jJxRawjTMWUy92N
+PfkWEKg0QcrqmGO8Le1dWqglOqEKLvHJi5rItX8RF6cr8se558GsTXf8lMoEQD35
+FhCoNEHK6phjvC3tXVqoJTqhCi7xyYuayLV/ERenK/LHuefBrE13/JTK3Ag+Z5hA
+ULdeuuXdKAm9Y4AW9yMEgYEEga7kvdgu2WRaITIunExqk4Xtn3C12RbBtDti7vTQ
+CY7/Ox944tDUjVDRaHuTuX1ffG1QR0BqXmiLNSIJvLn4In3eOF1WYzLswOq/qc94
+Iv3yCfcAJKV7GqAAxVuIH4ERstzeSUpfSF5bykvYiidjrtHKKy+o8FQGeM0eDzrY
+CJICQQCq3Z242+nEiz/U5q4zyfwHyzCNs7PJ0g7WY5zKcDMIcFU+XEFMqSYZQYZh
+GX+sEEcdsdOBCF3a3bWHloKcqQBpAgEBA4GCAAQQRGjMl4riey1IzlZyzAujteaD
+C59q8UZ52ZhCll2ieELm2tQE0tiQ01br2+Xm9r2hNGvV9T3l4n+colDLkjdxFG7D
+WE6n6tJRR+TZX0AKxw2kgwotNWn2RQ4qss5u+eNoN6z7h41XdaIK/oyIPvukyZLH
+p6T0g+p3srFTn+JbjaOCAZQwggGQMB8GA1UdIwQYMBaAFBvHULFHp1X6LyV5IG5V
+0i/i5CeeMB0GA1UdDgQWBBR0GkStS9e2/NW67vEegn5YpZgcJDAOBgNVHQ8BAf8E
+BAMCAQYwKwYDVR0QBCQwIoAPMjAxOTA1MjAwOTMwNTdagQ8yMDIyMDcyMDIzNTk1
+OVowFgYDVR0gBA8wDTALBgkEAH8ABwMBAQEwUQYDVR0RBEowSIEYY3NjYS1nZXJt
+YW55QGJzaS5idW5kLmRlhhxodHRwczovL3d3dy5ic2kuYnVuZC5kZS9jc2NhpA4w
+DDEKMAgGA1UEBwwBRDBRBgNVHRIESjBIgRhjc2NhLWdlcm1hbnlAYnNpLmJ1bmQu
+ZGWGHGh0dHBzOi8vd3d3LmJzaS5idW5kLmRlL2NzY2GkDjAMMQowCAYDVQQHDAFE
+MBIGA1UdEwEB/wQIMAYBAf8CAQAwMAYDVR0fBCkwJzAloCOgIYYfaHR0cDovL3d3
+dy5ic2kuYnVuZC5kZS9jc2NhX2NybDANBgdngQgBAQYBBAIFADAKBggqhkjOPQQD
+AwNnADBkAjA43W+3MPMHeQG3l4DGvV4iaSfpQJDQFaAup6PED6wyTDtnuGQU+7OH
+7FSR4OJ79eUCMGjFQnauizhmTCT5/eqtyXeS0rEu6DoWLtxFGlQxpzyrGrrU11XO
+8rdJxQCK+vydxg==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFGzCCBJ+gAwIBAgICAOQwDAYIKoZIzj0EAwMFADBuMQswCQYDVQQGEwJKUDEc
+MBoGA1UECgwTSmFwYW5lc2UgR292ZXJubWVudDEoMCYGA1UECwwfVGhlIE1pbmlz
+dHJ5IG9mIEZvcmVpZ24gQWZmYWlyczEXMBUGA1UEAwwOZS1wYXNzcG9ydENTQ0Ew
+HhcNMTUwMjIwMDEyODEyWhcNMzEwMjIwMDEyODEyWjBuMQswCQYDVQQGEwJKUDEc
+MBoGA1UECgwTSmFwYW5lc2UgR292ZXJubWVudDEoMCYGA1UECwwfVGhlIE1pbmlz
+dHJ5IG9mIEZvcmVpZ24gQWZmYWlyczEXMBUGA1UEAwwOZS1wYXNzcG9ydENTQ0Ew
+ggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCv9TFZX6x5FLDWolPERHK3
+IGuI8+VxK5MX8DlDcFo/mWb1Uwa1tyjPqbiKk/65aagx+4LFLbdcCOTJNGa6N5jO
+RAORIILvMaYICXmoNe4Wvh3e6Z4BglBbjXGUY+cpU4iJFqpyVWy+9kWMVW6HL0BW
+7WTcO94t+zgADes1W+xJVH8eNeG7iY3VArRfgnx7cWSO8A6PqX8zSqvPMtgyxWDx
+s9ssHF3fLywQEubnhv06lTiGk7IezFvnf3kHb6nHbK6pOAlq/iDBryDYV/iHYJJR
+Zm/7ZZsz7wPkMczgc1FVZRptsUHZVtlnTRJIMMWFOtEq8hPPyRawk6AWmcoiLFsv
+/ZOpmA/r+VCpUrssQ0+THP0JsyY2S/pPa/Smu/dVLr3aE8GQ5WIOvgx50B7jWK4A
+QvFthVVSPBEzyBxgNeJ1KIo5kFEUhLaDb8+RheMfArxSwg3ggxjSL/l50W1kuFSW
+izBOHEGzHbZbzL+tpu3VZFE3zacnO7nokpU7B6SWxdBN11PwZFcIK+KTyVQWr9HP
+33h6XymwIdwUgkhLH5riEtmuYvu6WRXcwVR96JZQhwEwF8Dp4kUmaqz4MGlFMHHc
+6trA+qsjKl4eQ2uit4l+q4ZpEz38o5geBmLgdy7JMM8GVO+60iYD98YPq2wJoqML
+uGKVkzflRKVyjRT513Fe1QIDAQABo4IBXjCCAVowKwYDVR0RBCQwIoEOcGtpQG1v
+ZmEuZ28uanCkEDAOMQwwCgYDVQQHDANKUE4wKwYDVR0SBCQwIoEOcGtpQG1vZmEu
+Z28uanCkEDAOMQwwCgYDVQQHDANKUE4wHQYDVR0OBBYEFEhFjohpJqDQsR0rQi/F
+m0Wb4ex7MB8GA1UdIwQYMBaAFGq08pKCvZZH9v8qAveUTXSel4RjMA4GA1UdDwEB
+/wQEAwIBBjArBgNVHRAEJDAigA8yMDE5MDYxOTA1MTUxOVqBDzIwMzEwMjIwMDEy
+ODEyWjASBgNVHRMBAf8ECDAGAQH/AgEAMG0GA1UdHwRmMGQwMKAuoCyGKmh0dHBz
+Oi8vcGtkZG93bmxvYWQxLmljYW8uaW50L0NSTHMvSlBOLmNybDAwoC6gLIYqaHR0
+cHM6Ly9wa2Rkb3dubG9hZDIuaWNhby5pbnQvQ1JMcy9KUE4uY3JsMAwGCCqGSM49
+BAMDBQADaAAwZQIxAOM9/Wj3pPN62JZFpukQmXaTDat73/SFMEqwZOzs33Wy6fAu
+qDTMu3nkCIlu+pqVYQIwMEnjy962b/1t5bfCan+bovuAIQ+GsOamNUy8B066JePE
+u0XNmxKWc2VbNmcoFNGP
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFHDCCBICgAwIBAgICBIswCgYIKoZIzj0EAwQwQTELMAkGA1UEBhMCREUxDTAL
+BgNVBAoMBGJ1bmQxDDAKBgNVBAsMA2JzaTEVMBMGA1UEAwwMY3NjYS1nZXJtYW55
+MB4XDTIxMTEyMzA2MjQxNVoXDTM2MDIyMzIzNTk1OVowQTELMAkGA1UEBhMCREUx
+DTALBgNVBAoMBGJ1bmQxDDAKBgNVBAsMA2JzaTEVMBMGA1UEAwwMY3NjYS1nZXJt
+YW55MIICODCCAa8GByqGSM49AgEwggGiAgEBMEwGByqGSM49AQECQQCq3Z242+nE
+iz/U5q4zyfwHyzCNs7PJ0g7WY5zKcDMIcX1NmwCbxmhCrs2hKuajgOYogf8vLYLG
+hSiqYFZYOkjzMIGEBEB4MKMxi2A7ieIycUWsI0zFlMvdjT35FhCoNEHK6phjvC3t
+XVqoJTqhCi7xyYuayLV/ERenK/LHuefBrE13/JTKBEA9+RYQqDRByuqYY7wt7V1a
+qCU6oQou8cmLmsi1fxEXpyvyx7nnwaxNd/yUytwIPmeYQFC3Xrrl3SgJvWOAFvcj
+BIGBBIGu5L3YLtlkWiEyLpxMapOF7Z9wtdkWwbQ7Yu700AmO/zsfeOLQ1I1Q0Wh7
+k7l9X3xtUEdAal5oizUiCby5+CJ93jhdVmMy7MDqv6nPeCL98gn3ACSlexqgAMVb
+iB+BEbLc3klKX0heW8pL2IonY67RyisvqPBUBnjNHg862AiSAkEAqt2duNvpxIs/
+1OauM8n8B8swjbOzydIO1mOcynAzCHBVPlxBTKkmGUGGYRl/rBBHHbHTgQhd2t21
+h5aCnKkAaQIBAQOBggAEgZCVbAm4UpgdxSlJ80Y7jvzf5l4+WlHRwNrPJ8deglLM
+CEAVeiGpe9m0yScxKvqK4MocpRX5jMEVD5p2jU1D71VqvNNWS8r1g/U8b0CRgVUU
+bbq1f2ysC6g4AQNF49vHFA2C6jOaV0fUjFPwLbQhh9Mg7U4nXHVQknULBP5yrpej
+ggGFMIIBgTAdBgNVHQ4EFgQUpApfw4CuPlmvGzLWE2rv7sjKNegwDgYDVR0PAQH/
+BAQDAgEGMCsGA1UdEAQkMCKADzIwMjExMTIzMDYyNDE1WoEPMjAyNTAxMjMyMzU5
+NTlaMBYGA1UdIAQPMA0wCwYJBAB/AAcDAQEBMFEGA1UdEQRKMEiBGGNzY2EtZ2Vy
+bWFueUBic2kuYnVuZC5kZYYcaHR0cHM6Ly93d3cuYnNpLmJ1bmQuZGUvY3NjYaQO
+MAwxCjAIBgNVBAcMAUQwUQYDVR0SBEowSIEYY3NjYS1nZXJtYW55QGJzaS5idW5k
+LmRlhhxodHRwczovL3d3dy5ic2kuYnVuZC5kZS9jc2NhpA4wDDEKMAgGA1UEBwwB
+RDASBgNVHRMBAf8ECDAGAQH/AgEAMDAGA1UdHwQpMCcwJaAjoCGGH2h0dHA6Ly93
+d3cuYnNpLmJ1bmQuZGUvY3NjYV9jcmwwHwYDVR0jBBgwFoAUpApfw4CuPlmvGzLW
+E2rv7sjKNegwCgYIKoZIzj0EAwQDgYkAMIGFAkEAkgdFGwJ2ybC/6Rw7P7dZRIn2
+1cNNT/ERSfGTe+zPGo05GSZ7K8uxduK57PakwkCw4dCYPiQqMuDBYNUw22k01QJA
+N/spjC2j75DHCUmuxxEfXu3QpwipNs6rR501faCMdCdio83dLWqlhtaCLrt2LP3L
+Xbc07m1/jsHtNmMFuhrvCw==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFHTCCBICgAwIBAgICBI0wCgYIKoZIzj0EAwQwQTELMAkGA1UEBhMCREUxDTAL
+BgNVBAoMBGJ1bmQxDDAKBgNVBAsMA2JzaTEVMBMGA1UEAwwMY3NjYS1nZXJtYW55
+MB4XDTIxMTEyMzA4NTIzOVoXDTMzMDIyMDIzNTk1OVowQTELMAkGA1UEBhMCREUx
+DTALBgNVBAoMBGJ1bmQxDDAKBgNVBAsMA2JzaTEVMBMGA1UEAwwMY3NjYS1nZXJt
+YW55MIICODCCAa8GByqGSM49AgEwggGiAgEBMEwGByqGSM49AQECQQCq3Z242+nE
+iz/U5q4zyfwHyzCNs7PJ0g7WY5zKcDMIcX1NmwCbxmhCrs2hKuajgOYogf8vLYLG
+hSiqYFZYOkjzMIGEBEB4MKMxi2A7ieIycUWsI0zFlMvdjT35FhCoNEHK6phjvC3t
+XVqoJTqhCi7xyYuayLV/ERenK/LHuefBrE13/JTKBEA9+RYQqDRByuqYY7wt7V1a
+qCU6oQou8cmLmsi1fxEXpyvyx7nnwaxNd/yUytwIPmeYQFC3Xrrl3SgJvWOAFvcj
+BIGBBIGu5L3YLtlkWiEyLpxMapOF7Z9wtdkWwbQ7Yu700AmO/zsfeOLQ1I1Q0Wh7
+k7l9X3xtUEdAal5oizUiCby5+CJ93jhdVmMy7MDqv6nPeCL98gn3ACSlexqgAMVb
+iB+BEbLc3klKX0heW8pL2IonY67RyisvqPBUBnjNHg862AiSAkEAqt2duNvpxIs/
+1OauM8n8B8swjbOzydIO1mOcynAzCHBVPlxBTKkmGUGGYRl/rBBHHbHTgQhd2t21
+h5aCnKkAaQIBAQOBggAEgZCVbAm4UpgdxSlJ80Y7jvzf5l4+WlHRwNrPJ8deglLM
+CEAVeiGpe9m0yScxKvqK4MocpRX5jMEVD5p2jU1D71VqvNNWS8r1g/U8b0CRgVUU
+bbq1f2ysC6g4AQNF49vHFA2C6jOaV0fUjFPwLbQhh9Mg7U4nXHVQknULBP5yrpej
+ggGFMIIBgTAfBgNVHSMEGDAWgBR0GkStS9e2/NW67vEegn5YpZgcJDAdBgNVHQ4E
+FgQUpApfw4CuPlmvGzLWE2rv7sjKNegwDgYDVR0PAQH/BAQDAgEGMCsGA1UdEAQk
+MCKADzIwMjExMTIzMDg1MjM5WoEPMjAyNTAxMjMyMzU5NTlaMBYGA1UdIAQPMA0w
+CwYJBAB/AAcDAQEBMFEGA1UdEQRKMEiBGGNzY2EtZ2VybWFueUBic2kuYnVuZC5k
+ZYYcaHR0cHM6Ly93d3cuYnNpLmJ1bmQuZGUvY3NjYaQOMAwxCjAIBgNVBAcMAUQw
+UQYDVR0SBEowSIEYY3NjYS1nZXJtYW55QGJzaS5idW5kLmRlhhxodHRwczovL3d3
+dy5ic2kuYnVuZC5kZS9jc2NhpA4wDDEKMAgGA1UEBwwBRDASBgNVHRMBAf8ECDAG
+AQH/AgEAMDAGA1UdHwQpMCcwJaAjoCGGH2h0dHA6Ly93d3cuYnNpLmJ1bmQuZGUv
+Y3NjYV9jcmwwCgYIKoZIzj0EAwQDgYoAMIGGAkEAoc8rD9Pr1GysS1hiNuxqiaM+
+do+TvVqRKVRfA2Rz0HB8aAu943s15S2GiHE5aR9hVDBvaPchHizyH2JDpdGlyQJB
+AJ48uIsBENi9LZiBMa1xkT1EaDitmwJTYCTAv+MjowuUEEwg6hchNfr/VL8d5gPc
+Tbe3MRsFNB4B1iXaGX6fx14=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFWTCCA0GgAwIBAgIESVZmgDANBgkqhkiG9w0BAQUFADAyMQswCQYDVQQGEwJy
+bzEMMAoGA1UECgwDREdQMRUwEwYDVQQDDAxDU0NBIFJvbWFuaWEwHhcNMTExMTI4
+MTI0NzIwWhcNMjMxMjI3MTY1ODQyWjAyMQswCQYDVQQGEwJybzEMMAoGA1UECgwD
+REdQMRUwEwYDVQQDDAxDU0NBIFJvbWFuaWEwggIiMA0GCSqGSIb3DQEBAQUAA4IC
+DwAwggIKAoICAQDddU24oqUZpFcPAyatYRE8BhPm1Ud75yQKp7b+X4bPbQR88Sk8
+pH+V3CYwV1CPrUN7DlrdM7tUkmpLNjUyeCHGjSbdjHvYr01n7p5rNZJq7uV4nV/A
+PgmV4WRKBLUO0zPz7WH6DJ/qlTu6NGobGSj6qEBpslyazNJ9flZ0+pZuEoRjafnm
+4XVluKTPPhI3MPwZhX8nnHVa+SxwA5A68vXEHbqk3Yg/s8+8Uv7hN/ytn6CFxcbr
+ECcCXS3klGEyhLxd8yl2Wt6lvGAguFG0T2uj10Dp+/xR6NgKa8bFvtWi+JGIeDY3
+E+0r3+DKTwjdcIILmTl9+ITpTR6zOGizN0uz51o6EWOOc3tz/Bc0WMYZZxbQ6NMj
+//QI6lrlKwnYtkas6hUAVcCRcVgq4c2iWvNNTxKjP2LWx7FK0PivNAKbBc8YAVhZ
+ElyA5NVnBDjCPHO9JucMpettR/2z8NdBrETwroN7fEMzFC3oItF6ooU7Mj3PbL8I
+xQmJ0nSNtV/5TJ2AMrDfH9Sj2sTdnoorIcvpdzyMvu8AA3gBbV1X8mLnTgtBZmK3
+lSregV3JngsxYhQZW4YPqEbLUIkmjMup2oaRoUA1CNCLqU6GIqVeJp7c6ycuAUdV
+MLmkRW3g+r/Z7MIEqd0nIq4+O3pEM4y/5G0YvG6ltqPH0+B2smXdq67GPQIDAQAB
+o3cwdTASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjATBgNVHSME
+DDAKgAhCvcjdDjNAojARBgNVHQ4ECgQISiTuBLUfYCMwEQYJYIZIAYb4QgEBBAQD
+AgAHMBQGA1UdJQQNMAsGCSqGSIb2fQdKAzANBgkqhkiG9w0BAQUFAAOCAgEAEckV
+55Y2hjxpkFeT7AmfWClWBBWCRNxWzXKd04rPknZtXnfgtFlkoSrCb4KKCvb13k1/
+ndyTDa46qv2D8lo7uNz3H0Mzm8EMk9eKr6zD+QspGY9zD8EyI0qNMP2DipGyzyJa
+C6KkjjKiAYQo2WTIp2e7a21oTvn98WNiykDoKBuCzxFKCp9UsmRA5lKLK9+L83Yg
+ZTHtpzw11srNO34O29HI1XU3z66wzw5WG+04meNDeYLRMxChCF81PXYOiDzPWiHJ
+0q4QvOOXoR2+MU5dxmHwaYJ9M9m4q9KzW+CtsLwWmnE5fFbEZDO60sH6mc4GC/Mc
+t5VJVuJ08pud94Guq7m8eUe4x5n1X9ghUV9sEvikI96o7cJjgoGrDewgw/9M3elF
+zbjwjDBzFi0um0gXLLsFOB60SHrrOVXSUfQOhLrrnE4mQR93QZ5+7e3zdBMlJ/nJ
+ju51tdcJYoW/IjFk7/lEmNxLI0g0zkUGlm5CgR21AVk9KSI4JP1L6fA4UvCZ51t1
+L8dZghQO9rGqSBM7+KSeiA5vkeQpyeV3HQ5AZD5uEhLLwae0LET26u8LMTGINViI
+MQI4ZU/9VZqQ58wYpn3qLpFToKDLxSMsobE9WOO/927+FUTmpMtW304VR4qsGfKd
+YIYBqxezA/M6obYxRbaKax9KdRpI3THEZFeznyk=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFbjCCA1agAwIBAgIIfADxKjlm8T0wDQYJKoZIhvcNAQELBQAwQzEYMBYGA1UE
+AwwPQ1NDQS1VWkJFS0lTVEFOMQwwCgYDVQQLDANHQ1AxDDAKBgNVBAoMA0dPVjEL
+MAkGA1UEBhMCVVowHhcNMTQwNDIyMDYwMzU0WhcNMjQxMTI0MDU1NTE0WjBDMRgw
+FgYDVQQDDA9DU0NBLVVaQkVLSVNUQU4xDDAKBgNVBAsMA0dDUDEMMAoGA1UECgwD
+R09WMQswCQYDVQQGEwJVWjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
+AMZHiAXGBvcRgEK+OMzI7ul4ZQrli1Mb/l5yzYfWNYUWTYTykJCfRV7FEFT4QhQz
+ocdFaG7mmKwaskM6e8Z7vO6/x/Za+iwgn6OQwUU0Je/Jte3QqCB7un5MTcCHNuJe
+J+D95B/E7TbYFOaofD2aPcAUktWLIJ/qCalxJ6fbs83j33t9p7FBi4eQJ7dWdg1B
+SlRUdQX1Jvip1aYgvWcrzsFGxp8aVsyVXkArnbgSzz3EZwM8aZp6iP/U8YITjDjN
+T+nsWkpOkx86MAuNNp0oJ37V62f2eyMlhymM6IEyzQF7Q61dNHDt+OcU7aZ9zKT2
+RkIuEpgIfvG8O5ryGKcj9Y0aTlJ0ifvM4FTOWnqRqvKNtzuQMORpM19dhZmbP1Ek
+4f2ugc6JGRm0p/Qp5tQOrGY/KEU8jumrwJRm+MhWPUG4zawStmBXTyQMrYWQUnMu
+3cvq5JR3aVD6iSJs2/T2G2FGpflphpQjDYWFsW4+dkp7z0TsiQY5jJSr//NDtdKz
+sFhYDf9taprTtRy4DqSkEmMPPGKW+SVe+a0OMG7Sg3nZy22F2L/We3ojrOFY0kLO
+BWICO5/syqr93sOJqBCbvCGGsxe7NbbuyZ3qxro90yXz2wVIiQNUPO+/hEElOqnC
+ETm0hRWFovQ0xnBuem5VP01xqVo14Va41vvy6e/6dYkNAgMBAAGjZjBkMB8GA1Ud
+IwQYMBaAFD/FCRqZlXZBym9Q3dVdgcjBL2pXMB0GA1UdDgQWBBTZOzxEQuUXYMMx
+RLT4czjFqndQkTASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAN
+BgkqhkiG9w0BAQsFAAOCAgEAZUA87W7wjmg9JuW1HCIAM2P573VfaP8PfCtzY8Fq
+JNDeu3mYgR73762ek5EtSGSSFCTDNmONy/FxNtSZDOVRgRATODbeBFQUEalEHiHz
+yQtQxqrhKt0guyofV+pOUowYeLwXrw67CsiAFvFTy9v95GWZ6cKfxqUKjSlGyGzd
+cZOlUl8E8RE5LcifCT3uLZBHJWXNRlJAKMpPc7CQ9znYJSklKbNfMV3hf96KzuW+
+2IOqqGT9qak3Pi8S3kOpY6yN9E/RKJNaXwaqwrzW57Zf7KyBrVcfOTvfL6FTBPZg
+6rcAlTz64nLHDYC790NYWjTFAy28GWMWxa8YPE4A+ETEK8+mDNg4HDw8ahnZmyYk
+ATRLOs51JvCJHSljXnkVCuQRJq68Ii1OdSHYt1ziFlSKoNiETv2VN2C/yrxwETrr
+AMfSaCzJ/1VF+J+HaSb0BmQO3bjEook9fKGyZ9YIjG0cJEFRyQ0ylrMF1FYvL99q
+ZY1jspQJ/NgtYMXYBcN127AEQzy7k1BCoyYCFIYn/CHS0bm1Z+SkOJQIvyFdDYBk
+4LSPEazPN2wlJ9mDrYjFkCOV+8tmjA939vQAIIsl+4Uo2rhJ45bJSrJJplE1e72g
+va0DNJ/8mDPhPgd8HWx5yhRVlzGcm2HlDTAON5IbeDXAmnbwLXb4Q6YwER31uGTS
+QlM=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFgTCCBQegAwIBAgICALswCgYIKoZIzj0EAwMwcTELMAkGA1UEBhMCQ0gxDjAM
+BgNVBAoMBUFkbWluMREwDwYDVQQLDAhTZXJ2aWNlczEiMCAGA1UECwwZQ2VydGlm
+aWNhdGlvbiBBdXRob3JpdGllczEbMBkGA1UEAwwSY3NjYS1zd2l0emVybGFuZC0y
+MB4XDTIxMDgyNDEzMDUxM1oXDTI0MDgyNjEzMDUxM1owcTELMAkGA1UEBhMCQ0gx
+DjAMBgNVBAoMBUFkbWluMREwDwYDVQQLDAhTZXJ2aWNlczEiMCAGA1UECwwZQ2Vy
+dGlmaWNhdGlvbiBBdXRob3JpdGllczEbMBkGA1UEAwwSY3NjYS1zd2l0emVybGFu
+ZC0yMIIBtTCCAU0GByqGSM49AgEwggFAAgEBMDwGByqGSM49AQECMQCMuR6Cozht
+KA9db35Q5kHfFS9xCe1UVrQSsdoZf7cRI6zTpymQHRpxh0cAEzEH7FMwZAQwe8OC
+xj2MFQw8cggKzgWvoMK+oo5PsieHE5Fl77qR+Q+KpYFKUDrU6wSox90izigmBDAE
+qMfdIs4oJos5tVQW8ER8L7d94Qfc0qYuiA6lPuti1Xy0OQKV28mUOreGlvpQTBEE
+YQQdHGTwaM9F/6KmOoG3wT9riEej537xT+Pbf8r+DL0Q6Ogm4DQ21kaq74ey4kfU
+rx6Kvh11IPnCpFyx646Vz9VSYrcLKf7sWGThnAVP+ZEpKA5GRiF3kYERQoIDQSY8
+UxUCMQCMuR6CozhtKA9db35Q5kHfFS9xCe1UVrMfFm5srAQlp886tq9rf8MQO4gy
+AukEZWUCAQEDYgAEYD75/vAe/cJBEN3usF784OiTEbJ7pGs2pUmzKcV5gXKMMfU5
+O0FHlg/FvI1MIzA5CTvPyWxbZbMy9uTSm+ZQ/albrGUTDWPRI4mW3srOE8H7lgZv
+AaTP26t4dyKtg3T8o4ICLzCCAiswKwYDVR0QBCQwIoAPMjAyMTA4MjQxMzA1MTNa
+gQ8yMDI0MDgyNjEzMDUxM1owYAYDVR0gBFkwVzBVBghghXQBEQM+ATBJMEcGCCsG
+AQUFBwIBFjtodHRwOi8vd3d3LnBraS5hZG1pbi5jaC9wb2xpY3kvQ1BTXzJfMTZf
+NzU2XzFfMTdfM182Ml8xLnBkZjA5BgNVHRIEMjAwgRxlYWMtc3BvYy5jaGVAZmVk
+cG9sLmFkbWluLmNopBAwDjEMMAoGA1UEBwwDQ0hFMDkGA1UdEQQyMDCBHGVhYy1z
+cG9jLmNoZUBmZWRwb2wuYWRtaW4uY2ikEDAOMQwwCgYDVQQHDANDSEUwQwYDVR0f
+BDwwOjA4oDagNIYyaHR0cDovL3d3dy5wa2kuYWRtaW4uY2gvY3JsL2NzY2Etc3dp
+dHplcmxhbmQtMi5jcmwwgZsGA1UdIwSBkzCBkIAUlxGsReV6/m4NP6zZrLJrdZ41
+e6ahdaRzMHExCzAJBgNVBAYTAkNIMQ4wDAYDVQQKDAVBZG1pbjERMA8GA1UECwwI
+U2VydmljZXMxIjAgBgNVBAsMGUNlcnRpZmljYXRpb24gQXV0aG9yaXRpZXMxGzAZ
+BgNVBAMMEmNzY2Etc3dpdHplcmxhbmQtMoIBezAdBgNVHQ4EFgQUp6n4SJ8IaBDP
+vx0G5201pVtLDlYwDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYBAf8CAQAw
+CgYIKoZIzj0EAwMDaAAwZQIwCDJR+gVChwnwL6kid1e0z18QfLcEKQIFCdpaOR6k
+VpJQ1bmDUAc3AKhrevF+gdFeAjEAgFmoRvpfA/XQuh2xY8NfKMHI5Cpc8A0IZTHr
+73ZMNRLyUm386mHBlMCwvKQwUqLE
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFmzCCA4OgAwIBAgIBATANBgkqhkiG9w0BAQUFADBdMQswCQYDVQQGEwJJVDEf
+MB0GA1UEChMWTUlOSVNURVJPIERFTEwnSU5URVJOTzELMAkGA1UECxMCUEUxIDAe
+BgNVBAMTF0NFUlRJRklDQVRJT04gQVVUSE9SSVRZMB4XDTExMTExMDEwNDU1MFoX
+DTI3MDIwNDEwNDU1MFowXTELMAkGA1UEBhMCSVQxHzAdBgNVBAoTFk1JTklTVEVS
+TyBERUxMJ0lOVEVSTk8xCzAJBgNVBAsTAlBFMSAwHgYDVQQDExdDRVJUSUZJQ0FU
+SU9OIEFVVEhPUklUWTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANGL
+WM4ts0s0N6WpBQH3MXAZ1Jndg+JhU4/R+t+ohZqemOudXBcyqw6QClm5irMeTEg6
+q8W21N/vZ23H1739VknpK1XuRRJjFcmkYgEZ8aD1WkRguHDoMNtL2ikF1qc1QAVG
+hBedDJjz95YsAEjGFhMh38vkhqNqHTCOmYbjLvd6SsVBAOkULvm6b2rRn+uGidXI
+hybKCgOGlCBV0KQ2KJSUVZ4jhl0QjicuOlxZCa3QT5FFvMHmjedhst2thpFlxaV4
+zSIrF9r2EvAm1piOkYqaDQPb10GT7dzvDtgN0/3Gp2ithW/xaUnb1e/dzSvD6EZe
+mZHyzUEbdFfW3kG0M870JeJJqWa9pCP8s7RsxFy3E3DK8x9FcoIXwvu4Gh4Qp/YN
+Q6CsGNmRMd3SWxZteZ6NNmsqCDObAhEE2DIHXVK3Wo55CysRQHd0AbUUo83KKFaj
+KV4bc8zvqgxBWVP8SniyJ7lhQD/D5l1V4EId0+gFQgLV3L1KS5JzYqcyrHers/Ha
+Mxj6kAQuEItXugjWLxRo0rLJzMHbxwHmo9ySWQfnY4wl+msXKEAlS3r87XLOXDe4
+Z9HQKEwYeq1ONhk1lo1rywPWaEjhbQlD5ngdqCaTBnqnRSTmgUwWMnC8VnWpsw4R
+5h5pa770u0KLUDdU57NaiSSaM6/Y+Si/pClKo9NlAgMBAAGjZjBkMBIGA1UdEwEB
+/wQIMAYBAf8CAQAwHQYDVR0OBBYEFEjPhBIo5s5m+tqz7Zb+Tr831xJPMB8GA1Ud
+IwQYMBaAFEjPhBIo5s5m+tqz7Zb+Tr831xJPMA4GA1UdDwEB/wQEAwIBBjANBgkq
+hkiG9w0BAQUFAAOCAgEAYAk+LyKVEVFAoY5tMo8HyL6sdMnRiCV/Qujp2/B7+P2/
+O4XU0OD9Rcw61oK25sRf3QGJ9SCdMVHwiC8G0Ym7O5GWcbYbT4GTuhY7GnqE564z
+L8P72M11J8fqE4ehYSS4zyM+NkPWcG/BM2xK0SyvDLvNzigygZr5VgemmR0PIKK+
+HtYTLTZBgEnbxlZczwhyc6Lo6xoW06ZbF47lIyaUYbnvepciu0EXiEnigGa7fS5H
+r33A3NhWrWJmaMMWqxKaV2YI+JSESfdZ3x+QazTmFGUQbydidKbTqn4jzB+bFmow
+GnMHYhv+jDesR3NmmiEiEM91xtFlHIf0jRdijFvK2ml+Qm1rli4KPQTYoVYSKtVp
+c/i6U+JiYHkb8ZkFuoo96rV4S8PgyrmdQqGResjPqV8dYgDa+r0PW9oUjXO+47qC
+Z7A54+0oCS2AzSVO26F2kJYAr21c82ncOiA2Pb9FTbPoMiJkfwH3bNm2I3YP6qDR
+ONNts/vA5JfdaZbkSmk275FJHm8hTukPjHodLlfCJ4ACZYUD8pd4qdYF2W3oiIfR
+je7s0tSPUgZwmI1tC2UOpONIlMEV5ovil+0rgDMB6jEkViYl8lfCgz7GUlSukdHk
+Y4s+QUWdKhwfngh/rKR6uQeAn5rLb7coxiLmDZFGFZs9W/u0k7rCbFaa4v1X2M0=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFoDCCA4igAwIBAgINAJpKQhTrVYVaZBFmCjANBgkqhkiG9w0BAQsFADBCMQsw
+CQYDVQQGEwJIVTEMMAoGA1UEChMDR09WMQwwCgYDVQQLEwNDUk8xFzAVBgNVBAMT
+DkNTQ0EtSFVOR0FSWSAyMB4XDTEyMDgwMjA2NDk1NFoXDTIyMTExOTA5MTkwNFow
+QjELMAkGA1UEBhMCSFUxDDAKBgNVBAoMA0dPVjEMMAoGA1UECwwDQ1JPMRcwFQYD
+VQQDDA5DU0NBLUhVTkdBUlkgMzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC
+ggIBAK85CyyBDqldwo49Zn9e9GhDsVgjp6Fmt2BTqfZd9m9aDFqgHMSkVGMqwpW2
+u/1zPAYmoVzYzcVJ2fbkfctWRT5FesZ7VNOjtK1MfsqvpLrPklv7Z19OYimqkope
+GpQH4PgzLStAYZMZWs45Q/WLmOR5XFfGYrGHydnnqd+hnZsyMhAWC2QmOIxRnJg/
+juM+nIkRisuZ4DK5SxQVDhambNVMVecoWwROxCkEuDhXa1T6sqTP/d/THcP2D/bs
+oMRGezSubdMj8v2I1j1NkHqDsa4h5NClL/lm3AQBXsGRkhe1LqLjBxXKhfZZfbwI
+ujNMG3qPncd0wRi3wPt8EFzvSP1XIDXM+MLp0dbJIPHY4YQsDXM3DcyTWcr3er2l
+27ZD8IWUuK0zaooWiqBuz0+6lbM9MDhMveeNzTUcamqHoKhyLilcCK9KYAI20r3b
+lwYKxggXYEEV8tQ9vxj6meqDZUPsnLgdAQeiYDVzk7A+Cd2tdJqzKxWh6L5D9NIN
+n+Y9+6Vejg5QlF7+AFiEISbzSbWvd1VoEccLufeXBCcfdS1HAqEWbe+fKOrs/ywZ
+HQgSxEvVwCGtd2C5TCPtilQKPSNVCq0+/ao0mHDf02Udkt1aaVlOZuDoNnD652ZL
+/c+zoWYEZn9L3elfDdDn0EDa5Exku4pdIEIV8ZdSMNFBr9TpAgMBAAGjgZQwgZEw
+EgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFDD+
+BwXMhWgbVm5Fv4wrDmQiguwTMB8GA1UdIwQYMBaAFPmnrmsegMC/JBanHHvW0kN2
+vPsMMCsGA1UdEAQkMCKADzIwMTIwODAyMDY0OTU0WoEPMjAxNTA4MDIwNjQ5NTRa
+MA0GCSqGSIb3DQEBCwUAA4ICAQCo0rWE7PjzRvsQioVIKwtOVrRMSrFuI7T4/1I9
+XgrX0gFfBpxqfsF8S5GrbpW1hEpMlxaMSlvMCY6PFq3ZDzpRtBF8a8LxgY4Z4Q1k
+YBvCo36Emj7X6ikZgHIx+NizL25LlImkNLc+pYVwXuJj+JblLpYl/wz1A6R4S61d
+8v9nHJtJbcKTB0GeKIXxJPAU/JPL/0KTI37XYvbUIdvwW45ff8YzjqyzzvYDD88f
+psc9NwOcjFYHSXO1s4cMm74oDpC8cXTqDRNgUYCEiwnIoSNJWzL3vqfQ6zYKTWZ5
+DAOdUyq7Rq5T0ijMWS6tyh/uURCA4eumdhEOB0V17Xjb4TnrCjjSwkYG1TslQE2k
+SmrEYRpyNhJM1H9cS/PrVezerGdZvAytvgWCpzb+45jLyNMo0t49EfWSNGJZGPPI
+imBa4HjA2GHprtlhiWMDodJdYsbRzw9iBnkkUf2fyY8+VLS6J/vunKUcAQlRwNjQ
+2xxMWnxpICHQrn4lk8M6bi0nQs3yINpBMXmUk5iMZUInRyx6Eg/s+8Hgd1qmW9ZT
+QCV+iIamaJ1kuZAbcURjoR4kawLvnLJV6L3OBcPz9MfUntPmXpcOCkDk4i0uJLLT
+mucMuenkUg2syjfjp44WY/QbVA4PWtiWpXJVpktr5oTSmz1xvnjYCOhHY3WAyV8U
+EiaUrQ==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+XzkcLkQrxi1Q44u6ZB0uZVc=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIF/zCCA+egAwIBAgINALlpUVdtBtGI9ZrmCjANBgkqhkiG9w0BAQsFADBDMQsw
+CQYDVQQGEwJIVTEMMAoGA1UECgwDR09WMQwwCgYDVQQLDANPSUYxGDAWBgNVBAMM
+D09JRkNBLUhVTkdBUlkgMjAeFw0yMDEwMjAwOTE1MDNaFw0zMzA2MDIwNzUwMjda
+MFExFTATBgNVBAMMDENTQ0EgSFVOR0FSWTEdMBsGA1UECwwUTWluaXN0cnkgb2Yg
+SW50ZXJpb3IxDDAKBgNVBAoMA0dPVjELMAkGA1UEBhMCSFUwggG1MIIBTQYHKoZI
+zj0CATCCAUACAQEwPAYHKoZIzj0BAQIxAP//////////////////////////////
+///////////+/////wAAAAAAAAAA/////zBkBDD/////////////////////////
+/////////////////v////8AAAAAAAAAAP////wEMLMxL6fiPufkmI4Fa+P4LRkY
+HZxu/oFBEgMUCI9QE4daxlY5jYou0Z0qhcjt0+wq7wRhBKqHyiK+iwU3jrHHHvMg
+rXRuHTtii6ebmFn3QeCCVCo4VQLyXb9VKWw6VF44cnYKtzYX3kqWJixvXZ6Yv5KS
+3Cn49B29KJoUfOnaMRO18LjACmCxzh1+gZ16Qx18kOoOXwIxAP//////////////
+/////////////////8djTYH0Ny3fWBoNskiwp3rs7BlqzMUpcwIBAQNiAASK1Gva
+/d32JiPZoY3KHxT6uOWYYL/3kUzpN8DLb1IGzyK4OkFR/W994YAvM1UKsMrnX6F5
+awJlsCPnwEFZ3ZylxdhH9h2lMkwPt5CZFJI3YzK+GLIpRzLJYnIVAnCCJcujggFP
+MIIBSzASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4E
+FgQU5XZDYKLoiB6vTq1PAbh5vEZrLsYwHwYDVR0jBBgwFoAUQAR4QSqLJHese86U
+IqOHnkLPDpwwKwYDVR0QBCQwIoAPMjAyMDEwMjAwOTE1MDNagQ8yMDIzMTAyMDA5
+MTUwM1owDQYHZ4EIAQEGAQQCBQAwMwYDVR0RBCwwKoEWY3NjYS1odW5nYXJ5QGJt
+Lmdvdi5odaQQMA4xDDAKBgNVBAcMA0hVTjAsBgNVHRIEJTAjgQ9pZm90QG9pZi5n
+b3YuaHWkEDAOMQwwCgYDVQQHDANIVU4wRgYDVR0fBD8wPTA7oDmgN4Y1aHR0cDov
+L255aWx2YW50YXJ0by5odS9sZXRvbHRlcy9DU0NBL0NTQ0EtSFVOR0FSWS5jcmww
+DQYJKoZIhvcNAQELBQADggIBABc7E+4JrW82DEjNj9ge+1z/mvAwVWjJyjBePEV4
+OVh4+maMiRiJaT+DDD7O9miwYd0RZTTWdfLAqvmxCFFTDPr06kGSH4Hy6rrgaNUC
+oxJTZqA1AgdOxCT1Nf8/unjZnVTJTd09cUGQMinSW6TTA8LXy9MkXpvuOy7jhIwJ
+KU2xsx2S+xRgT+26txgNWWD6b1d00sxVlbSfLUHH1w4j4TPRE+146iw6YEe8Ll5I
+mfnYfIrkYo0yRDl0KylJ1Odpsj6lx5pMGMkYcozgpY81faIkGWCmdwdPF7gOg1sl
+kQMLICGpspi9U2topgIHEl8qYeNBfSHuzsFHyB3REuoGyU3bY09vs4QsxHQrfX0u
+gQB+Xs8epu+Fy5kiYp98jGPLT4mguul/YS/Wla9J/42CkmwqKVPXk5Rdb3AGiWBY
+YwcSVypt71ue9bM3IfjifQiBC39bqYGOzDiaDutiBZ6T2UxBckR+D2QHQZlQJjj5
+4Kyg/s9BTKtTD0tpL+upJyBPfMQUvc9vq6GLwdB3uNi8SltFl6kVZnLyYowsr8kX
+5vAlmhP9tbeXD0fxI2ijNStdY8scwlvaO0gWTEbKjwlwKBQKGdxcwaKUBgLJDRsB
+DhE14YE71XwJkNCvZ20gSwiA1DZadbG7ZQjvxVBOqkiEZ1YehOyU7ci0vqdrcUce
+DtQP
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGCzCCA/OgAwIBAgINANsCosrRH+T/oC3nCjANBgkqhkiG9w0BAQsFADBIMQsw
+CQYDVQQGEwJIVTEMMAoGA1UECgwDR09WMQ4wDAYDVQQLDAVLRUtLSDEbMBkGA1UE
+AwwSSUQtQ1NDQS1IVU5HQVJZIDAyMB4XDTIwMTAyMDA5MTUwM1oXDTI4MDQxODEx
+NTE0OVowUTEVMBMGA1UEAwwMQ1NDQSBIVU5HQVJZMR0wGwYDVQQLDBRNaW5pc3Ry
+eSBvZiBJbnRlcmlvcjEMMAoGA1UECgwDR09WMQswCQYDVQQGEwJIVTCCAbUwggFN
+BgcqhkjOPQIBMIIBQAIBATA8BgcqhkjOPQEBAjEA////////////////////////
+//////////////////7/////AAAAAAAAAAD/////MGQEMP//////////////////
+///////////////////////+/////wAAAAAAAAAA/////AQwszEvp+I+5+SYjgVr
+4/gtGRgdnG7+gUESAxQIj1ATh1rGVjmNii7RnSqFyO3T7CrvBGEEqofKIr6LBTeO
+scce8yCtdG4dO2KLp5uYWfdB4IJUKjhVAvJdv1UpbDpUXjhydgq3NhfeSpYmLG9d
+npi/kpLcKfj0Hb0omhR86doxE7XwuMAKYLHOHX6BnXpDHXyQ6g5fAjEA////////
+////////////////////////x2NNgfQ3Ld9YGg2ySLCneuzsGWrMxSlzAgEBA2IA
+BIrUa9r93fYmI9mhjcofFPq45Zhgv/eRTOk3wMtvUgbPIrg6QVH9b33hgC8zVQqw
+yudfoXlrAmWwI+fAQVndnKXF2Ef2HaUyTA+3kJkUkjdjMr4YsilHMslichUCcIIl
+y6OCAVYwggFSMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgEGMB0G
+A1UdDgQWBBTldkNgouiIHq9OrU8BuHm8RmsuxjAfBgNVHSMEGDAWgBShKuMm/CsN
+dqhci0cRucHCIGHJGTArBgNVHRAEJDAigA8yMDIwMTAyMDA5MTUwM1qBDzIwMjMx
+MDIwMDkxNTAzWjANBgdngQgBAQYBBAIFADAzBgNVHREELDAqgRZjc2NhLWh1bmdh
+cnlAYm0uZ292Lmh1pBAwDjEMMAoGA1UEBwwDSFVOMDMGA1UdEgQsMCqBFmNzY2Et
+aHVuZ2FyeUBibS5nb3YuaHWkEDAOMQwwCgYDVQQHDANIVU4wRgYDVR0fBD8wPTA7
+oDmgN4Y1aHR0cDovL255aWx2YW50YXJ0by5odS9sZXRvbHRlcy9DU0NBL0NTQ0Et
+SFVOR0FSWS5jcmwwDQYJKoZIhvcNAQELBQADggIBAEGUMptMsl/3CGPinkLjcaJ3
+/gTlT+U7wXQeFH0hMnqv/RxSrArZU9AckwL4CN2z+wiypZ7djyut02dV6/TdMgph
+AKagvjZ/QZsfo3Bwa5sW+ZrSnUyBTFQF/+JcYX8f2Q5qdibRQsKYQyumqYB6HlGl
+oKpjSW0ssC5etUr1EqfjJH1N9dYCX+0D0Q2LRr+GqC974x+G+VSee8QnrCMMsTdh
+swrcUXS+r1HQo9Qn1RIdFiZoT/LvAixhSBplMmsQuLLnIHLH3vcLMpcwrMyE1lFl
+S3aV9y1iREvToj2O+1Ym5j49Aq+uWm9RUYlYcuW+Fk1w/W4uQQW6Z8j03Lltjhww
+d+DurKudZgn9z4tGg7KCza7qxTdHxPitByLOR7EPudiNSdrpbAwt2ndfBiiriby5
+WyU0npwuJBOa98gitXt1Zk537MhwKHF5oFh3A6hWepATuAHKnCtP4xnMq6NswddN
+JBmAhbr0Dhr35fPYlnZQNFb4vMyhbUgaGa1VTI3uLkR2fg3p4UE9ZnZU9/XoxbZU
+Q0uFfPs0jk6VA7VeiH+I8Bv6yqpkSgqwqZKO6Fstn14ZMPrwJLHeHc4BAHAoc2te
+ecQdVBUq3ormuXUluzL3IFzWrkA7Fh2vlflM+/5916ZPydjbzRUmt96hK0TvpFp3
+L2pxGxOtqPjwTfaXVogg
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGDzCCBMOgAwIBAgIIQOs4OWh5GwwwQQYJKoZIhvcNAQEKMDSgDzANBglghkgB
+ZQMEAgEFAKEcMBoGCSqGSIb3DQEBCDANBglghkgBZQMEAgEFAKIDAgEgME8xIzAh
+BgNVBAMMGlN3ZWRpc2ggQ291bnRyeSBTaWduaW5nIENBMRswGQYDVQQKDBJSaWtz
+cG9saXNzdHlyZWxzZW4xCzAJBgNVBAYTAlNFMB4XDTEzMTIxMTExNTExNFoXDTIy
+MDUwNDExNTExNFowTzEjMCEGA1UEAwwaU3dlZGlzaCBDb3VudHJ5IFNpZ25pbmcg
+Q0ExGzAZBgNVBAoMElJpa3Nwb2xpc3N0eXJlbHNlbjELMAkGA1UEBhMCU0UwggIi
+MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDO4Sn5Fl67Cu9bJPCXOjCOGG3D
+9DdUqKf1rbej88v/kFGHkRk0bEkRm0CaziRUwPxxQsRrdTSn2IePX8rqm7PBlVg/
+AKHixuXPef9YPx9tp9V1Zd3gKxZThenfIHuoLwkUjto8iADD2WNDhrvkQRl6f9RG
+9lFKVsxpENEIMQ/JR2AL1KBqRFcMsyWCga5jq9SJQjUMI/uH9yl6Tk4Z6tTlypMm
+j4POS82qRndrOtXPmaDQCt4NTzvlMDXnlOxLmO7Oy2g89Kov6R3yjFJS68GZDfVB
+DvNwzeKdimliQwjeO28x7hgeaLTNhXvJ0FxVecDVCisjBEMzKFi+X6KImieCbxCn
+Izz+KXns33M0+iBUezqkvbtBhG9U/VtTv3e7RcgcaOXi8MBXtSig89l42WSMDnoM
+7EE5hXQDdZyM9n5r5nEZnnIoFCsodDkQcrAiV7/1up6dHjId7JQT50bwL0MAcf5i
+DiboqFh3zU1b5HZEiQvFqkLihO5+IyfqL3qleoldmwfImCUq5Xjv8lKxXU5LIL0g
+V/c0vLX0O/vqtw74UebvQKQQ9DcZIt8lzaIbj5FrI9Gk5bYbBa4ykHnIqa6jnSxI
+PyxQImVmkhaLgOZHQivS9nnUSWxFajdxknhP2bU4qqXdNumzeh+4CX5+5ej8k96u
+zlc3rv/mP7qz7ppBlQIDAQABo4IBhTCCAYEwHQYDVR0OBBYEFBP4qm9aUqAbV/LX
+bvw6V1wiXiTdMBIGA1UdEwEB/wQIMAYBAf8CAQAwHwYDVR0jBBgwFoAUOtRdqXuS
+yO2ch41v7Arfw8gEih8wKwYDVR0QBCQwIoAPMjAxMzEyMTExMTUxMTRagQ8yMDE2
+MDUyOTExNTExNFowFwYDVR0gBBAwDjAMBgoqhXBUZAkBAwEBMGEGA1UdHwRaMFgw
+VqBUoFKGUGh0dHA6Ly9jZXJ0LnBvbGlzZW4uc2UvQ1NDQS9TRV9DU0NBXzQxMTVm
+NDEwNTc5M2RmYjEzMThhZTVhNjgxZWVkZjdlMjc2ODEyN2QuY3JsMA4GA1UdDwEB
+/wQEAwIBBjA4BgNVHREEMTAvpBAwDjEMMAoGA1UEBwwDU1dFhhtodHRwOi8vY2Vy
+dC5wb2xpc2VuLnNlL0NTQ0EwOAYDVR0SBDEwL6QQMA4xDDAKBgNVBAcMA1NXRYYb
+aHR0cDovL2NlcnQucG9saXNlbi5zZS9DU0NBMEEGCSqGSIb3DQEBCjA0oA8wDQYJ
+YIZIAWUDBAIBBQChHDAaBgkqhkiG9w0BAQgwDQYJYIZIAWUDBAIBBQCiAwIBIAOC
+AQEAKm/Z2hvSNCJdkmG1b14nNLL13Natjt9/htY2+p6vYCRuAkDtL4i9X/K3MPDk
+7BxozrsLfqqKxZAJWcbtPnUMfejYSy9+IPzZ/jemRA9SdJf74bYdzn2GEnYpglV4
+kxmA/rF87DnsVaMIguSKc/eg51TzN6dMnk+PxUYB+1OljaH1iS3vK6wSLj+IWIvc
+SJqqCLghCB7mjZjZgBC80nbh5KG/8fephULuyqLmRoQpG7RbjD5Z538xW1iw6jXc
+f5bEPiM8Pj4GkY61HOND/xFaI4ligZ8GGotylpBOjnoCof6yqUiFJe6kU7CfVIWO
+OuLQ6xm3P2ROFiuWmR6h51G18Q==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+ky2D0aLy6x/bkXd0DnUuEt0f6nU=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGLjCCBBagAwIBAgIESS7rKzANBgkqhkiG9w0BAQsFADBBMQswCQYDVQQGEwJH
+QjEOMAwGA1UEChMFVUtLUEExIjAgBgNVBAMTGUNvdW50cnkgU2lnbmluZyBBdXRo
+b3JpdHkwHhcNMTYwOTA5MTAyNjMxWhcNMzMwMTA5MTA1NjMxWjBBMQswCQYDVQQG
+EwJHQjEOMAwGA1UEChMFVUtLUEExIjAgBgNVBAMTGUNvdW50cnkgU2lnbmluZyBB
+dXRob3JpdHkwggHMMIIBZAYHKoZIzj0CATCCAVcCAQEwPAYHKoZIzj0BAQIxAP//
+///////////////////////////////////////+/////wAAAAAAAAAA/////zB7
+BDD//////////////////////////////////////////v////8AAAAAAAAAAP//
+//wEMLMxL6fiPufkmI4Fa+P4LRkYHZxu/oFBEgMUCI9QE4daxlY5jYou0Z0qhcjt
+0+wq7wMVAKM1kmqjGaJ6HQCJamdzpIJ6zaxzBGEEqofKIr6LBTeOscce8yCtdG4d
+O2KLp5uYWfdB4IJUKjhVAvJdv1UpbDpUXjhydgq3NhfeSpYmLG9dnpi/kpLcKfj0
+Hb0omhR86doxE7XwuMAKYLHOHX6BnXpDHXyQ6g5fAjEA////////////////////
+////////////x2NNgfQ3Ld9YGg2ySLCneuzsGWrMxSlzAgEBA2IABGCi/3XqrTwy
+e7VZrhZMAYxYsU8TKMTJCCOeSpFyJFKUd2t+/dmnA+A7yFfR/xjeFBGjW1AtkHKP
+1G0aVtt2lFgTGlL1JWT2As7I7l9RvGywXzCSA+TXPUIfD/CfvC4sIaOCAYIwggF+
+MA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/AgEAMEAGA1UdEQQ5MDeB
+I2RvY3VtZW50LnRlY2hub2xvZ3lAaG1wby5nc2kuZ292LnVrpBAwDjEMMAoGA1UE
+BxMDR0JSMEAGA1UdEgQ5MDeBI2RvY3VtZW50LnRlY2hub2xvZ3lAaG1wby5nc2ku
+Z292LnVrpBAwDjEMMAoGA1UEBxMDR0JSMCsGA1UdEAQkMCKADzIwMTYwOTA5MTAy
+NjMxWoEPMjAyMTEwMDIyMTU4NTVaMB8GA1UdIwQYMBaAFK1L52V+6s7S4WjNkTFv
+YYB/HJHjMB0GA1UdDgQWBBTbHRZXx2AjCJsBOeJhPAghNLV8oTBnBgNVHR8EYDBe
+MFygWqBYhipodHRwczovL3BrZGRvd25sb2FkMS5pY2FvLmludC9DUkxzL0dCUi5j
+cmyGKmh0dHBzOi8vcGtkZG93bmxvYWQyLmljYW8uaW50L0NSTHMvR0JSLmNybDAN
+BgkqhkiG9w0BAQsFAAOCAgEAauU2iyL1TqHKg903E/8pyT3R8KTDSFAloFWckRZ6
+t43H8Dl72hSsnLqXN5dZAwaS0cg916DPoZ7yOf8B9HDtO/b8Rt2Z0O5IMLZDI6UB
+AwIJFynviR7RKp3ExeA3kWQcOXQFCc/VZtcekNuX0Qja7n+aHyhlHLdM+e/d9P2j
+X/j7FS17ZVAhZu7Z99eaRolKCKx+sXGB9OGQ3KbLFYVBa5qOa70q6beqvq9t+VE8
+zetzGn+ZwrFBJuVLPx7vWF8ynKZGfDijfssqoDlYWlQdYj5D+3iM4vka9iBb5c+R
+XiaE7ZWXNAJ24RbFplNYjjmhk9cjL2Xu/c165v9u2k2Szq45FCQcUbqERyWq6B+N
+u4bvmNM6VkS9F9paB+Ugt2qP/rBocmfv3wrKxK/uhRj0bso/EOuTFkvQVgj6p5u7
+mm8WHEtCpTwbb2arVqtVgigdDOqHK2WtpIs9EsMbjA+My8gCbNta4kFsoK5bpcKD
+2A9T3cCwmad4aG56gAUjK4oEWIn2mBGVgp8sowYO+4ySJulcTF2QlOT/9MJYYs5v
+WTqZiDULFrwOVVLNIe0x3wC5IiHX22FbCJ437JvWrWZWHBsg8DHWYIALNctpEmBB
+WAWrzY46KN+YJgG9bCmd7ElDZOstru7Gpo/roG1es+Tcu6GZavftKe3WJwhTGoNk
+uUA=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+QaY=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+Qf647ApIR/vy55Hu0w==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+0UVkHBZeCGYq3BUH2g==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+iOxbWZouBwZ5CrwNCSk=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+IzaIjIz89QCMLXUxWK+xhD+yvw==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGQDCCBCigAwIBAgIQXC0hs5sR8ZxM6l5jDtPH5DANBgkqhkiG9w0BAQsFADA7
+MQswCQYDVQQGEwJVRzELMAkGA1UEChMCR08xDDAKBgNVBAsTA01JQTERMA8GA1UE
+AxMIQ1NDQS1VR0EwHhcNMTgxMjAzMTMzNjI1WhcNMzIxMjAzMTMzNjI1WjA7MQsw
+CQYDVQQGEwJVRzELMAkGA1UEChMCR08xDDAKBgNVBAsTA01JQTERMA8GA1UEAxMI
+Q1NDQS1VR0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCNSjWExKiE
+ap9UKICdupYz1tq2mZ0edyqe7a8IwfsS6iLF8Az1RL7t6miTYeRNZti6mpCOQOB0
+1tD1pPV8WhJDvvHpoW4btr02N02KKZo9iujbZCGk/PvOloP3W3PX5lmo5QK9TE2V
+6P0jAG5z7JKBCBrwK4Qhmr+vnwItGdFvNKrzzOwg8yKGA76/spy+I0OYs7EwxdsD
+mJnD0stbUDE/kFOht1VsTc47tstuyER4qQbPdUfYjXRbi/Und2tROC0LHhuLqkQI
+uvEkpa4TorRAKpxL/pe513Q+NxGeCqJQpstDBmrZ35RHOiUnL5+tc/LBxJroTCqi
+K0C5NBf5OAWGmbWFiZCt0+43JUd2bu4CpvLpgurI4jNyYAIkSs08c5dCR+DIZmxw
+wrzKJlAHPJxWUtfihZNlbAjUe4k/h4Q3iDR6QvfiUaAcHg9jl/zTe9Fs7a6X4e6U
+a6SB+ESeGP3YwE7MAT8OCIjuq7FTneixbFNmUy5xHKugfCMDld6q2FFTwHM80rMh
+W6Cj4a/QrCYrmy+a9M5AQDuGvvOPMknD0b3o/exEiiNJJVWCcENsQIZB9qlEusAm
+oy/uHxhLC/age0jRnrMmT4Z6JCrr7AW594r6tatm/eqVt3xQCoTZgzq9NMno5moX
+rrUkhRDsu6y142Nd+erO0g9CHAP1B1lbnwIDAQABo4IBPjCCATowDgYDVR0PAQH/
+BAQDAgEGMCsGA1UdEAQkMCKADzIwMTgxMjAzMDAwMDAwWoEPMjAyMTEyMDMwMDAw
+MDBaMBsGA1UdEQQUMBKkEDAOMQwwCgYDVQQHDANVR0EwGwYDVR0SBBQwEqQQMA4x
+DDAKBgNVBAcMA1VHQTBnBgNVHR8EYDBeMFygWqBYhipodHRwczovL3BrZGRvd25s
+b2FkMS5pY2FvLmludC9DUkxzL1VHQS5jcmyGKmh0dHBzOi8vcGtkZG93bmxvYWQy
+LmljYW8uaW50L0NSTHMvVUdBLmNybDATBgkrBgEEAYI3FAIEBh4EAEMAQTASBgNV
+HRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBTwLbIUktyNZzjEbrPFhph3efAvKzAQ
+BgkrBgEEAYI3FQEEAwIBADANBgkqhkiG9w0BAQsFAAOCAgEADOpL9DoEBBhDtdhA
+pL5wVF5w198SJ8UbupqahEu9y1BYapgc/yhuRadho9gKOb4qaQlbRYmA5c+RC8bS
+khFWyrTIvEAb3wGVVyabySD3bvTBxQG32CO5gDL+ojMw7dZX9jGXpgn7ewnUbP/s
+HKU9GAbWkGtmn0TSilTx+7NuaaqLjY132ckm+onWOZY2Z/kCRn25dE4bHdgGPpK7
+8En+xvzNutGGgSHj/AsTtTio8jq8/dQsPztqGu2zTF0kNrF1nMdIlNVmDGbpcCvM
+Yh8LggI8fmKTXj6+FNaa4iUxxLErIsEjOGKd9eQ3/S95134POiq15qp18J6oq7D+
+L1MbqwB+2EIAThTXG2NYbr19iAgU9Ss3oFqCT5sME9f3NojSkgtUevRRBct7dgrr
+AfHFlT4q+qjryYSX/scfzVLtqsFQjuW1YSh6c4CaHCZ1CLCQlvcqJTQuKpn7pLRD
+U3Rvls0b9VYw240VL6vJQr1OKceiyxPhTyL/O/RLTvPy19KUXmjqyZNWto2vj8qC
+ES04W8Jjx+fUd/BrCjRZhP9yCztM7cVU/Wim5WwrzRf9px9+Qqbi3COjaywZ9ZEe
+QpBC1PbMJQ3DysfOIdvMAme01Yi56cMT1iLkI+Rk9RqswOCdlCVM2K6PBRHCekSR
+8sVJJ7Rf6TZFI5mfQCQeJppx1G4=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGSTCCBDGgAwIBAgIIO2FngjPoYakwDQYJKoZIhvcNAQELBQAwPjEUMBIGA1UE
+AwwLQ1NDQS1LT1NPVk8xDDAKBgNVBAsMA01JQTELMAkGA1UECgwCR1YxCzAJBgNV
+BAYTAktTMB4XDTIxMDcyNzA3NDU0MloXDTM2MTAyNTA3NDU0MlowPjEUMBIGA1UE
+AwwLQ1NDQS1LT1NPVk8xDDAKBgNVBAsMA01JQTELMAkGA1UECgwCR1YxCzAJBgNV
+BAYTAktTMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAiWp1SVDe+SzU
+xkjUDObKrnprq/7J97KAJIkXSDlyje54oSQkEeBnJQtPCe17HJJUUEbqcVKcyWSy
+OE2O3hkPAo9HeekBXv3pwZ4Yw6z2tBk/14ljwTRe4s9LDsi883qk+Hb2QQPaCw/M
+IdCCervmKijBZ8TPrC08gClb8kBr6AubQFYNzO9FVh4ackXk6yourT3MIwd3aZTD
+x1hS3s7IG+fASzvUyVmsuZkgi8XjugtBdv3Znhk1O44kwqZb+Y0udHTmu0/gLkW5
+dGWBasmIXw6D0Lx6PgvRV3XqBCgtcMO9tjrPj2ifVB/sK/L+eCIzlnD1EQr5W3JJ
+Wn3w0aY5wrTq1RO0BXnZbg6iwagvsMqG/hr7SO8UbQQ0BBle3kq6UsV5OJZMI3SG
+XPOdtIVUoPgTo5o1CXvF6198E+nbWbR8yQAN4h//A/2e1ytwPJz1x50ThEUFIxE2
+v5DZTNBjwjuXEOjhGhq8o6mO3LKil9RsUSWwqJyJqj6HtarHiRalbIa3pnuSBTWg
+FYicBWbK3jjMeiw2cJxqjcV23+Ku1WQdsHI8eCXiSB9nvSziae5zwNca7QahM5N3
+IuWbREVZqSKj5VS3n/CxDcbmcikOI0eBshTCheRoRQPgDuiONQqPM85mJ1jcvzYn
+ngVwzUyRKEAI5pwWDEoe7zgCNKf4C2MCAwEAAaOCAUkwggFFMB0GA1UdDgQWBBS/
+wSW2Y0tqwWYgknD310RbxjhX6zASBgNVHRMBAf8ECDAGAQH/AgEAMB8GA1UdIwQY
+MBaAFBZYyqTABTy+bBiMk3lNh6N38jPKMDkGA1UdEgQyMDCkEDAOMQwwCgYDVQQH
+DANSS1OGHGh0dHA6Ly9tcGIucmtzLWdvdi5uZXQvZVBhc3MwKwYDVR0QBCQwIoAP
+MjAyMTA3MjcwNzQ1NDJagQ8yMDI2MDcyNzA3NDU0MlowPAYDVR0fBDUwMzAxoC+g
+LYYraHR0cDovL21wYi5ya3MtZ292Lm5ldC9lUGFzcy9DU0NBS09TT1ZPLmNybDAO
+BgNVHQ8BAf8EBAMCAQYwOQYDVR0RBDIwMKQQMA4xDDAKBgNVBAcMA1JLU4YcaHR0
+cDovL21wYi5ya3MtZ292Lm5ldC9lUGFzczANBgkqhkiG9w0BAQsFAAOCAgEASWzu
+ZRlsXmRGe1M0QPrk1KIEzyWsZBbk8vk+yJzIS7PhM1VRpg9W9/vOUopCqRMrz9MX
+NjHi/mgv5Ta3rSnBqzwYg4JXL06GpBTETs+xl8a1QtKfe5MIaK/rmVUwY6NrxLum
+dyCjCAec89o1pAv+huPKbJ2wXLsSpCbOAtNXZBCw+ybAK7ki2L5V/IR9AtASCpy0
+AJYoHh1JRXh62yCetbN+HhCCHfpUCjNLj8F8Vk/nEd+dVy2jXdXTKYhzECcuGeR8
+8jgd8t/2WUbloqgLyscLqBl+cfLg4X7JuPPunYTIrn1Nov/PJoay5dyQdfzKxCOk
+bR/yvbloCgroZtkE+Zpc0il/NbPz4e51zNykI+KOzzZukv1x03jP+Xb2Nrk/k98p
++qwQ7uoYslbrO4s1RB1e97owCWT76yguBaROTk6pwDE+tjSsUDsIOY3IU3LxcUBg
+mZ14ePRajAwcUWsvHJSRp6Ul9rRlFLlk97trR4HofdXa2kDhe7LXj6CSCsgnAM4N
+xuxjAbJk+NcBMHbDbNhM1BBFvAq0ZxxrJ5llgRqwri8R0VniBVAXJGQLmavxRsga
+JVNRaP6qA/mCaGG8gOgRYAn6l6i8/KOpUZYp5oTu6Rh+3abBfeArlJi12gtIoo0u
+/NbGT4r3JGxxDk6F/ld3zHSLOV5D5y5ggI/MrgU=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGUTCCBDmgAwIBAgISESJ2K0CjRcG9aEUnSRYdi6S1MA0GCSqGSIb3DQEBCwUA
+MF0xCzAJBgNVBAYTAk1FMRMwEQYDVQQKEwpNb250ZW5lZ3JvMR0wGwYDVQQLExRN
+aW5pc3RyeSBvZiBJbnRlcmlvcjEaMBgGA1UEAxMRY3NjYS1tb250ZW5lZ3JvLTIw
+HhcNMTcxMTI4MDAwMDAwWhcNMjgwMzI4MDAwMDAwWjBdMQswCQYDVQQGEwJNRTET
+MBEGA1UECgwKTW9udGVuZWdybzEdMBsGA1UECwwUTWluaXN0cnkgb2YgSW50ZXJp
+b3IxGjAYBgNVBAMMEWNzY2EtbW9udGVuZWdyby0yMIICIjANBgkqhkiG9w0BAQEF
+AAOCAg8AMIICCgKCAgEAwTp0pNKvCDsoph5q7QfjvFSKcEqnsqOK9g7qjJ4wEifP
+nj6bkCDijZQLo41JzYa8EERcGYFADeu/Mq1pslj5o4Q36HxfR6QU/iGGh1vD38aM
+guT5ctS5+8IfBjUGNoXEycTTrv8tG1+CwnP52eIEVHI9wL/MoN1YD7dV8ZLlMWrZ
+kLQucuOvC0DEpYyVXqSPFZ9U5iOuNY/wZL52Kf+7nTYt0+SNdUuzdyY5gz1KJNwf
+Zze8oZL5d7cIO2DuFfj1Cqk2cNtm6+UYx83nHDu87ZsQvHRORyPeC1JehlMaDFQs
+YPH0+sNuzdsXydG8pFZs/xJSIaLrKX8bM77CWTz465sJEK906U5QedblJfwsMthO
+az1unF6XRIHuC0fRc1N+Azb1lFxYtuNGiUSpLsK+4ylgmUqlyFT5zHz0nyIYIxPA
+fjoYil3USwddwsQa3Rj61NVya2yvI+T6sAOLVe2SovLhKPQZtwieaLB1Y7evbzSi
+XaY28FnxrbvXrYofpq58Enz6S+jHar6fr/2v+GmcYHWYB9C5x7ONrlHTGZjzioZl
+c4e5MBHLvYKz78ET2JbyBMHRWBfAaQX9krMqvNamqeCMgH2STd1uDnWpHotO/0uX
+QCqLDIpMx6WqYBQ7tRje7+WWM/18EBlAqg73wKHpfTYrFQcrrRORDVB4PxtqbosC
+AwEAAaOCAQkwggEFMA4GA1UdDwEB/wQEAwIBBjArBgNVHRAEJDAigA8yMDE3MTEy
+ODAwMDAwMFqBDzIwMjIxMTI4MDAwMDAwWjASBgNVHRMBAf8ECDAGAQH/AgEAMBsG
+A1UdEQQUMBKkEDAOMQwwCgYDVQQHEwNNTkUwGwYDVR0SBBQwEqQQMA4xDDAKBgNV
+BAcTA01ORTA4BgNVHR8EMTAvMC2gK6AphidodHRwOi8vd3d3LmNzY2EubXVwLmdv
+di5tZS9DUkxzL01ORS5jcmwwHQYDVR0OBBYEFKnoLB5yGtqPpOgC65lLL4P1SYtB
+MB8GA1UdIwQYMBaAFG1Cf4+CtgKm24r/e4/iG2SaxOdbMA0GCSqGSIb3DQEBCwUA
+A4ICAQCQOIb1FScC1vbzbgD1pMHYNeqTc+OZEOzJl+OmMIfQsppjDjrM+c8E01jY
+epll09vK4jzMfz+V5jguHJ/osiO3uT4INQPvO3fbu3MiATtOKgRiNO+MVBYfRDrJ
+4YNAAxmAvQOPK22Fc78TsOXb58a/UOcfVAe2isYSZ1/LskafAbUv0ANs1SmGTz6z
+RaArm06UYQJpB2q3N+HKo0B6NICE8dEcOxvssSqEjLZQkM0lJ+nCLGJigMF0i7Xz
+qDQcoYaBSFRWiGNw8i+AO25QZz2VIFMOMOCJdyGP1eW+nQF9qJHiWAAL5H5AMcf1
+ftYUEyBUG5rFOV6RptMVsyFLDsBLWh4u8H1aFhHkkkq0H2h0Y/O31giqLBE/jlqA
+zj6eghZ9enWLUf7Yz0fx0jcvhLvF4BPSvMBEdxxLAyarI2Z087++eu4dEXUaksmX
+ckLZd7IZw2WbAzeynqrgw+sfLRDwRLrlvukfbu5Vd1jQRZzFBlwLQ2kKyYGR+KcA
+TRPSZXq//I/s8VCeAS9dIvR73/4ulWQX4QT7UXhPZyqmd6b0MN0KTMqrdxP71eJZ
+uX6HwcplAlRKwxABBqw50CfsfjypASq82JG5F73v0ul7qztumUaIOxon2ZRpW3Cn
+zPFvhgaLbxvvrQPPlJ2AQUN+cnGPJD5kwsNCXh6M+T52197fmg==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+3sTE6mYNoV8bK4+Y
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+iksuh3S4gaW0c9jK
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGbzCCBdCgAwIBAgIDAKZTMAoGCCqGSM49BAMEMIGiMQswCQYDVQQGEwJUUjEw
+MC4GA1UECgwnUmVwdWJsaWMgb2YgVHVya2V5IE1pbmlzdHJ5IG9mIEludGVyaW9y
+MUIwQAYDVQQLDDlHZW5lcmFsIERpcmVjdG9yYXRlIG9mIENpdmlsIFJlZ2lzdHJh
+dGlvbiBhbmQgTmF0aW9uYWxpdHkxHTAbBgNVBAMMFFBhc3Nwb3J0IENTQ0EgVHVy
+a2V5MB4XDTIxMDMwNTA4MDcxNloXDTM0MDYwNTA4MDcxNlowgaIxCzAJBgNVBAYT
+AlRSMTAwLgYDVQQKDCdSZXB1YmxpYyBvZiBUdXJrZXkgTWluaXN0cnkgb2YgSW50
+ZXJpb3IxQjBABgNVBAsMOUdlbmVyYWwgRGlyZWN0b3JhdGUgb2YgQ2l2aWwgUmVn
+aXN0cmF0aW9uIGFuZCBOYXRpb25hbGl0eTEdMBsGA1UEAwwUUGFzc3BvcnQgQ1ND
+QSBUdXJrZXkwggJFMIIBuAYHKoZIzj0CATCCAasCAQEwTQYHKoZIzj0BAQJCAf//
+////////////////////////////////////////////////////////////////
+////////////////////MIGHBEIB////////////////////////////////////
+//////////////////////////////////////////////////wEQVGVPrlhjhya
+H5KaIaC2hUDuotpyW5mzFfO4tImRjvEJ4VYZOVHsfpN7FlLAvTuxvwc1c9+IPSw0
+8e9FH9RrUD8ABIGFBADGhY4GtwQE6c2ePstmI5W0QpxkgTkFP7Uh+CivYGtNPbqh
+S1537+dZKP4dwSei/6jeM0izwYVqQpv5fn4xwuW9ZgEYOSlqeJo7wARcil+0LH0b
+2Zj1RElXm0RoF6+9Fyc+ZiyX7nKZXvQmQMVQuQE/rQdhNTxwhqJywkCIvpR2n9Fm
+UAJCAf//////////////////////////////////////////+lGGh4O/L5Zrf8wB
+SPcJpdA7tcm4iZxHrrtvtx6ROGQJAgEBA4GGAAQAz7TZQvOkXam2uGYE24UE8sfW
+yZURaVvjYFQZznvFHWH+lTvsjUhb7cZUx3Os9/ElnNNra4UcBIXk2CcmhkwFURoB
+CuWE5gb9K6aYphW/LJ9SbGFs/K58dInuRLRDVPbeNPaeeWzkGnOFymypW3Id2w3Y
+/cHy78wo+MPpcIOGnlJsTVqjggIDMIIB/zAfBgNVHSMEGDAWgBRvm7vGnuza2bwx
+6VDhHtDKACIFljAdBgNVHQ4EFgQUhx9mvuJY8ZDfG1LbPNDjxY1FDe8wDgYDVR0P
+AQH/BAQDAgEGMIGEBgNVHSAEfTB7MHkGC2CGGAECAQEFBwYBMGowMgYIKwYBBQUH
+AgEWJmh0dHBzOi8vcGFzYXBvcnQua2FtdXNtLmdvdi50ci9DU0NBL0NQMDQGCCsG
+AQUFBwICMCgMJlZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9u
+MAwGA1UdEwEB/wQCMAAwQQYDVR0fBDowODA2oDSgMoYwaHR0cDovL3Bhc2Fwb3J0
+LmthbXVzbS5nb3YudHIvQ1NDQS9DU0NBVFJfVjEuY3JsMFMGA1UdEQRMMEqBFnBh
+c2Fwb3J0QGthbXVzbS5nb3YudHKCHmh0dHBzOi8vcGFzYXBvcnQua2FtdXNtLmdv
+di50cqQQMA4xDDAKBgNVBAcMA1RVUjBTBgNVHRIETDBKgRZwYXNhcG9ydEBrYW11
+c20uZ292LnRygh5odHRwczovL3Bhc2Fwb3J0LmthbXVzbS5nb3YudHKkEDAOMQww
+CgYDVQQHDANUVVIwKwYDVR0QBCQwIoAPMjAyMTAzMDUwODA3MTZagQ8yMDI0MDMw
+NDA4MDcxNlowCgYIKoZIzj0EAwQDgYwAMIGIAkIB+Kpm1tOFrOwmbBXo1DHR5BRV
+AbILCbjpiodJl5QK6w+MzmLQ7yipLU24OQYHuhWvQDyrHmjC2o8qgYEMQ9OITLMC
+QgHA+LjALh0AfUDODle0jha3f4ff93q89zQTeqDIogT+MLZG5w2EuPPP7wfAn8o5
+gY1rvmbL2vpmRTLm4mzXSHO5nw==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+WOH7wwN5JOFoV8o=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+RH12ZS22ftyrq4M=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGmTCCBIGgAwIBAgIBIDANBgkqhkiG9w0BAQ0FADBkMRYwFAYDVQQKEw1MSUVD
+SFRFTlNURUlOMRswGQYDVQQDExJDU0NBLUxJRUNIVEVOU1RFSU4xIDAeBgNVBAsT
+F0F1c2xhZW5kZXItIHVuZCBQYXNzYW10MQswCQYDVQQGEwJMSTAeFw0yMTAxMTYx
+MzAxMTRaFw0zNTAyMTYwMDAwMDBaMGQxFjAUBgNVBAoTDUxJRUNIVEVOU1RFSU4x
+GzAZBgNVBAMTEkNTQ0EtTElFQ0hURU5TVEVJTjEgMB4GA1UECxMXQXVzbGFlbmRl
+ci0gdW5kIFBhc3NhbXQxCzAJBgNVBAYTAkxJMIICIjANBgkqhkiG9w0BAQEFAAOC
+Ag8AMIICCgKCAgEAltPkPU39/UzJ6w/+/pASSrqQG/S4TwRQ7rE1OY1H5gQt4X5s
+/PHSCIxDf5D0kgFUcFM0JwafGrDI2Rnxs1pBIkvsgTORxIXHcy5VYGvDFiBQoBJJ
+31TMGYJuZLOqvDe8TfC7hIIIX+mB4lO6A0xjkhhpCuVrxGMUnviW1U5KX4l2JgE0
+omxKiPRtZe6cGRdZbu3z4CxH0nl4sSQKo0YP4fNLvWdh3kuYtWpJnZQpXkks207N
+qWq1pfmvxG8T6GbXrzQMjvTxk5a3BvTuhDzgpMkIQrv9zSQla6QfhsuOaqfVYGGl
+ado0BixwHWfNzQs+OYZjh+oNdLJ8hfcY7i3hSu4NYYOogYKe00bLUt2Uf0OJfE5f
+rwGcrgghh3scedCzjIZmvlsqwZ5k/TztpxS9AyDxJBSLHlLVfCKPZ7UyLVmePQMl
+BTKRvwTP7Q0AKYKr9RMFPbMHibyIMrDChb2kNNca0GksCLrq2go+NrFlGX9IiK28
+Re0izcMooUi8d4Zsoecv+Ph+EUDS/GSDJ8AtsGURCzsTTr2vUM6MPajwih/QFy2I
+DM66Uyb1EHV/h5pN0kVGDpeytP4JrcClNn3fDT3vnKwdSwUvfW91+YFTagTYB8hQ
+ziA1SoL3dN3q13p+MU+IQfQoTZkBTCAzm0IG2YExAkQiwGcCfFU6hoP09PECAwEA
+AaOCAVQwggFQMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/AgEAMB8G
+A1UdIwQYMBaAFH4Fvubd1VkFhO1+eCqdaFPwiDopMGEGA1UdHwRaMFgwVqBUoFKG
+UGh0dHA6Ly93d3cubGx2LmxpL2luaGFsdC8xMjE2NS9hbXRzc3RlbGxlbi9kYXRl
+bnNjaHV0ei11bmQtc2ljaGVyaGVpdHNtYXNzbmFobWVuMCwGA1UdEgQlMCOBD2lu
+Zm8uYXBhQGxsdi5saaQQMA4xDDAKBgNVBAcTA0xJRTAsBgNVHREEJTAjgQ9pbmZv
+LmFwYUBsbHYubGmkEDAOMQwwCgYDVQQHEwNMSUUwKwYDVR0QBCQwIoAPMjAyMTAx
+MTYxMzAxMTRagQ8yMDI0MDIxNjAwMDAwMFowHQYDVR0OBBYEFH4Fvubd1VkFhO1+
+eCqdaFPwiDopMA0GCSqGSIb3DQEBDQUAA4ICAQBS3vCBhLRtO2YR3EBhJH46s74l
+z7pkIlxUBTKafk15IiH481xg+WL9qBsUoF3TSt836K+q2g5HVFttxZrcVJa0ri0t
+8hrsHnlmMNWlO4swzU3pM/8LkE6cs1v/ku5IGmGcvBUI5o8io60ETFhiwV1VFzbr
+P9UJkHUGwKUYO1EEcKxhLu4GQ6MfdMqkfVUwEB35mVyp7JQ6vWGkGkw+1wkkSC2M
+Fvbe8qBZJBK/UDl13EFjW76tpcdDAFwY8lyOZbvin5NFzYWyDtBQmmjlLBFNBWAO
+yqWCCekJm9xLNZn4dYYpwq0D3560ffYh5sHAuRr0IsK5Vd7ju7q4jssz3XtsHwgo
+rs6F7OndHh0P1UwjtWlVqVCFGOSXOFM8yqqwWH/0+w6OuMvuzw1Q2RSIWzSEvUqs
+VVpvxyn8pf0iUVSBXIe4bVc1dUgVCK1UYW8YPRxqa+0hm0QKR9FeAl0ENxJGojEs
+R2gbtCrfh6vLEvSk2eOCyalcNWul8h+m9PHLh55xH77ZKcQ7mWMKkyAvsMKB/NwJ
+3GbGqJTFMeWI9KS/glcUo7vrUtHVNdw8DLRAYqkNJ5jCWHaC48+Z4KS9S1xUUNXR
+VIbludc8aJmXy19gZbEg6jAFdIRL3X3oir7vM5hrLfmzCOA7EKHQjkOPes4n2TxB
+GXb3DU4qmttHnAw2jg==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGmTCCBIGgAwIBAgIBITANBgkqhkiG9w0BAQ0FADBkMRYwFAYDVQQKEw1MSUVD
+SFRFTlNURUlOMRswGQYDVQQDExJDU0NBLUxJRUNIVEVOU1RFSU4xIDAeBgNVBAsT
+F0F1c2xhZW5kZXItIHVuZCBQYXNzYW10MQswCQYDVQQGEwJMSTAeFw0yMTAxMTYx
+MzAxMTRaFw0zNTAyMTYwMDAwMDBaMGQxFjAUBgNVBAoTDUxJRUNIVEVOU1RFSU4x
+GzAZBgNVBAMTEkNTQ0EtTElFQ0hURU5TVEVJTjEgMB4GA1UECxMXQXVzbGFlbmRl
+ci0gdW5kIFBhc3NhbXQxCzAJBgNVBAYTAkxJMIICIjANBgkqhkiG9w0BAQEFAAOC
+Ag8AMIICCgKCAgEAltPkPU39/UzJ6w/+/pASSrqQG/S4TwRQ7rE1OY1H5gQt4X5s
+/PHSCIxDf5D0kgFUcFM0JwafGrDI2Rnxs1pBIkvsgTORxIXHcy5VYGvDFiBQoBJJ
+31TMGYJuZLOqvDe8TfC7hIIIX+mB4lO6A0xjkhhpCuVrxGMUnviW1U5KX4l2JgE0
+omxKiPRtZe6cGRdZbu3z4CxH0nl4sSQKo0YP4fNLvWdh3kuYtWpJnZQpXkks207N
+qWq1pfmvxG8T6GbXrzQMjvTxk5a3BvTuhDzgpMkIQrv9zSQla6QfhsuOaqfVYGGl
+ado0BixwHWfNzQs+OYZjh+oNdLJ8hfcY7i3hSu4NYYOogYKe00bLUt2Uf0OJfE5f
+rwGcrgghh3scedCzjIZmvlsqwZ5k/TztpxS9AyDxJBSLHlLVfCKPZ7UyLVmePQMl
+BTKRvwTP7Q0AKYKr9RMFPbMHibyIMrDChb2kNNca0GksCLrq2go+NrFlGX9IiK28
+Re0izcMooUi8d4Zsoecv+Ph+EUDS/GSDJ8AtsGURCzsTTr2vUM6MPajwih/QFy2I
+DM66Uyb1EHV/h5pN0kVGDpeytP4JrcClNn3fDT3vnKwdSwUvfW91+YFTagTYB8hQ
+ziA1SoL3dN3q13p+MU+IQfQoTZkBTCAzm0IG2YExAkQiwGcCfFU6hoP09PECAwEA
+AaOCAVQwggFQMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/AgEAMB8G
+A1UdIwQYMBaAFD4rPpfI4nJ6+yn61DVpP7PPP73AMGEGA1UdHwRaMFgwVqBUoFKG
+UGh0dHA6Ly93d3cubGx2LmxpL2luaGFsdC8xMjE2NS9hbXRzc3RlbGxlbi9kYXRl
+bnNjaHV0ei11bmQtc2ljaGVyaGVpdHNtYXNzbmFobWVuMCwGA1UdEgQlMCOBD2lu
+Zm8uYXBhQGxsdi5saaQQMA4xDDAKBgNVBAcTA0xJRTAsBgNVHREEJTAjgQ9pbmZv
+LmFwYUBsbHYubGmkEDAOMQwwCgYDVQQHEwNMSUUwKwYDVR0QBCQwIoAPMjAyMTAx
+MTYxMzAxMTRagQ8yMDI0MDIxNjEzMDExNFowHQYDVR0OBBYEFH4Fvubd1VkFhO1+
+eCqdaFPwiDopMA0GCSqGSIb3DQEBDQUAA4ICAQApzP7eEwTbjdbdfLDvbVRCnlWU
+n+/64Zm7iDtM1BJYpQeta17gFpbAwvCY9T7PrF5MArRHItQoDYrgd6ARNud2RkbY
+TzSAytemBD3RR6ChNqasnHr1hLLHWg2u8lr8kPHYGAlFwgk/TWQ7EcMgK6SsXXke
+rLH6Ne1zvqHh5TgMkPSt0otUYxyBp3FK6iPVLq6arxNlahfvbNmB+fF12sKXvl3w
+ZAIVIxb+Awug6b3gNQ3AXKyHgUJis8aHEGEdO0OWrhyOr3E+1AyaAJxo4lrc6sZt
+dLplBlqZtd7G6cBB+Fsdu2WvUGpqKacCYb0j0smClfhUkytfINEBYPLYLsIDDE25
+8lfD3nMyJqHDeNPpTI45B3mmuG/7B5+KP02u/71OBU+cf41V+6IDU8ikDQv0rJgP
+FEptiXeejR81qd0oL5mGRVwSdz/CrNXP/11oASP/VL2iygZTtMHF3PUTWpbVjW1e
+fCdA7n1Hn98YUYxnNSbDT7w1SLWZP7ZiutHW0UYSxof9IzWws7UBtXk1N6XCzgXt
+DTbqkNumRRZXjvwFWakCSzccyvQiNIoYYNOQUG8ZP7QygVxtxeKbMQTfxNu9gJaW
+jcgme+HQ2INYUWQ18YUj9qscJ6XKgpXbjBSvdj+l8Gf19CUt9FgssvqkVuQe1Rvu
+LS+mpeTAs3+hdjgGLA==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGpTCCBI2gAwIBAgISESAy7bhF5O83HirlZJXk4FhwMA0GCSqGSIb3DQEBCwUA
+MDAxCzAJBgNVBAYTAk1BMQwwCgYDVQQKDANHb3YxEzARBgNVBAMMCkNTQ0EtTUFS
+T0MwHhcNMjEwMTI3MDAwMDAwWhcNMjkwMzI3MDAwMDAwWjAwMQswCQYDVQQGEwJN
+QTEMMAoGA1UECgwDR292MRMwEQYDVQQDDApDU0NBLU1BUk9DMIICIjANBgkqhkiG
+9w0BAQEFAAOCAg8AMIICCgKCAgEAyZfTvYzN4644Hc+pR5WEVVo7E8K2qvF95Cay
+571WJ4fZsB0kDpzhXD38jLKw+OSv0hGJ/qmVZfROHs9kHWOqxkxhqWn1kRt0idB7
+uLIH5Y0R6Ea2B8JCKEFFmTrLemAGRP0/o5YwZQC/0+lBZme5IACVu4PLiWOqvglo
+6F8pZV98Uv91PZGNmQWTLhc6Ik8bndB6rdl35EWJyATEJYDSpWsP5KQlvgW8hMNH
+IlzT/1BoMWzWrEmxZ8yosNK+GNzTKLS5MiRee3O6OEIqllHu7oDTKYysxX2puRbl
+dQrevYwH5GTJQfFArz6LHJHgus7vI2KoMW2h8ozz9bnepy8kRPp5Rf+wLHW7rP4g
+mUe0Xg1CjxgfCbn0aFOp6THy/GglE+qVq519s/dYFiYiS5g4FcCSN31NjYnABvHy
+fowdhrwNO3C6fPdDnonLXsTWp7qmA80Vfi0AINGfXroBQh/AZty7H6zKk4Y1TUas
+R6D8behdRu1urvgqtb52p/UTTeMz5SWP7Qfk+Z57NPWEIhvRvnP/UygN2NH92le9
+FC6wuW9Pqw3oRGPnAXLNez3phMvESYnE7kpuaYy+XSuQxDsJSW5uJ54GI+BiJbru
+ciK0SsLfUPtt8/yC2FomYzYW5dEG5gV7+nxkpxHa4WoHKhJShYB39H8WB/P6v0gK
+dmGOrrECAwEAAaOCAbcwggGzMA4GA1UdDwEB/wQEAwIBBjArBgNVHRAEJDAigA8y
+MDIxMDEyNzAwMDAwMFqBDzIwMjQwMTI3MDAwMDAwWjASBgNVHRMBAf8ECDAGAQH/
+AgEAMBsGA1UdEQQUMBKkEDAOMQwwCgYDVQQHEwNNQVIwGwYDVR0SBBQwEqQQMA4x
+DDAKBgNVBAcTA01BUjANBgdngQgBAQYBBAIFADCB1gYDVR0fBIHOMIHLMDGgL6At
+hitodHRwOi8vd3d3LnBhc3NlcG9ydC5tYS9DU0NBL0NTQ0EtTUFST0MuY3JsMDKg
+MKAuhixodHRwczovL3d3dy5wYXNzZXBvcnQubWEvQ1NDQS9DU0NBLU1BUk9DLmNy
+bDAwoC6gLIYqaHR0cHM6Ly9wa2Rkb3dubG9hZDEuaWNhby5pbnQvQ1JMcy9NQVIu
+Y3JsMDCgLqAshipodHRwczovL3BrZGRvd25sb2FkMi5pY2FvLmludC9DUkxzL01B
+Ui5jcmwwHQYDVR0OBBYEFJH7Z0uAgv9NVAyasyNLfw7IXevjMB8GA1UdIwQYMBaA
+FNsE2uY1osvs1j+NYMIGDv1d9xnjMA0GCSqGSIb3DQEBCwUAA4ICAQAixb/PoE5z
+fgDL7+kXBYv8uBnJ29Dfz5mc4ztENe7pHsaecgN9Jp6Al8vQoz9jhKjVyWMvTV8W
+Jka0hQbwVSRyfikd4Qvqng02JNsJjRNl7ebjYa/QTrtGctv01F4iERm4gCpToY1V
+hmefKnEkDVimEnOmy5hlEboFGTQ/ENDGnDja6Ze7tXVyDHXrtTcBKzZBVBdyMMpf
+Hij+uNPHjjPeH9QHtbj7Oso/oL1opOLvLXByDpVfJX5dX1VZyBf7YlvqzJALjleA
+6SDw+H+1J2MJy/aUa1tAVS6dtOLdQDgWHRf11vXh/bt+ASh9unIBnzs10Lkf2hiy
+/BUzjdl+7885vdwWHXk9P4pu0GXE4YHI36GYuXYbmm47jTXGYOXPtijG/erLOFqv
+KJdnR4LteWB0C2Uld0JoUKV1K1yGrsF/1FeAnvLpgCrieM/PVa4KZ23MSb2wVAXu
+RJpvclBgU+P2fojHnpLjUHi+UAvs+PkdiboRE0rhnrPCAs7XmF452Hfw+6lIyYwn
+G3D5HFi7b5Yn+lPKocTJOL1m0TrEkad9bZRrfLbXH57rDgOy2hzeEsDYYYk7DH7Z
+LRzdMflk2jAePgEXwd5Be+GJaZLiTLGqYgdMfDhrQepIvhvxFzAPZzgjq7rdnjfT
+/O9pISmEOqCK0wSzCWi2my74kJC3+wPNNg==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+X9RE47B0QCAhzgzcAEEvX3r95X20dF6H5P0=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGsTCCBJmgAwIBAgISESDJMzdJdDyqz3gagqINBxJ0MA0GCSqGSIb3DQEBCwUA
+MDwxCzAJBgNVBAYTAk1BMQwwCgYDVQQKEwNHb3YxEzARBgNVBAMTCkNTQ0EtTUFS
+T0MxCjAIBgNVBAUTATIwHhcNMTUwNDA5MDAwMDAwWhcNMjMwNjA5MDAwMDAwWjAw
+MQswCQYDVQQGEwJNQTEMMAoGA1UECgwDR292MRMwEQYDVQQDDApDU0NBLU1BUk9D
+MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA3XLVxhHDxq2iphmjbuAM
+t1F74nwE2tXM1iWL53dbPQi5LbsYyLM8sr/cVO/xKJHCZZnZDw3BloKWoOSysCW+
+V+0QK2hMT02iLCqF1wf9EgcTCkj02U6yd5GKJvBI1Haa2mHxg83vGOLAzzl96QMb
+kRbUohFFPYEG+i0TxRE6fitbp91ZlMhfY/rzlINjFW22Dt+KUi3DtgRTTa6oTaMX
+vl08NcOsjXQKR4ltZ19/H5dkasKTLQdlmCEbJUVyCLFpcpov+3ybzPOk3doxIU6G
+wWpvxY/WcIeyAQA0B1vjcre/zmU4cTaJ6/zCEwmK4tDA4VIQgaYX9RRUQg8q9OlU
+18miPm2bhd7jaCWuvO7CSPIDZdRL8TfM8ODgk1w8fys4NNpAaNXqM7CYFoAXAhF/
+olduKnletAsHv5ZZAhpxkrGsDOOneOGDDYGjPQR7vtzWXzm3CkNSXWGbwNtRPQ3d
+BpcelavJWWCO9Eb4lPc5S2Tl9lF4JNVm/FTRl0fn0TpztKZ7q06j8/BJbILytklj
+qWo9iAy20yTNIH25GCok4laicofzikvfFXKkI0pBKTs5b/qMvEyS+eUKrzq1b23Q
+72QYGi6G7e6wzzQ+lOrL20PY9WrMqpuNRYbX6/22yM051aHgH6rlePkscLq1ACrG
+VH/BVQhHleK9OoyR0e6SMa8CAwEAAaOCAbcwggGzMA4GA1UdDwEB/wQEAwIBBjAr
+BgNVHRAEJDAigA8yMDE1MDQwOTAwMDAwMFqBDzIwMTgwNDA5MDAwMDAwWjASBgNV
+HRMBAf8ECDAGAQH/AgEAMBsGA1UdEQQUMBKkEDAOMQwwCgYDVQQHEwNNQVIwGwYD
+VR0SBBQwEqQQMA4xDDAKBgNVBAcTA01BUjANBgdngQgBAQYBBAIFADCB1gYDVR0f
+BIHOMIHLMDGgL6AthitodHRwOi8vd3d3LnBhc3NlcG9ydC5tYS9DU0NBL0NTQ0Et
+TUFST0MuY3JsMDKgMKAuhixodHRwczovL3d3dy5wYXNzZXBvcnQubWEvQ1NDQS9D
+U0NBLU1BUk9DLmNybDAwoC6gLIYqaHR0cHM6Ly9wa2Rkb3dubG9hZDEuaWNhby5p
+bnQvQ1JMcy9NQVIuY3JsMDCgLqAshipodHRwczovL3BrZGRvd25sb2FkMi5pY2Fv
+LmludC9DUkxzL01BUi5jcmwwHQYDVR0OBBYEFEsiJI+1EHrs8vYFUP9VU+hJRCKn
+MB8GA1UdIwQYMBaAFDhpHadAmq9VIf+tRr+H4OA8y+KbMA0GCSqGSIb3DQEBCwUA
+A4ICAQCW9v7hrOXGEBDO/ltwfrPWTwMPiP7TQkc9jwDgazyLU+5EqL4VpCgMxWOI
+J6Y5TZxzsYaw+RGK0ICW0LbBUL+1FWJVHhYN70LUCwq7fMZ2CZj/XPxtuDOSCmYG
+gLAPVXc77f6pKONf70eruaIVze6nRQebbwzB7+dxEIgqA/unzT66Esx8NBoJBZ0a
+Em4GN76ex4eoFePe+ubchl17Dwb5OvYLjbcCS9gpLtVkpiAe0jfYe4DeAoJDVDKu
+jAHiWBDZNyXu3dNJnPne6ggEB8HsaFWpQuY8RaaGFXNs93go0ZOUxOzHG6fINaBh
+Rd3Li5G2IL16y7L4qHuQxxzeIiAOSVbFXjUBgSj+YCzVi5uGty70HLsV+3YU9AdP
+X6uNT2BbMMugLNqxB7R3xVlB9UbNU8fP2qNHYVUzYD3UwJ0iWR7n6FciSeodeMpn
++zc1+TQWPtuoihXjkjja1ECr/Vaq0KhIxmJZlJaZ5qabaNVvkJPv8rcoZuW3CAp+
+mIyQVQfCP4qwxQg5w6b5vZ5+tqGM5K6oQVzzCKasApp+sR64bKGunjB0VcK1QHzA
+LHKL4oYq5Ymlx5EwtE1UI5Z4/ob5criIJpxHAWXzce08/1TmGsXMTmOYD414g66b
+KiU4SWVQE4yuKPvEXSfuqi5RujST1IpbWLOb292BSTBlcK9Jjw==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGsjCCBGagAwIBAgIESkAL9TBBBgkqhkiG9w0BAQowNKAPMA0GCWCGSAFlAwQC
+AQUAoRwwGgYJKoZIhvcNAQEIMA0GCWCGSAFlAwQCAQUAogMCASAwNTELMAkGA1UE
+BhMCSFIxDzANBgNVBAoMBk1VUCBSSDEVMBMGA1UEAwwMQ1NDQS1Dcm9hdGlhMB4X
+DTIwMTAyMjA3NTQyOFoXDTM1MTAyMjA4MjQyOFowNTELMAkGA1UEBhMCSFIxDzAN
+BgNVBAoMBk1VUCBSSDEVMBMGA1UEAwwMQ1NDQS1Dcm9hdGlhMIICIjANBgkqhkiG
+9w0BAQEFAAOCAg8AMIICCgKCAgEAu2pMj7fvvWEMA4zu2tGroYWqxzniJGhWVFN1
+HlUvkSqdXpuqyNkHH04WyR512V7Y08W/mTQKHOX+bESX2VhiqatUm43vhWGSjcgR
+Jy7k0zJNel5WU9aJ9VWnoU8VUJQLAS9pr1pDHc/mvSTLzu3gpCcLY3i5m97c6VSD
+Ti591pgHTdHUHdbstBnxsuzGu5gPEnj+1IRk6qsUXfvvy+EluADjL8K3gffgHUtc
+Zb4/PFW/zHizcHsIpny6c3Q1twZSkcqO4Ah0zWwteXDGLsIcd7ufyRP0FNu4TPmI
+3C+rj7tbsbGDw/tTaw9gGk+P5oTEW5VQmjW3OsajBMJRH8+hpCXNaFfE6gfXTD/h
+BUHjzZfg/gct29SzXjSwrt67NFIRlqy5swR0u7ae57q86Oq6wDRB4suITdjAyFYb
+rV0G63ZDa3wyWLDN1EbuWi9X8taYAUAaXH+aiaq3UbUjMYCK/dnISgJ97eGQenLi
+6mR7wHRJDgONdpd6HpmnL70zFYI4PmjieBNkk7NAfb2HlSextKUQHyCyik+o8Vtk
+6nmVNUMrzTGKdPLwUrQ4QGe4VEpeaPZps50rycLJ93Zo8xqZD9G7s2by9eaG+p6t
+BxxjX/67UCE9CIkxobpdSKMHgupnezV4AzuDB9i6ucGAxqsWcvN7/lSEJ9SQWdMZ
+4lUR9TMCAwEAAaOCAWAwggFcMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/
+BAQDAgEGMFAGA1UdEgRJMEeBGWNzY2EtY3JvYXRpYUBlcGFzc3BvcnQuaHKGGGh0
+dHA6Ly93d3cuZXBhc3Nwb3J0LmhyL6QQMA4xDDAKBgNVBAcMA0hSVjBQBgNVHREE
+STBHgRljc2NhLWNyb2F0aWFAZXBhc3Nwb3J0LmhyhhhodHRwOi8vd3d3LmVwYXNz
+cG9ydC5oci+kEDAOMQwwCgYDVQQHDANIUlYwKwYDVR0QBCQwIoAPMjAyMDEwMjIw
+NzU0MjhagQ8yMDI0MDcyMjIwMjQyOFowEwYDVR0jBAwwCoAITnCXSTeqlIcwEQYD
+VR0OBAoECEYjSdo8IEMIMD0GA1UdHwQ2MDQwMqAwoC6GLGh0dHA6Ly9lcGFzc3Bv
+cnQuaHIvY2VydHMvQ1NDQUNyb2F0aWFDUkwuY3JsMEEGCSqGSIb3DQEBCjA0oA8w
+DQYJYIZIAWUDBAIBBQChHDAaBgkqhkiG9w0BAQgwDQYJYIZIAWUDBAIBBQCiAwIB
+IAOCAgEAI97drhqic17+qeB7Zk8Cwvs5996b7lUwXTYDYTBeitsgMlx/7UmRxiCm
+08kp9NC9g7sXwuzEs4qk+OYHNLC2ojNOjDWgXMXk9DYy3BQvBaDFhN9EVx9+g+DR
+rlwwjzNikC61YJijMmLoHWiER/XyOEPdDi5W03Jp5TbMnYhYhJ/ZdDVI/m3Vt6g6
+LWxCLX4ewxc0HoY6eouZYkeFLd+R4gt/MtU6CrwTRUs+PNjx064YCyiIx5ebZdwV
+UlEafflj/1nujT+yCN/10xTsc+u3mjkU2e+kX8yUGhpmLXHELDUH9cee5Niizdvw
+Ya531bB+uoXMllTMX91ED9tKJT+q9V7AAZxKsvI13qE21jCw7M8ebD77C8Oen03x
+EkblIbYQJdQ8B47adMxLeY9cgpnEKoEb2gCVDE5JguZS3mw4I3HwBhtTWx4nQxpQ
+Mvq64E/DhAk9zySIzviQit8kJDXENjvAoHfCAyJQuG+7CvkzTuB59Q3jAQpvzROV
+KwaszXZd04oQHhxCR+Glel//kI7ugLgg3FCOHNQaars2pvDXuhGYVlNwUURsR/10
+R1Eu+3LD6q6UzKsvyxKvsL7GS02ih8j92czJ5a0hHo3Oed626ucnu7vksYExUMED
+xyXeukLiudXlAceT50XhNRcudzXoWEjy9mFyaAFky0Uy/Gtb4jE=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGszCCBGegAwIBAgICAOUwQQYJKoZIhvcNAQEKMDSgDzANBglghkgBZQMEAgEF
+AKEcMBoGCSqGSIb3DQEBCDANBglghkgBZQMEAgEFAKIDAgEgMG4xCzAJBgNVBAYT
+AkpQMRwwGgYDVQQKDBNKYXBhbmVzZSBHb3Zlcm5tZW50MSgwJgYDVQQLDB9UaGUg
+TWluaXN0cnkgb2YgRm9yZWlnbiBBZmZhaXJzMRcwFQYDVQQDDA5lLXBhc3Nwb3J0
+Q1NDQTAeFw0xOTA2MTkwNTE1MTlaFw0zMTAyMjAwMTI4MTJaMG4xCzAJBgNVBAYT
+AkpQMRwwGgYDVQQKDBNKYXBhbmVzZSBHb3Zlcm5tZW50MSgwJgYDVQQLDB9UaGUg
+TWluaXN0cnkgb2YgRm9yZWlnbiBBZmZhaXJzMRcwFQYDVQQDDA5lLXBhc3Nwb3J0
+Q1NDQTCCAbUwggFNBgcqhkjOPQIBMIIBQAIBATA8BgcqhkjOPQEBAjEA////////
+//////////////////////////////////7/////AAAAAAAAAAD/////MGQEMP//
+///////////////////////////////////////+/////wAAAAAAAAAA/////AQw
+szEvp+I+5+SYjgVr4/gtGRgdnG7+gUESAxQIj1ATh1rGVjmNii7RnSqFyO3T7Crv
+BGEEqofKIr6LBTeOscce8yCtdG4dO2KLp5uYWfdB4IJUKjhVAvJdv1UpbDpUXjhy
+dgq3NhfeSpYmLG9dnpi/kpLcKfj0Hb0omhR86doxE7XwuMAKYLHOHX6BnXpDHXyQ
+6g5fAjEA////////////////////////////////x2NNgfQ3Ld9YGg2ySLCneuzs
+GWrMxSlzAgEBA2IABKHOI8Jw6Mo/qVkvV4JnCm5lGcmmqDsdigya73uTXBNAOCyD
+qBPqO59yoKlYUdZzs2fjT57AEh6DZVLkSuQ5r/eSutRAQ63yaVyx2ub8ehgE281Z
+XFpxyR9uM/Ey/OI0NqOCAV4wggFaMCsGA1UdEQQkMCKBDnBraUBtb2ZhLmdvLmpw
+pBAwDjEMMAoGA1UEBwwDSlBOMCsGA1UdEgQkMCKBDnBraUBtb2ZhLmdvLmpwpBAw
+DjEMMAoGA1UEBwwDSlBOMB0GA1UdDgQWBBRqtPKSgr2WR/b/KgL3lE10npeEYzAf
+BgNVHSMEGDAWgBRIRY6IaSag0LEdK0IvxZtFm+HsezAOBgNVHQ8BAf8EBAMCAQYw
+KwYDVR0QBCQwIoAPMjAxOTA2MTkwNTE1MTlagQ8yMDMxMDIyMDAxMjgxMlowEgYD
+VR0TAQH/BAgwBgEB/wIBADBtBgNVHR8EZjBkMDCgLqAshipodHRwczovL3BrZGRv
+d25sb2FkMS5pY2FvLmludC9DUkxzL0pQTi5jcmwwMKAuoCyGKmh0dHBzOi8vcGtk
+ZG93bmxvYWQyLmljYW8uaW50L0NSTHMvSlBOLmNybDBBBgkqhkiG9w0BAQowNKAP
+MA0GCWCGSAFlAwQCAQUAoRwwGgYJKoZIhvcNAQEIMA0GCWCGSAFlAwQCAQUAogMC
+ASADggIBAF+hBKG0ujw0qayI+sC85xILWTdOHRv74UOvMuw7zIrD9VgGJAzXh7qT
+3mcQARS575PYrmsDtV2D0qAVPIjePPit3ao08xZzSAMxEUzDL1wTo53SGlmYBpnj
+aQtWrWfPz+Ia7ae8rSDrfdVNVYmuHWeeaRz3OpPUea18mrEH7PxmxhAMgzEhJJe0
+Qw22nUMo2vM1eR9lqvjmz5oa2lFRkf1Hh5fQ+ioTVFf5jHOq2A9s6h+ofhJ3kPUh
++t8l0QnLHwnjcRGnn7NQulK1QWjKmtL9XjmhOsPNlQygkkLBhh/vAcxXA5cABQDy
+n0dkw3j1WrhaETU209Q1gCxYS3+7SxHqIfO/7fYoN/l4IQrioXt3cx2EYD7Qin0O
+HGPvE9mf79/3mGnxk6yp6OyF8eLGI08xOHHMJBSKtvhlOlkSrxolgO9ibzvSU8wo
+/eFXSC0ck0pdQT4PrmXxF420qvjSLgeJaLvuB9Tvk7jJBGM8l8wse7YiTOzH/JYD
+a7Dl/3PsAo3sSQbj6k53Qtyn+Du0hwYG1nQ+6rUcpx40kdmf70d8UZ42xUePqHTY
+Xgyk8+9rPDeyVa/EB6RM/dsyfmrzO0OpYuRC+S6SQch0ecrJfTLBk0DTO0cJiCos
+Wj6dD6eIYXIVPdEnpxl6vwM2VjqlYBGyoWDsv1eZvPdzP3TxP28a
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGtDCCBJygAwIBAgIQW1VWiiNUWBN17SlBEm0g/zANBgkqhkiG9w0BAQ0FADBR
+MQswCQYDVQQGEwJNWDEsMCoGA1UECgwjU0VDUkVUQVJJQSBERSBSRUxBQ0lPTkVT
+IEVYVEVSSU9SRVMxFDASBgNVBAMMC0NTQ0EgTUVYSUNPMB4XDTIxMDcxNDE3NDEz
+MloXDTM3MDIxNDE4MTEzMlowUTELMAkGA1UEBhMCTVgxLDAqBgNVBAoMI1NFQ1JF
+VEFSSUEgREUgUkVMQUNJT05FUyBFWFRFUklPUkVTMRQwEgYDVQQDDAtDU0NBIE1F
+WElDTzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL7Mn+3G67Lt42ST
+E4z4zuBdpXtavDW+zwYuHM6bsZbt9P9tyqjmHWX4mOpjpgHoI085UEHjYhtFQeFC
+mIIGTuzRP+/xv2Ej5c4jNU3TN6obx463Ecl2AthXSiGzNkYccTPtpI9v5zhrVb8d
+joaRriW/Y7TPx5Pn+C14eUH8NAIuGU/5iHBiLg/B2njTnp7hQjZjmtvKpm+y9Iil
+n/R4F2ElBy2/qCI98vCsmNHw8VaVqSeLCLCHPezviA03jwV3ybH5SIGY8GDdFAo2
+XR+QOHy8n4umhFPLGx0Ziyh1yH3K6b9h/1THci93CmtCzjy1nz3j3OlFfTYcWFnA
+UHH7pmTakfsanK0ICJZWx2EgHYkMCoKeXQxjzGxxBHhRWWLmtWdRgwhbLWABHd8b
+cnyzPLm6imyf9YWcVGYmvp6dWZF2kHENbTH4oqjAO+nWEBamtBgX62GAdDYCfbUc
+UgAxYTH0zD9DZ9MXwY7mODxB2EH8qWPBgM2HZucD+IjQj1rjuz1OcJzeJIzqnH+w
+hHC3D5Fv0aRTv/RHPCis4v8jZdoA1i/UqQCQwwsIXUMmcYJnETCDhJhL+OHfauXd
+WEwiSjnTLBZ3FmNyhlPkpqIVK/QjAi03uRWWrZ4Ui4CnWbPXzYVxsSaUw97qMOn6
+fqh4wMc5qm4r51eF/JzZ1org1LdTAgMBAAGjggGGMIIBgjBDBgNVHRIEPDA6gRZj
+c2NhLW1leGljb0BzcmUuZ29iLm14hg53d3cuZ29iLm14L3NyZaQQMA4xDDAKBgNV
+BAcMA01FWDBDBgNVHREEPDA6gRZjc2NhLW1leGljb0BzcmUuZ29iLm14hg53d3cu
+Z29iLm14L3NyZaQQMA4xDDAKBgNVBAcMA01FWDAOBgNVHQ8BAf8EBAMCAQYwEgYD
+VR0TAQH/BAgwBgEB/wIBADBlBgNVHR8EXjBcMFqgWKBWhilodHRwOi8vcGtkZG93
+bmxvYWQxLmljYW8uaW50L0NSTHMvTUVYLmNybIYpaHR0cDovL3BrZGRvd25sb2Fk
+Mi5pY2FvLmludC9DUkxzL01FWC5jcmwwKwYDVR0QBCQwIoAPMjAyMTA3MTQxNzQx
+MzJagQ8yMDI2MDcxNTE3MDUyM1owHwYDVR0jBBgwFoAUoCu6ZRXgGVDQ2uw6yUL+
+pNg1nFQwHQYDVR0OBBYEFKArumUV4BlQ0NrsOslC/qTYNZxUMA0GCSqGSIb3DQEB
+DQUAA4ICAQCJcDd8vlYV40sldnk0gaIwNjPJ2S3BRt+H1fyjo8HTuNgCYa/lGfUS
+zVnkcuDCUqtpF6rZcaDjvZG+5uCIpqBss8tGwY+2qtRi2gw3OoCG2PKk+/Bv4Qmc
+Se3gPtWF3qArzw+L00zCZNiFk3gee5zy6e/YFchgRgOIjTGTXeBZRmY2uvgf23KL
+iywJ+W+YwdTTx97r5zEVVo2102MbAoLSPeBzgOqUU5Qx52i9TjuhQsS5DL2s+mZS
+SI/RbxYttNPF+/q1+uVTP+5JRIdUrPUWR6iX5zN2dy91QXvoWSslMobme4aAInQu
+PSkN5H1olTfca2JtNQlA37tAJOJL3ZnBd1u4cqHlwpfIRZ8jc552g8YshzonxOUB
+GJmWjhyonkqgk6twJ/aFJxAJiuan8MmKh0yY4Z/rcS1y77WZqyry6JodbrKDnUX8
+vFLe4ywOnslXoCOp8R3oHDkTvuzxqZuOTJPXPyl+R4qeG/EZX4aIL+iNBa0I4N5Q
+KLLKjMBiaw2pvW9lYcTyDOV3siWS2LTuDBrYTqqumL+K2mthEfWvbKcsOH9c/RHd
+39OAgFQJfxJ91d73sGcraI5SggFG6eKDe8HhdobQ1jv7cRB/3WUEQFu8l2RoKFfk
+For0xNMcrUOlFasddLlNLBRn3dkGniNQP7QwZ+M9nVZxKw0h7Kh+Fg==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIG2jCCBMKgAwIBAgIEIght6zANBgkqhkiG9w0BAQsFADCBhTELMAkGA1UEBhMC
+Q0kxMTAvBgNVBAoMKENPVEUgRCdJVk9JUkUgLSBNSU5JU1RFUkUgREUgTCdJTlRF
+UklFVVIxMTAvBgNVBAMMKENTQ0EgMjAxNTAwMSBDT1RFIEQnSVZPSVJFIC0gSVZP
+UlkgQ09BU1QxEDAOBgNVBAUTBzIwMTUwMDEwHhcNMjAxMjI4MTEwMjQxWhcNMjgw
+NzI3MjM1OTU5WjBrMQswCQYDVQQGEwJDSTExMC8GA1UECgwoQ09URSBEJ0lWT0lS
+RSAtIE1JTklTVEVSRSBERSBMJ0lOVEVSSUVVUjEpMCcGA1UEAwwgQ1NDQSBDT1RF
+IEQnSVZPSVJFIC0gSVZPUlkgQ09BU1QwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
+ggIKAoICAQC6ujwpCt8rcM7k77QtwPyKiUcpBWne8tLSqem0pKM7UPeO9arx9gRJ
+5NfKzgXuW/wI8LvzqqWqQn4mi3CPOwo6gud6Ow5YWtzqLDhSm3oJcAMpF3RpJCX3
+jEgE/gxwZSG4Wp9UFDGJLs2qaytm4pB/0HYIh85pEZuYa95J6G8hLClnZoJwnTFp
+Hq2vqOGD28wQbrWgyB6FEpD8y1O1V9hqrx0ZND3BVotNoCCHIsrFZ/P1KLotsp2O
+ILPTcCxDzot+qkIFbNDRrSr2yH/CZKXDwupaR187xIBNgKGfP/bk5AIAbEODy56v
+S0UkH+PFhan8vlHN0m0MtG1Xi0/O31FtW/nWjfJ8pEjgxFcbqiwFNEGfbzC1LfTT
+NgmLGe9M5PUtNg6lWB1fMdYP+xulW4fIK6UK0FfSBn2442uH9dDjLLNWPOTazBVF
+Ey2qMQyUAVnvmtWWsUExaTc8hSEyB/lGFSrH+IOmzv0bTwDMTugEffl6qyPsT2MI
+Emrids98blvbU3hIjya/F2/wcOLWy72r2trQOz7UxKc334ScH1vGtmoyCnLwxUp5
+TgKuTXPlwmHBaJpMIkEXeiZpEg818eoFTDo5FlnigUlS3ce2j0iMpFzZmIQCVt3S
+8woeOrcbtV69/asQxi15SMtvS7fG37O86T8ETegOE95miQWWlgg0zQIDAQABo4IB
+aTCCAWUwHQYDVR0OBBYEFPnR68q8UPK96qqKdEo8vK567vD8MA4GA1UdDwEB/wQE
+AwIBBjAtBgNVHREEJjAkgSJjZXJ0aWZpcGFzc3BvcnRAcG9saWNlbmF0aW9uYWxl
+LmNpMA8GA1UdEwQIMAYBAf8CAQAwPwYDVR0fBDgwNjA0oDKgMIYuaHR0cHM6Ly93
+d3cucG9saWNlbmF0aW9uYWxlLmNpL0NlcnRpZi9jc2NhLmNybDCBsgYDVR0jBIGq
+MIGngBQlR5tmWETtnlgpgFV8aWs364MUIqGBi6SBiDCBhTELMAkGA1UEBhMCQ0kx
+MTAvBgNVBAoMKENPVEUgRCdJVk9JUkUgLSBNSU5JU1RFUkUgREUgTCdJTlRFUklF
+VVIxMTAvBgNVBAMMKENTQ0EgMjAxNTAwMSBDT1RFIEQnSVZPSVJFIC0gSVZPUlkg
+Q09BU1QxEDAOBgNVBAUTBzIwMTUwMDGCASIwDQYJKoZIhvcNAQELBQADggIBAI1/
+iT7s8LfC0IaAxGpB/Yhs/xv9vChN7aURj9jQkSCMeqHps82K3ZO++OKB9Z1yk1Cd
+GP10yScseKh1Z/l2PMebyUrdtPui8QpRPeaBL/YqKJtUnWhlqRfy76smTiQJisV6
+4S/k7PhZaP2bfKaUASvjUKMvJNZ5KyZFEAAYOAxn+YbdrtgYrFKIMOJIaKDdxYog
+eu4cpxTqCZfAqPUjmCkkqNEWKkMc+xyyyhmzCOutpKYVN8AURn0Ax/L403c5M6mI
+Nn34bcWsi4N6bh35zg+wQkieKti2V8OSS6NseKaa4Cyl7DUqfr+F9ZYo3r2WEa9w
+0AGnxGn3HWbD2TOPexwz9aqYgUDPyvA+esWE3XUxA9AbCBjFvujSXs0/GELlKBTI
+6dnWXA0tXlIrrDqa+H2O55UJ9mfQIy0e0ZO4rI1U2CidFMCx7POfGd/6WbMwRApl
+DpYCfBIVMGt2mMrF4tG/TUb6S8uSeDGzQEx9GAS8O+mo4t/4n5wwFIyvvpvpgpI1
+YxcSD44j3t6Aw9CqyvPaKO0mEEvXuxMCasQ0uXZq25/Q9SB4/jE+qUj1UoeYdGof
+TQLFfjDNEd9d5xJDJBSUdNhdch70gcGHNhDZ/txs5WXtMEJ/hXRRe2l3irtAShr/
+W5GD0pePRDyf69YLvFkEXKZNneIFZcDGqNBNuN5s
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIG6zCCBKOgAwIBAgIIDZmxVDEXNZIwPQYJKoZIhvcNAQEKMDCgDTALBglghkgB
+ZQMEAgGhGjAYBgkqhkiG9w0BAQgwCwYJYIZIAWUDBAIBogMCAUAwgYgxCzAJBgNV
+BAYTAkNOMRgwFgYDVQQKDA9Ib25nIEtvbmcgQ2hpbmExHzAdBgNVBAsMFkltbWln
+cmF0aW9uIERlcGFydG1lbnQxPjA8BgNVBAMMNUhvbmcgS29uZyBDaGluYSBDb3Vu
+dHJ5IFNpZ25pbmcgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MB4XDTE5MDIyMTA3NTk0
+MVoXDTI0MDEyMTA3NTk0MVowgYgxCzAJBgNVBAYTAkNOMRgwFgYDVQQKDA9Ib25n
+IEtvbmcgQ2hpbmExHzAdBgNVBAsMFkltbWlncmF0aW9uIERlcGFydG1lbnQxPjA8
+BgNVBAMMNUhvbmcgS29uZyBDaGluYSBDb3VudHJ5IFNpZ25pbmcgQ2VydGlmaWNh
+dGUgQXV0aG9yaXR5MIIBtTCCAU0GByqGSM49AgEwggFAAgEBMDwGByqGSM49AQEC
+MQCMuR6CozhtKA9db35Q5kHfFS9xCe1UVrQSsdoZf7cRI6zTpymQHRpxh0cAEzEH
+7FMwZAQwe8OCxj2MFQw8cggKzgWvoMK+oo5PsieHE5Fl77qR+Q+KpYFKUDrU6wSo
+x90izigmBDAEqMfdIs4oJos5tVQW8ER8L7d94Qfc0qYuiA6lPuti1Xy0OQKV28mU
+OreGlvpQTBEEYQQdHGTwaM9F/6KmOoG3wT9riEej537xT+Pbf8r+DL0Q6Ogm4DQ2
+1kaq74ey4kfUrx6Kvh11IPnCpFyx646Vz9VSYrcLKf7sWGThnAVP+ZEpKA5GRiF3
+kYERQoIDQSY8UxUCMQCMuR6CozhtKA9db35Q5kHfFS9xCe1UVrMfFm5srAQlp886
+tq9rf8MQO4gyAukEZWUCAQEDYgAEdMq1HQji+mKnCvv+7amuN0Kr+ILgA8qqKCvd
+jvmYaiOZnzzuxaAgEA0Xw0J/Mz3KaeoSgT7QdBwPnigUNtaN+V++eyt6yd9zotKY
+1ICDcRIhv0CTH8GuvGIDdD+r4g40o4IBYjCCAV4wHwYDVR0jBBgwFoAUXYkeeRT2
+/f/UChvG8QpeXc1LyoYwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUHKJH
+e+9sNa7fQE7bXbJzDDR7p3MwDgYDVR0PAQH/BAQDAgEGMHUGA1UdHwRuMGwwNKAy
+oDCGLmh0dHBzOi8vcGtkZG93bmxvYWQxLmljYW8uaW50L0NSTHMvQ0hOX0hLRy5j
+cmwwNKAyoDCGLmh0dHBzOi8vcGtkZG93bmxvYWQyLmljYW8uaW50L0NSTHMvQ0hO
+X0hLRy5jcmwwKQYDVR0RBCIwIKQeMBwxDDAKBgNVBAcMA0NITjEMMAoGA1UECAwD
+SEtHMCkGA1UdEgQiMCCkHjAcMQwwCgYDVQQHDANDSE4xDDAKBgNVBAgMA0hLRzAr
+BgNVHRAEJDAigA8yMDE5MDIyMTA3NTk0MVqBDzIwMjQwMTIxMDc1OTQxWjA9Bgkq
+hkiG9w0BAQowMKANMAsGCWCGSAFlAwQCAaEaMBgGCSqGSIb3DQEBCDALBglghkgB
+ZQMEAgGiAwIBQAOCAgEAZM+QsAiM8QVvYz0nxlR5iSsjqflOTTcs9ZHUL7z+E+sO
+Of2ywpYk2iZbcppXbFD5vV8p60i436ygg4iBqkek4UHYhkglkCiapfxOdsbLmSEz
+HRy72jTTH2GKeYe6kgQwGGC3wP/FmSCIL9EdRVKcF6/zaKB7rxACU5loTwOSh6e6
+AbumbA+ujyyTjqJxKpUhd6DPbn5ye0Yz0mIP5V8VePuIPHCfVCUknvc8Ts7mqTv1
+F9i+Mn4oqBxFFjHpJD3ccAYNlkI9B7WTNBQErryJ/RHpTGFHHFG2kf8roPUduJec
+XaylHzYOzODY3fs7xGF5bFjZ7+hIWNkQUSWj/agQuBfbL2QRRZ6nS18R4wqsY6yg
+Qo2wrrP78kFuGZ2qGA7PI1N/6iQgJNtfIVbvG5zukgIcrszTMdzBxCGM2juHM7TJ
+X/fqXT6NUYpCRTG5wIfGKsfz/qS9KRdtACZaOEOrGjwXnhP74K3ua7q7ZUODwfDd
+hrDh/jyXSv0ycsIzGoLMby5Gt4hh5K+W8r3Mwm9TqgR11c9G4VGFEjC/q3RJoo4r
+NrS5k7p/69Ezjzfvt7KSzBHn2TaG9sVebDMl5VjlNbGOMj7eMmuEbaM+6RpCxnPa
+setH8Jz1gyvHZWwbIXlsgXxaOHIAKvpbCBoYbzMIBN1Prh4e++EWDvp1KQigfdc=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIHDzCCBMOgAwIBAgIIVnbZF4/ffeEwQQYJKoZIhvcNAQEKMDSgDzANBglghkgB
+ZQMEAgEFAKEcMBoGCSqGSIb3DQEBCDANBglghkgBZQMEAgEFAKIDAgEgME8xIzAh
+BgNVBAMMGlN3ZWRpc2ggQ291bnRyeSBTaWduaW5nIENBMRswGQYDVQQKDBJSaWtz
+cG9saXNzdHlyZWxzZW4xCzAJBgNVBAYTAlNFMB4XDTE1MTAyNzEyNDg0M1oXDTI0
+MDMxOTEyNDg0M1owTzEjMCEGA1UEAwwaU3dlZGlzaCBDb3VudHJ5IFNpZ25pbmcg
+Q0ExGzAZBgNVBAoMElJpa3Nwb2xpc3N0eXJlbHNlbjELMAkGA1UEBhMCU0UwggIi
+MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC4cSXeMAuvtH1wVcrG3cZu/joz
+kRWaCwnVM1NcnZpCjfdaVftSvvSlxMZHT0fPpTZswsmCdR4yrHe7d4Z6lj+Y8+Uw
+rT6qpSRcDDJFW7mDNYj/iELyeBu1mwphaTwsNE2Gr8ZOV1LvMQjxBe4T+kaIUiRZ
+KZWsKajgo1Ipg9ROg+7eTWp0WE7AZstGfqcxAyU9MrxtqRW4KIKCfIbW6NeyWvVj
+FTYwFRsU0DjHYwyW2VY+oyDV8KtYNE0FkHH0uI6ygF6ohDntRjqDw2QZrHX8/SPj
+vEIOxVG3pEK6nWr/9yqTahwJycGsqPGmsLxAXrzF9FZxfWF+W8mT4XJc2GxqaVYQ
+00BY9SsrSyT5aXlZAAfNYlBbAX4lO2vY2r4j3qmubkfwjJY5wlxUZVoLlhlRogL1
+UR9cFgPrZhAx0PT7lf2ZwohVqKFpyjHmpszFvxQi0Q/QxPjUEfQQIKbAgR7WE01Y
+L1LALvjDDnI50n7blaHdRuJdiRPxHVWtnvFo9j9YeaRfx4JR6RUCicnrRx2TnLD4
+9OsRik82x/iOt4K1xbXtX1oquh/vEu71AXIe069tnPS2roNYoJnqneFwdDw79hsP
+uCg/Y8GhgpxrGcq7OFue6KZk+FLKOFAOHaTou0c9mcRwX0HzgnsQLwz4RYEGhLq+
+dnHdIDzBoBtfHkmVkQIDAQABo4IBhTCCAYEwHQYDVR0OBBYEFA4wULiS85liyEcZ
+Lpjk0/qoQxmsMBIGA1UdEwEB/wQIMAYBAf8CAQAwHwYDVR0jBBgwFoAUE/iqb1pS
+oBtX8tdu/DpXXCJeJN0wKwYDVR0QBCQwIoAPMjAxNTEwMjcxMjQ4NDNagQ8yMDE4
+MDQxNDEyNDg0M1owFwYDVR0gBBAwDjAMBgoqhXBUZAkBAwEBMGEGA1UdHwRaMFgw
+VqBUoFKGUGh0dHA6Ly9jZXJ0LnBvbGlzZW4uc2UvQ1NDQS9TRV9DU0NBXzQxMTVm
+NDEwNTc5M2RmYjEzMThhZTVhNjgxZWVkZjdlMjc2ODEyN2QuY3JsMA4GA1UdDwEB
+/wQEAwIBBjA4BgNVHREEMTAvpBAwDjEMMAoGA1UEBwwDU1dFhhtodHRwOi8vY2Vy
+dC5wb2xpc2VuLnNlL0NTQ0EwOAYDVR0SBDEwL6QQMA4xDDAKBgNVBAcMA1NXRYYb
+aHR0cDovL2NlcnQucG9saXNlbi5zZS9DU0NBMEEGCSqGSIb3DQEBCjA0oA8wDQYJ
+YIZIAWUDBAIBBQChHDAaBgkqhkiG9w0BAQgwDQYJYIZIAWUDBAIBBQCiAwIBIAOC
+AgEAIqgKT96CRkXp2jKEZvHoO1WowQ8VbFgg4ouCNNLwJqcwDL+kvC07iwUjLitR
+3w+rLMBQbRnWqsFx/V9VQRZYxHEg2dLXEtcs2Q4IxDV1aNFUS2mMQL2heJ1oYmQY
+omz7vfrQJDVttvd2c/bNRnXdb0hCP4qWRjrvR7zF31Ezg0MlGSNRtP+x16fH4hOh
+KjNJV9XP+vIndBeC1+GMEXEG2eSnaDCqjXdxDYzCe/HczLu6GQ5MN24wOGOywmKy
+V+xKNhvUgcBQdsrvEq9T1IGJrB7Pkd3zz4YYAr/liVEmojaiPHnfX3Sl4WQyIR8r
+Xh15nOT6TQnCOqcyRT3GAKvx2n1nBwYyqnLl/oE74HdPXecGDhF4Ix5qF2MpaGA8
+JL7rdIq0zLZqNOCoKOZcpcco6LpHuTsygimnOelR3G7rUxPjTUFRkDB3Pg26Wq+o
+cYXVNpx5f6ptdyciEgJO4nsihGkJFKt4j2ItO31nAUEpeuhO9GIOQf4t2oVRehLZ
+uwniexDOtaBN+OkJZZ7jYV+rRv8L/kgMxn29ogjdp13X1uA0d/HpQHrZaV+wOalv
+hEQ8wHloypVJqts1k8xQv+8TX+U70xmgtaDka+p8Yqx22oOXgcHVnCofkGykDhad
+qp9aidSFB0sblBQgyT5ZdsjTz27ShqXoVMuCT3QewI9etlU=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIHEDCCBMSgAwIBAgIIXRKNWEXfjgQwQQYJKoZIhvcNAQEKMDSgDzANBglghkgB
+ZQMEAgEFAKEcMBoGCSqGSIb3DQEBCDANBglghkgBZQMEAgEFAKIDAgEgMFAxJjAk
+BgNVBAMMHVN3ZWRpc2ggQ291bnRyeSBTaWduaW5nIENBIHYyMRkwFwYDVQQKDBBQ
+b2xpc215bmRpZ2hldGVuMQswCQYDVQQGEwJTRTAeFw0yMTA5MTQxMTIwNTlaFw0z
+MjAxMjYxMjE1NDVaMFAxJjAkBgNVBAMMHVN3ZWRpc2ggQ291bnRyeSBTaWduaW5n
+IENBIHYyMRkwFwYDVQQKDBBQb2xpc215bmRpZ2hldGVuMQswCQYDVQQGEwJTRTCC
+AiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAJ8igT5yClOp/F2rY6Bfy1RA
+JKMNIsAS3rsfZDAkm5CRtfyStbeEjMv+7W7BEbh5oMgw+q/3S3lPQuFZ/xLe7qC8
+tgvSFYtvNtEbpEnWs+ZZcsAhyqueEe4WR7lEEKiLi/fxIf9a/+QVhRkzHM4bjjTo
+7X5C0S63sbuI1BdU9KyOF+sh+IIFQC2++kZ/sbU4Fb7pOwy0HWuV5ZT+VscAoYLu
+YsM7pQmf6G4J4/N2tVsHKXxqAP0EntuhENNltggvPWNlQ4lRvdTy/78UWpt9X4cx
+6vnIbnS2xCX9wF/Chy7Ktt+oZ+TfyxL5SPGAIpEsToCT+Bv6qDN6P+NN6t+DPC6D
+VNs4RfJ2RB/ZH8nVjRBp/enG7JsNYGGUOb649hGKBB5ph0XG7JkmzSyNYjqik01/
+qag925W+43etzdsSXLsiC4Qt3safVd9f6tR5/nW4QP9ukucSqrucNVhty6grpFeO
+ImZeUvCbVkOjehRNFJovpvf5AvHCwB2d7RljJk9zAUTxzSF1/nTOgsbJKTOGs0sU
+VMAyp9cueOee4JK756vYUNUd/glhetqiglPbn+xKPMq1xJZx+fhv6I3JRXeeTJMp
+aF/QUBdxaSxnxp7KsGREggo08PiKpU3LX7UaO9LUkRHHKbI+/wfEf4+ZD4EStaGM
+dHk3QBQk247dReTZO+vzAgMBAAGjggGEMIIBgDASBgNVHRMBAf8ECDAGAQH/AgEA
+MB8GA1UdIwQYMBaAFOAqgPcv420L3fI34WfWheXlsiKJMFAGA1UdEgRJMEeBFmNz
+Y2Euc3dlZGVuQHBvbGlzZW4uc2WkEDAOMQwwCgYDVQQHDANTV0WGG2h0dHA6Ly9j
+ZXJ0LnBvbGlzZW4uc2UvQ1NDQTBQBgNVHREESTBHgRZjc2NhLnN3ZWRlbkBwb2xp
+c2VuLnNlpBAwDjEMMAoGA1UEBwwDU1dFhhtodHRwOi8vY2VydC5wb2xpc2VuLnNl
+L0NTQ0EwEwYDVR0gBAwwCjAIBgYqhXBUZQEwNAYDVR0fBC0wKzApoCegJYYjaHR0
+cDovL2NlcnQucG9saXNlbi5zZS9DU0NBL1NXRS5jcmwwHQYDVR0OBBYEFDcSA888
+xFowN/0LptoBvUdmkkDvMCsGA1UdEAQkMCKADzIwMjEwOTE0MTEyMDU5WoEPMjAy
+NTA5MTMxMTIwNTlaMA4GA1UdDwEB/wQEAwIBBjBBBgkqhkiG9w0BAQowNKAPMA0G
+CWCGSAFlAwQCAQUAoRwwGgYJKoZIhvcNAQEIMA0GCWCGSAFlAwQCAQUAogMCASAD
+ggIBAFRw3lTFTU3pDIlO1w6DN9gcQNs5Exu4J6Q1V1vjZYRarjFEwvz7AUU5Ygb9
+b3fZDuQGJ3tt2AtE02oA8nXi5TT85ZrVfS7zmehQBTwB67jivVlI242kWkH6FWH8
+DHrF5e3lnkfWNrvHOSAxH8PLPRdoTdI7nR63E451OiJk4ipHbTAjbmKLKpXSDrn9
+M4NxkUDjlP537E8/+QPqWguRq/DwkpyoZkSGYQSXAktzfuCtJtZykQeR3O+2aE/1
+jn526YVsLwKfwQgfew/4TglYQ7QVgJ283gSzzq2lTOtfjX5wJ+CaDCTiOx0r/dg4
+9sXDYO6zf4E5R+jScobfWViLzskksadqBygq/S1jQU7plWBtbiA1Mv5WtlbmcCKG
+Me56npc1+bl9RsowdOSSkKY5/Uo8XEVNbQw/0/IFhb5n/U7O01eHmMAmZIbKv4lg
+IRROj7s2HbJs94ext7kFz0dh4lE3f3RCsmrDLC2+34JTddZu2CZO1kHaqv/cmZEO
+IMk5AD+BO7HLiDsmdLUcz8+mywi+WdYONeAWL+reDdXlPIMTOs3uAo/6uhJG7Fzs
+2v+PZWlDJa26w80OE1RD10cvjbSkCJELz6N/02DSo4LAyz15mcgFqyyUiWcILZUF
+hRl6EDVKeUx6odBRAthfvlrGYhRO5pNPT92deLbqcQswp3H1
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+0kqf3w==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+4UHEDA==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+qrjrSbNhtz4=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIHQzCCBSugAwIBAgICMAAwDQYJKoZIhvcNAQELBQAwZTELMAkGA1UEBhMCQVUx
+DDAKBgNVBAoTA0dPVjENMAsGA1UECxMEREZBVDEMMAoGA1UECxMDUFRCMSswKQYD
+VQQDEyJQYXNzcG9ydCBDb3VudHJ5IFNpZ25pbmcgQXV0aG9yaXR5MB4XDTExMDIy
+MDIzNTgzNloXDTI2MDIyMDIzNTMwOFowZTELMAkGA1UEBhMCQVUxDDAKBgNVBAoT
+A0dPVjENMAsGA1UECxMEREZBVDEMMAoGA1UECxMDUFRCMSswKQYDVQQDEyJQYXNz
+cG9ydCBDb3VudHJ5IFNpZ25pbmcgQXV0aG9yaXR5MIICIjANBgkqhkiG9w0BAQEF
+AAOCAg8AMIICCgKCAgEApTvJoCiGVxPnny5LlRldjDZVzY4GWTsxy6QI1xRi61/F
+HdLLiXTYNYR7vCt9ga3x1ja/AE5grlefFVycler2WK+amRyYmvdBbrQ1bYEEKL6N
+n2cdox60tAA6A1zb0T3Ayrl4dmeQGdScDBQKVjpTchu2xHYOmTLZJCRfJgUet+hk
+F31eQ+MEL5+thbcAl0OmAkrAmjYFtFcABq91gSZHxRAgE9p08f+tYPvTwk6woXX6
+dqFeW2/BqQqTJizjjfPOeR4loNsi602nPpYOk0OicdTwW5A/nMCAKnlr8LEdKuUl
++YERh+SZm7oXQUJJxXDt5bIourZKIhzGfQrGAIYZXWHNTP/kcbCBDdrQ+/PL3x0R
+pI5qrQ0QyLh7vPM6MEKMbqGbq9PYr37N6fho58BerVRKHALjxyuxNlBNfK59rYpY
+EiNxGk5+pHK92kH4YicbYdU2k7ppIDTckYGEGWayWKyb0S+jLapEhWAaBzaA6WzP
+GHbJwvV7f4MOfsC1rDB8TdOkm/sBCkZ+iMgwE1b8jSBC15q4nB5+w2enwbITdIG9
+uyA+EomD+4Fn8HcBXiR3F0wd51AEgEWLyYol2etUVSQSbyk5/pzWSNtjZmMDkCWM
+KNA7sckt/zKaalJByqpVvzSLbb71eACDEM0qGK9YHu58/4duDPE8+V2zpp82IekC
+AwEAAaOCAfswggH3MBIGA1UdEwEB/wQIMAYBAf8CAQAwgfEGA1UdIASB6TCB5jCB
+4wYIKiSfpoFdAQEwgdYwgdMGCCsGAQUFBwICMIHGGoHDQ2VydGlmaWNhdGVzIHVu
+ZGVyIHRoaXMgcG9saWN5IGFyZSBpc3N1ZWQgYnkgdGhlIERGQVQgQ291bnRyeSBT
+aWduaW5nIENBIHRvIHRoZSBDb3VudHJ5IFNpZ25pbmcgQ0EgaXRzZWxmIChzZWxm
+LXNpZ25lZCkgb3IgdGhlIERvY3VtZW50IFNpZ25pbmcgQ2VydGlmaWNhdGVzIHN1
+Ym9yZGluYXRlIHRvIHRoZSBDb3VudHJ5IFNpZ25pbmcgQ0EuMA4GA1UdDwEB/wQE
+AwIBBjArBgNVHRAEJDAigA8yMDExMDIyMDIzNTMwN1qBDzIwMTQwMjIwMjM1MzA3
+WjAdBgNVHQ4EFgQUqdxox52YhfGyz4BsPFG1XzgsB4IwgZAGA1UdIwSBiDCBhYAU
+qdxox52YhfGyz4BsPFG1XzgsB4KhaaRnMGUxCzAJBgNVBAYTAkFVMQwwCgYDVQQK
+EwNHT1YxDTALBgNVBAsTBERGQVQxDDAKBgNVBAsTA1BUQjErMCkGA1UEAxMiUGFz
+c3BvcnQgQ291bnRyeSBTaWduaW5nIEF1dGhvcml0eYICMAAwDQYJKoZIhvcNAQEL
+BQADggIBADlPn8fKrZ/SzgyFKKjPEuKAjtSZASYIO8QTubMG/dIcdoSIojwovZGV
+A8z6cyUN9DtIYRYWftHhF7J1e7kbowTGi0iMjQClLm81SGUmfMKq3b0Tr3NOO6CP
+UA+wM84b49Ui0ARAU6IcgbNah4uGUZBUCQ774vkoq9TA6WIleR8bs2BecB+ngJoD
+cHZADFXbFrgI5fO9AN707nK3kn0xVKa8zRhOhpIgMAetpd9mE0xyjBz65vCo0gfU
+RsxArQQO9d+OlwxZT0vPlY1chlswHWLeFR7zhvczM34g35PR69RnZmbQkEvMRXoz
+fcMKgEPFNw52kIKJ7z3ynSgErIclbm/F030AgtBF6jYDPjFz5Kj9Wv1TSwOVpNej
+KXOJU4nl9aWfepTP+ifCJEubeJuwg0Enfiazdw5mCekPVl+1dHMuKuXlmj0lP1GH
+Zfh/IMGVzIqsHbK6RFVQ4dU3QKdJwllSjvBEYaHYKsf7SS9N7bG4jFbKCLlzCow/
+RmtHSSxSSsu7TtoZxeGANNjIQMc5kagjvr9/VUGNrXLgVAdPICelCImPvWoQdMTX
+oYG4WP5sYf3bRg/Ha8Oc0BiB1YU4lv9cESeqUhiyOgCoePKzhS+GL0/ojMdt1z+m
+R0rPIbTNcqnanH7P+BQGBl/owXoRjWBS9QyOd8gtmexBvzbti5XM
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIHWDCCBRCgAwIBAgIBYDA9BgkqhkiG9w0BAQowMKANMAsGCWCGSAFlAwQCAaEa
+MBgGCSqGSIb3DQEBCDALBglghkgBZQMEAgGiAwIBIDCBhzELMAkGA1UEBhMCQ04x
+EjAQBgNVBAoMCU1hY2FvIFNBUjEnMCUGA1UECwweSWRlbnRpZmljYXRpb24gU2Vy
+dmljZXMgQnVyZWF1MTswOQYDVQQDDDJDaGluYSBQYXNzcG9ydCBDb3VudHJ5IFNp
+Z25pbmcgQ2VydGlmaWNhdGUgKE1hY2FvKTAeFw0xODAxMTAxNjAwMDFaFw0zODAx
+MTAxNjAwMDFaMIGHMQswCQYDVQQGEwJDTjESMBAGA1UECgwJTWFjYW8gU0FSMScw
+JQYDVQQLDB5JZGVudGlmaWNhdGlvbiBTZXJ2aWNlcyBCdXJlYXUxOzA5BgNVBAMM
+MkNoaW5hIFBhc3Nwb3J0IENvdW50cnkgU2lnbmluZyBDZXJ0aWZpY2F0ZSAoTWFj
+YW8pMIICIDANBgkqhkiG9w0BAQEFAAOCAg0AMIICCAKCAgEAtdfAcSc5w+kVyEiD
++wzF4aDg08UPzeHWS0+Sn8IV9XrE6HGcCP9HIDaWAi8/W2/kO5jpIg0uUw9yR1yt
+J/B5ZKT5llFHzEBcXshxNm0C7peVl1BPd0bYsWUfP4mJl7wgGnSqmMvRSoaJwLX/
+KbUxJQ5F/YEIEdmZUrwHaOmdRdvU0N6gJDzRzwC8okNloHN+21aQMQOd+rwPoiLU
+f7iXKLfdHbDtsLEirkwa5eqru4cGzNNh9ZoZg+V8SIj+jqy/VuUJAt1Wfp7Dw3AA
+Lod2KHFHX1TJErN18o0AERS5Y7lIG6goA4oRyY/NoeMuwTKqAYEqyA45tHlOdgSd
+oN0BhgsUHnQwZ2gppIgxRh4CsSXuKG6ewgQRqz+eYaxBqMLp73Xu+4akAEO8nUxr
+gHTfdk5RxNFy6GMcLRRLTYRJ77dUkvetUpT4I41e7ZpOgtcRBtQhqP6MTUgXAoMN
+NyhGhpaNKOJsi7zEh1O1yNTjXXVJR0i/qZvqSLDZNPXiuJejdRUvB0SjlhS17gJv
+y5MU0O3oniZbLNYTznw8AYN8s+2onJtodqgjZmochp2m5HM5trNk1ykkIo6SAE1b
+nDD4c7Bd5uZ7QPgKJ7/9B9qviXLGkbRWpdG2Q/23uX/eITgfTs7cY4NhU+vDWDRC
+/Hs1k5n1AywfGuAeKWdsgWLJp5MCAQOjggFtMIIBaTAdBgNVHQ4EFgQU2Xqjd+ZU
+siCBGZUzXpA39ddetAwwDgYDVR0PAQH/BAQDAgEGMCsGA1UdEAQkMCKADzIwMTgw
+MTEwMTYwMDAxWoEPMjAyMzAxMTAxNjAwMDFaMD8GA1UdEQQ4MDaBFGVwYXNzcG9y
+dEBkc2kuZ292Lm1vpB4wHDEMMAoGA1UEBwwDQ0hOMQwwCgYDVQQIDANNQUMwPwYD
+VR0SBDgwNoEUZXBhc3Nwb3J0QGRzaS5nb3YubW+kHjAcMQwwCgYDVQQHDANDSE4x
+DDAKBgNVBAgMA01BQzASBgNVHRMBAf8ECDAGAQH/AgEAMHUGA1UdHwRuMGwwNKAy
+oDCGLmh0dHBzOi8vcGtkZG93bmxvYWQxLmljYW8uaW50L0NSTHMvQ0hOX01BQy5j
+cmwwNKAyoDCGLmh0dHBzOi8vcGtkZG93bmxvYWQyLmljYW8uaW50L0NSTHMvQ0hO
+X01BQy5jcmwwPQYJKoZIhvcNAQEKMDCgDTALBglghkgBZQMEAgGhGjAYBgkqhkiG
+9w0BAQgwCwYJYIZIAWUDBAIBogMCASADggIBAAUcgk2lGuV6T2vM/JCV1blllEZJ
+ntiqo1K2FSHmpFllEf7enwghS/rVl5JkCJgE19u3UA9/fZnmf+fYgahx2bFbJVR4
+VziaIZ3c/T5EVFNh+ouq/uaJYNVwkwhM6kiW5D3txVYaU/b9NVz//UP0Tv/1P+em
+cXPY4jb4NG2LbzwsEVhtI3rZEdDGJjKsNx02Bm/Tnn1yus3/BddhFYlxmGKCMEGR
+znY09s8Hak+0lbPq2vcr3/IaooTNFXdCiAN+JwTtg361l+5d/QvdCcseUpeN+bOo
+weDedZbN2eN7mmb1Yrs5BlPPT8W62etSQKdOwrOynVX2Arv9x/tEZkImCMf3exyN
+IG/FS5jXuRPMkndy93CXkmEW9HqafAWQD229xK8hq4SthhFVC2Z0/zxemXVl5qub
+AwSIBQo2haWHDyg3nMUB03XBE6XlxxCrkQ1CM96mDwoOieMZsB0MiNh1zNq+6ITS
+iQ0ny7uL5r2+NUNaeASCbGYNrZhoE7yXm4y1347qe+S4B9C+wAi5MADtmxu9RLHN
+rPkuakeX5EbzpMmcnAgLL+YYJtlJJMqfyxGWjlBkJKj3gGl4g2Q2IMbCmjrk0dSe
+cyGi8dsLmSeQPcHyuGkX0Hgyt2HdiD7TaBPypSdfml+ZLiQpcSq6Gx6OlE0UTqN0
+muB/Zd8oxMXPl+7z
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIHWDCCBUCgAwIBAgIIXXFxrPKAavkwDQYJKoZIhvcNAQELBQAwgaExCzAJBgNV
+BAYTAkNOMRswGQYDVQQKExJDaGluZXNlIEdvdmVybm1lbnQxJDAiBgNVBAsTG01p
+bmlzdHJ5IG9mIEZvcmVpZ24gQWZmYWlyczEaMBgGA1UECxMRQ2hpbmEgUGFzc3Bv
+cnQgQ0ExMzAxBgNVBAMTKkNoaW5hIFBhc3Nwb3J0IENvdW50cnkgU2lnbmluZyBD
+ZXJ0aWZpY2F0ZTAeFw0yMTA5MjMwNzEwNDBaFw0zNTA5MjAwNzEwNDBaMIGhMQsw
+CQYDVQQGEwJDTjEbMBkGA1UEChMSQ2hpbmVzZSBHb3Zlcm5tZW50MSQwIgYDVQQL
+ExtNaW5pc3RyeSBvZiBGb3JlaWduIEFmZmFpcnMxGjAYBgNVBAsTEUNoaW5hIFBh
+c3Nwb3J0IENBMTMwMQYDVQQDEypDaGluYSBQYXNzcG9ydCBDb3VudHJ5IFNpZ25p
+bmcgQ2VydGlmaWNhdGUwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDF
+YBFcGGMu+kGmoSI3pB3jNWV7nuiNqf4yOlO04qF8MsOwrI0yBasL5Lmm6DT7lAV+
+RCE08S2Pxif9QYQ87gZxM6BjNqHs7FjGz0QBhpNX4ng9IWeyBAQy6k3tJPvpHX78
+TqwlHCOYmbLL1zQFUzItKatPgyEoWITLdWkzNjFwAZhUoYxtjDWAezPbVaDzNw4e
+mN9rv9L3vucj3kQdIbRyzdic6jcY/SEdYBjwRz81xdxbUYku3f5NPvaOyNtmLhUg
+m0RCrk7vJp30Sug+NSF6Odd5PvrK3KeHY7SCSDneTGm52V6o2iT15NAzojIrXsKS
+6MtNveThkwjzy/0taLqgnSVYTTISwbZHeV7iBZbXaF6ABhP/3cF5FFkOEm3jYQ0E
+GwybUZXBbSE9ovdjqUWz70ZUpmzMM1EhGUdsLsh5EAWG21AH3I8p7gl8MyeptS93
+l33TbbItc3jP3EdP5J5Q0n2jGK77WiAX8BE8iySXk9dd4iEUb5CXFnaYdCQ8D1G+
+gaN8XSxdjHnavbhKtP0Gh7pr/fUjFC03b8r1ovE1fY24g1BrImtsEOEOIFhXQ9a+
+LUnrg1Ijy2iHB6NyqowSO744DDs+4HbGLNTBoMaN4I+ZV5XPmpveZPwtBuEwoclR
+4STvE31HffD74gSt5+PW2gF1KLkP+982xRn18Ya54wIDAQABo4IBkDCCAYwwHwYD
+VR0jBBgwFoAU+1b2ZmX0NS2gWNPAXj7K/IEFkrYwHQYDVR0OBBYEFPtW9mZl9DUt
+oFjTwF4+yvyBBZK2MA4GA1UdDwEB/wQEAwIBBjArBgNVHRAEJDAigA8yMDIxMDky
+MzE1MTA0MFqBDzIwMjQwOTIyMTUxMDQwWjBABgNVHREEOTA3gRVsc3NzZXJ2aWNl
+QG1mYS5nb3YuY26kHjAcMQwwCgYDVQQHEwNDSE4xDDAKBgNVBAgTA0NITjBABgNV
+HRIEOTA3gRVsc3NzZXJ2aWNlQG1mYS5nb3YuY26kHjAcMQwwCgYDVQQHEwNDSE4x
+DDAKBgNVBAgTA0NITjASBgNVHRMBAf8ECDAGAQH/AgEAMHUGA1UdHwRuMGwwNKAy
+oDCGLmh0dHBzOi8vcGtkZG93bmxvYWQxLmljYW8uaW50L0NSTHMvQ0hOX0NITi5j
+cmwwNKAyoDCGLmh0dHBzOi8vcGtkZG93bmxvYWQyLmljYW8uaW50L0NSTHMvQ0hO
+X0NITi5jcmwwDQYJKoZIhvcNAQELBQADggIBAIfZf5qmyHaMOABguPllxdd7Rpgi
+F1zfIgEzPsFc4xMPyVuAqX+q9wyhasWskcB0K9wGouJENCX842Wbi9c44ORV/8yC
+w4ZUpogLZ/QAr9dypgIHR1/bxuvk3hMk9+Mo16LNSuul+OajYZufUQ8V26gYEPYp
+/eV/hKz0oW1xbI0iJaL7Z+cuGXb6kF651vkfa1cvKNrWzbxj4UCQ1SyYoyl7/xPf
+/xVIr+JqeDkXQODDL55gwrswUaXQW6oGwCv8aItnPXseCqzSAc4OfPR+zDmyM68T
+RCXHOP/TBxIo7NqHEzgKXbtIJoBx5eNx0McnTQBwirqEYOW7dhAftue5pMlUnO7P
+ZlgwSvt/o3JNFJuHVZ5ns/kaiI8SvrxYgPahweFm5hyHe1ZLBNWpuJQJnBFaivQ8
+MmN04RqvlwfHRtsU0qjRAh+eOhAAYio6fzFubT8f7hQ+k6qb0qeW2XOqOIVXrvXi
+wM6ieq834c8+4jP5sN1VBQqkGg5M4N7pypnuVHjlhOtl9TMtgfVupmrCLT0QSbJS
+4Z5v7zGqAklJRv/nC8MPj99c0E6+oTCwgFp/Wooo8CgqbG10ENEu/Or+ambnBPob
+2Sq3yhVqTXF2r2P1uegJZjnf7w/CXT8fprDv5xo6omQuV7OQtqOrt/NO8E3leYOJ
+NCm+EQF7Z5JJuYNk
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIHWjCCBUKgAwIBAgIKQ05DU0NBAAAACjANBgkqhkiG9w0BAQsFADCBoTELMAkG
+A1UEBhMCQ04xGzAZBgNVBAoMEkNoaW5lc2UgR292ZXJubWVudDEkMCIGA1UECwwb
+TWluaXN0cnkgb2YgRm9yZWlnbiBBZmZhaXJzMRowGAYDVQQLDBFDaGluYSBQYXNz
+cG9ydCBDQTEzMDEGA1UEAwwqQ2hpbmEgUGFzc3BvcnQgQ291bnRyeSBTaWduaW5n
+IENlcnRpZmljYXRlMB4XDTIxMDIwNTAxMzcxOFoXDTMxMDYwOTAzNTQ0NFowgaEx
+CzAJBgNVBAYTAkNOMRswGQYDVQQKDBJDaGluZXNlIEdvdmVybm1lbnQxJDAiBgNV
+BAsMG01pbmlzdHJ5IG9mIEZvcmVpZ24gQWZmYWlyczEaMBgGA1UECwwRQ2hpbmEg
+UGFzc3BvcnQgQ0ExMzAxBgNVBAMMKkNoaW5hIFBhc3Nwb3J0IENvdW50cnkgU2ln
+bmluZyBDZXJ0aWZpY2F0ZTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
+ANYcKdULxZXg12IfadlvVcUiHNz3uHeWuDkn9g/itas0cKou1WNpgPp+z6jSDU3J
+2DZfKCv7dRvSYk06EAufEhcmAjGM7iS0/pDmtCNqR3R+IugRCkpa/ILwG3SwDv5Q
+sjbIDLUw9bCZgJsn2QJNTnxzD+WL9S2f07nLoFvyjVluBQ3dMP61qmTHpals9nJr
+Xqt37qnWrDrB330dZHv65vFgJpVFYQjv6XcflTXPD17BMA8Zrn7TPk+GpkY7K/iI
+CGQU/OUHsNOB58aBmVtWbVpSDaxMdq4YWLzh7q+DKnwOaHW20q1aY57zMyJic0Jb
+wvEFZb4gLYCNiuf7Xh9ribvLCh5C4mFx7LfRN+2L/6sR7CNm8kFWHAUGecvZx5qj
+eCeFA5diR/A7kT1lzzkkHms+5z+Vb99fGx6KTryQ0syflIM3BCWsnPmfBgPEiOyA
+l/+xQd8hlYZEB5gF5Z8I+mJb4f2nBTM6PL4sL3kzYp299NDQqh5tNkykVpp5JtAw
+l0237/UNsCNLvP3/VJRcx/XjHiMx39NqjTvorjj3Yxj39Pz/KnxK5hniios9vjad
+o9M9Yuxhd/LH18/qKljtv5YGk+h3S6vIK9d/1M3CCM9u8gq7aTlnuVSxW/UTv43M
+wGQXycBoIktKweIePy/qILPuA63hJvDPxHLB+k+7tGVTAgMBAAGjggGQMIIBjDAf
+BgNVHSMEGDAWgBTxe0/7J26eDqCqj3VZtBTBmvE2KTAdBgNVHQ4EFgQUxauG2EDR
+d/+LGBMgOiARcMXcbIUwDgYDVR0PAQH/BAQDAgEGMCsGA1UdEAQkMCKADzIwMjEw
+MjA1MDEzNzE4WoEPMjAyNDAyMDUwMTM3MThaMEAGA1UdEQQ5MDeBFWxzc3NlcnZp
+Y2VAbWZhLmdvdi5jbqQeMBwxDDAKBgNVBAcMA0NITjEMMAoGA1UECAwDQ0hOMEAG
+A1UdEgQ5MDeBFWxzc3NlcnZpY2VAbWZhLmdvdi5jbqQeMBwxDDAKBgNVBAcMA0NI
+TjEMMAoGA1UECAwDQ0hOMBIGA1UdEwEB/wQIMAYBAf8CAQAwdQYDVR0fBG4wbDA0
+oDKgMIYuaHR0cHM6Ly9wa2Rkb3dubG9hZDEuaWNhby5pbnQvQ1JMcy9DSE5fQ0hO
+LmNybDA0oDKgMIYuaHR0cHM6Ly9wa2Rkb3dubG9hZDIuaWNhby5pbnQvQ1JMcy9D
+SE5fQ0hOLmNybDANBgkqhkiG9w0BAQsFAAOCAgEAk9OalHiNcPexVLZhHwuA8bcL
+FyfbAVYGbpjfHAiCxtMXDm786+z6OpihNQwZF4Afizvv5IUtKUpGOzPYr/omHQDY
+XNf22n+WDHbFcQj+JPMeO1KKyKupr9QeI6b11tdis/XS3iIPQKdH6RTGxHVwNsVQ
+HhiHtbQw0Yn3W3q5ZXQr21lY9h5cMTFC49YZ41xFlsDuKZbjsA6KPvRO+Lb8qGUB
+KLn+21fTNFnPpDUV9jaKHXU/3YyzSNfO3t1os8sHG1EprxneZOw57jEUglf1OG94
+CweTpcI98chUG4wd6KKkpuAKMLgNvIbb/Q3nmYfLW649cEqhUwZ9+Eb7Hu82Rea6
+qW4Ji1bom6ox5bBYyCj0R/xwM5m1YylVyFn69fhbKrQjERQoLpzxVuVMJGRSjeLW
+4qFm0jBNZfuCm7h9m3HxjzsYCqDAIfC2E5nM/J0EGscbEUfQxGsuh6Nze+fRaY2x
+RCwdhVviUIGx6WP6YGAM/SD4mHyL2nXoFhgNTRXwkYsl4AqgYUXO0tOaq+rMTC4/
+7aXZ8ToUhInDkItJImyXl1iS5qOsRnmdbCX2aJHrb7JvvDLWI9MXx4SCyinElYND
+WI66AMsfIiSu2Pu+XMRx3fSPu5VOQbdcVg7yK4o7sK5m8AS61ps62vYS1TrLiSNX
+ds4tcuyu9Y5b0XS+AlE=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIHeTCCBS2gAwIBAgIIathUtFr8Dr4wQQYJKoZIhvcNAQEKMDSgDzANBglghkgB
+ZQMEAgEFAKEcMBoGCSqGSIb3DQEBCDANBglghkgBZQMEAgEFAKIDAgEgMIGQMUQw
+QgYDVQQDDDtHcmFuZC1EdWNoeSBvZiBMdXhlbWJvdXJnIENvdW50cnkgU2lnbmlu
+ZyBDQSBlSWRlbnRpdHkgY2FyZDE7MDkGA1UECgwyR3JhbmQtRHVjaHkgb2YgTHV4
+ZW1ib3VyZyBNaW5pc3RyeSBvZiB0aGUgSW50ZXJpb3IxCzAJBgNVBAYTAkxVMB4X
+DTE4MDUyMjEyMjE1M1oXDTMyMDcyMjEyMjE1M1owgZAxRDBCBgNVBAMMO0dyYW5k
+LUR1Y2h5IG9mIEx1eGVtYm91cmcgQ291bnRyeSBTaWduaW5nIENBIGVJZGVudGl0
+eSBjYXJkMTswOQYDVQQKDDJHcmFuZC1EdWNoeSBvZiBMdXhlbWJvdXJnIE1pbmlz
+dHJ5IG9mIHRoZSBJbnRlcmlvcjELMAkGA1UEBhMCTFUwggIiMA0GCSqGSIb3DQEB
+AQUAA4ICDwAwggIKAoICAQDKGgGo9DifrTeUlnmhT30aolbHo0oYdEj5/zihVz81
+/3iJTiWBdKiACSG1GAJCKdUKvnWN09KdcBkrqUA65sGvWLpnbWIcfItH+QNkCeHz
+hHui/fuXBfF+y1hEpWNtQWuZ9PcLX1w3yeKOP0GFgcopGzUw3wfnnpx27EH47Ojx
+SbWGzMel6O393uJYkxlFZZUVBVINFWulalwMs2QG9BsjymsipD/sFuKvYZcSvPRl
+kDysA2kY0E+Xh8+9a/d6MR8Us7/HS7iB4cfc/XCZeuMN7aP1n8XP9P5Sxff5wOn6
+OwTiNvT3yizUaus+rGjfLYJpH6FNRKuPksB6To+iHwoEcY/PnJtH2hNotYv1N/Ba
+tRLw4j77x36rgyawnmoQsm4js4Qymae9JXQz0rSLH7saZRs219hN6mrz4x7Ib4k5
+Vtjw+IPxm+Bpl/CCEe3Dwp3H5nEyvi7/FWuN2ur7VCdG/LGFNqK/pifswGSusT5A
+AC7wW3j1KfBNtn6OkA1SxghpS1uBM71o5ZhtjE76EpPSd5LrCCpUZi3LpEI0yGmb
+X91T542a1ml1xsWm1OYs7U2I4sRDgocuUd8yOG2SwAmBhHGz6l/xfQ2zQoyl0JHc
+D2K1tA4uMfxqeJq6FU8Lgzn0rkV/zeWEcp9z68M+t57tcDyIPutPdNCwFQQH08he
+7wIDAQABo4IBazCCAWcwHQYDVR0OBBYEFK1Ic/ftrC7ItFl+EuJhcE0/f4PIMBIG
+A1UdEwEB/wQIMAYBAf8CAQAwHwYDVR0jBBgwFoAU/ehpYq3+E+C/66l69ZlAYNDA
+PAkwKwYDVR0QBCQwIoAPMjAxODA1MjIxMjIxNTNagQ8yMDIyMDUyMjEyMjE1M1ow
+PAYDVR0gBDUwMzAxBgRVHSAAMCkwJwYIKwYBBQUHAgEWG2h0dHA6Ly9yZXBvc2l0
+b3J5LmluY2VydC5sdTA+BgNVHR8ENzA1MDOgMaAvhi1odHRwOi8vcmVwb3NpdG9y
+eS5pbmNlcnQubHUvQ1NDQV9lSURfY2FyZC5jcmwwDgYDVR0PAQH/BAQDAgEGMCoG
+A1UdEQQjMCGBDmNzY2FAaW5jZXJ0Lmx1pA8wDTELMAkGA1UEBwwCTFUwKgYDVR0S
+BCMwIYEOY3NjYUBpbmNlcnQubHWkDzANMQswCQYDVQQHDAJMVTBBBgkqhkiG9w0B
+AQowNKAPMA0GCWCGSAFlAwQCAQUAoRwwGgYJKoZIhvcNAQEIMA0GCWCGSAFlAwQC
+AQUAogMCASADggIBACXDHedVXLv5CSlReExAfxf6Outhlq8m7ddBV295DSE57zTc
+LYrUBYFIf3pXVwxjhLT+rCfgsmxS1l1Pa0jdvvhdPCfewvRPpk4CgBuK7Jcm3MnQ
+xzTKLOpGYDffWAV1m4ftTmut5hCsaM2p4A+bs0Cyc0jztrsTQBlL+qiaTzjV/IGJ
+B2sfzQS7jhbtqobgcymvqYPTWSfc9/pGS2K98KClC6sV5Eu7INvDQUHMDDJxI27J
+Oj999SeLRaxAhRHcM7qtWqm7Ajs5+h1sM+69BeAcniAOWPpG0NomwrXFRpCEjg0j
+GFIfmmOnVXQyv3RLWfD4Ecs84v9+4H4/A63F7uzsrlrRyV6WcCxFyRKqtJlt1Z/w
+pxFyiJiK2T6fwYQop3s4C8WAWk+G0lHrcb0jycsvb8h6D6h5DIl14IDQjvI9v5De
+4FsMj99d15TWo3aZAl1ia1A9mMhxQrC5zsaKz/dqZKFEYv0chg8glX3oOspKWKq2
+p1BHXWX5xket12pYj10ZMlxDR+yPQ0bD+WR8bsJ6n5ZERkoJw0bYEzcg4zHzKU95
+xSHdNx2nkdyb0Dn/UTmLnneItUTX8kEgnLr7UdAdKFjGvPZb3kV4+tbs8N8GkFjp
+6nbsTIb81mCE8I5taVwLTfp5v4JzvD9Zx577ks9mOAb07cevno0IR53Shj2+
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIHejCCBWKgAwIBAgICFvUwDQYJKoZIhvcNAQELBQAwZTELMAkGA1UEBhMCQVUx
+DDAKBgNVBAoMA0dPVjENMAsGA1UECwwEREZBVDEMMAoGA1UECwwDQVBPMSswKQYD
+VQQDDCJQYXNzcG9ydCBDb3VudHJ5IFNpZ25pbmcgQXV0aG9yaXR5MB4XDTIwMDUw
+NTAxMDQzMloXDTMyMDYwMTAxNDkwMlowZTELMAkGA1UEBhMCQVUxDDAKBgNVBAoM
+A0dPVjENMAsGA1UECwwEREZBVDEMMAoGA1UECwwDQVBPMSswKQYDVQQDDCJQYXNz
+cG9ydCBDb3VudHJ5IFNpZ25pbmcgQXV0aG9yaXR5MIICIjANBgkqhkiG9w0BAQEF
+AAOCAg8AMIICCgKCAgEA5Px4u6BkmBlCq4PyXHDaV9KDg1siTg9OImmoqdt4CPLl
+3llcuw5Dp0Yi0gT9FUmBzPfdkR7U4q8cC4L70e/GyBK41AQU64bKkBDj2vXIldnO
+yxQ3LcNTvCOPany8ocx0y7iZFA/DqOh18tgyfhQEop/9q0mJMukDAfT1Zc9Enjg/
+ZsneNz9aUL+mkDUS4lNk1pBGbKuWYn83xGVXpaiUa5+k2weLCswKRBpkbES3riJN
+RvHwKWLIEp5mc17gcin1gL9/C5eZpR9JcKcgNHmdJCPGT+ntd3XXLRQ3XzG7I4Gu
+Kcagbw3lB66nN4K1VnKWHmAUqJhQI2wJ5xaMh6l0E0ioHPnGl1l+pj8MpOV7L76W
+q02kzDuXxiVbo/EhU/dJsppYOkqSrXYbKyyLAQLyZkvsn8kvnUkqARK0APRXMKBN
+woPKMqO/I8q8rYSzUCu0uzzRL9nTu3DKPqis2B9d1Sz8uUf3s6yKrufhawH3XXbA
+9qwnu79BmDkuLV3U12kThb8Z/Vo+07P3WgGiztoDSaC6tLvu5d9LlvoFU/Y61T4u
+upmF80Uz0WcKzhjHu8tcq0Lp/UXj1szerwqrPZ0ZbKMOw8brJtiPUsX6Mcv+QF4i
+r+RWqryE69NJZbiqH+/nF7Uj7wekU10uL8V2CyKkErRohNZwLKRzJorVlGkh6GkC
+AwEAAaOCAjIwggIuMBIGA1UdEwEB/wQIMAYBAf8CAQAwgfEGA1UdIASB6TCB5jCB
+4wYIKiSfpoFdAQEwgdYwgdMGCCsGAQUFBwICMIHGDIHDQ2VydGlmaWNhdGVzIHVu
+ZGVyIHRoaXMgcG9saWN5IGFyZSBpc3N1ZWQgYnkgdGhlIERGQVQgQ291bnRyeSBT
+aWduaW5nIENBIHRvIHRoZSBDb3VudHJ5IFNpZ25pbmcgQ0EgaXRzZWxmIChzZWxm
+LXNpZ25lZCkgb3IgdGhlIERvY3VtZW50IFNpZ25pbmcgQ2VydGlmaWNhdGVzIHN1
+Ym9yZGluYXRlIHRvIHRoZSBDb3VudHJ5IFNpZ25pbmcgQ0EuMBsGA1UdEQQUMBKk
+EDAOMQwwCgYDVQQHDANBVVMwbQYDVR0fBGYwZDAwoC6gLIYqaHR0cHM6Ly9wa2Rk
+b3dubG9hZDEuaWNhby5pbnQvQ1JMcy9BVVMuY3JsMDCgLqAshipodHRwczovL3Br
+ZGRvd25sb2FkMi5pY2FvLmludC9DUkxzL0FVUy5jcmwwDgYDVR0PAQH/BAQDAgEG
+MCsGA1UdEAQkMCKADzIwMjAwNTA1MDA0NzM4WoEPMjAyNDA1MDUwMDQ3MzhaMBsG
+A1UdEgQUMBKkEDAOMQwwCgYDVQQHDANBVVMwHQYDVR0OBBYEFDYXwef1Z5VxLjd1
+cI5VgzGG6TgOMB8GA1UdIwQYMBaAFKsCMFU8A4Phy1zMwxDB8sHJlpPGMA0GCSqG
+SIb3DQEBCwUAA4ICAQC0jTCXMaF/FxSgAQQO+YJQR7rWN0zjk9r6P4i3RCAuId32
+hIgQgvxvdJ9JRjw9p3FeboOuSI0WweYxzJqvJo0HXhxoWzRl1e8HzBDaFnlagiRc
+YKzblDN/RiQ5+OcnxRPjUK6HwBZp0t5KWGXkEAsXcy92OSgQjKn4QsdG3Bw62vGD
+jrBUJDmej/KE2j6ddVDhtSFEmbEXQRA1kHezSV7hq4vgEPwc7TgwJ3ZnH10kmRWW
+mETp6/WwnS4zza1nNdpangwRcJeviacVM2XRvSq1U9i607kKy976QXw4NbH7rmfe
+I1t0MApBuZgjeR/ZQqLEFlGBND9McRGQgGMWLroQipxJpS64vjTw7tf/gqmcz9WS
+EwJTgFPOrw/b6epbQT7vlecupaV6K04Iy9i+aiwTbfjf2csaJxTYsHPY/IHfmK0s
+dlkogFpeKO1N5najniEFOeqZByHTCNkPdkp0mxM3plTQ3Sisqn8glZNiD6ZgOz1u
+lgR13hSHuNdVJJfVTfRq4tOfaRtZnp0hLiqrK2oJOE4WWoIBTpOgPEs+nwdEiTOa
+UEgKwitTetMw95KRep5nRe6RV4FCVJVKcY36uy1ZDarNkGoH7ke1hXQ91TfptYKm
+t5zLiOUkQRjnv4fJApr8rvBusVo/Aqp7BpWjoFsnVHpe3W1qi7k/ILS5HzPk3Q==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIHiTCCBXGgAwIBAgICNMcwDQYJKoZIhvcNAQELBQAwZTELMAkGA1UEBhMCQVUx
+DDAKBgNVBAoMA0dPVjENMAsGA1UECwwEREZBVDEMMAoGA1UECwwDUFRCMSswKQYD
+VQQDDCJQYXNzcG9ydCBDb3VudHJ5IFNpZ25pbmcgQXV0aG9yaXR5MB4XDTE3MDYx
+NTAwMjYwOFoXDTI5MTExNzIzNTYwNlowZTELMAkGA1UEBhMCQVUxDDAKBgNVBAoM
+A0dPVjENMAsGA1UECwwEREZBVDEMMAoGA1UECwwDQVBPMSswKQYDVQQDDCJQYXNz
+cG9ydCBDb3VudHJ5IFNpZ25pbmcgQXV0aG9yaXR5MIICIjANBgkqhkiG9w0BAQEF
+AAOCAg8AMIICCgKCAgEAzgdjHihPOoqH19h/Ml5NNJPN5JWDNBwzjwLUcKNYoAGg
+hPXo9CPyQP2L/q/LlxZkCTS3pYOI/BLc70rw/Kl3uLwQmFAttHoPNWf5kwW+HWNg
+v8mAt55QjOD6UmD0qq6F/PPzYax8A1VGX2fmgtU5iMuHKAsT+3iVssrcAkeh8D/i
+zpaYENY6v17VdIR+hQ8rXy9WVziaZfalRN0cbmE4LrTavD24ZoPW78AzFU3SXlr1
+RxjzR6GxZ0i26TmmaMN1poI7et8ARByVNqIgSmwveO1t2fZ1hvymQYeeJSLrvYvN
+EroWtmaFsaPWpexTzn8G0s9lgOrwp++qBCDDd0tcskLPpj08aw2ncYVh4qu/Q4cI
+3xpxqWsdFtLdHo4di4VRDZ97OEM11IIned4omDLEFsWwLYv7LfWEv2sSREsm1uL8
+/mbL/4bM9dKV8+txxfdquT73eJdRJIOIeSNcxlFLoiV2FKmwYXcDSK2rtoLqIxFm
+qfm1UFZOOAHvNIIhtsOvIETSnUbnarzhwOnowC9kqjjx1eCUzpu9HTcq2l/Istna
+7vhuhKR3HKvJcKEVaQtWF3qD2XQcrFoYl3GV+F7MlJLNqfqZPrn33+v+pva54gNJ
+trZQuFl5IcvX/bNk4MaWlG0S4IrBc4S9K3YZPUitEgPneikYkC9S0/x4Zg2kiucC
+AwEAAaOCAkEwggI9MBIGA1UdEwEB/wQIMAYBAf8CAQAwgfEGA1UdIASB6TCB5jCB
+4wYIKiSfpoFdAQEwgdYwgdMGCCsGAQUFBwICMIHGDIHDQ2VydGlmaWNhdGVzIHVu
+ZGVyIHRoaXMgcG9saWN5IGFyZSBpc3N1ZWQgYnkgdGhlIERGQVQgQ291bnRyeSBT
+aWduaW5nIENBIHRvIHRoZSBDb3VudHJ5IFNpZ25pbmcgQ0EgaXRzZWxmIChzZWxm
+LXNpZ25lZCkgb3IgdGhlIERvY3VtZW50IFNpZ25pbmcgQ2VydGlmaWNhdGVzIHN1
+Ym9yZGluYXRlIHRvIHRoZSBDb3VudHJ5IFNpZ25pbmcgQ0EuMBsGA1UdEQQUMBKk
+EDAOMQwwCgYDVQQHDANBVVMwDQYHZ4EIAQEGAQQCBQAwDgYDVR0PAQH/BAQDAgEG
+MCsGA1UdEAQkMCKADzIwMTcwNjE1MDAyNTE4WoEPMjAyMDA2MTUwMDI1MThaMBsG
+A1UdEgQUMBKkEDAOMQwwCgYDVQQHDANBVVMwHwYDVR0jBBgwFoAUSbFCm/OHzMqZ
+gKJFgxFXo19FBZgwbQYDVR0fBGYwZDAwoC6gLIYqaHR0cHM6Ly9wa2Rkb3dubG9h
+ZDEuaWNhby5pbnQvQ1JMcy9BVVMuY3JsMDCgLqAshipodHRwczovL3BrZGRvd25s
+b2FkMi5pY2FvLmludC9DUkxzL0FVUy5jcmwwHQYDVR0OBBYEFKsCMFU8A4Phy1zM
+wxDB8sHJlpPGMA0GCSqGSIb3DQEBCwUAA4ICAQArjZZMPqWYKvIOTT99cWn9rmxM
+F0ycRNsCTQiG4NzW7YkXRzLSh6AqEovlFlBkOSUhDisU7S7Zq6o+MUvcc2nFku39
+vXiAcxgs3xkAopntnhDsD/cKJ+I0jfvTOOrGaK41KAzrjKy4HrVxTN4iofb4JkfA
+w7O1PfkBUmUFiQaqqWGOF2D8Y75p0HGZ+lj3O4oBtsXOeD7ZYtwzVVRBPcEDoiAn
+L0/abqmwVHFayRiozhFIwBLl0HPyoWVL7S5x3kMNjvG3Gy9mJ6o9Q0q5tHOWWOwr
+b6wgZm8vBGTLBDfuAveYHQb79kyjl5AhStQjhObKQOw5ah9ehz4M038JBj3owMPq
+LSfo6r8h3zg8bH3pjba8VeHtZlmAXIyIP7JI9HNDI9tlCrJXdGXgi/VsWOQpOqLj
+oFZhlp9LjQ+UiSuS/47uOp2tf3BFt8jtHWLAjN9FrN+ezYMG0spuN7Caa77UFYne
+hd+RJKMgM/L/3DHqMkwVYl8/qzJ7ZvFpc+ea6M+SU2MH/1jdOfPxKN3y7223TMOr
+5XfhrBWlpCt763aIlWqQqr2pxGW624vgD3N2iew4vaCJbRQvIeW5qv0dTV+MnYaU
+HUfYoFzuvT0S1v/+Vxa94JavuDWasNuCwzIn3X8aUNy83ldAOlfUElSjpRmY+myQ
+tnUcQZfHIETKCcmC5w==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIHmzCCBYOgAwIBAgIIAigiWZpZ+KcwDQYJKoZIhvcNAQELBQAwODEUMBIGA1UE
+AwwLQ1NDQSBUdXJrZXkxEzARBgNVBAoMClR1cmtleSBHb3YxCzAJBgNVBAYTAlRS
+MB4XDTE4MDMxOTEwMTMzMFoXDTI5MDczMTE1NTIwN1owgaIxCzAJBgNVBAYTAlRS
+MTAwLgYDVQQKDCdSZXB1YmxpYyBvZiBUdXJrZXkgTWluaXN0cnkgb2YgSW50ZXJp
+b3IxQjBABgNVBAsMOUdlbmVyYWwgRGlyZWN0b3JhdGUgb2YgQ2l2aWwgUmVnaXN0
+cmF0aW9uIGFuZCBOYXRpb25hbGl0eTEdMBsGA1UEAwwUUGFzc3BvcnQgQ1NDQSBU
+dXJrZXkwggJGMIIBuQYHKoZIzj0CATCCAawCAQEwTQYHKoZIzj0BAQJCAf//////
+////////////////////////////////////////////////////////////////
+////////////////MIGIBEIB////////////////////////////////////////
+//////////////////////////////////////////////wEQgBRlT65YY4cmh+S
+miGgtoVA7qLacluZsxXzuLSJkY7xCeFWGTlR7H6TexZSwL07sb8HNXPfiD0sNPHv
+RR/Ua1A/AASBhQQAxoWOBrcEBOnNnj7LZiOVtEKcZIE5BT+1Ifgor2BrTT26oUte
+d+/nWSj+HcEnov+o3jNIs8GFakKb+X5+McLlvWYBGDkpaniaO8AEXIpftCx9G9mY
+9URJV5tEaBevvRcnPmYsl+5ymV70JkDFULkBP60HYTU8cIaicsJAiL6Udp/RZlAC
+QgH///////////////////////////////////////////pRhoeDvy+Wa3/MAUj3
+CaXQO7XJuImcR667b7cekThkCQIBAQOBhgAEAQOP2ydnvizdmYZhxNCrAN9i3bcz
+ZhsqIpy7nP8kEnKRBYdyxdsrrYXuTitFClo5myfl4vbhQy6sXkdlPIuVgsw6AGy/
+huFjlD0Olf6j3upcW0qbAej+lCFFljIsehopqFsS3op6raUGUrC6YLJXTln4taos
+EercWHsbT/ZhEGrtCCjmo4ICGDCCAhQwEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNV
+HQ8BAf8EBAMCAQYwUwYDVR0RBEwwSoEWcGFzYXBvcnRAa2FtdXNtLmdvdi50coIe
+aHR0cHM6Ly9wYXNhcG9ydC5rYW11c20uZ292LnRypBAwDjEMMAoGA1UEBwwDVFVS
+MFMGA1UdEgRMMEqBFnBhc2Fwb3J0QGthbXVzbS5nb3YudHKCHmh0dHBzOi8vcGFz
+YXBvcnQua2FtdXNtLmdvdi50cqQQMA4xDDAKBgNVBAcMA1RVUjBBBgNVHR8EOjA4
+MDagNKAyhjBodHRwOi8vcGFzYXBvcnQua2FtdXNtLmdvdi50ci9DU0NBL0NTQ0FU
+Ul9WMS5jcmwwgYQGA1UdIAR9MHsweQYLYIYYAQIBAQUHBgEwajAyBggrBgEFBQcC
+ARYmaHR0cHM6Ly9wYXNhcG9ydC5rYW11c20uZ292LnRyL0NTQ0EvQ1AwNAYIKwYB
+BQUHAgIwKAwmVmlzaXQgb3VyIHdlYnNpdGUgZm9yIG1vcmUgaW5mb3JtYXRpb24w
+HQYDVR0OBBYEFG+bu8ae7NrZvDHpUOEe0MoAIgWWMCsGA1UdEAQkMCKADzIwMTgw
+MzA5MTMzODIzWoEPMjAyMTAzMDgxMzM4MjNaMA0GB2eBCAEBBgEEAgUAMB8GA1Ud
+IwQYMBaAFGQ4nRVOuoAACRhXhH9vMjjqYhvEMA0GCSqGSIb3DQEBCwUAA4ICAQCr
+OvNKszjdKvkNtZSHskDNtt9Cbbede9dVh9AQJGaWm1aQL3y8gc5MUwGXIBeOADmP
+DZA19wZmH1j2wmJKuPi0Mt19l6hNFyqCnxZC2KdbSWjH1ztc8Q8Xt99LurvTCpGk
+Xv7eVisrJYrS4583hvmliQJWwdSDpNbWYYLEjiBcKzpzrDk/jyeb3rekzkY5dRYX
+IwIhN7vgRxmfPwFeSPJ7Jy3Uer6YPtzlxD6bc0N3utXO7JXvQqLHH65STFQW+/+r
+k6yVNOswSq2oxvCuaJj9XoImJOiawmXPH4KDieRUDEmj0Z0mvLCeamO8a4mJxMlr
+YjFKRzetLnyI0Lwga0xl2w6vQ0idw67oqrUokGC4p272CK9d+dhckL3NtySaq4XM
+mM485o7sux7ITmQT+PZe7JeIkFWQ3suI+JqM+A5jjZXeW13gZola869djKPly8oS
+OfqIGkrC+7ZjO0tfUdHCvLMsIRZFKYj5iaKdV9LcVCBHpdZBI51jwHJItPpt+CpV
+6tNkHY2k1jxVfwoil08GzQNXbYCNx1BAbgDb1+TKlbgxmy9SWatxeTAX67GqO8bO
+KIV3YVZXGYk5jB9ugF/zNYuOYUNoUVdbs9OrxlECvzPbeBPD9k3lPH/eyUyZ7W+D
+DRd9zToxgf1QtkS4Yl5RY9WOLxasnQcz+JXwwGe7lA==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIHnjCCBVKgAwIBAgIIWIsgSt751f8wQQYJKoZIhvcNAQEKMDSgDzANBglghkgB
+ZQMEAgMFAKEcMBoGCSqGSIb3DQEBCDANBglghkgBZQMEAgMFAKIDAgFAMIGFMSIw
+IAYDVQQDDBlJdGFsaWFuIENvdW50cnkgU2lnbmVyIENBMTMwMQYDVQQLDCpOYXRp
+b25hbCBFbGVjdHJvbmljIENlbnRlciBvZiBTdGF0ZSBQb2xpY2UxHTAbBgNVBAoM
+FE1pbmlzdHJ5IG9mIEludGVyaW9yMQswCQYDVQQGEwJJVDAeFw0yMDA0MjkwOTMw
+NDNaFw0zMTEyMDIwOTQzMzFaMIGQMSIwIAYDVQQDDBlJdGFsaWFuIENvdW50cnkg
+U2lnbmVyIENBMT4wPAYDVQQLDDVOYXRpb25hbCBFbGVjdHJvbmljIENlbnRlciBv
+ZiBJdGFsaWFuIE5hdGlvbmFsIFBvbGljZTEdMBsGA1UECgwUTWluaXN0cnkgb2Yg
+SW50ZXJpb3IxCzAJBgNVBAYTAklUMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC
+CgKCAgEArSSdsKx+a8rDZz72QDOT2YZGE3g/KVBhYgyzNARqHp51KM/Rr/02R71r
+0bqWxhbHcKXBNa+b9znp4tm2dstnPJlDWU/CyEzEqo2/M744VljmkkYxGR3P1g2X
+n3FFNZmDqmvgte7pPm9WgQxRhStqLrVCJl1FyOg9woFgt6LgmKk3jbX7g7JTvBlB
+y147TAsqaRJiqRVs++a65dYEUmiAPToGYvjgRQZxRZj8sG7qCnTD6FYzROpwwEFz
+59peZMxrKv/e0BZHBSKMGGCesexwQNj2v3EHWOtbhqf7njISKDGFyo5Cjt0KyabV
++kal977XijKs3ftyPUvlqfGqpHZ0kGQmLfZUjgze/ADnNn97FYhKJ29h1Ey/Waw2
+Vhu1HSn/w7+QqP640JonndX2cO/+Vzmx/UAZNsrmxbmEivhvggIZDmX8R/yiofbP
+lRjjd1TZXOjGkxxs+Z3yOIIP/HxQn1Auh/lNM0LYU4myZPVAxa2+b92+llGZTztN
+C1x8t7EA8gWL6NjGXCtZCyn1gkeDTa2O32/ubUyXkQqEMrlXI6+BfO4YYK9zMq83
+x98M+mqhMS9qOFzctmguxsyE+EparZnzr1/IdrGyY+loIAqV4KHQOavLaWy9sqZ6
+b0mhx3Uzi5B8sHOqh3eJmhChs1c20QgJ6CqYBjNVVOzOZDGQMNsCAwEAAaOCAZsw
+ggGXMBIGA1UdEwEB/wQIMAYBAf8CAQAwHwYDVR0jBBgwFoAUQ2zjkh0QkiMH79ei
+9XftdSRGfxswUgYDVR0SBEswSYETc3BvYy1pdGFAaW50ZXJuby5pdKQQMA4xDDAK
+BgNVBAcMA0lUQYYgaHR0cHM6Ly9jc2NhLWl0YS5pbnRlcm5vLmdvdi5pdC8wUgYD
+VR0RBEswSYETc3BvYy1pdGFAaW50ZXJuby5pdKQQMA4xDDAKBgNVBAcMA0lUQYYg
+aHR0cHM6Ly9jc2NhLWl0YS5pbnRlcm5vLmdvdi5pdC8wTQYDVR0fBEYwRDBCoECg
+PoY8aHR0cHM6Ly9jc2NhLWl0YS5pbnRlcm5vLmdvdi5pdC9jZXJ0aWZpY2F0aUNT
+Q0EvQ1JMX0NTQ0EuY3JsMB0GA1UdDgQWBBTRGlBeFa3qWmF3nKSiqZHsOUnR+TAr
+BgNVHRAEJDAigA8yMDIwMDQyOTA5MzA0M1qBDzIwMjQwNDI4MDkzMDQzWjAOBgNV
+HQ8BAf8EBAMCAQYwDQYHZ4EIAQEGAQQCBQAwQQYJKoZIhvcNAQEKMDSgDzANBglg
+hkgBZQMEAgMFAKEcMBoGCSqGSIb3DQEBCDANBglghkgBZQMEAgMFAKIDAgFAA4IC
+AQCqwD1pfEUHJIM1ViUCm/oJB2p42Nl+DAZ0hn3LOLCcBuCvBiZ8RHX0hnxAjBgv
+kNWMQBR0I7xwV6gRCpAen4kJcnSVYGV2zHcckX49SbHG061lueG24XCLUKpl3Nt3
+9ppQI53RWybS7NfxS7wZ62Crvsi84WcEFF5bzRzh4R3ex9I07PBjqX2WepLw3zrF
+vY+mGKICj6Z49LMdb29soOJgF5G9m75NihJGa898HH4wJspk22HWtTVpryEuatPt
+0hk5242R07SM/nb0neq2ccGfxDU2K1HasLtnCNiiPw2V864YQGsoGcfrit4t7AjL
+g7QcFjpLl9qL3Ae4C4i9r9+p2SLTcHQbnXafqLvqaK2QaJQkZxXV8NCI7CBG4vbK
+citokF0gFgpAwy10d3nz48ibaG3h2LdIysdRJ/uOHfoB+7DrclkWgKJjn0YWLYRU
+fzqGDnEB43Eb7g0zb354LXNjD5C1pre4kQZecVTb4ImnXrW9mDBZEXhlMGv/eMfP
+udrhn6oBVERcYoTT1AXGwxFtwjK0urj9GYC/P7wCXEP5OWvMvNcnqiwGJ9PYBLNv
+oRsPcMx3X6qC+7CgQuHlR2Do/UV7K6pSbf1l90moJo9sdV6viTB3J8achwFH6VjL
+t2VwQ8iSJLmbFHngxtClZZrmGEAXY31dVfEbaubIjdb2ng==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIH7DCCBdSgAwIBAgICMR4wDQYJKoZIhvcNAQEFBQAwZTELMAkGA1UEBhMCQVUx
+DDAKBgNVBAoMA0dPVjENMAsGA1UECwwEREZBVDEMMAoGA1UECwwDUFRCMSswKQYD
+VQQDDCJQYXNzcG9ydCBDb3VudHJ5IFNpZ25pbmcgQXV0aG9yaXR5MB4XDTEzMTEx
+ODAwMDE1NVoXDTI2MDIyNzIzMTQ1MFowZTELMAkGA1UEBhMCQVUxDDAKBgNVBAoM
+A0dPVjENMAsGA1UECwwEREZBVDEMMAoGA1UECwwDUFRCMSswKQYDVQQDDCJQYXNz
+cG9ydCBDb3VudHJ5IFNpZ25pbmcgQXV0aG9yaXR5MIICIjANBgkqhkiG9w0BAQEF
+AAOCAg8AMIICCgKCAgEAw+QzaMU+DpemI4CpHnpCF0pnIKI/M9JenO9UBKMIYim9
+LOPnx/1mZOqvENoGudAWfKzKqdBc4Z00NHObKZw1HPATYatKFzoHAdfEWsoURk3w
+ps4RHNjwHygwtPRMyHVtP5FwlKM6jILt/qgpS3pzYNMieLo7FIC1TpcSTEdtwVGR
+/bAsL/Ts8mjQfMX731L6s3/BJgOR0Ng1GvvETjOPQ9KfIWynvWqCHmQ0BZHDysHM
+bafMSl8V34A1nqsmtCkYFXr8ZZTUmzey4dwqgSIO1gQR2lGCssBVFktz1tjLv4o0
+VKgf8X0MJL6TASakK72fe9aM3Ghia+6pEf3mmMBvartA4Y44CoOuK2/RqV9fjJoB
+7BiDCSupcNDY54xlpIrGBEyD2Veyh5JwUB3ahGvN4X4QfweQKS/bwJbGcD1Q8b41
+4fU9H+LrRe235XH63rLMONmCidk0Hpi37T7NecFhMQwLlxvwWqJhej5qZSD9z+g7
+L1NN5n8vxn3oGSOuu3ylKNmIekdz0aOU3eSorzFd1h49aT59R4z7e3lPfO6ChLiE
+D36BtBbtYORFtPV7vTjG7WjhbUE/e/ZQwfKsBqOzKv/vUey+0e2x4ljI023IHkeh
+ut7Ylq2tctORrDjyEsQJR+dbqdqnp/u4dNVS7gi9Rn8+NygCA8JyP1B16gKp8IkC
+AwEAAaOCAqQwggKgMBIGA1UdEwEB/wQIMAYBAf8CAQAwgfEGA1UdIASB6TCB5jCB
+4wYIKiSfpoFdAQEwgdYwgdMGCCsGAQUFBwICMIHGDIHDQ2VydGlmaWNhdGVzIHVu
+ZGVyIHRoaXMgcG9saWN5IGFyZSBpc3N1ZWQgYnkgdGhlIERGQVQgQ291bnRyeSBT
+aWduaW5nIENBIHRvIHRoZSBDb3VudHJ5IFNpZ25pbmcgQ0EgaXRzZWxmIChzZWxm
+LXNpZ25lZCkgb3IgdGhlIERvY3VtZW50IFNpZ25pbmcgQ2VydGlmaWNhdGVzIHN1
+Ym9yZGluYXRlIHRvIHRoZSBDb3VudHJ5IFNpZ25pbmcgQ0EuMBsGA1UdEQQUMBKk
+EDAOMQwwCgYDVQQHDANBVVMwbQYDVR0fBGYwZDAwoC6gLIYqaHR0cHM6Ly9wa2Rk
+b3dubG9hZDEuaWNhby5pbnQvQ1JMcy9BVVMuY3JsMDCgLqAshipodHRwczovL3Br
+ZGRvd25sb2FkMi5pY2FvLmludC9DUkxzL0FVUy5jcmwwDgYDVR0PAQH/BAQDAgEG
+MCsGA1UdEAQkMCKADzIwMTMxMTE3MjM1NjA1WoEPMjAxNzExMTcyMzU2MDVaMBsG
+A1UdEgQUMBKkEDAOMQwwCgYDVQQHDANBVVMwHQYDVR0OBBYEFEmxQpvzh8zKmYCi
+RYMRV6NfRQWYMIGQBgNVHSMEgYgwgYWAFCsPmaNL6dWuAJM6eGjLzSGmz0floWmk
+ZzBlMQswCQYDVQQGEwJBVTEMMAoGA1UECgwDR09WMQ0wCwYDVQQLDARERkFUMQww
+CgYDVQQLDANQVEIxKzApBgNVBAMMIlBhc3Nwb3J0IENvdW50cnkgU2lnbmluZyBB
+dXRob3JpdHmCAjAAMA0GCSqGSIb3DQEBBQUAA4ICAQCXt/Op3lKn7nEVQnaSWkTx
+gt27HP/Mx3b+up6/XoaCaCnNvzwi2kp2Adcfbaf4F2k66i4DDuf0RnxgVMAcL93u
+1h2fviLF3DYbsiIODioPsjQnQnBNK7ISzuCQV3DNnF+BpLyT+chp79XJrAyR385V
+4wvGM4Az3c0ApmY0DeXwV59dBB5gHr4x6DmIKDYRjJDF7LvW3KWgyLQ/03VseX5K
+ccxv9gTEgq9dalhrxAmGLnfEFP3kNMT+OSOVSEVkafScLa4XdXoCLZ45YvFaXxAH
+JiEzxov7QwV8lkbe3Ak7Cx2xdTrucUnCoqtmpanO2OjGnxmZFIi9Jn2ouauLVdWr
+J5ozzgeIHdynOPAOIB0oMea/B87Eko24HKImNH3UUNTBWTQ1ytDxcnOXIWRSvH17
+7NQrzSgerSIV3irZcIaMWFnjtO9iVQuSTvACsxkZUgoxTsAD/odAdbVxICMbPBW4
+UA/5C5v83xA3UkiDwLt5H6/4fyKvgIrcRvcDCSJtveP6bxAUzMEA9xo0CmRXt8sd
+svFYmDlsVoRHrY7+0F2UJH4DmLKtfm2okp/wAG0uBwPLUJjHn1OmEufgvJm5Rkix
+IgTQJMAliEGFtY67B2pkxJNo0TKaxkAj7nVqLilh9Yd0AEFemrQWEmarcsleEvOA
+dSdEV27NH84dv0VzIQMJ/Q==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIIDzCCBcegAwIBAgIBYTA9BgkqhkiG9w0BAQowMKANMAsGCWCGSAFlAwQCAaEa
+MBgGCSqGSIb3DQEBCDALBglghkgBZQMEAgGiAwIBIDCBhzELMAkGA1UEBhMCQ04x
+EjAQBgNVBAoMCU1hY2FvIFNBUjEnMCUGA1UECwweSWRlbnRpZmljYXRpb24gU2Vy
+dmljZXMgQnVyZWF1MTswOQYDVQQDDDJDaGluYSBQYXNzcG9ydCBDb3VudHJ5IFNp
+Z25pbmcgQ2VydGlmaWNhdGUgKE1hY2FvKTAeFw0xODAxMTAxNjAwMDFaFw0zMzA3
+MTAxNjAwMDFaMIGHMQswCQYDVQQGEwJDTjESMBAGA1UECgwJTWFjYW8gU0FSMScw
+JQYDVQQLDB5JZGVudGlmaWNhdGlvbiBTZXJ2aWNlcyBCdXJlYXUxOzA5BgNVBAMM
+MkNoaW5hIFBhc3Nwb3J0IENvdW50cnkgU2lnbmluZyBDZXJ0aWZpY2F0ZSAoTWFj
+YW8pMIICIDANBgkqhkiG9w0BAQEFAAOCAg0AMIICCAKCAgEAwBBn1ERWiEe8DBUv
+eKRJWwVnwTqPysl3QwclxMtTpFLzlukRUA37lm2Q0brpM4ifpa/vdTMeuZ90Jo98
+qLD6DtjqR2G6Um3SkfitSzlVRDS35ose0gI2l+nH312wfGnZCvr1hEg1mArr5tlk
+7fO5L5g8Ri+8JFi2yHj9/ajLfjtwy7oFHwt+AqVaelKW3Q7j+oPuW4EsAFQJazas
+9hCX8eFGqxsp9SX0Dt61HfXLV5XV7zBKagkxEHlCeNG5tED+FEz1An0e/BKc3M6Z
+swC/FqZLExlzEMPROFV7z/CpUgjCnYBJAW26YPbnWHJJTBXx8pFyiyqlGpZ5ys+t
+EyTsf5hgS/ivOYVKwH4oij7tzCddmgXKD88LawBIT0odjiUymEfKmYLBxCc3Y4tY
+iEz3QtZ8xCvkrptKJZq+wDL1nWOJpDrzN7HHMaoFp/uOKc0SnBmjOiPiFg9FMUFB
+p4z1zxsK4U2QTJw+63fcCNdiJjj/W/Nm5+Zspa7rNeFh1qnkl3lAvCIv97vMUKle
+0EbhARhrojupJSVILKItbQ2+S9qtZP+eGSn4m38RSMesL9s7POFXQ+6m0iSRcFOv
+5jmTK/PzzxdfCTXDMTIrM51p3R/HsD7TqzuHMyJ88f8UqEju17ycIT7FNLWaECn3
+TDk6fmv8WTC1Oc+Y0DVcomtYpF0CAQOjggIkMIICIDCBtAYDVR0jBIGsMIGpgBRt
+ckHLKyFzYmEZTALTOesDxx1T3KGBjaSBijCBhzELMAkGA1UEBhMCQ04xEjAQBgNV
+BAoMCU1hY2FvIFNBUjEnMCUGA1UECwweSWRlbnRpZmljYXRpb24gU2VydmljZXMg
+QnVyZWF1MTswOQYDVQQDDDJDaGluYSBQYXNzcG9ydCBDb3VudHJ5IFNpZ25pbmcg
+Q2VydGlmaWNhdGUgKE1hY2FvKYIBMzAdBgNVHQ4EFgQUeO9EcTNUWeaYrZSxdbkn
+vkdJ8D0wDgYDVR0PAQH/BAQDAgEGMCsGA1UdEAQkMCKADzIwMTgwMTEwMTYwMDAx
+WoEPMjAyMzAxMTAxNjAwMDFaMD8GA1UdEQQ4MDaBFGVwYXNzcG9ydEBkc2kuZ292
+Lm1vpB4wHDEMMAoGA1UEBwwDQ0hOMQwwCgYDVQQIDANNQUMwPwYDVR0SBDgwNoEU
+ZXBhc3Nwb3J0QGRzaS5nb3YubW+kHjAcMQwwCgYDVQQHDANDSE4xDDAKBgNVBAgM
+A01BQzASBgNVHRMBAf8ECDAGAQH/AgEAMHUGA1UdHwRuMGwwNKAyoDCGLmh0dHBz
+Oi8vcGtkZG93bmxvYWQxLmljYW8uaW50L0NSTHMvQ0hOX01BQy5jcmwwNKAyoDCG
+Lmh0dHBzOi8vcGtkZG93bmxvYWQyLmljYW8uaW50L0NSTHMvQ0hOX01BQy5jcmww
+PQYJKoZIhvcNAQEKMDCgDTALBglghkgBZQMEAgGhGjAYBgkqhkiG9w0BAQgwCwYJ
+YIZIAWUDBAIBogMCASADggIBAF06hO0oRM230FuIjWDa5tVYPhlff3aeeQOrzw38
+IKPoTdzS6lXuAgtfszMe0SIH99x00FLd9+mYlM2aQeZys+WedLH/DjdaueZZoKBx
+yelJtdV9RvfPhA32YWVOC8PGmOmoEkWyWwdVaGyzjF5cmun4kPsMqCPUfohwvN4x
+sssHeuMnH1m37MDzi790L7Zj5PJtslWC3NL9Xxbt0d3+qYlk4HZs4oAQM9BGb6xp
+95IiSlLEmsKSWjb0cQ+GTojMumVJmJ2bZpx0dWvVq2D0SXhIeFWrR/ioXKoHbRp2
+CCS9VXyd61H3dI4mEs3N/POqJyhWdF1GPl/+0JenXKQ9kR7Ot3mSa6sH9iJHhjg8
+g+SNnEWeS+qBcT06fRIidv+k1h5UlnDgrFeEDTufJwvW+x4/doHhn4V2TZVV+PEP
+K0aIICCqzHcK5GHTEj26uLwESpJ7rCNuZul1i4Z06uZWGJPve+JFi040xeBlWyVl
+Y9vMt9c9ksExmMC7qI3pT/fkUcqNkroSs/QlHWKMXPVryFGypP5YJqzJxoZSq6Gw
+3KrGn6tnnYhFU8ItYzQe7CWW03Tkq8LRhaFctZCWQjX2zP5TnnYqanFkYfMax0Is
+eQP06JUI5imwccAG+MKAbO5xl8++Neg+gEhd6BM0Lcsd8sUYZtAaHU+3i1y640Fa
+lkKt
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIIDzCCBcegAwIBAgIBYjA9BgkqhkiG9w0BAQowMKANMAsGCWCGSAFlAwQCAaEa
+MBgGCSqGSIb3DQEBCDALBglghkgBZQMEAgGiAwIBIDCBhzELMAkGA1UEBhMCQ04x
+EjAQBgNVBAoMCU1hY2FvIFNBUjEnMCUGA1UECwweSWRlbnRpZmljYXRpb24gU2Vy
+dmljZXMgQnVyZWF1MTswOQYDVQQDDDJDaGluYSBQYXNzcG9ydCBDb3VudHJ5IFNp
+Z25pbmcgQ2VydGlmaWNhdGUgKE1hY2FvKTAeFw0xODAxMTAxNjAwMDFaFw0zMzA3
+MTAxNjAwMDFaMIGHMQswCQYDVQQGEwJDTjESMBAGA1UECgwJTWFjYW8gU0FSMScw
+JQYDVQQLDB5JZGVudGlmaWNhdGlvbiBTZXJ2aWNlcyBCdXJlYXUxOzA5BgNVBAMM
+MkNoaW5hIFBhc3Nwb3J0IENvdW50cnkgU2lnbmluZyBDZXJ0aWZpY2F0ZSAoTWFj
+YW8pMIICIDANBgkqhkiG9w0BAQEFAAOCAg0AMIICCAKCAgEAtdfAcSc5w+kVyEiD
++wzF4aDg08UPzeHWS0+Sn8IV9XrE6HGcCP9HIDaWAi8/W2/kO5jpIg0uUw9yR1yt
+J/B5ZKT5llFHzEBcXshxNm0C7peVl1BPd0bYsWUfP4mJl7wgGnSqmMvRSoaJwLX/
+KbUxJQ5F/YEIEdmZUrwHaOmdRdvU0N6gJDzRzwC8okNloHN+21aQMQOd+rwPoiLU
+f7iXKLfdHbDtsLEirkwa5eqru4cGzNNh9ZoZg+V8SIj+jqy/VuUJAt1Wfp7Dw3AA
+Lod2KHFHX1TJErN18o0AERS5Y7lIG6goA4oRyY/NoeMuwTKqAYEqyA45tHlOdgSd
+oN0BhgsUHnQwZ2gppIgxRh4CsSXuKG6ewgQRqz+eYaxBqMLp73Xu+4akAEO8nUxr
+gHTfdk5RxNFy6GMcLRRLTYRJ77dUkvetUpT4I41e7ZpOgtcRBtQhqP6MTUgXAoMN
+NyhGhpaNKOJsi7zEh1O1yNTjXXVJR0i/qZvqSLDZNPXiuJejdRUvB0SjlhS17gJv
+y5MU0O3oniZbLNYTznw8AYN8s+2onJtodqgjZmochp2m5HM5trNk1ykkIo6SAE1b
+nDD4c7Bd5uZ7QPgKJ7/9B9qviXLGkbRWpdG2Q/23uX/eITgfTs7cY4NhU+vDWDRC
+/Hs1k5n1AywfGuAeKWdsgWLJp5MCAQOjggIkMIICIDCBtAYDVR0jBIGsMIGpgBTx
+UweQqrmQyL+MNpF+WAscr6lpu6GBjaSBijCBhzELMAkGA1UEBhMCQ04xEjAQBgNV
+BAoMCU1hY2FvIFNBUjEnMCUGA1UECwweSWRlbnRpZmljYXRpb24gU2VydmljZXMg
+QnVyZWF1MTswOQYDVQQDDDJDaGluYSBQYXNzcG9ydCBDb3VudHJ5IFNpZ25pbmcg
+Q2VydGlmaWNhdGUgKE1hY2FvKYIBNDAdBgNVHQ4EFgQU2Xqjd+ZUsiCBGZUzXpA3
+9ddetAwwDgYDVR0PAQH/BAQDAgEGMCsGA1UdEAQkMCKADzIwMTgwMTEwMTYwMDAx
+WoEPMjAyMzAxMTAxNjAwMDFaMD8GA1UdEQQ4MDaBFGVwYXNzcG9ydEBkc2kuZ292
+Lm1vpB4wHDEMMAoGA1UEBwwDQ0hOMQwwCgYDVQQIDANNQUMwPwYDVR0SBDgwNoEU
+ZXBhc3Nwb3J0QGRzaS5nb3YubW+kHjAcMQwwCgYDVQQHDANDSE4xDDAKBgNVBAgM
+A01BQzASBgNVHRMBAf8ECDAGAQH/AgEAMHUGA1UdHwRuMGwwNKAyoDCGLmh0dHBz
+Oi8vcGtkZG93bmxvYWQxLmljYW8uaW50L0NSTHMvQ0hOX01BQy5jcmwwNKAyoDCG
+Lmh0dHBzOi8vcGtkZG93bmxvYWQyLmljYW8uaW50L0NSTHMvQ0hOX01BQy5jcmww
+PQYJKoZIhvcNAQEKMDCgDTALBglghkgBZQMEAgGhGjAYBgkqhkiG9w0BAQgwCwYJ
+YIZIAWUDBAIBogMCASADggIBAIgUspDDzX45nvoiqSrJifkqWa+GYiopa9ltf2rO
+65ug5cYognEMBhoYWdrvH6IrmMtixGDbMkd0vrAtINMK+ksn4A00Gk9AFzcvd0u2
+J3C7z1cOxaTp+0aZqgDrweU5PnRHq92jQV1EVG1/t+qVlcbhsLyFzBcgOrekY1b8
+r3B5JmXfdd5EOeo0KFnDgHiG35Sby5m0z0DctuOjrT27I7LUDUtrTIpBtFEIEv2X
+fDfsOUfTWHmqVN0BxpUgHHV2sEGcS3uSVUvZA9Oq6puFIH67L8FNDban07PSVdr2
+48c7J5kO4NZrKep4tef8FIHWI9WR1WhuB8F+Vk1S+QqqSh1bY01DbuA8cb7Wdb0q
+31ZIcy1t8gGjGxcHOZMReJqlVsPYb8v0afNe1ep/8w38jKgW3r9iO/K69cwUpHp4
+MQ4USIvs2DGhnY32cuv6GkeChKvh/kZD+TvIgNzyJ1xQR4dYBR3WWjb6Z9ZQWhdM
+zHj9RWhdkgD33+3IztnRFP3GWIWhTphSG+GA1LMI8AqvXcnpaX6Wb5kKGJMIK5Ye
+Z/ZqlmmYSORhuXmmSd1/S5vk0AKgn4uX6iYNMQ5AP3V8IwYfTQ3YHW977VRZhki7
+u/Wq6Bz8jm8GAzC9+TB3njGD807HmTJ0ZT4kIIpznQBI3KvBfMo9xWpbRw7STnsN
+uivR
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIImzCCBoOgAwIBAgICAOwwDQYJKoZIhvcNAQELBQAwcDEKMAgGA1UEBRMBNzEa
+MBgGA1UEChMRSGVsbGVuaWMgUmVwdWJsaWMxFDASBgNVBAMTC0NTQ0EtSEVMTEFT
+MQswCQYDVQQGEwJHUjEjMCEGCSqGSIb3DQEJARYUY3NjYUBwYXNzcG9ydC5nb3Yu
+Z3IwHhcNMjEwNzIwMjEwMDAwWhcNMzExMDIwMjA1OTU5WjBwMQowCAYDVQQFEwE3
+MRowGAYDVQQKExFIZWxsZW5pYyBSZXB1YmxpYzEUMBIGA1UEAxMLQ1NDQS1IRUxM
+QVMxCzAJBgNVBAYTAkdSMSMwIQYJKoZIhvcNAQkBFhRjc2NhQHBhc3Nwb3J0Lmdv
+di5ncjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAKDyLEOr3wuc6YrA
+hadiiDqoXjjTObKKvtJpymfZBfSFWInFLIw1hyK6WjdWecGvJDRzF9llAK6FzJXD
+Lgb8hYkM4COgbgyGtnVyezw1Z/HcCdpnz5IS6LhsXGn2uqDnvo0+AXQI+0joYl1X
+vwMEthJyOAIRZhCkc6Oj/byufG8HLh7IrHkFLm2JgnKUBMR4Ne7/6J9P8JyEhLqA
+puE8dJWSSNu5YzepNBPdgNo9c4FdIeGyKC8yFtbwJtYSfYubhRxhRC9dGghjT8Ev
+fQGH2gEcZfpv06m0yc7lMgat0EZQZE4p1XoD8PLIhR5omS5yAEim1ORZu5vrb/TT
+S4fNt84EctlB7DbCWmltsVWnUdAgqtgHJrCvz33a0a7eabIGncLO1Yj2EJZZDEbL
+dvuReSisO7RwCXQPB1doXdqCbeBji/iai8K48KZ8XvR34Xgd1GukrbvhxgQ3mnvx
+G9oBgRc8cWWr6L7VZyNyyFCvdhzrdONG4Taeoa6rMFQ8fGeLgPmBXjLBigmfKIfd
+tFIlCTVxbK3ULKHK7J4o7v+gTEvMFplJUvbc+wpDIeL88NYX/OekgNj6N6MmPdcA
+Q0IRb/8PK3tIhXtvMx+ljXxYrcjsbF2P4UNI785phf54WHwMiI03sDaKJQ+2s5tk
+mVKt8D/bm3ZXzznavOxmwfZVAFVxAgMBAAGjggM9MIIDOTArBgNVHRAEJDAigA8y
+MDIxMDcyMTAwMDAwMFqBDzIwMjYwNzIwMjM1OTU5WjAOBgNVHQ8BAf8EBAMCAQYw
+HQYDVR0OBBYEFEH1vvhYbNcdDNjit0bSKnzgY8Q6MB8GA1UdIwQYMBaAFEH1vvhY
+bNcdDNjit0bSKnzgY8Q6MBIGA1UdEwEB/wQIMAYBAf8CAQAwOQYDVR0fBDIwMDAu
+oCygKoYoaHR0cDovL3d3dy5wYXNzcG9ydC5nb3YuZ3IvY3NjYS9jc2NhLmNybDCC
+AbIGA1UdIASCAakwggGlMIIBoQYMKwYBBAGqbAEKYwEAMIIBjzCCAVQGCCsGAQUF
+BwICMIIBRh6CAUIAVABoAGkAcwAgAEMAZQByAHQAaQBmAGkAYwBhAHQAZQAgAGkA
+cwAgAGcAbwB2AGUAcgBuAGUAZAAgAGIAeQAgAHQAaABlACAAcgBlAGYAZQByAHIA
+ZQBkACAAUABvAGwAaQBjAGkAZQBzACAAYQBuAGQAIAB0AGgAZQAgAEMAZQByAHQA
+aQBmAGkAYwBhAHQAaQBvAG4AIABQAHIAYQBjAHQAaQBjAGUAIABTAHQAYQB0AGUA
+bQBlAG4AdAAgAG8AZgAgAHQAaABlACAARwByAGUAZQBrACAAQwBTAEMAQQAsACAA
+dwBoAGkAYwBoACAAZgBvAHIAbQAgAGEAbgAgAGkAbgB0AGUAZwByAGEAbAAgAHAA
+YQByAHQAIABvAGYAIAB0AGgAZQAgAEMAZQByAHQAaQBmAGkAYwBhAHQAZQAuMDUG
+CCsGAQUFBwIBFilodHRwOi8vd3d3LnBhc3Nwb3J0Lmdvdi5nci9jc2NhL3BvbGlj
+aWVzLzANBgdngQgBAQYBBAIFADBSBgNVHRIESzBJgRRjc2NhQHBhc3Nwb3J0Lmdv
+di5ncoYgaHR0cDovL3d3dy5wYXNzcG9ydC5nb3YuZ3IvY3NjYS+kDzANMQswCQYD
+VQQHDAJHUjBSBgNVHREESzBJgRRjc2NhQHBhc3Nwb3J0Lmdvdi5ncoYgaHR0cDov
+L3d3dy5wYXNzcG9ydC5nb3YuZ3IvY3NjYS+kDzANMQswCQYDVQQHDAJHUjANBgkq
+hkiG9w0BAQsFAAOCAgEAY+8TPPWHUdkCcFmLIVV835ikvVOkHW4rUgyHlJEbeGNL
+B6TGC1/ASfwAWUCErdtGsKPfcY7oRTFYi4vdwsL6ncOD+6ERyKfJ6o5A9GPXlXJc
+eVg4V69791smJC8J1cp/xd7nc5VmXsCIjrV9S5xfSgszkg3wSmYW8Bj5fq3VWhdd
++91otmAlUdBE6ShNGa4JL6O2tyUMDTnsIRJww2rV4/WQ7+6eRm021fzbxZMQOdwh
++5YwLL/w6yDXkJ+cRIqizfg60igzHmVera9kchoBoXK3cfrNlCwbhmTcGYQ356Qt
+ERsUy15O8nonobhdSk8kqeLTJwTSP+XKDXYcFkgjXybXTiLHm+rd6hGT35AsejrH
+Ku+RIyX34QntDSLRZpozCe4RWTeOAR2luDLtQH20SHGIwa7oMmbHUG/ms7UAzTXN
+ccBQkIJSYoZKL/JizE/Qjbk5+bNua8mk52SvyArbNsbRn5bHAqwko2dtQFP+jDn1
+ffIxOMKoHKq3Lif6jpZOacK8f5w9vmOg9EDW2mVyMpYgMv+sfJcvaGZO88nQmTEH
+A6xtnhNzHzF7k68YSiDqM/CIPYud5/Cqtp/R3nu2VCFd2cdULJDkAMb0QAvDzWvE
+bwQL1qU8lkwTUg+iweCv14bWY47U0iVj/fodwzS6U5bEzWnu8vayBBhcOoFocFs=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFMDCCAxigAwIBAgIESVaL2TANBgkqhkiG9w0BAQUFADAyMQswCQYDVQQGEwJy
+bzEMMAoGA1UECgwDREdQMRUwEwYDVQQDDAxDU0NBIFJvbWFuaWEwHhcNMTQwOTAx
+MTE0NDA1WhcNMjYxMTI4MTMxNzIwWjAyMQswCQYDVQQGEwJybzEMMAoGA1UECgwD
+REdQMRUwEwYDVQQDDAxDU0NBIFJvbWFuaWEwggIiMA0GCSqGSIb3DQEBAQUAA4IC
+DwAwggIKAoICAQC2llNrwv8I7xvQZU96YR3HtJ47E2FxK2Pkzq2Qbz1ODHgd7M5t
+m9ozfoW0kk+RnVJ2eynQRBxQM2oHCgG7E6uHwnl+LlkXSxxehqjowF5dgPqk3chG
+BmD/yIZniau8N/d3KL43/eOFsPKul/Uh6w9L3yhDiTz7Eo0VsHG23RuRqGF6RW+d
+X2e1ZwkMnUPc/tKxejMz4DZSk2kZT+q+gtylcaKIDoEWTqV+L6HLUOcB4xYmsCpw
+wvAC4S+1ECeOje1nPzDd9qP1aMTVPRuhM8SOEYNVxwCR4HNMDusfZdNYS31SNurd
+zxNcPe7aqugP4ohMWB3o/N4cI1yshni/NHPZkfaw4QokHroshGZcFYVU4gW3h188
+TvkWi6DZN928Or0O1MriOI3PdO9egRDrQZFEjmSvMB4VzLYjmufc7+Ix5prlSqIL
+OvK2ceHDCGLy59nLMwGwQ8OEL8BdW9FTmoP1/945iCjC7iStruxuYooRbO1WJHun
+gEMPe1f44FX81Jpq7X0AEwEOBEi9o/H/PH/mWCympdH2IaKlrUaOuOxHsEKjL+9a
+ayengoPxnHAdjb9T3qa1U8mqspVJ2uZxK1IBtEVpg4HJgabR5yXZ8YvAs/O/D4St
+9J+Iggi0Z0CrxhT6ZzLIwHJMu1aNpcc688QcKHdQewckafR7SaJW3cwinQIDAQAB
+o04wTDASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjATBgNVHSME
+DDAKgAhKJO4EtR9gIzARBgNVHQ4ECgQIRDPKmBoxb3AwDQYJKoZIhvcNAQEFBQAD
+ggIBAEtrFFFh0VWM9J5NbAkac71ljUJZ3sIVPvJF/QXyfSgFNY48j6kHjcu86GzM
+c47dZ4QvLoaZl4YaXj9mdDiUsNTxCH9SJPyuJQJw1k+CJx/TP2RSwekJ7AXcGkYr
+flsy32SI3vM6rcD5rL9TZLnpJ3T4M5IiM5WCK7wudS5dBHNq/h3Wx3uewI+8nMyG
+rNpUGoXy2f+8pKdTdL/0Rao4AOP4/fSGVETnp1ezUggvoHF4k5KyG10fznmJ8PXf
+ejyjP4K6wSaB9gpK8jFNq+MXcYwhqiNVbtPC+wDEWdZtAovFe/TWZtaRi/oB+WFx
+DKMQX2w7ztGscAwnvPJ8mrlUWe5FZxleSot200WAPclSSHo/9kmgJ1129VEUd4m5
+1n0alVQCnFkBtPBKSDN4bTUTTg1BTfypgJ5AFSFvMnvz+82hBRZHtDvC+JtbNbuv
+BaE2Vi1WMJmzneoVOq/busQC6ynCfRDySkUiympa8ZxkojXDCBrPkvTs1uSBy3A/
+vohmxEUdvG/ObiyVBTxH0D6Hjj3jmeh501TfmdEyN65LSBBJ8B5PuG8V3FCx+SHN
+lhkou8psCfxICCcEgQkXFIFbZpy0pQyAkn2rVTRU3hTfZkZWdPZWRvgFn+ZRdUKl
+bUUKn5+7xNLPWVMnHqC6Yy+Lsa93VssHbm/uPuYJ49oiQ/ie
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFzjCCA7agAwIBAgIESVcI/zANBgkqhkiG9w0BAQUFADAyMQswCQYDVQQGEwJy
+bzEMMAoGA1UECgwDREdQMRUwEwYDVQQDDAxDU0NBIFJvbWFuaWEwHhcNMTcwNTI1
+MTAzNTE1WhcNMjkwOTAxMTIxNDA1WjAyMQswCQYDVQQGEwJybzEMMAoGA1UECgwD
+REdQMRUwEwYDVQQDDAxDU0NBIFJvbWFuaWEwggIiMA0GCSqGSIb3DQEBAQUAA4IC
+DwAwggIKAoICAQC9OchTuFNcldV5FM6KHGEEA7SCpAkMZeLpvmjrYJ0VslzdSt5z
+/p2KnHXzf7idFbDLw0ZQTWdmCwWrRMBFIHvJSNbUphvuX02VUuiPNOkhmAq32a47
++h6xLNBHopyJcU6UbDnNo6wMPAtkthpuLmC/gkTtJgnVOXwIidfauibacOZhyc3u
+Ef7Rytc5z4Dqr7Eu8zD0MonWDBnjMLxwzTO3v+tsYFEKSt+a9oE2rSlCDypSUvwk
+bQ9X0TPUkcC9htaDWBYZK0sK39Kin5mS7a9jMPzk3+id8WdgAAuTCuQQb5V3YsKw
+/52JxwCEOFjYmHFyVfWsuPW9qGpPHSXyPJyp/JjfY9vKAoT+3DXWI3oPmpzUV0Y8
+6y3TChidBwyqnpLvKeZkzO5V9nQ3TbqaGrEaS8hLZykLxn94g/P+siXEkz7wqlfr
+PkpbuYFltKpMCUxUY7JtokHvHXQLWpXkPk6px8RiCc3Yb7llRBmIC6vCUqrR8dDu
+58DsuM/fLwP5vaDW1sjhy20+jrUFloiqjgkRC3ekm1LdsLO52bIlk1s6O8MDSx+2
+w3ahodOWy0qErkX63it0xaLB2Rfv3WUVJgV88k9qnDJ96mqRHeyvkdS4QF/YU1Jj
++WoZxWX7/Mm+wj7euY2mk9SgK4jj3OrG6tYEQj5nsR4DuTqhCHulaBvx2QIDAQAB
+o4HrMIHoMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgEGMBMGA1Ud
+IwQMMAqACEQzypgaMW9wMBEGA1UdDgQKBAhNMKMqRkLhDjCBmQYDVR0fBIGRMIGO
+MEGgP6A9hjtodHRwOi8vd3d3LnBhc2Fwb2FydGUubWFpLmdvdi5yby9jc2NhL2Nl
+cnRpZmljYXRlL2NhY3JsLmNybDBJoEegRaRDMEExCzAJBgNVBAYTAnJvMQwwCgYD
+VQQKDANER1AxFTATBgNVBAMMDENTQ0EgUm9tYW5pYTENMAsGA1UEAwwEQ1JMMTAN
+BgkqhkiG9w0BAQUFAAOCAgEANneeXPeAvmfcuYwk/52m2IPWulYDvzY2kZKY2wYX
+1Q59VnT6bCcoF7BXXL4i+xuBVgJrpIzcRsNljJqE4KadXyh9B6gyChPqrTXFOZRE
+xwdeA/LrXzSQBY0KqQL+W+Ut0U/YsAwXJbhMGoUS11a0Lw/engkUYBUyZjXP/4a6
+12QBVOmF36nPnRBJO4tZVzLpw5qlS6UZ9CvltYd9npZW9QFoKO0Z+MPk+bFDUPO0
+JRfLVhkp81IE2HmAKSkHsqNzyuG7NIXPAtWgexLzw/jWjMlIni9MA4KN0qxeL+Dw
+p9DlBjU90VozJmVAJQNggl6GWJ1O6a6xO+BtF//l8rfd9ds2R/cxsF8Hlw1BUJ0+
+DKbwDFAy6SHwKx40j0kjnYjqJSAjPn7sWHDMivp9dJjYtKg0k/mPoh0kjQDyA/Qv
+L8OKuvN7dsRyMIA6JvanJ0NtmpXHUP08mdZUhN6QOvWOwU4UZnFfYguH3Z8qXEg/
+5kRIWJXAuut5ZXrurLn9R8trF7swBY/R76ofiiyq5SzzYZzzDqYh9LEofGVLGBRb
+rpnnmeom4z62+rvH7WAH9225w/V0vr24PnXdlxB0BAv/mxM5LgiAqZTyKlSjaXfy
+va1gLg25I+HBKZL5nkR4lxnvY70GBInLi3WMpSmT7rJX2r/1b76MKEfN0j8ZGK+Q
+OHQ=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+/C41eB8H/LjeKqvRzD8AYhLwShbm0vU=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIErTCCAxWgAwIBAgICBH0wDQYJKoZIhvcNAQELBQAwZzELMAkGA1UEBhMCUEwx
+IzAhBgNVBAoMGk1pbmlzdGVyIGRzIGluZm9ybWF0eXphY2ppMR0wGwYDVQQLDBRD
+ZW50cnVtIENlcnR5ZmlrYWNqaTEUMBIGA1UEAwwLQ1NDQSBQb2xhbmQwHhcNMjIw
+MzE2MTEwOTM5WhcNMzYwMzE2MjM1OTU5WjBnMQswCQYDVQQGEwJQTDEjMCEGA1UE
+CgwaTWluaXN0ZXIgZHMgaW5mb3JtYXR5emFjamkxHTAbBgNVBAsMFENlbnRydW0g
+Q2VydHlmaWthY2ppMRQwEgYDVQQDDAtDU0NBIFBvbGFuZDCCAaIwDQYJKoZIhvcN
+AQEBBQADggGPADCCAYoCggGBAKQeZnfYEdg5k878O173bdgF4Cso52EgxfrnC8rZ
+p2z4Iu5LKyC3vImyhRdk9/dkNf6BSRRpXqKIURTZmh66bVlJGql9J+tx6gEgF9Qv
+5yYdsGsg0Qtof9uVl1yb5eeZ375gHsoLYPcZDYa5p2+o8XmyP8XDMTurwYpgAZsw
+nCnTaBWoHCOB3kvP/vo5QLYdLfKGTf+LUvgKTlRXZevnTf7giAJTkzX33dJq5tdn
+xm8sJhLxhZejrYfwaBmC52kwWmpPvDozNIs8gKIbfPOycRs5c/JiaURN68EasWSY
+lU1H+x3fpGDlaLSR9M6X17d6PgwCRpcOpA45Lm+Z8iQpngR8+3uLQjM7a10XIcVG
+oBnfWOWaRxqZTrKaiVeJoBhZ7e8+l2fX5dscdhiopEzJpXa3noQOtnvQMCTGFmUc
+tk4bwtZk2JyrlpY/pKxvfTByh4iMO/cumNUz1VlsVLKr+rQJR3pRMJD8KnduBt/F
+hdhRITcX+Uhw2sU0aCHFwDqyqQIDAQABo2MwYTAOBgNVHQ8BAf8EBAMCAQYwDwYD
+VR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBT41rrHwo+VQiNGM84x7iussJTCczAd
+BgNVHQ4EFgQU+Na6x8KPlUIjRjPOMe4rrLCUwnMwDQYJKoZIhvcNAQELBQADggGB
+AB9botqJTRDdr7w3XA0Y8E23kZICKFniZaopl/yehYSSyuOUnoEtsMR/KmUC660U
+ngzMwDXjbAIvVVP0qJrDRcmjUe6bHA2K9wgaf2ILg43XADDDA6VvDfuMrBUFi2SH
+6O2E8syg+YDzob+siWqOFIcWKWaZWB8p6o5613y6INd/UEQJ3cq+lc1cqBXibnp4
+/07Xul4ltM2TStduQQmgUDnkFyyx2E686aqPBYo47hf3JkfSNag9pLlyMrDZL0WP
+tfJYPb4ccZxJBQ5j8f76drCqPT9u/JdanM8FNaka2Q4nlq6SF9kJ0WNiNVvq8fpr
+e0ZdYJoXyed6oe4o5pM8zIpe+2JH8n4naBGEr4HIrBXo6Rf4hOuLt2De5JXTcD76
+Zh/j7IpSX5nl3zKn6KVG/0H+AXf6GAYJoyWFAj0gS13/TYcqxIg1wXAQfnLm5bEC
+CzFIKUT4+exr3T9JY9M9zLm8y8fKyeowEeG/Novhj+SPyoC3jiv21mVXwaLqTBsH
+Mw==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGCDCCA/CgAwIBAgIESVd/djANBgkqhkiG9w0BAQsFADAyMQswCQYDVQQGEwJy
+bzEMMAoGA1UECgwDREdQMRUwEwYDVQQDDAxDU0NBIFJvbWFuaWEwHhcNMTkxMjA2
+MTA1NzU4WhcNMzUwNzA2MTEyNzU4WjAyMQswCQYDVQQGEwJSTzEMMAoGA1UECgwD
+REdQMRUwEwYDVQQDDAxDU0NBIFJvbWFuaWEwggIiMA0GCSqGSIb3DQEBAQUAA4IC
+DwAwggIKAoICAQDHPQqapi9eJzVxo8UrCBmzJAbBNZASDwc4CkCocmzEVELmosSh
+tymxoNaSG1a06DtduQkeLEn50HFgjQ4bHmw0jv25jSzDKj915iD1pHDlSSR7jAHr
+hfZd4csTr4xy7gWSo+xf/OIbmKvKSNA031MSoqbuUFoxYjoK4hL9GBvsQW0vsyCN
+tJVdeCeOAqwolL3RmurpJTHzpMBPzHq7hdu0+6Ckf/DWckgfTIvcmHR732rk+Dpz
+V8AWV4HjPpm4eqXNdqWsoWOpvGdVYQmeApv+RmP77jxwgSUPThwHGGWmRnQH7BS1
+88hLIMBWiSZah5j8MG+CXV50OakwzKgPXIlV0CkJnXpQDD/XZY8lcET3JsWw5ZYk
+TzegZp31hUgIweHSuqaLONi481TwgB8KA94zU6M+xxl0T/YIogShBKHwVMdbPaJw
+CaJmELwcrqIO5Gd5E9O4iJ4/4P9i/V3Ll8VphAfMjdAn7v2dDmuKB3W7zRrxH7fj
+uBtIAzfurHT0TLtGW7MSecvc6umBYD9J4vUxSN43+5L5r5S2ibxMNwnnX9fleEDx
+zIGPnGCAI8dqaPqYWxqKUiWorHHqav7YPQW39YrYWsFvn3gy5/J4r6levz0usHtd
+un4duufZ/uP7LilJE3gsW31EGafDDeCEKGeeS/0zcgSP4zfZJDRHQEzRUwIDAQAB
+o4IBJDCCASAwEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAQYwVwYD
+VR0RBFAwToEOZGdwQG1haS5nb3Yucm+kEDAOMQwwCgYDVQQHDANST1WGKmh0dHA6
+Ly93d3cucGFzYXBvYXJ0ZS5tYWkuZ292LnJvL2NzY2EuaHRtbDArBgNVHRAEJDAi
+gA8yMDE5MTIwNjEwNTc1OFqBDzIwMjQxMjA1MTcxNjE4WjATBgNVHSMEDDAKgAhN
+MKMqRkLhDjARBgNVHQ4ECgQISBxENSATLPYwTAYDVR0fBEUwQzBBoD+gPYY7aHR0
+cDovL3d3dy5wYXNhcG9hcnRlLm1haS5nb3Yucm8vY3NjYS9jZXJ0aWZpY2F0ZS9j
+YWNybC5jcmwwDQYJKoZIhvcNAQELBQADggIBAILPLUwJr9kpeuC0KY75DhjuNRYA
+IZ8EHD3o/mTOlDOw4InV4JBgCjW5iJbTvBFScTOy2C3ncZEW9u7Ep9WYSyxmW3xU
+rNPpQUpkHmdJKhf6162vtpIRPrqS0zZAqTzaWn3rqdzsPObqr/WLETvR5QU46kl7
+g3SXyC0uXwF7rYcIHTqhNbmzVezep6RkdY+wZB1pQwUehhLkCMcbs5s1S2hhrf+5
+PA5Fnkz0/LQ6whE2gKYGM1Bv31bpt/6+PVBXXvpOHzcc72hYGJV9v8CJjxHYy76t
+Dx6NjQz2/YDArdpN4mjh8rVhCCD7FAkGChIXHAQcx3rb+MRYf2wkGeqdPKmQJepa
+iMbri/FDCPKyp8wjSoBfVyAZG4+3REgbKbIzIg6sFUEoZO/xKw9Cn2dE+1e6XAiX
+CZEs0waEYu/e6h6RaOMR3QIHGWxcBd6iwjq4hQve6EDRbt4GQc6+16bNdWrcB6VF
+N3zKhMwp7fJgL6io3j8/R5xqneje6TV8VTpV5rOHRXU/46ql9IrtuqE+DdOYinmx
+WwO9Uoe0z7AjqCmxQNMmg/dKKdkT/WDbE3X6oq0HDX+fk5PN00fYadde7JfmLfsQ
+UfT40letXKIpd4Evp2USPXF9p3ZLUiOAodVmWPP0XVSsI303UNC81kRDakNQuJe9
+I2U6PO1J4ZBxAUzR
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+pAvoycApAu9CqpeJ8i0=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICwDCCAmagAwIBAgICJ8gwCwYHKoZIzj0EAQUAMFcxCzAJBgNVBAYTAkxWMSQw
+IgYDVQQKDBtOYXRpb25hbCBTZWN1cml0eSBBdXRob3JpdHkxFDASBgNVBAMMC0NT
+Q0EgTGF0dmlhMQwwCgYDVQQFEwMwMDQwHhcNMTUxMTEyMTMxMTE4WhcNMjgwMjEy
+MTMxMTE4WjBXMQswCQYDVQQGEwJMVjEkMCIGA1UECgwbTmF0aW9uYWwgU2VjdXJp
+dHkgQXV0aG9yaXR5MRQwEgYDVQQDDAtDU0NBIExhdHZpYTEMMAoGA1UEBRMDMDA1
+MIIBMzCB7AYHKoZIzj0CATCB4AIBATAsBgcqhkjOPQEBAiEAqftX26Huqbw+ZgqQ
+nYONcm479iPVJiAoIBNIHR9uU3cwRAQgfVoJdfwsMFfu9nUwQXr/5/uAVcEm3Fxs
+6UpLRPMwtdkEICbcXGzpSktE8zC12bvXfL+VhBYpXPfhzmvM3Bj/jAe2BEEEi9Ku
+uct+V8ssS0gv/IG3r7neJ+HjvSPCOkRTvZrOMmJUfvg1w9rE/Zf4RhoUYR3JwndF
+Ey3tjlRcHVTHLwRplwIhAKn7V9uh7qm8PmYKkJ2DjXGMOXqjtWGm95AeDoKXSFan
+AgEBA0IABBbiJGSYrnPPAhD5JROSeqXbvSZT1Vr8DsGSkEkMyY95Vulzmc+QWEh3
+q/hEn8ZpfdqRX2cZWMMS7y03qDpdyVmjRTBDMBIGA1UdEwEB/wQIMAYBAf8CAQEw
+HQYDVR0OBBYEFI9/qgtBjRYrICpx/WMazb2WX/XoMA4GA1UdDwEB/wQEAwIBBjAL
+BgcqhkjOPQQBBQADRwAwRAIgT+rrVyBYMPopCsQ5YdhAIlgVbUZCo/Wx0+AMKLV1
+yhcCIAS/Mqb1BN8abbfNcYwBF4RG1pjr1tGVwHM2o6Ul5ie4
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICwTCCAmagAwIBAgICJ4gwCwYHKoZIzj0EAQUAMFcxCzAJBgNVBAYTAkxWMSQw
+IgYDVQQKDBtOYXRpb25hbCBTZWN1cml0eSBBdXRob3JpdHkxFDASBgNVBAMMC0NT
+Q0EgTGF0dmlhMQwwCgYDVQQFEwMwMDIwHhcNMTExMTE2MjIwMDAwWhcNMjQwMjE3
+MjE1OTU5WjBXMQswCQYDVQQGEwJMVjEkMCIGA1UECgwbTmF0aW9uYWwgU2VjdXJp
+dHkgQXV0aG9yaXR5MRQwEgYDVQQDDAtDU0NBIExhdHZpYTEMMAoGA1UEBRMDMDAz
+MIIBMzCB7AYHKoZIzj0CATCB4AIBATAsBgcqhkjOPQEBAiEAqftX26Huqbw+ZgqQ
+nYONcm479iPVJiAoIBNIHR9uU3cwRAQgfVoJdfwsMFfu9nUwQXr/5/uAVcEm3Fxs
+6UpLRPMwtdkEICbcXGzpSktE8zC12bvXfL+VhBYpXPfhzmvM3Bj/jAe2BEEEi9Ku
+uct+V8ssS0gv/IG3r7neJ+HjvSPCOkRTvZrOMmJUfvg1w9rE/Zf4RhoUYR3JwndF
+Ey3tjlRcHVTHLwRplwIhAKn7V9uh7qm8PmYKkJ2DjXGMOXqjtWGm95AeDoKXSFan
+AgEBA0IABFlCwbVdZWyLUEL19B8nw4d6e28C5s58kmmoL11xOXqglBsqHW6IFI4n
+SGkdj5PRVTM3Ruz6MYz+r0xDj6PSDaejRTBDMBIGA1UdEwEB/wQIMAYBAf8CAQEw
+HQYDVR0OBBYEFFmW3hwouR5Tzmic/z4S4NXEzg0yMA4GA1UdDwEB/wQEAwIBBjAL
+BgcqhkjOPQQBBQADSAAwRQIgd2eBD/d8gjs8W6VTB08d2TPj7kGE5mR+7ZneuhiF
+lDkCIQCHVxu3ds7JX9TuoMqO9WEWmcx2Iu6HBMfv9lOHNlqKww==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICwjCCAmagAwIBAgICJ6cwCwYHKoZIzj0EAQUAMFcxCzAJBgNVBAYTAkxWMSQw
+IgYDVQQKDBtOYXRpb25hbCBTZWN1cml0eSBBdXRob3JpdHkxFDASBgNVBAMMC0NT
+Q0EgTGF0dmlhMQwwCgYDVQQFEwMwMDMwHhcNMTMxMTEyMTAxOTIxWhcNMjYwMjEy
+MTAxOTIxWjBXMQswCQYDVQQGEwJMVjEkMCIGA1UECgwbTmF0aW9uYWwgU2VjdXJp
+dHkgQXV0aG9yaXR5MRQwEgYDVQQDDAtDU0NBIExhdHZpYTEMMAoGA1UEBRMDMDA0
+MIIBMzCB7AYHKoZIzj0CATCB4AIBATAsBgcqhkjOPQEBAiEAqftX26Huqbw+ZgqQ
+nYONcm479iPVJiAoIBNIHR9uU3cwRAQgfVoJdfwsMFfu9nUwQXr/5/uAVcEm3Fxs
+6UpLRPMwtdkEICbcXGzpSktE8zC12bvXfL+VhBYpXPfhzmvM3Bj/jAe2BEEEi9Ku
+uct+V8ssS0gv/IG3r7neJ+HjvSPCOkRTvZrOMmJUfvg1w9rE/Zf4RhoUYR3JwndF
+Ey3tjlRcHVTHLwRplwIhAKn7V9uh7qm8PmYKkJ2DjXGMOXqjtWGm95AeDoKXSFan
+AgEBA0IABA+sKVRUdOyRdDI4iUnVZUgSvWoOccIGSh6XtuN27quqMYerAa5o5I+7
+HztPh2/SQiONBHBXHoYD0nvhLl17fr6jRTBDMBIGA1UdEwEB/wQIMAYBAf8CAQEw
+HQYDVR0OBBYEFHu/oc2nU9arw+X+bq/Xt0q+9q8IMA4GA1UdDwEB/wQEAwIBBjAL
+BgcqhkjOPQQBBQADSQAwRgIhAJATeLffzuF6RHs3cxpszezVHSdE8r0BAw5gqujc
+bEMmAiEAqe9GxgH7E3AqqtJjg8zyBljVlQnVeQHcszb6JR2AdpE=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEXzCCA+agAwIBAgIBDTAKBggqhkjOPQQDAzBAMQswCQYDVQQGEwJMVjENMAsG
+A1UECgwET0NNQTEUMBIGA1UEAwwLQ1NDQSBMYXR2aWExDDAKBgNVBAUTAzAwOTAe
+Fw0yMzA2MTIxNDE1MDhaFw0zNjA5MTIxNDE1MDhaMEAxCzAJBgNVBAYTAkxWMQ0w
+CwYDVQQKDARPQ01BMRQwEgYDVQQDDAtDU0NBIExhdHZpYTEMMAoGA1UEBRMDMDA5
+MIIBtTCCAU0GByqGSM49AgEwggFAAgEBMDwGByqGSM49AQECMQCMuR6CozhtKA9d
+b35Q5kHfFS9xCe1UVrQSsdoZf7cRI6zTpymQHRpxh0cAEzEH7FMwZAQwe8OCxj2M
+FQw8cggKzgWvoMK+oo5PsieHE5Fl77qR+Q+KpYFKUDrU6wSox90izigmBDAEqMfd
+Is4oJos5tVQW8ER8L7d94Qfc0qYuiA6lPuti1Xy0OQKV28mUOreGlvpQTBEEYQQd
+HGTwaM9F/6KmOoG3wT9riEej537xT+Pbf8r+DL0Q6Ogm4DQ21kaq74ey4kfUrx6K
+vh11IPnCpFyx646Vz9VSYrcLKf7sWGThnAVP+ZEpKA5GRiF3kYERQoIDQSY8UxUC
+MQCMuR6CozhtKA9db35Q5kHfFS9xCe1UVrMfFm5srAQlp886tq9rf8MQO4gyAukE
+ZWUCAQEDYgAEOWHY5NGEfLR/4jPTt535bg457QFbWqHJwHcUlnsd80fQ5wapyUP2
+ZkqOhlDWIRnKCLWcJNdZ2iip+py0Sjr93DGT7C1c1Uyqu8M67w0NdVf6Q+OChInn
+Yb/blpbXX8wQo4IBcTCCAW0wLQYDVR0SBCYwJKQQMA4xDDAKBgNVBAcMA0xWQYEQ
+bnBrZEBwbWxwLmdvdi5sdjAtBgNVHREEJjAkpBAwDjEMMAoGA1UEBwwDTFZBgRBu
+cGtkQHBtbHAuZ292Lmx2MG0GA1UdHwRmMGQwMKAuoCyGKmh0dHBzOi8vcGtkZG93
+bmxvYWQxLmljYW8uaW50L0NSTHMvTFZBLmNybDAwoC6gLIYqaHR0cHM6Ly9wa2Rk
+b3dubG9hZDIuaWNhby5pbnQvQ1JMcy9MVkEuY3JsMA4GA1UdDwEB/wQEAwIBBjAf
+BgNVHSMEGDAWgBSGIkgAbGWwS3gRRDlh6sp868xdLTASBgNVHRMBAf8ECDAGAQH/
+AgEAMA0GB2eBCAEBBgEEAgUAMCsGA1UdEAQkMCKADzIwMjMwNjEyMTQxNTA4WoEP
+MjAyNjA2MTIxNDE1MDhaMB0GA1UdDgQWBBSGIkgAbGWwS3gRRDlh6sp868xdLTAK
+BggqhkjOPQQDAwNnADBkAjBC8072LBW7ueL5o3uhd+924JOtIj0EVpHjxYkn2Htc
+BB+Xe3ahEa4e8FwYZkeTSukCMGMOurmhXGzr8npA6iWe1EpkzIVv88g7LUOR+eN7
+uxTwmWZILf20mwH4bw5ogb7uuw==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEdjCCA/2gAwIBAgIBDjAKBggqhkjOPQQDAzBXMQswCQYDVQQGEwJMVjEkMCIG
+A1UECgwbTmF0aW9uYWwgU2VjdXJpdHkgQXV0aG9yaXR5MRQwEgYDVQQDDAtDU0NB
+IExhdHZpYTEMMAoGA1UEBRMDMDA4MB4XDTIzMDYxMjE1NTg0OFoXDTMzMDkyOTEy
+NTg0OFowQDELMAkGA1UEBhMCTFYxDTALBgNVBAoMBE9DTUExFDASBgNVBAMMC0NT
+Q0EgTGF0dmlhMQwwCgYDVQQFEwMwMDkwggG1MIIBTQYHKoZIzj0CATCCAUACAQEw
+PAYHKoZIzj0BAQIxAIy5HoKjOG0oD11vflDmQd8VL3EJ7VRWtBKx2hl/txEjrNOn
+KZAdGnGHRwATMQfsUzBkBDB7w4LGPYwVDDxyCArOBa+gwr6ijk+yJ4cTkWXvupH5
+D4qlgUpQOtTrBKjH3SLOKCYEMASox90izigmizm1VBbwRHwvt33hB9zSpi6IDqU+
+62LVfLQ5ApXbyZQ6t4aW+lBMEQRhBB0cZPBoz0X/oqY6gbfBP2uIR6PnfvFP49t/
+yv4MvRDo6CbgNDbWRqrvh7LiR9SvHoq+HXUg+cKkXLHrjpXP1VJitwsp/uxYZOGc
+BU/5kSkoDkZGIXeRgRFCggNBJjxTFQIxAIy5HoKjOG0oD11vflDmQd8VL3EJ7VRW
+sx8WbmysBCWnzzq2r2t/wxA7iDIC6QRlZQIBAQNiAAQ5Ydjk0YR8tH/iM9O3nflu
+DjntAVtaocnAdxSWex3zR9DnBqnJQ/ZmSo6GUNYhGcoItZwk11naKKn6nLRKOv3c
+MZPsLVzVTKq7wzrvDQ11V/pD44KEiedhv9uWltdfzBCjggFxMIIBbTAtBgNVHRIE
+JjAkpBAwDjEMMAoGA1UEBwwDTFZBgRBucGtkQHBtbHAuZ292Lmx2MC0GA1UdEQQm
+MCSkEDAOMQwwCgYDVQQHDANMVkGBEG5wa2RAcG1scC5nb3YubHYwbQYDVR0fBGYw
+ZDAwoC6gLIYqaHR0cHM6Ly9wa2Rkb3dubG9hZDEuaWNhby5pbnQvQ1JMcy9MVkEu
+Y3JsMDCgLqAshipodHRwczovL3BrZGRvd25sb2FkMi5pY2FvLmludC9DUkxzL0xW
+QS5jcmwwDgYDVR0PAQH/BAQDAgEGMB8GA1UdIwQYMBaAFLcnSNHjUGL39r1bLfQ+
+uMy4YB6gMBIGA1UdEwEB/wQIMAYBAf8CAQAwDQYHZ4EIAQEGAQQCBQAwKwYDVR0Q
+BCQwIoAPMjAyMzA2MTIxNDE1MDhagQ8yMDI2MDYxMjE0MTUwOFowHQYDVR0OBBYE
+FIYiSABsZbBLeBFEOWHqynzrzF0tMAoGCCqGSM49BAMDA2cAMGQCMDMTZNbk6y0a
+A0k2Sh+4c8pLsrk9FmnaAa9Kba8M7+bcTGPvd4jUlDyKcdMCnp/WmwIwL1Mu0IZZ
+ZTS6X4TmhSZfaqVAMhRuTlB/C4ozRfRlSv5NVKGL3r7yRHLvS/qVWkCb
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDxjCCA2ygAwIBAgIBAjAKBggqhkjOPQQDBDBRMQswCQYDVQQGEwJCQTEMMAoG
+A1UECgwDbWNwMQ8wDQYDVQQLDAZpZGRlZWExCjAIBgNVBAUTATIxFzAVBgNVBAMM
+DmNzY2EtaWRkZWVhLWJhMB4XDTE5MTAxMDAwMDAwMFoXDTM1MDIxMTAwMDAwMFow
+UTELMAkGA1UEBhMCQkExDDAKBgNVBAoMA21jcDEPMA0GA1UECwwGaWRkZWVhMQow
+CAYDVQQFEwEyMRcwFQYDVQQDDA5jc2NhLWlkZGVlYS1iYTCCATMwgewGByqGSM49
+AgEwgeACAQEwLAYHKoZIzj0BAQIhAKn7V9uh7qm8PmYKkJ2DjXJuO/Yj1SYgKCAT
+SB0fblN3MEQEIH1aCXX8LDBX7vZ1MEF6/+f7gFXBJtxcbOlKS0TzMLXZBCAm3Fxs
+6UpLRPMwtdm713y/lYQWKVz34c5rzNwY/4wHtgRBBIvSrrnLflfLLEtIL/yBt6+5
+3ifh470jwjpEU72azjJiVH74NcPaxP2X+EYaFGEdycJ3RRMt7Y5UXB1Uxy8EaZcC
+IQCp+1fboe6pvD5mCpCdg41xjDl6o7VhpveQHg6Cl0hWpwIBAQNCAARYUVyt+JwU
+r69A6JEmuvk3Txu2hRorixpun3zdJxhjDEBozFOGCwXAgfZGZ+8r6z2fRYNfLigs
+C+TlP4JGcjU5o4IBVzCCAVMwKwYDVR0QBCQwIoAPMjAxOTEwMTEwMDAwMDBagQ8y
+MDI0MTAxMTAwMDAwMFowDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBSTI18TGkNO
+5xez8CPpNmHG+M2oLzAfBgNVHSMEGDAWgBSTI18TGkNO5xez8CPpNmHG+M2oLzAS
+BgNVHRMBAf8ECDAGAQH/AgEAMDgGA1UdHwQxMC8wLaAroCmGJ2h0dHBzOi8vd3d3
+LmlkZGVlYS5nb3YuYmEvY3NjYS9jc2NhX2NybDBCBgNVHREEOzA5gRZoZWxwZGVz
+a0BpZGRlZWEuZ292LmJhhh9odHRwczovL3d3dy5pZGRlZWEuZ292LmJhL2NzY2Ev
+MEIGA1UdEgQ7MDmBFmhlbHBkZXNrQGlkZGVlYS5nb3YuYmGGH2h0dHBzOi8vd3d3
+LmlkZGVlYS5nb3YuYmEvY3NjYS8wCgYIKoZIzj0EAwQDSAAwRQIgS/zgsFz2pNxd
+dAJOiHWWWK1ElwzQEF9Vhq+SAeLlNdICIQCXFY0unyirN21KWJ1PpxuZ9ghdfCJN
+9FNNSc9p3tok6w==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEUjCCA9igAwIBAgINAZgHUGFnyTVDIm9dCjAKBggqhkjOPQQDAjBRMRUwEwYD
+VQQDDAxDU0NBIEhVTkdBUlkxHTAbBgNVBAsMFE1pbmlzdHJ5IG9mIEludGVyaW9y
+MQwwCgYDVQQKDANHT1YxCzAJBgNVBAYTAkhVMB4XDTIzMDQxMzA5MDAwMFoXDTM2
+MDcxMzA5MDAwMFowUTEVMBMGA1UEAwwMQ1NDQSBIVU5HQVJZMR0wGwYDVQQLDBRN
+aW5pc3RyeSBvZiBJbnRlcmlvcjEMMAoGA1UECgwDR09WMQswCQYDVQQGEwJIVTCC
+AbUwggFNBgcqhkjOPQIBMIIBQAIBATA8BgcqhkjOPQEBAjEA////////////////
+//////////////////////////7/////AAAAAAAAAAD/////MGQEMP//////////
+///////////////////////////////+/////wAAAAAAAAAA/////AQwszEvp+I+
+5+SYjgVr4/gtGRgdnG7+gUESAxQIj1ATh1rGVjmNii7RnSqFyO3T7CrvBGEEqofK
+Ir6LBTeOscce8yCtdG4dO2KLp5uYWfdB4IJUKjhVAvJdv1UpbDpUXjhydgq3Nhfe
+SpYmLG9dnpi/kpLcKfj0Hb0omhR86doxE7XwuMAKYLHOHX6BnXpDHXyQ6g5fAjEA
+////////////////////////////////x2NNgfQ3Ld9YGg2ySLCneuzsGWrMxSlz
+AgEBA2IABIN3NPA+NcOMs12jbjWB9k+jj/ZXPfZm0glOFdoWQZNgtLDrswzBKiK0
+RSb2TaCe9edFak4kh55ebSF9cVWvYSvJnqYiURvcThMh/fJ0Sc/Ad6p8iDTnoYa9
+bVp+zaBidqOCATUwggExMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQD
+AgEGMB0GA1UdDgQWBBSTJbk39V0vZCOMa/mi+SgTpTCUIDArBgNVHRAEJDAigA8y
+MDIzMDQxMzA5MDAwMFqBDzIwMjYwNDEzMDkwMDAwWjANBgdngQgBAQYBBAIFADAz
+BgNVHREELDAqgRZjc2NhLWh1bmdhcnlAYm0uZ292Lmh1pBAwDjEMMAoGA1UEBwwD
+SFVOMDMGA1UdEgQsMCqBFmNzY2EtaHVuZ2FyeUBibS5nb3YuaHWkEDAOMQwwCgYD
+VQQHDANIVU4wRgYDVR0fBD8wPTA7oDmgN4Y1aHR0cDovL255aWx2YW50YXJ0by5o
+dS9sZXRvbHRlcy9DU0NBL0NTQ0EtSFVOR0FSWS5jcmwwCgYIKoZIzj0EAwIDaAAw
+ZQIxAM9sfKyqXKb8prdCxh6s3XdcEqUpW+nVW7fPZ2M4fEXNAEJkqVDLmwPYWJJX
+s0T5vQIwK4X/RmOTHft196noMMsakqmHzQ1mpO4duNQBwYpZ0k+p19by/HOZ/mMw
+dGsnwnR/
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEVzCCA9ygAwIBAgIUHF2UgymV8vXZTZJckQ9QnSAC9X0wDAYIKoZIzj0EAwIF
+ADBBMQswCQYDVQQGEwJBRTEMMAoGA1UEChMDTU9JMQ4wDAYDVQQLEwVFUEFTUzEU
+MBIGA1UEAxMLVUFFIENTQ0EgMDIwHhcNMjIwMzAxMTExNTAwWhcNMzcwNjAxMTEx
+NTAwWjBBMQswCQYDVQQGEwJBRTEMMAoGA1UEChMDTU9JMQ4wDAYDVQQLEwVFUEFT
+UzEUMBIGA1UEAxMLVUFFIENTQ0EgMDIwggHOMIIBZgYHKoZIzj0CATCCAVkCAQEw
+PAYHKoZIzj0BAQIxAP/////////////////////////////////////////+////
+/wAAAAAAAAAA/////zB9BDEA////////////////////////////////////////
+//7/////AAAAAAAAAAD////8BDEAszEvp+I+5+SYjgVr4/gtGRgdnG7+gUESAxQI
+j1ATh1rGVjmNii7RnSqFyO3T7CrvAxUAozWSaqMZonodAIlqZ3OkgnrNrHMEYQSq
+h8oivosFN46xxx7zIK10bh07Younm5hZ90HgglQqOFUC8l2/VSlsOlReOHJ2Crc2
+F95KliYsb12emL+Sktwp+PQdvSiaFHzp2jETtfC4wApgsc4dfoGdekMdfJDqDl8C
+MQD////////////////////////////////HY02B9Dct31gaDbJIsKd67OwZaszF
+KXMCAQEDYgAE7GfucxsBXNnxEn4dl7yZFGcQCvyPxiDsBqvbgnUCJgPn81l2oWCo
+mojb5OD6Yj9QuiGkyfaqECn7kc7bRF8bmtg9lbGLaVfuLkUHtXsj0mT63YFpY+A4
++A+N/60Risvxo4IBNzCCATMwDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYB
+Af8CAQAwGAYDVR0gBBEwDzANBgsrBgEEAYKmDwECATAbBgNVHRIEFDASpBAwDjEM
+MAoGA1UEBxMDQVJFMG0GA1UdHwRmMGQwMKAuoCyGKmh0dHBzOi8vcGtkZG93bmxv
+YWQxLmljYW8uaW50L0NSTHMvQVJFLmNybDAwoC6gLIYqaHR0cHM6Ly9wa2Rkb3du
+bG9hZDIuaWNhby5pbnQvQ1JMcy9BUkUuY3JsMBsGA1UdEQQUMBKkEDAOMQwwCgYD
+VQQHEwNBUkUwKwYDVR0QBCQwIoAPMjAyMjAzMDExMTE1MDBagQ8yMDI3MDMwMTEx
+MTUwMFowHQYDVR0OBBYEFMFnm+fGHk2YophNhhzOx2hpXUzhMAwGCCqGSM49BAMC
+BQADZwAwZAIwf2wp1qSVJaQjI2YDls4dLmG5hvFc6kfxOtzc6a0PlftTHtrYHyvt
+bI8kMCStByFOAjBYToAWVo2BeYOFuAtET4J+nzhT76yXHhXPcw5PayHlnlgE9Fhw
+9h4qqXIQadVwKqU=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIE7jCCBHSgAwIBAgIIYH4eHvk+LzcwCgYIKoZIzj0EAwIwcjELMAkGA1UEBhMC
+TloxIjAgBgNVBAoMGUdvdmVybm1lbnQgb2YgTmV3IFplYWxhbmQxJzAlBgNVBAsM
+HklkZW50aXR5IGFuZCBQYXNzcG9ydCBTZXJ2aWNlczEWMBQGA1UEAwwNUGFzc3Bv
+cnQgQ1NDQTAeFw0yMTA0MTMwMTAzMzlaFw0zNDA4MDgwMTAzMzlaMHIxCzAJBgNV
+BAYTAk5aMSIwIAYDVQQKDBlHb3Zlcm5tZW50IG9mIE5ldyBaZWFsYW5kMScwJQYD
+VQQLDB5JZGVudGl0eSBhbmQgUGFzc3BvcnQgU2VydmljZXMxFjAUBgNVBAMMDVBh
+c3Nwb3J0IENTQ0EwggG1MIIBTQYHKoZIzj0CATCCAUACAQEwPAYHKoZIzj0BAQIx
+AP/////////////////////////////////////////+/////wAAAAAAAAAA////
+/zBkBDD//////////////////////////////////////////v////8AAAAAAAAA
+AP////wEMLMxL6fiPufkmI4Fa+P4LRkYHZxu/oFBEgMUCI9QE4daxlY5jYou0Z0q
+hcjt0+wq7wRhBKqHyiK+iwU3jrHHHvMgrXRuHTtii6ebmFn3QeCCVCo4VQLyXb9V
+KWw6VF44cnYKtzYX3kqWJixvXZ6Yv5KS3Cn49B29KJoUfOnaMRO18LjACmCxzh1+
+gZ16Qx18kOoOXwIxAP///////////////////////////////8djTYH0Ny3fWBoN
+skiwp3rs7BlqzMUpcwIBAQNiAATQDrtd7vYEUB+vkxPogSnAvSUOEL6YkuJUBFN4
+ybzOA2YrOd60NzQHz3V43av91YykBpfWJYmG1TPSLyxo8nuGwy/aq9Vp7GaY/wdO
+fmw7bPxlnD298IghhadJEXk0AzKjggGUMIIBkDASBgNVHRMBAf8ECDAGAQH/AgEA
+MB8GA1UdIwQYMBaAFJ8OLB+SWEwI5FvTDfjYAjxxc/qNMDoGA1UdEgQzMDGkEDAO
+MQwwCgYDVQQHDANOWkyGHWh0dHBzOi8vd3d3LnBhc3Nwb3J0cy5nb3Z0Lm56MFIG
+A1UdIARLMEkwRwYIYIQqZQgBAQMwOzA5BggrBgEFBQcCARYtaHR0cHM6Ly93d3cu
+cGtpLmdvdnQubnovcG9saWN5L2VQYXNzcG9ydHNfQ1BTMG0GA1UdHwRmMGQwMKAu
+oCyGKmh0dHBzOi8vcGtkZG93bmxvYWQxLmljYW8uaW50L0NSTHMvTlpMLmNybDAw
+oC6gLIYqaHR0cHM6Ly9wa2Rkb3dubG9hZDIuaWNhby5pbnQvQ1JMcy9OWkwuY3Js
+MB0GA1UdDgQWBBSfDiwfklhMCORb0w342AI8cXP6jTArBgNVHRAEJDAigA8yMDIx
+MDQxMzAxMDMzOVqBDzIwMjQwNDEyMDEwMzM5WjAOBgNVHQ8BAf8EBAMCAQYwCgYI
+KoZIzj0EAwIDaAAwZQIwZNNsVIS169AO41zOjTyeW1+p1UwHyxDYJZvJEIQYr6pw
+BDvryT0x+j9K7cRPuS+jAjEApa6OdWitf0Mt1LrqUHRGCs5uXA4WEPGBdWCYG8KV
+fMKtnb5ga7W0JqHgJ+C9cd5j
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIE8zCCA1ugAwIBAgICAZUwDQYJKoZIhvcNAQELBQAwgZIxCjAIBgNVBAUTATIx
+DTALBgNVBAMMBENTQ0ExNDAyBgNVBAsMK1NlcnZpY2lvIGRlIFJlZ2lzdHJvIENp
+dmlsIGUgSWRlbnRpZmljYWNpb24xMjAwBgNVBAoMKU1pbmlzdGVyaW8gZGUgSnVz
+dGljaWEgeSBEZXJlY2hvcyBIdW1hbm9zMQswCQYDVQQGEwJDTDAeFw0xNjA4MDEw
+MDAwMDBaFw0zMjExMTYwMDAwMDBaMIGSMQowCAYDVQQFEwEyMQ0wCwYDVQQDDARD
+U0NBMTQwMgYDVQQLDCtTZXJ2aWNpbyBkZSBSZWdpc3RybyBDaXZpbCBlIElkZW50
+aWZpY2FjaW9uMTIwMAYDVQQKDClNaW5pc3RlcmlvIGRlIEp1c3RpY2lhIHkgRGVy
+ZWNob3MgSHVtYW5vczELMAkGA1UEBhMCQ0wwggGiMA0GCSqGSIb3DQEBAQUAA4IB
+jwAwggGKAoIBgQDXR+XvdSrbkrZ0jDH2qh2xcmSu0hCsSMQ5CtJAu66WKcibB+g7
+hIpDCR7D+vY7IV7lADR1DG9bIDPEIVVwfAVDjg8AKUcZZ3uiTu56ONlUeVPwUTE+
+OcDp7ifkGwEUomEuWocbZsDBQsGoH7cqdFtdhZRqB+0MvxnHkxnQ8qAqYgtjun5p
+VhcTxpauu2LwxLkOyJniBrJPrj/cEaubJNaA3rzsi77h9DPkw6cwKKPDyujfmQPf
+n0cs5I6ibRPLoRZe3+uLAUgfFaDm8dfbdVIIB/S5S3TB5Oi1LpqSH9mttFjk4bzV
+qp3c69JLUk9CTkq0zv87NR9Id6eoUi6zZZiITnrVjxsufg3/ucY7h2LrrjDcWqvn
+RJSu0XfxMdWgpt6GJ//oFpiGo7n5jaRFoRCbRYtMMmgLWFZXZJJeIPEvM2IIFbCA
+7hHa9ZFwZE2H/N20TNMzcoW3GyvA0Q/nWo06WryrXGiHQlHgMHDyA4vZHLpN+wZi
+kjz2BuoNuf7eU3MCAwEAAaNRME8wEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8B
+Af8EBAMCAQYwKQYDVR0OBCIEIP/7vQRMTm4PSv+UYWK4D1FYybll5gGaa2WgnYEz
+zbf+MA0GCSqGSIb3DQEBCwUAA4IBgQAhwIX4s8UPjxgcC0xLjZf/vot57rYZYHnr
+g+e3eKMeuHeZrAo7yS25FuB8V+Bknra5jmfrzZCSU1QpgfZrTg1VK6tLQBvZ8DYh
+XFkOvkUyDBMAAI2hr8/5r8j30UW7V5BK8fSP+1Pa+HP5gIlqPvppYUxPE9AnKXx9
+jYqxzwwxO9N/WjNAEimZ/IMMoBQEZmrhjdFg9tULjLuyjbn4rTqD4R78BUSyoZnu
+DcA/rLJF2KaUWPT65N23MUDrSjSbn3nmxcASrcHd1PM1DeF7E7wlpQqm/EwYVfxz
+P8jYseOszN5dlthidG6bEd3rXVpwSCux3oTVMDp/nmdrC4BIs4AKTr5vAkuKKX9g
+vKS/s2S/bBD8mtSpbQeAPIhJAOp10v0W48F4sgp3WjE45IxTvHKW2+F+TXWNfPLG
+C+w8d6LgAFgHa0BnFNY1Oj3kLNEWwz1tqbcaWPNBomE/4d66vVHba9adQPJmC57M
+knq99u8NQUmq3DbjgE3hqp/AurLZmPc=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFIDCCA4igAwIBAgICAoMwDQYJKoZIhvcNAQELBQAwgZIxCjAIBgNVBAUTATMx
+DTALBgNVBAMMBENTQ0ExNDAyBgNVBAsMK1NlcnZpY2lvIGRlIFJlZ2lzdHJvIENp
+dmlsIGUgSWRlbnRpZmljYWNpb24xMjAwBgNVBAoMKU1pbmlzdGVyaW8gZGUgSnVz
+dGljaWEgeSBEZXJlY2hvcyBIdW1hbm9zMQswCQYDVQQGEwJDTDAeFw0yMTA4MDEw
+MDAwMDBaFw0zNzExMTYwMDAwMDBaMIGSMQowCAYDVQQFEwEzMQ0wCwYDVQQDDARD
+U0NBMTQwMgYDVQQLDCtTZXJ2aWNpbyBkZSBSZWdpc3RybyBDaXZpbCBlIElkZW50
+aWZpY2FjaW9uMTIwMAYDVQQKDClNaW5pc3RlcmlvIGRlIEp1c3RpY2lhIHkgRGVy
+ZWNob3MgSHVtYW5vczELMAkGA1UEBhMCQ0wwggGiMA0GCSqGSIb3DQEBAQUAA4IB
+jwAwggGKAoIBgQDOSnxyuA21JnSwu0Qi7MuwhSX/A3lUVkSUC1L5m/b4hw29W5mP
+kOoL5hbFHqU/O2C36clW6Cl5NmF+zW6lYCz8ClannKu7TKKiYfkncq3pRQhcWQOM
+SSKqB9EYr8NiH7RIWc72eaD+pOxqatv1V8XlReUYJM0cubswIgvP/Zo7Qtm3e8z1
+TEjFvmcP/mFwvlu5tYceUEJNceq25pNYAvsIIbFV5awyjWg0DBniHeWEfYbHdOby
++0Hv9ymCMSCH6RVRzdXj7s26QLNI2D9m766UdX5eAEjj7lBgbjxdTXntaj5+EmBl
+G9wF1rkqAt9Cja+JNcZnG1uFDKsl63jYQMijom6vPKemaBfkKsOT9ywaugLqaeGb
+ZXdE2tPSOSLAdXqg2v1bJ5uV3BXCPa56+xn+0WeD/7L69uJ6EK6RUee5bG6sQkr9
+Avg6MN72L8DnGD0GTnJT0DTswy/rNFpO5Uy+QjdzL7XYmR3ZwDdpbQ9CHJFTx9ur
+b5wreBcvi1YVEy0CAwEAAaN+MHwwEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8B
+Af8EBAMCAQYwKwYDVR0QBCQwIoAPMjAyMTA4MDEwMDAwMDBagQ8yMDI2MDgwMTAw
+MDAwMFowKQYDVR0OBCIEIEScvsuYBuTt5T0Qra0+pVXsUNrNJdE7AAP0LQyFtZjI
+MA0GCSqGSIb3DQEBCwUAA4IBgQAsXRMldsuXBo4egzn2an/dqJtM0q7ZY3awwXGf
+FWNmwfk2Y9BODR7UxOF5A/vEnttR13YA5Y9b0Jgy5UXzKGkTzVIe432EApY+9rQC
+FRoKVXe/dxhNjsw1DIzPZ8aCItOF/6TaMeMoHSKpV9kdBgrT4Ri+unQCt99jdMhR
+wS2zl6us35fQv0Lpmac1KyvaFqZ8rfOwI0aspeWQR4MzTPSU4+575VcJywl/qjTY
+9G937J8FX9ecKXks6CqlcrS2p6n977OXEsBhoxSlWZngpmfxKefZt9Vv/hwMx42x
+0U5d/hO2BRYvczZ8YE6aClZyRLv19eMsARYahg2lMCnhKQUGDmPMFOZ4LkgCtFCx
+647KlVHyMj0MUlbj1EgFpl1Yeb8hlti6Z7eh+r1U48urvXmFpn42lsnqXw+uEiQX
+Nlsi9hSUyBAfvkiQKn+UHAxYYz6XpK6tgWCJOKI6H+HiQRuLtBOLQoqmuaw1p17m
+Y88kAhQolt4fLUkyAYIgLWI+xb0=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFJjCCBIugAwIBAgIEAJ6xADAKBggqhkjOPQQDBDBEMQswCQYDVQQGEwJGSTEQ
+MA4GA1UECgwHRmlubGFuZDEMMAoGA1UECwwDVlJLMRUwEwYDVQQDDAxDU0NBIEZp
+bmxhbmQwHhcNMjIwNDA2MDYyNDEyWhcNMzIwNzA2MDYyNDEyWjBEMQswCQYDVQQG
+EwJGSTEQMA4GA1UECgwHRmlubGFuZDEMMAoGA1UECwwDVlJLMRUwEwYDVQQDDAxD
+U0NBIEZpbmxhbmQwggI4MIIBrwYHKoZIzj0CATCCAaICAQEwTAYHKoZIzj0BAQJB
+AKrdnbjb6cSLP9TmrjPJ/AfLMI2zs8nSDtZjnMpwMwhxfU2bAJvGaEKuzaEq5qOA
+5iiB/y8tgsaFKKpgVlg6SPMwgYQEQHgwozGLYDuJ4jJxRawjTMWUy92NPfkWEKg0
+QcrqmGO8Le1dWqglOqEKLvHJi5rItX8RF6cr8se558GsTXf8lMoEQD35FhCoNEHK
+6phjvC3tXVqoJTqhCi7xyYuayLV/ERenK/LHuefBrE13/JTK3Ag+Z5hAULdeuuXd
+KAm9Y4AW9yMEgYEEga7kvdgu2WRaITIunExqk4Xtn3C12RbBtDti7vTQCY7/Ox94
+4tDUjVDRaHuTuX1ffG1QR0BqXmiLNSIJvLn4In3eOF1WYzLswOq/qc94Iv3yCfcA
+JKV7GqAAxVuIH4ERstzeSUpfSF5bykvYiidjrtHKKy+o8FQGeM0eDzrYCJICQQCq
+3Z242+nEiz/U5q4zyfwHyzCNs7PJ0g7WY5zKcDMIcFU+XEFMqSYZQYZhGX+sEEcd
+sdOBCF3a3bWHloKcqQBpAgEBA4GCAAQQvQy0csozD/hMDOB2aV3s31p+Ugvaxew6
+MW08yjUBuyDdw5hnOkttKOH8Ifj5KOdsTTqeltb/wXnDM6S5S7pseYBxTSwUFl+D
+fEFszgfCOBwcPbBamj1tj8tcOARXniSmE1QWMRtAHbrtqLsp6ld9vNc12cbfD2DR
+FxUIXYT4OaOCAYgwggGEMB8GA1UdIwQYMBaAFNafbKfy4KssWvrxnmlyaDZNMdOT
+MB0GA1UdDgQWBBTWn2yn8uCrLFr68Z5pcmg2TTHTkzAOBgNVHQ8BAf8EBAMCAQYw
+KwYDVR0QBCQwIoAPMjAyMjA0MDYwNjI0MTJagQ8yMDI3MDQwNjA2MjQxMlowFQYD
+VR0gBA4wDDAKBggqgXaEBQIKBTBPBgNVHRIESDBGpBAwDjEMMAoGA1UEBwwDRklO
+gRZDU0NBLkZpbmxhbmRAZ292c2VjLmZphhpodHRwOi8vd3d3LnBvbGlpc2kuZmkv
+Y3NjYTBPBgNVHREESDBGpBAwDjEMMAoGA1UEBwwDRklOgRZDU0NBLkZpbmxhbmRA
+Z292c2VjLmZphhpodHRwOi8vd3d3LnBvbGlpc2kuZmkvY3NjYTASBgNVHRMBAf8E
+CDAGAQH/AgEAMDgGA1UdHwQxMC8wLaAroCmGJ2h0dHA6Ly9wcm94eS5maW5laWQu
+ZmkvY3JsL2NzY2FmaW5jLmNybDAKBggqhkjOPQQDBAOBiAAwgYQCQDegs4hFKX9r
+asyUQtw/Vq4DcQtECXRaQZbChxE1wY+GJ59oF2dDLxMerxcQZ87D9A6/c00Ybq5O
+ucJRd4xk8eQCQDbh7uCt4ccISDTzToqqRcfehTERR8db39/YaMqJfo9mIHwGC6i3
+E7m8xGOA48hyyRKUEgkYjEl+dXYiWfHhoe0=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFYDCCBMWgAwIBAgIEC8KobDAKBggqhkjOPQQDBDBTMQswCQYDVQQGEwJDSDEN
+MAsGA1UECgwERkRKUDEPMA0GA1UECwwGZmVkcG9sMREwDwYDVQQLDAhlRG9jLVBL
+STERMA8GA1UEAwwIQ1NDQS1DSEUwHhcNMjMxMDA0MDY1MjE1WhcNMzcwMzA1MDY1
+MjE1WjBTMQswCQYDVQQGEwJDSDENMAsGA1UECgwERkRKUDEPMA0GA1UECwwGZmVk
+cG9sMREwDwYDVQQLDAhlRG9jLVBLSTERMA8GA1UEAwwIQ1NDQS1DSEUwggI4MIIB
+rwYHKoZIzj0CATCCAaICAQEwTAYHKoZIzj0BAQJBAKrdnbjb6cSLP9TmrjPJ/AfL
+MI2zs8nSDtZjnMpwMwhxfU2bAJvGaEKuzaEq5qOA5iiB/y8tgsaFKKpgVlg6SPMw
+gYQEQHgwozGLYDuJ4jJxRawjTMWUy92NPfkWEKg0QcrqmGO8Le1dWqglOqEKLvHJ
+i5rItX8RF6cr8se558GsTXf8lMoEQD35FhCoNEHK6phjvC3tXVqoJTqhCi7xyYua
+yLV/ERenK/LHuefBrE13/JTK3Ag+Z5hAULdeuuXdKAm9Y4AW9yMEgYEEga7kvdgu
+2WRaITIunExqk4Xtn3C12RbBtDti7vTQCY7/Ox944tDUjVDRaHuTuX1ffG1QR0Bq
+XmiLNSIJvLn4In3eOF1WYzLswOq/qc94Iv3yCfcAJKV7GqAAxVuIH4ERstzeSUpf
+SF5bykvYiidjrtHKKy+o8FQGeM0eDzrYCJICQQCq3Z242+nEiz/U5q4zyfwHyzCN
+s7PJ0g7WY5zKcDMIcFU+XEFMqSYZQYZhGX+sEEcdsdOBCF3a3bWHloKcqQBpAgEB
+A4GCAAQpF0KvspyMcNcHy3elppsp6+u1C2lnz7q1BzqbWXL3fhOiIxvSuXHf3WFU
+T04e9UGWgl3ne3+CYZdNDX0bKQFfUoJtfk2by6TNyKkJqlR1kxY2KJ8eyxfDjl5Y
+8vgISslvh+ZTnLoNvhhPAN+Cg7BlhDczUbq95PQ+UIllAjwchaOCAaQwggGgMCsG
+A1UdEAQkMCKADzIwMjMxMDA0MDY1MjE1WoEPMjAyNjEwMDYwNjUyMTVaMFwGA1Ud
+IARVMFMwUQYHYIV0BTcBATBGMEQGCCsGAQUFBwIBFjhodHRwOi8vd3d3LnBraS5h
+ZG1pbi5jaC9wb2xpY3kvQ1BTXzJfMTZfNzU2XzVfNTVfMV8xLnBkZjA5BgNVHRIE
+MjAwgRxlYWMtc3BvYy5jaGVAZmVkcG9sLmFkbWluLmNopBAwDjEMMAoGA1UEBwwD
+Q0hFMDkGA1UdEQQyMDCBHGVhYy1zcG9jLmNoZUBmZWRwb2wuYWRtaW4uY2ikEDAO
+MQwwCgYDVQQHDANDSEUwOQYDVR0fBDIwMDAuoCygKoYoaHR0cDovL3d3dy5wa2ku
+YWRtaW4uY2gvY3JsL0NTQ0EtQ0hFLmNybDAfBgNVHSMEGDAWgBQBcZ8PfALyo0Ix
+hggSjbH+YqOO/DAdBgNVHQ4EFgQUAXGfD3wC8qNCMYYIEo2x/mKjjvwwDgYDVR0P
+AQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYBAf8CAQAwCgYIKoZIzj0EAwQDgYgAMIGE
+AkB2R+El6oO0C4OnFkEYYvMzd+OevP7M8Olrr6cIAYfsVhH1lFyjDCW9t9XJroyn
+0Lln6YttfuWfhw5HXqNGMBwSAkA5v15qmTPA9uCosBjaNe7PrwAt9TivfWHNsOd4
+H2CVEvFQ9XH9Rh7m0jeTQlgXT4pJVjagh3X4C8qXrpca/r/M
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFfzCCBQagAwIBAgIBfDAKBggqhkjOPQQDAzBxMQswCQYDVQQGEwJDSDEOMAwG
+A1UECgwFQWRtaW4xETAPBgNVBAsMCFNlcnZpY2VzMSIwIAYDVQQLDBlDZXJ0aWZp
+Y2F0aW9uIEF1dGhvcml0aWVzMRswGQYDVQQDDBJjc2NhLXN3aXR6ZXJsYW5kLTIw
+HhcNMTgxMDAyMDgzMDU5WhcNMjExMDA0MDgzMDU5WjBxMQswCQYDVQQGEwJDSDEO
+MAwGA1UECgwFQWRtaW4xETAPBgNVBAsMCFNlcnZpY2VzMSIwIAYDVQQLDBlDZXJ0
+aWZpY2F0aW9uIEF1dGhvcml0aWVzMRswGQYDVQQDDBJjc2NhLXN3aXR6ZXJsYW5k
+LTIwggG1MIIBTQYHKoZIzj0CATCCAUACAQEwPAYHKoZIzj0BAQIxAIy5HoKjOG0o
+D11vflDmQd8VL3EJ7VRWtBKx2hl/txEjrNOnKZAdGnGHRwATMQfsUzBkBDB7w4LG
+PYwVDDxyCArOBa+gwr6ijk+yJ4cTkWXvupH5D4qlgUpQOtTrBKjH3SLOKCYEMASo
+x90izigmizm1VBbwRHwvt33hB9zSpi6IDqU+62LVfLQ5ApXbyZQ6t4aW+lBMEQRh
+BB0cZPBoz0X/oqY6gbfBP2uIR6PnfvFP49t/yv4MvRDo6CbgNDbWRqrvh7LiR9Sv
+Hoq+HXUg+cKkXLHrjpXP1VJitwsp/uxYZOGcBU/5kSkoDkZGIXeRgRFCggNBJjxT
+FQIxAIy5HoKjOG0oD11vflDmQd8VL3EJ7VRWsx8WbmysBCWnzzq2r2t/wxA7iDIC
+6QRlZQIBAQNiAARqcLTNDz1nuiuc31pDI2IYPjHFIPm70llBBI3bAu5qdjez9UXV
+mQSW7d6VS86BHDkwDiG3lONXCy1HUjh9vR3X2GY8UOsuNEOQg1He8tzCfeMYi9NG
+JWIAkzMrG/FSdtGjggIvMIICKzArBgNVHRAEJDAigA8yMDE4MTAwMjA4MzA1OVqB
+DzIwMjExMDA0MDgzMDU5WjBgBgNVHSAEWTBXMFUGCGCFdAERAz4BMEkwRwYIKwYB
+BQUHAgEWO2h0dHA6Ly93d3cucGtpLmFkbWluLmNoL3BvbGljeS9DUFNfMl8xNl83
+NTZfMV8xN18zXzYyXzEucGRmMDkGA1UdEgQyMDCBHGVhYy1zcG9jLmNoZUBmZWRw
+b2wuYWRtaW4uY2ikEDAOMQwwCgYDVQQHDANDSEUwOQYDVR0RBDIwMIEcZWFjLXNw
+b2MuY2hlQGZlZHBvbC5hZG1pbi5jaKQQMA4xDDAKBgNVBAcMA0NIRTBDBgNVHR8E
+PDA6MDigNqA0hjJodHRwOi8vd3d3LnBraS5hZG1pbi5jaC9jcmwvY3NjYS1zd2l0
+emVybGFuZC0yLmNybDCBmwYDVR0jBIGTMIGQgBR3BsBM5UnwJgeMP/By0Cm7oGMe
+lKF1pHMwcTELMAkGA1UEBhMCQ0gxDjAMBgNVBAoMBUFkbWluMREwDwYDVQQLDAhT
+ZXJ2aWNlczEiMCAGA1UECwwZQ2VydGlmaWNhdGlvbiBBdXRob3JpdGllczEbMBkG
+A1UEAwwSY3NjYS1zd2l0emVybGFuZC0yggFDMB0GA1UdDgQWBBSXEaxF5Xr+bg0/
+rNmssmt1njV7pjAOBgNVHQ8BAf8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB/wIBADAK
+BggqhkjOPQQDAwNnADBkAjAl8sHPAgv7UDogPYIJyx38okKHDej64Ze4eXJrxgbd
+NvTPPS/IqkCjlzb0PCtq+JACMHjRx9Z/FXPG8RefF9nGDVEMeDr15/kzy6ZHGgfZ
+SUxJqcN+wvqJVCV1Nf7Throlhw==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFkjCCA3qgAwIBAgIIKssrrsAjwTIwDQYJKoZIhvcNAQEFBQAwVTEgMB4GA1UE
+AwwXQ0VSVElGSUNBVElPTiBBVVRIT1JJVFkxEDAOBgNVBAsMB1NFR1NUQVQxEjAQ
+BgNVBAoMCUhTVkFUSUNBTjELMAkGA1UEBhMCVkEwHhcNMjIxMTEwMDgyMjI2WhcN
+MzgwMjA0MDgyMjI2WjBVMSAwHgYDVQQDDBdDRVJUSUZJQ0FUSU9OIEFVVEhPUklU
+WTEQMA4GA1UECwwHU0VHU1RBVDESMBAGA1UECgwJSFNWQVRJQ0FOMQswCQYDVQQG
+EwJWQTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAKbs7sDdSMhUq7gD
+U42AcqS1F4h5u2VM+GwczjjMEQcU+SXelTyPZCvcsZN/B+M2HvioNL8iayqCFXAE
+kiA1Mdu+L4P9sYsp0XwxE2a3zJ9GxmpgWK7R7CP/Bn2KCPCalFTv1TBitZVfnz5v
+W0LPwi9QA2BKRZN7tb9ZjkG8C1Xk86kXvLG2wE5v6t4fSKs9O8Mfm77bju4+Ukjs
+el9a2ucw5jxcvUFnlhrVdBjDNp8U50vjAE8s3clLCKp+0HmCW8CwD2lw0N0gwWKH
+R+0ytsqVNMu7U+epgplv5rpjMJZpUF5IWCwrdKaR0o65NMeuX36oPgp/9jXV2l0V
+pwj9jJhLWKDS0FXi8S3bAYWttzWqeil2O3oQCnKGZ1EgME2N0lPysMBBliJQCEiv
+Wm7lNHSVRw2qvYnix21Zr0K3evlmUE4CIewPusA55asGfv3HEDAZUbTtKAwPJ1Pr
+8VLyghbwAQkZZpjVrl+hdLii18Rz0YKSXf2Bw4Sh77Mjh1TPze6c8R63xiYl8MTN
+8lvv/Ryf/mtWPaJ/ohG6sov8vn1gL25fDh3LMj3gS/fSPUwBbAZsSlKbP8dwN0BU
+5Td0zU5NEZAfOAmQWjZRyy8c5/rrn31Z0SORLcITqP6vF/b+QHm/CdYsRmr1nPVm
+ymdunoV2CZUAnvhzvFqMzncupuX3AgMBAAGjZjBkMB0GA1UdDgQWBBSqbgtSWK4Q
++YybXYRlB0lFOKqEAzASBgNVHRMBAf8ECDAGAQH/AgEAMB8GA1UdIwQYMBaAFKpu
+C1JYrhD5jJtdhGUHSUU4qoQDMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUF
+AAOCAgEAjLU1DEFwvHf0m7vzegxBESKET/A3PGbeXRL79dCve2TV3qp4NSgLBdNv
+GDW+cnaLgEtiS90YIM23cCy2JnuenWjuQ0NO4U9xaHre1q1WNTq1yCIRmNTIKqjD
+deZJ5iNqvqHR6ZiQ7gkwWmQybmiEv4SNleFOLjzTAZ8ew3DZ+H1IS9xR9PUiIQup
+joLEgA6owIm2LydFe3qsP9Yqw32wOvAiP5HKWg4cri9T5WCbDwvt4bF/iN/7NdkL
+8C9mnUpJNqm6sKnUAmicovE6vNU6KUU6XqqCMINsz/gB2ArudkY2keXAyHeWIVcL
+Ax92b9S8fMc7ctdyi9Gis1di1q1ziH4HTnR1RXyExAm4altbIEFCHc81Zsvx4k1g
+sQ1GfhhstTXnfv3bnBG2oE4OMb4dcXWe80Mi0lXtgPdasIfgjd0dZR0YFmjFq9Hg
+j6EiYDQpofgLjnxKKKvIXEKLCF0qrEPiXFKxnorrl6dz9MkSIj+wtG9zmM3t83Uc
+40CvJZuk1sv5sm9z4Dh8ek3katT9FO4QJNQ5LeDFnEXBJ6RmE5O91xZ9vk5z/qzV
+C1g+9f+08prWJoD4V6o4a+nRAQKbq5s+pmXo9Uo4YxLVjBHgUPa4/V7Fg1qkX2bH
+r4euYnNw61p7/MxXtTo9c66wcqxvZbeWIUS6aj8AYmy1pi3KDZg=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFmzCCA4OgAwIBAgIJAIOjAqtwCnwTMA0GCSqGSIb3DQEBBQUAMEMxCzAJBgNV
+BAYTAkhVMQwwCgYDVQQKDANHT1YxDDAKBgNVBAsMA0JNSDEYMBYGA1UEAwwPQk1I
+Q0EtSFVOR0FSWSAxMB4XDTE3MDIyMjEwMDgxNFoXDTMwMDUyMjEwMDgxNFowQzEL
+MAkGA1UEBhMCSFUxDDAKBgNVBAoMA0dPVjEMMAoGA1UECwwDQk1IMRgwFgYDVQQD
+DA9CTUhDQS1IVU5HQVJZIDEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC
+AQCOerugaD8EzeRqNUxM9k9vNO6XhLTt/FWGCB8cPq9iWWs0Fe9GnwTblotVfclz
+VM8Bf+fIf7qDeSV4W9R2mOnkAtIHa2Slz9XmWGzSDnJ0sLa9BGrnGJ/vq6xJpPtl
+hgEtDiB3At6j6f4plb+hn472Xt2hc1c50OsRdPsDX4ZCp17oJkLWFdgIlUsaPD3q
+mQ7r0pwnCK1zyosesIKMra58Aw2ZKuXIpOLI+XA3D9LDV1rvkgR51ednXoLmbgpm
+coSO3y5KBO+57uF8NSj1Unnwt0qAsqc5csu2w/GJOzIJgXsoX8gcDkWNS+hY3N2m
+tYuWDblag8Bm/9ZaXUjuSdLMVyOBqG3Gjk1NuMyIblpqrDIxbAmqzkojIXSWTNPf
+muGFRThGgG4ayxJjzF9V5mdTMkbZobjRh0d6iAiMP33lp18VKqRFbx475vpqEqi6
+ADEFZFEZVxkZs2zjjHSaqz90wkIBjfKKxchhVAfAs1msXshehiPXTdSwmbuOGJNI
+S+FGEsOD9VYn7RRqzdLSETPfulXQEvz8aQwir2AxjzeEEkWWDNcGKM3gjB5uqpS6
+lhBtTNOOLkzPMCpRZnlXaBd42c8uIdIN/cDonIEEvYwoRLI9aOjZfMFivqzSTqRz
+/jVle8bWfIMXWP/V0JOrjs8M86Ybp/8+r7wwZzf8YiolIQIDAQABo4GRMIGOMA8G
+A1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFBO6q4qWzp9CLmAFjCQHrXNKgUQRMB8G
+A1UdIwQYMBaAFBO6q4qWzp9CLmAFjCQHrXNKgUQRMA4GA1UdDwEB/wQEAwIBBjAr
+BgNVHRAEJDAigA8yMDE3MDIyMjA5MDAwMFqBDzIwMjAwMjIyMDkwMDAwWjANBgkq
+hkiG9w0BAQUFAAOCAgEAOcmPaIB//kLjybNlNCgNQifQQKUua98k2Ngw4mnAQyN3
+G9IChNJDzjANqxroltK+rVhr3JzUqV6rXBEgiED4VF609J8c0UGKckJr7J9TyuXx
+Y1Zh5j5eoVcHfDOS7CysviRyRxoCqZ8TA/YiSvbJ77oBn2pTr7InlWD5RZl5OYk1
+RO6h7F+c2TOUTS206dxFs62jBIGzFG2E47S/a3ymUfM+/hNBQTi3AFUAg2FhM8vx
+EjBdj7rXFngTQE27NjUXk9c5oB9GO26zSkdj6y4fTIryGxCh0kv3MB7cfOihmLMy
+3ucDmhYOUtgpHIY1dFSBaPJJNDNZE+0wQBcf9il2eRHOvj4J5Aw8mveLqH7mz42m
+nj5ML4VXl/jM6FFT5sI6WRR9uFN1bwx3W/yw+z0sBkhA++fJwVICTr+ftYfpB/k2
+YiQ1KEKg5IADP3c44wWCGIw1+HllyPfm+Ld9jSTiEcuhqBIuibytyAD0yTETLoCk
+r9TLN3IRVDvvarVpyN3yp0tV9b5iV5BJThONlbxFtYjXS4qGUQhIqhDmjbqPdh+I
+PNTu72Fy/fwIr7xg+fLkM50jalu+YL8gDORVkUcFwepwra0zjHJt3ahAqOWr9rQm
+rjkmLA1fDdtUAYam+32sRyqfVpVrk2gQyS9oGSLHkzUNN3rrjZetOyhRFDUCtWQ=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFmzCCA4OgAwIBAgIJAK9UnIvvGX4tMA0GCSqGSIb3DQEBBQUAMEMxCzAJBgNV
+BAYTAkhVMQwwCgYDVQQKDANHT1YxDDAKBgNVBAsMA09JRjEYMBYGA1UEAwwPT0lG
+Q0EtSFVOR0FSWSAxMB4XDTIwMDIwNjEwNDc1OFoXDTMzMDUwNjEwNDc1OFowQzEL
+MAkGA1UEBhMCSFUxDDAKBgNVBAoMA0dPVjEMMAoGA1UECwwDT0lGMRgwFgYDVQQD
+DA9PSUZDQS1IVU5HQVJZIDEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC
+AQClhtiIDGRCH+rzRHSZXJ4THKCqg6Rq3qZFyHJ6JhT+UOu56XHi59IbGPefbTuV
+Ys2hmnH35rSBel61LcJKCYwyS2L5lMVLOsLjPejTanSccFCnJ9sN+u8lSOrmIcBQ
+Y2u4PBaMoYmtfvkQJvSA0jVBdUC8/EJLtPGjnAgZ/YusJNR9saLsY8EFipTYDlJM
+7oZ7TuPkn93qjzsqdvq6mV7WMcqTPONYkCSaVcEh9tv+yqrFaBAbwl9mJTo52CDh
+CbEktSDjXDiYXQdqTvzvMXjDQC6ElGTOVGN56iGZJFbfaqv0AbKhKRab8LMAJboJ
+7j11S1LuDPW0/DyV/G94YVwJOZInXFp/AddN37DIpi4gKnMQr34z8vvSQ5ULxniW
+csaLnApBijmz/Q5z6t1m1sv5zIH4O4CHkYNxRnRSNglnyvXaud8ir03mQfOEcTXc
+p2/W1pA6y5oSE8TpCw0QUF6KPLWDzKIZ7wrB5YA51m7bEkgODhOlFX/1GqMG3GPp
+ZHti23nCGF2qs0PFjCn9Sk/uAIufsskN2YA3CYtHJOFKWjpKw4aOZhWHoMr77x6S
+2KNbUh5SqJwjfFbtACbeA5uNdVmE3Z1CMHfiCgidEqvA7JkpdR5ZxhrgwuaTbN09
+nK+hie2XOWBXg2+aXCj+JeiMcAYHIdfOZkwrAiI7sN321wIDAQABo4GRMIGOMA8G
+A1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFB007/PEImpYN87TQH6N2sBKSVMNMB8G
+A1UdIwQYMBaAFB007/PEImpYN87TQH6N2sBKSVMNMA4GA1UdDwEB/wQEAwIBBjAr
+BgNVHRAEJDAigA8yMDIwMDIwNjA5MDAwMFqBDzIwMjMwMjA2MDkwMDAwWjANBgkq
+hkiG9w0BAQUFAAOCAgEAH3XICEEQ8BABTJft+NROYbVQTX7/VxV36p/H5Hp6xs/R
+VzUhUMOGP9gWaBI+g0dxBQ6OskA8ydRDkSijacQCqZ5HRe1A8EccOqzvdEU6E4Hp
+WSprhtew/k2hYvRUvl+uNxO4KNQg473QZfVJiyav7I6toVdsdyqvjkvMG4qHhbfN
+/ayxJ5Xn4mOTMMh6FGcVHTb37Pjo2Oi6F1pEFfPF7oE+bI26f5M7Qm42ppN8Z1c5
+8f1l47P3z8mdLcKGz/662Yi1N2Co44ppTyz6oQwMW+dJcCdaihYvT9PTuhwuJUM2
+PZrUa5OwHdiBiZHhmDgegw4cBtpJh73ASkJ8cMguzxqyHNevX8QHuzhtBxvZDftN
+79vyjTIgXgAshD4BKf/9qLkvkxOOCnw+EzmHrVT328hHRgqX4Lh79e6CB/kF46K0
+9AN7kAmF8n/UAoCKxiKkc/xrv/HIz7eQHqWWEZa4bSyhfTg2xvMzsEp8uL+ISyU8
+mGfgqjISO/ePR/rXHEYJ1mldmekyBcFy+tm/1u7FB/JVVffBp9r7Xd1tANpoSpNS
+o7mAmRLfrLBrnvJjID4PolQH0DUiJBN4XUXiB5TgFDMCAwgDD9CocSJZYYdjfglj
+13c00TSO/jScGzcgN8YB88gSI0XgHolNj9QXdMiqelz5LUk8gxcjqUsn+vsJgkA=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIF8jCCBXmgAwIBAgIBHTAKBggqhkjOPQQDAzBxMQswCQYDVQQGEwJDSDEOMAwG
+A1UECgwFQWRtaW4xETAPBgNVBAsMCFNlcnZpY2VzMSIwIAYDVQQLDBlDZXJ0aWZp
+Y2F0aW9uIEF1dGhvcml0aWVzMRswGQYDVQQDDBJjc2NhLXN3aXR6ZXJsYW5kLTIw
+HhcNMTMwMjExMDg0NDI0WhcNMTYwMjE0MDg0NDI0WjBxMQswCQYDVQQGEwJDSDEO
+MAwGA1UECgwFQWRtaW4xETAPBgNVBAsMCFNlcnZpY2VzMSIwIAYDVQQLDBlDZXJ0
+aWZpY2F0aW9uIEF1dGhvcml0aWVzMRswGQYDVQQDDBJjc2NhLXN3aXR6ZXJsYW5k
+LTIwggG1MIIBTQYHKoZIzj0CATCCAUACAQEwPAYHKoZIzj0BAQIxAIy5HoKjOG0o
+D11vflDmQd8VL3EJ7VRWtBKx2hl/txEjrNOnKZAdGnGHRwATMQfsUzBkBDB7w4LG
+PYwVDDxyCArOBa+gwr6ijk+yJ4cTkWXvupH5D4qlgUpQOtTrBKjH3SLOKCYEMASo
+x90izigmizm1VBbwRHwvt33hB9zSpi6IDqU+62LVfLQ5ApXbyZQ6t4aW+lBMEQRh
+BB0cZPBoz0X/oqY6gbfBP2uIR6PnfvFP49t/yv4MvRDo6CbgNDbWRqrvh7LiR9Sv
+Hoq+HXUg+cKkXLHrjpXP1VJitwsp/uxYZOGcBU/5kSkoDkZGIXeRgRFCggNBJjxT
+FQIxAIy5HoKjOG0oD11vflDmQd8VL3EJ7VRWsx8WbmysBCWnzzq2r2t/wxA7iDIC
+6QRlZQIBAQNiAAR/cqzN7a5RWFIqF37VePaSghiuCCevYhuCUNFwCORTfS5bcGgS
+lhSG9hn+yaWnEkRYX3659se17mC+Rcjj5BOncCvyHukza205aOSCai/NXayQ+kNK
+LTLZZKt4MCOPUXijggKiMIICnjArBgNVHRAEJDAigA8yMDEzMDIxMTA4NDQyNFqB
+DzIwMTYwMjE0MDg0NDI0WjBgBgNVHSAEWTBXMFUGCGCFdAERAz4BMEkwRwYIKwYB
+BQUHAgEWO2h0dHA6Ly93d3cucGtpLmFkbWluLmNoL3BvbGljeS9DUFNfMl8xNl83
+NTZfMV8xN18zXzYyXzEucGRmMDkGA1UdEgQyMDCBHGVhYy1zcG9jLmNoZUBmZWRw
+b2wuYWRtaW4uY2ikEDAOMQwwCgYDVQQHDANDSEUwOQYDVR0RBDIwMIEcZWFjLXNw
+b2MuY2hlQGZlZHBvbC5hZG1pbi5jaKQQMA4xDDAKBgNVBAcMA0NIRTCBtQYDVR0f
+BIGtMIGqMG6gbKBqhmhsZGFwOi8vYWRtaW5kaXIuYWRtaW4uY2g6Mzg5L2NuPWNz
+Y2Etc3dpdHplcmxhbmQtMixvdT1DZXJ0aWZpY2F0aW9uIEF1dGhvcml0aWVzLG91
+PVNlcnZpY2VzLG89QWRtaW4sYz1DSDA4oDagNIYyaHR0cDovL3d3dy5wa2kuYWRt
+aW4uY2gvY3JsL2NzY2Etc3dpdHplcmxhbmQtMi5jcmwwgZsGA1UdIwSBkzCBkIAU
+v61P0stSZ1sEEF150srDuJRLJeChdaRzMHExCzAJBgNVBAYTAkNIMQ4wDAYDVQQK
+DAVBZG1pbjERMA8GA1UECwwIU2VydmljZXMxIjAgBgNVBAsMGUNlcnRpZmljYXRp
+b24gQXV0aG9yaXRpZXMxGzAZBgNVBAMMEmNzY2Etc3dpdHplcmxhbmQtMoIBATAd
+BgNVHQ4EFgQUtGxi0Tyr+nC39ta0zSfbhZa0aKwwDgYDVR0PAQH/BAQDAgEGMBIG
+A1UdEwEB/wQIMAYBAf8CAQAwCgYIKoZIzj0EAwMDZwAwZAIwGH9SDTAqH/0vSzUe
+K2IrHUbumqvXy8TZ/yzKUiT8gUU28gAuH0wK0W3+jwpkdJffAjB4IaEwqMiFOX1m
+aSi3ExTQjzzOlGcJLTmsRTRmL8bjm/f02y+8vjMgP33Z/rAR07c=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIF8jCCBXmgAwIBAgIBRDAKBggqhkjOPQQDAzBxMQswCQYDVQQGEwJDSDEOMAwG
+A1UECgwFQWRtaW4xETAPBgNVBAsMCFNlcnZpY2VzMSIwIAYDVQQLDBlDZXJ0aWZp
+Y2F0aW9uIEF1dGhvcml0aWVzMRswGQYDVQQDDBJjc2NhLXN3aXR6ZXJsYW5kLTIw
+HhcNMTYwMTExMTc0NzAwWhcNMTkwMTEzMTc0NzAwWjBxMQswCQYDVQQGEwJDSDEO
+MAwGA1UECgwFQWRtaW4xETAPBgNVBAsMCFNlcnZpY2VzMSIwIAYDVQQLDBlDZXJ0
+aWZpY2F0aW9uIEF1dGhvcml0aWVzMRswGQYDVQQDDBJjc2NhLXN3aXR6ZXJsYW5k
+LTIwggG1MIIBTQYHKoZIzj0CATCCAUACAQEwPAYHKoZIzj0BAQIxAIy5HoKjOG0o
+D11vflDmQd8VL3EJ7VRWtBKx2hl/txEjrNOnKZAdGnGHRwATMQfsUzBkBDB7w4LG
+PYwVDDxyCArOBa+gwr6ijk+yJ4cTkWXvupH5D4qlgUpQOtTrBKjH3SLOKCYEMASo
+x90izigmizm1VBbwRHwvt33hB9zSpi6IDqU+62LVfLQ5ApXbyZQ6t4aW+lBMEQRh
+BB0cZPBoz0X/oqY6gbfBP2uIR6PnfvFP49t/yv4MvRDo6CbgNDbWRqrvh7LiR9Sv
+Hoq+HXUg+cKkXLHrjpXP1VJitwsp/uxYZOGcBU/5kSkoDkZGIXeRgRFCggNBJjxT
+FQIxAIy5HoKjOG0oD11vflDmQd8VL3EJ7VRWsx8WbmysBCWnzzq2r2t/wxA7iDIC
+6QRlZQIBAQNiAARYRytgZRQuGrLeH9RMQR0n5qjn9SZvDuic0oOBl/GhVUQN/7LF
+HZ663zJyS5KvsHYuq+fg2KLbz6WfuSjj7KeukoJ1r99UWkbvw24U/zxNQsP8cnn5
+hsHUdrLANAuFZYOjggKiMIICnjArBgNVHRAEJDAigA8yMDE2MDExMTE3NDcwMFqB
+DzIwMTkwMTEzMTc0NzAwWjBgBgNVHSAEWTBXMFUGCGCFdAERAz4BMEkwRwYIKwYB
+BQUHAgEWO2h0dHA6Ly93d3cucGtpLmFkbWluLmNoL3BvbGljeS9DUFNfMl8xNl83
+NTZfMV8xN18zXzYyXzEucGRmMDkGA1UdEgQyMDCBHGVhYy1zcG9jLmNoZUBmZWRw
+b2wuYWRtaW4uY2ikEDAOMQwwCgYDVQQHDANDSEUwOQYDVR0RBDIwMIEcZWFjLXNw
+b2MuY2hlQGZlZHBvbC5hZG1pbi5jaKQQMA4xDDAKBgNVBAcMA0NIRTCBtQYDVR0f
+BIGtMIGqMDigNqA0hjJodHRwOi8vd3d3LnBraS5hZG1pbi5jaC9jcmwvY3NjYS1z
+d2l0emVybGFuZC0yLmNybDBuoGygaoZobGRhcDovL2FkbWluZGlyLmFkbWluLmNo
+OjM4OS9jbj1jc2NhLXN3aXR6ZXJsYW5kLTIsb3U9Q2VydGlmaWNhdGlvbiBBdXRo
+b3JpdGllcyxvdT1TZXJ2aWNlcyxvPUFkbWluLGM9Q0gwgZsGA1UdIwSBkzCBkIAU
+tGxi0Tyr+nC39ta0zSfbhZa0aKyhdaRzMHExCzAJBgNVBAYTAkNIMQ4wDAYDVQQK
+DAVBZG1pbjERMA8GA1UECwwIU2VydmljZXMxIjAgBgNVBAsMGUNlcnRpZmljYXRp
+b24gQXV0aG9yaXRpZXMxGzAZBgNVBAMMEmNzY2Etc3dpdHplcmxhbmQtMoIBHDAd
+BgNVHQ4EFgQUdwbATOVJ8CYHjD/wctApu6BjHpQwDgYDVR0PAQH/BAQDAgEGMBIG
+A1UdEwEB/wQIMAYBAf8CAQAwCgYIKoZIzj0EAwMDZwAwZAIwLLb1wnZKd95PaLXH
+6gls9mPtiZaxT+V65/1c79DS9Q/ykHD/xszMOElIjsyR4+iQAjBniFX180yGFLD6
+fMlbMxEQ8T79lDqJj+NlVLU8z+Of5S3E08kmldi4Yht8mreGl1I=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIF9jCCBXygAwIBAgICAPUwCgYIKoZIzj0EAwMwcTELMAkGA1UEBhMCQ0gxDjAM
+BgNVBAoMBUFkbWluMREwDwYDVQQLDAhTZXJ2aWNlczEiMCAGA1UECwwZQ2VydGlm
+aWNhdGlvbiBBdXRob3JpdGllczEbMBkGA1UEAwwSY3NjYS1zd2l0emVybGFuZC0y
+MB4XDTIzMTAwNDA2NTIxNVoXDTI2MTAwNjA2NTIxNVowUzELMAkGA1UEBhMCQ0gx
+DTALBgNVBAoMBEZESlAxDzANBgNVBAsMBmZlZHBvbDERMA8GA1UECwwIZURvYy1Q
+S0kxETAPBgNVBAMMCENTQ0EtQ0hFMIICODCCAa8GByqGSM49AgEwggGiAgEBMEwG
+ByqGSM49AQECQQCq3Z242+nEiz/U5q4zyfwHyzCNs7PJ0g7WY5zKcDMIcX1NmwCb
+xmhCrs2hKuajgOYogf8vLYLGhSiqYFZYOkjzMIGEBEB4MKMxi2A7ieIycUWsI0zF
+lMvdjT35FhCoNEHK6phjvC3tXVqoJTqhCi7xyYuayLV/ERenK/LHuefBrE13/JTK
+BEA9+RYQqDRByuqYY7wt7V1aqCU6oQou8cmLmsi1fxEXpyvyx7nnwaxNd/yUytwI
+PmeYQFC3Xrrl3SgJvWOAFvcjBIGBBIGu5L3YLtlkWiEyLpxMapOF7Z9wtdkWwbQ7
+Yu700AmO/zsfeOLQ1I1Q0Wh7k7l9X3xtUEdAal5oizUiCby5+CJ93jhdVmMy7MDq
+v6nPeCL98gn3ACSlexqgAMVbiB+BEbLc3klKX0heW8pL2IonY67RyisvqPBUBnjN
+Hg862AiSAkEAqt2duNvpxIs/1OauM8n8B8swjbOzydIO1mOcynAzCHBVPlxBTKkm
+GUGGYRl/rBBHHbHTgQhd2t21h5aCnKkAaQIBAQOBggAEKRdCr7KcjHDXB8t3paab
+KevrtQtpZ8+6tQc6m1ly934ToiMb0rlx391hVE9OHvVBloJd53t/gmGXTQ19GykB
+X1KCbX5Nm8ukzcipCapUdZMWNiifHssXw45eWPL4CErJb4fmU5y6Db4YTwDfgoOw
+ZYQ3M1G6veT0PlCJZQI8HIWjggI/MIICOzArBgNVHRAEJDAigA8yMDIzMTAwNDA2
+NTIxNVqBDzIwMjYxMDA2MDY1MjE1WjBgBgNVHSAEWTBXMFUGCGCFdAERAz4BMEkw
+RwYIKwYBBQUHAgEWO2h0dHA6Ly93d3cucGtpLmFkbWluLmNoL3BvbGljeS9DUFNf
+Ml8xNl83NTZfMV8xN18zXzYyXzEucGRmMDkGA1UdEgQyMDCBHGVhYy1zcG9jLmNo
+ZUBmZWRwb2wuYWRtaW4uY2ikEDAOMQwwCgYDVQQHDANDSEUwOQYDVR0RBDIwMIEc
+ZWFjLXNwb2MuY2hlQGZlZHBvbC5hZG1pbi5jaKQQMA4xDDAKBgNVBAcMA0NIRTBD
+BgNVHR8EPDA6MDigNqA0hjJodHRwOi8vd3d3LnBraS5hZG1pbi5jaC9jcmwvY3Nj
+YS1zd2l0emVybGFuZC0yLmNybDCBnAYDVR0jBIGUMIGRgBSnqfhInwhoEM+/HQbn
+bTWlW0sOVqF1pHMwcTELMAkGA1UEBhMCQ0gxDjAMBgNVBAoMBUFkbWluMREwDwYD
+VQQLDAhTZXJ2aWNlczEiMCAGA1UECwwZQ2VydGlmaWNhdGlvbiBBdXRob3JpdGll
+czEbMBkGA1UEAwwSY3NjYS1zd2l0emVybGFuZC0yggIAvDANBgdngQgBAQYBBAIF
+ADAdBgNVHQ4EFgQUAXGfD3wC8qNCMYYIEo2x/mKjjvwwDgYDVR0PAQH/BAQDAgEG
+MBIGA1UdEwEB/wQIMAYBAf8CAQAwCgYIKoZIzj0EAwMDaAAwZQIwPIxoQPwahzd9
+3e3jwndCCRFQ1+s2laF9ypR+YPBVtz7xbN2iKFisMKznzhKiAtsFAjEAiDlcOM8I
+P+C7ETsPVWrkUC/1/ZLRKn2LYOAMmYEamSKBllY+2tfd5xoQyPH8R+jg
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGFTCCA/2gAwIBAgIIBiUw9O5oUWQwDQYJKoZIhvcNAQELBQAwfzELMAkGA1UE
+BhMCU04xDjAMBgNVBAgMBURha2FyMQ4wDAYDVQQHDAVEYWthcjEdMBsGA1UECgwU
+TWluaXN0cnkgb2YgSW50ZXJpb3IxGDAWBgNVBAsMD1Bhc3Nwb3J0IE9mZmljZTEX
+MBUGA1UEAwwOQ291bnRyeSBTaWduZXIwHhcNMTQxMDIxMDIwOTI5WhcNMjQxMDIx
+MDIwOTI5WjB/MQswCQYDVQQGEwJTTjEOMAwGA1UECAwFRGFrYXIxDjAMBgNVBAcM
+BURha2FyMR0wGwYDVQQKDBRNaW5pc3RyeSBvZiBJbnRlcmlvcjEYMBYGA1UECwwP
+UGFzc3BvcnQgT2ZmaWNlMRcwFQYDVQQDDA5Db3VudHJ5IFNpZ25lcjCCAiIwDQYJ
+KoZIhvcNAQEBBQADggIPADCCAgoCggIBALOPPbOlltze8ltHkLy465W4aqSEeinT
+FBe2hftLV4AZaZO4kbYCANM1e57GUW/g+ZlC2ck/VulE2milz3g+WzoLyP36HRx+
+bnxSnLQksWTVDTJXqmftl5coINnNuMvND9k6WduptFVzfcGo6uqxGtHVtVsUIhKj
+rrXBE+9qDiml5CwSfM8bdY39NOQR8NBX+ZvT2f5ClwQuTB7s7/DvKz82o2eF5NP5
+cwRRhkfo1osxROXDBfdCCZNL3y6lc0cV1FRwVVwKz5LnCUAnZMqnWKoKL6pIH1t1
+ahZdLsiHVuZQLbGYkUf7MV1aKiEch8yBHb33kIfdYpdl5sE5kKBdcCz1TWys2T77
+D1ZQq3B9atQF/1Ka3bEzKWY7iXRDjqvA4Tb3nGGwoSV6bz/ZpDveXrRHX8p3VU9e
++WCsKkjJebLLIXjGGliluRVSjqCmQWo7sVzttvIbjh5P60WvpI65rY2nB6cBmN/f
+ild0sL72R7qXGGcOddeg6ti7FOaJV5cVjRYhvOuAdYcM7FfffmaqS00jCEymijYL
+fnUicxddMz0mp0Z1Ook69U6wBWmgc7piB3R9VtpSx1xX+SscnYNF6/RbocN9pdop
+8r7UZhYSsfYcCPY+0bLMLGhmewAGzI9k20WquGFawpb2EAXLW9lQ+HB03Op4p8mq
+SsplbX/C5WhVAgMB8f2jgZQwgZEwHQYDVR0OBBYEFD+ZQvdVO8hdZiGWLuA5qTYU
+8jBbMBIGA1UdEwEB/wQIMAYBAf8CAQAwHwYDVR0jBBgwFoAUP5lC91U7yF1mIZYu
+4DmpNhTyMFswKwYDVR0QBCQwIoAPMjAxNDEwMjEwMjA5MjlagQ8yMDE3MTAyMTAy
+MDkyOVowDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBCwUAA4ICAQCZIJdCTzsg
+Sn/uOpEzSZDXLL3v7rwKQ32SNpMjm4E7RnMMG/wIkgFuGSupUdQG3/8Dtq8pXRqH
+/uRJDQ1so8ZPonsVGcox6taCNIfCT5DTBPiqWHR9fA8qDz5Q0S7FoEhASDYb7aqb
+OT0El5WAy3QLK1CsmEjGMMA5YHtl7Tf1Yf6B0Q7vz+2ybQt+cmFq5QueAwuMz0KL
+c2zjVAIMyB/2DrnjKh6ouj8vdPqvtsAUID9N/eJA3iPF/ENPM1d8djh7rjh2iYt1
+t+s0UgeXs53+6aKLObTuAXd1o8EwsdmxnJRvM1jH0oWdMpr+1kq9oRChxx9zrji9
+yFRsgFI+X3fIZF0Ou5A9lOtrrIfvvsWqnY9+WAw2DkdlrItVmFT47h7MujnxHsl2
+hqOEcnw75dgK9Qd+8e39ZL3AgDx5cQIrbTNY78Q1zTQFHJWYCmoyEvFl6WcXRNPC
+Fq50AtsBdcfPtNbJPdw8xJT113R/N8TxjfFaDoU/0HSlJwvxDQkXPbJ7AIId8Svg
+Hlv1RFBnccvFoXTCPTWFebgjGKYOSTQYK8USIeu7FMfZ8GjdX6NcLVoBtZ5MvMRh
+sIaO18AkZWr1nGqZZLq2kT0sLnIjoiQwpzwHTGajc95pps5t3FdbSUVtsfMm/6sG
+fY57ez3I/HGT3yv5BiO8pI7d2mzQAFex4Q==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+9XpMnyexDoun8Y8HLItScQo66z0FWvyZeg==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+H8iYD3Vfu/Y9NXPWGA==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+PCQgoMgVY9oOd5nKQEWK
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+WbWv3+9llEnA44h/DcJg
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGVDCCBDygAwIBAgIISROkIRp3AlgwDQYJKoZIhvcNAQELBQAwajELMAkGA1UE
+BhMCTlAxJDAiBgNVBAoMG01pbmlzdHJ5IG9mIEZvcmVpZ24gQWZmYWlyczEgMB4G
+A1UECwwXRGVwYXJ0bWVudCBvZiBQYXNzcG9ydHMxEzARBgNVBAMMCk5lcGFsIENT
+Q0EwHhcNMjExMDIzMDkyNzAzWhcNMzUxMDMxMDkyNzAzWjBqMQswCQYDVQQGEwJO
+UDEkMCIGA1UECgwbTWluaXN0cnkgb2YgRm9yZWlnbiBBZmZhaXJzMSAwHgYDVQQL
+DBdEZXBhcnRtZW50IG9mIFBhc3Nwb3J0czETMBEGA1UEAwwKTmVwYWwgQ1NDQTCC
+AiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAIJ2xX0wOTBhSxTLR73gyqO6
+RpWjg4+BLT+Z08pyJRnykTMtN7J4n+0IEvfNMcCtgFdQhN4TdzW/dDLdR6S+thlo
+hCqMBu8hoKhHk61F28y9X4f3OXb9fSvVRA7zGVqI64+GEdqoUp6g7PYOEZzYxGsM
+Bhm9y9+FemhlnX7kBBFVn5t7vaWKYk4d+biJttgPg+Xh4lyGUC4QT0WSKV+Fc165
+h7cjSGq2Y0FLl2WE/u3KinNU6sh8WtujtHqP65kgaT9T9wqJse5mFy45+9ZHDw/h
+nAFGTEFX4K+KFBrtNLhMDWj2hjJhfA0E21QIJg1GGBtMcAOhIRPdBrbn+sRO+7AU
+qfhKOnXUteA01mfgjWlq+3ikkhc1wVy3SkFMbCxTUr6iNVPaXIutshGznRpe7CiF
+uTGENlhTQxMn7ZVHkBl6N6LH4RtEUM6FLq4vlLtA0FolQblDS8P+Yu0LZPvFQuqD
+oUsZCE2wMNLwcPdPsLeyaqJ5KCTGHD3OqHsTgLfR0fhuXzvA7DCfmtxYWHstcXCD
+yOX63tuqwPIHDv+orlVA1GuGtOJ4LhfHCkLQiFMlA0EbQbesdxW6+pyui/kTEeFG
+qmdy4sUQj9a6MJbzqazTMAxXehDac6oltEp0LSTiXdinEqEtIhOrxsvWn878cjf1
+E1yIJWKi2mXTm9ha5EJhAgMBAAGjgf0wgfowDgYDVR0PAQH/BAQDAgEGMCsGA1Ud
+EAQkMCKADzIwMjExMDIzMDkyNzAzWoEPMjAyNTEwMjIwOTI3MDNaMDsGA1UdHwQ0
+MDIwMKAuoCyGKmh0dHBzOi8vcGtkZG93bmxvYWQyLmljYW8uaW50L0NSTHMvTlBM
+LmNybDAdBgNVHQ4EFgQUv5KVj8j0wBhCJI/hl6ZuDOsIib0wEgYDVR0TAQH/BAgw
+BgEB/wIBADARBgNVHSAECjAIMAYGBFUdIAAwGwYDVR0RBBQwEqQQMA4xDDAKBgNV
+BAcMA05QTDAbBgNVHRIEFDASpBAwDjEMMAoGA1UEBwwDTlBMMA0GCSqGSIb3DQEB
+CwUAA4ICAQB6/AdFj5R+VT+mVYTCHHjf4Q+LxePY/S1SzehB2IKhag/mC+uhsyvW
+pCvHoIBbiIt8Yc88KR6pBLWxF3376FsEu9IVmm1ck4Grk81aJdCFsWBnotC89tM7
+mhtCM5iDrtdFdedwkDAyl1OdgWNVlUgWfID7PPrSqxqtuzSp0jVQ7G8LfV1l+e7F
+WPtb7Hvp+jebY7g3X7aEY2pZe1FX1XF0DatWk67TvyDzVLmu3sHij+9/cIlLcw4J
+hjtxa+akRFMdD6end2Pp2hKVkX3aCs1zvpprSwkLznCv1IQqbZagD5hIyzfclpda
+RdQwjv0afYR47sItUFqXvEPWIn5/K9vGRhV+ujXtElA7mPUeOasRAilLIG1j4tPI
+NBgozV5aSk5qcUI3r8M6rREA9vPxTCs920T07AtDYuoUbeXGGrvEcmaSF4v4AB2N
+Ty387I0xwcjjbFfsAv//7k5QQFEmKAkajlCE2qhdgWROOOokC1rTqnZ+jfgWE2Pb
+YUnezNZZ+Ja4cvr1Mcnx6mcnH9ZCCySJK9Vu/xMPn+ABXefWVk6albaFei03yVoX
+Ju2cUaUB4UEr86WTGICDsp1Ur7RaQVW2kpw1LvHw0YE7LIupeYq8CuFWVvU8GTO9
+dazNuGE5DDd6M2zo7XGZJrQvGroopIDsatky8sll10MHTN96K4zLZw==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+uWPrJsI=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+VSoJbvVok0sXLoOldpR5/9VPqA==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGbzCCBCOgAwIBAgIEWNx+WDBBBgkqhkiG9w0BAQowNKAPMA0GCWCGSAFlAwQC
+AQUAoRwwGgYJKoZIhvcNAQEIMA0GCWCGSAFlAwQCAQUAogMCASAwQDELMAkGA1UE
+BhMCQUcxDDAKBgNVBAoMA2dvdjEMMAoGA1UECwwDcGNkMRUwEwYDVQQDDAxjc2Nh
+LWFudGlndWEwHhcNMjIwNjA3MTQzNjMyWhcNMzcxMjA3MTUwNjMyWjBAMQswCQYD
+VQQGEwJBRzEMMAoGA1UECgwDZ292MQwwCgYDVQQLDANwY2QxFTATBgNVBAMMDGNz
+Y2EtYW50aWd1YTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK36LxAH
+eHCButPgtor0zpi1suv8toBgdHjGYDdi+rbhBlJux93gIdiE3yXi5a37N+fk1PSe
+j0HIlVD4ZtyQBF78xQbe/QB4AJEnYXz6O1inqq/vT1yCudSHbzmUnMD49HZmR84S
+1MVGbEEerXJ8sn8cQctINAGJ2ToJlgHoWkV9hoVJ9hZpCZm9b2bLGmPQMLmReRuB
+jiRvzn5+Nn9xvOFkWuOlcftCBv/zNrsaK5n00es2OGId3q2B6AT6CsQ8KDnyk9fq
+aFXAnSJ4rxPnQpm1r/U+9X3y2OmDePm+1EvWkamgLbYg1n2tWbFG8h5HXRdkifJ9
+dwfJujiftStFOvq+72BVwaAMWnmgj0XIldVJWNP4CyA+UuSoD/ih2fhE9JGs8+kW
+XGYwaBhTdHaeFxE72Qytp48DJPDNV8OaJnOCNw/rQ/ja81IvFTW9lw7gh56vNz3U
+Za+NK0hRWGpvjH9HRDp4p50dAxmGkW6WN5OGWY1P3PBAOD2RfnateGSzwoFqdSaJ
+YwalYh1GdFKBR6ZZKAmcUanyN2NIipmBQros1LJU73hOL9iM+9xkSdqFt5CltWgn
+KICFRoJyaGpyqxlPZ5k5sgKaN8NciTTmbD0JJsiFQ9yH7Kw3yJQo9sFPD1H9RnP/
+rbuh+/5MDaUgvxBa33nqCaSSTdOxqU+gH+IXAgMBAAGjggEHMIIBAzASBgNVHRMB
+Af8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjA3BgNVHRIEMDAupBAwDjEMMAoG
+A1UEBwwDQVRHhhpodHRwOi8vd3d3LnBhc3Nwb3J0Lmdvdi5hZzA3BgNVHREEMDAu
+pBAwDjEMMAoGA1UEBwwDQVRHhhpodHRwOi8vd3d3LnBhc3Nwb3J0Lmdvdi5hZzAr
+BgNVHRAEJDAigA8yMDIyMDYwNzE0MzYzMlqBDzIwMjcwNTI0MTEwNjMyWjAfBgNV
+HSMEGDAWgBRLljSvM1aG47/pXR/Fvr9RUHkSqDAdBgNVHQ4EFgQUS5Y0rzNWhuO/
+6V0fxb6/UVB5EqgwQQYJKoZIhvcNAQEKMDSgDzANBglghkgBZQMEAgEFAKEcMBoG
+CSqGSIb3DQEBCDANBglghkgBZQMEAgEFAKIDAgEgA4ICAQCA7svfJkr6WCgsW5fy
+2H94Bvd3p8pyiKsD8P66WyPtD1PzzMvFuAZCIgrxrTuX17o1rm0ECQbIbbIHYYcU
+3vKUumdDcSuAsaR+CCsHMpHwq1ZXDTvPq5bOtUDmh8QAa/R0tYxkjS20xBvNRHYG
+xSqOT4P2IEWh8wNQ+3//0sa9VB2wQZH7rcfR7Cx1pvRYkc+KZtGoxPpkCWEuy0K1
+lnvW0dcfdeXDlLmXekbv1poxipk+eNCCbCZ/XnOPOOvWyaXJSCJ222BpGTkwwZoR
+lQfRrg4wQba56K7zec9pPtKXpqTLxVrkESkzheUEwCgBUphD20KYfme9YmguO41w
+n6hmFgmN6fzIM0xMv6r0wNMA8gqlVKWgdfGmolGCkdTut/69JFn97Hp+cH63FC6c
+UkEFsobn7+8VxkESb1nsxdTKhWl+qRdf79m+tzhI4y0O4OS+PnO//Ji4WXWLP+PH
+JipH+6Ryfl3jPfiAfiUqEuYzShf9J7H/l/rSjlMbAyaPjsGqa1EXm6oP6OU/MPR2
+6l45mOcFyzMetqpT4KslYUR/u9gcJ+E4HF4/QXY5eSP8SoBDyjvWwao91GVygtF3
+ud+AcaLFi0VYmVMGDZIkHoOfHxp4aYd0oXjmBh9HiEoKf4gVYS0kO7P2uHg71MiC
+LgiXgd9MCgbgyTOX+7Ibr3XXAw==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGnjCCBIagAwIBAgIUdtlI6LNXSudLQW4kfiCYsqmwARowDQYJKoZIhvcNAQEN
+BQAwgYgxJTAjBgNVBAMMHEVDTiBEb2N1bWVudG9zIGRlIFZpYWdlbSAwMDcxHTAb
+BgNVBAsMFElDQU8gTVJURCBQS0kgLSBDU0NBMTMwMQYDVQQKDCpSZXB1YmxpY2Eg
+UG9ydHVndWVzYSAtIFBvcnR1Z3Vlc2UgUmVwdWJsaWMxCzAJBgNVBAYTAlBUMB4X
+DTIyMDYwMzE2MzAzMVoXDTMwMDgzMDE2MzAzMFowgYgxJTAjBgNVBAMMHEVDTiBE
+b2N1bWVudG9zIGRlIFZpYWdlbSAwMDcxHTAbBgNVBAsMFElDQU8gTVJURCBQS0kg
+LSBDU0NBMTMwMQYDVQQKDCpSZXB1YmxpY2EgUG9ydHVndWVzYSAtIFBvcnR1Z3Vl
+c2UgUmVwdWJsaWMxCzAJBgNVBAYTAlBUMIICIjANBgkqhkiG9w0BAQEFAAOCAg8A
+MIICCgKCAgEAo2MvfuArOLUWd9MSDenqIUCNQgjOYchzHvF+TKQGUb6W753UggOt
+zAYTJiVJ55Z1CEWXZw9W64aVU6QUQDj74fUViM2EVjhg2tcMDM5Az3PMdE1ZSImA
+WPOTPBSBLcwKDuZLjTPAPFSHwX5i1Mje5o4hhU5sCqQZNBP/np7Ud40d9OuMWvxx
+A6Z4Q5tFZy73Bx8WVnpHieWchHGTZKzHkMhAiY8h1zVlZFl5YpganNlEiYboenlw
+TI1gL8vVTazbEncecujy1kJ/2kqVtK86rX1aRreYJRvMrufDpW2mvWm3I2lzAdF5
+wFCBjGXZ18HrDa/1fHYT0VHNIgBsMo1y4PzKgg5mXwi7oZlpACc3PmBjA713HmDD
+ZDXDFj9lwwUbbT8BJxm9rWykX4X2wYrNbiZrLDKHfJxAm9lUWXfp8ubow5tCvmFr
+hJoXNE8nSlnatOkbWbLT0c1vTAZWOvRDu/k91f68bJipnCMVM5/98OY1NEqgbNmo
+ijFwcOGcbU+WJAmID/6uRgCcLa/y1CAc/ZGCkFbGGRbknuJjrP0hLDprZ6a2UYWN
+QJP6UzwcHJ43gE9aePIfoimf7kVmP8hWBE0tdHdVjXCyFHrtEiYHB776Rx2S6X6F
+Hr+OseM9drU8Dxgar62pdZcu1gpcMuYgkE8G6YlXdis9mxRj+0WB4j8CAwEAAaOB
+/TCB+jASBgNVHRMBAf8ECDAGAQH/AgEAMB8GA1UdIwQYMBaAFKuZAgEOINel0lWq
+UKcVK0zne3hbMBsGA1UdEgQUMBKkEDAOMQwwCgYDVQQHDANQUlQwGwYDVR0RBBQw
+EqQQMA4xDDAKBgNVBAcMA1BSVDAtBgNVHR8EJjAkMCKgIKAehhxodHRwOi8vd3d3
+LnBlcC5wdC9lY24wMDcuY3JsMB0GA1UdDgQWBBSrmQIBDiDXpdJVqlCnFStM53t4
+WzArBgNVHRAEJDAigA8yMDIyMDYwMzE2MzAzMVqBDzIwMjUwNjAyMTYzMDMxWjAO
+BgNVHQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQENBQADggIBADU9FjEXZU3LJPgnoJHc
+ucPluCltD7OVFq/GFY69090fguQ519RNt++ot/XoggydhSyBXTmVFzyzTwF8mYTV
+obETpjEmszjepfWcj7BKMH5P0v9T7v50YkaaucvralBQJ+qgdZuvpXDhMniqzptF
+YM7I6CSML5X/t/feBItt0vGDIpE4v9B4ZotDo/HlRSPNClZf/VlIydg53LvQLQ+n
+d7s5q/xVAPvtcBTyPqDUhj5kIpLaKhPZL9cMbDbGVCsDUr+yBS+WE8lWhvP9wYn3
+NI31tte/PFVgDDxBLiKLpyTtOXF6nfQRbPJcLBjk0vqCX/TsKFx1tBfm2KqiwaZ5
+o1+aKu9USz4DmJQaKv+M9SPma/yBSMZD4OraVqEj8KC+mGLsOWC6N9VlccFnChmQ
+PDWX6vedQ1RFw9AHDCGLYopA5eqFhpGMrI1Rlxa5A80BBokCGC9n/cqZusCtv9+c
+aY7teE6ZhKplBmNso+dUf/lXZ8a7yQTmMoqAOn8towWbiRo2avayyT9b7pVxIow1
+zGEO16fDpUAsFS7WejrOTBWh1tVToqS9r4Vpf9UCigF37IuxkQisAHAV4XEVgzqN
+KwerusXfiXVVx5uc7WQJ2e1JKVZt4zQFQHHp1Hh5wRapNSGzMp9t5EcAywlSFcQa
+woxLyT+dwhGpNgjG6IFDzH3/
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGpTCCBI2gAwIBAgIUHsP7po3cri/2dUB9K9TT3Q0sSp8wDQYJKoZIhvcNAQEN
+BQAwajEfMB0GA1UEAwwWQ2FtZXJvb24gUGFzc3BvcnQgQ1NDQTEMMAoGA1UEBRMD
+MDAxMQ0wCwYDVQQLDARER1NOMR0wGwYDVQQKDBRSZXB1YmxpYyBvZiBDYW1lcm9v
+bjELMAkGA1UEBhMCQ00wHhcNMjEwNTI2MTM1NjEyWhcNMjkwODIyMTM1NjExWjBq
+MR8wHQYDVQQDDBZDYW1lcm9vbiBQYXNzcG9ydCBDU0NBMQwwCgYDVQQFEwMwMDEx
+DTALBgNVBAsMBERHU04xHTAbBgNVBAoMFFJlcHVibGljIG9mIENhbWVyb29uMQsw
+CQYDVQQGEwJDTTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMkvxDrF
+dNpVXSHo+A3zGAFyG5BmF34u9PW5AODt0qG/b965OQE5LpOgTrgKxRZIlu6edozc
+V+nwXqP5yXTSKSdvfVgB2OOkvIxkjrXjYyznwwJNY2MI7DrKVRan+bTRm0XBwi+u
+nKRTAmqqpgJLBjO+BxuP1wfcU5v5JjOQ+hAyRIzj4EjNdZPi9xi5HN6HkyPe33hR
+QCqJcVN4JQWFY1Qlk3KsgvO98okVGVHm9bLavgPrByUL96lVFCaWPJXvEcYg4vV8
+1IIax0MLtokxeYUIm8RjriE0fV1XLHFOKBp9b3yxB3yTOuUt+rOZJUZDl5PK/+NC
+nLd2KbzllNqeL1P9T575Vaa+od/63I3j6TmfsH1YT0W/B6SnDSCr8YZgCMY4Ru0+
+n9Infrj8KVchIvtDrFHRcm1VYJAkAYz0tuLirjzoFJGW0fuR9EA1yu/GASsU224M
+O3EcTEY2HDCd0IzCmAaKDcRtiaDk/rgde58a7+jl2eXqrNLhLPw0fMqjpjnqNjr5
+UZfmS5Q2Lc+UescppzHGQpxgR7p6Rz43CUQ1PupkIj4cdOPtewLMgqCeIG3QeFJU
+Y0ohQ/v7Z7VlUK2REY6Ind5cFp+9kHuAvlWmRLmmr08Tn+BOhafK9HrjMs5rCqkU
+yZgq1f6mBp4RtUGuqlUicjcwzaI2EjLqSPJRAgMBAAGjggFBMIIBPTASBgNVHRMB
+Af8ECDAGAQH/AgEAMB8GA1UdIwQYMBaAFN0cuOfN22vzA6VVkQ3W7+KO0uKqMBsG
+A1UdEgQUMBKkEDAOMQwwCgYDVQQHDANDTVIwGwYDVR0RBBQwEqQQMA4xDDAKBgNV
+BAcMA0NNUjBwBgNVHR8EaTBnMDWgM6Axhi9odHRwczovL3d3dy5kZ3NuLmNtL2Rv
+d25sb2FkL2Ntci1jcmwvQ01SMDAxLmNybDAuoCygKoYoaHR0cHM6Ly93d3cuYW50
+aWMuY20vQ1NDQV9DUkwvQ01SMDAxLmNybDAdBgNVHQ4EFgQU3Ry4583ba/MDpVWR
+Ddbv4o7S4qowKwYDVR0QBCQwIoAPMjAyMTA1MjYxMzU2MTJagQ8yMDI0MDUyNTEz
+NTYxMlowDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBDQUAA4ICAQAGfE41kW62
+Ga51VmyBOJHYgiPrURx3r7JRVFujf9W+DHOqtAOPZ2u2+SPOd1RPUXhO+iGhokkd
+fVBn73WDhengJ5+kPU4NYh8XxZ8QAzleFwROtEVtm9T/zq9e2hFqi9hIHuaaLmZD
+SmA6vn5lOxchDisJcaJLM02xn9cxHlmSM8MxmEXfasHxVhuvOJqzhqXIsA/lGn8Z
+Aw+O/qp0wxmERaNlFMh578sI1gPqnY3t2XDMzYhDNWgMZ0OB6StSbBn/Zo6c+Xd3
+hUh4WvEP/4TMCyILZYda0c+3JiuZAR6ZYxp61RvMFrV4prSPgOMfmMliGlV9BjND
+xsbhH+cze+E+FnJyJ2Nn5vPEGXnH4EhOBXETgKYayVJipOENmMwcKZt5r9+GwcYE
+nuLvg/OKNo+Aw3QOOhn1lh/LthXVPd6iDjIgNwYFU4hRnsxnmH3cKOe/3CI5ZJZp
+tKADCKGDyaUUbkEKO5f6ydDNlUQNAJF6PDYzNKGDgOoN7eFHpdLuFL3sBmE8jAtJ
+TSt5Dd00IAcQb3kkEcows3fhFCymzQRmTpznUdyV2QKuVHpa/eOwytuRgObNFnGM
+k00TedMwGI9KG3/jCf9T3Q1Y9eYJI//LaHLjvN7GPxkxT47F2bx4rjKoj9qqg0mr
+ijS+nb3oCHWc6AI8MJ/EeAkseazs2aG5Fw==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGpjCCBI6gAwIBAgIILRaahWxpthMwDQYJKoZIhvcNAQELBQAwgYMxHzAdBgNV
+BAMMFkdFTyBDb3VudHJ5IFNpZ25pbmcgQ0ExKjAoBgNVBAsMIVB1YmxpYyBTZXJ2
+aWNlIERldmVsb3BtZW50IEFnZW5jeTEnMCUGA1UECgweTWluaXN0cnkgb2YgSnVz
+dGljZSBvZiBHZW9yZ2lhMQswCQYDVQQGEwJHRTAeFw0yMTAzMjQxNTE2MzJaFw0z
+NjA2MTgxNTE2MzJaMIGDMR8wHQYDVQQDDBZHRU8gQ291bnRyeSBTaWduaW5nIENB
+MSowKAYDVQQLDCFQdWJsaWMgU2VydmljZSBEZXZlbG9wbWVudCBBZ2VuY3kxJzAl
+BgNVBAoMHk1pbmlzdHJ5IG9mIEp1c3RpY2Ugb2YgR2VvcmdpYTELMAkGA1UEBhMC
+R0UwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC9vU1aO2CDcYQ9ZVRN
+Zflzf/uwZarmE7ZjJf9DLjgkGpSYAVIZyCqJ4y0CKUEQyyOwACI88mcNetLA5SlG
+SOd+yIpMFLQI/Pw7tFKqa54kLRMu7Iu2Vr6+LCoF2umnSrz/JEmiWMff2rJbEHJe
+Xuk1Igr0UzSPfIMIMvzjNUy67a+msirxzdTanJHEn58mjl4ZH8LOITKseN1KvhOZ
+uJsP96dGUfPeEFCNX1ILapenji2LnDT4nQ0UiHqB//E/DePJFZunoWnLgbLT5giQ
+Wsz6uOzdG36y7sdg5Ww1Btro2OcrLlZveIN0KHtKx9nJDEXtTXCKYtdvjrknU96m
+UtN9VNjrc6IJ3y9yn585c3Y7UL490NPvond1WFrPfutDIJSK2sYhx435rfav/BzB
+BPnBScczl8VQUKnLHdOggPIgbyqhQtAmBJ+WGqdIJFHy7J8lLgu/706TCY/+dVH5
+6pxf+vTmXI6Zw39XVArvQGE/hxWUqhWzRSjd6FSA2FwwPDtBbD+/DvnQCNAcgXAR
+il+WVKPozj+ykS1Sy5tYGHtYwUYgmum/0IyAbJIIPqiWWFHaRBCOtbhPcbkWfIQP
+2AZNO9aWKBilJbLa+sxXOsZSc3DOFW0+b2GGQklYz3BDBhc5pLxtNbcglip2crHD
+NTYdwKlMBdm1nv1CmaYFjchvQwIDAQABo4IBGjCCARYwEgYDVR0TAQH/BAgwBgEB
+/wIBADAfBgNVHSMEGDAWgBQpVBZ+wFPk3xd92Y3RJVxgVC8F2TBHBgNVHRIEQDA+
+gRdOUEtELkdlb3JnaWFAc2RhLmdvdi5nZaQQMA4xDDAKBgNVBAcMA0dFT4YRaHR0
+cHM6Ly9pZC5nZS9wa2kwOgYDVR0fBDMwMTAvoC2gK4YpaHR0cDovL2NybC5jcmEu
+Z2UvZ2VvY291bnRyeXNpZ25pbmdjYS5jcmwwHQYDVR0OBBYEFClUFn7AU+TfF33Z
+jdElXGBULwXZMCsGA1UdEAQkMCKADzIwMjEwMzI0MTUxNjMyWoEPMjAyNjAzMjMx
+NTE2MzJaMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAjSf9zJ0i
+ONdEMc+ARd8gtQji3SjQhYx00eEn0V1wuW0dplFpDtFwDjTZ7GErjPu/fov0zJ8b
+cLRUVU6Z9sGQUCI6wPahwiDgqWiHdQCWt96qccgOOdSQWPIh/4SkjekYV5W9Lz3A
+BG+E1wPvFXFc7mp89jT1yNm9DQuQ2eMjkxo7XaDPo3pj8VpXRLL2ua3qSfhW/Mhn
+g6nCb0cTYjeyvjye3rsmWcbZDcGt29k72EHhcpz9/VI2Hd4ALbtScGzfNrhdgF13
++mNzwo36++7p9w06yvUpmEbwztPu8cy/vOVdudRxp3NyD89IKJNd7KJXrH5w9Xjq
+7/CngmT3cp7J9IEdgE1qgROcDzA7TGftWP2C8Hi1f3IzDMGQVPRDuEA+ojOXnTv8
+GIB5zekOBLIXxGpVG8aeWYkFpQG7MtPHpcLPBkW48KifH9yX22FOhNoAx6Q4NDcd
+yu7m/GIM53xjYKXjAcQSBx5ra4Kx/GqMG6Wz2TIqNnAjk53itC6oC92s3/KIisOD
++kaT2OYw9qpT1aI2dcYZ1hPn0Z53ONG2s0u0m0MlA9MN/bA2ICzWh8qN3yqlg0q+
+MjjFaoIj3WRb2VSQhyJu4A2JK8axMl343lHQO/+arCFhIDWFBdaEXG2L1+b9mEuL
+QlaMdyhpcWzt6h7YERbkHDD7PUmFJEqA76s=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+lg==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIHEjCCBMagAwIBAgIIa4pfL0b6k0swQQYJKoZIhvcNAQEKMDSgDzANBglghkgB
+ZQMEAgEFAKEcMBoGCSqGSIb3DQEBCDANBglghkgBZQMEAgEFAKIDAgEgMC8xCzAJ
+BgNVBAYTAlBIMQwwCgYDVQQKDANERkExEjAQBgNVBAMMCUNTQ0EwMTAwNzAeFw0y
+MjA2MjMxNjAwMDBaFw0zNTA3MDExNTU5NTlaMC8xCzAJBgNVBAYTAlBIMQwwCgYD
+VQQKDANERkExEjAQBgNVBAMMCUNTQ0EwMTAwNzCCAiIwDQYJKoZIhvcNAQEBBQAD
+ggIPADCCAgoCggIBANJAgb5swU/j+0s1q23xp/KPNzAX7xWia2f/LdBHc6PviUK3
+ul8vka6kaf51fi4zYqkHYQtEHzYQ9Six85c5oTLEvrwmw30lttEkgTNv7N38a9zQ
+Eb5PKRL/BmPLcNmTgoCBPdPzLy5v7xhIgfeEu9L9LRZbFp2FlMRdgy266/3LUy1l
+QrV0E4Jd9RZLV33NwkjfxKiwcesL7wIRKOkXK3ehilprAOvA4Hrwqd9lkmhIBaS6
+DbAN3aq/eTZB7A2lGuzGFgrNVqAZTRFhJxuP6q8K6FGuZfFGTHlge7sjfePb0KKZ
+6c2oRsNil2EI0QVVtXhmpWyHxqXZLRiI1iYPqQRZr7FGiLilOSHS1HfRZ3UYlWQS
+4B6yWSsnrWKj06UHd8S+4/NItHiLt7vTjWvZApaKezZA11+Yt4gk7pRi4bLUBbjB
+zn19vvR5wpeVU3kLfX+opvBdrUz5W5KiGLQQ61ud9xLQmbaVKgfxItIelbk06adl
+51g5exkf0BwMSuZpA5oNcAMwireNA4CXUrt7Z2w/O72axLjPAWLvtQ4BxS46l/7T
+HR5z8Ss9p7Tfh/1+k/cPktwVTQvO9aOcljGytQx8e5H0pj1OPUh8N/xju9+Htxyt
+VYFAlmHRX3f/c4pNU9I0JNmZSQYH6/2Ck7L7XCac2KGUd8qI9vfLGr4A+xbJAgMB
+AAGjggHIMIIBxDASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAd
+BgNVHQ4EFgQUoUNtuE8cE05Js4faVs7oARAtT3MwXgYDVR0jBFcwVYAUoUNtuE8c
+E05Js4faVs7oARAtT3OhM6QxMC8xCzAJBgNVBAYTAlBIMQwwCgYDVQQKDANERkEx
+EjAQBgNVBAMMCUNTQ0EwMTAwN4IIa4pfL0b6k0swKwYDVR0QBCQwIoAPMjAyMjA2
+MjMxNjAwMDBagQ8yMDI1MDcwMTE1NTk1OVowOQYDVR0RBDIwMIEccGFzc3BvcnQu
+ZGlyZWN0b3JAZGZhLmdvdi5waKQQMA4xDDAKBgNVBAcMA1BITDA5BgNVHRIEMjAw
+gRxwYXNzcG9ydC5kaXJlY3RvckBkZmEuZ292LnBopBAwDjEMMAoGA1UEBwwDUEhM
+MG0GA1UdHwRmMGQwMKAuoCyGKmh0dHBzOi8vcGtkZG93bmxvYWQxLmljYW8uaW50
+L0NSTHMvUEhMLmNybDAwoC6gLIYqaHR0cHM6Ly9wa2Rkb3dubG9hZDIuaWNhby5p
+bnQvQ1JMcy9QSEwuY3JsMA0GB2eBCAEBBgEEAgUAMEEGCSqGSIb3DQEBCjA0oA8w
+DQYJYIZIAWUDBAIBBQChHDAaBgkqhkiG9w0BAQgwDQYJYIZIAWUDBAIBBQCiAwIB
+IAOCAgEAALJAljZSdgInaWgGnFmOKvcv/9yfWNvOKX+EibbG7+3b69D4tCIOxAAF
+MKhkigmA0AcphOMO0d66GMeX2MDyOhZXN2W9K4OrXcvrq3h3dCLxMzN+YmEjr67Y
+dUc5t3lAKtzC/KcRqboFoHq8QqeuRqcd6hOq4N4DciOMp70dGxVQQfrOV1S/oD2e
+2/0Yg3MqKVuXxhcEI7mrpIlJRJiWOXqCM1/l18l+qjsndFF8XgxnTEo1efPHJR3S
+pTerX1gHr7SuKFl8QKO2LBxnfv4IsYKo4xwQq1mgEpi5GclMKRx0gVDRGd2ZEb89
+B362hyRmKFulzQ0WhEC4SIYvtL+g/RFQE9DBtzPGFpsVYVGlvVckg0IBPx4jzm0S
+JB4nqB08BuiI4VKbqPzeL1OFUNJ7wsYmamcKow5mn77Nxjd+1NQ2yCT/ZmUtkryU
+77HwrEd8IokscXowKYf8YjtleQ0xiQTzdtQMS0lZITwzkbtjW+PkVBMKEl0RdPtA
+uC0aMyAcfId8hUcIVdU5Ua//lDpCAxz/7F3pF00z3OD7q++OlUI5UF77MHc9VVac
+be9qVVvU/0Ww1WsZi04T1NS9qe47fmj6PTYnxxY7+bOcXgoA39ruHUrgewb6Sv7b
+p179sSD3sH/2HicmpXctwz/0rsj6G6aubgE2auMMnRr0ejQB86A=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIHVzCCBQ+gAwIBAgIBBjA9BgkqhkiG9w0BAQowMKANMAsGCWCGSAFlAwQCAaEa
+MBgGCSqGSIb3DQEBCDALBglghkgBZQMEAgGiAwIBIDB3MQswCQYDVQQGEwJOTzEw
+MC4GA1UECgwnTWluaXN0cnkgb2YgSnVzdGljZSBhbmQgUHVibGljIFNlY3VyaXR5
+MSQwIgYDVQQLDBtOYXRpb25hbCBQb2xpY2UgRGlyZWN0b3JhdGUxEDAOBgNVBAMM
+B0NTQ0FfTk8wHhcNMjIwNDI4MDgxODI5WhcNMzcwNzIzMDgxODI5WjB3MQswCQYD
+VQQGEwJOTzEwMC4GA1UECgwnTWluaXN0cnkgb2YgSnVzdGljZSBhbmQgUHVibGlj
+IFNlY3VyaXR5MSQwIgYDVQQLDBtOYXRpb25hbCBQb2xpY2UgRGlyZWN0b3JhdGUx
+EDAOBgNVBAMMB0NTQ0FfTk8wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC
+AQDdH3DDgLTSlzO/0vZYsOR9MbpPG5zlrxSv5+cV7roX7HGHDj1EfEJIPD6bKvTY
+DLajLaHzk6Fo4bZdDdCxA/fmfFcEhrt8l1yfcs+UZ0gxRS5RpHrr9SVpXGzN1UMu
+WGcC1DMFjsY+Y8pAcHeLaQmYoau7Ha0XhxvDf9SjKAXBQMdQDsBkOFcdSHjVFx+f
+gM6Z31Lj14v36h+ofWWPtglzCW+ugddBgNEmYe1HY6X7rz4tO8zz0qt1ljIIX5yy
+Xyi8GqLisEayITVQs8BHKVELSIhP8+KbkL4yK+381aiyf7j9SL+lADjGu8QCVhnq
+gSSs092A8zL73kH2OsFyeyCAJJT0tfxStApEgWTObZp9ZaacnHMQCCPvdYWiizZD
+Ju3KWrnDDwCI53gEHeHXut094HYwqBfY32XM1Y+pHb/AYCvQH7RyHM9vFLE69UYv
+zisyQMm7qFC2f84hRRlH67H6nUYhJXKceGDLsKnoWAtq1UCghuYNp+EFZ9hgHKoK
+TCUt3NdyACIfU4BArupCcl9N7j5belW0qrmczWGK5t0iPlEa9p777o4AdmQ/c4vj
+Stb3iJV8CyLzyKwQnTmnPlhMTr0bUy20VGDGTeb+AhY+zWpmFo9AoJiEtqR6/yn8
+3jf3GnqOG575TPGyYGayfr9ofRxD9Wt4aYR/EyckSn11zwIDAQABo4IBjDCCAYgw
+DgYDVR0PAQH/BAQDAgEGMB8GA1UdIwQYMBaAFHD3VtLBi1oIjJ5HRryprB/mOGrm
+MCsGA1UdEAQkMCKADzIwMjIwNDI4MDgxODI5WoEPMjAyNzA0MjcwODE4MjlaMDYG
+A1UdEQQvMC2kDzANMQswCQYDVQQHDAJOT4EacGtpLmVEb2N1bWVudHNAcG9saXRp
+ZXQubm8wFgYDVR0gBA8wDTALBglghEIBNAEBAwEwEgYDVR0TAQH/BAgwBgEB/wIB
+ADBtBgNVHR8EZjBkMDCgLqAshipodHRwczovL3BrZGRvd25sb2FkMS5pY2FvLmlu
+dC9DUkxzL05PUi5jcmwwMKAuoCyGKmh0dHBzOi8vcGtkZG93bmxvYWQyLmljYW8u
+aW50L0NSTHMvTk9SLmNybDAdBgNVHQ4EFgQUcPdW0sGLWgiMnkdGvKmsH+Y4auYw
+NgYDVR0SBC8wLaQPMA0xCzAJBgNVBAcMAk5PgRpwa2kuZURvY3VtZW50c0Bwb2xp
+dGlldC5ubzA9BgkqhkiG9w0BAQowMKANMAsGCWCGSAFlAwQCAaEaMBgGCSqGSIb3
+DQEBCDALBglghkgBZQMEAgGiAwIBIAOCAgEAl0OJyy3GxzmIQINNMKfVZUCUU12R
+Xp7crXy3nF+9t4FgPY71G9AozN3CEVchJvZK4miDwQUgrR/uRcq6uc9II8Cz9hIU
++UHEjDIrKVgCrsL8lG2oG9H8G7uNCwYHwD1csuqrb766wWxolK5dc+GsfTHdd26x
+xE2NLyzcIv1nX9bYtRFYbCiWrjoggUZliMAY3G1KHjiVhMhVpBApq5e4Xi3hnHQS
+a948smAdnbIQ/12Sa97GkDmIw/kAST7uEAKPjOuK0m4ITIHnBNIpeEw9/KvwVIB8
+bqcoDR2xGAzzgr/FLL5DxZ777HdZIoONr4PccNi6HQfQIcFfHHmaxPUW8BWk2D0E
+SOjPw+UOTM7lxEoXv2P2B12S1Hsq4kPGVkA3Za4k8dYBTOnyg/DFGdPEBhr6/1UF
+3w7H8uVOnHom0X+y3HbrjQGEdT385VpOlAVqBfn/eJ8f9Fec0izwJPEVuinC24Z8
+PWOZTilyLBsLYZv5WCCs8P//V20BHzVtm0iK+SWH1NLdHRpLMTuKCcnZBB9p35hD
+NMYiCWR3ta4AFVVouZjgxj08p6HTcYVTIXBPmREuc/5ER9SnD1DSiEl97m4DcKTF
+9GD9MVma2/JXDtpgjBsjBWgOI5Zoo2KrB5o/wH9N3gmGM2qs+YXmu4A36kC+s08a
+iYMI7j28PL+3slc=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIIATCCBemgAwIBAgIBATANBgkqhkiG9w0BAQsFADB3MQowCAYDVQQFEwExMRow
+GAYDVQQKExFIZWxsZW5pYyBSZXB1YmxpYzEXMBUGA1UEAxMOQ1NDQWVSUC1IRUxM
+QVMxCzAJBgNVBAYTAkdSMScwJQYJKoZIhvcNAQkBFhhjc2NhLWVycEBwYXNzcG9y
+dC5nb3YuZ3IwHhcNMTMwNDE1MjEwMDAwWhcNMjgwNzE1MjA1OTU5WjB3MQowCAYD
+VQQFEwExMRowGAYDVQQKExFIZWxsZW5pYyBSZXB1YmxpYzEXMBUGA1UEAxMOQ1ND
+QWVSUC1IRUxMQVMxCzAJBgNVBAYTAkdSMScwJQYJKoZIhvcNAQkBFhhjc2NhLWVy
+cEBwYXNzcG9ydC5nb3YuZ3IwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC
+AQDgLcmi5Pi7FXKvOa8wejdOb6Tvl+JcLaofFpJTA6aIFFjgARjC7fj8fNC6Wy0l
+elBs0ZGTbfIXZ/0+UAMHT/pRWIFyRQ8urQ/N5EGj4sBmlaG0ZEUCd7oDCBLJk8Xn
+aTypwNxAxNvinx6VBsfyOQj/ukIgVK9xZ/8BckgLV9E7WHXxO21pVnOWqPuvWmiO
+yjyx3DgSAeOJ1Bmkah+BhcjWHHbu/VhcU7APyGEa6HjCdGbkloZiKz0PcqauzNlO
+e15JCUceoqow3jpCFcgSWEbc7zX0eSNyKHsDAP8sM+7t7aYreVbZkxTognCvquqi
+sGTXtsHiP6EfSp6DpiSnTW0r66Y214YS8tdqdMxkXOR0ai7zfvb7pC6FkVWG1XqF
+/I4YKTZYUia6XT/K6CPgku0dkRzRBtiImm2EixeYAH/07ZLJ6CNrEw+AZElDVp3p
+RegZ6UdCXeA1JoQw80Xq/67PXSUgzndoy7DgT2yg2jfYQVY8uVetBFSM6Elk32GT
+cjBXQK59H15hj3EOMlOLHX12VMgQMDISg89knhL51tKOTX7X/GfeV3qQAe3/CysQ
+VAz6LqYTaXV78A4dCcAb9vHXgk7s/d8V1ZR1e3q2x8ERxdUQ+ktXUMjuXi9rC4Nv
+YAjq+9GYC9KQv2cmFglh7GJKqwc8HbDNWxSdd6BLKT6F6wIDAQABo4ICljCCApIw
+KwYDVR0QBCQwIoAPMjAxMzA0MTUyMTAwMDBagQ8yMDE4MDQxNTIwNTk1OVowDgYD
+VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBQRUG2dJ5gf24lvUsuTRoPld4KCLzAfBgNV
+HSMEGDAWgBQRUG2dJ5gf24lvUsuTRoPld4KCLzASBgNVHRMBAf8ECDAGAQH/AgEB
+MD0GA1UdHwQ2MDQwMqAwoC6GLGh0dHA6Ly93d3cucGFzc3BvcnQuZ292LmdyL2Nz
+Y2EtZXJwL2NzY2EuY3JsMIIBvgYDVR0gBIIBtTCCAbEwggGtBgwrBgEEAapsAQpj
+AQAwggGbMIIBXAYIKwYBBQUHAgIwggFOHoIBSgBUAGgAaQBzACAAQwBlAHIAdABp
+AGYAaQBjAGEAdABlACAAaQBzACAAZwBvAHYAZQByAG4AZQBkACAAYgB5ACAAdABo
+AGUAIAByAGUAZgBlAHIAcgBlAGQAIABQAG8AbABpAGMAaQBlAHMAIABhAG4AZAAg
+AHQAaABlACAAQwBlAHIAdABpAGYAaQBjAGEAdABpAG8AbgAgAFAAcgBhAGMAdABp
+AGMAZQAgAFMAdABhAHQAZQBtAGUAbgB0ACAAbwBmACAAdABoAGUAIABHAHIAZQBl
+AGsAIABDAFMAQwBBAC0AZQBSAFAALAAgAHcAaABpAGMAaAAgAGYAbwByAG0AIABh
+AG4AIABpAG4AdABlAGcAcgBhAGwAIABwAGEAcgB0ACAAbwBmACAAdABoAGUAIABD
+AGUAcgB0AGkAZgBpAGMAYQB0AGUALjA5BggrBgEFBQcCARYtaHR0cDovL3d3dy5w
+YXNzcG9ydC5nb3YuZ3IvY3NjYS1lcnAvcG9saWNpZXMvMA0GCSqGSIb3DQEBCwUA
+A4ICAQBUX2wx3TAAPUuAyPulPeJ9AH05OyEl04iTAm68ESTqzEy/cpR0rpsgLo6Z
+psOrlwTbq0y3vF3ETgSIbwRrS29sq9rHFqg9MC0eFC8lBEuMlJC9udhA0EzPMqmn
+EpGV4iAGTjyVlo+83zg+MW8mj6eU6TckledK3CTlr4D7utBEsP6X6g0+ycc8ZSal
+Q7QK45Uc0f+wU3lO0+arjBoRQkz7FvgEWUg6SERGXnvcZZ2+NthBvMvOor2Pq45P
+7w6Je4URyf9oN13KeBAwXLWEBzqBRJc3SztlCMb7O/shDWjdUvp9Y8S2KAkwXqIx
+nm+P2WiUyoJbP8z9+NOeZ86m0th/h6Vanz1toy4wXxJwwcBFYYk8B/MEyFow/QYo
+2Ura7ih0Tvj9u9E6YMnz8OthC8x13sJmdX802fAza9gDlIzQlq+0lDlMIAAPhUA0
+obTuftQ8ijU6wXwNE7R7d4XrZEBRLwpNNFOrLddnJfAKgzzCh7xDXC0RvIKZ4Z6t
+005RQda9AMdUcOQKtZqTRA0BTQ9xhwiYHekVU95c0hVXD3Zs7pJtH4Zgp1LhoLD3
+LEFW2Q92eMJhT3s22RZRFrM1++l2QRjFwLLRzrWLZQ4S4aTRzhdtkgFck0PIcUs2
+1/9ffLFCW+vqG7iETS+bNthVJKpukUIhOL4vkGM6IYTj3U9QCg==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIIGzCCBc+gAwIBAgICAPMwQQYJKoZIhvcNAQEKMDSgDzANBglghkgBZQMEAgEF
+AKEcMBoGCSqGSIb3DQEBCDANBglghkgBZQMEAgEFAKIDAgEgMIGHMQswCQYDVQQG
+EwJDTjESMBAGA1UECgwJTWFjYW8gU0FSMScwJQYDVQQLDB5JZGVudGlmaWNhdGlv
+biBTZXJ2aWNlcyBCdXJlYXUxOzA5BgNVBAMMMkNoaW5hIFBhc3Nwb3J0IENvdW50
+cnkgU2lnbmluZyBDZXJ0aWZpY2F0ZSAoTWFjYW8pMB4XDTIyMDcwNzE2MDAwMFoX
+DTQyMDcwODE1NTk1OVowgYcxCzAJBgNVBAYTAkNOMRIwEAYDVQQKDAlNYWNhbyBT
+QVIxJzAlBgNVBAsMHklkZW50aWZpY2F0aW9uIFNlcnZpY2VzIEJ1cmVhdTE7MDkG
+A1UEAwwyQ2hpbmEgUGFzc3BvcnQgQ291bnRyeSBTaWduaW5nIENlcnRpZmljYXRl
+IChNYWNhbykwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCq1rn5Hup5
+wiRZ0ld+K5NDTwSayaZoWLJ/hmM8MjYMUYCWH/pXrhD0WvSi5JcT5Qgoi/lpGX47
+VrkaiMUeqFQEPMOzAjMWNVhk2VPbr7jW8mwO6koU3zI/gGYtfr2CzqJ1OtzuDwY/
+QKaiAdGFiMgQom3m2xoBk8m9Zo7LG6BYso6f3tGm27T4s3iirO/ZX6bwt2Pvp9Nh
+vxyga9eoPZVHN5pYYd7LlauUj5PQ1AB8IvtbcPhTbtDmgUQAxye3uy++cMGJZPnc
+TN85x9S2Ama6i3vGP2J4KDgGdq+4FxHIcty6A/HEwtBy8SrnQQsqoxny5QndV4mP
+VUS1Yg8PLxaKgDor2wdZUWZpu8tguNRrbJpIQYoq2qfHD/1HYV5I1XUH4XzYTqzf
+3OsciP+VNwv45HviBH2pNJshmTBns/IA56Y0477x0ZX0EoEuQdcQkPNt6mcG7kOT
+fjSl6d9lWPu8EDNil2LpJ/fkJBsoa1Qgq4VJQ9XkWWX9EvGU0VQA+DJrQl3mfYxE
+x0gW/c5kPF4SAzKy9VncZTjMOIqFbMD0XFM0uFMv7p+tSStJVxvoBgs61pv3im7c
+sBx8jFekJM4BhixcNpGMRbEHm1YZ9TMODe4pppnwlyrNR2nQ8ubsU43ONrmBAa1T
+H/wErayvsg7UXLUa3ya2Iaq+miwKgJxVDwIDAQABo4ICJTCCAiEwEgYDVR0TAQH/
+BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFInWgC6pUEVzu+W6
+ZXap7BJAsL/2MIG1BgNVHSMEga0wgaqAFInWgC6pUEVzu+W6ZXap7BJAsL/2oYGN
+pIGKMIGHMQswCQYDVQQGEwJDTjESMBAGA1UECgwJTWFjYW8gU0FSMScwJQYDVQQL
+DB5JZGVudGlmaWNhdGlvbiBTZXJ2aWNlcyBCdXJlYXUxOzA5BgNVBAMMMkNoaW5h
+IFBhc3Nwb3J0IENvdW50cnkgU2lnbmluZyBDZXJ0aWZpY2F0ZSAoTWFjYW8pggIA
+8zArBgNVHRAEJDAigA8yMDIyMDcwNzE2MDAwMFqBDzIwMjcwNzA4MTU1OTU5WjA/
+BgNVHREEODA2gRRlcGFzc3BvcnRAZHNpLmdvdi5tb6QeMBwxDDAKBgNVBAcMA0NI
+TjEMMAoGA1UECAwDTUFDMD8GA1UdEgQ4MDaBFGVwYXNzcG9ydEBkc2kuZ292Lm1v
+pB4wHDEMMAoGA1UEBwwDQ0hOMQwwCgYDVQQIDANNQUMwdQYDVR0fBG4wbDA0oDKg
+MIYuaHR0cHM6Ly9wa2Rkb3dubG9hZDEuaWNhby5pbnQvQ1JMcy9DSE5fTUFDLmNy
+bDA0oDKgMIYuaHR0cHM6Ly9wa2Rkb3dubG9hZDIuaWNhby5pbnQvQ1JMcy9DSE5f
+TUFDLmNybDBBBgkqhkiG9w0BAQowNKAPMA0GCWCGSAFlAwQCAQUAoRwwGgYJKoZI
+hvcNAQEIMA0GCWCGSAFlAwQCAQUAogMCASADggIBAAx1wZmDHsIR+DtljHLb9kD3
+Dpi5TZs/hxlBc6gT6B274vBlXvylH/z5zD3YZ2eXtmBpEJPMlkBgjaDVrDmQaEfu
+lOOGE+34OJQMQqLY7CYK7/+/0Jbm5qDMvhb542jX6KD3I2SZxkFMMhAD1tDqNZ0B
+srpGQSgBljepVrgD3RO0K3h8eyFQ//3NKM0ei1UbvGIgEOtUIgwLKowQfwobnwDL
+0nXY7oL7KHLf33OyhUNzQBsx50CtxcJkDbiShhG6IIwQe2qlG7yPUwfJoN2ZzjB9
+8gQLkAszQCwV5gtdmy5vig5dlHDLiFBUonuAA1xtdppKcnTlanwzStIwf+DkdWMy
+hY+W1HOq06cdOkqd+3uEgGqBJwLoOtE01K1gTkon7CfX2hcDbS5bxFryfnnuwlSE
+csJ8/F7Y6olwB5BP1RYihXJMMNv4BzQ1APB4c2H7fyzCi32NhoBjPuTQ5hqnKJE9
+iMSwjaIoopbvLOI1hMTol2raCmpUeMLRvLtR3XIF3/EhRcp2+Qr6RZ+VGUZ3mG7R
+I8QSXkk9JbPtDpv2U0uvt5vKQNW72zbme2uekaBXQppZ0HU93G5LsD5t0fwSFQfW
+99aXHrYQjH0eltAR4A5goZY9YnzZvVtES0c0+mHs632Ao74RyWEBdOtHtBElrfro
+Gpp3Uildet3TRaThHYDG
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIImzCCBoOgAwIBAgICAPcwDQYJKoZIhvcNAQELBQAwcDEKMAgGA1UEBRMBOTEa
+MBgGA1UEChMRSGVsbGVuaWMgUmVwdWJsaWMxFDASBgNVBAMTC0NTQ0EtSEVMTEFT
+MQswCQYDVQQGEwJHUjEjMCEGCSqGSIb3DQEJARYUY3NjYUBwYXNzcG9ydC5nb3Yu
+Z3IwHhcNMjIwODE3MjEwMDAwWhcNMzYxMTE3MjA1OTU5WjBwMQowCAYDVQQFEwE5
+MRowGAYDVQQKExFIZWxsZW5pYyBSZXB1YmxpYzEUMBIGA1UEAxMLQ1NDQS1IRUxM
+QVMxCzAJBgNVBAYTAkdSMSMwIQYJKoZIhvcNAQkBFhRjc2NhQHBhc3Nwb3J0Lmdv
+di5ncjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALDxejKMY/ZSX8E1
+K4BbQ7Ardrjc4aVlAEa5LCg8InXrU79rrO794yeIW9OPEIXydi25FkUvmEv82LQu
+bJUEWbIhDwLweWy95XpUZWLcnO+NFpGIqRJKkSR3i3LK7kmpeUxp9tIJPmYn1b4/
+6QDEtLqE2RaAweHJyOhieGNcY2RHQKT53tojlIUD9NwWEk7iQ7DP4HrDp9kCcgGF
+eVkgPDOmC7IrVVV1gj+MMrS1Tqxdw2cjXU5trL3FFgUrgvFTwv9AIV3YFbUubufk
+888BY0Pg45HCOLuSwbl6CmgNs+5Y3qKn6s0xYQWKz4RqbBQ0J1e63RRsys8lN1tB
+a5FqN3D1bDSamp6JfVSaIBQIPvvsC/A5bqyvRfEWPewz9PN8NlLaMh4rZNm61lYv
+y5Twjd7cVFp9iCIQFRF/Wi1bb4XD6bkvSJ9ph8tzk5Na3dqkCIS9nJP1j5Hm9A8J
+8PrfnkRE/sI4UF/UNt0nUg3tuZEp0RN2CnQVJ2LK6aJmR23Ic309PvTOTC1rP6Pg
+xqJsDzTmC13FU1hFCf4mJF6PXUHZAT9/+O6A9/j6S/FAIt5ZkyxwWCqjy1D0ssUH
+tQ87WmVOsdPuEqsj4lz/gwRD30F4hv21ZFGkPWTz3n/m5kLld8Hk7zHK4n4GzwIR
+bRCw0VtmoF9P79dkLBSeYEYKiM2JAgMBAAGjggM9MIIDOTArBgNVHRAEJDAigA8y
+MDIyMDgxODAwMDAwMFqBDzIwMjYwODE3MjM1OTU5WjAOBgNVHQ8BAf8EBAMCAQYw
+HQYDVR0OBBYEFI37bYzK0ruCb2o9fXClu42A6fN/MB8GA1UdIwQYMBaAFI37bYzK
+0ruCb2o9fXClu42A6fN/MBIGA1UdEwEB/wQIMAYBAf8CAQAwOQYDVR0fBDIwMDAu
+oCygKoYoaHR0cDovL3d3dy5wYXNzcG9ydC5nb3YuZ3IvY3NjYS9jc2NhLmNybDCC
+AbIGA1UdIASCAakwggGlMIIBoQYMKwYBBAGqbAEKYwEAMIIBjzCCAVQGCCsGAQUF
+BwICMIIBRh6CAUIAVABoAGkAcwAgAEMAZQByAHQAaQBmAGkAYwBhAHQAZQAgAGkA
+cwAgAGcAbwB2AGUAcgBuAGUAZAAgAGIAeQAgAHQAaABlACAAcgBlAGYAZQByAHIA
+ZQBkACAAUABvAGwAaQBjAGkAZQBzACAAYQBuAGQAIAB0AGgAZQAgAEMAZQByAHQA
+aQBmAGkAYwBhAHQAaQBvAG4AIABQAHIAYQBjAHQAaQBjAGUAIABTAHQAYQB0AGUA
+bQBlAG4AdAAgAG8AZgAgAHQAaABlACAARwByAGUAZQBrACAAQwBTAEMAQQAsACAA
+dwBoAGkAYwBoACAAZgBvAHIAbQAgAGEAbgAgAGkAbgB0AGUAZwByAGEAbAAgAHAA
+YQByAHQAIABvAGYAIAB0AGgAZQAgAEMAZQByAHQAaQBmAGkAYwBhAHQAZQAuMDUG
+CCsGAQUFBwIBFilodHRwOi8vd3d3LnBhc3Nwb3J0Lmdvdi5nci9jc2NhL3BvbGlj
+aWVzLzANBgdngQgBAQYBBAIFADBSBgNVHRIESzBJgRRjc2NhQHBhc3Nwb3J0Lmdv
+di5ncoYgaHR0cDovL3d3dy5wYXNzcG9ydC5nb3YuZ3IvY3NjYS+kDzANMQswCQYD
+VQQHDAJHUjBSBgNVHREESzBJgRRjc2NhQHBhc3Nwb3J0Lmdvdi5ncoYgaHR0cDov
+L3d3dy5wYXNzcG9ydC5nb3YuZ3IvY3NjYS+kDzANMQswCQYDVQQHDAJHUjANBgkq
+hkiG9w0BAQsFAAOCAgEAYqTjzevRiWxrn6Xhpgw0Ha89bu/yMyxRvVTEKiPEstvB
+s/e7PcSit3ofEPvyVFFdjUP6AnwDxIxQdtfCC/eW9SJBoT95bUyE3vVpPyXNruO8
+j34TWU7O8toePF4mBFHZZVuUNwHUo2XBHrVHbiNu0x5PJ96RWA2fx2G/IOUZveM6
+uWlZ/okaJ24fOj9zievdWd2tWqZJIkwtdDwplgLKfcAAipRAnd2FQxiSWgtxxWlv
+Y6PGgTaAlE6Xlyp/hhUmIQ2HrYULn/OEnAy0tTi4b7qUylkaMlVyA9mizhCzjUSS
+pWH+DPhLLIf1Q3uRdSIY301Gqq5ONO66gVcve0d4JK3FQbP5hI5Pv7ZUlxGU8DYX
+A1bGLWK1IyU6+TvZkV4qzVYrz9/2dpb9k4KqS2s91/BxTGLI1MAX48a1gGr8wSGU
+UwRbifZve2x7A72xi+4ssjZbhiES82dsDAF2IatosUvxuGdV7NWNwQ6mSTzvqWCq
+L8f0t4SkXnPfBKaeo3woRaSPzQLiawvYeEHlkW8MHULevCTxoq1GcL9EAOFTU4zK
+LtdI/TgHhKRMLGcy1WFcAdj6/qDNexGTdOxZ89hZdU22+EVC1/c0HjLkp3v6CF4o
+zkJNdBEHwBSJmhxFs/LFHyi23Eoe/Wqafr98YLbhGKFGCgKcpBfPWCrZK2LXYKM=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICljCCAjygAwIBAgICJ1swCwYHKoZIzj0EAQUAMEMxCzAJBgNVBAYTAkxUMRcw
+FQYDVQQKDA5BRElDIHVuZGVyIE1vSTENMAsGA1UEAwwEQ1NDQTEMMAoGA1UEBRMD
+MDAyMB4XDTE0MTEwNzE3MDAwMFoXDTI4MDcwNzE2MDAwMFowQzELMAkGA1UEBhMC
+TFQxFzAVBgNVBAoMDkFESUMgdW5kZXIgTW9JMQ0wCwYDVQQDDARDU0NBMQwwCgYD
+VQQFEwMwMDMwggEzMIHsBgcqhkjOPQIBMIHgAgEBMCwGByqGSM49AQECIQCp+1fb
+oe6pvD5mCpCdg41ybjv2I9UmICggE0gdH25TdzBEBCB9Wgl1/CwwV+72dTBBev/n
++4BVwSbcXGzpSktE8zC12QQgJtxcbOlKS0TzMLXZu9d8v5WEFilc9+HOa8zcGP+M
+B7YEQQSL0q65y35XyyxLSC/8gbevud4n4eO9I8I6RFO9ms4yYlR++DXD2sT9l/hG
+GhRhHcnCd0UTLe2OVFwdVMcvBGmXAiEAqftX26Huqbw+ZgqQnYONcYw5eqO1Yab3
+kB4OgpdIVqcCAQEDQgAELX+Bpegt/csaktDAp0eDH/HCIaiw9/vSHU9qpgVWYLsZ
+rmUB40RBAMFjKAb0bwDDsbt2lTMcdsvpwTLlIlqwfqNDMEEwEgYDVR0TAQH/BAgw
+BgEB/wIBATAbBgNVHQ4EFLXiPTuhAqd7d7VbDmrTe46dQ00tMA4GA1UdDwEB/wQE
+AwIBBjALBgcqhkjOPQQBBQADRwAwRAIgQC+neeX6Zodsyxg/Hpg4ESab2OKjProV
+GwbXchXktYoCIHtwrZ3kztheDOGslDL1Z5m5QF+5XiFQKnXqAMZwgNeV
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICljCCAjygAwIBAgICJ2EwCwYHKoZIzj0EAQUAMEMxCzAJBgNVBAYTAkxUMRcw
+FQYDVQQKDA5BRElDIHVuZGVyIE1vSTENMAsGA1UEAwwEQ1NDQTEMMAoGA1UEBRMD
+MDAyMB4XDTE1MDYwNjEwMDAwMFoXDTI5MDIwNjExMDAwMFowQzELMAkGA1UEBhMC
+TFQxFzAVBgNVBAoMDkFESUMgdW5kZXIgTW9JMQ0wCwYDVQQDDARDU0NBMQwwCgYD
+VQQFEwMwMDQwggEzMIHsBgcqhkjOPQIBMIHgAgEBMCwGByqGSM49AQECIQCp+1fb
+oe6pvD5mCpCdg41ybjv2I9UmICggE0gdH25TdzBEBCB9Wgl1/CwwV+72dTBBev/n
++4BVwSbcXGzpSktE8zC12QQgJtxcbOlKS0TzMLXZu9d8v5WEFilc9+HOa8zcGP+M
+B7YEQQSL0q65y35XyyxLSC/8gbevud4n4eO9I8I6RFO9ms4yYlR++DXD2sT9l/hG
+GhRhHcnCd0UTLe2OVFwdVMcvBGmXAiEAqftX26Huqbw+ZgqQnYONcYw5eqO1Yab3
+kB4OgpdIVqcCAQEDQgAEgDXw5TsxtdZ4wGpqt+W9/EjOTDhD4BdKDzARs570VVVD
+Fq1myy4ptRGfWns8W4BYUSjXPLvxXY+OQNxUvMAxvKNDMEEwEgYDVR0TAQH/BAgw
+BgEB/wIBATAbBgNVHQ4EFI+9yu7WaQYyeCdXtByAxR1zIDdXMA4GA1UdDwEB/wQE
+AwIBBjALBgcqhkjOPQQBBQADRwAwRAIgBoxKs+ZOsIH/32RMYpp2Lm7bdhnjeq5c
+CgspOpRB9/4CIECksSGeZpuSRl5/YNT7YpFyrlG1Tcqdrgrobu1m2MuK
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIClzCCAjygAwIBAgICJ0gwCwYHKoZIzj0EAQUAMEMxCzAJBgNVBAYTAkxUMRcw
+FQYDVQQKDA5BRElDIHVuZGVyIE1PSTENMAsGA1UEAwwEQ1NDQTEMMAoGA1UEBRMD
+MDAxMB4XDTExMDMxMDE1MzAwMFoXDTI0MTExMDE1MzAwMFowQzELMAkGA1UEBhMC
+TFQxFzAVBgNVBAoMDkFESUMgdW5kZXIgTW9JMQ0wCwYDVQQDDARDU0NBMQwwCgYD
+VQQFEwMwMDIwggEzMIHsBgcqhkjOPQIBMIHgAgEBMCwGByqGSM49AQECIQCp+1fb
+oe6pvD5mCpCdg41ybjv2I9UmICggE0gdH25TdzBEBCB9Wgl1/CwwV+72dTBBev/n
++4BVwSbcXGzpSktE8zC12QQgJtxcbOlKS0TzMLXZu9d8v5WEFilc9+HOa8zcGP+M
+B7YEQQSL0q65y35XyyxLSC/8gbevud4n4eO9I8I6RFO9ms4yYlR++DXD2sT9l/hG
+GhRhHcnCd0UTLe2OVFwdVMcvBGmXAiEAqftX26Huqbw+ZgqQnYONcYw5eqO1Yab3
+kB4OgpdIVqcCAQEDQgAEINgHC7WdEbTtUXBQE2AmniAtslzgGT/TKB9+6LtTysow
+kCnTJQn7wkfTxl2rIwGtsfUsXI/B4ZQ2EpY9FH6My6NDMEEwEgYDVR0TAQH/BAgw
+BgEB/wIBATAbBgNVHQ4EFCXrkJL4XubnPkdYpoecHJ8CcfMFMA4GA1UdDwEB/wQE
+AwIBBjALBgcqhkjOPQQBBQADSAAwRQIhAIPaaZNui7GAdmJZIqGagkJQ0R0StXOg
+PhGudhuvp9LXAiA3bbAohV8AhHjx94/jPyCZNhMkCF1Sh1iEZs5yiH1IQg==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDATCCAemgAwIBAgIQM0gfpfWeKIlFGfuX8qWnDjANBgkqhkiG9w0BAQUFADAT
+MREwDwYDVQQDEwhSU00tQ1NDQTAeFw0xNDAyMTgxNTIwNTlaFw0yNDAyMTgxNTMw
+NTdaMBMxETAPBgNVBAMTCFJTTS1DU0NBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
+MIIBCgKCAQEAoEtDxcW15EbUcLkdqqrr2fVCuA7vfuKZAWg8yV7D+eBFYzZSzExs
+GV9/bGeq8oGDyyawiz4IC9mn5Vi00c13uWr0KN5hklwevW3Rwbo8t1Dxx72GciXU
+dHRXM7mMfoynHuilwInfNuFI6USVT08EJvPgDziAvgKLFcV3RGAGPBtoyly/iRvv
+Q2OuIHb8VWwMyyPsCkOSfdZ0BhRQl2qNAHbKdMwXGViNc1XFwDQAiEfw+4AuEqGL
+DBsZIDlFzy8ekfPebde/Rh9UXtawF32ijKTeYEZ2p5wg/s4Zo5oAoLYpwiehTk2c
+TGjL5qorQuss+KoP1NkdvDeRQbyRyVFe4wIDAQABo1EwTzALBgNVHQ8EBAMCAYYw
+DwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUBkKyS40ajJBiGrki4QDxccnUrIUw
+EAYJKwYBBAGCNxUBBAMCAQAwDQYJKoZIhvcNAQEFBQADggEBABqiZVrUtD/+KYX8
+ym3Anzf1fCFjpaKL9CF6ZNhdC5AIi8rkYRX+P88Wijt+NP1Cq2Rhn9DWqLtWv0lX
+Wwvv5xDZ/3fo4HBmbrw20IlDapRqN+DUZaKoypouIo5BhILo7T+y/EV2SK1WyoON
+6UWu34n1qww05ENuimmAzzILzl4YcCrrt6cAcAFZxoPYmBBsHSuyjkxpknzgcNJA
+MZZWm1f4Vn4Gnf+uwnxjQNY/xZ3SZ/crSNOLp2lzUwsk6NBScL08KTcp9PCtfLj1
+j8YizM8Rq5Gqs6q6FRlveSdMZK/jkZevyvaLl2tEINveZvgnh8Yu+YIGS3Z9bALt
+z6VKLPQ=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDFDCCArqgAwIBAgIBATALBgcqhkjOPQQBBQAwQzElMCMGA1UEAxMcQ291bnRy
+eSBTaWduaW5nIENBIExpdGh1YW5pYTEMMAoGA1UEBhMDTFRVMQwwCgYDVQQFEwMw
+MDEwHhcNMDYwODE2MjIwMDAwWhcNMTcwODE2MjE1OTU5WjBDMSUwIwYDVQQDExxD
+b3VudHJ5IFNpZ25pbmcgQ0EgTGl0aHVhbmlhMQwwCgYDVQQGEwNMVFUxDDAKBgNV
+BAUTAzAwMTCCATMwgewGByqGSM49AgEwgeACAQEwLAYHKoZIzj0BAQIhAKn7V9uh
+7qm8PmYKkJ2DjXJuO/Yj1SYgKCATSB0fblN3MEQEIH1aCXX8LDBX7vZ1MEF6/+f7
+gFXBJtxcbOlKS0TzMLXZBCAm3Fxs6UpLRPMwtdm713y/lYQWKVz34c5rzNwY/4wH
+tgRBBIvSrrnLflfLLEtIL/yBt6+53ifh470jwjpEU72azjJiVH74NcPaxP2X+EYa
+FGEdycJ3RRMt7Y5UXB1Uxy8EaZcCIQCp+1fboe6pvD5mCpCdg41xjDl6o7VhpveQ
+Hg6Cl0hWpwIBAQNCAAQKORiXBzGDYcfgibSUwDvMoC9fR+0cnsmCkkxaTDrRE0TL
+SZr/NuArhT8wSw1YfF+XBnJ4tm2arxa8CPaUPcmHo4HBMIG+MA4GA1UdDwEB/wQE
+AwIBBjArBgNVHRAEJDAigA8yMDA2MDgxNzAwMDAwMFqBDzIwMDcwMzAxMjM1OTU5
+WjArBgNVHREEJDAigQxpbmZvQGNzY2EubHSGEmh0dHA6Ly93d3cuY3NjYS5sdDAS
+BgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBSpCihKlbJ3oEZhQ9+8RU9zfTna
+aTAfBgNVHSMEGDAWgBSpCihKlbJ3oEZhQ9+8RU9zfTnaaTALBgcqhkjOPQQBBQAD
+RwAwRAIgTAa0SnYB4kSC2VA5gvu+GY05iFH8xVa7QJKCkmSGJsYCIDHERan+BcyE
+zL3IosSsyWyCQNsgzpdvXgJWUBhm1Tfi
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDdzCCAl+gAwIBAgIDAKStMA0GCSqGSIb3DQEBBQUAMEoxCzAJBgNVBAYTAlNN
+MQwwCgYDVQQKDANSU00xGjAYBgNVBAsMEUNPVU5UUlkgU0lHTkVSIENBMREwDwYD
+VQQDDAhSU00gQ1NDQTAeFw0xOTA4MDUxMzM5MjNaFw0zOTA4MDExMzM5MjNaMEox
+CzAJBgNVBAYTAlNNMQwwCgYDVQQKDANSU00xGjAYBgNVBAsMEUNPVU5UUlkgU0lH
+TkVSIENBMREwDwYDVQQDDAhSU00gQ1NDQTCCASIwDQYJKoZIhvcNAQEBBQADggEP
+ADCCAQoCggEBAKAvv9AlgcdidjF6nht1U2lQVC0NneYuY6/aEv1MxQCcfXtXNemu
+xZJNpGyaG3lOQdyRyw4BxesVeJpmiYwVMdm6x+CL1wVeZOKwj0tzJ5XvXqGvL51x
+SXn6Yw6miSRxyo3rA0hacktWE5IB8vytzWHFmJlwaRrcZOTgv7P4nFsGYFwwTXCU
+UJynZpR3HHrs8MVX0IsdYuF111RbGEKxhTthm0Qiqp6/qj246Rs2dU0cPgyKA8Kd
+j+FDLHtWKqMBSsmmxfozsFs7Romj+lR3gwyetAds852tg8343E0o/A2J8uv/YfoS
+l6SI39UWMbU747ZUtSjulQmafzzGwdIuUkECAwEAAaNmMGQwHQYDVR0OBBYEFKH6
+GlgdbPy9BwLQtoWH/rgWtb/GMB8GA1UdIwQYMBaAFKH6GlgdbPy9BwLQtoWH/rgW
+tb/GMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/AgEAMA0GCSqGSIb3
+DQEBBQUAA4IBAQBnslvLaIOqI/sF6p12alu+bGgbaVEjnCCreBPmYWms+8xpUI8N
+icuBHmbIflz4tYuRV3f6fqM4w7kqEee3SjZvj4riLh76SRg06iBSoKSdpeVQ6ppa
+w7kP+VfEDY+twx5I9rY2Gsmj4oN40Pk/XF/rNXr9I5Une4Up/VvguC4kkjty05KC
+jBCD9UTcRrAnw6cHFUsl/ETEPYVeBEaJMapjoXzEmEiqz/Riu0hbs7CF/bYKsrbU
+Y8crde8AAIGZ9HL3+TA1sOgDfrTttjJ1hRLTn2nkWkLdcWHAAYwtvha7nIiUk0nA
+JNuscJOv/X9lvQaq3ngF3YSkj1AJhRATVa0A
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDfjCCAyOgAwIBAgICAS4wCwYHKoZIzj0EAQUAME8xCzAJBgNVBAYTAkRFMQ0w
+CwYDVQQKDARidW5kMQwwCgYDVQQLDANic2kxDDAKBgNVBAUTAzAwMTEVMBMGA1UE
+AwwMY3NjYS1nZXJtYW55MB4XDTA4MDMyNTEzNDkwN1oXDTExMDIyNjEyNDQyNVow
+TzELMAkGA1UEBhMCREUxDTALBgNVBAoMBGJ1bmQxDDAKBgNVBAsMA2JzaTEMMAoG
+A1UEBRMDMDEzMRUwEwYDVQQDDAxjc2NhLWdlcm1hbnkwggEzMIHsBgcqhkjOPQIB
+MIHgAgEBMCwGByqGSM49AQECIQCp+1fboe6pvD5mCpCdg41ybjv2I9UmICggE0gd
+H25TdzBEBCB9Wgl1/CwwV+72dTBBev/n+4BVwSbcXGzpSktE8zC12QQgJtxcbOlK
+S0TzMLXZu9d8v5WEFilc9+HOa8zcGP+MB7YEQQSL0q65y35XyyxLSC/8gbevud4n
+4eO9I8I6RFO9ms4yYlR++DXD2sT9l/hGGhRhHcnCd0UTLe2OVFwdVMcvBGmXAiEA
+qftX26Huqbw+ZgqQnYONcYw5eqO1Yab3kB4OgpdIVqcCAQEDQgAESpRJgXed3x2l
+58Un4n0kcako6017Z3WuCQpRRRmb1H6ggeVe1KQ/YHxqUO42QYqH/82mEDnKlXZ9
+rsrDRD/jLKOCARAwggEMMDYGA1UdEQQvMC2BGGNzY2EtZ2VybWFueUBic2kuYnVu
+ZC5kZYYRZmF4Ois0OTIyODk1ODI3MjIwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQW
+BBRgRPJF8uBx1NVk9OV31jZp2+sYWTAfBgNVHSMEGDAWgBRufr6FmOePobBhphJ0
+qE+e0i7fxzBBBgNVHSAEOjA4MDYGCQQAfwAHAwEBATApMCcGCCsGAQUFBwIBFhto
+dHRwOi8vd3d3LmJzaS5idW5kLmRlL2NzY2EwEgYDVR0TAQH/BAgwBgEB/wIBADAr
+BgNVHRAEJDAigA8yMDA4MDMyNTEzNDkwN1qBDzIwMjEwODI2MTI0NDI1WjALBgcq
+hkjOPQQBBQADSAAwRQIgBaHFejw9nAQcqDkg5stHwXIw6rcmh1NY5B8uJh0/MbIC
+IQCcChlzjtuNJ6vcFAwVzevseDvoxxTcUi0fIGI5hxTrsQ==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDzzCCA3egAwIBAgIJAKKt/h1Bz4NdMAkGByqGSM49BAEweTELMAkGA1UEBhMC
+UlUxDzANBgNVBAcTBk1vc2NvdzESMBAGA1UEChMJU1RDIEF0bGFzMQwwCgYDVQQL
+EwNTWkQxGTAXBgNVBAMTEElseWEgTGVvc2hrZXZpY2gxHDAaBgkqhkiG9w0BCQEW
+DXN6ZEBzdGNuZXQucnUwHhcNMDYwNjE0MTEzNDU2WhcNMTYwNjE0MTEzNDU2WjB5
+MQswCQYDVQQGEwJSVTEPMA0GA1UEBxMGTW9zY293MRIwEAYDVQQKEwlTVEMgQXRs
+YXMxDDAKBgNVBAsTA1NaRDEZMBcGA1UEAxMQSWx5YSBMZW9zaGtldmljaDEcMBoG
+CSqGSIb3DQEJARYNc3pkQHN0Y25ldC5ydTCCAUswggEDBgcqhkjOPQIBMIH3AgEB
+MCwGByqGSM49AQECIQD/////AAAAAQAAAAAAAAAAAAAAAP///////////////zBb
+BCD/////AAAAAQAAAAAAAAAAAAAAAP///////////////AQgWsY12Ko6k+ez671V
+dpiGvGUdBrDMU7D2O848PifSYEsDFQTEnTYIhucEk2pmeOETnSa3gZ9+kARBBGsX
+0fLhLEJH+Lzm5WOkQPJ3A32BLeszoPShOUXYmMKWT+NC4v4af5uO5+tKfA+eFivO
+M1drMV7Oy7ZAaDe/UfUCIQD/////AAAAAP//////////vOb6racXnoTzucrC/GMl
+UQIBAQNCAAS3RJNvWLs/ot/Nu7sGVOaez+/eV/pfnw6EZ2sKhIKNXtpltI4fxNX7
+HhL2tZKTCA4rOaPYEqy3etoWMsNfhGaZo4H0MIHxMB0GA1UdDgQWBBTyC6Tyq77u
+XmQ1k+w1OqtoFZ8nhjCBqwYDVR0jBIGjMIGggBTyC6Tyq77uXmQ1k+w1OqtoFZ8n
+hqF9pHsweTELMAkGA1UEBhMCUlUxDzANBgNVBAcTBk1vc2NvdzESMBAGA1UEChMJ
+U1RDIEF0bGFzMQwwCgYDVQQLEwNTWkQxGTAXBgNVBAMTEElseWEgTGVvc2hrZXZp
+Y2gxHDAaBgkqhkiG9w0BCQEWDXN6ZEBzdGNuZXQucnWCCQCirf4dQc+DXTASBgNV
+HRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAJBgcqhkjOPQQBA0cAMEQC
+IFeZnz4z9F0ULu5uSFbfCFpGBKXO+s56aCt0HR5BeFmbAiAaxhras4nYS9MbPRka
+c8LzGJj2+zEwJUa+ecxePVAMmw==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEATCCA6agAwIBAgICAWAwDAYIKoZIzj0EAwIFADBPMQswCQYDVQQGEwJERTEN
+MAsGA1UECgwEYnVuZDEMMAoGA1UECwwDYnNpMQwwCgYDVQQFEwMwMTMxFTATBgNV
+BAMMDGNzY2EtZ2VybWFueTAeFw0xMTAxMTcxNzU3MDhaFw0yMTA4MjYxMjM1NTZa
+ME8xCzAJBgNVBAYTAkRFMQ0wCwYDVQQKDARidW5kMQwwCgYDVQQLDANic2kxDDAK
+BgNVBAUTAzEwMDEVMBMGA1UEAwwMY3NjYS1nZXJtYW55MIIBtTCCAU0GByqGSM49
+AgEwggFAAgEBMDwGByqGSM49AQECMQCMuR6CozhtKA9db35Q5kHfFS9xCe1UVrQS
+sdoZf7cRI6zTpymQHRpxh0cAEzEH7FMwZAQwe8OCxj2MFQw8cggKzgWvoMK+oo5P
+sieHE5Fl77qR+Q+KpYFKUDrU6wSox90izigmBDAEqMfdIs4oJos5tVQW8ER8L7d9
+4Qfc0qYuiA6lPuti1Xy0OQKV28mUOreGlvpQTBEEYQQdHGTwaM9F/6KmOoG3wT9r
+iEej537xT+Pbf8r+DL0Q6Ogm4DQ21kaq74ey4kfUrx6Kvh11IPnCpFyx646Vz9VS
+YrcLKf7sWGThnAVP+ZEpKA5GRiF3kYERQoIDQSY8UxUCMQCMuR6CozhtKA9db35Q
+5kHfFS9xCe1UVrMfFm5srAQlp886tq9rf8MQO4gyAukEZWUCAQEDYgAEXRVISEwi
+katMRXAd9/ALIE/7cj9eUFWH5+3NzWJpVOWfxfv2QYgAB+cQaBCmPaFkZOvQMyxk
+zpCTrrrU9KiR26YFuFfPD2/mbwPmbRQe34uVKph4KnBONjGo8tiU9XTmo4IBEDCC
+AQwwNgYDVR0RBC8wLYEYY3NjYS1nZXJtYW55QGJzaS5idW5kLmRlhhFmYXg6KzQ5
+MjI4OTU4MjcyMjAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFON2rmYS/nqB5nIs
+UThb2INJD8OiMB8GA1UdIwQYMBaAFGBE8kXy4HHU1WT05XfWNmnb6xhZMEEGA1Ud
+IAQ6MDgwNgYJBAB/AAcDAQEBMCkwJwYIKwYBBQUHAgEWG2h0dHA6Ly93d3cuYnNp
+LmJ1bmQuZGUvY3NjYTASBgNVHRMBAf8ECDAGAQH/AgEAMCsGA1UdEAQkMCKADzIw
+MTEwMTE3MTc1NzA4WoEPMjAxNDAxMTcxMzMyMTZaMAwGCCqGSM49BAMCBQADRwAw
+RAIgG8USDJB3yVRSSsIN3or2Jafw6DohJn1na3k0Dtg2zEcCIBh0B76tBN9jwthT
+vzCE6u0Ykw4PxMyXlg3R84Rqpr5P
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFFTCCA0mgAwIBAgIBOzBBBgkqhkiG9w0BAQowNKAPMA0GCWCGSAFlAwQCAQUA
+oRwwGgYJKoZIhvcNAQEIMA0GCWCGSAFlAwQCAQUAogMCASAwVzELMAkGA1UEBhMC
+Q1oxFzAVBgNVBAoTDkN6ZWNoIFJlcHVibGljMR0wGwYDVQQLExRNaW5pc3RyeSBv
+ZiBJbnRlcmlvcjEQMA4GA1UEAxQHQ1NDQV9DWjAeFw0wOTAxMTMwMDAwMDBaFw0y
+MTEwMjQyMzU5NTlaMFcxCzAJBgNVBAYTAkNaMRcwFQYDVQQKEw5DemVjaCBSZXB1
+YmxpYzEdMBsGA1UECxMUTWluaXN0cnkgb2YgSW50ZXJpb3IxEDAOBgNVBAMUB0NT
+Q0FfQ1owggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQCkpr7fpZae5WRx
+FPPmEMq4IseyEJjmFWzgc8ym2lEej5q2ob0dpk7WsFmCJMmG7xATsHnFQal4ZL6x
+PW3mOpCjWEjwi69ZlxuWZx+RUxTrYNr7GeAZnFogfWBwPdASvrPBzqF+zUAMYCaq
+SJDqxcMR/yeSh9LnVBDQrve3xLxjoQZ+/EkDGsZjkyOx2jAsH0DVm06QDF1wpS6W
+FHxph6iifM0c8gQ0X+RJdNxm/5czHCqCwbvH8h39M0D1S/0ME3FfGoLe33ROOoDM
+6iyGTfe397zWhmclSlGXcFSaK536+8tZuMl4SimY86oItOgrpMep3lbt1LqzbbV3
+/Tzaf3pKDbtFGHn8+r3FH927g6kdUhtQFmFQSMe6Dk02F35h9Ji69Qq/ZWvxv7fF
+m+EjbigUTONmFVxFM2EJHW5ysDXtqQeqatkCH/bpY2CaZpGLvE785kc8sMVEWS57
+gbju+imKqjDprU0CJ+VmYO3/T0VT4h6/wF7hPVVeJrZcyOG/pL0CAwEAAaOBgzCB
+gDAfBgNVHSMEGDAWgBS0gZn17JDaPw1vnzp95+DBdZSWLDAdBgNVHQ4EFgQUt3iX
+GYCCeBtZDErp+ISwi/YCQIgwDgYDVR0PAQH/BAQDAgEGMBoGA1UdIAQTMBEwDwYN
+KoFLtxgBAQEBicqZfDASBgNVHRMBAf8ECDAGAQH/AgEAMEEGCSqGSIb3DQEBCjA0
+oA8wDQYJYIZIAWUDBAIBBQChHDAaBgkqhkiG9w0BAQgwDQYJYIZIAWUDBAIBBQCi
+AwIBIAOCAYEAOhnPf21WrfiaKeOScQOGIDDXvkGYwmlNRqJbuw5echZnf4SnDNDb
+trQ2QuV5JCq6wOl6ZV1lhPBVBEk2Dx7NYr/689EDeXMg1eA051kCWzcZEU0ho3AL
+vTY8luVh5OzwkZ3sLQeyRmId6TmubtAb34MPkafP8KGayYG7UZ3H5KAWQT/ne5WL
+3nVYyaPaqIjAQOzbSJ3ZCldPI2qpaWcmXNu2t3k5DVBkDCZQ7K0GgkyojdSj99Jr
+7PfmgDGcR/2B660sru4S3eyx9xAVMip1CfnPSkzI0uDBePldAEi5BisPYKm1NlnO
+0rlgJaknSwEV8cLJBj8wjmfPN+JNU2kSYIuad9KiPypPC0kOPb5DMlY5GwoW1b3L
+L4sf09MU3p9F7uWyHgeCJYVnMrpcaH3pprXgsu3+gMAUS/IvC4TIqfGPfSn6cK9C
+7i3eMgicGhINEr5RK9U1Qgnc+feaNJtqtWo/trk8D7jsUAqYf3qOwCBMFPIo22SA
+oe9h7nS3yQxN
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFmjCCA4KgAwIBAgIMEF1/elp90uRtaO0KMA0GCSqGSIb3DQEBBQUAMEAxCzAJ
+BgNVBAYTAkhVMQwwCgYDVQQKEwNHT1YxDDAKBgNVBAsTA0NSTzEVMBMGA1UEAxMM
+Q1NDQS1IVU5HQVJZMB4XDTA5MDgxMzA5MTkwNFoXDTE5MTEyNTA4MjUwMFowQjEL
+MAkGA1UEBhMCSFUxDDAKBgNVBAoMA0dPVjEMMAoGA1UECwwDQ1JPMRcwFQYDVQQD
+DA5DU0NBLUhVTkdBUlkgMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
+AMEu6hzbxI+Pbl3A8QLlSJphHLwz/da7h8jUw1zD80pTACZ0jC1U/E+3NUNnokvx
+lPcg1QCiABaYKZkuZb690NWM4UuYoxv83mKDJXJl2ua/M/pVRTlBvhG8cmPCzhFT
+D/HCOd3r1Ob/L4goeONQzTAw8cfcAbHg8h8vmIoJB+PMfXGUKt26mmYRLt5A/e/P
+CC61nGlwqVCT+7f5tOCiNNgfQkME7ZdkTU4gWLIcJelbvRXPyBS5qjTUY/K0ocn9
+s9R17ue6SU9tXZLB6SjwpNowU4Pd3jx6uuXZ4KQwp/BOXPsZTWhmu1O1EXXj6JF2
+H5gL5CiuO2VuAwoF21tgi2Kd94x2OKTbrV1zxfwyHWe1+yums1huxKFBRjr0gtlX
+cYYl+GQRwC9COTKmsyZfyRrGl/Ymm4x9PLo3JLMEkz1PpOj6tMMjQUgcXfWg57un
+0emL99TDTcX62tbhGKjiW/4AyrY49K+YuphRCZSEc5APe+JKkS80ksJ0QSURrtaK
+f4JIHlwaMjcgksFcNxZqOcRyIS0BBNeIZkHoXCA26BS8oxN2zBtQrfTRo7VnRxYM
+M9M9RNtTQojjpbEfjS0GLzKHl7DKWYVfnR64NwKkVXim5SMlR/fexZqQd+/fDNUS
+1a8rHOH28YxUIM+Zm6Z5Og8WMNT5h+1dznzWEfcGRCYNAgMBAAGjgZEwgY4wDwYD
+VR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFPmnrmsegMC/
+JBanHHvW0kN2vPsMMB8GA1UdIwQYMBaAFNEj0ErXeRPRUQHppNOQWZ8Qnb8NMCsG
+A1UdEAQkMCKADzIwMDkwODA3MDkxNDAwWoEPMjAxMjA4MDcwOTE0MDBaMA0GCSqG
+SIb3DQEBBQUAA4ICAQAhD0YTNz99dcBQnjfbr1WEQTM5RNvHxeDUTRCwkoehWkMT
+Ik8u51ThrcHvplhMNOap8ixYCBuCneTFGE1KRLjYTH9GN3xAUxsjIsWHRvBduvK6
+19HQfu9nKudODSykatwcgdRJJLcUYUj7LFzeDxEaYJiClFHKRlBYGnIhP2TT5/kz
+lG5xtmRI8QFCI7kSo2IBBmaLqM005dAD3kyjmJzcsT+yKgoElCn2mbA1LI7Aajle
+I72Ywtl+Y2NZaSGaA2Dz66kvOe6lzCtu1euVPCI2191ReKLvUcuIsHwK0/G/nRLF
+bBpitQZzsA1IR+RijeyYQieHaxCfm6e4cO6IawH3V5ynSpTFv3YEDBvHGutiUSCI
+RcxD/TZj29RhzjffCJRAFO3fZe+xkxskLeNZYtZs23genG7ok8F/4QYX/aCIQxvW
+RUdb4FH0PNpYyjDteHU42nZwCPnTl7ZX5caFJB5opyR4XnmgRGenyNUGr2xPwgwx
+211rwcXBpS5gaq6nitYaPuSAsW18apdwu3cMB3P65aZPgTK/7HK5cjfanLPE3AWL
+epR1Iso4b6b5pYf86WBmKB8aomFXw7Mmm+SdiHvf1AdS5AkzVKhfZUE2m1Hi7oPI
+V1tPATWMRFNDQTZTNsRigrqE8axsQFCOp+MTTrrciEc7QgGwtIplgZ+7LaZuaQ==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFnDCCA4SgAwIBAgIMEa3WECLSULpE4HgKMA0GCSqGSIb3DQEBBQUAMEIxCzAJ
+BgNVBAYTAkhVMQwwCgYDVQQKEwNHT1YxDDAKBgNVBAsTA0NSTzEXMBUGA1UEAxMO
+Q1NDQS1IVU5HQVJZIDIwHhcNMTIwODAyMDY0OTU0WhcNMTkxMTI1MDgyNTAwWjBC
+MQswCQYDVQQGEwJIVTEMMAoGA1UECgwDR09WMQwwCgYDVQQLDANDUk8xFzAVBgNV
+BAMMDkNTQ0EtSFVOR0FSWSAzMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKC
+AgEArzkLLIEOqV3Cjj1mf170aEOxWCOnoWa3YFOp9l32b1oMWqAcxKRUYyrClba7
+/XM8BiahXNjNxUnZ9uR9y1ZFPkV6xntU06O0rUx+yq+kus+SW/tnX05iKaqSil4a
+lAfg+DMtK0BhkxlazjlD9YuY5HlcV8ZisYfJ2eep36GdmzIyEBYLZCY4jFGcmD+O
+4z6ciRGKy5ngMrlLFBUOFqZs1UxV5yhbBE7EKQS4OFdrVPqypM/939Mdw/YP9uyg
+xEZ7NK5t0yPy/YjWPU2QeoOxriHk0KUv+WbcBAFewZGSF7UuouMHFcqF9ll9vAi6
+M0wbeo+dx3TBGLfA+3wQXO9I/VcgNcz4wunR1skg8djhhCwNczcNzJNZyvd6vaXb
+tkPwhZS4rTNqihaKoG7PT7qVsz0wOEy9543NNRxqaoegqHIuKVwIr0pgAjbSvduX
+BgrGCBdgQRXy1D2/GPqZ6oNlQ+ycuB0BB6JgNXOTsD4J3a10mrMrFaHovkP00g2f
+5j37pV6ODlCUXv4AWIQhJvNJta93VWgRxwu595cEJx91LUcCoRZt758o6uz/LBkd
+CBLES9XAIa13YLlMI+2KVAo9I1UKrT79qjSYcN/TZR2S3VppWU5m4Og2cPrnZkv9
+z7OhZgRmf0vd6V8N0OfQQNrkTGS7il0gQhXxl1Iw0UGv1OkCAwEAAaOBkTCBjjAP
+BgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUMP4HBcyF
+aBtWbkW/jCsOZCKC7BMwHwYDVR0jBBgwFoAU+aeuax6AwL8kFqcce9bSQ3a8+www
+KwYDVR0QBCQwIoAPMjAxMjA4MDIwNjQ5NTRagQ8yMDE1MDgwMjA2NDk1NFowDQYJ
+KoZIhvcNAQEFBQADggIBAIJ5yR+xKKy27JewUzqoS7M50XFA94+Lm3QQg0t0KuS4
+YSguA5VbS5ODLcFJkM1THLAWRu3I3PIDheqxqqGnT6cNgKqNwGk0qNbCRjM06fFB
+L7WC40pbjB/J10AVbheSCNprrbXHaeLmxDAqE3WplINjbhjrkXqO1Bq3hFqOrC/a
+sZZ/qMeF6jJARo6Ii+Fpblzdz7EnndMR10GHx5F0JAYveqOZ3BDRekNfvZaX0SL2
+UY/UBzCL2tlty3Lt9Tz5zekz7pzSOSNv6hoJJ2aoSByGnHVOafSVC5iiL2Kkuboo
+XjM3OZeKRQi/zyUPRdvX5qnl1psKdJEyAbJWHC2ZK/+Bk0aZhG2o7iMXKrUJU+Cx
+tSpCWBEhWTm/yCaKeg5A/axQpur7oy8JF+YHUw0/KB61yqd/Fmws46Jua+PxTFbc
+Mn/Bh8s+bJ17SJyxjl5lpKgQ8+feiE1ZkQgARLNmIQbwMEHRfDHhFT+DcKj2YeER
+B/HrXtAirwrlewn8vcUtpuwH2lcQ8o7AhsBkINmuwCR85UZFlYRWluk6ocJVKR+L
+0WbdLcaB1p9VQjZ8Q0fiZIxcN04zNHIMelVxCtveFNsUAhrQggvVScbHKltCwyYk
+ecsqkv4eHpducYHKtV9nzCGKwyDhknXtTqlFuMc5FWNswLcLMzZNoFZCNflDJzNn
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFnzCCA4egAwIBAgICATkwDQYJKoZIhvcNAQEFBQAwXTELMAkGA1UEBhMCSVQx
+HzAdBgNVBAoTFk1JTklTVEVSTyBERUxMJ0lOVEVSTk8xCzAJBgNVBAsTAlBFMSAw
+HgYDVQQDExdDRVJUSUZJQ0FUSU9OIEFVVEhPUklUWTAeFw0xMTEyMTQxNjEyMzBa
+Fw0yMjAxMTcxNjEyMzBaMGAxCzAJBgNVBAYTAklUMR8wHQYDVQQKExZNSU5JU1RF
+Uk8gREVMTCdJTlRFUk5PMQswCQYDVQQLEwJQRTEjMCEGA1UEAxMaQ0VSVElGSUNB
+VElPTiBBVVRIT1JJVFkgMDEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC
+AQDGXsPJRlMg3HlQceZTUPOnYMJ0JzKQtr6/AB/ge2U0+0wew8UxRdftGf/BSke3
+HwfPf+zxxz3tbQE6MTfdekkHKt0YcLZtC1idj62jWZnDqohRGe4AhOc5YeaoT9nv
+L/Vpkf5J/KKRKHAJGZJWZTVqLVeeEMdosdwSDjpevf+e66RafJDcsIYfGE3wQLop
+mbTDFr3mm9Nl6tKSrJnsN6BeoMTUs5ErosJOjAOFrx2OIqJ8SRzuQ0YwszJv8u8a
+z/cKdoL5Hpmeq2dJV67uu9fZeq71kx7tkiJHUAtMId24/HmjQ5AUnmYpRbNGghO8
+T09WGcBE0l8F/5/6I8QdS1G59kfrXKqXXWPnmfaBv8UW9TlZmqK9H7MFsgdiTBTB
+XW5CmPXHIQp9xVCKJ0P0tyJlrEnMVp7Lh3XiVF6OvBaCo7/WDLyuoUD5lJbfzbaX
+hu5fdfBddt+jkHJW/5Oe3F4uzdPklBqdsE3ccjTj5A5R4WKksPdBwHymE24RCajk
+Xsv8PA9Zwjq4MAKfsVq1pgIA7mVG/zeSM1wHJ3f4/i3cAsdBb3wsALcy4jRBtTmU
+La0y53Xt/Y5m1YLr9+FrM3flPEjfHV0JOTw8Yr7KDKVPYZQ10ulCvtr5h1Tepm9O
+jqa7DLh5Mcv7FTsGnP5vCiqWXfktswXFNOR8bLIsH/HZYQIDAQABo2YwZDASBgNV
+HRMBAf8ECDAGAQH/AgEBMB0GA1UdDgQWBBSwvzu57OvHIJdMHROlkFoaYTWJoDAf
+BgNVHSMEGDAWgBSg9WVSGAzLzA/9fQ3zn4YEx8mPYjAOBgNVHQ8BAf8EBAMCAQYw
+DQYJKoZIhvcNAQEFBQADggIBALQUbgGRxTjMLeamN22yUfKyxtPLP0ZYWNywj5ES
+GkvRxaWLKMGmxEqOSGUtdlQeAz+le8f+dFIiXT8PMqh75GufZ3pNAfkgSXIV6Ko5
+QyFR5uXPDYP9qq8fhWz68LghON74lTYkJw4PQxMfmmkTXZ7s7LW55bdn00puBulL
+evgVyYcO59fwJBfLBJA2iuvqg1qFgM1g0ywRW8y477MFjl+YLBuKqjFTEw6FMEvO
++edBwCCVMy5pnKk+jrtxqH8hWPixLShQwBYV4yKg4WlaJT8SlTuRD3wzjtF2iNT8
+ons6apXiDXZ0qusqs2hVV7smPDA/kgMIG5iz4J7AceNne3dWGN1FE2WLy2Zd9Vuc
+kahRdrWd3lxRm58eJ+xmi4fTI6cm/6xr34vdomdPUhw7vEIxBQWxMKPsS4kaCwd/
+Ey1Cj1Tal2wGvHbXCzkmkJxhU8fm0vbwGVSfvizHX4vuuWGEnt65uj72SuFArUSn
+wM4XmYOTQ/oBNNwzV2+NB5G1zh8T7X+2mTlWOgPn2YEgqi3QZYrINqRlFSf8QJ4f
+gYEYrVClaX7cP+RvutXeKKE5lw38bSLroH0VAZhOzfT+LI079yW3wCvUgHdEWhK2
+phpnbrfXB9tQ7uiI7tHbIQ7HOO4Afoph+guN6tSlO1pJ8KMwbqulEa4qXeZGyyVq
+x6iB
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFozCCA4ugAwIBAgIERIgx8zANBgkqhkiG9w0BAQsFADBXMQswCQYDVQQGEwJz
+aTEbMBkGA1UECgwSc3RhdGUtaW5zdGl0dXRpb25zMRMwEQYDVQQLDAplLXBhc3Nw
+b3J0MRYwFAYDVQQDDA1DU0NBLVNsb3ZlbmlhMB4XDTEwMTAyNzA3MzMwMloXDTIx
+MDYwODE0MDAzOFowVzELMAkGA1UEBhMCc2kxGzAZBgNVBAoMEnN0YXRlLWluc3Rp
+dHV0aW9uczETMBEGA1UECwwKZS1wYXNzcG9ydDEWMBQGA1UEAwwNQ1NDQS1TbG92
+ZW5pYTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMsSVO/FzJRD7Oee
+2sHwLZ23Fm/FJEKcoEcIPElpAcYccHNcjWBbBzo1myqr2rWkhcTNg5IEOqCOMExV
+F/8K/NRcTDeJ+pfOr1DgSaaIXUJfyzF+bqWznS4ikksHkEMTuMWytgxDY41qFkwx
+BrzXU6iEN4qrh/AnBbdsnOZAlZ9gy12aKNdn+ccuop7Kit7tSEqSyrNdadAv8AYF
+v+UURBMhjOpw6cEduL9gS7E26RVC6N2Sa4wi0xYgFN5kEvtFYXp85a0qUXBg6oMm
+7lXjPq41so7tJ8ccMnL7x1JqBsYVB5+ffyxaVtdpZglxaIYFhf/Uep5RhcAbW/So
+bp8tV5PzUZcc9MqYuy3Y4jAPcIjbAEJ/R6L9UmQn2xDagD4r5iVUP2evRTNOIjG3
+FIe2uHEPyQoL4y119ar8zpbVONAI7z4rMjmiMIgCp2noXpMtquHgw8gRL0OPzALu
+sOMJ4/9KVqC78Gie4j8BUAJJAQQMO6qKcWGa0cybf51MuhC/2bjCf9fy/WPDRSqD
+6UyD4RKAt3+wImvy+eXsaOeO/6Q4KidNSCdJm3s9fbj4yBc3DXiPlJc/BjPwnUr+
+R475Fzrun1OW0Omkp3GX3L/squ0s21d5LvL6AlJHaeeTm5s3hTBE74PDKdsd/u7x
+031LFgm1S/TddqPjD3nV2GJ9W/EnAgMBAAGjdzB1MA4GA1UdDwEB/wQEAwIBBjAS
+BgNVHRMBAf8ECDAGAQH/AgEAMBMGA1UdIwQMMAqACE9baIg26OenMBEGA1UdDgQK
+BAhFwCRYvhCt0zARBglghkgBhvhCAQEEBAMCAAcwFAYDVR0lBA0wCwYJKoZIhvZ9
+B0oDMA0GCSqGSIb3DQEBCwUAA4ICAQBPaOnrntHJ4qQV2OZb/JiovOht7iSdRQNr
+vSscDFqvFQoJAoy/9HutzrEUKCN49gmCraUkLQqXBFUb6uvs0hNCwaQDIh1/OlJM
+qZzjnQWrOGZBQ7Ghdy53PhyVsiL/L4a3/O08/R4Wx9RHaOX3G2EWoLyXfkzpF6C6
+LCtOQyysl7me9EhAOd2KMoTSFohHkXUb4GrlBNQ1zqcllmZYopiv8PsyYs8/doLf
+/q3of2KLS+WRhhRm7y5LZN33U+a+CiUTNsD6oMjMtVXEWePXyLBEMVK0IdG8b09i
+u/nRGmDjnE/T6tAut1sOWrIr7xUroxwiCL5envlTHVqhE+T9JRvLD6bMXfYNDugw
+XDMhp8JtZtdxmcQFrKe5BOmkp1uqjLIzPekkMn8jiVwzWc8JHhFLumJdLCyb9M8I
+eWkmg5il7MUt1laI38Tg27XNxQBSRq+btDoAftDL/QFdU0lF1UWTovgXUjahf/Zf
+fjQHhOodD6uYbS2d3DRoGmmaECN3gutpDZkzFPimU7ErvKlqCY00wlDUGWPBO3mQ
+/4Q9VG9TITEsVXyD1h94QkZIThOJSAqo83THwRRwOZGKuff7dMwV99HbTCbcMHHz
+RZLU2e2R5j3H9lSaJQGOWrCZp5KEGViG9T4o7fIDbMV1cprYa/vvKehmpMTp47Y0
+Lh7DV9YKfg==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFqjCCA5KgAwIBAgICAZQwDQYJKoZIhvcNAQELBQAwcDELMAkGA1UEBhMCRUUx
+EDAOBgNVBAoMB0VzdG9uaWExJjAkBgNVBAsMHVBvbGljZSBhbmQgQm9yZGVyIEd1
+YXJkIEJvYXJkMRAwDgYDVQQFEwcwMS0yMDA5MRUwEwYDVQQDDAxDU0NBIEVzdG9u
+aWEwHhcNMTIxMTI4MTE0MDA3WhcNMTgwMjIwMjIwMDAwWjBwMQswCQYDVQQGEwJF
+RTEQMA4GA1UECgwHRXN0b25pYTEmMCQGA1UECwwdUG9saWNlIGFuZCBCb3JkZXIg
+R3VhcmQgQm9hcmQxEDAOBgNVBAUTBzAxLTIwMTIxFTATBgNVBAMMDENTQ0EgRXN0
+b25pYTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMhrF01zTAiosN+9
+4GaADAJ+kaI9OBrGPhruRXAhOtDkGuctXP31mk9DiImV2A+aKuulQ3Mg7KG6p9ry
+de8OdjMKJ3Ej4DUyKOczofI8mluUxs3TOytjX/cLXinhQKdokAA1YnaaHgWocBzr
+taWfMs3WXSZ5SqqPEyqYBOAEs9Sa+r8pxyc7mAt40hbL4dHxD5VLO40tszkiA3TZ
+YLLNorz4SiAFMzKGU9HRxKTqNIul9EFSm6IVcdty5b9sUeYSHL4b+Kv8jTRRsdxm
+MT1LBgaeL1knneAN3/6eVCJVMhwVA7gHNoM/cCDW6Dm/XKd1rgFX6TLPGaL7m9Et
+6WwPAO1Uispn+fDnZvX1oC/67hwQXEmEveZEF4TcIXUuA1HDr6oLT5zf36rKTDYg
+GEegdaXaBiuxJTXGmu29rrMC44F0VcuaMfj9zxClDrmsj2jNlFSb0XQ2TH0A/IWq
+Q0vZk3ttHKeyvCljoMf5ipzI2KJ23+Hf+8S6f8gXJMJlyYPbzrnpA7c+E/q4ZHsO
+cyzaXifJNhgTcX7S1D4Rp7K1QowdRisyiVzJ3wURO21laCxH66v3wfeZjwcQ2pBU
+R16dB5Pqb6NkcOAylL+lmpLA8mOWr6N2cEGaPYpHiSgGNdB/unxhvHELJaoYXUJE
+1GfST3Ge70mNdlPco14Eaq6Ie+zdAgMBAAGjTjBMMBsGA1UdEQQUMBKBEGNzY2FA
+cG9saXRzZWkuZWUwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBReeJpls+EMIHbq
+/61AsWaU41UliDANBgkqhkiG9w0BAQsFAAOCAgEAX2Cxrw9Zelhb+rvVvRZnQ5Dk
+/kfHqS8iLRG1w9KfsCq9fP872UXtW2bxi6SenYnYgUWMRI/vykPO49RlefuxK+VS
+roJuxbLBb3S+86rQ+S2j+lPSK4lLNr3DQ0rOQ6u6I602ZLrzuKa4EpVZIfhRgg/d
+WlLbc9fXCjZw8rbd8p49lYl2HAP83nLpDEfpz8l5Yls024tCh89UN/cZ9zZMGwtV
+7qGjxNB9R7u46y1mK+nwxdMjmNWSoYk6Pb6qrlsIHkUGIp1W7fduxXIEJxPGok5+
+j0WJiOwDElTOQsLa4iszQxKPFM7NXG4QFAgLm7DXPTOndW+7wXX0C5ts7azHPqth
+WPPx3aPOgu8nN6BMRkY+8slm2nJ7DOTPkxxinI1/GJLQfs6U+TG//YKeSHlEZ/sl
+Mh9EYuIO4As3Vy4Nmj9ZpIaY5lAgIJ/cb8Zy9GvHb5td12JwLvNhlDWNC0Zc2yis
+tuZWk1XYX7J0+B+U0TFecNKtr9cVcpNZaVJP6C084LFntu208l2GhIF5AJk+0FSP
+aC0QNQCdI5iHTYAMHs6TE5kNuaPXfYV/ZSol7hQiFSHPTGV4Nsnmw/u9KIUFrflY
+8TZ17qo0x4sK8Am09+F/OTVbU+fU4wx184uC5vwx+et8lYp4JCv6sCBhtJKh8AIY
+g6TEFQ89AWwit8jdRAQ=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFtjCCA56gAwIBAgIICr4wz4NxBw8wDQYJKoZIhvcNAQEFBQAwZzEUMBIGA1UE
+AwwLQ1NDQVBLSV9NQzExITAfBgNVBAsTGEZvcmVpZ24gT2ZmaWNlIG9mIE1vbmFj
+bzEfMB0GA1UEChMWUHJpbmNpcGFsaXR5IG9mIE1vbmFjbzELMAkGA1UEBhMCTUMw
+HhcNMDUxMDI1MTU0NzQ5WhcNMTQwMTI1MTU1NzQ5WjBnMRQwEgYDVQQDDAtDU0NB
+UEtJX01DMTEhMB8GA1UECxMYRm9yZWlnbiBPZmZpY2Ugb2YgTW9uYWNvMR8wHQYD
+VQQKExZQcmluY2lwYWxpdHkgb2YgTW9uYWNvMQswCQYDVQQGEwJNQzCCAiIwDQYJ
+KoZIhvcNAQEBBQADggIPADCCAgoCggIBAKL8MVZuBcMqsNLLjJMdSEJNmd2IaW4c
+HQz9ytj3l8qCB9loBGJOgA/8Bw7g7a+C1D/axyGtkSyw3hCvS18YVap/I7pPrNgo
+0X93bVZ6q1jdVJ28r+Lys1zhf4/EER873N46abnM4GpUiDyuAmjJvLRk3TUUBSi3
+3bL1ZTY6DqWu3Lf6CO7ICxHyJ9l1XZG0XbGcIl2yMfdfj264Gr1KdYJQB7Khzv22
+lG/d+vr+J8jRPUCbfL7sY9lzK7tQy1cO0dacKDr7NdPwtdIKcbqOB0FNrq91H56S
+GeeK52DD8Qv3Y3nR8Se/Pdctin4J/AkKti858eW32oxYZL+pZ1xR+KxI5c5qPTEI
+lWF0ZdIO4fcGpVFCeFedAeWTMyMpat2PbaGiSrTmIFtPei1nWPDnyhV4ZB6jDVqu
+WfpSxxxRBfY9kFtJGQPMhWqLOljz5dn9QYr44icY+jRt6mMJYphpGhSDV2xCNKKW
+utc1ZZA+5aoKUg0QU2toCOcJ7pqCxc9/SVibA2Mq8gcaApYL1FDlzXGh8FoDs60g
+VsnM0AVQXYUMp6UC9zyFvdEShYalVQZl/I0fs81z43ekk74mHdZAx8oeziM0EJB+
+hhBxnngEUADCdKt0mFU/QnZ6UXxIea8GvbwkHc2FK3S8nOO4/wJ4WZbFpdsWPb6b
+Rzea/aISflSfAgMBAAGjZjBkMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/
+BAQDAgEGMB0GA1UdDgQWBBQKFWKab6Mgt8C3OfsEjoXsiqL9OzAfBgNVHSMEGDAW
+gBQKFWKab6Mgt8C3OfsEjoXsiqL9OzANBgkqhkiG9w0BAQUFAAOCAgEAEu07dEfp
+AoZqE+2bEsgzGCTyuTnaAaqkrYiisgF3EUR4Z+bnILoF7G43v7SWqxQ4TaYTYR2K
+QJzfbtFGitzpq/RHN7BCJhuqDqFCDtIb8RWzHcwhJczww/KO00zJ0wFGVeHzBClW
+ZZoLtKyoVmNTan4AgOccF5nrqAaK20cQCA4GW7dwFG05i1kSKyka8lQYrGMn+tBT
+CrvBo8Kp0cKZUv2DPcr1qfgIRTSlh2LFtjAYHIYN+i+Nze2dXRIcbb5iGx2d5wsf
+HTqu1Tqf2RU71G3upDV3oJS37QmM7Mj5lGpUqpYqDWV4uHuHVNsisJbnUKEId3Vu
+6aX5lkEnYg8yLoj0+NsypkyzW5ESccu2WnupbSVVIwtogfC25Kk8OzMRulzwhog2
+fB8V9Digfo9Ld9k7O+dxalZ8/0noX1e3D7L0MCCNiSkZyYHTnbn8FfdwcFOyekkJ
+A0ES4NuXlhJ8jSOVEybc8ePhxXAZ2T777P1GzDrKU0g5O8uKSIagC+nABEcrby34
+02HQrfEnPRi9gFYDMGOn2eEz4QNl3yoNkSq9sSj8DvMxEIJK8VEROI7GjAzrAWmA
+0PjFSgz7Hcm9t+70/78DDgJzkRedxbyngfu7Sp8iCkAo2FGiv2pA6Y/yUWw+8WVU
+JA8hHzfb0auzQANLQkqs4EgLMv9IFM0tnUQ=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFtjCCA56gAwIBAgIIVYTu5xqA3l4wDQYJKoZIhvcNAQEFBQAwZzEUMBIGA1UE
+AwwLQ1NDQVBLSV9NQzIxITAfBgNVBAsTGEZvcmVpZ24gT2ZmaWNlIG9mIE1vbmFj
+bzEfMB0GA1UEChMWUHJpbmNpcGFsaXR5IG9mIE1vbmFjbzELMAkGA1UEBhMCTUMw
+HhcNMDgxMjAyMTMzMjI0WhcNMTcwMzA0MTM0MjI0WjBnMRQwEgYDVQQDDAtDU0NB
+UEtJX01DMjEhMB8GA1UECxMYRm9yZWlnbiBPZmZpY2Ugb2YgTW9uYWNvMR8wHQYD
+VQQKExZQcmluY2lwYWxpdHkgb2YgTW9uYWNvMQswCQYDVQQGEwJNQzCCAiIwDQYJ
+KoZIhvcNAQEBBQADggIPADCCAgoCggIBAJrejSxq+8/Kc736VXDLl+kwUA7087XI
+59yMxMBRFC+dqN909wJ7rUpPmis5/bjrbrLY/S2jG890o2ISGEfpMQ19MqlOO4Kc
+Ev9KAj1oGJuJaejz/zGy3JZHK2O3MRvIcOo+B5JHbDEEs2GShYaEI8IZXCxTAuzc
+FwcrzNQok+ZXaTmPnmWwjLLYIJXaF1idypWlmTauOizn2KpoH0lQUvYE+n1/8hDj
+P+6JRHf6awPwdE5Z4kSTf0YrCx8BXhpWKfLLUQnjqzgMw/9MNXqHB3cSRObp5z1+
+85adlW7IO+ip7H/6K9rFdDehtD6Y/6jvnfL4yob6k0yLnTbX08D8ZDrmbAxZ2N7x
+XvObi1h5WyvrAudFZh5EDczR0xY93oKBgzTNLkUn5DcXc/Gc+JZrGHu4CNrdtfEl
+yZixcHsf7KnS8atz4mgConCaiyr75OOsrX6uyWYxr6Mac0KXqtH4PO58MQDM56V+
++r5nRqrA7CiXExD0R/k0nrr+vI4PQ+dbWaQalHjCbjIv2JL+TE52vi9GWiu+NMP1
+Im44cdRKAAFIHP5Da3UUqwCzzGLW4fNQpNuLQTxn9wF3vkiO+Krq5HmjERpLbvpr
+7+Ep4HgTRzyTqXz62ts7J6V3IixXXOr9GF/kkzYqnKrlHz15SvMorH3hdwBku6zr
+49yW0rCYLp8rAgMBAAGjZjBkMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/
+BAQDAgEGMB0GA1UdDgQWBBRiQNOIGTi86Nj/Hhn/jMZzt5JinzAfBgNVHSMEGDAW
+gBRiQNOIGTi86Nj/Hhn/jMZzt5JinzANBgkqhkiG9w0BAQUFAAOCAgEAMPrdsh9R
+Sjw8SJh63/wfa+cztO6JH6pszhPF+3ooW3jfmJ5JG/o9WIds4JsA/nVdrEGkfcYs
+N72WZOcfTe4WHqmuZTxobSrs3qaUdgMTb4Y3urFWKsyvaepmUVy6cUDMgbYEBrbK
+PIgIBiZwVhTjHiLCTcC+/XmjESnbtJVTBNFBtoleoA5ZzxZjvAdIACaPSGYm1HR/
+zUmD712c0Rj8mSaCWovdorXZSOYzRp837IrLztIGlw6btYyoHZD3DWGEX7I75FJA
+MKILFZXC6G+SLEQyGK4iHUWtmOFnBhpeznRlrrGIrCWT2KRQp7Gfo0o0hAbz01CK
+dMgw69vGnO4lSr0LDYEeLjpU6roeqfrTtdkGnFF/lL6iL0FBfwMMeUIWsI6x1EfY
+c0FJKhwEBX2s0VMcK9hKUdne/ZjV+iw4N8wzNyP3LHL7NymHD5AIHf+4v4J71KXe
+k//faon0usbTLbALj+HeTf4w00vkTx8ms0lmvuhAuzckwpKbGQnAP5hz7/2PG59L
+bmmbGzvaP+PdS6Zr1vAaOdUl+Hsh6flHtr1ZnNmJj3sqTymUWORQZO9XxG51Q2vn
+Fk0nDo6T/klY2o5hrHDXdYO1NP8QV8NmNRTGexoLgiTBnzSui8aBPQzuoOYzQtON
+k7WKsvwnKP4lqAQFwEDcUht7CCZgUZX8m/Q=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFtjCCA56gAwIBAgIIbAQqgspVHQUwDQYJKoZIhvcNAQEFBQAwZzEUMBIGA1UE
+AwwLQ1NDQVBLSV9NQzMxITAfBgNVBAsTGEZvcmVpZ24gT2ZmaWNlIG9mIE1vbmFj
+bzEfMB0GA1UEChMWUHJpbmNpcGFsaXR5IG9mIE1vbmFjbzELMAkGA1UEBhMCTUMw
+HhcNMTExMDE4MTIzNTA2WhcNMjAwMTE4MTI0NTA2WjBnMRQwEgYDVQQDDAtDU0NB
+UEtJX01DMzEhMB8GA1UECxMYRm9yZWlnbiBPZmZpY2Ugb2YgTW9uYWNvMR8wHQYD
+VQQKExZQcmluY2lwYWxpdHkgb2YgTW9uYWNvMQswCQYDVQQGEwJNQzCCAiIwDQYJ
+KoZIhvcNAQEBBQADggIPADCCAgoCggIBAMYug/0eYpZwJ9fer1rO3jF9mFqVCgqs
+UDSgsJ2SR3zqitMZhoBdeusmUnSJEYQWFiKg5vM+cHJQfXnZg5k8AUrUb35YXfYr
+PHPVrpeCBsrIzsJ/9FWj9xvyb4/SSZPxSmoxMI7MYjklNYpy0f4QlEC1SGUvLPs5
+ZOtVtY3Uq+XNvtwF+csliS7IMknStoPfQNlD1UmyFoJdULjIpo+JhNtPb0EKhGoU
+yWHxXLg/U6bGpJdVAtY0YbhMEPbJvmSmeExx58FqO+EFto5MjwLdLj8SyAz9M85T
+ctp++W0C9DzcP+27HSThvOclJWYvkBQ1ZOCPguKGzEjGxY6OvcYwEpQ0r57Y6zZn
+/14kzwAQW/HSII1ACMhlAQYF8Z7cB4F50BURUzKNaeho+Yfys+tavk5BX9/qop+Y
+tXmNCmtQDiTclDq7xUOJbkNnbPqo4n2WgNbDULDdL8k5R6Be2DfDD4IOnui0CJoa
+dMWqzcIk+R8H/q0HJ0SEb1cw9azRCnanznA73nsakrTzci3zIfgUkJm2XJ5LsBbi
+R/ZrTswBjniIq5uwFLz6KwIvMoz/0tNdbC8agQYYKd5osqj6uYTPV1mH5zo/mPJN
+16HwXTLCjr11mWDLOR8FzXCFVxoqaIh7hr6Yigpc53SXc3g6/Q1xvnm3YYHwAdWo
+Qw8pkCEoPr6dAgMBAAGjZjBkMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/
+BAQDAgEGMB0GA1UdDgQWBBRxtXFBwJx7xArRs56cR3AV+u6JPzAfBgNVHSMEGDAW
+gBRxtXFBwJx7xArRs56cR3AV+u6JPzANBgkqhkiG9w0BAQUFAAOCAgEAhBLSIduv
+c+09GckURQdl1nan5TiFUdLjPN8ryiMNxx2b+uCv+2VBo9SETZIoWBR8uk6U1N2y
+VBqpl0M55oQqFwpD7WI79NYqGHZuPyRrW7u+ADe1kjuN0AD9trDH3RbnQnYAIoCo
+9yKuoGoZXtm05NH2GWHgDBhg9dJRwrYYU2L6gnckAdxcWenoTVh6zU6n5OW9g56X
+Out3hyF9OpkbfwTF6xgIBa62rgdVKoGBkEAqpxK6oGNfj6PoCCJn9IBE78h9+ZBB
+n15mOqJMCazLuJyD7kJ1kLJot9scQBKXnMI52ZiH8vF5iw8rYR4rcFkOCI11l4LP
+KkFGyBO+SG8BKtMddRBkDv+gG/5DLySqaa+uPb/cdNVoLjT6c/XKiJeOwnA13X2u
+GV5eKic1KTK2L+2EUTCxly/yn249heH1hZtKywVZ6lWGiQNmIm1Oil1oa/n0rHTe
+qNH/g/WbLm6YFpPpc+FoGgaYSm4nMsNEajGXKGDiemSv7Y76aDAhEEZuUZg7cptq
+ADJJi8BR6M2dx9/N7hAyX+mJehKukJmTsHZS320QPOMhpHTSRzlrPfprtOcNDCJO
+lRfvhYISqdtitbAzQnMXkpYDNm+vvzmyd18ZGAWgiPUZhSUDGL4gUZYy/m9E/t+6
+TvhBinC0RSAEbDBmkYxJuEM0T6awA/gT90Y=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFuDCCA6CgAwIBAgIBATANBgkqhkiG9w0BAQsFADBwMQswCQYDVQQGEwJFRTEQ
+MA4GA1UECgwHRXN0b25pYTEmMCQGA1UECwwdUG9saWNlIGFuZCBCb3JkZXIgR3Vh
+cmQgQm9hcmQxEDAOBgNVBAUTBzAxLTIwMDkxFTATBgNVBAMMDENTQ0EgRXN0b25p
+YTAeFw0wOTExMTgxMTQ5NTNaFw0xODAyMjAyMjAwMDBaMHAxCzAJBgNVBAYTAkVF
+MRAwDgYDVQQKDAdFc3RvbmlhMSYwJAYDVQQLDB1Qb2xpY2UgYW5kIEJvcmRlciBH
+dWFyZCBCb2FyZDEQMA4GA1UEBRMHMDEtMjAwOTEVMBMGA1UEAwwMQ1NDQSBFc3Rv
+bmlhMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAvZuCLlGZutwLZ/3n
+n5Sr21wWmDoCU4xORFqj1xY0EoM8RkhNKdCNTruC7OwL8wTquLoRUrf48OEadf3w
+J6xIDlg+D6K46f+aepBpqBvAs8OuG7moZYHVSveHBn+P+2vs09PTevI2acsb5xuL
+lfnZWBmCVLH2l+kx6CVkXIb51lcsCo12Ok7m8vxzE0tnbh8klgznHAga2ptQr6fM
+kOUJMt4hPVbBLXZzfemlBZsIWt+XsUJv0vdcwVwuL2nZqPYVqeGJbwAoWCTxKge4
+GWR/Q1xaabCtxOQ7Njn+4UAhd0sMgtxv5tqGGMmR9Nu8Kw8UwU6JqV8fQhA/VVjZ
+sNQnp1F/36LYj1MGjumndgHDRJ8rpbvyKqX5fHxysH/Nk7KXGyeeQTQ9yjsHPf+Q
+BpK8oV6CpLnojVTREaUyfufmLQMTfVNHtYO6zYSViW93iNxkZTJHoDPgyu0r7a+q
+57ERD/Ygb80h9BooAiUqKgj5hxHbmXlFpG+YKUEj661FXtgoccCGCKzE7Wbl+Wc8
+joWCa/mOYHKRNwlbx/8JiPkG1QZe23vVjkDWlubXA7UFZ/+pZYDngKIl/4YN/+Kh
+7TMEfu8Gfa1NPNWFa9XmHUy9wg8cgWOkft2KbpyYEB0atic9cdcI4PbQaA2SSjea
+dOcuZ5vGLugwKJikLTdjiqGa4iECAwEAAaNdMFswEgYDVR0TAQH/BAgwBgEB/wIB
+ADAWBgNVHREEDzANgQtjc2NhQG1pZy5lZTAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0O
+BBYEFPLVS5LJHuqSnfiYbhWMAxtW1jZ6MA0GCSqGSIb3DQEBCwUAA4ICAQCPDWe/
+34rpT7/4h2yHnQSpppGl+s+ua41Pv01X+r79rV2KWPBXvf56r/d0pj7yKwF+PFxH
+7igrRRbD6y7zFN/+E4OTIdIp3wSjhppd4dFSckpYFRo4AfaM2IOmth87aiZLAeXu
+AVo0YkBSRHaLkuJ+ybRVOARMmaXgbbcFfjrle22rcuQ/Rrd7ScCDZyryPCUIe21Q
+YZ4vCamsR3jaxdkHvou/vz0t5W4KDf788GcvXFUNRVcJNGtuLXuCBFCP70HuazJ/
+J2XPEJKfFZ73rLy/QFzReAFxzgitqpsWb5EcRtWMHOjoL+08I1iwTa5vFWVxwx9H
+YM0gpaiLwvU6bS7/HeAghcuXVNK6gGbKj0fWehTq5cTXUT68F/q4JEDsJ49tNbm3
+kM9NPH5hC3irtLLd5z6PiJxDVDxvxgf9Ai29rYzFpY+9aWSAeV1khYR9OlkIK7LT
+gUHb4lUqbQre6mQ5jpR2+f3QUKw6M/SgbqfbGYiID4ItP6CA3b0/wWoanJDbx/KB
+JLNJTEdqbsahHDyuj3tC2tb+w4ENs50s+c9ylBaxLyOhiP9QApdphD4kpLRQ9j2N
+oylhoHeWDz/Us+AxzxV388ZQGONDZNhK1hngRqGHMqGCcBYKYasAdn5JMGdVMUdK
+1zWOX8WVKqdiViA8hIcZAg523no9qgEHkC7orA==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+ozyx1yk2Gg1EGceM+g==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+iClZTC8bKYpNEtjm9g==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGpDCCBIygAwIBAgIDGGoxMA0GCSqGSIb3DQEBCwUAMIHWMQswCQYDVQQGEwJV
+QTENMAsGA1UEBwwES3lpdjEhMB8GA1UECQwYMzgtNDQsIERlaHRpYXJpdnNrYSBz
+dHIuMQ4wDAYDVQQRDAUwNDExOTFEMEIGA1UECgw7U0UgIlBvbHlncmFwaCBjb21i
+aW5lICJVS1JBSU5BIiBmb3Igc2VjdXJpdGllc2AgcHJvZHVjdGlvbiIxJDAiBgNV
+BAMMG1BvbHlncmFwaCBjb21iaW5lICJVS1JBSU5BIjEZMBcGA1UEBRMQVUEtMTYy
+ODY0NDEtMDAwMTAeFw0xNDEyMzAxOTA3MTBaFw0xNTA0MDIxOTA3MTBaMIHUMQsw
+CQYDVQQGEwJVQTFDMEEGA1UEAww6U0UgIlBvbHlncmFwaCBjb21iaW5lICJVS1JB
+SU5BIiBmb3Igc2VjdXJpdGVzYCBwcm9kdWN0aW9uIjEZMBcGA1UEBRMQVUEtMTYy
+ODY0NDEtMDAwMjFDMEEGA1UECgw6U0UgIlBvbHlncmFwaCBjb21iaW5lICJVS1JB
+SU5BIiBmb3Igc2VjdXJpdGVzYCBwcm9kdWN0aW9uIjERMA8GA1UECwwIU0NQRCBQ
+Q1UxDTALBgNVBAcMBEt5aXYwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC
+AQDPYjZOcLkRE+lTqlDKhaYBI4gWCShmDHug4Pu13n3UDz0XkVLug05vzwRlijtR
+VEly8bhcsYAyy3oMTqzIIUhYqCi7G1Ej/oA9SmCYYvTG33vSwW5ojrCBGYzswVy/
+XRB0pr3ZIVpuVQVDbHtA5vwmbhPh+e2kv0fHIpC+ABV6NbxHf6ARsan7IMBBjMxS
+SQRWcduVNOavkZ06KhA9nAyLW1Efkup5cwMWE6IINo3FQGhhVbW9JifDAEajHbXC
+mA2MjEmXaN+CCc1gyP7N/8GtDVlP+OBhsBT4+pzNFa13jusShzIhhx0gs+NWWDZX
+6V9ZsCbL+PjweoudDZEr1mQipvk4+Zrx0QSO0v1AOMAjx4dTi+3W65/gYTBQkPVI
+WBu8oocWP/ap5cstExmoeV9bTmfpOUoIqGiMfBYcE3FngaSoFMbOvREDW1d8ejWZ
+8cxuxtTnwtMVEG7Z7HgSL5ZOM8GnzyaQ4NzMVWpqzPxOZ2wmynsUpq3fM1igt+sR
+U1scG0IAmgTGpBVowSc/4Ez/JW5L/puDPY4TgQCX/pw8X11/dTJSD1TfiNm5BxLF
+sahOOocIxsffC19SyZ1+9jpFQptKb8mHO19AMFHKVFZxwebQXQymkquQHrY/ay8y
+S113P2ec32B+WkWmYt0MY1uQ+KCd6toTEWy7blman1n50QIDAQABo3sweTApBgNV
+HQ4EIgQgcjz4n2nosZG0uPMILa4mfX1YRPl056SmHtIS9swtxkcwLgYDVR0jBCcw
+JYAg9QUg7CTuC6KdeKrMR5szaGZEr2wjw6ZnvHcwzjLLPaGCAQUwDgYDVR0PAQH/
+BAQDAgeAMAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIBAJvjgi7iw/eS
+nkz7/ypOAp0ybBlu7QLXTP0/IRJNeXTyF+IeifwY8glBrtwAF/0Jg7ftcbExcXxb
+WkHEwml+L6x80mTE1MagJLOTe4mbs33oyqWooQOBmxSLDwOoia8leXWCb/9v30u1
+xfbnqJ6cT5qz5q85FN5c+BS9a3udDq+betV6aPuNH+8TrR/HIoVesAS/wXQ+WlhG
+Yd2pEsP9Q8f1mQtWSeN/EpOpEV/yLGq901cS+txn8on17rE6Ain0B6MWNTqUWt7N
+u1/t1uPXTJUO+lllkoUfcI/5I0EF3zAmSu9QY8P0MYQWU0M3wqQGUqZBqzF214AP
+jmwvctESqhFXmgUAMM8TCDt1k8D4VLVN2/NLs3dp8sWNuf1aJ1ztY4BbB3HqIcpN
+fDkS1Ns4Wcq9OG39hXXDy06G3SqnrLR5LNaYOUpX1ayAzNZhMZzPSOBPDVxPGzxZ
+20E4ouscsfLT360bnl2OH2HlY63sZMi11rvQ+7z9mpLiO406j7v4fM+kSWGR7b95
+Ft6+Cv9wcOUSdk09Cpd862JP5VsQ0Ntk4clOe4NCJ/OuQ5wVh9cdUHKu7g4XHWCs
+iNyHcUW1RFQ5Sutd02dx+UzOGu9Mw5Xg314FtAh/YRH3gL/+iGriR8XJsvurUbOj
+lAEEjqhUzuB1mBOe/aN4HWTMRBBEfbiE
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIHQjCCBSqgAwIBAgICE/YwDQYJKoZIhvcNAQEFBQAwZTELMAkGA1UEBhMCQVUx
+DDAKBgNVBAoTA0dPVjENMAsGA1UECxMEREZBVDEMMAoGA1UECxMDUFRCMSswKQYD
+VQQDEyJQYXNzcG9ydCBDb3VudHJ5IFNpZ25pbmcgQXV0aG9yaXR5MB4XDTA4MDUy
+MzA1MjcxN1oXDTEyMDUyMzA1MjY1NVowZTELMAkGA1UEBhMCQVUxDDAKBgNVBAoT
+A0dPVjENMAsGA1UECxMEREZBVDEMMAoGA1UECxMDUFRCMSswKQYDVQQDEyJQYXNz
+cG9ydCBDb3VudHJ5IFNpZ25pbmcgQXV0aG9yaXR5MIICIjANBgkqhkiG9w0BAQEF
+AAOCAg8AMIICCgKCAgEA00WlxQlzHPUljTs2ZXmTATKIG19rnm6RLTeYykym3y5K
+yBy6E8eGHiW79hpVOXFUXwsH6eQhjEmOwCG5/6L7wFKF9Bf68RiMmwOTFCTeIa86
+caXGYSUSoIK3cM4VqTwTv4NF84RaHfERWWHQfCU2Oi1oMl03j+464s7BHo3iYZxo
+6xkCPKszpypRaWQZFYByQipyO53dH8ZsEC6d+PCDkcklUSeCujwXwHz1Trr9O+uo
+n5KagjrjgLrQ3xm9XBxr/FjC8WfXabpUUm+cLpOWAuwIbECSm32DsNsZEhAySyIr
+RukXr/DLGKTWAJccBjaTTuB2HoHuAOhKiiwJmqL9lhIxiILmVIjelfG+JtBjmSM9
+d1OH9Q09QWo9gH6AQO4cyhgWh+zXXm//wnWIdCyqn8trQEuI8i3B8HW/gV/NI6UX
+RIlDwFFEG0jd0T+hLTgHONoFRSuThsVnktfiqHWrCgWymzP+VlkeeEcaMSSAjxCU
+GYiHa8MqQjgU6obNFFHPV22GKl+txpof5x7o9FKxWpiuYZQS5Mt6UB8vUlz7Doxl
+Y1PyVljysNwhJYqCiRtwbIc8mtENgBUJWJNgKXsoZJ2t8mv+sfp1y66TyhQ7cf8S
+zRo0V5ZAS5UHVL+DkoS/ZQ36CBRJClNonyjznw51o4rSoR54Yk63hNAj57UhLy8C
+AwEAAaOCAfowggH2MBIGA1UdEwEB/wQIMAYBAf8CAQAwgfEGA1UdIASB6TCB5jCB
+4wYIKiSfpoFdAQEwgdYwgdMGCCsGAQUFBwICMIHGGoHDQ2VydGlmaWNhdGVzIHVu
+ZGVyIHRoaXMgcG9saWN5IGFyZSBpc3N1ZWQgYnkgdGhlIERGQVQgQ291bnRyeSBT
+aWduaW5nIENBIHRvIHRoZSBDb3VudHJ5IFNpZ25pbmcgQ0EgaXRzZWxmIChzZWxm
+LXNpZ25lZCkgb3IgdGhlIERvY3VtZW50IFNpZ25pbmcgQ2VydGlmaWNhdGVzIHN1
+Ym9yZGluYXRlIHRvIHRoZSBDb3VudHJ5IFNpZ25pbmcgQ0EuMA4GA1UdDwEB/wQE
+AwIBBjArBgNVHRAEJDAigA8yMDA4MDUyMzA1MjY0OFqBDzIwMTEwNTIzMDUyNjQ4
+WjCBjwYDVR0jBIGHMIGEgBQ35UU4PlOsrXY2zqkmAMVn6XxyiaFppGcwZTELMAkG
+A1UEBhMCQVUxDDAKBgNVBAoTA0dPVjENMAsGA1UECxMEREZBVDEMMAoGA1UECxMD
+UFRCMSswKQYDVQQDEyJQYXNzcG9ydCBDb3VudHJ5IFNpZ25pbmcgQXV0aG9yaXR5
+ggEBMB0GA1UdDgQWBBSJUhghMvDepX8TOhcqXVYXoHkSajANBgkqhkiG9w0BAQUF
+AAOCAgEAstrxf2pahP8uIyULiss/w6BucJ+2EZUch/3puxG/t4iG6gYQjp0D2pLs
+iDGb+AFoO6JIYYEG3FRq5mr6MOeeQjehS+9ZTjeRZWzVN7N76/dXJu132uxIZvr3
+ONETCswYV59hEmk+8Qj3mgLyAS5ZzK+a3uvs5oCRYLNOjlUjalEwiF8RlW3y/IRQ
+ODEBSWYGGrjYd19e/QDdLaNztTGQr+9QqmjZrwuzFE0MVCRSkze/sbysaTqwqExD
+mx92VX+eHtpRnA12/UPmVj+6YGnvFjW7O0aQKRsScO5KOnpY1c1g0hYUx41WhzoB
+lfXhmpIhW3XZ/oiw/nI21GLeVxKkQgRMcfYMrt2aW5lRHw31Kzd4jp+sgvSRnMfG
+Bbb5EflRX8TdWKQUJfvsJb3RH+c3iEInAzK9WIWo8kHarXitncklg11PH1GZ+/+X
+AAnh7g+bZ9lDKcP25nnYBdGcK/JlZ6/95cfZnpPu/NNnlKS4e3/u1+hIT3rCRctT
+859a569rfWz3D+cvGJEma+zW4wXOF+NjMmSaoCVQs+X1y39wc/igg+6wO2I7tYAG
+nY2/ZdLf2WhjAfuaatwUZ65rf4uUgOkAcl/MUMzwkgkiylZkNR/Mw4syferxjzI/
+ldSj8eba68OtxTfqb3BIdTXU08wq5nBnr1AqEj1L7s1pAy1IIVA=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIH4zCCBcugAwIBAgIBWDANBgkqhkiG9w0BAQsFADBwMQowCAYDVQQFEwE0MRow
+GAYDVQQKExFIZWxsZW5pYyBSZXB1YmxpYzEUMBIGA1UEAxMLQ1NDQS1IRUxMQVMx
+CzAJBgNVBAYTAkdSMSMwIQYJKoZIhvcNAQkBFhRjc2NhQHBhc3Nwb3J0Lmdvdi5n
+cjAeFw0xMTA4MjAyMTAwMDBaFw0yMTExMjAyMTU5NTlaMHAxCjAIBgNVBAUTATQx
+GjAYBgNVBAoTEUhlbGxlbmljIFJlcHVibGljMRQwEgYDVQQDEwtDU0NBLUhFTExB
+UzELMAkGA1UEBhMCR1IxIzAhBgkqhkiG9w0BCQEWFGNzY2FAcGFzc3BvcnQuZ292
+LmdyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA33uUtF+AQdQNPNEC
+b506AxO4YXa406G+xmAkX6ND6D0iZYOtgsV30HXtQOfBcIioF+35x7fMM9JR3ruO
+2C+pDr0KCulU6DiDLXQX4V3RxR3RgxdFSR2zsnLdnKXMy0Ab3BQhw2KwUK46on7y
+rE41naO1ndL1fzbnN1TViRglAyBhTX4dl8Dw/xDBtGS7vhnprVtoHxRDqw0p7ZWE
+trbQd7pBoa9Z+8guMYAKxDvJ9WxyfkNV2XKRm23MXL3sR5BKVvnHpj5qSvdnhh5a
+lIqJCypoGq+hJcRslKg4H1rWJoMoTrh1ptMODz+R8JtyR49BjP+nDdS/ftSZxjWS
+mge6N5H+K2Ya1x1mdJJeo9jhwuPgxQbWO02MpgK2QffO4PY7GZFoxMoo2Kww3xuM
+4JzxUIf3QEepj5dgx3A0r0QnzB2/kWYH2qzQbQ8foUpoKm7WOKw6zaRqhzxHifFX
+4Qypg6OINGX5lp5vsBKzaoHP8KHDx/2LUQYMNs/g5VL9cntb76quInUxhRiRzEo3
+JsYGRUPijh3UiJXDkjTMB84SONHIcZwQLRbhHMdDYAt+8iwT6WOjrUyph9a0DESR
+M/GeYQ2R+XBpoBGpULYIgQdX4EYkP6CB5MCSFYLzIvA5QXpmvvGjUnFwtY7FOnUG
+asv30TbUB5zpYgUGxPjmpng5kTUCAwEAAaOCAoYwggKCMCsGA1UdEAQkMCKADzIw
+MTEwODIwMjEwMDAwWoEPMjAxNjA4MjAyMDU5NTlaMA4GA1UdDwEB/wQEAwIBBjAd
+BgNVHQ4EFgQUEUCSIfLfTBln5CjTaYkd1t1siygwHwYDVR0jBBgwFoAUEUCSIfLf
+TBln5CjTaYkd1t1siygwEgYDVR0TAQH/BAgwBgEB/wIBATA5BgNVHR8EMjAwMC6g
+LKAqhihodHRwOi8vd3d3LnBhc3Nwb3J0Lmdvdi5nci9jc2NhL2NzY2EuY3JsMIIB
+sgYDVR0gBIIBqTCCAaUwggGhBgwrBgEEAapsAQpjAQAwggGPMIIBVAYIKwYBBQUH
+AgIwggFGHoIBQgBUAGgAaQBzACAAQwBlAHIAdABpAGYAaQBjAGEAdABlACAAaQBz
+ACAAZwBvAHYAZQByAG4AZQBkACAAYgB5ACAAdABoAGUAIAByAGUAZgBlAHIAcgBl
+AGQAIABQAG8AbABpAGMAaQBlAHMAIABhAG4AZAAgAHQAaABlACAAQwBlAHIAdABp
+AGYAaQBjAGEAdABpAG8AbgAgAFAAcgBhAGMAdABpAGMAZQAgAFMAdABhAHQAZQBt
+AGUAbgB0ACAAbwBmACAAdABoAGUAIABHAHIAZQBlAGsAIABDAFMAQwBBACwAIAB3
+AGgAaQBjAGgAIABmAG8AcgBtACAAYQBuACAAaQBuAHQAZQBnAHIAYQBsACAAcABh
+AHIAdAAgAG8AZgAgAHQAaABlACAAQwBlAHIAdABpAGYAaQBjAGEAdABlAC4wNQYI
+KwYBBQUHAgEWKWh0dHA6Ly93d3cucGFzc3BvcnQuZ292LmdyL2NzY2EvcG9saWNp
+ZXMvMA0GCSqGSIb3DQEBCwUAA4ICAQA/iUL4rOgK3tIdCFNlnA7xfBhc1WUw+orf
+8JbVHWO+rlImTX0QSTdz/cBlCspWLoDOLcxj2ZeBqlS9j00uDLq3EyLDlZ587aXw
+tU7iuO9iRhmgPKBbtcNMrjbAvAVvK8QlRA9i184JL9/LOCWclg4cPworJSz6Z5Hx
+l1DQYYHlLxksRHVgOmYp5O8b/ILiWoknOKTKT3q5hS/WItPBLcFEmuwdn/ItnXzF
+s1h4SJ5qpfnAHlrJZMFUntOyCyLa8soYjmSoWzaJhoWqDzIjIHbhtk4RR2yl2QQC
+fGeKBIjqrFh/IkPmAyjnlvJpXfpHYpq1+1j9rQuJntnqP6Sp4mwTYzPjjLi0lU1s
+yQr5KmOFlaswRXiyHQyT5c/bOv1lw2zCSTQZH7I7qXDo5BbqggAOT8E/qtE5n/F9
+6zc0dUPXS3UR0q7ZR73eA6KwgwyLeGfwsNSieGOzj9MtE/dCG+NjTTckPQ4YFoYt
+AAH5QadBQKQMzswUs237rRb853hbJCTtJHLN6UrrhYKKvAcLIPiybgZ6bypJqbEu
+EbHjIRyIJqZgE/nQ1JMocJPoRebfwoLoFjzAyQAbs8q8JQQAemBSsuGmWzXpKoSI
+ycYwgfVuNAavzMY8W1ZzPzR9mLfWe5x+XikIL1gNAvaVV8Jjfcig2whKVNKny+nH
+yoE29UOQQw==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIH4zCCBcugAwIBAgIBWTANBgkqhkiG9w0BAQsFADBwMQowCAYDVQQFEwEzMRow
+GAYDVQQKExFIZWxsZW5pYyBSZXB1YmxpYzEUMBIGA1UEAxMLQ1NDQS1IRUxMQVMx
+CzAJBgNVBAYTAkdSMSMwIQYJKoZIhvcNAQkBFhRjc2NhQHBhc3Nwb3J0Lmdvdi5n
+cjAeFw0xMTA4MjEwODA1MDhaFw0yMTExMjAyMTU5NTlaMHAxCjAIBgNVBAUTATQx
+GjAYBgNVBAoTEUhlbGxlbmljIFJlcHVibGljMRQwEgYDVQQDEwtDU0NBLUhFTExB
+UzELMAkGA1UEBhMCR1IxIzAhBgkqhkiG9w0BCQEWFGNzY2FAcGFzc3BvcnQuZ292
+LmdyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA33uUtF+AQdQNPNEC
+b506AxO4YXa406G+xmAkX6ND6D0iZYOtgsV30HXtQOfBcIioF+35x7fMM9JR3ruO
+2C+pDr0KCulU6DiDLXQX4V3RxR3RgxdFSR2zsnLdnKXMy0Ab3BQhw2KwUK46on7y
+rE41naO1ndL1fzbnN1TViRglAyBhTX4dl8Dw/xDBtGS7vhnprVtoHxRDqw0p7ZWE
+trbQd7pBoa9Z+8guMYAKxDvJ9WxyfkNV2XKRm23MXL3sR5BKVvnHpj5qSvdnhh5a
+lIqJCypoGq+hJcRslKg4H1rWJoMoTrh1ptMODz+R8JtyR49BjP+nDdS/ftSZxjWS
+mge6N5H+K2Ya1x1mdJJeo9jhwuPgxQbWO02MpgK2QffO4PY7GZFoxMoo2Kww3xuM
+4JzxUIf3QEepj5dgx3A0r0QnzB2/kWYH2qzQbQ8foUpoKm7WOKw6zaRqhzxHifFX
+4Qypg6OINGX5lp5vsBKzaoHP8KHDx/2LUQYMNs/g5VL9cntb76quInUxhRiRzEo3
+JsYGRUPijh3UiJXDkjTMB84SONHIcZwQLRbhHMdDYAt+8iwT6WOjrUyph9a0DESR
+M/GeYQ2R+XBpoBGpULYIgQdX4EYkP6CB5MCSFYLzIvA5QXpmvvGjUnFwtY7FOnUG
+asv30TbUB5zpYgUGxPjmpng5kTUCAwEAAaOCAoYwggKCMCsGA1UdEAQkMCKADzIw
+MTEwODIxMDgwNTA4WoEPMjAxNjA4MjAyMDU5NTlaMA4GA1UdDwEB/wQEAwIBBjAd
+BgNVHQ4EFgQUEUCSIfLfTBln5CjTaYkd1t1siygwHwYDVR0jBBgwFoAUvSC7Feqn
++R7kkN8IelLnqgiw1+YwEgYDVR0TAQH/BAgwBgEB/wIBADA5BgNVHR8EMjAwMC6g
+LKAqhihodHRwOi8vd3d3LnBhc3Nwb3J0Lmdvdi5nci9jc2NhL2NzY2EuY3JsMIIB
+sgYDVR0gBIIBqTCCAaUwggGhBgwrBgEEAapsAQpjAQAwggGPMIIBVAYIKwYBBQUH
+AgIwggFGHoIBQgBUAGgAaQBzACAAQwBlAHIAdABpAGYAaQBjAGEAdABlACAAaQBz
+ACAAZwBvAHYAZQByAG4AZQBkACAAYgB5ACAAdABoAGUAIAByAGUAZgBlAHIAcgBl
+AGQAIABQAG8AbABpAGMAaQBlAHMAIABhAG4AZAAgAHQAaABlACAAQwBlAHIAdABp
+AGYAaQBjAGEAdABpAG8AbgAgAFAAcgBhAGMAdABpAGMAZQAgAFMAdABhAHQAZQBt
+AGUAbgB0ACAAbwBmACAAdABoAGUAIABHAHIAZQBlAGsAIABDAFMAQwBBACwAIAB3
+AGgAaQBjAGgAIABmAG8AcgBtACAAYQBuACAAaQBuAHQAZQBnAHIAYQBsACAAcABh
+AHIAdAAgAG8AZgAgAHQAaABlACAAQwBlAHIAdABpAGYAaQBjAGEAdABlAC4wNQYI
+KwYBBQUHAgEWKWh0dHA6Ly93d3cucGFzc3BvcnQuZ292LmdyL2NzY2EvcG9saWNp
+ZXMvMA0GCSqGSIb3DQEBCwUAA4ICAQBYaGR26GuDtRj/VCtEWNmv8glxtHWbDIf7
+ka1FqDGJ6778rtaLwjXMzSNRie5tCm5fpe0pNyPs8/Fb4dHTvNYDHz7bv2muUJYB
+h0Ic5KjzUtuR7FPYNPrlALp01YMMxTWkrh27xcBuS9mCBQuUNBYAJFqVViU56CIV
+Z7Bc6AXFBpyaepH9Gg0F/FM9t4+UGqVyjZuzN8UUZ7lbbCpl8MjZuEYm0cy9Fy2V
+8gtrRFVA0uRi0xjHUcFO1/X34VU1hoDCH9HYNAjyOSyuubwwnK3VT67Z7UUoFcbM
+j2wV3hJo83RQApDBJz1j6sNpcnI/bfccywDuglYvPydkPakDrHPFxj+pVPWhkdId
+IB10Yimja449Zl6DWr4okEIMd55Pb0CoQKvhuGeNCfNO0ygoCbzveDnPplDgWYjA
+XGkMevMn2mtRNWxgdOijknaWIq0rchVy/VRNTb/QonivkFy1/AJ5YamaishLjS4g
+T/oe5J3qvaxsedBYAYHJSAUvQGGg8VzUg85ogNFdydzJoP9QZ2pWaqF7sUq2DHmc
+LO/Qkzz4XRP02x3f5ca6CiRGTFaDayopc+Q586zJ/JfOiivMvg6zyVvOm4M31sIG
+lsfJE1Rna57V9M/o+FMAWYDxDcsLO2UOw7iF7ulzn3j5h2UgngyT4fD9P2/fyRhe
+iKb/S2Rn4w==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIH5DCCBcygAwIBAgICAJ0wDQYJKoZIhvcNAQELBQAwcDEKMAgGA1UEBRMBMzEa
+MBgGA1UEChMRSGVsbGVuaWMgUmVwdWJsaWMxFDASBgNVBAMTC0NTQ0EtSEVMTEFT
+MQswCQYDVQQGEwJHUjEjMCEGCSqGSIb3DQEJARYUY3NjYUBwYXNzcG9ydC5nb3Yu
+Z3IwHhcNMTYwODA4MTE1MjIyWhcNMjExMTIwMjE1OTU5WjBwMQowCAYDVQQFEwE1
+MRowGAYDVQQKExFIZWxsZW5pYyBSZXB1YmxpYzEUMBIGA1UEAxMLQ1NDQS1IRUxM
+QVMxCzAJBgNVBAYTAkdSMSMwIQYJKoZIhvcNAQkBFhRjc2NhQHBhc3Nwb3J0Lmdv
+di5ncjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMfQ6mI/WEnR+qQi
+B14+UXf6+1IhZL1SZozSruHg5L4a0RdCkOioc/RxzB0pb8KxQU5o0+r1omRsoP9v
+19dEKyBn00ajDrhE2avPWTXnF0GResvqPXr4KaDzAwXLTisrD/+9uCg/SbKGgx06
+fLwqrNzoCyS7B7JurIZBwHVaps8P1hAKPQInEtQxUo8MP57aGNaW+QU4MiLGNmYZ
+lusoNP2vwESjTaLyewQ54wLWiLzGHbHApMLMjxut+BBMavLs6ovpm1McRoLHbqjo
+FOJMsPh80QYJaQVy2EdZRTpe+BbzRB7/LiCoRwBB3NPi9JWzBUNDSRe2Tle+JWzF
+MhaaH0RAqguegjH6Te0fuBTkEIcgdEjKdQrNKJe+5BEtK4TgElqA9D19SzXFaPZa
+bJCy2doDpjW/XfOxyMOxEfNyKULapbXrumIIVj8KAv3Aujqbu/hY74h+KKaQ7Kx+
+w8F6h1PgXsyTjOEeQlbfSR86L6OTnb4Phork32wGFjHCUqi36PbqoQlrCQ7acyQv
+bNLzcA+qx9txRhEwWBFdHAVSJEyUasb/t2TaX1tdzPNovUfPNbhY2ZmD+6dqdtbq
+m9bd+w5ZW39qognr8gz6/oAYz/tv5apMnBt5h4lcNgrRe+3VAxhLNEgWWIWtuFbr
+gmKZcaQC6czmAvP6gxdOYEvFfWexAgMBAAGjggKGMIICgjArBgNVHRAEJDAigA8y
+MDE2MDgwODExNTIyMlqBDzIwMTYwODIwMjA1OTU5WjAOBgNVHQ8BAf8EBAMCAQYw
+HQYDVR0OBBYEFGQ6dlrfVzGTRWbOWFUmmBWWO/7cMB8GA1UdIwQYMBaAFL0guxXq
+p/ke5JDfCHpS56oIsNfmMBIGA1UdEwEB/wQIMAYBAf8CAQAwOQYDVR0fBDIwMDAu
+oCygKoYoaHR0cDovL3d3dy5wYXNzcG9ydC5nb3YuZ3IvY3NjYS9jc2NhLmNybDCC
+AbIGA1UdIASCAakwggGlMIIBoQYMKwYBBAGqbAEKYwEAMIIBjzCCAVQGCCsGAQUF
+BwICMIIBRh6CAUIAVABoAGkAcwAgAEMAZQByAHQAaQBmAGkAYwBhAHQAZQAgAGkA
+cwAgAGcAbwB2AGUAcgBuAGUAZAAgAGIAeQAgAHQAaABlACAAcgBlAGYAZQByAHIA
+ZQBkACAAUABvAGwAaQBjAGkAZQBzACAAYQBuAGQAIAB0AGgAZQAgAEMAZQByAHQA
+aQBmAGkAYwBhAHQAaQBvAG4AIABQAHIAYQBjAHQAaQBjAGUAIABTAHQAYQB0AGUA
+bQBlAG4AdAAgAG8AZgAgAHQAaABlACAARwByAGUAZQBrACAAQwBTAEMAQQAsACAA
+dwBoAGkAYwBoACAAZgBvAHIAbQAgAGEAbgAgAGkAbgB0AGUAZwByAGEAbAAgAHAA
+YQByAHQAIABvAGYAIAB0AGgAZQAgAEMAZQByAHQAaQBmAGkAYwBhAHQAZQAuMDUG
+CCsGAQUFBwIBFilodHRwOi8vd3d3LnBhc3Nwb3J0Lmdvdi5nci9jc2NhL3BvbGlj
+aWVzLzANBgkqhkiG9w0BAQsFAAOCAgEAcirpIB6XUCkTrJujRZ1Wsc3JRJjK1h/z
+ShUFNkfoJ7pJ/mRTFGQtw3TF+EY4N6dxlN9x/LJJrUnrLldiQLzHlbMfv/LU/eiI
+xexivQM3bnTLTq5acrSth7Waau4RJocMMaoJgBdszQYKHLnw/nBHsfIZnipZDsHf
+3dfGzIW4v1iYPsQHnxMi+5AjQEOnrzGPIlTfDoEaVDrqP/18ah2Xgiatx2n5kF0F
+ImtobUE4Yhk0fdAX84FOxlOOe1nG4ihKREXKUi9XFu9/cGNLcVBQek4W5QzUIgxx
+aqjlhobumVXg64A1RiklPke/Cv3FWkyr3/faMuzdIHd4F72FIEyEXGXoXq0BTl7K
+FhNy3vPP5YLRDTW+a1xIK9Cs3a8a6EsFSOS95OWqp//DhHpNTIsaRU81hGTYXloE
+UeRlgEi0TNBce6teGDAHNaDFskTVTc8VeZ4GiiNyzBi1Zge9JGLanHl1XNx6FEMM
+ub67Nlrz43itw/6eiqh+UZM4/J96Zuee7+u+eisRkqIBHM2ea+bHqWv7XpvCTiWC
+rRybT40MMfHaYSbYaEmo89SjkYiHT+izjm6d+fqmFKcdUmpjuNQ4impfZ0KzSQ2C
+m5qUP0+jWlGYjwzuXytWjSBVGXtnroyfRvBeQ4b/PX/zdbW6ya+Z9SnC3ADboDhm
+w9186lm16uo=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIITDCCBjSgAwIBAgIBVzANBgkqhkiG9w0BAQsFADCBijEKMAgGA1UEBRMBMTEa
+MBgGA1UEChMRSGVsbGVuaWMgUmVwdWJsaWMxFDASBgNVBAMTC0NTQ0EtSEVMTEFT
+MRgwFgYDVQQLEw9IZWxsZW5pYyBQb2xpY2UxCzAJBgNVBAYTAkdSMSMwIQYJKoZI
+hvcNAQkBFhRjc2NhQHBhc3Nwb3J0Lmdvdi5ncjAeFw0xMTA4MjEwODAwMDZaFw0x
+NjExMjMyMTU5NTlaMHAxCjAIBgNVBAUTATMxGjAYBgNVBAoTEUhlbGxlbmljIFJl
+cHVibGljMRQwEgYDVQQDEwtDU0NBLUhFTExBUzELMAkGA1UEBhMCR1IxIzAhBgkq
+hkiG9w0BCQEWFGNzY2FAcGFzc3BvcnQuZ292LmdyMIICIjANBgkqhkiG9w0BAQEF
+AAOCAg8AMIICCgKCAgEA4JWyBFqReB9/HDN/0DrhLKdMGb5DMMKLtxodnYBDMP6A
+1of/8/JDNxbCHw9Q9L87pBjG0tqrVtPbmSOf3z3cChJhH+zmmmS/EO1QYO7J+qSC
+IpeJ08DR0O1og4pKIj/I7pldloHxP7Ju0351Jga02eHfp1WEN0WpeWpGN5+RupVf
+0nAbGDRqwHBZV3poykKJBU1A92DiRKUpaqyDbS/AKz9LNAkDMRjo4eBZN9TKdoeb
++7McbZS7DTvRwzTeO9NNxwsZ+0n48NsoRTaIry6uZgH2YCTqmRH33JwyhF7u0O2h
+4Nn4nqJpq6fgfqh4vCdzWEkDIiqH4wal0gAQrDSQjwsJ8tJ0Z7faABlH5sZwI96p
+dnJuTCNcJmbdTOE7GTUmpNFH3hEmeK2UvnFtEjViYeKZHlbmk/fi8YI2/5wN6/Yt
+Wi6rY4xn1I1Qf2XIf/bV770+D9N65inFBOoM3EbwTj4/nultZv1IoblJEUFMhNSC
+i93c9P9nGorSrkI5VXPfWejr8teef9151MG3jMpc/iBOogIZKBgys7ogct0sioLQ
+s56q7YSvT/N+AUl+z5VI7aLcK6/tpo6X+ztsr70NtHoTSQ6nmybLFnLtckn2AyjI
+tq6EzjULpUIu1P3N0UkKjU0txl/hU+xOk53rI04UiLVK1TxR/dj/uLUGQWI2gGkC
+AwEAAaOCAtQwggLQMCsGA1UdEAQkMCKADzIwMTEwODIxMDgwMDA2WoEPMjAxMTA4
+MjMyMDU5NTlaMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUvSC7Feqn+R7kkN8I
+elLnqgiw1+YwHwYDVR0jBBgwFoAU7Lyt45sWM4kSLgRmeInhVmmcy98wEgYDVR0T
+AQH/BAgwBgEB/wIBADA5BgNVHR8EMjAwMC6gLKAqhihodHRwOi8vd3d3LnBhc3Nw
+b3J0Lmdvdi5nci9jc2NhL2NzY2EuY3JsMIICAAYDVR0gBIIB9zCCAfMwggHvBgwr
+BgEEAapsAQpjAQAwggHdMIIBogYIKwYBBQUHAgIwggGUHoIBkABUAGgAaQBzACAA
+QwBlAHIAdABpAGYAaQBjAGEAdABlACAAaQBzACAAZwBvAHYAZQByAG4AZQBkACAA
+YgB5ACAAdABoAGUAIAByAGUAZgBlAHIAcgBlAGQAIABQAG8AbABpAGMAaQBlAHMA
+IABhAG4AZAAgAHQAaABlACAAQwBlAHIAdABpAGYAaQBjAGEAdABpAG8AbgAgAFAA
+cgBhAGMAdABpAGMAZQAgAFMAdABhAHQAZQBtAGUAbgB0ACAAbwBmACAAdABoAGUA
+IABHAHIAZQBlAGsAIABDAG8AdQBuAHQAcgB5ACAAUwBpAGcAbgBpAG4AZwAgAEMA
+ZQByAHQAaQBmAGkAYwBhAHQAaQBvAG4AIABBAHUAdABoAG8AcgBpAHQAeQAgACgA
+QwBTAEMAQQAtAEcAUgBFAEUAQwBFACkALAAgAHcAaABpAGMAaAAgAGYAbwByAG0A
+IABhAG4AIABpAG4AdABlAGcAcgBhAGwAIABwAGEAcgB0ACAAbwBmACAAdABoAGUA
+IABDAGUwNQYIKwYBBQUHAgEWKWh0dHA6Ly93d3cucGFzc3BvcnQuZ292LmdyL2Nz
+Y2EvcG9saWNpZXMvMA0GCSqGSIb3DQEBCwUAA4ICAQA8gdK+WW8qxteSeSohPDJy
+WCRD0ThZ6Ox27QdKwILrkIstYsRgVc4coNzIkzZMNnKcUkZALFsnKWN8nEwx5yCO
+nXL0jd75UCdXWGs7T1g7WdfAP9OcYSsrBJK2aBxCFmkRHwFBWuZ9MEKnK/WnFduu
+DlTSQXk9xsAjgICbmhENAC1mUk06HM3N1uv5ULLhmgCouJu3GjYOWhKw4bH9aeEN
+3CINEOGv9w+CJ6F2fjfNU2k84GvusRo2atvN+uOS+xgcI9XCCZPrWt0szZVK5ZYe
+REPZC5cRtzZiZBZXhJblFTW+EFp38fF9rtt2MneCJkcE5jTSggfwbqQXErwJ7w1+
+AHrG5OmTF6qMJZd817LqYCopVPENyProkT2wsxX8Y8wRSUCnUlzQD+LfE9Nl4dY9
+8sdtfBnwXXkOGCKLiVtoJlwlWw/infNQoaBdmJPtRfCU4mtRvMpYFvHkNzcy0n3H
+sssAqZBFrbQpkdxqGxnnIN+elloXS4rm+z0RO+155JxVYhpg4tCXBmPqnkge85OQ
+m9SkPiEFl5klbScJmTR78oCjBInB6blaz985QCPjjCIY09FxTobotr/r9RGXz9dU
+ZWLG1P63+S3tSoyY0paqf3gytmPu4lFkJHSb3lZvIUXLtUijHzNamOUpXpvgH/1G
+RetPNBV8Sr6jB0A8Mz00dA==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIC4TCCAoigAwIBAgIBNzAKBggqhkjOPQQDAjBBMQswCQYDVQQGEwJBRTEMMAoG
+A1UECgwDTU9JMQ4wDAYDVQQLDAVFUEFTUzEUMBIGA1UEAwwLVUFFIENTQ0EgMDEw
+HhcNMTUwNDE1MDU0NjU1WhcNMjQwNjE0MDU0NjU1WjBBMQswCQYDVQQGEwJBRTEM
+MAoGA1UECgwDTU9JMQ4wDAYDVQQLDAVFUEFTUzEUMBIGA1UEAwwLVUFFIENTQ0Eg
+MDEwggEzMIHsBgcqhkjOPQIBMIHgAgEBMCwGByqGSM49AQECIQCp+1fboe6pvD5m
+CpCdg41ybjv2I9UmICggE0gdH25TdzBEBCB9Wgl1/CwwV+72dTBBev/n+4BVwSbc
+XGzpSktE8zC12QQgJtxcbOlKS0TzMLXZu9d8v5WEFilc9+HOa8zcGP+MB7YEQQSL
+0q65y35XyyxLSC/8gbevud4n4eO9I8I6RFO9ms4yYlR++DXD2sT9l/hGGhRhHcnC
+d0UTLe2OVFwdVMcvBGmXAiEAqftX26Huqbw+ZgqQnYONcYw5eqO1Yab3kB4OgpdI
+VqcCAQEDQgAEesfjPgIkwdQnuATJDFr4dG+XFhxpBILo65NhNhozSMtXYW0Ic7sv
+FMY0HTVvaLMUXvooz6dYCCZdlyALcOmeqKOBlDCBkTAdBgNVHQ4EFgQUlMBAG1kS
+8CqwbiyqSsqo5eD2vRkwHwYDVR0jBBgwFoAU/3APmZxstw9znibwvEgVQcdvJVgw
+DgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYBAf8CAQAwKwYDVR0QBCQwIoAP
+MjAxNTA0MTUwOTM2NDhagQ8yMDE5MDQxNTA5MzY0OFowCgYIKoZIzj0EAwIDRwAw
+RAIgeRzy0d8tHe/anoHVUljuO/xsb5Gd4kzYGEuQ1p8hfbkCIExKyfzqQmwPVY02
+VqtdElPal0CfyRewnZyC9hiDKc1M
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDQzCCAuqgAwIBAgIBVjAKBggqhkjOPQQDAjByMQswCQYDVQQGEwJDWTEbMBkG
+A1UECgwSUmVwdWJsaWMgb2YgQ3lwcnVzMTAwLgYDVQQLDCdDaXZpbCBSZWdpc3Ry
+eSBhbmQgTWlncmF0aW9uIERlcGFydG1lbnQxFDASBgNVBAMMC0NTQ0EtQ1lQUlVT
+MB4XDTE4MTEwNDIwNDg0OFoXDTMzMDIwMzA4NDg0OFowcjELMAkGA1UEBhMCQ1kx
+GzAZBgNVBAoMElJlcHVibGljIG9mIEN5cHJ1czEwMC4GA1UECwwnQ2l2aWwgUmVn
+aXN0cnkgYW5kIE1pZ3JhdGlvbiBEZXBhcnRtZW50MRQwEgYDVQQDDAtDU0NBLUNZ
+UFJVUzCCATMwgewGByqGSM49AgEwgeACAQEwLAYHKoZIzj0BAQIhAKn7V9uh7qm8
+PmYKkJ2DjXJuO/Yj1SYgKCATSB0fblN3MEQEIH1aCXX8LDBX7vZ1MEF6/+f7gFXB
+JtxcbOlKS0TzMLXZBCAm3Fxs6UpLRPMwtdm713y/lYQWKVz34c5rzNwY/4wHtgRB
+BIvSrrnLflfLLEtIL/yBt6+53ifh470jwjpEU72azjJiVH74NcPaxP2X+EYaFGEd
+ycJ3RRMt7Y5UXB1Uxy8EaZcCIQCp+1fboe6pvD5mCpCdg41xjDl6o7VhpveQHg6C
+l0hWpwIBAQNCAASCl37O34fo0GoTNWTcwxqzoP8EBkqqQ7xfKx70GfOeNhj0zDd5
+minsxuYA6zMg2yZDOUS0EDvfdcwCTte7plISo4GUMIGRMB0GA1UdDgQWBBRauPIm
+ozC/8XbIWc+CJ5uwfs2VljAfBgNVHSMEGDAWgBR27LmVd5N0SQHG45L1UydCb6EL
+UDAOBgNVHQ8BAf8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB/wIBADArBgNVHRAEJDAi
+gA8yMDE4MTEwNDIyNDE0NlqBDzIwMjIxMTA0MjI0MTQ2WjAKBggqhkjOPQQDAgNH
+ADBEAiB3IFEiW0UKyMeId/TeChR2WO7idzprbPloGFxFzDWeagIgdbvhU1mtRWL0
+UjyzrsV8Gu3nuU7rUCddiXu3vH/CwPo=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDRDCCAuqgAwIBAgIBLTAKBggqhkjOPQQDAjByMQswCQYDVQQGEwJDWTEbMBkG
+A1UECgwSUmVwdWJsaWMgb2YgQ3lwcnVzMTAwLgYDVQQLDCdDaXZpbCBSZWdpc3Ry
+eSBhbmQgTWlncmF0aW9uIERlcGFydG1lbnQxFDASBgNVBAMMC0NTQ0EtQ1lQUlVT
+MB4XDTE0MTEwNjAwMzEyMVoXDTI5MDIwNDEyMzEyMVowcjELMAkGA1UEBhMCQ1kx
+GzAZBgNVBAoMElJlcHVibGljIG9mIEN5cHJ1czEwMC4GA1UECwwnQ2l2aWwgUmVn
+aXN0cnkgYW5kIE1pZ3JhdGlvbiBEZXBhcnRtZW50MRQwEgYDVQQDDAtDU0NBLUNZ
+UFJVUzCCATMwgewGByqGSM49AgEwgeACAQEwLAYHKoZIzj0BAQIhAKn7V9uh7qm8
+PmYKkJ2DjXJuO/Yj1SYgKCATSB0fblN3MEQEIH1aCXX8LDBX7vZ1MEF6/+f7gFXB
+JtxcbOlKS0TzMLXZBCAm3Fxs6UpLRPMwtdm713y/lYQWKVz34c5rzNwY/4wHtgRB
+BIvSrrnLflfLLEtIL/yBt6+53ifh470jwjpEU72azjJiVH74NcPaxP2X+EYaFGEd
+ycJ3RRMt7Y5UXB1Uxy8EaZcCIQCp+1fboe6pvD5mCpCdg41xjDl6o7VhpveQHg6C
+l0hWpwIBAQNCAAQYjhIU5jSqRygqeUW8vRilMSUyBCfHah5FX4UAweUDdKDxsDDL
+qbOA4AuZJdaYIuqNwSwzhl2+2opLTf8ytYgro4GUMIGRMB0GA1UdDgQWBBR27LmV
+d5N0SQHG45L1UydCb6ELUDAfBgNVHSMEGDAWgBTn2N0XWNVLQqoC24jrcB5ExpJa
+5jAOBgNVHQ8BAf8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB/wIBADArBgNVHRAEJDAi
+gA8yMDE0MTEwNjAyMzAxM1qBDzIwMTgxMTA2MDIzMDEzWjAKBggqhkjOPQQDAgNI
+ADBFAiAUaQeuE6Gg8AJhxb9/tfyvL+WZhMkWLA4ow7zOcsjfAAIhAI3Upm2mGaoM
+QAkQa/9auuTfUHKPg3Jft7F3u2RqTvTG
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDhDCCAyqgAwIBAgIBWzAKBggqhkjOPQQDAjBBMQswCQYDVQQGEwJBRTEMMAoG
+A1UECgwDTU9JMQ4wDAYDVQQLDAVFUEFTUzEUMBIGA1UEAwwLVUFFIENTQ0EgMDEw
+HhcNMTcxMDA1MTAxNzExWhcNMjYxMjA1MTAxNzExWjBBMQswCQYDVQQGEwJBRTEM
+MAoGA1UECgwDTU9JMQ4wDAYDVQQLDAVFUEFTUzEUMBIGA1UEAwwLVUFFIENTQ0Eg
+MDEwggEzMIHsBgcqhkjOPQIBMIHgAgEBMCwGByqGSM49AQECIQCp+1fboe6pvD5m
+CpCdg41ybjv2I9UmICggE0gdH25TdzBEBCB9Wgl1/CwwV+72dTBBev/n+4BVwSbc
+XGzpSktE8zC12QQgJtxcbOlKS0TzMLXZu9d8v5WEFilc9+HOa8zcGP+MB7YEQQSL
+0q65y35XyyxLSC/8gbevud4n4eO9I8I6RFO9ms4yYlR++DXD2sT9l/hGGhRhHcnC
+d0UTLe2OVFwdVMcvBGmXAiEAqftX26Huqbw+ZgqQnYONcYw5eqO1Yab3kB4OgpdI
+VqcCAQEDQgAEB4yd2p3MicAcDEhLqheFnbce5tsykV0ty6DXNM4Mb05gaj1/RFvA
+MhmQrfo6h0ealM8x1qa/7Mlh5LtgRtcrsqOCATUwggExMB0GA1UdDgQWBBT1qPmx
+56mSoIZUCNsqRxwEohX01zAfBgNVHSMEGDAWgBSUwEAbWRLwKrBuLKpKyqjl4Pa9
+GTArBgNVHRAEJDAigA8yMDE3MTAwNTEwMTcxMVqBDzIwMjExMDA1MTAxNzExWjAS
+BgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjBnBgNVHR8EYDBeMFyg
+WqBYhipodHRwczovL3BrZGRvd25sb2FkMS5pY2FvLmludC9DUkxzL0FSRS5jcmyG
+Kmh0dHBzOi8vcGtkZG93bmxvYWQyLmljYW8uaW50L0NSTHMvQVJFLmNybDAbBgNV
+HREEFDASpBAwDjEMMAoGA1UEBwwDQVJFMBgGA1UdIAQRMA8wDQYLKwYBBAGCpg8B
+AgEwCgYIKoZIzj0EAwIDSAAwRQIgbpnwE/DNZDnQzohpVzxSFvclPSZD971RoJ5G
+n0dFKYYCIQCIZ5CTJtCg1Ulcz8Lv2eGiknT4oc/DHhALit7/QGAS1w==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDxjCCA26gAwIBAgIBDDAJBgcqhkjOPQQBMFMxCzAJBgNVBAYTAkJBMQwwCgYD
+VQQKDANtY3AxDzANBgNVBAsMBmlkZGVlYTEMMAoGA1UEBRMDMDAxMRcwFQYDVQQD
+DA5jc2NhLWlkZGVlYS1iYTAeFw0xOTEwMTAwMDAwMDBaFw0yNTAyMTUwMDAwMDBa
+MFIxCzAJBgNVBAYTAkJBMQwwCgYDVQQKDANtY3AxDzANBgNVBAsMBmlkZGVlYTEL
+MAkGA1UEBRMCMTIxFzAVBgNVBAMMDmNzY2EtaWRkZWVhLWJhMIIBMzCB7AYHKoZI
+zj0CATCB4AIBATAsBgcqhkjOPQEBAiEAqftX26Huqbw+ZgqQnYONcm479iPVJiAo
+IBNIHR9uU3cwRAQgfVoJdfwsMFfu9nUwQXr/5/uAVcEm3Fxs6UpLRPMwtdkEICbc
+XGzpSktE8zC12bvXfL+VhBYpXPfhzmvM3Bj/jAe2BEEEi9Kuuct+V8ssS0gv/IG3
+r7neJ+HjvSPCOkRTvZrOMmJUfvg1w9rE/Zf4RhoUYR3JwndFEy3tjlRcHVTHLwRp
+lwIhAKn7V9uh7qm8PmYKkJ2DjXGMOXqjtWGm95AeDoKXSFanAgEBA0IABFhRXK34
+nBSvr0DokSa6+TdPG7aFGiuLGm6ffN0nGGMMQGjMU4YLBcCB9kZn7yvrPZ9Fg18u
+KCwL5OU/gkZyNTmjggFXMIIBUzArBgNVHRAEJDAigA8yMDE5MTAxMTAwMDAwMFqB
+DzIwMjQxMDExMDAwMDAwWjAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJMjXxMa
+Q07nF7PwI+k2Ycb4zagvMB8GA1UdIwQYMBaAFI8yZxEFKu70DybkCOF3NAbHvkhR
+MBIGA1UdEwEB/wQIMAYBAf8CAQAwOAYDVR0fBDEwLzAtoCugKYYnaHR0cHM6Ly93
+d3cuaWRkZWVhLmdvdi5iYS9jc2NhL2NzY2FfY3JsMEIGA1UdEQQ7MDmBFmhlbHBk
+ZXNrQGlkZGVlYS5nb3YuYmGGH2h0dHBzOi8vd3d3LmlkZGVlYS5nb3YuYmEvY3Nj
+YS8wQgYDVR0SBDswOYEWaGVscGRlc2tAaWRkZWVhLmdvdi5iYYYfaHR0cHM6Ly93
+d3cuaWRkZWVhLmdvdi5iYS9jc2NhLzAJBgcqhkjOPQQBA0cAMEQCIEYSXWb/A3um
+6DGCENXxHIq2n4v7qemGTELWdcHcIksJAiBlb6KyoOdip+2R62q6+5wpoDYug4e3
+HEv0aHf3qwV37w==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEEDCCA7agAwIBAgICAMswCQYHKoZIzj0EATCBjjELMAkGA1UEBhMCUlUxDzAN
+BgNVBAgTBlJ1c3NpYTEPMA0GA1UEBxMGTW9zY293MRcwFQYDVQQKEw5GU1VFIFNU
+QyBBdGxhczENMAsGA1UECxMEVVpJUzEUMBIGA1UEAxMLQ1NDQS1SdXNzaWExHzAd
+BgkqhkiG9w0BCQEWEGNhbWFpbEBzdGNuZXQucnUwHhcNMTkxMDExMTAxMDM3WhcN
+MzUxMDA3MTAxMDM3WjCBjjELMAkGA1UEBhMCUlUxDzANBgNVBAgTBlJ1c3NpYTEP
+MA0GA1UEBxMGTW9zY293MRcwFQYDVQQKEw5GU1VFIFNUQyBBdGxhczENMAsGA1UE
+CxMEVVpJUzEUMBIGA1UEAxMLQ1NDQS1SdXNzaWExHzAdBgkqhkiG9w0BCQEWEGNh
+bWFpbEBzdGNuZXQucnUwggFLMIIBAwYHKoZIzj0CATCB9wIBATAsBgcqhkjOPQEB
+AiEA/////wAAAAEAAAAAAAAAAAAAAAD///////////////8wWwQg/////wAAAAEA
+AAAAAAAAAAAAAAD///////////////wEIFrGNdiqOpPns+u9VXaYhrxlHQawzFOw
+9jvOPD4n0mBLAxUExJ02CIbnBJNqZnjhE50mt4GffpAEQQRrF9Hy4SxCR/i85uVj
+pEDydwN9gS3rM6D0oTlF2JjClk/jQuL+Gn+bjufrSnwPnhYrzjNXazFezsu2QGg3
+v1H1AiEA/////wAAAAD//////////7zm+q2nF56E87nKwvxjJVECAQEDQgAEU0qr
+KcB47oWWiby4KUXFHtEjkI9nPWp7IGC7QE3+xw/5ZIy5bKA3kpYhBRdnl8d9FLS4
+h/PWqVP4SkvZH33prqOCAQ0wggEJMB0GA1UdDgQWBBSFDFP3Fg5d72SlZ3z3wYSS
+BdKynDCBwwYDVR0jBIG7MIG4gBSgHodQJ0WSJ2Di0DFAN14UfEbAAqGBlKSBkTCB
+jjELMAkGA1UEBhMCUlUxDzANBgNVBAgTBlJ1c3NpYTEPMA0GA1UEBxMGTW9zY293
+MRcwFQYDVQQKEw5GU1VFIFNUQyBBdGxhczENMAsGA1UECxMEVVpJUzEUMBIGA1UE
+AxMLQ1NDQS1SdXNzaWExHzAdBgkqhkiG9w0BCQEWEGNhbWFpbEBzdGNuZXQucnWC
+CQDRqAnkuxfpkzASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAJ
+BgcqhkjOPQQBA0kAMEYCIQD3YNRr536d+6mXwGlb4DT2WngbLBRmXJWulgE1YxNC
+UgIhAJFH4TBQN0nOVOTfDX83SlGInOoXgp6wJR8TzeoziqD9
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEOTCCA8CgAwIBAgIIARl/d+5ssrUwCgYIKoZIzj0EAwMwQzELMAkGA1UEBhMC
+VVoxDDAKBgNVBAoMA0dPVjEMMAoGA1UECwwDR0NQMRgwFgYDVQQDDA9DU0NBLVVa
+QkVLSVNUQU4wHhcNMjMwMjIwMDkxMDMwWhcNMzMwNjA0MTIxOTQ0WjBDMQswCQYD
+VQQGEwJVWjEMMAoGA1UECgwDR09WMQwwCgYDVQQLDANHQ1AxGDAWBgNVBAMMD0NT
+Q0EtVVpCRUtJU1RBTjCCAbUwggFNBgcqhkjOPQIBMIIBQAIBATA8BgcqhkjOPQEB
+AjEAjLkegqM4bSgPXW9+UOZB3xUvcQntVFa0ErHaGX+3ESOs06cpkB0acYdHABMx
+B+xTMGQEMHvDgsY9jBUMPHIICs4Fr6DCvqKOT7InhxORZe+6kfkPiqWBSlA61OsE
+qMfdIs4oJgQwBKjH3SLOKCaLObVUFvBEfC+3feEH3NKmLogOpT7rYtV8tDkCldvJ
+lDq3hpb6UEwRBGEEHRxk8GjPRf+ipjqBt8E/a4hHo+d+8U/j23/K/gy9EOjoJuA0
+NtZGqu+HsuJH1K8eir4ddSD5wqRcseuOlc/VUmK3Cyn+7Fhk4ZwFT/mRKSgORkYh
+d5GBEUKCA0EmPFMVAjEAjLkegqM4bSgPXW9+UOZB3xUvcQntVFazHxZubKwEJafP
+Orava3/DEDuIMgLpBGVlAgEBA2IABAFtJIbtePT4Wk2JiRN5+uF0lDs2d/0qUqT2
+jsaOI0EloArqaX1r1hQwcVqv0HJUhGeYT0dLchA+8a0RGRxls9DImb2KksTZ0yr0
+AWlR1NqwyaV1JCzqW/rw22mptWduSqOCAT4wggE6MB0GA1UdDgQWBBTWX1z0KtOk
+wQraPTJ0vGORHeSHKjASBgNVHRMBAf8ECDAGAQH/AgEAMB8GA1UdIwQYMBaAFLkP
+ah+C87VYA8+bMYuIOolUxH8XMBsGA1UdEgQUMBKkEDAOMQwwCgYDVQQHDANVWkIw
+KwYDVR0QBCQwIoAPMjAyMzAyMjAwOTEwMzBagQ8yMDI2MDIxOTA5MTAzMFowbQYD
+VR0fBGYwZDAwoC6gLIYqaHR0cHM6Ly9wa2Rkb3dubG9hZDEuaWNhby5pbnQvQ1JM
+cy9VWkIuY3JsMDCgLqAshipodHRwczovL3BrZGRvd25sb2FkMi5pY2FvLmludC9D
+UkxzL1VaQi5jcmwwDgYDVR0PAQH/BAQDAgEGMBsGA1UdEQQUMBKkEDAOMQwwCgYD
+VQQHDANVWkIwCgYIKoZIzj0EAwMDZwAwZAIwFyD3lQ/No+z/rQHOWYsT+8nXbPrD
+3NbiB5rLDuR6sCzpeI2e1QO4qD/abdPj+uk1AjBFO/TWqBOtmSTbBW2Y2MX+FsaX
+f5XFrmT5Qx+c6hMLwOYJhrfNcq6xvuKV22HKOh8=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEOTCCA8CgAwIBAgIINq+W19LQVvgwCgYIKoZIzj0EAwMwQzELMAkGA1UEBhMC
+VVoxDDAKBgNVBAoMA0dPVjEMMAoGA1UECwwDR0NQMRgwFgYDVQQDDA9DU0NBLVVa
+QkVLSVNUQU4wHhcNMjAwMzA0MTIxOTQ0WhcNMzIwODAzMDU1OTAwWjBDMQswCQYD
+VQQGEwJVWjEMMAoGA1UECgwDR09WMQwwCgYDVQQLDANHQ1AxGDAWBgNVBAMMD0NT
+Q0EtVVpCRUtJU1RBTjCCAbUwggFNBgcqhkjOPQIBMIIBQAIBATA8BgcqhkjOPQEB
+AjEAjLkegqM4bSgPXW9+UOZB3xUvcQntVFa0ErHaGX+3ESOs06cpkB0acYdHABMx
+B+xTMGQEMHvDgsY9jBUMPHIICs4Fr6DCvqKOT7InhxORZe+6kfkPiqWBSlA61OsE
+qMfdIs4oJgQwBKjH3SLOKCaLObVUFvBEfC+3feEH3NKmLogOpT7rYtV8tDkCldvJ
+lDq3hpb6UEwRBGEEHRxk8GjPRf+ipjqBt8E/a4hHo+d+8U/j23/K/gy9EOjoJuA0
+NtZGqu+HsuJH1K8eir4ddSD5wqRcseuOlc/VUmK3Cyn+7Fhk4ZwFT/mRKSgORkYh
+d5GBEUKCA0EmPFMVAjEAjLkegqM4bSgPXW9+UOZB3xUvcQntVFazHxZubKwEJafP
+Orava3/DEDuIMgLpBGVlAgEBA2IABCjPa0FGf3HOCTp//gAzk7E8b3c6bjW/yGoX
+veUWBoXdB6c0jUKDUgJJxku7+wn5dRVkYeRuTEishz7M0t4UBWzaxN5aBRS3Z3rY
+jyTz8EgnxK2ZkrRfbWWQn7KyXQTW+KOCAT4wggE6MB0GA1UdDgQWBBS5D2ofgvO1
+WAPPmzGLiDqJVMR/FzASBgNVHRMBAf8ECDAGAQH/AgEAMB8GA1UdIwQYMBaAFFFG
+dnT08vRiaEDqACwSH4huBx9HMBsGA1UdEgQUMBKkEDAOMQwwCgYDVQQHDANVWkIw
+KwYDVR0QBCQwIoAPMjAyMDAzMDQxMjE5NDRagQ8yMDIzMDMwNDEyMTk0NFowbQYD
+VR0fBGYwZDAwoC6gLIYqaHR0cHM6Ly9wa2Rkb3dubG9hZDEuaWNhby5pbnQvQ1JM
+cy9VWkIuY3JsMDCgLqAshipodHRwczovL3BrZGRvd25sb2FkMi5pY2FvLmludC9D
+UkxzL1VaQi5jcmwwDgYDVR0PAQH/BAQDAgEGMBsGA1UdEQQUMBKkEDAOMQwwCgYD
+VQQHDANVWkIwCgYIKoZIzj0EAwMDZwAwZAIwY5ICk3yvpQg5cZo5dnoTMEQdvsvB
+f7klNpRnlOsHoAknCCMpPkypSvcHhhksfzDgAjAPV0hJ2FrWUZImhcEajqFfIE/T
+53hGAsccvdKLWyi9vNGfgOLZMUX9K/09mRFdMCw=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEOTCCA8CgAwIBAgIIT5J4wvP9vOwwCgYIKoZIzj0EAwMwQzELMAkGA1UEBhMC
+VVoxDDAKBgNVBAoMA0dPVjEMMAoGA1UECwwDR0NQMRgwFgYDVQQDDA9DU0NBLVVa
+QkVLSVNUQU4wHhcNMjMwMjIwMDkxMDMwWhcNMzcwMjE2MDkxMDMwWjBDMQswCQYD
+VQQGEwJVWjEMMAoGA1UECgwDR09WMQwwCgYDVQQLDANHQ1AxGDAWBgNVBAMMD0NT
+Q0EtVVpCRUtJU1RBTjCCAbUwggFNBgcqhkjOPQIBMIIBQAIBATA8BgcqhkjOPQEB
+AjEAjLkegqM4bSgPXW9+UOZB3xUvcQntVFa0ErHaGX+3ESOs06cpkB0acYdHABMx
+B+xTMGQEMHvDgsY9jBUMPHIICs4Fr6DCvqKOT7InhxORZe+6kfkPiqWBSlA61OsE
+qMfdIs4oJgQwBKjH3SLOKCaLObVUFvBEfC+3feEH3NKmLogOpT7rYtV8tDkCldvJ
+lDq3hpb6UEwRBGEEHRxk8GjPRf+ipjqBt8E/a4hHo+d+8U/j23/K/gy9EOjoJuA0
+NtZGqu+HsuJH1K8eir4ddSD5wqRcseuOlc/VUmK3Cyn+7Fhk4ZwFT/mRKSgORkYh
+d5GBEUKCA0EmPFMVAjEAjLkegqM4bSgPXW9+UOZB3xUvcQntVFazHxZubKwEJafP
+Orava3/DEDuIMgLpBGVlAgEBA2IABAFtJIbtePT4Wk2JiRN5+uF0lDs2d/0qUqT2
+jsaOI0EloArqaX1r1hQwcVqv0HJUhGeYT0dLchA+8a0RGRxls9DImb2KksTZ0yr0
+AWlR1NqwyaV1JCzqW/rw22mptWduSqOCAT4wggE6MB0GA1UdDgQWBBTWX1z0KtOk
+wQraPTJ0vGORHeSHKjASBgNVHRMBAf8ECDAGAQH/AgEAMB8GA1UdIwQYMBaAFNZf
+XPQq06TBCto9MnS8Y5Ed5IcqMBsGA1UdEgQUMBKkEDAOMQwwCgYDVQQHDANVWkIw
+KwYDVR0QBCQwIoAPMjAyMzAyMjAwOTEwMzBagQ8yMDI2MDIxOTA5MTAzMFowbQYD
+VR0fBGYwZDAwoC6gLIYqaHR0cHM6Ly9wa2Rkb3dubG9hZDEuaWNhby5pbnQvQ1JM
+cy9VWkIuY3JsMDCgLqAshipodHRwczovL3BrZGRvd25sb2FkMi5pY2FvLmludC9D
+UkxzL1VaQi5jcmwwDgYDVR0PAQH/BAQDAgEGMBsGA1UdEQQUMBKkEDAOMQwwCgYD
+VQQHDANVWkIwCgYIKoZIzj0EAwMDZwAwZAIwCfjSRNKB47klvr0Udvm5b3csWacH
+qV6J0uJYXFmCvgQOSGxOZU02CeLbqW3luM/AAjBWZVVvRqozjNCGIzURPKXAvdOj
+igVeDcd6gGJ36RBDiW3htuhDnAfxW3vg9/Rjmqk=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEOjCCA8CgAwIBAgIICBiOSszdbIMwCgYIKoZIzj0EAwMwQzELMAkGA1UEBhMC
+VVoxDDAKBgNVBAoMA0dPVjEMMAoGA1UECwwDR0NQMRgwFgYDVQQDDA9DU0NBLVVa
+QkVLSVNUQU4wHhcNMjAwMzA0MTIxOTQ0WhcNMzMwNjA0MTIxOTQ0WjBDMQswCQYD
+VQQGEwJVWjEMMAoGA1UECgwDR09WMQwwCgYDVQQLDANHQ1AxGDAWBgNVBAMMD0NT
+Q0EtVVpCRUtJU1RBTjCCAbUwggFNBgcqhkjOPQIBMIIBQAIBATA8BgcqhkjOPQEB
+AjEAjLkegqM4bSgPXW9+UOZB3xUvcQntVFa0ErHaGX+3ESOs06cpkB0acYdHABMx
+B+xTMGQEMHvDgsY9jBUMPHIICs4Fr6DCvqKOT7InhxORZe+6kfkPiqWBSlA61OsE
+qMfdIs4oJgQwBKjH3SLOKCaLObVUFvBEfC+3feEH3NKmLogOpT7rYtV8tDkCldvJ
+lDq3hpb6UEwRBGEEHRxk8GjPRf+ipjqBt8E/a4hHo+d+8U/j23/K/gy9EOjoJuA0
+NtZGqu+HsuJH1K8eir4ddSD5wqRcseuOlc/VUmK3Cyn+7Fhk4ZwFT/mRKSgORkYh
+d5GBEUKCA0EmPFMVAjEAjLkegqM4bSgPXW9+UOZB3xUvcQntVFazHxZubKwEJafP
+Orava3/DEDuIMgLpBGVlAgEBA2IABCjPa0FGf3HOCTp//gAzk7E8b3c6bjW/yGoX
+veUWBoXdB6c0jUKDUgJJxku7+wn5dRVkYeRuTEishz7M0t4UBWzaxN5aBRS3Z3rY
+jyTz8EgnxK2ZkrRfbWWQn7KyXQTW+KOCAT4wggE6MB0GA1UdDgQWBBS5D2ofgvO1
+WAPPmzGLiDqJVMR/FzASBgNVHRMBAf8ECDAGAQH/AgEAMB8GA1UdIwQYMBaAFLkP
+ah+C87VYA8+bMYuIOolUxH8XMBsGA1UdEgQUMBKkEDAOMQwwCgYDVQQHDANVWkIw
+KwYDVR0QBCQwIoAPMjAyMDAzMDQxMjE5NDRagQ8yMDIzMDMwNDEyMTk0NFowbQYD
+VR0fBGYwZDAwoC6gLIYqaHR0cHM6Ly9wa2Rkb3dubG9hZDEuaWNhby5pbnQvQ1JM
+cy9VWkIuY3JsMDCgLqAshipodHRwczovL3BrZGRvd25sb2FkMi5pY2FvLmludC9D
+UkxzL1VaQi5jcmwwDgYDVR0PAQH/BAQDAgEGMBsGA1UdEQQUMBKkEDAOMQwwCgYD
+VQQHDANVWkIwCgYIKoZIzj0EAwMDaAAwZQIxAIK1P8NhnT6zwHBTxjbiulSSLE+a
+wKaNZ2mgVwKtuOiPxGXnn0Ii10FXiwSwMJL6PQIwdFoA1FHyzQ5VUeO2L0KwAjYP
+5uUv01rN1PcMxRwrMpyymunwAACPbhtIUBKUQJhQ
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIERzCCAq+gAwIBAgIEAQAAMDANBgkqhkiG9w0BAQsFADBCMRcwFQYDVQQDDA5D
+U0NBIE1hY2Vkb25pYTEMMAoGA1UECwwDTU9JMQwwCgYDVQQKDANHT1YxCzAJBgNV
+BAYTAk1LMB4XDTEyMDMxOTA4MzUwMFoXDTI3MDYxOTA4MzUwMFowQjEXMBUGA1UE
+AwwOQ1NDQSBNYWNlZG9uaWExDDAKBgNVBAsMA01PSTEMMAoGA1UECgwDR09WMQsw
+CQYDVQQGEwJNSzCCAaIwDQYJKoZIhvcNAQEBBQADggGPADCCAYoCggGBAKrJgMAw
+9DS7mvPrrQO7/CUto7F4jLGDqYjaBAbNro3ETm2mZbFA8ymtsTkkXMbXjJ06VrJn
+pK9JbNyDnyZNESAoRwL0V8RqQ72rLsH70JRlah6lJIvLK9VQGDNwV3SDa+fyXYOO
+ZoZMlWRgIiQc0o//LU8hqb5SnG1gbTG61kmRbwLjFu/nMnFQMF8xSsEnOf7okZlc
+dIjW6cNjSvDMtGS1pHG6jkDGNbZKieZPLd3Xd+Q8C9POE28+BsVr/qzCdIX9tLAT
+m68YWJCJhBpF90XRFZlInxRcuqLjHo3LGkyl+ztlwIW2wlzXLHIOBuZPF4dw+SIe
+yF74Us6YuwShPTjs/Ho38hmunaoinHJfgnAe+FbC6vYvMHfYXbp/pMwSEVDG1d4g
+vDX0Q3BzoVfgeHYX1OLFShezyy5pIGQSSEE2TeB2jroIec0YGgBZd4YgQmkdUUFw
+RDL4LDTLuBzSGKW3ogv1ODAqKDslOacAXAnzlR5p25jCLW2V7X33slfqgwIDAQAB
+o0UwQzASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4E
+FgQU5Wj6d0XeO9EzaKemxwIae3wIKpQwDQYJKoZIhvcNAQELBQADggGBADiyFhle
+hMOnN04Zrqj/qAIBug1vMCDKMTYkgOguKvU/oescsi45liXsj6tRb12ZjmrQSH5W
+JBeDbSabX5V2Daa7bdi4wPUiM0NkMSsL+c6purVDLbcUwH3y409XwVaqv4pb8g5i
+6N8FvMLxlOQVaARhHApEPvjGj8hNw/UPCDCyYOmy3fudgpsHan2PditFMR+UbkXQ
+dI32tBdGMOYBJNUlyTk4AJ1c0ayUsZ6yu/qf3jeVy4VsXpyZpk8BX4CsfQzHB7Cy
+rCOm7OqaPB/jgrlp6FNlz3Ory0/9dI8La3sZcEuYmlYpEYlwgf9XfT54p5V6cfEj
+QHM1Sj5bsjqJNdSuA7TQafiHTRuX/5SVnDwRiuMI+h3QI1nTGekxceN1eKf8m4TZ
+aC4EKiawTt00quUZyFATcAJ146sGrBbB9qsmKCnwhd3tQqdt/Mei1RGNfY8SglzH
+uWL1myoHOwxiRB8YbGL75I3pYrSIWGMh20g1F7ChbTgCPlq5zoep+gxQsg==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIERzCCAq+gAwIBAgIEAQAAWzANBgkqhkiG9w0BAQsFADBCMRcwFQYDVQQDDA5D
+U0NBIE1hY2Vkb25pYTEMMAoGA1UECwwDTU9JMQwwCgYDVQQKDANHT1YxCzAJBgNV
+BAYTAk1LMB4XDTE3MDMxNDA4MzUwMFoXDTMyMDYxNDA4MzUwMFowQjEXMBUGA1UE
+AwwOQ1NDQSBNYWNlZG9uaWExDDAKBgNVBAsMA01PSTEMMAoGA1UECgwDR09WMQsw
+CQYDVQQGEwJNSzCCAaIwDQYJKoZIhvcNAQEBBQADggGPADCCAYoCggGBAL6rafEV
+mzmSwXGbPJmHuyUXENUkRjk0fPl0TPHvNY2p5/6kJdNMx3RzqVpcHrsCmzH3Ez+b
+vQMsrtuCIXOxPnR7gO+H2DbPdvlVdowHHLdbIivsNFmGm5rf/wfJEKTJQfaO0vKW
+XUXIbggQ8RIQ5f9bPeLALmwJjR3MHWPVn4yz1h6LjEbR082z6zfXCxY0I7KoaL8q
+FKQmZxmAb/Z8B/Bt0Yz/UZp/25xud93XNr0I+zTSmiko+LS/mgWoq4lktpzZvVkX
+JbXh/jEnoInuSFx3oiCsGN8z0P8MQ33qPdTdQ8ruC7XW15rOuE4ih9TbEj+bA0qj
+EJ3yDx6gGg5bYK0NeoSVjlo1Aa3mXjQ60liTRIn5X9O9lp07sp6gyLSaylC7gsH2
+vkhm/j2/IJbg09VOxyZVUBGqEtS1U/rjDgj6h5uEEgWVjFgsgTs3MoiFCgOB7Off
+vh0lb96s8q9QNxg/NxBP2H6ecaKHXYSxcOIJVE1w1XJruzY3bk8ffk4iSQIDAQAB
+o0UwQzASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4E
+FgQUnrTZsCB6ninwDR07QtWdxql5kQwwDQYJKoZIhvcNAQELBQADggGBAH2uULrE
+Vf3bksq40D+zvn+bfYy30kQtMuvuJ1iBIOLF24TKqs/wEpQ8+OFwk9Fn7BCUDSgZ
+uZvnqFpEevfO7zRWh1NRp4BnVNHB0oG1hqrnqtVYvhA7sSaYryZc09LWeYoq3ynH
+v6IUDWTifvrcX47hK7MWd1+eKsQvwbj3pktD2I/OkluUmoKHCy4vmojeWE5QoyX3
+9wG0LTFWy5d78wQEcE1VgAggvZspLRQn2tzJaIB1rcdwZB2nosjPd2L7y+bV6OlW
+mQJw6C5xT8Zcq021BR2MR7t2uzMZ2nbt3rBy6RpBVzYmzyFB8xvvN45c34nDSNYY
+nHWIbKzFLOwDqr97fVaI1m4iV9wcy7acDpKtAYcYQ9M05Vyup2br3u2lfkhzzMoW
+/85AZe7N37tshXqFoO7Bour7YaUr9t8f5OXq0Rj/huNegp1B/xbBc3MfECNLlXND
+C1MdfRK8sV2jtpS7DwfzX7PtEZrXuhdiQpHuXwGnQX2ac4iKadzuNP60nA==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEdDCCA/mgAwIBAgINAZuh45gDxcFwc8UyCjAKBggqhkjOPQQDAjBRMRUwEwYD
+VQQDDAxDU0NBIEhVTkdBUlkxHTAbBgNVBAsMFE1pbmlzdHJ5IG9mIEludGVyaW9y
+MQwwCgYDVQQKDANHT1YxCzAJBgNVBAYTAkhVMB4XDTIzMDQxMzA5MDAwMFoXDTM0
+MDEyMDA5MTUwM1owUTEVMBMGA1UEAwwMQ1NDQSBIVU5HQVJZMR0wGwYDVQQLDBRN
+aW5pc3RyeSBvZiBJbnRlcmlvcjEMMAoGA1UECgwDR09WMQswCQYDVQQGEwJIVTCC
+AbUwggFNBgcqhkjOPQIBMIIBQAIBATA8BgcqhkjOPQEBAjEA////////////////
+//////////////////////////7/////AAAAAAAAAAD/////MGQEMP//////////
+///////////////////////////////+/////wAAAAAAAAAA/////AQwszEvp+I+
+5+SYjgVr4/gtGRgdnG7+gUESAxQIj1ATh1rGVjmNii7RnSqFyO3T7CrvBGEEqofK
+Ir6LBTeOscce8yCtdG4dO2KLp5uYWfdB4IJUKjhVAvJdv1UpbDpUXjhydgq3Nhfe
+SpYmLG9dnpi/kpLcKfj0Hb0omhR86doxE7XwuMAKYLHOHX6BnXpDHXyQ6g5fAjEA
+////////////////////////////////x2NNgfQ3Ld9YGg2ySLCneuzsGWrMxSlz
+AgEBA2IABIN3NPA+NcOMs12jbjWB9k+jj/ZXPfZm0glOFdoWQZNgtLDrswzBKiK0
+RSb2TaCe9edFak4kh55ebSF9cVWvYSvJnqYiURvcThMh/fJ0Sc/Ad6p8iDTnoYa9
+bVp+zaBidqOCAVYwggFSMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQD
+AgEGMB8GA1UdIwQYMBaAFOV2Q2Ci6Iger06tTwG4ebxGay7GMB0GA1UdDgQWBBST
+Jbk39V0vZCOMa/mi+SgTpTCUIDArBgNVHRAEJDAigA8yMDIzMDQxMzA5MDAwMFqB
+DzIwMjYwNDEzMDkwMDAwWjANBgdngQgBAQYBBAIFADAzBgNVHREELDAqgRZjc2Nh
+LWh1bmdhcnlAYm0uZ292Lmh1pBAwDjEMMAoGA1UEBwwDSFVOMDMGA1UdEgQsMCqB
+FmNzY2EtaHVuZ2FyeUBibS5nb3YuaHWkEDAOMQwwCgYDVQQHDANIVU4wRgYDVR0f
+BD8wPTA7oDmgN4Y1aHR0cDovL255aWx2YW50YXJ0by5odS9sZXRvbHRlcy9DU0NB
+L0NTQ0EtSFVOR0FSWS5jcmwwCgYIKoZIzj0EAwIDaQAwZgIxAO01PKJyX0jkyCQ7
+yP3RxeSMVMh14A/SHimkUQVTHFqfaeOD5WJp2J8S/ObjX9HezwIxAICHmgyoYiPS
+roTX5/TnDAN+oRFxAkkOVZnen49cU9YAWeM3VBeoZvV0mTM4aIt+1w==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEoDCCBCegAwIBAgIBATAKBggqhkjOPQQDAzBPMQswCQYDVQQGEwJERTENMAsG
+A1UECgwEYnVuZDEMMAoGA1UECwwDYnNpMQwwCgYDVQQFEwMxMDIxFTATBgNVBAMM
+DGNzY2EtZ2VybWFueTAeFw0xNjA3MjYwODQxMjBaFw0zMDAxMjYyMzU5NTlaME8x
+CzAJBgNVBAYTAkRFMQ0wCwYDVQQKDARidW5kMQwwCgYDVQQLDANic2kxDDAKBgNV
+BAUTAzEwMjEVMBMGA1UEAwwMY3NjYS1nZXJtYW55MIIBtTCCAU0GByqGSM49AgEw
+ggFAAgEBMDwGByqGSM49AQECMQCMuR6CozhtKA9db35Q5kHfFS9xCe1UVrQSsdoZ
+f7cRI6zTpymQHRpxh0cAEzEH7FMwZAQwe8OCxj2MFQw8cggKzgWvoMK+oo5PsieH
+E5Fl77qR+Q+KpYFKUDrU6wSox90izigmBDAEqMfdIs4oJos5tVQW8ER8L7d94Qfc
+0qYuiA6lPuti1Xy0OQKV28mUOreGlvpQTBEEYQQdHGTwaM9F/6KmOoG3wT9riEej
+537xT+Pbf8r+DL0Q6Ogm4DQ21kaq74ey4kfUrx6Kvh11IPnCpFyx646Vz9VSYrcL
+Kf7sWGThnAVP+ZEpKA5GRiF3kYERQoIDQSY8UxUCMQCMuR6CozhtKA9db35Q5kHf
+FS9xCe1UVrMfFm5srAQlp886tq9rf8MQO4gyAukEZWUCAQEDYgAEdVfPID4LAMXY
+oFmN/8VCXXLEm+rsxR/9E4HDXP27vqPqs0E09z6CAtA265ZbjWItC6GGGnsX+uY5
+yMJ5gi5e3Z3Ln8wTXj3dWmJmixM/ad2nMADR7b/FAU0AhqNJdyGCo4IBlDCCAZAw
+HQYDVR0OBBYEFM1jlJfNnoxHdPkqIkpqCH5LcwEvMA4GA1UdDwEB/wQEAwIBBjAr
+BgNVHRAEJDAigA8yMDE2MDcyNjA4NDEyMFqBDzIwMTkwNzI2MjM1OTU5WjAWBgNV
+HSAEDzANMAsGCQQAfwAHAwEBATBRBgNVHREESjBIgRhjc2NhLWdlcm1hbnlAYnNp
+LmJ1bmQuZGWGHGh0dHBzOi8vd3d3LmJzaS5idW5kLmRlL2NzY2GkDjAMMQowCAYD
+VQQHDAFEMFEGA1UdEgRKMEiBGGNzY2EtZ2VybWFueUBic2kuYnVuZC5kZYYcaHR0
+cHM6Ly93d3cuYnNpLmJ1bmQuZGUvY3NjYaQOMAwxCjAIBgNVBAcMAUQwEgYDVR0T
+AQH/BAgwBgEB/wIBADAwBgNVHR8EKTAnMCWgI6Ahhh9odHRwOi8vd3d3LmJzaS5i
+dW5kLmRlL2NzY2FfY3JsMA0GB2eBCAEBBgEEAgUAMB8GA1UdIwQYMBaAFM1jlJfN
+noxHdPkqIkpqCH5LcwEvMAoGCCqGSM49BAMDA2cAMGQCMD7aA8D/JueefxfzqHYd
+GByUB30IMFibTksnMR0KV62fAyFW2e2iw7p6tj9u83VwPwIwTJB5V/cnCnatybh0
+HKEsoKt4wiRUUIsqFkdZZHd4wTYOlcCNjKH2mpN/QD5W1tJ1
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEoTCCBCigAwIBAgICAJswCgYIKoZIzj0EAwMwTzELMAkGA1UEBhMCREUxDTAL
+BgNVBAoMBGJ1bmQxDDAKBgNVBAsMA2JzaTEMMAoGA1UEBRMDMTAxMRUwEwYDVQQD
+DAxjc2NhLWdlcm1hbnkwHhcNMTYwNzI2MDg0MzMxWhcNMjcwNDMwMjM1OTU5WjBP
+MQswCQYDVQQGEwJERTENMAsGA1UECgwEYnVuZDEMMAoGA1UECwwDYnNpMQwwCgYD
+VQQFEwMxMDIxFTATBgNVBAMMDGNzY2EtZ2VybWFueTCCAbUwggFNBgcqhkjOPQIB
+MIIBQAIBATA8BgcqhkjOPQEBAjEAjLkegqM4bSgPXW9+UOZB3xUvcQntVFa0ErHa
+GX+3ESOs06cpkB0acYdHABMxB+xTMGQEMHvDgsY9jBUMPHIICs4Fr6DCvqKOT7In
+hxORZe+6kfkPiqWBSlA61OsEqMfdIs4oJgQwBKjH3SLOKCaLObVUFvBEfC+3feEH
+3NKmLogOpT7rYtV8tDkCldvJlDq3hpb6UEwRBGEEHRxk8GjPRf+ipjqBt8E/a4hH
+o+d+8U/j23/K/gy9EOjoJuA0NtZGqu+HsuJH1K8eir4ddSD5wqRcseuOlc/VUmK3
+Cyn+7Fhk4ZwFT/mRKSgORkYhd5GBEUKCA0EmPFMVAjEAjLkegqM4bSgPXW9+UOZB
+3xUvcQntVFazHxZubKwEJafPOrava3/DEDuIMgLpBGVlAgEBA2IABHVXzyA+CwDF
+2KBZjf/FQl1yxJvq7MUf/ROBw1z9u76j6rNBNPc+ggLQNuuWW41iLQuhhhp7F/rm
+OcjCeYIuXt2dy5/ME1493VpiZosTP2ndpzAA0e2/xQFNAIajSXchgqOCAZQwggGQ
+MB8GA1UdIwQYMBaAFMF7qRX3XN3Saz1gmiNU3hLuPw7GMB0GA1UdDgQWBBTNY5SX
+zZ6MR3T5KiJKagh+S3MBLzAOBgNVHQ8BAf8EBAMCAQYwKwYDVR0QBCQwIoAPMjAx
+NjA3MjYwODQzMzFagQ8yMDE5MDcyNjIzNTk1OVowFgYDVR0gBA8wDTALBgkEAH8A
+BwMBAQEwUQYDVR0RBEowSIEYY3NjYS1nZXJtYW55QGJzaS5idW5kLmRlhhxodHRw
+czovL3d3dy5ic2kuYnVuZC5kZS9jc2NhpA4wDDEKMAgGA1UEBwwBRDBRBgNVHRIE
+SjBIgRhjc2NhLWdlcm1hbnlAYnNpLmJ1bmQuZGWGHGh0dHBzOi8vd3d3LmJzaS5i
+dW5kLmRlL2NzY2GkDjAMMQowCAYDVQQHDAFEMBIGA1UdEwEB/wQIMAYBAf8CAQAw
+MAYDVR0fBCkwJzAloCOgIYYfaHR0cDovL3d3dy5ic2kuYnVuZC5kZS9jc2NhX2Ny
+bDANBgdngQgBAQYBBAIFADAKBggqhkjOPQQDAwNnADBkAjBd3GejEz890cl4hdjB
+f1GaZ0pQ/Do0IisTPwWmqKk1O2XfOEGQE7JIBP61pVRd+bECMHWuWR0DKV7h3slm
+1MxzYizjscrgCVYk7AloR/0m6qp8Av/jVjaR1e1I2GZxsZlZ/g==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEqzCCBFGgAwIBAgIBZzAKBggqhkjOPQQDAjByMQswCQYDVQQGEwJDWTEbMBkG
+A1UECgwSUmVwdWJsaWMgb2YgQ3lwcnVzMTAwLgYDVQQLDCdDaXZpbCBSZWdpc3Ry
+eSBhbmQgTWlncmF0aW9uIERlcGFydG1lbnQxFDASBgNVBAMMC0NTQ0EtQ1lQUlVT
+MB4XDTIwMDcwMjExMDM0MloXDTMzMDIwMzA4NDE0NlowcjELMAkGA1UEBhMCQ1kx
+GzAZBgNVBAoMElJlcHVibGljIG9mIEN5cHJ1czEwMC4GA1UECwwnQ2l2aWwgUmVn
+aXN0cnkgYW5kIE1pZ3JhdGlvbiBEZXBhcnRtZW50MRQwEgYDVQQDDAtDU0NBLUNZ
+UFJVUzCCAbUwggFNBgcqhkjOPQIBMIIBQAIBATA8BgcqhkjOPQEBAjEAjLkegqM4
+bSgPXW9+UOZB3xUvcQntVFa0ErHaGX+3ESOs06cpkB0acYdHABMxB+xTMGQEMHvD
+gsY9jBUMPHIICs4Fr6DCvqKOT7InhxORZe+6kfkPiqWBSlA61OsEqMfdIs4oJgQw
+BKjH3SLOKCaLObVUFvBEfC+3feEH3NKmLogOpT7rYtV8tDkCldvJlDq3hpb6UEwR
+BGEEHRxk8GjPRf+ipjqBt8E/a4hHo+d+8U/j23/K/gy9EOjoJuA0NtZGqu+HsuJH
+1K8eir4ddSD5wqRcseuOlc/VUmK3Cyn+7Fhk4ZwFT/mRKSgORkYhd5GBEUKCA0Em
+PFMVAjEAjLkegqM4bSgPXW9+UOZB3xUvcQntVFazHxZubKwEJafPOrava3/DEDuI
+MgLpBGVlAgEBA2IABDXclCnGI8I7ZjBdUEJrLtu79tffHDfJDrfZLSJtn5ueaEG7
+5xVDSlUUAVAtAGQ2tYjHayS0PkDBoLtSOJm6od3VlTBxySEaE5zV1VxDpL2QkmDs
+LXOtjRvqYkdw4lKyw6OCAXgwggF0MB8GA1UdIwQYMBaAFFq48iajML/xdshZz4In
+m7B+zZWWMB0GA1UdDgQWBBSf8zCfozbsKURoFsDCdMqLao6IGjASBgNVHRMBAf8E
+CDAGAQH/AgEAMFIGA1UdEgRLMEmBGGN5cC1jc2NhQGNybWQubW9pLmdvdi5jeaQQ
+MA4xDDAKBgNVBAcMA0NZUIYbaHR0cDovL2NzY2EuY3JtZC5tb2kuZ292LmN5MCsG
+A1UdEAQkMCKADzIwMjAwNzAyMTEwMzQyWoEPMjAyNDA3MDIxMTAzNDJaMDkGA1Ud
+HwQyMDAwLqAsoCqGKGh0dHA6Ly9jc2NhLmNybWQubW9pLmdvdi5jeS9jc2NhL2N5
+cC5jcmwwDgYDVR0PAQH/BAQDAgEGMFIGA1UdEQRLMEmBGGN5cC1jc2NhQGNybWQu
+bW9pLmdvdi5jeaQQMA4xDDAKBgNVBAcMA0NZUIYbaHR0cDovL2NzY2EuY3JtZC5t
+b2kuZ292LmN5MAoGCCqGSM49BAMCA0gAMEUCIQCBChlZe3nDjB4KbI6uRLNXJUpF
+Ip42F0r/r2F7Wj52VgIgX/vRP+6yjRfGW9d6vBDBtPzl2VVSIwlzacpiRgTKDh4=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIErTCCAxWgAwIBAgICBH8wDQYJKoZIhvcNAQELBQAwZzELMAkGA1UEBhMCUEwx
+IzAhBgNVBAoMGk1pbmlzdGVyIGRzIGluZm9ybWF0eXphY2ppMR0wGwYDVQQLDBRD
+ZW50cnVtIENlcnR5ZmlrYWNqaTEUMBIGA1UEAwwLQ1NDQSBQb2xhbmQwHhcNMjIw
+MzE2MTEwOTM5WhcNMzMwMzE2MjM1OTU5WjBnMQswCQYDVQQGEwJQTDEjMCEGA1UE
+CgwaTWluaXN0ZXIgZHMgaW5mb3JtYXR5emFjamkxHTAbBgNVBAsMFENlbnRydW0g
+Q2VydHlmaWthY2ppMRQwEgYDVQQDDAtDU0NBIFBvbGFuZDCCAaIwDQYJKoZIhvcN
+AQEBBQADggGPADCCAYoCggGBAKQeZnfYEdg5k878O173bdgF4Cso52EgxfrnC8rZ
+p2z4Iu5LKyC3vImyhRdk9/dkNf6BSRRpXqKIURTZmh66bVlJGql9J+tx6gEgF9Qv
+5yYdsGsg0Qtof9uVl1yb5eeZ375gHsoLYPcZDYa5p2+o8XmyP8XDMTurwYpgAZsw
+nCnTaBWoHCOB3kvP/vo5QLYdLfKGTf+LUvgKTlRXZevnTf7giAJTkzX33dJq5tdn
+xm8sJhLxhZejrYfwaBmC52kwWmpPvDozNIs8gKIbfPOycRs5c/JiaURN68EasWSY
+lU1H+x3fpGDlaLSR9M6X17d6PgwCRpcOpA45Lm+Z8iQpngR8+3uLQjM7a10XIcVG
+oBnfWOWaRxqZTrKaiVeJoBhZ7e8+l2fX5dscdhiopEzJpXa3noQOtnvQMCTGFmUc
+tk4bwtZk2JyrlpY/pKxvfTByh4iMO/cumNUz1VlsVLKr+rQJR3pRMJD8KnduBt/F
+hdhRITcX+Uhw2sU0aCHFwDqyqQIDAQABo2MwYTAOBgNVHQ8BAf8EBAMCAQYwDwYD
+VR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRoE3cmX3Hzyp+3reZaxyrSq+5gOTAd
+BgNVHQ4EFgQU+Na6x8KPlUIjRjPOMe4rrLCUwnMwDQYJKoZIhvcNAQELBQADggGB
+AG3Wukns5jfv2HwbDfRg5Z+EBPAXreyDLpx6HG/6Syy2pF6WhSZDNMzJOCgJ62J9
+2wuwtLZ/TepBkz7suDTrfkkrIVG1g/aNfFlOXfa660V0aiy47XbGKzvJrysru2DD
+7xYrF0F6/x+Y+3f938H2AXl/eJOtHo9CKXAcgTXzAPr908cFgwiKzRE+gPHgmvgj
+t+ilLSnZSEV9LN64wmxpgmtbVQGrY+Z7lEOBMyI7bjfOSWGjM+PcEtgpdz6FHcUS
+YcGQUXP+ni00fk7KvvAgCbEEg2w+8Bb4FQo4z+81pEWmLuD7bozmUAglFa9jTti5
+tMN2MhMUOUa6Rg0Bcnh8zR1y3KdMvxGbqyCzuo4GVbKoWx7KkMHQEjzvs93Hisde
+SBRUMe76Cax4Y7jEBTL+vSnf9KNT2Fo/5lJLmcaBerJNT7wX1QtSc+Mxu83AZyH9
+RzVObTBiH93I7aEUTiS9R5wQDMtjM1VUapHdyl01uXoKGynjoInNM+vOXnOBGyI/
+tA==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEsTCCBDigAwIBAgIIKi5AS8wwz54wCgYIKoZIzj0EAwIwcjELMAkGA1UEBhMC
+TloxIjAgBgNVBAoMGUdvdmVybm1lbnQgb2YgTmV3IFplYWxhbmQxJzAlBgNVBAsM
+HklkZW50aXR5IGFuZCBQYXNzcG9ydCBTZXJ2aWNlczEWMBQGA1UEAwwNUGFzc3Bv
+cnQgQ1NDQTAeFw0yMTA0MTMwMTAzNDBaFw0zMTA4MTAyMzM5MjJaMHIxCzAJBgNV
+BAYTAk5aMSIwIAYDVQQKDBlHb3Zlcm5tZW50IG9mIE5ldyBaZWFsYW5kMScwJQYD
+VQQLDB5JZGVudGl0eSBhbmQgUGFzc3BvcnQgU2VydmljZXMxFjAUBgNVBAMMDVBh
+c3Nwb3J0IENTQ0EwggG1MIIBTQYHKoZIzj0CATCCAUACAQEwPAYHKoZIzj0BAQIx
+AP/////////////////////////////////////////+/////wAAAAAAAAAA////
+/zBkBDD//////////////////////////////////////////v////8AAAAAAAAA
+AP////wEMLMxL6fiPufkmI4Fa+P4LRkYHZxu/oFBEgMUCI9QE4daxlY5jYou0Z0q
+hcjt0+wq7wRhBKqHyiK+iwU3jrHHHvMgrXRuHTtii6ebmFn3QeCCVCo4VQLyXb9V
+KWw6VF44cnYKtzYX3kqWJixvXZ6Yv5KS3Cn49B29KJoUfOnaMRO18LjACmCxzh1+
+gZ16Qx18kOoOXwIxAP///////////////////////////////8djTYH0Ny3fWBoN
+skiwp3rs7BlqzMUpcwIBAQNiAATQDrtd7vYEUB+vkxPogSnAvSUOEL6YkuJUBFN4
+ybzOA2YrOd60NzQHz3V43av91YykBpfWJYmG1TPSLyxo8nuGwy/aq9Vp7GaY/wdO
+fmw7bPxlnD298IghhadJEXk0AzKjggFYMIIBVDASBgNVHRMBAf8ECDAGAQH/AgEA
+MB8GA1UdIwQYMBaAFNaeFTvflJhsGtLpga2twzGvcb5xMFIGA1UdIARLMEkwRwYI
+YIQqZQgBAQMwOzA5BggrBgEFBQcCARYtaHR0cHM6Ly93d3cucGtpLmdvdnQubnov
+cG9saWN5L2VQYXNzcG9ydHNfQ1BTMG0GA1UdHwRmMGQwMKAuoCyGKmh0dHBzOi8v
+cGtkZG93bmxvYWQxLmljYW8uaW50L0NSTHMvTlpMLmNybDAwoC6gLIYqaHR0cHM6
+Ly9wa2Rkb3dubG9hZDIuaWNhby5pbnQvQ1JMcy9OWkwuY3JsMB0GA1UdDgQWBBSf
+DiwfklhMCORb0w342AI8cXP6jTArBgNVHRAEJDAigA8yMDIxMDQxMzAxMDM0MFqB
+DzIwMjQwNDEyMDEwMzQwWjAOBgNVHQ8BAf8EBAMCAQYwCgYIKoZIzj0EAwIDZwAw
+ZAIwRZ+cIrrlDVin9ySv1FT+YUHwYyaKgls9sQXmeys/UuPULY5AR/VUua4ACXhg
+O5PtAjAmvgOgNlb/vWW8oAu3ufJSu7Z3Nrt0J/dMNlCab3qmmbA/9S1JY056LogN
+m2J/P+k=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEsjCCBBOgAwIBAgIJYAPIYKCGNMoBMAoGCCqGSM49BAMEMIGiMQswCQYDVQQG
+EwJUUjEwMC4GA1UECgwnUmVwdWJsaWMgb2YgVHVya2V5IE1pbmlzdHJ5IG9mIElu
+dGVyaW9yMUIwQAYDVQQLDDlHZW5lcmFsIERpcmVjdG9yYXRlIG9mIENpdmlsIFJl
+Z2lzdHJhdGlvbiBhbmQgTmF0aW9uYWxpdHkxHTAbBgNVBAMMFFBhc3Nwb3J0IENT
+Q0EgVHVya2V5MB4XDTE4MDIxNDA4MjY0OVoXDTMxMDUxNDA4MjY0OVowgaIxCzAJ
+BgNVBAYTAlRSMTAwLgYDVQQKDCdSZXB1YmxpYyBvZiBUdXJrZXkgTWluaXN0cnkg
+b2YgSW50ZXJpb3IxQjBABgNVBAsMOUdlbmVyYWwgRGlyZWN0b3JhdGUgb2YgQ2l2
+aWwgUmVnaXN0cmF0aW9uIGFuZCBOYXRpb25hbGl0eTEdMBsGA1UEAwwUUGFzc3Bv
+cnQgQ1NDQSBUdXJrZXkwgZswEAYHKoZIzj0CAQYFK4EEACMDgYYABAHtf31NQHzc
+rT9W9LTBnBuq9ZGrm2cBsnmZO6wiJuATubfDxzFvUpjS139IGW9BT2E0Jg9coLyv
+TQPHDEjGU8VjzgEWQuCqb3rDmt4n9cPuU9JZW2sRI+/B4Ymmnw6rOpItxy4P51Zf
+Jy34T/LCK/QCUMm3zG+gP8ZtU66ObHQkGIZi2aOCAeswggHnMB0GA1UdDgQWBBSH
+sBmAfaLMtph7B3MWVgOx9c6y/jAOBgNVHQ8BAf8EBAMCAQYwgYYGA1UdIAR/MH0w
+ewYLYIYYAQIBAQUHBgEwbDAyBggrBgEFBQcCARYmaHR0cHM6Ly9wYXNhcG9ydC5r
+YW11c20uZ292LnRyL0NTQ0EvQ1AwNgYIKwYBBQUHAgIwKgwoVmlzaXQgb3VyIHdl
+YnNpdGUgZm9yIGNlcnRpZmljYXRlIHBvbGljeTASBgNVHRMBAf8ECDAGAQH/AgEA
+MEIGA1UdHwQ7MDkwN6A1oDOGMWh0dHBzOi8vcGFzYXBvcnQua2FtdXNtLmdvdi50
+ci9DU0NBL0NTQ0FUUl9WMS5jcmwwUwYDVR0RBEwwSoEWcGFzYXBvcnRAa2FtdXNt
+Lmdvdi50coIeaHR0cHM6Ly9wYXNhcG9ydC5rYW11c20uZ292LnRypBAwDjEMMAoG
+A1UEBwwDVFVSMFMGA1UdEgRMMEqBFnBhc2Fwb3J0QGthbXVzbS5nb3YudHKCHmh0
+dHBzOi8vcGFzYXBvcnQua2FtdXNtLmdvdi50cqQQMA4xDDAKBgNVBAcMA1RVUjAr
+BgNVHRAEJDAigA8yMDE4MDIxNDA4MjY0OVqBDzIwMjEwMjEzMDgyNjQ5WjAKBggq
+hkjOPQQDBAOBjAAwgYgCQgEzv4hXyNc1UrvRjOHHe2iXZPFhkyXH7Oy82hJzfrFb
+gWvxVa6fhvlOUjevJmAjH/hdvs7WaP+7foTYcEb3K95N/QJCAfTC5MNK0P+g5+wu
+6/dCcdJMXGBdzZ//x7U58sYEugEzrhE3+nigZzfplet9sAQERW0e7dcXJDMOZrms
+TNAK8jqC
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEtjCCAx6gAwIBAgICAxswDQYJKoZIhvcNAQELBQAwcDELMAkGA1UEBhMCUEwx
+EjAQBgNVBAoMCUlDQU8gQ1NDQTEOMAwGA1UECwwFTVNXaUExPTA7BgNVBAMMNFN5
+c3RlbSBXeWRhd2FuaWEgUGFzenBvcnTDs3cgeiBEYW55bWkgQmlvbWV0cnljem55
+bWkwHhcNMTkwMzE4MTYzMzM2WhcNMzAwMzE4MjM1OTU5WjBnMQswCQYDVQQGEwJQ
+TDEjMCEGA1UECgwaTWluaXN0ZXIgZHMgaW5mb3JtYXR5emFjamkxHTAbBgNVBAsM
+FENlbnRydW0gQ2VydHlmaWthY2ppMRQwEgYDVQQDDAtDU0NBIFBvbGFuZDCCAaIw
+DQYJKoZIhvcNAQEBBQADggGPADCCAYoCggGBAJpspX4b1AtJ8Ltjqtt+L0UjT7GN
+/TcG5DmtZ+gZfCnN9ZfOoVC+vvs6612TnwlH5ZtSDwSPe/Nc11S14FevcjDkXhPi
+W+gNTZVyv7jhFHTpbXpG2cczNUF0Rd4uR6alWsliUXSiopp1m20xoqwIMhNG52ws
+egLJbJj5+4/0RZlzYojk7CDwAsRG2vZDZ68lKMg8uDYYYIFaX7VtRsMBJD7exq4g
+kkRPWC1IeW2VSJ5D7XgJpYv2qbKdl4LUFTPz/QAM7uVXVwqADb/eO1l7pW/Pyl7/
+w1Oh5octA10IuQcW79b/xPVWAttiD+uYNTKjOyvmO+t7c/UxaZNlZg4fbVgoH0Va
+wj8qogSOJHJQ9Cf0w6bNkeA3oJk4Qn12bwT679EgIvddOzoOa9UkGCW87GiqGkcY
+2BQwwNvsCqyJ9agnsjkmafWQ1foDc/wIr49sNkeqq+yKBhVV79UoZOMbN4xyRFAi
+yRe/kvc5lNA+C2ds0W9Nt2ZwdQnqK8bP+AkZOQIDAQABo2MwYTAOBgNVHQ8BAf8E
+BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBSqW1+fQNbRn7emT2QH
+zJyBh260PzAdBgNVHQ4EFgQUaBN3Jl9x88qft63mWscq0qvuYDkwDQYJKoZIhvcN
+AQELBQADggGBAHBrEuL5VQzvyuzX+RQ3BmVcsrYMVEFGIaJNUl5Elh8zJ2b3a/ve
+LOPGyPuAST6ckiHlqGw15y8kdE9YIaND1RUQkS7zxL+2rT+0BBo8yfJJyUS33Wzy
+0wIljMElNPyRRv5ey5KoFs0+fZFvF4bg1h195XB5mkjipoiJd1YR7C0NrmnJ5tun
+CRTMcNwg7Y8GjfDuIO6rhd0imgY2se5lmjSqCn//zjRvNVTuKBVqitTosAiUL3bJ
+dyEM7XWUXyxiUkONsZ/S7uPvvn1jECYJjKawYZKGzArCLnk6m/ngsPNct9tw8MZJ
+7MhPSTPTeyZjqTNodhS+flXlz1tB3XAVSK2gMiqA5wwNTjI6uIfEcitwLTdRdbcA
+zT3z1JGDWwBUsXeDDx6dThwvceLdO8n6YVgKN4B0LLwM9g3gk/mr1uhPWpisAKAZ
+KJ0PfnpwnICkVuu3Cxa/yWJy4o3Pj/eyOkEtpGJRy6fkq6N1OfYLSAXLRLl1F157
+2r9Q4w4nVEOkWQ==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEvzCCAyegAwIBAgICAkowDQYJKoZIhvcNAQELBQAwcDELMAkGA1UEBhMCUEwx
+EjAQBgNVBAoMCUlDQU8gQ1NDQTEOMAwGA1UECwwFTVNXaUExPTA7BgNVBAMMNFN5
+c3RlbSBXeWRhd2FuaWEgUGFzenBvcnTDs3cgeiBEYW55bWkgQmlvbWV0cnljem55
+bWkwHhcNMTQwOTE4MTAyMDE4WhcNMjUwOTIxMjM1OTU5WjBwMQswCQYDVQQGEwJQ
+TDESMBAGA1UECgwJSUNBTyBDU0NBMQ4wDAYDVQQLDAVNU1dpQTE9MDsGA1UEAww0
+U3lzdGVtIFd5ZGF3YW5pYSBQYXN6cG9ydMOzdyB6IERhbnltaSBCaW9tZXRyeWN6
+bnltaTCCAaIwDQYJKoZIhvcNAQEBBQADggGPADCCAYoCggGBAMgRvOR1bwEQoyWw
+Yt+nYRNye/2im99Ryw9ZP2cpv2pDFc/+ND3riyc7NdulbbHWutoM1LiX/dCn/ct1
+PUzeFuc/ER+n+l7aoF1JhbLY0uSbOIuaS+1/8ZCu4oEWktSlJkBJKk6rMgZ39xuW
+eS8P0AmJHeiI75RbT1Ccl7iflw2Lt6pIXF++Xc+DZhyckCzxtelZoC4RkbWMzyZ8
+VoQAyIJX1c0Iy1cZrqSUb0LJxrbZuDB73Xq7T7RF4sN8SXpxCHqUXnsLx1MSDaCH
+UYky4rv7MBTkLaqusfs0MzEsf7SSJka9/kwXy/cap79NKJ+9aWdEPlXxosHctaRJ
+n8DqY52S170gCd5RDONgQzLJ4Ykhbu9zzJXBiAei9+j0+vJXHbe6xKC3rLsbbPIK
+m6Q0ozLzv2TsKSxzwnRjfn1lahpUibHV11K3OCYevWV8TC62HKWOBh2jzAS6JVO7
+VqN98D8LfhSBdYiAIPtp1ez1OmuxckMEerJT9Bqr4qdY9ziiSQIDAQABo2MwYTAO
+BgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRThXBm
++CUo7sF7ffJk3tDqATIEzTAdBgNVHQ4EFgQUljVLq8FPxxENdNbMylT7rgMRmicw
+DQYJKoZIhvcNAQELBQADggGBAB5qZR1XLtGDV9oatlWngzGsZ+od/NFiU5o42XQU
+jjbzHziqqFdwoEVhFmj8fbQAhnwZKrjFRY91sKEby12T4mBAhPfZ7hGzMPlDC9BV
+kvHh4UJcw3Cd6JuZh6kZevTsCyebIELTWImsf7smro6oJ6Cabu7wciFTTOy/VXZl
+uN2ipUsFWgU1lSyMa2t4NwuRdQaKnGeJ5TD7Ub9JZk316838o+MwBL8tOSiWVIrB
+i2EV5JGxUv+Rqo2KcmTCQ11qNNf6Ndr+tDR8ln944A5bkiugt3WK1GoNtx3padgA
+tBeXzIAjcgrVBQ4a0M9Sqa8FaYlZIFJIPzgw6ddyk/91xWSXpGTCq/cF8e3cv53c
+54ZHhf8K0n1c/Eo69mQyitfAQ2PIZ5drYS+ivmKYxztdG2Gla/jofEtmJFjNea3q
+IIp7XI5WjIuTEMUx+khjUXvJ46pEELOubsfbnqdb+ZrHJEtSlG0K6zij2FKQmolw
+OJcBrIwgi2ItLSJrKqRx6HfTUQ==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEvzCCAyegAwIBAgICAuEwDQYJKoZIhvcNAQELBQAwcDELMAkGA1UEBhMCUEwx
+EjAQBgNVBAoMCUlDQU8gQ1NDQTEOMAwGA1UECwwFTVNXaUExPTA7BgNVBAMMNFN5
+c3RlbSBXeWRhd2FuaWEgUGFzenBvcnTDs3cgeiBEYW55bWkgQmlvbWV0cnljem55
+bWkwHhcNMTcwOTE5MDkxMTU5WhcNMjgwOTE4MjM1OTU5WjBwMQswCQYDVQQGEwJQ
+TDESMBAGA1UECgwJSUNBTyBDU0NBMQ4wDAYDVQQLDAVNU1dpQTE9MDsGA1UEAww0
+U3lzdGVtIFd5ZGF3YW5pYSBQYXN6cG9ydMOzdyB6IERhbnltaSBCaW9tZXRyeWN6
+bnltaTCCAaIwDQYJKoZIhvcNAQEBBQADggGPADCCAYoCggGBAKrcRO4rN8BAJsCg
+WNZcClIoucmna+XOL24Ibz0uIGl0WNMGUtE1To027Je7YZ0EjJ48QdZYD1uGYLXC
+w7jBFmAWd5NxS18dUHvS/j9t9xVO+Ehy44GNaVNhjpST84TQBiW/nJ6FYESeQNCB
+YLaytIZ2pN4j5O9kWynB5xQoRNy367S08oor67vGxTaXoJpeLm03Qu6/AAZDokT6
+csTvX6AhOIWg6vp27lrkJvYT3H5ER2sHhPcZDVxCs1Beiw8DH9BxS2UOZTk37MLX
+NUFSVy2ES1ecnzviH+ytC4yweJxP/y3X2UrrVyxYgMNMuFc1fcfBMvJmSGfwvhnG
+T1XffKsBjNbKT6R6AnuzGOXBDjlrOiRcWAvsAKB8ibVP8IrPh8ZP7kCYqxrLRjrU
+K7abJ/LxfzBki8vjO6AbajdzFA0ZJNsM/MtYxobL2r00H3S3MeS/FgXUXHmhj8bX
+ndfCM7fz5o1AC7fYeF2lypO8BxlSBxXc22EAubbqiNvBxA+coQIDAQABo2MwYTAO
+BgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBSWNUur
+wU/HEQ101szKVPuuAxGaJzAdBgNVHQ4EFgQUqltfn0DW0Z+3pk9kB8ycgYdutD8w
+DQYJKoZIhvcNAQELBQADggGBAAHojhEWTOkQDebFmgxMYzgqYDo6lE4wnFQEC2q7
+M2wLHPAtFDnfFPjukFNir676wCiUEHbojJe8OsYoISwLo0EcMc5QEZRSWvo/eSWY
+4VuQyF8Se7wc9HK0YLR0m7MXBH1AvCFMVvc8BSWOkXDhOihLj5CN0eIX//cPUlAy
+/1PMDybVhaMFdtp9Xrlbv8KA2IHd0ixRKbaBrL8uq+VaxwyrBA40QfN5Z4pHtbdF
+bQcZKeFT4eYhfd3an/hAq88U0cvZTxnG7RKBdK0tbVhXtVdYvlxX4A2ojbfP4vZa
+ayaobISl2DvJGQH4MGuxN6CfXOcQ9+MNWEHwEpirTZytZaReII7uM24Xra6DT4Is
+DIaYgP1lpPtRvFiKp3dHZAJQXr/ZyaNyjDziK+su4aACHtuNWAQfOIHoLjilc1eI
+LX9YaWC9Ew2jH60Jix5BAWiYwVi5e4TqMP66zqpJ/+SfvnT1HL8Xjsabkn/KiKV4
+by1McUy3IQ/MjLedK9IdDahjSg==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIE6DCCBG6gAwIBAgIUAMDsWjufMeMxP+eJe0Tm5rYhik8wCgYIKoZIzj0EAwIw
+ZDELMAkGA1UEBhMCU0MxRjBEBgNVBAoMPURlcGFydG1lbnQgb2YgSW5mb3JtYXRp
+b24gQ29tbXVuaWNhdGlvbiBhbmQgVGVjaG5vbG9neSAoRElDVCkxDTALBgNVBAMM
+BENTQ0EwHhcNMjIxMTE0MTE0OTE0WhcNMzYwMjE0MTE0OTE0WjBkMQswCQYDVQQG
+EwJTQzFGMEQGA1UECgw9RGVwYXJ0bWVudCBvZiBJbmZvcm1hdGlvbiBDb21tdW5p
+Y2F0aW9uIGFuZCBUZWNobm9sb2d5IChESUNUKTENMAsGA1UEAwwEQ1NDQTCCAcww
+ggFkBgcqhkjOPQIBMIIBVwIBATA8BgcqhkjOPQEBAjEA////////////////////
+//////////////////////7/////AAAAAAAAAAD/////MHsEMP//////////////
+///////////////////////////+/////wAAAAAAAAAA/////AQwszEvp+I+5+SY
+jgVr4/gtGRgdnG7+gUESAxQIj1ATh1rGVjmNii7RnSqFyO3T7CrvAxUAozWSaqMZ
+onodAIlqZ3OkgnrNrHMEYQSqh8oivosFN46xxx7zIK10bh07Younm5hZ90HgglQq
+OFUC8l2/VSlsOlReOHJ2Crc2F95KliYsb12emL+Sktwp+PQdvSiaFHzp2jETtfC4
+wApgsc4dfoGdekMdfJDqDl8CMQD////////////////////////////////HY02B
+9Dct31gaDbJIsKd67OwZaszFKXMCAQEDYgAEPpefkO1cvlp2a8O84QMRBQZaWbMB
+WedlwxjK7s7IjXeR4oLspRelR6LtWj+uBzl6hk9H06NiqoXu9Q83Ub7sKSQwRkAs
+Zl0yiH2bBoDh0qUNmDMoJx+2+wroD7cjU/71o4IBhzCCAYMwQwYDVR0RBDwwOoEN
+Y2Euc3ljQGdvdi5zY4YXaHR0cHM6Ly93d3cuaWN0Lmdvdi5zYy+kEDAOMQwwCgYD
+VQQHDANTWUMwQwYDVR0SBDwwOoENY2Euc3ljQGdvdi5zY4YXaHR0cHM6Ly93d3cu
+aWN0Lmdvdi5zYy+kEDAOMQwwCgYDVQQHDANTWUMwEgYDVR0TAQH/BAgwBgEB/wIB
+ADAOBgNVHQ8BAf8EBAMCAQYwKwYDVR0QBCQwIoAPMjAyMjExMTQxMTQ5MTRagQ8y
+MDI1MTExNDExNDkxNFowHQYDVR0OBBYEFBXsrMm4NhIOjyWkJlf1HbhSLHFdMB8G
+A1UdIwQYMBaAFBXsrMm4NhIOjyWkJlf1HbhSLHFdMGYGA1UdHwRfMF0wW6BZoFeG
+VWh0dHBzOi8vcGtkZG93bmxvYWQxLmljYW8uaW50L0NSTHMvU1lDLmNybCBodHRw
+czovL3BrZGRvd25sb2FkMi5pY2FvLmludC9DUkxzL1NZQy5jcmwwCgYIKoZIzj0E
+AwIDaAAwZQIxAJfE1BJV6aCcxvhTzW6RnpDhGi7IjvotEaPTj9OQPc1LKfo8tsL5
+KkWuNtCFxwILdgIwO+QeEH3c1hEtyvkTR6a46aotESc9s0rolMvnwDaavCOFIiVD
+Hz2JEKNeQDPhIZDR
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIE6TCCBHCgAwIBAgIINJuYi77bQqcwCgYIKoZIzj0EAwMwgYgxCzAJBgNVBAYT
+AkNOMRgwFgYDVQQKDA9Ib25nIEtvbmcgQ2hpbmExHzAdBgNVBAsMFkltbWlncmF0
+aW9uIERlcGFydG1lbnQxPjA8BgNVBAMMNUhvbmcgS29uZyBDaGluYSBDb3VudHJ5
+IFNpZ25pbmcgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MB4XDTIzMTAxMDA4MDQ1OFoX
+DTM5MDIwNzA4MDQ1OFowgYgxCzAJBgNVBAYTAkNOMRgwFgYDVQQKDA9Ib25nIEtv
+bmcgQ2hpbmExHzAdBgNVBAsMFkltbWlncmF0aW9uIERlcGFydG1lbnQxPjA8BgNV
+BAMMNUhvbmcgS29uZyBDaGluYSBDb3VudHJ5IFNpZ25pbmcgQ2VydGlmaWNhdGUg
+QXV0aG9yaXR5MIIBtTCCAU0GByqGSM49AgEwggFAAgEBMDwGByqGSM49AQECMQCM
+uR6CozhtKA9db35Q5kHfFS9xCe1UVrQSsdoZf7cRI6zTpymQHRpxh0cAEzEH7FMw
+ZAQwe8OCxj2MFQw8cggKzgWvoMK+oo5PsieHE5Fl77qR+Q+KpYFKUDrU6wSox90i
+zigmBDAEqMfdIs4oJos5tVQW8ER8L7d94Qfc0qYuiA6lPuti1Xy0OQKV28mUOreG
+lvpQTBEEYQQdHGTwaM9F/6KmOoG3wT9riEej537xT+Pbf8r+DL0Q6Ogm4DQ21kaq
+74ey4kfUrx6Kvh11IPnCpFyx646Vz9VSYrcLKf7sWGThnAVP+ZEpKA5GRiF3kYER
+QoIDQSY8UxUCMQCMuR6CozhtKA9db35Q5kHfFS9xCe1UVrMfFm5srAQlp886tq9r
+f8MQO4gyAukEZWUCAQEDYgAEbigyrcIjXdMbUx80Mw1IcjLy4BQsRhleUSLQOnYU
+GccXbEeBXfboyXrfR1ZCQGQvUyfrwERXP5d93QkbhvVuaVXF7afh+lotiMnlola2
+ukU4X0Iftz6SZwL7N88rO5ebo4IBYjCCAV4wEgYDVR0TAQH/BAgwBgEB/wIBADAf
+BgNVHSMEGDAWgBSp2rmBUg3GFLEgQJUYvrOGwfiGwTApBgNVHRIEIjAgpB4wHDEM
+MAoGA1UEBwwDQ0hOMQwwCgYDVQQIDANIS0cwKQYDVR0RBCIwIKQeMBwxDDAKBgNV
+BAcMA0NITjEMMAoGA1UECAwDSEtHMHUGA1UdHwRuMGwwNKAyoDCGLmh0dHBzOi8v
+cGtkZG93bmxvYWQxLmljYW8uaW50L0NSTHMvQ0hOX0hLRy5jcmwwNKAyoDCGLmh0
+dHBzOi8vcGtkZG93bmxvYWQyLmljYW8uaW50L0NSTHMvQ0hOX0hLRy5jcmwwHQYD
+VR0OBBYEFKnauYFSDcYUsSBAlRi+s4bB+IbBMCsGA1UdEAQkMCKADzIwMjMxMDEw
+MDgwNDU4WoEPMjAyODEwMDkwODA0NThaMA4GA1UdDwEB/wQEAwIBBjAKBggqhkjO
+PQQDAwNnADBkAjB4lVhuS3aRscKkMnxQR4O+zaWdCiXUTJtdAD9NCD4iIs85WxQB
+D5Cv5uk6f04cAXoCMHIpQuZh5BB4iNjKxGbX9xHXsOoVORrZ4Y/YcNCZOtYxMdx0
+Tauz8IXqmlfs0ruwtQ==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIE7DCCA1SgAwIBAgIETmVNYzANBgkqhkiG9w0BAQsFADBHMQswCQYDVQQGEwJE
+SzEbMBkGA1UEChMSS2luZ2RvbSBvZiBEZW5tYXJrMRswGQYDVQQDExJDb3VudHJ5
+IFNpZ25pbmcgQ0EwHhcNMTUxMDI4MDgyNDIzWhcNMjcwNTA1MTExNzIyWjBHMQsw
+CQYDVQQGEwJESzEbMBkGA1UEChMSS2luZ2RvbSBvZiBEZW5tYXJrMRswGQYDVQQD
+ExJDb3VudHJ5IFNpZ25pbmcgQ0EwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGK
+AoIBgQDWLAKeOWC2k7YekC2Vtr4I/+odZsJsxAEXjq+kjXf+qmn02TXDgWI5dKAd
+K7o14j+JGQa+0+dnCi0192PjSGeTOZ2BdCqMyMNC2DtnWBwKj/7w9bGTrWVRwSpo
+1Aam0X56UKFjPJW53xujnqIDdXhQ04Lhayq2gHfapjE85q629mc91ZaPHJ6M6VI4
+XyQOlaXgv2UCDhgFJyEyKxtpYvmOIIR/rjeXumK9PD0G+lzapZEycs5r3tiXmXlG
+aAVCJGB/k7tL1bp0MB6OSw2PY5dRgKF7GGnED+dOfp1StT/o38H5tOMAzIV0boYM
+ancQq5QeD0Thq92Zhnmr5RBcJmTvohIjZMokNS6IWOeca22UsoxaTW/7s80xBO2B
+0ot6MW3lEJm5aaPrBS8KMs/QifPOQ/Zx3NGRFi6b7LB168blVUs+cm3fGBj6lJrh
+CfoxxOb08UCfb6U/ssOagUq4xZTDLbmxe3EvbREQpz4ZUdsGrQOyb512/YIYYvGO
+fGtLI28CAwEAAaOB3zCB3DAPBgNVHRMBAf8EBTADAQH/MBEGA1UdIAQKMAgwBgYE
+VR0gADAfBgNVHSMEGDAWgBRew4itPMuRPoo7xGEDTKVYup8pFzAdBgNVHQ4EFgQU
+NiVtGYsxYZiSNLkWeG3ml4gqdGEwaQYDVR0fBGIwYDBeoFygWqRYMFYxCzAJBgNV
+BAYTAkRLMRswGQYDVQQKExJLaW5nZG9tIG9mIERlbm1hcmsxGzAZBgNVBAMTEkNv
+dW50cnkgU2lnbmluZyBDQTENMAsGA1UEAxMEQ1JMMTALBgNVHQ8EBAMCAQYwDQYJ
+KoZIhvcNAQELBQADggGBADb7Ap44iacFHj2NnF0cz81a15XYc7JJmMwjLFOGYMac
+YhWNx7Vgct9xp/tdoIssWW7nZMkKrvUObP8GYKQjO0WrbKL83O5BCWO43iVV3nYe
+6i80MdlAb66pUSMs4O0TTrBKqCUj1OP/afvs0QKsC0SEVxdaqMzNXJKm3FmUIJck
+4naCwjOTkf7w9qDiOI+60LQncyd1E37ZOo25o3GIZ9Fubf7Tt8tsmVHvdiynTXW6
++CZRyCjtuLiAHEPQBwnQs/JZvQQwcuPdPcToSwKa1fd2Hwk+8o2wgu9IARw8GFew
+tBIGsuB6AwOI2++ATvembJaUGeF8zRgEMxycRezYokfQhHFnQY9XW5RqkJy7jygS
+0j9E8M2W7xltwG1n2rwbqzDJev6kgqd0q6axP0o8YA1I4MWhWed6lpG1DsasKW32
+dGNIAim4XJYXL4C8sVnFGaxr777vn50LuxLOvDcqZeUlJC4PETYrOWx8+NfpKsWb
+9ycF3t4Im6Zj58bZWPDxPw==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIE7DCCA1SgAwIBAgIETmXq6jANBgkqhkiG9w0BAQsFADBHMQswCQYDVQQGEwJE
+SzEbMBkGA1UEChMSS2luZ2RvbSBvZiBEZW5tYXJrMRswGQYDVQQDExJDb3VudHJ5
+IFNpZ25pbmcgQ0EwHhcNMTkxMDIzMTEzNjUzWhcNMzEwNjI4MDg1NDIzWjBHMQsw
+CQYDVQQGEwJESzEbMBkGA1UEChMSS2luZ2RvbSBvZiBEZW5tYXJrMRswGQYDVQQD
+ExJDb3VudHJ5IFNpZ25pbmcgQ0EwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGK
+AoIBgQCf75+5Gs7V68Gx4aClx9u4gzLtwcCDkMfylUmsgWfZKFdew6/2ZJLRRdhe
+G3ii14lvBlZG6uBRmhrsTV361+1LaG0gRFHIL6h9yzuB7YIc+j9j61o9BHJD7rhX
+3JWgx7ZG6/I/RDGCgtOeNN44WA/2mXqUdyyg2uHi1urc1m4GIVlEQHQgXQydh6gr
+JZzrn+z9MzqHR1ZJpf9vW5RXsdHBPRv55UJn/kpYU3YZj4jj5httsa2SanBAWYz4
+X4oWRNcNmZI3KeJvTCSEE1voPpuCBZgCFJN2kBDvwX9bLMMfOCStvTmugmcxtb1B
+oQshribiTPpnB9rrSSRgyjuY3HfN8Q/C8cmPrF/byfrcEDQCKeoCfXWVjtHGqy5f
+Nukd4z9fW0txlgNwbD5e//6N8+4PGiroJzmwTifxMjOQnvOyHBlrb598cq+Np/en
+4zCWN/rH3REMxQZZhg20Wvmo2zNIrF6JlPSxl+g9iVmLAfjtzbZYD6ImAXBMur03
+57u+LtcCAwEAAaOB3zCB3DAPBgNVHRMBAf8EBTADAQH/MBEGA1UdIAQKMAgwBgYE
+VR0gADAfBgNVHSMEGDAWgBQ2JW0ZizFhmJI0uRZ4beaXiCp0YTAdBgNVHQ4EFgQU
+6J2n7Cctnl1lVkVb1X9Y6IpT5zIwaQYDVR0fBGIwYDBeoFygWqRYMFYxCzAJBgNV
+BAYTAkRLMRswGQYDVQQKExJLaW5nZG9tIG9mIERlbm1hcmsxGzAZBgNVBAMTEkNv
+dW50cnkgU2lnbmluZyBDQTENMAsGA1UEAxMEQ1JMMTALBgNVHQ8EBAMCAQYwDQYJ
+KoZIhvcNAQELBQADggGBAElLp32o2IBAEzPZxKBBxKrXGUJMyoNZ7URpWpAb3kHA
+qZb6FvmfoQ3WQCPTnueC5coYpZ02/iIyomWuPBshrw23H4/fj9/ugrINYhIJlJLg
+kajfRVU+qA7bmeB/sMzgNT5Fqmc2TZ6EVdSoWGWwaroeLjTIFAZWA7wWfqrhTbzv
+7NG/uvWf77jjvKMNRTFhPzKfjHPK2NCvj6RvXY1cXwbyceKr0N6m56eciORgW0Pj
+ol0xHh+ASf8vzdWxNVHMzjBzYkVor7OyShP6fm8PP3AvFwsHtjfnU6b7PD48kRGU
+5uMIot6UccCcYtFMcz18sMGUfMGoplh5T1tH6X0CCwcBf+NqXF9OduYCDtJZf7ot
+prLd7AfDTsMCOz7J2KuFJxkDrtZxVuZTVKfGQC+L3O0fanrQRUiHLYpqMM7l6Kvr
+jKs3KtLIHWTOBJusJYtNRtPihQ4ZBT3q4TdQtEotWuRgtdtWFSgmVeS5ab4G98dj
+5PdrC2L8IszK8VHxISOWnw==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIE+DCCBH+gAwIBAgIIF9gbE+y6hg4wCgYIKoZIzj0EAwMwgYgxCzAJBgNVBAYT
+AkNOMRgwFgYDVQQKDA9Ib25nIEtvbmcgQ2hpbmExHzAdBgNVBAsMFkltbWlncmF0
+aW9uIERlcGFydG1lbnQxPjA8BgNVBAMMNUhvbmcgS29uZyBDaGluYSBDb3VudHJ5
+IFNpZ25pbmcgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MB4XDTIzMTAxMDA4MDQ1OFoX
+DTM5MDIwNzA4MDQ1OFowgYgxCzAJBgNVBAYTAkNOMRgwFgYDVQQKDA9Ib25nIEtv
+bmcgQ2hpbmExHzAdBgNVBAsMFkltbWlncmF0aW9uIERlcGFydG1lbnQxPjA8BgNV
+BAMMNUhvbmcgS29uZyBDaGluYSBDb3VudHJ5IFNpZ25pbmcgQ2VydGlmaWNhdGUg
+QXV0aG9yaXR5MIIBtTCCAU0GByqGSM49AgEwggFAAgEBMDwGByqGSM49AQECMQCM
+uR6CozhtKA9db35Q5kHfFS9xCe1UVrQSsdoZf7cRI6zTpymQHRpxh0cAEzEH7FMw
+ZAQwe8OCxj2MFQw8cggKzgWvoMK+oo5PsieHE5Fl77qR+Q+KpYFKUDrU6wSox90i
+zigmBDAEqMfdIs4oJos5tVQW8ER8L7d94Qfc0qYuiA6lPuti1Xy0OQKV28mUOreG
+lvpQTBEEYQQdHGTwaM9F/6KmOoG3wT9riEej537xT+Pbf8r+DL0Q6Ogm4DQ21kaq
+74ey4kfUrx6Kvh11IPnCpFyx646Vz9VSYrcLKf7sWGThnAVP+ZEpKA5GRiF3kYER
+QoIDQSY8UxUCMQCMuR6CozhtKA9db35Q5kHfFS9xCe1UVrMfFm5srAQlp886tq9r
+f8MQO4gyAukEZWUCAQEDYgAEbigyrcIjXdMbUx80Mw1IcjLy4BQsRhleUSLQOnYU
+GccXbEeBXfboyXrfR1ZCQGQvUyfrwERXP5d93QkbhvVuaVXF7afh+lotiMnlola2
+ukU4X0Iftz6SZwL7N88rO5ebo4IBcTCCAW0wEgYDVR0TAQH/BAgwBgEB/wIBADAf
+BgNVHSMEGDAWgBQcokd772w1rt9ATttdsnMMNHunczApBgNVHRIEIjAgpB4wHDEM
+MAoGA1UEBwwDQ0hOMQwwCgYDVQQIDANIS0cwKQYDVR0RBCIwIKQeMBwxDDAKBgNV
+BAcMA0NITjEMMAoGA1UECAwDSEtHMHUGA1UdHwRuMGwwNKAyoDCGLmh0dHBzOi8v
+cGtkZG93bmxvYWQxLmljYW8uaW50L0NSTHMvQ0hOX0hLRy5jcmwwNKAyoDCGLmh0
+dHBzOi8vcGtkZG93bmxvYWQyLmljYW8uaW50L0NSTHMvQ0hOX0hLRy5jcmwwHQYD
+VR0OBBYEFKnauYFSDcYUsSBAlRi+s4bB+IbBMCsGA1UdEAQkMCKADzIwMjMxMDEw
+MDgwNDU4WoEPMjAyODEwMDkwODA0NThaMA4GA1UdDwEB/wQEAwIBBjANBgdngQgB
+AQYBBAIFADAKBggqhkjOPQQDAwNnADBkAjAT9eFgPKUE2MhjuwRpjwWJBESOFMKW
+D++qtqKhjzSCc8ti804jZZEqL/Q6lFwoeAECMEAiKnTvf7fYmq+PJYkEwNJ4YAu6
+m2HChMc/F7ZXacu01h+KxPL5bHPHHo3TcXhB5Q==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFAzCCBIqgAwIBAgIIXfbd8vwHGUowCgYIKoZIzj0EAwMwSDEQMA4GA1UEAwwH
+RVBQQ1NDQTENMAsGA1UECwwEUElCQTEYMBYGA1UECgwPU3RhdGUgb2YgSXNyYWVs
+MQswCQYDVQQGEwJJTDAeFw0yMzA3MjQwOTAwMDBaFw0zOTAxMjQwOTAwMDBaMEgx
+EDAOBgNVBAMMB0VQUENTQ0ExDTALBgNVBAsMBFBJQkExGDAWBgNVBAoMD1N0YXRl
+IG9mIElzcmFlbDELMAkGA1UEBhMCSUwwggG1MIIBTQYHKoZIzj0CATCCAUACAQEw
+PAYHKoZIzj0BAQIxAP/////////////////////////////////////////+////
+/wAAAAAAAAAA/////zBkBDD/////////////////////////////////////////
+/v////8AAAAAAAAAAP////wEMLMxL6fiPufkmI4Fa+P4LRkYHZxu/oFBEgMUCI9Q
+E4daxlY5jYou0Z0qhcjt0+wq7wRhBKqHyiK+iwU3jrHHHvMgrXRuHTtii6ebmFn3
+QeCCVCo4VQLyXb9VKWw6VF44cnYKtzYX3kqWJixvXZ6Yv5KS3Cn49B29KJoUfOna
+MRO18LjACmCxzh1+gZ16Qx18kOoOXwIxAP//////////////////////////////
+/8djTYH0Ny3fWBoNskiwp3rs7BlqzMUpcwIBAQNiAAQ9UHCx3eQG6lWdnMYv9WLR
+ToI0/kXbWlUL/Oo5xQJ0Tl0uSuoRxivqGvYnFw9S+ql6+b7V7fw4gvslBSPi9zPT
+0Yfh/lD59FQ8wN3V9lFkdW39WntAOz3qMFSez0l7qASjggH+MIIB+jAfBgNVHSME
+GDAWgBTQiC/m6KXiZuDJd/O61gK5dX+C4jAdBgNVHQ4EFgQU0Igv5uil4mbgyXfz
+utYCuXV/guIwDgYDVR0PAQH/BAQDAgEGMCsGA1UdEAQkMCKADzIwMjMwNzI0MDkw
+MDAwWoEPMjAyODEwMjQwOTAwMDBaMHsGA1UdEgR0MHKkEDAOMQwwCgYDVQQHDANJ
+U1KBD3BraUBwaWJhLmdvdi5pbIZNaHR0cHM6Ly93d3cuZ292LmlsL2VuL2RlcGFy
+dG1lbnRzL2d1aWRlcy9pc3JhZWxpX3Bhc3Nwb3J0X2FuZF9pZF9jZXJ0aWZpY2F0
+ZXMwewYDVR0RBHQwcqQQMA4xDDAKBgNVBAcMA0lTUoEPcGtpQHBpYmEuZ292Lmls
+hk1odHRwczovL3d3dy5nb3YuaWwvZW4vZGVwYXJ0bWVudHMvZ3VpZGVzL2lzcmFl
+bGlfcGFzc3BvcnRfYW5kX2lkX2NlcnRpZmljYXRlczASBgNVHRMBAf8ECDAGAQH/
+AgEAMG0GA1UdHwRmMGQwYqBgoF6GXGh0dHBzOi8vd3d3Lmdvdi5pbC9lbi9EZXBh
+cnRtZW50cy9HdWlkZXMvaXNyYWVsaV9wYXNzcG9ydF9hbmRfaWRfY2VydGlmaWNh
+dGVzP2NoYXB0ZXJJbmRleD02MAoGCCqGSM49BAMDA2cAMGQCMANwiJYjDvZQ2/Yr
+FOWncfnO7e8e1/32WwL00YiRY4lczveFwg+1EUmJu3lcw1Jy/AIweSClQs1d/xc2
+W9PE0JueNXfTi/lv082nvNTBF6t2LJU4JXhvWiHUkbMJRfe2KLJ/
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFCDCCBGmgAwIBAgIUEyoX0K/R/gLhW8+4iDxXeWoXnhowCgYIKoZIzj0EAwQw
+WDENMAsGA1UEAxMEQ1NDQTEMMAoGA1UEBRMDMDAxMSwwKgYDVQQKEyNEZXBhcnRt
+ZW50IG9mIHRoZSBSZWdpc3RyYXIgR2VuZXJhbDELMAkGA1UEBhMCWlcwHhcNMjEx
+MjA4MTE0NTQ3WhcNMzUwNjAzMTE0NTQ2WjBYMQ0wCwYDVQQDEwRDU0NBMQwwCgYD
+VQQFEwMwMDExLDAqBgNVBAoTI0RlcGFydG1lbnQgb2YgdGhlIFJlZ2lzdHJhciBH
+ZW5lcmFsMQswCQYDVQQGEwJaVzCCAkYwggG5BgcqhkjOPQIBMIIBrAIBATBNBgcq
+hkjOPQEBAkIB////////////////////////////////////////////////////
+//////////////////////////////////8wgYgEQgH/////////////////////
+////////////////////////////////////////////////////////////////
+/ARCAFGVPrlhjhyaH5KaIaC2hUDuotpyW5mzFfO4tImRjvEJ4VYZOVHsfpN7FlLA
+vTuxvwc1c9+IPSw08e9FH9RrUD8ABIGFBADGhY4GtwQE6c2ePstmI5W0QpxkgTkF
+P7Uh+CivYGtNPbqhS1537+dZKP4dwSei/6jeM0izwYVqQpv5fn4xwuW9ZgEYOSlq
+eJo7wARcil+0LH0b2Zj1RElXm0RoF6+9Fyc+ZiyX7nKZXvQmQMVQuQE/rQdhNTxw
+hqJywkCIvpR2n9FmUAJCAf//////////////////////////////////////////
++lGGh4O/L5Zrf8wBSPcJpdA7tcm4iZxHrrtvtx6ROGQJAgEBA4GGAAQAkxK57jvB
+FH+OttKksxx5NzJs8KfJQXRKICAwSf5wunf9n7QcH9gROMS+GxDj5Yqw98jHbsMc
+CYH4PscXHUAJ3CAAu8Oip7JnuqwKWEea6+2QQ/R+hcWZRUC0365KdddeEu22RTfn
+JQk0MRbAICkTbNZ/bSpE7qOSPDRdac7R4XsH9IGjggEgMIIBHDASBgNVHRMBAf8E
+CDAGAQH/AgEAMB8GA1UdIwQYMBaAFIL/GTt9YnQ6B+OTUCuxFucqd+9+MCsGA1Ud
+EgQkMCKCDnd3dy5jc2NhLmNvLnp3pBAwDjEMMAoGA1UEBwwDWldFMCsGA1UdEQQk
+MCKCDnd3dy5jc2NhLmNvLnp3pBAwDjEMMAoGA1UEBwwDWldFMC8GA1UdHwQoMCYw
+JKAioCCGHmh0dHA6Ly93d3cuY3NjYS5jby56dy9jc2NhX2NybDAdBgNVHQ4EFgQU
+gv8ZO31idDoH45NQK7EW5yp3734wKwYDVR0QBCQwIoAPMjAyMTEyMDgxMTQ1NDda
+gQ8yMDI1MDYwNTExNDU0N1owDgYDVR0PAQH/BAQDAgEGMAoGCCqGSM49BAMEA4GM
+ADCBiAJCATpdLMK0IcRuzoxmGaKohiROtsDojoIvrVq8vftOk0gl47JtApMYUnGf
+wGVrdPtVPa6snH1GFEAFpUxcg3PM+YIFAkIBO+HZ/r6HdNdYC7TZWOm39wg61GNE
+dMOi8pfimxwPQeJ+vJ5t/YY+WPFx4ngVABkFA+DyJSB5NRmFahyDI0MBQXI=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFFzCCBJ6gAwIBAgIKJQweCQ+AXYwoiTAKBggqhkjOPQQDAzCBgTELMAkGA1UE
+BhMCQ1IxSTBHBgNVBAoMQEp1bnRhIEFkbS4gZGUgbGEgRGlyZWNjacOzbiBHZW5l
+cmFsIGRlIE1pZ3JhY2nDs24geSBFeHRyYW5qZXLDrWExDTALBgNVBAsMBERHVEkx
+GDAWBgNVBAMMD0Nvc3RhIFJpY2EgQ1NDQTAeFw0yMTA5MTgxNTAwMThaFw0zNTA5
+MTgxNTAwMTdaMIGBMQswCQYDVQQGEwJDUjFJMEcGA1UECgxASnVudGEgQWRtLiBk
+ZSBsYSBEaXJlY2Npw7NuIEdlbmVyYWwgZGUgTWlncmFjacOzbiB5IEV4dHJhbmpl
+csOtYTENMAsGA1UECwwEREdUSTEYMBYGA1UEAwwPQ29zdGEgUmljYSBDU0NBMIIB
+tTCCAU0GByqGSM49AgEwggFAAgEBMDwGByqGSM49AQECMQCMuR6CozhtKA9db35Q
+5kHfFS9xCe1UVrQSsdoZf7cRI6zTpymQHRpxh0cAEzEH7FMwZAQwe8OCxj2MFQw8
+cggKzgWvoMK+oo5PsieHE5Fl77qR+Q+KpYFKUDrU6wSox90izigmBDAEqMfdIs4o
+Jos5tVQW8ER8L7d94Qfc0qYuiA6lPuti1Xy0OQKV28mUOreGlvpQTBEEYQQdHGTw
+aM9F/6KmOoG3wT9riEej537xT+Pbf8r+DL0Q6Ogm4DQ21kaq74ey4kfUrx6Kvh11
+IPnCpFyx646Vz9VSYrcLKf7sWGThnAVP+ZEpKA5GRiF3kYERQoIDQSY8UxUCMQCM
+uR6CozhtKA9db35Q5kHfFS9xCe1UVrMfFm5srAQlp886tq9rf8MQO4gyAukEZWUC
+AQEDYgAEdrdfzTBQ7c94+660e3mcxzLX5FqwobZ+/qrxqslq6rVhR+Gy2F93jF6t
++mh2ffYtGf28L76RNTFtoPIR98lqp655hApGgaNuSQVPfqJexI1g9h33smU9Hx2y
+BcrjLvP9o4IBnDCCAZgwEgYDVR0TAQH/BAgwBgEB/wIBADAfBgNVHSMEGDAWgBSM
+SLLjNd4gR+i+e9DoadG+Rng56DBkBgNVHRIEXTBbgSVkb2N1bWVudG9zbWlncmF0
+b3Jpb3NAbWlncmFjaW9uLmdvLmNypBAwDjEMMAoGA1UEBwwDQ1JJhiBodHRwczov
+L3d3dy5taWdyYWNpb24uZ28uY3IvY3NjYTBkBgNVHREEXTBbgSVkb2N1bWVudG9z
+bWlncmF0b3Jpb3NAbWlncmFjaW9uLmdvLmNypBAwDjEMMAoGA1UEBwwDQ1JJhiBo
+dHRwczovL3d3dy5taWdyYWNpb24uZ28uY3IvY3NjYTA5BgNVHR8EMjAwMC6gLKAq
+hihodHRwczovL3d3dy5taWdyYWNpb24uZ28uY3IvQ1JMcy9DUkkuY3JsMB0GA1Ud
+DgQWBBSMSLLjNd4gR+i+e9DoadG+Rng56DArBgNVHRAEJDAigA8yMDIxMDkxODE1
+MDAxOFqBDzIwMjQwOTE4MTUwMDE4WjAOBgNVHQ8BAf8EBAMCAQYwCgYIKoZIzj0E
+AwMDZwAwZAIwUz2BRvBXYwlKIGxSeubvFm9Hxs1+c6Eswsroiy+q4RJwn5trukJx
+yRmKKAofF5PNAjAxeGiiJoVzP3/V33RZnFQDo+7zX9HnYbUwx7RZ67vvMUIN3CZU
+0OHssDkZolDcw4k=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFHzCCA4egAwIBAgICAZYwDQYJKoZIhvcNAQELBQAwgYAxCjAIBgNVBAUTATEx
+DTALBgNVBAMMBENTQ0ExNTAzBgNVBAsMLFNlcnZpY2lvIGRlIFJlZ2lzdHJvIENp
+dmlsIGUgSWRlbnRpZmljYWNpw7NuMR8wHQYDVQQKDBZNaW5pc3RlcmlvIGRlIEp1
+c3RpY2lhMQswCQYDVQQGEwJDTDAeFw0xODA2MTIxNTQ2NDdaFw0yOTExMTYwMDAw
+MDBaMIGSMQowCAYDVQQFEwEyMQ0wCwYDVQQDDARDU0NBMTQwMgYDVQQLDCtTZXJ2
+aWNpbyBkZSBSZWdpc3RybyBDaXZpbCBlIElkZW50aWZpY2FjaW9uMTIwMAYDVQQK
+DClNaW5pc3RlcmlvIGRlIEp1c3RpY2lhIHkgRGVyZWNob3MgSHVtYW5vczELMAkG
+A1UEBhMCQ0wwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQDXR+XvdSrb
+krZ0jDH2qh2xcmSu0hCsSMQ5CtJAu66WKcibB+g7hIpDCR7D+vY7IV7lADR1DG9b
+IDPEIVVwfAVDjg8AKUcZZ3uiTu56ONlUeVPwUTE+OcDp7ifkGwEUomEuWocbZsDB
+QsGoH7cqdFtdhZRqB+0MvxnHkxnQ8qAqYgtjun5pVhcTxpauu2LwxLkOyJniBrJP
+rj/cEaubJNaA3rzsi77h9DPkw6cwKKPDyujfmQPfn0cs5I6ibRPLoRZe3+uLAUgf
+FaDm8dfbdVIIB/S5S3TB5Oi1LpqSH9mttFjk4bzVqp3c69JLUk9CTkq0zv87NR9I
+d6eoUi6zZZiITnrVjxsufg3/ucY7h2LrrjDcWqvnRJSu0XfxMdWgpt6GJ//oFpiG
+o7n5jaRFoRCbRYtMMmgLWFZXZJJeIPEvM2IIFbCA7hHa9ZFwZE2H/N20TNMzcoW3
+GyvA0Q/nWo06WryrXGiHQlHgMHDyA4vZHLpN+wZikjz2BuoNuf7eU3MCAwEAAaOB
+jjCBizApBgNVHQ4EIgQg//u9BExObg9K/5RhYrgPUVjJuWXmAZprZaCdgTPNt/4w
+DgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYBAf8CAQAwKwYDVR0jBCQwIoAg
+zcmGZWZ1McStyth0oqlKcgle7RygrC7xTVOi0sk2640wDQYHZ4EIAQEGAQQCBQAw
+DQYJKoZIhvcNAQELBQADggGBAEYDzpazNc8drG6ddGxZS386JCOh8RIJRHEay8N5
+MoVDIVpn4Crd5mrkWaFPyRTn4/PTKqMjEnKlHr6aiiNzjgjuxaCa7XLkrT/lQ98y
+hlYkMZszImorif6u1oErwiIfcth92UAj6gwyWRWaE+CqdKBRiJ5Ueon8jQd99bFi
+Gbl6MoREeS9HAkhcD7XicKjk0V6hp6w5lqYlHtYbBS4cDBX0+Qqce8O0xtH+icgI
+9oduE0hUK/X8AcEqbQ67WCHIiAi0O84XnNfro82w46juM30Km6hDQRC9TynMJzNb
+ae6XCOvzhgrmFBXyw9nmQ/QIdTMhXwzAE4GJmvTzAQm9iFzkgR2AvTAYuZ3LZZrP
+R+8r6NuHy6cxMr+N1lvOgk9g2yiMOkp6RU+Iip8aRAr7zKQCFqKAeOtRh4PG2Ffk
+RsXkwSXpaCHZkxbrIjHpGkzGtVs6WMvaLSuNNZNPTnvlLflhR23a66ntMJH74Wv2
+bluYvjFe4WcuKwAv5e8UmsvFiA==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFKjCCBLCgAwIBAgIIPptpdokIexcwCgYIKoZIzj0EAwIwcjELMAkGA1UEBhMC
+TloxIjAgBgNVBAoMGUdvdmVybm1lbnQgb2YgTmV3IFplYWxhbmQxJzAlBgNVBAsM
+HklkZW50aXR5IGFuZCBQYXNzcG9ydCBTZXJ2aWNlczEWMBQGA1UEAwwNUGFzc3Bv
+cnQgQ1NDQTAeFw0yMTA1MTMwMDMwNTFaFw0zNDA4MDgwMTAzMzlaMHIxCzAJBgNV
+BAYTAk5aMSIwIAYDVQQKDBlHb3Zlcm5tZW50IG9mIE5ldyBaZWFsYW5kMScwJQYD
+VQQLDB5JZGVudGl0eSBhbmQgUGFzc3BvcnQgU2VydmljZXMxFjAUBgNVBAMMDVBh
+c3Nwb3J0IENTQ0EwggG1MIIBTQYHKoZIzj0CATCCAUACAQEwPAYHKoZIzj0BAQIx
+AP/////////////////////////////////////////+/////wAAAAAAAAAA////
+/zBkBDD//////////////////////////////////////////v////8AAAAAAAAA
+AP////wEMLMxL6fiPufkmI4Fa+P4LRkYHZxu/oFBEgMUCI9QE4daxlY5jYou0Z0q
+hcjt0+wq7wRhBKqHyiK+iwU3jrHHHvMgrXRuHTtii6ebmFn3QeCCVCo4VQLyXb9V
+KWw6VF44cnYKtzYX3kqWJixvXZ6Yv5KS3Cn49B29KJoUfOnaMRO18LjACmCxzh1+
+gZ16Qx18kOoOXwIxAP///////////////////////////////8djTYH0Ny3fWBoN
+skiwp3rs7BlqzMUpcwIBAQNiAATZQon1shj+p0q+5z2lAITS/VG35sb6cLN7Tlgq
+Qcy5+wt95K1qK9C5mLUkXYsHX+rrMMHRG4zgpWoyBsozAfDkYkJJhmvanY0c2deb
+lXQMlG0yhkS4NB/AdkTuKHcFORGjggHQMIIBzDASBgNVHRMBAf8ECDAGAQH/AgEA
+MB8GA1UdIwQYMBaAFJ8OLB+SWEwI5FvTDfjYAjxxc/qNMDoGA1UdEgQzMDGkEDAO
+MQwwCgYDVQQHDANOWkyGHWh0dHBzOi8vd3d3LnBhc3Nwb3J0cy5nb3Z0Lm56MDoG
+A1UdEQQzMDGkEDAOMQwwCgYDVQQHDANOWkyGHWh0dHBzOi8vd3d3LnBhc3Nwb3J0
+cy5nb3Z0Lm56MFIGA1UdIARLMEkwRwYIYIQqZQgBAQMwOzA5BggrBgEFBQcCARYt
+aHR0cHM6Ly93d3cucGtpLmdvdnQubnovcG9saWN5L2VQYXNzcG9ydHNfQ1BTMG0G
+A1UdHwRmMGQwMKAuoCyGKmh0dHBzOi8vcGtkZG93bmxvYWQxLmljYW8uaW50L0NS
+THMvTlpMLmNybDAwoC6gLIYqaHR0cHM6Ly9wa2Rkb3dubG9hZDIuaWNhby5pbnQv
+Q1JMcy9OWkwuY3JsMB0GA1UdDgQWBBSuaT8mWeuag2UtEff/RjGsOxSgNTArBgNV
+HRAEJDAigA8yMDIxMDUxMzAwMzA1MVqBDzIwMjQwNTEyMDAzMDUxWjAOBgNVHQ8B
+Af8EBAMCAQYwCgYIKoZIzj0EAwIDaAAwZQIwb6b0v2fsmAUKtySftn3PM+JTNQz5
+/f94pHQnzEJT8cKlVEpbjbzMHXjS6H8xFiFGAjEAkZla8c27P8B722CXNXZ2I5LN
+tvgu6rEuQQd/ZFzh65fUpkyV7qe4lzNRmdkUPj/o
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFRjCCAy6gAwIBAgIEYFViKDANBgkqhkiG9w0BAQ0FADAcMQ0wCwYDVQQDDARD
+U0NBMQswCQYDVQQGEwJLUDAeFw0yMTAzMTkwMDAwMDBaFw0zNjA2MTkwMDAwMDBa
+MBwxDTALBgNVBAMMBENTQ0ExCzAJBgNVBAYTAktQMIICIjANBgkqhkiG9w0BAQEF
+AAOCAg8AMIICCgKCAgEAm82EIBoiYL68KUFZNvYd+SbHyzRJ8UddyhfEA38ekK6u
+/PwC/7v/clZt2Rq0qrcps21MxVQijSLLosq9OdYsVs5Bu0BYvcXMZks47jYe3pUr
+CAKj1is0Q1iKwpblbbBj0txC3dma9UssSFfJtROjA9lP8gcI3aH9M+Rx9ls8sykt
+RRFAHXAB71s29mixkMTchiIOkkpQVeM+fL5ZN6E0L4aL8/1D6YBnSGVjQbaddOz3
+wv/UeLFTBL6qz9HJiZSniWMxqrmHnfloTty7sIMRn7bCK6Uzb3BfPALZq8ZAwdcm
+8KGpZlNvoIjex1EK1QebEoYAtmCRi+Pvc8eaJMF7h4iXFk3LcRJABZn47CZzznbk
+IoGyk03TZelchM9cv/bMZjVbuBvFeSKz8HN4Cy9S/exV65WnPKrD9T8KO6/6/tNW
+QVs89n9n3kIjEs8SCE0VrihMUePvPO8i/edkxey1nzxYhbrWfqkOZR/05CrV5lGN
+PVVoeXKnIxpDl5ghf3Rk6egtf/+k5B+YsjDbcj+Ok8yO3f8z0gRfxYMpM3J5M5lH
+aIiOHI1h8bxfBJ1rDH534EPP9u/3jx6x39kxF8a7XNlnH36Bkup/Ar/M5HHdtCbQ
+rMTnjxiQemS0/SsADHdC2jeiYpUoBhcprXA1fHvbX35glDjZdQY4d4luLYPOXHEC
+AwEAAaOBjzCBjDBHBgNVHSMEQDA+gBSD6yVYEYphl223fSkBRX1s9TJ5bqEgpB4w
+HDENMAsGA1UEAwwEQ1NDQTELMAkGA1UEBhMCS1CCBGBVYigwHQYDVR0OBBYEFIPr
+JVgRimGXbbd9KQFFfWz1MnluMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAG
+AQH/AgEAMA0GCSqGSIb3DQEBDQUAA4ICAQBf/o+XwfohkjvuKn8lkD7wHAmfAFNb
+kL4tiF+pBp8lQP1qRLNbx58hfbhmAQ/Obf3onH0CPUcWFP8UutIMh5+81NK92p3r
+OmyuDZQ1CFS4zjP9cOlncBE/sGNPssdlwUQxLIBm1NHa4zlgGVFGQr2MXfQ8gOOL
+yXIOZddbNCxQfqinMc2+TKPBltgiUu/SA0NJeyEJv2LgYjCjQOg54s453P5P7nzo
+Fm9pscVWEPHp1fFBEA7+GuVtanQsJUVZL/QnfkNql9elBk2Lag0/OFfusLh3xWNx
+wKQMaf2pqY44Yikklfp1RX+XPvXCHXkC3bDVXZbn+c9r2OOdakvogmnQ9r9YoxVX
++3PWX3ujY0xbhJgV0Dt2mblQgSiFg+3/tDWbD3iQ3YRBUY2MJzsKU4YLr9XS4xup
+eDXDX/A2LtBlbZDEClXWiErXWxx8hOB08AEdWNzS2LnPyg4jxFfrQc20kCewSmJG
+h8jLVwzdVX2mw7zVjA9JC5zO/WLtZPG7Nr/c5bXfA5usgb/VRZBYzXXmyJe5jATP
+7aaaQmcn/rfduQ9ABGf/ozwsS13yMIC7yl+MQbviBeTzCUzAf+dz73n20H92kzC+
+31Ni4uquikptAgeMeY81gW67PwDuprupX+jgM1cF5yCUhQCFNplz/LFM6qIVah1N
+IV5o6gla33iwfQ==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFXjCCA8agAwIBAgICAoQwDQYJKoZIhvcNAQELBQAwgZIxCjAIBgNVBAUTATIx
+DTALBgNVBAMMBENTQ0ExNDAyBgNVBAsMK1NlcnZpY2lvIGRlIFJlZ2lzdHJvIENp
+dmlsIGUgSWRlbnRpZmljYWNpb24xMjAwBgNVBAoMKU1pbmlzdGVyaW8gZGUgSnVz
+dGljaWEgeSBEZXJlY2hvcyBIdW1hbm9zMQswCQYDVQQGEwJDTDAeFw0yMTA2MDIx
+NjAyMTZaFw0zMjExMTYwMDAwMDBaMIGSMQowCAYDVQQFEwEzMQ0wCwYDVQQDDARD
+U0NBMTQwMgYDVQQLDCtTZXJ2aWNpbyBkZSBSZWdpc3RybyBDaXZpbCBlIElkZW50
+aWZpY2FjaW9uMTIwMAYDVQQKDClNaW5pc3RlcmlvIGRlIEp1c3RpY2lhIHkgRGVy
+ZWNob3MgSHVtYW5vczELMAkGA1UEBhMCQ0wwggGiMA0GCSqGSIb3DQEBAQUAA4IB
+jwAwggGKAoIBgQDOSnxyuA21JnSwu0Qi7MuwhSX/A3lUVkSUC1L5m/b4hw29W5mP
+kOoL5hbFHqU/O2C36clW6Cl5NmF+zW6lYCz8ClannKu7TKKiYfkncq3pRQhcWQOM
+SSKqB9EYr8NiH7RIWc72eaD+pOxqatv1V8XlReUYJM0cubswIgvP/Zo7Qtm3e8z1
+TEjFvmcP/mFwvlu5tYceUEJNceq25pNYAvsIIbFV5awyjWg0DBniHeWEfYbHdOby
++0Hv9ymCMSCH6RVRzdXj7s26QLNI2D9m766UdX5eAEjj7lBgbjxdTXntaj5+EmBl
+G9wF1rkqAt9Cja+JNcZnG1uFDKsl63jYQMijom6vPKemaBfkKsOT9ywaugLqaeGb
+ZXdE2tPSOSLAdXqg2v1bJ5uV3BXCPa56+xn+0WeD/7L69uJ6EK6RUee5bG6sQkr9
+Avg6MN72L8DnGD0GTnJT0DTswy/rNFpO5Uy+QjdzL7XYmR3ZwDdpbQ9CHJFTx9ur
+b5wreBcvi1YVEy0CAwEAAaOBuzCBuDApBgNVHQ4EIgQgRJy+y5gG5O3lPRCtrT6l
+VexQ2s0l0TsAA/QtDIW1mMgwKwYDVR0QBCQwIoAPMjAyMTA4MDEwMDAwMDBagQ8y
+MDI2MDgwMTAwMDAwMFowDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYBAf8C
+AQAwKwYDVR0jBCQwIoAg//u9BExObg9K/5RhYrgPUVjJuWXmAZprZaCdgTPNt/4w
+DQYHZ4EIAQEGAQQCBQAwDQYJKoZIhvcNAQELBQADggGBADwtduSRQuTSF/8d0t+1
+qCe9+wd7bXEQfHUvIvM/BzSIeHcMekSVFTWuDQwE+qqzn8hhgs0M2xCR5LPEblwY
+YRNp4rX3nUFn43I5Vz78jJoBCbdJxzmFc0Z05PjDQ/8q3uqf2NcA0kn7Jj7L9mzR
+GzmkDsemqErzOEyR6Pdj5ulRiR35cswxokX5imAx/IebdmXOj4K+61T/DmjFQsoQ
+69jrChcz5WEa8yRq8k9cDam0Cs6V47itrnvD6H6bHhnKkg1KPSKlMUu/KY3Ge/nu
+Ijqfj8RzZ3Fg5Kt84eNPO8nP4QZudhHOdePOIrpHx5BLTXVDxZXWI6NRftZDcu5V
+hid9zjeKusjXb/5iIk0C2fE3RANZhA3NkJVq0sKH8l0V7VnM9Hd2AZL9OFtTKk6x
+AYvCuI2Mt7PLXyaP3c474WCTtz1NvU7he+49mVMuKp7mY0cDzleDXm7/N0fG6sFf
+FJP2gXzX2bv3EGxome3bSQQZvs4ZkcMjpYti39Lkzschbg==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFbTCCA1WgAwIBAgIMP2pe/QD3zc3rzN4KMA0GCSqGSIb3DQEBBQUAMEIxCzAJ
+BgNVBAYTAkhVMQwwCgYDVQQKEwNHT1YxDDAKBgNVBAsTA0NSTzEXMBUGA1UEAxMO
+Q1NDQS1IVU5HQVJZIDMwHhcNMTUwNzAyMDgyNTAwWhcNMjUxMTAyMDcwMDAwWjBC
+MQswCQYDVQQGEwJIVTEMMAoGA1UECgwDR09WMQwwCgYDVQQLDANDUk8xFzAVBgNV
+BAMMDkNTQ0EtSFVOR0FSWSA0MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKC
+AgEA8V6tzZI+CJvZ4OUxBCSzXON99ecbQqKEw3BAKy73JSS7Iyl99y2EVpPi2gk6
+Qeqlnh+iDJDlEULEi4nNW+XnrO9V33I5oXpNCcOB4aO+nndY6Jr5xx3y9aqL9V8c
+LrL/oAI84cRM8LAVyyDvWiYOBFmGM3leA2uzu/NhGAynvg2UqVDnvmVp0D9lLUH5
+yG9ydK56EA+dRF+Divdkey5wxOdJc+d0MBAB+x8tsDKs4FfAcnzehF4SpK31zKe2
+ngOLN9OHK5rqNKxMKIyBCfD7RdSYY8ZR6F2T4cl6rcgguht3npOGBzcpSBuPNwIl
+lazQ+x01jCqy1EkCRajlCh1BrNlFh4ljvLCtM/oYwYP4pwXc4t+q0JHkdNT2d1G2
+ZUYG9xMpP86WAW10RyA9McH6NBMnGWY4IteUQ23xapY/Qk6lvEz+93iEOur/nuSC
+p8NdaFZ2NYFseviklB56rIS8nTXS3toBoXSW6cjOlVFLNQuhksM2Ue9dX5YXdR0H
+CZjkGP9D66+dWwXeDJPw7NTNNIIvExSfOv0WAj8USPrJY7HEGb4DyuIlD/Ppc612
+mvS9bakt0jIF1tNHbwXrcEMM/VoWTn2sb5RkWj2MF5nhq3ohg4rImnDwnPqstKve
++tvvbvAepbwK4feqd/VfMp09JuxqWFQgr4GugHcWqVTQNp8CAwEAAaNjMGEwDwYD
+VR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJEDRjoMH0Pl
+3exluHTiBDcUVZBGMB8GA1UdIwQYMBaAFDD+BwXMhWgbVm5Fv4wrDmQiguwTMA0G
+CSqGSIb3DQEBBQUAA4ICAQBTF8vvDmmjj6zmOCKfy7EJxwr1+Y2nzRgv7Vpxavma
+2kKebI2FG7w6LbhcFtBygS23p+KoZigGw7RK6ucP+TMiBheFxQ+FPCUz5DvqzXcD
+Hcn4Fy8toooaMTsYjuxr3ldaCr5Ab0lICTIL9yy7uMqgBNb+Ies1sVEfKs7Moh3a
+g3e/MVc1ihK5OUSHCtJCfQcHtczPHFiBlpEYRyfaHrD/mgZlLpaqTwtWC4ZZmLWV
+Ple+M5vLrPeAXhi/QSsWNLXbcbcMk+v8iY23f8YzmPkIfNN75YSPh3caTi//vyWe
+/bzGTWD6oj5rm6tyXJ43pLsfjHM3/Ew8EiStjeUPB+Q51sb3ZW46s5dI9ZqTNlng
+B1cC+W493iVAWRpf99MqX5Ic9KQPm3cSmkVYpSaa8l/VvfteVDAyiUegWujrPfLk
+FoTebeJJDeHQ3MC459aswolvRUf3HdbXcPvSLUM2O0zZwiRfDQiOfOQC2Rhes1QN
+qAHuugWRMmAkoxRxBMPnBTjWus70+EFWo79GU5GXMjqgMu2+V46/BfRVKI1fqjae
+1svH+Csi2ETX7664PVUMsu9rOxd9SjP18l73Jd79gL0k38fQf9pZgOsG/O5JcBFJ
+hTuRgELHtOaJbIvfTKvxKjrhVi4JTB1kwV6bRvPU3gy4GxYKEIAlC+9Fl0HsEbjT
+IQ==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFcDCCA1igAwIBAgIMR4j80hc9YwgcRZMKMA0GCSqGSIb3DQEBBQUAMEIxCzAJ
+BgNVBAYTAkhVMQwwCgYDVQQKEwNHT1YxDDAKBgNVBAsTA0NSTzEXMBUGA1UEAxMO
+Q1NDQS1IVU5HQVJZIDMwHhcNMTUwNzAyMDgyNTAwWhcNMjUxMTAyMDcwMDAwWjBC
+MQswCQYDVQQGEwJIVTEMMAoGA1UECgwDR09WMQwwCgYDVQQLDANDUk8xFzAVBgNV
+BAMMDkNTQ0EtSFVOR0FSWSA0MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKC
+AgEA8V6tzZI+CJvZ4OUxBCSzXON99ecbQqKEw3BAKy73JSS7Iyl99y2EVpPi2gk6
+Qeqlnh+iDJDlEULEi4nNW+XnrO9V33I5oXpNCcOB4aO+nndY6Jr5xx3y9aqL9V8c
+LrL/oAI84cRM8LAVyyDvWiYOBFmGM3leA2uzu/NhGAynvg2UqVDnvmVp0D9lLUH5
+yG9ydK56EA+dRF+Divdkey5wxOdJc+d0MBAB+x8tsDKs4FfAcnzehF4SpK31zKe2
+ngOLN9OHK5rqNKxMKIyBCfD7RdSYY8ZR6F2T4cl6rcgguht3npOGBzcpSBuPNwIl
+lazQ+x01jCqy1EkCRajlCh1BrNlFh4ljvLCtM/oYwYP4pwXc4t+q0JHkdNT2d1G2
+ZUYG9xMpP86WAW10RyA9McH6NBMnGWY4IteUQ23xapY/Qk6lvEz+93iEOur/nuSC
+p8NdaFZ2NYFseviklB56rIS8nTXS3toBoXSW6cjOlVFLNQuhksM2Ue9dX5YXdR0H
+CZjkGP9D66+dWwXeDJPw7NTNNIIvExSfOv0WAj8USPrJY7HEGb4DyuIlD/Ppc612
+mvS9bakt0jIF1tNHbwXrcEMM/VoWTn2sb5RkWj2MF5nhq3ohg4rImnDwnPqstKve
++tvvbvAepbwK4feqd/VfMp09JuxqWFQgr4GugHcWqVTQNp8CAwEAAaNmMGQwEgYD
+VR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJEDRjoM
+H0Pl3exluHTiBDcUVZBGMB8GA1UdIwQYMBaAFDD+BwXMhWgbVm5Fv4wrDmQiguwT
+MA0GCSqGSIb3DQEBBQUAA4ICAQCXs32tXfZuNKTJN4YbTd/nIb0hqMFZ1ULdADLp
+rrwyzs7hhjsKXaMbeTXmsDLEy852Z+mU79wiFgeynZFmVuJgUfanD+rFnQ/L2lZb
+6COFgD/gV4WaKqIgFzGJ9xJUAgnRQVpLO316pzB/vMlSevy2kBqTDAheu7DLTHed
+8Truaw0LyinkmUcDQo+LbXhb1LJamh3QgCpWdG6MmMiQZSVBBEXYLVNpNMeGlv3D
+s/xSsozsbiuk1TMlVS+uaZQfZqsz4gXHNah/zbTf95nHwUC1sjHY2laQSVIu9Hg7
+yVz4CKHIFObuMgjpSUC6d4+lqIubIiySplMlmi0+ud188z4VyOG/Toc3hk2KhVEh
+RxG/AqoJEmpcvGVbR0nnvzBlmMhShoz3kauEx85aLhcwDk0CdMTFonlNEtgVr8k7
+u5XFqoWJNNIDbm212r3iJ9aBHMeJGX/n/zES37l0QPqXw1OOmpGjot8V5NeBS2wc
+ondJ4zMqUvvxHPlOsLtiueoC0ORJdF0Ac2eRXY1tsa1gI+DAmtdKPxwinGH6kf/e
+lkwdRPGPNoMBWB9r4hctj+Wvoa5OxT9LTBf9tLEjwH+wpGxnRs/yCBPYzeNPOzMA
+AaXipVV5AqNL6IpvYO4Uy7aPizx6nLfQ3NXb/rl5DLsKfMoQBkyb5MEcpIRNsJdT
+tkCcWA==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFizCCA3OgAwIBAgIBCzANBgkqhkiG9w0BAQUFADBVMRAwDgYDVQQLDAdTRUdT
+VEFUMSAwHgYDVQQDDBdDRVJUSUZJQ0FUSU9OIEFVVEhPUklUWTESMBAGA1UECgwJ
+SFNWQVRJQ0FOMQswCQYDVQQGEwJWQTAeFw0xODAzMDExMTE1NDJaFw0zMzA1MjYx
+MTE1NDJaMFUxIDAeBgNVBAMMF0NFUlRJRklDQVRJT04gQVVUSE9SSVRZMRAwDgYD
+VQQLDAdTRUdTVEFUMRIwEAYDVQQKDAlIU1ZBVElDQU4xCzAJBgNVBAYTAlZBMIIC
+IjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEArPD6pcAA8m/E7E+6wEaF31Am
+R0eJu3ETQBwvtmrdUiWFQ9yFvN8xlcdo/b4/N/t1Ei8zzA/ABPqdHpgPzSPKGY92
+vCRAfHoj4fSOMezkvO6Csw9yvZZii9kRizSlX6HUNfkzltW4flZXhmZMlSzv4koV
+bfKZdVuShu3tR+dsSLQ2xNavOiFclIHtcMICS/j19XFx42pw0SdG/jKe104h+8tC
+AmIYUxNxlP4D/JYuFTx1+1KhdTdY49dyQwiU7+m8x6kKrEOdzo1MDZBZsjUKnp4j
+6qWol5t/hLIgAL4LBezNBUMgWOrjMgpyoaMuEXHPNZ/kpp2oLkB0FQU4XIzIVAYr
+ytjhOHbHROJvJQjsryoPK6zKiJnSzsKuqLaYcDCPw+OsqNUu4Ho1DqSIohrkNXm7
+c3uxe+dhGIyVESWTZt5FxqaS6MCgk1Z6Js360321gv8dRf1EwjF/3JoAJArPSET1
+rYKUeb2IBClCgjVrzzMjKVnAZ9YyN3dYO32DWBEG5PLStIyONeycISpxkzkB7EA1
+BuafIb4HgwCVOzjYhYIJTwitFFJnIrV+BTMl5e+Jtu486JRsesZ2+IG/Vo9uCx/R
+J/JoP/lFqn1u9aVTEsZphZ70PGpi4p+++ttNhfFZrbw+2Rfgr7PDtYNK+HaqqSGG
+FhBntYlbTAfNKp9uqekCAwEAAaNmMGQwEgYDVR0TAQH/BAgwBgEB/wIBATAdBgNV
+HQ4EFgQUL84WbiIdUt93//HNurWpkwVR4cEwHwYDVR0jBBgwFoAUrakHpFWrwTEm
+lyK1u1AhA9sotv0wDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBBQUAA4ICAQAf
+FEjsxPG880uuIdsqdrhf1c+8nSv78qQ1Inl4MEUT42QXiAO34K4S23HrpQofrDYw
+yDQZj9ZSehBtTOTWMkPBdeExL0Ryhxt/M59ytDSC0/SHI7U+iADTW6JNcwpDsx6V
+iYg8TRfOePgDogef9lUK2FHku91p4C2gRrzX2R60iSwSteUqjQKUXRrBceZteIC8
+CEIhKy4obDR0k78wU/GjHybU++PTltxlfm0kjj7Ba42Xp1ugLsCMd1bkwdPMB+vR
+zO10SfujcPxSrLsGrz2lIsH6iXr/B6fEny0EusPWSBUu1Hlj/xCN2ACK2p21KCq/
+5udIc2tbZksmO2i0xugTbpp/SLqGhhR8L+oBAYY7mVufQdWM12pfprzl5G3gvmCe
+G417AYnuWWVRDX7CJ4ORhl1V4UIM8UwMMlFtMm1QE6odNzKZR0HdncnHS+qzEJJK
+BYxI4yhP1t9f2U7W9mXdfUD4OFc8q6LlbJHzYOAyVhAo8ki7g/W7EEf6eeovPBqe
+UXrSxNjOJ4ien0/GLZVxBP6bWwqbvX2lk9WODI/NYx6kRVh+1uw/axJ1UwRfRQBz
+ryBY8kCVJUUvBQKfb81OvBLQnffv1HGdRy6MgTF95Y9AvBu4GP7alHxv+1H986lf
+CTb3QfSA5Sx+SefH22ILFk+1taFYIZNnTDhm5qnNxQ==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFjDCCA3SgAwIBAgINAIXvaaR88RLr5rV2CjANBgkqhkiG9w0BAQsFADBIMQsw
+CQYDVQQGEwJIVTEMMAoGA1UECgwDR09WMQ4wDAYDVQQLDAVLRUtLSDEbMBkGA1UE
+AwwSSUQtQ1NDQS1IVU5HQVJZIDAxMB4XDTE4MDExODExNTE0OVoXDTI4MDQxODEx
+NTE0OVowSDELMAkGA1UEBhMCSFUxDDAKBgNVBAoMA0dPVjEOMAwGA1UECwwFS0VL
+S0gxGzAZBgNVBAMMEklELUNTQ0EtSFVOR0FSWSAwMjCCAiIwDQYJKoZIhvcNAQEB
+BQADggIPADCCAgoCggIBAOTnXXzpq1/vphAThxKV1fNencArl7e9KcEm65pqT0Qv
+ZGjhsdPmSazh+ykpYfeRm8bv50uPLue2J5bTL3J5l7W7I8SsscjZgZxd2Q2ZTG7o
+MgKEkLRNCBVJ067zHeOMT7gN51JlYXqx2jOO6tmVOIdgS5FSIuN1aPnlTh9BAa+N
+SKqafRqCnc2fq7DXv/4JXUDa13ZMLgBiewibPHPg1UAoiuacozwNCss3+be9o1fw
+ww2Gki5sL0j54ji5FokwUsItZU6vv+UTn2jctVyPP1YS0aL9Sr5Ji2+F18mzz4HN
+H6lJwh5KF6Ma+cj3PjNMuJD5LFBgspb5lwvSqSIFFh72NCJsknwScDbkC9S0nojE
+CeMzIRrO2iNkO3SO4DvbGyBjjW6m6amcvSD/Xn9KlTJC8yQWNJSRww2V8cnL2GrD
+tGDBacJsUnWt5Wzo3UeeJp870z3T6EQ4dxyIsG2NMgwCEbu7g11BUEcefifpte0y
+GUIeYSBVW4cAHi7EMS9G780UbRImdH0RqQapW26jMy8yZdS6xm2iGMv7ZlN96cct
+VGHzfhSsZ1JSeVB5a515XdNFok5Fi/ajCsCLwmuAAATw9WoWozGH61FgOKMQFeuW
+++UMZvD7S4RuvRZGjwSxFqgiEyAa/KoAT54P2Qt82FKL/99tiDoJpeCSRe/3Q42r
+AgMBAAGjdTBzMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgEGMB0G
+A1UdDgQWBBShKuMm/CsNdqhci0cRucHCIGHJGTAfBgNVHSMEGDAWgBRR54z+6uVX
+6dIbG/AWIbiNiXktXTANBgdngQgBAQYBBAIFADANBgkqhkiG9w0BAQsFAAOCAgEA
+MWwZNwIPPOVN9DEPpExxlbxGcSAfzTeAorOyeX7rVGE9a+CPvPaQVWPlr1VnIRSi
+MTQg8gvkaFqyBE4HPZHqwZSEDa516ngLm/qXpT3Lf4L7Ktbmd5AhWIxnKvIxd6Le
+J36PwPYTXCtsuoNsGNet8sVlWbTcGse0Jr77b1/cRvFNMjpY0dsgVjtpN2WgPDfe
+u2NXhQLEqtG/JQyWxbKzqT97wyJeJD9t3FGYEMyg4lsmV0npdrgsUanhvAPdLiid
+fhg8HmIRjcXXexP9pu4QiGZ8yYx1CkF20opsIDeW1uAlM5AZ+UbtKG66H4V4OdjA
+kW48r7vRAJYrctcoin5sdNwna8+H/xMENnWcXFfRRFkE6SdJR1RmHwWTSdp1c4dB
+9+9X0yiK9fszPf9aYI4pzbCZhmSgMZXS0NlgM3LqsY6n1hCwcPgLrIF2g/MBE1xy
+AZDmiQ5dKI1If64ob1QWdyv3E2TYLELVqiK06UeGrTuTHpjvG8LcbMHmRWCl2xfq
+Ch8xWKHgTla9dbhBNKNgI9tWS24iTsEPi2tYwA9I0sbYpQXIMEAMs2LUgtTVaPBr
+czyDMx/Eo2F2J2CT/T1vBrUIMODAKqCQOkiYxDPsqxARn60CnrB+kOaRKLMZ/xHH
+UckgI3i8kJv5Ye+oy1tPjfYsHa6F9jQBYgK2sCaawLk=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFmTCCA4GgAwIBAgIINi17NDMfYIwwDQYJKoZIhvcNAQELBQAwWjENMAsGA1UE
+AwwEQ1NDQTEdMBsGA1UECwwURWxlY3Ryb25pYyBQYXNzcG9ydHMxHTAbBgNVBAoM
+FE1pbmlzdHJ5IG9mIEludGVyaW9yMQswCQYDVQQGEwJCRzAeFw0xNDA0MTYwNzM4
+NDZaFw0yOTA3MTEwNzM4NDZaMFoxDTALBgNVBAMMBENTQ0ExHTAbBgNVBAsMFEVs
+ZWN0cm9uaWMgUGFzc3BvcnRzMR0wGwYDVQQKDBRNaW5pc3RyeSBvZiBJbnRlcmlv
+cjELMAkGA1UEBhMCQkcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCR
+hk9Hf+MacgAWiyVbLGuCAEE+9H0VwA9RPweOM+PU9wFDBqDoc6wLFKUt16Bhvgs4
+Xsz04VV2ALUYMAeQ1+YB/SZQZPiTifPgTGz4eFSgwkmNMPnkioi6d9uy/IF7oEoC
+Xi8NGf1fSLY68mTGdOYs245WfV8mfRHz/rm6VQYBMK5SF/mbAyl0sy52vdrl5FxS
+HPMhykFuFmOYVHDGVrATiYlFBMVDJ7Jfx7irvgjT9R0Z3icq6jtWajUvOd5Uz7ik
+FdTscRE8tgqTLbAY/EvOvkV9Rgib5sYy+YtrgihUuH1bico7u6GqlFU+eNYXNlSI
+nGaH2RftwzloyeXaicIfqiVQlS+t6qNqtWv05HkzQzP0p7XRquX+rMkcjbl8FMYE
+tIJr5JMmgjwZv5bc6AJSfQ2Lfxqigc3MWwYoIni/E7uU2ub12cs80WBP74cebUNM
+i7FAcKWRVJknfYuvxVgZROwoqoYMe1yhcJBmuCdX6Zf0KTuwaJLPf5QnYKqdjrCX
+eVfOq2+s3xRL0CPIe0DuN0XmGAzakDKimVUFdR2WTf/r8c0XOyPcfbAf5ZBhohuJ
+Ln+lbwQoXTc9s6iqoUBat/922btzH2xuAS+OfEqekpikq//zS4lt32RHRnNBYTE2
+DL9f115RH2AnT5SLK/qIZh6I3qpVBxcVbg2As1lTmwIDAQABo2MwYTAdBgNVHQ4E
+FgQUnuC/3uLT1PztGzko9UqnsyZd+vkwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSME
+GDAWgBQz5BOCTpR+xTLM3YRul1ENA35vYTAOBgNVHQ8BAf8EBAMCAYYwDQYJKoZI
+hvcNAQELBQADggIBAA4ozBEIGQfxsC4ZcHV2essisaupn+yV/GqgjsdywWCnGhKn
+DAbUcN0L+U7KNK1d2ooYAqCLiHFRYCYdAP2QplA8M5bId1bsAzN/WeQhWUWPKLST
+PXGYyFQnfxNPdKN8uQz2xCW/fd4Cg6PSiFAoIG7wQrdYNMD+QdOr5vsD2F4kQ6tM
+VP9TD9xFLthQmuHmantdB7cM9wdgWhLZoH2UTb7x4ZyAc/L9CSPlVCxesAY6RIFb
+VcdNKA2e/YvIU9pMWKvx7brp4bXbIph2CFo35yKgxrZHwmirShlEq8of47TkLlZl
+F1sw9gdwTC06V6oapvZKjSPF/+BWTnE1lr2+Bi48VfxYw5ZJB8kaM0SCwa4ZCrgT
+s2De4W6eu6LnXe28wg7bC8ImaT302g1He7svrYxpZxrPp4fsunZ3bGdAy1wQzejM
+Ha8R/2CeIpa7wOKbCWrMZGS7xDXVHXVZ+PXWT+G3uJLJPI36iGfG/Gc7c4gj5PqJ
+UXVT9ys7gNORBVpcJJxaUXM5n9RJdYOl0OVUgrJWyadBbtrjWNs8twld7Jw8V+kT
+pTiLqSeMrlh776ReBsc5Y3H+p2Yaudkz/GgPGhBWZ6q9SoSc39U4cTbMyEllWCnj
+OMOB/4Tqdq1OZZzVhRYcBaRe/ZTlu/yDT63wMjeaKSs1JueLELxnk2j7FJmG
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFmTCCA4GgAwIBAgIIPbO4azfF4SAwDQYJKoZIhvcNAQELBQAwWjENMAsGA1UE
+AwwEQ1NDQTEdMBsGA1UECwwURWxlY3Ryb25pYyBQYXNzcG9ydHMxHTAbBgNVBAoM
+FE1pbmlzdHJ5IG9mIEludGVyaW9yMQswCQYDVQQGEwJCRzAeFw0xOTAzMjAxMjI4
+MDJaFw0zNDA2MTMxMjI4MDJaMFoxDTALBgNVBAMMBENTQ0ExHTAbBgNVBAsMFEVs
+ZWN0cm9uaWMgUGFzc3BvcnRzMR0wGwYDVQQKDBRNaW5pc3RyeSBvZiBJbnRlcmlv
+cjELMAkGA1UEBhMCQkcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCb
+lcm/X/Vfp6/HprGtS2f7jbSH+N1ZONNwFlGTOQyzAzj8XWBB3Kp3pPhqNNJl9sRr
+bkN3xIImWljcbYGZ3LRbC2VusMq80WY/Abv3AXogveN5XbFHL7XiTmBJaCeXUF2t
+swDgEkKV1Vad4Q9lddSaf3iIE2hujopGPJqKP2i67AP5ryuGswEdRk9T8QM44EpE
+pG8UA9R710urY6qQI/BocAuZcLkgiBZ+B6GCjJxVmX4g0Tw5CpALDWvGU8aU3/eR
+yCEGFzSx5V9ymGRahRZk+djQLFK73Uw4nszzWHg5UgZQ7c+/gSIoWV47NTPGd5LF
+2BXhalaB1e9xDcI1bTr/0Eb+2x9w91glKWQ6LzxbxfHcb8Bx2uzSDrD1Uat3Tlkd
+kCsNuqzEDLMYpMjncFWF7VK/yF/6NCYFofXMYZYHG8IgGLns4mWu38aBz0JP/RJX
+Q67b/a8CdHPljSEXqQuugVxB7chqgYKqJr+WViVtwCrIE48wy9HftWXnJ2iI5RXC
+83kHJ2hoPOJanHP5KwQVoeHzdvEDaQMDiGaAcnM/re3K7XZ7WGVAHNQd/1Haj5YK
+OvE4X2ea61SOkOIozOde/O70n9KjR+2OXplWLnyMsttOiB2iPbLv2To6nwwC4VeD
+WmsIVNCm8Y1b0iDAcTJ7qDnzPlJkLDG/bOjcmy+GJQIDAQABo2MwYTAdBgNVHQ4E
+FgQU4RKdZX+m93nitBiyBdsnXvue9bcwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSME
+GDAWgBSe4L/e4tPU/O0bOSj1SqezJl36+TAOBgNVHQ8BAf8EBAMCAYYwDQYJKoZI
+hvcNAQELBQADggIBAC2LcqfVRrWBfNRpHSoeq8zmCauBHwSpRysR2yU2X1+5YtE1
+eTZlRrwVst2evdB38jb444skM5rTM2v1i6FfP4dBTXwNVQmcFnLsF4WpgSCCnTFo
+ofyIGA8fIc4xRgUl49Om6WrMNNyk5qKf3LL4rKkIiVVCBmek2Ms7nA64bRKNGC9w
+FeznDCLy2+dl1prTok9tOMo17TxSM2zhcCYCIaVKpOhG/EhWswTTSWUFIuatV7aP
+Zy8slPZsyDiNd8sZbAIkKbt3q+JElH6b/tC1jwh/endftcKS9KvDMo7o7iqBwCvJ
+gicEwdCnPo+hM60t58qxuYDYrDTJGwRJxWw/SpcdIi86NofDRMwi/HzkMksOkma/
+uK052VZ7++HqnQD5BUd8g7z59hG60jiPe7SU6c+9RiIQsa4mmAFq2G1wd9J+0Rlj
+zKOxcpijjqb4WAN+VqH/lPYdUVjb4KTDFVbOEe5GI7sdTqmD9TZM9d8/7HzSlmGx
+kXaFOOBt3DDKTwHJxmG0gzgpPWu/h1yjTHvu7mwq2pDdyKdyfH5fmpQytKUx56w6
+GFHMfTEbSAJJ5ps3AD23iphM1cr9Ma7Lxna4JYF7M2NiH6M/bALZx/+vfOZ1dLtM
+U2qaBWUzQ3iTB/pwh+mmCM3noxsAWL2FGfWMHbWvi1wkVUXigkLv40sRdh7W
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFojCCA4qgAwIBAgIMaO22BCQVpTZsl7wKMA0GCSqGSIb3DQEBCwUAMEIxCzAJ
+BgNVBAYTAkhVMQwwCgYDVQQKDANHT1YxDDAKBgNVBAsMA0NSTzEXMBUGA1UEAwwO
+Q1NDQS1IVU5HQVJZIDQwHhcNMTcwNjEzMTIwMDAwWhcNMjgxMDAyMDgwMDAwWjBF
+MQswCQYDVQQGEwJIVTEMMAoGA1UECgwDR09WMQwwCgYDVQQLDANDUk8xGjAYBgNV
+BAMMEUNTQ0EtSFVOR0FSWSAyMDE3MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC
+CgKCAgEAjnq7oGg/BM3kajVMTPZPbzTul4S07fxVhggfHD6vYllrNBXvRp8E25aL
+VX3Jc1TPAX/nyH+6g3kleFvUdpjp5ALSB2tkpc/V5lhs0g5ydLC2vQRq5xif76us
+SaT7ZYYBLQ4gdwLeo+n+KZW/oZ+O9l7doXNXOdDrEXT7A1+GQqde6CZC1hXYCJVL
+Gjw96pkO69KcJwitc8qLHrCCjK2ufAMNmSrlyKTiyPlwNw/Sw1da75IEedXnZ16C
+5m4KZnKEjt8uSgTvue7hfDUo9VJ58LdKgLKnOXLLtsPxiTsyCYF7KF/IHA5FjUvo
+WNzdprWLlg25WoPAZv/WWl1I7knSzFcjgahtxo5NTbjMiG5aaqwyMWwJqs5KIyF0
+lkzT35rhhUU4RoBuGssSY8xfVeZnUzJG2aG40YdHeogIjD995adfFSqkRW8eO+b6
+ahKougAxBWRRGVcZGbNs44x0mqs/dMJCAY3yisXIYVQHwLNZrF7IXoYj103UsJm7
+jhiTSEvhRhLDg/VWJ+0Uas3S0hEz37pV0BL8/GkMIq9gMY83hBJFlgzXBijN4Iwe
+bqqUupYQbUzTji5MzzAqUWZ5V2gXeNnPLiHSDf3A6JyBBL2MKESyPWjo2XzBYr6s
+0k6kc/41ZXvG1nyDF1j/1dCTq47PDPOmG6f/Pq+8MGc3/GIqJSECAwEAAaOBlDCB
+kTASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU
+E7qripbOn0IuYAWMJAetc0qBRBEwHwYDVR0jBBgwFoAUkQNGOgwfQ+Xd7GW4dOIE
+NxRVkEYwKwYDVR0QBCQwIoAPMjAxNzA2MTMxMjAwMDBagQ8yMDIwMDYxMzEyMDAw
+MFowDQYJKoZIhvcNAQELBQADggIBADzrc4oQg24/wQvUY3YIwqyEMVQ+ZkkfUEmX
+ZXMeXCaOrLqGbmkGu1e8DkIsH7j08G2YrcvYh96QcVJJD4zmk8HWjesc8sx/EqsT
+oabAj4wlM7jiJE9U5iRWBKdhdCbCqF/KshmE1vl6wlAQwWM1eS2zBKgxLqbhS3NI
+iROXUjUsI0xkCpp6etrvRLGWnwByA8H7f36miAiJ8YqbTjW25vU3oKX7m/dpmKDt
+NB/u22Vj0tYFBmyXXCAy7s+8LbWzOyzn60BsF0lnvzUptqfDZB0u1ikrfZJkqTyQ
+sSl/DDPkHzevwjsdJPJuMVBV7KtnQqMdA5Z+duFpGBYAM+u4pNaJtf518wsKDQes
+Zdc24bGeAwN+nO/m62h3xspQeUYqJLGNTFuP/GL1g43ExtfGgC0BHyUIqwf5PIBD
+2jBSrxCu2z1SthVhlJXtcIG+tFRVb+eJaJwyWim7vq2uTaT3kALYkkZt4R5lz8we
+P7uS8EtlPf3H2qDv5OyJyZz4rvE6HSuHdDGiieqC3Q/zWrnpYlNLJM983+qBNfu1
+VSEqcll9fo/JA/agscaaB51+yg3qlK0rYDUIEuVQvqXVi7I1HtEIfuTadnhuup6R
+zWwGNfw7P4maxIRgs6oFjI7jMKU4FO8Uj1ZKONDOBHIg/bURTXuHHmoigEdaBSY7
+yVpowqcI
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFojCCA4qgAwIBAgINAJ3gRQ6YL2OKAu5XCjANBgkqhkiG9w0BAQUFADBDMQsw
+CQYDVQQGEwJIVTEMMAoGA1UECgwDR09WMQwwCgYDVQQLDANCTUgxGDAWBgNVBAMM
+D0JNSENBLUhVTkdBUlkgMTAeFw0yMDAyMDYxMDQ3NThaFw0zMzA1MDYxMDQ3NTha
+MEMxCzAJBgNVBAYTAkhVMQwwCgYDVQQKDANHT1YxDDAKBgNVBAsMA09JRjEYMBYG
+A1UEAwwPT0lGQ0EtSFVOR0FSWSAxMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC
+CgKCAgEApYbYiAxkQh/q80R0mVyeExygqoOkat6mRchyeiYU/lDruelx4ufSGxj3
+n207lWLNoZpx9+a0gXpetS3CSgmMMkti+ZTFSzrC4z3o02p0nHBQpyfbDfrvJUjq
+5iHAUGNruDwWjKGJrX75ECb0gNI1QXVAvPxCS7Txo5wIGf2LrCTUfbGi7GPBBYqU
+2A5STO6Ge07j5J/d6o87Knb6uple1jHKkzzjWJAkmlXBIfbb/sqqxWgQG8JfZiU6
+Odgg4QmxJLUg41w4mF0Hak787zF4w0AuhJRkzlRjeeohmSRW32qr9AGyoSkWm/Cz
+ACW6Ce49dUtS7gz1tPw8lfxveGFcCTmSJ1xafwHXTd+wyKYuICpzEK9+M/L70kOV
+C8Z4lnLGi5wKQYo5s/0Oc+rdZtbL+cyB+DuAh5GDcUZ0UjYJZ8r12rnfIq9N5kHz
+hHE13Kdv1taQOsuaEhPE6QsNEFBeijy1g8yiGe8KweWAOdZu2xJIDg4TpRV/9Rqj
+Btxj6WR7Ytt5whhdqrNDxYwp/UpP7gCLn7LJDdmANwmLRyThSlo6SsOGjmYVh6DK
+++8ektijW1IeUqicI3xW7QAm3gObjXVZhN2dQjB34goInRKrwOyZKXUeWcYa4MLm
+k2zdPZyvoYntlzlgV4Nvmlwo/iXojHAGByHXzmZMKwIiO7Dd9tcCAwEAAaOBlDCB
+kTASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU
+HTTv88Qialg3ztNAfo3awEpJUw0wHwYDVR0jBBgwFoAUE7qripbOn0IuYAWMJAet
+c0qBRBEwKwYDVR0QBCQwIoAPMjAyMDAyMDYwOTAwMDBagQ8yMDIzMDIwNjA5MDAw
+MFowDQYJKoZIhvcNAQEFBQADggIBAEeK5fRnSl5Q/yjvxzyHqzai4U1/sXR4Kf3D
+FvDO2ghCmrd5ggvLvbw+y+KFN4XIJgA3OcFk6ALyBKOlAv/3X4DJXXt0L7q1ckFU
+tf2vGDSM3ClAerbvdJm8xG5YDkq4uVDWi0ySPRWmy960QVV5ZXWINQNy4yZmWPhg
+DwT1S7DvcwkKeyN2CNzlf/qaME0oARDmctIHhBsp3vwsHSOvXFy5mg0WXhNHv3et
+N8M2U11ZoKKgXyaRfWIxZ8ObIKJlsu+FoNzDapxrllVfE3tTg5QgCvtgcgH/8DuA
+8nIOCEZThI05NGreWflq+ycc9sWqqBGdI6vrPUlW2hgHD+muGUKjE698Qb4D0VH7
+y0pEunBBPyibkpAhWMiBEFg0EzxqoZhn5CwTEdSivptzmBg1uMDqQu8jwmaEf671
+GAxf2ckGThrENTMfJSjsdOAUAw2enw5SQ65Tm1cpHvOr/VJcbFvEUQnTQ0hJIajN
+dA0abp81K44RtlTaocVAwShybsFf57JwP3zyW3XCLFlPDZRpcnw8s6paXUSbf2qu
+12d763EtfacUBm46Zg1HMw2MX3CTGWsyTO6GsEryj3PTPr7p8obpspEEKpM83rRd
+wbPX3AmXsxi/SreKx+tQjVTRF/lHL8tQvnlFdnwzoudNp+dFi0g63vviQQ+qRBVp
+YIJ709P9
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFpjCCA46gAwIBAgINAKFrEnYqW77JLh5LCjANBgkqhkiG9w0BAQsFADBFMQsw
+CQYDVQQGEwJIVTEMMAoGA1UECgwDR09WMQwwCgYDVQQLDANDUk8xGjAYBgNVBAMM
+EUNTQ0EtSFVOR0FSWSAyMDE3MB4XDTIwMDMyNDEwMzAwMFoXDTMwMDkxMzEyMDAw
+MFowRTELMAkGA1UEBhMCSFUxDDAKBgNVBAoMA0dPVjEMMAoGA1UECwwDQ1JPMRow
+GAYDVQQDDBFDU0NBLUhVTkdBUlkgMjAyMDCCAiIwDQYJKoZIhvcNAQEBBQADggIP
+ADCCAgoCggIBALcX6QmvDwHV8SACYE/c3LFTpE+sSfy7J6mDIAPbKRTklA17SHPk
+O/ixGilYmsEArSDs4oagS8evQYrSl2Ok4LxSprla84mEgrN6SyAvNSsrV0F+wPaW
+nekBY/FwOKoLj0DvvrR+Cqvkp75TDQ6N1SyyS32LhwBEqXQyXDE+ufoSwvm1GbFt
+ctXyClc5AhI1vWv7aUUY0M1c2sujB4UwNF9QRk/oax9tF/474lIcfjHoVfqK8W7j
+yn1zFFJHc26AxFWKEJ7GWiKJ477A0VFLasukXQL7pFgNopWznz075BUPvGrCoBNp
+Jq17kGDSZu0PvSZPGrGfLKfzoc1iaistBvR+nd/oFEVQpxP3jV4teLHsRz2pw5Wh
+v/YwAyS1P6dHR/N1jCLfWyOjlSZIxcZinkMplspTsAEnS8y1vZqrPURz/hAfdLLW
++erjR1AD8K3K7V7WMfK4QvmVHgD3zjs+JcZo1aD60LYNnqy4CWRc8fiiMW9uDzWX
+FHtIJHfHAryMJilvgS6Gl7xiquTm/euebM5GU2cgs6572rJTsZhWzH9KXUaImjOi
+XVCUaikWKVpGSkkQG8sEGNOBYubozHA3PfAWuPS3s5dZE2sBwdArZdbbeSq2Amta
+wInu3SKEvK9lVz9SEuSh3Op3bdoa4BZx7eXU7GApSe5IsflVQXGMXaiLAgMBAAGj
+gZQwgZEwEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0O
+BBYEFIn1Vohm7xEUeCV2YIMQQfiDVDHiMB8GA1UdIwQYMBaAFBO6q4qWzp9CLmAF
+jCQHrXNKgUQRMCsGA1UdEAQkMCKADzIwMjAwMzI0MTAzMDAwWoEPMjAyMzAzMjQx
+MDMwMDBaMA0GCSqGSIb3DQEBCwUAA4ICAQBoyM907I9fId/qwcabBzuI8jvqpo6C
+Gbpzl5gqpAryUekSx4qLvtbDix0dwp7TkxY7pCaVDPi2IjIJku7gL5RsurWwreJy
+ubNVcLTDu+GOxeddX1wD0m9LwjVL/XyC6f5N5FHZ0s2/E6fp35ZdOjcFFQHu+BYu
+0NaLa2DBX4EfAwBjl33B9vK2wlvbhfPTJnzxsZDzOYk/EOGRTmjKlW98bOuOXIs5
+oIE9M2sFdUZbnC0PwonwDmCJ54fHtw51ceHKU5qrDZ/T1MkHspwJukP0E26OIJCb
+uNrLbf+k5E0ro4w6SF27CkzA2omkoqDI319/J3O07OHeiRSnPGvVUrp7uP3xx5UM
+pS4yVIK1TWSp7344PBsKbetDxafQRhJk6WvZdE0lm9QTlXLEbGHBycd9VM+X0Ymz
+vdHB1y67x62VViKtfgerutHMwRlxexxkaGGStovdC82WAuiOxTwjpRTHuWSsVYI3
+0T5y8RsjWJP6cJjL18KkDknpRPk40WGICieXnSz5xtDcPqkvuuRye+pZveHwolY7
+iVG3u2D5phwTUf6LTdBVR+sGr+EmoVFRVEchJUz3W2RHjYFfamyPXkmxVoUdggkV
+XdBUtdiUlQTvXFGwylcJhIF6zRrFtaRO5FGGAuJBl/HqOD4ZBw7pZW2W0aaQguLF
+TpF6khvje0iuCw==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFqDCCA1ygAwIBAgIIMMhSNhHQNgwwQQYJKoZIhvcNAQEKMDSgDzANBglghkgB
+ZQMEAgEFAKEcMBoGCSqGSIb3DQEBCDANBglghkgBZQMEAgEFAKIDAgEgMCwxCzAJ
+BgNVBAYTAkFNMQ4wDAYDVQQKDAVHb3ZSQTENMAsGA1UEAwwEQ1NDQTAeFw0xMjAz
+MjMwMzUwNTVaFw0yNjAzMjMwMzUwNTVaMCwxCzAJBgNVBAYTAkFNMQ4wDAYDVQQK
+DAVHb3ZSQTENMAsGA1UEAwwEQ1NDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCC
+AgoCggIBAKg17lPofg6ey51yxXhaGWhXaLzMxC0I/u3tAElgguAo/P2V4OdH+him
+aulkY9SUOtC0vayJ5N3Hdfwsro6GB35rTX39LcMl6WONih1L825M3yUqgbrHKhxX
+ijn911137dwbgF1Cmo6rt+suBDA0hFdjwFK1fh2MCm2iPkLvvnxEbR3WFxYh70ch
+x6pWnFeNTE6Sgx+nC/PZW9KUj/63qXa15nmCQcHgmVQDRMo356nL4adS2ZRKl1RP
+itOxAPbES7en8WC213YvsAiogDwZ5M90H76w2LwBwkaJIvaAnIwjc4jHGa/5cvax
+qjfwoFvJvuUqRxyNyyO27VEysl9y9y2v1X/6eO47aQ/yKlxpMWSv/gE6kYM79C1p
+QC54sCX1NXFjomwONtD3/M6zS97EoOFUZOr4iWAsOtCk/ME8+VLUqmL4VHth6NNz
+4SK3go2CItmpL+W947Ktjz2N8dzXojQuXXq0Btl/qMON1S5NOtwhAAkPX9o2FhjC
+TWgiPw9aJOKovmXTaDBOr32fxSxe6bYTeY/x/8313WYMFwChhzanfvQXrblIOtvw
+8XVnJrWjjcrwhqe13KjAk/5XA0SgLT9MYrAkHB7q2OqEeGCTA+NSLEAJZRcYklRz
+WGtXILlPV1pCuPZ8cCAD6jNlIMCU6MJ2OTZMRFnBVqpO4wLZe03xAgMBAAGjZjBk
+MB0GA1UdDgQWBBQLLZ8H30CNddEega8CWnsEgfNYjDASBgNVHRMBAf8ECDAGAQH/
+AgEAMB8GA1UdIwQYMBaAFAstnwffQI110R6BrwJaewSB81iMMA4GA1UdDwEB/wQE
+AwIBBjBBBgkqhkiG9w0BAQowNKAPMA0GCWCGSAFlAwQCAQUAoRwwGgYJKoZIhvcN
+AQEIMA0GCWCGSAFlAwQCAQUAogMCASADggIBADWvAP3b2KhVmoVFSdUMNVuaw+Jz
+dzO7TUGPyq+UMsGq6jbRzS5hocNRt9x2ksmqMsE7Ia1V8RC+9dcbYgNKf+pKyo6+
+AOY2irqVtOtayMEOhA6imdefdn6mc02CF4e8ra4ccmGZIx6lokDL/fE77AuFrg0x
+18o70fzNk9Mn4SRd2QQjmJaY6Zj3ANWrZycCiruUTVwzSjZJt1/AjiwxPSpVtnQO
+anCyg8h/be7vYThVy7rAMTr5Gs6d8dzImZJo7I9zhjPra4RvRv9h2+MzoZ7aCcGV
+N478xcezWroyTm0tFMXpIDaIxgmXdm0RYrSc6W7d0mO8vHetxJQTZehPi3F0mkBA
+flnshyRcHfodVHs7TjH9VtFmH+HDLIdY+cALwUn3Bjxm7oG/F5gGBmmrDsIHVG8Z
+qQttcWw93+39KJkiS5GwjXhX9CDPVGilMUC42hclWn31TBT0zf7AQTd2fV1hvVdv
+W2HqjBo3Y3higF3qKPQzWPJe69wh8mJPzT+IwrDxZGCJWaHxAgK1yKMoopV/YTgJ
+SsR6kYNK/p0hfjQldiLV8XObbY+VGP2DdqEVv79Cc7i4FNEh72j+jvVoAEWi43Hz
+ylsRx3acXRc/iwQfYub6c+xo6hxm/MO4lu9fIl9nQ/yoo2nFPcE1n30XVPM1NCZ9
+dwdjglPMqaW+R8nh
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFxTCCA36gAwIBAgIIXfbd8vwHGUowPAYJKoZIhvcNAQEKMC+gDzANBglghkgB
+ZQMEAgEFAKEcMBoGCSqGSIb3DQEBCDANBglghkgBZQMEAgEFADB4MRgwFgYDVQQK
+DA9TdGF0ZSBvZiBJc3JhZWwxDTALBgNVBAsMBFBJQkExCzAJBgNVBAYTAklMMRAw
+DgYDVQQDDAdFUFBDU0NBMSEwHwYJKoZIhvcNAQkBFhJjcnlwdG9AcGliYS5nb3Yu
+aWwxCzAJBgNVBAUTAjUzMB4XDTIzMDcyNDE4NTAzMFoXDTM5MDEyNDE4NTAzMFow
+SDEQMA4GA1UEAwwHRVBQQ1NDQTELMAkGA1UEBhMCSUwxGDAWBgNVBAoMD1N0YXRl
+IG9mIElzcmFlbDENMAsGA1UECwwEUElCQTB2MBAGByqGSM49AgEGBSuBBAAiA2IA
+BD1QcLHd5AbqVZ2cxi/1YtFOgjT+RdtaVQv86jnFAnROXS5K6hHGK+oa9icXD1L6
+qXr5vtXt/DiC+yUFI+L3M9PRh+H+UPn0VDzA3dX2UWR1bf1ae0A7PeowVJ7PSXuo
+BKOCAdEwggHNMG0GA1UdHwRmMGQwYqBgoF6GXGh0dHBzOi8vd3d3Lmdvdi5pbC9l
+bi9EZXBhcnRtZW50cy9HdWlkZXMvaXNyYWVsaV9wYXNzcG9ydF9hbmRfaWRfY2Vy
+dGlmaWNhdGVzP2NoYXB0ZXJJbmRleD02MBIGA1UdEwEB/wQIMAYBAf8CAQAwewYD
+VR0RBHQwcqQQMA4xDDAKBgNVBAcMA0lTUoEPcGtpQHBpYmEuZ292Lmlshk1odHRw
+czovL3d3dy5nb3YuaWwvZW4vZGVwYXJ0bWVudHMvZ3VpZGVzL2lzcmFlbGlfcGFz
+c3BvcnRfYW5kX2lkX2NlcnRpZmljYXRlczB7BgNVHRIEdDBypBAwDjEMMAoGA1UE
+BwwDSVNSgQ9wa2lAcGliYS5nb3YuaWyGTWh0dHBzOi8vd3d3Lmdvdi5pbC9lbi9k
+ZXBhcnRtZW50cy9ndWlkZXMvaXNyYWVsaV9wYXNzcG9ydF9hbmRfaWRfY2VydGlm
+aWNhdGVzMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU0Igv5uil4mbgyXfzutYC
+uXV/guIwHwYDVR0jBBgwFoAUWKkdn9oNed99zMXFbaF+BQ5y0agwPAYJKoZIhvcN
+AQEKMC+gDzANBglghkgBZQMEAgEFAKEcMBoGCSqGSIb3DQEBCDANBglghkgBZQME
+AgEFAAOCAgEAfq1TDzQLQS6rotNqtLLedIfgFnd5VaklVaYmkZBr5WoTAH4F4vj8
+c2H9GcYUfOds+S8W4Hj0QGQPea9aH7DqAi4UVpIqdWIWtwzxF90T5USYcrG/t6wU
+y+hnLPJac0aFSN/tDKGL8piWumIWQBWmyxjuDtED6zcnXj+vjn1PrAyBJBQLa5tA
+od7OH9+uEsMS/laINBzsfIh8GQGunWjnWaDfgQn+cUNRDEEa/PFTMItRML8YXf58
+rn9L7JxK2DAWG0InssJWmRHzMEIK62h2rUx8UrcGsPB/L59sMvN8MEDDKXmDfZCL
+DKi5/DDcHaraM8fm9C9N3gIXRHoqQqpK28/M87TTZD96dyEwDKWiVrJqmh9/7huz
+u49bJsmMDoyGAqTQLT94svO1CV4RkiaQf1qUDptICqkHSpuKFcTxV9Cx74M9/EHT
+KxNqKyW3MDJkNZtspBfsQUZIZjQl8GM70Rj/jc7Oe/0SLQqqSmBLOfCEa7bhRVrS
+H8N6Ai8yUsCxjkqSb/NCs3QKYAhWu8IzKoHjsabKcnjhdVem97I/Yd7CPmKVXpZe
+MgRRd0p0BeBiXMCFiDcp5DVSmdQYkHOoLKjz0JbW76ejFdSH6rVBcqrq4tAQS8+F
+FuIG6U3/4+TA8UrysW6uo1iYHPoZnNFhX9I7SbXP84rdo5xKPQZ1B0Y=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFyDCCBSqgAwIBAgIRANGxiXWWb6Y47ZK7CsVNNkAwCgYIKoZIzj0EAwQwgaQx
+CzAJBgNVBAYTAklRMSgwJgYDVQQDEx9JcmFxaSBNaW5pc3RyeSBvZiBJbnRlcmlv
+ciBDU0NBMUYwRAYDVQQLEz1HZW5lcmFsIERpcmVjdG9yYXRlIG9mIENpdmlsIFN0
+YXR1cywgUGFzc3BvcnRzLCBhbmQgUmVzaWRlbmN5MSMwIQYDVQQKExpJcmFxaSBN
+aW5pc3RyeSBvZiBJbnRlcmlvcjAeFw0yMzAxMTExMDMxMzBaFw0zNDA2MTExMDMx
+MzBaMIGkMQswCQYDVQQGEwJJUTEoMCYGA1UEAxMfSXJhcWkgTWluaXN0cnkgb2Yg
+SW50ZXJpb3IgQ1NDQTFGMEQGA1UECxM9R2VuZXJhbCBEaXJlY3RvcmF0ZSBvZiBD
+aXZpbCBTdGF0dXMsIFBhc3Nwb3J0cywgYW5kIFJlc2lkZW5jeTEjMCEGA1UEChMa
+SXJhcWkgTWluaXN0cnkgb2YgSW50ZXJpb3IwggJGMIIBuQYHKoZIzj0CATCCAawC
+AQEwTQYHKoZIzj0BAQJCAf//////////////////////////////////////////
+////////////////////////////////////////////MIGIBEIB////////////
+////////////////////////////////////////////////////////////////
+//////////wEQgBRlT65YY4cmh+SmiGgtoVA7qLacluZsxXzuLSJkY7xCeFWGTlR
+7H6TexZSwL07sb8HNXPfiD0sNPHvRR/Ua1A/AASBhQQAxoWOBrcEBOnNnj7LZiOV
+tEKcZIE5BT+1Ifgor2BrTT26oUted+/nWSj+HcEnov+o3jNIs8GFakKb+X5+McLl
+vWYBGDkpaniaO8AEXIpftCx9G9mY9URJV5tEaBevvRcnPmYsl+5ymV70JkDFULkB
+P60HYTU8cIaicsJAiL6Udp/RZlACQgH/////////////////////////////////
+//////////pRhoeDvy+Wa3/MAUj3CaXQO7XJuImcR667b7cekThkCQIBAQOBhgAE
+AIAHrhc8JYaKCBLIKhAzM2qjNSurwrZsJ4BFGzra1Rk41HlxOUJNbPvlUXlhv4lC
+NuppwN0KmSFm5Akc/c2q6MpYAUmNzkERF2LRFUN7E9ApdRG8X4GS3UgTasg1fozA
+3FtPJQMHR4QYWrmyxz8tuLT26U8a5yYiHsI9vz5TY1ErzjQco4IBSjCCAUYwEgYD
+VR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAQYwTgYDVR0SBEcwRYYbaHR0
+cHM6Ly9tb2kuZ292LmlxLz9wYWdlPTc0gRRQYXNzcG9ydDFAbW9pLmdvdi5pcaQQ
+MA4xDDAKBgNVBAcMA0lSUTAdBgNVHQ4EFgQUUdMaKi387TvA9UEk1FUxCbPi3lgw
+TgYDVR0RBEcwRYYbaHR0cHM6Ly9tb2kuZ292LmlxLz9wYWdlPTc0gRRQYXNzcG9y
+dDFAbW9pLmdvdi5pcaQQMA4xDDAKBgNVBAcMA0lSUTA0BgNVHR8ELTArMCmgJ6Al
+hiNodHRwczovL2VwcC5zY29wZXNreS5pcS9jZXJ0L2NhLmNybDArBgNVHRAEJDAi
+gA8yMDIzMDExMTEwMzEzMFqBDzIwMjYwMTEzMTAzMTMwWjAKBggqhkjOPQQDBAOB
+iwAwgYcCQgG+WbvZwhRME+bbdOcFp3mOl8TjWgNpfiQi2i9ZtUEw5+1qb5MJZbJJ
+g8KoAmwa54OsA8ahEaHq3SnP7Cr9NTFB/QJBOO7i+iqzFs9fr4TJCiJsTZ6JnOTm
+Vnn7v0a5D/H+ofc3EoT3xoS3WWzrxD1a6ulzrs/MeK6I4wavFDuAR5F60gQ=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFzjCCA7agAwIBAgIBMzANBgkqhkiG9w0BAQsFADB4MRgwFgYDVQQKDA9TdGF0
+ZSBvZiBJc3JhZWwxDTALBgNVBAsMBFBJQkExCzAJBgNVBAYTAklMMRAwDgYDVQQD
+DAdFUFBDU0NBMSEwHwYJKoZIhvcNAQkBFhJjcnlwdG9AcGliYS5nb3YuaWwxCzAJ
+BgNVBAUTAjUxMB4XDTE4MDgxMjAwMDAyNVoXDTM0MDIxMzAwMDAyNVoweDEYMBYG
+A1UECgwPU3RhdGUgb2YgSXNyYWVsMQ0wCwYDVQQLDARQSUJBMQswCQYDVQQGEwJJ
+TDEQMA4GA1UEAwwHRVBQQ1NDQTEhMB8GCSqGSIb3DQEJARYSY3J5cHRvQHBpYmEu
+Z292LmlsMQswCQYDVQQFEwI1MzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC
+ggIBAMATQrfyJeUAushXDigrDKU7GFL4YGrKS89wkdpFRF1AEDK2Ywhkc8hEPWxs
+13LFSOjDQjyqdESKMjHoDJGVYuojrhYZq9O2gTm32vjI9JUbXrEb1MkFaMJnmYF2
+5j2vlGAqXev4EHOptQOAYllXxI7gk6rYvLQSOh9CX69of7jXfPsvZoDfRvDuxvQf
++QSDvW8mxYULDEGSsPcnGN8AxvKxOjE7TnSTMLokIclxec82QLOuSbYcIjarB3E4
+PjvQz9lDmtlKq/fr+HfZrXWWzeNH4INWI+1plZLTKqWvXnLJuh4HApVkBHGqdpCw
+mZ7vgLR+zhKdL7PZrg7aDXyXoZv4s52ev7JIDpb57GUwTVOGoPDeK1ldy9juCufW
+sWuL1ee+yIS3626tgQVuBLTTCO4KsvXDOTSJIJAaZK+TMeiIZCruZ14Ny700y6Il
+9SbPDg6uHySUd9IpdVflzUG58wtKvjNWb0eNpK3h0OU5NP/uSP0akxPu5l9fZ7dw
+LTtyOi383d9b/og7HWu2El2qNnhXyhZM2Eq+zqYKgiLoz0F1Hx6zYHBI2MoVxC85
+If/pv65hgO8gv2vZyXd7MLewrfBrVgCkM7fZEaf7/2KEPAmc8rX6ZYPl2KDH19li
+XmO7foWug6FMZ7ghLCo10XLj7usuvFf75wR0/Mm7ZvS1aafxAgMBAAGjYzBhMB0G
+A1UdDgQWBBRYqR2f2g15333MxcVtoX4FDnLRqDAfBgNVHSMEGDAWgBTUvkwO9nS2
+Aeg/czlkhRaB0G4PmzAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAN
+BgkqhkiG9w0BAQsFAAOCAgEAGepif/leSKgoi2FiSMg8PzPGLYOVdS/viahx42Kl
+W8HLOZ4NqlYnnlbLgx0XxDbkuV3cGFK1Qvm+/02mlmLOc5h4igl5doer931DaTtt
+y4WdmfRP96t/389msSumLSNFgkhU/+cZMPsct2ISIW2VfNbSftVM41q9tvOQtLyM
+CGS+CTS4V2ck1Fh/v673QS5cmW35miqIyCYXB0aaC6pmscOfvYHSGAfbtX6uV6We
+t6rBuRs91dN4baxamp/y25xsB5PwV7PxlM4y/QrKcTLuE354hy90pFsySVTmsp0U
+j1HQ5zDwd1Fr7QgmN4eAXZUDFOadFFO9LqrWwWJxiw+4ArVjSuckRG9G5zCsh5MK
+FBONQ90xyfL1c2YJLaHJhhXuQniRjCk50yIsmULcoxJxMjWxYqCe+HQmkfFp/ukd
+90bgi9synSLV2DfK0JgtSqMn7jeo8Xq0NKcT3pdeeZqJIMQmnGyIvxoKOE8W+bPv
+13sRWugJ/SO6V4BULqfkzPxEOVF1pPFSFd4fVM5qMq94RWu01R08TRVr0/PKisbJ
+riRm/nCzvxfn2WrplJiQ9kjVF/3IanD7rjuDqj9X1mh3MTEjOWJ+ivP9uW8MTcBa
+wrG1+Sufou7UK4fQ0a3gzG4XzqV9pQzN3lKWXKXm7vyAbmk18GXuuXqDXVDiU3F0
+D3Q=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIF2zCCBUCgAwIBAgIQUG8TV6OhlsJNwyz0ZBQMrjAKBggqhkjOPQQDBDBrMQsw
+CQYDVQQGEwJWTjE7MDkGA1UECgwyVmlldG5hbSBHb3Zlcm5tZW50IEluZm9ybWF0
+aW9uIFNlY3VyaXR5IENvbW1pc3Npb24xHzAdBgNVBAMMFkNTQ0EgZVBhc3Nwb3J0
+IFZpZXRuYW0wHhcNMjIwNjI5MDEzNzA3WhcNMzcxMDAxMDEzNzA2WjBrMQswCQYD
+VQQGEwJWTjE7MDkGA1UECgwyVmlldG5hbSBHb3Zlcm5tZW50IEluZm9ybWF0aW9u
+IFNlY3VyaXR5IENvbW1pc3Npb24xHzAdBgNVBAMMFkNTQ0EgZVBhc3Nwb3J0IFZp
+ZXRuYW0wggI4MIIBrwYHKoZIzj0CATCCAaICAQEwTAYHKoZIzj0BAQJBAKrdnbjb
+6cSLP9TmrjPJ/AfLMI2zs8nSDtZjnMpwMwhxfU2bAJvGaEKuzaEq5qOA5iiB/y8t
+gsaFKKpgVlg6SPMwgYQEQHgwozGLYDuJ4jJxRawjTMWUy92NPfkWEKg0QcrqmGO8
+Le1dWqglOqEKLvHJi5rItX8RF6cr8se558GsTXf8lMoEQD35FhCoNEHK6phjvC3t
+XVqoJTqhCi7xyYuayLV/ERenK/LHuefBrE13/JTK3Ag+Z5hAULdeuuXdKAm9Y4AW
+9yMEgYEEga7kvdgu2WRaITIunExqk4Xtn3C12RbBtDti7vTQCY7/Ox944tDUjVDR
+aHuTuX1ffG1QR0BqXmiLNSIJvLn4In3eOF1WYzLswOq/qc94Iv3yCfcAJKV7GqAA
+xVuIH4ERstzeSUpfSF5bykvYiidjrtHKKy+o8FQGeM0eDzrYCJICQQCq3Z242+nE
+iz/U5q4zyfwHyzCNs7PJ0g7WY5zKcDMIcFU+XEFMqSYZQYZhGX+sEEcdsdOBCF3a
+3bWHloKcqQBpAgEBA4GCAAQAl4aEPSe++eBVlHQuI020u8pj7a3mPcFYtJu4m8Xh
+9y7GaqWRi9ZEiy3BnaK8OMmaB03KobMwVj95x9Brt8lZWVzA8t7xQcPXDIV0YVfZ
+pVrS/i0sm3CYLzPaN6TZWoWxcla2u6343UXB5ELMew3TNPSEqVhVTCdNykCh8/aI
+CqOCAeMwggHfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHwYDVR0jBBgwFoAUiJGPWiXs
+43o+BMUtOKTytRI8hccwWgYDVR0SBFMwUYEWY3NjYS12aWV0bmFtQGNhLmdvdi52
+bqQQMA4xDDAKBgNVBAcMA1ZOTYYlaHR0cHM6Ly9ucGtkLnh1YXRuaGFwY2FuaC5n
+b3Yudm4vY3NjYTBaBgNVHREEUzBRgRZjc2NhLXZpZXRuYW1AY2EuZ292LnZupBAw
+DjEMMAoGA1UEBwwDVk5NhiVodHRwczovL25wa2QueHVhdG5oYXBjYW5oLmdvdi52
+bi9jc2NhMIGTBgNVHR8EgYswgYgwMKAuoCyGKmh0dHBzOi8vcGtkZG93bmxvYWQx
+LmljYW8uaW50L0NSTHMvVk5NLmNybDAwoC6gLIYqaHR0cHM6Ly9wa2Rkb3dubG9h
+ZDIuaWNhby5pbnQvQ1JMcy9WTk0uY3JsMCKgIKAehhxodHRwOi8vY2EuZ292LnZu
+L2NybC9WTk0uY3JsMB0GA1UdDgQWBBSIkY9aJezjej4ExS04pPK1EjyFxzArBgNV
+HRAEJDAigA8yMDIyMDYyOTAxMzcwN1qBDzIwMjcwNzAxMDEzNzA3WjAOBgNVHQ8B
+Af8EBAMCAQYwCgYIKoZIzj0EAwQDgYgAMIGEAkAOU4daZxaYS8/F224HoCRPht1p
+1ioEu7rM/CnnY8hk2YmWuZm8A+6DlE5eNBinfHIycXRnyAraFYZo0fn+nBStAkBB
+Rq+HV+PQ6ZY6YWGB7fejuJUEfhpDMk2uuxpn1gRaU4vngyRWBFZDrfojJ4lxxS6T
+QiXSpPERYJO20eimEf+o
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIF3jCCA8agAwIBAgIIR0zGx8rxAwYwDQYJKoZIhvcNAQELBQAwezELMAkGA1UE
+BhMCQ04xGzAZBgNVBAoTEkNoaW5lc2UgR292ZXJubWVudDEkMCIGA1UECxMbTWlu
+aXN0cnkgb2YgUHVibGljIFNlY3VyaXR5MREwDwYDVQQLEwhQYXNzcG9ydDEWMBQG
+A1UEAxMNUGFzc3BvcnQgQ1NDQTAeFw0xMTEwMTcwNzA4NDZaFw0yNTA0MTcwNzA4
+NDZaMHsxCzAJBgNVBAYTAkNOMRswGQYDVQQKExJDaGluZXNlIEdvdmVybm1lbnQx
+JDAiBgNVBAsTG01pbmlzdHJ5IG9mIFB1YmxpYyBTZWN1cml0eTERMA8GA1UECxMI
+UGFzc3BvcnQxFjAUBgNVBAMTDVBhc3Nwb3J0IENTQ0EwggIiMA0GCSqGSIb3DQEB
+AQUAA4ICDwAwggIKAoICAQC/arWi1WEcEwj74AN3BIzMVtdjRavjydpDvLsxnX3H
+rIHXEJ5G5ggp/fl5e/+jlqnT2L6lzMVebTMjpdKFv7miyh4vAqbOXSUevkpbIL0B
+D/UrQvpXQzwP3ABUwFAHQ90DXOrvlRzb+n8+r6jvRrD69IOnY+3bdwI8sJP/hvQw
+SV0y73n6Ylx5bHgwSf2K7mSBIlCE1NZvWeN7KaO/McM3a1p9nZpLPTAIaKN1T1V6
+GblwM2msDKEzQGvCqirH56Qq8HWt12Xg/QGW/6N0KLj0V+EuIoLygR+uwwD55jXW
+GpYDo8mPPg0RlUHv6ZNDtmhNtsYRqYN64hpsuVmtD/iZiSLbFH2wib5TAUGNqfmW
+GY12kHpHZujl9SMoO6ZTL1SMtb8qPL/dXWXLINMtaH8M8w4xLdvQdRb6wNi8Lmtg
+W2gbjSv7zTjKrxlvIOrZN1BdzzN/Vm/Ma1Eokozl8iXN82Jy25NbQJ77AGCMkyug
+bSku3RR8xseHRPBuH2DIz2vsCQRASbAwAAJNbGEaECMOzN+OsWYLtpeLCmy1tiJn
+wioyU8Pjct0G+4pBf/kjuVmttfEV18ocqN84BBOLhtbMGS3o40IqEErz1HAimeBN
+8JjSQlqmDW7ggyWpz01mlzfvjUSus5f2X2v2/cCOjE8PGnbLitKcQZEIF4mQeXa1
+EQIDAQABo2YwZDAfBgNVHSMEGDAWgBStPqxIlv6twK+0qM21+5dgI1K1GzASBgNV
+HRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUrT6sSJb+
+rcCvtKjNtfuXYCNStRswDQYJKoZIhvcNAQELBQADggIBAFeUGI8b982R9U78wNc9
+kIEw/ZZ75SJYyPZYcLssQlKYTsxrRTX+QsS+nFGiiVzAOnY8XqhScAEB/3xEFn+3
+7LQzKdDcc6PtKpk6AuIAlkjAQIOH40+1+gV/kk3Z6ET1pdHnpO8yqh/XBBBezhkj
+tcYxzz9xLOVZWUuu+9Mu2xCk1TmZMe2zsFFbBvWza10wN6rqOoiFozapR2LhE5Ar
+hz9lt37pU7o2+dJn+l2dC39RvTYzK7/iaW4ajH68Jpq9c5yEpFaGBOOe7pSqS42v
+sbaR/X9PzMmES9iGQAm103kKaQL425KYItaPmESoYZfXywD+Ss7s0lOh3OQAXRz3
+3ZuM9rJr3Bsun5JPQsU+2BBC0HQMWJCh8F1t6/6oy+eJ3gWtuuyu5/1PnfbN/qM2
+9As17PQySkJNJ2IGwHs6gHi7uGOsHLhPf69P+ihhU2wx76ojnYmJ5XSmYptJLcf0
+0RI1UITdkGyPIzWFm2c2C5jkm35cFc1QlPcwFHCwByChTWOSgaaRFxDAiaLsU6hi
+tU1t6UqhilBp1Hpdmd2hi0IGuGnWMm6GfDhHaWhGwYak01neqqJJSYEv+aE03Ply
+Q1RAp4bF1nMaZkvTMEUl6+jhz0sMhtROKKYOwZilajfqSQ/l+uDnDU76RhGRDJoO
+2ePbTXf1PO3wgLdldm5zLClJ
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIF8jCCA9qgAwIBAgIIITFWxVuhzrIwDQYJKoZIhvcNAQELBQAwODEUMBIGA1UE
+AwwLQ1NDQSBUdXJrZXkxEzARBgNVBAoMClR1cmtleSBHb3YxCzAJBgNVBAYTAlRS
+MB4XDTE4MDIyMDEyNDE1OVoXDTI5MDczMTE1NTIwN1owgaIxCzAJBgNVBAYTAlRS
+MTAwLgYDVQQKDCdSZXB1YmxpYyBvZiBUdXJrZXkgTWluaXN0cnkgb2YgSW50ZXJp
+b3IxQjBABgNVBAsMOUdlbmVyYWwgRGlyZWN0b3JhdGUgb2YgQ2l2aWwgUmVnaXN0
+cmF0aW9uIGFuZCBOYXRpb25hbGl0eTEdMBsGA1UEAwwUUGFzc3BvcnQgQ1NDQSBU
+dXJrZXkwgZswEAYHKoZIzj0CAQYFK4EEACMDgYYABAHtf31NQHzcrT9W9LTBnBuq
+9ZGrm2cBsnmZO6wiJuATubfDxzFvUpjS139IGW9BT2E0Jg9coLyvTQPHDEjGU8Vj
+zgEWQuCqb3rDmt4n9cPuU9JZW2sRI+/B4Ymmnw6rOpItxy4P51ZfJy34T/LCK/QC
+UMm3zG+gP8ZtU66ObHQkGIZi2aOCAhswggIXMBIGA1UdEwEB/wQIMAYBAf8CAQAw
+DgYDVR0PAQH/BAQDAgEGMFMGA1UdEQRMMEqBFnBhc2Fwb3J0QGthbXVzbS5nb3Yu
+dHKCHmh0dHBzOi8vcGFzYXBvcnQua2FtdXNtLmdvdi50cqQQMA4xDDAKBgNVBAcM
+A1RVUjBTBgNVHRIETDBKgRZwYXNhcG9ydEBrYW11c20uZ292LnRygh5odHRwczov
+L3Bhc2Fwb3J0LmthbXVzbS5nb3YudHKkEDAOMQwwCgYDVQQHDANUVVIwQgYDVR0f
+BDswOTA3oDWgM4YxaHR0cHM6Ly9wYXNhcG9ydC5rYW11c20uZ292LnRyL0NTQ0Ev
+Q1NDQVRSX1YxLmNybDCBhgYDVR0gBH8wfTB7BgtghhgBAgEBBQcGATBsMDIGCCsG
+AQUFBwIBFiZodHRwczovL3Bhc2Fwb3J0LmthbXVzbS5nb3YudHIvQ1NDQS9DUDA2
+BggrBgEFBQcCAjAqDChWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgY2VydGlmaWNhdGUg
+cG9saWN5MB0GA1UdDgQWBBSHsBmAfaLMtph7B3MWVgOx9c6y/jArBgNVHRAEJDAi
+gA8yMDE4MDIxNDA4MjY0OVqBDzIwMjEwMjEzMDgyNjQ5WjANBgdngQgBAQYBBAIF
+ADAfBgNVHSMEGDAWgBRkOJ0VTrqAAAkYV4R/bzI46mIbxDANBgkqhkiG9w0BAQsF
+AAOCAgEAm3S+gpU0+hkaqBOut/T0E7ia3ie/wzMaRmE6X4Z6o9qmbMXxDUevqFvF
+28c/vh7TyfnYk+K8aO8QtcbEUALxi1g5SGs+njrPi2Zsk5MYpWLCWV4Rnk/niik3
+u33zGZXL+SdTxnb0vg8O26qJj4x5JncMFCWhbud3O0G0emTfr3fgIQq+trubgxm+
+gpgjm+dy6KrROyWiol8thI1v3SWVtKkIiHT/BrDWaghAO+iy9dtEJep4yZ7Ojonf
+tFb6ifPrGcmlURfEUaaP4+HUHcIFR/Vk3/5KGYiTkpbY/LWxrtlRIOU0ztTq/CXU
+fVGvaSSZu+qTthC+g63fuM4qfJBqPgVHjEFP43mlJEELQo2V64/d9r64JpPqFOJD
+N9k0FumOaE7pnQ9LZy0cNrSoBQt08Rxce4quJm1FvcFnIqOlUwF6KH9ulC5hqyup
++61P5ERkQk/p7XMOSEX8gAKo4B7WciSzX+pa0RdOA89SLqSoJR1MsGXodbCk+E1J
+QQqp9e2CDG20iXj1i8r4mRcJwiR3A3cwnIjjrhkKGn8vJtsjg0lbCj37aUx9Uwux
+MdQKxvyuzsmcMo8hjYIRzd/pZ3ERFUGckuD7J0n2NW2YBdFoiRGmuqjelGJ1ApEU
+iLjysuWJ0fqbcw653tdiK/399L5EH03EQCHGbN3Tsyy/lLYJIOw=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIF9DCCA9ygAwIBAgIIBBnMnkRoJIwwDQYJKoZIhvcNAQEFBQAwgYUxIjAgBgNV
+BAMMGUl0YWxpYW4gQ291bnRyeSBTaWduZXIgQ0ExMzAxBgNVBAsMKk5hdGlvbmFs
+IEVsZWN0cm9uaWMgQ2VudGVyIG9mIFN0YXRlIFBvbGljZTEdMBsGA1UECgwUTWlu
+aXN0cnkgb2YgSW50ZXJpb3IxCzAJBgNVBAYTAklUMB4XDTE2MDkwNjA5NDMzMVoX
+DTMxMTIwMjA5NDMzMVowgYUxIjAgBgNVBAMMGUl0YWxpYW4gQ291bnRyeSBTaWdu
+ZXIgQ0ExMzAxBgNVBAsMKk5hdGlvbmFsIEVsZWN0cm9uaWMgQ2VudGVyIG9mIFN0
+YXRlIFBvbGljZTEdMBsGA1UECgwUTWluaXN0cnkgb2YgSW50ZXJpb3IxCzAJBgNV
+BAYTAklUMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAtfZw01ist+eN
+/R1yrKEmpJaeGWa/cXQLW+ZyAWOFQHiDFhDzGuMEx8Fz4Rxx90AZv9H6J6rD9r3c
+iadSBA2tm0qBzsGz57jaruTw2ZbatFjZhDzsuFGviXsYRLkmioPfwJDB4X/hLsSk
+3X1d70ZPb+wphM86wldXRe6rXBrIud8O+5acUOgeO7haHARuQWsZ30vkFcaRghra
+2TvAQpQX0mzjmq86D5aVCLauGA/sX1K48bIEA6SdhpEAFwRxNrNhIUNZstqsom1I
+AUeqvLTjtBIVRS8JAz1u8CdVVn7mMgndPVVFvKUi8vrDcQliWVYx1CxcFaDO4mxl
+zsIxPoSBR5gD3ooUNcgtXFB1sO5p1URYqaQxgXkKHR4PEKa3SGWqO7xpkCHG7x5b
+FSNoBY/PTeqfEKVN2viDBvOvksHUuqFfOtB0Th1/AsjXnrL061COYfkv5YaUjtOg
+OOSGGdZCDUdYbNRrtHR9A2p0BaCQ/HOkTEF+Tzu0H9wM+IumVfAB/cQQTGf5Iuet
+BwWZZ6jjkOso06XzSmsVvbmRoppi844rwkDwrF49L8KuElRi+ZSj+16mrf2CDvbG
+At/aOJ6Khxx4/NcatXgn9zOw3TcM0IW+OiO+IqTTkdu+R3Ua+H4aj6aUx+FLxiFZ
+l1wVgZW2tBMlpIXNsaQGYA32cziSD4UCAwEAAaNmMGQwHQYDVR0OBBYEFENs45Id
+EJIjB+/XovV37XUkRn8bMBIGA1UdEwEB/wQIMAYBAf8CAQAwHwYDVR0jBBgwFoAU
+hS33pwpRLYMQPfvJ9ijLaxzuVZEwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEB
+BQUAA4ICAQDAggOUJgGkSl2VEqXsZp6YCkNAMlpUqTJdtkU9nsptly0oY+avVR9W
+h+QVX+bIZZyaMOEqtP+cIZfXz73t019pndZ6sVITRDKgEiNKgj+P7cp9z+5qM8pv
+E2JYX+yCclh/Lx0Gz5Ipz5dlC1iFimMWKkl8/q3+o4rnJOehVe4cSLtahY0Nfd33
+fW3FzJYED+6l0EuqUuWVhXpF8DCJytsB7jN2MnInIJ2E7mWEL1IuT70MbYkQSZMh
+ZKH3szdgorajVsdTgPzf1yn65h36ZY6I0ZOa/LyGIURzAiQw7WWYHoN6D90V6wJ+
+uk2u1zdLrgrfV7LDBp++1uMAorIFP5jJHVBU3hCCCaHVHJHxQKDCjryo6eNmGFaH
++a1YqVIZQ0bPAtMLgazvp4YSGlavzgQh5S6rNhTtJO3PnxS4Oc+ojLvtyEHvrPe5
+MVF7FDyem3WvVZpRWG4ne6ye0+Qqai1dQ7LqeVKgpUEsRbnGLXCSouDLl7aq/pnb
++rxdVXfVoHt2Kjv3L5coCaexYukmekpNc9rBUBa74yYLn+BxAhJ/ZdHWzjfcafbZ
+l5KRfnet7UXF4b7UDXAmPBNRCsZlMZvMylrA/PNGRucLYckARCSbBzOsaW+S6tVT
+S0qktD3NroxHdez/wh7wF6DIdNKfGRkYo0xzUlqsayWgLPitwVA2qw==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGCDCCA/CgAwIBAgINALalcVtzR/5aqPjmCjANBgkqhkiG9w0BAQsFADBFMQsw
+CQYDVQQGEwJIVTEMMAoGA1UECgwDR09WMQwwCgYDVQQLDANDUk8xGjAYBgNVBAMM
+EUNTQ0EtSFVOR0FSWSAyMDIwMB4XDTIwMTAyMDA5MTUwM1oXDTMzMDYyNDEwMzAw
+MFowUTEVMBMGA1UEAwwMQ1NDQSBIVU5HQVJZMR0wGwYDVQQLDBRNaW5pc3RyeSBv
+ZiBJbnRlcmlvcjEMMAoGA1UECgwDR09WMQswCQYDVQQGEwJIVTCCAbUwggFNBgcq
+hkjOPQIBMIIBQAIBATA8BgcqhkjOPQEBAjEA////////////////////////////
+//////////////7/////AAAAAAAAAAD/////MGQEMP//////////////////////
+///////////////////+/////wAAAAAAAAAA/////AQwszEvp+I+5+SYjgVr4/gt
+GRgdnG7+gUESAxQIj1ATh1rGVjmNii7RnSqFyO3T7CrvBGEEqofKIr6LBTeOscce
+8yCtdG4dO2KLp5uYWfdB4IJUKjhVAvJdv1UpbDpUXjhydgq3NhfeSpYmLG9dnpi/
+kpLcKfj0Hb0omhR86doxE7XwuMAKYLHOHX6BnXpDHXyQ6g5fAjEA////////////
+////////////////////x2NNgfQ3Ld9YGg2ySLCneuzsGWrMxSlzAgEBA2IABIrU
+a9r93fYmI9mhjcofFPq45Zhgv/eRTOk3wMtvUgbPIrg6QVH9b33hgC8zVQqwyudf
+oXlrAmWwI+fAQVndnKXF2Ef2HaUyTA+3kJkUkjdjMr4YsilHMslichUCcIIly6OC
+AVYwggFSMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgEGMB0GA1Ud
+DgQWBBTldkNgouiIHq9OrU8BuHm8RmsuxjAfBgNVHSMEGDAWgBSJ9VaIZu8RFHgl
+dmCDEEH4g1Qx4jArBgNVHRAEJDAigA8yMDIwMTAyMDA5MTUwM1qBDzIwMjMxMDIw
+MDkxNTAzWjANBgdngQgBAQYBBAIFADAzBgNVHREELDAqgRZjc2NhLWh1bmdhcnlA
+Ym0uZ292Lmh1pBAwDjEMMAoGA1UEBwwDSFVOMDMGA1UdEgQsMCqBFmNzY2EtaHVu
+Z2FyeUBibS5nb3YuaHWkEDAOMQwwCgYDVQQHDANIVU4wRgYDVR0fBD8wPTA7oDmg
+N4Y1aHR0cDovL255aWx2YW50YXJ0by5odS9sZXRvbHRlcy9DU0NBL0NTQ0EtSFVO
+R0FSWS5jcmwwDQYJKoZIhvcNAQELBQADggIBADgEj+lCxgfdyzVfJu+YowNph08C
+67YFQ/HtfXHpRC3s4WJNc/uLVc8SRZuLbLhT1KLrMpEQHgi0CjmkwtIyPtHUB+j4
+xl+aLW2mSk+1Nzyvu0sL6PSZeeIlSMYWXugKavIL9QY9/SVlIS1ScfVWFClb4jep
+LDonc4XukRmYX7CgP5toqUF9zF23UnkXAIlxOirAR9aVmBfCQUTOum0N0zc5IsUo
+Zy5J75cSzjBna1TVZmU/bl9/QDE+ZUEl45W/o7zbZWcUFmyaSja8YpVVuR5fqza4
+RH0Wnv8b1NHYl9h9V2w2MURE9/NCHqDRSMzLkl/9VdfUsUDAecnjVOR8L9m9/4Ja
+ukyl/SETOeFanZf//wcvrhU3XgB0OvE/pVrm0eoSdUlDudIxUbRvBT+u80WwtKV6
+bm1N9xD0gXacODfIqihN0LZCH0jJ7lBgWF1CdfXG1COelK2D+51E0FqNlTIx75c6
+LigmInznm/Si3uVn0qI9Mcai7bAme22IuQvxZbCuBW3x2neBEOWpyYg1hQQMuLJW
+fujiNTr4alN3rMCxxIAodX8x6oDLILGHwTe0vgi/J08kmVRuNj6sPqVYyFKmhPPQ
+tsEjcaj1MtL2ZHmuQ42fJrfEEk4tNjsgQhuvEJ4NuES/YLmpnIP6uvGU3i/S/wCQ
+Qk4/Xnt0pOLyoR7T
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGDDCCA/SgAwIBAgICTiAwDQYJKoZIhvcNAQELBQAwgZsxCzAJBgNVBAYTAlNL
+MRMwEQYDVQQHDApCcmF0aXNsYXZhMSMwIQYDVQQKDBpOU0Egb2YgdGhlIFNsb3Zh
+ayBSZXB1YmxpYzEkMCIGA1UECwwbRGVwYXJ0bWVudCBvZiBDQXMgT3BlcmF0aW9u
+MSAwHgYDVQQDDBdUaGUgU2xvdmFrIGVUUCBlSUQgQ1NDQTEKMAgGA1UEBRMBMzAe
+Fw0yMDA1MTIwNzAzMzdaFw00MDA4MTMwNjQ0MjBaMIGbMQswCQYDVQQGEwJTSzET
+MBEGA1UEBwwKQnJhdGlzbGF2YTEjMCEGA1UECgwaTlNBIG9mIHRoZSBTbG92YWsg
+UmVwdWJsaWMxJDAiBgNVBAsMG0RlcGFydG1lbnQgb2YgQ0FzIE9wZXJhdGlvbjEg
+MB4GA1UEAwwXVGhlIFNsb3ZhayBlVFAgZUlEIENTQ0ExCjAIBgNVBAUTATMwggIi
+MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCvdNRjOJt39wV0JVc+/HhhyT87
+wWI6bk12cm45MgyigruQfOPhXRuNhQDcZVV0BZyskiqDjLRmBTnw3BTowLa7HLb5
+ZcvWWdCuIfzzHAtmSKv8WDUsD+XcnYT15pwn2pd3dEoZWLhLJzvmj+55+Oy3sV2T
+ijQsHXrzFZjaI39t3XXupk2bWKKxprXgccDPpn9/Tu234E0hoUi97BcEXDC3W/33
+5Tt9EqS48usTEd2lMxDE1Wd2EwmAMLHzZUI4L2dihExP/cj1/P1Sdk2Uu38nQall
+8RpXrw4HM+l9w1dICzCD55LYQVYS+54PhrKFcNjqe/oqMKTTCBIDSu8q+R7xQO9e
+Gse3sHCASWi5Z07J5LMf2vhriNLHG46Myvwd3ILcGlks/yUOWVekZRPuqED420oi
+do8xZOPagIv1WlycknYOf9mZY0keJU27EQTuB/+D+VzOY2xQiUOcsZPYOd2hsmcD
+4SI3nqLNF1UDD5wmH7jivZ1Ct/kKuotWUibnI/JHNx/SLU/jjwNfWJh2LK4Q1ypJ
+jtEREWLtgpljR0c8lo8xH37B3M2VeqFm2e1EP+NiEAdR2VWbWX3Ik7LiZXF1ZjCt
+iLwOnVuq9xUyAH0H6kjArcNPkr3gLwRHVe40XxyCJrvKV20wlv5pVtyDQ5uRTmVC
+7MOOUn9Ai7eCZ0fdvwIDAQABo1gwVjASBgNVHRMBAf8ECDAGAQH/AgEAMBEGA1Ud
+IAQKMAgwBgYEVR0gADAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFBTHC3Xf+R0i
+DRDFmp5kR6IGjLX7MA0GCSqGSIb3DQEBCwUAA4ICAQApP0YMVIbPwwKgVjolWCMl
+PtSJewyEPtUrd1uGeSGOW9rEXYRSXdMO+31y0ZG9r7AKQpivkbOaaYWUPDFmuQQQ
+tbRO8njPrN/PRoxN4yM5sFEtggpNdXoLQ4bqD1dlV5EOxED0mez3G0famDeNxQXu
+qzGzhhJ/hTjrSvEP+IUdYqW/7TZb3o1fJMiCTkY80QpE0eLUToA85MGe7sGejcew
+MPMsLMbg1kY+qYVWr/d9SyQuUQsia5tUgpDVRT9CkjMgDcG9WGHryh74xaS7/80R
+ozurlpPwJ7Wy9wTXK4R8RQaIpd4JP/zmL5m/nCmn/yAUGGLTvsolxv8cBr68OojV
+zpmR1ztjPrG2myWmVcItWAy+wAx/zSdDkPU5IdbHy5Ae43QXBZnstBZ9Vc5PYoit
+ZTO4xU4Vc8ICY6GcgjVxfhGA97z0Z06xiSzffq2OiU9xzBTPHhPmWE4H9M+JizIP
+AzlYJd3DPhZPUf+PISVcub6jaLCTMR8C6xEfV16UgX3CriD9eLVXma5l/yHOk2x/
+NXh8gP2eLgKtYI6s1Z2cKAZl3eKcfEosbhC3yZm+ZvEeScLFU/MLNG2BcWjpUTK2
+UgLgjrwM6oCKfHt4JEhHb8LHpv1cPIvp8LG6ZMBzJENsvTrfbx/BX6oYDN/g15hG
+sPA7lazR7AKcQXRqFxRH5Q==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGDDCCBECgAwIBAgICAS0wQQYJKoZIhvcNAQEKMDSgDzANBglghkgBZQMEAgEF
+AKEcMBoGCSqGSIb3DQEBCDANBglghkgBZQMEAgEFAKIDAgEgMEMxCzAJBgNVBAYT
+AktSMRMwEQYDVQQKDApHb3Zlcm5tZW50MQ0wCwYDVQQLDARNT0ZBMRAwDgYDVQQD
+DAdDU0NBMDAzMB4XDTIwMDMxOTAyMTcyOVoXDTI1MDMxOTE0NTk1OVowRjELMAkG
+A1UEBhMCS1IxEzARBgNVBAoMCkdvdmVybm1lbnQxDTALBgNVBAsMBE1PRkExEzAR
+BgNVBAMMCkNTQ0EtS09SRUEwggGgMA0GCSqGSIb3DQEBAQUAA4IBjQAwggGIAoIB
+gQC8yoTBKqq9wjcRk1N9vm3Z2egeyrzTIFRIffap7x3NoCH8quoCjs4P8TWnD5e0
+nygNtJf4/1TiGXfwJAFLBJ3uDh3/EwLd/MLsnel7acMgLi6JKFyMiHTwP1YvFAFa
+BlKmt6ylhJNUWSFB3GEp51N9rbCRFkvx8/sRmYB6CNgLkXuDabDHpDXMzKuJS71M
+elOUQ1AOKm+D8BfDZFBuPCiuXbB9rMaDoe7qbq19WRhF6ZNViSFuff7mmA/+md9T
+T1TcexdnPXND1E/QuUPQ3nTkdi2g+Md6vLN9vjKO+MDkLcaO+H0b5N+/dgH+z1pj
+mFtlZvXR3h9loUPMQ4punlY+Wsl8CYdrwWCLm327YTs/aH9Sp5u9OkQjYskWQQ+X
+Z0m9EpvkbbY4a681fxtInaIfUeYAqTsKTM6s7CWAzLXR4T+Z11O2YjeZKgVDfcZS
+4R+ZtB3QoA7/WepN/ACdcgRvpxKmnQ+VH5BtVGb6x4UlywEl0RSFoPc17wNWlY7Z
+Z4sCAQOjggGfMIIBmzBsBgNVHSMEZTBjgBTzfxicV1tiawQYNfX6wkaOjGh6F6FH
+pEUwQzELMAkGA1UEBhMCS1IxEzARBgNVBAoMCkdvdmVybm1lbnQxDTALBgNVBAsM
+BE1PRkExEDAOBgNVBAMMB0NTQ0EwMDOCAgEBMB0GA1UdDgQWBBRMMk8c+mUfBztx
+q8rMXF5/6KRksDAOBgNVHQ8BAf8EBAMCAQYwKwYDVR0QBCQwIoAPMjAyMDAzMTkx
+MTE3MDBagQ8yMDI1MDMxOTIzNTkwMFowEgYDVR0TAQH/BAgwBgEB/wIBADAyBgNV
+HREEKzApgRVwa2RvZmtvcmVhQG1vZmEuZ28ua3KkEDAOMQwwCgYDVQQHDANLT1Iw
+MgYDVR0SBCswKYEVcGtkb2Zrb3JlYUBtb2ZhLmdvLmtypBAwDjEMMAoGA1UEBwwD
+S09SMEQGA1UdHwQ9MDswOaA3oDWGM2h0dHA6Ly9wa2kucGFzc3BvcnQuZ28ua3Iv
+dXJsL2NzY2Eta29yZWEtNGMzMjRmLmNybDANBgdngQgBAQYBBAIFADBBBgkqhkiG
+9w0BAQowNKAPMA0GCWCGSAFlAwQCAQUAoRwwGgYJKoZIhvcNAQEIMA0GCWCGSAFl
+AwQCAQUAogMCASADggGBAKYgGSJz/Fqkc5pTJSNPD9Ie9NQO0DrkFngrYR+V2fH6
+OIJ1EANc7xOx9o8P529EcndxFDwta8qEw6ZrSHXw4pUUsVg/+uNbkYqqstILDT1O
+yBINHcbWgdr/pTjKfH586yfANvHl1oEZbsvUezik76L01/SZCjwaKyO0qXYWrAI+
+GQ91FLS4KsmhuDk8wZJIeL8qfhVYzn6NsFdBaEEImtCpXLtI2ESyVQS4FRY0h3kx
+tNiQiTEhHUA54Oys8lB5UoiG/JfARaiytu5/kgteEZrQfIPH/MJFHyL7CCxQ5cxB
+w8ayYQk+z7By4zQH++n0HfgznLGjvZRkcFkd5GQcL/J3t27oF17+2Y0D0tSyAG5H
+oJbutoBc/lD8AhDVfq1q9Ihvjrbj2D1tBz+1+qc4XCstlqv/R/Wc9FDhQkY7xCxj
+tcHKjtp1JcEzesMq71bbmkd+F5AsX2KxLBpRm8/a4q7cZTMB4c1LZDIipIMhWP/B
+Njpan4BKNnl7EeZlvdWh4g==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGFjCCA/6gAwIBAgIIfIlDmF4vR+MwDQYJKoZIhvcNAQELBQAwgaExCzAJBgNV
+BAYTAkNOMRswGQYDVQQKExJDaGluZXNlIEdvdmVybm1lbnQxJDAiBgNVBAsTG01p
+bmlzdHJ5IG9mIEZvcmVpZ24gQWZmYWlyczEaMBgGA1UECxMRQ2hpbmEgUGFzc3Bv
+cnQgQ0ExMzAxBgNVBAMTKkNoaW5hIFBhc3Nwb3J0IENvdW50cnkgU2lnbmluZyBD
+ZXJ0aWZpY2F0ZTAeFw0yMTA5MjMwNzEwNDBaFw0zMjA3MDMwNDE2MThaMIGhMQsw
+CQYDVQQGEwJDTjEbMBkGA1UEChMSQ2hpbmVzZSBHb3Zlcm5tZW50MSQwIgYDVQQL
+ExtNaW5pc3RyeSBvZiBGb3JlaWduIEFmZmFpcnMxGjAYBgNVBAsTEUNoaW5hIFBh
+c3Nwb3J0IENBMTMwMQYDVQQDEypDaGluYSBQYXNzcG9ydCBDb3VudHJ5IFNpZ25p
+bmcgQ2VydGlmaWNhdGUwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDF
+YBFcGGMu+kGmoSI3pB3jNWV7nuiNqf4yOlO04qF8MsOwrI0yBasL5Lmm6DT7lAV+
+RCE08S2Pxif9QYQ87gZxM6BjNqHs7FjGz0QBhpNX4ng9IWeyBAQy6k3tJPvpHX78
+TqwlHCOYmbLL1zQFUzItKatPgyEoWITLdWkzNjFwAZhUoYxtjDWAezPbVaDzNw4e
+mN9rv9L3vucj3kQdIbRyzdic6jcY/SEdYBjwRz81xdxbUYku3f5NPvaOyNtmLhUg
+m0RCrk7vJp30Sug+NSF6Odd5PvrK3KeHY7SCSDneTGm52V6o2iT15NAzojIrXsKS
+6MtNveThkwjzy/0taLqgnSVYTTISwbZHeV7iBZbXaF6ABhP/3cF5FFkOEm3jYQ0E
+GwybUZXBbSE9ovdjqUWz70ZUpmzMM1EhGUdsLsh5EAWG21AH3I8p7gl8MyeptS93
+l33TbbItc3jP3EdP5J5Q0n2jGK77WiAX8BE8iySXk9dd4iEUb5CXFnaYdCQ8D1G+
+gaN8XSxdjHnavbhKtP0Gh7pr/fUjFC03b8r1ovE1fY24g1BrImtsEOEOIFhXQ9a+
+LUnrg1Ijy2iHB6NyqowSO744DDs+4HbGLNTBoMaN4I+ZV5XPmpveZPwtBuEwoclR
+4STvE31HffD74gSt5+PW2gF1KLkP+982xRn18Ya54wIDAQABo1AwTjAfBgNVHSME
+GDAWgBSlh1KKTULEAzTIJ/SRpvSqaGL35zAdBgNVHQ4EFgQU+1b2ZmX0NS2gWNPA
+Xj7K/IEFkrYwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAgEALE7AFOr4
+vptKD+19EbROP8WsGpn6zl7VvrAbPInFBGEZwCZ524zZP0eEF2XUuzuDvPzDBGIC
+hVAdcCfDCTRto7GcK9ICctiMqTc4w2QcKvb2OKo1u+aVrRwN8oZkbgKTk5H8UIVm
+2QMmOaOoHP8TkweIw+G9ThUDo6fNspEjXEGqpxVbdM/NKvJ/zGsDIyIKQxaPeanZ
+22Kpz+FbUiOVh6hbI8UZ4dMDyET8NcwrwnZCbie7+qhkv+Q/x0+G5Nt7cE4UZ2xU
+UXDszARysFE+tujP2ki7UFuDpCXjvkEmM7ly3LlQ7gEDP031NSODFkQd/zOQjtC6
+isgh/5lJy51MJOW2XqfdNvYUk+1PxcsX3Mq2TrfV/rEWbAs6kBcXqyRcBN/xxTAk
+twDCh26jjADUnQj40MCINgwTXDkyt2ZL/0Wtg+Z0WZRImEpN2vMY2dTQup2KPeAP
+8oJ3oYV6+bSlDdCGAS3rvMqRWgwXMy8zh+3TmIlVBc0QPRv6L3Q4gWkK8cbw2z8/
+wt5dFHUTH5lFvmnsss9CnVzQ537ZBjcnkIK/gtBlrptPWDDaSTHhIPefK8iOsBai
+nTkAuJutNppAK7ZXigTtQ/Rg7MtKgg4vs8qMldRuBLEU/6bpSbVbPK72VZRL3K41
+Ru+GXFmiBhE/tLh51ec2YqYwOLgi27NfK4M=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGFjCCBP6gAwIBAgIQCufDsrZoKiTAMzqvwj2TyzANBgkqhkiG9w0BAQ0FADCB
+0jELMAkGA1UEBhMCSVMxEjAQBgNVBAcTCVJFWUtKQVZJSzEaMBgGA1UEChMRVGhq
+b2Rza3JhIElzbGFuZHMxFzAVBgNVBAsTDkt0LiA2NTAzNzYwNjQ5MRswGQYDVQQL
+ExJDb3VudHJ5IFNpZ25pbmcgQ0ExNzA1BgNVBAsTLlZvdHR1bmFyc3RlZm5hIGh0
+dHA6Ly93d3cudmVnYWJyZWYuaXMvc2tpbHJpa2kxJDAiBgNVBAMTG0ZlcmRhc2tp
+bHJpa2kgLSBJc2xhbmQgLSBHMjAeFw0xOTAxMzEwMDAwMDBaFw0zMzAxMzAyMzU5
+NTlaMIGBMQswCQYDVQQGEwJJUzEaMBgGA1UECgwRVGhqb2Rza3JhIElzbGFuZHMx
+GzAZBgNVBAsMEkNvdW50cnkgU2lnbmluZyBDQTETMBEGA1UEBAwKNjUwMzc2MDY0
+OTEkMCIGA1UEAwwbRmVyZGFza2lscmlraSAtIElzbGFuZCAtIEczMIICIjANBgkq
+hkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAiZ7qjHoZWUC/okbVD2YOGi8Nn+SM23MW
+yBGnC4+mgT5ysb6fq4ylzyH11oDIDWwalVORq76C/E0TZZuBsjREQjfzhYojs/0O
+Xw0G/dNhDWXogfviZgymYnFxRx0eTbPFWE2xb8bxd06KisLC9ykZD1yPzOzjgvAf
+zN3dujtkmmfWYmJ9XzA6Zl+xkAJy2dWt3oAk/O7eokTszdp69SLLx9zHAxOAYwAY
+egwZoi3q3GKvjS/OS1hCS4ODdiR5JP5P1YbeJuWGKOrs9+WqXj5rPGeBz4y5VZYJ
+nDZBHRlWdBgIVuizDEuDGzQi/hntCjxYJ5IDAHFp54sThehoekqh4ioi1ZRNqdUi
+lBUFNd22QGj+hhhVaZ6EckG/8lQ2JCv3KNf8jNUBYGGVpeF8dNebnly+GlThWmLs
+TF1/KFc2dSjJMBe140uReL2UGLBl5AEmIEJMcNU+VatNB4SZlVg13Y51sVmdpgPF
+dYYKNY4WkTaaROsusPflcKNFxH2W4+3/KjYfrd+J/2PBrYTTKwY598YPU8Rz3hlu
+r27su11dxDK7JNGxlD88qmsj67edZbXL062pOAlo9qCGODacyrKE0/RexE3Swcdw
+LMJA4Olo9lW6PhK9qgvgpE9pHvTfpSHJSb9Uu/ZZJk1Pc/Ecp9S+C/1PSjlj2WTN
+3X/cm3IbpzkCAwEAAaOCATUwggExMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0P
+AQH/BAQDAgEGMC8GA1UdEQQoMCakEDAOMQwwCgYDVQQHDANJU0yGEmh0dHA6Ly92
+ZWdhYnJlZi5pczArBgNVHRAEJDAigA8yMDE5MDExNDEzNTcyNVqBDzIwMjQwMTEz
+MTM1NzI1WjAdBgNVHQ4EFgQUfSzmgINqDexT7KnTBB3lna73DsswbQYDVR0fBGYw
+ZDAwoC6gLIYqaHR0cHM6Ly9wa2Rkb3dubG9hZDEuaWNhby5pbnQvQ1JMcy9JU0wu
+Y3JsMDCgLqAshipodHRwczovL3BrZGRvd25sb2FkMi5pY2FvLmludC9DUkxzL0lT
+TC5jcmwwHwYDVR0jBBgwFoAUhX/1alO2xNgzYAXZq16AIGdzx04wDQYJKoZIhvcN
+AQENBQADggEBAGL5KCsjU/Le7oyuSTehJuJSrMFMaz3Zs9ddnTejrGHdsKM0R77A
+FV8X4q1stGScxiR690WDBaGa0SH3/Q7axFRSqZFp3adc+ay8JcZ141r/yoGmlIIy
+YqyGVSzYNn0xAQeRMlgBWSH/sh7EQlOjVPNRFG4DMToWnt3E8xDd02aW3Dtm5xJy
+0CWFw5LDpejA94PqByEGYfRbo5n4u89uIir1WklSYB2xw8uxfU8kxzffQkM5GNrg
+lsYHZOb8UbEPWrtgApsCdMPV+YCW1ltJ3mopVTiqtbvHaU1dS3r8ZrY7g904fddG
+v0TXlgVbXBFsYzXM6zG2AyI8ZinI1fvaIsg=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGHzCCBAegAwIBAgICBGUwDQYJKoZIhvcNAQELBQAwgYcxCjAIBgNVBAUTATQx
+EDAOBgNVBAMMB0NTQ0EgTkwxNzA1BgNVBAsMLk1pbmlzdHJ5IG9mIHRoZSBJbnRl
+cmlvciBhbmQgS2luZ2RvbSBSZWxhdGlvbnMxITAfBgNVBAoMGFN0YXRlIG9mIHRo
+ZSBOZXRoZXJsYW5kczELMAkGA1UEBhMCTkwwHhcNMTcwMTI2MTEwNTQ1WhcNMjcw
+MzAyMDAwMDAwWjCBhzEKMAgGA1UEBRMBNTEQMA4GA1UEAwwHQ1NDQSBOTDE3MDUG
+A1UECwwuTWluaXN0cnkgb2YgdGhlIEludGVyaW9yIGFuZCBLaW5nZG9tIFJlbGF0
+aW9uczEhMB8GA1UECgwYU3RhdGUgb2YgdGhlIE5ldGhlcmxhbmRzMQswCQYDVQQG
+EwJOTDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMZVunXL6FFloIZi
+weDvxis6piuUWqB14367V8wmpFXjDQpx8ENVZ7RBDlIStIJ+QvvK7RZmMDHrua5I
+N9oQYeBnsChXmT7vII0sZKQgNq0y5UKToxRcoOjdPhA49TVkzmratmxZfBxZHk69
+xEcYHKCMy/bhgSs6our+4zYOcnZYkvUTnrkrcmOGI3UftIuMHFVT7V/m7WRCsaJQ
+Vhauy5Na/MBKR7K+B3hAeSOZhWuT8DvklTNrYiTVIxthDdt1H438Av1VHrQHHLc5
+rvomdcznW+vXX8WfjmmuMYUH3JVgMT2byWnpPnbGZ5r8DPZBiY/OYn4zSCyZ2J62
+giuNmO8IX6WibmbW+FSUadwLtm4EgzoN+8p9RhCNz7atcSzrK149ohr8WpoKbiCi
+6eVdd6XwYgcl+XA+g0cojl36Dgi5NkvZtbHhSsh7LnCjOINX3MAN+7+qCY2/5Pks
+pv3OYrK7RcK7VYbaJC0HKmQnXXmSGsXdFsZABF8TMnm/dulsXtYj33AnXusDzqow
+2EmWjbvoWd4f9PJNXaQTkSFSAVFSBUU94eSgoua/kHLJW1Ac8uCC6mYu3xqT9USE
+5CnoOPmeSTuSKOLgwbqA7tZODNIJ1FRJXre7iQfu4oeMcWDORZplLnUen7+gSl6K
+ZEhyf9dfWeLgVG1JNl0OAVaL9P5BAgMBAAGjgZIwgY8wKQYDVR0OBCIEIBgAwOvO
+4uXjvy8VD3WltiRdVJlweIZJbiryzjeFDi0wMBEGA1UdIAQKMAgwBgYEVR0gADAO
+BgNVHQ8BAf8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB/wIBADArBgNVHSMEJDAigCBH
+u7gb8MOYQJas9/Pt75JX3qd1NP5W3g2AzHyTgF9CQTANBgkqhkiG9w0BAQsFAAOC
+AgEAH2JvIk1m7UlkNfsoqlPMfq0giEs5YBZAm0XEACjRe97+3MLA2m66DGFmC91m
+rWNpBvdpdW8ECNyq8rsZePWLDtjM8sL1lz0epH3VCiUOdYQ7XLNOrEzLuq2vpeb1
+jZVIXZtP8QN5+3QRHinEamQo5iqhbjY5BgxZaZDASMFhD6M3Do/u3U+t1Htl9j/p
+kZTKYAHNBhoc5PFv1eyac+wtmPp61Qcz/4TWTnprjvhv8MF2UfOeR8FusuZpXaSP
+mVH+vh16dAt/t0eX/gEYYFwEMUMHRmVB7sXl7PhhDLPNdZ0SI5l4Zta7HF+1TM5i
+fC+uFcbHddXuMYa88Oe68Q/bJadO9cjDff8SbEnVnk5If/aGHtpguYVjaCTxDRRv
+XFAtghPTaNJTm5Luso/DtwooADqWRBueudtosjfZNBIom9I1QgQ50w5EFLCrB+fk
+XNVKlrMlclI877zEoWFWGYT5XSxW76AwCf/8mpwPxFupltDpCge62ENdiCGoZ54z
+rTN6N/zEigOPAIBZ2ytRdvfIdV3CBuFQNaMhE78zwzS5G704NOixpIQxqOx3xKu/
+0NTISUec0VolYeEI2sl9fE/5yJdWCnSZXPZUThkiWDZE/zC66z0g6md71WzrcVoU
+jkuayiuQ1qeApJbbgoxxFvKDE3p+zsSwaIIj2492aCdn7xo=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGLDCCBBSgAwIBAgIIQ05EU0NBAAUwDQYJKoZIhvcNAQEFBQAwgaExCzAJBgNV
+BAYTAkNOMRswGQYDVQQKDBJDaGluZXNlIEdvdmVybm1lbnQxJDAiBgNVBAsMG01p
+bmlzdHJ5IG9mIEZvcmVpZ24gQWZmYWlyczEaMBgGA1UECwwRQ2hpbmEgUGFzc3Bv
+cnQgQ0ExMzAxBgNVBAMMKkNoaW5hIFBhc3Nwb3J0IENvdW50cnkgU2lnbmluZyBD
+ZXJ0aWZpY2F0ZTAeFw0xNTA0MjcwOTEwNTJaFw0zMDA3MjcxNjAwMDBaMIGhMQsw
+CQYDVQQGEwJDTjEbMBkGA1UECgwSQ2hpbmVzZSBHb3Zlcm5tZW50MSQwIgYDVQQL
+DBtNaW5pc3RyeSBvZiBGb3JlaWduIEFmZmFpcnMxGjAYBgNVBAsMEUNoaW5hIFBh
+c3Nwb3J0IENBMTMwMQYDVQQDDCpDaGluYSBQYXNzcG9ydCBDb3VudHJ5IFNpZ25p
+bmcgQ2VydGlmaWNhdGUwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCw
+ErEcqBe7UgPCqEtPlbVeIu82rVPNM2ULMrKxMpYyS639SJmqJ4y2FfM9zKHnbClC
+61V90MKRpGf1yiKrzYw21EYPvrTRsM9/LREupd5CEtoHnDM3qtcqu4Z+/nViYwTK
++bRba8ZC5Grbe+wF6rQgUODcYklvO2QL1eRnGOH8Ee/dqJPlidWGKCPUWItHZFmC
+8tv89cRd7B33eL7LQQ9OFohFqEmEU7mveE1Hx2LYgC/+zvKweGvc5l4MaJ4Ru2jo
+7/Fp3/puwFdc2xR/X/531Qhc1Afboag5rq0QDwO2ODeoxQ6ipwD9olKEHQcUsisR
+MHuMpOGeq7l1QL113vUmUhgSzAT3R1sCI4/yMya9yf8XxfsboIR8jL5BIqq8eBe2
+UwMvgWZH7KSRddkDIdNK3DHxduVc4jFJtMXwpvzW4s50zO/cFK3i2prD7/lpVa8E
+y6/le5OAss9AD7dNgVoGHTTBxG4K7htzp9XU9y+VwK8eqBIkIQw6P7ovvXfYPAQG
+ZL4n9M9KxhCqB4Jjd4Ix45OFwBj8gNd73BXifekooU+aUhqyaQmMAkEW2ekDLHiU
+EvT9v4eCwcE2vIXcgfFqtQZjS18Q9aC1I69zFaYe3p9fGpGyeXgwWzYVtD4Ts+dv
+TLHm0SYTlAkMI01vL1tOcxvKKVmya2JEpOPUd72h7wIDAQABo2YwZDAOBgNVHQ8B
+Af8EBAMCAAYwHwYDVR0jBBgwFoAUGx+qWRWI1LVSC6jnv37GT51tGb4wHQYDVR0O
+BBYEFEpnOYodASLFPUBXp2FJNF/D5wI0MBIGA1UdEwEB/wQIMAYBAf8CAQAwDQYJ
+KoZIhvcNAQEFBQADggIBADS2ijro2XcJ6PlmwtZA8r0/75fhLyJ4VCb+NYXgdym0
+YSU3B6ie/tF5OUgNHH0ckQJVsnISZtwpoXocgdi3eaAjs54KVhKqmGnUNkuk+wn5
+p7WnCWEEIoKlimPwCQv36ZDAaHlheR0+ptoEc52punfnH1MwpHPFiYrhlzE2FN1U
+wiwx5q05TLqXywbiTeC68jTdsveBCAlDM298KX2Ujnz9/OMx7kETS401AoiVyQSn
+71M4pQBs8o3UcIDkpRiWbCaHo9durqbz9vzolVUPDsYnaZ5UVIVA/tCf3U+ug+uZ
+5HcP0wJ6KdBnwngeoFjoG/9QrpMs5a7K6mVKLVL/KAmNLxV2NgPVFzpK+64VTgfn
+7kZpnfr3W6Z9SJq4prc0/pcHM3QLSdBUNQm+orfcOyU11er0aEoQP7tlmrfCYv7W
+/6evllKmtWAN+aICVohLeZZ7myey0EkrDfCv0amkRYOLRsEHNJjiGW7p7Vtvm/zu
+bqUoAdt/AnAzJQw2pLXBHYGU9kcYtrvB2f/nf4Q4Kr4Tocrp1uolg4zgI28qGNxh
+q2HDDD6Q7+aNEmCMvvV8RktPDoRrW8iFlp5WNjXJQcmQtFHX114jFI08KbxQtTgn
+MAVWaWmlNthrU2DJGycAtV9RswUXeEK8bPn3LXfoYXKrMraQ+ADYePD5UeW14tuY
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGLDCCBBSgAwIBAgIIVf3fb7nGNpowDQYJKoZIhvcNAQEFBQAwgaExCzAJBgNV
+BAYTAkNOMRswGQYDVQQKDBJDaGluZXNlIEdvdmVybm1lbnQxJDAiBgNVBAsMG01p
+bmlzdHJ5IG9mIEZvcmVpZ24gQWZmYWlyczEaMBgGA1UECwwRQ2hpbmEgUGFzc3Bv
+cnQgQ0ExMzAxBgNVBAMMKkNoaW5hIFBhc3Nwb3J0IENvdW50cnkgU2lnbmluZyBD
+ZXJ0aWZpY2F0ZTAeFw0xNTA1MjcxODQyMTFaFw0yOTA0MDUwMTQzMjZaMIGhMQsw
+CQYDVQQGEwJDTjEbMBkGA1UECgwSQ2hpbmVzZSBHb3Zlcm5tZW50MSQwIgYDVQQL
+DBtNaW5pc3RyeSBvZiBGb3JlaWduIEFmZmFpcnMxGjAYBgNVBAsMEUNoaW5hIFBh
+c3Nwb3J0IENBMTMwMQYDVQQDDCpDaGluYSBQYXNzcG9ydCBDb3VudHJ5IFNpZ25p
+bmcgQ2VydGlmaWNhdGUwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCR
+783TYrfp5XdO1yrrPgEuulVnUPdCBDBlKhKiLCMHSv04YH6b0yPoVIombGPy89AA
+ejDWWR5e64m5aONBk1+KzzYJ88+s/3y27N5An3g/3vaKpDhmqpB43AXR2+qOJu/8
+/2kZtcVhLu/fgj2SHYZNr2c40Jz/JfQrpMoLOAWZ0kv7ohjWpBfIikU3FjQw8zwU
+BKxvqbWSxra0+ks6NraOpkuilYumyAEqTiaNTSTNucVtyZnkXh6Wii3ouaixsj3h
+D3sZjzTgbCGyp4xhoLab7bTBgtMlGzt0vezBUsqB/f2NvJwopnMQTak0Tqd0UEwU
+LzMpKF1JAqYJKT4O5lxlodDoaYUTxtGAJS+86ivYkPNxobfaTEOmo0raa5kAy0xP
+iscyQlJ/hcjM3znO1F292hpFvDVobraU5tBSwv0sXEVI6OLI8PbmSEym00dDlDHO
+J8rA0ONyIguX7QNsl8lyR7EsaQ9yXNAs32ajdb+4IzTXn1C2ciKmgS1nb/J4V6Vp
+nZnita0o08NQM0eDbNNf5C8Moj5iA9Nq7i9T8BRM8eP1cttEOITsYxDGTA77fXBR
++ULVXC8Zgbo6x8UFWIgYzK6qruVg4MawDoPdV/eqSQaVMz5o6qEoq60OF8Qon9XZ
+MrTmY+NnKu9oBJ4DjVU/nVLzEnANO06Nkth4shrRGwIDAQABo2YwZDAOBgNVHQ8B
+Af8EBAMCAQYwHwYDVR0jBBgwFoAUSmc5ih0BIsU9QFenYUk0X8PnAjQwHQYDVR0O
+BBYEFGtiJuRTlPj6/HXpp4fd6ujNtk+TMBIGA1UdEwEB/wQIMAYBAf8CAQAwDQYJ
+KoZIhvcNAQEFBQADggIBAIbqCyR4ISaR4BbfkandkxIuqpJo7c6qZ+C4YubgDDCQ
+PMf7/LpvwvueuI+wt8jD9p5hAhexvO6Ge9CqKg+z92Kb9G2ulUxUD22fVUq6dQSx
+98wgxRLvAU19MmwuxiqZ4XGjatU7CjoiHkk/2EpOqWYkqcRMgcKioH5/TD3A8eZD
+odNaqt9UcVJgF9nMQe8Fx6ikFAo3AY2VBTgO9P7tPQNLUqh/vKzntaSTvWMnQmmq
+YNYf7B/8yhs2blpMDPwDZZ78B4SjGxRAxgswarRuK/OtyUL88Y1GVepaKELZgrbO
+Xn9dv2MVemQPmrGKz9vttstRpQwn09PUcetbjcMk0GAlAnGvCM9T6IRjh72k4rsa
+Xq1P+er4DB1+Af7vunox0/XlToCykDa8alqUG0bd3WNTWUCgKQM1UPRE+8D/VBBB
+Ay0CPGlHf4rcqDH368OCC+A1PQiS2IRKVmDNTg30id42hmna6PFCA0FMLMlfYsls
+zuGj+au9oH6ed3G1/EEO7UDc8/1mT2CVg7pwxnJ17dgdQY9apldy65ZTyRGhYmxJ
+8rcb8H7b4TyamXMhHaobmclP5s2OzyxCMTCRWwYHXkaNbyX2WVdFIJeMbLSLintD
+3l99+lXjCk1okI+ixBqfX71IepjdLX9rtxO0L4DUuFaxkQaSUP7je5JmFBS2f0es
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGLDCCBBSgAwIBAgIIcG4svCQ2sfowDQYJKoZIhvcNAQEFBQAwgaExCzAJBgNV
+BAYTAkNOMRswGQYDVQQKDBJDaGluZXNlIEdvdmVybm1lbnQxJDAiBgNVBAsMG01p
+bmlzdHJ5IG9mIEZvcmVpZ24gQWZmYWlyczEaMBgGA1UECwwRQ2hpbmEgUGFzc3Bv
+cnQgQ0ExMzAxBgNVBAMMKkNoaW5hIFBhc3Nwb3J0IENvdW50cnkgU2lnbmluZyBD
+ZXJ0aWZpY2F0ZTAeFw0xMzAxMjkwNTM5MDlaFw0yNjAyMTcxNzE0MTVaMIGhMQsw
+CQYDVQQGEwJDTjEbMBkGA1UECgwSQ2hpbmVzZSBHb3Zlcm5tZW50MSQwIgYDVQQL
+DBtNaW5pc3RyeSBvZiBGb3JlaWduIEFmZmFpcnMxGjAYBgNVBAsMEUNoaW5hIFBh
+c3Nwb3J0IENBMTMwMQYDVQQDDCpDaGluYSBQYXNzcG9ydCBDb3VudHJ5IFNpZ25p
+bmcgQ2VydGlmaWNhdGUwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCa
+MPY8gllarFneLwPaKskp9Z6wSE31ZS0VH899Hm1Jg/ecdivqRCNupLuK2PTtuSUP
+t3dECfUKvKmi4pV0TMrVUBGtpdWbIutZTkn/cHbyg+V9MgZYOhxnNa91G5YaxPJl
+hCcqp40JPaRwUMc/v+kt1KnVF8S6ZAQMKjuMzxKsdt9KMVuBwrf7c5daVLGM31N4
+MA89XlUzJKcZja4Yu88aH+qwUgf6V5DBv2eDDLm+R+ptEMzTI1pI6ueTuAMUDiGg
+3+tALTa6DNrXdZUkQqYUgnQkgXgFB1bIwD1bTNfMF/stCaLQTMigSkOm19uLg7H/
+hCNPLei3CEE4tAoyfi51cq2xvHFx3N0kaqS0oWrwtYO29IJWzTf101EeyqtCTsaU
++oIqeF012mWT17hUX2LibOXgb6G3Po1q1ZFjyQ9lbNKkliVLQUyy6H7Do8QRUOzo
+WozOxJHA/W6noB2RQmj2+dKn4B5XcOf+ld+zf0IwqBedl7mAja4xWYFZFX/o5lKD
+tdEZwAvn2YWF0LcnpkkM7IKAoxCKct0DGUi1UP0EM6vVLmnuFmMC3yPFRMdJ6gaS
+BCiD9b0HgX+S6Xl8lGEMYuGFTkZnx8TVulEFbKMeDVbbZldkDvlVZrjzBZkKJDo8
+zAWDA2ZMCs04OT304qAEztdtVPtd2htdUwSOe2g0BQIDAQABo2YwZDAOBgNVHQ8B
+Af8EBAMCAQYwHwYDVR0jBBgwFoAUGx+qWRWI1LVSC6jnv37GT51tGb4wHQYDVR0O
+BBYEFO5Dr49ezhJRojXRRoyciTjQVjARMBIGA1UdEwEB/wQIMAYBAf8CAQAwDQYJ
+KoZIhvcNAQEFBQADggIBAIZi/Nv5K0B08jdEzHlh9r5GQcT7Tu+g4sEAOAFUuU1i
+aQmb939dbhNuobZ2EyQu+7XqsSzG4eJdWhs4G5kyx8jHA9yDbxQRT7EBBVxuT+tc
+BWpeH9NG+4ExIctKSdLgc2oNvUXh2Qrnm7Pi3Tfh2iepRg6Ct99cSjcYc1rhpIEC
+IS7OcS30UpXSpQjxZpG4pz0FM0O8jPUnNtj+hSKQwku2ESAFIkq8TZRGkvDp2OL3
+xhysEy0nXmKIG9KeB8LUh++i6e0F2pTQ7MxmWhXVJ0O7Oz5BnwAJUrPiildL8m8J
+MzuitLbRiYPldxnQLD66jV5d5Acfe/R5dKUymS6alNLAqFHNZNjbPBoQMNzljifr
+A5/8x7BQNk45Zu/OkuYk13LJAvrV5WkjNQffqwdnrQCNOM+axgrcVsLZ/3UoDrbT
+QnEG5Co1XE6fc4gaB45ZdW15UlJLhnZD9OaytK0ocQC4wJ2P1tWFsZH70fV7ulVd
+SLMlK3Csof79DkzAyNJGIoYa7cHDdNzv+ZXfS+vX2W8iPbIup7Gihmhkkof0HgFC
+mi4U7tsjjbzc1fZZlyoZtPPARKV3yKEtk60/GT7ZC9xKfgy1QnkgwVVm463X5foT
+kV5llg4lSlSm/A+9QmSAroxLUINrXAS9sPUJDICsHYzDZl7bnXNU/1wujsj+S8Ir
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+Xb7282BHVRWlkBABqQ==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+Ads1LtVb6A3ud9nQuQ==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+EBGChdEFm1SGK6oPPQ==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+ZMPzTiJBF7N93R91Pg==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+B2VkVmpdueQDYB6rwg==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+tMA4K/XI/SwkPm7dzJ8stQ==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+ZYsUhdN8bHeVWbOeYy9fM04ReQ==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGSDCCBDCgAwIBAgIQUfweIYhY8YVzSKBdBnq1KTANBgkqhkiG9w0BAQsFADBC
+MQswCQYDVQQGEwJCVzEMMAoGA1UEChMDR09WMRIwEAYDVQQLEwlNTklHQS1ESUMx
+ETAPBgNVBAMTCENTQ0EtQldBMB4XDTIxMTExMTE1NTQ1NloXDTMyMTEyMzEzMjc1
+MFowQjELMAkGA1UEBhMCQlcxDDAKBgNVBAoTA0dPVjESMBAGA1UECxMJTU5JR0Et
+RElDMREwDwYDVQQDEwhDU0NBLUJXQTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCC
+AgoCggIBAIwhuqvEWd5VyuXdoBjR3LczfA4+8mzkGsp8A+l+tcImTJ0AHdmlmsCA
++YX+p+P8yTMZ2Quun0mXu0JK5u/3rzofq9shbrtc+ddqAeC88ajvCSXzZw89xfjT
+NLzFM5xH9WStyEDjaNpw6gobxcpMyJbVNMO9SpLP94z31Gc5WVoeJd3n6CdjUr7y
+ttnqq83oaHWHtlyzv3KH9Ec2MS+9OxOMO/YItLR6dTBeOv5Z3dyeLMhfodv2RsF5
+zRO7AEoKTkIya1Zv33FlBdXJmTiAWIt7gYiftO1Ek6NFMT6wjwKGVPDGPD2BJElL
+Cssg2/GRNMM9EyygMCujGBwSmMwO2uY8gjb8qhHIJPFK8MDuIVahfUpusta2JJh3
+NWDB7/TJZHhZC33xrLFpER01oAf7SQksH6u+JlAHsNTOeqhU5bEq+P2bOLVEPPEm
+pDO4LpSRSz/y1/aQNDaPXtT2T4fiQuDiExMokXV2K0Bs/194aEG9unTrakoGx64v
+2DOqxsrZ3xgPzADBv71IxnrAujZSapC9rQliBPzapbG+9cghMWPSV7Wjtbknaz7g
+qs3NXCZpVGKiH8KnA5Qin6nU6f4KhWwKoH3fqCupvb+2V6biHdj8rXzzet+JjJ3J
+NUCea330suzxZnoiivJLq6aYCRZuf9bmdDkrKeKtQWRGcOHfGVvvAgMBAAGjggE4
+MIIBNDAfBgNVHSMEGDAWgBTon7rdy/4Icssk/nL3RLeQNxv+PDBnBgNVHR8EYDBe
+MFygWqBYhipodHRwczovL3BrZGRvd25sb2FkMS5pY2FvLmludC9DUkxzL0JXQS5j
+cmyGKmh0dHBzOi8vcGtkZG93bmxvYWQyLmljYW8uaW50L0NSTHMvQldBLmNybDAO
+BgNVHQ8BAf8EBAMCAQYwKwYDVR0QBCQwIoAPMjAyMTExMTEwMDAwMDBagQ8yMDI0
+MTExMTAwMDAwMFowGwYDVR0RBBQwEqQQMA4xDDAKBgNVBAcMA0JXQTAbBgNVHRIE
+FDASpBAwDjEMMAoGA1UEBwwDQldBMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0O
+BBYEFF5l07QLGRp4pUdrRlU57sazhMAOMA0GCSqGSIb3DQEBCwUAA4ICAQBLLQgR
+pUvhgfgCewx1c4LL5enB4yxBOlKqWKVPbnrWXbzddWxg+wZaL2XBhzhjDSTYlBmY
+YqFg/R7jujN3mYII7r4qZvbtelqvnUQCBlAtZDK6IqadXSXFY4lvxs+rOcqmQMId
+8GD6sEZFtYLXhAsISfN7y38YEUBnl5jtQX0WebgdPaQurE/hQAUs7hNqg6blVsGy
+AQ7Z3LEvE2j1NoyqiuGlOtQ9X3ziI8qWbbV1NTe4VQxG/QoRiDtiyNyTEdh2FgK2
+bdvJHmfaKc42LKFgyVc2DbWc7AesNbCGph7iT40YL6z4UDL38waF2Jpfor2fNwxM
+U0q/tOW/qBPIqkGnJxyCs403hwGTgaiZqZYnapJCHNTtTdfZbjLkS2YdRIFiZu3Q
+FW4O28IKXJvSly8ARzn56g5jJqyu5iXlIIaJnQznphTHiSU3jf0efXX0qzejaN0K
+7DlraoFTH8P2pi7tay5SJS1ILYdfDmtAJv9fZOPst0CeCj7aOxOGNkZ60yAW2Pqc
+iObeYAwPB6Betb5eqebaVrTxiopRLl7R0hvlMFsD/HxMzdcFNTHANULk6UdUsKf6
+YcriJmdgM0xCprFX/s3KCPzhIrj5VkVhtnfT35QixJKx2I7VslOT9jdP3lz54WyE
+rJYpxxNvdju//Jl/FCYafY0Mg6TeenI/Jzmvhw==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+QVg=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGYDCCBJSgAwIBAgIIPJnf1MPzWOgwQQYJKoZIhvcNAQEKMDSgDzANBglghkgB
+ZQMEAgEFAKEcMBoGCSqGSIb3DQEBCDANBglghkgBZQMEAgEFAKIDAgEgMIGgMQsw
+CQYDVQQGEwJNWTELMAkGA1UECAwCV1AxEjAQBgNVBAcMCVB1dHJhamF5YTEjMCEG
+A1UECgwaSmFiYXRhbiBJbWlncmVzZW4gTWFsYXlzaWExKTAnBgNVBAsMIEJhaGFn
+aWFuIEtlc2VsYW1hdGFuIGRhbiBQYXNwb3J0MSAwHgYDVQQDDBdNYWxheXNpYSBD
+b3VudHJ5IFNpZ25lcjAeFw0xOTA3MjYxMTA1NDVaFw0yOTA3MjMxMTA1NDVaMIGg
+MQswCQYDVQQGEwJNWTELMAkGA1UECAwCV1AxEjAQBgNVBAcMCVB1dHJhamF5YTEj
+MCEGA1UECgwaSmFiYXRhbiBJbWlncmVzZW4gTWFsYXlzaWExKTAnBgNVBAsMIEJh
+aGFnaWFuIEtlc2VsYW1hdGFuIGRhbiBQYXNwb3J0MSAwHgYDVQQDDBdNYWxheXNp
+YSBDb3VudHJ5IFNpZ25lcjCCAaIwDQYJKoZIhvcNAQEBBQADggGPADCCAYoCggGB
+ANsjm1ExGh9pxbkg1JIG4hpBJO5CTiMh8vRgiM75V5gM388eREM7nMYR9IS3Mo3q
+Pf51h01G3HZZsqDIZqylQgsyt9t77My1+RL8gB4A4J6HUhZOpk8U/o/pzvKrVcX8
+br6AwnK/S+iBul39h07vijV7uiv2JnTiSmiLIGeZtr8SP5YVllklDtvZQC0JdTVS
+KMLmZw6bzECoG4XhVxcujVqJq9KAhmTNMM5FeYAqGK4P5TME6TUnM9HtTHJnM9Lp
+Hvul1RrI9JDIG1QZqLIQQtqfYeVM3vEzpuesellQLhcGAQuG7aNqxw0A2TOyriFL
+4L0nQdoMOUV6BZUqHteJ1T99EMVKlQhfOIGPmri833wTs58O/fPquiza6U9gPwd1
+OrEqeSVB+o/vNyma81ykqzEVsB2dvXM0hqoN6GuIBI3IqoWJLhizgWvjukRhrauI
+FmIEn8C+F+06Hs6IfKQIzSq9FUfL9ficvJI9ViZg1I31QWZLAzTtvD/VnvkkLGvq
+8QIDAQABo4IBMjCCAS4wHQYDVR0OBBYEFNVNz5B+1EjS9A4FmjkytGYMnsLbMBIG
+A1UdEwEB/wQIMAYBAf8CAQAwHwYDVR0jBBgwFoAU1U3PkH7USNL0DgWaOTK0Zgye
+wtswLgYDVR0SBCcwJYERamltcGtpQGltaS5nb3YubXmkEDAOMQwwCgYDVQQHDANN
+WVMwKwYDVR0QBCQwIoAPMjAxOTA3MjYxMTA1NDVagQ8yMDI0MDcyNDExMDU0NVow
+OwYDVR0fBDQwMjAwoC6gLIYqaHR0cDovL3d3dy5pbWkuZ292Lm15L2ltYWdlcy9w
+ZGYvY2FjcmwuY3JsMA4GA1UdDwEB/wQEAwIBBjAuBgNVHREEJzAlgRFqaW1wa2lA
+aW1pLmdvdi5teaQQMA4xDDAKBgNVBAcMA01ZUzBBBgkqhkiG9w0BAQowNKAPMA0G
+CWCGSAFlAwQCAQUAoRwwGgYJKoZIhvcNAQEIMA0GCWCGSAFlAwQCAQUAogMCASAD
+ggGBAEOqi7TXE+0e1B2Lk1h4kQ331aWRio8/kzW+FUupOx9A8PvMJ43SC903yRf3
+lAQakpy6OM1sGWIfoxINbCJmFnIjLC8jxDhx0sQsnmkfjzOOS4WH31qt6oeHpBF/
+9WiSk2EiiUDddNhR2BnEbbKChqxWv5J+IqED2Jhag2YkkgaAfw/73PgSSYPz0SBw
+v5gzAVNrTMIRtfPLQZJ8LLOajjcQSRzzc4fmvgzbqZugJ41Igq57XUuQSw+SDPBN
+S5ovR66/dHNcagkWz7I/A51AhfnHX2fC0e/9HvT+cK1q0g0hfeT5U/7pps/6Vyaj
+aBzuxon+p9O4CRWDNPLmyghEJ4Ic+TAx7N2PVL8jWXVzG1us4Lib5CwrPxPPVpwR
+ukpUVax3pairdzTbeSUF7tVIX5Zo0YJzdRR+4sE+toWYa6BBIhqjpmbiKqf4s+1v
+5OxHNj+iiiw0YrEP8VvO3YD516HcdjnLA9SvTyHhar7jczqUl0Hx1GvTUiIVbuLQ
+FcLFNA==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGYDCCBJSgAwIBAgIIPjoUVW3IJVswQQYJKoZIhvcNAQEKMDSgDzANBglghkgB
+ZQMEAgEFAKEcMBoGCSqGSIb3DQEBCDANBglghkgBZQMEAgEFAKIDAgEgMIGgMQsw
+CQYDVQQGEwJNWTELMAkGA1UECAwCV1AxEjAQBgNVBAcMCVB1dHJhamF5YTEjMCEG
+A1UECgwaSmFiYXRhbiBJbWlncmVzZW4gTWFsYXlzaWExKTAnBgNVBAsMIEJhaGFn
+aWFuIEtlc2VsYW1hdGFuIGRhbiBQYXNwb3J0MSAwHgYDVQQDDBdNYWxheXNpYSBD
+b3VudHJ5IFNpZ25lcjAeFw0yMjEyMTUwMzM4NTJaFw0zMjEyMTIwMzM4NTJaMIGg
+MQswCQYDVQQGEwJNWTELMAkGA1UECAwCV1AxEjAQBgNVBAcMCVB1dHJhamF5YTEj
+MCEGA1UECgwaSmFiYXRhbiBJbWlncmVzZW4gTWFsYXlzaWExKTAnBgNVBAsMIEJh
+aGFnaWFuIEtlc2VsYW1hdGFuIGRhbiBQYXNwb3J0MSAwHgYDVQQDDBdNYWxheXNp
+YSBDb3VudHJ5IFNpZ25lcjCCAaIwDQYJKoZIhvcNAQEBBQADggGPADCCAYoCggGB
+AJ7ytHppigLZpGYlUSd0H9chR/90owNohfpcdPvjQE9TDs2UYqhaEFERRZVc2dwd
+/kEkjlZdgWxRLYq4tssliSQ+ZvFQccEK7xKmKuG1StPdR2zhdvoXuoMMki4auJW6
+OozRO5VWatNxp4ZrHTRznKCTsNJpw1AYAqh7EDko+yFY3Fk86eH6Xi6KIeRznTcU
+99odXVAZLAfdm9bB8qz7SQX1VEB9IpRifw32rVv8gC2eQopXrcBb2ehrfUqnk1cL
+SEVdZRzyYRTz+pyJOdwRjQGSoTG8jBq66faQ9Y43gH0gC6M9+Y3RR3/LSkRbhwwp
+j1pWV5u1W78PCD62N6JsTokFHkbLI8g7OrNH0DPKZm8p2f+06PKub1dPutecA+Z8
+murM1cHitub9SQKULVb/sUEKvx0F3IHCO/k+f7PU3sPvzXHhO0znFcgowl9XAosW
+hZO1CcoIDK3P0qmqWj8qX35878JLWzqg2Way91UT7WCmgpCL4A2vPBIt0Sxo74NX
+VwIDAQABo4IBMjCCAS4wHQYDVR0OBBYEFCZNMP5948JcpL2Z2quza0WNKd8GMBIG
+A1UdEwEB/wQIMAYBAf8CAQAwHwYDVR0jBBgwFoAUJk0w/n3jwlykvZnaq7NrRY0p
+3wYwLgYDVR0SBCcwJYERamltcGtpQGltaS5nb3YubXmkEDAOMQwwCgYDVQQHDANN
+WVMwKwYDVR0QBCQwIoAPMjAyMjEyMTUwMzM4NTJagQ8yMDI3MTIxNDAzMzg1Mlow
+OwYDVR0fBDQwMjAwoC6gLIYqaHR0cDovL3d3dy5pbWkuZ292Lm15L2ltYWdlcy9w
+ZGYvY2FjcmwuY3JsMA4GA1UdDwEB/wQEAwIBBjAuBgNVHREEJzAlgRFqaW1wa2lA
+aW1pLmdvdi5teaQQMA4xDDAKBgNVBAcMA01ZUzBBBgkqhkiG9w0BAQowNKAPMA0G
+CWCGSAFlAwQCAQUAoRwwGgYJKoZIhvcNAQEIMA0GCWCGSAFlAwQCAQUAogMCASAD
+ggGBAJ6stGE0zcViHa02Xmuu1xqHLKC9ekwT838Il5nzWwdFns3tVUy5qpyJkv7E
+ugToITfVzwZqhThPrL2woqrs3Ki79lTntwWr7oj8eIkd8D1nru6bNLHIo+olK9fA
+2VWlkxlhG4aK3CEhONAcDLjxxCjTlb+Ftqi5stja/RCO0TWujJGItHzFBrIcOIgV
+9eqdp5J8ukoAcgSkGFp1HmoMYGUeVb8OkXg8XU6ZBCIcHPHM2XMAjCZqAxSVS3Is
+UpylC2JZzMEB7POWCkTFkwyYuVy/qydR0REtgWx/bIw2Fjgal3sYXplQ3Z6q1VU5
+fnqStgRB560D+lc6faEyzu3pItsAY1BIGBQKMDHkL4MZtzZ3dHRUDEL07KfKdWZC
+kI5XIn4GI0W1EsJvlVaSVvThdn6xWI3/+xMyPrpA71EB6QGIlL9qyWHm2t1t7Ovh
+DyAmd0XVOpdl+oLoK0W9OZSa8HWb2COr91dPHzf8XZ2Y2Ym3yxMyR7AUcgwwS+WF
+wr9Ibw==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGYDCCBJSgAwIBAgIIXVdJ3wIWTqUwQQYJKoZIhvcNAQEKMDSgDzANBglghkgB
+ZQMEAgEFAKEcMBoGCSqGSIb3DQEBCDANBglghkgBZQMEAgEFAKIDAgEgMIGgMQsw
+CQYDVQQGEwJNWTELMAkGA1UECAwCV1AxEjAQBgNVBAcMCVB1dHJhamF5YTEjMCEG
+A1UECgwaSmFiYXRhbiBJbWlncmVzZW4gTWFsYXlzaWExKTAnBgNVBAsMIEJhaGFn
+aWFuIEtlc2VsYW1hdGFuIGRhbiBQYXNwb3J0MSAwHgYDVQQDDBdNYWxheXNpYSBD
+b3VudHJ5IFNpZ25lcjAeFw0yMjEyMTUwMzM4NTJaFw0yOTA3MjMxMTA1NDVaMIGg
+MQswCQYDVQQGEwJNWTELMAkGA1UECAwCV1AxEjAQBgNVBAcMCVB1dHJhamF5YTEj
+MCEGA1UECgwaSmFiYXRhbiBJbWlncmVzZW4gTWFsYXlzaWExKTAnBgNVBAsMIEJh
+aGFnaWFuIEtlc2VsYW1hdGFuIGRhbiBQYXNwb3J0MSAwHgYDVQQDDBdNYWxheXNp
+YSBDb3VudHJ5IFNpZ25lcjCCAaIwDQYJKoZIhvcNAQEBBQADggGPADCCAYoCggGB
+AJ7ytHppigLZpGYlUSd0H9chR/90owNohfpcdPvjQE9TDs2UYqhaEFERRZVc2dwd
+/kEkjlZdgWxRLYq4tssliSQ+ZvFQccEK7xKmKuG1StPdR2zhdvoXuoMMki4auJW6
+OozRO5VWatNxp4ZrHTRznKCTsNJpw1AYAqh7EDko+yFY3Fk86eH6Xi6KIeRznTcU
+99odXVAZLAfdm9bB8qz7SQX1VEB9IpRifw32rVv8gC2eQopXrcBb2ehrfUqnk1cL
+SEVdZRzyYRTz+pyJOdwRjQGSoTG8jBq66faQ9Y43gH0gC6M9+Y3RR3/LSkRbhwwp
+j1pWV5u1W78PCD62N6JsTokFHkbLI8g7OrNH0DPKZm8p2f+06PKub1dPutecA+Z8
+murM1cHitub9SQKULVb/sUEKvx0F3IHCO/k+f7PU3sPvzXHhO0znFcgowl9XAosW
+hZO1CcoIDK3P0qmqWj8qX35878JLWzqg2Way91UT7WCmgpCL4A2vPBIt0Sxo74NX
+VwIDAQABo4IBMjCCAS4wHQYDVR0OBBYEFCZNMP5948JcpL2Z2quza0WNKd8GMBIG
+A1UdEwEB/wQIMAYBAf8CAQAwHwYDVR0jBBgwFoAU1U3PkH7USNL0DgWaOTK0Zgye
+wtswLgYDVR0SBCcwJYERamltcGtpQGltaS5nb3YubXmkEDAOMQwwCgYDVQQHDANN
+WVMwKwYDVR0QBCQwIoAPMjAyMjEyMTUwMzM4NTJagQ8yMDI3MTIxNDAzMzg1Mlow
+OwYDVR0fBDQwMjAwoC6gLIYqaHR0cDovL3d3dy5pbWkuZ292Lm15L2ltYWdlcy9w
+ZGYvY2FjcmwuY3JsMA4GA1UdDwEB/wQEAwIBBjAuBgNVHREEJzAlgRFqaW1wa2lA
+aW1pLmdvdi5teaQQMA4xDDAKBgNVBAcMA01ZUzBBBgkqhkiG9w0BAQowNKAPMA0G
+CWCGSAFlAwQCAQUAoRwwGgYJKoZIhvcNAQEIMA0GCWCGSAFlAwQCAQUAogMCASAD
+ggGBAHyHC6qWuAJ+AVJaHDpXYVBu5TmEagEEvLtVR/X7+x0nxOlFWWVP2nHUEyAG
+UO+4p1c5KgtRJDNL337BMRyqxWum/Bia+COmHeOuA89MfJn7TXCSBh4UnihR3Iyf
+u+J26nJZcBBrXnvZgXfELftRVn1fyOHRe0wmLjbtatnvp7YE9kq/Z/bYjds6sLiK
+PTTDk3XjR0VDmvK0DpmrLt/oaGlX1SmUOJvDIyVltN4uKhoroddJ+hTQ8w3eKQek
+Tugxx3w1GaLkpBuSRS8iVMEcMbrsvR5t47JmThVB63Q8a6OU27UFFV2YFbVp2AuZ
+mmBwVjGnyZz4fjCQYkE17pzi4gtYHSkd/Whg2Ur23ThQxNjAObNVVkE3+0lP7xET
+GRpn7M+kDUdLsxkY15mdoWed9DPKFMTkxQ1eSSlkbm69jXE0+M/DVvVUQutYWOsq
+JXmCXJ+XYO0SCZDqg+cYuGrpGwwuFnX6/yYDg/Yj6xR2ESwbyI+NiFYiG2YXifLa
++l+jXA==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGYDCCBMigAwIBAgIEWZbiWDANBgkqhkiG9w0BAQsFADBoMQswCQYDVQQGEwJV
+TjEXMBUGA1UECgwOVW5pdGVkIE5hdGlvbnMxIjAgBgNVBAsMGUNlcnRpZmljYXRp
+b24gQXV0aG9yaXRpZXMxHDAaBgNVBAMME1VuaXRlZCBOYXRpb25zIENTQ0EwHhcN
+MjIwNjE0MTUxNTA5WhcNMzIwNjE0MTU0NTA5WjBoMQswCQYDVQQGEwJVTjEXMBUG
+A1UECgwOVW5pdGVkIE5hdGlvbnMxIjAgBgNVBAsMGUNlcnRpZmljYXRpb24gQXV0
+aG9yaXRpZXMxHDAaBgNVBAMME1VuaXRlZCBOYXRpb25zIENTQ0EwggGiMA0GCSqG
+SIb3DQEBAQUAA4IBjwAwggGKAoIBgQCsgw5qSCt2GW7ktzIXXKM9YOZFYKtYRWAt
+Yrej3ajLxi4+YQYJs4vSH+OumKfc2onO9G4ZPwOClOqS4SMKrjFuzzHeohIsErJA
+15ETrbGff2D1cOFim7VXwWN8QLdEikq548bn3XuhXVv+2WfkxJMFSqGx4f8r8Jiv
+J84UaWOKOJSJkQAUNIfSeg+EbjWLbNECi82+PXSIPY8b/gvyY6wTHy20BzmNvAJ3
+l5Kck5PdQcOXjfUmtn8StzxqKY7KuxsnSJE/hGs0oJGc8MFw0K1gh8czx+rbRWQd
+bJLD2qr1J8p22qwhvZfrY/r3hJw4gT2mZ433VejCxKzk6escotY6YTwhnpkGOTCX
+svaVZ23L/jz27E714HtqAS5Z42ak8xnK1Jl/FwvGmwPYKrSKqSdMLs4NiX5ar3wF
+oKQvYtNLkwF+s6FhiiIIgPG6pVpFT8+cIoRPBYr+HHPHvbyNiJJshuxC0Bi39uai
+9khHykBtABnEYb1y2V5wT1UJFkhkJQECAwEAAaOCAhAwggIMMCoGA1UdEgQjMCGB
+DXRyYXZlbEB1bi5vcmekEDAOMQwwCgYDVQQHDANVTk8wKgYDVR0RBCMwIYENdHJh
+dmVsQHVuLm9yZ6QQMA4xDDAKBgNVBAcMA1VOTzAOBgNVHQ8BAf8EBAMCAQYwEgYD
+VR0TAQH/BAgwBgEB/wIBADCCAR8GA1UdHwSCARYwggESMIGOoIGLoIGIhi5odHRw
+Oi8vdW5vY3JsLm1hbmFnZWQuZW50cnVzdC5jb20vQ1JMcy9VTk8uY3JshipodHRw
+czovL3BrZGRvd25sb2FkMS5pY2FvLmludC9DUkxzL1VOTy5jcmyGKmh0dHBzOi8v
+cGtkZG93bmxvYWQyLmljYW8uaW50L0NSTHMvVU5PLmNybDB/oH2ge6R5MHcxCzAJ
+BgNVBAYTAlVOMRcwFQYDVQQKDA5Vbml0ZWQgTmF0aW9uczEiMCAGA1UECwwZQ2Vy
+dGlmaWNhdGlvbiBBdXRob3JpdGllczEcMBoGA1UEAwwTVW5pdGVkIE5hdGlvbnMg
+Q1NDQTENMAsGA1UEAwwEQ1JMMTArBgNVHRAEJDAigA8yMDIyMDYxNDE1MTUwOVqB
+DzIwMjgwNjE0MTA1NzA5WjAfBgNVHSMEGDAWgBQGVLK4ZOx4qkZ1+REGNOzawqW0
+rzAdBgNVHQ4EFgQUBlSyuGTseKpGdfkRBjTs2sKltK8wDQYJKoZIhvcNAQELBQAD
+ggGBAAqpN34ueb/PyXQ47YhrEYkJ6fcTznCi9k/zA6iHc69FB6lV0lBEmvfqhSsF
+ra+PC20QXgPnhe8pr0jD4SKNRO39S6Etsudo6xc77ZZiYkS11pWKBrNE3JKP9ZwP
+aYH2WnnloKb07xqA691SlbmM1mqtF0wEESl1jNRYW5X9/Wb2kHEOtdJmh5/rYsct
+/ALskBrdVp2Yu/p1Xr3xIDRY8PAyMTe2cFhC0l8pTwRtYud7dbhY0vd0oipSuULC
+LlCDykKrOqyMQJyNM4HkXlRdSI3cdfcqpOOecWuz4sfC3Echo7M6VzvPnNdlYhST
+uToXCL8Ht775dZHxkdaz/1UXkgaFCwUkorsAEH+vvQflKFkVkIpkNV6dk/yD5Hna
+j1ZBsHRFJC8CV5fXsNBkEwWsLCxthEsdt8qkrKJDHpSEVho6TcaZ0EDqr34r/mpS
+RdLvn5ind7ve8BLAxSgJ4HQn7KU0AxUDdQ4ZKWCbucJTY2b6Z1qZR1fecIoRQsXH
+9dbERQ==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGYTCCBEmgAwIBAgIESVg+/zANBgkqhkiG9w0BAQsFADAyMQswCQYDVQQGEwJS
+TzEMMAoGA1UECgwDREdQMRUwEwYDVQQDDAxDU0NBIFJvbWFuaWEwHhcNMjMwODA5
+MTAxNzUyWhcNMzkwMzA5MTA0NzUyWjAyMQswCQYDVQQGEwJSTzEMMAoGA1UECgwD
+REdQMRUwEwYDVQQDDAxDU0NBIFJvbWFuaWEwggIiMA0GCSqGSIb3DQEBAQUAA4IC
+DwAwggIKAoICAQCx7pcjx8hbFEPW33WQ1TjLujqie6kd7JBgzx3vNcQzTu2YiLSS
+HL2EMLUlrDUelx3oXwl1ISTJvWO2lCCdQXQnXD0XlgW5FgzEcHPVn9uokrJZzwtC
+7RNboGRNBh+3Pa+x/a5d1tpUb5a/n4mv6NTYSfLwrGfcWNbI9Bnd9KKq81E+vJPG
+kvhbVnzzaBCjoWhJs37J0Mh2wUqzZIfhxpSxaM/SZ7HeP8vNj3eqJbOIEKJA8gRC
+5VubLVcpMhhbuurPdoqOt6l4D1HvLzqjW8Kr4Y4FAFiOEb5KG/YCW5GLYJOzW57X
+X6DtdwFHneOEmhQXB6bzCipQYIvmiCy2Y8U2JQh1dWPiSc6A/ZiYQHle1SN5T2+W
+enySCnEMJ2psz6qDGslEMykpvXYofAfFPFcca0jWvl9+hKeIPvdDoOgnTNfbnGMh
+e6qMgqft73dObOxFjyulh3rxHb4G9HiDWjoa0Xx555HkTDg/qUGasYFILPCtbvcD
+AQV3cn7TIQ77VpKmpJSgNyjdVlWc3dmpO+lP7kS9GGHQhLZOzBKJYrk+V13ZJeHM
+97YaE0MAN1ymL/SB1pSaT3+JBGnsEGKeBsUgWnZtA/aQdr5snMrRrTM4JL+SXh8C
+6UAhnns3kJ9+gBBETqnpI61V/KArJBnRvbCzQz53ZWWtaUe8G0GjJRizhQIDAQAB
+o4IBfTCCAXkwEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAQYwVwYD
+VR0SBFAwToEOZGdwQG1haS5nb3Yucm+kEDAOMQwwCgYDVQQHDANST1WGKmh0dHA6
+Ly93d3cucGFzYXBvYXJ0ZS5tYWkuZ292LnJvL2NzY2EuaHRtbDBXBgNVHREEUDBO
+gQ5kZ3BAbWFpLmdvdi5yb6QQMA4xDDAKBgNVBAcMA1JPVYYqaHR0cDovL3d3dy5w
+YXNhcG9hcnRlLm1haS5nb3Yucm8vY3NjYS5odG1sMCsGA1UdEAQkMCKADzIwMjMw
+ODA5MTAxNzUyWoEPMjAyODA4MDgxNjM2MTJaMBMGA1UdIwQMMAqACEgcRDUgEyz2
+MBEGA1UdDgQKBAhKbskwbwPuYzBMBgNVHR8ERTBDMEGgP6A9hjtodHRwOi8vd3d3
+LnBhc2Fwb2FydGUubWFpLmdvdi5yby9jc2NhL2NlcnRpZmljYXRlL2NhY3JsLmNy
+bDANBgkqhkiG9w0BAQsFAAOCAgEAv3lolsO37TXros819Uw2sHu424v2ZtlzeejT
+jZIMvS92ssmy37tB1ehZhgU1k9EDaZb4DoP8dwdH2I7+bQaQEsdbBfWfe/x0IAL0
+XcHgIFcExAS9uliaAs/aX1ookXNxvJ613PJe4dduJ2XBCBoHrMEtbz0DrasBcF83
+y7OdMZ4xRkSOK1s6Lbkw5NYlhdMOVkdzpaets7JXuqbNDN/toSu7RRoiVp2wvGuP
+T4/GhMjE47JtectUTJd+epXyRgCXHacOTOsJ2f4eyKBcbggwD3fWje84uSQqZwHI
+lEHwpc1mkrgNXABzjssthHDYxBZFz7Jdyj0OOk9gtaNuY3QlWt0xgRolEd8VtFEr
+bb2QLtsnD6KLY2Qk11JCoeRcwELb1/hNDjEY+Th5v9iaqqk9D0sjdjh13SZ8CfHS
+ISDpIv4jCwloAQxLYMRwG4NrqIZieRSjZpxnr2/PdChNX7JzGjYsTP4jOAyVxVsT
+VsTe2mA3zCy4mEHod7sznXPOd6l9sBWexVJZsVvAW0tNDBpwd0pwhMCjagMZ9Ucs
+e3nvDuHtTPXV7N+AYiad4/9Vfa1/cOoIi+CCf5UfQE6BF4QK11gMwdBeTULE2qTK
+4AhGaIBAWo95LPb46wWIWwzIpF8J0UqKuaQlKIl0ioidTQFwP09m5tEyPtscivDM
+5ym2KNw=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGbjCCBdCgAwIBAgIDAIhWMAoGCCqGSM49BAMEMIGiMQswCQYDVQQGEwJUUjEw
+MC4GA1UECgwnUmVwdWJsaWMgb2YgVHVya2V5IE1pbmlzdHJ5IG9mIEludGVyaW9y
+MUIwQAYDVQQLDDlHZW5lcmFsIERpcmVjdG9yYXRlIG9mIENpdmlsIFJlZ2lzdHJh
+dGlvbiBhbmQgTmF0aW9uYWxpdHkxHTAbBgNVBAMMFFBhc3Nwb3J0IENTQ0EgVHVy
+a2V5MB4XDTIxMDMwNTA4MDcxOFoXDTM0MDYwNTA4MDcxOFowgaIxCzAJBgNVBAYT
+AlRSMTAwLgYDVQQKDCdSZXB1YmxpYyBvZiBUdXJrZXkgTWluaXN0cnkgb2YgSW50
+ZXJpb3IxQjBABgNVBAsMOUdlbmVyYWwgRGlyZWN0b3JhdGUgb2YgQ2l2aWwgUmVn
+aXN0cmF0aW9uIGFuZCBOYXRpb25hbGl0eTEdMBsGA1UEAwwUUGFzc3BvcnQgQ1ND
+QSBUdXJrZXkwggJFMIIBuAYHKoZIzj0CATCCAasCAQEwTQYHKoZIzj0BAQJCAf//
+////////////////////////////////////////////////////////////////
+////////////////////MIGHBEIB////////////////////////////////////
+//////////////////////////////////////////////////wEQVGVPrlhjhya
+H5KaIaC2hUDuotpyW5mzFfO4tImRjvEJ4VYZOVHsfpN7FlLAvTuxvwc1c9+IPSw0
+8e9FH9RrUD8ABIGFBADGhY4GtwQE6c2ePstmI5W0QpxkgTkFP7Uh+CivYGtNPbqh
+S1537+dZKP4dwSei/6jeM0izwYVqQpv5fn4xwuW9ZgEYOSlqeJo7wARcil+0LH0b
+2Zj1RElXm0RoF6+9Fyc+ZiyX7nKZXvQmQMVQuQE/rQdhNTxwhqJywkCIvpR2n9Fm
+UAJCAf//////////////////////////////////////////+lGGh4O/L5Zrf8wB
+SPcJpdA7tcm4iZxHrrtvtx6ROGQJAgEBA4GGAAQBA4/bJ2e+LN2ZhmHE0KsA32Ld
+tzNmGyoinLuc/yQScpEFh3LF2yuthe5OK0UKWjmbJ+Xi9uFDLqxeR2U8i5WCzDoA
+bL+G4WOUPQ6V/qPe6lxbSpsB6P6UIUWWMix6GimoWxLeinqtpQZSsLpgsldOWfi1
+qiwR6txYextP9mEQau0IKOajggIDMIIB/zAfBgNVHSMEGDAWgBSHH2a+4ljxkN8b
+Uts80OPFjUUN7zAdBgNVHQ4EFgQUb5u7xp7s2tm8MelQ4R7QygAiBZYwDgYDVR0P
+AQH/BAQDAgEGMIGEBgNVHSAEfTB7MHkGC2CGGAECAQEFBwYBMGowMgYIKwYBBQUH
+AgEWJmh0dHBzOi8vcGFzYXBvcnQua2FtdXNtLmdvdi50ci9DU0NBL0NQMDQGCCsG
+AQUFBwICMCgMJlZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9u
+MAwGA1UdEwEB/wQCMAAwQQYDVR0fBDowODA2oDSgMoYwaHR0cDovL3Bhc2Fwb3J0
+LmthbXVzbS5nb3YudHIvQ1NDQS9DU0NBVFJfVjIuY3JsMFMGA1UdEQRMMEqBFnBh
+c2Fwb3J0QGthbXVzbS5nb3YudHKCHmh0dHBzOi8vcGFzYXBvcnQua2FtdXNtLmdv
+di50cqQQMA4xDDAKBgNVBAcMA1RVUjBTBgNVHRIETDBKgRZwYXNhcG9ydEBrYW11
+c20uZ292LnRygh5odHRwczovL3Bhc2Fwb3J0LmthbXVzbS5nb3YudHKkEDAOMQww
+CgYDVQQHDANUVVIwKwYDVR0QBCQwIoAPMjAyMTAzMDUwODA3MThagQ8yMDI0MDMw
+NDA4MDcxOFowCgYIKoZIzj0EAwQDgYsAMIGHAkIBiUL6K1EE9BeF3YSO3SMtz8ON
+YwqOy8KVQupeBfdo9rBS5RpVs62CUqyJF2XOoCdw5qd8yQQB5yfVvXEJWYGTMLAC
+QTsqOEFitq+sTnC0bMQqpvQmTFG3/1DRhbWQjKO9Ma934lli2yhspG46do8uvWdY
+0lzUFE6vWT09ay3GPEDwJlfY
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGczCCBNugAwIBAgIEWZbsjTANBgkqhkiG9w0BAQsFADBoMQswCQYDVQQGEwJV
+TjEXMBUGA1UECgwOVW5pdGVkIE5hdGlvbnMxIjAgBgNVBAsMGUNlcnRpZmljYXRp
+b24gQXV0aG9yaXRpZXMxHDAaBgNVBAMME1VuaXRlZCBOYXRpb25zIENTQ0EwHhcN
+MjIwNjE0MTUxNTA5WhcNMjcwOTIyMjExOTEwWjBoMQswCQYDVQQGEwJVTjEXMBUG
+A1UECgwOVW5pdGVkIE5hdGlvbnMxIjAgBgNVBAsMGUNlcnRpZmljYXRpb24gQXV0
+aG9yaXRpZXMxHDAaBgNVBAMME1VuaXRlZCBOYXRpb25zIENTQ0EwggGiMA0GCSqG
+SIb3DQEBAQUAA4IBjwAwggGKAoIBgQCsgw5qSCt2GW7ktzIXXKM9YOZFYKtYRWAt
+Yrej3ajLxi4+YQYJs4vSH+OumKfc2onO9G4ZPwOClOqS4SMKrjFuzzHeohIsErJA
+15ETrbGff2D1cOFim7VXwWN8QLdEikq548bn3XuhXVv+2WfkxJMFSqGx4f8r8Jiv
+J84UaWOKOJSJkQAUNIfSeg+EbjWLbNECi82+PXSIPY8b/gvyY6wTHy20BzmNvAJ3
+l5Kck5PdQcOXjfUmtn8StzxqKY7KuxsnSJE/hGs0oJGc8MFw0K1gh8czx+rbRWQd
+bJLD2qr1J8p22qwhvZfrY/r3hJw4gT2mZ433VejCxKzk6escotY6YTwhnpkGOTCX
+svaVZ23L/jz27E714HtqAS5Z42ak8xnK1Jl/FwvGmwPYKrSKqSdMLs4NiX5ar3wF
+oKQvYtNLkwF+s6FhiiIIgPG6pVpFT8+cIoRPBYr+HHPHvbyNiJJshuxC0Bi39uai
+9khHykBtABnEYb1y2V5wT1UJFkhkJQECAwEAAaOCAiMwggIfMBIGA1UdEwEB/wQI
+MAYBAf8CAQAwEQYDVR0gBAowCDAGBgRVHSAAMA4GA1UdDwEB/wQEAwIBBjAqBgNV
+HRIEIzAhgQ10cmF2ZWxAdW4ub3JnpBAwDjEMMAoGA1UEBwwDVU5PMCoGA1UdEQQj
+MCGBDXRyYXZlbEB1bi5vcmekEDAOMQwwCgYDVQQHDANVTk8wKwYDVR0QBCQwIoAP
+MjAyMjA2MTQxNTE1MDlagQ8yMDI4MDYxNDEwNTcwOVowHwYDVR0jBBgwFoAUp3Wv
+ZLRA6N04by8AIoDs7dGdG5cwHQYDVR0OBBYEFAZUsrhk7HiqRnX5EQY07NrCpbSv
+MIIBHwYDVR0fBIIBFjCCARIwgY6ggYuggYiGLmh0dHA6Ly91bm9jcmwubWFuYWdl
+ZC5lbnRydXN0LmNvbS9DUkxzL1VOTy5jcmyGKmh0dHBzOi8vcGtkZG93bmxvYWQx
+LmljYW8uaW50L0NSTHMvVU5PLmNybIYqaHR0cHM6Ly9wa2Rkb3dubG9hZDIuaWNh
+by5pbnQvQ1JMcy9VTk8uY3JsMH+gfaB7pHkwdzELMAkGA1UEBhMCVU4xFzAVBgNV
+BAoMDlVuaXRlZCBOYXRpb25zMSIwIAYDVQQLDBlDZXJ0aWZpY2F0aW9uIEF1dGhv
+cml0aWVzMRwwGgYDVQQDDBNVbml0ZWQgTmF0aW9ucyBDU0NBMQ0wCwYDVQQDDARD
+UkwxMA0GCSqGSIb3DQEBCwUAA4IBgQBCfWFuEM4vHK41xRUjstUm4NQf0pvl5AUG
+m9O6VZorEchJMkC2chEpGz3ifHpxA4M7W+KyAwhXQNmSn8hjsiMIVUTPLQFYFbvE
+9zWnxIjMGzjr9VSB7r7kZgG1J9oOO7ErZLzE24aaSMpbxO3tvoPs0L1exbVUitsK
+NWzkZ7CKSxFuc/YP4v0u5eFsouAaOeEUX/QlNiIx6tAODh54tpQkBQIYkF8wL3lt
+Nq7xonm89cDwZIA3txl9+rGV7Zec0BAGxUMRDFZKhLhaIjHjy7in8LJ0jWIW8Sn7
+cHGqmHGm2sZOnjmx+XEPAAY+6uyv3eioVQ78cpxJekmZUaCHse9WiO+QHkeV3alw
+jUf9e+rTk56ONI0suzKrCw/SlGbtBUTN6PA+azjS6DpaevBWy83xc9KeD7rcZL4n
+RCzIVEZCeQb6mBzgkSohZOy4XlrdbI2GZ6KcgHFtuKzBbbebJCLlIsAPFnvibe2c
+Cy5tVxXNRJg4UYJ2OiBC0o58RnUoDA4=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGezCCBGOgAwIBAgIFANg2iP4wDQYJKoZIhvcNAQELBQAwVzELMAkGA1UEBhMC
+c2kxGzAZBgNVBAoMEnN0YXRlLWluc3RpdHV0aW9uczETMBEGA1UECwwKZS1wYXNz
+cG9ydDEWMBQGA1UEAwwNQ1NDQS1TbG92ZW5pYTAeFw0xOTEwMTgwODAxNDVaFw0z
+NTA1MTgwODMxNDVaMFcxCzAJBgNVBAYTAlNJMRswGQYDVQQKDBJzdGF0ZS1pbnN0
+aXR1dGlvbnMxEzARBgNVBAsMCmUtcGFzc3BvcnQxFjAUBgNVBAMMDUNTQ0EtU2xv
+dmVuaWEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDKkBhDfOF5hP6o
+kiXnJoIuy6cFMS4LpctMry8j+Oi+ebRfsQ0muJ6hXjawTyp37xlGPoRVs8hVPFPU
+BT6dLfVOY0Knw2MxmFnRjui0ts96veYTNwZ8AnOLYS7dJm8HN+NXeM7PaCZX7FbF
+CO1ff1VvZg7dc9rApxAv5LI0eS9WBqRj/9FAhEMlYACKY5tm1jE9gljCl0sSH6fi
+JZn8TqAHyAyEQvivnrW2DpVt2UNI5apCFmbdxMF/zDins2C0MYvzKkFruJ0bUmsM
+E+pFfacWVepb0ldtYjITZli5Fk6w5O4FJ7W7C9agfWwtwtEr+OfxpAtdiQEXFwIq
+iSRBwpeE4PuufBrqtiNoLJPzx0LgKVgNFT7rraY9TU68+GA8bYovRHfWyncVGeA2
+Ros6hGJyYzmF7Tzy5NAZVPkeYLBArmq1qQLCBpsJFKJepvQp/ihRuOzr8kdjGdLN
+pNbccgmK+dIfRqBwu+w9ZnxD5lxMJgxXNOsgwRKuyo9seZ1MnefZ7oybQL6gaTBS
+od3zAE5er+tLk/vG7Wx72ic0JdHfhg9AyVdh460vqcF/THkdf3jEncEcHemDOHPT
+AJiylId6HtmtLFkbaY+Gtxz7DpNs2vIR94OkTO17CNGyNWwWgGdG4t19CcoTmS1s
+rsM+jat95DCi6LDya+L7w5ps25JCLwIDAQABo4IBTDCCAUgwEgYDVR0TAQH/BAgw
+BgEB/wIBADBLBgNVHRIERDBCgRRjc2NhLXNsb3ZlbmlhQGdvdi5zaYYYaHR0cHM6
+Ly93d3cuY3NjYS5nb3Yuc2kvpBAwDjEMMAoGA1UEBwwDU1ZOMEsGA1UdEQREMEKB
+FGNzY2Etc2xvdmVuaWFAZ292LnNphhhodHRwczovL3d3dy5jc2NhLmdvdi5zaS+k
+EDAOMQwwCgYDVQQHDANTVk4wKwYDVR0QBCQwIoAPMjAxOTEwMTgwODAxNDVagQ8y
+MDI0MTAxNzE0MjAwNVowEwYDVR0jBAwwCoAIQz3lDj/ssscwEQYDVR0OBAoECErU
+ciFdXodEMDYGA1UdHwQvMC0wK6ApoCeGJWh0dHA6Ly93d3cuY3NjYS1zaS5nb3Yu
+c2kvY3NjYS1zaS5jcmwwCwYDVR0PBAQDAgEGMA0GCSqGSIb3DQEBCwUAA4ICAQAA
+pwMRp+Z91lxfdJMsJ7q5f3g1Fsg/zbSd5n3wF4/hZ2egvZR9kTxx1PsyXOiXqsHM
++lWcfu74rKYyDGrMv6Xa421qmbj9Jrp/1vpUnd7lllmLHUZxhQRmz6wWmePIhAzg
+93q+UzTIi/wwazks982nNxnxprk7+nh/Rf0JVJTnjTtYOCvGAvX/xWLLclOWGUSp
+McxPJ77SPicxSheRugQVl3hQje2fyYcUdSOP55SoBBnPofxgSaQvOEFaftH0KO5Q
+rWbKdPU27SoyPJ4XssyvS2s+VGtKYgk6N0buYuFKByGQ6jBb1WX7jJyx3Or/MFgb
+HjzlEa3S53/k5BMV5AtepOvv703O8NWLl6mDWkG0VLHGo+cqBjctVJJaqfEGn8HK
+oDUwadUjfJxQrLMoZ8lsprzM1EtWYMolruXvaJuOos6VUxULNSs0yNOc6DCeS8Bl
+klIfVJyn8kKJh/v+92suRvq1OqnEyttl5kIl3xL5QXuOruY8gkO6VW1X9ooiBw4x
+kETee9J/S8MMIvKnNG8BZwGtZ1izs2AdVngZi0fu1BXerMFAKEVEXocT17vWGS83
+a9wNwasCVO8CcMRMbEYmhQRHSUhzdwcEBThlrhhzLunBQKqFjMuPY3NpCnk9vsZe
+Uz7UTDrsp6lO8N+U4u3VGQD5JERdrsH37FF0K5MmXw==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGfDCCBGSgAwIBAgIEF8fmSDANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMC
+SUQxJTAjBgNVBAoMHERpcmVrdG9yYXQgSmVuZGVyYWwgSW1pZ3Jhc2kxPzA9BgNV
+BAsMNkRpcmVrdG9yYXQgU2lzdGVtIGRhbiBUZWtub2xvZ2kgSW5mb3JtYXNpIEtl
+aW1pZ3Jhc2lhbjERMA8GA1UEAwwIQ1NDQVByb2QwHhcNMjExMjA4MDc0NDA1WhcN
+MzAwNjA0MDc0NDA1WjCBiDELMAkGA1UEBhMCSUQxJTAjBgNVBAoMHERpcmVrdG9y
+YXQgSmVuZGVyYWwgSW1pZ3Jhc2kxPzA9BgNVBAsMNkRpcmVrdG9yYXQgU2lzdGVt
+IGRhbiBUZWtub2xvZ2kgSW5mb3JtYXNpIEtlaW1pZ3Jhc2lhbjERMA8GA1UEAwwI
+Q1NDQVByb2QwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDxYEB2Zwr7
+w2/PKrzm7KrstxSREj6QvB9YFdglyUeruOsd/aah8pd9gOcnkhyDi8t2Pf17zXm4
+YUDKHS/5cfAyEGC+Nr0sSxHLELtBofzlB/zWfzGTLka2fcnghWGNOwE/LP4PqRr/
+cbBunS9sl03rjlB7CXruhkiCzuguhxbd2Kb/FHDSyIsQ17uXf0ilIV1yakxI25X4
+sYjCIIKFot6fnelH+Z/RzcVXeq3xvbbujy8OeYXsQ7Mz3CXcXzIjvOgG/pSi2lFO
+UxWFffVklPtSOHgRoWpxEHE75RfuQVCngDd12PdOHgqqkRgC8btZ+I8qoS6FJLm1
+MBhEXW93YcS9KeqEeQ44+wmpleOxqgQ1gZ+TjnB2ma9L5Xs5NwWSJXqqMDskUW2I
+8QuAAUj3ZanfVHAZF8e66ZpPsr852XDzAp1fToMADccwn6y1G9CtvWkb+t4FnQ60
+GHFM78GeYq5rLC8pIBrf2BktROT912JNE/Nd49UTL20A5e2q43Mo3fmg3aYBHrEp
+5nmoD1vhKWaVOr8FpyhUCx4nl1KBipXBfhnyr/kBzc+3rGfyQM2dQwUGvqFQpQBx
+76oZp3KSoyqTwRx9P+dZOcqMIC6bCsv91+hmRcInjsykLMsB0O527z7+cUurBiu6
+Qy+HU9Sw7BaZnMWAZsiMlGBMjeXCLty5qwIDAQABo4HrMIHoMB0GA1UdDgQWBBR3
+Yjs30JzW+50spXCnPuiOd9YEWTAOBgNVHQ8BAf8EBAMCAQYwEgYDVR0TAQH/BAgw
+BgEB/wIBADArBgNVHRAEJDAigA8yMDIxMTIwODA3NDQwNVqBDzIwMjQxMjA4MTY1
+OTU5WjAqBgNVHR8EIzAhMB+gHaAbhhlodHRwOi8vd3d3LmltaWdyYXNpLmdvLmlk
+MCQGA1UdEQQdMBuBGWRpdC5zaXN0aWtAaW1pZ3Jhc2kuZ28uaWQwJAYDVR0SBB0w
+G4EZZGl0LnNpc3Rpa0BpbWlncmFzaS5nby5pZDANBgkqhkiG9w0BAQsFAAOCAgEA
+3/gcrluFgr+bx/yfvYRMHC9YERG3hN83JscnojMCIenjLHVCHRcAOPkUmlXOANhE
+pLfzAHP0VqwmG3ePuIpUImg6EwcIxyJucm//XJzGb/Gk7pM8Xx213Qf6XOCFssGM
+XjzpnMYLDDJ8iSbbCJWXDAS7sSKE4aAE8KapT+3uc8CbdS7xnOJsZui+DVmaj+Rw
+7DUftpabBEKTwjr5slpwBqN4UPOb/7De4ocS1kocpb7t1AdmiDDs++0Ei6Db00zB
+JEYDxXg8upmnue11O6vsixgWowul7lZLAKao8vggtvb6VcTa5ZvMexcTLKMcqieY
+mlM/z8zSqJ/f0UHuB/WNdp9X2Q6loJJpOjasy+l12dgOPI58451PlRoDHO3exJAM
+hjs0qfWXKJb3tPmwHnOEnX0IsNJOWvRQk7aC6oykbiXd4viaatFVIg84Yu4mECrH
+lJVLoQfMmExiPoZb98cbqktD5VOOAZ8odR7cgPdznaIu4R0ABVch0ZIKnFIDBTLn
+zSsYPEu1Feo5DiKw8wbvUWlk1BZmLcO1d/604qnyzZgX+kTrrKbQycDSemoAmKHG
+Of0gpt/qchuAFJugzeZv3VEjIN6QecdlE4Di7gLNpozwZHIOHuTw9J33UblheJlG
+R46ULcQdxjKdvwb+jZIpA0MoUgcZ3mX4pJMPdobMFXM=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGfjCCBGagAwIBAgIIENCCcxdgVM8wDQYJKoZIhvcNAQELBQAwgYgxCzAJBgNV
+BAYTAlBUMTMwMQYDVQQKDCpSZXB1YmxpY2EgUG9ydHVndWVzYSAtIFBvcnR1Z3Vl
+c2UgUmVwdWJsaWMxHTAbBgNVBAsMFElDQU8gTVJURCBQS0kgLSBDU0NBMSUwIwYD
+VQQDDBxFQ04gRG9jdW1lbnRvcyBkZSBWaWFnZW0gMDA1MB4XDTE5MDYwNDEwNDE0
+N1oXDTI0MDgyMjExMjI1NVowgYExCzAJBgNVBAYTAlBUMTMwMQYDVQQKDCpSZXB1
+YmxpY2EgUG9ydHVndWVzYSAtIFBvcnR1Z3Vlc2UgUmVwdWJsaWMxJzAlBgNVBAsM
+HklDQU8gTVJURCBQS0kgLSBDU0NBIENyb3NzbGluazEUMBIGA1UEAwwLRUNOIDAw
+NS0wMDYwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDVBAkXbSwXJaEn
+QTb7E41zf4oXI5oC3+Fs78kYWf18gwTQ02+n0vUmoQnigKimcIsPYb/nU3ff8K5R
+VSK/V3XAkwU7+NdsogcchIs8LqDmGH4QyFhWDEOcnQuWLNMmBKyRvqXE7O2D9QTp
+z1P7YYjQL/VtU39o6UiLZAAnsR5U2COcD+9pCwsUOeimy3NO/XKSMwjg1taS9u3/
+JmboCnONVFTx4auSAHajiyu/MQfgmEA2osMFWhb/zPIDbsS726QQuCG5piYmSri/
+ss5Z6KwvVVXWBfGw+cBtwECfJYIE9vRqXkN2ed0XuxkeScNbS7Evsmhs14HPFtps
+cMY3ke7jkcP7oPNYqu1yaat1AIwA0U8/F4hI0+Z49Zc1Eb6yy+rveKs3qLPGpJXK
+1JPt31JW80bqW7rxGBmnt/g/SmBimDJ8i9W3HYc++7/l3cxlPej9/0E6C61iTncE
+SoV+8LgwhEXBIiDKdhKCGbpoYM9fY+9IYjUG8nq5iOLejcV0VgooIHVRw9nNBokS
+GsqFSv3BZMW+fiK+xikgkdC3slXnEBD6PVmaNdFBBS63BhCPa4BU4vzyMEmiBYZB
+ZDfVu3jyV+0tcEiMZUoPoKBCK3tY7GkVEqIAjEDLqqs0NjHTG+f3u+BsxrzbSXRd
+Yd7MjbHCHhZesGMT/UN69dYr9xm3jwIDAQABo4HwMIHtMB0GA1UdDgQWBBTfQ8Se
+X9uGTE0wTSIy/pb45p9gmzASBgNVHRMBAf8ECDAGAQH/AgEAMB8GA1UdIwQYMBaA
+FCP1F/DjT2o4Xwhy3jmyNrVeTOvwMBoGA1UdEAQTMBGADzIwMTkwNjA0MTA0MTQ3
+WjA8BgNVHSAENTAzMDEGCmCEbAEBAQMBAQIwIzAhBggrBgEFBQcCARYVaHR0cDov
+L3d3dy5wZXAucHQvY3BzMC0GA1UdHwQmMCQwIqAgoB6GHGh0dHA6Ly93d3cucGVw
+LnB0L2VjbjAwNS5jcmwwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBCwUAA4IC
+AQBbn/bjScKyj4uZDp1+4P2oc/LE5r9ZgKrKXQKeyTXASeBp9RsbgfgVS7JmYNw3
+2wBfHz2/NIytz4/vP+1wTj/QS+JE430avfqpXy24e1zlFVhznIeAJ9XdcR6Yizm3
+KWpOR69VcfRg2DG3wZU5Gaa58zDbPL61GS0RJYpUI67hTJZf08UTP0iqnEYqnqDW
+f8Ijg1Wf0MACJ1a8lS3uIGq9tLx1bcVegK7SkqnazE/uct/8rNbr8tAsgfM1mwGE
+CJq0WqwLTF585WKquydGl/cKNN61UvfWMWJszG0QNf26IWE+MclpSO/dYSrO4o5m
+0nSf3iyj4+v9EctxVqScZTB0wIXNyMoDbsBtnCikBvrC1f6es+eZkAEK+Ufateuj
+37205smB1bgMNQy2R5YjgSjsqUzHkdMqR4DeVHL85bLlTZTQrdfmOlwMyg93HQEM
+ljXIvXFSN70LkpRbuYpgu6EotVK43muaNWumTfAC/RmHEyD48GPvblnSDXWlmJLW
+fskXJsIRE0y6D2K7xbdqnjAUjKvmo58muQ3QghidL1mFPqplw2qps9MwuR73yaEb
+hAalDCkTJQEm1HWD4aD8SQk01mV0qEin+0xTb9LNgHJh0ucVObd8kWsNopQl/Xfw
+FB5eMrZt0QJn+DBYcCcvTLw9/cQH/eMrgkmzhWlNFuc7DA==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+/2enhd2g
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+20kPvYUVhSA0AhJUYg==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGnzCCBIegAwIBAgIEY/vaQTANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMC
+SUQxJTAjBgNVBAoMHERpcmVrdG9yYXQgSmVuZGVyYWwgSW1pZ3Jhc2kxPzA9BgNV
+BAsMNkRpcmVrdG9yYXQgU2lzdGVtIGRhbiBUZWtub2xvZ2kgSW5mb3JtYXNpIEtl
+aW1pZ3Jhc2lhbjERMA8GA1UEAwwIQ1NDQVByb2QwHhcNMjExMjA4MDc0NDA2WhcN
+MzAwNjA0MDc0NDA2WjCBiDELMAkGA1UEBhMCSUQxJTAjBgNVBAoMHERpcmVrdG9y
+YXQgSmVuZGVyYWwgSW1pZ3Jhc2kxPzA9BgNVBAsMNkRpcmVrdG9yYXQgU2lzdGVt
+IGRhbiBUZWtub2xvZ2kgSW5mb3JtYXNpIEtlaW1pZ3Jhc2lhbjERMA8GA1UEAwwI
+Q1NDQVByb2QwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDxYEB2Zwr7
+w2/PKrzm7KrstxSREj6QvB9YFdglyUeruOsd/aah8pd9gOcnkhyDi8t2Pf17zXm4
+YUDKHS/5cfAyEGC+Nr0sSxHLELtBofzlB/zWfzGTLka2fcnghWGNOwE/LP4PqRr/
+cbBunS9sl03rjlB7CXruhkiCzuguhxbd2Kb/FHDSyIsQ17uXf0ilIV1yakxI25X4
+sYjCIIKFot6fnelH+Z/RzcVXeq3xvbbujy8OeYXsQ7Mz3CXcXzIjvOgG/pSi2lFO
+UxWFffVklPtSOHgRoWpxEHE75RfuQVCngDd12PdOHgqqkRgC8btZ+I8qoS6FJLm1
+MBhEXW93YcS9KeqEeQ44+wmpleOxqgQ1gZ+TjnB2ma9L5Xs5NwWSJXqqMDskUW2I
+8QuAAUj3ZanfVHAZF8e66ZpPsr852XDzAp1fToMADccwn6y1G9CtvWkb+t4FnQ60
+GHFM78GeYq5rLC8pIBrf2BktROT912JNE/Nd49UTL20A5e2q43Mo3fmg3aYBHrEp
+5nmoD1vhKWaVOr8FpyhUCx4nl1KBipXBfhnyr/kBzc+3rGfyQM2dQwUGvqFQpQBx
+76oZp3KSoyqTwRx9P+dZOcqMIC6bCsv91+hmRcInjsykLMsB0O527z7+cUurBiu6
+Qy+HU9Sw7BaZnMWAZsiMlGBMjeXCLty5qwIDAQABo4IBDTCCAQkwHwYDVR0jBBgw
+FoAUL9s6XWCZmsXXaV9TJ5h7W6spyU0wHQYDVR0OBBYEFHdiOzfQnNb7nSylcKc+
+6I531gRZMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/AgEBMCsGA1Ud
+EAQkMCKADzIwMjExMjA4MDc0NDA2WoEPMjAyNDEyMDgxNjU5NTlaMCoGA1UdHwQj
+MCEwH6AdoBuGGWh0dHA6Ly93d3cuaW1pZ3Jhc2kuZ28uaWQwJAYDVR0RBB0wG4EZ
+ZGl0LnNpc3Rpa0BpbWlncmFzaS5nby5pZDAkBgNVHRIEHTAbgRlkaXQuc2lzdGlr
+QGltaWdyYXNpLmdvLmlkMA0GCSqGSIb3DQEBCwUAA4ICAQCiEpcb6lOWyaFfXv+P
+QH2dDzgNjJyzXAFtcfyKkLOlZ4QeJG7RemGJE9tIkAend0rwhySWLmzzAVW0f5Fy
+TjfIiL/PzvTvmwzqpBLVBepu1F8VHzzWFt9HSMtrBKFZOamW+J9EKzgfhaUatGx7
+m7SsBdcIcnJX9OKKwgLQhkXDNSwoOVWQ96Qc7itTmxfOp2I0koaKbYCDMjVW37mG
+mo3G0Y34iwBf2TuXjC0PW2yWeMfxSythJFI6dwbOLpJJBs6K8zYcC0sqEXtqsO2Y
+Sl96lwXMclW9ijsxerADVGnpjX5/P7bS/uEsYzMtqzZJab7IMiLLgG5pbFOPP0GL
+6iMzDWxCOZE/JgBUpybFRRvbsCTgwrOPxeV10eYJrI8JGilI5LhZDyBkjVjf5NFQ
+vBFmy9MjpQfrDoU6WM07HKgpj5YBP496/JxOixvMVuu11l35a/eJdPYsYbIjmdTV
+XnJKvnouW7RmtUwxL2HOMR+JC0ASjtsRvQ9nl/Gm6zEKNaU9uqXmaCmTuxwvU0zE
+5e8hweG+2vk30r1BqDiErhRwAZb4nwsrbxTANFQpiajBdVnjZl4mM1X96O+nuxZh
+fLJnoMPpevQe+obWxSaWAX9HpgXh26rYpowZ4EgFrXXQf0fUmR6fAKKs439s6KLm
+IK/oSqCiXf1YRJdF+5dDeGnQJQ==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+p59GY8zPJrqCEvKeuy+bVD5+/jI0cw==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGtzCCBGugAwIBAgIEAgAAATBBBgkqhkiG9w0BAQowNKAPMA0GCWCGSAFlAwQC
+AwUAoRwwGgYJKoZIhvcNAQEIMA0GCWCGSAFlAwQCAwUAogMCAUAwPDERMA8GA1UE
+AwwIQ1NDQSBNS0QxDDAKBgNVBAsMA01PSTEMMAoGA1UECgwDR09WMQswCQYDVQQG
+EwJNSzAeFw0yMDEyMjMxOTU2MDJaFw0zNjAzMjIxOTU2MDJaMDwxETAPBgNVBAMM
+CENTQ0EgTUtEMQwwCgYDVQQLDANNT0kxDDAKBgNVBAoMA0dPVjELMAkGA1UEBhMC
+TUswggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCZCCFRIw2BECGE6HLH
+9dHAEW0LfaNrNpnW+oKA218mvNM5cCo2uRkeJSBHKAmJGJbIYto1qiBpbm6XSVmA
+zV1iuoiLGdxE99Wfx9Jzmu5lIqxhUxSr52pDSXCUbOE7mY5PQVIvt6Pn5I6gtdSf
+j7OZ+9xPYZbWM7YO0vL2YB42khAOLtjpS2GBJEltzsXnIUWrqEUA4VigkpvmPuUX
+Yj7hmMnc9AY4t1Os7DLehXuGqPH+KOGpA6cpcpsixGWuZ3fK2/+iAji+w5skxiH7
+4+KrGF0Cqn8yGH2iNENz4dWCNa2mXPWbPcs2EKKv4bZ27PO9P6wfn8iUUj81JUWk
+dQzGYQAiSN2PIvWFBLFjcHhT/dEsMzd4jwjQWMwybQuHfk4zIScXS9GeJ1ATBIS2
+5AqIMW6RX8WCmtLg61FWUwDgdA3Gk+ymZgaY9BsIPTv4w21vUv2mFZyZNa3W2Obc
+8fng7gfqQt3NGMCOEqhCPTQkQXjHhbKCLDS25eXJ0cK9V18YhH51LeK6Pm6Cg1Wh
+6fvXUqqGOjda1/5R8IwSxyd5UN9g9AdY++QxUZ9qcpG5OFjFuJvZQRjriwvOzFxf
+bUIofOU+6al0JG+14SGn5eqXfHtRn+ESBTWb1JsVvwlvQsvUB/3KMYG2VzUVneAf
+pKQpk8e4dqERCxA/8Z0OMsAWlQIDAQABo4IBVzCCAVMwEgYDVR0TAQH/BAgwBgEB
+/wIBADAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFGwyIOQxe87aomru0j5MPEzH
+1fYpMCsGA1UdEAQkMCKADzIwMjAxMjIzMTk1NjAyWoEPMjAyNTEyMjMxOTU2MDJa
+MEQGA1UdEgQ9MDuBD2NzY2FAbW9pLmdvdi5ta4YWaHR0cDovL212ci5nb3YubWsv
+Y3NjYaQQMA4xDDAKBgNVBAcMA01LRDBEBgNVHREEPTA7gQ9jc2NhQG1vaS5nb3Yu
+bWuGFmh0dHA6Ly9tdnIuZ292Lm1rL2NzY2GkEDAOMQwwCgYDVQQHDANNS0QwNAYD
+VR0fBC0wKzApoCegJYYjaHR0cDovL212ci5nb3YubWsvY3NjYS9DUkxzL01LRC5j
+cmwwHwYDVR0jBBgwFoAUbDIg5DF7ztqiau7SPkw8TMfV9ikwQQYJKoZIhvcNAQEK
+MDSgDzANBglghkgBZQMEAgMFAKEcMBoGCSqGSIb3DQEBCDANBglghkgBZQMEAgMF
+AKIDAgFAA4ICAQAO7Ge4zHQjaeTJJK0QmAktauE4nUT7EeCkCwA1PyNq43k3T43J
+tf97QJJMpB51URwXAADB2vjfEJAgx72HbdCcLUw3ergrSpm452IEDM/APHFMR+IA
+MSK/e5fBuvLeQ0kg18CDweYcch6f9U7ZPGf/RNvh8N+o7QwKYdZWkZ/ys+/nA4Wn
+bbrWHI9m6kqffP142ZC1WS+JMvEuDhLXaCd6cr5+exiSxSWIqiZ1dwzOPUzyAIE0
+STxbAkng4kMFNL27B21NSit3lxBHBrURlB23lntFLPFlwsFzDJRQBooeOt1RRch0
+KV6ch2Rom5DXs5RqHEJ1u4LDvfaa7+1U2LU/25LwqJZDP1RDJFhw2vpjXlVfaIzl
+IXCWrjND9p2DcrZB+P6fLERQg7XVR6+x30lggQrATzQS5b1ZAKbfUriGbP4C57Xw
+Pex/2YiIvwLpeWgq+KZ2Y2zqqSoEgka+fb0/xTSphfg4kAyEQHLW7/o46auqxphy
+bDh8uWqxVADI2VLOd5vPn+iFi22rKLyhgUwfB3KBGtcJbVZm9jl2IUDFAlTuvci2
+YiG/BzQE9IMTEi19W2Sow8x5GGWEqnEj8LEyJZrT0OudF2G4NVxjpdPs633ir9On
+YTehLdqYV3UPPIcCdcBCU2IxQixNNSR396tAl3x8Mr9t3WQK7gZkH1OQbQ==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+axvatHPbOYjJFjI1P64ZRbUWCIwK/7Qb4VM=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIG1jCCBIqgAwIBAgILAMjjoPACCYGRgUQwQQYJKoZIhvcNAQEKMDSgDzANBglg
+hkgBZQMEAgEFAKEcMBoGCSqGSIb3DQEBCDANBglghkgBZQMEAgEFAKIDAgEgMC8x
+EjAQBgNVBAMMCUNTQ0EwMTAwNTEMMAoGA1UECgwDREZBMQswCQYDVQQGEwJQSDAe
+Fw0xNzEyMjAxNjAwMDBaFw0zMDA0MDExNTU5NTlaMC8xEjAQBgNVBAMMCUNTQ0Ew
+MTAwNTEMMAoGA1UECgwDREZBMQswCQYDVQQGEwJQSDCCAiIwDQYJKoZIhvcNAQEB
+BQADggIPADCCAgoCggIBALHBCMmweH79U+f7uUhg6R4ZGRIJL7KsBkag0YanKqO6
+83TMjh6+CkBMIhc3wpD5cJlQOhY3TeVzPOo8bJ3AI+CxFxN30i7ROxdb9aCvh9rK
+YUQeQaoLfiQc9iqbhOhGdbNJktXarx7i8KopzliLLGzLCbAmpPtLiWoM+O9SSsnz
+EBdQoQmRT5eY1k13cU4wbcI8OIrrJIfDxw+EYe+yWqyN4SbX/o6u1YsDkImcoOz4
+lqsrq4TRa70CtBQmONymDn9b6Dvl8GH/gtBjI4pJ6UJhrFhiMWNS4LILpGV6tNlj
+1ZxvyggjuppAGCDRDaTGDlWLZyDeOQ4NE48Ul+7ndXLCIyN+YRwVy8oRD7VLuRAR
+vanbZvXbvlhQu1Xc0H1UexhTmdqP8hZl0T6lJkPhTSBrXtuawPpG1HoDvtGgZThi
+Fp2f6M4Vzs6R4L1gOsan1CqbH4j8hRk7adM1Dv2QC3JtUzYMAjH80BYOi3bdkPw5
+bNNozK+Xpc8i/1TjFf+Trt3LYF3QRnWpXu5Mw5q16ofTKzo1qlQ1gJbP8PC8Vvt2
++rnekQ6QcSmp/jCgGnZjK52kT4fHPZV1gvkODj7ndVAoTTVl8tXSGbKJ3I8wDnnF
+mU1lQc7oIEJ6HiFp4B8J4Eb+1zxTUGelNZvxDDOVYwZjNOlaUNknXW1MGtSyrWYR
+AgMBAAGjggGJMIIBhTASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIB
+BjAdBgNVHQ4EFgQU2mJJjjXKvshho51Fn6ilvQN7cpwwYQYDVR0jBFowWIAUkw/7
+G/dwVXmXGyAqZvAyG0wrLkqhM6QxMC8xEjAQBgNVBAMMCUNTQ0EwMTAwNDEMMAoG
+A1UECgwDREZBMQswCQYDVQQGEwJQSIILAMjjoPACCYGRgRYwZwYDVR0fBGAwXjBc
+oFqgWIYqaHR0cHM6Ly9wa2Rkb3dubG9hZDEuaWNhby5pbnQvQ1JMcy9QSEwuY3Js
+hipodHRwczovL3BrZGRvd25sb2FkMi5pY2FvLmludC9DUkxzL1BITC5jcmwwOQYD
+VR0RBDIwMIEccGFzc3BvcnQuZGlyZWN0b3JAZGZhLmdvdi5waKQQMA4xDDAKBgNV
+BAcMA1BITDA5BgNVHRIEMjAwgRxwYXNzcG9ydC5kaXJlY3RvckBkZmEuZ292LnBo
+pBAwDjEMMAoGA1UEBwwDUEhMMEEGCSqGSIb3DQEBCjA0oA8wDQYJYIZIAWUDBAIB
+BQChHDAaBgkqhkiG9w0BAQgwDQYJYIZIAWUDBAIBBQCiAwIBIAOCAgEAi1C9UZEa
+CmqUnkxlZLI21Nmv17FzEtHerEreZ/F1zJB6FaLzHuEMGGpljXtM+yEf8F8+R7p3
+zEZcPGtnRJIQ/iNb3hzSCNVLmmqgcqt7sV08os07SByncLZ5d45/d0KEjYF7amV1
+UeBLHb4nIgxhmopca8uLchANhQM+uX9rQGjAJbGKysaAgxz/8SPnbzXBYcEZJPL/
+LQSeJW4KBYdAkfp0fmDU1yLG7YXjcWZDf18eg+57Vfb4HrFxeOVsCm/K+/HzToyJ
+TVcZRWG4zrfqbXTuWXNTN86/OD07a6HFqQJdIusAlnrLWNxZNwUHajgdVyl/fAwl
+1ejRm+e1CGcWGgnGiEv+1FZTzZqe80v9sOPBe35ZLGqpFiMiYUExB3M0Ox3dmGSN
+cBlbgr+whatLrqZzChEKz3Lp97B7tlxNpkwP6/kFEy6ogk2ayzGsWT7Hwdr7LUNL
+ZDcksP3Mh5x04UZVsJFVg+Md2+XnG1WCIN8+MML4WTsUapSuRN9QrSaxpyV2S3Rx
+VMEs3fImeKtKy5nhNzcQpdCW3OmZ1+KBmJn8Ag7MmIFxRPirhztiRWBZItQK6LTv
+dirAiuwNfmeiCRtEBZIPKwZJTFjaibHFR5vas4f4Q1ZCjU4MlvjWa6k9ohn1834L
+xwoW4jOXJGl3nya/HDo7/yVPj8Dueu43+WA=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIG2jCCBMKgAwIBAgIEIght6zANBgkqhkiG9w0BAQsFADCBhTELMAkGA1UEBhMC
+Q0kxMTAvBgNVBAoMKENPVEUgRCdJVk9JUkUgLSBNSU5JU1RFUkUgREUgTCdJTlRF
+UklFVVIxMTAvBgNVBAMMKENTQ0EgMjAxNTAwMSBDT1RFIEQnSVZPSVJFIC0gSVZP
+UlkgQ09BU1QxEDAOBgNVBAUTBzIwMTUwMDEwHhcNMjAxMjI4MTEwMjQxWhcNMjgw
+NzI3MjM1OTU5WjBrMQswCQYDVQQGEwJDSTExMC8GA1UECgwoQ09URSBEJ0lWT0lS
+RSAtIE1JTklTVEVSRSBERSBMJ0lOVEVSSUVVUjEpMCcGA1UEAwwgQ1NDQSBDT1RF
+IEQnSVZPSVJFIC0gSVZPUlkgQ09BU1QwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
+ggIKAoICAQC6ujwpCt8rcM7k77QtwPyKiUcpBWne8tLSqem0pKM7UPeO9arx9gRJ
+5NfKzgXuW/wI8LvzqqWqQn4mi3CPOwo6gud6Ow5YWtzqLDhSm3oJcAMpF3RpJCX3
+jEgE/gxwZSG4Wp9UFDGJLs2qaytm4pB/0HYIh85pEZuYa95J6G8hLClnZoJwnTFp
+Hq2vqOGD28wQbrWgyB6FEpD8y1O1V9hqrx0ZND3BVotNoCCHIsrFZ/P1KLotsp2O
+ILPTcCxDzot+qkIFbNDRrSr2yH/CZKXDwupaR187xIBNgKGfP/bk5AIAbEODy56v
+S0UkH+PFhan8vlHN0m0MtG1Xi0/O31FtW/nWjfJ8pEjgxFcbqiwFNEGfbzC1LfTT
+NgmLGe9M5PUtNg6lWB1fMdYP+xulW4fIK6UK0FfSBn2442uH9dDjLLNWPOTazBVF
+Ey2qMQyUAVnvmtWWsUExaTc8hSEyB/lGFSrH+IOmzv0bTwDMTugEffl6qyPsT2MI
+Emrids98blvbU3hIjya/F2/wcOLWy72r2trQOz7UxKc334ScH1vGtmoyCnLwxUp5
+TgKuTXPlwmHBaJpMIkEXeiZpEg818eoFTDo5FlnigUlS3ce2j0iMpFzZmIQCVt3S
+8woeOrcbtV69/asQxi15SMtvS7fG37O86T8ETegOE95miQWWlgg0zQIDAQABo4IB
+aTCCAWUwHQYDVR0OBBYEFPnR68q8UPK96qqKdEo8vK567vD8MA4GA1UdDwEB/wQE
+AwIABjAtBgNVHREEJjAkgSJjZXJ0aWZpcGFzc3BvcnRAcG9saWNlbmF0aW9uYWxl
+LmNpMA8GA1UdEwQIMAYBAf8CAQAwPwYDVR0fBDgwNjA0oDKgMIYuaHR0cHM6Ly93
+d3cucG9saWNlbmF0aW9uYWxlLmNpL0NlcnRpZi9jc2NhLmNybDCBsgYDVR0jBIGq
+MIGngBQlR5tmWETtnlgpgFV8aWs364MUIqGBi6SBiDCBhTELMAkGA1UEBhMCQ0kx
+MTAvBgNVBAoMKENPVEUgRCdJVk9JUkUgLSBNSU5JU1RFUkUgREUgTCdJTlRFUklF
+VVIxMTAvBgNVBAMMKENTQ0EgMjAxNTAwMSBDT1RFIEQnSVZPSVJFIC0gSVZPUlkg
+Q09BU1QxEDAOBgNVBAUTBzIwMTUwMDGCASIwDQYJKoZIhvcNAQELBQADggIBAI1/
+iT7s8LfC0IaAxGpB/Yhs/xv9vChN7aURj9jQkSCMeqHps82K3ZO++OKB9Z1yk1Cd
+GP10yScseKh1Z/l2PMebyUrdtPui8QpRPeaBL/YqKJtUnWhlqRfy76smTiQJisV6
+4S/k7PhZaP2bfKaUASvjUKMvJNZ5KyZFEAAYOAxn+YbdrtgYrFKIMOJIaKDdxYog
+eu4cpxTqCZfAqPUjmCkkqNEWKkMc+xyyyhmzCOutpKYVN8AURn0Ax/L403c5M6mI
+Nn34bcWsi4N6bh35zg+wQkieKti2V8OSS6NseKaa4Cyl7DUqfr+F9ZYo3r2WEa9w
+0AGnxGn3HWbD2TOPexwz9aqYgUDPyvA+esWE3XUxA9AbCBjFvujSXs0/GELlKBTI
+6dnWXA0tXlIrrDqa+H2O55UJ9mfQIy0e0ZO4rI1U2CidFMCx7POfGd/6WbMwRApl
+DpYCfBIVMGt2mMrF4tG/TUb6S8uSeDGzQEx9GAS8O+mo4t/4n5wwFIyvvpvpgpI1
+YxcSD44j3t6Aw9CqyvPaKO0mEEvXuxMCasQ0uXZq25/Q9SB4/jE+qUj1UoeYdGof
+TQLFfjDNEd9d5xJDJBSUdNhdch70gcGHNhDZ/txs5WXtMEJ/hXRRe2l3irtAShr/
+W5GD0pePRDyf69YLvFkEXKZNneIFZcDGqNBNuN5s
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIG4TCCBJWgAwIBAgIIJRObnlsYx+EwQQYJKoZIhvcNAQEKMDSgDzANBglghkgB
+ZQMEAgEFAKEcMBoGCSqGSIb3DQEBCDANBglghkgBZQMEAgEFAKIDAgEgME8xIzAh
+BgNVBAMMGlN3ZWRpc2ggQ291bnRyeSBTaWduaW5nIENBMRswGQYDVQQKDBJSaWtz
+cG9saXNzdHlyZWxzZW4xCzAJBgNVBAYTAlNFMB4XDTE4MDEyOTEzMTUzM1oXDTI0
+MDMxOTEyMzIxNlowUDEmMCQGA1UEAwwdU3dlZGlzaCBDb3VudHJ5IFNpZ25pbmcg
+Q0EgdjIxGTAXBgNVBAoMEFBvbGlzbXluZGlnaGV0ZW4xCzAJBgNVBAYTAlNFMIIC
+IjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA3/yYXAoW3QUSwm5PdHmhXmYx
+Hye8p48hErSQbz4puNISN7RfVNnNT0qh8aDWAkE3USnp8W3PjzTWoWhdb7FbHGbz
+UzA/LpdDjKYdgWDmogxwM9LyQywMRXbN/p3S6NU7Tkx0RgYMTXn2/6zWQGqhklcV
+2TBlOeJQzr0BsXwtVPuMrHXJPrQwcukjOwuCvsIvL0wMDUj4VbZXt3khTT/Q7fo/
+qMVwlLmgrvd9k1q3jRkxafFCPLmtNRsyZlukrnwN5SwErCExM1kqegBM/7VXfG8t
+dtEK1UHvzxXodwdojRSZU8mHwEZzFdisdxZlT2nS1DMGZap00EtMuP1j/2Gztb7S
+7TWjfiRxMZPQ9SWDLbWk6YCpWTXvYyntk6AHX+hN7+Xy4/SwqrxUgrqwSiTF5ZK9
+0z4PXGt4mMIoLeWTt/XcJhy+fFrNljyeHhGM0M1jIMhkS/3PJCov0JyEV0IxCBpG
+D1mER2bLh+KoHtm4jY+QC8+qUFEG4POcHhBnmpJhTSC7EkCRIFtvaseQICNMYX/M
+8+tTgiqy4usXjIiU+Rdz3Dnp5aBfWr6ou4ZIzb8Wezk6f2CKpRjG3wLAg9EQllis
+wKm69RYgFJolJMohotw62d1RgmA6BhYog8SA9EsQg3b25r+YIDklEn8bEPVS2Yjl
+GbhiOeCcQp7byD5o+rMCAwEAAaOCAVYwggFSMB0GA1UdDgQWBBTgKoD3L+NtC93y
+N+Fn1oXl5bIiiTASBgNVHRMBAf8ECDAGAQH/AgEAMB8GA1UdIwQYMBaAFA4wULiS
+85liyEcZLpjk0/qoQxmsMGEGA1UdHwRaMFgwVqBUoFKGUGh0dHA6Ly9jZXJ0LnBv
+bGlzZW4uc2UvQ1NDQS9TRV9DU0NBXzQxMTVmNDEwNTc5M2RmYjEzMThhZTVhNjgx
+ZWVkZjdlMjc2ODEyN2QuY3JsMA4GA1UdDwEB/wQEAwIBBjAVBgdngQgBAQYCBAow
+CAIBADEDEwFQMDgGA1UdEQQxMC+kEDAOMQwwCgYDVQQHDANTV0WGG2h0dHA6Ly9j
+ZXJ0LnBvbGlzZW4uc2UvQ1NDQTA4BgNVHRIEMTAvpBAwDjEMMAoGA1UEBwwDU1dF
+hhtodHRwOi8vY2VydC5wb2xpc2VuLnNlL0NTQ0EwQQYJKoZIhvcNAQEKMDSgDzAN
+BglghkgBZQMEAgEFAKEcMBoGCSqGSIb3DQEBCDANBglghkgBZQMEAgEFAKIDAgEg
+A4ICAQBc0RLx4pwA7Ftf5crDwBXSlhgonNwOJELuMS2i8cMuIXLmGgLmbHQcJH/c
+BPvsCCu8P6fzVZdfm/HHNKWee/hVQC2bzELtWlQkyVN8S7O+1VsbEmq3tzpaca7c
+mkIC0Amf1LUGZ4gDE1wWvbkMlrDm1/wRD+Gj2MAUWCtwGgmu05JXldyCskgXnY2+
+wPf+RjSsK+dhPevTXPEVtn8ScjeYfGGRUmVl8Xzil4PamdiE2tApM996BXILucMW
+BkQDnadTv3YblToZjz34Jc3t2Z3oJAvcn3665T79PNUenfhTex4czNakRccIZl5r
+ufefw9uY5NlOZSC7g6SIbgb7J2+/0MebqtvXEd5FGfGDqYyJQDyYY0cGFbn6JAhM
+TLo6rr+dO2UXwV9N2PkHcVM4AgBDq9rN9XGzvUKa9aafmZkq4XyqNBw6AUhD57es
+Us6oBisTzBwLcZWAp7UI8yK5A0bacjBLd+ANud7cux1ljdX6wHVsEYEZgiuRWnLL
+mF+sJ9Q3VwUGSEz7xzfiNl5f3VZoyi35WkYH7ITTISBazzrmn1yN3VWaLzvMdmto
+R+SpCBwWzkDf1sAWItw2fOXRGaLchJG7lbHJCd/KjWkr/bF+kMrxilrWcMSOzlQl
+0bwdz5dQoItrktm/1TcFEt7GTL8MOR3Yk/12cSCXX9yDejN8KA==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIG4zCCBMugAwIBAgIEWMKVozANBgkqhkiG9w0BAQsFADBwMQswCQYDVQQGEwJC
+QjEfMB0GA1UEChMWR292ZXJubWVudCBvZiBCYXJiYWRvczEfMB0GA1UECxMWSW1t
+aWdyYXRpb24gRGVwYXJ0bWVudDEfMB0GA1UEAxMWQmFyYmFkb3MgUGFzc3BvcnQg
+Q1NDQTAeFw0yMDExMDUxMzIzNDlaFw0zNTAyMDUxMzUzNDlaMHAxCzAJBgNVBAYT
+AkJCMR8wHQYDVQQKExZHb3Zlcm5tZW50IG9mIEJhcmJhZG9zMR8wHQYDVQQLExZJ
+bW1pZ3JhdGlvbiBEZXBhcnRtZW50MR8wHQYDVQQDExZCYXJiYWRvcyBQYXNzcG9y
+dCBDU0NBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEArcIlailWYtOS
+EbPsYeY7Q/0Z336Mf6L0g960CSD31EHswSXPw4W4tMcc9Zd1GSZ1nkyFPs0tyAJx
++rV3xWK8DS4vFbcaWWmyIiZV91A9jaE6Ieu8iyvwAJUYOESxv9xLF/cyHG499UkA
+lnwQMjovWkLs8ttb/k0dBTN2/Y+cWLKCv/5/gw2X1lZFtkpYS7Cy+rwyVJEsZks+
+AkMHKUN/RsqpmY4QExyKCVTebkUy5y+cCR4iSreONByOP91uPVfreq9W93ocMv4z
+USF4OwjKBi4rOb0XgY9wXlmvhS9rOmNKmdcL6x4F/XDHUqmPQzC621QUmBOabeSz
+Q7KYjfgYfzqjwDkaeMdoAsmOgNPSP0LVC1ZMO2BVed4aPw9WCLfsoWHbqinplgMs
+nJFbRvadGW66TlMYnxJ4Y5dysTm23lcw9V270pOgHoVQjJ9mvBZwsfuM5ArwvApr
+mA2CCkShZHmLgbTGl3fxQOXv6X5FIe7plPGnJc9Zlq5+rxnr76ijr0c2z53v2S/Y
+8GGJPHQakMBY6/ZrM0JA7pxpBj7exkruCklA7rZEB0ZBF0bjxww6G3LNdphnEPcM
+DAa6gm09aRYHQutIi/M+cc5BtWmyOviHRALOF7zvseLl0wbjv6YJfnqpdd09NPlx
+RVje18OlrZ2QeWt0rSs/Ye1kAYkyB1UCAwEAAaOCAYMwggF/MA4GA1UdDwEB/wQE
+AwIBBjASBgNVHRMBAf8ECDAGAQH/AgEAMDYGA1UdEQQvMC2BGWVwYXNzcG9ydEBi
+YXJiYWRvcy5nb3YuYmKkEDAOMQwwCgYDVQQHEwNCUkIwNgYDVR0SBC8wLYEZZXBh
+c3Nwb3J0QGJhcmJhZG9zLmdvdi5iYqQQMA4xDDAKBgNVBAcTA0JSQjCBnAYDVR0f
+BIGUMIGRMIGOoIGLoIGIhipodHRwczovL3BrZGRvd25sb2FkMS5pY2FvLmludC9D
+UkxzL0JSQi5jcmyGKmh0dHBzOi8vcGtkZG93bmxvYWQyLmljYW8uaW50L0NSTHMv
+QlJCLmNybIYuaHR0cDovL3d3dy5pbW1pZ3JhdGlvbi5nb3YuYmIvQ1NDQV9DUkwv
+QlJCLmNybDArBgNVHRAEJDAigA8yMDIwMTEwNTEzMjM0OVqBDzIwMjQwODA2MDcy
+ODA5WjAdBgNVHQ4EFgQUhJNdoxBRtDBMLMC6CNftCPADhTgwDQYJKoZIhvcNAQEL
+BQADggIBAI8tLgHqpRDWLuSObGpff5nA7rTmKW8/SZlS3gYCWFZ+vytFgqHqw2A5
+Ij6UDNZEgldkN46diZuJDd1s1s06kN13J4oTWOcmluBoJPAqyWAWJDMyWUSohTeL
+bIbKjP8kGMCrEmgMwy+ujJcNC3RMACbNYw+O6epDdOCEa9DGl0NG3c+/ZHayXj7J
+54kspSaceFEW216cvi71kKitZVVaJmGFJyad1KXptfWIOwcjojuh3KPWQmuQQwoW
+nh6eAgjuVlsvyfoe+/9nq5M6y9LoCtpTsZsH0cHeUjGexxvJqXLzAWBoEYmpMqQj
+gVRG2EvmbU/pX6wId0KK3ifRKTVDHWVORjWjR/FAtakeuWF46q1KKZN5+Z27dqvg
+mFUgIIFg4KAo9e1kGpUDKV5KVg/BcdL0Tiems4j3zfqNsWeqPbWwbcaJ+mTHCN6+
+xS3bD3wJT5c04ocS5RVtLN+TPgswNbnyTYJ4tVVq5wd4S39aw4fG5if88fpUe9Ga
+Tbvq3tvfSy0VrVb3lLL8jHEepwX0L2ym+lfzNdmYQkqhMNr0ZjlJoVZgANMG8n55
+5ENiTU+6MkakvOweEaoNvbLPHnuN/Blu2vok9X7CKFF/RY8XdZihV6dgrEy6WnnE
+ge5lWw/DtRm8NIGrmhRd8db8fraBa/in6amUYWRXp83e5ez8WfYE
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIG6TCCBNGgAwIBAgIQG0uPKJ8aIAGE9/Wuuxe++TANBgkqhkiG9w0BAQsFADCB
+mDELMAkGA1UEBhMCS1cxHTAbBgNVBAoTFE1pbmlzdHJ5IG9mIEludGVyaW9yMT8w
+PQYDVQQLEzZHZW5lcmFsIERlcGFydG1lbnQgb2YgTmF0aW9uYWxpdHkgYW5kIFRy
+YXZlbCBEb2N1bWVudHMxFDASBgNVBAMTC0NTQ0EgS3V3YWl0MRMwEQYDVQQFEwoy
+MDIxMDUwMTAxMB4XDTIxMDUwMTAwMDAwMFoXDTM2MDgxMDIzNTk1OVowgZgxCzAJ
+BgNVBAYTAktXMR0wGwYDVQQKExRNaW5pc3RyeSBvZiBJbnRlcmlvcjE/MD0GA1UE
+CxM2R2VuZXJhbCBEZXBhcnRtZW50IG9mIE5hdGlvbmFsaXR5IGFuZCBUcmF2ZWwg
+RG9jdW1lbnRzMRQwEgYDVQQDEwtDU0NBIEt1d2FpdDETMBEGA1UEBRMKMjAyMTA1
+MDEwMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANadUfNwpFKRWMjr
+JEctYksFgoCR0kTbx/PiVLd3qaAjPQX4QDGMFV1K/5NDEp663pf+9BKGxKqCOiBz
+su0zCxaYWRUctUk8nCmmH7CHU/wCV/E7nvJfUMT0735Ap5BaE8bckGSUqEfFkUHf
++t3n0naRXmEa/nxZUZRIRyWewawyBghNJX3aOouu+lSoS2OYGKCNUdJPzN+z5ArE
+qEFV+gJNY7SYEEV3E0i1xJA9EZn3+iBifVre9edVgcmrIlmRpFWZczQ81sWXDEeR
+BrdmY2jsu0ViNXB9RXPhi2Ze6EUIa1VEX2s9rwBK3L7KjEaI3JEepE+EYmpwy3GI
+LsiiqYI1BSe7ncMZq+qM7R1BEsautWH72otSjt/K6L5AovHGqCRlg7jn/8dbSUNT
+2ZF3zj1/1Oio4H79hpc3I3ngXNStWaNZfyw508i6BSquUemjfaD/l30cHeQWNkPs
+JHHOXAq5sOaZsAiraX1Rfn57HNo+eSFfU4xAUOQTViF+v+JkrZU6Yww7dLNcXtHI
+Ts3i35wXnnIJJgHCuwbc3bjC70rWJ2pfr+NB099pWPNy80BxxiyuVJoSzHhDj1hn
+ebDCQWlxl09JR2naAM8ne/7brO2vZuc3vtv0ffhsZB1CbgO1nxYF59AgCFc+Vzul
+j2HY0BrxOyuYcOSOt+JmqXjZBOCRAgMBAAGjggErMIIBJzASBgNVHRMBAf8ECDAG
+AQH/AgEAMDUGA1UdHwQuMCwwKqAooCaGJGh0dHBzOi8vZXBwLm1vaS5nb3Yua3cv
+Y3NjYS9jc2NhLmNybDA+BgNVHRIENzA1gRZjc2NhLWt1d2FpdEBtb2kuZ292Lmt3
+hhtodHRwczovL2VwcC5tb2kuZ292Lmt3L2NzY2EwDgYDVR0PAQH/BAQDAgEGMCsG
+A1UdEAQkMCKADzIwMjEwNTAxMDAwMDAwWoEPMjAyNjA4MTAyMzU5NTlaMD4GA1Ud
+EQQ3MDWBFmNzY2Eta3V3YWl0QG1vaS5nb3Yua3eGG2h0dHBzOi8vZXBwLm1vaS5n
+b3Yua3cvY3NjYTAdBgNVHQ4EFgQUbBTC9VSptj9F8yMzn3M+xItrHWswDQYJKoZI
+hvcNAQELBQADggIBAK2OOoHxaN23tFbxFYg4yk4pE+7zDdnMKDJMdyoatQrTgnNQ
+qB2GQsxQzwh8P4fIOto+pgXUXLrHXCUT/96Y4jE8OtUSONutBK0WOukQVXpi8WDa
+HHWtmw48+qdqqC3o6GmQIYvmgvwF3bi5SGF3T741F1voM0GuOO1TL5gEOB9SkY9t
+Mhn7z/95C0BflI7NaLIVCwpisil19KS8rQIU7BmGYxIBN2OE1BqeD8N+AIybzDL7
+jntLro7RpnsMsNuXz6Mzakn5alyOt95kkSD6RsYNVUTrmrrEK1zujrdLcCJd0xC8
+zl89oJdekRIaFTzsBB3yvr12qmiARX/O7wwf/NYPiNjU2xCS4OFDy9Q7Zj5vglDQ
+6cCWscFe775pT09xOOHNjH2N1IdIM7fHMRN3JLl0euk+bBCMH+hTvcAHRm33GclP
+cERFaSMPk1SLCBO7HMi52Zdy9uYpheArDpQwBfiDypDz2lvJh9WUZUEUu+yFSzhP
+vug6+nC+0rfMzGUxYirp1Dg8CpgTIZMoHF3I0QwfnuSDCAVMN9XmrUOPlRSml74K
+DirUQl91AMPfmYmo1mzaynHsDAugxvbgA16IXfigBvekpZT7oGGMIsGzDlskf/Q6
+Qc38H0uKjmQ4qminPyS48Ws1aA/J180em9X9eYToDD0jqEU6DLrx/w6nsNHh
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIG7DCCBNSgAwIBAgIERIg0WzANBgkqhkiG9w0BAQsFADBXMQswCQYDVQQGEwJz
+aTEbMBkGA1UECgwSc3RhdGUtaW5zdGl0dXRpb25zMRMwEQYDVQQLDAplLXBhc3Nw
+b3J0MRYwFAYDVQQDDA1DU0NBLVNsb3ZlbmlhMB4XDTE1MDQyMjA4MTExNloXDTI1
+MTAyNzA4MDMwMlowVzELMAkGA1UEBhMCc2kxGzAZBgNVBAoMEnN0YXRlLWluc3Rp
+dHV0aW9uczETMBEGA1UECwwKZS1wYXNzcG9ydDEWMBQGA1UEAwwNQ1NDQS1TbG92
+ZW5pYTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAPeUO2NjQrV7TG+U
+C7Kg2RrMiMMCJn3EkphcoYY63vpuzEwDePMaO8kuSn9leJ0JDy7Y+iRo9fwfp0Wt
+TeL04Rrzw+1RohugcIuO5zLY4y5whHYBgCquaLugP4JPUdCIe5aolrh6qjpSVzwG
+Yur6uUcSpETanHkDAdFqfoxBN2saX/d6/zucL3/um6brJSsQ43wRZcjLx/dy8WKl
+aBYqu6WSRC2Zbwm+rIowfeigEhhzbxDGbPvMzCzUkBzGuz+FJ7aDZYTK7ySdEBWQ
+XF/y4Kyxqyopduwl1gmIfJdz0u9O0ZwomJ4PXLVlQg4+NlTPjpvjduQWfHfucpG6
+63yCvHfbo9qBuc4rfJLe6h6Ozw72lOl/+WJho0mQm5IaOqlwCSFzWItyt7japR1f
+/egslukaahCqXCBUUloW3fvv7oEa8xf7m8illAzt8eZAffTxHhQpOcM/UZdH378J
+oLAQUogHxXVWvHNQ+FgRFp0dhZ3oayF1aLBcZDaigmTORni/JynIWrcSrTDmSnCz
+1VXWz9M1FD9wM60+V6kheTa35UgrrdWAQmgY/nk0hCEy6BDAdH//CVZMANDHuPoP
+p7xTzYGv+iZGUiC4WwoQvs5H8a2rsDQCv+RA+VTU/jmzrsaFI8MuDWN3EeCfeSgs
+ENEerzK9qgyL29FQuNK6QDYwVi8HAgMBAAGjggG+MIIBujAOBgNVHQ8BAf8EBAMC
+AQYwEgYDVR0TAQH/BAgwBgEB/wIBADBLBgNVHREERDBCgRRjc2NhLXNsb3Zlbmlh
+QGdvdi5zaYYYaHR0cHM6Ly93d3cuY3NjYS5nb3Yuc2kvpBAwDjEMMAoGA1UEBwwD
+U1ZOMEsGA1UdEgREMEKBFGNzY2Etc2xvdmVuaWFAZ292LnNphhhodHRwczovL3d3
+dy5jc2NhLmdvdi5zaS+kEDAOMQwwCgYDVQQHDANTVk4wEwYDVR0jBAwwCoAIRcAk
+WL4QrdMwEQYDVR0OBAoECEM95Q4/7LLHMBEGCWCGSAGG+EIBAQQEAwIABzAUBgNV
+HSUEDTALBgkqhkiG9n0HSgMwgagGA1UdHwSBoDCBnTAroCmgJ4YlaHR0cDovL3d3
+dy5jc2NhLXNpLmdvdi5zaS9jc2NhLXNpLmNybDBuoGygaqRoMGYxCzAJBgNVBAYT
+AnNpMRswGQYDVQQKDBJzdGF0ZS1pbnN0aXR1dGlvbnMxEzARBgNVBAsMCmUtcGFz
+c3BvcnQxFjAUBgNVBAMMDUNTQ0EtU2xvdmVuaWExDTALBgNVBAMMBENSTDEwDQYJ
+KoZIhvcNAQELBQADggIBACCRnJ1KDQzuSWG8o8vHGJNG/TuY39PO+t1uqygUEDgR
+OA5iJ25AZCclRwnQx50SOI4rHGz012spc6mJyNuNtVr7SIw3/sZOJJa5Ja2ZkHNf
+v95ncavAlgh2iovYMZardzESsXgAGIWWMmV7a4FUI2WGZrmesMwHY1CGxbQMwRRg
+npDNE57STTpzTX9dJ61v3ij6tizDzMw3QwyI6+rEBZ3U34lnJGaEdxTABkUpJRsj
+zqyhu05A3frE98McFassgyFLE89YILoSyccWH+gzfCGCa/F1RSjxuo92UcxJ61/G
+7KQHuQamvqvWl6e5Kd58/bI4B4D7PpDqNGNv0LrEvL6DXEDubayAZUokDdsikJv9
+00DNM7yM+1ZgK/Gbz9yte8VqvB1wUgwKNQLhtHgcFWgesVw92/j1u07dXkaxVUcH
+zpwQZrh/l9A4YuRYcE/gExu+Jc8tVYY+Dua7ZYnfHs1dJz2hSv+YvIupitXMnZxg
+cr3eZqAyizkUPT6Yr9fK50XRc019UulbC/KT96ILgcbs+xG5kZueyj4XdV0mxMtC
+8jSlnXqaoupRRVtUUrF+duNxtVY3egOnBmf0FQYBN8oNGj6O00p8FUp/kh260HQz
+x6G2Bu+qnxswZ3GC7i/FNx3Ur7HbsAG5AoEvjyQKqnhcf/R/wAfnBsOj96xrNn/O
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+8Qqd5w==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIG/jCCBOagAwIBAgIERQqQMzANBgkqhkiG9w0BAQsFADBmMQswCQYDVQQGEwJJ
+RTEmMCQGA1UECgwdRGVwYXJ0bWVudCBvZiBGb3JlaWduIEFmZmFpcnMxGDAWBgNV
+BAsMD1Bhc3Nwb3J0IE9mZmljZTEVMBMGA1UEAwwMQ1NDQSBJcmVsYW5kMB4XDTE1
+MTIxNzE0NDE0MloXDTI2MDEwNjEyMDkzMVowZjELMAkGA1UEBhMCSUUxJjAkBgNV
+BAoMHURlcGFydG1lbnQgb2YgRm9yZWlnbiBBZmZhaXJzMRgwFgYDVQQLDA9QYXNz
+cG9ydCBPZmZpY2UxFTATBgNVBAMMDENTQ0EgSXJlbGFuZDCCAiIwDQYJKoZIhvcN
+AQEBBQADggIPADCCAgoCggIBALZD0U3UckregSd5BSEQ7xU/J2gNt6Q6sCUg1NXp
+msfuCpy7hpnxYHVYX8hnOJKrIhLsMJBb8A4neKcG/jfUk7EvBftNt5OEaBq2f10K
+jFZevueA1Zoz2W9MQuN/BVQIJgfLe/yN+cccSCRgo/6AcG48eobLbocNFhPpHhNy
+rid/480dIZWu4EfWxdkj0X7Ia0prdGmybIj1CGQyLvHC0CP+A2jBrsnQ2mCb7vSi
+Ny70Igpc2b/6KVXW04I5n0UEkZjbr9pQM+KYL+fScidZEyBCfzGkw26goEjpqdUQ
+l7Ns/QChGEqKAT9HyC0R7qT10CYqN06Iv2eEYiSKqz4wOo1dSFORvcqLomCsO8uk
+njHvDCldu1IlC+v+i8rd+OfJMi9IEq9aYILM7I7wttk/yRYuzVtdmYGYFt4F+W+d
+OXF+SF+l/6YMKrOjkOWyXT8b8I/7WRlWRH9bGPgiLBYd28O/dhBefruvYtluW/It
+HhVCBj0ZQ7FhKQxsnjUBW2dJnqKfRaabc61pjzGseUVIS7EP/L6vD7ELpMp82FOt
+s6cCVdMCbTe0VmJ8Y8DoOBakggBlb5hxXHIjLKUXHe5y1XgusD79KYsZjREQ/GYP
+hqbcEdnAUa7udcJ5iQiL5euMWM2Ao6unwN1jwbWGX/FjaVhyUdWSRpqS2RV7LDgn
+1fnRAgMBAAGjggGyMIIBrjASBgNVHRMBAf8ECDAGAQH/AgEAMBEGA1UdIAQKMAgw
+BgYEVR0gADAOBgNVHQ8BAf8EBAMCAQYwHwYDVR0jBBgwFoAUyhUncxwsTwZLP5ro
+iL6mIrA+Ws8wHQYDVR0OBBYEFIXmhVdpwKfZNSe9ik3TmzkUiNV0MIIBGAYDVR0f
+BIIBDzCCAQswfaB7oHmkdzB1MQswCQYDVQQGEwJJRTEmMCQGA1UECgwdRGVwYXJ0
+bWVudCBvZiBGb3JlaWduIEFmZmFpcnMxGDAWBgNVBAsMD1Bhc3Nwb3J0IE9mZmlj
+ZTEVMBMGA1UEAwwMQ1NDQSBJcmVsYW5kMQ0wCwYDVQQDDARDUkwxMIGJoIGGoIGD
+hoGAbGRhcDovLzEwLjEuMS4yL2NuPUNTQ0ElMjBJcmVsYW5kLG91PVBhc3Nwb3J0
+JTIwT2ZmaWNlLG89RGVwYXJ0bWVudCUyMG9mJTIwRm9yZWlnbiUyMEFmZmFpcnMs
+Yz1JRT9jZXJ0aWZpY2F0ZVJldm9jYXRpb25MaXN0P2Jhc2UwGQYJKoZIhvZ9B0EA
+BAwwChsEVjguMQMCBJAwDQYJKoZIhvcNAQELBQADggIBACuzpwFHOHu+yfnMoy+5
+mGrwPVNJ3BNlRi3gcPmrK12QnomUXZs+gSvNh3wxg/p38I/NkXiHLFOEWyiXp01H
+rGPlnzpmthgiRCOC5+8zKjsPGPb02/9O1N3MwjAHhvb500uE5kB1Vn0uRQsrF6/N
+/8SzfCO2s0BWg+liKHArrbE12JYfpaDoEdzBDkP2c28lsgeG27hm7kyNZ1n1xpRY
+DoXTtTz5rPNfr3PTSk2xO7K2m4JpWxw60HiAKL9NQhEBYUD0vnes/iFvkfyhgU7W
+m6S3Iye27zBL4azfNoV0DzqO6eCIr2CvaWmEk1r8XXV/TL/RKdkg8mok2oqdMe5o
+nHjp4ILyNMOPxg5V6dis/x22k6I4dmCstINwSxJ67uo8kmKSo+58PpnZ6SKmLkw/
+mv9ILeY+U7AODyDXUHF4ZyBhKjmZ9kKfD2js/WPruj/D9IEar9xT3TaXNZfjgtAr
+rakDR1eTuFqMI1RvSzYPaxl00qQHJtwxAt7IsMl6t/YurFOa52tj9LkUB72XTC74
+oV1RSlH7iZ0p6nvd9SkOqInw3kTYZaa0K8HEYviOpvmwJW74zYutCzxbN+7M7YVh
++qupRQzqx/+7W4zHnwjX0HjSk7Y4aen+cAVUrMGH+fIgvAFGxzSwqzu6NteX+U9V
+vnDoBC4ew+IlE1F+1ugFINv4
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIG/jCCBOagAwIBAgIERQqXMzANBgkqhkiG9w0BAQsFADBmMQswCQYDVQQGEwJJ
+RTEmMCQGA1UECgwdRGVwYXJ0bWVudCBvZiBGb3JlaWduIEFmZmFpcnMxGDAWBgNV
+BAsMD1Bhc3Nwb3J0IE9mZmljZTEVMBMGA1UEAwwMQ1NDQSBJcmVsYW5kMB4XDTIw
+MDYwODEwMjQ1MFoXDTMwMTIxNzE1MTE0MlowZjELMAkGA1UEBhMCSUUxJjAkBgNV
+BAoMHURlcGFydG1lbnQgb2YgRm9yZWlnbiBBZmZhaXJzMRgwFgYDVQQLDA9QYXNz
+cG9ydCBPZmZpY2UxFTATBgNVBAMMDENTQ0EgSXJlbGFuZDCCAiIwDQYJKoZIhvcN
+AQEBBQADggIPADCCAgoCggIBALQp1xF4U/Z4nVKicbxTGE4oqaMqayQLbTl2ngQ3
+wWImv+kEVZkxVtS6OPziWsRVnAIpPham1ykA61MmTmqYOZA09UxHHsP1fiQfOOfi
+R8WAwwu8LxTwebqlcvjl6Ls24m7p6CJqIpfk+48VT/U09KRDf48tu38vEhRHsXCg
+7EbhWq/IQ2MtA1eOULzKhm0CaGCd5u+Em7cQ5+xFluqMhLFkSwLFcxdcIlGAvSig
+/WCJUEvm+1CAG+vEsIqajFUX2aKYYxDc/nG42WHKvdxi/0L6EZ9++W3Zb9naLL/R
+avNp3vdD9PVoooTkUdYQRqY64wVyrFf/r/0KuSRRKGfQg1dR17Oyn+DaGkUa6LYq
+wGWrEzITfjWJMwbTKJO8uDJUfqbH1e3KoM0TUf6Tj6OP4PtH+rtcskZdbr5UFH3p
+dKSGFL+34uieuJLWgawdCFJUMiyZlSc4akVcfkqf9xN4lc+bPavt/awQBwBeghjZ
+Kw+2/aVqeGYrxxNzs4h6Roc1iLFUtoOndgYBhFcOty8FyYGt4ZqGRiyfA+QBBdvE
+05XP9umx0vbwaoQEW8kdmchGHFiT8w7u86VGvuxqiycP/hDcnbK8BQJlJZNVAF+g
+VmEdqPGbElHjCkSi8+UNFBqUn1K6SGfVBclVqUWMipzaQJSisAKepRfuHXmnSTLl
+YHhXAgMBAAGjggGyMIIBrjASBgNVHRMBAf8ECDAGAQH/AgEAMBEGA1UdIAQKMAgw
+BgYEVR0gADAOBgNVHQ8BAf8EBAMCAQYwHwYDVR0jBBgwFoAUheaFV2nAp9k1J72K
+TdObORSI1XQwHQYDVR0OBBYEFLB5Wuv3vt0D9jJac89iiYZA1ijkMIIBGAYDVR0f
+BIIBDzCCAQswfaB7oHmkdzB1MQswCQYDVQQGEwJJRTEmMCQGA1UECgwdRGVwYXJ0
+bWVudCBvZiBGb3JlaWduIEFmZmFpcnMxGDAWBgNVBAsMD1Bhc3Nwb3J0IE9mZmlj
+ZTEVMBMGA1UEAwwMQ1NDQSBJcmVsYW5kMQ0wCwYDVQQDDARDUkwxMIGJoIGGoIGD
+hoGAbGRhcDovLzEwLjEuMS4yL2NuPUNTQ0ElMjBJcmVsYW5kLG91PVBhc3Nwb3J0
+JTIwT2ZmaWNlLG89RGVwYXJ0bWVudCUyMG9mJTIwRm9yZWlnbiUyMEFmZmFpcnMs
+Yz1JRT9jZXJ0aWZpY2F0ZVJldm9jYXRpb25MaXN0P2Jhc2UwGQYJKoZIhvZ9B0EA
+BAwwChsEVjguMQMCBJAwDQYJKoZIhvcNAQELBQADggIBAHfpGuYhbIYcgqlW6PWl
+ACR4cNcP0gxUPn8nnAnctLahixvMztlfwLnNzZci3aXPDG4xa6qVrZS3T2A+VRSS
+wckYQsoK9ZRMPOV3FRhJCIxC2wCFVMGjrnSnKN4avh6pnvAzGY6XJ//LqUY64DR1
+rbZBqKsdoT/u9b3cY0s4ubcmn9yKCNKRevVqLov7eW+loMXiTOSmw6EKjHmAe7FM
+lPLH6zKTDvhT0DxCdgIomV0ajMWTZwuiTiI8TbcGXeOsdIAn/P+ra2HTZ97t/Umk
+SsIAnMwSso/lQkzYwfXbl/yV8QWsKSgQ9raCFsXJNon7H/8IaorcJtAcI7WkXmVy
+D3++mrI4/XD04uC/wrVmc5oQsrufDPALyQ5MwSmGZJxglkMjkOYPB8pT5LbLyRjq
+YTIouyz4DvSVFZldQiMU1HThUmHDV4LosW2PvBs+yTVthoFBItbTxZP4HEw31+a2
+l3KTf2GU+KQrr9jWqzTKwdCxBP9yisuCgi6F2+ocF/oelJkodI1dD9112MbzwYX1
+YPuUfI75hjtECc4SzkfHdFfeBEGQWh7197RBeOTUvLVF90V/pW+0y5f6vx79tCcS
+7+bQXYGtS6ks9P/j1XwVRnJTMMwufy5c2GcMHf9HIyPfXe+dBAS05nLmc72T3wj2
+Peb/Wt7gqehl+HQEPg9UL8/K
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIHBDCCBOygAwIBAgIEWMKVpTANBgkqhkiG9w0BAQsFADBwMQswCQYDVQQGEwJC
+QjEfMB0GA1UEChMWR292ZXJubWVudCBvZiBCYXJiYWRvczEfMB0GA1UECxMWSW1t
+aWdyYXRpb24gRGVwYXJ0bWVudDEfMB0GA1UEAxMWQmFyYmFkb3MgUGFzc3BvcnQg
+Q1NDQTAeFw0yMDExMDUxMzIzNDlaFw0zNTAyMDUxMzUzNDlaMHAxCzAJBgNVBAYT
+AkJCMR8wHQYDVQQKExZHb3Zlcm5tZW50IG9mIEJhcmJhZG9zMR8wHQYDVQQLExZJ
+bW1pZ3JhdGlvbiBEZXBhcnRtZW50MR8wHQYDVQQDExZCYXJiYWRvcyBQYXNzcG9y
+dCBDU0NBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEArcIlailWYtOS
+EbPsYeY7Q/0Z336Mf6L0g960CSD31EHswSXPw4W4tMcc9Zd1GSZ1nkyFPs0tyAJx
++rV3xWK8DS4vFbcaWWmyIiZV91A9jaE6Ieu8iyvwAJUYOESxv9xLF/cyHG499UkA
+lnwQMjovWkLs8ttb/k0dBTN2/Y+cWLKCv/5/gw2X1lZFtkpYS7Cy+rwyVJEsZks+
+AkMHKUN/RsqpmY4QExyKCVTebkUy5y+cCR4iSreONByOP91uPVfreq9W93ocMv4z
+USF4OwjKBi4rOb0XgY9wXlmvhS9rOmNKmdcL6x4F/XDHUqmPQzC621QUmBOabeSz
+Q7KYjfgYfzqjwDkaeMdoAsmOgNPSP0LVC1ZMO2BVed4aPw9WCLfsoWHbqinplgMs
+nJFbRvadGW66TlMYnxJ4Y5dysTm23lcw9V270pOgHoVQjJ9mvBZwsfuM5ArwvApr
+mA2CCkShZHmLgbTGl3fxQOXv6X5FIe7plPGnJc9Zlq5+rxnr76ijr0c2z53v2S/Y
+8GGJPHQakMBY6/ZrM0JA7pxpBj7exkruCklA7rZEB0ZBF0bjxww6G3LNdphnEPcM
+DAa6gm09aRYHQutIi/M+cc5BtWmyOviHRALOF7zvseLl0wbjv6YJfnqpdd09NPlx
+RVje18OlrZ2QeWt0rSs/Ye1kAYkyB1UCAwEAAaOCAaQwggGgMA4GA1UdDwEB/wQE
+AwIBBjASBgNVHRMBAf8ECDAGAQH/AgEAMDYGA1UdEQQvMC2BGWVwYXNzcG9ydEBi
+YXJiYWRvcy5nb3YuYmKkEDAOMQwwCgYDVQQHEwNCUkIwNgYDVR0SBC8wLYEZZXBh
+c3Nwb3J0QGJhcmJhZG9zLmdvdi5iYqQQMA4xDDAKBgNVBAcTA0JSQjArBgNVHRAE
+JDAigA8yMDIwMTEwNTEzMjM0OVqBDzIwMjQwODA2MDcyODA5WjAfBgNVHSMEGDAW
+gBQ5/q9BCrcuoamrX0Ew3Q1TYPt75jAdBgNVHQ4EFgQUhJNdoxBRtDBMLMC6CNft
+CPADhTgwgZwGA1UdHwSBlDCBkTCBjqCBi6CBiIYqaHR0cHM6Ly9wa2Rkb3dubG9h
+ZDEuaWNhby5pbnQvQ1JMcy9CUkIuY3JshipodHRwczovL3BrZGRvd25sb2FkMi5p
+Y2FvLmludC9DUkxzL0JSQi5jcmyGLmh0dHA6Ly93d3cuaW1taWdyYXRpb24uZ292
+LmJiL0NTQ0FfQ1JML0JSQi5jcmwwDQYJKoZIhvcNAQELBQADggIBAEBYebRpX9YR
+JKX4VedmEXJxzY+ZZLTOuv5pt8INCz6bN1bCmkzy94sTuV09EMwc79JaPnapF4zZ
+uPlulFiOqfgWlbE8KkHLCqFXYo8sCiKMNS4npvmJjJMExe19EOPSc8nfwzGg9NHB
+djiyaw1kpDYTysawxDTuRv91T06pKTMq0AUcpw0s3vt8gHwQ6GE4DIOm04RA9Fvr
+QmWFGpOwVHaLW24dW77FLe+rPQ6Unhps7qUd6HafEN4MJSx65TqaN26CSrjRQUK/
+RaabSUtXimlMGI8CrNqo33bnAJq2XimZuVjKTJHFN/QHRM4P4iaFtQRNnZ8RuYBn
+HWYRdy9KYlhrJh/inf9oNRClMmS/w3fTpA7rflrlCI00MftpAjt4b/EG9NitUoF6
+cN7nwpyckDpX7oPVFZ3l/Au7GoMfL+rnbkg/cmqyZaobUhj3wRTV7U9FHMbuYHVq
+TgQ5eUoMlIic+yM5fRTqy9udAzUxLqdvvCY7oDV9UQtVI2mqcAaE8WqbwbmN3yRG
+iKCJDZfViHOceawAGOfHbhYqA/PH4wNlaDtP1b9LqZsfHkJCoxiblKAgo13b+ipe
+3ileUKvNXa/8LPY5RVs14lE4NYHSODpQ+HF8ozuNDrXeuXKPJd7s86uv/4gfsLdH
+1KyaDdA91g1xpfwO+rBRA2EGJmiycAHN
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIHBzCCBLugAwIBAgIQd+j2dcfYMicfcXd2L4My2DBBBgkqhkiG9w0BAQowNKAP
+MA0GCWCGSAFlAwQCAQUAoRwwGgYJKoZIhvcNAQEIMA0GCWCGSAFlAwQCAQUAogMC
+ASAwWDELMAkGA1UEBhMCR0gxGTAXBgNVBAoMEEdoYW5hIEdvdmVybm1lbnQxDTAL
+BgNVBAsMBE5JVEExCjAIBgNVBAUTATIxEzARBgNVBAMMCkNTQ0EgR2hhbmEwHhcN
+MjEwNTExMTA0OTM5WhcNMzYwODExMTA0OTM5WjBYMQswCQYDVQQGEwJHSDEZMBcG
+A1UECgwQR2hhbmEgR292ZXJubWVudDENMAsGA1UECwwETklUQTEKMAgGA1UEBRMB
+MjETMBEGA1UEAwwKQ1NDQSBHaGFuYTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCC
+AgoCggIBAIAw123rCP30kJxNG1fhKC3KMVTaWRFQAr19n49LGirIccM1Dve9yn+Q
+SXPajBBfTNqOUqKDLilRhyji18l7L6lEdTKy+hZFDi37CBQttVD3xLkQ9OmQ5P96
+a9bTsJf5eSKUEU+dul2t2VJBkgeRUolhYEslPN6xUv9KdBIlgkwQbGJa2j21bvB7
+YeGarfTTcG1tvbOefCQuJlozbtKHa/yhl10afqhUo1UxlwJeawI7LnVSGwXd9aiF
+MDhGxp3HJ4aDzgzm6GvOK5NWSa879vZhZCeNQSFt05WCvjflZJNbcW0ai5M2eZnp
+bBCcJ+i0ep0uP1YIjysOvFOKu1ULRaJcuAmoIqL7LtLbdoXi6Gy3qK8KK6GRU0Di
+rtuvsmhp2VToGNvnggLmMRz0WNoZWVoY9D8tXU/EMLFeyoC5NsqORV4GPDwlvfwR
+0e2dhKDJIK/X7ABO8NUCxvCjZrblFpFrYu1k3gBI6KntrDEaKvN+YNabixAGlSDP
+O3caKM113hmbP10a8VmHP56z98473NlQj/xc1p5GOt4ZFbB/6Us9YNzuSzpDP4Kc
+1kTYZUvPFVZqtvOU5lzgZdnzFDCeiCZwYWQsS1VOpTA7FgPdpYw/IgOvFa1MVfVN
+MaIxCgzwjiodIGG8hyLSIVbWgIyL5stQ8Ot4K3wS8JC/jdU0mrazAgMBAAGjggFj
+MIIBXzAfBgNVHSMEGDAWgBR5X9s7IX67NjUAiYeVaEgQOHVoaTAdBgNVHQ4EFgQU
+eV/bOyF+uzY1AImHlWhIEDh1aGkwDgYDVR0PAQH/BAQDAgEGMBsGA1UdEQQUMBKk
+EDAOMQwwCgYDVQQHDANHSEEwGwYDVR0SBBQwEqQQMA4xDDAKBgNVBAcMA0dIQTAS
+BgNVHRMBAf8ECDAGAQH/AgEAMIGiBgNVHR8EgZowgZcwgZSggZGggY6GgYtsZGFw
+Oi8vbGRhcC5uaXRhLmdvdi5naC9jbj1DU0NBJSUyMGVJRCxvdT1OSVRBLG89R2hh
+bmElJTIwR292ZXJubWVudCxjPUdIP2NlcnRpZmljYXRlUmV2b2NhdGlvbkxpc3Q/
+YmFzZT8ob2JqZWN0Q2xhc3M9Y3JsRGlzdHJpYnV0aW9uUG9pbnQpMBoGA1UdEAQT
+MBGBDzIwMjYwNTExMTA0OTM5WjBBBgkqhkiG9w0BAQowNKAPMA0GCWCGSAFlAwQC
+AQUAoRwwGgYJKoZIhvcNAQEIMA0GCWCGSAFlAwQCAQUAogMCASADggIBAEXoy453
+I/ORmbD5NbNEWlOO9QQQUwFTsl+JWsqd/JDUQlxabhXC7wnEZTlu1OhAL8apqzG/
+zcYXEPGAjAQRkrXZGCxZpdHeiDXFwMId5ETqnCFsLOSt954mMgiQWxzuP7epcMod
+LvIG0bfZKeQin1XCDhP/1Vv9DM2wwvZmz+ijGqTjuGeHO3Ml60T/4OZoEDJHIGau
+frnJphqt8jgL7jfLAsVfWmGaH2q34jI69n419yLbUk3nmbGJ1alRF0kL8v4CMr2F
+zQUW4OvVoQp3L9siDFq3aiG4RcgM1mjeg4FAJo01FCtFzDEsZBe3VFLwgoEiP3ZG
+F8ufHe8iDjBX4UuCTNH8x40Qb1tQo75b7YWuY/ELG29QbQjDjubWvpvSiG1HlZ0Z
+MKVtzoHUP9tObfmPeHMz/6mlXi+JoPNL03/cIZN2DsmIfZvH/4m0iwjYR7RxVnK+
+GlleL7xBb46wlsjjb4cBIbx937xEwNbxLKR06w7CRP6tzSQNILkX9T81POUnfQut
+EB6jzdx3wLE6a7UW2tbFITbqflgjccIWRSA4g6VRtD1RBcNG6b6I7cys68kD+445
+ro+JGaA0xqNckLNmliUGuaETnCumBuF8jr/2d7iGDqRPFI4dOy+QeEnnuXbIpWYD
+p4xAoxoP1tmWC4B2S05/taS51D9jneCM8hg2
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIHCjCCBPKgAwIBAgIEAJ6xATANBgkqhkiG9w0BAQ0FADBEMQswCQYDVQQGEwJG
+STEQMA4GA1UECgwHRmlubGFuZDEMMAoGA1UECwwDVlJLMRUwEwYDVQQDDAxDU0NB
+IEZpbmxhbmQwHhcNMjIwNDA2MDYyNDEyWhcNMzAxMDE2MDcwNjMyWjBEMQswCQYD
+VQQGEwJGSTEQMA4GA1UECgwHRmlubGFuZDEMMAoGA1UECwwDVlJLMRUwEwYDVQQD
+DAxDU0NBIEZpbmxhbmQwggI4MIIBrwYHKoZIzj0CATCCAaICAQEwTAYHKoZIzj0B
+AQJBAKrdnbjb6cSLP9TmrjPJ/AfLMI2zs8nSDtZjnMpwMwhxfU2bAJvGaEKuzaEq
+5qOA5iiB/y8tgsaFKKpgVlg6SPMwgYQEQHgwozGLYDuJ4jJxRawjTMWUy92NPfkW
+EKg0QcrqmGO8Le1dWqglOqEKLvHJi5rItX8RF6cr8se558GsTXf8lMoEQD35FhCo
+NEHK6phjvC3tXVqoJTqhCi7xyYuayLV/ERenK/LHuefBrE13/JTK3Ag+Z5hAULde
+uuXdKAm9Y4AW9yMEgYEEga7kvdgu2WRaITIunExqk4Xtn3C12RbBtDti7vTQCY7/
+Ox944tDUjVDRaHuTuX1ffG1QR0BqXmiLNSIJvLn4In3eOF1WYzLswOq/qc94Iv3y
+CfcAJKV7GqAAxVuIH4ERstzeSUpfSF5bykvYiidjrtHKKy+o8FQGeM0eDzrYCJIC
+QQCq3Z242+nEiz/U5q4zyfwHyzCNs7PJ0g7WY5zKcDMIcFU+XEFMqSYZQYZhGX+s
+EEcdsdOBCF3a3bWHloKcqQBpAgEBA4GCAAQQvQy0csozD/hMDOB2aV3s31p+Ugva
+xew6MW08yjUBuyDdw5hnOkttKOH8Ifj5KOdsTTqeltb/wXnDM6S5S7pseYBxTSwU
+Fl+DfEFszgfCOBwcPbBamj1tj8tcOARXniSmE1QWMRtAHbrtqLsp6ld9vNc12cbf
+D2DRFxUIXYT4OaOCAewwggHoMB8GA1UdIwQYMBaAFIdYnCnZdpz1t+pmGjyMpfyi
+aL6UMB0GA1UdDgQWBBTWn2yn8uCrLFr68Z5pcmg2TTHTkzAOBgNVHQ8BAf8EBAMC
+AQYwKwYDVR0QBCQwIoAPMjAyMjA0MDYwNjI0MTJagQ8yMDI3MDQwNjA2MjQxMlow
+FQYDVR0gBA4wDDAKBggqgXaEBQIKBTBPBgNVHRIESDBGpBAwDjEMMAoGA1UEBwwD
+RklOgRZDU0NBLkZpbmxhbmRAZ292c2VjLmZphhpodHRwOi8vd3d3LnBvbGlpc2ku
+ZmkvY3NjYTBPBgNVHREESDBGpBAwDjEMMAoGA1UEBwwDRklOgRZDU0NBLkZpbmxh
+bmRAZ292c2VjLmZphhpodHRwOi8vd3d3LnBvbGlpc2kuZmkvY3NjYTASBgNVHRMB
+Af8ECDAGAQH/AgEAMIGbBgNVHR8EgZMwgZAwLaAroCmGJ2h0dHA6Ly9wcm94eS5m
+aW5laWQuZmkvY3JsL2NzY2FmaW5jLmNybDAtoCugKYYnaHR0cDovL3Byb3h5LmZp
+bmVpZC5maS9jcmwvY3NjYWZpbmMuY3JsMDCgLqAshipodHRwczovL3BrZGRvd25s
+b2FkMS5pY2FvLmludC9DUkxzL0ZJTi5jcmwwDQYJKoZIhvcNAQENBQADggIBAA9C
+ZXlAaFjIFSBS/7eheaYWFEyusE69Iu/RPMmRgWVolSxhd+yNPMZdelpZ1A+0pfxM
+kuboxybTeF5PxshM6ltFYjS6ir8WFghI8+W62XbhYx3KEBzDcVsUgTW8HQnx1dYh
+GvBLfBrO/OytkxHOu3rOD7do7Lg1YT796JiOnnQqKLgv+7TyzOEFIXGMXgmXK+a5
+v9rydNjFk0Ws3eVa8BUIidwxGynhKVF3+ZLhwU4a+8ZJfj8oENm2nPm3TkMu8Nlq
+BtJDrcgrhh6EMqlLSxz4/VqFSexrKXjkdP9E5sVyaoZBS3crQMT8vDiL8YU3KQ3A
+0xsFIC4XwV6htY9eOWrE42pKwdHCV3TJDAoB23MIaUGw/FAXHG+ocNRdo1XrrHAy
+0lkBNlHPvs5ZTpg+sSiGWycSCZFG/dKKCRBXxcv2cn5dxgqQEnqHQoqRAFVuyUAC
+WD+qiNbvN4pQ2d1ZvjEF7imDor7AFrYzsh3uMROOgyS2R17318w/d7IDXi+A8u01
+SMtZrOnQPo45PqSy3T0UYBqBk7ovh+byJrpJB80HxZE+ZFF9/mZ1FboAvRhmQIta
+wsRkTTAJVIZTRnTXZaX05K2hL+YaTUbUwfNnRsKmiAalaAPBj37oUtMEBLwBQnT4
+YclM2aMYo3FJKHbA5Jq81lMj+a/xyMrUG893288T
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIHEjCCBMagAwIBAgIIIqjE5ukqPyEwQQYJKoZIhvcNAQEKMDSgDzANBglghkgB
+ZQMEAgEFAKEcMBoGCSqGSIb3DQEBCDANBglghkgBZQMEAgEFAKIDAgEgMC8xCzAJ
+BgNVBAYTAlBIMQwwCgYDVQQKDANERkExEjAQBgNVBAMMCUNTQ0EwMTAwNjAeFw0y
+MjA2MjMxNjAwMDBaFw0zMjA3MDExNTU5NTlaMC8xCzAJBgNVBAYTAlBIMQwwCgYD
+VQQKDANERkExEjAQBgNVBAMMCUNTQ0EwMTAwNzCCAiIwDQYJKoZIhvcNAQEBBQAD
+ggIPADCCAgoCggIBANJAgb5swU/j+0s1q23xp/KPNzAX7xWia2f/LdBHc6PviUK3
+ul8vka6kaf51fi4zYqkHYQtEHzYQ9Six85c5oTLEvrwmw30lttEkgTNv7N38a9zQ
+Eb5PKRL/BmPLcNmTgoCBPdPzLy5v7xhIgfeEu9L9LRZbFp2FlMRdgy266/3LUy1l
+QrV0E4Jd9RZLV33NwkjfxKiwcesL7wIRKOkXK3ehilprAOvA4Hrwqd9lkmhIBaS6
+DbAN3aq/eTZB7A2lGuzGFgrNVqAZTRFhJxuP6q8K6FGuZfFGTHlge7sjfePb0KKZ
+6c2oRsNil2EI0QVVtXhmpWyHxqXZLRiI1iYPqQRZr7FGiLilOSHS1HfRZ3UYlWQS
+4B6yWSsnrWKj06UHd8S+4/NItHiLt7vTjWvZApaKezZA11+Yt4gk7pRi4bLUBbjB
+zn19vvR5wpeVU3kLfX+opvBdrUz5W5KiGLQQ61ud9xLQmbaVKgfxItIelbk06adl
+51g5exkf0BwMSuZpA5oNcAMwireNA4CXUrt7Z2w/O72axLjPAWLvtQ4BxS46l/7T
+HR5z8Ss9p7Tfh/1+k/cPktwVTQvO9aOcljGytQx8e5H0pj1OPUh8N/xju9+Htxyt
+VYFAlmHRX3f/c4pNU9I0JNmZSQYH6/2Ck7L7XCac2KGUd8qI9vfLGr4A+xbJAgMB
+AAGjggHIMIIBxDASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAd
+BgNVHQ4EFgQUoUNtuE8cE05Js4faVs7oARAtT3MwXgYDVR0jBFcwVYAU5WXl0gc3
+WY49k4/DWBZggEOZtOehM6QxMC8xCzAJBgNVBAYTAlBIMQwwCgYDVQQKDANERkEx
+EjAQBgNVBAMMCUNTQ0EwMTAwNoIIItklK//mqVcwKwYDVR0QBCQwIoAPMjAyMjA2
+MjMxNjAwMDBagQ8yMDI1MDcwMTE1NTk1OVowOQYDVR0RBDIwMIEccGFzc3BvcnQu
+ZGlyZWN0b3JAZGZhLmdvdi5waKQQMA4xDDAKBgNVBAcMA1BITDA5BgNVHRIEMjAw
+gRxwYXNzcG9ydC5kaXJlY3RvckBkZmEuZ292LnBopBAwDjEMMAoGA1UEBwwDUEhM
+MG0GA1UdHwRmMGQwMKAuoCyGKmh0dHBzOi8vcGtkZG93bmxvYWQxLmljYW8uaW50
+L0NSTHMvUEhMLmNybDAwoC6gLIYqaHR0cHM6Ly9wa2Rkb3dubG9hZDIuaWNhby5p
+bnQvQ1JMcy9QSEwuY3JsMA0GB2eBCAEBBgEEAgUAMEEGCSqGSIb3DQEBCjA0oA8w
+DQYJYIZIAWUDBAIBBQChHDAaBgkqhkiG9w0BAQgwDQYJYIZIAWUDBAIBBQCiAwIB
+IAOCAgEAZhKKbn3m9M2eNpWWzrfa/5L+LHfnri+fgrVMFuui5FxgOgFdI7vTciJI
+33duEQqNtmLMqjsHS6wNuVaA7v5a016C0pWTZ4U3/xb29F3CdwhZLGvCfiOX7Ucv
+B6MYs+tnggi8sNTJR8bsK0w/F/v9uwbBAZBWlVY+Pfw7pTqNLQA9i52NFkd0W7LH
+WdnLL511ZDY3jiRGQXKr270cKnBnxtfhzsSXgQtXq/aZ20NSab7lIBjTYZ0DKH5a
+qkRFx8virSYDPeRLJayxBqP3OiipdMiImXRfCcnZ7fX6sh8tYPoKIKM769h6Mttd
+K+N+YbzVnldJjwhcJ/adeR8sWoMt3Bn3mqvZpwErHypn7CHJJDDmDGFUYHWmQZOr
+Isq2ovcHKWBSTDawpoZp+kFdS7TT9oNMyO9ZGaCGNAY60eg8AHpLpk5vko166Ael
+W3Ylm4hGaT1oHZaK3/4YLcCc5OMO6DgaqitbuRrvoYVkqopwp0AThQoALiySdkjW
+TagrxnAXqHSlvCi1+Dm1C+cMRMkdjuyk1SuZGbtSQfmPX/L3HbB8XwdWpxYTzcc0
+hUFiXgx5CpsfFFErzrk89pJJwN5UiygghFxva3n2Z6hzh+NSDno/HUUej118qpII
+9c950sh7CVKPFpgSQN/Qi8z2GTU1jYpGmY6G6+iihpzsM92FNvA=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIHEjCCBMagAwIBAgILAMjjoPACCYGRgUQwQQYJKoZIhvcNAQEKMDSgDzANBglg
+hkgBZQMEAgEFAKEcMBoGCSqGSIb3DQEBCDANBglghkgBZQMEAgEFAKIDAgEgMC8x
+EjAQBgNVBAMMCUNTQ0EwMTAwNTEMMAoGA1UECgwDREZBMQswCQYDVQQGEwJQSDAe
+Fw0xNzEyMjAxNjAwMDBaFw0zMDA0MDExNTU5NTlaMC8xEjAQBgNVBAMMCUNTQ0Ew
+MTAwNTEMMAoGA1UECgwDREZBMQswCQYDVQQGEwJQSDCCAiIwDQYJKoZIhvcNAQEB
+BQADggIPADCCAgoCggIBALHBCMmweH79U+f7uUhg6R4ZGRIJL7KsBkag0YanKqO6
+83TMjh6+CkBMIhc3wpD5cJlQOhY3TeVzPOo8bJ3AI+CxFxN30i7ROxdb9aCvh9rK
+YUQeQaoLfiQc9iqbhOhGdbNJktXarx7i8KopzliLLGzLCbAmpPtLiWoM+O9SSsnz
+EBdQoQmRT5eY1k13cU4wbcI8OIrrJIfDxw+EYe+yWqyN4SbX/o6u1YsDkImcoOz4
+lqsrq4TRa70CtBQmONymDn9b6Dvl8GH/gtBjI4pJ6UJhrFhiMWNS4LILpGV6tNlj
+1ZxvyggjuppAGCDRDaTGDlWLZyDeOQ4NE48Ul+7ndXLCIyN+YRwVy8oRD7VLuRAR
+vanbZvXbvlhQu1Xc0H1UexhTmdqP8hZl0T6lJkPhTSBrXtuawPpG1HoDvtGgZThi
+Fp2f6M4Vzs6R4L1gOsan1CqbH4j8hRk7adM1Dv2QC3JtUzYMAjH80BYOi3bdkPw5
+bNNozK+Xpc8i/1TjFf+Trt3LYF3QRnWpXu5Mw5q16ofTKzo1qlQ1gJbP8PC8Vvt2
++rnekQ6QcSmp/jCgGnZjK52kT4fHPZV1gvkODj7ndVAoTTVl8tXSGbKJ3I8wDnnF
+mU1lQc7oIEJ6HiFp4B8J4Eb+1zxTUGelNZvxDDOVYwZjNOlaUNknXW1MGtSyrWYR
+AgMBAAGjggHFMIIBwTASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIB
+BjAdBgNVHQ4EFgQU2mJJjjXKvshho51Fn6ilvQN7cpwwYQYDVR0jBFowWIAU2mJJ
+jjXKvshho51Fn6ilvQN7cpyhM6QxMC8xEjAQBgNVBAMMCUNTQ0EwMTAwNTEMMAoG
+A1UECgwDREZBMQswCQYDVQQGEwJQSIILAMjjoPACCYGRgUQwKwYDVR0QBCQwIoAP
+MjAxNzEyMjAxNjAwMDBagQ8yMDIwMDEwMTE1NTk1OVowOQYDVR0RBDIwMIEccGFz
+c3BvcnQuZGlyZWN0b3JAZGZhLmdvdi5waKQQMA4xDDAKBgNVBAcMA1BITDA5BgNV
+HRIEMjAwgRxwYXNzcG9ydC5kaXJlY3RvckBkZmEuZ292LnBopBAwDjEMMAoGA1UE
+BwwDUEhMMGcGA1UdHwRgMF4wXKBaoFiGKmh0dHBzOi8vcGtkZG93bmxvYWQxLmlj
+YW8uaW50L0NSTHMvUEhMLmNybIYqaHR0cHM6Ly9wa2Rkb3dubG9hZDIuaWNhby5p
+bnQvQ1JMcy9QSEwuY3JsMA0GB2eBCAEBBgEEAgUAMEEGCSqGSIb3DQEBCjA0oA8w
+DQYJYIZIAWUDBAIBBQChHDAaBgkqhkiG9w0BAQgwDQYJYIZIAWUDBAIBBQCiAwIB
+IAOCAgEAXtkakIZ+r8HNjc/MJ2z3Z+CN3WIyJhrlv3toGjAjNkQ4msWw9PEWDQZS
+yhRS+UPWVHG+ADYk9iWiqsCoWe3qwfsO90wWiR3Sc8Ltbma7myIe5BA/ykK8t1x/
+KEyS5defP8p41QZAh36leAx7Eu1uOPxOwAdBKYqoEF101SJV5wQVrQa9SOuV9JuR
+qff4QBPqzV3O2PUM50/cqZFL0WAFFe5H+XbFIdMXcscxYfP/NbfjXb+UDB5DVyE7
+FoO2j7o8IhLZHFyckLE7QaUeShjXYSGhjIj3jMGEiefiWL5RaxygvweZo2mCFKGX
+5RgHo3SNphWClTuwkR3XSnliT0qvCzRP8xsXQTSu90ltE04i/0cBTxRJvf9ezp6Q
+k4pmCG3AKCa6/PG9t7VdZuptl3bxY2aAV1Q4iVLuuooGABXCnDQ2Tq2Glo64EsGH
+QPkru9RKLvcoDibjIgnuMsp4u3xiGTB3bN8PnLTVaHXJHHtDi2ob23RksD0ltj8S
+0LxwND51o3Tlg/avCMVlHHuN2bE1aQx6lm0MBcWiSDR1pXKI+pxhUq92Sxeh3dcp
+lmsHf14fwn2T9SUFcDtOK0mntya7tjf6RAkkCd1jVveO9C18rLhHNB4/u8dh0vEk
+UVywW/p4FGfy63bzeJR8MeFiGMefYXgn0uRoxb6yQLv3QmOVHVo=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIHFzCCBMugAwIBAgIIP0sOYfGcIfkwQQYJKoZIhvcNAQEKMDSgDzANBglghkgB
+ZQMEAgEFAKEcMBoGCSqGSIb3DQEBCDANBglghkgBZQMEAgEFAKIDAgEgMIGIMTkw
+NwYDVQQDDDBHcmFuZC1EdWNoeSBvZiBMdXhlbWJvdXJnIENTQ0EgZVRyYXZlbCBE
+b2N1bWVudHMxPjA8BgNVBAoMNUdyYW5kLUR1Y2h5IG9mIEx1eGVtYm91cmcgTWlu
+aXN0cnkgb2YgRm9yZWlnbiBBZmZhaXJzMQswCQYDVQQGEwJMVTAeFw0xOTA3MTkx
+MzUxNDFaFw0zMjEyMzAxNTQ1MzNaMFUxCzAJBgNVBAYTAkxVMR0wGwYDVQQKDBRJ
+TkNFUlQgcHVibGljIGFnZW5jeTEnMCUGA1UEAwweR3JhbmQgRHVjaHkgb2YgTHV4
+ZW1ib3VyZyBDU0NBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEArDZt
+C6KBnr3AFw3cUODBdCbirTo+kJ/VtYrBNWPnl8fi2BTqjkpODSCb8B66Z3PvHRN7
+xQmckfQd+goBoMsepRzzfGhrwSRhrPOqXv2LX/xbJch1fiNj1+/i5we/BU3YQKHV
+P4XhuU9pVxiJMTaUcHpy4rplfACmsB31FJZUMWQR7t/7kB45XqhgVFg56u4zjl6o
++jOv6bygfpF9RHQcoo6C9lGqoMKx8KvrMSOLYJbwZ8+AFcryQ/UcCpTM8H7fMCAQ
+mCGEEWIEmtbHhcnAETR5gsCaEQsdHdtjqpN8NDxXuJk/YInfQ3uPa09H4Xpx8os8
+rX6Bc+uZBXYsJJOKJNnIi1Cx/jaA+nXAMMDWOHE21Tmjoaqjh1mZlKZe/7/5zNpb
+mORHeIJxGq/qqCOlC3++QMFDhXCwWbjRSantPUhIiF1i9ZaCO55QWX5GGs50cqWl
+njMyinoA94eY5PIAIJXxx122JXzcq/PIAzwyNm9Hl+HxgIDEu7xDib31rNS85OjV
+xsAKKvEWMJYHpTFy32eTw963BCFBebgABWcIlnw7uX9tERlAkW/L/yb0rBY8KDv2
+be6APGu09Aq+5AEWQAO/uHJFOEH1MJy+b8RTWJsleLmtTzVpaeTVQP+X+FrTp5Qw
+NU4rJpcPCQI86oHOx3HtxsutlrbeueqymDGhaFkCAwEAAaOCAU0wggFJMA4GA1Ud
+DwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/AgEAMCsGA1UdEAQkMCKADzIwMTkw
+NzE5MTMwODA2WoEPMjAyMzA3MTkxMzA4MDZaMB0GA1UdDgQWBBQaz0fHmOU1TI+f
+VauomvnjxzydezA1BgNVHR8ELjAsMCqgKKAmhiRodHRwOi8vcmVwb3NpdG9yeS5p
+bmNlcnQubHUvY3NjYS5jcmwwFgYDVR0gBA8wDTALBgkrgSsFAQEBAQAwKwYDVR0S
+BCQwIoEOY3NjYUBpbmNlcnQubHWkEDAOMQwwCgYDVQQHDANMVVgwKwYDVR0RBCQw
+IoEOY3NjYUBpbmNlcnQubHWkEDAOMQwwCgYDVQQHDANMVVgwDQYHZ4EIAQEGAQQC
+BQAwHwYDVR0jBBgwFoAUoFn8AxKVTcE62USmIMCeZ57VU6cwQQYJKoZIhvcNAQEK
+MDSgDzANBglghkgBZQMEAgEFAKEcMBoGCSqGSIb3DQEBCDANBglghkgBZQMEAgEF
+AKIDAgEgA4ICAQAXCZ6QXDcFLJ7iHt6umeEW1N1QkTTmiYLvtDW/J7ofDtKkA0GA
+iqDypuUDPJG4jnATGjzMMIhuZ+NhMa310L28foxsU/E39bHwV7/2r8BRZ2+oPhXx
+ZmC90q8/B7oAAtyH4w8DOK0FXwlViwtrTZO35hkjFFtHLsyV6/UcdTafS4nWvXDm
++JfkBFW5HDWmi+i7KoWFbLUu/p09VMa9yZkaJoTBch45zAM1fVSTOT8ZyFxSwkYR
+rDzlitdnZ6VMK4LbMu1L0D5oIFCWqR1rfaS5qrXWWLhmCy5E2q/2V7RqJzjNzrSU
+PIrjnR6IjYt3Iu8BV7oqhH3BQ42Swr78xjMN6Sk2amViHRfPww87UK6WvB/gbxQb
+y7Qw31o4rwSOZnYgBIKeBUv4oxMX3OpCh9g1UtQsJwcI+zf43ksQKdSJckbYu7GZ
+1itTq78YcBBpY3xIuPvVw/RDTXl50EXcklB2ahGcHY8CJ+PkYHDNCrSVO5p6nnxJ
+FFob4T4VjV0VPilgcGssyajD4STu9w66E/PBuH94TWYuHMWXXSaeWDrY29fmD+TN
+hafL572s1eoKHM0ooXRX5oS/F+s/B56TJ2RtSABlePdtelODWgdPlZQgDfWKEY+a
+zkHNNkK2Rcaed0BLtZSvi0RIgxSiMsqFuLNI725e0gQ7Jh8ef1HOGXVHhg==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIHGTCCBM2gAwIBAgIID2Z7nPfeOoIwQQYJKoZIhvcNAQEKMDSgDzANBglghkgB
+ZQMEAgEFAKEcMBoGCSqGSIb3DQEBCDANBglghkgBZQMEAgEFAKIDAgEgMDsxCzAJ
+BgNVBAYTAlRaMRQwEgYDVQQKDAtJbW1pZ3JhdGlvbjEWMBQGA1UEAwwNY3NjYS10
+YW56YW5pYTAeFw0yMjA5MjAyMTAwMDBaFw0zMzAxMDEyMDU5NTlaMDsxCzAJBgNV
+BAYTAlRaMRQwEgYDVQQKDAtJbW1pZ3JhdGlvbjEWMBQGA1UEAwwNY3NjYS10YW56
+YW5pYTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK7r31lmSx259xUU
+Lh+LZ0kzuJthHWhbxmc8l5Abb6AOUlaI662YGh7IYVnGBwspj9PXfupkh66ohSNs
+uaPCYhD6+ksHw75k4AWAt7KXl87m7MTKoD7UAYzfKlsq4mCB3k0HqYwHvjfUcwVC
+S1W5IgK2hRSr/dGY2D+iJbffS8QCT+O23jEKWexkhQ7uHxuofsdQk7DYScxhjesR
+T9RX4E7WulWfkNBYR5umI1EzibYrtvwRPHqAu/JPuIVYJwVnrpa9+pjdsHAFGLnI
+BvXFp4YWtpGwbOYNf/qXGPsRiU1rp5VfcknxkBCRIXSP726hyn595YdNpf8utMEn
+rYm8yhXVlLMxmzjnUeeSW6ltZszXZQ0m35ffPKmckhfB2zPMC4jgHQ4MmBrKJ5ft
++OWDedSqYG48IYCF+igH7ZLnM13cpNWJ2yjusCUn/SZPAMXyeodhdV4JeZsYFTn6
+HXNgD77Jl10GsL0OPn/klnno5Lsi3Q16weJaNf2buooNRFrJjekwXNVVZ+fPqp1+
+2+Rg2vkQLfW9zL3Sbi3N/CknRmdCJk+vJL2NvdaVdBBIgQbTVCRoQ40xoPeNGMuJ
+ig59qXdAhHwlFfSl08jgFyKwq5YkvBBp+ECwsYzD0fTDRFvCJvq3fiZqHwYMrsFs
+5VNRbZ+WJUUiVf7DY3o67yqoCHSrAgMBAAGjggG3MIIBszASBgNVHRMBAf8ECDAG
+AQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUYQ8cnhH1tL3BopmcFj+u
+K9/szDgwagYDVR0jBGMwYYAUkPfRchwDH0gmljfe8czRlPWHrPuhP6Q9MDsxCzAJ
+BgNVBAYTAlRaMRQwEgYDVQQKDAtJbW1pZ3JhdGlvbjEWMBQGA1UEAwwNY3NjYS10
+YW56YW5pYYIIDmswsj5q5x8wKwYDVR0QBCQwIoAPMjAyMjA5MjAyMTAwMDBagQ8y
+MDI1MTAwMTIwNTk1OVowMgYDVR0RBCswKYEVcGtpQGltbWlncmF0aW9uLmdvLnR6
+pBAwDjEMMAoGA1UEBwwDVFpBMDIGA1UdEgQrMCmBFXBraUBpbW1pZ3JhdGlvbi5n
+by50eqQQMA4xDDAKBgNVBAcMA1RaQTBtBgNVHR8EZjBkMDCgLqAshipodHRwczov
+L3BrZGRvd25sb2FkMS5pY2FvLmludC9DUkxzL1RaQS5jcmwwMKAuoCyGKmh0dHBz
+Oi8vcGtkZG93bmxvYWQyLmljYW8uaW50L0NSTHMvVFpBLmNybDBBBgkqhkiG9w0B
+AQowNKAPMA0GCWCGSAFlAwQCAQUAoRwwGgYJKoZIhvcNAQEIMA0GCWCGSAFlAwQC
+AQUAogMCASADggIBAFv1yVuZ5Eir+zju1rQjK2vnBYv3xD6eIEYLQedxSL9SDpRg
+gNHQFJQJzrJ3TqIDMMPx1LvkCbSjodAuRYS6bWmf9DHTjpwSC2kIvce5KfAjpCyf
+gTwVW7/NfKqzlaxOh/F7y9yNG0ITcuC9P+/7xrCkJbZOf2cozNi2grECfvgyrj8C
+grPiQjIX+kiryAPHSXaf9iWZ9n3eVeNLNFI+ztG730B1f8MBTs56kGznqF0/Wmgp
+xI8JeJz+aTPOqX01Zcv/3+eYuzNwhlkg5+IHxCQHKMTsP/m47bGpX5ETaE+KG312
+OXv55yxc/SMNSDJqz1gJpqspTZhwoe+N6PHv+7rcNS8IMvS0gn7Sd74Sd82HPBc7
+LeWBW5/981y6iwhS1AsOkhJ93ngXsEo3je+SLJPTKO/Fs/SXbR79uIpaSi7vMNwp
+JqvbjQszUSfa9HmCOFdO93aoNBSk9Y1gQiLAz6aWOm/SQoOj4URTWF+a6/cWBI+K
+4NDuA/Clu3RCyK1LGV/gQQWM0AHyqqD2cuOCi85DN8P/3PHCa+R6VVXbXLIu8ldl
+7Cw/pO7agUp3qL2bGN69HI4pdhxMkh1dNLJx0wsbSFf162ZV6+gKRx+ZZ3uOBKq9
+CL/BfCbGI1Ug0E54oL5COyVAQce/TkGE9f+M65AD4NTinI1xUHD/SmukqWud
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIHGjCCBM6gAwIBAgIIH0sDb0DFHj8wQQYJKoZIhvcNAQEKMDSgDzANBglghkgB
+ZQMEAgEFAKEcMBoGCSqGSIb3DQEBCDANBglghkgBZQMEAgEFAKIDAgEgMH0xCzAJ
+BgNVBAYTAkxVMTswOQYDVQQKDDJHcmFuZC1EdWNoeSBvZiBMdXhlbWJvdXJnIE1p
+bmlzdHJ5IEZvcmVpZ24gQWZmYWlyczExMC8GA1UEAwwoR3JhbmQtRHVjaHkgb2Yg
+THV4ZW1ib3VyZyBDU0NBIGVQYXNzcG9ydDAeFw0xODEwMzAxNjM0MzZaFw0yODEy
+MzAxNjM0MzZaMIGIMQswCQYDVQQGEwJMVTE+MDwGA1UECgw1R3JhbmQtRHVjaHkg
+b2YgTHV4ZW1ib3VyZyBNaW5pc3RyeSBvZiBGb3JlaWduIEFmZmFpcnMxOTA3BgNV
+BAMMMEdyYW5kLUR1Y2h5IG9mIEx1eGVtYm91cmcgQ1NDQSBlVHJhdmVsIERvY3Vt
+ZW50czCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAKgNuEvu/MySNuvZ
+4XxxowIaTEpgbu4inDQWJee3UXFT9ua1K66cn/IByqIrvFjiKbww/kTcAOz1RsEY
+8Ic/qkFqe+Yeyna6TY+kgusL4cGtBJbNa+pzmlQ3rg9xXJAONSQD6PjJHncPxLfk
+Wzl/YzhzV8ArTUAvKlVar6YlZTkNuWd90705ipcrSf359nxI1GPdE1kszDregjSG
+ogf9Lw145/fRhQA7YmGRefh7v78lgibb3ZheMpTQ/+hHOvv4XwqYmhP09H6ooFao
+NGBlp+tHeaBiAEpm26aQvtNJudO+0zIeO0bYgKIrUZlch1YaLyHFLjZ/KQDdaP7P
+P3YiWWwyaJrRn7heFfv55btAIH69j+ukuVxPq8koEXPMZSnLIugjCYSsLSLy2icy
+85Zp4qwlghb0cy/+x5M/32duORrcKTU5vLyMQkYpAQFs7VABuer/Ip8t9+oBYDER
+FwOlt/zih8kQiO7njmIe145WVTRG/28bhpmOlXpaC2JagR6fVVqkVNWuYK+Nrujn
+cZ/ktG53szuB/egIScJqfbeNvnbwiop/plVL97A2W0U8ATPTIDtzLWcRwxdGvFx3
+p9zaKuSB9BIlWW/8VZmMkpwaZhxZCris1zHDoiVgIZQA1nMWAhB4qpNwaExSJxH8
+14njkRaoB1hQueOJZ8lH5yv+6I7XAgMBAAGjggEoMIIBJDAdBgNVHQ4EFgQUoFn8
+AxKVTcE62USmIMCeZ57VU6cwDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBT77NlP
+9FmkQ9GssbDT5sHjcqRrODArBgNVHRAEJDAigA8yMDE4MTAzMDE2MzQzNlqBDzIw
+MjIxMDMwMTYzNDM2WjA/BgNVHR8EODA2MDSgMqAwhi5odHRwOi8vcmVwb3NpdG9y
+eS5pbmNlcnQubHUvQ1NDQV9lUGFzc3BvcnQuY3JsMA4GA1UdDwEB/wQEAwIBBjAq
+BgNVHREEIzAhgQ5jc2NhQGluY2VydC5sdaQPMA0xCzAJBgNVBAcMAkxVMCoGA1Ud
+EgQjMCGBDmNzY2FAaW5jZXJ0Lmx1pA8wDTELMAkGA1UEBwwCTFUwQQYJKoZIhvcN
+AQEKMDSgDzANBglghkgBZQMEAgEFAKEcMBoGCSqGSIb3DQEBCDANBglghkgBZQME
+AgEFAKIDAgEgA4ICAQAd2HY64uwJixgz3vkVdgWPFyMH+m/xijtlXQ5tSgMEOGdO
+KPFG019CGANoK9ADUpdbZ3exz2w1YYLB2CyaiPgLSPrnS5f2jho+fJ/nCWYSinOQ
+yXejnN/vyVOkOMRurvFCJL1nQt9rJUO2DWGy2zyqlrzvFnAQ4LU9HdmWSM3Bi77Y
+Hg1qD6SUM3t/57lEbOI/e/cbvIqcHI6eCXv+G1NIqDwgvTq15ikcTaIpfsjV1r5G
+5Wcgwfii+7KEYEPKd/IceSXs6PWAdBxNkAe8y730sOyF0NRKrtBVBddUP+MJ7kUa
+JCp1XrH1NjEhmgdgvOZSkmwsE2XfMf0NtiEAcAQuG09nDYGs6Sc3gI/pWP0W3hj1
+iujFl3v8WsJHadWpc+VuLV8q62Dps4Ow/d50CqcZeRZ+EjxgVTNV4VjrfWlK/jZX
+d5gEFE0BQARz7vzT7DyWY38GrBQ7Thh4iUnt9hKdzmvLd64uefL2uHh0JbyMprMe
+2g6uTtOe2VQH67XhA0wA0aFdNFYxk56ha63puhsEhdofHP2qMGO//ZPTYZwJWXmq
+rKfUPjbOUg9YMjNZ5lSKUOV3VlWZYC2yir201qwGNg6kYurO6DJ1Vq2uPIpAefjA
+A3t7qopUzBy0LEG4Qbd2jGCxWgPW/9/H9bF0DKCyVfGwDp0Wfi0j3+uDLgaRLg==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIHGjCCBQKgAwIBAgIEUNtgtjANBgkqhkiG9w0BAQsFADB0MQswCQYDVQQGEwJU
+SDEkMCIGA1UECgwbTWluaXN0cnkgT2YgRm9yZWlnbiBBZmZhaXJzMScwJQYDVQQL
+DB5EZXBhcnRtZW50IG9mIENvbnN1bGFyIEFmZmFpcnMxFjAUBgNVBAMMDVRoYWls
+YW5kIENTQ0EwHhcNMTcxMjEzMDI1OTQ0WhcNMjMxMjI2MDg0NDE5WjB0MQswCQYD
+VQQGEwJUSDEkMCIGA1UECgwbTWluaXN0cnkgT2YgRm9yZWlnbiBBZmZhaXJzMScw
+JQYDVQQLDB5EZXBhcnRtZW50IG9mIENvbnN1bGFyIEFmZmFpcnMxFjAUBgNVBAMM
+DVRoYWlsYW5kIENTQ0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCz
+PRSu0mIsuChreTdACbfv7ULeTT0e3dpCLCU8bUnYzgJ4mmdTnc32PrUyWGViU5J1
+yhdSkndRpK5KQdeYRp4Wn5ri6hDo/S+EjYw31k0elOh+F4+wfx0Z4vLQEZNHD6J+
+w5V+K14RJTvtbIOuyeuLan4a0OxUI4Ai75hri7/lo6JEJJAIO6ohOZ0KMcAaLMZ5
+qwZaeH/JS9c9u35Y+kMNY1+hZjvPcb4wHcwPLwSirtlfmVKXshO37D1XIJUuhtdL
+mOq5GxXSza6arvuaTpfwt4im4oKGYTKGv27Ke9WOWnujMhugPhCzjtFd7GGOPCTg
+5DgcyqDO5MnyqsV/LsZkx1wvqVXpfO4D260CG6lpUfi83subz3zQpX5WaMZnLs1R
+xGtRsb+qzmGUClr1xxw/DmzP5mBDDSo0gmG/0pvPEzCG8Lyz8DdWPz27g6/oXWjD
+gvcoGlyBoCcX51yntvNTv6cAJzFSoXwSL3FqqTaxWBdLv+tuFVikCG6A/urUyalG
+CP8ZLO8Jw2SJU9zjGDHL/1Zd15LLgVpR1DEoNDOvSfVp0C3GQwhFurayc2ARPR90
+zDOyCV3bDtqCwNIczVlYJ2KLMjkUvunIb3y8Z41MtqpuvUJ6+crWNC2Qt/i7Chqk
+HjkiiBQ5NCgmlBIGOsFreWDPpjMUfufKdhIT/PY88wIDAQABo4IBsjCCAa4wDwYD
+VR0TAQH/BAUwAwEB/zARBgNVHSAECjAIMAYGBFUdIAAwHwYDVR0jBBgwFoAUgjS2
+sXTry+Jxrq9EbMTqMSI4c+wwHQYDVR0OBBYEFIqOYuJRC3tcgJaF7HHuggVZbqap
+MIIBOQYDVR0fBIIBMDCCASwwgZeggZSggZGGgY5sZGFwOi8vQ1NDQS9jbj1UaGFp
+bGFuZCUyMENTQ0Esb3U9RGVwYXJ0bWVudCUyMG9mJTIwQ29uc3VsYXIlMjBBZmZh
+aXJzLG89TWluaXN0cnklMjBPZiUyMEZvcmVpZ24lMjBBZmZhaXJzLGM9VEg/Y2Vy
+dGlmaWNhdGVSZXZvY2F0aW9uTGlzdD9iYXNlMIGPoIGMoIGJpIGGMIGDMQswCQYD
+VQQGEwJUSDEkMCIGA1UECgwbTWluaXN0cnkgT2YgRm9yZWlnbiBBZmZhaXJzMScw
+JQYDVQQLDB5EZXBhcnRtZW50IG9mIENvbnN1bGFyIEFmZmFpcnMxFjAUBgNVBAMM
+DVRoYWlsYW5kIENTQ0ExDTALBgNVBAMMBENSTDEwCwYDVR0PBAQDAgEGMA0GCSqG
+SIb3DQEBCwUAA4ICAQCVARjy/zVxpR5dwBJha/Og0WLMCLV6/O43V10d7aE86wl8
+++1P7lEGQdufsNSOnUv804KAFxLFoGlaq/WRMvIedwvnzAYj6LGPOZld9YpBHtrl
+YBg6QV7Gkou12RPShk/HunlqQz1Rwe6zDpDL8VO7+3KO5tuSs/bQTfxyqKr/t6TO
+hiCZUrERC97bUModLSQDltrVkzoSORgNodexr54qdMaPATz6h3yVeH+kpd9t7PaR
+gMSbbTEc2eDNMXP+/lENBswbca1tjZhTpHTYB643/KWQXAqi3+DlZsfiUviKG2nv
+226xJyLLxPbmQvlGnbevpB6EigjsOFmsULxZ7qK2S11QbOJAtemNQxd8lEHmX8Rl
+vt6P76Fe5bl6qwvH7prrEHX/XS06dl9osWuVvf2zDAkn/LVdfsS86vtuT2T41Je5
+auglHuahLA8wqqf29waVHW/8GisxQAFi9/dYsWILK6ixI/1bYd3L9hVC94zY3uBW
++Nn7EJr160woCoJOLePUSfZzJPTOVaMLsHyO77lRUcoUii7sP2KNDo0aYwnvd7gL
+5Hqk+qI9sYJoTV7BULvkDt4SCEyP7MmIijP0TZw0hWuRQn6iwXxhfTgMSymNpJZ7
+OZlhtvmj9THUU9bM4lUUoE10zCIgNzxjUIYu8izXoSjbLHqCP8+EPqsgXD5u+g==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+/I1gZQ==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIHKzCCBN+gAwIBAgIIIxg899ysqywwQQYJKoZIhvcNAQEKMDSgDzANBglghkgB
+ZQMEAgEFAKEcMBoGCSqGSIb3DQEBCDANBglghkgBZQMEAgEFAKIDAgEgMEExCzAJ
+BgNVBAYTAkJIMRswGQYDVQQKDBJLSU5HRE9NIE9GIEJBSFJBSU4xFTATBgNVBAMM
+DGNzY2EtYmFocmFpbjAeFw0yMzAyMjgyMTAwMDBaFw0zNjA2MDEyMDU5NTlaMEEx
+CzAJBgNVBAYTAkJIMRswGQYDVQQKDBJLSU5HRE9NIE9GIEJBSFJBSU4xFTATBgNV
+BAMMDGNzY2EtYmFocmFpbjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
+ANZk5A7BRNDu9KPUqvbFThjbUZPHBSZYRolZe56o5WldyfCA5fN747I6Wn8v1oWd
+2q++LNnBlIgm+9qY492LButmiLQET3e6jvmbyhQ4qCgWvVz8CVDWN0STPvOCzxhV
+sHt2PGjLOaIJ+rFSnOyYP4BD25JpAKA0X/r3CWLcoXmAh1JlG9JV9V7/c8wqYpzm
+/IONIig65PMaOJVAGJd+UCTDIN8r2C46TwMtG10Ak2F9EQsVgOf9GRRXfY32CaUV
+fJfKTMCnlQa3D3o+FfSXclun0ILesvFsPkjgzaUe7dirAOt7jzeqWxj4lYSjix8f
+DgBCkBSpi4PQaCzJ5c3EsuVCyzlGd6NkggSeYgP0TEpPTv8oV0LYcqs2g2rmMdiM
+NuWCClObvDi+9OKCoPrgPZdzX5jLep/AQ1dS0aVTjETG45xYogNIfth7LHTKUoO+
+RN7Yo+AXk4Wy5UJUUgmRa1zw1fiXvCDe6h1Q7TQhl+Hp//EpuTdh0xqf6bgN/l4x
+i1VJfX8ttF5V39sPYjXwghXSzIrgsTjfqSMRqcIzBqQt06t7Ki7XtDSY/dF6yAoY
+omHsKKCrJl89yhKMaLpYdPtHW6lfvQoh6QEn0WnLc7u+xcJeVc6RK290sVxJIfAi
+lVn+lr4RCyzgs/xPjtbGDJ/hSlv7o2ETtv/UP6ALOkN7AgMBAAGjggG9MIIBuTAS
+BgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQULKS/
+00LOBs1wvA1e5YjWsJx70hgwcAYDVR0jBGkwZ4AULKS/00LOBs1wvA1e5YjWsJx7
+0hihRaRDMEExCzAJBgNVBAYTAkJIMRswGQYDVQQKDBJLSU5HRE9NIE9GIEJBSFJB
+SU4xFTATBgNVBAMMDGNzY2EtYmFocmFpboIIIxg899ysqywwKwYDVR0QBCQwIoAP
+MjAyMzAyMjgyMTAwMDBagQ8yMDI2MDMwMTIwNTk1OVowMgYDVR0RBCswKYEVZXBh
+c3Nwb3J0QG5wcmEuZ292LmJopBAwDjEMMAoGA1UEBwwDQkhSMDIGA1UdEgQrMCmB
+FWVwYXNzcG9ydEBucHJhLmdvdi5iaKQQMA4xDDAKBgNVBAcMA0JIUjBtBgNVHR8E
+ZjBkMDCgLqAshipodHRwczovL3BrZGRvd25sb2FkMS5pY2FvLmludC9DUkxzL0JI
+Ui5jcmwwMKAuoCyGKmh0dHBzOi8vcGtkZG93bmxvYWQyLmljYW8uaW50L0NSTHMv
+QkhSLmNybDBBBgkqhkiG9w0BAQowNKAPMA0GCWCGSAFlAwQCAQUAoRwwGgYJKoZI
+hvcNAQEIMA0GCWCGSAFlAwQCAQUAogMCASADggIBAD7CYiorQAynBXHCxIDg2rJy
+PwgL66mI0wthc7RiG9KcYXVmFfJu/rA5J/WKubiz1U/di1aVb4aERailuogeP57A
+yArhPj+1/3PxFBJmrHJm9viigdwcenV9GmOevepNuuNH5qFb3NdLnXDmCD/3Y9tZ
+V/PKQkr4AO70h2+FXDM36h7BOa9jCgPBnyKUOE4V7OJS67/sNXQ2fDqURgzORC83
+AEU5+r6myrgvWgIhHXTEHfeYj+HzQ0P/sfZOibGO9XAQ+ZIDQdutlKHeGulTcH+z
+261BSKPZpCtQS/U99ttnv8ACuIIwpPJH/exr/wzwH30KmpAIQK6gDhf8AIQ2kFlf
+MdfKJGAnUARv0oZW9rBH5KyFD0fr9+5mqYyBUguDJTB7pmGj5BK2wL42L9zjoLy0
+E1QXOr+T1oSamqfBIzmA8mcZ4w35urAARM2ZvzAkU6ebR2eW3ebbcGgVFSTBpns7
+d4oHkv8FaEXtKbiCer90LiaY9SNwhy5aNwBzeADJfGCNHhli3LKpr4MfCLO2BiDd
+Eb7iVRbl8m2j+kTf4omD2NjpUgLq5ihgrIncehdDqwPCJu8tdu3c0rtzEFavWxUn
+P9J7GU5n2+FDBxFtZJlrKw5mImZ2h1/noO7yZdRi8ek7DPjLbpLC2JqiZakTSrrl
+fG3qPR2da4KrS3DSqva4
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIHLjCCBRagAwIBAgIIOtxNFRso4/kwDQYJKoZIhvcNAQELBQAwgYMxCzAJBgNV
+BAYTAlRXMRowGAYDVQQKDBFUYWl3YW4gR292ZXJubWVudDEkMCIGA1UECwwbTWlu
+aXN0cnkgb2YgRm9yZWlnbiBBZmZhaXJzMSMwIQYDVQQLDBpCdXJlYXUgb2YgQ29u
+c3VsYXIgQWZmYWlyczENMAsGA1UEAwwEQ1NDQTAeFw0yMDExMjcwNzUyNDhaFw0z
+MTA3MDYwNTA4MDZaMIGDMQswCQYDVQQGEwJUVzEaMBgGA1UECgwRVGFpd2FuIEdv
+dmVybm1lbnQxJDAiBgNVBAsMG01pbmlzdHJ5IG9mIEZvcmVpZ24gQWZmYWlyczEj
+MCEGA1UECwwaQnVyZWF1IG9mIENvbnN1bGFyIEFmZmFpcnMxDTALBgNVBAMMBENT
+Q0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCvPCNUEPmJPJrd0bCX
+YYacgu69ObWV2TGjdN9TjLLHmPG58f87V+JercHY+XXo6syCm2ULHIXBTizJy2w3
+vehznQPugLC4MP4Q9CjtNOAE+YDwsLhpvzv8LWlSphrA1Vtf+CivKqPVH5I7QFfC
+f3dXELXnVaF7RCQXmu+uKy8vRfHpQFgbyN6z/vV7ypxa+RAh6iEdR6O/nVYR4Xvl
+efChU0/VqL3shJM3AohYPXKg5CWVh7xFbhBs08jXfNrCjjz+PQtcNyqUUUsKstgE
+NTbc9VtRGFbW7G0LCwf+ExG4fnDbBaFurpQTWPQ1T7QKdqveoOkl5nBwLIechF6W
+7tYZTd3x4Somc1sxe7oK8hy+yURPnlT/mDmpdP0abYib4Cng/feFMpUZ45zN2hDk
+AADwl0Tu+XOv7uAVlhKBgJIyZ7Uj1xgF2EWX+kj7xscZFouoEgreotglHJlAjg3H
+RpF/u46DqxmmLQ4dK6HNH/mZe+FqgcQr3LFUe9J7h1VloY8TxvHgKGWOp5up21w5
+hL6pyuiyNcIfzctJoQ/y/xALX66u0J4fWyClpUjG9W5T47cIa4yLZmB1KA4AT7Ea
+AuDP0lXRWY+Jsoa4xoIu2yFYRkZtOxLGEB7NxPnVxWHBOQ92Z3wVOXryB0F2+H/V
+820SrWHoFJKF2a4YPWB64RH6jQIDAQABo4IBojCCAZ4wEgYDVR0TAQH/BAgwBgEB
+/wIBADAfBgNVHSMEGDAWgBSDadJfTXzw17y2nFeQlAJmrgdW4zBjBgNVHRIEXDBa
+gRRDU0NBLVRXTkBib2NhLmdvdi50d6QQMA4xDDAKBgNVBAcMA1RXToYwaHR0cHM6
+Ly93d3cuYm9jYS5nb3YudHcvY3AtMjQzLTQ0NDktMjM5MTItMi5odG1sMGMGA1Ud
+EQRcMFqBFENTQ0EtVFdOQGJvY2EuZ292LnR3pBAwDjEMMAoGA1UEBwwDVFdOhjBo
+dHRwczovL3d3dy5ib2NhLmdvdi50dy9jcC0yNDMtNDQ0OS0yMzkxMi0yLmh0bWww
+QQYDVR0fBDowODA2oDSgMoYwaHR0cHM6Ly93d3cuYm9jYS5nb3YudHcvY3AtMjQz
+LTQ0NDktMjM5MTItMi5odG1sMB0GA1UdDgQWBBQYQYacOaS/W6+bXEiickJ5qkcH
+xzArBgNVHRAEJDAigA8yMDIwMTEyNzA3NTc0OFqBDzIwMjQwNDI1MDc1NzQ4WjAO
+BgNVHQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQELBQADggIBADmxwvp0dlIfyhsvCqQd
+fehTN7IuIjPVA9bwP+9v17eJFybhIO66NKiVn7eL6vttZopclZSJc/YjuY40L4HI
+UKWfqgQ9qYxkjyvdgb+CHbuITc1nfze1+psM16LTA/gWc2P4kPblaK/8g8zO6h4A
+biSujc/vsiYE7SLTP7pEA/zj4gbevkXju8FS3o6g3GtocYzQ5MKVTlDq+nZzkGJG
+OTGe3wYndcduN7cAbc0O7qJUQRRKnnINNELluP5b5PBNzWjIKU305HEl8k1cRlqI
+5QKJhklVhEU1GHEJZzNUMIqmlK6mhsju6edbKP2HqH5G0yfMKEWoXaqSahSyBm/0
+RHJS+Ycpiw0FhuqLDfZlBnkZwdI+nskw+l+88AwQ+U7KqL8EQng94+IfSmeMcWah
+bOVxp6sp0xsaJy+WLCxkCvaSa2qb55ixlMX5GCojp6IZFUW39DZSr88YyULke1+7
+6p99CyMQsqN7O9CMuAckV7QiMPtm+VEl3Wgksvv0hVPEsniFbz6z8qlCJHb6G8pB
+L4zlFF0NzqK70jtGT6VefR/IFdIjqCYPvfq70QVUwbfvJV7vfXcorHvGwtfW+WYT
+mf+KkP0gbeJJePAqDxs940ORkYarKoI5z9l7NYz0sgefSeS+9syNOpgrkFC4EXOO
+bqHbVNqgOMvNORpSLBPTahpH
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIHMjCCBOagAwIBAgIIXHGxkAyPUS0wQQYJKoZIhvcNAQEKMDSgDzANBglghkgB
+ZQMEAgEFAKEcMBoGCSqGSIb3DQEBCDANBglghkgBZQMEAgEFAKIDAgEgMH0xCzAJ
+BgNVBAYTAkxVMTswOQYDVQQKDDJHcmFuZC1EdWNoeSBvZiBMdXhlbWJvdXJnIE1p
+bmlzdHJ5IEZvcmVpZ24gQWZmYWlyczExMC8GA1UEAwwoR3JhbmQtRHVjaHkgb2Yg
+THV4ZW1ib3VyZyBDU0NBIGVQYXNzcG9ydDAeFw0xODExMDIxMjE4MzZaFw0yOTAx
+MTIxMjAwMDBaMIGIMTkwNwYDVQQDDDBHcmFuZC1EdWNoeSBvZiBMdXhlbWJvdXJn
+IENTQ0EgZVRyYXZlbCBEb2N1bWVudHMxPjA8BgNVBAoMNUdyYW5kLUR1Y2h5IG9m
+IEx1eGVtYm91cmcgTWluaXN0cnkgb2YgRm9yZWlnbiBBZmZhaXJzMQswCQYDVQQG
+EwJMVTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAKgNuEvu/MySNuvZ
+4XxxowIaTEpgbu4inDQWJee3UXFT9ua1K66cn/IByqIrvFjiKbww/kTcAOz1RsEY
+8Ic/qkFqe+Yeyna6TY+kgusL4cGtBJbNa+pzmlQ3rg9xXJAONSQD6PjJHncPxLfk
+Wzl/YzhzV8ArTUAvKlVar6YlZTkNuWd90705ipcrSf359nxI1GPdE1kszDregjSG
+ogf9Lw145/fRhQA7YmGRefh7v78lgibb3ZheMpTQ/+hHOvv4XwqYmhP09H6ooFao
+NGBlp+tHeaBiAEpm26aQvtNJudO+0zIeO0bYgKIrUZlch1YaLyHFLjZ/KQDdaP7P
+P3YiWWwyaJrRn7heFfv55btAIH69j+ukuVxPq8koEXPMZSnLIugjCYSsLSLy2icy
+85Zp4qwlghb0cy/+x5M/32duORrcKTU5vLyMQkYpAQFs7VABuer/Ip8t9+oBYDER
+FwOlt/zih8kQiO7njmIe145WVTRG/28bhpmOlXpaC2JagR6fVVqkVNWuYK+Nrujn
+cZ/ktG53szuB/egIScJqfbeNvnbwiop/plVL97A2W0U8ATPTIDtzLWcRwxdGvFx3
+p9zaKuSB9BIlWW/8VZmMkpwaZhxZCris1zHDoiVgIZQA1nMWAhB4qpNwaExSJxH8
+14njkRaoB1hQueOJZ8lH5yv+6I7XAgMBAAGjggFAMIIBPDAdBgNVHQ4EFgQUoFn8
+AxKVTcE62USmIMCeZ57VU6cwEgYDVR0TAQH/BAgwBgEB/wIBADAfBgNVHSMEGDAW
+gBT77NlP9FmkQ9GssbDT5sHjcqRrODArBgNVHRAEJDAigA8yMDE4MTEwMjEyMTgz
+NlqBDzIwMjIxMDMwMTIxODM2WjA/BgNVHR8EODA2MDSgMqAwhi5odHRwOi8vcmVw
+b3NpdG9yeS5pbmNlcnQubHUvQ1NDQV9lUGFzc3BvcnQuY3JsMA4GA1UdDwEB/wQE
+AwIBBjAqBgNVHREEIzAhgQ5jc2NhQGluY2VydC5sdaQPMA0xCzAJBgNVBAcMAkxV
+MCoGA1UdEgQjMCGBDmNzY2FAaW5jZXJ0Lmx1pA8wDTELMAkGA1UEBwwCTFUwEAYH
+Z4EIAQEGAQEB/wQCBQAwQQYJKoZIhvcNAQEKMDSgDzANBglghkgBZQMEAgEFAKEc
+MBoGCSqGSIb3DQEBCDANBglghkgBZQMEAgEFAKIDAgEgA4ICAQBAnBh6oqsvpvKa
+oRJgE6youPoxdCiiDGxFbccv1Evm1fvXI8d21qg9qPP4U0yzM+/y0WJfUqidopR3
+GQGVXB1mjrfjM0g9UcAzrjwZOHPiz8DcRzseKu9ZZlH3BFTZ6Hik5kSOb0oaaOvm
+0frrrioFRiqEY/hNnqLGk83Q7z/cgPt+YesDuFq9GdKElAIqZIkwtkZbd63Byqp5
++QygNBk/ctKf1XA32c0V4UNaM62g5uxP795hJ6B0luExAuPVMcTZIIDI5cXwr4iY
+OzlY/4SHLBKv9epdcOlDZZLipm75f6e0upbccVc2NkhvQFMFIlRqyxavxJdVJIX/
+yrWujn0s9L1Kg/mMz1NqFWwFXl0uzCG6c8t5ifwI2AjxleqlufhubigZ28QmUAGu
+KmZg+Loc/T+4AJibGhATQdv8EO6MZPkeNbfZgdhXUb7qbGf13eogwjsSzoB9QM8o
+2emeZ8TW2aKyFvA1mYmvvI6eVvVh6rURqiigAqPJXZJiwsFYqF2cEzj2CIFsCl8r
+6McEHjVlyqm3hEaqXiuPgyUYPm1OUltjA9WDz4gBTgG90Tvj9tMPMl7tAp7t1ahz
+kliHGw9B2a5BVL9Ish3Vpz1eEQy/vJTEZc8JFppaaoFpR8qfCWOUb9R3YxPc4M2G
+MTeNnPFmgAkS18BEwinnXu4HaIe4iA==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIHNTCCBR2gAwIBAgIETjLQPzANBgkqhkiG9w0BAQsFADCBozELMAkGA1UEBhMC
+VVMxGDAWBgNVBAoMD1UuUy4gR292ZXJubWVudDEcMBoGA1UECwwTRGVwYXJ0bWVu
+dCBvZiBTdGF0ZTENMAsGA1UECwwETVJURDEiMCAGA1UECwwZQ2VydGlmaWNhdGlv
+biBBdXRob3JpdGllczEpMCcGA1UECwwgVS5TLiBEZXBhcnRtZW50IG9mIFN0YXRl
+IE1SVEQgQ0EwHhcNMTkxMTE0MTYzNzEyWhcNNDAwNTE0MTcwNzEyWjCBozELMAkG
+A1UEBhMCVVMxGDAWBgNVBAoMD1UuUy4gR292ZXJubWVudDEcMBoGA1UECwwTRGVw
+YXJ0bWVudCBvZiBTdGF0ZTENMAsGA1UECwwETVJURDEiMCAGA1UECwwZQ2VydGlm
+aWNhdGlvbiBBdXRob3JpdGllczEpMCcGA1UECwwgVS5TLiBEZXBhcnRtZW50IG9m
+IFN0YXRlIE1SVEQgQ0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCj
+Mg42Fipd4tZOLauEOb5fZlfU4xSv+PsNmBzrNdntXOxhUH7oBGIhuiTvtLE+2T1l
+5Qiq6ONbn0nJv4RSIjqCIhk673NjsED41B+Fl7LDOvVcpeF9E53maZSK/c3Pm6Qw
+EXAGgJo4dRyGirCaXfmUKT5fsrc05L74dZufG9FAWo4i2xNxoyDaOn0EX6+YevSd
+u5yyLjMDcHNQpaytu9xXTkzgf/KjKu7/m6rwmS1LFvELMreIpdXKLpLBGQ6Il6Rv
+O1Uqi4QtCVWGWEZpxQ5Dy5v49NriBFYpUe2HrxiZhbmTXb/YHnYKvMCd3EIZ7B83
+kq8PLnChAQNcdwn472zneWJiNkU1Tlx4v5HjyNShctU+4KZcVAqqjU3+376VZHqJ
+xbLy2WUdkayvUYNVfT4Rj7SAlRQtH5I/OwCq3kiAKrQGVD+LPiItRLx8CgezjoBT
+e7/Ic1FqkG7dc6orAKZAfYc1S59RnIPnpxVogHMTQgtYrBjsdoRw/bzLQP/746mo
+/PjhzxiHAtxJ2ghgkg5vcXMFWyr7UHbdV6pNnwjGkOQjjC6YEvAlL54nXfpcFR6A
+vWFBC/kFGtw39eAn3DILjdA353wt8FZRlCh3LuQpcLQq2tq2AfDBrMJ3GXw9HenR
+p5du95QFsmbJFBLbuMPKSdythSvOQbxZFaGtbS1RHQIDAQABo4IBbTCCAWkwEgYD
+VR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAQYwHAYDVR0SBBUwE4ERbXJ0
+ZG9wc0BzdGF0ZS5nb3YwHAYDVR0RBBUwE4ERbXJ0ZG9wc0BzdGF0ZS5nb3YwKwYD
+VR0QBCQwIoAPMjAxOTExMTQxNjM3MTJagQ8yMDI1MDUxNTEwMDkwOVowHwYDVR0j
+BBgwFoAU5i1lFvYVqGrnie6BPL8+HcKggPQwHQYDVR0OBBYEFPGKi/tqRKNGgzTS
+1ZIVgViCSkz7MIGZBgNVHR8EgZEwgY4wgYuggYiggYWGKmh0dHBzOi8vcGtkZG93
+bmxvYWQxLmljYW8uaW50L0NSTHMvVVNBLmNybIYqaHR0cHM6Ly9wa2Rkb3dubG9h
+ZDIuaWNhby5pbnQvQ1JMcy9VU0EuY3JshitodHRwOi8vY3Jscy5wa2kuc3RhdGUu
+Z292L2NybHMvVVNNUlREQ0EuY3JsMA0GCSqGSIb3DQEBCwUAA4ICAQCGouFdsaC0
+W/BDaiuR7BG3YdhwD8OLoFeJC25DI8A3R5zNnrPtq/ERvLexhxTeOLkCI8O+LbSN
+jioVysMla6NwSkh+Cg0x3fnL8H/3Q4k1XahEUBUzvWq9L4q0Scni76PZ/y717UeS
+MTxTKAY/JOew3UG9+5wI2Mpv1B4hsHDZU8E6tZFTtArR9R5o3aEVR00+0P9stnXF
+LHnFi2XI8Jv13OyOXX2Ktu4yE/eHOKq8CuCPSTlu3mFzwudEDZ9bcduqslkmA95l
+CPxs99rbXn1qnellFsLcGnXghowxfdeoOFRdjxyXoSAhEGaz9fO3PCgk3XjxLfkp
+E3Mb2afeHOiMOSHYeoglROq6Zxxr1AJ1dLQZR1t4sQe15xxDMdGt6z6uPhgYSCqY
+LmWFoI6X2je2MK0is5nbOeZSLYUMR0uamW8OxIitp6jn0JKv2783CiwKQjPNeER6
+xlvks0PUjaiu/UiPb6/TVP0hTa03+JOjaeC3gNB3CkyCK3+B/jzeZh4bmHTTbzuT
+6YjInv+eawBFfcmAIavbB9cfCkjZd2UNtUJtbaQsgoj0W77lR4Pd9N4E/lMsSKeJ
+Qo+/lKucOtOdCjPPIq964fEhP8QAa8Iojbo+tKAoYPHUIz77T37QtqevgcSyjOuS
+21BknRcScWo2FMKUoRKV7YujQSulZ11VyA==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIHQDCCBPigAwIBAgICASgwPQYJKoZIhvcNAQEKMDCgDTALBglghkgBZQMEAgGh
+GjAYBgkqhkiG9w0BAQgwCwYJYIZIAWUDBAIBogMCASAwdzELMAkGA1UEBhMCTk8x
+MDAuBgNVBAoMJ01pbmlzdHJ5IG9mIEp1c3RpY2UgYW5kIFB1YmxpYyBTZWN1cml0
+eTEkMCIGA1UECwwbTmF0aW9uYWwgUG9saWNlIERpcmVjdG9yYXRlMRAwDgYDVQQD
+DAdDU0NBX05PMB4XDTIyMDUwMjEyMjkxNloXDTI3MDUwMTEyMjkxNlowdzELMAkG
+A1UEBhMCTk8xMDAuBgNVBAoMJ01pbmlzdHJ5IG9mIEp1c3RpY2UgYW5kIFB1Ymxp
+YyBTZWN1cml0eTEkMCIGA1UECwwbTmF0aW9uYWwgUG9saWNlIERpcmVjdG9yYXRl
+MRAwDgYDVQQDDAdDU0NBX05PMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKC
+AgEA3R9ww4C00pczv9L2WLDkfTG6Txuc5a8Ur+fnFe66F+xxhw49RHxCSDw+myr0
+2Ay2oy2h85OhaOG2XQ3QsQP35nxXBIa7fJdcn3LPlGdIMUUuUaR66/UlaVxszdVD
+LlhnAtQzBY7GPmPKQHB3i2kJmKGrux2tF4cbw3/UoygFwUDHUA7AZDhXHUh41Rcf
+n4DOmd9S49eL9+ofqH1lj7YJcwlvroHXQYDRJmHtR2Ol+68+LTvM89KrdZYyCF+c
+sl8ovBqi4rBGsiE1ULPARylRC0iIT/Pim5C+Mivt/NWosn+4/Ui/pQA4xrvEAlYZ
+6oEkrNPdgPMy+95B9jrBcnsggCSU9LX8UrQKRIFkzm2afWWmnJxzEAgj73WFoos2
+Qybtylq5ww8AiOd4BB3h17rdPeB2MKgX2N9lzNWPqR2/wGAr0B+0chzPbxSxOvVG
+L84rMkDJu6hQtn/OIUUZR+ux+p1GISVynHhgy7Cp6FgLatVAoIbmDafhBWfYYByq
+CkwlLdzXcgAiH1OAQK7qQnJfTe4+W3pVtKq5nM1hiubdIj5RGvae++6OAHZkP3OL
+40rW94iVfAsi88isEJ05pz5YTE69G1MttFRgxk3m/gIWPs1qZhaPQKCYhLakev8p
+/N439xp6jhue+UzxsmBmsn6/aH0cQ/VreGmEfxMnJEp9dc8CAwEAAaOCAXQwggFw
+MB8GA1UdIwQYMBaAFB/DeD9tcyIdj2evUKVlAHiooUpwMA4GA1UdDwEB/wQEAwIB
+BjA2BgNVHRIELzAtpA8wDTELMAkGA1UEBwwCTk+BGnBraS5lRG9jdW1lbnRzQHBv
+bGl0aWV0Lm5vMDYGA1UdEQQvMC2kDzANMQswCQYDVQQHDAJOT4EacGtpLmVEb2N1
+bWVudHNAcG9saXRpZXQubm8wbQYDVR0fBGYwZDAwoC6gLIYqaHR0cHM6Ly9wa2Rk
+b3dubG9hZDEuaWNhby5pbnQvQ1JMcy9OT1IuY3JsMDCgLqAshipodHRwczovL3Br
+ZGRvd25sb2FkMi5pY2FvLmludC9DUkxzL05PUi5jcmwwKwYDVR0QBCQwIoAPMjAy
+MjA1MDIxMjI5MTZagQ8yMDIyMDczMTEyMjkxNlowHQYDVR0OBBYEFHD3VtLBi1oI
+jJ5HRryprB/mOGrmMBIGA1UdEwEB/wQIMAYBAf8CAQAwPQYJKoZIhvcNAQEKMDCg
+DTALBglghkgBZQMEAgGhGjAYBgkqhkiG9w0BAQgwCwYJYIZIAWUDBAIBogMCASAD
+ggIBALvdKBAKhrSaPF5dqXHjVl7d9WZoD8F9Btk9UG+tbYPQwVakHC7RSWWk5soT
+R1YNhfvYRwsDrmUJFjsKeIgkvU+lJox19KH9n9u4zBeTHwT2nSALVJrrh64pb7fD
+a7gWxJLC7pqApF4Na7KJbyqJ7FISRgRFQmx5ftgNkv3zaFICYb3S4n4wO2H5v6tU
+ni1AI85yI+iO8/EQYPdzbYydl76uhbgpJlLdt5EoC56iIW+GYKweoF8bckIDV80W
+zK9klLgRDks4gakywxAgTUygNe1l1fnFZSLapEhvg/pv6Hteb/EhDEmN7GrAyfK/
+sxo7fVBNjRAudRBvipLEUFrqvqZb2b4nBBO4fiKkCkji0Sj2r4mu4FnJdaC7vXzJ
+Kpn3Y1VhKl9bhyqI6dIaN8zbZpM1UqZOtTs8IynFsq1utzjdNjFjxBZK1PkXwJXW
+og6K6TijR2T/qY9xT69NtpYLuHGmiDazjjFNrfjX9mJwbNSqWSNZ4/4fSiimtX4M
+c9I6eo7omr9TybQES1TDlEl1qSa7y4VyBqR8CgoObbpQj0mC//ltPeCK3PmE7L2M
+3Qgt7ekZquDgqIIVFwL2Jt2QZ2uhvaUiP4N/jE+t/CASXEfcfeKD4kdWItF+/MXw
+zSwiR4f47ROSKw5ZDoDObMnENUhYei0sFUjDWXbr62vfPLkb
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIHQzCCBSugAwIBAgICGC0wDQYJKoZIhvcNAQELBQAwZTELMAkGA1UEBhMCQVUx
+DDAKBgNVBAoTA0dPVjENMAsGA1UECxMEREZBVDEMMAoGA1UECxMDUFRCMSswKQYD
+VQQDEyJQYXNzcG9ydCBDb3VudHJ5IFNpZ25pbmcgQXV0aG9yaXR5MB4XDTExMDIy
+MTAxMTEyMVoXDTI2MDIyMTAwNTUyNFowZTELMAkGA1UEBhMCQVUxDDAKBgNVBAoT
+A0dPVjENMAsGA1UECxMEREZBVDEMMAoGA1UECxMDUFRCMSswKQYDVQQDEyJQYXNz
+cG9ydCBDb3VudHJ5IFNpZ25pbmcgQXV0aG9yaXR5MIICIjANBgkqhkiG9w0BAQEF
+AAOCAg8AMIICCgKCAgEApTvJoCiGVxPnny5LlRldjDZVzY4GWTsxy6QI1xRi61/F
+HdLLiXTYNYR7vCt9ga3x1ja/AE5grlefFVycler2WK+amRyYmvdBbrQ1bYEEKL6N
+n2cdox60tAA6A1zb0T3Ayrl4dmeQGdScDBQKVjpTchu2xHYOmTLZJCRfJgUet+hk
+F31eQ+MEL5+thbcAl0OmAkrAmjYFtFcABq91gSZHxRAgE9p08f+tYPvTwk6woXX6
+dqFeW2/BqQqTJizjjfPOeR4loNsi602nPpYOk0OicdTwW5A/nMCAKnlr8LEdKuUl
++YERh+SZm7oXQUJJxXDt5bIourZKIhzGfQrGAIYZXWHNTP/kcbCBDdrQ+/PL3x0R
+pI5qrQ0QyLh7vPM6MEKMbqGbq9PYr37N6fho58BerVRKHALjxyuxNlBNfK59rYpY
+EiNxGk5+pHK92kH4YicbYdU2k7ppIDTckYGEGWayWKyb0S+jLapEhWAaBzaA6WzP
+GHbJwvV7f4MOfsC1rDB8TdOkm/sBCkZ+iMgwE1b8jSBC15q4nB5+w2enwbITdIG9
+uyA+EomD+4Fn8HcBXiR3F0wd51AEgEWLyYol2etUVSQSbyk5/pzWSNtjZmMDkCWM
+KNA7sckt/zKaalJByqpVvzSLbb71eACDEM0qGK9YHu58/4duDPE8+V2zpp82IekC
+AwEAAaOCAfswggH3MBIGA1UdEwEB/wQIMAYBAf8CAQAwgfEGA1UdIASB6TCB5jCB
+4wYIKiSfpoFdAQEwgdYwgdMGCCsGAQUFBwICMIHGGoHDQ2VydGlmaWNhdGVzIHVu
+ZGVyIHRoaXMgcG9saWN5IGFyZSBpc3N1ZWQgYnkgdGhlIERGQVQgQ291bnRyeSBT
+aWduaW5nIENBIHRvIHRoZSBDb3VudHJ5IFNpZ25pbmcgQ0EgaXRzZWxmIChzZWxm
+LXNpZ25lZCkgb3IgdGhlIERvY3VtZW50IFNpZ25pbmcgQ2VydGlmaWNhdGVzIHN1
+Ym9yZGluYXRlIHRvIHRoZSBDb3VudHJ5IFNpZ25pbmcgQ0EuMA4GA1UdDwEB/wQE
+AwIBBjArBgNVHRAEJDAigA8yMDExMDIyMTAxMTAwOVqBDzIwMTQwMjIxMDExMDA5
+WjCBkAYDVR0jBIGIMIGFgBSJUhghMvDepX8TOhcqXVYXoHkSaqFppGcwZTELMAkG
+A1UEBhMCQVUxDDAKBgNVBAoTA0dPVjENMAsGA1UECxMEREZBVDEMMAoGA1UECxMD
+UFRCMSswKQYDVQQDEyJQYXNzcG9ydCBDb3VudHJ5IFNpZ25pbmcgQXV0aG9yaXR5
+ggIYIzAdBgNVHQ4EFgQUqdxox52YhfGyz4BsPFG1XzgsB4IwDQYJKoZIhvcNAQEL
+BQADggIBAEOGOPb25HFWvAypRDoEQkAoUVeO1YskpevS5VsQgZcHAGp2tNw4/1Tk
+B7yj+fl7aPlGcHC5UBeMaHhx40Qxy+Ag4AXoc7khCFhGiKccYIyyJMiNRVd9C2si
+tWtV4sk5tLyC7EvF1JOJeG3UVlagZ/m/9pYP0KsiTWYt1mVcZsZK2GzdKkWGJj2J
+ynnSgXcwT04A2+DuvXH6gNy1xbs5HJIuZz+3YvoVMDSABwMSTEbDopswI6xsVyga
+p1H/plB/eRLh3HOPbiTp1k53EPrno2H8tSJ4rQgWVuCUGlYYKoKsrGZuOe/rRwYB
+MRnVuI3brRGvZ807LYiRZvXu3qoDLThODHk8KG3p7FtcQZWozQHWe6YLeqIiwjHa
+4BfaqorxHkB13IHsyefPGnf1K8cducm16IHRUZj35/B3IG25Xso7E9l0jU90Ha83
+fxXTAWz1DYj6h6AqtI38cTzx3guO3acGR0Lq4pwoi0U4n5Dx1ttPZGdNLS/UPXRR
+zWEH041nFKZmVM5M9Cctxwk8jcVzk2XRFTSfVHOyA1UjF7JGPyumiiPlDi3scdAF
+77HdV6Go87TiBh5jLQOCfTdq+TnYNu27BzVkds1SXeClFLKFX1Sp512TrK1yvJb5
+FKgfAQ4eypQd7qmVTeIE034/0QwdfhBRzLFXrHvPzwFxu1Pq49lf
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIHQzCCBSugAwIBAgICGDcwDQYJKoZIhvcNAQELBQAwZTELMAkGA1UEBhMCQVUx
+DDAKBgNVBAoTA0dPVjENMAsGA1UECxMEREZBVDEMMAoGA1UECxMDUFRCMSswKQYD
+VQQDEyJQYXNzcG9ydCBDb3VudHJ5IFNpZ25pbmcgQXV0aG9yaXR5MB4XDTExMDIy
+NzIzNTg0M1oXDTI2MDIyMTAwNTUyNFowZTELMAkGA1UEBhMCQVUxDDAKBgNVBAoM
+A0dPVjENMAsGA1UECwwEREZBVDEMMAoGA1UECwwDUFRCMSswKQYDVQQDDCJQYXNz
+cG9ydCBDb3VudHJ5IFNpZ25pbmcgQXV0aG9yaXR5MIICIjANBgkqhkiG9w0BAQEF
+AAOCAg8AMIICCgKCAgEAn8NW03F55Sf4tvQMk2KN9CDsMteBreJhHmfj5QH4RjWG
+Dwx+XisGmZDMxuklCfCVCgbKlV9pYlrH2niAA9Kdcm/58AqX/9Vi0ks8nEkUY1g+
+Cb3oP0lZZR0QKVrSyD7C191d9/eAAjXrYglZUK+cq2f1zXqKcPclNhkOpob9e29Q
+lLPO5Nlmfk6ZJKVUg5+exQvSGI3kDIS6ie4cO18cLL0rVdG8J50WQuHK85di/P/U
+vWjXMZfOEPRUiv7owKZ5Sz9nZCY8yHlFcCDajwZ00L2OeXMbjDfe/WLSsxjPRLcv
+DKNUD7Ce5BJzj+EgM3z2BMICNhIfsi6R5emxu3PWguJXrfn6YVsmoksQ1xeKdlGu
++exEi58Hvqx8WJFsySBkz0s/7d1rf8FRqhl13qv4G2v0OfC1LtG9L3uOFR0ZwjWg
+aLNMq6390Q3s0i4Xizysk8aON2UjtrqZeSopJAos9E4+TGs+Sp21PqieEeYtEDuT
+N3FyO8h6jljsyEOdTcmbAUIGpFKy1k7or8KEeZkSu2qOD5zJNmKMeveytPmAnCC4
+wRAUYUCLbqxeBRnWxr1b7ZMXYeNMDaK5Ceh9MDTB6kCpUCb93H3csVX1huxRTgSl
+QT99UvwI9AY71pzGc61dPvWtR1CnVCrjG1drrr0nxDRT2veJUxK7ld/D3tQdBrUC
+AwEAAaOCAfswggH3MBIGA1UdEwEB/wQIMAYBAf8CAQAwgfEGA1UdIASB6TCB5jCB
+4wYIKiSfpoFdAQEwgdYwgdMGCCsGAQUFBwICMIHGDIHDQ2VydGlmaWNhdGVzIHVu
+ZGVyIHRoaXMgcG9saWN5IGFyZSBpc3N1ZWQgYnkgdGhlIERGQVQgQ291bnRyeSBT
+aWduaW5nIENBIHRvIHRoZSBDb3VudHJ5IFNpZ25pbmcgQ0EgaXRzZWxmIChzZWxm
+LXNpZ25lZCkgb3IgdGhlIERvY3VtZW50IFNpZ25pbmcgQ2VydGlmaWNhdGVzIHN1
+Ym9yZGluYXRlIHRvIHRoZSBDb3VudHJ5IFNpZ25pbmcgQ0EuMA4GA1UdDwEB/wQE
+AwIBBjArBgNVHRAEJDAigA8yMDExMDIyNzIzNTgwN1qBDzIwMTQwMjI3MjM1ODA3
+WjCBkAYDVR0jBIGIMIGFgBSJUhghMvDepX8TOhcqXVYXoHkSaqFppGcwZTELMAkG
+A1UEBhMCQVUxDDAKBgNVBAoTA0dPVjENMAsGA1UECxMEREZBVDEMMAoGA1UECxMD
+UFRCMSswKQYDVQQDEyJQYXNzcG9ydCBDb3VudHJ5IFNpZ25pbmcgQXV0aG9yaXR5
+ggIYIzAdBgNVHQ4EFgQUKw+Zo0vp1a4Akzp4aMvNIabPR+UwDQYJKoZIhvcNAQEL
+BQADggIBAFPUqNSloDycPGgr9iV9Sbr06U24ds3RoT9fMpdczu15DUKoX/1W7hS0
+V9Kj251iYLbVaf8gaJtfgOfTrjJwp0h+OcToIMiCMUex6awFc6hP6FaLbo1zvYZr
+oEWznJUowpyfs94mWnp1lixosvbj1ZCE71k7EqB3QThwFGFWTQnXvgGeMTXn34Hz
+DrN5h1bnpfCOdiWxVCdV0o4pVr2Qg6a4psEO7vteuHzOp9Fry6QsYFMv+f2HDelg
+ihG6orAkmKb3PYKcbpa4NcTXwMbJT2/LPnCPwapEnzCMUESCqh7Z3r/+FG0k7JlN
+kRBwOoGiRyW9sEjKJWnoYLPAvNYgicrXor+vo58c2PU4sTgnYg7AROvSlKOj5SSe
+VAVt/LdVjaIpPX5s4Oz2br2btX+arlOhh6sRl36k0T3mCXkWqb5Rot62y1K7eDPf
+1WyZSwvjJk5I8fAmUjrTxg4iKZyUdi7tTDSvQ0ItIVoO9WR1ojK3S12uktP87Maq
+xOrHNAPSdDozFcPTWQYG2qeVINO04toNSiXvUfOIfqZAfizKOHEMVQUI13wWNTS0
+bUgYT0ye3ZW5nlj5wwDz1uRAXwuC2inl+U6X0DumHzBFRZDBDkc82w6PSFKtKDCB
+O5Hmh6vHLq8By+MrdXNi/qZi1uPfp0keABsoeqGICnw+48GNHKnB
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+fIREwHZP
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIHWjCCBUKgAwIBAgIKQ05DU0NBAAAABjANBgkqhkiG9w0BAQsFADCBoTELMAkG
+A1UEBhMCQ04xGzAZBgNVBAoMEkNoaW5lc2UgR292ZXJubWVudDEkMCIGA1UECwwb
+TWluaXN0cnkgb2YgRm9yZWlnbiBBZmZhaXJzMRowGAYDVQQLDBFDaGluYSBQYXNz
+cG9ydCBDQTEzMDEGA1UEAwwqQ2hpbmEgUGFzc3BvcnQgQ291bnRyeSBTaWduaW5n
+IENlcnRpZmljYXRlMB4XDTE4MDIwOTAzNTQ0NFoXDTMwMDcyNzE2MDAwMFowgaEx
+CzAJBgNVBAYTAkNOMRswGQYDVQQKDBJDaGluZXNlIEdvdmVybm1lbnQxJDAiBgNV
+BAsMG01pbmlzdHJ5IG9mIEZvcmVpZ24gQWZmYWlyczEaMBgGA1UECwwRQ2hpbmEg
+UGFzc3BvcnQgQ0ExMzAxBgNVBAMMKkNoaW5hIFBhc3Nwb3J0IENvdW50cnkgU2ln
+bmluZyBDZXJ0aWZpY2F0ZTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
+AKpWShb7G/iqU2TqRr+ZeTYboFz4p5w+Mskp4SmHsYXlyrimej+QVOYq1JH+pns2
+tN9qaDORfbT5tQ4qTejk+K6lxGWYaX0IIXS4rzRs8PlwfikwSv9PZPq5LfrztW2e
+WLKDjY9yrOWnsGl+nxKU1phpvWM5QgPf1odNbH9CJZLwP5Nyy81wp1q2oZp+G6CJ
+0cPkRstZXojLBSmklusrnMEylvXd4xwg3eXZOhMukFw0OmVK2Nh5K0jfAnrnzwd7
+iXe/G0ilgaun6aKkxR9TXqoZD+09DsUZPrmJa4eAOnERZNFTjGljGUrKZDAAaqC0
+xp8C1AZEGYKQ3kw6logPBB5cu9xlJ8IByTZ/YQpmTIFtkYuerTiaU2KoKKzRTRJN
+vA3YOobiPa5quy5czh0mTiLtL1Z7+QV22Lr0o5rXAtmQaiEPkdppd09mTrDJ5R7E
+jOF1FrVAPehs40D44Aootb1aXqYU0g+HO0vCVFwj+PZotwoeY9DNU6LO5N6s5Qcx
+eFrgSHMTlkNsoFnf5xf4pqUvDAhM+/RLgLA0EpcEWHKU3tXvxhL8+I4Xd4q1Waos
+NSYSfTH6vtiJwIrd6g9ixifP7bClUQkeMBOyBHHLEnogVZig2596OznkxZDyCgSF
+Ptfu1kmGPSAN8wqAc1rVdE1aQyUwqrreWEeIiuQ+e6uPAgMBAAGjggGQMIIBjDAf
+BgNVHSMEGDAWgBRKZzmKHQEixT1AV6dhSTRfw+cCNDAdBgNVHQ4EFgQU8XtP+ydu
+ng6gqo91WbQUwZrxNikwDgYDVR0PAQH/BAQDAgEGMCsGA1UdEAQkMCKADzIwMTgw
+MjA5MDM1NDQ0WoEPMjAyMTAyMDkwMzU0NDRaMEAGA1UdEQQ5MDeBFWxzc3NlcnZp
+Y2VAbWZhLmdvdi5jbqQeMBwxDDAKBgNVBAcMA0NITjEMMAoGA1UECAwDQ0hOMEAG
+A1UdEgQ5MDeBFWxzc3NlcnZpY2VAbWZhLmdvdi5jbqQeMBwxDDAKBgNVBAcMA0NI
+TjEMMAoGA1UECAwDQ0hOMBIGA1UdEwEB/wQIMAYBAf8CAQAwdQYDVR0fBG4wbDA0
+oDKgMIYuaHR0cHM6Ly9wa2Rkb3dubG9hZDEuaWNhby5pbnQvQ1JMcy9DSE5fQ0hO
+LmNybDA0oDKgMIYuaHR0cHM6Ly9wa2Rkb3dubG9hZDIuaWNhby5pbnQvQ1JMcy9D
+SE5fQ0hOLmNybDANBgkqhkiG9w0BAQsFAAOCAgEAW4g/LqifXKpvWc5prrVQBQwa
+gzml3bYNvIpB1BjlZeIASOlttCcr3IY52yZeM8/7A5A1660dABs3Fwv3h8BOYcjF
+LyAoe2mND4s5JGb/FpzXOms6wfQvwekBQz/ksSiktJ2jMoIuUTffvsQPmnwIQPjq
+v7gCcJY8qxYWTTf677x/N4d6IHnMCu8Qc+Bpe4A6TK3uPI9uxLZ7aUkg0YCnRXCp
+MWQKkmWzzPSBMt7OuTylD92UhHCZYAY5qLpGrn6HN0APCDvz24dY0vSKNKFigOGa
+VeV8OP2TQP1AGnHon2oq1iEEGYl/b4kw3ktX97hZdSVtFcDA7CBsCEp7MLDItVEt
+wUkMuJI4nqYc7a1bbqVkZzEmA8kzPSAxCOEClQ2HCDlPl6V5H4cTnbGRpssUqyqZ
+MaNgKWea46G3iensU/wt3aFYjp/EWg6wl9Uzgw0hT9FmTJY01pmnq9vhEfrcfAGN
+ENhqrNN8yKVadBAPRBrMX9mlo3n2MeCH9Jm4UvIsmhS7K+LAJRDTS15c044OLL6S
+69NpcRAjdCOE/3dg4p/jLAnJo577lYtdfK1EKr+szpalmUTwfQniY50jSU31mVQ5
+iKhH4N/lvJ7XpkiTRanPbz1iWr56EBrxxpAA0MJN8sGAhruO7dQ3B7lwWH30ex9b
+5nqC6wp7G6lSC+4SwbQ=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIHWjCCBUKgAwIBAgIKQ05DU0NBAAAACDANBgkqhkiG9w0BAQsFADCBoTELMAkG
+A1UEBhMCQ04xGzAZBgNVBAoMEkNoaW5lc2UgR292ZXJubWVudDEkMCIGA1UECwwb
+TWluaXN0cnkgb2YgRm9yZWlnbiBBZmZhaXJzMRowGAYDVQQLDBFDaGluYSBQYXNz
+cG9ydCBDQTEzMDEGA1UEAwwqQ2hpbmEgUGFzc3BvcnQgQ291bnRyeSBTaWduaW5n
+IENlcnRpZmljYXRlMB4XDTE4MDcwNzA0MTYxOFoXDTMxMDYwOTAzNTQ0NFowgaEx
+CzAJBgNVBAYTAkNOMRswGQYDVQQKExJDaGluZXNlIEdvdmVybm1lbnQxJDAiBgNV
+BAsTG01pbmlzdHJ5IG9mIEZvcmVpZ24gQWZmYWlyczEaMBgGA1UECxMRQ2hpbmEg
+UGFzc3BvcnQgQ0ExMzAxBgNVBAMTKkNoaW5hIFBhc3Nwb3J0IENvdW50cnkgU2ln
+bmluZyBDZXJ0aWZpY2F0ZTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
+AIE7XHumxMj6lZGSOTXrsUMvdozrs6IIbGuv3FdalPhFyLIorWZzNLG/dCi9wdIp
+WBowzSzUrW10wqc27Xrr5PSFC4ItRx8ellbN4Sx7BT6vMlmi/O7iw2LbqGDbcxR+
+hGy3EgGLOraYe+jW6jCMx9Dv1fIHfQJpnkE4xtjaomdFL15Ze/HEE5z94LTcds6d
+J10/zNEYb93HwfNHbgDfDh3ISoqNHyIonZ2unlpg3C/+pkBhXKe0PuvP+qr+DBgz
+Ns1cQ4MI8kihPMxHPWhRLg6VLkbm12V2SB71+8e+tR1EuHxn8KxDTFNuWuFAf3We
+9M7RgEhGs5RHuRaf6hS2YLEpcKhH7SLqboKUsBD+N27M0JxoH25X2huMk8mvFmnV
+ojR22aqGzehkoMee7cBG/dB7J3HiSBWSnVCMXQ3xkYvP4TRi0FTrTbS7RqItHvcp
+gKQDRfa/0Zz8sh15wf3CdmrXs4EBW756T1z4wC9ZUc4kDYHLCdcC8apV2R49vZic
+WvU1/rDruJIN9lRbdeOWK2av9RmtrOT2b25c4qg/Raxrgehf1wifqcKx9wBfihiy
+JDzz5sTjXLnf9JugEujozyZ2u06t/qfuEvWoLhqL/IujbCenet15FGVp4MlMi93L
+E/aGSCR+fSbipKrhmUrFEVDGmKHIvgT5TF3Un2PwUwklAgMBAAGjggGQMIIBjDAf
+BgNVHSMEGDAWgBTxe0/7J26eDqCqj3VZtBTBmvE2KTAdBgNVHQ4EFgQUpYdSik1C
+xAM0yCf0kab0qmhi9+cwDgYDVR0PAQH/BAQDAgEGMCsGA1UdEAQkMCKADzIwMTgw
+NzA3MTIxNjE4WoEPMjAyMTA3MDYxMjE2MThaMEAGA1UdEQQ5MDeBFWxzc3NlcnZp
+Y2VAbWZhLmdvdi5jbqQeMBwxDDAKBgNVBAcTA0NITjEMMAoGA1UECBMDQ0hOMEAG
+A1UdEgQ5MDeBFWxzc3NlcnZpY2VAbWZhLmdvdi5jbqQeMBwxDDAKBgNVBAcMA0NI
+TjEMMAoGA1UECAwDQ0hOMBIGA1UdEwEB/wQIMAYBAf8CAQAwdQYDVR0fBG4wbDA0
+oDKgMIYuaHR0cHM6Ly9wa2Rkb3dubG9hZDEuaWNhby5pbnQvQ1JMcy9DSE5fQ0hO
+LmNybDA0oDKgMIYuaHR0cHM6Ly9wa2Rkb3dubG9hZDIuaWNhby5pbnQvQ1JMcy9D
+SE5fQ0hOLmNybDANBgkqhkiG9w0BAQsFAAOCAgEAJCBElNvSZFYGw93IfKHJMR50
+WBGS/nyjAn6cPMj/v2Es2/vX6hxG2iEY84ss/AiAIljgqDxuDNrcBriEOr+vX14t
+c9FYO75CJI5rN7gStRfkwInFlgAWFOh5zQzvWfrLBrbL3xM2Yd9E3Bp80nE7pJWw
+k1PyNOgJuFpPUSs17jSecBXgscee+5GxwLjQX73hQNLYigeSVKorelK/Be55UrYH
+VW3TNS7OML+8TAopbOcLlIt86kA+o7jLVkw9g0d6j9TlB2NuIDXIFxand0MHD2RT
+lLapaf9vg/WXDLGoT0GcQM8/O5SDf9if9zLhHOF/CKh93Z+QGWTXvkAGUuZJSDH8
+zd9Oq02QGDL8dwFzds2RiLlfbg4HjS9TbobQ4si+MHE3lslxIti0MRPU2FkelHiz
+P/QQqlv45t3l47qWS26+fMcTXJ8/vZ43YzAwIu34vX4JcU/aq9vcvRf05EFKI3Jx
+0ODoSZxDuwjzuuqfyxJBIIxHlaUrGSYL94klsl6755arW9EJMsepBHiOBWOoG5Lu
+ZOLk6nZIz2yUbV1eUo7eymjUYWChKwkWllCVKdMquT3ToxRw6XkMJ+iblxRl779J
+2t2srVTxBJWoCy6SiscW3kWgXikZRf7XSQi1tFFb8P2Ys+0NeXqGnvBMFuZwwZam
+EHwNCySze1iqK3pkIFA=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIH2jCCBcKgAwIBAgIBOzANBgkqhkiG9w0BAQsFADB3MQowCAYDVQQFEwExMRow
+GAYDVQQKExFIZWxsZW5pYyBSZXB1YmxpYzEXMBUGA1UEAxMOQ1NDQWVSUC1IRUxM
+QVMxCzAJBgNVBAYTAkdSMScwJQYJKoZIhvcNAQkBFhhjc2NhLWVycEBwYXNzcG9y
+dC5nb3YuZ3IwHhcNMTcwMTE4MDgxNjQwWhcNMjgwNzE1MjA1OTU5WjBQMQswCQYD
+VQQGEwJHUjEaMBgGA1UECgwRSGVsbGVuaWMgUmVwdWJsaWMxDDAKBgNVBAUTAzAw
+MTEXMBUGA1UEAwwOQ1NDQWVSUC1IRUxMQVMwggIiMA0GCSqGSIb3DQEBAQUAA4IC
+DwAwggIKAoICAQCHDE7BOUwMDROj5yVU9duYR2bx/Z423NY5Ss/vmNoKu0qmbrcN
+Uf8JQQuSD32xFIQQ/mvbp5Zkdb07SW64qC9SRHCRvrEL0dqYGOAX80WOr4yB4ber
+gbxcy1ZmDxpbEvglWBf1iAC9nwxunLDE9AdcjYssGHCBcNhnQaBDRy9owky4fUWg
+xzFYrTIBzsCIun4hnDNAEkuvnT2iHghAO8F/iYmbg7GmcU0w6/TYnV6WQ3iw1kyh
+Ls01J+9Mkisao8Bwjm7C+Hydf48YGNEHjLy/9fmeZxh9ZF/5L++G7BhT+7R8a0z4
+qqUw0DxgQ4sO02sko5zodNzhmma2yzdD3DWL7DCfmgr6by99EhaBVonyAvPW6TVi
+eQvrGJJYXg7HbpJaLX8fi9hbr3jPf0P7F13n4EezPYqQjHEEwwXgGp7PXDxWXOQu
+mBhxuf8Dx6LEFP5R1y6Qk62mMEBE+gNq6F7h2/eFnSJS91rkarlVP2pFRYUU6cIh
+7iRIXpF3urcOuq1Lnz5nPRPlhkKR+mvPwT5VHspX9Js9rz13RyKqWRrzB+FO/wUc
+8LAz3jiNfI2jMfqgpmqJ+ViV5qcqZ+RsKnw65HisnKY4gEztVC9Lm/yB97DK5bx4
+W2mAZxm+iSB9hWjWKk2SC8zF6DG5oSUhJqBrKoB3ShhShpL8h45K7z6HnwIDAQAB
+o4ICljCCApIwKwYDVR0QBCQwIoAPMjAxNzAxMTgwODE2NDBagQ8yMDE4MDQxNTIw
+NTk1OVowDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBT2KLaV9Au26PI3qO754Zsk
+t2XUwTAfBgNVHSMEGDAWgBQRUG2dJ5gf24lvUsuTRoPld4KCLzASBgNVHRMBAf8E
+CDAGAQH/AgEAMD0GA1UdHwQ2MDQwMqAwoC6GLGh0dHA6Ly93d3cucGFzc3BvcnQu
+Z292LmdyL2NzY2EtZXJwL2NzY2EuY3JsMIIBvgYDVR0gBIIBtTCCAbEwggGtBgwr
+BgEEAapsAQpjAQAwggGbMIIBXAYIKwYBBQUHAgIwggFOHoIBSgBUAGgAaQBzACAA
+QwBlAHIAdABpAGYAaQBjAGEAdABlACAAaQBzACAAZwBvAHYAZQByAG4AZQBkACAA
+YgB5ACAAdABoAGUAIAByAGUAZgBlAHIAcgBlAGQAIABQAG8AbABpAGMAaQBlAHMA
+IABhAG4AZAAgAHQAaABlACAAQwBlAHIAdABpAGYAaQBjAGEAdABpAG8AbgAgAFAA
+cgBhAGMAdABpAGMAZQAgAFMAdABhAHQAZQBtAGUAbgB0ACAAbwBmACAAdABoAGUA
+IABHAHIAZQBlAGsAIABDAFMAQwBBAC0AZQBSAFAALAAgAHcAaABpAGMAaAAgAGYA
+bwByAG0AIABhAG4AIABpAG4AdABlAGcAcgBhAGwAIABwAGEAcgB0ACAAbwBmACAA
+dABoAGUAIABDAGUAcgB0AGkAZgBpAGMAYQB0AGUALjA5BggrBgEFBQcCARYtaHR0
+cDovL3d3dy5wYXNzcG9ydC5nb3YuZ3IvY3NjYS1lcnAvcG9saWNpZXMvMA0GCSqG
+SIb3DQEBCwUAA4ICAQAH87CKK+qwLrejOsFtMmtCmT2A8IPr62vFF3xZeSMosfYL
+IU5tJKSJbTBPS5R6T/YGVgCp8lnByCOGmUkmLlX7y1ebgmcVZ0ktAUb2vfrhKk/M
+2v7mpuFhaGPRJ9E8lg5giBoEsMrCqTs9kzSW0ultQ5LXN+MUWezhzQAQW/BwHtcN
+dkb1WiLhQ9wHpaBJI3S1uLeJwft4HIziGPG1XQGshuCWGB5d877UKS3yi2lE3ZKe
+l4bsD51L8xFyNn0iPNoqMnuNg1vXjkytPT8YwMlZgQ2fdLtYJ4P7qTKuQwgzlNDH
+lEOUvJXW6VpfzBsRPWrcCRv2vpNsYnMBy6yUrQMGor58kLKEMTTGqAkRJFgZ1hbe
+YxpzYf9Po9NlcCEbw5PSh/uNgiydnNRVbH1jHAqP1H/cblWfJrc9QTposAVoJVSp
+WcGxxFvjc8KYgwrf4QpIl/R5ECGkPQtzf557i2gfpybEZxWNJNrYoF4HIUF+7x19
+3FneHLohSs5XZ7zOS+iKNHMmVVwKMjNwxc4FmmktX60r+6VXr8j7Q1+2q09ToSKJ
+gAg6a6Br2oROq8dbyxwmA/BhW3KHE309g2Ewau3liZJAiHQq0mMChVLXCnfS5sUR
+xeHQDZPLPmkUFPxtnzZNjadk09SLZbLAufeWuHHOdWb6ql7WXLe/4SBa96O4ow==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIH5DCCBcygAwIBAgICAKEwDQYJKoZIhvcNAQELBQAwcDEKMAgGA1UEBRMBNjEa
+MBgGA1UEChMRSGVsbGVuaWMgUmVwdWJsaWMxFDASBgNVBAMTC0NTQ0EtSEVMTEFT
+MQswCQYDVQQGEwJHUjEjMCEGCSqGSIb3DQEJARYUY3NjYUBwYXNzcG9ydC5nb3Yu
+Z3IwHhcNMTYwODA3MjEwMDAwWhcNMjYxMTA3MjE1OTU5WjBwMQowCAYDVQQFEwE2
+MRowGAYDVQQKExFIZWxsZW5pYyBSZXB1YmxpYzEUMBIGA1UEAxMLQ1NDQS1IRUxM
+QVMxCzAJBgNVBAYTAkdSMSMwIQYJKoZIhvcNAQkBFhRjc2NhQHBhc3Nwb3J0Lmdv
+di5ncjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAJ9oMeJqcw2II+uH
+fI/EWndSP+M6C7P0bgMrWYw8YqZxNc4KWOZN1uA4SV4flOk+ID52owRiUOFfV8fR
+o3I8OMCaaTXhjesKNqiXjtfRLxzE3KzE5/rCDp6NM37yRvF7NFmR15JXppROnTV6
+6VvPYExxXXcn3/hSHa7RAWUrxp6fMKpTbKD+5KOd7gxAzW3CJ6cEEEESUqN/U4YU
+31lHl5jwE413iydehzihBsK189aelZmrowU5T5stJ+TApVHW5szWx1yTFyRltkjb
+KiRye8yT6rc9ymKdB2n+zn72GUzox8kSLsDpi0LvBS1/fmZYh5a/fVm4LYdbJ7i9
+irF+LS2GLd94REZiVEMp4/svTNi/oOBh+gmluQVXhwMd85yNT0j6P8FR6K64oQ1l
+QEndU+MWBqzgQSzXjmYRAjvgqeu1upthk7VXugE69Kflh2HYf0qxEE0y3Fim+3aT
+oyeN80S6zXCLvDj6anFZCry+nhQ6GdOf1nMEOm3h0IXnlszJ4hpJC6P+TqZgSUE3
+WBvibtve4vmIU0754exXW9h1bZvACSRugP561PUVFS+YxaNABeehjct30utMyF1u
+bXNDwuVMhFnUd7X3vrSQU+yE9P4si+vXEO6f0SUvkl7wR9DSDxQcc7J+RgC6Yqov
+vyQSJclHVhCTmV8NnnQMqRunxNqLAgMBAAGjggKGMIICgjArBgNVHRAEJDAigA8y
+MDE2MDgwNzIxMDAwMFqBDzIwMjEwODA3MjA1OTU5WjAOBgNVHQ8BAf8EBAMCAQYw
+HQYDVR0OBBYEFMuOMW7BKRYyvkIpW9sky4JRX4qyMB8GA1UdIwQYMBaAFMuOMW7B
+KRYyvkIpW9sky4JRX4qyMBIGA1UdEwEB/wQIMAYBAf8CAQEwOQYDVR0fBDIwMDAu
+oCygKoYoaHR0cDovL3d3dy5wYXNzcG9ydC5nb3YuZ3IvY3NjYS9jc2NhLmNybDCC
+AbIGA1UdIASCAakwggGlMIIBoQYMKwYBBAGqbAEKYwEAMIIBjzCCAVQGCCsGAQUF
+BwICMIIBRh6CAUIAVABoAGkAcwAgAEMAZQByAHQAaQBmAGkAYwBhAHQAZQAgAGkA
+cwAgAGcAbwB2AGUAcgBuAGUAZAAgAGIAeQAgAHQAaABlACAAcgBlAGYAZQByAHIA
+ZQBkACAAUABvAGwAaQBjAGkAZQBzACAAYQBuAGQAIAB0AGgAZQAgAEMAZQByAHQA
+aQBmAGkAYwBhAHQAaQBvAG4AIABQAHIAYQBjAHQAaQBjAGUAIABTAHQAYQB0AGUA
+bQBlAG4AdAAgAG8AZgAgAHQAaABlACAARwByAGUAZQBrACAAQwBTAEMAQQAsACAA
+dwBoAGkAYwBoACAAZgBvAHIAbQAgAGEAbgAgAGkAbgB0AGUAZwByAGEAbAAgAHAA
+YQByAHQAIABvAGYAIAB0AGgAZQAgAEMAZQByAHQAaQBmAGkAYwBhAHQAZQAuMDUG
+CCsGAQUFBwIBFilodHRwOi8vd3d3LnBhc3Nwb3J0Lmdvdi5nci9jc2NhL3BvbGlj
+aWVzLzANBgkqhkiG9w0BAQsFAAOCAgEAna0e7FSGJNuMHG8yGt3bDf6g/+h0QuY4
+kdwgZ9UxuUoFTu385OlzcmdAyDOHSsEcGyg2KTeIDaZ8MtQj/qmeozpk3RtfQnVY
+pSwzXiqFBj2UAEcGZuXK6jT+r4ZLIE56lFSY6i83JMNRY+hKLCN15CWTxNAc9l5R
+PLRpWUBf0O4stsC1gsmnKp0Ngz5ekQ4zSktsWO+14Su7xN1lu9ZHOi35Rm8nrNCR
+chotfYRQRPu6j7SVJd6uGfX7glM5mnZwDrYmpf9HOazJOaWxalU/n8LvuGAQSYvz
+cMgjg5cwoFF6N3lg1xmvIXBvq6NHg1R4s+d2M8OdwZ9usWjhihNDsA6xXXfStmhP
+YZbjKZWXVtDzlwW8jlUVuP3m2XCSBWmSzpF+zz4RymXxOdrLlyHG5QaNWxqp7OuK
+b+bPMciI6ggagROpFc4QsQltvzc9E4J0IGVRXlXcGn7PhjA7N7eWsyOy3t0lfAya
+muoyZOxkTP+w8SB+k0X2S/MD/eLFZOQhVPeT8MLWZ/G/ciQqwjI/f9H1vS0ri3Q9
+ns4nKvTLi3E48dedxBj3a2adoSlYpqL+eL+Neca3TdON7IA9FaALyJFlOLxYddaj
+cEK9XIhkFmdkuC1LPZ148k6SOJxEoR5JRYhGHnZB1MfqOsJk3JcT1R3nH/GrDiGr
+GUOD/nm2a5g=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIH5DCCBcygAwIBAgICAKIwDQYJKoZIhvcNAQELBQAwcDEKMAgGA1UEBRMBNTEa
+MBgGA1UEChMRSGVsbGVuaWMgUmVwdWJsaWMxFDASBgNVBAMTC0NTQ0EtSEVMTEFT
+MQswCQYDVQQGEwJHUjEjMCEGCSqGSIb3DQEJARYUY3NjYUBwYXNzcG9ydC5nb3Yu
+Z3IwHhcNMTYwODA4MTIwMTIzWhcNMjYxMTA3MjE1OTU5WjBwMQowCAYDVQQFEwE2
+MRowGAYDVQQKExFIZWxsZW5pYyBSZXB1YmxpYzEUMBIGA1UEAxMLQ1NDQS1IRUxM
+QVMxCzAJBgNVBAYTAkdSMSMwIQYJKoZIhvcNAQkBFhRjc2NhQHBhc3Nwb3J0Lmdv
+di5ncjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAJ9oMeJqcw2II+uH
+fI/EWndSP+M6C7P0bgMrWYw8YqZxNc4KWOZN1uA4SV4flOk+ID52owRiUOFfV8fR
+o3I8OMCaaTXhjesKNqiXjtfRLxzE3KzE5/rCDp6NM37yRvF7NFmR15JXppROnTV6
+6VvPYExxXXcn3/hSHa7RAWUrxp6fMKpTbKD+5KOd7gxAzW3CJ6cEEEESUqN/U4YU
+31lHl5jwE413iydehzihBsK189aelZmrowU5T5stJ+TApVHW5szWx1yTFyRltkjb
+KiRye8yT6rc9ymKdB2n+zn72GUzox8kSLsDpi0LvBS1/fmZYh5a/fVm4LYdbJ7i9
+irF+LS2GLd94REZiVEMp4/svTNi/oOBh+gmluQVXhwMd85yNT0j6P8FR6K64oQ1l
+QEndU+MWBqzgQSzXjmYRAjvgqeu1upthk7VXugE69Kflh2HYf0qxEE0y3Fim+3aT
+oyeN80S6zXCLvDj6anFZCry+nhQ6GdOf1nMEOm3h0IXnlszJ4hpJC6P+TqZgSUE3
+WBvibtve4vmIU0754exXW9h1bZvACSRugP561PUVFS+YxaNABeehjct30utMyF1u
+bXNDwuVMhFnUd7X3vrSQU+yE9P4si+vXEO6f0SUvkl7wR9DSDxQcc7J+RgC6Yqov
+vyQSJclHVhCTmV8NnnQMqRunxNqLAgMBAAGjggKGMIICgjArBgNVHRAEJDAigA8y
+MDE2MDgwODEyMDEyM1qBDzIwMjEwODA3MjA1OTU5WjAOBgNVHQ8BAf8EBAMCAQYw
+HQYDVR0OBBYEFMuOMW7BKRYyvkIpW9sky4JRX4qyMB8GA1UdIwQYMBaAFGQ6dlrf
+VzGTRWbOWFUmmBWWO/7cMBIGA1UdEwEB/wQIMAYBAf8CAQAwOQYDVR0fBDIwMDAu
+oCygKoYoaHR0cDovL3d3dy5wYXNzcG9ydC5nb3YuZ3IvY3NjYS9jc2NhLmNybDCC
+AbIGA1UdIASCAakwggGlMIIBoQYMKwYBBAGqbAEKYwEAMIIBjzCCAVQGCCsGAQUF
+BwICMIIBRh6CAUIAVABoAGkAcwAgAEMAZQByAHQAaQBmAGkAYwBhAHQAZQAgAGkA
+cwAgAGcAbwB2AGUAcgBuAGUAZAAgAGIAeQAgAHQAaABlACAAcgBlAGYAZQByAHIA
+ZQBkACAAUABvAGwAaQBjAGkAZQBzACAAYQBuAGQAIAB0AGgAZQAgAEMAZQByAHQA
+aQBmAGkAYwBhAHQAaQBvAG4AIABQAHIAYQBjAHQAaQBjAGUAIABTAHQAYQB0AGUA
+bQBlAG4AdAAgAG8AZgAgAHQAaABlACAARwByAGUAZQBrACAAQwBTAEMAQQAsACAA
+dwBoAGkAYwBoACAAZgBvAHIAbQAgAGEAbgAgAGkAbgB0AGUAZwByAGEAbAAgAHAA
+YQByAHQAIABvAGYAIAB0AGgAZQAgAEMAZQByAHQAaQBmAGkAYwBhAHQAZQAuMDUG
+CCsGAQUFBwIBFilodHRwOi8vd3d3LnBhc3Nwb3J0Lmdvdi5nci9jc2NhL3BvbGlj
+aWVzLzANBgkqhkiG9w0BAQsFAAOCAgEACJ7F0z+t+6OZk0LncQobwDidYX3FyIP6
+9xHpkX300GEJY25m6k9Ki07kvTxRp3paxdIUhO1ZuKb4Tbs91qziGC3S1eKGuYQK
+Y7RKI7vvBwVyqXsBpFTNbGnuzvJS0FoqG1kNmvwQYiG9govUKeMvsotMsNbniKOr
+CUi1e0nSMbKSRDrhOyhww1t56TB5Js29yCVNDKN1z2xNiUeq5GbRTSJDapQprMVh
+JnyTgjkUtOpH8zkWS7yvG8VWR4inLk7NIDnwnViOfXmGE4lBF91up1QYH3mj+xYL
+mPlpanQ0bdL0GMwMpCWYMHdkSCEqen8ROeHgSF/XMKUdBJq9Q07xr0ZMpvH5w2mB
+r3fjTWsYUTN5RqPbU7gTpqS+RTcVlusnehPeu9fETpqGdZrm7P4vLuPfZaBTkBV8
+hijFej6jKZMqUxcyhUP9J9uw9I1GR/T7XHUfwktXhicImHxgM04VgaJDHQ5ZlbXf
+8XsRuVxMZzYElotKLynGUIrfkLytVT8P1ZAQzHrA9tGKuvTFahxHD7Ju+y1iwk02
+q2mIY0Jy7tnwEeVORlA0v2scnpNfNhos6rHl8Al0uchHtWxCT6lTP1H13WtDn5Iw
+Cqrf6lpws26zQL76nmRV1Re52a8FFQRZeAMmMMTOM2niNp256Lw3GBO1hQeG77F7
+J13PBVkhG8c=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIH5DCCBcygAwIBAgICAOAwDQYJKoZIhvcNAQELBQAwcDEKMAgGA1UEBRMBNTEa
+MBgGA1UEChMRSGVsbGVuaWMgUmVwdWJsaWMxFDASBgNVBAMTC0NTQ0EtSEVMTEFT
+MQswCQYDVQQGEwJHUjEjMCEGCSqGSIb3DQEJARYUY3NjYUBwYXNzcG9ydC5nb3Yu
+Z3IwHhcNMjEwNzIxMTIwNzEyWhcNMjYxMTA3MjE1OTU5WjBwMQowCAYDVQQFEwE3
+MRowGAYDVQQKExFIZWxsZW5pYyBSZXB1YmxpYzEUMBIGA1UEAxMLQ1NDQS1IRUxM
+QVMxCzAJBgNVBAYTAkdSMSMwIQYJKoZIhvcNAQkBFhRjc2NhQHBhc3Nwb3J0Lmdv
+di5ncjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAKDyLEOr3wuc6YrA
+hadiiDqoXjjTObKKvtJpymfZBfSFWInFLIw1hyK6WjdWecGvJDRzF9llAK6FzJXD
+Lgb8hYkM4COgbgyGtnVyezw1Z/HcCdpnz5IS6LhsXGn2uqDnvo0+AXQI+0joYl1X
+vwMEthJyOAIRZhCkc6Oj/byufG8HLh7IrHkFLm2JgnKUBMR4Ne7/6J9P8JyEhLqA
+puE8dJWSSNu5YzepNBPdgNo9c4FdIeGyKC8yFtbwJtYSfYubhRxhRC9dGghjT8Ev
+fQGH2gEcZfpv06m0yc7lMgat0EZQZE4p1XoD8PLIhR5omS5yAEim1ORZu5vrb/TT
+S4fNt84EctlB7DbCWmltsVWnUdAgqtgHJrCvz33a0a7eabIGncLO1Yj2EJZZDEbL
+dvuReSisO7RwCXQPB1doXdqCbeBji/iai8K48KZ8XvR34Xgd1GukrbvhxgQ3mnvx
+G9oBgRc8cWWr6L7VZyNyyFCvdhzrdONG4Taeoa6rMFQ8fGeLgPmBXjLBigmfKIfd
+tFIlCTVxbK3ULKHK7J4o7v+gTEvMFplJUvbc+wpDIeL88NYX/OekgNj6N6MmPdcA
+Q0IRb/8PK3tIhXtvMx+ljXxYrcjsbF2P4UNI785phf54WHwMiI03sDaKJQ+2s5tk
+mVKt8D/bm3ZXzznavOxmwfZVAFVxAgMBAAGjggKGMIICgjArBgNVHRAEJDAigA8y
+MDIxMDcyMTEyMDcxMlqBDzIwMjEwODA3MjA1OTU5WjAOBgNVHQ8BAf8EBAMCAQYw
+HQYDVR0OBBYEFEH1vvhYbNcdDNjit0bSKnzgY8Q6MB8GA1UdIwQYMBaAFGQ6dlrf
+VzGTRWbOWFUmmBWWO/7cMBIGA1UdEwEB/wQIMAYBAf8CAQAwOQYDVR0fBDIwMDAu
+oCygKoYoaHR0cDovL3d3dy5wYXNzcG9ydC5nb3YuZ3IvY3NjYS9jc2NhLmNybDCC
+AbIGA1UdIASCAakwggGlMIIBoQYMKwYBBAGqbAEKYwEAMIIBjzCCAVQGCCsGAQUF
+BwICMIIBRh6CAUIAVABoAGkAcwAgAEMAZQByAHQAaQBmAGkAYwBhAHQAZQAgAGkA
+cwAgAGcAbwB2AGUAcgBuAGUAZAAgAGIAeQAgAHQAaABlACAAcgBlAGYAZQByAHIA
+ZQBkACAAUABvAGwAaQBjAGkAZQBzACAAYQBuAGQAIAB0AGgAZQAgAEMAZQByAHQA
+aQBmAGkAYwBhAHQAaQBvAG4AIABQAHIAYQBjAHQAaQBjAGUAIABTAHQAYQB0AGUA
+bQBlAG4AdAAgAG8AZgAgAHQAaABlACAARwByAGUAZQBrACAAQwBTAEMAQQAsACAA
+dwBoAGkAYwBoACAAZgBvAHIAbQAgAGEAbgAgAGkAbgB0AGUAZwByAGEAbAAgAHAA
+YQByAHQAIABvAGYAIAB0AGgAZQAgAEMAZQByAHQAaQBmAGkAYwBhAHQAZQAuMDUG
+CCsGAQUFBwIBFilodHRwOi8vd3d3LnBhc3Nwb3J0Lmdvdi5nci9jc2NhL3BvbGlj
+aWVzLzANBgkqhkiG9w0BAQsFAAOCAgEAghRqa0nDvA3guEk5hhK7YddjE0c5W3lz
+6BtVy6wY4/6J9u5dTwQywyEqlUojsAFPJQV7ZgIj7eV5Ngd6J7BR9Kf44kDcoMeh
+/pC6TNRDNVBu89QOtXBVX0wTNYVCOw1XWpqgTLYU9MoJxcaaxH9RKYApQ+PMwCDl
+ODV0OZjBX9Q4Jebw/KjY3LNMAnbsFROirznYdvALRIye8OE2u6ruxZYCpl4R5B5z
+ZTyUug2wf4vnYd2ia8qTgPnzd85/An1WqgIoCj/hnenOXEaaJ9/nJu6nfGxETM1n
+HCJsWrqFA5C7YtrcCEUA71sZpnq099p/JVu1zI9rPwkWRqrMY9fSCrUGJPbSYox2
+1Ay6kSBKMz22NifLvFZ5jVNXcnbxWslNrEzgIwUfQC8m+CvQoyS/IR72ZYoAttSK
+0WNQ0/OgjD9oiGz4W87yFWjrtCAU5GuJ2xUcdALuB93gOw3cv/edg9Pi6K3P+kwQ
+tS9+muuA9pZnEOdc+LX7c831iFZopoC1D9vaUyYkJ7sEJpE+tMo1YD+zCJ2kZUkr
+mHRFr9gt9cLxWoesrddnioF6V9bBdAcIIrs6/jt7edt9jvU6SGtCmzO/XdyQ7qBj
+cPNA9wATeA4tftdr+tKdmYHTsXX+ENNVsTGkPbJkp3j/y1GLA3pcZohMOkyV7G7O
+/77KvjQLFa0=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIH5DCCBcygAwIBAgICAOEwDQYJKoZIhvcNAQELBQAwcDEKMAgGA1UEBRMBODEa
+MBgGA1UEChMRSGVsbGVuaWMgUmVwdWJsaWMxFDASBgNVBAMTC0NTQ0EtSEVMTEFT
+MQswCQYDVQQGEwJHUjEjMCEGCSqGSIb3DQEJARYUY3NjYUBwYXNzcG9ydC5nb3Yu
+Z3IwHhcNMjEwNzIwMjEwMDAwWhcNMzExMDIwMjA1OTU5WjBwMQowCAYDVQQFEwE4
+MRowGAYDVQQKExFIZWxsZW5pYyBSZXB1YmxpYzEUMBIGA1UEAxMLQ1NDQS1IRUxM
+QVMxCzAJBgNVBAYTAkdSMSMwIQYJKoZIhvcNAQkBFhRjc2NhQHBhc3Nwb3J0Lmdv
+di5ncjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMzzTJBjnWB5nCv7
+71Kt8IMEcxXmRj5E80ZcuyEH/tK0wKYF4RnKX6DcWK8qKV7QK/4Vnb5UW0fsz2XG
+bkpOthj63f9SXyDs9A3RJ3u0rtcgO0wl/xdQR+6kuCdvyZeEWksi7zgz6T2jlL3z
+8545SohBFAwnTu0b1tMeFVXxPqhVNZifE2d3mdzYVFAZaobjqPMI8romxNM6TUKA
+3Zp9wYs4v4+VqBQr5V8udsPEs4q1UHsS3/iTLdwi1zOGLx39k8POjiYyudHXUDug
+9Pu/GQx1ULMl6X6PfCI2wu94CiQckEmMtYx8fj6tYA7YhrDMJ6NstTteORmjS0Za
+7YXrzLjzB2p3JmeV+gVeK4R15gxTxTCZOwR6yKGyieesd0rSVrYaijz39W84mrSx
+2r6/oFRh1r4Dy6VhAvVPffu60qssljxeQIfeU/0SA04wPlYf+S2hgfXsZ4TwTagy
++WpHaH05g1YPYAodF8pfMgQFP1ULIfAboGX/AZUcrlBBgfBJottuPL1l0clpwk3l
+fXJYru3/bdTiQmg46Z+JPB202S7xAAuTl6T3VmaIvXIQHIpaKwPw7O0ZFfJOA7r1
+O3flbj00q0O75e2BJz9FZXwigG3Zt881WwcffzRyQk1heFTz7EfFJrCIljGQMFgZ
+vUUj/iiNAO2EUrhGzPxYD88ASO/bAgMBAAGjggKGMIICgjArBgNVHRAEJDAigA8y
+MDIxMDcyMDIxMDAwMFqBDzIwMjYwNzIwMjA1OTU5WjAOBgNVHQ8BAf8EBAMCAQYw
+HQYDVR0OBBYEFJy+kcu7EEEXnYUlI0QOWuQGq5aRMB8GA1UdIwQYMBaAFJy+kcu7
+EEEXnYUlI0QOWuQGq5aRMBIGA1UdEwEB/wQIMAYBAf8CAQEwOQYDVR0fBDIwMDAu
+oCygKoYoaHR0cDovL3d3dy5wYXNzcG9ydC5nb3YuZ3IvY3NjYS9jc2NhLmNybDCC
+AbIGA1UdIASCAakwggGlMIIBoQYMKwYBBAGqbAEKYwEAMIIBjzCCAVQGCCsGAQUF
+BwICMIIBRh6CAUIAVABoAGkAcwAgAEMAZQByAHQAaQBmAGkAYwBhAHQAZQAgAGkA
+cwAgAGcAbwB2AGUAcgBuAGUAZAAgAGIAeQAgAHQAaABlACAAcgBlAGYAZQByAHIA
+ZQBkACAAUABvAGwAaQBjAGkAZQBzACAAYQBuAGQAIAB0AGgAZQAgAEMAZQByAHQA
+aQBmAGkAYwBhAHQAaQBvAG4AIABQAHIAYQBjAHQAaQBjAGUAIABTAHQAYQB0AGUA
+bQBlAG4AdAAgAG8AZgAgAHQAaABlACAARwByAGUAZQBrACAAQwBTAEMAQQAsACAA
+dwBoAGkAYwBoACAAZgBvAHIAbQAgAGEAbgAgAGkAbgB0AGUAZwByAGEAbAAgAHAA
+YQByAHQAIABvAGYAIAB0AGgAZQAgAEMAZQByAHQAaQBmAGkAYwBhAHQAZQAuMDUG
+CCsGAQUFBwIBFilodHRwOi8vd3d3LnBhc3Nwb3J0Lmdvdi5nci9jc2NhL3BvbGlj
+aWVzLzANBgkqhkiG9w0BAQsFAAOCAgEADTNq8sOg2D1Y9PQGyqZq4E1Ed7coYG1F
+0UIW0hcEEpCjoJHJfcUTvEFidNGi/SmgDmGHbyrX+LNvASqTlwsCSso5PTbJFvMY
+OdGyEaWb4up8kzh/wSMtup7yUPmVB2dxxWkHLhmVbmyh3D0RNGT67TRb+6MUPjPL
+S48leBGLHOHuzMgA6psp/7cGd9CDpirtSnX+Dzdrm1paIGhRZOiL5POEGZOaMyKg
+PvJ/PtCRhFJQiiSTIrUeK9WKOdLQ2RwXjaE3tCvl/9WKEtA0u2LjTaTKjCbqKQHe
+UcxJ4WHtd4k0Lrxmhg2QQUNci77cLHLa9iYoD2+arVwD62SxXPT9DVAzGyp140Ox
+LGUxOa3JXPuwJBZjm5NvgVuH4cf3OYFkIx37KM/+iFYeN1i4NoM4cb8wCDwu3FgO
+VQVfFSJWp7Tm84h+Yrub9ug80JoWoR8PzWFiwfTFLuPNvRenpLY+vyFp2wEonpgH
+Uv/faCCgfA3LFj/bYN+MrffW8lPfOpDngFusbi10+RQ1LNI7PU3r99rP2pNB4dIT
+YE0v2mTAxwMQAXFSgO9fC1ZzUL1w7Fq9AH0uM6JHqLtshvfZ+cGpR3VQXz1nYOb3
+OSdzUwqGzna1AXDP7uJexeHD6HS1LZKAwHV66WXCrJOHh14PSHatBFEs/I1PNMqg
+8RlCIw5E/LU=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIIGjCCBc6gAwIBAgICAPQwQQYJKoZIhvcNAQEKMDSgDzANBglghkgBZQMEAgEF
+AKEcMBoGCSqGSIb3DQEBCDANBglghkgBZQMEAgEFAKIDAgEgMIGHMQswCQYDVQQG
+EwJDTjESMBAGA1UECgwJTWFjYW8gU0FSMScwJQYDVQQLDB5JZGVudGlmaWNhdGlv
+biBTZXJ2aWNlcyBCdXJlYXUxOzA5BgNVBAMMMkNoaW5hIFBhc3Nwb3J0IENvdW50
+cnkgU2lnbmluZyBDZXJ0aWZpY2F0ZSAoTWFjYW8pMB4XDTIyMDcwNzE2MDAwMFoX
+DTM3MDcwODE1NTk1OVowgYcxCzAJBgNVBAYTAkNOMRIwEAYDVQQKDAlNYWNhbyBT
+QVIxJzAlBgNVBAsMHklkZW50aWZpY2F0aW9uIFNlcnZpY2VzIEJ1cmVhdTE7MDkG
+A1UEAwwyQ2hpbmEgUGFzc3BvcnQgQ291bnRyeSBTaWduaW5nIENlcnRpZmljYXRl
+IChNYWNhbykwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCq1rn5Hup5
+wiRZ0ld+K5NDTwSayaZoWLJ/hmM8MjYMUYCWH/pXrhD0WvSi5JcT5Qgoi/lpGX47
+VrkaiMUeqFQEPMOzAjMWNVhk2VPbr7jW8mwO6koU3zI/gGYtfr2CzqJ1OtzuDwY/
+QKaiAdGFiMgQom3m2xoBk8m9Zo7LG6BYso6f3tGm27T4s3iirO/ZX6bwt2Pvp9Nh
+vxyga9eoPZVHN5pYYd7LlauUj5PQ1AB8IvtbcPhTbtDmgUQAxye3uy++cMGJZPnc
+TN85x9S2Ama6i3vGP2J4KDgGdq+4FxHIcty6A/HEwtBy8SrnQQsqoxny5QndV4mP
+VUS1Yg8PLxaKgDor2wdZUWZpu8tguNRrbJpIQYoq2qfHD/1HYV5I1XUH4XzYTqzf
+3OsciP+VNwv45HviBH2pNJshmTBns/IA56Y0477x0ZX0EoEuQdcQkPNt6mcG7kOT
+fjSl6d9lWPu8EDNil2LpJ/fkJBsoa1Qgq4VJQ9XkWWX9EvGU0VQA+DJrQl3mfYxE
+x0gW/c5kPF4SAzKy9VncZTjMOIqFbMD0XFM0uFMv7p+tSStJVxvoBgs61pv3im7c
+sBx8jFekJM4BhixcNpGMRbEHm1YZ9TMODe4pppnwlyrNR2nQ8ubsU43ONrmBAa1T
+H/wErayvsg7UXLUa3ya2Iaq+miwKgJxVDwIDAQABo4ICJDCCAiAwEgYDVR0TAQH/
+BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFInWgC6pUEVzu+W6
+ZXap7BJAsL/2MIG0BgNVHSMEgawwgamAFHjvRHEzVFnmmK2UsXW5J75HSfA9oYGN
+pIGKMIGHMQswCQYDVQQGEwJDTjESMBAGA1UECgwJTWFjYW8gU0FSMScwJQYDVQQL
+DB5JZGVudGlmaWNhdGlvbiBTZXJ2aWNlcyBCdXJlYXUxOzA5BgNVBAMMMkNoaW5h
+IFBhc3Nwb3J0IENvdW50cnkgU2lnbmluZyBDZXJ0aWZpY2F0ZSAoTWFjYW8pggFf
+MCsGA1UdEAQkMCKADzIwMjIwNzA3MTYwMDAwWoEPMjAyNzA3MDgxNTU5NTlaMD8G
+A1UdEQQ4MDaBFGVwYXNzcG9ydEBkc2kuZ292Lm1vpB4wHDEMMAoGA1UEBwwDQ0hO
+MQwwCgYDVQQIDANNQUMwPwYDVR0SBDgwNoEUZXBhc3Nwb3J0QGRzaS5nb3YubW+k
+HjAcMQwwCgYDVQQHDANDSE4xDDAKBgNVBAgMA01BQzB1BgNVHR8EbjBsMDSgMqAw
+hi5odHRwczovL3BrZGRvd25sb2FkMS5pY2FvLmludC9DUkxzL0NITl9NQUMuY3Js
+MDSgMqAwhi5odHRwczovL3BrZGRvd25sb2FkMi5pY2FvLmludC9DUkxzL0NITl9N
+QUMuY3JsMEEGCSqGSIb3DQEBCjA0oA8wDQYJYIZIAWUDBAIBBQChHDAaBgkqhkiG
+9w0BAQgwDQYJYIZIAWUDBAIBBQCiAwIBIAOCAgEAdmX3Ls6eTahH+0m+JKtB9Rxl
+WkI0zZnnFTvKDn8tjIsN9gsLNnJEFXHSF6t1r+QUklLYmQQNlwT6meiblPHv1AU+
+nrbBLtP6AmZMlu0oTuPjZfiAvGQWAAKaFxGLl1+LJNgXYfqm/iuLDNlHYDnDpaOD
+UTnlgWY79Mt0gF0lp1xcSHM7h3xI45/2hA73zf5AxeoA5Q8CpJvVBQmCNjPuODJH
+ZILnAQDguuLto3BBOwRVS93iYrLhsL+SMxzefSR5WwLcU+j1NDn7JW7gIjYKYDf0
+snWxjk/2iwcep9b9E8fE1VoSjGQkmnDnZhgtdoLrl/XHlWGo6J0Uv1RbHbB5zIJ6
+gGQrE+/OHEY/GoS7QgQsSFyR8c1P8bjIY9uOE4/vOkPs/UPDfaWIg2lxsM6Dv+Iq
+r5UzyQ6EVPlaExDNX1m3+D7AncxIegJ8zQZ6sA/ctPjVJg9e6Rf0iyJbI0eprxUq
+FJSpw2kuIZUIYUyE2bRp6sn/ddVrbAvR4HuviRv3ewv/RX/Gzyx1vWtx5zLbWv2j
+caGGzNyOShpd44E0HgHx93t0l4zEoilYmAo6IiIhzZAQbG/8zs54xwryUitfjEeM
+UY8bNYgpNB8gJA0iuJDEc62tg+bbwT/zXMC8BseT7E/xiTEI2p62jK0D5qlcIi8D
+zRsf9JwkqeJRrXVp0sI=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIImzCCBoOgAwIBAgICAPgwDQYJKoZIhvcNAQELBQAwcDEKMAgGA1UEBRMBNzEa
+MBgGA1UEChMRSGVsbGVuaWMgUmVwdWJsaWMxFDASBgNVBAMTC0NTQ0EtSEVMTEFT
+MQswCQYDVQQGEwJHUjEjMCEGCSqGSIb3DQEJARYUY3NjYUBwYXNzcG9ydC5nb3Yu
+Z3IwHhcNMjIwODE3MjEwMDAwWhcNMzExMDIwMjA1OTU5WjBwMQowCAYDVQQFEwE5
+MRowGAYDVQQKExFIZWxsZW5pYyBSZXB1YmxpYzEUMBIGA1UEAxMLQ1NDQS1IRUxM
+QVMxCzAJBgNVBAYTAkdSMSMwIQYJKoZIhvcNAQkBFhRjc2NhQHBhc3Nwb3J0Lmdv
+di5ncjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALDxejKMY/ZSX8E1
+K4BbQ7Ardrjc4aVlAEa5LCg8InXrU79rrO794yeIW9OPEIXydi25FkUvmEv82LQu
+bJUEWbIhDwLweWy95XpUZWLcnO+NFpGIqRJKkSR3i3LK7kmpeUxp9tIJPmYn1b4/
+6QDEtLqE2RaAweHJyOhieGNcY2RHQKT53tojlIUD9NwWEk7iQ7DP4HrDp9kCcgGF
+eVkgPDOmC7IrVVV1gj+MMrS1Tqxdw2cjXU5trL3FFgUrgvFTwv9AIV3YFbUubufk
+888BY0Pg45HCOLuSwbl6CmgNs+5Y3qKn6s0xYQWKz4RqbBQ0J1e63RRsys8lN1tB
+a5FqN3D1bDSamp6JfVSaIBQIPvvsC/A5bqyvRfEWPewz9PN8NlLaMh4rZNm61lYv
+y5Twjd7cVFp9iCIQFRF/Wi1bb4XD6bkvSJ9ph8tzk5Na3dqkCIS9nJP1j5Hm9A8J
+8PrfnkRE/sI4UF/UNt0nUg3tuZEp0RN2CnQVJ2LK6aJmR23Ic309PvTOTC1rP6Pg
+xqJsDzTmC13FU1hFCf4mJF6PXUHZAT9/+O6A9/j6S/FAIt5ZkyxwWCqjy1D0ssUH
+tQ87WmVOsdPuEqsj4lz/gwRD30F4hv21ZFGkPWTz3n/m5kLld8Hk7zHK4n4GzwIR
+bRCw0VtmoF9P79dkLBSeYEYKiM2JAgMBAAGjggM9MIIDOTArBgNVHRAEJDAigA8y
+MDIyMDgxODAwMDAwMFqBDzIwMjYwODE3MjM1OTU5WjAOBgNVHQ8BAf8EBAMCAQYw
+HQYDVR0OBBYEFI37bYzK0ruCb2o9fXClu42A6fN/MB8GA1UdIwQYMBaAFEH1vvhY
+bNcdDNjit0bSKnzgY8Q6MBIGA1UdEwEB/wQIMAYBAf8CAQAwOQYDVR0fBDIwMDAu
+oCygKoYoaHR0cDovL3d3dy5wYXNzcG9ydC5nb3YuZ3IvY3NjYS9jc2NhLmNybDCC
+AbIGA1UdIASCAakwggGlMIIBoQYMKwYBBAGqbAEKYwEAMIIBjzCCAVQGCCsGAQUF
+BwICMIIBRh6CAUIAVABoAGkAcwAgAEMAZQByAHQAaQBmAGkAYwBhAHQAZQAgAGkA
+cwAgAGcAbwB2AGUAcgBuAGUAZAAgAGIAeQAgAHQAaABlACAAcgBlAGYAZQByAHIA
+ZQBkACAAUABvAGwAaQBjAGkAZQBzACAAYQBuAGQAIAB0AGgAZQAgAEMAZQByAHQA
+aQBmAGkAYwBhAHQAaQBvAG4AIABQAHIAYQBjAHQAaQBjAGUAIABTAHQAYQB0AGUA
+bQBlAG4AdAAgAG8AZgAgAHQAaABlACAARwByAGUAZQBrACAAQwBTAEMAQQAsACAA
+dwBoAGkAYwBoACAAZgBvAHIAbQAgAGEAbgAgAGkAbgB0AGUAZwByAGEAbAAgAHAA
+YQByAHQAIABvAGYAIAB0AGgAZQAgAEMAZQByAHQAaQBmAGkAYwBhAHQAZQAuMDUG
+CCsGAQUFBwIBFilodHRwOi8vd3d3LnBhc3Nwb3J0Lmdvdi5nci9jc2NhL3BvbGlj
+aWVzLzANBgdngQgBAQYBBAIFADBSBgNVHRIESzBJgRRjc2NhQHBhc3Nwb3J0Lmdv
+di5ncoYgaHR0cDovL3d3dy5wYXNzcG9ydC5nb3YuZ3IvY3NjYS+kDzANMQswCQYD
+VQQHDAJHUjBSBgNVHREESzBJgRRjc2NhQHBhc3Nwb3J0Lmdvdi5ncoYgaHR0cDov
+L3d3dy5wYXNzcG9ydC5nb3YuZ3IvY3NjYS+kDzANMQswCQYDVQQHDAJHUjANBgkq
+hkiG9w0BAQsFAAOCAgEAX9W3TXG+J9BGjT5MULhDPnIEMnS4L5B1K9+WHtlxhNQl
+Dwcc8ppavx73q1w/aIV1tHQ6kDmR13mpGTv3UdPN0RKnKabuCwwuzMimn2Bs4rfS
+AqhXaZJOnz+PjGbinMkSdzo586Q6oXJcIiMOHnC1lO7hNdqcNRISs7Vf7E3NAs4J
+xK2N3Kc9x9Z+hj1cDkxU1oRJER3aXFc0QXcmwHh/UTDgx2P0+Jmn/Ndm0nVq4FsQ
+MuatXZavPHrMgP6QbrlhE7hjZ3N0gFiSvX19h61sTnlsg+89DJx0TOboPIqctlE3
+gEvtTl3roR+Va+68lMqrKhOGIAEo2wnkBygNyDNub5PbmXiXcoNVWgaeu7QO30HM
++GAN6vvGnu7owejFjuk8Pb+MPV3c8KfjdGNiNdiT1sLTgwzosbchcW9947usMtfq
+DsfOXEk+DIZAyN9yWuDE+s+QH7OgqYAiHZCoaIkqik3f4p/WiMg10f2xHWb7ACIT
+TOi/96kYMCci71KG0dZ8pRYxgvPabJNfRuDmuvZVC3f1v9F0nSgbSwDRDtuB+RSQ
+NXV8lKb9KUfnA0CY5AuBNIZ4rlZuaRLrP9iEDCKTlhTzbw3QrCTq+9zZMN3DKMhi
+zrsgTFb8AObK/yPTynXiqK+Tg/hjCvpvaMv5GkED85T9DPZkw94W3uZfN18Jybs=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDQzCCAuqgAwIBAgIBDTAKBggqhkjOPQQDAjByMQswCQYDVQQGEwJDWTEbMBkG
+A1UECgwSUmVwdWJsaWMgb2YgQ3lwcnVzMTAwLgYDVQQLDCdDaXZpbCBSZWdpc3Ry
+eSBhbmQgTWlncmF0aW9uIERlcGFydG1lbnQxFDASBgNVBAMMC0NTQ0EtQ1lQUlVT
+MB4XDTExMDgwMTA5MDY1MloXDTI1MTAzMDIxMDY1MlowcjELMAkGA1UEBhMCQ1kx
+GzAZBgNVBAoMElJlcHVibGljIG9mIEN5cHJ1czEwMC4GA1UECwwnQ2l2aWwgUmVn
+aXN0cnkgYW5kIE1pZ3JhdGlvbiBEZXBhcnRtZW50MRQwEgYDVQQDDAtDU0NBLUNZ
+UFJVUzCCATMwgewGByqGSM49AgEwgeACAQEwLAYHKoZIzj0BAQIhAKn7V9uh7qm8
+PmYKkJ2DjXJuO/Yj1SYgKCATSB0fblN3MEQEIH1aCXX8LDBX7vZ1MEF6/+f7gFXB
+JtxcbOlKS0TzMLXZBCAm3Fxs6UpLRPMwtdm713y/lYQWKVz34c5rzNwY/4wHtgRB
+BIvSrrnLflfLLEtIL/yBt6+53ifh470jwjpEU72azjJiVH74NcPaxP2X+EYaFGEd
+ycJ3RRMt7Y5UXB1Uxy8EaZcCIQCp+1fboe6pvD5mCpCdg41xjDl6o7VhpveQHg6C
+l0hWpwIBAQNCAASIj3Od2OJzyB3SK/5Ak/vn+VkV1KJBhAL+gsD+f3fAXFggT2Kj
+sro1HOAVSpVZJG41dTe2qsP//t6yWGHrRynWo4GUMIGRMB0GA1UdDgQWBBRpNBdk
+O9jazcNRvoSiAhBaw/5EwTAfBgNVHSMEGDAWgBTBJK3rE00Yxxd2GTC5jhGO2u3j
+uzAOBgNVHQ8BAf8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB/wIBADArBgNVHRAEJDAi
+gA8yMDExMDUwOTEwNTQ0OVqBDzIwMTUwNTA5MTA1NDQ5WjAKBggqhkjOPQQDAgNH
+ADBEAiAJv+QrIfJ459Ui/ErkiEoPd7f7xUq2RDHzLSEFqfyOSQIgevn0XNegaW0d
+x55Ttwd79BCz0Mfbkv3gWf8yvHUoHH4=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDRDCCAuqgAwIBAgIBETAKBggqhkjOPQQDAjByMQswCQYDVQQGEwJDWTEbMBkG
+A1UECgwSUmVwdWJsaWMgb2YgQ3lwcnVzMTAwLgYDVQQLDCdDaXZpbCBSZWdpc3Ry
+eSBhbmQgTWlncmF0aW9uIERlcGFydG1lbnQxFDASBgNVBAMMC0NTQ0EtQ1lQUlVT
+MB4XDTExMDgwMTA5NDU1MFoXDTI1MTAzMDIxNDU1MFowcjELMAkGA1UEBhMCQ1kx
+GzAZBgNVBAoMElJlcHVibGljIG9mIEN5cHJ1czEwMC4GA1UECwwnQ2l2aWwgUmVn
+aXN0cnkgYW5kIE1pZ3JhdGlvbiBEZXBhcnRtZW50MRQwEgYDVQQDDAtDU0NBLUNZ
+UFJVUzCCATMwgewGByqGSM49AgEwgeACAQEwLAYHKoZIzj0BAQIhAKn7V9uh7qm8
+PmYKkJ2DjXJuO/Yj1SYgKCATSB0fblN3MEQEIH1aCXX8LDBX7vZ1MEF6/+f7gFXB
+JtxcbOlKS0TzMLXZBCAm3Fxs6UpLRPMwtdm713y/lYQWKVz34c5rzNwY/4wHtgRB
+BIvSrrnLflfLLEtIL/yBt6+53ifh470jwjpEU72azjJiVH74NcPaxP2X+EYaFGEd
+ycJ3RRMt7Y5UXB1Uxy8EaZcCIQCp+1fboe6pvD5mCpCdg41xjDl6o7VhpveQHg6C
+l0hWpwIBAQNCAARjZPWm/MCx/pIVAhUUulJq66N2bF713uC5Xf87JmN5SYfWW81s
+9ncnpfA9iYrP+3GiF/6bkbo6auw1Bbb+hugWo4GUMIGRMB0GA1UdDgQWBBTBJK3r
+E00Yxxd2GTC5jhGO2u3juzAfBgNVHSMEGDAWgBTPEDRWix2CbX/3kk8/B4sLvBKF
+rjAOBgNVHQ8BAf8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB/wIBADArBgNVHRAEJDAi
+gA8yMDExMDgwMTEyMDAxNlqBDzIwMTUwODAxMTIwMDE2WjAKBggqhkjOPQQDAgNI
+ADBFAiBazrXkMUxl1f87waMeB0YePbcQf2C7R2RPHK7/TBQDGgIhAI/3GP0jOElz
+hqt9h+lyCyKsrxwnXxjoelEIPULb96qW
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDWTCCAwCgAwIBAgIBDDAKBggqhkjOPQQDAjByMQswCQYDVQQGEwJDWTEbMBkG
+A1UECgwSUmVwdWJsaWMgb2YgQ3lwcnVzMTAwLgYDVQQLDCdDaXZpbCBSZWdpc3Ry
+eSBhbmQgTWlncmF0aW9uIERlcGFydG1lbnQxFDASBgNVBAMMC0NTQ0EtQ1lQUlVT
+MB4XDTExMDgwMTA5MDAxNloXDTI1MTAzMDIxMDAxNlowcjELMAkGA1UEBhMCQ1kx
+GzAZBgNVBAoMElJlcHVibGljIG9mIEN5cHJ1czEwMC4GA1UECwwnQ2l2aWwgUmVn
+aXN0cnkgYW5kIE1pZ3JhdGlvbiBEZXBhcnRtZW50MRQwEgYDVQQDDAtDU0NBLUNZ
+UFJVUzCCATMwgewGByqGSM49AgEwgeACAQEwLAYHKoZIzj0BAQIhAKn7V9uh7qm8
+PmYKkJ2DjXJuO/Yj1SYgKCATSB0fblN3MEQEIH1aCXX8LDBX7vZ1MEF6/+f7gFXB
+JtxcbOlKS0TzMLXZBCAm3Fxs6UpLRPMwtdm713y/lYQWKVz34c5rzNwY/4wHtgRB
+BIvSrrnLflfLLEtIL/yBt6+53ifh470jwjpEU72azjJiVH74NcPaxP2X+EYaFGEd
+ycJ3RRMt7Y5UXB1Uxy8EaZcCIQCp+1fboe6pvD5mCpCdg41xjDl6o7VhpveQHg6C
+l0hWpwIBAQNCAARjZPWm/MCx/pIVAhUUulJq66N2bF713uC5Xf87JmN5SYfWW81s
+9ncnpfA9iYrP+3GiF/6bkbo6auw1Bbb+hugWo4GqMIGnMBQGA1UdIAQNMAswCQYH
+BAB/AAsBATAfBgNVHSMEGDAWgBTBJK3rE00Yxxd2GTC5jhGO2u3juzAdBgNVHQ4E
+FgQUwSSt6xNNGMcXdhkwuY4Rjtrt47swDgYDVR0PAQH/BAQDAgEGMCsGA1UdEAQk
+MCKADzIwMTEwODAxMTIwMDE2WoEPMjAxNTA4MDExMjAwMTZaMBIGA1UdEwEB/wQI
+MAYBAf8CAQAwCgYIKoZIzj0EAwIDRwAwRAIgVMoejWd7ULGPlqMviLKUZMP/ZJDl
+EjbhbkaK0ur5iQsCIFl8qa4YSxhCCsUoRQQ+bfG3U/mdReXZUZWmAwneqJwn
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDWTCCAwCgAwIBAgIBEDAKBggqhkjOPQQDAjByMQswCQYDVQQGEwJDWTEbMBkG
+A1UECgwSUmVwdWJsaWMgb2YgQ3lwcnVzMTAwLgYDVQQLDCdDaXZpbCBSZWdpc3Ry
+eSBhbmQgTWlncmF0aW9uIERlcGFydG1lbnQxFDASBgNVBAMMC0NTQ0EtQ1lQUlVT
+MB4XDTExMDgwMTA5NDUxMVoXDTI1MTAzMDIxNDUxMVowcjELMAkGA1UEBhMCQ1kx
+GzAZBgNVBAoMElJlcHVibGljIG9mIEN5cHJ1czEwMC4GA1UECwwnQ2l2aWwgUmVn
+aXN0cnkgYW5kIE1pZ3JhdGlvbiBEZXBhcnRtZW50MRQwEgYDVQQDDAtDU0NBLUNZ
+UFJVUzCCATMwgewGByqGSM49AgEwgeACAQEwLAYHKoZIzj0BAQIhAKn7V9uh7qm8
+PmYKkJ2DjXJuO/Yj1SYgKCATSB0fblN3MEQEIH1aCXX8LDBX7vZ1MEF6/+f7gFXB
+JtxcbOlKS0TzMLXZBCAm3Fxs6UpLRPMwtdm713y/lYQWKVz34c5rzNwY/4wHtgRB
+BIvSrrnLflfLLEtIL/yBt6+53ifh470jwjpEU72azjJiVH74NcPaxP2X+EYaFGEd
+ycJ3RRMt7Y5UXB1Uxy8EaZcCIQCp+1fboe6pvD5mCpCdg41xjDl6o7VhpveQHg6C
+l0hWpwIBAQNCAASSVtjywyFbyHS8r7h43+RYOVAy7X7yZQwhiWlifum1eB7vqcq5
+TpOHdhQUt1U0O+kP/+YUD91AoYpHztWwX550o4GqMIGnMBQGA1UdIAQNMAswCQYH
+BAB/AAsBATAfBgNVHSMEGDAWgBTPEDRWix2CbX/3kk8/B4sLvBKFrjAdBgNVHQ4E
+FgQUzxA0Vosdgm1/95JPPweLC7wSha4wDgYDVR0PAQH/BAQDAgEGMCsGA1UdEAQk
+MCKADzIwMTEwODAxMTI0NTExWoEPMjAxNTA4MDExMjQ1MTFaMBIGA1UdEwEB/wQI
+MAYBAf8CAQAwCgYIKoZIzj0EAwIDRwAwRAIgB0N/ATdxjFtoJ+4KesBZnlIx7I/S
+XlfmXzuItZAScz4CIAg8HF/2+s3WuGvOI+mmvvLjsnWsLHBFRIRVKf+ZABI7
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDWjCCAwGgAwIBAgIBCDAKBggqhkjOPQQDAjByMQswCQYDVQQGEwJDWTEbMBkG
+A1UECgwSUmVwdWJsaWMgb2YgQ3lwcnVzMTAwLgYDVQQLDCdDaXZpbCBSZWdpc3Ry
+eSBhbmQgTWlncmF0aW9uIERlcGFydG1lbnQxFDASBgNVBAMMC0NTQ0EtQ1lQUlVT
+MB4XDTExMDUwOTA3NTM1MloXDTI1MDgwNzE5NTM1MlowcjELMAkGA1UEBhMCQ1kx
+GzAZBgNVBAoMElJlcHVibGljIG9mIEN5cHJ1czEwMC4GA1UECwwnQ2l2aWwgUmVn
+aXN0cnkgYW5kIE1pZ3JhdGlvbiBEZXBhcnRtZW50MRQwEgYDVQQDDAtDU0NBLUNZ
+UFJVUzCCATMwgewGByqGSM49AgEwgeACAQEwLAYHKoZIzj0BAQIhAKn7V9uh7qm8
+PmYKkJ2DjXJuO/Yj1SYgKCATSB0fblN3MEQEIH1aCXX8LDBX7vZ1MEF6/+f7gFXB
+JtxcbOlKS0TzMLXZBCAm3Fxs6UpLRPMwtdm713y/lYQWKVz34c5rzNwY/4wHtgRB
+BIvSrrnLflfLLEtIL/yBt6+53ifh470jwjpEU72azjJiVH74NcPaxP2X+EYaFGEd
+ycJ3RRMt7Y5UXB1Uxy8EaZcCIQCp+1fboe6pvD5mCpCdg41xjDl6o7VhpveQHg6C
+l0hWpwIBAQNCAARF1uotdOIEbUrLwgXV1+KDl3mH/huiKSNKP4tEHQQCa51kgvJo
+89MTL9ykKsk2oaDfQ4c3uqVQ0+pOP8Phne3Eo4GrMIGoMBQGA1UdIAQNMAswCQYH
+BAB/AAsBATAfBgNVHSMEGDAWgBRthWD8n39Qzfd/my5mANEjQrBc7zAdBgNVHQ4E
+FgQUbYVg/J9/UM33f5suZgDRI0KwXO8wDwYDVR0PAQH/BAUDAwAGADArBgNVHRAE
+JDAigA8yMDExMDUwOTEwNTM1MlqBDzIwMTUwNTA5MTA1MzUyWjASBgNVHRMBAf8E
+CDAGAQH/AgEAMAoGCCqGSM49BAMCA0cAMEQCIE0xhXGPEMeB53yIm6/pyrgeKQmn
+FaZqasuAj+sAyV2kAiBhgFNEpeLbFpmdhFAP3Nyjss7/ggM65C6ZpS3Dk2cMYA==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDWzCCAwGgAwIBAgIBCTAKBggqhkjOPQQDAjByMQswCQYDVQQGEwJDWTEbMBkG
+A1UECgwSUmVwdWJsaWMgb2YgQ3lwcnVzMTAwLgYDVQQLDCdDaXZpbCBSZWdpc3Ry
+eSBhbmQgTWlncmF0aW9uIERlcGFydG1lbnQxFDASBgNVBAMMC0NTQ0EtQ1lQUlVT
+MB4XDTExMDUwOTA3NTQ0OVoXDTI1MDgwNzE5NTQ0OVowcjELMAkGA1UEBhMCQ1kx
+GzAZBgNVBAoMElJlcHVibGljIG9mIEN5cHJ1czEwMC4GA1UECwwnQ2l2aWwgUmVn
+aXN0cnkgYW5kIE1pZ3JhdGlvbiBEZXBhcnRtZW50MRQwEgYDVQQDDAtDU0NBLUNZ
+UFJVUzCCATMwgewGByqGSM49AgEwgeACAQEwLAYHKoZIzj0BAQIhAKn7V9uh7qm8
+PmYKkJ2DjXJuO/Yj1SYgKCATSB0fblN3MEQEIH1aCXX8LDBX7vZ1MEF6/+f7gFXB
+JtxcbOlKS0TzMLXZBCAm3Fxs6UpLRPMwtdm713y/lYQWKVz34c5rzNwY/4wHtgRB
+BIvSrrnLflfLLEtIL/yBt6+53ifh470jwjpEU72azjJiVH74NcPaxP2X+EYaFGEd
+ycJ3RRMt7Y5UXB1Uxy8EaZcCIQCp+1fboe6pvD5mCpCdg41xjDl6o7VhpveQHg6C
+l0hWpwIBAQNCAASIj3Od2OJzyB3SK/5Ak/vn+VkV1KJBhAL+gsD+f3fAXFggT2Kj
+sro1HOAVSpVZJG41dTe2qsP//t6yWGHrRynWo4GrMIGoMBQGA1UdIAQNMAswCQYH
+BAB/AAsBATAfBgNVHSMEGDAWgBRpNBdkO9jazcNRvoSiAhBaw/5EwTAdBgNVHQ4E
+FgQUaTQXZDvY2s3DUb6EogIQWsP+RMEwDwYDVR0PAQH/BAUDAwAGADArBgNVHRAE
+JDAigA8yMDExMDUwOTEwNTQ0OVqBDzIwMTUwNTA5MTA1NDQ5WjASBgNVHRMBAf8E
+CDAGAQH/AgEAMAoGCCqGSM49BAMCA0gAMEUCIE1+aFCyg+yYWiw087Ifnx/rn6s8
+xJNcuFPCmLVO+H0BAiEAikCaa26ulbRdEhStLJ2ZXZrfbuG4VZIoS4L1Q1jnufQ=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFtTCCA52gAwIBAgIUCrKVF1EjIKVlsAlyw2AjKINAZ/wwDQYJKoZIhvcNAQEF
+BQAwRzELMAkGA1UEBhMCQkUxEDAOBgNVBAoTB0ZFREVSQUwxJjAkBgNVBAMTHUJl
+bGdpdW0gQ291bnRyeSBTaWduaW5nIENBIDAxMB4XDTE2MDkyMzA4NTkwM1oXDTI2
+MDMwNzE1MDgxN1owRzELMAkGA1UEBhMCQkUxEDAOBgNVBAoTB0ZFREVSQUwxJjAk
+BgNVBAMTHUJlbGdpdW0gQ291bnRyeSBTaWduaW5nIENBIDAyMIICIjANBgkqhkiG
+9w0BAQEFAAOCAg8AMIICCgKCAgEAod89IU0sADLBwfm6vk24i9FbcdWysJuZj2SV
+nMSX2hqSGFvgp717DP7WmbKvAbjS/3CwtXKpeikTWpvpHI/Vjsfuu/utishknqmT
+m0l8+Xgczgm0k1Yu8CsIwKSSl9q3WHb05OgHdmw5M9DjVLZNx7Put6SzLx5A1WTt
+I5wx96RibcvODv5BLlhiL3mwJRHh/vU6bgS3CATus7H/VXc3Cnljt+VLZMM4pKJ2
+EzIcqIKDnxDcwJ9oh2yeblR7ST1LWT4H+1gWmapivWlA76G7VG7e3k+nbJrjvoye
+HPL9vsc9qEKC/rPcFS5LEi/77yB4PrVRVtx0mTc/a/RjGUUdSCwprm1C4qOlu3sA
+jM1SURGewMm8CgjvQ7vrSKs1J2pRiAVoOBSAmrlyOxKQdPsW3kYC92rgOWFXdyyA
+tb/XEO8ZqE5/xrL+hCrcCAwrbKgOfhKeIR/Lm3AB0+0A0QxMBmpDtDQjjzDe2d+P
+Zh3mhCXFudFK1s1TNuTR7pfrq/saoQIhmhgdQEai6zn/DCLLG8g3XneyTuf3tghX
+Ea6g6XG+0keE/K3QmHMAsnK+dCIbAgV1YA3NBKHcX3IYjTvcPBI6J666IFCzoXkc
+RDXbOiqLMalTBJ1HLwg81/Wc9aYf8barHrgMucu1dFE9KPOgAGt2DksWvANx2utA
+wwVGwFsCAwEAAaOBmDCBlTBDBgNVHSAEPDA6MDgGBmA4CwEBAjAuMCwGCCsGAQUF
+BwIBFiBodHRwOi8vcmVwb3NpdG9yeS5laWQuYmVsZ2l1bS5iZTAOBgNVHQ8BAf8E
+BAMCAcYwHwYDVR0jBBgwFoAULCmCmIQoKTvrxAx5MMhs84ArrnYwHQYDVR0OBBYE
+FDWgBIwoI3k1s1BK5EDeZPmys9TBMA0GCSqGSIb3DQEBBQUAA4ICAQAWLSoEwKMz
+fn7/zaPD1F8KwmXq+4sYnhxGniZ5mDJ5wGOyjP3iQmNTWjDM5CEYfHxkrB0IB5Pp
+m3fGyRQToTXEtTMRCEY1Bcdz1mc/2p0mmgJRwuBguJl8QQFDLHlPSaoBVmNG0uly
+J1M6gwVtsPzqAL4jkycHLmi9LX5b4whp4xE8VyiyxBBHM6iG1qcvzlvFsPxSApse
+qtEu3FRQGb/7hD8whJKP6KMwxFcKc3buOo0NfvBol1GbElN1CNbQxBCbYmZBKX2h
+ygjvp0kz9LOEZMd7wmreUMvs5dmfSuUizPTldhYsTdc2ByRS3fAbOt/ejCxGRdGi
+79OJy3NyJK/J3JDwBsgB+gBzd4l0pdRH8DOA0N7qqxBq86J7K4lyPnmncdgTkhwc
+wgXtfnGCLvPztRRUN589Pj2IY8itUQWMxqSTeo6FwePi8IBNGt72LjnCci5ql35r
+6dCTgGkXm4e5VRn5kM9D4Afi3FL3S9Ixgr+6MCUvwb/yTQGZetslH0KhcpuzMCw/
+ZGSRa7h2w1WD9TquHxUPaNpfBWeu79/3iwimWABJ3R4dsLH1xUuKKxhSgk/nXSJ3
+dk/4352CI6vWsbFgUVeV0TOtxyisKHPyzw98ZDNGQX0QRBWG9Rn1ozPVeJH0DUUk
+0re6yJfd/Pb6wu+lhQMQiIqs9m3H5qzNaQ==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFtTCCA52gAwIBAgIUPgR4eR6DWSROqgpvR3Q1xhQfahUwDQYJKoZIhvcNAQEL
+BQAwRzELMAkGA1UEBhMCQkUxEDAOBgNVBAoTB0ZFREVSQUwxJjAkBgNVBAMTHUJl
+bGdpdW0gQ291bnRyeSBTaWduaW5nIENBIDAyMB4XDTE5MDQwMjE0MzgwNloXDTMw
+MDEyMzA4MzQyOVowRzELMAkGA1UEBhMCQkUxEDAOBgNVBAoTB0ZFREVSQUwxJjAk
+BgNVBAMTHUJlbGdpdW0gQ291bnRyeSBTaWduaW5nIENBIDAzMIICIjANBgkqhkiG
+9w0BAQEFAAOCAg8AMIICCgKCAgEAi+kv0wzqHZHN9iBClpiTahYNelvlk+SQegY/
+VzTMJVRr1V0Afw4XvdjTvCIUqsbIkzxPPS34atQhv8E3GGq90wh3gqIBedoJ0LQo
+APkB4CQ4J0QjSKQl8ovMnALbGwwAtpuizBFB1Cei3pOv+Wdpau+pFOJf0RhJLDyM
+Slnlp7cFPOkdv4KnO4yif5xs/NgRbrxzcbxdMkW45xTiM1J7Qjlya1VvLPrUNHt7
+EJLxLtx1BarXw0MHYkAhbFEWtvRRjE7+EEIYBQaBCG/L1c24My80h97eHwhU7faM
++40dvW+0KPoQTBt38IHtyD2DjKiaXjXnIVWPt8iJmNAN4P6pttNbttS8UOUWbP/3
+VVeJQet1bECpWdxL9WE6t8ZC6H7L0UlVgzZmRVIrtINu9JsfVO/aKSU88h90Emdk
+7E/aneuajjvG0hB14KeaVjgwsUes2isiC4vTIJ7oCdE44L8a0F9onc12NnkPB3DY
+ASRmh0vv+Wma2fI9o5/MGkYSxyyM8VzAwaax2Gles5Bmm0WecOjPFgh5tsxSb65T
+AA0IAwc5X7+TBsbVltSjfNIyPiW/cyChYuExcK5WXVwYvMfSWbo65UqeoW7WBSsm
+4p2STPkhFm7nMysClWQzN1gLDgzmio8jV67s+rsPLPgIjLZxxfYiGFmD8c/GFq6l
+Ddud1yMCAwEAAaOBmDCBlTBDBgNVHSAEPDA6MDgGBmA4CwEBAjAuMCwGCCsGAQUF
+BwIBFiBodHRwOi8vcmVwb3NpdG9yeS5laWQuYmVsZ2l1bS5iZTAOBgNVHQ8BAf8E
+BAMCAcYwHwYDVR0jBBgwFoAUNaAEjCgjeTWzUErkQN5k+bKz1MEwHQYDVR0OBBYE
+FC1lDT3jQLZIDA/CQPJJ8ukRv75vMA0GCSqGSIb3DQEBCwUAA4ICAQA5SchuqwLR
+/Hohc8l1sY/KJ0ZRVrwovzuzbMB/Z2oOTHuZrQ9NofnImerHRdS46G4e7J42TXXn
+lN55XWgQ56wodSHRu6/zPmh+KVPib45SX5ponku1To/DB/n6Z37DijDuExyMp425
+3J9u1RyGndHe8TIAJG5ZleE5GLvT0LcFon0BcRVD8ZOpmvtYmejbOuiPfdpkYyWS
+F/MFCvW+qQrtLOm1shQ2RkTsanPvaGc5OMAG1svJYZwaACRzk3rcGFX5BUmKnIag
+HG8D2RwYnsaXCU1kSbR8jrszERfpUSgN0ZP+NRZOFGTklC6H+VlKEs6FNvLnDP+h
+LDBK5qE4YqM9J4ULVInroC3+e+w6xEsL5zX9oYZtGrlIEjI8FYR2B6rNuFKhkiWo
+X9C6IY4mdHD3d+a1nszWnK7WBeHQYCYaAkFw1OrZndBdCNy1erFATXbBLmo/ShwL
+v4+0HP87G9kN+/ZTHEKcgfkO9PvHw8kjN/+FEGoQSvJZu0eYDThMJ8xSuVZiKgfP
+GpXVGxZIdatPKvZcjK8G/5JerF+HjgUJ3dFkOtPbxWYzoxpjOYO1vkMTynkOPfGd
+oCgmDZ52/LH2C/rCfsxPEVrGO09Qt+7m4r976hwfP2BY+fVTupTakT7H3zOl+dKj
+zVrf4eHUcUWRN9oX0PU3E9M0U3FQBOBh0w==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGMDCCBBigAwIBAgIINYd28FCFBoowDQYJKoZIhvcNAQEFBQAwgYgxJTAjBgNV
+BAMMHEVDTiBEb2N1bWVudG9zIGRlIFZpYWdlbSAwMDIxHTAbBgNVBAsMFElDQU8g
+TVJURCBQS0kgLSBDU0NBMTMwMQYDVQQKDCpSZXB1YmxpY2EgUG9ydHVndWVzYSAt
+IFBvcnR1Z3Vlc2UgUmVwdWJsaWMxCzAJBgNVBAYTAlBUMB4XDTE1MTEwNTExMTAy
+NloXDTI0MDUwMTExMjAyNlowfzESMBAGA1UEAwwJMjAxMiAyMDE1MScwJQYDVQQL
+DB5JQ0FPIE1SVEQgUEtJIC0gQ1NDQSBDcm9zc2xpbmsxMzAxBgNVBAoMKlJlcHVi
+bGljYSBQb3J0dWd1ZXNhIC0gUG9ydHVndWVzZSBSZXB1YmxpYzELMAkGA1UEBhMC
+UFQwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCw1KKwHw3wVu1uDMEr
+8bmdX7MfDeqPUhXfBv0eAtHl/9N+qU787QzDevZG4qQsdNgW35e/+LnZjahdgmtP
+SFYZ7wBpCDqbQ3OHEOzvq0fuFRsH97lR63+8bTCQrG26e2h5Pvl8nkDeAwSSgewd
+a3nhNDBu6+L2rHNwObeJ0DnsT0tBurINcfiJ4egjPWmRENbnbEEuBLcO7QrZxQ/7
+Xfuc+43Eeyu1DKUgzl/gLoXJbMeNa1TIl/rWlrdO3WiBmvez4sib/oGSMBIIx4G0
+jUhxdeZXG4gugTxIPhxNlI/lbjuBpZzM5rhSs855sK7HcriKMwYWkjfEZLY+QUtq
+OK1oEzx4zUprPJnpZ9B5yAWgz/LARsyRDmUpbq4jKhMLlj0jIQAi9x8QeBZkQNky
+CMSbDH88rogkZU6KUs1o1htMlOC566tT4vXxQk9nZK8FGUZdFlFckwQra3TQLDNa
+j2e4NHuivwDo9oo7aocZfDoHqQEEx7Nci7ZLRzqLGbUEXdTwYkppw4HsyyO1Gk2s
+l5NUA5BPZj0AuW9LIk1J+hOrBvP+pJ9LNRpnKG7Od9Je5KDlAQQy/xe+yZA17Xuc
+OXXncgCGfKcdO7IulhYFdLWxxgRoUzEXIWM5CJCD4HnNJ6cDMW0nIqBQzCbhWpQ7
+yXOwEy1CTwZPNazl2E8wOXVoswIDAQABo4GlMIGiMBIGA1UdEwEB/wQIMAYBAf8C
+AQIwDgYDVR0PAQH/BAQDAgGCMB0GA1UdDgQWBBSgwWB91/VFiA6pVv7wodMuoDck
+cDAfBgNVHSMEGDAWgBTosCEfvVUIx06kRGN7uF33aA6X1DA8BgNVHSAENTAzMDEG
+CmCEbAEBAQMBAQEwIzAhBggrBgEFBQcCARYVaHR0cDovL3d3dy5wZXAucHQvY3Bz
+MA0GCSqGSIb3DQEBBQUAA4ICAQBNhXBFzAVMO0cecKdq7HtGe2iLREcEtv4c5uXZ
+CRGZznovewXUP28VkJkjMxxbuXgR7xGe7Xz8sym8oxqkwJZ7lHyuKCjgVrxyB3Mj
+P8O76sJNjimkhAtOrJTF9myMLm8Y+jA3TzOClxFo0cPGAopNfb/QGgkj9pfadKRC
+3Iyq29htyG5tzfPLT3H04PprSeg/ZcU6bHcpl4+7dm5mYu5b6n0Yc+SUbc9tHa20
+GpmEQlJFFBKWgdbLgmMmBMaHYFRKR/XbmUD5Roq7gIqR2qOZ5JPko8IaDv3qz0yI
+Y7vE4VRs2ZAETzcy6E+JPqSwoeC2cCyOQ3HaPr53BlIuJT5XRWAbm1PrLpJ25Hzp
+3VKkctiD2bHPJuvrN/gY/MKoG8r0/vS1aIxwjD2qtsecq6uDbUeVKRbzKm/dSBWy
+3/BOzIytL9wNNQsiUqNbj3I9D9aWr+brm/KRSfdchm9tbK3ZvoXHJkxd+yj/13Rw
+HW+Xz0T0AthhhgODbeHkATBa1S6QChd+G9LxZ+WwTB0jTdnIQVlGhELS+MonYvGi
+CfinE8vhmjRBKS0VD6TVGQjXaXIxYcPmF52Ov49n0bFznA5p6ZKeY/HEHgyOvtDT
+eSJEJm2Rz0PMmkz1GdznPcS3Z5TI8PqlseqZKaETs8fftvUBbIBdVQe00hIRleDk
+mRnr6g==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGMDCCBBigAwIBAgIIPM0L9zBlsVwwDQYJKoZIhvcNAQEFBQAwgYgxJTAjBgNV
+BAMMHEVDTiBEb2N1bWVudG9zIGRlIFZpYWdlbSAwMDMxHTAbBgNVBAsMFElDQU8g
+TVJURCBQS0kgLSBDU0NBMTMwMQYDVQQKDCpSZXB1YmxpY2EgUG9ydHVndWVzYSAt
+IFBvcnR1Z3Vlc2UgUmVwdWJsaWMxCzAJBgNVBAYTAlBUMB4XDTE2MDEyNjExMDQx
+M1oXDTI0MDcyMjExMTQxM1owfzESMBAGA1UEAwwJMjAxNSAyMDE2MScwJQYDVQQL
+DB5JQ0FPIE1SVEQgUEtJIC0gQ1NDQSBDcm9zc2xpbmsxMzAxBgNVBAoMKlJlcHVi
+bGljYSBQb3J0dWd1ZXNhIC0gUG9ydHVndWVzZSBSZXB1YmxpYzELMAkGA1UEBhMC
+UFQwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDEcTzTF4jR/QGjkwEa
+hugTW14FfgqVDEPhxmDk3iPhI127DGSfnDbXEZGJiiXks1uHT1V3xCwmmZwHOb3K
+ILOM7EYjG7PtaM3rboEnGIpVetB2vYyjgm6E+UST46LZC/CEyCf2r7srFycecubB
+xsM1Gzxc+RJJr/j5bYFrmzA0ZsM88RTucSl0BavMEo/1mGV/UgtCk/5trP3wCH2R
+SHJzTxF6PwaudjAoELdrFeZ/mXKbVViyPFpW6nOZi5zrYL68hXetigajIAebT4xC
+mzUFOFTdmTsstoCYRR8CMnujIlur70AgmYq3ALoiLGMyZRfQmquFjk1efox9WjaN
+iRFCLHTEUhwZtT3AnvcrgsF7idK5Y6U6mGuYOcKJEQe+NBFPHsLX2wqd3a0fusm0
+jyJFhUvfxtFLrXSwqcTXr056Qd86Wa7yl62rrOl/NP1uSNBENw4/hGDV8OJ4toPR
+L1+SUcKdr31COwOh7A+4usz7Xt46EeKsOkYpBY7U46iJLbhQBd/lLsmW+x1sUc6h
+hg+CPJZF9oNneNaWkJ0AmSjDsO+5+ZcGTJ5zB758BfgQUSXranzMQxqX0Jn7I2MH
+AEtLJXj/nJeVWhIVgF3d49wJvEu/5ee6mAn3aq5fE2LMQccIhWLLliwXl3DsM62W
+ujvl00sy0UPWbXQuHC3ySDvRZwIDAQABo4GlMIGiMBIGA1UdEwEB/wQIMAYBAf8C
+AQAwDgYDVR0PAQH/BAQDAgGCMB0GA1UdDgQWBBRsP2GDuzGtGVR06lYGr0vxWr2u
+QTAfBgNVHSMEGDAWgBSgwWB91/VFiA6pVv7wodMuoDckcDA8BgNVHSAENTAzMDEG
+CmCEbAEBAQMBAQEwIzAhBggrBgEFBQcCARYVaHR0cDovL3d3dy5wZXAucHQvY3Bz
+MA0GCSqGSIb3DQEBBQUAA4ICAQCVTyP7z3vqSG1QJE6PXoU1jfg8U4XCbX0aCznD
+kaiDzl1Q+b5xKweJs6eYcdVptRkJVcsoo0pa853fmKYWwHZgq19f5+ag2Qscubwq
+/F9TM0Rrrrs8wyQAs65DKk7FfXLJ+2SV4c1rIrCpYEbZxYS3DB1qzzNrpmFhB6YH
+U0/qliX/rcjn52x16UnTEJGl1BhWRZLLPeL6ONTB2YtI89xIOUy43PHHO+ag+lQX
+xxMXU5/Wsa0C5VAbXqZcEeFUn62YeK35MHet2Sas8pjnrYm0QNlun+7smq5KquZw
+gPhDSmzlfqB8rudBAr+tba17IksSnFb6z1ZnzYENgiv+llmOgkak6eWWhq/rNqEO
+YhfOpJTePbOIhNU3gjhHd/k/CCUfLXJmQ8MLWi2AMDikaMni35tROfH399semJKs
+AuTmhnAuVLmBLIS70h0tWu2PRSzZvmBIgkNjh9sYoYP7PxZOgG/r2iq4RZVS1p4L
+OJwJzmb0vBkH4kuEO3zPDIKAAU/QL0O2QiGfnEWeGjRP/VonRzY2076SMTULgupe
+U3RoZi6n34af0feVal690ObyN8lzSQICYe2LSjEdBPqxHRkpWOwNyhxC2Mlo7l2V
+xEGGEa96iUWPLWQ3lZlbPfNGPWEseAXCZK+s0Q4kMRU7qdQFqV3RifAB7slrdC06
+sW6ANA==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGMjCCBBqgAwIBAgIIK9u02BOdamkwDQYJKoZIhvcNAQEFBQAwgYgxJTAjBgNV
+BAMMHEVDTiBEb2N1bWVudG9zIGRlIFZpYWdlbSAwMDQxHTAbBgNVBAsMFElDQU8g
+TVJURCBQS0kgLSBDU0NBMTMwMQYDVQQKDCpSZXB1YmxpY2EgUG9ydHVndWVzYSAt
+IFBvcnR1Z3Vlc2UgUmVwdWJsaWMxCzAJBgNVBAYTAlBUMB4XDTE2MDMxMDE2MzQw
+NFoXDTI0MDkwNDE2NDQwNFowgYAxEzARBgNVBAMMCkVDTjAwNCAwMDUxJzAlBgNV
+BAsMHklDQU8gTVJURCBQS0kgLSBDU0NBIENyb3NzbGluazEzMDEGA1UECgwqUmVw
+dWJsaWNhIFBvcnR1Z3Vlc2EgLSBQb3J0dWd1ZXNlIFJlcHVibGljMQswCQYDVQQG
+EwJQVDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALB5uZIqSYC/Dx7f
+LLP2n8JWiR6bAJMf0/iaPGSYQYAEbEFg8v2OJ6Ff1bk5Sgq3Neo4sJ6Haf8F8LKB
+/qxM5nM2JpPq6P/GjKFzbpmiJ5LN3OpassMlC2PiC3DhljcYQaXy2pP8xDjtFZLO
+UGIwZ9pnzVaRZbUg+yXEeTHFYshWL8SzbzCjsF5z3XRu6Hf63K3pWzBY9hRVA4O7
+yj/+gpFpr7geWBnpEsPs1i6fKdD4Jq9rX+uMm+VDLf5Mp/rdcA550a7UQ1Ofwbyg
+0EG9DrMKbKCbqQ5Eh18Y7Z14gV/9qVAQ4aF4bW5goNyZ5JtXPi4JX/3LpuxQpMbn
+k2ta5jsAYAr8cgL+pjGaAM02KswRnHqppnZi/1X3b8mL5hMUOpf8t0ZjV2czlL9m
+m3gnAVFr0sCU7H1jan2WD3u5YwuRfjGVeZ6UKStQM+qrCllZwjl5h+XwVvhEiEgE
+Ucc7nmSmqtdJll5zTyEYy0oCOf6LXJZJo0EyXqt2iWFcEPtkuRQ/PdOUTfxGDf72
+CkK9gnbpVPVev9X75fOQoedRKGdQFUIhcfuYiTewaofWZItltso97epthbhgKWfd
+crWzvRgN/SEA4OyatjgWrSRi3YuWH+I9sbF/IUPcTtm3Zp3Y0wZRWl9vaTo1mR2N
+brUkvR3iH5mjiFz0t1N2l7k5BvopAgMBAAGjgaUwgaIwEgYDVR0TAQH/BAgwBgEB
+/wIBADAOBgNVHQ8BAf8EBAMCAYIwHQYDVR0OBBYEFCP1F/DjT2o4Xwhy3jmyNrVe
+TOvwMB8GA1UdIwQYMBaAFGw/YYO7Ma0ZVHTqVgavS/Fava5BMDwGA1UdIAQ1MDMw
+MQYKYIRsAQEBAwEBATAjMCEGCCsGAQUFBwIBFhVodHRwOi8vd3d3LnBlcC5wdC9j
+cHMwDQYJKoZIhvcNAQEFBQADggIBAAv1u/nWAec4zfAmqU54zB7Vb+JBM48uiWZq
+KHNfDwtacPqw4/KuRyhDUeACi3fCM0FDbEF4pSOvUHxQdIj5N0sfRvhQQZvrwszd
+ivRHUGQyKatkbViwiA9PDPnI+7xbpKn6RictMBsCvgEUgRpdnJj7hexkqGwbNlqe
+h521wfjt8X8nCCdjVShf0IXGV3s8WGZWUtjEbu2nWEMZOjYQyo8Xg8waMoo3eVmk
+5fO7/Oj0h/ArxLwtZu1sFdGaduubMVKyQ7Vrtxe5e8wZ3k2VyrBepSMaH2eVXx2C
+b0KxDFJfH77WtyjEJzLuHDtvpGw3MbtOcZMMAgLS2gRZF9xlCC2FxjwEH2X4aaJI
+wlo+QIO4F+VrwxEMkUSCr9ATa/ikrSotAoB3GOX327SZKxINuhHGOAKfJB+YlhwY
+pQfnLLoMoqlMzoTQB7LAzECNhgZAXGNqPF/Ni96j0IVz+xfkgzXEuiP+O4nV9rdL
+6MNaGaSvk6E5+9EHZVixn3Vrnx1WY+HibmSu2IhQeTvu9jTM4YZYbgBwZvPVgdTw
+0Q5BbiOYEuKuxvc87brFYwODlqeBMW5yo5/ZE1HELlc13DM/GKynJZfejsnt1eUl
+jLod5uKl7zCLDyowFxiND8CKeukDI73U/nza4LZnGSCCxCYFL+adTtqjbQHbKVdM
+az8MvCfK
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGRDCCBCygAwIBAgIQNxQu00QT/85dpD9Gtp56bDANBgkqhkiG9w0BAQsFADBw
+MQswCQYDVQQGEwJFRTEQMA4GA1UECgwHRXN0b25pYTEmMCQGA1UECwwdUG9saWNl
+IGFuZCBCb3JkZXIgR3VhcmQgQm9hcmQxEDAOBgNVBAUTBzAxLTIwMTYxFTATBgNV
+BAMMDENTQ0EgRXN0b25pYTAeFw0xOTEwMTQwOTI2MzBaFw0zMDAzMTUxMDQ4MjFa
+MHAxCzAJBgNVBAYTAkVFMRAwDgYDVQQKDAdFc3RvbmlhMSYwJAYDVQQLDB1Qb2xp
+Y2UgYW5kIEJvcmRlciBHdWFyZCBCb2FyZDEQMA4GA1UEBRMHMDEtMjAxOTEVMBMG
+A1UEAwwMQ1NDQSBFc3RvbmlhMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKC
+AgEAtOwF3FBgnLQeCZ52MPWYYq4q6ufOWZFchO13kSU5OI/4ZHn6CmZqH8UO9n0h
+LplM+PqHVQ3GC2AjvjSDzRRv2kV5T0wPF+iMRf50QWfBU053Mv27Tci4ErAelM1S
+7U1U5VnNtwhcoxTiWSSbFj7Eo2MDB8IlTV0DfMZE3mg3ihpp0MFBgaxw3Su5GThs
+qiH75g5M/ZdzPuo9/DHGqvjzQplfdt/MXNnDAP15zUgSyVzJRYdhlGiNfo6oqSaw
+nmtjRKvaM5wn3CcQzsOhfabCjJWpYMAOlKZMABLxzwSJ38SU8X3AvmwbyGyAiFkp
+qD7DdmfHfUa22pAVroVvklM5h9s6b0DC94Ki+kYODDvCFa59YMAQ6HWV45b0SrMC
+4ykbuAT6rnKnvqRmP1U4ugNFQ6Itiqmii1iqUdtPqq/w7QYjRBED7ksVV1fkYTTk
+ClSV2UZiOtfzBmxBtfMTK9qV8LG/vRd86Ng1H2osuKAANvoHImimsVWK/sVPd+fJ
+s9uQ1UQ53TDzYnkynGttyUiutk2UdwzD9bBGm6b0kV3vpbHvHdJ2lQyKdtKqjW7E
+vq2L9+NJfatGqam+LEV0yHiPAckCk/VkQOfc9fcxCemkvpZdFy1q3t7FEOTTtKEe
+hFECSAMyYtjoeHeLRWcDDmvRQP64OJW6AZOPOoceQCXEreECAwEAAaOB2TCB1jAb
+BgNVHREEFDASgRBjc2NhQHBvbGl0c2VpLmVlMBIGA1UdEwEB/wQIMAYBAf8CAQAw
+DgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBSpeg/EBHx1Yby35Zk1/nqsfuurIjAa
+BgNVHRAEEzARgA8yMDE5MTAxNDEyMjYzMFowGwYDVR0SBBQwEoEQY3NjYUBwb2xp
+dHNlaS5lZTA7BgNVHR8ENDAyMDCgLqAshipodHRwczovL3d3dy5wb2xpdHNlaS5l
+ZS9maWxlcy9jc2NhMjAxOS5jcmwwDQYJKoZIhvcNAQELBQADggIBAAgDFm1FTXWC
+nTMpz4Cv5D7PXBgJY/EoVDaSvrAGcEXGKBsym+He23ecPrbHknIdicGkvuwsZB8u
+4DBf3Rfp4NTtY/G62SiVZKsf73qvSoQk7cTcIqh9lRRGaeNv4zAaUTwfEE1iNOs0
++31kR5N+8iX1U8R6LMXjkMHdpwRddSYBAetaxU3oqQACxB/e0IIPanr+9OWk1avI
+DzuMUj+RDWev577LFZTLVHZXZ/kwWyOhDjMA78hrseHnf+HHrCctQStqGPe0Ja/x
+ecYPs/MY/vuH9pnS+x07SIDvSx3qtiPeSnEVmMV729YnflLk5X/9Ll/bEJn1FM7H
+uPoNrLGn4uynotjD59DFHkPOeeCGWlqE/pkI8i90Cp2QX7vHMtz1BFUXLWwJHleD
+gfRFq5zgCnY8L/6gXcpGvV7et3l1kVUS12fm/WBrXmYJq4jBXUxJCtFZItYJmjzl
++axvA2pc2sqrU2FwtN+ctU6p3AhzZu4D+GCrQr1/1kDNcOvuEHl35H5+xOKHBuUC
+3o1hW3F4T42KxCPL6oZu1erpqN5ICq+aMJZfO4zTfcmeKsWW8o6QWYoOKCt/aHeL
+ElsozwRftXyICNs2wzgNC6ku13ATOSzDb1Rve7hHW7ASHgBPC56bzF8Kkacwl6DB
+4xC9MRaj1wfq+vOeCV84amKtapWCGLUw
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGczCCBNugAwIBAgIEWZbsjjANBgkqhkiG9w0BAQsFADBoMQswCQYDVQQGEwJV
+TjEXMBUGA1UECgwOVW5pdGVkIE5hdGlvbnMxIjAgBgNVBAsMGUNlcnRpZmljYXRp
+b24gQXV0aG9yaXRpZXMxHDAaBgNVBAMME1VuaXRlZCBOYXRpb25zIENTQ0EwHhcN
+MTcwODE3MjAwODUzWhcNMjcwOTIyMjExOTEwWjBoMQswCQYDVQQGEwJVTjEXMBUG
+A1UECgwOVW5pdGVkIE5hdGlvbnMxIjAgBgNVBAsMGUNlcnRpZmljYXRpb24gQXV0
+aG9yaXRpZXMxHDAaBgNVBAMME1VuaXRlZCBOYXRpb25zIENTQ0EwggGiMA0GCSqG
+SIb3DQEBAQUAA4IBjwAwggGKAoIBgQCXzeLqVKPfHpRPh03kQGK1EY9dd/AfEsOh
+5srrgtD2K/5b+b3BO1nPoyjeWkvtAae5ESgpa8Ncj9U9z0M0rgUpy9u6CgViWbDg
+tMpBg0W8s7JwXeATpX6GF3OXNANS1c0C0HKJXXuF+DEKEnaPvHNZWEMUnROzlJlT
+LAf81sJbNkdEePZWp+kac6Lwy0QaLB4bZkr1FOVVejUQSlGBNk6JeqEeg9KBPZYU
+Bbudyt8lA5UkJNVjj1PFlcSIQFRyABjZNTdpDRZPny9IBeDtqI1x7+mZo3SNmX96
+tIoTOQ+R2x/1IqL97qdCrIk0mn6uvk+rIPH/jZCN0Bq337CfiFA4EO19jndDEQ7z
+ea6TsBm5Lj34IohaG/SQoQHNJ/NpSnHioxAa3eBvACJQNBVyTEbJCJOHVnTmylJI
+1voETOVa6iznDB95fiQcwOE3ugTACuY17d9pLjM9kNpTA6KUow0rIHABkRcsZmzR
+e2+ckojoTbKmP8I6kBLjMhANBltyOj0CAwEAAaOCAiMwggIfMBIGA1UdEwEB/wQI
+MAYBAf8CAQAwEQYDVR0gBAowCDAGBgRVHSAAMA4GA1UdDwEB/wQEAwIBBjAqBgNV
+HRIEIzAhgQ10cmF2ZWxAdW4ub3JnpBAwDjEMMAoGA1UEBwwDVU5PMCoGA1UdEQQj
+MCGBDXRyYXZlbEB1bi5vcmekEDAOMQwwCgYDVQQHDANVTk8wKwYDVR0QBCQwIoAP
+MjAxNzA5MjIyMDQ5MTBagQ8yMDIzMDkyMzAyMDcxMFowHwYDVR0jBBgwFoAUBlSy
+uGTseKpGdfkRBjTs2sKltK8wHQYDVR0OBBYEFKd1r2S0QOjdOG8vACKA7O3RnRuX
+MIIBHwYDVR0fBIIBFjCCARIwgY6ggYuggYiGLmh0dHA6Ly91bm9jcmwubWFuYWdl
+ZC5lbnRydXN0LmNvbS9DUkxzL1VOTy5jcmyGKmh0dHBzOi8vcGtkZG93bmxvYWQx
+LmljYW8uaW50L0NSTHMvVU5PLmNybIYqaHR0cHM6Ly9wa2Rkb3dubG9hZDIuaWNh
+by5pbnQvQ1JMcy9VTk8uY3JsMH+gfaB7pHkwdzELMAkGA1UEBhMCVU4xFzAVBgNV
+BAoMDlVuaXRlZCBOYXRpb25zMSIwIAYDVQQLDBlDZXJ0aWZpY2F0aW9uIEF1dGhv
+cml0aWVzMRwwGgYDVQQDDBNVbml0ZWQgTmF0aW9ucyBDU0NBMQ0wCwYDVQQDDARD
+UkwxMA0GCSqGSIb3DQEBCwUAA4IBgQBde7TguB0/LwsQAMuoYnKOgwSKMB4LPzQt
+zzLtjKlqKvWZXFwKIwvVnrS56t65Fv4lAvReH97pwaNdFmkYxjPZAjo+BtJazSBN
+Z4XQ2+BU/p2MqkwJGlnU11oprsBZMX41ZFylyWIK9KjsuJJoqiZVKddUU4GVaslf
+H7og6PCUqT73XprGCbav2wInuqj9vF5OHewWTHvGv7TFAhNnvUfS+eWBOCaduWHV
+Cz+8vL5FZYhYRhML/J5XxfyX1sEaL3IAwqUlOWfAI1B9bT+fmuBKIFVDGuP9lQob
+Wrj59RhWB0bLskFXA3Dp5f9TLoMjmuaZNGUGU63RbT/tOlLgFyoRQWKdNQl/zckm
+otvRvNctnITIKjTL4Kn3HcETAjWGVwy0yV/95eK/lmmo4Ua/uYJNJy7lU5Ve9dBM
+9mWl4wB2bvlsrEnpE5TVk6JrovbOhkOhtW3UwUjJ6e64QE+cshZTMJhJ0VmfUb2W
+NlM5D4+e/zZWRNbT5+EYXE2f54v7Ucw=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGiDCCBHCgAwIBAgIIUdmGaabY3D4wDQYJKoZIhvcNAQELBQAwUDELMAkGA1UE
+BhMCR1IxGjAYBgNVBAoMEUhlbGxlbmljIFJlcHVibGljMQwwCgYDVQQFEwMwMDEx
+FzAVBgNVBAMMDkNTQ0FlUlAtSEVMTEFTMB4XDTIxMDkyMzExMDI0MVoXDTMyMDEx
+MDA4MzkwMFowczELMAkGA1UEBhMCR1IxGjAYBgNVBAoMEUhlbGxlbmljIFJlcHVi
+bGljMScwJQYDVQQLDB5JQ0FPIE1SVEQgUEtJIC0gQ1NDQSBDcm9zc2xpbmsxHzAd
+BgNVBAMMFkNTQ0FlUlAtSEVMTEFTIDAwMSAwMDIwggIiMA0GCSqGSIb3DQEBAQUA
+A4ICDwAwggIKAoICAQCc90H02bUu7mZr8HPX5k/eMwa9Xl3+NXPr+DvgGlyaR4D9
+Uk5zLEAH7yUC8jdx90z9H03g2BB9+Wt72vFpJF6QbMi4Mr7PRe65a6s5Qkgk4JsI
+QA9FGU0rC8gfZjpx9moSBznUc+Crh8rQVjUAjksEozRkh3k9v0xkEEjoQipsIMJA
+AVdfRjjP+1oepYb/WRWiUhAvyIIA3z5q4ioN/zB7gCSiPHw5PgKj6XX8hI4nprEG
+KtU8aQY1vQ918vWOF+Ms4asOcVAetmlzn6xsPmKuYc3cs2IG395eWfUUbUlGK6/v
+2kuYWfCC3ns5k6pxPXWvguIcxuaFkmGKD/lW+QDKQUA9Gnak3BJ4nHW1+bqBDP5l
+iB40mjPm4I+jzjugRSYNcGP5YHI/lIdV0oCbtofIIR0E/y4W8HQcKro9wyikGhD7
+np3VMXi+CiZiobCvw0XY9xh1zx0jCJNxfFVPbOGgIy23GrexqzfBpLMEA4P297e9
+6dlrk0eTi0TlrZck3QkitdzjvnqQCYHdK57MMM2DSLB9OQ/wGd8eiX/m5OyA/LZd
+5/omE7WE6OGtegInmxx1z6h6BiBZh/oFONugl7IStzaSig00QGaht36Vb+NQ+o4R
+arLk4e9dsc8lSTbyDGrAR676T8PNvvCKDVQEYtujzRtEcbv72U0W7IICl90EDQID
+AQABo4IBQTCCAT0wVQYIKwYBBQUHAQEESTBHMEUGCCsGAQUFBzAChjlodHRwOi8v
+c3BvYy5pbW1pZ3JhdGlvbi5nb3YuZ3IvY3NjYS9DU0NBZVJQLUhFTExBUzAwMS5j
+ZXIwHQYDVR0OBBYEFDyRti3bSvHtQd4cvbZz8xWC8Zu3MBIGA1UdEwEB/wQIMAYB
+Af8CAQEwHwYDVR0jBBgwFoAU9ii2lfQLtujyN6ju+eGbJLdl1MEwSgYDVR0fBEMw
+QTA/oD2gO4Y5aHR0cDovL3Nwb2MuaW1taWdyYXRpb24uZ292LmdyL2NzY2EvQ1ND
+QWVSUC1IRUxMQVMwMDEuY3JsMA4GA1UdDwEB/wQEAwIBBjA0BgNVHREELTArgRdj
+c2NhQGltbWlncmF0aW9uLmdvdi5ncqQQMA4xDDAKBgNVBAcMA0dSQzANBgkqhkiG
+9w0BAQsFAAOCAgEAf2FsbNGO8MT/YGIhkfWPDIJsKH9of0T616RsU69GRi5Wa3iY
+xRmtZWGpaBUDQYpxkorcu2ki05+cRE9bqzksstit8bdH6AJYOxmcjIA6KU8RlgIW
+9lart3QK7eNwtjbGYkb1/HMTYLecns3lfrS04XOwOlp5Hj1zyf1uscgfVP6X57PP
+syU9n5E5KwFkSa9gV+niev9A9MtlYas9HeBqo4aPBxRy6vfnb7nF9IBGro/Pmk/S
+xJx340SWSpQQ/DDXSUetvGKqOm7uq5I0rKxD05xgR7fyrYH9LW3ZKrZ5jDOJeQ3k
+dg3HHNODqOS44L0Nm5SjZ2SyFY/VOtAVYQfYJy/0He2CmPpbycLgmIqEvpfTiL4u
+iPhnnB8lSK8IutsYBLMrar6tjyMi4DiBsLTs+dz1kFzmb+6GV2suK9VAiuv+uLmR
+Lir+ltmwKSc7wXn2ncFHLJD+4QJub/x18cEj+JKBsg+1UgFOGXXApAk0yxkJlUar
+ErvWF2GEDKMJ2W9ryCjNo7zFuE+qrxyHWfXjNR4e5LwkjaaX6yg3AO2Aow7PNRmZ
+MGNydc23xn1e9yzz8K6n0kMFRlv0iFTFPtawlmesmcxHnxRuvMWb9q2IjyzVGscZ
+UmVGgcjUuXbchYgPSGdjWzHcMnxAZLtUcen/kDlrZ505YXD7nu3iaD0KDo4=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIHCTCCBMGgAwIBAgIBPTA9BgkqhkiG9w0BAQowMKANMAsGCWCGSAFlAwQCA6Ea
+MBgGCSqGSIb3DQEBCDALBglghkgBZQMEAgOiAwIBQDBwMQswCQYDVQQGEwJFRTEQ
+MA4GA1UECgwHRXN0b25pYTEmMCQGA1UECwwdUG9saWNlIGFuZCBCb3JkZXIgR3Vh
+cmQgQm9hcmQxEDAOBgNVBAUTBzAxLTIwMjAxFTATBgNVBAMMDENTQ0FfRXN0b25p
+YTAeFw0yMzExMjExMjE4MzVaFw0zNzAyMjIxMjE4MzVaMHAxCzAJBgNVBAYTAkVF
+MRAwDgYDVQQKDAdFc3RvbmlhMSYwJAYDVQQLDB1Qb2xpY2UgYW5kIEJvcmRlciBH
+dWFyZCBCb2FyZDEQMA4GA1UEBRMHMDEtMjAyMzEVMBMGA1UEAwwMQ1NDQV9Fc3Rv
+bmlhMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAskw4RNeiittO7Nxa
+eorSh5qEkkSVIiR0PPYDI6aHkV25xmUKzM3msniFB53mcFrbGMDebpOZIAJ/wmQc
+k26pu/mm8B9pY91fznXPZOVOmRjR/vpSDtKxqAq16pQnMZLr0LDQcXGwIEW8jxhU
+zh/UQGXK2VNuf2IGOzXDUg2cIpWQ6YCRNUkMxAM/uAU+NSCtk5JtNjhJz0uVig/C
+K555kq+eJ7IageynHx/QKZxdXB7Nt1K9Ks+ojT37U1J4cTlxTvZO772pRSuaNGF1
+3gYOHiXapHaK6pW4b3P9XrO+5kiFwqdZ1HBDUoniTkYk1fUfCQ5/1jPRi9J/ofqJ
+NDmTjDAz7RekL0S/Byf0WUwBIN3Yx08f+i9AsQKU01aYg6HAGuKpGgIAng8DFe4O
+I5YSUFi+SFg3Kf1zOYGbSweti9WMFwTvvb+qhUzlmUqD46iTFqUbGURyJrAYoObL
+utbgo2xXHQ5QllHs1L4dSnOtIHCXQb2jUyiQeAOY1MzJwRGulIZ/fDHpCQKn5In1
+ojLca/c53PA4+DBvzq2yx6jUlPJpH7HEmsOncU94yp4B/MFCSX96Fda443aS9ZJL
+HqSQKWz8gXa3ET8An4QVLLPDJUnw+4eXUMky6BhSfwIGbQWJFhk6XDIlTnaRkECl
+lGVl6s3Lv/evscMW+6hda7aQoncCAwEAAaOCAUwwggFIMCwGA1UdEgQlMCOkEDAO
+MQwwCgYDVQQHDANFU1SBD3BraUBwb2xpdHNlaS5lZTAdBgNVHQ4EFgQUjtX3Z2eN
+mw5SMfMKIjjRem8P468wEgYDVR0TAQH/BAgwBgEB/wIBADAfBgNVHSMEGDAWgBRV
+q9JvhX7uQOBhSt+YPiu2k2xVvDAwBgNVHR8EKTAnMCWgI6Ahhh9odHRwOi8vcGtp
+LnBvbGl0c2VpLmVlL2NzY2EuY3JsMCcGA1UdIAQgMB4wDQYLKwYBBAGDkSEBAQgw
+DQYLKwYBBAGDkX8BAQIwLAYDVR0RBCUwI6QQMA4xDDAKBgNVBAcMA0VTVIEPcGtp
+QHBvbGl0c2VpLmVlMCsGA1UdEAQkMCKADzIwMjMxMTIxMTIxODM1WoEPMjAyNjEx
+MjAxMjE4MzVaMA4GA1UdDwEB/wQEAwIBBjA9BgkqhkiG9w0BAQowMKANMAsGCWCG
+SAFlAwQCA6EaMBgGCSqGSIb3DQEBCDALBglghkgBZQMEAgOiAwIBQAOCAgEAGsSn
++3A9C91NxJ6ep478eUNQzmZ7qXKcu93IQ6dWU+2pKDLHaAC7RknpvAqkGqSZ03ab
+Ffnr4csrhZJ0oZft33Hz7KojZ2B52wbzS8XXmI6scnOTTFLCYZ9Vre0To15wpSnm
+hFukj/Hj8REzUQ4cLc4xHXaLu6OmPUu/H/w9Nh9LDnFRveWn/cAoPt6CcMIZh9H9
+OGmz0/+FA+irO3I5r/yZbjIIyST+8/CwFGn5hdPtVskhVVRpSCKlmzep9qlJjRR9
+gG6GLkkgUaSSALUEnjDMxcUuUmjYFHU0kdkIbS5wmX//L+KcrQgt+x2gPQZXIaBX
+zhRg/oEA+XrRIEhW9kzp9gSefcK33+gRdA2VojjpaiJzNsUWorMyHibJA8HpOH+i
+hjiokHvl5CroEe+YGNwgZL8BbXGcWHXMKyl3qTHatVl4px4+9oSPx9gspC0d+Fux
+Kmn517k4c7NOKYw33lnhSlg48m4hwBTFlM/9nz/xUXp0vGBcQpsxeg9As46/HXuS
+APZgoqJHvbqCbzGsTx67V2w1nA7n0aPAqPVjqeRGqgOx6tszNjIgFOQNh6W4NVCY
+hTS4wBlUp7YEI4GiWgoL3Ixqj9UZ85l3bmtVZNU2G3lrqr5ugavy2OpQzXIM3QuE
+rsu9+iSeQNqw8MfREvASDvibDkvPArgCtAFv4TY=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+/2Awog==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIHJjCCBNqgAwIBAgIIXJOaHimzUlswQQYJKoZIhvcNAQEKMDSgDzANBglghkgB
+ZQMEAgEFAKEcMBoGCSqGSIb3DQEBCDANBglghkgBZQMEAgEFAKIDAgEgMIGBMQsw
+CQYDVQQGEwJMVTE7MDkGA1UECgwyR3JhbmQtRHVjaHkgb2YgTHV4ZW1ib3VyZyBN
+aW5pc3RyeSBGb3JlaWduIEFmZmFpcnMxNTAzBgNVBAMMLEdyYW5kLUR1Y2h5IG9m
+IEx1eGVtYm91cmcgQ291bnRyeSBTaWduaW5nIENBMB4XDTE4MTAzMDE2MzkzMVoX
+DTI4MTIzMDE2MzkzMVowgYgxCzAJBgNVBAYTAkxVMT4wPAYDVQQKDDVHcmFuZC1E
+dWNoeSBvZiBMdXhlbWJvdXJnIE1pbmlzdHJ5IG9mIEZvcmVpZ24gQWZmYWlyczE5
+MDcGA1UEAwwwR3JhbmQtRHVjaHkgb2YgTHV4ZW1ib3VyZyBDU0NBIGVUcmF2ZWwg
+RG9jdW1lbnRzMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAqA24S+78
+zJI269nhfHGjAhpMSmBu7iKcNBYl57dRcVP25rUrrpyf8gHKoiu8WOIpvDD+RNwA
+7PVGwRjwhz+qQWp75h7KdrpNj6SC6wvhwa0Els1r6nOaVDeuD3FckA41JAPo+Mke
+dw/Et+RbOX9jOHNXwCtNQC8qVVqvpiVlOQ25Z33TvTmKlytJ/fn2fEjUY90TWSzM
+Ot6CNIaiB/0vDXjn99GFADtiYZF5+Hu/vyWCJtvdmF4ylND/6Ec6+/hfCpiaE/T0
+fqigVqg0YGWn60d5oGIASmbbppC+00m5077TMh47RtiAoitRmVyHVhovIcUuNn8p
+AN1o/s8/diJZbDJomtGfuF4V+/nlu0Agfr2P66S5XE+rySgRc8xlKcsi6CMJhKwt
+IvLaJzLzlmnirCWCFvRzL/7Hkz/fZ245GtwpNTm8vIxCRikBAWztUAG56v8iny33
+6gFgMREXA6W3/OKHyRCI7ueOYh7XjlZVNEb/bxuGmY6VeloLYlqBHp9VWqRU1a5g
+r42u6Odxn+S0bnezO4H96AhJwmp9t42+dvCKin+mVUv3sDZbRTwBM9MgO3MtZxHD
+F0a8XHen3Noq5IH0EiVZb/xVmYySnBpmHFkKuKzXMcOiJWAhlADWcxYCEHiqk3Bo
+TFInEfzXieORFqgHWFC544lnyUfnK/7ojtcCAwEAAaOCAS8wggErMB0GA1UdDgQW
+BBSgWfwDEpVNwTrZRKYgwJ5nntVTpzAMBgNVHRMBAf8EAjAAMB8GA1UdIwQYMBaA
+FOOL38sKr6ecUEbQL99PPIx7OkcsMCsGA1UdEAQkMCKADzIwMTgxMDMwMTYzOTMx
+WoEPMjAyMjEwMzAxNjM5MzFaMEYGA1UdHwQ/MD0wO6A5oDeGNWh0dHA6Ly9yZXBv
+c2l0b3J5LmluY2VydC5sdS9DU0NBX2VSZXNpZGVuY2VQZXJtaXQuY3JsMA4GA1Ud
+DwEB/wQEAwIBBjAqBgNVHREEIzAhgQ5jc2NhQGluY2VydC5sdaQPMA0xCzAJBgNV
+BAcMAkxVMCoGA1UdEgQjMCGBDmNzY2FAaW5jZXJ0Lmx1pA8wDTELMAkGA1UEBwwC
+TFUwQQYJKoZIhvcNAQEKMDSgDzANBglghkgBZQMEAgEFAKEcMBoGCSqGSIb3DQEB
+CDANBglghkgBZQMEAgEFAKIDAgEgA4ICAQBrc3A/zV4jm4opX35zrCc3pkP4Nr4K
+xqV8gJXCWQCjPRMNujIAIAAVPgNVLwiQXAhLBAV28STamlmpGe1ZHhj4YP04Ym5W
+FMDOyGQdQipcdHnwV+zLJYWmLTWlUScLc/8dwZwHIY8/zwtQXLwaxU+DUu3DoN2Y
+myRieISFbcx4Mb6v5FHtkP0xXxox2PkLn4Ga/SJi/e/ijpsWriGcOlURCfWJ7KaW
+U2R06iNKkKiHV+mJ6ihez2sBbzBWI7Edus9DJRUQQnpcmkGY21XAPxHibuoSQgJr
+pBJoWO91zjY1EEW157fs+FEtNPsJt+tjo5hI3KBlWJ5Kp7zoxVUwmn7urZtKKevf
+XgyhySc9noIenm9MsRzc4xPNw4Lvg8iSwoBQqF6ye21z5hmmMLqXb8fIOg4uySeM
+9EK2UzpbpULkVqmQ5zFOUGuX+DAUsHewt3aCkWBhomaGH4HezdlL1wkrjGLuTlSr
+s82IxTP7AFWfcGJXo/W7pTU3U6bbheR/rzrSoVkmKqyHmcGwqJSF9A+a0D8sgoTo
+bl2OSvk5iHLJ7b304+QiH7dqZCBHKTYQKXV3SmbKtFuZmvvqd+Y5EuGgCTYoUVtr
+aZ8xB8/XKVZTLONnfHwTieJxmXyh1ujse3pXRSAO+Ngv4LgYbcAjcEFfWuZrvDwb
+L0zY2sWPgl32TA==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFPzCCAyegAwIBAgIIadagu4ceYDQwDQYJKoZIhvcNAQELBQAwPDELMAkGA1UE
+BhMCQUQxDDAKBgNVBAoMA0dPVjEMMAoGA1UECwwDTUpJMREwDwYDVQQDDAhDU0NB
+LUFORDAeFw0xNjExMjQxODE2MTdaFw0zMDAyMjIxODE2MTdaMDwxCzAJBgNVBAYT
+AkFEMQwwCgYDVQQKDANHT1YxDDAKBgNVBAsMA01KSTERMA8GA1UEAwwIQ1NDQS1B
+TkQwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDN71Mi518vFkURYnYP
+m0T7KrIXLHQpvtIr5zc/Ep1aislXtcx1YEyKLbKEs00KF94gIFSxDIDob0ip78f7
+qnRNNWumwVseRFVVcKU1PTIxbvo0+lAmZKxpHppDDZv5LYsb/LRgfCcHSoHdCvHi
+r/ctpf0F6mnPj7KfZNqIHkmrxYXhLBebeW1YaTE9ku08nH7VgY0l3hkUIXGfCkUa
+eVdsNHh8QbA498jMDJ0luo55eCOVn+YQ+1D5uuJb9+5nOB/lvChj7G5Ll/3Z6Zb7
+wSEpK1g+gKjqPpuKUesCU7irFASVPM+iw/ngnjeKKHAV4d0Xl0yUbsxREnysYD/5
+SrIEfHencXEPfl9DKHKYoZXphsn0I01T3YgRLljnYtcrN3+GqPBc5L9/Nv77gkf2
+DGv1hHxjWAu6kvCtlPY2M6SWexjMJ3/B1M8akGrYdY76BXAjWfVB2EkwJLxNpTej
+5n54IfnfEBsM8NrR9ZkggWJ7Yor8n20Fit37nohFNzU3qYJw1l1z3k9C+m/CsBvu
+ueLDjgazSAcIgRtiE13j2JBMZLQrKHepdq1lplaRStXA99VNa34KIS7GqEIamTqn
+DZlKS99FVc/aS3kd/icKAKUsQPnLW3amECnJHbjgBHinGTpI8eubr4/R1SEZsqDu
+8HxGHszofW/auSd4yH/OL7U0AQIDAQABo0UwQzAdBgNVHQ4EFgQU2LsHZZGn7y9l
+KrbdmIt3A+YEN94wDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYBAf8CAQAw
+DQYJKoZIhvcNAQELBQADggIBAAo8CbkW4L+EI3y7b1WnfJ73IA8LAxqqY83K1o0v
+GmCnutcvmp1M19VdHaxg83I5Hhy8VVZpaOE2TDAtgB63lh+YCY5kydpljvTj67Ti
+8k5lpfpRNIB05Z5NAGgYOV6u7D+dBkhsoF3XcSwXLWIQdN63BajyZhaLf7LQpDHP
+D4BVLLSF/d3i/pQWgucUn60hJQtV+SqJuI6W3f5Agg6ol3BnD98C7LUTW7yFJAHA
+jhdg7q2Q+PZp2JtYw1QYuHClS2hDv1/0YC5/zBbeDKtl0B6E++0n9K4piNyrb4fy
+r6nt3C0GkoCQDbPP5J1xVq7TucD5oAZEBOblTz8tOiUf4Xu8rwq5TTDtDqEIchg0
+xQeJsKKTZ5T4IMBiPTkj4M6l/9FFvbQOnPtJDE38y9HN8FkDT+IHYYfMw75Z5dM5
+X+S+47j6N8cEHhDbWd1ZBDedE8G4PHoerJ77x+omVtqUc2ILNm+wuDFmz1HH4l2v
+lrSsf6yNsUBfZgOpsJJ67S2N4FX/d/5hDzG8yUbZjAyymwzzTgraKAzqE/wOTiNi
+tNlO8BGnZzu/pKpH9zM8uYJL8LmRg2iA8Ar14XjJEgQPqGqBTSIABGcZ0nfmT5NG
+CAI5uOrX5oIvAYBEY0mEpgjdRw7CxsWmEit7T5JEqCJ9Pm6NaWV9mbqgY6qxcgaj
+k0H0
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFPzCCAyegAwIBAgIIcTNkVInNGoQwDQYJKoZIhvcNAQELBQAwPDELMAkGA1UE
+BhMCQUQxDDAKBgNVBAoMA0dPVjEMMAoGA1UECwwDTUpJMREwDwYDVQQDDAhDU0NB
+LUFORDAeFw0xNzAyMDkxMTUxMTRaFw0zMDA1MTAxMDUxMTRaMDwxCzAJBgNVBAYT
+AkFEMQwwCgYDVQQKDANHT1YxDDAKBgNVBAsMA01KSTERMA8GA1UEAwwIQ1NDQS1B
+TkQwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDXOKEhcYJqEWAOODku
+Br85VgRw7f1w8UW3lfaspxUdjqohb/JGhmQ4+illhfg4bqVyx1lIy3N8qczRU7uJ
+Zufg8riyZQF8jrHfUadFJYmSPf19Fy+DPh1Ys/87kPARuhABNYedGa6SSz0ymCYO
+dN03kmuM4ovIDdCLF14j5svncMfRYzUF/qjp4lD9YWUah+wJQEeTzShiRVKxXMLV
+Vv4z3fiaQvBUeN+wGo1ELuNCThtL7h21dI3yv+njiFhT2li4nYqTqCO1EWvn4SOS
+1QOY3TovY4drQQsWjRr9DpvH1AmmE1H+dFd2twk9na8nVS5csyVcEVSsgP2Tj64R
+HFr+ISH1zf76uKg4b/Pplsl+BbRNnxiJMs9Jb0mNT8O9yioBIBWiDj9yoEOt2C5K
+R8LqPV9WFSiy2HjNSchbKb8z8YKmx5837CkUe1wsDp3C8iDH7d8W0UD0AcOltvZw
+OnH/w1AJkJMasnuT///Vh3mcPkeKyC8E47bED8yJ5k6aidyGNAVTSBQ6HPB5d0tA
+NZA6dGnaIb0lYN1o4BHh+IfnIfPF01dGmMkPjHE1HgozaxwcloIdmJPwQ3L/pBEz
+Q5h1naaxRdxnvK5tI1HgQFW94P1C4x0UBA5/Q9FXjSirGOKJK8pFGMpxe5Gjplzm
+ogO8YyYOPgxidz2v3TthzlwQ+wIDAQABo0UwQzAdBgNVHQ4EFgQUAxsUqEIbaO+g
+v9CByIwrZCcFQqkwDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYBAf8CAQAw
+DQYJKoZIhvcNAQELBQADggIBABtx9HXWvVuxcMGDZyaPrQVbYSn5bC/GFX+TmYF1
+7Smgkbs6Z609fGyYGmi4o8TDIKDeERT6VHxwL11F/5iX6wibmljt13DNXP2AsKWJ
+Dnj0o4omrJds5oH+n6tYohyt0f2wuJ219M8eo2MTV1O+F6SNCvFtkLafwRTepgx3
+8t6yRb7AnpbJHjMuRrIaYT4ggwKpiyueEGW/0fleKWiSXKYegWQrc1TBtts2K4um
+odZit4TqnFUSXom9yo70CYTIosQ/BI9ytxRiHqLLLnLP0M1+EToYlkfr9Xan5ZQT
+/nM2s070/3SVQ/KIZQiICn7KKo/ixEKyyWNfgRL1sWIMVKhRdBW9K/kGlj6aejlZ
+cYsjOBvLjebkuVV9W5cY416xgVOgLmhJMA2TsPOUxk58bjx5N+xOOzn/r5kOcdCn
+wv9YebV0msV0NBibRd78sXhrKEuFKYTSiMF/n27sHu6j1cFHUtWHVg1wLzlkto/o
+VBdhpTk+M5cOzfbzBg/2H+PnENreAwWVkoxjgFeb0oICTA1AP/F4OJ3sycptBgce
+3SweKGEz8vsb/IP4A14tszRGeZjN6z7owCHR0T5hin7CFgYAVUwcwNKOyFEqN0yj
+AJJ+WVPllWUBt0elGSYazk1KWqSbv+ezieuPRGy2TO+SeqIEQQdMQeEPFJxZtLdJ
+6OHR
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFPzCCAyegAwIBAgIIcb/A+CFvsCIwDQYJKoZIhvcNAQELBQAwPDELMAkGA1UE
+BhMCQUQxDDAKBgNVBAoMA0dPVjEMMAoGA1UECwwDTUpJMREwDwYDVQQDDAhDU0NB
+LUFORDAeFw0yMDAxMzAwNzM2MjZaFw0zMzA0MjgwNjM2MjZaMDwxCzAJBgNVBAYT
+AkFEMQwwCgYDVQQKDANHT1YxDDAKBgNVBAsMA01KSTERMA8GA1UEAwwIQ1NDQS1B
+TkQwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDfqCqZlucURRLtwELc
+CJkeHN/4Q3VmqO01vULoNuCbDNYaiKQTGSQZgr0oe25/JwGGSmh9duqDApo9iYBo
+/xvT/asnu3BF3N+PI3R3vegCM1ShfO8sRMPYRvx7Z+FC7PD2tur/EfgqQNS1kiS9
+J8ZBcRjE0g7LVdMWFQGvHIRlg+2wGmef54lhc+kEDsTEgtt9DHJ9lGeJFGPUNHoX
+kzWS6K8y/XsLIQrcET/aD/19GzWJgXWnzIpqOaRDEVbsLLn4iN9M+mV0rQPIi+8I
+Anmk8mVoaIxaH5gH/A7ROZJenW3sBCncLksXISA7CzJCZfNBy2SIukDIpQRUiOUo
+aE7i/JGqu3zWA0NwZ16R+c7fIytCfHmp5oVbAX279uNu1S7h3foPctOruTblwKNX
+mJJ43/Ul6duzLVGKCt7s8u75XymOiSWBrFY+JqkDUPH1Pi7ALKiwusG2ZcTC8ZBf
+nhbWU5aGKrge9fQ1ADv5lB2knsPtSNICIuTlENefyFEbUe9NPSQGDsaWly9AN8Yb
+9XaAP5yzub72zDex9pEirrWojNmbA8x25HsYXHYT5vqZOPWDrKkiV3CsonkdlItk
+a9lE4aJY19ZsSw+q3ci8f0fLrLxFvX9MZazAgG1EeAOJUgNA+Xkii4qjZIzYX/MR
+HfsEfVBIGfSZjraYDj959LyHXQIDAQABo0UwQzAdBgNVHQ4EFgQU0eDSC38c3I6t
+ovHw2KN74oL5iaYwDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYBAf8CAQAw
+DQYJKoZIhvcNAQELBQADggIBAKQgdw/W+Ew+swN2xW97Uy2w0ChIaNV9iQU3PXiH
+4m6jwYeeGWYhU4ccXzrccxbwDkLw7OkeRrBfFy8lH+9p8Zu3Mb/Izxdl+DJRBYPm
+CMqOzUktYWq01+YUrDQ2XMv8NTmjD3agJ8Ue2eeYK1zHvKFuWmDMc/sv9yTp3gMa
+oOTm4nLTIdqLkzQ5bH2sGXT7BlBWpfysvDfVyTtv75J3ztliS517158snYGcU3yz
+qdl7vnn7TawJlDAUcBMW8tmOD4x9YG7qBntx0BVoHZyt7DLOmEm32b5d/lbD3Sl8
+b8rg9437ahyT53+5LSGzUOI1IEJiB2injyaUrnXzBJngyoc7O/PzIEesRX0lqSu1
+qXVM4uIQh8QpACMOB6p1IQjOBKYMWhbquqGt8OJpXaf4hkmmUlNWKCAhdCBbRedM
+lowK5sNp/Hxp/zqg4uNWgyTl/BPOdulw5EPm+sja7cmxeUPtpJBc9GHVwkdGOJEA
+OEOBn/hiC8II52ebPkndjIyb24H+vi9YYjLoIiaqkwZOR+Sl62XW3fGbfBMWPX9M
+Oy40jmGw06nlkxIyQUEg+xC6QQNg4aLP3C2Qpd1Wx5QM9l5gnQlbXehvpeoH5aE2
+NbRS/j5IuJXFESQNnmrENz+2sSPX8haEaodhNee9dZyTrAefnGzT/pTdwy4u+lGK
+Z2/V
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFfjCCA2agAwIBAgIBdzANBgkqhkiG9w0BAQsFADBZMQowCAYDVQQFEwEyMREw
+DwYDVQQDDAhDU0NBIEFMQjEdMBsGA1UECwwUTWluaXN0cnkgb2YgSW50ZXJpb3Ix
+DDAKBgNVBAoMA2dvdjELMAkGA1UEBhMCYWwwHhcNMTQwMjIwMDAwMDAwWhcNMjkw
+NTI0MDAwMDAwWjBZMQowCAYDVQQFEwEyMREwDwYDVQQDDAhDU0NBIEFMQjEdMBsG
+A1UECwwUTWluaXN0cnkgb2YgSW50ZXJpb3IxDDAKBgNVBAoMA2dvdjELMAkGA1UE
+BhMCYWwwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDITg/8Pfm9mVxq
+tuirswdRqP87ZZyc67yfOK2CuJJxBwrvbUL/6QUq1gUHlG13LRyD86Ul4k9a0c2F
+n0nP+t2ifBsWS30wT/fWjchokcQb65awBk7cH76RiVugFC7L9fZaHNE0S3WAnUyc
+r3KiujefumMjUdby/wqL3Dae1RguCNtwz4rSwVKnSFuhVMg2SIzrIql4A1VQEdz4
+2USYOGOqnpdxNOB+WV3kFjmVZYoXQFFzrv2Q8aBPRCxACWNXOzym+vaiPbp8XQf9
+/ciIhUda9pCOCq1SFDwXA/VFAeUaJW7j6e61ek3IUlsI9UC5ZQD2GroNMweClTDq
+dEwGcwC+794FkosScwmPmp9LT5eYvqCZ7i49jzKmgF/5tF4IjKcluS7lVOMEYZqy
+QE1KdAoIHb/XWmqdc0IRahNEZKJ5Lv3Flx6/TyjLgC5OT/I9m539ULqnNlU8ckEU
+Mve8142lf1UNaSAu15WajDm4/6xF2gloY1K1SPuSOPK76DYVvaw61aa1XI3FHBwf
+sg+JKl8siNmUhvZHN7lclnGApUVba4WaDKAFPVcTFln9iqYGpkehv0ny478BUCJW
+KZWWuO3jmXvPgQK/Qb8wIV10C0pzKwano3s5cp4Od4YvGjQiFFZI9f18kulPCQCb
+py8GYaX51j0fxRZnUl88NJ3RgPWdPwIDAQABo1EwTzASBgNVHRMBAf8ECDAGAQH/
+AgEAMA4GA1UdDwEB/wQEAwIBBjApBgNVHQ4EIgQgOC9Vuyo/hLJQsK1qJ9XkIh2z
+51UeDO5OWycklxwT+UwwDQYJKoZIhvcNAQELBQADggIBAI0vL9HjtrWieZRHXSrS
+MOjISsL/KyK2hgJa2T/kUS+HkxP3oFLGjPTbKWVUGhsYM6tK8piMI8RqUIpZ5OEI
+2LNQAktqivA8YMNG8ggVx+SGPCb/9Xt/sZZuplAfwo7LD7RnPI3csKYmXEiu10zN
+NEZ02x2sfGIZFyVo0SWM/+yYkDMApsiEMwM/GSOfrpByWcQow/mmB+DGIpNeEzqc
+GbY+hCMYa+Dl/numldwwgk8Qkjyeoq6rU+OfmkzzmVBDXmDWTl242e1jJdmhTREm
+Lba66jh2xZGwgmQueL1vWsNefm57ar8yxVpUk0txjNZf4oYyi+GJbu1gdZWPfyxl
+GVu5BXB8x8CsCiQhbJTzc+0EFnm5LpbNK7ufpiDbxPjxWYZrlSA/5E3JzIHYZOU5
+oGAc8iw3Tvr6+V0iuVQus38nnykqPhp6UuXIjTCLO4Rc54kMsBRL3ZQRfiYsQr06
+KEHz4GHWOrIhCpN52+0QRyfAZYfFrAOjANlBmWRdqIP6NkMzoPe/JFMm8LHB9oaq
+XQ1QbtMjFeJdrtmFMBoWWX5ZRawF6qcScarhAxa48SWzbJ8rK5y/5V1539/mW+sU
+0O/aIHcXDJVPqY2QQriVvuDyXtCA6gSwUvD9KnsCEMIb8RH6JORjaifDJ2KA/VHz
+l2pA4vlH8gwzAd5PWv/8Z3BU
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFjjCCA3agAwIBAgIBsjANBgkqhkiG9w0BAQsFADBhMQowCAYDVQQFEwE0MREw
+DwYDVQQDDAhDU0NBIEFMQjElMCMGA1UECwwcTWluaXN0cnkgb2YgSW50ZXJuYWwg
+QWZmYWlyczEMMAoGA1UECgwDZ292MQswCQYDVQQGEwJhbDAeFw0xOTExMTIwMDAw
+MDBaFw0zNTAyMTMwMDAwMDBaMGExCjAIBgNVBAUTATQxETAPBgNVBAMMCENTQ0Eg
+QUxCMSUwIwYDVQQLDBxNaW5pc3RyeSBvZiBJbnRlcm5hbCBBZmZhaXJzMQwwCgYD
+VQQKDANnb3YxCzAJBgNVBAYTAmFsMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC
+CgKCAgEAs0l4eiPng9/IjUFA+2/0Dr9Y/B6niPWwrGl7u0kSew0Y0YZYPlcnloLu
+408jWr4TMNKvxPsjgki0JFbJablWr8/ehvfGcpJatvBe+6FOFF0ebVN1hXl/GSeo
+1I7Hw8NXkbzlft78g0tje5hNXldzdIZlb5zgXMHggifnWGG0mY02LgbRPIfU4fLw
+2EK/V1FBW1ufB/MLr2EypSPciyo71QwDRFWd+el0aTw/rITlUGS/oeZzFmEtZ6Eo
+qMX43bWDpGoVWt8EKu/VPBFtl9itaMbmwZ3UBnwTdLXYKqzteC40BTkxBZbBJ6e+
+E50xgXc/FhlThX+Nc1TFV8WzwPNWisO4btDaSoFmPY43++zY6VGpd/17tVmXiptO
+W+QhI5oeuEtMLEZ/dhRPjWifRI+FzJ/qol6WTqdmaDPrkpqBeYuOPIIQupinnuMn
+jmsDE+WIzF/YnL1l3HnhdYIZ0GQQFwnLoSH8K19XLHwijh1vEN1D2su8jodGb2t+
+wBxdizPKsHERq3x3cQB8ngQfmKfk+aKAldDplUZbeLoU7FvYFnc5BCZcZTt2G3/V
+i016HTTT3xl0H/Kd+cvdBiysDbSy5phiGAhckkUmb0qRq5KkBp5Mp06WdwGU1baO
+iWfmd0Xq3J2q1ynrpdwaDT99jOrPTXS1gJrJv2qdkoEPMtS/NE0CAwEAAaNRME8w
+EgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAQYwKQYDVR0OBCIEIIrl
+GptdmBRuxFhzbbvUbD0RFvccsmfpoLh9Wn0MhgpqMA0GCSqGSIb3DQEBCwUAA4IC
+AQB8vFgiPrThjwUEtiUmk3+Fx9s+nViBqqRfY1qcU5mxwaQduqwNrQkRO8bf5fX1
+eq4uJG4VEFMNV6szwEsP4DC13gTOfM3ep8q1IFhxt+KnAtSPr9EtR6cKUwQIJE9z
+W5MVRe3mGyohPgrFyJxfmn0VI2BCfZn/FCnFnEpDA9YjX1gcYCm9odPau7MiimiJ
+S1cOElzZF63+y1hPb72AfaKobWbe2L0bZfCqdegCzLIGHCHFLbmOTg/v7/OeVMN0
+SSBNhVmj3buV4gbGTzUse99mdZmO8I74Cd3Q/R6Mq55elqko/Nn9tSZFaSHr01uF
+bugYRI8EkAM5jiaSwpyNvgEK1jpFDAZZO+hx1Qv8gmEcf7xkUhyxMgdsgNJJoX+i
+11PSa5j/gwVfmv/KQK9iOG4hYELjWVcr+lTf/vD8oLGf+8U+uKiro0rnpH/NBIRJ
+GneninJG5WUSfLmbwLZxoPQfF9KVMSmSA3x5MtdAdfoFfqdvDzU59ogjGr2fUPxq
+GtCdXCtC5w/ZNvZcP4WOuD1eS6SZidcnxsy5hd0yXUoc+irfvsTR0VLqTVwRECcY
+TTjQvcLa/VR4ZsvNbTSSyifqw+6HjIQLh3bcfTC8Fsr1q1jHus8H4ORPK8LReZ21
+LC1ICahc9fKUzVtTruBvuPMOFStcthBvjoUZnB4AzuCPhA==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFjzCCA3egAwIBAgICAIEwDQYJKoZIhvcNAQELBQAwYTEKMAgGA1UEBRMBMzER
+MA8GA1UEAwwIQ1NDQSBBTEIxJTAjBgNVBAsMHE1pbmlzdHJ5IG9mIEludGVybmFs
+IEFmZmFpcnMxDDAKBgNVBAoMA2dvdjELMAkGA1UEBhMCYWwwHhcNMTQxMTExMDAw
+MDAwWhcNMzAwMjEyMDAwMDAwWjBhMQowCAYDVQQFEwEzMREwDwYDVQQDDAhDU0NB
+IEFMQjElMCMGA1UECwwcTWluaXN0cnkgb2YgSW50ZXJuYWwgQWZmYWlyczEMMAoG
+A1UECgwDZ292MQswCQYDVQQGEwJhbDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCC
+AgoCggIBAJL5cWFQcFtQ/ZTl+ttNzUrEfEpPakzAqD0WPICLIBzo95alC5Wn2ybi
+FJ8Q6cvgeTucLo0XMtkBEslsbmxXNW7MqDIVFqvYH4Y4QTM1L/Z7d3T6+vkLbd+X
+zGQE4JvuFn7xcDR/FHD3JKtJcSAv42hHNgQfsIe2keB2tcOpPqWpeIpPNgFmCo2s
+9yclyBnaiUbwqn8Y54/spNa8SnrYhjG+G5p3AVjwPlbskFrgjNB07N8mUrGsHu/r
+7k9vdT5JbgfBZ5033dF8gepa4z0NOxmu/LiYK7WG+nBLTg1fhGEAu85IAwVxSW9C
+TtxUWHQZL6UHlRyXUvT7JJ2hDDy6NtoWoT3Y1PlfUBrszC2jc8+H+Sd8Xt94Wspz
+VVCvPPnb+ELi6Dk660uWj6sB9JiVuygjKAw2ZS0ZUnT5+QCPlMoPHXMz9wsqX+cr
+YGhoveBzL0CojHgC1rSbyOmBwYjTyymvJlnxiQzAXWwyP3MT+G0DKueRzoPTbxTx
+3nYXukeUViyOwb27kLXdGfGyEx8/TVAEyviiSh1oOfwgFgNlldcwHK++4BDHny7y
+7O6TGe6pW2y8EoYvQTlJt83hAIVnLcjompw1Vo9/hYekl3Bo4uzXBFMSwkD1xr8H
+/s9C5qF36lubsGEhAmpaCfRYullXvIStnuImHw1A0ejhUZZp7EddAgMBAAGjUTBP
+MBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgEGMCkGA1UdDgQiBCCl
++EWCSQ2g+cbf3rLEazCaywth2KpffyAle973On6TfjANBgkqhkiG9w0BAQsFAAOC
+AgEAiLMVXNVcCp5ydqvJ2Wa+LfKUQI589wMQg031/jSKfPiR4gfeHvNZAlxUywv1
+9Q33AIBd050gS+PFdUhFpZTerH9gSqPyHYOtaTCtMhiz4l6yY3pX4ELBtvXifZX6
+RlVjLinby1SwmPl85cNqaUPvZlRjyPJ1EdHm2rvzCgnJ7IhWQy9X8igfJG4W6jqS
+hLfCK4aZucOHqsep+AnDfQqLBVwyAdMRToAo+lv/WZ5zQYfZubrSEEbyByJOcH0+
+c0AhC17gyMW9/jcSjfzfDBi8uX+DXfIOLD5zMogjp7pwUmcXP21UZJjXmRRmRtth
+mM1V9gedkU6mFEE4ZEX+SxUZubPlT6h5Utj0c3LiAShjEtbwfxZ8Bm5Lk19wH3qi
+a706wZLh9Qh5XAbbgzu+RC9hNzFvENR5lvtYYrNg07WHqa2IfUosA7tMduvfcwpb
+uIWBzuumzF2XME93WLJWMAt2aLzkbizT9yu3Hvbv/5HXbl6HuKoKc3pNpM6GscsU
+tXbmCNI9R7G+EFXodtYJrA01dAKQUPqsyYDCyLT+oZ2K+BeSKsash4cxWgE4UTHQ
+n8J0vL7rJYKW/PR5KMJwuLPpaF9uzGIrYfyu5eQYzQISeetDbAbV1VvUTM9mtWzk
+Cz9l2Jnm6FFByF5eI9xG8UPmbzAAsWsC1vdUEjwt1YrFSwI=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFjzCCBPCgAwIBAgIBMTAKBggqhkjOPQQDBDCBgTELMAkGA1UEBhMCSVMxGjAY
+BgNVBAoMEVRoam9kc2tyYSBJc2xhbmRzMRswGQYDVQQLDBJDb3VudHJ5IFNpZ25p
+bmcgQ0ExEzARBgNVBAQMCjY1MDM3NjA2NDkxJDAiBgNVBAMMG0ZlcmRhc2tpbHJp
+a2kgLSBJc2xhbmQgLSBHMzAeFw0yMzExMTcwOTU1MDNaFw0zOTAyMTQwOTU1MDNa
+MIGBMQswCQYDVQQGEwJJUzEaMBgGA1UECgwRVGhqb2Rza3JhIElzbGFuZHMxGzAZ
+BgNVBAsMEkNvdW50cnkgU2lnbmluZyBDQTETMBEGA1UEBAwKNjUwMzc2MDY0OTEk
+MCIGA1UEAwwbRmVyZGFza2lscmlraSAtIElzbGFuZCAtIEczMIICRjCCAbkGByqG
+SM49AgEwggGsAgEBME0GByqGSM49AQECQgH/////////////////////////////
+/////////////////////////////////////////////////////////zCBiARC
+Af//////////////////////////////////////////////////////////////
+///////////////////////8BEIAUZU+uWGOHJofkpohoLaFQO6i2nJbmbMV87i0
+iZGO8QnhVhk5Uex+k3sWUsC9O7G/BzVz34g9LDTx70Uf1GtQPwAEgYUEAMaFjga3
+BATpzZ4+y2YjlbRCnGSBOQU/tSH4KK9ga009uqFLXnfv51ko/h3BJ6L/qN4zSLPB
+hWpCm/l+fjHC5b1mARg5KWp4mjvABFyKX7QsfRvZmPVESVebRGgXr70XJz5mLJfu
+cple9CZAxVC5AT+tB2E1PHCGonLCQIi+lHaf0WZQAkIB////////////////////
+///////////////////////6UYaHg78vlmt/zAFI9wml0Du1ybiJnEeuu2+3HpE4
+ZAkCAQEDgYYABACRyRi13iGJwTsAzRVsHIQc0zOM5S93g1q9zNAthlNEF3eRC9jS
+EipBtYtWZTfJD2kZ27zySzSRWAnQ3KIW5+xJKAC5SG+JfeMH6vv1yAesOUzwRdRc
+W9M4oAJZc1XQTqOzHtrUXiA14qfeTf/2qYFA+OdIWtZUjRhGZHwJMdYSHnkRn6OC
+AWYwggFiMBIGA1UdEwEB/wQIMAYBAf8CAQAwHwYDVR0jBBgwFoAUeS9jCIkmh7iK
+TkhzVUoBAF381jowDgYDVR0PAQH/BAQDAgEGMC8GA1UdEQQoMCakEDAOMQwwCgYD
+VQQHDANJU0yGEmh0dHA6Ly92ZWdhYnJlZi5pczArBgNVHRAEJDAigA8yMDIzMTEx
+NzA5NTUwM1qBDzIwMjgxMTE1MDk1NTAzWjAdBgNVHQ4EFgQUeS9jCIkmh7iKTkhz
+VUoBAF381jowbQYDVR0fBGYwZDAwoC6gLIYqaHR0cHM6Ly9wa2Rkb3dubG9hZDEu
+aWNhby5pbnQvQ1JMcy9JU0wuY3JsMDCgLqAshipodHRwczovL3BrZGRvd25sb2Fk
+Mi5pY2FvLmludC9DUkxzL0lTTC5jcmwwLwYDVR0SBCgwJqQQMA4xDDAKBgNVBAcM
+A0lTTIYSaHR0cDovL3ZlZ2FicmVmLmlzMAoGCCqGSM49BAMEA4GMADCBiAJCAThm
+fcyNpdidx6pGlfddRs/7PP0UDKchOz1sxlabtSehgUF5Tyjc2WSIa6FyG29nvQqM
+8xTrIFWt/j7Hck4qJW2PAkIBiGlvBs17P+yZ3XGaQLU3kU8YSIBYlDzyX/evejXo
+gvq3uuS+cdEe7Ils3lcqCuH5dAUSHeb/Z0wDzPtzGFNJxCM=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIHBzCCBPGgAwIBAgIBNDALBgkqhkiG9w0BAQ0wgYExCzAJBgNVBAYTAklTMRow
+GAYDVQQKDBFUaGpvZHNrcmEgSXNsYW5kczEbMBkGA1UECwwSQ291bnRyeSBTaWdu
+aW5nIENBMRMwEQYDVQQEDAo2NTAzNzYwNjQ5MSQwIgYDVQQDDBtGZXJkYXNraWxy
+aWtpIC0gSXNsYW5kIC0gRzMwHhcNMjMxMTIyMDkyNTU5WhcNMzQwNDEwMTM1NzI1
+WjCBgTELMAkGA1UEBhMCSVMxGjAYBgNVBAoMEVRoam9kc2tyYSBJc2xhbmRzMRsw
+GQYDVQQLDBJDb3VudHJ5IFNpZ25pbmcgQ0ExEzARBgNVBAQMCjY1MDM3NjA2NDkx
+JDAiBgNVBAMMG0ZlcmRhc2tpbHJpa2kgLSBJc2xhbmQgLSBHMzCCAkYwggG5Bgcq
+hkjOPQIBMIIBrAIBATBNBgcqhkjOPQEBAkIB////////////////////////////
+//////////////////////////////////////////////////////////8wgYgE
+QgH/////////////////////////////////////////////////////////////
+/////////////////////////ARCAFGVPrlhjhyaH5KaIaC2hUDuotpyW5mzFfO4
+tImRjvEJ4VYZOVHsfpN7FlLAvTuxvwc1c9+IPSw08e9FH9RrUD8ABIGFBADGhY4G
+twQE6c2ePstmI5W0QpxkgTkFP7Uh+CivYGtNPbqhS1537+dZKP4dwSei/6jeM0iz
+wYVqQpv5fn4xwuW9ZgEYOSlqeJo7wARcil+0LH0b2Zj1RElXm0RoF6+9Fyc+ZiyX
+7nKZXvQmQMVQuQE/rQdhNTxwhqJywkCIvpR2n9FmUAJCAf//////////////////
+////////////////////////+lGGh4O/L5Zrf8wBSPcJpdA7tcm4iZxHrrtvtx6R
+OGQJAgEBA4GGAAQAkckYtd4hicE7AM0VbByEHNMzjOUvd4NavczQLYZTRBd3kQvY
+0hIqQbWLVmU3yQ9pGdu88ks0kVgJ0NyiFufsSSgAuUhviX3jB+r79cgHrDlM8EXU
+XFvTOKACWXNV0E6jsx7a1F4gNeKn3k3/9qmBQPjnSFrWVI0YRmR8CTHWEh55EZ+j
+ggFmMIIBYjArBgNVHRAEJDAigA8yMDIzMTEyMjA5MjU1OVqBDzIwMjgxMTEzMDky
+NTU5WjAfBgNVHSMEGDAWgBR9LOaAg2oN7FPsqdMEHeWdrvcOyzAOBgNVHQ8BAf8E
+BAMCAQYwHQYDVR0OBBYEFHkvYwiJJoe4ik5Ic1VKAQBd/NY6MBIGA1UdEwEB/wQI
+MAYBAf8CAQAwbQYDVR0fBGYwZDAwoC6gLIYqaHR0cHM6Ly9wa2Rkb3dubG9hZDEu
+aWNhby5pbnQvQ1JMcy9JU0wuY3JsMDCgLqAshipodHRwczovL3BrZGRvd25sb2Fk
+Mi5pY2FvLmludC9DUkxzL0lTTC5jcmwwLwYDVR0RBCgwJqQQMA4xDDAKBgNVBAcM
+A0lTTIYSaHR0cDovL3ZlZ2FicmVmLmlzMC8GA1UdEgQoMCakEDAOMQwwCgYDVQQH
+DANJU0yGEmh0dHA6Ly92ZWdhYnJlZi5pczALBgkqhkiG9w0BAQ0DggIBAIWpIVxn
+Wrsh5KtBzbzoQ9Up31P3aqgl1NoHLrPNHoZC9IsjPD5yhw8Pq7BGtbP14NNVI+tZ
+tkgTsY3BEdmrJ9VnqPCVGSSFwQj8oQrKKxRBb/jFYR+f1LfwOrqE2RyvqDplpZOW
+GmDgrNZx/b5Kw4krOUCzvtZv0lHk1Jas3ne+VocxjNz7UcZD1FUS5xACk6zSijCq
+esdUkDm0LNfx5eFsHsPWOJWTyJ7IDgEkgY+uq5Pnx83GPcMlLK58o6RDfKsO1Ukw
+u6/BmG/d4zs3eHsjuEUCOF8HRlrlSTE4opqsI0Z8PYgRmd4ZHPBSSj9hTFQpWymG
+zebjt5eYCMJvb80Cm5GIkSHrSKN1rCraYm9zi5uRShwZeY7bitWPY0iozjL2Wkrc
+gKOXPQSRTf8KtQBO2nMEODb9PHke9wWBoSrAvNakUl8pghiYBkUZwcdjocuKEBBg
+PEiUhWo2bDjNnnEkghg5AGW/rdRHlLlrbgnJQVNMX81wtjA5QEQNBmZDLRZyh0Pg
+tR9ZET/1txZGCPMWrh1fQBA6uI009YaZwqoqXNzNaTjLAUQ5vM4XJtqxjNFRJCcy
+ZOTPpxT/PVe0LS5ZOtYYIMtOomMXKqqo/QgyYzU48uhGpujERuFiP+yKT7hVg1Ho
+1sQtzALrc5NTBPgmdwVrDPxPzJRw132Gq5cW
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIHoDCCBYigAwIBAgIEWuHKTjANBgkqhkiG9w0BAQsFADBuMQswCQYDVQQGEwJD
+TTEvMC0GA1UECgwmR292ZXJubWVudCBvZiB0aGUgUmVwdWJsaWMgb2YgQ2FtZXJv
+b24xDTALBgNVBAsMBERHU04xHzAdBgNVBAMMFkNhbWVyb29uIFBhc3Nwb3J0IENT
+Q0EwHhcNMTgwNDI2MTIyMTQ2WhcNMzIwNzI2MTI1MTQ2WjBuMQswCQYDVQQGEwJD
+TTEvMC0GA1UECgwmR292ZXJubWVudCBvZiB0aGUgUmVwdWJsaWMgb2YgQ2FtZXJv
+b24xDTALBgNVBAsMBERHU04xHzAdBgNVBAMMFkNhbWVyb29uIFBhc3Nwb3J0IENT
+Q0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDOIOzYmJY35HQJnK60
+xJydEUICxug7H8JWVZYHrU/F3bXri6NzyIQxz3UylYhzwXQ8ejUuydjBIK9eC/oL
+4OZKgCSP9xg7/Acuc+xFawlMST2HZlTlyfBMzDIejM6i1WOmkvRt4p3equQAoybf
+lXsNpAN35eJY2n2awJuZRuvc9xHoldc0q/9Jat2dlxgSHnOSUc7JMi6Hy+L8BwBG
+u7ju/aat91xWO2DPlC+NuYI4fnFINKAknlw39JIbrHVnBm3KKZmXMs6BvJaznIH5
+gX1MlRepY4PYi8vOQd/H0idYUNOlUVJ4QA+i9tghAXjnWAkmM1b3PuyuI2GFQ9W0
+R7WPXN7dY9Lc2fu4aaKv7kta7WORPZj3L7MiuCBs2nnOIVvXA7e3bTU1iLOtKSxF
+LYyaJT0Z63GMPiEozO1mWO0AdWdmyhrBX2IwdF8V1Q8IJEG2WQf8+KhnSmt6kO1e
+FWMMgpjyx6Wq5L2zUu6JfVDFO+FycH6lQiStcvDL+puaviNaqZkI5BvVljuAvdIL
+XNcVfNQhnKDelaQzvIOgjNkK2BCtLzUO/jjNLveqYKbpLnMsSOMIrerZNGr0gWVw
+fw4poIUHT1pg4y7JWs/sDvDjeP88eCSz8gl0D5pC4aAc+djcMUlbz5yTRlCje8ZT
+yfS6ejfHWFBZSKwdGgi0daWcrwIDAQABo4ICRDCCAkAwgcQGA1UdIASBvDCBuTCB
+tgYIYHiMmkIEAQEwgakwHgYIKwYBBQUHAgEWEmh0dHA6Ly93d3cuZGdzbi5jbTCB
+hgYIKwYBBQUHAgIwegx4SXNzdWVkIGluIGFjY29yZGFuY2Ugd2l0aCBhbmQgZ292
+ZXJuZWQgYnkgdGhlIENhbWVyb29uIENTQ0EgQ2VydGlmaWNhdGUgUG9saWN5IHdo
+aWNoIGNhbiBiZSBmb3VuZCBhdCBodHRwOi8vd3d3LmFudGljLmNtMCkGA1UdEgQi
+MCCBDHBraUBhbnRpYy5jbaQQMA4xDDAKBgNVBAcMA0NNUjApBgNVHREEIjAggQxw
+a2lAYW50aWMuY22kEDAOMQwwCgYDVQQHDANDTVIwDgYDVR0PAQH/BAQDAgEGMBIG
+A1UdEwEB/wQIMAYBAf8CAQAwgY8GA1UdHwSBhzCBhDCBgaB/oH2GKmh0dHBzOi8v
+cGtkZG93bmxvYWQxLmljYW8uaW50L0NSTHMvQ01SLmNybIYqaHR0cHM6Ly9wa2Rk
+b3dubG9hZDIuaWNhby5pbnQvQ1JMcy9DTVIuY3JshiNodHRwOi8vd3d3LmRnc24u
+Y20vQ1NDQV9DUkwvQ01SLmNybDArBgNVHRAEJDAigA8yMDE4MDQyNjEyMjE0NlqB
+DzIwMjIwMTI1MDYyNjA2WjAfBgNVHSMEGDAWgBR/J/U7y8Tc+BThjPGk9tdRfW7b
+4jAdBgNVHQ4EFgQUfyf1O8vE3PgU4YzxpPbXUX1u2+IwDQYJKoZIhvcNAQELBQAD
+ggIBAEbyqZgDdFo99jC/k14eoAcTVlgXWhG2lcR/cbmBscO+OmQoKt/GMje3hZmA
+GE9wInue4uSF8M0vnZCdoI8+7ahDopyrWAXiLIfskvUMIiehB3jkVL1kuEOXI0JS
+7Fviz43q7yNnfvcak/Kbi3XgLjRY3L2/ZUQ6DYu30fOscgk5fbMDJCdWFLRQJBwX
+eWcRpNVIeYIOj19Hzks9bsinSJbCMr5YIvCI2n1BFJUkF86ExYOgVeCrIt4paorV
+0vHPYSI91pSKVpFxjWYVSqiNyL++UfGHNcpV8yUe1toSaGh9eeH6RIyXqUVBbNT/
+X4WMVAsEIKCtFIfHDB3wASjn2xze2uZBTpyiXKvLgQwzDaQX1gEPnWai0ZfsEWuX
+tLeXVojGckoHBgmEZd7U0iF4J0A+jhp29vTC7/Sznq+mW4UtwTIlyDiuULZQ2cNk
+eVxh4NOTd5EmG9ppf4ySB/0WbSviDL/nf2uhiCVubESmSQnEH96/lK119Sevv2jp
+X7M+LzgFAOp+KbyNYil7nZPFQntt611/kUmFZp1uxHpe9XhkVyq7yGEX87U5BtiI
+3Uf0eFw8bu5VkR/JgNwn7Nfg8JWonuYZtfwkes8w5enP3IkM9ZQwL0L4q4AWBtov
+zh8JJa1veA9l2k6RmvWbmCB3jbdFCBdwnVhGSTPLuxyYaICi
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICwTCCAmagAwIBAgICJ14wCwYHKoZIzj0EAQUAMFcxCzAJBgNVBAYTAkxWMSQw
+IgYDVQQKDBtOYXRpb25hbCBTZWN1cml0eSBBdXRob3JpdHkxFDASBgNVBAMMC0NT
+Q0EgTGF0dmlhMQwwCgYDVQQFEwMwMDEwHhcNMDkxMTE2MjIwMDAxWhcNMjIwMjE3
+MjE1OTU5WjBXMQswCQYDVQQGEwJMVjEkMCIGA1UECgwbTmF0aW9uYWwgU2VjdXJp
+dHkgQXV0aG9yaXR5MRQwEgYDVQQDDAtDU0NBIExhdHZpYTEMMAoGA1UEBRMDMDAy
+MIIBMzCB7AYHKoZIzj0CATCB4AIBATAsBgcqhkjOPQEBAiEAqftX26Huqbw+ZgqQ
+nYONcm479iPVJiAoIBNIHR9uU3cwRAQgfVoJdfwsMFfu9nUwQXr/5/uAVcEm3Fxs
+6UpLRPMwtdkEICbcXGzpSktE8zC12bvXfL+VhBYpXPfhzmvM3Bj/jAe2BEEEi9Ku
+uct+V8ssS0gv/IG3r7neJ+HjvSPCOkRTvZrOMmJUfvg1w9rE/Zf4RhoUYR3JwndF
+Ey3tjlRcHVTHLwRplwIhAKn7V9uh7qm8PmYKkJ2DjXGMOXqjtWGm95AeDoKXSFan
+AgEBA0IABEJLmld5qgzcwbAp4PJAUAafHfpnKDaZEC8EqGoXBAYsSZ83JDcHfv66
+sT6WFEYV4cdGVULJEY5VgUG6/BV9cTSjRTBDMBIGA1UdEwEB/wQIMAYBAf8CAQEw
+HQYDVR0OBBYEFJexLqpFB8O+KXUn/cMUc4PNgzkyMA4GA1UdDwEB/wQEAwIBBjAL
+BgcqhkjOPQQBBQADSAAwRQIgBiQNQY80f+tYJfJTMSyMOq8cDz6XpV98LsPnGJNb
+7t0CIQCcdCZyYL/nYn9UI1GhoVRH8V6/7m0rnRvrgVQMzF8s3Q==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEmTCCA4GgAwIBAgIQCZ92HZZyke1ovXfZ70liFjANBgkqhkiG9w0BAQsFADCB
+1TELMAkGA1UEBhMCSVMxEjAQBgNVBAcTCVJleWtqYXZpazEaMBgGA1UEChMRRmph
+cm1hbGFyYWR1bmV5dGkxFzAVBgNVBAsTDkt0LiA1NTAxNjkyODI5MRswGQYDVQQL
+ExJDb3VudHJ5IFNpZ25pbmcgQ0ExPzA9BgNVBAsTNlZvdHR1bmFyc3RlZm5hIGh0
+dHBzOi8vd3d3LnRoam9kc2tyYS5pcy9yZXBvc2l0b3J5L2NwczEfMB0GA1UEAxMW
+RmVyZGFza2lscmlraSAtIElzbGFuZDAeFw0xMzAxMzEwMDAwMDBaFw0xOTAyMTIy
+MzU5NTlaMIHSMQswCQYDVQQGEwJJUzESMBAGA1UEBxMJUkVZS0pBVklLMRowGAYD
+VQQKExFUaGpvZHNrcmEgSXNsYW5kczEXMBUGA1UECxMOS3QuIDY1MDM3NjA2NDkx
+GzAZBgNVBAsTEkNvdW50cnkgU2lnbmluZyBDQTE3MDUGA1UECxMuVm90dHVuYXJz
+dGVmbmEgaHR0cDovL3d3dy52ZWdhYnJlZi5pcy9za2lscmlraTEkMCIGA1UEAxMb
+RmVyZGFza2lscmlraSAtIElzbGFuZCAtIEcyMIIBIjANBgkqhkiG9w0BAQEFAAOC
+AQ8AMIIBCgKCAQEAsBbFrlwYPweEjQHcAa4ZuJoQSlkxC94WmX60RXHh/UbNjc0R
+QiZd78zjWombCH0kAovaRfYG0Dp6d4DjmU92i8pt52yWK3O1PqW0w7kZWT48znbe
+DNNRmpRas8CRqsEulPpE9rSXmpJIPQXrGrNC8ZxaEKqhvr3R4eEKkEz/3F6a31xw
+LC5qqjOBTYlE/CQL6ukxZiCjdqsN1TE4iZnVPdgvF1jMD7xXr00XPFLeebsPH0W2
+3xPjyFQ36h27W/GE5lpjwPWiPp46a3/tFqBVEImP7G/xalDKksdytjT/rxLeHpJa
+Yo9D+t3CgkyLFfZdeExU3/yPpt1gNPNtbJ13BwIDAQABo2YwZDASBgNVHRMBAf8E
+CDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUhX/1alO2xNgzYAXZ
+q16AIGdzx04wHwYDVR0jBBgwFoAU6wU7JxBTWZabvqEcM8xNSxYyCKcwDQYJKoZI
+hvcNAQELBQADggEBAGqC8a9Qn9Hh2+oweMCkdRk5xoHCMgn7a/kThITnGkVu1Cyl
+MZT/60a/dCBJ376uiTwrmaPmWjhH8mf7ho3CxW1JV3vgtz2tYXN9ynpM3uPYlAXs
+EZAsIGqVMP2j3r7K95zemDDSE0bOry0zmC+2u2r+AFPwnq8PRlwyMpn/h+py1kiB
+V6KT26XCXs9nWX48Sx1r06/NOEGmhwr5vMPoCHQ+2gwwKX3bUacoEzyhnD7eamhA
+CBnhcxq364JYnW8vz9uQQu2F3inZzBh7D5g1QTTUxcTrtgmqEYjUTzxw+mQUNNMe
+V5WnG/ykf43yzhuZRreGZ/ZKBgGh/FotULK0bck=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIE8DCCA1igAwIBAgICATowDQYJKoZIhvcNAQELBQAwgYcxCjAIBgNVBAUTATIx
+EDAOBgNVBAMMB0NTQ0EgTkwxNzA1BgNVBAsMLk1pbmlzdHJ5IG9mIHRoZSBJbnRl
+cmlvciBhbmQgS2luZ2RvbSBSZWxhdGlvbnMxITAfBgNVBAoMGFN0YXRlIG9mIHRo
+ZSBOZXRoZXJsYW5kczELMAkGA1UEBhMCTkwwHhcNMDkwODIxMDAwMDAwWhcNMTcw
+ODMwMDAwMDAwWjCBhzEKMAgGA1UEBRMBMjEQMA4GA1UEAwwHQ1NDQSBOTDE3MDUG
+A1UECwwuTWluaXN0cnkgb2YgdGhlIEludGVyaW9yIGFuZCBLaW5nZG9tIFJlbGF0
+aW9uczEhMB8GA1UECgwYU3RhdGUgb2YgdGhlIE5ldGhlcmxhbmRzMQswCQYDVQQG
+EwJOTDCCAaIwDQYJKoZIhvcNAQEBBQADggGPADCCAYoCggGBAL0mOW1+/OPT9mQQ
+wOWyl2dYN9DBheu2wFNnYZsUc76tqgMmyr0+le16FROYqkQDMELaiGFFhRun+gKm
+hcXo4s0+wTykd3ctV7Zfv92tmSKTiPkS6/auPkEuBiu4Moasku8ofJD6+KHd7lZn
+Az1kJt4nae1NmpdPDlSZLBxOKwBKMnzZulFx5bHX1TRKLfu0g+h/FCtgx+lMsv+j
+YL+eM8HH6LpkOgXhw2cx8EEGlDE/I9V+3h0aS71Wp+J9QxX/Jx5CLASjmRNPHF4M
+CHjwk7hrKfCjcVFswdKQkAPspjmyh/8P7aKqvy96GB6sir7qeVAbMawPhb2d8HaY
+WligDkItKW24F1GW2lujNIat2CG9oo1nXkGnRRx5dUGymmymXjTEHFpKCm7SwweG
+FhrQ0TgGa65pMBWg2qctnaGpfAMUn9YQxX47Qkbfijp6htA4PgQUqU+kQgfeXVOs
+vMBH1nW/IxMQ14yqYoa1zGg7JWzRrWyUBzt+hel7xXroT1E1SwIDAQABo2QwYjAS
+BgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjARBgNVHSAECjAIMAYG
+BFUdIAAwKQYDVR0OBCIEID7D2583yNghzZxdFFIcHYW+lII7b2ygaHkEXyt6YTMq
+MA0GCSqGSIb3DQEBCwUAA4IBgQCqKtMMV/XCNL6MSmnIE+cfCEGLGDtjdcB3eLyl
+At+GaQ/1c5/QxwmaUSGR4317EgnKWAmG6PX6QCs4+jNAo+wa66n9As8bo3+z+35r
+W40PwMAp8AGFbiXppivc9JRWOgpVisTQlrfbQ1TEb7BnX9tUTu1xKAD7eHN/rNuH
+08KA1LS+kJJE5dQ4n6XKSEjemCRkY+AaGVBkPrBUgM1vaKBNb2jE4r3/Kmhk/xwC
+Fg71X2SWod0QK9q1WSpJJq7yPPK9ETST9fo21v+Y3sWOqms60WZBG6uvHqMOiSXF
++DejMby/OavqZyLaKLO9FA0H9WwA8CirY0iBfdWf1K4HHul4D+kwYHAGzH61MtG1
+p+v3rEKypVyRset2JfkCVSR+isn/G5GD4KJ9URsGFyA3adZjKrZrLWORXR1yC32W
+j/QWG95HFN0dTt8p0y/YyE+EOy93B47T3BJi4r0aq7S1Y+WVVokTknkA8oHwq87D
+CQQ2o/el7rkOVV0eXiydNy67Kuo=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIE8DCCA1igAwIBAgICAiYwDQYJKoZIhvcNAQELBQAwgYcxCjAIBgNVBAUTATMx
+EDAOBgNVBAMMB0NTQ0EgTkwxNzA1BgNVBAsMLk1pbmlzdHJ5IG9mIHRoZSBJbnRl
+cmlvciBhbmQgS2luZ2RvbSBSZWxhdGlvbnMxITAfBgNVBAoMGFN0YXRlIG9mIHRo
+ZSBOZXRoZXJsYW5kczELMAkGA1UEBhMCTkwwHhcNMTEwOTIxMDAwMDAwWhcNMTkw
+OTMwMDAwMDAwWjCBhzEKMAgGA1UEBRMBMzEQMA4GA1UEAwwHQ1NDQSBOTDE3MDUG
+A1UECwwuTWluaXN0cnkgb2YgdGhlIEludGVyaW9yIGFuZCBLaW5nZG9tIFJlbGF0
+aW9uczEhMB8GA1UECgwYU3RhdGUgb2YgdGhlIE5ldGhlcmxhbmRzMQswCQYDVQQG
+EwJOTDCCAaIwDQYJKoZIhvcNAQEBBQADggGPADCCAYoCggGBAKwRlCLLdLQCMCo0
+4qQYXXY0lbfaGtWOq8FdwAXi5ztrpkeLFrnXoVSAfh7ddOkHJtfx/yXWs/mJ8j96
+wO8CMNVnqPc5HPX+G3ZPXegSJiSMoSsq5U+04IjDCyxVbTyHY/mDDwAen5QKlySP
+GEQyFaq/iaUk4fu+eE903HgHn2aQ5c3z2Bw22UaGaedzWDJKMccY0O2aaWvhEyg/
+fnzPmGBzpN0eX0GnMPGsk64iZ7iGlcEz/QEKifC+YhMzM7GO29ZGdW+ROaVLmwU4
+curgEAfxOYQ/4xXt8nOng0r5eCw9tEoYBxcvqO4vUb8lT06ZaxvKRbIzfKhnRu7g
+eGj8M+7Y07dEHXniWrDJJ3LzoT2LjE+3ehqSoskIS1EmYYlI+cTyhUxuQXvfQo0n
+8eyc55uR6fFp1XfuZ61RvXenvwTEqklRQNmlcWnZSytIYbZCiHzAcKo0emIu0XuP
+k1roRwdpWsB1WjnhLhT96k+WK067kbsRWKF65OcpsnxM7aEsHwIDAQABo2QwYjAS
+BgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjARBgNVHSAECjAIMAYG
+BFUdIAAwKQYDVR0OBCIEIDyuu1iYglrLQv22s0mRzIlq69Qey4w96T1CMLfJGjJ3
+MA0GCSqGSIb3DQEBCwUAA4IBgQBwJTlACb4ipV5cve4YfIi1Gkzw+fLpnUxKJ921
+HoKzI0ZeYhXyF7LbzFiGVDlc/cyYojEUQIkARTQGiIkNrFyEusM1e0Tk0WxEUUIO
+JQiZ6gc1Zs8uBwL1zpH05ycwsGUwkYcmDk3qRUvKZDnf05dm5QZBtSV9DQc+Rt7P
++wM4toV9YsJxlqHlbu4NdZuzE9qQrwB4sFPeO/AEtL8xY1kqz3/JsQWJqcTxkUxc
+mTbphynk/4SUr/cmEx89Y0Ldc+qDGSRQNg5d0OKAWBuY+6j45kxU+Nkl+gl0ECor
+LYus5q0QdxaMSWrsHZv9Jy2JbX5SZHskeKjSrO0zj6d0tcy/1m7GuKhZUPmWYEiF
+61V7NR+2eMUR0JN4C3nFZf17e/QHu0LAhGpQNB/DkX1aGykariD2IVeu8SBzZDzC
+b0RnJllVk46axj2a6iNcHSe4kGVl53qiy9AhpZy1TfmziDwyIRpxQKE0D8mfBqCe
+bwoQYj4ilZfcwkwIoiUNfZc+0mU=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFEjCCA3qgAwIBAgICATswDQYJKoZIhvcNAQELBQAwezEQMA4GA1UEAwwHQ1ND
+QSBOTDE3MDUGA1UECwwuTWluaXN0cnkgb2YgdGhlIEludGVyaW9yIGFuZCBLaW5n
+ZG9tIFJlbGF0aW9uczEhMB8GA1UECgwYU3RhdGUgb2YgdGhlIE5ldGhlcmxhbmRz
+MQswCQYDVQQGEwJOTDAeFw0wOTA4MTkxMTEwNTNaFw0xNDA4MzAwMDAwMDBaMIGH
+MQowCAYDVQQFEwEyMRAwDgYDVQQDDAdDU0NBIE5MMTcwNQYDVQQLDC5NaW5pc3Ry
+eSBvZiB0aGUgSW50ZXJpb3IgYW5kIEtpbmdkb20gUmVsYXRpb25zMSEwHwYDVQQK
+DBhTdGF0ZSBvZiB0aGUgTmV0aGVybGFuZHMxCzAJBgNVBAYTAk5MMIIBojANBgkq
+hkiG9w0BAQEFAAOCAY8AMIIBigKCAYEAvSY5bX7849P2ZBDA5bKXZ1g30MGF67bA
+U2dhmxRzvq2qAybKvT6V7XoVE5iqRAMwQtqIYUWFG6f6AqaFxejizT7BPKR3dy1X
+tl+/3a2ZIpOI+RLr9q4+QS4GK7gyhqyS7yh8kPr4od3uVmcDPWQm3idp7U2al08O
+VJksHE4rAEoyfNm6UXHlsdfVNEot+7SD6H8UK2DH6Uyy/6Ngv54zwcfoumQ6BeHD
+ZzHwQQaUMT8j1X7eHRpLvVan4n1DFf8nHkIsBKOZE08cXgwIePCTuGsp8KNxUWzB
+0pCQA+ymObKH/w/toqq/L3oYHqyKvup5UBsxrA+FvZ3wdphaWKAOQi0pbbgXUZba
+W6M0hq3YIb2ijWdeQadFHHl1QbKabKZeNMQcWkoKbtLDB4YWGtDROAZrrmkwFaDa
+py2doal8AxSf1hDFfjtCRt+KOnqG0Dg+BBSpT6RCB95dU6y8wEfWdb8jExDXjKpi
+hrXMaDslbNGtbJQHO36F6XvFeuhPUTVLAgMBAAGjgZIwgY8wKQYDVR0OBCIEID7D
+2583yNghzZxdFFIcHYW+lII7b2ygaHkEXyt6YTMqMBEGA1UdIAQKMAgwBgYEVR0g
+ADAOBgNVHQ8BAf8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB/wIBADArBgNVHSMEJDAi
+gCAK+NqGCcYEw2MbzPyryjW2vKp6ZOUX7VUGVIfkojLcyTANBgkqhkiG9w0BAQsF
+AAOCAYEAK+18Fn0bzzyb9HwC7KNuynPTvifjgvedFL1447ZqxolK6JrYwSu0/hF+
+dR/euxrJcGuTImsnD6cdJh0PP9KrSh6byXFVrSgjW7Of6dEIj7FFQRyvrBYcpMk9
+3bS1IG+Mu47soKD3824Ssvl1bRV3+ZG5rsU5952tBqQj+7NpCgTJGyucSSmgH2Qb
+bjMp2IkZY33vs3hVt5mw8xQdoPz9Ow4qoL8GkuA7ICHvO4VAAbKeU+5QSvxpD8nM
+hLj6gLF1cRHSflxeLgwvKY+4djUJbGhopotl2LH2/7dBsoZd46ObriVvfXyv49ti
+mf7Y+EhDIkHfEN54eyLsJSvuRFE3MGck4swg7UDLuRKdPf7LYlS5mQZK7+5x7asS
+dvJitEQ5JrnJZyAjTtHNvSmdze7QCPrKIe+aJuKvZD9EwD5p/CwqxkBybXdazEn0
+qpbJs2EEnB7ObTaLvsVtvAcwHr/E+1YTS3S39btRT3i4XZeeQiNPLocxgP8oIWsk
+KsmzHrxh
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFHzCCA4egAwIBAgICAicwDQYJKoZIhvcNAQELBQAwgYcxCjAIBgNVBAUTATIx
+EDAOBgNVBAMMB0NTQ0EgTkwxNzA1BgNVBAsMLk1pbmlzdHJ5IG9mIHRoZSBJbnRl
+cmlvciBhbmQgS2luZ2RvbSBSZWxhdGlvbnMxITAfBgNVBAoMGFN0YXRlIG9mIHRo
+ZSBOZXRoZXJsYW5kczELMAkGA1UEBhMCTkwwHhcNMTEwOTEzMTQyODU3WhcNMTcw
+ODMwMDAwMDAwWjCBhzEKMAgGA1UEBRMBMzEQMA4GA1UEAwwHQ1NDQSBOTDE3MDUG
+A1UECwwuTWluaXN0cnkgb2YgdGhlIEludGVyaW9yIGFuZCBLaW5nZG9tIFJlbGF0
+aW9uczEhMB8GA1UECgwYU3RhdGUgb2YgdGhlIE5ldGhlcmxhbmRzMQswCQYDVQQG
+EwJOTDCCAaIwDQYJKoZIhvcNAQEBBQADggGPADCCAYoCggGBAKwRlCLLdLQCMCo0
+4qQYXXY0lbfaGtWOq8FdwAXi5ztrpkeLFrnXoVSAfh7ddOkHJtfx/yXWs/mJ8j96
+wO8CMNVnqPc5HPX+G3ZPXegSJiSMoSsq5U+04IjDCyxVbTyHY/mDDwAen5QKlySP
+GEQyFaq/iaUk4fu+eE903HgHn2aQ5c3z2Bw22UaGaedzWDJKMccY0O2aaWvhEyg/
+fnzPmGBzpN0eX0GnMPGsk64iZ7iGlcEz/QEKifC+YhMzM7GO29ZGdW+ROaVLmwU4
+curgEAfxOYQ/4xXt8nOng0r5eCw9tEoYBxcvqO4vUb8lT06ZaxvKRbIzfKhnRu7g
+eGj8M+7Y07dEHXniWrDJJ3LzoT2LjE+3ehqSoskIS1EmYYlI+cTyhUxuQXvfQo0n
+8eyc55uR6fFp1XfuZ61RvXenvwTEqklRQNmlcWnZSytIYbZCiHzAcKo0emIu0XuP
+k1roRwdpWsB1WjnhLhT96k+WK067kbsRWKF65OcpsnxM7aEsHwIDAQABo4GSMIGP
+MCkGA1UdDgQiBCA8rrtYmIJay0L9trNJkcyJauvUHsuMPek9QjC3yRoydzARBgNV
+HSAECjAIMAYGBFUdIAAwDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYBAf8C
+AQAwKwYDVR0jBCQwIoAgPsPbnzfI2CHNnF0UUhwdhb6UgjtvbKBoeQRfK3phMyow
+DQYJKoZIhvcNAQELBQADggGBAJ8KVcP/b/PMD367GOvr1mQ6RacQ6kN61Enk9Le3
+iUsE8OEcv2xt0OCoLbCZ6CuZhz/ExqipQC5bpODW/HuK173Mrqjvl9/XnhZePYjk
+ze9Lk/rsyEurlEBONW6cUVi0jBo+zB4JMavU/bQ324JdXS3cl3aGkboG41cnjh9g
+l7bEz7Rhddsycsp86qJv+V2jlOPUNNl6DaXSWe1lYiClyCn0hHSsDX/ZphfpP97d
+cz9/wyymBQTakweRh1ZATIc4hBGksPkl4ZbEDQ03kA7zm7Fl/t6jS3A3V2BMHG8D
+FFP5AwtBDgCcnZlj9mZtWShu+j6H9AYEfzYshQTHuXM6XFzlIZ5h8uq8w3lCLrRX
+gSF2H3XPbZdpRjuXPKNHn1+oept3krdkzbACU0WRaA8fgnHrbHoLr4RlWDkSAn6A
+d3tjd5bHrtaVJwMqiHcxFpTZovCaygrqJqbl8BIjZXS40HZ7VmzL2JsaqQf75NpD
+gyxTSNhubcF1cVxdUYYN2yxCiA==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFnDCCA4SgAwIBAgIPKMMpnooSqcZuzoyq3mq9MA0GCSqGSIb3DQEBCwUAMGcx
+CzAJBgNVBAYTAkVTMSgwJgYDVQQKDB9ESVJFQ0NJT04gR0VORVJBTCBERSBMQSBQ
+T0xJQ0lBMRIwEAYDVQQLDAlQQVNBUE9SVEUxGjAYBgNVBAMMEUFDIFJBSVogUEFT
+QVBPUlRFMB4XDTA2MDcyMDExMTQyOFoXDTIxMTAyMDEzMTUzMVowZzELMAkGA1UE
+BhMCRVMxKDAmBgNVBAoMH0RJUkVDQ0lPTiBHRU5FUkFMIERFIExBIFBPTElDSUEx
+EjAQBgNVBAsMCVBBU0FQT1JURTEaMBgGA1UEAwwRQUMgUkFJWiBQQVNBUE9SVEUw
+ggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCAAWxsOC3Egy7GH6U5sMgf
+7eQLgxrKGUiVHaNpW6T6HC1r43tnUQqwpXHYEpL+Avj3CLQE0+75hGEA3vWGMalr
+z+RzUezydAS5HTVPppuBxY9B7odmWK9O8hTT4K7rEbbWYqy+lj+V9a/Q3IUKI+DV
+ZEvX24EaaFlVKKniaJBi7JLGqklpPddJJz8ZGnh/M4ECcPMc4JI7KywpSh81t7p9
+sDzHgYXjFF3Ji4zn2Ly2P15aaCg/bebN3j/fo1r1OYkLIjWlgn2TDYsDqyWmWY4u
+ssa5F2J8dcR065lYl+UWv32iqWEtk32in4XRv7Rj73ZkSEgRDZDlzByx4sIvPmUq
+ezLx2s3RXc+cBTsTcudtZEyPl2gLWNgLIQqzo56R3q6LJ5gjM4OgwpYFW4zZSbkb
+HQqtKqx3/L7KQRNWg4cygMOhNvk6MOkSEcvq/UHnKjLs+LgOImne/Dhn/+nYzZzj
+rfkRwWli5hzcSVLqmpVvpIKTNcS+0Wyu+YQiDfcd2SXNPDn8qocqqFaTDGkKcK4j
+LWWC1G/NN28e4tqm/h7iCu1klGQQ7pnr9O/MNUSguXOLY/lNhDWGRU6xhujbuDam
+sKMf1NPoiQpdD2ePhNpUkg6gx9yLZYqUeTSeBN5FIODfbrzaqov5UyAhbrFtzFiN
+D9dn+NH8x/dvrsVWTOnoLwIDAQABo0UwQzASBgNVHRMBAf8ECDAGAQH/AgEAMA4G
+A1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUncxFdritbypKhygDL/NAWPR0yT4wDQYJ
+KoZIhvcNAQELBQADggIBAExvaGpHfl/GOZQAayh2jxIlVzSWO0qnlPyqIKEZWlFT
+TOZrSFcc2YJQNDvtqIzE0yKay/YD2H1nsuGGEl9cxAAK9R3j3PHURmSL0Y7K6CLC
+J4NFA208Cii2PNHCC3ss/wbcUqbQtcOrSuBUIhUEK6PtEwOd6fft6vqs3JEiDim/
+BceVEgO0CFxwJDgBYtP/ELm2FqL2ZEC9qcwDd/Ahbbz41gayMAbSar8KD0JOtzkm
+jWJOdSWAoJl91BrqKo90MOt65iLWmcRRAjna0RDqI35AbK1CBU0cbM4B+XQxi5Wx
+dBr4jjwXNSQpPAk/q+f7SFBNMdgGTpxQJlmrPkqRVCgzwcviGZy6ggH/5u3H23Qt
+mFYLoxClKSYOcU8UDWvbN99RlYRoOeDRrNo79bXpHxqn3pHwGVMOYWLWLtdRRozZ
+H9UuVdQ9vOK6jeL6lmMVpPiIaWzd8y30WVDLGWOtoARWLnfDcQG2EKOxYRy0fDte
+8PMxWnj6w6pxj+YqGPusezaYOB1zL2TmpmFZ2af/hvkuwAtMSnhO+r/PMjNUPJZH
+ewv++07JDx9cusamE/kMocsywTID8eqduf3GOIE7SdskYpVWhaNjaWdZ8YFWn6Sd
+m1beXKLAaIrOIMtqMdLfp5bH6DxpVxWQC6QRk+1ckGXL4UmqUVQRFcTJxtuBejTu
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFnzCCBAegAwIBAgICAy0wDQYJKoZIhvcNAQELBQAwgYcxCjAIBgNVBAUTATMx
+EDAOBgNVBAMMB0NTQ0EgTkwxNzA1BgNVBAsMLk1pbmlzdHJ5IG9mIHRoZSBJbnRl
+cmlvciBhbmQgS2luZ2RvbSBSZWxhdGlvbnMxITAfBgNVBAoMGFN0YXRlIG9mIHRo
+ZSBOZXRoZXJsYW5kczELMAkGA1UEBhMCTkwwHhcNMTQwMjIxMTU1MzM5WhcNMTkw
+OTMwMDAwMDAwWjCBhzEKMAgGA1UEBRMBNDEQMA4GA1UEAwwHQ1NDQSBOTDE3MDUG
+A1UECwwuTWluaXN0cnkgb2YgdGhlIEludGVyaW9yIGFuZCBLaW5nZG9tIFJlbGF0
+aW9uczEhMB8GA1UECgwYU3RhdGUgb2YgdGhlIE5ldGhlcmxhbmRzMQswCQYDVQQG
+EwJOTDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAOgOIoah4mu0doKD
+E9QFb8XEnhrA3uzzy4llbGUKdICRfJcnl9W48gu+x0Crhul3MCVc7DUqyeuDUBUT
+mFZvdY814ybX5GGKYmMsRFirJBDkEWY/YEwlXZN2Np2Qnqwka3n56d/EcDToEPzq
+Q9eqp9oEQb6jeRGbOHd1+AekVryh/xGbht4OrjP94J7abpBDOUDspfGmzUdNZhk8
+ZgZ/WUstFlTOR+BEaU72pbUb54lJBDUhBy4UkBC2+VukNKwG6Cgi28lckDuA8WTb
+mRsCia12/8f4oVMXRG6uo6BjDqOTHUT2hBrNu9+ukSruIe8MdfUfVqB8l7oqFIZc
+o+JvY9wvn3XZV+ykQmrG9gv+1hgxTY9pXQpDN3L9/YHkkGrCC9X9IqdobGsp1Cg4
+VU6tTf4U2I2+jNWit3vbY320vFLOgADSo+pPgMtW7DMRLku4nET00ocZOX4IpNxj
+hYKrNwiST0OhbAofW2stnTBkIcp1L8J1wB61DA2KZ4wGE2Ey1sQlvqxUQWz4ogE/
+XtMvZtb2v5tgl1rqu7qB75d1UDrM7KsrHbRPUxI3Zet1H8sviEnzCyIA5AwtS3vg
+NMQ03jodJYZMFS7ysKcIL9XpoM5yhtzC/f9DDTVHo84dwvz9tLUOj4suxBeRIN1b
+BcOyYtHe8gwDKZblggXrB1V+fY9NAgMBAAGjgZIwgY8wKQYDVR0OBCIEIEe7uBvw
+w5hAlqz38+3vklfep3U0/lbeDYDMfJOAX0JBMBEGA1UdIAQKMAgwBgYEVR0gADAO
+BgNVHQ8BAf8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB/wIBADArBgNVHSMEJDAigCA8
+rrtYmIJay0L9trNJkcyJauvUHsuMPek9QjC3yRoydzANBgkqhkiG9w0BAQsFAAOC
+AYEADx+lKf1SqkmVtHGI9JZwHo5ZAWy1/wOVgs8nHItJNBCB7bJ3zWcPflw2hxJD
+8P/UAu9AlSEEYrBXYNFz4Xe65em+lk3Xfbgt3rtuJESDgALkB2pdrhW7O5jB4VhV
+JsDdi/Wuhs4N3UXJdiLHByn4nN/moe+YoZs1vFo3d+T6S18rxvdUyq3bbzj9AtI/
+Bl3Wv6MGklFBtnnhFFL9/wxPTYy87BIXPLTR9LatFV1e0/4nT3CubORciGkrVDkP
+DcElE7IpfeHQtRD8jdtS42LAFotKYox8URHEtIFs05kob0wDp0Bp1b0BkN/KBGBE
+w6Trz9ZhFhT9xmzi7SMSC26nrteC/TMHy46LSbdc3V5rwmQeAOvivGZtri3SwvRZ
+cK658jzPmko+Urk0HCz/x5Mvo5qKzOMEtGd+B/y4Ifz6TxFwVNLW++adZse/V6RP
+FTkE9glBTv0SkMh17Fg7HP667iWyaNoBlSI8P892+OQWQYU6jdIH5t+4YmneDZOt
+bBLk
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFszCCA5ugAwIBAgIERDS8RTANBgkqhkiG9w0BAQsFADBQMQswCQYDVQQGEwJT
+RzEhMB8GA1UEChMYTWluaXN0cnkgb2YgSG9tZSBBZmZhaXJzMR4wHAYDVQQLExVT
+aW5nYXBvcmUgUGFzc3BvcnQgQ0EwHhcNMDYwNDA2MDYyOTMxWhcNMjEwNDA2MDY1
+OTMxWjBQMQswCQYDVQQGEwJTRzEhMB8GA1UEChMYTWluaXN0cnkgb2YgSG9tZSBB
+ZmZhaXJzMR4wHAYDVQQLExVTaW5nYXBvcmUgUGFzc3BvcnQgQ0EwggIiMA0GCSqG
+SIb3DQEBAQUAA4ICDwAwggIKAoICAQCm9kSGfbxZ6atkhOldtwBWpMJcz99C2ma5
+J7PLPAfrTy8tzZJoJoXOYqGcdtmyN432HRasaAiNdobaernrrh7mjBdQzWD7ZVUU
+5ER+NpqhB5mzsFWnSgZAQD/c4ID3Jc1k1d4mkBokQZre0LzCYhlmDSMRbL/Rh8AG
+ka4XhzpyoM6Ckhaj9MgzF1SWPb2bALb/FIzUlLsiihpASd52G8mTsvdpHSCtX+12
+7mUib/alqcCqgJpjkiy397Pq8h32s7QixiU+hD4zhIstmdL+tz/vVymhy0Qr2tZ6
+WT2YKNU4xcAIeg+RlLGvYE7JkO/INT8e6bYqsZ6l9+cYsvQBzOUy2tKdfpanfY0P
+F4+Rz5bNAlwTnhRU4LtKEWmCe3hkluS8MmvaUQKy1aNdn5x4gljYkoZJ/2+m61If
+PRSpS9c+wTxdOPYLgGGAg+dn/cC0btNNcdzCqbkOHXuBqAorh9XV/lbfW09LEpdw
+Tq9kIhatbY4jMqOnq7dCoUZre0HF5l1uxRkFRceSakFQvQcjmlK+AL5TdYPOhXyp
+LYEy6yhaSGQ0SPf7Vppgg7ePzqRWDIlcbaxFkccDZf4B1knV/N0dxz1syNsjyIUy
+PoJtr/95inm+ZrCuvV2hFxEIZZtgYUtVccj71bAku2wYzTwGVP7eIQj6idMH88ww
+jzskQvVKSwIDAQABo4GUMIGRMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAG
+AQH/AgEAMCsGA1UdEAQkMCKADzIwMDYwNDA2MDYyOTMxWoEPMjAxMTEwMjQxMTU5
+MzFaMB8GA1UdIwQYMBaAFNdXV3z5dWPTsRo+Uc5MV1cK7c+MMB0GA1UdDgQWBBTX
+V1d8+XVj07EaPlHOTFdXCu3PjDANBgkqhkiG9w0BAQsFAAOCAgEASWDn6ASyJ503
+sIZXmB64YlgrH45tq1lPUj+9zHI05p2MgcWjchLl/z6oTB8U2RH4RrLLZJkVxlaN
+KTYu4XK+FZD001dqGUhfvACBjBHK3LfcPejvf6cYdpwt/ujCADqUSZVd8JSp5sfO
+jqLkmfnaXvzdj6bHLwYAysY9qpoqWKEA0dJcc2qhWuZ8tvZovp0MnL+JNSl1JT1P
+HrHJKeU84uNY7DRf+3QApvP+fsqoNv2aJNzx1pWiQdclGQ9TXlJ4uNQRe3U51DeZ
+BpKVrxJ5dxCAXDNw0ANSgvFNeMp4oX5v8XoKgx2y2HbzcPwBqMuShOYyzPAgl+uy
+KI9z6GPqJI/13mXcItBNWoaMe1NboLqneZTnif06IQoSimLxRLas5I3KNobfqvSC
+4eEeUFjaDOlI4st1JI0XTzL3/jzhw5KryXf5tnbrytF0LE3rYQw7Zwp53PinSbMF
+tBDiuKhskXcYhOTZDtFYguRpNoOyogj93XyimMojCg/yCqa3rB2CwxAik+lCvk3T
+pDw3keMm3mWVCQculgEzEsKsCCr6zgJ0OWpntD1yH4BDF6GXPX87h6TqccMO10MQ
+qDn4Mes4PnV6BMVYoPKoPavMw9wv9D4Rv5XBzrnaabpGnWgjX7/CLf2osopsWFcf
+aeSSIpx3yEI79FNUFS+/h9Wz3TZpR74=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+dBZvywbuWJK71w==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGpzCCBI+gAwIBAgIBBTANBgkqhkiG9w0BAQsFADCB1jELMAkGA1UEBhMCVUEx
+DTALBgNVBAcMBEt5aXYxITAfBgNVBAkMGDM4LTQ0LCBEZWh0aWFyaXZza2Egc3Ry
+LjEOMAwGA1UEEQwFMDQxMTkxRDBCBgNVBAoMO1NFICJQb2x5Z3JhcGggY29tYmlu
+ZSAiVUtSQUlOQSIgZm9yIHNlY3VyaXRpZXNgIHByb2R1Y3Rpb24iMSQwIgYDVQQD
+DBtQb2x5Z3JhcGggY29tYmluZSAiVUtSQUlOQSIxGTAXBgNVBAUTEFVBLTE2Mjg2
+NDQxLTAwMDEwHhcNMTQxMjMwMTQxOTUzWhcNMTkxMjI5MTQxOTUzWjCB1jELMAkG
+A1UEBhMCVUExDTALBgNVBAcMBEt5aXYxITAfBgNVBAkMGDM4LTQ0LCBEZWh0aWFy
+aXZza2Egc3RyLjEOMAwGA1UEEQwFMDQxMTkxRDBCBgNVBAoMO1NFICJQb2x5Z3Jh
+cGggY29tYmluZSAiVUtSQUlOQSIgZm9yIHNlY3VyaXRpZXNgIHByb2R1Y3Rpb24i
+MSQwIgYDVQQDDBtQb2x5Z3JhcGggY29tYmluZSAiVUtSQUlOQSIxGTAXBgNVBAUT
+EFVBLTE2Mjg2NDQxLTAwMDEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC
+AQC0Yg6AalLDpURf2524vTYZRM8Ja/nh++RNo795WMaljLBedZNhhonImTIjw9Le
+Cjr0qmF2VCz9QHcAIO/zZlw6dJN9TJxJEKZi1O3PPKv3W8CsVugdUGq8LTThDFnY
+gIwWpwmPstWKvF6Gd+qOOWxA28OJVwZkskQmwCnKHZZXTR8Z4GWMv/3UFZc7ADiq
+zXvrS0P9oDoMnsQ/XBqVxU9HsmlWiP/yyBMlxUPrr5UaT5StSERt2SkOlarWMjxh
+ZlQo421mh1a9D85IqjwshkSt0i8pAkXdkTAfaymp8d0Pv1FErZlilZr/8iPGECD5
+tJA+Hrw1lRx66AOWjlKI4FoXqA1lgSWPA4r5sYOhHvBEeEPfg7tk7i0Gsd4axAxU
+eJoCoxzOEgeF8VtzFfDGlrp5l2Yz/l+hP05Ghir7iyw5j+K24ooK0xj0Qu9Cszd/
+HqU6K8+NJaXTKVa1K6G/rS7zoN1hZCrMs9vXsEMQaiAiAuHyKQ11+fy2tl/S32Mb
+MpyiTc9VQ84mIG/ghhr93lkMKIsmaXt85CLA9p3bZoRGE7vuQUS9fjvmir1S+qYN
+iI6xUQOyP/Kn1zrdegRcJ+Xsbc9AYQoUvoFhngW3SqQfF81kdEa5cM0ibJG8gnrK
+UWudB+coHaDWIgHQov69mW22gP/9jREjrq4OvsFzto32iwIDAQABo34wfDApBgNV
+HQ4EIgQg9QUg7CTuC6KdeKrMR5szaGZEr2wjw6ZnvHcwzjLLPaEwKwYDVR0jBCQw
+IoAg9QUg7CTuC6KdeKrMR5szaGZEr2wjw6ZnvHcwzjLLPaEwDgYDVR0PAQH/BAQD
+AgEGMBIGA1UdEwEB/wQIMAYBAQECAQAwDQYJKoZIhvcNAQELBQADggIBAJD707ww
+xjpjGFvwxluQNrkTLx9rAZybqD9K9OegHBkErsiLYw8+Nys9NFfwQnIOTcp8QagG
+1FivA+tgIcvkv6LnwO1hNG3awQAX1DIXrBI3Ly2JWGkE+WfzbP56whI3C395yYY6
+91QjaLZ1ouKf6Kgb+O5NR99ojChmLRDBRbtO1eDkWNVWGZ3BQDGjkP4QZh2PxaiO
+Bt4mxHTALiu2W9Y1gZa90hNseSmReYpVfVOzgwd7yJXFZzv/j6OHuiBmqyr/yPCx
+yDsnTnX72c41S5mmNpYqDIBEwFIBwU7Z7EgMjvXtLPQQpWqjWWWCgVN4rH0h4bTG
+fwjsf4BSbRZon8U2w6+8efU9m8DcpPiqg20Udo91vDdQ8V4bNiFGSexAIIrmx/yR
+YKeD3toRZfF/WoMfOxIPFWz0l3fMj+aOriALdirbPo9C+DnPq8LaskNFWIE+Xtde
+vOa/YsVzFP8K+4ZlyB+ftlmAFdWGtnyFXWetBRyaC4O5/KqYISM0RWOUe8VxdKhM
+O5+vwqHT0EBMdXIaIDOKzoRboxG2QZTumXwioOGnIazqtA2SqbXeV2gm1i77TZTy
+cJYzKBL3MTifMYZISe85dDJCs2ifhAGqa5RerOpACTsBo0KRmtWLY55oqH2mkusN
+FFW6sQoWo1vGEx+P96vgRF9vsAywYd8kv22b
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIG+zCCBOOgAwIBAgICB9QwDQYJKoZIhvcNAQENBQAwgYkxKzApBgNVBAoTIk9S
+RFJFIFNPVVZFUkFJTiBNSUxJVEFJUkUgREUgTUFMVEUxMjAwBgNVBAMTKUNTQ0Eg
+LSBPUkRSRSBTT1VWRVJBSU4gTUlMSVRBSVJFIERFIE1BTFRFMRkwFwYDVQQLExBH
+UkFORCBDSEFOQ0VMSUVSMQswCQYDVQQGEwJYTzAeFw0yMTA5MDkwOTQyMzhaFw0z
+NDA5MDkwMDAwMDBaMIGJMSswKQYDVQQKEyJPUkRSRSBTT1VWRVJBSU4gTUlMSVRB
+SVJFIERFIE1BTFRFMTIwMAYDVQQDEylDU0NBIC0gT1JEUkUgU09VVkVSQUlOIE1J
+TElUQUlSRSBERSBNQUxURTEZMBcGA1UECxMQR1JBTkQgQ0hBTkNFTElFUjELMAkG
+A1UEBhMCWE8wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCXNtQuwyK5
+AWtnIGhJidqSgzR4QJvqI4FXcNAl+AWYpw2+I4en/fg2GLijIYWNnUqVjytaocUz
+PgXm97knb7tWQJM02LO9JHE6CGL4N7uG5/tqoHq+IKBe705uiyQSlHO7Y0QHxC1W
+pC0RjWJuj8uJ1hCP31PfJpNvt1KgMJkNbvq3IFP+skivRKkRv/qwCuE4CYAL4b5x
+sqpmDwZC3uDHbM0svaTStAXQRYfMfx/uNDY6hvHF8AmfK8r93NGWt8aHVyv6Ojyf
+9ariGZzskpQkzZOWXNCR4PpO4WRDLa4DmtapftlsWeuOgxDC4HrVC0PLoOY5vvi+
+LNt8leXxtcVlYujCmmCIpZyx3DqFRgXGK3EXbtjlcpjAWxxJaCZtLl4wb5jsEj/3
+FNM5y/wGk8pJKk9mJyPi5n294Wb9Yiljk0fHReLDYVN12I7fnf4z+VzP/s1WCxcU
+jI2dEKtwyVRkXRxgtQntl1stST/wvZxqIRUHzVrp7RUAWAEBUxNNPY1UCEZ1WDLH
+BSLIXxqM99B/gJeCGJIfJlKFu9+niipdYrwo/nxrsqN2lixgkc4fZwjqc1QBkWjy
+shpPNIXs6SqrU5b9RiJuRHqw/WDpMDDqT2OKuuIo7opgZiQhFGNSzy/Sg2J2NlxA
+GLcWh+0VEf07bjV9GsZj5iv8f9OiK2jS/QIDAQABo4IBaTCCAWUwDgYDVR0PAQH/
+BAQDAgEGMBIGA1UdEwEB/wQIMAYBAf8CAQAwHwYDVR0jBBgwFoAUcpNXgBPn+bF7
+xz6y0KE0tEDclTIwMAYDVR0fBCkwJzAloCOgIYYfaHR0cDovL3d3dy5vcmRlcm9m
+bWFsdGEuaW50L2NybDBPBgNVHRIESDBGgRVpbmZvQG9yZGVyb2ZtYWx0YS5pbnSk
+EDAOMQwwCgYDVQQHEwNYT02GG2h0dHA6Ly93d3cub3JkZXJvZm1hbHRhLmludDBP
+BgNVHREESDBGgRVpbmZvQG9yZGVyb2ZtYWx0YS5pbnSkEDAOMQwwCgYDVQQHEwNY
+T02GG2h0dHA6Ly93d3cub3JkZXJvZm1hbHRhLmludDArBgNVHRAEJDAigA8yMDIx
+MDkwOTA5NDIzOFqBDzIwMjQwOTA5MDAwMDAwWjAdBgNVHQ4EFgQUcpNXgBPn+bF7
+xz6y0KE0tEDclTIwDQYJKoZIhvcNAQENBQADggIBAHax+A9P1gtpUITQRHdLOllU
+WJajJ077hXWheE4wXfN7j7nv4v9WyITdHB01P3gXrCU3F3eDPJNme9vA/c4COVvi
+B3emMYlY5KX9uX0zm+yNAYlffcmXmcw44kt1NSD08+SzvLcs/m2IkSCXoXqRjJ2n
+lhrAGQayuxy/ZKZ8UTnMEjNAWC5Ek8q6b9I3tRIaukwu2LED+ts/pJ3iRbO+nPBn
+lYBLwVJrPtIyTo11uKPq6X02EIIi1uUo/xrRCG3bOl3iAkBuaKNiaiZaKdla4D9t
+yY+SRSoN7w8H4LC9p0pF+vXQRVZcFhSWPTzyT5+JxUKqs/PC610l3Hi9b6UEl1oh
+/Q5S61Zg52cz1/BIrJoCSOH9sX+u7ps2V+4W9jIr292uf7mqlzOwLgiFAPJfCWJ8
+HFKfrUDxs+ZILPUawJTOSQ0QezN96W57CFCuegUR7UhGvCVCuQJRTKnN8XamUbHa
+fxB6oNnUYZgmBS3TqvbQeJ3cnvdIHlBq9/jotxguR10yGfTyhYgE0l+SFrqQ05u8
+s73qyJGej7GXolC/8m3COj9XtKzEHbspQQvBdqsK2LBWfcP/7r4fFhOx0Z7x8kBY
+89zMQzEOY0TyYc2tt6tKSRvSESuxgKTHaydwtFL4qQY5Mt9GxpLD995qOcPBxXTT
++xLuVWQmqUY0i+cZZ8Wa
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICwTCCAmagAwIBAgICJygwCwYHKoZIzj0EAQUAMFcxCzAJBgNVBAYTAkxWMSQw
+IgYDVQQKDBtOYXRpb25hbCBTZWN1cml0eSBBdXRob3JpdHkxFDASBgNVBAMMC0NT
+Q0EgTGF0dmlhMQwwCgYDVQQFEwMwMDEwHhcNMDcxMTE3MDcwMDAwWhcNMjAwMTE3
+MDcwMDAwWjBXMQswCQYDVQQGEwJMVjEkMCIGA1UECgwbTmF0aW9uYWwgU2VjdXJp
+dHkgQXV0aG9yaXR5MRQwEgYDVQQDDAtDU0NBIExhdHZpYTEMMAoGA1UEBRMDMDAx
+MIIBMzCB7AYHKoZIzj0CATCB4AIBATAsBgcqhkjOPQEBAiEAqftX26Huqbw+ZgqQ
+nYONcm479iPVJiAoIBNIHR9uU3cwRAQgfVoJdfwsMFfu9nUwQXr/5/uAVcEm3Fxs
+6UpLRPMwtdkEICbcXGzpSktE8zC12bvXfL+VhBYpXPfhzmvM3Bj/jAe2BEEEi9Ku
+uct+V8ssS0gv/IG3r7neJ+HjvSPCOkRTvZrOMmJUfvg1w9rE/Zf4RhoUYR3JwndF
+Ey3tjlRcHVTHLwRplwIhAKn7V9uh7qm8PmYKkJ2DjXGMOXqjtWGm95AeDoKXSFan
+AgEBA0IABG4V/VJk2YqtLVcVWZwmXj//BjAglZhIcvJk7h322AfhahzeFohUf3i3
+ViTocT7+XXdPUUoJcOc+Om6Vw8byw7+jRTBDMBIGA1UdEwEB/wQIMAYBAf8CAQAw
+HQYDVR0OBBYEFI+0Vh2Bzou02mQlkjbxwZ76oYeNMA4GA1UdDwEB/wQEAwIBBjAL
+BgcqhkjOPQQBBQADSAAwRQIhAJCHjZSASEFIGcOIpSRE+6rhO4dpSib5PnJmt5Nu
+TNUxAiBuOc48xIG5HiPC4BO9ZnMKVx22PgCS1uWQoaibihkO1Q==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIC7jCCApSgAwIBAgIBAjAKBggqhkjOPQQDAjA6MQswCQYDVQQGEwJBRTEVMBMG
+A1UECgwMTU9JIE9VPUVQQVNTMRQwEgYDVQQDDAtVQUUgQ1NDQSAwMTAeFw0xMTA3
+MDMxMzMxMjdaFw0yMDA5MDExMzMxMjdaMDoxCzAJBgNVBAYTAkFFMRUwEwYDVQQK
+DAxNT0kgT1U9RVBBU1MxFDASBgNVBAMMC1VBRSBDU0NBIDAxMIIBMzCB7AYHKoZI
+zj0CATCB4AIBATAsBgcqhkjOPQEBAiEAqftX26Huqbw+ZgqQnYONcm479iPVJiAo
+IBNIHR9uU3cwRAQgfVoJdfwsMFfu9nUwQXr/5/uAVcEm3Fxs6UpLRPMwtdkEICbc
+XGzpSktE8zC12bvXfL+VhBYpXPfhzmvM3Bj/jAe2BEEEi9Kuuct+V8ssS0gv/IG3
+r7neJ+HjvSPCOkRTvZrOMmJUfvg1w9rE/Zf4RhoUYR3JwndFEy3tjlRcHVTHLwRp
+lwIhAKn7V9uh7qm8PmYKkJ2DjXGMOXqjtWGm95AeDoKXSFanAgEBA0IABDVS8QvX
+fjUi24FQ378LV4QHn0eW/G3AjVuyP+DxAZGBJ3dTAzmszHvoAroA2/rDAbZyOqwA
+WPD+NclxXKMbTLOjga4wgaswGAYDVR0gBBEwDzANBgsrBgEEAYKmDwECATAfBgNV
+HSMEGDAWgBR5a8JBcPGsX+4B32yyXiE2hS5xxDAdBgNVHQ4EFgQUeWvCQXDxrF/u
+Ad9ssl4hNoUuccQwDgYDVR0PAQH/BAQDAgEGMCsGA1UdEAQkMCKADzIwMTEwNzAz
+MTczMTI3WoEPMjAxNTA3MDMxNzMxMjdaMBIGA1UdEwEB/wQIMAYBAf8CAQAwCgYI
+KoZIzj0EAwIDSAAwRQIgJGigF4XO1FzUEuItK8zIod3o/rQylpPu7/lvM7Dwf+EC
+IQCI2EcrB/sl3oQJrz9YxcaaRB/hVlaivxBoHHGJ6lJS6g==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIC+zCCAqKgAwIBAgIBBTAKBggqhkjOPQQDAjBBMQswCQYDVQQGEwJBRTEMMAoG
+A1UECgwDTU9JMQ4wDAYDVQQLDAVFUEFTUzEUMBIGA1UEAwwLVUFFIENTQ0EgMDEw
+HhcNMTEwNzIwMDcxOTM4WhcNMjAwOTE4MDcxOTM4WjBBMQswCQYDVQQGEwJBRTEM
+MAoGA1UECgwDTU9JMQ4wDAYDVQQLDAVFUEFTUzEUMBIGA1UEAwwLVUFFIENTQ0Eg
+MDEwggEzMIHsBgcqhkjOPQIBMIHgAgEBMCwGByqGSM49AQECIQCp+1fboe6pvD5m
+CpCdg41ybjv2I9UmICggE0gdH25TdzBEBCB9Wgl1/CwwV+72dTBBev/n+4BVwSbc
+XGzpSktE8zC12QQgJtxcbOlKS0TzMLXZu9d8v5WEFilc9+HOa8zcGP+MB7YEQQSL
+0q65y35XyyxLSC/8gbevud4n4eO9I8I6RFO9ms4yYlR++DXD2sT9l/hGGhRhHcnC
+d0UTLe2OVFwdVMcvBGmXAiEAqftX26Huqbw+ZgqQnYONcYw5eqO1Yab3kB4OgpdI
+VqcCAQEDQgAEqA29DKTz22sEDYkF//U6p+0Q4XcqlxN3M9glKPeU2veHQvr3NvBf
+J86Nzh3E1gzGcI9AaYcFSvg0aKDFiz73rqOBrjCBqzAYBgNVHSAEETAPMA0GCysG
+AQQBgqYPAQIBMB8GA1UdIwQYMBaAFP9wD5mcbLcPc54m8LxIFUHHbyVYMB0GA1Ud
+DgQWBBT/cA+ZnGy3D3OeJvC8SBVBx28lWDAOBgNVHQ8BAf8EBAMCAQYwKwYDVR0Q
+BCQwIoAPMjAxMTA3MjAxMTE5MzhagQ8yMDE1MDcyMDExMTkzOFowEgYDVR0TAQH/
+BAgwBgEB/wIBADAKBggqhkjOPQQDAgNHADBEAiBiiYSZuMWYoqNw2OL9a9On3EuC
+34RUivT0aA92dAo0uAIgUQPkBWdM/Dz+0PAijw3BKv09+7Azb4QvI6P8aqeHZQ8=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDrTCCApWgAwIBAgIKGSdxithnyKB56jANBgkqhkiG9w0BAQsFADByMQswCQYD
+VQQGEwJJTjEkMCIGA1UEChMbTmF0aW9uYWwgSW5mb3JtYXRpY3MgQ2VudHJlMQ8w
+DQYDVQQLEwZTdWItQ0ExLDAqBgNVBAMTI05JQyBzdWItQ0EgZm9yIGVQYXNzcG9y
+dC1JbmRpYSAyMDExMB4XDTExMDgwODExMDk1MVoXDTIxMDgwNzExMDk1MVowcjEL
+MAkGA1UEBhMCSU4xJDAiBgNVBAoTG05hdGlvbmFsIEluZm9ybWF0aWNzIENlbnRy
+ZTEPMA0GA1UECxMGU3ViLUNBMSwwKgYDVQQDEyNOSUMgc3ViLUNBIGZvciBlUGFz
+c3BvcnQtSW5kaWEgMjAxMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
+ANJndEn2XbwGN+VUFPvmoNuasd1rbjp9iTqlax6/ovvlbkxv04WigX/fAbbPRpd7
+T6qHABdOUhtdVgonMv1Z5tTR6JwCbC8ccfWCSe0ZsEEnvb6ontGf8onnScFVqY3m
+awutbeU74JFby+IP2aEceOfIEyTIVQ1Cc4TDi/sJIkykuvjk+6JJxidw7iGgRHpZ
+9bJbGxTxHwA9OX8/4FOdn6grOvB9iILEV+isVle0Wae+t/svvEpNhMx2scB5FhhJ
+NC2iT98axdLWGJBzhA9fhD4Fnwz4bLOzAQcTppyV2XQdawskh251oVES7DkVfHoP
+RJPcpZ6XOetuYehafe9utBkCAwEAAaNFMEMwDgYDVR0PAQH/BAQDAgEGMBIGA1Ud
+EwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFGtavbR5qFhjKY/4fNJckoORmWeZMA0G
+CSqGSIb3DQEBCwUAA4IBAQB+8HO+jJFOVpm7ZYyn1u874Cc2THInbZGyjeYX+SPO
+581Ovx/TFXv0uSvnKssOaAjQUMpCgOir1zW55Lu5NpuT7NDovlvPCE4aVAtIeFnG
+SkPXQ07AucABUHs3mBdq/45bD/0vdb9xyiODFNYtJr77GWb4pAd/9oBXm7Kbra33
+G8wOAr16TTzrJQVtIoNsDgyndV+gfQ2rd2OvZWGTnsO6yjS0IyDbThbH2aAjnF5m
+Y1Qp0R6tKqPZZxTbzzb965vjZCziniTUPYfB+EPXlA/3UgcrONurqrW7q++uZTpz
+IZ1yRM5XybhXjinagl9zFbKrjeRH/B0Z/JTQzsK0dq82
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDtjCCAp6gAwIBAgIBHTANBgkqhkiG9w0BAQUFADB7MQswCQYDVQQGEwJHRTEQ
+MA4GA1UEBxMHVGJpbGlzaTEnMCUGA1UEChMeTWluaXN0cnkgb2YgSnVzdGljZSBv
+ZiBHZW9yZ2lhMR4wHAYDVQQLExVDaXZpbCBSZWdpc3RyeSBBZ2VuY3kxETAPBgNV
+BAMTCEdFTyBDU0NBMB4XDTEwMDQxNDAwMDAwMFoXDTIzMDcxMzIzNTk1OVowezEL
+MAkGA1UEBhMCR0UxEDAOBgNVBAcTB1RiaWxpc2kxJzAlBgNVBAoTHk1pbmlzdHJ5
+IG9mIEp1c3RpY2Ugb2YgR2VvcmdpYTEeMBwGA1UECxMVQ2l2aWwgUmVnaXN0cnkg
+QWdlbmN5MREwDwYDVQQDEwhHRU8gQ1NDQTCCASIwDQYJKoZIhvcNAQEBBQADggEP
+ADCCAQoCggEBAI/l7MPcZemqiAghuGCly77aJgnxT6z+itcl/faIxl4cXgA+Gaf6
+8rwz9fAdfV06x7fj/bamfqJTKdQGho6rpi7Dq8+3raRw7Wgid1PHa2Lsc0nJghMB
+A7iy0DoNg0vS0nCWgkZ48VkxFczCrrKNBNeeaslf4WJwTClz6iigkiP2o3RZCpp8
+lKCVAp/oVU456dTuJxutYsUGqkslcCHlrcj9N6Twe9NEOLh9np9XMVwyAhPWcSaD
+t/zjJXPxw1EXd0K6TWP1YkZuevviGnhPT+sDl17dB5U+ydOloIEDiYTh0YOsSPae
+LPpoS56vc81adxAb1QYCJATsj6S0CenvdecCAwEAAaNFMEMwHQYDVR0OBBYEFJA0
+ItwjmMV3zq6oV0LSlO46oj0iMA4GA1UdDwEB/wQEAwIABjASBgNVHRMBAf8ECDAG
+AQH/AgEAMA0GCSqGSIb3DQEBBQUAA4IBAQAufV7CsFIojKGoVnITTupDF3FXHVrA
+JaTvvg2u3sA7LuAvLlVksfOv2/OowwhYcuVJ3H1Gx27fxSqlJvmKHisRrvJVBfnI
+f26Oz3GUNNbLOvClPTfbDbJgGY5nik867gSBHCAxbmhveBT93Je+Y33RO8t1CGOj
+0wV5QyRNMfvqiSeO3Ue4yrTFwSutUcsMzEqmFjE/HV6vARX55WaFvpLar3E3BLCG
+5G1Kgoilruqh93dSIOr3/jAQ1QxYR9iPo+M17dLLCYH6eRlXi7WlUsmkSYu2ghR4
+sikGx+YdyJhF1xO6SufczJTp1CMOXnjDqu2/5auA5fmi6v6uk42BqJx0
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEpzCCAw+gAwIBAgIQRS4dUv1TgLdDX+qzX/PcbTANBgkqhkiG9w0BAQUFADBk
+MQswCQYDVQQGEwJUSDEbMBkGA1UECxMSQ291bnRyeSBTaWduaW5nIENBMRswGQYD
+VQQKExJDb3VudHJ5IFNpZ25pbmcgQ0ExGzAZBgNVBAMTEkNvdW50cnkgU2lnbmlu
+ZyBDQTAeFw0xMTA1MTIwMTI2NTNaFw0xOTA4MTIwMTM0NDlaMGQxCzAJBgNVBAYT
+AlRIMRswGQYDVQQLExJDb3VudHJ5IFNpZ25pbmcgQ0ExGzAZBgNVBAoTEkNvdW50
+cnkgU2lnbmluZyBDQTEbMBkGA1UEAxMSQ291bnRyeSBTaWduaW5nIENBMIIBoDAN
+BgkqhkiG9w0BAQEFAAOCAY0AMIIBiAKCAYEAseZKWDmIk5eqh7Kq7bZl0x/kM1dB
+04wc9QZ5XQrbHW/KnWoceTDD6QKz4PTKpcZX0Q3b8CBHWikDub6H7sZlD9VhBodp
+7I88y1Tvrz0riK+0/w2eVc3veaZwtDAN79B3e8tcKV57G8u3VUK0lpd1fGXr91OY
+tyaq1K8kmZIBDh3nI359FynwRvcOaVjb6bE6DVGmy6fNYbEhVdUbVzpurO1kPGF0
+QmkRv5NBFVlEYG0bOxTpZ+vsoAxOVmTqQwLNo/AK+5pCcH2O2UwoSk7XYvB6vJRn
+51dj7xQ2SlvEbU4micJ5cQ5vFxYN3fZfakkn6wpcucvRKlMKqFOVbjFG/6wne9SC
+hCNygKpREJqy8qmRwsntEVShA62c6+8dam05dFLhNNpecwTpPP+5y5HeXEZWzsxN
+/n6YkIXbTh37C52ESuZ3/pnz6WMVJ3vCxmEIjYowVkc4otP7Imb6dD0EsN8eih1g
+F6JH11FO5+yfKKWqAijCOyg8vQKBfnWxKYQPAgEDo1cwVTAOBgNVHQ8BAf8EBAMC
+AQYwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUXKIrx786BH2XMN4+82Ov
+ivtbxkwwEAYJKwYBBAGCNxUBBAMCAQAwDQYJKoZIhvcNAQEFBQADggGBAG0IfbV1
+okgAQHwXiSgQLBD/Np00YSsFzd1+rA3UlDhllxZFukPhaISLiz4VHf0QpxZ4j7cq
+9KeuLBRzqGELLdZJPlv8UUjtvwG4l1qDCjPv9WIh1JXfqqPdESIolpoPURYonNHP
+7zRT3MFhMgU458FfUUpC8oORIe1ojT3GM7QhCrNHwxPZ4DMwf2FJaS5pET7cu2Dh
+Y8/nBdmZcxdFT6TOfhyDkQB+ZuySADsx3s2mlfMWWstoDTDh7pbSMpxe9KYAOW/I
+7hEO3ajOWNjLMRoYwRmMzOjOgCZ3RdeOqHhsnULgPGEYvOn71FsEmWX8IS/QG+Zu
+a5ZYt7KYv86d92nMZLlxABHuAd/z8WuQaNFfcb4YAa/dR1LVQuKo4z9kcnX2fpIP
+6uDT2pjhMHBlCHFweXABxyLvHZdWZFVgN5eKF32YGYofZQmx3AP6JZwvsxOAZq5v
+aIewh0XLu8wJL+4Ar/a6BzTy0FqY/NUVr7ZxeD7AsfGDNBH8cSgxHDk3KQ==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEvzCCAyegAwIBAgIQNoSHinM/c4dJ3ZSo1/ZlvDANBgkqhkiG9w0BAQUFADB5
+MQswCQYDVQQGEwJUSDEnMCUGA1UECxMeRGVwYXJ0bWVudCBvZiBDb25zdWxhciBB
+ZmZhaXJzMSQwIgYDVQQKExtNaW5pc3RyeSBvZiBGb3JlaWduIEFmZmFpcnMxGzAZ
+BgNVBAMTEkNvdW50cnkgU2lnbmluZyBDQTAeFw0wODA1MTYwMzA0NTdaFw0xNjA3
+MTYwMzEzMjRaMHkxCzAJBgNVBAYTAlRIMScwJQYDVQQLEx5EZXBhcnRtZW50IG9m
+IENvbnN1bGFyIEFmZmFpcnMxJDAiBgNVBAoTG01pbmlzdHJ5IG9mIEZvcmVpZ24g
+QWZmYWlyczEbMBkGA1UEAxMSQ291bnRyeSBTaWduaW5nIENBMIIBoDANBgkqhkiG
+9w0BAQEFAAOCAY0AMIIBiAKCAYEA1Rv2CV3eIfjW5fxGYK8bmraJgWK94JNmf25g
+/1nO9q/OvAMnBjkwpan/pdDU0NNtTWWj7qUPG4shdf8pBPTlor2lOP1cr1Lbwt7t
+/28oiMhaUZamCj3PfXRhpeT5L5ms47f6Z2/JOwkQOs70JBY7VkbvLpptwcFdUXhy
+QyBQjy6tX/OYxEeInj7+rvikwSv6GsjA7cPEWDJNnR6/cYqI3sIvi/wh0m/tnaGH
+OdPUHqqBIBxpxijW2lEQF0kvuT3UJHbJQ8KpxyEykCWgFO6v5aSpd3Qm9+HCZU79
+uOSSkdTJwNRFVtiSmyeLO8XIYByMK6iKXwaaTK+o+yu9FJ2rwxvv6hvABcGf3isd
+C7IzYpEwaXK1ZrrARLyGBqYq/6zt9ubTvjqhLIi3l+GqSaw2F47VEyZhhwkO8eoY
+s7n/mdgJRmSE2L9oCoydtBBqIRFbFzrA/AbS7IibYmw3ogYXKgCwFUVFrDC1GV96
+EdseyrZbm3H4Ror+0EfwxJNd0o2NAgEDo0UwQzAdBgNVHQ4EFgQUHibmWPcVfw91
+FZ1Ud4o4UCNRKnAwDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYBAf8CAQAw
+DQYJKoZIhvcNAQEFBQADggGBANJovnOrPHjfwqMpk6EPowXkKYmhg4pphrGkEzlS
+4UToW9YIEojS3eOTCwg5eYFnd9rDwIsGkeNxbqsExamuTta+mEW8b33NxhgD31tU
+jlzbkOzdgyD2spQ65gLbiLBRBEIIO631O99YE96MpZw+2BPB6eeNwFjntkt5ggEf
+wKGOO95nnd1PQmEPyDwdli99AqQIGWMB+oYLczLYhaVoJdTzUc2u4vHPsqYlZZca
+D4oOrXAcaDjY2RSVCQai79CXRphpKWKKfwUbk25+YDuRajruX1kl2gDDNO9yhRiM
+3KA9J4DD8UzZ2Cnx7YpfqUBkX6e9wfsbRBYPu66oSRoQUv7xCDAbT0fLVWq/8aUC
+kzZ6BQrtxcAggJuxkjHNIep5b5aPxD4Y7BcHRQK72WdK1cMXuDO8+fX+IX3L2qKz
+pny4TmcAgodBmaEGoYR6ECgfUp0HfMAIDDxex75cXwYRDKpjG9IajTY5Axf9/oey
+JD/p/iFsTwKRpkVsBgRbMlupVA==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIE0TCCAzmgAwIBAgIQOSDc/8dEnoNBmYap0BATVDANBgkqhkiG9w0BAQUFADB5
+MQswCQYDVQQGEwJUSDEnMCUGA1UECxMeRGVwYXJ0bWVudCBvZiBDb25zdWxhciBB
+ZmZhaXJzMSQwIgYDVQQKExtNaW5pc3RyeSBvZiBGb3JlaWduIEFmZmFpcnMxGzAZ
+BgNVBAMTEkNvdW50cnkgU2lnbmluZyBDQTAeFw0wNTA1MjUwMjIwMzVaFw0xMzA3
+MjUwMjI5MzBaMHkxCzAJBgNVBAYTAlRIMScwJQYDVQQLEx5EZXBhcnRtZW50IG9m
+IENvbnN1bGFyIEFmZmFpcnMxJDAiBgNVBAoTG01pbmlzdHJ5IG9mIEZvcmVpZ24g
+QWZmYWlyczEbMBkGA1UEAxMSQ291bnRyeSBTaWduaW5nIENBMIIBoDANBgkqhkiG
+9w0BAQEFAAOCAY0AMIIBiAKCAYEA0NPBiFWTFL6Vhdktvcgez5KXLI7BvH95Cfiu
+XqWLQm/nQXcHqrSoxuGWTmnKMXXa4v44lXIKKMTt+8NcttWJtPmthd0tzTbJt4zv
+O1GuzXwYj0sOcAmX8rbeMTsEJNTH1lYdPnX642ON3nG/nJNJ7SXqxBUKYI4yoNdl
+jBh8Lgya+6jggTPC8Opje6u/aFv/IjWFo/ngwS9bCN5bij86VirsTQ6ELpeq8bGl
+q5AlgErz6baaUUFT2INCJuywFW/j0exP0J7yyH9pna7tVtCwkFijaazGjmkntICD
+tcUif0EXc82gccBFF9heqTabNm8pG6as44PVT87a1tN0JxXy8yDA7MNTw9ADV9wc
+R3+kvf5eVl1cRSjQyryhaNjngmCOy3+LChNoxvy91YQqnCxxgMrO5qBI9zDnwmct
+XFe4t8FYCUytuM1H+n8j3YXNZ1Q/FFkJ5zxZv5hye218W5KWEd4BWO9uoyiQK5qS
+z8qTn3ZEoP8XYJkNb55AA0E7iZYHAgEDo1cwVTAOBgNVHQ8BAf8EBAMCAQYwEgYD
+VR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUtR3evc70yufe3IYd6QluBrQkqo8w
+EAYJKwYBBAGCNxUBBAMCAQAwDQYJKoZIhvcNAQEFBQADggGBAGKFO5G4QyfXe33X
+0Nqtm3AV0ZVN3lOJb1s/eKFx+SVxwM3v0EXaUXAPeVjGi3HaCsY3cIKAmmZuIx77
+LHh36MVVhFqwZu0mT8bVpma7V+Fd18Z159U0k0NnYe8nJv5TB/y118wHSgPyH3oo
+ykK1WDhw59QKSa7A3o/v1cdD6S00BIt5QphixXOyfqrivc0+qfIjLBWrctdRhTlh
+qjeVfqLM8geGNX8SfA48SmTqiymzOX3BUYqYJ1et5lp3p31GBnAk8jWUEZY87trV
+8bLPFUyFro3WpaVOGaEUA4ebxhtjZf63jtY07wDMCMt3QsvoyKAFtvtmGOZ/UBBf
+cWaKPP6nu0uaqubqldO7I2/vpTWVIgEOks4KQhphssJSHA1xWb79LdyX9CcS0o8l
+3AjnYJWkjhfd1QsZ1eMmyAH5rrRi6e1DJliYaD59y9+CA97DbQYNmGiZv/2hk3eQ
+OSccIUixVIIpDMnYvyhOKhQd2MD4TdINtC+wwHKqCSxXaTMBtw==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFQzCCAyugAwIBAgIIH4D4aMvjPEIwDQYJKoZIhvcNAQEFBQAwLzESMBAGA1UE
+AwwJQ1NDQTAxMDAyMQwwCgYDVQQKDANERkExCzAJBgNVBAYTAlBIMB4XDTA5MDgx
+MDAzMDQwOFoXDTE3MTExMDAzMDQwOFowLzESMBAGA1UEAwwJQ1NDQTAxMDAyMQww
+CgYDVQQKDANERkExCzAJBgNVBAYTAlBIMIICIjANBgkqhkiG9w0BAQEFAAOCAg8A
+MIICCgKCAgEAwADoPZx/k6COF5EbD5Zp5gZelMfkocGEMSl6TaXu789XqgHTdt4j
+qpvjlQ+kITn+yQWzd22V+24fzefbvn/iwwbu2soH/9m9jG93rj5oyEgIwNyf6hg2
+QH+EsY51Mr+S/ogZdfnWUUs65q0ngTu/3KD/liHjzfr5LTse98uZp8T1AE8ac0Xh
+WA4M9Cpf9QwcdSOEVrMgtvFi4cFRe/Q8NqYX6NFjF8G8G1T8zTSx9wJeVpp2L4XX
+47iJJHjuah7dMxFJXlBImlzeD2gsLLcd9E3+5I5BcOeG48Sn3LA0TLUtlAO39uzt
+IfDZP+zgNf5dGNJ+sJf9gcXie7W0gDrIQ2C55l1oK1jB0ptubdL55A676CyXk+nQ
+WwPj9o3/86YbkKqE9S3lTdNRDTRgiCHIfqFl2E3iuCdDNVlsrB+m5MZvdAqOWGjE
+HwpVk7QJ5wiKCsx0ACh5ipLf/T0gJ938x6InJ39zneXD4H4Dq9WstZDjedE4F0bk
+SAHrQeGZubbsNyzRKLaw4wK1X3UowP4RZ0j7cRRpjE/Ttwoyh5pwZ/iL86zI+rPd
+i9ZPTaSa8hgatgxs+niMhGAAK5tydzn0TS0mIdntKJtyE7+oJCrCXtITEvwgwZcY
+ezifqzpN2ZSu6GDH9ZGHr1Rv+O2j89VcNzKoj3KSsG88adAqQ7GyWH0CAwEAAaNj
+MGEwHQYDVR0OBBYEFIwAVk5KjdXrLIgHZe1nurYyKk9oMA8GA1UdEwEB/wQFMAMB
+Af8wHwYDVR0jBBgwFoAUjABWTkqN1essiAdl7We6tjIqT2gwDgYDVR0PAQH/BAQD
+AgEGMA0GCSqGSIb3DQEBBQUAA4ICAQCdM2vcDwzeXkQ3hHPyAIzhpNHG4omH7S84
+BidgAfwGtXAccu+HvPJ1RhfFiS0htQnqwhGIgK/47H6t4oIWM9daUExzlAGk8DBn
+UlOr/Q/U5F8HmmCoHN/Y93GUCmoxzVY0ToRPDOjTaMo8iFYYPDHUtGJ8UvRwraLa
+7JxsJD8IgITAxKEk/Jz8oH0iEURbjWP6m6FT7sXsG16NODhvnpKgY1wyH+TlA+sw
+KA1PiQtzo44zDZy2zuGDVKBCrFZhdVzOxB9UCIek2AonNaeJ6mSnpOMdzu18SnAS
+XtBiVk/+yUbyVHXe4Qyg4o+CO2ZKaouFdcaXKX/YpqyREn8P5ap/TQm2Pb2aXzou
+46EUUvuTGngrvNlta+pl3GPNe6qwpkD2YeZ2UiQvwc7VGXsLnoNNwgb/d5ksqhvh
+hIrWv7aMxAbBNLB7fcdKI5VKxTAaCK/hyd6iz5B7goYp8GM4Dq+m0+wCKO42N1lf
+ZEXleHCHvYc7uWiLBbSKOgDvhmk91DFfXllDQFumtI7b3xao0/VHeQ7NpEdM88BD
+MhesG08gN2DJ6+5TXA4E4YXyzjHnqPMFJJNOXcNqhc/xw3AvrCfzLH85Wwlmkb4x
+sPfM1zRzA0jvO2iAhSAiDwdtKaiU0dN9E/kmVcEHfqX9CvKGSjAhvw5hvMLfbys0
+V4REV+oMLw==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFQzCCAyugAwIBAgIIJuJbWGqzyQQwDQYJKoZIhvcNAQEFBQAwLzESMBAGA1UE
+AwwJQ1NDQTAxMDAzMQwwCgYDVQQKDANERkExCzAJBgNVBAYTAlBIMB4XDTEyMTEx
+MjEyNDk1OVoXDTIxMDIxMjEyNDk1OVowLzESMBAGA1UEAwwJQ1NDQTAxMDAzMQww
+CgYDVQQKDANERkExCzAJBgNVBAYTAlBIMIICIjANBgkqhkiG9w0BAQEFAAOCAg8A
+MIICCgKCAgEAq39D+mMbJHO28nF0ppVhdnzOFmYvr7ItYP5Y4knkATj6pAQKoX3O
+QVXNRvIRjMBXBxRFm1jUfG2ylgC7KngheyDQ7AuVH05qEz86uJodTxbuxFXM1d5Z
+HF2j7VfAfBWqYz38DVIVWN7VLd8wBZnWrNeMr4wZIuuK6fhINPYY54Sj8mEkrrsa
+egQ06KfUclbb5KTaEt+PXwltixfd4f+iXHifS27A2B7CloA6nn3BkB+q5ksfpHWr
+xptNj0k8MhqNQKUJqo8ls7yophPfQSW1V25CyR2PPgkCHO+7a0lkWsZMJKA/j7mN
+nlgK+m6nL5WuCKWU1haG6fzg15PxVImLlHlnQcS5DzrCGvtcfAMk3hiaaUzIfjtK
+BN7a7A3y1Qxr1fJ+uO2CjHxA7a//lbHfTElKnf+1z9P3fKZZVC+BC3jJWX/9VhHg
+mx5r/DDSjuOallEF1+I3Eb70TTC1yFzNdTtVm7uKYF9dJvTceXS8+HHbUEEm5J9M
+LVJSzUx4nteGzR/uHc18A9bjZOti5IvToObyw9BXJKs+P6fXCbZcFjjkWSjvyxHC
+RqsrsV16PQLbZppZ3kit5f1OQ70nkGGeJDPcSV2MO4dbvXFq+5WVbDtRxsw5DLqG
+fIIFzNT2tsINM/VV5HMZ3K599d7x8rD0gH92FK3o0YckAmuCRh4znYECAwEAAaNj
+MGEwHQYDVR0OBBYEFHdPp1M+GW3nsxd08qyy7NQ0VCb6MA8GA1UdEwEB/wQFMAMB
+Af8wHwYDVR0jBBgwFoAUd0+nUz4ZbeezF3TyrLLs1DRUJvowDgYDVR0PAQH/BAQD
+AgEGMA0GCSqGSIb3DQEBBQUAA4ICAQCQj39YrXWx5fMi3RoEfGwpp1RXgpWwf2Nq
+PJnhtYLN4KPZgwKAbufV4+xVfgYcawpqZEe9BSOe+4zH1aIJMiLbUuLNJPfMc7Ee
+RpikQ/1hLGZ+0/LYD9NPWGX2cGFG7c2/3yLWcFyCkZ5xoPjMZ0AFN1TcCshCgpoP
+K4pgq9RFuqUYG6B6EtLVQW0WJqw5kfnhLZX8af3cY48Zb4kyLHeuQvhn7gdzq4dt
+Tylm+w486XxVYFzdsaewMo0JruHYNzPjRRqsbpZtdn+Zl3rjPGqWTDJmShqb67oG
+evV1rOG6wxJsV3jgquNULeRF45xw2rlvCaRgCbTEDjqMpjYcl4Ev1PwY/ntWT1A1
+ztyCq9azZjo34XlU5yLLIaKTU3PMPJMF9HiAO39xWjFva9+xrc/ip0vfUxrpSg19
+JtT9T+0e0Sq19Qa3s6wswJQFbzLzC18bsAWKgDCMaK2oExVdcL25RiY7COvw3dCA
+pfxtJnAQstfKUuNtJb4ayeZWyGnJ5ExSgkzgGWOvNLMPH1zk4+8gQvMEOmS4+1ad
+93JTVywfdB9Umd2uoZZ0QXfq7So3377e71nxJEz16SH0wDlYFI0Y6r+xlKBCASMp
+/jY3NKrcnYkM3o+gjPALYakqFOpmU8e09l4J+wnpgK+mGwg1THcBL9ZhTeqngajE
+vq3nkr/oew==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFSDCCA7CgAwIBAgIJALR7ODlxL1mJMA0GCSqGSIb3DQEBCwUAMIG/MQswCQYD
+VQQGEwJORzEMMAoGA1UECBMDRkNUMQ4wDAYDVQQHEwVBYnVqYTEaMBgGA1UEChMR
+TVNDIFRydXN0Z2F0ZS5jb20xJjAkBgNVBAsTHUZlZGVyYWwgR292ZXJubWVudCBv
+ZiBOaWdlcmlhMSQwIgYDVQQDExtOaWdlcmlhIENvdW50cnkgU2lnbmVyIDA3MDUx
+KDAmBgkqhkiG9w0BCQEWGWZmYXR1c2luQGltYWdldGVjaC5jb20ubmcwHhcNMDcw
+NTA2MTUxNjU1WhcNMTcwNTMxMTUxNjU1WjCBvzELMAkGA1UEBhMCTkcxDDAKBgNV
+BAgTA0ZDVDEOMAwGA1UEBxMFQWJ1amExGjAYBgNVBAoTEU1TQyBUcnVzdGdhdGUu
+Y29tMSYwJAYDVQQLEx1GZWRlcmFsIEdvdmVybm1lbnQgb2YgTmlnZXJpYTEkMCIG
+A1UEAxMbTmlnZXJpYSBDb3VudHJ5IFNpZ25lciAwNzA1MSgwJgYJKoZIhvcNAQkB
+FhlmZmF0dXNpbkBpbWFnZXRlY2guY29tLm5nMIIBojANBgkqhkiG9w0BAQEFAAOC
+AY8AMIIBigKCAYEAuZnBjPIxoeSzgmTDvboZxvLBMkZpVYOfLgC5T3/ZGl7RUMOH
+N+s55/WJ8QOJZsnIl97RLfR7qx3Y8CPNVcjP8jwpnbB3LM1oXSifhmDcguP6PBML
+PxsAKbenpeISCb1AbOq4nn0aWSpzDytoD5fssxfBQ7wZeIltbzRikThSiH5BctG/
+lYqASb6XxH5rDGnsylerdlcelhAi6LQ0+vxqKzmpnCFoXiug/MrVzq9FA8iamOqw
+ZQCYBoHlpfc2akKSi7DN7QMCV2Xc85LAxQxgdTGKa7Kp2SeVZ89VXeo/wx0FlJZk
+YeqfY9oqZSW2yC8wUshQAXyfxjDlP8tTMayEn6igrkL5E6eJiPdGUwAdLFkkexbC
+ByxDTqxOEaYHG99Vp5ieofBOXiJXRTax+CGEeJYGV1dduL8CHdAxhqlgVVIkYlRh
+0VMFMdqFeC/gD2nrpt+xMYjlYTcDddUNAk0P5gB2ae8XHcnXKHrTR3FvmniQPiMW
+Kb3QLESUyz3Jrn8dAgMBAAGjRTBDMB0GA1UdDgQWBBQEmSLDKhy1ewAHc9/SUryu
+MrLa6TASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG
+9w0BAQsFAAOCAYEAfevTZcma7EebYMlD5eL7H5Sizl7gp6m38qwKk4X6eu4B3mkd
+hhTiWfHZTwI4k2uNFLi5D8ie5l6Vur8bdT7MNca9alsGFvEikZRrgS6RDAFyJp4u
+ROJiI/ZvXHZTlo0RMC36w2VWbHS5JmuuRGfq7T7VHQgzwlzXh3icQNnyOVjiY9op
+oyVnUC+8SXIPi+0si2vXK0uV1vZNpY3djVyf9kYDRzNOObzQXlezerew0+oGDjWL
+fYLCMrcSWZYGromfCBlF5FAyz2yLzf3vTsZb5QRhKArY34Kz6xN/Ys+kv0ZiKmJt
+Ogtq0PNocuVfKmF7fsI0b8ISv9yrohCbjJJGuxT8PP0b/u6YOu9dLIKqo9CLP3qa
+5rmX6ZJFNUAvt1tHrzQpDsLQ0KS9d4eioboGyqpFhELr2crdOPo3dRDeLyB8vz0X
+DUoKWumEVVpUSGpsZuV35SVfH01ho3GVcSUp/bGcgpN+0zWZ+VKTEAQ+8JjE/wYG
+lnguQ1jhDKgtovW1
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFZTCCA02gAwIBAgIEQuV6ijANBgkqhkiG9w0BAQsFADBtMQswCQYDVQQGEwJO
+WjEiMCAGA1UECgwZR292ZXJubWVudCBvZiBOZXcgWmVhbGFuZDESMBAGA1UECwwJ
+UGFzc3BvcnRzMSYwJAYDVQQLDB1JZGVudGl0eSBTZXJ2aWNlcyBQYXNzcG9ydCBD
+QTAeFw0xODA0MTYyMjQxMTlaFw0yMTA0MTYyMzExMTlaMHIxCzAJBgNVBAYTAk5a
+MSIwIAYDVQQKDBlHb3Zlcm5tZW50IG9mIE5ldyBaZWFsYW5kMScwJQYDVQQLDB5J
+ZGVudGl0eSBhbmQgUGFzc3BvcnQgU2VydmljZXMxFjAUBgNVBAMMDVBhc3Nwb3J0
+IENTQ0EwggG1MIIBTQYHKoZIzj0CATCCAUACAQEwPAYHKoZIzj0BAQIxAP//////
+///////////////////////////////////+/////wAAAAAAAAAA/////zBkBDD/
+/////////////////////////////////////////v////8AAAAAAAAAAP////wE
+MLMxL6fiPufkmI4Fa+P4LRkYHZxu/oFBEgMUCI9QE4daxlY5jYou0Z0qhcjt0+wq
+7wRhBKqHyiK+iwU3jrHHHvMgrXRuHTtii6ebmFn3QeCCVCo4VQLyXb9VKWw6VF44
+cnYKtzYX3kqWJixvXZ6Yv5KS3Cn49B29KJoUfOnaMRO18LjACmCxzh1+gZ16Qx18
+kOoOXwIxAP///////////////////////////////8djTYH0Ny3fWBoNskiwp3rs
+7BlqzMUpcwIBAQNiAATYOcPrJhRUGUmEZ58G4mmolHmoXCSZjd8yzVKrHc4ofPPq
+5cV7zPSoGfiPaxuZd2VsDLYO2NOhDO+Bvmjr4jJv2b7THK0HZaWEq+U7kUd+/ekl
+poTLy6m2H8pud6rGbkejdTBzMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/
+BAQDAgEGMA0GB2eBCAEBBgEEAgUAMB8GA1UdIwQYMBaAFPnWyWn+l9GE7vLB1+Ug
+tmAyvj33MB0GA1UdDgQWBBQhdDY0RkTZm+HYcGKPXauewtcXJzANBgkqhkiG9w0B
+AQsFAAOCAgEABxmFSaPopNyRrECmRpYCEOg+Ug+Nx2WfAKsZpMYY/eX7qiXuOm/M
+KTG0kiU9mLmhJMtaEJyVOgWl+Cz7crfoblsAJ2ncOVdNHYAWzDZljdlXMpbUqPGA
+alKS4VAesSkqP0C1VP2CHKMvKnAUt/9sHjJu6cQ9hMlKCYTb9GKNlTZSGKNJpqhN
+ldWb6CbEOanl0rhCYR1ssdZvThEICNP02i6y/WgQA8JMDUFZPySPe5NG0CHZfzmg
+aL/xuPB3Xajg5/yI4ZbX0X9bjVuP1Cs2OxwwmE45CJymuWVs5ho30odRARBaCEqU
+IOV/vBraFafDuJvE8vcDbaEqOi1lH4ugjGWnLmn3XYvlkTyKn0OJHyguBH6Ya/Tq
+aAz3Jf4Rnlo2xA5xd9AmA6Zh6HzGt3ot9i8iPCqZAos22zLQnTurbfXBr04k9neb
+eApQ4mXNhcZMDpFTrNBZBRydsrMmMh6qNuZMFYGVAG265fVtWQq3FOPAQUTLoaAD
+rSIgTSjPZaBG1MNt8/hvtGz3wQGid4tMhuMh1Z+JvKcQbKHrDsU+c+rutMCuRtAm
+iH/SxSJe7FNARxWX6+9IUTSAxBCFHq/DvbsTg4n/6GzBEtIthNYPU9gr08X2rGTN
+VGx1mrHmPOUH4oRwk2Hsb2riiXrGdEpihanfV+wQELQpWACU2yPPW6Y=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFgTCCA2mgAwIBAgISESAfRHwtAqDNYhzCD7wFxpaeMA0GCSqGSIb3DQEBCwUA
+MDAxCzAJBgNVBAYTAlFBMQwwCgYDVQQKEwNHb3YxEzARBgNVBAMTCkNTQ0EtUUFU
+QVIwHhcNMDgwMjA3MDAwMDAwWhcNMTYwNDA2MjMwMDAwWjAwMQswCQYDVQQGEwJR
+QTEMMAoGA1UEChMDR292MRMwEQYDVQQDEwpDU0NBLVFBVEFSMIICIjANBgkqhkiG
+9w0BAQEFAAOCAg8AMIICCgKCAgEAwEJE4FBX1pdtX2sgDUYR3y9v6zjxb9kocQnO
+yiOI4tVE5cvKM2AdlX5Qqt+VNjD2DVAVgtqqJs7CgbF90Q0dBlcopNOsZx/cYn/Y
+8jMFWLYLrkQGP3qqX5U5IQNeh1SOP24TuvGZUiuo6k8sJvMmKP7mmS/pUa1364P6
+fDG9DRXK5tLvpCcprOieBZ35tb9t2Wz3kTNGqk8hwBax2NpBHRaSYkD5XH5IJxxk
+nQt0RBvLPxVBuyoZDkkzUhlnV8OWn+REvb9PtI3dG64y4NDrc2ZRcFbp/3bvysy+
+kbM0CEZyu6JrMSYxpMMPNzKU4t25KPSE1sIJ/lqkSrwyNnYFyomPvchrrwEGYLtn
+CMTtCwiMee4bkJZVdUALzePzS3Oj5DvQ64eW5+RjYQwiPPzyzz5qnLbiPhERu+Pr
+je/yEHzRKZcJR7Z3tExw7nuq7tHJTMUscm09G9J6/LWnBavtFIiBRerNJSpXlMiY
+SWvkWp/wgyKqcAVnHnDXPnNKBxJr+VvLeccxuJdmwdIWFSsS0mpZxZoKSGbf7cTk
+uDsTa4T1PBZez0iSzAhuzQvhJbybH4zhnhilKtarR1GqmuwLBSs5QPgQVPLhiVlx
+0oW5XthSUGyuc3N25VLH18Hd3JrlF3GwyTZao6mQv3rd5VIKqN6bhfGzJCOuddIi
+3S9UZr8CAwEAAaOBlDCBkTASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQE
+AwIBBjArBgNVHRAEJDAigA8yMDA4MDIwNzAwMDAwMFqBDzIwMTEwMjA3MDAwMDAw
+WjAdBgNVHQ4EFgQUkT/ymPDxXrZYjtd+vk9vId0dde8wHwYDVR0jBBgwFoAUkT/y
+mPDxXrZYjtd+vk9vId0dde8wDQYJKoZIhvcNAQELBQADggIBABLkBIrYpQ3uR/So
+IG8KObK5HA12bzT18RYDi2701AvWjhL2ViiqGlYPCjYFfwRIVltIOuYx17eUgq4u
+JdYhGnyUC6Qzf571oPa6nLca5aru2IcJO6PRZL3aPpcGSTVzAaal1p9lMMpkyFJ/
+hJ0GcITMNPvTEPwGET8gOnC9Ne3Kx0fzR3XdkHDeX+YHoGt9+nywC/aA7sm928i4
+NN6o6lWFVCbjBc6JbOpgxtrtmxoaaapl9fy0ZxsLj5lORtaMIogRAryplHvvg+BW
+UnPr/5ULZn+4GFNxA+fR3MULNBS2qa5wDGMP4pryrYRcPydL8IDHcra1IGrX9sn5
+KOdeJkzjWXh/XP/llRHgGFDPMPWZR/bnWU1Qsn9rEdll4400i8jv9jSsUB1jtDOR
+kg1XKE2d5gJuIdimqKPOcnpgayk+kZzwjmLmxCv/XFeyiUcnIYmXSdx2oDBRv3+y
+MSpw/IXDJURGj2sKoa4+WBfquq/D1H0ulw97Yo6hgY/h9aCHpS3IUQ2TUvYxuQbq
+wSNv1dYK1XyYrEGhU9+CCTwfFcEgmI1v45bxA9UZFQQXZK+nJZShLzVfjkyEFS0b
+xfjydj/NgIltYDPQ9Pcx564RFpDwg72oepRwee3wBhRA0xit4aEQymPEo2hxA4Iw
+MR8L1II3WUELx9zzvXQHE3LI2YWb
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFjjCCA8KgAwIBAgIETyfGUjBBBgkqhkiG9w0BAQowNKAPMA0GCWCGSAFlAwQC
+AQUAoRwwGgYJKoZIhvcNAQEIMA0GCWCGSAFlAwQCAQUAogMCASAwgaAxCzAJBgNV
+BAYTAk1ZMSMwIQYDVQQKDBpKYWJhdGFuIEltaWdyZXNlbiBNYWxheXNpYTELMAkG
+A1UECAwCV1AxEjAQBgNVBAcMCVB1dHJhamF5YTEpMCcGA1UECwwgQmFoYWdpYW4g
+S2VzZWxhbWF0YW4gZGFuIFBhc3BvcnQxIDAeBgNVBAMMF01hbGF5c2lhIENvdW50
+cnkgU2lnbmVyMB4XDTE0MTAxNDAzMzAzMloXDTIyMDEzMTAzMTE0MVowgaAxCzAJ
+BgNVBAYTAk1ZMSMwIQYDVQQKDBpKYWJhdGFuIEltaWdyZXNlbiBNYWxheXNpYTEL
+MAkGA1UECAwCV1AxEjAQBgNVBAcMCVB1dHJhamF5YTEpMCcGA1UECwwgQmFoYWdp
+YW4gS2VzZWxhbWF0YW4gZGFuIFBhc3BvcnQxIDAeBgNVBAMMF01hbGF5c2lhIENv
+dW50cnkgU2lnbmVyMIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEAyjTj
+0smBAi13CocOD5rY7HjvaUT7YFGHdnpInezRas0h0wy/5OLr0/Dt3ik9RAmdmdn9
+9gFtla5xbX5uIzJ6aGTFE9C0s3ajfkiJu5YI+K9y3MJbelmCgyCHHM6LsIAQkgvp
+/CNn4dOQxcsLlOGU0zWNWkJQFUKzQN+AZ1xCnQbMzrUw+pWNPV5O+VGomzhobRP0
+n5nQT7YhZgEH+UFT1nQz+1FZcydyQU+XbBt6sVu/V6Ty1TLlE5GdHJbZPT7iyIHY
+MgqqmWbbmt4FQpSmSjB5aPz9uLC/EhrkDQygrnPQ0fQ5ld3FfmYn5iFTystw4SKg
+6JYJOYl9ntml0NmTwsjfRQWHm65GJAZnySVcGlwBtkuqmqHlmdLwabNm+zkh+y+B
+M9sn0hbnt7RjRAf7P0ujCQ0zaJ3e3jKePpZlggGqxiYO6IMda4qKfq8tFRL0uMO7
+xHUwP4N0XdS8xfpzW+PjumvuFCWlLD4FwEIdbV29s9N7l6+zdoxlErD65TaFAgMB
+AAGjZjBkMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/AgEAMB8GA1Ud
+IwQYMBaAFLY081KeLtXtd3N5qFvmSl2t4PWcMB0GA1UdDgQWBBSwUH4L9jMGYpP3
+Sbk5LEssSjjS/jBBBgkqhkiG9w0BAQowNKAPMA0GCWCGSAFlAwQCAQUAoRwwGgYJ
+KoZIhvcNAQEIMA0GCWCGSAFlAwQCAQUAogMCASADggGBAJ8+j6qpGKgCvj1RhkhU
+Vlg0j/8SQmmQabKlV84guVGd4dqwV2mnQ/AiD/BaZglTrmaFL1uSogS8UpKtvHMz
+g1KXkdv9BTEGuzV4yx6NNB4gpdrFuCi+l7n2zO53RdsXL1ya8Z+voZ3V38j8FpMI
++oRxd1JSrg2KqReWrEgaHATuaC4juOfCWDHY6m5Rz4qfdVIPLcEMle12LxHcRpmb
+J5bfu1vH3YiAmkFkO5uZ15RvPCdnT67kxIgZvBkoKn+htGkCL11faNltd48p2VZy
+Ljad1+Tn5CADKFKy6Jriu2MGaWwIe0LjSvg3KjrqDb76rGsg4xvek32742rhjM7W
+qINmKTR8FXXPjWfGZedwnm67xyUIdYu4BLzkK7AwZql9Q5Pm0KokzQtNAY/euvsM
+JoYuL7HFBmpSTqzqTjtkdmASkdAQ76MTiOfCo9InU3zMOHVA4O5oUilBJ1v+7mEJ
+LT7xmjIs/E8FWN6T6gsyT9nTj3de+48Lm3hXt3x9i+x6+w==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFlTCCA32gAwIBAgISESDSyMJxONYlKcNy4iTupiEvMA0GCSqGSIb3DQEBCwUA
+MDAxCzAJBgNVBAYTAlFBMQwwCgYDVQQKDANHb3YxEzARBgNVBAMMCkNTQ0EtUUFU
+QVIwHhcNMTAxMjIyMDAwMDAwWhcNMTkwMjIyMDAwMDAwWjAwMQswCQYDVQQGEwJR
+QTEMMAoGA1UECgwDR292MRMwEQYDVQQDDApDU0NBLVFBVEFSMIICIjANBgkqhkiG
+9w0BAQEFAAOCAg8AMIICCgKCAgEAxSjCywvPfgpbe0+XnhyF5grNy7N15smc/wMX
+TxlwRjnk7reymtS9STOSkKXkZ8M1OhxeTg4iUJWDFR/arSYbJEdzydAnujGh4av+
+5RIKWZFyXfIv2rAE3u+UPrc8uFYIFovFjBGac10dAwW0C1FAbZ1WYPk/jDW+m4Z+
+/gsJ/XfKq/RRG8aQDrU3cFn88NUUXn9DOwM3DIg8VE+4rTuuN1AIFamo6+PCEyLI
++1xZrE45K1N9DHwaFKxORDf8pCtDwhPiLFxqHY7+saZLvfpghAIXVycOXp9rERn2
+ndTPGEsOtyDlVdUsEzQwa4XLqX4mKNAtE1TTUYMnh1EiDISsM0mi4l1Z4JzlIwMY
++w7cSpkK4JI/ZoO9+Ws9C8DTclHHtdRJOB+uCG2SRktrFAnKcAtzJwYBwxcI3khS
+aff+8Re8tB8sAj7M07YG0nJrOLktFIm3cygsvn6xNmaWenOg+DLz+Cb3VDYQiTm7
+G2oJu3bYkRXIuycGeB0DRd63yNtFwMq8REo0bA/OpF7Yv30Q1DqZQ/vxPVrM/l16
+5CVRar/+RGgOamHMWWNDJE/epmxapEcBU+Uc4lfXGmTBoywruZM/yJBd/x2cfBEw
+z0UNqIdasS7Q5fbCIsJrzwBzJZCDtY1+EYQDsHpoBL4XeNY2y7W/6t5cYBav/H5+
+RV4DeV8CAwEAAaOBqDCBpTASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQE
+AwIBBjASBgNVHSAECzAJMAcGBWCEegEBMCsGA1UdEAQkMCKADzIwMTAxMjIyMDAw
+MDAwWoEPMjAxMzEyMjIwMDAwMDBaMB0GA1UdDgQWBBRhtvP65ZNfu3yOGxrwX8R2
+qGuxPzAfBgNVHSMEGDAWgBRhtvP65ZNfu3yOGxrwX8R2qGuxPzANBgkqhkiG9w0B
+AQsFAAOCAgEAnX5xGLrXETo/ROlaikDxMxUHnMhDyECcjKcKpZKv8amVqbttbIqF
+Q7aw276bnp+Hxd5co80LSGlGkZ2YTwyBWdJdZ9CShv8x6mG71A6KcXSWaF3zbIAt
+DYLYXjrSHZdztmBL/prrPZY/5B1Hv1vzIvXWEtI3BATwYSBtK6PV5A2YFwgLrLOy
+0Y+sp9fuVVaKY89NxI7nB1bF3YgmynsUwj1/HZQwTt0wzoK9eYkQxPRi9E6VK43p
+NYNv5fjZlWGzN2D4MVCDqQNuJfvwE/4YjZt0j3VWuFHQaS6c1rKOHsdOoa4Te1ww
+P++OaLxN84l7NDlZQgQ70Kl++NaJAYW0zmwYekbRVOdfschLupJ74bpmfVBr1pb/
+wC8aUPfZgcV/T/gup7mTukPagQdZoSxdXUEiEfbqbUlq534awWvAT+35eTfhaRZ1
+PIGI5g2gKRO18O3USZL4NjzIjrzkfUIQQv8o8jxS1fuXasKjspsNwT6sbtd0liwR
+wRyOh6bmdPMvxbSuoGCQbUD6XIiXKDnzUucpvG/sF+H379HD/AZyZLONLNmwtJk2
+ukN1NxVDVJsq3uWD9sexR5bXl5nWwJdmcgqZn6OKu+URZOrAjPBuscLEm32ggnjm
+WE5xddY9JbtWvImxsiBjECTDYSSk+3j5ML8h5KUcksVSk0wA23tM79s=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFrTCCA5WgAwIBAgIBGjANBgkqhkiG9w0BAQUFADB4MQswCQYDVQQGEwJCRTEb
+MBkGA1UECgwSS2luZ2RvbSBvZiBCZWxnaXVtMTcwNQYDVQQLDC5GZWRlcmFsIFB1
+YmxpYyBTZXJ2aWNlIEZvcmVpZ24gQWZmYWlycyBCZWxnaXVtMRMwEQYDVQQDDApD
+U0NBUEtJX0JFMB4XDTEwMDExMzEwNTk0NloXDTIwMDQxMjEwNTk0NloweDELMAkG
+A1UEBhMCQkUxGzAZBgNVBAoMEktpbmdkb20gb2YgQmVsZ2l1bTE3MDUGA1UECwwu
+RmVkZXJhbCBQdWJsaWMgU2VydmljZSBGb3JlaWduIEFmZmFpcnMgQmVsZ2l1bTET
+MBEGA1UEAwwKQ1NDQVBLSV9CRTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC
+ggIBAK04A1xvqr/xOomryl2GT/jUrei6e32w9i3BwFE5YxTjzFviPwZR1gLRZkBD
+CQXQbT0TJ/kmQNTVheYZs5hpntHdzVYE9hZEi6derR2JQ68hs80Nbj98QM6RnV9n
+4oChu9Tg+JuOZwFxNM/ISzcnIiuwDEpx4eGiidTOiS80iLifjIrTd92v728Tsy9d
+RGgzCA6uVd9eeXwSm7JdpyFcNhTbGYjmff4Xv+hYVyA8g4W4/7m8csBMmKEipEbQ
+znBnoJo4OhB2bbr5zdbuOfjZg0nXi/6l55H87TJ/zDsFpwy20GNglkXff4B/iXom
+iAT//dQ/sCFc71+qJ9qgd+yzlJBQpcboPFsDvR+/2GV2j6NEifHe0ugRhBonxPBE
+mDFSUur5VYwmxXKFy+QI++vxTl603AiOhKbBIIDlqPTyaW6981t794+KI+4/pRGg
+Dih3CJ0fkUOg8vZwV6SJhwXq2VSKzy4yU8Vg4SUhHDG2u4YhAwFBtE3NBK5j4ygT
+G8eA9gtGBnrJqm7Z3KWM1HlC8Xx5qhIhGYq5/jPrLI6CIV+BEqLZm2l5+yN1KHw2
+4mjmut+e+Obt+Fi+UpHmQc2FrSbwM9/v1WN0wyGXrvsHpokZYNLNQfy98qb2y5eZ
+JhkfnDvgQJeNyaNCbgVLzxzVnGuxcmLNWRdrh2+cKYYyjzQHAgMBAAGjQjBAMB0G
+A1UdDgQWBBQGR8NhYH6L2czNjegdp9BCu0iAxTAPBgNVHRMBAf8EBTADAQH/MA4G
+A1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAgEAPAV+PIRBKPSyffjrOARx
+NxW1LdSB1CV2KhU5qgeH8sGOXCuTLYIuiPwCTpMDdCZ1bcLx1Ny0GSe2wbVIr8Ma
+nV54fth2UnJbe0VFcE3mPSEVrR0nTFBP5YIHmF+txrlcF5jfWQXHE7zbHSoVodnN
+NMNpeVTADEfGI1vqv4TAprvPi5HzK6wXMMdnxpTcAKErg0Bgyx7Pv8lo0Uh2rsjt
+p7SABtZtpUhxD4igxR4D5FFfMb9d6gDJEa6OFUkDr9ApgVoTcbL7aOOq0fQe3GZx
+eoz4H7SIb4KicOuFsbF1BlJ9WwWlZBhrlACt3y/C1mCCr7qaxhbmJeUNALTJVTyx
+F/nq5urWC9lbTyrt/841yOfWc1eXLe+d9YrPxfV0xwid1c7DESW9BCljVvbBrC8J
+GD+qmbGssjxp0vsYISJClhEUXMkGrKHOcis15XpHeA9hfogCW3bHOW5UxwcJN1AC
+VmwRf6jJeBYTcDLNML+Z0Q9RV+hPPL8rFbqH+qc0NDjTaF2GF686+eINloap3ClZ
+bVrq60uwoeZw77bkC9fUzvFUdBFZjODajg+5qoxI1ZIDVgE66BvjITFGSyyB7RYL
+5qMZvIjoWxr7BFHOLUgk0t6k2MSBNCPa2y23NKhMr7PuNgekCtj1LKI5Uf9ZDLDU
+34raNZJuGVyX4Ew1i+ymi/0=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFuDCCA6CgAwIBAgIBATANBgkqhkiG9w0BAQUFADBrMQswCQYDVQQGEwJMVTEk
+MCIGA1UECgwbTWluaXN0cnkgb2YgRm9yZWlnbiBBZmZhaXJzMSgwJgYDVQQDDB9H
+cmFuZC1EdWNoeSBvZiBMdXhlbWJvdXJnIENTQ0EgMQwwCgYDVQQFEwMxMDAwHhcN
+MTIxMDE1MTMzODQxWhcNMjEwMTE1MTMzODQxWjBrMQswCQYDVQQGEwJMVTEkMCIG
+A1UECgwbTWluaXN0cnkgb2YgRm9yZWlnbiBBZmZhaXJzMSgwJgYDVQQDDB9HcmFu
+ZC1EdWNoeSBvZiBMdXhlbWJvdXJnIENTQ0EgMQwwCgYDVQQFEwMxMDAwggIiMA0G
+CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDNztvO7QpywUE2ObZ1DrV2HiSmFJ9Z
+LsjsrdL0NiY2KWdboPQYntqlT1O2/OUbEPX0/zlUaMgwgCS/92SIO81e7tRjQMDG
+Ecg8AcV43zNAWEKbDIOOzUfnVF3EMKGoxPXK8Fi7ckB2q+DDorfd3vOkMORetibE
+ffoCDmBDRmWSpmzFi8NVcyMawPGaoPmgGstB52B1B3U+Gt/AAnLD/TRb6HzWhzjp
+zKxw56jMPHfYfnaPHGk4T/oRa1JyCXN5JYr2j9zQqr8tTh7/i5Y9HLwja/9bZaJE
+3NwUusB1CdamsHEeAw7X98FdwRf6ScTOfr3/QXyBzKQrdlIk8neT74bqO7QFd5tx
+eZzJwQRAryIRUs3hFHiAt3FlblGIKy9gndFtJbzN/hy3P711wD6KQwgjTcPI3VjV
+78Xt5Px/vbKgtZNWGlGKDwjoGYHM3DVxrJLuX7NLqPAJGkrRGmJKav/SgZyzPw3E
+XuyePcgkI14MaZVX949tWUvP0cYyO7X9NMCePA0mK8628+Laktl2VutolXLU7MY8
+9Cc/ivFMPndNQ/RXVhKVp5tTobOXLcNhSvuFK47dDg+2wrOMACzam3QpPd100enw
+wBRO+SkgxkXFxfcSGwWa1/f70E0+tvRKXOGBe0sMTZHPCpjcFpQPraHekCcy9ho3
+cBON56r9hapFowIDAQABo2cwZTASBgNVHRMBAf8ECDAGAQH/AgEAMBcGA1UdIAQQ
+MA4wDAYKK4ErAgECAQABADAOBgNVHQ8BAf8EBAMCAQYwEwYDVR0jBAwwCoAIT6P1
+x5vQeSIwEQYDVR0OBAoECE+j9ceb0HkiMA0GCSqGSIb3DQEBBQUAA4ICAQBVmXPI
+z5NcQ3pi28WFp+vKflbNokc0honwkgZT6824s4H+r/PuGX27BaowhHoJ9/KKfzVs
+kwKZh0/20GokyVfvLxWpYOR3o0LTwB9gzYzhyQjC3MqAdFTz6EsabgdAyjAT6PwC
+i7QI1E3m7aflXdyAOixinK+0PdhhOgX5wpkMuEFwDI94W3GZVkGF+faQaOYknaJm
+1QObsojbCAkfw0H8dKob6WhqHw6OeuX+lIcR/l9FRsR/a6jWDlz0Z4CxXXb/g6k5
+7iTtiO7eS9//bXLWZZjBQL5JWR+TD7OfjMca6/2bdfBT3CKUj9YCHzM8RrEUzN+w
+h3ZVH1hcshLKIK0OygGMWOObXbW/aapurutobYCzhPEzu863A/1KuVH9elhvkS7v
+Lvpzqb0Ktn168hLI3Do2ztc6MAgUlwa2w7x5uT0qXxRg1i73nOT9RfCepJpsPn8A
+dP7WaPR5YzD8/IWzYnFeXRmv/xMS/xeqrKVxyapqzhu+yWmIHK8hbzS/BWwUwZWq
+a5VP5lGVjrnnglpOnlRZvHgk71Gdh4mg2T5Y6FlKbFds51M+I/O6El0QYq57xyM6
+xNOS2fl66yEz2zuNXPQJhgJ6iCmTezbf0R+pNwB4Rqjsl6J9ARixy171o3dUG+BZ
+0qd70sVJhYKElpDvbgQlRGEhmj/62duiffMw+A==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFvzCCA6egAwIBAgIEQ32mlDANBgkqhkiG9w0BAQsFADBWMQswCQYDVQQGEwJT
+RzEhMB8GA1UEChMYTWluaXN0cnkgb2YgSG9tZSBBZmZhaXJzMSQwIgYDVQQLExtT
+aW5nYXBvcmUgVHJpYWwgUGFzc3BvcnQgQ0EwHhcNMDUxMTE4MDkzMjAwWhcNMjAx
+MTE4MTAwMjAwWjBWMQswCQYDVQQGEwJTRzEhMB8GA1UEChMYTWluaXN0cnkgb2Yg
+SG9tZSBBZmZhaXJzMSQwIgYDVQQLExtTaW5nYXBvcmUgVHJpYWwgUGFzc3BvcnQg
+Q0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCyib/wSS2DtWSU1eG7
+4CkC0NshXuPHWYYuGZsp94MCZruk8XeUiuXYkgXyctixRhKsk4EufZN7F17AUqOY
+7jB6IB/gtV5rgNKalSlaGrf+QW9w7K9Wurn0LBNC8vFq9GTQuKQH8kxeOVYL2kJv
+s/i8/ee0OyAVux1su2tieaOym/fV5qCbIs1+VLiXdmYbZYPtWK7NP+23+I/ndavb
+ha2u2Xn53I+X3QczW1eqLyRi/fYohvMJ1yGjDVwgMIhEgPr1PbfzPpXZ5xdBpznI
+nxnaOmjz7NZWeCZNXfwrQo+zvJ/CCaS+oUBM+KV8a3yIFWv4Isyr0lsQHRNXObTi
+HIRD7M8kX242PT+DwAXtSoZTaIVFqDfLFhhPNfVbCenv3I+shpWcB2q4jMUswWfz
+ydOxdFiCCL9+ob9Fo0Js+sOazsoMFe13tiDm9FBH2ec513otcQm0KP595wJJ/2XO
++/4ZIGevRsms2PdcAWkuOnCso2NJFSaLRtm5bcgghVjT3YazEbL1VSxalG0UByNn
+HcRgDLt18iKxH3q9Y93ZdsfCpk4ew8oUT83M886V+K2hvEDp0X4X8mRrfVYPzlH2
+e93dgyfxrzwPT1j6rs4pGp11MX1WEA+d9p+v3w4qJSrVEGcK2ZkJ4Al5bYUzAO8Y
+pUyGwUKYgQ25AiFKrqC53ejTqQIDAQABo4GUMIGRMA4GA1UdDwEB/wQEAwIBBjAS
+BgNVHRMBAf8ECDAGAQH/AgEAMCsGA1UdEAQkMCKADzIwMDUxMTE4MDkzMjAwWoEP
+MjAxMTAyMTgwMTAyMDBaMB8GA1UdIwQYMBaAFEt/gJA7zGggTqTZQwY9E0jcUlin
+MB0GA1UdDgQWBBRLf4CQO8xoIE6k2UMGPRNI3FJYpzANBgkqhkiG9w0BAQsFAAOC
+AgEAdWm05OpN35QLKWbtIMszTbCeXDOoBxgDMmVMIimgePT97MKBqot1nmDB71tL
+bOUPvTjyzGsIYDFYeMkbTs0EZ/T6MxiZknbjb08zpqoP5ft7LCugPhUcRljf3Nzg
+fUtTvKtfXTI5cOjdEs/Bvj3EGcVMF1BDQsFDIabA9flpSTOAxj1xPP33aCAfcydT
+2EesyZQsHlsN+Jg5eB+u6zylUgoYUeeNnf4oOyp9ZnVQ3Oo5Z5LGh/5NftzxumGS
+j0LosNz1L/qBs5ExYR5Bhs2VJiButO9upWhiilstEzajyt0QuPJgTW0b21tKRASn
+iCUwGC5iC+yEytujMpZdF/tKvASMYLrSXgsTeUAfRdMwrANT5ORcmQ6jwva30Vt6
+MGo6o0I/lS60pszCIfgKzOHv5Vx7BB6/oi6NeM6Lbb/UDlXPpIodM2I7VIJiO4ap
+JYhOKrxzQd1e06s5FafwyJQk6OV3p+vDhRqb136YLc+Q3WxNyxKm5mhtJVgykJTi
+Sm2GJCzdDFEFqELYC1SGOZxeYkrVFfKBfu167AKPwoLzrpj1jlZUYvO77xNR4Ig2
+tRySrsNd9zsjHUZPC7keBmUcg38/GUSGO9bsYtxlNCKjckuoPL1/xhh673Vn7twg
+voobt3WscVQWB6vqNMipSePkULem2Xv/rLwrzrQ6NhJPSB0=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIF7TCCA9WgAwIBAgIBAzANBgkqhkiG9w0BAQsFADCBhTELMAkGA1UEBhMCQ0kx
+MTAvBgNVBAoMKENPVEUgRCdJVk9JUkUgLSBNSU5JU1RFUkUgREUgTCdJTlRFUklF
+VVIxMTAvBgNVBAMMKENTQ0EgMjAwODAwMSBDT1RFIEQnSVZPSVJFIC0gSVZPUlkg
+Q09BU1QxEDAOBgNVBAUTBzIwMDgwMDEwHhcNMDgwNzAzMDAwMDAwWhcNMjExMTAy
+MjM1OTU5WjCBhTELMAkGA1UEBhMCQ0kxMTAvBgNVBAoMKENPVEUgRCdJVk9JUkUg
+LSBNSU5JU1RFUkUgREUgTCdJTlRFUklFVVIxMTAvBgNVBAMMKENTQ0EgMjAwODAw
+MSBDT1RFIEQnSVZPSVJFIC0gSVZPUlkgQ09BU1QxEDAOBgNVBAUTBzIwMDgwMDEw
+ggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDV/xTArKQYQtNr1KoAfXLT
+9ZKg3U0BJ2uk7cvuxes3vltSxkbf/KQNILJYvhUe9IRKjW9u7ztzaxcuKBhbELw9
+xOGEvIy8ERNuG9F8TE1HYb3WDN5Nww8CkXi2lUPcYu+rblhUT7fUd4glqVYJ526G
+xeJX5txK9Rh6TnYc6Oh3Qilz3a/GOBb/tY2UvKElJ4kOKg83jxxl7rNrpGhzZ8Ax
+fB6mCNw7noKvqWml4xBVExismE4dO6HKjYPUPhWWjTdLDQGAnHUztu8PemwwSnbc
+ltNPy4T7vIGDAHyovdluG94wxJV4Pg6b8ZykE+zxOcpQWshDk/ODK9Y20+xxdoCc
+MmyHLKqyH/e7LFDERVnyfNH30bxkaXZXxMyG7TsQ3ZnwsO451jRupMqNW/PTZTxs
+av2YvaUBk/NDGZ/4g51OpgQp5Nv42zMpyj8khKapUe76b8Ra1hQeV99aMLuuLXgJ
+febMoCxc8MZGQ1SYfnDuFzDChIa26aA+OouCUF2VtS0mjoO9/Uyt2n3uldO5ea0+
+QDAbpOmLqqHEgat/mom6uvojXjf70TbMRgASaiAry2a6wPOnF9xC6bEz0Vj9tlqk
+meigFb6Cam68j4JOjXeX4/6TZYF/EYUWSvuLCrKQagsfTOOdyMUABfkAKE1OYbvv
+nBkP081ciLhTEw8TswvH1wIDAQABo2YwZDAdBgNVHQ4EFgQUMM7ImI+UTXBk0Lur
+mO8JXwrIAzIwDgYDVR0PAQH/BAQDAgAGMBIGA1UdEwEB/wQIMAYBAf8CAQAwHwYD
+VR0jBBgwFoAUMM7ImI+UTXBk0LurmO8JXwrIAzIwDQYJKoZIhvcNAQELBQADggIB
+AMe854ZzzSRt+aNlQkU2qqlZxtQftowVgnJB1jyPXG4Mb8ajHPGptrCzjfEAi4Fc
+XN3YWiIcjmhRP8Z/VucXGxNRhZrbGA07J3a5l0DlwHbeyPLu+uTe0R+t5mURdxdS
+RneOXESXEics7IQ1nHkn3gaCJUKQ7MmjuvgYnNbaEVI8oJND6UGsu4ZZPlFKS7oD
+g8frM2tttJfcM9V64/n70w8+aobuLN5Hmx3sg/d/f6qzUDxxQmhuImFor0W4ZQ/2
+4jfPQRp1DsenWQsmkfnah8n4mQe52YYxdm2NjqrN8iburaMeARjC79wwkeCEtejG
+/X19qX2FLLgMVGAa/pIhOEJGXaGjfGhqbYsTr99GqTnc087rTXZtgSK+VWGwsZd7
+gCqqEb0ZcYC0QbGGi2UuWhg44RUl6Rr4A2RP4D+xJsL9TARwmQDSB8nQwvY8ehjv
+sEezqAwMfyus01m+FYGQD0YYvlh9v52jxFlrwncgERiUkXr+w3KRE2n+2IwU1Th7
+tSgQIfnA+g3xrM0L+BRP4X4+nD91qbkecqIEBGN99VaD9UOJBftsINPBgKmTF7hS
+9xzDYNYJVYeNsj9/Oji9n4SK6iWRM/9r2SITVyRVe0nB0AJImSrU/4Z9H3c1A4ZE
+ZRoMFto7TurIM2dRdBwO1pmL50RZlRVSlS6A0iZlkOhR
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+EYVtM3wEgdMDRwQfhResfOHqnApsPo6X9nc=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGdzCCBF+gAwIBAgICA+owDQYJKoZIhvcNAQELBQAwbzEmMCQGA1UEAwwdQ1ND
+QS1Jc2xhbWljIFJlcHVibGljIG9mIElSQU4xGTAXBgNVBAsMEFBvbGljZSBDQSBD
+ZW50ZXIxHTAbBgNVBAoMFE1pbmlzdHJ5IG9mIEludGVyaW9yMQswCQYDVQQGEwJJ
+UjAeFw0xODA5MDEwNDE0MTVaFw0xODEwMjIwNTE0MTVaMHwxCzAJBgNVBAYTAklS
+MR0wGwYDVQQKDBRNaW5pc3RyeSBvZiBJbnRlcmlvcjEZMBcGA1UECwwQUG9saWNl
+IENBIENlbnRlcjELMAkGA1UEBRMCMDIxJjAkBgNVBAMMHUNTQ0EtSXNsYW1pYyBS
+ZXB1YmxpYyBvZiBJUkFOMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA
+52a8LhCTejth20l54hgHwlxKOzr3/UvPVBchs6SdEzN/WxrkSNWMO2N6+iKA9LB+
+mDgYqMhubQQcuUuWjALuh0eFFMtvj6mK8I3T+Cli1Jyk3hzkedXa9wot0Ua/o40/
+GvrfOplNdz121sqvIgJFM3RN9T4aLvTk07w0FpIw5glmzf1/FXk5jhvmTiWOahCN
+gvl1jdbzLdpkHc9MMJzq7JUqFZ0H//nQi85RHdAz4ztvyolazLRA3zHhWvjsZYBI
+Q7KKnapVE7JoYMnac4TNrDemIFgSwarh4GWCJmzwihjewsJyelJbut0vXngdsQoo
+Y6Gt1woiqxi/mjhUgHZagR2LRG0FaF8jjmUyFal7GLtTdNQs5JEXjl0XW3s4VcTI
+s0dkCGZmEOjXRFzlaIb2az4Pyftg1dhr4c7MrD7uaWWznuKUAzVN/nlN/qP3+HMw
+tIBaeUCTDZkfkSKVd/XWfeTsy8paHWiNBunuij1ITiAWeIaFgiIghI66RJHJMuT0
+q+M/4nwWgHqnzc5mlNiden2fcSzBjbtzNResdbI2/cclsUtcREmaowWvpYDmMl/0
+LfofofiHn3AQOaJmeLm1Ns+PzlfKt+/rTt4WznbBRm159zs92rNmn7Sew0I0XCjD
+HQi1nLFk0dtuVFZ44LmGybezz7N2DTL4eB/ltN604jsCAwDdI6OCAQ4wggEKMA4G
+A1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBRJiS5p
+TRyWiqzhtkBD3PTMMYJ2uDA3BgNVHR8EMDAuMCygKqAohiZodHRwczovL3d3dy5p
+cmljc2NhLnBvbGljZS5pci9jc2NhX2NybDANBgdngQgBAQYBBAIFADAtBgNVHRIE
+JjAkhiJodHRwczovL3d3dy5pcmljc2NhLnBvbGljZS5pci9jc2NhMC0GA1UdEQQm
+MCSGImh0dHBzOi8vd3d3LmlyaWNzY2EucG9saWNlLmlyL2NzY2EwHwYDVR0jBBgw
+FoAUQDvO3UVWj914g8ak88oBJVhoYdMwDQYJKoZIhvcNAQELBQADggIBAHw7msNT
+TPFA08qb2k5tOqFW/YW3afobZNi6kjx7eQS+Q0jJeiNhP9ewJpDitCICzmyzhs1I
+BI67S75lgpI9zKKPAiuAc4/l1kUFSdoE014kk4WVEL+K3TtmkmwlNdFP0KlRNNXK
+5517YyacQPmE6laiB6vq1yw0O8vkXwKSytxBc51C9D8Twj8LBHrC09awob02zFKv
+eGicXK9DmjdfMv95XQYUWAHGNzZDlrpLLknZREwIfWa5Me3seo3ejbLuZzfu1SdR
+h5jmfzpg16STe+cN9HfZn97pGe33pU0SecL9Hm/1wQlkXaOtqj8gsRwhekOm26gO
+Dv+kzq1JIWk/WHKLKLeEJ69IsneJUPI+y4vgJT1iDq88t3dVp2WEzoRtOI2gq+dG
+lZ/+D5kPXCfClXo7hxA64fHWab4C4fgBUQjanOOiuRmVXDn3BUinZgNVy1rD+kbr
+pWwVexTf33j7AbtNIWjI3ROYqCcuZomdSS3szq+hrdvrWLmUfHVDQpbThnviq4UR
+AyFaNYVljQrPjtZ4lKKhTZoXXUt+gpSG4e2suQV5jyPRrI8UM0+pk/Ve51xxlAbf
+95TG9nhD52GciQXSCzjcLWt1OwywBKIUV7mtgJtOw/+cVEJbYQs0fV+jf5KUaBz6
++vq3YZNkhqGXSm23LZcKoQ/rGs9l+gGgE3Yl
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGljCCBH6gAwIBAgISESKVUCbdGcMUTdKCxIZy/cZ5MA0GCSqGSIb3DQEBCwUA
+MDAxCzAJBgNVBAYTAk1BMQwwCgYDVQQKDANHb3YxEzARBgNVBAMMCkNTQ0EtTUFS
+T0MwHhcNMjMxMTE0MDAwMDAwWhcNMzIwMTE0MDAwMDAwWjAwMQswCQYDVQQGEwJN
+QTEMMAoGA1UECgwDR292MRMwEQYDVQQDDApDU0NBLU1BUk9DMIICIjANBgkqhkiG
+9w0BAQEFAAOCAg8AMIICCgKCAgEAvE04vGSek4UvGrLOSdXRPgsLOAtxd7YJL/Qi
+QEHjN/1IDGWSlzQsfCzTgT+ydzMMJ01Q9cFXYrARvrbb274srPOr4HgQWMJYp+26
+BDfFPtsb0rvDhHpMFavunFIMWtSKVJ4DsZRXRv9g0FLFJ92dN+uW37ILt/GtuC+u
+K7hApLryaaGW5YpIltWAGmi+5ETuJ+V8GgNHuxr3VxRqvniLnHYym+uXTGB7bMh0
+QnPeU6RlTgfUpb4jsAcflsysiiYiCrbQQIfYwgYr+XQbj9MI6XH+fvIPCzfc83t6
+rmcHJ99Vw7IkXSiD+w7wR7OAaLkv2whv8CrF4+jArBnwG4jsWH4gALloX29LzE7k
+1DnthRk0KGWV2Hvj9rfszzvOB71rgat5Am0X2nRHRIwGO8lGTx/MTLCQk0eAfrwo
+cwW/pjdt6mvq+0xIvWwh7EKXi6GxLSp05b4yxaSeTZsEbqvv1VpMwdzc9gbejgdF
+0CqE0Mbg8Vyi8luszXGkclUrW3qBuwLxr5HW1WNe6QhP2okkWxQ/DktkDs9YY9t6
+FgNgiCg3orgBokYE3HsUMmVNhGQn5/D5v9eEzOMYG7DdtKM2opNaU4XSWKRcxylU
+FqLAFbF6r2fTq00i4HAE07j9tuBezOIkx55aYVDtpInlbQQ3MCSMbRiGZi6zCAEk
+1R0HaacCAwEAAaOCAagwggGkMA4GA1UdDwEB/wQEAwIBBjArBgNVHRAEJDAigA8y
+MDIzMTExNDAwMDAwMFqBDzIwMjYxMTE0MDAwMDAwWjASBgNVHRMBAf8ECDAGAQH/
+AgEAMBsGA1UdEQQUMBKkEDAOMQwwCgYDVQQHEwNNQVIwGwYDVR0SBBQwEqQQMA4x
+DDAKBgNVBAcTA01BUjCB1gYDVR0fBIHOMIHLMDGgL6AthitodHRwOi8vd3d3LnBh
+c3NlcG9ydC5tYS9DU0NBL0NTQ0EtTUFST0MuY3JsMDKgMKAuhixodHRwczovL3d3
+dy5wYXNzZXBvcnQubWEvQ1NDQS9DU0NBLU1BUk9DLmNybDAwoC6gLIYqaHR0cHM6
+Ly9wa2Rkb3dubG9hZDEuaWNhby5pbnQvQ1JMcy9NQVIuY3JsMDCgLqAshipodHRw
+czovL3BrZGRvd25sb2FkMi5pY2FvLmludC9DUkxzL01BUi5jcmwwHQYDVR0OBBYE
+FEH+v4lM1EMqMzWfVZASSyuf7muUMB8GA1UdIwQYMBaAFJH7Z0uAgv9NVAyasyNL
+fw7IXevjMA0GCSqGSIb3DQEBCwUAA4ICAQACTqp5hBgD0VcRL0kjYpFg4ZuYCJ83
+iaqizwqCQjCSK0BkSNN90fj7B1SMM+yYaaGfoRUUXjFXV3GU//0HN0sbV2BbzeXK
+OSis+C0qe3U/Pkq5mQzPVy/R9pmedBv8jDNprA7Kykiv3oHsO8xs6u12xWg89Tsl
+rlZ0e+Nmk5WPo3n9Q8N25DQQIRWLWQnKFuZ/DJPkdwOtCzApA/DGH31qJJLCqoCu
+nyuAUkqQ4stDvcS3AECWvMUa8gvV+/yqS9EMGUVPJ9pIR0/qYZhUE2yRaF/YOYKk
+VWYA9r9/RZkBJ6Kp1Fr40CyhY++KmNxfFfMYDHqHsNS5DD59dzEgirkeV24nY8sD
+q7BSkAfNMIxvbw2YBB6B4DtV6KBw3upRzixz7o5zw4Lv0JpPfjp0j/d1/slMnK2J
+ssaNwkIbLWfOSWMfSL5OXA5d4NN4Uoey7RDgFQu89jUErqMYyH+lxbpUuSjqqNVl
+PVWZDrQcPo8v4n13qZJpgCYWX1DT0UWL78JtlEsIv7WxOOkzYLiU+iNscoY+p2bf
+0S1VIeZ4tcVqoJxxXn5TmHPxn5gz0CDoI7D3VaIsdmSe4NTzHfOKoTJBhXe8pcQ0
+iEJpH8RUtXh1WovJQdSYUfRIWjd/CLVkMOHatddws2uDGXuVxZjej3Is9uF7J53r
+L5dr7A+ZSUhXBA==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGljCCBH6gAwIBAgISESLkKc3O082SYmEsluTAxjiRMA0GCSqGSIb3DQEBCwUA
+MDAxCzAJBgNVBAYTAk1BMQwwCgYDVQQKDANHb3YxEzARBgNVBAMMCkNTQ0EtTUFS
+T0MwHhcNMjMxMTE0MDAwMDAwWhcNMzIwMTE0MDAwMDAwWjAwMQswCQYDVQQGEwJN
+QTEMMAoGA1UECgwDR292MRMwEQYDVQQDDApDU0NBLU1BUk9DMIICIjANBgkqhkiG
+9w0BAQEFAAOCAg8AMIICCgKCAgEAvE04vGSek4UvGrLOSdXRPgsLOAtxd7YJL/Qi
+QEHjN/1IDGWSlzQsfCzTgT+ydzMMJ01Q9cFXYrARvrbb274srPOr4HgQWMJYp+26
+BDfFPtsb0rvDhHpMFavunFIMWtSKVJ4DsZRXRv9g0FLFJ92dN+uW37ILt/GtuC+u
+K7hApLryaaGW5YpIltWAGmi+5ETuJ+V8GgNHuxr3VxRqvniLnHYym+uXTGB7bMh0
+QnPeU6RlTgfUpb4jsAcflsysiiYiCrbQQIfYwgYr+XQbj9MI6XH+fvIPCzfc83t6
+rmcHJ99Vw7IkXSiD+w7wR7OAaLkv2whv8CrF4+jArBnwG4jsWH4gALloX29LzE7k
+1DnthRk0KGWV2Hvj9rfszzvOB71rgat5Am0X2nRHRIwGO8lGTx/MTLCQk0eAfrwo
+cwW/pjdt6mvq+0xIvWwh7EKXi6GxLSp05b4yxaSeTZsEbqvv1VpMwdzc9gbejgdF
+0CqE0Mbg8Vyi8luszXGkclUrW3qBuwLxr5HW1WNe6QhP2okkWxQ/DktkDs9YY9t6
+FgNgiCg3orgBokYE3HsUMmVNhGQn5/D5v9eEzOMYG7DdtKM2opNaU4XSWKRcxylU
+FqLAFbF6r2fTq00i4HAE07j9tuBezOIkx55aYVDtpInlbQQ3MCSMbRiGZi6zCAEk
+1R0HaacCAwEAAaOCAagwggGkMA4GA1UdDwEB/wQEAwIBBjArBgNVHRAEJDAigA8y
+MDIzMTExNDAwMDAwMFqBDzIwMjYxMTE0MDAwMDAwWjASBgNVHRMBAf8ECDAGAQH/
+AgEAMBsGA1UdEQQUMBKkEDAOMQwwCgYDVQQHEwNNQVIwGwYDVR0SBBQwEqQQMA4x
+DDAKBgNVBAcTA01BUjCB1gYDVR0fBIHOMIHLMDGgL6AthitodHRwOi8vd3d3LnBh
+c3NlcG9ydC5tYS9DU0NBL0NTQ0EtTUFST0MuY3JsMDKgMKAuhixodHRwczovL3d3
+dy5wYXNzZXBvcnQubWEvQ1NDQS9DU0NBLU1BUk9DLmNybDAwoC6gLIYqaHR0cHM6
+Ly9wa2Rkb3dubG9hZDEuaWNhby5pbnQvQ1JMcy9NQVIuY3JsMDCgLqAshipodHRw
+czovL3BrZGRvd25sb2FkMi5pY2FvLmludC9DUkxzL01BUi5jcmwwHQYDVR0OBBYE
+FEH+v4lM1EMqMzWfVZASSyuf7muUMB8GA1UdIwQYMBaAFEH+v4lM1EMqMzWfVZAS
+Syuf7muUMA0GCSqGSIb3DQEBCwUAA4ICAQAS9ujTS3UCgK1YVQLaRaQoqiv+W4xT
+SlNll/85jZUK0ikjbQjCTMO2vuQvXLuYYYho07NyVQx1Oz32qAyIHw1mMDtgkUof
+hQlgGxyDA//3NntOwY3N55tbYZkWAywLbIetAlxEGjpLn4oakxwuS1VB0JQoCHY6
+JvKhUoNKJdQhPbj+k/6PBMYS5NckRWQILfYkUsPg00C4IdgksJjg3jG+LjoCIhzM
+2hnVQ2K9WKYdHbXTRUxLY9YS4mYsc8HaQeON8wPnAJFwntWGnd9x4n9hx3piYuSP
+6GVHtd6dN5uVXf3JhC2aelgwseLkj47ma7uRF0V10zmbDWA3aw6bz3rTGEPrNU77
+rBzpR3dhubm4DOBnfuOuqMo89aY4Xl3XSg7mfajswDpSyEcYJz6RzzWBZ31WE5vX
+piU1NeIHE8fknO1r+sUPl44yRKdNQ+ieR0fvazp9WuNqL9RwV/RBcuwEFZCahYEy
+UGt3GcIYogui3Zmrpshqjk43UoKiTNKtJIKOlLWRTkM8jlu1lhl4r52CvhbnzBCk
+qCRIYNBOXv/hi1DxKwl+sqkI3GS8eO0S0yU5iSV0UNOwN89MPfD0rW8e7mL36XEP
+yhql0lTF3ANLyQRQ3u5Bxi0Hc0yj291t0hL6Xf+L2ajv4Vs6R5N2ITIxYqRAnOiK
+mAA9xLGXyeQ0LA==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+10o7wilIIBuxJGPKFQ==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+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
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGrTCCBJWgAwIBAgICAqEwDQYJKoZIhvcNAQEFBQAwgYQxCzAJBgNVBAYTAkxV
+MT4wPAYDVQQKEzVHcmFuZC1EdWNoeSBvZiBMdXhlbWJvdXJnIE1pbmlzdHJ5IG9m
+IEZvcmVpZ24gQWZmYWlyczE1MDMGA1UEAxMsR3JhbmQtRHVjaHkgb2YgTHV4ZW1i
+b3VyZyBDb3VudHJ5IFNpZ25pbmcgQ0EwHhcNMDkwODExMTI1ODU2WhcNMTcxMTEx
+MTI1ODU2WjCBhDELMAkGA1UEBhMCTFUxPjA8BgNVBAoTNUdyYW5kLUR1Y2h5IG9m
+IEx1eGVtYm91cmcgTWluaXN0cnkgb2YgRm9yZWlnbiBBZmZhaXJzMTUwMwYDVQQD
+EyxHcmFuZC1EdWNoeSBvZiBMdXhlbWJvdXJnIENvdW50cnkgU2lnbmluZyBDQTCC
+AiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALrfBZ6pUC30K2LDkc1xNPBp
+rHUyFG/V1G12s1704dcZ7yVW6A8itIuSWRCUxS1VVcRTVCWyRYh4t1QmyNyWb7qt
+zCARtFHs2n3N2jkN41cBYOjTCTxe4zyAw9Cf+TcV3a2rwp7BbokivYvbzEV/E0TS
+2gTfYZB4G8nuU03Ag444lIIUGmTZfM8aC3/MfhVTr9HiT8ucP7fNC36ed0zVjo3p
+00gRBg49rFGVXcjvPVepoVE+GZxxtqazO4EPJEdWTEo2XML36GzQt5BLRLEnuV3X
+MqYR9xoGRdRg6Idei4/QEBxqbU9Hb+2bIwfPc71/7w3k83w2tQ9pcytFH4ksDOSH
+vNR766u//YpPOj4MZkOd5UHavi/BNk0jFKwrwAGCdRYO9oUn6A/d6OA5RQwW0p1K
+IAssT1XIhALQI38MIA3tniyd5C4qUOE2xQNzIc1EtYxt3ud+3JHDJAdaQFbf471l
+4cFiIM+0ZufdqH2yi7Dj5POsjv6YCsPvFPswwYRkjR41bSDqLC0A4R1kM3UI2PhY
+rDmckPURcMbpf9RulhmUlL0uKFlW0FrJccU3vxDajbl3LWzSasQvytN6ObNhNkoq
+EtV4LQg5vTg6Z8Id8deTVQYuqtz/bM4Nu/Sn94q+4as+HqGHRAtqNzlqjd8fafnd
+8uLen2woH527JDJ8tj/ZAgMBAAGjggElMIIBITASBgNVHRMBAf8ECDAGAQH/AgEA
+ME4GA1UdIARHMEUwQwYHK4ErAQIBATA4MDYGCCsGAQUFBwIBFipodHRwOi8vcmVw
+b3NpdG9yeS5HRExlUGFzc3BvcnQubHV4dHJ1c3QubHUwRwYIKwYBBQUHAQEEOzA5
+MDcGCCsGAQUFBzABhitodHRwOi8vY2EuR0RMZVBhc3Nwb3J0Lmx1eHRydXN0Lmx1
+L0NTQ0EuY3J0MD0GA1UdHwQ2MDQwMqAwoC6GLGh0dHA6Ly9jcmwuR0RMZVBhc3Nw
+b3J0Lmx1eHRydXN0Lmx1L0NTQ0EuY3JsMAsGA1UdDwQEAwIBxjATBgNVHSMEDDAK
+gAhC6r77vc/FEDARBgNVHQ4ECgQIQuq++73PxRAwDQYJKoZIhvcNAQEFBQADggIB
+AF3nDQK2xSsRetyfBno7JZrOvJk2ud3+jl0R2kwMkD/Zh0tGJHv4AgVcgAMF7Lx9
+EeMhN3oC2V50BQdtwV7B7OTdmCX3T1dSUHrJM1/fS5YRzpZvtP7rwHmu9eBVSXY0
+ZGLOuAQAXrns53d63Yzdg+B2Fo0SmshqG2LsuBZNlSXBjyY4Yx/dzco80OH+SWjw
+UZU4PI2G8Vagio/k9eXE1b0tltqM4t2e2v/5tTFC7ZGvxlyLBgJ4RBdn9WJbK0Vd
+vGGoS/3zR2l5gQO+LsviIP94SlKOKhw1oKrk4hJx1PwFDgjMjw5e5tOE8ZRxMxoU
+SGnE0e8rRaTVi7UdGYDivvcLFsupFdUI9pWY6SoYlBQWnwpxevLn99kJidAf0ZGh
+xlijST3AVwfUu0WD9XvXfPZEk97AUw90d35sEU6E+JnSQiCYIt7SqV2h47MezCet
+1ON8hiJGcf/iU2C9dzFb15zZkUnhV4Dc1UqKdLw8Y4+lNplPYNquN+/KQplBXXQf
+dQse78+QyzQqYhx445S1S12Q2dW2SahN0VKNL2/E/J2dOPEURXTg6iQP+6v5wBNb
+kui3b1JQm+BP/vQ4j2RId7ptJsUq/p4c5dWvXXgZsk77Ku7X15ZnTmQiiIcAA01V
+FGnQfD75BSia063nz2fWACfjIx16f0DKu5PUpJr7Vr9X
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGujCCBKKgAwIBAgIUfzEHuCgCgDwUh2nk22H3YqDp5E8wDQYJKoZIhvcNAQEF
+BQAwdTELMAkGA1UEBhMCS1oxHzAdBgNVBAoTFlJlcHVibGljIG9mIEthemFraHN0
+YW4xGzAZBgNVBAsTEmVEb2N1bWVudHMgYW5kIGVJRDEoMCYGA1UEAxMfQ2VydGlm
+aWNhdGUgQXV0aG9yaXR5IE9mZmxpbmUtMTAeFw0yMDAyMjAwMzU0NDNaFw00MDAy
+MjAwMzU0NDNaMHUxCzAJBgNVBAYTAktaMR8wHQYDVQQKExZSZXB1YmxpYyBvZiBL
+YXpha2hzdGFuMRswGQYDVQQLExJlRG9jdW1lbnRzIGFuZCBlSUQxKDAmBgNVBAMT
+H0NlcnRpZmljYXRlIEF1dGhvcml0eSBPZmZsaW5lLTEwggIiMA0GCSqGSIb3DQEB
+AQUAA4ICDwAwggIKAoICAQC1ofVVDk1OIe1ORT6X8lNF1U315waIH5nRsUYCAYKX
+SeCwBVpwntFrmah8RXqOgWl8OIjygeZNBigkFAjlYU+FeDnV2xOgVR6FGJ3NYegk
+HET3ZMZYh+/gDAtc7CcUYNDOQxD5hG/Rc/2QL3qlMsLotmLDdfHn5FvLJDJko7e1
+6p3iumwyWJB7IsflGpPCssJij/+6V34SrLYd1u8p/onxSg7PC3Vh5KOYQVAZ3FNy
+3F0qpRQm3dkpmS0ZTpC5cnncSEMUj40p8BMa9JXGRn9+e/xbth4Arbvg/EDQXynQ
+epo4EIC5L9pUjJoS7OSpJYzdfGYrk+tGprw8Tyr+k1g+ggYzOv5i1nYBRtqz6JGT
+NqDatKaxr7oRXRs5anofYRDzCZsnlOjBun0C6cjNtSkpl770LsGz0uMRX6NjgbgR
+ZeW1t6KKC6WXRmyQ80wAdy85zbhOX0Ur7iCsNRjXGFgJKFn2sttVKrboMrWE7Vk7
+hzz1jSVm/p2S+G7aHA0MAVGa6RQZF+/A1Q2VnQpblUnUJxiwEeQkvDtA1++NI1nL
+JLkyEtYQzYPblrvhd9GI0/KU3PnTuWFrg25u8wbZUOnekr8LuGRibnrDnj2YF2ua
+if+2roukL5U9OhShwEnchEhgAEXYjg32jixCE+JmD6X0q6f7BZ3i5rDE0cygqj+U
+8QIDAQABo4IBQDCCATwwEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMC
+AQYwHQYDVR0OBBYEFIAxB7goAoA8FIdp5Nth92Kg6eRPMIGyBgNVHSMEgaowgaeA
+FIAxB7goAoA8FIdp5Nth92Kg6eRPoXmkdzB1MQswCQYDVQQGEwJLWjEfMB0GA1UE
+ChMWUmVwdWJsaWMgb2YgS2F6YWtoc3RhbjEbMBkGA1UECxMSZURvY3VtZW50cyBh
+bmQgZUlEMSgwJgYDVQQDEx9DZXJ0aWZpY2F0ZSBBdXRob3JpdHkgT2ZmbGluZS0x
+ghR/MQe4KAKAPBSHaeTbYfdioOnkTzBCBgNVHSAEOzA5MDcGByqDDgMDAQEwLDAq
+BggrBgEFBQcCARYeaHR0cDovL3BraS5nb3Yua3ovaXBjL3BwcnMucGRmMA0GCSqG
+SIb3DQEBBQUAA4ICAQB5s08kJQBhr458/aln8dsXT0/Ph/tx9eZS2LWHAdHfqwpv
+/VTbVWQrxBkKr9bMevWdZyoS26pW9iXG9xU+SuVzOr0zyTaJATzebEQ+BlllGNpZ
+UD2mSpmRRpMLo751k+bDFngyu0G3nOSSZNVEINPFNzBaN5I0HbB8D2R0WGXwoIo5
+1ij6yF7MtDqNXXTTBX/ejRyy0fJ/iWjo0Ix0R0HCFM8DwaTVqMb5DZbNxatw31ah
+AONt1RLdRUkG1jqddOEYcncpATkCdZ/3gk3MbBPLHPQNCCwR01U3LdbnNQOBkcK0
+85OLlapIo62YtmC241UL3nS64mCWEY0gylXy034WdqvE0gxB8CaZQ8XzdCjrITAG
+mwOCS1IVwUELPPFxany7zmVLrzkHWzo3D6PVdc0C/8Dz0hrEKDIi65aBbi6iLSd3
+jXukT0s2bis8riFreqka+VAdZVMXY81fCOJL0OoWRlB7p2ee0rUndImheJcZocZ1
+jz/SnOwTscWbGNbLNwVxxganvLGwE1HEpl0f9S4l7akivXCzDaEW89FeRfHjR/CX
+X9nyRURKskivgQoMcy0B0jXcdqXoqG4Ki051D8xatLOZ4qv+w9iJ9gDMFn7/VrGr
+oqn9b8m+xJHkdVQzWlGn5TFBv+mN4nq35z/j/CiPOHPX//arxYOhk+Y1r328Vw==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIG2DCCBMCgAwIBAgIUdiG4t2biEjw5dGq4miqb9nO2lOQwDQYJKoZIhvcNAQEF
+BQAwdTELMAkGA1UEBhMCS1oxHzAdBgNVBAoTFlJlcHVibGljIG9mIEthemFraHN0
+YW4xGzAZBgNVBAsTEmVEb2N1bWVudHMgYW5kIGVJRDEoMCYGA1UEAxMfQ2VydGlm
+aWNhdGUgQXV0aG9yaXR5IE9mZmxpbmUtMTAeFw0xOTA3MDkwNTU5NTRaFw0zNDEw
+MDgwNTU5NTRaMHUxCzAJBgNVBAYTAktaMR8wHQYDVQQKExZSZXB1YmxpYyBvZiBL
+YXpha2hzdGFuMRswGQYDVQQLExJlRG9jdW1lbnRzIGFuZCBlSUQxKDAmBgNVBAMT
+H0NlcnRpZmljYXRlIEF1dGhvcml0eSBPZmZsaW5lLTEwggIiMA0GCSqGSIb3DQEB
+AQUAA4ICDwAwggIKAoICAQC4+r+OfJyXsJbRO1qtWBSvuKPzHMj0+VJsMFcoKl4W
+yJ9TjXEagmmf/ToRw75yBuzfde4QImTfZGbMX7rWlBPNrC/Os2zpIS/zQ5hKcY62
++iu+mjCke3nvVUqcmPxjtIf+Moezegn6JBdl5sUbiYSktqol9+a4qYK9uWbhdyaC
+iva8kBR09EIJC/jkVshKkz8MOUKy1XHZxctUsAMAsHpyIZAoiQoqvmcqpkFfMVLb
+zHELkYYco/glT8ab0qqkNKqI8qZCH7xE8KSKOMxCaPCo30u1UbRUkUI2dtRBhkEC
+q9aPK1TNvZCjIlOJHbIZtww0l0qOL/WTlC5I8aS+L8VH3IwyOstOe+DSpqFQmxgP
+pFn9ghY9mOtZB8M4oc2SIf5Fd6LIuTekZCVbbFwyfDcD7VYfKX3hpr5GgtcpeKNa
+2Se9O4+fjh9bmAVxlUKyxSPf2YctJu9Vk2RS7JPYceB+az0BJ4nhOZvW8kjWLPNm
+zb9ivDWKZKu1TR27YLA+JKyy1MvghR+D7v3VYLpBtM7rMzndIXkLLJgF3auaZg4/
+7oJnZFcBDWX5g8r3tVYjYln1uTmstl/T2DbgPGiKUkCZyxNqgxrJNEAl4OZ4eHsE
+T+GErglXkMtDiH3wPoZeUW3+L31wQdIXO2cY3HhKEH4qIerOYO2lfDtXu0eMYflY
+dQIDAQABo4IBXjCCAVowEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMC
+AQYwHQYDVR0OBBYEFPYhuLdm4hI8OXRquJoqm/ZztpTkMIGyBgNVHSMEgaowgaeA
+FPYhuLdm4hI8OXRquJoqm/ZztpTkoXmkdzB1MQswCQYDVQQGEwJLWjEfMB0GA1UE
+ChMWUmVwdWJsaWMgb2YgS2F6YWtoc3RhbjEbMBkGA1UECxMSZURvY3VtZW50cyBh
+bmQgZUlEMSgwJgYDVQQDEx9DZXJ0aWZpY2F0ZSBBdXRob3JpdHkgT2ZmbGluZS0x
+ghR2Ibi3ZuISPDl0ariaKpv2c7aU5DBgBgNVHSAEWTBXMFUGByqDDgMDAQEwSjBI
+BggrBgEFBQcCARY8aHR0cDovL3d3dy5rbmNhLmt6L2RvY3MvY2VydGlmaWNhdGlv
+bl9wcmFjdGlzZV9zdGF0ZW1lbnQucGRmMA0GCSqGSIb3DQEBBQUAA4ICAQAvlTXv
+7DlFOCJiq2VFnRb1kgYTYT8dSyxnH7fhA87nmfm4vTX7sz5I1nL0kG25ZZH3hVGz
+uIDICmls5QMPAJtBVdLH/gF1Ob+fOb7/D9W7q7c5ll1ewMm5giWwHNnlCpTBGwym
+4jd3A5wpTIx3y5hkePhYq56qNgSoXDvoDVB8efYuRTkxSHElgWlXtFmmguXGa6SK
+18TmJfefPPnezEj0rbMzvOYhlRgl88qmD47EeiSTuuo5GAywGjnFwdp7MyJZxjpM
+4C71R1NTK9B5OmGEek5dwhsna0Vnz5wZpwDoKR5XCzrIzCR1X4buTIqmIGgkqqGm
+ldsDGRVMPoHllpjLHH787IDCMSCYzo2fy1n6X6eLjDxkLhpWrriMZHHf1sS2pMs+
+uND0W+7GrfkJkq27LSGnwO46aUlP/DXN1oFK8OaVN/q1I2+S6aJl66VVOYWbBW+X
+EGm0O8m9b30fYPt95FExP1Pqt71If06A3XGO8y/bw3ImHr1QsfpMI6SOkiXgCoMJ
+K+J1GT3rjrr06WFhoMMqF52j9F7n4PQc1mor3OmQ0KXR0J/2yAPvfHDmwxUPNPC1
+bytyPCYSbTTswhVWiHZWRt9V6PVSom/WG2njIf8ge8iMq/1y+xAQaavBvLMwkH7m
+qLKD1Fs34HvrwGVvvu+ytqfpCFoeXQe2hpBhMQ==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIHwDCCBaigAwIBAgIQeEqDJq6jifPUhszrRJYJ6TANBgkqhkiG9w0BAQsFADCB
+mDELMAkGA1UEBhMCS1cxHTAbBgNVBAoTFE1pbmlzdHJ5IG9mIEludGVyaW9yMT8w
+PQYDVQQLEzZHZW5lcmFsIERlcGFydG1lbnQgb2YgTmF0aW9uYWxpdHkgYW5kIFRy
+YXZlbCBEb2N1bWVudHMxEzARBgNVBAUTCjIwMTYwNDAxMDExFDASBgNVBAMTC0NT
+Q0EgS3V3YWl0MB4XDTIxMDUwMTAwMDAwMFoXDTMxMDYyOTIzNTk1OVowgZgxCzAJ
+BgNVBAYTAktXMR0wGwYDVQQKExRNaW5pc3RyeSBvZiBJbnRlcmlvcjE/MD0GA1UE
+CxM2R2VuZXJhbCBEZXBhcnRtZW50IG9mIE5hdGlvbmFsaXR5IGFuZCBUcmF2ZWwg
+RG9jdW1lbnRzMRQwEgYDVQQDEwtDU0NBIEt1d2FpdDETMBEGA1UEBRMKMjAyMTA1
+MDEwMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANadUfNwpFKRWMjr
+JEctYksFgoCR0kTbx/PiVLd3qaAjPQX4QDGMFV1K/5NDEp663pf+9BKGxKqCOiBz
+su0zCxaYWRUctUk8nCmmH7CHU/wCV/E7nvJfUMT0735Ap5BaE8bckGSUqEfFkUHf
++t3n0naRXmEa/nxZUZRIRyWewawyBghNJX3aOouu+lSoS2OYGKCNUdJPzN+z5ArE
+qEFV+gJNY7SYEEV3E0i1xJA9EZn3+iBifVre9edVgcmrIlmRpFWZczQ81sWXDEeR
+BrdmY2jsu0ViNXB9RXPhi2Ze6EUIa1VEX2s9rwBK3L7KjEaI3JEepE+EYmpwy3GI
+LsiiqYI1BSe7ncMZq+qM7R1BEsautWH72otSjt/K6L5AovHGqCRlg7jn/8dbSUNT
+2ZF3zj1/1Oio4H79hpc3I3ngXNStWaNZfyw508i6BSquUemjfaD/l30cHeQWNkPs
+JHHOXAq5sOaZsAiraX1Rfn57HNo+eSFfU4xAUOQTViF+v+JkrZU6Yww7dLNcXtHI
+Ts3i35wXnnIJJgHCuwbc3bjC70rWJ2pfr+NB099pWPNy80BxxiyuVJoSzHhDj1hn
+ebDCQWlxl09JR2naAM8ne/7brO2vZuc3vtv0ffhsZB1CbgO1nxYF59AgCFc+Vzul
+j2HY0BrxOyuYcOSOt+JmqXjZBOCRAgMBAAGjggICMIIB/jA1BgNVHR8ELjAsMCqg
+KKAmhiRodHRwczovL2VwcC5tb2kuZ292Lmt3L2NzY2EvY3NjYS5jcmwwPgYDVR0S
+BDcwNYEWY3NjYS1rdXdhaXRAbW9pLmdvdi5rd4YbaHR0cHM6Ly9lcHAubW9pLmdv
+di5rdy9jc2NhMD4GA1UdEQQ3MDWBFmNzY2Eta3V3YWl0QG1vaS5nb3Yua3eGG2h0
+dHBzOi8vZXBwLm1vaS5nb3Yua3cvY3NjYTCB1AYDVR0jBIHMMIHJgBSjSmYXFZRv
+usCIqJOZqUd/VU8fo6GBnqSBmzCBmDELMAkGA1UEBhMCS1cxHTAbBgNVBAoTFE1p
+bmlzdHJ5IG9mIEludGVyaW9yMT8wPQYDVQQLEzZHZW5lcmFsIERlcGFydG1lbnQg
+b2YgTmF0aW9uYWxpdHkgYW5kIFRyYXZlbCBEb2N1bWVudHMxEzARBgNVBAUTCjIw
+MTYwNDAxMDExFDASBgNVBAMTC0NTQ0EgS3V3YWl0ghA3X7HAyCOI86TO22IQH+uu
+MB0GA1UdDgQWBBRsFML1VKm2P0XzIzOfcz7Ei2sdazASBgNVHRMBAf8ECDAGAQH/
+AgEAMA4GA1UdDwEB/wQEAwIBhjArBgNVHRAEJDAigA8yMDIxMDUwMTAwMDAwMFqB
+DzIwMjYwODEwMjM1OTU5WjANBgkqhkiG9w0BAQsFAAOCAgEAGVVjXWoCDHpjazPW
+O0S7pnw2nGr49d3OYTKq4D6K3WSWPlTByLhNzOD0MVRyZBk4G4QoAcOVvbF+p3bC
+y1HdXwzk61PX1IvVPpyjoyuA98sj6kIzd+ASnpoDgCwB3qm0sESK/r5FoRI8K/F6
+PD7hElyZLCrKf7G8hzjXNDbdc/GhRy/cG7dpunQpVt//XTkmXj4qSZevIBcaA4TE
+YDV/PvwbNuaT2RcSSKRulMKEpi/Lc98Euiqy3iAbV61i7NcHtyc/4iW1t9pLfdMx
+Y1hkSDDnI5jFW/HP1SPkNR30lvjNWe+dKN1fgn1lau1JbicV3uKl+rvBG845PFRh
+gJhMpVtT4pnbxX8juTbxuZSGmEOF/y1whuSq0E5avROJXh7qucsW6nFWwcvBySnb
+uVEH0p4GJWu0nlHvDkUdsToVHxIrKl6iGGCZDOUa++sqsUHpATnlk+8ZRojt5b+P
+LbkpuOkSkV11GgrxeEHs35/SrJ5Cviy5OBeCi1wk9PAEpVG/+dKEUh+jA77w4aFr
+5rKkRDH2H7GdPBhxyMR5TCwD3KSjEaoVvQYkNjBLiiLieVDqPkuBvIU1XQyfc0H4
+ODyPxZWHfvcbl0HeVSJ0bJ/LFa/RkDwYqIFsv1RtWe0SQKLDcdutDBPVKfQ1uFwl
+iN+AVvlV0YQhOTiUWlvYqle/FP4=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIHxDCCBaygAwIBAgIIW5BLiyHi4HswDQYJKoZIhvcNAQEFBQAwazELMAkGA1UE
+BhMCTFUxJDAiBgNVBAoMG01pbmlzdHJ5IG9mIEZvcmVpZ24gQWZmYWlyczEoMCYG
+A1UEAwwfR3JhbmQtRHVjaHkgb2YgTHV4ZW1ib3VyZyBDU0NBIDEMMAoGA1UEBRMD
+MTAwMB4XDTE1MDMyNzE0Mzk1MFoXDTIxMDExNTEzMzg0MVowfTELMAkGA1UEBhMC
+TFUxOzA5BgNVBAoMMkdyYW5kLUR1Y2h5IG9mIEx1eGVtYm91cmcgTWluaXN0cnkg
+Rm9yZWlnbiBBZmZhaXJzMTEwLwYDVQQDDChHcmFuZC1EdWNoeSBvZiBMdXhlbWJv
+dXJnIENTQ0EgZVBhc3Nwb3J0MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKC
+AgEAz3lwA4QiEodak5Dod38pJTKrd0jBeKw7LScLef0P4RSLf6CaEN3Tp76tUTTa
+R9TaLRF0togVQNBWEmMocNjlb8U8V9+xLORrE5GYqjT4COJKtbJLP8cjhrrMPyD+
+jWzFhjC8XUni76iuFFVYyVwv6SNZvkbeqwM/EyaRAB+0Q7l3s7K4Vw6W2NCqn9T4
+zbgQjWl+ht8JcPBGVUQGjpFFrWofoSeOLfztM3dvGEb5QfrSNsUOMz2AcfUPsXl3
+Eve/RbdPV24iETZyHXjixSk60TL3Q7G8EUE4Lygn4jhEXqbuKBHJ76hesl3Q9tRy
+wclQVh5SuzdB0TGMm2Hn3ooPr8BIlv4WfHfN4K5wgGLAzsotkaMuHyYcqyOmWl2G
+5StIgGB/TGkpUMgY8z3HNqdZ7kkufiQ6jm5DURSjJGBTs83ebORpHTbOp4AxyKf3
+n4qyP0337pZO1JuTRlSq2i5u22J7+d1O8jyHjxJDEQ65cXYrAsg78rgdtZdbHEiR
+FJQZLKNvRxzyRjPgkqCECCuXn8CTwTPQ7lv21loh7D+rWrkAbzElGPNUGjcqgP9u
+3deOM0X744/wQbmieu3jIQuQlMfx8IcTDXXntKieRhKaD6QIEdKHGoDi7ZTL327m
+L+seaDMcvtsZfPNbcglAfC2UhkkuHepzfDIGS3k4LieQLG8CAwEAAaOCAlgwggJU
+MA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/AgEAMCsGA1UdEAQkMCKA
+DzIwMTQxMTEyMTQzMTA1WoEPMjAxODExMTIxNDMxMDVaMB0GA1UdDgQWBBT77NlP
+9FmkQ9GssbDT5sHjcqRrODA/BgNVHR8EODA2MDSgMqAwhi5odHRwOi8vcmVwb3Np
+dG9yeS5pbmNlcnQubHUvQ1NDQV9lUGFzc3BvcnQuY3JsMIIBIwYDVR0gBIIBGjCC
+ARYwggESBgRVHSAAMIIBCDCB3AYIKwYBBQUHAgIwgc8egcwAZQBQAGEAcwBzAHAA
+bwByAHQAIABDAG8AdQBuAHQAcgB5ACAAUwBpAGcAbgBpAG4AZwAgAEMAQQAgAEMA
+ZQByAHQAaQBmAGkAYwBhAHQAZQA6ACAAVQBzAGEAZwBlADoAIABlAFAAYQBzAHMA
+cABvAHIAdAAgAEQAbwBjAHUAbQBlAG4AdAAgAFMAaQBnAG4AZQByACAAQwBlAHIA
+dABpAGYAaQBjAGEAdABlACAAUwBpAGcAbgBhAHQAdQByAGUAIABvAG4AbAB5AC4w
+JwYIKwYBBQUHAgEWG2h0dHA6Ly9yZXBvc2l0b3J5LmluY2VydC5sdTAqBgNVHRIE
+IzAhgQ5jc2NhQGluY2VydC5sdaQPMA0xCzAJBgNVBAcMAkxVMCoGA1UdEQQjMCGB
+DmNzY2FAaW5jZXJ0Lmx1pA8wDTELMAkGA1UEBwwCTFUwDQYHZ4EIAQEGAQQCBQAw
+EwYDVR0jBAwwCoAIT6P1x5vQeSIwDQYJKoZIhvcNAQEFBQADggIBAC5gd+hyffXq
++xBHeg0IL9SThbmv36SKyiqBQ0n2nVoJ6lXo9D7ajWJHDhjIFwYY+PTCMKwCYPsZ
+kg5w7Jq/1YY0hyOE5OAAGqkfxIdohx7MA92i5Qxo05K9IC1VjXKzRw8BZ6pH4LTF
+jUCGpL7aS3DM+12WpnA3xyIUyOx1NpfpeJstAYlheOv+P86WO9yNz92ANEgHk3ql
+4o9nmaa7nyUEGztXkcHlqxfMn6E0fBXWt1oCynuWq6ZCqYSuwEqr/bhtGngUEHuy
+xZsJhirOkK6SzKI2Orh+WKMoqJeW9ofz3EHdrdcQI/+9QApHxUx0PeUTXiA8cs0J
+YScIL1CSNDZN4ILagHWVTrd6Juv5CIaujNAAt8khgwllZtn3RnzVtBmNkl9AscvQ
+kAeKXZE0FWN+3TUnPAZaWP6sE60a8XqkrywS4+t+wBsOKWRt6GUbwIn5AVaoIPKt
+PP9OQ9qzgg/1E3SLX7bEePwJpkCicVF9k9daF1eS0juyPU1tBmSiJ2WZZPscludH
+N7EZm9wSAo5umEishw63Y7KJw53HXONqs89Cf7F5I9+CSaGJQqB8DV1IyOkZsPbr
+GAnFEzjZ41k7VLrpDLRCWCmxBBLcX2ZmkGGfKhU3L+AEWmSycu8ED4K4hGmHb6F5
+R3Nhmx4doVeKc7KuLgWpgu8FfbX3TL/r
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIF3zCCA8egAwIBAgIERQp9gDANBgkqhkiG9w0BAQsFADBmMQswCQYDVQQGEwJJ
+RTEmMCQGA1UECgwdRGVwYXJ0bWVudCBvZiBGb3JlaWduIEFmZmFpcnMxGDAWBgNV
+BAsMD1Bhc3Nwb3J0IE9mZmljZTEVMBMGA1UEAwwMQ1NDQSBJcmVsYW5kMB4XDTA2
+MDkxNTEwMDkwMVoXDTIxMDkxNTEwMzkwMVowZjELMAkGA1UEBhMCSUUxJjAkBgNV
+BAoMHURlcGFydG1lbnQgb2YgRm9yZWlnbiBBZmZhaXJzMRgwFgYDVQQLDA9QYXNz
+cG9ydCBPZmZpY2UxFTATBgNVBAMMDENTQ0EgSXJlbGFuZDCCAiIwDQYJKoZIhvcN
+AQEBBQADggIPADCCAgoCggIBAKklZ2Gpp+tp1j2c7i5ypgTWdreJwRlHkYdI4Xvb
+pyHtcUuY+PANho6DIwGuE6rec+ge3J5TXrCrYCEBpq0q0LkKZgY4Tu/l+G1fQ8PV
+uU5Z3zfUAwWYnAsZEsV5fEANOHo0EbZ6vPlLbDO8phwniYVBPkKn0Nupt9bqRdr6
+1/Bqh3lorl3HFggj6ynup+7Dm+RNzlQxPhvrT6e9G+Lphd1ZMK//xiaTOvW8L0cu
+uiHPUB1A4pq/XowZE4i7RGO5g76uKEBfzfFwc3iTRouujoaoo2iTkM227w+HSM6q
+kylZNmfunIdzdhiIc1TaJ5Kd+b6gPmDDcGb0tIwcvQvEgCwfCdKifSxCjSmVt+kq
+sfb/WOnAT02H+tqbYpQvhY9NW4n4scP9jB6rxvys8ne0+fZAaJCIDhvQZUeGZZXC
+Jyt/0oCAJWlDAbzHGxog4So7oFTysUstkfElQXU6TTwB1PkmPBXrw43lJ7G2TcJ/
+4qvp2mUp4aAcbuNkNJTbBC6f0PIxl6EGJXyxRmfxgM7FECw/wZdZSWuP8YYgyfDy
+i8JV/1l182Y2VhD0J4htS17Z0/gXZc5G7scoLYgQ/WogfzzmBx9fgfdDAJTKMnUN
+K4HnHYX3x76XlRbi7fnjSjega6ivC/yBUlcTF1GVQeidnBBhhoxSgE8oLQebSR0v
+EhQ9AgMBAAGjgZQwgZEwEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMC
+AQYwKwYDVR0QBCQwIoAPMjAwNjA5MTUxMDA5MDFagQ8yMDExMDMxNzAyMzkwMVow
+HwYDVR0jBBgwFoAU1TNhmIu4ro5NeEGMAbg7NwXv3G8wHQYDVR0OBBYEFNUzYZiL
+uK6OTXhBjAG4OzcF79xvMA0GCSqGSIb3DQEBCwUAA4ICAQA3yqwUQJws/XlT96vW
+mll34K1WpEgdojKSNccZRogxSqFVvU3VLNLyahKoHvbnHMAn7Tq0RMOXe4TbtTYa
+i7zNzealPynr7YRcS5/E/9p233iMUjg1DsntVk5jOZHLR+e13b1UtWtQbhYTj9Xs
+lmotN7734JyQQv6L4zgTS+oy4n06CAahAKasELTvNHFQDjG1AOMj9iH+XAVWZ7av
+CNYPfksq3DvcBGR07A0GA5JozITI2/MFUPgmykj5eBn9PnjU/isJYuiHTyqQzaFO
+9JkLeWZJg6dIav9hIWbmPVvmPHbimL58zzNihyvJtcPhvfVqr8tQu4FSYMKlC+ff
+xIHmE6kERCV4/4XAFk9oX/ZcnHiCyZlbIVO8DV61igjg73rhwgCUUSt+SuukpQgj
+2P/TtVJCEKh3kVCWh/7xsOQree40cShSY4sSk7X6thCyM16p/VcIfAQ8L05kull3
+rN4E4j1DLk+g3H1GThvQB/izYavKiCRWIxbI/RdQC5ZFqBSVporZ+1hDjC+rbc3Q
+daygDQdOyA+ozj0IS0sSez65NtDSKuctEEPIjkDXnPS2VnM0wlLuQJj0fzjnVI1M
+gR6vHE+y588r76QiZn2F5O/WoO+cmVz9mW9RvA7/eVyGw98fM/IVpqZtlmqq11CF
+9SNsK7fmsnqQURqsFOp2O3gbEg==
+-----END CERTIFICATE-----
diff --git a/app/ios/Prover.m b/app/ios/Prover.m
new file mode 100644
index 000000000..ac1237263
--- /dev/null
+++ b/app/ios/Prover.m
@@ -0,0 +1,23 @@
+//
+// Prover.m
+// ProofOfPassport
+//
+// Created by Florent on 13/01/2024.
+//
+
+#import
+#import "React/RCTBridgeModule.h"
+
+@interface RCT_EXTERN_MODULE(Prover, NSObject)
+
+RCT_EXTERN_METHOD(runInitAction:(RCTPromiseResolveBlock)resolve
+ reject:(RCTPromiseRejectBlock)reject)
+
+RCT_EXTERN_METHOD(runProveAction:(NSDictionary *)inputs
+ resolve:(RCTPromiseResolveBlock)resolve
+ reject:(RCTPromiseRejectBlock)reject)
+
+RCT_EXTERN_METHOD(runVerifyAction:(RCTPromiseResolveBlock)resolve
+ reject:(RCTPromiseRejectBlock)reject)
+
+@end
\ No newline at end of file
diff --git a/app/ios/Prover.swift b/app/ios/Prover.swift
new file mode 100644
index 000000000..e4aea8688
--- /dev/null
+++ b/app/ios/Prover.swift
@@ -0,0 +1,140 @@
+
+// Prover.swift
+// ProofOfPassport
+
+// Created by Florent on 13/01/2024.
+
+
+import Foundation
+import React
+import Security
+import MoproKit
+
+@available(iOS 15, *)
+@objc(Prover)
+class Prover: NSObject {
+
+ let moproCircom = MoproKit.MoproCircom()
+ var generatedProof: Data?
+ var publicInputs: Data?
+
+ @objc(runInitAction:reject:)
+ func runInitAction(resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) { // Update the textView on the main thread
+ print("Initializing library")
+
+ // Execute long-running tasks in the background
+ DispatchQueue.global(qos: .userInitiated).async {
+ // Record start time
+ let start = CFAbsoluteTimeGetCurrent()
+
+ do {
+ try initializeMopro()
+
+ // Record end time and compute duration
+ let end = CFAbsoluteTimeGetCurrent()
+ let timeTaken = end - start
+
+ // Log the time taken for initialization
+ print("Initializing arkzkey took \(timeTaken) seconds.")
+ resolve("Done")
+ } catch {
+ // Log any errors that occurred during initialization
+ print("An error occurred during initialization: \(error)")
+ reject("PROVER", "An error occurred during initialization", error)
+ }
+ }
+ }
+
+ @objc(runProveAction:resolve:reject:)
+ func runProveAction(_ inputs: [String: [String]], resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
+ // Logic for prove (generate_proof2)
+ do {
+ // format of inputs, if you want to manage it manually:
+
+ // WORKING, SAMPLE DATA:
+ // let mrz: [String] = ["97","91","95","31","88","80","60","70","82","65","68","85","80","79","78","84","60","60","65","76","80","72","79","78","83","69","60","72","85","71","85","69","83","60","65","76","66","69","82","84","60","60","60","60","60","60","60","60","60","50","52","72","66","56","49","56","51","50","52","70","82","65","48","52","48","50","49","49","49","77","51","49","49","49","49","49","53","60","60","60","60","60","60","60","60","60","60","60","60","60","60","48","50"]
+ // let reveal_bitmap: [String] = ["0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0"]
+ // let dataHashes: [String] = ["48","130","1","37","2","1","0","48","11","6","9","96","134","72","1","101","3","4","2","1","48","130","1","17","48","37","2","1","1","4","32","176","223","31","133","108","84","158","102","70","11","165","175","196","12","201","130","25","131","46","125","156","194","28","23","55","133","157","164","135","136","220","78","48","37","2","1","2","4","32","190","82","180","235","222","33","79","50","152","136","142","35","116","224","6","242","156","141","128","248","10","61","98","86","248","45","207","210","90","232","175","38","48","37","2","1","3","4","32","0","194","104","108","237","246","97","230","116","198","69","110","26","87","17","89","110","199","108","250","36","21","39","87","110","102","250","213","174","131","171","174","48","37","2","1","11","4","32","136","155","87","144","111","15","152","127","85","25","154","81","20","58","51","75","193","116","234","0","60","30","29","30","183","141","72","247","255","203","100","124","48","37","2","1","12","4","32","41","234","106","78","31","11","114","137","237","17","92","71","134","47","62","78","189","233","201","214","53","4","47","189","201","133","6","121","34","131","64","142","48","37","2","1","13","4","32","91","222","210","193","62","222","104","82","36","41","138","253","70","15","148","208","156","45","105","171","241","195","185","43","217","162","146","201","222","89","238","38","48","37","2","1","14","4","32","76","123","216","13","51","227","72","245","59","193","238","166","103","49","23","164","171","188","194","197","156","187","249","28","198","95","69","15","182","56","54","38"]
+ // let eContentBytes: [String] = ["49","102","48","21","6","9","42","134","72","134","247","13","1","9","3","49","8","6","6","103","129","8","1","1","1","48","28","6","9","42","134","72","134","247","13","1","9","5","49","15","23","13","49","57","49","50","49","54","49","55","50","50","51","56","90","48","47","6","9","42","134","72","134","247","13","1","9","4","49","34","4","32","32","85","108","174","127","112","178","182","8","43","134","123","192","211","131","66","184","240","212","181","240","180","106","195","24","117","54","129","19","10","250","53"]
+ // let signature: [String] = ["7924608050410952186","18020331358710788578","8570093713362871693","158124167841380627","11368970785933558334","13741644704804016484","3255497432248429697","18325134696633464276","11159517223698754974","14221210644107127310","18395843719389189885","14516795783073238806","2008163829408627473","10489977208787195755","11349558951945231290","10261182129521943851","898517390497363184","7991226362010359134","16695870541274258886","3471091665352332245","9966265751297511656","15030994431171601215","10723494832064770597","14939163534927288303","13596611050508022203","12058746125656824488","7806259275107295093","9171418878976478189","16438005721800053020","315207309308375554","3950355816720285857","5415176625244763446"]
+ // let pubkey: [String] = ["10501872816920780427","9734403015003984321","14411195268255541454","5140370262757446136","442944543003039303","2084906169692591819","13619051978156646232","11308439966240653768","11784026229075891869","3619707049269329199","14678094225574041482","13372281921787791985","5760458619375959191","1351001273751492154","9127780359628047919","5377643070972775368","14145972494784958946","295160036043261024","12244573192558293296","13273111070076476096","15787778596745267629","12026125372525341435","17186889501189543072","1678833675164196298","11525741336698300342","9004411014119053043","3653149686233893817","3525782291631180893","13397424121878903415","12208454420188007950","5024240771370648155","15842149209258762075"]
+ // let address: [String] = ["897585614395172552642670145532424661022951192962"] // decimal of 0x9D392187c08fc28A86e1354aD63C70897165b982
+
+ // var inputs = [String: [String]]()
+ // inputs["mrz"] = mrz;
+ // inputs["reveal_bitmap"] = reveal_bitmap;
+ // inputs["dataHashes"] = dataHashes;
+ // inputs["eContentBytes"] = eContentBytes;
+ // inputs["signature"] = signature;
+ // inputs["pubkey"] = pubkey;
+ // inputs["address"] = address;
+
+ print(inputs)
+
+ let start = CFAbsoluteTimeGetCurrent()
+
+ // Generate Proof
+ let generateProofResult = try generateProof2(circuitInputs: inputs)
+ assert(!generateProofResult.proof.isEmpty, "Proof should not be empty")
+
+ // Record end time and compute duration
+ let end = CFAbsoluteTimeGetCurrent()
+ let timeTaken = end - start
+ print("Proof generation took \(timeTaken) seconds.")
+
+ // Store the generated proof and public inputs for later verification
+ print("generateProofResult", generateProofResult)
+ generatedProof = generateProofResult.proof
+ publicInputs = generateProofResult.inputs
+
+ // Convert Data to array of bytes
+ let proofBytes = [UInt8](generateProofResult.proof)
+ let inputsBytes = [UInt8](generateProofResult.inputs)
+
+ print("proofBytes", proofBytes)
+ print("inputsBytes", inputsBytes)
+
+ // Create a dictionary with byte arrays
+ let resultDict: [String: [UInt8]] = [
+ "proof": proofBytes,
+ "inputs": inputsBytes
+ ]
+
+ // Serialize dictionary to JSON
+ let jsonData = try JSONSerialization.data(withJSONObject: resultDict, options: [])
+ let jsonString = String(data: jsonData, encoding: .utf8)!
+
+ resolve(jsonString)
+ } catch let error as MoproError {
+ print("MoproError: \(error)")
+ reject("PROVER", "An error occurred during proof generation", error)
+ } catch {
+ print("Unexpected error: \(error)")
+ reject("PROVER", "An error occurred during proof generation", error)
+ }
+ }
+
+ @objc(runVerifyAction:reject:)
+ func runVerifyAction(resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
+ // Logic for verify
+ guard let proof = generatedProof,
+ let publicInputs = publicInputs else {
+ print("Proof has not been generated yet.")
+ return
+ }
+ do {
+ // Verify Proof
+ let isValid = try verifyProof2(proof: proof, publicInput: publicInputs)
+ assert(isValid, "Proof verification should succeed")
+
+ print("Proof verification succeeded.")
+ resolve(isValid)
+ } catch let error as MoproError {
+ print("MoproError: \(error)")
+ reject("PROVER", "An error occurred during proof verification", error)
+ } catch {
+ print("Unexpected error: \(error)")
+ reject("PROVER", "An error occurred during proof verification", error)
+ }
+ }
+}
diff --git a/app/ios/post_install.sh b/app/ios/post_install.sh
new file mode 100755
index 000000000..1f28dad6a
--- /dev/null
+++ b/app/ios/post_install.sh
@@ -0,0 +1,22 @@
+#!/bin/bash
+
+# update xcconfig
+MODES="debug release"
+XCCONFIG_PATH=Pods/Target\ Support\ Files/MoproKit
+CONFIGS="
+LIBRARY_SEARCH_PATHS=\${SRCROOT}/../MoproKit/Libs
+OTHER_LDFLAGS=-lmopro_ffi
+USER_HEADER_SEARCH_PATHS=\${SRCROOT}/../MoproKit/include
+"
+for mode in ${MODES}
+do
+ FILE_NAME=${XCCONFIG_PATH}/MoproKit.${mode}.xcconfig
+ for config in ${CONFIGS}; do
+ EXIST=$(grep -c "${config}" "${FILE_NAME}")
+ if [[ $EXIST -eq 0 ]]; then
+ echo "${config}" >> "${FILE_NAME}"
+ fi
+ done
+done
+
+echo "Finished updating xcconfig"
\ No newline at end of file
diff --git a/app/mopro-core/.gitignore b/app/mopro-core/.gitignore
new file mode 100644
index 000000000..6985cf1bd
--- /dev/null
+++ b/app/mopro-core/.gitignore
@@ -0,0 +1,14 @@
+# Generated by Cargo
+# will have compiled files and executables
+debug/
+target/
+
+# Remove Cargo.lock from gitignore if creating an executable, leave it for libraries
+# More information here https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html
+Cargo.lock
+
+# These are backup files generated by rustfmt
+**/*.rs.bk
+
+# MSVC Windows builds of rustc generate these, which store debugging information
+*.pdb
diff --git a/app/mopro-core/Cargo.toml b/app/mopro-core/Cargo.toml
new file mode 100644
index 000000000..1a63a4d30
--- /dev/null
+++ b/app/mopro-core/Cargo.toml
@@ -0,0 +1,51 @@
+[package]
+name = "mopro-core"
+version = "0.1.0"
+edition = "2021"
+
+# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
+
+[patch.crates-io]
+# NOTE: Forked wasmer to work around memory limits
+# See https://github.com/wasmerio/wasmer/commit/09c7070
+wasmer = { git = "https://github.com/oskarth/wasmer.git", rev = "09c7070" }
+
+[features]
+default = []
+dylib = ["wasmer/dylib"]
+
+[dependencies]
+ark-circom = { git = "https://github.com/arkworks-rs/circom-compat.git" }
+serde = { version = "1.0", features = ["derive"] }
+ark-serialize = { version = "=0.4.1", features = ["derive"] }
+num-bigint = { version = "=0.4.3", default-features = false, features = [
+ "rand",
+] }
+instant = "0.1"
+wasmer = { git = "https://github.com/oskarth/wasmer.git", rev = "09c7070" }
+once_cell = "1.8"
+
+# ZKP generation
+ark-ec = { version = "=0.4.1", default-features = false, features = [
+ "parallel",
+] }
+ark-crypto-primitives = { version = "=0.4.0" }
+ark-std = { version = "=0.4.0", default-features = false, features = [
+ "parallel",
+] }
+ark-bn254 = { version = "=0.4.0" }
+ark-groth16 = { version = "=0.4.0", default-features = false, features = [
+ "parallel",
+] }
+ark-relations = { version = "0.4", default-features = false }
+ark-zkey = { path = "../ark-zkey" }
+
+# Error handling
+thiserror = "=1.0.39"
+color-eyre = "=0.6.2"
+criterion = "=0.3.6"
+
+[build-dependencies]
+color-eyre = "0.6"
+enumset = "1.0.8"
+wasmer = { git = "https://github.com/oskarth/wasmer.git", rev = "09c7070" }
diff --git a/app/mopro-core/README.md b/app/mopro-core/README.md
new file mode 100644
index 000000000..452109f1d
--- /dev/null
+++ b/app/mopro-core/README.md
@@ -0,0 +1,47 @@
+# mopro-core
+
+Core mobile Rust library. For FFI, see `mopro-ffi` which is a thin wrapper for exposing UniFFI bindings around this library.
+
+## Overview
+
+TBD.
+
+## Examples
+
+Run `cargo run --example circom`. Also see `examples/circom/README.md` for more information.
+
+## Build dylib
+
+Experimental support.
+
+Turns `.wasm` file into a dynamic library (`.dylib`).
+
+Run:
+
+`cargo build --features dylib`
+
+After that you'll see location of the dylib file:
+
+```
+warning: Building dylib for aarch64-apple-darwin
+warning: Dylib location: /Users/user/repos/github.com/oskarth/mopro/mopro-core/target/debug/aarch64-apple-darwin/keccak256.dylib
+```
+
+Right now this is hardcoded for `rsa`.
+
+Note that:
+- It has to be built for the right architecture
+- Have to run `install_name_tool` to adjust install name
+- Run `codesign` to sign dylib for use on iOS
+
+### Script
+
+Add third argument: `dylib`:
+
+`./scripts/update_bindings.sh device release dylib`
+
+Note that `APPLE_SIGNING_IDENTITY` must be set.
+
+## To use ark-zkey
+
+Experimental support for significantly faster zkey loading. See `../ark-zkey` README for how to build arkzkey.
\ No newline at end of file
diff --git a/app/mopro-core/build.rs b/app/mopro-core/build.rs
new file mode 100644
index 000000000..ae72e15cf
--- /dev/null
+++ b/app/mopro-core/build.rs
@@ -0,0 +1,95 @@
+use color_eyre::eyre::Result;
+use std::env;
+use std::path::PathBuf;
+
+fn prepare_env(zkey_path: String, wasm_path: String, arkzkey_path: String) -> Result<()> {
+ let project_dir = env::var("CARGO_MANIFEST_DIR")?;
+ let zkey_file = PathBuf::from(&project_dir).join(zkey_path);
+ let wasm_file = PathBuf::from(&project_dir).join(wasm_path);
+ let arkzkey_file = PathBuf::from(&project_dir).join(arkzkey_path);
+
+ // TODO: Right now emitting as warnings for visibility, figure out better way to do this?
+ println!("cargo:warning=zkey_file: {}", zkey_file.display());
+ println!("cargo:warning=wasm_file: {}", wasm_file.display());
+ println!("cargo:warning=arkzkey_file: {}", arkzkey_file.display());
+
+ // Set BUILD_RS_ZKEY_FILE and BUILD_RS_WASM_FILE env var
+ println!("cargo:rustc-env=BUILD_RS_ZKEY_FILE={}", zkey_file.display());
+ println!("cargo:rustc-env=BUILD_RS_WASM_FILE={}", wasm_file.display());
+ println!(
+ "cargo:rustc-env=BUILD_RS_ARKZKEY_FILE={}",
+ arkzkey_file.display()
+ );
+
+ Ok(())
+}
+
+#[cfg(feature = "dylib")]
+fn build_dylib(wasm_path: String, dylib_name: String) -> Result<()> {
+ use std::path::Path;
+ use std::{fs, str::FromStr};
+
+ use color_eyre::eyre::eyre;
+ use enumset::enum_set;
+ use enumset::EnumSet;
+
+ use wasmer::Cranelift;
+ use wasmer::Dylib;
+ use wasmer::Target;
+ use wasmer::{Module, Store, Triple};
+
+ let out_dir = env::var("OUT_DIR")?;
+ let project_dir = env::var("CARGO_MANIFEST_DIR")?;
+ let build_mode = env::var("PROFILE")?;
+ let target_arch = env::var("TARGET")?;
+
+ let out_dir = Path::new(&out_dir).to_path_buf();
+ let wasm_file = Path::new(&wasm_path).to_path_buf();
+ let dylib_file = out_dir.join(&dylib_name);
+ let final_dir = PathBuf::from(&project_dir)
+ .join("target")
+ .join(&target_arch)
+ .join(build_mode);
+
+ // if dylib_file.exists() {
+ // return Ok(());
+ // }
+
+ // Create a WASM engine for the target that can compile
+ let triple = Triple::from_str(&target_arch).map_err(|e| eyre!(e))?;
+ let cpu_features = enum_set!();
+ let target = Target::new(triple, cpu_features);
+ let engine = Dylib::new(Cranelift::default()).target(target).engine();
+ println!("cargo:warning=Building dylib for {}", target_arch);
+
+ // Compile the WASM module
+ let store = Store::new(&engine);
+ let module = Module::from_file(&store, &wasm_file).unwrap();
+ module.serialize_to_file(&dylib_file).unwrap();
+ assert!(dylib_file.exists());
+
+ // Copy dylib to a more predictable path
+ fs::create_dir_all(&final_dir)?;
+ let final_path = final_dir.join(dylib_name);
+ fs::copy(&dylib_file, &final_path)?;
+ println!("cargo:warning=Dylib location: {}", final_path.display());
+
+ Ok(())
+}
+
+fn main() -> Result<()> {
+ // TODO: build_circuit function to builds all related artifacts, instead of doing this externally
+ let dir = "../../circuits";
+ let circuit = "proof_of_passport";
+
+ let zkey_path = format!("{}/build/{}_final.zkey", dir, circuit);
+ let wasm_path = format!("{}/build/{}_js/{}.wasm", dir, circuit, circuit);
+ // TODO: Need to modify script for this
+ let arkzkey_path = format!("{}/build/{}_final.arkzkey", dir, circuit);
+
+ println!("cargo:warning=arkzkey_path: {}", arkzkey_path);
+
+ prepare_env(zkey_path, wasm_path, arkzkey_path)?;
+
+ Ok(())
+}
diff --git a/app/mopro-core/src/lib.rs b/app/mopro-core/src/lib.rs
new file mode 100644
index 000000000..2ac7b546f
--- /dev/null
+++ b/app/mopro-core/src/lib.rs
@@ -0,0 +1,8 @@
+pub mod middleware;
+use thiserror::Error;
+
+#[derive(Debug, Error)]
+pub enum MoproError {
+ #[error("CircomError: {0}")]
+ CircomError(String),
+}
diff --git a/app/mopro-core/src/middleware/circom/mod.rs b/app/mopro-core/src/middleware/circom/mod.rs
new file mode 100644
index 000000000..0cf497fc9
--- /dev/null
+++ b/app/mopro-core/src/middleware/circom/mod.rs
@@ -0,0 +1,860 @@
+use self::{
+ serialization::{SerializableInputs, SerializableProof, SerializableProvingKey},
+ utils::{assert_paths_exists, bytes_to_bits},
+};
+use crate::MoproError;
+
+use std::collections::HashMap;
+//use std::io::Cursor;
+use std::sync::Mutex;
+use std::time::Instant;
+
+use ark_bn254::{Bn254, Fr};
+use ark_circom::{
+ CircomBuilder,
+ CircomCircuit,
+ CircomConfig,
+ CircomReduction,
+ WitnessCalculator, //read_zkey,
+};
+use ark_crypto_primitives::snark::SNARK;
+use ark_groth16::{prepare_verifying_key, Groth16, ProvingKey};
+use ark_std::UniformRand;
+
+use ark_relations::r1cs::ConstraintMatrices;
+use ark_std::rand::thread_rng;
+use color_eyre::Result;
+use core::include_bytes;
+use num_bigint::BigInt;
+use once_cell::sync::{Lazy, OnceCell};
+
+use wasmer::{Module, Store};
+
+use ark_zkey::read_arkzkey_from_bytes; //SerializableConstraintMatrices
+
+#[cfg(feature = "dylib")]
+use {
+ std::{env, path::Path},
+ wasmer::Dylib,
+};
+
+pub mod serialization;
+pub mod utils;
+
+type GrothBn = Groth16;
+
+type CircuitInputs = HashMap>;
+
+// TODO: Split up this namespace a bit, right now quite a lot of things going on
+
+pub struct CircomState {
+ builder: Option>,
+ circuit: Option>,
+ params: Option>,
+}
+
+impl Default for CircomState {
+ fn default() -> Self {
+ Self::new()
+ }
+}
+
+// NOTE: A lot of the contents of this file is inspired by github.com/worldcoin/semaphore-rs
+
+// TODO: Replace printlns with logging
+
+//const ZKEY_BYTES: &[u8] = include_bytes!(env!("BUILD_RS_ZKEY_FILE"));
+
+const ARKZKEY_BYTES: &[u8] = include_bytes!(env!("BUILD_RS_ARKZKEY_FILE"));
+
+// static ZKEY: Lazy<(ProvingKey, ConstraintMatrices)> = Lazy::new(|| {
+// let mut reader = Cursor::new(ZKEY_BYTES);
+// read_zkey(&mut reader).expect("Failed to read zkey")
+// });
+
+static ARKZKEY: Lazy<(ProvingKey, ConstraintMatrices)> = Lazy::new(|| {
+ //let mut reader = Cursor::new(ARKZKEY_BYTES);
+ // TODO: Use reader? More flexible; unclear if perf diff
+ read_arkzkey_from_bytes(ARKZKEY_BYTES).expect("Failed to read arkzkey")
+});
+
+const WASM: &[u8] = include_bytes!(env!("BUILD_RS_WASM_FILE"));
+
+/// `WITNESS_CALCULATOR` is a lazily initialized, thread-safe singleton of type `WitnessCalculator`.
+/// `OnceCell` ensures that the initialization occurs exactly once, and `Mutex` allows safe shared
+/// access from multiple threads.
+static WITNESS_CALCULATOR: OnceCell> = OnceCell::new();
+
+/// Initializes the `WITNESS_CALCULATOR` singleton with a `WitnessCalculator` instance created from
+/// a specified dylib file (WASM circuit). Also initialize `ZKEY`.
+#[cfg(feature = "dylib")]
+pub fn initialize(dylib_path: &Path) {
+ println!("Initializing dylib: {:?}", dylib_path);
+
+ WITNESS_CALCULATOR
+ .set(from_dylib(dylib_path))
+ .expect("Failed to set WITNESS_CALCULATOR");
+
+ // Initialize ARKZKEY
+ // TODO: Speed this up even more
+ let now = std::time::Instant::now();
+ Lazy::force(&ARKZKEY);
+ println!("Initializing arkzkey took: {:.2?}", now.elapsed());
+}
+
+#[cfg(not(feature = "dylib"))]
+pub fn initialize() {
+ println!("Initializing library with arkzkey");
+
+ // Initialize ARKZKEY
+ // TODO: Speed this up even more!
+ let now = std::time::Instant::now();
+ Lazy::force(&ARKZKEY);
+ println!("Initializing arkzkey took: {:.2?}", now.elapsed());
+}
+
+/// Creates a `WitnessCalculator` instance from a dylib file.
+#[cfg(feature = "dylib")]
+fn from_dylib(path: &Path) -> Mutex {
+ let store = Store::new(&Dylib::headless().engine());
+ let module = unsafe {
+ Module::deserialize_from_file(&store, path).expect("Failed to load dylib module")
+ };
+ let result =
+ WitnessCalculator::from_module(module).expect("Failed to create WitnessCalculator");
+
+ Mutex::new(result)
+}
+
+// #[must_use]
+// pub fn zkey() -> &'static (ProvingKey, ConstraintMatrices) {
+// &ZKEY
+// }
+
+// Experimental
+#[must_use]
+pub fn arkzkey() -> &'static (ProvingKey, ConstraintMatrices) {
+ &ARKZKEY
+}
+
+/// Provides access to the `WITNESS_CALCULATOR` singleton, initializing it if necessary.
+/// It expects the path to the dylib file to be set in the `CIRCUIT_WASM_DYLIB` environment variable.
+#[cfg(feature = "dylib")]
+#[must_use]
+pub fn witness_calculator() -> &'static Mutex {
+ let var_name = "CIRCUIT_WASM_DYLIB";
+
+ WITNESS_CALCULATOR.get_or_init(|| {
+ let path = env::var(var_name).unwrap_or_else(|_| {
+ panic!(
+ "Mopro circuit WASM Dylib not initialized. \
+ Please set {} environment variable to the path of the dylib file",
+ var_name
+ )
+ });
+ from_dylib(Path::new(&path))
+ })
+}
+
+#[cfg(not(feature = "dylib"))]
+#[must_use]
+pub fn witness_calculator() -> &'static Mutex {
+ WITNESS_CALCULATOR.get_or_init(|| {
+ let store = Store::default();
+ let module = Module::from_binary(&store, WASM).expect("WASM should be valid");
+ let result =
+ WitnessCalculator::from_module(module).expect("Failed to create WitnessCalculator");
+ Mutex::new(result)
+ })
+}
+
+pub fn generate_proof2(
+ inputs: CircuitInputs,
+) -> Result<(SerializableProof, SerializableInputs), MoproError> {
+ let mut rng = thread_rng();
+ let rng = &mut rng;
+
+ let r = ark_bn254::Fr::rand(rng);
+ let s = ark_bn254::Fr::rand(rng);
+
+ println!("Generating proof 2");
+
+ let now = std::time::Instant::now();
+ let full_assignment = witness_calculator()
+ .lock()
+ .expect("Failed to lock witness calculator")
+ .calculate_witness_element::(inputs, false)
+ .map_err(|e| MoproError::CircomError(e.to_string()))?;
+
+ println!("Witness generation took: {:.2?}", now.elapsed());
+
+ let now = std::time::Instant::now();
+ //let zkey = zkey();
+ let zkey = arkzkey();
+ println!("Loading arkzkey took: {:.2?}", now.elapsed());
+
+ let public_inputs = full_assignment.as_slice()[1..zkey.1.num_instance_variables].to_vec();
+
+ let now = std::time::Instant::now();
+ let ark_proof = Groth16::<_, CircomReduction>::create_proof_with_reduction_and_matrices(
+ &zkey.0,
+ r,
+ s,
+ &zkey.1,
+ zkey.1.num_instance_variables,
+ zkey.1.num_constraints,
+ full_assignment.as_slice(),
+ );
+
+ let proof = ark_proof.map_err(|e| MoproError::CircomError(e.to_string()))?;
+
+ println!("proof generation took: {:.2?}", now.elapsed());
+
+ // TODO: Add SerializableInputs(inputs)))
+ Ok((SerializableProof(proof), SerializableInputs(public_inputs)))
+}
+
+pub fn verify_proof2(
+ serialized_proof: SerializableProof,
+ serialized_inputs: SerializableInputs,
+) -> Result {
+ let start = Instant::now();
+ let zkey = arkzkey();
+ let pvk = prepare_verifying_key(&zkey.0.vk);
+
+ let proof_verified =
+ GrothBn::verify_with_processed_vk(&pvk, &serialized_inputs.0, &serialized_proof.0)
+ .map_err(|e| MoproError::CircomError(e.to_string()))?;
+
+ let verification_duration = start.elapsed();
+ println!("Verification time 2: {:?}", verification_duration);
+ Ok(proof_verified)
+}
+
+impl CircomState {
+ pub fn new() -> Self {
+ Self {
+ builder: None,
+ circuit: None,
+ params: None,
+ }
+ }
+
+ pub fn setup(
+ &mut self,
+ wasm_path: &str,
+ r1cs_path: &str,
+ ) -> Result {
+ assert_paths_exists(wasm_path, r1cs_path)?;
+ println!("Setup");
+ let start = Instant::now();
+
+ // Load the WASM and R1CS for witness and proof generation
+ let cfg = self.load_config(wasm_path, r1cs_path)?;
+
+ // Create an empty instance for setup
+ self.builder = Some(CircomBuilder::new(cfg));
+
+ // Run a trusted setup using the rng in the state
+ let params = self.run_trusted_setup()?;
+
+ self.params = Some(params.clone());
+
+ let setup_duration = start.elapsed();
+ println!("Setup time: {:?}", setup_duration);
+
+ Ok(SerializableProvingKey(params))
+ }
+
+ // NOTE: Consider generate_proof> API
+ // XXX: BigInt might present problems for UniFFI
+ pub fn generate_proof(
+ &mut self,
+ inputs: CircuitInputs,
+ ) -> Result<(SerializableProof, SerializableInputs), MoproError> {
+ let start = Instant::now();
+ println!("Generating proof");
+
+ let mut rng = thread_rng();
+
+ let builder = self.builder.as_mut().ok_or(MoproError::CircomError(
+ "Builder has not been set up".to_string(),
+ ))?;
+
+ // Insert our inputs as key value pairs
+ for (key, values) in &inputs {
+ for value in values {
+ builder.push_input(&key, value.clone());
+ }
+ }
+
+ // Clone the builder, then build the circuit
+ let circom = builder
+ .clone()
+ .build()
+ .map_err(|e| MoproError::CircomError(e.to_string()))?;
+
+ // Update the circuit in self
+ self.circuit = Some(circom.clone());
+
+ let params = self.params.as_ref().ok_or(MoproError::CircomError(
+ "Parameters have not been set up".to_string(),
+ ))?;
+
+ let inputs = circom.get_public_inputs().ok_or(MoproError::CircomError(
+ "Failed to get public inputs".to_string(),
+ ))?;
+
+ let proof = GrothBn::prove(params, circom.clone(), &mut rng)
+ .map_err(|e| MoproError::CircomError(e.to_string()))?;
+
+ let proof_duration = start.elapsed();
+ println!("Proof generation time: {:?}", proof_duration);
+
+ Ok((SerializableProof(proof), SerializableInputs(inputs)))
+ }
+
+ pub fn verify_proof(
+ &self,
+ serialized_proof: SerializableProof,
+ serialized_inputs: SerializableInputs,
+ ) -> Result {
+ let start = Instant::now();
+
+ println!("Verifying proof");
+
+ let params = self.params.as_ref().ok_or(MoproError::CircomError(
+ "Parameters have not been set up".to_string(),
+ ))?;
+
+ let pvk =
+ GrothBn::process_vk(¶ms.vk).map_err(|e| MoproError::CircomError(e.to_string()))?;
+
+ let proof_verified =
+ GrothBn::verify_with_processed_vk(&pvk, &serialized_inputs.0, &serialized_proof.0)
+ .map_err(|e| MoproError::CircomError(e.to_string()))?;
+
+ let verification_duration = start.elapsed();
+ println!("Verification time: {:?}", verification_duration);
+ Ok(proof_verified)
+ }
+
+ fn load_config(
+ &self,
+ wasm_path: &str,
+ r1cs_path: &str,
+ ) -> Result, MoproError> {
+ CircomConfig::::new(wasm_path, r1cs_path)
+ .map_err(|e| MoproError::CircomError(e.to_string()))
+ }
+
+ fn run_trusted_setup(&mut self) -> Result, MoproError> {
+ let circom_setup = self
+ .builder
+ .as_mut()
+ .ok_or(MoproError::CircomError(
+ "Builder has not been set up".to_string(),
+ ))?
+ .setup();
+
+ let mut rng = thread_rng();
+
+ GrothBn::generate_random_parameters_with_reduction(circom_setup, &mut rng)
+ .map_err(|e| MoproError::CircomError(e.to_string()))
+ }
+}
+
+// Helper function for Keccak256 example
+pub fn bytes_to_circuit_inputs(bytes: &[u8]) -> CircuitInputs {
+ let bits = bytes_to_bits(bytes);
+ let big_int_bits = bits
+ .into_iter()
+ .map(|bit| BigInt::from(bit as u8))
+ .collect();
+ let mut inputs = HashMap::new();
+ inputs.insert("in".to_string(), big_int_bits);
+ inputs
+}
+
+pub fn strings_to_circuit_inputs(strings: &[&str]) -> Vec {
+ strings
+ .iter()
+ .map(|&value| BigInt::parse_bytes(value.as_bytes(), 10).unwrap())
+ .collect()
+}
+
+pub fn bytes_to_circuit_outputs(bytes: &[u8]) -> SerializableInputs {
+ let bits = bytes_to_bits(bytes);
+ let field_bits = bits.into_iter().map(|bit| Fr::from(bit as u8)).collect();
+ SerializableInputs(field_bits)
+}
+
+#[cfg(test)]
+mod tests {
+ use super::*;
+
+ #[test]
+ fn test_setup_prove_verify_simple() {
+ let wasm_path = "./examples/circom/multiplier2/target/multiplier2_js/multiplier2.wasm";
+ let r1cs_path = "./examples/circom/multiplier2/target/multiplier2.r1cs";
+
+ // Instantiate CircomState
+ let mut circom_state = CircomState::new();
+
+ // Setup
+ let setup_res = circom_state.setup(wasm_path, r1cs_path);
+ assert!(setup_res.is_ok());
+
+ let _serialized_pk = setup_res.unwrap();
+
+ // Deserialize the proving key and inputs if necessary
+
+ // Prepare inputs
+ let mut inputs = HashMap::new();
+ let a = 3;
+ let b = 5;
+ let c = a * b;
+ inputs.insert("a".to_string(), vec![BigInt::from(a)]);
+ inputs.insert("b".to_string(), vec![BigInt::from(b)]);
+ // output = [public output c, public input a]
+ let expected_output = vec![Fr::from(c), Fr::from(a)];
+ let serialized_outputs = SerializableInputs(expected_output);
+
+ // Proof generation
+ let generate_proof_res = circom_state.generate_proof(inputs);
+
+ // Check and print the error if there is one
+ if let Err(e) = &generate_proof_res {
+ println!("Error: {:?}", e);
+ }
+
+ assert!(generate_proof_res.is_ok());
+
+ let (serialized_proof, serialized_inputs) = generate_proof_res.unwrap();
+
+ // Check output
+ assert_eq!(serialized_inputs, serialized_outputs);
+
+ // Proof verification
+ let verify_res = circom_state.verify_proof(serialized_proof, serialized_inputs);
+ assert!(verify_res.is_ok());
+ assert!(verify_res.unwrap()); // Verifying that the proof was indeed verified
+ }
+
+ #[test]
+ fn test_setup_prove_verify_keccak() {
+ let wasm_path =
+ "./examples/circom/keccak256/target/keccak256_256_test_js/keccak256_256_test.wasm";
+ let r1cs_path = "./examples/circom/keccak256/target/keccak256_256_test.r1cs";
+
+ // Instantiate CircomState
+ let mut circom_state = CircomState::new();
+
+ // Setup
+ let setup_res = circom_state.setup(wasm_path, r1cs_path);
+ assert!(setup_res.is_ok());
+
+ let _serialized_pk = setup_res.unwrap();
+
+ // Deserialize the proving key and inputs if necessary
+
+ // Prepare inputs
+ let input_vec = vec![
+ 116, 101, 115, 116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,
+ ];
+
+ // Expected output
+ let expected_output_vec = vec![
+ 37, 17, 98, 135, 161, 178, 88, 97, 125, 150, 143, 65, 228, 211, 170, 133, 153, 9, 88,
+ 212, 4, 212, 175, 238, 249, 210, 214, 116, 170, 85, 45, 21,
+ ];
+
+ let inputs = bytes_to_circuit_inputs(&input_vec);
+ let serialized_outputs = bytes_to_circuit_outputs(&expected_output_vec);
+
+ // Proof generation
+ let generate_proof_res = circom_state.generate_proof(inputs);
+
+ // Check and print the error if there is one
+ if let Err(e) = &generate_proof_res {
+ println!("Error: {:?}", e);
+ }
+
+ assert!(generate_proof_res.is_ok());
+
+ let (serialized_proof, serialized_inputs) = generate_proof_res.unwrap();
+
+ // Check output
+ assert_eq!(serialized_inputs, serialized_outputs);
+
+ // Proof verification
+ let verify_res = circom_state.verify_proof(serialized_proof, serialized_inputs);
+ assert!(verify_res.is_ok());
+
+ assert!(verify_res.unwrap()); // Verifying that the proof was indeed verified
+ }
+
+ #[test]
+ fn test_setup_error() {
+ // Arrange: Create a new CircomState instance
+ let mut circom_state = CircomState::new();
+
+ let wasm_path = "badpath/multiplier2.wasm";
+ let r1cs_path = "badpath/multiplier2.r1cs";
+
+ // Act: Call the setup method
+ let result = circom_state.setup(wasm_path, r1cs_path);
+
+ // Assert: Check that the method returns an error
+ assert!(result.is_err());
+ }
+
+ #[cfg(feature = "dylib")]
+ #[test]
+ fn test_dylib_init_and_generate_witness() {
+ // Assumes that the dylib file has been built and is in the following location
+ let dylib_path = "target/debug/aarch64-apple-darwin/keccak256.dylib";
+
+ // Initialize libray
+ initialize(Path::new(&dylib_path));
+
+ let input_vec = vec![
+ 116, 101, 115, 116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,
+ ];
+
+ let inputs = bytes_to_circuit_inputs(&input_vec);
+ let now = std::time::Instant::now();
+ let full_assignment = witness_calculator()
+ .lock()
+ .expect("Failed to lock witness calculator")
+ .calculate_witness_element::(inputs, false)
+ .map_err(|e| MoproError::CircomError(e.to_string()));
+
+ println!("Witness generation took: {:.2?}", now.elapsed());
+
+ assert!(full_assignment.is_ok());
+ }
+
+ #[test]
+ fn test_generate_proof2() {
+ // XXX: This can be done better
+ #[cfg(feature = "dylib")]
+ {
+ // Assumes that the dylib file has been built and is in the following location
+ let dylib_path = "target/debug/aarch64-apple-darwin/keccak256.dylib";
+
+ // Initialize libray
+ initialize(Path::new(&dylib_path));
+ }
+
+ let input_vec = vec![
+ 116, 101, 115, 116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,
+ ];
+ let expected_output_vec = vec![
+ 37, 17, 98, 135, 161, 178, 88, 97, 125, 150, 143, 65, 228, 211, 170, 133, 153, 9, 88,
+ 212, 4, 212, 175, 238, 249, 210, 214, 116, 170, 85, 45, 21,
+ ];
+ let inputs = bytes_to_circuit_inputs(&input_vec);
+ let serialized_outputs = bytes_to_circuit_outputs(&expected_output_vec);
+
+ let generate_proof_res = generate_proof2(inputs);
+ let (serialized_proof, serialized_inputs) = generate_proof_res.unwrap();
+ assert_eq!(serialized_inputs, serialized_outputs);
+
+ // Proof verification
+ let verify_res = verify_proof2(serialized_proof, serialized_inputs);
+ assert!(verify_res.is_ok());
+ assert!(verify_res.unwrap()); // Verifying that the proof was indeed verified
+ }
+
+ #[ignore = "ignore for ci"]
+ #[test]
+ fn test_setup_prove_rsa() {
+ let wasm_path = "./examples/circom/rsa/target/main_js/main.wasm";
+ let r1cs_path = "./examples/circom/rsa/target/main.r1cs";
+
+ // Instantiate CircomState
+ let mut circom_state = CircomState::new();
+
+ // Setup
+ let setup_res = circom_state.setup(wasm_path, r1cs_path);
+ assert!(setup_res.is_ok());
+
+ let _serialized_pk = setup_res.unwrap();
+
+ // Deserialize the proving key and inputs if necessary
+
+ // Prepare inputs
+ let signature = [
+ "3582320600048169363",
+ "7163546589759624213",
+ "18262551396327275695",
+ "4479772254206047016",
+ "1970274621151677644",
+ "6547632513799968987",
+ "921117808165172908",
+ "7155116889028933260",
+ "16769940396381196125",
+ "17141182191056257954",
+ "4376997046052607007",
+ "17471823348423771450",
+ "16282311012391954891",
+ "70286524413490741",
+ "1588836847166444745",
+ "15693430141227594668",
+ "13832254169115286697",
+ "15936550641925323613",
+ "323842208142565220",
+ "6558662646882345749",
+ "15268061661646212265",
+ "14962976685717212593",
+ "15773505053543368901",
+ "9586594741348111792",
+ "1455720481014374292",
+ "13945813312010515080",
+ "6352059456732816887",
+ "17556873002865047035",
+ "2412591065060484384",
+ "11512123092407778330",
+ "8499281165724578877",
+ "12768005853882726493",
+ ];
+ let modulus = [
+ "13792647154200341559",
+ "12773492180790982043",
+ "13046321649363433702",
+ "10174370803876824128",
+ "7282572246071034406",
+ "1524365412687682781",
+ "4900829043004737418",
+ "6195884386932410966",
+ "13554217876979843574",
+ "17902692039595931737",
+ "12433028734895890975",
+ "15971442058448435996",
+ "4591894758077129763",
+ "11258250015882429548",
+ "16399550288873254981",
+ "8246389845141771315",
+ "14040203746442788850",
+ "7283856864330834987",
+ "12297563098718697441",
+ "13560928146585163504",
+ "7380926829734048483",
+ "14591299561622291080",
+ "8439722381984777599",
+ "17375431987296514829",
+ "16727607878674407272",
+ "3233954801381564296",
+ "17255435698225160983",
+ "15093748890170255670",
+ "15810389980847260072",
+ "11120056430439037392",
+ "5866130971823719482",
+ "13327552690270163501",
+ ];
+ let base_message = [
+ "18114495772705111902",
+ "2254271930739856077",
+ "2068851770",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ ];
+
+ let mut inputs: HashMap> = HashMap::new();
+ inputs.insert(
+ "signature".to_string(),
+ strings_to_circuit_inputs(&signature),
+ );
+ inputs.insert("modulus".to_string(), strings_to_circuit_inputs(&modulus));
+ inputs.insert(
+ "base_message".to_string(),
+ strings_to_circuit_inputs(&base_message),
+ );
+
+ // Proof generation
+ let generate_proof_res = circom_state.generate_proof(inputs);
+
+ // Check and print the error if there is one
+ if let Err(e) = &generate_proof_res {
+ println!("Error: {:?}", e);
+ }
+
+ assert!(generate_proof_res.is_ok());
+
+ let (serialized_proof, serialized_inputs) = generate_proof_res.unwrap();
+
+ // Proof verification
+ let verify_res = circom_state.verify_proof(serialized_proof, serialized_inputs);
+ assert!(verify_res.is_ok());
+
+ assert!(verify_res.unwrap()); // Verifying that the proof was indeed verified
+ }
+
+ #[ignore = "ignore for ci"]
+ #[test]
+ fn test_setup_prove_rsa2() {
+ // Prepare inputs
+ let signature = [
+ "3582320600048169363",
+ "7163546589759624213",
+ "18262551396327275695",
+ "4479772254206047016",
+ "1970274621151677644",
+ "6547632513799968987",
+ "921117808165172908",
+ "7155116889028933260",
+ "16769940396381196125",
+ "17141182191056257954",
+ "4376997046052607007",
+ "17471823348423771450",
+ "16282311012391954891",
+ "70286524413490741",
+ "1588836847166444745",
+ "15693430141227594668",
+ "13832254169115286697",
+ "15936550641925323613",
+ "323842208142565220",
+ "6558662646882345749",
+ "15268061661646212265",
+ "14962976685717212593",
+ "15773505053543368901",
+ "9586594741348111792",
+ "1455720481014374292",
+ "13945813312010515080",
+ "6352059456732816887",
+ "17556873002865047035",
+ "2412591065060484384",
+ "11512123092407778330",
+ "8499281165724578877",
+ "12768005853882726493",
+ ];
+ let modulus = [
+ "13792647154200341559",
+ "12773492180790982043",
+ "13046321649363433702",
+ "10174370803876824128",
+ "7282572246071034406",
+ "1524365412687682781",
+ "4900829043004737418",
+ "6195884386932410966",
+ "13554217876979843574",
+ "17902692039595931737",
+ "12433028734895890975",
+ "15971442058448435996",
+ "4591894758077129763",
+ "11258250015882429548",
+ "16399550288873254981",
+ "8246389845141771315",
+ "14040203746442788850",
+ "7283856864330834987",
+ "12297563098718697441",
+ "13560928146585163504",
+ "7380926829734048483",
+ "14591299561622291080",
+ "8439722381984777599",
+ "17375431987296514829",
+ "16727607878674407272",
+ "3233954801381564296",
+ "17255435698225160983",
+ "15093748890170255670",
+ "15810389980847260072",
+ "11120056430439037392",
+ "5866130971823719482",
+ "13327552690270163501",
+ ];
+ let base_message = [
+ "18114495772705111902",
+ "2254271930739856077",
+ "2068851770",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ ];
+
+ let mut inputs: HashMap> = HashMap::new();
+ inputs.insert(
+ "signature".to_string(),
+ strings_to_circuit_inputs(&signature),
+ );
+ inputs.insert("modulus".to_string(), strings_to_circuit_inputs(&modulus));
+ inputs.insert(
+ "base_message".to_string(),
+ strings_to_circuit_inputs(&base_message),
+ );
+
+ // Proof generation
+ let generate_proof_res = generate_proof2(inputs);
+
+ // Check and print the error if there is one
+ if let Err(e) = &generate_proof_res {
+ println!("Error: {:?}", e);
+ }
+
+ assert!(generate_proof_res.is_ok());
+
+ let (serialized_proof, serialized_inputs) = generate_proof_res.unwrap();
+
+ // Proof verification
+ let verify_res = verify_proof2(serialized_proof, serialized_inputs);
+ assert!(verify_res.is_ok());
+
+ assert!(verify_res.unwrap()); // Verifying that the proof was indeed verified
+ }
+}
diff --git a/app/mopro-core/src/middleware/circom/serialization.rs b/app/mopro-core/src/middleware/circom/serialization.rs
new file mode 100644
index 000000000..47fa40088
--- /dev/null
+++ b/app/mopro-core/src/middleware/circom/serialization.rs
@@ -0,0 +1,106 @@
+use ark_bn254::Bn254;
+use ark_ec::pairing::Pairing;
+use ark_groth16::{Proof, ProvingKey};
+use ark_serialize::{CanonicalDeserialize, CanonicalSerialize};
+use color_eyre::Result;
+
+#[derive(CanonicalSerialize, CanonicalDeserialize, Clone, Debug)]
+pub struct SerializableProvingKey(pub ProvingKey);
+
+#[derive(CanonicalSerialize, CanonicalDeserialize, Clone, Debug)]
+pub struct SerializableProof(pub Proof);
+
+#[derive(CanonicalSerialize, CanonicalDeserialize, Clone, Debug, PartialEq)]
+pub struct SerializableInputs(pub Vec<::ScalarField>);
+
+pub fn serialize_proof(proof: &SerializableProof) -> Vec {
+ let mut serialized_data = Vec::new();
+ proof
+ .serialize_uncompressed(&mut serialized_data)
+ .expect("Serialization failed");
+ serialized_data
+}
+
+pub fn deserialize_proof(data: Vec) -> SerializableProof {
+ SerializableProof::deserialize_uncompressed(&mut &data[..]).expect("Deserialization failed")
+}
+
+pub fn serialize_proving_key(pk: &SerializableProvingKey) -> Vec {
+ let mut serialized_data = Vec::new();
+ pk.serialize_uncompressed(&mut serialized_data)
+ .expect("Serialization failed");
+ serialized_data
+}
+
+pub fn deserialize_proving_key(data: Vec) -> SerializableProvingKey {
+ SerializableProvingKey::deserialize_uncompressed(&mut &data[..])
+ .expect("Deserialization failed")
+}
+
+pub fn serialize_inputs(inputs: &SerializableInputs) -> Vec {
+ let mut serialized_data = Vec::new();
+ inputs
+ .serialize_uncompressed(&mut serialized_data)
+ .expect("Serialization failed");
+ serialized_data
+}
+
+pub fn deserialize_inputs(data: Vec) -> SerializableInputs {
+ SerializableInputs::deserialize_uncompressed(&mut &data[..]).expect("Deserialization failed")
+}
+
+#[cfg(test)]
+mod tests {
+ use super::*;
+ use crate::middleware::circom::serialization::SerializableProvingKey;
+ use crate::middleware::circom::utils::assert_paths_exists;
+ use crate::MoproError;
+ use ark_bn254::Bn254;
+ use ark_circom::{CircomBuilder, CircomConfig};
+ use ark_groth16::Groth16;
+ use ark_std::rand::thread_rng;
+ use color_eyre::Result;
+
+ type GrothBn = Groth16;
+
+ fn generate_serializable_proving_key(
+ wasm_path: &str,
+ r1cs_path: &str,
+ ) -> Result {
+ assert_paths_exists(wasm_path, r1cs_path)?;
+
+ let cfg = CircomConfig::::new(wasm_path, r1cs_path)
+ .map_err(|e| MoproError::CircomError(e.to_string()))?;
+
+ let builder = CircomBuilder::new(cfg);
+ let circom = builder.setup();
+
+ let mut rng = thread_rng();
+ let raw_params = GrothBn::generate_random_parameters_with_reduction(circom, &mut rng)
+ .map_err(|e| MoproError::CircomError(e.to_string()))?;
+
+ Ok(SerializableProvingKey(raw_params))
+ }
+
+ #[test]
+ fn test_serialization_deserialization() {
+ let wasm_path = "./examples/circom/multiplier2/target/multiplier2_js/multiplier2.wasm";
+ let r1cs_path = "./examples/circom/multiplier2/target/multiplier2.r1cs";
+
+ // Generate a serializable proving key for testing
+ let serializable_pk = generate_serializable_proving_key(wasm_path, r1cs_path)
+ .expect("Failed to generate serializable proving key");
+
+ // Serialize
+ let serialized_data = serialize_proving_key(&serializable_pk);
+
+ // Deserialize
+ let deserialized_pk = deserialize_proving_key(serialized_data);
+
+ // Assert that the original and deserialized ProvingKeys are the same
+ assert_eq!(
+ serializable_pk.0, deserialized_pk.0,
+ "Original and deserialized proving keys do not match"
+ );
+ }
+}
diff --git a/app/mopro-core/src/middleware/circom/utils.rs b/app/mopro-core/src/middleware/circom/utils.rs
new file mode 100644
index 000000000..31d6122c0
--- /dev/null
+++ b/app/mopro-core/src/middleware/circom/utils.rs
@@ -0,0 +1,33 @@
+use crate::MoproError;
+
+use std::path::Path;
+
+pub fn assert_paths_exists(wasm_path: &str, r1cs_path: &str) -> Result<(), MoproError> {
+ // Check that the files exist - ark-circom should probably do this instead and not panic
+ if !Path::new(wasm_path).exists() {
+ return Err(MoproError::CircomError(format!(
+ "Path does not exist: {}",
+ wasm_path
+ )));
+ }
+
+ if !Path::new(r1cs_path).exists() {
+ return Err(MoproError::CircomError(format!(
+ "Path does not exist: {}",
+ r1cs_path
+ )));
+ };
+
+ Ok(())
+}
+
+pub fn bytes_to_bits(bytes: &[u8]) -> Vec {
+ let mut bits = Vec::new();
+ for &byte in bytes {
+ for j in 0..8 {
+ let bit = (byte >> j) & 1;
+ bits.push(bit == 1);
+ }
+ }
+ bits
+}
diff --git a/app/mopro-core/src/middleware/mod.rs b/app/mopro-core/src/middleware/mod.rs
new file mode 100644
index 000000000..d18079a10
--- /dev/null
+++ b/app/mopro-core/src/middleware/mod.rs
@@ -0,0 +1 @@
+pub mod circom;
diff --git a/app/mopro-ffi/.gitignore b/app/mopro-ffi/.gitignore
new file mode 100644
index 000000000..8648243db
--- /dev/null
+++ b/app/mopro-ffi/.gitignore
@@ -0,0 +1,18 @@
+# Generated by Cargo
+# will have compiled files and executables
+debug/
+target/
+
+# Remove Cargo.lock from gitignore if creating an executable, leave it for libraries
+# More information here https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html
+Cargo.lock
+
+# These are backup files generated by rustfmt
+**/*.rs.bk
+
+# MSVC Windows builds of rustc generate these, which store debugging information
+*.pdb
+
+# kotlin generated file
+jniLibs/
+src/uniffi/mopro/
\ No newline at end of file
diff --git a/app/mopro-ffi/Cargo.toml b/app/mopro-ffi/Cargo.toml
new file mode 100644
index 000000000..e8fbd1111
--- /dev/null
+++ b/app/mopro-ffi/Cargo.toml
@@ -0,0 +1,47 @@
+[package]
+name = "mopro-ffi"
+version = "0.1.0"
+edition = "2021"
+
+# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
+
+[lib]
+crate-type = ["lib", "cdylib", "staticlib"]
+name = "mopro_ffi"
+
+[[bin]]
+name = "uniffi-bindgen"
+path = "uniffi-bindgen.rs"
+
+[features]
+default = []
+
+# If we enable dylib here it should be enabled in mopro-core as well
+dylib = ["mopro-core/dylib"]
+
+[patch.crates-io]
+# NOTE: Forked wasmer to work around memory limits
+# See https://github.com/wasmerio/wasmer/commit/09c7070
+wasmer = { git = "https://github.com/oskarth/wasmer.git", rev = "09c7070" }
+
+[dependencies]
+mopro-core = { path = "../mopro-core" }
+uniffi = { version = "0.25", features = ["cli"] }
+serde = { version = "1", features = ["derive"] }
+bincode = "1"
+ark-serialize = { version = "=0.4.1", features = ["derive"] }
+num-bigint = { version = "=0.4.3", default-features = false, features = [
+ "rand",
+] }
+
+# Error handling
+thiserror = "=1.0.39"
+color-eyre = "=0.6.2"
+criterion = "=0.3.6"
+
+[build-dependencies]
+uniffi = { version = "0.25", features = ["build"] }
+
+[dev-dependencies]
+uniffi = { version = "0.25", features = ["bindgen-tests"] }
+ark-bn254 = { version = "=0.4.0" }
diff --git a/app/mopro-ffi/Makefile b/app/mopro-ffi/Makefile
new file mode 100644
index 000000000..072c25bb8
--- /dev/null
+++ b/app/mopro-ffi/Makefile
@@ -0,0 +1,16 @@
+TARGETS = x86_64-apple-ios aarch64-apple-ios aarch64-apple-ios-sim
+BUILD_TYPES = debug release
+
+all: $(BUILD_TYPES)
+
+debug: $(TARGETS)
+ for target in $(TARGETS); do \
+ cargo build --target $$target; \
+ done
+
+release:
+ for target in $(TARGETS); do \
+ cargo build --release --target $$target; \
+ done
+
+.PHONY: all $(BUILD_TYPES) $(TARGETS)
\ No newline at end of file
diff --git a/app/mopro-ffi/README.md b/app/mopro-ffi/README.md
new file mode 100644
index 000000000..ec8eb6e62
--- /dev/null
+++ b/app/mopro-ffi/README.md
@@ -0,0 +1,48 @@
+# mopro-ffi
+
+Thin wrapper around `mopro-core`, exposes UniFFI bindings to be used by `rust-ios`, etc.
+
+## Overview
+
+TBD.
+
+## Development
+
+### Prerequisites
+
+1. Ensure you have Rust installed
+2. Add platform targets `rustup target add x86_64-apple-ios aarch64-apple-ios aarch64-apple-ios-sim`
+3. Install `uniffi-bindgen` locally with `cargo install --bin uniffi-bindgen --path .`
+4. In order to locally run the bindings tests, you will need
+ * Kotlin:
+ * `kotlinc`, the [Kotlin command-line compiler](https://kotlinlang.org/docs/command-line.html).
+ * `ktlint`, the [Kotlin linter used to format the generated bindings](https://ktlint.github.io/).
+ * The [Java Native Access](https://github.com/java-native-access/jna#download) JAR downloaded and its path
+ added to your `$CLASSPATH` environment variable.
+ * Swift:
+ * `swift` and `swiftc`, the [Swift command-line tools](https://swift.org/download/).
+ * The Swift `Foundation` package.
+
+### Platforms supported
+
+Currently iOS is the main target, but Android will soon follow. PRs welcome.
+
+### Building
+
+Run `make` to build debug and release static libraries for supported platforms.
+
+### Generate UniFFI bindings
+
+The following command generates Swift bindings:
+
+`uniffi-bindgen generate src/mopro.udl --language swift --out-dir target/SwiftBindings`
+
+## Test bindings
+
+To test bindings:
+
+`cargo test --test test_generated_bindings`
+
+To test bindings in release mode without warning:
+
+`cargo test --test test_generated_bindings --release 2>/dev/null`
diff --git a/app/mopro-ffi/build.rs b/app/mopro-ffi/build.rs
new file mode 100644
index 000000000..ca4b249f7
--- /dev/null
+++ b/app/mopro-ffi/build.rs
@@ -0,0 +1,3 @@
+fn main() {
+ uniffi::generate_scaffolding("src/mopro.udl").expect("Building the UDL file failed");
+}
diff --git a/app/mopro-ffi/src/lib.rs b/app/mopro-ffi/src/lib.rs
new file mode 100644
index 000000000..94c5c9b1b
--- /dev/null
+++ b/app/mopro-ffi/src/lib.rs
@@ -0,0 +1,295 @@
+use mopro_core::middleware::circom;
+use mopro_core::MoproError;
+
+use num_bigint::BigInt;
+use std::collections::HashMap;
+use std::path::Path;
+use std::str::FromStr;
+use std::sync::RwLock;
+
+#[derive(Debug)]
+pub enum FFIError {
+ MoproError(mopro_core::MoproError),
+ SerializationError(String),
+}
+
+#[derive(Debug, Clone)]
+pub struct GenerateProofResult {
+ pub proof: Vec,
+ pub inputs: Vec,
+}
+
+// NOTE: Make UniFFI and Rust happy, can maybe do some renaming here
+#[allow(non_snake_case)]
+#[derive(Debug, Clone)]
+pub struct SetupResult {
+ pub provingKey: Vec,
+}
+
+// pub inputs: Vec,
+
+impl From for FFIError {
+ fn from(error: mopro_core::MoproError) -> Self {
+ FFIError::MoproError(error)
+ }
+}
+
+pub struct MoproCircom {
+ state: RwLock,
+}
+
+impl Default for MoproCircom {
+ fn default() -> Self {
+ Self::new()
+ }
+}
+
+#[cfg(not(feature = "dylib"))]
+pub fn initialize_mopro() -> Result<(), MoproError> {
+ // TODO: Error handle / panic?
+ circom::initialize();
+ Ok(())
+}
+
+#[cfg(feature = "dylib")]
+pub fn initialize_mopro() -> Result<(), MoproError> {
+ println!("need to use dylib to init!");
+ panic!("need to use dylib to init!");
+}
+
+#[cfg(feature = "dylib")]
+pub fn initialize_mopro_dylib(dylib_path: String) -> Result<(), MoproError> {
+ // TODO: Error handle / panic?
+ let dylib_path = Path::new(dylib_path.as_str());
+ circom::initialize(dylib_path);
+ Ok(())
+}
+
+#[cfg(not(feature = "dylib"))]
+pub fn initialize_mopro_dylib(dylib_path: String) -> Result<(), MoproError> {
+ println!("dylib feature not enabled!");
+ panic!("dylib feature not enabled!");
+}
+
+pub fn generate_proof2(
+ inputs: HashMap>,
+) -> Result {
+ // Convert inputs to BigInt
+ let bigint_inputs = inputs
+ .into_iter()
+ .map(|(k, v)| {
+ (
+ k,
+ v.into_iter()
+ .map(|i| BigInt::from_str(&i).unwrap())
+ .collect(),
+ )
+ })
+ .collect();
+
+ let (proof, inputs) = circom::generate_proof2(bigint_inputs)?;
+
+ let serialized_proof = circom::serialization::serialize_proof(&proof);
+ let serialized_inputs = circom::serialization::serialize_inputs(&inputs);
+ Ok(GenerateProofResult {
+ proof: serialized_proof,
+ inputs: serialized_inputs,
+ })
+}
+
+pub fn verify_proof2(proof: Vec, public_input: Vec) -> Result {
+ let deserialized_proof = circom::serialization::deserialize_proof(proof);
+ let deserialized_public_input = circom::serialization::deserialize_inputs(public_input);
+ let is_valid = circom::verify_proof2(deserialized_proof, deserialized_public_input)?;
+ Ok(is_valid)
+}
+
+// TODO: Use FFIError::SerializationError instead
+impl MoproCircom {
+ pub fn new() -> Self {
+ Self {
+ state: RwLock::new(circom::CircomState::new()),
+ }
+ }
+
+ pub fn setup(&self, wasm_path: String, r1cs_path: String) -> Result {
+ let mut state_guard = self.state.write().unwrap();
+ let pk = state_guard.setup(wasm_path.as_str(), r1cs_path.as_str())?;
+ Ok(SetupResult {
+ provingKey: circom::serialization::serialize_proving_key(&pk),
+ })
+ }
+
+ // inputs: circom::serialization::serialize_inputs(&inputs),
+
+ pub fn generate_proof(
+ &self,
+ inputs: HashMap>,
+ ) -> Result {
+ let mut state_guard = self.state.write().unwrap();
+
+ // Convert inputs to BigInt
+ let bigint_inputs = inputs
+ .into_iter()
+ .map(|(k, v)| {
+ (
+ k,
+ v.into_iter()
+ .map(|i| BigInt::from_str(&i).unwrap())
+ .collect(),
+ )
+ })
+ .collect();
+
+ let (proof, inputs) = state_guard.generate_proof(bigint_inputs)?;
+
+ Ok(GenerateProofResult {
+ proof: circom::serialization::serialize_proof(&proof),
+ inputs: circom::serialization::serialize_inputs(&inputs),
+ })
+ }
+
+ pub fn verify_proof(&self, proof: Vec, public_input: Vec) -> Result {
+ let state_guard = self.state.read().unwrap();
+ let deserialized_proof = circom::serialization::deserialize_proof(proof);
+ let deserialized_public_input = circom::serialization::deserialize_inputs(public_input);
+ let is_valid = state_guard.verify_proof(deserialized_proof, deserialized_public_input)?;
+ Ok(is_valid)
+ }
+}
+
+fn add(a: u32, b: u32) -> u32 {
+ a + b
+}
+
+fn hello() -> String {
+ "Hello World from Rust".to_string()
+}
+
+// TODO: Remove me
+// UniFFI expects String type
+// See https://mozilla.github.io/uniffi-rs/udl/builtin_types.html
+// fn run_example(wasm_path: String, r1cs_path: String) -> Result<(), MoproError> {
+// circom::run_example(wasm_path.as_str(), r1cs_path.as_str())
+// }
+
+uniffi::include_scaffolding!("mopro");
+
+#[cfg(test)]
+mod tests {
+ use super::*;
+ use ark_bn254::Fr;
+ use num_bigint::BigUint;
+
+ fn bytes_to_circuit_inputs(input_vec: &Vec) -> HashMap> {
+ let bits = circom::utils::bytes_to_bits(&input_vec);
+ let converted_vec: Vec = bits
+ .into_iter()
+ .map(|bit| (bit as i32).to_string())
+ .collect();
+ let mut inputs = HashMap::new();
+ inputs.insert("in".to_string(), converted_vec);
+ inputs
+ }
+
+ fn bytes_to_circuit_outputs(bytes: &[u8]) -> Vec {
+ let bits = circom::utils::bytes_to_bits(bytes);
+ let field_bits = bits.into_iter().map(|bit| Fr::from(bit as u8)).collect();
+ let circom_outputs = circom::serialization::SerializableInputs(field_bits);
+ circom::serialization::serialize_inputs(&circom_outputs)
+ }
+
+ #[test]
+ fn add_works() {
+ let result = add(2, 2);
+ assert_eq!(result, 4);
+ }
+
+ #[test]
+ fn test_end_to_end() -> Result<(), MoproError> {
+ // Paths to your wasm and r1cs files
+ let wasm_path =
+ "./../mopro-core/examples/circom/multiplier2/target/multiplier2_js/multiplier2.wasm";
+ let r1cs_path = "./../mopro-core/examples/circom/multiplier2/target/multiplier2.r1cs";
+
+ // Create a new MoproCircom instance
+ let mopro_circom = MoproCircom::new();
+
+ // Step 1: Setup
+ let setup_result = mopro_circom.setup(wasm_path.to_string(), r1cs_path.to_string())?;
+ assert!(setup_result.provingKey.len() > 0);
+
+ let mut inputs = HashMap::new();
+ let a = BigUint::from_str(
+ "21888242871839275222246405745257275088548364400416034343698204186575808495616",
+ )
+ .unwrap();
+ let b = BigUint::from(1u8);
+ let c = a.clone() * b.clone();
+ inputs.insert("a".to_string(), vec![a.to_string()]);
+ inputs.insert("b".to_string(), vec![b.to_string()]);
+ // output = [public output c, public input a]
+ let expected_output = vec![Fr::from(c), Fr::from(a)];
+ let circom_outputs = circom::serialization::SerializableInputs(expected_output);
+ let serialized_outputs = circom::serialization::serialize_inputs(&circom_outputs);
+
+ // Step 2: Generate Proof
+ let generate_proof_result = mopro_circom.generate_proof(inputs)?;
+ let serialized_proof = generate_proof_result.proof;
+ let serialized_inputs = generate_proof_result.inputs;
+
+ assert!(serialized_proof.len() > 0);
+ assert_eq!(serialized_inputs, serialized_outputs);
+
+ // Step 3: Verify Proof
+ let is_valid = mopro_circom.verify_proof(serialized_proof, serialized_inputs)?;
+ assert!(is_valid);
+
+ Ok(())
+ }
+
+ #[test]
+ fn test_end_to_end_keccak() -> Result<(), MoproError> {
+ // Paths to your wasm and r1cs files
+ let wasm_path =
+ "./../mopro-core/examples/circom/keccak256/target/keccak256_256_test_js/keccak256_256_test.wasm";
+ let r1cs_path = "./../mopro-core/examples/circom/keccak256/target/keccak256_256_test.r1cs";
+
+ // Create a new MoproCircom instance
+ let mopro_circom = MoproCircom::new();
+
+ // Step 1: Setup
+ let setup_result = mopro_circom.setup(wasm_path.to_string(), r1cs_path.to_string())?;
+ assert!(setup_result.provingKey.len() > 0);
+
+ // Prepare inputs
+ let input_vec = vec![
+ 116, 101, 115, 116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,
+ ];
+
+ // Expected output
+ let expected_output_vec = vec![
+ 37, 17, 98, 135, 161, 178, 88, 97, 125, 150, 143, 65, 228, 211, 170, 133, 153, 9, 88,
+ 212, 4, 212, 175, 238, 249, 210, 214, 116, 170, 85, 45, 21,
+ ];
+
+ let inputs = bytes_to_circuit_inputs(&input_vec);
+ let serialized_outputs = bytes_to_circuit_outputs(&expected_output_vec);
+
+ // Step 2: Generate Proof
+ let generate_proof_result = mopro_circom.generate_proof(inputs)?;
+ let serialized_proof = generate_proof_result.proof;
+ let serialized_inputs = generate_proof_result.inputs;
+
+ assert!(serialized_proof.len() > 0);
+ assert_eq!(serialized_inputs, serialized_outputs);
+
+ // Step 3: Verify Proof
+
+ let is_valid = mopro_circom.verify_proof(serialized_proof, serialized_inputs)?;
+ assert!(is_valid);
+
+ Ok(())
+ }
+}
diff --git a/app/mopro-ffi/src/mopro.udl b/app/mopro-ffi/src/mopro.udl
new file mode 100644
index 000000000..875a5b1b8
--- /dev/null
+++ b/app/mopro-ffi/src/mopro.udl
@@ -0,0 +1,43 @@
+namespace mopro {
+ u32 add(u32 a, u32 b);
+ string hello();
+
+ [Throws=MoproError]
+ void initialize_mopro();
+
+ [Throws=MoproError]
+ void initialize_mopro_dylib(string dylib_path);
+
+ [Throws=MoproError]
+ GenerateProofResult generate_proof2(record> circuit_inputs);
+
+ [Throws=MoproError]
+ boolean verify_proof2(bytes proof, bytes public_input);
+};
+
+dictionary SetupResult {
+ bytes provingKey;
+};
+
+dictionary GenerateProofResult {
+ bytes proof;
+ bytes inputs;
+};
+
+[Error]
+enum MoproError {
+ "CircomError",
+};
+
+interface MoproCircom {
+ constructor();
+
+ [Throws=MoproError]
+ SetupResult setup(string wasm_path, string r1cs_path);
+
+ [Throws=MoproError]
+ GenerateProofResult generate_proof(record> circuit_inputs);
+
+ [Throws=MoproError]
+ boolean verify_proof(bytes proof, bytes public_input);
+};
diff --git a/app/mopro-ffi/tests/bindings/test_mopro.kts b/app/mopro-ffi/tests/bindings/test_mopro.kts
new file mode 100644
index 000000000..838e72fe2
--- /dev/null
+++ b/app/mopro-ffi/tests/bindings/test_mopro.kts
@@ -0,0 +1,21 @@
+import uniffi.mopro.*
+
+var wasmPath = "../mopro-core/examples/circom/multiplier2/target/multiplier2_js/multiplier2.wasm"
+var r1csPath = "../mopro-core/examples/circom/multiplier2/target/multiplier2.r1cs"
+
+try {
+ var moproCircom = MoproCircom()
+ var setupResult = moproCircom.setup(wasmPath, r1csPath)
+ assert(setupResult.provingKey.size > 0) { "Proving key should not be empty" }
+
+ val inputs = mutableMapOf>()
+ inputs["a"] = listOf("3")
+ inputs["b"] = listOf("5")
+
+ var generateProofResult = moproCircom.generateProof(inputs)
+ assert(generateProofResult.proof.size > 0) { "Proof is empty" }
+ var isValid = moproCircom.verifyProof(generateProofResult.proof, generateProofResult.inputs)
+ assert(isValid) { "Proof is invalid" }
+} catch (e: Exception) {
+ println(e)
+}
diff --git a/app/mopro-ffi/tests/bindings/test_mopro.swift b/app/mopro-ffi/tests/bindings/test_mopro.swift
new file mode 100644
index 000000000..7193618a7
--- /dev/null
+++ b/app/mopro-ffi/tests/bindings/test_mopro.swift
@@ -0,0 +1,65 @@
+import mopro
+import Foundation
+
+let moproCircom = MoproCircom()
+
+let wasmPath = "./../../../../mopro-core/examples/circom/multiplier2/target/multiplier2_js/multiplier2.wasm"
+let r1csPath = "./../../../../mopro-core/examples/circom/multiplier2/target/multiplier2.r1cs"
+
+func serializeOutputs(_ stringArray: [String]) -> [UInt8] {
+ var bytesArray: [UInt8] = []
+ let length = stringArray.count
+ var littleEndianLength = length.littleEndian
+ let targetLength = 32
+ withUnsafeBytes(of: &littleEndianLength) {
+ bytesArray.append(contentsOf: $0)
+ }
+ for value in stringArray {
+ // TODO: should handle 254-bit input
+ var littleEndian = Int32(value)!.littleEndian
+ var byteLength = 0
+ withUnsafeBytes(of: &littleEndian) {
+ bytesArray.append(contentsOf: $0)
+ byteLength = byteLength + $0.count
+ }
+ if byteLength < targetLength {
+ let paddingCount = targetLength - byteLength
+ let paddingArray = [UInt8](repeating: 0, count: paddingCount)
+ bytesArray.append(contentsOf: paddingArray)
+ }
+ }
+ return bytesArray
+}
+
+do {
+ // Setup
+ let setupResult = try moproCircom.setup(wasmPath: wasmPath, r1csPath: r1csPath)
+ assert(!setupResult.provingKey.isEmpty, "Proving key should not be empty")
+
+ // Prepare inputs
+ var inputs = [String: [String]]()
+ let a = 3
+ let b = 5
+ let c = a*b
+ inputs["a"] = [String(a)]
+ inputs["b"] = [String(b)]
+
+ // Expected outputs
+ let outputs: [String] = [String(c), String(a)]
+ let expectedOutput: [UInt8] = serializeOutputs(outputs)
+
+ // Generate Proof
+ let generateProofResult = try moproCircom.generateProof(circuitInputs: inputs)
+ assert(!generateProofResult.proof.isEmpty, "Proof should not be empty")
+
+ // Verify Proof
+ assert(Data(expectedOutput) == generateProofResult.inputs, "Circuit outputs mismatch the expected outputs")
+
+ let isValid = try moproCircom.verifyProof(proof: generateProofResult.proof, publicInput: generateProofResult.inputs)
+ assert(isValid, "Proof verification should succeed")
+
+} catch let error as MoproError {
+ print("MoproError: \(error)")
+} catch {
+ print("Unexpected error: \(error)")
+}
diff --git a/app/mopro-ffi/tests/bindings/test_mopro_keccak.kts b/app/mopro-ffi/tests/bindings/test_mopro_keccak.kts
new file mode 100644
index 000000000..5fb5b30a8
--- /dev/null
+++ b/app/mopro-ffi/tests/bindings/test_mopro_keccak.kts
@@ -0,0 +1,279 @@
+import uniffi.mopro.*
+
+var wasmPath =
+ "../mopro-core/examples/circom/keccak256/target/keccak256_256_test_js/keccak256_256_test.wasm"
+var r1csPath = "../mopro-core/examples/circom/keccak256/target/keccak256_256_test.r1cs"
+
+try {
+ var moproCircom = MoproCircom()
+ var setupResult = moproCircom.setup(wasmPath, r1csPath)
+ assert(setupResult.provingKey.size > 0) { "Proving key should not be empty" }
+
+ val inputs = mutableMapOf>()
+ inputs["in"] =
+ listOf(
+ "0",
+ "0",
+ "1",
+ "0",
+ "1",
+ "1",
+ "1",
+ "0",
+ "1",
+ "0",
+ "1",
+ "0",
+ "0",
+ "1",
+ "1",
+ "0",
+ "1",
+ "1",
+ "0",
+ "0",
+ "1",
+ "1",
+ "1",
+ "0",
+ "0",
+ "0",
+ "1",
+ "0",
+ "1",
+ "1",
+ "1",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0"
+ )
+
+ var generateProofResult = moproCircom.generateProof(inputs)
+ assert(generateProofResult.proof.size > 0) { "Proof is empty" }
+ var isValid = moproCircom.verifyProof(generateProofResult.proof, generateProofResult.inputs)
+ assert(isValid) { "Proof is invalid" }
+} catch (e: Exception) {
+ println(e)
+}
diff --git a/app/mopro-ffi/tests/bindings/test_mopro_keccak.swift b/app/mopro-ffi/tests/bindings/test_mopro_keccak.swift
new file mode 100644
index 000000000..2ca7dc476
--- /dev/null
+++ b/app/mopro-ffi/tests/bindings/test_mopro_keccak.swift
@@ -0,0 +1,82 @@
+import mopro
+import Foundation
+
+let moproCircom = MoproCircom()
+
+let wasmPath = "./../../../../mopro-core/examples/circom/keccak256/target/keccak256_256_test_js/keccak256_256_test.wasm"
+let r1csPath = "./../../../../mopro-core/examples/circom/keccak256/target/keccak256_256_test.r1cs"
+
+// Helper function to convert bytes to bits
+func bytesToBits(bytes: [UInt8]) -> [String] {
+ var bits = [String]()
+ for byte in bytes {
+ for j in 0..<8 {
+ let bit = (byte >> j) & 1
+ bits.append(String(bit))
+ }
+ }
+ return bits
+}
+
+func serializeOutputs(_ stringArray: [String]) -> [UInt8] {
+ var bytesArray: [UInt8] = []
+ let length = stringArray.count
+ var littleEndianLength = length.littleEndian
+ let targetLength = 32
+ withUnsafeBytes(of: &littleEndianLength) {
+ bytesArray.append(contentsOf: $0)
+ }
+ for value in stringArray {
+ // TODO: should handle 254-bit input
+ var littleEndian = Int32(value)!.littleEndian
+ var byteLength = 0
+ withUnsafeBytes(of: &littleEndian) {
+ bytesArray.append(contentsOf: $0)
+ byteLength = byteLength + $0.count
+ }
+ if byteLength < targetLength {
+ let paddingCount = targetLength - byteLength
+ let paddingArray = [UInt8](repeating: 0, count: paddingCount)
+ bytesArray.append(contentsOf: paddingArray)
+ }
+ }
+ return bytesArray
+}
+
+do {
+ // Setup
+ let setupResult = try moproCircom.setup(wasmPath: wasmPath, r1csPath: r1csPath)
+ assert(!setupResult.provingKey.isEmpty, "Proving key should not be empty")
+
+ // Prepare inputs
+ let inputVec: [UInt8] = [
+ 116, 101, 115, 116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,
+ ]
+ let bits = bytesToBits(bytes: inputVec)
+ var inputs = [String: [String]]()
+ inputs["in"] = bits
+
+ // Expected outputs
+ let outputVec: [UInt8] = [
+ 37, 17, 98, 135, 161, 178, 88, 97, 125, 150, 143, 65, 228, 211, 170, 133, 153, 9, 88,
+ 212, 4, 212, 175, 238, 249, 210, 214, 116, 170, 85, 45, 21,
+ ]
+ let outputBits: [String] = bytesToBits(bytes: outputVec)
+ let expectedOutput: [UInt8] = serializeOutputs(outputBits)
+
+ // Generate Proof
+ let generateProofResult = try moproCircom.generateProof(circuitInputs: inputs)
+ assert(!generateProofResult.proof.isEmpty, "Proof should not be empty")
+
+ // Verify Proof
+ assert(Data(expectedOutput) == generateProofResult.inputs, "Circuit outputs mismatch the expected outputs")
+
+ let isValid = try moproCircom.verifyProof(proof: generateProofResult.proof, publicInput: generateProofResult.inputs)
+ assert(isValid, "Proof verification should succeed")
+
+} catch let error as MoproError {
+ print("MoproError: \(error)")
+} catch {
+ print("Unexpected error: \(error)")
+}
diff --git a/app/mopro-ffi/tests/bindings/test_mopro_keccak2.kts b/app/mopro-ffi/tests/bindings/test_mopro_keccak2.kts
new file mode 100644
index 000000000..832628df9
--- /dev/null
+++ b/app/mopro-ffi/tests/bindings/test_mopro_keccak2.kts
@@ -0,0 +1,273 @@
+import uniffi.mopro.*
+
+try {
+ initializeMopro()
+
+ val inputs = mutableMapOf>()
+ inputs["in"] =
+ listOf(
+ "0",
+ "0",
+ "1",
+ "0",
+ "1",
+ "1",
+ "1",
+ "0",
+ "1",
+ "0",
+ "1",
+ "0",
+ "0",
+ "1",
+ "1",
+ "0",
+ "1",
+ "1",
+ "0",
+ "0",
+ "1",
+ "1",
+ "1",
+ "0",
+ "0",
+ "0",
+ "1",
+ "0",
+ "1",
+ "1",
+ "1",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0"
+ )
+
+ var generateProofResult = generateProof2(inputs)
+ assert(generateProofResult.proof.size > 0) { "Proof is empty" }
+ var isValid = verifyProof2(generateProofResult.proof, generateProofResult.inputs)
+ assert(isValid) { "Proof is invalid" }
+} catch (e: Exception) {
+ println(e)
+}
diff --git a/app/mopro-ffi/tests/bindings/test_mopro_keccak2.swift b/app/mopro-ffi/tests/bindings/test_mopro_keccak2.swift
new file mode 100644
index 000000000..a489bc98c
--- /dev/null
+++ b/app/mopro-ffi/tests/bindings/test_mopro_keccak2.swift
@@ -0,0 +1,86 @@
+import Foundation
+import mopro
+
+//let moproCircom = MoproCircom()
+
+// Using zkey and generate_proof2
+
+// let wasmPath = "./../../../../mopro-core/examples/circom/keccak256/target/keccak256_256_test_js/keccak256_256_test.wasm"
+// let r1csPath = "./../../../../mopro-core/examples/circom/keccak256/target/keccak256_256_test.r1cs"
+
+// Helper function to convert bytes to bits
+func bytesToBits(bytes: [UInt8]) -> [String] {
+ var bits = [String]()
+ for byte in bytes {
+ for j in 0..<8 {
+ let bit = (byte >> j) & 1
+ bits.append(String(bit))
+ }
+ }
+ return bits
+}
+
+func serializeOutputs(_ stringArray: [String]) -> [UInt8] {
+ var bytesArray: [UInt8] = []
+ let length = stringArray.count
+ var littleEndianLength = length.littleEndian
+ let targetLength = 32
+ withUnsafeBytes(of: &littleEndianLength) {
+ bytesArray.append(contentsOf: $0)
+ }
+ for value in stringArray {
+ // TODO: should handle 254-bit input
+ var littleEndian = Int32(value)!.littleEndian
+ var byteLength = 0
+ withUnsafeBytes(of: &littleEndian) {
+ bytesArray.append(contentsOf: $0)
+ byteLength = byteLength + $0.count
+ }
+ if byteLength < targetLength {
+ let paddingCount = targetLength - byteLength
+ let paddingArray = [UInt8](repeating: 0, count: paddingCount)
+ bytesArray.append(contentsOf: paddingArray)
+ }
+ }
+ return bytesArray
+}
+
+do {
+ // // Setup
+ // let setupResult = try moproCircom.setup(wasmPath: wasmPath, r1csPath: r1csPath)
+ // assert(!setupResult.provingKey.isEmpty, "Proving key should not be empty")
+
+ // Prepare inputs
+ let inputVec: [UInt8] = [
+ 116, 101, 115, 116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,
+ ]
+ let bits = bytesToBits(bytes: inputVec)
+ var inputs = [String: [String]]()
+ inputs["in"] = bits
+
+ // Expected outputs
+ let outputVec: [UInt8] = [
+ 37, 17, 98, 135, 161, 178, 88, 97, 125, 150, 143, 65, 228, 211, 170, 133, 153, 9, 88,
+ 212, 4, 212, 175, 238, 249, 210, 214, 116, 170, 85, 45, 21,
+ ]
+ let outputBits: [String] = bytesToBits(bytes: outputVec)
+ let expectedOutput: [UInt8] = serializeOutputs(outputBits)
+
+ // // Generate Proof
+ let generateProofResult = try generateProof2(circuitInputs: inputs)
+ // let generateProofResult = try moproCircom.generateProof(circuitInputs: inputs)
+ assert(!generateProofResult.proof.isEmpty, "Proof should not be empty")
+
+ // // Verify Proof
+ assert(Data(expectedOutput) == generateProofResult.inputs, "Circuit outputs mismatch the expected outputs")
+
+ let isValid = try verifyProof2(
+ proof: generateProofResult.proof, publicInput: generateProofResult.inputs)
+ assert(isValid, "Proof verification should succeed")
+
+} catch let error as MoproError {
+ print("MoproError: \(error)")
+} catch {
+ print("Unexpected error: \(error)")
+}
diff --git a/app/mopro-ffi/tests/bindings/test_mopro_rsa.kts b/app/mopro-ffi/tests/bindings/test_mopro_rsa.kts
new file mode 100644
index 000000000..15e770f08
--- /dev/null
+++ b/app/mopro-ffi/tests/bindings/test_mopro_rsa.kts
@@ -0,0 +1,115 @@
+import uniffi.mopro.*;
+
+var wasmPath = "../mopro-core/examples/circom/rsa/target/main_js/main.wasm"
+var r1csPath = "../mopro-core/examples/circom/rsa/target/main.r1cs"
+
+try {
+ var moproCircom = MoproCircom()
+ var setupResult = moproCircom.setup(wasmPath, r1csPath)
+ assert(setupResult.provingKey.size > 0) { "Proving key should not be empty"}
+
+ val inputs = mutableMapOf>()
+ inputs["signature"] = listOf("3582320600048169363",
+ "7163546589759624213",
+ "18262551396327275695",
+ "4479772254206047016",
+ "1970274621151677644",
+ "6547632513799968987",
+ "921117808165172908",
+ "7155116889028933260",
+ "16769940396381196125",
+ "17141182191056257954",
+ "4376997046052607007",
+ "17471823348423771450",
+ "16282311012391954891",
+ "70286524413490741",
+ "1588836847166444745",
+ "15693430141227594668",
+ "13832254169115286697",
+ "15936550641925323613",
+ "323842208142565220",
+ "6558662646882345749",
+ "15268061661646212265",
+ "14962976685717212593",
+ "15773505053543368901",
+ "9586594741348111792",
+ "1455720481014374292",
+ "13945813312010515080",
+ "6352059456732816887",
+ "17556873002865047035",
+ "2412591065060484384",
+ "11512123092407778330",
+ "8499281165724578877",
+ "12768005853882726493")
+ inputs["modulus"] = listOf("13792647154200341559",
+ "12773492180790982043",
+ "13046321649363433702",
+ "10174370803876824128",
+ "7282572246071034406",
+ "1524365412687682781",
+ "4900829043004737418",
+ "6195884386932410966",
+ "13554217876979843574",
+ "17902692039595931737",
+ "12433028734895890975",
+ "15971442058448435996",
+ "4591894758077129763",
+ "11258250015882429548",
+ "16399550288873254981",
+ "8246389845141771315",
+ "14040203746442788850",
+ "7283856864330834987",
+ "12297563098718697441",
+ "13560928146585163504",
+ "7380926829734048483",
+ "14591299561622291080",
+ "8439722381984777599",
+ "17375431987296514829",
+ "16727607878674407272",
+ "3233954801381564296",
+ "17255435698225160983",
+ "15093748890170255670",
+ "15810389980847260072",
+ "11120056430439037392",
+ "5866130971823719482",
+ "13327552690270163501",)
+ inputs["base_message"] = listOf("18114495772705111902",
+ "2254271930739856077",
+ "2068851770",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",)
+
+ var generateProofResult = moproCircom.generateProof(inputs)
+ assert(generateProofResult.proof.size > 0) { "Proof is empty"}
+ var isValid = moproCircom.verifyProof(generateProofResult.proof, generateProofResult.inputs)
+ assert(isValid) { "Proof is invalid"}
+} catch (e: Exception) {
+ println(e);
+}
diff --git a/app/mopro-ffi/tests/bindings/test_mopro_rsa.swift b/app/mopro-ffi/tests/bindings/test_mopro_rsa.swift
new file mode 100644
index 000000000..917fbbe0f
--- /dev/null
+++ b/app/mopro-ffi/tests/bindings/test_mopro_rsa.swift
@@ -0,0 +1,174 @@
+import mopro
+import Foundation
+
+let moproCircom = MoproCircom()
+
+let wasmPath = "./../../../../mopro-core/examples/circom/rsa/target/main_js/main.wasm"
+let r1csPath = "./../../../../mopro-core/examples/circom/rsa/target/main.r1cs"
+
+// Helper function to convert bytes to bits
+func bytesToBits(bytes: [UInt8]) -> [String] {
+ var bits = [String]()
+ for byte in bytes {
+ for j in 0..<8 {
+ let bit = (byte >> j) & 1
+ bits.append(String(bit))
+ }
+ }
+ return bits
+}
+
+func serializeOutputs(_ stringArray: [String]) -> [UInt8] {
+ var bytesArray: [UInt8] = []
+ let length = stringArray.count
+ var littleEndianLength = length.littleEndian
+ let targetLength = 32
+ withUnsafeBytes(of: &littleEndianLength) {
+ bytesArray.append(contentsOf: $0)
+ }
+ for value in stringArray {
+ // TODO: should handle 254-bit input
+ var littleEndian = Int32(value)!.littleEndian
+ var byteLength = 0
+ withUnsafeBytes(of: &littleEndian) {
+ bytesArray.append(contentsOf: $0)
+ byteLength = byteLength + $0.count
+ }
+ if byteLength < targetLength {
+ let paddingCount = targetLength - byteLength
+ let paddingArray = [UInt8](repeating: 0, count: paddingCount)
+ bytesArray.append(contentsOf: paddingArray)
+ }
+ }
+ return bytesArray
+}
+
+do {
+ // Setup
+ let setupResult = try moproCircom.setup(wasmPath: wasmPath, r1csPath: r1csPath)
+ assert(!setupResult.provingKey.isEmpty, "Proving key should not be empty")
+
+ // Prepare inputs
+ let signature: [String] = [
+ "3582320600048169363",
+ "7163546589759624213",
+ "18262551396327275695",
+ "4479772254206047016",
+ "1970274621151677644",
+ "6547632513799968987",
+ "921117808165172908",
+ "7155116889028933260",
+ "16769940396381196125",
+ "17141182191056257954",
+ "4376997046052607007",
+ "17471823348423771450",
+ "16282311012391954891",
+ "70286524413490741",
+ "1588836847166444745",
+ "15693430141227594668",
+ "13832254169115286697",
+ "15936550641925323613",
+ "323842208142565220",
+ "6558662646882345749",
+ "15268061661646212265",
+ "14962976685717212593",
+ "15773505053543368901",
+ "9586594741348111792",
+ "1455720481014374292",
+ "13945813312010515080",
+ "6352059456732816887",
+ "17556873002865047035",
+ "2412591065060484384",
+ "11512123092407778330",
+ "8499281165724578877",
+ "12768005853882726493",
+ ]
+
+ let modulus: [String] = [
+ "13792647154200341559",
+ "12773492180790982043",
+ "13046321649363433702",
+ "10174370803876824128",
+ "7282572246071034406",
+ "1524365412687682781",
+ "4900829043004737418",
+ "6195884386932410966",
+ "13554217876979843574",
+ "17902692039595931737",
+ "12433028734895890975",
+ "15971442058448435996",
+ "4591894758077129763",
+ "11258250015882429548",
+ "16399550288873254981",
+ "8246389845141771315",
+ "14040203746442788850",
+ "7283856864330834987",
+ "12297563098718697441",
+ "13560928146585163504",
+ "7380926829734048483",
+ "14591299561622291080",
+ "8439722381984777599",
+ "17375431987296514829",
+ "16727607878674407272",
+ "3233954801381564296",
+ "17255435698225160983",
+ "15093748890170255670",
+ "15810389980847260072",
+ "11120056430439037392",
+ "5866130971823719482",
+ "13327552690270163501",
+ ]
+ let base_message: [String] = [
+ "18114495772705111902",
+ "2254271930739856077",
+ "2068851770",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ ]
+
+ var inputs = [String: [String]]()
+ inputs["signature"] = signature;
+ inputs["modulus"] = modulus;
+ inputs["base_message"] = base_message;
+
+
+ // Generate Proof
+ let generateProofResult = try moproCircom.generateProof(circuitInputs: inputs)
+ assert(!generateProofResult.proof.isEmpty, "Proof should not be empty")
+
+ // Verifying the Proof
+ let isValid = try moproCircom.verifyProof(proof: generateProofResult.proof, publicInput: generateProofResult.inputs)
+ assert(isValid, "Proof verification should succeed")
+
+} catch let error as MoproError {
+ print("MoproError: \(error)")
+} catch {
+ print("Unexpected error: \(error)")
+}
diff --git a/app/mopro-ffi/tests/bindings/test_mopro_rsa2.swift b/app/mopro-ffi/tests/bindings/test_mopro_rsa2.swift
new file mode 100644
index 000000000..70998bd08
--- /dev/null
+++ b/app/mopro-ffi/tests/bindings/test_mopro_rsa2.swift
@@ -0,0 +1,167 @@
+import mopro
+import Foundation
+
+// Helper function to convert bytes to bits
+func bytesToBits(bytes: [UInt8]) -> [String] {
+ var bits = [String]()
+ for byte in bytes {
+ for j in 0..<8 {
+ let bit = (byte >> j) & 1
+ bits.append(String(bit))
+ }
+ }
+ return bits
+}
+
+func serializeOutputs(_ stringArray: [String]) -> [UInt8] {
+ var bytesArray: [UInt8] = []
+ let length = stringArray.count
+ var littleEndianLength = length.littleEndian
+ let targetLength = 32
+ withUnsafeBytes(of: &littleEndianLength) {
+ bytesArray.append(contentsOf: $0)
+ }
+ for value in stringArray {
+ // TODO: should handle 254-bit input
+ var littleEndian = Int32(value)!.littleEndian
+ var byteLength = 0
+ withUnsafeBytes(of: &littleEndian) {
+ bytesArray.append(contentsOf: $0)
+ byteLength = byteLength + $0.count
+ }
+ if byteLength < targetLength {
+ let paddingCount = targetLength - byteLength
+ let paddingArray = [UInt8](repeating: 0, count: paddingCount)
+ bytesArray.append(contentsOf: paddingArray)
+ }
+ }
+ return bytesArray
+}
+
+do {
+ // Initialize
+ try initializeMopro()
+
+ // Prepare inputs
+ let signature: [String] = [
+ "3582320600048169363",
+ "7163546589759624213",
+ "18262551396327275695",
+ "4479772254206047016",
+ "1970274621151677644",
+ "6547632513799968987",
+ "921117808165172908",
+ "7155116889028933260",
+ "16769940396381196125",
+ "17141182191056257954",
+ "4376997046052607007",
+ "17471823348423771450",
+ "16282311012391954891",
+ "70286524413490741",
+ "1588836847166444745",
+ "15693430141227594668",
+ "13832254169115286697",
+ "15936550641925323613",
+ "323842208142565220",
+ "6558662646882345749",
+ "15268061661646212265",
+ "14962976685717212593",
+ "15773505053543368901",
+ "9586594741348111792",
+ "1455720481014374292",
+ "13945813312010515080",
+ "6352059456732816887",
+ "17556873002865047035",
+ "2412591065060484384",
+ "11512123092407778330",
+ "8499281165724578877",
+ "12768005853882726493",
+ ]
+
+ let modulus: [String] = [
+ "13792647154200341559",
+ "12773492180790982043",
+ "13046321649363433702",
+ "10174370803876824128",
+ "7282572246071034406",
+ "1524365412687682781",
+ "4900829043004737418",
+ "6195884386932410966",
+ "13554217876979843574",
+ "17902692039595931737",
+ "12433028734895890975",
+ "15971442058448435996",
+ "4591894758077129763",
+ "11258250015882429548",
+ "16399550288873254981",
+ "8246389845141771315",
+ "14040203746442788850",
+ "7283856864330834987",
+ "12297563098718697441",
+ "13560928146585163504",
+ "7380926829734048483",
+ "14591299561622291080",
+ "8439722381984777599",
+ "17375431987296514829",
+ "16727607878674407272",
+ "3233954801381564296",
+ "17255435698225160983",
+ "15093748890170255670",
+ "15810389980847260072",
+ "11120056430439037392",
+ "5866130971823719482",
+ "13327552690270163501",
+ ]
+ let base_message: [String] = [
+ "18114495772705111902",
+ "2254271930739856077",
+ "2068851770",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ ]
+
+ var inputs = [String: [String]]()
+ inputs["signature"] = signature;
+ inputs["modulus"] = modulus;
+ inputs["base_message"] = base_message;
+
+ // Generate Proof
+ let generateProofResult = try generateProof2(circuitInputs: inputs)
+ assert(!generateProofResult.proof.isEmpty, "Proof should not be empty")
+
+ // Verifying the Proof
+ let isValid = try verifyProof2(proof: generateProofResult.proof, publicInput: generateProofResult.inputs)
+ assert(isValid, "Proof verification should succeed")
+
+} catch let error as MoproError {
+ print("MoproError: \(error)")
+} catch {
+ print("Unexpected error: \(error)")
+}
diff --git a/app/mopro-ffi/tests/test_generated_bindings.rs b/app/mopro-ffi/tests/test_generated_bindings.rs
new file mode 100644
index 000000000..d88f82a2c
--- /dev/null
+++ b/app/mopro-ffi/tests/test_generated_bindings.rs
@@ -0,0 +1,13 @@
+uniffi::build_foreign_language_testcases!(
+ "tests/bindings/test_mopro.swift",
+ "tests/bindings/test_mopro.kts",
+ // "tests/bindings/test_mopro.rb",
+ // "tests/bindings/test_mopro.py",
+ "tests/bindings/test_mopro_keccak.swift",
+ // "tests/bindings/test_mopro_keccak.kts", // FIXME: java.lang.OutOfMemoryError: Java heap space
+ "tests/bindings/test_mopro_keccak2.swift",
+ "tests/bindings/test_mopro_keccak2.kts",
+ "tests/bindings/test_mopro_rsa.swift",
+ // "tests/bindings/test_mopro_rsa.kts", // FIXME: java.lang.OutOfMemoryError: Java heap space
+ // "tests/bindings/test_mopro_rsa2.swift",
+);
diff --git a/app/mopro-ffi/uniffi-bindgen.rs b/app/mopro-ffi/uniffi-bindgen.rs
new file mode 100644
index 000000000..f6cff6cf1
--- /dev/null
+++ b/app/mopro-ffi/uniffi-bindgen.rs
@@ -0,0 +1,3 @@
+fn main() {
+ uniffi::uniffi_bindgen_main()
+}
diff --git a/app/mopro-ffi/uniffi.toml b/app/mopro-ffi/uniffi.toml
new file mode 100644
index 000000000..f14925e0c
--- /dev/null
+++ b/app/mopro-ffi/uniffi.toml
@@ -0,0 +1,2 @@
+[bindings.swift]
+module_name = "mopro"
diff --git a/app/scripts/build_android_module.sh b/app/scripts/build_android_module.sh
new file mode 100755
index 000000000..3e72789df
--- /dev/null
+++ b/app/scripts/build_android_module.sh
@@ -0,0 +1,26 @@
+mkdir -p ark-circom-passport/passport
+cp ../circuits/build/proof_of_passport_final.zkey ark-circom-passport/passport/
+echo "copied proof_of_passport_final.zkey to ark-circom-passport"
+
+ARCHITECTURE="aarch64-linux-android"
+
+# Check for target support
+check_target_support() {
+ rustup target list | grep installed | grep -q "$1"
+}
+
+# check target is installed
+if ! check_target_support $ARCHITECTURE; then
+ rustup target add $ARCHITECTURE
+else
+ echo "Target $ARCHITECTURE already installed, skipping."
+fi
+
+cd android
+./gradlew clean
+./gradlew cargoBuild
+cd ..
+
+mkdir -p android/react-native-passport-reader/android/src/main/jniLibs/arm64/
+ cp ark-circom-passport/target/aarch64-linux-android/release/libark_circom_passport.so android/react-native-passport-reader/android/src/main/jniLibs/arm64/
+ echo copied release version of android lib to android/
\ No newline at end of file
diff --git a/app/scripts/build_ios_module.sh b/app/scripts/build_ios_module.sh
new file mode 100755
index 000000000..d081ad0f4
--- /dev/null
+++ b/app/scripts/build_ios_module.sh
@@ -0,0 +1,65 @@
+
+ARCHITECTURE="aarch64-apple-ios" # or "x86_64-apple-ios" for "x86_64", "aarch64-apple-ios-sim" for simulator
+LIB_DIR="release" # or "debug"
+PROJECT_DIR=$(pwd)
+
+# Assert we're in the /app dir
+if [[ ! -d "mopro-ffi" || ! -d "mopro-core" || ! -d "ark-zkey" ]]; then
+ echo -e "${RED}Error: This script must be run from the /app dir that contains mopro-ffi, mopro-core and ark-zkey folders.${DEFAULT}"
+ exit 1
+fi
+
+# Check for target support
+check_target_support() {
+ rustup target list | grep installed | grep -q "$1"
+}
+
+# Install arkzkey-util binary in ark-zkey
+cd ark-zkey
+echo "[ark-zkey] Installing arkzkey-util..."
+if ! command -v arkzkey-util &> /dev/null
+then
+ cargo install --bin arkzkey-util --path .
+else
+ echo "arkzkey-util already installed, skipping."
+fi
+cd ..
+
+# check target is installed
+if ! check_target_support $ARCHITECTURE; then
+ rustup target add $ARCHITECTURE
+else
+ echo "Target $ARCHITECTURE already installed, skipping."
+fi
+
+
+# generate ark-zkey
+cd ../circuits/build
+arkzkey-util proof_of_passport_final.zkey
+echo "arkzkey file generation done, arkzkey file is in $(pwd)/proof_of_passport_final.arkzkey"
+
+cd ../../app/mopro-core
+cargo build --release
+
+cd ../mopro-ffi
+echo "Building mopro-ffi static library..."
+cargo build --release --target ${ARCHITECTURE}
+cp target/${ARCHITECTURE}/${LIB_DIR}/libmopro_ffi.a ../ios/MoproKit/Libs/
+echo "copied libmopro_ffi.a to ios/Moprokit/Libs/"
+
+
+# TODO: if functions signatures change, we have to rebuild the bindings by adapting theses lines:
+# cd ..
+# Install uniffi-bindgen binary in mopro-ffi
+# echo "[ffi] Installing uniffi-bindgen..."
+# if ! command -v uniffi-bindgen &> /dev/null
+# then
+# cargo install --bin uniffi-bindgen --path .
+# else
+# echo "uniffi-bindgen already installed, skipping."
+# fi
+# echo "Updating mopro-ffi bindings and library..."
+# uniffi-bindgen generate mopro-ffi/src/mopro.udl --language swift --out-dir ${TARGET_DIR}/SwiftBindings
+# cp ${TARGET_DIR}/SwiftBindings/moproFFI.h ${MOPROKIT_DIR}/Include/
+# cp ${TARGET_DIR}/SwiftBindings/mopro.swift ${MOPROKIT_DIR}/Bindings/
+# cp ${TARGET_DIR}/SwiftBindings/moproFFI.modulemap ${MOPROKIT_DIR}/Resources/
diff --git a/app/scripts/build_rust.sh b/app/scripts/build_rust.sh
deleted file mode 100755
index 01021a29a..000000000
--- a/app/scripts/build_rust.sh
+++ /dev/null
@@ -1,10 +0,0 @@
-cd ../android
-
-./gradlew clean
-./gradlew cargoBuild
-
-cd ..
-
-mkdir -p android/react-native-passport-reader/android/src/main/jniLibs/arm64/
- cp ark-circom-passport/target/aarch64-linux-android/release/libark_circom_passport.so android/react-native-passport-reader/android/src/main/jniLibs/arm64/
- echo copied release version
\ No newline at end of file
diff --git a/app/scripts/download_current_zkey.sh b/app/scripts/download_current_zkey.sh
new file mode 100755
index 000000000..9d4f17be4
--- /dev/null
+++ b/app/scripts/download_current_zkey.sh
@@ -0,0 +1,4 @@
+mkdir -p ../circuits/build
+cd ../circuits/build
+wget https://current-pop-zkey.s3.eu-north-1.amazonaws.com/proof_of_passport_final.zkey # ios
+cd ../../app
\ No newline at end of file
diff --git a/app/src/components/CustomButton.tsx b/app/src/components/CustomButton.tsx
index cdb58b8c8..eb5b31850 100644
--- a/app/src/components/CustomButton.tsx
+++ b/app/src/components/CustomButton.tsx
@@ -3,7 +3,7 @@
import React from 'react';
import { TouchableOpacity, Text, StyleSheet } from 'react-native';
-const Button = ({ onPress, title }) => {
+const CustomButton = ({ onPress, title }) => {
return (
{title}
@@ -37,4 +37,4 @@ const styles = StyleSheet.create({
},
});
-export default Button;
+export default CustomButton;
diff --git a/app/src/screens/EnterDetailsScreen.tsx b/app/src/screens/EnterDetailsScreen.tsx
index 5b3676000..059ef30fd 100644
--- a/app/src/screens/EnterDetailsScreen.tsx
+++ b/app/src/screens/EnterDetailsScreen.tsx
@@ -3,11 +3,11 @@
import React, {useState} from 'react';
import { View, Text, StyleSheet } from 'react-native';
import CustomTextInput from '../components/CustomTextInput';
-import Button from '../components/CustomButton';
+import CustomButton from '../components/CustomButton';
import { ToggleGroup } from 'tamagui'
import { AlignCenter, AlignLeft, AlignRight, Camera } from '@tamagui/lucide-icons'
-import { XStack, YStack } from 'tamagui'
import { SizableText, Tabs, H5 } from 'tamagui'
+import { XStack, YStack, Button } from 'tamagui'
const EnterDetailsScreen = ({
passportNumber,
@@ -82,6 +82,7 @@ const styles = StyleSheet.create({
justifyContent: 'center',
alignItems: 'center',
backgroundColor: 'white',
+ paddingBottom:20,
},
header: {
fontSize: 22,
diff --git a/circuits/circuits/helpers/LICENSE b/circuits/LICENSE
similarity index 100%
rename from circuits/circuits/helpers/LICENSE
rename to circuits/LICENSE
diff --git a/circuits/README.md b/circuits/README.md
index 6d6204a30..7bc86875d 100644
--- a/circuits/README.md
+++ b/circuits/README.md
@@ -20,12 +20,6 @@ yarn
./scripts/build_circuit.sh
```
-#### Build only to use the app, not for running tests (dev only, not secure)
-
-```bash
-./scripts/build_circuit.sh app-only
-```
-
#### Run tests
```bash
diff --git a/circuits/circuits/helpers/bigint.circom b/circuits/circuits/helpers/bigint.circom
deleted file mode 100644
index 092497b2e..000000000
--- a/circuits/circuits/helpers/bigint.circom
+++ /dev/null
@@ -1,561 +0,0 @@
-pragma circom 2.1.5;
-
-include "../../node_modules/circomlib/circuits/comparators.circom";
-include "../../node_modules/circomlib/circuits/bitify.circom";
-include "../../node_modules/circomlib/circuits/gates.circom";
-
-include "./bigint_func.circom";
-
-// addition mod 2**n with carry bit
-template ModSum(n) {
- assert(n <= 252);
- signal input a;
- signal input b;
- signal output sum;
- signal output carry;
-
- component n2b = Num2Bits(n + 1);
- n2b.in <== a + b;
- carry <== n2b.out[n];
- sum <== a + b - carry * (1 << n);
-}
-
-// a - b
-template ModSub(n) {
- assert(n <= 252);
- signal input a;
- signal input b;
- signal output out;
- signal output borrow;
- component lt = LessThan(n);
- lt.in[0] <== a;
- lt.in[1] <== b;
- borrow <== lt.out;
- out <== borrow * (1 << n) + a - b;
-}
-
-// a - b - c
-// assume a - b - c + 2**n >= 0
-template ModSubThree(n) {
- assert(n + 2 <= 253);
- signal input a;
- signal input b;
- signal input c;
- assert(a - b - c + (1 << n) >= 0);
- signal output out;
- signal output borrow;
- signal b_plus_c;
- b_plus_c <== b + c;
- component lt = LessThan(n + 1);
- lt.in[0] <== a;
- lt.in[1] <== b_plus_c;
- borrow <== lt.out;
- out <== borrow * (1 << n) + a - b_plus_c;
-}
-
-template ModSumThree(n) {
- assert(n + 2 <= 253);
- signal input a;
- signal input b;
- signal input c;
- signal output sum;
- signal output carry;
-
- component n2b = Num2Bits(n + 2);
- n2b.in <== a + b + c;
- carry <== n2b.out[n] + 2 * n2b.out[n + 1];
- sum <== a + b + c - carry * (1 << n);
-}
-
-template ModSumFour(n) {
- assert(n + 2 <= 253);
- signal input a;
- signal input b;
- signal input c;
- signal input d;
- signal output sum;
- signal output carry;
-
- component n2b = Num2Bits(n + 2);
- n2b.in <== a + b + c + d;
- carry <== n2b.out[n] + 2 * n2b.out[n + 1];
- sum <== a + b + c + d - carry * (1 << n);
-}
-
-// product mod 2**n with carry
-template ModProd(n) {
- assert(n <= 126);
- signal input a;
- signal input b;
- signal output prod;
- signal output carry;
-
- component n2b = Num2Bits(2 * n);
- n2b.in <== a * b;
-
- component b2n1 = Bits2Num(n);
- component b2n2 = Bits2Num(n);
- var i;
- for (i = 0; i < n; i++) {
- b2n1.in[i] <== n2b.out[i];
- b2n2.in[i] <== n2b.out[i + n];
- }
- prod <== b2n1.out;
- carry <== b2n2.out;
-}
-
-// split a n + m bit input into two outputs
-template Split(n, m) {
- assert(n <= 126);
- signal input in;
- signal output small;
- signal output big;
-
- small <-- in % (1 << n);
- big <-- in \ (1 << n);
-
- component n2b_small = Num2Bits(n);
- n2b_small.in <== small;
- component n2b_big = Num2Bits(m);
- n2b_big.in <== big;
-
- in === small + big * (1 << n);
-}
-
-// split a n + m + k bit input into three outputs
-template SplitThree(n, m, k) {
- assert(n <= 126);
- signal input in;
- signal output small;
- signal output medium;
- signal output big;
-
- small <-- in % (1 << n);
- medium <-- (in \ (1 << n)) % (1 << m);
- big <-- in \ (1 << n + m);
-
- component n2b_small = Num2Bits(n);
- n2b_small.in <== small;
- component n2b_medium = Num2Bits(m);
- n2b_medium.in <== medium;
- component n2b_big = Num2Bits(k);
- n2b_big.in <== big;
-
- in === small + medium * (1 << n) + big * (1 << n + m);
-}
-
-// a[i], b[i] in 0... 2**n-1
-// represent a = a[0] + a[1] * 2**n + .. + a[k - 1] * 2**(n * k)
-template BigAdd(n, k) {
- assert(n <= 252);
- signal input a[k];
- signal input b[k];
- signal output out[k + 1];
-
- component unit0 = ModSum(n);
- unit0.a <== a[0];
- unit0.b <== b[0];
- out[0] <== unit0.sum;
-
- component unit[k - 1];
- for (var i = 1; i < k; i++) {
- unit[i - 1] = ModSumThree(n);
- unit[i - 1].a <== a[i];
- unit[i - 1].b <== b[i];
- if (i == 1) {
- unit[i - 1].c <== unit0.carry;
- } else {
- unit[i - 1].c <== unit[i - 2].carry;
- }
- out[i] <== unit[i - 1].sum;
- }
- out[k] <== unit[k - 2].carry;
-}
-
-// a and b have n-bit registers
-// a has ka registers, each with NONNEGATIVE ma-bit values (ma can be > n)
-// b has kb registers, each with NONNEGATIVE mb-bit values (mb can be > n)
-// out has ka + kb - 1 registers, each with (ma + mb + ceil(log(max(ka, kb))))-bit values
-template BigMultNoCarry(n, ma, mb, ka, kb) {
- assert(ma + mb <= 253);
- signal input a[ka];
- signal input b[kb];
- signal output out[ka + kb - 1];
-
- var prod_val[ka + kb - 1];
- for (var i = 0; i < ka + kb - 1; i++) {
- prod_val[i] = 0;
- }
- for (var i = 0; i < ka; i++) {
- for (var j = 0; j < kb; j++) {
- prod_val[i + j] += a[i] * b[j];
- }
- }
- for (var i = 0; i < ka + kb - 1; i++) {
- out[i] <-- prod_val[i];
- }
-
- var a_poly[ka + kb - 1];
- var b_poly[ka + kb - 1];
- var out_poly[ka + kb - 1];
- for (var i = 0; i < ka + kb - 1; i++) {
- out_poly[i] = 0;
- a_poly[i] = 0;
- b_poly[i] = 0;
- for (var j = 0; j < ka + kb - 1; j++) {
- out_poly[i] = out_poly[i] + out[j] * (i ** j);
- }
- for (var j = 0; j < ka; j++) {
- a_poly[i] = a_poly[i] + a[j] * (i ** j);
- }
- for (var j = 0; j < kb; j++) {
- b_poly[i] = b_poly[i] + b[j] * (i ** j);
- }
- }
- for (var i = 0; i < ka + kb - 1; i++) {
- out_poly[i] === a_poly[i] * b_poly[i];
- }
-}
-
-
-// in[i] contains longs
-// out[i] contains shorts
-template LongToShortNoEndCarry(n, k) {
- assert(n <= 126);
- signal input in[k];
- signal output out[k+1];
-
- var split[k][3];
- for (var i = 0; i < k; i++) {
- split[i] = SplitThreeFn(in[i], n, n, n);
- }
-
- var carry[k];
- carry[0] = 0;
- out[0] <-- split[0][0];
- if (k == 1) {
- out[1] <-- split[0][1];
- }
- if (k > 1) {
- var sumAndCarry[2] = SplitFn(split[0][1] + split[1][0], n, n);
- out[1] <-- sumAndCarry[0];
- carry[1] = sumAndCarry[1];
- }
- if (k == 2) {
- out[2] <-- split[1][1] + split[0][2] + carry[1];
- }
- if (k > 2) {
- for (var i = 2; i < k; i++) {
- var sumAndCarry[2] = SplitFn(split[i][0] + split[i-1][1] + split[i-2][2] + carry[i-1], n, n);
- out[i] <-- sumAndCarry[0];
- carry[i] = sumAndCarry[1];
- }
- out[k] <-- split[k-1][1] + split[k-2][2] + carry[k-1];
- }
-
- component outRangeChecks[k+1];
- for (var i = 0; i < k+1; i++) {
- outRangeChecks[i] = Num2Bits(n);
- outRangeChecks[i].in <== out[i];
- }
-
- signal runningCarry[k];
- component runningCarryRangeChecks[k];
- runningCarry[0] <-- (in[0] - out[0]) / (1 << n);
- runningCarryRangeChecks[0] = Num2Bits(n + log_ceil(k));
- runningCarryRangeChecks[0].in <== runningCarry[0];
- runningCarry[0] * (1 << n) === in[0] - out[0];
- for (var i = 1; i < k; i++) {
- runningCarry[i] <-- (in[i] - out[i] + runningCarry[i-1]) / (1 << n);
- runningCarryRangeChecks[i] = Num2Bits(n + log_ceil(k));
- runningCarryRangeChecks[i].in <== runningCarry[i];
- runningCarry[i] * (1 << n) === in[i] - out[i] + runningCarry[i-1];
- }
- runningCarry[k-1] === out[k];
-}
-
-template BigMult(n, k) {
- signal input a[k];
- signal input b[k];
- signal output out[2 * k];
-
- component mult = BigMultNoCarry(n, n, n, k, k);
- for (var i = 0; i < k; i++) {
- mult.a[i] <== a[i];
- mult.b[i] <== b[i];
- }
-
- // no carry is possible in the highest order register
- component longshort = LongToShortNoEndCarry(n, 2 * k - 1);
- for (var i = 0; i < 2 * k - 1; i++) {
- longshort.in[i] <== mult.out[i];
- }
- for (var i = 0; i < 2 * k; i++) {
- out[i] <== longshort.out[i];
- }
-}
-
-template BigLessThan(n, k){
- signal input a[k];
- signal input b[k];
- signal output out;
-
- component lt[k];
- component eq[k];
- for (var i = 0; i < k; i++) {
- lt[i] = LessThan(n);
- lt[i].in[0] <== a[i];
- lt[i].in[1] <== b[i];
- eq[i] = IsEqual();
- eq[i].in[0] <== a[i];
- eq[i].in[1] <== b[i];
- }
-
- // ors[i] holds (lt[k - 1] || (eq[k - 1] && lt[k - 2]) .. || (eq[k - 1] && .. && lt[i]))
- // ands[i] holds (eq[k - 1] && .. && lt[i])
- // eq_ands[i] holds (eq[k - 1] && .. && eq[i])
- component ors[k - 1];
- component ands[k - 1];
- component eq_ands[k - 1];
- for (var i = k - 2; i >= 0; i--) {
- ands[i] = AND();
- eq_ands[i] = AND();
- ors[i] = OR();
-
- if (i == k - 2) {
- ands[i].a <== eq[k - 1].out;
- ands[i].b <== lt[k - 2].out;
- eq_ands[i].a <== eq[k - 1].out;
- eq_ands[i].b <== eq[k - 2].out;
- ors[i].a <== lt[k - 1].out;
- ors[i].b <== ands[i].out;
- } else {
- ands[i].a <== eq_ands[i + 1].out;
- ands[i].b <== lt[i].out;
- eq_ands[i].a <== eq_ands[i + 1].out;
- eq_ands[i].b <== eq[i].out;
- ors[i].a <== ors[i + 1].out;
- ors[i].b <== ands[i].out;
- }
- }
- out <== ors[0].out;
-}
-
-template BigIsEqual(k){
- signal input in[2][k];
- signal output out;
- component isEqual[k+1];
- var sum = 0;
- for(var i = 0; i < k; i++){
- isEqual[i] = IsEqual();
- isEqual[i].in[0] <== in[0][i];
- isEqual[i].in[1] <== in[1][i];
- sum = sum + isEqual[i].out;
- }
-
- isEqual[k] = IsEqual();
- isEqual[k].in[0] <== sum;
- isEqual[k].in[1] <== k;
- out <== isEqual[k].out;
-}
-
-// leading register of b should be non-zero
-template BigMod(n, k) {
- assert(n <= 126);
- signal input a[2 * k];
- signal input b[k];
-
- signal output div[k + 1];
- signal output mod[k];
-
- var longdiv[2][100] = long_div(n, k, k, a, b);
- for (var i = 0; i < k; i++) {
- div[i] <-- longdiv[0][i];
- mod[i] <-- longdiv[1][i];
- }
- div[k] <-- longdiv[0][k];
- component range_checks[k + 1];
- for (var i = 0; i <= k; i++) {
- range_checks[i] = Num2Bits(n);
- range_checks[i].in <== div[i];
- }
-
- component mul = BigMult(n, k + 1);
- for (var i = 0; i < k; i++) {
- mul.a[i] <== div[i];
- mul.b[i] <== b[i];
- }
- mul.a[k] <== div[k];
- mul.b[k] <== 0;
-
- component add = BigAdd(n, 2 * k + 2);
- for (var i = 0; i < 2 * k; i++) {
- add.a[i] <== mul.out[i];
- if (i < k) {
- add.b[i] <== mod[i];
- } else {
- add.b[i] <== 0;
- }
- }
- add.a[2 * k] <== mul.out[2 * k];
- add.a[2 * k + 1] <== mul.out[2 * k + 1];
- add.b[2 * k] <== 0;
- add.b[2 * k + 1] <== 0;
-
- for (var i = 0; i < 2 * k; i++) {
- add.out[i] === a[i];
- }
- add.out[2 * k] === 0;
- add.out[2 * k + 1] === 0;
-
- component lt = BigLessThan(n, k);
- for (var i = 0; i < k; i++) {
- lt.a[i] <== mod[i];
- lt.b[i] <== b[i];
- }
- lt.out === 1;
-}
-
-// a[i], b[i] in 0... 2**n-1
-// represent a = a[0] + a[1] * 2**n + .. + a[k - 1] * 2**(n * k)
-// assume a >= b
-template BigSub(n, k) {
- assert(n <= 252);
- signal input a[k];
- signal input b[k];
- signal output out[k];
- signal output underflow;
-
- component unit0 = ModSub(n);
- unit0.a <== a[0];
- unit0.b <== b[0];
- out[0] <== unit0.out;
-
- component unit[k - 1];
- for (var i = 1; i < k; i++) {
- unit[i - 1] = ModSubThree(n);
- unit[i - 1].a <== a[i];
- unit[i - 1].b <== b[i];
- if (i == 1) {
- unit[i - 1].c <== unit0.borrow;
- } else {
- unit[i - 1].c <== unit[i - 2].borrow;
- }
- out[i] <== unit[i - 1].out;
- }
- underflow <== unit[k - 2].borrow;
-}
-
-// calculates (a - b) % p, where a, b < p
-// note: does not assume a >= b
-template BigSubModP(n, k){
- assert(n <= 252);
- signal input a[k];
- signal input b[k];
- signal input p[k];
- signal output out[k];
- component sub = BigSub(n, k);
- for (var i = 0; i < k; i++){
- sub.a[i] <== a[i];
- sub.b[i] <== b[i];
- }
- signal flag;
- flag <== sub.underflow;
- component add = BigAdd(n, k);
- for (var i = 0; i < k; i++){
- add.a[i] <== sub.out[i];
- add.b[i] <== flag * p[i];
- }
- for (var i = 0; i < k; i++){
- out[i] <== add.out[i];
- }
-}
-
-template BigMultModP(n, k) {
- assert(n <= 252);
- signal input a[k];
- signal input b[k];
- signal input p[k];
- signal output out[k];
-
- component big_mult = BigMult(n, k);
- for (var i = 0; i < k; i++) {
- big_mult.a[i] <== a[i];
- big_mult.b[i] <== b[i];
- }
- component big_mod = BigMod(n, k);
- for (var i = 0; i < 2 * k; i++) {
- big_mod.a[i] <== big_mult.out[i];
- }
- for (var i = 0; i < k; i++) {
- big_mod.b[i] <== p[i];
- }
- for (var i = 0; i < k; i++) {
- out[i] <== big_mod.mod[i];
- }
-}
-
-template BigModInv(n, k) {
- assert(n <= 252);
- signal input in[k];
- signal input p[k];
- signal output out[k];
-
- // length k
- var inv[100] = mod_inv(n, k, in, p);
- for (var i = 0; i < k; i++) {
- out[i] <-- inv[i];
- }
- component range_checks[k];
- for (var i = 0; i < k; i++) {
- range_checks[i] = Num2Bits(n);
- range_checks[i].in <== out[i];
- }
-
- component mult = BigMult(n, k);
- for (var i = 0; i < k; i++) {
- mult.a[i] <== in[i];
- mult.b[i] <== out[i];
- }
- component mod = BigMod(n, k);
- for (var i = 0; i < 2 * k; i++) {
- mod.a[i] <== mult.out[i];
- }
- for (var i = 0; i < k; i++) {
- mod.b[i] <== p[i];
- }
- mod.mod[0] === 1;
- for (var i = 1; i < k; i++) {
- mod.mod[i] === 0;
- }
-}
-
-// in[i] contains values in the range -2^(m-1) to 2^(m-1)
-// constrain that in[] as a big integer is zero
-// each limbs is n bits
-template CheckCarryToZero(n, m, k) {
- assert(k >= 2);
-
- var EPSILON = 3;
-
- assert(m + EPSILON <= 253);
-
- signal input in[k];
-
- signal carry[k];
- component carryRangeChecks[k];
- for (var i = 0; i < k-1; i++){
- carryRangeChecks[i] = Num2Bits(m + EPSILON - n);
- if( i == 0 ){
- carry[i] <-- in[i] / (1< 10944121435919637611123202872628637544274182200208017171849102093287904247808 ? 1 : 0;
-}
-
-function div_ceil(m, n) {
- var ret = 0;
- if (m % n == 0) {
- ret = m \ n;
- } else {
- ret = m \ n + 1;
- }
- return ret;
-}
-
-function log_ceil(n) {
- var n_temp = n;
- for (var i = 0; i < 254; i++) {
- if (n_temp == 0) {
- return i;
- }
- n_temp = n_temp \ 2;
- }
- return 254;
-}
-
-function SplitFn(in, n, m) {
- return [in % (1 << n), (in \ (1 << n)) % (1 << m)];
-}
-
-function SplitThreeFn(in, n, m, k) {
- return [in % (1 << n), (in \ (1 << n)) % (1 << m), (in \ (1 << n + m)) % (1 << k)];
-}
-
-// m bits per overflowed register (values are potentially negative)
-// n bits per properly-sized register
-// in has k registers
-// out has k + ceil(m/n) - 1 + 1 registers. highest-order potentially negative,
-// all others are positive
-// - 1 since the last register is included in the last ceil(m/n) array
-// + 1 since the carries from previous registers could push you over
-function getProperRepresentation(m, n, k, in) {
- var ceilMN = div_ceil(m, n);
-
- var out[100]; // should be out[k + ceilMN]
- assert(k + ceilMN < 100);
- for (var i = 0; i < k; i++) {
- out[i] = in[i];
- }
- for (var i = k; i < 100; i++) {
- out[i] = 0;
- }
- assert(n <= m);
- for (var i = 0; i+1 < k + ceilMN; i++) {
- assert((1 << m) >= out[i] && out[i] >= -(1 << m));
- var shifted_val = out[i] + (1 << m);
- assert(0 <= shifted_val && shifted_val <= (1 << (m+1)));
- out[i] = shifted_val & ((1 << n) - 1);
- out[i+1] += (shifted_val >> n) - (1 << (m - n));
- }
-
- return out;
-}
-
-// Evaluate polynomial a at point x
-function poly_eval(len, a, x) {
- var v = 0;
- for (var i = 0; i < len; i++) {
- v += a[i] * (x ** i);
- }
- return v;
-}
-
-// Interpolate a degree len-1 polynomial given its evaluations at 0..len-1
-function poly_interp(len, v) {
- assert(len <= 200);
- var out[200];
- for (var i = 0; i < len; i++) {
- out[i] = 0;
- }
-
- // Product_{i=0..len-1} (x-i)
- var full_poly[201];
- full_poly[0] = 1;
- for (var i = 0; i < len; i++) {
- full_poly[i+1] = 0;
- for (var j = i; j >= 0; j--) {
- full_poly[j+1] += full_poly[j];
- full_poly[j] *= -i;
- }
- }
-
- for (var i = 0; i < len; i++) {
- var cur_v = 1;
- for (var j = 0; j < len; j++) {
- if (i == j) {
- // do nothing
- } else {
- cur_v *= i-j;
- }
- }
- cur_v = v[i] / cur_v;
-
- var cur_rem = full_poly[len];
- for (var j = len-1; j >= 0; j--) {
- out[j] += cur_v * cur_rem;
- cur_rem = full_poly[j] + i * cur_rem;
- }
- assert(cur_rem == 0);
- }
-
- return out;
-}
-
-// 1 if true, 0 if false
-function long_gt(n, k, a, b) {
- for (var i = k - 1; i >= 0; i--) {
- if (a[i] > b[i]) {
- return 1;
- }
- if (a[i] < b[i]) {
- return 0;
- }
- }
- return 0;
-}
-
-// n bits per register
-// a has k registers
-// b has k registers
-// a >= b
-function long_sub(n, k, a, b) {
- var diff[100];
- var borrow[100];
- for (var i = 0; i < k; i++) {
- if (i == 0) {
- if (a[i] >= b[i]) {
- diff[i] = a[i] - b[i];
- borrow[i] = 0;
- } else {
- diff[i] = a[i] - b[i] + (1 << n);
- borrow[i] = 1;
- }
- } else {
- if (a[i] >= b[i] + borrow[i - 1]) {
- diff[i] = a[i] - b[i] - borrow[i - 1];
- borrow[i] = 0;
- } else {
- diff[i] = (1 << n) + a[i] - b[i] - borrow[i - 1];
- borrow[i] = 1;
- }
- }
- }
- return diff;
-}
-
-// a is a n-bit scalar
-// b has k registers
-function long_scalar_mult(n, k, a, b) {
- var out[100];
- for (var i = 0; i < 100; i++) {
- out[i] = 0;
- }
- for (var i = 0; i < k; i++) {
- var temp = out[i] + (a * b[i]);
- out[i] = temp % (1 << n);
- out[i + 1] = out[i + 1] + temp \ (1 << n);
- }
- return out;
-}
-
-
-// n bits per register
-// a has k + m registers
-// b has k registers
-// out[0] has length m + 1 -- quotient
-// out[1] has length k -- remainder
-// implements algorithm of https://people.eecs.berkeley.edu/~fateman/282/F%20Wright%20notes/week4.pdf
-function long_div(n, k, m, a, b){
- var out[2][100];
- m += k;
- while (b[k-1] == 0) {
- out[1][k] = 0;
- k--;
- assert(k > 0);
- }
- m -= k;
-
- var remainder[200];
- for (var i = 0; i < m + k; i++) {
- remainder[i] = a[i];
- }
-
- var mult[200];
- var dividend[200];
- for (var i = m; i >= 0; i--) {
- if (i == m) {
- dividend[k] = 0;
- for (var j = k - 1; j >= 0; j--) {
- dividend[j] = remainder[j + m];
- }
- } else {
- for (var j = k; j >= 0; j--) {
- dividend[j] = remainder[j + i];
- }
- }
-
- out[0][i] = short_div(n, k, dividend, b);
-
- var mult_shift[100] = long_scalar_mult(n, k, out[0][i], b);
- var subtrahend[200];
- for (var j = 0; j < m + k; j++) {
- subtrahend[j] = 0;
- }
- for (var j = 0; j <= k; j++) {
- if (i + j < m + k) {
- subtrahend[i + j] = mult_shift[j];
- }
- }
- remainder = long_sub(n, m + k, remainder, subtrahend);
- }
- for (var i = 0; i < k; i++) {
- out[1][i] = remainder[i];
- }
- out[1][k] = 0;
-
- return out;
-}
-
-// n bits per register
-// a has k + 1 registers
-// b has k registers
-// assumes leading digit of b is at least 2 ** (n - 1)
-// 0 <= a < (2**n) * b
-function short_div_norm(n, k, a, b) {
- var qhat = (a[k] * (1 << n) + a[k - 1]) \ b[k - 1];
- if (qhat > (1 << n) - 1) {
- qhat = (1 << n) - 1;
- }
-
- var mult[100] = long_scalar_mult(n, k, qhat, b);
- if (long_gt(n, k + 1, mult, a) == 1) {
- mult = long_sub(n, k + 1, mult, b);
- if (long_gt(n, k + 1, mult, a) == 1) {
- return qhat - 2;
- } else {
- return qhat - 1;
- }
- } else {
- return qhat;
- }
-}
-
-// n bits per register
-// a has k + 1 registers
-// b has k registers
-// assumes leading digit of b is non-zero
-// 0 <= a < (2**n) * b
-function short_div(n, k, a, b) {
- var scale = (1 << n) \ (1 + b[k - 1]);
-
- // k + 2 registers now
- var norm_a[200] = long_scalar_mult(n, k + 1, scale, a);
- // k + 1 registers now
- var norm_b[200] = long_scalar_mult(n, k, scale, b);
-
- var ret;
- if (norm_b[k] != 0) {
- ret = short_div_norm(n, k + 1, norm_a, norm_b);
- } else {
- ret = short_div_norm(n, k, norm_a, norm_b);
- }
- return ret;
-}
-
-// n bits per register
-// a and b both have k registers
-// out[0] has length 2 * k
-// adapted from BigMulShortLong and LongToShortNoEndCarry2 witness computation
-function prod(n, k, a, b) {
- // first compute the intermediate values. taken from BigMulShortLong
- var prod_val[100]; // length is 2 * k - 1
- for (var i = 0; i < 2 * k - 1; i++) {
- prod_val[i] = 0;
- if (i < k) {
- for (var a_idx = 0; a_idx <= i; a_idx++) {
- prod_val[i] = prod_val[i] + a[a_idx] * b[i - a_idx];
- }
- } else {
- for (var a_idx = i - k + 1; a_idx < k; a_idx++) {
- prod_val[i] = prod_val[i] + a[a_idx] * b[i - a_idx];
- }
- }
- }
-
- // now do a bunch of carrying to make sure registers not overflowed. taken from LongToShortNoEndCarry2
- var out[100]; // length is 2 * k
-
- var split[100][3]; // first dimension has length 2 * k - 1
- for (var i = 0; i < 2 * k - 1; i++) {
- split[i] = SplitThreeFn(prod_val[i], n, n, n);
- }
-
- var carry[100]; // length is 2 * k - 1
- carry[0] = 0;
- out[0] = split[0][0];
- if (2 * k - 1 > 1) {
- var sumAndCarry[2] = SplitFn(split[0][1] + split[1][0], n, n);
- out[1] = sumAndCarry[0];
- carry[1] = sumAndCarry[1];
- }
- if (2 * k - 1 > 2) {
- for (var i = 2; i < 2 * k - 1; i++) {
- var sumAndCarry[2] = SplitFn(split[i][0] + split[i-1][1] + split[i-2][2] + carry[i-1], n, n);
- out[i] = sumAndCarry[0];
- carry[i] = sumAndCarry[1];
- }
- out[2 * k - 1] = split[2*k-2][1] + split[2*k-3][2] + carry[2*k-2];
- }
- return out;
-}
-
-// n bits per register
-// a has k registers
-// p has k registers
-// e has k registers
-// k * n <= 500
-// p is a prime
-// computes a^e mod p
-function mod_exp(n, k, a, p, e) {
- var eBits[500]; // length is k * n
- for (var i = 0; i < k; i++) {
- for (var j = 0; j < n; j++) {
- eBits[j + n * i] = (e[i] >> j) & 1;
- }
- }
-
- var out[100]; // length is k
- for (var i = 0; i < 100; i++) {
- out[i] = 0;
- }
- out[0] = 1;
-
- // repeated squaring
- for (var i = k * n - 1; i >= 0; i--) {
- // multiply by a if bit is 0
- if (eBits[i] == 1) {
- var temp[200]; // length 2 * k
- temp = prod(n, k, out, a);
- var temp2[2][100];
- temp2 = long_div(n, k, k, temp, p);
- out = temp2[1];
- }
-
- // square, unless we're at the end
- if (i > 0) {
- var temp[200]; // length 2 * k
- temp = prod(n, k, out, out);
- var temp2[2][100];
- temp2 = long_div(n, k, k, temp, p);
- out = temp2[1];
- }
-
- }
- return out;
-}
-
-// n bits per register
-// a has k registers
-// p has k registers
-// k * n <= 500
-// p is a prime
-// if a == 0 mod p, returns 0
-// else computes inv = a^(p-2) mod p
-function mod_inv(n, k, a, p) {
- var isZero = 1;
- for (var i = 0; i < k; i++) {
- if (a[i] != 0) {
- isZero = 0;
- }
- }
- if (isZero == 1) {
- var ret[100];
- for (var i = 0; i < k; i++) {
- ret[i] = 0;
- }
- return ret;
- }
-
- var pCopy[100];
- for (var i = 0; i < 100; i++) {
- if (i < k) {
- pCopy[i] = p[i];
- } else {
- pCopy[i] = 0;
- }
- }
-
- var two[100];
- for (var i = 0; i < 100; i++) {
- two[i] = 0;
- }
- two[0] = 2;
-
- var pMinusTwo[100];
- pMinusTwo = long_sub(n, k, pCopy, two); // length k
- var out[100];
- out = mod_exp(n, k, a, pCopy, pMinusTwo);
- return out;
-}
-
-// a, b and out are all n bits k registers
-function long_sub_mod_p(n, k, a, b, p){
- var gt = long_gt(n, k, a, b);
- var tmp[100];
- if(gt){
- tmp = long_sub(n, k, a, b);
- }
- else{
- tmp = long_sub(n, k, b, a);
- }
- var out[2][100];
- for(var i = k;i < 2 * k; i++){
- tmp[i] = 0;
- }
- out = long_div(n, k, k, tmp, p);
- if(gt==0){
- tmp = long_sub(n, k, p, out[1]);
- }
- return tmp;
-}
-
-// a, b, p and out are all n bits k registers
-function prod_mod_p(n, k, a, b, p){
- var tmp[100];
- var result[2][100];
- tmp = prod(n, k, a, b);
- result = long_div(n, k, k, tmp, p);
- return result[1];
-}
\ No newline at end of file
diff --git a/circuits/circuits/helpers/extract.circom b/circuits/circuits/helpers/extract.circom
deleted file mode 100644
index c51bc7961..000000000
--- a/circuits/circuits/helpers/extract.circom
+++ /dev/null
@@ -1,175 +0,0 @@
-pragma circom 2.1.2;
-include "./utils.circom";
-
-// circuits in this folder copied from zk-email, credits to them
-
-// A set of utils for shifting and packing signal arrays
-// Performs extraction of reveal signals and packed signals
-
-// From https://github.com/iden3/circomlib/blob/master/circuits/multiplexer.circom
-function log2(a) {
- if (a == 0) {
- return 0;
- }
- var n = 1;
- var r = 1;
- while (n n2b.in;
- for (var i = 0; i<254; i++) {
- n2b.out[i] ==> sign.in[i];
- }
- sign.sign ==> out;
-}
\ No newline at end of file
diff --git a/circuits/circuits/helpers/utils.circom b/circuits/circuits/helpers/utils.circom
deleted file mode 100644
index 149c211db..000000000
--- a/circuits/circuits/helpers/utils.circom
+++ /dev/null
@@ -1,149 +0,0 @@
-pragma circom 2.1.5;
-
-include "../../node_modules/circomlib/circuits/bitify.circom";
-include "../../node_modules/circomlib/circuits/comparators.circom";
-include "../../node_modules/circomlib/circuits/mimcsponge.circom";
-include "./fp.circom";
-
-// returns ceil(log2(a+1))
-function log2_ceil(a) {
- var n = a+1;
- var r = 0;
- while (n>0) {
- r++;
- n \= 2;
- }
- return r;
-}
-
-// returns ceil(log2(a+1))
-function count_packed(n, chunks) {
- return (n - 1) \ chunks + 1;
-}
-
-// Lifted from MACI https://github.com/privacy-scaling-explorations/maci/blob/v1/circuits/circom/trees/incrementalQuinTree.circom#L29
-// Bits is ceil(log2 choices)
-template QuinSelector(choices, bits) {
- signal input in[choices];
- signal input index;
- signal output out;
-
- // Ensure that index < choices
- component lessThan = LessThan(bits);
- lessThan.in[0] <== index;
- lessThan.in[1] <== choices;
- lessThan.out === 1;
-
- component calcTotal = CalculateTotal(choices);
- component eqs[choices];
-
- // For each item, check whether its index equals the input index.
- for (var i = 0; i < choices; i ++) {
- eqs[i] = IsEqual();
- eqs[i].in[0] <== i;
- eqs[i].in[1] <== index;
-
- // eqs[i].out is 1 if the index matches. As such, at most one input to
- // calcTotal is not 0.
- calcTotal.nums[i] <== eqs[i].out * in[i];
- }
-
- // Returns 0 + 0 + ... + item
- out <== calcTotal.sum;
-}
-
-template CalculateTotal(n) {
- signal input nums[n];
- signal output sum;
-
- signal sums[n];
- sums[0] <== nums[0];
-
- for (var i=1; i < n; i++) {
- sums[i] <== sums[i - 1] + nums[i];
- }
-
- sum <== sums[n - 1];
-}
-
-// Written by us
-// n bytes per signal, n = 31 usually
-template Packed2Bytes(n){
- signal input in; // < 2 ^ (8 * 31)
- signal output out[n]; // each out is < 64
- // Rangecheck in and out?
-
- // Constrain bits
- component nbytes = Num2Bits(8 * n);
- nbytes.in <== in;
- component bytes[n];
-
- for (var k = 0; k < n; k++){
- // Witness gen out
- out[k] <-- (in >> (k * 8)) % 256;
-
- // Constrain bits to match
- bytes[k] = Num2Bits(8);
- bytes[k].in <== out[k];
- for (var j = 0; j < 8; j++) {
- nbytes.out[k * 8 + j] === bytes[k].out[j];
- }
- }
-}
-
-// n bytes per signal, n = 31 usually (i.e. 31 8-bit values being packed into 248 bits)
-// when calling this, you must constrain each 'in' value yourself to be < 256
-// TODO: Rangecheck in and out?
-template Bytes2Packed(n){
- signal input in[n]; // each in value is < 256 (i.e. 2^8)
- signal pow2[n+1]; // [k] is 2^k
- signal in_prefix_sum[n+1]; // each [k] is in[0] + 2^8 in[1]... 2^{8k-8} in[k-1]. cont.
- // [0] is 0. [1] is in[0]. [n+1] is out.
- signal output out; // < 2 ^ (8 * 31)
- // Rangecheck in and out?
-
- // Witness gen out
- in_prefix_sum[0] <-- 0;
- for (var k = 0; k < n; k++){
- in_prefix_sum[k+1] <-- in_prefix_sum[k] + in[k] * (2 ** (k * 8));
- }
- out <-- in_prefix_sum[n];
-
- // Constrain out bits
- component nbytes = Num2Bits(8 * n);
- nbytes.in <== out; // I think this auto-rangechecks out to be < 8*n bits.
- component bytes[n];
-
- for (var k = 0; k < n; k++){
- bytes[k] = Num2Bits(8);
- bytes[k].in <== in[k];
- for (var j = 0; j < 8; j++) {
- nbytes.out[k * 8 + j] === bytes[k].out[j];
- }
- }
-}
-
-// salt_is_message_id_from, custom_anon_from_hashed_salt = MakeAnonEmailSalt(max_email_from_len, max_message_id_len)(email_from, custom_message_id_from, shifted_message_id)
-template MakeAnonEmailSalt(email_len, blinder_len) {
- signal input email[email_len];
- signal input custom_message_id[blinder_len]; // previous message id, used to source past account
- signal input original_message_id[blinder_len]; // previous message id, used to source past account
- signal intermediate_is_message_id_from[blinder_len + 1];
- signal isEq[blinder_len];
- signal output blinder_matches;
- signal output anon_salt;
-
- component hasher = MiMCSponge(email_len + blinder_len, 220, 1);
- hasher.k <== 123;
- for (var i = 0; i < email_len; i++) {
- hasher.ins[i] <== email[i];
- }
- intermediate_is_message_id_from[0] <== 1;
- for (var i = 0; i < blinder_len; i++) {
- hasher.ins[i + email_len] <== custom_message_id[i];
- isEq[i] <== IsEqual()([custom_message_id[i], original_message_id[i]]);
- intermediate_is_message_id_from[i + 1] <== isEq[i] * intermediate_is_message_id_from[i];
- }
- blinder_matches <== intermediate_is_message_id_from[blinder_len];
- anon_salt <== hasher.outs[0];
-}
diff --git a/circuits/circuits/passport_verifier.circom b/circuits/circuits/passport_verifier.circom
index 53b7ce9ad..c06ef60d5 100644
--- a/circuits/circuits/passport_verifier.circom
+++ b/circuits/circuits/passport_verifier.circom
@@ -1,8 +1,8 @@
pragma circom 2.1.5;
-include "./rsa/rsa.circom";
+include "@zk-email/circuits/helpers/rsa.circom";
+include "@zk-email/circuits/helpers/extract.circom";
include "./sha256Bytes.circom";
-include "../node_modules/circomlib/circuits/sha256/sha256.circom";
template PassportVerifier(n, k) {
signal input mrz[93]; // formatted mrz (5 + 88) chars
diff --git a/circuits/circuits/proof_of_passport.circom b/circuits/circuits/proof_of_passport.circom
index ba1f25046..7bfa79197 100644
--- a/circuits/circuits/proof_of_passport.circom
+++ b/circuits/circuits/proof_of_passport.circom
@@ -1,7 +1,7 @@
pragma circom 2.1.5;
-include "../node_modules/circomlib/circuits/poseidon.circom";
-include "./helpers/extract.circom";
+include "circomlib/circuits/poseidon.circom";
+include "@zk-email/circuits/helpers/extract.circom";
include "./passport_verifier.circom";
template ProofOfPassport(n, k) {
diff --git a/circuits/circuits/rsa/rsa.circom b/circuits/circuits/rsa/rsa.circom
deleted file mode 100644
index 9f0327d25..000000000
--- a/circuits/circuits/rsa/rsa.circom
+++ /dev/null
@@ -1,156 +0,0 @@
-pragma circom 2.1.5;
-
-include "../helpers/fp.circom";
-
-// Computes base^65537 mod modulus
-// Does not necessarily reduce fully mod modulus (the answer could be
-// too big by a multiple of modulus)
-template FpPow65537Mod(n, k) {
- signal input base[k];
- // Exponent is hardcoded at 65537
- signal input modulus[k];
- signal output out[k];
-
- component doublers[16];
- component adder = FpMul(n, k);
- for (var i = 0; i < 16; i++) {
- doublers[i] = FpMul(n, k);
- }
-
- for (var j = 0; j < k; j++) {
- adder.p[j] <== modulus[j];
- for (var i = 0; i < 16; i++) {
- doublers[i].p[j] <== modulus[j];
- }
- }
- for (var j = 0; j < k; j++) {
- doublers[0].a[j] <== base[j];
- doublers[0].b[j] <== base[j];
- }
- for (var i = 0; i + 1 < 16; i++) {
- for (var j = 0; j < k; j++) {
- doublers[i + 1].a[j] <== doublers[i].out[j];
- doublers[i + 1].b[j] <== doublers[i].out[j];
- }
- }
- for (var j = 0; j < k; j++) {
- adder.a[j] <== base[j];
- adder.b[j] <== doublers[15].out[j];
- }
- for (var j = 0; j < k; j++) {
- out[j] <== adder.out[j];
- }
-}
-
-template RSAPad(n, k) {
- signal input modulus[k];
- signal input base_message[k];
- signal output padded_message[k];
-
- var base_len = 408;
- var msg_len = 256;
-
- signal padded_message_bits[n*k];
-
- component modulus_n2b[k];
- component base_message_n2b[k];
- signal modulus_bits[n*k];
- signal base_message_bits[n*k];
- for (var i = 0; i < k; i++) {
- base_message_n2b[i] = Num2Bits(n);
- base_message_n2b[i].in <== base_message[i];
- for (var j = 0; j < n; j++) {
- base_message_bits[i*n+j] <== base_message_n2b[i].out[j];
- }
- modulus_n2b[i] = Num2Bits(n);
- modulus_n2b[i].in <== modulus[i];
- for (var j = 0; j < n; j++) {
- modulus_bits[i*n+j] <== modulus_n2b[i].out[j];
- }
- }
-
- for (var i = msg_len; i < n*k; i++) {
- base_message_bits[i] === 0;
- }
-
- for (var i = 0; i < msg_len; i++) {
- padded_message_bits[i] <== base_message_bits[i];
- }
-
- for (var i = base_len; i < base_len + 8; i++) {
- padded_message_bits[i] <== 0;
- }
-
- for (var i = msg_len; i < base_len; i++) {
- padded_message_bits[i] <== (0x3031300d060960864801650304020105000420 >> (i - msg_len)) & 1;
- }
-
- component modulus_zero[(n*k + 7 - (base_len + 8))\8];
- {
- var modulus_prefix = 0;
- for (var i = n*k - 1; i >= base_len + 8; i--) {
- if (i+8 < n*k) {
- modulus_prefix += modulus_bits[i+8];
- if (i % 8 == 0) {
- var idx = (i - (base_len + 8)) / 8;
- modulus_zero[idx] = IsZero();
- modulus_zero[idx].in <== modulus_prefix;
- padded_message_bits[i] <== 1-modulus_zero[idx].out;
- } else {
- padded_message_bits[i] <== padded_message_bits[i+1];
- }
- } else {
- padded_message_bits[i] <== 0;
- }
- }
- }
-
- // The RFC guarantees at least 8 octets of 0xff padding.
- assert(base_len + 8 + 65 <= n*k);
- for (var i = base_len + 8; i < base_len + 8 + 65; i++) {
- padded_message_bits[i] === 1;
- }
-
- component padded_message_b2n[k];
- for (var i = 0; i < k; i++) {
- padded_message_b2n[i] = Bits2Num(n);
- for (var j = 0; j < n; j++) {
- padded_message_b2n[i].in[j] <== padded_message_bits[i*n+j];
- }
- padded_message[i] <== padded_message_b2n[i].out;
- }
-}
-
-template RSAVerify65537(n, k) {
- signal input signature[k];
- signal input modulus[k];
- signal input base_message[k];
-
- component padder = RSAPad(n, k);
- for (var i = 0; i < k; i++) {
- padder.modulus[i] <== modulus[i];
- padder.base_message[i] <== base_message[i];
- }
-
- // Check that the signature is in proper form and reduced mod modulus.
- component signatureRangeCheck[k];
- component bigLessThan = BigLessThan(n, k);
- for (var i = 0; i < k; i++) {
- signatureRangeCheck[i] = Num2Bits(n);
- signatureRangeCheck[i].in <== signature[i];
- bigLessThan.a[i] <== signature[i];
- bigLessThan.b[i] <== modulus[i];
- }
- bigLessThan.out === 1;
-
- component bigPow = FpPow65537Mod(n, k);
- for (var i = 0; i < k; i++) {
- bigPow.base[i] <== signature[i];
- bigPow.modulus[i] <== modulus[i];
- }
- // By construction of the padding, the padded message is necessarily
- // smaller than the modulus. Thus, we don't have to check that bigPow is fully reduced.
- for (var i = 0; i < k; i++) {
- bigPow.out[i] === padder.padded_message[i];
- }
-}
diff --git a/circuits/circuits/sha256Bytes.circom b/circuits/circuits/sha256Bytes.circom
index fcdee1ebe..c9d1febb1 100644
--- a/circuits/circuits/sha256Bytes.circom
+++ b/circuits/circuits/sha256Bytes.circom
@@ -1,8 +1,7 @@
pragma circom 2.1.5;
-include "../node_modules/circomlib/circuits/bitify.circom";
-include "../node_modules/circomlib/circuits/sha256/sha256.circom";
-include "../node_modules/circomlib/circuits/bitify.circom";
+include "circomlib/circuits/bitify.circom";
+include "circomlib/circuits/sha256/sha256.circom";
template Sha256Bytes(max_num_bytes) {
signal input in_padded[max_num_bytes];
diff --git a/circuits/package.json b/circuits/package.json
index 550716495..262002606 100644
--- a/circuits/package.json
+++ b/circuits/package.json
@@ -10,6 +10,7 @@
"@types/chai-as-promised": "^7.1.6",
"@types/node": "^20.6.3",
"@types/node-forge": "^1.3.5",
+ "@zk-email/circuits": "^3.2.2",
"chai-as-promised": "^7.1.1",
"circomlib": "^2.0.5",
"js-sha256": "^0.10.1",
diff --git a/circuits/scripts/build_circuit.sh b/circuits/scripts/build_circuit.sh
index 6ff7025d9..4a614bc04 100755
--- a/circuits/scripts/build_circuit.sh
+++ b/circuits/scripts/build_circuit.sh
@@ -20,7 +20,7 @@ fi
cd ..
echo "compiling circuit"
-circom circuits/proof_of_passport.circom --r1cs --wasm --output build
+circom circuits/proof_of_passport.circom -l node_modules --r1cs --wasm --output build
mkdir -p ../app/ark-circom-passport/passport/
cp build/proof_of_passport.r1cs ../app/ark-circom-passport/passport/
@@ -30,11 +30,6 @@ echo "file sizes:"
echo "Size of proof_of_passport.r1cs: $(wc -c <../app/ark-circom-passport/passport/proof_of_passport.r1cs) bytes"
echo "Size of proof_of_passport.wasm: $(wc -c <../app/ark-circom-passport/passport/proof_of_passport.wasm) bytes"
-# If APP_ONLY is 1, exit the script here
-if [ $APP_ONLY -eq 1 ]; then
- exit 0
-fi
-
echo "building zkey"
yarn snarkjs groth16 setup build/proof_of_passport.r1cs build/powersOfTau28_hez_final_20.ptau build/proof_of_passport.zkey
@@ -44,5 +39,4 @@ yarn snarkjs zkey export verificationkey build/proof_of_passport_final.zkey buil
yarn snarkjs zkey export solidityverifier build/proof_of_passport_final.zkey build/Verifier.sol
cp build/Verifier.sol ../contracts/contracts/Verifier.sol
-cp build/proof_of_passport_final.zkey ../app/ark-circom-passport/passport/
-echo "copied Verifier.sol to contracts and proof_of_passport_final.zkey to ark-circom-passport"
\ No newline at end of file
+echo "copied Verifier.sol to contracts"
\ No newline at end of file
diff --git a/circuits/yarn.lock b/circuits/yarn.lock
index e75e63bca..a9c8da6b9 100644
--- a/circuits/yarn.lock
+++ b/circuits/yarn.lock
@@ -49,6 +49,21 @@
resolved "https://registry.yarnpkg.com/@types/node/-/node-20.6.3.tgz#5b763b321cd3b80f6b8dde7a37e1a77ff9358dd9"
integrity sha512-HksnYH4Ljr4VQgEy2lTStbCKv/P590tmPe5HqOnv9Gprffgv5WXAY+Y5Gqniu0GGqeTCUdBnzC3QSrzPkBkAMA==
+"@zk-email/circuits@^3.2.2":
+ version "3.2.2"
+ resolved "https://registry.yarnpkg.com/@zk-email/circuits/-/circuits-3.2.2.tgz#019d10e644ba1a3ad73bd8d73a66f53149c530dd"
+ integrity sha512-3R2y64IeNq7cnfJabAlmQflhGlNAhcR4vq9n55fAIbgpYQ8P2d4k5Aa52HK8mqaVDCnNjLlAWMni557TUqQuGg==
+ dependencies:
+ "@zk-email/zk-regex-circom" "^1.1.1"
+
+"@zk-email/zk-regex-circom@^1.1.1":
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/@zk-email/zk-regex-circom/-/zk-regex-circom-1.2.1.tgz#ea1adc832e8d855c9568abc438567a524a0ac962"
+ integrity sha512-+AoH5PdKZxatTWfwYWGkpuQ0xGaax6FwBHvdYXugkPDdgtJQYyxhItQtM79bo0djCmuwEK2X1rnYlFHBDClQeA==
+ dependencies:
+ commander "^11.0.0"
+ snarkjs "^0.7.0"
+
ansi-colors@4.1.1:
version "4.1.1"
resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348"
@@ -256,6 +271,11 @@ color-name@~1.1.4:
resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
+commander@^11.0.0:
+ version "11.1.0"
+ resolved "https://registry.yarnpkg.com/commander/-/commander-11.1.0.tgz#62fdce76006a68e5c1ab3314dc92e800eb83d906"
+ integrity sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==
+
concat-map@0.0.1:
version "0.0.1"
resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
@@ -368,6 +388,15 @@ ffjavascript@0.2.60, ffjavascript@^0.2.48:
wasmcurves "0.2.2"
web-worker "^1.2.0"
+ffjavascript@0.2.63:
+ version "0.2.63"
+ resolved "https://registry.yarnpkg.com/ffjavascript/-/ffjavascript-0.2.63.tgz#0c1216a1f123dc9181df69e144473704d2f115eb"
+ integrity sha512-dBgdsfGks58b66JnUZeZpGxdMIDQ4QsD3VYlRJyFVrKQHb2kJy4R2gufx5oetrTxXPT+aEjg0dOvOLg1N0on4A==
+ dependencies:
+ wasmbuilder "0.0.16"
+ wasmcurves "0.2.2"
+ web-worker "1.2.0"
+
filelist@^1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/filelist/-/filelist-1.0.4.tgz#f78978a1e944775ff9e62e744424f215e58352b5"
@@ -773,6 +802,22 @@ serialize-javascript@6.0.0:
dependencies:
randombytes "^2.1.0"
+snarkjs@^0.7.0:
+ version "0.7.3"
+ resolved "https://registry.yarnpkg.com/snarkjs/-/snarkjs-0.7.3.tgz#7f703d05b810235255f2d0a70d8a9b8b3ea916e5"
+ integrity sha512-cDLpWqdqEJSCQNc+cXYX1XTKdUZBtYEisuOsgmXf/HUsN5WmGN+FO7HfCS+cMQT1Nzbm1a9gAEpKH6KRtDtS1Q==
+ dependencies:
+ "@iden3/binfileutils" "0.0.11"
+ bfj "^7.0.2"
+ blake2b-wasm "^2.4.0"
+ circom_runtime "0.1.24"
+ ejs "^3.1.6"
+ fastfile "0.0.20"
+ ffjavascript "0.2.63"
+ js-sha3 "^0.8.0"
+ logplease "^1.2.15"
+ r1csfile "0.0.47"
+
snarkjs@^0.7.1:
version "0.7.1"
resolved "https://registry.yarnpkg.com/snarkjs/-/snarkjs-0.7.1.tgz#c96ecaf4db8c2eb44d60b17ee02f37ed39c821bb"
@@ -928,7 +973,7 @@ wasmcurves@0.2.2:
dependencies:
wasmbuilder "0.0.16"
-web-worker@^1.2.0:
+web-worker@1.2.0, web-worker@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/web-worker/-/web-worker-1.2.0.tgz#5d85a04a7fbc1e7db58f66595d7a3ac7c9c180da"
integrity sha512-PgF341avzqyx60neE9DD+XS26MMNMoUQRz9NOZwW32nPQrF6p77f1htcnjBSEV8BGMKZ16choqUG4hyI0Hx7mA==
diff --git a/common/src/utils/types.ts b/common/src/utils/types.ts
index 3095e06e7..822f01cdf 100644
--- a/common/src/utils/types.ts
+++ b/common/src/utils/types.ts
@@ -4,7 +4,7 @@ export type PassportData = {
mrz: string;
signatureAlgorithm: string;
pubKey: {modulus?: string, curveName?: string, publicKeyQ?: string};
- dataGroupHashes: DataHash[];
+ dataGroupHashes: DataHash[] | number[];
eContent: number[];
encryptedDigest: number[];
};
diff --git a/common/src/utils/utils.ts b/common/src/utils/utils.ts
index b71eb7b19..476289763 100644
--- a/common/src/utils/utils.ts
+++ b/common/src/utils/utils.ts
@@ -177,3 +177,54 @@ export function hexToSignedBytes(hexString: string): number[] {
export function toUnsignedByte(signedByte: number) {
return signedByte < 0 ? signedByte + 256 : signedByte;
}
+
+export function hexStringToSignedIntArray(hexString: string) {
+ let result = [];
+ for (let i = 0; i < hexString.length; i += 2) {
+ let byte = parseInt(hexString.substr(i, 2), 16);
+ result.push(byte > 127 ? byte - 256 : byte);
+ }
+ return result;
+};
+
+function bytesToBigInt(bytes: number[]) {
+ let hex = bytes.reverse().map(byte => byte.toString(16).padStart(2, '0')).join('');
+ // console.log('hex', hex)
+ return BigInt(`0x${hex}`).toString();
+}
+
+function splitInto(arr: number[], size: number) {
+ const res = [];
+ for(let i = 0; i < arr.length; i += size) {
+ res.push(arr.slice(i, i + size));
+ }
+ return res;
+}
+
+function setFirstBitOfLastByteToZero(bytes: number[]) {
+ bytes[bytes.length - 1] &= 0x7F; // AND with 01111111 to set the first bit of the last byte to 0
+ return bytes;
+}
+
+// from reverse engineering ark-serialize.
+export function formatProofIOS(proof: number[]) {
+ const splittedProof = splitInto(proof, 32);
+ splittedProof[1] = setFirstBitOfLastByteToZero(splittedProof[1]);
+ splittedProof[5] = setFirstBitOfLastByteToZero(splittedProof[5]); // We might need to do the same for input 3
+ splittedProof[7] = setFirstBitOfLastByteToZero(splittedProof[7]);
+ const proooof = splittedProof.map(bytesToBigInt);
+
+ return {
+ "a": [proooof[0], proooof[1]],
+ "b": [
+ [proooof[2], proooof[3]],
+ [proooof[4], proooof[5]]
+ ],
+ "c": [proooof[6], proooof[7]]
+ }
+}
+
+export function formatInputsIOS(inputs: number[]) {
+ const splitted = splitInto(inputs.slice(8), 32);
+ return splitted.map(bytesToBigInt);
+}
\ No newline at end of file
diff --git a/contracts/contracts/Verifier.sol b/contracts/contracts/Verifier.sol
index 7e39d4c47..09a711651 100644
--- a/contracts/contracts/Verifier.sol
+++ b/contracts/contracts/Verifier.sol
@@ -37,10 +37,10 @@ contract Groth16Verifier {
uint256 constant gammax2 = 10857046999023057135944570762232829481370756359578518086990519993285655852781;
uint256 constant gammay1 = 4082367875863433681332203403145435568316851327593401208105741076214120093531;
uint256 constant gammay2 = 8495653923123431417604973247489272438418190587263600148770280649306958101930;
- uint256 constant deltax1 = 3209380006197917323277329582098228339371163660926962295801164826214856517947;
- uint256 constant deltax2 = 6646670050526259801819251758958211452540005804223688493722226090330926439262;
- uint256 constant deltay1 = 5902942920401026834003595450475380413196841721810355915757638362939360983954;
- uint256 constant deltay2 = 806822447775191833164489432648121152502993279435744441275443418978021481943;
+ uint256 constant deltax1 = 13332829983292634874659240068294550011141456103652018916224391594481625590699;
+ uint256 constant deltax2 = 21775687996720864507552980920389387944496604814608793381435179673741251662482;
+ uint256 constant deltay1 = 15444510239488592734510692256596834816736560818857866493410444065736122722029;
+ uint256 constant deltay2 = 12213750345729207307537910743738626761327252153590563067440130819625419372191;
uint256 constant IC0x = 4897812530436581420070048815704719785256466787655503857610889333796081821201;
diff --git a/contracts/hardhat.config.ts b/contracts/hardhat.config.ts
index 5191b3751..7dec0d9b6 100644
--- a/contracts/hardhat.config.ts
+++ b/contracts/hardhat.config.ts
@@ -18,6 +18,10 @@ const config: HardhatUserConfig = {
mumbai: {
url: "https://polygon-mumbai-bor.publicnode.com",
accounts: [process.env.PKEY as string],
+ },
+ sepolia: {
+ url: "https://rpc.notadegen.com/eth/sepolia",
+ accounts: [process.env.PKEY as string],
}
},
};
diff --git a/contracts/scripts/deploy.ts b/contracts/scripts/deploy.ts
index 8a565b4a5..6c5f5d9e2 100644
--- a/contracts/scripts/deploy.ts
+++ b/contracts/scripts/deploy.ts
@@ -13,9 +13,12 @@ async function main() {
const Formatter = await ethers.getContractFactory("Formatter");
const formatter = await Formatter.deploy();
await formatter.waitForDeployment();
- await formatter.addCountryCodes(Object.entries(countryCodes));
-
console.log(`Formatter deployed to ${formatter.target}`);
+
+ const tx = await formatter.addCountryCodes(Object.entries(countryCodes));
+ await tx.wait();
+ console.log(`Country codes added`);
+
const ProofOfPassport = await ethers.getContractFactory("ProofOfPassport");
const proofOfPassport = await ProofOfPassport.deploy(verifier.target, formatter.target);