text:
#ifndef NAVSERVERCOMENUMS_H
#define NAVSERVERCOMENUMS_H
namespace isab{
   namespace NavServerComEnums{
      /* These values are the ones used between the server and */
      /* the navigator and should not be confused with the */
      /* internal values or the values used between navigator */
      /* and PDA. */
      enum SearchType {
         SEARCH_TYPE_NORMAL = 0,
         SEARCH_TYPE_ROUTE,
      };

      /// Used in search requests to specify what kind of
      /// overviewmatches we want
      enum LocationSearchType{
         /// A municipal.
         SEARCH_MUNICIPAL = 0x20,
         /// A built up area.
         SEARCH_BUILT_UP_AREA = 0x40,
         /// A part of a city.
         SEARCH_CITY_PART = 0x80,
         /// A zip code area.
         SEARCH_ZIP_CODE = 0x100,
         /// A named zip area.
         SEARCH_ZIP_AREA = 0x200,
      };

      /// Used in search requests to specify what kind of matches we want.
      enum MatchSearchType{
         /// A street.
         SEARCH_STREET = 0x01,
         /// A point of interest.
         SEARCH_POI = 0x02,
         /// A category, expand to get categories or companies if leaf
         /// of category tree.
         SEARCH_CATEGORY = 0x04,
         /// A different type of item. Currently parks, lakes and some more.
         SEARCH_MISC = 0x08,
      };

      /// Generate route for what?
     enum VehicleType {
         /// Passenger car.
         passengerCar           = 0x01,
         // Pedestrian.
         pedestrian             = 0x02,
         /// Emergency vehicle.
         emergencyVehicle       = 0x03,
         /// Taxi.
         taxi                   = 0x04,
         /// Public bus.
         publicBus              = 0x05,
         // Delivery truck.
         deliveryTruck          = 0x06,
         /// Transport truck.
         transportTruck         = 0x07,
         /// Car with more than 2 passengers.
         highOccupancyVehicle   = 0x08,
         /// Bicycle.
         bicycle                = 0x09,
         /// Public transportation.
         publicTransportation   = 0x0a,
         /// invalid, let the server decide.
         invalidVehicleType     = 0xff
      };

      /// Optimize route for what?
      enum RouteCostType {
         /// DISTANCE, optimize length of route.
         DISTANCE = 0,
         /// TIME, optimize time of route.
         TIME = 1,
         /**
          * TIME_WITH_DISTURBANCES, optimize time of route with
          * disturbances.
          */
         TIME_WITH_DISTURBANCES = 2,
         ///Invalid, let the server decide.
         INAVLID = 0xff
      };

      /// How to handle toll roads
      enum RouteTollRoads {
         TollRoadsAllow = 0,
         TollRoadsDeny = 1,
      };
      /// How to handle highways
      enum RouteHighways {
         HighwaysAllow = 0,
         HighwaysDeny = 1,
      };

      ///How fleshed out route to send back.
      enum routeType {
         ///Preferred by the GPS-less mode. Sends enough
         ///information that an itinerary can be generated by
         ///the client.
         slim = 1,
         ///Preferred by the GPS mode. Plenty of coordinates
         ///ensures good route following, distance and time to
         ///goal calculation, and off track detection.
         full = 2,
      };

      /** Enumerates the reasons for a reroute. */
      enum RerouteReason {
         /** */
         unknown = 0,
         /** The route was truncated, the next piece is needed. */
         truncated_route     = 1,
         /** The user went off track and needs a new route.*/
         off_track           = 2,
         /** The route should be updated with new traffic info. */
         traffic_info_update = 3,
         /** The user requested a reroute. */
         user_request        = 4,
      };

      /// Used in search requests to specify different kinds of matching.
      enum MatchType {
         /// All letters must match but match may contain more letters.
         ExactMatch = 0x00,
         /// Close match.
         CloseMatch = 0x01,
         /// All letter must match and length of string miust be same.
         FullMatch = 0x02,
         /// Match things that sounds alike.
         PhoneticMatch = 0x03,
         /// Match strings allowing for a few misspellings.
         EditdistanceMatch = 0x04,
      };

      /// Used in search requests to specify the type of word mathing to use.
      enum WordMatchType {
         Beginning = 0x00, /// Starts matching at begining of string.
         Anywhere = 0x01,  /// String may match anywhere in match.
      };

      /// Used in search requests to specify sort order of search matches.
      enum SortTypes {
         /// The result will not be sorted.
         NoSort = 0x00,
         /// Matches are sorted in alphabetical order.
         AlfaSort = 0x01,
         /// Matches are sorted by confidence, attempting to place the
         /// most probable matches on top of the match list.
         ConfidenceSort = 0x02,
         /// Matches are sorted by their distance from the current coordinate.
         DistanceSort = 0x04,
      };

