<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:"Calibri Light";
        panose-1:2 15 3 2 2 2 4 3 2 4;}
@font-face
        {font-family:Verdana;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
h2
        {mso-style-priority:9;
        mso-style-link:"Heading 2 Char";
        mso-margin-top-alt:auto;
        margin-right:0cm;
        mso-margin-bottom-alt:auto;
        margin-left:0cm;
        font-size:18.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
p.msonormal0, li.msonormal0, div.msonormal0
        {mso-style-name:msonormal;
        mso-margin-top-alt:auto;
        margin-right:0cm;
        mso-margin-bottom-alt:auto;
        margin-left:0cm;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
span.Heading2Char
        {mso-style-name:"Heading 2 Char";
        mso-style-priority:9;
        mso-style-link:"Heading 2";
        font-family:"Calibri Light",sans-serif;
        color:#2F5496;
        mso-fareast-language:EN-GB;}
span.EmailStyle19
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:#032DFD;
        font-weight:normal;
        font-style:normal;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri",sans-serif;
        mso-fareast-language:EN-US;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-GB" link="#0563C1" vlink="#954F72">
<div class="WordSection1">
<p class="MsoNormal"><span style="color:#032DFD;mso-fareast-language:EN-US">Hi Tim<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#032DFD;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:#032DFD;mso-fareast-language:EN-US">I’m happy to accept this, I need to do a release soon anyway…<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#032DFD;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:#032DFD;mso-fareast-language:EN-US">One thing I’d really like to change, sorry it’s pernickety, is<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#032DFD;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:#032DFD;mso-fareast-language:EN-US">if($MaintDay -eq 0){$MaintWeekDay = "Sunday"}<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#032DFD;mso-fareast-language:EN-US">if($MaintDay -eq 1){$MaintWeekDay = "Monday"}<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#032DFD;mso-fareast-language:EN-US">…<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#032DFD;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:#032DFD;mso-fareast-language:EN-US">I’d like to replace it with:<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#032DFD;mso-fareast-language:EN-US">$days = ('Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday')<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#032DFD;mso-fareast-language:EN-US">$MaintWeekDay = $days[$MaintDay]<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#032DFD;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:#032DFD;mso-fareast-language:EN-US">And move the validation before the above.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#032DFD;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:#032DFD;mso-fareast-language:EN-US">Thanks<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#032DFD;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:#032DFD">Zak <o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#032DFD;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><b><span lang="EN-US">From:</span></b><span lang="EN-US"> Xymon <xymon-bounces@xymon.com>
<b>On Behalf Of </b>Timothy Williams<br>
<b>Sent:</b> Monday, 8 October 2018 17:06<br>
<b>To:</b> xymon@xymon.com<br>
<b>Subject:</b> [External] [Xymon] PS client enhancement of ServiceCheck<o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div>
<div>
<div>
<div>
<p class="MsoNormal"><span style="font-size:12.0pt;font-family:"Verdana",sans-serif">All, I've started using the servicecheck function to restart services more extensively lately. However, I encountered a department which needs to shut down a monitored service
 during a maintenance window, and the servicecheck would restart it. Thus, I created a 'noservicecheck' item in the client-local.cfg process. Hope you find it useful enough to add to next PS version.</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:12.0pt;font-family:"Verdana",sans-serif">Tim Williams</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:12.0pt;font-family:"Verdana",sans-serif">Virginia Commonwealth University Computing Center</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:12.0pt;font-family:"Verdana",sans-serif">Here is a section to add to the XymonPSClient.doc help file:</span><o:p></o:p></p>
</div>
<div>
<h2 style="mso-margin-top-alt:2.0pt;margin-right:0cm;margin-bottom:0cm;margin-left:0cm;margin-bottom:.0001pt;line-height:106%;break-after:avoid">
<span style="font-size:13.0pt;line-height:106%;font-family:"Calibri Light",sans-serif;color:#2E74B5;font-weight:normal">noservicecheck<o:p></o:p></span></h2>
<p class="MsoNormal" style="margin-bottom:8.0pt;line-height:106%">noservicecheck:SERVICENAME:DAYOFWEEK:STARTHOUR:DURATION<o:p></o:p></p>
<p class="MsoNormal" style="margin-bottom:8.0pt;line-height:106%">Checks if a specified Windows Service servicecheck exists and suppresses it during the specified Maintenance Window. Window can span multiple days, as specified by Duration, but would terminate
 if script is restarted after initiation day/hour.<o:p></o:p></p>
<p class="MsoNormal" style="margin-bottom:8.0pt;line-height:106%">SERVICENAME – name of the service to check for a ‘servicecheck’ statement.
<o:p></o:p></p>
<p class="MsoNormal" style="margin-bottom:8.0pt;line-height:106%">DAYOFWEEK – numeric day of the week, where Sunday = 0, Monday = 1, etc.<o:p></o:p></p>
<p class="MsoNormal" style="margin-bottom:8.0pt;line-height:106%">STARTHOUR – military hour to start the Maintenance Window, 0 for midnight up to 23<o:p></o:p></p>
<p class="MsoNormal" style="margin-bottom:8.0pt;line-height:106%">DURATION – how long in hours a servicecheck should not institute a restart<o:p></o:p></p>
<p class="MsoNormal" style="margin-bottom:8.0pt;line-height:106%">Examples:<o:p></o:p></p>
<p class="MsoNormal" style="margin-bottom:8.0pt;text-indent:36.0pt;line-height:106%">
servicecheck:Sophos Message Router:10<o:p></o:p></p>
<p class="MsoNormal" style="margin-bottom:8.0pt;text-indent:36.0pt;line-height:106%">
noservicecheck:Sophos Message Router:0:5:1 <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:8.0pt;margin-left:36.0pt;text-indent:36.0pt;line-height:106%">
(no restart starting first scan after Sunday 5AM to first scan after 6AM)<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><b><span style="font-family:"Verdana",sans-serif">Here are the revisions in XymonClient.PS1:</span></b><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"><b><span style="font-family:"Verdana",sans-serif">Add</span></b><span style="font-family:"Verdana",sans-serif"> following to declared variables about line 48:  </span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:"Verdana",sans-serif">     $MaintChecks = @{}</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"><b><span style="font-family:"Verdana",sans-serif">Add</span></b><span style="font-family:"Verdana",sans-serif"> line to function XymonClientConfig($cfglines) for new item to be recognized:</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:"Verdana",sans-serif">    -or $l -match '^noservicecheck:' `</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"><b><span style="font-family:"Verdana",sans-serif">Replace</span></b><span style="font-family:"Verdana",sans-serif"> 'servicecheck' function:</span>  <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<div>
<p class="MsoNormal">function XymonServiceCheck<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">{<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">    WriteLog "Executing XymonServiceCheck"<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">    if ($script:clientlocalcfg_entries -ne $null)<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">    {<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">       $servicecfgs = @($script:clientlocalcfg_entries.keys | where { $_ -match '^servicecheck' })<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">            foreach ($service in $servicecfgs)<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">            {<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                # parameter should be 'servicecheck:<servicename>:<duration>'<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                $checkparams = $service -split ':'<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                # validation<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                if ($checkparams.length -ne 3)<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                {<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                    WriteLog "ERROR: not enough parameters (should be servicecheck:<servicename>:<duration>) - $checkparams[1]"<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                    continue<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                }<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                else<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                {<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                    $duration = $checkparams[2] -as [int]<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                    if ($checkparams[1] -eq '' -or $duration -eq $null)<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                    {<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                        WriteLog "ERROR: config error (should be servicecheck:<servicename>:<duration>) - $checkparams[1]"<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                        continue<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                    }<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                }<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                # check for maintenance window<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                  $serviceexclds = @($script:clientlocalcfg_entries.keys | where { $_ -match '^noservicecheck' })<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                    foreach ($maintservice in $serviceexclds)<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                    {<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                    # parameter should be 'noservicecheck:<servicename>:<numeric day of week Sun=0>:<military start hour>:<duration in Hours>'<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                  $checkMparams = $maintservice -split ':'<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                  if ($checkparams[1] -eq $checkMparams[1]){<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                     # validation of number of parameters<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                    if ($checkMparams.length -ne 5)<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                    {<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                        WriteLog ("ERROR: not enough parameters (noservicecheck:<servicename>:<numeric day of week Sun=0>:<military start hour>:<duration Hrs> {0}" -f $checkMparams[1])<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                        continue<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                    }<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                    else<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                    {<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                    # get values<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                        $MaintDay = $checkMparams[2] -as [int]<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                            if($MaintDay -eq 0){$MaintWeekDay = "Sunday"}<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                            if($MaintDay -eq 1){$MaintWeekDay = "Monday"}<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                            if($MaintDay -eq 2){$MaintWeekDay = "Tuesday"}<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                            if($MaintDay -eq 3){$MaintWeekDay = "Wednesday"}<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                            if($MaintDay -eq 4){$MaintWeekDay = "Thursday"}<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                            if($MaintDay -eq 5){$MaintWeekDay = "Friday"}<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                            if($MaintDay -eq 6){$MaintWeekDay = "Saturday"}<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                        $MaintStartHour = $checkMparams[3] -as [int]<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                        $MaintDuration = $checkMparams[4] -as [int]<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                    # validation of basic values<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                        if ($checkMparams[1] -eq '' -or $MaintDuration -eq $null -or ($MaintDay -inotin 0..6) -or ($MaintStartHour -inotin 0..23))<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                        {<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                            WriteLog ("ERROR: config error (noservicecheck:<servicename>:<numeric day of week Sun=0>:<military start hour>:<duration Hrs>) {0}" -f $checkMparams[1])<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                            continue<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                        }<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                    }<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                    <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                        if (((get-date).DayofWeek -eq $MaintWeekDay) -and ((get-date).Hour -eq $MaintStartHour) ) { <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                            if ($script:MaintChecks.ContainsKey($checkMparams[1])) {<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                                $MaintWindowEnd = $script:MaintChecks[$checkMparams[1]].AddHours($MaintDuration)<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                                if ((get-date) -lt $MaintWindowEnd){<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                                    WriteLog (" Maintenance: Skipping Service Check until after $($MaintWindowEnd) for {0}" -f $checkMparams[1])<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                                    continue<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                                }Else{<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                                clear.variable $script:MaintChecks<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                                }<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                            }<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                            else{<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                             WriteLog ("Not seen this NoServiceCheck before, starting Maintenance Window now for {0}" -f $checkMparams[1])<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                             $hourTop = (get-date).Minute<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                             $script:MaintChecks[$checkMparams[1]] = (get-date).AddMinutes(-($hourTop))<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                             continue<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                            }<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                         }<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                    # end of maintenance hold   <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                }<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                WriteLog ("Checking service {0}" -f $checkparams[1])<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">                $winsrv = Get-Service -Name $checkparams[1]<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                if ($winsrv.Status -eq 'Stopped')<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                {<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                    writeLog ("!! Service {0} is stopped" -f $checkparams[1])<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                    if ($script:ServiceChecks.ContainsKey($checkparams[1]))<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                    {<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                        $restarttime = $script:ServiceChecks[$checkparams[1]].AddSeconds($duration)<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                        writeLog "Seen this service before; restart time is $restarttime"<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                        if ($restarttime -lt (get-date))<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                        {<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                            writeLog (" -> Starting service {0}" -f $checkparams[1])<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                            $winsrv.Start()<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                        }<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                    }<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                    else<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                    {<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                        writeLog "Not seen this service before, setting restart time -1 hour"<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                        $script:ServiceChecks[$checkparams[1]] = (get-date).AddHours(-1)<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                    }<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                }<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                elseif ('StartPending', 'Running' -contains $winsrv.Status)<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                {<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                    writeLog "  -Service is running, updating last seen time"<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                    $script:ServiceChecks[$checkparams[1]] = get-date<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                }<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">            }<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">        }<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">    }<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">}<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</div>
</div>
</div>
</div>
</div>
<br>
<hr>
<font face="Arial" color="Gray" size="1"><br>
This message is for the designated recipient only and may contain privileged, proprietary, or otherwise confidential information. If you have received it in error, please notify the sender immediately and delete the original. Any other use of the e-mail by
 you is prohibited. Where allowed by local law, electronic communications with Accenture and its affiliates, including e-mail and instant messaging (including content), may be scanned by our systems for the purposes of information security and assessment of
 internal compliance with Accenture policy. Your privacy is important to us. Accenture uses your personal data only in compliance with data protection laws. For further information on how Accenture processes your personal data, please see our privacy statement
 at https://www.accenture.com/us-en/privacy-policy. <br>
______________________________________________________________________________________<br>
<br>
www.accenture.com<br>
</font>
</body>
</html>