From: oetiker Date: Tue, 15 Sep 2009 12:17:42 +0000 (+0000) Subject: initial X-Git-Url: https://git.tokkee.org/?a=commitdiff_plain;h=4fe3f5f4b248f97ecb00097328d501a68c267d02;p=rrdtool-all.git initial git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1909 a5681a0c-68f1-0310-ab6d-d61299d08faa --- diff --git a/tutorial/lisa2009/abstract-rrdexample.txt b/tutorial/lisa2009/abstract-rrdexample.txt new file mode 100644 index 00000000..6c2176d7 --- /dev/null +++ b/tutorial/lisa2009/abstract-rrdexample.txt @@ -0,0 +1,63 @@ +LISA 2008 Workshop + +RRDtool by Example +================== +A half-day workshop by Tobias Oetiker + +Abstract +-------- +Over the last few years RRDtool has become the standard method for handling +time-series data in the networking area. RRDtool takes care of all the work +related to data storage and presentation. Many users only access +RRDtool through some front-end application like Cacti or Cricket. + +In this half day workshop you will get eye to eye through many example +usages as they are demonstrated and explained live. + +Attendees are expected to have some scripting experience. + +Topics +------- +* RRDtool Overview + + * Rundown on Components of RRDtool + * Update on new functionality introduced in version 1.3 + +* The RRD Database Format + + * How RRDtool stores that data + * Interaction with the OS cache sub-system + * Linux tricks + * Fixing 'bad data' after the fact + +* How to setup an RRD performance test + +* RRD Graphing + + * Simple graphs and autoconfiguration + * Alternate scaling + * Working with transparency + * Creating gradients + * RPN magic + +* Putting it Together + + * Scripting interface + * The graphv, updatev, and info interfaces + +About the Speaker +----------------- + +Tobias Oetiker is an electrical engineer by education and a system +administrator by vocation. For ten years he has been working for the +Swiss Federal Institute of Technology in Zurich, providing students +and staff with a deluxe Unix workstation environment. In 2006 he +started his own company OETIKER+PARTNER AG, running Unix servers for +industry customers, improving his pet open source projects MRTG, +RRDtool, and SmokePing, and applying these tools to solve the customers' +problems. + +In November 2006, Tobias received the prestigious SAGE Outstanding +Achievement Award for his work on MRTG and RRDtool. + +Find out more about the Speaker on http://tobi.oetiker.ch diff --git a/tutorial/lisa2009/abstract-rrdtut.txt b/tutorial/lisa2009/abstract-rrdtut.txt new file mode 100644 index 00000000..008ac1f9 --- /dev/null +++ b/tutorial/lisa2009/abstract-rrdtut.txt @@ -0,0 +1,68 @@ +LISA 2008 Tutorial + +RRDtool as a Communication Tool +=============================== +A half-day tutorial by Tobias Oetiker + +Abstract +-------- +Over the last few years RRDtool has become the standard method for handling +time-series data in the networking area. RRDtool takes care of all the work +related to data storage and presentation. Many users only access RRDtool +through some front-end application like Cacti or Cricket. + +In this half-day tutorial you will learn how RRDtool works from a +programmers point of view, and how you can use it to write your own custom +monitoring applications. An emphasis will be put on presentation aspects. +The best data is worth only as much as your bosses and customers understand +and appreciate the graphs you create with it. + +Attendees are expected to have some scripting experience. + +Topics +------- +* RRDtool Overview + + * Problems to be solved + * Round Robin Database setup + * Data acquisition + * Graphing + +* Programming with RRDtool + + * The command line interface + * The pipe interface + * The Perl api + +* In-depth Graphing + + * Concepts + * Simple graphs + * The joy of RPN + * Graph disassembly + * How to make graphs convey their/your message + +* Scaling RRDtool + + * The RRD file format + * Optimizing OS interaction + * Tweaking Linux for speed + +* Latest Developments + +About the Speaker +----------------- + +Tobias Oetiker is an electrical engineer by education and a system +administrator by vocation. For ten years he has been working for the +Swiss Federal Institute of Technology in Zurich, providing students +and staff with a deluxe Unix workstation environment. In 2006 he +started his own company OETIKER+PARTNER AG, running Unix servers for +industry customers, improving his pet open source projects MRTG, +RRDtool, and SmokePing, and applying these tools to solve the customers' +problems. + +In November 2006, Tobias received the prestigious SAGE Outstanding +Achievement Award for his work on MRTG and RRDtool. + +Find out more about the Speaker on http://tobi.oetiker.ch diff --git a/tutorial/lisa2009/rrd-by-example/beamercolorthemetobi.sty b/tutorial/lisa2009/rrd-by-example/beamercolorthemetobi.sty new file mode 100644 index 00000000..eadaa5fe --- /dev/null +++ b/tutorial/lisa2009/rrd-by-example/beamercolorthemetobi.sty @@ -0,0 +1,50 @@ +% Copyright 2007 by Till Tantau +% +% This file may be distributed and/or modified +% +% 1. under the LaTeX Project Public License and/or +% 2. under the GNU Public License. +% +% See the file doc/licenses/LICENSE for more details. + +\ProvidesPackageRCS $Header: /cvsroot/latex-beamer/latex-beamer/themes/color/beamercolorthemetobi.sty,v 1.9 2007/01/28 20:48:24 tantau Exp $ + + +\mode + +\definecolor{craneorange}{RGB}{255,252,248} +\definecolor{craneblue}{RGB}{62,28,0} + +\setbeamercolor{structure}{fg=craneblue} + +\setbeamercolor{palette primary}{fg=craneblue,bg=craneorange!70} +\setbeamercolor{palette secondary}{fg=craneblue,bg=craneorange!80} +\setbeamercolor{palette tertiary}{fg=craneblue,bg=craneorange!90} +\setbeamercolor{palette quaternary}{fg=craneblue,bg=craneorange} + +\setbeamercolor{titlelike}{fg=craneblue} + +\setbeamercolor{block title}{fg=craneblue,bg=craneorange} +\setbeamercolor{block title alerted}{use=alerted text,fg=craneblue,bg=alerted text.fg!75!bg} +\setbeamercolor{block title example}{use=example text,fg=craneblue,bg=example text.fg!75!bg} + +\setbeamercolor{block body}{parent=normal text,use=block title,bg=block title.bg!25!bg} +\setbeamercolor{block body alerted}{parent=normal text,use=block title alerted,bg=block title alerted.bg!25!bg} +\setbeamercolor{block body example}{parent=normal text,use=block title example,bg=block title example.bg!25!bg} + +\setbeamercolor{sidebar}{bg=craneorange!70} + +\setbeamercolor{palette sidebar primary}{fg=craneblue} +\setbeamercolor{palette sidebar secondary}{fg=craneblue!75} +\setbeamercolor{palette sidebar tertiary}{fg=craneblue!75} +\setbeamercolor{palette sidebar quaternary}{fg=craneblue} + +\setbeamercolor*{separation line}{} +\setbeamercolor*{fine separation line}{} + +\setbeamercolor{normal text}{bg=craneblue!1,fg=craneblue} +\setbeamercolor{example text}{bg=craneblue!10} +\setbeamercolor{frametitle}{fg=craneblue!50} + +\mode + diff --git a/tutorial/lisa2009/rrd-by-example/body.tex b/tutorial/lisa2009/rrd-by-example/body.tex new file mode 100644 index 00000000..461a7d5c --- /dev/null +++ b/tutorial/lisa2009/rrd-by-example/body.tex @@ -0,0 +1,847 @@ +\mode +{ + \usetheme{default} % no fancy navigation or anything ... + \usecolortheme{tobi} + \usefonttheme{serif} + \usepackage{lmodern} + \newcommand{\addgraph}[1]{\includegraphics[width=\textwidth]{ex/#1}} + \setbeamercovered{transparent=25} +} +\mode
+{ + \usepackage{url} + \usepackage{graphicx} + \usepackage[colorlinks,hyperindex,plainpages=false]{hyperref} + \setlength{\parskip}{1ex plus 0.5ex minus 0.2ex} + \setlength{\parindent}{0pt} + \usepackage{times} + \newcommand{\addgraph}[1]{\begin{center}\framebox{\includegraphics[width=0.9\textwidth]{ex/#1}}\end{center}} + \addtolength{\voffset}{-2.5cm} + \addtolength{\textheight}{4cm} +} +\usepackage{alltt} +\usepackage{listings} +\usepackage{svgcolor} +\usepackage[english]{babel} +\usepackage[latin1]{inputenc} +% or whatever + +\usepackage[T1]{fontenc} +% Or whatever. Note that the encoding and the font should match. If T1 +% does not look nice, try deleting the line with the fontenc. + +\title +{RRDtool by Example} + +\author +{Tobias Oetiker} + +\institute +{OETIKER+PARTNER AG} + +\date[LISA 2008] % (optional, should be abbreviation of conference name) +{22nd Large Installation System Administration Conference} + +\mode{\subject{RRDtool tutorial based on example use}} + +\mode{ + \lstset{% + language=Perl,% + numbers=left,% + basicstyle=\ttfamily\footnotesize\color{black},% + keywordstyle=\color{darkgreen},% +% identifyerstyle=\color{brown},% + commentstyle=\color{mediumpurple},% + stringstyle=\color{dimgray}, + numberstyle=\ttfamily\scriptsize\color{darkgray}, + showstringspaces=false + } +} +\mode
{ + \lstset{% + language=Perl,% + numbers=left,% + basicstyle=\ttfamily\footnotesize,% + keywordstyle=\bfseries,% + numberstyle=\ttfamily\scriptsize, +% identifyerstyle=\color{brown},% + commentstyle=\itshape,% + stringstyle=\color{black}, + showstringspaces=false + } +} + +\begin{document} + +\mode
{\maketitle} + +\begin{frame} + \titlepage +\end{frame} + +\mode{\tableofcontents} + +\section{A different kind of Database} + +\begin{frame}{creating a simple rrd} +\lstinputlisting[language=bash,firstline=0,lastline=11]{ex/create-first.sh} +One Datasource, 4 Round Robin Archives +\end{frame} + +\begin{frame}{feeding data} +\lstinputlisting[language=bash,firstline=13,lastline=21]{ex/create-first.sh} +Feed in some data. One or several updates at once. +\end{frame} + +\begin{frame}[allowframebreaks]{inside the database} +\lstinputlisting[language=xml,basicstyle=\ttfamily\scriptsize]{ex/create-first.xml} +\end{frame} + +\mode
{ +The xml dump of the rrd file shows an approximation of the on-disk +structure of the database. The rra database sections are re-ordered, so that +they are in chronological order with the oldest at the top. Also the +cdp sections are stored right after the header. The idea behind this +design is that data that get written on every update is as close +together as possible.} + +\begin{frame}{rrd features} +\begin{itemize} +\item optimized for time-series data +\item fixed size rotating data store +\item constant on-disk size +\item no maintenance +\item on the fly consolidation +\end{itemize} +\end{frame} + +\begin{frame}[fragile]{on-disk structure} +\begin{alltt} ++-------------------------------+ +| Static Header | \textrm{RRD cookie, DB cfg} +|-------------------------------|\pause +: Data Source (DS) Definitions : +|-------------------------------|\pause +: RR Archive (RRA) Definitions : +|===============================|\pause +| Live Head | \textrm{last update time} +|-------------------------------|\pause +: PDP Prep per DS : \textrm{last value for diff} +|-------------------------------|\pause +: CDP Prep per RRA and DS : \textrm{intermediate storage} +|-------------------------------|\pause +: RRA Pointers : +|===============================|\pause +: Round Robin Archives (RRA) : ++-------------------------------+ +\end{alltt} +\end{frame} + +\begin{frame}{irregular data arrival intervals} +\lstinputlisting[language=bash,lastline=19]{ex/update-real.sh} +\end{frame} + +\mode
{To try things out lets assume that data arrives at + irregular intervals. This is counter data. By synchronizing the + data values with the arrival time we should get a constant rate + stored in the database.} + +\begin{frame}{database after the irregular updates} +\lstinputlisting[language=bash,firstline=20]{ex/update-real.sh} +\lstinputlisting[language=bash]{ex/update-real.txt} + +\begin{itemize} +\item rrdtool re-binning at work +\item major difference to a normal db +\item all bins contain 1.0 +\item the time is the 'end-time' of the bin. +\end{itemize} +\end{frame} + +\mode
{\newpage} +\begin{frame}{optimizing your rrds} +\begin{itemize} +\item update of multi DS RRD is cheep +\item single update interval per RRD +\item RRD modification is expensive +\item RRD size and update performance are independent +\item RRA complexity affects update performance +\end{itemize} +\end{frame} + +\mode
{As long as your system is small (a few hundred RRDs) + you should optimize for convenience. Only keep DSes together + in one RRD that are tightly bound. For everything else + create separate RRDs.} + +\mode
{\newpage} + +\begin{frame}{fetching data} +fetch is for reading data from an rrd +\lstinputlisting[language=bash,firstline=8,lastline=9]{ex/catch-fetch.sh} +\begin{itemize} +\item one RRA with two 300s entries +\item one RRA with three 600s entries +\end{itemize} +\end{frame} + +\begin{frame}[fragile]{playing catch with fetch} +first pull 300 seconds +\begin{verbatim} +> rrdtool fetch x.rrd -r 300 \ + -s 1200000600 -e 1200000900 AVERAGE + +1200000900: 4.0000000000e+01 +1200001200: 5.0000000000e+01 +\end{verbatim} + +then pull 900 seconds +\begin{verbatim} +> rrdtool fetch x.rrd -r300 \ + -s 1200000000 -e 1200000900 AVERAGE + +1200000600: 2.5000000000e+01 +1200001200: 4.5000000000e+01 +\end{verbatim} +\end{frame} + +\begin{frame}{fetch recap} +\begin{itemize} +\item looking for complete coverage +\item resolution is only a suggestion +\item time stamp in output marks the END of the period +\item end-time differences caused problems +\item since 1.3, only the start-time is relevant for coverage +\item outside the rra everything is NaN +\end{itemize} +\end{frame} + +\begin{frame}{the size of an rrd - code} +\lstinputlisting{ex/rrd-size.pl} +\end{frame} + +\mode
{\newpage} + +\begin{frame}{the size of an rrd - result} +\lstinputlisting{ex/rrd-size.txt} +\begin{itemize} +\item overhead is minimal +\item 8 byte per double +\item \ldots per datasource +\item \ldots per RRA +\item \ldots per RRA row +\end{itemize} +\end{frame} + +\mode
{The rrd format is highly efficient at storing non + sparse data. The overhead for an extra RRA or DS is normally a few + bytes on top of the 8 byte per double.} + +\mode
{\newpage} + +\section{Graphing} +\begin{frame}[fragile]{rrdgraph syntax 101} +for graph command syntax, there are two basic rules:\pause +\begin{enumerate} +\item \texttt{-{}-options} start with a double dash\pause +\item graphing instructions start with a letter +\end{enumerate} + +\pause +\begin{center} +\renewcommand{\tabcolsep}{0.4cm} +\renewcommand{\arraystretch}{2} + +\begin{tabular}{|l|}\hline +\begin{minipage}[t]{0.7\textwidth} +\begin{alltt} +rrdtool graph \textit{output} + DEF:var=\textit{rrd}:\textit{DS}:\textit{AVARAGE} + LINE:var#\textit{hex-rgb-color}:Comment + +\end{alltt} +\end{minipage}\\\hline +\end{tabular} +\end{center} + +\texttt{DEF} and \texttt{LINE} are \emph{graphing instructions}. +\end{frame} + +\mode
{The rrd graph command is the most versatile of all rrdtool + commands. It comes with its own little language, optimized for + drawing graphs. There are two kinds of arguments. The options + which start with a double-dash and the graphing instructions that + start with an uppercase letter.} + +\begin{frame}{normal line} +\addgraph{LINE} +\end{frame} + +\begin{frame}{lower limit} +\addgraph{LINE-lower} +\end{frame} + +\mode
{Unless you are a banker and are you drawing stock diagrams, + make sure your graph displays the zero-y-value. Otherwise it is + pretty difficult to judge the meaning of the graph since perspective + is limited to the numbers on the y-axis.} + +\begin{frame}{slope mode} +\addgraph{LINE-slope} +\end{frame} + +\mode
{RRD graphs are pretty blocky. This is on purpose, since + the data is blocky too. The slope mode is a little concession. It + tilts the vertical connections between the 'blocks' by one pixel.} + +\begin{frame}{anti-anti-aliasing: graph} +\addgraph{LINE-graph-mono} +\end{frame} + +\begin{frame}{anti-anti-aliasing: font} +\addgraph{LINE-font-mono} +\end{frame} + +\mode
{\newpage} +\begin{frame}{line width} +\addgraph{LINE-width} +\end{frame} + +\begin{frame}{dashed line} +\addgraph{LINE-dash} +\end{frame} + +\mode
{The numbers are an ON-OFF-ON-OFF-\ldots pattern. The + \texttt{dash-offset} property lets you shift the dashing of the line + to the right.} + +\begin{frame}{DEF with :step} +\addgraph{DEF-step} +\end{frame} + + +\begin{frame}{DEF with :start} +\addgraph{DEF-start} +\end{frame} +\mode
{\newpage} + +\begin{frame}{DEF with :reduce} +\addgraph{DEF-reduce} +\end{frame} + +\begin{frame}{AREA simple} +\addgraph{AREA-simple} +\end{frame} + +\mode
{\newpage} +\begin{frame}{two AREAs} +\addgraph{AREA-two} +\end{frame} + +\begin{frame}{transparent AREA} +\addgraph{AREA-trans} +\end{frame} + +\mode
{RRDtool creates real alpha transparency. You can set + the whole graph to be transparent by setting the + graph CANVAS and BACKGROUND colors to transparent.} + +\mode
{\newpage} +\begin{frame}{stacked AREA} +\addgraph{AREA-stack} +\end{frame} + +\mode
{\newpage} + +\begin{frame}{time shift} +\addgraph{SHIFT-simple} +\end{frame} + +\begin{frame}{shifting with extra data} +\addgraph{SHIFT-startdef} +\end{frame} + +\mode
{A normal \texttt{DEF} line requests exactly as much data as it +requires for drawing the graph. If you \texttt{SHIFT} the data, you +may want to adjust the data fetched accordingly.} + +\mode
{\newpage} +\section{Revers Polish Notation (RPN) Math} + +\mode
{RRDtool lets you apply math operations to the data + prior to showing it to the user. It uses RPN math for this. If you + ever owned a classic HP calculator, you may still remember how RPN + math works. For all the others there is a little example below, + that shows how to do a little addition in RPN.} + +\begin{frame}[fragile]{RPN basics: Step 0} +$15+23=38$ +\begin{alltt} + 1: NAN + 2: NAN + 3: NAN +\end{alltt} +\end{frame} +\begin{frame}[fragile]{RPN basics: Step 1} +$\mathbf{15}+23=38$ +\begin{alltt} +[15] 1: \textbf{15} + 2: NAN + 3: NAN +\end{alltt} +\end{frame} +\begin{frame}[fragile]{RPN basics: Step 2} +$15+\mathbf{23}=38$ +\begin{alltt} +[23] 1: \textbf{23} + 2: 15 + 3: NAN +\end{alltt} +\end{frame} +\begin{frame}[fragile]{RPN basics: Step 3} +$15\mathbf{+}23=38$ +\begin{alltt} +[+] 1: \textbf{38} + 2: NAN + 3: NAN +\end{alltt} +\end{frame} + +\newpage + +\begin{frame}{math in the graph (+)} +\addgraph{RPN-simple} +\end{frame} + +\mode
{A simple addition. We add a fixed value to a data + source. Note that at least one data source must appear inside a CDEF + expression. The input to a CDEF expression can come from another + CDEF expression.} + +\begin{frame}{simple gradient} +\addgraph{RPN-grad-a} +\end{frame} + +\begin{frame}{the MAX function} +\addgraph{RPN-max} +\end{frame} + +\mode
{The MAX function operates on two values. In this example + the input comes from two different data sources.} + +\begin{frame}{the LIMIT function} +\addgraph{RPN-limit} +\end{frame} + +\mode
{The \texttt{LIMIT} function will return UNKNOWN as soon + as the input value is outside the given range. UNKNOWN data does not + get drawn.} + +\begin{frame}{the TREND function} +\addgraph{RPN-trend} +\end{frame} + +\mode
{If a data source varies massively, the TREND function + lets you smooth away by building a moving average. By calculating + the average, the output gets shifted by the length of the TREND + calculation.} + +\begin{frame}{the TREND with early start} +\addgraph{RPN-trend-start} +\end{frame} + +\mode
{In the previous graph there was a bit of data missing + at the left border of the graph. This was because rrdgraph loads + exactly the amount of data that is required in the graph (yes same + story as before). By loading more data, we can provide the TREND + function with enough input, so that it can calculate the first few + pixels as well.} + +\begin{frame}{the TREND and SHIFT} +\addgraph{RPN-trend-shift} +\end{frame} + +\mode
{Another interesting option is to SHIFT the result of + the TREND calculation back in time, so that it matches with the + source data. This allows us to see more easily when there are + 'outliners'} + +\mode
{\newpage} + + +\begin{frame}{the IF function} +\addgraph{RPN-if} +\end{frame} + +\mode
{The IF function requires three items on the stack. It + turns \texttt{a,b,c,IF} into \texttt{if a then b else c}. There is a + bunch of operators that go along with the \texttt{IF}: \texttt{LT} + less, \texttt{LE} - less or equal, \texttt{EQ} - equal, \texttt{NE} + not equal, \texttt{GE} - greater or equal, \texttt{GT} - greater.} + +\begin{frame}{horizontal gradient} +\addgraph{RPN-grad-b} +\end{frame} + + +\begin{frame}{about invisibility} +\addgraph{RPN-UNKN} +\end{frame} + +\mode
{Unknown values are not drawn on the graph. Here we + use trick to only show the largest values.} + + +\begin{frame}{positional drawing count} +\addgraph{RPN-count} +\end{frame} + +\mode
{If you are into bar charts, you might fake them with + this trick. COUNT, counts the values of the data set. We use this, + together with the modulo operator to suppress the drawing of every + third entry.} + +\begin{frame}{access the previous value} +\addgraph{RPN-prev} +\end{frame} + +\begin{frame}{positional drawing time} +\addgraph{RPN-time} +\end{frame} + +\newpage +\begin{frame}{positional drawing time-shifting} +\addgraph{RPN-time-minus} +\end{frame} + +\mode
{There is also a function for accessing the Unix time + (seconds since 1970) associated with the graph data. With it, you + can make your stripes a fixed number of seconds wide.} + +\begin{frame}{time and resolution issues} +\addgraph{RPN-time-odd} +\end{frame} + +\mode
{\newpage} + +\mode
{Whenever RRDtool graph has to do math with data sets + that come in different step sizes, it first to adjust the step sizes + so that they match. To do this, it finds the greatest common divisor + and uses it as the new step size.} + +\begin{frame}[fragile]{CDEF internals} +\begin{itemize} +\item data may come in different resolutions +\item all items in a CDEF must have the same resolution +\item resolution is expanded to greatest common devisor (gcd) +\item example: gcd(6,9) = 3, gcd(1,6) = 1 +\end{itemize} + +trick: an rrd with one a second step. +\begin{alltt} +rrdtool create one.rrd --step=1 + DS:one:GAUGE:2:U:U + RRA:AVERAGE:0.5:1:1 +\end{alltt} +\end{frame} + +\begin{frame}{step=1 trick: high resolution cdef} +\addgraph{RPN-time-odd-hires} +\end{frame} + +\mode
{By introducing this special rrd with a ``one second + step'' the greatest common divisor (gcd) becomes one.} + +\section{Consolidation functions} + +\begin{frame}{finding the average} +\addgraph{VDEF-average} +\end{frame} + +\begin{frame}{calculating min and max} +\addgraph{VDEF-minmax} +\end{frame} + + +\mode
{\newpage} + +\begin{frame}[fragile]{min max code example} +\begin{alltt} +LINE:a#456:a +VDEF:max=a,MAXIMUM +LINE:max#123 +VRULE:max#123:maximum +GPRINT:max:%.1lf +GPRINT:max:%H\(\backslash\):%M\textbf{:strftime} +\end{alltt} +A VDEF result has a value and a time assigned. +\end{frame} + +\begin{frame}{Least Squares Line (y=x*m+b)} +\addgraph{VDEF-lsl} +\end{frame} + + +\mode
{\newpage} +\section{Holt Winters Aberrant Behaviour Detection} + +\begin{frame}{about alert generation} +\begin{itemize} +\item when something unexpected happens send an alert\pause +\item fixed thresholds are too wide a net\pause +\item moving averages weigh all data equal\pause +\item holt winters can predict the future\pause +\item and no one considers himself clever enough to use it +\end{itemize} +\end{frame} + +\begin{frame}{rrd - holt winters assumptions} +\begin{itemize} +\item data is periodic in nature +\item data has continuity +\item data continuity is periodic +\item recent data is more important +\end{itemize} +\end{frame} + +\begin{frame}{holt winters aberrant behavior} +\begin{itemize} +\item prediction of future value and confidence band +\item confidence band is like a standard deviation +\item real value compared to predicted value +/- confidence band +\end{itemize} +\end{frame} + +\mode
{With holt winters RRDtool will calculate a prediction + and a confidence band (think of it as a standard deviation) for the + current value. It will then compare the prediction with the + actual value. If the actual value falls outside the confidence band + of the predicted value (or some multiple of it), then a confidence + band violation is registered. If multiple violations are registered + within a configurable interval, RRDtool logs a failure.} + +\begin{frame}{holt winters configuration} +\begin{itemize} +\item HWPREDICT for starters +\item tweaking required +\item know the knobs to turn +\item use real data to test +\item FAILURES very short +\item \texttt{rrdtool tune} and \texttt{resize} +\end{itemize} +\end{frame} + +\mode
{ +\begin{itemize} +\item Keep it simple, go for HWPREDICT only when you start using + holt winters in RRDtool. +\item Every data set is different, tweaking is required. +\item Know which knobs to turn. +\item Use real data when experimenting. +\item Use \texttt{rrdtool tune} and \texttt{rrdtool resize} to tweak settings. +\item The FAILURES RRA is short! +\end{itemize} +} + +\begin{frame}{holt winters parameters} +\texttt{RRA:HWPREDICT:}\emph{rows}\texttt{:}\emph{alpha}\texttt{:}\emph{beta}\texttt{:}\emph{period} + +\begin{description} +\item[\emph{alpha}:] adaption rate of the baseline (1 fast, 0 slow) +\item[\emph{beta}:] adaption rate of the slope (1 fast, 0 slow) +\item[\emph{period}:] how many steps in a period (use 1 to disable) +\item[\emph{gamma}:] seasonal adaption rate of the baseline\\(alpha by + default) +\item[\emph{dev\_gamma}:] seasonal adaption rate of the confidence + band\\ + (gamma by default) +\end{description} + +the gamma and confidence band are tunable with \texttt{rrdtool tune} +\end{frame} + +\mode
{ +Reading \href{http://cricket.sourceforge.net/aberrant/lisa2000_paper.pdf}{Brutlag's original paper} +I wrote down the formulas he uses for calculating holt winters. This +helped me quite a lot in understanding the relationships between +alpha, beta, gamma and delta.} + +\begin{frame}[fragile]{the rrdtool holt winters formula} +\begin{small} +\begin{alltt} +a - baseline (RRA CDP Parameter) +b - slope (RRA CDP Parameter) +c - seasonal (SEASONAL RRA) +d - deviation (DEVSEASONAL RRA) +pred - predicted value +real - real value\pause + +pred\{next\} = a\{now\} + b\{now\} + c\{next_prev_period\}\pause + +a\{now\} = alpha * (real\{now\} - c\{now_prev_period\}) + + (1-alpha) * ( a\{prev\} + b\{prev\})\pause +b\{now\} = beta * (a\{now\} - a\{prev\}) + + (1-beta) * b_prev\pause +c\{now\} = gamma * (real\{now\} - a\{now\}) + + (1-gamma) * c\{now_prev_period\}\pause +d\{now\} = dev_gamma * abs(real\{now\} - pred\{now\}) + + (1-dev_gamma) * d\{now_prev_period\}\pause + +\end{alltt} +\end{small} +\end{frame} + +% must be formatted like that +% to break gobbling mode! +%\mode +% + +\begin{frame}{hw demo: the test data} +\addgraph{HW-input} + +traffic at a peering point +\end{frame} + +\begin{frame}[fragile]{drawing a hw graph} +\begin{lstlisting}[language=xml] +DEF:in=hw.rrd:in:AVERAGE +DEF:pred=hw.rrd:in:HWPREDICT +DEF:conf=hw.rrd:in:DEVPREDICT +DEF:fail=hw.rrd:in:FAILURES +TICK:fail#ff8:1:Failures +CDEF:lowconf=pred,conf,2,*,- +LINE1:lowconf +CDEF:confwidth=conf,4,* +AREA:confwidth#cfc:Band:STACK +LINE0.1:0#3a1::STACK +LINE0.1:lowconf#3a1 +LINE1:in#c00:InOctets +LINE1:pred#0a0:Prediction +\end{lstlisting} +\end{frame} + +\mode
{For starters we set the period to 1. This disables HW's + ability to adjust to periodic behavior in the data but it lets us + better observe the effects of the different parameter settings since + the adjustment period is much shorter.} + +\begin{frame}{hw demo: alpha} +\addgraph{HW-p1-a0_5-b0_001}\\ +\addgraph{HW-p1-a0_1-b0_001} +\end{frame} + +\mode
{The smaller the alpha the slower the adaption. As the + prediction is now generally off by quite a bit, this causes the + confidence band to grow as well.} + +\mode
{\newpage} + +\begin{frame}{hw demo: beta} +\addgraph{HW-p1-a0_1-b0_001}\\ +\addgraph{HW-p1-a0_1-b0_1} +\end{frame} + +\mode
{The larger the beta the `heavier' the prediction + becomes.} + +\begin{frame}{hw demo: period} +\addgraph{HW-p1-a0_5-b0_001}\\ +\addgraph{HW-p48-a0_5-b0_001} +\end{frame} + +\begin{frame}{hw demo: tuning} +\addgraph{HW-p48-a0_5-b0_001}\\ +\addgraph{HW-p48-a0_2-b0_001} +\end{frame} + +\begin{frame}{hw demo: tuning II} +\addgraph{HW-p48-a0_2-b0_001}\\ +\addgraph{HW-p48-a0_03-b0_001} +\end{frame} + +\begin{frame}{hw demo: tuning III} +\addgraph{HW-p48-a0_03-b0_001}\\ +\addgraph{HW-p48-a0_03-b0_1} +\end{frame} + +\newpage + +\section{The *v Interfaces} + +\begin{frame}{graphv script} +\lstinputlisting{ex/v-interfaces.pl} +\end{frame} + +\begin{frame}{graphv output} +\lstinputlisting{ex/v-interfaces.txt} +\end{frame} + +\mode
{The image key only shows up when the graph file name is '-'.} + +\begin{frame}{v-interfaces} +\begin{itemize} +\item rrdtool info +\item rrdtool update\textbf{v} +\item rrdtool graph\textbf{v} +\end{itemize} +\end{frame} + +\mode
{Using the output of updatev is much more efficient than +re-reading the rrd file after running normal update against them.} + +\newpage +\section{Real Live Example} + +\mode
{The following example shows how to create a simple + traffic grapher with a shell script for data acquisition, and an + rrdcgi script to draw the graphs.} + +\begin{frame} +\includegraphics[width=\textwidth]{traffic/codewalk} +\end{frame} + +\begin{frame}[allowframebreaks]{data acquisition} +\lstinputlisting[language=bash]{traffic/ifbyteget.sh} +\end{frame} + +\mode
{This little bash script polls the network traffic + counter from the linux proc tree and reformats it so that it can be + fed to rrdtool.} + +\begin{frame}[allowframebreaks]{rrdcgi: scripting for the poor} +\lstinputlisting[language=xml]{traffic/index.cgi} +\end{frame} + +\begin{frame}[allowframebreaks]{rrdcgi: include file function} +\lstinputlisting[language=xml]{traffic/graph.inc} +\end{frame} + +\mode
{RRDtool's rrdcgi is a very simple scripting engine, that can pick + up pseudo xml elements from an html file and execute the + coresponding rrdtool commands. In this example we use environment + variables and an include file to save us from typing in the same + graph definition over and over again.} + +\mode{ +\begin{frame} +\begin{center} +\Huge ? +\end{center} +\end{frame} +\begin{frame} +\begin{center} +Tobi Oetiker +\end{center} +\end{frame} +} + +\mode
{ +\vspace{\stretch{1}} +Tobias Oetiker +} +\end{document} +%%% Local Variables: +%%% TeX-master: "presentation.tex" +%%% mode: flyspell +%%% TeX-PDF-mode: t +%%% End: diff --git a/tutorial/lisa2009/rrd-by-example/ex/biggraph.pl b/tutorial/lisa2009/rrd-by-example/ex/biggraph.pl new file mode 100755 index 00000000..f750083d --- /dev/null +++ b/tutorial/lisa2009/rrd-by-example/ex/biggraph.pl @@ -0,0 +1,51 @@ +#!/usr/bin/perl +#$ENV{PATH}='/scratch/rrd4/bin'; +use Math::BigInt; +$ENV{PATH}=$ENV{HOME}.'/checkouts/rrdtool/branches/1.3/program/src:'.$ENV{PATH}; +my $R=rrdtool; +my $w=320 ; +my $h=200 ; +my $start = 1199999700; +if (not -f 'b.rrd'){ + system $R,'create','b.rrd', + '--step' => 300, + '--start' => ($start-1), + 'DS:a:COUNTER:600:U:U', + 'RRA:AVERAGE:0.4:1:2100'; + + my @updates; + my $count = Math::BigInt->new(0); + my $add = Math::BigInt->new('70000000000000') ; + for (my $i = 1; $i < 100;$i++){ + $count = $count + $add * Math::BigInt->new(''.int(rand(10))); + print "$count\n"; + push @updates, ($i*300+$start).':'.$count; + } + system $R,'update','b.rrd',@updates; +} + +sub rg { + my $file = shift; + print STDERR $file,"\t"; + if (-f $file){ + print STDERR " skip\n"; + return; + } + my @G = ( '--start' => $start+3600, + '--end' => $start + 100 * 280, +# '--full-size-mode', + '--color=BACK#ffff', + '--color=CANVAS#ffff', + '--color=SHADEA#ffff', + '--color=SHADEB#ffff', + '--lower-limit' => 0, + '--pango-markup', + '--height' => $h, '--width' => $w, + '--imgformat' => 'PDF', + 'DEF:a=b.rrd:a:AVERAGE'); + system $R, 'graph', $file, @G, @_; +} + +rg 'bigLINE.pdf', + '--lower-limit' => 1000, + 'LINE:a#11a03b:DEF\:a=x.rrd\:a\:AVERAGE', diff --git a/tutorial/lisa2009/rrd-by-example/ex/catch-fetch.sh b/tutorial/lisa2009/rrd-by-example/ex/catch-fetch.sh new file mode 100755 index 00000000..5af50f1f --- /dev/null +++ b/tutorial/lisa2009/rrd-by-example/ex/catch-fetch.sh @@ -0,0 +1,28 @@ +#!/bin/sh +PATH=/scratch/rrd4/bin:$PATH +R=rrdtool +$R create x.rrd \ + --step=300 \ + --start=1199999699 \ + DS:temperature:GAUGE:600:-40:100 \ + RRA:AVERAGE:0.5:1:2 \ + RRA:AVERAGE:0.5:2:3 + +#!/bin/sh +R=rrdtool +u(){ + $R update x.rrd $1 +} + +u 1199999700:00 +u 1200000000:10 +u 1200000300:20 +u 1200000600:30 +u 1200000900:40 +u 1200001200:50 + +set -x + +$R fetch x.rrd -r300 -s1200000000 -e1200000900 AVERAGE +$R fetch x.rrd -r300 -s1200000600 -e1200000900 AVERAGE + diff --git a/tutorial/lisa2009/rrd-by-example/ex/create-first.sh b/tutorial/lisa2009/rrd-by-example/ex/create-first.sh new file mode 100755 index 00000000..b7713d7f --- /dev/null +++ b/tutorial/lisa2009/rrd-by-example/ex/create-first.sh @@ -0,0 +1,27 @@ +#!/bin/sh +PATH=/scratch/rrd4/bin:$PATH +R=rrdtool +$R create first.rrd \ + --step=300 \ + --start=1199999699 \ + DS:temperature:GAUGE:600:-40:100 \ + RRA:AVERAGE:0.4:1:5 \ + RRA:AVERAGE:0.4:3:2 \ + RRA:MIN:0.4:3:2 \ + RRA:MAX:0.4:3:2 + + +#!/bin/sh +R=rrdtool +u(){ + $R update first.rrd $1 +} + +u 1199999700:00 +u 1200000000:10 +u 1200000300:20 +u 1200000600:30 +u 1200000900:40 + + +$R dump first.rrd diff --git a/tutorial/lisa2009/rrd-by-example/ex/create-first.xml b/tutorial/lisa2009/rrd-by-example/ex/create-first.xml new file mode 100644 index 00000000..12552fdf --- /dev/null +++ b/tutorial/lisa2009/rrd-by-example/ex/create-first.xml @@ -0,0 +1,118 @@ + + + 0003 + 300 + 1200000900 + + + + temperature + GAUGE + 600 + -4.0000000000e+01 + 1.0000000000e+02 + + + 40 + 0.0000000000e+00 + 0 + + + + + + + AVERAGE + 1 + + + 4.0000000000e-01 + + + + 4.0000000000e+01 + 0.0000000000e+00 + NaN + 0 + + + + NaN + 1.0000000000e+01 + 2.0000000000e+01 + 3.0000000000e+01 + 4.0000000000e+01 + + + + + + AVERAGE + 3 + + + 4.0000000000e-01 + + + + 2.0000000000e+01 + 3.0000000000e+01 + 4.0000000000e+01 + 0 + + + + NaN + 2.0000000000e+01 + + + + + + + + MIN + 3 + + + 4.0000000000e-01 + + + + 1.0000000000e+01 + 3.0000000000e+01 + 3.0000000000e+01 + 0 + + + + NaN + 1.0000000000e+01 + + + + + + + MAX + 3 + + + 4.0000000000e-01 + + + + 3.0000000000e+01 + 3.0000000000e+01 + 4.0000000000e+01 + 0 + + + + NaN + 3.0000000000e+01 + + + + diff --git a/tutorial/lisa2009/rrd-by-example/ex/graph-examples.pl b/tutorial/lisa2009/rrd-by-example/ex/graph-examples.pl new file mode 100755 index 00000000..a1eb7859 --- /dev/null +++ b/tutorial/lisa2009/rrd-by-example/ex/graph-examples.pl @@ -0,0 +1,291 @@ +#!/usr/bin/perl +#$ENV{PATH}='/scratch/rrd4/bin'; +$ENV{PATH}=$ENV{HOME}.'/checkouts/rrdtool/branches/1.3/program/src:'.$ENV{PATH}; +my $R=rrdtool; +my $w=320 ; +my $h=200 ; +my $start = 1199999700; +if (not -f 'graph-examples.rrd'){ + system $R,'create','graph-examples.rrd', + '--step' => 300, + '--start' => ($start-1), + 'DS:a:GAUGE:600:-40:2100', + 'DS:b:GAUGE:600:-40:2100', + 'DS:r:GAUGE:600:-40:2100', + 'RRA:AVERAGE:0.4:1:2100', +# 'RRA:AVERAGE:0.4:3:100', + 'RRA:MIN:0.4:3:2100', + 'RRA:MAX:0.4:3:2100'; + + my @updates; + for (my $i = 1; $i < 100;$i++){ + push @updates, ($i*300+$start).':'.(sin($i/10)*40+sin($i/19)*10+50).':'.(cos($i/10)*40+cos($i/33)*15+70).':'.(cos($i/10)*10+sin($i/3)*35+70+rand(40)); + } + system $R,'update','graph-examples.rrd',@updates; +} + +sub rg { + my $file = shift; + print STDERR $file,"\t"; + if (-f $file){ + print STDERR " skip\n"; + return; + } + my @G = ( '--start' => $start+3600, + '--end' => $start + 100 * 280, +# '--full-size-mode', + '--color=BACK#ffff', + '--color=CANVAS#ffff', + '--color=SHADEA#ffff', + '--color=SHADEB#ffff', + '--lower-limit' => 0, + '--pango-markup', + '--height' => $h, '--width' => $w, + '--imgformat' => 'PDF', + 'DEF:a=graph-examples.rrd:a:AVERAGE', + 'DEF:r=graph-examples.rrd:r:AVERAGE', + 'DEF:b=graph-examples.rrd:b:AVERAGE'); + system $R, 'graph', $file, @G, @_; +} + +rg 'LINE.pdf', + '--lower-limit' => 1000, + 'LINE:a#11a03b:DEF\:a=graph-examples.rrd\:a\:AVERAGE', + 'LINE:b#a1003b:DEF\:b=graph-examples.rrd\:b\:AVERAGE\l'; + +rg 'LINE-lower.pdf', + 'LINE:a#11a03b', + 'LINE:b#a1003b', + 'COMMENT:--lower-limit=0'; + +rg 'LINE-slope.pdf', + '--slope-mode', + 'LINE:a#11a03b', + 'LINE:b#a1003b', + 'COMMENT:--slope-mode'; + +rg 'LINE-graph-monos.png', + '--graph-render-mode' => 'mono', + '--imgformat' => 'PNG', + '--zoom'=>1, + 'LINE:a#11a03b', + 'LINE3:b#a1003b', + 'COMMENT:--graph-render-mode=mono'; + +system "convert -scale 800% LINE-graph-monos.png LINE-graph-mono.png" unless -f "LINE-graph-mono.png"; + +rg 'LINE-font-monos.png', + '--font-render-mode' => 'mono', + '--zoom'=>1, + '--imgformat' => 'PNG', + 'LINE:a#11a03b', + 'LINE3:b#a1003b', + 'COMMENT:--font-render-mode=mono'; + +system "convert -scale 800% LINE-font-monos.png LINE-font-mono.png" unless -f "LINE-font-mono.png"; + +rg "LINE-width.pdf", + 'LINE1:b#ff00ff:LINE1\:b#ff00ff', + 'LINE4:a#ffaa00:LINE4\:a#ffaa00\l'; + +rg "LINE-dash.pdf", + 'LINE1:a#ff00ff:LINE1\:a#ff00ff\:\:dashes=10,10,80,10\n:dashes=10,20,80,20', + 'LINE2:b#11aa00:LINE2\:b#11aa00\:\:dashes=1,3\:dash-offset=10:dashes=1,3:dash-offset=3'; + + +rg "DEF-step.pdf", + 'DEF:c=graph-examples.rrd:a:AVERAGE:step=1800', + 'LINE3:a#ccc:DEF\:a=graph-examples.rrd\:a\:AVERAGE\n', + 'LINE1:c#f00:DEF\:b=graph-examples.rrd\:a\:AVERAGE\:step=1800'; + +rg "DEF-reduce.pdf", + 'DEF:c=graph-examples.rrd:a:AVERAGE:step=1800:reduce=MIN', + "DEF:d=graph-examples.rrd:a:AVERAGE:step=1800:reduce=MAX", + 'LINE1:c#f00:DEF\:b=graph-examples.rrd\:a\:AVERAGE\:step=1800\:reduce=MIN\n', + 'LINE1:d#0a0:DEF\:c=graph-examples.rrd\:a\:AVERAGE\:step=1800\:reduce=MAX\n', + 'LINE1:a#888:DEF\:a=graph-examples.rrd\:a\:AVERAGE'; + +my $newstart = $start + 40*300; +rg "DEF-start.pdf", + 'DEF:c=graph-examples.rrd:a:AVERAGE:start='.$newstart, + 'LINE5:a#ccc:DEF\:a=graph-examples.rrd\:a\:AVERAGE\n', + 'LINE1:c#f00:DEF\:b=graph-examples.rrd\:a\:AVERAGE\:start='.$newstart.''; + +rg 'AREA-simple.pdf', + 'AREA:a#f1805b:AREA\:a#a1003b', + 'LINE2:b#1180fb:LINE\:b#11a03b\l'; + +rg 'AREA-two.pdf', + 'AREA:a#f1805b:AREA\:a#f1805b', + 'AREA:b#21f08b:AREA\:b#21f08b\l'; + +rg 'AREA-trans.pdf', + 'AREA:a#f1805bff:AREA\:a#f1805bff', + 'AREA:b#21808b60:AREA\:b#21808b6060\l'; + +rg 'AREA-stack.pdf', + 'AREA:a#f1805b:AREA\:a#f1805b', + 'AREA:b#21808b:AREA\:b#21808b\:...\:STACK\l:STACK'; + +rg 'SHIFT-simple.pdf', + 'DEF:c=graph-examples.rrd:a:AVERAGE', + 'CDEF:d=c', + 'SHIFT:d:3600', + 'LINE:c#1f9', + 'LINE:d#417:CDEF\:b=a SHIFT\:b\:3600\l'; + + +rg 'SHIFT-startdef.pdf', + 'DEF:c=graph-examples.rrd:a:AVERAGE:start='.($start-3600), + 'CDEF:d=c', + 'SHIFT:d:3600', + 'LINE:c#1f9', + 'LINE:d#417:CDEF\:b=a SHIFT\:b\:3600\l', + 'COMMENT:DEF\:a=graph-examples.rrd\:a\:AVERAGE\:start='.($start-3600).'\l'; + +rg 'RPN-simple.pdf', + 'CDEF:c=a,20,+', + 'LINE:a#1f9', + 'LINE:c#417:CDEF\:b=a,20,+\l'; + +rg 'RPN-max.pdf', + 'CDEF:c=a,b,MAX', + 'AREA:a#1f9:a', + 'AREA:b#41f:b', + 'LINE2:c#f00:c', + 'COMMENT:c=a,b,MAX\l'; + +rg 'RPN-limit.pdf', + 'CDEF:c=a,30,70,LIMIT', + 'LINE4:a#1f9:a', + 'LINE2:c#41f:b', + 'COMMENT:b=a,30,70,LIMIT\l'; + +rg 'RPN-trend.pdf', + 'CDEF:k=r,3600,TREND', + 'LINE1:r#3a1:a', + 'LINE1:k#21f:b', + 'COMMENT:b=a,3600,TREND\l'; + +rg 'RPN-trend-start.pdf', + 'DEF:rr=graph-examples.rrd:r:AVERAGE:start='.($start-3600), + 'CDEF:k=rr,3600,TREND', + 'COMMENT:DEF\:a=graph-examples.rrd\:a\:AVERAGE\:start='.($start-3600).'\l', + 'LINE1:r#3a1:a', + 'LINE1:k#21f:b', + 'COMMENT:b=a,3600,TREND\l'; + +rg 'RPN-trend-shift.pdf', + 'DEF:rr=graph-examples.rrd:r:AVERAGE:start='.($start-3600), + 'CDEF:k=rr,3600,TREND', + 'SHIFT:k:-1800', + 'LINE1:r#3a1:a', + 'COMMENT:CDEF\:b=a,3600,TREND SHIFT\:b\:-1800', + 'LINE1:k#21f:b\l'; + +if ( ! -f '1.rrd'){ + system $R,'create','1.rrd', + '--step' => 1, + '--start' => ($start-1), + 'DS:a:GAUGE:2:U:U', + 'RRA:AVERAGE:0.4:1:1' }; + + +rg 'RPN-if.pdf', + 'CDEF:c=a,b,LT,a,b,IF,4,-', + 'LINE1:a#3a1:a', + 'LINE1:b#21f:b', + 'AREA:c#f00a:c=a,b,LT,a,b,IF,4,-\l'; + +rg 'RPN-UNKN.pdf', + 'CDEF:c=a,b,GT,a,UNKN,IF', + 'CDEF:d=a,b,LT,b,UNKN,IF', + 'AREA:c#8a1:c=a,b,GT,a,UNKN,IF', + 'AREA:d#91f:d=a,b,LT,b,UNKN,IF\l'; + +rg 'RPN-count.pdf', + 'CDEF:c=COUNT,3,%,0,EQ,a,UNKN,IF', + 'AREA:c#8a1:c=COUNT,3,%,0,EQ,a,UNKN,IF'; + +rg 'RPN-time.pdf', + 'CDEF:c=TIME,1800,%,900,GE,a,UNKN,IF', + 'AREA:c#8a1:c=TIME,1800,%,900,GE,a,UNKN,IF'; + +rg 'RPN-time-minus.pdf', + 'CDEF:c=TIME,1,-,1800,%,900,GE,a,UNKN,IF', + 'AREA:c#8a1:c=TIME,1,-,1800,%,900,GE,a,UNKN,IF'; + +if ( ! -f '1.rrd'){ + system $R,'create','1.rrd', + '--step' => 1, + '--start' => ($start-1), + 'DS:a:GAUGE:2:U:U', + 'RRA:AVERAGE:0.4:1:1' }; + +rg 'RPN-time-odd.pdf', + 'CDEF:c=TIME,1756,%,180,GE,a,UNKN,IF', + 'AREA:c#8a1:c=TIME,1756,%,180,GE,a,UNKN,IF'; + +rg 'RPN-time-odd-hires.pdf', + 'DEF:s=1.rrd:a:AVERAGE', + 'CDEF:c=s,POP,TIME,1756,%,180,GE,a,UNKN,IF', + 'COMMENT:DEF\:one=1.rrd\:one\:AVERAGE', + 'AREA:c#8a1:c=one,POP,TIME,1756,%,180,GE,a,UNKN,IF'; + +rg 'RPN-prev.pdf', + 'CDEF:c=COUNT,3,%,0,EQ,a,UNKN,IF', + 'CDEF:d=COUNT,3,%,1,EQ,PREV,c,IF', + 'COMMENT:CDEF\:c=COUNT,3,%,0,EQ,a,UNKN,IF', + 'AREA:d#8a1:d=COUNT,3,%,1,EQ,PREV,c,IF'; + +rg 'RPN-grad-a.pdf', + 'CDEF:c=a,4,/', + 'COMMENT:CDEF\:c=a,4,/\l', + 'AREA:c#77b7ff:AREA\:c#77b7ff\l', + 'AREA:c#5aa8ff:AREA\:c#5aa8ff\:\:STACK\l:STACK', + 'AREA:c#2b8fff:AREA\:c#2b8fff\:\:STACK\l:STACK', + 'AREA:c#0078ff:AREA\:c#0078ff\:\:STACK\l:STACK'; + +rg 'RPN-grad-b.pdf', + 'AREA:a#0078ff:a\l', + 'CDEF:e=a,75,LE,a,75,IF', + 'AREA:e#2b8fff:b=a,75,LE,a,75,IF\l', + 'CDEF:d=a,50,LE,a,50,IF', + 'AREA:d#5aa8ff:c=a,50,LE,a,50,IF\l', + 'CDEF:c=a,25,LE,a,25,IF', + 'AREA:c#77b7ff:b=a,25,LE,a,25,IF\l'; + + + + +rg 'VDEF-average.pdf', + 'VDEF:aavg=a,AVERAGE', + 'LINE2:a#11a03b88', + 'LINE:aavg#01902b:b', + 'GPRINT:aavg:avg %.1lf', + 'COMMENT:VDEF\:b=a,AVERAGE GPRINT\:b\:avg %.1lf\l'; + +rg 'VDEF-minmax.pdf', + 'LINE2:a#4f4', + 'VDEF:amax=a,MAXIMUM', + 'LINE:amax#123', + 'VRULE:amax#123:max', + 'GPRINT:amax:%.1lf', + 'GPRINT:amax:%H\:%M:strftime', + 'COMMENT:VDEF\:max=a,MAXIMUM\l', + 'VDEF:amin=a,MINIMUM', + 'LINE:amin#48f', + 'VRULE:amin#48f:min', + 'GPRINT:amin:%.1lf', + 'GPRINT:amin:%H\:%M:strftime', + 'COMMENT:VDEF\:min=a,MINIMUM\l'; + +rg 'VDEF-lsl.pdf', + 'VDEF:slope=a,LSLSLOPE', + 'VDEF:int=a,LSLINT', + 'CDEF:lsl=a,POP,COUNT,slope,*,int,+', + 'GPRINT:slope:VDEF\:slope=a,LSLSLOPE (%.3lf)\l', + 'GPRINT:int:VDEF\:int=a,LSLINT (%.1lf)\l', + 'LINE2:a#8f1:a', + 'LINE2:lsl#f71:lsl=a,POP,COUNT,slope,*,int,+\l'; + diff --git a/tutorial/lisa2009/rrd-by-example/ex/hw-demo.data b/tutorial/lisa2009/rrd-by-example/ex/hw-demo.data new file mode 100644 index 00000000..7b66302b --- /dev/null +++ b/tutorial/lisa2009/rrd-by-example/ex/hw-demo.data @@ -0,0 +1,2537 @@ +1222757402 419402302650430 548095048607795 +1222757402 22471027 5276730 22471027 5276730 +1222757102 20617223 4806777 20617223 4806777 +1222757100 20623696 4811870 22559177 6334957 +1222756800 22532939 6331956 22559177 6334957 +1222756500 18625200 5883545 18881004 5884872 +1222756200 18861881 5686672 18881004 5756126 +1222755900 16961554 5755998 16968731 5756126 +1222755600 14812264 5713359 14815905 5717761 +1222755300 13730655 4397387 15764652 4410625 +1222755000 15747101 4405057 15764652 4410625 +1222754700 14005370 3852565 14009634 3853848 +1222754400 13360131 3662595 13370074 3839107 +1222754100 11894908 3838774 13492951 3839107 +1222753800 13490632 3806814 13492951 3901459 +1222753500 13262145 3902673 13588760 4265792 +1222753200 13590699 4264360 14170688 4265792 +1222752900 14153271 3832183 14170688 3836199 +1222752600 12416740 3434511 12429076 3434629 +1222752300 11182928 3421288 11195565 3422849 +1222752000 9300266 3188902 9321242 3208783 +1222751700 9316650 3208449 9321242 3208783 +1222751400 7939473 3102950 7943817 3108649 +1222751100 7608107 2681573 7618054 2733252 +1222750800 6131573 2735664 6952544 3095151 +1222750500 6942332 3092611 6952544 3095151 +1222750200 5933586 2841137 6149272 2841185 +1222749900 6151071 2844065 6419230 3982961 +1222749600 6415834 3980725 6419230 3982961 +1222749300 5905742 3644019 5909959 3647564 +1222749000 5279068 3118033 5434830 3327234 +1222748700 5433240 3328843 5434830 3568689 +1222748400 5196389 3566497 5198872 3568689 +1222748100 5206996 3236431 6417517 3240011 +1222747800 6429977 2704521 7663538 2851400 +1222747500 7650971 2852147 7663538 2963502 +1222747200 5780776 2962304 6113628 2963502 +1222746900 6113467 2784006 6113628 2808465 +1222746600 6095118 2810112 6647876 2973243 +1222746300 6644773 2975129 6647876 3256194 +1222746000 6181424 3255897 6182436 3256194 +1222745700 5892210 3165011 7193130 3167323 +1222745400 7191244 2935611 7193130 2936177 +1222745100 7005791 2881682 7179771 3187425 +1222744800 7179977 3185171 7210818 3187425 +1222744500 7213755 2849950 7651381 2927701 +1222744200 7659803 2926618 8493655 2927701 +1222743900 8484863 2820830 8493655 3028505 +1222743600 7174529 3026464 7174943 3028505 +1222743300 7129044 2832092 7133562 3592208 +1222743000 6692684 3591685 7771400 3592208 +1222742700 7768185 3541903 7771400 3836380 +1222742400 7288795 3836155 7289204 3836380 +1222742100 7234791 3806076 8263922 4310705 +1222741800 8260841 4297747 8263922 4310705 +1222741500 7957274 3012984 8161474 3014993 +1222741200 8173250 2713954 9927934 2743339 +1222740900 9924066 2748150 9927934 3465057 +1222740600 9346718 3464626 9347774 3465057 +1222740300 9189215 3400792 9189443 3436544 +1222740000 9157579 3439531 9487092 3884711 +1222739700 9485118 3884236 9487092 3884711 +1222739400 9202373 3816827 10325569 4149380 +1222739100 10325467 4150416 10325569 4304786 +1222738800 10310271 4302891 10310317 4304786 +1222738500 10300751 4019934 10303436 4020661 +1222738200 9900570 3910831 9900712 3911681 +1222737900 9884389 3826016 9886611 3826692 +1222737600 9225499 3625641 10038487 3846920 +1222737300 10039030 3845311 10119975 3846920 +1222737000 10146162 3608282 12084009 3800683 +1222736700 12070835 3798505 12084009 3800683 +1222736400 10112725 3476067 10822016 3782353 +1222736100 10817416 3780580 10822016 3782353 +1222735800 9455412 3251074 10763012 3310281 +1222735500 10760696 3313996 10763012 3867535 +1222735200 10422337 3874305 11417200 4883069 +1222734900 11432226 4875223 12919846 4883069 +1222734600 12919445 4097021 12919846 4098556 +1222734300 12851653 3867711 12859810 3868398 +1222734000 11640173 3767559 12221329 4096654 +1222733700 12219168 4096567 12221329 4096654 +1222733400 11907255 4084776 12899357 4193226 +1222733100 12897090 4193838 12899357 4285140 +1222732800 12553615 4285604 12559444 4354773 +1222732500 11689662 4356363 12368626 4593292 +1222732200 12371233 4604580 12629352 5722169 +1222731900 12626398 5714070 12629352 5722169 +1222731600 12186084 4514748 12186316 5238559 +1222731300 12165613 5237094 12536747 5238559 +1222731000 12536396 5011647 12536747 5018874 +1222730700 12505404 4300171 13063223 4891188 +1222730400 13064143 4890524 13339335 4891188 +1222730100 13338670 4691751 13339335 4692063 +1222729800 13145194 4591881 13654566 4598561 +1222729500 13645113 3929071 13654566 3930574 +1222729200 12706965 3785739 12709282 4594106 +1222728900 12374309 4595757 13616468 4759276 +1222728600 13607234 4771661 13616468 5997779 +1222728300 12692581 5993736 12693118 5997779 +1222728000 12538669 4785660 13506834 4861519 +1222727700 13472371 4860981 13506834 4861519 +1222727400 10063969 4806493 10574502 4807729 +1222727100 10575360 4622872 10831984 4762962 +1222726800 10832776 4765974 11069742 5666699 +1222726500 11066917 5666495 11069742 5666699 +1222726200 10676220 5634064 12909890 5636212 +1222725900 12900255 5478930 12909890 5855432 +1222725600 11950380 5849760 12533859 5855432 +1222725300 12507518 5003829 12533859 5004737 +1222725000 9904890 4921850 10406492 5704612 +1222724700 10408343 5704714 10684197 5719967 +1222724400 10680347 5716771 10684197 5719967 +1222724100 10113478 5248989 11118719 6502787 +1222723800 11122985 6495375 11758681 6502787 +1222723500 11756335 5391577 11758681 5541276 +1222723200 11055060 5546106 11070244 6990482 +1222722900 11069219 6990754 11070244 7072298 +1222722600 10787125 7073711 12214510 7157135 +1222722300 12209238 7153180 12214510 7157135 +1222722000 11680454 6764178 11687407 7132884 +1222721700 10661972 7133139 13261623 7171281 +1222721400 13257927 7170866 13261623 7171281 +1222721100 12973734 7138395 12984490 7140201 +1222720800 11364578 6869925 11371149 6941486 +1222720500 10393239 6938002 11535139 6941486 +1222720200 11535621 6420793 11607579 6694462 +1222719900 11617832 6702502 13145566 7900486 +1222719600 13145275 7902302 13145566 8172994 +1222719300 13111411 8167293 14505606 8172994 +1222719000 14504515 7328308 14505606 8349772 +1222718700 14381503 8354929 14396519 9123351 +1222718400 12145201 9130791 12289048 10239392 +1222718100 12288934 10227950 12289048 10239392 +1222717800 12306961 9071698 15208730 9095263 +1222717500 15204650 6740839 15208730 7349609 +1222717200 13992313 7355508 15097065 8234500 +1222716900 15103144 8217897 15705002 8234500 +1222716600 15706990 6586267 15903813 7776738 +1222716300 15901049 7771885 15903813 7776738 +1222716000 15489318 7049526 15489344 7144648 +1222715700 15489234 7145385 16594049 7365951 +1222715400 16594589 7369948 16648055 7765745 +1222715100 16662753 7767785 18852778 8071808 +1222714800 18848046 8074264 18852778 8808903 +1222714500 17456288 8798341 20897510 8808903 +1222714200 20881580 7221894 20897510 7224631 +1222713900 19312078 6952336 20426964 7159475 +1222713600 20419878 7157560 20426964 7159475 +1222713300 19387599 6879792 22872323 8005052 +1222713000 22869679 8019715 22872323 9471389 +1222712700 22584623 9462067 22607994 9471389 +1222712400 19113497 8071471 20761210 8073213 +1222712100 20762772 7815650 20995566 8361992 +1222711800 20951956 8356179 20995566 8361992 +1222711500 16640343 7777191 17493245 7780766 +1222711200 17491996 7242852 17493245 7244553 +1222710900 17142314 6737253 20655247 7169190 +1222710600 20628820 7175826 20655247 7832821 +1222710300 18035226 7838609 20279850 8411691 +1222710000 20279954 8415986 20295585 9055976 +1222709700 20290761 9056164 20295585 9084307 +1222709400 19581244 9089731 20494307 9626795 +1222709100 20492623 9620654 20494307 9626795 +1222708800 20255900 8703550 22363512 8705762 +1222708500 22363688 8371943 22389974 8374072 +1222708200 22412529 8066564 23517731 8645043 +1222707900 23509606 8640217 23517731 8645043 +1222707600 22293902 7923245 22299026 8547377 +1222707300 20783737 8552892 22923328 9098959 +1222707000 22949904 9097394 25581012 9098959 +1222706700 25561587 8941174 25581012 8942486 +1222706400 22658633 8752388 22667262 9749882 +1222706100 21371707 9743840 21372950 9749882 +1222705800 21196949 8840742 22741832 8843727 +1222705500 22742731 8405555 22876806 9811832 +1222705200 22879931 9809843 23345600 9811832 +1222704900 23346766 9514843 23520609 9698923 +1222704600 23522912 9687716 23750983 9698923 +1222704300 23720942 8572457 23750983 8578239 +1222704000 20753925 7999570 21801911 8000081 +1222703700 21821300 7930000 24710338 8907923 +1222703400 24704950 8915090 24710338 9624631 +1222703100 24172657 9629444 24485968 11068674 +1222702800 24479799 11074603 24485968 11958098 +1222702500 23561233 11959981 23648907 12240695 +1222702200 23631670 12228729 23648907 12240695 +1222701900 21941763 11045721 24405190 11284723 +1222701600 24433008 11278771 28577916 11284723 +1222701300 28561784 10395100 28577916 10866658 +1222701000 26186202 10866018 28957351 10866658 +1222700700 28985871 10804494 33235472 11070804 +1222700400 33229833 11069935 33235472 11070804 +1222700100 31547035 10810726 32011139 10897655 +1222699800 32031276 10890150 34024840 10897655 +1222699500 34011723 10143426 34024840 10147251 +1222699200 30093682 9004738 31267083 10467917 +1222698900 31279227 10466453 34910286 10467917 +1222698600 34937640 10030332 39013422 10267251 +1222698300 38983388 10265457 39013422 10267251 +1222698000 34478554 9997145 34508351 9998290 +1222697700 30038380 9820818 30038842 9826586 +1222697400 30011390 8962397 34145276 9059120 +1222697100 34164729 9063268 37063312 9681411 +1222696800 37078429 9690804 39330961 11090410 +1222696500 39303250 11094215 39330961 11661297 +1222696200 35179307 11658106 35671584 11661297 +1222695900 35664948 11341011 35671584 11342247 +1222695600 33730672 10973847 38660751 11198787 +1222695300 38668134 11194936 40875898 11198787 +1222695000 40831710 10041038 40875898 10043553 +1222694700 36458198 9791678 36760548 9792086 +1222694400 36753806 9673617 36760548 10250894 +1222694100 35734956 10246500 35749347 10250894 +1222693800 33663591 9597419 39050940 10007613 +1222693500 39097096 10000253 43666589 10007613 +1222693200 43648457 9272465 43666589 9385392 +1222692900 40965661 9390517 43765865 10154268 +1222692600 43721927 10153982 43765865 10154268 +1222692300 40450044 10139514 40470534 12120507 +1222692000 34317335 12113125 34323652 12120507 +1222691700 33385556 11011845 34786994 11013295 +1222691400 34818948 10782004 37982469 10795874 +1222691100 38013465 9408582 47281298 9408879 +1222690800 47211371 9319609 47281298 9320064 +1222690500 36799125 9252393 37812016 9324938 +1222690200 37845684 9318103 42862261 9324938 +1222689900 42876007 8299603 46986251 8299810 +1222689600 46928018 8241159 46986251 8718484 +1222689300 38257892 8715092 40218426 8718484 +1222689000 40219535 7702282 40329410 7816173 +1222688700 40311967 7821942 40329410 8681554 +1222688400 37764684 8674449 42880284 8681554 +1222688100 42929070 7971108 47758934 7973300 +1222687800 47700590 7976787 47758934 8322076 +1222687500 41873203 8325641 41924605 8856838 +1222687200 34195664 8846879 34214412 8856838 +1222686900 32332881 7859931 32339636 7860948 +1222686600 31362105 7711398 34893598 8005578 +1222686300 34881255 8003104 34893598 8005578 +1222686000 33059983 7639967 35712674 8439301 +1222685700 35721750 8438422 37074148 8439301 +1222685400 37048714 8307659 37074148 8326571 +1222685100 34502736 8319089 34530847 8326571 +1222684800 30338550 7201631 33966735 7204398 +1222684500 33995908 6787120 38342751 6789396 +1222684200 38322010 6455733 38342751 7210069 +1222683900 36247238 7214494 36268729 7873828 +1222683600 33046723 7875182 33534077 8280189 +1222683300 33546771 8283982 35438313 8849178 +1222683000 35437083 8842293 35438313 8849178 +1222682700 35302116 8169358 35315347 9450980 +1222682400 33321725 9449674 33330818 9450980 +1222682100 31978158 9257726 33645339 9644950 +1222681800 33665099 9648704 35621339 10020354 +1222681500 35622375 10009176 35776785 10020354 +1222681200 35790433 8338429 37824130 8343733 +1222680900 37818339 7550865 37824130 7948179 +1222680600 36890318 7945117 36955529 7948179 +1222680300 30451938 7647477 33059815 8455996 +1222680000 33078020 8451331 35790616 8455996 +1222679700 35796704 7753118 36703923 7756321 +1222679400 36637828 7268073 36703923 7275950 +1222679100 32721511 6813435 32738251 7812425 +1222678800 31066475 7809673 31385331 7812425 +1222678500 31387305 7408110 31681510 8654478 +1222678200 31670006 8641669 31681510 8654478 +1222677900 30544495 7377824 32533285 8000688 +1222677600 32526193 7995803 32533285 8000688 +1222677300 31461409 7266778 31469605 7267968 +1222677000 30308792 7091130 37089012 7241805 +1222676700 37067285 7240743 37089012 7241805 +1222676400 30580767 6930842 32035177 8053889 +1222676100 32005690 8052472 32035177 8053889 +1222675800 27640231 7846849 30421072 8383457 +1222675500 30400551 8379612 30421072 8383457 +1222675200 27485212 7811676 48664324 8539796 +1222674900 48633315 8537514 48664324 8539796 +1222674600 43928107 8200561 44013112 8500222 +1222674300 35487215 8500277 35512684 8508567 +1222674000 31672916 8506774 31692454 8508567 +1222673700 28769662 8230134 29546441 8239683 +1222673400 29570347 7287186 31937083 7523362 +1222673100 31911880 7512505 31937083 7523362 +1222672800 28112307 5895027 28156767 5918056 +1222672500 21487854 5917901 21507946 5918056 +1222672200 21515813 5871249 22294647 5871726 +1222671900 22293562 5823819 22294647 5824109 +1222671600 22207864 5796707 25437025 6021248 +1222671300 25415117 6016512 25437025 6021248 +1222671000 22124040 5317498 22150930 6295279 +1222670700 18114831 6293734 18117540 6295279 +1222670400 17284943 5823916 17304879 5832049 +1222670100 14314621 4615961 14327845 5181520 +1222669800 14315315 5172043 14327845 5181520 +1222669500 12451239 3760820 12881980 3874776 +1222669200 12873854 3873141 12881980 3874776 +1222668900 10447019 3385401 10832304 3511264 +1222668600 10821705 3507036 10832304 3511264 +1222668300 9767228 3090772 9772482 3764691 +1222668000 8190631 3764207 8196437 3764691 +1222667700 6462639 3615933 7644876 3619533 +1222667400 7643033 3085066 7644876 3618995 +1222667100 7458547 3618616 7460654 3618995 +1222666800 6827984 3502319 6828695 3505317 +1222666500 6733432 3053163 10102821 3055736 +1222666200 10071936 2291015 10102821 2982242 +1222665900 7006566 2979383 7014344 2982242 +1222665600 5848693 2555234 6004363 2827455 +1222665300 6005731 2827723 6141178 2854328 +1222665000 6128722 2853888 6141178 2854328 +1222664700 5206876 2825040 5207006 3373072 +1222664400 5186413 3377568 5187562 4047508 +1222664100 5017689 4042668 5381881 4047508 +1222663800 5380658 3326022 5381881 3763222 +1222663500 5259688 3762599 5279032 3763222 +1222663200 5287410 3575015 6535832 3576511 +1222662900 6514984 3350288 6535832 3352196 +1222662600 3424251 3064270 4961503 3066042 +1222662300 4949639 2890590 4961503 3143543 +1222662000 3194354 3141519 5038538 3143543 +1222661700 5040873 2839976 5388883 2842099 +1222661400 5390754 2842565 5575984 2888724 +1222661100 5570505 2887091 5575984 2888724 +1222660800 4751869 2643413 4754217 2643851 +1222660500 4403483 2577791 4616471 2578164 +1222660200 4621108 2522122 5080216 2522363 +1222659900 5081586 2498960 5491415 2702445 +1222659600 5491254 2703578 5491415 3042553 +1222659300 5446334 3041294 5924514 3042553 +1222659000 5943495 2850015 7822647 2853734 +1222658700 7812307 2484074 7822647 2813904 +1222658400 6265261 2813088 6271671 2813904 +1222658100 5311544 2691047 5685906 2691563 +1222657800 5689383 2541233 6033632 2965437 +1222657500 6031058 2969266 6033632 3539898 +1222657200 5651317 3538742 6202634 3539898 +1222656900 6200783 3364595 6202634 3366640 +1222656600 5925646 3062690 6005172 3474859 +1222656300 6003072 3473386 6005172 3474859 +1222656000 5693078 3252407 6120345 3253951 +1222655700 6117570 3021941 6120345 3022357 +1222655400 5846411 2985322 6365618 3664877 +1222655100 6367127 3662156 6818384 3664877 +1222654800 6817932 2849831 6818384 3022621 +1222654500 6750321 3021441 6750589 3022621 +1222654200 6706084 2844873 6710494 2845754 +1222653900 6269700 2761516 6299842 3324713 +1222653600 6331264 3323627 11013166 3324713 +1222653300 10993353 3161615 11013166 3161924 +1222653000 8029113 3116950 8041306 3240803 +1222652700 6822828 3240510 7067390 3240803 +1222652400 7067778 3152299 7125734 3153163 +1222652100 7123455 3025057 7125734 3232552 +1222651800 6807673 3232028 9155566 3232552 +1222651500 9145757 3182922 9155566 3585321 +1222651200 7684442 3585463 7696059 3606671 +1222650900 7692054 3608193 7696059 3835014 +1222650600 7107077 3835562 8263781 3889856 +1222650300 8262680 3897839 8263781 4688186 +1222650000 8152322 4687317 8153699 4688186 +1222649700 7943513 4558699 7947156 4677241 +1222649400 7397253 4673345 7400767 4677241 +1222649100 7050703 4289031 7249182 4495779 +1222648800 7245577 4505195 7249182 5437406 +1222648500 6894334 5438972 7734553 5672386 +1222648200 7746783 5674017 8957599 5835548 +1222647900 8955032 5833220 8957599 5835548 +1222647600 8188040 5133606 8250900 5137192 +1222647300 8249527 4605154 8250900 5474636 +1222647000 8039477 5471802 8044979 5474636 +1222646700 7496276 5189015 7707879 5191237 +1222646400 7707392 4856514 7707879 4858049 +1222646100 7572015 4396400 8581080 4397671 +1222645800 8582134 4271267 8686578 4339428 +1222645500 8688823 4341854 9023395 4703338 +1222645200 9017602 4701085 9023395 4703338 +1222644900 8152420 4368316 8154477 4795974 +1222644600 7860168 4796720 9268465 4870590 +1222644300 9265278 4871027 9268465 5001702 +1222644000 8315023 5001363 8673419 5001702 +1222643700 8675122 4948076 9184341 4950930 +1222643400 9177905 4101488 9184341 4753083 +1222643100 8544162 4752382 9039534 4753083 +1222642800 9048332 4653768 9919375 5224723 +1222642500 9918545 5225793 9919375 5385282 +1222642200 9799387 5388809 10235621 5738066 +1222641900 10239829 5731688 10866925 5738066 +1222641600 10864360 4779326 10866925 4781373 +1222641300 10481890 4480849 10482291 5451761 +1222641000 10425050 5455996 10845906 6087071 +1222640700 10842487 6083152 10845906 6087071 +1222640400 9826009 4910818 10668159 4911456 +1222640100 10666444 4818286 10668159 5177608 +1222639800 10412630 5179779 10653785 5503343 +1222639500 10656931 5505026 11597795 6008382 +1222639200 11602256 6003524 12267066 6008382 +1222638900 12261028 5273213 12267066 5279816 +1222638600 11670502 4627624 12739442 5825370 +1222638300 12739738 5831590 12783932 6758426 +1222638000 12806359 6750915 16148041 6758426 +1222637700 16136738 5635983 16148041 6247710 +1222637400 14443078 6240741 14452718 6247710 +1222637100 13008289 5203961 13435990 5674671 +1222636800 13435896 5670098 13435990 5674671 +1222636500 13429610 4988095 14560177 4988726 +1222636200 14564557 4898872 14998185 5371959 +1222635900 14999445 5377791 15124211 5955175 +1222635600 15118030 5954997 15124211 5955175 +1222635300 14541137 5933607 17128124 5937465 +1222635000 17104946 5657857 17128124 6375216 +1222634700 15387246 6366952 15389780 6375216 +1222634400 15004692 5134421 15009788 5135755 +1222634100 14244859 4933382 14245489 4935718 +1222633800 14161474 4591461 15721435 5490204 +1222633500 15706357 5484060 15721435 5490204 +1222633200 13470949 4578976 15131512 6114397 +1222632900 15128477 6108261 15131512 6114397 +1222632600 14677593 5187668 14809112 5194096 +1222632300 14802006 4554705 14809112 5048331 +1222632000 13743869 5046792 13827033 5048331 +1222631700 13825569 4824236 13827033 5808659 +1222631400 13604094 5825176 13607489 7460384 +1222631100 13265190 7448529 13268015 7460384 +1222630800 12848640 5680947 13498266 5682248 +1222630500 13494777 5493866 13498266 6494485 +1222630200 12992243 6498502 14702469 6896202 +1222629900 14694215 6892073 14702469 6896202 +1222629600 13466020 6274549 13916248 6276879 +1222629300 13917478 5577316 14285347 5578064 +1222629000 14278054 5355685 14285347 5633511 +1222628700 13192751 5642536 13319016 6536073 +1222628400 13320925 6540337 13891790 7815292 +1222628100 13892671 7812512 14023968 7815292 +1222627800 14020621 7390666 14023968 7398315 +1222627500 13540396 6254683 16289675 6795106 +1222627200 16290021 6793672 16393733 6795106 +1222626900 16383171 6369471 16393733 7011324 +1222626600 14805807 7007236 14809564 7011324 +1222626300 14420746 6601084 14433924 6602599 +1222626000 12457807 6376487 12632264 6705123 +1222625700 12628701 6702265 12632264 6705123 +1222625400 12111770 6281419 13486285 6772291 +1222625100 13483267 6770644 13486285 6772291 +1222624800 13036410 6532331 13451627 7584748 +1222624500 13449887 7581217 13451627 7584748 +1222624200 13187991 7056274 13190710 7160880 +1222623900 12921595 7160817 13728181 7160880 +1222623600 13726550 7141009 13728181 7142167 +1222623300 13235970 6796279 13239045 7230713 +1222623000 12352153 7226535 15862345 7230713 +1222622700 15856001 6811729 15862345 6812963 +1222622400 13966496 6447615 15050660 7160033 +1222622100 15060165 7157676 16476546 7160033 +1222621800 16471642 6811069 16476546 7143339 +1222621500 16098256 7147022 16108809 7695798 +1222621200 14534372 7693524 15793130 7695798 +1222620900 15781545 7355968 15793130 7527856 +1222620600 14076839 7532719 16193490 8014162 +1222620300 16188472 8022585 16193490 9277630 +1222620000 15421147 9264689 15440865 9277630 +1222619700 12494500 7340191 14168439 7872944 +1222619400 14157569 7862540 14168439 7872944 +1222619100 13084416 6843277 13520534 8432737 +1222618800 13524585 8435757 14736042 9338822 +1222618500 14740114 9327932 15346871 9338822 +1222618200 15336925 7704918 15346871 7705348 +1222617900 14351784 7661680 14352317 7662356 +1222617600 14277368 7554751 15007966 7560995 +1222617300 15020798 6621868 16932879 6624519 +1222617000 16926121 6228585 16932879 6385575 +1222616700 16250360 6385631 16257133 6394033 +1222616400 15243759 6392271 15617463 6394033 +1222616100 15629992 6132677 17496950 6552468 +1222615800 17492632 6556433 17496950 6949040 +1222615500 17062763 6950856 17065163 7494026 +1222615200 16337871 7488875 16345179 7494026 +1222614900 15261625 6722133 17138536 6831204 +1222614600 17123992 6836810 17138536 7672244 +1222614300 14976927 7664156 16949954 7672244 +1222614000 16922668 6859951 16949954 6863510 +1222613700 12868735 6332501 14590273 6745423 +1222613400 14588749 6756040 14590273 8337975 +1222613100 14361216 8347287 14361811 9734792 +1222612800 14263175 9727616 14272572 9734792 +1222612500 12867712 8651740 13558923 8658513 +1222612200 13573290 7643421 15714072 7757546 +1222611900 15704803 7764735 15714072 8836039 +1222611600 14321340 8834384 14323749 8836039 +1222611300 13608983 8339241 14784491 8339755 +1222611000 14781457 8275319 14784491 9527529 +1222610700 14481343 9524843 14514118 9527529 +1222610400 14514262 9122494 14557430 9124670 +1222610100 14562406 8471521 15303972 8472013 +1222609800 15292111 8404606 15303972 9029067 +1222609500 14129315 9028808 15826816 9029067 +1222609200 15804666 8988769 15826816 8990316 +1222608900 12504817 8752133 12563407 8758286 +1222608600 12583811 7828165 14603821 7835462 +1222608300 14590657 7105647 14603821 7105823 +1222608000 12634799 7081435 14273392 7641505 +1222607700 14266650 7634688 14273392 7641505 +1222607400 13268775 6614273 13662439 6619046 +1222607100 13670632 6337122 14891428 7000278 +1222606800 14887792 7002085 14891428 7271442 +1222606500 14341203 7255387 14346080 7271442 +1222606200 13631436 4865011 15297078 5044770 +1222605900 15272039 5049184 15297078 5375837 +1222605600 13416560 5377504 13419207 5876174 +1222605300 12617050 5878064 12625132 6159757 +1222605000 11402426 6156460 11412864 6159757 +1222604700 10413672 5828394 17047860 5830117 +1222604400 17034225 5573494 17047860 6095039 +1222604100 12958668 6097240 13305812 6755409 +1222603800 13299117 6748761 13305812 6755409 +1222603500 12300375 5754571 12301599 5758337 +1222603200 12117687 5188340 12118096 5193490 +1222602900 12057518 4422262 12166375 4611098 +1222602600 12167320 4624456 12260937 5946928 +1222602300 12265811 5948034 12992091 6112893 +1222602000 13013709 6112666 16234872 6112893 +1222601700 16210602 6075087 16234872 6078890 +1222601400 12638013 5507960 16944033 5508502 +1222601100 16931926 5454479 16944033 5489170 +1222600800 13314004 5485721 13578290 5489170 +1222600500 13576311 4972920 13578290 5269352 +1222600200 12980827 5272919 12984817 5626066 +1222599900 12580668 5627037 12585880 5771850 +1222599600 11808262 5772608 12430098 5885573 +1222599300 12422382 5887525 12430098 6178407 +1222599000 11267843 6179018 11272761 6270206 +1222598700 10537168 6273573 10843465 6775300 +1222598400 10845015 6772204 11308723 6775300 +1222598100 11311440 5850504 11716359 6427294 +1222597800 11705157 6426648 11716359 6427294 +1222597500 10030421 6335990 10036088 7167563 +1222597200 9193687 7155779 10321194 7167563 +1222596900 10323479 5401535 11006763 5849081 +1222596600 10995972 5853018 11006763 6144387 +1222596300 10201286 6140450 10767651 6144387 +1222596000 10767540 5546889 10767651 5553954 +1222595700 10752385 4494019 10945024 4494302 +1222595400 10941089 4448722 10945024 4451881 +1222595100 10553633 4138892 10860644 4567531 +1222594800 10861986 4564511 11062037 4567531 +1222594500 11062936 4119157 11196946 4792351 +1222594200 11189168 4790969 11196946 4792351 +1222593900 10429491 4660342 11969738 5573044 +1222593600 11965904 5573652 11969738 5755527 +1222593300 10815602 5752619 10819754 5755527 +1222593000 9573449 4871866 9574429 4883308 +1222592700 9499725 4025353 9500976 4041417 +1222592400 9376776 4044522 9456750 4351986 +1222592100 9455722 4350274 9456750 4351986 +1222591800 9293513 4097438 9302632 4313911 +1222591500 8387076 4313877 8390764 4313911 +1222591200 7836227 4306280 7837708 4308864 +1222590900 7611967 3918232 7615576 3921408 +1222590600 7073391 3443844 7074365 3445035 +1222590300 6931264 3269630 7363654 3734174 +1222590000 7366728 3733641 8286040 3734174 +1222589700 8281277 3574915 8286040 3629039 +1222589400 7801197 3629026 7809782 3629039 +1222589100 6953612 3626160 7299408 3627815 +1222588800 7302114 3380002 7570052 3410556 +1222588500 7562954 3409839 7570052 3410556 +1222588200 6516897 3307358 7648618 3729191 +1222587900 7642078 3734907 7648618 4300871 +1222587600 6994621 4296237 6994707 4300871 +1222587300 6980276 3607092 6981945 3967204 +1222587000 6474513 3966607 6481354 3967204 +1222586700 5796920 3906658 5797306 3907588 +1222586400 5683804 3628119 5983394 3628633 +1222586100 5984740 3552752 6387238 3913156 +1222585800 6382598 3909729 6387238 3913156 +1222585500 5702924 3397180 7430288 3399147 +1222585200 7418168 3104976 7430288 3231677 +1222584900 5612403 3229309 5612413 3231677 +1222584600 5608787 2877470 5610944 2973564 +1222584300 5398435 2970384 5862936 2973564 +1222584000 5860381 2498973 5862936 2842411 +1222583700 5485806 2841983 6087226 2842411 +1222583400 6083946 2796827 6087226 2799623 +1222583100 5758345 2520338 5759238 2555638 +1222582800 5623722 2555905 5625309 2635900 +1222582500 5149960 2635563 5294725 2635900 +1222582200 5294844 2532733 5312614 2534947 +1222581900 5315021 2207775 5673687 2935761 +1222581600 5672102 2933899 5673687 2935761 +1222581300 5433439 2657299 5435961 2771710 +1222581000 5058672 2768938 5152992 2771710 +1222580700 5154649 2492864 5277273 2494557 +1222580400 5282828 2366563 6943776 2367619 +1222580100 6941450 2052488 6943776 2298810 +1222579800 6605932 2299421 7700540 2359928 +1222579500 7694620 2360072 7700540 2403200 +1222579200 5925989 2403695 6292731 2551908 +1222578900 6291133 2551529 6292731 2551908 +1222578600 6045870 2499120 6053046 2887973 +1222578300 5331275 2889419 5335533 3104954 +1222578000 4699410 3101954 5061619 3104954 +1222577700 5059978 2656538 5061619 3095746 +1222577400 4984812 3095925 5298371 3239608 +1222576200 5393398 2888160 6216265 3290484 +1222574400 5342064 3395755 5521531 3985472 +1222572600 6088444 2715747 7329740 3209625 +1222570800 6605821 2550630 7012817 3046973 +1222569000 7909100 3011469 10237373 3674771 +1222567200 7096605 3298274 7354848 3692880 +1222565400 7927095 3937559 9358300 4356318 +1222563600 6583311 3776242 7735467 4356318 +1222561800 7372568 3713745 9963257 3994960 +1222560000 7646941 4339215 13036852 4808619 +1222558200 8863965 5024444 11203929 5602759 +1222556400 8497215 4752583 11792926 5172246 +1222554600 9972297 5329655 11834019 5731205 +1222552800 10078151 5439796 11781270 6630670 +1222551000 10305733 5965612 11755221 6615828 +1222549200 12039950 6647342 12372682 8084136 +1222547400 10839776 6699696 12615630 7203015 +1222545600 12664734 5873714 19362934 6581060 +1222543800 15553897 5738522 19419910 6555730 +1222542000 13800514 6559650 15783736 6953440 +1222540200 14841080 5470036 15934827 6558548 +1222538400 15231304 5525702 16042681 6468440 +1222536600 15557995 6827411 17012729 7264082 +1222534800 14678429 5459458 16374210 5926306 +1222533000 15590134 5755127 16783828 6021912 +1222531200 14606681 5455159 16733516 6219505 +1222529400 14398925 6438175 17754086 8292298 +1222527600 14563226 6060676 16156505 8292298 +1222525800 17234354 6098527 20421011 6802829 +1222524000 13734903 6307965 15380927 7172869 +1222522200 14251158 6478089 15286936 7282123 +1222520400 13750228 5745655 14341456 6569216 +1222518600 14421500 5538196 17609081 6614543 +1222516800 11806885 6106250 13895300 7032066 +1222515000 13395499 5992174 14559037 6997501 +1222513200 11647433 4974527 12551456 5817455 +1222511400 12025962 5962835 13381895 6756129 +1222509600 11370808 5546027 11926648 6277448 +1222507800 12351636 4537842 15989592 5311937 +1222506000 9485736 4590681 11218365 4769054 +1222504200 11143503 4138294 14405495 4816953 +1222502400 9050973 3994599 9770920 5789498 +1222500600 7220761 3241673 8186550 3603589 +1222498800 6019284 2926657 6457428 3318781 +1222497000 5534852 2922362 6179120 3706421 +1222495200 5932960 2439370 7428276 2766368 +1222493400 6262874 2212642 7138360 2675997 +1222491600 5156750 3040957 5621443 3416135 +1222489800 5950791 3177537 7116026 3716790 +1222488000 5331045 2780737 5617323 3220559 +1222486200 5883357 3598766 6840569 4566088 +1222484400 6885674 2971809 8608847 3521634 +1222482600 7735200 3122872 9865454 3893635 +1222480800 7324015 3456144 7815186 3893635 +1222479000 9694271 2978198 12248328 3747029 +1222477200 7978867 3412567 8994967 3963528 +1222475400 8029163 3402907 8994967 4153140 +1222473600 7595006 4109120 8172117 5168988 +1222471800 11067289 4109423 13093440 5103465 +1222470000 12144017 4449124 13348295 4922271 +1222468200 9602130 4782395 10712224 5442592 +1222466400 9404475 5219755 10403312 6308222 +1222464600 12769579 6390039 15680804 7936926 +1222462800 11025859 5884517 11705511 6528958 +1222461000 11136822 5876774 12873545 6838778 +1222459200 12375385 6328271 13357000 7324153 +1222457400 13213037 6868698 16291226 8574119 +1222455600 15761710 6820442 18004402 7780559 +1222453800 15668092 6688030 20755542 7489727 +1222452000 14990261 6533113 20755542 7489727 +1222450200 14019950 6155788 15179315 8537279 +1222448400 17951573 7632626 23684847 8537279 +1222446600 18554807 7509031 21279775 7963763 +1222444800 22947139 7159824 32384658 8382337 +1222443000 28876902 7132010 30943443 8382337 +1222441200 26013490 7116225 28920963 7891155 +1222439400 30492687 7216975 35359518 8040520 +1222437600 30477289 6483045 33562704 8953835 +1222435800 32927974 7844015 35005345 9732429 +1222434000 34749304 8385476 38088673 8796421 +1222432200 31119311 7237495 32575620 8555434 +1222430400 28544559 7485978 30434485 9362474 +1222428600 28147733 6887706 30268973 7451301 +1222426800 27374776 7050382 29257204 8215241 +1222425000 30510772 6965704 35383284 7635790 +1222423200 31218184 6755253 35383284 7496519 +1222421400 31057143 6741553 33682602 7090015 +1222419600 32380503 6660483 33968574 7298305 +1222417800 30047700 6986965 33014778 8117623 +1222416000 25230595 6961330 32227362 7538912 +1222414200 20485910 6867432 24458640 7466966 +1222412400 18822477 5321967 23828556 6940288 +1222410600 13281987 3994384 15670549 6034027 +1222408800 9940133 2834590 14067675 3664857 +1222407000 9507183 3156534 14067675 3664857 +1222405200 3842584 2635928 4158840 3371397 +1222403400 4258129 3038680 5030897 3725128 +1222401600 5881818 2460832 6349834 2813882 +1222399800 5186967 3094210 7697549 3557139 +1222398000 4500042 2637504 5447418 3324057 +1222396200 4913677 2919810 5320067 3720090 +1222394400 4780637 2651628 5117375 3289433 +1222392600 5666684 2841628 6680819 3693250 +1222390800 4525902 2891656 4729813 3693250 +1222389000 4951091 3407309 5854890 3667649 +1222387200 4487877 3429880 4841706 4181777 +1222385400 5589363 2891990 6810209 3879203 +1222383600 6073274 3551637 6727907 5082967 +1222381800 6983644 4918241 8726651 6413873 +1222380000 8271739 4922167 11798786 6430811 +1222378200 12084315 4933426 14321406 5520951 +1222376400 9305177 5120503 10517660 6166884 +1222374600 11220362 6459067 12608333 8333876 +1222372800 11250758 7009728 12111346 8333876 +1222371000 12829696 6409621 13802847 7433645 +1222369200 12051926 5566732 13254136 6503797 +1222367400 11231857 5409482 12196994 5846754 +1222365600 12628244 4721038 15187390 5343928 +1222363800 14623473 5520965 17823892 7006015 +1222362000 20196072 7479732 24044496 8174545 +1222360200 24488801 5862085 26806340 6558585 +1222358400 24806119 6546368 26184875 7867986 +1222356600 25756826 7575243 28424523 9974663 +1222354800 30061733 9798499 35271952 10618892 +1222353000 29163252 10049164 32097586 10673699 +1222351200 25887170 9567789 29869487 10444993 +1222349400 27156667 9575770 32021114 10440278 +1222347600 30648043 9207182 32754366 10298883 +1222345800 29304401 8651490 35160895 9471955 +1222344000 32083254 8253519 36459440 9189102 +1222342200 32594147 8657237 37373923 9599047 +1222340400 30186887 7875155 33802313 10057304 +1222338600 29481890 8829277 34581838 10082145 +1222336800 30131345 9757419 34850014 10658896 +1222335000 29125088 9415578 33187351 10776292 +1222333200 35739415 9220118 39133875 10416643 +1222331400 30124641 10332561 33171699 10886557 +1222329600 23054254 9722740 24482262 11119388 +1222327800 22739469 7437769 24852040 8181082 +1222326000 20768227 6004326 23018331 6312045 +1222324200 12950103 3841163 16835855 4527711 +1222322400 7988029 2789412 10422915 3250013 +1222320600 6378238 2675052 7527132 3053726 +1222318800 4168300 2749476 4505434 3177699 +1222317000 4208130 2945101 5466401 3153124 +1222315200 4194016 3016476 6871335 3605874 +1222313400 5796817 2832848 6975197 3273925 +1222311600 6788970 3663860 7604046 4018824 +1222309800 6150842 3177811 7540122 4018824 +1222308000 7562304 3334714 8914489 3846380 +1222306200 10188525 4128914 11517217 4637461 +1222304400 9305743 4357923 10943166 4554836 +1222302600 7047304 4552996 9707156 5185778 +1222300800 6567682 4661796 7613887 5319248 +1222299000 6105965 5357941 7237321 6367803 +1222297200 7888694 5629840 10570848 5913375 +1222295400 7466874 6192263 9925229 7131817 +1222293600 10498286 6880566 12224575 7880997 +1222291800 9270964 7934727 10580602 8779570 +1222290000 10176633 6310893 12365727 7360988 +1222288200 10618932 7645315 12365727 8077675 +1222286400 14258072 8040110 17427824 9885149 +1222284600 13689815 8486173 14698608 8939959 +1222282800 14456174 7870640 17269976 8738826 +1222281000 16265276 7230292 18919200 7728489 +1222279200 19080465 6839011 26845943 7835117 +1222277400 22999568 6509974 26845943 7360825 +1222275600 20640075 6337075 22249075 6719435 +1222273800 21721263 6756843 26239683 7392006 +1222272000 23481810 7440768 25711568 9366419 +1222270200 24121654 10273087 27615126 12101553 +1222268400 31421419 9576652 34945205 10205176 +1222266600 32989070 9463210 43774630 10952171 +1222264800 39830348 9433765 44251324 10952171 +1222263000 38051889 9063750 40739843 9759204 +1222261200 37653006 10103398 42039715 10512144 +1222259400 36160266 8799593 38965269 9523863 +1222257600 39952127 8380773 42720023 9416087 +1222255800 33685865 9647386 40396356 11075326 +1222254000 30439635 9411580 33185343 10100307 +1222252200 34414818 9115598 40153480 10100307 +1222250400 36364769 9011568 38893242 9826283 +1222248600 37591732 8767766 42268959 9092866 +1222246800 32045981 8555856 35774634 9462943 +1222245000 38146331 8010694 42174587 9462943 +1222243200 28283897 6494746 34044303 7598052 +1222241400 23536211 5024468 25223947 5748893 +1222239600 19776542 4383620 22870137 4690846 +1222237800 17568075 4069024 31546770 4564441 +1222236000 8558365 2824626 10825578 3440222 +1222234200 7059634 2286302 8670980 2586512 +1222232400 5106835 2385165 6896118 3034597 +1222230600 4227644 2225346 5414459 2491680 +1222228800 4321917 2145436 5091781 2340895 +1222227000 5094677 2252684 6253517 2711301 +1222225200 5074037 2098404 5652960 2455224 +1222223400 6109199 2148844 9325786 2500614 +1222221600 7750016 2239426 9384500 2541469 +1222219800 9644586 2417415 10885065 2675313 +1222218000 8539797 2648155 9477783 2792979 +1222216200 7372003 3172008 8741634 3628504 +1222214400 6827251 3981815 7576463 4790220 +1222212600 6698706 4384693 7871887 4698175 +1222210800 8890685 4844242 10236001 5302913 +1222209000 8070562 4831898 9097998 5415706 +1222207200 8968413 5107474 9889556 5415706 +1222205400 11566282 5349890 13533577 6000015 +1222203600 13165343 6188740 13913272 6596857 +1222201800 14432688 6100056 21127247 7798382 +1222200000 13396116 5845623 15694294 7798382 +1222198200 15515290 6081071 16738638 7299314 +1222196400 15726341 7213002 18121615 7795905 +1222194600 17687760 7183962 19648406 7893631 +1222192800 18159055 7978042 20662892 9694709 +1222191000 15062480 6535549 17606220 7076375 +1222189200 18189642 7543363 20201725 8964661 +1222187400 20127647 6846154 27398006 7457177 +1222185600 24383433 7294034 30814497 8153719 +1222183800 25212397 8746502 28433466 10030688 +1222182000 29074011 8068700 31028876 9209467 +1222180200 35137379 8924920 41860591 9853463 +1222178400 40894909 8775112 43599843 10121770 +1222176600 40665995 9469607 45318363 10036529 +1222174800 37341591 9349880 47268724 10036529 +1222173000 41075404 7490960 47268724 8366031 +1222171200 36171536 9237107 39565305 11707923 +1222169400 32595427 8214563 37060408 8620043 +1222167600 28814765 7500031 32213137 7801513 +1222165800 16870219 7787386 29584693 9090965 +1222164000 71 9636235 90 10647917 +1222162200 92 29164085 121 60665827 +1222160400 73 31141884 94 60665827 +1222158600 72 8480464 89 9253020 +1222156800 77 7872570 109 8283976 +1222155000 1997 7342317 11617 7778248 +1222153200 76 5128800 183 5829525 +1222151400 120 4646157 183 5510101 +1222149600 70 3420062 85 3937148 +1222147800 69 3531166 90 3988896 +1222146000 78 3003385 100 3486253 +1222144200 101 3238824 197 3576071 +1222142400 64 3117526 79 3762040 +1222140600 71 3338227 115 3800196 +1222138800 60 3350368 80 3723951 +1222137000 55 3204413 71 3529670 +1222135200 37 3147437 57 3257743 +1222133400 48 2819035 72 3097722 +1222131600 47 3154737 62 3673686 +1222129800 67 3433079 123 3673686 +1222128000 55 3123341 114 3365208 +1222126200 59 4144366 74 5086663 +1222124400 54 5291585 82 5679021 +1222122600 72 5037392 113 5832150 +1222120800 98 5144478 166 5530829 +1222119000 86 4905589 174 5223947 +1222117200 75 5916579 125 7120533 +1222115400 64 5558642 78 6424882 +1222113600 58 5268286 76 5771569 +1222111800 59 6101376 69 6987509 +1222110000 52 6255063 66 7334820 +1222108200 65 7871699 80 8280646 +1222106400 92 7547679 264 8488267 +1222104600 69 8166062 85 9345250 +1222102800 53 7791650 64 8747036 +1222101000 60 8419324 73 8860564 +1222099200 63 9535546 103 11358072 +1222097400 57 9172284 73 10013817 +1222095600 72 8866117 91 9705867 +1222093800 16469601 8570134 36367931 8953064 +1222092000 32816219 8185752 37429543 9889662 +1222090200 38988771 7395366 41461189 7861076 +1222088400 41521127 7840029 44456239 8493114 +1222086600 38688335 8712323 43361395 9023951 +1222084800 36584324 8324332 41737037 8812426 +1222083000 30403739 7760777 34857993 8066093 +1222081200 35115016 7665921 45737666 8417948 +1222079400 39674161 8021739 48942532 8700806 +1222077600 33376804 7396349 40579765 8907348 +1222075800 42741656 8112817 49531688 8907348 +1222074000 42971503 7792745 47092512 9174038 +1222072200 32744475 6674651 37752819 7705438 +1222070400 35313789 5304807 45338679 5669641 +1222068600 33072223 4544247 45338679 5669641 +1222066800 23593701 3861862 33191503 4381091 +1222065000 13264594 2967214 18231122 3446959 +1222063200 6456016 2447134 7994106 3446959 +1222061400 5691876 1936471 7050902 2058291 +1222059600 3935559 1873864 4606537 2146977 +1222057800 3745403 2035327 4425653 2537092 +1222056000 3558891 2037142 3810238 2474034 +1222054200 4239368 2112576 5387302 2474034 +1222052400 4527850 1935939 5558882 2251629 +1222050600 5269737 2022827 6540833 2662720 +1222048800 5251152 2166908 5949588 2637165 +1222047000 6152572 2410144 6918490 2668388 +1222045200 5050873 2461886 9238524 2744677 +1222043400 6323916 2293589 9238524 2652660 +1222041600 5131483 2699845 5550201 3004540 +1222039800 5755626 3733268 7546478 4772649 +1222038000 7007396 4401797 8838232 4934906 +1222036200 8982923 4360279 11004999 5131258 +1222034400 9099380 4417124 13020985 4941071 +1222032600 10406756 3942278 14261661 4720730 +1222030800 11674680 4755937 12893558 5278643 +1222029000 11383738 5228583 12893558 5817688 +1222027200 10759606 6193701 11904800 6817491 +1222025400 11993065 5388934 13791166 6157245 +1222023600 13670287 5529103 17574205 7234190 +1222021800 15168922 6174209 17642012 7003149 +1222020000 13025272 6025179 13992633 6396535 +1222018200 12551342 5414551 15152336 6053482 +1222016400 15566333 5236824 17179645 5545701 +1222014600 15243388 4946216 19022161 5623834 +1222012800 16920580 5547114 17964779 6332140 +1222011000 16009417 4332216 18096001 5251984 +1222009200 11788963 5455861 12540690 6197535 +1222007400 16354449 5502049 20342640 6482174 +1222005600 16896272 5463651 18144710 6359299 +1222003800 15043369 5635891 17294119 6613968 +1222002000 14639881 6620961 15497276 7102559 +1222000200 15077096 6256427 17287005 6742482 +1221998400 12345547 6283390 14110476 7028339 +1221996600 10598157 4816261 11299332 5617668 +1221994800 10000795 5356576 11937320 6099219 +1221993000 10423679 5118892 13621740 5829707 +1221991200 11548252 4304264 13621740 5116753 +1221989400 9996386 4683869 13466533 5081785 +1221987600 8751378 3971117 11089670 4522399 +1221985800 6229166 4164458 7889045 4774436 +1221984000 5145829 3448127 5700158 4774436 +1221982200 4621530 3667302 5977679 4435277 +1221980400 4018688 2640605 4386000 3381368 +1221978600 4143653 3033693 5974648 3581050 +1221976800 3343125 3315862 3558463 4534902 +1221975000 3562667 4167657 3984925 4516720 +1221973200 3227309 2627105 3597871 3455709 +1221971400 3742163 2310679 4901366 2703426 +1221969600 3467973 2947071 3702924 3236450 +1221967800 4028830 2957290 6475538 3021572 +1221966000 4930459 2911435 6475538 3204661 +1221964200 5523782 2796450 5920265 3514823 +1221962400 5617270 3651407 6014786 4473228 +1221960600 5630104 3931072 6567788 4135835 +1221958800 4836290 3058420 6124910 3727620 +1221957000 5609762 3960529 10041116 5741986 +1221955200 5871607 6296384 10706589 7479854 +1221953400 5801781 6355549 6508147 6984265 +1221951600 6183786 5640711 7216577 6833887 +1221949800 7804681 5741569 11656767 6312164 +1221948000 8042155 5161479 9072598 5590845 +1221946200 8953925 5730278 10783511 6243731 +1221944400 10297225 4935669 12507635 6143397 +1221942600 11271050 5570124 12376287 6143397 +1221940800 10679330 6212578 12202625 7013805 +1221939000 11883063 6060690 13877546 6866018 +1221937200 9286611 6356406 11493474 7577953 +1221935400 10476658 6759622 13402728 7577953 +1221933600 11381144 6940141 14043094 8269953 +1221931800 10942728 7492750 15463133 8514838 +1221930000 10147138 7142401 10961235 8514838 +1221928200 11535159 7464544 12772369 8463986 +1221926400 12343114 6596463 14278922 7041096 +1221924600 17401759 6615363 26918672 7094675 +1221922800 13381639 5121086 19368669 5957563 +1221921000 12495895 6751055 16572876 8042941 +1221919200 14594230 7416945 17439799 8448080 +1221917400 12892145 6738497 15457328 7145052 +1221915600 11755148 5593203 15457328 6649774 +1221913800 12281906 6842789 13580726 8021405 +1221912000 13619624 7683770 15524474 8678413 +1221910200 12290041 6908304 15133057 7544271 +1221908400 11319342 6320871 14716653 7211647 +1221906600 13539577 5788879 15497495 6694924 +1221904800 12723159 5255086 15214796 5903900 +1221903000 14881732 5514569 17747853 7535520 +1221901200 12206468 6759204 13387235 7535520 +1221899400 9574991 5250526 11919430 5975493 +1221897600 9759249 5142708 10630880 5878815 +1221895800 9353878 5376724 11777849 5762408 +1221894000 8562647 4201565 12588656 4550329 +1221892200 6316414 3609146 8262975 3848707 +1221890400 5330940 3014871 8347734 3412238 +1221888600 4772836 3329643 5928703 4019891 +1221886800 3531745 2792608 4253173 3218112 +1221885000 4002169 3057262 5068659 3543915 +1221883200 4056840 3290730 4844580 3998886 +1221881400 4494584 4233633 5725349 4944225 +1221879600 5270696 3492486 6487050 4807415 +1221877800 6065019 3923149 7437302 4313739 +1221876000 6041119 4008502 7213800 5033943 +1221874200 7521743 4889872 9996470 5513162 +1221872400 5902296 3455447 6935651 3859962 +1221870600 5572318 3924404 6290363 4855188 +1221868800 6048945 5164580 7149180 5890135 +1221867000 7156926 6095303 10261257 6651900 +1221865200 5723054 5836788 7257640 6345872 +1221863400 6776187 5738720 7722151 6208167 +1221861600 8945084 5624746 9901016 6502822 +1221859800 8879761 6180625 11037037 6568017 +1221858000 8901301 5660829 11076309 7242857 +1221856200 10907490 7869654 15001936 9549820 +1221854400 11311513 6641894 15001936 7816483 +1221852600 12531289 7210754 15585923 8598492 +1221850800 14705541 6996132 17124207 9263715 +1221849000 15989576 6839432 18103804 7875247 +1221847200 16962766 6224645 17974110 6946668 +1221845400 18426462 8039397 22484534 9324536 +1221843600 21675615 8234876 23560224 9324536 +1221841800 22516808 8164931 23818022 10008922 +1221840000 24361599 9180756 26319754 10008922 +1221838200 27798699 9138186 32296058 10183804 +1221836400 32774760 8756935 36296848 9237955 +1221834600 35508778 9323635 41250288 10188587 +1221832800 38196233 10006479 42344105 10609714 +1221831000 34312937 10237320 37464919 12068863 +1221829200 36956881 11345077 44791415 12378276 +1221827400 42702537 10460879 51563906 10926870 +1221825600 34074848 9987267 37789171 10860068 +1221823800 39696539 8635262 42627080 9348637 +1221822000 30748425 7940952 33201221 8356044 +1221820200 30905514 8762701 42433582 9916461 +1221818400 41405088 9776648 48513330 11095469 +1221816600 46665275 9857500 53270917 10294752 +1221814800 43294433 8818309 46156949 9393096 +1221813000 36754399 6991357 41083672 8459959 +1221811200 34121757 6756403 40431989 7776940 +1221809400 28722600 6020716 31143619 6936793 +1221807600 26265224 5537695 33640060 6575767 +1221805800 16327131 4598294 24450993 5246147 +1221804000 11267155 4380745 15373884 4858144 +1221802200 7125521 3988266 8188720 4536813 +1221800400 5345043 3827115 7804508 4288640 +1221798600 6188021 3752501 7534459 4136659 +1221796800 5136869 3758157 5731137 4094058 +1221795000 5290272 4259619 5705377 5173216 +1221793200 5399118 4379502 5752787 4954615 +1221791400 6525501 4138950 7960645 4405143 +1221789600 6370985 5534392 7131967 6775433 +1221787800 7266563 6519382 9493238 7391626 +1221786000 6563438 6228542 8990458 6954716 +1221784200 6154601 6050352 6946614 6661518 +1221782400 5866777 5934119 7773833 6425571 +1221780600 6881885 6622162 8574482 7357068 +1221778800 8134180 7028937 11076356 8364406 +1221777000 7859771 7744107 10937840 9584119 +1221775200 11431294 8737184 14588543 10166876 +1221773400 14600636 9311981 16941181 10166876 +1221771600 13047774 7008953 15567079 8060787 +1221769800 15681375 7150141 17062115 7415715 +1221768000 12414216 7091371 14169628 8975513 +1221766200 13185656 7586960 15471398 8596066 +1221764400 15046709 7017104 20442282 7900363 +1221762600 19654847 7116640 23552330 7686219 +1221760800 19616438 7103740 21225751 8278441 +1221759000 19674200 6951370 21951423 7973092 +1221757200 20342549 7647347 22384011 8472903 +1221755400 25138656 8298769 29037166 9424095 +1221753600 31152082 9413731 35802591 11087839 +1221751800 39070224 10757424 45233083 12367708 +1221750000 38897576 8947245 44446413 10410206 +1221748200 36619676 9434322 42246682 11419722 +1221746400 37322686 10300351 43864196 11419722 +1221744600 43992116 9411797 47432541 9962447 +1221742800 47172301 9214900 54958137 10264532 +1221741000 46559961 7928106 53421729 8906533 +1221739200 44348011 7383122 54259354 8035602 +1221737400 49165520 7034447 54259354 7948278 +1221735600 43823869 7223396 55466562 8022453 +1221733800 35207835 7623963 48314084 8061758 +1221732000 43772318 8520407 51334401 9583807 +1221730200 42571741 9610058 51255362 10386686 +1221728400 46185160 10589103 55102952 10983632 +1221726600 31636313 10235782 35892116 12062819 +1221724800 29263807 7838577 34642795 9232174 +1221723000 30325336 7819074 35623281 9232174 +1221721200 26318221 6375327 34999578 7856508 +1221719400 19190652 4664739 27330601 5073871 +1221717600 11965233 4655052 14838424 5073871 +1221715800 8567437 3974074 10790707 4657614 +1221714000 5598521 3377161 6071318 4323273 +1221712200 4510458 3578847 5712853 4031550 +1221710400 4650060 3602125 5184646 3816473 +1221708600 5069933 3778414 6219556 4210090 +1221706800 6621003 3584988 7286865 4516942 +1221705000 7305440 4250405 7953858 4576075 +1221703200 6852124 4502952 9045849 5507129 +1221701400 10015276 4216216 12573829 4901774 +1221699600 8489732 4775151 9286940 5287103 +1221697800 7228455 5414035 9406574 6187135 +1221696000 6545205 5053599 7965467 6633305 +1221694200 7381845 6589048 9261303 7411681 +1221692400 7705861 6949008 10424361 7534114 +1221690600 10328648 7035231 11123483 7623898 +1221688800 10604365 6715613 12814823 7316427 +1221687000 11290471 7226459 12814823 8131676 +1221685200 10884403 7820968 12350467 8325677 +1221683400 12284093 8251553 13756268 8588681 +1221681600 13413844 7852267 14083874 8380550 +1221679800 13675685 7176781 15465305 8191877 +1221678000 15990383 8207978 18706859 8822011 +1221676200 15580740 8696200 17171891 10090911 +1221674400 30373941 7811519 40061791 8647339 +1221672600 34800252 7376182 39417796 8444757 +1221670800 35705065 7038091 39417796 8526223 +1221669000 37396874 6704680 44476572 7238870 +1221667200 43185952 8194392 47866585 11333142 +1221665400 47320519 10142102 50410592 11333142 +1221663600 46510208 9805873 50542484 10618916 +1221661800 53327075 9647636 61852266 10618916 +1221660000 50771111 10499940 54721407 11322560 +1221658200 54180186 9513974 60319246 9986591 +1221656400 52430448 8733431 57073212 9125290 +1221654600 57944842 8574940 65139281 9258147 +1221652800 55494133 8599527 58729360 9221307 +1221651000 44747678 7702050 58386198 8738514 +1221649200 42962219 7095602 47934393 7993176 +1221647400 34845777 7740826 41421839 9118591 +1221645600 38023552 8600923 41831828 9167836 +1221643800 35682423 8440945 38003020 9130358 +1221642000 32777816 8091637 38981303 8502060 +1221640200 38178857 8568005 39982272 9065948 +1221638400 32898289 7032957 39233799 7575452 +1221636600 28441945 7922757 32061868 9425910 +1221634800 27290528 6570768 32061868 8209059 +1221633000 18306733 5190731 22375379 5659053 +1221631200 8253759 4039849 9881366 4835056 +1221629400 7006498 4014784 8089482 5404089 +1221627600 4378146 3020395 4738573 3925513 +1221625800 4591296 4540839 5615554 5147790 +1221624000 4391940 4324317 5384389 5213624 +1221622200 5747681 4570145 8416228 5270473 +1221620400 5272737 3935841 6036379 4225747 +1221618600 6518798 4112130 7307011 4793473 +1221616800 6626619 4087804 7445840 4648254 +1221615000 7072416 4572117 9165957 5077717 +1221613200 6485483 4120508 7429744 4894957 +1221611400 6286729 5764156 6974789 6581516 +1221609600 7104889 5180629 10070245 6378619 +1221607800 7706161 5425025 10988580 6063216 +1221606000 8346939 6054868 10988580 6451045 +1221604200 8872769 7083504 10986364 7857140 +1221602400 9355900 6594198 10387957 7177958 +1221600600 10083336 7795057 11443929 9084195 +1221598800 9232549 7924662 11983229 8665124 +1221597000 11172296 8730739 12041209 9207003 +1221595200 12551861 10135272 13362639 10775093 +1221593400 12964969 8265297 14266471 9656752 +1221591600 12996623 9756124 13962321 11039559 +1221589800 12650716 7273115 15226248 8126045 +1221588000 11804589 8447665 16380705 9142198 +1221586200 19591775 7833441 25218400 9831096 +1221584400 22567097 8624259 38619915 9374701 +1221582600 30399073 9488332 38619915 9933116 +1221580800 21750388 10105191 23615285 11099655 +1221579000 25807630 10359014 30390703 11423475 +1221577200 33872567 11730278 43557918 12629232 +1221575400 36584940 11218590 40832108 12416038 +1221573600 36462126 11252421 39289503 13077233 +1221571800 32686054 13027352 42039058 14169113 +1221570000 36537951 11124413 43298427 12555578 +1221568200 37969379 10137407 44003751 10783670 +1221566400 41227432 9673628 44003751 12091635 +1221564600 37403960 11523256 46757576 12689494 +1221562800 35471147 7554479 46757576 8280580 +1221561000 31040332 7983505 33799159 9197159 +1221559200 35148414 8761864 44021847 9241104 +1221557400 36407288 9060434 41524142 9779391 +1221555600 32484900 8144365 41506817 9020863 +1221553800 34025099 7971961 38970622 9501400 +1221552000 30249435 7661233 33644554 8897025 +1221550200 35754611 8579194 44463221 9445060 +1221548400 24018876 7088907 29904286 8727187 +1221546600 19395197 4633254 23853079 5982632 +1221544800 9361782 3222201 11994403 3599808 +1221543000 6934614 2867863 8141555 3202801 +1221541200 5458243 2807190 7619157 3463343 +1221539400 4990927 3107954 6234700 3655366 +1221537600 4246889 2362323 7410601 2552733 +1221535800 6172384 2462907 8858022 2686242 +1221534000 4628700 2594327 5066749 2963663 +1221532200 5507502 3121903 6836134 3637690 +1221530400 5655010 3090955 6285127 4086029 +1221528600 5920515 2933630 6828967 4174657 +1221526800 6128307 3725244 6627497 4214503 +1221525000 6817622 4617448 7586619 5087718 +1221523200 6555945 4541171 7570935 5715885 +1221521400 7087285 4925694 7811574 6150745 +1221519600 6613942 3673326 7205915 4012315 +1221517800 6889225 3985250 7803865 4540913 +1221516000 7749724 4351614 8815067 5740417 +1221514200 8359142 5788911 10108002 8322174 +1221512400 10115093 6729314 10670360 8322174 +1221510600 9886872 7543264 11001703 7759396 +1221508800 11615055 6514016 13261290 7335965 +1221507000 11783590 6834208 13322210 7782941 +1221505200 12918349 7605193 16003623 8419333 +1221503400 14447878 7718000 17880471 8319962 +1221501600 15999280 7228747 18013472 8235867 +1221499800 13970383 8148087 15396308 9067643 +1221498000 16719758 8044107 18078483 8948724 +1221496200 18189971 7782978 20137324 9800544 +1221494400 28028648 8258363 41818837 9800544 +1221487200 32760290 7801326 40027646 11178878 +1221480000 33651166 6639514 46150261 9552779 +1221472800 34187363 6878032 43800338 9428729 +1221465600 21100847 5758769 34044061 7866571 +1221458400 5783622 4042650 11264032 4698907 +1221451200 6056719 4269651 9485933 5383476 +1221444000 5931740 4382979 10388125 4893537 +1221436800 6226542 5620319 9190691 7634159 +1221429600 7087517 7023470 9021548 8697021 +1221422400 10250234 9070830 12314213 13086183 +1221415200 11316392 8139389 16527328 10486613 +1221408000 11705306 7874440 15605592 9436479 +1221400800 11537014 7998699 14767670 8941425 +1221393600 10534391 8079535 14222727 10009952 +1221386400 7832915 9247204 11899423 11275294 +1221379200 4701611 7274542 7612052 9507101 +1221372000 3320430 4270118 4287181 7958656 +1221364800 4531720 4525729 6944037 5423932 +1221357600 4558072 4591615 6003728 6293350 +1221350400 6159826 5353724 10840017 7691065 +1221343200 7727525 5850224 9701677 7323403 +1221336000 11054979 7243264 15046123 8922410 +1221328800 12129135 7556904 16301083 8899579 +1221321600 11897951 6700098 14381012 9164899 +1221314400 14612936 7293745 25124207 9252759 +1221307200 10875768 6918540 16370114 7963164 +1221300000 8905387 6290620 12879416 8418535 +1221292800 6415638 5877898 9785307 7825625 +1221285600 3793623 3065942 5529871 4460425 +1221278400 4104048 3000390 6469468 3674264 +1221271200 5772660 3291545 11436674 4177474 +1221264000 7598011 4162477 22885918 5411996 +1221256800 7361078 5034683 10119060 6841557 +1221249600 12387727 5533042 15890750 7253795 +1221242400 13463983 5510653 18825988 6799604 +1221235200 21317458 8186319 32250907 9768344 +1221228000 28416652 8510450 33623710 11494420 +1221220800 25740089 7680032 33776270 10650241 +1221213600 27765964 7560134 34478468 10820270 +1221206400 18483041 4661156 27157384 6612690 +1221199200 5366475 2763138 9969518 3166367 +1221192000 4944740 3005406 7514120 3783258 +1221184800 5562953 3455902 7797675 4376162 +1221177600 6066089 4425087 10465964 5715387 +1221170400 8209874 5131654 11112946 6073328 +1221163200 10179465 5745538 13795358 8026498 +1221156000 15849562 5803199 23701512 7675136 +1221148800 23191585 7484227 29790750 8903298 +1221141600 28484846 8578257 36515570 10191916 +1221134400 22621694 6609482 27227355 8824824 +1221127200 22264589 5668173 26927189 6571074 +1221120000 16436655 4304214 25765664 5910341 +1221112800 6185824 2560076 13660937 3333320 +1221105600 4164721 2732510 6256505 3410097 +1221098400 5405203 2664138 7717142 3390381 +1221091200 7531071 4654674 11371401 6010301 +1221084000 9098707 6240168 10998376 7699260 +1221076800 11278106 7545346 15350268 10087695 +1221069600 15145553 6623738 20635152 8529805 +1221062400 24239178 7342563 33713867 9541376 +1221055200 32126798 8605192 37840397 12022751 +1221048000 28082719 7182467 35903610 8836063 +1221040800 30861438 7598589 36935006 8826041 +1221033600 18779138 4612321 28330135 7055055 +1221026400 5056475 2352609 8580425 2857793 +1221019200 4490410 2395746 10623492 2934472 +1221012000 5346619 2888605 7357890 4256019 +1221004800 5676763 3663350 7161519 4408173 +1220997600 6728730 5469486 9033274 7869284 +1220990400 13071287 6592410 21648005 8296846 +1220983200 14629278 7305714 18307980 9290825 +1220976000 22118891 6980347 36298798 8302821 +1220968800 28909673 8340868 35026853 11396186 +1220961600 26563482 6586659 36416065 9923257 +1220954400 32465189 6275982 41521577 8043134 +1220947200 19705814 3804261 29217492 5923517 +1220940000 5459431 2620310 10407549 3171164 +1220932800 4408700 3117598 6474971 3964349 +1220925600 5244660 3289475 6609422 3865346 +1220918400 6350519 4712016 9406593 5826207 +1220911200 8842544 5612292 12458401 7064483 +1220904000 13064844 6151759 18598850 7808802 +1220896800 17258929 6160458 22694983 7706368 +1220889600 32326774 6815835 40514392 7902466 +1220882400 35130803 6381994 41223490 7177736 +1220875200 31329805 5783880 45565756 7637174 +1220868000 34038041 5582160 45565756 7829817 +1220860800 21401873 4345433 32014892 6266469 +1220853600 5475378 2900219 8685685 3923505 +1220846400 4820513 2621842 7250351 3019325 +1220839200 5474767 3103140 6810639 3950613 +1220832000 5373054 3832170 7344000 4826744 +1220824800 7911733 4807806 11058430 5672414 +1220817600 9379243 5337731 11272832 6937021 +1220810400 11055953 7273438 14112076 9375404 +1220803200 11573444 6407153 15468756 7901179 +1220796000 11356440 5824860 16647110 7212357 +1220788800 10169306 5280135 12495355 6607720 +1220781600 7699362 5435252 10339272 6852166 +1220774400 4855024 3344787 7053856 4534837 +1220767200 3596849 2629715 4590654 3439233 +1220760000 4920818 2510967 8502413 3179719 +1220752800 5149282 2549028 6526000 3219967 +1220745600 6397333 3475595 8432573 5302673 +1220738400 8520095 4801805 14141491 6257181 +1220731200 9572568 5762672 17390407 6617479 +1220724000 10823217 6646243 14059501 7889820 +1220716800 13324199 5692353 17033584 6719834 +1220709600 12186995 5331526 18174572 8219836 +1220702400 10232980 4524742 14581609 5826896 +1220695200 8544937 3980161 14421117 5484451 +1220688000 6348250 2690241 14421117 3909654 +1220680800 3500745 2191505 4986566 2965595 +1220673600 4366834 2393379 8125835 3517065 +1220666400 6081729 2716163 7814641 3769046 +1220659200 5685963 3963536 7344490 5947644 +1220652000 8821818 4833548 12151384 7606245 +1220644800 12354561 5732654 17004818 7606245 +1220637600 17909653 6268192 22513929 7469676 +1220630400 28028487 7788114 35530618 9456090 +1220623200 31479858 8367041 34403408 9714736 +1220616000 32275598 7031454 38843022 8713190 +1220608800 29616167 6870460 35645581 9134379 +1220601600 20741451 4672868 27681147 6629822 +1220594400 6264263 2464017 10036177 3509370 +1220587200 5224829 2785840 7700755 3562788 +1220580000 6076742 2989833 7226522 3905841 +1220572800 6005025 4313860 8380232 5801501 +1220565600 8774746 6567055 11748687 8318379 +1220558400 12046724 7391466 15833892 9563215 +1220551200 15258714 6651447 21532028 8185827 +1220544000 26214736 8360483 33922265 9914297 +1220536800 25457996 7919223 31772069 10236278 +1220529600 24329647 5612060 31507559 6943178 +1220522400 25766115 5482914 36298600 6519512 +1220515200 15637518 3538575 24182990 5299184 +1220508000 5878810 2640406 9468229 3519146 +1220500800 4426118 2889933 6064992 3661311 +1220493600 4882945 3506991 6822490 4251169 +1220486400 4723399 4123089 5722737 5562817 +1220479200 7527240 7673992 11106851 10054272 +1220472000 8977877 6796304 11217681 8944206 +1220464800 12607454 7220935 16521182 10763612 +1220457600 21664583 7425493 29350181 9120695 +1220450400 28056350 7889134 35778821 10016965 +1220443200 22312034 6543822 28744832 7853295 +1220436000 24115757 5781411 28828495 7107614 +1220428800 14565843 4296245 21611989 6647936 +1220421600 5288423 2612216 7877489 3335482 +1220414400 4684523 2959407 7003976 3627099 +1220407200 5422682 3250121 7674592 4058337 +1220400000 4997384 4021339 5635554 5943396 +1220392800 21961203 5824129 50127459 7053801 +1220385600 20278722 7110035 40443518 9166789 +1220378400 17280313 7749374 32965217 9919808 +1220371200 21381846 7947693 29999312 9272898 +1220364000 35393961 8065621 52558303 9379027 +1220356800 38262482 7030001 57975734 8422054 +1220349600 33757076 6522913 57975734 7892037 +1220342400 16622797 4969043 23835684 6285880 +1220335200 5436001 4322843 10282065 5403505 +1220328000 4716114 3812976 18441501 4896354 +1220320800 17280826 3819055 32573100 4417041 +1220313600 12625407 4104915 24125009 5758157 +1220306400 12772024 6038875 33746366 8028189 +1220299200 14343856 6870816 39001437 8118847 +1220292000 15880490 6456981 36470394 7872315 +1220284800 23317184 2940755 34722723 6565179 +1220277600 34214705 6321089 41585971 7864105 +1220270400 30159359 6366731 35395386 8547479 +1220263200 31711950 5800775 39723764 7415227 +1220256000 20925612 4203823 31691682 5707518 +1220248800 6383069 2265078 13199264 3081041 +1220241600 5228670 2135055 7508229 2619002 +1220234400 6339200 2447602 9318310 2874177 +1220227200 7253848 3399075 8713893 5286400 +1220220000 9445493 4985828 13423306 6513672 +1220212800 11819159 5867901 14214056 7679374 +1220205600 12524025 6149283 15395925 7401720 +1220198400 13940407 6880653 21107985 9528000 +1220191200 12093244 5215789 17618957 6653986 +1220184000 11132264 5630817 12970875 8348786 +1220176800 9234665 4233720 11483456 5472458 +1220169600 6390247 3185216 9994622 5018600 +1220162400 5039243 1941340 6271136 2684663 +1220155200 5972647 2408292 7863979 3308228 +1220148000 7038861 2923267 9839988 3716717 +1220140800 8182353 4222182 12092148 4923753 +1220133600 9806415 4584348 12177814 5934756 +1220126400 9976870 5269972 13078872 6715317 +1220119200 10632778 5377456 13232466 6324107 +1220112000 11375502 5668979 14345726 7543929 +1220104800 13206116 4862753 14865601 6392405 +1220097600 11218826 4072144 13446165 5068499 +1220090400 8181048 3672026 11391271 4589965 +1220083200 5658746 3328519 6858269 5145903 +1220076000 4774909 3576142 5819731 4301053 +1220068800 5336629 3363299 7222859 4152884 +1220061600 6547013 3340969 7972375 4372333 +1220054400 8516170 3516913 12014591 5399132 +1220047200 11100755 4344901 13252058 5586233 +1220040000 14690877 4479899 19634690 6452601 +1220032800 15256601 5013992 20308534 6323133 +1220025600 26977910 6871903 32834120 8592100 +1220018400 32057295 6888139 36119752 8322223 +1220011200 31393978 5882920 36778129 6789836 +1220004000 29355608 6013085 36321762 8308074 +1219996800 21271444 3875199 28628469 5015597 +1219989600 7659868 2489661 12556893 3808815 +1219982400 6425862 2620661 10705037 3227728 +1219975200 8253999 2918323 10303881 3407301 +1219968000 10764522 3350072 16237732 4503887 +1219960800 10242352 5849327 13247161 7929278 +1219953600 13258390 6463541 15880752 7767915 +1219946400 18416035 6749234 25203124 7670057 +1219939200 27761473 7746401 33318686 9633435 +1219932000 33154708 6945639 41863575 8801219 +1219924800 30936402 5913698 40715924 7214509 +1219917600 33400662 5357138 40758417 6615122 +1219910400 19418845 4238137 27328577 6457103 +1219903200 6682964 3373496 11451374 6569208 +1219896000 5882025 2871748 7091716 3405154 +1219888800 8219433 4013414 11863590 4675402 +1219881600 9510733 4098376 13417550 5405285 +1219874400 10561714 5623009 13277296 7779047 +1219867200 13123204 6741859 17642699 8225101 +1219860000 18112243 6416680 28961222 7581059 +1219852800 29501470 7492261 38474652 8728076 +1219845600 35557428 7550355 46268932 10274592 +1219838400 32133858 7424969 36222123 8373431 +1219831200 32917807 6884072 42842392 7985588 +1219824000 22024639 5621267 32167319 7814972 +1219816800 7919582 2804234 14444895 3233779 +1219809600 5965685 2908220 7623520 4068738 +1219802400 7474322 3231728 8853340 4593516 +1219795200 9882445 4432052 12334336 6221817 +1219788000 12916850 6071972 15983270 7573975 +1219780800 14289238 7653462 16321335 9530230 +1219773600 16569033 8183743 26952396 9944717 +1219766400 30129626 8159857 39455611 10348887 +1219759200 32872392 10436558 43048640 11506993 +1219752000 32517925 8561981 44581576 10403409 +1219744800 36601854 7163740 44689167 9358208 +1219737600 21886867 4605015 31638658 5964732 +1219730400 6692365 2667972 10326349 3763603 +1219723200 5148152 3020778 6946208 3635073 +1219716000 5728969 3757301 7833003 4931189 +1219708800 6179036 4412864 7824692 6223707 +1219701600 7732524 6201806 9913959 8969995 +1219694400 12343407 6119996 15409062 8066950 +1219687200 16745707 6976090 25046107 10339333 +1219680000 26974074 8311499 31792301 10028884 +1219672800 28323628 9073066 32538702 10642917 +1219665600 27529851 9407413 34915024 10966119 +1219658400 29051953 7975991 39237077 9343585 +1219651200 21384861 4759373 43246569 6216442 +1219644000 5304329 3045082 9289249 4449644 +1219636800 3911261 2884496 6017430 3397034 +1219629600 4768736 4232972 5716030 5760547 +1219622400 5218433 5487512 7341414 7678602 +1219615200 8298205 6751349 10477366 8157642 +1219608000 8335154 5981942 10208922 6797406 +1219600800 9851800 6263536 12259515 8040575 +1219593600 10584309 6880788 12900056 8040575 +1219586400 8669708 6516539 10805553 7841146 +1219579200 9230858 5414690 11898117 7430260 +1219572000 6230437 6101887 10021345 7062433 +1219564800 3666558 4352919 5297408 5780880 +1219557600 3205548 4889369 4943908 5877618 +1219550400 4706319 4473000 6398990 6152715 +1219543200 5505426 3346526 7005934 3812224 +1219536000 6132803 4328105 8343650 5925232 +1219528800 7248892 5037741 8609644 6763157 +1219521600 8217344 5802727 10029228 7135087 +1219514400 8084076 8025336 10649493 9306982 +1219507200 9934615 7312466 12839771 9097664 +1219500000 10447484 6476535 13853501 7347500 +1219492800 11492438 5387479 20742976 6948913 +1219485600 8408263 4816386 13100569 6041092 +1219478400 4561938 4028633 6308090 5177772 +1219471200 3510900 3281831 5521052 4381128 +1219464000 4397239 2956676 6816044 3567024 +1219456800 5617638 3649408 6975936 5514712 +1219449600 5970242 4878624 7808519 6824720 +1219442400 7349767 5729647 10440043 7029908 +1219435200 9851087 6248039 12042925 8140268 +1219428000 14252624 6967499 18383646 8752887 +1219420800 21678092 8031701 29490948 9840137 +1219413600 32466477 8061247 37609382 9397750 +1219406400 28898102 6652052 36528846 8584491 +1219399200 30516603 6701933 36528846 8326066 +1219392000 19922114 3748503 34219829 5320253 +1219384800 7173417 2750931 11888704 4137273 +1219377600 6300054 2522092 9390393 3075299 +1219370400 7451108 2752857 9567299 3614258 +1219363200 6480547 3474076 8257170 5187551 +1219356000 9010578 5946521 10311981 9534582 +1219348800 12137460 6192855 19215081 8039885 +1219341600 19776862 5554733 24909607 7148815 +1219334400 34747540 7796032 43271306 8869724 +1219327200 37993906 6643805 42952566 7784544 +1219320000 34011833 5860201 39326281 7244964 +1219312800 34504371 6132843 39884662 7040237 +1219305600 24090266 3692234 32623363 4817903 +1219298400 9714743 2605233 14931558 3731288 +1219291200 8063188 2670293 11093134 3215185 +1219284000 9143229 3351351 11273486 4981851 +1219276800 10833266 3672434 13130637 5743290 +1219269600 13361692 5917230 15355972 7418025 +1219262400 17243132 6452556 21148966 7771563 +1219255200 21511298 7001835 30325668 9423749 +1219248000 34146931 8759588 43960895 10167104 +1219240800 38666843 8781258 44273295 10830257 +1219233600 37878848 7278255 44987009 8484476 +1219226400 37407614 6100368 45719822 8078765 +1219219200 22004689 4371002 31457139 6151911 +1219212000 7925078 2505344 13594529 3316413 +1219204800 6994303 2545394 9938732 3282742 +1219197600 8820894 3132234 10727101 3953305 +1219190400 9703348 4043804 11517257 6848147 +1219183200 12233506 5652165 14649209 7153068 +1219176000 15735349 6405317 18087339 8833023 +1219168800 20765138 7083570 28408678 9639664 +1219161600 35007623 10264919 44035274 12763560 +1219154400 40912189 11118140 45613300 12517984 +1219147200 35236930 9545132 43558521 11082778 +1219140000 34804257 7357415 41247122 9050791 +1219132800 25188907 5650388 35371132 7251138 +1219125600 8834910 3149182 12595645 3812056 +1219118400 8015739 3366772 9380452 4276306 +1219111200 8825263 3472631 11497863 4107946 +1219104000 9424405 4103944 14980281 6014077 +1219096800 13658436 6649310 16162831 8875057 +1219089600 15448839 7410065 19355403 9325429 +1219082400 19883638 8023233 31069075 9425428 +1219075200 39589564 8560301 55421062 9548276 +1219068000 50689212 9079299 57999739 11482630 +1219060800 49498790 7937998 58093537 9408563 +1219053600 48097948 8306638 56536268 10400609 +1219046400 29900033 4878413 44110793 5995394 +1219039200 9807439 3291899 15526530 3858827 +1219032000 8333838 3408783 10404127 4466924 +1219024800 9168150 3654620 10792272 4810358 +1219017600 10502798 4280868 12445629 6127245 +1219010400 13089948 5711812 14868743 8015879 +1219003200 15014412 6258371 17720726 8547000 +1218996000 16032396 6381383 18150346 7370984 +1218988800 18335177 6327143 20288068 8042395 +1218981600 19341825 6541442 23389083 8206551 +1218974400 14139139 5795783 17923526 7831787 +1218967200 12989667 4681899 19390936 7423065 +1218960000 8963917 3384806 13793469 5652182 +1218952800 6750073 2663423 8277788 3467561 +1218945600 7501998 2791231 10826289 3323947 +1218938400 9152584 3182282 10568480 4197641 +1218931200 11821853 3827284 17111668 5941541 +1218924000 14360231 5237019 18985396 6959142 +1218916800 15526122 6038526 18280046 8109648 +1218909600 15880647 7223460 18841615 8825073 +1218902400 19684001 6904483 24846999 8616097 +1218895200 19318925 6009710 23162475 7302508 +1218888000 15894435 5272363 19241256 6630428 +1218880800 17370251 4799902 20256197 6485797 +1218873600 8815450 3608855 14688341 5178424 +1218866400 7374386 3153773 9268355 3739118 +1218859200 8245227 3387290 10992461 4450123 +1218852000 10179007 4316776 11896072 5364382 +1218844800 11927241 5351737 14304931 6824733 +1218837600 14178043 6684720 16959845 8554902 +1218830400 18592469 7282057 22737787 8774427 +1218823200 23067751 7423529 34112690 9151836 +1218816000 42986429 7474321 50946339 10160960 +1218808800 51092541 10012390 59506308 12400037 +1218801600 44770028 7736371 55465187 9652559 +1218794400 42453950 7734847 51862577 9894442 +1218787200 24926278 5531347 35278787 8086893 +1218780000 9102511 3804619 14636390 4565297 +1218772800 7442085 3512976 9985246 4415939 +1218765600 8734351 4346311 11115281 5291399 +1218758400 10886874 5493467 15553143 8152297 +1218751200 12151404 7677083 14578332 9822274 +1218744000 17302726 8588120 21777209 10281085 +1218736800 23661948 7908990 38372335 9737920 +1218729600 40654312 9805053 48202741 11057507 +1218722400 47606657 9759823 56022724 11354830 +1218715200 43807571 8491034 57319277 12343745 +1218708000 50823671 7629467 64340890 9484661 +1218700800 32719747 5797187 42008058 6952771 +1218693600 11811796 3814451 21871101 5057399 +1218686400 7955699 3874293 10950286 6462598 +1218679200 8637212 5263914 11099713 7060708 +1218672000 10118146 7167513 13250490 8676768 +1218664800 13677031 9077319 17671654 10927967 +1218657600 21110459 9094951 26999000 10826077 +1218650400 24926106 10005441 36490132 11683802 +1218643200 44993735 10244031 55672846 11891250 +1218636000 54965273 9593467 65402522 11132851 +1218628800 54703613 9504030 69992230 11696026 +1218621600 51612682 8755836 58451237 9807046 +1218614400 35587943 6922097 52782483 8954035 +1218607200 11295894 4768855 18780163 5535946 +1218600000 9411158 4934241 16585432 6260779 +1218592800 10069094 5080438 18264197 6260779 +1218585600 12351013 6132042 19960219 7544952 +1218578400 15075320 8577374 18661822 9694839 +1218571200 20167391 9465878 24401767 10750425 +1218564000 27030758 9467801 35822166 11053419 +1218556800 47785933 12071537 60632551 13591121 +1218549600 58234266 10090156 67363228 12601494 +1218542400 49431284 8868648 63272668 9900510 +1218535200 53040587 9140565 65313750 10882327 +1218528000 35826142 6559115 48216575 8446454 +1218520800 9838396 4664755 19389859 5761699 +1218513600 6400837 4607987 8093863 6289678 +1218506400 7965840 4902613 10110651 5764798 +1218499200 10119871 5830028 12835572 7460416 +1218492000 14015321 8477988 17061316 10830005 +1218484800 20858382 10153757 24264808 12157563 +1218477600 26168449 10407423 35064668 12037661 +1218470400 48799119 11298078 59031839 12518083 +1218463200 57960640 11707824 65909945 12868500 +1218456000 52066379 11248370 61169674 12596800 +1218448800 52530271 10320711 62668816 11738847 +1218441600 34927315 7628406 48780899 11124170 +1218434400 9068337 4182610 14834172 5134845 +1218427200 5623028 3667886 7830179 5134796 +1218420000 7448387 4641122 9138289 5289527 +1218412800 8888726 5281848 11234231 7063928 +1218405600 13217213 6486217 16203561 7611506 +1218398400 13071626 7764354 15558071 9325656 +1218391200 13493113 8995607 15590844 11266266 +1218384000 16487582 8534579 22464873 10176878 +1218376800 16475917 7149304 18933277 8054401 +1218369600 13458903 6198444 16819922 7516707 +1218362400 11528863 6530107 14052530 7950017 +1218355200 7982040 5091521 10986965 6879668 +1218348000 5034996 3193932 8567252 3793054 +1218340800 5335417 4002561 7621536 5192397 +1218333600 7617324 3622268 8931549 5264020 +1218326400 8458247 3513980 10348155 5792755 +1218319200 10355855 4345397 12645999 6538397 +1218312000 12206091 5649446 14845819 6872390 +1218304800 14172404 4447335 18557183 5864215 +1218297600 16204581 5620203 20278636 7158471 +1218290400 16835018 4696083 20831129 6429592 +1218283200 15226197 3205554 17840010 4591934 +1218276000 13177864 3479881 17097459 5016059 +1218268800 8373533 3411138 11971091 4645901 +1218261600 6533365 2079879 8261829 2838642 +1218254400 6460967 1931530 8818005 2803492 +1218247200 8815847 2222281 15920407 3783014 +1218240000 11538506 2985183 17476276 4456737 +1218232800 13967742 4475848 19185722 5859494 +1218225600 18031235 5289729 22332372 6533773 +1218218400 22689596 5622210 29120750 6744967 +1218211200 36590996 7101623 44534366 8512802 +1218204000 45226006 7164718 53335659 9030609 +1218196800 37426634 6958450 49434328 9495125 +1218189600 36279205 5238768 47858340 6365595 +1218182400 24952635 3800533 38255884 4769078 +1218175200 7608598 2494439 11967218 3507946 +1218168000 6188406 2517487 7739568 3857925 +1218160800 6276909 2649596 7101898 3601530 +1218153600 8195785 3557885 11243890 4840504 +1218146400 12308983 4412016 18155557 6553167 +1218139200 14587097 5551515 18155557 7156661 +1218132000 20154954 5578380 32209460 6830606 +1218124800 31378202 5907313 41554751 7282909 +1218117600 37461424 6490718 43598569 7541637 +1218110400 33342945 5654005 42027508 7051525 +1218103200 34390289 4661988 42913714 6139068 +1218096000 22955708 5896241 32660711 8656580 +1218088800 6643059 5970188 10470283 8656580 +1218081600 5229992 4202049 6965472 5058894 +1218074400 6277915 4612550 8569378 6026293 +1218067200 7517723 4549089 10194194 6037579 +1218060000 12520905 7267070 16749780 11472427 +1218052800 13225118 7080489 18052594 9540976 +1218045600 18589801 7638615 29531535 9897294 +1218038400 33954540 7111504 44674892 9192617 +1218031200 36121535 7737609 44042508 8990654 +1218024000 30874547 6933925 40195220 9638646 +1218016800 33685245 6449641 42388859 8308047 +1218009600 24264049 5666778 32657346 7202152 +1218002400 7086931 4062497 11363593 5108029 +1217995200 6682564 4342953 8497626 5504608 +1217988000 11859681 6983847 18057376 10878091 +1217980800 12865155 8404655 19822221 10783169 +1217973600 10467082 6549292 13634895 7918550 +1217966400 13341041 6511337 16696061 9272487 +1217959200 17067181 6613916 23078169 7973412 +1217952000 29204669 7917646 35382260 10093328 +1217944800 35695036 7292891 51900845 9206780 +1217937600 31778636 6610085 41819547 8307848 +1217930400 36872562 5640340 47697201 7466245 +1217923200 21852147 4082325 33249837 5051406 +1217916000 6623625 3551341 12706523 4584312 +1217908800 4939794 2607820 6766942 3329529 +1217901600 5972790 3351477 7576910 4041213 +1217894400 7398323 3955205 9882938 4933190 +1217887200 9833969 4367843 12288390 5694346 +1217880000 13677753 3938098 17125709 4615108 +1217872800 18427281 5169976 30532915 6236890 +1217865600 33106053 5944050 48948276 7929019 +1217858400 36948690 8443442 46519930 10201754 +1217851200 28043654 6859624 37612841 8052886 +1217844000 27589513 5110264 32634989 6424411 +1217836800 18377002 4017225 23884506 4679910 +1217829600 6790675 3183343 12969424 5140987 +1217822400 5067939 2837907 5942585 3244633 +1217815200 5042578 3219597 8260447 4657079 +1217808000 5134263 3733123 7183733 5054076 +1217800800 7441053 3582715 9008476 4750441 +1217793600 6891579 4060690 8257839 4662295 +1217786400 8329555 4194591 10413269 5007449 +1217779200 8437353 3730754 10413269 4418912 +1217772000 7793888 3196095 12483675 3549378 +1217764800 7352943 3671552 12483675 4716096 +1217757600 6757116 3856856 9775154 4246164 +1217750400 3795782 3205407 5111294 4042809 +1217743200 3494079 2800797 4685916 3799350 +1217736000 4002981 2812600 5968363 3500205 +1217728800 3949932 2900327 5340356 3322956 +1217721600 5802756 2896013 7537150 3413784 +1217714400 7247770 2735343 8477513 3712795 +1217707200 9079102 3634413 33193932 5394199 +1217700000 8266164 4142372 10371381 5115486 +1217692800 9277073 3387785 12065891 4070592 +1217685600 8831520 3207491 12140963 4114259 +1217678400 7395405 2997651 8918373 3445820 +1217671200 7498066 3094883 9410049 3866485 +1217664000 5044812 3295325 7770898 3881559 +1217656800 3949167 3256611 5066724 4848339 +1217649600 4168279 3265657 5832500 4683738 +1217642400 4807644 3718367 5706545 4707560 +1217635200 5650903 4006305 7697548 5352039 +1217628000 7387904 4261144 9183895 5352039 +1217620800 8751415 3845589 15388159 4448880 +1217613600 10632115 4407807 13103380 5384138 +1217606400 11347250 4367276 13798962 6251339 +1217599200 11027661 4053910 13637932 5033644 +1217592000 9765364 4115052 12101966 4950369 +1217584800 9134433 3918545 10732864 4588583 +1217577600 5682261 4087362 12132996 4862032 +1217570400 4075063 3296986 5363296 4287121 +1217563200 4601165 3076560 6424755 4703694 +1217556000 5853921 3485508 7268175 5163993 +1217548800 6617268 3661681 8917889 4210181 +1217541600 7640467 4195354 10457958 5347744 +1217534400 9053501 4511659 14404645 6958916 +1217527200 12791563 6508847 17674702 8791596 +1217520000 20797961 5863559 26222627 7360502 +1217512800 25135986 24401857 30468565 49147123 +1217505600 25987530 44642966 29686880 48709932 +1217498400 33003195 46222583 44166883 49532276 +1217491200 28617685 37851195 44794502 45259327 +1217484000 6869870 28025590 14245701 31076667 +1217476800 5306439 27250097 7027418 29897259 +1217469600 6387628 29153232 7453483 33303488 +1217462400 8873017 33440888 11363806 41271216 +1217455200 12815358 42389955 21244806 46641316 +1217448000 16607453 44823850 27749324 47057499 +1217440800 21480308 46078655 37111415 51251629 +1217433600 34589197 50386147 50730228 54550086 +1217426400 44778826 51607916 51398578 56493362 +1217419200 39464909 47762003 45739730 53219831 +1217412000 40395718 47252587 52949589 52326451 +1217404800 25465186 39712894 30996438 47312399 +1217397600 9017940 30231271 15159863 36127439 +1217390400 6754119 32488103 8730517 38586487 +1217383200 7679803 33820999 10034421 36580153 +1217376000 11102371 34373741 15072692 39322279 +1217368800 14953254 41863680 21608169 45223544 +1217361600 16862978 43950569 21618370 48597143 +1217354400 25355532 46947715 39164286 50782563 +1217347200 38490505 49308099 47531616 52111796 +1217340000 50502452 49595680 61729079 53109226 +1217332800 43309955 48891803 50068281 55921106 +1217325600 44026707 46743801 56650331 52235150 +1217318400 31456720 36393439 40382621 41949251 +1217311200 9655465 27761611 23644457 32727387 +1217304000 5769447 29361876 7716923 35270773 +1217296800 6982449 30461905 8319984 34486929 +1217289600 9694101 32890741 13174214 36608691 +1217282400 13853517 38029131 20954241 42349154 +1217275200 16351243 41651816 18960688 46286721 +1217268000 22747279 48972394 37497683 52560808 +1217260800 48306235 53564319 63559711 57814376 +1217253600 56246485 51969135 63500015 56485007 +1217246400 48742494 48926487 63500015 52432359 +1217239200 51916094 48320369 66072497 53120016 +1217232000 30413272 38445452 42570590 45391085 +1217224800 8404260 30765765 17361072 34165122 +1217217600 7113264 31491450 9503425 36366410 +1217210400 8614047 34191337 11522282 36500920 +1217203200 10115974 34342080 14127670 41774168 +1217196000 14722384 40420152 17846204 44366226 +1217188800 14954193 40508324 18166326 45800685 +1217181600 16149978 42512239 18626456 46080489 +1217174400 11167748 34228284 25203847 47368230 +1217116800 11787595 36146840 23029724 45064329 +1217030400 26214985 40688244 60059297 55524305 +1216944000 29038538 42490433 75616617 56737469 +1216857600 29296700 41114680 61138951 52484724 +1216771200 32298667 42249205 74091126 58885114 +1216684800 31260842 42350657 74763620 56398366 +1216598400 14723231 35592897 27454257 47024389 +1216512000 13856311 37413995 25597123 48020680 +1216425600 29908457 42208615 67768620 57363642 +1216339200 32540535 42545045 75287840 57971404 +1216252800 31948046 43550656 77415411 64852362 +1216166400 28499979 44082249 69386698 59179074 +1216080000 28581550 43200463 65526618 56093406 +1215993600 13962086 36140200 29800040 48891387 +1215907200 13129671 36123660 31593712 47078484 +1215820800 26369064 42890726 58395855 57633900 +1215734400 27186789 40974885 64330756 54544090 +1215648000 32290691 38620080 77541561 52644526 +1215561600 29854618 40923974 67702259 57552756 +1215475200 29244701 41403392 74999775 56564471 +1215388800 13791264 34233208 25146571 46083538 +1215302400 12676708 35646111 21448966 45540224 +1215216000 27599929 42194922 68436679 77718532 +1215129600 30330185 42623682 68160450 63447412 +1215043200 29001724 43642944 65455397 57438205 +1214956800 29257421 44709542 65639536 59451017 +1214870400 28197339 43371165 66650064 54769862 +1214784000 10901747 39841716 22142734 47347689 +1214697600 11562086 39564574 22452817 46822911 +1214611200 26454704 43207551 61392228 55626181 +1214524800 28827812 44142147 68834281 57980080 +1214438400 30924909 43144002 69535060 57543457 +1214352000 30786722 45570573 71220416 58262729 +1214265600 29160852 44471069 71073760 62260550 +1214179200 11920613 39318786 23205317 49053251 +1214092800 12106089 40648414 21949365 50767327 +1214006400 21684816 49069839 44908170 76900932 +1213920000 19749136 47205407 45904255 76220265 +1213833600 24486048 44621830 59261725 58830293 +1213747200 32557372 45511053 73964143 60219741 +1213660800 32934636 41797656 75611080 60789672 +1213574400 16080101 36108810 33010239 53381330 +1213488000 15814386 34429032 28557465 49507465 +1213401600 29655722 40995891 64552737 55811347 +1213315200 32491968 42558659 76271959 59689870 +1213228800 33755876 43341179 71999936 60885871 +1213142400 34206632 43310067 77635380 66223348 +1213056000 33252274 43649408 72339561 63583333 +1212969600 16421920 37060253 32375276 51348339 +1212883200 18333176 40489479 47757322 63091259 +1212796800 28526208 44378984 63287385 63740794 +1212710400 31581467 45797844 68910237 65188187 +1212624000 31249618 43556894 74070867 59717662 +1212537600 36080248 43710697 76240489 64943731 +1212451200 37205996 45972115 76695136 67469858 +1212364800 16497485 36653343 31199330 48874648 +1212278400 16957037 39639156 30528534 49788788 +1212192000 35031457 45533143 76363663 67076557 +1212105600 35949824 46584696 77356624 66341801 +1212019200 36284745 48031099 77110960 68774211 +1211932800 35541638 44265493 77256851 62733104 +1211846400 35389976 45258744 77677126 64768348 +1211760000 17249460 38243547 33974852 53615663 +1211673600 17918311 38474820 37599095 51022387 +1211587200 33757901 46260319 76326738 64116523 +1211500800 35428537 44461098 77247928 60325850 +1211414400 36862555 46951974 77294753 64892202 +1211328000 37985144 48549471 77387609 63510857 +1211241600 36717376 50188968 75961159 71971807 +1211155200 18027129 41608830 37341981 55501397 +1211068800 19190000 43573163 35991837 58708766 +1210982400 37104790 50407716 77380816 71615509 +1210896000 35459401 50531959 74184431 68510585 +1210809600 36103838 53113016 77557161 76671833 +1210723200 30071028 51649576 66293044 77302233 +1210636800 15148767 41319896 30391485 57382974 +1210550400 12383374 38749636 26088468 52570932 +1210464000 12726290 36554376 22702285 47569959 +1210377600 28169875 45559442 66327225 69007377 +1210291200 31363608 46751227 66621880 64547136 +1210204800 31495982 45348152 72141426 60445763 +1210118400 32044587 45047952 74658889 67888842 +1210032000 31520987 44117649 74573522 67071357 +1209945600 13192117 37298839 23496913 49628168 +1209859200 13310131 37240749 22941467 53365435 +1209772800 22726736 42393836 54304711 59621122 +1209686400 17620275 39341683 36957411 53781526 +1209600000 34361455 43254921 77747018 61601325 +1209513600 35204646 45912100 77602874 63344080 +1209427200 35351491 44772139 77681309 63526157 +1209340800 13267514 37065588 24288669 48576498 +1209254400 14040602 40353904 25809240 63456415 +1209168000 32880825 47159722 77687014 68748631 +1209081600 34822131 47369197 77440377 66674903 +1208995200 34329090 47840526 74975557 70967019 +1208908800 37920764 46934085 77571209 65572954 +1208822400 35401339 43163919 77251557 63204392 +1208736000 15979800 37657272 29166986 54049767 +1208649600 16124157 40289786 27156216 56593012 +1208563200 33856082 43588194 77011176 65334440 +1208476800 33221746 43537650 73380102 59581124 +1208390400 33608125 43621351 76810002 62637009 +1208304000 33078828 45672129 77227604 63003980 +1208217600 32697977 43244452 75192741 58386780 +1208131200 16928352 39395601 33580790 56352335 +1208044800 18051182 39665608 34174604 53520874 +1207958400 31837083 44230982 69434532 58471715 +1207872000 36200113 48728098 76634512 62960560 +1207785600 35903568 46765993 77127059 61657942 +1207699200 34903959 48030774 75010258 66665375 +1207612800 35273575 50856331 77102250 76314977 +1207526400 16341086 39020663 33148689 54226680 +1207440000 16531649 38048122 35336599 53471280 +1207353600 31509951 36968769 76230716 52502222 +1207267200 28825324 32891963 68987394 56411971 +1207180800 27576595 30384300 59714861 47789585 +1207094400 26705521 29655513 63871237 49198117 +1207008000 25533163 27624185 51415901 42292434 +1206921600 11115087 21721242 20755104 32776850 +1206835200 12274895 24991257 26783267 41487108 +1206748800 22800500 28570507 49627127 48061173 +1206662400 23886354 28584482 57943360 41284975 +1206576000 24770272 29834402 54032803 43604826 +1206489600 22769821 28307516 53876776 42573472 +1206403200 12087102 23000227 23766363 35032232 +1206316800 9938969 20911266 17179970 31981695 +1206230400 10618154 21229338 19726438 33066406 +1206144000 12432514 21748631 26578653 35344948 +1206057600 23186200 24144368 56097628 38814980 +1205971200 26810367 26504916 59860279 45168639 +1205884800 26482473 27503711 59892838 45408667 +1205798400 25913831 26543834 55936420 42344501 +1205712000 11354710 21782257 22763620 37164984 +1205625600 11474019 20587198 23110180 30922290 +1205539200 22389355 25792187 52379082 41017705 +1205452800 22657398 27002949 54829888 42165969 +1205366400 26281673 26514177 56225026 38918886 +1205280000 25814333 27163630 61594551 49156568 +1205193600 23885262 28046059 61761963 46050342 +1205107200 10521666 21199037 25300868 35691622 +1205020800 10888227 21880240 21675712 33185448 +1204934400 21925330 24548168 48806719 38002143 +1204848000 22663884 28898834 50315485 42752209 +1204761600 23217770 28137444 55178113 42911966 +1204675200 22822647 29963950 49482266 46023366 +1204588800 21582891 25388185 47981122 40976439 +1204502400 9387863 20023496 18195227 31813864 +1204416000 10295271 19196883 22659522 28617000 +1204329600 18601102 24631847 42530613 38719755 +1204243200 19718415 25818222 43381604 37283127 +1204156800 22318737 29102646 51956691 47119697 +1204070400 25937551 25295006 59311168 38746041 +1203984000 25029970 25148418 63412291 44892824 +1203897600 10971505 19158841 21254736 31618111 +1203811200 12405255 18650088 25351399 28483342 +1203724800 23835451 24441140 56452027 38068818 +1203638400 26396337 30389405 58415524 48909044 +1203552000 26249005 22359112 60152666 33308698 +1203465600 26674473 23633947 69996841 38880193 +1203379200 25785491 24350076 63332838 43103570 +1203292800 11209900 17342797 27295749 26711311 +1203206400 12337864 18131552 31200230 28193998 +1203120000 21534749 21988911 49279549 33552047 +1203033600 21453315 21014258 47294877 34259636 +1202947200 22782985 21808298 46387546 33761955 +1202860800 21473905 20542339 46457814 30587533 +1202774400 20206997 20826514 46759209 35129849 +1202688000 10066802 16649459 20365565 26049149 +1202601600 10945012 17923358 27837003 29471888 +1202515200 22189381 21804111 50266500 32913965 +1202428800 22923078 21234053 53350913 34511071 +1202342400 24282348 23139292 60280525 40079748 +1202256000 25128385 23402558 55962532 35956845 +1202169600 24358538 22900274 57850037 39195956 +1202083200 12552948 19168586 27354724 30046493 +1201996800 13496781 19831494 27161517 32786404 +1201910400 21207327 26602021 48573160 39256183 +1201824000 20481106 23455924 44974632 34402331 +1201737600 21616547 25025065 51607677 38923024 +1201651200 22570343 26465959 52045740 41309948 +1201564800 21518742 25229643 54718451 43284961 +1201478400 9155380 19936785 16466760 31068746 +1201392000 10758274 22082743 21198052 33771010 +1201305600 19468182 23957772 44198374 38222492 +1201219200 20510463 26783562 43029649 43522523 +1201132800 22909818 26059519 48962644 42588995 +1201046400 20778478 25126440 47405945 40353193 +1200960000 20862685 25513084 47601130 44188893 +1200873600 8707143 19366852 15849938 36341167 +1200787200 9680996 19783698 18838368 31854291 +1200700800 20657764 23710071 49138186 40337804 +1200614400 20593878 25448645 46394279 42383067 +1200528000 21238879 27484430 45823023 45301682 +1200441600 20707204 28878007 47222879 44497169 +1200355200 20364492 30053365 44649848 53358028 +1200268800 9727181 21712371 18803484 35427765 +1200182400 9812574 24530715 19939933 39635113 +1200096000 20700741 27000718 50530625 39641935 +1200009600 21033799 26273329 53323467 39725488 +1199923200 21609869 27152648 47067633 42824276 +1199836800 20655923 25161389 47721662 38246818 +1199750400 18760347 22924009 43499736 39268834 +1199664000 8442078 17203591 15958758 27047513 +1199577600 8535336 18328534 16166213 27749655 +1199491200 14537278 23625075 31788445 38191789 +1199404800 14167010 21666321 30076600 36454369 +1199318400 9578496 20154862 23484910 31536568 +1199232000 5317575 14083941 14704380 23849638 +1199145600 6097904 14978846 15575134 23615996 +1199059200 6311075 15974261 12690311 24992493 +1198972800 6553011 15955251 12335087 22987247 +1198886400 8663156 18985445 17892518 28688840 +1198800000 9451273 18466829 26534304 27860600 +1198713600 6402105 17565433 14184642 26482575 +1198627200 5228235 14160923 13354010 22400887 +1198540800 5493257 17595903 13066070 25929321 +1198454400 5811402 19850892 11247653 33685565 +1198368000 6390820 20089551 12346870 30720291 +1198281600 16345623 20793913 47295990 29670817 +1198195200 18261067 22415414 45617685 38023465 +1198108800 19771291 22912749 51624849 33315533 +1198022400 20167002 23998024 45096605 37392161 +1197936000 21656806 24695327 50042605 38734052 +1197849600 9935323 21421291 19880114 35766773 +1197763200 10609127 25016637 19026723 35156571 +1197676800 20841285 25304554 48232603 37791966 +1197590400 23126849 25500642 51832325 39083101 +1197504000 25753424 29278784 65991022 45715345 +1197417600 24767200 30640070 55238268 44137672 +1197331200 24924580 29240032 57683295 45292696 +1197244800 9678630 22059670 18206651 32434221 +1197158400 10082845 23595972 20622541 36887390 +1197072000 20641658 27149825 57905044 40439540 +1196985600 22537586 28923193 53777452 46122477 +1196899200 22778252 26719890 54041278 41097568 +1196812800 23882929 26335069 52900355 43110724 +1196726400 23065646 27091202 57795303 41645898 +1196640000 10047518 22341407 18364525 33234154 +1196553600 10648339 24464802 20445505 35376600 +1196467200 20526590 26731146 49084144 40542947 +1196380800 22017890 27802639 51001453 44369969 +1196294400 22427088 27892464 51551055 43360251 +1196208000 22622165 30159576 54255447 47439302 +1196121600 22643987 26790153 60094665 40149068 +1196035200 9504869 20932691 16507900 32466784 +1195948800 10343594 22169583 18389966 31918641 +1195862400 18966278 25130413 46345270 38603299 +1195776000 22754883 27529537 65794902 44037373 +1195689600 21698836 28760128 54589553 44075482 +1195603200 22007364 29222426 54687681 45631816 +1195516800 21845207 29272625 53281272 43611123 +1195430400 9389430 23897775 19288372 39445094 +1195344000 10372443 22693243 23756117 33050807 +1195257600 19177330 29425089 46101671 41453062 +1195171200 19850994 29735757 50133107 45812823 +1195084800 19474315 31368753 45607000 48279602 +1194998400 20341533 33065317 48394469 48424951 +1194912000 19092079 33342284 45195338 46374855 +1194825600 8221580 29132509 16498633 37035719 +1194739200 8869248 30105720 18152589 38647163 +1194652800 17986294 32442197 49346293 45624928 +1194566400 18922113 35006942 42315612 42638108 +1194480000 22290833 35795180 49005558 48847780 +1194393600 23500459 34851234 53309102 47995192 +1194307200 23158107 34132504 54041800 54186206 +1194220800 9873032 24950372 22180446 36348421 +1194134400 10933209 28392416 20184164 36884475 +1194048000 21139624 31377774 49679144 45711741 +1193961600 21154389 29937916 50806473 43415798 +1193875200 24817817 32696948 64940584 49728242 +1193788800 24766772 34121749 58806728 54236779 +1193702400 22768100 32556664 54693808 47549549 +1193616000 9994447 25658235 19456023 37572370 +1193529600 10849776 26672767 17738621 36692051 +1193443200 20967002 32654625 46743898 46632930 +1193356800 22191150 32594793 47503027 47599003 +1193270400 24091382 33051973 64657586 49911108 +1193184000 23963904 34053797 52032426 44294531 +1193097600 22971303 32673495 53156344 44752141 +1193011200 9726777 28102427 21977093 38613780 +1192924800 10206113 32592461 23094207 41676671 +1192838400 21129401 34537633 46581651 44528670 +1192752000 23477444 34135491 54295510 47245426 +1192665600 21856482 32913720 48923332 44703823 +1192579200 21922091 30840623 48855804 40554040 +1192492800 21160459 28312375 50689023 38155626 +1192406400 9879768 24363554 22215727 35741886 +1192320000 10289244 25606073 18757705 33502159 +1192233600 18883381 29737786 46300802 40768091 +1192147200 20858296 32013016 44812262 42089898 +1192060800 21426627 32553437 53336143 42002769 +1191974400 21833071 33662826 47843611 47272433 +1191888000 21325252 30422743 48476146 46780881 +1191801600 8975925 27479445 16165635 36430571 +1191715200 10119045 31802099 21296550 37761384 +1191628800 19257168 30978326 47240706 41683726 +1191542400 21213580 33917203 47681742 51321486 +1191456000 20900709 32263696 47353220 47515100 +1191369600 18677459 32030940 43923496 47198689 +1191283200 18301973 30514153 39874290 48012280 +1191196800 7736765 24911872 14974561 36322777 +1191110400 7608830 24943628 16861322 38547104 +1191024000 17209576 29999028 39315818 43036640 +1190937600 18620775 27829633 42766682 39646196 +1190851200 19321726 29351778 43889284 40058710 +1190764800 18238054 28373310 42171935 41829585 +1190678400 17115723 26014148 42290090 38258285 +1190592000 7593419 23940968 15667517 32542375 +1190505600 8527476 26838653 14422022 33789178 +1190419200 18531981 33667597 54414942 47129176 +1190332800 18115296 31431021 43729721 37726752 +1190246400 17704494 31219905 38512458 39086901 +1190160000 18785292 30407391 40513736 37111463 +1190073600 16440724 27310629 42918799 38262675 +1189987200 8544848 20746490 16314182 28796594 +1189900800 9064891 22980431 17807817 32922418 +1189814400 15028331 27427427 31869205 38307830 +1189728000 15548673 27764485 32439138 38650452 +1189641600 15233884 29325012 32995927 41045190 +1189555200 16649317 30023363 40940260 44938566 +1189468800 15432628 25167693 35085410 35162161 +1189382400 8007870 20868928 13699815 31118747 +1189296000 7892102 18967293 16633547 29732133 +1189209600 14499737 23362335 35776257 34607064 +1189123200 15847797 25313511 35586328 33312025 +1189036800 17148275 24246900 41266431 34735565 +1188950400 16086124 24220812 37179049 34851609 +1188864000 15462789 23917285 32833747 34025204 +1188777600 7413115 18398330 11784590 27694311 +1188691200 7913372 19406860 13449915 27992870 +1188604800 15236716 24199891 35966594 34005400 +1188518400 14611123 26439435 28707079 36545297 +1188432000 14563134 27217172 28871866 34781942 +1188345600 14773183 26137388 31025825 36076668 +1188259200 14190655 23931318 33796541 34374783 +1188172800 5782629 19170474 12841944 27017601 +1188086400 7288089 19964658 16750778 26944837 +1188000000 12392566 23640269 30284987 33865556 +1187913600 13294125 27173184 28181235 38533779 +1187827200 14066294 25889990 27626848 39139572 +1187740800 12985258 24485934 30748005 34333202 +1187654400 10530514 24538267 24151374 37201560 +1187568000 5874080 19138450 10153570 27955526 +1187481600 6929136 18855587 11986131 26879259 +1187395200 12785256 25090069 31614272 36746636 +1187308800 13476931 25192326 30929581 36239012 +1187222400 13729228 23145479 29324911 34086006 +1187136000 14612006 27480983 38913026 52229117 +1187049600 14363366 25155574 31366716 39326143 +1186963200 7375097 18437763 12766838 34620142 +1186876800 7459347 17865522 11492585 25770031 +1186790400 13377919 22391896 30228445 34997786 +1186704000 13754230 25034238 29473936 35024358 +1186617600 14225222 25078113 33836682 36311632 +1186531200 13209456 25073975 29859350 35022078 +1186444800 12293834 25702995 27795474 34968191 +1186358400 5756566 19754378 15097254 26870346 +1186272000 5241427 20188956 11700012 30182745 +1186185600 11286483 26502840 27219762 35357615 +1186099200 11997441 25898600 31312029 34716298 +1186012800 7004723 22671342 12559210 32542146 +1185926400 12290358 24186987 28460060 34108202 +1185840000 12259275 22963557 26865332 35481744 +1185753600 5460191 18249679 9088228 27954222 +1185667200 6189604 18226740 12575612 27139093 +1185580800 12127774 22274554 29085544 32582957 +1185494400 12541208 24261695 28609585 34227441 +1185408000 13443522 27044454 30492700 35873491 +1185321600 13522181 25087973 30644629 36825124 +1185235200 12773904 25317112 28427805 35841228 +1185148800 5826825 19473531 10044660 30658065 +1185062400 6412064 18476303 11549138 26753456 +1184976000 12416530 24032085 25215984 35422127 +1184889600 13258281 24673908 30718699 35052638 +1184803200 12236137 25751950 30285144 34393176 +1184716800 14145479 24174915 30889569 37295763 +1184630400 13881373 21605252 31371143 39262488 +1184544000 6379214 15235791 10708695 23624266 +1184457600 6554702 15631007 11700845 22610868 +1184371200 12984314 20767153 28404626 31189642 +1184284800 13686958 22306299 30105822 34433034 +1184198400 14980384 23783632 32514794 37817772 +1184112000 14566644 25916721 29893469 47460724 +1184025600 14428441 23238208 31210685 37613398 +1183939200 6571164 17630070 10425056 29977594 +1183852800 7090850 17823891 13680330 25371796 +1183766400 14296824 22212286 32014343 33961642 +1183680000 15142345 23815488 31743961 39964588 +1183593600 15742234 25018715 34204116 37261604 +1183507200 17203640 25407579 43952113 36504709 +1183420800 16776004 26005624 37539566 41594429 +1183334400 7307826 19522816 30837000 30105703 +1183248000 7674249 20456906 13771938 31946133 +1183161600 15100770 22750287 33302058 32363802 +1183075200 16777437 24328543 34814024 36411708 +1182988800 15985012 25603319 39928064 38656964 +1182902400 15623604 26821344 34717370 43005873 +1182816000 16190883 25573482 38992140 35593319 +1182729600 7187371 19635652 11581546 29125167 +1182643200 7976528 20070975 13521976 28920373 +1182556800 15409254 23861677 35706978 36463506 +1182470400 15749130 25274381 35933554 36053532 +1182384000 15137117 27728789 31516416 37862442 +1182297600 16413329 28736452 32718566 43004947 +1182211200 15812663 26442558 34203293 41395835 +1182124800 7529022 21064498 13392137 34702302 +1182038400 8624236 22578106 16427657 35712555 +1181952000 16472359 27490162 34215065 40520165 +1181865600 16791322 27158278 36193050 41599755 +1181779200 18037160 28056602 34252842 42479471 +1181692800 17709232 27327776 39224531 40045805 +1181606400 17454692 27382953 36047280 42134606 +1181520000 8237302 21710206 15636035 32700671 +1181433600 8457587 24992541 15107848 33554915 +1181347200 15529915 30776299 35291026 42157317 +1181260800 16120301 31110548 36770497 39555298 +1181174400 18203929 32033784 39731999 41800194 +1181088000 18233847 33820644 39432787 44505061 +1181001600 18070211 31367334 40423399 46428173 +1180915200 7764301 28601686 15012840 38902328 +1180828800 9408484 31828120 16746186 38060765 +1180742400 18655249 34908832 44253202 46095733 +1180656000 18886031 35764838 39986115 48175282 +1180569600 19339518 29977430 45316061 44456744 +1180483200 18126556 26868321 40811891 38318430 +1180396800 9422643 24441202 19484950 35410876 +1180310400 6706086 17647014 14840265 32046330 +1180224000 8167269 21583234 14535951 31245785 +1180137600 15774122 28493253 35500026 41281338 +1180051200 17178887 30590784 40328459 46775815 +1179964800 17268523 29187772 35751308 45895761 +1179878400 18511070 27523836 42149371 45356745 +1179792000 17547267 27031477 40556548 44794928 +1179705600 7414561 20682844 14659157 33314098 +1179619200 7547941 21755848 13578986 31182597 +1179532800 13725626 25288688 29115745 37403659 +1179446400 11665668 26487935 22287719 38086265 +1179360000 18265017 30290828 42334883 44401067 +1179273600 18656779 33471267 38685959 46795441 +1179187200 18053979 29607961 38705090 46286440 +1179100800 7710146 24241498 13226354 36397292 +1179014400 8962606 24885430 14510864 37177954 +1178928000 16667720 30521470 36074095 43864356 +1178841600 16932271 29242560 39342475 41664432 +1178755200 17773981 32231095 42806073 47152823 +1178668800 17883212 35196967 41493070 50084865 +1178582400 17854923 30444015 38683077 44420492 +1178496000 7734891 23228208 13425295 37383247 +1178409600 8535790 25591574 15011510 37397693 +1178323200 16786308 28832632 37340932 43952544 +1178236800 19227827 31429796 40530944 44057032 +1178150400 19502345 28839132 44434200 43096811 +1178064000 11781285 26698374 22092367 41470797 +1177977600 16345563 25133090 35035540 40470658 +1177891200 7983425 21518024 16079287 35357027 +1177804800 8538397 23901107 13667948 38243759 +1177718400 17336734 27641138 37378794 42170224 +1177632000 18379474 30129954 39953680 47100790 +1177545600 18388523 29648615 38976931 44553455 +1177459200 19738109 28933497 39939856 44956141 +1177372800 19913722 31000292 42261730 45923635 +1177286400 8610194 26893437 17606195 38873539 +1177200000 9502469 29103764 16965797 40853397 +1177113600 17621588 33191820 40210255 42579615 +1177027200 20564939 33810794 47313331 47889829 +1176940800 19591251 30197886 41472518 42854669 +1176854400 19334420 31465368 42744518 42355966 +1176768000 16664726 29238609 35959085 42457010 +1176681600 7460463 24212360 14479653 35860165 +1176595200 7488599 24484904 12538576 35715347 +1176508800 14023613 28351766 29434684 38620892 +1176422400 15679557 30858191 34471413 40731116 +1176336000 15683058 31266683 33197601 43000573 +1176249600 15169611 29257131 32308164 41443179 +1176163200 7605917 25520512 16739787 37083512 +1176076800 6382488 22533977 12130749 34802125 +1175990400 6242610 22823860 12258035 32404475 +1175904000 7714268 26630532 15315328 37006077 +1175817600 14749783 28797298 35607331 37891249 +1175731200 15326702 29619305 34499833 43314482 +1175644800 16532455 29403580 35924011 40189927 +1175558400 16606426 29510798 59320313 43998666 +1175472000 7135605 27303239 11888632 39358767 +1175385600 7646126 29276994 12347985 39402207 +1175299200 14998660 31228611 32882463 44782908 +1175212800 17291403 30106927 35430170 44508782 +1175126400 16816310 30999928 34215926 43871993 +1175040000 16705317 31121991 35084953 45492481 +1174953600 16559313 31315791 34492526 46011379 +1174867200 7440917 27210511 12473660 40380634 +1174780800 8378687 26436891 13963585 36475956 +1174694400 16174428 29461601 40365568 44494325 +1174608000 17572456 30884010 37928907 41751466 +1174521600 17720402 29605290 36946299 42309851 +1174435200 18300389 28395062 37979261 40605926 +1174348800 16683748 27023472 35360677 37236318 +1174262400 7752466 24574075 13126044 36259595 +1174176000 8108164 24241523 12373899 32378702 +1174089600 14213002 26929690 30687069 37238674 +1174003200 16531788 28482924 33343809 38061170 +1173916800 16897923 28647756 34289388 38888422 +1173830400 17358538 30487083 42464840 40914119 +1173744000 16459466 27364214 38328700 37489160 +1173657600 7854130 25827037 13735372 36242094 +1173571200 9024265 25894551 16127282 32898636 +1173484800 14977144 32636870 34353706 48040795 +1173398400 14190200 32759533 32725217 39939858 +1173312000 13930649 32139918 29934289 42740182 +1173225600 14786844 26969297 33051414 44917591 +1173139200 14842342 25950546 36713980 42157929 +1173052800 6824758 22838613 10915174 34983082 +1172966400 7292040 24869771 11812996 39471794 +1172880000 13501290 26460682 28545269 38066492 +1172793600 14479386 26413435 30602330 37599974 +1172707200 15157469 31549960 31402030 40874912 +1172620800 15540936 30835041 31861817 42947906 +1172534400 14696492 31186944 32123373 45448212 +1172448000 7479739 26355743 12833442 39210187 +1172361600 7550734 27062976 12396008 39548762 +1172275200 13550931 26537839 31484967 39441405 +1172188800 14198990 29347060 30360384 40958316 +1172102400 14708837 32696987 33974780 56196159 +1172016000 14812357 30845346 33549312 75353278 +1171929600 14629593 27862732 31608609 40217465 +1171843200 7375841 24616431 15460519 36762089 +1171756800 7829688 24100491 15460519 33060297 +1171670400 13722890 28559765 30203139 42964748 +1171584000 14630925 29101273 31610044 43731525 +1171497600 16126523 27802014 36311223 41596050 +1171411200 15507242 29351571 33957236 42186468 +1171324800 15527719 31169866 34882759 48279949 +1171238400 6779394 24902405 12741886 35414966 +1171152000 6918181 26823254 11600292 35007986 +1171065600 13408870 27421858 28886881 41397876 +1170979200 15304297 27162684 37811609 39630579 +1170892800 15599878 29437685 36759504 42352824 +1170806400 16592609 29284657 36473431 41528094 +1170720000 15561049 29356158 36108265 42056540 +1170633600 7568543 24867053 14152596 37105223 +1170547200 7975790 28102345 17668302 40580245 +1170460800 14679979 29750282 32006162 41823403 +1170374400 15469893 31552457 35231334 46947341 +1170288000 15524948 29649448 35698767 41192843 +1170201600 16942830 29503897 39395604 43128088 +1170115200 16249360 29007673 35479927 42446312 +1170028800 7375509 24849782 13239825 36999129 +1169942400 8057529 26108674 14438138 37965105 +1169856000 15432701 26761358 37693951 38759539 +1169769600 16271244 25920312 34318653 39398999 +1169683200 15712078 28530584 31836366 38551623 +1169596800 17584787 32463673 36374421 46239393 +1169510400 17088395 29606124 38264149 45685148 +1169424000 7849805 27922949 15023256 46513578 +1169337600 8664552 23061910 14545483 33737529 +1169251200 16221568 25791823 35166137 35842747 +1169164800 17666575 27745765 37319109 39884610 +1169078400 17976207 31000544 40947550 44702921 +1168992000 17551219 31396350 38170558 47398840 +1168905600 17193223 28884265 37975365 41309460 +1168819200 7815709 21949320 14168850 29440442 +1168732800 8345985 22466769 15985792 32535345 +1168646400 17171223 27544748 39709936 38416711 +1168560000 16388089 27246306 44603159 46206735 +1168473600 16143843 26645518 37086879 39508314 +1168387200 16693642 28591360 36917695 39681033 +1168300800 16280773 28852040 35534328 45304532 +1168214400 6782697 21941394 14032501 33282079 +1168128000 7100324 23684229 12016975 33633112 +1168041600 12988631 26234075 27021220 38615564 +1167955200 14666684 26309334 30325599 36550102 +1167868800 13233435 26583892 31005602 35793466 +1167782400 8221414 23832200 16427015 34224013 +1167696000 6067289 18726983 10376985 29559603 +1167609600 5876944 18583060 9683217 30652075 +1167523200 6997461 17887407 12930748 27612613 +1167436800 8381471 21845056 15146670 33107855 +1167350400 8321454 23487691 15004987 35090433 +1167264000 7680743 20836702 13944775 34429058 +1167177600 6791994 18611782 13779439 29491971 +1167091200 5018831 17962900 7859050 27634062 +1167004800 5062350 21323951 10867792 35628067 +1166918400 6022948 25100694 10736368 35169922 +1166832000 13146579 24483232 28607570 34743629 +1166745600 15726906 28078560 35545933 38655861 +1166659200 15779128 29639957 31924286 43930930 +1166572800 16360565 30135935 38293165 44048250 +1166486400 15762594 27505962 34278853 38898807 +1166400000 6419619 23795506 11022213 33919482 +1166313600 7074328 24451915 12207461 32283947 +1166227200 14584136 28370011 32200350 37078985 +1166140800 16591596 27977434 34696112 38742219 +1166054400 15943627 30080699 33999770 40670748 +1165968000 16507594 30661537 35868999 41826480 +1165881600 16423769 29299929 40203522 41205958 +1165795200 6620578 26257310 13349673 34011298 +1165708800 7284065 29209504 13889963 33561657 +1165622400 13930471 32724199 29765961 42221551 +1165536000 15035932 27094443 33926129 39094681 +1165449600 15723510 25589724 34706052 37225663 +1165363200 15509762 26091626 34733216 37771009 +1165276800 15275358 24106623 34490638 38956155 +1165190400 6758168 20522830 12012350 31963804 +1165104000 6807308 21632159 13465208 31356561 +1165017600 14493939 23608466 37087085 33089731 +1164931200 15584124 25153045 35428640 35304430 +1164844800 16039247 25491270 37744832 37920282 +1164758400 16420584 25666712 35663398 37166952 +1164672000 15832075 25332063 35277985 40706403 +1164585600 6325747 18778260 10847289 28318268 +1164499200 7456487 20369316 17004937 29341239 +1164412800 14121771 25326328 33678151 32315656 +1164326400 16812667 25889973 39780663 36956376 +1164240000 16133508 24994257 34393405 37690238 +1164153600 17447405 23725424 38932091 36770485 +1164067200 15844590 22789502 34796557 35177481 +1163980800 6221290 19940591 11440572 30972786 +1163894400 6681867 21757468 13129920 34392614 +1163808000 16037507 23957499 47135569 35973428 +1163721600 15412894 25079539 33843902 36789550 +1163635200 15331210 24459924 33713397 34810351 +1163548800 16116463 25732943 39367396 37836002 +1163462400 15029857 26164527 39838922 37979261 +1163376000 6470725 21100939 14029486 31754998 +1163289600 6255613 23324119 11152541 33136560 +1163203200 13083326 26480563 28118252 38499976 +1163116800 14292223 26408454 29995280 40427793 +1163030400 15001663 26625676 30926236 40672779 +1162944000 14792911 26750307 33809273 39716150 +1162857600 14301791 27435315 34132945 36611543 +1162771200 6047516 20836082 12373309 31364341 +1162684800 6451729 23280546 12767850 31273848 +1162598400 13491117 26776430 29296145 34749465 +1162512000 14978521 27796319 35001244 37262377 +1162425600 13532087 28132074 28743644 36061528 +1162339200 15196752 28301933 32100703 40689461 +1162252800 14047598 26886233 33454035 35361244 +1162166400 5728845 24398165 27045721 33288451 +1162080000 5521905 25395086 22382331 30995566 +1161993600 12281621 29472359 31528971 34601917 +1161907200 13211371 30636847 28866622 38209304 +1161820800 13648221 30692234 29509660 36144361 +1161734400 13905434 30950211 31913948 41321415 +1161648000 13160366 28127792 27123530 35152837 +1161561600 6068050 24033466 12083371 30182220 +1161475200 5499877 26544829 12387256 38168171 +1161388800 12261503 26342967 26302841 35596847 +1161302400 12304545 26036640 25900872 34816368 +1161216000 11842666 26516789 24732644 37711056 +1161129600 11771968 26287489 25702284 35049950 +1161043200 13397065 26641937 29075984 36570160 +1160956800 6923765 22194094 11144889 31005383 +1160870400 6983207 19785470 10879767 29442476 +1160784000 13567046 22827122 28825239 33338245 +1160697600 13773113 23875179 28862805 35482359 +1160611200 14978155 23848842 30347833 34610027 +1160524800 15513749 23784339 32618738 34722889 +1160438400 14863608 25007359 45379711 37257381 +1160352000 6639475 20701347 21206808 31807285 +1160265600 6675540 21208788 12088464 31590683 +1160179200 13105264 26241960 28353877 40233462 +1160092800 14257926 22415795 31769630 34064849 +1160006400 14016025 21926726 28779117 33144268 +1159920000 14506375 23667616 30866413 36398239 +1159833600 15296032 24454418 47316581 39474575 +1159747200 7125601 20342635 11376552 31482710 +1159660800 7423833 18499004 11308700 26403001 +1159574400 12992596 23968845 28068456 32208608 +1159488000 13619162 24681738 28664531 35599696 +1159401600 14258565 24962459 28789335 36232422 +1159315200 14622815 24578933 32987724 33968079 +1159228800 13015504 25378805 27496033 36708917 +1159142400 5764727 22107355 10783732 28052468 +1159056000 6852870 21813666 10751754 31225445 +1158969600 11876571 25601431 26187815 35647509 +1158883200 12401010 26158636 24846195 36554630 +1158796800 12963111 25971458 27020140 37469822 +1158710400 13729239 25456830 29293916 36593827 +1158624000 12679097 24027309 26259003 37778565 +1158537600 6459848 20485125 11539427 29575620 +1158451200 6672207 23865378 11957214 33228845 +1158364800 12693725 28218554 29989593 35869500 +1158278400 13402847 24909463 30695573 37336080 +1158192000 13075412 24147911 30112252 34277462 +1158105600 14141225 24489630 29004066 34945930 +1158019200 13134181 23723321 28958166 32797607 +1157932800 6682627 19526125 14247131 26566030 +1157846400 7103365 22292588 14763907 29577375 +1157760000 12847627 25325609 25964542 31740193 +1157673600 12950080 27222567 28155695 35783681 +1157587200 13065538 27771800 26778173 34998851 +1157500800 13596903 27375358 28749157 35221444 +1157414400 13072758 25762784 32501494 33921560 +1157328000 6524962 20725559 10134655 29147993 +1157241600 6780279 19465830 11466746 26772076 +1157155200 12011034 21755544 26147294 31949961 +1157068800 12970272 23595334 26151643 34343969 +1156982400 14179910 21288180 34866068 30562678 +1156896000 13888805 22426903 30496637 33659101 +1156809600 12912535 22007109 26999858 33891114 +1156723200 6433958 16218485 10296637 25990761 +1156636800 6587942 16858683 12116998 25934982 +1156550400 12803461 21850835 29485969 30230795 +1156464000 12375487 20109016 25238234 28634402 +1156377600 13468939 23014068 27297871 33033165 +1156291200 13691412 23448308 29427796 36449426 +1156204800 13742331 22046154 30179469 33149865 +1156118400 6491758 17287739 12106332 24959354 +1156032000 6437979 17386789 9931258 27966795 +1155945600 11483808 20355429 23978284 30858259 +1155859200 12049944 22315166 26397279 35000158 +1155772800 12828202 27281085 28403812 39929152 +1155686400 12297185 27790554 27008002 40335388 +1155600000 12282778 28675342 25809646 39882186 +1155513600 6219378 23344663 12766966 34179231 +1155427200 6662913 21234685 10055157 30478748 +1155340800 11846410 26515378 26333003 35764906 +1155254400 12177805 24215855 29480492 35840890 +1155168000 12336192 27244292 26337956 41217407 +1155081600 12117115 29671214 26330998 41597898 +1154995200 11280316 26045290 22756058 34664964 +1154908800 5552317 20378305 8528522 27664657 +1154822400 6297809 20817239 11343083 31406191 +1154736000 10863440 24940000 23901232 35707671 +1154649600 11611865 24422473 26183809 36119087 +1154563200 10846892 24860626 27436816 34885327 +1154476800 6914724 24588600 12777360 35224095 +1154390400 10512714 24028909 24171276 36076506 +1154304000 5182480 19289818 9206528 26220070 +1154217600 8610105 24849091 30360985 53964849 +1154131200 10223261 22626937 25607616 33629431 +1154044800 10423142 23740598 21931630 35455507 +1153958400 10366210 23959750 21787853 34101292 diff --git a/tutorial/lisa2009/rrd-by-example/ex/hw-demo.pl b/tutorial/lisa2009/rrd-by-example/ex/hw-demo.pl new file mode 100755 index 00000000..2633f394 --- /dev/null +++ b/tutorial/lisa2009/rrd-by-example/ex/hw-demo.pl @@ -0,0 +1,108 @@ +#!/usr/bin/perl +#$ENV{PATH}='/scratch/rrd4/bin'; +$ENV{PATH}=$ENV{HOME}.'/checkouts/rrdtool/branches/1.3/program/src:'.$ENV{PATH}; +my $R='rrdtool'; +my $width=600 ; +my $height=200 ; + +$ENV{TZ}='MET'; + +sub create { + my %p = (@_); + my $start; + open my $fh,')[0]; # drop the first line; + my @updates; + $start = $end; + while (<$fh>){ + my @line = split; + last if $start - $p{step} > $line[0]; + $start = $line[0]; + unshift @updates, join ":",@line[0,1,2]; + } + system $R,'create','hw-demo.rrd', + '--step' => $p{step}, + '--start' => ($start-1), + 'DS:in:GAUGE:'.($p{step}*1.5).':U:U', + 'DS:out:GAUGE:'.($p{step}*1.5).':U:U', + 'RRA:AVERAGE:0.5:1:'.$p{rows}, + 'RRA:HWPREDICT:'.$p{rows}.':'.$p{alpha}.':'.$p{beta}.':'.$p{period}; + system $R,'resize','hw-demo.rrd',5,'GROW',$p{rows}; + rename 'resize.rrd','hw-demo.rrd'; + system $R,'update','hw-demo.rrd',@updates; +exit 1; + return ($start,$end); +} + +sub graph { + my $file = shift; + my $start = shift; + my $end = shift; + system $R, 'graph', $file, + '--lazy', + '--start' => $start, + '--end' => $end, + '--color=BACK#ffff', + '--color=CANVAS#ffff', + '--color=SHADEA#ffff', + '--color=SHADEB#ffff', + '--lower-limit' => 0, + '--pango-markup', + '--height' => $height, + '--width' => $width, + '--imgformat' => 'PDF', @_; +} + +sub quick { + my $period = shift; + my $alpha = shift; + my $beta = shift; + create ( step => 1800, + rows => 16*24*12, + period => $period, + alpha => $alpha, + beta => $beta ); + my $file = "HW-p${period}-a${alpha}-b${beta}"; + $file =~ s/\./_/g; + graph $file.'.pdf', + '00:00 20080916', + 'start+8d', + 'DEF:a=hw-demo.rrd:in:AVERAGE', + 'DEF:pred=hw-demo.rrd:in:HWPREDICT', + 'DEF:conf=hw-demo.rrd:in:DEVPREDICT', + 'DEF:fail=hw-demo.rrd:in:FAILURES', + 'TICK:fail#ff8:1:Failures', + 'CDEF:lowc=pred,conf,2,*,-', + 'CDEF:widc=conf,4,*', + 'LINE1:lowc', + 'AREA:widc#cfc:Band:STACK', + 'LINE0.1:0#3a1::STACK', + 'LINE0.1:lowc#3a1', + 'LINE1:a#c00:InOctets', + "LINE1:pred#0a0:Predicted p\\:$period, a\\:$alpha, b\\:$beta\\l"; +} + +my ($start,$end) = create ( step => 1800, + rows => 16*24*12, + period => 24*2, + alpha => 0.5, + beta => 0.001 ); + +$width=800; +$height=100; +graph 'HW-input.pdf', + '00:00 20080916', + 'start+14d', + 'DEF:a=hw-demo.rrd:in:AVERAGE', + 'LINE2:a#c00:InOctets'; + + +$width=450; +$height=120; +quick 1,0.5,0.001; +quick 1,0.1,0.001; +quick 1,0.1,0.1; +quick 48,0.5,0.001; +quick 48,0.2,0.001; +quick 48,0.03,0.001; +quick 48,0.03,0.1; diff --git a/tutorial/lisa2009/rrd-by-example/ex/hw-example.pl b/tutorial/lisa2009/rrd-by-example/ex/hw-example.pl new file mode 100755 index 00000000..3748cc40 --- /dev/null +++ b/tutorial/lisa2009/rrd-by-example/ex/hw-example.pl @@ -0,0 +1,57 @@ +#!/usr/bin/perl +#$ENV{PATH}='/scratch/rrd4/bin'; +$ENV{PATH}=$ENV{HOME}.'/checkouts/rrdtool/branches/1.3/program/src:'.$ENV{PATH}; +my $R=rrdtool; +my $w=1600 ; +my $h=100 ; +my $start = 1199999700; +sub cr { + system $R,'create','h.rrd', + '--step' => 300, + '--start' => ($start-1), + 'DS:a:GAUGE:600:U:U', + 'RRA:AVERAGE:0.5:1:3100', + 'RRA:HWPREDICT:3100:0.2:0.01:48'; + my @updates; + for (my $i = 1; $i < 3000;$i++){ + push @updates, ($i*300+$start).':'.(sin($i*3.14159265/24)*10*(cos($i/100)+3)); + + } + system $R,'update','h.rrd',@updates; +} + +sub rg { + my $file = shift; + print STDERR $file,"\t"; +# if (-f $file){ +# print STDERR " skip\n"; +# return; +# } + my @G = ( '--start' => $start-3600, + '--end' => 'start+200h', +# '--full-size-mode', + '--color=BACK#ffff', + '--color=CANVAS#ffff', + '--color=SHADEA#ffff', + '--color=SHADEB#ffff', + '--lower-limit' => 0, + '--pango-markup', + '--height' => $h, '--width' => $w, + '--imgformat' => 'PDF'); + system $R, 'graph', $file, @G, @_; +} +cr; + +rg 'HW-LINE.pdf', + 'DEF:a=h.rrd:a:AVERAGE', + 'DEF:pred=h.rrd:a:HWPREDICT', + 'DEF:conf=h.rrd:a:DEVPREDICT', + 'CDEF:lowc=pred,conf,2,*,-', + 'CDEF:widc=conf,4,*', + 'LINE1:lowc', + 'AREA:widc#cfc::STACK', + 'LINE1:0#3a1::STACK', + 'LINE1:lowc#3a1', + 'LINE1:a#a00:a\l'; +# 'LINE1:pred#0a0:pred\l'; + diff --git a/tutorial/lisa2009/rrd-by-example/ex/rrd-size.pl b/tutorial/lisa2009/rrd-by-example/ex/rrd-size.pl new file mode 100755 index 00000000..a400af05 --- /dev/null +++ b/tutorial/lisa2009/rrd-by-example/ex/rrd-size.pl @@ -0,0 +1,19 @@ +#!/usr/bin/perl +sub rrd_sizer { + my ($ds_cnt,$rra_sz,$rra_cnt) = @_; + system 'rrdtool', 'create', 'sizer.rrd', + map({ "DS:d${_}:GAUGE:600:U:U" } 1..$ds_cnt), + map({ "RRA:AVERAGE:0.5:1:$rra_sz" } 1..$rra_cnt); + my $size = -s 'sizer.rrd'; + printf "DSs: %1d RRA Row: %1d RRAs: %1d == %3d byte\n", + $ds_cnt,$rra_sz,$rra_cnt,$size; + return $size; + } +# DSs RRAs RRA Rows +my $base = rrd_sizer 1, 1, 1; +my $ds = rrd_sizer 2, 1, 1; +my $rra_sz = rrd_sizer 1, 2, 1; +my $rra_cnt = rrd_sizer 1, 1, 2; +printf "+1 DS: %3d byte\n",($ds - $base); +printf "+1 RRA Row: %3d byte\n",($rra_sz - $base); +printf "+1 RRA: %3d byte\n",($rra_cnt - $base); diff --git a/tutorial/lisa2009/rrd-by-example/ex/rrd-size.txt b/tutorial/lisa2009/rrd-by-example/ex/rrd-size.txt new file mode 100644 index 00000000..8bbb45b8 --- /dev/null +++ b/tutorial/lisa2009/rrd-by-example/ex/rrd-size.txt @@ -0,0 +1,7 @@ +DSs: 1 RRA Row: 1 RRAs: 1 == 552 byte +DSs: 2 RRA Row: 1 RRAs: 1 == 872 byte +DSs: 1 RRA Row: 2 RRAs: 1 == 560 byte +DSs: 1 RRA Row: 1 RRAs: 2 == 752 byte ++1 DS: 320 byte ++1 RRA Row: 8 byte ++1 RRA: 200 byte diff --git a/tutorial/lisa2009/rrd-by-example/ex/update-real.sh b/tutorial/lisa2009/rrd-by-example/ex/update-real.sh new file mode 100755 index 00000000..42053b71 --- /dev/null +++ b/tutorial/lisa2009/rrd-by-example/ex/update-real.sh @@ -0,0 +1,20 @@ +#!/bin/sh +PATH=/scratch/rrd4/bin:$PATH +R=rrdtool +$R create real.rrd \ + --step=300 \ + --start=1199999699 \ + DS:distance:COUNTER:600:-40:100 \ + RRA:AVERAGE:0.4:1:5 + +u(){ + $R update real.rrd $1 +} + +u 1200000000:0 +u 1200000150:15 +u 1200000310:31 +u 1200000640:64 +u 1200000910:91 + +$R fetch real.rrd -s 1200000000 -e 1200000899 AVERAGE diff --git a/tutorial/lisa2009/rrd-by-example/ex/update-real.txt b/tutorial/lisa2009/rrd-by-example/ex/update-real.txt new file mode 100644 index 00000000..42266de5 --- /dev/null +++ b/tutorial/lisa2009/rrd-by-example/ex/update-real.txt @@ -0,0 +1,5 @@ + distance + +1200000300: 1.0000000000e-01 +1200000600: 1.0000000000e-01 +1200000900: 1.0000000000e-01 diff --git a/tutorial/lisa2009/rrd-by-example/ex/v-interfaces.pl b/tutorial/lisa2009/rrd-by-example/ex/v-interfaces.pl new file mode 100644 index 00000000..0dcdc0a6 --- /dev/null +++ b/tutorial/lisa2009/rrd-by-example/ex/v-interfaces.pl @@ -0,0 +1,16 @@ +#!/usr/bin/perl -w +use strict; +use lib qw( /scratch/rrd4/lib/perl ); +use RRDs; +my $out = RRDs::graphv( + '-', '--start' => '00:00 20080916', + '--end' => 'start+8d', + '--lower-limit' => 0, + '--imgformat' => 'PDF', + 'DEF:a=hw-demo.rrd:in:AVERAGE', + 'LINE1:a#c00:InOctets'); +my $ERROR = RRDs::error; +die "ERROR: $ERROR\n" if $ERROR; +map { + print $_.' = '.substr($out->{$_},0,8)."\n" +} sort keys %$out; diff --git a/tutorial/lisa2009/rrd-by-example/ex/v-interfaces.txt b/tutorial/lisa2009/rrd-by-example/ex/v-interfaces.txt new file mode 100644 index 00000000..452a4661 --- /dev/null +++ b/tutorial/lisa2009/rrd-by-example/ex/v-interfaces.txt @@ -0,0 +1,9 @@ +graph_height = 100 +graph_left = 51 +graph_top = 22 +graph_width = 400 +image = %PDF-1.4 +image_height = 163 +image_width = 481 +value_max = 60000000 +value_min = 0 diff --git a/tutorial/lisa2009/rrd-by-example/handouts.tex b/tutorial/lisa2009/rrd-by-example/handouts.tex new file mode 100644 index 00000000..d7430850 --- /dev/null +++ b/tutorial/lisa2009/rrd-by-example/handouts.tex @@ -0,0 +1,3 @@ +\documentclass[letterpaper,12pt,titlepage]{article} +\usepackage{beamerarticle} +\input{body} diff --git a/tutorial/lisa2009/rrd-by-example/presentation.tex b/tutorial/lisa2009/rrd-by-example/presentation.tex new file mode 100644 index 00000000..302e243d --- /dev/null +++ b/tutorial/lisa2009/rrd-by-example/presentation.tex @@ -0,0 +1,2 @@ +\documentclass{beamer} +\input{body} diff --git a/tutorial/lisa2009/rrd-by-example/traffic/codewalk.png b/tutorial/lisa2009/rrd-by-example/traffic/codewalk.png new file mode 100644 index 00000000..27e39fbb Binary files /dev/null and b/tutorial/lisa2009/rrd-by-example/traffic/codewalk.png differ diff --git a/tutorial/lisa2009/rrd-by-example/traffic/graph.inc b/tutorial/lisa2009/rrd-by-example/traffic/graph.inc new file mode 100644 index 00000000..de529d10 --- /dev/null +++ b/tutorial/lisa2009/rrd-by-example/traffic/graph.inc @@ -0,0 +1,19 @@ +

+.png + --title="oss.oetiker.ch network traffic" + --vertical-label=Bytes/s + --start="" + --end="" + --width=600 + --height=100 + DEF:in=lan.rrd:in:AVERAGE + CDEF:nin=in,-1,* + LINE1.5:nin#00d000 + AREA:nin#90ff90:Incoming + DEF:out=lan.rrd:out:AVERAGE + LINE1.5:out#2020ff + AREA:out#9090ff:Outgoing + LINE0.5:0#000 + COMMENT:"\j" +> +

diff --git a/tutorial/lisa2009/rrd-by-example/traffic/ifbyteget.sh b/tutorial/lisa2009/rrd-by-example/traffic/ifbyteget.sh new file mode 100755 index 00000000..73d73efe --- /dev/null +++ b/tutorial/lisa2009/rrd-by-example/traffic/ifbyteget.sh @@ -0,0 +1,27 @@ +#!/bin/sh +# use from cron +# * * * * * /path/to/ifbyteget.sh eth0 + +PATH=/bin:/usr/bin +export PATH + +cd /home/oposs/public_html/stats + +if [ ! -f $1.rrd ]; then + +rrdtool create $1.rrd \ + --step=60 \ + DS:in:DERIVE:70:0:100000000 \ + DS:out:DERIVE:70:0:100000000 \ + RRA:AVERAGE:0.5:1:1500 \ + RRA:AVERAGE:0.5:60:10000 \ + RRA:MIN:0.5:60:10000 \ + RRA:MAX:0.5:60:10000 \ + RRA:AVERAGE:0.5:1440:1000 \ + RRA:MIN:0.5:1440:1000 \ + RRA:MAX:0.5:1440:1000 +fi + +rrdtool update $1.rrd \ + N:`grep $1: /proc/net/dev \ + | sed 's/.*://' | awk '{print $1":"$9}'` diff --git a/tutorial/lisa2009/rrd-by-example/traffic/index.cgi b/tutorial/lisa2009/rrd-by-example/traffic/index.cgi new file mode 100755 index 00000000..59472481 --- /dev/null +++ b/tutorial/lisa2009/rrd-by-example/traffic/index.cgi @@ -0,0 +1,120 @@ +#!/usr/bin/env rrdcgi + + +Traffic Stats for oss.oetiker.ch + + +

Traffic Stats for oss.oetiker.ch

+ +

The Bytes

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
PeriodIncomingOutgoingTotal
+ +

Current

+ + + + + +

Day

+ + + + + +

7 Days

+ + + + + +

Month

+ + + + + +

This Year

+ + + + + +

Last Year

+ + + + + + + diff --git a/tutorial/lisa2009/rrd-intro.odp b/tutorial/lisa2009/rrd-intro.odp new file mode 100644 index 00000000..2ccfb308 Binary files /dev/null and b/tutorial/lisa2009/rrd-intro.odp differ