├── .gitignore
├── README.md
├── css
└── index.css
├── index.html
├── js
└── index.js
├── package-lock.json
├── package.json
├── screenshot.jpg
├── test.tsv
├── test.withoutHeader.tsv
├── ts
├── DataRecord.ts
├── DateRecord.ts
├── FoodRecord.ts
├── FreeStyleLibreLib.ts
├── GlucoseRecord.ts
├── GlucoseRecordType.ts
├── GlucoseUnit.ts
├── GlucoseValue.ts
├── InsulinRecord.ts
├── InsulinRecordType.ts
├── RecordType.ts
├── Report.ts
└── SmoothInsulinRecord.ts
├── tsconfig.json
└── typings.json
/.gitignore:
--------------------------------------------------------------------------------
1 | .vscode
2 | js/freestylelibrelib.js
3 | node_modules
4 | typings
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Abbot FreeStyle Libre flash glucose meter Parser/Viewer
2 |
3 | ## Objective
4 |
5 | Create a library to read and manage TSV files created by the FreeStyle libre app to better understand and visualize the report data
6 |
7 | ## How to install
8 |
9 | `npm install`
10 |
11 | ## How to use the Viewer (user)
12 |
13 | Mount a local web-server (for example using node's `http-server`) and browse to the `index.html` (for example http://127.0.0.1:8080/index.html) to open the main view that lets you import a tsv file generated from the Abbott FreeStyle Libre app (or use the test.tsv example file) and visualize the data in the HighChart chart.
14 |
15 | ## How to use the FreeStyleLibreLib (developer)
16 |
17 | ```javascript
18 | var reader = new FileReader();
19 | reader.readAsText(file);
20 | reader.onload = function() {
21 | var report = FreeStyleLibreLib.parseReport(reader.result);
22 | }
23 | ```
24 |
25 | ## TSV File Format (Tab separated values, like a CSV but with tabs)
26 | This is the format of the exported file generated by the Abbot FreeStyle Libre app when running the `File->Export Data` menu option with the meter connected.
27 |
28 | - Line 1:
29 | - Patient name
30 | - **this non-standard tsv line, break standard parsers**
31 | - **(Is this line optional?)**
32 | - Line 2:
33 | - Headers
34 | - ID
35 | - Time **(Is YYYY/MM/DD HH:mm the only possible date format?)**
36 | - Record Type
37 | - 0: Historic Glucose
38 | - 1: Scan Glucose
39 | - 2: **?**
40 | - 3: **?**
41 | - 4: Insulin (Need to read if Rapid-Acting Insulin (units) or Long-Acting Insulin (units) has data to know witch is witch, probably appies to the "non numeric" ones too, but is not tested)
42 | - 5: Food
43 | - 6: Date change (Not implemented)
44 | - **Is there anything beyond type 6?**
45 | - Historic Glucose (mmol/L)
46 | - **Does the column name change if the meter units are not mmol/L?**
47 | - Scan Glucose (mmol/L)
48 | - **Does the column name change if the meter units are not mmol/L?**
49 | - Non-numeric Rapid-Acting Insulin
50 | - Rapid-Acting Insulin (units)
51 | - Non-numeric Food
52 | - Carbohydrates (grams)
53 | - Non-numeric Long-Acting Insulin
54 | - Long-Acting Insulin (units)
55 | - Notes
56 | - Strip Glucose (mmol/L)
57 | - **Does the column name change if the meter units are not mmol/L?**
58 | - Ketone (mmol/L)
59 | - **Does the column name change if the meter units are not mmol/L?**
60 | - Meal Insulin (units)
61 | - Correction Insulin (units)
62 | - **It seems that this is not used for insulin units**
63 | - User Change Insulin (units)
64 | - **It seems that this is not used for insulin units**
65 | - Previous Time
66 | - **For Record type 6**
67 | - Updated Time
68 | - **For Record type 6**
69 | - **Are these all the possible columns?**
70 | - **Can the columns have another name if the meter or app is set up in other language?**
71 | - Lines > 2
72 | - Data
73 |
74 | ## How it looks
75 |
76 | 
77 |
--------------------------------------------------------------------------------
/css/index.css:
--------------------------------------------------------------------------------
1 | .chart {
2 | min-width: 310px;
3 | height: 600px;
4 | margin: 0 auto;
5 | }
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | Freestyle Libre Parser/Viewer
8 |
9 |
10 |
11 |
15 |
16 |
17 | Abbot FreeStyle Libre flash glucose meter Parser/Viewer
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
--------------------------------------------------------------------------------
/js/index.js:
--------------------------------------------------------------------------------
1 | (function() {
2 | 'use strict';
3 |
4 | // TODO: Make these values UI configurable
5 | var HIPO_LIMIT = 4.0;
6 | var HIPER_LIMIT = 10.0;
7 |
8 | $('#file').change(function(evt) {
9 | var file = evt.target.files[0]; // FileList object
10 | var reader = new FileReader();
11 | reader.readAsText(file);
12 | reader.onload = function() {
13 |
14 | // Create the report
15 |
16 | var report = FreeStyleLibreLib.parseReport(reader.result);
17 |
18 | // Define series and properties
19 |
20 | var highchartsData = [
21 | {
22 | name: 'Glucose',
23 | color: '#FA5858',
24 | data: [],
25 | zones: [
26 | {
27 | color: '#FA5858',
28 | value: HIPO_LIMIT
29 | },
30 | {
31 | color: '#190707',
32 | value: HIPER_LIMIT
33 | },
34 | ]
35 | },
36 | {
37 | name: 'Rapid-Acting Insulin',
38 | color: '#FAAC58',
39 | data: []
40 | },
41 | {
42 | name: 'Long-Acting Insulin',
43 | color: '#BE81F7',
44 | data: []
45 | },
46 | {
47 | name: 'Food',
48 | color: '#000099',
49 | data: [],
50 | lineWidth: 0,
51 | marker: {
52 | enabled: true,
53 | radius: 4
54 | }
55 | },
56 | {
57 | name: 'Rapid-Acting Insulin Injection',
58 | color: '#FAAC58',
59 | data: [],
60 | lineWidth: 0,
61 | marker: {
62 | enabled: true,
63 | radius: 4
64 | }
65 | },
66 | {
67 | name: 'Long-Acting Insulin Injection',
68 | color: '#BE81F7',
69 | data: [],
70 | lineWidth: 0,
71 | marker: {
72 | enabled: true,
73 | radius: 4
74 | }
75 | },
76 | {
77 | name: 'Hypo',
78 | color: '#F5A9A9',
79 | dashStyle: 'ShortDash',
80 | data: []
81 | },
82 | {
83 | name: 'Hyper',
84 | color: '#F5A9A9',
85 | dashStyle: 'ShortDash',
86 | data: []
87 | }
88 | ];
89 |
90 | // Add data points
91 |
92 | report.glucose.forEach(function(element) {
93 | var value = element.glucose.getValueAsMmolPerL();
94 | highchartsData[0].data.push([element.date.valueOf(), value]);
95 | }, this);
96 | report.getSmoothRapidInsulin().forEach(function(element) {
97 | var value = element.units;
98 | highchartsData[1].data.push([element.date.valueOf(), value]);
99 | }, this);
100 | report.getSmoothLongInsulin().forEach(function(element) {
101 | var value = element.units;
102 | highchartsData[2].data.push([element.date.valueOf(), value]);
103 | }, this);
104 | report.food.forEach(function(element) {
105 | var value = element.carbs;
106 | highchartsData[3].data.push([element.date.valueOf(), (isNaN(value) ? 5 : value)]);
107 | }, this);
108 | report.insulin.forEach(function(element) {
109 | var value = element.units;
110 | if (element.insulinType == 0) {
111 | highchartsData[4].data.push([element.date.valueOf(), value]);
112 | }
113 | if (element.insulinType == 1) {
114 | highchartsData[5].data.push([element.date.valueOf(), value]);
115 | }
116 | }, this);
117 | highchartsData[6].data = [
118 | [report.start.valueOf(), HIPO_LIMIT],
119 | [report.end.valueOf(), HIPO_LIMIT]
120 | ];
121 | highchartsData[7].data = [
122 | [report.start.valueOf(), HIPER_LIMIT],
123 | [report.end.valueOf(), HIPER_LIMIT]
124 | ];
125 |
126 | // Create the Highcharts chart
127 |
128 | Highcharts.stockChart('container', {
129 | series: highchartsData,
130 | rangeSelector: {
131 | selected: 1,
132 | buttons: [{
133 | type: 'day',
134 | count: 1,
135 | text: '1d'
136 | }, {
137 | type: 'day',
138 | count: 3,
139 | text: '3d'
140 | }, {
141 | type: 'day',
142 | count: 7,
143 | text: '1w'
144 | }, {
145 | type: 'month',
146 | count: 1,
147 | text: '1m'
148 | }, {
149 | type: 'month',
150 | count: 3,
151 | text: '3m'
152 | }, {
153 | type: 'all',
154 | text: 'All'
155 | }]
156 | },
157 | legend: {
158 | enabled: true,
159 | layout: 'vertical',
160 | backgroundColor: '#FFFFFF',
161 | align: 'center',
162 | x: -10,
163 | y: 25,
164 | verticalAlign: 'top',
165 | floating: true,
166 | shadow: true
167 | },
168 | });
169 | };
170 | });
171 | })();
--------------------------------------------------------------------------------
/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "freestyle-libre-parser-viewer",
3 | "version": "1.0.2",
4 | "lockfileVersion": 1,
5 | "requires": true,
6 | "dependencies": {
7 | "abbrev": {
8 | "version": "1.1.1",
9 | "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
10 | "integrity": "sha1-+PLIh60Qv2f2NPAFtph/7TF5qsg=",
11 | "dev": true
12 | },
13 | "agent-base": {
14 | "version": "2.1.1",
15 | "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-2.1.1.tgz",
16 | "integrity": "sha1-1t4Q1a9hMtW9aSQn1G/FOFOQlMc=",
17 | "dev": true,
18 | "requires": {
19 | "extend": "~3.0.0",
20 | "semver": "~5.0.1"
21 | }
22 | },
23 | "ansi-align": {
24 | "version": "2.0.0",
25 | "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz",
26 | "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=",
27 | "dev": true,
28 | "requires": {
29 | "string-width": "^2.0.0"
30 | }
31 | },
32 | "ansi-escapes": {
33 | "version": "1.4.0",
34 | "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz",
35 | "integrity": "sha1-06ioOzGapneTZisT52HHkRQiMG4=",
36 | "dev": true
37 | },
38 | "ansi-regex": {
39 | "version": "2.1.1",
40 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
41 | "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
42 | "dev": true
43 | },
44 | "ansi-styles": {
45 | "version": "2.2.1",
46 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
47 | "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
48 | "dev": true
49 | },
50 | "any-promise": {
51 | "version": "1.3.0",
52 | "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz",
53 | "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8=",
54 | "dev": true
55 | },
56 | "archy": {
57 | "version": "1.0.0",
58 | "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz",
59 | "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=",
60 | "dev": true
61 | },
62 | "array-uniq": {
63 | "version": "1.0.3",
64 | "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz",
65 | "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=",
66 | "dev": true
67 | },
68 | "async": {
69 | "version": "1.5.2",
70 | "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
71 | "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo="
72 | },
73 | "asynckit": {
74 | "version": "0.4.0",
75 | "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
76 | "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=",
77 | "dev": true
78 | },
79 | "balanced-match": {
80 | "version": "1.0.0",
81 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
82 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
83 | "dev": true
84 | },
85 | "bluebird": {
86 | "version": "3.5.1",
87 | "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz",
88 | "integrity": "sha1-2VUfnemPH82h5oPRfukaBgLuLrk=",
89 | "dev": true
90 | },
91 | "bootstrap": {
92 | "version": "3.3.7",
93 | "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-3.3.7.tgz",
94 | "integrity": "sha1-WjiTlFSfIzMIdaOxUGVldPip63E=",
95 | "dev": true
96 | },
97 | "boxen": {
98 | "version": "1.2.2",
99 | "resolved": "https://registry.npmjs.org/boxen/-/boxen-1.2.2.tgz",
100 | "integrity": "sha1-Px1AMsMP/qnUsCwyLq8up0HcvOU=",
101 | "dev": true,
102 | "requires": {
103 | "ansi-align": "^2.0.0",
104 | "camelcase": "^4.0.0",
105 | "chalk": "^2.0.1",
106 | "cli-boxes": "^1.0.0",
107 | "string-width": "^2.0.0",
108 | "term-size": "^1.2.0",
109 | "widest-line": "^1.0.0"
110 | },
111 | "dependencies": {
112 | "ansi-styles": {
113 | "version": "3.2.0",
114 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz",
115 | "integrity": "sha1-wVm41b4PnlpvNG2rlPFs4CIWG4g=",
116 | "dev": true,
117 | "requires": {
118 | "color-convert": "^1.9.0"
119 | }
120 | },
121 | "chalk": {
122 | "version": "2.2.0",
123 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.2.0.tgz",
124 | "integrity": "sha512-0BMM/2hG3ZaoPfR6F+h/oWpZtsh3b/s62TjSM6MGCJWEbJDN1acqCXvyhhZsDSVFklpebUoQ5O1kKC7lOzrn9g==",
125 | "dev": true,
126 | "requires": {
127 | "ansi-styles": "^3.1.0",
128 | "escape-string-regexp": "^1.0.5",
129 | "supports-color": "^4.0.0"
130 | }
131 | },
132 | "supports-color": {
133 | "version": "4.5.0",
134 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz",
135 | "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=",
136 | "dev": true,
137 | "requires": {
138 | "has-flag": "^2.0.0"
139 | }
140 | }
141 | }
142 | },
143 | "brace-expansion": {
144 | "version": "1.1.8",
145 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz",
146 | "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=",
147 | "dev": true,
148 | "requires": {
149 | "balanced-match": "^1.0.0",
150 | "concat-map": "0.0.1"
151 | }
152 | },
153 | "camelcase": {
154 | "version": "4.1.0",
155 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz",
156 | "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=",
157 | "dev": true
158 | },
159 | "capture-stack-trace": {
160 | "version": "1.0.0",
161 | "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz",
162 | "integrity": "sha1-Sm+gc5nCa7pH8LJJa00PtAjFVQ0=",
163 | "dev": true
164 | },
165 | "chalk": {
166 | "version": "1.1.3",
167 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
168 | "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
169 | "dev": true,
170 | "requires": {
171 | "ansi-styles": "^2.2.1",
172 | "escape-string-regexp": "^1.0.2",
173 | "has-ansi": "^2.0.0",
174 | "strip-ansi": "^3.0.0",
175 | "supports-color": "^2.0.0"
176 | }
177 | },
178 | "cli-boxes": {
179 | "version": "1.0.0",
180 | "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz",
181 | "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=",
182 | "dev": true
183 | },
184 | "cli-cursor": {
185 | "version": "1.0.2",
186 | "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz",
187 | "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=",
188 | "dev": true,
189 | "requires": {
190 | "restore-cursor": "^1.0.1"
191 | }
192 | },
193 | "cli-truncate": {
194 | "version": "1.1.0",
195 | "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-1.1.0.tgz",
196 | "integrity": "sha1-Ky39g8U8/TVyuH/E1DCoCK+wQIY=",
197 | "dev": true,
198 | "requires": {
199 | "slice-ansi": "^1.0.0",
200 | "string-width": "^2.0.0"
201 | }
202 | },
203 | "clone": {
204 | "version": "1.0.2",
205 | "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.2.tgz",
206 | "integrity": "sha1-Jgt6meux7f4kdTgXX3gyQ8sZ0Uk=",
207 | "dev": true
208 | },
209 | "code-point-at": {
210 | "version": "1.1.0",
211 | "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
212 | "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=",
213 | "dev": true
214 | },
215 | "color-convert": {
216 | "version": "1.9.0",
217 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.0.tgz",
218 | "integrity": "sha1-Gsz5fdc5uYO/mU1W/sj5WFNkG3o=",
219 | "dev": true,
220 | "requires": {
221 | "color-name": "^1.1.1"
222 | }
223 | },
224 | "color-name": {
225 | "version": "1.1.3",
226 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
227 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
228 | "dev": true
229 | },
230 | "colors": {
231 | "version": "1.0.3",
232 | "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz",
233 | "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs="
234 | },
235 | "columnify": {
236 | "version": "1.5.4",
237 | "resolved": "https://registry.npmjs.org/columnify/-/columnify-1.5.4.tgz",
238 | "integrity": "sha1-Rzfd8ce2mop8NAVweC6UfuyOeLs=",
239 | "dev": true,
240 | "requires": {
241 | "strip-ansi": "^3.0.0",
242 | "wcwidth": "^1.0.0"
243 | }
244 | },
245 | "combined-stream": {
246 | "version": "1.0.5",
247 | "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz",
248 | "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=",
249 | "dev": true,
250 | "requires": {
251 | "delayed-stream": "~1.0.0"
252 | }
253 | },
254 | "concat-map": {
255 | "version": "0.0.1",
256 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
257 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
258 | "dev": true
259 | },
260 | "concat-stream": {
261 | "version": "1.6.0",
262 | "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz",
263 | "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=",
264 | "dev": true,
265 | "requires": {
266 | "inherits": "^2.0.3",
267 | "readable-stream": "^2.2.2",
268 | "typedarray": "^0.0.6"
269 | }
270 | },
271 | "configstore": {
272 | "version": "3.1.1",
273 | "resolved": "https://registry.npmjs.org/configstore/-/configstore-3.1.1.tgz",
274 | "integrity": "sha1-CU7mYquD+tmRdnjeEU+q6o/NypA=",
275 | "dev": true,
276 | "requires": {
277 | "dot-prop": "^4.1.0",
278 | "graceful-fs": "^4.1.2",
279 | "make-dir": "^1.0.0",
280 | "unique-string": "^1.0.0",
281 | "write-file-atomic": "^2.0.0",
282 | "xdg-basedir": "^3.0.0"
283 | }
284 | },
285 | "core-util-is": {
286 | "version": "1.0.2",
287 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
288 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
289 | "dev": true
290 | },
291 | "corser": {
292 | "version": "2.0.1",
293 | "resolved": "https://registry.npmjs.org/corser/-/corser-2.0.1.tgz",
294 | "integrity": "sha1-jtolLsqrWEDc2XXOuQ2TcMgZ/4c="
295 | },
296 | "create-error-class": {
297 | "version": "3.0.2",
298 | "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz",
299 | "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=",
300 | "dev": true,
301 | "requires": {
302 | "capture-stack-trace": "^1.0.0"
303 | }
304 | },
305 | "cross-spawn": {
306 | "version": "5.1.0",
307 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
308 | "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
309 | "dev": true,
310 | "requires": {
311 | "lru-cache": "^4.0.1",
312 | "shebang-command": "^1.2.0",
313 | "which": "^1.2.9"
314 | }
315 | },
316 | "crypto-random-string": {
317 | "version": "1.0.0",
318 | "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz",
319 | "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=",
320 | "dev": true
321 | },
322 | "debug": {
323 | "version": "2.6.9",
324 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
325 | "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=",
326 | "requires": {
327 | "ms": "2.0.0"
328 | }
329 | },
330 | "deep-extend": {
331 | "version": "0.4.2",
332 | "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz",
333 | "integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8=",
334 | "dev": true
335 | },
336 | "defaults": {
337 | "version": "1.0.3",
338 | "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz",
339 | "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=",
340 | "dev": true,
341 | "requires": {
342 | "clone": "^1.0.2"
343 | }
344 | },
345 | "delayed-stream": {
346 | "version": "1.0.0",
347 | "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
348 | "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
349 | "dev": true
350 | },
351 | "detect-indent": {
352 | "version": "5.0.0",
353 | "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-5.0.0.tgz",
354 | "integrity": "sha1-OHHMCmoALow+Wzz38zYmRnXwa50=",
355 | "dev": true
356 | },
357 | "dot-prop": {
358 | "version": "4.2.0",
359 | "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz",
360 | "integrity": "sha1-HxngwuGqDjJ5fEl5nyg3rGr2nFc=",
361 | "dev": true,
362 | "requires": {
363 | "is-obj": "^1.0.0"
364 | }
365 | },
366 | "duplexer3": {
367 | "version": "0.1.4",
368 | "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz",
369 | "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=",
370 | "dev": true
371 | },
372 | "ecstatic": {
373 | "version": "2.2.1",
374 | "resolved": "https://registry.npmjs.org/ecstatic/-/ecstatic-2.2.1.tgz",
375 | "integrity": "sha512-ztE4WqheoWLh3wv+HQwy7dACnvNY620coWpa+XqY6R2cVWgaAT2lUISU1Uf7JpdLLJCURktJOaA9av2AOzsyYQ==",
376 | "requires": {
377 | "he": "^1.1.1",
378 | "mime": "^1.2.11",
379 | "minimist": "^1.1.0",
380 | "url-join": "^2.0.2"
381 | }
382 | },
383 | "elegant-spinner": {
384 | "version": "1.0.1",
385 | "resolved": "https://registry.npmjs.org/elegant-spinner/-/elegant-spinner-1.0.1.tgz",
386 | "integrity": "sha1-2wQ1IcldfjA/2PNFvtwzSc+wcp4=",
387 | "dev": true
388 | },
389 | "error-ex": {
390 | "version": "1.3.1",
391 | "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz",
392 | "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=",
393 | "dev": true,
394 | "requires": {
395 | "is-arrayish": "^0.2.1"
396 | }
397 | },
398 | "escape-string-regexp": {
399 | "version": "1.0.5",
400 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
401 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
402 | "dev": true
403 | },
404 | "eventemitter3": {
405 | "version": "1.2.0",
406 | "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-1.2.0.tgz",
407 | "integrity": "sha1-HIaZHYFq0eUEdQ5zh0Ik7PO+xQg="
408 | },
409 | "execa": {
410 | "version": "0.7.0",
411 | "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz",
412 | "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=",
413 | "dev": true,
414 | "requires": {
415 | "cross-spawn": "^5.0.1",
416 | "get-stream": "^3.0.0",
417 | "is-stream": "^1.1.0",
418 | "npm-run-path": "^2.0.0",
419 | "p-finally": "^1.0.0",
420 | "signal-exit": "^3.0.0",
421 | "strip-eof": "^1.0.0"
422 | }
423 | },
424 | "exit-hook": {
425 | "version": "1.1.1",
426 | "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz",
427 | "integrity": "sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g=",
428 | "dev": true
429 | },
430 | "extend": {
431 | "version": "3.0.1",
432 | "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz",
433 | "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=",
434 | "dev": true
435 | },
436 | "form-data": {
437 | "version": "2.3.1",
438 | "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.1.tgz",
439 | "integrity": "sha1-b7lPvXGIUwbXPRXMSX/kzE7NRL8=",
440 | "dev": true,
441 | "requires": {
442 | "asynckit": "^0.4.0",
443 | "combined-stream": "^1.0.5",
444 | "mime-types": "^2.1.12"
445 | }
446 | },
447 | "fs.realpath": {
448 | "version": "1.0.0",
449 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
450 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
451 | "dev": true
452 | },
453 | "function-bind": {
454 | "version": "1.1.1",
455 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
456 | "integrity": "sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0=",
457 | "dev": true
458 | },
459 | "get-stream": {
460 | "version": "3.0.0",
461 | "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
462 | "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=",
463 | "dev": true
464 | },
465 | "glob": {
466 | "version": "7.1.2",
467 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
468 | "integrity": "sha1-wZyd+aAocC1nhhI4SmVSQExjbRU=",
469 | "dev": true,
470 | "requires": {
471 | "fs.realpath": "^1.0.0",
472 | "inflight": "^1.0.4",
473 | "inherits": "2",
474 | "minimatch": "^3.0.4",
475 | "once": "^1.3.0",
476 | "path-is-absolute": "^1.0.0"
477 | }
478 | },
479 | "global-dirs": {
480 | "version": "0.1.0",
481 | "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.0.tgz",
482 | "integrity": "sha1-ENNAOeDfBCcuJizyQiT3IJQ0308=",
483 | "dev": true,
484 | "requires": {
485 | "ini": "^1.3.4"
486 | }
487 | },
488 | "got": {
489 | "version": "6.7.1",
490 | "resolved": "https://registry.npmjs.org/got/-/got-6.7.1.tgz",
491 | "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=",
492 | "dev": true,
493 | "requires": {
494 | "create-error-class": "^3.0.0",
495 | "duplexer3": "^0.1.4",
496 | "get-stream": "^3.0.0",
497 | "is-redirect": "^1.0.0",
498 | "is-retry-allowed": "^1.0.0",
499 | "is-stream": "^1.0.0",
500 | "lowercase-keys": "^1.0.0",
501 | "safe-buffer": "^5.0.1",
502 | "timed-out": "^4.0.0",
503 | "unzip-response": "^2.0.1",
504 | "url-parse-lax": "^1.0.0"
505 | }
506 | },
507 | "graceful-fs": {
508 | "version": "4.1.11",
509 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
510 | "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
511 | "dev": true
512 | },
513 | "has": {
514 | "version": "1.0.1",
515 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz",
516 | "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=",
517 | "dev": true,
518 | "requires": {
519 | "function-bind": "^1.0.2"
520 | }
521 | },
522 | "has-ansi": {
523 | "version": "2.0.0",
524 | "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
525 | "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
526 | "dev": true,
527 | "requires": {
528 | "ansi-regex": "^2.0.0"
529 | }
530 | },
531 | "has-flag": {
532 | "version": "2.0.0",
533 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz",
534 | "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=",
535 | "dev": true
536 | },
537 | "has-unicode": {
538 | "version": "2.0.1",
539 | "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
540 | "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=",
541 | "dev": true
542 | },
543 | "he": {
544 | "version": "1.1.1",
545 | "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz",
546 | "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0="
547 | },
548 | "highcharts": {
549 | "version": "5.0.15",
550 | "resolved": "https://registry.npmjs.org/highcharts/-/highcharts-5.0.15.tgz",
551 | "integrity": "sha512-+LTe57ntLyWgkjsHzLmvRspM3FVKtds7iDswOTwuTAmZD3FtG1I/DqHiVSRjX92RQmQMZ1M7dcoRb7T648m1xA==",
552 | "dev": true
553 | },
554 | "http-proxy": {
555 | "version": "1.16.2",
556 | "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.16.2.tgz",
557 | "integrity": "sha1-Bt/ykpUr9k2+hHH6nfcwZtTzd0I=",
558 | "requires": {
559 | "eventemitter3": "1.x.x",
560 | "requires-port": "1.x.x"
561 | }
562 | },
563 | "http-proxy-agent": {
564 | "version": "1.0.0",
565 | "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-1.0.0.tgz",
566 | "integrity": "sha1-zBzjjkU7+YSg93AtLdWcc9CBKEo=",
567 | "dev": true,
568 | "requires": {
569 | "agent-base": "2",
570 | "debug": "2",
571 | "extend": "3"
572 | }
573 | },
574 | "http-server": {
575 | "version": "0.10.0",
576 | "resolved": "https://registry.npmjs.org/http-server/-/http-server-0.10.0.tgz",
577 | "integrity": "sha1-sqRGsWqduH7TxiK6m+sbCFsSNKc=",
578 | "requires": {
579 | "colors": "1.0.3",
580 | "corser": "~2.0.0",
581 | "ecstatic": "^2.0.0",
582 | "http-proxy": "^1.8.1",
583 | "opener": "~1.4.0",
584 | "optimist": "0.6.x",
585 | "portfinder": "^1.0.13",
586 | "union": "~0.4.3"
587 | }
588 | },
589 | "https-proxy-agent": {
590 | "version": "1.0.0",
591 | "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-1.0.0.tgz",
592 | "integrity": "sha1-NffabEjOTdv6JkiRrFk+5f+GceY=",
593 | "dev": true,
594 | "requires": {
595 | "agent-base": "2",
596 | "debug": "2",
597 | "extend": "3"
598 | }
599 | },
600 | "import-lazy": {
601 | "version": "2.1.0",
602 | "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz",
603 | "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=",
604 | "dev": true
605 | },
606 | "imurmurhash": {
607 | "version": "0.1.4",
608 | "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
609 | "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
610 | "dev": true
611 | },
612 | "inflight": {
613 | "version": "1.0.6",
614 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
615 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
616 | "dev": true,
617 | "requires": {
618 | "once": "^1.3.0",
619 | "wrappy": "1"
620 | }
621 | },
622 | "inherits": {
623 | "version": "2.0.3",
624 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
625 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
626 | "dev": true
627 | },
628 | "ini": {
629 | "version": "1.3.4",
630 | "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz",
631 | "integrity": "sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4=",
632 | "dev": true
633 | },
634 | "invariant": {
635 | "version": "2.2.2",
636 | "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz",
637 | "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=",
638 | "dev": true,
639 | "requires": {
640 | "loose-envify": "^1.0.0"
641 | }
642 | },
643 | "is-absolute": {
644 | "version": "0.2.6",
645 | "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-0.2.6.tgz",
646 | "integrity": "sha1-IN5p89uULvLYe5wto28XIjWxtes=",
647 | "dev": true,
648 | "requires": {
649 | "is-relative": "^0.2.1",
650 | "is-windows": "^0.2.0"
651 | }
652 | },
653 | "is-arrayish": {
654 | "version": "0.2.1",
655 | "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
656 | "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
657 | "dev": true
658 | },
659 | "is-fullwidth-code-point": {
660 | "version": "2.0.0",
661 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
662 | "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
663 | "dev": true
664 | },
665 | "is-installed-globally": {
666 | "version": "0.1.0",
667 | "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz",
668 | "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=",
669 | "dev": true,
670 | "requires": {
671 | "global-dirs": "^0.1.0",
672 | "is-path-inside": "^1.0.0"
673 | }
674 | },
675 | "is-npm": {
676 | "version": "1.0.0",
677 | "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz",
678 | "integrity": "sha1-8vtjpl5JBbQGyGBydloaTceTufQ=",
679 | "dev": true
680 | },
681 | "is-obj": {
682 | "version": "1.0.1",
683 | "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz",
684 | "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=",
685 | "dev": true
686 | },
687 | "is-path-inside": {
688 | "version": "1.0.0",
689 | "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.0.tgz",
690 | "integrity": "sha1-/AbloWg/vaE95mev9xe7wQpI838=",
691 | "dev": true,
692 | "requires": {
693 | "path-is-inside": "^1.0.1"
694 | }
695 | },
696 | "is-plain-obj": {
697 | "version": "1.1.0",
698 | "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz",
699 | "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=",
700 | "dev": true
701 | },
702 | "is-redirect": {
703 | "version": "1.0.0",
704 | "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz",
705 | "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=",
706 | "dev": true
707 | },
708 | "is-relative": {
709 | "version": "0.2.1",
710 | "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-0.2.1.tgz",
711 | "integrity": "sha1-0n9MfVFtF1+2ENuEu+7yPDvJeqU=",
712 | "dev": true,
713 | "requires": {
714 | "is-unc-path": "^0.1.1"
715 | }
716 | },
717 | "is-retry-allowed": {
718 | "version": "1.1.0",
719 | "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz",
720 | "integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=",
721 | "dev": true
722 | },
723 | "is-stream": {
724 | "version": "1.1.0",
725 | "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
726 | "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=",
727 | "dev": true
728 | },
729 | "is-unc-path": {
730 | "version": "0.1.2",
731 | "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-0.1.2.tgz",
732 | "integrity": "sha1-arBTpyVzwQJQ/0FqOBTDUXivObk=",
733 | "dev": true,
734 | "requires": {
735 | "unc-path-regex": "^0.1.0"
736 | }
737 | },
738 | "is-windows": {
739 | "version": "0.2.0",
740 | "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-0.2.0.tgz",
741 | "integrity": "sha1-3hqm1j6indJIc3tp8f+LgALSEIw=",
742 | "dev": true
743 | },
744 | "isarray": {
745 | "version": "1.0.0",
746 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
747 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
748 | "dev": true
749 | },
750 | "isexe": {
751 | "version": "2.0.0",
752 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
753 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
754 | "dev": true
755 | },
756 | "isobject": {
757 | "version": "3.0.1",
758 | "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
759 | "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
760 | "dev": true
761 | },
762 | "jquery": {
763 | "version": "3.3.1",
764 | "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.3.1.tgz",
765 | "integrity": "sha512-Ubldcmxp5np52/ENotGxlLe6aGMvmF4R8S6tZjsP6Knsaxd/xp3Zrh50cG93lR6nPXyUFwzN3ZSOQI0wRJNdGg==",
766 | "dev": true
767 | },
768 | "js-tokens": {
769 | "version": "3.0.2",
770 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz",
771 | "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=",
772 | "dev": true
773 | },
774 | "jspm-config": {
775 | "version": "0.3.4",
776 | "resolved": "https://registry.npmjs.org/jspm-config/-/jspm-config-0.3.4.tgz",
777 | "integrity": "sha1-RMJpAuSujs4jZs7cn/FrEKXzkcY=",
778 | "dev": true,
779 | "requires": {
780 | "any-promise": "^1.3.0",
781 | "graceful-fs": "^4.1.4",
782 | "make-error-cause": "^1.2.1",
783 | "object.pick": "^1.1.2",
784 | "parse-json": "^2.2.0",
785 | "strip-bom": "^3.0.0",
786 | "thenify": "^3.2.0",
787 | "throat": "^3.0.0",
788 | "xtend": "^4.0.1"
789 | }
790 | },
791 | "latest-version": {
792 | "version": "3.1.0",
793 | "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-3.1.0.tgz",
794 | "integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=",
795 | "dev": true,
796 | "requires": {
797 | "package-json": "^4.0.0"
798 | }
799 | },
800 | "listify": {
801 | "version": "1.0.0",
802 | "resolved": "https://registry.npmjs.org/listify/-/listify-1.0.0.tgz",
803 | "integrity": "sha1-A8p7otFQ1CZ3c/dOV1WNEFPSvuM=",
804 | "dev": true
805 | },
806 | "lockfile": {
807 | "version": "1.0.3",
808 | "resolved": "https://registry.npmjs.org/lockfile/-/lockfile-1.0.3.tgz",
809 | "integrity": "sha1-Jjj8OaAzHpysGgS3F5mTHJxQ33k=",
810 | "dev": true
811 | },
812 | "log-update": {
813 | "version": "1.0.2",
814 | "resolved": "https://registry.npmjs.org/log-update/-/log-update-1.0.2.tgz",
815 | "integrity": "sha1-GZKfZMQJPS0ucHWh2tivWcKWuNE=",
816 | "dev": true,
817 | "requires": {
818 | "ansi-escapes": "^1.0.0",
819 | "cli-cursor": "^1.0.2"
820 | }
821 | },
822 | "loose-envify": {
823 | "version": "1.3.1",
824 | "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz",
825 | "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=",
826 | "dev": true,
827 | "requires": {
828 | "js-tokens": "^3.0.0"
829 | }
830 | },
831 | "lowercase-keys": {
832 | "version": "1.0.0",
833 | "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz",
834 | "integrity": "sha1-TjNms55/VFfjXxMkvfb4jQv8cwY=",
835 | "dev": true
836 | },
837 | "lru-cache": {
838 | "version": "4.1.1",
839 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.1.tgz",
840 | "integrity": "sha1-Yi4y6CSItJJ5EUpPns9F581rulU=",
841 | "dev": true,
842 | "requires": {
843 | "pseudomap": "^1.0.2",
844 | "yallist": "^2.1.2"
845 | }
846 | },
847 | "make-dir": {
848 | "version": "1.0.0",
849 | "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.0.0.tgz",
850 | "integrity": "sha1-l6ARdR6R3YfPre9Ygy67BJNt6Xg=",
851 | "dev": true,
852 | "requires": {
853 | "pify": "^2.3.0"
854 | }
855 | },
856 | "make-error": {
857 | "version": "1.3.0",
858 | "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.0.tgz",
859 | "integrity": "sha1-Uq06M5zPEM5itAQLcI/nByRLi5Y=",
860 | "dev": true
861 | },
862 | "make-error-cause": {
863 | "version": "1.2.2",
864 | "resolved": "https://registry.npmjs.org/make-error-cause/-/make-error-cause-1.2.2.tgz",
865 | "integrity": "sha1-3wOI/NCzeBbf8KX7gQiTl3fcvJ0=",
866 | "dev": true,
867 | "requires": {
868 | "make-error": "^1.2.0"
869 | }
870 | },
871 | "mime": {
872 | "version": "1.4.1",
873 | "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz",
874 | "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ=="
875 | },
876 | "mime-db": {
877 | "version": "1.30.0",
878 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.30.0.tgz",
879 | "integrity": "sha1-dMZD2i3Z1qRTmZY0ZbJtXKfXHwE=",
880 | "dev": true
881 | },
882 | "mime-types": {
883 | "version": "2.1.17",
884 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz",
885 | "integrity": "sha1-Cdejk/A+mVp5+K+Fe3Cp4KsWVXo=",
886 | "dev": true,
887 | "requires": {
888 | "mime-db": "~1.30.0"
889 | }
890 | },
891 | "minimatch": {
892 | "version": "3.0.4",
893 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
894 | "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=",
895 | "dev": true,
896 | "requires": {
897 | "brace-expansion": "^1.1.7"
898 | }
899 | },
900 | "minimist": {
901 | "version": "1.2.0",
902 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
903 | "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ="
904 | },
905 | "mkdirp": {
906 | "version": "0.5.1",
907 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
908 | "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
909 | "requires": {
910 | "minimist": "0.0.8"
911 | },
912 | "dependencies": {
913 | "minimist": {
914 | "version": "0.0.8",
915 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
916 | "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0="
917 | }
918 | }
919 | },
920 | "moment": {
921 | "version": "2.22.2",
922 | "resolved": "https://registry.npmjs.org/moment/-/moment-2.22.2.tgz",
923 | "integrity": "sha1-PCV/mDn8DpP/UxSWMiOeuQeD/2Y=",
924 | "dev": true
925 | },
926 | "ms": {
927 | "version": "2.0.0",
928 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
929 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
930 | },
931 | "nopt": {
932 | "version": "1.0.10",
933 | "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz",
934 | "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=",
935 | "dev": true,
936 | "requires": {
937 | "abbrev": "1"
938 | }
939 | },
940 | "npm-run-path": {
941 | "version": "2.0.2",
942 | "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
943 | "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=",
944 | "dev": true,
945 | "requires": {
946 | "path-key": "^2.0.0"
947 | }
948 | },
949 | "number-is-nan": {
950 | "version": "1.0.1",
951 | "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
952 | "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
953 | "dev": true
954 | },
955 | "object.pick": {
956 | "version": "1.3.0",
957 | "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz",
958 | "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=",
959 | "dev": true,
960 | "requires": {
961 | "isobject": "^3.0.1"
962 | }
963 | },
964 | "once": {
965 | "version": "1.4.0",
966 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
967 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
968 | "dev": true,
969 | "requires": {
970 | "wrappy": "1"
971 | }
972 | },
973 | "onetime": {
974 | "version": "1.1.0",
975 | "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz",
976 | "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=",
977 | "dev": true
978 | },
979 | "opener": {
980 | "version": "1.4.3",
981 | "resolved": "https://registry.npmjs.org/opener/-/opener-1.4.3.tgz",
982 | "integrity": "sha1-XG2ixdflgx6P+jlklQ+NZnSskLg="
983 | },
984 | "optimist": {
985 | "version": "0.6.1",
986 | "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz",
987 | "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=",
988 | "requires": {
989 | "minimist": "~0.0.1",
990 | "wordwrap": "~0.0.2"
991 | },
992 | "dependencies": {
993 | "minimist": {
994 | "version": "0.0.10",
995 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz",
996 | "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8="
997 | }
998 | }
999 | },
1000 | "p-finally": {
1001 | "version": "1.0.0",
1002 | "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
1003 | "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=",
1004 | "dev": true
1005 | },
1006 | "package-json": {
1007 | "version": "4.0.1",
1008 | "resolved": "https://registry.npmjs.org/package-json/-/package-json-4.0.1.tgz",
1009 | "integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=",
1010 | "dev": true,
1011 | "requires": {
1012 | "got": "^6.7.1",
1013 | "registry-auth-token": "^3.0.1",
1014 | "registry-url": "^3.0.3",
1015 | "semver": "^5.1.0"
1016 | },
1017 | "dependencies": {
1018 | "semver": {
1019 | "version": "5.4.1",
1020 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz",
1021 | "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==",
1022 | "dev": true
1023 | }
1024 | }
1025 | },
1026 | "parse-json": {
1027 | "version": "2.2.0",
1028 | "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
1029 | "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
1030 | "dev": true,
1031 | "requires": {
1032 | "error-ex": "^1.2.0"
1033 | }
1034 | },
1035 | "path-is-absolute": {
1036 | "version": "1.0.1",
1037 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
1038 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
1039 | "dev": true
1040 | },
1041 | "path-is-inside": {
1042 | "version": "1.0.2",
1043 | "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz",
1044 | "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=",
1045 | "dev": true
1046 | },
1047 | "path-key": {
1048 | "version": "2.0.1",
1049 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
1050 | "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=",
1051 | "dev": true
1052 | },
1053 | "pify": {
1054 | "version": "2.3.0",
1055 | "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
1056 | "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
1057 | "dev": true
1058 | },
1059 | "popsicle": {
1060 | "version": "9.1.0",
1061 | "resolved": "https://registry.npmjs.org/popsicle/-/popsicle-9.1.0.tgz",
1062 | "integrity": "sha1-T5APONV6V07BcO2kBJbjZAgr/2Y=",
1063 | "dev": true,
1064 | "requires": {
1065 | "concat-stream": "^1.4.7",
1066 | "form-data": "^2.0.0",
1067 | "make-error-cause": "^1.2.1",
1068 | "tough-cookie": "^2.0.0"
1069 | }
1070 | },
1071 | "popsicle-proxy-agent": {
1072 | "version": "3.0.0",
1073 | "resolved": "https://registry.npmjs.org/popsicle-proxy-agent/-/popsicle-proxy-agent-3.0.0.tgz",
1074 | "integrity": "sha1-uRM8VdlFdZq37mG3cRNkYg066tw=",
1075 | "dev": true,
1076 | "requires": {
1077 | "http-proxy-agent": "^1.0.0",
1078 | "https-proxy-agent": "^1.0.0"
1079 | }
1080 | },
1081 | "popsicle-retry": {
1082 | "version": "3.2.1",
1083 | "resolved": "https://registry.npmjs.org/popsicle-retry/-/popsicle-retry-3.2.1.tgz",
1084 | "integrity": "sha1-4G6GZTO0KnoSPrMwy+Y6fOvLoQw=",
1085 | "dev": true,
1086 | "requires": {
1087 | "any-promise": "^1.1.0",
1088 | "xtend": "^4.0.1"
1089 | }
1090 | },
1091 | "popsicle-rewrite": {
1092 | "version": "1.0.0",
1093 | "resolved": "https://registry.npmjs.org/popsicle-rewrite/-/popsicle-rewrite-1.0.0.tgz",
1094 | "integrity": "sha1-HdTo6pwxgjUfuCD4eTTZkvf7kAc=",
1095 | "dev": true
1096 | },
1097 | "popsicle-status": {
1098 | "version": "2.0.1",
1099 | "resolved": "https://registry.npmjs.org/popsicle-status/-/popsicle-status-2.0.1.tgz",
1100 | "integrity": "sha1-jdcMT+fGlBCa3XhP/oDqysHnso0=",
1101 | "dev": true
1102 | },
1103 | "portfinder": {
1104 | "version": "1.0.13",
1105 | "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.13.tgz",
1106 | "integrity": "sha1-uzLs2HwnEErm7kS1o8y/Drsa7ek=",
1107 | "requires": {
1108 | "async": "^1.5.2",
1109 | "debug": "^2.2.0",
1110 | "mkdirp": "0.5.x"
1111 | }
1112 | },
1113 | "prepend-http": {
1114 | "version": "1.0.4",
1115 | "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz",
1116 | "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=",
1117 | "dev": true
1118 | },
1119 | "process-nextick-args": {
1120 | "version": "1.0.7",
1121 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz",
1122 | "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=",
1123 | "dev": true
1124 | },
1125 | "promise-finally": {
1126 | "version": "3.0.0",
1127 | "resolved": "https://registry.npmjs.org/promise-finally/-/promise-finally-3.0.0.tgz",
1128 | "integrity": "sha1-3dXQ+JVDKxIGzrjaEnUGTRjnqiM=",
1129 | "dev": true
1130 | },
1131 | "pseudomap": {
1132 | "version": "1.0.2",
1133 | "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
1134 | "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=",
1135 | "dev": true
1136 | },
1137 | "punycode": {
1138 | "version": "1.4.1",
1139 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
1140 | "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=",
1141 | "dev": true
1142 | },
1143 | "qs": {
1144 | "version": "2.3.3",
1145 | "resolved": "https://registry.npmjs.org/qs/-/qs-2.3.3.tgz",
1146 | "integrity": "sha1-6eha2+ddoLvkyOBHaghikPhjtAQ="
1147 | },
1148 | "rc": {
1149 | "version": "1.2.2",
1150 | "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.2.tgz",
1151 | "integrity": "sha1-2M6ctX6NZNnHut2YdsfDTL48cHc=",
1152 | "dev": true,
1153 | "requires": {
1154 | "deep-extend": "~0.4.0",
1155 | "ini": "~1.3.0",
1156 | "minimist": "^1.2.0",
1157 | "strip-json-comments": "~2.0.1"
1158 | }
1159 | },
1160 | "readable-stream": {
1161 | "version": "2.3.3",
1162 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz",
1163 | "integrity": "sha1-No8lEtefnUb9/HE0mueHi7weuVw=",
1164 | "dev": true,
1165 | "requires": {
1166 | "core-util-is": "~1.0.0",
1167 | "inherits": "~2.0.3",
1168 | "isarray": "~1.0.0",
1169 | "process-nextick-args": "~1.0.6",
1170 | "safe-buffer": "~5.1.1",
1171 | "string_decoder": "~1.0.3",
1172 | "util-deprecate": "~1.0.1"
1173 | }
1174 | },
1175 | "registry-auth-token": {
1176 | "version": "3.3.1",
1177 | "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.3.1.tgz",
1178 | "integrity": "sha1-+w0yie4Nmtosu1KvXf5mywcNMAY=",
1179 | "dev": true,
1180 | "requires": {
1181 | "rc": "^1.1.6",
1182 | "safe-buffer": "^5.0.1"
1183 | }
1184 | },
1185 | "registry-url": {
1186 | "version": "3.1.0",
1187 | "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz",
1188 | "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=",
1189 | "dev": true,
1190 | "requires": {
1191 | "rc": "^1.0.1"
1192 | }
1193 | },
1194 | "requires-port": {
1195 | "version": "1.0.0",
1196 | "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
1197 | "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8="
1198 | },
1199 | "restore-cursor": {
1200 | "version": "1.0.1",
1201 | "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz",
1202 | "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=",
1203 | "dev": true,
1204 | "requires": {
1205 | "exit-hook": "^1.0.0",
1206 | "onetime": "^1.0.0"
1207 | }
1208 | },
1209 | "rimraf": {
1210 | "version": "2.6.2",
1211 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz",
1212 | "integrity": "sha1-LtgVDSShbqhlHm1u8PR8QVjOejY=",
1213 | "dev": true,
1214 | "requires": {
1215 | "glob": "^7.0.5"
1216 | }
1217 | },
1218 | "safe-buffer": {
1219 | "version": "5.1.1",
1220 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz",
1221 | "integrity": "sha1-iTMSr2myEj3vcfV4iQAWce6yyFM=",
1222 | "dev": true
1223 | },
1224 | "semver": {
1225 | "version": "5.0.3",
1226 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.0.3.tgz",
1227 | "integrity": "sha1-d0Zt5YnNXTyV8TiqeLxWmjy10no=",
1228 | "dev": true
1229 | },
1230 | "semver-diff": {
1231 | "version": "2.1.0",
1232 | "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz",
1233 | "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=",
1234 | "dev": true,
1235 | "requires": {
1236 | "semver": "^5.0.3"
1237 | }
1238 | },
1239 | "shebang-command": {
1240 | "version": "1.2.0",
1241 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
1242 | "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
1243 | "dev": true,
1244 | "requires": {
1245 | "shebang-regex": "^1.0.0"
1246 | }
1247 | },
1248 | "shebang-regex": {
1249 | "version": "1.0.0",
1250 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
1251 | "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
1252 | "dev": true
1253 | },
1254 | "signal-exit": {
1255 | "version": "3.0.2",
1256 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
1257 | "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
1258 | "dev": true
1259 | },
1260 | "slice-ansi": {
1261 | "version": "1.0.0",
1262 | "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz",
1263 | "integrity": "sha1-BE8aSdiEL/MHqta1Be0Xi9lQE00=",
1264 | "dev": true,
1265 | "requires": {
1266 | "is-fullwidth-code-point": "^2.0.0"
1267 | }
1268 | },
1269 | "sort-keys": {
1270 | "version": "1.1.2",
1271 | "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz",
1272 | "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=",
1273 | "dev": true,
1274 | "requires": {
1275 | "is-plain-obj": "^1.0.0"
1276 | }
1277 | },
1278 | "string-template": {
1279 | "version": "1.0.0",
1280 | "resolved": "https://registry.npmjs.org/string-template/-/string-template-1.0.0.tgz",
1281 | "integrity": "sha1-np8iM9wA8hhxjsN5oopWc+zKi5Y=",
1282 | "dev": true
1283 | },
1284 | "string-width": {
1285 | "version": "2.1.1",
1286 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
1287 | "integrity": "sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4=",
1288 | "dev": true,
1289 | "requires": {
1290 | "is-fullwidth-code-point": "^2.0.0",
1291 | "strip-ansi": "^4.0.0"
1292 | },
1293 | "dependencies": {
1294 | "ansi-regex": {
1295 | "version": "3.0.0",
1296 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
1297 | "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
1298 | "dev": true
1299 | },
1300 | "strip-ansi": {
1301 | "version": "4.0.0",
1302 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
1303 | "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
1304 | "dev": true,
1305 | "requires": {
1306 | "ansi-regex": "^3.0.0"
1307 | }
1308 | }
1309 | }
1310 | },
1311 | "string_decoder": {
1312 | "version": "1.0.3",
1313 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz",
1314 | "integrity": "sha1-D8Z9fBQYJd6UKC3VNr7GubzoYKs=",
1315 | "dev": true,
1316 | "requires": {
1317 | "safe-buffer": "~5.1.0"
1318 | }
1319 | },
1320 | "strip-ansi": {
1321 | "version": "3.0.1",
1322 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
1323 | "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
1324 | "dev": true,
1325 | "requires": {
1326 | "ansi-regex": "^2.0.0"
1327 | }
1328 | },
1329 | "strip-bom": {
1330 | "version": "3.0.0",
1331 | "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
1332 | "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
1333 | "dev": true
1334 | },
1335 | "strip-eof": {
1336 | "version": "1.0.0",
1337 | "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
1338 | "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=",
1339 | "dev": true
1340 | },
1341 | "strip-json-comments": {
1342 | "version": "2.0.1",
1343 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
1344 | "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
1345 | "dev": true
1346 | },
1347 | "supports-color": {
1348 | "version": "2.0.0",
1349 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
1350 | "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
1351 | "dev": true
1352 | },
1353 | "term-size": {
1354 | "version": "1.2.0",
1355 | "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz",
1356 | "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=",
1357 | "dev": true,
1358 | "requires": {
1359 | "execa": "^0.7.0"
1360 | }
1361 | },
1362 | "thenify": {
1363 | "version": "3.3.0",
1364 | "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.0.tgz",
1365 | "integrity": "sha1-5p44obq+lpsBCCB5eLn2K4hgSDk=",
1366 | "dev": true,
1367 | "requires": {
1368 | "any-promise": "^1.0.0"
1369 | }
1370 | },
1371 | "throat": {
1372 | "version": "3.2.0",
1373 | "resolved": "https://registry.npmjs.org/throat/-/throat-3.2.0.tgz",
1374 | "integrity": "sha1-UMsGcO28QCN7njR9fh+I5GIK+DY=",
1375 | "dev": true
1376 | },
1377 | "timed-out": {
1378 | "version": "4.0.1",
1379 | "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz",
1380 | "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=",
1381 | "dev": true
1382 | },
1383 | "touch": {
1384 | "version": "1.0.0",
1385 | "resolved": "https://registry.npmjs.org/touch/-/touch-1.0.0.tgz",
1386 | "integrity": "sha1-RJy+LbrlqMgDjjDXH6D/RklHxN4=",
1387 | "dev": true,
1388 | "requires": {
1389 | "nopt": "~1.0.10"
1390 | }
1391 | },
1392 | "tough-cookie": {
1393 | "version": "2.3.3",
1394 | "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.3.tgz",
1395 | "integrity": "sha1-C2GKVWW23qkL80JdBNVe3EdadWE=",
1396 | "dev": true,
1397 | "requires": {
1398 | "punycode": "^1.4.1"
1399 | }
1400 | },
1401 | "typedarray": {
1402 | "version": "0.0.6",
1403 | "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
1404 | "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=",
1405 | "dev": true
1406 | },
1407 | "typescript": {
1408 | "version": "2.9.2",
1409 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.9.2.tgz",
1410 | "integrity": "sha512-Gr4p6nFNaoufRIY4NMdpQRNmgxVIGMs4Fcu/ujdYk3nAZqk7supzBE9idmvfZIlH/Cuj//dvi+019qEue9lV0w==",
1411 | "dev": true
1412 | },
1413 | "typings": {
1414 | "version": "2.1.1",
1415 | "resolved": "https://registry.npmjs.org/typings/-/typings-2.1.1.tgz",
1416 | "integrity": "sha1-usxp0lWXCkeOCfdsf2iZddU1p4o=",
1417 | "dev": true,
1418 | "requires": {
1419 | "archy": "^1.0.0",
1420 | "bluebird": "^3.1.1",
1421 | "chalk": "^1.0.0",
1422 | "cli-truncate": "^1.0.0",
1423 | "columnify": "^1.5.2",
1424 | "elegant-spinner": "^1.0.1",
1425 | "has-unicode": "^2.0.1",
1426 | "listify": "^1.0.0",
1427 | "log-update": "^1.0.2",
1428 | "minimist": "^1.2.0",
1429 | "promise-finally": "^3.0.0",
1430 | "typings-core": "^2.3.3",
1431 | "update-notifier": "^2.0.0",
1432 | "wordwrap": "^1.0.0",
1433 | "xtend": "^4.0.1"
1434 | },
1435 | "dependencies": {
1436 | "wordwrap": {
1437 | "version": "1.0.0",
1438 | "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
1439 | "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=",
1440 | "dev": true
1441 | }
1442 | }
1443 | },
1444 | "typings-core": {
1445 | "version": "2.3.3",
1446 | "resolved": "https://registry.npmjs.org/typings-core/-/typings-core-2.3.3.tgz",
1447 | "integrity": "sha1-CexUzVsR3V8e8vwKsx03ACyita0=",
1448 | "dev": true,
1449 | "requires": {
1450 | "array-uniq": "^1.0.2",
1451 | "configstore": "^3.0.0",
1452 | "debug": "^2.2.0",
1453 | "detect-indent": "^5.0.0",
1454 | "graceful-fs": "^4.1.2",
1455 | "has": "^1.0.1",
1456 | "invariant": "^2.2.0",
1457 | "is-absolute": "^0.2.3",
1458 | "jspm-config": "^0.3.0",
1459 | "listify": "^1.0.0",
1460 | "lockfile": "^1.0.1",
1461 | "make-error-cause": "^1.2.1",
1462 | "mkdirp": "^0.5.1",
1463 | "object.pick": "^1.1.1",
1464 | "parse-json": "^2.2.0",
1465 | "popsicle": "^9.0.0",
1466 | "popsicle-proxy-agent": "^3.0.0",
1467 | "popsicle-retry": "^3.2.0",
1468 | "popsicle-rewrite": "^1.0.0",
1469 | "popsicle-status": "^2.0.0",
1470 | "promise-finally": "^3.0.0",
1471 | "rc": "^1.1.5",
1472 | "rimraf": "^2.4.4",
1473 | "sort-keys": "^1.0.0",
1474 | "string-template": "^1.0.0",
1475 | "strip-bom": "^3.0.0",
1476 | "thenify": "^3.1.0",
1477 | "throat": "^3.0.0",
1478 | "touch": "^1.0.0",
1479 | "typescript": "^2.1.4",
1480 | "xtend": "^4.0.0",
1481 | "zip-object": "^0.1.0"
1482 | }
1483 | },
1484 | "unc-path-regex": {
1485 | "version": "0.1.2",
1486 | "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz",
1487 | "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=",
1488 | "dev": true
1489 | },
1490 | "union": {
1491 | "version": "0.4.6",
1492 | "resolved": "https://registry.npmjs.org/union/-/union-0.4.6.tgz",
1493 | "integrity": "sha1-GY+9rrolTniLDvy2MLwR8kopWeA=",
1494 | "requires": {
1495 | "qs": "~2.3.3"
1496 | }
1497 | },
1498 | "unique-string": {
1499 | "version": "1.0.0",
1500 | "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz",
1501 | "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=",
1502 | "dev": true,
1503 | "requires": {
1504 | "crypto-random-string": "^1.0.0"
1505 | }
1506 | },
1507 | "unzip-response": {
1508 | "version": "2.0.1",
1509 | "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz",
1510 | "integrity": "sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=",
1511 | "dev": true
1512 | },
1513 | "update-notifier": {
1514 | "version": "2.3.0",
1515 | "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-2.3.0.tgz",
1516 | "integrity": "sha1-TognpruRUUCrCTVZ1wFOPruDdFE=",
1517 | "dev": true,
1518 | "requires": {
1519 | "boxen": "^1.2.1",
1520 | "chalk": "^2.0.1",
1521 | "configstore": "^3.0.0",
1522 | "import-lazy": "^2.1.0",
1523 | "is-installed-globally": "^0.1.0",
1524 | "is-npm": "^1.0.0",
1525 | "latest-version": "^3.0.0",
1526 | "semver-diff": "^2.0.0",
1527 | "xdg-basedir": "^3.0.0"
1528 | },
1529 | "dependencies": {
1530 | "ansi-styles": {
1531 | "version": "3.2.0",
1532 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz",
1533 | "integrity": "sha1-wVm41b4PnlpvNG2rlPFs4CIWG4g=",
1534 | "dev": true,
1535 | "requires": {
1536 | "color-convert": "^1.9.0"
1537 | }
1538 | },
1539 | "chalk": {
1540 | "version": "2.2.0",
1541 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.2.0.tgz",
1542 | "integrity": "sha512-0BMM/2hG3ZaoPfR6F+h/oWpZtsh3b/s62TjSM6MGCJWEbJDN1acqCXvyhhZsDSVFklpebUoQ5O1kKC7lOzrn9g==",
1543 | "dev": true,
1544 | "requires": {
1545 | "ansi-styles": "^3.1.0",
1546 | "escape-string-regexp": "^1.0.5",
1547 | "supports-color": "^4.0.0"
1548 | }
1549 | },
1550 | "supports-color": {
1551 | "version": "4.5.0",
1552 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz",
1553 | "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=",
1554 | "dev": true,
1555 | "requires": {
1556 | "has-flag": "^2.0.0"
1557 | }
1558 | }
1559 | }
1560 | },
1561 | "url-join": {
1562 | "version": "2.0.2",
1563 | "resolved": "https://registry.npmjs.org/url-join/-/url-join-2.0.2.tgz",
1564 | "integrity": "sha1-wHJ1aWetJLi1nldBVRyqx49QuLc="
1565 | },
1566 | "url-parse-lax": {
1567 | "version": "1.0.0",
1568 | "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz",
1569 | "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=",
1570 | "dev": true,
1571 | "requires": {
1572 | "prepend-http": "^1.0.1"
1573 | }
1574 | },
1575 | "util-deprecate": {
1576 | "version": "1.0.2",
1577 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
1578 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
1579 | "dev": true
1580 | },
1581 | "wcwidth": {
1582 | "version": "1.0.1",
1583 | "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz",
1584 | "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=",
1585 | "dev": true,
1586 | "requires": {
1587 | "defaults": "^1.0.3"
1588 | }
1589 | },
1590 | "which": {
1591 | "version": "1.3.0",
1592 | "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz",
1593 | "integrity": "sha1-/wS9/AEO5UfXgL7DjhrBwnd9JTo=",
1594 | "dev": true,
1595 | "requires": {
1596 | "isexe": "^2.0.0"
1597 | }
1598 | },
1599 | "widest-line": {
1600 | "version": "1.0.0",
1601 | "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-1.0.0.tgz",
1602 | "integrity": "sha1-DAnIXCqUaD0Nfq+O4JfVZL8OEFw=",
1603 | "dev": true,
1604 | "requires": {
1605 | "string-width": "^1.0.1"
1606 | },
1607 | "dependencies": {
1608 | "is-fullwidth-code-point": {
1609 | "version": "1.0.0",
1610 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
1611 | "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
1612 | "dev": true,
1613 | "requires": {
1614 | "number-is-nan": "^1.0.0"
1615 | }
1616 | },
1617 | "string-width": {
1618 | "version": "1.0.2",
1619 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
1620 | "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
1621 | "dev": true,
1622 | "requires": {
1623 | "code-point-at": "^1.0.0",
1624 | "is-fullwidth-code-point": "^1.0.0",
1625 | "strip-ansi": "^3.0.0"
1626 | }
1627 | }
1628 | }
1629 | },
1630 | "wordwrap": {
1631 | "version": "0.0.3",
1632 | "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz",
1633 | "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc="
1634 | },
1635 | "wrappy": {
1636 | "version": "1.0.2",
1637 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
1638 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
1639 | "dev": true
1640 | },
1641 | "write-file-atomic": {
1642 | "version": "2.3.0",
1643 | "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.3.0.tgz",
1644 | "integrity": "sha1-H/YVdcLipOjlENb6TiQ8zhg5mas=",
1645 | "dev": true,
1646 | "requires": {
1647 | "graceful-fs": "^4.1.11",
1648 | "imurmurhash": "^0.1.4",
1649 | "signal-exit": "^3.0.2"
1650 | }
1651 | },
1652 | "xdg-basedir": {
1653 | "version": "3.0.0",
1654 | "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz",
1655 | "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=",
1656 | "dev": true
1657 | },
1658 | "xtend": {
1659 | "version": "4.0.1",
1660 | "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
1661 | "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=",
1662 | "dev": true
1663 | },
1664 | "yallist": {
1665 | "version": "2.1.2",
1666 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
1667 | "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=",
1668 | "dev": true
1669 | },
1670 | "zip-object": {
1671 | "version": "0.1.0",
1672 | "resolved": "https://registry.npmjs.org/zip-object/-/zip-object-0.1.0.tgz",
1673 | "integrity": "sha1-waDaBMiMg3dW4khoCgP/kC7D9To=",
1674 | "dev": true
1675 | }
1676 | }
1677 | }
1678 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "freestyle-libre-parser-viewer",
3 | "version": "1.0.2",
4 | "description": "A parser library and viewer for CSV generated by the Abbot Freestyle Libre flash glucose meter.",
5 | "main": "index.html",
6 | "repository": {
7 | "type": "git",
8 | "url": "git://github.com/nahog/freestyle-libre-parser-viewer.git"
9 | },
10 | "scripts": {
11 | "postinstall": "typings install && tsc"
12 | },
13 | "author": "Nicolas Padula ",
14 | "license": "MIT",
15 | "devDependencies": {
16 | "bootstrap": "^3.3.7",
17 | "highcharts": "^5.0.15",
18 | "jquery": "^3.3.1",
19 | "moment": "^2.22.2",
20 | "typescript": "^2.9.2",
21 | "typings": "^2.1.0"
22 | },
23 | "dependencies": {
24 | "http-server": "^0.10.0"
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/screenshot.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nahog/freestyle-libre-parser-viewer/fc9ab38f6d36ca770b0064f9c9a7b02d6e578571/screenshot.jpg
--------------------------------------------------------------------------------
/test.tsv:
--------------------------------------------------------------------------------
1 | Patient Name
2 | ID Time Record Type Historic Glucose (mmol/L) Scan Glucose (mmol/L) Non-numeric Rapid-Acting Insulin Rapid-Acting Insulin (units) Non-numeric Food Carbohydrates (grams) Non-numeric Long-Acting Insulin Long-Acting Insulin (units) Notes Strip Glucose (mmol/L) Ketone (mmol/L) Meal Insulin (units) Correction Insulin (units) User Change Insulin (units) Previous Time Updated Time
3 | 147 2016/11/15 00:04 1 6.4
4 | 150 2016/11/15 00:08 0 6.2
5 | 151 2016/11/15 00:33 1 6.2
6 | 153 2016/11/15 00:23 0 6.1
7 | 154 2016/11/15 00:38 0 5.2
8 | 155 2016/11/15 01:07 1 4.7
9 | 157 2016/11/15 00:55 0 4.9
10 | 158 2016/11/15 01:10 0 5.8
11 | 159 2016/11/15 01:25 0 6.3
12 | 160 2016/11/15 01:40 0 6.5
13 | 161 2016/11/15 01:55 0 6.5
14 | 162 2016/11/15 02:10 0 6.1
15 | 163 2016/11/15 02:25 0 5.4
16 | 164 2016/11/15 02:40 0 5.2
17 | 165 2016/11/15 02:57 1 6.5
18 | 167 2016/11/15 02:57 0 5.2
19 | 168 2016/11/15 03:12 0 4.5
20 | 169 2016/11/15 03:27 0 4.4
21 | 170 2016/11/15 03:42 0 4.3
22 | 171 2016/11/15 03:57 0 4.4
23 | 172 2016/11/15 04:12 0 4.9
24 | 173 2016/11/15 04:27 0 5.6
25 | 174 2016/11/15 04:42 0 5.9
26 | 175 2016/11/15 04:57 0 5.6
27 | 176 2016/11/15 05:12 0 5.3
28 | 177 2016/11/15 05:27 0 5.3
29 | 178 2016/11/15 05:42 0 5.4
30 | 179 2016/11/15 05:57 0 5.4
31 | 180 2016/11/15 06:12 0 5.7
32 | 181 2016/11/15 06:27 0 6.1
33 | 182 2016/11/15 06:42 0 6.1
34 | 183 2016/11/15 06:57 0 5.4
35 | 184 2016/11/15 07:12 0 5.3
36 | 185 2016/11/15 07:30 1 6.6
37 | 187 2016/11/15 07:27 0 6.4
38 | 188 2016/11/15 07:42 0 6.5
39 | 189 2016/11/15 07:57 0 6.4
40 | 190 2016/11/15 08:12 0 6.4
41 | 191 2016/11/15 08:27 0 6.3
42 | 192 2016/11/15 08:42 0 6.5
43 | 193 2016/11/15 08:57 0 6.6
44 | 194 2016/11/15 09:12 0 6.7
45 | 195 2016/11/15 09:27 0 7.1
46 | 196 2016/11/15 09:42 0 7.4
47 | 197 2016/11/15 10:00 1 6.3
48 | 199 2016/11/15 10:01 1 6.3
49 | 201 2016/11/15 09:58 0 7.6
50 | 202 2016/11/15 10:13 0 8.6
51 | 203 2016/11/15 10:28 0 8.3
52 | 204 2016/11/15 10:52 1 7.9
53 | 206 2016/11/15 10:43 0 6.8
54 | 207 2016/11/15 11:00 4 1.0
55 | 207 2016/11/15 11:00 4 32.0
56 | 207 2016/11/15 11:00 1 8.3
57 | 210 2016/11/15 10:59 0 8.3
58 | 211 2016/11/15 11:14 0 8.9
59 | 212 2016/11/15 11:29 0 9.2
60 | 213 2016/11/15 11:44 0 9.4
61 | 214 2016/11/15 11:59 0 9.3
62 | 215 2016/11/15 12:14 0 8.9
63 | 216 2016/11/15 12:29 0 8.4
64 | 217 2016/11/15 12:44 0 8.4
65 | 218 2016/11/15 13:08 4 6.0
66 | 218 2016/11/15 13:08 5 1
67 | 218 2016/11/15 13:08 1 8.2
68 | 221 2016/11/15 13:00 0 8.1
69 | 222 2016/11/15 13:15 0 7.7
70 | 223 2016/11/15 13:30 0 7.7
71 | 224 2016/11/15 13:45 0 8.6
72 | 225 2016/11/15 14:00 0 9.9
73 | 226 2016/11/15 14:21 4 2.0
74 | 226 2016/11/15 14:21 1 11.5
75 | 229 2016/11/15 14:15 0 11.6
76 | 230 2016/11/15 14:30 0 12.1
77 | 231 2016/11/15 14:45 0 11.8
78 | 232 2016/11/15 15:11 1 11.4
79 | 234 2016/11/15 15:01 0 11.7
80 | 235 2016/11/15 15:16 0 11.6
81 | 236 2016/11/15 15:31 0 11.1
82 | 237 2016/11/15 15:57 1 9.9
83 | 239 2016/11/15 15:46 0 10.1
84 | 240 2016/11/15 16:01 0 9.7
85 | 241 2016/11/15 16:16 0 9.3
86 | 242 2016/11/15 16:44 1 8.6
87 | 244 2016/11/15 16:31 0 8.6
88 | 245 2016/11/15 16:46 0 8.9
89 | 246 2016/11/15 17:01 0 9.8
90 | 247 2016/11/15 17:16 0 10.4
91 | 248 2016/11/15 17:31 0 10.8
92 | 249 2016/11/15 17:50 4 3.0
93 | 249 2016/11/15 17:50 1 11.7
94 | 252 2016/11/15 17:46 0 11.7
95 | 253 2016/11/15 18:01 0 12.2
96 | 254 2016/11/15 18:21 1 11.3
97 | 256 2016/11/15 18:17 0 11.5
98 | 257 2016/11/15 18:32 0 10.9
99 | 258 2016/11/15 18:47 0 10.9
100 | 259 2016/11/15 19:07 1 11.0
101 | 261 2016/11/15 19:12 4 5.0
102 | 261 2016/11/15 19:12 5 1
103 | 261 2016/11/15 19:12 1 10.5
104 | 264 2016/11/15 19:02 0 10.3
105 | 265 2016/11/15 19:17 0 9.6
106 | 266 2016/11/15 19:32 0 9.5
107 | 267 2016/11/15 19:47 0 9.6
108 | 268 2016/11/15 20:02 0 9.6
109 | 269 2016/11/15 20:19 1 9.7
110 | 271 2016/11/15 20:18 0 10.2
111 | 272 2016/11/15 20:33 0 10.8
112 | 273 2016/11/15 20:53 1 10.9
113 | 275 2016/11/15 20:48 0 11.1
114 | 276 2016/11/15 21:03 0 11.6
115 | 277 2016/11/15 21:20 4 4.0
116 | 277 2016/11/15 21:20 1 12.1
117 | 280 2016/11/15 21:18 0 12.1
118 | 281 2016/11/15 21:33 0 12.3
119 | 282 2016/11/15 21:48 0 12.4
120 | 283 2016/11/15 22:13 4 6.0
121 | 283 2016/11/15 22:13 1 13.3
122 | 286 2016/11/15 22:03 0 12.6
123 | 287 2016/11/15 22:18 0 12.8
124 | 288 2016/11/15 22:33 0 12.9
125 | 289 2016/11/15 22:57 1 13.4
126 | 291 2016/11/15 22:48 0 12.9
127 | 292 2016/11/15 23:05 1 12.6
128 | 294 2016/11/15 23:04 0 12.4
129 | 295 2016/11/15 23:23 1 10.8
130 | 297 2016/11/15 23:19 0 11.7
131 | 298 2016/11/15 23:34 0 11.4
132 | 299 2016/11/15 23:54 1 11.1
133 | 301 2016/11/15 23:49 0 11.7
134 | 302 2016/11/16 00:09 1 10.8
135 | 304 2016/11/16 00:04 0 10.9
136 | 305 2016/11/16 00:19 0 10.6
137 | 306 2016/11/16 00:41 1 9.9
138 | 308 2016/11/16 00:36 0 10.4
139 | 309 2016/11/16 00:51 0 8.9
140 | 310 2016/11/16 01:06 0 8.2
141 | 311 2016/11/16 01:21 0 9.3
142 | 312 2016/11/16 01:36 0 9.6
143 | 313 2016/11/16 01:51 0 9.3
144 | 314 2016/11/16 02:06 0 9.8
145 | 315 2016/11/16 02:21 0 10.6
146 | 316 2016/11/16 02:36 0 11.1
147 | 317 2016/11/16 02:51 0 11.3
148 | 318 2016/11/16 03:06 0 10.9
149 | 319 2016/11/16 03:21 0 10.2
150 | 320 2016/11/16 03:36 0 10.2
151 | 321 2016/11/16 03:51 0 10.7
152 | 322 2016/11/16 04:06 0 10.1
153 | 323 2016/11/16 04:21 0 9.1
154 | 324 2016/11/16 04:36 0 9.5
155 | 325 2016/11/16 04:51 0 10.1
156 | 326 2016/11/16 05:06 0 10.3
157 | 327 2016/11/16 05:22 1 10.6
158 | 329 2016/11/16 05:23 0 10.2
159 | 330 2016/11/16 05:38 0 9.1
160 | 331 2016/11/16 05:53 0 8.9
161 | 332 2016/11/16 06:08 0 9.1
162 | 333 2016/11/16 06:23 0 9.4
163 | 334 2016/11/16 06:38 0 10.2
164 | 335 2016/11/16 06:53 0 10.7
165 | 336 2016/11/16 07:08 0 10.8
166 | 337 2016/11/16 07:23 0 10.9
167 | 338 2016/11/16 07:47 1 10.3
168 | 340 2016/11/16 07:38 0 10.7
169 | 341 2016/11/16 07:53 0 10.3
170 | 342 2016/11/16 08:08 0 10.3
171 | 343 2016/11/16 08:23 0 11.6
172 | 344 2016/11/16 08:38 0 12.2
173 | 345 2016/11/16 08:57 4 4.0
174 | 345 2016/11/16 08:57 1 12.5
175 | 348 2016/11/16 08:54 0 12.5
176 | 349 2016/11/16 09:09 0 12.2
177 | 350 2016/11/16 09:24 0 11.3
178 | 351 2016/11/16 09:39 0 10.4
179 | 352 2016/11/16 09:54 0 10.2
180 | 353 2016/11/16 10:09 0 9.7
181 | 354 2016/11/16 10:24 0 8.9
182 | 355 2016/11/16 10:39 0 9.1
183 | 356 2016/11/16 10:54 0 9.1
184 | 357 2016/11/16 11:09 4 33.0
185 | 357 2016/11/16 11:09 1 8.6
186 | 360 2016/11/16 11:09 0 8.4
187 | 361 2016/11/16 11:24 0 7.9
188 | 362 2016/11/16 11:39 0 7.7
189 | 363 2016/11/16 11:54 0 7.2
190 | 364 2016/11/16 12:09 0 6.6
191 | 365 2016/11/16 12:36 1 6.7
192 | 367 2016/11/16 12:24 0 6.6
193 | 368 2016/11/16 12:39 0 6.4
194 | 369 2016/11/16 12:57 1 5.6
195 | 371 2016/11/16 12:55 0 5.6
196 | 372 2016/11/16 13:10 0 5.0
197 | 373 2016/11/16 13:25 1 4.7
198 | 375 2016/11/16 13:35 4 6.0
199 | 375 2016/11/16 13:35 5 1
200 | 375 2016/11/16 13:35 1 5.2
201 | 378 2016/11/16 13:25 0 4.9
202 | 379 2016/11/16 13:40 0 5.0
203 | 380 2016/11/16 13:55 0 5.2
204 | 381 2016/11/16 14:11 1 7.0
205 | 383 2016/11/16 14:11 0 7.2
206 | 384 2016/11/16 14:26 0 8.4
207 | 385 2016/11/16 14:41 0 8.5
208 | 386 2016/11/16 14:59 1 7.2
209 | 388 2016/11/16 14:56 0 8.3
210 | 389 2016/11/16 15:11 0 8.6
211 | 390 2016/11/16 15:33 1 9.0
212 | 392 2016/11/16 15:26 0 9.4
213 | 393 2016/11/16 15:41 0 10.6
214 | 394 2016/11/16 15:57 4 3.0
215 | 394 2016/11/16 15:57 1 11.3
216 | 397 2016/11/16 15:56 0 11.7
217 | 398 2016/11/16 16:11 0 12.7
218 | 399 2016/11/16 16:26 4 2.0
219 | 399 2016/11/16 16:26 1 13.3
220 | 402 2016/11/16 16:26 0 13.2
221 | 403 2016/11/16 16:50 1 12.7
222 | 405 2016/11/16 16:41 0 13.2
223 | 406 2016/11/16 16:56 1 12.3
224 | 408 2016/11/16 16:57 0 12.0
225 | 409 2016/11/16 17:12 0 11.1
226 | 410 2016/11/16 17:41 1 10.7
227 | 412 2016/11/16 17:27 0 10.3
228 | 413 2016/11/16 17:42 0 9.6
229 | 414 2016/11/16 18:08 1 7.8
230 | 416 2016/11/16 17:57 0 7.8
231 | 417 2016/11/16 18:12 0 6.8
232 | 418 2016/11/16 18:35 1 6.3
233 | 420 2016/11/16 18:28 0 6.3
234 | 421 2016/11/16 18:56 1 5.9
235 | 423 2016/11/16 18:43 0 5.9
236 | 424 2016/11/16 18:58 0 6.1
237 | 425 2016/11/16 19:13 0 6.6
238 | 426 2016/11/16 19:28 0 7.4
239 | 427 2016/11/16 19:47 4 4.0
240 | 427 2016/11/16 19:47 1 8.9
241 | 430 2016/11/16 19:43 0 8.7
242 | 431 2016/11/16 19:58 0 9.4
243 | 432 2016/11/16 20:19 1 9.7
244 | 434 2016/11/16 20:13 0 9.8
245 | 435 2016/11/16 20:28 0 9.8
246 | 436 2016/11/16 20:54 1 8.9
247 | 438 2016/11/16 20:44 0 9.6
248 | 439 2016/11/16 20:59 0 9.2
249 | 440 2016/11/16 21:14 0 8.8
250 | 441 2016/11/16 21:30 4 7.0
251 | 441 2016/11/16 21:30 5 1
252 | 441 2016/11/16 21:30 1 8.2
253 | 444 2016/11/16 21:29 0 8.2
254 | 445 2016/11/16 21:44 0 8.3
255 | 446 2016/11/16 21:59 0 8.7
256 | 447 2016/11/16 22:16 1 9.5
257 | 449 2016/11/16 22:15 0 9.2
258 | 450 2016/11/16 22:30 0 9.6
259 | 451 2016/11/16 22:45 0 10.6
260 | 452 2016/11/16 23:00 4 2.0
261 | 452 2016/11/16 23:00 1 10.7
262 | 455 2016/11/16 23:00 0 10.5
263 | 456 2016/11/16 23:15 0 10.0
264 | 457 2016/11/16 23:30 0 9.4
265 | 458 2016/11/16 23:45 0 9.2
266 | 459 2016/11/17 00:09 1 9.2
267 | 461 2016/11/17 00:00 0 9.6
268 | 462 2016/11/17 00:15 0 9.7
269 | 463 2016/11/17 00:39 1 9.2
270 | 465 2016/11/17 00:30 0 9.5
271 | 466 2016/11/17 00:45 0 9.1
272 | 467 2016/11/17 01:01 1 8.1
273 | 469 2016/11/17 01:01 0 8.2
274 | 470 2016/11/17 01:16 0 7.9
275 | 471 2016/11/17 01:31 0 7.5
276 | 472 2016/11/17 02:00 1 7.7
277 | 474 2016/11/17 01:47 0 7.6
278 | 475 2016/11/17 02:02 0 7.8
279 | 476 2016/11/17 02:17 0 7.6
280 | 477 2016/11/17 02:32 0 7.4
281 | 478 2016/11/17 02:47 0 7.3
282 | 479 2016/11/17 03:02 0 7.2
283 | 480 2016/11/17 03:17 0 7.9
284 | 481 2016/11/17 03:32 0 9.4
285 | 482 2016/11/17 03:47 0 10.2
286 | 483 2016/11/17 04:02 0 9.7
287 | 484 2016/11/17 04:17 0 10.2
288 | 485 2016/11/17 04:32 0 10.4
289 | 486 2016/11/17 04:47 0 10.3
290 | 487 2016/11/17 05:02 0 11.1
291 | 488 2016/11/17 05:17 0 11.0
292 | 489 2016/11/17 05:32 0 9.8
293 | 490 2016/11/17 05:47 0 9.7
294 | 491 2016/11/17 06:02 0 10.3
295 | 492 2016/11/17 06:29 4 2.0
296 | 492 2016/11/17 06:29 1 11.3
297 | 495 2016/11/17 06:18 0 11.3
298 | 496 2016/11/17 06:33 0 12.2
299 | 497 2016/11/17 06:48 0 11.7
300 | 498 2016/11/17 07:03 0 10.6
301 | 499 2016/11/17 07:18 0 10.5
302 | 500 2016/11/17 07:33 0 11.2
303 | 501 2016/11/17 07:55 1 11.4
304 | 503 2016/11/17 07:49 0 11.2
305 | 504 2016/11/17 08:04 0 10.2
306 | 505 2016/11/17 08:19 0 10.4
307 | 506 2016/11/17 08:34 0 11.7
308 | 507 2016/11/17 08:49 0 11.9
309 | 508 2016/11/17 09:04 0 11.9
310 | 509 2016/11/17 09:19 0 12.1
311 | 510 2016/11/17 09:34 0 11.6
312 | 511 2016/11/17 09:49 0 10.5
313 | 512 2016/11/17 10:04 0 11.2
314 | 513 2016/11/17 10:19 0 12.6
315 | 514 2016/11/17 10:34 0 12.7
316 | 515 2016/11/17 10:59 4 2.0
317 | 515 2016/11/17 10:59 4 33.0
318 | 515 2016/11/17 10:59 1 11.6
319 | 518 2016/11/17 10:50 0 11.9
320 | 519 2016/11/17 11:05 0 12.4
321 | 520 2016/11/17 11:20 0 12.3
322 | 521 2016/11/17 11:35 0 11.8
323 | 522 2016/11/17 12:02 1 12.6
324 | 524 2016/11/17 11:50 0 12.2
325 | 525 2016/11/17 12:06 1 12.2
326 | 527 2016/11/17 12:06 0 10.8
327 | 528 2016/11/17 12:21 0 9.7
328 | 529 2016/11/17 12:36 0 10.1
329 | 530 2016/11/17 12:51 0 9.8
330 | 531 2016/11/17 13:06 0 9.1
331 | 532 2016/11/17 13:24 1 8.3
332 | 534 2016/11/17 13:22 0 8.4
333 | 535 2016/11/17 13:37 0 7.6
334 | 536 2016/11/17 13:52 0 7.3
335 | 537 2016/11/17 14:07 0 7.2
336 | 538 2016/11/17 14:22 0 6.9
337 | 539 2016/11/17 14:37 0 6.5
338 | 540 2016/11/17 14:52 0 6.3
339 | 541 2016/11/17 15:07 0 6.2
340 | 542 2016/11/17 15:26 4 6.0
341 | 542 2016/11/17 15:26 5 1
342 | 542 2016/11/17 15:26 1 6.2
343 | 545 2016/11/17 15:22 0 6.1
344 | 546 2016/11/17 15:37 0 5.8
345 | 547 2016/11/17 15:52 0 5.8
346 | 548 2016/11/17 16:07 0 6.8
347 | 549 2016/11/17 16:22 0 7.9
348 | 550 2016/11/17 16:39 1 8.6
349 | 552 2016/11/17 16:38 0 8.7
350 | 553 2016/11/17 16:53 0 8.7
351 | 554 2016/11/17 17:08 0 8.8
352 | 555 2016/11/17 17:23 0 9.6
353 | 556 2016/11/17 17:40 4 3.0
354 | 556 2016/11/17 17:40 1 10.7
355 | 559 2016/11/17 17:38 0 10.7
356 | 560 2016/11/17 17:53 0 11.3
357 | 561 2016/11/17 18:18 1 11.9
358 | 563 2016/11/17 18:08 0 11.8
359 | 564 2016/11/17 18:23 0 12.1
360 | 565 2016/11/17 18:39 1 11.9
361 | 567 2016/11/17 18:39 0 11.8
362 | 568 2016/11/17 18:54 0 11.8
363 | 569 2016/11/17 19:22 1 10.9
364 | 571 2016/11/17 19:09 0 11.4
365 | 572 2016/11/17 19:24 0 11.2
366 | 573 2016/11/17 19:39 0 10.7
367 | 574 2016/11/17 19:54 0 10.6
368 | 575 2016/11/17 20:10 4 3.0
369 | 575 2016/11/17 20:10 1 10.0
370 | 578 2016/11/17 20:09 0 9.9
371 | 579 2016/11/17 20:24 0 9.6
372 | 580 2016/11/17 20:52 1 8.7
373 | 582 2016/11/17 20:39 0 9.3
374 | 583 2016/11/17 20:54 0 8.8
375 | 584 2016/11/17 21:18 1 7.9
376 | 586 2016/11/17 21:09 0 8.2
377 | 587 2016/11/17 21:24 0 8.1
378 | 588 2016/11/17 21:50 4 8.0
379 | 588 2016/11/17 21:50 5 1
380 | 588 2016/11/17 21:50 1 7.8
381 | 591 2016/11/17 21:39 0 8.0
382 | 592 2016/11/17 21:54 0 7.9
383 | 593 2016/11/17 22:09 0 8.2
384 | 594 2016/11/17 22:35 1 9.1
385 | 596 2016/11/17 22:25 0 8.7
386 | 597 2016/11/17 22:40 0 8.7
387 | 598 2016/11/17 23:09 1 8.1
388 | 600 2016/11/17 22:56 0 7.9
389 | 601 2016/11/17 23:11 0 6.9
390 | 602 2016/11/17 23:26 0 6.2
391 | 603 2016/11/17 23:41 0 6.1
392 | 604 2016/11/17 23:58 1 5.7
393 | 606 2016/11/17 23:56 0 5.8
394 | 607 2016/11/18 00:11 0 5.8
395 | 608 2016/11/18 00:26 0 6.7
396 | 609 2016/11/18 00:49 1 8.2
397 | 611 2016/11/18 00:41 0 8.1
398 | 612 2016/11/18 00:56 0 8.4
399 | 613 2016/11/18 01:12 1 6.4
400 | 615 2016/11/18 01:15 0 7.2
401 | 616 2016/11/18 01:30 0 7.5
402 | 617 2016/11/18 01:45 0 7.3
403 | 618 2016/11/18 02:00 0 6.8
404 | 619 2016/11/18 02:15 0 6.9
405 | 620 2016/11/18 02:30 0 6.5
406 | 621 2016/11/18 02:45 0 5.8
407 | 622 2016/11/18 03:00 0 5.8
408 | 623 2016/11/18 03:15 0 6.3
409 | 624 2016/11/18 03:30 0 6.8
410 | 625 2016/11/18 03:45 0 6.9
411 | 626 2016/11/18 04:00 0 7.3
412 | 627 2016/11/18 04:15 0 7.7
413 | 628 2016/11/18 04:30 0 7.8
414 | 629 2016/11/18 04:45 0 7.1
415 | 630 2016/11/18 05:00 0 6.4
416 | 631 2016/11/18 05:15 0 6.0
417 | 632 2016/11/18 05:30 0 6.1
418 | 633 2016/11/18 05:45 0 6.2
419 | 634 2016/11/18 06:00 0 6.3
420 | 635 2016/11/18 06:15 0 6.2
421 | 636 2016/11/18 06:30 0 6.0
422 | 637 2016/11/18 06:45 0 6.0
423 | 638 2016/11/18 07:00 0 6.3
424 | 639 2016/11/18 07:15 0 6.4
425 | 640 2016/11/18 07:30 0 5.9
426 | 641 2016/11/18 07:45 0 5.8
427 | 642 2016/11/18 08:00 0 5.8
428 | 643 2016/11/18 08:15 0 5.7
429 | 644 2016/11/18 08:30 0 5.7
430 | 645 2016/11/18 08:45 0 5.7
431 | 646 2016/11/18 09:00 1 5.4
432 | 648 2016/11/18 09:00 0 5.2
433 | 649 2016/11/18 09:28 1 5.3
434 | 651 2016/11/18 09:15 0 5.7
435 | 652 2016/11/18 09:30 0 5.6
436 | 653 2016/11/18 09:45 0 5.2
437 | 654 2016/11/18 10:00 0 5.4
438 | 655 2016/11/18 10:15 0 5.5
439 | 656 2016/11/18 10:30 0 5.4
440 | 657 2016/11/18 10:45 0 5.3
441 | 658 2016/11/18 11:00 4 33.0
442 | 658 2016/11/18 11:00 1 5.6
443 | 660 2016/11/18 11:01 0 5.8
444 | 661 2016/11/18 11:16 0 6.6
445 | 662 2016/11/18 11:31 0 7.3
446 | 663 2016/11/18 11:54 1 7.6
447 | 665 2016/11/18 11:46 0 7.5
448 | 666 2016/11/18 12:01 0 7.3
449 | 667 2016/11/18 12:16 0 7.2
450 | 668 2016/11/18 12:32 1 7.1
451 | 670 2016/11/18 12:31 0 7.2
452 | 671 2016/11/18 12:51 4 7.0
453 | 671 2016/11/18 12:51 1 6.9
454 | 674 2016/11/18 12:47 0 6.9
455 | 675 2016/11/18 13:02 0 7.2
456 | 676 2016/11/18 13:17 0 8.6
457 | 677 2016/11/18 13:32 0 10.3
458 | 678 2016/11/18 13:47 0 11.2
459 | 679 2016/11/18 14:15 1 10.4
460 | 681 2016/11/18 14:02 0 10.8
461 | 682 2016/11/18 14:17 0 10.2
462 | 683 2016/11/18 14:36 1 9.3
463 | 685 2016/11/18 14:33 0 9.3
464 | 686 2016/11/18 14:48 0 8.4
465 | 687 2016/11/18 15:03 0 8.1
466 | 688 2016/11/18 15:21 1 7.7
467 | 690 2016/11/18 15:17 0 7.7
468 | 691 2016/11/18 15:33 4 2.0
469 | 691 2016/11/18 15:33 1 7.7
470 | 694 2016/11/18 15:32 0 7.7
471 | 695 2016/11/18 15:47 0 7.4
472 | 696 2016/11/18 16:02 0 7.2
473 | 697 2016/11/18 16:31 4 2.0
474 | 697 2016/11/18 16:31 1 8.5
475 | 700 2016/11/18 16:18 0 7.9
476 | 701 2016/11/18 16:33 0 8.5
477 | 702 2016/11/18 17:00 1 8.2
478 | 704 2016/11/18 16:49 0 8.2
479 | 705 2016/11/18 17:04 0 7.6
480 | 706 2016/11/18 17:19 0 7.0
481 | 707 2016/11/18 17:34 0 6.8
482 | 708 2016/11/18 17:49 0 6.8
483 | 709 2016/11/18 18:04 0 6.8
484 | 710 2016/11/18 18:19 0 6.7
485 | 711 2016/11/18 18:37 1 6.6
486 | 713 2016/11/18 18:34 0 6.4
487 | 714 2016/11/18 18:59 1 6.1
488 | 716 2016/11/18 18:49 0 5.8
489 | 717 2016/11/18 19:04 0 4.8
490 | 718 2016/11/18 19:19 0 4.7
491 | 719 2016/11/18 19:34 0 4.6
492 | 720 2016/11/18 19:57 1 4.2
493 | 722 2016/11/18 19:50 0 4.1
494 | 723 2016/11/18 20:05 0 3.9
495 | 724 2016/11/18 20:28 1 4.8
496 | 726 2016/11/18 20:19 0 4.4
497 | 727 2016/11/18 20:42 1 5.0
498 | 729 2016/11/18 20:35 0 4.8
499 | 730 2016/11/18 20:57 4 6.0
500 | 730 2016/11/18 20:57 5 1
501 | 730 2016/11/18 20:57 1 5.9
502 | 733 2016/11/18 20:50 0 5.8
503 | 734 2016/11/18 21:05 0 7.8
504 | 735 2016/11/18 21:20 0 10.0
505 | 736 2016/11/18 21:41 4 3.0
506 | 736 2016/11/18 21:41 1 13.2
507 | 739 2016/11/18 21:35 0 12.3
508 | 740 2016/11/18 21:50 0 13.5
509 | 741 2016/11/18 22:05 0 14.1
510 | 742 2016/11/18 22:26 1 14.8
511 | 744 2016/11/18 22:21 0 14.7
512 | 745 2016/11/18 22:36 0 15.1
513 | 746 2016/11/18 22:51 0 15.7
514 | 747 2016/11/18 23:08 4 3.0
515 | 747 2016/11/18 23:08 1 16.2
516 | 751 2016/11/18 23:06 0 16.8
517 | 752 2016/11/18 23:21 0 16.9
518 | 753 2016/11/18 23:36 0 16.3
519 | 754 2016/11/19 00:04 1 14.1
520 | 756 2016/11/19 00:04 1 14.1
521 | 758 2016/11/18 23:51 0 15.0
522 | 759 2016/11/19 00:06 1 13.8
523 | 761 2016/11/19 00:15 1 12.6
524 | 763 2016/11/19 00:06 0 13.2
525 | 764 2016/11/19 00:21 0 11.8
526 | 765 2016/11/19 00:41 4 4.0
527 | 765 2016/11/19 00:41 5 1
528 | 765 2016/11/19 00:41 1 11.5
529 | 768 2016/11/19 00:37 0 11.3
530 | 769 2016/11/19 00:52 0 11.4
531 | 770 2016/11/19 01:07 0 12.3
532 | 771 2016/11/19 01:22 0 13.2
533 | 772 2016/11/19 01:37 1 12.7
534 | 774 2016/11/19 01:51 4 4.0
535 | 774 2016/11/19 01:51 1 13.3
536 | 777 2016/11/19 01:38 0 13.3
537 | 778 2016/11/19 01:53 0 12.4
538 | 779 2016/11/19 02:08 0 10.8
539 | 780 2016/11/19 02:23 0 9.7
540 | 781 2016/11/19 02:38 0 8.8
541 | 782 2016/11/19 02:53 0 7.9
542 | 783 2016/11/19 03:08 0 7.3
543 | 784 2016/11/19 03:23 0 6.8
544 | 785 2016/11/19 03:47 1 6.1
545 | 787 2016/11/19 03:41 0 6.5
546 | 788 2016/11/19 03:56 0 6.2
547 | 789 2016/11/19 04:11 0 5.7
548 | 790 2016/11/19 04:26 0 5.6
549 | 791 2016/11/19 04:41 0 5.8
550 | 792 2016/11/19 04:56 0 5.9
551 | 793 2016/11/19 05:11 0 6.1
552 | 794 2016/11/19 05:26 0 6.3
553 | 795 2016/11/19 05:41 0 6.4
554 | 796 2016/11/19 05:56 0 6.9
555 | 797 2016/11/19 06:11 0 7.5
556 | 798 2016/11/19 06:26 0 8.2
557 | 799 2016/11/19 06:41 0 8.3
558 | 800 2016/11/19 06:56 0 8.3
559 | 801 2016/11/19 07:11 0 8.7
560 | 802 2016/11/19 07:26 0 8.2
561 | 803 2016/11/19 07:41 0 7.3
562 | 804 2016/11/19 07:56 0 7.9
563 | 805 2016/11/19 08:11 0 9.5
564 | 806 2016/11/19 08:26 0 10.2
565 | 807 2016/11/19 08:41 0 10.1
566 | 808 2016/11/19 08:56 0 10.4
567 | 809 2016/11/19 09:11 0 11.7
568 | 810 2016/11/19 09:26 0 12.6
569 | 811 2016/11/19 09:52 4 4.0
570 | 811 2016/11/19 09:52 1 12.9
571 | 814 2016/11/19 09:41 0 12.8
572 | 815 2016/11/19 09:56 0 12.7
573 | 816 2016/11/19 10:11 0 12.4
574 | 817 2016/11/19 10:26 0 11.7
575 | 818 2016/11/19 10:41 0 10.6
576 | 819 2016/11/19 10:59 4 33.0
577 | 819 2016/11/19 10:59 1 10.2
578 | 821 2016/11/19 10:58 0 10.5
579 | 822 2016/11/19 11:13 0 10.3
580 | 823 2016/11/19 11:28 0 10.3
581 | 824 2016/11/19 11:43 0 9.8
582 | 825 2016/11/19 11:58 0 9.4
583 | 826 2016/11/19 12:13 0 9.2
584 | 827 2016/11/19 12:28 0 8.6
585 | 828 2016/11/19 12:43 0 8.1
586 | 829 2016/11/19 12:58 0 7.8
587 | 830 2016/11/19 13:25 1 7.7
588 | 832 2016/11/19 13:13 0 7.7
589 | 833 2016/11/19 13:28 0 7.7
590 | 834 2016/11/19 13:49 4 6.0
591 | 834 2016/11/19 13:49 1 7.2
592 | 837 2016/11/19 13:43 0 7.3
593 | 838 2016/11/19 13:58 0 7.4
594 | 839 2016/11/19 14:13 0 7.7
595 | 840 2016/11/19 14:40 1 7.9
596 | 842 2016/11/19 14:29 0 7.7
597 | 843 2016/11/19 14:44 0 7.3
598 | 844 2016/11/19 14:59 0 6.4
599 | 845 2016/11/19 15:18 1 5.6
600 | 847 2016/11/19 15:13 0 5.4
601 | 848 2016/11/19 15:28 0 5.3
602 | 849 2016/11/19 15:43 0 5.5
603 | 850 2016/11/19 16:03 1 5.2
604 | 852 2016/11/19 15:58 0 5.2
605 | 853 2016/11/19 16:13 0 4.6
606 | 854 2016/11/19 16:28 0 4.2
607 | 855 2016/11/19 16:49 1 4.3
608 | 857 2016/11/19 16:45 0 4.2
609 | 858 2016/11/19 17:00 0 4.2
610 | 859 2016/11/19 17:21 1 4.7
611 | 861 2016/11/19 17:15 0 4.7
612 | 862 2016/11/19 17:30 0 5.9
613 | 863 2016/11/19 17:45 0 7.4
614 | 864 2016/11/19 18:00 0 8.7
615 | 865 2016/11/19 18:15 0 10.4
616 | 866 2016/11/19 18:30 0 12.3
617 | 867 2016/11/19 18:45 0 13.3
618 | 868 2016/11/19 19:05 4 5.0
619 | 868 2016/11/19 19:05 1 13.9
620 | 871 2016/11/19 19:01 0 13.9
621 | 872 2016/11/19 19:16 0 14.3
622 | 873 2016/11/19 19:31 1 14.1
623 | 875 2016/11/19 19:31 0 13.7
624 | 876 2016/11/19 19:46 0 13.1
625 | 877 2016/11/19 20:14 1 10.8
626 | 879 2016/11/19 20:00 0 11.9
627 | 880 2016/11/19 20:27 1 10.0
628 | 882 2016/11/19 20:16 0 10.4
629 | 883 2016/11/19 20:31 0 9.6
630 | 884 2016/11/19 20:51 4 6.0
631 | 884 2016/11/19 20:51 5 1
632 | 884 2016/11/19 20:51 1 9.2
633 | 887 2016/11/19 20:46 0 9.2
634 | 888 2016/11/19 21:01 0 8.8
635 | 889 2016/11/19 21:16 0 8.4
636 | 890 2016/11/19 21:32 1 9.5
637 | 892 2016/11/19 21:31 0 9.3
638 | 893 2016/11/19 21:46 0 8.4
639 | 894 2016/11/19 22:01 0 7.6
640 | 895 2016/11/19 22:20 1 8.1
641 | 897 2016/11/19 22:17 0 8.1
642 | 898 2016/11/19 22:32 0 9.3
643 | 899 2016/11/19 22:47 0 10.0
644 | 900 2016/11/19 23:09 4 3.0
645 | 900 2016/11/19 23:09 1 10.6
646 | 903 2016/11/19 23:02 0 10.4
647 | 904 2016/11/19 23:17 0 10.8
648 | 905 2016/11/19 23:46 1 13.2
649 | 907 2016/11/19 23:32 0 11.2
650 | 908 2016/11/19 23:47 4 2.0
651 | 908 2016/11/19 23:47 1 13.1
652 | 911 2016/11/19 23:47 0 12.6
653 | 912 2016/11/20 00:15 1 14.8
654 | 914 2016/11/20 00:03 0 14.3
655 | 915 2016/11/20 00:18 0 14.8
656 | 916 2016/11/20 00:33 0 14.2
657 | 917 2016/11/20 00:57 1 13.9
658 | 919 2016/11/20 00:48 0 13.8
659 | 920 2016/11/20 01:03 0 14.1
660 | 921 2016/11/20 01:18 0 14.8
661 | 922 2016/11/20 01:45 4 5.0
662 | 922 2016/11/20 01:45 1 17.1
663 | 925 2016/11/20 01:33 0 16.4
664 | 926 2016/11/20 01:48 0 17.1
665 | 927 2016/11/20 02:03 0 17.0
666 | 928 2016/11/20 02:29 1 15.6
667 | 930 2016/11/20 02:20 0 16.2
668 | 931 2016/11/20 02:35 0 15.2
669 | 932 2016/11/20 02:50 0 14.5
670 | 933 2016/11/20 03:05 0 14.7
671 | 934 2016/11/20 03:20 0 14.4
672 | 935 2016/11/20 03:35 0 13.4
673 | 936 2016/11/20 03:50 0 13.4
674 | 937 2016/11/20 04:05 0 13.8
675 | 938 2016/11/20 04:20 0 13.4
676 | 939 2016/11/20 04:35 0 13.4
677 | 940 2016/11/20 04:50 0 13.8
678 | 941 2016/11/20 05:05 0 13.3
679 | 942 2016/11/20 05:20 0 12.7
680 | 943 2016/11/20 05:38 1 12.1
681 | 945 2016/11/20 05:36 0 12.6
682 | 946 2016/11/20 05:51 0 12.0
683 | 947 2016/11/20 06:06 0 11.5
684 | 948 2016/11/20 06:21 0 11.3
685 | 949 2016/11/20 06:36 0 11.6
686 | 950 2016/11/20 06:51 0 11.7
687 | 951 2016/11/20 07:06 0 11.1
688 | 952 2016/11/20 07:21 0 11.3
689 | 953 2016/11/20 07:36 0 11.8
690 | 954 2016/11/20 07:51 0 11.8
691 | 955 2016/11/20 08:06 0 11.3
692 | 956 2016/11/20 08:21 0 11.1
693 | 957 2016/11/20 08:36 0 11.2
694 | 958 2016/11/20 08:51 0 11.2
695 | 959 2016/11/20 09:06 0 11.1
696 | 960 2016/11/20 09:21 0 11.1
697 | 961 2016/11/20 09:36 0 11.0
698 | 962 2016/11/20 09:51 0 10.7
699 | 963 2016/11/20 10:08 4 3.0
700 | 963 2016/11/20 10:08 1 11.2
701 | 966 2016/11/20 10:07 0 11.2
702 | 967 2016/11/20 10:22 0 11.4
703 | 968 2016/11/20 10:37 0 11.2
704 | 969 2016/11/20 11:04 4 33.0
705 | 969 2016/11/20 11:04 1 10.0
706 | 971 2016/11/20 10:53 0 10.3
707 | 972 2016/11/20 11:08 0 9.8
708 | 973 2016/11/20 11:23 0 9.4
709 | 974 2016/11/20 11:38 0 8.8
710 | 975 2016/11/20 11:53 0 8.7
711 | 976 2016/11/20 12:08 0 8.4
712 | 977 2016/11/20 12:23 0 7.7
713 | 978 2016/11/20 12:38 0 7.7
714 | 979 2016/11/20 12:53 0 7.3
715 | 980 2016/11/20 13:08 0 6.6
716 | 981 2016/11/20 13:23 0 6.4
717 | 982 2016/11/20 13:42 1 6.5
718 | 984 2016/11/20 13:39 0 6.2
719 | 985 2016/11/20 13:54 0 5.7
720 | 986 2016/11/20 14:13 4 6.0
721 | 986 2016/11/20 14:13 5 1
722 | 986 2016/11/20 14:13 1 5.5
723 | 989 2016/11/20 14:09 0 5.4
724 | 990 2016/11/20 14:24 0 5.6
725 | 991 2016/11/20 14:39 0 5.9
726 | 992 2016/11/20 15:03 1 5.0
727 | 994 2016/11/20 14:54 0 5.3
728 | 995 2016/11/20 15:09 0 4.3
729 | 996 2016/11/20 15:24 1 4.7
730 | 998 2016/11/20 15:24 0 4.5
731 | 999 2016/11/20 15:45 1 4.2
732 | 1001 2016/11/20 15:39 0 4.2
733 | 1002 2016/11/20 15:54 0 4.4
734 | 1003 2016/11/20 16:09 0 4.7
735 | 1004 2016/11/20 16:30 1 4.6
736 | 1006 2016/11/20 16:26 0 4.8
737 | 1007 2016/11/20 16:41 0 5.3
738 | 1008 2016/11/20 16:56 0 5.7
739 | 1009 2016/11/20 17:11 0 5.8
740 | 1010 2016/11/20 17:26 0 5.8
741 | 1011 2016/11/20 17:49 1 6.1
742 | 1013 2016/11/20 17:41 0 5.9
743 | 1014 2016/11/20 17:56 0 5.6
744 | 1015 2016/11/20 18:19 4 2.0
745 | 1015 2016/11/20 18:19 1 5.2
746 | 1018 2016/11/20 18:11 0 5.3
747 | 1019 2016/11/20 18:26 0 5.8
748 | 1020 2016/11/20 18:41 0 6.6
749 | 1021 2016/11/20 19:09 1 8.3
750 | 1023 2016/11/20 18:57 0 7.6
751 | 1024 2016/11/20 19:12 0 8.3
752 | 1025 2016/11/20 19:27 0 9.0
753 | 1026 2016/11/20 19:42 0 9.7
754 | 1027 2016/11/20 20:05 1 8.8
755 | 1029 2016/11/20 19:57 0 9.2
756 | 1030 2016/11/20 20:12 0 7.8
757 | 1031 2016/11/20 20:33 1 6.0
758 | 1033 2016/11/20 20:27 0 6.2
759 | 1034 2016/11/20 20:42 0 5.7
760 | 1035 2016/11/20 20:57 0 5.5
761 | 1036 2016/11/20 21:12 0 5.6
762 | 1037 2016/11/20 21:27 0 5.8
763 | 1038 2016/11/20 21:42 0 6.0
764 | 1039 2016/11/20 21:57 4 7.0
765 | 1039 2016/11/20 21:57 5 1
766 | 1039 2016/11/20 21:57 1 6.9
767 | 1042 2016/11/20 21:58 0 7.4
768 | 1043 2016/11/20 22:13 0 8.8
769 | 1044 2016/11/20 22:28 0 9.8
770 | 1045 2016/11/20 22:57 1 11.0
771 | 1047 2016/11/20 22:42 0 10.7
772 | 1048 2016/11/20 22:57 0 11.2
773 | 1049 2016/11/20 23:12 0 11.3
774 | 1050 2016/11/20 23:28 1 12.0
775 | 1052 2016/11/20 23:28 0 12.0
776 | 1053 2016/11/20 23:55 4 3.0
777 | 1053 2016/11/20 23:55 1 12.6
778 | 1056 2016/11/20 23:44 0 12.1
779 | 1057 2016/11/20 23:59 0 12.1
780 | 1058 2016/11/21 00:24 1 12.8
781 | 1060 2016/11/21 00:14 0 12.9
782 | 1061 2016/11/21 00:29 0 12.7
783 | 1062 2016/11/21 00:44 0 11.6
784 | 1063 2016/11/21 00:59 0 10.7
785 | 1064 2016/11/21 01:24 4 3.0
786 | 1064 2016/11/21 01:24 1 11.9
787 | 1067 2016/11/21 01:17 0 11.6
788 | 1068 2016/11/21 01:32 0 11.9
789 | 1069 2016/11/21 01:47 0 10.9
790 | 1070 2016/11/21 02:02 0 9.7
791 | 1071 2016/11/21 02:17 0 8.8
792 | 1072 2016/11/21 02:32 0 7.9
793 | 1073 2016/11/21 02:47 0 7.3
794 | 1074 2016/11/21 03:02 0 7.2
795 | 1075 2016/11/21 03:17 0 6.9
796 | 1076 2016/11/21 03:32 0 6.6
797 | 1077 2016/11/21 03:47 0 6.1
798 | 1078 2016/11/21 04:02 0 5.5
799 | 1079 2016/11/21 04:17 0 5.6
800 | 1080 2016/11/21 04:32 0 5.9
801 | 1081 2016/11/21 04:47 0 5.9
802 | 1082 2016/11/21 05:02 0 5.7
803 | 1083 2016/11/21 05:17 0 5.4
804 | 1084 2016/11/21 05:32 0 5.2
805 | 1085 2016/11/21 05:47 0 5.2
806 | 1086 2016/11/21 06:02 0 5.4
807 | 1087 2016/11/21 06:17 0 5.7
808 | 1088 2016/11/21 06:32 0 5.4
809 | 1089 2016/11/21 06:47 0 5.1
810 | 1090 2016/11/21 07:02 0 4.9
811 | 1091 2016/11/21 07:17 0 4.7
812 | 1092 2016/11/21 07:40 1 5.2
813 | 1094 2016/11/21 07:33 0 4.9
814 | 1095 2016/11/21 07:48 0 4.6
815 | 1096 2016/11/21 08:03 0 4.2
816 | 1097 2016/11/21 08:18 0 4.0
817 | 1098 2016/11/21 08:33 0 3.8
818 | 1099 2016/11/21 08:48 0 3.8
819 | 1100 2016/11/21 09:03 0 3.9
820 | 1101 2016/11/21 09:18 0 3.8
821 | 1102 2016/11/21 09:33 0 3.5
822 | 1103 2016/11/21 09:48 0 3.3
823 | 1104 2016/11/21 10:10 1 3.6
824 | 1106 2016/11/21 10:03 0 3.4
825 | 1107 2016/11/21 10:18 0 4.3
826 | 1108 2016/11/21 10:33 0 5.6
827 | 1109 2016/11/21 10:48 0 7.1
828 | 1110 2016/11/21 11:10 4 3.0
829 | 1110 2016/11/21 11:10 4 34.0
830 | 1110 2016/11/21 11:10 1 9.4
831 | 1113 2016/11/21 11:04 0 9.4
832 | 1114 2016/11/21 11:19 0 11.1
833 | 1115 2016/11/21 11:34 0 12.4
834 | 1116 2016/11/21 11:50 4 2.0
835 | 1116 2016/11/21 11:50 1 12.0
836 | 1119 2016/11/21 11:49 0 12.1
837 | 1120 2016/11/21 12:04 0 11.6
838 | 1121 2016/11/21 12:19 0 10.9
839 | 1122 2016/11/21 12:41 1 10.4
840 | 1124 2016/11/21 12:34 0 9.6
841 | 1125 2016/11/21 12:49 0 8.7
842 | 1126 2016/11/21 13:16 1 7.9
843 | 1128 2016/11/21 13:05 0 8.6
844 | 1129 2016/11/21 13:20 0 8.6
845 | 1130 2016/11/21 13:45 4 8.0
846 | 1130 2016/11/21 13:45 5 1
847 | 1130 2016/11/21 13:45 1 7.7
848 | 1133 2016/11/21 13:34 0 8.0
849 | 1134 2016/11/21 13:49 0 7.1
850 | 1135 2016/11/21 14:04 0 6.4
851 | 1136 2016/11/21 14:25 1 6.6
852 | 1138 2016/11/21 14:21 0 6.8
853 | 1139 2016/11/21 14:36 0 7.4
854 | 1140 2016/11/21 14:51 0 7.4
855 | 1141 2016/11/21 15:06 0 7.4
856 | 1142 2016/11/21 15:35 1 7.3
857 | 1144 2016/11/21 15:21 0 7.4
858 | 1145 2016/11/21 15:36 0 7.3
859 | 1146 2016/11/21 15:51 0 7.3
860 | 1147 2016/11/21 16:06 0 7.7
861 | 1148 2016/11/21 16:31 4 4.0
862 | 1148 2016/11/21 16:31 1 10.1
863 | 1151 2016/11/21 16:21 0 9.2
864 | 1152 2016/11/21 16:36 0 10.6
865 | 1153 2016/11/21 16:51 0 11.3
866 | 1154 2016/11/21 17:19 1 11.8
867 | 1156 2016/11/21 17:07 0 11.6
868 | 1157 2016/11/21 17:22 0 11.3
869 | 1158 2016/11/21 17:37 0 11.1
870 | 1159 2016/11/21 17:52 0 10.9
871 | 1160 2016/11/21 18:07 0 10.7
872 | 1161 2016/11/21 18:23 4 2.0
873 | 1161 2016/11/21 18:23 1 10.7
874 | 1164 2016/11/21 18:22 0 10.7
875 | 1165 2016/11/21 18:37 0 10.8
876 | 1166 2016/11/21 18:52 0 10.6
877 | 1167 2016/11/21 19:07 0 10.1
878 | 1168 2016/11/21 19:22 0 10.0
879 | 1169 2016/11/21 19:37 0 10.0
880 | 1170 2016/11/21 19:57 1 10.1
881 | 1172 2016/11/21 19:53 0 10.3
882 | 1173 2016/11/21 20:16 4 2.0
883 | 1173 2016/11/21 20:16 1 10.8
884 | 1176 2016/11/21 20:08 0 10.7
885 | 1177 2016/11/21 20:23 0 11.3
886 | 1178 2016/11/21 20:38 0 11.8
887 | 1179 2016/11/21 20:53 0 11.8
888 | 1180 2016/11/21 21:08 0 11.5
889 | 1181 2016/11/21 21:23 0 11.3
890 | 1182 2016/11/21 21:47 4 7.0
891 | 1182 2016/11/21 21:47 5 1
892 | 1182 2016/11/21 21:47 1 10.4
893 | 1185 2016/11/21 21:38 0 10.9
894 | 1186 2016/11/21 21:53 0 10.5
895 | 1187 2016/11/21 22:08 0 10.3
896 | 1188 2016/11/21 22:23 0 10.5
897 | 1189 2016/11/21 22:38 0 10.5
898 | 1190 2016/11/21 22:55 1 10.0
899 | 1192 2016/11/21 22:54 0 10.3
900 | 1193 2016/11/21 23:09 0 10.3
901 | 1194 2016/11/21 23:24 0 10.6
902 | 1195 2016/11/21 23:44 1 9.6
903 | 1197 2016/11/21 23:39 0 10.2
904 | 1198 2016/11/21 23:54 0 10.1
--------------------------------------------------------------------------------
/test.withoutHeader.tsv:
--------------------------------------------------------------------------------
1 | ID Time Record Type Historic Glucose (mmol/L) Scan Glucose (mmol/L) Non-numeric Rapid-Acting Insulin Rapid-Acting Insulin (units) Non-numeric Food Carbohydrates (grams) Non-numeric Long-Acting Insulin Long-Acting Insulin (units) Notes Strip Glucose (mmol/L) Ketone (mmol/L) Meal Insulin (units) Correction Insulin (units) User Change Insulin (units) Previous Time Updated Time
2 | 147 2016/11/15 00:04 1 6.4
3 | 150 2016/11/15 00:08 0 6.2
4 | 151 2016/11/15 00:33 1 6.2
5 | 153 2016/11/15 00:23 0 6.1
6 | 154 2016/11/15 00:38 0 5.2
7 | 155 2016/11/15 01:07 1 4.7
8 | 157 2016/11/15 00:55 0 4.9
9 | 158 2016/11/15 01:10 0 5.8
10 | 159 2016/11/15 01:25 0 6.3
11 | 160 2016/11/15 01:40 0 6.5
12 | 161 2016/11/15 01:55 0 6.5
13 | 162 2016/11/15 02:10 0 6.1
14 | 163 2016/11/15 02:25 0 5.4
15 | 164 2016/11/15 02:40 0 5.2
16 | 165 2016/11/15 02:57 1 6.5
17 | 167 2016/11/15 02:57 0 5.2
18 | 168 2016/11/15 03:12 0 4.5
19 | 169 2016/11/15 03:27 0 4.4
20 | 170 2016/11/15 03:42 0 4.3
21 | 171 2016/11/15 03:57 0 4.4
22 | 172 2016/11/15 04:12 0 4.9
23 | 173 2016/11/15 04:27 0 5.6
24 | 174 2016/11/15 04:42 0 5.9
25 | 175 2016/11/15 04:57 0 5.6
26 | 176 2016/11/15 05:12 0 5.3
27 | 177 2016/11/15 05:27 0 5.3
28 | 178 2016/11/15 05:42 0 5.4
29 | 179 2016/11/15 05:57 0 5.4
30 | 180 2016/11/15 06:12 0 5.7
31 | 181 2016/11/15 06:27 0 6.1
32 | 182 2016/11/15 06:42 0 6.1
33 | 183 2016/11/15 06:57 0 5.4
34 | 184 2016/11/15 07:12 0 5.3
35 | 185 2016/11/15 07:30 1 6.6
36 | 187 2016/11/15 07:27 0 6.4
37 | 188 2016/11/15 07:42 0 6.5
38 | 189 2016/11/15 07:57 0 6.4
39 | 190 2016/11/15 08:12 0 6.4
40 | 191 2016/11/15 08:27 0 6.3
41 | 192 2016/11/15 08:42 0 6.5
42 | 193 2016/11/15 08:57 0 6.6
43 | 194 2016/11/15 09:12 0 6.7
44 | 195 2016/11/15 09:27 0 7.1
45 | 196 2016/11/15 09:42 0 7.4
46 | 197 2016/11/15 10:00 1 6.3
47 | 199 2016/11/15 10:01 1 6.3
48 | 201 2016/11/15 09:58 0 7.6
49 | 202 2016/11/15 10:13 0 8.6
50 | 203 2016/11/15 10:28 0 8.3
51 | 204 2016/11/15 10:52 1 7.9
52 | 206 2016/11/15 10:43 0 6.8
53 | 207 2016/11/15 11:00 4 1.0
54 | 207 2016/11/15 11:00 4 32.0
55 | 207 2016/11/15 11:00 1 8.3
56 | 210 2016/11/15 10:59 0 8.3
57 | 211 2016/11/15 11:14 0 8.9
58 | 212 2016/11/15 11:29 0 9.2
59 | 213 2016/11/15 11:44 0 9.4
60 | 214 2016/11/15 11:59 0 9.3
61 | 215 2016/11/15 12:14 0 8.9
62 | 216 2016/11/15 12:29 0 8.4
63 | 217 2016/11/15 12:44 0 8.4
64 | 218 2016/11/15 13:08 4 6.0
65 | 218 2016/11/15 13:08 5 1
66 | 218 2016/11/15 13:08 1 8.2
67 | 221 2016/11/15 13:00 0 8.1
68 | 222 2016/11/15 13:15 0 7.7
69 | 223 2016/11/15 13:30 0 7.7
70 | 224 2016/11/15 13:45 0 8.6
71 | 225 2016/11/15 14:00 0 9.9
72 | 226 2016/11/15 14:21 4 2.0
73 | 226 2016/11/15 14:21 1 11.5
74 | 229 2016/11/15 14:15 0 11.6
75 | 230 2016/11/15 14:30 0 12.1
76 | 231 2016/11/15 14:45 0 11.8
77 | 232 2016/11/15 15:11 1 11.4
78 | 234 2016/11/15 15:01 0 11.7
79 | 235 2016/11/15 15:16 0 11.6
80 | 236 2016/11/15 15:31 0 11.1
81 | 237 2016/11/15 15:57 1 9.9
82 | 239 2016/11/15 15:46 0 10.1
83 | 240 2016/11/15 16:01 0 9.7
84 | 241 2016/11/15 16:16 0 9.3
85 | 242 2016/11/15 16:44 1 8.6
86 | 244 2016/11/15 16:31 0 8.6
87 | 245 2016/11/15 16:46 0 8.9
88 | 246 2016/11/15 17:01 0 9.8
89 | 247 2016/11/15 17:16 0 10.4
90 | 248 2016/11/15 17:31 0 10.8
91 | 249 2016/11/15 17:50 4 3.0
92 | 249 2016/11/15 17:50 1 11.7
93 | 252 2016/11/15 17:46 0 11.7
94 | 253 2016/11/15 18:01 0 12.2
95 | 254 2016/11/15 18:21 1 11.3
96 | 256 2016/11/15 18:17 0 11.5
97 | 257 2016/11/15 18:32 0 10.9
98 | 258 2016/11/15 18:47 0 10.9
99 | 259 2016/11/15 19:07 1 11.0
100 | 261 2016/11/15 19:12 4 5.0
101 | 261 2016/11/15 19:12 5 1
102 | 261 2016/11/15 19:12 1 10.5
103 | 264 2016/11/15 19:02 0 10.3
104 | 265 2016/11/15 19:17 0 9.6
105 | 266 2016/11/15 19:32 0 9.5
106 | 267 2016/11/15 19:47 0 9.6
107 | 268 2016/11/15 20:02 0 9.6
108 | 269 2016/11/15 20:19 1 9.7
109 | 271 2016/11/15 20:18 0 10.2
110 | 272 2016/11/15 20:33 0 10.8
111 | 273 2016/11/15 20:53 1 10.9
112 | 275 2016/11/15 20:48 0 11.1
113 | 276 2016/11/15 21:03 0 11.6
114 | 277 2016/11/15 21:20 4 4.0
115 | 277 2016/11/15 21:20 1 12.1
116 | 280 2016/11/15 21:18 0 12.1
117 | 281 2016/11/15 21:33 0 12.3
118 | 282 2016/11/15 21:48 0 12.4
119 | 283 2016/11/15 22:13 4 6.0
120 | 283 2016/11/15 22:13 1 13.3
121 | 286 2016/11/15 22:03 0 12.6
122 | 287 2016/11/15 22:18 0 12.8
123 | 288 2016/11/15 22:33 0 12.9
124 | 289 2016/11/15 22:57 1 13.4
125 | 291 2016/11/15 22:48 0 12.9
126 | 292 2016/11/15 23:05 1 12.6
127 | 294 2016/11/15 23:04 0 12.4
128 | 295 2016/11/15 23:23 1 10.8
129 | 297 2016/11/15 23:19 0 11.7
130 | 298 2016/11/15 23:34 0 11.4
131 | 299 2016/11/15 23:54 1 11.1
132 | 301 2016/11/15 23:49 0 11.7
133 | 302 2016/11/16 00:09 1 10.8
134 | 304 2016/11/16 00:04 0 10.9
135 | 305 2016/11/16 00:19 0 10.6
136 | 306 2016/11/16 00:41 1 9.9
137 | 308 2016/11/16 00:36 0 10.4
138 | 309 2016/11/16 00:51 0 8.9
139 | 310 2016/11/16 01:06 0 8.2
140 | 311 2016/11/16 01:21 0 9.3
141 | 312 2016/11/16 01:36 0 9.6
142 | 313 2016/11/16 01:51 0 9.3
143 | 314 2016/11/16 02:06 0 9.8
144 | 315 2016/11/16 02:21 0 10.6
145 | 316 2016/11/16 02:36 0 11.1
146 | 317 2016/11/16 02:51 0 11.3
147 | 318 2016/11/16 03:06 0 10.9
148 | 319 2016/11/16 03:21 0 10.2
149 | 320 2016/11/16 03:36 0 10.2
150 | 321 2016/11/16 03:51 0 10.7
151 | 322 2016/11/16 04:06 0 10.1
152 | 323 2016/11/16 04:21 0 9.1
153 | 324 2016/11/16 04:36 0 9.5
154 | 325 2016/11/16 04:51 0 10.1
155 | 326 2016/11/16 05:06 0 10.3
156 | 327 2016/11/16 05:22 1 10.6
157 | 329 2016/11/16 05:23 0 10.2
158 | 330 2016/11/16 05:38 0 9.1
159 | 331 2016/11/16 05:53 0 8.9
160 | 332 2016/11/16 06:08 0 9.1
161 | 333 2016/11/16 06:23 0 9.4
162 | 334 2016/11/16 06:38 0 10.2
163 | 335 2016/11/16 06:53 0 10.7
164 | 336 2016/11/16 07:08 0 10.8
165 | 337 2016/11/16 07:23 0 10.9
166 | 338 2016/11/16 07:47 1 10.3
167 | 340 2016/11/16 07:38 0 10.7
168 | 341 2016/11/16 07:53 0 10.3
169 | 342 2016/11/16 08:08 0 10.3
170 | 343 2016/11/16 08:23 0 11.6
171 | 344 2016/11/16 08:38 0 12.2
172 | 345 2016/11/16 08:57 4 4.0
173 | 345 2016/11/16 08:57 1 12.5
174 | 348 2016/11/16 08:54 0 12.5
175 | 349 2016/11/16 09:09 0 12.2
176 | 350 2016/11/16 09:24 0 11.3
177 | 351 2016/11/16 09:39 0 10.4
178 | 352 2016/11/16 09:54 0 10.2
179 | 353 2016/11/16 10:09 0 9.7
180 | 354 2016/11/16 10:24 0 8.9
181 | 355 2016/11/16 10:39 0 9.1
182 | 356 2016/11/16 10:54 0 9.1
183 | 357 2016/11/16 11:09 4 33.0
184 | 357 2016/11/16 11:09 1 8.6
185 | 360 2016/11/16 11:09 0 8.4
186 | 361 2016/11/16 11:24 0 7.9
187 | 362 2016/11/16 11:39 0 7.7
188 | 363 2016/11/16 11:54 0 7.2
189 | 364 2016/11/16 12:09 0 6.6
190 | 365 2016/11/16 12:36 1 6.7
191 | 367 2016/11/16 12:24 0 6.6
192 | 368 2016/11/16 12:39 0 6.4
193 | 369 2016/11/16 12:57 1 5.6
194 | 371 2016/11/16 12:55 0 5.6
195 | 372 2016/11/16 13:10 0 5.0
196 | 373 2016/11/16 13:25 1 4.7
197 | 375 2016/11/16 13:35 4 6.0
198 | 375 2016/11/16 13:35 5 1
199 | 375 2016/11/16 13:35 1 5.2
200 | 378 2016/11/16 13:25 0 4.9
201 | 379 2016/11/16 13:40 0 5.0
202 | 380 2016/11/16 13:55 0 5.2
203 | 381 2016/11/16 14:11 1 7.0
204 | 383 2016/11/16 14:11 0 7.2
205 | 384 2016/11/16 14:26 0 8.4
206 | 385 2016/11/16 14:41 0 8.5
207 | 386 2016/11/16 14:59 1 7.2
208 | 388 2016/11/16 14:56 0 8.3
209 | 389 2016/11/16 15:11 0 8.6
210 | 390 2016/11/16 15:33 1 9.0
211 | 392 2016/11/16 15:26 0 9.4
212 | 393 2016/11/16 15:41 0 10.6
213 | 394 2016/11/16 15:57 4 3.0
214 | 394 2016/11/16 15:57 1 11.3
215 | 397 2016/11/16 15:56 0 11.7
216 | 398 2016/11/16 16:11 0 12.7
217 | 399 2016/11/16 16:26 4 2.0
218 | 399 2016/11/16 16:26 1 13.3
219 | 402 2016/11/16 16:26 0 13.2
220 | 403 2016/11/16 16:50 1 12.7
221 | 405 2016/11/16 16:41 0 13.2
222 | 406 2016/11/16 16:56 1 12.3
223 | 408 2016/11/16 16:57 0 12.0
224 | 409 2016/11/16 17:12 0 11.1
225 | 410 2016/11/16 17:41 1 10.7
226 | 412 2016/11/16 17:27 0 10.3
227 | 413 2016/11/16 17:42 0 9.6
228 | 414 2016/11/16 18:08 1 7.8
229 | 416 2016/11/16 17:57 0 7.8
230 | 417 2016/11/16 18:12 0 6.8
231 | 418 2016/11/16 18:35 1 6.3
232 | 420 2016/11/16 18:28 0 6.3
233 | 421 2016/11/16 18:56 1 5.9
234 | 423 2016/11/16 18:43 0 5.9
235 | 424 2016/11/16 18:58 0 6.1
236 | 425 2016/11/16 19:13 0 6.6
237 | 426 2016/11/16 19:28 0 7.4
238 | 427 2016/11/16 19:47 4 4.0
239 | 427 2016/11/16 19:47 1 8.9
240 | 430 2016/11/16 19:43 0 8.7
241 | 431 2016/11/16 19:58 0 9.4
242 | 432 2016/11/16 20:19 1 9.7
243 | 434 2016/11/16 20:13 0 9.8
244 | 435 2016/11/16 20:28 0 9.8
245 | 436 2016/11/16 20:54 1 8.9
246 | 438 2016/11/16 20:44 0 9.6
247 | 439 2016/11/16 20:59 0 9.2
248 | 440 2016/11/16 21:14 0 8.8
249 | 441 2016/11/16 21:30 4 7.0
250 | 441 2016/11/16 21:30 5 1
251 | 441 2016/11/16 21:30 1 8.2
252 | 444 2016/11/16 21:29 0 8.2
253 | 445 2016/11/16 21:44 0 8.3
254 | 446 2016/11/16 21:59 0 8.7
255 | 447 2016/11/16 22:16 1 9.5
256 | 449 2016/11/16 22:15 0 9.2
257 | 450 2016/11/16 22:30 0 9.6
258 | 451 2016/11/16 22:45 0 10.6
259 | 452 2016/11/16 23:00 4 2.0
260 | 452 2016/11/16 23:00 1 10.7
261 | 455 2016/11/16 23:00 0 10.5
262 | 456 2016/11/16 23:15 0 10.0
263 | 457 2016/11/16 23:30 0 9.4
264 | 458 2016/11/16 23:45 0 9.2
265 | 459 2016/11/17 00:09 1 9.2
266 | 461 2016/11/17 00:00 0 9.6
267 | 462 2016/11/17 00:15 0 9.7
268 | 463 2016/11/17 00:39 1 9.2
269 | 465 2016/11/17 00:30 0 9.5
270 | 466 2016/11/17 00:45 0 9.1
271 | 467 2016/11/17 01:01 1 8.1
272 | 469 2016/11/17 01:01 0 8.2
273 | 470 2016/11/17 01:16 0 7.9
274 | 471 2016/11/17 01:31 0 7.5
275 | 472 2016/11/17 02:00 1 7.7
276 | 474 2016/11/17 01:47 0 7.6
277 | 475 2016/11/17 02:02 0 7.8
278 | 476 2016/11/17 02:17 0 7.6
279 | 477 2016/11/17 02:32 0 7.4
280 | 478 2016/11/17 02:47 0 7.3
281 | 479 2016/11/17 03:02 0 7.2
282 | 480 2016/11/17 03:17 0 7.9
283 | 481 2016/11/17 03:32 0 9.4
284 | 482 2016/11/17 03:47 0 10.2
285 | 483 2016/11/17 04:02 0 9.7
286 | 484 2016/11/17 04:17 0 10.2
287 | 485 2016/11/17 04:32 0 10.4
288 | 486 2016/11/17 04:47 0 10.3
289 | 487 2016/11/17 05:02 0 11.1
290 | 488 2016/11/17 05:17 0 11.0
291 | 489 2016/11/17 05:32 0 9.8
292 | 490 2016/11/17 05:47 0 9.7
293 | 491 2016/11/17 06:02 0 10.3
294 | 492 2016/11/17 06:29 4 2.0
295 | 492 2016/11/17 06:29 1 11.3
296 | 495 2016/11/17 06:18 0 11.3
297 | 496 2016/11/17 06:33 0 12.2
298 | 497 2016/11/17 06:48 0 11.7
299 | 498 2016/11/17 07:03 0 10.6
300 | 499 2016/11/17 07:18 0 10.5
301 | 500 2016/11/17 07:33 0 11.2
302 | 501 2016/11/17 07:55 1 11.4
303 | 503 2016/11/17 07:49 0 11.2
304 | 504 2016/11/17 08:04 0 10.2
305 | 505 2016/11/17 08:19 0 10.4
306 | 506 2016/11/17 08:34 0 11.7
307 | 507 2016/11/17 08:49 0 11.9
308 | 508 2016/11/17 09:04 0 11.9
309 | 509 2016/11/17 09:19 0 12.1
310 | 510 2016/11/17 09:34 0 11.6
311 | 511 2016/11/17 09:49 0 10.5
312 | 512 2016/11/17 10:04 0 11.2
313 | 513 2016/11/17 10:19 0 12.6
314 | 514 2016/11/17 10:34 0 12.7
315 | 515 2016/11/17 10:59 4 2.0
316 | 515 2016/11/17 10:59 4 33.0
317 | 515 2016/11/17 10:59 1 11.6
318 | 518 2016/11/17 10:50 0 11.9
319 | 519 2016/11/17 11:05 0 12.4
320 | 520 2016/11/17 11:20 0 12.3
321 | 521 2016/11/17 11:35 0 11.8
322 | 522 2016/11/17 12:02 1 12.6
323 | 524 2016/11/17 11:50 0 12.2
324 | 525 2016/11/17 12:06 1 12.2
325 | 527 2016/11/17 12:06 0 10.8
326 | 528 2016/11/17 12:21 0 9.7
327 | 529 2016/11/17 12:36 0 10.1
328 | 530 2016/11/17 12:51 0 9.8
329 | 531 2016/11/17 13:06 0 9.1
330 | 532 2016/11/17 13:24 1 8.3
331 | 534 2016/11/17 13:22 0 8.4
332 | 535 2016/11/17 13:37 0 7.6
333 | 536 2016/11/17 13:52 0 7.3
334 | 537 2016/11/17 14:07 0 7.2
335 | 538 2016/11/17 14:22 0 6.9
336 | 539 2016/11/17 14:37 0 6.5
337 | 540 2016/11/17 14:52 0 6.3
338 | 541 2016/11/17 15:07 0 6.2
339 | 542 2016/11/17 15:26 4 6.0
340 | 542 2016/11/17 15:26 5 1
341 | 542 2016/11/17 15:26 1 6.2
342 | 545 2016/11/17 15:22 0 6.1
343 | 546 2016/11/17 15:37 0 5.8
344 | 547 2016/11/17 15:52 0 5.8
345 | 548 2016/11/17 16:07 0 6.8
346 | 549 2016/11/17 16:22 0 7.9
347 | 550 2016/11/17 16:39 1 8.6
348 | 552 2016/11/17 16:38 0 8.7
349 | 553 2016/11/17 16:53 0 8.7
350 | 554 2016/11/17 17:08 0 8.8
351 | 555 2016/11/17 17:23 0 9.6
352 | 556 2016/11/17 17:40 4 3.0
353 | 556 2016/11/17 17:40 1 10.7
354 | 559 2016/11/17 17:38 0 10.7
355 | 560 2016/11/17 17:53 0 11.3
356 | 561 2016/11/17 18:18 1 11.9
357 | 563 2016/11/17 18:08 0 11.8
358 | 564 2016/11/17 18:23 0 12.1
359 | 565 2016/11/17 18:39 1 11.9
360 | 567 2016/11/17 18:39 0 11.8
361 | 568 2016/11/17 18:54 0 11.8
362 | 569 2016/11/17 19:22 1 10.9
363 | 571 2016/11/17 19:09 0 11.4
364 | 572 2016/11/17 19:24 0 11.2
365 | 573 2016/11/17 19:39 0 10.7
366 | 574 2016/11/17 19:54 0 10.6
367 | 575 2016/11/17 20:10 4 3.0
368 | 575 2016/11/17 20:10 1 10.0
369 | 578 2016/11/17 20:09 0 9.9
370 | 579 2016/11/17 20:24 0 9.6
371 | 580 2016/11/17 20:52 1 8.7
372 | 582 2016/11/17 20:39 0 9.3
373 | 583 2016/11/17 20:54 0 8.8
374 | 584 2016/11/17 21:18 1 7.9
375 | 586 2016/11/17 21:09 0 8.2
376 | 587 2016/11/17 21:24 0 8.1
377 | 588 2016/11/17 21:50 4 8.0
378 | 588 2016/11/17 21:50 5 1
379 | 588 2016/11/17 21:50 1 7.8
380 | 591 2016/11/17 21:39 0 8.0
381 | 592 2016/11/17 21:54 0 7.9
382 | 593 2016/11/17 22:09 0 8.2
383 | 594 2016/11/17 22:35 1 9.1
384 | 596 2016/11/17 22:25 0 8.7
385 | 597 2016/11/17 22:40 0 8.7
386 | 598 2016/11/17 23:09 1 8.1
387 | 600 2016/11/17 22:56 0 7.9
388 | 601 2016/11/17 23:11 0 6.9
389 | 602 2016/11/17 23:26 0 6.2
390 | 603 2016/11/17 23:41 0 6.1
391 | 604 2016/11/17 23:58 1 5.7
392 | 606 2016/11/17 23:56 0 5.8
393 | 607 2016/11/18 00:11 0 5.8
394 | 608 2016/11/18 00:26 0 6.7
395 | 609 2016/11/18 00:49 1 8.2
396 | 611 2016/11/18 00:41 0 8.1
397 | 612 2016/11/18 00:56 0 8.4
398 | 613 2016/11/18 01:12 1 6.4
399 | 615 2016/11/18 01:15 0 7.2
400 | 616 2016/11/18 01:30 0 7.5
401 | 617 2016/11/18 01:45 0 7.3
402 | 618 2016/11/18 02:00 0 6.8
403 | 619 2016/11/18 02:15 0 6.9
404 | 620 2016/11/18 02:30 0 6.5
405 | 621 2016/11/18 02:45 0 5.8
406 | 622 2016/11/18 03:00 0 5.8
407 | 623 2016/11/18 03:15 0 6.3
408 | 624 2016/11/18 03:30 0 6.8
409 | 625 2016/11/18 03:45 0 6.9
410 | 626 2016/11/18 04:00 0 7.3
411 | 627 2016/11/18 04:15 0 7.7
412 | 628 2016/11/18 04:30 0 7.8
413 | 629 2016/11/18 04:45 0 7.1
414 | 630 2016/11/18 05:00 0 6.4
415 | 631 2016/11/18 05:15 0 6.0
416 | 632 2016/11/18 05:30 0 6.1
417 | 633 2016/11/18 05:45 0 6.2
418 | 634 2016/11/18 06:00 0 6.3
419 | 635 2016/11/18 06:15 0 6.2
420 | 636 2016/11/18 06:30 0 6.0
421 | 637 2016/11/18 06:45 0 6.0
422 | 638 2016/11/18 07:00 0 6.3
423 | 639 2016/11/18 07:15 0 6.4
424 | 640 2016/11/18 07:30 0 5.9
425 | 641 2016/11/18 07:45 0 5.8
426 | 642 2016/11/18 08:00 0 5.8
427 | 643 2016/11/18 08:15 0 5.7
428 | 644 2016/11/18 08:30 0 5.7
429 | 645 2016/11/18 08:45 0 5.7
430 | 646 2016/11/18 09:00 1 5.4
431 | 648 2016/11/18 09:00 0 5.2
432 | 649 2016/11/18 09:28 1 5.3
433 | 651 2016/11/18 09:15 0 5.7
434 | 652 2016/11/18 09:30 0 5.6
435 | 653 2016/11/18 09:45 0 5.2
436 | 654 2016/11/18 10:00 0 5.4
437 | 655 2016/11/18 10:15 0 5.5
438 | 656 2016/11/18 10:30 0 5.4
439 | 657 2016/11/18 10:45 0 5.3
440 | 658 2016/11/18 11:00 4 33.0
441 | 658 2016/11/18 11:00 1 5.6
442 | 660 2016/11/18 11:01 0 5.8
443 | 661 2016/11/18 11:16 0 6.6
444 | 662 2016/11/18 11:31 0 7.3
445 | 663 2016/11/18 11:54 1 7.6
446 | 665 2016/11/18 11:46 0 7.5
447 | 666 2016/11/18 12:01 0 7.3
448 | 667 2016/11/18 12:16 0 7.2
449 | 668 2016/11/18 12:32 1 7.1
450 | 670 2016/11/18 12:31 0 7.2
451 | 671 2016/11/18 12:51 4 7.0
452 | 671 2016/11/18 12:51 1 6.9
453 | 674 2016/11/18 12:47 0 6.9
454 | 675 2016/11/18 13:02 0 7.2
455 | 676 2016/11/18 13:17 0 8.6
456 | 677 2016/11/18 13:32 0 10.3
457 | 678 2016/11/18 13:47 0 11.2
458 | 679 2016/11/18 14:15 1 10.4
459 | 681 2016/11/18 14:02 0 10.8
460 | 682 2016/11/18 14:17 0 10.2
461 | 683 2016/11/18 14:36 1 9.3
462 | 685 2016/11/18 14:33 0 9.3
463 | 686 2016/11/18 14:48 0 8.4
464 | 687 2016/11/18 15:03 0 8.1
465 | 688 2016/11/18 15:21 1 7.7
466 | 690 2016/11/18 15:17 0 7.7
467 | 691 2016/11/18 15:33 4 2.0
468 | 691 2016/11/18 15:33 1 7.7
469 | 694 2016/11/18 15:32 0 7.7
470 | 695 2016/11/18 15:47 0 7.4
471 | 696 2016/11/18 16:02 0 7.2
472 | 697 2016/11/18 16:31 4 2.0
473 | 697 2016/11/18 16:31 1 8.5
474 | 700 2016/11/18 16:18 0 7.9
475 | 701 2016/11/18 16:33 0 8.5
476 | 702 2016/11/18 17:00 1 8.2
477 | 704 2016/11/18 16:49 0 8.2
478 | 705 2016/11/18 17:04 0 7.6
479 | 706 2016/11/18 17:19 0 7.0
480 | 707 2016/11/18 17:34 0 6.8
481 | 708 2016/11/18 17:49 0 6.8
482 | 709 2016/11/18 18:04 0 6.8
483 | 710 2016/11/18 18:19 0 6.7
484 | 711 2016/11/18 18:37 1 6.6
485 | 713 2016/11/18 18:34 0 6.4
486 | 714 2016/11/18 18:59 1 6.1
487 | 716 2016/11/18 18:49 0 5.8
488 | 717 2016/11/18 19:04 0 4.8
489 | 718 2016/11/18 19:19 0 4.7
490 | 719 2016/11/18 19:34 0 4.6
491 | 720 2016/11/18 19:57 1 4.2
492 | 722 2016/11/18 19:50 0 4.1
493 | 723 2016/11/18 20:05 0 3.9
494 | 724 2016/11/18 20:28 1 4.8
495 | 726 2016/11/18 20:19 0 4.4
496 | 727 2016/11/18 20:42 1 5.0
497 | 729 2016/11/18 20:35 0 4.8
498 | 730 2016/11/18 20:57 4 6.0
499 | 730 2016/11/18 20:57 5 1
500 | 730 2016/11/18 20:57 1 5.9
501 | 733 2016/11/18 20:50 0 5.8
502 | 734 2016/11/18 21:05 0 7.8
503 | 735 2016/11/18 21:20 0 10.0
504 | 736 2016/11/18 21:41 4 3.0
505 | 736 2016/11/18 21:41 1 13.2
506 | 739 2016/11/18 21:35 0 12.3
507 | 740 2016/11/18 21:50 0 13.5
508 | 741 2016/11/18 22:05 0 14.1
509 | 742 2016/11/18 22:26 1 14.8
510 | 744 2016/11/18 22:21 0 14.7
511 | 745 2016/11/18 22:36 0 15.1
512 | 746 2016/11/18 22:51 0 15.7
513 | 747 2016/11/18 23:08 4 3.0
514 | 747 2016/11/18 23:08 1 16.2
515 | 751 2016/11/18 23:06 0 16.8
516 | 752 2016/11/18 23:21 0 16.9
517 | 753 2016/11/18 23:36 0 16.3
518 | 754 2016/11/19 00:04 1 14.1
519 | 756 2016/11/19 00:04 1 14.1
520 | 758 2016/11/18 23:51 0 15.0
521 | 759 2016/11/19 00:06 1 13.8
522 | 761 2016/11/19 00:15 1 12.6
523 | 763 2016/11/19 00:06 0 13.2
524 | 764 2016/11/19 00:21 0 11.8
525 | 765 2016/11/19 00:41 4 4.0
526 | 765 2016/11/19 00:41 5 1
527 | 765 2016/11/19 00:41 1 11.5
528 | 768 2016/11/19 00:37 0 11.3
529 | 769 2016/11/19 00:52 0 11.4
530 | 770 2016/11/19 01:07 0 12.3
531 | 771 2016/11/19 01:22 0 13.2
532 | 772 2016/11/19 01:37 1 12.7
533 | 774 2016/11/19 01:51 4 4.0
534 | 774 2016/11/19 01:51 1 13.3
535 | 777 2016/11/19 01:38 0 13.3
536 | 778 2016/11/19 01:53 0 12.4
537 | 779 2016/11/19 02:08 0 10.8
538 | 780 2016/11/19 02:23 0 9.7
539 | 781 2016/11/19 02:38 0 8.8
540 | 782 2016/11/19 02:53 0 7.9
541 | 783 2016/11/19 03:08 0 7.3
542 | 784 2016/11/19 03:23 0 6.8
543 | 785 2016/11/19 03:47 1 6.1
544 | 787 2016/11/19 03:41 0 6.5
545 | 788 2016/11/19 03:56 0 6.2
546 | 789 2016/11/19 04:11 0 5.7
547 | 790 2016/11/19 04:26 0 5.6
548 | 791 2016/11/19 04:41 0 5.8
549 | 792 2016/11/19 04:56 0 5.9
550 | 793 2016/11/19 05:11 0 6.1
551 | 794 2016/11/19 05:26 0 6.3
552 | 795 2016/11/19 05:41 0 6.4
553 | 796 2016/11/19 05:56 0 6.9
554 | 797 2016/11/19 06:11 0 7.5
555 | 798 2016/11/19 06:26 0 8.2
556 | 799 2016/11/19 06:41 0 8.3
557 | 800 2016/11/19 06:56 0 8.3
558 | 801 2016/11/19 07:11 0 8.7
559 | 802 2016/11/19 07:26 0 8.2
560 | 803 2016/11/19 07:41 0 7.3
561 | 804 2016/11/19 07:56 0 7.9
562 | 805 2016/11/19 08:11 0 9.5
563 | 806 2016/11/19 08:26 0 10.2
564 | 807 2016/11/19 08:41 0 10.1
565 | 808 2016/11/19 08:56 0 10.4
566 | 809 2016/11/19 09:11 0 11.7
567 | 810 2016/11/19 09:26 0 12.6
568 | 811 2016/11/19 09:52 4 4.0
569 | 811 2016/11/19 09:52 1 12.9
570 | 814 2016/11/19 09:41 0 12.8
571 | 815 2016/11/19 09:56 0 12.7
572 | 816 2016/11/19 10:11 0 12.4
573 | 817 2016/11/19 10:26 0 11.7
574 | 818 2016/11/19 10:41 0 10.6
575 | 819 2016/11/19 10:59 4 33.0
576 | 819 2016/11/19 10:59 1 10.2
577 | 821 2016/11/19 10:58 0 10.5
578 | 822 2016/11/19 11:13 0 10.3
579 | 823 2016/11/19 11:28 0 10.3
580 | 824 2016/11/19 11:43 0 9.8
581 | 825 2016/11/19 11:58 0 9.4
582 | 826 2016/11/19 12:13 0 9.2
583 | 827 2016/11/19 12:28 0 8.6
584 | 828 2016/11/19 12:43 0 8.1
585 | 829 2016/11/19 12:58 0 7.8
586 | 830 2016/11/19 13:25 1 7.7
587 | 832 2016/11/19 13:13 0 7.7
588 | 833 2016/11/19 13:28 0 7.7
589 | 834 2016/11/19 13:49 4 6.0
590 | 834 2016/11/19 13:49 1 7.2
591 | 837 2016/11/19 13:43 0 7.3
592 | 838 2016/11/19 13:58 0 7.4
593 | 839 2016/11/19 14:13 0 7.7
594 | 840 2016/11/19 14:40 1 7.9
595 | 842 2016/11/19 14:29 0 7.7
596 | 843 2016/11/19 14:44 0 7.3
597 | 844 2016/11/19 14:59 0 6.4
598 | 845 2016/11/19 15:18 1 5.6
599 | 847 2016/11/19 15:13 0 5.4
600 | 848 2016/11/19 15:28 0 5.3
601 | 849 2016/11/19 15:43 0 5.5
602 | 850 2016/11/19 16:03 1 5.2
603 | 852 2016/11/19 15:58 0 5.2
604 | 853 2016/11/19 16:13 0 4.6
605 | 854 2016/11/19 16:28 0 4.2
606 | 855 2016/11/19 16:49 1 4.3
607 | 857 2016/11/19 16:45 0 4.2
608 | 858 2016/11/19 17:00 0 4.2
609 | 859 2016/11/19 17:21 1 4.7
610 | 861 2016/11/19 17:15 0 4.7
611 | 862 2016/11/19 17:30 0 5.9
612 | 863 2016/11/19 17:45 0 7.4
613 | 864 2016/11/19 18:00 0 8.7
614 | 865 2016/11/19 18:15 0 10.4
615 | 866 2016/11/19 18:30 0 12.3
616 | 867 2016/11/19 18:45 0 13.3
617 | 868 2016/11/19 19:05 4 5.0
618 | 868 2016/11/19 19:05 1 13.9
619 | 871 2016/11/19 19:01 0 13.9
620 | 872 2016/11/19 19:16 0 14.3
621 | 873 2016/11/19 19:31 1 14.1
622 | 875 2016/11/19 19:31 0 13.7
623 | 876 2016/11/19 19:46 0 13.1
624 | 877 2016/11/19 20:14 1 10.8
625 | 879 2016/11/19 20:00 0 11.9
626 | 880 2016/11/19 20:27 1 10.0
627 | 882 2016/11/19 20:16 0 10.4
628 | 883 2016/11/19 20:31 0 9.6
629 | 884 2016/11/19 20:51 4 6.0
630 | 884 2016/11/19 20:51 5 1
631 | 884 2016/11/19 20:51 1 9.2
632 | 887 2016/11/19 20:46 0 9.2
633 | 888 2016/11/19 21:01 0 8.8
634 | 889 2016/11/19 21:16 0 8.4
635 | 890 2016/11/19 21:32 1 9.5
636 | 892 2016/11/19 21:31 0 9.3
637 | 893 2016/11/19 21:46 0 8.4
638 | 894 2016/11/19 22:01 0 7.6
639 | 895 2016/11/19 22:20 1 8.1
640 | 897 2016/11/19 22:17 0 8.1
641 | 898 2016/11/19 22:32 0 9.3
642 | 899 2016/11/19 22:47 0 10.0
643 | 900 2016/11/19 23:09 4 3.0
644 | 900 2016/11/19 23:09 1 10.6
645 | 903 2016/11/19 23:02 0 10.4
646 | 904 2016/11/19 23:17 0 10.8
647 | 905 2016/11/19 23:46 1 13.2
648 | 907 2016/11/19 23:32 0 11.2
649 | 908 2016/11/19 23:47 4 2.0
650 | 908 2016/11/19 23:47 1 13.1
651 | 911 2016/11/19 23:47 0 12.6
652 | 912 2016/11/20 00:15 1 14.8
653 | 914 2016/11/20 00:03 0 14.3
654 | 915 2016/11/20 00:18 0 14.8
655 | 916 2016/11/20 00:33 0 14.2
656 | 917 2016/11/20 00:57 1 13.9
657 | 919 2016/11/20 00:48 0 13.8
658 | 920 2016/11/20 01:03 0 14.1
659 | 921 2016/11/20 01:18 0 14.8
660 | 922 2016/11/20 01:45 4 5.0
661 | 922 2016/11/20 01:45 1 17.1
662 | 925 2016/11/20 01:33 0 16.4
663 | 926 2016/11/20 01:48 0 17.1
664 | 927 2016/11/20 02:03 0 17.0
665 | 928 2016/11/20 02:29 1 15.6
666 | 930 2016/11/20 02:20 0 16.2
667 | 931 2016/11/20 02:35 0 15.2
668 | 932 2016/11/20 02:50 0 14.5
669 | 933 2016/11/20 03:05 0 14.7
670 | 934 2016/11/20 03:20 0 14.4
671 | 935 2016/11/20 03:35 0 13.4
672 | 936 2016/11/20 03:50 0 13.4
673 | 937 2016/11/20 04:05 0 13.8
674 | 938 2016/11/20 04:20 0 13.4
675 | 939 2016/11/20 04:35 0 13.4
676 | 940 2016/11/20 04:50 0 13.8
677 | 941 2016/11/20 05:05 0 13.3
678 | 942 2016/11/20 05:20 0 12.7
679 | 943 2016/11/20 05:38 1 12.1
680 | 945 2016/11/20 05:36 0 12.6
681 | 946 2016/11/20 05:51 0 12.0
682 | 947 2016/11/20 06:06 0 11.5
683 | 948 2016/11/20 06:21 0 11.3
684 | 949 2016/11/20 06:36 0 11.6
685 | 950 2016/11/20 06:51 0 11.7
686 | 951 2016/11/20 07:06 0 11.1
687 | 952 2016/11/20 07:21 0 11.3
688 | 953 2016/11/20 07:36 0 11.8
689 | 954 2016/11/20 07:51 0 11.8
690 | 955 2016/11/20 08:06 0 11.3
691 | 956 2016/11/20 08:21 0 11.1
692 | 957 2016/11/20 08:36 0 11.2
693 | 958 2016/11/20 08:51 0 11.2
694 | 959 2016/11/20 09:06 0 11.1
695 | 960 2016/11/20 09:21 0 11.1
696 | 961 2016/11/20 09:36 0 11.0
697 | 962 2016/11/20 09:51 0 10.7
698 | 963 2016/11/20 10:08 4 3.0
699 | 963 2016/11/20 10:08 1 11.2
700 | 966 2016/11/20 10:07 0 11.2
701 | 967 2016/11/20 10:22 0 11.4
702 | 968 2016/11/20 10:37 0 11.2
703 | 969 2016/11/20 11:04 4 33.0
704 | 969 2016/11/20 11:04 1 10.0
705 | 971 2016/11/20 10:53 0 10.3
706 | 972 2016/11/20 11:08 0 9.8
707 | 973 2016/11/20 11:23 0 9.4
708 | 974 2016/11/20 11:38 0 8.8
709 | 975 2016/11/20 11:53 0 8.7
710 | 976 2016/11/20 12:08 0 8.4
711 | 977 2016/11/20 12:23 0 7.7
712 | 978 2016/11/20 12:38 0 7.7
713 | 979 2016/11/20 12:53 0 7.3
714 | 980 2016/11/20 13:08 0 6.6
715 | 981 2016/11/20 13:23 0 6.4
716 | 982 2016/11/20 13:42 1 6.5
717 | 984 2016/11/20 13:39 0 6.2
718 | 985 2016/11/20 13:54 0 5.7
719 | 986 2016/11/20 14:13 4 6.0
720 | 986 2016/11/20 14:13 5 1
721 | 986 2016/11/20 14:13 1 5.5
722 | 989 2016/11/20 14:09 0 5.4
723 | 990 2016/11/20 14:24 0 5.6
724 | 991 2016/11/20 14:39 0 5.9
725 | 992 2016/11/20 15:03 1 5.0
726 | 994 2016/11/20 14:54 0 5.3
727 | 995 2016/11/20 15:09 0 4.3
728 | 996 2016/11/20 15:24 1 4.7
729 | 998 2016/11/20 15:24 0 4.5
730 | 999 2016/11/20 15:45 1 4.2
731 | 1001 2016/11/20 15:39 0 4.2
732 | 1002 2016/11/20 15:54 0 4.4
733 | 1003 2016/11/20 16:09 0 4.7
734 | 1004 2016/11/20 16:30 1 4.6
735 | 1006 2016/11/20 16:26 0 4.8
736 | 1007 2016/11/20 16:41 0 5.3
737 | 1008 2016/11/20 16:56 0 5.7
738 | 1009 2016/11/20 17:11 0 5.8
739 | 1010 2016/11/20 17:26 0 5.8
740 | 1011 2016/11/20 17:49 1 6.1
741 | 1013 2016/11/20 17:41 0 5.9
742 | 1014 2016/11/20 17:56 0 5.6
743 | 1015 2016/11/20 18:19 4 2.0
744 | 1015 2016/11/20 18:19 1 5.2
745 | 1018 2016/11/20 18:11 0 5.3
746 | 1019 2016/11/20 18:26 0 5.8
747 | 1020 2016/11/20 18:41 0 6.6
748 | 1021 2016/11/20 19:09 1 8.3
749 | 1023 2016/11/20 18:57 0 7.6
750 | 1024 2016/11/20 19:12 0 8.3
751 | 1025 2016/11/20 19:27 0 9.0
752 | 1026 2016/11/20 19:42 0 9.7
753 | 1027 2016/11/20 20:05 1 8.8
754 | 1029 2016/11/20 19:57 0 9.2
755 | 1030 2016/11/20 20:12 0 7.8
756 | 1031 2016/11/20 20:33 1 6.0
757 | 1033 2016/11/20 20:27 0 6.2
758 | 1034 2016/11/20 20:42 0 5.7
759 | 1035 2016/11/20 20:57 0 5.5
760 | 1036 2016/11/20 21:12 0 5.6
761 | 1037 2016/11/20 21:27 0 5.8
762 | 1038 2016/11/20 21:42 0 6.0
763 | 1039 2016/11/20 21:57 4 7.0
764 | 1039 2016/11/20 21:57 5 1
765 | 1039 2016/11/20 21:57 1 6.9
766 | 1042 2016/11/20 21:58 0 7.4
767 | 1043 2016/11/20 22:13 0 8.8
768 | 1044 2016/11/20 22:28 0 9.8
769 | 1045 2016/11/20 22:57 1 11.0
770 | 1047 2016/11/20 22:42 0 10.7
771 | 1048 2016/11/20 22:57 0 11.2
772 | 1049 2016/11/20 23:12 0 11.3
773 | 1050 2016/11/20 23:28 1 12.0
774 | 1052 2016/11/20 23:28 0 12.0
775 | 1053 2016/11/20 23:55 4 3.0
776 | 1053 2016/11/20 23:55 1 12.6
777 | 1056 2016/11/20 23:44 0 12.1
778 | 1057 2016/11/20 23:59 0 12.1
779 | 1058 2016/11/21 00:24 1 12.8
780 | 1060 2016/11/21 00:14 0 12.9
781 | 1061 2016/11/21 00:29 0 12.7
782 | 1062 2016/11/21 00:44 0 11.6
783 | 1063 2016/11/21 00:59 0 10.7
784 | 1064 2016/11/21 01:24 4 3.0
785 | 1064 2016/11/21 01:24 1 11.9
786 | 1067 2016/11/21 01:17 0 11.6
787 | 1068 2016/11/21 01:32 0 11.9
788 | 1069 2016/11/21 01:47 0 10.9
789 | 1070 2016/11/21 02:02 0 9.7
790 | 1071 2016/11/21 02:17 0 8.8
791 | 1072 2016/11/21 02:32 0 7.9
792 | 1073 2016/11/21 02:47 0 7.3
793 | 1074 2016/11/21 03:02 0 7.2
794 | 1075 2016/11/21 03:17 0 6.9
795 | 1076 2016/11/21 03:32 0 6.6
796 | 1077 2016/11/21 03:47 0 6.1
797 | 1078 2016/11/21 04:02 0 5.5
798 | 1079 2016/11/21 04:17 0 5.6
799 | 1080 2016/11/21 04:32 0 5.9
800 | 1081 2016/11/21 04:47 0 5.9
801 | 1082 2016/11/21 05:02 0 5.7
802 | 1083 2016/11/21 05:17 0 5.4
803 | 1084 2016/11/21 05:32 0 5.2
804 | 1085 2016/11/21 05:47 0 5.2
805 | 1086 2016/11/21 06:02 0 5.4
806 | 1087 2016/11/21 06:17 0 5.7
807 | 1088 2016/11/21 06:32 0 5.4
808 | 1089 2016/11/21 06:47 0 5.1
809 | 1090 2016/11/21 07:02 0 4.9
810 | 1091 2016/11/21 07:17 0 4.7
811 | 1092 2016/11/21 07:40 1 5.2
812 | 1094 2016/11/21 07:33 0 4.9
813 | 1095 2016/11/21 07:48 0 4.6
814 | 1096 2016/11/21 08:03 0 4.2
815 | 1097 2016/11/21 08:18 0 4.0
816 | 1098 2016/11/21 08:33 0 3.8
817 | 1099 2016/11/21 08:48 0 3.8
818 | 1100 2016/11/21 09:03 0 3.9
819 | 1101 2016/11/21 09:18 0 3.8
820 | 1102 2016/11/21 09:33 0 3.5
821 | 1103 2016/11/21 09:48 0 3.3
822 | 1104 2016/11/21 10:10 1 3.6
823 | 1106 2016/11/21 10:03 0 3.4
824 | 1107 2016/11/21 10:18 0 4.3
825 | 1108 2016/11/21 10:33 0 5.6
826 | 1109 2016/11/21 10:48 0 7.1
827 | 1110 2016/11/21 11:10 4 3.0
828 | 1110 2016/11/21 11:10 4 34.0
829 | 1110 2016/11/21 11:10 1 9.4
830 | 1113 2016/11/21 11:04 0 9.4
831 | 1114 2016/11/21 11:19 0 11.1
832 | 1115 2016/11/21 11:34 0 12.4
833 | 1116 2016/11/21 11:50 4 2.0
834 | 1116 2016/11/21 11:50 1 12.0
835 | 1119 2016/11/21 11:49 0 12.1
836 | 1120 2016/11/21 12:04 0 11.6
837 | 1121 2016/11/21 12:19 0 10.9
838 | 1122 2016/11/21 12:41 1 10.4
839 | 1124 2016/11/21 12:34 0 9.6
840 | 1125 2016/11/21 12:49 0 8.7
841 | 1126 2016/11/21 13:16 1 7.9
842 | 1128 2016/11/21 13:05 0 8.6
843 | 1129 2016/11/21 13:20 0 8.6
844 | 1130 2016/11/21 13:45 4 8.0
845 | 1130 2016/11/21 13:45 5 1
846 | 1130 2016/11/21 13:45 1 7.7
847 | 1133 2016/11/21 13:34 0 8.0
848 | 1134 2016/11/21 13:49 0 7.1
849 | 1135 2016/11/21 14:04 0 6.4
850 | 1136 2016/11/21 14:25 1 6.6
851 | 1138 2016/11/21 14:21 0 6.8
852 | 1139 2016/11/21 14:36 0 7.4
853 | 1140 2016/11/21 14:51 0 7.4
854 | 1141 2016/11/21 15:06 0 7.4
855 | 1142 2016/11/21 15:35 1 7.3
856 | 1144 2016/11/21 15:21 0 7.4
857 | 1145 2016/11/21 15:36 0 7.3
858 | 1146 2016/11/21 15:51 0 7.3
859 | 1147 2016/11/21 16:06 0 7.7
860 | 1148 2016/11/21 16:31 4 4.0
861 | 1148 2016/11/21 16:31 1 10.1
862 | 1151 2016/11/21 16:21 0 9.2
863 | 1152 2016/11/21 16:36 0 10.6
864 | 1153 2016/11/21 16:51 0 11.3
865 | 1154 2016/11/21 17:19 1 11.8
866 | 1156 2016/11/21 17:07 0 11.6
867 | 1157 2016/11/21 17:22 0 11.3
868 | 1158 2016/11/21 17:37 0 11.1
869 | 1159 2016/11/21 17:52 0 10.9
870 | 1160 2016/11/21 18:07 0 10.7
871 | 1161 2016/11/21 18:23 4 2.0
872 | 1161 2016/11/21 18:23 1 10.7
873 | 1164 2016/11/21 18:22 0 10.7
874 | 1165 2016/11/21 18:37 0 10.8
875 | 1166 2016/11/21 18:52 0 10.6
876 | 1167 2016/11/21 19:07 0 10.1
877 | 1168 2016/11/21 19:22 0 10.0
878 | 1169 2016/11/21 19:37 0 10.0
879 | 1170 2016/11/21 19:57 1 10.1
880 | 1172 2016/11/21 19:53 0 10.3
881 | 1173 2016/11/21 20:16 4 2.0
882 | 1173 2016/11/21 20:16 1 10.8
883 | 1176 2016/11/21 20:08 0 10.7
884 | 1177 2016/11/21 20:23 0 11.3
885 | 1178 2016/11/21 20:38 0 11.8
886 | 1179 2016/11/21 20:53 0 11.8
887 | 1180 2016/11/21 21:08 0 11.5
888 | 1181 2016/11/21 21:23 0 11.3
889 | 1182 2016/11/21 21:47 4 7.0
890 | 1182 2016/11/21 21:47 5 1
891 | 1182 2016/11/21 21:47 1 10.4
892 | 1185 2016/11/21 21:38 0 10.9
893 | 1186 2016/11/21 21:53 0 10.5
894 | 1187 2016/11/21 22:08 0 10.3
895 | 1188 2016/11/21 22:23 0 10.5
896 | 1189 2016/11/21 22:38 0 10.5
897 | 1190 2016/11/21 22:55 1 10.0
898 | 1192 2016/11/21 22:54 0 10.3
899 | 1193 2016/11/21 23:09 0 10.3
900 | 1194 2016/11/21 23:24 0 10.6
901 | 1195 2016/11/21 23:44 1 9.6
902 | 1197 2016/11/21 23:39 0 10.2
903 | 1198 2016/11/21 23:54 0 10.1
--------------------------------------------------------------------------------
/ts/DataRecord.ts:
--------------------------------------------------------------------------------
1 | ///
2 |
3 | class DataRecord extends DateRecord {
4 | readonly id: number;
5 |
6 | constructor(id: number, date: moment.Moment, type: RecordType) {
7 | super(date, type);
8 | this.id = id;
9 | }
10 | }
--------------------------------------------------------------------------------
/ts/DateRecord.ts:
--------------------------------------------------------------------------------
1 | class DateRecord {
2 | readonly date: moment.Moment;
3 | readonly type: RecordType;
4 |
5 | constructor(date: moment.Moment, type: RecordType) {
6 | this.date = date;
7 | this.type = type;
8 | }
9 | }
--------------------------------------------------------------------------------
/ts/FoodRecord.ts:
--------------------------------------------------------------------------------
1 | class FoodRecord extends DataRecord {
2 | readonly carbs?: number;
3 |
4 | constructor(id: number, date: moment.Moment, carbs?: number) {
5 | super(id, date, RecordType.Food);
6 | this.carbs = carbs;
7 | }
8 | }
--------------------------------------------------------------------------------
/ts/FreeStyleLibreLib.ts:
--------------------------------------------------------------------------------
1 | class FreeStyleLibreLib {
2 |
3 | /**
4 | * Parses a text file with a CVS with Freestyle Libre app report data
5 | *
6 | * @returns A Report object will all the data on it
7 | */
8 | public static parseReport(reportFile: string): Report {
9 | var rawJson = FreeStyleLibreLib._parseCsv(reportFile);
10 | var patient:string = null;
11 | if (rawJson != null && rawJson[0] != null && typeof rawJson[0] == 'string') {
12 | patient = rawJson[0];
13 | }
14 | return FreeStyleLibreLib._createReport(patient, rawJson);
15 | }
16 |
17 | private static _createReport(patient: string, rawJson: any): Report {
18 | var glucose: GlucoseRecord[] = [];
19 | var food: FoodRecord[] = [];
20 | var insulin: InsulinRecord[] = [];
21 | rawJson.forEach(function(element) {
22 | var record = FreeStyleLibreLib._parseRecord(element);
23 | if (record != null) {
24 | switch (record.type) {
25 | case RecordType.Glucose:
26 | glucose.push(record as GlucoseRecord);
27 | break;
28 | case RecordType.Food:
29 | food.push(record as FoodRecord);
30 | break;
31 | case RecordType.Insulin:
32 | insulin.push(record as InsulinRecord);
33 | break;
34 | }
35 | }
36 | }, this);
37 | return new Report(patient, glucose, food, insulin);
38 | }
39 |
40 | private static _parseRecord(element: any): DataRecord {
41 | // TODO: Allow settings to format date in other ways
42 | var date = moment(element.Time, "YYYY/MM/DD HH:mm");
43 | switch (element.RecordType) {
44 | case "0":
45 | return new GlucoseRecord(parseFloat(element.ID), date, GlucoseRecordType.History, new GlucoseValue(parseFloat(element.HistoricGlucose), GlucoseUnit.MmolPerL));
46 | case "1":
47 | return new GlucoseRecord(parseFloat(element.ID), date, GlucoseRecordType.Scan, new GlucoseValue(parseFloat(element.ScanGlucose), GlucoseUnit.MmolPerL));
48 | case "4":
49 | if (element.RapidActingInsulinUnits.trim() != "") return new InsulinRecord(parseFloat(element.ID), date, InsulinRecordType.Rapid, parseFloat(element.RapidActingInsulinUnits));
50 | if (element.LongActingInsulinUnits.trim() != "") return new InsulinRecord(parseFloat(element.ID), date, InsulinRecordType.Long, parseFloat(element.LongActingInsulinUnits));
51 | break;
52 | case "5":
53 | return new FoodRecord(parseFloat(element.ID), date, parseFloat(element.Carbs));
54 | }
55 | return null;
56 | }
57 |
58 | private static _parseCsv(csvFile: string): Array {
59 | var lines = csvFile.split("\n");
60 | var result = [];
61 | var init = 0;
62 |
63 | if (lines[0].indexOf("\t") < 0) {
64 | result.push(lines[0]);
65 | init = 1;
66 | }
67 | var headers = lines[init].split("\t");
68 | var sanitizedHeaders = [];
69 | headers.forEach(function(header) {
70 | sanitizedHeaders.push(header.replace(/ /g,'')
71 | .replace(/-/g,'')
72 | .replace(/\(grams\)/g,'')
73 | .replace(/\(mmol\/L\)/g,'')
74 | .replace(/\(units\)/g,'Units'));
75 | }, this);
76 |
77 | for (var i = 1 + init; i < lines.length; i++) {
78 | var obj = {};
79 | var row = lines[i];
80 | var queryIdx = 0;
81 | var startValueIdx = 0;
82 | var idx = 0;
83 |
84 | while (idx < row.length) {
85 | // If we meet a double quote we skip until the next one
86 | var c = row[idx];
87 |
88 | if (c === '"') {
89 | do {
90 | c = row[++idx];
91 | } while (c !== '"' && idx < row.length - 1);
92 | }
93 |
94 | if (c === '\t' || /* handle end of line with no comma */ idx === row.length - 1) {
95 | // We've got a value!
96 | var value = row.substr(startValueIdx, idx - startValueIdx).trim();
97 |
98 | // Skip first double quote
99 | if (value[0] === '"') {
100 | value = value.substr(1);
101 | }
102 | // Skip last comma
103 | if (value[value.length - 1] === '\t') {
104 | value = value.substr(0, value.length - 1);
105 | }
106 | // Skip last double quote
107 | if (value[value.length - 1] === '"') {
108 | value = value.substr(0, value.length - 1);
109 | }
110 |
111 | var key = sanitizedHeaders[queryIdx++];
112 | obj[key] = value.trim();
113 | startValueIdx = idx + 1;
114 | }
115 |
116 | ++idx;
117 | }
118 |
119 | result.push(obj);
120 | }
121 | return result;
122 | }
123 |
124 | }
--------------------------------------------------------------------------------
/ts/GlucoseRecord.ts:
--------------------------------------------------------------------------------
1 | class GlucoseRecord extends DataRecord {
2 | readonly glucose: GlucoseValue;
3 | readonly glucoseType: GlucoseRecordType;
4 |
5 | constructor(id: number, date: moment.Moment, glucoseType: GlucoseRecordType, glucose: GlucoseValue) {
6 | super(id, date, RecordType.Glucose);
7 | this.glucoseType = glucoseType;
8 | this.glucose = glucose;
9 | }
10 | }
--------------------------------------------------------------------------------
/ts/GlucoseRecordType.ts:
--------------------------------------------------------------------------------
1 | enum GlucoseRecordType {
2 | History,
3 | Scan,
4 | Strip
5 | }
--------------------------------------------------------------------------------
/ts/GlucoseUnit.ts:
--------------------------------------------------------------------------------
1 | enum GlucoseUnit {
2 | MmolPerL,
3 | MgPerDl
4 | }
--------------------------------------------------------------------------------
/ts/GlucoseValue.ts:
--------------------------------------------------------------------------------
1 | class GlucoseValue {
2 | private _value: number;
3 | readonly unit: GlucoseUnit;
4 |
5 | constructor(value: number, unit: GlucoseUnit) {
6 | this._value = value;
7 | this.unit = unit;
8 | }
9 |
10 | public getValueAsMmolPerL(): number {
11 | if (this.unit == GlucoseUnit.MmolPerL)
12 | return this._value;
13 |
14 | return this._value * 18;
15 | }
16 |
17 | public getValueAsMgPerDl(): number {
18 | if (this.unit == GlucoseUnit.MgPerDl)
19 | return this._value;
20 |
21 | return this._value / 18;
22 | }
23 | }
--------------------------------------------------------------------------------
/ts/InsulinRecord.ts:
--------------------------------------------------------------------------------
1 | class InsulinRecord extends DataRecord {
2 | readonly units: number;
3 | readonly insulinType: InsulinRecordType;
4 |
5 | constructor(id: number, date: moment.Moment, insulinType: InsulinRecordType, units: number) {
6 | super(id, date, RecordType.Insulin);
7 | this.insulinType = insulinType;
8 | this.units = units;
9 | }
10 | }
--------------------------------------------------------------------------------
/ts/InsulinRecordType.ts:
--------------------------------------------------------------------------------
1 | enum InsulinRecordType {
2 | Rapid,
3 | Long
4 | }
--------------------------------------------------------------------------------
/ts/RecordType.ts:
--------------------------------------------------------------------------------
1 | enum RecordType {
2 | Glucose,
3 | Food,
4 | Insulin,
5 | SmoothInsulin
6 | }
--------------------------------------------------------------------------------
/ts/Report.ts:
--------------------------------------------------------------------------------
1 | class Report {
2 | readonly patient: string;
3 | readonly glucose: GlucoseRecord[];
4 | readonly food: FoodRecord[];
5 | readonly insulin: InsulinRecord[];
6 | readonly start: moment.Moment;
7 | readonly end: moment.Moment;
8 |
9 | private _smoothRapidInsulinByDate = [];
10 | private _smoothLongInsulinByDate = [];
11 | private _smoothRapidInsulin = [];
12 | private _smoothLongInsulin = [];
13 |
14 | constructor(patient: string = null, glucose: GlucoseRecord[] = [], food: FoodRecord[] = [], insulin: InsulinRecord[] = [])
15 | {
16 | this.patient = patient;
17 | this.glucose = glucose.sort(function(a, b) { return a.date.valueOf() - b.date.valueOf(); });
18 | this.insulin = insulin.sort(function(a, b) { return a.date.valueOf() - b.date.valueOf(); });
19 | this.food = food.sort(function(a, b) { return a.date.valueOf() - b.date.valueOf(); });
20 |
21 | var start = this.glucose[0].date;
22 | start = this.insulin[0].date < start ? this.insulin[0].date : start;
23 | start = this.food[0].date < start ? this.food[0].date : start;
24 | this.start = start;
25 |
26 | var end = this.glucose[this.glucose.length - 1].date;
27 | end = this.insulin[this.insulin.length - 1].date > end ? this.insulin[0].date : end;
28 | end = this.food[this.food.length - 1].date > end ? this.food[0].date : end;
29 | this.end = end;
30 | }
31 |
32 | /**
33 | * Generate a list of points with spreading the insulin value using a custom curve to estimate the insulin/minute (Based on NovoRapid)
34 | * Start acting 15m-30m after application, peaks at 1.5h-2h, lose effect arround 4h-5h (effect multiplied by scale factor).
35 | *
36 | * @param scale A number to mutiply the insulin effective value
37 | * @returns A list of SmoothInsulinRecord (date, value) with the insuling effect.
38 | */
39 | public getSmoothRapidInsulin(scale = 1) {
40 | if (this._smoothRapidInsulin.length != 0)
41 | return this._smoothRapidInsulin;
42 |
43 | this.insulin.forEach(function(element) {
44 | if (element.insulinType == InsulinRecordType.Rapid) {
45 | var minutes = element.date.minutes();
46 | var firstPoint = moment(element.date).startOf('hour');
47 | if (minutes >= 15 && minutes <= 29) firstPoint.add(15, "minutes");
48 | if (minutes >= 30 && minutes <= 44) firstPoint.add(30, "minutes");
49 | if (minutes >= 45 && minutes <= 59) firstPoint.add(45, "minutes");
50 |
51 | // TODO: This function needs some backup from studies, rigth now is a "guess"
52 | this._addSmoothPoint(this._smoothRapidInsulinByDate, moment(firstPoint).add( 0, "minutes"), element.units * 0.001 * scale);
53 | this._addSmoothPoint(this._smoothRapidInsulinByDate, moment(firstPoint).add( 15, "minutes"), element.units * 0.001 * scale);
54 | this._addSmoothPoint(this._smoothRapidInsulinByDate, moment(firstPoint).add( 30, "minutes"), element.units * 0.005 * scale);
55 | this._addSmoothPoint(this._smoothRapidInsulinByDate, moment(firstPoint).add( 45, "minutes"), element.units * 0.023 * scale);
56 | this._addSmoothPoint(this._smoothRapidInsulinByDate, moment(firstPoint).add( 60, "minutes"), element.units * 0.057 * scale);
57 | this._addSmoothPoint(this._smoothRapidInsulinByDate, moment(firstPoint).add( 60+15, "minutes"), element.units * 0.079 * scale);
58 | this._addSmoothPoint(this._smoothRapidInsulinByDate, moment(firstPoint).add( 60+30, "minutes"), element.units * 0.101 * scale);
59 | this._addSmoothPoint(this._smoothRapidInsulinByDate, moment(firstPoint).add( 60+45, "minutes"), element.units * 0.111 * scale);
60 | this._addSmoothPoint(this._smoothRapidInsulinByDate, moment(firstPoint).add( 120, "minutes"), element.units * 0.106 * scale);
61 | this._addSmoothPoint(this._smoothRapidInsulinByDate, moment(firstPoint).add( 120+15, "minutes"), element.units * 0.101 * scale);
62 | this._addSmoothPoint(this._smoothRapidInsulinByDate, moment(firstPoint).add( 120+30, "minutes"), element.units * 0.095 * scale);
63 | this._addSmoothPoint(this._smoothRapidInsulinByDate, moment(firstPoint).add( 120+45, "minutes"), element.units * 0.084 * scale);
64 | this._addSmoothPoint(this._smoothRapidInsulinByDate, moment(firstPoint).add( 180, "minutes"), element.units * 0.068 * scale);
65 | this._addSmoothPoint(this._smoothRapidInsulinByDate, moment(firstPoint).add( 180+15, "minutes"), element.units * 0.051 * scale);
66 | this._addSmoothPoint(this._smoothRapidInsulinByDate, moment(firstPoint).add( 180+30, "minutes"), element.units * 0.045 * scale);
67 | this._addSmoothPoint(this._smoothRapidInsulinByDate, moment(firstPoint).add( 180+45, "minutes"), element.units * 0.033 * scale);
68 | this._addSmoothPoint(this._smoothRapidInsulinByDate, moment(firstPoint).add( 240, "minutes"), element.units * 0.022 * scale);
69 | this._addSmoothPoint(this._smoothRapidInsulinByDate, moment(firstPoint).add( 240+15, "minutes"), element.units * 0.011 * scale);
70 | this._addSmoothPoint(this._smoothRapidInsulinByDate, moment(firstPoint).add( 240+30, "minutes"), element.units * 0.005 * scale);
71 | this._addSmoothPoint(this._smoothRapidInsulinByDate, moment(firstPoint).add( 240+45, "minutes"), element.units * 0.001 * scale);
72 | }
73 | }, this);
74 |
75 | for (var key in this._smoothRapidInsulinByDate) {
76 | var date = moment(parseInt(key));
77 | if (date != undefined) {
78 | this._smoothRapidInsulin.push(new SmoothInsulinRecord(date, this._smoothRapidInsulinByDate[key]));
79 | }
80 | }
81 | return this._smoothRapidInsulin;
82 | }
83 |
84 | /**
85 | * Generate a list of points with spreading the insulin value using a custom curve to estimate the insulin/hour (Based on Lantus)
86 | * Start acting 4h-5h after application, peaks at 6h-7h, lose effect arround 20h-22h (effect multiplied by scale factor).
87 | *
88 | * @param scale A number to mutiply the insulin effective value
89 | * @returns A list of SmoothInsulinRecord (date, value) with the insuling effect.
90 | */
91 | public getSmoothLongInsulin(scale = 1) {
92 | if (this._smoothLongInsulin.length != 0)
93 | return this._smoothLongInsulin;
94 |
95 | this.insulin.forEach(function(element) {
96 | if (element.insulinType == InsulinRecordType.Long) {
97 | var minutes = element.date.minutes();
98 | var firstPoint = moment(element.date).startOf('hour');
99 |
100 | // TODO: This function needs some backup from studies, rigth now is a "guess"
101 | this._addSmoothPoint(this._smoothLongInsulinByDate, moment(firstPoint).add( 0, "hour"), element.units * 0.000 * scale);
102 | this._addSmoothPoint(this._smoothLongInsulinByDate, moment(firstPoint).add( 1, "hour"), element.units * 0.000 * scale);
103 | this._addSmoothPoint(this._smoothLongInsulinByDate, moment(firstPoint).add( 2, "hour"), element.units * 0.002 * scale);
104 | this._addSmoothPoint(this._smoothLongInsulinByDate, moment(firstPoint).add( 3, "hour"), element.units * 0.014 * scale);
105 | this._addSmoothPoint(this._smoothLongInsulinByDate, moment(firstPoint).add( 4, "hour"), element.units * 0.027 * scale);
106 | this._addSmoothPoint(this._smoothLongInsulinByDate, moment(firstPoint).add( 5, "hour"), element.units * 0.055 * scale);
107 | this._addSmoothPoint(this._smoothLongInsulinByDate, moment(firstPoint).add( 6, "hour"), element.units * 0.091 * scale);
108 | this._addSmoothPoint(this._smoothLongInsulinByDate, moment(firstPoint).add( 7, "hour"), element.units * 0.091 * scale);
109 | this._addSmoothPoint(this._smoothLongInsulinByDate, moment(firstPoint).add( 8, "hour"), element.units * 0.084 * scale);
110 | this._addSmoothPoint(this._smoothLongInsulinByDate, moment(firstPoint).add( 9, "hour"), element.units * 0.075 * scale);
111 | this._addSmoothPoint(this._smoothLongInsulinByDate, moment(firstPoint).add( 10, "hour"), element.units * 0.069 * scale);
112 | this._addSmoothPoint(this._smoothLongInsulinByDate, moment(firstPoint).add( 11, "hour"), element.units * 0.068 * scale);
113 | this._addSmoothPoint(this._smoothLongInsulinByDate, moment(firstPoint).add( 12, "hour"), element.units * 0.067 * scale);
114 | this._addSmoothPoint(this._smoothLongInsulinByDate, moment(firstPoint).add( 13, "hour"), element.units * 0.056 * scale);
115 | this._addSmoothPoint(this._smoothLongInsulinByDate, moment(firstPoint).add( 14, "hour"), element.units * 0.052 * scale);
116 | this._addSmoothPoint(this._smoothLongInsulinByDate, moment(firstPoint).add( 15, "hour"), element.units * 0.049 * scale);
117 | this._addSmoothPoint(this._smoothLongInsulinByDate, moment(firstPoint).add( 16, "hour"), element.units * 0.044 * scale);
118 | this._addSmoothPoint(this._smoothLongInsulinByDate, moment(firstPoint).add( 17, "hour"), element.units * 0.039 * scale);
119 | this._addSmoothPoint(this._smoothLongInsulinByDate, moment(firstPoint).add( 18, "hour"), element.units * 0.038 * scale);
120 | this._addSmoothPoint(this._smoothLongInsulinByDate, moment(firstPoint).add( 19, "hour"), element.units * 0.036 * scale);
121 | this._addSmoothPoint(this._smoothLongInsulinByDate, moment(firstPoint).add( 20, "hour"), element.units * 0.027 * scale);
122 | this._addSmoothPoint(this._smoothLongInsulinByDate, moment(firstPoint).add( 21, "hour"), element.units * 0.014 * scale);
123 | this._addSmoothPoint(this._smoothLongInsulinByDate, moment(firstPoint).add( 22, "hour"), element.units * 0.002 * scale);
124 | this._addSmoothPoint(this._smoothLongInsulinByDate, moment(firstPoint).add( 23, "hour"), element.units * 0.000 * scale);
125 | }
126 | }, this);
127 |
128 | for (var key in this._smoothLongInsulinByDate) {
129 | var date = moment(parseInt(key));
130 | if (date != undefined) {
131 | this._smoothLongInsulin.push(new SmoothInsulinRecord(date, this._smoothLongInsulinByDate[key]));
132 | }
133 | }
134 | return this._smoothLongInsulin;
135 | }
136 |
137 | private _addSmoothPoint(smoothInsulin: Array, point: moment.Moment, value: number) {
138 | var initialValue = smoothInsulin[point.valueOf()];
139 | if (initialValue == undefined) {
140 | smoothInsulin[point.valueOf()] = value;
141 | } else {
142 | smoothInsulin[point.valueOf()] = initialValue + value;
143 | }
144 | }
145 | }
--------------------------------------------------------------------------------
/ts/SmoothInsulinRecord.ts:
--------------------------------------------------------------------------------
1 | class SmoothInsulinRecord extends DateRecord {
2 | readonly units: number;
3 |
4 | constructor(date: moment.Moment, units: number) {
5 | super(date, RecordType.SmoothInsulin);
6 | this.units = units;
7 | }
8 | }
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "module": "system",
4 | "preserveConstEnums": true,
5 | "outFile": "js/freestylelibrelib.js",
6 | "sourceMap": false
7 | },
8 | "include": [
9 | "ts/**/*",
10 | "typings/index.d.ts"
11 | ],
12 | "exclude": [
13 | "**/*.spec.ts"
14 | ]
15 | }
--------------------------------------------------------------------------------
/typings.json:
--------------------------------------------------------------------------------
1 | {
2 | "globalDependencies": {
3 | "moment": "registry:dt/moment#2.11.1+20161010105546"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------