Office 365 Password Tool v0.1 Source

If you have any questions or comments, leave a comment below.

<#
.NOTES
--------------------------------------------------------------------------------
Code generated by: SAPIEN Technologies, Inc., PowerShell Studio 2015 v4.2.80
Generated on: 2/17/2015 12:41 AM
Generated by: David Septimus
--------------------------------------------------------------------------------
.DESCRIPTION
Script generated by PowerShell Studio 2015
#>


#region Source: Startup.pss
#----------------------------------------------
#region Import Assemblies
#----------------------------------------------
[void][Reflection.Assembly]::Load('mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089')
[void][Reflection.Assembly]::Load('System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089')
[void][Reflection.Assembly]::Load('System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089')
[void][Reflection.Assembly]::Load('System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089')
[void][Reflection.Assembly]::Load('System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a')
[void][Reflection.Assembly]::Load('System.Xml, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089')
[void][Reflection.Assembly]::Load('System.DirectoryServices, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a')
[void][Reflection.Assembly]::Load('System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089')
[void][Reflection.Assembly]::Load('System.ServiceProcess, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a')
#endregion Import Assemblies

#Define a Param block to use custom parameters in the project
#Param ($CustomParameter)

function Main {
Param ([String]$Commandline)
#Note: This function starts the application
#Note: $Commandline contains the complete argument string passed to the packager 
#Note: To get the script directory in the Packager use: Split-Path $hostinvocation.MyCommand.path
#Note: To get the console output in the Packager (Forms Mode) use: $ConsoleOutput (Type: System.Collections.ArrayList)
#TODO: Initialize and add Function calls to forms

if((Call-mainform_psf) -eq "OK")
{

}

$global:ExitCode = 0 #Set the exit code for the Packager
}


#endregion Source: Startup.pss

#region Source: Globals.ps1
Import-Module MSOnline

#--------------------------------------------
# Declare Global Variables and Functions here
#--------------------------------------------
$array = New-Object System.Collections.ArrayList
$PasswordResetList = New-Object System.Collections.ArrayList
[boolean]$importSuccessful = $false
[string]$configFile = '.\settings.xml'
[boolean]$meetsCXR = $true
[boolean]$global:outputHidden = $false
[boolean]$hideAdmins = $true

#Sample function that provides the location of the script
function Get-ScriptDirectory
{
if ($hostinvocation -ne $null)
{
Split-Path $hostinvocation.MyCommand.path
}
else
{
Split-Path $script:MyInvocation.MyCommand.Path
}
}

#Removes all users matching the records in the $deletionList parameter
function Remove-Office365Users
{
param (
[string[]]$DeletionList
)
ForEach ($UserPrincipalName in $DeletionList)
{
Remove-MsolUser -UserPrincipalName $UserPrincipalName -force
$debugtext.text += "$($user) Removed `r"
}
Get-Office365User
}

#Creates new MsolUsers from the records in the CSV file passed to the function
function Import-Users
{
param (
$UserCSV
)
$users = Import-Csv $UserCSV

foreach ($user in $users)
{
New-MsolUser -UserPrincipalName $user.UserPrincipalName -City $user.city -State $user.State -Country $user.Country -DisplayName $user.DisplayName -FirstName $user.FirstName -LastName $user.LastName -LicenseAssignment $user.License -UsageLocation $user.UsageLocation
$debugtext.text += "$($user.userprincipalName) Created `r"
}
Get-Office365User

}

#Resets the password of the MSolUser passed to it
function Reset-MsolPassword
{
param (
[string[]]$MsolUser,
[string]$Password,
[boolean]$ForceChangePassword,
[boolean]$PasswordNeverExpires
)
for ($i = 0; $i -lt $MsolUser.Count; $i++)
{
if ($Password -ne '') { Set-MsolUserPassword -UserPrincipalName $MsolUser[$i] -NewPassword $password -ForceChangePassword $ForceChangePassword -Verbose }
else { $newPassword = Set-MsolUserPassword -UserPrincipalName $MsolUser[$i] -ForceChangePassword $ForceChangePassword }
$DebugText.text += "$MsolUser[$i] $newPassword `r"
}
}

#Retrieve the list of users from the office365 domain
function Get-Office365Users
{
$array = New-Object System.Collections.ArrayList
$Script:procInfo = Get-MsolUser | Select DisplayName, FirstName, LastName, UserPrincipalName, IsLicensed, @{ l = 'Last Password Change'; e = { $_.LastPasswordChangeTimestamp } }, LiveID, OverallProvisioningStatus, PasswordNeverExpires, UserType, ValidationStatus | sort -Property DisplayName
$array.AddRange($procInfo)
$UserList.DataSource = $array
$form1.refresh()
}

#Sample variable that provides the location of the script
[string]$ScriptDirectory = Get-ScriptDirectory

function Get-SelectedRows
{
param (
[string]$Target
)
$DataGridView = $($Target)
$count = $DataGridView.SelectedRows.Count
$array = New-Object System.Collections.ArrayList

for ($x = 0; $x -lt $DataGridView.RowCount; $x++)
{
if ($DataGridView.rows[$x].Selected)
{
$array.AddRange($DataGridView.rows[$x].Cells['DisplayName'].Value)
}
}
Write-Output $array
}
<#
.SYNOPSIS
Creates a new winform messagebox element

.DESCRIPTION
A detailed description of the New-MessageBox function.

.PARAMETER Title
A description of the Title parameter.

.PARAMETER Icon
A description of the Icon parameter.

.PARAMETER Message
A description of the Message parameter.

.PARAMETER Buttons
A description of the Buttons parameter.

.EXAMPLE
PS C:\> New-MessageBox -Title 'Value1' -Icon 'Value2'

.NOTES
Additional information about the function.
#>
function Show-MessageBox
{
[CmdletBinding()]
param
(
[string]
$Title = "MessageBox",
[string]
$Icon = '',
[string]
$Message ='',
[string]
$Buttons = 'OK'
)

#TODO: Place script here

Add-Type -AssemblyName System.Windows.Forms

if ($Icon -ne '')
{
[System.Windows.Forms.DialogResult]$dialogueResult = [System.Windows.Forms.MessageBox]::Show("$Message", "$Title",
[System.Windows.Forms.MessageBoxButtons]::$Buttons,
[System.Windows.Forms.MessageBoxIcon]::$Icon)
}
else
{
[System.Windows.Forms.DialogResult]$dialogueResult = [System.Windows.Forms.MessageBox]::Show("$Message", "$Title",
[System.Windows.Forms.MessageBoxButtons]::$Buttons)
}

Write-Output $dialogueResult
}

#This function checks a string against the StrongPasswordRequirement of Office365 and returns true if the string is a valid password
function Validate-MsolPassword
{
[CmdletBinding()]
param
(
[Parameter(Mandatory = $true,
Position = 0)]
[string]
$Password
)

#TODO: Place script here
$passedValidation = $false
if ($Password.Length -ge 8 -and $Password.Length -le 16 -and ($Password -cmatch "[A-Z]") -and ($Password -cmatch "[a-z]") -and (($Password -cmatch "[0-9]") -or ($Password -cmatch "[\W]")) -and (-not($Password -cmatch "[<>\s]")))
{
$passedValidation = $true
}
Write-Output $passedValidation
}

function Connect-Office365
{
#TODO: Place script here

try
{
$cred = Get-Credential -ErrorAction 'Stop'
Connect-MsolService -Credential $cred -ErrorAction 'Stop'
}
catch
{
# Write-Warning 'IN CATCH'
if ($cred.UserName -ne $null)
{
# Write-Warning 'RETRYING!!!!'
$cred = $null
Connect-Office365
}
else { exit } 
}

}

#endregion Source: Globals.ps1

#region Source: ResetPasswordOptions.psf
function Call-ResetPasswordOptions_psf
{
#----------------------------------------------
#region Import the Assemblies
#----------------------------------------------
[void][reflection.assembly]::Load('mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089')
[void][reflection.assembly]::Load('System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089')
[void][reflection.assembly]::Load('System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089')
[void][reflection.assembly]::Load('System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089')
[void][reflection.assembly]::Load('System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a')
[void][reflection.assembly]::Load('System.Xml, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089')
[void][reflection.assembly]::Load('System.DirectoryServices, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a')
[void][reflection.assembly]::Load('System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089')
[void][reflection.assembly]::Load('System.ServiceProcess, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a')
#endregion Import Assemblies

#----------------------------------------------
#region Generated Form Objects
#----------------------------------------------
[System.Windows.Forms.Application]::EnableVisualStyles()
$formResetPassword = New-Object 'System.Windows.Forms.Form'
$button3 = New-Object 'System.Windows.Forms.Button'
$button2 = New-Object 'System.Windows.Forms.Button'
$button1 = New-Object 'System.Windows.Forms.Button'
$buttonOK = New-Object 'System.Windows.Forms.Button'
$InitialFormWindowState = New-Object 'System.Windows.Forms.FormWindowState'
#endregion Generated Form Objects

#----------------------------------------------
# User Generated Script
#----------------------------------------------

$FormEvent_Load={
#TODO: Initialize Form Controls here

}
# --End User Generated Script--
#----------------------------------------------
#region Generated Events
#----------------------------------------------

$Form_StateCorrection_Load=
{
#Correct the initial state of the form to prevent the .Net maximized form issue
$formResetPassword.WindowState = $InitialFormWindowState
}

$Form_StoreValues_Closing=
{
#Store the control values
}


$Form_Cleanup_FormClosed=
{
#Remove all event handlers from the controls
try
{
$formResetPassword.remove_Load($FormEvent_Load)
$formResetPassword.remove_Load($Form_StateCorrection_Load)
$formResetPassword.remove_Closing($Form_StoreValues_Closing)
$formResetPassword.remove_FormClosed($Form_Cleanup_FormClosed)
}
catch [Exception]
{ }
}
#endregion Generated Events

#----------------------------------------------
#region Generated Form Code
#----------------------------------------------
$formResetPassword.SuspendLayout()
#
# formResetPassword
#
$formResetPassword.Controls.Add($button3)
$formResetPassword.Controls.Add($button2)
$formResetPassword.Controls.Add($button1)
$formResetPassword.Controls.Add($buttonOK)
$formResetPassword.AcceptButton = $buttonOK
$formResetPassword.ClientSize = '284, 262'
$formResetPassword.FormBorderStyle = 'FixedDialog'
$formResetPassword.MaximizeBox = $False
$formResetPassword.MinimizeBox = $False
$formResetPassword.Name = "formResetPassword"
$formResetPassword.StartPosition = 'CenterScreen'
$formResetPassword.Text = "Reset Password"
$formResetPassword.add_Load($FormEvent_Load)
#
# button3
#
$button3.Location = '197, 198'
$button3.Name = "button3"
$button3.Size = '75, 23'
$button3.TabIndex = 3
$button3.Text = "button3"
$button3.UseVisualStyleBackColor = $True
#
# button2
#
$button2.Location = '160, 74'
$button2.Name = "button2"
$button2.Size = '75, 23'
$button2.TabIndex = 2
$button2.Text = "button2"
$button2.UseVisualStyleBackColor = $True
#
# button1
#
$button1.Location = '160, 44'
$button1.Name = "button1"
$button1.Size = '75, 23'
$button1.TabIndex = 1
$button1.Text = "button1"
$button1.UseVisualStyleBackColor = $True
#
# buttonOK
#
$buttonOK.Anchor = 'Bottom, Right'
$buttonOK.DialogResult = 'OK'
$buttonOK.Location = '197, 227'
$buttonOK.Name = "buttonOK"
$buttonOK.Size = '75, 23'
$buttonOK.TabIndex = 0
$buttonOK.Text = "&OK"
$buttonOK.UseVisualStyleBackColor = $True
$formResetPassword.ResumeLayout()
#endregion Generated Form Code

#----------------------------------------------

#Save the initial state of the form
$InitialFormWindowState = $formResetPassword.WindowState
#Init the OnLoad event to correct the initial state of the form
$formResetPassword.add_Load($Form_StateCorrection_Load)
#Clean up the control events
$formResetPassword.add_FormClosed($Form_Cleanup_FormClosed)
#Store the control values when form is closing
$formResetPassword.add_Closing($Form_StoreValues_Closing)
#Show the Form
return $formResetPassword.ShowDialog()

}
#endregion Source: ResetPasswordOptions.psf

