diff options
| -rw-r--r-- | lib/db/bookshelf.js | 11 | ||||
| -rw-r--r-- | lib/db/index.js | 4 | ||||
| -rw-r--r-- | lib/index.js | 18 | ||||
| -rw-r--r-- | migrations/20171225172732_setup.js | 15 | ||||
| -rw-r--r-- | package-lock.json | 1858 | ||||
| -rw-r--r-- | public/assets/css/css.css | 27 | ||||
| -rw-r--r-- | public/assets/img/balloons.gif | bin | 0 -> 42319 bytes | |||
| -rw-r--r-- | public/assets/img/bg.png | bin | 0 -> 233 bytes | |||
| -rw-r--r-- | public/assets/img/spinner.gif | bin | 0 -> 19110 bytes | |||
| -rw-r--r-- | public/assets/js/app.min.js | 6 | ||||
| -rw-r--r-- | public/assets/js/drag.js | 14 | ||||
| -rw-r--r-- | public/assets/js/nav.js | 24 | ||||
| -rw-r--r-- | public/index.html | 57 |
13 files changed, 1926 insertions, 108 deletions
diff --git a/lib/db/bookshelf.js b/lib/db/bookshelf.js index 69157cc..1a2f609 100644 --- a/lib/db/bookshelf.js +++ b/lib/db/bookshelf.js @@ -6,13 +6,10 @@ var knex = require('knex')({ password : process.env.DB_PASS, database : process.env.DB_NAME, charset : 'utf8', - typecast : function (field, next) { - console.log(field.type) - if (field.type == 'BLOB') { - return field.string() - } - return next() - } + pool: { + min: 2, + max: 4 + }, } }) diff --git a/lib/db/index.js b/lib/db/index.js index 7bcb9ea..75ee2ad 100644 --- a/lib/db/index.js +++ b/lib/db/index.js @@ -28,5 +28,5 @@ db.getRandom = function () { } db.createImage = function(url){ - return new Image({ url: url, shorturl: "" }).save() -}
\ No newline at end of file + return new Image({ url: url }).save() +} diff --git a/lib/index.js b/lib/index.js index 11c8a11..a53dc34 100644 --- a/lib/index.js +++ b/lib/index.js @@ -21,42 +21,40 @@ var upload = require("./upload") var site = module.exports = {} site.init = function(){ app = express() - app.set('view engine', 'ejs') - app.set('views', path.join(__dirname, '../views')) - app.use(express.static(path.join(__dirname, '../public'))) + app.use('/p', express.static(path.join(__dirname, '../public'))) app.use(bodyParser.json()) app.use(bodyParser.urlencoded({ extended: false })) - + app.use(express.query()) server = http.createServer(app).listen(process.env.PORT, function () { - console.log('LuCkYPLoP listening at http://5.k:%s', server.address().port) + console.log('plop listening at http://5.k:%s', server.address().port) }) app.get("/p/:id", function(req, res){ res.sendFile("index.html", {root: './public'}) }) - app.get("/get/random", function(req, res){ + app.get("/p/get/random", function(req, res){ db.getRandom().then(function(img){ res.json(img) }) }) - app.get("/get/latest", function(req, res){ + app.get("/p/get/latest", function(req, res){ db.getLatest().then(function(img){ res.json(img) }) }) - app.get("/get/:id/hotlink", function(req, res){ + app.get("/p/get/:id/hotlink", function(req, res){ db.getImage(req.params.id).then(function(img){ res.redirect(img.url) }) }) - app.get("/get/:id", function(req, res){ + app.get("/p/get/:id", function(req, res){ db.getImage(req.params.id).then(function(img){ res.json(img) }) }) - app.post("/upload", multer_upload.single('image'), function(req, res){ + app.post("/p/upload", multer_upload.single('image'), function(req, res){ upload.put("image", req.file, { unacceptable: function(err){ res.json({ error: err }) diff --git a/migrations/20171225172732_setup.js b/migrations/20171225172732_setup.js new file mode 100644 index 0000000..430f778 --- /dev/null +++ b/migrations/20171225172732_setup.js @@ -0,0 +1,15 @@ + +exports.up = function(knex, Promise) { + + return knex.schema.createTable('images', function (table) { + table.increments(); + table.string('url'); + table.string('ip'); + table.timestamps(); + }) + +}; + +exports.down = function(knex, Promise) { + return knex.schema.dropTable('images') +}; diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..1f9d032 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,1858 @@ +{ + "name": "luckyplop", + "version": "2.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" + }, + "accepts": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.4.tgz", + "integrity": "sha1-hiRnWMfdbSGmR0/whKR0DsBesh8=", + "requires": { + "mime-types": "2.1.17", + "negotiator": "0.6.1" + } + }, + "align-text": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", + "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", + "requires": { + "kind-of": "3.2.2", + "longest": "1.0.1", + "repeat-string": "1.6.1" + } + }, + "amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=" + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" + }, + "ansicolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.2.1.tgz", + "integrity": "sha1-vgiVmQl7dKXJxKhKDNvNtivYeu8=" + }, + "append-field": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/append-field/-/append-field-0.1.0.tgz", + "integrity": "sha1-bdxY+gg8e8VF08WZWygwzCNm1Eo=" + }, + "argparse": { + "version": "0.1.16", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-0.1.16.tgz", + "integrity": "sha1-z9AeD7uj1srtBJ+9dY1A9lGW9Xw=", + "requires": { + "underscore": "1.7.0", + "underscore.string": "2.4.0" + }, + "dependencies": { + "underscore.string": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.4.0.tgz", + "integrity": "sha1-jN2PusTi0uoefi6Al8QvRCKA+Fs=" + } + } + }, + "array-find-index": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", + "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=" + }, + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" + }, + "async": { + "version": "0.1.22", + "resolved": "https://registry.npmjs.org/async/-/async-0.1.22.tgz", + "integrity": "sha1-D8GqoIig4+8Ovi2IMbqw3PiEUGE=" + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "bluebird": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-2.11.0.tgz", + "integrity": "sha1-U0uQM8AiyVecVro7Plpcqvu2UOE=" + }, + "bn.js": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-2.0.0.tgz", + "integrity": "sha1-glxBB/f6eJN47hsNhr4FA9esdDs=" + }, + "body-parser": { + "version": "1.18.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.2.tgz", + "integrity": "sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ=", + "requires": { + "bytes": "3.0.0", + "content-type": "1.0.4", + "debug": "2.6.9", + "depd": "1.1.1", + "http-errors": "1.6.2", + "iconv-lite": "0.4.19", + "on-finished": "2.3.0", + "qs": "6.5.1", + "raw-body": "2.3.2", + "type-is": "1.6.15" + } + }, + "bookshelf": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/bookshelf/-/bookshelf-0.8.2.tgz", + "integrity": "sha1-k8e7felW+Yfvjqhm7869i8CDazw=", + "requires": { + "bluebird": "2.11.0", + "chalk": "1.1.3", + "create-error": "0.3.1", + "inflection": "1.12.0", + "inherits": "2.0.3", + "lodash": "3.10.1", + "semver": "4.3.6" + } + }, + "brace-expansion": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", + "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", + "requires": { + "balanced-match": "1.0.0", + "concat-map": "0.0.1" + } + }, + "browserify-zlib": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz", + "integrity": "sha1-uzX4pRn2AOD6a4SFJByXnQFB+y0=", + "requires": { + "pako": "0.2.9" + } + }, + "builtin-modules": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=" + }, + "busboy": { + "version": "0.2.14", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-0.2.14.tgz", + "integrity": "sha1-bCpiLvz0fFe7vh4qnDetNseSVFM=", + "requires": { + "dicer": "0.2.5", + "readable-stream": "1.1.14" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "0.0.1", + "string_decoder": "0.10.31" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + } + } + }, + "bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" + }, + "camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=" + }, + "camelcase-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", + "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", + "requires": { + "camelcase": "2.1.1", + "map-obj": "1.0.1" + } + }, + "cardinal": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/cardinal/-/cardinal-0.4.4.tgz", + "integrity": "sha1-ylu2iltRG5D+k7ms6km97lwyv+I=", + "requires": { + "ansicolors": "0.2.1", + "redeyed": "0.4.4" + } + }, + "center-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", + "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", + "requires": { + "align-text": "0.1.4", + "lazy-cache": "1.0.4" + } + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "requires": { + "ansi-styles": "2.2.1", + "escape-string-regexp": "1.0.5", + "has-ansi": "2.0.0", + "strip-ansi": "3.0.1", + "supports-color": "2.0.0" + } + }, + "cliui": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", + "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", + "requires": { + "center-align": "0.1.3", + "right-align": "0.1.3", + "wordwrap": "0.0.2" + } + }, + "coffee-script": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.3.3.tgz", + "integrity": "sha1-FQ1rTLUiiUNp7+1qIQHCC8f0pPQ=" + }, + "colors": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz", + "integrity": "sha1-JCP+ZnisDF2uiFLl0OW+CMmXq8w=" + }, + "commander": { + "version": "2.12.2", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.12.2.tgz", + "integrity": "sha512-BFnaq5ZOGcDN7FlrtBT4xxkgIToalIIxwjxLWVJ8bGTpe1LroqMiqQXdA7ygc7CRvaYS+9zfPGFnJqFSayx+AA==" + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "concat-stream": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz", + "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=", + "requires": { + "inherits": "2.0.3", + "readable-stream": "2.3.3", + "typedarray": "0.0.6" + } + }, + "content-disposition": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", + "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=" + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" + }, + "cookie": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", + "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=" + }, + "cookie-parser": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.3.tgz", + "integrity": "sha1-D+MfoZ0AC5X0qt8fU/3CuKIDuqU=", + "requires": { + "cookie": "0.3.1", + "cookie-signature": "1.0.6" + } + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "create-error": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/create-error/-/create-error-0.3.1.tgz", + "integrity": "sha1-aYECRaYp5lRDK/BDdzYAA6U1GiM=" + }, + "currently-unhandled": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", + "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", + "requires": { + "array-find-index": "1.0.2" + } + }, + "dateformat": { + "version": "1.0.2-1.2.3", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.2-1.2.3.tgz", + "integrity": "sha1-sCIMAt6YYXQztyhRz0fePfLNvuk=" + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" + }, + "depd": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz", + "integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k=" + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" + }, + "dicer": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/dicer/-/dicer-0.2.5.tgz", + "integrity": "sha1-WZbAhrszIYyBLAkL3cCc0S+stw8=", + "requires": { + "readable-stream": "1.1.14", + "streamsearch": "0.1.2" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "0.0.1", + "string_decoder": "0.10.31" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + } + } + }, + "dotenv": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-1.2.0.tgz", + "integrity": "sha1-fNc+FuB/BXyAchR6W8OoZ38KtcY=" + }, + "double-ended-queue": { + "version": "2.1.0-0", + "resolved": "https://registry.npmjs.org/double-ended-queue/-/double-ended-queue-2.1.0-0.tgz", + "integrity": "sha1-ED01J/0xUo9AGIEwyEHv3XgmTlw=" + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" + }, + "ejs": { + "version": "2.5.7", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.5.7.tgz", + "integrity": "sha1-zIcsFoiArjxxiXYv1f/ACJbJUYo=" + }, + "encodeurl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.1.tgz", + "integrity": "sha1-eePVhlU0aQn+bw9Fpd5oEDspTSA=" + }, + "error-ex": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", + "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", + "requires": { + "is-arrayish": "0.2.1" + } + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + }, + "esprima": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz", + "integrity": "sha1-n1V+CPw7TSbs6d00+Pv0drYlha0=" + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" + }, + "eventemitter2": { + "version": "0.4.14", + "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz", + "integrity": "sha1-j2G3XN4BKy6esoTUVFWDtWQ7Yas=" + }, + "exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=" + }, + "express": { + "version": "4.16.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.16.2.tgz", + "integrity": "sha1-41xt/i1kt9ygpc1PIXgb4ymeB2w=", + "requires": { + "accepts": "1.3.4", + "array-flatten": "1.1.1", + "body-parser": "1.18.2", + "content-disposition": "0.5.2", + "content-type": "1.0.4", + "cookie": "0.3.1", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "1.1.1", + "encodeurl": "1.0.1", + "escape-html": "1.0.3", + "etag": "1.8.1", + "finalhandler": "1.1.0", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "1.1.2", + "on-finished": "2.3.0", + "parseurl": "1.3.2", + "path-to-regexp": "0.1.7", + "proxy-addr": "2.0.2", + "qs": "6.5.1", + "range-parser": "1.2.0", + "safe-buffer": "5.1.1", + "send": "0.16.1", + "serve-static": "1.13.1", + "setprototypeof": "1.1.0", + "statuses": "1.3.1", + "type-is": "1.6.15", + "utils-merge": "1.0.1", + "vary": "1.1.2" + }, + "dependencies": { + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" + }, + "statuses": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", + "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=" + } + } + }, + "express-json": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/express-json/-/express-json-1.0.0.tgz", + "integrity": "sha1-n91TI5rQpvPgdvVFhdiiJDB1+zY=" + }, + "extend": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend/-/extend-2.0.1.tgz", + "integrity": "sha1-HugBBonnOV/5RIJByYZSvHWagmA=" + }, + "figures": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", + "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", + "requires": { + "escape-string-regexp": "1.0.5", + "object-assign": "4.1.1" + } + }, + "finalhandler": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.0.tgz", + "integrity": "sha1-zgtoVbRYU+eRsvzGgARtiCU91/U=", + "requires": { + "debug": "2.6.9", + "encodeurl": "1.0.1", + "escape-html": "1.0.3", + "on-finished": "2.3.0", + "parseurl": "1.3.2", + "statuses": "1.3.1", + "unpipe": "1.0.0" + }, + "dependencies": { + "statuses": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", + "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=" + } + } + }, + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "requires": { + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" + } + }, + "findup-sync": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.1.3.tgz", + "integrity": "sha1-fz56l7gjksZTvwZYm9hRkOk8NoM=", + "requires": { + "glob": "3.2.11", + "lodash": "2.4.2" + }, + "dependencies": { + "glob": { + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/glob/-/glob-3.2.11.tgz", + "integrity": "sha1-Spc/Y1uRkPcV0QmH1cAP0oFevj0=", + "requires": { + "inherits": "2.0.3", + "minimatch": "0.3.0" + } + }, + "lodash": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz", + "integrity": "sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4=" + }, + "minimatch": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.3.0.tgz", + "integrity": "sha1-J12O2qxPG7MyZHIInnlJyDlGmd0=", + "requires": { + "lru-cache": "2.7.3", + "sigmund": "1.0.1" + } + } + } + }, + "flagged-respawn": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-0.3.2.tgz", + "integrity": "sha1-/xke3c1wiKZ1smEP/8l2vpuAdLU=" + }, + "forwarded": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" + }, + "get-stdin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=" + }, + "getobject": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/getobject/-/getobject-0.1.0.tgz", + "integrity": "sha1-BHpEl4n6Fg0Bj1SG7ZEyC27HiFw=" + }, + "glob": { + "version": "3.1.21", + "resolved": "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz", + "integrity": "sha1-0p4KBV3qUTj00H7UDomC6DwgZs0=", + "requires": { + "graceful-fs": "1.2.3", + "inherits": "1.0.2", + "minimatch": "0.2.14" + }, + "dependencies": { + "inherits": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-1.0.2.tgz", + "integrity": "sha1-ykMJ2t7mtUzAuNJH6NfHoJdb3Js=" + } + } + }, + "graceful-fs": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz", + "integrity": "sha1-FaSAaldUfLLS2/J/QuiajDRRs2Q=" + }, + "grunt": { + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/grunt/-/grunt-0.4.5.tgz", + "integrity": "sha1-VpN81RlDJK3/bSB2MYMqnWuk5/A=", + "requires": { + "async": "0.1.22", + "coffee-script": "1.3.3", + "colors": "0.6.2", + "dateformat": "1.0.2-1.2.3", + "eventemitter2": "0.4.14", + "exit": "0.1.2", + "findup-sync": "0.1.3", + "getobject": "0.1.0", + "glob": "3.1.21", + "grunt-legacy-log": "0.1.3", + "grunt-legacy-util": "0.2.0", + "hooker": "0.2.3", + "iconv-lite": "0.2.11", + "js-yaml": "2.0.5", + "lodash": "0.9.2", + "minimatch": "0.2.14", + "nopt": "1.0.10", + "rimraf": "2.2.8", + "underscore.string": "2.2.1", + "which": "1.0.9" + }, + "dependencies": { + "iconv-lite": { + "version": "0.2.11", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.2.11.tgz", + "integrity": "sha1-HOYKOleGSiktEyH/RgnKS7llrcg=" + }, + "lodash": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-0.9.2.tgz", + "integrity": "sha1-jzSZxSRdNG1oLlsNO0B2fgnxqSw=" + } + } + }, + "grunt-contrib-clean": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/grunt-contrib-clean/-/grunt-contrib-clean-0.6.0.tgz", + "integrity": "sha1-9TLbpLghJnTHwBPhRr2mY4uQSPY=", + "requires": { + "rimraf": "2.2.8" + } + }, + "grunt-contrib-concat": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/grunt-contrib-concat/-/grunt-contrib-concat-0.5.1.tgz", + "integrity": "sha1-lTxu/f39LBB6uchQd/LUsk0xzUk=", + "requires": { + "chalk": "0.5.1", + "source-map": "0.3.0" + }, + "dependencies": { + "ansi-regex": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-0.2.1.tgz", + "integrity": "sha1-DY6UaWej2BQ/k+JOKYUl/BsiNfk=" + }, + "ansi-styles": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.1.0.tgz", + "integrity": "sha1-6uy/Zs1waIJ2Cy9GkVgrj1XXp94=" + }, + "chalk": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-0.5.1.tgz", + "integrity": "sha1-Zjs6ZItotV0EaQ1JFnqoN4WPIXQ=", + "requires": { + "ansi-styles": "1.1.0", + "escape-string-regexp": "1.0.5", + "has-ansi": "0.1.0", + "strip-ansi": "0.3.0", + "supports-color": "0.2.0" + } + }, + "has-ansi": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-0.1.0.tgz", + "integrity": "sha1-hPJlqujA5qiKEtcCKJS3VoiUxi4=", + "requires": { + "ansi-regex": "0.2.1" + } + }, + "strip-ansi": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.3.0.tgz", + "integrity": "sha1-JfSOoiynkYfzF0pNuHWTR7sSYiA=", + "requires": { + "ansi-regex": "0.2.1" + } + }, + "supports-color": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-0.2.0.tgz", + "integrity": "sha1-2S3iaU6z9nMjlz1649i1W0wiGQo=" + } + } + }, + "grunt-contrib-uglify": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/grunt-contrib-uglify/-/grunt-contrib-uglify-0.9.2.tgz", + "integrity": "sha1-GmHG8hJBDkq7T3yJFTcXsQFWAmA=", + "requires": { + "chalk": "1.1.3", + "lodash": "3.10.1", + "maxmin": "1.1.0", + "uglify-js": "2.8.29", + "uri-path": "0.0.2" + } + }, + "grunt-legacy-log": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/grunt-legacy-log/-/grunt-legacy-log-0.1.3.tgz", + "integrity": "sha1-7ClCboAwIa9ZAp+H0vnNczWgVTE=", + "requires": { + "colors": "0.6.2", + "grunt-legacy-log-utils": "0.1.1", + "hooker": "0.2.3", + "lodash": "2.4.2", + "underscore.string": "2.3.3" + }, + "dependencies": { + "lodash": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz", + "integrity": "sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4=" + }, + "underscore.string": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.3.3.tgz", + "integrity": "sha1-ccCL9rQosRM/N+ePo6Icgvcymw0=" + } + } + }, + "grunt-legacy-log-utils": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/grunt-legacy-log-utils/-/grunt-legacy-log-utils-0.1.1.tgz", + "integrity": "sha1-wHBrndkGThFvNvI/5OawSGcsD34=", + "requires": { + "colors": "0.6.2", + "lodash": "2.4.2", + "underscore.string": "2.3.3" + }, + "dependencies": { + "lodash": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz", + "integrity": "sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4=" + }, + "underscore.string": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.3.3.tgz", + "integrity": "sha1-ccCL9rQosRM/N+ePo6Icgvcymw0=" + } + } + }, + "grunt-legacy-util": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/grunt-legacy-util/-/grunt-legacy-util-0.2.0.tgz", + "integrity": "sha1-kzJIhNv343qf98Am3/RR2UqeVUs=", + "requires": { + "async": "0.1.22", + "exit": "0.1.2", + "getobject": "0.1.0", + "hooker": "0.2.3", + "lodash": "0.9.2", + "underscore.string": "2.2.1", + "which": "1.0.9" + }, + "dependencies": { + "lodash": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-0.9.2.tgz", + "integrity": "sha1-jzSZxSRdNG1oLlsNO0B2fgnxqSw=" + } + } + }, + "gzip-size": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-1.0.0.tgz", + "integrity": "sha1-Zs+LEBBHInuVus5uodoMF37Vwi8=", + "requires": { + "browserify-zlib": "0.1.4", + "concat-stream": "1.6.0" + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "requires": { + "ansi-regex": "2.1.1" + } + }, + "hashmap": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/hashmap/-/hashmap-2.3.0.tgz", + "integrity": "sha1-sT+2XafIul49uPwbjFuh0ASdryI=" + }, + "hooker": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz", + "integrity": "sha1-uDT3I8xKJCqmWWNFnfbZhMXT2Vk=" + }, + "hosted-git-info": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz", + "integrity": "sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg==" + }, + "http-errors": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz", + "integrity": "sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=", + "requires": { + "depd": "1.1.1", + "inherits": "2.0.3", + "setprototypeof": "1.0.3", + "statuses": "1.4.0" + } + }, + "iconv-lite": { + "version": "0.4.19", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", + "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==" + }, + "indent-string": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", + "requires": { + "repeating": "2.0.1" + } + }, + "inflection": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/inflection/-/inflection-1.12.0.tgz", + "integrity": "sha1-ogCTVlbW9fa8TcdQLhrstwMihBY=" + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "interpret": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-0.5.2.tgz", + "integrity": "sha1-N3gzsEteppP/DVMzgOPdoMA4G+A=" + }, + "ipaddr.js": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.5.2.tgz", + "integrity": "sha1-1LUFvemUaYfM8PxY2QEP+WB+P6A=" + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "is-builtin-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", + "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", + "requires": { + "builtin-modules": "1.1.1" + } + }, + "is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "requires": { + "number-is-nan": "1.0.1" + } + }, + "is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "js-yaml": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-2.0.5.tgz", + "integrity": "sha1-olrmUJmZ6X3yeMZxnaEb0Gh3Q6g=", + "requires": { + "argparse": "0.1.16", + "esprima": "1.0.4" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.6" + } + }, + "knex": { + "version": "0.8.6", + "resolved": "https://registry.npmjs.org/knex/-/knex-0.8.6.tgz", + "integrity": "sha1-IPL0ps+Y+nVbXO6aqfq65TGvBWo=", + "requires": { + "bluebird": "2.11.0", + "chalk": "1.1.3", + "commander": "2.12.2", + "debug": "2.6.9", + "inherits": "2.0.3", + "interpret": "0.5.2", + "liftoff": "2.0.3", + "lodash": "3.10.1", + "minimist": "1.1.3", + "mkdirp": "0.5.1", + "pool2": "1.4.1", + "readable-stream": "1.1.14", + "tildify": "1.0.0", + "v8flags": "2.1.1" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "minimist": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.1.3.tgz", + "integrity": "sha1-O+39kaktOQFvz6ocaB6Pqhoe/ag=" + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "0.0.1", + "string_decoder": "0.10.31" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + } + } + }, + "knox": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/knox/-/knox-0.9.2.tgz", + "integrity": "sha1-NzZZNmniTwJP2vcjtqHcSv2DmnE=", + "requires": { + "debug": "1.0.5", + "mime": "1.4.1", + "once": "1.4.0", + "stream-counter": "1.0.0", + "xml2js": "0.4.19" + }, + "dependencies": { + "debug": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-1.0.5.tgz", + "integrity": "sha1-9yQSF0MPmd7EwrRz6rkiKOh0wqw=", + "requires": { + "ms": "2.0.0" + } + } + } + }, + "lazy-cache": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", + "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=" + }, + "liftoff": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-2.0.3.tgz", + "integrity": "sha1-+6slNipQasKKPbDFXN6VYvvXBFY=", + "requires": { + "extend": "2.0.1", + "findup-sync": "0.2.1", + "flagged-respawn": "0.3.2", + "minimist": "1.1.3", + "resolve": "1.1.7" + }, + "dependencies": { + "findup-sync": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.2.1.tgz", + "integrity": "sha1-4KkKRQB1xJRm7lE3MgV1FLgeh4w=", + "requires": { + "glob": "4.3.5" + } + }, + "glob": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-4.3.5.tgz", + "integrity": "sha1-gPuwjKVA8jiszl0R0em8QedRc9M=", + "requires": { + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "2.0.10", + "once": "1.4.0" + } + }, + "minimatch": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz", + "integrity": "sha1-jQh8OcazjAAbl/ynzm0OHoCvusc=", + "requires": { + "brace-expansion": "1.1.8" + } + }, + "minimist": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.1.3.tgz", + "integrity": "sha1-O+39kaktOQFvz6ocaB6Pqhoe/ag=" + } + } + }, + "load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "requires": { + "graceful-fs": "4.1.11", + "parse-json": "2.2.0", + "pify": "2.3.0", + "pinkie-promise": "2.0.1", + "strip-bom": "2.0.0" + }, + "dependencies": { + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" + } + } + }, + "lodash": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", + "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=" + }, + "longest": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", + "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=" + }, + "loud-rejection": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", + "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", + "requires": { + "currently-unhandled": "0.4.1", + "signal-exit": "3.0.2" + } + }, + "lru-cache": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", + "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=" + }, + "map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=" + }, + "maxmin": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/maxmin/-/maxmin-1.1.0.tgz", + "integrity": "sha1-cTZehKmd2Piz99X94vANHn9zvmE=", + "requires": { + "chalk": "1.1.3", + "figures": "1.7.0", + "gzip-size": "1.0.0", + "pretty-bytes": "1.0.4" + } + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" + }, + "meow": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", + "requires": { + "camelcase-keys": "2.1.0", + "decamelize": "1.2.0", + "loud-rejection": "1.6.0", + "map-obj": "1.0.1", + "minimist": "1.2.0", + "normalize-package-data": "2.4.0", + "object-assign": "4.1.1", + "read-pkg-up": "1.0.1", + "redent": "1.0.0", + "trim-newlines": "1.0.0" + } + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" + }, + "mime": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", + "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==" + }, + "mime-db": { + "version": "1.30.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.30.0.tgz", + "integrity": "sha1-dMZD2i3Z1qRTmZY0ZbJtXKfXHwE=" + }, + "mime-types": { + "version": "2.1.17", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz", + "integrity": "sha1-Cdejk/A+mVp5+K+Fe3Cp4KsWVXo=", + "requires": { + "mime-db": "1.30.0" + } + }, + "minimatch": { + "version": "0.2.14", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz", + "integrity": "sha1-x054BXT2PG+aCQ6Q775u9TpqdWo=", + "requires": { + "lru-cache": "2.7.3", + "sigmund": "1.0.1" + } + }, + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "requires": { + "minimist": "0.0.8" + }, + "dependencies": { + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + } + } + }, + "moment": { + "version": "2.20.1", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.20.1.tgz", + "integrity": "sha512-Yh9y73JRljxW5QxN08Fner68eFLxM5ynNOAw2LbIB1YAGeQzZT8QFSUvkAz609Zf+IHhhaUxqZK8dG3W/+HEvg==" + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "multer": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/multer/-/multer-1.3.0.tgz", + "integrity": "sha1-CSsmcPaEb6SRSWXvyM+Uwg/sbNI=", + "requires": { + "append-field": "0.1.0", + "busboy": "0.2.14", + "concat-stream": "1.6.0", + "mkdirp": "0.5.1", + "object-assign": "3.0.0", + "on-finished": "2.3.0", + "type-is": "1.6.15", + "xtend": "4.0.1" + }, + "dependencies": { + "object-assign": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", + "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=" + } + } + }, + "mysql2": { + "version": "0.15.8", + "resolved": "https://registry.npmjs.org/mysql2/-/mysql2-0.15.8.tgz", + "integrity": "sha1-8WZQtvfFu1aLNFEeIbr+NtWonvE=", + "requires": { + "bn.js": "2.0.0", + "cardinal": "0.4.4", + "double-ended-queue": "2.0.0-0", + "named-placeholders": "0.1.3", + "readable-stream": "1.0.33" + }, + "dependencies": { + "double-ended-queue": { + "version": "2.0.0-0", + "resolved": "https://registry.npmjs.org/double-ended-queue/-/double-ended-queue-2.0.0-0.tgz", + "integrity": "sha1-eEf9ocAPtyIkWv+DZDpIh2cO/Sw=" + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "readable-stream": { + "version": "1.0.33", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.33.tgz", + "integrity": "sha1-OjYN1mwbHX/UcFOJhg7aHQ9hEmw=", + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "0.0.1", + "string_decoder": "0.10.31" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + } + } + }, + "named-placeholders": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/named-placeholders/-/named-placeholders-0.1.3.tgz", + "integrity": "sha1-NTd27iWa0QUifhOFLu9CFaxjHoQ=", + "requires": { + "lru-cache": "2.5.0" + }, + "dependencies": { + "lru-cache": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.5.0.tgz", + "integrity": "sha1-2COIrpyWC+y+oMc7uet5tsbOmus=" + } + } + }, + "negotiator": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", + "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=" + }, + "nopt": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", + "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", + "requires": { + "abbrev": "1.1.1" + } + }, + "normalize-package-data": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", + "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", + "requires": { + "hosted-git-info": "2.5.0", + "is-builtin-module": "1.0.0", + "semver": "4.3.6", + "validate-npm-package-license": "3.0.1" + } + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "requires": { + "ee-first": "1.1.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1.0.2" + } + }, + "pako": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", + "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=" + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "requires": { + "error-ex": "1.3.1" + } + }, + "parseurl": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz", + "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=" + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "requires": { + "pinkie-promise": "2.0.1" + } + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" + }, + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "requires": { + "graceful-fs": "4.1.11", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" + }, + "dependencies": { + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" + } + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "requires": { + "pinkie": "2.0.4" + } + }, + "pool2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/pool2/-/pool2-1.4.1.tgz", + "integrity": "sha1-MvvU9qN3ZFmQAvrquKBJSip2otA=", + "requires": { + "debug": "2.6.9", + "double-ended-queue": "2.1.0-0", + "hashmap": "2.3.0", + "simple-backoff": "1.0.0" + } + }, + "pretty-bytes": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-1.0.4.tgz", + "integrity": "sha1-CiLoIQYJrTVUL4yNXSFZr/B1HIQ=", + "requires": { + "get-stdin": "4.0.1", + "meow": "3.7.0" + } + }, + "process-nextick-args": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=" + }, + "proxy-addr": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.2.tgz", + "integrity": "sha1-ZXFQT0e7mI7IGAJT+F3X4UlSvew=", + "requires": { + "forwarded": "0.1.2", + "ipaddr.js": "1.5.2" + } + }, + "qs": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", + "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==" + }, + "range-parser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", + "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=" + }, + "raw-body": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.2.tgz", + "integrity": "sha1-vNYMd9Prk83gBQKVw/N5OJvIj4k=", + "requires": { + "bytes": "3.0.0", + "http-errors": "1.6.2", + "iconv-lite": "0.4.19", + "unpipe": "1.0.0" + } + }, + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "requires": { + "load-json-file": "1.1.0", + "normalize-package-data": "2.4.0", + "path-type": "1.1.0" + } + }, + "read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "requires": { + "find-up": "1.1.2", + "read-pkg": "1.1.0" + } + }, + "readable-stream": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", + "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "1.0.7", + "safe-buffer": "5.1.1", + "string_decoder": "1.0.3", + "util-deprecate": "1.0.2" + } + }, + "redent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", + "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", + "requires": { + "indent-string": "2.1.0", + "strip-indent": "1.0.1" + } + }, + "redeyed": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/redeyed/-/redeyed-0.4.4.tgz", + "integrity": "sha1-N+mQpvKyGyoRwuakj9QTVpjLqX8=", + "requires": { + "esprima": "1.0.4" + } + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "requires": { + "is-finite": "1.0.2" + } + }, + "resolve": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", + "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=" + }, + "right-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", + "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", + "requires": { + "align-text": "0.1.4" + } + }, + "rimraf": { + "version": "2.2.8", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz", + "integrity": "sha1-5Dm+Kq7jJzIZUnMPmaiSnk/FBYI=" + }, + "safe-buffer": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" + }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + }, + "semver": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz", + "integrity": "sha1-MAvG4OhjdPe6YQaLWx7NV/xlMto=" + }, + "send": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.16.1.tgz", + "integrity": "sha512-ElCLJdJIKPk6ux/Hocwhk7NFHpI3pVm/IZOYWqUmoxcgeyM+MpxHHKhb8QmlJDX1pU6WrgaHBkVNm73Sv7uc2A==", + "requires": { + "debug": "2.6.9", + "depd": "1.1.1", + "destroy": "1.0.4", + "encodeurl": "1.0.1", + "escape-html": "1.0.3", + "etag": "1.8.1", + "fresh": "0.5.2", + "http-errors": "1.6.2", + "mime": "1.4.1", + "ms": "2.0.0", + "on-finished": "2.3.0", + "range-parser": "1.2.0", + "statuses": "1.3.1" + }, + "dependencies": { + "statuses": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", + "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=" + } + } + }, + "serve-static": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.1.tgz", + "integrity": "sha512-hSMUZrsPa/I09VYFJwa627JJkNs0NrfL1Uzuup+GqHfToR2KcsXFymXSV90hoyw3M+msjFuQly+YzIH/q0MGlQ==", + "requires": { + "encodeurl": "1.0.1", + "escape-html": "1.0.3", + "parseurl": "1.3.2", + "send": "0.16.1" + } + }, + "setprototypeof": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz", + "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=" + }, + "sigmund": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", + "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=" + }, + "signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" + }, + "simple-backoff": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/simple-backoff/-/simple-backoff-1.0.0.tgz", + "integrity": "sha1-pPopDsAZacB8oTb+i7+0Dg7zWsI=" + }, + "source-map": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.3.0.tgz", + "integrity": "sha1-hYb7mloAXltQHiHNGLbyG0V60fk=", + "requires": { + "amdefine": "1.0.1" + } + }, + "spdx-correct": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", + "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=", + "requires": { + "spdx-license-ids": "1.2.2" + } + }, + "spdx-expression-parse": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz", + "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=" + }, + "spdx-license-ids": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", + "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=" + }, + "statuses": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", + "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==" + }, + "stream-counter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stream-counter/-/stream-counter-1.0.0.tgz", + "integrity": "sha1-kc8lac5NxQYf6816yyY5SloRR1E=" + }, + "streamsearch": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz", + "integrity": "sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo=" + }, + "string_decoder": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "requires": { + "safe-buffer": "5.1.1" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "2.1.1" + } + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "requires": { + "is-utf8": "0.2.1" + } + }, + "strip-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", + "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", + "requires": { + "get-stdin": "4.0.1" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" + }, + "tildify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/tildify/-/tildify-1.0.0.tgz", + "integrity": "sha1-KgIdtej73gqPi03zetqo+x05190=", + "requires": { + "user-home": "1.1.1" + } + }, + "trim-newlines": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", + "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=" + }, + "type-is": { + "version": "1.6.15", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.15.tgz", + "integrity": "sha1-yrEPtJCeRByChC6v4a1kbIGARBA=", + "requires": { + "media-typer": "0.3.0", + "mime-types": "2.1.17" + } + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" + }, + "uglify-js": { + "version": "2.8.29", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", + "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", + "requires": { + "source-map": "0.5.7", + "uglify-to-browserify": "1.0.2", + "yargs": "3.10.0" + }, + "dependencies": { + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + } + } + }, + "uglify-to-browserify": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", + "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", + "optional": true + }, + "underscore": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz", + "integrity": "sha1-a7rwh3UA02vjTsqlhODbn+8DUgk=" + }, + "underscore.string": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.2.1.tgz", + "integrity": "sha1-18D6KvXVoaZ/QlPa7pgTLnM/Dxk=" + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" + }, + "uri-path": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/uri-path/-/uri-path-0.0.2.tgz", + "integrity": "sha1-gD6wHy/rF5J9zOD2GH5yt19T9VQ=" + }, + "user-home": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", + "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=" + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" + }, + "v8flags": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", + "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", + "requires": { + "user-home": "1.1.1" + } + }, + "validate-npm-package-license": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", + "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=", + "requires": { + "spdx-correct": "1.0.2", + "spdx-expression-parse": "1.0.4" + } + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" + }, + "which": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/which/-/which-1.0.9.tgz", + "integrity": "sha1-RgwdoPgQED0DIam2M6+eV15kSG8=" + }, + "window-size": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", + "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=" + }, + "wordwrap": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", + "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=" + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "xml2js": { + "version": "0.4.19", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.19.tgz", + "integrity": "sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q==", + "requires": { + "sax": "1.2.4", + "xmlbuilder": "9.0.4" + } + }, + "xmlbuilder": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.4.tgz", + "integrity": "sha1-UZy0ymhtAFqEINNJbz8MruzKWA8=" + }, + "xtend": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" + }, + "yargs": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", + "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", + "requires": { + "camelcase": "1.2.1", + "cliui": "2.1.0", + "decamelize": "1.2.0", + "window-size": "0.1.0" + }, + "dependencies": { + "camelcase": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", + "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=" + } + } + } + } +} diff --git a/public/assets/css/css.css b/public/assets/css/css.css index dbb527b..aa61167 100644 --- a/public/assets/css/css.css +++ b/public/assets/css/css.css @@ -1,9 +1,9 @@ html,body{width:100%;height:100%;margin:0;padding:0;} body { - background-image: url(http://okfocus.s3.amazonaws.com/luckyplop/LUCKY_PLOP.jpg); + background-image: url(../img/bg.png); background-position: center; font-size: 13px; - font-family: arial, sans-serif; + font-family: sans-serif; line-height: 1; } #luckyimage img { @@ -39,7 +39,6 @@ a:visited { .luckyback a { text-decoration: none; - font-family: 'Comic Sans MS', fantasy; } .luckyback { text-shadow: yellow 0.1em 1px 1px; @@ -70,7 +69,6 @@ a:visited { position: fixed; bottom: 0; left: 0; - font-family: 'Comic Sans MS', fantasy; text-shadow: blue 0.1em 1px 1px; color: yellow; font-size: 30px; @@ -111,7 +109,7 @@ a:visited { height: 100%; z-index: 1; background-color: rgba(0,0,0,0.7); - background-image: url(http://okfocus.s3.amazonaws.com/luckyplop/slot.gif); + background-image: url(../img/balloons.gif); background-position: center; } marquee { @@ -127,14 +125,16 @@ marquee { position: fixed; bottom: 0; left: 0; width: 100%; - padding: 10px; - background: #fed; + background: #012; + box-shadow: 0 0 10px #210; } #mobile_nav div { display: block; float: left; width: 25%; color: #f08; + padding: 10px; + cursor: pointer; font-family: courier, monospace; text-align: center; } @@ -164,7 +164,7 @@ marquee { left: 50%; z-index: 2; border-radius: 5px; - background-image: url(//ltho.s3.amazonaws.com/misc/spinner.gif); + background-image: url(../img/spinner.gif); background-size: 50px 50px; background-repeat: no-repeat; background-position: center center; @@ -184,12 +184,5 @@ marquee { display: block; } -@media (max-width: 780px) { - #pip, - #bottombar, - #luckypad, - #droparea, - #topnav { display: none } - #luckyimage { background-size: contain; pointer-events: none; position: absolute; } - #mobile_nav { display: block; position: absolute; } -}
\ No newline at end of file +#luckyimage { background-size: contain; pointer-events: none; position: absolute; } +#mobile_nav { display: block; position: absolute; } diff --git a/public/assets/img/balloons.gif b/public/assets/img/balloons.gif Binary files differnew file mode 100644 index 0000000..27ee153 --- /dev/null +++ b/public/assets/img/balloons.gif diff --git a/public/assets/img/bg.png b/public/assets/img/bg.png Binary files differnew file mode 100644 index 0000000..4c2cb72 --- /dev/null +++ b/public/assets/img/bg.png diff --git a/public/assets/img/spinner.gif b/public/assets/img/spinner.gif Binary files differnew file mode 100644 index 0000000..1fe22da --- /dev/null +++ b/public/assets/img/spinner.gif diff --git a/public/assets/js/app.min.js b/public/assets/js/app.min.js index 02bcc9f..411b83c 100644 --- a/public/assets/js/app.min.js +++ b/public/assets/js/app.min.js @@ -1,3 +1,3 @@ -function FastClick(a,b){"use strict";function c(a,b){return function(){return a.apply(b,arguments)}}var d;if(b=b||{},this.trackingClick=!1,this.trackingClickStart=0,this.targetElement=null,this.touchStartX=0,this.touchStartY=0,this.lastTouchIdentifier=0,this.touchBoundary=b.touchBoundary||10,this.layer=a,this.tapDelay=b.tapDelay||200,!FastClick.notNeeded(a)){for(var e=["onMouse","onClick","onTouchStart","onTouchMove","onTouchEnd","onTouchCancel"],f=this,g=0,h=e.length;h>g;g++)f[e[g]]=c(f[e[g]],f);deviceIsAndroid&&(a.addEventListener("mouseover",this.onMouse,!0),a.addEventListener("mousedown",this.onMouse,!0),a.addEventListener("mouseup",this.onMouse,!0)),a.addEventListener("click",this.onClick,!0),a.addEventListener("touchstart",this.onTouchStart,!1),a.addEventListener("touchmove",this.onTouchMove,!1),a.addEventListener("touchend",this.onTouchEnd,!1),a.addEventListener("touchcancel",this.onTouchCancel,!1),Event.prototype.stopImmediatePropagation||(a.removeEventListener=function(b,c,d){var e=Node.prototype.removeEventListener;"click"===b?e.call(a,b,c.hijacked||c,d):e.call(a,b,c,d)},a.addEventListener=function(b,c,d){var e=Node.prototype.addEventListener;"click"===b?e.call(a,b,c.hijacked||(c.hijacked=function(a){a.propagationStopped||c(a)}),d):e.call(a,b,c,d)}),"function"==typeof a.onclick&&(d=a.onclick,a.addEventListener("click",function(a){d(a)},!1),a.onclick=null)}}function renderToCanvas(a,b){function c(){var b=d(a.src);if(b&&1!==b){var c=orientationToTransform[b],g=c.rotation,h=(c.mirror,90===g||270===g);h&&(f.width=f.height+f.width,f.height=f.width-f.height,f.width-=f.height),g>0&&e(g)}}function d(a){var b=new ExifReader,c=a.split(",")[1],d=base64ToUint8Array(c,0,Math.pow(2,17));try{return b.load(d.buffer),b.getTagValue("Orientation")}catch(e){return 1}}function e(a){var b=a*(Math.PI/180);90===a?g.translate(f.width,0):180===a?g.translate(f.width,f.height):270==a&&g.translate(0,f.height),g.rotate(b)}if(a){b=b||{};var f=document.createElement("canvas"),g=f.getContext("2d"),h=b.scale||1,i=1;i*=h;var j=(f.width=Math.round(a.width*i),f.height=Math.round(a.height*i),b.correctOrientation),k=!!a.src.match(/data:image\/jpeg|\.jpeg$|\.jpg$/i),l=!!a.src.match(/^data:/);return g.save(),j&&k&&l&&c(),1!==i&&g.scale(i,i),g.drawImage(a,0,0),g.restore(),f}}function base64ToUint8Array(a,b,c){for(var b=b||0,c=c||a.length,d=atob(a),e=new Uint8Array(d.length),f=b;c>f;f++)e[f]=d.charCodeAt(f);return e}function selectElementContents(a){if(window.getSelection&&document.createRange){var b=window.getSelection(),c=document.createRange();c.selectNodeContents(a),b.removeAllRanges(),b.addRange(c)}else if(document.selection&&document.body.createTextRange){var d=document.body.createTextRange();d.moveToElementText(a),d.select()}}(function(){function a(a,b){if(a!==b){var c=null===a,d=a===u,e=a===a,f=null===b,g=b===u,h=b===b;if(a>b&&!f||!e||c&&!g&&h||d&&h)return 1;if(b>a&&!c||!h||f&&!d&&e||g&&e)return-1}return 0}function b(a,b,c){for(var d=a.length,e=c?d:-1;c?e--:++e<d;)if(b(a[e],e,a))return e;return-1}function c(a,b,c){if(b!==b)return m(a,c);c-=1;for(var d=a.length;++c<d;)if(a[c]===b)return c;return-1}function d(a){return"function"==typeof a||!1}function e(a){return null==a?"":a+""}function f(a,b){for(var c=-1,d=a.length;++c<d&&-1<b.indexOf(a.charAt(c)););return c}function g(a,b){for(var c=a.length;c--&&-1<b.indexOf(a.charAt(c)););return c}function h(b,c){return a(b.a,c.a)||b.b-c.b}function i(a){return Ja[a]}function j(a){return Ka[a]}function k(a,b,c){return b?a=Na[a]:c&&(a=Oa[a]),"\\"+a}function l(a){return"\\"+Oa[a]}function m(a,b,c){var d=a.length;for(b+=c?0:-1;c?b--:++b<d;){var e=a[b];if(e!==e)return b}return-1}function n(a){return!!a&&"object"==typeof a}function o(a){return 160>=a&&a>=9&&13>=a||32==a||160==a||5760==a||6158==a||a>=8192&&(8202>=a||8232==a||8233==a||8239==a||8287==a||12288==a||65279==a)}function p(a,b){for(var c=-1,d=a.length,e=-1,f=[];++c<d;)a[c]===b&&(a[c]=N,f[++e]=c);return f}function q(a){for(var b=-1,c=a.length;++b<c&&o(a.charCodeAt(b)););return b}function r(a){for(var b=a.length;b--&&o(a.charCodeAt(b)););return b}function s(a){return La[a]}function t(o){function Ja(a){if(n(a)&&!(Bf(a)||a instanceof Ma)){if(a instanceof La)return a;if(_d.call(a,"__chain__")&&_d.call(a,"__wrapped__"))return Pc(a)}return new La(a)}function Ka(){}function La(a,b,c){this.__wrapped__=a,this.__actions__=c||[],this.__chain__=!!b}function Ma(a){this.__wrapped__=a,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=Ae,this.__views__=[]}function Na(){this.__data__={}}function Oa(a){var b=a?a.length:0;for(this.data={hash:pe(null),set:new je};b--;)this.push(a[b])}function Pa(a,b){var c=a.data;return("string"==typeof b||pd(b)?c.set.has(b):c.hash[b])?0:-1}function Qa(a,b){var c=-1,d=a.length;for(b||(b=Nd(d));++c<d;)b[c]=a[c];return b}function Ra(a,b){for(var c=-1,d=a.length;++c<d&&!1!==b(a[c],c,a););return a}function Sa(a,b){for(var c=-1,d=a.length;++c<d;)if(!b(a[c],c,a))return!1;return!0}function Ta(a,b){for(var c=-1,d=a.length,e=-1,f=[];++c<d;){var g=a[c];b(g,c,a)&&(f[++e]=g)}return f}function Wa(a,b){for(var c=-1,d=a.length,e=Nd(d);++c<d;)e[c]=b(a[c],c,a);return e}function Xa(a,b){for(var c=-1,d=b.length,e=a.length;++c<d;)a[e+c]=b[c];return a}function Ya(a,b,c,d){var e=-1,f=a.length;for(d&&f&&(c=a[++e]);++e<f;)c=b(c,a[e],e,a);return c}function Za(a,b){for(var c=-1,d=a.length;++c<d;)if(b(a[c],c,a))return!0;return!1}function $a(a,b,c,d){return a!==u&&_d.call(d,c)?a:b}function _a(a,b,c){for(var d=-1,e=Mf(b),f=e.length;++d<f;){var g=e[d],h=a[g],i=c(h,b[g],g,a,b);(i===i?i===h:h!==h)&&(h!==u||g in a)||(a[g]=i)}return a}function ab(a,b){return null==b?a:cb(b,Mf(b),a)}function bb(a,b){for(var c=-1,d=null==a,e=!d&&Cc(a),f=e?a.length:0,g=b.length,h=Nd(g);++c<g;){var i=b[c];h[c]=e?Dc(i,f)?a[i]:u:d?u:a[i]}return h}function cb(a,b,c){c||(c={});for(var d=-1,e=b.length;++d<e;){var f=b[d];c[f]=a[f]}return c}function db(a,b,c){var d=typeof a;return"function"==d?b===u?a:Nb(a,b,c):null==a?Id:"object"==d?ub(a):b===u?Md(a):vb(a,b)}function eb(a,b,c,d,e,f,g){var h;if(c&&(h=e?c(a,d,e):c(a)),h!==u)return h;if(!pd(a))return a;if(d=Bf(a)){if(h=yc(a),!b)return Qa(a,h)}else{var i=be.call(a),j=i==T;if(i!=V&&i!=O&&(!j||e))return Ia[i]?Ac(a,i,b):e?a:{};if(h=zc(j?{}:a),!b)return ab(h,a)}for(f||(f=[]),g||(g=[]),e=f.length;e--;)if(f[e]==a)return g[e];return f.push(a),g.push(h),(d?Ra:nb)(a,function(d,e){h[e]=eb(d,b,c,e,a,f,g)}),h}function fb(a,b,c){if("function"!=typeof a)throw new Wd(M);return ke(function(){a.apply(u,c)},b)}function gb(a,b){var d=a?a.length:0,e=[];if(!d)return e;var f=-1,g=vc(),h=g===c,i=h&&b.length>=J&&pe&&je?new Oa(b):null,j=b.length;i&&(g=Pa,h=!1,b=i);a:for(;++f<d;)if(i=a[f],h&&i===i){for(var k=j;k--;)if(b[k]===i)continue a;e.push(i)}else 0>g(b,i,0)&&e.push(i);return e}function hb(a,b){var c=!0;return He(a,function(a,d,e){return c=!!b(a,d,e)}),c}function ib(a,b,c,d){var e=d,f=e;return He(a,function(a,g,h){g=+b(a,g,h),(c(g,e)||g===d&&g===f)&&(e=g,f=a)}),f}function jb(a,b){var c=[];return He(a,function(a,d,e){b(a,d,e)&&c.push(a)}),c}function kb(a,b,c,d){var e;return c(a,function(a,c,f){return b(a,c,f)?(e=d?c:a,!1):void 0}),e}function lb(a,b,c,d){d||(d=[]);for(var e=-1,f=a.length;++e<f;){var g=a[e];n(g)&&Cc(g)&&(c||Bf(g)||ld(g))?b?lb(g,b,c,d):Xa(d,g):c||(d[d.length]=g)}return d}function mb(a,b){Je(a,b,Ad)}function nb(a,b){return Je(a,b,Mf)}function ob(a,b){return Ke(a,b,Mf)}function pb(a,b){for(var c=-1,d=b.length,e=-1,f=[];++c<d;){var g=b[c];od(a[g])&&(f[++e]=g)}return f}function qb(a,b,c){if(null!=a){c!==u&&c in Nc(a)&&(b=[c]),c=0;for(var d=b.length;null!=a&&d>c;)a=a[b[c++]];return c&&c==d?a:u}}function rb(a,b,c,d,e,f){if(a===b)a=!0;else if(null==a||null==b||!pd(a)&&!n(b))a=a!==a&&b!==b;else a:{var g=rb,h=Bf(a),i=Bf(b),j=P,k=P;h||(j=be.call(a),j==O?j=V:j!=V&&(h=vd(a))),i||(k=be.call(b),k==O?k=V:k!=V&&vd(b));var l=j==V,i=k==V,k=j==k;if(!k||h||l){if(!d&&(j=l&&_d.call(a,"__wrapped__"),i=i&&_d.call(b,"__wrapped__"),j||i)){a=g(j?a.value():a,i?b.value():b,c,d,e,f);break a}if(k){for(e||(e=[]),f||(f=[]),j=e.length;j--;)if(e[j]==a){a=f[j]==b;break a}e.push(a),f.push(b),a=(h?qc:sc)(a,b,g,c,d,e,f),e.pop(),f.pop()}else a=!1}else a=rc(a,b,j)}return a}function sb(a,b,c){var d=b.length,e=d,f=!c;if(null==a)return!e;for(a=Nc(a);d--;){var g=b[d];if(f&&g[2]?g[1]!==a[g[0]]:!(g[0]in a))return!1}for(;++d<e;){var g=b[d],h=g[0],i=a[h],j=g[1];if(f&&g[2]){if(i===u&&!(h in a))return!1}else if(g=c?c(i,j,h):u,g===u?!rb(j,i,c,!0):!g)return!1}return!0}function tb(a,b){var c=-1,d=Cc(a)?Nd(a.length):[];return He(a,function(a,e,f){d[++c]=b(a,e,f)}),d}function ub(a){var b=wc(a);if(1==b.length&&b[0][2]){var c=b[0][0],d=b[0][1];return function(a){return null==a?!1:a[c]===d&&(d!==u||c in Nc(a))}}return function(a){return sb(a,b)}}function vb(a,b){var c=Bf(a),d=Fc(a)&&b===b&&!pd(b),e=a+"";return a=Oc(a),function(f){if(null==f)return!1;var g=e;if(f=Nc(f),!(!c&&d||g in f)){if(f=1==a.length?f:qb(f,Cb(a,0,-1)),null==f)return!1;g=Uc(a),f=Nc(f)}return f[g]===b?b!==u||g in f:rb(b,f[g],u,!0)}}function wb(a,b,c,d,e){if(!pd(a))return a;var f=Cc(b)&&(Bf(b)||vd(b)),g=f?u:Mf(b);return Ra(g||b,function(h,i){if(g&&(i=h,h=b[i]),n(h)){d||(d=[]),e||(e=[]);a:{for(var j=i,k=d,l=e,m=k.length,o=b[j];m--;)if(k[m]==o){a[j]=l[m];break a}var m=a[j],p=c?c(m,o,j,a,b):u,q=p===u;q&&(p=o,Cc(o)&&(Bf(o)||vd(o))?p=Bf(m)?m:Cc(m)?Qa(m):[]:sd(o)||ld(o)?p=ld(m)?yd(m):sd(m)?m:{}:q=!1),k.push(o),l.push(p),q?a[j]=wb(p,o,c,k,l):(p===p?p!==m:m===m)&&(a[j]=p)}}else j=a[i],k=c?c(j,h,i,a,b):u,(l=k===u)&&(k=h),k===u&&(!f||i in a)||!l&&(k===k?k===j:j!==j)||(a[i]=k)}),a}function xb(a){return function(b){return null==b?u:b[a]}}function yb(a){var b=a+"";return a=Oc(a),function(c){return qb(c,a,b)}}function zb(a,b){for(var c=a?b.length:0;c--;){var d=b[c];if(d!=e&&Dc(d)){var e=d;le.call(a,d,1)}}}function Ab(a,b){return a+qe(ye()*(b-a+1))}function Bb(a,b,c,d,e){return e(a,function(a,e,f){c=d?(d=!1,a):b(c,a,e,f)}),c}function Cb(a,b,c){var d=-1,e=a.length;for(b=null==b?0:+b||0,0>b&&(b=-b>e?0:e+b),c=c===u||c>e?e:+c||0,0>c&&(c+=e),e=b>c?0:c-b>>>0,b>>>=0,c=Nd(e);++d<e;)c[d]=a[d+b];return c}function Db(a,b){var c;return He(a,function(a,d,e){return c=b(a,d,e),!c}),!!c}function Eb(a,b){var c=a.length;for(a.sort(b);c--;)a[c]=a[c].c;return a}function Fb(b,c,d){var e=tc(),f=-1;return c=Wa(c,function(a){return e(a)}),b=tb(b,function(a){return{a:Wa(c,function(b){return b(a)}),b:++f,c:a}}),Eb(b,function(b,c){var e;a:{for(var f=-1,g=b.a,h=c.a,i=g.length,j=d.length;++f<i;)if(e=a(g[f],h[f])){if(f>=j)break a;f=d[f],e*="asc"===f||!0===f?1:-1;break a}e=b.b-c.b}return e})}function Gb(a,b){var c=0;return He(a,function(a,d,e){c+=+b(a,d,e)||0}),c}function Hb(a,b){var d=-1,e=vc(),f=a.length,g=e===c,h=g&&f>=J,i=h&&pe&&je?new Oa(void 0):null,j=[];i?(e=Pa,g=!1):(h=!1,i=b?[]:j);a:for(;++d<f;){var k=a[d],l=b?b(k,d,a):k;if(g&&k===k){for(var m=i.length;m--;)if(i[m]===l)continue a;b&&i.push(l),j.push(k)}else 0>e(i,l,0)&&((b||h)&&i.push(l),j.push(k))}return j}function Ib(a,b){for(var c=-1,d=b.length,e=Nd(d);++c<d;)e[c]=a[b[c]];return e}function Jb(a,b,c,d){for(var e=a.length,f=d?e:-1;(d?f--:++f<e)&&b(a[f],f,a););return c?Cb(a,d?0:f,d?f+1:e):Cb(a,d?f+1:0,d?e:f)}function Kb(a,b){var c=a;c instanceof Ma&&(c=c.value());for(var d=-1,e=b.length;++d<e;)var f=b[d],c=f.func.apply(f.thisArg,Xa([c],f.args));return c}function Lb(a,b,c){var d=0,e=a?a.length:d;if("number"==typeof b&&b===b&&Ce>=e){for(;e>d;){var f=d+e>>>1,g=a[f];(c?b>=g:b>g)&&null!==g?d=f+1:e=f}return e}return Mb(a,b,Id,c)}function Mb(a,b,c,d){b=c(b);for(var e=0,f=a?a.length:0,g=b!==b,h=null===b,i=b===u;f>e;){var j=qe((e+f)/2),k=c(a[j]),l=k!==u,m=k===k;(g?m||d:h?m&&l&&(d||null!=k):i?m&&(d||l):null==k?0:d?b>=k:b>k)?e=j+1:f=j}return ve(f,Be)}function Nb(a,b,c){if("function"!=typeof a)return Id;if(b===u)return a;switch(c){case 1:return function(c){return a.call(b,c)};case 3:return function(c,d,e){return a.call(b,c,d,e)};case 4:return function(c,d,e,f){return a.call(b,c,d,e,f)};case 5:return function(c,d,e,f,g){return a.call(b,c,d,e,f,g)}}return function(){return a.apply(b,arguments)}}function Ob(a){var b=new ee(a.byteLength);return new me(b).set(new me(a)),b}function Pb(a,b,c){for(var d=c.length,e=-1,f=ue(a.length-d,0),g=-1,h=b.length,i=Nd(h+f);++g<h;)i[g]=b[g];for(;++e<d;)i[c[e]]=a[e];for(;f--;)i[g++]=a[e++];return i}function Qb(a,b,c){for(var d=-1,e=c.length,f=-1,g=ue(a.length-e,0),h=-1,i=b.length,j=Nd(g+i);++f<g;)j[f]=a[f];for(g=f;++h<i;)j[g+h]=b[h];for(;++d<e;)j[g+c[d]]=a[f++];return j}function Rb(a,b){return function(c,d,e){var f=b?b():{};if(d=tc(d,e,3),Bf(c)){e=-1;for(var g=c.length;++e<g;){var h=c[e];a(f,h,d(h,e,c),c)}}else He(c,function(b,c,e){a(f,b,d(b,c,e),e)});return f}}function Sb(a){return jd(function(b,c){var d=-1,e=null==b?0:c.length,f=e>2?c[e-2]:u,g=e>2?c[2]:u,h=e>1?c[e-1]:u;for("function"==typeof f?(f=Nb(f,h,5),e-=2):(f="function"==typeof h?h:u,e-=f?1:0),g&&Ec(c[0],c[1],g)&&(f=3>e?u:f,e=1);++d<e;)(g=c[d])&&a(b,g,f);return b})}function Tb(a,b){return function(c,d){var e=c?Ne(c):0;if(!Hc(e))return a(c,d);for(var f=b?e:-1,g=Nc(c);(b?f--:++f<e)&&!1!==d(g[f],f,g););return c}}function Ub(a){return function(b,c,d){var e=Nc(b);d=d(b);for(var f=d.length,g=a?f:-1;a?g--:++g<f;){var h=d[g];if(!1===c(e[h],h,e))break}return b}}function Vb(a,b){function c(){return(this&&this!==Ua&&this instanceof c?d:a).apply(b,arguments)}var d=Xb(a);return c}function Wb(a){return function(b){var c=-1;b=Gd(Dd(b));for(var d=b.length,e="";++c<d;)e=a(e,b[c],c);return e}}function Xb(a){return function(){var b=arguments;switch(b.length){case 0:return new a;case 1:return new a(b[0]);case 2:return new a(b[0],b[1]);case 3:return new a(b[0],b[1],b[2]);case 4:return new a(b[0],b[1],b[2],b[3]);case 5:return new a(b[0],b[1],b[2],b[3],b[4]);case 6:return new a(b[0],b[1],b[2],b[3],b[4],b[5]);case 7:return new a(b[0],b[1],b[2],b[3],b[4],b[5],b[6])}var c=Ge(a.prototype),b=a.apply(c,b);return pd(b)?b:c}}function Yb(a){function b(c,d,e){return e&&Ec(c,d,e)&&(d=u),c=pc(c,a,u,u,u,u,u,d),c.placeholder=b.placeholder,c}return b}function Zb(a,b){return jd(function(c){var d=c[0];return null==d?d:(c.push(b),a.apply(u,c))})}function $b(a,b){return function(c,d,e){if(e&&Ec(c,d,e)&&(d=u),d=tc(d,e,3),1==d.length){e=c=Bf(c)?c:Mc(c);for(var f=d,g=-1,h=e.length,i=b,j=i;++g<h;){var k=e[g],l=+f(k);a(l,i)&&(i=l,j=k)}if(e=j,!c.length||e!==b)return e}return ib(c,d,a,b)}}function _b(a,c){return function(d,e,f){return e=tc(e,f,3),Bf(d)?(e=b(d,e,c),e>-1?d[e]:u):kb(d,e,a)}}function ac(a){return function(c,d,e){return c&&c.length?(d=tc(d,e,3),b(c,d,a)):-1}}function bc(a){return function(b,c,d){return c=tc(c,d,3),kb(b,c,a,!0)}}function cc(a){return function(){for(var b,c=arguments.length,d=a?c:-1,e=0,f=Nd(c);a?d--:++d<c;){var g=f[e++]=arguments[d];if("function"!=typeof g)throw new Wd(M);!b&&La.prototype.thru&&"wrapper"==uc(g)&&(b=new La([],!0))}for(d=b?-1:c;++d<c;){var g=f[d],e=uc(g),h="wrapper"==e?Me(g):u;b=h&&Gc(h[0])&&h[1]==(D|z|B|E)&&!h[4].length&&1==h[9]?b[uc(h[0])].apply(b,h[3]):1==g.length&&Gc(g)?b[e]():b.thru(g)}return function(){var a=arguments,d=a[0];if(b&&1==a.length&&Bf(d)&&d.length>=J)return b.plant(d).value();for(var e=0,a=c?f[e].apply(this,a):d;++e<c;)a=f[e].call(this,a);return a}}}function dc(a,b){return function(c,d,e){return"function"==typeof d&&e===u&&Bf(c)?a(c,d):b(c,Nb(d,e,3))}}function ec(a){return function(b,c,d){return("function"!=typeof c||d!==u)&&(c=Nb(c,d,3)),a(b,c,Ad)}}function fc(a){return function(b,c,d){return("function"!=typeof c||d!==u)&&(c=Nb(c,d,3)),a(b,c)}}function gc(a){return function(b,c,d){var e={};return c=tc(c,d,3),nb(b,function(b,d,f){f=c(b,d,f),d=a?f:d,b=a?b:f,e[d]=b}),e}}function hc(a){return function(b,c,d){return b=e(b),(a?b:"")+lc(b,c,d)+(a?"":b)}}function ic(a){var b=jd(function(c,d){var e=p(d,b.placeholder);return pc(c,a,u,d,e)});return b}function jc(a,b){return function(c,d,e,f){var g=3>arguments.length;return"function"==typeof d&&f===u&&Bf(c)?a(c,d,e,g):Bb(c,tc(d,f,4),e,g,b)}}function kc(a,b,c,d,e,f,g,h,i,j){function k(){for(var t=arguments.length,v=t,y=Nd(t);v--;)y[v]=arguments[v];if(d&&(y=Pb(y,d,e)),f&&(y=Qb(y,f,g)),o||r){var v=k.placeholder,z=p(y,v),t=t-z.length;if(j>t){var A=h?Qa(h):u,t=ue(j-t,0),D=o?z:u,z=o?u:z,E=o?y:u,y=o?u:y;return b|=o?B:C,b&=~(o?C:B),q||(b&=~(w|x)),y=[a,b,c,E,D,y,z,A,i,t],A=kc.apply(u,y),Gc(a)&&Oe(A,y),A.placeholder=v,A}}if(v=m?c:this,A=n?v[a]:a,h)for(t=y.length,D=ve(h.length,t),z=Qa(y);D--;)E=h[D],y[D]=Dc(E,t)?z[E]:u;return l&&i<y.length&&(y.length=i),this&&this!==Ua&&this instanceof k&&(A=s||Xb(a)),A.apply(v,y)}var l=b&D,m=b&w,n=b&x,o=b&z,q=b&y,r=b&A,s=n?u:Xb(a);return k}function lc(a,b,c){return a=a.length,b=+b,b>a&&se(b)?(b-=a,c=null==c?" ":c+"",Ed(c,oe(b/c.length)).slice(0,b)):""}function mc(a,b,c,d){function e(){for(var b=-1,h=arguments.length,i=-1,j=d.length,k=Nd(j+h);++i<j;)k[i]=d[i];for(;h--;)k[i++]=arguments[++b];return(this&&this!==Ua&&this instanceof e?g:a).apply(f?c:this,k)}var f=b&w,g=Xb(a);return e}function nc(a){var b=Rd[a];return function(a,c){return(c=c===u?0:+c||0)?(c=he(10,c),b(a*c)/c):b(a)}}function oc(a){return function(b,c,d,e){var f=tc(d);return null==d&&f===db?Lb(b,c,a):Mb(b,c,f(d,e,1),a)}}function pc(a,b,c,d,e,f,g,h){var i=b&x;if(!i&&"function"!=typeof a)throw new Wd(M);var j=d?d.length:0;if(j||(b&=~(B|C),d=e=u),j-=e?e.length:0,b&C){var k=d,l=e;d=e=u}var m=i?u:Me(a);return c=[a,b,c,d,e,k,l,f,g,h],m&&(d=c[1],b=m[1],h=d|b,e=b==D&&d==z||b==D&&d==E&&c[7].length<=m[8]||b==(D|E)&&d==z,(D>h||e)&&(b&w&&(c[2]=m[2],h|=d&w?0:y),(d=m[3])&&(e=c[3],c[3]=e?Pb(e,d,m[4]):Qa(d),c[4]=e?p(c[3],N):Qa(m[4])),(d=m[5])&&(e=c[5],c[5]=e?Qb(e,d,m[6]):Qa(d),c[6]=e?p(c[5],N):Qa(m[6])),(d=m[7])&&(c[7]=Qa(d)),b&D&&(c[8]=null==c[8]?m[8]:ve(c[8],m[8])),null==c[9]&&(c[9]=m[9]),c[0]=m[0],c[1]=h),b=c[1],h=c[9]),c[9]=null==h?i?0:a.length:ue(h-j,0)||0,(m?Le:Oe)(b==w?Vb(c[0],c[2]):b!=B&&b!=(w|B)||c[4].length?kc.apply(u,c):mc.apply(u,c),c)}function qc(a,b,c,d,e,f,g){var h=-1,i=a.length,j=b.length;if(i!=j&&(!e||i>=j))return!1;for(;++h<i;){var k=a[h],j=b[h],l=d?d(e?j:k,e?k:j,h):u;if(l!==u){if(l)continue;return!1}if(e){if(!Za(b,function(a){return k===a||c(k,a,d,e,f,g)}))return!1}else if(k!==j&&!c(k,j,d,e,f,g))return!1}return!0}function rc(a,b,c){switch(c){case Q:case R:return+a==+b;case S:return a.name==b.name&&a.message==b.message;case U:return a!=+a?b!=+b:a==+b;case W:case X:return a==b+""}return!1}function sc(a,b,c,d,e,f,g){var h=Mf(a),i=h.length,j=Mf(b).length;if(i!=j&&!e)return!1;for(j=i;j--;){var k=h[j];if(!(e?k in b:_d.call(b,k)))return!1}for(var l=e;++j<i;){var k=h[j],m=a[k],n=b[k],o=d?d(e?n:m,e?m:n,k):u;if(o===u?!c(m,n,d,e,f,g):!o)return!1;l||(l="constructor"==k)}return l||(c=a.constructor,d=b.constructor,!(c!=d&&"constructor"in a&&"constructor"in b)||"function"==typeof c&&c instanceof c&&"function"==typeof d&&d instanceof d)?!0:!1}function tc(a,b,c){var d=Ja.callback||Hd,d=d===Hd?db:d;return c?d(a,b,c):d}function uc(a){for(var b=a.name+"",c=Fe[b],d=c?c.length:0;d--;){var e=c[d],f=e.func;if(null==f||f==a)return e.name}return b}function vc(a,b,d){var e=Ja.indexOf||Tc,e=e===Tc?c:e;return a?e(a,b,d):e}function wc(a){a=Bd(a);for(var b=a.length;b--;){var c=a[b][1];a[b][2]=c===c&&!pd(c)}return a}function xc(a,b){var c=null==a?u:a[b];return qd(c)?c:u}function yc(a){var b=a.length,c=new a.constructor(b);return b&&"string"==typeof a[0]&&_d.call(a,"index")&&(c.index=a.index,c.input=a.input),c}function zc(a){return a=a.constructor,"function"==typeof a&&a instanceof a||(a=Td),new a}function Ac(a,b,c){var d=a.constructor;switch(b){case Y:return Ob(a);case Q:case R:return new d(+a);case Z:case $:case _:case aa:case ba:case ca:case da:case ea:case fa:return b=a.buffer,new d(c?Ob(b):b,a.byteOffset,a.length);case U:case X:return new d(a);case W:var e=new d(a.source,ya.exec(a));e.lastIndex=a.lastIndex}return e}function Bc(a,b,c){return null==a||Fc(b,a)||(b=Oc(b),a=1==b.length?a:qb(a,Cb(b,0,-1)),b=Uc(b)),b=null==a?a:a[b],null==b?u:b.apply(a,c)}function Cc(a){return null!=a&&Hc(Ne(a))}function Dc(a,b){return a="number"==typeof a||Ba.test(a)?+a:-1,b=null==b?De:b,a>-1&&0==a%1&&b>a}function Ec(a,b,c){if(!pd(c))return!1;var d=typeof b;return("number"==d?Cc(c)&&Dc(b,c.length):"string"==d&&b in c)?(b=c[b],a===a?a===b:b!==b):!1}function Fc(a,b){var c=typeof a;return"string"==c&&ra.test(a)||"number"==c?!0:Bf(a)?!1:!qa.test(a)||null!=b&&a in Nc(b)}function Gc(a){var b=uc(a),c=Ja[b];return"function"==typeof c&&b in Ma.prototype?a===c?!0:(b=Me(c),!!b&&a===b[0]):!1}function Hc(a){return"number"==typeof a&&a>-1&&0==a%1&&De>=a}function Ic(a,b){return a===u?b:Cf(a,b,Ic)}function Jc(a,b){a=Nc(a);for(var c=-1,d=b.length,e={};++c<d;){var f=b[c];f in a&&(e[f]=a[f])}return e}function Kc(a,b){var c={};return mb(a,function(a,d,e){b(a,d,e)&&(c[d]=a)}),c}function Lc(a){for(var b=Ad(a),c=b.length,d=c&&a.length,e=!!d&&Hc(d)&&(Bf(a)||ld(a)),f=-1,g=[];++f<c;){var h=b[f];(e&&Dc(h,d)||_d.call(a,h))&&g.push(h)}return g}function Mc(a){return null==a?[]:Cc(a)?pd(a)?a:Td(a):Cd(a)}function Nc(a){return pd(a)?a:Td(a)}function Oc(a){if(Bf(a))return a;var b=[];return e(a).replace(sa,function(a,c,d,e){b.push(d?e.replace(wa,"$1"):c||a)}),b}function Pc(a){return a instanceof Ma?a.clone():new La(a.__wrapped__,a.__chain__,Qa(a.__actions__))}function Qc(a,b,c){return a&&a.length?((c?Ec(a,b,c):null==b)&&(b=1),Cb(a,0>b?0:b)):[]}function Rc(a,b,c){var d=a?a.length:0;return d?((c?Ec(a,b,c):null==b)&&(b=1),b=d-(+b||0),Cb(a,0,0>b?0:b)):[]}function Sc(a){return a?a[0]:u}function Tc(a,b,d){var e=a?a.length:0;if(!e)return-1;if("number"==typeof d)d=0>d?ue(e+d,0):d;else if(d)return d=Lb(a,b),e>d&&(b===b?b===a[d]:a[d]!==a[d])?d:-1;return c(a,b,d||0)}function Uc(a){var b=a?a.length:0;return b?a[b-1]:u}function Vc(a){return Qc(a,1)}function Wc(a,b,d,e){if(!a||!a.length)return[];null!=b&&"boolean"!=typeof b&&(e=d,d=Ec(a,b,e)?u:b,b=!1);var f=tc();if((null!=d||f!==db)&&(d=f(d,e,3)),b&&vc()===c){b=d;var g;d=-1,e=a.length;for(var f=-1,h=[];++d<e;){var i=a[d],j=b?b(i,d,a):i;d&&g===j||(g=j,h[++f]=i)}a=h}else a=Hb(a,d);return a}function Xc(a){if(!a||!a.length)return[];var b=-1,c=0;a=Ta(a,function(a){return Cc(a)?(c=ue(a.length,c),!0):void 0});for(var d=Nd(c);++b<c;)d[b]=Wa(a,xb(b));return d}function Yc(a,b,c){return a&&a.length?(a=Xc(a),null==b?a:(b=Nb(b,c,4),Wa(a,function(a){return Ya(a,b,u,!0)}))):[]}function Zc(a,b){var c=-1,d=a?a.length:0,e={};for(!d||b||Bf(a[0])||(b=[]);++c<d;){var f=a[c];b?e[f]=b[c]:f&&(e[f[0]]=f[1])}return e}function $c(a){return a=Ja(a),a.__chain__=!0,a}function _c(a,b,c){return b.call(c,a)}function ad(a,b,c){var d=Bf(a)?Sa:hb;return c&&Ec(a,b,c)&&(b=u),("function"!=typeof b||c!==u)&&(b=tc(b,c,3)),d(a,b)}function bd(a,b,c){var d=Bf(a)?Ta:jb;return b=tc(b,c,3),d(a,b)}function cd(a,b,c,d){var e=a?Ne(a):0;return Hc(e)||(a=Cd(a),e=a.length),c="number"!=typeof c||d&&Ec(b,c,d)?0:0>c?ue(e+c,0):c||0,"string"==typeof a||!Bf(a)&&ud(a)?e>=c&&-1<a.indexOf(b,c):!!e&&-1<vc(a,b,c)}function dd(a,b,c){var d=Bf(a)?Wa:tb;return b=tc(b,c,3),d(a,b)}function ed(a,b,c){if(c?Ec(a,b,c):null==b){a=Mc(a);var d=a.length;return d>0?a[Ab(0,d-1)]:u}c=-1,a=xd(a);var d=a.length,e=d-1;for(b=ve(0>b?0:+b||0,d);++c<b;){var d=Ab(c,e),f=a[d];a[d]=a[c],a[c]=f}return a.length=b,a}function fd(a,b,c){var d=Bf(a)?Za:Db;return c&&Ec(a,b,c)&&(b=u),("function"!=typeof b||c!==u)&&(b=tc(b,c,3)),d(a,b)}function gd(a,b){var c;if("function"!=typeof b){if("function"!=typeof a)throw new Wd(M);var d=a;a=b,b=d}return function(){return 0<--a&&(c=b.apply(this,arguments)),1>=a&&(b=u),c}}function hd(a,b,c){function d(b,c){c&&fe(c),i=m=n=u,b&&(o=nf(),j=a.apply(l,h),m||i||(h=l=u))}function e(){var a=b-(nf()-k);0>=a||a>b?d(n,i):m=ke(e,a)}function f(){d(q,m)}function g(){if(h=arguments,k=nf(),l=this,n=q&&(m||!r),!1===p)var c=r&&!m;else{i||r||(o=k);var d=p-(k-o),g=0>=d||d>p;g?(i&&(i=fe(i)),o=k,j=a.apply(l,h)):i||(i=ke(f,d))}return g&&m?m=fe(m):m||b===p||(m=ke(e,b)),c&&(g=!0,j=a.apply(l,h)),!g||m||i||(h=l=u),j}var h,i,j,k,l,m,n,o=0,p=!1,q=!0;if("function"!=typeof a)throw new Wd(M);if(b=0>b?0:+b||0,!0===c)var r=!0,q=!1;else pd(c)&&(r=!!c.leading,p="maxWait"in c&&ue(+c.maxWait||0,b),q="trailing"in c?!!c.trailing:q);return g.cancel=function(){m&&fe(m),i&&fe(i),o=0,i=m=n=u},g}function id(a,b){function c(){var d=arguments,e=b?b.apply(this,d):d[0],f=c.cache;return f.has(e)?f.get(e):(d=a.apply(this,d),c.cache=f.set(e,d),d)}if("function"!=typeof a||b&&"function"!=typeof b)throw new Wd(M);return c.cache=new id.Cache,c}function jd(a,b){if("function"!=typeof a)throw new Wd(M);return b=ue(b===u?a.length-1:+b||0,0),function(){for(var c=arguments,d=-1,e=ue(c.length-b,0),f=Nd(e);++d<e;)f[d]=c[b+d];switch(b){case 0:return a.call(this,f);case 1:return a.call(this,c[0],f);case 2:return a.call(this,c[0],c[1],f)}for(e=Nd(b+1),d=-1;++d<b;)e[d]=c[d];return e[b]=f,a.apply(this,e)}}function kd(a,b){return a>b}function ld(a){return n(a)&&Cc(a)&&_d.call(a,"callee")&&!ie.call(a,"callee")}function md(a,b,c,d){return d=(c="function"==typeof c?Nb(c,d,3):u)?c(a,b):u,d===u?rb(a,b,c):!!d}function nd(a){return n(a)&&"string"==typeof a.message&&be.call(a)==S}function od(a){return pd(a)&&be.call(a)==T}function pd(a){var b=typeof a;return!!a&&("object"==b||"function"==b)}function qd(a){return null==a?!1:od(a)?de.test($d.call(a)):n(a)&&Aa.test(a)}function rd(a){return"number"==typeof a||n(a)&&be.call(a)==U}function sd(a){var b;if(!n(a)||be.call(a)!=V||ld(a)||!(_d.call(a,"constructor")||(b=a.constructor,"function"!=typeof b||b instanceof b)))return!1;var c;return mb(a,function(a,b){c=b}),c===u||_d.call(a,c)}function td(a){return pd(a)&&be.call(a)==W}function ud(a){return"string"==typeof a||n(a)&&be.call(a)==X}function vd(a){return n(a)&&Hc(a.length)&&!!Ha[be.call(a)]}function wd(a,b){return b>a}function xd(a){var b=a?Ne(a):0;return Hc(b)?b?Qa(a):[]:Cd(a)}function yd(a){return cb(a,Ad(a))}function zd(a){return pb(a,Ad(a))}function Ad(a){if(null==a)return[];pd(a)||(a=Td(a));for(var b=a.length,b=b&&Hc(b)&&(Bf(a)||ld(a))&&b||0,c=a.constructor,d=-1,c="function"==typeof c&&c.prototype===a,e=Nd(b),f=b>0;++d<b;)e[d]=d+"";for(var g in a)f&&Dc(g,b)||"constructor"==g&&(c||!_d.call(a,g))||e.push(g);return e}function Bd(a){a=Nc(a);for(var b=-1,c=Mf(a),d=c.length,e=Nd(d);++b<d;){var f=c[b];e[b]=[f,a[f]]}return e}function Cd(a){return Ib(a,Mf(a))}function Dd(a){return(a=e(a))&&a.replace(Ca,i).replace(va,"")}function Ed(a,b){var c="";if(a=e(a),b=+b,1>b||!a||!se(b))return c;do b%2&&(c+=a),b=qe(b/2),a+=a;while(b);return c}function Fd(a,b,c){var d=a;return(a=e(a))?(c?Ec(d,b,c):null==b)?a.slice(q(a),r(a)+1):(b+="",a.slice(f(a,b),g(a,b)+1)):a}function Gd(a,b,c){return c&&Ec(a,b,c)&&(b=u),a=e(a),a.match(b||Fa)||[]}function Hd(a,b,c){return c&&Ec(a,b,c)&&(b=u),n(a)?Jd(a):db(a,b)}function Id(a){return a}function Jd(a){return ub(eb(a,!0))}function Kd(a,b,c){if(null==c){var d=pd(b),e=d?Mf(b):u;((e=e&&e.length?pb(b,e):u)?e.length:d)||(e=!1,c=b,b=a,a=this)}e||(e=pb(b,Mf(b)));var f=!0,d=-1,g=od(a),h=e.length;!1===c?f=!1:pd(c)&&"chain"in c&&(f=c.chain);for(;++d<h;){c=e[d];var i=b[c];a[c]=i,g&&(a.prototype[c]=function(b){return function(){var c=this.__chain__;if(f||c){var d=a(this.__wrapped__);return(d.__actions__=Qa(this.__actions__)).push({func:b,args:arguments,thisArg:a}),d.__chain__=c,d}return b.apply(a,Xa([this.value()],arguments))}}(i))}return a}function Ld(){}function Md(a){return Fc(a)?xb(a):yb(a)}o=o?Va.defaults(Ua.Object(),o,Va.pick(Ua,Ga)):Ua;var Nd=o.Array,Od=o.Date,Pd=o.Error,Qd=o.Function,Rd=o.Math,Sd=o.Number,Td=o.Object,Ud=o.RegExp,Vd=o.String,Wd=o.TypeError,Xd=Nd.prototype,Yd=Td.prototype,Zd=Vd.prototype,$d=Qd.prototype.toString,_d=Yd.hasOwnProperty,ae=0,be=Yd.toString,ce=Ua._,de=Ud("^"+$d.call(_d).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),ee=o.ArrayBuffer,fe=o.clearTimeout,ge=o.parseFloat,he=Rd.pow,ie=Yd.propertyIsEnumerable,je=xc(o,"Set"),ke=o.setTimeout,le=Xd.splice,me=o.Uint8Array,ne=xc(o,"WeakMap"),oe=Rd.ceil,pe=xc(Td,"create"),qe=Rd.floor,re=xc(Nd,"isArray"),se=o.isFinite,te=xc(Td,"keys"),ue=Rd.max,ve=Rd.min,we=xc(Od,"now"),xe=o.parseInt,ye=Rd.random,ze=Sd.NEGATIVE_INFINITY,Ae=Sd.POSITIVE_INFINITY,Be=4294967294,Ce=2147483647,De=9007199254740991,Ee=ne&&new ne,Fe={};Ja.support={},Ja.templateSettings={escape:na,evaluate:oa,interpolate:pa,variable:"",imports:{_:Ja}};var Ge=function(){function a(){}return function(b){if(pd(b)){a.prototype=b;var c=new a;a.prototype=u}return c||{}}}(),He=Tb(nb),Ie=Tb(ob,!0),Je=Ub(),Ke=Ub(!0),Le=Ee?function(a,b){return Ee.set(a,b),a}:Id,Me=Ee?function(a){return Ee.get(a)}:Ld,Ne=xb("length"),Oe=function(){var a=0,b=0;return function(c,d){var e=nf(),f=I-(e-b);if(b=e,f>0){if(++a>=H)return c}else a=0;return Le(c,d)}}(),Pe=jd(function(a,b){return n(a)&&Cc(a)?gb(a,lb(b,!1,!0)):[]}),Qe=ac(),Re=ac(!0),Se=jd(function(a){for(var b=a.length,d=b,e=Nd(k),f=vc(),g=f===c,h=[];d--;){var i=a[d]=Cc(i=a[d])?i:[];e[d]=g&&120<=i.length&&pe&&je?new Oa(d&&i):null}var g=a[0],j=-1,k=g?g.length:0,l=e[0];a:for(;++j<k;)if(i=g[j],0>(l?Pa(l,i):f(h,i,0))){for(d=b;--d;){var m=e[d];if(0>(m?Pa(m,i):f(a[d],i,0)))continue a}l&&l.push(i),h.push(i)}return h}),Te=jd(function(b,c){c=lb(c);var d=bb(b,c);return zb(b,c.sort(a)),d}),Ue=oc(),Ve=oc(!0),We=jd(function(a){return Hb(lb(a,!1,!0))}),Xe=jd(function(a,b){return Cc(a)?gb(a,b):[]}),Ye=jd(Xc),Ze=jd(function(a){var b=a.length,c=b>2?a[b-2]:u,d=b>1?a[b-1]:u;return b>2&&"function"==typeof c?b-=2:(c=b>1&&"function"==typeof d?(--b,d):u,d=u),a.length=b,Yc(a,c,d)}),$e=jd(function(a){return a=lb(a),this.thru(function(b){b=Bf(b)?b:[Nc(b)];for(var c=a,d=-1,e=b.length,f=-1,g=c.length,h=Nd(e+g);++d<e;)h[d]=b[d];for(;++f<g;)h[d++]=c[f];return h})}),_e=jd(function(a,b){return bb(a,lb(b))}),af=Rb(function(a,b,c){_d.call(a,c)?++a[c]:a[c]=1}),bf=_b(He),cf=_b(Ie,!0),df=dc(Ra,He),ef=dc(function(a,b){for(var c=a.length;c--&&!1!==b(a[c],c,a););return a},Ie),ff=Rb(function(a,b,c){_d.call(a,c)?a[c].push(b):a[c]=[b]}),gf=Rb(function(a,b,c){a[c]=b}),hf=jd(function(a,b,c){var d=-1,e="function"==typeof b,f=Fc(b),g=Cc(a)?Nd(a.length):[];return He(a,function(a){var h=e?b:f&&null!=a?a[b]:u;g[++d]=h?h.apply(a,c):Bc(a,b,c)}),g}),jf=Rb(function(a,b,c){a[c?0:1].push(b)},function(){return[[],[]]}),kf=jc(Ya,He),lf=jc(function(a,b,c,d){var e=a.length;for(d&&e&&(c=a[--e]);e--;)c=b(c,a[e],e,a);return c},Ie),mf=jd(function(a,b){if(null==a)return[];var c=b[2];return c&&Ec(b[0],b[1],c)&&(b.length=1),Fb(a,lb(b),[])}),nf=we||function(){return(new Od).getTime()},of=jd(function(a,b,c){var d=w;if(c.length)var e=p(c,of.placeholder),d=d|B;return pc(a,d,b,c,e)}),pf=jd(function(a,b){b=b.length?lb(b):zd(a);for(var c=-1,d=b.length;++c<d;){var e=b[c];a[e]=pc(a[e],w,a)}return a}),qf=jd(function(a,b,c){var d=w|x;if(c.length)var e=p(c,qf.placeholder),d=d|B;return pc(b,d,a,c,e)}),rf=Yb(z),sf=Yb(A),tf=jd(function(a,b){return fb(a,1,b)}),uf=jd(function(a,b,c){return fb(a,b,c)}),vf=cc(),wf=cc(!0),xf=jd(function(a,b){if(b=lb(b),"function"!=typeof a||!Sa(b,d))throw new Wd(M);var c=b.length;return jd(function(d){for(var e=ve(d.length,c);e--;)d[e]=b[e](d[e]);return a.apply(this,d)})}),yf=ic(B),zf=ic(C),Af=jd(function(a,b){return pc(a,E,u,u,u,lb(b))}),Bf=re||function(a){return n(a)&&Hc(a.length)&&be.call(a)==P},Cf=Sb(wb),Df=Sb(function(a,b,c){return c?_a(a,b,c):ab(a,b)}),Ef=Zb(Df,function(a,b){return a===u?b:a}),Ff=Zb(Cf,Ic),Gf=bc(nb),Hf=bc(ob),If=ec(Je),Jf=ec(Ke),Kf=fc(nb),Lf=fc(ob),Mf=te?function(a){var b=null==a?u:a.constructor;return"function"==typeof b&&b.prototype===a||"function"!=typeof a&&Cc(a)?Lc(a):pd(a)?te(a):[]}:Lc,Nf=gc(!0),Of=gc(),Pf=jd(function(a,b){if(null==a)return{};if("function"!=typeof b[0])return b=Wa(lb(b),Vd),Jc(a,gb(Ad(a),b));var c=Nb(b[0],b[1],3);return Kc(a,function(a,b,d){return!c(a,b,d)})}),Qf=jd(function(a,b){return null==a?{}:"function"==typeof b[0]?Kc(a,Nb(b[0],b[1],3)):Jc(a,lb(b))}),Rf=Wb(function(a,b,c){return b=b.toLowerCase(),a+(c?b.charAt(0).toUpperCase()+b.slice(1):b)}),Sf=Wb(function(a,b,c){return a+(c?"-":"")+b.toLowerCase()}),Tf=hc(),Uf=hc(!0),Vf=Wb(function(a,b,c){return a+(c?"_":"")+b.toLowerCase()}),Wf=Wb(function(a,b,c){return a+(c?" ":"")+(b.charAt(0).toUpperCase()+b.slice(1))}),Xf=jd(function(a,b){try{return a.apply(u,b)}catch(c){ -return nd(c)?c:new Pd(c)}}),Yf=jd(function(a,b){return function(c){return Bc(c,a,b)}}),Zf=jd(function(a,b){return function(c){return Bc(a,c,b)}}),$f=nc("ceil"),_f=nc("floor"),ag=$b(kd,ze),bg=$b(wd,Ae),cg=nc("round");return Ja.prototype=Ka.prototype,La.prototype=Ge(Ka.prototype),La.prototype.constructor=La,Ma.prototype=Ge(Ka.prototype),Ma.prototype.constructor=Ma,Na.prototype["delete"]=function(a){return this.has(a)&&delete this.__data__[a]},Na.prototype.get=function(a){return"__proto__"==a?u:this.__data__[a]},Na.prototype.has=function(a){return"__proto__"!=a&&_d.call(this.__data__,a)},Na.prototype.set=function(a,b){return"__proto__"!=a&&(this.__data__[a]=b),this},Oa.prototype.push=function(a){var b=this.data;"string"==typeof a||pd(a)?b.set.add(a):b.hash[a]=!0},id.Cache=Na,Ja.after=function(a,b){if("function"!=typeof b){if("function"!=typeof a)throw new Wd(M);var c=a;a=b,b=c}return a=se(a=+a)?a:0,function(){return 1>--a?b.apply(this,arguments):void 0}},Ja.ary=function(a,b,c){return c&&Ec(a,b,c)&&(b=u),b=a&&null==b?a.length:ue(+b||0,0),pc(a,D,u,u,u,u,b)},Ja.assign=Df,Ja.at=_e,Ja.before=gd,Ja.bind=of,Ja.bindAll=pf,Ja.bindKey=qf,Ja.callback=Hd,Ja.chain=$c,Ja.chunk=function(a,b,c){b=(c?Ec(a,b,c):null==b)?1:ue(qe(b)||1,1),c=0;for(var d=a?a.length:0,e=-1,f=Nd(oe(d/b));d>c;)f[++e]=Cb(a,c,c+=b);return f},Ja.compact=function(a){for(var b=-1,c=a?a.length:0,d=-1,e=[];++b<c;){var f=a[b];f&&(e[++d]=f)}return e},Ja.constant=function(a){return function(){return a}},Ja.countBy=af,Ja.create=function(a,b,c){var d=Ge(a);return c&&Ec(a,b,c)&&(b=u),b?ab(d,b):d},Ja.curry=rf,Ja.curryRight=sf,Ja.debounce=hd,Ja.defaults=Ef,Ja.defaultsDeep=Ff,Ja.defer=tf,Ja.delay=uf,Ja.difference=Pe,Ja.drop=Qc,Ja.dropRight=Rc,Ja.dropRightWhile=function(a,b,c){return a&&a.length?Jb(a,tc(b,c,3),!0,!0):[]},Ja.dropWhile=function(a,b,c){return a&&a.length?Jb(a,tc(b,c,3),!0):[]},Ja.fill=function(a,b,c,d){var e=a?a.length:0;if(!e)return[];for(c&&"number"!=typeof c&&Ec(a,b,c)&&(c=0,d=e),e=a.length,c=null==c?0:+c||0,0>c&&(c=-c>e?0:e+c),d=d===u||d>e?e:+d||0,0>d&&(d+=e),e=c>d?0:d>>>0,c>>>=0;e>c;)a[c++]=b;return a},Ja.filter=bd,Ja.flatten=function(a,b,c){var d=a?a.length:0;return c&&Ec(a,b,c)&&(b=!1),d?lb(a,b):[]},Ja.flattenDeep=function(a){return a&&a.length?lb(a,!0):[]},Ja.flow=vf,Ja.flowRight=wf,Ja.forEach=df,Ja.forEachRight=ef,Ja.forIn=If,Ja.forInRight=Jf,Ja.forOwn=Kf,Ja.forOwnRight=Lf,Ja.functions=zd,Ja.groupBy=ff,Ja.indexBy=gf,Ja.initial=function(a){return Rc(a,1)},Ja.intersection=Se,Ja.invert=function(a,b,c){c&&Ec(a,b,c)&&(b=u),c=-1;for(var d=Mf(a),e=d.length,f={};++c<e;){var g=d[c],h=a[g];b?_d.call(f,h)?f[h].push(g):f[h]=[g]:f[h]=g}return f},Ja.invoke=hf,Ja.keys=Mf,Ja.keysIn=Ad,Ja.map=dd,Ja.mapKeys=Nf,Ja.mapValues=Of,Ja.matches=Jd,Ja.matchesProperty=function(a,b){return vb(a,eb(b,!0))},Ja.memoize=id,Ja.merge=Cf,Ja.method=Yf,Ja.methodOf=Zf,Ja.mixin=Kd,Ja.modArgs=xf,Ja.negate=function(a){if("function"!=typeof a)throw new Wd(M);return function(){return!a.apply(this,arguments)}},Ja.omit=Pf,Ja.once=function(a){return gd(2,a)},Ja.pairs=Bd,Ja.partial=yf,Ja.partialRight=zf,Ja.partition=jf,Ja.pick=Qf,Ja.pluck=function(a,b){return dd(a,Md(b))},Ja.property=Md,Ja.propertyOf=function(a){return function(b){return qb(a,Oc(b),b+"")}},Ja.pull=function(){var a=arguments,b=a[0];if(!b||!b.length)return b;for(var c=0,d=vc(),e=a.length;++c<e;)for(var f=0,g=a[c];-1<(f=d(b,g,f));)le.call(b,f,1);return b},Ja.pullAt=Te,Ja.range=function(a,b,c){c&&Ec(a,b,c)&&(b=c=u),a=+a||0,c=null==c?1:+c||0,null==b?(b=a,a=0):b=+b||0;var d=-1;b=ue(oe((b-a)/(c||1)),0);for(var e=Nd(b);++d<b;)e[d]=a,a+=c;return e},Ja.rearg=Af,Ja.reject=function(a,b,c){var d=Bf(a)?Ta:jb;return b=tc(b,c,3),d(a,function(a,c,d){return!b(a,c,d)})},Ja.remove=function(a,b,c){var d=[];if(!a||!a.length)return d;var e=-1,f=[],g=a.length;for(b=tc(b,c,3);++e<g;)c=a[e],b(c,e,a)&&(d.push(c),f.push(e));return zb(a,f),d},Ja.rest=Vc,Ja.restParam=jd,Ja.set=function(a,b,c){if(null==a)return a;var d=b+"";b=null!=a[d]||Fc(b,a)?[d]:Oc(b);for(var d=-1,e=b.length,f=e-1,g=a;null!=g&&++d<e;){var h=b[d];pd(g)&&(d==f?g[h]=c:null==g[h]&&(g[h]=Dc(b[d+1])?[]:{})),g=g[h]}return a},Ja.shuffle=function(a){return ed(a,Ae)},Ja.slice=function(a,b,c){var d=a?a.length:0;return d?(c&&"number"!=typeof c&&Ec(a,b,c)&&(b=0,c=d),Cb(a,b,c)):[]},Ja.sortBy=function(a,b,c){if(null==a)return[];c&&Ec(a,b,c)&&(b=u);var d=-1;return b=tc(b,c,3),a=tb(a,function(a,c,e){return{a:b(a,c,e),b:++d,c:a}}),Eb(a,h)},Ja.sortByAll=mf,Ja.sortByOrder=function(a,b,c,d){return null==a?[]:(d&&Ec(b,c,d)&&(c=u),Bf(b)||(b=null==b?[]:[b]),Bf(c)||(c=null==c?[]:[c]),Fb(a,b,c))},Ja.spread=function(a){if("function"!=typeof a)throw new Wd(M);return function(b){return a.apply(this,b)}},Ja.take=function(a,b,c){return a&&a.length?((c?Ec(a,b,c):null==b)&&(b=1),Cb(a,0,0>b?0:b)):[]},Ja.takeRight=function(a,b,c){var d=a?a.length:0;return d?((c?Ec(a,b,c):null==b)&&(b=1),b=d-(+b||0),Cb(a,0>b?0:b)):[]},Ja.takeRightWhile=function(a,b,c){return a&&a.length?Jb(a,tc(b,c,3),!1,!0):[]},Ja.takeWhile=function(a,b,c){return a&&a.length?Jb(a,tc(b,c,3)):[]},Ja.tap=function(a,b,c){return b.call(c,a),a},Ja.throttle=function(a,b,c){var d=!0,e=!0;if("function"!=typeof a)throw new Wd(M);return!1===c?d=!1:pd(c)&&(d="leading"in c?!!c.leading:d,e="trailing"in c?!!c.trailing:e),hd(a,b,{leading:d,maxWait:+b,trailing:e})},Ja.thru=_c,Ja.times=function(a,b,c){if(a=qe(a),1>a||!se(a))return[];var d=-1,e=Nd(ve(a,4294967295));for(b=Nb(b,c,1);++d<a;)4294967295>d?e[d]=b(d):b(d);return e},Ja.toArray=xd,Ja.toPlainObject=yd,Ja.transform=function(a,b,c,d){var e=Bf(a)||vd(a);return b=tc(b,d,4),null==c&&(e||pd(a)?(d=a.constructor,c=e?Bf(a)?new d:[]:Ge(od(d)?d.prototype:u)):c={}),(e?Ra:nb)(a,function(a,d,e){return b(c,a,d,e)}),c},Ja.union=We,Ja.uniq=Wc,Ja.unzip=Xc,Ja.unzipWith=Yc,Ja.values=Cd,Ja.valuesIn=function(a){return Ib(a,Ad(a))},Ja.where=function(a,b){return bd(a,ub(b))},Ja.without=Xe,Ja.wrap=function(a,b){return b=null==b?Id:b,pc(b,B,u,[a],[])},Ja.xor=function(){for(var a=-1,b=arguments.length;++a<b;){var c=arguments[a];if(Cc(c))var d=d?Xa(gb(d,c),gb(c,d)):c}return d?Hb(d):[]},Ja.zip=Ye,Ja.zipObject=Zc,Ja.zipWith=Ze,Ja.backflow=wf,Ja.collect=dd,Ja.compose=wf,Ja.each=df,Ja.eachRight=ef,Ja.extend=Df,Ja.iteratee=Hd,Ja.methods=zd,Ja.object=Zc,Ja.select=bd,Ja.tail=Vc,Ja.unique=Wc,Kd(Ja,Ja),Ja.add=function(a,b){return(+a||0)+(+b||0)},Ja.attempt=Xf,Ja.camelCase=Rf,Ja.capitalize=function(a){return(a=e(a))&&a.charAt(0).toUpperCase()+a.slice(1)},Ja.ceil=$f,Ja.clone=function(a,b,c,d){return b&&"boolean"!=typeof b&&Ec(a,b,c)?b=!1:"function"==typeof b&&(d=c,c=b,b=!1),"function"==typeof c?eb(a,b,Nb(c,d,3)):eb(a,b)},Ja.cloneDeep=function(a,b,c){return"function"==typeof b?eb(a,!0,Nb(b,c,3)):eb(a,!0)},Ja.deburr=Dd,Ja.endsWith=function(a,b,c){a=e(a),b+="";var d=a.length;return c=c===u?d:ve(0>c?0:+c||0,d),c-=b.length,c>=0&&a.indexOf(b,c)==c},Ja.escape=function(a){return(a=e(a))&&ma.test(a)?a.replace(ka,j):a},Ja.escapeRegExp=function(a){return(a=e(a))&&ua.test(a)?a.replace(ta,k):a||"(?:)"},Ja.every=ad,Ja.find=bf,Ja.findIndex=Qe,Ja.findKey=Gf,Ja.findLast=cf,Ja.findLastIndex=Re,Ja.findLastKey=Hf,Ja.findWhere=function(a,b){return bf(a,ub(b))},Ja.first=Sc,Ja.floor=_f,Ja.get=function(a,b,c){return a=null==a?u:qb(a,Oc(b),b+""),a===u?c:a},Ja.gt=kd,Ja.gte=function(a,b){return a>=b},Ja.has=function(a,b){if(null==a)return!1;var c=_d.call(a,b);if(!c&&!Fc(b)){if(b=Oc(b),a=1==b.length?a:qb(a,Cb(b,0,-1)),null==a)return!1;b=Uc(b),c=_d.call(a,b)}return c||Hc(a.length)&&Dc(b,a.length)&&(Bf(a)||ld(a))},Ja.identity=Id,Ja.includes=cd,Ja.indexOf=Tc,Ja.inRange=function(a,b,c){return b=+b||0,c===u?(c=b,b=0):c=+c||0,a>=ve(b,c)&&a<ue(b,c)},Ja.isArguments=ld,Ja.isArray=Bf,Ja.isBoolean=function(a){return!0===a||!1===a||n(a)&&be.call(a)==Q},Ja.isDate=function(a){return n(a)&&be.call(a)==R},Ja.isElement=function(a){return!!a&&1===a.nodeType&&n(a)&&!sd(a)},Ja.isEmpty=function(a){return null==a?!0:Cc(a)&&(Bf(a)||ud(a)||ld(a)||n(a)&&od(a.splice))?!a.length:!Mf(a).length},Ja.isEqual=md,Ja.isError=nd,Ja.isFinite=function(a){return"number"==typeof a&&se(a)},Ja.isFunction=od,Ja.isMatch=function(a,b,c,d){return c="function"==typeof c?Nb(c,d,3):u,sb(a,wc(b),c)},Ja.isNaN=function(a){return rd(a)&&a!=+a},Ja.isNative=qd,Ja.isNull=function(a){return null===a},Ja.isNumber=rd,Ja.isObject=pd,Ja.isPlainObject=sd,Ja.isRegExp=td,Ja.isString=ud,Ja.isTypedArray=vd,Ja.isUndefined=function(a){return a===u},Ja.kebabCase=Sf,Ja.last=Uc,Ja.lastIndexOf=function(a,b,c){var d=a?a.length:0;if(!d)return-1;var e=d;if("number"==typeof c)e=(0>c?ue(d+c,0):ve(c||0,d-1))+1;else if(c)return e=Lb(a,b,!0)-1,a=a[e],(b===b?b===a:a!==a)?e:-1;if(b!==b)return m(a,e,!0);for(;e--;)if(a[e]===b)return e;return-1},Ja.lt=wd,Ja.lte=function(a,b){return b>=a},Ja.max=ag,Ja.min=bg,Ja.noConflict=function(){return Ua._=ce,this},Ja.noop=Ld,Ja.now=nf,Ja.pad=function(a,b,c){a=e(a),b=+b;var d=a.length;return b>d&&se(b)?(d=(b-d)/2,b=qe(d),d=oe(d),c=lc("",d,c),c.slice(0,b)+a+c):a},Ja.padLeft=Tf,Ja.padRight=Uf,Ja.parseInt=function(a,b,c){return(c?Ec(a,b,c):null==b)?b=0:b&&(b=+b),a=Fd(a),xe(a,b||(za.test(a)?16:10))},Ja.random=function(a,b,c){c&&Ec(a,b,c)&&(b=c=u);var d=null==a,e=null==b;return null==c&&(e&&"boolean"==typeof a?(c=a,a=1):"boolean"==typeof b&&(c=b,e=!0)),d&&e&&(b=1,e=!1),a=+a||0,e?(b=a,a=0):b=+b||0,c||a%1||b%1?(c=ye(),ve(a+c*(b-a+ge("1e-"+((c+"").length-1))),b)):Ab(a,b)},Ja.reduce=kf,Ja.reduceRight=lf,Ja.repeat=Ed,Ja.result=function(a,b,c){var d=null==a?u:a[b];return d===u&&(null==a||Fc(b,a)||(b=Oc(b),a=1==b.length?a:qb(a,Cb(b,0,-1)),d=null==a?u:a[Uc(b)]),d=d===u?c:d),od(d)?d.call(a):d},Ja.round=cg,Ja.runInContext=t,Ja.size=function(a){var b=a?Ne(a):0;return Hc(b)?b:Mf(a).length},Ja.snakeCase=Vf,Ja.some=fd,Ja.sortedIndex=Ue,Ja.sortedLastIndex=Ve,Ja.startCase=Wf,Ja.startsWith=function(a,b,c){return a=e(a),c=null==c?0:ve(0>c?0:+c||0,a.length),a.lastIndexOf(b,c)==c},Ja.sum=function(a,b,c){if(c&&Ec(a,b,c)&&(b=u),b=tc(b,c,3),1==b.length){a=Bf(a)?a:Mc(a),c=a.length;for(var d=0;c--;)d+=+b(a[c])||0;a=d}else a=Gb(a,b);return a},Ja.template=function(a,b,c){var d=Ja.templateSettings;c&&Ec(a,b,c)&&(b=c=u),a=e(a),b=_a(ab({},c||b),d,$a),c=_a(ab({},b.imports),d.imports,$a);var f,g,h=Mf(c),i=Ib(c,h),j=0;c=b.interpolate||Da;var k="__p+='";c=Ud((b.escape||Da).source+"|"+c.source+"|"+(c===pa?xa:Da).source+"|"+(b.evaluate||Da).source+"|$","g");var m="sourceURL"in b?"//# sourceURL="+b.sourceURL+"\n":"";if(a.replace(c,function(b,c,d,e,h,i){return d||(d=e),k+=a.slice(j,i).replace(Ea,l),c&&(f=!0,k+="'+__e("+c+")+'"),h&&(g=!0,k+="';"+h+";\n__p+='"),d&&(k+="'+((__t=("+d+"))==null?'':__t)+'"),j=i+b.length,b}),k+="';",(b=b.variable)||(k="with(obj){"+k+"}"),k=(g?k.replace(ga,""):k).replace(ha,"$1").replace(ia,"$1;"),k="function("+(b||"obj")+"){"+(b?"":"obj||(obj={});")+"var __t,__p=''"+(f?",__e=_.escape":"")+(g?",__j=Array.prototype.join;function print(){__p+=__j.call(arguments,'')}":";")+k+"return __p}",b=Xf(function(){return Qd(h,m+"return "+k).apply(u,i)}),b.source=k,nd(b))throw b;return b},Ja.trim=Fd,Ja.trimLeft=function(a,b,c){var d=a;return(a=e(a))?a.slice((c?Ec(d,b,c):null==b)?q(a):f(a,b+"")):a},Ja.trimRight=function(a,b,c){var d=a;return(a=e(a))?(c?Ec(d,b,c):null==b)?a.slice(0,r(a)+1):a.slice(0,g(a,b+"")+1):a},Ja.trunc=function(a,b,c){c&&Ec(a,b,c)&&(b=u);var d=F;if(c=G,null!=b)if(pd(b)){var f="separator"in b?b.separator:f,d="length"in b?+b.length||0:d;c="omission"in b?e(b.omission):c}else d=+b||0;if(a=e(a),d>=a.length)return a;if(d-=c.length,1>d)return c;if(b=a.slice(0,d),null==f)return b+c;if(td(f)){if(a.slice(d).search(f)){var g,h=a.slice(0,d);for(f.global||(f=Ud(f.source,(ya.exec(f)||"")+"g")),f.lastIndex=0;a=f.exec(h);)g=a.index;b=b.slice(0,null==g?d:g)}}else a.indexOf(f,d)!=d&&(f=b.lastIndexOf(f),f>-1&&(b=b.slice(0,f)));return b+c},Ja.unescape=function(a){return(a=e(a))&&la.test(a)?a.replace(ja,s):a},Ja.uniqueId=function(a){var b=++ae;return e(a)+b},Ja.words=Gd,Ja.all=ad,Ja.any=fd,Ja.contains=cd,Ja.eq=md,Ja.detect=bf,Ja.foldl=kf,Ja.foldr=lf,Ja.head=Sc,Ja.include=cd,Ja.inject=kf,Kd(Ja,function(){var a={};return nb(Ja,function(b,c){Ja.prototype[c]||(a[c]=b)}),a}(),!1),Ja.sample=ed,Ja.prototype.sample=function(a){return this.__chain__||null!=a?this.thru(function(b){return ed(b,a)}):ed(this.value())},Ja.VERSION=v,Ra("bind bindKey curry curryRight partial partialRight".split(" "),function(a){Ja[a].placeholder=Ja}),Ra(["drop","take"],function(a,b){Ma.prototype[a]=function(c){var d=this.__filtered__;if(d&&!b)return new Ma(this);c=null==c?1:ue(qe(c)||0,0);var e=this.clone();return d?e.__takeCount__=ve(e.__takeCount__,c):e.__views__.push({size:c,type:a+(0>e.__dir__?"Right":"")}),e},Ma.prototype[a+"Right"]=function(b){return this.reverse()[a](b).reverse()}}),Ra(["filter","map","takeWhile"],function(a,b){var c=b+1,d=c!=L;Ma.prototype[a]=function(a,b){var e=this.clone();return e.__iteratees__.push({iteratee:tc(a,b,1),type:c}),e.__filtered__=e.__filtered__||d,e}}),Ra(["first","last"],function(a,b){var c="take"+(b?"Right":"");Ma.prototype[a]=function(){return this[c](1).value()[0]}}),Ra(["initial","rest"],function(a,b){var c="drop"+(b?"":"Right");Ma.prototype[a]=function(){return this.__filtered__?new Ma(this):this[c](1)}}),Ra(["pluck","where"],function(a,b){var c=b?"filter":"map",d=b?ub:Md;Ma.prototype[a]=function(a){return this[c](d(a))}}),Ma.prototype.compact=function(){return this.filter(Id)},Ma.prototype.reject=function(a,b){return a=tc(a,b,1),this.filter(function(b){return!a(b)})},Ma.prototype.slice=function(a,b){a=null==a?0:+a||0;var c=this;return c.__filtered__&&(a>0||0>b)?new Ma(c):(0>a?c=c.takeRight(-a):a&&(c=c.drop(a)),b!==u&&(b=+b||0,c=0>b?c.dropRight(-b):c.take(b-a)),c)},Ma.prototype.takeRightWhile=function(a,b){return this.reverse().takeWhile(a,b).reverse()},Ma.prototype.toArray=function(){return this.take(Ae)},nb(Ma.prototype,function(a,b){var c=/^(?:filter|map|reject)|While$/.test(b),d=/^(?:first|last)$/.test(b),e=Ja[d?"take"+("last"==b?"Right":""):b];e&&(Ja.prototype[b]=function(){function b(a){return d&&g?e(a,1)[0]:e.apply(u,Xa([a],f))}var f=d?[1]:arguments,g=this.__chain__,h=this.__wrapped__,i=!!this.__actions__.length,j=h instanceof Ma,k=f[0],l=j||Bf(h);return l&&c&&"function"==typeof k&&1!=k.length&&(j=l=!1),k={func:_c,args:[b],thisArg:u},i=j&&!i,d&&!g?i?(h=h.clone(),h.__actions__.push(k),a.call(h)):e.call(u,this.value())[0]:!d&&l?(h=i?h:new Ma(this),h=a.apply(h,f),h.__actions__.push(k),new La(h,g)):this.thru(b)})}),Ra("join pop push replace shift sort splice split unshift".split(" "),function(a){var b=(/^(?:replace|split)$/.test(a)?Zd:Xd)[a],c=/^(?:push|sort|unshift)$/.test(a)?"tap":"thru",d=/^(?:join|pop|replace|shift)$/.test(a);Ja.prototype[a]=function(){var a=arguments;return d&&!this.__chain__?b.apply(this.value(),a):this[c](function(c){return b.apply(c,a)})}}),nb(Ma.prototype,function(a,b){var c=Ja[b];if(c){var d=c.name+"";(Fe[d]||(Fe[d]=[])).push({name:b,func:c})}}),Fe[kc(u,x).name]=[{name:"wrapper",func:u}],Ma.prototype.clone=function(){var a=new Ma(this.__wrapped__);return a.__actions__=Qa(this.__actions__),a.__dir__=this.__dir__,a.__filtered__=this.__filtered__,a.__iteratees__=Qa(this.__iteratees__),a.__takeCount__=this.__takeCount__,a.__views__=Qa(this.__views__),a},Ma.prototype.reverse=function(){if(this.__filtered__){var a=new Ma(this);a.__dir__=-1,a.__filtered__=!0}else a=this.clone(),a.__dir__*=-1;return a},Ma.prototype.value=function(){var a,b=this.__wrapped__.value(),c=this.__dir__,d=Bf(b),e=0>c,f=d?b.length:0;a=f;for(var g=this.__views__,h=0,i=-1,j=g.length;++i<j;){var k=g[i],l=k.size;switch(k.type){case"drop":h+=l;break;case"dropRight":a-=l;break;case"take":a=ve(a,h+l);break;case"takeRight":h=ue(h,a-l)}}if(a={start:h,end:a},g=a.start,h=a.end,a=h-g,e=e?h:g-1,g=this.__iteratees__,h=g.length,i=0,j=ve(a,this.__takeCount__),!d||J>f||f==a&&j==a)return Kb(b,this.__actions__);d=[];a:for(;a--&&j>i;){for(e+=c,f=-1,k=b[e];++f<h;){var m=g[f],l=m.type,m=m.iteratee(k);if(l==L)k=m;else if(!m){if(l==K)continue a;break a}}d[i++]=k}return d},Ja.prototype.chain=function(){return $c(this)},Ja.prototype.commit=function(){return new La(this.value(),this.__chain__)},Ja.prototype.concat=$e,Ja.prototype.plant=function(a){for(var b,c=this;c instanceof Ka;){var d=Pc(c);b?e.__wrapped__=d:b=d;var e=d,c=c.__wrapped__}return e.__wrapped__=a,b},Ja.prototype.reverse=function(){function a(a){return a.reverse()}var b=this.__wrapped__;return b instanceof Ma?(this.__actions__.length&&(b=new Ma(this)),b=b.reverse(),b.__actions__.push({func:_c,args:[a],thisArg:u}),new La(b,this.__chain__)):this.thru(a)},Ja.prototype.toString=function(){return this.value()+""},Ja.prototype.run=Ja.prototype.toJSON=Ja.prototype.valueOf=Ja.prototype.value=function(){return Kb(this.__wrapped__,this.__actions__)},Ja.prototype.collect=Ja.prototype.map,Ja.prototype.head=Ja.prototype.first,Ja.prototype.select=Ja.prototype.filter,Ja.prototype.tail=Ja.prototype.rest,Ja}var u,v="3.10.1",w=1,x=2,y=4,z=8,A=16,B=32,C=64,D=128,E=256,F=30,G="...",H=150,I=16,J=200,K=1,L=2,M="Expected a function",N="__lodash_placeholder__",O="[object Arguments]",P="[object Array]",Q="[object Boolean]",R="[object Date]",S="[object Error]",T="[object Function]",U="[object Number]",V="[object Object]",W="[object RegExp]",X="[object String]",Y="[object ArrayBuffer]",Z="[object Float32Array]",$="[object Float64Array]",_="[object Int8Array]",aa="[object Int16Array]",ba="[object Int32Array]",ca="[object Uint8Array]",da="[object Uint8ClampedArray]",ea="[object Uint16Array]",fa="[object Uint32Array]",ga=/\b__p\+='';/g,ha=/\b(__p\+=)''\+/g,ia=/(__e\(.*?\)|\b__t\))\+'';/g,ja=/&(?:amp|lt|gt|quot|#39|#96);/g,ka=/[&<>"'`]/g,la=RegExp(ja.source),ma=RegExp(ka.source),na=/<%-([\s\S]+?)%>/g,oa=/<%([\s\S]+?)%>/g,pa=/<%=([\s\S]+?)%>/g,qa=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\n\\]|\\.)*?\1)\]/,ra=/^\w*$/,sa=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\n\\]|\\.)*?)\2)\]/g,ta=/^[:!,]|[\\^$.*+?()[\]{}|\/]|(^[0-9a-fA-Fnrtuvx])|([\n\r\u2028\u2029])/g,ua=RegExp(ta.source),va=/[\u0300-\u036f\ufe20-\ufe23]/g,wa=/\\(\\)?/g,xa=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,ya=/\w*$/,za=/^0[xX]/,Aa=/^\[object .+?Constructor\]$/,Ba=/^\d+$/,Ca=/[\xc0-\xd6\xd8-\xde\xdf-\xf6\xf8-\xff]/g,Da=/($^)/,Ea=/['\n\r\u2028\u2029\\]/g,Fa=RegExp("[A-Z\\xc0-\\xd6\\xd8-\\xde]+(?=[A-Z\\xc0-\\xd6\\xd8-\\xde][a-z\\xdf-\\xf6\\xf8-\\xff]+)|[A-Z\\xc0-\\xd6\\xd8-\\xde]?[a-z\\xdf-\\xf6\\xf8-\\xff]+|[A-Z\\xc0-\\xd6\\xd8-\\xde]+|[0-9]+","g"),Ga="Array ArrayBuffer Date Error Float32Array Float64Array Function Int8Array Int16Array Int32Array Math Number Object RegExp Set String _ clearTimeout isFinite parseFloat parseInt setTimeout TypeError Uint8Array Uint8ClampedArray Uint16Array Uint32Array WeakMap".split(" "),Ha={};Ha[Z]=Ha[$]=Ha[_]=Ha[aa]=Ha[ba]=Ha[ca]=Ha[da]=Ha[ea]=Ha[fa]=!0,Ha[O]=Ha[P]=Ha[Y]=Ha[Q]=Ha[R]=Ha[S]=Ha[T]=Ha["[object Map]"]=Ha[U]=Ha[V]=Ha[W]=Ha["[object Set]"]=Ha[X]=Ha["[object WeakMap]"]=!1;var Ia={};Ia[O]=Ia[P]=Ia[Y]=Ia[Q]=Ia[R]=Ia[Z]=Ia[$]=Ia[_]=Ia[aa]=Ia[ba]=Ia[U]=Ia[V]=Ia[W]=Ia[X]=Ia[ca]=Ia[da]=Ia[ea]=Ia[fa]=!0,Ia[S]=Ia[T]=Ia["[object Map]"]=Ia["[object Set]"]=Ia["[object WeakMap]"]=!1;var Ja={"À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","Ç":"C","ç":"c","Ð":"D","ð":"d","È":"E","É":"E","Ê":"E","Ë":"E","è":"e","é":"e","ê":"e","ë":"e","Ì":"I","Í":"I","Î":"I","Ï":"I","ì":"i","í":"i","î":"i","ï":"i","Ñ":"N","ñ":"n","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","Ù":"U","Ú":"U","Û":"U","Ü":"U","ù":"u","ú":"u","û":"u","ü":"u","Ý":"Y","ý":"y","ÿ":"y","Æ":"Ae","æ":"ae","Þ":"Th","þ":"th","ß":"ss"},Ka={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`"},La={"&":"&","<":"<",">":">",""":'"',"'":"'","`":"`"},Ma={"function":!0,object:!0},Na={0:"x30",1:"x31",2:"x32",3:"x33",4:"x34",5:"x35",6:"x36",7:"x37",8:"x38",9:"x39",A:"x41",B:"x42",C:"x43",D:"x44",E:"x45",F:"x46",a:"x61",b:"x62",c:"x63",d:"x64",e:"x65",f:"x66",n:"x6e",r:"x72",t:"x74",u:"x75",v:"x76",x:"x78"},Oa={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},Pa=Ma[typeof exports]&&exports&&!exports.nodeType&&exports,Qa=Ma[typeof module]&&module&&!module.nodeType&&module,Ra=Ma[typeof self]&&self&&self.Object&&self,Sa=Ma[typeof window]&&window&&window.Object&&window,Ta=Qa&&Qa.exports===Pa&&Pa,Ua=Pa&&Qa&&"object"==typeof global&&global&&global.Object&&global||Sa!==(this&&this.window)&&Sa||Ra||this,Va=t();"function"==typeof define&&"object"==typeof define.amd&&define.amd?(Ua._=Va,define(function(){return Va})):Pa&&Qa?Ta?(Qa.exports=Va)._=Va:Pa._=Va:Ua._=Va}).call(this);var deviceIsAndroid=navigator.userAgent.indexOf("Android")>0,deviceIsIOS=/iP(ad|hone|od)/.test(navigator.userAgent),deviceIsIOS4=deviceIsIOS&&/OS 4_\d(_\d)?/.test(navigator.userAgent),deviceIsIOSWithBadTarget=deviceIsIOS&&/OS ([6-9]|\d{2})_\d/.test(navigator.userAgent);FastClick.prototype.needsClick=function(a){"use strict";switch(a.nodeName.toLowerCase()){case"button":case"select":case"textarea":if(a.disabled)return!0;break;case"input":if(deviceIsIOS&&"file"===a.type||a.disabled)return!0;break;case"label":case"video":return!0}return/\bneedsclick\b/.test(a.className)},FastClick.prototype.needsFocus=function(a){"use strict";switch(a.nodeName.toLowerCase()){case"textarea":return!0;case"select":return!deviceIsAndroid;case"input":switch(a.type){case"button":case"checkbox":case"file":case"image":case"radio":case"submit":return!1}return!a.disabled&&!a.readOnly;default:return/\bneedsfocus\b/.test(a.className)}},FastClick.prototype.sendClick=function(a,b){"use strict";var c,d;document.activeElement&&document.activeElement!==a&&document.activeElement.blur(),d=b.changedTouches[0],c=document.createEvent("MouseEvents"),c.initMouseEvent(this.determineEventType(a),!0,!0,window,1,d.screenX,d.screenY,d.clientX,d.clientY,!1,!1,!1,!1,0,null),c.forwardedTouchEvent=!0,a.dispatchEvent(c)},FastClick.prototype.determineEventType=function(a){"use strict";return deviceIsAndroid&&"select"===a.tagName.toLowerCase()?"mousedown":"click"},FastClick.prototype.focus=function(a){"use strict";var b;deviceIsIOS&&a.setSelectionRange&&0!==a.type.indexOf("date")&&"time"!==a.type?(b=a.value.length,a.setSelectionRange(b,b)):a.focus()},FastClick.prototype.updateScrollParent=function(a){"use strict";var b,c;if(b=a.fastClickScrollParent,!b||!b.contains(a)){c=a;do{if(c.scrollHeight>c.offsetHeight){b=c,a.fastClickScrollParent=c;break}c=c.parentElement}while(c)}b&&(b.fastClickLastScrollTop=b.scrollTop)},FastClick.prototype.getTargetElementFromEventTarget=function(a){"use strict";return a.nodeType===Node.TEXT_NODE?a.parentNode:a},FastClick.prototype.onTouchStart=function(a){"use strict";var b,c,d;if(a.targetTouches.length>1)return!0;if(b=this.getTargetElementFromEventTarget(a.target),c=a.targetTouches[0],deviceIsIOS){if(d=window.getSelection(),d.rangeCount&&!d.isCollapsed)return!0;if(!deviceIsIOS4){if(c.identifier===this.lastTouchIdentifier)return a.preventDefault(),!1;this.lastTouchIdentifier=c.identifier,this.updateScrollParent(b)}}return this.trackingClick=!0,this.trackingClickStart=a.timeStamp,this.targetElement=b,this.touchStartX=c.pageX,this.touchStartY=c.pageY,a.timeStamp-this.lastClickTime<this.tapDelay&&a.preventDefault(),!0},FastClick.prototype.touchHasMoved=function(a){"use strict";var b=a.changedTouches[0],c=this.touchBoundary;return Math.abs(b.pageX-this.touchStartX)>c||Math.abs(b.pageY-this.touchStartY)>c?!0:!1},FastClick.prototype.onTouchMove=function(a){"use strict";return this.trackingClick?((this.targetElement!==this.getTargetElementFromEventTarget(a.target)||this.touchHasMoved(a))&&(this.trackingClick=!1,this.targetElement=null),!0):!0},FastClick.prototype.findControl=function(a){"use strict";return void 0!==a.control?a.control:a.htmlFor?document.getElementById(a.htmlFor):a.querySelector("button, input:not([type=hidden]), keygen, meter, output, progress, select, textarea")},FastClick.prototype.onTouchEnd=function(a){"use strict";var b,c,d,e,f,g=this.targetElement;if(!this.trackingClick)return!0;if(a.timeStamp-this.lastClickTime<this.tapDelay)return this.cancelNextClick=!0,!0;if(this.cancelNextClick=!1,this.lastClickTime=a.timeStamp,c=this.trackingClickStart,this.trackingClick=!1,this.trackingClickStart=0,deviceIsIOSWithBadTarget&&(f=a.changedTouches[0],g=document.elementFromPoint(f.pageX-window.pageXOffset,f.pageY-window.pageYOffset)||g,g.fastClickScrollParent=this.targetElement.fastClickScrollParent),d=g.tagName.toLowerCase(),"label"===d){if(b=this.findControl(g)){if(this.focus(g),deviceIsAndroid)return!1;g=b}}else if(this.needsFocus(g))return a.timeStamp-c>100||deviceIsIOS&&window.top!==window&&"input"===d?(this.targetElement=null,!1):(this.focus(g),this.sendClick(g,a),deviceIsIOS&&"select"===d||(this.targetElement=null,a.preventDefault()),!1);return deviceIsIOS&&!deviceIsIOS4&&(e=g.fastClickScrollParent,e&&e.fastClickLastScrollTop!==e.scrollTop)?!0:(this.needsClick(g)||(a.preventDefault(),this.sendClick(g,a)),!1)},FastClick.prototype.onTouchCancel=function(){"use strict";this.trackingClick=!1,this.targetElement=null},FastClick.prototype.onMouse=function(a){"use strict";return this.targetElement?a.forwardedTouchEvent?!0:a.cancelable&&(!this.needsClick(this.targetElement)||this.cancelNextClick)?(a.stopImmediatePropagation?a.stopImmediatePropagation():a.propagationStopped=!0,a.stopPropagation(),a.preventDefault(),!1):!0:!0},FastClick.prototype.onClick=function(a){"use strict";var b;return this.trackingClick?(this.targetElement=null,this.trackingClick=!1,!0):"submit"===a.target.type&&0===a.detail?!0:(b=this.onMouse(a),b||(this.targetElement=null),b)},FastClick.prototype.destroy=function(){"use strict";var a=this.layer;deviceIsAndroid&&(a.removeEventListener("mouseover",this.onMouse,!0),a.removeEventListener("mousedown",this.onMouse,!0),a.removeEventListener("mouseup",this.onMouse,!0)),a.removeEventListener("click",this.onClick,!0),a.removeEventListener("touchstart",this.onTouchStart,!1),a.removeEventListener("touchmove",this.onTouchMove,!1),a.removeEventListener("touchend",this.onTouchEnd,!1),a.removeEventListener("touchcancel",this.onTouchCancel,!1)},FastClick.notNeeded=function(a){"use strict";var b,c;if("undefined"==typeof window.ontouchstart)return!0;if(c=+(/Chrome\/([0-9]+)/.exec(navigator.userAgent)||[,0])[1]){if(!deviceIsAndroid)return!0;if(b=document.querySelector("meta[name=viewport]")){if(-1!==b.content.indexOf("user-scalable=no"))return!0;if(c>31&&document.documentElement.scrollWidth<=window.outerWidth)return!0}}return"none"===a.style.msTouchAction?!0:!1},FastClick.attach=function(a,b){"use strict";return new FastClick(a,b)},"undefined"!=typeof define&&define.amd?define(function(){"use strict";return FastClick}):"undefined"!=typeof module&&module.exports?(module.exports=FastClick.attach,module.exports.FastClick=FastClick):window.FastClick=FastClick,function(){("undefined"!=typeof exports&&null!==exports?exports:this).ExifReader=function(){function a(){var a=this;this._getTagValueAt={1:function(b){return a._getByteAt(b)},2:function(b){return a._getAsciiAt(b)},3:function(b){return a._getShortAt(b)},4:function(b){return a._getLongAt(b)},5:function(b){return a._getRationalAt(b)},7:function(b){return a._getUndefinedAt(b)},9:function(b){return a._getSlongAt(b)},10:function(b){return a._getSrationalAt(b)}},this._tiffHeaderOffset=0}return a.prototype._MIN_DATA_BUFFER_LENGTH=2,a.prototype._JPEG_ID_SIZE=2,a.prototype._JPEG_ID=65496,a.prototype._APP_MARKER_SIZE=2,a.prototype._APP0_MARKER=65504,a.prototype._APP1_MARKER=65505,a.prototype._APP15_MARKER=65519,a.prototype._APP_ID_OFFSET=4,a.prototype._BYTES_Exif=1165519206,a.prototype._TIFF_HEADER_OFFSET=10,a.prototype._BYTE_ORDER_BIG_ENDIAN=18761,a.prototype._BYTE_ORDER_LITTLE_ENDIAN=19789,a.prototype.load=function(a){return this.loadView(new DataView(a))},a.prototype.loadView=function(a){return this._dataView=a,this._tags={},this._checkImageHeader(),this._readTags(),this._dataView=null},a.prototype._checkImageHeader=function(){if(this._dataView.byteLength<this._MIN_DATA_BUFFER_LENGTH||this._dataView.getUint16(0,!1)!==this._JPEG_ID)throw new Error("Invalid image format");if(this._parseAppMarkers(this._dataView),!this._hasExifData())throw new Error("No Exif data")},a.prototype._parseAppMarkers=function(a){var b,c,d;for(b=this._JPEG_ID_SIZE,d=[];;){if(a.byteLength<b+this._APP_ID_OFFSET+5)break;if(this._isApp1ExifMarker(a,b))c=a.getUint16(b+this._APP_MARKER_SIZE,!1),this._tiffHeaderOffset=b+this._TIFF_HEADER_OFFSET;else{if(!this._isAppMarker(a,b))break;c=a.getUint16(b+this._APP_MARKER_SIZE,!1)}d.push(b+=this._APP_MARKER_SIZE+c)}return d},a.prototype._isApp1ExifMarker=function(a,b){return a.getUint16(b,!1)===this._APP1_MARKER&&a.getUint32(b+this._APP_ID_OFFSET,!1)===this._BYTES_Exif&&0===a.getUint8(b+this._APP_ID_OFFSET+4,!1)},a.prototype._isAppMarker=function(a,b){var c;return c=a.getUint16(b,!1),c>=this._APP0_MARKER&&c<=this._APP15_MARKER},a.prototype._hasExifData=function(){return 0!==this._tiffHeaderOffset},a.prototype._readTags=function(){return this._setByteOrder(),this._read0thIfd(),this._readExifIfd(),this._readGpsIfd(),this._readInteroperabilityIfd()},a.prototype._setByteOrder=function(){if(this._dataView.getUint16(this._tiffHeaderOffset)===this._BYTE_ORDER_BIG_ENDIAN)return this._littleEndian=!0;if(this._dataView.getUint16(this._tiffHeaderOffset)===this._BYTE_ORDER_LITTLE_ENDIAN)return this._littleEndian=!1;throw new Error("Illegal byte order value. Faulty image.")},a.prototype._read0thIfd=function(){var a;return a=this._getIfdOffset(),this._readIfd("0th",a)},a.prototype._getIfdOffset=function(){return this._tiffHeaderOffset+this._getLongAt(this._tiffHeaderOffset+4)},a.prototype._readExifIfd=function(){var a;return null!=this._tags["Exif IFD Pointer"]?(a=this._tiffHeaderOffset+this._tags["Exif IFD Pointer"].value,this._readIfd("exif",a)):void 0},a.prototype._readGpsIfd=function(){var a;return null!=this._tags["GPS Info IFD Pointer"]?(a=this._tiffHeaderOffset+this._tags["GPS Info IFD Pointer"].value,this._readIfd("gps",a)):void 0},a.prototype._readInteroperabilityIfd=function(){var a;return null!=this._tags["Interoperability IFD Pointer"]?(a=this._tiffHeaderOffset+this._tags["Interoperability IFD Pointer"].value,this._readIfd("interoperability",a)):void 0},a.prototype._readIfd=function(a,b){var c,d,e,f,g;for(d=this._getShortAt(b),b+=2,g=[],c=f=0;d>=0?d>f:f>d;c=d>=0?++f:--f)e=this._readTag(a,b),void 0!==e&&(this._tags[e.name]={value:e.value,description:e.description}),g.push(b+=12);return g},a.prototype._readTag=function(a,b){var c,d,e,f,g,h,i;return c=this._getShortAt(b),g=this._getShortAt(b+2),d=this._getLongAt(b+4),void 0===this._typeSizes[g]?void 0:(this._typeSizes[g]*d<=4?h=this._getTagValue(b+8,g,d):(i=this._getLongAt(b+8),h=this._getTagValue(this._tiffHeaderOffset+i,g,d)),g===this._tagTypes.ASCII&&(h=this._splitNullSeparatedAsciiString(h)),null!=this._tagNames[a][c]?(null!=this._tagNames[a][c].name&&null!=this._tagNames[a][c].description?(f=this._tagNames[a][c].name,e=this._tagNames[a][c].description(h)):(f=this._tagNames[a][c],e=h instanceof Array?h.join(", "):h),{name:f,value:h,description:e}):{name:"undefined-"+c,value:h,description:h})},a.prototype._getTagValue=function(a,b,c){var d,e,f;return e=function(){var e,g;for(g=[],f=e=0;c>=0?c>e:e>c;f=c>=0?++e:--e)d=this._getTagValueAt[b](a),a+=this._typeSizes[b],g.push(d);return g}.call(this),1===e.length?e=e[0]:b===this._tagTypes.ASCII&&(e=this._getAsciiValue(e)),e},a.prototype._getAsciiValue=function(a){var b,c;return c=function(){var c,d,e;for(e=[],c=0,d=a.length;d>c;c++)b=a[c],e.push(String.fromCharCode(b));return e}()},a.prototype._getByteAt=function(a){return this._dataView.getUint8(a)},a.prototype._getAsciiAt=function(a){return this._dataView.getUint8(a)},a.prototype._getShortAt=function(a){return this._dataView.getUint16(a,this._littleEndian)},a.prototype._getLongAt=function(a){return this._dataView.getUint32(a,this._littleEndian)},a.prototype._getRationalAt=function(a){return this._getLongAt(a)/this._getLongAt(a+4)},a.prototype._getUndefinedAt=function(a){return this._getByteAt(a)},a.prototype._getSlongAt=function(a){ -return this._dataView.getInt32(a,this._littleEndian)},a.prototype._getSrationalAt=function(a){return this._getSlongAt(a)/this._getSlongAt(a+4)},a.prototype._splitNullSeparatedAsciiString=function(a){var b,c,d,e,f;for(d=[],c=0,e=0,f=a.length;f>e;e++)b=a[e],"\x00"!==b?(null==d[c]&&(d[c]=""),d[c]+=b):c++;return d},a.prototype._typeSizes={1:1,2:1,3:2,4:4,5:8,7:1,9:4,10:8},a.prototype._tagTypes={BYTE:1,ASCII:2,SHORT:3,LONG:4,RATIONAL:5,UNDEFINED:7,SLONG:9,SRATIONAL:10},a.prototype._tagNames={"0th":{256:"ImageWidth",257:"ImageLength",258:"BitsPerSample",259:"Compression",262:"PhotometricInterpretation",270:"ImageDescription",271:"Make",272:"Model",273:"StripOffsets",274:{name:"Orientation",description:function(a){switch(a){case 1:return"top-left";case 2:return"top-right";case 3:return"bottom-right";case 4:return"bottom-left";case 5:return"left-top";case 6:return"right-top";case 7:return"right-bottom";case 8:return"left-bottom";default:return"Undefined"}}},277:"SamplesPerPixel",278:"RowsPerStrip",279:"StripByteCounts",282:"XResolution",283:"YResolution",284:"PlanarConfiguration",296:{name:"ResolutionUnit",description:function(a){switch(a){case 2:return"inches";case 3:return"centimeters";default:return"Unknown"}}},301:"TransferFunction",305:"Software",306:"DateTime",315:"Artist",318:"WhitePoint",319:"PrimaryChromaticities",513:"JPEGInterchangeFormat",514:"JPEGInterchangeFormatLength",529:"YCbCrCoefficients",530:"YCbCrSubSampling",531:{name:"YCbCrPositioning",description:function(a){switch(a){case 1:return"centered";case 2:return"co-sited";default:return"undefied "+a}}},532:"ReferenceBlackWhite",33432:{name:"Copyright",description:function(a){return a.join("; ")}},34665:"Exif IFD Pointer",34853:"GPS Info IFD Pointer"},exif:{33434:"ExposureTime",33437:"FNumber",34850:{name:"ExposureProgram",description:function(a){switch(a){case 0:return"Undefined";case 1:return"Manual";case 2:return"Normal program";case 3:return"Aperture priority";case 4:return"Shutter priority";case 5:return"Creative program";case 6:return"Action program";case 7:return"Portrait mode";case 8:return"Landscape mode";default:return"Unknown"}}},34852:"SpectralSensitivity",34855:"ISOSpeedRatings",34856:{name:"OECF",description:function(a){return"[Raw OECF table data]"}},36864:{name:"ExifVersion",description:function(a){var b,c,d,e;for(c="",d=0,e=a.length;e>d;d++)b=a[d],c+=String.fromCharCode(b);return c}},36867:"DateTimeOriginal",36868:"DateTimeDigitized",37121:{name:"ComponentsConfiguration",description:function(a){var b,c,d,e;for(c="",d=0,e=a.length;e>d;d++)switch(b=a[d]){case 49:c+="Y";break;case 50:c+="Cb";break;case 51:c+="Cr";break;case 52:c+="R";break;case 53:c+="G";break;case 54:c+="B"}return c}},37122:"CompressedBitsPerPixel",37377:"ShutterSpeedValue",37378:"ApertureValue",37379:"BrightnessValue",37380:"ExposureBiasValue",37381:"MaxApertureValue",37382:"SubjectDistance",37383:{name:"MeteringMode",description:function(a){switch(a){case 1:return"Average";case 2:return"CenterWeightedAverage";case 3:return"Spot";case 4:return"MultiSpot";case 5:return"Pattern";case 6:return"Partial";case 255:return"Other";default:return"Unknown"}}},37384:{name:"LightSource",description:function(a){switch(a){case 1:return"Daylight";case 2:return"Fluorescent";case 3:return"Tungsten (incandescent light)";case 4:return"Flash";case 9:return"Fine weather";case 10:return"Cloudy weather";case 11:return"Shade";case 12:return"Daylight fluorescent (D 5700 – 7100K)";case 13:return"Day white fluorescent (N 4600 – 5400K)";case 14:return"Cool white fluorescent (W 3900 – 4500K)";case 15:return"White fluorescent (WW 3200 – 3700K)";case 17:return"Standard light A";case 18:return"Standard light B";case 19:return"Standard light C";case 20:return"D55";case 21:return"D65";case 22:return"D75";case 23:return"D50";case 24:return"ISO studio tungsten";case 255:return"Other light source";default:return"Unknown"}}},37385:{name:"Flash",description:function(a){switch(a){case 0:return"Flash did not fire";case 1:return"Flash fired";case 5:return"Strobe return light not detected";case 7:return"Strobe return light detected";case 9:return"Flash fired, compulsory flash mode";case 13:return"Flash fired, compulsory flash mode, return light not detected";case 15:return"Flash fired, compulsory flash mode, return light detected";case 16:return"Flash did not fire, compulsory flash mode";case 24:return"Flash did not fire, auto mode";case 25:return"Flash fired, auto mode";case 29:return"Flash fired, auto mode, return light not detected";case 31:return"Flash fired, auto mode, return light detected";case 32:return"No flash function";case 65:return"Flash fired, red-eye reduction mode";case 69:return"Flash fired, red-eye reduction mode, return light not detected";case 71:return"Flash fired, red-eye reduction mode, return light detected";case 73:return"Flash fired, compulsory flash mode, red-eye reduction mode";case 77:return"Flash fired, compulsory flash mode, red-eye reduction mode, return light not detected";case 79:return"Flash fired, compulsory flash mode, red-eye reduction mode, return light detected";case 89:return"Flash fired, auto mode, red-eye reduction mode";case 93:return"Flash fired, auto mode, return light not detected, red-eye reduction mode";case 95:return"Flash fired, auto mode, return light detected, red-eye reduction mode";default:return"Unknown"}}},37386:"FocalLength",37396:{name:"SubjectArea",description:function(a){switch(a.length){case 2:return"Location; X: "+a[0]+", Y: "+a[1];case 3:return"Circle; X: "+a[0]+", Y: "+a[1]+", diameter: "+a[2];case 4:return"Rectangle; X: "+a[0]+", Y: "+a[1]+", width: "+a[2]+", height: "+a[3];default:return"Unknown"}}},37500:{name:"MakerNote",description:function(a){return"[Raw maker note data]"}},37510:{name:"UserComment",description:function(a){switch(a.slice(0,8).map(function(a){return String.fromCharCode(a)}).join("")){case"ASCII\x00\x00\x00":return a.slice(8,a.length).map(function(a){return String.fromCharCode(a)}).join("");case"JIS\x00\x00\x00\x00\x00":return"[JIS encoded text]";case"UNICODE\x00":return"[Unicode encoded text]";case"\x00\x00\x00\x00\x00\x00\x00\x00":return"[Undefined encoding]"}}},37520:"SubSecTime",37521:"SubSecTimeOriginal",37522:"SubSecTimeDigitized",40960:{name:"FlashpixVersion",description:function(a){var b,c,d,e;for(c="",d=0,e=a.length;e>d;d++)b=a[d],c+=String.fromCharCode(b);return c}},40961:{name:"ColorSpace",description:function(a){switch(a){case 1:return"sRGB";case 65535:return"Uncalibrated";default:return"Unknown"}}},40962:"PixelXDimension",40963:"PixelYDimension",40964:"RelatedSoundFile",40965:"Interoperability IFD Pointer",41483:"FlashEnergy",41484:{name:"SpatialFrequencyResponse",description:function(a){return"[Raw SFR table data]"}},41486:"FocalPlaneXResolution",41487:"FocalPlaneYResolution",41488:{name:"FocalPlaneResolutionUnit",description:function(a){switch(a){case 2:return"inches";case 3:return"centimeters";default:return"Unknown"}}},41492:{name:"SubjectLocation",description:function(a){return"X: "+a[0]+", Y: "+a[1]}},41493:"ExposureIndex",41495:{name:"SensingMethod",description:function(a){switch(a){case 1:return"Undefined";case 2:return"One-chip color area sensor";case 3:return"Two-chip color area sensor";case 4:return"Three-chip color area sensor";case 5:return"Color sequential area sensor";case 7:return"Trilinear sensor";case 8:return"Color sequential linear sensor";default:return"Unknown"}}},41728:{name:"FileSource",description:function(a){switch(a){case 3:return"DSC";default:return"Unknown"}}},41729:{name:"SceneType",description:function(a){switch(a){case 1:return"A directly photographed image";default:return"Unknown"}}},41730:{name:"CFAPattern",description:function(a){return"[Raw CFA pattern table data]"}},41985:{name:"CustomRendered",description:function(a){switch(a){case 0:return"Normal process";case 1:return"Custom process";default:return"Unknown"}}},41986:{name:"ExposureMode",description:function(a){switch(a){case 0:return"Auto exposure";case 1:return"Manual exposure";case 2:return"Auto bracket";default:return"Unknown"}}},41987:{name:"WhiteBalance",description:function(a){switch(a){case 0:return"Auto white balance";case 1:return"Manual white balance";default:return"Unknown"}}},41988:{name:"DigitalZoomRatio",description:function(a){switch(a){case 0:return"Digital zoom was not used";default:return a}}},41989:{name:"FocalLengthIn35mmFilm",description:function(a){switch(a){case 0:return"Unknown";default:return a}}},41990:{name:"SceneCaptureType",description:function(a){switch(a){case 0:return"Standard";case 1:return"Landscape";case 2:return"Portrait";case 3:return"Night scene";default:return"Unknown"}}},41991:{name:"GainControl",description:function(a){switch(a){case 0:return"None";case 1:return"Low gain up";case 2:return"High gain up";case 3:return"Low gain down";case 4:return"High gain down";default:return"Unknown"}}},41992:{name:"Contrast",description:function(a){switch(a){case 0:return"Normal";case 1:return"Soft";case 2:return"Hard";default:return"Unknown"}}},41993:{name:"Saturation",description:function(a){switch(a){case 0:return"Normal";case 1:return"Low saturation";case 2:return"High saturation";default:return"Unknown"}}},41994:{name:"Sharpness",description:function(a){switch(a){case 0:return"Normal";case 1:return"Soft";case 2:return"Hard";default:return"Unknown"}}},41995:{name:"DeviceSettingDescription",description:function(a){return"[Raw device settings table data]"}},41996:{name:"SubjectDistanceRange",description:function(a){switch(a){case 1:return"Macro";case 2:return"Close view";case 3:return"Distant view";default:return"Unknown"}}},42016:"ImageUniqueID"},gps:{0:{name:"GPSVersionID",description:function(a){var b,c;return a[0]===(b=a[1])&&2===b&&a[2]===(c=a[3])&&0===c?"Version 2.2":"Unknown"}},1:{name:"GPSLatitudeRef",description:function(a){switch(a.join("")){case"N":return"North latitude";case"S":return"South latitude";default:return"Unknown"}}},2:{name:"GPSLatitude",description:function(a){return a[0]+a[1]/60+a[2]/3600}},3:{name:"GPSLongitudeRef",description:function(a){switch(a.join("")){case"E":return"East longitude";case"W":return"West longitude";default:return"Unknown"}}},4:{name:"GPSLongitude",description:function(a){return a[0]+a[1]/60+a[2]/3600}},5:{name:"GPSAltitudeRef",description:function(a){switch(a){case 0:return"Sea level";case 1:return"Sea level reference (negative value)";default:return"Unknown"}}},6:{name:"GPSAltitude",description:function(a){return a+" m"}},7:{name:"GPSTimeStamp",description:function(a){var b;return b=function(a){var b;return function(){var c,d,e;for(e=[],b=c=0,d=2-(""+Math.floor(a)).length;d>=0?d>c:c>d;b=d>=0?++c:--c)e.push("0");return e}()+a},a.map(b).join(":")}},8:"GPSSatellites",9:{name:"GPSStatus",description:function(a){switch(a.join("")){case"A":return"Measurement in progress";case"V":return"Measurement Interoperability";default:return"Unknown"}}},10:{name:"GPSMeasureMode",description:function(a){switch(a.join("")){case"2":return"2-dimensional measurement";case"3":return"3-dimensional measurement";default:return"Unknown"}}},11:"GPSDOP",12:{name:"GPSSpeedRef",description:function(a){switch(a.join("")){case"K":return"Kilometers per hour";case"M":return"Miles per hour";case"N":return"Knots";default:return"Unknown"}}},13:"GPSSpeed",14:{name:"GPSTrackRef",description:function(a){switch(a.join("")){case"T":return"True direction";case"M":return"Magnetic direction";default:return"Unknown"}}},15:"GPSTrack",16:{name:"GPSImgDirectionRef",description:function(a){switch(a.join("")){case"T":return"True direction";case"M":return"Magnetic direction";default:return"Unknown"}}},17:"GPSImgDirection",18:"GPSMapDatum",19:{name:"GPSDestLatitudeRef",description:function(a){switch(a.join("")){case"N":return"North latitude";case"S":return"South latitude";default:return"Unknown"}}},20:{name:"GPSDestLatitude",description:function(a){return a[0]+a[1]/60+a[2]/3600}},21:{name:"GPSDestLongitudeRef",description:function(a){switch(a.join("")){case"E":return"East longitude";case"W":return"West longitude";default:return"Unknown"}}},22:{name:"GPSDestLongitude",description:function(a){return a[0]+a[1]/60+a[2]/3600}},23:{name:"GPSDestBearingRef",description:function(a){switch(a.join("")){case"T":return"True direction";case"M":return"Magnetic direction";default:return"Unknown"}}},24:"GPSDestBearing",25:{name:"GPSDestDistanceRef",description:function(a){switch(a.join("")){case"K":return"Kilometers";case"M":return"Miles";case"N":return"Knots";default:return"Unknown"}}},26:"GPSDestDistance",27:{name:"GPSProcessingMethod",description:function(a){if(0===a)return"Undefined";switch(a.slice(0,8).map(function(a){return String.fromCharCode(a)}).join("")){case"ASCII\x00\x00\x00":return a.slice(8,a.length).map(function(a){return String.fromCharCode(a)}).join("");case"JIS\x00\x00\x00\x00\x00":return"[JIS encoded text]";case"UNICODE\x00":return"[Unicode encoded text]";case"\x00\x00\x00\x00\x00\x00\x00\x00":return"[Undefined encoding]"}}},28:{name:"GPSAreaInformation",description:function(a){if(0===a)return"Undefined";switch(a.slice(0,8).map(function(a){return String.fromCharCode(a)}).join("")){case"ASCII\x00\x00\x00":return a.slice(8,a.length).map(function(a){return String.fromCharCode(a)}).join("");case"JIS\x00\x00\x00\x00\x00":return"[JIS encoded text]";case"UNICODE\x00":return"[Unicode encoded text]";case"\x00\x00\x00\x00\x00\x00\x00\x00":return"[Undefined encoding]"}}},29:"GPSDateStamp",30:{name:"GPSDifferential",description:function(a){switch(a){case 0:return"Measurement without differential correction";case 1:return"Differential correction applied";default:return"Unknown"}}}},interoperability:{1:"InteroperabilityIndex",2:"UnknownInteroperabilityTag0x0002",4097:"UnknownInteroperabilityTag0x1001",4098:"UnknownInteroperabilityTag0x1002"}},a.prototype.getTagValue=function(a){return null!=this._tags[a]?this._tags[a].value:void 0},a.prototype.getTagDescription=function(a){return null!=this._tags[a]?this._tags[a].description:void 0},a.prototype.getAllTags=function(){return this._tags},a.prototype.deleteTag=function(a){return delete this._tags[a]},a}()}.call(this);var orientationToTransform={1:{rotation:0,mirror:!1},2:{rotation:0,mirror:!0},3:{rotation:180,mirror:!1},4:{rotation:180,mirror:!0},5:{rotation:90,mirror:!0},6:{rotation:90,mirror:!1},7:{rotation:270,mirror:!0},8:{rotation:270,mirror:!1}},dataUriToUint8Array=function(a){for(var b=a.split(",")[1],c=atob(b),d=new ArrayBuffer(c.length),e=new Uint8Array(d),f=0;f<c.length;f++)e[f]=c.charCodeAt(f);return e};window.dataUriToBlob=function(){function a(a){return a.split(";")[0].slice(5)}var b=window.Blob,c=100==new b([new Uint8Array(100)]).size,d=function(d){for(var e=d.split(",")[1],f=atob(e),g=new ArrayBuffer(f.length),h=new Uint8Array(g),i=0;i<f.length;i++)h[i]=f.charCodeAt(i);c||(h=g);var j=new b([h],{type:a(d)});return j.slice=j.slice||j.webkitSlice,j};return d}(),Function.prototype.bind||(Function.prototype.bind=function(a){if("function"!=typeof this)throw new TypeError("Function.prototype.bind - what is trying to be bound is not callable");var b=Array.prototype.slice.call(arguments,1),c=this,d=function(){},e=function(){return c.apply(this instanceof d&&a?this:a,b.concat(Array.prototype.slice.call(arguments)))};return d.prototype=this.prototype,e.prototype=new d,e}),function(){for(var a=0,b=["ms","moz","webkit","o"],c=0;c<b.length&&!window.requestAnimationFrame;++c)window.requestAnimationFrame=window[b[c]+"RequestAnimationFrame"],window.cancelAnimationFrame=window[b[c]+"CancelAnimationFrame"]||window[b[c]+"CancelRequestAnimationFrame"];window.requestAnimationFrame||(window.requestAnimationFrame=function(b,c){var d=(new Date).getTime(),e=Math.max(0,16-(d-a)),f=window.setTimeout(function(){b(d+e)},e);return a=d+e,f}),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(a){clearTimeout(a)})}(),function(a){a=a.toLowerCase();var b=/(chrome)[ \/]([\w.]+)/.exec(a)||/(webkit)[ \/]([\w.]+)/.exec(a)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(a)||/(msie) ([\w.]+)/.exec(a)||a.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(a)||[],c={browser:b[1]||"",version:b[2]||"0"};return browser={},c.browser&&(browser[c.browser]=!0,browser.version=c.version),browser.chrome?browser.webkit=!0:browser.webkit&&(browser.safari=!0),window.$&&($.browser=browser),browser}(navigator.userAgent);var is_iphone=navigator.userAgent.match(/iPhone/i)||navigator.userAgent.match(/iPod/i),is_ipad=navigator.userAgent.match(/iPad/i),is_android=navigator.userAgent.match(/Android/i),is_mobile=is_iphone||is_ipad||is_android,is_desktop=!is_mobile,app_devicePixelRatio=is_mobile?devicePixelRatio:1,View=function(a,b){var c=function(a){this._id=b.uniqueId("view"),this.type="view",a||(a={}),b.extend(this,b.pick(a,e)),this._ensureElement(),this.initialize.apply(this,arguments),this.delegateEvents()},d=/^(\S+)\s*(.*)$/,e=["model","collection","el","id","attributes","className","tagName","events"];b.extend(c.prototype,{tagName:"div",$:function(a){return this.$el.find(a)},initialize:function(){},setElement:function(b,c){return this.$el&&this.undelegateEvents(),this.$el=b instanceof a?b:a(b),this.el=this.$el[0],c!==!1&&this.delegateEvents(),this},delegateEvents:function(a){if(!a&&!(a=b.result(this,"events")))return this;this.undelegateEvents();for(var c in a){var e=a[c];if(b.isFunction(e)||(e=this[a[c]]),e){var f=c.match(d),g=f[1],h=f[2];e=b.bind(e,this),g+=".delegateEvents"+this._id,(!is_mobile||"mouseenter"!==h&&"mouseleave"!==h)&&(""===h?this.$el.on(g,e):this.$el.on(g,h,e))}}return this},undelegateEvents:function(){return this.$el.off(".delegateEvents"+this._id),this},_ensureElement:function(){this.setElement(b.result(this,"el"),!1)},preventDefault:function(a){a&&a.preventDefault()},stopPropagation:function(a){a&&a.stopPropagation()}});var f=function(a,c){var d,c=c||{},e=this,f={};d=a&&b.has(a,"constructor")?a.constructor:function(){return e.apply(this,arguments)},b.extend(f,e.prototype.events,a.events),b.extend(d,e,c);var g=function(){this.constructor=d};return g.prototype=e.prototype,d.prototype=new g,a&&b.extend(d.prototype,a),d.prototype.__super__=e.prototype,d.prototype.events=f,d};return c.extend=f,c}(jQuery,_),UploadView=View.extend({events:{"change [type=file]":"handleFileSelect","submit form":"preventDefault"},initialize:function(){this.$file=this.$("[type=file]"),this.$upload=this.$(".upload-icon")},beforeUpload:function(){},handleFileSelect:function(a){a.stopPropagation(),a.preventDefault(),this.beforeUpload();for(var b,c=a.dataTransfer?a.dataTransfer.files:a.target.files,d=0;b=c[d];d++)b.type.match("image.*")&&(is_mobile&&b.type.match(/jpg|jpeg/)?this.fixOrientationAndUpload(b):this.upload(b))},fixOrientationAndUpload:function(a){var b=new FileReader,c=new Image;b.addEventListener("load",function(){c.src=b.result},!1),c.onload=function(){var a=renderToCanvas(c,{correctOrientation:!0,scale:1}),b=a.toDataURL("image/jpeg",.8),d=dataUriToBlob(b);this.upload(d)}.bind(this),b.readAsDataURL(a)},upload:function(a){$("body").addClass("uploading");var b=new FormData;b.append("image",a),this.mediaTag&&b.append("tag",this.mediaTag);var c=$.ajax({url:this.uploadAction,type:"post",data:b,dataType:"json",processData:!1,contentType:!1});c.done(this.success.bind(this))},success:function(a){return a.error?(this.$upload.removeClass("uploading"),void this.error(a.error)):(this.$upload.removeClass("uploading"),$("body").removeClass("uploading"),void this.add(a))},add:function(a){console.log(a)},error:function(a){}}),DragView=UploadView.extend({el:"body",uploadAction:"/upload",selfDrag:!1,events:{dragover:"dragover",dragstart:"dragstart",drop:"handleDrop","change .file":"handleFileSelect"},drop:function(){$("#droparea").hide(),$("#loading").show()},dragover:function(a){a.stopPropagation(),a.preventDefault(),this.selfDrag?$("#droparea").hide():$("#droparea").show()},dragstart:function(a){this.selfDrag=!0},handleDrop:function(a){a.stopPropagation(),a.preventDefault(),a=a.originalEvent,a.dataTransfer&&!this.selfDrag?a.dataTransfer.files.length&&this.handleFileSelect(a):this.handleFileSelect(a),this.selfDrag=!1,this.drop()},add:function(a){$("#loading").hide(),app.view.display(a),history.pushState(a,document.title,"/p/"+a.id)}}),NavView=View.extend({el:"body",events:{"click .prev":"prev","click .next":"next","click .link":"link","click .refresh":"refresh","click .random":"random"},initialize:function(){if(this.id=-1,this.$pip=this.$("#pip"),this.$pip_img=this.$("#pip img"),this.$image=this.$("#luckyimage"),$(window).on("keydown",this.keydown.bind(this)),$(document).ajaxError(function(){this.fetching=!1}.bind(this)),window.onpopstate=function(a){this.display(a.state)}.bind(this),-1!==window.location.pathname.indexOf("/p/")){var a=window.location.pathname.split("/")[2];this.fetch(a)}else this.latest();$(".prev").on("touchstart",function(){console.log("<<<<<PREV")}),$(".prev").on("click",function(){console.log("<<<<<CLICKPREV")})},keydown:function(a){if(!(a.shiftKey||a.metaKey||a.ctrlKey||a.altKey))switch(a.keyCode){case 37:this.prev();break;case 39:this.next();break;case 38:this.random();break;case 40:this.latest()}},latest:function(){this.fetching||(this.fetch("latest"),this.onLatest=!0)},prev:function(){this.fetching||this.id-1<1||this.fetch(this.id-1)},next:function(){this.fetching||this.onLatest||this.id<1||this.fetch(this.id+1)},random:function(){this.fetching||this.fetch("random")},fetch:function(a){this.fetching=!0,this.onLatest=!1,$.get("/get/"+a,function(a){this.fetching=!1,this.display(a),history.pushState(a,document.title,"/p/"+a.id)}.bind(this))},display:function(a){return a&&a.id?(this.data=a,this.id=a.id,is_desktop&&(this.$pip.attr("href",a.url),this.$pip_img.attr("src",""),setTimeout(function(){this.$pip_img.attr("src",a.url)}.bind(this))),void this.$image.css("background-image","url("+a.url+")")):void(this.onLatest=!0)},link:function(){window.open(this.data.url,"_blank")}}),app=function(){var a={};return a.init=function(){is_mobile&&FastClick.attach(document.body),a.view=new NavView,a.upload=new DragView,$(window).on("focus",a.focus),$(window).on("blur",a.blur)},a.focused=!0,a.typing=!1,a.focus=function(){a.focused=!0},a.blur=function(){a.focused=!1},document.addEventListener("DOMContentLoaded",a.init),a}();
\ No newline at end of file +function FastClick(a,b){"use strict";function c(a,b){return function(){return a.apply(b,arguments)}}var d;if(b=b||{},this.trackingClick=!1,this.trackingClickStart=0,this.targetElement=null,this.touchStartX=0,this.touchStartY=0,this.lastTouchIdentifier=0,this.touchBoundary=b.touchBoundary||10,this.layer=a,this.tapDelay=b.tapDelay||200,!FastClick.notNeeded(a)){for(var e=["onMouse","onClick","onTouchStart","onTouchMove","onTouchEnd","onTouchCancel"],f=this,g=0,h=e.length;g<h;g++)f[e[g]]=c(f[e[g]],f);deviceIsAndroid&&(a.addEventListener("mouseover",this.onMouse,!0),a.addEventListener("mousedown",this.onMouse,!0),a.addEventListener("mouseup",this.onMouse,!0)),a.addEventListener("click",this.onClick,!0),a.addEventListener("touchstart",this.onTouchStart,!1),a.addEventListener("touchmove",this.onTouchMove,!1),a.addEventListener("touchend",this.onTouchEnd,!1),a.addEventListener("touchcancel",this.onTouchCancel,!1),Event.prototype.stopImmediatePropagation||(a.removeEventListener=function(b,c,d){var e=Node.prototype.removeEventListener;"click"===b?e.call(a,b,c.hijacked||c,d):e.call(a,b,c,d)},a.addEventListener=function(b,c,d){var e=Node.prototype.addEventListener;"click"===b?e.call(a,b,c.hijacked||(c.hijacked=function(a){a.propagationStopped||c(a)}),d):e.call(a,b,c,d)}),"function"==typeof a.onclick&&(d=a.onclick,a.addEventListener("click",function(a){d(a)},!1),a.onclick=null)}}function renderToCanvas(a,b){function c(){var b=d(a.src);if(b&&1!==b){var c=orientationToTransform[b],g=c.rotation;c.mirror;(90===g||270===g)&&(f.width=f.height+f.width,f.height=f.width-f.height,f.width-=f.height),g>0&&e(g)}}function d(a){var b=new ExifReader,c=a.split(",")[1],d=base64ToUint8Array(c,0,Math.pow(2,17));try{return b.load(d.buffer),b.getTagValue("Orientation")}catch(e){return 1}}function e(a){var b=a*(Math.PI/180);90===a?g.translate(f.width,0):180===a?g.translate(f.width,f.height):270==a&&g.translate(0,f.height),g.rotate(b)}if(a){b=b||{};var f=document.createElement("canvas"),g=f.getContext("2d"),h=b.scale||1,i=1;i*=h;var j=(f.width=Math.round(a.width*i),f.height=Math.round(a.height*i),b.correctOrientation),k=!!a.src.match(/data:image\/jpeg|\.jpeg$|\.jpg$/i),l=!!a.src.match(/^data:/);return g.save(),j&&k&&l&&c(),1!==i&&g.scale(i,i),g.drawImage(a,0,0),g.restore(),f}}function base64ToUint8Array(a,b,c){for(var b=b||0,c=c||a.length,d=atob(a),e=new Uint8Array(d.length),f=b;f<c;f++)e[f]=d.charCodeAt(f);return e}function selectElementContents(a){if(window.getSelection&&document.createRange){var b=window.getSelection(),c=document.createRange();c.selectNodeContents(a),b.removeAllRanges(),b.addRange(c)}else if(document.selection&&document.body.createTextRange){var d=document.body.createTextRange();d.moveToElementText(a),d.select()}}(function(){function a(a,b){if(a!==b){var c=null===a,d=a===u,e=a===a,f=null===b,g=b===u,h=b===b;if(a>b&&!f||!e||c&&!g&&h||d&&h)return 1;if(a<b&&!c||!h||f&&!d&&e||g&&e)return-1}return 0}function b(a,b,c){for(var d=a.length,e=c?d:-1;c?e--:++e<d;)if(b(a[e],e,a))return e;return-1}function c(a,b,c){if(b!==b)return m(a,c);c-=1;for(var d=a.length;++c<d;)if(a[c]===b)return c;return-1}function d(a){return"function"==typeof a||!1}function e(a){return null==a?"":a+""}function f(a,b){for(var c=-1,d=a.length;++c<d&&-1<b.indexOf(a.charAt(c)););return c}function g(a,b){for(var c=a.length;c--&&-1<b.indexOf(a.charAt(c)););return c}function h(b,c){return a(b.a,c.a)||b.b-c.b}function i(a){return Ja[a]}function j(a){return Ka[a]}function k(a,b,c){return b?a=Na[a]:c&&(a=Oa[a]),"\\"+a}function l(a){return"\\"+Oa[a]}function m(a,b,c){var d=a.length;for(b+=c?0:-1;c?b--:++b<d;){var e=a[b];if(e!==e)return b}return-1}function n(a){return!!a&&"object"==typeof a}function o(a){return 160>=a&&9<=a&&13>=a||32==a||160==a||5760==a||6158==a||8192<=a&&(8202>=a||8232==a||8233==a||8239==a||8287==a||12288==a||65279==a)}function p(a,b){for(var c=-1,d=a.length,e=-1,f=[];++c<d;)a[c]===b&&(a[c]=N,f[++e]=c);return f}function q(a){for(var b=-1,c=a.length;++b<c&&o(a.charCodeAt(b)););return b}function r(a){for(var b=a.length;b--&&o(a.charCodeAt(b)););return b}function s(a){return La[a]}function t(o){function Ja(a){if(n(a)&&!(Bf(a)||a instanceof Ma)){if(a instanceof La)return a;if(_d.call(a,"__chain__")&&_d.call(a,"__wrapped__"))return Pc(a)}return new La(a)}function Ka(){}function La(a,b,c){this.__wrapped__=a,this.__actions__=c||[],this.__chain__=!!b}function Ma(a){this.__wrapped__=a,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=Ae,this.__views__=[]}function Na(){this.__data__={}}function Oa(a){var b=a?a.length:0;for(this.data={hash:pe(null),set:new je};b--;)this.push(a[b])}function Pa(a,b){var c=a.data;return("string"==typeof b||pd(b)?c.set.has(b):c.hash[b])?0:-1}function Qa(a,b){var c=-1,d=a.length;for(b||(b=Nd(d));++c<d;)b[c]=a[c];return b}function Ra(a,b){for(var c=-1,d=a.length;++c<d&&!1!==b(a[c],c,a););return a}function Sa(a,b){for(var c=-1,d=a.length;++c<d;)if(!b(a[c],c,a))return!1;return!0}function Ta(a,b){for(var c=-1,d=a.length,e=-1,f=[];++c<d;){var g=a[c];b(g,c,a)&&(f[++e]=g)}return f}function Wa(a,b){for(var c=-1,d=a.length,e=Nd(d);++c<d;)e[c]=b(a[c],c,a);return e}function Xa(a,b){for(var c=-1,d=b.length,e=a.length;++c<d;)a[e+c]=b[c];return a}function Ya(a,b,c,d){var e=-1,f=a.length;for(d&&f&&(c=a[++e]);++e<f;)c=b(c,a[e],e,a);return c}function Za(a,b){for(var c=-1,d=a.length;++c<d;)if(b(a[c],c,a))return!0;return!1}function $a(a,b,c,d){return a!==u&&_d.call(d,c)?a:b}function _a(a,b,c){for(var d=-1,e=Mf(b),f=e.length;++d<f;){var g=e[d],h=a[g],i=c(h,b[g],g,a,b);(i===i?i===h:h!==h)&&(h!==u||g in a)||(a[g]=i)}return a}function ab(a,b){return null==b?a:cb(b,Mf(b),a)}function bb(a,b){for(var c=-1,d=null==a,e=!d&&Cc(a),f=e?a.length:0,g=b.length,h=Nd(g);++c<g;){var i=b[c];h[c]=e?Dc(i,f)?a[i]:u:d?u:a[i]}return h}function cb(a,b,c){c||(c={});for(var d=-1,e=b.length;++d<e;){var f=b[d];c[f]=a[f]}return c}function db(a,b,c){var d=typeof a;return"function"==d?b===u?a:Nb(a,b,c):null==a?Id:"object"==d?ub(a):b===u?Md(a):vb(a,b)}function eb(a,b,c,d,e,f,g){var h;if(c&&(h=e?c(a,d,e):c(a)),h!==u)return h;if(!pd(a))return a;if(d=Bf(a)){if(h=yc(a),!b)return Qa(a,h)}else{var i=be.call(a),j=i==T;if(i!=V&&i!=O&&(!j||e))return Ia[i]?Ac(a,i,b):e?a:{};if(h=zc(j?{}:a),!b)return ab(h,a)}for(f||(f=[]),g||(g=[]),e=f.length;e--;)if(f[e]==a)return g[e];return f.push(a),g.push(h),(d?Ra:nb)(a,function(d,e){h[e]=eb(d,b,c,e,a,f,g)}),h}function fb(a,b,c){if("function"!=typeof a)throw new Wd(M);return ke(function(){a.apply(u,c)},b)}function gb(a,b){var d=a?a.length:0,e=[];if(!d)return e;var f=-1,g=vc(),h=g===c,i=h&&b.length>=J&&pe&&je?new Oa(b):null,j=b.length;i&&(g=Pa,h=!1,b=i);a:for(;++f<d;)if(i=a[f],h&&i===i){for(var k=j;k--;)if(b[k]===i)continue a;e.push(i)}else 0>g(b,i,0)&&e.push(i);return e}function hb(a,b){var c=!0;return He(a,function(a,d,e){return c=!!b(a,d,e)}),c}function ib(a,b,c,d){var e=d,f=e;return He(a,function(a,g,h){g=+b(a,g,h),(c(g,e)||g===d&&g===f)&&(e=g,f=a)}),f}function jb(a,b){var c=[];return He(a,function(a,d,e){b(a,d,e)&&c.push(a)}),c}function kb(a,b,c,d){var e;return c(a,function(a,c,f){return b(a,c,f)?(e=d?c:a,!1):void 0}),e}function lb(a,b,c,d){d||(d=[]);for(var e=-1,f=a.length;++e<f;){var g=a[e];n(g)&&Cc(g)&&(c||Bf(g)||ld(g))?b?lb(g,b,c,d):Xa(d,g):c||(d[d.length]=g)}return d}function mb(a,b){Je(a,b,Ad)}function nb(a,b){return Je(a,b,Mf)}function ob(a,b){return Ke(a,b,Mf)}function pb(a,b){for(var c=-1,d=b.length,e=-1,f=[];++c<d;){var g=b[c];od(a[g])&&(f[++e]=g)}return f}function qb(a,b,c){if(null!=a){c!==u&&c in Nc(a)&&(b=[c]),c=0;for(var d=b.length;null!=a&&c<d;)a=a[b[c++]];return c&&c==d?a:u}}function rb(a,b,c,d,e,f){if(a===b)a=!0;else if(null==a||null==b||!pd(a)&&!n(b))a=a!==a&&b!==b;else a:{var g=rb,h=Bf(a),i=Bf(b),j=P,k=P;h||(j=be.call(a),j==O?j=V:j!=V&&(h=vd(a))),i||(k=be.call(b),k==O?k=V:k!=V&&vd(b));var l=j==V,i=k==V,k=j==k;if(!k||h||l){if(!d&&(j=l&&_d.call(a,"__wrapped__"),i=i&&_d.call(b,"__wrapped__"),j||i)){a=g(j?a.value():a,i?b.value():b,c,d,e,f);break a}if(k){for(e||(e=[]),f||(f=[]),j=e.length;j--;)if(e[j]==a){a=f[j]==b;break a}e.push(a),f.push(b),a=(h?qc:sc)(a,b,g,c,d,e,f),e.pop(),f.pop()}else a=!1}else a=rc(a,b,j)}return a}function sb(a,b,c){var d=b.length,e=d,f=!c;if(null==a)return!e;for(a=Nc(a);d--;){var g=b[d];if(f&&g[2]?g[1]!==a[g[0]]:!(g[0]in a))return!1}for(;++d<e;){var g=b[d],h=g[0],i=a[h],j=g[1];if(f&&g[2]){if(i===u&&!(h in a))return!1}else if(g=c?c(i,j,h):u,g===u?!rb(j,i,c,!0):!g)return!1}return!0}function tb(a,b){var c=-1,d=Cc(a)?Nd(a.length):[];return He(a,function(a,e,f){d[++c]=b(a,e,f)}),d}function ub(a){var b=wc(a);if(1==b.length&&b[0][2]){var c=b[0][0],d=b[0][1];return function(a){return null!=a&&(a[c]===d&&(d!==u||c in Nc(a)))}}return function(a){return sb(a,b)}}function vb(a,b){var c=Bf(a),d=Fc(a)&&b===b&&!pd(b),e=a+"";return a=Oc(a),function(f){if(null==f)return!1;var g=e;if(f=Nc(f),!(!c&&d||g in f)){if(null==(f=1==a.length?f:qb(f,Cb(a,0,-1))))return!1;g=Uc(a),f=Nc(f)}return f[g]===b?b!==u||g in f:rb(b,f[g],u,!0)}}function wb(a,b,c,d,e){if(!pd(a))return a;var f=Cc(b)&&(Bf(b)||vd(b)),g=f?u:Mf(b);return Ra(g||b,function(h,i){if(g&&(i=h,h=b[i]),n(h)){d||(d=[]),e||(e=[]);a:{for(var j=i,k=d,l=e,m=k.length,o=b[j];m--;)if(k[m]==o){a[j]=l[m];break a}var m=a[j],p=c?c(m,o,j,a,b):u,q=p===u;q&&(p=o,Cc(o)&&(Bf(o)||vd(o))?p=Bf(m)?m:Cc(m)?Qa(m):[]:sd(o)||ld(o)?p=ld(m)?yd(m):sd(m)?m:{}:q=!1),k.push(o),l.push(p),q?a[j]=wb(p,o,c,k,l):(p===p?p!==m:m===m)&&(a[j]=p)}}else j=a[i],k=c?c(j,h,i,a,b):u,(l=k===u)&&(k=h),k===u&&(!f||i in a)||!l&&(k===k?k===j:j!==j)||(a[i]=k)}),a}function xb(a){return function(b){return null==b?u:b[a]}}function yb(a){var b=a+"";return a=Oc(a),function(c){return qb(c,a,b)}}function zb(a,b){for(var c=a?b.length:0;c--;){var d=b[c];if(d!=e&&Dc(d)){var e=d;le.call(a,d,1)}}}function Ab(a,b){return a+qe(ye()*(b-a+1))}function Bb(a,b,c,d,e){return e(a,function(a,e,f){c=d?(d=!1,a):b(c,a,e,f)}),c}function Cb(a,b,c){var d=-1,e=a.length;for(b=null==b?0:+b||0,0>b&&(b=-b>e?0:e+b),c=c===u||c>e?e:+c||0,0>c&&(c+=e),e=b>c?0:c-b>>>0,b>>>=0,c=Nd(e);++d<e;)c[d]=a[d+b];return c}function Db(a,b){var c;return He(a,function(a,d,e){return!(c=b(a,d,e))}),!!c}function Eb(a,b){var c=a.length;for(a.sort(b);c--;)a[c]=a[c].c;return a}function Fb(b,c,d){var e=tc(),f=-1;return c=Wa(c,function(a){return e(a)}),b=tb(b,function(a){return{a:Wa(c,function(b){return b(a)}),b:++f,c:a}}),Eb(b,function(b,c){var e;a:{for(var f=-1,g=b.a,h=c.a,i=g.length,j=d.length;++f<i;)if(e=a(g[f],h[f])){if(f>=j)break a;f=d[f],e*="asc"===f||!0===f?1:-1;break a}e=b.b-c.b}return e})}function Gb(a,b){var c=0;return He(a,function(a,d,e){c+=+b(a,d,e)||0}),c}function Hb(a,b){var d=-1,e=vc(),f=a.length,g=e===c,h=g&&f>=J,i=h&&pe&&je?new Oa(void 0):null,j=[];i?(e=Pa,g=!1):(h=!1,i=b?[]:j);a:for(;++d<f;){var k=a[d],l=b?b(k,d,a):k;if(g&&k===k){for(var m=i.length;m--;)if(i[m]===l)continue a;b&&i.push(l),j.push(k)}else 0>e(i,l,0)&&((b||h)&&i.push(l),j.push(k))}return j}function Ib(a,b){for(var c=-1,d=b.length,e=Nd(d);++c<d;)e[c]=a[b[c]];return e}function Jb(a,b,c,d){for(var e=a.length,f=d?e:-1;(d?f--:++f<e)&&b(a[f],f,a););return c?Cb(a,d?0:f,d?f+1:e):Cb(a,d?f+1:0,d?e:f)}function Kb(a,b){var c=a;c instanceof Ma&&(c=c.value());for(var d=-1,e=b.length;++d<e;)var f=b[d],c=f.func.apply(f.thisArg,Xa([c],f.args));return c}function Lb(a,b,c){var d=0,e=a?a.length:d;if("number"==typeof b&&b===b&&e<=Ce){for(;d<e;){var f=d+e>>>1,g=a[f];(c?g<=b:g<b)&&null!==g?d=f+1:e=f}return e}return Mb(a,b,Id,c)}function Mb(a,b,c,d){b=c(b);for(var e=0,f=a?a.length:0,g=b!==b,h=null===b,i=b===u;e<f;){var j=qe((e+f)/2),k=c(a[j]),l=k!==u,m=k===k;(g?m||d:h?m&&l&&(d||null!=k):i?m&&(d||l):null==k?0:d?k<=b:k<b)?e=j+1:f=j}return ve(f,Be)}function Nb(a,b,c){if("function"!=typeof a)return Id;if(b===u)return a;switch(c){case 1:return function(c){return a.call(b,c)};case 3:return function(c,d,e){return a.call(b,c,d,e)};case 4:return function(c,d,e,f){return a.call(b,c,d,e,f)};case 5:return function(c,d,e,f,g){return a.call(b,c,d,e,f,g)}}return function(){return a.apply(b,arguments)}}function Ob(a){var b=new ee(a.byteLength);return new me(b).set(new me(a)),b}function Pb(a,b,c){for(var d=c.length,e=-1,f=ue(a.length-d,0),g=-1,h=b.length,i=Nd(h+f);++g<h;)i[g]=b[g];for(;++e<d;)i[c[e]]=a[e];for(;f--;)i[g++]=a[e++];return i}function Qb(a,b,c){for(var d=-1,e=c.length,f=-1,g=ue(a.length-e,0),h=-1,i=b.length,j=Nd(g+i);++f<g;)j[f]=a[f];for(g=f;++h<i;)j[g+h]=b[h];for(;++d<e;)j[g+c[d]]=a[f++];return j}function Rb(a,b){return function(c,d,e){var f=b?b():{};if(d=tc(d,e,3),Bf(c)){e=-1;for(var g=c.length;++e<g;){var h=c[e];a(f,h,d(h,e,c),c)}}else He(c,function(b,c,e){a(f,b,d(b,c,e),e)});return f}}function Sb(a){return jd(function(b,c){var d=-1,e=null==b?0:c.length,f=2<e?c[e-2]:u,g=2<e?c[2]:u,h=1<e?c[e-1]:u;for("function"==typeof f?(f=Nb(f,h,5),e-=2):(f="function"==typeof h?h:u,e-=f?1:0),g&&Ec(c[0],c[1],g)&&(f=3>e?u:f,e=1);++d<e;)(g=c[d])&&a(b,g,f);return b})}function Tb(a,b){return function(c,d){var e=c?Ne(c):0;if(!Hc(e))return a(c,d);for(var f=b?e:-1,g=Nc(c);(b?f--:++f<e)&&!1!==d(g[f],f,g););return c}}function Ub(a){return function(b,c,d){var e=Nc(b);d=d(b);for(var f=d.length,g=a?f:-1;a?g--:++g<f;){var h=d[g];if(!1===c(e[h],h,e))break}return b}}function Vb(a,b){function c(){return(this&&this!==Ua&&this instanceof c?d:a).apply(b,arguments)}var d=Xb(a);return c}function Wb(a){return function(b){var c=-1;b=Gd(Dd(b));for(var d=b.length,e="";++c<d;)e=a(e,b[c],c);return e}}function Xb(a){return function(){var b=arguments;switch(b.length){case 0:return new a;case 1:return new a(b[0]);case 2:return new a(b[0],b[1]);case 3:return new a(b[0],b[1],b[2]);case 4:return new a(b[0],b[1],b[2],b[3]);case 5:return new a(b[0],b[1],b[2],b[3],b[4]);case 6:return new a(b[0],b[1],b[2],b[3],b[4],b[5]);case 7:return new a(b[0],b[1],b[2],b[3],b[4],b[5],b[6])}var c=Ge(a.prototype),b=a.apply(c,b);return pd(b)?b:c}}function Yb(a){function b(c,d,e){return e&&Ec(c,d,e)&&(d=u),c=pc(c,a,u,u,u,u,u,d),c.placeholder=b.placeholder,c}return b}function Zb(a,b){return jd(function(c){var d=c[0];return null==d?d:(c.push(b),a.apply(u,c))})}function $b(a,b){return function(c,d,e){if(e&&Ec(c,d,e)&&(d=u),d=tc(d,e,3),1==d.length){e=c=Bf(c)?c:Mc(c);for(var f=d,g=-1,h=e.length,i=b,j=i;++g<h;){var k=e[g],l=+f(k);a(l,i)&&(i=l,j=k)}if(e=j,!c.length||e!==b)return e}return ib(c,d,a,b)}}function _b(a,c){return function(d,e,f){return e=tc(e,f,3),Bf(d)?(e=b(d,e,c),-1<e?d[e]:u):kb(d,e,a)}}function ac(a){return function(c,d,e){return c&&c.length?(d=tc(d,e,3),b(c,d,a)):-1}}function bc(a){return function(b,c,d){return c=tc(c,d,3),kb(b,c,a,!0)}}function cc(a){return function(){for(var b,c=arguments.length,d=a?c:-1,e=0,f=Nd(c);a?d--:++d<c;){var g=f[e++]=arguments[d];if("function"!=typeof g)throw new Wd(M);!b&&La.prototype.thru&&"wrapper"==uc(g)&&(b=new La([],!0))}for(d=b?-1:c;++d<c;){var g=f[d],e=uc(g),h="wrapper"==e?Me(g):u;b=h&&Gc(h[0])&&h[1]==(D|z|B|E)&&!h[4].length&&1==h[9]?b[uc(h[0])].apply(b,h[3]):1==g.length&&Gc(g)?b[e]():b.thru(g)}return function(){var a=arguments,d=a[0];if(b&&1==a.length&&Bf(d)&&d.length>=J)return b.plant(d).value();for(var e=0,a=c?f[e].apply(this,a):d;++e<c;)a=f[e].call(this,a);return a}}}function dc(a,b){return function(c,d,e){return"function"==typeof d&&e===u&&Bf(c)?a(c,d):b(c,Nb(d,e,3))}}function ec(a){return function(b,c,d){return("function"!=typeof c||d!==u)&&(c=Nb(c,d,3)),a(b,c,Ad)}}function fc(a){return function(b,c,d){return("function"!=typeof c||d!==u)&&(c=Nb(c,d,3)),a(b,c)}}function gc(a){return function(b,c,d){var e={};return c=tc(c,d,3),nb(b,function(b,d,f){f=c(b,d,f),d=a?f:d,b=a?b:f,e[d]=b}),e}}function hc(a){return function(b,c,d){return b=e(b),(a?b:"")+lc(b,c,d)+(a?"":b)}}function ic(a){var b=jd(function(c,d){var e=p(d,b.placeholder);return pc(c,a,u,d,e)});return b}function jc(a,b){return function(c,d,e,f){var g=3>arguments.length;return"function"==typeof d&&f===u&&Bf(c)?a(c,d,e,g):Bb(c,tc(d,f,4),e,g,b)}}function kc(a,b,c,d,e,f,g,h,i,j){function k(){for(var t=arguments.length,v=t,y=Nd(t);v--;)y[v]=arguments[v];if(d&&(y=Pb(y,d,e)),f&&(y=Qb(y,f,g)),o||r){var v=k.placeholder,z=p(y,v),t=t-z.length;if(t<j){var A=h?Qa(h):u,t=ue(j-t,0),D=o?z:u,z=o?u:z,E=o?y:u,y=o?u:y;return b|=o?B:C,b&=~(o?C:B),q||(b&=~(w|x)),y=[a,b,c,E,D,y,z,A,i,t],A=kc.apply(u,y),Gc(a)&&Oe(A,y),A.placeholder=v,A}}if(v=m?c:this,A=n?v[a]:a,h)for(t=y.length,D=ve(h.length,t),z=Qa(y);D--;)E=h[D],y[D]=Dc(E,t)?z[E]:u;return l&&i<y.length&&(y.length=i),this&&this!==Ua&&this instanceof k&&(A=s||Xb(a)),A.apply(v,y)}var l=b&D,m=b&w,n=b&x,o=b&z,q=b&y,r=b&A,s=n?u:Xb(a);return k}function lc(a,b,c){return a=a.length,b=+b,a<b&&se(b)?(b-=a,c=null==c?" ":c+"",Ed(c,oe(b/c.length)).slice(0,b)):""}function mc(a,b,c,d){function e(){for(var b=-1,h=arguments.length,i=-1,j=d.length,k=Nd(j+h);++i<j;)k[i]=d[i];for(;h--;)k[i++]=arguments[++b];return(this&&this!==Ua&&this instanceof e?g:a).apply(f?c:this,k)}var f=b&w,g=Xb(a);return e}function nc(a){var b=Rd[a];return function(a,c){return(c=c===u?0:+c||0)?(c=he(10,c),b(a*c)/c):b(a)}}function oc(a){return function(b,c,d,e){var f=tc(d);return null==d&&f===db?Lb(b,c,a):Mb(b,c,f(d,e,1),a)}}function pc(a,b,c,d,e,f,g,h){var i=b&x;if(!i&&"function"!=typeof a)throw new Wd(M);var j=d?d.length:0;if(j||(b&=~(B|C),d=e=u),j-=e?e.length:0,b&C){var k=d,l=e;d=e=u}var m=i?u:Me(a);return c=[a,b,c,d,e,k,l,f,g,h],m&&(d=c[1],b=m[1],h=d|b,e=b==D&&d==z||b==D&&d==E&&c[7].length<=m[8]||b==(D|E)&&d==z,(h<D||e)&&(b&w&&(c[2]=m[2],h|=d&w?0:y),(d=m[3])&&(e=c[3],c[3]=e?Pb(e,d,m[4]):Qa(d),c[4]=e?p(c[3],N):Qa(m[4])),(d=m[5])&&(e=c[5],c[5]=e?Qb(e,d,m[6]):Qa(d),c[6]=e?p(c[5],N):Qa(m[6])),(d=m[7])&&(c[7]=Qa(d)),b&D&&(c[8]=null==c[8]?m[8]:ve(c[8],m[8])),null==c[9]&&(c[9]=m[9]),c[0]=m[0],c[1]=h),b=c[1],h=c[9]),c[9]=null==h?i?0:a.length:ue(h-j,0)||0,(m?Le:Oe)(b==w?Vb(c[0],c[2]):b!=B&&b!=(w|B)||c[4].length?kc.apply(u,c):mc.apply(u,c),c)}function qc(a,b,c,d,e,f,g){var h=-1,i=a.length,j=b.length;if(i!=j&&(!e||j<=i))return!1;for(;++h<i;){var k=a[h],j=b[h],l=d?d(e?j:k,e?k:j,h):u;if(l!==u){if(l)continue;return!1}if(e){if(!Za(b,function(a){return k===a||c(k,a,d,e,f,g)}))return!1}else if(k!==j&&!c(k,j,d,e,f,g))return!1}return!0}function rc(a,b,c){switch(c){case Q:case R:return+a==+b;case S:return a.name==b.name&&a.message==b.message;case U:return a!=+a?b!=+b:a==+b;case W:case X:return a==b+""}return!1}function sc(a,b,c,d,e,f,g){var h=Mf(a),i=h.length,j=Mf(b).length;if(i!=j&&!e)return!1;for(j=i;j--;){var k=h[j];if(!(e?k in b:_d.call(b,k)))return!1}for(var l=e;++j<i;){var k=h[j],m=a[k],n=b[k],o=d?d(e?n:m,e?m:n,k):u;if(o===u?!c(m,n,d,e,f,g):!o)return!1;l||(l="constructor"==k)}return!(!l&&(c=a.constructor,d=b.constructor,c!=d&&"constructor"in a&&"constructor"in b&&!("function"==typeof c&&c instanceof c&&"function"==typeof d&&d instanceof d)))}function tc(a,b,c){var d=Ja.callback||Hd,d=d===Hd?db:d;return c?d(a,b,c):d}function uc(a){for(var b=a.name+"",c=Fe[b],d=c?c.length:0;d--;){var e=c[d],f=e.func;if(null==f||f==a)return e.name}return b}function vc(a,b,d){var e=Ja.indexOf||Tc,e=e===Tc?c:e;return a?e(a,b,d):e}function wc(a){a=Bd(a);for(var b=a.length;b--;){var c=a[b][1];a[b][2]=c===c&&!pd(c)}return a}function xc(a,b){var c=null==a?u:a[b];return qd(c)?c:u}function yc(a){var b=a.length,c=new a.constructor(b);return b&&"string"==typeof a[0]&&_d.call(a,"index")&&(c.index=a.index,c.input=a.input),c}function zc(a){return a=a.constructor,"function"==typeof a&&a instanceof a||(a=Td),new a}function Ac(a,b,c){var d=a.constructor;switch(b){case Y:return Ob(a);case Q:case R:return new d(+a);case Z:case $:case _:case aa:case ba:case ca:case da:case ea:case fa:return b=a.buffer,new d(c?Ob(b):b,a.byteOffset,a.length);case U:case X:return new d(a);case W:var e=new d(a.source,ya.exec(a));e.lastIndex=a.lastIndex}return e}function Bc(a,b,c){return null==a||Fc(b,a)||(b=Oc(b),a=1==b.length?a:qb(a,Cb(b,0,-1)),b=Uc(b)),b=null==a?a:a[b],null==b?u:b.apply(a,c)}function Cc(a){return null!=a&&Hc(Ne(a))}function Dc(a,b){return a="number"==typeof a||Ba.test(a)?+a:-1,b=null==b?De:b,-1<a&&0==a%1&&a<b}function Ec(a,b,c){if(!pd(c))return!1;var d=typeof b;return!!("number"==d?Cc(c)&&Dc(b,c.length):"string"==d&&b in c)&&(b=c[b],a===a?a===b:b!==b)}function Fc(a,b){var c=typeof a;return!!("string"==c&&ra.test(a)||"number"==c)||!Bf(a)&&(!qa.test(a)||null!=b&&a in Nc(b))}function Gc(a){var b=uc(a),c=Ja[b];return"function"==typeof c&&b in Ma.prototype&&(a===c||!!(b=Me(c))&&a===b[0])}function Hc(a){return"number"==typeof a&&-1<a&&0==a%1&&a<=De}function Ic(a,b){return a===u?b:Cf(a,b,Ic)}function Jc(a,b){a=Nc(a);for(var c=-1,d=b.length,e={};++c<d;){var f=b[c];f in a&&(e[f]=a[f])}return e}function Kc(a,b){var c={};return mb(a,function(a,d,e){b(a,d,e)&&(c[d]=a)}),c}function Lc(a){for(var b=Ad(a),c=b.length,d=c&&a.length,e=!!d&&Hc(d)&&(Bf(a)||ld(a)),f=-1,g=[];++f<c;){var h=b[f];(e&&Dc(h,d)||_d.call(a,h))&&g.push(h)}return g}function Mc(a){return null==a?[]:Cc(a)?pd(a)?a:Td(a):Cd(a)}function Nc(a){return pd(a)?a:Td(a)}function Oc(a){if(Bf(a))return a;var b=[];return e(a).replace(sa,function(a,c,d,e){b.push(d?e.replace(wa,"$1"):c||a)}),b}function Pc(a){return a instanceof Ma?a.clone():new La(a.__wrapped__,a.__chain__,Qa(a.__actions__))}function Qc(a,b,c){return a&&a.length?((c?Ec(a,b,c):null==b)&&(b=1),Cb(a,0>b?0:b)):[]}function Rc(a,b,c){var d=a?a.length:0;return d?((c?Ec(a,b,c):null==b)&&(b=1),b=d-(+b||0),Cb(a,0,0>b?0:b)):[]}function Sc(a){return a?a[0]:u}function Tc(a,b,d){var e=a?a.length:0;if(!e)return-1;if("number"==typeof d)d=0>d?ue(e+d,0):d;else if(d)return d=Lb(a,b),d<e&&(b===b?b===a[d]:a[d]!==a[d])?d:-1;return c(a,b,d||0)}function Uc(a){var b=a?a.length:0;return b?a[b-1]:u}function Vc(a){return Qc(a,1)}function Wc(a,b,d,e){if(!a||!a.length)return[];null!=b&&"boolean"!=typeof b&&(e=d,d=Ec(a,b,e)?u:b,b=!1);var f=tc();if((null!=d||f!==db)&&(d=f(d,e,3)),b&&vc()===c){b=d;var g;d=-1,e=a.length;for(var f=-1,h=[];++d<e;){var i=a[d],j=b?b(i,d,a):i;d&&g===j||(g=j,h[++f]=i)}a=h}else a=Hb(a,d);return a}function Xc(a){if(!a||!a.length)return[];var b=-1,c=0;a=Ta(a,function(a){return Cc(a)?(c=ue(a.length,c),!0):void 0});for(var d=Nd(c);++b<c;)d[b]=Wa(a,xb(b));return d}function Yc(a,b,c){return a&&a.length?(a=Xc(a),null==b?a:(b=Nb(b,c,4),Wa(a,function(a){return Ya(a,b,u,!0)}))):[]}function Zc(a,b){var c=-1,d=a?a.length:0,e={};for(!d||b||Bf(a[0])||(b=[]);++c<d;){var f=a[c];b?e[f]=b[c]:f&&(e[f[0]]=f[1])}return e}function $c(a){return a=Ja(a),a.__chain__=!0,a}function _c(a,b,c){return b.call(c,a)}function ad(a,b,c){var d=Bf(a)?Sa:hb;return c&&Ec(a,b,c)&&(b=u),("function"!=typeof b||c!==u)&&(b=tc(b,c,3)),d(a,b)}function bd(a,b,c){var d=Bf(a)?Ta:jb;return b=tc(b,c,3),d(a,b)}function cd(a,b,c,d){var e=a?Ne(a):0;return Hc(e)||(a=Cd(a),e=a.length),c="number"!=typeof c||d&&Ec(b,c,d)?0:0>c?ue(e+c,0):c||0,"string"==typeof a||!Bf(a)&&ud(a)?c<=e&&-1<a.indexOf(b,c):!!e&&-1<vc(a,b,c)}function dd(a,b,c){var d=Bf(a)?Wa:tb;return b=tc(b,c,3),d(a,b)}function ed(a,b,c){if(c?Ec(a,b,c):null==b){a=Mc(a);var d=a.length;return 0<d?a[Ab(0,d-1)]:u}c=-1,a=xd(a);var d=a.length,e=d-1;for(b=ve(0>b?0:+b||0,d);++c<b;){var d=Ab(c,e),f=a[d];a[d]=a[c],a[c]=f}return a.length=b,a}function fd(a,b,c){var d=Bf(a)?Za:Db;return c&&Ec(a,b,c)&&(b=u),("function"!=typeof b||c!==u)&&(b=tc(b,c,3)),d(a,b)}function gd(a,b){var c;if("function"!=typeof b){if("function"!=typeof a)throw new Wd(M);var d=a;a=b,b=d}return function(){return 0<--a&&(c=b.apply(this,arguments)),1>=a&&(b=u),c}}function hd(a,b,c){function d(b,c){c&&fe(c),i=m=n=u,b&&(o=nf(),j=a.apply(l,h),m||i||(h=l=u))}function e(){var a=b-(nf()-k);0>=a||a>b?d(n,i):m=ke(e,a)}function f(){d(q,m)}function g(){if(h=arguments,k=nf(),l=this,n=q&&(m||!r),!1===p)var c=r&&!m;else{i||r||(o=k);var d=p-(k-o),g=0>=d||d>p;g?(i&&(i=fe(i)),o=k,j=a.apply(l,h)):i||(i=ke(f,d))}return g&&m?m=fe(m):m||b===p||(m=ke(e,b)),c&&(g=!0,j=a.apply(l,h)),!g||m||i||(h=l=u),j}var h,i,j,k,l,m,n,o=0,p=!1,q=!0;if("function"!=typeof a)throw new Wd(M);if(b=0>b?0:+b||0,!0===c)var r=!0,q=!1;else pd(c)&&(r=!!c.leading,p="maxWait"in c&&ue(+c.maxWait||0,b),q="trailing"in c?!!c.trailing:q);return g.cancel=function(){m&&fe(m),i&&fe(i),o=0,i=m=n=u},g}function id(a,b){function c(){var d=arguments,e=b?b.apply(this,d):d[0],f=c.cache;return f.has(e)?f.get(e):(d=a.apply(this,d),c.cache=f.set(e,d),d)}if("function"!=typeof a||b&&"function"!=typeof b)throw new Wd(M);return c.cache=new id.Cache,c}function jd(a,b){if("function"!=typeof a)throw new Wd(M);return b=ue(b===u?a.length-1:+b||0,0),function(){for(var c=arguments,d=-1,e=ue(c.length-b,0),f=Nd(e);++d<e;)f[d]=c[b+d];switch(b){case 0:return a.call(this,f);case 1:return a.call(this,c[0],f);case 2:return a.call(this,c[0],c[1],f)}for(e=Nd(b+1),d=-1;++d<b;)e[d]=c[d];return e[b]=f,a.apply(this,e)}}function kd(a,b){return a>b}function ld(a){return n(a)&&Cc(a)&&_d.call(a,"callee")&&!ie.call(a,"callee")}function md(a,b,c,d){return d=(c="function"==typeof c?Nb(c,d,3):u)?c(a,b):u,d===u?rb(a,b,c):!!d}function nd(a){return n(a)&&"string"==typeof a.message&&be.call(a)==S}function od(a){return pd(a)&&be.call(a)==T}function pd(a){var b=typeof a;return!!a&&("object"==b||"function"==b)}function qd(a){return null!=a&&(od(a)?de.test($d.call(a)):n(a)&&Aa.test(a))}function rd(a){return"number"==typeof a||n(a)&&be.call(a)==U}function sd(a){var b;if(!n(a)||be.call(a)!=V||ld(a)||!(_d.call(a,"constructor")||"function"!=typeof(b=a.constructor)||b instanceof b))return!1;var c;return mb(a,function(a,b){c=b}),c===u||_d.call(a,c)}function td(a){return pd(a)&&be.call(a)==W}function ud(a){return"string"==typeof a||n(a)&&be.call(a)==X}function vd(a){return n(a)&&Hc(a.length)&&!!Ha[be.call(a)]}function wd(a,b){return a<b}function xd(a){var b=a?Ne(a):0;return Hc(b)?b?Qa(a):[]:Cd(a)}function yd(a){return cb(a,Ad(a))}function zd(a){return pb(a,Ad(a))}function Ad(a){if(null==a)return[];pd(a)||(a=Td(a));for(var b=a.length,b=b&&Hc(b)&&(Bf(a)||ld(a))&&b||0,c=a.constructor,d=-1,c="function"==typeof c&&c.prototype===a,e=Nd(b),f=0<b;++d<b;)e[d]=d+"";for(var g in a)f&&Dc(g,b)||"constructor"==g&&(c||!_d.call(a,g))||e.push(g);return e}function Bd(a){a=Nc(a);for(var b=-1,c=Mf(a),d=c.length,e=Nd(d);++b<d;){var f=c[b];e[b]=[f,a[f]]}return e}function Cd(a){return Ib(a,Mf(a))}function Dd(a){return(a=e(a))&&a.replace(Ca,i).replace(va,"")}function Ed(a,b){var c="";if(a=e(a),1>(b=+b)||!a||!se(b))return c;do{b%2&&(c+=a),b=qe(b/2),a+=a}while(b);return c}function Fd(a,b,c){var d=a;return(a=e(a))?(c?Ec(d,b,c):null==b)?a.slice(q(a),r(a)+1):(b+="",a.slice(f(a,b),g(a,b)+1)):a}function Gd(a,b,c){return c&&Ec(a,b,c)&&(b=u),a=e(a),a.match(b||Fa)||[]}function Hd(a,b,c){return c&&Ec(a,b,c)&&(b=u),n(a)?Jd(a):db(a,b)}function Id(a){return a}function Jd(a){return ub(eb(a,!0))}function Kd(a,b,c){if(null==c){var d=pd(b),e=d?Mf(b):u;((e=e&&e.length?pb(b,e):u)?e.length:d)||(e=!1,c=b,b=a,a=this)}e||(e=pb(b,Mf(b)));var f=!0,d=-1,g=od(a),h=e.length;!1===c?f=!1:pd(c)&&"chain"in c&&(f=c.chain);for(;++d<h;){c=e[d];var i=b[c];a[c]=i,g&&(a.prototype[c]=function(b){return function(){var c=this.__chain__;if(f||c){var d=a(this.__wrapped__);return(d.__actions__=Qa(this.__actions__)).push({func:b,args:arguments,thisArg:a}),d.__chain__=c,d}return b.apply(a,Xa([this.value()],arguments))}}(i))}return a}function Ld(){}function Md(a){return Fc(a)?xb(a):yb(a)}o=o?Va.defaults(Ua.Object(),o,Va.pick(Ua,Ga)):Ua;var Nd=o.Array,Od=o.Date,Pd=o.Error,Qd=o.Function,Rd=o.Math,Sd=o.Number,Td=o.Object,Ud=o.RegExp,Vd=o.String,Wd=o.TypeError,Xd=Nd.prototype,Yd=Td.prototype,Zd=Vd.prototype,$d=Qd.prototype.toString,_d=Yd.hasOwnProperty,ae=0,be=Yd.toString,ce=Ua._,de=Ud("^"+$d.call(_d).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),ee=o.ArrayBuffer,fe=o.clearTimeout,ge=o.parseFloat,he=Rd.pow,ie=Yd.propertyIsEnumerable,je=xc(o,"Set"),ke=o.setTimeout,le=Xd.splice,me=o.Uint8Array,ne=xc(o,"WeakMap"),oe=Rd.ceil,pe=xc(Td,"create"),qe=Rd.floor,re=xc(Nd,"isArray"),se=o.isFinite,te=xc(Td,"keys"),ue=Rd.max,ve=Rd.min,we=xc(Od,"now"),xe=o.parseInt,ye=Rd.random,ze=Sd.NEGATIVE_INFINITY,Ae=Sd.POSITIVE_INFINITY,Be=4294967294,Ce=2147483647,De=9007199254740991,Ee=ne&&new ne,Fe={};Ja.support={},Ja.templateSettings={escape:na,evaluate:oa,interpolate:pa,variable:"",imports:{_:Ja}};var Ge=function(){function a(){}return function(b){if(pd(b)){a.prototype=b;var c=new a;a.prototype=u}return c||{}}}(),He=Tb(nb),Ie=Tb(ob,!0),Je=Ub(),Ke=Ub(!0),Le=Ee?function(a,b){return Ee.set(a,b),a}:Id,Me=Ee?function(a){return Ee.get(a)}:Ld,Ne=xb("length"),Oe=function(){var a=0,b=0;return function(c,d){var e=nf(),f=I-(e-b);if(b=e,0<f){if(++a>=H)return c}else a=0;return Le(c,d)}}(),Pe=jd(function(a,b){return n(a)&&Cc(a)?gb(a,lb(b,!1,!0)):[]}),Qe=ac(),Re=ac(!0),Se=jd(function(a){for(var b=a.length,d=b,e=Nd(k),f=vc(),g=f===c,h=[];d--;){var i=a[d]=Cc(i=a[d])?i:[];e[d]=g&&120<=i.length&&pe&&je?new Oa(d&&i):null}var g=a[0],j=-1,k=g?g.length:0,l=e[0];a:for(;++j<k;)if(i=g[j],0>(l?Pa(l,i):f(h,i,0))){for(d=b;--d;){var m=e[d];if(0>(m?Pa(m,i):f(a[d],i,0)))continue a}l&&l.push(i),h.push(i)}return h}),Te=jd(function(b,c){c=lb(c);var d=bb(b,c);return zb(b,c.sort(a)),d}),Ue=oc(),Ve=oc(!0),We=jd(function(a){return Hb(lb(a,!1,!0))}),Xe=jd(function(a,b){return Cc(a)?gb(a,b):[]}),Ye=jd(Xc),Ze=jd(function(a){var b=a.length,c=2<b?a[b-2]:u,d=1<b?a[b-1]:u;return 2<b&&"function"==typeof c?b-=2:(c=1<b&&"function"==typeof d?(--b,d):u,d=u),a.length=b,Yc(a,c,d)}),$e=jd(function(a){return a=lb(a),this.thru(function(b){b=Bf(b)?b:[Nc(b)];for(var c=a,d=-1,e=b.length,f=-1,g=c.length,h=Nd(e+g);++d<e;)h[d]=b[d];for(;++f<g;)h[d++]=c[f];return h})}),_e=jd(function(a,b){return bb(a,lb(b))}),af=Rb(function(a,b,c){_d.call(a,c)?++a[c]:a[c]=1}),bf=_b(He),cf=_b(Ie,!0),df=dc(Ra,He),ef=dc(function(a,b){for(var c=a.length;c--&&!1!==b(a[c],c,a););return a},Ie),ff=Rb(function(a,b,c){_d.call(a,c)?a[c].push(b):a[c]=[b]}),gf=Rb(function(a,b,c){a[c]=b}),hf=jd(function(a,b,c){var d=-1,e="function"==typeof b,f=Fc(b),g=Cc(a)?Nd(a.length):[];return He(a,function(a){var h=e?b:f&&null!=a?a[b]:u;g[++d]=h?h.apply(a,c):Bc(a,b,c)}),g}),jf=Rb(function(a,b,c){a[c?0:1].push(b)},function(){return[[],[]]}),kf=jc(Ya,He),lf=jc(function(a,b,c,d){var e=a.length;for(d&&e&&(c=a[--e]);e--;)c=b(c,a[e],e,a);return c},Ie),mf=jd(function(a,b){if(null==a)return[];var c=b[2];return c&&Ec(b[0],b[1],c)&&(b.length=1),Fb(a,lb(b),[])}),nf=we||function(){return(new Od).getTime()},of=jd(function(a,b,c){var d=w;if(c.length)var e=p(c,of.placeholder),d=d|B;return pc(a,d,b,c,e)}),pf=jd(function(a,b){b=b.length?lb(b):zd(a);for(var c=-1,d=b.length;++c<d;){var e=b[c];a[e]=pc(a[e],w,a)}return a}),qf=jd(function(a,b,c){var d=w|x;if(c.length)var e=p(c,qf.placeholder),d=d|B;return pc(b,d,a,c,e)}),rf=Yb(z),sf=Yb(A),tf=jd(function(a,b){return fb(a,1,b)}),uf=jd(function(a,b,c){return fb(a,b,c)}),vf=cc(),wf=cc(!0),xf=jd(function(a,b){if(b=lb(b),"function"!=typeof a||!Sa(b,d))throw new Wd(M);var c=b.length;return jd(function(d){for(var e=ve(d.length,c);e--;)d[e]=b[e](d[e]);return a.apply(this,d)})}),yf=ic(B),zf=ic(C),Af=jd(function(a,b){return pc(a,E,u,u,u,lb(b))}),Bf=re||function(a){return n(a)&&Hc(a.length)&&be.call(a)==P},Cf=Sb(wb),Df=Sb(function(a,b,c){return c?_a(a,b,c):ab(a,b)}),Ef=Zb(Df,function(a,b){return a===u?b:a}),Ff=Zb(Cf,Ic),Gf=bc(nb),Hf=bc(ob),If=ec(Je),Jf=ec(Ke),Kf=fc(nb),Lf=fc(ob),Mf=te?function(a){var b=null==a?u:a.constructor;return"function"==typeof b&&b.prototype===a||"function"!=typeof a&&Cc(a)?Lc(a):pd(a)?te(a):[]}:Lc,Nf=gc(!0),Of=gc(),Pf=jd(function(a,b){if(null==a)return{};if("function"!=typeof b[0])return b=Wa(lb(b),Vd),Jc(a,gb(Ad(a),b));var c=Nb(b[0],b[1],3);return Kc(a,function(a,b,d){return!c(a,b,d)})}),Qf=jd(function(a,b){return null==a?{}:"function"==typeof b[0]?Kc(a,Nb(b[0],b[1],3)):Jc(a,lb(b))}),Rf=Wb(function(a,b,c){return b=b.toLowerCase(),a+(c?b.charAt(0).toUpperCase()+b.slice(1):b)}),Sf=Wb(function(a,b,c){return a+(c?"-":"")+b.toLowerCase()}),Tf=hc(),Uf=hc(!0),Vf=Wb(function(a,b,c){return a+(c?"_":"")+b.toLowerCase()}),Wf=Wb(function(a,b,c){return a+(c?" ":"")+(b.charAt(0).toUpperCase()+b.slice(1))}),Xf=jd(function(a,b){try{return a.apply(u,b)}catch(c){ +return nd(c)?c:new Pd(c)}}),Yf=jd(function(a,b){return function(c){return Bc(c,a,b)}}),Zf=jd(function(a,b){return function(c){return Bc(a,c,b)}}),$f=nc("ceil"),_f=nc("floor"),ag=$b(kd,ze),bg=$b(wd,Ae),cg=nc("round");return Ja.prototype=Ka.prototype,La.prototype=Ge(Ka.prototype),La.prototype.constructor=La,Ma.prototype=Ge(Ka.prototype),Ma.prototype.constructor=Ma,Na.prototype.delete=function(a){return this.has(a)&&delete this.__data__[a]},Na.prototype.get=function(a){return"__proto__"==a?u:this.__data__[a]},Na.prototype.has=function(a){return"__proto__"!=a&&_d.call(this.__data__,a)},Na.prototype.set=function(a,b){return"__proto__"!=a&&(this.__data__[a]=b),this},Oa.prototype.push=function(a){var b=this.data;"string"==typeof a||pd(a)?b.set.add(a):b.hash[a]=!0},id.Cache=Na,Ja.after=function(a,b){if("function"!=typeof b){if("function"!=typeof a)throw new Wd(M);var c=a;a=b,b=c}return a=se(a=+a)?a:0,function(){return 1>--a?b.apply(this,arguments):void 0}},Ja.ary=function(a,b,c){return c&&Ec(a,b,c)&&(b=u),b=a&&null==b?a.length:ue(+b||0,0),pc(a,D,u,u,u,u,b)},Ja.assign=Df,Ja.at=_e,Ja.before=gd,Ja.bind=of,Ja.bindAll=pf,Ja.bindKey=qf,Ja.callback=Hd,Ja.chain=$c,Ja.chunk=function(a,b,c){b=(c?Ec(a,b,c):null==b)?1:ue(qe(b)||1,1),c=0;for(var d=a?a.length:0,e=-1,f=Nd(oe(d/b));c<d;)f[++e]=Cb(a,c,c+=b);return f},Ja.compact=function(a){for(var b=-1,c=a?a.length:0,d=-1,e=[];++b<c;){var f=a[b];f&&(e[++d]=f)}return e},Ja.constant=function(a){return function(){return a}},Ja.countBy=af,Ja.create=function(a,b,c){var d=Ge(a);return c&&Ec(a,b,c)&&(b=u),b?ab(d,b):d},Ja.curry=rf,Ja.curryRight=sf,Ja.debounce=hd,Ja.defaults=Ef,Ja.defaultsDeep=Ff,Ja.defer=tf,Ja.delay=uf,Ja.difference=Pe,Ja.drop=Qc,Ja.dropRight=Rc,Ja.dropRightWhile=function(a,b,c){return a&&a.length?Jb(a,tc(b,c,3),!0,!0):[]},Ja.dropWhile=function(a,b,c){return a&&a.length?Jb(a,tc(b,c,3),!0):[]},Ja.fill=function(a,b,c,d){var e=a?a.length:0;if(!e)return[];for(c&&"number"!=typeof c&&Ec(a,b,c)&&(c=0,d=e),e=a.length,c=null==c?0:+c||0,0>c&&(c=-c>e?0:e+c),d=d===u||d>e?e:+d||0,0>d&&(d+=e),e=c>d?0:d>>>0,c>>>=0;c<e;)a[c++]=b;return a},Ja.filter=bd,Ja.flatten=function(a,b,c){var d=a?a.length:0;return c&&Ec(a,b,c)&&(b=!1),d?lb(a,b):[]},Ja.flattenDeep=function(a){return a&&a.length?lb(a,!0):[]},Ja.flow=vf,Ja.flowRight=wf,Ja.forEach=df,Ja.forEachRight=ef,Ja.forIn=If,Ja.forInRight=Jf,Ja.forOwn=Kf,Ja.forOwnRight=Lf,Ja.functions=zd,Ja.groupBy=ff,Ja.indexBy=gf,Ja.initial=function(a){return Rc(a,1)},Ja.intersection=Se,Ja.invert=function(a,b,c){c&&Ec(a,b,c)&&(b=u),c=-1;for(var d=Mf(a),e=d.length,f={};++c<e;){var g=d[c],h=a[g];b?_d.call(f,h)?f[h].push(g):f[h]=[g]:f[h]=g}return f},Ja.invoke=hf,Ja.keys=Mf,Ja.keysIn=Ad,Ja.map=dd,Ja.mapKeys=Nf,Ja.mapValues=Of,Ja.matches=Jd,Ja.matchesProperty=function(a,b){return vb(a,eb(b,!0))},Ja.memoize=id,Ja.merge=Cf,Ja.method=Yf,Ja.methodOf=Zf,Ja.mixin=Kd,Ja.modArgs=xf,Ja.negate=function(a){if("function"!=typeof a)throw new Wd(M);return function(){return!a.apply(this,arguments)}},Ja.omit=Pf,Ja.once=function(a){return gd(2,a)},Ja.pairs=Bd,Ja.partial=yf,Ja.partialRight=zf,Ja.partition=jf,Ja.pick=Qf,Ja.pluck=function(a,b){return dd(a,Md(b))},Ja.property=Md,Ja.propertyOf=function(a){return function(b){return qb(a,Oc(b),b+"")}},Ja.pull=function(){var a=arguments,b=a[0];if(!b||!b.length)return b;for(var c=0,d=vc(),e=a.length;++c<e;)for(var f=0,g=a[c];-1<(f=d(b,g,f));)le.call(b,f,1);return b},Ja.pullAt=Te,Ja.range=function(a,b,c){c&&Ec(a,b,c)&&(b=c=u),a=+a||0,c=null==c?1:+c||0,null==b?(b=a,a=0):b=+b||0;var d=-1;b=ue(oe((b-a)/(c||1)),0);for(var e=Nd(b);++d<b;)e[d]=a,a+=c;return e},Ja.rearg=Af,Ja.reject=function(a,b,c){var d=Bf(a)?Ta:jb;return b=tc(b,c,3),d(a,function(a,c,d){return!b(a,c,d)})},Ja.remove=function(a,b,c){var d=[];if(!a||!a.length)return d;var e=-1,f=[],g=a.length;for(b=tc(b,c,3);++e<g;)c=a[e],b(c,e,a)&&(d.push(c),f.push(e));return zb(a,f),d},Ja.rest=Vc,Ja.restParam=jd,Ja.set=function(a,b,c){if(null==a)return a;var d=b+"";b=null!=a[d]||Fc(b,a)?[d]:Oc(b);for(var d=-1,e=b.length,f=e-1,g=a;null!=g&&++d<e;){var h=b[d];pd(g)&&(d==f?g[h]=c:null==g[h]&&(g[h]=Dc(b[d+1])?[]:{})),g=g[h]}return a},Ja.shuffle=function(a){return ed(a,Ae)},Ja.slice=function(a,b,c){var d=a?a.length:0;return d?(c&&"number"!=typeof c&&Ec(a,b,c)&&(b=0,c=d),Cb(a,b,c)):[]},Ja.sortBy=function(a,b,c){if(null==a)return[];c&&Ec(a,b,c)&&(b=u);var d=-1;return b=tc(b,c,3),a=tb(a,function(a,c,e){return{a:b(a,c,e),b:++d,c:a}}),Eb(a,h)},Ja.sortByAll=mf,Ja.sortByOrder=function(a,b,c,d){return null==a?[]:(d&&Ec(b,c,d)&&(c=u),Bf(b)||(b=null==b?[]:[b]),Bf(c)||(c=null==c?[]:[c]),Fb(a,b,c))},Ja.spread=function(a){if("function"!=typeof a)throw new Wd(M);return function(b){return a.apply(this,b)}},Ja.take=function(a,b,c){return a&&a.length?((c?Ec(a,b,c):null==b)&&(b=1),Cb(a,0,0>b?0:b)):[]},Ja.takeRight=function(a,b,c){var d=a?a.length:0;return d?((c?Ec(a,b,c):null==b)&&(b=1),b=d-(+b||0),Cb(a,0>b?0:b)):[]},Ja.takeRightWhile=function(a,b,c){return a&&a.length?Jb(a,tc(b,c,3),!1,!0):[]},Ja.takeWhile=function(a,b,c){return a&&a.length?Jb(a,tc(b,c,3)):[]},Ja.tap=function(a,b,c){return b.call(c,a),a},Ja.throttle=function(a,b,c){var d=!0,e=!0;if("function"!=typeof a)throw new Wd(M);return!1===c?d=!1:pd(c)&&(d="leading"in c?!!c.leading:d,e="trailing"in c?!!c.trailing:e),hd(a,b,{leading:d,maxWait:+b,trailing:e})},Ja.thru=_c,Ja.times=function(a,b,c){if(1>(a=qe(a))||!se(a))return[];var d=-1,e=Nd(ve(a,4294967295));for(b=Nb(b,c,1);++d<a;)4294967295>d?e[d]=b(d):b(d);return e},Ja.toArray=xd,Ja.toPlainObject=yd,Ja.transform=function(a,b,c,d){var e=Bf(a)||vd(a);return b=tc(b,d,4),null==c&&(e||pd(a)?(d=a.constructor,c=e?Bf(a)?new d:[]:Ge(od(d)?d.prototype:u)):c={}),(e?Ra:nb)(a,function(a,d,e){return b(c,a,d,e)}),c},Ja.union=We,Ja.uniq=Wc,Ja.unzip=Xc,Ja.unzipWith=Yc,Ja.values=Cd,Ja.valuesIn=function(a){return Ib(a,Ad(a))},Ja.where=function(a,b){return bd(a,ub(b))},Ja.without=Xe,Ja.wrap=function(a,b){return b=null==b?Id:b,pc(b,B,u,[a],[])},Ja.xor=function(){for(var a=-1,b=arguments.length;++a<b;){var c=arguments[a];if(Cc(c))var d=d?Xa(gb(d,c),gb(c,d)):c}return d?Hb(d):[]},Ja.zip=Ye,Ja.zipObject=Zc,Ja.zipWith=Ze,Ja.backflow=wf,Ja.collect=dd,Ja.compose=wf,Ja.each=df,Ja.eachRight=ef,Ja.extend=Df,Ja.iteratee=Hd,Ja.methods=zd,Ja.object=Zc,Ja.select=bd,Ja.tail=Vc,Ja.unique=Wc,Kd(Ja,Ja),Ja.add=function(a,b){return(+a||0)+(+b||0)},Ja.attempt=Xf,Ja.camelCase=Rf,Ja.capitalize=function(a){return(a=e(a))&&a.charAt(0).toUpperCase()+a.slice(1)},Ja.ceil=$f,Ja.clone=function(a,b,c,d){return b&&"boolean"!=typeof b&&Ec(a,b,c)?b=!1:"function"==typeof b&&(d=c,c=b,b=!1),"function"==typeof c?eb(a,b,Nb(c,d,3)):eb(a,b)},Ja.cloneDeep=function(a,b,c){return"function"==typeof b?eb(a,!0,Nb(b,c,3)):eb(a,!0)},Ja.deburr=Dd,Ja.endsWith=function(a,b,c){a=e(a),b+="";var d=a.length;return c=c===u?d:ve(0>c?0:+c||0,d),0<=(c-=b.length)&&a.indexOf(b,c)==c},Ja.escape=function(a){return(a=e(a))&&ma.test(a)?a.replace(ka,j):a},Ja.escapeRegExp=function(a){return(a=e(a))&&ua.test(a)?a.replace(ta,k):a||"(?:)"},Ja.every=ad,Ja.find=bf,Ja.findIndex=Qe,Ja.findKey=Gf,Ja.findLast=cf,Ja.findLastIndex=Re,Ja.findLastKey=Hf,Ja.findWhere=function(a,b){return bf(a,ub(b))},Ja.first=Sc,Ja.floor=_f,Ja.get=function(a,b,c){return a=null==a?u:qb(a,Oc(b),b+""),a===u?c:a},Ja.gt=kd,Ja.gte=function(a,b){return a>=b},Ja.has=function(a,b){if(null==a)return!1;var c=_d.call(a,b);if(!c&&!Fc(b)){if(b=Oc(b),null==(a=1==b.length?a:qb(a,Cb(b,0,-1))))return!1;b=Uc(b),c=_d.call(a,b)}return c||Hc(a.length)&&Dc(b,a.length)&&(Bf(a)||ld(a))},Ja.identity=Id,Ja.includes=cd,Ja.indexOf=Tc,Ja.inRange=function(a,b,c){return b=+b||0,c===u?(c=b,b=0):c=+c||0,a>=ve(b,c)&&a<ue(b,c)},Ja.isArguments=ld,Ja.isArray=Bf,Ja.isBoolean=function(a){return!0===a||!1===a||n(a)&&be.call(a)==Q},Ja.isDate=function(a){return n(a)&&be.call(a)==R},Ja.isElement=function(a){return!!a&&1===a.nodeType&&n(a)&&!sd(a)},Ja.isEmpty=function(a){return null==a||(Cc(a)&&(Bf(a)||ud(a)||ld(a)||n(a)&&od(a.splice))?!a.length:!Mf(a).length)},Ja.isEqual=md,Ja.isError=nd,Ja.isFinite=function(a){return"number"==typeof a&&se(a)},Ja.isFunction=od,Ja.isMatch=function(a,b,c,d){return c="function"==typeof c?Nb(c,d,3):u,sb(a,wc(b),c)},Ja.isNaN=function(a){return rd(a)&&a!=+a},Ja.isNative=qd,Ja.isNull=function(a){return null===a},Ja.isNumber=rd,Ja.isObject=pd,Ja.isPlainObject=sd,Ja.isRegExp=td,Ja.isString=ud,Ja.isTypedArray=vd,Ja.isUndefined=function(a){return a===u},Ja.kebabCase=Sf,Ja.last=Uc,Ja.lastIndexOf=function(a,b,c){var d=a?a.length:0;if(!d)return-1;var e=d;if("number"==typeof c)e=(0>c?ue(d+c,0):ve(c||0,d-1))+1;else if(c)return e=Lb(a,b,!0)-1,a=a[e],(b===b?b===a:a!==a)?e:-1;if(b!==b)return m(a,e,!0);for(;e--;)if(a[e]===b)return e;return-1},Ja.lt=wd,Ja.lte=function(a,b){return a<=b},Ja.max=ag,Ja.min=bg,Ja.noConflict=function(){return Ua._=ce,this},Ja.noop=Ld,Ja.now=nf,Ja.pad=function(a,b,c){a=e(a),b=+b;var d=a.length;return d<b&&se(b)?(d=(b-d)/2,b=qe(d),d=oe(d),c=lc("",d,c),c.slice(0,b)+a+c):a},Ja.padLeft=Tf,Ja.padRight=Uf,Ja.parseInt=function(a,b,c){return(c?Ec(a,b,c):null==b)?b=0:b&&(b=+b),a=Fd(a),xe(a,b||(za.test(a)?16:10))},Ja.random=function(a,b,c){c&&Ec(a,b,c)&&(b=c=u);var d=null==a,e=null==b;return null==c&&(e&&"boolean"==typeof a?(c=a,a=1):"boolean"==typeof b&&(c=b,e=!0)),d&&e&&(b=1,e=!1),a=+a||0,e?(b=a,a=0):b=+b||0,c||a%1||b%1?(c=ye(),ve(a+c*(b-a+ge("1e-"+((c+"").length-1))),b)):Ab(a,b)},Ja.reduce=kf,Ja.reduceRight=lf,Ja.repeat=Ed,Ja.result=function(a,b,c){var d=null==a?u:a[b];return d===u&&(null==a||Fc(b,a)||(b=Oc(b),a=1==b.length?a:qb(a,Cb(b,0,-1)),d=null==a?u:a[Uc(b)]),d=d===u?c:d),od(d)?d.call(a):d},Ja.round=cg,Ja.runInContext=t,Ja.size=function(a){var b=a?Ne(a):0;return Hc(b)?b:Mf(a).length},Ja.snakeCase=Vf,Ja.some=fd,Ja.sortedIndex=Ue,Ja.sortedLastIndex=Ve,Ja.startCase=Wf,Ja.startsWith=function(a,b,c){return a=e(a),c=null==c?0:ve(0>c?0:+c||0,a.length),a.lastIndexOf(b,c)==c},Ja.sum=function(a,b,c){if(c&&Ec(a,b,c)&&(b=u),b=tc(b,c,3),1==b.length){a=Bf(a)?a:Mc(a),c=a.length;for(var d=0;c--;)d+=+b(a[c])||0;a=d}else a=Gb(a,b);return a},Ja.template=function(a,b,c){var d=Ja.templateSettings;c&&Ec(a,b,c)&&(b=c=u),a=e(a),b=_a(ab({},c||b),d,$a),c=_a(ab({},b.imports),d.imports,$a);var f,g,h=Mf(c),i=Ib(c,h),j=0;c=b.interpolate||Da;var k="__p+='";c=Ud((b.escape||Da).source+"|"+c.source+"|"+(c===pa?xa:Da).source+"|"+(b.evaluate||Da).source+"|$","g");var m="sourceURL"in b?"//# sourceURL="+b.sourceURL+"\n":"";if(a.replace(c,function(b,c,d,e,h,i){return d||(d=e),k+=a.slice(j,i).replace(Ea,l),c&&(f=!0,k+="'+__e("+c+")+'"),h&&(g=!0,k+="';"+h+";\n__p+='"),d&&(k+="'+((__t=("+d+"))==null?'':__t)+'"),j=i+b.length,b}),k+="';",(b=b.variable)||(k="with(obj){"+k+"}"),k=(g?k.replace(ga,""):k).replace(ha,"$1").replace(ia,"$1;"),k="function("+(b||"obj")+"){"+(b?"":"obj||(obj={});")+"var __t,__p=''"+(f?",__e=_.escape":"")+(g?",__j=Array.prototype.join;function print(){__p+=__j.call(arguments,'')}":";")+k+"return __p}",b=Xf(function(){return Qd(h,m+"return "+k).apply(u,i)}),b.source=k,nd(b))throw b;return b},Ja.trim=Fd,Ja.trimLeft=function(a,b,c){var d=a;return(a=e(a))?a.slice((c?Ec(d,b,c):null==b)?q(a):f(a,b+"")):a},Ja.trimRight=function(a,b,c){var d=a;return(a=e(a))?(c?Ec(d,b,c):null==b)?a.slice(0,r(a)+1):a.slice(0,g(a,b+"")+1):a},Ja.trunc=function(a,b,c){c&&Ec(a,b,c)&&(b=u);var d=F;if(c=G,null!=b)if(pd(b)){var f="separator"in b?b.separator:f,d="length"in b?+b.length||0:d;c="omission"in b?e(b.omission):c}else d=+b||0;if(a=e(a),d>=a.length)return a;if(1>(d-=c.length))return c;if(b=a.slice(0,d),null==f)return b+c;if(td(f)){if(a.slice(d).search(f)){var g,h=a.slice(0,d);for(f.global||(f=Ud(f.source,(ya.exec(f)||"")+"g")),f.lastIndex=0;a=f.exec(h);)g=a.index;b=b.slice(0,null==g?d:g)}}else a.indexOf(f,d)!=d&&-1<(f=b.lastIndexOf(f))&&(b=b.slice(0,f));return b+c},Ja.unescape=function(a){return(a=e(a))&&la.test(a)?a.replace(ja,s):a},Ja.uniqueId=function(a){var b=++ae;return e(a)+b},Ja.words=Gd,Ja.all=ad,Ja.any=fd,Ja.contains=cd,Ja.eq=md,Ja.detect=bf,Ja.foldl=kf,Ja.foldr=lf,Ja.head=Sc,Ja.include=cd,Ja.inject=kf,Kd(Ja,function(){var a={};return nb(Ja,function(b,c){Ja.prototype[c]||(a[c]=b)}),a}(),!1),Ja.sample=ed,Ja.prototype.sample=function(a){return this.__chain__||null!=a?this.thru(function(b){return ed(b,a)}):ed(this.value())},Ja.VERSION=v,Ra("bind bindKey curry curryRight partial partialRight".split(" "),function(a){Ja[a].placeholder=Ja}),Ra(["drop","take"],function(a,b){Ma.prototype[a]=function(c){var d=this.__filtered__;if(d&&!b)return new Ma(this);c=null==c?1:ue(qe(c)||0,0);var e=this.clone();return d?e.__takeCount__=ve(e.__takeCount__,c):e.__views__.push({size:c,type:a+(0>e.__dir__?"Right":"")}),e},Ma.prototype[a+"Right"]=function(b){return this.reverse()[a](b).reverse()}}),Ra(["filter","map","takeWhile"],function(a,b){var c=b+1,d=c!=L;Ma.prototype[a]=function(a,b){var e=this.clone();return e.__iteratees__.push({iteratee:tc(a,b,1),type:c}),e.__filtered__=e.__filtered__||d,e}}),Ra(["first","last"],function(a,b){var c="take"+(b?"Right":"");Ma.prototype[a]=function(){return this[c](1).value()[0]}}),Ra(["initial","rest"],function(a,b){var c="drop"+(b?"":"Right");Ma.prototype[a]=function(){return this.__filtered__?new Ma(this):this[c](1)}}),Ra(["pluck","where"],function(a,b){var c=b?"filter":"map",d=b?ub:Md;Ma.prototype[a]=function(a){return this[c](d(a))}}),Ma.prototype.compact=function(){return this.filter(Id)},Ma.prototype.reject=function(a,b){return a=tc(a,b,1),this.filter(function(b){return!a(b)})},Ma.prototype.slice=function(a,b){a=null==a?0:+a||0;var c=this;return c.__filtered__&&(0<a||0>b)?new Ma(c):(0>a?c=c.takeRight(-a):a&&(c=c.drop(a)),b!==u&&(b=+b||0,c=0>b?c.dropRight(-b):c.take(b-a)),c)},Ma.prototype.takeRightWhile=function(a,b){return this.reverse().takeWhile(a,b).reverse()},Ma.prototype.toArray=function(){return this.take(Ae)},nb(Ma.prototype,function(a,b){var c=/^(?:filter|map|reject)|While$/.test(b),d=/^(?:first|last)$/.test(b),e=Ja[d?"take"+("last"==b?"Right":""):b];e&&(Ja.prototype[b]=function(){function b(a){return d&&g?e(a,1)[0]:e.apply(u,Xa([a],f))}var f=d?[1]:arguments,g=this.__chain__,h=this.__wrapped__,i=!!this.__actions__.length,j=h instanceof Ma,k=f[0],l=j||Bf(h);return l&&c&&"function"==typeof k&&1!=k.length&&(j=l=!1),k={func:_c,args:[b],thisArg:u},i=j&&!i,d&&!g?i?(h=h.clone(),h.__actions__.push(k),a.call(h)):e.call(u,this.value())[0]:!d&&l?(h=i?h:new Ma(this),h=a.apply(h,f),h.__actions__.push(k),new La(h,g)):this.thru(b)})}),Ra("join pop push replace shift sort splice split unshift".split(" "),function(a){var b=(/^(?:replace|split)$/.test(a)?Zd:Xd)[a],c=/^(?:push|sort|unshift)$/.test(a)?"tap":"thru",d=/^(?:join|pop|replace|shift)$/.test(a);Ja.prototype[a]=function(){var a=arguments;return d&&!this.__chain__?b.apply(this.value(),a):this[c](function(c){return b.apply(c,a)})}}),nb(Ma.prototype,function(a,b){var c=Ja[b];if(c){var d=c.name+"";(Fe[d]||(Fe[d]=[])).push({name:b,func:c})}}),Fe[kc(u,x).name]=[{name:"wrapper",func:u}],Ma.prototype.clone=function(){var a=new Ma(this.__wrapped__);return a.__actions__=Qa(this.__actions__),a.__dir__=this.__dir__,a.__filtered__=this.__filtered__,a.__iteratees__=Qa(this.__iteratees__),a.__takeCount__=this.__takeCount__,a.__views__=Qa(this.__views__),a},Ma.prototype.reverse=function(){if(this.__filtered__){var a=new Ma(this);a.__dir__=-1,a.__filtered__=!0}else a=this.clone(),a.__dir__*=-1;return a},Ma.prototype.value=function(){var a,b=this.__wrapped__.value(),c=this.__dir__,d=Bf(b),e=0>c,f=d?b.length:0;a=f;for(var g=this.__views__,h=0,i=-1,j=g.length;++i<j;){var k=g[i],l=k.size;switch(k.type){case"drop":h+=l;break;case"dropRight":a-=l;break;case"take":a=ve(a,h+l);break;case"takeRight":h=ue(h,a-l)}}if(a={start:h,end:a},g=a.start,h=a.end,a=h-g,e=e?h:g-1,g=this.__iteratees__,h=g.length,i=0,j=ve(a,this.__takeCount__),!d||f<J||f==a&&j==a)return Kb(b,this.__actions__);d=[];a:for(;a--&&i<j;){for(e+=c,f=-1,k=b[e];++f<h;){var m=g[f],l=m.type,m=m.iteratee(k);if(l==L)k=m;else if(!m){if(l==K)continue a;break a}}d[i++]=k}return d},Ja.prototype.chain=function(){return $c(this)},Ja.prototype.commit=function(){return new La(this.value(),this.__chain__)},Ja.prototype.concat=$e,Ja.prototype.plant=function(a){for(var b,c=this;c instanceof Ka;){var d=Pc(c);b?e.__wrapped__=d:b=d;var e=d,c=c.__wrapped__}return e.__wrapped__=a,b},Ja.prototype.reverse=function(){function a(a){return a.reverse()}var b=this.__wrapped__;return b instanceof Ma?(this.__actions__.length&&(b=new Ma(this)),b=b.reverse(),b.__actions__.push({func:_c,args:[a],thisArg:u}),new La(b,this.__chain__)):this.thru(a)},Ja.prototype.toString=function(){return this.value()+""},Ja.prototype.run=Ja.prototype.toJSON=Ja.prototype.valueOf=Ja.prototype.value=function(){return Kb(this.__wrapped__,this.__actions__)},Ja.prototype.collect=Ja.prototype.map,Ja.prototype.head=Ja.prototype.first,Ja.prototype.select=Ja.prototype.filter,Ja.prototype.tail=Ja.prototype.rest,Ja}var u,v="3.10.1",w=1,x=2,y=4,z=8,A=16,B=32,C=64,D=128,E=256,F=30,G="...",H=150,I=16,J=200,K=1,L=2,M="Expected a function",N="__lodash_placeholder__",O="[object Arguments]",P="[object Array]",Q="[object Boolean]",R="[object Date]",S="[object Error]",T="[object Function]",U="[object Number]",V="[object Object]",W="[object RegExp]",X="[object String]",Y="[object ArrayBuffer]",Z="[object Float32Array]",$="[object Float64Array]",_="[object Int8Array]",aa="[object Int16Array]",ba="[object Int32Array]",ca="[object Uint8Array]",da="[object Uint8ClampedArray]",ea="[object Uint16Array]",fa="[object Uint32Array]",ga=/\b__p\+='';/g,ha=/\b(__p\+=)''\+/g,ia=/(__e\(.*?\)|\b__t\))\+'';/g,ja=/&(?:amp|lt|gt|quot|#39|#96);/g,ka=/[&<>"'`]/g,la=RegExp(ja.source),ma=RegExp(ka.source),na=/<%-([\s\S]+?)%>/g,oa=/<%([\s\S]+?)%>/g,pa=/<%=([\s\S]+?)%>/g,qa=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\n\\]|\\.)*?\1)\]/,ra=/^\w*$/,sa=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\n\\]|\\.)*?)\2)\]/g,ta=/^[:!,]|[\\^$.*+?()[\]{}|\/]|(^[0-9a-fA-Fnrtuvx])|([\n\r\u2028\u2029])/g,ua=RegExp(ta.source),va=/[\u0300-\u036f\ufe20-\ufe23]/g,wa=/\\(\\)?/g,xa=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,ya=/\w*$/,za=/^0[xX]/,Aa=/^\[object .+?Constructor\]$/,Ba=/^\d+$/,Ca=/[\xc0-\xd6\xd8-\xde\xdf-\xf6\xf8-\xff]/g,Da=/($^)/,Ea=/['\n\r\u2028\u2029\\]/g,Fa=RegExp("[A-Z\\xc0-\\xd6\\xd8-\\xde]+(?=[A-Z\\xc0-\\xd6\\xd8-\\xde][a-z\\xdf-\\xf6\\xf8-\\xff]+)|[A-Z\\xc0-\\xd6\\xd8-\\xde]?[a-z\\xdf-\\xf6\\xf8-\\xff]+|[A-Z\\xc0-\\xd6\\xd8-\\xde]+|[0-9]+","g"),Ga="Array ArrayBuffer Date Error Float32Array Float64Array Function Int8Array Int16Array Int32Array Math Number Object RegExp Set String _ clearTimeout isFinite parseFloat parseInt setTimeout TypeError Uint8Array Uint8ClampedArray Uint16Array Uint32Array WeakMap".split(" "),Ha={};Ha[Z]=Ha[$]=Ha[_]=Ha[aa]=Ha[ba]=Ha[ca]=Ha[da]=Ha[ea]=Ha[fa]=!0,Ha[O]=Ha[P]=Ha[Y]=Ha[Q]=Ha[R]=Ha[S]=Ha[T]=Ha["[object Map]"]=Ha[U]=Ha[V]=Ha[W]=Ha["[object Set]"]=Ha[X]=Ha["[object WeakMap]"]=!1;var Ia={};Ia[O]=Ia[P]=Ia[Y]=Ia[Q]=Ia[R]=Ia[Z]=Ia[$]=Ia[_]=Ia[aa]=Ia[ba]=Ia[U]=Ia[V]=Ia[W]=Ia[X]=Ia[ca]=Ia[da]=Ia[ea]=Ia[fa]=!0,Ia[S]=Ia[T]=Ia["[object Map]"]=Ia["[object Set]"]=Ia["[object WeakMap]"]=!1;var Ja={"À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","Ç":"C","ç":"c","Ð":"D","ð":"d","È":"E","É":"E","Ê":"E","Ë":"E","è":"e","é":"e","ê":"e","ë":"e","Ì":"I","Í":"I","Î":"I","Ï":"I","ì":"i","í":"i","î":"i","ï":"i","Ñ":"N","ñ":"n","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","Ù":"U","Ú":"U","Û":"U","Ü":"U","ù":"u","ú":"u","û":"u","ü":"u","Ý":"Y","ý":"y","ÿ":"y","Æ":"Ae","æ":"ae","Þ":"Th","þ":"th","ß":"ss"},Ka={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`"},La={"&":"&","<":"<",">":">",""":'"',"'":"'","`":"`"},Ma={function:!0,object:!0},Na={0:"x30",1:"x31",2:"x32",3:"x33",4:"x34",5:"x35",6:"x36",7:"x37",8:"x38",9:"x39",A:"x41",B:"x42",C:"x43",D:"x44",E:"x45",F:"x46",a:"x61",b:"x62",c:"x63",d:"x64",e:"x65",f:"x66",n:"x6e",r:"x72",t:"x74",u:"x75",v:"x76",x:"x78"},Oa={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},Pa=Ma[typeof exports]&&exports&&!exports.nodeType&&exports,Qa=Ma[typeof module]&&module&&!module.nodeType&&module,Ra=Ma[typeof self]&&self&&self.Object&&self,Sa=Ma[typeof window]&&window&&window.Object&&window,Ta=Qa&&Qa.exports===Pa&&Pa,Ua=Pa&&Qa&&"object"==typeof global&&global&&global.Object&&global||Sa!==(this&&this.window)&&Sa||Ra||this,Va=t();"function"==typeof define&&"object"==typeof define.amd&&define.amd?(Ua._=Va,define(function(){return Va})):Pa&&Qa?Ta?(Qa.exports=Va)._=Va:Pa._=Va:Ua._=Va}).call(this);var deviceIsAndroid=navigator.userAgent.indexOf("Android")>0,deviceIsIOS=/iP(ad|hone|od)/.test(navigator.userAgent),deviceIsIOS4=deviceIsIOS&&/OS 4_\d(_\d)?/.test(navigator.userAgent),deviceIsIOSWithBadTarget=deviceIsIOS&&/OS ([6-9]|\d{2})_\d/.test(navigator.userAgent);FastClick.prototype.needsClick=function(a){"use strict";switch(a.nodeName.toLowerCase()){case"button":case"select":case"textarea":if(a.disabled)return!0;break;case"input":if(deviceIsIOS&&"file"===a.type||a.disabled)return!0;break;case"label":case"video":return!0}return/\bneedsclick\b/.test(a.className)},FastClick.prototype.needsFocus=function(a){"use strict";switch(a.nodeName.toLowerCase()){case"textarea":return!0;case"select":return!deviceIsAndroid;case"input":switch(a.type){case"button":case"checkbox":case"file":case"image":case"radio":case"submit":return!1}return!a.disabled&&!a.readOnly;default:return/\bneedsfocus\b/.test(a.className)}},FastClick.prototype.sendClick=function(a,b){"use strict";var c,d;document.activeElement&&document.activeElement!==a&&document.activeElement.blur(),d=b.changedTouches[0],c=document.createEvent("MouseEvents"),c.initMouseEvent(this.determineEventType(a),!0,!0,window,1,d.screenX,d.screenY,d.clientX,d.clientY,!1,!1,!1,!1,0,null),c.forwardedTouchEvent=!0,a.dispatchEvent(c)},FastClick.prototype.determineEventType=function(a){"use strict";return deviceIsAndroid&&"select"===a.tagName.toLowerCase()?"mousedown":"click"},FastClick.prototype.focus=function(a){"use strict";var b;deviceIsIOS&&a.setSelectionRange&&0!==a.type.indexOf("date")&&"time"!==a.type?(b=a.value.length,a.setSelectionRange(b,b)):a.focus()},FastClick.prototype.updateScrollParent=function(a){"use strict";var b,c;if(!(b=a.fastClickScrollParent)||!b.contains(a)){c=a;do{if(c.scrollHeight>c.offsetHeight){b=c,a.fastClickScrollParent=c;break}c=c.parentElement}while(c)}b&&(b.fastClickLastScrollTop=b.scrollTop)},FastClick.prototype.getTargetElementFromEventTarget=function(a){"use strict";return a.nodeType===Node.TEXT_NODE?a.parentNode:a},FastClick.prototype.onTouchStart=function(a){"use strict";var b,c,d;if(a.targetTouches.length>1)return!0;if(b=this.getTargetElementFromEventTarget(a.target),c=a.targetTouches[0],deviceIsIOS){if(d=window.getSelection(),d.rangeCount&&!d.isCollapsed)return!0;if(!deviceIsIOS4){if(c.identifier===this.lastTouchIdentifier)return a.preventDefault(),!1;this.lastTouchIdentifier=c.identifier,this.updateScrollParent(b)}}return this.trackingClick=!0,this.trackingClickStart=a.timeStamp,this.targetElement=b,this.touchStartX=c.pageX,this.touchStartY=c.pageY,a.timeStamp-this.lastClickTime<this.tapDelay&&a.preventDefault(),!0},FastClick.prototype.touchHasMoved=function(a){"use strict";var b=a.changedTouches[0],c=this.touchBoundary;return Math.abs(b.pageX-this.touchStartX)>c||Math.abs(b.pageY-this.touchStartY)>c},FastClick.prototype.onTouchMove=function(a){"use strict";return!this.trackingClick||((this.targetElement!==this.getTargetElementFromEventTarget(a.target)||this.touchHasMoved(a))&&(this.trackingClick=!1,this.targetElement=null),!0)},FastClick.prototype.findControl=function(a){"use strict";return void 0!==a.control?a.control:a.htmlFor?document.getElementById(a.htmlFor):a.querySelector("button, input:not([type=hidden]), keygen, meter, output, progress, select, textarea")},FastClick.prototype.onTouchEnd=function(a){"use strict";var b,c,d,e,f,g=this.targetElement;if(!this.trackingClick)return!0;if(a.timeStamp-this.lastClickTime<this.tapDelay)return this.cancelNextClick=!0,!0;if(this.cancelNextClick=!1,this.lastClickTime=a.timeStamp,c=this.trackingClickStart,this.trackingClick=!1,this.trackingClickStart=0,deviceIsIOSWithBadTarget&&(f=a.changedTouches[0],g=document.elementFromPoint(f.pageX-window.pageXOffset,f.pageY-window.pageYOffset)||g,g.fastClickScrollParent=this.targetElement.fastClickScrollParent),"label"===(d=g.tagName.toLowerCase())){if(b=this.findControl(g)){if(this.focus(g),deviceIsAndroid)return!1;g=b}}else if(this.needsFocus(g))return a.timeStamp-c>100||deviceIsIOS&&window.top!==window&&"input"===d?(this.targetElement=null,!1):(this.focus(g),this.sendClick(g,a),deviceIsIOS&&"select"===d||(this.targetElement=null,a.preventDefault()),!1);return!(!deviceIsIOS||deviceIsIOS4||!(e=g.fastClickScrollParent)||e.fastClickLastScrollTop===e.scrollTop)||(this.needsClick(g)||(a.preventDefault(),this.sendClick(g,a)),!1)},FastClick.prototype.onTouchCancel=function(){"use strict";this.trackingClick=!1,this.targetElement=null},FastClick.prototype.onMouse=function(a){"use strict";return!this.targetElement||(!!a.forwardedTouchEvent||(!a.cancelable||(!(!this.needsClick(this.targetElement)||this.cancelNextClick)||(a.stopImmediatePropagation?a.stopImmediatePropagation():a.propagationStopped=!0,a.stopPropagation(),a.preventDefault(),!1))))},FastClick.prototype.onClick=function(a){"use strict";var b;return this.trackingClick?(this.targetElement=null,this.trackingClick=!1,!0):"submit"===a.target.type&&0===a.detail||(b=this.onMouse(a),b||(this.targetElement=null),b)},FastClick.prototype.destroy=function(){"use strict";var a=this.layer;deviceIsAndroid&&(a.removeEventListener("mouseover",this.onMouse,!0),a.removeEventListener("mousedown",this.onMouse,!0),a.removeEventListener("mouseup",this.onMouse,!0)),a.removeEventListener("click",this.onClick,!0),a.removeEventListener("touchstart",this.onTouchStart,!1),a.removeEventListener("touchmove",this.onTouchMove,!1),a.removeEventListener("touchend",this.onTouchEnd,!1),a.removeEventListener("touchcancel",this.onTouchCancel,!1)},FastClick.notNeeded=function(a){"use strict";var b,c;if(void 0===window.ontouchstart)return!0;if(c=+(/Chrome\/([0-9]+)/.exec(navigator.userAgent)||[,0])[1]){if(!deviceIsAndroid)return!0;if(b=document.querySelector("meta[name=viewport]")){if(-1!==b.content.indexOf("user-scalable=no"))return!0;if(c>31&&document.documentElement.scrollWidth<=window.outerWidth)return!0}}return"none"===a.style.msTouchAction},FastClick.attach=function(a,b){"use strict";return new FastClick(a,b)},"undefined"!=typeof define&&define.amd?define(function(){"use strict";return FastClick}):"undefined"!=typeof module&&module.exports?(module.exports=FastClick.attach,module.exports.FastClick=FastClick):window.FastClick=FastClick,function(){("undefined"!=typeof exports&&null!==exports?exports:this).ExifReader=function(){function a(){var a=this;this._getTagValueAt={1:function(b){return a._getByteAt(b)},2:function(b){return a._getAsciiAt(b)},3:function(b){return a._getShortAt(b)},4:function(b){return a._getLongAt(b)},5:function(b){return a._getRationalAt(b)},7:function(b){return a._getUndefinedAt(b)},9:function(b){return a._getSlongAt(b)},10:function(b){return a._getSrationalAt(b)}},this._tiffHeaderOffset=0}return a.prototype._MIN_DATA_BUFFER_LENGTH=2,a.prototype._JPEG_ID_SIZE=2,a.prototype._JPEG_ID=65496,a.prototype._APP_MARKER_SIZE=2,a.prototype._APP0_MARKER=65504,a.prototype._APP1_MARKER=65505,a.prototype._APP15_MARKER=65519,a.prototype._APP_ID_OFFSET=4,a.prototype._BYTES_Exif=1165519206,a.prototype._TIFF_HEADER_OFFSET=10,a.prototype._BYTE_ORDER_BIG_ENDIAN=18761,a.prototype._BYTE_ORDER_LITTLE_ENDIAN=19789,a.prototype.load=function(a){return this.loadView(new DataView(a))},a.prototype.loadView=function(a){return this._dataView=a,this._tags={},this._checkImageHeader(),this._readTags(),this._dataView=null},a.prototype._checkImageHeader=function(){if(this._dataView.byteLength<this._MIN_DATA_BUFFER_LENGTH||this._dataView.getUint16(0,!1)!==this._JPEG_ID)throw new Error("Invalid image format");if(this._parseAppMarkers(this._dataView),!this._hasExifData())throw new Error("No Exif data")},a.prototype._parseAppMarkers=function(a){var b,c,d;for(b=this._JPEG_ID_SIZE,d=[];;){if(a.byteLength<b+this._APP_ID_OFFSET+5)break;if(this._isApp1ExifMarker(a,b))c=a.getUint16(b+this._APP_MARKER_SIZE,!1),this._tiffHeaderOffset=b+this._TIFF_HEADER_OFFSET;else{if(!this._isAppMarker(a,b))break;c=a.getUint16(b+this._APP_MARKER_SIZE,!1)}d.push(b+=this._APP_MARKER_SIZE+c)}return d},a.prototype._isApp1ExifMarker=function(a,b){return a.getUint16(b,!1)===this._APP1_MARKER&&a.getUint32(b+this._APP_ID_OFFSET,!1)===this._BYTES_Exif&&0===a.getUint8(b+this._APP_ID_OFFSET+4,!1)},a.prototype._isAppMarker=function(a,b){var c;return(c=a.getUint16(b,!1))>=this._APP0_MARKER&&c<=this._APP15_MARKER},a.prototype._hasExifData=function(){return 0!==this._tiffHeaderOffset},a.prototype._readTags=function(){return this._setByteOrder(),this._read0thIfd(),this._readExifIfd(),this._readGpsIfd(),this._readInteroperabilityIfd()},a.prototype._setByteOrder=function(){if(this._dataView.getUint16(this._tiffHeaderOffset)===this._BYTE_ORDER_BIG_ENDIAN)return this._littleEndian=!0;if(this._dataView.getUint16(this._tiffHeaderOffset)===this._BYTE_ORDER_LITTLE_ENDIAN)return this._littleEndian=!1;throw new Error("Illegal byte order value. Faulty image.")},a.prototype._read0thIfd=function(){var a;return a=this._getIfdOffset(),this._readIfd("0th",a)},a.prototype._getIfdOffset=function(){return this._tiffHeaderOffset+this._getLongAt(this._tiffHeaderOffset+4)},a.prototype._readExifIfd=function(){var a;if(null!=this._tags["Exif IFD Pointer"])return a=this._tiffHeaderOffset+this._tags["Exif IFD Pointer"].value,this._readIfd("exif",a)},a.prototype._readGpsIfd=function(){var a;if(null!=this._tags["GPS Info IFD Pointer"])return a=this._tiffHeaderOffset+this._tags["GPS Info IFD Pointer"].value,this._readIfd("gps",a)},a.prototype._readInteroperabilityIfd=function(){var a;if(null!=this._tags["Interoperability IFD Pointer"])return a=this._tiffHeaderOffset+this._tags["Interoperability IFD Pointer"].value,this._readIfd("interoperability",a)},a.prototype._readIfd=function(a,b){var c,d,e,f;for(c=this._getShortAt(b),b+=2,f=[],e=0;0<=c?e<c:e>c;0<=c?++e:--e)d=this._readTag(a,b),void 0!==d&&(this._tags[d.name]={value:d.value,description:d.description}),f.push(b+=12);return f},a.prototype._readTag=function(a,b){var c,d,e,f,g,h,i;if(c=this._getShortAt(b),g=this._getShortAt(b+2),d=this._getLongAt(b+4),void 0!==this._typeSizes[g])return this._typeSizes[g]*d<=4?h=this._getTagValue(b+8,g,d):(i=this._getLongAt(b+8),h=this._getTagValue(this._tiffHeaderOffset+i,g,d)),g===this._tagTypes.ASCII&&(h=this._splitNullSeparatedAsciiString(h)),null!=this._tagNames[a][c]?(null!=this._tagNames[a][c].name&&null!=this._tagNames[a][c].description?(f=this._tagNames[a][c].name,e=this._tagNames[a][c].description(h)):(f=this._tagNames[a][c],e=h instanceof Array?h.join(", "):h),{name:f,value:h,description:e}):{name:"undefined-"+c,value:h,description:h}},a.prototype._getTagValue=function(a,b,c){var d,e,f;return e=function(){var e,g;for(g=[],f=e=0;0<=c?e<c:e>c;f=0<=c?++e:--e)d=this._getTagValueAt[b](a),a+=this._typeSizes[b],g.push(d);return g}.call(this),1===e.length?e=e[0]:b===this._tagTypes.ASCII&&(e=this._getAsciiValue(e)),e},a.prototype._getAsciiValue=function(a){var b;return function(){var c,d,e;for(e=[],c=0,d=a.length;c<d;c++)b=a[c],e.push(String.fromCharCode(b));return e}()},a.prototype._getByteAt=function(a){return this._dataView.getUint8(a)},a.prototype._getAsciiAt=function(a){return this._dataView.getUint8(a)},a.prototype._getShortAt=function(a){return this._dataView.getUint16(a,this._littleEndian)},a.prototype._getLongAt=function(a){return this._dataView.getUint32(a,this._littleEndian)},a.prototype._getRationalAt=function(a){return this._getLongAt(a)/this._getLongAt(a+4)},a.prototype._getUndefinedAt=function(a){return this._getByteAt(a)},a.prototype._getSlongAt=function(a){ +return this._dataView.getInt32(a,this._littleEndian)},a.prototype._getSrationalAt=function(a){return this._getSlongAt(a)/this._getSlongAt(a+4)},a.prototype._splitNullSeparatedAsciiString=function(a){var b,c,d,e,f;for(d=[],c=0,e=0,f=a.length;e<f;e++)b=a[e],"\0"!==b?(null==d[c]&&(d[c]=""),d[c]+=b):c++;return d},a.prototype._typeSizes={1:1,2:1,3:2,4:4,5:8,7:1,9:4,10:8},a.prototype._tagTypes={BYTE:1,ASCII:2,SHORT:3,LONG:4,RATIONAL:5,UNDEFINED:7,SLONG:9,SRATIONAL:10},a.prototype._tagNames={"0th":{256:"ImageWidth",257:"ImageLength",258:"BitsPerSample",259:"Compression",262:"PhotometricInterpretation",270:"ImageDescription",271:"Make",272:"Model",273:"StripOffsets",274:{name:"Orientation",description:function(a){switch(a){case 1:return"top-left";case 2:return"top-right";case 3:return"bottom-right";case 4:return"bottom-left";case 5:return"left-top";case 6:return"right-top";case 7:return"right-bottom";case 8:return"left-bottom";default:return"Undefined"}}},277:"SamplesPerPixel",278:"RowsPerStrip",279:"StripByteCounts",282:"XResolution",283:"YResolution",284:"PlanarConfiguration",296:{name:"ResolutionUnit",description:function(a){switch(a){case 2:return"inches";case 3:return"centimeters";default:return"Unknown"}}},301:"TransferFunction",305:"Software",306:"DateTime",315:"Artist",318:"WhitePoint",319:"PrimaryChromaticities",513:"JPEGInterchangeFormat",514:"JPEGInterchangeFormatLength",529:"YCbCrCoefficients",530:"YCbCrSubSampling",531:{name:"YCbCrPositioning",description:function(a){switch(a){case 1:return"centered";case 2:return"co-sited";default:return"undefied "+a}}},532:"ReferenceBlackWhite",33432:{name:"Copyright",description:function(a){return a.join("; ")}},34665:"Exif IFD Pointer",34853:"GPS Info IFD Pointer"},exif:{33434:"ExposureTime",33437:"FNumber",34850:{name:"ExposureProgram",description:function(a){switch(a){case 0:return"Undefined";case 1:return"Manual";case 2:return"Normal program";case 3:return"Aperture priority";case 4:return"Shutter priority";case 5:return"Creative program";case 6:return"Action program";case 7:return"Portrait mode";case 8:return"Landscape mode";default:return"Unknown"}}},34852:"SpectralSensitivity",34855:"ISOSpeedRatings",34856:{name:"OECF",description:function(a){return"[Raw OECF table data]"}},36864:{name:"ExifVersion",description:function(a){var b,c,d,e;for(c="",d=0,e=a.length;d<e;d++)b=a[d],c+=String.fromCharCode(b);return c}},36867:"DateTimeOriginal",36868:"DateTimeDigitized",37121:{name:"ComponentsConfiguration",description:function(a){var b,c,d;for(b="",c=0,d=a.length;c<d;c++)switch(a[c]){case 49:b+="Y";break;case 50:b+="Cb";break;case 51:b+="Cr";break;case 52:b+="R";break;case 53:b+="G";break;case 54:b+="B"}return b}},37122:"CompressedBitsPerPixel",37377:"ShutterSpeedValue",37378:"ApertureValue",37379:"BrightnessValue",37380:"ExposureBiasValue",37381:"MaxApertureValue",37382:"SubjectDistance",37383:{name:"MeteringMode",description:function(a){switch(a){case 1:return"Average";case 2:return"CenterWeightedAverage";case 3:return"Spot";case 4:return"MultiSpot";case 5:return"Pattern";case 6:return"Partial";case 255:return"Other";default:return"Unknown"}}},37384:{name:"LightSource",description:function(a){switch(a){case 1:return"Daylight";case 2:return"Fluorescent";case 3:return"Tungsten (incandescent light)";case 4:return"Flash";case 9:return"Fine weather";case 10:return"Cloudy weather";case 11:return"Shade";case 12:return"Daylight fluorescent (D 5700 – 7100K)";case 13:return"Day white fluorescent (N 4600 – 5400K)";case 14:return"Cool white fluorescent (W 3900 – 4500K)";case 15:return"White fluorescent (WW 3200 – 3700K)";case 17:return"Standard light A";case 18:return"Standard light B";case 19:return"Standard light C";case 20:return"D55";case 21:return"D65";case 22:return"D75";case 23:return"D50";case 24:return"ISO studio tungsten";case 255:return"Other light source";default:return"Unknown"}}},37385:{name:"Flash",description:function(a){switch(a){case 0:return"Flash did not fire";case 1:return"Flash fired";case 5:return"Strobe return light not detected";case 7:return"Strobe return light detected";case 9:return"Flash fired, compulsory flash mode";case 13:return"Flash fired, compulsory flash mode, return light not detected";case 15:return"Flash fired, compulsory flash mode, return light detected";case 16:return"Flash did not fire, compulsory flash mode";case 24:return"Flash did not fire, auto mode";case 25:return"Flash fired, auto mode";case 29:return"Flash fired, auto mode, return light not detected";case 31:return"Flash fired, auto mode, return light detected";case 32:return"No flash function";case 65:return"Flash fired, red-eye reduction mode";case 69:return"Flash fired, red-eye reduction mode, return light not detected";case 71:return"Flash fired, red-eye reduction mode, return light detected";case 73:return"Flash fired, compulsory flash mode, red-eye reduction mode";case 77:return"Flash fired, compulsory flash mode, red-eye reduction mode, return light not detected";case 79:return"Flash fired, compulsory flash mode, red-eye reduction mode, return light detected";case 89:return"Flash fired, auto mode, red-eye reduction mode";case 93:return"Flash fired, auto mode, return light not detected, red-eye reduction mode";case 95:return"Flash fired, auto mode, return light detected, red-eye reduction mode";default:return"Unknown"}}},37386:"FocalLength",37396:{name:"SubjectArea",description:function(a){switch(a.length){case 2:return"Location; X: "+a[0]+", Y: "+a[1];case 3:return"Circle; X: "+a[0]+", Y: "+a[1]+", diameter: "+a[2];case 4:return"Rectangle; X: "+a[0]+", Y: "+a[1]+", width: "+a[2]+", height: "+a[3];default:return"Unknown"}}},37500:{name:"MakerNote",description:function(a){return"[Raw maker note data]"}},37510:{name:"UserComment",description:function(a){switch(a.slice(0,8).map(function(a){return String.fromCharCode(a)}).join("")){case"ASCII\0\0\0":return a.slice(8,a.length).map(function(a){return String.fromCharCode(a)}).join("");case"JIS\0\0\0\0\0":return"[JIS encoded text]";case"UNICODE\0":return"[Unicode encoded text]";case"\0\0\0\0\0\0\0\0":return"[Undefined encoding]"}}},37520:"SubSecTime",37521:"SubSecTimeOriginal",37522:"SubSecTimeDigitized",40960:{name:"FlashpixVersion",description:function(a){var b,c,d,e;for(c="",d=0,e=a.length;d<e;d++)b=a[d],c+=String.fromCharCode(b);return c}},40961:{name:"ColorSpace",description:function(a){switch(a){case 1:return"sRGB";case 65535:return"Uncalibrated";default:return"Unknown"}}},40962:"PixelXDimension",40963:"PixelYDimension",40964:"RelatedSoundFile",40965:"Interoperability IFD Pointer",41483:"FlashEnergy",41484:{name:"SpatialFrequencyResponse",description:function(a){return"[Raw SFR table data]"}},41486:"FocalPlaneXResolution",41487:"FocalPlaneYResolution",41488:{name:"FocalPlaneResolutionUnit",description:function(a){switch(a){case 2:return"inches";case 3:return"centimeters";default:return"Unknown"}}},41492:{name:"SubjectLocation",description:function(a){return"X: "+a[0]+", Y: "+a[1]}},41493:"ExposureIndex",41495:{name:"SensingMethod",description:function(a){switch(a){case 1:return"Undefined";case 2:return"One-chip color area sensor";case 3:return"Two-chip color area sensor";case 4:return"Three-chip color area sensor";case 5:return"Color sequential area sensor";case 7:return"Trilinear sensor";case 8:return"Color sequential linear sensor";default:return"Unknown"}}},41728:{name:"FileSource",description:function(a){switch(a){case 3:return"DSC";default:return"Unknown"}}},41729:{name:"SceneType",description:function(a){switch(a){case 1:return"A directly photographed image";default:return"Unknown"}}},41730:{name:"CFAPattern",description:function(a){return"[Raw CFA pattern table data]"}},41985:{name:"CustomRendered",description:function(a){switch(a){case 0:return"Normal process";case 1:return"Custom process";default:return"Unknown"}}},41986:{name:"ExposureMode",description:function(a){switch(a){case 0:return"Auto exposure";case 1:return"Manual exposure";case 2:return"Auto bracket";default:return"Unknown"}}},41987:{name:"WhiteBalance",description:function(a){switch(a){case 0:return"Auto white balance";case 1:return"Manual white balance";default:return"Unknown"}}},41988:{name:"DigitalZoomRatio",description:function(a){switch(a){case 0:return"Digital zoom was not used";default:return a}}},41989:{name:"FocalLengthIn35mmFilm",description:function(a){switch(a){case 0:return"Unknown";default:return a}}},41990:{name:"SceneCaptureType",description:function(a){switch(a){case 0:return"Standard";case 1:return"Landscape";case 2:return"Portrait";case 3:return"Night scene";default:return"Unknown"}}},41991:{name:"GainControl",description:function(a){switch(a){case 0:return"None";case 1:return"Low gain up";case 2:return"High gain up";case 3:return"Low gain down";case 4:return"High gain down";default:return"Unknown"}}},41992:{name:"Contrast",description:function(a){switch(a){case 0:return"Normal";case 1:return"Soft";case 2:return"Hard";default:return"Unknown"}}},41993:{name:"Saturation",description:function(a){switch(a){case 0:return"Normal";case 1:return"Low saturation";case 2:return"High saturation";default:return"Unknown"}}},41994:{name:"Sharpness",description:function(a){switch(a){case 0:return"Normal";case 1:return"Soft";case 2:return"Hard";default:return"Unknown"}}},41995:{name:"DeviceSettingDescription",description:function(a){return"[Raw device settings table data]"}},41996:{name:"SubjectDistanceRange",description:function(a){switch(a){case 1:return"Macro";case 2:return"Close view";case 3:return"Distant view";default:return"Unknown"}}},42016:"ImageUniqueID"},gps:{0:{name:"GPSVersionID",description:function(a){var b,c;return a[0]===(b=a[1])&&2===b&&a[2]===(c=a[3])&&0===c?"Version 2.2":"Unknown"}},1:{name:"GPSLatitudeRef",description:function(a){switch(a.join("")){case"N":return"North latitude";case"S":return"South latitude";default:return"Unknown"}}},2:{name:"GPSLatitude",description:function(a){return a[0]+a[1]/60+a[2]/3600}},3:{name:"GPSLongitudeRef",description:function(a){switch(a.join("")){case"E":return"East longitude";case"W":return"West longitude";default:return"Unknown"}}},4:{name:"GPSLongitude",description:function(a){return a[0]+a[1]/60+a[2]/3600}},5:{name:"GPSAltitudeRef",description:function(a){switch(a){case 0:return"Sea level";case 1:return"Sea level reference (negative value)";default:return"Unknown"}}},6:{name:"GPSAltitude",description:function(a){return a+" m"}},7:{name:"GPSTimeStamp",description:function(a){var b;return b=function(a){var b;return function(){var c,d,e;for(e=[],b=c=0,d=2-(""+Math.floor(a)).length;0<=d?c<d:c>d;b=0<=d?++c:--c)e.push("0");return e}()+a},a.map(b).join(":")}},8:"GPSSatellites",9:{name:"GPSStatus",description:function(a){switch(a.join("")){case"A":return"Measurement in progress";case"V":return"Measurement Interoperability";default:return"Unknown"}}},10:{name:"GPSMeasureMode",description:function(a){switch(a.join("")){case"2":return"2-dimensional measurement";case"3":return"3-dimensional measurement";default:return"Unknown"}}},11:"GPSDOP",12:{name:"GPSSpeedRef",description:function(a){switch(a.join("")){case"K":return"Kilometers per hour";case"M":return"Miles per hour";case"N":return"Knots";default:return"Unknown"}}},13:"GPSSpeed",14:{name:"GPSTrackRef",description:function(a){switch(a.join("")){case"T":return"True direction";case"M":return"Magnetic direction";default:return"Unknown"}}},15:"GPSTrack",16:{name:"GPSImgDirectionRef",description:function(a){switch(a.join("")){case"T":return"True direction";case"M":return"Magnetic direction";default:return"Unknown"}}},17:"GPSImgDirection",18:"GPSMapDatum",19:{name:"GPSDestLatitudeRef",description:function(a){switch(a.join("")){case"N":return"North latitude";case"S":return"South latitude";default:return"Unknown"}}},20:{name:"GPSDestLatitude",description:function(a){return a[0]+a[1]/60+a[2]/3600}},21:{name:"GPSDestLongitudeRef",description:function(a){switch(a.join("")){case"E":return"East longitude";case"W":return"West longitude";default:return"Unknown"}}},22:{name:"GPSDestLongitude",description:function(a){return a[0]+a[1]/60+a[2]/3600}},23:{name:"GPSDestBearingRef",description:function(a){switch(a.join("")){case"T":return"True direction";case"M":return"Magnetic direction";default:return"Unknown"}}},24:"GPSDestBearing",25:{name:"GPSDestDistanceRef",description:function(a){switch(a.join("")){case"K":return"Kilometers";case"M":return"Miles";case"N":return"Knots";default:return"Unknown"}}},26:"GPSDestDistance",27:{name:"GPSProcessingMethod",description:function(a){if(0===a)return"Undefined";switch(a.slice(0,8).map(function(a){return String.fromCharCode(a)}).join("")){case"ASCII\0\0\0":return a.slice(8,a.length).map(function(a){return String.fromCharCode(a)}).join("");case"JIS\0\0\0\0\0":return"[JIS encoded text]";case"UNICODE\0":return"[Unicode encoded text]";case"\0\0\0\0\0\0\0\0":return"[Undefined encoding]"}}},28:{name:"GPSAreaInformation",description:function(a){if(0===a)return"Undefined";switch(a.slice(0,8).map(function(a){return String.fromCharCode(a)}).join("")){case"ASCII\0\0\0":return a.slice(8,a.length).map(function(a){return String.fromCharCode(a)}).join("");case"JIS\0\0\0\0\0":return"[JIS encoded text]";case"UNICODE\0":return"[Unicode encoded text]";case"\0\0\0\0\0\0\0\0":return"[Undefined encoding]"}}},29:"GPSDateStamp",30:{name:"GPSDifferential",description:function(a){switch(a){case 0:return"Measurement without differential correction";case 1:return"Differential correction applied";default:return"Unknown"}}}},interoperability:{1:"InteroperabilityIndex",2:"UnknownInteroperabilityTag0x0002",4097:"UnknownInteroperabilityTag0x1001",4098:"UnknownInteroperabilityTag0x1002"}},a.prototype.getTagValue=function(a){return null!=this._tags[a]?this._tags[a].value:void 0},a.prototype.getTagDescription=function(a){return null!=this._tags[a]?this._tags[a].description:void 0},a.prototype.getAllTags=function(){return this._tags},a.prototype.deleteTag=function(a){return delete this._tags[a]},a}()}.call(this);var orientationToTransform={1:{rotation:0,mirror:!1},2:{rotation:0,mirror:!0},3:{rotation:180,mirror:!1},4:{rotation:180,mirror:!0},5:{rotation:90,mirror:!0},6:{rotation:90,mirror:!1},7:{rotation:270,mirror:!0},8:{rotation:270,mirror:!1}},dataUriToUint8Array=function(a){for(var b=a.split(",")[1],c=atob(b),d=new ArrayBuffer(c.length),e=new Uint8Array(d),f=0;f<c.length;f++)e[f]=c.charCodeAt(f);return e};window.dataUriToBlob=function(){function a(a){return a.split(";")[0].slice(5)}var b=window.Blob,c=100==new b([new Uint8Array(100)]).size;return function(d){for(var e=d.split(",")[1],f=atob(e),g=new ArrayBuffer(f.length),h=new Uint8Array(g),i=0;i<f.length;i++)h[i]=f.charCodeAt(i);c||(h=g);var j=new b([h],{type:a(d)});return j.slice=j.slice||j.webkitSlice,j}}(),Function.prototype.bind||(Function.prototype.bind=function(a){if("function"!=typeof this)throw new TypeError("Function.prototype.bind - what is trying to be bound is not callable");var b=Array.prototype.slice.call(arguments,1),c=this,d=function(){},e=function(){return c.apply(this instanceof d&&a?this:a,b.concat(Array.prototype.slice.call(arguments)))};return d.prototype=this.prototype,e.prototype=new d,e}),function(){for(var a=0,b=["ms","moz","webkit","o"],c=0;c<b.length&&!window.requestAnimationFrame;++c)window.requestAnimationFrame=window[b[c]+"RequestAnimationFrame"],window.cancelAnimationFrame=window[b[c]+"CancelAnimationFrame"]||window[b[c]+"CancelRequestAnimationFrame"];window.requestAnimationFrame||(window.requestAnimationFrame=function(b,c){var d=(new Date).getTime(),e=Math.max(0,16-(d-a)),f=window.setTimeout(function(){b(d+e)},e);return a=d+e,f}),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(a){clearTimeout(a)})}(),function(a){a=a.toLowerCase();var b=/(chrome)[ \/]([\w.]+)/.exec(a)||/(webkit)[ \/]([\w.]+)/.exec(a)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(a)||/(msie) ([\w.]+)/.exec(a)||a.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(a)||[],c={browser:b[1]||"",version:b[2]||"0"};browser={},c.browser&&(browser[c.browser]=!0,browser.version=c.version),browser.chrome?browser.webkit=!0:browser.webkit&&(browser.safari=!0),window.$&&($.browser=browser),browser}(navigator.userAgent);var is_iphone=navigator.userAgent.match(/iPhone/i)||navigator.userAgent.match(/iPod/i),is_ipad=navigator.userAgent.match(/iPad/i),is_android=navigator.userAgent.match(/Android/i),is_mobile=is_iphone||is_ipad||is_android,is_desktop=!is_mobile,app_devicePixelRatio=is_mobile?devicePixelRatio:1,View=function(a,b){var c=function(a){this._id=b.uniqueId("view"),this.type="view",a||(a={}),b.extend(this,b.pick(a,e)),this._ensureElement(),this.initialize.apply(this,arguments),this.delegateEvents()},d=/^(\S+)\s*(.*)$/,e=["model","collection","el","id","attributes","className","tagName","events"];b.extend(c.prototype,{tagName:"div",$:function(a){return this.$el.find(a)},initialize:function(){},setElement:function(b,c){return this.$el&&this.undelegateEvents(),this.$el=b instanceof a?b:a(b),this.el=this.$el[0],!1!==c&&this.delegateEvents(),this},delegateEvents:function(a){if(!a&&!(a=b.result(this,"events")))return this;this.undelegateEvents();for(var c in a){var e=a[c];if(b.isFunction(e)||(e=this[a[c]]),e){var f=c.match(d),g=f[1],h=f[2];e=b.bind(e,this),g+=".delegateEvents"+this._id,(!is_mobile||"mouseenter"!==h&&"mouseleave"!==h)&&(""===h?this.$el.on(g,e):this.$el.on(g,h,e))}}return this},undelegateEvents:function(){return this.$el.off(".delegateEvents"+this._id),this},_ensureElement:function(){this.setElement(b.result(this,"el"),!1)},preventDefault:function(a){a&&a.preventDefault()},stopPropagation:function(a){a&&a.stopPropagation()}});var f=function(a,c){var d,c=c||{},e=this,f={};d=a&&b.has(a,"constructor")?a.constructor:function(){return e.apply(this,arguments)},b.extend(f,e.prototype.events,a.events),b.extend(d,e,c);var g=function(){this.constructor=d};return g.prototype=e.prototype,d.prototype=new g,a&&b.extend(d.prototype,a),d.prototype.__super__=e.prototype,d.prototype.events=f,d};return c.extend=f,c}(jQuery,_),UploadView=View.extend({events:{"change [type=file]":"handleFileSelect","submit form":"preventDefault"},initialize:function(){this.$file=this.$("[type=file]"),this.$upload=this.$(".upload-icon")},beforeUpload:function(){},handleFileSelect:function(a){a.stopPropagation(),a.preventDefault(),this.beforeUpload();for(var b,c=a.dataTransfer?a.dataTransfer.files:a.target.files,d=0;b=c[d];d++)b.type.match("image.*")&&(is_mobile&&b.type.match(/jpg|jpeg/)?this.fixOrientationAndUpload(b):this.upload(b))},fixOrientationAndUpload:function(a){var b=new FileReader,c=new Image;b.addEventListener("load",function(){c.src=b.result},!1),c.onload=function(){var a=renderToCanvas(c,{correctOrientation:!0,scale:1}),b=a.toDataURL("image/jpeg",.8),d=dataUriToBlob(b);this.upload(d)}.bind(this),b.readAsDataURL(a)},upload:function(a){$("body").addClass("uploading");var b=new FormData;b.append("image",a),this.mediaTag&&b.append("tag",this.mediaTag),$.ajax({url:this.uploadAction,type:"post",data:b,dataType:"json",processData:!1,contentType:!1}).done(this.success.bind(this))},success:function(a){if(a.error)return this.$upload.removeClass("uploading"),void this.error(a.error);this.$upload.removeClass("uploading"),$("body").removeClass("uploading"),this.add(a)},add:function(a){console.log(a)},error:function(a){}}),DragView=UploadView.extend({el:"body",uploadAction:"/p/upload",selfDrag:!1,events:{dragover:"dragover",dragstart:"dragstart",drop:"handleDrop","change .file":"handleFileSelect"},drop:function(){$("#droparea").hide(),$("#loading").show()},dragover:function(a){a.stopPropagation(),a.preventDefault(),this.selfDrag?$("#droparea").hide():$("#droparea").show()},dragstart:function(a){this.selfDrag=!0},handleDrop:function(a){a.stopPropagation(),a.preventDefault(),a=a.originalEvent,a.dataTransfer&&!this.selfDrag?a.dataTransfer.files.length&&this.handleFileSelect(a):this.handleFileSelect(a),this.selfDrag=!1,this.drop()},add:function(a){$("#loading").hide(),app.view.display(a),history.pushState(a,document.title,"/p/"+a.id)}}),NavView=View.extend({el:"body",events:{"click .prev":"prev","click .next":"next","click .link":"link","click .refresh":"refresh","click .random":"random"},initialize:function(){if(this.id=-1,this.$pip=this.$("#pip"),this.$pip_img=this.$("#pip img"),this.$image=this.$("#luckyimage"),$(window).on("keydown",this.keydown.bind(this)),$(document).ajaxError(function(){this.fetching=!1}.bind(this)),window.onpopstate=function(a){this.display(a.state)}.bind(this),-1!==window.location.pathname.indexOf("/p/")){var a=window.location.pathname.split("/")[2];this.fetch(a)}else this.latest();$(".prev").on("touchstart",function(){console.log("<<<<<PREV")}),$(".prev").on("click",function(){console.log("<<<<<CLICKPREV")})},keydown:function(a){if(!(a.shiftKey||a.metaKey||a.ctrlKey||a.altKey))switch(a.keyCode){case 37:this.prev();break;case 39:this.next();break;case 38:this.random();break;case 40:this.latest()}},latest:function(){this.fetching||(this.fetch("latest"),this.onLatest=!0)},prev:function(){this.fetching||this.id-1<1||this.fetch(this.id-1)},next:function(){this.fetching||this.onLatest||this.id<1||this.fetch(this.id+1)},random:function(){this.fetching||this.fetch("random")},fetch:function(a){this.fetching=!0,this.onLatest=!1,$.get("/p/get/"+a,function(a){this.fetching=!1,this.display(a),history.pushState(a,document.title,"/p/"+a.id)}.bind(this))},display:function(a){if(!a||!a.id)return void(this.onLatest=!0);this.data=a,this.id=a.id,is_desktop&&(this.$pip.attr("href",a.url),this.$pip_img.attr("src",""),setTimeout(function(){this.$pip_img.attr("src",a.url)}.bind(this))),this.$image.css("background-image","url("+a.url+")")},link:function(){window.open(this.data.url,"_blank")}}),app=function(){var a={};return a.init=function(){is_mobile&&FastClick.attach(document.body),a.view=new NavView,a.upload=new DragView,$(window).on("focus",a.focus),$(window).on("blur",a.blur)},a.focused=!0,a.typing=!1,a.focus=function(){a.focused=!0},a.blur=function(){a.focused=!1},document.addEventListener("DOMContentLoaded",a.init),a}();
\ No newline at end of file diff --git a/public/assets/js/drag.js b/public/assets/js/drag.js index 9673cd3..8ef86c2 100644 --- a/public/assets/js/drag.js +++ b/public/assets/js/drag.js @@ -1,9 +1,9 @@ var DragView = UploadView.extend({ el: "body", - - uploadAction: "/upload", - + + uploadAction: "/p/upload", + selfDrag: false, events: { @@ -17,7 +17,7 @@ var DragView = UploadView.extend({ $("#droparea").hide() $("#loading").show() }, - + dragover: function(e){ e.stopPropagation() e.preventDefault() @@ -28,7 +28,7 @@ var DragView = UploadView.extend({ $("#droparea").show() } }, - + // set if we're dragging an image from the page, versus from another window dragstart: function(e){ this.selfDrag = true @@ -38,9 +38,9 @@ var DragView = UploadView.extend({ var base = this e.stopPropagation() e.preventDefault() - + e = e.originalEvent - + if (e.dataTransfer && ! this.selfDrag) { if (e.dataTransfer.files.length) { this.handleFileSelect(e) diff --git a/public/assets/js/nav.js b/public/assets/js/nav.js index ca231fe..bfddc2c 100644 --- a/public/assets/js/nav.js +++ b/public/assets/js/nav.js @@ -11,18 +11,18 @@ var NavView = View.extend({ "click .refresh": "refresh", "click .random": "random", }, - + initialize: function(){ this.id = -1 this.$pip = this.$("#pip") this.$pip_img = this.$("#pip img") this.$image = this.$("#luckyimage") - + $(window).on("keydown", this.keydown.bind(this)) $(document).ajaxError(function(){ this.fetching = false }.bind(this)) - + window.onpopstate = function(event) { this.display(event.state) }.bind(this) @@ -34,7 +34,7 @@ var NavView = View.extend({ else { this.latest() } - + $(".prev").on("touchstart", function(){ console.log("<<<<<PREV") }) @@ -42,7 +42,7 @@ var NavView = View.extend({ console.log("<<<<<CLICKPREV") }) }, - + keydown: function(e){ if (e.shiftKey || e.metaKey || e.ctrlKey || e.altKey) { return } switch (e.keyCode) { @@ -60,34 +60,34 @@ var NavView = View.extend({ break } }, - + latest: function(){ if (this.fetching) return this.fetch("latest") this.onLatest = true }, - + prev: function(){ if (this.fetching) return if (this.id - 1 < 1) { return } this.fetch(this.id-1) }, - + next: function(){ if (this.fetching) return if (this.onLatest || this.id < 1) { return } this.fetch(this.id+1) }, - + random: function(){ if (this.fetching) return this.fetch("random") }, - + fetch: function(id){ this.fetching = true this.onLatest = false - $.get("/get/" + id, function(data){ + $.get("/p/get/" + id, function(data){ this.fetching = false this.display(data) history.pushState(data, document.title, "/p/" + data.id) @@ -108,7 +108,7 @@ var NavView = View.extend({ } this.$image.css("background-image", "url(" + data.url + ")") }, - + link: function(){ window.open(this.data.url, "_blank") }, diff --git a/public/index.html b/public/index.html index 6d63ead..1e464ae 100644 --- a/public/index.html +++ b/public/index.html @@ -1,65 +1,22 @@ <!DOCTYPE html> <html> <head> -<title>LuCkYPLoP™</title> +<title>plop</title> <meta name="viewport" content="width=device-width, initial-scale=1.0"> -<meta property="og:title" content="LuCkYPLoP™"> -<meta property="og:type" content="website"> -<meta property="og:image" content=""> -<meta property="og:url" content=""> -<meta property="og:site_name" content="LuckyPlop - The Best Image Uploader Thing"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<meta name="description" content="LuckyPlop - Check this out.."> -<link rel="stylesheet" href="/assets/css/css.css"> +<link rel="stylesheet" href="/p/assets/css/css.css"> </head> <body> <div id="luckyimage"></div> -<div id="topnav"> - <span class="luckyback"> - <a id="prev">[<< previous 画像]</a> - <a id="next">[前のnewer >>]</a> - <a id="refresh">Rfsh</a> - <a id="random">RNDM</a> - </span> -</div> - -<a id="pip"><img></a> - -<div id="morelucky" class="popup_block"> - <div id="luckyinfo"> - <img src="http://okfocus.s3.amazonaws.com/luckyplop/lucky1.png" class="luckylogo"> - <ul> - <li>LuCkYPLoP™ is the world's best PIC UPLOADINGッTOOL!プド!</li> - <li>LuCkYPLoP™ lets you DRAG an image from your computer to anywhere in the page - to uploadド!. The picture is displayed until a NEW image is uploaded from anywhere in the - in the WORLD!!</li> - <li>LuCkYPLoP™ letsことができます you DISCOVER image過s from oth去er userの画s, you can像を view past imagesる!</li> - <li>On LuCkYPLoP™ you have a 1 in 100 chance ラッキー . to win amazing prizes!</li> - <li>Just upload things and LuCkYPLoP™ will do the lottery宝くじ! AND MAKE YOU WINメーカーに勝つ!!</li> - </ul> - <hr> - </div> -</div> - -<div id="bottombar"> - <marquee scrollamount="10" width="100%"> - Step 1.drag an image from your computer into luckyplop! - - Step 2.see if you won! - - 3.Share the image on friendster, grindr, twitter, myspace or facebook! - </marquee> -</div> - -<img src="http://okfocus.s3.amazonaws.com/luckyplop/luckypad.png" id="luckypad"> - <div id="droparea"></div> <div id="mobile_nav"> - <div class="prev">< BaCK</div> - <div class="upload"><input type="file" id="file">PoST</div> - <div class="link">LiNK</div> - <div class="next">FwD ></div> + <div class="prev">< BACK</div> + <div class="upload"><input type="file" id="file">POST</div> + <div class="link">LINK</div> + <div class="next">FWD ></div> </div> <div class="spinner"></div> @@ -67,6 +24,6 @@ </body> <script src='https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js'></script> -<script src='/assets/js/app.min.js'></script> +<script src='/p/assets/js/app.min.js'></script> </html> |