      ///Language for replies from server.
      enum languageCode {
         ENGLISH          = 0, /// English
         SWEDISH          = 1, /// Swedish
         GERMAN           = 2, /// German
         DANISH           = 3, /// Danish
         FINNISH          = 4, /// Finnish
         NORWEGIAN        = 5, /// Norwegian
         ITALIAN          = 6, /// Italian
         DUTCH            = 7, /// Dutch
         SPANISH          = 8, /// Spanish
         FRENCH           = 9, /// French
         WELCH            = 10, /// Welsh
         PORTUGUESE       = 11, /// Portuguese
         CZECH            = 12, /// Czech
         AMERICAN_ENGLISH = 13, /// American English
         HUNGARIAN        = 14, /// Hungarian
         GREEK            = 15, /// Greek
         POLISH           = 16, /// Polish
         SLOVAK           = 17, /// Slovak
         RUSSIAN          = 18, /// Russian
         SLOVENIAN        = 19, /// Slovenian
         TURKISH          = 20, /// Turkish
         ARABIC           = 21, /// Arabic
         SWISS_FRENCH       = 22,
         SWISS_GERMAN       = 23,
         ICELANDIC          = 24,
         BELGIAN_FLEMISH    = 25,
         AUSTRALIAN_ENGLISH = 26,
         BELGIAN_FRENCH     = 27,
         AUSTRIAN_GERMAN    = 28,
         NEW_ZEALAND_ENGLISH= 29,
         CHINESE_TAIWAN     = 30,
         CHINESE_HONG_KONG  = 31,
         CHINESE_PRC        = 32,
         JAPANESE           = 33,
         THAI               = 34,
         AFRIKAANS          = 35,
         ALBANIAN           = 36,
         AMHARIC            = 37,
         ARMENIAN           = 38,
         TAGALOG            = 39,
         BELARUSIAN         = 40,
         BENGALI            = 41,
         BULGARIAN          = 42,
         BURMESE            = 43,
         CATALAN            = 44,
         CROATIAN           = 45,
         CANADIAN_ENGLISH   = 46,
         SOUTH_AFRICAN_ENGLISH=47,
         ESTONIAN           = 48,
         FARSI              = 49,
         CANADIAN_FRENCH    = 50,
         GAELIC             = 51,
         GEORGIAN           = 52,
         GREEK_CYPRUS       = 53,
         GUJARATI           = 54,
         HEBREW             = 55,
         HINDI              = 56,
         INDONESIAN         = 57,
         IRISH              = 58,
         SWISS_ITALIAN      = 59,
         KANNADA            = 60,
         KAZAKH             = 61,
         KHMER              = 62,
         KOREAN             = 63,
         LAO                = 64,
         LATVIAN            = 65,
         LITHUANIAN         = 66,
         MACEDONIAN         = 67,
         MALAY              = 68,
         MALAYALAM          = 69,
         MARATHI            = 70,
         MOLDOVIAN          = 71,
         MONGOLIAN          = 72,
         NYNORSK            = 73,
         BRAZILIAN_PORTUGUESE=74,
         PUNJABI            = 75,
         ROMANIAN           = 76,
         SERBIAN            = 77,
         SINHALESE          = 78,
         SOMALI             = 79,
         LATIN_AMERICAN_SPANISH=80,
         SWAHILI            = 81,
         FINNISH_SWEDISH    = 82,
         TAMIL              = 83,
         TELUGU             = 84,
         TIBETAN            = 85,
         TIGRINYA           = 86,
         CYPRUS_TURKISH     = 87,
         TURKMEN            = 88,
         UKRAINIAN          = 89,
         URDU               = 90,
         VIETNAMESE         = 91,
         ZULU               = 92,
         SESOTHO            = 93,
         BASQUE             = 94,
         GALICIAN           = 95,
         ASIA_PACIFIC_ENGLISH=96,
         TAIWAN_ENGLISH     = 97,
         HONG_KONG_ENGLISH  = 98,
         CHINA_ENGLISH      = 99,
         JAPAN_ENGLISH      = 100,
         THAI_ENGLISH       = 101,
         ASIA_PACIFIC_MALAY = 102,
      };

      ///Common request status codes.
      enum ReplyStatus {
         /// All is well
         NAV_STATUS_OK                    = 0x00,
         /// Something is not that well
         NAV_STATUS_NOT_OK                = 0x01,
         /// Server internal timeout
         NAV_STATUS_REQUEST_TIMEOUT       = 0x02,
         /// Server didn't receive parameter request as first request
         /// in the session.
         NAV_STATUS_PARAM_REQ_NOT_FIRST   = 0x03,
         /// The server doesn't have map coverage of that area.
         NAV_STATUS_OUTSIDE_MAP           = 0x04,
         /// The server doesn't understand that protocol version
         NAV_STATUS_PROTOVER_NOT_SUPPORTED= 0x05,
         /// The user hasn't payed for that map.
         NAV_STATUS_OUTSIDE_ALLOWED_AREA  = 0x06,
         /// The user have no transactions left.
         NAV_STATUS_NO_TRANSACTIONS_LEFT  = 0x07,
         // Unauthorized and other user has this phone's license
         NAV_STATUS_UNAUTH_OTHER_HAS_LICENSE=0x17,
         // The error is in the extened error code.
         NAV_STATUS_EXTENDED_ERROR = 0x18,
         /// Used to mask request specific status codes.
         NAV_STATUS_REQUEST_SPECIFIC_MASK = 0x80,
      };

#define REQUEST_SPECIFIC NAV_STATUS_REQUEST_SPECIFIC_MASK

      ///Request specific status messages for poll requests
      enum PollReplyStatus {
         POLL_SERVER_FINAL    = (0x02|REQUEST_SPECIFIC)
      };

      ///Request specific status messages for parameter requests
      enum ParamReplyStatus {
         ///User login is ok but subscription is expired. Tell user to
         ///pay on time every time.
         PARAM_REPLY_EXPIRED_USER     = (0x01|REQUEST_SPECIFIC),
         ///User login not ok, wrong password or invalid MSISDN and
         ///key pair.
         PARAM_REPLY_UNAUTHORIZED_USER=(0x02|REQUEST_SPECIFIC),
         ///Server moved, connect to it instead. Server list is in
         ///parametrers.
         PARAM_REPLY_REDIRECT         = (0x03|REQUEST_SPECIFIC),
         ///Client must upgrade! Send new Parameter Request with
         ///update parameter.
         PARAM_REPLY_UPDATE_NEEDED    = (0x04|REQUEST_SPECIFIC),
         ///Client says it is of a higher Wayfinder type than the
         ///server allows it to be.
         PARAM_REPLY_WF_TYPE_TOO_HIGH = (0x05|REQUEST_SPECIFIC),

         /// Other has your IMEI
         PARAM_REPLY_UNAUTH_OTHER_HAS_LICENSE = (0x17 | REQUEST_SPECIFIC),

         CHANGED_LICENSE_REPLY_OLD_LICENSE_NOT_IN_ACCOUNT       = 0xF1,
         CHANGED_LICENSE_REPLY_MANY_USERS_WITH_OLD_LICENSE      = 0xF2,
         CHANGED_LICENSE_REPLY_MANY_USERS_WITH_NEW_LICENSE      = 0xF3,
         CHANGED_LICENSE_REPLY_OLD_LICENSE_IN_OTHER_ACCOUNT     = 0xF4,

         UPGRADE_REPLY_MUST_CHOOSE_REGION                       = 0xFA,
      };

      ///Request specific status messages for route requests
      enum RouteReplyStatus {
         ///No route could be found to the destination.
         ROUTE_REPLY_NO_ROUTE_FOUND        = (0x01|REQUEST_SPECIFIC),
         ///Route is too far to go for the vehicle used. Mostly used
         ///for pedestrian routes that are too long.
         ROUTE_REPLY_TOO_FAR_FOR_VEHICLE   = (0x02|REQUEST_SPECIFIC),
         ///Can not make out origin.
         ROUTE_REPLY_PROBLEM_WITH_ORIGIN   = (0x03|REQUEST_SPECIFIC),
         ///Can not make out destination.
         ROUTE_REPLY_PROBLEM_WITH_DEST     = (0x04|REQUEST_SPECIFIC),
         ///No auto destination and auto destination used as
         ///destination.
         ROUTE_REPLY_NO_AUTO_DEST          = (0x05|REQUEST_SPECIFIC),

