From c1f07785ef8dd3faadddf9044721ed08c18a2a26 Mon Sep 17 00:00:00 2001 From: Rop <rop@gonggri.jp> Date: Wed, 12 Sep 2018 10:20:53 +0200 Subject: [PATCH] BIG: changed API, documentation, lots of testing, fixes, etc. --- README.md | 393 +++++++++---- .../EventsAndOrdinalTime.ino | 11 +- examples/NoNetwork/NoNetwork.ino | 20 +- examples/TimeFormats/TimeFormats.ino | 33 +- examples/Timezones/Timezones.ino | 5 +- examples/milliseconds/milliseconds.ino | 12 +- images/Arduino-Due.jpg | Bin 0 -> 61719 bytes images/Arduino-MKR-1000.jpg | Bin 0 -> 70702 bytes images/Arduino-Micro.jpg | Bin 0 -> 23870 bytes images/Arduino-Nano.jpg | Bin 0 -> 25681 bytes images/ESP8266.jpg | Bin 0 -> 22408 bytes images/M5Stack.jpg | Bin 0 -> 34724 bytes images/Teensy-3.2.jpg | Bin 0 -> 14634 bytes images/Uno-with-Ethernet.jpg | Bin 0 -> 22968 bytes keywords.txt | 4 +- src/ezTime.cpp | 554 ++++++++++-------- src/ezTime.h | 333 +++++------ 17 files changed, 770 insertions(+), 595 deletions(-) create mode 100644 images/Arduino-Due.jpg create mode 100644 images/Arduino-MKR-1000.jpg create mode 100644 images/Arduino-Micro.jpg create mode 100644 images/Arduino-Nano.jpg create mode 100644 images/ESP8266.jpg create mode 100644 images/M5Stack.jpg create mode 100644 images/Teensy-3.2.jpg create mode 100644 images/Uno-with-Ethernet.jpg diff --git a/README.md b/README.md index c37f341..20bf562 100644 --- a/README.md +++ b/README.md @@ -4,13 +4,7 @@ <sup>* limitations may apply, see "[2036 and 2038](#2036-and-2038)" chapter</sup> -<img src ="images/moving-clock.gif" /> - - - - -| **Major renaming/restructuring still taking place. (The "time" object conflicts on some platforms.) <br> Please test with it but do not use it in for serious things until a few days from now.** | -|----| + @@ -60,7 +54,7 @@ void setup() { Serial.begin(115200); WiFi.begin("your-ssid", "your-password"); - time.waitForSync(); + waitForSync(); Serial.println("UTC: " + UTC.dateTime()); @@ -136,13 +130,12 @@ Saturday, 25-Aug-18 14:32:53.303 UTC ``` [...] - time.setInterval(60); - time.setDebugLevel(INFO); + setInterval(60); + setDebugLevel(INFO); } void loop() { - time.events(); - delay(1000); + events(); } ``` @@ -199,49 +192,62 @@ in File -> Examples you will now see an ezTime heading down under "Examples from * [No daemons here](#no-daemons-here) * [But I only just woke up !](#but-i-only-just-woke-up-) * [Setting and synchronising time](#setting-and-synchronising-time) - * [time.timeStatus](#timetimestatus) - * [time.waitForSync](#timewaitforsync) - * [<em>time.setServer and time.setInterval</em>](#timesetserver-and-timesetinterval) - * [<em>time.updateNTP</em>](#timeupdatentp) - * [<em>time.queryNTP</em>](#timequeryntp) + * [timeStatus](#timestatus) + * [waitForSync](#waitforsync) + * [<em>setServer and setInterval</em>](#setserver-and-setinterval) + * [<em>updateNTP</em>](#updatentp) + * [<em>queryNTP</em>](#queryntp) * [Timezones](#timezones-1) - * [yourTZ.setDefault](#yourtzsetdefault) - * [yourTZ.setPosix](#yourtzsetposix) - * [yourTZ.getPosix](#yourtzgetposix) - * [yourTZ.isDST](#yourtzisdst) - * [yourTZ.getTimezoneName](#yourtzgettimezonename) - * [yourTZ.getOffset](#yourtzgetoffset) - * [yourTZ.setLocation](#yourtzsetlocation) + * [tz.setDefault](#tzsetdefault) + * [tz.setPosix](#tzsetposix) + * [[tz.]getPosix](#tzgetposix) + * [[tz.]isDST](#tzisdst) + * [[tz.]getTimezoneName](#tzgettimezonename) + * [[tz.]getOffset](#tzgetoffset) + * [tz.setLocation](#tzsetlocation) * [Timezone caching, timezoneapi.io, EEPROM or NVS](#timezone-caching-timezoneapiio-eeprom-or-nvs) * [setCache](#setcache) * [clearCache](#clearcache) + * [Crazy timezones](#crazy-timezones) + * [Chatham Islands and Nepal](#chatham-islands-and-nepal) + * [Morocco](#morocco) * [Getting date and time](#getting-date-and-time) - * [yourTZ.dateTime](#yourtzdatetime) + * [[tz.]dateTime](#tzdatetime) * [Built-in date and time formats](#built-in-date-and-time-formats) * [Time and date as numbers](#time-and-date-as-numbers) - * [<em>yourTZ.weekISO and yourTZ.yearISO</em>](#yourtzweekiso-and-yourtzyeariso) - * [time.secondChanged and time.minuteChanged](#timesecondchanged-and-timeminutechanged) + * [<em>[tz.]weekISO and [tz.]yearISO</em>](#tzweekiso-and-tzyeariso) + * [secondChanged and minuteChanged](#secondchanged-and-minutechanged) + * [<em>[tz.]militaryTZ(TIME)</em>](#tzmilitarytztime) * [Events](#events) - * [yourTZ.setEvent](#yourtzsetevent) - * [time.deleteEvent](#timedeleteevent) + * [[tz.]setEvent](#tzsetevent) + * [deleteEvent](#deleteevent) * [Setting date and time manually](#setting-date-and-time-manually) - * [yourTZ.setTime](#yourtzsettime) + * [[tz.]setTime](#tzsettime) * [Working with time values](#working-with-time-values) - * [<em>time.breakTime</em>](#timebreaktime) - * [time.makeTime](#timemaketime) + * [<em>breakTime</em>](#breaktime) + * [makeTime](#maketime) * [<em>makeOrdinalTime</em>](#makeordinaltime) * [<em>compileTime</em>](#compiletime) * [<em>tzTime</em>](#tztime) * [Various functions](#various-functions) - * [<em>time.urlEncode</em>](#timeurlencode) - * [<em>time.zeropad</em>](#timezeropad) + * [<em>urlEncode</em>](#urlencode) + * [<em>zeropad</em>](#zeropad) * [Errors and debug information](#errors-and-debug-information) - * [<em>time.debugLevel</em>](#timedebuglevel) - * [<em>time.error</em>](#timeerror) - * [<em>time.errorString</em>](#timeerrorstring) + * [<em>debugLevel</em>](#debuglevel) + * [<em>error</em>](#error) + * [<em>errorString</em>](#errorstring) * [Compatibility with Arduino Time library](#compatibility-with-arduino-time-library) * [Smaller footprint, AVR Arduinos](#smaller-footprint-avr-arduinos) * [2036 and 2038](#2036-and-2038) + * [ezTime on various Arduino platforms](#eztime-on-various-arduino-platforms) + * [DSD Tech ESP8266](#dsd-tech-esp8266) + * [Teensy 3.2](#teensy-32) + * [Arduino Uno R3 (clone) with Ethernet Shield W5100](#arduino-uno-r3-clone-with-ethernet-shield-w5100) + * [M5Stack (ESP32)](#m5stack-esp32) + * [Arduino Micro](#arduino-micro) + * [Arduino Due](#arduino-due) + * [Arduino MKR1000](#arduino-mkr1000) + * [Arduino Nano](#arduino-nano) ## About this manual @@ -272,33 +278,33 @@ For example, if you have set up a timezone called Berlin, `Berlin.isDST(15363142 ### What happens when you include the library -It all starts when you include the library with `#include <ezTime.h>`. From that point forward there is an object instance called `time` with methods to control the behaviour of ezTime, as well as a timezone object called `UTC`, and a reference to this object called `defaultTZ` (which you may point to a different timezone later). +It all starts when you include the library with `#include <ezTime.h>`. From that point forward you can use the functions in this manual to control the behaviour of ezTime. There will then also be a timezone object called `UTC`, which will be set as the default timezone for all commands that take an optional timezone prefix. ### No daemons here It is important to understand what ezTime does NOT do. It does not somehow create a background process that keeps time, contacts servers, or whatever. The Arduino does the timekeeping for us with its `millis()` counter, which keeps the time in milliseconds since the Arduino started. All ezTime does when it synchronises time is to store a time (in seconds since 1970) and the position of the millis counter when that was. By seeing how much the millis counter has advanced and adding that starting point since 1970, ezTime tells time. But that internal clock isn't perfect, it may — very slowly — drift away from the actual time. That's why there is a periodic event set to synchronise the clock with the NTP server. -If you want events to happen — whether your own or the NTP updates that ezTime does periodically) — you should have `time.events()` in the main loop of your program. +If you want events to happen — whether your own or the NTP updates that ezTime does periodically) — you should have `events()` in the main loop of your program. ### But I only just woke up ! Your code might call `Serial.println(UTC.dateTime());` to print a complete textual representation of date and time in the default format to the serial port. The library would find out that time had not been synchronised yet, and it would send off an NTP request to one of the NTP servers that `pool.ntp.org` resolves to. If your Arduino has just woken up, it probably hasn't gotten its DHCP information, or is not connected to the WiFi network just yet. And so the time lookup would fail and the call to `.dateTime` would return a String with the date and time just after midnight on the 1st of January 1970: the zero-point for the unix-style time counter used by ezTime. It would later correct to the real time, but that's not pretty. -Worse is when you set up a timezone for which you would like to retrieve the daylight savings rules from the server: it can't do that if the connection isn't up yet. So that's why there's a function called `time.waitForSync` that simply calls `time.events()` until it is synchronized (or until a set number of seconds passes, see below). +Worse is when you set up a timezone for which you would like to retrieve the daylight savings rules from the server: it can't do that if the connection isn't up yet. So that's why there's a function called `waitForSync` that simply calls `events()` until it is synchronized (or until a set number of seconds passes, see below). ## Setting and synchronising time -The NTP request from the scenario above failed because the network wasn't up yet, so the clock would still not be synchronised. Subsequent requests will retry the NTP query, but only if they happen at least 5 seconds later. +The NTP request from the scenario above failed because the network wasn't up yet, so the clock would still not be synchronised. A new request will be scheduled for 5 seconds later, and sent when your code (or `waitForSync`) calls `events`. -### time.timeStatus +### timeStatus -`timeStatus_t time.timeStatus();` +`timeStatus_t timeStatus();` -Returns what state the clock is in. `time.timeStatus()` will return one of: +Returns what state the clock is in. `timeStatus()` will return one of: | timeStatus | meaning | |----|----| @@ -308,39 +314,39 @@ Returns what state the clock is in. `time.timeStatus()` will return one of: -### time.waitForSync +### waitForSync -`bool time.waitForSync(uint16_t timeout = 0);` +`bool waitForSync(uint16_t timeout = 0);` -If your code uses timezones other than UTC, it might want to wait to initialise them until there is a valid time to see if the cached timezone definitions are still current. And if you are displaying a calendar or clock, it might look silly if it first says midnight on January 1st 1970 before showing the real time. `time.waitForSync` will wait for the network to connect, and then for the time to be synchronised before returning `true`. If you specify a timeout (in seconds), it will return after that many seconds even if the clock is not in sync yet, returning `false`. (ezTime error `TIMEOUT`, see the [chapter on error and debug messages](#errors-and-debug-information) further down) +If your code uses timezones other than UTC, it might want to wait to initialise them until there is a valid time to see if the cached timezone definitions are still current. And if you are displaying a calendar or clock, it might look silly if it first says midnight on January 1st 1970 before showing the real time. `waitForSync` will wait for the network to connect, and then for the time to be synchronised before returning `true`. If you specify a timeout (in seconds), it will return after that many seconds even if the clock is not in sync yet, returning `false`. (ezTime error `TIMEOUT`, see the [chapter on error and debug messages](#errors-and-debug-information) further down) -### *time.setServer and time.setInterval* +### *setServer and setInterval* -`void time.setServer(String ntp_server = NTP_SERVER);` +`void setServer(String ntp_server = NTP_SERVER);` -`void time.setInterval(uint16_t seconds = 0);` +`void setInterval(uint16_t seconds = 0);` -By default, ezTime is set to poll `pool.ntp.org` every 10 minutes. These defaults should work for most people, but you can change them by specifying a new server with `time.setServer` or a new interval (in seconds) with time.setInterval. If you call setInterval with an interval of 0 seconds or call it as `time.setInterval()`, no more NTP queries will be made. +By default, ezTime is set to poll `pool.ntp.org` every 10 minutes. These defaults should work for most people, but you can change them by specifying a new server with `setServer` or a new interval (in seconds) with setInterval. If you call setInterval with an interval of 0 seconds or call it as `setInterval()`, no more NTP queries will be made. -### *time.updateNTP* +### *updateNTP* -`void time.updateNTP();` +`void updateNTP();` Updates the time from the NTP server immediately. Will keep retrying every 5 seconds (defined by `NTP_RETRY` in `ezTime.h`), will schedule the next update to happen after the normal interval. -### *time.queryNTP* +### *queryNTP* -`bool time.queryNTP(String server, time_t &t, unsigned long &measured_at);` +`bool queryNTP(String server, time_t &t, unsigned long &measured_at);` This will send a single query to the NTP server your specify. It will put, in the `t` and `measured_at` variables passed by reference, the UTC unix-time and the `millis()` counter at the time the exact second happened. It does this by subtracting from `millis()` the fractional seconds received in the answer, as well as half the time it took to get an answer. This means it assumes the network delay was symmetrical, meaning it took just as long for the request to get to the server as for the answer to get back. -If the time server answers, `time.queryNTP` returns `true`. If `false` is returned, `time.error()` will return either `NO_NETWORK` (if the WiFi is not connected) or `TIMEOUT` if a response took more than 1500 milliseconds (defined by `NTP_TIMEOUT` in `ezTime.h`). +If the time server answers, `queryNTP` returns `true`. If `false` is returned, `error()` will return either `NO_NETWORK` (if the WiFi is not connected) or `TIMEOUT` if a response took more than 1500 milliseconds (defined by `NTP_TIMEOUT` in `ezTime.h`). Note that this function is used internally by ezTime, but does not by itself set the time ezTime keeps. You will likely never need to call this from your code. @@ -372,17 +378,17 @@ Internally, ezTime stores everything it knows about a timezone as two strings. O -### yourTZ.setDefault +### tz.setDefault -`void yourTZ.setDefault()` +`void tz.setDefault()` `#include <ezTime.h>` includes the library, creates `ezTime` object and `UTC` instance of `Timezone` class, as well as `defaultTZ`, which is a reference to UTC unless you set it to another timezone by calling `yourTZ.setDefault()`. ezTime is compatible with the classic Arduino time library, and thus you can call various functions in the root namespace like `hour()` and `minute()` — without a timezone in front. They are interpreted as if passed to the default timezone. So if you have existing code, just setting up a timezone and making it the default should cause that code to work as if the time was set in local time. New code that depends on ezTime should probably explicitly mention the timezone. -### yourTZ.setPosix +### tz.setPosix -`bool yourTZ.setPosix(String posix)` +`bool tz.setPosix(String posix)` Allows you to directly enter the posix information for a timezone. For simple timezones, you could set things up manually. For example for India, a mere @@ -396,41 +402,41 @@ is enough, because the time in India doesn't go back and forth with the coming a -### yourTZ.getPosix +### [tz.]getPosix -`String yourTZ.getPosix()` +`String [tz.]getPosix()` `getPosix` does what you would expect and simply returns the posix string stored in ezTime for a given timezone. -### yourTZ.isDST +### [tz.]isDST -`bool yourTZ.isDST(TIME);` +`bool [tz.]isDST(TIME);` Tells you whether DST is in effect at a given time in this timezone. If you do not provide arguments, it's interpreted as 'right now'. You can also specify a time (in seconds since 1970, we'll get back to that) in the first argument. If you want to know for a time in UTC, you can set the second argument to `false`, otherwise you are assumed to mean in local time. -### yourTZ.getTimezoneName +### [tz.]getTimezoneName -`String getTimezoneName(TIME);` +`String [tz.]getTimezoneName(TIME);` Provides the current short code for the timezone, like `IST` for India, or `CET` (during standard time) or `CEST` (during Daylight Saving Time) for most of Europe. -### yourTZ.getOffset +### [tz.]getOffset -`int16_t yourTZ.getOffset(TIME)` +`int16_t [tz.]getOffset(TIME)` Provide the offset from UTC in minutes at the indicated time (or now if you do not specify anything). The offset here is in the same direction as the posix information, so -120 means 2 hours east of UTC. -### yourTZ.setLocation +### tz.setLocation -`bool yourTZ.setLocation(String location = "")` +`bool tz.setLocation(String location = "")` With `setLocation` you can provide a string to do an internet lookup for a timezone. If the string contains a forward slash, the string is taken to be on Olsen timezone name, like `Europe/Berlin`. If it does not, it is parsed as a free form address, for which the system will try to find a timezone. You can enter "Paris" and get the info for "Europe/Paris", or enter "Paris, Texas" and get the timezone info for "America/Chicago", which is the Central Time timezone that Texas is in. After the information is retrieved, it is loaded in the current timezone, and cached if a cache is set (see below). `setLocation` will return `false` (Setting either `NO_NETWORK`, `CONNECT_FAILED` or `DATA_NOT_FOUND`) if it cannot find the information online. @@ -442,23 +448,23 @@ If you use setLocation, the timezone information comes from timezoneapi.io, a se That is why you can create a place for ezTime to store the data about the timezone. That way, it doens't need to get the information anew every time the Arduino boots. You can store the cache for a timezone in EEPROM (the default) or NVS. -If your code says `yourTZ.setCache(0)` it will try to read and interpret the data from EEPROM location 0 immediately, and it will store any future updated data it receives for that timezone there. Some programs might want to just start up in whatever timezone the user has set before, so they just call `yourTZ.setCache(0)` when they start and `yourTZ.setLocation` when the user goes to settings to select a different timezone. Simple programs might do: +If your code says `tz.setCache(0)` it will try to read and interpret the data from EEPROM location 0 immediately, and it will store any future updated data it receives for that timezone there. Some programs might want to just start up in whatever timezone the user has set before, so they just call `yourTZ.setCache(0)` when they start and `yourTZ.setLocation` when the user goes to settings to select a different timezone. Simple programs might do: ``` -if (!yourTZ.setCache(0)) yourTZ.setLocation("Europe/Berlin"); +if (!someTZ.setCache(0)) someTZ.setLocation("Europe/Berlin"); ``` -To only get the timezone data from the internet when the cache is empty or outdated and use the cached information all the other times. +To only get the timezone data from the internet when the cache is empty or outdated and use the cached information all the other times. (Note that if you change the city in the above example it will still get the Berlin information from the cache and not execute the `setLocation` until you run `someTZ.clearCache()`. ### setCache -`bool yourTZ.setCache(const int16_t address)` +`bool tz.setCache(const int16_t address)` If your ezTime is compiled with `#define EZTIME_CACHE_EEPROM` (which is the default), you can supply an EEPROM location. A single timezone needs 50 bytes to cache. The data is written in compressed form so that the Olsen and Posix strings fit in 3/4 of the space they would normally take up, and along with it is stored a checksum, a length field and a single byte for the month in which the cache was retrieved, in months after January 2018. -`bool yourTZ.setCache(const String name, const String key)` +`bool tz.setCache(const String name, const String key)` On ESP32 and possibly other platforms, there is an emulation for the EEPROM in flash, bu there is also a nicer mechanism that stores keys and values in flash. You can use this by enabling `#define EZTIME_CACHE_NVS` in `ezTime.h` You can then supply a section name and a key to serve as the cache storage location for a given timezone. @@ -466,19 +472,30 @@ On ESP32 and possibly other platforms, there is an emulation for the EEPROM in f ### clearCache -`void time.clearCache(bool delete_section = false);` +`void clearCache(bool delete_section = false);` Clears the cache for a timezone. If you use EEPROM the bytes are overwritten with zeroes, if you use NVS, the key is deleted. If you provide the argument `true` using NVS the entire section is deleted. Do this only if that section does not contain anything else that you want to keep. + -## Getting date and time +### Crazy timezones + +#### Chatham Islands and Nepal + +The Chatham Islands are in Pacific about 800 kilometres east of New Zealand. Some 600 people live there, but they have their own timezone (UTC+12:45). It is one of only three time zones with a 45-minute offset from UTC, the others being Nepal Time (UTC+05:45) and the unofficial Australian Central Western Time (UTC+08:45). These timezones work fine in ezTime. + +#### Morocco + +Morocco goes on and off Daylight Saving Time twice per year. This currently breaks ezTime as timezoneapi.io gives us a posix string that only contains the first of the periods. Fortunately they will stop doing this in 2020: the Moroccans probably got tired of all the clocks that did not adjust properly. -### yourTZ.dateTime +## Getting date and time + +### [tz.]dateTime ``` -String yourTZ.dateTime(TIME, String format = DEFAULT_TIMEFORMAT); +String [tz.]dateTime(TIME, String format = DEFAULT_TIMEFORMAT); ``` We'll start with one of the most powerful functions of ezTime. With `dateTime` you can represent a date and/or a time in any way you want. You do this in the same way you do in many programming languages: by providing a special formatting string. Many characters in this string have special meanings and will be replaced. What this means is that `UTC.dateTime("l, d-M-y H:i:s.v T")` might return `Saturday, 25-Aug-18 14:32:53.282 UTC`. Below is the list of characters and what they are replaced by. Any characters not on this list are simply not replaced and stay as is. See the last two entries for a way to use characters on this list in your string. @@ -515,7 +532,8 @@ We'll start with one of the most powerful functions of ezTime. With `dateTime` y | `Z` | Timezone offset in seconds. West of UTC is negative, east of UTC is positive. | `z` | The day of the year (starting from 0) | `W` | ISO-8601 week number. See right below for explanation link. -| `X` | ISO-8601 year for year-week notation as four digit year. Warning: Not guaranteed to be same as current year, may be off by one at start or end of year. See [here](https://en.wikipedia.org/wiki/ISO_week_date) +| `X` | ISO-8601 year for year-week notation as four digit year. Warning: Not guaranteed to be same as current year, may be off by one at start or end of year. See [here](https://en.wikipedia.org/wiki/ISO_week_date) +| `B` | One-letter military code for the timezone, or `?` if the offset is not a whole number of hours. | `\` | Not printed, but escapes the following character, meaning it will not be replaced. But inserting a backslash in the string means you have to supply two backslashes `\\` to be interpreted as one. | `~` | (tilde) Same as backslash above, except easier to insert in the string. Example: `~t~h~e` will print the word `the` in the string. Letters should be escaped even if they are not on the list because they may be replaced in future versions. @@ -547,13 +565,13 @@ There are built-in values to specify some standard date and time formats. For ex ### Time and date as numbers -`time_t yourTZ.now()` +`time_t [tz.]now()` Returns the current time in seconds since midnight Jan 1st 1970 in the timezone specified. -`uint8_t yourTZ.hour(TIME)`<br>`uint8_t yourTZ.minute(TIME)`<br>`uint8_t yourTZ.second(TIME)`<br>`uint16_t yourTZ.ms(TIME)`<br>`uint8_t yourTZ.day(TIME)`<br>`uint8_t yourTZ.weekday(TIME)`<br>`uint8_t yourTZ.month(TIME)`<br>`uint16_t yourTZ.year(TIME);` +`uint8_t [tz.]hour(TIME)`<br>`uint8_t [tz.]minute(TIME)`<br>`uint8_t [tz.]second(TIME)`<br>`uint16_t [tz.]ms(TIME)`<br>`uint8_t [tz.]day(TIME)`<br>`uint8_t [tz.]weekday(TIME)`<br>`uint8_t [tz.]month(TIME)`<br>`uint16_t [tz.]year(TIME);` -These functions return the various elements of date or time for right now (no arguments) or for a given time in seconds sinds 1970. The `yourTZ.weekday` returns a number starting with 1 for Sunday. +These functions return the various elements of date or time for right now (no arguments) or for a given time in seconds sinds 1970. `weekday` returns a number starting with 1 for Sunday. If you want to compare you can use the defines for names of days and months, like: @@ -565,47 +583,57 @@ if (UTC.weekday() == TUESDAY) Serial.print("Tuesday!!"); if (UTC.month() == FEBRUARY && UTC.day() == 14) Serial.print("Valentine's day!"); ``` -### *yourTZ.weekISO and yourTZ.yearISO* +### *[tz.]weekISO and [tz.]yearISO* -`uint8_t yourTZ.weekISO(TIME)`<br>`uint16_t yourTZ.yearISO(TIME)` +`uint8_t [tz.]weekISO(TIME)`<br>`uint16_t [tz.]yearISO(TIME)` These functions return the ISO-8601 Year-week notation year and week number. Note that the year returned here can differ one from the current year at the first or last days or the year. ISO-8601 defines the first year of the week as the first week that has a Thursday in it. Meaning the start of the ISO-year can be a few days earlier (in December) or a few days later (in January). -### time.secondChanged and time.minuteChanged +### secondChanged and minuteChanged -`bool time.secondChanged()`<br>`bool time.minuteChanged()` +`bool secondChanged()`<br>`bool minuteChanged()` You might have code that put the time on a display in some really nice-looking format, using `dateTime`. The main loop wants to keep the time updated, but not every time the main loop runs, because it would cause the display to flicker. The classic solution for this is to store the time, recreate the string every time and compare to see if it changed. With `secondChanged` and `minuteChanged` you can just write something like: ``` -if (time.minuteChanged()) WriteToSomeDisplay(UTC.dateString("H:i")); +if (minuteChanged()) WriteToSomeDisplay(UTC.dateString("H:i")); ``` +### *[tz.]militaryTZ(TIME)* + +`String [tz.]militaryTZ(TIME)` + +Returns the one-letter military code for the timezone. See [here](https://www.timeanddate.com/time/zones/military) for details. If the offset for the current timezone is not a whole number of hours, "?" is returned. + + + ## Events -### yourTZ.setEvent +### [tz.]setEvent -`uint8_t yourTZ.setEvent(void (*function)(), TIME)` +`uint8_t [tz.]setEvent(void (*function)(), TIME)` -`uint8_t yourTZ.setEvent(void (*function)(), const uint8_t hr, const uint8_t min, const uint8_t sec, const uint8_t day, const uint8_t mnth, uint16_t yr)` +`uint8_t [tz.]setEvent(void (*function)(), const uint8_t hr, const uint8_t min, const uint8_t sec, const uint8_t day, const uint8_t mnth, uint16_t yr)` -With ezTime, you can set your own events to run at a specified time. Simply run `setEvent` specifying the name of the function you would like to call (without the brackets) and a time you would like to call it. The first time `time.events` runs and notices that it is at or after the time you specified it will run the event and delete the event. If you want an event to recur, simply set a new event in the function that gets called. You can have a maximum of 8 events by default (easily changed by changing `MAX_EVENTS` in `ezTime.h`). ezTime uses one event internally to trigger the next NTP update. +With ezTime, you can set your own events to run at a specified time. Simply run `setEvent` specifying the name of the function you would like to call (without the brackets) and a time you would like to call it. The first time `events` runs and notices that it is at or after the time you specified it will run the event and delete the event. If you want an event to recur, simply set a new event in the function that gets called. You can have a maximum of 8 events by default (easily changed by changing `MAX_EVENTS` in `ezTime.h`). ezTime uses one event internally to trigger the next NTP update. -`yourTZ.setevent` returns an 8-bit event handle between 1 and MAX_EVENTS which you can store in a variable and use to delete the event with `time.deleteEvent` should your program need to. Zero is returned and the error `TOO_MANY_EVENTS` set if there are no more free slots for your new event. +`[tz.]setevent` returns an 8-bit event handle between 1 and MAX_EVENTS which you can store in a variable and use to delete the event with `deleteEvent` should your program need to. Zero is returned and the error `TOO_MANY_EVENTS` set if there are no more free slots for your new event. -### time.deleteEvent +### deleteEvent + +`void deleteEvent(uint8_t event_handle)` -`void time.deleteEvent(uint8_t event_handle)` +Deletes the event with the handle as returned by `setEvent`. -`void time.deleteEvent(void (*function)())` +`void deleteEvent(void (*function)())` -Buy you can also call `time.deleteEvent` with the name of the function (again without the brackets) to delete all events that would have executed that function. +Buy you can also call `deleteEvent` with the name of the function (again without the brackets) to delete all events that would have executed that function. @@ -614,21 +642,21 @@ Buy you can also call `time.deleteEvent` with the name of the function (again wi  -### yourTZ.setTime +### [tz.]setTime -`void yourTZ.setTime(time_t t, uint16_t ms = 0)` +`void [tz.]setTime(time_t t, uint16_t ms = 0)` -`void yourTZ.setTime(const uint8_t hr, const uint8_t min, const uint8_t sec,`<br> `const uint8_t day, const uint8_t mnth, uint16_t yr)` +`void [tz.]setTime(const uint8_t hr, const uint8_t min, const uint8_t sec,`<br> `const uint8_t day, const uint8_t mnth, uint16_t yr)` `setTime` pretty much does what it says on the package: it sets the time to the time specified, either as separate elements or as a time_t value in seconds since Jan 1st 1970. If you have another source of time — say, a GPS receiver — you can use `setTime` to set the time in the UTC timezone. Or you can set the local time in any other timezone you have set up and ezTime will set it's internal offset to the corresponding time in UTC so all timezones stay at the correct time. -It's important to realise however that NTP updates will still become due and when they do time will be set to the time returned by the NTP server. If you do not want that, you can turn off NTP updates with `eztime.setInterval()`. If you do not use NTP updates at all and do not use the network lookups for timezone information either, you can compile ezTime with no network support by commenting out `#define EZTIME_NETWORK_ENABLE` in the `ezTime.h` file, creating a smaller library. +It's important to realise however that NTP updates will still become due and when they do time will be set to the time returned by the NTP server. If you do not want that, you can turn off NTP updates with `ezsetInterval()`. If you do not use NTP updates at all and do not use the network lookups for timezone information either, you can compile ezTime with no network support by commenting out `#define EZTIME_NETWORK_ENABLE` in the `ezTime.h` file, creating a smaller library. ## Working with time values -### *time.breakTime* +### *breakTime* -`void time.breakTime(time_t time, tmElements_t &tm)` +`void breakTime(time_t time, tmElements_t &tm)` If you create a `tmElements_t` structure and pass it to `breakTime`, it will be filled with the various numeric elements of the time value specified. tmElements_t looks as follows: @@ -648,7 +676,7 @@ Meaning this code would print the hour: ``` tmElements_t tm; -time.breakTime(UTC.now(), tm); +breakTime(UTC.now(), tm); Serial.print(tm.Hour); ``` @@ -656,13 +684,13 @@ But `Serial.println(UTC.hour())` also works and is much simpler. `breakTime` is -### time.makeTime +### makeTime -`time_t time.makeTime(tmElements_t &tm);` +`time_t makeTime(tmElements_t &tm);` -This does the opposite of `time.breakTime`: it takes a `tmElements_t` structure and turns it into a `time_t` value in seconds since Jan 1st 1970. +This does the opposite of `breakTime`: it takes a `tmElements_t` structure and turns it into a `time_t` value in seconds since Jan 1st 1970. -`time_t time.makeTime(uint8_t hour, uint8_t minute, uint8_t second,`<br> `uint8_t day, uint8_t month, int16_t year);` +`time_t makeTime(uint8_t hour, uint8_t minute, uint8_t second,`<br> `uint8_t day, uint8_t month, int16_t year);` This version takes the various numeric elements as arguments. Note that you can pass the year both as years since 1970 and as full four digit years. @@ -670,12 +698,12 @@ This version takes the various numeric elements as arguments. Note that you can ### *makeOrdinalTime* -`time_t time.makeOrdinalTime(uint8_t hour, uint8_t minute, uint8_t second,`<br> `uint8_t ordinal, uint8_t wday, uint8_t month, int16_t year);` +`time_t makeOrdinalTime(uint8_t hour, uint8_t minute, uint8_t second,`<br> `uint8_t ordinal, uint8_t wday, uint8_t month, int16_t year);` With `makeOrdinalTime` you can get the `time_t` value for a date written as "the second Tuesday in March". The `ordinal` value is 1 for first, 2 for second, 3 for third, 4 for fourth and either 5 or 0 for the last of that weekday in the month. `wday` is weekdays starting with Sunday as 1. You can use the names of ordinals, months and weekdays in all caps as they are compiler defines. So the following would find the `time_t` value for midnight at the start of the first Thursday of the year in variable `year`. ``` -time.makeOrdinalTime(0, 0, 0, FIRST, THURSDAY, JANUARY, year) +makeOrdinalTime(0, 0, 0, FIRST, THURSDAY, JANUARY, year) ``` > *This is actually a fragment of ezTime's own code, as it can print ISO week numbers and the first ISO week in a year is defined as the week that has the first Thursday in it.* @@ -684,17 +712,17 @@ time.makeOrdinalTime(0, 0, 0, FIRST, THURSDAY, JANUARY, year) ### *compileTime* -`time_t time.compileTime(String compile_date = __DATE__, String compile_time = __TIME__);` +`time_t compileTime(String compile_date = __DATE__, String compile_time = __TIME__);` ### *tzTime* -`time_t yourTZ.tzTime(TIME)` +`time_t [tz.]tzTime(TIME)` This is the internal workhorse function that converts `time_t` in UTC to `time_t` in a timezone or vice versa. It is used by almost all the functions that apply to a timezone, and it takes `TIME` — meaning nothing for "right now", or a `time_t` value and an optional argument to specify whether that is `LOCAL_TIME` or `UTC_TIME`, and then it will convert to the opposite. `TIME_NOW` and `LAST_READ` are always output as `time_t` in that timezone. -`time_t yourTZ.tzTime(time_t t, ezLocalOrUTC_t local_or_utc, String &tzname, bool &is_dst, int16_t &offset)` +`time_t [tz.]tzTime(time_t t, ezLocalOrUTC_t local_or_utc, String &tzname, bool &is_dst, int16_t &offset)` In this second form you have to supply all arguments, and it will fill your `tzname`, `is_dst` and `offset` variables with the appropriate values, the offset is in minutes west of UTC. Note that there are easier functions for you to get this information: `getTimezoneName`, `isDST` and `getOffset` respectively. If your code calls all three in a tight loop you might consider using `tzTime` instead as the other functions each do the whole parsing using `tzTime`, so you would be calling it three times and it does quite a bit. @@ -704,17 +732,17 @@ In this second form you have to supply all arguments, and it will fill your `tzn These functions are available for you to use because ezTime needed them internally, so they come at no extra cost, so to speak. -### *time.urlEncode* +### *urlEncode* -`String time.urlEncode(String str);` +`String urlEncode(String str);` Does what is says on the package: url-encodes a string. -### *time.zeropad* +### *zeropad* -`String time.zeropad(uint32_t number, uint8_t length);` +`String zeropad(uint32_t number, uint8_t length);` Pads `number` with zeroes to the left until the resulting string is `length` places long. @@ -722,9 +750,9 @@ Pads `number` with zeroes to the left until the resulting string is `length` pla ## Errors and debug information -### *time.debugLevel* +### *debugLevel* -`void time.debugLevel(ezDebugLevel_t level);` +`void debugLevel(ezDebugLevel_t level);` Sets the level of detail at which ezTime outputs messages on the serial port. Can be set to one of: @@ -739,19 +767,19 @@ Sets the level of detail at which ezTime outputs messages on the serial port. Ca -### *time.error* +### *error* -`ezError_t time.error(bool reset = false);` +`ezError_t error(bool reset = false);` -A number of functions in ezTime are booleans, meaning they return `true` or `false` as their return value, where `false` means some error occurred. `time.error` will return an `ezError_t` enumeration, something like `NO_NETWORK` (obvious) or `LOCKED_TO_UTC` (when you try to load some new timezone info to the UTC object). You can test for these specific errors and this document will mention which errors might happen in what functions. +A number of functions in ezTime are booleans, meaning they return `true` or `false` as their return value, where `false` means some error occurred. `error` will return an `ezError_t` enumeration, something like `NO_NETWORK` (obvious) or `LOCKED_TO_UTC` (when you try to load some new timezone info to the UTC object). You can test for these specific errors and this document will mention which errors might happen in what functions. -When you call `time.error(true)`, it will also reset the error to `OK`, so you can make sure no new errors happened after a certain point. +When you call `error(true)`, it will also reset the error to `OK`, so you can make sure no new errors happened after a certain point. -### *time.errorString* +### *errorString* -`String time.errorString(ezError_t err = LAST_ERROR);` +`String errorString(ezError_t err = LAST_ERROR);` This will give you a string representation of the error specified. The pseudo-error `LAST_ERROR`, which is the default, will give you the textual representation of the last error. This will not reset the last error stored. @@ -759,7 +787,7 @@ This will give you a string representation of the error specified. The pseudo-er ## Compatibility with Arduino Time library -The classic Arduino time library has a lot of functions and defines that end up in the root namespace, meaning you can just run `hour()` instead of `YourTZ.hour()`. These functions are supported by ezTime and will act as if they are prefixed with the defaultTZ. This is UTC by default, but you can make any timezone the default by writing `yourTZ.setDefault();` +The classic Arduino time library has a lot of functions and defines that end up in the root namespace, meaning you can just run `hour()` instead of `someTZ.hour()`. These functions are supported by ezTime and will act as if they are prefixed with the defaultTZ. This is UTC by default, but you can make any timezone the default by writing `someTZ.setDefault();` If you do not wish to have these functions in your namespace, you can comment out `#define ARDUINO_TIMELIB_COMPATIBILITY` in `ezTime.h`. New code depending on ezTime should probably explicitly state the timezone, especially in code with multiple timezones. @@ -767,7 +795,7 @@ If you do not wish to have these functions in your namespace, you can comment ou ## Smaller footprint, AVR Arduinos -This library still compiles on an Arduino Uno with an Ethernet shield. However, it will use up almost all of the flash on that. Which is fine if you were making a date and time display anyway, but if your code is bigger than that, you will want to make it smaller. By uncommenting `#define EZTIME_MAX_DEBUGLEVEL_NONE` in `ezTime.h` you get no debugging information and no textual errors, which saves a couple of kilobytes. If you do not use networking, you should also comment out `#define EZTIME_NETWORK_ENABLE`, that will save a *ton* of space: not just in ezTime but also because the networking library does not get loaded. +This library compiles on an Arduino Uno with an Ethernet shield. However, it will use up almost all of the flash on that, which is fine if you were making a date and time display anyway. But if your code is bigger than that, you will want to make it smaller. By uncommenting `#define EZTIME_MAX_DEBUGLEVEL_NONE` in `ezTime.h` you get no debugging information and no textual errors, which saves a couple of kilobytes. If you do not use networking, you should also comment out `#define EZTIME_NETWORK_ENABLE`, that will save a *ton* of space: not just in ezTime but also because the networking library does not get loaded. @@ -775,4 +803,113 @@ This library still compiles on an Arduino Uno with an Ethernet shield. However, The NTP timestamps used here run until the 7th of February 2036. NTP itself has 128 bits of time precision, I haven't looked into it much. Didn't have to, because just a little later, on the 19th of January 2038, the time_t 32 bit signed integer overflows. This is 20 years from today, in 2018. The Arduino world, if it still exists around then, will have come together around some solution that probably involves 64-bit time like in many operating systems of 2018. If you use this library in your nuclear generating station (**NOOOOO!**), make sure you're not around when these timers wrap around. -Should you be the one doing maintenance on this is some far-ish future: For ezTime I created another overflowing counter: the cache age for the timezone information is written as a single unsigned byte in months after January 2018, so that could theoretically cause problems in 2039, but I think everything will just roll over and use 2039 as the new anchor date. \ No newline at end of file +Should you be the one doing maintenance on this is some far-ish future: For ezTime I created another overflowing counter: the cache age for the timezone information is written as a single unsigned byte in months after January 2018, so that could theoretically cause problems in 2039, but I think everything will just roll over and use 2039 as the new anchor date. + + + +## ezTime on various Arduino platforms + +If your Arduino has anything like normal Arduino networking, we can make it work. In some cases it might take an exception in the code if it needs a special header file or so, but no big deal. And if it has `EEPROM.h` or `Preferences.h` to store things in flash, we can make the cache work too. Please open an issue on [github](htttps://github.com/ropg/ezTime) to tell me if something doesn't work. Here's a list of boards that ezTime has been tested on. + +### DSD Tech ESP8266 + + + +ezTime 0.7.2 ran fine. Board: Generic ESP8266, Reset Method: nodemcu. Don't forget to replace `#include <WiFi.h>` with `#include <ESP8266WiFi.h>` in your sketch. + + + +### Teensy 3.2 + + + +ezTime 0.7.2 ran fine. Did not test networking, so compiled with `#define EZTIME_NETWORK_ENABLE` commented out, used NoNetwork example. + + + +### Arduino Uno R3 (clone) with Ethernet Shield W5100 + + + +ezTime 0.7.2 ran, but the EthernetShield example leaves only 2k of flash: + +``` +Sketch uses 30372 bytes (94%) of program storage space. Maximum is 32256 bytes. +Global variables use 771 bytes (37%) of dynamic memory, leaving 1277 bytes for local variables. Maximum is 2048 bytes. +``` + +By setting `#define EZTIME_MAX_DEBUGLEVEL_NONE` in `eztime.h` we free up some memory: + +``` +Sketch uses 27170 bytes (84%) of program storage space. Maximum is 32256 bytes. +Global variables use 761 bytes (37%) of dynamic memory, leaving 1287 bytes for local variables. Maximum is 2048 bytes. +``` + +ezTime and NoNetwork example without `#define EZTIME_NETWORK_ENABLE` (if you have another time source): + +``` +Sketch uses 11490 bytes (35%) of program storage space. Maximum is 32256 bytes. +Global variables use 376 bytes (18%) of dynamic memory, leaving 1672 bytes for local variables. Maximum is 2048 bytes. +``` + + + +### M5Stack (ESP32) + + + +ezTime 0.7.2 ran fine. + + + +### Arduino Micro + + + +USB took a while to be recognized on my Mac, and then I took a while to discover that this is one that needs the + +``` +while (!Serial) { ; } // wait for serial port to connect. Needed for native USB port only +``` + +line that you see in many sketches. But then ezTime 0.7.2 ran fine using NoNetwork example. + + + +### Arduino Due + + + +ezTime 0.7.2 runs fine (No networking on board, so tested with NoNetwork example). If you use the native USB port it also needs the + +``` +while (!Serial) { ; } // wait for serial port to connect. Needed for native USB port only +``` + +and you need to change all the `Serial.` to `SerialUSB.` in your sketch. + + + +### Arduino MKR1000 + + + +ezTime 0.7.2 worked, eventually. But I didn't like this one. Getting online is difficult. Install Wifi101 library from the library manager and make sure to start your sketch with: + +``` +#include <SPI.h> +#include <WiFi101.h> +``` + +* Test sketch complained about WiFi firmware / driver mismatch. Couldn't get the firmware update tool to work, but WiFi worked anyway. +* The WiFi object does not have the `isConnected` method so I wrote some detection for ezTime to skip the NO_NETWORK checks. This means that if you have debugLevel at ERROR or higher, waitForSync will throw some NTP TIMEOUT errors (and then continue just fine after wifi is online). +* It doesn't have `EEPROM.h` or `Preferences.h` but some proprietary `FlashStorage.h`. So no cache for the moment. (Turn off both cache defines at the beginning of `ezTime.h`. I'll write it if the third person wants it. + + + +### Arduino Nano + + + +ezTime 0.7.2 runs fine (No networking on board, so tested with NoNetwork example) + diff --git a/examples/EventsAndOrdinalTime/EventsAndOrdinalTime.ino b/examples/EventsAndOrdinalTime/EventsAndOrdinalTime.ino index 6fad798..748d17e 100644 --- a/examples/EventsAndOrdinalTime/EventsAndOrdinalTime.ino +++ b/examples/EventsAndOrdinalTime/EventsAndOrdinalTime.ino @@ -9,18 +9,19 @@ void setup() { Serial.begin(115200); + while (!Serial) { ; } // wait for Serial port to connect. Needed for native USB port only WiFi.begin("your-ssid", "your-password"); - time.waitForSync(); + waitForSync(); // Set the event to trigger for the first time - UTC.setEvent( itIsTheSecondTuesday, nextSecondTuesday() ); + setEvent( itIsTheSecondTuesday, nextSecondTuesday() ); } void loop() { - time.events(); + events(); } @@ -29,7 +30,7 @@ void itIsTheSecondTuesday() { Serial.println(UTC.dateTime()); // The event then sets a new event for the next time - UTC.setEvent( itIsTheSecondTuesday, nextSecondTuesday() ); + setEvent( itIsTheSecondTuesday, nextSecondTuesday() ); } time_t nextSecondTuesday() { @@ -40,7 +41,7 @@ time_t nextSecondTuesday() { while (t <= UTC.now()) { // Try in current month first, if that has passed, loop once more for next month - t = time.makeOrdinalTime(12, 0, 0, SECOND, TUESDAY, m, y); + t = makeOrdinalTime(12, 0, 0, SECOND, TUESDAY, m, y); m++; if (m == 13) { m = 1; diff --git a/examples/NoNetwork/NoNetwork.ino b/examples/NoNetwork/NoNetwork.ino index ce6ba60..3c37a40 100644 --- a/examples/NoNetwork/NoNetwork.ino +++ b/examples/NoNetwork/NoNetwork.ino @@ -7,30 +7,34 @@ * offset to UTC. * * If you do not want to look up the posix string you can simply provide a name and - * the current UTC offset, like "PDT+7" + * the current UTC offset in hours _west_ of UTC, like "PDT+7" */ #include <ezTime.h> -#define LOCALTZ_POSIX "PST+8PDT,M3.2.0/2,M11.1.0/2" // US Pacific time +#define LOCALTZ_POSIX "CET-1CEST,M3.4.0/2,M10.4.0/3" // Time in Berlin Timezone local; -Timezone berlin; +Timezone pacific; void setup() { Serial.begin(115200); + while (!Serial) { ; } // wait for Serial port to connect. Needed for native USB port only Serial.println(); local.setPosix(LOCALTZ_POSIX); - local.setTime(time.compileTime()); - Serial.println("Local time : " + local.dateTime()); + local.setTime(compileTime()); + Serial.print(F("Local time : ")); + Serial.println(local.dateTime()); - berlin.setPosix("CET-1CEST,M3.4.0/2,M10.4.0/3"); - Serial.println("Berlin time : " + berlin.dateTime()); + pacific.setPosix(F("PST+8PDT,M3.2.0/2,M11.1.0/2")); + Serial.print(F("Pacific time : ")); + Serial.println(pacific.dateTime()); - Serial.println("UTC : " + UTC.dateTime()); + Serial.print(F("UTC : ")); + Serial.println(UTC.dateTime()); } diff --git a/examples/TimeFormats/TimeFormats.ino b/examples/TimeFormats/TimeFormats.ino index 745f2f0..4259e3d 100644 --- a/examples/TimeFormats/TimeFormats.ino +++ b/examples/TimeFormats/TimeFormats.ino @@ -4,29 +4,30 @@ void setup() { Serial.begin(115200); + WiFi.begin("your-ssid", "your-password"); - - time.waitForSync(); + while (!Serial) { ; } // wait for Serial port to connect. Needed for native USB port only + waitForSync(); Serial.println(); Serial.println("Time in various internet standard formats ..."); Serial.println(); - Serial.println("ATOM: " + UTC.dateTime(ATOM)); - Serial.println("COOKIE: " + UTC.dateTime(COOKIE)); - Serial.println("IS8601: " + UTC.dateTime(ISO8601)); - Serial.println("RFC822: " + UTC.dateTime(RFC822)); - Serial.println("RFC850: " + UTC.dateTime(RFC850)); - Serial.println("RFC1036: " + UTC.dateTime(RFC1036)); - Serial.println("RFC1123: " + UTC.dateTime(RFC1123)); - Serial.println("RFC2822: " + UTC.dateTime(RFC2822)); - Serial.println("RFC3339: " + UTC.dateTime(RFC3339)); - Serial.println("RFC3339_EXT: " + UTC.dateTime(RFC3339_EXT)); - Serial.println("RSS: " + UTC.dateTime(RSS)); - Serial.println("W3C: " + UTC.dateTime(W3C)); + Serial.println("ATOM: " + dateTime(ATOM)); + Serial.println("COOKIE: " + dateTime(COOKIE)); + Serial.println("IS8601: " + dateTime(ISO8601)); + Serial.println("RFC822: " + dateTime(RFC822)); + Serial.println("RFC850: " + dateTime(RFC850)); + Serial.println("RFC1036: " + dateTime(RFC1036)); + Serial.println("RFC1123: " + dateTime(RFC1123)); + Serial.println("RFC2822: " + dateTime(RFC2822)); + Serial.println("RFC3339: " + dateTime(RFC3339)); + Serial.println("RFC3339_EXT: " + dateTime(RFC3339_EXT)); + Serial.println("RSS: " + dateTime(RSS)); + Serial.println("W3C: " + dateTime(W3C)); Serial.println(); - Serial.println(" ... and any other format, like \"" + UTC.dateTime("l ~t~h~e jS ~o~f F Y, g:i A") + "\""); + Serial.println(" ... and any other format, like \"" + dateTime("l ~t~h~e jS ~o~f F Y, g:i A") + "\""); } void loop() { - + events(); } diff --git a/examples/Timezones/Timezones.ino b/examples/Timezones/Timezones.ino index e0bf51a..251fff6 100644 --- a/examples/Timezones/Timezones.ino +++ b/examples/Timezones/Timezones.ino @@ -4,12 +4,13 @@ void setup() { Serial.begin(115200); + while (!Serial) { ; } // wait for Serial port to connect. Needed for native USB port only WiFi.begin("your-ssid", "your-password"); // Uncomment the line below to see what it does behind the scenes // ezTime.debugLevel(INFO); - time.waitForSync(); + waitForSync(); Serial.println(); Serial.println("UTC: " + UTC.dateTime()); @@ -24,5 +25,5 @@ void setup() { } void loop() { - + events(); } diff --git a/examples/milliseconds/milliseconds.ino b/examples/milliseconds/milliseconds.ino index 1890a18..cfac54a 100644 --- a/examples/milliseconds/milliseconds.ino +++ b/examples/milliseconds/milliseconds.ino @@ -4,10 +4,11 @@ void setup() { Serial.begin(115200); + while (!Serial) { ; } // wait for Serial port to connect. Needed for native USB port only WiFi.begin("your-ssid", "your-password"); - - time.setInterval(60); - time.waitForSync(); + + setInterval(60); + waitForSync(); Serial.println(); @@ -26,11 +27,10 @@ void setup() { Serial.println("And ezTime is not making those milliseconds up either."); Serial.println(); Serial.println(" ... Stick around as we do an NTP request every minute."); - ezTime.debugLevel(INFO); + debugLevel(INFO); } void loop() { - time.events(); - delay(1000); + events(); } diff --git a/images/Arduino-Due.jpg b/images/Arduino-Due.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7002d7d907b4c231546ed72791604841e4dd0e83 GIT binary patch literal 61719 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 literal 0 HcmV?d00001 diff --git a/images/Arduino-MKR-1000.jpg b/images/Arduino-MKR-1000.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f1f2fee6fa091119c4b84a2d827c514af9ee79d5 GIT binary patch literal 70702 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	U z;26SA5x39x<TLaLtMybTV0PNDOkalJ-Us?p3g9y9IejAG!vro55^lpTGC4;bOwNtN z&1;JE7qgr>-{SusH4&a0l<Ykjx!KWr%Oz3D%#8#kpHsI!9edVq(do#Gul=ER!!wHV zcd%2c<61%3$Bk|Wl(;^-x-_eJhT2Ek@|U^Vb)Nw<@$$^~p`+Et?+Z%~1UFQqTPt_a znJBQ86}WY5eTFjxs*5M4onDnT=58*2)efrsT&nQK@XqRtg}Q}djR~+SV7muZy_tNC z1SxG9+3;FaT3erc=%ds9Z~XaE&X-Q{Zo4=A%YTkN{_#^yPruqh{YXy||74*mJR>JB z%o8a-SbKgYJKVZH8fc^6H35J7I^$KEM%rD>EVjBnK`w84kV^r6#UvAI!;=t~;N}ez z>wwGf5PU-$vz%Vr`OlcH`&6E%?Cl8IFRdBYW03Fqh1YUB))IEAEv}4oUiC|L%34Md z^Ci1i4SGL4l6Tj1M%i~W;1g{r;69XOcckKze78tO(1qJQ9^#3;*Pk`LR;I~{JJ(sm z%QalS7pBb=pd@Dp8v1ms?YVnN0EnFX=hz;HArqt7rq7I;3-4&PvmD2MYq6Ohd|h|} zdTy1xJMrdMlJx|4t?uil(QJ@{10^5b8+U$r|GF*t?p~^s%b?Fsgc$X57&zwZB1Swv zN`Y!yX%&^*on9`fXpicTQmxOhcRzYJJ)Z)@XmHW@dYkhXtkxZ>opXa<EP2#mzT~t@ zxWLB)J<1IR^>I6@gvmT>hD?Gc^6B8@iFt!gO)+Me%!L6)oMxKWHD(HgDs{ahi3)xK zl}O`d-5q`gF}W|b`R4n#)lx%qoQ2=}Mi178sLpq-$=GN6Ny^TFl}^rlH*Z*x8JXoy z9$)NjXk&d=uBL8B_iWFp^^A1<VrlP2ICY}m98MK9hGKJY=z$31W=k836^GP>ty!gb z+Ca`)9$k~l@{*y)ckzMta>w8x&3KL`%Y;Em3{4{oc6@=^IX1V9hCtu6@z4v?Ld}xk zJZS&DI?(HJDPR0c9fQVM!|Q~#wLtH@dGFXvkxTkcD(y<j%Um^f4?cKb3@zSTh4nlz zHwim;JZGd(h4)5N!jYR!X2lIXMMZ~x3cgubU0r0lNEfR43Vwn%quGJ{iEpZpFI_c~ zNp)UzIP&}zHhX0Ra20m@Z^oHD9~Q%_az^HKKh3ouU9@#;Q_APyF;cmnB@DRo<I`gR z-bO38%OTG>Bgj5?#Htgk-Ve!Y<8G<MU*Z4*9<>Xyr^Fww+#1Y@Ft3)##@yd-TqE$q zO{<vuu5@Sz|7345W4)(Kbv>%bfWRAAwX1w)?I^g+<Lt)~O_SUFd#^DcI!k|;kC&fB z`XriGs+@k<vkz}hq-~wI6!d+d>@DQvKWo(Dgk%4@QiTaA&DsPL>U@~CK^=MlOAUci zecQaS%HTfbO6yla%z&|$A{Aiwo*NFe5dIs%$1Z{c=hIRFlFXY&06&SHKgUEAKTqHW z9KY%?JFOa8=+1R>c4q%DE;JT1m+m#c(p=+8p$7GrHr;=d&ZT@8Fy7**MsRMrh;}tX zj2=XcJC(P2`8^Wi@Xz2{b6TSTV9*cP)XSw9S~9@B{lVe8misEaRc!7e<jChxkjGw= z$f{yb$RLITwjA~ml|x8B=#(Sv>09dN>qAU8Caq9y*u?x4s_i9}&yHxcUImc-62aFZ zIMv#f{k}Yae7WO#6LkUnG~q#=@HD@z%)bq)8rib?)h|EV7Vy{<0`X#2fsGz0Y4Goo z{;0Kj!W`V5=91VrE5p+%1dG?jI7*(4QhA<JTi`dKC{m#kQepJMtuHXZB!7Bi!g4o{ zo5BoabMZSKYMLO+YC^4Ta$ZK*zh2@p=c>TFo!vwpx0OwEI$8gmf9|vDdYf3W!e`sD z#}KmJELWF=Ix)x2c2e*2eW#CO_*Sd^3@f>Mn?Np=;~gypm+gc>|C_&l-enV(booQ& z{fTVt*lB<JBy#@cqE_$^myF*fM;Rayq-E?e<o{Y7Ky8y_S<?+VWKO|iXo^JSCI3P} zdU%|g&!}Ds^nQa)6d3l%qsqS_zHo*5`R$#TrEkCS^4vfvD^=F(=1s~h^>VG=f4Rd0 zg}J|1zz`{?Qeurt0jJqTEoUkRq+>q@%tdfn=}@r$K#L1UweFHyGD!p2S}unD7Iyk( z>>D(+$|*giO_+n6V4YECXA1wC*sUHU&NyqvnBgX3Ln~*XwghH0jlkn(SqY0LhN(GP zCOpu(loXR<=5jsj>Z1(Nzc1cOj`8Fh`IKMLGn0y6W=D71FC{l#*_iF;#?L%=xIjZU z;ObCF>uH&IX&x-+8#5~KQ7)tAbSOq7;Q34L6`vBe`+Q3-^*ugj!{XiGhdyB+17YA% zWnll{A&4IE+)6KMU~}PDgfjsJMo51q;ckq&`nO%J2i~@Bz~>rr8P%CDZ{NFX+g$!P zK4nzP4DF((Ef4_Qwp?H%K_(jIZuV{=YXq4s5l}+gm7Gon%*MX$Ix}E=d2=lUogksA zZtDlHOzQuuy>QmOv?o_|;pvjNTza8|$_6+PPx+;S%d>eq>rAFh>@w-j(lVa6m>wRt zzSrJ$Ro}aQgKyvFQ?FdQ)@dunmmt?{`hI=!mv`T`+A(38n4(qELi53Ql5y<Wz7&bH zDN{+?6?RS-TNm(#?z?8dn5Ttzth>zn{)<%@3mK3E5k{&^w9zx2;Q74v4}Wtn7smNq z>5uw(LB%j|2O0hpoY$Y8`0ZG-v5Af1ps#gI*A4GgWeZhQZqpj6{xEcOcdPOKo_1(? z1Ku~RfGy##w}fViAuh2Zl5XZw?lDSgFsSc|&)|-wSF-Lq^14BlBEpB1yqg~21*RjJ z1sk}v{ayU-VPWO?`t^-UPw2gtku?+hGO)loaKxig-2t#|qqd!ooV+}~wRTj!)D?nx z{2$*(>u*&?k%`)wp8BorihZNF#VxL0-(STpm}6Qpw)YAPkp2{b0HX^r6<-rHQ+6dM z=nI^>ntN|2CpErQ`6u`Xp{EAG>05ur{cQ&OTTTYw{*+~PL4>%#GRq$BdPLtXURMb~ ztBZr)e=;ub)2VYa5MIJBxo&{o+SBgo8yF3$&V3eZu!_PJDD~B1A7zdfFK=5cPgdff ziu>8|bP%<t14)h{+8mj=&$4Wog7nJHLzk2qxDPc&8k9icRnu#gw9j^*QSF&EEFAi& z_=^9n1SLB}Eltj^r~j!mB07&Dd_f4~)$;f}m+QqE%F9zG{pKO{F1ufT(>M8^2+(fW zrnpY@LqzfySCrZat$`l<BV=r=J|_vG!<m$Tu8SUB15)iKE$?z?oOq;PQS5k=Xd;gL z1B;@YL)EOOZ{2z#2k4EDo4;^>AxTZ+9J|8QRO8ahgFNub|9B6i&-|c|)+N^gvS5}% zWjV%#+QlPVow~Y>qSi_9<26{Na&<!A_T}0F!y66F?XFG>Gm0YP1qCC~AS5>>@suD6 zw`QX?SlT7bj5+Sjz^`Y(s89I_OQZfd_NIFG{e}k5Xt8IwErGs)K}~{O-K+v?d7RfB z`;&J}Tz1BzXb4H3&V!hEwIH0<c4Fp}JX`DD?jQSW6Y~=X^K$gVR`{l7etzMF>}xtf z>9|o(icY|uO%te~&5L^|jUd~Nxd29i3=cxqpSz?1&M>ok=Hk0S=U9K!1DKuExW*F$ zM*wDae^<DD4}^M9BXu4i+1lFLAi&Nh-*K;R*m|ROKjYviZkyGt*E2-jP+f}0I)toR z{HRvf6j?&+24>BhW`C(K=L{1KpF*=1nECs$LMqNNX?i^M<xVahtS@yzxhV%8&+?eX zJ3*{U?uKOq8|;{nKF-*GV<J-l^ZnZNZkT0ES6NnX0Yd4`UuVS|bEkj86scy(Wwj!a zVJQ$=L+(cRjZL>G=ZyUT?h$NO-0%plnn?{Z^fd92*xu7{eC-|K6a@U?5Z@{e0A9Xd zlhL{{#evPkT`v26?q`fX7t0rtf0O(e5Oqrfr~)SYjW`C7(%o44)3`ZfyJXObHZ^8* zmy9q(jo_Dd!B3h8$7S4Gja?bS6KO5N>SHlQObfU;<9fHjXVdW{8dxF4>j(SM+w4$_ z8QBYP{`Ei+S}wohw~E2zN#*vWWG6$pxt)w;M=lNLf6KwmSX~oZ(d9F3(<x@6A5Iif zehP9y^JZkC2KfDQ>y`o-nQpe%?E_Xe-3{g@3ia411OOH@?~-D2irbX}Y*B<3gF%;A z{wTQlM3tU0M+SEK$AiZaaAR6)pl<6Z%cW$>$jyJRzG8c};?(_<*9+C=uc6xCn;IEP zL4EVa(_`nVR+cyQ>ysVE48Rab$ezv`1fcoDhusVu|LWLkF0OZkLWcUcHR)B4EJLFf zr!+762Xpn~2q{k1CqI;^D}D3L&eR}34AWWHdoo=4bn^$W$arpdR*<fsT!mt+#NA(( z9+iI~rEMMkU5}n_R&PwL&hD><FZ^UD?oiLlpZwJ2>NZ^-_B(xxQ}jE2Er~{X(}Z7} zXJp&O6<y*;+Sb9w7r7RqZ;`NHZY0Z&vC+(B%Byjx)Q@yLD9>}G2K$@kTRP4CU+U$g zh5Gp<B**DHKi&)R+nU!|AU1e7`rqszm{Kix>I?2}HQHoRY|7>K!tXN4UtT|dp8}8| zQvHT14OKGPd7&y!K~{bFjhQYw3lr%<5F6jHR!ypC96}M%jWA^(V-Tm9QU8$I%vk0) zy30%WW4ftc${8<a3?pyOATc<Y#(x$r#4v0o=^^70`nW_ZZ2!z18oN49*1{+5&Y`kz z(Q4VXYL6eeoxk4s0f)Pe`h-?>YgRkc0|J1GV(R%=<Rt`vU#+A=3=ZIpg;qUfCfpKM zmKQd31cG@iNZ5zd?rkZ-0XuNY`rA3p*D{y%WG=9zn67j?XLc^~88U^V!3>%kl;I5O zlOHgH=)v4BDpmUU>_VFa{2I8xYqpzTf=O{`YHl9G?7o9HltxII3>8nx#PD@AM0f{l zTp17oFNnE8Cr4vmWMA{32quLmKOr~e0u?3E{<t#D#2|k0*xu)t3QT$g+{T<}^R~&5 z+Kj{{h>==+dG?ki#0{B=a#1zs8=2SnhGhl`7U5gZ0O>K?x8H>dKs?z6*7S3i)x) zw$j-xxiys)%nY|LZSh~5ObnW<px#bRxQ5&3e)XDw?Q<Tk`f45_6IVt(wC%EninF&I zY|`~JBXXMqt;$9sOAA`yN4jzU{5du@d-1hm7cQd23yY$6b@h(E_*JC7E>t2n_Nxh7 zG>SaYa-3neCjgaTU19Fi@qaU7d(v3pbD$&w-)5UQ^T>sc@8YHlw1#$-b>o}4W~Jy| z60M2AM5006XA*a!Z$1kW+UW9446|nQYqe8vB!*}oglRi|z0Id`Kf2m%dMH^&XVI#c zRE^mvZOmL378SPyb(Swp68`Gf>W5`0CNu7T5n7?PVI0{d!fsVga^=RBWP4}ZrlPtK zQsz`Sj~@R_+E0T$1x8OdQp|(9>SOgwLTQ>8K}6kkJ7TaU_*7c~b=AFh16%aE=t4?$ zL2?i?{AMar;m<LL2SmK>SvAkp!G0z>VLkzUIY-d}^>#RG)Ezz+;5Jh2uwK6aMn#!J zqMA7w)TOwe`H07kDa`hYNzOH1gIar(xwS*8NJ<I+OndM4Xl<5j;990PTW~qjGcE}| z>F;*GpuV7Nd3<Q{=TA3_&r@#XuP?8@63bY)lVTaz%C>7ah=!K4Ma8-W{&@`%s!E@f zABM0IMnZ8y$N!fq9h1&^(QeIn<Z*-)GlQ1Xr71AUMRVFjYNG~h?3<tU${y#Wd84OJ z3kFD_cHX6)y~Zb(`uB+uA9>+$?yNYGXT8A{pN$8Zs!*0lGYz@!NjsXKOYxfeTJ)F6 z8H|{Tz#POp+lOI+hCCnQ3I)ts-4KJw?{84qTD%Ve=QVUh<xAFAt(2p)rZ{Ky^PY3< zYwpJ`9GF+Qu`aT|v`AKgCHCHy!wnfZuRhebPQYzY3Nu;<3xxUc-{`%kIQ5mQ#0!8i zv4>sHZyGC&R25-gIi$Hv9J0>4XUac0zziRRa<C?qTqiFcyMDrs388OyR?J=?IrWEr zv<hBWL0oA*#-q3H#gfrkvVZFNyU{1b_RJOUhI09HFHp7MZB7kv#gPjM2p#QhfhMNm z>&S9gsHTs<F55y~WRftVyW5uPX+8Vw0O0}E9{8@+hgQvxHT$=BB>y4G)`kqAj1e@q z8|=u&z{~3UZ`>Ukvrle|-m`l7YV3v3@!^*AsYh=|`F=fC#5@b3X5B5T=-V9Rf;6&f zx9of{pjB>k)mS7l;F~#-Q8qJ0OZiGJkvsF~?ltWm`y8`^=z8<?j+T<duCnq?VZ1?+ zr&)C*91&b-r1IdN5Fv6Wvl&zx)xWhhv)?9+|AL*+U1dL=)RU66%{X$77TBn%lJU?l zwulEdj6S0kZresB{abzhZ8^E`#6xKSMz<u-seL@c<f@vTdh5dQp1ZNzK-fBIX=|nN zSrFDIZ!AYO3wva=JLNLs>GhqxKGLQO_ho)Ox(XL#x|V~M5ofsvAXu^**&!py(P2LR zDzJ>i%De`BbxC?g;L~IQ%L4d6!E)Lq)VjUHKdHC;vvN|+dO|vkfAK)tJ=y8YSP=Fj zyZNSalqzCnU{!Gda(^tx(+5=*y#dYh!TP>Vy?}eLFoy2u+1du;qSmA2XdC1pTt?su zr{D;V=xowl=bHyjO78iy6W~%uH()lF^re?Bw-|$|CW1A9B)VgJE~@j^;nOb+{_fn? zEZhPiMXx|Ya%we2DMpbzzXc!oE`M2|-2oQBobC}^D@@G4G#)tMx$bAt3!SjpS$~j6 z^N#Oue34}9kYkR^$wx)~t_QZ|u)yqU<dZ=WL}!uUL#8KmUh^Vz>1&(TFqOgo3htE+ zn!L!m-Tb-jNV>I>>E5Xok#mXZ2ppArWoqo;BSU_5Uz_K&)RJ1Cwqcg*5pQ^BJ4%`T zZk7#guJbouZ+n^AbDPJ)u^Q#>FEtf?2{-%aSW0@cnFaEZ<~cG<bq>>2#Lq3Z8yoD| zOr}WeuoaFh88ev@s2(o2`c(a|Zlz?me6smQUY_V!O^JFK^i)L&A$#FftQpwkf@5r) zXHxqjqw}9mv#41F3lm}0r@n3K1bLcnximz4>YBN&rU3m<WlU8wh`b>X(AVex;?FVt z{HEo~F?R2f31Y-ciT$dFh`azdL&oDp5Jq4=e%j_s&K00^9X0Ke2eYhyunwR0l^krt zw~$)&a1a_E?Gvmp{_g#KYhju6AoS%&+viv1%3l#js&kwR9&C5;Edv35*0$s60eevt z;NVz;ahw*@Bu~2pbjCSbA=BH>3I!&QB#zy{71xcBDd>)-v~^)do&~da&MuW~@Ul(l zH|RVhq?>N=+T;X%^Ii^cShsSJ$0h=<Yj<g~{RMg2>x#EA@Nv~6#cU-K?_YoYId=Tt zYzY&?-t?sxsgPaVWpkDP9Lh=@!joPNd;OT2@!Oq@4pd3Kx`adGUc{<Zu8fr5s!|N7 z`Nv9kH*jK1Rj+Nlna#bjxC%ooGb@<>MX-w_Kp$(vRkBob2Z>|~G41>+;w<we6#^n2 zU&H2M_+cAcJ@-agw^8y*r)wJ;?ld+$l#KYMNd8{A^pp3env`1e)KCa&P;@}4n;V!! z(Knw=Ky$KkhWfR!j2lhwihS*ztZeS~*>iTJaLcH)I3(B#aGeQlC-8HWVb?7uOdk8p ze=|`n)BLvuOciHE(bCA8z|q+a!;Li)lR6Ku*D2CYPQ8CM92hN{q1JcniI(23m(cTZ zg*KfsA7ZGt_>FDl9|0=Kk9HOpnMW@)BX$5_q8d3xO-_eZZe<O9Ymx6B3<(&+IlI6& zXS|{#kX(I2gd@cAVtP@&1QHl#^YIBLh9w>=2rZ@~SNJp%@{;8iRhf9ATFKxdUfl;f zNyce{%bcrR=1*T$GH*ov@@d{VS%Je1-@>J7<*pm&kN7*7u0B8G<{erMXZx%WjDV3~ z+dX@0vavqq00I!}ht<6f@-R-NP2XX_ps(_&fzYQruUkhK%lq`3GfT;>3r`1AHLozZ zCMoa?%`A>1y?TXtX5KcT3a-oSEu;M2cPk^DiI*Q$Oyz9!O*l1d>DmdwBF*);rt54I zzui0LtGIjDCtojj{`s_hLT7iO<~ez{{E`6spnacy2Z}^f6F94Rvz+lj<zT}z`w`4V z;LYAoqtVvn;!WogW=UjZjpw?5usozHEx*OwC#dYVv&ihZF&y6uQb#1`W%$R{db~49 z(&m4PW&{Grd_OQH?v?5Td$ARrQe*!XJh@+RLi$+EvpS-*@IY|#Q%P})0yW)bTY+*t zmbvcyjoJNVg(8hr%a5yz@T)}eK;Bei&2oEMW@f&>O?J@2R4)#T357`bW7&`TshC9W z9V}&F&PeM@I|DP{fyN;;CQOhF{QSabc%*1If$VK!Ba{pI5zj?jE-|C-)RS<%a4EhP z{cNpC&8*TMAyp${sW5X^1>N!f6x>-;y<{M@QtU|LxqX3&flA_{2Z_5S3GeOt&v^A< zIt{a<iK7+XL7)F=?+)hDRqFsBW&GOmK(~rVZU-Z?YA1&f_FMv*0uZrbXcAqdFEfol zz(hJbMJhkIGEa0qIyDN{u5^C{H0Ub4+B_=989G9IM9tg|uDI#1&0eW=*H+YIh#^b{ zm5)@!svIz{?I?i;ne(jbfV?PhQ+RD_+Q%Md#D9;1goCh3KjOUm{ca3=>acm5i_O60 z;p#nWqGhPaM8XAx2(zdQBn5}k@$T%8xS}^r<`b{lgyE1;ggnR}A<I-{$aL%tK)~~Z z@ou@F8SXPo*xg}v;emIyZtQD2m1e<1eO_Hyzh;Neq=rHvKYx77D)li>l+k|~z~HHw zr6yZ#X5ePX2%+P#_Ji4T-?hc^Ia&AaTMz&9G2umWKv$Q6PsNK@M?jor*k0B~BUF^7 z%p@JT!UKk(Et2#6f{0-mkv0vRk5d%p5vVo&&oN?-KDP$7zR;IJJoJ1mBF)E5U+Bu{ zf9OAXO{aYOUS~MvA)`^@X8LF+?eoybmncb#^yZxFv(p>4B^lxM^`6C8?vSC4eix+R zYnLIY=A~bn(Hs_Ig+BwhOBN_Q{5_MES+?=#SP3D<>olF8b*bkoS&Hl@xI(!E2Yr}b zCZ{Ebwo0+0=K0C1w5Fc}{=wW1)843Hg-UuPfBgPGooWU?=;2VQ>%lF_)B-b2Cq|21 z(tTf}kk326rtoUY-b$3b2V~MxTY3t50M#Z&sO?^K^*!cOn{{`*I;o;WY{s_wS=iO1 z3N82m>6d@7GGa4hcG1e#W_j~x%$^=I@8~YKO3R-8for|32QImdV;0})Mc<k!16_bw zbogJ(wTqQGi(R&x#6kd9CHR~Vr<JqKS3LeLG9*shS(GBbY~3)5Fg5hrv>Hz*Y^qEl zTHZ#Q!>23%Z8)Pdz!*$oj^OJDRv?lD-&+?b4V_(-bR$iF-HbfzBRN8;6#wm!7Q<41 z@`YG$Fv{-`SgLOnR^WTd9PAGc%)1t+H1;?7Sg+}Wtq2qNImpVs*~hD5q-1Yf6|KZt zn<ve(Zf|dLTal6f&n`6n%gjy25;bRyLZ2ea2qV;B>7>p=5jwjx<GS_A1i5<70t}J0 zsC5VoRd?RadG?%GMa-W+mivD2ts*2+W5L4Y#{_rEHvDspsS?i;!Ot740~zAD^)oIc zmN*^U-n27rb^#zx(Q3d>Ncl!ZrPvVvi*sq3@Wr2je}!NjYfbXA-;gpLtGy6MBg&8i zb?)RlH)GY!dh4cvUYxB%!%wk4v-m4u1kf-J8YitnzkQS20BDX@%t1|0+kVXM?)xXk zcEWkVNQ3XY`AeV6&YT~@*HAZ%HCJtrpwi$MIGNQkF2wvR!XVYewZwn+5($2szSm(Y z*dBSI6Y3*)-D^ek7-HXfLZfY$gL=LcY%DUF&u?Gq5R@`jB9(F7c4B;!u>14Cu?wM= ze%E=@Cs<C$_~1*NYbIXf<S@V1CsQkv$GCed0B|{Uo2#l8lw#Y6UQ$Cl&1`<Ru@)bh z1nlp{IAbJF069e9&oQ5ASjyXtQ|LEt&-$`OMPj85WyKyB1}FcQW&7kqh8F>SASjo$ z(9aI#5U8=kChAcNMbVWt1rZV6XkDJDs8a>s>%%YxhiP~(OTl)qP!&PxZD#N0NE=D1 zciFZ^y3E^IcXT(|-Ku{RKU2OX-VO1rc;|6y%4I1RxTPAQ>bZ{$hkh}83W}%jg}Ni( zm|a5XGVQwDmi{$4<zF^ssZn%^8;_L)5UO9*yICeeA42Pwn^2>$s4KrezdJY&`m2@( z55MG)sk0$nEfM-_XJoxAu=r4ZFL!-gHvY5Wx%)wlsFmSYV9QXE@pa_&jY9(AH)yhF zFPve}ZO03@l9pl~pYyb&u5-u8)0jE_1Zn+o9PmVsh)vm`uNr~hgulE8ZO2A`06RNx z@(uL&i`!kl0(emtRM5|3b3(<n%WggQxqUfr<j9Nh4Yx_FumwceYTNycp^7h~D+{YD zf_cwhfLeY<3(k_g_Q&wm>4YJPoV9j?xE5_HA(g{3f>2~hk`x#Nl+J3GuK?Xqhft;q z<8jAcSep`kpe-H>1$<=J&Amtb(7ZZkFFm;_al__%k-E`~mPPo@SmHuNMOyvBi@nix zQTd62<%-`0Si)euPM>`Gqt6X3MHk0;`eyqogBK!Q9a8HT>zZ0I5F?pTmL$6j=?6JS zRY1|$NJpk?1%g}9#qcc5VK}x+^mH6~a{Dx~n9k;NTx<mMh9DlY_r+63Q+oNWtDOGD zpO()ip36cXjDR$x;ru)!hr~~hv@g`VD)n|$1TZ4Ws$MSPfxh6tk&zy+psxF}7TG%4 zf<NbFbx{`D@cin^UVMaH)`4I~#<2bd`G7>jq_n9aesVq2(=Qo$#M$E$2sy5Zr4fT> z{hiZ2D=<WBrhCQEH>tZld)+am{%%*DNV<F{I*c;^tGjCcVA2J#?_GosscngoJ;aZD zUq0nLj$g{igs4t>&KkH+YRn-1O1_@YB{VA*H~IB?&vH$B^;@?8!136Krw14?zMoqt zI>fziqUpXJ1J>I;2r=eVr3c)BT?`O|g|`#1<Cu9<LEyM<*f`7O!k=T}euXl0(Rj$3 zZX=bxSOB>kRs5Dbt86lU&D@xfx1Fj2tC-X?$u0$5_|fXu`w6TlM6zlPY$h~tV*77| zQnP(rbWmpND2t5dfL^baz2PnjiXgZ(@5->PmcqB2NipYvbZ))Z>^_Y@?NnNfiCIYr zCKj?gm9U0kty(4;G~y?!GS<UHwrtmGW`uZIg*PhFzk1UT5E?<<-a#2**)^ohOkYIH zaOCFGiKmE|HRXQ6glvU)ed&4;W!=Meh56yikO}vYRch1emf7PiEsUjj%+6UX;VjDm z*Fc(Qz?b!N^fT*hPG?E2=Wj^{Y35w((z*MB_33fq;j;_J=Rc;E=zbJVe7%#BpZ|>9 z#=;zKF}}R}L{;%#asA=YdBc+sw?DPJfgr)}uu&Y{{~0*}XPFaw-gb$gFF7ya>eOn% zujKDYUOjG)Ue{o<0L&4xPU(ckb7UK{&xz@-hpC1p+r0<bY9>R-j{8-ZmFMl$;P-P3 zolGC4#+z;_hHk@IYX|uV4QE=OXHC)k!D~j=Ds8KQ_L&j05af`xG8+G2Yxx^0&<hz+ zI)kg@#;P}w6|7s#&KhR_oKNiF+HxiH4At%xLUcujA1=yJ*`|5So*OZ_Uh3)T`a6ts z75owsj-H+lxPEtNnIu~GHvj6W{0YkQILY`rkH%jOP5*V<XSo<EMh2(pW#o=;c&*H? zZUBtm1c`Ib=yOONbMo;)C1U0JXc5}4QGLA1V)*1H7z8S4ac5|DjB_dK6I|1V8sAxM zN1f;f@i8-qZkt@&#sBQ?k@|I4Cbm!x+nNs1JPNmJ<_zKERC_e|CR1&0lss8N*pZ%0 z%g0j>#TQjY^GKM^V7$CaPGClIR%3}=*2oBhptnh~%cgl<D-1G;^=S<GNW?CvT3;Al z8nCr$^J^w=zE{9(OsWU6EPK4Pm>=h5;&pyY=pI^>gq8*1A+;k+yK-}(rw>|^+?TF+ z33>jgzUp{ge=YwP2TGi_X6&jg96-V^*J^qd4%hUTx|kmneR!U89{I%k_xyEb>#`t6 zS8Gqn8AMX;L=^sDii#9t*^dHLr3~705jbiJVn#hAiP+@oOg@w{%%29qa_sWYN-Mg^ zSzFF@clTljR~oG$QKpe*D?Jp8;g~>|KgTpz4_A=pgj1pGE^`BEo&3i*!`wsJj)9@N z5TgbRKy>I@`HMXxnU|r+ME%>GOJ=9wHVj!W_kzH|uX~3nnG^ftA}R9SC6`rBUN_jF zEZ3gLh^AGhba^vulYdjE%Js>uhEb`?0o;+jKisFL*5>|p1jql?*O3nIRcdRMic5f2 zB1mFCBYU9Rqy}jD9*^}ZXNs=-9LckExJugXE+iJ+PDw@ZGh^xfo%>wamOuW(r~r#w z3;c!~WX5nSB*dqgN%N;G>5kNew||bk&gdX;lh(eKHvvW7;2KGM<0~Hfr0Dm78sQ}! z50Vl7=QSjfe?Kzx40!9`a4RF(Q&A<?%h4{R<n)3_^?=`tM-91#UQUd6jgFPKMwdHm zri05jqg;3)y`L<m2Mn#PwX;{0`@fR*w3)4Qn7CPC2G<L&q!lI1%IVK4jUxE`B<>yl z_=1L=APVR<ok@E<p?jeCIahLjN_g}|>7&Wi8Rm)bDY~Y_6ETlK@Bg^<aQf1jh9wCF znW{jz$6&}t(Y3LuwN>;IK<>Gvz@yr#x;Kc%^Uj)r_8kubtol%ACmXO$%l$ug5}UC_ znyqXtPCr6`ollr6GOJDIm>T5r6E~BPlF#CjsA&>#K#s!@M}hTtOwbXGW(v}Z;>dli zlz*vAWV9?9^sPEwV8ip{(}%j{CQ#9*85r>wK0C!z!FUY`eGk$La&hjsMsNLy)iRP- zEE(O25O?gl56kbst_xeM+X>tEZaJjrFR0i`+zL2UY6Nx#%kSE)fsZ8MH`(Rf1W?jm zB6IOSGFakAjiw%DEh=fBp3@nv<?c3R&JCyCuinX+x?S$!>Pplru#mTiz<=rd%(D## zb_prIMt2^_dFUisnfLYD2`J%@`clA8rhX*__HRae@O*`>E$LTx=esr58Px^~jiOW@ zJg_p4lHdiFl3zz-X~ihrnT$xJjh8sRJ7$i3<{o`84%-iuy*<3{Fla|wE4kPX{Y&H6 zvFHPt&Fh!5A6YFDOd<8th3FlVtGv%sjGo)Sa<+Q*mT>pO|No@P|D$B`#8MF%x>v}w z<bFw2$2saOZ^rpZ{TNi2j{jlEiFJvkgk7IkRu6|*W@v@gB=)Vjt5l&XzjO7+zP%r~ z2?-w-Dv4_2etB<bGL<b^B5Cu!>+Xy&GnwdSOZsNVAm3{6GT|ITEWkk=ySlDpbuWD1 z#Y*r=z!n+3sk!&XAxyEiU_~Hg-3@i8!Zatxhl3=^`)fR?7Uizfl}LBE0ZsE9ml?%T zxSX8AikodKy_x7G-1drJV8!_h)|reVHcRcy7<r;?CjjH<0HDNsZ^b3@*Lm0BSaaSK zE7x_(A*XsmVL`H+ZM4TB)XW+(6uZfuH80UH(RT6+Kfqb~l$ySTu7l670t>f4$DH2r zO*ElMDI?ZLskUccOg)=7l<&jZ;Fs9Zt9p{kJw>xnml<xmgc384IKeNPCDbJo;VaO{ zr?8=){3KQk(8zIh%0;Y9^&fHwMz3Ya<80gT4$?qyFaUG;)90Ued?8j+iZ(Z5-u<#u z+<)se5O(uUTFuR!c|{(l{lIa;#4g)Z(3-nR(tC!bkK>SHN$xkWH#J|w%_97xDp$P> z$He^I{&u!%`zA3Ionzk6hEuCQOD(a|UrOb#6o2?4%SP~>t$kkDYX`{88hKKVv;Dom zq*D*$ekSXtS3cAMIH|NeAUxJvo!i>9O!!^2cKt{M?#pfiD1-kTJ8kwfkHU@L??o~+ zFl8Qyp*ADNeH8Xk7*&`Sah?o}eO>+R&#`9=%+Hvf^Umq#o=j(am(sUX^nBLW8hWeD z^cKo3a%6#2IkvZ1K`@6*@Tt{b+{^r2Q>rxTTpk{d!$OP+?SY%c$jL>n|9Mh~{R-}X zWcJ(aFEqU<0WKRs9Wb+rw`68eA>sCT#_OiC+}YsXd3(M-ch=2e9C%>M(~VNvb*K9C ztK$N;ZN3)O_wJ~oovnV4tP<=(4=Q!T)tXQK?tbmJMRI1k1E&bvp|k9r$f8s;oaNU+ zat!C}#3xvk3tgrI61A7Zjxo7~--6$!n~t?+<Efa}24R}$_OgCDiMaQfyF@sCTt18? zkOSY0rB0pu@3Y$KGvP-E=bdfd6spu4Yjho{bp&p|-dG-sc6WwY&)nZEE3iYP`p0(u zQxfx?p87xuB{mwDUYb2#pAtD$J=+WJV&v^<vn$(pm}xYZPSBev-5D7m#Ee*YenL-? zd%<@@<0QI2LdELq)X!OlR=6c>lpJZNxJ6ZedwAYej5*ejZ3xmk@5wt_cjn0_b3>zn zX7iiX5*ba+gxR!P*|*srZ#Z>~qa05b8PrEAsd_e|EBph-i&Tq@m!)Oc9{_T0t}u5Z z8JP%=KKh%bl;b`Im_)<uZ0YzndVh|+{O>nob~%#Jl@(DEH&2vsQaJ6Je`k-Lf4A65 z+-}w5x<kZM-c<h-V$}IIoLOW>OTNnP>yUBE0N4~WhJX_7vwf0?b6QLvN6}m8<{PRO zA%tA3HVhiLRu9M;*#PjcgvPKi6UR!#IH8U}+?3)Brj#(dk2nI+*Z;v17&6I$fG%34 z0$u+LdU~1L=VVsCym=hoNRqH}unkW*COa?~JPq+TaBvE8wR!QpKJCt)|F(rQ5^Sds z{^Y<}BKC$gZ}sIab7g!T`4B8BW5eDjEUa&@cpV=P(c}+sTfh@R+yK#869_}%&#~L} zEkoI)wUO0+`PSLbh0@IyxwAmqk+t4E_p&F6&yRmyW*sE8KQgO*uJ<_$6<=v7ZXmWn z`}M1_W+yxug#<P4PHQM62kHHu_)uw4Ce2e%cCaRgJA-ZZj@mpYSeBnCzm1x0XkexP z(a^i<wSR{Jt~LYp$2+ak7skh<Zy9^IcU4ZcOu6|k`TvxJL_WAzxq4qay<C*{ZKY@_ zbO3As!9wc`Uq1@M(i30BxAKtuCt2#8a{u7(CN9DAX^CcndYb>5@xn#tiW0Qo59zz3 zvzJLb;5=g>$a&&ao?SUC@W=K)4fvrz)=iztX*X!DTFna=f5lC$8`kh4j03(lmc4Av z`r__6={2(+zFG`06ZS%@eY(XP<|g0LH07?!rf3j~Woix9s2^bydp_fBLZ0wbOsemZ z9ZPmB6yiM9Ze$l1%4d9kLVDJvesuR-UQ&Owu`AP<c4Qn)dD<KfRP~sZP?k%4*tw%2 zLpvYNN6S7V$a`PMdJo=DNyb!$y8y%OW|M|d+)}vw+no&_oW$>1+m)7pVyr*e26%0E zZJksHxs3d`C5UDg%Q?v;(TnZk+LSrOQIlucv)3mOSFE{BcZ4~!1hNP12*|jfA)n{3 z8eVpj*Z=4<r1Ul9zZ-Hz!{xtR&GyPf6SSZ|+ix12HCRK7mOv=)Lj!*t?kpd41z!E} zF`LGWl1hv9c(&Bf^U0DtQh3-^<7(=VLUL2x1|xIZuE3gm3bp8EHM4x9)uH2KH^G(X zX3XxAT7c&z_dQXauF5#0@`l?-MD2wCj#G*<XdER}-hEfZ1;$s$oUX8gUs&L?(I~H_ z+2`mB^EzZr(Om1yFX_w(*}me!id7J@wW`S-h%{(1orflfB89IGo5-MGF`XQF(tH~5 ztpfgi+jw@(rs;Sy`dgc8t>iZirwa7Uv$sWqE4E(4H`~j@Ie3;`W9+nhl+2LXTH_JG zycEV&#EAT<Mw+oZ1(x<{7GqrN;%4A53^Cu?H!{sV!dDX{T6f4kKT`_H-wM7{Z;AzE zqvTJizMvqE5He;=LwsN9M=84sWWYLfZZHup&zRavVN}Nx*KY&q0~={`oBtYdTP){B zvENu`^QHhz>~iF5a(2!Y<SDNz>&Ktd_xozyoq1Y);4)|`w>}Iofa-kjrJ|J*fNYI{ z*El)u7ln(lthJj*_C{708<M2{{q|YtI&0$W^s*Cs%rem2v#jKdA~$G2P<gSCL{Mk1 zn!OVJN(PiyGA;LBGYOCq_zA`)QT^IdSKCF#HD;gjCcimDwY_X)zhelN)-I9kFc7Lq zd`J4>a8#UrCqiE3he7n7D4=VoTAKHp7F4^Jz7fK>l<8Kk0=2Tf<l=uDOsRFTTw=Dw z@EhHzQ6JdW`}fBekGf8j@7d9$rsR(r_cfvvN&+`$vN3JU63umcdh=cpeZOmwSx3hc zizE>8aKjPVya(*UjS#N&&D8Y=Xw>2B$Kc1KOO0my(^p8*g_`T<Le1~I7nuL)lzUhs z_Kj&~(ieQb-oy0G$87J4U_+Wz=|M#628=vi-fZb9<6cToW{4)kCSrn<>-12C)D>T5 z#pO(DTpD1*0KK*pwcV?*u)#9ezm)aoScutNF86(pO;MH=!-H}Oq2xI|3(oM0ZtjuR zEFdq+T#)>BB^AmCb40BAn}9#L-n<-+fBQ+~c?D*cS9K27nMB7aS;jL1b3T9jL{=eN z<8X_4!wrgv2YAZTj+ZzSoIB5`o4=sfWg}4ZNMXf#gI@AIJ!Dx`sT?O(k&)=`3PJC3 z+ilJ;p<e+KBPLg=>M9fF^u2h0sq6wYS>YQkQ40`mg5B;TV$-!XHmpnv%``K);rHOf zz!V85<y$FYN~FZvyUXPg|9i*l0eBD3#sDrLx(PfuOd>@z^mkRYTJ?t6=N41QH7g7g z<CH22!wyJ)6V!d3^}X)mwO3l6KablRB}%_oXNPPnTUK&qqZ=|zB`$bjFppk0WPFAH zGd6WA<Eunic@PQ?V7f-D5hk4xqM5=C(HgKi`E1nliZY0KRxXvUy)Y*cYhbgVrI5dH z5D^hg%X8d!f}CP|uCozl(l87azczK`1aljlKW{@zi<=<pqxs?!t7Y--JbE_O47=!( zDRb<y+xv!-#Vh*n{SuDaU;ec+T)M#1>!!ZE#D)_FCHvId)gdAKHXQ!l<zFBX&Q<>* z|42}biKOp^q&W&-CHZ%*`a9+GD)BPU3h#3f*g5Wy`s+);a(Gh)?ocCv%a-_T;N<ea z)%(czTl@)dJGrmL>A{M5syUB-%qI&L-dyJd4JxmywsLt%&;-W%weA@AZ{E$we8qdo z4cR4sV2GrE!QRzfT#q=Kh+)@#B)0&AMc>F_za3d*=~LA8skx8wWnq2H^wfO{nq{`T z@@xKVs{`B48$X5xB_J=hTrXvofQC4dFdL!-4p-ASZ!@DZOR^;ulXiL`)h2cr|9a$8 z^VpR9pek^hGV1(vob2x{R+Es@BW;|2qqRgg-^K=hYZa;yAD`46{m8LnxJb=8{S&8e zHE@6AC~^n+fkL+(WGXCm6Q)*aad>)v`wKuUxBqTdJ8qB`-*a?hvpQsz!tZa?5=XKa z(jC-wW0trv)QjIkW^c+xy4|b2Tz{$IOO|X><$0&&sf#1~(9qC{KC;w<2ez3~68EF~ z;oz{gb;=yFL~*U;NC7U({;y4l38nJ4V=lCFaaLZY@4eJvVXFqhsP7$}6^V_;^1ITT zPUE5CNx;xx)#f_EjM2PUX&2?ux{6J5e?NZVSLn@d{p4$nE`^xELuAAv1&di1tbsl5 z1PPG7awHjxgc6n>eGHQn`V%0c#?Nr4t=9o866p42Gf@6`UA)I??uuv>JmTz!I-Lch zR2O@QI%IXRKeI7>g1cf=H`)CQ!iKZd`(@6<Bzq7dW1%x=XqKICOx(+X^L7`e{H3ol zk;SVzw|z=s{Cg?%Y9exS9B`F!yN~gEU*KAAh2_cA;j0b<7jmKLF8JL#Hm`$2YWWMZ zp4P#W%n9z4{*~!cJiS~bg7iuImvBt8O&xaWKu;zvn~U1QHPHhGug2YHILadcDQ4Wb z5cn=G>FE>qsN%)(P)mzb0%vqTujn~dHuj}?dF~-V$eeObvSTqd#>)Rm!2u+MOd<hC z!bm_f01otX-ieX+hI^2jb8~;5HhV$L68&--f4r9t^D5&6(TGiE{`hmuwQeveR9&$L zpmaT8!Wne&^apin;vAqz-27a8Hy}@=i@Ne~{?&Jg%Q<A&QD-mG6JgoEC{)oYYU1p* zU?Y@;8nYR^j|WzxKe9GC6o5K2hYkYL`P(;>xeq^H@$&+(3)fn1a*=kX;e538k^9(3 zdQCIZ2TEI4WA;7RP|WCT(uzAtB2Eap-_`Gt)@lywd0tX3Q?(!v`kX(?Z@F*a(*b%p z8o=ylzA9C8=XqzS2Gqr2^VR+w%MGi|PMyfE4|6kyThcT3D(S7`FX#EB7b$n@##(Gj zX8g#Rvzp)pbu2aNdB$wO;WLbK6yFQQHx<U&$t42Ipu9zvnNhE~Q|4vGfhXCk{fDeU z!q=yxOJaThIC|9EvQ4c4%HwU<;I_<ivv$g>$TOXT3EFT!I%#UT$+<{9rRHNarYFFh z68C6)Q{(FJhF-MADSvf1NzD0V;Gp6&4QamanrkKKlWSA0B}--XJA?z@1R~Bh<hT7& z`lLe5;iM-D>5Ts!efvm_iwjw%wMh?Bzi}=ih7cFo*f#!EgB}a6^e&Bo_{`gwO1mcd z5rp78a01!vd>}UAqFzzb4(=|7)qrv@zw)02XUDPR29*&Md#@t0yj@{^R_Dm3GPx+j zs?Y;%G+Gf2x)*I4@npSb*%%UCQ<HtPzTeY@NieAAh?30wFt23yX6e4`SLx7u_4J-~ z5Tml&OaBNO&r+qD%FX&6y1Zn0173cD*K4h|k92UIPpe;dEJ3;(3T;Ko9n|MS)Z4nm zkwO=HuY9?@aHuN^8l)~%HFjhyqnb+#y3yD#n&qup)mPMP-wpEd8j8djdg4V$_4Sd> z90<#S8Os3EEMs@4nt}IV8N~4L49ZIJrh63o(c$9eb<niw05Nsn=yhxoVjo-=qE`dq zicHRDG#%nD7<uh2;_ozBe#=jbSN1O3hKEV0>Xg@1Y^5Cbx3on@gt8h&Ou&o_^E6yr z?A*F0(MU5<Z7#{?8mue<Lss^(Nx)6<{F{K?)j))uJat)1&gI)!`O&v-?K&IFg#|PP z$y6lYG>-bQv9u$4B+L1ZxH67Vge!C3`7-6di(^>6aj}Wk1h&>^lWZr}O1A^OHt)Mf zlS^|?u|5mOO@u8UUaov7xLCeMBadyeLpB@os|Wi@bO4cE!MZKg(@l_g@2qZi#H~G) zSRt!|qXDy{%SO*^bhRcs-(ip3A09cVW#9QnY-0fO=5^M6N!2cOlSB9Z(S^=t`#{cW z;N~v(UBKI1zO0zwLy>?>GFy+-SbsCB_hZ|X;Z_XW6vcL+v(0tixo9ZyFoT`jx7rQR zYp!h_-bv%}ceIclEqw>CUwRgiHEj1KoxTwo_x*9#J0pifoYIZHf6{|XOTg%J6mH5w z4=P7K;9R9$P7==<r@}i*O;J`}7jpxI<>koOwGmwNjQ?0ET>I!I4EmLDq0JzGP`43N z4Xf-y2o94e=Hpjz!)_f=ez+g0Gy&HdOznw(D*D0|CQGD1%t;v`2~kh({3|vs!b$$7 zm88|)qgQQ_bve|UORJiHDjyl{cFYa(7!HCDhU`REYAysS(eC~dFH^jBI4dif<M7Mr zs_GBa<=cynXtAxCj-Y(g+-9sJzKOlbolThXo2*M;^pN6qw6glbj&bo1jpL#Hd6Is` z%xE--m?OvxzkBzihzsSS-u=gI_Z{jle*SUxIKh-5NUWHgew?uY=}~)yUCaw?$)I>T ziJDI!nxcE+rG+}m^i8bt?b9Zt@*m9$eKJRFSWJz9X+@LHiBq7pb6*Qj((#>kyuUf; z=w5H3#jx-@^&)%DVe{!$6w|S3w2mjp^Se#|_3Q|#1OO$m&(?N*1qmE3vEjEa;MKB6 z2|vlX{kb&Y|2$iK{Qqvg1*o$dkby<7ke}l_OzmjUuId0yylM4MdQObGg7XC2rTnHq zXyU9uW3}#2F@EgKHxV(H@*k>(qxM*r?mcyL93uXp6G1kkKR~7+v6ek(CT{*N*3-SS zDQkDJ;3HhSxxw4FjCr+aUzzGJ_gr`K(nW)Q6~Sob?|Du&Q_0b<k}GcXRpC7$92@it zA5A}UqQAN*SMDm>UEVHA=J0X8Q?P(M>R_t0&?p=@=dM2{mqsj<YDkP$#wC5b%qHB$ z*EN{e<H8E8lcug*eG7Ql^GbcBY)N7olT}@`JViQ$-EzPd|H{wKSw8?DAoz)GdMwM@ zE$kpK)2o}rl|kc+ZGfs4q#~c{l&Zh^62D#a__p>w!hJE=^PELRzsppy*DGl53cvGi zGzGaz2LQ%dj^S#-cead6(>Jdo=+EY2H-t`1ao=1^arJUe3?uBaJwA=tF9y1=gaG*H zVL0ex?r4%Ev6%H?MdlouA-oyCYZzLYm3^*%My+neOD4}IA>*IKjV-bF>Zo=HqSm*s z+QQ#QRwgjqunq<&l}>@KZg5&n`7P-lMM5<!S17%9@FqQndz_*M=UrLiH0b|W|0@Q$ zU=LeGh!JN!@JvFesk*=&=VYfUbFIGTc0=A;JGEpdhHI>HGfUh0aJedL?}!s^;$fjs zqk*OW^br<r$s4W?%r5k@@jR3%Go#y@F%?~U?3l{qb@Zu@J<e$o{KSzdTzpj0mO<%J zH@IhH(M*eSU2?^=s6(Tk|H$1>TDY$)Pg6?#Ua$4^q-CK><zZJqrmvzQJ2h#rH*9Nb zv`SAr>V|!$%a=3|_K>UPrW_rta}v$!eAmY4X?ypXE?kw5a<)Yi1+!^y<0rYDEhLYq zMpeG)+1$jb2dtlY9}yj-upFrHR6hU9;eZkRZRW2DGX!Pg`^LhEipr4P&^*hBfdMj# zh#;optnjFw8Q(PXv|*b9%a$;zCmx~-w4tUZJ?7)Qt(>IzzXg`d@WL`2{2!$~HdkN9 zrUM+G`(?Q|yU*BxKuq~%h&1}U8@?+|80630*c80rh7Hg-ay(J<6zt4i2)!n@7*=#g zq{=(TnX%bz7Izr;7VXOH?=(uqhgWw#dYB`U79Lo2^zm&%r<Gzg_k|rGS1^BOuxYyi zNaGHMvR$E2VYnk5zn<}tCCe^k-K=@w*JPH`A|65WwCg?$L`Rn}>yQ4yWjtWUhSCTZ zyK~eT#x#}XaXWDN^a`?hNc|a2<eGs_U|6kvThbu{nZ)X?YjHR@C|s)KOtzh3UY$4N zn|Z);;OZ6hsd?YDP*wgo65I;UIFkTZXGC?Mu;&bnsR6`*-d7r!_H@J)Q4obS8W<S} z`V_FQR8eTrsg$uCs=E5;*cs9<LtCMF(f^OFw~lN255GY9TBwK^AV`XItCZwSQb6gR zh~$JBG=r&>w33pO7!z<zVjwwb5dq1`Ms0KqHgdo=@5kT0_jm8>zV1Kp7cf5YexB!? z^PD4@>O1x2FcIAX*!n&Usu<dPFbe!8V^Rgml?3NiEzZ~ss{YQ;9F5fMOhTN%oz_hy zH}mhdk+pJOWj&NroHx|J+{M|OpElwh?7vlayFX8J%u3XM@jxUQQQN(i?CM56jVDc0 zs;P@)8%jBqXh0ifw49;uP|NQOK5J29h)@F>U&$`-)@JfQxI|d9UysoF9la3X5x3C( z{J-KS0%N_^6MFw)1-gn;OzPHqq(-%-hlqf>Q~AfN^(o6_o#R?d&2z&|0ZX-Eqr(k8 zB3*kF{Nd>!fn5dqcty*bQhV0mU$*MDyTw61+M(W0sMhr!<m8K)_3$GDmk>dVR`g5~ zL={ZoXf$vc&agXju1fCBHWvAQaa+b^b=D=Ke_oQD-DJO%<2x3{Gq0dM6b|?ryGmJk zAD$w=q;F2yJMUprtVgw+K6hP$Px>74u7w?{FvRFRpB(N}m1pX@%clwKttE>cIL@X= zq#2etJ&dNTH>}uGPYvuEIBs@zGDvTuowxc*e21p^Bj@US3Bx?o958FI%qN?1<?J6V zA~$z8){!#KV@=);zD;Okcpj_hzmKFXBUP!l=Fw^j4%w@7v$#|*UFP|{#jXMViuliY zF3&)o(*X2Zr{5OldXMgZcqeE9-@T_<fp+n3c=qxS0~BLPMNecW6;TgDeF8Y%xsTY9 zhbYBf5`I2&A>+EXpC8)B(LWDJ=Q<Xhjw3o#Wb9;|)f{mbt!-9Gi@_-EQGfx36OD== zPY49~_UW1OZz6S}p$4d5lzOUE#{f6Ov6^buf#9Iab=rjFBWHmZ5T4-7Kd24NgVxwm z&ppmpULKzv9VX&I?_^MywdsmV=i?o<cv^o{$oF1DC6yK3iL(^-zpUzYa|f9JHtiu> zI`XM99d7T_Vb-F(mmTb5wOWlP8;Fobt$;s__d_s$nh;AyzaU88kfxVP4iZu+ebP|d z@NT8<{LjrkMJ&p(th8DyxnJ){LitN&vQ^o{NHD)4l<CK64v)J&+Pn@og#U+ojJxF3 zAOe_^Buxvz)IZrnrg^j<K|ck-zni|DTJ0cQO7~)xm#v13;`>5Nmg<IX&lCRCZ+ZMs zcujZ8mHinhYho|hqe$7=58Rl?%UCC4)1?{KzDy8i6~BT>1o0@rxDNFo!dk!mf*I<i zbUgtMphcwdVAC$ppM-{;Qb5l`gmhRv+?vmn_cJOp+^w$EOI?v2!g~8y)D)(t64yt5 zUT6L)(pcIEoW~#Rd)3oD4$Z^Iyvil99tEp52l+*4Z{E$I%nl2qO|Z9(vZLYdN1yo~ zuSHyL$|hGs?wK>L#MYTSjV5bFnZBB#>8Z)E$xFD!E&2rPI^Yr;5r7nukV0m<RZNAM zT6`z?W$(Rdy6oj&A_TbDSPjm^=>K;4*c+@c+S&75mBa6XzGRd@RT=SogI&n_tVqjq zD-qX>J2J9X#B`&o5PPO$O|{XU&oUjf0KM=^x>v;dTIQHch3&(*ru1E$5-~MkKCY!D z0CHdkER+I;qgAQNX?EZuF{rm|P&;Jp1Yxm5SG<ucl&hVhYk8L^DiZGuvyVyg=g^in ztjC+hTxR>Papv1bvdpa4fanjmp0wMCo5ty5kdh3n%C0e)o<|&BZc?V=E?Qg^zDky^ z%j%iBo|ZewefZPnC0e4<=d;pFO$B(>Kn#KlCPQs((*(V3;w`yfykxI^L|QcQuA^iB zv}#uY{N*c&g`!XyC6#{TMq$Y2DZ`#RsQ|d?qkpZKif5}{_Ba6OtP)4EquBnRZtVB} zJBNVlH4eH#m-c7{{ox>4?IpH|d5>jIDK=Nv3v*Dp)eRc*8^b>!6c?y69>X<S!AAS| zvqylZe*RsTmF&y$`_5rNiXK20JxUy%ZiDA;Pyh|~aSu9@*1j7z!jfe?{#s4L#4v1l z`m<pdUx<5s4hn4Zx^~D<_w6DTf5i?L#r6|5&Iu$yKkRK2POBi~hkU`j{=~Z)>eh^^ zs-!88h@hffS7u(gs<-nQ`s56!F?d*83gfIzsEb4<IjITI*Xnc#;vugO^`g!wb5^}O z-Ffw?l;g0U%y8-H#JbBqm~9q#=uuiOKO`LkBx205ZqjE>GfY73tP4qF-R%d*jtrQ+ z?KCI+>>ry5z9ScOPWG5AN_;*?LwqqQrnsKi2r&}_C24=nbP9uG%(m#Du54x#{)%`Z zEcI~k`>R|YA%pv~$7XpV=jJf*z<&UY!redxpo=o=Wu0}8`b3-}POoTYpwE6Fhg~|n z*Eq-!`r?HbV_kH*LEe>WQp<eFR~X$tbh0OnG#1oz^0vmg=Hl#!Q2<v9INPxQKuLeD zlUmQm70{o;i~x6y8$>HArj2>h&O2XX5Z_U?qG=Z4yTf_o<`|#=Xw*``U=Q~O#-AvN zeLnX5Cg^rl!I_3AZIhrwqn>4s3LpQMfb#h@&Z48sx-_A52c{Efl$W<+zsiua#O$qw zSHN2};4>L40GoJQ0JElU#9g5q7Q;B0Su6pyEH~Q4u9nN{Tq4Q-&6)wx2V6(`%7_&d zxViMKRZIMH?36jLvTso4Sfz5QO(u_KD#B3fbGd)uxSxX;w#MHmF6B|4O3F%R=YFu( zN~XR)Kxr51e+R!toPm3QV*uT{6*aXj8yeYknG}B$twK>Utu;8`RC5xqOfestn5fDO zaLsT{wHq!jEp?iD3A8t@T4`$|u0oo?6Fz{dA3%10UdCs`Ql0Hf3cOTvCjLB7*zjqZ zC+@~;WNTP!ef)6-nVzYAPM@bJF3?7;Wqmq$Q!<OnHLI9f&M+HP#l+$@5fLm&hx$5N z_Zyg2q1W`q#g-cExK9y%sDHz#@pq<C<=`_`H_tE83w9-EzIM%I%+IHRCAOylA$UdP zXSMy5I>02&;RWjwy;Lb)1)9)u4gZN2lh`Ct=(r@zMOAMHUARx0K5kDpzC(4v){KRV z{h{Z($JhW_yCswN#Y1+>12~#TKgA6x*B@=mlq_8bUMwg09nAV+uUjQa4Cv^io5Bw5 zyr*ka_yglqr~jkJv|j9SDfA?CC$tFD>snJB9RAoYi=1!LqOLw{N#f$0UbU}7XxlU6 zM03o*iVgu6E_sDI_l8aHFk#VYj#xn5yE-t^a+#q?o9^1ze&Oc(m+dS}38*O@A;DC$ zF0+#k%OGxTF&g`$>Xg|BG;o~XzzKS?K~>BQg2GNR{yZNyXQy`%GI2B8pyYYadG-x) zBx;%IgZq?gl{Y#JybHMAajZj_M|<|A<U>&SFMgr*M7KF7GqOlr$d|r=1Jlyr5dJ-T z8fWKL-8+A@M;GsP$8N<M*7G>Z`{U!eUJyWIhH#$758#^>Y<}$&(?68Z%~<C_M^^Zg zV_UAQ*xZJxV(3-VMsEX*>EjBnEr2=!U2`eW-f4a|-pkjg@LH#s%zHM&)0VS6d;>Oh z43SmpN~oy=iV1g)nctw418`<6pmWg=if^C3#5x9P&~F6_tnh!MzN$J(?O>1L9e7ms z=-j4uLwZ`iaGv5C>^j<e^D+<W{2Rfc;OHB-D(q{Xp-#VFh*(A4sPi}gGx`G!OAnt3 zIU6+`;-1)S2(utoi<NW@+Q4qm82oYQK+KfvKY}P0d{$Rtdi4Oi(FKjDtKDPqj<NV0 zR`3t10mEDc8mRrZR|7m*SEzY4BG^ZH!bx9f;NycQAkmgO=}thhk9yrPjMA3Sv^LM| zSleDOX~~vzaBK9zCH9rd7y4D!td2%YqMe>#A1zq>a!R1o7<~+rr4+L*3o<-8T#nF3 zlk389sT!AW@X+7>Wpfy0n2=56z=1TbxF)HqI@uDF?L89x)rti!$yj82aB51h7~evF zH9udR<>s2Kd7DMu{c@+KR2;^&JnALP`fT2Vb|D%0pEYyyn82cNUm35ux$s*-a5A*x zBujSrz^t7j1|DMQKdU`Z?aGwMYjf~^mYU%Z2Dz7KebSFUyKnWw{6j)H#$wZ|T*k_H zsu_pD&4s0j@!je1Vg@6I_ZSx=c5S}`hR^Q6u8E+w3`(+K1{As1a;+9vPcZum;qTzR zDkNHBH>l_@!fEg9kP&5kUOPfVwn)d;mieSf^pRchbfFWd{9x%N**jGBMxJW9SJ>jx z0HvOG)$EiPuG*iHpM$&`4usBc#83U!2lPMTrR6=4V#QMKXDsiPOV`R(eA<c@+1S{Y zI~@MFWG6Q*Og8i2EVAQGvA!Pbn+ytIrl}0C*`VBiM({;{qQkA4M-(gEzSWE|?&@?5 zPdZ%_c4+r`C6CeR`?b;jqk~b{@HObv?It}bOuI08yO}i)rNgxZlC7pkpZj<-7psgW zMRr*5TzmGI9mFNbrDtP9CSfn+uPu+Ay7;RW^5Tl^d<wVumh%JKW4Ab}&&M%&W2!W_ z%FmcerX1jvR9vMzhm!46LnZ5+9rnX-cTPCH{q6#B`MP7@Hl1NAyNT8sw<y6vom3{5 zOPNvdR$0(Yrm!e2sgyJcwjHieP*RXz!}#|>?63|WwJ#zEj`Rpf`&~08H_o~4Iy^KY zlupf72ThoD0$Pb$!_+Y-`!6QistB!EOBlhM{$-26zoql?CUp-DY)z<3D)y%2?4_S1 znn_t3uI$V&18284=nRV=aKlxK@Pi)>k~1+;zCR>NDB1vkCBrSJ75l{2Uzs6M+r>>) z_40<>U7(w3IU&`1KUHK%%U$Wx1dfBz9XK8pX8ykz6Whc809*XQ|EIG#y5-6`4Qz27 zm!<<>k1^>k!C!(hEdhVXxQ70m0M-$DNZpHg;$d21hK`N(Jy(gOM5x#iyVqVhCnF@Q zbCLe1y>~=Ni_CBx83jQ^Tk=*d9T-fH8_@K-0NuSj4N4J35@ENfi%G-br59zLS6a>w zGw?}MQ+T}$Lj~fky1FafUgr#531G!FgE5umR!x7MW#4H8V&CruLYpG3H{_tCh>C~c zs@T8dc!P%9MJ_kVkQJ=ANF~kB2t@iFy9G(o35nYJh=(ok+CQG6u@{LK96YTOq9*uI zG3m1Xz9z^rn`S1w_-@`zO0K!XKMHSu0p>!-728jbFA<KFdlh;G04~d4k?#*xn*wN8 zqHji3or{HB2>Y$MBc4r3;9n@Um<<DA=#u88yz5=dV4!<JQo+eEH^HGkPV`_t8&P}b zIR7mD_2Kt5K_(=-Xs?h^4F(ixVB0%CdzP6YaB$4~*7GB<<wfz=Ie3t~Pye8RN2$wi zOKBtfF7-fSeQ|MN^CD2`fgi$PJp&28I5J?g4UnumrP>Nl<y8{(4)w8b|M^exR7bmV z<|m$t_>mnN8uN(ngTuVLcnTW^*$%{ySQS|Cs*0d*9>ycL=`A*_y8Sih$E%~Z-ZBkF z&RY(|-bJSJo<8f;E8tGI(1BC^xX9@Cp~yw={C^o_=c)0XAr%->@;S(q@bES>uq$(G zs(KP&-1aKRiO$Bm-^Md`=~-eXoeFWeRl!^SFL=VRw%w~4)esU;(p3T;6`5E(N<fTa z3d6vQi}3ngAg%`<0YBNq0f=%3B3Zl)73x$T33`mKY*aV6t;1_v^Y-US1@v#JkIP4- zva}o3wQB8R`~2>l&aN6Wvp&o-(rmUjej2KMY2_PVk9KO;O`%HSQO2HP#m)%UM;!;J zLsx04v$3}XU57!47R^II_Peq$8w!Y-SrzE%QXi`~*2%K7=>#)J06xHrEKX@)|1r1Q zt>A(!P&e1x5UDsIG^!Daid@6^!OvA7OX)y(ipL;Bl@`6E|3Wd9G|jy_*sWMBF^Kho z*ZBR(=^KtN{JeL~;FBx=2Sb^=mWTmbGtk7o&)A!wYt3NR+G($YQpxOZQ1ndNp2csh zNZdo15sj-OIqAGtK)yU(C~UW&%#gY<bE&eVoqe~z9wW1<r0U?sd#i46P&8>2=}|g{ zl5LreW3`a<6xGcfSRNAxxOdy&cWt1U=@Y8ZwLIYipC_viX)%#1bkX0u9U;%qP>iRp zLPo!wL!vUcrQWSE!_6v#_Iv)dsy9XUxtH$Y&dSd*Cy|{!I5<)0RTn?{i?GNbL!ux# z_QMLlTl5<;nBU$^r?!av!lM-K>YW{s6ZYhTvCE}c?Px<c*s)tgb+uXR$$D<rU?3en zT)g%mTuSQ2tb$lOOMMJzinI*@gS#+ggQihcyDy6#ptCic;hR$&{}K#$^{U7GGDbwF zOM_pjcJNIZ$iFt(7m+mq7`X6_5&NH;F9vs57-qPD$SGYOdzi-8k!>!{Wg_hUZ1Q>M zpuMi%v-PE`nmU>9FtZ{={ssvD96HpapzGXMJ4epHZ2p#hKg|>Qdc)m!74*!jm*ARU zsw0jr-Iv^ve9VdU3to+n*@nky^1j_Mn5E%6M{8?FmGI7kC7u0IRLZ7D-PgMO3w2vX z>Gl5=T0S-u{Jjum>PCZvdO^2%tS(pBbsFhH%9u7g^9<{y>B~(}k<M=v?V}>^#Aw{9 zcT1eSc-2yyE1JV4JyL|s^mAOIRoR6-)+f(-1UY{j?a;G$WH{~>3OsH7gsz+fRS0ls zRNxx_vQ=$-{}_IS0a&z<lixXC`t8Rwv&=F5O5;gWsO7x#Q_TTwKIY_ZTktKleNf)^ z18o5$i~duu{;Objy3;q`Id4z&u!-=`xnc}4B(g>+Ue;BiFCUs}%anVv1c$XHs9WFd zt*|xMm$sJq-O@mWYhDfF90FmfcQZ~My<PtxrB!mb^%<ANDbpLBmh;wci!-6$HdlW> zY9I1BoY*@AT2T}o_>{*Nn1u>WqO{C*5e}HT)VRNi2<dDjH2cKK2CL}0&nxkQ=N_l- z=2Sio6mIfBhirW>p^iQUZVC6kO`typzPi3Yq30q&`C22gk>fZ}<1~ctL+vT=*A8mS zl?SyMcr+&Ypr2!0*kX&*ovjHe!9lL#)tB0&kAIxSfg4FI{*EU|v+JF#_3L|u#TmW9 zTFY(?&Q6-)3SHsiGga@#eqQ4u;KSGEFYWjcQxqUANrbvW8;_miz`2$P3}wdj@@`$3 zL6{3UjBBl-82ofhc+0AqS2OUnN<4C+q3cVPblg@~NaQhQboU2e-2k?uja}q*`2tO= zm)a@i2bt;{Wz4e8RUSevtS;PM7;%K^?2<i8ZMusXe9>8)Cu<V=%~L1GL37xN#j_X= zUC$)hv<<K`gs9G$GvMRP<*voc9~SI#gEI-p?bia$HWu|Dol)jmabvY#{|UAuxNE+w zm~A(Hl_iTr%||tlmbnw}{EI$h`yZt_@Qv$#9SOO%STAmgq`|2c2)e9U8-gwcWJVIp zC2+&Q{>5-dh*K|J>HF#n!RhhaMKU6>FpD$39uY=$=`opHy%NKT<xxFfCXgDMe(5Xr zta#kclc6e$>^%_3Y?YC`wMZ`jZZy|0OOxS18xF@`NaiEZhxQJw7rVETYt2aGiaaSg zAj`_c$ZXwoWQp#t-Dj6ZbvLO_4PvJs8s*M=$5W*6eS3!=;$OYAi1Z87ZrNDfq@^)q zS}p;8Vi#uUIlPHdH1&1?;z`*363>RH!3O2vj~PVDLH)Q6V7ErN-ux)DFOBh~Gw5`l zRCKxeqb*|;FnX|#`db+g&JL~uW_1<yB7EVB9C=2p_IsIY_G)?VDnveoQ3c9VgYS-E z`IpYWJI{UmQCm`d#gEXYAw(B2vcZkxyez%14G95L8zzOpqGiSt4oF{T`&tt%T^GdP z7lps711;k7(S~Zw*}^=n@?OCGgjKh7^Vz!U<qs$+E}1);f^VA6z8Za%44%(*mFW@B z`)5;rfH&;BqX6{Ws|AGR-BU-p#Vg-bOL7FZZhl|vN0cn+WG1(@AdW|(BH}v8SLzR> z_5s?KE4zz~N=W<cGB>J(Rs72~310lo1YFPGY5{|}Amh~`oZiw+#&;^*0Pd?u)pQKB z*Kumn@I{F?;u2Os-_9(i>4sXTIzz1LB#~nC`F8fTdv*yMzJlSdnkjjR#wueJ1~E@K z^mn75ye)@ZqijL(TN`xHwl&>@>d_8Zxp9$j$6(in{hFm(r+A0Zem)o52yV!dbinIX z?b2YeT87W*VkK>FwXJVB>nD)jg1F~t4Xrrff@Ib#wYK4FGWwM00JXOLPT?z%iFRKl zXzOv7n#uWf%;kxo9rhE=o~As!D&kp@h0C8`-JbXpcSf4+;Lx>1|88;#r-zjL^i_a! z^Z(1HpgIT~g*(eWPX@$r!tF;_ZnLW@)ULP6K|=XhqBO-Al8~Ygq(d`7(>do^WAV34 ziMhudAJORF!T1Z2$Kz0aH5c(mq9Ct8kq+L$$gU3}9Wg`x@e~I$JWB-F63;JngL}*Y zJ0<M_A1V-%Z-Ph_?!0Pm?=@t2j@C(^<Y`cJcCXnB+*W8TP96RSKEYUf-Oi%)^fJ&} zT|wGRqHfz_dq_rg2tL%gPqZ$2{%Ld8(B7Tq8mzlomZVMA-PF3c3k#VFT8bNUcLN$J zzqg#=)^P`bDauSt>!}^B$p)c5RI;`WsR*^)kdG<@YEMCgHO=zTNfmS$ddNLx`AJH^ z$$GgIFEl97(AmTrzcYNWW}H4BK;fkW7Y3nT3gOR;QP`f2#GS+%sv-m+gAR0fCyqya z{(@Fe#nYDhq_%d=`z6SdFE=^^Z#q2QQxGWo;rK?OAt2Jf+y}hF3|aNsL(X%p9xR2# zw1OfK)C!nPNsyFYV`^u<j3N|fH`}ZycDx^5HmQC9f9KD2BN(VfpYpFaIM@n_W&y^z zbMH!}U6zrMk<1;y0^dZGR|9OtLr1&@QSC5vS@w4f8Il=acps=rg^*EN)QWpR@1zyA z*-W_u$s|{_H3xw3;1}*>l3&h=<BF&^o5g%&jo!1;G8!5q&4;)jL*~O7ASxU{(do&9 zAWt(PBFySMOsjbey5mr)u-%(?c0nL#QoSSl-G^UadyqA8W0@ySr&R-Pb}h>D9+kxo zBNWtq^O2wH1Pmb%M)HKxc>IiH6ip7uYlL&tw_0m8eJjakl}q_j5%+=$M=<<kwNT0p zA^(|}wc1PlxMg1A(QZDNuxwfy@_6rIUqziW7}WlXr;pFFsm2~P3>-C}A<U5p`U{XZ z^E6j2-J+xAJk_pYNM4MZ7r99fpEVm&;LOX9Acea7XF4@kHooF_{As1=uAlX`gxhh% z`s%qoN8bBofKAQeKI^hnh;k}4s{$7>4sQnr=#8~kpa0zEr8vw6L*;8ikJGXKZl&Or zkl)Q!L%`zZ>7|U{(<WgR6E_Wus$}oh&cw}hy?*`Q!I`oIWITGkvC(s9ISdX`z>H8| z+3&VL1pELG197WNTb3zkrbPG}sK$dbO_L)Z2M}bJ!XOhBI6GjhH5RT$T}P4n?sgn_ zL|Z(HXI)efGZ`s}Uf5_mps)(0c442tC|<aJg@gwcKdqP0Zo>-t&uVL5%6kIr-lQZ0 z7Lj86s~x)P!9s%8;HbrDk4F+}!{!N4@p=ox7I%V)WR8hqCKG^g-@3zFb=+u~9nctM zI(dxH-jOdmf}W$+e)#;o4n$4xsuVMMK}H9fh+1t}p9}ASO8u;`tkb}VCEo1MT^^AB zNjv2N?bQU9_A*mgM(~Nm=0zl9G>MC&Nu|s6m7p#>-(`BNMbmN~QyEV{-rFk&Rr69e z%IlfSjH`70nd!GJ9K%iLXV5x6DyynnP$h|zgbZw%0XtzQ(SH7xx;j4TMu@B;&#i}S z3}o$|$4-}Ul)S3+AX4CdxKbkvHxm*j_W1v<yhr}eI?VOI7G`pj)o66Po>4=qve=mm zUn(`MFaP-QSVrgL*wSA%RWrg4dnYIfC+I@&grkF6*ICl^(U`b(jHIsYpnbPZLshjg zq=wiq)Hcp@B|$n-%&C#BN1JYV|2L|ym<Y{+HcsPq3Myo2XjPGzx}CZojAp9(n#m0A zG|YUg$$<>zZ>Jq?9ZSmYkM)q=JQgdub&LfdESKGfCqaQed{%ia)bD&NMTUb-WmuWI zBBxMe{Km%efH|z^rJ@yn2RzCQ9i?MvkEbVBtwY@UI%{J%Bod=?-LAy1jjeVhaz9bA z&H7G=k9yQCbU4dngwQb#)q7E|iIvYQaGm+f#z!YWVoT0HFw0`deRsbi^Z3T|vs&;2 z`ihB`+{6;f^jc_jFPc(<`>0(IU!B6sz8*b;yK}-!aHLCn;2z~)kBZg&@YdJ7$|*!? zbySF%m!MWzK}Ab$s5Z5yTU*TvMx8CfM+rfesJ5On%K!ou#)_{)U?yNwO1u_AAlI0N z_Gy3QbimXgfE_C>L0Kn9fez1>mQ1N9I|<C9x}j&iL)h2a3%oM|zuI{_2Yi6jtk4Tv z83e+VLFbzDnQVh}{%1$SquwrDIFoC;1}p0k-zE0=?X$pdx2fNx+hkY$7t2^pd5ng? zYz2FO-Yv?Rn;uF^<Y+r!kEwAwdY3w1W8H8zzGVEq2XZ-s+PZ5%8ZLZu#bnTqt@ztS zXo{)akC64XCZH+U+PN^)U8nB@5kjO3zTiVYO}Kw7fUJi7Npd@Rgp=9p!Chnguk!q~ zuM)aznrt51D&bqmC6rDsLlayVEd8`17Vf-Ee6Jt!+0=4=;FSI29mlFsK}Kz613W|Z z*uyVJx`Qu#@DcwgFm`Xke#|jHaWlUg8+ezyOv}U`9<j}8aes+&TdxH=mCPOb$SBr< z^K1`BDYu)?Kkg*nBP-BfR=FJlZB7x>E-<|H>kaMo%lm%L{e9k23Vs<eaZC0}?^<M* z>nJp^>2F^cZ|OJ0eJXC;qxwcz#<t_K<|478q<XZ5)94TJSax5$e9D<<w`Z0N!_tzJ z!=6Crh#jXVU_m54Qd=DrZ^o&bzMe<sSbm@x9;+Lxl!cmJ-racOI-;#Xrbq^9|0#I- zaEZA0@}#$b#oI|ZfP)p>NVP8x0*;b+RlvjyVMy1azBS&acD-?9XGj1J*(!%QT8Z8Z z>pxFDtI25&m?BTf`FONf8Xmp<*|eI86?)RfGeMfHTl4BQhWfxUH-humdk=st>+b_! zzww)V!Ex#y|3i0pSe>zGRZB0Lr5s`DOo`B@s?eeG4HZdG!|vBKKe&|cE1FKY91v-3 z{RGWgm*pNktl16A%7GpBcul{;hhKtSA8HaPA<)&^o{+uFPXYze`17yS6`M+Zv5B70 z3g?D<RaGW(HMd{8-Oaoy=xSY9Anf2=Hw#_$oga<_SoPkcR5=!hD9~~{j<xX7#X1nx zsI^2%R4BipKMLkd?;{PXR2L@*15HJHIL`>$EKB>`Tl2j~?|AP2dcip^)5D=IGaAq` z1+-D~jj2@$&hfzGR1QBc%*!lgUGYL(T=!`@^?5QVTgRHrVLWhhMMj5}Lsq!k=PEs% zb^>8KA`}Z&y}>0hGAkzgEwb#eYIuv)5V)jzytg75D1XJ_{o(zf>h1_#Q5YCVz`(*| zyo!O4b%Mt({N1xAb)lN<rTTMWWxL%EnjdC7H{-Jq>if&qGk?!^F-g`j$#37)J2_Mi z3y^Uef7!HmB4r_=-WVWe?#(_TY<xxd{8wgSjp~Rq(S|x5<qm*90_{^rs<SBAcw*2+ zv#->EJcaVRlI0#=pA9Y@Y^OQYB#ytnb4xtUyGud3OQ{Ig+t>Ut)i)Oj1*VuvYBELr z@DZ3HN>7~q0abO<Bz7Z+*_bH6BzPw1S<R{vmpx))+TQEVz&Wo4!i2omCl^s!1Ay~N z5@2^m+Pur<zM5KRmcj%xu9Ii0HB}1uRTfq(Q;Bt$B^>G?9XMmYR@O2LSVz&#_*g$q z3)0yb8kaTA7c(O#^e8!w0U^7H`?xA~P&C1^o87J1g70ImV3}+7k#C-6?YappU9<Hb zvJ#cn^mAX|Yf4$dHBJ!;g!1V{+U4jAsAjzyDd(JO!;(*o(Y>_>->_kT#%MVOY&a^x zZqlz82LYa#;-fXm+~bBGw4=5|3X1Ctg%_SAaaL=6qP6vq-_l6LWrZ_IN3NVc#kUZ= zF)HeCG_vE{9Y~6=A|Ch0dc6)lOapU~zQyytIp_zQepwpX{g6h^K>?d_z%i$^106yf zh4E0q?IOfiq|Ekd_T`7j<ku~y;NIRL1+k!-9o#u@0&=`z3|k&4($bLSN2}Bui52ip z_zy9#+Kaf}c88#M0UnOP1K2X~pWf8wvG*%_I?pq--m`wdx&*Q-|NXy{?Eh6ykGux` zuM3e_*4_KE`H2Fh2RvfaV=>joOHlho;eRwcGh+aOGJ$R4SLJOeEwGyi>td^*yqtUY zZeMSm>!@~klda0UQJVQ4mH|w8-n3VHE2d`YUi%_h(>yKm1FnVLCAOM`<?Mod8Z!1C z+}DFSoh7Gq&=DgTFtEHfR9xVp8m#nvE3CW>b7^0R83+t#5!x=Zjd^xbbzW$)!DIKk zd*a{PT`a!|6sPwr$Nl`mTo@i%L!Pxo7R+6@@AH=ry!g^B_2ieA-H4{|9;g2U;7!4T zQ<f<S);Iv`^?I51I5)?-a+*LO{^_oFgq61#g6CST_V=Obch1bm{&zo2QGnCzIJ<R& zIc6|`v2*yBZD64?-J871bmq0>on2rwB`-U$P6F@Du?HhKh*M}gVAi5U(f>5HgsUD+ z?5jnR%-B}051>{>_@+2s_lnmJt%ZWv@BKt(JjW4EKPS50gsbx=rY#JG@0lslr3xZi z?d2xDxf}v_Ha7u2J9%3Kh#FkHL$!&nL2xXE=;pb7^4v8n^0W?7P0)P6@BTjSD)#Gj z{n`uiPaZbnuec^Znw$1z0-w`4=4*PzdWZ@7%M%TirF(<zd_l#^SAW@d%T|hOa4r~} zu-X$mh*JelF8mG<`^+``Z=%NH75n%UJMHd#easdt2AwQ@G58_qNB8`LJEd3ku1X~P zPH3GYBKW$<x6k}(o%uljebg;%u&3Fo)iT;juHpLPh5AkEtD2BFh1v)cDgS?C<V`fV z{nD^~59D-fxtGn2Vr5Uw!kWrHar0m@<nqM2gt%kzvs>mjb&mU(*36_m-7jUy4damb zeYFCKFFv|UG_!ZC6Qe9~=Ox1Z-TJ3EuB-V546hkTj)~r|Io?vzCl)WSh+ePhZ5CcR zxlrw<b?;4`@3H@;QqX7(DGu1MQ@B&ZN0XOM%?kAVi?e8BTY4tXzn&px%e&zOu*g52 z(ISaUHq-RQ`M3y;cINHY%?jPMy!5{5Yd5O%1*-3;)<o~+i!K7$Iad6U>KkKB22NzF zPtK_hXq52bviJu>Plqr-+QWcmj%W6Xg3!<2BIjUUC3mllsy2tujN7kjGVJq+ebB-c zn-Ya#FP1&JE#q2V{S$~lTTW9p&>1<ylSy1o9;ltY{6lIo>1-B>^QbA+=B@mNDMBAo z6aS903GCC<(v;y4U*21P)~zAKI7Z=kxfZ&XtbTmvzES*{dh=#?Tm|yZjndF%pe_TC zHK^5$uAt7~No8^CM>5O~mBM?oBQtqF5KKrLfEsGMo|EWRw^z!_AvuZJ)l3XJz3u={ z9-aS=`g!*oqsfolygZV=q8<Rqb9?xEvyl9TFN^3|R5&FO2y^73?`|0XR$8R3$COSG z9n65l)TfQS_&r5)7gAPRuR_zXGUa3|Ibgmv0sCN;P)shaxA~t><(oXdC5|j|`qy?b zJ(vibJ2;vpM;|T<S^&kUXP+%6`$!<1>Zm)&G}cvzSx?`J?Y^tyd4A;zc0W&6Km+Ap zbY@Jb&B>YX{;u)S2!@Ezl?oIs5}wX0`TGF%8Q@{&4>(CnHOHBSeqnNyDlbj7^iY&% zEkC$Dj~}2}zKva)8dY%kzFX=dosJwy!`2pku9g=G*Avw^ZAozoohbEMTt-e#J9lX| znA$9u_!HNsCNpP$?+<iO*DSscKMu2`BgqJ%@ot}Ty7~j!**p?1T9|9(nY?5({!4{! zYhjR(|L39GNUuu0GNldl?QbW){4l$6a8sMRoIFytb(e!Tu&@D~ez?OJP`(BvBDQ}U zD!ojetBGGZT&e*peW2eD46T4YrlDfBJutW4O994dW%Rg}{!=CSKb*Ylww#-Dm4Ce- zc!BaNbU9=GqtMXm=(V0JtmO6yki!j(X|uP|N~UA!hFmzLp3eJDFw{8aIri&E#|O?Y z9_f1dmZJ7Td)>yN=z%3M)~WJCiJ%7XB|4Wy?TCN!aXP9yM@8tU$uJbEVw^L{`_Rp} z58C<AzV}q~;FYQ;)bXE}i*-(4?9zsGe6#14NS&{Wk$+lbUWOgPElw(#ASG}ns@i6! zgFrWbRckul&o=rZHxmE6gqXP8yn=Vo!o1C`ZQf4x28|B9VI2+P1*Q~AEY*Re9)T9? ze%o@<kgV{^F$F}=4T^Uf*$H;uupE_SOE8e<N<Y`uD$Femp}~w7x@WvrpB7UN4)*`D z86OajMj_v}jz&rUWs}8Ok4{eS`?#(QL<7$!<ApjUn1&(;#=<nhke&~h`9-3dq{^L) zeaAwkQaL~6Yt*y~R`vd66H&hq8xbkpn;;lrbK2k8)&9#eA*CcGYy(3Ynf&%e`zkW{ zl^T974C}NY3Rv>}-x{-jZ0tXSzR~}Sj|CXmi$RFnRNtsldQK-lIwJ-+pogZs0jbW7 z+Yku!bVfj6_^F$1Wzm7YY~o`;IuzQRyY%+Y;=B|G;1qG9b&x$DFIjbv%k}bwPj9B> zr8q-be1F*_5X9cug-jY`7tJi%0kf}M=p;Gd65;23n{<RGZv4q<zOEWrXE*oO(U80D zV!QZ<Xu*!3At}dy7s>N*^oul`lr-vkpeC7OKRaAqvu>J3L3h3M6qTM1$5n@_h9lsZ z#erni-kwiGemI?9T^-ma-;U@T4~RU5T|5)pLMBhkj4y70rzlKSfF`CJ=;fVk+cWw< zYX#>5OQ0&|F0CR17E0=6>Kj##K6^?7MHPS8p49uxrkBI%4}m_Pva4*!AB=C6d@iVH zz<!lVvyvQf8Y4ghM}twr2VqwHs1w`qlVB(UvopUDu1E#7Ex}ZQ6zn!(-9a8D#$DaK z0>)JYf}aj*A5_Mcpk|G$U#S+O<)vSU-;#TL!68NGnd%umJ8AukF$-y_%tgf0FX@M? zEn};*HW<O~{5;M4-t_TybmMgO*p!nUlMCK@2{#iHf};q)3s}QAtX@P|Axva=<I4t1 z1g19TBl&ft<?3Xoyp3AJRHN(j${q;G_U);w(N>TAG~lF11M!{pjraeD?H%25d0rWL zVXg|CjM?{u!-d(XikUNg%0`1KlLB`Jw-beba*Ev@t|@=y11a(Pef<3R@{C@f{SO|y zH(kTSS59w^5`B>H)dL)fIOt5l>R4U9O3KQ<_Ef~fV3c3gQsm~tPmgQjPWH0_Fw>QK z?ZGdxR}H2fh@Jd&(@xh>O(^c|^B}R@xc@|Y@Qh0ltkXik>34;G`OqBHs`T1f4lsE1 zz(n%1M=~_XJ{;X5)TmA}<|4y-1PjLM7GE912ACXuFsO3r^?ivnV^w0!o2&w>Bc@XC zGO^{x+1Fpx9!%{Kp#bW=*ofjWRi5`{)>?10;KrIkfE&t8I$Q+j2_@J7BJUS8{aqw= zJ|mvyOa?4R?S;nbi#;>L1&3NhJsW`PogYQJ)ZLyrpfL3=U%WC=5)$BbUNA4k;9CI2 z!b<Ga=4MN&*3QNP7F)A*&7`~{W+^wJylLZH?Mpju16bF-o!!kXF~ZHI+l;aXpHDmv z3!Za?A&T8G=n;~O6uVNRuh93_n*#R@_!{y*K+5*bFO2Pp^BOO`SWwfoyONjt#5QnN zV{W%R0c8psOwYrWCm#05=+OXG*h)7r0$pz6p|M*I6;)Ha<H=M@^h>cZ|Fl8!s65QD z!0FCzX135iRB@qq?}l!h0bz~r`git*4AIf~<VOBHX!ZWOi}fj|$#1(W?{s-!vO|6f zR|nd{IchToZVyk~{=91O0J^cRs7p_Rbp6UsCu}^8cmeWAY;o;Ai}oauXN~PKm=y*N zqpaySskf*j_J^Sc;Bh_hR_7Y%cw;Ldj9Z&Lyym?D<Y2$?FAO>)M<-v)<~lX;AjhBU zjAuhttPin+_u(QXGnjaC|Ka{eo*q7C>Ca7olXYO7pfqlFu&$_>5k)!!Sl33jb=)t~ zv|1ZRSI}J_X?NA%6}F5>xrC@RmKrBM@?C%06TP_jp+|IClbVn{*i8e*)IUZDS;vZB zOnGJ|kUofu4B6|tOGb;e7qwPHLR1d&=10^nf}Om!6e^n<hPCBBea_I)>If-&a|~#K z%j(>x9N4mr5+$r|Dupq72LmZg2X$*${w9&O1G?R$HN%8<A_V*q?67NU;k-4&Yrbp# z8co+jcd<iFLP9mx&R6(-1`Z}|9GmI_^lihveEA}O^l%qRy_-XcgyK;)t4vQRbJ^sY z+)O1BaGk(0>7JmP%yzSJ<!;=?rdRON)hO6;()9UdT@ES%SmGfD?R9Dv<0ZQW+PmbI zbvp~eE9Z|WR@jXY^bF6O6c2d(eBw`UJ<e4afM9fS$#cQM8EScFv@t(d)eFrS*h>1T z^66C&Uy~16iF>77Uaes-)*o?h;?8i7pLU;(dG@{^y<(myJ{E8t5Kg`?v3ijE^v!|d z-4A9eX#T2_vEx3du0sbJbPM#~?7DU`r%U<oc591%S*P0FVg%SSFB7>(+#TL!V@4+@ zz$|7sJ-V`=UN<B=d6-pGrK0>jokT~(vn}PwCf?(3>xWeSv}Q=3<h<^<BL>yyr9}yz z<*zkKw|-<OZB;6qr<1Pb&+?MQ-yg-rP#4=L+GDpKsGnQh7Mxh5$e8C*+%RKu;KHd~ zA#8O9S{nXX6TWsh1C4-V+1DBY)otzh$!R*gO<0<Sh+|kNH0YPna~v94zShPrx<tM0 zBHVP=vgJNWA-5%Efud*U78819kcDa4`wG)jaF6+*)0YFd&YwOvHfXZE0l{wrdzQ@e zRARfX0!@n2N2?|a*OL;#dP6YL!X;<+-~OCNQwGme69tz`;U`eVj-*eG#*Mu_w@(t^ zUpf2VOox?GR;S_5v~*3sl=x7s#zwf)*~MN#LG$dFX+%g_6`)%IZ;P{C2llyi^B|)d z_y0dY@W1)>?-)>?|GS|X>OnpD%`P&F6QWy?a8Wy8KKig-&2NTIkweX1-QLSc=M%2A zb!N@40-v`(d-2)bT{}dG`p2IBbA<ZG+thzy$k2CsKk(+(nfBx9kINS>CrNTY_bZ&2 zF&r1iImh~YY=I74S%iF9X2A}AXnUan@HT1}lH7guiT>1JSrK(rJoaogSxM2PPCe<C zXTkgxVe}7XgaoM}SmKmbww1DmzMXFYs+~)BV||OIKWlbQ`RvUuZAl)}WX|Ez^>#1o z>LH}DPD5K>UR_4*qkj)+5@1Fu62+2$-L7x(++b`72bDiG&heQs$kd#iY_+@UvY;>S zeQ2QbB7cV(v=(u#-8|jsYqN&4SIOkC4-1C}<G*<%2ZgF8@gCLlmw8g!X_4msCGAt1 zPahTu!GN>o2&0tDck2oseG|O2Wom0ljd4!UVzkqo(W!~E>yc+qVsdT04n6P0!8Rb! zzidYj_F0ws=Z$U#TjuQXY}A?Q*6o0G^ZQ8flkG?_-KHBDhee{pC8ij%G!^^)JU24* zY}aEPO|KF42lvNslHD<D_U#Hp?qj@TC$8W2VU#nLa_1&Y5c06VNnZ`S6Yniok*IP2 znYQ><?p%A_qU>|eJY%}go#i#@P{`N?A%R8Gt9Zt_->|266$}BjTR`n(;@Wl8AI4kK zjj5p>59KwJ<Ni2GjOC%}D^s3B#*k2l=T#2G$K~pM(n>Y@^W+!)EBB?e`Un&+Ohz*t zH9cGujk^4*P4W6tW5^ybNDGKesYk*%N`h=mhPT5MdlckV4v$q0QHG}Y&?-b*p!n%y zJ*|$pPf4>Sa&x6A&9_Z%r{WJL)*l&TcIf|3DWtyd;!kS>qmE(&@cdC$@Y=&`yh8LD z{}M(<#PEWSwQ*FOnpkf@n=&J%)Vjl`=5f{Qml{6`Cwd{Oz?eCjY_Wd{s1R=f_W8wM zHfVAr0vp%?iU8zMi>(_G;T*t5|1_@%XA^>7bj)9g8|IK{I!taES^rh*-ZlKaMW|(K zQ~~PBANfUHBVzs`<6&2ud8YWq1PL#>)y=~__fhGW(sfd06jUZAn*lak7MWpB&;}hk zvHB24Sn99`bd5sKgYFK@u_b5aZ&dY!nmka)g&=jy5rsia&7l@r@6QjPj_)-O)HX~| zg7^m{BaHlrl7JJ~AC3e6>eJ}XmWBK8=!nglCHad0ANqK>BydsM^0^vl`PJ0v@7ZIx zPjrF%Z-61L&SP-REu+_<s=CJH>pcqJ@vFxom!wNojdGEY;wZlQp8LN4L+aybhlgUo z)p&-RDTSX0K{g@@Qk@C{GpHopi!d;)Ka~__F{A&6aq7#mt`s#o5o0_LXcwZI{9k-= z1VikT-}Z|)9=c~fm5S34$~bXEIZxZsqgU9ru_f8EK?}0A-?$d%2Y416qJ?&G;LIPa zQN>$!6(_cTxZ7T~YL_ufyL@|J;tGu@wmq5kem}~3wqH8#b#YbU2f@cmzi9UYFUf~6 z!>Twd+5xN=L+75as%`$MeSJWPae@#U_)4L9grm;o`rO9L>-jgh?B%mJ`G>9Q8Gqod zPvA3O3A}5)Knyc*?W^6<t|A@rt6F)yoh+RpUoi)z<Ghi`y_hCBm3!?<vBh<+yNzG_ zcAsj6v#vMuKeAsN>jnOxm}a^#9tgMrVZh|O0MJoe4iOf^YYWk|3~K3FGks>}YF)ei zza~}#JRYURw+2H*Q_RkZXTF^Kfufx4e%-B#szu2d-H3a>!36#287f_`Qwlv`eF<AU zl!3Q`SQmm)XJtlUoKQGQxAIs>AGV~V%BizR%<!n=GGNz@JQ57MTdJ>~&i_M=aKfEr z8Q0I}9X_}@Fcs==%$R;EgZJgl_}~mid^ix90d_xIHfBZQVeHhZG4P4Is1h^@ao#jl zzhaUOYDJ5y@iS+d-{ekvpG94Mota{@IkF=vJ%W7aodP358rG+G_F^}GruZxT7#*$M z_hE)DMy!B%8DfVTB8kEhhkge@pZC@;r%#}D?9^xAiPIv(&#zRid?46`<%?eJLm}Hl zA+x>2?+zmBroU?6=F60&c&AyT!!ubpGmvsu82I$co%8+<Lt2>pgK&0|b7d(YlI7I~ zSI}eZ^NlmcRO6XIV2_=or$-~MJ~S4sAfDCK>c;l6aX>;}N<(T}K3=Red(7N&;`t-U zm>B@FtM7|M&^81INx7;9=4l=|Bc{DbRcP$)<^v{R&<B6=17=YMaM&!hp{vFw9@bwg zsp?Uf*{A&Tb3<K~D}=OXWwfP?dmHy3Yg1Zgg>s!bgJ3xvVCkQ7pDh!Dy+@M&n3=hm zPJ25T8SRey;}*k3o=duQ+0_bw29|ynOQ~vFqC!p3Va-o>c3(`L3msQSr?9&GG2`v6 zpd&33tS%fN8iR1ISB3#uRzaxFDcO2#l8%LSGj<s5;}RPnb9gEB$sVT=x{C3>tEjXG z)2?i1gnUq&?c3iFuxae@m+b-TcTd%Xu0u51G-cGHI?TZ*oZmAe)-wzWnE~o<{4RNv z5f(~XrGVOmkJF(=L7@g?P^;rfm1^kS!^VuEVr!_Ht)ioRdDPQC$|FGPi>$jJs>j=M zxfwRM3l7{V(<&r?t+sJohnO}1rj*ZJLCNIn#IFOZ&angk;5Y`)|4$<zee{1e^#3dN zxV%i?T1L3A!oGtt{<0B`cS~r{Zg8x9R|>RbxJ86+VKw46%^Bn`9`xn=&?Fkm8EAex z8M|Vme*Rj**N#W8c`vITNNOqfHmS|*bf`YhpH{0#iEFNyr{326U~JbsMT9caJF=4e z$rur{sB1xWF+Z-oN(u2gY?igkJ~Ut0^FkF)>uocdXwjv#62dQf&ON#fnR&PE+=HP$ zGMs(~X5mj-tc+xA^?V^NC%STLaWCAOx2Xt&%k(nrW{q}6VgCHrz7Kdxt8ydu{<7J) zu9XM5WITTUQzPIak9CcDdHF)vz7Hf=4iO`QRca3t(uTk*yk<-a=@X7Y2s4{oeNc&x z7H6a<_?V#}@4Yph(MB?^=%$uxE6v?-z&caH-lvo0J&DhcA!{2(V%oB{i%hYzcCWgP zecZ&ELWqHI0O{}oR`3I(82W|Yn)n#sCNt6>f8*etX)cMwamSVH;E$?1iHUQe!ap6} z#hx4|HNMFWwq56KeLNp$Ycv#n6-iOphmOL(x8wi==9i~}p;-%mU_9E6mP?Q7RQw#5 zp}!anPUA#tY~6Cq8j8BukuO41{BU@m9#6{Em1M@VxL`&jO~x~z@r_yC>Q`msbO$@y z7wcZG4o+@I`w3@ns{M+2LvMwH$qOG>WzvXjQ##eIgwu`I=2CqcVcTUkv0LdCszbTl zIH~p}eXIfeYWGZxa&Xg&Zxgj?pWU|S{ZHLzZQYkK%3pb5QunKPbi)UDZ*M96aoufT z=HR>rPA}WT+nvm(+gol9`YkD7G12@xoi%~f{c9b<tL=5v;s8LxIQsla#-HlK=OlwG zK{pe4jFkN^yhJS)7qKJ`C<|c$K;YcPV`RWUiwWx0OCFS|Jl66cQ{WGe*G#(>&+Sdw z8N~^n?>c<pP39@__5dLY9&7HAQ%jV%cdTbY=-YP_)PH88rz7@8c8=<Rw1$D;1b|x< zlT0g>k(14fntUDjK+}gKiftx0fy;R$$M^*@EIGgBN;m*`RcCe%aNE&`$#vgxG5I%W z=?MYv?Shg!bcJh1l(geLroDtZf0eh)+_~ju_urg<g?@B<Kc?32!smlM3jD5{b@7ve z{(X>Kt~#ah(0mCD_=c_l@mRBK`RpUwfj-m?(_ug6MZgj*3DCvpTjRdP8~@%;&--P~ zZ~8t{@hy-MF8$=P_<#0z%o!b34M;$WG0r!Bd)>n{r~FZ?R&dMY0S@1bBeOFuB3K-# z!@J=CNP~*TdEf}jyUuj@444yUiE#Kz4+J`{C}AahlSLRQ%){&}!aTy5wvdXZ2kKw+ zY^caPS`K!oiRJ#I|M0RCHp<rWZ9=J$sz@H0(hv$V(eyTsGo_XXh1fCbm|RPBdi3km zm|Hae=_HsIwf(!MQlese4v;q#etBqZ=lxK{nb<IH*+G@p?|<dk{bkF&6LtFK%P1A( zlDY==C$S2s@57kzvSTh!;i_}{trF?hDo%(SxjZlRUi}_xoYV#AHm3cFGe$zLzlIfu z=f9G)zdz66p8x%ZsBtyb<^d#ZVDT=CLjY)s-u%Y7gU-++c7vIS9iqc@LP%ahHZ&gg zs(9kA0_F``@jW2iyr1Xvo}N|sL{a>BOIM`FqAb^aP5TxPU>@?>T2430u$P-)iK`%p zN58{)usUGUMmO|~7ojU1y{c^cC#ccLZhg!FZ8WD>z4EDgMU9Y_nJPG?=MY-yA*Kqi z&#Xx_^H<0_*v0ATE7%eqr5^(F$(`jL@LCo?Zq3upTxp@UW4_vkyo{^%=1Q@uoPixS z0W`!>x;tm}v_6tq5Jyk$z)K9tJ&N{h`fhe5g8R93*@#=<!f49MbRaV%wZr}_HE=nM zNSSB)hNp!C24M-97CCPM`*-4!w$Ab0JhG4)zJn!Z>^`ckH4}K&*Z<wqfJ7IX!f3A6 z`J&@{#&vH}&S-tEykQFsu`ebN8(CjmV-rD-TPiOVpc)#togrJB8t_Q)<#1uf(I)yL zO`XjC4&%oJeV;lrN*Y@Csh9_IuM#Nzg+6|h%6GonZ2E)GK>`hqoO+Wa)OnB;vN@q@ zL~nSXmR-9EHFL0^PM#c&QSBN6Hn;UpP|D(_eR%3NcR&bEi_Uy0dO3iqdDpp(tM-{a zY;GCxomUSGSPu1<-*EMKIaBaq_Ic_rcJT|E_^GGCNBiU~Om7@~kqFpb*xcEur=tXE zlZt$;W3a*CX3s_dGi^63U(1C4V7f75aIOa0k6w|Id4mRwV*SF5EvkkYLL`cQSd+6D zE_m=tWAnRDLE8py`){B-9WUPB4}sZreuTwyfaQLA@L47JSOYUcrq}Y?%)v<DDB895 zkY)GXkvEIh?-n!g>gTIcJ+!m8%0l*T#^`8iSgD-zsbx7CAJ;>En#~$<2K1(q)eYxV z;o!r-%x1YnjLBx_>Cq0hlpW4H>)q`u)a6<dcRVMDamu_ohu;;pH#zbq;TLmEtz>4F zx6^}gTIG$+fg89LxYt~8fQW37eV+7`QEFq==u(Sul|#VBo_az!592N%26{E4ba`U= zJrSl(51YBUIPAZh&#Nwc6>yq!vN1T6c72{HckEh&hEopT)`tjmh^qJO*VH-YuZw|O zgelZB3BJLy`sRhP{20Pr#vxpG`~PU{y`!31x4mKA78FDTqzkC@u1FIC*%m;E5a~#Z zfCvErY0?t~0qIJWE>a>jQbSFYDj>Z?5^9hxkWd2&+21<*-tWBUo^jstXV%I{GS;)Q z=6vR_T{!cfYX3i2+5b?4pJel(Gwcc(!plRa4$n}FfKldoKxt?TvuGXi1*)1A)tMx> zUp;dLKXRuqAnas`L8yFU*=e13)(=Pj&>1~2eP?m|_!gV4Eag<>mw*dUh5bl&)b|79 z$oEOMCU#8>;qSLcet^^{EP^@nD~)rm6Unaoars7eFOq9&a4k7a3b*zW@C@d8vN_x7 zL#DZdnCE-npD$n%+iu?b1azjF%jY`WIo71=2Q*GhpG*uiR9Oz+;cC!OiqO>?ijv0z zMZnH;kAP5l(ekCL^vh3lxi!_5e-@*B7zzx3=aB5P<VT)w9Z5JK)DSS_gwOB~hlshC zxT$)t=3XGzeF6LfB8UJveij<xXlyY3O|kdepYZd~F9H+07YLJx`SP4c;S=88$ry`j zNcFhb+A;Wp8cwsDg6DCls&3awT8wi%J)VE2ISW|FU;D#iQ&hw5uYd!!#nEtm<fPm( zq-Sd>K-PCfJbpN5G4Uc^z><u*j%|D6au;mZJ!$SiF|aKQ^rvkc2J^{1uqZi>N(Y7# zNDufV)WB~vEpr8fjHbx}a%De!w3e_99Yj5tlaX_5t8uYoC)W*j0z1!_FK48x$VC-D z9JR;s_gnjM(aK<!Ris?_W7Onku{YkU{sfpkk6di<VW1u?)m5r|Wvb|W@a{CkwY)AS zr$Th2cz}kOd`B^NN|z3N1`kVqWAD-{ljO=1v|gBEUgb(3ICwzX+d4~sK-KUB@{IFN zf;=l>dcZWtaGW6-a*Zq$U8d`{U~42-$5dP2Oc{uG-e<k{Rp@5pXg9&K<5|r%QBmit zX^7mzWHrQu*H`ajGbxMlV6`>_l=Q9SmZWv2P+!}@p%;y5CdTX)&>P+n&yKT<5X1cn zk%b&aOF^_={Q4p-6?o7BW7P04-@JH!KU{kvp-JsI=<!EU{!n~;#r!1c?WdR<1tyfJ z$R~diieqAQGfFL^v_)&*-WKWj;r)FyyR_?K7Pg{HmodYD$>FVY_fM(#=%+s3X)mx1 z1>wztXB&@o0~|Z}*<zKf*)9jbtVZ^>F04zrm#p&7BnNXB6wOZd3$1Lr%YXF0)A*qG z7njHdnQ!}kQax>jflkCd+rdCXE(essG#H=?R6Mg>wEiGCVVxByD#dQJLnug-_;K!A zRxn#?^HVmj?6K^Eaq#*UqgKu(xBkiR0|S0VMe7b@WbGd_Pj1wMGVUA}zGMmShIPxU zrqQk`eM-;Uo9d(ZzoE-5<Xv3PWvAexYV)|M79Hj~-PYu#8vBa{g|06kDM<rsBW3}= zbj+vD!%`cCYRwDuTW=dxu#ANM!I^qn>RX*s2$8J2&v%>x03l%BH7zg|Otx;DxkQQB z_2)*C-?xpdsYhlMPe-V#5FTO>Zg6wF#-A=E5w%^?Cm>sw^~tZ<ERR|I-m*!VdU|Wp zwmDGc)5nvp{TvP}7P}VC+ozPko95^AoTMW0icNpoCGKqnNp?iXzt*0)`|7mlhj--Y z2EktFpSpYne-8kz(W%I9F!0<Lt;@$rbP1C1tJyQ4dqP!|1Ebn>2p~(AjpMvWJ{s9q z-Eo&)j`CHc=5J(q=$Q8-UTVB$3Nk&+TtWhUgnx9OAL}4VUYNl05B&6=@?iU4C*of6 z2=P*KHp@O+!|i0M$DifVV5Vd8f<?`Bc$*9pV_XisCu#0I=*{t3vvEa$PC?u_0|{Q= z3q%}cEsYqteF7-d+lWyb@EG}abGHu~9kh?B2p~QLG+pOe5-+XIC{9!`dWr)C+P^0$ zS>TOo-YUbmr}aTuE(OfZ(NCDJF6y3<9P=``?TL7A`-`(<^o^M=-f0}$1MJU=XKS|F zkxT*0o&0NSnZ?NpQ6X&ZDrJuItsZ-|ymWs~&BfM;)+KaZWbB1vwdDry3sEn$PiLCK zLE3PdZoi?Xg4-4bz3AX(=9`bO)*}uKRvc^T4E|p5my2KS+`7C9B(wMg&u5)iD0dj* z9|3$1M=Iu$O`B*cQAMsCofk1zRX)G3{p&<S442|}?-P|Rtn#jPa@-%AHVYWY=$;Jo zcy-gQ^4yZ=L;z9#x(m+2aZ*v8VBV0&WwSH0Gd9+CZdR##8|?#(2k<QqCz>pKS)kBU z{h!ZHF;5b^VXZxi>W%S!`s`lq+O!df|775SttPZHfEZ7vt48>h8JPCF0xH+dPq<9| zBeBuOqgWajqni?dMY2(&I`(;oJ@y1N6qu<9l4>}EqxrDt!NziP2oHu#H-5kLppQ1? z^-gEYCsqx`+WtYkQOiuNo9i5*Lc30qIG-3)4WJv&c+YOCMEH(8xPNu|a4nl$SGr@2 z65X<fkqmtE1xH**F_v}x$8kWskRuuSn?g?Cw<dE(oykQl3`Ps{&{Zn{Kga6FI=tA7 z`SmhtZRquD{R!cPZ!G6tzu-#`PWquoKLsk0Zg6Ec^3QQu*_$|UKRnDMf^MhUZ)bX= z3}|avOX;C<PQ~w6lIqg?aYG6*I2Ns|)P?<ADoYvB<vpr>FcKj&=2z14a8$=p{nx?E z`q5Pm;wGoAk62EVlJ*^Qfoh!_FFS|JEV$CQM~}xuf6cnfrY5W@zL9d^MC^V_0;aF% zbx#asR)W6#b9b;VNJ6dlzwr0}iN*u3nEp#3-Gxj&fv{%~kY7Z>SI`O!(U6<inqlm< z))aUd6=~EP5ZncRYEZw;x6tQu^z-d=&R51}C)DQHEv?4C@O}Ws3n|ZXws@Z9`OWrg z3NKPZY}+oYrG;mU=Eob=my$DA`6_dbt;&AygR_OBbGaxMZD{tj+)EUE<X$3cKsYp& z)G(~<rW#2Rv-zDiVhoDcY5Vim6>^P^MfP6z@7t=E+m$}8knl8pe69?DbyowP6y4hh zx3<TXkSq|_L)q2l*)*#%q>@B!K4D<p**SlE3m_>uXewBag$R<^gsGVa^9HESX`df; zlnq84R-$oicNG;ciXk&nYC480%6-lz1-`t0{Y;iLYtZGL52IyvIg)MI>u->6h%vAk z@5v*%pupT?t#bjTyq0&y+vcij4E@FcP2u!qSi4aF>Uc3`8yuVW<v15b;q1&z|J~8v zg*`#FM}M;?W9IX^c#~+h$CYv|=k1*WDd8mlNW5MPO*yLVn8mnN#e`)&I5@DS`imOJ zpCch1)EWV`E^MHXM<5pIya`eg@QNUfEGJ`>7sL;(g0N2!Md5P~Ys6#P$kQ&3r8a{^ zAH#sm_teqUG5d4Vwvzf;O)<YTz=Bj-_bi_>`h=_1L8Kgl&xXp@uEMYKdLBU82?B{{ zezx5Fo`%PRoiLv4$2lp2vUYbz2-Y{vpNThDe|}OO^P$C%=h9kfe{g?sPW_Tz!;Z{k z-3YN2mYCSFlx=Upc8@0_jZLy$(|55%bzFzBUHCgQAvd!u6rB%400YEJAx!h05$cH% zn^*zY8SYWfx(&C5`@@};)PccHLR>7)JkdnV!<iaPiked1&~jgA{ldcWI;_RArGO`~ zgLF%pcV(bS?{4;Hf#lwskrBwD*f8-sO`k7KK)&7H`{;vJ>`8D;k?NK<I#O@4;ja^c zFSp%=bSWst`7N?5GFs@wIL;Y-Y7&MRvvOP2y49HcP3u~6yO3Z#`FO9e=~-jhy2XqW zKC%{iDj-Z8QX$^K^S<c0e#{g)TvlAAn7j44d(fET&)!Gy%0QUkIUiTTOZ<a|RYW2o zS25y(0q@+G6ffT17zI7=!nE8GL)8QKP+3A2?&TM-6EGr6-tYOx2$j0r#bCmN#DF|J z19Do;XIC(%mOwyda6eQpn0M2hW;L!P<8peU-n`!2|D3^Q?%<W+_J@VeLU!T-dh@IL zCb4akqWh3yOfyOb9cj1aE{m@UJK6wg>l;A{wmql=TB7Uw8hwg;Wz!1MdbSEozbv!w ze%u5Sgrn&q6dM&S88?C8e&qZ_Rp9env5~mwCY@3J2Se*Y9*E!jMPmug!H3jxE*p`Q zB%h*!QNK_$aeG&DN<}eO%(c<gZX(Dvv};nM7^!$eKU_eBucG(Gn^Jo9h2!7vV-~#4 z4dk@8@SYi?&c01a$ycvACccp7)jE6dwCCo=DUGlLiBs!P>sBQe`G3I8_`TBGFF5;* z%Pqs&U8V%GQ#3Ho`MxfQCj#vdZti-S^smjtA3lqJd|$M5eB08Hz9g5|iovX%Y03kz z8?q%ERmSrT&T;VkI`}MtW8Ivv)s4FZD3XJ^N{a2;#nA17@<0#pvWI(x*qQEibGyL7 z;Ijtt%Bk9G{#(G5#{l4-s;Bag$iUWtA0t9VOtd^E`|tm(AAio-NmzcRrI0cv!ef=Q zW9NF*KenS`JN4s0ewB1i!9#Jo36ova6yEQ$T3Y4FYBjo+=V>?-giLcST*b}GRHiX7 zvW!l^Y#e&Yihd_^t6M!Gxs3I!8*#K!DzN3+yt~%O`AyCa_1~i@@tz)W_Hr8s+>fo} z-oK9&W;4?((b*0v8a1rgg`w>TW@sTp_bVFDk2%)<I??wF@g31W%d(4mi^)~19;=Ht zBz^<(N|!21VJ=O<t*z)-^zLVm<)Mu|w+tstqz0#w&cd?B;GI=lURRS2^{Q0!{AUE) zVEGC9K!~>G@V@cBf9h^)?V%9+N5rTQ+i?z7h;B5o*UF<y;fW5>7R*Tx-!*U$k<W2M zvX9xPTfLLcaLUrhG<DVnN<Y1pm3rD7cFr{CL2sf`lLV&h<>bq;#UE8HY|MU6Ch4Q- zBw!I4MpTP^6cy{67n{pLj(Kct7h(>v)qqi>mS&J`X7g;!#3=*${CVhE-m%A%_ec*s z>@<i;ZBL;Mx5DxQ-#ty_u}F*1FtNG~+p1odClYt)!SM|fx%b}qc`2JxYMLX!J=h+< zt%?@xx8r!^(=!xbtFz4{LB7GL&8-b!E6Ti*gdjnAT-mO7^4BOX$?=Ja^k;k#<?Fh0 zh>eYINM>#4RnO3YN|rmRd*%jN#UH^o%#vwM>ljjtSX(3JZN{|hj^>-9unObd)jImi zrn-F>9lXI~=m3~!A520{`h1<Ok@!uafddc(4ME*5K=X@L2smXzfxR^zzv^V5-sZLr zzTk3BhbH((ml3}#BvJXbe~)9{*IT7Cqvr+sad30>R-(JgY}WemEt*A?;&T-!mwvWM zX-RW!MRhf#*5W=QBE*Agv;Y&LKRwQPGODDJ0lG$B-<XjYZ_!7esHy?vY<NS)kEZCn z0gkEF&8_o)-gzG8HP$^;W>;y;>~(O>BokVfzIW`oZj^lu%JJ)XSwQUgC1!7Q^En$H z93K=V`M>J{{$Z0c@;5E-^pWGtEAR(4s+1TIHq;1q5#E@M7vcv3fMMF1?ziS98sRPq zAU^r%{ST-Id#o?+Hc-x%`E%5gr#6_wpE?S}hB}{io&?D_C{Ecj-BZiX)Gx59`-JXY z>4QJ^WZIfJQhtULq^OFKK-yM(5fc23%A(n!nFl4Uw_8hRHh%BLw`>MFx8)`Lb%KQ< zvX&Y38b~mNonLKYif++{qo`J3AvocgdqoJ}^X;jrRUw`?ddFGw0BCK`+t65R<aPb* z>0c!<UDf%uk!5s>dA3z@@|&V@_oZW@*<2gtPAY$GYpxrANbi+On^Jih$Z9pT$<vM~ zn3hUr0amnX6O#`(EwPibU@=0R)F?N#aV+<`d(l+L-K_b&!lVJFFvi$+Jh&|r#L+rt z_43#2#U=NFZY{wpUAfnDMHEOE6maLt%wwox!($2Cd*ehLv>+E2lOVyA`C{Lp;B}^l zsaV<P+^Hmwp)I$^hpr)qK;UwByD%4BLZKtpR;c??(>TaLHA+ixHIpkMEtOOuI(b*X zWL!(CM>dS%Sb9dr*@J6ts#yC;gAqP$?xxaB-_IuDMqb`2sf*_;V_2Nz>j5&n%}(6t zc@z1L1(|`d)jBR7m)@*(DXp@iB>2j)mU0a_DyHRTku^2Xb{M2rq+K>$W#DKsD(_2U znarPZ9Iai?`mhkQG$V;!`cYmW+bD?0Op{M>rSX~@cU0Jzp$`z5dAB2T9?!!U?De7N z!I4mRz?vWEH=!8vV61XKn?)T(Awrp!cb59;w%ofly=5DC((3o5c0VVd0#9p;q)mcD z{<NKPXr*Z??-B39ssk`9F#RD_`XSJhXV~AsHFFk%c*b>Oj|*1mlxiz$^?TQ|0>5{Z z+x<C&4e-=O|FL2xJ+7q^aF4_mzlXlKhGPcFke$2yx%riHuampq&H(IxTQWXMO9a0C zcnu*)O__OUVKN0%s>h^#krhZuTBnSE@$S7DuowOv+Za)1u%rLU<58mimzaZR`Sj|8 zJOHh+c-`4|qy0(A5?}d?pACAFZ3?OS!3~D6%YnaJSEj{==<5{!c66+8)kMz60DODU z!P^#v1-C&#U6du=e4N4WhGb@N0N!g>o<g?8&8X?wDIkXs=m;d<SoTPnIFs(bf?T<K zyT)_p=fg^@>SbK@Z3!`!!HdP?7R7av#dXHx1F3m3!^FT~wI97{wmNRNN{la0r8vHY z8(s=lGlN&$u8lB|&#Xx{5C%||FV6HUGV^kft}loI97ee;;8Yj4BeZ^4>xPs`(F{B@ z?x{;U_);xZ(YFW}@7)x0%JbUNpK%XR780m<lsc6;k=RKvowDI~3l)YLT<qoRw~^B~ z^*N{DD7I-DYaENkySW|G_rRY8C4f8TUIF}QIa0Yo6*i>&Sq@zr@1}>vjQRGh-!_76 zs8~!Sf;gf~a(S1qK`&CJn*6Sh(EtJgpo3n?R~wJXxoxL_F)^65^{~A1;k#tx&9u{h zJZ=Ex(;5U<St|g3`_Ul+uo?UY2hWu-n1Sns2>D|IBmwN&x!~K3alqRY9Oy<){6^-j zR90a7$$mv0l}Ok7qedmZ0ABUb{Jbdhvqs<heK-2GYj-VN2_gUZW|!<SEfFdc^?m72 z1fJ}AH28)d96Y}jhe=CU<*y815WqJ_by}of*a1jDr4RZwTrFz8|JeS67|myMLgrJs zw4~mAVa@>*nascq=H^%#RQh=g?jrH@Gskg%op=I`PCvq;78H0~7%xl6n<HBtoRi(i z%iNh<MIW7je7dn8(U)3sAaX_3;0y)PaAI17`cbd%;*YdwPmhXyJDob|E-4>9Q9w(A z+5;%qM;gwhwv%ulICnb!<&nW$WN?MLOtgJHF4d4KF=l`F)8<pr_e*C_<YshQ)a4X$ znQiwW!BpX^wVr(7*n;VTwY)Gpts#Jx%SK%$C33h1oy{r|kkje4plD`<>*WT7X!yxx z!-!~6xO{<^pJdFaL3Czd@rz&2xmFf^ovqZ~>M$E@))~kj5P;N4*}#l6@dSa%@d~3( zxxAPAdj6q<OWhp|RZ3Ksfvc1}s*!s*^yln(?u-lNHddwAw)+WP-z;|$t&V;tiUstR zCJ1_um@nm`p$e*0Pc*Ejp*#NbFH3NRW9g2=vcPB&vWd3RglnwX#q4VyC$Yu4`}PNS z1o^bj9W+J?stotUY;|QO_p-}gd!{XeQtAwujFz5DT|K~}-!>#Owf$7jFt_+#H8vkO zSahzg8R=TKf*q`!jUwYNEX{~GU*0L-R7``JSCq6fkdwdDC-a5S8*cl4>HFXcMz0-^ z9*TU1do{t$t->Fbz_?B~q9RKI@~mn6cYRw$pw$iIaxG#Xb-X9|xnAG5V7@n{CjV<W z@vBeiNLjdN4i0WCzp*xz>5fySB4C8<+sXFTE^Rq#VpcccwW&#Zw5koRQHmD%xCqM< za+ivt$m~OgTQu@z8E44iXe0^8MNN1-?q1v6uc238^QF2GGbM_wYxk15Yi4~AbF$m2 z?`FGMhb%T#&5pf{PjBA{x}ynDA51JW4DEJ`NA}!>^WQd`S%_{tYSawi-H6#6xH<N} z+1>va<$m<PDfeoBoe&H-^(~JRbgP7_+Km+$39*>ZabUvWhWE<UJl(~0d1uO`Z{1UL zUVP8oBy?xcF2s<NEv|5dBqeqCU<X<N^&K4tD!4|3-l%`<Unj(ym3G~F@&=bTV88^n zf#TmrbhqxBttnTJ>JW~q{{r>*A=fkJD?{M(Z}X4@fp6;N*r$Yw!bi!~BPL6dygHy$ zn@%A6O!85|J=OgWQ^o4iJw6Un3P%CBMY;%mwgYl_gmCX*@Gmw_l{$KxU66MeKh7LU z)jgg)JP<z$Vg2ibd<DZkM3dUM06Td<_tKa%ML1SVK%2zrQ@)ypF>yg&2Hgxk&FTiE z`fV@@0uV&_r+W%V>#Bb+oeY=fUEY$=J=tMe@~lC6Y^_9hs={#OO}d%d0aPcaFmJmK zy=?iMraa$h+Oty*S~Ur`8HRW16TMsaR`5;ul1+Y#*L6@L56L$Z|H`lR)Ss;oy^j?0 zXg`!S+>0u#L*8Wp@=*hxS$laplQ0yKJN34&K(e-a=WeKR1+_>;mVwKHU6g+mac})N zFo~TMt4*sA8dtyEu*DUDw&qxwFTuhb)zE=*j>>Yk(Ws`0zfL3$Tc}#;;Wv~N2o~S= zb1zMV*q7aNE4FnNcA-eL^#?<SeUZNl)vxz^yN4*0w|hw|6`y;}%ffl7v#dQ1S6kBP z<oE0FcHt_f&sZKB(C?-^sfu#S-`jgp)knEluXrU@qUWMtpmFw9EZ-druj+WGg2`fH z{A_jH%;^z7oL~rO+zF514+uJ!ZZ;0O<8!9yc%o1tbMR4e`=#e`YXs%O&dXKpXWdI$ zq(m@G*(9m4NP!!L$K{zuDdv5QT!rx~0db`fR%TTh?oU6r(E&@N%<(2q$Uc0(dgoA) zuqN;fV@=~lbI<rTMhbj?ngD@=BS}O=kNc9$!BfE|3;g`8^F~QI(&-py{L!ihY5-rL z%f$ob(q6C4tik;Fja3fOre;yv+rCiUx{l}!Rq}XZ<esD-t0Kudl;>_kbM=F+Sby}Y zes$Tpx?h~uL;m>Eg6mT9h41Z(&7yi%9i$y3=Ua27E&Q?XLv4h}-fMNR*Zmm|w^XBw zbXxsE9OlOQc-zY()Yc#bEOxfm`L~f5NuU`JMusRfja4eIC<zMN+_ZA_nRcCsy)Nrr zf!&oNvC0+L0Ma_iE0yO?VHEo$En3#^bQLkwiu#2q)~KA!P(zz$;plIopG{3Z;lC2$ zlN$niv{on@>>x~)+S&lB=jlNpDvOAT=3L-uLv!|(=u$-H($HRts|-GDT_eN~#u{4C zKh|;vFu1oJsTEeq(~!SgyySQ|VE-z|#!!SM`;qDDBu%;xj;8o;@szFx!;danWPG+S zaj1?NDE#Zh;@)|1P)@Vl#_DMO@-81u5BaTExN5LHaq=?#DOJELcmYWe>136N0!ffr zI*j^?*K?UEvip_E0pZ;X&%=aIuZ&0qY?5})Y!1CUFE}jli_++4)AR{t?rKVCawP`t zBdl)yzHz&r=O!wM-)s^UjAB^1?1!r2slwECO4Nez2Iqo;Fk%=f+~Qmsut0*w`<?UL z>-Tw-^}Rm2@^OD|Z1L*00eJsqdNJ{VaW@3>3?hku^DPF7BGkSOW)=@Yx9GLnO<RO= zu&UDZAwaW27E!4O;mUB|_3>s-kWWEj+Gxkd6*6|dsvuRR)+1vsjMca8N{`CloX8b# z^Un*S>0fabi7Uciv7m`v+#7!9_AE#ZcX(xGJSjdf?&(_4Kmk{_1J_ucY;0_nW!5tL z&7ZJj%Q3X^jS_8li87j<{&5QqHC1xgBgfF<X?e4PhCicKO@W6xXh@DsMOLoWbPLwi zUhLz0cQ*IQ`Gj+?Z!5?IISWniv=8S5jusip)BZujVtQKvWz#n+?U5`x7F*v2D>1Ip zU8sow>1p<>qN{iJoF=$q1aP)(Crk1>B{VB%!NX0{`BXDMj^bWMY>TWlfB?|E(cs}d zOIgivl~Eudo1ypDiT40&l-DbPN30#`@{F_9iMwRPx^-jQq7{gX$4}v^05(df*FvL` zyNTtO%-J??SM&O`mjmV+XdYLS2cI;x26Xwjt04@m!%d9Z!tJBq0GayRi!|oq$EiR$ zfq%9$Ue#9ifct+wl22c)qVimP!Eh%%3%;<fZW8FEUms^d$HG_7?H36a9_=3ZAt#;V zkWYorFaT>EpwkQHt=$km=$^fVl?_pdvKimlcz5TMi^_Xjw@Xxuc9)+jgy*atxgjy9 z(-jx97fv9-%c+Ydr;LqDr1UEu*wz!1y{TDr=teH@ck<-j2z8~8rCnK8VlJO6M1*>R z0`oo!*J9e)1nKuFdA}>>6IrQ<?d3MY*@BXFtO)-7J9v;-S6;pq;iq<q{M>hm1d@r+ z$*J{PZ&$BfSF^}J;?-2Sj8uOm0Rx#i<kx){Lw3JqWAk(oOqt8^nTVJ7IFQ~-(8_U^ zyl$?w?83Zd`tE;*(*J3*GWOqPnEAwAMfIKa*`r4S!r6IsfRk;(JaXeoW@226Y&|g9 zM%=6`eBVu)7N4^I84&B5l%^&71v4qQYa*P|pQwCiP&t8}v>l>t;{h=<E>jIknLdt( zQNC%46{S8PK>A(i<y+!kDQDT|Ynb6<urv45Ys0tG&1U3R_t$V)iEm*n3>ii*m>u7q zD?h3XK1oGAe4iM#*Q}r}$7B8aK*wWO5RxU+;Nd6=a+b~i^3`I6PX!r4;!kcjP5kmB z>43cB-^6hBCKSRTu1$pqu572qZk7djJC6iN^SGBB3$X1mm|v+)ni_$jTqwrS3%X9d zFdO6g8pS17hGLkEB2dFS2?vwt+J23;Amtw?TyU(l86WM7sIy({-{tx|*aJ}m&)QDA zSJ{9;ijk^JkX)t3ANilsl`%L=?REDfm!O7=(h1(BPHLqy1DuI+`W35^vzA?|BgVuG z8Ef01U90r3FiyG_#W||QA0#A3eNS#~=fS8lq{ycUwS>-tuv$SaE?dbA^ybAp(zNbF zJ;o4+(&SQsz2yn$yPAdt5tB0?`c2A|oy>G5vR<~3Qb|p=)`mIInn<GyECp}-=KI4w z;UfBdKc*f}Y6`5i94qfA#2;|y3GY>Cv<si{y-kNyP<?D5(<auqVR>J8E!%lJ>k9O~ zA=>*oTs(=Ti>BSK4{CV)^8VQu!7m<%0BI4z@f{<J*@2hsWp=RfzR2)RT0j7Ozu4b6 zO+dC+#<aZ))oO0ExbNn?*{qU0j%zrCbOOLExE*Nn?F1>TdC9?rv&yk+1Z0-~{Q6<b zhb6y}x^RB0wR2Uys-<bt-sOtt(9lyKhC5BnT<TF3bA%=H;GUN|>)0GS5mp$JLZEbt zQf>Ozt>HjMvFN*dC7^>FuAT*M$#BX~OS^N%1{{P3MLUj-Sq~GRN!V}KTzh1(chn;8 zG0!`i*D5r4gqvmP#>V!R;1T%qGN#ymhPALF-Gs_hNd4qLR@-Mkx5d{f|3#@stH))z zi@)@0_8NEOd|{-U%&Uv1JP3uqn0MEV+Z|twbG&i2cc$EhAZ2_JZshev(|CR5lCf01 zM_qST)g~bmTY&tb;5WjZF_g!|;0F>B&nzy-YY9yUSdiZEOdQQrP;MDf9M*)m6CoeC zG30|+bYah1HPl#>C&p$u%y&crKX;tbr{lD~-)IOLqj+_V9hLi<iq<8hLoz~)Hp<{K zE}`8Qz3dct%baE>zZ?;2a;20$9<&w&m!{3$ufw8sDb9(2Gkro8<HwB9aTOi*(UJ<? zM^bbX6c9Wi*Q@eu>x8b2(~TSh{mwQk&%SvY?e_-r$ABKPPE<j#H-y6YRfhYnUz;mt zzh>{MtxvD6D`^%dv=Up>ohmj$6%Ky7+_68d<Lj)%9w^PiLuQU^-6ednh~d*1u+ufY zgusuOh=r?R8`m#f@n{cyP?l<TImsOPIapP7V0y2LR^ms>xz%QOW>i^DUpt2NR{PPD zcUq@Fu}+sPjeL@}ReAgE4YSM49zo3qdh1r_R}3rktk_}r8H5L2pPEd9#bU3~&U|*W zRaZ2Zy#6eS(02AY-_sRzprlY<QD`wF8Om<O`yAxwIg?WlmRz`~*tQ7FR1@r#o%{?_ z_p*Lh9AKyiH2;00<7C~qJpD1hvd0y4X^)NkdwJqp9fYjjSfL!3t;m};`gi-pA29#i zL)Q=Nv<RPn;*{=Gs-XI)+0)FxdLi$CrfZFW4IBzVvjfs|%ZaKfxawt#v>O(7c<W#_ zg~Q#X+Qt2PLp*L@HIOD0ps@eqI2Y->>QQ?ve?SuMn2pK(!;Q8g_qCdgi~8+L+qg?? z6XH)~ShfvtRiaM)XiV|he#JD$Hz8gua(b#%->~RD(Q_u*U4;lB;h(^D0gh4R3{hY^ z$6Gp7yinBmB&j-%=YIXx5#j@59LCmSv9NUs(aX3%K8V~ifa;94I54hG>}9#AuBxlM z*a@=}y2~Ls^;Od>Q8%lEZ*|u`dH>;ulz!n2Q~0QRuq9?vv?+H}uuHzYaO8mhux4we zV0%7B3+&G?A*f|`>NVBN?$hmP<lx~PGVebai~LXD%>Q3W{r6EeDe5;eWInwcc@9Pu zAw@;_ZgIN!S3P(upMNJ5^{|~Kun6`_UWwL_z+8Rfm(P0}YMh*`sqyE`6f3VJfYIR0 zCud@dUl@@#L0NGWnP;ZnmQfmkSN7jJY&<Rp&t<^4uxIX-1tfoy@uMWq^%oImEIa@B zz!0OJ9oq_>aY#O{aeJ!%puwTw{p!{nb%8w<q$2RP#0(wQS`dp8f{*?#`=$^C-rbg7 z-_Twg?A_VAfUPoN|L|h}`sK1Bq@&#B=FbqoRJG}M3oQgqHrbD+2)7A(J_N!H6Qgta zM}AjMuw8T|bS@<qt@0=+WH>8N$Ay`-PHb$ZAH=FRy;%)^g;)@b=-tU??zAuK94$>Y zgBOkge2<Mxw@;IKY{^TL6VQxM*bS7+qo!0T49`oN?cTWEI@%E*a&jL07A#<~z}6Xz zjIKvs+)EU;nR4->!rJy<*unyEMq|J3c;?%=cs=KClCqq*`QoeoIXLFTd30VEJ{KC% z_C)eYfeEXC#^C&@IcdvJV)O_%v*?rN|F(0XbRkDQscA8)bJEtmH!Tsn*^$TDa;KD9 z>Mk?ioq!bz@Luk23h76MC{mq2t@~GyyX`2Kt*);E>3w_XEB77iEa}2-m$7zHoC*Ym ztmUa6<u&>de9{d+&R7j4R2HPB2IvOs2)lAHJZ4{5piS1_wMpJJl#(n$mg)UITy~eZ z_-<JBpnH)m4ta4G7AYiAMXpRHt><yWh%V}8jAnoF%*>}R`8#)6ya4^Clt|JSj(egJ zPvaxcp<!|zq?^4J`n8VyuI8~8<AJj~^b0;0RCvyqXG@x=lzPwT5p@n~tQ6J}I5i+m z6!$4aa7d?aL7?osoV&ZnrhRp)d8lz);8m}uN8UXRojyU`E|2bXi#nnkD2m^@3B7A7 zqh+3-AQgiN9ZMfT6RpqrizIY157sI;LeY!Ifee=bwt0zIuv?-a5!i=}o>@$9I~I8a z2eHltw_gXye-Qb7r!h~{2#&`Om<Gj%mrvGt3D3+$a<XTP9d$_sPm9oT<X~)i^_tH; z)%KyH3o2IGH*Sn<1tpeeS)&JAF+gl>*avE`c_Wn-m@u*hAlkU9qPiw{<o-~@K&;*6 z$6Cz!L#wXy4u@U5EN>A8y%*_|>>zFb<V(u!#q)N3g+WBd$<1FNlQ(US*)`IP-uMUG zUAB3UL*-*X0Ou8iDx;!*D>V~?(>Y;8b`B5uBwfYtKSUT3%&0GO7RywEalT|%ix_{p zITX6S1vdZcK>pARVGpa|uf-g|mTPc(>-$k1v(f5X9q#7B7gjbYs}m5`rniZkS1pYk z;F~u)l9N!bM+~*2mSl<C>xGg-5z8_@TJND~SX$=cCYB|ZiepK6Qgu7h(Q3@zkJ&A- z$Jg3#dRMFKI0^R@GW%Awo<}v!-zWg?Sux-6LC5@{gOE~vQYh74WUevyUbNFG_DWp` z-6`kCT`b{W*v_PTLsU{cD>B2@jXe)>Y2erNg=D9U!I;PEKW=F&C#z>y#o)F8I#dL- z2R^9OT)6v^F)XmpMz#RL=C8u7CTdV{tHh2$o`9Np+qmR!&yy_!6z->+hwX#e0-RsK zr0?-BZLgdZYp1*`{e(L^K=E^(t1^=|PgyqB>or&xpV<I#WD%Oi8>$=A`%v@CE1ec` zfoAn@9C8YTdaNy)Y47);8&ZG*jM@%6j%En2WS&KpOx~-op%$2o%~fZ*s}MAW|BN9> zZdNYngpK@(F;EPQ@GkWlWC|DL>rJrMx#?jyB1f#Y0(K=@pThM>sOrU+dyPlY7w$@a zN@N6f^ZPCQ(uO`iChSjSUWrS4{qM#W|3<7i`L~evU#y|{M2-3cI%VOq#v;0+-q)M- z1THA5-;iGUIu~|M>Es~`%^vwp9(0XjZVMwxeBE)IOMIJrUVaM%(*HK^$zkK@^S0n* zx_(omrtXazpY1EjX@3-}idGn7p+-7!v$(qkP0ApkfTjB|cIB2bwx=L%AB3(I4XXa8 ztOnOPQqY^22`xha{U%FlQ=;|*sNrar%$&3W@;b>d$Gybml9iizlJ+MzZ&&W>uM=dO zse;G0Mg0xECy4vo@l%MzWM@8wOW)>}4chs*0*5}2e6Bz%fipFW1hD%-!ih^6NRAg} zX7&OmOPKnYmO#5SH*2tze5TgS0eN;oq7D7F$^SK$lWsra31ZKu@;qz;aDBaz4M%=- zyz-$u_lm13_Ij2RBljq+K-^3&!#q%5%HiV#U$H@4gzIG5<Hx<_O}+FXh#yy7MeC?m zR#ZT&L`hit;)l1^ET=bXZTefCv@pqd%*&7hnnggc!EtWO)m)A7I<X=77TXeP%tAYi zEyUo3e2Cxt7OSP9`KS#=^j)8qX8<8`(fY-en#R+=p5o2TGNh!sIeCmPlW;+)jZ3?~ z9>JB4;KZ%%faVJm{8{ZJz<OpprSa2jE3?;lzky0QBN(lLFb0U&+N423Y^OPZ32RBS ztRo}&%>b)01b=gyb|d9EVDse1GCjwRdU~NA9HeE|7P^(+zDO;%^@H&V&u;MUqJ$X+ z6|)9u%?POMM5J^~`;+Udzs4ARZv9q}4e+Mj28=YT?cv!<*REXAIz56lP*N^>bAzbu ze%emEuGZ+Y<%av@-LA09M!By-gAQ%9J0DxHjHAL*C9H)O5SA<XLJ97z3d5f6p_*~c zClmWWk9CY@qTUoA24;F@>^)jVS+6b=7tt{)Gd#zi=?b26&1V~j>ZW<jY=b(9eJ$1F z`ItY`j~x0g#0}X&+>+0WM6Pe_)VA34z8FGVb4C2hhWDlF(JIY{VXYe|Sl@8^nP-9J zaFe!i?>J{3iOVTTP+J9nb*H+H0F#{QoWUfvc3bPYt+y>A<aGlI+be`<fFY}0I|&!w z690m#W2=8Y{ZS32D1Pj{W_G5JWXy6BX&&$L)d4KmwLF<-&wRM4A(W$iG2jk*T2C`A zOBv8o+oo^cW@0m$r?Y~d3A6Kce%sN#Pv89OL>3f^k2%f(fSP!d4)CQtTkh3OXjrW< z2R5f9Ac;3?!%hmTsMD@Da*-*+-wPCZTM%LS=haJhh_wET;%!euq*5HnKOeM%JBQ3P zv+MTZfZ6D=`e^K|uG?eqVz!QUHZ`&PcHIR#@q+m{m20ERR>20GzAi<61s=-MGFJTx zL7T!8^(Yz(K#j1cN{|&y#+3TNR7)WlDr#=sW#hN#UnioS!&+_$Wd-^iN1#qWlHc0w z(QR#d@-T7xGxH~$015bPEPw5yl}UwFwNKinLG$|J<nwd@FZvRo8?jA~H#Q{?#q0ZK z#^?_hCJk#NJYUY<PlA;S*F)cc+!m0LfJ0#m-`wm4SFLM_Mt~aZ?1abeFAni2$Kq9t zD)&*u(J$WJL-|yr#jc;#w<fB8l#G?UHeEIG&hnxU?=}QVPAq%tOMyF;kMi7Bf`Z`$ zl|*~R?qxW^J+<KSiPD}kwU2rhb9?oH1qr$tV-&NNn&406AHVyred<45@&5H7+rP*E zGM@ks9<Ki>Buv5WzoZ%f0g$fC?J&*|k)rjXp3AZD&j#+iW4n_Xd?F3CEq~S&zDr`J zx5KYo3ItjHICH@jwQ;4uiY=4t>Xfue`p#X~0fhk|87sm0+yIx<z|9oV@=?7mNNw^k zTA>fM<3%$Cp7NSnYV`9IuB-r&cGWz75PQkACMK-TU6J6n#Y1&`l<5@Ntvx>e%H3Ed z{KmH6&&$k^s#D6FPZ`&i__P%HoVgeGyp+UThP#X+4v(Y*GL0~zdn4r*qIF9~b&H3I z90Ar40k#bxp3bfW5r&=pvUrlMla9xM?Yx|Y&cw`P3XO68B<;aB^46a~P;s*<brR`S zNSLLL&QI4Z?w62|C(E_vuhmsOUd{mNv1Y4Tzrip&UM&@oT%Jw51mViK$G`Zy=saRm z-Ma{%<r%n_)|&25nS#vEctNj6Tv4>_l^4dM{5Lczb%;wb40HUT;}Wa*z_{%7I!u)T z2)<VD>5v8(eYk^&Y?70jWzw33@3;uxdyAkj<fvlytU_0hvA1cJL5SR{f|?c<0^6pG z7vB77-Da9s6Yk|Yn5nWVxtX_k7+OI)w}Pu0!*M9{;@ntOSPn<*y~vxM+!8tDnVI0% zSu6BA%#3xK(^DH_>sJ*To3JXhPYoYgbz{&gu+G)EB%+L$&_j?{R~o_6W*raMSkww4 zCzx;RxLM`MhDfU#4D@mu<8^k8p%4u?#yS*GpPW%7&(b+r+Hg#jAfGuF<f#?p72mw9 z`4Z|C*$q#>cvH4?LyBf)YP_Q7#ooAwTQ{b;70b_kKV%N!l$R;fJ^!Y?VUVERNEnWZ zHE4uCYpHYJsQl}MJxMs4&h?d#TUEJh;q%~4-y;6YaAoN_SAB)Fn??jpCn+m-NTz|9 z4_Rd2jf@2B8RGcknt13ELUO|l-of%ut`ki*l}>m+Ieqd6ki`5ui;$*>sqI6Z``@C2 z>Nj<N+d$jtr`o6?;F|e0wFHS2PLx5f-2kf??WlIF5!~{LG?w)brdmRa@?eNQMS$HZ z$M9O$qxo~=u4NI8Yx=;cnxU*jt*z8C1MecY9a!=aJB95xAV9huz_|~oHlZ}0M35In zr_V6z-st9))tQS!*M=8c_+_^h=n=}q$)9?m{^EM6F$yfnR4g*C!!TP!dIMi!1=?Ph zuZK8sx#>vvh|p$VQz1-ACaBv+ac-l9hu5+EZheP^2PwIgP+tsfVShQ@cnoxpCKjSN zyt}@B47H@xO_WoJgg#k0&-o2z0{5E%5f{>j)`_|EOs>hqgpdKoAk#T<VwqsG9FRPm z=NN&}4AfisxVPiHni}WMm0D=1(qcYAsXj1&V5Fbz_YG~iAUE_6)bii@sei{enf}%% z{Y!uK_tWLHv;bfC=^Njf-jDJPu%7%|+<cli;Dgu7i*h^$3oQeQ2{5u@_cD3|2=P2k zp;}WIkU?ImnLC!BZtgNo><BVQanz;AzH)j(d6{@FL1tw6)P_++Bg}k7{WA$=APKRQ zYwqsX$`c_`6T`gA5BoTIrTJ3JOSL^0m21;UO-hJU^e4wzTH+z>6t3<ltQcVUFhZ1{ zKwKMnF29F6xBiGp8lw_al+&zx>7C<EeUAGQr~Sbu>6A#Xh_LoCQ%VYVug53^kKU_C z?HsTN_{b`|#`1-gK^VElhQ7a=YwLHQp0|2;0SCrp2=yD9ihQW98VfS=mIx?sxji2$ zex#<%_tZ&C`&W<Wl}ByXk@73~KFO;S4F{kC=BhsLCSI$gQ37PvYbPcYDMHE%%V4^+ zaO2&N{P->%&ZZ(R=@;p#dNRSSqc7c%;Bkd0WOWPf1XdN%r^SW0AFZvhhS@?o*r_u2 zBgKbWq=er4yPe4ve*PybquMdqcQkZ7Bx2CyFxNe?bK=L1p|aQ#^ZM&3W&I@ol!^*8 z;aI8h*yrmMYx;|cKR6ON;-wxH<{PFerK;ZyvXZjeB=`hP3i~sN7B|*loH!>W%RSoh zBkGP7h1p6svVkU;gUx$#z`}c&!3`<rVB(5=mYjQ11s8t=ENM{a49|1zTwwC3!e|oC z_qHTJ#maXG#C|V_ANwYKr@i~1ZR;-T?~gR`L=?uQIutquppClZipL2*mki1#TOl7V z)6V^`Op^atv;IDK>R<E3{>Sb2cm3k3EHB@3a8Yn~-<<Q{7x*mF5dC_M|8{Ch_-n!| z*CWlCdUg5tMPW+)3WlSv2ejkkD~f@e^Zw1H9OCrfL|KC4Io<gfNRM#tESG`<ut)Vo zhO5i+27<)q(wbWYAiT(Wg)NVKrq78#5{9zpeChP(#!LOxd+zzF2SmV!bRAX9kMnRr z|DY`xk&zL5?#O!-LsULIedap37uNmJO;zPR1X<W!QV2(+SzKUg!^m)KcH6u}o13l< zJj(u<U4VHXmXeeN)omOxOZvb33IF?l%Jk0!mwzqs|Gb8v8T`EN>vD#;D_{d*Kb%6{ zu^v)Fv%=gsdI7Fh2TC_My()$<J(%h)scKlh9_gp1sn-3|c>k{xmR`qOa_Ggy<IrP; ujBRi0>DIvq6>tCJm;8r=|I63@Kb-vMuls*G_fJ3H|EG8VpYEf-CjUQC*Duik literal 0 HcmV?d00001 diff --git a/images/Arduino-Micro.jpg b/images/Arduino-Micro.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0e6822cc0d93c728db139078747f641d8e90348c GIT binary patch literal 23870 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 W*CPM#5W|=MZ)x-YkUf+Bo&Pt^EB&$n literal 0 HcmV?d00001 diff --git a/images/Arduino-Nano.jpg b/images/Arduino-Nano.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9de2509c18e17ad0298d350f2d1b4add806d0d70 GIT binary patch literal 25681 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 literal 0 HcmV?d00001 diff --git a/images/ESP8266.jpg b/images/ESP8266.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6d22f38c244ff27883b0b1450a793fb314624c77 GIT binary patch literal 22408 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	x!u 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 GjrS{&>J9$@ literal 0 HcmV?d00001 diff --git a/images/M5Stack.jpg b/images/M5Stack.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7ae6945481dc1cc9dc3f55c4cc0d784e6dd53d65 GIT binary patch literal 34724 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 literal 0 HcmV?d00001 diff --git a/images/Teensy-3.2.jpg b/images/Teensy-3.2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1a5c9296ed10c5869ad46f5c3d656570c7fc8985 GIT binary patch literal 14634 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 literal 0 HcmV?d00001 diff --git a/images/Uno-with-Ethernet.jpg b/images/Uno-with-Ethernet.jpg new file mode 100644 index 0000000000000000000000000000000000000000..64975edb4b675ac5581d647a342af49e4dbb72a5 GIT binary patch literal 22968 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 literal 0 HcmV?d00001 diff --git a/keywords.txt b/keywords.txt index 3e08c5f..af09d6b 100644 --- a/keywords.txt +++ b/keywords.txt @@ -1,6 +1,3 @@ -# ezTime object - -time KEYWORD3 error KEYWORD2 errorString KEYWORD2 debugLevel KEYWORD2 @@ -51,6 +48,7 @@ year KEYWORD2 dayOfYear KEYWORD2 weekISO KEYWORD2 yearISO KEYWORD2 +militaryTZ KEYWORD2 setLocation KEYWORD2 setCache KEYWORD2 clearCache KEYWORD2 diff --git a/src/ezTime.cpp b/src/ezTime.cpp index e4a7d0b..775aa50 100644 --- a/src/ezTime.cpp +++ b/src/ezTime.cpp @@ -12,6 +12,10 @@ #if defined(ESP8266) #include <ESP8266WiFi.h> #include <WiFiUdp.h> + #elif defined(ARDUINO_SAMD_MKR1000) + #include <SPI.h> + #include <WiFi101.h> + #include <WiFiUdp.h> #elif defined(EZTIME_ETHERNET) #include <SPI.h> #include <Ethernet.h> @@ -21,35 +25,92 @@ #endif #endif +#if defined(EZTIME_MAX_DEBUGLEVEL_NONE) + #define err(args...) "" + #define errln(args...) "" + #define info(args...) "" + #define infoln(args...) "" + #define debug(args...) "" + #define debugln(args...) "" +#elif defined(EZTIME_MAX_DEBUGLEVEL_ERROR) + #define err(args...) if (_debug_level >= ERROR) Serial.print(args) + #define errln(args...) if (_debug_level >= ERROR) Serial.println(args) + #define info(args...) "" + #define infoln(args...) "" + #define debug(args...) "" + #define debugln(args...) "" +#elif defined(EZTIME_MAX_DEBUGLEVEL_INFO) + #define err(args...) if (_debug_level >= ERROR) Serial.print(args) + #define errln(args...) if (_debug_level >= ERROR) Serial.println(args) + #define info(args...) if (_debug_level >= INFO) Serial.print(args) + #define infoln(args...) if (_debug_level >= INFO) Serial.println(args) + #define debug(args...) "" + #define debugln(args...) "" +#else // nothing specified compiles everything in. + #define err(args...) if (_debug_level >= ERROR) Serial.print(args) + #define errln(args...) if (_debug_level >= ERROR) Serial.println(args) + #define info(args...) if (_debug_level >= INFO) Serial.print(args) + #define infoln(args...) if (_debug_level >= INFO) Serial.println(args) + #define debug(args...) if (_debug_level >= DEBUG) Serial.print(args) + #define debugln(args...) if (_debug_level >= DEBUG) Serial.println(args) +#endif + const uint8_t monthDays[]={31,28,31,30,31,30,31,31,30,31,30,31}; // API starts months from 1, this array starts from 0 +// The private things go in an anonymous namespace +namespace { + + ezError_t _last_error = NO_ERROR; + ezDebugLevel_t _debug_level = NONE; + ezEvent_t _events[MAX_EVENTS]; + time_t _last_sync_time = 0; + time_t _last_read_t = 0; + uint32_t _last_sync_millis = 0; + uint16_t _last_read_ms; + timeStatus_t _time_status; + bool _initialised = false; + #ifdef EZTIME_NETWORK_ENABLE + bool _ntp_enabled = true; + uint16_t _ntp_interval = NTP_INTERVAL; + String _ntp_server = NTP_SERVER; + #endif -ezError_t EZtime::_last_error = NO_ERROR; -ezDebugLevel_t EZtime::_debug_level = NONE; -time_t EZtime::_last_sync_time = 0; -time_t EZtime::_last_read_t = 0; -uint32_t EZtime::_last_sync_millis = 0; -uint16_t EZtime::_last_read_ms; -timeStatus_t EZtime::_time_status = timeNotSet; -ezEvent_t EZtime::_events[MAX_EVENTS]; -bool EZtime::_initialised = false; + void error(ezError_t err) { + _last_error = err; + if (_last_error) { + err(F("ERROR: ")); + errln(errorString(err)); + } + } -#ifdef EZTIME_NETWORK_ENABLE - bool EZtime::_ntp_enabled = true; - uint16_t EZtime::_ntp_interval = NTP_INTERVAL; - String EZtime::_ntp_server = NTP_SERVER; -#endif + String debugLevelString(ezDebugLevel_t level) { + switch (level) { + case NONE: return F("NONE"); + case ERROR: return F("ERROR"); + case INFO: return F("INFO"); + default: return F("DEBUG"); + } + } + time_t nowUTC(bool update_last_read = true) { + time_t t; + uint32_t m = millis(); + t = _last_sync_time + ((m - _last_sync_millis) / 1000); + if (update_last_read) { + _last_read_t = t; + _last_read_ms = (m - _last_sync_millis) % 1000; + } + return t; + } -EZtime::EZtime() { - for (uint8_t n = 0; n < MAX_EVENTS; n++) EZtime::_events[n] = { 0, NULL }; } + ////////// Error handing -String EZtime::errorString(ezError_t err /* = LAST_ERROR */) { +String errorString(ezError_t err /* = LAST_ERROR */) { switch (err) { case NO_ERROR: return F("OK"); case LAST_ERROR: return errorString(_last_error); @@ -65,30 +126,15 @@ String EZtime::errorString(ezError_t err /* = LAST_ERROR */) { } } -String EZtime::debugLevelString(ezDebugLevel_t level) { - switch (level) { - case NONE: return F("NONE"); - case ERROR: return F("ERROR"); - case INFO: return F("INFO"); - case DEBUG: return F("DEBUG"); - } -} -ezError_t EZtime::error(bool reset /* = false */) { + +ezError_t error(bool reset /* = false */) { ezError_t tmp = _last_error; if (reset) _last_error = NO_ERROR; return tmp; } -void EZtime::error(ezError_t err) { - _last_error = err; - if (_last_error) { - err(F("ERROR: ")); - errln(errorString(err)); - } -} - -void EZtime::debugLevel(ezDebugLevel_t level) { +void debugLevel(ezDebugLevel_t level) { _debug_level = level; info(F("\r\nezTime debug level set to ")); infoln(debugLevelString(level)); @@ -96,7 +142,7 @@ void EZtime::debugLevel(ezDebugLevel_t level) { //////////////////////// -String EZtime::monthString(uint8_t month) { +String monthString(uint8_t month) { switch(month) { case 1: return F("January"); case 2: return F("February"); @@ -114,7 +160,7 @@ String EZtime::monthString(uint8_t month) { return ""; } -String EZtime::dayString(uint8_t day) { +String dayString(uint8_t day) { switch(day) { case 1: return F("Sunday"); case 2: return F("Monday"); @@ -128,30 +174,19 @@ String EZtime::dayString(uint8_t day) { } -timeStatus_t EZtime::timeStatus() { return _time_status; } +timeStatus_t timeStatus() { return _time_status; } -time_t EZtime::now(bool update_last_read /* = true */) { - time_t t; - uint32_t m = millis(); - t = _last_sync_time + ((m - _last_sync_millis) / 1000); - if (update_last_read) { - _last_read_t = t; - _last_read_ms = (m - _last_sync_millis) % 1000; +void events() { + if (!_initialised) { + for (uint8_t n = 0; n < MAX_EVENTS; n++) _events[n] = { 0, NULL }; + #ifdef EZTIME_NETWORK_ENABLE + updateNTP(); // Start the cycle of updateNTP running and then setting an event for its next run + #endif + _initialised = true; } - return t; -} - -void EZtime::events() { - #ifdef EZTIME_NETWORK_ENABLE - if (!_initialised) { - // Start the cycle of updateNTP running and then setting an event for its next run - updateNTP(); - _initialised = true; - } - #endif // See if any events are due for (uint8_t n = 0; n < MAX_EVENTS; n++) { - if (_events[n].function && now() >= _events[n].time) { + if (_events[n].function && nowUTC() >= _events[n].time) { debug(F("Running event (#")); debug(n + 1); debug(F(") set for ")); debugln(UTC.dateTime(_events[n].time)); void (*tmp)() = _events[n].function; _events[n] = { 0, NULL }; // reset the event @@ -160,14 +195,14 @@ void EZtime::events() { } } -void EZtime::deleteEvent(uint8_t event_handle) { +void deleteEvent(uint8_t event_handle) { if (event_handle && event_handle <= MAX_EVENTS) { debug(F("Deleted event (#")); debug(event_handle); debug(F("), set for ")); debugln(UTC.dateTime(_events[event_handle - 1].time)); _events[event_handle - 1] = { 0, NULL }; } } -void EZtime::deleteEvent(void (*function)()) { +void deleteEvent(void (*function)()) { for (uint8_t n = 0; n< MAX_EVENTS; n++) { if (_events[n].function == function) { debug(F("Deleted event (#")); debug(n + 1); debug(F("), set for ")); debugln(UTC.dateTime(_events[n].time)); @@ -176,7 +211,7 @@ void EZtime::deleteEvent(void (*function)()) { } } -void EZtime::breakTime(time_t timeInput, tmElements_t &tm){ +void breakTime(time_t timeInput, tmElements_t &tm){ // break the given time_t into time components // this is a more compact version of the C library localtime function // note that year is offset from 1970 !!! @@ -229,7 +264,7 @@ void EZtime::breakTime(time_t timeInput, tmElements_t &tm){ tm.Day = time + 1; // day of month } -time_t EZtime::makeTime(uint8_t hour, uint8_t minute, uint8_t second, uint8_t day, uint8_t month, uint16_t year) { +time_t makeTime(uint8_t hour, uint8_t minute, uint8_t second, uint8_t day, uint8_t month, uint16_t year) { tmElements_t tm; tm.Hour = hour; tm.Minute = minute; @@ -244,7 +279,7 @@ time_t EZtime::makeTime(uint8_t hour, uint8_t minute, uint8_t second, uint8_t da return makeTime(tm); } -time_t EZtime::makeTime(tmElements_t &tm){ +time_t makeTime(tmElements_t &tm){ // assemble time elements into time_t // note year argument is offset from 1970 (see macros in time.h to convert to other formats) // previous version used full four digit year (or digits since 2000),i.e. 2009 was 2009 or 9 @@ -281,7 +316,7 @@ time_t EZtime::makeTime(tmElements_t &tm){ // makeOrdinalTime allows you to resolve "second thursday in September in 2018" into a number of seconds since 1970 // (Very useful for the timezone calculations that ezTime does internally) // If ordinal is 0 or 5 it is taken to mean "the last $wday in $month" -time_t EZtime::makeOrdinalTime(uint8_t hour, uint8_t minute, uint8_t second, uint8_t ordinal, uint8_t wday, uint8_t month, uint16_t year) { +time_t makeOrdinalTime(uint8_t hour, uint8_t minute, uint8_t second, uint8_t ordinal, uint8_t wday, uint8_t month, uint16_t year) { if (year <= 68 ) year = 1970 + year; // fix user intent if (ordinal == 5) ordinal = 0; uint8_t m = month; @@ -301,13 +336,12 @@ time_t EZtime::makeOrdinalTime(uint8_t hour, uint8_t minute, uint8_t second, uin return t; } -String EZtime::urlEncode(String str) { +String urlEncode(String str) { String encodedString=""; char c; char code0; char code1; - char code2; - for (int i = 0; i < str.length(); i++) { + for (uint16_t i = 0; i < str.length(); i++) { c = str.charAt(i); if (c == ' ') { encodedString += '+'; @@ -331,7 +365,7 @@ String EZtime::urlEncode(String str) { return encodedString; } -String EZtime::zeropad(uint32_t number, uint8_t length) { +String zeropad(uint32_t number, uint8_t length) { String out; out.reserve(length); out = String(number); @@ -339,7 +373,7 @@ String EZtime::zeropad(uint32_t number, uint8_t length) { return out; } -time_t EZtime::compileTime(String compile_date /* = __DATE__ */, String compile_time /* = __TIME__ */) { +time_t compileTime(String compile_date /* = __DATE__ */, String compile_time /* = __TIME__ */) { uint8_t hrs = compile_time.substring(0,2).toInt(); uint8_t min = compile_time.substring(3,5).toInt(); @@ -356,14 +390,14 @@ time_t EZtime::compileTime(String compile_date /* = __DATE__ */, String compile_ return 0; } -bool EZtime::secondChanged() { - time_t t = now(false); +bool secondChanged() { + time_t t = nowUTC(false); if (_last_read_t != t) return true; return false; } -bool EZtime::minuteChanged() { - time_t t = now(false); +bool minuteChanged() { + time_t t = nowUTC(false); if (_last_read_t / 60 != t / 60) return true; return false; } @@ -371,8 +405,8 @@ bool EZtime::minuteChanged() { #ifdef EZTIME_NETWORK_ENABLE - void EZtime::updateNTP() { - time.deleteEvent(updateNTP); // Delete any events pointing here, in case called manually + void updateNTP() { + deleteEvent(updateNTP); // Delete any events pointing here, in case called manually time_t t; unsigned long measured_at; if (queryNTP(_ntp_server, t, measured_at)) { @@ -400,20 +434,22 @@ bool EZtime::minuteChanged() { if (_ntp_interval) UTC.setEvent(updateNTP, t + _ntp_interval); _time_status = timeSet; } else { - UTC.setEvent(updateNTP, now() + NTP_RETRY); + UTC.setEvent(updateNTP, nowUTC() + NTP_RETRY); } } // This is a nice self-contained NTP routine if you need one: feel free to use it. // It gives you the seconds since 1970 (unix epoch) and the millis() on your system when // that happened (by deducting fractional seconds and estimated network latency). - bool EZtime::queryNTP(String server, time_t &t, unsigned long &measured_at) { + bool queryNTP(String server, time_t &t, unsigned long &measured_at) { info(F("Querying ")); info(server); info(F(" ... ")); #ifndef EZTIME_ETHERNET - if (!WiFi.isConnected()) { error(NO_NETWORK); return false; } + #ifndef ARDUINO_SAMD_MKR1000 + if (!WiFi.isConnected()) { error(NO_NETWORK); return false; } + #endif WiFiUDP udp; #else EthernetUDP udp; @@ -467,19 +503,19 @@ bool EZtime::minuteChanged() { return true; } - void EZtime::setInterval(uint16_t seconds /* = 0 */) { + void setInterval(uint16_t seconds /* = 0 */) { deleteEvent(updateNTP); _ntp_interval = seconds; - if (seconds) UTC.setEvent(updateNTP, now() + _ntp_interval); + if (seconds) UTC.setEvent(updateNTP, nowUTC() + _ntp_interval); } - void EZtime::setServer(String ntp_server /* = NTP_SERVER */) { _ntp_server = ntp_server; } + void setServer(String ntp_server /* = NTP_SERVER */) { _ntp_server = ntp_server; } - bool EZtime::waitForSync(uint16_t timeout /* = 0 */) { + bool waitForSync(uint16_t timeout /* = 0 */) { unsigned long start = millis(); - #ifndef EZTIME_ETHERNET + #if !defined(EZTIME_ETHERNET) && !defined(ARDUINO_SAMD_MKR1000) if (!WiFi.isConnected()) { info(F("Waiting for WiFi ... ")); while (!WiFi.isConnected()) { @@ -505,12 +541,6 @@ bool EZtime::minuteChanged() { #endif // EZTIME_NETWORK_ENABLE -EZtime time; - - - - - // // Timezone class @@ -519,24 +549,33 @@ EZtime time; Timezone::Timezone(bool locked_to_UTC /* = false */) { _locked_to_UTC = locked_to_UTC; _posix = "UTC"; - #ifdef EZTIME_CACHE_EEPROM - _cache_month = 0; - _eeprom_address = -1; - #endif - #ifdef EZTIME_CACHE_NVS - _cache_month = 0; - _nvs_name = ""; - _nvs_key = ""; + #ifdef EZTIME_NETWORK_ENABLE + #ifdef EZTIME_CACHE_EEPROM + _cache_month = 0; + _eeprom_address = -1; + #endif + #ifdef EZTIME_CACHE_NVS + _cache_month = 0; + _nvs_name = ""; + _nvs_key = ""; + #endif + _olsen = ""; #endif } bool Timezone::setPosix(String posix) { - if (_locked_to_UTC) { time.error(LOCKED_TO_UTC); return false; } + if (_locked_to_UTC) { error(LOCKED_TO_UTC); return false; } _posix = posix; - _olsen = ""; + #ifdef EZTIME_NETWORK_ENABLE + _olsen = ""; + #endif + return true; } -time_t Timezone::tzTime(time_t t = TIME_NOW, ezLocalOrUTC_t local_or_utc = LOCAL_TIME) { +time_t Timezone::now() { return tzTime(); } + +time_t Timezone::tzTime(time_t t /* = TIME_NOW */, ezLocalOrUTC_t local_or_utc /* = LOCAL_TIME */) { + if (_locked_to_UTC) return nowUTC(); // just saving some time and memory String tzname; bool is_dst; int16_t offset; @@ -546,10 +585,10 @@ time_t Timezone::tzTime(time_t t = TIME_NOW, ezLocalOrUTC_t local_or_utc = LOCAL time_t Timezone::tzTime(time_t t, ezLocalOrUTC_t local_or_utc, String &tzname, bool &is_dst, int16_t &offset) { if (t == TIME_NOW) { - t = time.now(); + t = nowUTC(); local_or_utc = UTC_TIME; } else if (t == LAST_READ) { - t = time._last_read_t; + t = _last_read_t; local_or_utc = UTC_TIME; } @@ -712,11 +751,11 @@ time_t Timezone::tzTime(time_t t, ezLocalOrUTC_t local_or_utc, String &tzname, b int16_t dst_offset = std_offset - dst_shift_hr * 60 - dst_shift_min; // to find the year tmElements_t tm; - time.breakTime(t, tm); + breakTime(t, tm); // in local time - time_t dst_start = time.makeOrdinalTime(start_time_hr, start_time_min, 0, start_week, start_dow, start_month, tm.Year + 1970); - time_t dst_end = time.makeOrdinalTime(end_time_hr, end_time_min, 0, end_week, end_dow, end_month, tm.Year + 1970); + time_t dst_start = makeOrdinalTime(start_time_hr, start_time_min, 0, start_week, start_dow, start_month, tm.Year + 1970); + time_t dst_end = makeOrdinalTime(end_time_hr, end_time_min, 0, end_week, end_dow, end_month, tm.Year + 1970); if (local_or_utc == UTC_TIME) { dst_start -= std_offset; @@ -751,17 +790,17 @@ String Timezone::getPosix() { return _posix; } info(F("Timezone lookup for: ")); infoln(location); - if (_locked_to_UTC) { time.error(LOCKED_TO_UTC); return false; } + if (_locked_to_UTC) { error(LOCKED_TO_UTC); return false; } - #ifndef EZTIME_ETHERNET - if (!WiFi.isConnected()) { time.error(NO_NETWORK); return false; } + #if !defined(EZTIME_ETHERNET) && !defined(ARDUINO_SAMD_MKR1000) + if (!WiFi.isConnected()) { error(NO_NETWORK); return false; } #endif String path; if (location.indexOf("/") != -1) { - path = F("/api/timezone/?"); path += time.urlEncode(location); + path = F("/api/timezone/?"); path += urlEncode(location); } else if (location != "") { - path = F("/api/address/?"); path += time.urlEncode(location); + path = F("/api/address/?"); path += urlEncode(location); } else { path = F("/api/ip"); } @@ -772,7 +811,7 @@ String Timezone::getPosix() { return _posix; } EthernetClient client; #endif - if (!client.connect("timezoneapi.io", 80)) { time.error(CONNECT_FAILED); return false; } + if (!client.connect("timezoneapi.io", 80)) { error(CONNECT_FAILED); return false; } client.print(F("GET ")); client.print(path); @@ -818,45 +857,65 @@ String Timezone::getPosix() { return _posix; } } } debugln(F("\r\n\r\n")); - if (search_state != 4 || tzinfo == "") { time.error(DATA_NOT_FOUND); return false; } + if (search_state != 4 || tzinfo == "") { error(DATA_NOT_FOUND); return false; } infoln(F("success.")); info(F("Found: ")); infoln(tzinfo); + _olsen = tzinfo.substring(0, tzinfo.indexOf(' ')); + _posix = tzinfo.substring(tzinfo.indexOf(' ') + 1); + #if defined(EZTIME_CACHE_EEPROM) || defined(EZTIME_CACHE_NVS) - writeCache(tzinfo); + writeCache(tzinfo); // caution, byref to save memory, tzinfo mangled afterwards #endif - _posix = tzinfo.substring(tzinfo.indexOf(' ') + 1); return true; } - - #ifdef EZTIME_CACHE_EEPROM - bool Timezone::setCache(const int16_t address) { - if (address + EEPROM_CACHE_LEN > EEPROM.length()) { time.error(CACHE_TOO_SMALL); return false; } - _eeprom_address = address; - return setCache(); - } - #endif - #ifdef EZTIME_CACHE_NVS - bool Timezone::setCache(const String name, const String key) { - _nvs_name = name; - _nvs_key = key; - return setCache(); - } - #endif + String Timezone::getOlsen() { + return _olsen; + } + #if defined(EZTIME_CACHE_EEPROM) || defined(EZTIME_CACHE_NVS) + + #if defined(ESP32) || defined(ESP8266) + #define eepromBegin() EEPROM.begin(4096) + #define eepromEnd() EEPROM.end() + #define eepromLength() (4096) + #else + #define eepromBegin() "" + #define eepromEnd() "" + #define eepromLength() EEPROM.length() + #endif + + #ifdef EZTIME_CACHE_EEPROM + bool Timezone::setCache(const int16_t address) { + eepromBegin(); + if (address + EEPROM_CACHE_LEN > eepromLength()) { error(CACHE_TOO_SMALL); return false; } + _eeprom_address = address; + eepromEnd(); + return setCache(); + } + #endif + + #ifdef EZTIME_CACHE_NVS + bool Timezone::setCache(const String name, const String key) { + _nvs_name = name; + _nvs_key = key; + return setCache(); + } + #endif bool Timezone::setCache() { String olsen, posix; uint8_t months_since_jan_2018; if (readCache(olsen, posix, months_since_jan_2018)) { - _posix = posix; + setPosix(posix); _olsen = olsen; _cache_month = months_since_jan_2018; if ( (year() - 2018) * 12 + month(LAST_READ) - months_since_jan_2018 > MAX_CACHE_AGE_MONTHS) { + infoln(F("Cache stale, getting fresh")); setLocation(olsen); } return true; @@ -867,39 +926,40 @@ String Timezone::getPosix() { return _posix; } void Timezone::clearCache(bool delete_section /* = false */) { #ifdef EZTIME_CACHE_EEPROM - if (_eeprom_address < 0) { time.error(NO_CACHE_SET); return; } + eepromBegin(); + if (_eeprom_address < 0) { error(NO_CACHE_SET); return; } for (int16_t n = _eeprom_address; n < _eeprom_address + EEPROM_CACHE_LEN; n++) EEPROM.write(n, 0); + eepromEnd(); #endif #ifdef EZTIME_CACHE_NVS - if (_nvs_name = "" || _nvs_key = "") { time.error(NO_CACHE_SET); return; } + if (_nvs_name == "" || _nvs_key == "") { error(NO_CACHE_SET); return; } Preferences prefs; - prefs.begin(_nvs_name, false); + prefs.begin(_nvs_name.c_str(), false); if (delete_section) { prefs.clear(); } else { - prefs.remove(_nvs_key); + prefs.remove(_nvs_key.c_str()); } prefs.end(); #endif } - String Timezone::getOlsen() { - return _olsen; - } - - bool Timezone::writeCache(const String &str) { + bool Timezone::writeCache(String &str) { uint8_t months_since_jan_2018 = 0; if (year() >= 2018) months_since_jan_2018 = (year(LAST_READ) - 2018) * 12 + month(LAST_READ) - 1; #ifdef EZTIME_CACHE_EEPROM if (_eeprom_address < 0) return false; + info(F("Caching timezone data ")); - if (str.length() > MAX_CACHE_PAYLOAD) { time.error(CACHE_TOO_SMALL); return false; } + if (str.length() > MAX_CACHE_PAYLOAD) { error(CACHE_TOO_SMALL); return false; } uint16_t last_byte = _eeprom_address + EEPROM_CACHE_LEN - 1; uint16_t addr = _eeprom_address; + eepromBegin(); + // First byte is cache age, in months since 2018 EEPROM.write(addr++, months_since_jan_2018); @@ -943,16 +1003,18 @@ String Timezone::getPosix() { return _posix; } for (uint16_t n = _eeprom_address; n < last_byte; n++) checksum += EEPROM.read(n); checksum += 42; EEPROM.write(last_byte, checksum); + eepromEnd(); infoln(); return true; #endif #ifdef EZTIME_CACHE_NVS - if (_nvs_name = "" || _nvs_key = "") return false; + if (_nvs_name == "" || _nvs_key == "") return false; infoln(F("Caching timezone data")); Preferences prefs; - prefs.begin(_nvs_name, false); - prefs.putString(_nvs_key, String(months_since_jan_2018) + " " + str); + prefs.begin(_nvs_name.c_str(), false); + String tmp = String(months_since_jan_2018) + " " + str; + prefs.putString(_nvs_key.c_str(), tmp); prefs.end(); return true; #endif @@ -962,8 +1024,8 @@ String Timezone::getPosix() { return _posix; } bool Timezone::readCache(String &olsen, String &posix, uint8_t &months_since_jan_2018) { #ifdef EZTIME_CACHE_EEPROM - if (_eeprom_address < 0) { time.error(NO_CACHE_SET); return false; } - + if (_eeprom_address < 0) { error(NO_CACHE_SET); return false; } + eepromBegin(); uint16_t last_byte = _eeprom_address + EEPROM_CACHE_LEN - 1; for (uint16_t n = _eeprom_address; n <= last_byte; n++) { @@ -976,13 +1038,13 @@ String Timezone::getPosix() { return _posix; } uint8_t checksum = 0; for (uint16_t n = _eeprom_address; n < last_byte; n++) checksum += EEPROM.read(n); checksum += 42; - if (checksum != EEPROM.read(last_byte)) return false; + if (checksum != EEPROM.read(last_byte)) { eepromEnd(); return false; } debugln(F("Checksum OK")); // Return false if length impossible uint8_t len = EEPROM.read(_eeprom_address + 1); debug("Length: "); debugln(len); - if (len > MAX_CACHE_PAYLOAD) return false; + if (len > MAX_CACHE_PAYLOAD) { eepromEnd(); return false; } // OK, we're gonna decompress olsen.reserve(len + 3); // Everything goes in olsen first. Decompression might overshoot 3 @@ -1022,25 +1084,30 @@ String Timezone::getPosix() { return _posix; } } } info(F("Cache read. Olsen: ")); info(olsen); info (F(" Posix: ")); infoln(posix); + eepromEnd(); return true; #endif #ifdef EZTIME_CACHE_NVS - if (_nvs_name = "" || _nvs_key = "") { time.error(NO_CACHE_SET); return; } + if (_nvs_name == "" || _nvs_key == "") { error(NO_CACHE_SET); return false; } Preferences prefs; - prefs.begin(_nvs_name, true); - String olsen = prefs.getString(_nvs_key); + prefs.begin(_nvs_name.c_str(), true); + String read_string = prefs.getString(_nvs_key.c_str()); + read_string.trim(); prefs.end(); - if (!olsen) return false; + if (read_string == "") return false; - uint8_t first_space = olsen.indexOf(' '); - uint8_t second_space = olsen.indexOf(' ', first_space + 1); - months_since_jan_2018 = olsen.toInt(); - posix = olsen.substring(second_space + 1); - olsen = substring(olsen, first_space + 1, second_space); - info(F("Cache read. Olsen: ")); info(olsen); info (F(" Posix: ")); infoln(posix); - return true; + uint8_t first_space = read_string.indexOf(' '); + uint8_t second_space = read_string.indexOf(' ', first_space + 1); + if (first_space && second_space) { + months_since_jan_2018 = read_string.toInt(); + posix = read_string.substring(second_space + 1); + olsen = read_string.substring(first_space + 1, second_space); + info(F("Cache read. Olsen: ")); info(olsen); info (F(" Posix: ")); infoln(posix); + return true; + } + return false; #endif } @@ -1052,6 +1119,7 @@ String Timezone::getPosix() { return _posix; } void Timezone::setDefault() { defaultTZ = this; + debug(F("Default timezone set to ")); debug(_olsen); debug(F(" "));debugln(_posix); } bool Timezone::isDST(time_t t /*= TIME_NOW */, ezLocalOrUTC_t local_or_utc /* = LOCAL_TIME */) { @@ -1079,30 +1147,30 @@ int16_t Timezone::getOffset(time_t t /*= TIME_NOW */, ezLocalOrUTC_t local_or_ut } uint8_t Timezone::setEvent(void (*function)(), const uint8_t hr, const uint8_t min, const uint8_t sec, const uint8_t day, const uint8_t mnth, uint16_t yr) { - time_t t = time.makeTime(hr, min, sec, day, mnth, yr); + time_t t = makeTime(hr, min, sec, day, mnth, yr); return setEvent(function, t); } -uint8_t Timezone::setEvent(void (*function)(), time_t t = TIME_NOW, ezLocalOrUTC_t local_or_utc = LOCAL_TIME) { +uint8_t Timezone::setEvent(void (*function)(), time_t t /* = TIME_NOW */, ezLocalOrUTC_t local_or_utc /* = LOCAL_TIME */) { t = tzTime(t, local_or_utc); for (uint8_t n = 0; n < MAX_EVENTS; n++) { - if (!time._events[n].function) { - time._events[n].function = function; - time._events[n].time = t; + if (!_events[n].function) { + _events[n].function = function; + _events[n].time = t; debug(F("Set event (#")); debug(n + 1); debug(F(") to trigger on: ")); debugln(UTC.dateTime(t)); return n + 1; } } - time.error(TOO_MANY_EVENTS); + error(TOO_MANY_EVENTS); return 0; } void Timezone::setTime(time_t t, uint16_t ms /* = 0 */) { int16_t offset; offset = getOffset(t); - time._last_sync_time = t + offset * 60; - time._last_sync_millis = millis() - ms; - time._time_status = timeSet; + _last_sync_time = t + offset * 60; + _last_sync_millis = millis() - ms; + _time_status = timeSet; } void Timezone::setTime(const uint8_t hr, const uint8_t min, const uint8_t sec, const uint8_t day, const uint8_t mnth, uint16_t yr) { @@ -1120,7 +1188,7 @@ void Timezone::setTime(const uint8_t hr, const uint8_t min, const uint8_t sec, c tm.Hour = hr; tm.Minute = min; tm.Second = sec; - setTime(time.makeTime(tm)); + setTime(makeTime(tm)); } String Timezone::dateTime(String format /* = DEFAULT_TIMEFORMAT */) { @@ -1143,7 +1211,7 @@ String Timezone::dateTime(time_t t, ezLocalOrUTC_t local_or_utc, String format / String out = ""; tmElements_t tm; - time.breakTime(t, tm); + breakTime(t, tm); int8_t hour12 = tm.Hour % 12; if (hour12 == 0) hour12 = 12; @@ -1152,7 +1220,7 @@ String Timezone::dateTime(time_t t, ezLocalOrUTC_t local_or_utc, String format / bool escape_char = false; - for (int8_t n = 0; n < format.length(); n++) { + for (uint8_t n = 0; n < format.length(); n++) { char c = (char) format.c_str()[n]; @@ -1168,16 +1236,16 @@ String Timezone::dateTime(time_t t, ezLocalOrUTC_t local_or_utc, String format / escape_char = true; break; case 'd': // Day of the month, 2 digits with leading zeros - out += time.zeropad(tm.Day, 2); + out += zeropad(tm.Day, 2); break; case 'D': // A textual representation of a day, three letters - out += time.dayString(tm.Wday).substring(0,3); + out += dayString(tm.Wday).substring(0,3); break; case 'j': // Day of the month without leading zeros out += String(tm.Day); break; case 'l': // (lowercase L) A full textual representation of the day of the week - out += time.dayString(tm.Wday); + out += dayString(tm.Wday); break; case 'N': // ISO-8601 numeric representation of the day of the week. ( 1 = Monday, 7 = Sunday ) tmpint8 = tm.Wday - 1; @@ -1204,13 +1272,13 @@ String Timezone::dateTime(time_t t, ezLocalOrUTC_t local_or_utc, String format / out += String(tm.Wday); break; case 'F': // A full textual representation of a month, such as January or March - out += time.monthString(tm.Month); + out += monthString(tm.Month); break; case 'm': // Numeric representation of a month, with leading zeros - out += time.zeropad(tm.Month, 2); + out += zeropad(tm.Month, 2); break; case 'M': // A short textual representation of a month, three letters - out += time.monthString(tm.Month).substring(0,3); + out += monthString(tm.Month).substring(0,3); break; case 'n': // Numeric representation of a month, without leading zeros out += String(tm.Month); @@ -1222,7 +1290,7 @@ String Timezone::dateTime(time_t t, ezLocalOrUTC_t local_or_utc, String format / out += String(tm.Year + 1970); break; case 'y': // A two digit representation of a year - out += time.zeropad((tm.Year + 1970) % 100, 2); + out += zeropad((tm.Year + 1970) % 100, 2); break; case 'a': // am or pm out += (tm.Hour < 12) ? F("am") : F("pm"); @@ -1237,34 +1305,36 @@ String Timezone::dateTime(time_t t, ezLocalOrUTC_t local_or_utc, String format / out += String(tm.Hour); break; case 'h': // 12-hour format of an hour with leading zeros - out += time.zeropad(hour12, 2); + out += zeropad(hour12, 2); break; case 'H': // 24-hour format of an hour with leading zeros - out += time.zeropad(tm.Hour, 2); + out += zeropad(tm.Hour, 2); break; case 'i': // Minutes with leading zeros - out += time.zeropad(tm.Minute, 2); + out += zeropad(tm.Minute, 2); break; case 's': // Seconds with leading zeros - out += time.zeropad(tm.Second, 2); + out += zeropad(tm.Second, 2); break; case 'T': // abbreviation for timezone out += tzname; break; case 'v': // milliseconds as three digits - out += time.zeropad(time._last_read_ms, 3); + out += zeropad(_last_read_ms, 3); break; - case 'e': // Timezone identifier (Olsen) - out += getOlsen(); - break; + #ifdef EZTIME_NETWORK_ENABLE + case 'e': // Timezone identifier (Olsen) + out += getOlsen(); + break; + #endif case 'O': // Difference to Greenwich time (GMT) in hours and minutes written together (+0200) case 'P': // Difference to Greenwich time (GMT) in hours and minutes written with colon (+02:00) o = offset; out += (o < 0) ? "+" : "-"; // reversed from our offset if (o < 0) o = 0 - o; - out += time.zeropad(o / 60, 2); + out += zeropad(o / 60, 2); out += (c == 'P') ? ":" : ""; - out += time.zeropad(o % 60, 2); + out += zeropad(o % 60, 2); break; case 'Z': //Timezone offset in seconds. West of UTC is negative, east of UTC is positive. out += String(0 - offset * 60); @@ -1273,12 +1343,14 @@ String Timezone::dateTime(time_t t, ezLocalOrUTC_t local_or_utc, String format / out += String(dayOfYear(t)); // The day of the year (starting from 0) break; case 'W': - out += time.zeropad(weekISO(t), 2); // ISO-8601 week number of year, weeks starting on Monday + out += zeropad(weekISO(t), 2); // ISO-8601 week number of year, weeks starting on Monday break; case 'X': out += String(yearISO(t)); // ISO-8601 year-week notation year, see https://en.wikipedia.org/wiki/ISO_week_date break; - + case 'B': + out += militaryTZ(t); + break; default: out += String(c); @@ -1289,6 +1361,18 @@ String Timezone::dateTime(time_t t, ezLocalOrUTC_t local_or_utc, String format / return out; } +String Timezone::militaryTZ(time_t t /*= TIME_NOW */, ezLocalOrUTC_t local_or_utc /* = LOCAL_TIME */) { + t = tzTime(t, local_or_utc); + int16_t o = getOffset(t); + if (o % 60) return "?"; // If it's not a whole hour from UTC, it's not a timezone with a military letter code + o = o / 60; + if (o > 0) return String((char)('M' + o)); + if (o < 0 && o >= -9) return String((char)('A' - o - 1)); // Minus a negative number == plus 1 + if (o < -9) return String((char)('A' - o)); // Crazy, they're skipping 'J' + return "Z"; +} + + uint8_t Timezone::hour(time_t t /*= TIME_NOW */, ezLocalOrUTC_t local_or_utc /* = LOCAL_TIME */) { t = tzTime(t, local_or_utc); return t / 3600 % 24; @@ -1304,44 +1388,44 @@ uint8_t Timezone::second(time_t t /*= TIME_NOW */, ezLocalOrUTC_t local_or_utc / return t % 60; } -uint16_t Timezone::ms(time_t t /*= TIME_NOW */, ezLocalOrUTC_t local_or_utc /* = LOCAL_TIME */) { +uint16_t Timezone::ms(time_t t /*= TIME_NOW */) { // Note that here passing anything but TIME_NOW or LAST_READ is pointless - if (t == TIME_NOW) { time.now(); return time._last_read_ms; } - if (t == LAST_READ) return time._last_read_ms; + if (t == TIME_NOW) { nowUTC(); return _last_read_ms; } + if (t == LAST_READ) return _last_read_ms; return 0; } uint8_t Timezone::day(time_t t /*= TIME_NOW */, ezLocalOrUTC_t local_or_utc /* = LOCAL_TIME */) { t = tzTime(t, local_or_utc); tmElements_t tm; - time.breakTime(t, tm); + breakTime(t, tm); return tm.Day; } uint8_t Timezone::weekday(time_t t /*= TIME_NOW */, ezLocalOrUTC_t local_or_utc /* = LOCAL_TIME */) { t = tzTime(t, local_or_utc); tmElements_t tm; - time.breakTime(t, tm); + breakTime(t, tm); return tm.Wday; } uint8_t Timezone::month(time_t t /*= TIME_NOW */, ezLocalOrUTC_t local_or_utc /* = LOCAL_TIME */) { t = tzTime(t, local_or_utc); tmElements_t tm; - time.breakTime(t, tm); + breakTime(t, tm); return tm.Month; } uint16_t Timezone::year(time_t t /*= TIME_NOW */, ezLocalOrUTC_t local_or_utc /* = LOCAL_TIME */) { t = tzTime(t, local_or_utc); tmElements_t tm; - time.breakTime(t, tm); + breakTime(t, tm); return tm.Year + 1970; } uint16_t Timezone::dayOfYear(time_t t /*= TIME_NOW */, ezLocalOrUTC_t local_or_utc /* = LOCAL_TIME */) { t = tzTime(t, local_or_utc); - time_t jan_1st = time.makeTime(0, 0, 0, 1, 1, year(t)); + time_t jan_1st = makeTime(0, 0, 0, 1, 1, year(t)); return (t - jan_1st) / SECS_PER_DAY; } @@ -1351,7 +1435,7 @@ uint16_t Timezone::dayOfYear(time_t t /*= TIME_NOW */, ezLocalOrUTC_t local_or_u // definition for week 01 is the week with the Gregorian year's first Thursday in it. // See https://en.wikipedia.org/wiki/ISO_week_date // -#define startISOyear(year...) time.makeOrdinalTime(0, 0, 0, FIRST, THURSDAY, JANUARY, year) - 3UL * SECS_PER_DAY; +#define startISOyear(year...) makeOrdinalTime(0, 0, 0, FIRST, THURSDAY, JANUARY, year) - 3UL * SECS_PER_DAY; uint8_t Timezone::weekISO(time_t t /*= TIME_NOW */, ezLocalOrUTC_t local_or_utc /* = LOCAL_TIME */) { t = tzTime(t, local_or_utc); int16_t yr = year(t); @@ -1359,50 +1443,58 @@ uint8_t Timezone::weekISO(time_t t /*= TIME_NOW */, ezLocalOrUTC_t local_or_utc time_t prev_year = startISOyear(yr - 1); time_t next_year = startISOyear(yr + 1); if (t < this_year) this_year = prev_year; - if (t > next_year) this_year = next_year; + if (t >= next_year) this_year = next_year; return (t - this_year) / ( SECS_PER_DAY * 7UL) + 1; } uint16_t Timezone::yearISO(time_t t /*= TIME_NOW */, ezLocalOrUTC_t local_or_utc /* = LOCAL_TIME */) { t = tzTime(t, local_or_utc); - int16_t yr = year(LAST_READ); + int16_t yr = year(t); time_t this_year = startISOyear(yr); - time_t prev_year = startISOyear(yr - 1); time_t next_year = startISOyear(yr + 1); if (t < this_year) return yr - 1; - if (t > next_year) return yr + 1; + if (t >= next_year) return yr + 1; return yr; } Timezone UTC; -Timezone& defaultTZ = UTC; - - -#ifdef ARDUINO_TIMELIB_COMPATIBILITY - - // Can't be macros because then it would also expand the explicit class member calls - - time_t now() { return (defaultTZ.now()); } - uint8_t second(time_t t = TIME_NOW) { return (defaultTZ.second(t)); } - uint8_t minute(time_t t = TIME_NOW) { return (defaultTZ.minute(t)); } - uint8_t hour(time_t t = TIME_NOW) { return (defaultTZ.hour(t)); } - uint8_t day(time_t t = TIME_NOW) { return (defaultTZ.day(t)); } - uint8_t weekday(time_t t = TIME_NOW) { return (defaultTZ.weekday(t)); } - uint8_t month(time_t t = TIME_NOW) { return (defaultTZ.month(t)); } - uint16_t year(time_t t = TIME_NOW) { return (defaultTZ.year(t)); } - uint8_t hourFormat12(time_t t = TIME_NOW) { return (defaultTZ.hour(t) % 12); } - bool isAM(time_t t = TIME_NOW) { return (defaultTZ.hour(t) < 12) ? true : false; } - bool isPM(time_t t = TIME_NOW) { return (defaultTZ.hour(t) >= 12) ? true : false; } - String monthStr(const uint8_t month) { return time.monthString(month); } - String monthShortStr(const uint8_t month) { return time.monthString(month).substring(0,3); } - String dayStr(const uint8_t day) { return time.dayString(day); } - String dayShortStr(const uint8_t day) { return time.dayString(day).substring(0,3); } - void setTime(time_t t) { defaultTZ.setTime(t); } - void setTime(const uint8_t hr, const uint8_t min, const uint8_t sec, const uint8_t day, const uint8_t month, const uint16_t yr) { defaultTZ.setTime(hr, min, sec, day, month, yr); } - void breakTime(time_t t, tmElements_t &tm) { time.breakTime(t, tm); } - time_t makeTime(tmElements_t &tm) { return time.makeTime(tm); } - time_t makeTime(uint8_t hour, uint8_t minute, uint8_t second, uint8_t day, uint8_t month, int16_t year) { return time.makeTime(hour, minute, second, day, month, year); } - timeStatus_t timeStatus() { return time.timeStatus(); } - -#endif \ No newline at end of file +Timezone *defaultTZ = &UTC; + + + +// Original time lib compatibility +String dayShortStr(const uint8_t day) { return dayString(day).substring(0,3); } +String dayStr(const uint8_t day) { return dayString(day); } +String monthShortStr(const uint8_t month) { return monthString(month).substring(0,3); } +String monthStr(const uint8_t month) { return monthString(month); } + + +// All bounce-throughs to defaultTZ +String dateTime(String format /* = DEFAULT_TIMEFORMAT */) { return (defaultTZ->dateTime(format)); } +String dateTime(time_t t, String format /* = DEFAULT_TIMEFORMAT */) { return (defaultTZ->dateTime(t, format)); } +String dateTime(time_t t, ezLocalOrUTC_t local_or_utc, String format /* = DEFAULT_TIMEFORMAT */) { return (defaultTZ->dateTime(t, local_or_utc, format)); } +uint8_t day(time_t t /* = TIME_NOW */, ezLocalOrUTC_t local_or_utc /* = LOCAL_TIME */) { return (defaultTZ->day(t, local_or_utc)); } +uint16_t dayOfYear(time_t t /* = TIME_NOW */, ezLocalOrUTC_t local_or_utc /* = LOCAL_TIME */) { return (defaultTZ->dayOfYear(t, local_or_utc)); } +int16_t getOffset(time_t t /* = TIME_NOW */, ezLocalOrUTC_t local_or_utc /* = LOCAL_TIME */) { return (defaultTZ->getOffset(t, local_or_utc)); } +String getTimezoneName(time_t t /* = TIME_NOW */, ezLocalOrUTC_t local_or_utc /* = LOCAL_TIME */) { return (defaultTZ->getTimezoneName(t, local_or_utc)); } +uint8_t hour(time_t t /* = TIME_NOW */, ezLocalOrUTC_t local_or_utc /* = LOCAL_TIME */) { return (defaultTZ->hour(t, local_or_utc)); } +uint8_t hourFormat12(time_t t /* = TIME_NOW */, ezLocalOrUTC_t local_or_utc /* = LOCAL_TIME */) { return (defaultTZ->hour(t, local_or_utc) % 12); } +bool isAM(time_t t /* = TIME_NOW */, ezLocalOrUTC_t local_or_utc /* = LOCAL_TIME */) { return (defaultTZ->hour(t, local_or_utc) < 12) ? true : false; } +bool isDST(time_t t /* = TIME_NOW */, ezLocalOrUTC_t local_or_utc /* = LOCAL_TIME */) { return (defaultTZ->isDST(t, local_or_utc)); } +bool isPM(time_t t /* = TIME_NOW */, ezLocalOrUTC_t local_or_utc /* = LOCAL_TIME */) { return (defaultTZ->hour(t, local_or_utc) >= 12) ? true : false; } +String militaryTZ(time_t t /* = TIME_NOW */, ezLocalOrUTC_t local_or_utc /* = LOCAL_TIME */) { return (defaultTZ->militaryTZ(t, local_or_utc)); } +uint8_t minute(time_t t /* = TIME_NOW */, ezLocalOrUTC_t local_or_utc /* = LOCAL_TIME */) { return (defaultTZ->minute(t, local_or_utc)); } +uint8_t month(time_t t /* = TIME_NOW */, ezLocalOrUTC_t local_or_utc /* = LOCAL_TIME */) { return (defaultTZ->month(t, local_or_utc)); } +uint16_t ms(time_t t /* = TIME_NOW */) { return (defaultTZ->ms(t)); } +time_t now() { return (defaultTZ->now()); } +uint8_t second(time_t t /* = TIME_NOW */, ezLocalOrUTC_t local_or_utc /* = LOCAL_TIME */) { return (defaultTZ->second(t, local_or_utc)); } +uint8_t setEvent(void (*function)(), const uint8_t hr, const uint8_t min, const uint8_t sec, const uint8_t day, const uint8_t mnth, uint16_t yr) { return (defaultTZ->setEvent(function,hr, min, sec, day, mnth, yr)); } +uint8_t setEvent(void (*function)(), time_t t /* = TIME_NOW */, ezLocalOrUTC_t local_or_utc /* = LOCAL_TIME */) { return (defaultTZ->setEvent(function, t, local_or_utc)); } +void setTime(const uint8_t hr, const uint8_t min, const uint8_t sec, const uint8_t day, const uint8_t month, const uint16_t yr) { defaultTZ->setTime(hr, min, sec, day, month, yr); } +void setTime(time_t t) { defaultTZ->setTime(t); } +uint8_t weekISO(time_t t /* = TIME_NOW */, ezLocalOrUTC_t local_or_utc /* = LOCAL_TIME */) { return (defaultTZ->weekISO(t, local_or_utc)); } +uint8_t weekday(time_t t /* = TIME_NOW */, ezLocalOrUTC_t local_or_utc /* = LOCAL_TIME */) { return (defaultTZ->weekday(t, local_or_utc)); } +uint16_t year(time_t t /* = TIME_NOW */, ezLocalOrUTC_t local_or_utc /* = LOCAL_TIME */) { return (defaultTZ->year(t, local_or_utc)); } +uint16_t yearISO(time_t t /* = TIME_NOW */, ezLocalOrUTC_t local_or_utc /* = LOCAL_TIME */) { return (defaultTZ->yearISO(t, local_or_utc)); } + diff --git a/src/ezTime.h b/src/ezTime.h index 87f16da..1c216f1 100644 --- a/src/ezTime.h +++ b/src/ezTime.h @@ -8,21 +8,24 @@ // objects created by ezTime.) #define ARDUINO_TIMELIB_COMPATIBILITY -// Compiles in NTP updating and timezoneapi.io fetching +// Compiles in NTP updating, timezoneapi.io fetching and caching #define EZTIME_NETWORK_ENABLE // Arduino Ethernet shields // #define EZTIME_ETHERNET // Uncomment one of the below to only put only messages up to a certain level in the compiled code -// (You still need to turn them on with time.debugLevel(someLevel) to see them) +// (You still need to turn them on with debugLevel(someLevel) to see them) // #define EZTIME_MAX_DEBUGLEVEL_NONE // #define EZTIME_MAX_DEBUGLEVEL_ERROR // #define EZTIME_MAX_DEBUGLEVEL_INFO // Cache mechanism, either EEPROM or NVS, not both. (See README) -#define EZTIME_CACHE_EEPROM -// #define EZTIME_CACHE_NVS +// #define EZTIME_CACHE_EEPROM +#define EZTIME_CACHE_NVS + + +// Warranty void if edited below this point... @@ -71,7 +74,6 @@ typedef enum { // Defines that can make your code more readable. For example, if you are looking for the first // Thursday in a year, you could write: time.makeOrdinalTime(0, 0, 0, JANUARY, FIRST, THURSDAY, year) -// (As is done within ezTime to calculate ISO weeks) #define SUNDAY 1 #define MONDAY 2 @@ -100,36 +102,6 @@ typedef enum { #define FOURTH 4 #define LAST 5 -#if defined(EZTIME_MAX_DEBUGLEVEL_NONE) - #define err(args...) "" - #define errln(args...) "" - #define info(args...) "" - #define infoln(args...) "" - #define debug(args...) "" - #define debugln(args...) "" -#elif defined(EZTIME_MAX_DEBUGLEVEL_ERROR) - #define err(args...) if (time._debug_level >= ERROR) Serial.print(args) - #define errln(args...) if (time._debug_level >= ERROR) Serial.println(args) - #define info(args...) "" - #define infoln(args...) "" - #define debug(args...) "" - #define debugln(args...) "" -#elif defined(EZTIME_MAX_DEBUGLELEL_INFO) - #define err(args...) if (time._debug_level >= ERROR) Serial.print(args) - #define errln(args...) if (time._debug_level >= ERROR) Serial.println(args) - #define info(args...) if (time._debug_level >= INFO) Serial.print(args) - #define infoln(args...) if (time._debug_level >= INFO) Serial.println(args) - #define debug(args...) "" - #define debugln(args...) "" -#else // nothing specified compiles everything in. - #define err(args...) if (time._debug_level >= ERROR) Serial.print(args) - #define errln(args...) if (time._debug_level >= ERROR) Serial.println(args) - #define info(args...) if (time._debug_level >= INFO) Serial.print(args) - #define infoln(args...) if (time._debug_level >= INFO) Serial.println(args) - #define debug(args...) if (time._debug_level >= DEBUG) Serial.print(args) - #define debugln(args...) if (time._debug_level >= DEBUG) Serial.println(args) -#endif - //////////////////////// @@ -157,24 +129,24 @@ typedef struct { void (*function)(); } ezEvent_t; -#define MAX_EVENTS 8 +#define MAX_EVENTS 8 -#define TIME_NOW 0xFFFFFFFF -#define LAST_READ 0xFFFFFFFE +#define TIME_NOW (int32_t)0x7FFFFFFF // Two special-meaning time_t values ... +#define LAST_READ (int32_t)0x7FFFFFFE // (So yes, ezTime might malfunction two seconds before everything else...) -#define NTP_PACKET_SIZE 48 +#define NTP_PACKET_SIZE 48 #define NTP_LOCAL_TIME_PORT 2342 -#define NTP_SERVER "pool.ntp.org" -#define NTP_TIMEOUT 1500 // milliseconds -#define NTP_INTERVAL 600 // default update interval in seconds -#define NTP_RETRY 5 // Retry after this many seconds on failed NTP -#define NTP_STALE_AFTER 3600 // If update due for this many seconds, set timeStatus to timeNeedsSync +#define NTP_SERVER "pool.ntp.org" +#define NTP_TIMEOUT 1500 // milliseconds +#define NTP_INTERVAL 600 // default update interval in seconds +#define NTP_RETRY 5 // Retry after this many seconds on failed NTP +#define NTP_STALE_AFTER 3600 // If update due for this many seconds, set timeStatus to timeNeedsSync -#define TIMEZONEAPI_TIMEOUT 2000 // milliseconds +#define TIMEZONEAPI_TIMEOUT 2000 // milliseconds #define EEPROM_CACHE_LEN 50 #define MAX_CACHE_PAYLOAD ((EEPROM_CACHE_LEN - 3) / 3) * 4 + ( (EEPROM_CACHE_LEN - 3) % 3) // 2 bytes for len and date, then 4 to 3 (6-bit) compression on rest -#define MAX_CACHE_AGE_MONTHS 2 +#define MAX_CACHE_AGE_MONTHS 6 // Various date-time formats #define ATOM "Y-m-d\\TH:i:sP" @@ -189,80 +161,35 @@ typedef struct { #define RFC3339_EXT "Y-m-d\\TH:i:s.vP" #define RSS RFC822 #define W3C ATOM -#define ISO8601_YWD "X-\\Ww-N" // Note that ISO-8601 Year/Week/Day notation may be one year + or - one at beginning or end of year +#define ISO8601_YWD "X-\\WW-N" #define DEFAULT_TIMEFORMAT COOKIE - -// -// E Z t i m e c l a s s -// - -class EZtime { - - friend class Timezone; // Allow methods from Timezone class to access private methods of this class - - ////////// Error handing - public: - static ezError_t error(bool reset = false); // Returns ezError_t enumeration of last error - static String errorString(ezError_t err = LAST_ERROR); // Human-readable form of last error. - static void debugLevel(ezDebugLevel_t level); // Sets serial printing of debug info to specified ezDebugLevel_t enumeration - private: - static void error(ezError_t err); // Used to set an error - static String debugLevelString(ezDebugLevel_t level); // Human-readable form of debug level. - static ezError_t _last_error; - static ezDebugLevel_t _debug_level; - /////////// - - public: - EZtime(); - static timeStatus_t timeStatus(); - static void events(); - static void breakTime(time_t time, tmElements_t &tm); // break time_t into elements - static time_t makeTime(tmElements_t &tm); // convert time elements into time_t - static time_t makeTime(uint8_t hour, uint8_t minute, uint8_t second, uint8_t day, uint8_t month, uint16_t year); - static time_t makeOrdinalTime(uint8_t hour, uint8_t minute, uint8_t second, uint8_t ordinal, uint8_t wday, uint8_t month, uint16_t year); - static time_t compileTime(String compile_date = __DATE__, String compile_time = __TIME__); - static String monthString(uint8_t month); - static String dayString(uint8_t day); - static bool secondChanged(); - static bool minuteChanged(); - static void deleteEvent(uint8_t event_handle); - static void deleteEvent(void (*function)()); - - private: - static time_t now(bool update_last_read = true); - static ezEvent_t _events[MAX_EVENTS]; - static time_t _last_sync_time, _last_read_t; - static uint32_t _last_sync_millis; - static bool _ntp_enabled; - static uint16_t _last_read_ms; - static timeStatus_t _time_status; - static bool _initialised; - - #ifdef EZTIME_NETWORK_ENABLE - - public: - static bool queryNTP(String server, time_t &t, unsigned long &measured_at); // measured_at: millis() at measurement, t is converted to secs since 1970 - static void updateNTP(); - static void setServer(String ntp_server = NTP_SERVER); - static void setInterval(uint16_t seconds = 0); // 0 = no NTP updates - static bool waitForSync(uint16_t timeout = 0); // timeout in seconds - - private: - static uint16_t _ntp_interval; // in seconds - static String _ntp_server; - - #endif // EZTIME_NETWORK_ENABLE - - ////////// Free extras ... - public: - static String urlEncode(String str); // Does what you think it does - static String zeropad(uint32_t number, uint8_t length); // Returns number as string of given length, zero-padded on left if needed - ////////// - -}; - -extern EZtime time; // declares the "time" instance of the "EZtime" class +void breakTime(time_t time, tmElements_t &tm); +time_t compileTime(String compile_date = __DATE__, String compile_time = __TIME__); +String dayString(uint8_t day); +void debugLevel(ezDebugLevel_t level); +void deleteEvent(uint8_t event_handle); +void deleteEvent(void (*function)()); +ezError_t error(bool reset = false); +String errorString(ezError_t err = LAST_ERROR); +void events(); +time_t makeOrdinalTime(uint8_t hour, uint8_t minute, uint8_t second, uint8_t ordinal, uint8_t wday, uint8_t month, uint16_t year); +time_t makeTime(tmElements_t &tm); +time_t makeTime(uint8_t hour, uint8_t minute, uint8_t second, uint8_t day, uint8_t month, uint16_t year); +bool minuteChanged(); +String monthString(uint8_t month); +bool secondChanged(); +timeStatus_t timeStatus(); +String urlEncode(String str); +String zeropad(uint32_t number, uint8_t length); + +#ifdef EZTIME_NETWORK_ENABLE + bool queryNTP(String server, time_t &t, unsigned long &measured_at); + void setInterval(uint16_t seconds = 0); + void setServer(String ntp_server = NTP_SERVER); + void updateNTP(); + bool waitForSync(uint16_t timeout = 0); +#endif // @@ -273,33 +200,34 @@ class Timezone { public: Timezone(bool locked_to_UTC = false); - bool setPosix(String posix); - String getPosix(); - time_t tzTime(time_t t = TIME_NOW, ezLocalOrUTC_t local_or_utc = LOCAL_TIME); - time_t tzTime(time_t t, ezLocalOrUTC_t local_or_utc, String &tzname, bool &is_dst, int16_t &offset); - void setDefault(); - bool isDST(time_t t = TIME_NOW, ezLocalOrUTC_t local_or_utc = LOCAL_TIME); - String getTimezoneName(time_t t = TIME_NOW, ezLocalOrUTC_t local_or_utc = LOCAL_TIME); - int16_t getOffset(time_t t = TIME_NOW, ezLocalOrUTC_t local_or_utc = LOCAL_TIME); - time_t now(); - uint8_t setEvent(void (*function)(), time_t t = TIME_NOW, ezLocalOrUTC_t local_or_utc = LOCAL_TIME); - uint8_t setEvent(void (*function)(), const uint8_t hr, const uint8_t min, const uint8_t sec, const uint8_t day, const uint8_t mnth, uint16_t yr); - void setTime(time_t t, uint16_t ms = 0); - void setTime(const uint8_t hr, const uint8_t min, const uint8_t sec, const uint8_t day, const uint8_t mnth, uint16_t yr); String dateTime(String format = DEFAULT_TIMEFORMAT); String dateTime(time_t t, String format = DEFAULT_TIMEFORMAT); String dateTime(time_t t, ezLocalOrUTC_t local_or_utc, String format = DEFAULT_TIMEFORMAT); + uint8_t day(time_t t = TIME_NOW, ezLocalOrUTC_t local_or_utc = LOCAL_TIME); // 1-31 + uint16_t dayOfYear(time_t t = TIME_NOW, ezLocalOrUTC_t local_or_utc = LOCAL_TIME); // days from start of year, jan 1st = 0 + int16_t getOffset(time_t t = TIME_NOW, ezLocalOrUTC_t local_or_utc = LOCAL_TIME); + String getPosix(); + String getTimezoneName(time_t t = TIME_NOW, ezLocalOrUTC_t local_or_utc = LOCAL_TIME); uint8_t hour(time_t t = TIME_NOW, ezLocalOrUTC_t local_or_utc = LOCAL_TIME); // 0-23 + bool isDST(time_t t = TIME_NOW, ezLocalOrUTC_t local_or_utc = LOCAL_TIME); + String militaryTZ(time_t t = TIME_NOW, ezLocalOrUTC_t local_or_utc = LOCAL_TIME); uint8_t minute(time_t t = TIME_NOW, ezLocalOrUTC_t local_or_utc = LOCAL_TIME); // 0-59 + uint8_t month(time_t t = TIME_NOW, ezLocalOrUTC_t local_or_utc = LOCAL_TIME); // 1-12 + uint16_t ms(time_t t = TIME_NOW); // 0-999 + time_t now(); uint8_t second(time_t t = TIME_NOW, ezLocalOrUTC_t local_or_utc = LOCAL_TIME); // 0-59 - uint16_t ms(time_t t = TIME_NOW, ezLocalOrUTC_t local_or_utc = LOCAL_TIME); // 0-999 - uint8_t day(time_t t = TIME_NOW, ezLocalOrUTC_t local_or_utc = LOCAL_TIME); // 1-31 + void setDefault(); + uint8_t setEvent(void (*function)(), const uint8_t hr, const uint8_t min, const uint8_t sec, const uint8_t day, const uint8_t mnth, uint16_t yr); + uint8_t setEvent(void (*function)(), time_t t = TIME_NOW, ezLocalOrUTC_t local_or_utc = LOCAL_TIME); + bool setPosix(String posix); + void setTime(const uint8_t hr, const uint8_t min, const uint8_t sec, const uint8_t day, const uint8_t mnth, uint16_t yr); + void setTime(time_t t, uint16_t ms = 0); + time_t tzTime(time_t t = TIME_NOW, ezLocalOrUTC_t local_or_utc = LOCAL_TIME); + time_t tzTime(time_t t, ezLocalOrUTC_t local_or_utc, String &tzname, bool &is_dst, int16_t &offset); + uint8_t weekISO(time_t t = TIME_NOW, ezLocalOrUTC_t local_or_utc = LOCAL_TIME); // ISO-8601 week number (weeks starting on Monday) uint8_t weekday(time_t t = TIME_NOW, ezLocalOrUTC_t local_or_utc = LOCAL_TIME); // Day of the week (1-7), Sunday is day 1 - uint8_t month(time_t t = TIME_NOW, ezLocalOrUTC_t local_or_utc = LOCAL_TIME); // 1-12 uint16_t year(time_t t = TIME_NOW, ezLocalOrUTC_t local_or_utc = LOCAL_TIME); // four digit year - uint16_t dayOfYear(time_t t = TIME_NOW, ezLocalOrUTC_t local_or_utc = LOCAL_TIME); // days from start of year, jan 1st = 0 - uint8_t weekISO(time_t t = TIME_NOW, ezLocalOrUTC_t local_or_utc = LOCAL_TIME); // ISO-8601 week number (weeks starting on Monday) - uint16_t yearISO(time_t t = TIME_NOW, ezLocalOrUTC_t local_or_utc = LOCAL_TIME); // ISO-8601 year, can differ from actual year, plus or minus one + uint16_t yearISO(time_t t = TIME_NOW, ezLocalOrUTC_t local_or_utc = LOCAL_TIME); // ISO-8601 year, can differ from actual year, plus or minus one private: String _posix, _olsen; bool _locked_to_UTC; @@ -325,7 +253,7 @@ class Timezone { void clearCache(bool delete_section = false); private: bool setCache(); - bool writeCache(const String &str); + bool writeCache(String &str); bool readCache(String &olsen, String &posix, uint8_t &months_since_jan_2018); uint8_t _cache_month; #endif @@ -334,64 +262,77 @@ class Timezone { }; extern Timezone UTC; -extern Timezone& defaultTZ; - - - -#ifdef ARDUINO_TIMELIB_COMPATIBILITY - - /* Useful Constants */ - #define SECS_PER_MIN (60UL) - #define SECS_PER_HOUR (3600UL) - #define DAYS_PER_WEEK (7UL) - #define SECS_PER_WEEK (SECS_PER_DAY * DAYS_PER_WEEK) - #define SECS_PER_YEAR (SECS_PER_WEEK * 52UL) - #define SECS_YR_2000 (946684800UL) // the time at the start of y2k - - /* Useful Macros for getting elapsed time */ - #define numberOfSeconds(_time_) (_time_ % SECS_PER_MIN) - #define numberOfMinutes(_time_) ((_time_ / SECS_PER_MIN) % SECS_PER_MIN) - #define numberOfHours(_time_) (( _time_% SECS_PER_DAY) / SECS_PER_HOUR) - #define dayOfWeek(_time_) ((( _time_ / SECS_PER_DAY + 4) % DAYS_PER_WEEK)+1) // 1 = Sunday - #define elapsedDays(_time_) ( _time_ / SECS_PER_DAY) // this is number of days since Jan 1 1970 - #define elapsedSecsToday(_time_) (_time_ % SECS_PER_DAY) // the number of seconds since last midnight - // The following macros are used in calculating alarms and assume the clock is set to a date later than Jan 1 1971 - // Always set the correct time before settting alarms - #define previousMidnight(_time_) (( _time_ / SECS_PER_DAY) * SECS_PER_DAY) // time at the start of the given day - #define nextMidnight(_time_) ( previousMidnight(_time_) + SECS_PER_DAY ) // time at the end of the given day - #define elapsedSecsThisWeek(_time_) (elapsedSecsToday(_time_) + ((dayOfWeek(_time_)-1) * SECS_PER_DAY) ) // note that week starts on day 1 - #define previousSunday(_time_) (_time_ - elapsedSecsThisWeek(_time_)) // time at the start of the week for the given time - #define nextSunday(_time_) ( previousSunday(_time_)+SECS_PER_WEEK) // time at the end of the week for the given time - - /* Useful Macros for converting elapsed time to a time_t */ - #define minutesToTime_t ((M)) ( (M) * SECS_PER_MIN) - #define hoursToTime_t ((H)) ( (H) * SECS_PER_HOUR) - #define daysToTime_t ((D)) ( (D) * SECS_PER_DAY) // fixed on Jul 22 2011 - #define weeksToTime_t ((W)) ( (W) * SECS_PER_WEEK) - - time_t now(); - uint8_t second(time_t t /* = TIME_NOW */); - uint8_t minute(time_t t /* = TIME_NOW */); - uint8_t hour(time_t t /* = TIME_NOW */); - uint8_t day(time_t t /* = TIME_NOW */); - uint8_t weekday(time_t t /* = TIME_NOW */); - uint8_t month(time_t t /* = TIME_NOW */); - uint16_t year(time_t t /* = TIME_NOW */); - uint8_t hourFormat12(time_t t /* = TIME_NOW */); - bool isAM(time_t t /* = TIME_NOW */); - bool isPM(time_t t /* = TIME_NOW */); - String monthStr(const uint8_t month); - String monthShortStr(const uint8_t month); - String dayStr(const uint8_t month); - String dayShortStr(const uint8_t month); - void setTime(time_t t); - void setTime(const uint8_t hr, const uint8_t min, const uint8_t sec, const uint8_t day, const uint8_t month, const uint16_t yr); - void breakTime(time_t t, tmElements_t &tm); - time_t makeTime(tmElements_t &tm); - time_t makeTime(uint8_t hour, uint8_t minute, uint8_t second, uint8_t day, uint8_t month, int16_t year); - timeStatus_t timeStatus(); - -#endif //ARDUINO_TIMELIB_COMPATIBILITY +extern Timezone *defaultTZ; + + +// These bounce through to same-named methods in defaultTZ +String dateTime(String format = DEFAULT_TIMEFORMAT); +String dateTime(time_t t, String format = DEFAULT_TIMEFORMAT); +String dateTime(time_t t, ezLocalOrUTC_t local_or_utc, String format = DEFAULT_TIMEFORMAT); +uint8_t day(time_t t = TIME_NOW, ezLocalOrUTC_t local_or_utc = LOCAL_TIME); +uint16_t dayOfYear(time_t t = TIME_NOW, ezLocalOrUTC_t local_or_utc = LOCAL_TIME); +int16_t getOffset(time_t t = TIME_NOW, ezLocalOrUTC_t local_or_utc = LOCAL_TIME); +String getTimezoneName(time_t t = TIME_NOW, ezLocalOrUTC_t local_or_utc = LOCAL_TIME); +uint8_t hour(time_t t = TIME_NOW, ezLocalOrUTC_t local_or_utc = LOCAL_TIME); +uint8_t hourFormat12(time_t t = TIME_NOW, ezLocalOrUTC_t local_or_utc = LOCAL_TIME); +bool isAM(time_t t = TIME_NOW, ezLocalOrUTC_t local_or_utc = LOCAL_TIME); +bool isDST(time_t t = TIME_NOW, ezLocalOrUTC_t local_or_utc = LOCAL_TIME); +bool isPM(time_t t = TIME_NOW, ezLocalOrUTC_t local_or_utc = LOCAL_TIME); +String militaryTZ(time_t t = TIME_NOW, ezLocalOrUTC_t local_or_utc = LOCAL_TIME); +uint8_t minute(time_t t = TIME_NOW, ezLocalOrUTC_t local_or_utc = LOCAL_TIME); +uint8_t month(time_t t = TIME_NOW, ezLocalOrUTC_t local_or_utc = LOCAL_TIME); +uint16_t ms(time_t t = TIME_NOW); +time_t now(); +uint8_t second(time_t t = TIME_NOW, ezLocalOrUTC_t local_or_utc = LOCAL_TIME); +uint8_t setEvent(void (*function)(), const uint8_t hr, const uint8_t min, const uint8_t sec, const uint8_t day, const uint8_t mnth, uint16_t yr); +uint8_t setEvent(void (*function)(), time_t t = TIME_NOW, ezLocalOrUTC_t local_or_utc = LOCAL_TIME); +void setTime(const uint8_t hr, const uint8_t min, const uint8_t sec, const uint8_t day, const uint8_t month, const uint16_t yr); +void setTime(time_t t); +uint8_t weekISO(time_t t = TIME_NOW, ezLocalOrUTC_t local_or_utc = LOCAL_TIME); +uint8_t weekday(time_t t = TIME_NOW, ezLocalOrUTC_t local_or_utc = LOCAL_TIME); +uint16_t year(time_t t = TIME_NOW, ezLocalOrUTC_t local_or_utc = LOCAL_TIME); +uint16_t yearISO(time_t t = TIME_NOW, ezLocalOrUTC_t local_or_utc = LOCAL_TIME); + + + +// The following defines all copied from the original Time lib to keep existing code working + +/* Useful Constants */ +#define SECS_PER_MIN (60UL) +#define SECS_PER_HOUR (3600UL) +#define DAYS_PER_WEEK (7UL) +#define SECS_PER_WEEK (SECS_PER_DAY * DAYS_PER_WEEK) +#define SECS_PER_YEAR (SECS_PER_WEEK * 52UL) +#define SECS_YR_2000 (946684800UL) // the time at the start of y2k + +/* Useful Macros for getting elapsed time */ +#define numberOfSeconds(_time_) (_time_ % SECS_PER_MIN) +#define numberOfMinutes(_time_) ((_time_ / SECS_PER_MIN) % SECS_PER_MIN) +#define numberOfHours(_time_) (( _time_% SECS_PER_DAY) / SECS_PER_HOUR) +#define dayOfWeek(_time_) ((( _time_ / SECS_PER_DAY + 4) % DAYS_PER_WEEK)+1) // 1 = Sunday +#define elapsedDays(_time_) ( _time_ / SECS_PER_DAY) // this is number of days since Jan 1 1970 +#define elapsedSecsToday(_time_) (_time_ % SECS_PER_DAY) // the number of seconds since last midnight + +// The following macros are used in calculating alarms and assume the clock is set to a date later than Jan 1 1971 +// Always set the correct time before settting alarms +#define previousMidnight(_time_) (( _time_ / SECS_PER_DAY) * SECS_PER_DAY) // time at the start of the given day +#define nextMidnight(_time_) ( previousMidnight(_time_) + SECS_PER_DAY ) // time at the end of the given day +#define elapsedSecsThisWeek(_time_) (elapsedSecsToday(_time_) + ((dayOfWeek(_time_)-1) * SECS_PER_DAY) ) // note that week starts on day 1 +#define previousSunday(_time_) (_time_ - elapsedSecsThisWeek(_time_)) // time at the start of the week for the given time +#define nextSunday(_time_) ( previousSunday(_time_)+SECS_PER_WEEK) // time at the end of the week for the given time + +/* Useful Macros for converting elapsed time to a time_t */ +#define minutesToTime_t ((M)) ( (M) * SECS_PER_MIN) +#define hoursToTime_t ((H)) ( (H) * SECS_PER_HOUR) +#define daysToTime_t ((D)) ( (D) * SECS_PER_DAY) // fixed on Jul 22 2011 +#define weeksToTime_t ((W)) ( (W) * SECS_PER_WEEK) + +// Aliases to match original Time library +String monthStr(const uint8_t month); +String monthShortStr(const uint8_t month); +String dayStr(const uint8_t month); +String dayShortStr(const uint8_t month); + } // extern "C++" #endif // __cplusplus