#region Source: BulkPasswordChange.psf
function Call-BulkPasswordChange_psf
{
#----------------------------------------------
#region Import the Assemblies
#----------------------------------------------
[void][reflection.assembly]::Load('mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089')
[void][reflection.assembly]::Load('System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089')
[void][reflection.assembly]::Load('System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089')
[void][reflection.assembly]::Load('System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089')
[void][reflection.assembly]::Load('System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a')
[void][reflection.assembly]::Load('System.Xml, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089')
[void][reflection.assembly]::Load('System.DirectoryServices, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a')
[void][reflection.assembly]::Load('System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089')
[void][reflection.assembly]::Load('System.ServiceProcess, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a')
#endregion Import Assemblies

#----------------------------------------------
#region Generated Form Objects
#----------------------------------------------
[System.Windows.Forms.Application]::EnableVisualStyles()
$formBulkChangePassword = New-Object 'System.Windows.Forms.Form'
$UserGrid = New-Object 'System.Windows.Forms.DataGridView'
$buttonCancel = New-Object 'System.Windows.Forms.Button'
$buttonSetPasswords = New-Object 'System.Windows.Forms.Button'
$DisplayName = New-Object 'System.Windows.Forms.DataGridViewTextBoxColumn'
$UserPrincipalName = New-Object 'System.Windows.Forms.DataGridViewTextBoxColumn'
$NewPassword = New-Object 'System.Windows.Forms.DataGridViewTextBoxColumn'
$InitialFormWindowState = New-Object 'System.Windows.Forms.FormWindowState'
#endregion Generated Form Objects

#----------------------------------------------
# User Generated Script
#----------------------------------------------

Import-Module MSOnline

#region Control Helper Functions
function Load-DataGridView
{
<#
.SYNOPSIS
This functions helps you load items into a DataGridView.

.DESCRIPTION
Use this function to dynamically load items into the DataGridView control.

.PARAMETER DataGridView
The ComboBox control you want to add items to.

.PARAMETER Item
The object or objects you wish to load into the ComboBox's items collection.

.PARAMETER DataMember
Sets the name of the list or table in the data source for which the DataGridView is displaying data.

#>
Param (
[ValidateNotNull()]
[Parameter(Mandatory = $true)]
[System.Windows.Forms.DataGridView]$DataGridView,
[ValidateNotNull()]
[Parameter(Mandatory = $true)]
$Item,
[Parameter(Mandatory = $false)]
[string]$DataMember
)
$DataGridView.SuspendLayout()
$DataGridView.DataMember = $DataMember

if ($Item -is [System.ComponentModel.IListSource]`
-or $Item -is [System.ComponentModel.IBindingList] -or $Item -is [System.ComponentModel.IBindingListView])
{
$DataGridView.DataSource = $Item
}
else
{
$array = New-Object System.Collections.ArrayList

if ($Item -is [System.Collections.IList])
{
$array.AddRange($Item)
}
else
{
$array.Add($Item)
}
$DataGridView.DataSource = $array
}

$DataGridView.ResumeLayout()
}

function ConvertTo-DataTable
{
<#
.SYNOPSIS
Converts objects into a DataTable.

.DESCRIPTION
Converts objects into a DataTable, which are used for DataBinding.

.PARAMETER InputObject
The input to convert into a DataTable.

.PARAMETER Table
The DataTable you wish to load the input into.

.PARAMETER RetainColumns
This switch tells the function to keep the DataTable's existing columns.

.PARAMETER FilterWMIProperties
This switch removes WMI properties that start with an underline.

.EXAMPLE
$DataTable = ConvertTo-DataTable -InputObject (Get-Process)
#>
[OutputType([System.Data.DataTable])]
param (
[ValidateNotNull()]
$InputObject,
[ValidateNotNull()]
[System.Data.DataTable]$Table,
[switch]$RetainColumns,
[switch]$FilterWMIProperties)

if ($Table -eq $null)
{
$Table = New-Object System.Data.DataTable
}

if ($InputObject -is [System.Data.DataTable])
{
$Table = $InputObject
}
else
{
if (-not $RetainColumns -or $Table.Columns.Count -eq 0)
{
#Clear out the Table Contents
$Table.Clear()

if ($InputObject -eq $null) { return } #Empty Data

$object = $null
#find the first non null value
foreach ($item in $InputObject)
{
if ($item -ne $null)
{
$object = $item
break
}
}

if ($object -eq $null) { return } #All null then empty

#Get all the properties in order to create the columns
foreach ($prop in $object.PSObject.Get_Properties())
{
if (-not $FilterWMIProperties -or -not $prop.Name.StartsWith('__'))#filter out WMI properties
{
#Get the type from the Definition string
$type = $null

if ($prop.Value -ne $null)
{
try { $type = $prop.Value.GetType() }
catch { }
}

if ($type -ne $null) # -and [System.Type]::GetTypeCode($type) -ne 'Object')
{
[void]$table.Columns.Add($prop.Name, $type)
}
else #Type info not found
{
[void]$table.Columns.Add($prop.Name)
}
}
}

if ($object -is [System.Data.DataRow])
{
foreach ($item in $InputObject)
{
$Table.Rows.Add($item)
}
return @(, $Table)
}
}
else
{
$Table.Rows.Clear()
}

foreach ($item in $InputObject)
{
$row = $table.NewRow()

if ($item)
{
foreach ($prop in $item.PSObject.Get_Properties())
{
if ($table.Columns.Contains($prop.Name))
{
$row.Item($prop.Name) = $prop.Value
}
}
}
[void]$table.Rows.Add($row)
}
}

return @(, $Table)
}
#endregion

$FormEvent_Load = {
#TODO: Initialize Form Controls here
foreach ($row in $ResetList.Rows)
{
$UserGrid.Rows.Add($row.Cells['rDisplayName'].Value, $row.Cells['rUPN'].Value)
}
}

$buttonCancel_Click = {
#TODO: Place custom script here
$formBulkChangePassword.Close()
}

$buttonSetPasswords_Click = {
$blankPassword = $false
foreach ($row in $UserGrid.Rows)
{
if ($row.Cells['NewPassword'].Value -like '')
{
$blankPassword = $true
}
}
if ($blankPassword -eq $true)
{
Show-MessageBox -Icon warning -Title Warning -Message 'At least one of the passwords you are attempting to reset is blank.'
}

ElseIf ($Global:meetsCXR -ne $true)
{

Show-MessageBox -Icon Error -Title Error -Buttons OK -Message ('At least one of the passwords you have entered does not meet the password complexity requirements. ' +
'Passwords Must contain at least 8 characters, including one capital letter and one number. Spaces, <, and > are not allowed.')
}
else
{
foreach ($row in $UserGrid.Rows)
{
TRY
{
Set-MsolUser -UserPrincipalName $row.Cells['UserPrincipalName'].Value -PasswordNeverExpires $checkboxNeverExpires.Checked -ErrorAction "Stop"
Set-MsolUserPassword -UserPrincipalName $row.Cells['UserPrincipalName'].Value -NewPassword $row.Cells['NewPassword'].Value -ForceChangePassword $checkboxTemporary.checked -ErrorAction "Stop"
$textOutput.SelectionColor = 'Green'
$textOutput.AppendText(($row.Cells['DisplayName'].Value + "," + $row.Cells['NewPassword'].Value + "`r"))
}
CATCH
{
$textOutput.SelectionColor = 'Red'
$textOutput.AppendText(("Password change for " + $row.Cells['DisplayName'].Value + " failed!`r"))

}
}
$formBulkChangePassword.Dispose()
}
}

$UserGrid_ColumnHeaderMouseClick = [System.Windows.Forms.DataGridViewCellMouseEventHandler]{
#Event Argument: $_ = [System.Windows.Forms.DataGridViewCellMouseEventArgs]
if ($UserGrid.DataSource -is [System.Data.DataTable])
{
$column = $UserGrid.Columns[$_.ColumnIndex]
$direction = [System.ComponentModel.ListSortDirection]::Ascending

if ($column.HeaderCell.SortGlyphDirection -eq 'Descending')
{
$direction = [System.ComponentModel.ListSortDirection]::Descending
}

$UserGrid.Sort($UserGrid.Columns[$_.ColumnIndex], $direction)
}
}

$UserGrid_CellValidated = [System.Windows.Forms.DataGridViewCellEventHandler]{
#Event Argument: $_ = [System.Windows.Forms.DataGridViewCellEventArgs]
#TODO: Place custom script here
if ($UserGrid.CurrentCell.OwningColumn.Name -eq 'NewPassword' -and ($UserGrid.CurrentCell.Value -ne $null))
{
if (-not (Validate-MsolPassword $UserGrid.CurrentCell.Value.ToString()))
{
$UserGrid.CurrentCell.ErrorText = 'Passwords must be at least 8 characters long, including a mixture of numbers, capital and lower case letters. Spaces, <, and > are not allowed.'
$global:meetsCXR = $false
}
else
{
$UserGrid.CurrentCell.ErrorText = $null
$Global:meetsCXR = $true
}
}
}


# --End User Generated Script--
#----------------------------------------------
#region Generated Events
#----------------------------------------------

$Form_StateCorrection_Load=
{
#Correct the initial state of the form to prevent the .Net maximized form issue
$formBulkChangePassword.WindowState = $InitialFormWindowState
}

$Form_StoreValues_Closing=
{
#Store the control values
}


$Form_Cleanup_FormClosed=
{
#Remove all event handlers from the controls
try
{
$UserGrid.remove_CellValidated($UserGrid_CellValidated)
$buttonCancel.remove_Click($buttonCancel_Click)
$buttonSetPasswords.remove_Click($buttonSetPasswords_Click)
$formBulkChangePassword.remove_Load($FormEvent_Load)
$formBulkChangePassword.remove_Load($Form_StateCorrection_Load)
$formBulkChangePassword.remove_Closing($Form_StoreValues_Closing)
$formBulkChangePassword.remove_FormClosed($Form_Cleanup_FormClosed)
}
catch [Exception]
{ }
}
#endregion Generated Events

#----------------------------------------------
#region Generated Form Code
#----------------------------------------------
$formBulkChangePassword.SuspendLayout()
#
# formBulkChangePassword
#
$formBulkChangePassword.Controls.Add($UserGrid)
$formBulkChangePassword.Controls.Add($buttonCancel)
$formBulkChangePassword.Controls.Add($buttonSetPasswords)
$formBulkChangePassword.AutoSize = $True
$formBulkChangePassword.ClientSize = '557, 593'
$formBulkChangePassword.FormBorderStyle = 'FixedToolWindow'
$formBulkChangePassword.Name = "formBulkChangePassword"
$formBulkChangePassword.StartPosition = 'CenterScreen'
$formBulkChangePassword.Text = "Bulk Change Passwords"
$formBulkChangePassword.add_Load($FormEvent_Load)
#
# UserGrid
#
$UserGrid.AllowUserToAddRows = $False
$UserGrid.AllowUserToDeleteRows = $False
$UserGrid.AllowUserToResizeColumns = $False
$UserGrid.AllowUserToResizeRows = $False
$UserGrid.ColumnHeadersHeightSizeMode = 'DisableResizing'
[void]$UserGrid.Columns.Add($DisplayName)
[void]$UserGrid.Columns.Add($UserPrincipalName)
[void]$UserGrid.Columns.Add($NewPassword)
$UserGrid.Location = '0, 0'
$UserGrid.Name = "UserGrid"
$UserGrid.RowHeadersWidthSizeMode = 'DisableResizing'
$UserGrid.SelectionMode = 'CellSelect'
$UserGrid.Size = '557, 561'
$UserGrid.TabIndex = 2
$UserGrid.add_CellValidated($UserGrid_CellValidated)
#
# buttonCancel
#
$buttonCancel.Anchor = 'Bottom, Left'
$buttonCancel.Location = '0, 567'
$buttonCancel.Name = "buttonCancel"
$buttonCancel.Size = '75, 23'
$buttonCancel.TabIndex = 1
$buttonCancel.Text = "Cancel"
$buttonCancel.UseVisualStyleBackColor = $True
$buttonCancel.add_Click($buttonCancel_Click)
#
# buttonSetPasswords
#
$buttonSetPasswords.Anchor = 'Bottom, Right'
$buttonSetPasswords.Location = '447, 567'
$buttonSetPasswords.Name = "buttonSetPasswords"
$buttonSetPasswords.Size = '110, 23'
$buttonSetPasswords.TabIndex = 0
$buttonSetPasswords.Text = "Set Passwords"
$buttonSetPasswords.UseVisualStyleBackColor = $True
$buttonSetPasswords.add_Click($buttonSetPasswords_Click)
#
# DisplayName
#
$DisplayName.AutoSizeMode = 'AllCells'
$DisplayName.FillWeight = 149.855988
$DisplayName.HeaderText = "Display Name"
$DisplayName.Name = "DisplayName"
$DisplayName.ReadOnly = $True
$DisplayName.Resizable = 'False'
$DisplayName.Width = 97
#
# UserPrincipalName
#
$UserPrincipalName.AutoSizeMode = 'Fill'
$UserPrincipalName.FillWeight = 112.072906
$UserPrincipalName.HeaderText = "User Principal Name"
$UserPrincipalName.Name = "UserPrincipalName"
$UserPrincipalName.ReadOnly = $True
$UserPrincipalName.Resizable = 'False'
#
# NewPassword
#
$NewPassword.AutoSizeMode = 'AllCells'
$NewPassword.FillWeight = 38.07106
$NewPassword.HeaderText = "New Password"
$NewPassword.Name = "NewPassword"
$NewPassword.Resizable = 'False'
$NewPassword.Width = 103
$formBulkChangePassword.ResumeLayout()
#endregion Generated Form Code

#----------------------------------------------

#Save the initial state of the form
$InitialFormWindowState = $formBulkChangePassword.WindowState
#Init the OnLoad event to correct the initial state of the form
$formBulkChangePassword.add_Load($Form_StateCorrection_Load)
#Clean up the control events
$formBulkChangePassword.add_FormClosed($Form_Cleanup_FormClosed)
#Store the control values when form is closing
$formBulkChangePassword.add_Closing($Form_StoreValues_Closing)
#Show the Form
return $formBulkChangePassword.ShowDialog()

}
#endregion Source: BulkPasswordChange.psf