         ROUTE_REPLY_NO_ORIGIN             = (0x06|REQUEST_SPECIFIC),
         ROUTE_REPLY_NO_DESTINATION        = (0x07|REQUEST_SPECIFIC),
         //This status may be returned by reroute requests. If it is
         //set, it means that the route has not changed and the client
         //should keep using the old route.
         ROUTE_REPLY_NO_ROUTE_CHANGE       = (0x08|REQUEST_SPECIFIC),
      };

      /** 32bit values specifing the type of binary data tranferred
       * between the client and the server. Specified in the
       * 'Binary Transfers to the Navigator Server' document.
       * These enums comply with version 1.00 of that protocol. */
      enum BinaryTransferType {
         CrossingMapData      = 0x10, /// Crossing maps
         SyncFavoritesRequest = 0x11, /// Destination sync
         MapData              = 0x12, /// ???
         TopRegionListData    = 0x13, /// Top Region list
         CategoriesFile       = 0x15,
         LatestNewsFile       = 0x16,
         LogfileData          = 0x20, /// ???
      };

      ///Current status of server communication session. Used in
      ///statusreportmessages.
      enum ComStatus{
         /** Invalid. */
         invalid = 0,
         /** connecting to server. */
         connecting,
         /** connected to server. */
         connected,
         /** Sending data to server. */
         sendingData,
         /** Downloading data from server. */
         downloadingData,
         /** Session complete, shutting down connection. */
         done,
         /** Connection disrupted. */
         disconnectionError,
         /** unknown error caused the session to terminate.*/
         unknownError,
         /** No data has been received for a while. */
         connectionTimedOut,

         /// Sentinel value.
         numberOfStatuses,
      };

      enum TransactionType{
         transactions = 0,
         daysLeftTransactions = 2,
      };

#ifdef I_AM_DISPLAY_SERIAL_AND_IN_DIRE_NEED_OF_OUTDATED_ENUMS
      enum NavOutError {
         /* Phone call could not be made (busy, no answer etc) */
         nav_out_no_carrier                            = 0x0,
         /** Navigator server said "route not ok". */
         nav_out_not_ok_route_req                      = 0x1,
         /** Navigator server said "where am I not ok". */
         nav_out_not_ok_where_am_i_req                 = 0x2,
         /** Navigator server said "Search not ok". */
         nav_out_not_ok_search_req                     = 0x3,
         /** Server could not sync destinations. */
         nav_out_not_ok_sync_destinations_req          = 0x4,
         /** No phone connected. */
         nav_out_no_phone                              = 0x5,
         /** GPS quality too low. */
         nav_out_no_gps                                = 0x6,
         /** Other error. */
         nav_out_other_error                           = 0x7,
         /** Protocol error. */
         nav_pda_protocol_error                        = 0x8,
         /** The GPS positions are nowhere near the route,
          * we can't even check the distance to the closest point... */
         nav_out_outside_route_area                    = 0x10,
         /** Unknown packet from PDA. */
         nav_out_unknown_packet                        = 0x11,
         /* Unexpected DATA_CHUNK packet from PDA. */
         nav_out_unexpected_data_chunk                 = 0x12,

         /* Start tunnel setup failed. */
         nav_out_start_tunnel_fail                     = 0x13,

         /* Binary upload failed in some way. */
         nav_out_binary_upload_fail                    = 0x14,

         /*------- Phone status (may arrive at any time) */
         /**  No phone was connected to navigator, or phone went away. */
         STATUS_NO_PHONE               =  0x20,       // Error
         /**  Sim card not inserted in phone, or sim revoked. */
         STATUS_NO_SIM_CARD            =  0x21,       // Error
         /**  Weak signal to GSM network. */
         STATUS_PHONE_NO_NET           =  0x22,       // Error
         /*------- From phone when trying to connect */
         /**  Phone is not answering to commands */
         STATUS_PHONE_NOT_RESPONDING   =  0x23,       // Error
         /**  Phone is off hook (call in progress) */
         STATUS_PHONE_NOT_IDLE         =  0x24,       // Error
         /**  Server modem was busy. */
         STATUS_PHONE_BUSY_SIGNAL      =  0x25,       // Error
         /**  Server modem does not answer. */
         STATUS_PHONE_NO_ANSWER        =  0x26,       // Error
         /**  Phone is now available. */
         STATUS_PHONE_READY            =  0x27,
         /**  Dialling number. */
         STATUS_PHONE_DIALING          =  0x28,
         /**  Connecting to modem */
         STATUS_PHONE_CONNECTING       =  0x29,
         /**  Modem connection established. */
         STATUS_PHONE_CONNECTED        =  0x2a,
         /**  No data for a long time in online mode */
         STATUS_PHONE_NO_DATA          =  0x2b,       // Error
         /**  Disconnecting from remote modem. */
         STATUS_PHONE_DISCONNECTING    =  0x2c,
         /*------ From Navigator when trying to connect. */
         /**  Sending data to server */
         STATUS_NSC_SENDING_REQUEST    =  0x40,
         /**  Waiting for server answer. */
         STATUS_NSC_WAITING_FOR_ANSWER =  0x41,
         /**  Receving data from server. */
         STATUS_NSC_RECEIVING_ANSWER   =  0x42,
         /**  Call disconnected before we got all data in answer */
         STATUS_NSC_TRUNCATED_ANSWER   =  0x43,       // Error
         /**  Server timed out without answer. */
         STATUS_NSC_TIMEOUT_SERVER     =  0x44,       // Error
         /**  Phone timed out when sending. */
         STATUS_NSC_TIMEOUT_PHONE      =  0x45,       // Error
         /*------ From Navigator Server */
         /**  Username or password was wrong */
         STATUS_NS_AUTH_FAIL_LOGIN     = 0x60,        // Error
         /**  The server is not allowing logins. */
         STATUS_NS_AUTH_FAIL_FORBIDDEN = 0x61,        // Error
         /**  The account was closed by ISAB */
         STATUS_NS_AUTH_CLOSED_ACCOUNT = 0x62,        // Error
         /**  Server version is incompatible with client. */
         STATUS_NS_SERVER_VERSION_INCOMPATIBLE = 0x63,// Error
         /**  New version of client is available. */
         STATUS_NS_NEW_CLIENT_AVAILABLE = 0x64,
         /*------- The below errors should never reach the client. */
         nav_out_ok_sync_destinations_req              = 0x80,
         nav_out_ok_search_req                         = 0x81,
         nav_out_ok_where_am_i_req                     = 0x82,
         nav_out_ok_route_req                          = 0x83,
         nav_out_server_status_ok                      = 0x84,
         nav_out_server_status_not_ok                  = 0x85,
         nav_out_send_download_data                    = 0xfd,
         nav_out_message                               = 0xfe,
         nav_out_no_error                              = 0xff,
      };

