summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 89413e3)
raw | patch | inline | side by side (parent: 89413e3)
author | oetiker <oetiker@a5681a0c-68f1-0310-ab6d-d61299d08faa> | |
Tue, 15 Sep 2009 12:17:42 +0000 (12:17 +0000) | ||
committer | oetiker <oetiker@a5681a0c-68f1-0310-ab6d-d61299d08faa> | |
Tue, 15 Sep 2009 12:17:42 +0000 (12:17 +0000) |
25 files changed:
diff --git a/tutorial/lisa2009/abstract-rrdexample.txt b/tutorial/lisa2009/abstract-rrdexample.txt
--- /dev/null
@@ -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
--- /dev/null
@@ -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
--- /dev/null
@@ -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<presentation>
+
+\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
+<all>
diff --git a/tutorial/lisa2009/rrd-by-example/body.tex b/tutorial/lisa2009/rrd-by-example/body.tex
--- /dev/null
@@ -0,0 +1,847 @@
+\mode<presentation>
+{
+ \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<article>
+{
+ \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<presentation>{\subject{RRDtool tutorial based on example use}}
+
+\mode<presentation>{
+ \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<article>{
+ \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<article>{\maketitle}
+
+\begin{frame}<presentation>
+ \titlepage
+\end{frame}
+
+\mode<articel>{\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<article>{
+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<article>{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<article>{\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<article>{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<article>{\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<article>{\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<article>{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<article>{\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<article>{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<article>{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<article>{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<article>{\newpage}
+\begin{frame}{line width}
+\addgraph{LINE-width}
+\end{frame}
+
+\begin{frame}{dashed line}
+\addgraph{LINE-dash}
+\end{frame}
+
+\mode<article>{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<article>{\newpage}
+
+\begin{frame}{DEF with :reduce}
+\addgraph{DEF-reduce}
+\end{frame}
+
+\begin{frame}{AREA simple}
+\addgraph{AREA-simple}
+\end{frame}
+
+\mode<article>{\newpage}
+\begin{frame}{two AREAs}
+\addgraph{AREA-two}
+\end{frame}
+
+\begin{frame}{transparent AREA}
+\addgraph{AREA-trans}
+\end{frame}
+
+\mode<article>{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<article>{\newpage}
+\begin{frame}{stacked AREA}
+\addgraph{AREA-stack}
+\end{frame}
+
+\mode<article>{\newpage}
+
+\begin{frame}{time shift}
+\addgraph{SHIFT-simple}
+\end{frame}
+
+\begin{frame}{shifting with extra data}
+\addgraph{SHIFT-startdef}
+\end{frame}
+
+\mode<article>{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<article>{\newpage}
+\section{Revers Polish Notation (RPN) Math}
+
+\mode<article>{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<article>{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<article>{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<article>{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<article>{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<article>{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<article>{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<article>{\newpage}
+
+
+\begin{frame}{the IF function}
+\addgraph{RPN-if}
+\end{frame}
+
+\mode<article>{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<article>{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<article>{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<article>{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<article>{\newpage}
+
+\mode<article>{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<article>{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<article>{\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<article>{\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<article>{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}<presentation>{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<article>{
+\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<article>{
+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
+%<all>
+
+\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<article>{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<article>{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<article>{\newpage}
+
+\begin{frame}{hw demo: beta}
+\addgraph{HW-p1-a0_1-b0_001}\\
+\addgraph{HW-p1-a0_1-b0_1}
+\end{frame}
+
+\mode<article>{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<article>{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<article>{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<article>{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<article>{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<article>{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<presentation>{
+\begin{frame}
+\begin{center}
+\Huge ?
+\end{center}
+\end{frame}
+\begin{frame}
+\begin{center}
+Tobi Oetiker <tobi@oetiker.ch>
+\end{center}
+\end{frame}
+}
+
+\mode<article>{
+\vspace{\stretch{1}}
+Tobias Oetiker <tobi@oetiker.ch>
+}
+\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
--- /dev/null
@@ -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
--- /dev/null
@@ -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
--- /dev/null
@@ -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
--- /dev/null
@@ -0,0 +1,118 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE rrd SYSTEM
+ "http://oss.oetiker.ch/rrdtool/rrdtool.dtd">
+<rrd> <version> 0003 </version>
+ <step> 300 </step> <!-- Seconds -->
+ <lastupdate> 1200000900 </lastupdate>
+ <!-- 2008-01-10 22:35:00 CET -->
+
+ <ds>
+ <name> temperature </name>
+ <type> GAUGE </type>
+ <minimal_heartbeat> 600 </minimal_heartbeat>
+ <min> -4.0000000000e+01 </min>
+ <max> 1.0000000000e+02 </max>
+
+ <!-- PDP Status -->
+ <last_ds> 40 </last_ds>
+ <value> 0.0000000000e+00 </value>
+ <unknown_sec> 0 </unknown_sec>
+ </ds>
+
+
+
+ <!-- RRA:AVERAGE:0.4:1:5 -->
+ <rra>
+ <cf> AVERAGE </cf>
+ <pdp_per_row> 1 </pdp_per_row> <!-- 300 seconds -->
+
+ <params>
+ <xff> 4.0000000000e-01 </xff>
+ </params>
+ <cdp_prep>
+ <ds>
+ <primary_value> 4.0000000000e+01 </primary_value>
+ <secondary_value> 0.0000000000e+00 </secondary_value>
+ <value> NaN </value>
+ <unknown_datapoints> 0 </unknown_datapoints>
+ </ds>
+ </cdp_prep>
+ <database>
+ <row><v> NaN </v></row>
+ <row><v> 1.0000000000e+01 </v></row>
+ <row><v> 2.0000000000e+01 </v></row>
+ <row><v> 3.0000000000e+01 </v></row>
+ <row><v> 4.0000000000e+01 </v></row>
+ </database>
+ </rra>
+
+ <!-- RRA:AVERAGE:0.4:3:2 -->
+ <rra>
+ <cf> AVERAGE </cf>
+ <pdp_per_row> 3 </pdp_per_row> <!-- 900 seconds -->
+
+ <params>
+ <xff> 4.0000000000e-01 </xff>
+ </params>
+ <cdp_prep>
+ <ds>
+ <primary_value> 2.0000000000e+01 </primary_value>
+ <secondary_value> 3.0000000000e+01 </secondary_value>
+ <value> 4.0000000000e+01 </value>
+ <unknown_datapoints> 0 </unknown_datapoints>
+ </ds>
+ </cdp_prep>
+ <database>
+ <row><v> NaN </v></row>
+ <row><v> 2.0000000000e+01 </v></row>
+ </database>
+ </rra>
+
+
+
+ <!-- RRA:MIN:0.4:3:2 -->
+ <rra>
+ <cf> MIN </cf>
+ <pdp_per_row> 3 </pdp_per_row> <!-- 900 seconds -->
+
+ <params>
+ <xff> 4.0000000000e-01 </xff>
+ </params>
+ <cdp_prep>
+ <ds>
+ <primary_value> 1.0000000000e+01 </primary_value>
+ <secondary_value> 3.0000000000e+01 </secondary_value>
+ <value> 3.0000000000e+01 </value>
+ <unknown_datapoints> 0 </unknown_datapoints>
+ </ds>
+ </cdp_prep>
+ <database>
+ <row><v> NaN </v></row>
+ <row><v> 1.0000000000e+01 </v></row>
+ </database>
+ </rra>
+
+
+ <!-- RRA:MAX:0.4:3:2 -->
+ <rra>
+ <cf> MAX </cf>
+ <pdp_per_row> 3 </pdp_per_row> <!-- 900 seconds -->
+
+ <params>
+ <xff> 4.0000000000e-01 </xff>
+ </params>
+ <cdp_prep>
+ <ds>
+ <primary_value> 3.0000000000e+01 </primary_value>
+ <secondary_value> 3.0000000000e+01 </secondary_value>
+ <value> 4.0000000000e+01 </value>
+ <unknown_datapoints> 0 </unknown_datapoints>
+ </ds>
+ </cdp_prep>
+ <database>
+ <row><v> NaN </v></row>
+ <row><v> 3.0000000000e+01 </v></row>
+ </database>
+ </rra>
+
+</rrd>
diff --git a/tutorial/lisa2009/rrd-by-example/ex/graph-examples.pl b/tutorial/lisa2009/rrd-by-example/ex/graph-examples.pl
--- /dev/null
@@ -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=<b>0</b>';
+
+rg 'LINE-slope.pdf',
+ '--slope-mode',
+ 'LINE:a#11a03b',
+ 'LINE:b#a1003b',
+ 'COMMENT:<b>--slope-mode</b>';
+
+rg 'LINE-graph-monos.png',
+ '--graph-render-mode' => 'mono',
+ '--imgformat' => 'PNG',
+ '--zoom'=>1,
+ 'LINE:a#11a03b',
+ 'LINE3:b#a1003b',
+ 'COMMENT:--graph-render-mode=<b>mono</b>';
+
+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=<b>mono</b>';
+
+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:LINE<b>1</b>\:b#ff00ff',
+ 'LINE4:a#ffaa00:LINE<b>4</b>\:a#ffaa00\l';
+
+rg "LINE-dash.pdf",
+ 'LINE1:a#ff00ff:LINE1\:a#ff00ff\:\:<b>dashes=10,10,80,10</b>\n:dashes=10,20,80,20',
+ 'LINE2:b#11aa00:LINE2\:b#11aa00\:\:<b>dashes=1,3</b>\:<b>dash-offset=10</b>: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\:<b>step=1800</b>';
+
+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\:<b>reduce=MIN</b>\n',
+ 'LINE1:d#0a0:DEF\:c=graph-examples.rrd\:a\:AVERAGE\:step=1800\:<b>reduce=MAX</b>\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\:<b>start='.$newstart.'</b>';
+
+rg 'AREA-simple.pdf',
+ 'AREA:a#f1805b:<b>AREA</b>\:a#a1003b',
+ 'LINE2:b#1180fb:LINE\:b#11a03b\l';
+
+rg 'AREA-two.pdf',
+ 'AREA:a#f1805b:<b>AREA</b>\:a#f1805b',
+ 'AREA:b#21f08b:<b>AREA</b>\:b#21f08b\l';
+
+rg 'AREA-trans.pdf',
+ 'AREA:a#f1805bff:AREA\:a#f1805b<b>ff</b>',
+ 'AREA:b#21808b60:AREA\:b#21808b60<b>60</b>\l';
+
+rg 'AREA-stack.pdf',
+ 'AREA:a#f1805b:AREA\:a#f1805b',
+ 'AREA:b#21808b:AREA\:b#21808b\:...\:<b>STACK</b>\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 <b>SHIFT</b>\: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 <b>SHIFT</b>\:b\:3600\l',
+ 'COMMENT:DEF\:a=graph-examples.rrd\:a\:AVERAGE\:<b>start='.($start-3600).'</b>\l';
+
+rg 'RPN-simple.pdf',
+ 'CDEF:c=a,20,+',
+ 'LINE:a#1f9',
+ 'LINE:c#417:<b>CDEF</b>\: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,<b>MAX</b>\l';
+
+rg 'RPN-limit.pdf',
+ 'CDEF:c=a,30,70,LIMIT',
+ 'LINE4:a#1f9:a',
+ 'LINE2:c#41f:b',
+ 'COMMENT:b=a,30,70,<b>LIMIT</b>\l';
+
+rg 'RPN-trend.pdf',
+ 'CDEF:k=r,3600,TREND',
+ 'LINE1:r#3a1:a',
+ 'LINE1:k#21f:b',
+ 'COMMENT:b=a,3600,<b>TREND</b>\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\:<b>start='.($start-3600).'</b>\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 <b>SHIFT</b>\: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,<b>LT</b>,a,b,<b>IF</b>,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,<b>UNKN</b>,IF',
+ 'AREA:d#91f:d=a,b,LT,b,<b>UNKN</b>,IF\l';
+
+rg 'RPN-count.pdf',
+ 'CDEF:c=COUNT,3,%,0,EQ,a,UNKN,IF',
+ 'AREA:c#8a1:c=<b>COUNT</b>,3,%,0,EQ,a,UNKN,IF';
+
+rg 'RPN-time.pdf',
+ 'CDEF:c=TIME,1800,%,900,GE,a,UNKN,IF',
+ 'AREA:c#8a1:c=<b>TIME</b>,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,<b>1,-</b>,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,<b>PREV</b>,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:<b>VDEF</b>\:b=a,AVERAGE <b>GPRINT</b>\: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
--- /dev/null
@@ -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
--- /dev/null
@@ -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,'<hw-demo.data';
+ my $end = (split /\s/, <$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
--- /dev/null
@@ -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
--- /dev/null
@@ -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
--- /dev/null
@@ -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
--- /dev/null
@@ -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
--- /dev/null
@@ -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
--- /dev/null
@@ -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
--- /dev/null
@@ -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
--- /dev/null
@@ -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
--- /dev/null
@@ -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 (file)
index 0000000..27e39fb
Binary files /dev/null and b/tutorial/lisa2009/rrd-by-example/traffic/codewalk.png differ
index 0000000..27e39fb
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
--- /dev/null
@@ -0,0 +1,19 @@
+<p>
+<RRD::GRAPH lan<RRD::GETVAR start>.png
+ --title="oss.oetiker.ch network traffic"
+ --vertical-label=Bytes/s
+ --start="<RRD::GETVAR start>"
+ --end="<RRD::GETVAR 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:"<RRD::TIME::NOW '%Y-%m-%d %H\:%M'>\j"
+>
+</p>
diff --git a/tutorial/lisa2009/rrd-by-example/traffic/ifbyteget.sh b/tutorial/lisa2009/rrd-by-example/traffic/ifbyteget.sh
--- /dev/null
@@ -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
--- /dev/null
@@ -0,0 +1,120 @@
+#!/usr/bin/env rrdcgi
+<html>
+<head>
+<title>Traffic Stats for oss.oetiker.ch</title>
+</head>
+<body>
+<h1>Traffic Stats for oss.oetiker.ch</h1>
+
+<h2>The Bytes</h2>
+<table border="1" cellspacing="0" cellpadding="2">
+<tr><td>Period</td>
+ <td>Incoming</td>
+ <td>Outgoing</td>
+ <td>Total</td></tr>
+
+<!--
+<RRD::GRAPH -
+ --start="midnight"
+ --end="start+24h"
+ --imginfo=" "
+ DEF:in=lan.rrd:in:AVERAGE:step=1800
+ DEF:out=lan.rrd:out:AVERAGE:step=1800
+ VDEF:is=in,TOTAL
+ PRINT:is:"%0.2lf %s"
+ VDEF:os=out,TOTAL
+ PRINT:os:"%0.2lf %S"
+ CDEF:sum=in,out,+
+ VDEF:ss=sum,TOTAL
+ PRINT:ss:"%0.2lf %S"
+>
+-->
+
+<tr><td><RRD::TIME::NOW %Y-%m-%d></td>
+ <td align="right"><RRD::PRINT 0></td>
+ <td align="right"><RRD::PRINT 1></td>
+ <td align="right"><RRD::PRINT 2></td></tr>
+
+<!--
+<RRD::GRAPH -
+ --start="<RRD::TIME::NOW %Y%m01>"
+ --end="now"
+ --imginfo=" "
+ DEF:in=lan.rrd:in:AVERAGE:step=1800
+ DEF:out=lan.rrd:out:AVERAGE:step=1800
+ VDEF:is=in,TOTAL
+ PRINT:is:"%0.2lf %s"
+ VDEF:os=out,TOTAL
+ PRINT:os:"%0.2lf %S"
+ CDEF:sum=in,out,+
+ VDEF:ss=sum,TOTAL
+ PRINT:ss:"%0.2lf %S"
+>
+-->
+
+<tr><td><RRD::TIME::NOW %Y-%m></td>
+ <td align="right"><RRD::PRINT 0></td>
+ <td align="right"><RRD::PRINT 1></td>
+ <td align="right"><RRD::PRINT 2></td></tr>
+
+<!--
+<RRD::GRAPH -
+ --start="<RRD::TIME::NOW %Y0101>"
+ --end="now"
+ --imginfo=" "
+ DEF:in=lan.rrd:in:AVERAGE:step=1800
+ DEF:out=lan.rrd:out:AVERAGE:step=1800
+ VDEF:is=in,TOTAL
+ PRINT:is:"%0.2lf %s"
+ VDEF:os=out,TOTAL
+ PRINT:os:"%0.2lf %S"
+ CDEF:sum=in,out,+
+ VDEF:ss=sum,TOTAL
+ PRINT:ss:"%0.2lf %S"
+>
+-->
+
+<tr><td><RRD::TIME::NOW %Y></td>
+ <td align="right"><RRD::PRINT 0></td>
+ <td align="right"><RRD::PRINT 1></td>
+ <td align="right"><RRD::PRINT 2></td></tr>
+</table>
+
+<h2>Current</h2>
+
+<RRD::SETVAR start -2h>
+<RRD::SETVAR end now>
+<RRD::INCLUDE graph.inc>
+
+<h2>Day</h2>
+
+<RRD::SETVAR start -24h>
+<RRD::SETVAR end now>
+<RRD::INCLUDE graph.inc>
+
+<h2>7 Days</h2>
+
+<RRD::SETVAR start -7d>
+<RRD::SETVAR end now>
+<RRD::INCLUDE graph.inc>
+
+<h2>Month</h2>
+
+<RRD::SETVAR start -30d>
+<RRD::SETVAR end now>
+<RRD::INCLUDE graph.inc>
+
+<h2>This Year</h2>
+
+<RRD::SETVAR start "Jan1">
+<RRD::SETVAR end "Dec31">
+<RRD::INCLUDE graph.inc>
+
+<h2>Last Year</h2>
+
+<RRD::SETVAR start "Jan1-365d">
+<RRD::SETVAR end "Dec31-365d">
+<RRD::INCLUDE graph.inc>
+
+</body>
+</html>
diff --git a/tutorial/lisa2009/rrd-intro.odp b/tutorial/lisa2009/rrd-intro.odp
new file mode 100644 (file)
index 0000000..2ccfb30
Binary files /dev/null and b/tutorial/lisa2009/rrd-intro.odp differ
index 0000000..2ccfb30
Binary files /dev/null and b/tutorial/lisa2009/rrd-intro.odp differ