#region Source: ResetPWFromCSV.psf
function Call-ResetPWFromCSV_psf
{
#----------------------------------------------
#region Import the Assemblies
#----------------------------------------------
[void][reflection.assembly]::Load('mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089')
[void][reflection.assembly]::Load('System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089')
[void][reflection.assembly]::Load('System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089')
[void][reflection.assembly]::Load('System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089')
[void][reflection.assembly]::Load('System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a')
[void][reflection.assembly]::Load('System.Xml, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089')
[void][reflection.assembly]::Load('System.DirectoryServices, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a')
[void][reflection.assembly]::Load('System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089')
[void][reflection.assembly]::Load('System.ServiceProcess, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a')
#endregion Import Assemblies

#----------------------------------------------
#region Generated Form Objects
#----------------------------------------------
[System.Windows.Forms.Application]::EnableVisualStyles()
$formResetPWFromCSV = New-Object 'System.Windows.Forms.Form'
$groupbox1 = New-Object 'System.Windows.Forms.GroupBox'
$textboxFile = New-Object 'System.Windows.Forms.TextBox'
$buttonBrowse = New-Object 'System.Windows.Forms.Button'
$buttonCancel = New-Object 'System.Windows.Forms.Button'
$buttonImportPasswords = New-Object 'System.Windows.Forms.Button'
$groupbox2 = New-Object 'System.Windows.Forms.GroupBox'
$labelIfNecessaryChangeThe = New-Object 'System.Windows.Forms.Label'
$labelPassword = New-Object 'System.Windows.Forms.Label'
$labelUserPrincipalName = New-Object 'System.Windows.Forms.Label'
$textUPNHeader = New-Object 'System.Windows.Forms.TextBox'
$textPasswordHeader = New-Object 'System.Windows.Forms.TextBox'
$openfiledialog1 = New-Object 'System.Windows.Forms.OpenFileDialog'
$tooltipUPN = New-Object 'System.Windows.Forms.ToolTip'
$tooltipPassword = New-Object 'System.Windows.Forms.ToolTip'
$InitialFormWindowState = New-Object 'System.Windows.Forms.FormWindowState'
#endregion Generated Form Objects

#----------------------------------------------
# User Generated Script
#----------------------------------------------

#region Control Helper Functions
function Replace-PlaceHolder 
{
<#
.SYNOPSIS
Replaces the place holder control with another.

.DESCRIPTION
Replaces the place holder control with another.

.PARAMETER PlaceHolderControl
The control you wish to replace.

.PARAMETER ReplaceControl
The control that replaces the place holder.

.EXAMPLE
Replace-PlaceHolder -PlaceHolderControl $elementHostPlaceholder -ReplaceControl $elementhost
#>
Param([System.Windows.Forms.Control]$PlaceHolderControl,
[System.Windows.Forms.Control]$ReplaceControl)

$ReplaceControl.Location = $PlaceHolderControl.Location;
$ReplaceControl.Size = $PlaceHolderControl.Size;
$ReplaceControl.TabIndex = $PlaceHolderControl.TabIndex;
$ReplaceControl.Dock = $PlaceHolderControl.Dock 
$ReplaceControl.Anchor = $PlaceHolderControl.Anchor
$PlaceHolderControl.Parent.Controls.Add($ReplaceControl)
$PlaceHolderControl.Parent.Controls.Remove($PlaceHolderControl)
$PlaceHolderControl.Visible = $false
}

function Load-ElementHost
{
<#
.SYNOPSIS
Loads XAML into a ElementHost

.DESCRIPTION
Loads XAML into a ElementHost, which then displays the WPF control.

.RETURNS
Returns the WPF control

.PARAMETER ElementHost
The ElementHost control to load the XAML.

.PARAMETER XAML
The XAML to create the WPF Control

.EXAMPLE
Load-ElementHost -Elementhost $elementhost1 -XAML $xaml | Out-Null
#>
Param(
[ValidateNotNull()]
[Parameter(Mandatory=$true)]
[System.Windows.Forms.Integration.ElementHost]$Elementhost,
[ValidateNotNull()]
[Parameter(Mandatory=$true)]
[Xml]$XAML)

$reader = New-Object System.Xml.XmlNodeReader $XAML

if(-not $reader)
{
return
}

$WPFControl = [Windows.Markup.XamlReader]::Load( $reader )
$Elementhost.Child = $WPFControl

return $WPFControl
}

function Load-DataGridView
{
<#
.SYNOPSIS
This functions helps you load items into a DataGridView.

.DESCRIPTION
Use this function to dynamically load items into the DataGridView control.

.PARAMETER DataGridView
The ComboBox control you want to add items to.

.PARAMETER Item
The object or objects you wish to load into the ComboBox's items collection.

.PARAMETER DataMember
Sets the name of the list or table in the data source for which the DataGridView is displaying data.

#>
Param (
[ValidateNotNull()]
[Parameter(Mandatory=$true)]
[System.Windows.Forms.DataGridView]$DataGridView,
[ValidateNotNull()]
[Parameter(Mandatory=$true)]
$Item,
[Parameter(Mandatory=$false)]
[string]$DataMember
)
$DataGridView.SuspendLayout()
$DataGridView.DataMember = $DataMember

if ($Item -is [System.ComponentModel.IListSource]`
-or $Item -is [System.ComponentModel.IBindingList] -or $Item -is [System.ComponentModel.IBindingListView] )
{
$DataGridView.DataSource = $Item
}
else
{
$array = New-Object System.Collections.ArrayList

if ($Item -is [System.Collections.IList])
{
$array.AddRange($Item)
}
else
{ 
$array.Add($Item) 
}
$DataGridView.DataSource = $array
}

$DataGridView.ResumeLayout()
}

function ConvertTo-DataTable
{
<#
.SYNOPSIS
Converts objects into a DataTable.

.DESCRIPTION
Converts objects into a DataTable, which are used for DataBinding.

.PARAMETER InputObject
The input to convert into a DataTable.

.PARAMETER Table
The DataTable you wish to load the input into.

.PARAMETER RetainColumns
This switch tells the function to keep the DataTable's existing columns.

.PARAMETER FilterWMIProperties
This switch removes WMI properties that start with an underline.

.EXAMPLE
$DataTable = ConvertTo-DataTable -InputObject (Get-Process)
#>
[OutputType([System.Data.DataTable])]
param(
[ValidateNotNull()]
$InputObject, 
[ValidateNotNull()]
[System.Data.DataTable]$Table,
[switch]$RetainColumns,
[switch]$FilterWMIProperties)

if($Table -eq $null)
{
$Table = New-Object System.Data.DataTable
}

if($InputObject-is [System.Data.DataTable])
{
$Table = $InputObject
}
else
{
if(-not $RetainColumns -or $Table.Columns.Count -eq 0)
{
#Clear out the Table Contents
$Table.Clear()

if($InputObject -eq $null){ return } #Empty Data

$object = $null
#find the first non null value
foreach($item in $InputObject)
{
if($item -ne $null)
{
$object = $item
break 
}
}

if($object -eq $null) { return } #All null then empty

#Get all the properties in order to create the columns
foreach ($prop in $object.PSObject.Get_Properties())
{
if(-not $FilterWMIProperties -or -not $prop.Name.StartsWith('__'))#filter out WMI properties
{
#Get the type from the Definition string
$type = $null

if($prop.Value -ne $null)
{
try{ $type = $prop.Value.GetType() } catch {}
}

if($type -ne $null) # -and [System.Type]::GetTypeCode($type) -ne 'Object')
{
[void]$table.Columns.Add($prop.Name, $type) 
}
else #Type info not found
{ 
[void]$table.Columns.Add($prop.Name) 
}
}
}

if($object -is [System.Data.DataRow])
{
foreach($item in $InputObject)
{ 
$Table.Rows.Add($item)
}
return @(,$Table)
}
}
else
{
$Table.Rows.Clear() 
}

foreach($item in $InputObject)
{ 
$row = $table.NewRow()

if($item)
{
foreach ($prop in $item.PSObject.Get_Properties())
{
if($table.Columns.Contains($prop.Name))
{
$row.Item($prop.Name) = $prop.Value
}
}
}
[void]$table.Rows.Add($row)
}
}

return @(,$Table) 
}
#endregion

$FormEvent_Load= {
#TODO: Initialize Form Controls here
Import-Module MSOnlineExtended
}

$buttonCancel_Click={
#TODO: Place custom script here
$formResetPWFromCSV.Close()
}

$buttonImportPasswords_Click={
if ($textboxFile.Text.Length -gt 1)
{
try
{
$CSV = Import-Csv -Path $textboxFile.Text
$importSuccessful = $true
$textOutput.SelectionColor = 'Black'
$textOutput.AppendText("Import from CSV complete...`r")
}
catch
{
$textOutput.SelectionColor = 'Red'
$textOutput.AppendText("ERROR: CSV file does not exist!`r")
}
if ($importSuccessful)
{
foreach ($row in $ResetList.Rows)
{
try
{
$UPNHeader = $textUPNHeader.Text
$PasswordHeader = $textPasswordHeader.Text
$UserPrincipalName = $row.Cells['rUPN'].Value
$Password = ($CSV | Where-Object -FilterScript { $_."$UPNHeader" -eq $UserPrincipalName })."$PasswordHeader"
if ($Password.length -lt 8 )
{
$textOutput.SelectionColor = 'Red'
$textOutput.AppendText("Password change for " + $UserPrincipalName + " failed!`r")
}
else
{
Set-MsolUser -UserPrincipalName $UserPrincipalName -PasswordNeverExpires $checkboxNeverExpires.Checked -ErrorAction "Stop"
Set-MsolUserPassword -UserPrincipalName $UserPrincipalName -NewPassword $Password -ForceChangePassword $checkboxTemporary.checked
$textOutput.SelectionColor = 'Green'
$textOutput.AppendText($UserPrincipalName + "," + $Password + "`r") 
}
}
catch
{
$textOutput.SelectionColor = 'Red'
$textOutput.AppendText("Password change for " + $UserPrincipalName + " failed!`r")

}
}
$formResetPWFromCSV.Dispose()
}
}
}

$datagridviewResults_ColumnHeaderMouseClick=[System.Windows.Forms.DataGridViewCellMouseEventHandler]{
#Event Argument: $_ = [System.Windows.Forms.DataGridViewCellMouseEventArgs]
if($datagridviewResults.DataSource -is [System.Data.DataTable])
{
$column = $datagridviewResults.Columns[$_.ColumnIndex]
$direction = [System.ComponentModel.ListSortDirection]::Ascending

if($column.HeaderCell.SortGlyphDirection -eq 'Descending')
{
$direction = [System.ComponentModel.ListSortDirection]::Descending
}

$datagridviewResults.Sort($datagridviewResults.Columns[$_.ColumnIndex], $direction)
}
}

$buttonBrowse_Click={

if($openfiledialog1.ShowDialog() -eq 'OK')
{
$textboxFile.Text = $openfiledialog1.FileName
}
} # --End User Generated Script--
#----------------------------------------------
#region Generated Events
#----------------------------------------------

$Form_StateCorrection_Load=
{
#Correct the initial state of the form to prevent the .Net maximized form issue
$formResetPWFromCSV.WindowState = $InitialFormWindowState
}

$Form_StoreValues_Closing=
{
#Store the control values
$script:ResetPWFromCSV_textboxFile = $textboxFile.Text
$script:ResetPWFromCSV_textUPNHeader = $textUPNHeader.Text
$script:ResetPWFromCSV_textPasswordHeader = $textPasswordHeader.Text
}


$Form_Cleanup_FormClosed=
{
#Remove all event handlers from the controls
try
{
$buttonBrowse.remove_Click($buttonBrowse_Click)
$buttonCancel.remove_Click($buttonCancel_Click)
$buttonImportPasswords.remove_Click($buttonImportPasswords_Click)
$formResetPWFromCSV.remove_Load($FormEvent_Load)
$formResetPWFromCSV.remove_Load($Form_StateCorrection_Load)
$formResetPWFromCSV.remove_Closing($Form_StoreValues_Closing)
$formResetPWFromCSV.remove_FormClosed($Form_Cleanup_FormClosed)
}
catch [Exception]
{ }
}
#endregion Generated Events