      /** List of errors possible when doing server communication?  */
      enum NavErrorType {
         nav_error_type_no_error                       = 0x0,
         /* GPS quality does not admit request. */
         nav_error_type_no_gps                         = 0x1,
         /* Phone not connected. */
         nav_error_type_no_phone                       = 0x2,
         /* Server does not even pick up phone. */
         nav_error_type_no_server_answer               = 0x3,
         /* Server picks up phone but does not answer requests. */
         nav_error_type_no_server_connection           = 0x4,
         /* Route download was interrupted. */
         nav_error_type_route_download                 = 0x5,
         /* Route downloaded but format was wrong. */
         nav_error_type_route_format                   = 0x6,
         /* The navigator server could not route. */
         nav_error_type_routeing                       = 0x7,
         /* Search download was interrupted. */
         nav_error_type_search_download                = 0x8,
         /* Search downloaded but format was wrong. */
         nav_error_type_search_format                  = 0x9,
         /* The navigator server could not search. */
         nav_error_type_searching                      = 0xa,
         /* Where am I download interrupted. */
         nav_error_type_where_am_i_download            = 0xb,
         /* Where am I downloaded but format was wrong. */
         nav_error_type_where_am_i_format              = 0xc,
         /* The navigator server could not perform the Where am I action. */
         nav_error_type_where_am_i                     = 0xd,
         /* Reply from server was too large. */
         nav_error_type_reply_too_large                = 0xe,
         /* Call was disconnected. */
         nav_error_type_call_disconnected              = 0xf,

         /* The GPS positions are nowhere near the route, */
         /* we can't even check the distance to the closest point... */
         nav_error_type_outside_route_area             = 0x10,

         /* Unknown packet from PDA. */
         nav_error_type_unknown_packet                 = 0x11,

         /** Not really an error, canceled on request. */
         nav_error_type_canceled_on_request            = 0x12,

         /* Memory problems, no buffers, bugs etc. */
         nav_error_type_internal_nav_display_serial    = 0x80,
         nav_error_type_internal_nav_ctrl              = 0x81,
         nav_error_type_internal_nav_task              = 0x82,
         nav_error_type_internal_nav_server_com        = 0x83,
         nav_error_type_internal_plexor                = 0x84,
         nav_error_type_internal_driv_phone_eri520     = 0x85,

      };

      /** Enumeration of values in the status byte of server replies.*/
      enum ServerStatus {
         /** All is well with the world. */
         nav_server_status_ok         = 0x0,
         /** Something went wrong. */
         nav_server_status_not_ok     = 0x1,
         /** This was the final poll reply. No more data available.*/
         nav_server_status_poll_final = 0x2,
         /** Invalid. Used as placeholder when the error wasn't server
             related.*/
         nav_server_invalid
      };
#endif
      /** The types of messages to send to and receive from the server.*/
      enum MessageType{
         /** Placeholder. */
         NAV_SERVER_INVALID               = 0x00,

         /** Unused. */
         NAV_SERVER_PICK_ME_UP_REQ        = 0x01,
         /** Unused. */
         NAV_SERVER_PICK_ME_UP_REPLY      = 0x02,
         /** Unused. */
         NAV_SERVER_PICK_UP_REQ           = 0x03,
         /** Unused. */
         NAV_SERVER_PICK_UP_REPLY         = 0x04,

         /** Request for a route. Sent from Navigator to Server.*/
         NAV_SERVER_ROUTE_REQ             = 0x05,
         /** A Reply for a route request. Sent from Server to Navigator. */
         NAV_SERVER_ROUTE_REPLY           = 0x06,
         /** A search request. Sent from Navigator to Server.*/
         NAV_SERVER_SEARCH_REQ            = 0x07,
         /** A Reply for a search request. Sent from Server to Navigator. */
         NAV_SERVER_SEARCH_REPLY          = 0x08,
         /** Request for destination synchronization. Presently not
             used. Sent from Navigator to Server.*/
         NAV_SERVER_DEST_REQ              = 0x09,
         /** A Reply to a destination synchronization
             request. Presently not used. Sent from Server to
             Navigator. */
         NAV_SERVER_DEST_REPLY            = 0x0a,
         /** Request for a convertion of gps coordinates to a real
             world address. Sent from Navigator to Server.*/
         NAV_SERVER_GPS_ADDRESS_REQ       = 0x0b,
         /** A Reply to a request for an address. Sent from Server to
             Navigator. */
         NAV_SERVER_GPS_ADDRESS_REPLY     = 0x0c,
         /** Request for navigator to receive one gps position poer
             second from the Navigator. Sent from Navigator to
             Server.*/
         NAV_SERVER_GPS_POS_REQ           = 0x0d,
         /** A Reply indicating whether the Server is ready to receive
             gps positions from the Navigator. Sent from Server to
             Navigator. */
         NAV_SERVER_GPS_POS_REPLY         = 0x0e,

         /** Request for more data from the server. Sent from the
             Navigator to the Server.*/
         NAV_SERVER_POLL_SERVER_REQ       = 0x10,
         /** Extra data from the Server. Sent from the Server to the
             Navigator. */
         NAV_SERVER_POLL_SERVER_REPLY     = 0x11,

         /** Request a map image from the server.*/
         NAV_SERVER_MAP_REQ               = 0x12,
         /** A map image from the server.*/
         NAV_SERVER_MAP_REPLY             = 0x13,

         /** Request Extra info about search items.*/
         NAV_SERVER_INFO_REQ              = 0x16,
         /** Contains Extra info about search items. */
         NAV_SERVER_INFO_REPLY            = 0x17,

         /** Asks server to send messages */
         NAV_SERVER_MESSAGE_REQ           = 0x18,
         /** Reply*/
         NAV_SERVER_MESSAGE_REPLY         = 0x19,

         /** Submit license key*/
         NAV_SERVER_UPGRADE_REQ           = 0x1a,
         /** Registration results. */
         NAV_SERVER_UPGRADE_REPLY         = 0x1b,
         /** Request Vector Map Chunk.*/
         NAV_SERVER_VECTOR_MAP_REQ        = 0x1c,
         /**Vector map chunk from server.*/
         NAV_SERVER_VECTOR_MAP_REPLY      = 0x1d,
         /** Request multiple Vector Maps from the server limited by
          * total size..*/
         NAV_SERVER_MULTI_VECTOR_MAP_REQ  = 0x1e,
         /** Multiple vector map reply. */
         NAV_SERVER_MULTI_VECTOR_MAP_REPLY= 0x1f,

         /** Parameters from the Navigator and the NavClient to the
             server. Sent from Navigator to server.*/
         NAV_SERVER_PARAMETER_REQ         = 0x20,
         /** Parameters from the server to the Navigator. Sent from
             Server to Navigator. */
         NAV_SERVER_PARAMETER_REPLY       = 0x21,

