-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathservice-worker.js
268 lines (224 loc) · 77.4 KB
/
service-worker.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
/**
* Copyright 2016 Google Inc. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
// DO NOT EDIT THIS GENERATED OUTPUT DIRECTLY!
// This file should be overwritten as part of your build process.
// If you need to extend the behavior of the generated service worker, the best approach is to write
// additional code and include it using the importScripts option:
// https://github.com/GoogleChrome/sw-precache#importscripts-arraystring
//
// Alternatively, it's possible to make changes to the underlying template file and then use that as the
// new base for generating output, via the templateFilePath option:
// https://github.com/GoogleChrome/sw-precache#templatefilepath-string
//
// If you go that route, make sure that whenever you update your sw-precache dependency, you reconcile any
// changes made to this original template file with your modified copy.
// This generated service worker JavaScript will precache your site's resources.
// The code needs to be saved in a .js file at the top-level of your site, and registered
// from your pages in order to be used. See
// https://github.com/googlechrome/sw-precache/blob/master/demo/app/js/service-worker-registration.js
// for an example of how you can register this script and handle various service worker events.
/* eslint-env worker, serviceworker */
/* eslint-disable indent, no-unused-vars, no-multiple-empty-lines, max-nested-callbacks, space-before-function-paren, quotes, comma-spacing */
'use strict';
var precacheConfig = [["/404.html","58210d98643efa9b6313cb647bc5bb9d"],["/about/index.html","1b211ffdcc6186f12de2762f7374e948"],["/archives/2004/06/index.html","5f4862e7ed7d43e2a7939a187b899fc4"],["/archives/2004/index.html","634fc983e6a90aff5621691adf190f5f"],["/archives/2009/03/index.html","04dcd0394f1cd780072b2e56f462f990"],["/archives/2009/06/index.html","6edc9820c4978f7a6eeeea218183448f"],["/archives/2009/index.html","24a5b652ab817cee77cad0a2b86daf5a"],["/archives/2010/03/index.html","259e666efcaf338170819779587dabbf"],["/archives/2010/04/index.html","80bc210db7624326983dea6be37fb88b"],["/archives/2010/05/index.html","14d1cfc92116fd2ed3bca168e736bc4d"],["/archives/2010/06/index.html","22cd8d5d32bc17110485a00e48dc43aa"],["/archives/2010/index.html","64fbf70cb40e49d76a27dac636bfad8f"],["/archives/2011/04/index.html","5c209bcd3b995bad758fbbdd5ee6f0e9"],["/archives/2011/06/index.html","ce83ac49121f2705b08e47797d9f6292"],["/archives/2011/index.html","4b2d0ebcd4e6505f665587abcbafb828"],["/archives/2012/01/index.html","7bc4942abac148f2e04dd470b0c2f9f9"],["/archives/2012/02/index.html","f02dca39732e51fbab80e098cff8ffd9"],["/archives/2012/03/index.html","5a9c84eea714041daf48b7933834eac5"],["/archives/2012/04/index.html","286d7f41df04efcd703b7c88dfba0213"],["/archives/2012/05/index.html","8f09b02f82b5642d4847486827239fa0"],["/archives/2012/06/index.html","1a27162c281559e7f1391d8a914c8386"],["/archives/2012/07/index.html","69677409bf46d2f2603769862c485bf5"],["/archives/2012/08/index.html","72887b09537260c4bde7ff0ba1b4b593"],["/archives/2012/10/index.html","b72e06ee36d4ad5efad575cae9aff43c"],["/archives/2012/11/index.html","c65da5e7029049acdf58bada589cbab9"],["/archives/2012/12/index.html","56c4e0d597b924b9001e41c487d0dd30"],["/archives/2012/index.html","b57b6acae9c5f9e237dae8abe8d7d94e"],["/archives/2013/01/index.html","5b53784c8772f367db3e313448730e62"],["/archives/2013/02/index.html","cc435b7906e518bfdaf34673adb6d26d"],["/archives/2013/03/index.html","65a1c83cba732636d680597e9dfa839c"],["/archives/2013/04/index.html","71f8f8bc7a1b90c2b310faa504156555"],["/archives/2013/05/index.html","da4ed14e1233644556f2085fa4dac803"],["/archives/2013/06/index.html","8b22dc793f3b20266cc00096f0029f77"],["/archives/2013/07/index.html","2ed58e1765692ad780b0e2a88b699218"],["/archives/2013/08/index.html","44b0c01889586ea35424f320bf6950f7"],["/archives/2013/09/index.html","3945249f3a9751f60aece3036a235623"],["/archives/2013/10/index.html","8aa1aaf28354c50c21f8ac1bb4bd3a9b"],["/archives/2013/11/index.html","8a9ce4f9002a9628e75e3509d5e58f5a"],["/archives/2013/12/index.html","02108010add1da08359ba96ed5925fba"],["/archives/2013/index.html","e4804f60241ffc6987f85392d1e26e11"],["/archives/2014/01/index.html","036db867d610ebc54941e983e9480ea5"],["/archives/2014/02/index.html","3ef4e8a8f3d0f23819418845ed4247db"],["/archives/2014/03/index.html","4e40b51480ec239f58e93427d09e2b98"],["/archives/2014/04/index.html","6d5f5235c1a4b948501e9acaffa40324"],["/archives/2014/05/index.html","e94136d07c654d47401b067d8b4da2d2"],["/archives/2014/06/index.html","f274d63ebacf9d37c6ad12b2a0daa8f9"],["/archives/2014/07/index.html","5e33740c6fcad4e43501c65643b2f9fc"],["/archives/2014/08/index.html","c82d3fee4ee53e0c0ff9bb80b37e0b94"],["/archives/2014/09/index.html","3e2bd836cea0b68e36f65bd541d3b51e"],["/archives/2014/10/index.html","88a2045294dea2220109e2f552bc0b8b"],["/archives/2014/11/index.html","1216a2b33af30049a8289206d684bc86"],["/archives/2014/12/index.html","180a62ac4a63b748d777b2eddd80d42c"],["/archives/2014/index.html","c91e7e3c5b85382e81d04107f7a29e38"],["/archives/2015/01/index.html","607e864ab1068cf6e95f701afbda7286"],["/archives/2015/02/index.html","9f2b1711818ab047111914fd3e451d2a"],["/archives/2015/04/index.html","f7910739297f78709629fb411cf26420"],["/archives/2015/05/index.html","8630bfd43ebc3a27232da778bc16f5f7"],["/archives/2015/06/index.html","f194213514ccdad4df1a3b038ad0258c"],["/archives/2015/07/index.html","f380a24c151692ed0229cbcbd101f8e9"],["/archives/2015/08/index.html","7f49635d92779a7c6bfa4f93895f25b4"],["/archives/2015/09/index.html","a0c33192f326f47b6d64b443e2387333"],["/archives/2015/10/index.html","685c7364bf27b6b8f483288a88f5e93d"],["/archives/2015/11/index.html","521044f350cec4b38e337b66927e39b6"],["/archives/2015/12/index.html","b456bfb4e36b1ed1eb1c835e288d8e59"],["/archives/2015/index.html","5635dda63898fa34aed7a20cf74e0d0b"],["/archives/2016/01/index.html","3c17677f4a22f87f1fe7852b2971e66a"],["/archives/2016/02/index.html","a723eadaebd3795972d72bf702b4b560"],["/archives/2016/03/index.html","206cffd5e7990c3eb1ed1c8efdf78e2f"],["/archives/2016/04/index.html","4902f2444cd761a2965e344e8986cfca"],["/archives/2016/05/index.html","ac5db53d3a4abfa59677ef106b5c8d36"],["/archives/2016/06/index.html","e2db82cf21167b35cff71a39f6105d91"],["/archives/2016/07/index.html","41e519929c783b6a9302c2f934d4a153"],["/archives/2016/08/index.html","7a8b8a202b000995f579d50a49282d67"],["/archives/2016/09/index.html","4a73f846a4b9d95fa072f423475e4b29"],["/archives/2016/10/index.html","ff62615db10f0e404862b8631ef35e52"],["/archives/2016/11/index.html","f01c1bb94b0e252af05797791c1fe852"],["/archives/2016/12/index.html","df2897a447b588bcf1ec08c06ba1b84a"],["/archives/2016/index.html","06995e14aa0f5f804439a87fa65ec7da"],["/archives/2017/01/index.html","4fc7f403bed009aa7311fe122d5834a0"],["/archives/2017/02/index.html","5446c56da8d5f23a266166ba3107207d"],["/archives/2017/03/index.html","ad0d300ad92071c20eed50a598cce104"],["/archives/2017/04/index.html","4fdabfcb703fe5050db187adc74e46c8"],["/archives/2017/05/index.html","6431bf4cc25e93f346d89dc8aa232dd2"],["/archives/2017/06/index.html","9e932ebd8e9be6d19c8692ee027dcec0"],["/archives/2017/07/index.html","d97ffeac2127ef318937f2b2b096ca7a"],["/archives/2017/08/index.html","14893df4db157a31bae58757cd0d43ee"],["/archives/2017/09/index.html","3413dd40ac9e6504f3b671e1cc62519c"],["/archives/2017/11/index.html","9a64465052cff87a225f28839537fb0b"],["/archives/2017/12/index.html","9718363c9df3e99a11442f14effd660a"],["/archives/2017/index.html","da4926cca7577d5cf4ff1daeb818446f"],["/archives/2018/01/index.html","832f245262220f1650c86b1a6d076be3"],["/archives/2018/02/index.html","8fd1a90015413d0b522edc7d6c7caa29"],["/archives/2018/03/index.html","2baef5f9cf1d6cd6570d4397531a12cb"],["/archives/2018/04/index.html","28e9dded150d4610717b28eb544f9f68"],["/archives/2018/05/index.html","5747b892ad38e83cf55e5bbe962720d0"],["/archives/2018/06/index.html","2b5b2f7f7cb9f4d72ab149f7367f6a79"],["/archives/2018/07/index.html","da7c84f1e0a8a9ab5ceb070ecfe0618a"],["/archives/2018/08/index.html","ed53c864f81bc2eba27189658b67387a"],["/archives/2018/09/index.html","33273f53de80809e9586fb7f3d7338a5"],["/archives/2018/10/index.html","6cc4fdc9be7a4f9421682980bd9d2b76"],["/archives/2018/11/index.html","e1a1b2e859d439c66038519a388db32e"],["/archives/2018/12/index.html","33ec38d5bc272cb6e0a2fd037428d1d8"],["/archives/2018/index.html","1a22c255f592c5de1adbb15add5e3d75"],["/archives/2019/01/index.html","d8846481d4ce8a3a6020d76949870866"],["/archives/2019/02/index.html","54bc917109c6ea90e0172566abb3a321"],["/archives/2019/03/index.html","10c426a2b3c8963933c2896ffb831ae0"],["/archives/2019/04/index.html","6f2888cc14cfc24a25474ac9e5be6d30"],["/archives/2019/05/index.html","368a8519ee1962c0f1e4f1ee600848ee"],["/archives/2019/06/index.html","628fadb6fc851133345d3c303c249b34"],["/archives/2019/09/index.html","a650b56b9ab685fe2d3ee96e32d6953d"],["/archives/2019/10/index.html","148ac9bb0514508919adc8622355686d"],["/archives/2019/11/index.html","d6d701470c545b7017157c6161c28fd0"],["/archives/2019/index.html","f86d589f6d804631c60cae46542ba433"],["/archives/2020/01/index.html","6a3ded61bed34abcde6abeafa11ce09a"],["/archives/2020/02/index.html","69ecb818bd04a31392370f9051333ff8"],["/archives/2020/index.html","20079885f414af258e43aeac9bfb4c85"],["/archives/index.html","256539215dba28dd56140324fa9dcd1e"],["/blog/2004/06/07/explosions-in-the-sky/index.html","a62842d3f5ff6b344eed365525643223"],["/blog/2009-03-13/leaving-presents.jpg","68b8b5061321989fcaec8c845618d592"],["/blog/2009-06-23/photoshop-handsome-everything-everything.jpg","fb1811253e93135416645bdd1c3f651e"],["/blog/2009/03/13/last-day-at-jd-williams/index.html","03bbec2b118459998b747f0dca83bfff"],["/blog/2009/03/16/new-start-at-the-hut-group/index.html","c2fcc1d225bf9c70890cad5f35d7736a"],["/blog/2009/06/23/everything-everything-photoshop-handsome/index.html","a48950b67fe12d35cc8ccb6c8496debb"],["/blog/2010/03/07/sendit/index.html","3be8e1252b54d1b82404b90d168a480b"],["/blog/2010/04/07/asda-entertainment/index.html","984797cf1f83174dad365bd389ba51b6"],["/blog/2010/05/07/woolworths-entertainment/index.html","1a8de30f9b911c920604b8a06bcc6668"],["/blog/2010/06/07/the-hut/index.html","0b4f76281e89a0ed7da1d5c4ebf69635"],["/blog/2011/04/07/the-hut-group/index.html","c4c1963b04125658e6fde398729ec069"],["/blog/2011/06/07/zavvi/index.html","edcd167dcb9e975b58a922e9a04672bd"],["/blog/2012-01-13/idhh-ss-01.jpg","b12c453196d9aed723d33b036f57182d"],["/blog/2012-01-13/idhh.png","78e776521abe985b1dd3cf143737a311"],["/blog/2012-06-12/paul-irish-01.jpg","83203955b93b9773066995264c6077de"],["/blog/2012-06-13/workflow-01.png","d30b62ed33733d8df09cb5a7a5692d22"],["/blog/2012-06-18/firesass-01.png","0f5ac347a9ea89465ba18373f0026dad"],["/blog/2012-07-26/firesass-02.png","e2a190c13193dc4570f08cc0807ba071"],["/blog/2012-10-16/wordpress-error.png","07dee220402b7adaac6454348113a747"],["/blog/2012-11-02/phagenesis-ss-01.jpg","d5703b55b8547a99c98b4258a70febfa"],["/blog/2012-11-02/phagenesis-ss-02.jpg","a9cabe2ce83ba3628593ede3ed868005"],["/blog/2012-11-02/phagenesis-ss-03.jpg","151794d15148969ab8047b253e47906b"],["/blog/2012-11-02/phagenesis-ss-04.jpg","abd8edcdde9a38e89564d5fbf6b77777"],["/blog/2012-11-02/phagenesis-ss-05.jpg","1365b6fc68a86e37843751139a5dbc6c"],["/blog/2012-11-02/phagenesis-ss-06.jpg","63df6c7a2f3cfcc2b676cadb0c8bf60e"],["/blog/2012-11-02/phagenesis-ss-07.jpg","a22bd0d7590ac7423afa5a86071b2596"],["/blog/2012-11-02/phagenesis-ss-08.jpg","920ac0debbeb95d613b5e90785d3a510"],["/blog/2012-11-02/phagenesis.png","a35654c3f3a6a114c904fbb78d6254ad"],["/blog/2012-11-15/mountstmarys-ss-01.jpg","07af01e634900e8adb92f49ce870e187"],["/blog/2012-11-15/mountstmarys-ss-02.jpg","53c477089c984f480e7ea2208e055e23"],["/blog/2012-11-15/mountstmarys-ss-03.jpg","f0555b9d54b1c3aac25d53c89900d076"],["/blog/2012-11-15/mountstmarys-ss-04.jpg","ff0352998e23d038596e881e917845c5"],["/blog/2012-11-15/mountstmarys.png","54afd04b9c89d97c4c454689925f2f68"],["/blog/2012/01/13/idhh/index.html","d888fc669126940b1397926321324ac3"],["/blog/2012/02/11/cruise-fashion/index.html","d354cc432921219df153d929ed44bb04"],["/blog/2012/02/12/allsole/index.html","8c5de6dd053efd41996c070f3091fb3b"],["/blog/2012/02/12/cancer-research-uk/index.html","5cfb1a021a5e0deac6f643c5ff40edba"],["/blog/2012/02/12/halo-reach-shop/index.html","e0f98256e2809858fb1fa5ef71d612a3"],["/blog/2012/02/12/jessica-gamboa/index.html","377d3bd208cece4cebc7af07d7d66125"],["/blog/2012/02/12/the-hut-outlet-ebay/index.html","192c09830d060ea72eff7dec0b707b1f"],["/blog/2012/02/12/urban-coppice/index.html","1378696a2e7c0cd3aa2980a18340a327"],["/blog/2012/02/19/halle-at-giggleswick/index.html","be030db1518b8c5129517f1916936593"],["/blog/2012/03/22/ymca-southport/index.html","3680c5731c1f1687dd2d330fd909e09a"],["/blog/2012/03/24/lancashire-witches/index.html","65c3c2d938eb48ec1aa23fdfe636a084"],["/blog/2012/03/24/pleasington-golf-club/index.html","695eb333d989f9801990345fc9f7be7b"],["/blog/2012/03/29/simon-owen-design-world-collaboration-james-white-abduzeedo/index.html","4da529671b9fd5bf8d0178b463b9ae63"],["/blog/2012/04/05/barbados-football-legends/index.html","5dd574ec2943e3d0bb74ceda54537005"],["/blog/2012/05/28/amir-khan/index.html","b3ec058eb30ebe9ea591fb7f05d3d685"],["/blog/2012/06/18/how-to-automatically-compile-a-sass-file-refresh-your-browser-and-iphone-using-livereload-with-mamp-and-wordpress/index.html","63f6fd0794bd924ee14a1fc48e032057"],["/blog/2012/07/26/firesass-equivalent-or-similar-for-chrome-dev-tools-chrome-office-hours-live-from-london/index.html","cabd7d0a1df5d0dccfcef729e6a2ecae"],["/blog/2012/08/24/easier-changing-directory-in-terminal-for-mac-os-x-using-rupaz/index.html","000171d7ed1999a96b937b4314dc6ce7"],["/blog/2012/10/16/wordpress-error-require_once-function-fopen-failed-to-open-stream-permission-denied/index.html","a6485a7b31ae8e9e5630e4aa4e5bf357"],["/blog/2012/11/02/phagenesis/index.html","e23e6dcd87d6a4ef77d94da7bbcc53e8"],["/blog/2012/11/04/kelly-tidy/index.html","e2aa206e4397887607451708fd7220f3"],["/blog/2012/11/04/styling-the-chrome-dev-tools/index.html","9addb268cc7dbcb73629138f98206065"],["/blog/2012/11/05/beckett-investment/index.html","1a88450e0c5ecb35ccb2696864e99dca"],["/blog/2012/11/05/cherrys/index.html","41749be1c4a196b302d4e66b062d4e71"],["/blog/2012/11/11/one-theme-to-rule-them-all/index.html","5cc2bd034cf615b550625a9d6b4ee21f"],["/blog/2012/11/15/mountstmarys/index.html","4d559f133cc47a821eb7508fee7fb898"],["/blog/2012/11/19/mr-lizard/index.html","3cd548017000e052c922036da6c6f219"],["/blog/2012/11/21/workflow-screencast/index.html","222266014cb8d0921cede8faceb5f9eb"],["/blog/2012/12/02/mother-effing-dotfiles/index.html","d412a7110f003e2e8aac008cf5ba5249"],["/blog/2012/12/11/mac-os-x-osx-dotfiles/index.html","6f769b783e1915228d684bfb33f3e469"],["/blog/2013-02-06/hammersmithacademy-ss-01.jpg","2f4afa12136a419204a157a261eaa8de"],["/blog/2013-02-06/hammersmithacademy-ss-02.jpg","a6bfbae36958630d815cd2411a26c1e4"],["/blog/2013-02-06/hammersmithacademy-ss-03.jpg","0abac0627150a8d4814858b1d161c3f8"],["/blog/2013-02-06/hammersmithacademy-ss-04.jpg","1b360e3b9bcff225da668ea62db52fb9"],["/blog/2013-02-06/hammersmithacademy-ss-05.jpg","14e423892dfa7a6c5c3e46c8ba74a409"],["/blog/2013-02-06/hammersmithacademy-ss-06.jpg","4a7efc09702887bc2892e4ddd3f4f55e"],["/blog/2013-02-06/hammersmithacademy.png","7033308c85c2bf7d4c9e0fbfeeef840c"],["/blog/2013-02-24/01-trap.jpg","bda5fc9cffbb0334d97c8449cea6d0e0"],["/blog/2013-02-24/02-keith.jpg","da12b2cc93ea8b815535a59c5e1a9605"],["/blog/2013-02-24/03-robot-wars.jpg","b2b2af34855389f3d0180e8347729a0c"],["/blog/2013-02-24/04-trap-flag.jpg","8d8114c866ff07bf00b9747449dcd219"],["/blog/2013-02-24/05-it-was-a-trap.jpg","21f4389e81fe89fefdf76b124938c9c8"],["/blog/2013-02-24/06-it-was-a-trap.jpg","f11ceaaefc3142fc0676ef28ea9e6dbd"],["/blog/2013-02-24/07-it-was-a-trap.jpg","00d074c3a86e1e62078a00a25c19ec44"],["/blog/2013-02-24/08-flying.jpg","ee5a4f567ccc0756cb1e12087c058476"],["/blog/2013-02-24/09-half-board.jpg","86ecd44f78e9ad970ce40afce38c2e46"],["/blog/2013-02-24/10-half-board.jpg","d4c99d3c2cd9edd3fbcf01e9dc3a32b9"],["/blog/2013-02-24/11-you-died.jpg","f99db4d55249f53173a057287dd6c329"],["/blog/2013-02-24/12-you-died.jpg","2e2ab0334b314d04aa4c8ce7ff964f78"],["/blog/2013-02-24/13-you-died.jpg","b6854cd316adae6cbe96b26e1d1516cd"],["/blog/2013-02-24/14-you-died.jpg","e0423a30ea0f0d42686217372b7997f9"],["/blog/2013-02-24/15-dan.jpg","ec7cc5623537e6410f647e64aabf8808"],["/blog/2013-02-24/16-dan.jpg","2dab5aaa4135bf80057610fa995c70e7"],["/blog/2013-02-24/17-dan.jpg","3dc4b05be0e471c66469ea990ec40e59"],["/blog/2013-02-24/18-crystal.jpg","39567bef051405aed9961b892b05f352"],["/blog/2013-02-24/19-crystal.jpg","48ca6328367e2612bf9978a57f2fd677"],["/blog/2013-02-24/20-crystal.jpg","8f136649b3c1c56ac959dfb93af11d85"],["/blog/2013-02-24/21-crystal.jpg","fba9bbffd1e2d10d58cd77b6f59cec86"],["/blog/2013-02-24/22-magic-8-ball.jpg","ba6b70e081be80e5dff480aa3d001586"],["/blog/2013-02-24/23-gamejam.jpg","060799b0fd03a5c8dc99ab1e03e77106"],["/blog/2013-02-28/webgl.png","d6fd54adbe936bcc9b337244227ba62e"],["/blog/2013-03-20/kidsofbolton-ss-01.jpg","7d3b50b35d4c2feb00164d9050b59ebd"],["/blog/2013-03-20/kidsofbolton-ss-02.jpg","cf122a1e43ed32c3f4b28ca832562f49"],["/blog/2013-03-20/kidsofbolton-ss-03.jpg","7c4f7725bb30c179dc6df0dafa3b6315"],["/blog/2013-03-20/kidsofbolton-ss-04.jpg","e5fe9f864a2635e6ed30061d3ee8bd42"],["/blog/2013-03-20/kidsofbolton.png","58bc0d1b27f7eea9bc5e81e1571826af"],["/blog/2013-03-21/code-club-sponsor.png","c0732c109bf9a07231b9d70cd7f03057"],["/blog/2013-04-02/affetto-ss-01.jpg","b6dab0511751d10c17c8a9a5e2780505"],["/blog/2013-04-02/affetto-ss-02.jpg","bd0a00f4449479a39aa899c9de627b38"],["/blog/2013-04-02/affetto-ss-03.jpg","adb43ee73c9b96876e11027511c610d6"],["/blog/2013-04-02/affetto.png","a6f07fed6c5228eaf2cdc87bac867e30"],["/blog/2013-04-17/me-n-mike.jpg","548607c1da9a317b47f8bd9700f17b2e"],["/blog/2013-04-17/mwug-april.jpg","d657e2e8fce037e33299ded270a7cfdb"],["/blog/2013-04-17/mwug-logo.png","0abcff4971e672315b1b1d019a74db3e"],["/blog/2013-05-01/sam.jpg","da6d3cd4f8b4a94ee672023bf3424209"],["/blog/2013-05-01/simon.jpg","de78cb1b90769078760cd80e753d7036"],["/blog/2013-05-01/tom.jpg","c336677d35d3f982ca000cb2ec55fb9e"],["/blog/2013-05-07/hfc-ss-01.jpg","b885b3006d9a554586844dfd460e0f44"],["/blog/2013-05-07/hfc-ss-02.jpg","9d27d15f7343076cdbc55edcaa83376e"],["/blog/2013-05-07/hfc-ss-03.jpg","b349d648a2c2987b55a14e78ecef441f"],["/blog/2013-05-07/hfc.png","48b25e754ec1bb04eba52b6c247eda3a"],["/blog/2013-05-08/heisencat.png","edb81e9dcffd9019ec0d0ff8bf32d661"],["/blog/2013-05-09/dolcifollie-ss-01.jpg","ca0fd5cd9f7d07055e4a22deb3775a9e"],["/blog/2013-05-09/dolcifollie-ss-02.jpg","0034d7d6b160a91533888946a8750490"],["/blog/2013-05-09/dolcifollie-ss-03.jpg","b9506b61ba61430f03c5d2c3a5cc1d81"],["/blog/2013-05-09/dolcifollie-ss-04.jpg","dce803dd3ef2a483c4909312bc1a1646"],["/blog/2013-05-09/dolcifollie.png","e8fe7a3065a844a0c098112e26fee079"],["/blog/2013-05-14/tools.png","630e8421b70a1f61342b6e0729f2273e"],["/blog/2013-05-15/wordpress10.png","88241deda995ec135829dd9b14f7284f"],["/blog/2013-05-18/deeserve-ss-01.jpg","7daec3eafaf5d9bb886e1768162f5a75"],["/blog/2013-05-18/deeserve-ss-02.jpg","6dcaf6021e4edd033914d4cf23199a90"],["/blog/2013-05-18/deeserve-ss-03.jpg","9cfa199e9e406a1d9fa409ccedf7b34c"],["/blog/2013-05-18/deeserve.png","2ce24519ce1a8a2ba04562e0f4e10aa0"],["/blog/2013-05-28/01-mike-interview.jpg","a26f2169cc8a3f8620eb5223c76e48ef"],["/blog/2013-05-28/02-mike-interview.jpg","dc2167dc6ec2f8e46cba09fd3fe053ca"],["/blog/2013-05-28/03-dudes-chilling.jpg","7ff1686bf075bef6643fcf5007193885"],["/blog/2013-05-28/04-booby-prize.jpg","f3d8e66340a98b9b224c0de25b7aab9f"],["/blog/2013-05-28/05-siobhan-book.jpg","dd579d5efedf1b6fc208e5fca833adc5"],["/blog/2013-05-28/06-siobhan-book-2.jpg","4148b44052191f60abdf7ec15b70ed6f"],["/blog/2013-05-28/07-wordpress-cake.jpg","5f3f6a32ac75d9df4914b8d6d1fd4226"],["/blog/2013-05-28/08-mike-cake.jpg","a2e02e3db0d0c234d0e6005d4ef6d2b6"],["/blog/2013-05-28/09-t-shirt.jpg","e21c967108d8d33298a286e0231288ce"],["/blog/2013-05-28/10-wordpress-pint-glass.jpg","7958af4a72a1be5b8b3a4b0007e1c68b"],["/blog/2013-05-28/11-pebble-phone.jpg","cdeb901311821163588392213b8c718d"],["/blog/2013-06-01/tom.jpg","8c6c3e455fc799f01fd92ddbe572888c"],["/blog/2013-06-07/rowtonhallhotel-ss-01.jpg","fd3a5d672c9728b67b2c2c02a3b0d67d"],["/blog/2013-06-07/rowtonhallhotel-ss-02.jpg","09bd0339d683082a7f4346ce1fae9bc0"],["/blog/2013-06-07/rowtonhallhotel-ss-04.jpg","3f8860dc4f4d685537e9e876f9b14e0f"],["/blog/2013-06-07/rowtonhallhotel.png","0baba8067721cb20a048396468a5520c"],["/blog/2013-06-12/folder-path-01-source.png","288ad81eb752aee74117a65d27779ef0"],["/blog/2013-06-12/folder-path-02-blog.png","9eb157a57346253575ef4d4cfcc8fa06"],["/blog/2013-06-12/folder-path-03-deploy.png","d9f3ddc78e99b4abfda64a72692dbfd7"],["/blog/2013-06-12/github-commit-01-with.png","021efcae2474400fe8e4e0fe5488645b"],["/blog/2013-06-12/github-commit-02-without.png","d3363fa393cfbcd6d85fbc447405bd26"],["/blog/2013-06-12/github-page-build-failed.png","4b5751d99121c79295894c84447791ad"],["/blog/2013-06-12/oops.jpg","99c9abfc03f8c0091a4fda0165234ebe"],["/blog/2013-07-16/gildarnell-ss-01.jpg","f82b69902466cc6ac33a745641415f4e"],["/blog/2013-07-16/gildarnell-ss-02.jpg","0e2dce2eb38d37737b9c23d40c946e92"],["/blog/2013-07-16/gildarnell-ss-03.jpg","12d66acbe17a5e330f896ab1ec306267"],["/blog/2013-07-16/gildarnell-ss-04.jpg","7ca9d9ef50828292649a4abf8f93d53f"],["/blog/2013-07-16/gildarnell-ss-05.jpg","66b5cf313c7c01f1f661e59f4143c44b"],["/blog/2013-07-16/gildarnell-ss-06.jpg","446ac73dfe429e512eb238025c7d5083"],["/blog/2013-07-16/gildarnell-ss-07.jpg","a99fea346a9d6a4c193340b64a5f334d"],["/blog/2013-07-16/gildarnell-ss-08.jpg","ee3d581a19e40c14da9c4841667f32a4"],["/blog/2013-07-16/gildarnell-ss-09.jpg","17872120b3add7927f44a277e2cc03a1"],["/blog/2013-07-16/gildarnell-ss-10.jpg","5d6413ee3b669be587efdb666c67a005"],["/blog/2013-07-16/gildarnell-ss-11.jpg","223e81745b4bad502c9cbc700e229192"],["/blog/2013-07-16/gildarnell-ss-12.jpg","83ea4ca9457670043253d455e0beb5ef"],["/blog/2013-07-16/gildarnell-ss-13.jpg","013ddaf9d1349b6a891014283a1a08a9"],["/blog/2013-07-16/gildarnell-ss-14.jpg","99098e792a0fffc7f0b14f71a0cfc459"],["/blog/2013-07-16/gildarnell-ss-15.jpg","4cfeb51176e6d20ebbbb9e72d867f299"],["/blog/2013-07-16/gildarnell-ss-16.jpg","61219efee0c07e2dc8a5d1ca6d2312d5"],["/blog/2013-07-16/gildarnell-ss-17.jpg","481650aa50b16f5c57325ea716ad198a"],["/blog/2013-07-16/gildarnell-ss-18.jpg","cacf1d03917983e563f979c160829e18"],["/blog/2013-07-16/gildarnell.png","b0944d4eb616d2d30d2a27124a221b35"],["/blog/2013-08-21/mike-little.jpg","a3610d2f63f3ecec8e6345cc72a5871b"],["/blog/2013-10-08/chromedevtools-01-top.png","af7f852456a5a92c038cf0ca0e1a363e"],["/blog/2013-10-08/chromedevtools-02-bottom.png","8bf46cfcf949fb5b22d00cfb8f4ba59f"],["/blog/2013-10-08/chromedevtools-03-center.png","99b093308d696eba6d51e98c570869d5"],["/blog/2013-10-08/chromedevtools-04-center.png","a8e7eef48a45cd94d9e170d341b5a687"],["/blog/2013-10-22/wallpapercentral-ss-01.jpg","19e6fa86e8ff4e650c3299674d4ba80b"],["/blog/2013-10-22/wallpapercentral-ss-02.jpg","2fefc8b6decc733824b46349303c438b"],["/blog/2013-10-22/wallpapercentral-ss-03.jpg","0c11a68a0889c22a3620feb504b180f4"],["/blog/2013-10-22/wallpapercentral.png","46441c6817764010c5a011b106868720"],["/blog/2013-11-04/andrew-clarke.jpg","8f12a83fd457f9716c028f7dbc05d0d1"],["/blog/2013-11-14/absolute-fun.jpg","e6b0eed350a42b432a3e19884c143607"],["/blog/2013-11-14/absolute-sites.jpg","de94917c178cea97632ed7732427c36f"],["/blog/2013/01/01/make-google-chrome-canary-default-browser/index.html","fd9ac116ef62e4de42b9710372f85a5a"],["/blog/2013/01/29/codepen-theme-challenge/index.html","e72f5111afe19229a887f32f371310cc"],["/blog/2013/02/03/manchester-front-end-web-development-meetup/index.html","4e51c1be00c9122f066d9aeacd03c03b"],["/blog/2013/02/06/hammersmithacademy/index.html","874434b5b069042507e567d4e7766ad8"],["/blog/2013/02/17/installing-sublime-text-2-on-lxde-linux-useful-for-raspberry-pi/index.html","aacecf914f9332525d4329960358aa5e"],["/blog/2013/02/24/manchester-game-jam/index.html","ed3f1f33e15e39fc71ac274f1b648117"],["/blog/2013/02/28/webgl-globe-github-data-idea/index.html","85768c8d162cfc04bb8330316995a36e"],["/blog/2013/03/07/first-octopress-post/index.html","0c4836a48bee560763868470f2c7015e"],["/blog/2013/03/19/mcrfred-is-a-go/index.html","361358e425af671f19ed4a483f8f43ff"],["/blog/2013/03/20/kidsofbolton/index.html","4a7c8a65239b8f3399cc518aaa2ef45e"],["/blog/2013/03/21/first-mcrfred/index.html","9c403574fb051e1e2c4508857764047f"],["/blog/2013/03/23/adding-emoticons-to-octopress/index.html","b699f8638450f03e823235941ef07d88"],["/blog/2013/03/27/mcrfred-round-2/index.html","40bf8374331f7992b8a0f09f272d57e4"],["/blog/2013/04/02/affetto/index.html","e4c13197c2580d27c3260cfce26aba39"],["/blog/2013/04/02/sublime-text-2-and-bower/index.html","23e61b6e3cdfa2d0cb85751410342ec5"],["/blog/2013/04/07/html-5-boilerplate-and-compass/index.html","a3b77dbcd2540975b1640d619c84a96a"],["/blog/2013/04/17/manchester-wordpres-user-group-april/index.html","08d163be4fde78ac475a3c2ae7a53227"],["/blog/2013/04/17/manchester-wordpress-user-group-february/index.html","d59e9b8b4b491b726e19273e47befd1c"],["/blog/2013/05/01/manchester-fred-gets-responsive/index.html","540558c9d2221574ed1e9c1ba887d7bc"],["/blog/2013/05/05/mcrfred-01-videos/index.html","2a91157dd4e4248143214afa4843c807"],["/blog/2013/05/07/hfc/index.html","06fb94993d3a696f37343121177c9bca"],["/blog/2013/05/08/mcrfred-round-3-github-workshop/index.html","65729244977af9abe5539cb827371f44"],["/blog/2013/05/09/dolcifollie/index.html","589a2bef118e670319895830bbf46531"],["/blog/2013/05/14/mcrfred-round-4-stu-cox-on-modernizr/index.html","5b08694f0521f260bebd3389dabf3d1b"],["/blog/2013/05/14/mcrfred-round-5-andrew-nesbitt/index.html","d767218beab653f20c3352c7860af11a"],["/blog/2013/05/15/manchester-wordpress-user-group-may/index.html","a9cae2c1345ef328a3016b8e73f4b61b"],["/blog/2013/05/18/deeserve/index.html","ba95fde5ff43db3ea8b470cd97ed7369"],["/blog/2013/05/23/mcrfred-02-videos/index.html","b2e31af57aa5abc6b8635d64156cc15f"],["/blog/2013/05/25/mcrfred-the-story-so-far/index.html","dbf182764ac64a081bd03449e4bbab56"],["/blog/2013/05/26/mcrfred-sponsoring-and-donating/index.html","5de06c3793380b04263955bff66f17fc"],["/blog/2013/05/27/octopress-build-failed-utf-8-issue/index.html","d9707c8db6050f2e4f5ff96e5abbe6a4"],["/blog/2013/05/28/wordpress-10th-anniversary-manchester/index.html","aa170335acc57b132b1164443c3bf19a"],["/blog/2013/06/01/a-weekend-in-the-woods/index.html","53b64b2a1c1bae2396d932bc6eec54b8"],["/blog/2013/06/01/manchester-forking-fred-merge-batman/index.html","55cfd837182a5ab2f04f7d93fdd7f159"],["/blog/2013/06/07/rowtonhallhotel/index.html","d3b06c410be66b98d39ec68c015931d4"],["/blog/2013/06/12/octopress-is-great-until-it-breaks/index.html","55cf104bff213f01cd089b41da71ef66"],["/blog/2013/06/19/manchester-wordpress-user-group-june/index.html","3ea4186321210f403dea42da7ca16a80"],["/blog/2013/06/23/theming-with-sass-and-compass-codepen/index.html","49824c7a00e3b5e8235ff245202531e8"],["/blog/2013/07/07/mcrfred-04-videos-stu-cox-on-modernizr/index.html","e90c7ebebb87a8fd1e3597b0528e95b1"],["/blog/2013/07/16/gildarnell/index.html","69afa90a45710ef087772b4270a33de2"],["/blog/2013/07/18/manchester-wordpress-user-group-july/index.html","94f2467a03784d44369ce24e319dd661"],["/blog/2013/07/24/mcrfred-round-6-martin-rue-on-javascript-as-a-language/index.html","2f6ae72f378bc0adac8359db15829294"],["/blog/2013/07/24/mcrfred-round-7-chris-mills-on-the-importance-of-documentation/index.html","c57995738adc159e730539992591f703"],["/blog/2013/08/21/manchester-wordpress-user-group-august/index.html","492a3038dae2320025e4494f59c3454e"],["/blog/2013/08/30/mcrfred-06-videos-martin-rue-on-javascript-as-a-language/index.html","677ea8ff3c5c73881b5a52150592fd43"],["/blog/2013/09/11/some-awesome-things/index.html","f5a01165ffdfcee39d852e75a315bf26"],["/blog/2013/09/28/mcrfred-07-videos-chris-mills-on-the-importance-of-documentation/index.html","e76f6825f919c2f349071dd2224d35cb"],["/blog/2013/09/30/mcrfred-round-8-something-a-little-different/index.html","533c2a28e51929d25b0def94ef0cdea2"],["/blog/2013/10/08/chrome-dev-tools-vertical-center-idea/index.html","23e26493572599e1bfcf3483a301b98c"],["/blog/2013/10/16/manchester-wordpress-user-group-october/index.html","c3103d5a91b5c04d746c08302b4905d1"],["/blog/2013/10/22/wallpapercentral/index.html","73272f3d0f8a0cf728df6bf6a1cda5ee"],["/blog/2013/11/04/mcrfred-round-10-andrew-clarke/index.html","7c4b6002aaf4bad76d6e72854be32795"],["/blog/2013/11/04/mcrfred-round-9-manchester-freelance-front-end-developers/index.html","407f5a6f0a4766d867e168ef3698b9dc"],["/blog/2013/11/14/last-day-at-absolute-media/index.html","6d1c31eeda8f99c615d6e1cd66b1cd0c"],["/blog/2013/12/14/mcrfred-09-videos-manchester-freelance-front-end-developers/index.html","10ea6f42cefd39c9dae8707f3f7040c3"],["/blog/2014-01-02/ben-frain.jpg","6b79fb6a47d1d60bbd9543c7c977cf0b"],["/blog/2014-01-04/flightdelayservices-ss-01.jpg","3ee08fc83feec71163458a2c4d48c826"],["/blog/2014-01-04/flightdelayservices-ss-02.jpg","833dfde9caeb155b5d9b394c8ea18c42"],["/blog/2014-01-04/flightdelayservices.png","ebcd8857b7973d0b0d517e563d2d3079"],["/blog/2014-01-16/cat-seo.jpg","38b9f875fab18b49fddf8c769188e8ee"],["/blog/2014-01-18/GitHub_Logo.png","17d12983c7eeff85f6f6b6b6911d1072"],["/blog/2014-01-18/Octocat.png","54937db1ea65e86d12b4c25a1d0f2ff5"],["/blog/2014-01-18/carbon-creative.png","9d45ab04c4e94ac9613e303d50c92f96"],["/blog/2014-01-18/manchester-fred.png","4d4b9b2d9d41a731668b9306670062ee"],["/blog/2014-02-09/joe-critchley.jpg","08b99bd559ee01b0a86a5f7262438cfd"],["/blog/2014-02-09/patrick-lauke.png","433318989c2fb413b00cbf849189b083"],["/blog/2014-02-19/daniel-pataki.jpg","10025ddc0c0c047883917f761639292c"],["/blog/2014-02-19/special-post.jpg","e52f3c2435f0f17abca04c198041e8d7"],["/blog/2014-02-26/mcrfred-tshirts.jpg","0bfc6e5bc4e97b78d39ff407a4557502"],["/blog/2014-03-04/timeline.png","eda0f84058ebc93702b002a74b44ea05"],["/blog/2014-03-12/chromedevtoolstheme.png","56702c69ce1186f39c0b669b47debd8e"],["/blog/2014-03-12/enable-experiments.png","ea3637572f8de0a4d998b0cec4434087"],["/blog/2014-03-12/enable-ui.png","3aa5b930483b8a22e6893b3c3d0722e6"],["/blog/2014-03-12/so-dark-monokai-v3.png","9c473d0766fabdcbe8bbde25195b091d"],["/blog/2014-03-17/allbeernobelly.png","56b25355fc3687d8827df2111e709d21"],["/blog/2014-03-17/beers.png","77273b4d3f0e0943d5bb2ac3ee09e948"],["/blog/2014-03-19/mike-little.jpg","b370f79d7f9ca3c7265b36edbeab46e4"],["/blog/2014-03-19/philip-valentino.jpg","d0cb75766db9ddbfaf24ae8909f20000"],["/blog/2014-03-19/tom-j-nowell.jpg","5c0dd235c5d5867b80b8fcbb564c08b3"],["/blog/2014-03-19/vagrant.jpg","8cb86d2d743e715320fad01582287d2a"],["/blog/2014-03-24/lussostyling-ss-01.jpg","3fd42f648fdca05e2b2d8968a0a19289"],["/blog/2014-03-24/lussostyling-ss-02.jpg","8b361787b9756604b97c5dc71966bc1c"],["/blog/2014-03-24/lussostyling-ss-03.jpg","b046696e761f39f8916241ee15fe437d"],["/blog/2014-03-24/lussostyling.png","00737de1c19a3e415f5ee7d1e9e3647a"],["/blog/2014-03-24/mind-ss-01.png","7d1d9fd38f101a43095abbb01bcb6cc9"],["/blog/2014-03-24/mind-ss-02.png","76fb4b9efe5ce0763d34496e0cf31566"],["/blog/2014-03-24/mind-ss-03.png","a36c22748dc492a83de3adbb44ba93c0"],["/blog/2014-03-24/mind-ss-04.png","19fd7540596ae22c98a86f1bb91ca467"],["/blog/2014-03-24/mind-ss-05.png","d4f01072f9c2189b49609131437e41f4"],["/blog/2014-03-24/mind-ss-06.png","c6b500218cee4fd23c1f93f9d148f5aa"],["/blog/2014-03-24/mind-ss-07.png","34e71718a2aa0dbd65d06eb5867bc958"],["/blog/2014-03-24/mind.png","51f9f322f21ea904f44e7dbde436fa7c"],["/blog/2014-03-26/halo1.jpg","19be8dcb4226fb1a01d143a9b0be8b8c"],["/blog/2014-03-30/winstanley-ss-01.png","281ddff8f245958d2854a4527bd2accc"],["/blog/2014-03-30/winstanley-ss-02.png","7b4201a42e3b953933786c6b0fe335b0"],["/blog/2014-03-30/winstanley-ss-03.png","0dc9ddb3487fe8f97d26c194e182d1c3"],["/blog/2014-03-30/winstanley.png","919badec639741c9b87d6c0067e58c45"],["/blog/2014-04-16/audio-playlist.jpg","d10e14bf13f4ec82b94f68db9aea90c0"],["/blog/2014-04-16/gallery.jpg","ee64a69247320f14adcef2e6f1fc28cb"],["/blog/2014-04-16/me-mike-little.jpg","262c8192d46dc7a65965068b097f0db5"],["/blog/2014-04-26/halo2.png","a59e981caa6ccee92c0a56b4219982d3"],["/blog/2014-05-08/mcrfred-13-patrick-lauke.jpg","a72012938ae4e34e6682ce90318853a8"],["/blog/2014-05-10/mcrfred-11-ben-frain.jpg","b7b5ecf1ce1fcc2d4f944c9426d42096"],["/blog/2014-05-15/rmri-ss-01.png","45a511e045d411e2392aebb554290f2f"],["/blog/2014-05-15/rmri-ss-02.png","a52effc9220bec302b03eddce846451b"],["/blog/2014-05-15/rmri-ss-03.png","ee51215f85dbaa189ff6b5326af34e69"],["/blog/2014-05-15/rmri.png","b4400ab1aa7d157c51ae59c4791533dc"],["/blog/2014-05-26/halo-3.jpg","6348f1fb4e6ba039a63fdfbdc30895ea"],["/blog/2014-06-17/liverpoolveterans-ss-01.png","2a3f47eeea79ff732f2dab491f2e8ad4"],["/blog/2014-06-17/liverpoolveterans-ss-02.png","efab382864f897c9c29d049b4b1693af"],["/blog/2014-06-17/liverpoolveterans-ss-03.png","3de98eb2b0c81c1eb9ea0e8c4d2cb99f"],["/blog/2014-06-17/liverpoolveterans.png","abd482b8262210f06b26969d85389c66"],["/blog/2014-06-23/andi-smith.jpg","6983370abb89e5c006f8e67c7ad691c9"],["/blog/2014-06-30/amscreen-ss-01.jpg","6628cb7b87a04c639103fe8da40c0179"],["/blog/2014-06-30/amscreen-ss-02.jpg","3fe937d775c5a918e98b61779dc47d2c"],["/blog/2014-06-30/amscreen-ss-03.jpg","4d626a5250babef3af79d65de5cd4d52"],["/blog/2014-06-30/amscreen-ss-04.jpg","d6a082be7c8a98bdbaf64d3090c0735e"],["/blog/2014-06-30/amscreen-ss-05.jpg","6a85371308511378b329fe3c8274f3ad"],["/blog/2014-06-30/amscreen.png","1877c979c2cb30f21084342c67dca722"],["/blog/2014-07-09/svg-01.png","c256937bf704abbee91fc73d0bac2550"],["/blog/2014-07-09/svg-02.png","a38ce4dec22d195f57724dfdbfed6b0c"],["/blog/2014-07-09/svg-03.png","05309cc7f7e3f063698682935fb382b0"],["/blog/2014-07-29/illustrator-layer-1.png","a15a45156b29b63ef6d1c02d15838899"],["/blog/2014-07-29/illustrator-svg-options.png","ad35ea5af11a56de3a69dade58ea9950"],["/blog/2014-08-03/bruce-lawson.jpg","5a87502a0562a04f09c29aa4ec775ddb"],["/blog/2014-08-04/hadouken.jpg","159e70b34615273fb823927e24515211"],["/blog/2014-08-04/note-taking.jpg","6e440814b7ca152c89bd7b2f46a5fb64"],["/blog/2014-08-04/one-page-idea.jpg","53ead5e5478c571b8568d02aa5975118"],["/blog/2014-08-04/some-time-in-the-future.jpg","921c14dac9dcbe5e6d5d9d0e6ecb5b90"],["/blog/2014-08-04/tom-intro.jpg","e99ee3c7c7045ea7afd58b320d66b3d7"],["/blog/2014-08-05/andi-smith.jpg","14b39c175a7dbc99447a97451f49f0ac"],["/blog/2014-09-08/jake-smith.jpg","8c4648b492cb74487fb1b3b6255903eb"],["/blog/2014-10-13/anthony-casey.jpg","21237b9f0244acbdc7990c72d583b6b4"],["/blog/2014-10-21/zeldman-call.jpg","1cd8767cf998224982c681dc0a9df04a"],["/blog/2014-10-21/zeldman-projector.jpg","d7bd21a05c0e708e162a3fefca26603b"],["/blog/2014-11-08/logos.png","331346f0034caf4f330ad72ae9c6a4a8"],["/blog/2014-11-19/howcleanisengland-ss-01.png","ca3398958f4a99ec5cac4821cfdb6e4e"],["/blog/2014-11-19/howcleanisengland-ss-02.png","60d3f1d21466ee446cb6b126cc1ae530"],["/blog/2014-11-19/howcleanisengland-ss-03.png","062654d938b6151643c6855c412ec716"],["/blog/2014-11-19/howcleanisengland.png","4af3a50bdc785c31bb93460077ede8ef"],["/blog/2014/01/02/mcrfred-11-ben-frain/index.html","c68492ceb2466f0e8296105b33a0042c"],["/blog/2014/01/04/flightdelayservices/index.html","48a64b5dae8ea272e34ec77778dcb6d8"],["/blog/2014/01/06/simonowendesign-to-s10wen/index.html","7d9a83dbe2ac7f1e0cfd454a90b1663b"],["/blog/2014/01/08/jonathan-stark-on-mobile-testing-devices/index.html","ad038a3e58be427e6c4dfa4dde6e4792"],["/blog/2014/01/12/lego-in-store-augmented-reality/index.html","46455e2e1e968d9d12413294e697a979"],["/blog/2014/01/16/manchester-wordpress-user-group-january/index.html","ffacee58629e5916ba0e916a49192c81"],["/blog/2014/01/18/mcrfred-2014-sponsors/index.html","9cd299adf0477e1a507f87540399320a"],["/blog/2014/02/09/mcrfred-12-joe-critchley/index.html","d864773ef8d25da90cb3fe6f1be00bc0"],["/blog/2014/02/09/mcrfred-13-patrick-lauke/index.html","2630c20da010c2b6cacabcb6d113aff3"],["/blog/2014/02/19/manchester-wordpress-user-group-february/index.html","d9be4f7d0148019e3a6530830f199558"],["/blog/2014/02/21/styling-svg-sucks-so-far/index.html","13ba0f053a95e6cb555e9293d3ff38d7"],["/blog/2014/02/26/mcrfred-t-shirts/index.html","91e5e2d4c7c471920a194fed961da34d"],["/blog/2014/03/01/should-dev-tool-themes-be-light-or-dark/index.html","7f18028ac3860d75b17a588a98da31dd"],["/blog/2014/03/04/gitbox-not-working/index.html","97a2014d2e9102a1d4a243bdb0a2f883"],["/blog/2014/03/04/jank-busting/index.html","552bbe428f09f0edf5c308f25bbffaea"],["/blog/2014/03/12/chrome-dev-tools-theming-with-zero-base-themes/index.html","3696e9dcefffb2cc816a8918a4e83847"],["/blog/2014/03/17/chillout-weekend-part-1-of-2/index.html","cb45c9d372fe9ba39b45c6a863d07b9a"],["/blog/2014/03/19/manchester-wordpress-user-group-march/index.html","f3592513604e14a17ad58ad67329a806"],["/blog/2014/03/24/lussostyling/index.html","d77ffffc9884d01cf75bb8d2ed2917b0"],["/blog/2014/03/24/mindreport/index.html","32e76b054a0fa966a19be2f23f478356"],["/blog/2014/03/26/chillout-weekend-part-2-of-2/index.html","212f5e9ff490bc9858a0bac3c3c393c5"],["/blog/2014/03/30/winstanley/index.html","6284d689f3e6faf3949c4ae7607faf5b"],["/blog/2014/04/05/mcrfred-14-dan-donald/index.html","c608f799fb7939a1cd7a86f624bb620f"],["/blog/2014/04/05/mcrfred-the-best-of-the-web-event/index.html","cca139f986e7ff202d171783b803a4d6"],["/blog/2014/04/16/manchester-wordpress-user-group-april/index.html","ff65f6c487c375fb5dbd11e8eae57304"],["/blog/2014/04/26/halo-2/index.html","5947c37eb68fec01f57d3ecbbb1b2136"],["/blog/2014/05/08/mcrfred-13-video-patrick-lauke-getting-touchy/index.html","c1980069c59b2f35b951d5fa08e0cfb0"],["/blog/2014/05/10/video-ben-frain-the-way-of-pragmatic-coding/index.html","0f61b4bf6abc077c5423aa56af880c0d"],["/blog/2014/05/15/rmri/index.html","366baf2d52e1d26578136e50c13e72b3"],["/blog/2014/05/21/manchester-wordpress-user-group-may/index.html","2e251aef52b542d3e2bdf1413985f74e"],["/blog/2014/05/24/mcrfred-15-simon-owen/index.html","56d919b29fed187e52a450340721fcb8"],["/blog/2014/05/26/halo-3/index.html","0a3834ef62657cb73bd78b7928ccd1b6"],["/blog/2014/06/15/remy-sharp-on-the-bits-behind-js-bin/index.html","80ef0f009c03b8f2c47dd2f84808ab94"],["/blog/2014/06/17/liverpoolveterans/index.html","24d9c97fa852c6c3d2b1b64b285252a1"],["/blog/2014/06/23/mcrfred-16-andi-smith/index.html","cd836eb11159b045e840a0bfa690f9a2"],["/blog/2014/06/30/amscreen/index.html","2209f7378e528a47655d7fa098c7becb"],["/blog/2014/07/05/mcrfred-15-videos-simon-owen-goes-over-a-recent-project/index.html","94a62d60b7f2fc564005cd4c6eaf5c19"],["/blog/2014/07/09/illustrator-svg-id-issue/index.html","2bad56dc05554f7b0189b8983112896f"],["/blog/2014/07/16/manchester-wordpress-user-group-july/index.html","7a3c4551b0fb5c880e10cb93ddce3b7c"],["/blog/2014/07/22/output-ls-contents-of-a-server-directory-using-bash/index.html","e02a9292ea1825b24fecd5d7f76f3f7b"],["/blog/2014/07/24/creating-music-with-clojure-and-overtone-with-chris-ford/index.html","a1f730d3e57169b46e2da5b09e775d55"],["/blog/2014/07/24/getting-started-with-clojure-and-overtone/index.html","586034dfd287053d1cb354fd0660f8ea"],["/blog/2014/07/29/illustrator-svg-layer-1-id-issue-take-2/index.html","b9d4e77aefeb7aabdea352f8bf792707"],["/blog/2014/08/03/mcrfred-17-bruce-lawson/index.html","d20b877fdeba079e311881f63eeeb686"],["/blog/2014/08/04/ux-is-everyones-responsibility-with-tom-bradley/index.html","8d809926ca54ee6ffbc733c6795fb08e"],["/blog/2014/08/05/mcrfred-16-videos-andi-smith/index.html","d7a6c62af6bf42c95a1be6581389f63e"],["/blog/2014/08/20/manchester-wordpress-user-group-august/index.html","5cd7dfef3576810ef2b8c8a925cd02a1"],["/blog/2014/09/08/mcrfred-18-jake-smith/index.html","27c82d700cd810ec009aeeb5dcb6efcd"],["/blog/2014/10/13/mcrfred-19-anthony-casey/index.html","5292a78e2b80bedb006fd5b1ceaa793a"],["/blog/2014/10/21/jeffrey-zeldman-and-andrew-clarke/index.html","1d45d04bc3f280f9436454c336387948"],["/blog/2014/11/01/mcrfred-20-lightning-talks/index.html","7319a19ae0897b017c22fca8afadbf69"],["/blog/2014/11/08/mcrfred-21a-and-21b/index.html","ea06a1f8ed8942ca10eb93acc9eb3280"],["/blog/2014/11/15/front-end-north-2014-slides/index.html","7d25ecdcdbc4aa8767748fa23b38f9b3"],["/blog/2014/11/16/front-end-north-2014-notes/index.html","6712fe7a7d21ff490b6bb5f6f5d8ee6a"],["/blog/2014/11/19/how-clean-is-england/index.html","243c7a73f528e270ededadfbcd157176"],["/blog/2014/11/19/manchester-wordpress-user-group-november/index.html","095f07816247a659ac7dfbe28564ff05"],["/blog/2014/12/06/mcrfred-2015-call-for-speakers-and-sponsors/index.html","ac27f98d97e6a8f691bb3f83caea2d3b"],["/blog/2015-01-09/barry.png","700887f5b06f857f79b7efc85d16034a"],["/blog/2015-01-09/rick.png","702da6982c82dc06030858a86eb641c3"],["/blog/2015-04-22/ctilogo.png","6101fae7aca403b103e043d68276db52"],["/blog/2015-06-01/tom-pearson.jpg","8e574df6edc772e597bd6fa1f874b280"],["/blog/2015-07-13/glynn-bird.jpg","93415497ed804edd99487437d473882f"],["/blog/2015-08-11/katie-fenn.jpg","1f1530d20f341cb3678ff3d27c243a06"],["/blog/2015-09-03/nathan-langley.jpg","623241caf04d48313e85168c296d86a2"],["/blog/2015-09-03/paul-jardine.jpg","eda4fe3dff4331e02760c9ec9065b223"],["/blog/2015-09-03/phil-lennon.jpg","9dcb59d78135d1b1177ae1acdb750edd"],["/blog/2015-09-03/rachel-shillcock.jpg","f94be52a543fb2ad9b8a2f5c172dea6b"],["/blog/2015-09-03/rich-higgins.jpg","42326a80656bf5bf85a80268b2f14410"],["/blog/2015-11-02/ben-frain.jpg","726bb4e0938aa741cd62742205705e47"],["/blog/2015-12-07/s10wen-https.png","fbc2bca0a28a55faf6d15d3748fe8757"],["/blog/2015/01/09/mcrfred-22-user-experience/index.html","499a0f80601d3507f65849e5c542368b"],["/blog/2015/01/10/gym-and-diet/index.html","0e83688a0868055d7db5e9af27d7db58"],["/blog/2015/02/02/confconf-notes/index.html","9e157e6402c64865687a8f3b87928e39"],["/blog/2015/02/08/mcrfred-23-a-practical-journey-to-web-components/index.html","c28a086460183a2455757c268e32a38e"],["/blog/2015/02/08/mcrfred-24-a-day-in-the-life/index.html","93efa56883b486b0cc39c46eb0546181"],["/blog/2015/04/14/mcrfred-25-andi-smith/index.html","2375edc7f6553c3b24bb3f259497f12b"],["/blog/2015/05/08/mcrfred-26-codepen-special/index.html","cc8894ec24a9c55eb881a56b8fbc54b1"],["/blog/2015/05/21/illustrator-svg-hidden-layers/index.html","4e56c2fd5282602f9b17ff269738ecf7"],["/blog/2015/05/25/chrome-gradient-overlay-issue/index.html","433d5484a6547e148a0ec812a107caaa"],["/blog/2015/05/31/mcrfred-26-codepen-special-was-a-blast/index.html","b2bd5f05ac3bbf1f5b7fc29b538a0516"],["/blog/2015/06/01/mcrfred-27-tom-pearson-making-tools-for-journalists/index.html","73323e847e22ac3a9690928db5ea5421"],["/blog/2015/06/23/chrome-dev-tools-quick-jank-debug-and-fix/index.html","57d9b103fc79e12988163348e8f14bbe"],["/blog/2015/06/28/first-hexo-post/index.html","9f6bf00f0174db966432cf5fe6589ddf"],["/blog/2015/07/10/A-quick-note-on-writing-website-amends/index.html","31830ff5269cfd0db0b879aca47cb393"],["/blog/2015/07/13/mcrfred-28-offline-security/index.html","a87ff252b67bc1328615ba20d8cc949f"],["/blog/2015/08/11/mcrfred-29-katie-fenn-on-chrome-dev-tools-and-measuring-css-with-parker/index.html","a127588877fcfb7fac667e9f75250be1"],["/blog/2015/08/15/post-SVG-Icons-Sublime-Text-Package/index.html","f62875a95088e5202f7d1cb7d95d716a"],["/blog/2015/09/03/McrFRED-30-Freelance-Special/index.html","0ab5ed9b3e5569ad58d29ed836e18f86"],["/blog/2015/09/18/footime-s10wen-pretending-jamie-oliver/index.html","e42c0bbbfead25a66e75ee04f84f949a"],["/blog/2015/09/26/footime-x2-s10wen-pretending-jamie-oliver/index.html","cf9772346d87d5e04319436bb02c6e2f"],["/blog/2015/09/26/mcrfred-29-katie-fenn-on-chrome-dev-tools-and-measuring-css-with-parker-videos/index.html","d7e16cf703a6f55943786c9eee4ee3a5"],["/blog/2015/10/10/upfrontmini-2015/index.html","6160ae53c3cc7b661d73c43682e4cfc5"],["/blog/2015/10/17/indie-game-the-movie-my-attempt-at-making-a-game/index.html","569edd5c9db911b3fc4dd6df628b9add"],["/blog/2015/10/18/getting-ready-for-mount-toubkal-october-2015/index.html","f76504e9ff6fd224d00d06dd7721ee23"],["/blog/2015/11/02/mcrfred-32-ben-frain-architecting-maintaining-large-scale-css-codebases/index.html","ab81f53d616d4d9f7520aedda4c334b4"],["/blog/2015/11/07/ffconf-2015/index.html","20c27cfc725778001b7b859610ef1579"],["/blog/2015/11/10/mcrfred-33-christmas-social/index.html","b1d156ec4076f039ee73c770547cf064"],["/blog/2015/12/07/free-simple-https-github-pages-cloudflare/index.html","fe3fada27e5249ba0d1c65d5c74b4d2b"],["/blog/2016-01-12/damien-seguin.jpg","88c95c8692e382e78b0e8f54c8e9b503"],["/blog/2016-01-22/carbon-creative-sites.jpg","43397f301f664997fb10541cff680943"],["/blog/2016-01-22/carbon-present.png","7cc52c10c33004919acf14fc7334d943"],["/blog/2016-01-22/carbon-team.png","49dbc87c3bbe7a526e2119a3eb42179d"],["/blog/2016-01-28/paul-irish-mcrfred.jpg","8eb9aa3ff006ee3a003292038c2addee"],["/blog/2016-01-28/together-with-google-developers.png","0353bf1722b2fb8891592157df5055f1"],["/blog/2016-03-04/branny.jpg","a13926d87bfa5e7bdab2ac268858dc43"],["/blog/2016-04-18/barney-scott.jpg","29deb6c603c9486877bd125aa59f74d6"],["/blog/2016-05-23/upfrontconf.png","b869c2f45a3e597ddcde8478fd053534"],["/blog/2016-06-07/tristan-ashley.png","fab57f3f882261806775e166e03698de"],["/blog/2016-08-30/what-comes-next-is-the-future.png","ffee9e6fda2c8b27d7facc5ed1b05472"],["/blog/2016-09-20/mike-hall.jpg","9ae1abdf050daa967e36f657179ce5d0"],["/blog/2016-10-31/dan-hett.jpg","1422430052a40e5781218c958f35f997"],["/blog/2016-11-24/jamie-murphy.jpg","52d8522115474974796c2ca2a396bd6d"],["/blog/2016-12-19/mike-byrne.png","fe423a23371bd52eab21161a6d6e3137"],["/blog/2016/01/12/mcrfred-34-damien-seguin-from-unit9/index.html","0d051431b173e79b35caea9aa1b2ade5"],["/blog/2016/01/22/last-day-at-carbon-creative/index.html","594dc6d4d44ad2f8a79b9128469305b4"],["/blog/2016/01/27/the-benefits-of-having-a-clean-error-free-codebase/index.html","d54de0d5c39bfb00d6dac757c263dd47"],["/blog/2016/01/28/mcrfred-together-with-google-developers/index.html","ba493927024db788d718ef7571e3cdcc"],["/blog/2016/02/18/mcrfred-35-lightning-talks/index.html","d47169fbf705b98e591ffcb7cd53b7f4"],["/blog/2016/03/04/mcrfred-36-andrew-brandwood-from-code-computerlove/index.html","ed492d3dce39b0e69b13bbaede232521"],["/blog/2016/03/17/smashing-conf-2016/index.html","cd1aeb884194f000518bb5828add8faf"],["/blog/2016/04/18/mcrfred-37-barney-scott-from-code-computerlove/index.html","b2fcd9f99b4973776dc7212a285303fc"],["/blog/2016/05/23/mcrfred-38-upfrontconf/index.html","a8ad6e6646d5a8b8a7330f86b066337e"],["/blog/2016/06/07/mcrfred-39-tristan-ashley-css-processors/index.html","f0d10db6bcf8e152942515f48d840f99"],["/blog/2016/07/13/mcrfred-40-google-progressive-web-apps/index.html","7135fdbc6307470dd199cb90c18414cf"],["/blog/2016/08/11/mcrfred-41-simon-owen-developer-workflow/index.html","4d1b4df477b1bd438f89fd07a15c5d9d"],["/blog/2016/08/30/mcrfred-42-what-comes-next-is-the-future-screening/index.html","a7c47860ca3ac7f77c98b48f4ded41b2"],["/blog/2016/09/13/resources-for-learning-javascript/index.html","a309c3ffe33a938917530eba02e36f4f"],["/blog/2016/09/20/mcrfred-43-mike-hall-streaming-ftw/index.html","b22fbd6e3100b95e7e70f6f6ebfe26c1"],["/blog/2016/10/04/takeaways-from-frontendnorth/index.html","e85a866d3723c6a2f1f82eab004a30cd"],["/blog/2016/10/05/naming-convention-ideas-for-CSS-classes/index.html","2f027254245caebfb66685b7fe6ce62b"],["/blog/2016/10/28/mcrfred-44-christmas-social/index.html","09e9f5013b2ffc75f1d60ac8db74cfd4"],["/blog/2016/10/31/mcrfred-45-dan-hett-unplugged/index.html","ee4b44ea99f178173c220911bb79a564"],["/blog/2016/11/24/mcrfred-46-jamie-murphy/index.html","2bb77a0279c6292ec33a6ddc1b2daf24"],["/blog/2016/12/19/mcrfred-46-mike-byrne/index.html","75e6ccecfaae9b9afcf0446cbf601233"],["/blog/2017-01-30/digihike.jpg","007161b3d730e9d64a739cf7ad7775f4"],["/blog/2017-04-06/frank-fenten.png","f05831416b4b43050780e93fca785ceb"],["/blog/2017-05-09/matt-claffey.jpg","e434342eae289cec2d5bf6b222166342"],["/blog/2017-07-17/alex-lakatos.jpg","920e6c75279617b25133f21a4ed9268c"],["/blog/2017-07-17/rich-higgins.jpg","0f23e18f3e57fa8ccca7c4aceb43d692"],["/blog/2017-09-21/iphonex-after.png","c156c7906a3fbf4d831b3d4cae197ca6"],["/blog/2017-09-21/iphonex-before.png","f1e170d8146a71215ce6a494f0e87007"],["/blog/2017-12-22/thg.jpg","b98b98ddb1e38b52b8aaea5f1d209b9a"],["/blog/2017/01/30/digihike/index.html","6181049925b05b92acf42b2d174fef1f"],["/blog/2017/02/14/mcrfred-47-simon-owen-samantha-rogulska/index.html","e9add8a7e6152d5fe0955c7ccf64be1c"],["/blog/2017/03/10/mcrfred-48-codepen/index.html","38d639433f180efc6a1397a2fd58034b"],["/blog/2017/03/31/mcrfred-48-codepen-monkey-island-cause-effect/index.html","deb5445bb4e0261ada4eb4699569ca76"],["/blog/2017/04/06/mcrfred-49-frank-fenten/index.html","fb5584add3d42071016998fc7aac18a9"],["/blog/2017/05/09/mcrfred-50/index.html","299453eea9c4e3d95ec83ed0aee87631"],["/blog/2017/06/06/mcrfred-51-mike-byrne/index.html","2f4b43814d877959fc5f4ee2dfff3e36"],["/blog/2017/06/26/google-web-community-leads-summit/index.html","c2dc5d70422392f85be6b6645932e945"],["/blog/2017/07/17/mcrfred-52-alex-lakatos/index.html","05823e6356d72a68c42f3353042cae33"],["/blog/2017/07/17/mcrfred-53-rich-higgins/index.html","09165e13f420aaf2bbe13012756bd350"],["/blog/2017/07/17/mcrfred-54-rapidfire/index.html","1708d15ffb305bc1806575988298fd23"],["/blog/2017/07/24/mcrfred-55-freelance-special/index.html","faced259d53d288f0b1caf810ff0540a"],["/blog/2017/08/11/fuji-xe2-quick-shortcuts/index.html","cf83d05cd7288a5044698029d1a69c03"],["/blog/2017/08/11/updating-firmware-on-fuji-xe2/index.html","f9d848c555e6ea4e76de79bee30d02f0"],["/blog/2017/09/21/fix-the-white-bars-in-safari-on-iphone-x/index.html","c96296c9c6114cd9936b26581f7f3f54"],["/blog/2017/11/24/simon-owen-manchester-based-freelance-front-end-web-developer/index.html","3c562fa1fb3224b41631aebe2c014652"],["/blog/2017/12/06/mcrfred-workshops/index.html","a53000fd6fc5fdf5e8413dd320c8a200"],["/blog/2017/12/22/last-day-at-thehutgroup/index.html","f427bc366a6983f1c79fecd833b99aad"],["/blog/2018-01-08/jo-franchetti.jpg","e5ca1ad26157a68ca3ce79234b40690d"],["/blog/2018-01-08/s10wen-studio.jpg","67f96b1fd5aa4e0ea3d96de3aadc3724"],["/blog/2018-01-24/simon-owen-todd-gardner.png","2b35bcf0d3ebcfffb7c594137d17ce3d"],["/blog/2018-01-30/article.png","49187e5ca3526fe6900d1658ae031426"],["/blog/2018-01-30/photo.png","ac8241193fbada5bc87155daa3dfb6b7"],["/blog/2018-02-01/gmail-filters.png","e65d638bd34457db7061864348c0c9bf"],["/blog/2018-02-01/simon-owen-jo-frank.png","717a3c73bc4c9dc70d42cb934905dc31"],["/blog/2018-02-05/chris-mills.jpg","cdd2a264865c028f4f721b5d5b21679d"],["/blog/2018-02-22/hyper-island.png","41d21f85eca2ac33828a7b4b0197a5bc"],["/blog/2018-03-02/dylan-schiemann.jpg","d3db04197022da2bbff00526368ec67d"],["/blog/2018-03-10/mccann.png","3beff56f317a1ad82277779843b533c6"],["/blog/2018-05-04/phil-hawksworth.jpg","9f352fc282616c7af72eee28e6a8c05b"],["/blog/2018-06-18/gareth-chidgey.png","833123bcaee5f2b07003971888136539"],["/blog/2018-07-26/statesupply-active.png","620c98fce1ba46c30a9f00c557990632"],["/blog/2018-07-26/statesupply-balsamiq.png","c490b3dc530537145f290b666b669023"],["/blog/2018-07-26/statesupply-beanstalk.png","633af0eafafbbe0cb349fb2a534f3d3c"],["/blog/2018-07-26/statesupply-google-sheets.png","a1805f6b25dbf11211aa41de22ac9259"],["/blog/2018-07-26/statesupply-screencast.png","33ccaf80e9e6eb50a3f49c26519ef427"],["/blog/2018-07-26/statesupply-screenshot-01.png","05091919fbfcd9a01d16b1d84da97720"],["/blog/2018-07-26/statesupply-screenshot-02.png","7b56274019399b81dfd57f3c86a5f9d6"],["/blog/2018-07-26/statesupply-trello.png","e410e43b131e766207f661463d67963d"],["/blog/2018-07-26/statesupply-zeplin.png","72bef65b26632f43eb786edfbd2943e8"],["/blog/2018-07-26/statesupply.png","92432d74bd2360aa15b543a12ea1a535"],["/blog/2018-08-04/best-communication-award.png","b6c5ffe7769921a9c507ca51bd989cd5"],["/blog/2018-08-04/telux-invosys.png","4343ef78845e3b383a11bfb47acab467"],["/blog/2018-12-06/00-BONUS-quicktime.jpg","75ed232852875a811e0a1fa4ed6c12c8"],["/blog/2018-12-06/01-xcode.jpg","f647ce2ca84d63024bb415206a4804fa"],["/blog/2018-12-06/02-updates.jpg","28ec867f98456ebcdd0f1b09ef405e93"],["/blog/2018-12-06/03-xcode-license.jpg","4c57d699083e34cf577cb194b3b30bd9"],["/blog/2018-12-06/04-command-line-tools.jpg","f6050dd3e5c8d6b66646db5308c01e95"],["/blog/2018-12-06/05-BONUS-screencast-keyboard-mouse.jpg","67668e24468b0fc52c646062ec8d0361"],["/blog/2018-12-06/06-homebrew.jpg","facbe45bc25bfc3a2209cdb888761ccc"],["/blog/2018-12-06/07-homebrew-git-node.jpg","9a85f3d1c9ce5d7b07ff17ed53f1bdde"],["/blog/2018-12-06/08-casks-install-apps.jpg","9ac7d4b2535a5446f819919a3ac7f53a"],["/blog/2018-12-06/09-casks-install-github-desktop-warnings-and-errors-in-terminal.jpg","e111421cc353e5122156e013b259ca40"],["/blog/2018-12-06/10-apps-intro.jpg","955234ecb97441b0060802d96508ee09"],["/blog/2018-12-06/11-apps-alfred.jpg","3c6d4a989fcafbb2dffa13633ccd3ba8"],["/blog/2018-12-06/12-terminal.jpg","92ac23d4f0d23109d5c251437a5ceb70"],["/blog/2018-12-06/13-BONUS-dropbox-wallet-key.jpg","b03a65741c33e4d6503637dba44aa550"],["/blog/2018-12-06/14-bash-dotfiles.jpg","29aecf1e533c78f5ca7834ee2f6d711a"],["/blog/2018-12-06/15-bash_prompt.jpg","9b59cd38fe19b1a308ef13c13462dbed"],["/blog/2018-12-06/16-bash_prompt-the-dude.jpg","6fb2d4cca81ce954137626b64bd83f7e"],["/blog/2018-12-06/17-path.jpg","daceba4ecb7b8f3bb4e62201db64ea71"],["/blog/2018-12-06/18-BONUS-exports.jpg","04808a68933f529d12d852e520ce11e2"],["/blog/2018-12-06/19-aliases.jpg","e71ba66c9870a4ee73cb829a5ca812ce"],["/blog/2018-12-06/20-functions.jpg","6a6c8b037dc93adaab47fa84c69ae276"],["/blog/2018-12-06/21-extra.jpg","a44946b8f3fc46882eeb36e949373e54"],["/blog/2018-12-06/22-BONUS-alfred-app-fix.jpg","3fa4dd29a2a818cdc7be5b43584e7e6f"],["/blog/2018-12-06/23-editorconfig.jpg","aac57ffacfc1707c1e488e2896b0329b"],["/blog/2018-12-06/24 gitconfig.jpg","662bd3ccc2ad078f100fc784ca9baaf9"],["/blog/2018-12-06/25 gitignore.jpg","e02e211f3838e4ab416300ffda2925d3"],["/blog/2018-12-06/26 macOS intro.jpg","f891636cdde3da712981b4993a784634"],["/blog/2018-12-06/27-BONUS-mysql-install-geekdom.jpg","5695826ecffff51ef7811eac162124dc"],["/blog/2018-12-06/28-macos-ui-ux.jpg","04c4dd9be20ac880499871b8380173a5"],["/blog/2018-12-06/29-ssd.jpg","fdaa3de95186a444f9a4d2f2177aa249"],["/blog/2018-12-06/30-trackpad-etc.jpg","3dc176216758fdc796ba3ab6acd0075b"],["/blog/2018-12-06/31-screens.jpg","8aa74d5a2876a32a71e6d9b9d002a092"],["/blog/2018-12-06/32-finder.jpg","aac57ffacfc1707c1e488e2896b0329b"],["/blog/2018-12-06/33-BONUS-photos-activity-monitor.jpg","9d724b3f076d462696f4bb195430ef41"],["/blog/2018-12-06/34-dock-dashboard-corners.jpg","dc0a9970675ca05588060b4227b742b8"],["/blog/2018-12-06/35-safari.jpg","0d2c22af8cb29d4553d93a5c26559838"],["/blog/2018-12-06/36-iterm.jpg","70f8c95d084a4b2bf3d2a5c00f6e23f6"],["/blog/2018-12-06/37-activity-monitor.jpg","5722ffb4df7f8c1ec9817cd68481f7b0"],["/blog/2018-12-06/38-textedit.jpg","a9f94d1b381d6c9e82328b09334377fa"],["/blog/2018-12-06/39-chrome-canary-opera.jpg","79ec25497c1ffcb55538174d8ea788b9"],["/blog/2018-12-06/40-spectacle.jpg","91ec00f8332c383bba8e9474d41c980a"],["/blog/2018-12-06/41-macos-start-finish.jpg","78532637c13f226bfe9eb973f898d32e"],["/blog/2018-12-06/42-running-dotfiles.jpg","ef08ef77b2b948f6e9fa912c453dbe99"],["/blog/2018-12-06/43-BONUS-rupa-z.jpg","c0209075365078f209a571720f1458e0"],["/blog/2018-12-06/44-running-dotfiles-restart.jpg","398407e8bbf56e2c742122c8904230f1"],["/blog/2018-12-06/45-after-restart.jpg","961c752bd1d824675e2d24575f469f91"],["/blog/2018-12-06/screencast-header.png","35da95bf83c40139e3a988b9df088e5b"],["/blog/2018/01/08/first-week-freelance-front-end-developer-manchester/index.html","415a437046d9105aedccac4341b13e49"],["/blog/2018/01/08/mcrfred-56-jo-franchetti/index.html","2e046cdc212f674964b14cacbed42d45"],["/blog/2018/01/24/takeaways-todd-gardners-talk-the-developers-guide-to-promoting-your-work/index.html","034c782d580f9bf6f132254b1bf3d6a4"],["/blog/2018/01/30/front-end-developer-workspace-net-magazine/index.html","26471c514ed1f2c4a9b3beed2bd5a13c"],["/blog/2018/02/01/first-month-freelance-front-end-developer-manchester/index.html","f82251bcadf675b9aa7df1404851cab9"],["/blog/2018/02/05/mcrfred-57-chris-mills/index.html","05415c3858c2c6cced58a482466b94cd"],["/blog/2018/02/22/new-home-mcrfred/index.html","40595eb539746cf7d8480308570e4631"],["/blog/2018/03/02/mcrfred-58-dylan-schiemann/index.html","3ff45cae50541af699dbd5154858fe15"],["/blog/2018/03/10/case-study-mccann/index.html","68725a534392620189226dd0cf378be1"],["/blog/2018/04/18/mcrfred-59-autotrader/index.html","02bf17a9daaeefc07a348498f76b293d"],["/blog/2018/05/04/mcrfred-60-phil-hawksworth/index.html","c6f4e3984f2298ebf88621bb8dfe42c8"],["/blog/2018/06/18/mcrfred-61-gareth-chidgey/index.html","349006b8e85bf93a9a4a4ec62f52b3d1"],["/blog/2018/07/01/mcrfred-62-andrew-betts/index.html","746c3abe19447a1c165a3020234611a4"],["/blog/2018/07/04/web-community-leads-summit/index.html","88b5bf1e8abafeb920dc83bce345adb0"],["/blog/2018/07/10/first-six-months-freelance-front-end-developer-manchester/index.html","d8abf89c063c28e8ec5a808473aba6b7"],["/blog/2018/07/26/case-study-state-supply/index.html","631795b2edeb00fcb02e333926d99efb"],["/blog/2018/08/04/case-study-telux/index.html","8ad212c30b8766a1af1c2a656dd48773"],["/blog/2018/08/17/mcrfred-63-show-and-tell/index.html","de39303e883d6a61c5ce4c9cdb2c96c8"],["/blog/2018/08/29/mcrfred-64-doug-sillars/index.html","07033cdf49cc8bddbf8a97a513af1ca3"],["/blog/2018/09/12/old-school-web-development-techniques/index.html","7b6e4291baa113b41f6db05991cc3a6b"],["/blog/2018/09/26/virtual-box-brew-install-error/index.html","52778eb7370f44a6c165c23cec460561"],["/blog/2018/10/05/mcrfred-65-halloween-special/index.html","6eda28bbe36f83f28c077393359a468f"],["/blog/2018/11/13/mcrfred-66-matt-claffey/index.html","aff8fcbd00720b453565c08f947ac240"],["/blog/2018/11/21/mcrfred-67-christmas-social/index.html","92470a3863f82c487fd9689348a28ccd"],["/blog/2018/12/06/development-environment-machine-setup-screencast/index.html","277b3cf11319acbddcd6c1a250f33987"],["/blog/2019-01-01/s10wen-studio-2019.jpg","e252dfef09338a057f650a3e15c6507c"],["/blog/2019-02-07/site1.png","07f617fe4f48adcfc59c6684815b4dd0"],["/blog/2019-02-07/site2.png","07f617fe4f48adcfc59c6684815b4dd0"],["/blog/2019-02-07/site3.png","9e7fec67dabb09df5458b110d6e9385e"],["/blog/2019-02-07/site4.png","b9e181e6d5eaffe05748d20eadc798a0"],["/blog/2019-02-07/togethertrust.png","18f3270fa5f1877775957431e433a50d"],["/blog/2019-11-14/phillip-whittaker.jpg","f83f4e6eb57a8f8e4c93dcb67a7f5c8b"],["/blog/2019/01/01/first-year-freelance-front-end-developer-manchester/index.html","88841ed7f05cb53e0d231c622877950e"],["/blog/2019/01/04/dev-tips-365/index.html","3057ca5abdb5767629463ead719f0dc3"],["/blog/2019/01/20/mcrfred-68-simon-owen-dotfiles-screencast/index.html","b21a22b7445567fae7c59f7e1cd1fdac"],["/blog/2019/02/06/consistent-css-class-naming-convention/index.html","11f4eb4172b09b722284f101058d7ba0"],["/blog/2019/02/06/my-take-on-oocss-smacss-bem/index.html","7d4ff3166de75d16b5f3d3e685196722"],["/blog/2019/02/07/case-study-together-trust/index.html","fbf5ddc324211af4e7a8283aa469a3c6"],["/blog/2019/02/12/mcrfred-69-mike-masey/index.html","0e947faef583180318352020751374b2"],["/blog/2019/03/22/mcrfred-70-alex-clapperton/index.html","91690e51146015c64715abbcff665194"],["/blog/2019/04/16/mcrfred-71-joseph-allen/index.html","413f974d217671abcb9f6c8e6dbabc49"],["/blog/2019/04/22/custom-domain-name-with-netlify-123reg/index.html","f02abcc18a4af04660c90b3134afe995"],["/blog/2019/05/10/perfect-developer-job-role/index.html","e4d0153beee449ab09477cf4beb46f36"],["/blog/2019/05/25/mcrfred-72-show-and-tell/index.html","9a554bf39da1892c6e513df782a0917d"],["/blog/2019/05/30/mcrfred-73-andy-carter/index.html","6d9a7e697039a0bc4143b46bfd78daeb"],["/blog/2019/06/05/mcrfred-74-chad-gowler/index.html","892b6f072c649a344fa23cb5d1c86a84"],["/blog/2019/09/23/mcrfred-75-chad-gowler/index.html","19aa4229fda4fe067618f94567cc2f49"],["/blog/2019/10/19/mcrfred-76-cathy-dutton/index.html","69f754dcc71b2ee6ea863d265ad29905"],["/blog/2019/11/14/mcrfred-77-phillip-whittaker/index.html","f26e930dabfe70095669db6af593e1a7"],["/blog/2020/01/16/mcrfred-78-david-swallow/index.html","3b53d6820ad93dcbe475592cb5c3bcb9"],["/blog/2020/02/11/mcrfred-79-rich-higgins/index.html","51c8423837390b93b162267b7da3d2f4"],["/blog/categories/apple/index.html","79b113bf8af1cceeb1af8aaa4b201f43"],["/blog/categories/bash/index.html","3b45c49334fc41b5d2207c0a8dd60964"],["/blog/categories/browser/index.html","eff62d134a8734c15a61f744aec98cd3"],["/blog/categories/case-study/index.html","c7211e75c87bda091f56b2a006bac654"],["/blog/categories/chrome-dev-tools/index.html","0c2fa4b45ca29ecb49e63db2dbb12c45"],["/blog/categories/chrome/index.html","dc5ecbda5d9e8ea43c97bc4a3f70fab3"],["/blog/categories/clojure-overtone/index.html","c25a475777900df3e2fea96136f24bae"],["/blog/categories/conference/index.html","a378774c43c45dd2686b4b2ca497ddcd"],["/blog/categories/css/index.html","4105e4371492082987beb669a1bea0ce"],["/blog/categories/dev-tips/index.html","17a3022080ec929a76c13daf53093d3b"],["/blog/categories/digihike/index.html","e5e2127f0e866be47e3027dd9a120b6e"],["/blog/categories/dotfiles/index.html","7220e2d85e2251e734d8fb41839f555f"],["/blog/categories/event/index.html","bcf9d112f3de59f28c291a43aa2a3462"],["/blog/categories/ffconf/index.html","1297e5c556855d3569d1a6bfcc27989e"],["/blog/categories/freelance/index.html","8c73145c400f35cdf659153f6c89aff0"],["/blog/categories/gaming/index.html","af8a16dedc57e1aa4f42434cd56b5714"],["/blog/categories/health/index.html","f6c47656bcaf166b343e83542b6e3aaf"],["/blog/categories/hexo/index.html","126f648905c3d0c0232ee3efd7e12841"],["/blog/categories/https/index.html","3a1c304220afc515fd81fa712783339e"],["/blog/categories/jank/index.html","93efc0543d17bb71c359a6b9f746175e"],["/blog/categories/javascript/index.html","0530405cf686b288fe8ea631455da48f"],["/blog/categories/jobs/index.html","5c61b6cf88a8fe609ad7d0f8f63e743b"],["/blog/categories/lego/index.html","1b7db33fabc6ef2006828b0b40b0b2fc"],["/blog/categories/mcrfred/index.html","2afb9506889564d0d54efb99f8139d87"],["/blog/categories/nux/index.html","e1e8ed6a26286e18ada33f365ce2478f"],["/blog/categories/octopress/index.html","b2d68ca06304e9e72641b86494c1a353"],["/blog/categories/photography/index.html","d1f1ff490c283161e978688c0d408306"],["/blog/categories/raspberry-pi/index.html","ba306ba373b8fc6d4ec4905628e24044"],["/blog/categories/responsive-web-design/index.html","0be7620269f51129731adab307084c8b"],["/blog/categories/sass/index.html","772e89d0d0546851dd25cb6c61315990"],["/blog/categories/screencast/index.html","7e01efd6f229d618a42d92337ba8760b"],["/blog/categories/speaking/index.html","e798e7a382c4de40d4123df81995d480"],["/blog/categories/svg/index.html","2e3275b59f4146303543e870db6f3918"],["/blog/categories/unplugged/index.html","c3e9c7fecbb64ce49bb60ec7c6c020fc"],["/blog/categories/upfrontconf/index.html","ed10f631c39482d194f894565b6feaa9"],["/blog/categories/web-development/index.html","1895d77df4f08932a4aabe83781e7f88"],["/blog/categories/webgl/index.html","ed1664fdf546413bba74aef4de60436e"],["/blog/categories/wordpress/index.html","64465b81b430a7753333a3e76f96fe9f"],["/blog/categories/work/index.html","b4ddb6bd310ae6135384a065235bd593"],["/blog/categories/workflow/index.html","7447b61a1d71c2f00b900abef5340ff2"],["/blog/logos/24pullrequests.png","8d3ba89edd50d0c4d3530540ad9395b3"],["/blog/logos/3qp.png","592d242ac637f057deabb9673b4cd005"],["/blog/logos/absolutemedia.png","5077ac526b6c12ceb02297dbce86909c"],["/blog/logos/autotrader.png","6071be0329d3cb3a3116e45f76a54e88"],["/blog/logos/bbc.png","bc1789037fe312c5334efa6a56ed80db"],["/blog/logos/brazly.png","69977f85f84e0657dafacca0e023c801"],["/blog/logos/carboncreative.png","8221a373c4892edb089aff5820fef922"],["/blog/logos/code.png","b84c3608002828c75c3269eb08686f46"],["/blog/logos/codepen.png","3f0a18fd685d26400aac10aead5715c5"],["/blog/logos/common.png","b07568009e27f66aa194fe1eba164c46"],["/blog/logos/css-tricks.png","2b7a521cd1b139ea0d58251e4c07219a"],["/blog/logos/ctilogo.png","00d165fb0e2fc41af594054a0a0c9408"],["/blog/logos/dept.png","4aa71de42c042417c60f264623926c3e"],["/blog/logos/desertfm.png","5bf4eb48c979884bdf818ff03c9a09ba"],["/blog/logos/devfood.png","2767aeebf993ba0a81db23cd2d78f447"],["/blog/logos/digihike.png","50bdda1a4419229f9380f8054a479c56"],["/blog/logos/farm.png","199080a29041462e7920a7b4271281f5"],["/blog/logos/firefox.jpg","f148a19b9c9d8fa7e11c987d97fc4b83"],["/blog/logos/fred.png","430202a30c323d8f737d6b2082945ed3"],["/blog/logos/frontendnorth2014.png","415bfd4306b0530c0b3736ef13e0b209"],["/blog/logos/github.png","413a9405dbec5aa6d98adfb837971c78"],["/blog/logos/google.png","11b5243c43b02eb77dd7122811803db4"],["/blog/logos/grayghostvisuals.png","c6c88f5b5167c5e9498acdf31001cd3b"],["/blog/logos/havaslynx.jpg","33d57c008c128b1a3ae36cc569781a66"],["/blog/logos/javascript.jpg","c28d88bbf4768664fc4d4cc2a026f432"],["/blog/logos/mccann.png","135c24d4a3a8955acae5cc35089a2a39"],["/blog/logos/mcrfred.png","31c8ee60e81466e2b72b8d396603e12c"],["/blog/logos/modernizr.png","14277675d0eb1375bac18d4fa7fd2b46"],["/blog/logos/oneiota.png","c24e3f70054d0d73f6091878e4971651"],["/blog/logos/opera.jpg","0f201806f08cb5c4b2e42440ca217ea9"],["/blog/logos/orchard.png","c8aa7574abbc4081d488fce7b1015172"],["/blog/logos/reasondigital.png","01c99389f85f5a388f5c9058c6580318"],["/blog/logos/smashingmagazine.png","31baeaf9a8f49aebc47c6f30736283d5"],["/blog/logos/speaktheweb.png","06a8cef982f3c6c1bbed046d38cf122a"],["/blog/logos/techhub.png","6993196945ba31b93a43922d7b6ba754"],["/blog/logos/telux.png","d6976c2a8a53f6195e8df24b1f1705a5"],["/blog/logos/thehutgroup.png","eaed4a810fe09a52d25655fdae997320"],["/blog/logos/tutsplus.png","5ab8a00bf821a469635610abfbb60fd4"],["/blog/logos/typeplate.png","5228204ec96e303e66485f7c69d11810"],["/blog/logos/upfront2015.png","c2664e068b053da4dbfa3bed6d5565e0"],["/blog/logos/wordcampmanchester2014.png","e817c645634d4c13246e2b175be51a3e"],["/clients/index.html","2d09cd35a3965e95a9035f678f2d14d8"],["/contact/index.html","3c195b100be2d07b48151e3e1cb08ce5"],["/css/650.css","6ebd284c8e57233dd1342ca8b8fde0b1"],["/css/760.css","f1e713e6209c61d8343bba84216f6eb4"],["/css/900.css","76ef5ad20f64b6842593eb0944fa91b7"],["/css/batman.css","b9fcf0b099b03f4de40a380e70751486"],["/css/critical.css","95ee34d2e86ad9a471cd8cc2918f617f"],["/css/style.css","2ede8b5959338528b59af791b8e1f705"],["/css/styleguide.css","45af1fd5b8518cb45279e25687ff44d3"],["/donate/index.html","de047c372e78a99a75879b2ef89dc241"],["/faces/index.html","955fc61c346d42502717b8ff07a435df"],["/favicon.png","b7beefc0b9efd4ab59511c8f793966be"],["/img/full-website-build.png","103db7034c5dda1ad92b9c41e96a6028"],["/img/header.jpg","2a6e114d8b84b5827dc8c3660331f01a"],["/img/icon-128x128.png","87f8654682922e22024b8c48b56fa031"],["/img/icon-144x144.png","df89747bc5312f9d335af7528c61de5d"],["/img/icon-152x152.png","f10e8a28a7d320898d08092688bcf27f"],["/img/icon-192x192.png","07445f6674f164519ec97edcc764c604"],["/img/icon-384x384.png","0daaadba8251d3d51c92cdab722c9a7c"],["/img/icon-512x512.png","53e88996946169e810bfcbbcc1eeb59e"],["/img/icon-72x72.png","4ba21fb49413b279d95a078e6f280d45"],["/img/icon-96x96.png","ec1709797e063b525dfae832276e9f99"],["/img/japan-talk.jpg","0790f2e03379217691ba891f91241c63"],["/img/monitor.png","7a59a9611e68e312643d31e485c39552"],["/img/mug-big.jpg","b0ed03b45d45ef51c2f553a5e4ca47be"],["/img/mug-head.jpg","16d6f5b4784d8da3c13fa9708a589467"],["/img/mug.jpg","16d6f5b4784d8da3c13fa9708a589467"],["/img/mug0.jpg","840f6b23ae4c55f47bd0d6ac3c910407"],["/img/mug1.jpg","0a8db6acb503db3ac94bf1f00f770de5"],["/img/mug10.jpg","57f4e675ccbc8829b7eb049088f41b53"],["/img/mug2.jpg","f9925f0837f8e42bbab25533c7ec73ad"],["/img/mug3.jpg","fb25739edde52bbdfb3d4ae45cd08390"],["/img/mug4.jpg","8f5e22e4a683b5d903e2d8ea186c3737"],["/img/mug5.jpg","13d2179b6192a27beb1cbe44f221e4d7"],["/img/mug6.jpg","75bcb82e2b67335030cbbb7093639982"],["/img/mug7.jpg","155af36a734cb04cbb2b685fd5940f57"],["/img/mug8.jpg","d439acecd80035c950b046c9e3e27fcb"],["/img/mug9.jpg","4b50f2ad7e25f43369a49052cfeaab8c"],["/img/styleguide.png","a503cc17887cca4a42646e24c47d9844"],["/img/workshop.png","768cb7d4d397c98620866f4ff980c33f"],["/index.html","05bd1806dc9383ea8cd4acfbf072f632"],["/js/sw-register.js","513231445679d6ee73ed4de6deb50342"],["/marple-websites/index.html","98dcca4cf45168554473615109fbc617"],["/mcrfred/coc/index.html","d6cbc6b06548dd2b21691356d9a77b8a"],["/page/10/index.html","4dffcfcb49598d006dcec0de5e674e5f"],["/page/11/index.html","9a2dcc0577e33a7e4d58e8179724e88f"],["/page/12/index.html","33067080a1f437a76a21f0c3bb118c9f"],["/page/13/index.html","aa827a45afa735c4f5742fec443b5771"],["/page/14/index.html","a800151ac0edbb27cbda4d81625b035d"],["/page/15/index.html","5db4e4b9f50660fdf391821694558d87"],["/page/16/index.html","7cc15b33930b39422af7af59ff0f3cc3"],["/page/17/index.html","f79b08dac6b46ba4b0eaebad252c616e"],["/page/18/index.html","b9da8e6036eeae6abdf8d4693ada73af"],["/page/19/index.html","d4c6a013a57dd47de263163bd854e112"],["/page/2/index.html","61903b7da258c26553022c2f429e3d0c"],["/page/20/index.html","6078a54557f052c36016134d9937efd6"],["/page/21/index.html","4f96f68a55f4eba07dc3882c18fc0ec7"],["/page/22/index.html","0bf05f08c3c628f14df7bf176ad2abbe"],["/page/23/index.html","1c7d952fbfc114430cdcbfe8238ac97b"],["/page/24/index.html","76fea3c2d5546b671a5c7692797c7ad6"],["/page/25/index.html","06a0fefe8dfef6053d7cc37598a7304f"],["/page/26/index.html","7177776f4852758b72c3bea3723e39e8"],["/page/27/index.html","47cca5f0d3c502897f57ddf229113689"],["/page/3/index.html","c58152ff6a56eed38868a9d9ffe4bba0"],["/page/4/index.html","333c53a1b01ce5bc131682b78276b4d7"],["/page/5/index.html","48f7f118589e311e6d68ffcfb16ed837"],["/page/6/index.html","1219ab4504dd835adcad933ebab65ac5"],["/page/7/index.html","803ed839b192d7619fc28df307b27129"],["/page/8/index.html","7c583f499f0ce2847f282958d7e95c2c"],["/page/9/index.html","ce5a2dea4536fd0e2baff9af71e3c1ba"],["/press-kit/index.html","a3f53cf611783e863be9d75df284beba"],["/reading/index.html","62032941cd9de68aa1a93dc871a041c8"],["/screencast-smashing-magazine/index.html","1284929cdcbfcd874be7fb58838537a8"],["/services/index.html","ed1166f43d79e0c466e386b00aa19530"],["/speaking/index.html","8312fc88e5a7f26420fe79a470e84078"],["/styleguide/index.html","1881069cdc091f7dce295ebdf567784a"],["/subscribe/index.html","a4114532dccf52f23625bab910cb1894"],["/thankyou/index.html","305e6ab239522ba71381966054b7d0b1"],["/work/index.html","4385d085150b89821420f54a6174e4cd"]];
var cacheName = 'sw-precache-v3-sw-precache-' + (self.registration ? self.registration.scope : '');
var ignoreUrlParametersMatching = [/^utm_/];
var addDirectoryIndex = function(originalUrl, index) {
var url = new URL(originalUrl);
if (url.pathname.slice(-1) === '/') {
url.pathname += index;
}
return url.toString();
};
var cleanResponse = function(originalResponse) {
// If this is not a redirected response, then we don't have to do anything.
if (!originalResponse.redirected) {
return Promise.resolve(originalResponse);
}
// Firefox 50 and below doesn't support the Response.body stream, so we may
// need to read the entire body to memory as a Blob.
var bodyPromise = 'body' in originalResponse ?
Promise.resolve(originalResponse.body) :
originalResponse.blob();
return bodyPromise.then(function(body) {
// new Response() is happy when passed either a stream or a Blob.
return new Response(body, {
headers: originalResponse.headers,
status: originalResponse.status,
statusText: originalResponse.statusText
});
});
};
var createCacheKey = function(originalUrl, paramName, paramValue,
dontCacheBustUrlsMatching) {
// Create a new URL object to avoid modifying originalUrl.
var url = new URL(originalUrl);
// If dontCacheBustUrlsMatching is not set, or if we don't have a match,
// then add in the extra cache-busting URL parameter.
if (!dontCacheBustUrlsMatching ||
!(url.pathname.match(dontCacheBustUrlsMatching))) {
url.search += (url.search ? '&' : '') +
encodeURIComponent(paramName) + '=' + encodeURIComponent(paramValue);
}
return url.toString();
};
var isPathWhitelisted = function(whitelist, absoluteUrlString) {
// If the whitelist is empty, then consider all URLs to be whitelisted.
if (whitelist.length === 0) {
return true;
}
// Otherwise compare each path regex to the path of the URL passed in.
var path = (new URL(absoluteUrlString)).pathname;
return whitelist.some(function(whitelistedPathRegex) {
return path.match(whitelistedPathRegex);
});
};
var stripIgnoredUrlParameters = function(originalUrl,
ignoreUrlParametersMatching) {
var url = new URL(originalUrl);
// Remove the hash; see https://github.com/GoogleChrome/sw-precache/issues/290
url.hash = '';
url.search = url.search.slice(1) // Exclude initial '?'
.split('&') // Split into an array of 'key=value' strings
.map(function(kv) {
return kv.split('='); // Split each 'key=value' string into a [key, value] array
})
.filter(function(kv) {
return ignoreUrlParametersMatching.every(function(ignoredRegex) {
return !ignoredRegex.test(kv[0]); // Return true iff the key doesn't match any of the regexes.
});
})
.map(function(kv) {
return kv.join('='); // Join each [key, value] array into a 'key=value' string
})
.join('&'); // Join the array of 'key=value' strings into a string with '&' in between each
return url.toString();
};
var hashParamName = '_sw-precache';
var urlsToCacheKeys = new Map(
precacheConfig.map(function(item) {
var relativeUrl = item[0];
var hash = item[1];
var absoluteUrl = new URL(relativeUrl, self.location);
var cacheKey = createCacheKey(absoluteUrl, hashParamName, hash, false);
return [absoluteUrl.toString(), cacheKey];
})
);
function setOfCachedUrls(cache) {
return cache.keys().then(function(requests) {
return requests.map(function(request) {
return request.url;
});
}).then(function(urls) {
return new Set(urls);
});
}
self.addEventListener('install', function(event) {
event.waitUntil(
caches.open(cacheName).then(function(cache) {
return setOfCachedUrls(cache).then(function(cachedUrls) {
return Promise.all(
Array.from(urlsToCacheKeys.values()).map(function(cacheKey) {
// If we don't have a key matching url in the cache already, add it.
if (!cachedUrls.has(cacheKey)) {
var request = new Request(cacheKey, {credentials: 'same-origin'});
return fetch(request).then(function(response) {
// Bail out of installation unless we get back a 200 OK for
// every request.
if (!response.ok) {
throw new Error('Request for ' + cacheKey + ' returned a ' +
'response with status ' + response.status);
}
return cleanResponse(response).then(function(responseToCache) {
return cache.put(cacheKey, responseToCache);
});
});
}
})
);
});
}).then(function() {
// Force the SW to transition from installing -> active state
return self.skipWaiting();
})
);
});
self.addEventListener('activate', function(event) {
var setOfExpectedUrls = new Set(urlsToCacheKeys.values());
event.waitUntil(
caches.open(cacheName).then(function(cache) {
return cache.keys().then(function(existingRequests) {
return Promise.all(
existingRequests.map(function(existingRequest) {
if (!setOfExpectedUrls.has(existingRequest.url)) {
return cache.delete(existingRequest);
}
})
);
});
}).then(function() {
return self.clients.claim();
})
);
});
self.addEventListener('fetch', function(event) {
if (event.request.method === 'GET') {
// Should we call event.respondWith() inside this fetch event handler?
// This needs to be determined synchronously, which will give other fetch
// handlers a chance to handle the request if need be.
var shouldRespond;
// First, remove all the ignored parameters and hash fragment, and see if we
// have that URL in our cache. If so, great! shouldRespond will be true.
var url = stripIgnoredUrlParameters(event.request.url, ignoreUrlParametersMatching);
shouldRespond = urlsToCacheKeys.has(url);
// If shouldRespond is false, check again, this time with 'index.html'
// (or whatever the directoryIndex option is set to) at the end.
var directoryIndex = 'index.html';
if (!shouldRespond && directoryIndex) {
url = addDirectoryIndex(url, directoryIndex);
shouldRespond = urlsToCacheKeys.has(url);
}
// If shouldRespond is still false, check to see if this is a navigation
// request, and if so, whether the URL matches navigateFallbackWhitelist.
var navigateFallback = '';
if (!shouldRespond &&
navigateFallback &&
(event.request.mode === 'navigate') &&
isPathWhitelisted([], event.request.url)) {
url = new URL(navigateFallback, self.location).toString();
shouldRespond = urlsToCacheKeys.has(url);
}
// If shouldRespond was set to true at any point, then call
// event.respondWith(), using the appropriate cache key.
if (shouldRespond) {
event.respondWith(
caches.open(cacheName).then(function(cache) {
return cache.match(urlsToCacheKeys.get(url)).then(function(response) {
if (response) {
return response;
}
throw Error('The cached response that was expected is missing.');
});
}).catch(function(e) {
// Fall back to just fetch()ing the request if some unexpected error
// prevented the cached response from being valid.
console.warn('Couldn\'t serve response for "%s" from cache: %O', event.request.url, e);
return fetch(event.request);
})
);
}
}
});