#----------------------------------------------
#region Generated Form Code
#----------------------------------------------
$formResetPWFromCSV.SuspendLayout()
$groupbox1.SuspendLayout()
$groupbox2.SuspendLayout()
#
# formResetPWFromCSV
#
$formResetPWFromCSV.Controls.Add($groupbox1)
$formResetPWFromCSV.Controls.Add($buttonCancel)
$formResetPWFromCSV.Controls.Add($buttonImportPasswords)
$formResetPWFromCSV.Controls.Add($groupbox2)
$formResetPWFromCSV.CancelButton = $buttonCancel
$formResetPWFromCSV.ClientSize = '299, 208'
$formResetPWFromCSV.FormBorderStyle = 'FixedToolWindow'
#region Binary Data
$formResetPWFromCSV.Icon = [System.Convert]::FromBase64String('
AAABAAoAMDAQAAEABABoBgAApgAAACAgEAABAAQA6AIAAA4HAAAQEBAAAQAEACgBAAD2CQAAMDAA
AAEACACoDgAAHgsAACAgAAABAAgAqAgAAMYZAAAQEAAAAQAIAGgFAABuIgAAAAAAAAEAIADVRAAA
1icAADAwAAABACAAqCUAAKtsAAAgIAAAAQAgAKgQAABTkgAAEBAAAAEAIABoBAAA+6IAACgAAAAw
AAAAYAAAAAEABAAAAAAAgAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAACAAAAAgIAAgAAAAIAA
gACAgAAAgICAAMDAwAAAAP8AAP8AAAD//wD/AAAA/wD/AP//AAD///8AAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAB3d3d3d3d3d3d3dwAAAAAAAAAAAAAAAAB/////////////9wAAAAAAAAAAAAAAAA
B/////////////9wAAAAAAAAAAAAAAAAB//4iHdmKP////9wAAAAAAAAAAAAAAAAB/+GaOiHZ3Z2
ZI9wAAAAAAAAAAAAAAAAB/joeIeIZo6Odn9wAAAAAAAAAAAAAAAAB/94eI6Id4547I9wAAAAAAAA
AAAAAAAAB/+Ohzh+fvjodo9wAAAAAAAAAAAAAAAAB//4g3N3h3d+eP9wAAAAAAAAAAAAAAAAB///
gzeI6DNWj/9wAAAAAAAAAAAAAAAAB///dzeP9zF///9wAAAAAAAAAAAAAAAAB//4h3NP93N///9w
AAAAAAAAAAAAAAAAB//4iLcYi4c0//9wAAAAAAAAAAAAAAAAB//4+IMXiIcSj/9wAAAAAAAAAAAA
AAAAB//4i3cH+Ihxj/9wAAAAAAAAAAAAAAAAB//2FTVo+Lcwf/9wAAAAAAAAAAAAAAAAB//4d3eP
NQdW//9wAAAAAAAAAAAAAAAAB///////h3d///9wAAAAAAAAAAAAAAAAB/////////////9wAAAA
AAAAAAAAAAAAB/////////////9wAAAAAAAAAAAAAAAAB/////////////9wAAAAAAAAAAAAAAAA
B3d3d3d3d3d3d3dwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////
////AACAAAH///8AAIAAAf///wAAgAAB////AACAAAH///8AAIAAAf///wAAgAAB////AACAAAH/
//8AAIAAAf///wAAgAAB////AACAAAH///8AAIAAAf///wAAgAAB////AACAAAH///8AAIAAAf//
/wAAgAAB////AACAAAH///8AAIAAAf///wAAgAAB////AACAAAH///8AAIAAAf///wAAgAAB////
AACAAAH///8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8A
AP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA
////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD/
//////8AAP///////wAA////////AAD///////8AAP///////wAAKAAAACAAAABAAAAAAQAEAAAA
AAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAIAAAACAgACAAAAAgACAAICAAACAgIAAwMDA
AAAA/wAA/wAAAP//AP8AAAD/AP8A//8AAP///wB3d3d3d3d3dwAAAAAAAAAAf/////////cAAAAA
AAAAAH/4iHdv///3AAAAAAAAAAB/ho6HZ3Zn9wAAAAAAAAAAf4eIiKjo5vcAAAAAAAAAAH+Og+h4
iHf3AAAAAAAAAAB/+HN46D6O9wAAAAAAAAAAf/gzf/c3//cAAAAAAAAAAH/4hziDN//3AAAAAAAA
AAB/+Ig3iHOP9wAAAAAAAAAAf/iDV4iDf/cAAAAAAAAAAH/3ND+HNX/3AAAAAAAAAAB//4j/c0P/
9wAAAAAAAAAAf/////iP//cAAAAAAAAAAH/////////3AAAAAAAAAAB3d3d3d3d3dwAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8A
AP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA////////////////////////////////
////////////////////////////////////////////////////////KAAAABAAAAAgAAAAAQAE
AAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAIAAAACAgACAAAAAgACAAICAAACAgIAA
wMDAAAAA/wAA/wAAAP//AP8AAAD/AP8A//8AAP///wB3d3d3dwAAAHiI5453AAAAeOeGjmcAAAB/
h6iIhwAAAH/ziHj3AAAAf4d4N/cAAAB/g3iB9wAAAH93hzf3AAAAf/////cAAAB3d3d3dwAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/AAAAPwAAAD8A
AAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAD//wAA//8AAP//AAD//wAA//8AAP//AAAoAAAA
MAAAAGAAAAABAAgAAAAAAAAJAAAAAAAAAAAAAAABAAAAAQAAAAAAABcRDwAfGRgAER4sABkpNgAR
JzwAdi0AAEI9NgBDaSEATWsxAGd1NwAhN0wAMThCADU8RgAcSXYAL09rADlSagAjTnoAOltzADRa
fABGQ0IARENEAElFRQBNSEcASUdKAEhISABUTUUATU1QAFtWUgBgYF0AQFJjAEFZbgBTcW4ATmV7
AFRpdgBgbGIAfnZqAHt3bgBwb3AAc3JyAHV0cgCMTQAAlU8AAKZ6CQClexQAkWhIAIB+fgBZhSgA
apk3AGyRPAB5okYAqpAjALSVMQC2kzUAs5g0AI6SXgCBrU0Ai7dZALynQgC4plcAvapQALypXQCE
g3wAo5Z5AJeyYgCQtWIAmbdhAJG9YACTtG4AnbZsAJm7aQCYp3UAm7t8ALGibgC5rW8AuaNxALuu
fwDGsk0AxbFSAMaxWgDFslwAx7VcAMy2XQDIuWEAz7tiAMq5awDEtnoAlsNoAKHNcgCkxnsAp898
AKTReADVwXAAKk6AACRQhQAlWIYAKVuKAD9kkAA3a5sAPnOhAExskwBadpAAW3iSAGR8iwBOfqkA
SXyuAFB/qQBjhJ4AS4CvAE+BrQBVibYAVYy6AGqHqAB1hqEAYpS7AGaWvQB3ocMAfaXHAHeiygB6
pMoAk5CKAJaTjQCenJUAo5+WAL+qhwCgvYAAoaGZAKCgngC3q5kAp7OfAJGlqgCjubgAybyAAMO/
tADOvbgAqs2CAKrJhgCsyoYArc+JAK7IjwCwz4gArdGAAKvQhACo1IcAstSGALTXiACz1I4AssCb
ALjImQC+0poAvdqfALzFpwC+2qEA08aDANXHhwDH3J0A59OQANjRvgDb3b0A0OSsAIemwQCJqMQA
gKfIAIez2QCOt9sAnbvXAJq93wCgvdgAqMPfAJ7A4ACtx+AAtc/nALjR6QDO1MQAzNTNANjTwADY
3MoAx9XWANHd2wDq3sIA4dXPAOXd0ADv4MAA5uLQAOrj0QDo5dIA7OnQAOPi2ADq69kA6OrdAO7t
3gD69tcA+/jXAP/81wD28NsA8vPcAPr22AD5990A+/jbAP/+2QD7+NwA/PndAP/+3QDD2O0Ax9rs
AMje6ADT3+AAzuHtAN/n5gDn5+QA4enkAO7r5ADt7eUA8/DjAPny4QD59uIA+/nhAPz54QD//uEA
/vnlAP/+5AD9+ukA//7pAP367AD+/e4A7+7yAOPy9wD49/MA/v7xAP/+9QD5+vkA//v5AP/++QD+
//4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB/Li4uLi4uLi4uLi4uLi4uLi4uLi5/AAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAu//////////////////////////8uAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAu5eDg/////9OwrdH///////////8uAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAu
5eDlvJeTiEEyLwiB///TtbTh//8uAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAu4OCUODFHW4iN
RjAJPzw0LCkGhv8uAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAu5cNDWESdkI6WjDkKS01RUTQq
Lf8uAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAu4NtZWn21m46Wklc3tk5VmVErfP8uAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAu4OWVjotxZUiSjkFJ1VxSmVMzuP8uAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAu29vbn4hkXSBCRj1McGc7VDpW//8uAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAu29vb5YNgERKewpxKYV4jNITj//8uAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAu29vbvW1o
YxDW//+CXw4is/////8uAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAu28rbsXaicxMH4NBoaGIh
///l5f8uAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAu28rKsqindW4FgM12dnMPGuX/5f8uAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuysrK0cuspG8LJM+qpXVoA4X/5f8uAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAuysXKrqahax8CJOLLq6NtBHv/5f8uAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAuysrFHQwYFxYVr86poGUeAX//5f8uAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuysXK
uHguKC644BsNFRwVF7vl5f8uAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuyr+/ytvKxeDb4Ld4
KCZ6vuXg4P8uAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuyr+/xcrFysrFyuDg1uDl4ODg4P8u
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuysC/v7/FxcXFytbb29vg2+Dg4P8uAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAuwMDAwMrAysrK29vb2+Db4ODg4P8uAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAB/Li4uLi4uLi4uLi4uLi4uLi4uLi5/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AP///////wAAgAAB////AACAAAH///8AAIAAAf///wAAgAAB////AACAAAH///8AAIAAAf///wAA
gAAB////AACAAAH///8AAIAAAf///wAAgAAB////AACAAAH///8AAIAAAf///wAAgAAB////AACA
AAH///8AAIAAAf///wAAgAAB////AACAAAH///8AAIAAAf///wAAgAAB////AACAAAH///8AAIAA
Af///wAAgAAB////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////
////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD/////
//8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP//////
/wAA////////AAD///////8AAP///////wAA////////AAD///////8AACgAAAAgAAAAQAAAAAEA
CAAAAAAAAAQAAAAAAAAAAAAAAAEAAAABAAAAAAAAICMpACYyPwAcPFsAPT1CAA0/dgAVPXYAKUBU
AChSdwBLR0gAWldVAGFfWwB5eEoAY2BeAGhjXwBQZHUAdG5jAHBvawB3c2wAenVrAIRABQCZZAEA
gH9/AF2MLgB2mE0AdpBcAHupRgBzjnUAtJo2AK2YRwCGrlYAnKxcALigSACRkH4An656AJ6+dgCq
oHYAwKhHAMWxWgDKumQA1r5iANW7ZwDPv3AAncFvAJrFbwCixX4Aq899AKnRfgDTwG4AK1mCACda
iwAzZpQAP3SlAERmiQBJb4wAU3qMAGJ+lgBJf68AfYSLAH2LjgBthpQAaoSdAGeXwABwn8YAf6jO
AI6MhQCOlpwAjp6dAKOflgCloZcAmKatAIWivwCpuL8Ax76rAKrPggCuzoUAt9iSALnblwC90ZoA
vNSeANPEhADJ0ZcAxs6xANTPvQDR37IA1dK6ANTSvwDb0LwA0eSkAIKx2gCWudkAjLrhAKnC0gCo
x+UAuNPuANvZxADZ0csAy9baAOHWzQDm4ccA4OTNAOnywgDt6NsA+vbYAPny3gD49N0A/PbdAP75
2wD++twA///dAMDY5wDF2eUAw9zsAMve6gDq4+IA5ejoAPLx5AD//uIA+/nmAP775gD//+UA//7p
AP7+7QD08fQA///xAP/+9AD///kA/v7+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAD///8AFhYWFhYWFhYWFhYWFhYWFgAAAAAAAAAAAAAAAAAAAAAW
//////////////////8WAAAAAAAAAAAAAAAAAAAAABb/fGRSTyMYGXP/ZmJ7/xYAAAAAAAAAAAAA
AAAAAAAAFv9PGiIvSisXDCYcFRRyFgAAAAAAAAAAAAAAAAAAAAAWfEorVVhMTR4kKComFWAWAAAA
AAAAAAAAAAAAAAAAABb/VC9DPC0vH0lQMCcg/xYAAAAAAAAAAAAAAAAAAAAAFnl5ZTcGG1EoOzUd
JWP/FgAAAAAAAAAAAAAAAAAAAAAWeXlhNDJC/2o2BSFq//8WAAAAAAAAAAAAAAAAAAAAABZ4eFxA
PgdXcTkzOv///xYAAAAAAAAAAAAAAAAAAAAAFnhtb15bMRNvWj8DRf//FgAAAAAAAAAAAAAAAAAA
AAAWeG1IRzgCEHBdWQgL//8WAAAAAAAAAAAAAAAAAAAAABZ4ahEECQpTRj0PARL//xYAAAAAAAAA
AAAAAAAAAAAAFm1tbV9VanlEDQ5BdHz/FgAAAAAAAAAAAAAAAAAAAAAWbWpqeHh4eHl5eHx8fP8W
AAAAAAAAAAAAAAAAAAAAABZ4bW1tbXh4eXl8fHx8/xYAAAAAAAAAAAAAAAAAAAAAFhYWFhYWFhYW
FhYWFhYWFgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD/
/wAA//8AAP//AAD//wAA//8AAP//AAD//wAA////////////////////////////////////////
////////////////////////////////////////////////KAAAABAAAAAgAAAAAQAIAAAAAAAA
AQAAAAAAAAAAAAAAAQAAAAEAAAAAAAApOkoAHUh1ABdGeABITVIASE5XAGxraQB9fHYAc3h9AHCQ
OACFp0sAw6tYAMizUACv0XkArN98AOvOagDt1HwAO2+fAExrhwBqho0AWou5AHSgyQCSkYkAho6R
AKCgngCUmqEAqcaWAL7clwDXypsA5NGQAMPhmADHxrcAycq4AODbtQDv5LMArcnhAObjyQDv/NQA
8/HbAMne7wD+/v4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAP///wAYGBgYGBgYGBgYAAAAAAAAGBsbDg4KEA8MGAAAAAAAABgeDQ4OCR0P
CxgAAAAAAAAYJRoTCSEcCyIYAAAAAAAAGCgmAyQgAiAoGAAAAAAAABgoIxQIIxEZKBgAAAAAAAAY
KCcSBCcVASgYAAAAAAAAGCgWBh8XBAcoGAAAAAAAABgoKCgoKCgoKBgAAAAAAAAYGBgYGBgYGBgY
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD8AAAA/AAAAPwAA
AD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAP//AAD//wAA//8AAP//AAD//wAA//8AAIlQTkcN
ChoKAAAADUlIRFIAAAEAAAABAAgGAAAAXHKoZgAAIABJREFUeJzsvXm0Jcdd5/mJiFzu9tZaVSpJ
JVmStdvIxtgWssFsjQ3uARqG9UwPPd1wmKahm+UwfWgYaMNADz2mDd2H6R4w3TRtm9U2YNmAjY1t
WV61WLtUKqn2V69eveVumRnb/BGZ97169WpVSdgoPlLWzXtvvsy4ee/3FxG/+MUvIBKJRCKRSCQS
iUQikUgkEolEIpFIJBKJRCKRSCQSiUQikUgkEolEIpFIJBKJRCKRSCQSiUQikUgkEolEIpFIJBKJ
RCKRSCQSiUQikUgkEolEIpFIJBKJRCKRSCQSiUQikUgkEolEIpFIJBKJRCKRSCQSiUQikUgkEolE
IpFIJBKJRCKRSCQSiUQikUgkEolEIpFIJBKJRCKRSCQSiUQikUgkEolEIpFIJBKJRCKRSCQSiUQi
kUgkEolEIpFIJBKJRCKRSCQSiUQikUgkEolEIpFIJBKJRCKRSCQSiUQikUgkEolEIpFIJBKJRCKR
SCQSiUQikUgkEolEIpFIJBKJRCKRSCQSiUQikUgkEolEIpFIJBKJRCKRSCQSiUQikUgkEolEIpFI
JBKJRCKRSCQSiUQikUgkEolEIpFIJBKJRCKRSCQSiUQikUgkEolEIpFIJBKJRCKRSCQSiUQikUgk
EolEIpFIJBKJRCKRSCQSiUQikUgkEolEIpFIJBKJRCKRSCQSiUQikUgkEolEIpFIJBKJRCKRSCQS
iUQikUgkEolEIpFIJBKJRCKRSCQSiUQikUgkEolEIpFIJBKJRL40EOd4vdkUIDcce7a/iXxp4jc8
OsDW+37De5GXKFuJuRF9Wm9Z/Sg53RBEvjxohO8ADVT1o2bdGEReomwWswASIP83/+bn7tp71VXf
K4S4wTu3zTkHIhweHkT4T4pwEiEQAryn/ifgN5x4/SqiOVVkExdz/5pjPeCdp95b/3MfXiuLcnl5
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
///h////4f///+D////e////3v///+D////h////4f///+H////h////4f///+H////h////4f//
/+qAf3//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAf3//
///y4//969j//O3Y///41////9X////U//v41uvr4dzU2MTiyc+94+Tk4d7////W////2P///9f/
///X////1v///9b////X////2f///+GAf3//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAACAf3/////w4///7tj//fXW5+jU3ba/nueuvZbxqMiE+ZC1Yv95okb/
WYUo/0NpIf+grZfq////1Pn6+drs6eDd4drL4d3QyeHt7PDb////1v///+GAf3//AAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAf3/////w4//87de0xZPvga1N
/2yRPP+Yp3X/pNF4/6rPgv+rzIL/mbtp/2qZN/9NazH/n5J09L2qT/2zmDT/pXsU/4xNAP92LQD/
ybax5f///9+Af3//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AACAf3/////z4vDy19uRvWD/oc1y/5O0bv/Y0b7/stSG/63Pif+92p//sM+I/4u3Wf9ndTf/uaNx
/8ayTf/HtVz/xrFa/7aTNf+VTwD/jmNC9v3//+KAf3//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
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
/dfk//7Y5P/+2uP//tzj///e4///3+T//+Hk///k5P//5uT//+jk///p5P//6+P//+3j///w4///
/+yAf3//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgoJ7/
gH9//4B/f/+Af3//gH9//4B/f/+Af3//gH9//4B/f/+Af3//gH9//4B/f/+Af3//gH9//4B/f/+A
f3//gH9//4B/f/+Af3//gH9//4B/f/+goJ7/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///////wAAgAAB////AACAAAH///8AAIAAAf///wAA
gAAB////AACAAAH///8AAIAAAf///wAAgAAB////AACAAAH///8AAIAAAf///wAAgAAB////AACA
AAH///8AAIAAAf///wAAgAAB////AACAAAH///8AAIAAAf///wAAgAAB////AACAAAH///8AAIAA
Af///wAAgAAB////AACAAAH///8AAIAAAf///wAAgAAB////AAD///////8AAP///////wAA////
////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD/////
//8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP//////
/wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////
AAD///////8AACgAAAAgAAAAQAAAAAEAIAAAAAAAgBAAAAAAAAAAAAAAAAAAAAAAAACAf3//gH9/
/4B/f/+Af3//gH9//4B/f/+Af3//gH9//4B/f/+Af3//gH9//4B/f/+Af3//gH9//4B/f/+Af3//
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAIB/f//////r///+4f///9/////d////3f///9/////h////3v///9/////g////3///
/9/////g////6oB/f/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAgH9/////+eL//fLX3OHH4MHKq+q50prznb10+nWYTP1xjFf2
4uXl3Pz9/djr5dfg3tHH4fPv89v////fgH9//wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAf3/////84LnPlPB7qUb/n656/6rR
fv+qz4L/ncFv/12MLv94d0j8xLBZ/bSaNv+aZQP/hEAF/+jh4OiAf3//AAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIB/f/////je
rc2D+ZrFb//V0rr/0eSk/7fYkv+525f/hq5W/6qgdv/WvmL/z79w/8eyW/+ZZAD/1s7H7IB/f/8A
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAgH9/////+N7O3azrq899/46enf9thpT/osV+/6jSf/+crFz/x76r/9PEhP/TwG7/yrpk
/7igR/3////ggH9//wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAACAf3/////r4v/+6Nbn8bzoU3qM/hU9dv9yjXT8xs+S8dW7Z/99
i47/RGaJ/62YR//AqEf/5N7B5f///9+Af3//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIB/f////+fi///l1cXS1uQ/dKX/J1qL
/4aPle7////N/PXY3UlvjP4NP3b/jYx59fnx2t/////W////4YB/f/8AAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgH9/////5eL/
/93UpsDR9n+ozv9nl8D/KUBU/9bKs9/G2+jnSX+v/zNmlP91fYTw////1P///dj////hgH9//wAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAACAf3/////i4v/92tXE2OX4uNPu/4y64f8rWYL/cm1i8L7X5/WWudn/cJ/G/xw8W/+emY/r
////1f///+GAf3//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAIB/f////+Di//jU1aa2vfWFor//Yn6W/yYyP/9tZ1vywtvs96jH
5f+Csdr/KFJ3/1xaVvf////W////4YB/f/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgH9/////3+L++dbYbWxo+T09Qv9LR0j/
WldV/s/JteGVo6v2aoSd/1Bkdf8gIyn/cm5n9f///9X////hgH9//wAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAf3/////b4v/7
19f++tjZ2NW+5dDNuOT389ja///r1p6akPBjYF7/aGNf/omHgPTw7+Dd///01////eGAf3//AAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAIB/f////9ni+vXR2P751df//93W///h1v/93tf//N/Y///q1v774tn7+eLZ///01v//8df+
/OvZ///74YB/f/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAgH9/////3+z//9ji///Z4v//2uL//9zi///g4v//4uL//+bi///r
4f//7uH//+7i///w4v//8+L////rgH9//wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAf3//gH9//4B/f/+Af3//gH9//4B/f/+A
f3//gH9//4B/f/+Af3//gH9//4B/f/+Af3//gH9//4B/f/+Af3//AAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//wAA//8AAP//AAD/
/wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD/////////////
//////////////////////////////////////////////////////////////////////////8o
AAAAEAAAACAAAAABACAAAAAAAEAEAAAAAAAAAAAAAAAAAAAAAAAAoKCe/6Cgnv+goJ7/oKCe/6Cg
nv+goJ7/oKCe/6Cgnv+goJ7/oKCe/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKCgnv++3Jf/vtyX
/6zffP+s33z/hadL/+3UfP/rzmr/yLNQ/6Cgnv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgoJ7/
w+GY/6/Ref+s33z/rN98/3CQOP/k0ZD/685q/8OrWP+goJ7/AAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAoKCe/+/81P+pxpb/aoaN/3CQOP/g27X/18qb/8OrWP/v5LP/oKCe/wAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAKCgnv/8/Pz/8/Hb/xdGeP/m48n/ycq4/x1Idf/Jyrj//Pz8/6Cgnv8AAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAACgoJ7//Pz8/63J4f9ai7n/c3h9/63J4f87b5//lJqh//z8/P+goJ7/
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoKCe//z8/P/J3u//TGuH/0hNUv/J3u//dKDJ/yk6Sv/8
/Pz/oKCe/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKCgnv/8/Pz/kpGJ/2xraf/Hxrf/ho6R/0hO
V/99fHb//Pz8/6Cgnv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgoJ7//Pz8//z8/P/8/Pz//Pz8
//z8/P/8/Pz//Pz8//z8/P+goJ7/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoKCe/6Cgnv+goJ7/
oKCe/6Cgnv+goJ7/oKCe/6Cgnv+goJ7/oKCe/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/AAAAPwAAAD8AAAA/AAAAPwAA
AD8AAAA/AAAAPwAAAD8AAAA/AAD//wAA//8AAP//AAD//wAA//8AAP//AAA=')
#endregion
$formResetPWFromCSV.Name = "formResetPWFromCSV"
$formResetPWFromCSV.StartPosition = 'CenterScreen'
$formResetPWFromCSV.Text = "Import Passwords from CSV"
$formResetPWFromCSV.add_Load($FormEvent_Load)
#
# groupbox1
#
$groupbox1.Controls.Add($textboxFile)
$groupbox1.Controls.Add($buttonBrowse)
$groupbox1.Location = '12, 12'
$groupbox1.Name = "groupbox1"
$groupbox1.Size = '279, 49'
$groupbox1.TabIndex = 2
$groupbox1.TabStop = $False
$groupbox1.Text = "Browse for File"
#
# textboxFile
#
$textboxFile.AutoCompleteMode = 'SuggestAppend'
$textboxFile.AutoCompleteSource = 'FileSystem'
$textboxFile.Location = '6, 19'
$textboxFile.Name = "textboxFile"
$textboxFile.ReadOnly = $True
$textboxFile.Size = '228, 20'
$textboxFile.TabIndex = 0
#
# buttonBrowse
#
$buttonBrowse.Location = '240, 17'
$buttonBrowse.Name = "buttonBrowse"
$buttonBrowse.Size = '30, 23'
$buttonBrowse.TabIndex = 1
$buttonBrowse.Text = "..."
$buttonBrowse.UseVisualStyleBackColor = $True
$buttonBrowse.add_Click($buttonBrowse_Click)
#
# buttonCancel
#
$buttonCancel.Anchor = 'Bottom, Right'
$buttonCancel.DialogResult = 'Cancel'
$buttonCancel.Location = '12, 182'
$buttonCancel.Name = "buttonCancel"
$buttonCancel.Size = '75, 23'
$buttonCancel.TabIndex = 1
$buttonCancel.Text = "&Cancel"
$buttonCancel.UseVisualStyleBackColor = $True
$buttonCancel.add_Click($buttonCancel_Click)
#
# buttonImportPasswords
#
$buttonImportPasswords.Anchor = 'Bottom, Right'
$buttonImportPasswords.Location = '180, 182'
$buttonImportPasswords.Name = "buttonImportPasswords"
$buttonImportPasswords.Size = '111, 23'
$buttonImportPasswords.TabIndex = 0
$buttonImportPasswords.Text = "&Import Passwords"
$buttonImportPasswords.UseVisualStyleBackColor = $True
$buttonImportPasswords.add_Click($buttonImportPasswords_Click)
#
# groupbox2
#
$groupbox2.Controls.Add($labelIfNecessaryChangeThe)
$groupbox2.Controls.Add($labelPassword)
$groupbox2.Controls.Add($labelUserPrincipalName)
$groupbox2.Controls.Add($textUPNHeader)
$groupbox2.Controls.Add($textPasswordHeader)
$groupbox2.Location = '12, 67'
$groupbox2.Name = "groupbox2"
$groupbox2.Size = '279, 109'
$groupbox2.TabIndex = 5
$groupbox2.TabStop = $False
$groupbox2.Text = "Column Headers"
#
# labelIfNecessaryChangeThe
#
$labelIfNecessaryChangeThe.Location = '17, 16'
$labelIfNecessaryChangeThe.Name = "labelIfNecessaryChangeThe"
$labelIfNecessaryChangeThe.Size = '253, 37'
$labelIfNecessaryChangeThe.TabIndex = 8
$labelIfNecessaryChangeThe.Text = "If necessary, change the fields below to match the column headers in your CSV file."
#
# labelPassword
#
$labelPassword.Location = '62, 86'
$labelPassword.Name = "labelPassword"
$labelPassword.Size = '58, 20'
$labelPassword.TabIndex = 7
$labelPassword.Text = "Password:"
$tooltipPassword.SetToolTip($labelPassword, "This column contains the list of passwords that will be imported.")
#
# labelUserPrincipalName
#
$labelUserPrincipalName.Location = '17, 60'
$labelUserPrincipalName.Name = "labelUserPrincipalName"
$labelUserPrincipalName.Size = '108, 17'
$labelUserPrincipalName.TabIndex = 5
$labelUserPrincipalName.Text = "UserPrincipalName:"
$tooltipUPN.SetToolTip($labelUserPrincipalName, "The UserPrincipalName column contains a list of email addresses.
ex. Jim@contoso.com")
#
# textUPNHeader
#
$textUPNHeader.Location = '126, 57'
$textUPNHeader.Name = "textUPNHeader"
$textUPNHeader.Size = '147, 20'
$textUPNHeader.TabIndex = 3
$textUPNHeader.Text = "UserPrincipalName"
#
# textPasswordHeader
#
$textPasswordHeader.Location = '126, 83'
$textPasswordHeader.Name = "textPasswordHeader"
$textPasswordHeader.Size = '147, 20'
$textPasswordHeader.TabIndex = 4
$textPasswordHeader.Text = "Password"
#
# openfiledialog1
#
$openfiledialog1.DefaultExt = "csv"
$openfiledialog1.Filter = "Comma Seperated Value File (.csv)|*.CSV"
$openfiledialog1.ShowHelp = $True
#
# tooltipUPN
#
#
# tooltipPassword
#
$groupbox2.ResumeLayout()
$groupbox1.ResumeLayout()
$formResetPWFromCSV.ResumeLayout()
#endregion Generated Form Code

#----------------------------------------------

#Save the initial state of the form
$InitialFormWindowState = $formResetPWFromCSV.WindowState
#Init the OnLoad event to correct the initial state of the form
$formResetPWFromCSV.add_Load($Form_StateCorrection_Load)
#Clean up the control events
$formResetPWFromCSV.add_FormClosed($Form_Cleanup_FormClosed)
#Store the control values when form is closing
$formResetPWFromCSV.add_Closing($Form_StoreValues_Closing)
#Show the Form
return $formResetPWFromCSV.ShowDialog()

}
#endregion Source: ResetPWFromCSV.psf

#region Source: mainform.psf
function Call-mainform_psf
{
#----------------------------------------------
#region Import the Assemblies
#----------------------------------------------
[void][reflection.assembly]::Load('mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089')
[void][reflection.assembly]::Load('System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089')
[void][reflection.assembly]::Load('System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089')
[void][reflection.assembly]::Load('System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089')
[void][reflection.assembly]::Load('System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a')
[void][reflection.assembly]::Load('System.Xml, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089')
[void][reflection.assembly]::Load('System.DirectoryServices, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a')
[void][reflection.assembly]::Load('System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089')
[void][reflection.assembly]::Load('System.ServiceProcess, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a')
[void][reflection.assembly]::Load('System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a')
#endregion Import Assemblies

#----------------------------------------------
#region Generated Form Objects
#----------------------------------------------
[System.Windows.Forms.Application]::EnableVisualStyles()
$mainform = New-Object 'System.Windows.Forms.Form'
$buttonClearOutput = New-Object 'System.Windows.Forms.Button'
$labelByDavidSeptimus = New-Object 'System.Windows.Forms.Label'
$buttonHideOutput = New-Object 'System.Windows.Forms.Button'
$labelOffice365PasswordRes = New-Object 'System.Windows.Forms.Label'
$toolstrip1 = New-Object 'System.Windows.Forms.ToolStrip'
$splitcontainer1 = New-Object 'System.Windows.Forms.SplitContainer'
$groupbox1 = New-Object 'System.Windows.Forms.GroupBox'
$checkboxNeverExpires = New-Object 'System.Windows.Forms.CheckBox'
$checkboxTemporary = New-Object 'System.Windows.Forms.CheckBox'
$fromRandom = New-Object 'System.Windows.Forms.RadioButton'
$bulkEntry = New-Object 'System.Windows.Forms.RadioButton'
$fromCSV = New-Object 'System.Windows.Forms.RadioButton'
$ResetList = New-Object 'System.Windows.Forms.DataGridView'
$buttonChangePassword = New-Object 'System.Windows.Forms.Button'
$buttonRemove = New-Object 'System.Windows.Forms.Button'
$buttonAdd = New-Object 'System.Windows.Forms.Button'
$UserList = New-Object 'System.Windows.Forms.DataGridView'
$DisplayName = New-Object 'System.Windows.Forms.DataGridViewTextBoxColumn'
$UserPrincipalName = New-Object 'System.Windows.Forms.DataGridViewTextBoxColumn'
$rDisplayName = New-Object 'System.Windows.Forms.DataGridViewTextBoxColumn'
$rUPN = New-Object 'System.Windows.Forms.DataGridViewTextBoxColumn'
$buttonSettings = New-Object 'System.Windows.Forms.ToolStripButton'
$buttonAbout = New-Object 'System.Windows.Forms.ToolStripButton'
$labelOutput = New-Object 'System.Windows.Forms.Label'
$textOutput = New-Object 'System.Windows.Forms.RichTextBox'
$toolstripbutton1 = New-Object 'System.Windows.Forms.ToolStripButton'
$labelUserList = New-Object 'System.Windows.Forms.Label'
$labelPasswordResetList = New-Object 'System.Windows.Forms.Label'
$textboxSearch = New-Object 'System.Windows.Forms.TextBox'
$buttonSearch = New-Object 'System.Windows.Forms.Button'
$InitialFormWindowState = New-Object 'System.Windows.Forms.FormWindowState'
#endregion Generated Form Objects

#----------------------------------------------
# User Generated Script
#----------------------------------------------

Import-Module MSOnline


Connect-Office365
$OnLoadFormEvent= {
#TODO: Initialize Form Controls here

$Users = Get-MsolUser | Select DisplayName, UserPrincipalName | sort -Property DisplayName,UserPrincipalName
#$Users = Import-Csv -Path 'J:\Office-365-GUI-Tools\Office365 Password Reset Tool\users.csv' | Select-Object -Property DisplayName, UserPrincipalName
#$Users = $Users | Select-Object -Property DisplayName, UserPrincipalName | Sort-Object -Property DisplayName, UserPrincipalName

#gets a list of admin users to compare to the user list. admin users are then not added to $UserList.
$roles = Get-MsolRole
$admins = $roles | ForEach-Object { Get-MsolRoleMember -RoleObjectId $_.ObjectID } | Select-Object 'EmailAddress'
foreach ($User in $Users)
{
$isAdmin = $false
$admins | ForEach-Object { if ($_.EmailAddress -eq $User.UserPrincipalName) { $isAdmin = $true } }
if ($isAdmin -eq $false)
{
$UserList.Rows.add($User.DisplayName, $User.UserPrincipalName)
}
}

$mainform.WindowState = 'Minimized'
$mainform.Show();
$mainform.WindowState = 'Normal'
}

#region Control Helper Functions
function Load-DataGridView
{
<#
.SYNOPSIS
This functions helps you load items into a DataGridView.

.DESCRIPTION
Use this function to dynamically load items into the DataGridView control.

.PARAMETER DataGridView
The ComboBox control you want to add items to.

.PARAMETER Item
The object or objects you wish to load into the ComboBox's items collection.

.PARAMETER DataMember
Sets the name of the list or table in the data source for which the DataGridView is displaying data.

#>
Param (
[ValidateNotNull()]
[Parameter(Mandatory=$true)]
[System.Windows.Forms.DataGridView]$DataGridView,
[ValidateNotNull()]
[Parameter(Mandatory=$true)]
$Item,
[Parameter(Mandatory=$false)]
[string]$DataMember
)
$DataGridView.SuspendLayout()
$DataGridView.DataMember = $DataMember

if ($Item -is [System.ComponentModel.IListSource]`
-or $Item -is [System.ComponentModel.IBindingList] -or $Item -is [System.ComponentModel.IBindingListView] )
{
$DataGridView.DataSource = $Item
}
else
{
$array = New-Object System.Collections.ArrayList

if ($Item -is [System.Collections.IList])
{
$array.AddRange($Item)
}
else
{ 
$array.Add($Item) 
}
$DataGridView.DataSource = $array
}

$DataGridView.ResumeLayout()
}

#endregion

#region Search Function
function SearchGrid()
{
$RowIndex = 0
$ColumnIndex = 0
$SearchString = $textboxSearch.Text

if ($SearchString -eq "")
{
return
}

if ($UserList.SelectedCells.Count -ne 0)
{
$startCell = $UserList.SelectedCells[0];
$RowIndex = $startCell.RowIndex
$ColumnIndex = $startCell.ColumnIndex + 1
}

$columnCount = $UserList.ColumnCount
$rowCount = $UserList.RowCount
for (; $RowIndex -lt $rowCount; $RowIndex++)
{
$Row = $UserList.Rows[$RowIndex]

for (; $ColumnIndex -lt $columnCount; $ColumnIndex++)
{
$cell = $Row.Cells[$ColumnIndex]

if ($cell.Value -ne $null -and $cell.Value.ToString().IndexOf($SearchString, [StringComparison]::OrdinalIgnoreCase) -ne -1)
{
$UserList.CurrentCell = $cell
return
}
}

$ColumnIndex = 0
}

$UserList.CurrentCell = $null
[void][System.Windows.Forms.MessageBox]::Show("$SearchIteration The search has reached the end of the grid.", "String not Found")
}
#endregion

$labelOutput_Click={
#TODO: Place custom script here

}

$UserList_CellContentClick=[System.Windows.Forms.DataGridViewCellEventHandler]{
#Event Argument: $_ = [System.Windows.Forms.DataGridViewCellEventArgs]
#TODO: Place custom script here

}

$buttonAdd_Click={
#TODO: Place custom script here

$count = $UserList.SelectedRows.Count

foreach ($row in $UserList.SelectedRows)
{
$ResetList.Rows.Add($row.Cells['DisplayName'].Value, $row.Cells['UserPrincipalName'].value)
$UserList.Rows.Remove($row)
$row.CellsCells
}
$ResetList.sort($ResetList.Columns['rDisplayName'], 'Ascending')
}

$buttonRemove_Click={
#TODO: Place custom script here

foreach ($row in $ResetList.SelectedRows)
{
$UserList.Rows.Add($row.Cells['rDisplayName'].Value, $row.Cells['rUPN'].Value)
$ResetList.Rows.Remove($row)
}
$UserList.sort($UserList.Columns['DisplayName'], 'Ascending')
}

$buttonChangePassword_Click={
#TODO: Place custom script here
if ($ResetList.RowCount -gt 0)
{
if ($bulkEntry.Checked)
{
Call-BulkPasswordChange_psf
}
elseif ($fromCSV.Checked)
{
Call-ResetPWFromCSV_psf
}
elseif ($fromRandom)
{
if ((Show-MessageBox -Title 'Password Reset Confirmation' -Message "Are you sure you want to randomize the passwords of all users on the password reset list?" `
-Icon Question -Buttons YesNo) -eq 'Yes')
{
foreach ($row in $ResetList.Rows)
{
TRY
{
Set-MsolUser -UserPrincipalName $row.Cells['rUPN'].Value -PasswordNeverExpires $checkboxNeverExpires.Checked -ErrorAction "Stop"
$textOutput.SelectionColor = 'Green'
$textOutput.AppendText($row.Cells['rUPN'].Value + "," + (Set-MsolUserPassword -UserPrincipalName $row.Cells['rUPN'].Value -ForceChangePassword $checkboxTemporary.Checked -ErrorAction "Stop") + "`r")
}
CATCH
{
$textOutput.SelectionColor = 'Red'
$textOutput.AppendText("Password change for " + $row.Cells['rUPN'].Value + " failed!`r")
}
}
}
}
}
else
{
$textOutput.SelectionColor = 'Red'
$textOutput.AppendText("ERROR: No users have been added to the reset password list!`r")
}
}