         NAV_SERVER_CELL_REPORT           = 0x22,
         NAV_SERVER_CELL_CONFIRM          = 0x23,

         /** Request for GPS almanac. Sent from Navigator to server.*/
         NAV_SERVER_GPS_INIT_REQ          = 0x30,
         /** Reply with GPS almanac. Sent from Server to Navigator.*/
         NAV_SERVER_GPS_INIT_REPLY        = 0x31,

         /** Sending a binary block to the server. Sent from Navigator
             to server. */
         NAV_SERVER_BINARY_UPLOAD_REQ     = 0x32,
         /** Reply acknowledging a binary block. Sent from server to
             Navigator.*/
         NAV_SERVER_BINARY_UPLOAD_REPLY   = 0x33,

         /** Alarm information. Sent from Navigator to server. */
         NAV_SERVER_ALARM_REQ             = 0x40,
         /** Acknowledge of alarm info. Sent from server to navigator.*/
         NAV_SERVER_ALARM_REPLY           = 0x41,

         /** A NPG request */
         NAV_REQUEST                      = 0x50,
         /** A NPG reply */
         NAV_REPLY                        = 0x51,
      };

   }
}
#endif

redpajama_set_name: RedPajamaGithub


Segment 1: More rumors about PG. The Good news is we will know in a little over a month if not sooner what he will do. Till then there is going to be a lot of anxiousness about his and the Thunder's future. So to help you relax while this is going on. Find a Steven Adams moment to at least make you smile. Adams on three-point shooting. Things that will never end for Thunder fans.
Segment 2. Is it possible to be happy for KD. Durant is going to have one of the hardest careers to put in a box. KD falls into a Johnny Damon, Alex Rodriguez, David Ortiz. Part of KD's big issue is that he comes across a not genuine.


After a successful launch of Rolandprintstudio, Roland DG's initial disdainful Mac OS RIP, Roland DG now announces a new and sparkling refurbish to a software, creation it even some-more thorough and instrumental for a imitation industry.
See product and hit sum of Roland DG.
View suppliers of identical products in a Packaging Network.
The feature-packed resolution promises to broach so most some-more than only a RIP and is permitted for use with Roland printers, printer/cutters and standalone cutters. Packed full of a whole horde of time-saving and efficiency-creating features, nonetheless charity during a rarely affordable price, Rolandprintstudio enables Mac OS X users via a wide-format digital imitation marketplace to fast and simply conduct a imitation prolongation process.
With a recover of v1.1 of Rolandprintstudio, a RIP program will be permitted to even some-more countries, with a designation beam and programme entirely ancillary 12 languages including English, French, German, Spanish, Hebrew, Russian and Czech; creation a product even some-more accessible to Roland DG's multinational market.
In addition, support for a new Mac OSX – v10.11 El Capitan – has been inbuilt into a software, permitting a well-spoken transition for finish users who wish to refurbish their stream equipment. Alongside this, formation with Adobe's latest PDF engine, APPE 3.7, enabled Rolandprintstudio to yield high turn compliancy with PDF files, creation a copy routine elementary for business who select to use PDF files.
In response to a launch of Roland DG's new ECO-SOL MAX 3 inks operation in Europe, Rolandprintstudio will horde a full set of simple profiles, permitted from Roland DG's form core given a 28th of Sep 2015. Much-desired drivers for a Texart RT-640 and VersaUV LEJ-640 (double white) have also been enclosed in a v1.1 update, charity full inclusion for many Roland DG finish users.


There's no doubt that the presence of weeds in any garden is unsightly, detracting from the neatness of the beds and the beauty and interest of the adaptive and native material—that is, the plants intended to grow there. But not only are weeds unattractive, they can be invasive, too; after all, they found a way into your beds without your planting them. And once they're there, they rob neighboring plants of valuable nutrients and water. Controlling weeds is therefore essential to the health of your garden.
Before determining a plan for their removal, it's important to know which plants actually are weeds—particularly if you recently purchased the home—and what kind of weeds they are. Being able to identify them can mean knowing how to eradicate them as well. By researching each you will gain a greater understanding of how they grow and what makes them thrive. Do they spread via rhizomes or seed? What conditions do they seem to favor?
This knowledge will further inform how you approach their removal. Some weeds need to be physically removed, roots and all, to ensure that they don't reappear. Others can be eliminated with careful application of herbicides, often designed specifically for certain types of weeds. Be sure to apply chemicals carefully, taking measures to protect nearby plants that could likewise be harmed by contact with the weed killer. Take care, also, to make sure you do not adversely alter the chemical makeup of the soil through intense albeit well intended herbicide applications.


