<?xml version="1.0" encoding="utf-8"?>
<wsdl:definitions xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:tns="http://TrackService.TrackRoad.com/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" targetNamespace="http://TrackService.TrackRoad.com/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
  <wsdl:types>
    <s:schema elementFormDefault="qualified" targetNamespace="http://TrackService.TrackRoad.com/">
      <s:element name="Login">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="userName" type="s:string" />
            <s:element minOccurs="0" maxOccurs="1" name="password" type="s:string" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:element name="LoginResponse">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="LoginResult" type="tns:LoginResult" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:complexType name="LoginResult">
        <s:sequence>
          <s:element minOccurs="0" maxOccurs="1" name="Message" type="s:string" />
          <s:element minOccurs="1" maxOccurs="1" name="Status" type="tns:OperationStatus" />
          <s:element minOccurs="0" maxOccurs="1" name="Key" type="s:string" />
        </s:sequence>
      </s:complexType>
      <s:simpleType name="OperationStatus">
        <s:restriction base="s:string">
          <s:enumeration value="None" />
          <s:enumeration value="Success" />
          <s:enumeration value="Failed" />
          <s:enumeration value="SuccessWithErrors" />
        </s:restriction>
      </s:simpleType>
      <s:element name="SessionIDHeader" type="tns:SessionIDHeader" />
      <s:complexType name="SessionIDHeader">
        <s:sequence>
          <s:element minOccurs="0" maxOccurs="1" name="SessionID" type="s:string" />
        </s:sequence>
        <s:anyAttribute />
      </s:complexType>
      <s:element name="Logout">
        <s:complexType />
      </s:element>
      <s:element name="LogoutResponse">
        <s:complexType />
      </s:element>
      <s:element name="CalculateRoutes">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="specification" type="tns:RoutesSpecification" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:complexType name="RoutesSpecification">
        <s:sequence>
          <s:element minOccurs="0" maxOccurs="1" name="Specifications" type="tns:ArrayOfRouteSpecification" />
          <s:element minOccurs="0" maxOccurs="1" name="RoutesOptions" type="tns:RouteOptions" />
        </s:sequence>
      </s:complexType>
      <s:complexType name="ArrayOfRouteSpecification">
        <s:sequence>
          <s:element minOccurs="0" maxOccurs="unbounded" name="RouteSpecification" nillable="true" type="tns:RouteSpecification" />
        </s:sequence>
      </s:complexType>
      <s:complexType name="RouteSpecification">
        <s:sequence>
          <s:element minOccurs="0" maxOccurs="1" name="Locations" type="tns:ArrayOfLocation" />
          <s:element minOccurs="0" maxOccurs="1" name="RouteOptions" type="tns:RouteOptions" />
        </s:sequence>
      </s:complexType>
      <s:complexType name="ArrayOfLocation">
        <s:sequence>
          <s:element minOccurs="0" maxOccurs="unbounded" name="Location" nillable="true" type="tns:Location" />
        </s:sequence>
      </s:complexType>
      <s:complexType name="Location">
        <s:sequence>
          <s:element minOccurs="0" maxOccurs="1" default="None" name="MatchCode" type="tns:MatchCode" />
          <s:element minOccurs="0" maxOccurs="1" name="Name" type="s:string" />
          <s:element minOccurs="0" maxOccurs="1" name="Delivery" type="s:string" />
          <s:element minOccurs="0" maxOccurs="1" default="true" name="DeliveryNonStop" type="s:boolean" />
          <s:element minOccurs="0" maxOccurs="1" default="false" name="KeepSameOrder" type="s:boolean" />
          <s:element minOccurs="0" maxOccurs="1" name="Vehicle" type="s:string" />
          <s:element minOccurs="0" maxOccurs="1" name="Description" type="s:string" />
          <s:element minOccurs="0" maxOccurs="1" name="Phone" type="s:string" />
          <s:element minOccurs="0" maxOccurs="1" name="LatLong" type="tns:LatLong" />
          <s:element minOccurs="0" maxOccurs="1" name="Address" type="tns:Address" />
          <s:element minOccurs="0" maxOccurs="1" default="0" name="Priority" type="s:int" />
          <s:element minOccurs="0" maxOccurs="1" default="0" name="Wait" type="s:int" />
          <s:element minOccurs="0" maxOccurs="1" default="0" name="Volume" type="s:double" />
          <s:element minOccurs="0" maxOccurs="1" default="0" name="Weight" type="s:double" />
          <s:element minOccurs="0" maxOccurs="1" default="0" name="Skids" type="s:int" />
          <s:element minOccurs="0" maxOccurs="1" default="0001-01-01T00:00:00" name="TimeConstraintArrival" type="s:dateTime" />
          <s:element minOccurs="0" maxOccurs="1" default="0001-01-01T00:00:00" name="TimeConstraintDeparture" type="s:dateTime" />
          <s:element minOccurs="0" maxOccurs="1" default="0001-01-01T00:00:00" name="TimeConstraintArrival2" type="s:dateTime" />
          <s:element minOccurs="0" maxOccurs="1" default="0001-01-01T00:00:00" name="TimeConstraintDeparture2" type="s:dateTime" />
          <s:element minOccurs="0" maxOccurs="1" default="0001-01-01T00:00:00" name="TimeEstimatedArrival" type="s:dateTime" />
          <s:element minOccurs="0" maxOccurs="1" default="Midway" name="LocationType" type="tns:LocationType" />
          <s:element minOccurs="0" maxOccurs="1" default="true" name="CanArriveEarly" type="s:boolean" />
          <s:element minOccurs="0" maxOccurs="1" default="0" name="Distance" type="s:double" />
          <s:element minOccurs="0" maxOccurs="1" default="0" name="Time" type="s:int" />
          <s:element minOccurs="0" maxOccurs="1" name="Conditions" type="s:string" />
        </s:sequence>
      </s:complexType>
      <s:simpleType name="MatchCode">
        <s:restriction base="s:string">
          <s:enumeration value="None" />
          <s:enumeration value="Poor" />
          <s:enumeration value="Approx" />
          <s:enumeration value="Good" />
          <s:enumeration value="Exact" />
        </s:restriction>
      </s:simpleType>
      <s:complexType name="LatLong">
        <s:sequence>
          <s:element minOccurs="1" maxOccurs="1" name="Latitude" type="s:double" />
          <s:element minOccurs="1" maxOccurs="1" name="Longitude" type="s:double" />
        </s:sequence>
      </s:complexType>
      <s:complexType name="Address">
        <s:sequence>
          <s:element minOccurs="0" maxOccurs="1" name="Street" type="s:string" />
          <s:element minOccurs="0" maxOccurs="1" name="City" type="s:string" />
          <s:element minOccurs="0" maxOccurs="1" name="State" type="s:string" />
          <s:element minOccurs="0" maxOccurs="1" name="PostalCode" type="s:string" />
          <s:element minOccurs="0" maxOccurs="1" name="Country" type="s:string" />
        </s:sequence>
      </s:complexType>
      <s:simpleType name="LocationType">
        <s:restriction base="s:string">
          <s:enumeration value="Midway" />
          <s:enumeration value="Start" />
          <s:enumeration value="Finish" />
          <s:enumeration value="Delivery" />
          <s:enumeration value="MidwayDrop" />
          <s:enumeration value="Break" />
        </s:restriction>
      </s:simpleType>
      <s:complexType name="RouteOptions">
        <s:sequence>
          <s:element minOccurs="0" maxOccurs="1" default="Bing" name="RoutingService" type="tns:RoutingService" />
          <s:element minOccurs="0" maxOccurs="1" default="Mile" name="DistanceUnit" type="tns:DistanceUnit" />
          <s:element minOccurs="0" maxOccurs="1" default="MinimizeTime" name="RouteOptimize" type="tns:RouteOptimize" />
          <s:element minOccurs="0" maxOccurs="1" default="en-US" name="Culture" type="s:string" />
          <s:element minOccurs="0" maxOccurs="1" name="MapSize" type="tns:MapSize" />
          <s:element minOccurs="0" maxOccurs="1" name="RouteColor" type="tns:RouteColor" />
          <s:element minOccurs="0" maxOccurs="1" name="MapCenter" type="tns:LatLong" />
          <s:element minOccurs="0" maxOccurs="1" default="false" name="HideStops" type="s:boolean" />
          <s:element minOccurs="0" maxOccurs="1" default="0" name="ZoomLevel" type="s:int" />
        </s:sequence>
      </s:complexType>
      <s:simpleType name="RoutingService">
        <s:restriction base="s:string">
          <s:enumeration value="NetRoad" />
          <s:enumeration value="TrackRoad" />
          <s:enumeration value="Bing" />
        </s:restriction>
      </s:simpleType>
      <s:simpleType name="DistanceUnit">
        <s:restriction base="s:string">
          <s:enumeration value="Mile" />
          <s:enumeration value="Kilometer" />
        </s:restriction>
      </s:simpleType>
      <s:simpleType name="RouteOptimize">
        <s:restriction base="s:string">
          <s:enumeration value="MinimizeTime" />
          <s:enumeration value="MinimizeDistance" />
        </s:restriction>
      </s:simpleType>
      <s:complexType name="MapSize">
        <s:sequence>
          <s:element minOccurs="0" maxOccurs="1" default="0" name="Width" type="s:int" />
          <s:element minOccurs="0" maxOccurs="1" default="0" name="Height" type="s:int" />
        </s:sequence>
      </s:complexType>
      <s:complexType name="RouteColor">
        <s:sequence>
          <s:element minOccurs="0" maxOccurs="1" default="179" name="A" type="s:unsignedByte" />
          <s:element minOccurs="0" maxOccurs="1" default="0" name="R" type="s:unsignedByte" />
          <s:element minOccurs="0" maxOccurs="1" default="169" name="G" type="s:unsignedByte" />
          <s:element minOccurs="0" maxOccurs="1" default="235" name="B" type="s:unsignedByte" />
        </s:sequence>
      </s:complexType>
      <s:element name="CalculateRoutesResponse">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="CalculateRoutesResult" type="tns:RoutesResult" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:complexType name="RoutesResult">
        <s:complexContent mixed="false">
          <s:extension base="tns:Result">
            <s:sequence>
              <s:element minOccurs="0" maxOccurs="1" name="Results" type="tns:ArrayOfRouteResult" />
              <s:element minOccurs="0" maxOccurs="1" name="Map" type="s:string" />
            </s:sequence>
          </s:extension>
        </s:complexContent>
      </s:complexType>
      <s:complexType name="Result" abstract="true">
        <s:sequence>
          <s:element minOccurs="0" maxOccurs="1" name="Errors" type="tns:ArrayOfError" />
          <s:element minOccurs="1" maxOccurs="1" name="Status" type="tns:OperationStatus" />
        </s:sequence>
      </s:complexType>
      <s:complexType name="ArrayOfError">
        <s:sequence>
          <s:element minOccurs="0" maxOccurs="unbounded" name="Error" nillable="true" type="tns:Error" />
        </s:sequence>
      </s:complexType>
      <s:complexType name="Error">
        <s:sequence>
          <s:element minOccurs="0" maxOccurs="1" name="Message" type="s:string" />
        </s:sequence>
      </s:complexType>
      <s:complexType name="RouteResult">
        <s:complexContent mixed="false">
          <s:extension base="tns:Result">
            <s:sequence>
              <s:element minOccurs="0" maxOccurs="1" name="Route" type="tns:Route" />
            </s:sequence>
          </s:extension>
        </s:complexContent>
      </s:complexType>
      <s:complexType name="Route">
        <s:sequence>
          <s:element minOccurs="1" maxOccurs="1" name="Distance" type="s:double" />
          <s:element minOccurs="1" maxOccurs="1" name="Time" type="s:int" />
          <s:element minOccurs="0" maxOccurs="1" name="RouteLegs" type="tns:ArrayOfRouteLeg" />
          <s:element minOccurs="0" maxOccurs="1" name="Points" type="tns:ArrayOfLatLong" />
          <s:element minOccurs="0" maxOccurs="1" name="Map" type="s:string" />
        </s:sequence>
      </s:complexType>
      <s:complexType name="ArrayOfRouteLeg">
        <s:sequence>
          <s:element minOccurs="0" maxOccurs="unbounded" name="RouteLeg" nillable="true" type="tns:RouteLeg" />
        </s:sequence>
      </s:complexType>
      <s:complexType name="RouteLeg">
        <s:sequence>
          <s:element minOccurs="1" maxOccurs="1" name="Distance" type="s:double" />
          <s:element minOccurs="1" maxOccurs="1" name="Time" type="s:int" />
          <s:element minOccurs="0" maxOccurs="1" name="Itinerary" type="tns:RouteItinerary" />
          <s:element minOccurs="0" maxOccurs="1" name="Map" type="s:string" />
        </s:sequence>
      </s:complexType>
      <s:complexType name="RouteItinerary">
        <s:sequence>
          <s:element minOccurs="0" maxOccurs="1" name="Items" type="tns:ArrayOfRouteItineraryItem" />
        </s:sequence>
      </s:complexType>
      <s:complexType name="ArrayOfRouteItineraryItem">
        <s:sequence>
          <s:element minOccurs="0" maxOccurs="unbounded" name="RouteItineraryItem" nillable="true" type="tns:RouteItineraryItem" />
        </s:sequence>
      </s:complexType>
      <s:complexType name="RouteItineraryItem">
        <s:sequence>
          <s:element minOccurs="1" maxOccurs="1" name="Distance" type="s:double" />
          <s:element minOccurs="0" maxOccurs="1" name="LatLong" type="tns:LatLong" />
          <s:element minOccurs="0" maxOccurs="1" name="Text" type="s:string" />
          <s:element minOccurs="1" maxOccurs="1" name="Time" type="s:int" />
          <s:element minOccurs="0" maxOccurs="1" name="Warnings" type="tns:ArrayOfRouteWarning" />
          <s:element minOccurs="0" maxOccurs="1" name="Hints" type="tns:ArrayOfRouteHint" />
        </s:sequence>
      </s:complexType>
      <s:complexType name="ArrayOfRouteWarning">
        <s:sequence>
          <s:element minOccurs="0" maxOccurs="unbounded" name="RouteWarning" nillable="true" type="tns:RouteWarning" />
        </s:sequence>
      </s:complexType>
      <s:complexType name="RouteWarning">
        <s:sequence>
          <s:element minOccurs="1" maxOccurs="1" name="Severity" type="tns:RouteWarningSeverity" />
          <s:element minOccurs="0" maxOccurs="1" name="Text" type="s:string" />
        </s:sequence>
      </s:complexType>
      <s:simpleType name="RouteWarningSeverity">
        <s:restriction base="s:string">
          <s:enumeration value="None" />
          <s:enumeration value="LowImpact" />
          <s:enumeration value="Minor" />
          <s:enumeration value="Moderate" />
          <s:enumeration value="Serious" />
        </s:restriction>
      </s:simpleType>
      <s:complexType name="ArrayOfRouteHint">
        <s:sequence>
          <s:element minOccurs="0" maxOccurs="unbounded" name="RouteHint" nillable="true" type="tns:RouteHint" />
        </s:sequence>
      </s:complexType>
      <s:complexType name="RouteHint">
        <s:sequence>
          <s:element minOccurs="1" maxOccurs="1" name="Type" type="tns:RouteHintType" />
          <s:element minOccurs="0" maxOccurs="1" name="Text" type="s:string" />
        </s:sequence>
      </s:complexType>
      <s:simpleType name="RouteHintType">
        <s:restriction base="s:string">
          <s:enumeration value="PreviousIntersection" />
          <s:enumeration value="NextIntersection" />
          <s:enumeration value="Landmark" />
        </s:restriction>
      </s:simpleType>
      <s:complexType name="ArrayOfLatLong">
        <s:sequence>
          <s:element minOccurs="0" maxOccurs="unbounded" name="LatLong" nillable="true" type="tns:LatLong" />
        </s:sequence>
      </s:complexType>
      <s:complexType name="ArrayOfRouteResult">
        <s:sequence>
          <s:element minOccurs="0" maxOccurs="unbounded" name="RouteResult" nillable="true" type="tns:RouteResult" />
        </s:sequence>
      </s:complexType>
      <s:element name="CalculateRoute">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="specification" type="tns:RouteSpecification" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:element name="CalculateRouteResponse">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="CalculateRouteResult" type="tns:RouteResult" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:element name="Dispatch">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="specification" type="tns:DispatchSpecification" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:complexType name="DispatchSpecification">
        <s:sequence>
          <s:element minOccurs="0" maxOccurs="1" default="NetRoad" name="RoutingService" type="tns:RoutingService" />
          <s:element minOccurs="0" maxOccurs="1" default="false" name="IsNeedMatchCode" type="s:boolean" />
          <s:element minOccurs="0" maxOccurs="1" default="0001-01-01T00:00:00" name="CurrentTime" type="s:dateTime" />
          <s:element minOccurs="0" maxOccurs="1" default="Auto" name="DispatchMode" type="tns:DispatchMode" />
          <s:element minOccurs="0" maxOccurs="1" default="4" name="MinimumOptimization" type="s:int" />
          <s:element minOccurs="0" maxOccurs="1" default="Mile" name="DistanceUnit" type="tns:DistanceUnit" />
          <s:element minOccurs="0" maxOccurs="1" default="MinimizeTime" name="RouteOptimize" type="tns:RouteOptimize" />
          <s:element minOccurs="0" maxOccurs="1" name="Vehicles" type="tns:ArrayOfVehicle" />
          <s:element minOccurs="0" maxOccurs="1" name="Locations" type="tns:ArrayOfLocation" />
        </s:sequence>
      </s:complexType>
      <s:simpleType name="DispatchMode">
        <s:restriction base="s:string">
          <s:enumeration value="Auto" />
          <s:enumeration value="EqualStop" />
          <s:enumeration value="SingleRegion" />
          <s:enumeration value="MultipleRegion" />
          <s:enumeration value="EqualHour" />
          <s:enumeration value="EqualDistance" />
          <s:enumeration value="Central" />
          <s:enumeration value="TimeWindow" />
          <s:enumeration value="TimeWindowDepot" />
          <s:enumeration value="Optima" />
          <s:enumeration value="BalanceLocation" />
          <s:enumeration value="BalanceTime" />
          <s:enumeration value="MinimumVehicles" />
        </s:restriction>
      </s:simpleType>
      <s:complexType name="ArrayOfVehicle">
        <s:sequence>
          <s:element minOccurs="0" maxOccurs="unbounded" name="Vehicle" nillable="true" type="tns:Vehicle" />
        </s:sequence>
      </s:complexType>
      <s:complexType name="Vehicle">
        <s:sequence>
          <s:element minOccurs="0" maxOccurs="1" name="Name" type="s:string" />
          <s:element minOccurs="0" maxOccurs="1" name="Email" type="s:string" />
          <s:element minOccurs="0" maxOccurs="1" name="Group" type="s:string" />
          <s:element minOccurs="0" maxOccurs="1" default="0" name="Speed" type="s:int" />
          <s:element minOccurs="0" maxOccurs="1" default="0" name="MaxStops" type="s:int" />
          <s:element minOccurs="0" maxOccurs="1" default="0" name="MaxWeight" type="s:double" />
          <s:element minOccurs="0" maxOccurs="1" default="0" name="MaxSkids" type="s:int" />
          <s:element minOccurs="0" maxOccurs="1" default="0" name="MaxVolume" type="s:double" />
          <s:element minOccurs="0" maxOccurs="1" default="0" name="MaxMinutes" type="s:int" />
          <s:element minOccurs="0" maxOccurs="1" default="0" name="FuelCost" type="s:double" />
          <s:element minOccurs="0" maxOccurs="1" default="false" name="OnTheRoad" type="s:boolean" />
          <s:element minOccurs="0" maxOccurs="1" default="0001-01-01T00:00:00" name="Tin" type="s:dateTime" />
          <s:element minOccurs="0" maxOccurs="1" default="0001-01-01T00:00:00" name="Tout" type="s:dateTime" />
          <s:element minOccurs="0" maxOccurs="1" name="StartLocation" type="tns:Location" />
          <s:element minOccurs="0" maxOccurs="1" name="FinishLocation" type="tns:Location" />
          <s:element minOccurs="0" maxOccurs="1" name="Roles" type="s:string" />
          <s:element minOccurs="0" maxOccurs="1" name="Shapes" type="tns:ArrayOfShape" />
          <s:element minOccurs="0" maxOccurs="1" default="None" name="TransportType" type="tns:TransportType" />
          <s:element minOccurs="0" maxOccurs="1" default="false" name="ExcludeTolls" type="s:boolean" />
          <s:element minOccurs="0" maxOccurs="1" default="false" name="ExcludeTunnels" type="s:boolean" />
          <s:element minOccurs="0" maxOccurs="1" default="false" name="ExcludeCashOnlyTolls" type="s:boolean" />
          <s:element minOccurs="0" maxOccurs="1" default="false" name="ExcludeHighways" type="s:boolean" />
          <s:element minOccurs="0" maxOccurs="1" default="false" name="ExcludeUnpaved" type="s:boolean" />
          <s:element minOccurs="0" maxOccurs="1" default="false" name="UseTruckRoute" type="s:boolean" />
          <s:element minOccurs="0" maxOccurs="1" default="0" name="Width" type="s:float" />
          <s:element minOccurs="0" maxOccurs="1" default="0" name="Height" type="s:float" />
          <s:element minOccurs="0" maxOccurs="1" default="0" name="Length" type="s:float" />
          <s:element minOccurs="0" maxOccurs="1" default="0" name="Weight" type="s:float" />
          <s:element minOccurs="0" maxOccurs="1" default="0" name="AxleLoad" type="s:float" />
          <s:element minOccurs="0" maxOccurs="1" default="0" name="AxleCount" type="s:short" />
          <s:element minOccurs="0" maxOccurs="1" default="false" name="UseTrails" type="s:boolean" />
          <s:element minOccurs="0" maxOccurs="1" default="false" name="UseFerry" type="s:boolean" />
          <s:element minOccurs="0" maxOccurs="1" default="false" name="UseLivingStreets" type="s:boolean" />
          <s:element minOccurs="0" maxOccurs="1" default="false" name="UseTracks" type="s:boolean" />
          <s:element minOccurs="0" maxOccurs="1" default="false" name="UseHills" type="s:boolean" />
          <s:element minOccurs="0" maxOccurs="1" default="false" name="UseLit" type="s:boolean" />
          <s:element minOccurs="0" maxOccurs="1" default="0" name="WalkingSpeed" type="s:float" />
          <s:element minOccurs="0" maxOccurs="1" default="false" name="UsePrimary" type="s:boolean" />
          <s:element minOccurs="0" maxOccurs="1" default="false" name="UseRoads" type="s:boolean" />
          <s:element minOccurs="0" maxOccurs="1" default="false" name="AvoidBadSurfaces" type="s:boolean" />
        </s:sequence>
      </s:complexType>
      <s:complexType name="ArrayOfShape">
        <s:sequence>
          <s:element minOccurs="0" maxOccurs="unbounded" name="Shape" nillable="true" type="tns:Shape" />
        </s:sequence>
      </s:complexType>
      <s:complexType name="Shape">
        <s:sequence>
          <s:element minOccurs="0" maxOccurs="1" name="Points" type="tns:ArrayOfLatLong" />
          <s:element minOccurs="0" maxOccurs="1" default="DoNotEnter" name="Restriction" type="tns:Restriction" />
        </s:sequence>
      </s:complexType>
      <s:simpleType name="Restriction">
        <s:restriction base="s:string">
          <s:enumeration value="DoNotEnter" />
          <s:enumeration value="DoNotExit" />
        </s:restriction>
      </s:simpleType>
      <s:simpleType name="TransportType">
        <s:restriction base="s:string">
          <s:enumeration value="None" />
          <s:enumeration value="Car" />
          <s:enumeration value="Truck" />
          <s:enumeration value="Bus" />
          <s:enumeration value="Motorcycle" />
          <s:enumeration value="Pedestrian" />
          <s:enumeration value="MotorScooter" />
          <s:enumeration value="Bicycle" />
        </s:restriction>
      </s:simpleType>
      <s:element name="DispatchResponse">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="DispatchResult" type="tns:DispatchResult" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:complexType name="DispatchResult">
        <s:complexContent mixed="false">
          <s:extension base="tns:Result">
            <s:sequence>
              <s:element minOccurs="0" maxOccurs="1" name="Items" type="tns:ArrayOfVehicleItem" />
            </s:sequence>
          </s:extension>
        </s:complexContent>
      </s:complexType>
      <s:complexType name="ArrayOfVehicleItem">
        <s:sequence>
          <s:element minOccurs="0" maxOccurs="unbounded" name="VehicleItem" nillable="true" type="tns:VehicleItem" />
        </s:sequence>
      </s:complexType>
      <s:complexType name="VehicleItem">
        <s:sequence>
          <s:element minOccurs="0" maxOccurs="1" name="Vehicle" type="tns:Vehicle" />
          <s:element minOccurs="0" maxOccurs="1" name="Locations" type="tns:ArrayOfLocation" />
        </s:sequence>
      </s:complexType>
      <s:element name="Geocode">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="specification" type="tns:GeocodeSpecification" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:complexType name="GeocodeSpecification">
        <s:sequence>
          <s:element minOccurs="0" maxOccurs="1" default="false" name="IsNeedMatchCode" type="s:boolean" />
          <s:element minOccurs="0" maxOccurs="1" name="Addresses" type="tns:ArrayOfAddress" />
        </s:sequence>
      </s:complexType>
      <s:complexType name="ArrayOfAddress">
        <s:sequence>
          <s:element minOccurs="0" maxOccurs="unbounded" name="Address" nillable="true" type="tns:Address" />
        </s:sequence>
      </s:complexType>
      <s:element name="GeocodeResponse">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="GeocodeResult" type="tns:GeocodeResult" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:complexType name="GeocodeResult">
        <s:complexContent mixed="false">
          <s:extension base="tns:Result">
            <s:sequence>
              <s:element minOccurs="0" maxOccurs="1" name="Items" type="tns:ArrayOfGeocodeItem" />
            </s:sequence>
          </s:extension>
        </s:complexContent>
      </s:complexType>
      <s:complexType name="ArrayOfGeocodeItem">
        <s:sequence>
          <s:element minOccurs="0" maxOccurs="unbounded" name="GeocodeItem" nillable="true" type="tns:GeocodeItem" />
        </s:sequence>
      </s:complexType>
      <s:complexType name="GeocodeItem">
        <s:sequence>
          <s:element minOccurs="0" maxOccurs="1" name="Address" type="tns:Address" />
          <s:element minOccurs="0" maxOccurs="1" name="Locations" type="tns:ArrayOfLocation" />
        </s:sequence>
      </s:complexType>
      <s:element name="CalculateDistance">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="specification" type="tns:DistanceSpecification" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:complexType name="DistanceSpecification">
        <s:sequence>
          <s:element minOccurs="0" maxOccurs="1" name="StartLocation" type="tns:Location" />
          <s:element minOccurs="0" maxOccurs="1" name="FinishLocation" type="tns:Location" />
          <s:element minOccurs="1" maxOccurs="1" name="DistanceUnit" type="tns:DistanceUnit" />
          <s:element minOccurs="0" maxOccurs="1" default="MinimizeTime" name="RouteOptimize" type="tns:RouteOptimize" />
        </s:sequence>
      </s:complexType>
      <s:element name="CalculateDistanceResponse">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="CalculateDistanceResult" type="tns:DistanceResult" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:complexType name="DistanceResult">
        <s:complexContent mixed="false">
          <s:extension base="tns:Result">
            <s:sequence>
              <s:element minOccurs="1" maxOccurs="1" name="StartLocationMatchCode" type="tns:MatchCode" />
              <s:element minOccurs="1" maxOccurs="1" name="FinishLocationMatchCode" type="tns:MatchCode" />
              <s:element minOccurs="1" maxOccurs="1" name="Distance" type="s:double" />
              <s:element minOccurs="1" maxOccurs="1" name="Time" type="s:int" />
            </s:sequence>
          </s:extension>
        </s:complexContent>
      </s:complexType>
      <s:element name="CreditRemaining">
        <s:complexType />
      </s:element>
      <s:element name="CreditRemainingResponse">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="CreditRemainingResult" type="tns:CreditResult" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:complexType name="CreditResult">
        <s:complexContent mixed="false">
          <s:extension base="tns:Result">
            <s:sequence>
              <s:element minOccurs="1" maxOccurs="1" name="Credit" type="s:int" />
            </s:sequence>
          </s:extension>
        </s:complexContent>
      </s:complexType>
      <s:element name="GetRouteList">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="specification" type="tns:RouteListSpecification" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:complexType name="RouteListSpecification">
        <s:sequence>
          <s:element minOccurs="0" maxOccurs="1" default="0001-01-01T00:00:00" name="FromDate" type="s:dateTime" />
          <s:element minOccurs="0" maxOccurs="1" default="0001-01-01T00:00:00" name="ToDate" type="s:dateTime" />
          <s:element minOccurs="0" maxOccurs="1" name="Owner" type="s:string" />
          <s:element minOccurs="0" maxOccurs="1" name="RouteName" type="s:string" />
        </s:sequence>
      </s:complexType>
      <s:element name="GetRouteListResponse">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="GetRouteListResult" type="tns:RouteListResult" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:complexType name="RouteListResult">
        <s:complexContent mixed="false">
          <s:extension base="tns:Result">
            <s:sequence>
              <s:element minOccurs="0" maxOccurs="1" name="Routes" type="tns:ArrayOfRouteListItem" />
            </s:sequence>
          </s:extension>
        </s:complexContent>
      </s:complexType>
      <s:complexType name="ArrayOfRouteListItem">
        <s:sequence>
          <s:element minOccurs="0" maxOccurs="unbounded" name="RouteListItem" nillable="true" type="tns:RouteListItem" />
        </s:sequence>
      </s:complexType>
      <s:complexType name="RouteListItem">
        <s:sequence>
          <s:element minOccurs="1" maxOccurs="1" name="RouteID" type="s:long" />
          <s:element minOccurs="0" maxOccurs="1" name="RouteName" type="s:string" />
          <s:element minOccurs="1" maxOccurs="1" name="Distance" type="s:double" />
          <s:element minOccurs="1" maxOccurs="1" name="Time" type="s:int" />
          <s:element minOccurs="0" maxOccurs="1" name="Owner" type="s:string" />
          <s:element minOccurs="0" maxOccurs="1" default="0001-01-01T00:00:00" name="DateCreated" type="s:dateTime" />
        </s:sequence>
      </s:complexType>
      <s:element name="GetRoute">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="specification" type="tns:GetRouteSpecification" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:complexType name="GetRouteSpecification">
        <s:sequence>
          <s:element minOccurs="1" maxOccurs="1" name="RouteID" type="s:long" />
        </s:sequence>
      </s:complexType>
      <s:element name="GetRouteResponse">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="GetRouteResult" type="tns:DispatchResult" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:element name="GetTrack">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="specification" type="tns:TrackSpecification" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:complexType name="TrackSpecification">
        <s:sequence>
          <s:element minOccurs="0" maxOccurs="1" name="Account" type="s:string" />
          <s:element minOccurs="1" maxOccurs="1" name="FromDate" type="s:dateTime" />
          <s:element minOccurs="1" maxOccurs="1" name="ToDate" type="s:dateTime" />
        </s:sequence>
      </s:complexType>
      <s:element name="GetTrackResponse">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="GetTrackResult" type="tns:TrackResult" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:complexType name="TrackResult">
        <s:complexContent mixed="false">
          <s:extension base="tns:Result">
            <s:sequence>
              <s:element minOccurs="0" maxOccurs="1" name="TrackPoints" type="tns:ArrayOfTrackPoint" />
            </s:sequence>
          </s:extension>
        </s:complexContent>
      </s:complexType>
      <s:complexType name="ArrayOfTrackPoint">
        <s:sequence>
          <s:element minOccurs="0" maxOccurs="unbounded" name="TrackPoint" nillable="true" type="tns:TrackPoint" />
        </s:sequence>
      </s:complexType>
      <s:complexType name="TrackPoint">
        <s:complexContent mixed="false">
          <s:extension base="tns:LatLong">
            <s:sequence>
              <s:element minOccurs="1" maxOccurs="1" name="TimeStamp" type="s:dateTime" />
            </s:sequence>
          </s:extension>
        </s:complexContent>
      </s:complexType>
      <s:element name="LoginResult" nillable="true" type="tns:LoginResult" />
      <s:element name="CreditResult" nillable="true" type="tns:CreditResult" />
    </s:schema>
  </wsdl:types>
  <wsdl:message name="LoginSoapIn">
    <wsdl:part name="parameters" element="tns:Login" />
  </wsdl:message>
  <wsdl:message name="LoginSoapOut">
    <wsdl:part name="parameters" element="tns:LoginResponse" />
  </wsdl:message>
  <wsdl:message name="LoginSessionIDHeader">
    <wsdl:part name="SessionIDHeader" element="tns:SessionIDHeader" />
  </wsdl:message>
  <wsdl:message name="LogoutSoapIn">
    <wsdl:part name="parameters" element="tns:Logout" />
  </wsdl:message>
  <wsdl:message name="LogoutSoapOut">
    <wsdl:part name="parameters" element="tns:LogoutResponse" />
  </wsdl:message>
  <wsdl:message name="LogoutSessionIDHeader">
    <wsdl:part name="SessionIDHeader" element="tns:SessionIDHeader" />
  </wsdl:message>
  <wsdl:message name="CalculateRoutesSoapIn">
    <wsdl:part name="parameters" element="tns:CalculateRoutes" />
  </wsdl:message>
  <wsdl:message name="CalculateRoutesSoapOut">
    <wsdl:part name="parameters" element="tns:CalculateRoutesResponse" />
  </wsdl:message>
  <wsdl:message name="CalculateRoutesSessionIDHeader">
    <wsdl:part name="SessionIDHeader" element="tns:SessionIDHeader" />
  </wsdl:message>
  <wsdl:message name="CalculateRouteSoapIn">
    <wsdl:part name="parameters" element="tns:CalculateRoute" />
  </wsdl:message>
  <wsdl:message name="CalculateRouteSoapOut">
    <wsdl:part name="parameters" element="tns:CalculateRouteResponse" />
  </wsdl:message>
  <wsdl:message name="CalculateRouteSessionIDHeader">
    <wsdl:part name="SessionIDHeader" element="tns:SessionIDHeader" />
  </wsdl:message>
  <wsdl:message name="DispatchSoapIn">
    <wsdl:part name="parameters" element="tns:Dispatch" />
  </wsdl:message>
  <wsdl:message name="DispatchSoapOut">
    <wsdl:part name="parameters" element="tns:DispatchResponse" />
  </wsdl:message>
  <wsdl:message name="DispatchSessionIDHeader">
    <wsdl:part name="SessionIDHeader" element="tns:SessionIDHeader" />
  </wsdl:message>
  <wsdl:message name="GeocodeSoapIn">
    <wsdl:part name="parameters" element="tns:Geocode" />
  </wsdl:message>
  <wsdl:message name="GeocodeSoapOut">
    <wsdl:part name="parameters" element="tns:GeocodeResponse" />
  </wsdl:message>
  <wsdl:message name="GeocodeSessionIDHeader">
    <wsdl:part name="SessionIDHeader" element="tns:SessionIDHeader" />
  </wsdl:message>
  <wsdl:message name="CalculateDistanceSoapIn">
    <wsdl:part name="parameters" element="tns:CalculateDistance" />
  </wsdl:message>
  <wsdl:message name="CalculateDistanceSoapOut">
    <wsdl:part name="parameters" element="tns:CalculateDistanceResponse" />
  </wsdl:message>
  <wsdl:message name="CalculateDistanceSessionIDHeader">
    <wsdl:part name="SessionIDHeader" element="tns:SessionIDHeader" />
  </wsdl:message>
  <wsdl:message name="CreditRemainingSoapIn">
    <wsdl:part name="parameters" element="tns:CreditRemaining" />
  </wsdl:message>
  <wsdl:message name="CreditRemainingSoapOut">
    <wsdl:part name="parameters" element="tns:CreditRemainingResponse" />
  </wsdl:message>
  <wsdl:message name="CreditRemainingSessionIDHeader">
    <wsdl:part name="SessionIDHeader" element="tns:SessionIDHeader" />
  </wsdl:message>
  <wsdl:message name="GetRouteListSoapIn">
    <wsdl:part name="parameters" element="tns:GetRouteList" />
  </wsdl:message>
  <wsdl:message name="GetRouteListSoapOut">
    <wsdl:part name="parameters" element="tns:GetRouteListResponse" />
  </wsdl:message>
  <wsdl:message name="GetRouteListSessionIDHeader">
    <wsdl:part name="SessionIDHeader" element="tns:SessionIDHeader" />
  </wsdl:message>
  <wsdl:message name="GetRouteSoapIn">
    <wsdl:part name="parameters" element="tns:GetRoute" />
  </wsdl:message>
  <wsdl:message name="GetRouteSoapOut">
    <wsdl:part name="parameters" element="tns:GetRouteResponse" />
  </wsdl:message>
  <wsdl:message name="GetRouteSessionIDHeader">
    <wsdl:part name="SessionIDHeader" element="tns:SessionIDHeader" />
  </wsdl:message>
  <wsdl:message name="GetTrackSoapIn">
    <wsdl:part name="parameters" element="tns:GetTrack" />
  </wsdl:message>
  <wsdl:message name="GetTrackSoapOut">
    <wsdl:part name="parameters" element="tns:GetTrackResponse" />
  </wsdl:message>
  <wsdl:message name="GetTrackSessionIDHeader">
    <wsdl:part name="SessionIDHeader" element="tns:SessionIDHeader" />
  </wsdl:message>
  <wsdl:message name="LoginHttpGetIn">
    <wsdl:part name="userName" type="s:string" />
    <wsdl:part name="password" type="s:string" />
  </wsdl:message>
  <wsdl:message name="LoginHttpGetOut">
    <wsdl:part name="Body" element="tns:LoginResult" />
  </wsdl:message>
  <wsdl:message name="LogoutHttpGetIn" />
  <wsdl:message name="LogoutHttpGetOut" />
  <wsdl:message name="CreditRemainingHttpGetIn" />
  <wsdl:message name="CreditRemainingHttpGetOut">
    <wsdl:part name="Body" element="tns:CreditResult" />
  </wsdl:message>
  <wsdl:message name="LoginHttpPostIn">
    <wsdl:part name="userName" type="s:string" />
    <wsdl:part name="password" type="s:string" />
  </wsdl:message>
  <wsdl:message name="LoginHttpPostOut">
    <wsdl:part name="Body" element="tns:LoginResult" />
  </wsdl:message>
  <wsdl:message name="LogoutHttpPostIn" />
  <wsdl:message name="LogoutHttpPostOut" />
  <wsdl:message name="CreditRemainingHttpPostIn" />
  <wsdl:message name="CreditRemainingHttpPostOut">
    <wsdl:part name="Body" element="tns:CreditResult" />
  </wsdl:message>
  <wsdl:portType name="TrackServiceSoap">
    <wsdl:operation name="Login">
      <wsdl:input message="tns:LoginSoapIn" />
      <wsdl:output message="tns:LoginSoapOut" />
    </wsdl:operation>
    <wsdl:operation name="Logout">
      <wsdl:input message="tns:LogoutSoapIn" />
      <wsdl:output message="tns:LogoutSoapOut" />
    </wsdl:operation>
    <wsdl:operation name="CalculateRoutes">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Multiple route turn-by-turn directions and route maps. An overal map for all routes is also included.</wsdl:documentation>
      <wsdl:input message="tns:CalculateRoutesSoapIn" />
      <wsdl:output message="tns:CalculateRoutesSoapOut" />
    </wsdl:operation>
    <wsdl:operation name="CalculateRoute">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Turn-by-turn directions and route maps for a single route.</wsdl:documentation>
      <wsdl:input message="tns:CalculateRouteSoapIn" />
      <wsdl:output message="tns:CalculateRouteSoapOut" />
    </wsdl:operation>
    <wsdl:operation name="Dispatch">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Dispatch &amp; optimize 1000's of stops with multiple vehicles.</wsdl:documentation>
      <wsdl:input message="tns:DispatchSoapIn" />
      <wsdl:output message="tns:DispatchSoapOut" />
    </wsdl:operation>
    <wsdl:operation name="Geocode">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Accepts a list of locations and geocodes them. 
                            The location object can contain name, street, city, state, zip, country. 
                            It returns back a list of stops with lat/lon.</wsdl:documentation>
      <wsdl:input message="tns:GeocodeSoapIn" />
      <wsdl:output message="tns:GeocodeSoapOut" />
    </wsdl:operation>
    <wsdl:operation name="CalculateDistance">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Calculate Distance. This method returns driving distance from point A to point B.</wsdl:documentation>
      <wsdl:input message="tns:CalculateDistanceSoapIn" />
      <wsdl:output message="tns:CalculateDistanceSoapOut" />
    </wsdl:operation>
    <wsdl:operation name="CreditRemaining">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Credit Remaining</wsdl:documentation>
      <wsdl:input message="tns:CreditRemainingSoapIn" />
      <wsdl:output message="tns:CreditRemainingSoapOut" />
    </wsdl:operation>
    <wsdl:operation name="GetRouteList">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Get Route List</wsdl:documentation>
      <wsdl:input message="tns:GetRouteListSoapIn" />
      <wsdl:output message="tns:GetRouteListSoapOut" />
    </wsdl:operation>
    <wsdl:operation name="GetRoute">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Get Route</wsdl:documentation>
      <wsdl:input message="tns:GetRouteSoapIn" />
      <wsdl:output message="tns:GetRouteSoapOut" />
    </wsdl:operation>
    <wsdl:operation name="GetTrack">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Accepts FromDate and ToDate (dates must be in UTC time zone). Returns an array of GPS coordinates with time stamp (time stamp in UTC) for specified date range.</wsdl:documentation>
      <wsdl:input message="tns:GetTrackSoapIn" />
      <wsdl:output message="tns:GetTrackSoapOut" />
    </wsdl:operation>
  </wsdl:portType>
  <wsdl:portType name="TrackServiceHttpGet">
    <wsdl:operation name="Login">
      <wsdl:input message="tns:LoginHttpGetIn" />
      <wsdl:output message="tns:LoginHttpGetOut" />
    </wsdl:operation>
    <wsdl:operation name="Logout">
      <wsdl:input message="tns:LogoutHttpGetIn" />
      <wsdl:output message="tns:LogoutHttpGetOut" />
    </wsdl:operation>
    <wsdl:operation name="CreditRemaining">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Credit Remaining</wsdl:documentation>
      <wsdl:input message="tns:CreditRemainingHttpGetIn" />
      <wsdl:output message="tns:CreditRemainingHttpGetOut" />
    </wsdl:operation>
  </wsdl:portType>
  <wsdl:portType name="TrackServiceHttpPost">
    <wsdl:operation name="Login">
      <wsdl:input message="tns:LoginHttpPostIn" />
      <wsdl:output message="tns:LoginHttpPostOut" />
    </wsdl:operation>
    <wsdl:operation name="Logout">
      <wsdl:input message="tns:LogoutHttpPostIn" />
      <wsdl:output message="tns:LogoutHttpPostOut" />
    </wsdl:operation>
    <wsdl:operation name="CreditRemaining">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Credit Remaining</wsdl:documentation>
      <wsdl:input message="tns:CreditRemainingHttpPostIn" />
      <wsdl:output message="tns:CreditRemainingHttpPostOut" />
    </wsdl:operation>
  </wsdl:portType>
  <wsdl:binding name="TrackServiceSoap" type="tns:TrackServiceSoap">
    <soap:binding transport="http://schemas.xmlsoap.org/soap/http" />
    <wsdl:operation name="Login">
      <soap:operation soapAction="http://TrackService.TrackRoad.com/Login" style="document" />
      <wsdl:input>
        <soap:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" />
        <soap:header message="tns:LoginSessionIDHeader" part="SessionIDHeader" use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="Logout">
      <soap:operation soapAction="http://TrackService.TrackRoad.com/Logout" style="document" />
      <wsdl:input>
        <soap:body use="literal" />
        <soap:header message="tns:LogoutSessionIDHeader" part="SessionIDHeader" use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="CalculateRoutes">
      <soap:operation soapAction="http://TrackService.TrackRoad.com/CalculateRoutes" style="document" />
      <wsdl:input>
        <soap:body use="literal" />
        <soap:header message="tns:CalculateRoutesSessionIDHeader" part="SessionIDHeader" use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="CalculateRoute">
      <soap:operation soapAction="http://TrackService.TrackRoad.com/CalculateRoute" style="document" />
      <wsdl:input>
        <soap:body use="literal" />
        <soap:header message="tns:CalculateRouteSessionIDHeader" part="SessionIDHeader" use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="Dispatch">
      <soap:operation soapAction="http://TrackService.TrackRoad.com/Dispatch" style="document" />
      <wsdl:input>
        <soap:body use="literal" />
        <soap:header message="tns:DispatchSessionIDHeader" part="SessionIDHeader" use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="Geocode">
      <soap:operation soapAction="http://TrackService.TrackRoad.com/Geocode" style="document" />
      <wsdl:input>
        <soap:body use="literal" />
        <soap:header message="tns:GeocodeSessionIDHeader" part="SessionIDHeader" use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="CalculateDistance">
      <soap:operation soapAction="http://TrackService.TrackRoad.com/CalculateDistance" style="document" />
      <wsdl:input>
        <soap:body use="literal" />
        <soap:header message="tns:CalculateDistanceSessionIDHeader" part="SessionIDHeader" use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="CreditRemaining">
      <soap:operation soapAction="http://TrackService.TrackRoad.com/CreditRemaining" style="document" />
      <wsdl:input>
        <soap:body use="literal" />
        <soap:header message="tns:CreditRemainingSessionIDHeader" part="SessionIDHeader" use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="GetRouteList">
      <soap:operation soapAction="http://TrackService.TrackRoad.com/GetRouteList" style="document" />
      <wsdl:input>
        <soap:body use="literal" />
        <soap:header message="tns:GetRouteListSessionIDHeader" part="SessionIDHeader" use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="GetRoute">
      <soap:operation soapAction="http://TrackService.TrackRoad.com/GetRoute" style="document" />
      <wsdl:input>
        <soap:body use="literal" />
        <soap:header message="tns:GetRouteSessionIDHeader" part="SessionIDHeader" use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="GetTrack">
      <soap:operation soapAction="http://TrackService.TrackRoad.com/GetTrack" style="document" />
      <wsdl:input>
        <soap:body use="literal" />
        <soap:header message="tns:GetTrackSessionIDHeader" part="SessionIDHeader" use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
  </wsdl:binding>
  <wsdl:binding name="TrackServiceSoap12" type="tns:TrackServiceSoap">
    <soap12:binding transport="http://schemas.xmlsoap.org/soap/http" />
    <wsdl:operation name="Login">
      <soap12:operation soapAction="http://TrackService.TrackRoad.com/Login" style="document" />
      <wsdl:input>
        <soap12:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap12:body use="literal" />
        <soap12:header message="tns:LoginSessionIDHeader" part="SessionIDHeader" use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="Logout">
      <soap12:operation soapAction="http://TrackService.TrackRoad.com/Logout" style="document" />
      <wsdl:input>
        <soap12:body use="literal" />
        <soap12:header message="tns:LogoutSessionIDHeader" part="SessionIDHeader" use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap12:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="CalculateRoutes">
      <soap12:operation soapAction="http://TrackService.TrackRoad.com/CalculateRoutes" style="document" />
      <wsdl:input>
        <soap12:body use="literal" />
        <soap12:header message="tns:CalculateRoutesSessionIDHeader" part="SessionIDHeader" use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap12:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="CalculateRoute">
      <soap12:operation soapAction="http://TrackService.TrackRoad.com/CalculateRoute" style="document" />
      <wsdl:input>
        <soap12:body use="literal" />
        <soap12:header message="tns:CalculateRouteSessionIDHeader" part="SessionIDHeader" use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap12:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="Dispatch">
      <soap12:operation soapAction="http://TrackService.TrackRoad.com/Dispatch" style="document" />
      <wsdl:input>
        <soap12:body use="literal" />
        <soap12:header message="tns:DispatchSessionIDHeader" part="SessionIDHeader" use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap12:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="Geocode">
      <soap12:operation soapAction="http://TrackService.TrackRoad.com/Geocode" style="document" />
      <wsdl:input>
        <soap12:body use="literal" />
        <soap12:header message="tns:GeocodeSessionIDHeader" part="SessionIDHeader" use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap12:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="CalculateDistance">
      <soap12:operation soapAction="http://TrackService.TrackRoad.com/CalculateDistance" style="document" />
      <wsdl:input>
        <soap12:body use="literal" />
        <soap12:header message="tns:CalculateDistanceSessionIDHeader" part="SessionIDHeader" use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap12:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="CreditRemaining">
      <soap12:operation soapAction="http://TrackService.TrackRoad.com/CreditRemaining" style="document" />
      <wsdl:input>
        <soap12:body use="literal" />
        <soap12:header message="tns:CreditRemainingSessionIDHeader" part="SessionIDHeader" use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap12:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="GetRouteList">
      <soap12:operation soapAction="http://TrackService.TrackRoad.com/GetRouteList" style="document" />
      <wsdl:input>
        <soap12:body use="literal" />
        <soap12:header message="tns:GetRouteListSessionIDHeader" part="SessionIDHeader" use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap12:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="GetRoute">
      <soap12:operation soapAction="http://TrackService.TrackRoad.com/GetRoute" style="document" />
      <wsdl:input>
        <soap12:body use="literal" />
        <soap12:header message="tns:GetRouteSessionIDHeader" part="SessionIDHeader" use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap12:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="GetTrack">
      <soap12:operation soapAction="http://TrackService.TrackRoad.com/GetTrack" style="document" />
      <wsdl:input>
        <soap12:body use="literal" />
        <soap12:header message="tns:GetTrackSessionIDHeader" part="SessionIDHeader" use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap12:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
  </wsdl:binding>
  <wsdl:binding name="TrackServiceHttpGet" type="tns:TrackServiceHttpGet">
    <http:binding verb="GET" />
    <wsdl:operation name="Login">
      <http:operation location="/Login" />
      <wsdl:input>
        <http:urlEncoded />
      </wsdl:input>
      <wsdl:output>
        <mime:mimeXml part="Body" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="Logout">
      <http:operation location="/Logout" />
      <wsdl:input>
        <http:urlEncoded />
      </wsdl:input>
      <wsdl:output />
    </wsdl:operation>
    <wsdl:operation name="CreditRemaining">
      <http:operation location="/CreditRemaining" />
      <wsdl:input>
        <http:urlEncoded />
      </wsdl:input>
      <wsdl:output>
        <mime:mimeXml part="Body" />
      </wsdl:output>
    </wsdl:operation>
  </wsdl:binding>
  <wsdl:binding name="TrackServiceHttpPost" type="tns:TrackServiceHttpPost">
    <http:binding verb="POST" />
    <wsdl:operation name="Login">
      <http:operation location="/Login" />
      <wsdl:input>
        <mime:content type="application/x-www-form-urlencoded" />
      </wsdl:input>
      <wsdl:output>
        <mime:mimeXml part="Body" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="Logout">
      <http:operation location="/Logout" />
      <wsdl:input>
        <mime:content type="application/x-www-form-urlencoded" />
      </wsdl:input>
      <wsdl:output />
    </wsdl:operation>
    <wsdl:operation name="CreditRemaining">
      <http:operation location="/CreditRemaining" />
      <wsdl:input>
        <mime:content type="application/x-www-form-urlencoded" />
      </wsdl:input>
      <wsdl:output>
        <mime:mimeXml part="Body" />
      </wsdl:output>
    </wsdl:operation>
  </wsdl:binding>
  <wsdl:service name="TrackService">
    <wsdl:port name="TrackServiceSoap" binding="tns:TrackServiceSoap">
      <soap:address location="http://ts6.trackroad.com/TrackService.asmx" />
    </wsdl:port>
    <wsdl:port name="TrackServiceSoap12" binding="tns:TrackServiceSoap12">
      <soap12:address location="http://ts6.trackroad.com/TrackService.asmx" />
    </wsdl:port>
    <wsdl:port name="TrackServiceHttpGet" binding="tns:TrackServiceHttpGet">
      <http:address location="http://ts6.trackroad.com/TrackService.asmx" />
    </wsdl:port>
    <wsdl:port name="TrackServiceHttpPost" binding="tns:TrackServiceHttpPost">
      <http:address location="http://ts6.trackroad.com/TrackService.asmx" />
    </wsdl:port>
  </wsdl:service>
</wsdl:definitions>