$buttonHideOutput_Click={
#TODO: Place custom script here
$distance = 173
if ($global:outputHidden -eq $false)
{
$splitcontainer1.Panel2.Hide()
$buttonHideOutput.Text = 'Show Output'
$global:outputHidden = $true
$splitcontainer1.SplitterDistance += $distance
$UserList.Height += $distance
$ResetList.Height += $distance
$groupbox1.Top += $distance
$buttonChangePassword.Top += $distance
}
else
{
$global:outputHidden = $false
$splitcontainer1.SplitterDistance -= $distance
$UserList.Height -= $distance
$ResetList.Height -= $distance
$groupbox1.Top -= $distance
$buttonChangePassword.Top -= $distance
$splitcontainer1.Panel2.Show()
$buttonHideOutput.Text = 'Hide Output'
}
}

$buttonClearOutput_Click={
#TODO: Place custom script here
$textOutput.Text = ''
}

$checkboxTemporary_Click={
#TODO: Place custom script here
if ($checkboxNeverExpires.Checked)
{
$checkboxTemporary.Checked = $false
Show-MessageBox -Title 'Error!' -Message "The 'Temporary' and 'Never Expires' checkboxes cannot both be checked at the same time." -Icon Error -Buttons OK
}

}

$checkboxNeverExpires_Click={
#TODO: Place custom script here
if ($checkboxTemporary.Checked)
{
$checkboxNeverExpires.Checked = $false
Show-MessageBox -Title 'Error!' -Message "The 'Temporary' and 'Never Expires' checkboxes cannot both be checked at the same time." -Icon Error -Buttons OK
}

}