text:
Our Research>
Richard Bergeron, MD, PhD, FRCPC
rbergeron@ohri.ca
Work performed in the laboratory that is relevant to Alzheimer Disease Scientific Synopsis:
The Challenge: Alzheimer's (AD) is an incurable disease characterized by the slow and progressive loss of neurons in the cortex and hippocampus, leading to dementia and eventually death. Plaques of aggregated beta-amyloid protein (Aβ) and neurofibrillary tangles of hyperphosphorylated tau protein are pathological hallmarks of the disease. While a small percentage of AD cases are hereditary and linked to dominant mutations in the Aβ biosynthesis pathway, the vast majority of cases are sporadic with heterogeneous causes, composed of both genetic and non-genetic risk factors. Despite this complexity, the dominant theory in AD research has been the Aβ cascade hypothesis, which proposes that aggregation of Aβ oligomers into plaques leads to cellular dysfunction and ultimately neuronal death. Yet, recent clinical trials targeting Aβ clearance have failed, suggesting that a broader, all-encompassing theory of AD based on new animal models and alternative therapies are desperately needed. In conjunction with the Aβ cascade hypothesis, an alternative hypothesis, based on research showing that changes in neuronal calcium (Ca2+) signaling precede histopathological markers and cognitive deficits in AD, has emerged. This hypothesis, which proposes that Ca2+ dyshomeostasis is an underlying cause of AD, suggests that animal models and therapies should be aimed at re-establishing Ca2+ homeostasis, rather than targeting Aβ deposits, which may be a consequence, rather than a cause of AD.
Innovative Approach: Dr. Bergeron's laboratory has a long-standing interest in the sigma-1 receptor (Sig-1R), which regulates Ca2+ homeostasis. This receptor has roles in neuroprotection, neurite outgrowth and cognition. Recently, they reported that Sig-1R activation increases NMDA receptors at the cell surface, a key receptor in synaptic plasticity and cognition. Intriguingly, the Sig-1R has been implicated in AD disease in a variety of ways. First, Sig-1R binding sites are decreased in patients suffering from AD. Second, a polymorphism in the Sig-1R gene, which reduces Sig-1R expression, is a risk factor for AD. Third, a major drug used in AD treatment, donepezil, targets Sig-1R. Finally, and most significantly, Sig-1R agonists are neuroprotective and anti-amnesic in AD mouse models and protect against Aβ toxicity in vitro. Taken together, this suggests that an animal model based on loss of Sig-1Rs could provide an all-encompassing model of AD where drugs targeting Ca2+ homeostasis could be tested. The scientific team of Dr. Bergeron is working hard to investigate how Sig-1R could become a therapeutic target for the prevention of this terrible disease.
Alzheimer Disease Lay Summary:
There are currently over 500,000 Canadians suffering from Alzheimer's disease or another form of dementia, and the number is steadily increasing every day. By the year 2050 an estimated 1.5 million people in Canada, and an additional 150 million people worldwide, will suffer from Alzheimer's disease. Surprisingly, 2/3 of all Alzheimer patients are women, suggesting that the drop of steroid hormone may play in role in the pathophysiology of the disease. Moreover, these estimates do not include the countless silent sufferers dealing with the social, emotional and financial turmoil associated with caring for loved ones stricken by this disease. Alzheimer's disease progresses slowly, first robbing sufferers of their short-term memories, like where they left their keys, then wiping their long-term memories from their brains, like the names of their loved ones, and finally taking away their ability to do simple daily tasks, like taking a shower. There is currently no cure for Alzheimer's disease. Promising therapies targeted at amyloid beta, a distinguishing feature of the disease, failed to improve patient outcomes in recently completed clinical trials. Therefore, there is an urgent need for new hypotheses and therapeutic strategies aimed at other key features of the disease, such as early changes in calcium signaling that precede cognitive decline and taking into account the potential differential effects of amyloid beta in females compared to males. Here, we propose to create and test a novel mouse model based on the Sigma-1 Receptor, a calcium-regulating molecule that, when activated, improves many of the features of Alzheimer's disease in mouse models. By creating this new mouse model we hope to open the door towards new theories and new treatments based on a better understanding of the underlying causes of Alzheimer's disease.
Work performed in the laboratory that is relevant to Ischemic Stroke Scientific Synopsis:
The Challenge: For many years, it has been suggested that cell death induced by ischemic stroke is the result of glutamate accumulation in the extracellular space and over-activation of the ionotropic NMDA receptors. This allows excessive influx of intracellular Ca2+ and leads to neurotoxicity. In the last few decades, Pharmaceutical Companies have designed drugs that could act as antagonists at NMDA receptors. However, large-scale multicenter clinical trials using NMDA receptor antagonists have failed to demonstrate satisfactory neuroprotective effects. In contrast to glutamate, the role of glycine in ischemia is far less understood. Glycine plays three major roles in neurotransmission in the central nervous system. First: Glycine has an inhibitory function that is mediated by ionotropic glycine receptors (GlyRs). While synaptic GlyRs are ubiquitous throughout the spinal cord, there is an increasing body of evidence to suggest that GlyRs are expressed mainly at extrasynaptic sites in the hippocampus. Second: Low concentration (μM) of glycine modulates glutamatergic excitatory neurotransmission by acting as a co-agonist at NMDARs. Third: High concentrations (mM) of glycine have been reported to prime NMDA receptors for internalization in vitro but no evidence that such high doses of glycine could occur in vivo. The in vitro data generated by my lab suggest that a high levels of glycine result in a rapid, dynamin-dependent internalization of synaptic NMDA receptors. This may be a mechanism to reduce NMDA receptor overactivation during ischemic events. If this is the case, then increasing of extracellular glycine concentrations should reduce stroke volume following an ischemic insult in vivo.
Innovative Approach: we found that a high concentration (1 mM) of glycine induced internalization of NMDA receptors in vitro. Using either an in vitro model of ischemia (oxygen glucose deprivation: OGD) or an in vivo model of ischemia (photothrombosis: PT), we found that mice that have a high level of ambient glycine, the toxic effect of OGD or PT is significantly attenuated as determined by a reduction stroke volume and cell death. Dr. Bergeron hypothesizes that this internalization is dependent of the glycine modulatory site (GMS) occupancy and is mediated preferentially via GluN2A-containing NMDARs. This hypothesis is currently being testing using animals with high or low concentration of glycine in the brain.
Ischemic Stroke Lay Summary:
Our brain works similar to an automobile: to function it requires a continuous supply of energy. Instead of using gasoline our brain uses glucose and oxygen. Both are carried to the brain by our blood. When a large energy demand of the brain is not completely satisfied due to a decreased or completely interrupted flow of blood, a pathological condition known as brain ischemia or stroke occurs. A few minutes after a stroke, a "serial killer" emerges from the cells of the brain, neurons. This "serial killer" is called glutamate and it induces excitation of most neurons of the brain. The brain needs some level of excitation to maintain communication amongst the neurons, however too much excitation can cause death or permanent damage to the brain. Stroke can occur at any time and this medical condition can affect any of us. Currently there is no medication that can halt the "serial killer" and that is the reason why stroke is a real challenge for neuroscientists. The objective of the research of Dr. Bergeron is to uncover the potential important role of a small molecule that is found in huge quantities in the brain, this molecule is called glycine. Preliminary results suggest that we can make use of glycine to protect the brain when stroke occurs. For several decades, glycine was known by neuroscientists to play an important role in the spinal cord by providing some inhibition (i.e. to slow down the electrical activity when there is too much excitation). However, preliminary data suggests a similar role for glycine in cortical regions of the brain where stroke could occur. The merit of this research program of Dr. Bergeron is its ability to integrate highly sophisticated and innovative techniques in order to address a crucial question: how can glycine protect the brain and stop the "serial killer" when an ischemic condition occurs? The ultimate goal is to bring the scientific community one step closer to finding a much-needed cure for stroke.
Members of the Laboratory of Dr. Bergeron include graduate students, postdoctoral fellows, research associates and lab technicians.
As of July 2016:
Graduate Students:
Madelaine Abraham, Nina Ahlskog, Pamela Khacho, MaryLine Lalande, Louis-Alexandre Tasse, Jack Wang.
Postdoctoral Fellows: Prakash Chudalayandi, Melissa Snyder.
Research Associate: Adrian Wong.
Lab Technicians: Elitza Hristrova, Kieran McCann, Alexandra Sokolovski.
Administrative Assistants: Denise Joanisse, Kelsey Oldland. Research Administrative Assistant: Nella Bianconi

redpajama_set_name: RedPajamaCommonCrawl


text:
Record Store Day Crawl 2019: Here's What Went Down
On the 12th annual Record Store Day (April 13). the fourth annual Record Store Crawl -- an event that puts vinyl enthusiasts on a bus and shuttles them between various indie record shops -- hit New…
By Joe Lynch
Joe Lynch
More Stories by Joseph
10 Cool New Pop Songs to Get You Through The Week: ENHYPEN, Bastille, Aluna & More
Queer Country Pioneers Lavender Country Saddle Up for First Album In Nearly 50 Years
Lick Jagger: Rolling Stones Stamps Are Coming to the U.K.
General view of Record Store Day vinyl at Rough Trade East on April 20, 2013 in London, England. Burak Cingi/Redferns via Getty Images
On the 12th annual Record Store Day (April 13). the fourth annual Record Store Crawl — an event that puts vinyl enthusiasts on a bus and shuttles them between various indie record shops — hit New York City.
This year, the NYC crawl expanded to include Manhattan. Revelers gathered at arrived at Hill Country BBQ Market for a lunch buffet and bottomless Deep Eddy Vodka (a sponsor) around noon on Saturday while singer-songwriter Sophie Auster and Americana band Hollis Brown performed sets.
Stops on the crawl included Turntable Lab in Manhattan, HiFi Records in Queens, and two Brooklyn stores — Halcyon and Rough Trade. At the latter store/venue, The Flaming Lips' Wayne Coyne was parked next to a giant silvery head. Named King's Head, the art exhibit debuted in Ohio in 2015 and is finally starting to see the rest of the country (the walk-in exhibit inspired the Lips' latest album).
From snapping up exclusives to live music on a bus, here's the breakdown of Warner Music's Record Store Crawl 2019.
The Flaming Lips Share 'All For the Life of the City' From New Album 'King's Mouth': Premiere
12:00 pm: Hill Country BBQ opens its doors to crawlers, who get everything from chicken wings to gift bags with assorted vinyl titles.
12:33 pm: Sophie Auster wraps her satisfying full-band performance with the perfect amount of energy for an afternoon crowd — enough to get you amped up, but still leaving you wanting just a little bit more (and, in fact, there was more).
1:03 pm: Hollis Brown, named after the classic Dylan song, urge the crowd to "keep supporting independent music and music stores"; a bit of preaching to the choir, sure, but always worth reminding people. They brought their energized set to a close with the muscular "Do Me Right" from upcoming album Ozone Park.
1:32 pm: After everyone gets onto the bus, RSD Crawl organizers start raffling off various prizes while the bus winds its way through Manhattan. Highlights include the Bad Boy 20th Anniversary box set, Led Zeppelin t-shirts and an R.E.M. DVD.
1:45 pm: Arriving at Turntable Lab, the line for the exclusive RSD material is well around the block. The line-averse crawlers skip the exclusives and opt for the proper Turntable Lab store, which boasted an in-store DJ throwing down smooth grooves while people perused the diverse stock.
From Prince to Soccer Mommy, 25 Releases to Snap Up on Record Store Day 2019
2:15 pm: With just minutes to go before the bus takes off, people finalize their decisions. A Prince collector snags some classic '80s 12 inches and one young kid gets Loaded — that is, the final Velvet Underground album.
2:39 pm: "I wish I could say this is the first time I've sang on a moving bus," Sophie Auster says with a laugh before kicking off an intimate on-bus performance. With an acoustic guitarist accompanying her and another member of her band keeping rhythm on a wooden box, Auster opened with "Mexico," a beguiling song with a classic feel that details a noir-ish tale about taking a man for all he's worth south of the border.
2:50 pm: As the bus hits Queens, Auster pulls out a cover of Annie Lennox's glorious "Walking on Broken Glass" that gets the whole bus clapping and smiling.
3:19 pm: At HiFi Records (which featured a Deep Eddy Vodka refill for those still thirsty), one crawler flips through the exclusives and announces there's a title left from "Soccer Mommy, whoever that is." "Oh my God!" exclaims a nearby man. "That's literally the only title I wanted!" Naturally, he happily takes the For Young Hearts EP off her hands.
4:10 pm: The crew poses for a group photo near penultimate stop Halcyon.
4:20 pm: At Rough Trade, the final stop on the crawl, there's a long line — but it's understandable, considering Flaming Lips frontman Wayne Coyne is at the end of it. He's at the massive Brooklyn record store to sign LPs, chat with fans and introduce King's Head, the shiny, silvery walk-in art exhibit that features new Lips music and trippy visuals. The band's latest album, King's Head: Music and Songs, came out in limited quantities on RSD 2019 and sees wider release in July.


text:
Macular degeneration also called age-related macular degeneration (ARMD or AMD), is an age-related condition in which the most sensitive part of the retina, the macula, begins to break down and lose its ability to create clear visual images. The macula is responsible for our central vision. The part of our sight we use to read, drive, and recognize faces.
ARMD is the leading cause of vision loss and blindness in Americans of ages 65 and older. It is estimated that more than 1.75 million U.S. residents currently have significant vision loss from ARMD, and the number is expected to grow to almost 3 million by 2020.
Forms of Macular Degeneration
There are two forms of macular degeneration, dry (non-neovascular) or wet (neovascular). The term neovascular refers to the growth of new blood vessels.
Dry AMD (non-neovascular)
Dry AMD is the most common form of the disease, making up about 85%-90% of all cases of AMD. It is characterized by blurred central vision or blind spots, as the macula begins to deteriorate. Dry AMD is an early stage of the disease and is less severe than the wet form.
Dry AMD occurs when the aging tissues of the macula begin to thin out and break down. Tiny pieces of white or yellowish protein called drusen begin to appear, which are thought to be deposits from the macular tissue as it deteriorates. The appearance of these drusen are often what leads to a diagnosis of AMD during an eye exam.
With dry AMD vision loss happens gradually, however, the dry form can progress to wet AMD rapidly. There is currently no cure for dry AMD, however there is research that shows that some people can benefit from supplemental vitamin therapy including antioxidants, lutein and zeaxanthin.
Wet AMD (neovascular)
Wet AMD is less common occurring in only about 10 percent of those with AMD. AMD is classified as Wet AMD when abnormal blood vessels begin to grow under the retina and leak fluid and blood into the macula, resulting in blind spots and a loss of central vision. Wet AMD can cause more damage to vision and permanent scarring if not treated quickly, so any sudden blur in vision should be assessed immediately, especially if one is aware that they have AMD. Usually vision loss happens faster and is more noticeable than in dry AMD so the quicker it is treated, the more vision you can preserve.
Symptoms & Risk Factors of Macular Degeneration
Macular Degeneration can cause low vision and debilitating vision loss, even blindness if not diagnosed and treated in the early stages. Because the disease often has no obvious symptoms early on, it is critical to have regular comprehensive eye exams, particularly if you are at risk.
Symptoms of AMD
Macular degeneration is a disease in which the macula slowly breaks down, resulting in a gradual progressive vision loss, at least in its' early stages. Frequently there are no symptoms and the disease is only diagnosed when a doctor detects signs such as a thinning macula or the presence of drusen in a comprehensive eye examination. Early vision loss can include blurry, cloudy or distorted central vision or dark spots in your central field of view. With advanced stages, vision loss can be severe and sudden with larger blind spots and total loss of central vision.
Risk Factors for Macular Degeneration
Age is the most prominent risk factor for AMD, as the disease is most common in individuals over the age of 60 (although it can happen in younger individuals as well). Other risk factors can increase your chances of developing the disease such as:
• Smoking: Cigarette smoking can double your likelihood of developing AMD.
• Lifestyle: Research shows that UV exposure, poor nutrition, high blood pressure,
obesity and a sedentary lifestyle can also be contributing factors.
• Gender: Females have a higher incidence of AMD than males.
• Medications: Certain medications may increase the chances of developing AMD.
• Genetics and Family History: Research shows that there are actually almost 20
genes that have been linked to AMD, and they suspect that there are many more genetic factors to be discovered. Family history greatly increases your chances of developing AMD.
• Race: Caucasians are more likely to get AMD than Hispanics or African-Americans.
How is Macular Degeneration Treated?
There is as yet no outright cure for age-related macular degeneration, but some treatments may delay its progression or even improve vision.
Treatments for macular degeneration depend on whether the disease is in its early-stage, dry form or in the more advanced, wet form that can lead to serious vision loss. No FDA-approved treatments exist yet for dry macular degeneration, although nutritional intervention may help prevent its progression to the wet form.
For wet AMD, treatments aimed at stopping abnormal blood vessel growth include injections of FDA-approved drugs called Lucentis, Eylea, Macugen and Visudyne used with Photodynamic Therapy or PDT. Lucentis has been shown to improve vision in a significant number of people with macular degeneration.


text:
Arthur Williams (September 26, 1946 – July 11, 2010) was an American career criminal who achieved early notoriety as New York City's "Elevator Bandit", who perpetrated a string of armed robberies in apartment buildings across Manhattan, mostly to support a heroin addiction. Given a three-year term in prison, Williams was released after two years. During the 34 years from 1975 to 2009, Williams spent 33 of those years in prison, with the exception of a two-month period after his release from jail when he went on a drug-fueled crime spree in 1980 that was widely publicized in the media. In 2010, he drove from his home in Alabama to New York City, where he conducted an armed robbery of a Manhattan boutique while using a cane and an oxygen tank and wielding a gun which he fired in the store. On the road back to Alabama, Williams robbed a pair of roadside hotels and then went back on the highway, where a police chase in Maryland ended in his death when he was thrown out of his Cadillac, which he had been driving at .

Williams came from a family of ten children and grew up in the Hamilton Heights neighborhood of Manhattan. He variously posed as a doorman, a messenger or a Vietnam War veteran, offering pleasantries before pulling a gun and taking cash and other property from his victims, most frequently in an elevator, earning him the moniker the "Elevator Bandit".

After being paroled from Green Haven Correctional Facility in June 1974 after serving two years of three-year sentence, Williams was arrested the following September and charged with 40 separate holdups, with as many as 100 victims including a deputy United States Attorney and a Legal Aid Society lawyer. In one of the incidents in the spree, Williams dressed as the doorman of an Upper West Side apartment building, greeted residents in the lobby and then robbed them in the elevator. Precincts across Manhattan had reported similar incidents that were traced to Williams. In other crimes, he and a female accomplice, both well dressed, would enter a building and join residents on the elevator, with the woman pulling a gun out of her purse and Williams taking the belongings. Over the objections of prosecutors, New York State Supreme Court Justice James J. Leff sentenced Williams to 10 to 20 years in jail after Williams pleaded guilty to each of the 84 robberies he was charged with. New York County District Attorney Robert M. Morgenthau argued that Williams was a "persistent felony offender" and should have been sentenced to a longer term in prison, but Leff said he would not "be badgered or harassed" and that the 10-year sentence was sufficient, noting that Williams had never physically assaulted any of his victims.

The final spree
He became a preacher while in prison and was released from jail by the New York State Parole Board on July 9, 2009, after telling the board that it would kill him if he committed any more crimes. He moved with his wife to Gadsden, Alabama and lived in a modest home there. A year later, he took a loan from the Family Loan Company and would show up frequently to make payments and interact with the employees there. The company's president recalled that an employee "witnessed to him", which was "not something we do just as a general rule to anybody". On July 1, he came back to Family Loan wearing a bandanna over his face and wielding a gun. After being given cash by a teller, Williams locked three employees in a room. Needing a rest, he took off his cap and bandanna, and was photographed by security cameras. Police were able to get several clear photos of the perpetrator, but Williams never came up as a suspect.

On July 6, 2010, he told his wife that he was going for a dialysis treatment, the last time that his wife would ever see him. Based on a reconstruction of his travels over the next few days, he stopped off at a motel in Knoxville, Tennessee one night and was in Manhattan by the next day, where he had the oil in his Cadillac changed at a garage on 145th Street, near his mother's apartment. The afternoon of July 9, he wore a red shirt and a cap, and entered Serar, a Madison Avenue clothing store located at 46th Street. After asking for a pair of pants to match his jacket, he pulled out a handgun in one hand, while wielding a cane in the other and having an oxygen tank strapped to his body and connected to his nose. A customer in the store ran out, and Williams fired his gun damaging some shelving and a number of suits. Witnesses saw him cross the street to his getaway car, a black Cadillac with Alabama license plates.

Back on the road to Alabama that night, Williams robbed a Super 8 Hotel location in Hancock, Maryland, tying up the desk clerk and his daughter and stealing $580 in cash. He stopped to catch his breath and threatened to shoot his captives after they looked at him with his mask removed. Down the road, he robbed a Sleep Inn located in Clear Spring, Maryland, but the desk clerk there ran away and Williams was unable to find any cash behind the counter. A Maryland State Police officer saw the black Cadillac driving erratically and began a chase. Williams hit 120 mph and went off the road and died of severe head trauma after he, his pistol and his oxygen tank were all thrown from the vehicle.

His 92-year-old mother remembered him as someone who preached and who "really served God. He served him the last 10 or 20 years." A sister called him "a decent person".

References

American people convicted of robbery
People from Gadsden, Alabama
People from Manhattan
Road incident deaths in Maryland
1946 births
2010 deaths

redpajama_set_name: RedPajamaWikipedia