$buttonSearch_Click = {
#TODO: Place custom script here
SearchGrid
}

$UserList_ColumnHeaderMouseClick = [System.Windows.Forms.DataGridViewCellMouseEventHandler]{
#Event Argument: $_ = [System.Windows.Forms.DataGridViewCellMouseEventArgs]
if ($UserList.DataSource -is [System.Data.DataTable])
{
$column = $UserList.Columns[$_.ColumnIndex]
$direction = [System.ComponentModel.ListSortDirection]::Ascending

if ($column.HeaderCell.SortGlyphDirection -eq 'Descending')
{
$direction = [System.ComponentModel.ListSortDirection]::Descending
}

$UserList.Sort($UserList.Columns[$_.ColumnIndex], $direction)
}
}

$textboxSearch_KeyDown = [System.Windows.Forms.KeyEventHandler]{
#Event Argument: $_ = [System.Windows.Forms.KeyEventArgs]
if ($_.KeyCode -eq 'Enter' -and $buttonSearch.Enabled)
{
SearchGrid
$_.SuppressKeyPress = $true
}
}
# --End User Generated Script--
#----------------------------------------------
#region Generated Events
#----------------------------------------------

$Form_StateCorrection_Load=
{
#Correct the initial state of the form to prevent the .Net maximized form issue
$mainform.WindowState = $InitialFormWindowState
}

$Form_StoreValues_Closing=
{
#Store the control values
$script:mainform_checkboxNeverExpires = $checkboxNeverExpires.Checked
$script:mainform_checkboxTemporary = $checkboxTemporary.Checked
$script:mainform_fromRandom = $fromRandom.Checked
$script:mainform_bulkEntry = $bulkEntry.Checked
$script:mainform_fromCSV = $fromCSV.Checked
$script:mainform_textOutput = $textOutput.Text
$script:mainform_textboxSearch = $textboxSearch.Text
}


$Form_Cleanup_FormClosed=
{
#Remove all event handlers from the controls
try
{
$buttonClearOutput.remove_Click($buttonClearOutput_Click)
$buttonHideOutput.remove_Click($buttonHideOutput_Click)
$mainform.remove_Load($OnLoadFormEvent)
$checkboxNeverExpires.remove_Click($checkboxNeverExpires_Click)
$checkboxTemporary.remove_Click($checkboxTemporary_Click)
$buttonChangePassword.remove_Click($buttonChangePassword_Click)
$buttonRemove.remove_Click($buttonRemove_Click)
$buttonAdd.remove_Click($buttonAdd_Click)
$UserList.remove_CellContentClick($UserList_CellContentClick)
$textboxSearch.remove_KeyDown($textboxSearch_KeyDown)
$buttonSearch.remove_Click($buttonSearch_Click)
$mainform.remove_Load($Form_StateCorrection_Load)
$mainform.remove_Closing($Form_StoreValues_Closing)
$mainform.remove_FormClosed($Form_Cleanup_FormClosed)
}
catch [Exception]
{ }
}
#endregion Generated Events

#----------------------------------------------
#region Generated Form Code
#----------------------------------------------
$mainform.SuspendLayout()
$splitcontainer1.SuspendLayout()
$groupbox1.SuspendLayout()
#
# mainform
#
$mainform.Controls.Add($buttonClearOutput)
$mainform.Controls.Add($labelByDavidSeptimus)
$mainform.Controls.Add($buttonHideOutput)
$mainform.Controls.Add($labelOffice365PasswordRes)
$mainform.Controls.Add($toolstrip1)
$mainform.Controls.Add($splitcontainer1)
$mainform.ClientSize = '736, 754'
$mainform.FormBorderStyle = 'FixedSingle'
#region Binary Data
$mainform.Icon = [System.Convert]::FromBase64String('
AAABAAIAEBAAAAEACABoBQAAJgAAABAQAAABACAAaAQAAI4FAAAoAAAAEAAAACAAAAABAAgAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wCMieYAg4DLALe05AB/VYYAv5zCAAAAAABzk+4A
GkfZAAAz/wAAMfwABDb/AJOp/wBWZa4Ak6PuAAMj0gCbp+oAABrOAHqDvQApKUYA4ODgAN7e3gDW
1tYA1NTUAM/PzwDNzc0Ay8vLAMjIyADHx8cAxMTEAMPDwwC8vLwAubm5ALe3twCrq6sAqKioAKen
pwCcnJwAmZmZAFlZWQBXV1cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAcHBwcHBwcHBwcHFAUFBwcHBwcHBwcHBwcHFAUGBgkHBwcHBwcH
BwcHFBACEgMJBwcHBwcHBwcHFBANDBIECQcHBwcHBwcHFBANChIRCQcHBwcHBwcHFBANChIPCQcH
BwcHBwcHFBANChIPCQcHBwcHBygoKBANChIPCQcHBwcHBygoIycTCxIPCQcHBwcHBygoJiEeJA4I
CQcHBwcHBwcoIxodHxklKAcHBwcHBwcHKBYoKCIXICgHBwcHBwcHBygoBycoFhwoBwcHBwcHBwco
BycoGBUoJwcHBwcHBwcHBwcoGxspKAcHBwcHBwcHBwcjKCgoJwcHBwcHBwcHBwf/4wAA/8EAAP+B
AAD/AQAA/gMAAPwHAAD4DwAAwB8AAIA/AAAAfwAAAP8AAAD/AAAg/wAAQP8AAMH/AACD/wAAKAAA
ABAAAAAgAAAAAQAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAsAAAA7AAAAdwAAAI8AAAB8AAAARAAAABAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAA7KSlG/39Vhv9/VYb/DQ0NwwAAAHwAAAAlAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAA7KSlG/39Vhv+/nML/v5zC/xpH2f8AAACPAAAA
LwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAA7KSlG/wMj0v+Mieb/ABrO/4OAy/8aR9n/
AAAAdwAAACMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAA7KSlG/wMj0v+Tqf//BDb//wAazv+3
tOT/GkfZ/wAAADsAAAALAAAAAAAAAAAAAAAEAAAAEwAAACcAAABHKSlG/wMj0v+Tqf//ADP//wAa
zv+bp+r/GkfZ/wAAADsAAAALAAAAAAAAAAEAAAANAAAAKwAAAFYAAAB/KSlG/wMj0v+Tqf//ADP/
/wAazv+To+7/GkfZ/wAAADsAAAALAAAAAAAAAAAAAAAHAAAAMhkZGaFZWVn/WVlZ/wMj0v+Tqf//
ADP//wAazv+To+7/GkfZ/wAAADsAAAALAAAAAAAAAAAAAAAAFRUVJllZWf9ZWVn/q6ur/5mZmf96
g73/ADH8/wAazv+To+7/GkfZ/wAAADsAAAALAAAAAAAAAAAAAAAAAAAAACwsLJRZWVn/nJyc/7m5
uf/ExMT/qKio/1Zlrv9zk+7/GkfZ/wAAAEcAAAALAAAAAAAAAAAAAAAAAAAAAAAAAABZWVn/q6ur
/83Nzf/Hx8f/w8PD/8/Pz/+np6f/WVlZ/wAAAI8AAAAvAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
WVlZ/97e3v9ZWVn/WVlZ/7e3t//W1tb/vLy8/1lZWf8AAAB/AAAAKAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAFlZWf9ZWVn/AAAAUDIyMptZWVn/3t7e/8jIyP9ZWVn/AAAAWAAAABQAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAABZWVn/AAAAGzo6OoVZWVn/1NTU/+Dg4P9ZWVn/HBwcpwAAACwAAAAEAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdZWVn/y8vL/8vLy/9XV1f/WVlZ/wAAAC8AAAAL
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxMTFTWVlZ/1lZWf9ZWVn/LCwslAAAABcA
AAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/gAcH/wAHB/4ABxT8AAcH+AAHB8AB
BwcAAxQFAAcJBwAPBwcAHwcHAD8QAgA/CQcAPwcHAD8HB4B/DQyA/wkH')
#endregion
$mainform.MaximizeBox = $False
$mainform.Name = "mainform"
$mainform.StartPosition = 'CenterScreen'
$mainform.Text = "Office 365 Password Reset Tool v0.1"
$mainform.add_Load($OnLoadFormEvent)
#
# buttonClearOutput
#
$buttonClearOutput.Location = '544, 728'
$buttonClearOutput.Name = "buttonClearOutput"
$buttonClearOutput.Size = '86, 23'
$buttonClearOutput.TabIndex = 15
$buttonClearOutput.Text = "Clear Output"
$buttonClearOutput.UseVisualStyleBackColor = $True
$buttonClearOutput.add_Click($buttonClearOutput_Click)
#
# labelByDavidSeptimus
#
$labelByDavidSeptimus.Location = '223, 733'
$labelByDavidSeptimus.Name = "labelByDavidSeptimus"
$labelByDavidSeptimus.Size = '145, 23'
$labelByDavidSeptimus.TabIndex = 13
$labelByDavidSeptimus.Text = "By: David Septimus"
#
# buttonHideOutput
#
$buttonHideOutput.Location = '636, 728'
$buttonHideOutput.Name = "buttonHideOutput"
$buttonHideOutput.Size = '88, 23'
$buttonHideOutput.TabIndex = 11
$buttonHideOutput.Text = "Hide Output"
$buttonHideOutput.UseVisualStyleBackColor = $True
$buttonHideOutput.add_Click($buttonHideOutput_Click)
#
# labelOffice365PasswordRes
#
$labelOffice365PasswordRes.Location = '20, 733'
$labelOffice365PasswordRes.Name = "labelOffice365PasswordRes"
$labelOffice365PasswordRes.Size = '197, 23'
$labelOffice365PasswordRes.TabIndex = 14
$labelOffice365PasswordRes.Text = "Office 365 Password Reset Tool v0.1"
#
# toolstrip1
#
$toolstrip1.GripStyle = 'Hidden'
[void]$toolstrip1.Items.Add($buttonSettings)
[void]$toolstrip1.Items.Add($toolstripbutton1)
[void]$toolstrip1.Items.Add($buttonAbout)
$toolstrip1.Location = '0, 0'
$toolstrip1.Name = "toolstrip1"
$toolstrip1.Size = '736, 25'
$toolstrip1.TabIndex = 12
$toolstrip1.Text = "toolstrip1"
#
# splitcontainer1
#
$splitcontainer1.IsSplitterFixed = $True
$splitcontainer1.Location = '0, 0'
$splitcontainer1.Name = "splitcontainer1"
$splitcontainer1.Orientation = 'Horizontal'
[void]$splitcontainer1.Panel1.Controls.Add($textboxSearch)
[void]$splitcontainer1.Panel1.Controls.Add($buttonSearch)
[void]$splitcontainer1.Panel1.Controls.Add($labelPasswordResetList)
[void]$splitcontainer1.Panel1.Controls.Add($labelUserList)
[void]$splitcontainer1.Panel1.Controls.Add($UserList)
[void]$splitcontainer1.Panel1.Controls.Add($buttonAdd)
[void]$splitcontainer1.Panel1.Controls.Add($groupbox1)
[void]$splitcontainer1.Panel1.Controls.Add($buttonRemove)
[void]$splitcontainer1.Panel1.Controls.Add($ResetList)
[void]$splitcontainer1.Panel1.Controls.Add($buttonChangePassword)
[void]$splitcontainer1.Panel2.Controls.Add($labelOutput)
[void]$splitcontainer1.Panel2.Controls.Add($textOutput)
$splitcontainer1.Panel2MinSize = 0
$splitcontainer1.Size = '736, 722'
$splitcontainer1.SplitterDistance = 549
$splitcontainer1.TabIndex = 13
#
# groupbox1
#
$groupbox1.Controls.Add($checkboxNeverExpires)
$groupbox1.Controls.Add($checkboxTemporary)
$groupbox1.Controls.Add($fromRandom)
$groupbox1.Controls.Add($bulkEntry)
$groupbox1.Controls.Add($fromCSV)
$groupbox1.Location = '14, 471'
$groupbox1.Name = "groupbox1"
$groupbox1.Size = '583, 59'
$groupbox1.TabIndex = 10
$groupbox1.TabStop = $False
$groupbox1.Text = "Password Reset Options"
#
# checkboxNeverExpires
#
$checkboxNeverExpires.Location = '472, 32'
$checkboxNeverExpires.Name = "checkboxNeverExpires"
$checkboxNeverExpires.Size = '103, 24'
$checkboxNeverExpires.TabIndex = 3
$checkboxNeverExpires.Text = "Never Expires"
$checkboxNeverExpires.UseVisualStyleBackColor = $True
$checkboxNeverExpires.add_Click($checkboxNeverExpires_Click)
#
# checkboxTemporary
#
$checkboxTemporary.Location = '472, 11'
$checkboxTemporary.Name = "checkboxTemporary"
$checkboxTemporary.Size = '87, 24'
$checkboxTemporary.TabIndex = 4
$checkboxTemporary.Text = "Temporary"
$checkboxTemporary.UseVisualStyleBackColor = $True
$checkboxTemporary.add_Click($checkboxTemporary_Click)
#
# fromRandom
#
$fromRandom.Checked = $True
$fromRandom.Location = '6, 20'
$fromRandom.Name = "fromRandom"
$fromRandom.Size = '145, 24'
$fromRandom.TabIndex = 2
$fromRandom.TabStop = $True
$fromRandom.Text = "Randomize Passwords"
$fromRandom.UseVisualStyleBackColor = $True
#
# bulkEntry
#
$bulkEntry.Location = '151, 20'
$bulkEntry.Name = "bulkEntry"
$bulkEntry.Size = '148, 24'
$bulkEntry.TabIndex = 1
$bulkEntry.Text = "Bulk Change Passwords"
$bulkEntry.UseVisualStyleBackColor = $True
#
# fromCSV
#
$fromCSV.Location = '305, 20'
$fromCSV.Name = "fromCSV"
$fromCSV.Size = '161, 24'
$fromCSV.TabIndex = 0
$fromCSV.Text = "Load Passwords from CSV"
$fromCSV.UseVisualStyleBackColor = $True
#
# ResetList
#
$ResetList.AllowUserToAddRows = $False
$ResetList.AllowUserToDeleteRows = $False
$ResetList.AllowUserToResizeColumns = $False
$ResetList.AllowUserToResizeRows = $False
$ResetList.AutoSizeColumnsMode = 'Fill'
$ResetList.AutoSizeRowsMode = 'AllCells'
$ResetList.BackgroundColor = 'White'
$ResetList.CellBorderStyle = 'None'
$ResetList.ColumnHeadersHeightSizeMode = 'AutoSize'
[void]$ResetList.Columns.Add($rDisplayName)
[void]$ResetList.Columns.Add($rUPN)
$ResetList.EditMode = 'EditOnKeystroke'
$ResetList.GridColor = 'Window'
$ResetList.Location = '385, 83'
$ResetList.Name = "ResetList"
$ResetList.ReadOnly = $True
$ResetList.RowHeadersBorderStyle = 'None'
$ResetList.RowHeadersWidthSizeMode = 'AutoSizeToAllHeaders'
$ResetList.SelectionMode = 'FullRowSelect'
$ResetList.Size = '339, 383'
$ResetList.TabIndex = 9
#
# buttonChangePassword
#
$buttonChangePassword.Location = '603, 482'
$buttonChangePassword.Name = "buttonChangePassword"
$buttonChangePassword.Size = '121, 23'
$buttonChangePassword.TabIndex = 5
$buttonChangePassword.Text = "Change Password"
$buttonChangePassword.UseVisualStyleBackColor = $True
$buttonChangePassword.add_Click($buttonChangePassword_Click)
#
# buttonRemove
#
$buttonRemove.Font = "Microsoft Sans Serif, 12pt, style=Bold"
$buttonRemove.Location = '357, 265'
$buttonRemove.Name = "buttonRemove"
$buttonRemove.Size = '24, 28'
$buttonRemove.TabIndex = 3
$buttonRemove.Text = "<"
$buttonRemove.UseVisualStyleBackColor = $True
$buttonRemove.add_Click($buttonRemove_Click)
#
# buttonAdd
#
$buttonAdd.Font = "Microsoft Sans Serif, 12pt, style=Bold"
$buttonAdd.Location = '357, 231'
$buttonAdd.Name = "buttonAdd"
$buttonAdd.Size = '24, 28'
$buttonAdd.TabIndex = 2
$buttonAdd.Text = ">"
$buttonAdd.UseVisualStyleBackColor = $True
$buttonAdd.add_Click($buttonAdd_Click)
#
# UserList
#
$UserList.AllowUserToAddRows = $False
$UserList.AllowUserToDeleteRows = $False
$UserList.AllowUserToResizeColumns = $False
$UserList.AllowUserToResizeRows = $False
$UserList.AutoSizeColumnsMode = 'Fill'
$UserList.AutoSizeRowsMode = 'AllCells'
$UserList.BackgroundColor = 'White'
$UserList.CellBorderStyle = 'None'
$UserList.ColumnHeadersHeightSizeMode = 'AutoSize'
[void]$UserList.Columns.Add($DisplayName)
[void]$UserList.Columns.Add($UserPrincipalName)
$UserList.EditMode = 'EditOnKeystroke'
$UserList.GridColor = 'Window'
$UserList.Location = '12, 83'
$UserList.Name = "UserList"
$UserList.ReadOnly = $True
$UserList.RowHeadersWidthSizeMode = 'AutoSizeToAllHeaders'
$UserList.SelectionMode = 'FullRowSelect'
$UserList.Size = '339, 383'
$UserList.TabIndex = 0
$UserList.add_CellContentClick($UserList_CellContentClick)
#
# DisplayName
#
$DisplayName.HeaderText = "Display Name"
$DisplayName.Name = "DisplayName"
$DisplayName.ReadOnly = $True
#
# UserPrincipalName
#
$UserPrincipalName.HeaderText = "User Principal Name"
$UserPrincipalName.Name = "UserPrincipalName"
$UserPrincipalName.ReadOnly = $True
#
# rDisplayName
#
$rDisplayName.HeaderText = "Display Name"
$rDisplayName.Name = "rDisplayName"
$rDisplayName.ReadOnly = $True
#
# rUPN
#
$rUPN.HeaderText = "User Principal Name"
$rUPN.Name = "rUPN"
$rUPN.ReadOnly = $True
#
# buttonSettings
#
$buttonSettings.Enabled = $False
#region Binary Data
$buttonSettings.Image = [System.Convert]::FromBase64String('
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACx
jwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAH+SURBVFhH7ZY9bsJAEIV9hJyJHolD0LslHRWt
L4BEyVmonIImSZEDUDgRwq2z32rGDKMF2U6CUzDSE+v5eW/2zzh72BA7Ho8fdV03Fvgk/LdWVdWT
F1cQk7Tfs0BcnE6nmTxmjBHb7XbNZDKJYIwvkVfI4zALJBuIBQUzDL4lz+v1um2AMT5iskKF1ODb
CF0/c+KKUvc/z/O2Acb4JFZKboveTaj44XBo5vN5xH6/vyCdTqdtA4xtjFxqVqtV6+vcREiOy6fi
VmS73cbltuI2TowcG7dNwC0y1y10Gg+Zb2Ao4NAG4BaZ20anFLCUqdl2BbVm67rfCDnJ8TCxpCny
LqBWxMtO7wi5ZrOApZ52e90Ui8Vz8/b63nxWXxGM8fk8vZ5wwQn31UZU0MNvAUIq7OGboDbFiZbI
no0AB4+3Gp1zt1P7rzMvy5coCBjjI+bz4YALTn1jApE9mwY8gQVkqdnaVbH5Kfz/BkbbgtEPIabX
MCQV2hCdW1KAkK4EYOzFAbUqCOfNa2iNpFBw/xeRGt1SOMqrWLYgFo3yZ0SnWsBfqRIxG5aUfU2t
Cj5i5Nh4779jLHTafg1BwCzMUkZYEcY2Ri41gz5I1GwTBvf5JFNzTcSPUn55ttdTr5vPAYPF1SAL
JON8lqdMZqgzvkCvu/4T03NggU/CD+thWfYNvRdSyUGQIo4AAAAASUVORK5CYII=')
#endregion
$buttonSettings.ImageTransparentColor = 'White'
$buttonSettings.Name = "buttonSettings"
$buttonSettings.Size = '69, 22'
$buttonSettings.Text = "&Settings"
#
# buttonAbout
#
$buttonAbout.Alignment = 'Right'
$buttonAbout.DisplayStyle = 'Text'
$buttonAbout.Enabled = $False
#region Binary Data
$buttonAbout.Image = [System.Convert]::FromBase64String('
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACx
jwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4go
nkDpg4hGYKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gX
bl54nuf63dd90OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z
1zg8OoY/cITdn4fwbf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDX
sYbrWfUKwJrPE9M2M1OcVzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgW
cx+PSzg166yZZ8xM8XvXDix9c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusH
wtNNCsA5U1zS4BLxzJIfg299qO32Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/
1S1NjL3diRat7qrO7wLRP3HjWsojBeComDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzP
Eee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLv
KQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8DTgDQASA1MVpwzwAAAABJRU5ErkJggg==')
#endregion
$buttonAbout.ImageTransparentColor = 'Magenta'
$buttonAbout.Name = "buttonAbout"
$buttonAbout.Size = '44, 22'
$buttonAbout.Text = "&About"
#
# labelOutput
#
$labelOutput.Location = '14, 6'
$labelOutput.Name = "labelOutput"
$labelOutput.Size = '42, 14'
$labelOutput.TabIndex = 12
$labelOutput.Text = "Output:"
#
# textOutput
#
$textOutput.BackColor = 'Window'
$textOutput.Location = '12, 23'
$textOutput.Name = "textOutput"
$textOutput.ReadOnly = $True
$textOutput.Size = '712, 141'
$textOutput.TabIndex = 11
$textOutput.Text = ""
#
# toolstripbutton1
#
$toolstripbutton1.Enabled = $False
#region Binary Data
$toolstripbutton1.Image = [System.Convert]::FromBase64String('
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACx
jwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAJCSURBVFhH7VdNS5VBGL0/oZ/gH1Da68JVuLQW
4kIhCGor6a4PhBACA4MiXFQuiigKXVSLhJCECIqQFq4SFKIoAi9yv5bTnOE5l3OHeS561UDwwOG9
z53nnDMz7/vq3MopTjxarVZf5HCj0ZhtNpsr9vXRo1qtnrGgqRi0EK9r8RpyWvvhUK/Xz8awi1gV
gmq12nYpDPyz+zd82Pzcrs2id6h5TgQ9+/gm3Hx1L4zdvxr6r50PfdPnEtljNr2DRq+/roX5t4/D
pYc3wuCtiXaQR+q6cAM7azE+KCiFdKMEucTttBgfbC6F9ErcLvpajI9eJ0BdiTpuMT5UBM48nw93
3z0Jl5dmUz00Nxk+bX1LHLh+od1HqlZr+lqMDzbSABMAfuz+TvXLL6upxpU9StVqTV+L8cFGNUE4
wMkA2Antoa5EHbcYHyoiGbzXrKXro/XljnFlrmVNX4vxwUY1AbkLQOnek7mWNX0txgcb1QTbzdUD
4w9mOsZB6krUcYvxoSKSD97mz610xRug48pcy5q+FuODjTTA6gHsgO5EaRdA1WpNX4vxwUYa5K8d
/iYAfC1J6krUcYvxoSIQq8Zq+eChxiRAfGYfqVqt6WsxPtioJgdhrmVNX4vxwUY1OSz1nxGOcBZV
Bhv3cwZQUteNOFlZjI9chFPQ4vsXxVPQQSaA8P0eSHjgrKqB8vuvnTQxnJimnt4OI3eutMfM5mig
J+HIJZtYx2RymvR4gQcpTmY0Mv0WiNz4rxPwgN2yj6c4KahU/gElWMYmiBNihgAAAABJRU5ErkJg
gg==')
#endregion
$toolstripbutton1.ImageTransparentColor = 'Black'
$toolstripbutton1.Name = "toolstripbutton1"
$toolstripbutton1.Size = '102, 22'
$toolstripbutton1.Text = "Export Session"
#
# labelUserList
#
$labelUserList.Font = "Microsoft Sans Serif, 12pt"
$labelUserList.Location = '141, 57'
$labelUserList.Name = "labelUserList"
$labelUserList.Size = '76, 23'
$labelUserList.TabIndex = 11
$labelUserList.Text = "User List"
#
# labelPasswordResetList
#
$labelPasswordResetList.Font = "Microsoft Sans Serif, 12pt"
$labelPasswordResetList.Location = '462, 57'
$labelPasswordResetList.Name = "labelPasswordResetList"
$labelPasswordResetList.Size = '160, 23'
$labelPasswordResetList.TabIndex = 12
$labelPasswordResetList.Text = "Password Reset List"
#
# textboxSearch
#
$textboxSearch.Anchor = 'Top, Left, Right'
$textboxSearch.Location = '12, 30'
$textboxSearch.Name = "textboxSearch"
$textboxSearch.Size = '257, 20'
$textboxSearch.TabIndex = 13
$textboxSearch.add_KeyDown($textboxSearch_KeyDown)
#
# buttonSearch
#
$buttonSearch.Anchor = 'Top, Right'
$buttonSearch.Location = '275, 27'
$buttonSearch.Name = "buttonSearch"
$buttonSearch.Size = '75, 23'
$buttonSearch.TabIndex = 14
$buttonSearch.Text = "&Search"
$buttonSearch.UseVisualStyleBackColor = $True
$buttonSearch.add_Click($buttonSearch_Click)
$groupbox1.ResumeLayout()
$splitcontainer1.ResumeLayout()
$mainform.ResumeLayout()
#endregion Generated Form Code

#----------------------------------------------

#Save the initial state of the form
$InitialFormWindowState = $mainform.WindowState
#Init the OnLoad event to correct the initial state of the form
$mainform.add_Load($Form_StateCorrection_Load)
#Clean up the control events
$mainform.add_FormClosed($Form_Cleanup_FormClosed)
#Store the control values when form is closing
$mainform.add_Closing($Form_StoreValues_Closing)
#Show the Form
return $mainform.ShowDialog()

}
#endregion Source: mainform.psf

#Start the application
Main ($CommandLine)

 

Leave a Comment