docurium 0.6.0 → 0.7.0

Sign up to get free protection for your applications and to get access to all the features.
data/site/js/docurium.js CHANGED
@@ -12,52 +12,52 @@ $(function() {
12
12
 
13
13
  // Function groups
14
14
  var funs = _.map(data['groups'], function(group, i) {
15
- var name = group[0]
16
- var link = groupLink(name, version)
17
- return {name: name, link: link, num: group[1].length}
15
+ var name = group[0]
16
+ var link = groupLink(name, version)
17
+ return {name: name, link: link, num: group[1].length}
18
18
  })
19
19
 
20
20
  // Callbacks
21
21
  var callbacks = _.map(_.keys(data['callbacks']), function(name) {
22
- var link = functionLink('callback', name, version)
23
- return {name: name, link: link}
22
+ var link = functionLink('callback', name, version)
23
+ return {name: name, link: link}
24
24
  })
25
25
 
26
26
  // Types
27
27
  var getName = function(type) {
28
- var name = type[0];
29
- var link = typeLink(name, version);
30
- return {link: link, name: name};
28
+ var name = type[0];
29
+ var link = typeLink(name, version);
30
+ return {link: link, name: name};
31
31
  }
32
32
 
33
33
  var enums = _.filter(data['types'], function(type) {
34
- return type[1]['block'] && type[1]['type'] == 'enum';
34
+ return type[1]['block'] && type[1]['type'] == 'enum';
35
35
  }).map(getName)
36
36
 
37
37
  var structs = _.filter(data['types'], function(type) {
38
- return type[1]['block'] && type[1]['type'] != 'enum'
38
+ return type[1]['block'] && type[1]['type'] != 'enum'
39
39
  }).map(getName)
40
40
 
41
41
  var opaques = _.filter(data['types'], function(type) {
42
- return !type[1]['block']
42
+ return !type[1]['block']
43
43
  }).map(getName)
44
44
 
45
45
  // File Listing
46
46
  var files = _.map(data['files'], function(file) {
47
- var url = this.github_file(file['file'])
48
- return {url: url, name: file['file']}
47
+ var url = this.github_file(file['file'])
48
+ return {url: url, name: file['file']}
49
49
  }, docurium)
50
50
 
51
51
  // Examples List
52
52
  var examples = []
53
53
  if(data['examples'] && (data['examples'].length > 0)) {
54
- examples = _.map(data['examples'], function(file) {
55
- return {name: file[0], path: file[1]}
56
- })
54
+ examples = _.map(data['examples'], function(file) {
55
+ return {name: file[0], path: file[1]}
56
+ })
57
57
  }
58
58
 
59
59
  this.set('data', {funs: funs, callbacks: callbacks, enums: enums, structs: structs,
60
- opaques: opaques, files: files, examples: examples})
60
+ opaques: opaques, files: files, examples: examples})
61
61
  },
62
62
  })
63
63
 
@@ -187,34 +187,34 @@ $(function() {
187
187
 
188
188
  // figure out the adds, deletes and changes
189
189
  _.forEach(sigHist, function(func, fname) {
190
- var lastv = _.last(func.exists)
191
- var firstv = _.first(func.exists)
192
- changelog[firstv]['adds'].push(fname)
193
-
194
- // figure out where it was deleted or changed
195
- if (lastv && (lastv != lastVer)) {
196
- var vi = _.indexOf(versions,lastv)
197
- var delv = versions[vi-1]
198
- changelog[delv]['deletes'].push(fname)
199
-
200
- _.forEach(func.changes, function(_, v) {
201
- changelog[v]['changes'].push(fname)
202
- })
203
- }
190
+ var lastv = _.last(func.exists)
191
+ var firstv = _.first(func.exists)
192
+ changelog[firstv]['adds'].push(fname)
193
+
194
+ // figure out where it was deleted or changed
195
+ if (lastv && (lastv != lastVer)) {
196
+ var vi = _.indexOf(versions,lastv)
197
+ var delv = versions[vi-1]
198
+ changelog[delv]['deletes'].push(fname)
199
+
200
+ _.forEach(func.changes, function(_, v) {
201
+ changelog[v]['changes'].push(fname)
202
+ })
203
+ }
204
204
  })
205
205
 
206
206
  var vers = _.map(versions, function(version) {
207
- var deletes = changelog[version]['deletes']
208
- deletes.sort()
207
+ var deletes = changelog[version]['deletes']
208
+ deletes.sort()
209
209
 
210
- var additions = changelog[version]['adds']
211
- additions.sort()
212
- var adds = _.map(additions, function(add) {
210
+ var additions = changelog[version]['adds']
211
+ additions.sort()
212
+ var adds = _.map(additions, function(add) {
213
213
  var gname = this.model.groupOf(add)
214
- return {link: functionLink(gname, add, version), text: add}
215
- }, this)
214
+ return {link: functionLink(gname, add, version), text: add}
215
+ }, this)
216
216
 
217
- return {title: version, listing: this.itemTemplate({dels: deletes, adds: adds})}
217
+ return {title: version, listing: this.itemTemplate({dels: deletes, adds: adds})}
218
218
  }, this)
219
219
 
220
220
  this.el = this.template({versions: vers})
@@ -238,15 +238,15 @@ $(function() {
238
238
 
239
239
  var ldata = fdata
240
240
  if (isCallback) {
241
- var cdata = docurium.get('data')['callbacks']
242
- ldata = cdata
241
+ var cdata = docurium.get('data')['callbacks']
242
+ ldata = cdata
243
243
  } else {
244
- var functions = _.filter(group[1], function(f){ return f != fname})
244
+ var functions = _.filter(group[1], function(f){ return f != fname})
245
245
  }
246
246
 
247
247
  // Function Arguments
248
248
  var args = _.map(ldata[fname]['args'], function(arg) {
249
- return {link: this.hotLink(arg.type), name: arg.name, comment: arg.comment}
249
+ return {link: this.hotLink(arg.type), name: arg.name, comment: arg.comment}
250
250
  }, docurium)
251
251
 
252
252
  var data = ldata[fname]
@@ -257,32 +257,32 @@ $(function() {
257
257
  var sig = docurium.hotLink(ret.type) + ' ' + fname + '(' + data['argline'] + ');'
258
258
  // version history
259
259
  if (!isCallback) {
260
- var sigHist = docurium.get('signatures')[fname]
261
- var version = docurium.get('version')
262
- var sigs = _.map(sigHist.exists, function(ver) {
263
- var klass = []
264
- if (sigHist.changes[ver])
265
- klass.push('changed')
266
- if (ver == version)
267
- klass.push('current')
268
-
269
- return {url: '#' + functionLink(gname, fname, ver), name: ver, klass: klass.join(' ')}
270
- })
260
+ var sigHist = docurium.get('signatures')[fname]
261
+ var version = docurium.get('version')
262
+ var sigs = _.map(sigHist.exists, function(ver) {
263
+ var klass = []
264
+ if (sigHist.changes[ver])
265
+ klass.push('changed')
266
+ if (ver == version)
267
+ klass.push('current')
268
+
269
+ return {url: '#' + functionLink(gname, fname, ver), name: ver, klass: klass.join(' ')}
270
+ })
271
271
  }
272
272
  // GitHub link
273
273
  var fileLink = docurium.github_file(data.file, data.line, data.lineto)
274
274
  // link to the group
275
275
  if (!isCallback) {
276
- var version = docurium.get('version')
277
- var alsoGroup = '#' + groupLink(group[0], version)
278
- var alsoLinks = _.map(functions, function(f) {
279
- return {url: '#' + functionLink(gname, f, version), name: f}
280
- })
276
+ var version = docurium.get('version')
277
+ var alsoGroup = '#' + groupLink(group[0], version)
278
+ var alsoLinks = _.map(functions, function(f) {
279
+ return {url: '#' + functionLink(gname, f, version), name: f}
280
+ })
281
281
  }
282
282
 
283
283
  this.set('data', {name: fname, data: data, args: args, returns: returns, sig: sig,
284
- sigs: sigs, fileLink: fileLink, groupName: gname,
285
- alsoGroup: alsoGroup, alsoLinks: alsoLinks})
284
+ sigs: sigs, fileLink: fileLink, groupName: gname,
285
+ alsoGroup: alsoGroup, alsoLinks: alsoLinks})
286
286
  }
287
287
  })
288
288
 
@@ -313,18 +313,18 @@ $(function() {
313
313
  var version = this.docurium.get('version')
314
314
 
315
315
  var groups = _.map(data.groups, function(group) {
316
- var gname = group[0]
317
- var funs = _.map(group[1], function(fun) {
318
- var klass = ''
319
- if (sigHist[fun].changes[version])
320
- klass = 'changed'
321
-
322
- if (version == _.first(sigHist[fun].exists))
323
- klass = 'introd'
324
-
325
- return {name: fun, url: '#' + functionLink(gname, fun, version), klass: klass}
326
- })
327
- return {name: gname, funs: funs}
316
+ var gname = group[0]
317
+ var funs = _.map(group[1], function(fun) {
318
+ var klass = ''
319
+ if (sigHist[fun].changes[version])
320
+ klass = 'changed'
321
+
322
+ if (version == _.first(sigHist[fun].exists))
323
+ klass = 'introd'
324
+
325
+ return {name: fun, url: '#' + functionLink(gname, fun, version), klass: klass}
326
+ })
327
+ return {name: gname, funs: funs}
328
328
  })
329
329
 
330
330
  this.reset(groups)
@@ -347,38 +347,33 @@ $(function() {
347
347
  var version = docurium.get('version')
348
348
  var types = docurium.get('data')['types']
349
349
  var tdata = _.find(types, function(g) {
350
- return g[0] == typename
350
+ return g[0] == typename
351
351
  })
352
352
  var tname = tdata[0]
353
353
  var data = tdata[1]
354
354
 
355
- var toPair = function(fun) {
356
- var gname = this.groupOf(fun)
357
- var url = '#' + functionLink(gname, fun, version)
358
- return {name: fun, url: url}
355
+ var toFuncPair = function(fun) {
356
+ var gname = this.groupOf(fun)
357
+ var url = '#' + functionLink(gname, fun, version)
358
+ return {name: fun, url: url}
359
+ }
360
+
361
+ var toTypePair = function(type) {
362
+ var url = '#' + typeLink(type, version)
363
+ return {name: type, url: url}
359
364
  }
360
365
 
361
- var returns = _.map(data.used.returns, toPair, docurium)
362
- var needs = _.map(data.used.needs, toPair, docurium)
366
+ var returns = _.map(data.used.returns, toFuncPair, docurium)
367
+ var needs = _.map(data.used.needs, toFuncPair, docurium)
368
+ var fields = _.map(data.used.fields, toTypePair, docurium)
363
369
  var fileLink = {name: data.file, url: docurium.github_file(data.file, data.line, data.lineto)}
364
370
 
365
- // so it doesn't look crap, we build up a block with fields
366
- // without a comment
367
- var had_comment = false
368
- var blocks = []
369
- var tmp = []
370
- _.each(data.fields, function(f) {
371
- if (had_comment) {
372
- blocks.push(tmp)
373
- tmp = []
374
- }
375
-
376
- tmp.push(f)
377
- had_comment = f.comments
378
- })
379
- blocks.push(tmp)
371
+ // Hot link our field types
372
+ data.fields = _.map(data.fields, function(field) {
373
+ return {type: this.hotLink(field.type), name: field.name, comments: field.comments}
374
+ }, docurium)
380
375
 
381
- this.set('data', {tname: tname, data: data, blocks: blocks, returns: returns, needs: needs, fileLink: fileLink})
376
+ this.set('data', {tname: tname, data: data, returns: returns, needs: needs, fields: fields, fileLink: fileLink})
382
377
  }
383
378
  })
384
379
 
@@ -411,10 +406,10 @@ $(function() {
411
406
 
412
407
  this.gname = gname.charAt(0).toUpperCase() + gname.substring(1).toLowerCase()
413
408
  this.functions = _.map(group[1], function(name) {
414
- var url = '#' + functionLink(gname, name, version)
415
- var d = fdata[name]
416
- return {name: name, url: url, returns: d['return']['type'], argline: d['argline'],
417
- description: d['description'], comments: d['comments'], args: d['args']}
409
+ var url = '#' + functionLink(gname, name, version)
410
+ var d = fdata[name]
411
+ return {name: name, url: url, returns: d['return']['type'], argline: d['argline'],
412
+ description: d['description'], comments: d['comments'], args: d['args']}
418
413
  })
419
414
  },
420
415
 
@@ -433,9 +428,9 @@ $(function() {
433
428
 
434
429
  events: {
435
430
  'keyup': function() {
436
- this.trigger('keyup')
437
- if (this.$el.val() == '')
438
- this.trigger('empty')
431
+ this.trigger('keyup')
432
+ if (this.$el.val() == '')
433
+ this.trigger('empty')
439
434
  }
440
435
  },
441
436
  })
@@ -455,7 +450,7 @@ $(function() {
455
450
  keyup: function() {
456
451
  var newValue = this.field.$el.val()
457
452
  if (this.value == newValue || newValue.length < 3)
458
- return
453
+ return
459
454
 
460
455
  this.value = newValue
461
456
  this.refreshSearch()
@@ -471,19 +466,19 @@ $(function() {
471
466
  var version = docurium.get('version')
472
467
  // look for functions (name, comment, argline)
473
468
  _.forEach(data.functions, function(f, name) {
474
- var gname = docurium.groupOf(name)
475
- // look in the function name first
469
+ var gname = docurium.groupOf(name)
470
+ // look in the function name first
476
471
  if (name.search(value) > -1) {
477
- var gl = functionLink(gname, name, version)
478
- var url = '#' + gl
479
- searchResults.push({url: url, name: name, match: 'function', navigate: gl})
480
- return
472
+ var gl = functionLink(gname, name, version)
473
+ var url = '#' + gl
474
+ searchResults.push({url: url, name: name, match: 'function', navigate: gl})
475
+ return
481
476
  }
482
477
 
483
- // if we didn't find it there, let's look in the argline
478
+ // if we didn't find it there, let's look in the argline
484
479
  if (f.argline && f.argline.search(value) > -1) {
485
- var gl = functionLink(gname, name, version)
486
- var url = '#' + gl
480
+ var gl = functionLink(gname, name, version)
481
+ var url = '#' + gl
487
482
  searchResults.push({url: url, name: name, match: f.argline, navigate: gl})
488
483
  }
489
484
  })
@@ -491,8 +486,8 @@ $(function() {
491
486
  // look for types
492
487
  data.types.forEach(function(type) {
493
488
  var name = type[0]
494
- var tl = typeLink(name, version)
495
- var url = '#' + tl
489
+ var tl = typeLink(name, version)
490
+ var url = '#' + tl
496
491
  if (name.search(value) > -1) {
497
492
  searchResults.push({url: url, name: name, match: type[1].type, navigate: tl})
498
493
  }
@@ -500,12 +495,12 @@ $(function() {
500
495
 
501
496
  // look for callbacks
502
497
  _.each(data.callbacks, function(f, name) {
503
- if (name.search(value) > -1) {
504
- var gl = functionLink('callback', name, version)
505
- var url = '#' + gl
506
- searchResults.push({url: url, name: name, match: 'callback', navigate: gl})
507
- return
508
- }
498
+ if (name.search(value) > -1) {
499
+ var gl = functionLink('callback', name, version)
500
+ var url = '#' + gl
501
+ searchResults.push({url: url, name: name, match: 'callback', navigate: gl})
502
+ return
503
+ }
509
504
  })
510
505
 
511
506
  this.reset(searchResults)
@@ -532,8 +527,8 @@ $(function() {
532
527
  view.render()
533
528
 
534
529
  if (this.activeView) {
535
- this.stopListening()
536
- this.activeView.remove()
530
+ this.stopListening()
531
+ this.activeView.remove()
537
532
  }
538
533
 
539
534
  this.activeView = view
@@ -575,15 +570,15 @@ $(function() {
575
570
 
576
571
  current = docurium.get('version')
577
572
  if (current == version) {
578
- if (success)
579
- success();
580
- return;
573
+ if (success)
574
+ success();
575
+ return;
581
576
  }
582
577
 
583
578
  docurium.set({version: version})
584
579
  p = this.loadDoc()
585
580
  if (success)
586
- p.then(success)
581
+ p.then(success)
587
582
  },
588
583
 
589
584
  loadDoc: function() {
@@ -596,7 +591,7 @@ $(function() {
596
591
  getGroup: function(gname) {
597
592
  var groups = docurium.get('data')['groups']
598
593
  return _.find(groups, function(g) {
599
- return g[0] == gname
594
+ return g[0] == gname
600
595
  })
601
596
  },
602
597
 
@@ -605,18 +600,17 @@ $(function() {
605
600
  types = this.get('data')['types']
606
601
  var version = this.get('version')
607
602
 
608
- for(var i=0; i<types.length; i++) {
609
- type = types[i]
610
- typeName = type[0]
611
- typeData = type[1]
612
- re = new RegExp(typeName + '\\s', 'gi');
603
+ _.each(types, function(type) {
604
+ var typeName = type[0];
605
+ var typeData = type[1];
606
+ var re = new RegExp('\\b' + typeName + '\\b', 'gi');
613
607
  var link = $('<a>').attr('href', '#' + typeLink(typeName, version)).append(typeName)[0]
614
608
  text = text.replace(re, link.outerHTML + ' ')
615
- }
609
+ });
616
610
 
617
611
  var callbacks = this.get('data')['callbacks']
618
612
  _.each(callbacks, function(cb, typeName) {
619
- re = new RegExp(typeName + '$', 'gi');
613
+ var re = new RegExp(typeName + '$', 'gi');
620
614
  var link = $('<a>').attr('href', '#' + functionLink('callback', typeName, version)).append(typeName)[0]
621
615
  text = text.replace(re, link.outerHTML + ' ')
622
616
  });
@@ -634,11 +628,11 @@ $(function() {
634
628
  github_file: function(file, line, lineto) {
635
629
  var data = this.get('data')
636
630
  url = ['https://github.com', docurium.get('github'),
637
- 'blob', docurium.get('version'), data.prefix, file].join('/')
631
+ 'blob', docurium.get('version'), data.prefix, file].join('/')
638
632
  if(line) {
639
633
  url += '#L' + line.toString()
640
634
  if(lineto) {
641
- url += '-' + lineto.toString()
635
+ url += '-L' + lineto.toString()
642
636
  }
643
637
  } else {
644
638
  url += '#files'
@@ -677,47 +671,47 @@ $(function() {
677
671
  main: function(version) {
678
672
  var self = this
679
673
  this.doc.setVersion(version, function() {
680
- var view = new MainListView({collection: self.groups})
681
- self.mainView.setActive(view)
674
+ var view = new MainListView({collection: self.groups})
675
+ self.mainView.setActive(view)
682
676
  })
683
677
  },
684
678
 
685
679
  group: function(version, gname) {
686
680
  var self = this
687
681
  this.doc.setVersion(version, function() {
688
- var group = self.doc.getGroup(gname)
689
- var fdata = self.doc.get('data')['functions']
690
- var cdata = self.doc.get('data')['callbacks']
691
- var version = self.doc.get('version')
692
- var view = new GroupView({group: group, functions: fdata, callbacks: cdata, version: version})
693
- self.mainView.setActive(view)
682
+ var group = self.doc.getGroup(gname)
683
+ var fdata = self.doc.get('data')['functions']
684
+ var cdata = self.doc.get('data')['callbacks']
685
+ var version = self.doc.get('version')
686
+ var view = new GroupView({group: group, functions: fdata, callbacks: cdata, version: version})
687
+ self.mainView.setActive(view)
694
688
  });
695
689
  },
696
690
 
697
691
  groupFun: function(version, gname, fname) {
698
692
  var self = this
699
693
  this.doc.setVersion(version, function() {
700
- var model = new FunctionModel({docurium: self.doc, gname: gname, fname: fname})
701
- var view = new FunctionView({model: model})
702
- self.mainView.setActive(view)
694
+ var model = new FunctionModel({docurium: self.doc, gname: gname, fname: fname})
695
+ var view = new FunctionView({model: model})
696
+ self.mainView.setActive(view)
703
697
  })
704
698
  },
705
699
 
706
700
  showtype: function(version, tname) {
707
701
  var self = this
708
702
  this.doc.setVersion(version, function() {
709
- var model = new TypeModel({docurium: self.doc, typename: tname})
710
- var view = new TypeView({model: model})
711
- self.mainView.setActive(view)
703
+ var model = new TypeModel({docurium: self.doc, typename: tname})
704
+ var view = new TypeView({model: model})
705
+ self.mainView.setActive(view)
712
706
  })
713
707
  },
714
708
 
715
709
  search: function(version, query) {
716
710
  var self = this
717
711
  this.doc.setVersion(version, function() {
718
- var view = new SearchView({collection: self.search})
719
- $('#search-field').val(query).keyup()
720
- self.mainView.setActive(view)
712
+ var view = new SearchView({collection: self.search})
713
+ $('#search-field').val(query).keyup()
714
+ self.mainView.setActive(view)
721
715
  })
722
716
  },
723
717
 
@@ -725,10 +719,10 @@ $(function() {
725
719
  // let's wait to process it until it's asked, and let's only do
726
720
  // it once
727
721
  if (this.changelogView == undefined) {
728
- this.changelogView = new ChangelogView({model: this.doc})
722
+ this.changelogView = new ChangelogView({model: this.doc})
729
723
  }
730
724
  this.doc.setVersion(undefined, function() {
731
- this.mainView.setActive(this.changelogView)
725
+ this.mainView.setActive(this.changelogView)
732
726
  })
733
727
  },
734
728
  });
@@ -760,7 +754,7 @@ $(function() {
760
754
  var mainView = new MainView()
761
755
 
762
756
  var router = new Workspace({docurium: docurium, search: searchCol, mainView: mainView,
763
- groups: groupCol})
757
+ groups: groupCol})
764
758
 
765
759
  searchField.on('empty', function() {
766
760
  router.navigate(docurium.get('version'), {trigger: true})
@@ -1,6 +1,6 @@
1
- // Underscore.js 1.7.0
2
- // http://underscorejs.org
3
- // (c) 2009-2014 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
1
+ !function(n,r){"object"==typeof exports&&"undefined"!=typeof module?module.exports=r():"function"==typeof define&&define.amd?define("underscore",r):(n="undefined"!=typeof globalThis?globalThis:n||self,function(){var t=n._,e=n._=r();e.noConflict=function(){return n._=t,e}}())}(this,(function(){
2
+ // Underscore.js 1.13.1
3
+ // https://underscorejs.org
4
+ // (c) 2009-2021 Jeremy Ashkenas, Julian Gonggrijp, and DocumentCloud and Investigative Reporters & Editors
4
5
  // Underscore may be freely distributed under the MIT license.
5
- (function(){var n=this,t=n._,r=Array.prototype,e=Object.prototype,u=Function.prototype,i=r.push,a=r.slice,o=r.concat,l=e.toString,c=e.hasOwnProperty,f=Array.isArray,s=Object.keys,p=u.bind,h=function(n){return n instanceof h?n:this instanceof h?void(this._wrapped=n):new h(n)};"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=h),exports._=h):n._=h,h.VERSION="1.7.0";var g=function(n,t,r){if(t===void 0)return n;switch(null==r?3:r){case 1:return function(r){return n.call(t,r)};case 2:return function(r,e){return n.call(t,r,e)};case 3:return function(r,e,u){return n.call(t,r,e,u)};case 4:return function(r,e,u,i){return n.call(t,r,e,u,i)}}return function(){return n.apply(t,arguments)}};h.iteratee=function(n,t,r){return null==n?h.identity:h.isFunction(n)?g(n,t,r):h.isObject(n)?h.matches(n):h.property(n)},h.each=h.forEach=function(n,t,r){if(null==n)return n;t=g(t,r);var e,u=n.length;if(u===+u)for(e=0;u>e;e++)t(n[e],e,n);else{var i=h.keys(n);for(e=0,u=i.length;u>e;e++)t(n[i[e]],i[e],n)}return n},h.map=h.collect=function(n,t,r){if(null==n)return[];t=h.iteratee(t,r);for(var e,u=n.length!==+n.length&&h.keys(n),i=(u||n).length,a=Array(i),o=0;i>o;o++)e=u?u[o]:o,a[o]=t(n[e],e,n);return a};var v="Reduce of empty array with no initial value";h.reduce=h.foldl=h.inject=function(n,t,r,e){null==n&&(n=[]),t=g(t,e,4);var u,i=n.length!==+n.length&&h.keys(n),a=(i||n).length,o=0;if(arguments.length<3){if(!a)throw new TypeError(v);r=n[i?i[o++]:o++]}for(;a>o;o++)u=i?i[o]:o,r=t(r,n[u],u,n);return r},h.reduceRight=h.foldr=function(n,t,r,e){null==n&&(n=[]),t=g(t,e,4);var u,i=n.length!==+n.length&&h.keys(n),a=(i||n).length;if(arguments.length<3){if(!a)throw new TypeError(v);r=n[i?i[--a]:--a]}for(;a--;)u=i?i[a]:a,r=t(r,n[u],u,n);return r},h.find=h.detect=function(n,t,r){var e;return t=h.iteratee(t,r),h.some(n,function(n,r,u){return t(n,r,u)?(e=n,!0):void 0}),e},h.filter=h.select=function(n,t,r){var e=[];return null==n?e:(t=h.iteratee(t,r),h.each(n,function(n,r,u){t(n,r,u)&&e.push(n)}),e)},h.reject=function(n,t,r){return h.filter(n,h.negate(h.iteratee(t)),r)},h.every=h.all=function(n,t,r){if(null==n)return!0;t=h.iteratee(t,r);var e,u,i=n.length!==+n.length&&h.keys(n),a=(i||n).length;for(e=0;a>e;e++)if(u=i?i[e]:e,!t(n[u],u,n))return!1;return!0},h.some=h.any=function(n,t,r){if(null==n)return!1;t=h.iteratee(t,r);var e,u,i=n.length!==+n.length&&h.keys(n),a=(i||n).length;for(e=0;a>e;e++)if(u=i?i[e]:e,t(n[u],u,n))return!0;return!1},h.contains=h.include=function(n,t){return null==n?!1:(n.length!==+n.length&&(n=h.values(n)),h.indexOf(n,t)>=0)},h.invoke=function(n,t){var r=a.call(arguments,2),e=h.isFunction(t);return h.map(n,function(n){return(e?t:n[t]).apply(n,r)})},h.pluck=function(n,t){return h.map(n,h.property(t))},h.where=function(n,t){return h.filter(n,h.matches(t))},h.findWhere=function(n,t){return h.find(n,h.matches(t))},h.max=function(n,t,r){var e,u,i=-1/0,a=-1/0;if(null==t&&null!=n){n=n.length===+n.length?n:h.values(n);for(var o=0,l=n.length;l>o;o++)e=n[o],e>i&&(i=e)}else t=h.iteratee(t,r),h.each(n,function(n,r,e){u=t(n,r,e),(u>a||u===-1/0&&i===-1/0)&&(i=n,a=u)});return i},h.min=function(n,t,r){var e,u,i=1/0,a=1/0;if(null==t&&null!=n){n=n.length===+n.length?n:h.values(n);for(var o=0,l=n.length;l>o;o++)e=n[o],i>e&&(i=e)}else t=h.iteratee(t,r),h.each(n,function(n,r,e){u=t(n,r,e),(a>u||1/0===u&&1/0===i)&&(i=n,a=u)});return i},h.shuffle=function(n){for(var t,r=n&&n.length===+n.length?n:h.values(n),e=r.length,u=Array(e),i=0;e>i;i++)t=h.random(0,i),t!==i&&(u[i]=u[t]),u[t]=r[i];return u},h.sample=function(n,t,r){return null==t||r?(n.length!==+n.length&&(n=h.values(n)),n[h.random(n.length-1)]):h.shuffle(n).slice(0,Math.max(0,t))},h.sortBy=function(n,t,r){return t=h.iteratee(t,r),h.pluck(h.map(n,function(n,r,e){return{value:n,index:r,criteria:t(n,r,e)}}).sort(function(n,t){var r=n.criteria,e=t.criteria;if(r!==e){if(r>e||r===void 0)return 1;if(e>r||e===void 0)return-1}return n.index-t.index}),"value")};var m=function(n){return function(t,r,e){var u={};return r=h.iteratee(r,e),h.each(t,function(e,i){var a=r(e,i,t);n(u,e,a)}),u}};h.groupBy=m(function(n,t,r){h.has(n,r)?n[r].push(t):n[r]=[t]}),h.indexBy=m(function(n,t,r){n[r]=t}),h.countBy=m(function(n,t,r){h.has(n,r)?n[r]++:n[r]=1}),h.sortedIndex=function(n,t,r,e){r=h.iteratee(r,e,1);for(var u=r(t),i=0,a=n.length;a>i;){var o=i+a>>>1;r(n[o])<u?i=o+1:a=o}return i},h.toArray=function(n){return n?h.isArray(n)?a.call(n):n.length===+n.length?h.map(n,h.identity):h.values(n):[]},h.size=function(n){return null==n?0:n.length===+n.length?n.length:h.keys(n).length},h.partition=function(n,t,r){t=h.iteratee(t,r);var e=[],u=[];return h.each(n,function(n,r,i){(t(n,r,i)?e:u).push(n)}),[e,u]},h.first=h.head=h.take=function(n,t,r){return null==n?void 0:null==t||r?n[0]:0>t?[]:a.call(n,0,t)},h.initial=function(n,t,r){return a.call(n,0,Math.max(0,n.length-(null==t||r?1:t)))},h.last=function(n,t,r){return null==n?void 0:null==t||r?n[n.length-1]:a.call(n,Math.max(n.length-t,0))},h.rest=h.tail=h.drop=function(n,t,r){return a.call(n,null==t||r?1:t)},h.compact=function(n){return h.filter(n,h.identity)};var y=function(n,t,r,e){if(t&&h.every(n,h.isArray))return o.apply(e,n);for(var u=0,a=n.length;a>u;u++){var l=n[u];h.isArray(l)||h.isArguments(l)?t?i.apply(e,l):y(l,t,r,e):r||e.push(l)}return e};h.flatten=function(n,t){return y(n,t,!1,[])},h.without=function(n){return h.difference(n,a.call(arguments,1))},h.uniq=h.unique=function(n,t,r,e){if(null==n)return[];h.isBoolean(t)||(e=r,r=t,t=!1),null!=r&&(r=h.iteratee(r,e));for(var u=[],i=[],a=0,o=n.length;o>a;a++){var l=n[a];if(t)a&&i===l||u.push(l),i=l;else if(r){var c=r(l,a,n);h.indexOf(i,c)<0&&(i.push(c),u.push(l))}else h.indexOf(u,l)<0&&u.push(l)}return u},h.union=function(){return h.uniq(y(arguments,!0,!0,[]))},h.intersection=function(n){if(null==n)return[];for(var t=[],r=arguments.length,e=0,u=n.length;u>e;e++){var i=n[e];if(!h.contains(t,i)){for(var a=1;r>a&&h.contains(arguments[a],i);a++);a===r&&t.push(i)}}return t},h.difference=function(n){var t=y(a.call(arguments,1),!0,!0,[]);return h.filter(n,function(n){return!h.contains(t,n)})},h.zip=function(n){if(null==n)return[];for(var t=h.max(arguments,"length").length,r=Array(t),e=0;t>e;e++)r[e]=h.pluck(arguments,e);return r},h.object=function(n,t){if(null==n)return{};for(var r={},e=0,u=n.length;u>e;e++)t?r[n[e]]=t[e]:r[n[e][0]]=n[e][1];return r},h.indexOf=function(n,t,r){if(null==n)return-1;var e=0,u=n.length;if(r){if("number"!=typeof r)return e=h.sortedIndex(n,t),n[e]===t?e:-1;e=0>r?Math.max(0,u+r):r}for(;u>e;e++)if(n[e]===t)return e;return-1},h.lastIndexOf=function(n,t,r){if(null==n)return-1;var e=n.length;for("number"==typeof r&&(e=0>r?e+r+1:Math.min(e,r+1));--e>=0;)if(n[e]===t)return e;return-1},h.range=function(n,t,r){arguments.length<=1&&(t=n||0,n=0),r=r||1;for(var e=Math.max(Math.ceil((t-n)/r),0),u=Array(e),i=0;e>i;i++,n+=r)u[i]=n;return u};var d=function(){};h.bind=function(n,t){var r,e;if(p&&n.bind===p)return p.apply(n,a.call(arguments,1));if(!h.isFunction(n))throw new TypeError("Bind must be called on a function");return r=a.call(arguments,2),e=function(){if(!(this instanceof e))return n.apply(t,r.concat(a.call(arguments)));d.prototype=n.prototype;var u=new d;d.prototype=null;var i=n.apply(u,r.concat(a.call(arguments)));return h.isObject(i)?i:u}},h.partial=function(n){var t=a.call(arguments,1);return function(){for(var r=0,e=t.slice(),u=0,i=e.length;i>u;u++)e[u]===h&&(e[u]=arguments[r++]);for(;r<arguments.length;)e.push(arguments[r++]);return n.apply(this,e)}},h.bindAll=function(n){var t,r,e=arguments.length;if(1>=e)throw new Error("bindAll must be passed function names");for(t=1;e>t;t++)r=arguments[t],n[r]=h.bind(n[r],n);return n},h.memoize=function(n,t){var r=function(e){var u=r.cache,i=t?t.apply(this,arguments):e;return h.has(u,i)||(u[i]=n.apply(this,arguments)),u[i]};return r.cache={},r},h.delay=function(n,t){var r=a.call(arguments,2);return setTimeout(function(){return n.apply(null,r)},t)},h.defer=function(n){return h.delay.apply(h,[n,1].concat(a.call(arguments,1)))},h.throttle=function(n,t,r){var e,u,i,a=null,o=0;r||(r={});var l=function(){o=r.leading===!1?0:h.now(),a=null,i=n.apply(e,u),a||(e=u=null)};return function(){var c=h.now();o||r.leading!==!1||(o=c);var f=t-(c-o);return e=this,u=arguments,0>=f||f>t?(clearTimeout(a),a=null,o=c,i=n.apply(e,u),a||(e=u=null)):a||r.trailing===!1||(a=setTimeout(l,f)),i}},h.debounce=function(n,t,r){var e,u,i,a,o,l=function(){var c=h.now()-a;t>c&&c>0?e=setTimeout(l,t-c):(e=null,r||(o=n.apply(i,u),e||(i=u=null)))};return function(){i=this,u=arguments,a=h.now();var c=r&&!e;return e||(e=setTimeout(l,t)),c&&(o=n.apply(i,u),i=u=null),o}},h.wrap=function(n,t){return h.partial(t,n)},h.negate=function(n){return function(){return!n.apply(this,arguments)}},h.compose=function(){var n=arguments,t=n.length-1;return function(){for(var r=t,e=n[t].apply(this,arguments);r--;)e=n[r].call(this,e);return e}},h.after=function(n,t){return function(){return--n<1?t.apply(this,arguments):void 0}},h.before=function(n,t){var r;return function(){return--n>0?r=t.apply(this,arguments):t=null,r}},h.once=h.partial(h.before,2),h.keys=function(n){if(!h.isObject(n))return[];if(s)return s(n);var t=[];for(var r in n)h.has(n,r)&&t.push(r);return t},h.values=function(n){for(var t=h.keys(n),r=t.length,e=Array(r),u=0;r>u;u++)e[u]=n[t[u]];return e},h.pairs=function(n){for(var t=h.keys(n),r=t.length,e=Array(r),u=0;r>u;u++)e[u]=[t[u],n[t[u]]];return e},h.invert=function(n){for(var t={},r=h.keys(n),e=0,u=r.length;u>e;e++)t[n[r[e]]]=r[e];return t},h.functions=h.methods=function(n){var t=[];for(var r in n)h.isFunction(n[r])&&t.push(r);return t.sort()},h.extend=function(n){if(!h.isObject(n))return n;for(var t,r,e=1,u=arguments.length;u>e;e++){t=arguments[e];for(r in t)c.call(t,r)&&(n[r]=t[r])}return n},h.pick=function(n,t,r){var e,u={};if(null==n)return u;if(h.isFunction(t)){t=g(t,r);for(e in n){var i=n[e];t(i,e,n)&&(u[e]=i)}}else{var l=o.apply([],a.call(arguments,1));n=new Object(n);for(var c=0,f=l.length;f>c;c++)e=l[c],e in n&&(u[e]=n[e])}return u},h.omit=function(n,t,r){if(h.isFunction(t))t=h.negate(t);else{var e=h.map(o.apply([],a.call(arguments,1)),String);t=function(n,t){return!h.contains(e,t)}}return h.pick(n,t,r)},h.defaults=function(n){if(!h.isObject(n))return n;for(var t=1,r=arguments.length;r>t;t++){var e=arguments[t];for(var u in e)n[u]===void 0&&(n[u]=e[u])}return n},h.clone=function(n){return h.isObject(n)?h.isArray(n)?n.slice():h.extend({},n):n},h.tap=function(n,t){return t(n),n};var b=function(n,t,r,e){if(n===t)return 0!==n||1/n===1/t;if(null==n||null==t)return n===t;n instanceof h&&(n=n._wrapped),t instanceof h&&(t=t._wrapped);var u=l.call(n);if(u!==l.call(t))return!1;switch(u){case"[object RegExp]":case"[object String]":return""+n==""+t;case"[object Number]":return+n!==+n?+t!==+t:0===+n?1/+n===1/t:+n===+t;case"[object Date]":case"[object Boolean]":return+n===+t}if("object"!=typeof n||"object"!=typeof t)return!1;for(var i=r.length;i--;)if(r[i]===n)return e[i]===t;var a=n.constructor,o=t.constructor;if(a!==o&&"constructor"in n&&"constructor"in t&&!(h.isFunction(a)&&a instanceof a&&h.isFunction(o)&&o instanceof o))return!1;r.push(n),e.push(t);var c,f;if("[object Array]"===u){if(c=n.length,f=c===t.length)for(;c--&&(f=b(n[c],t[c],r,e)););}else{var s,p=h.keys(n);if(c=p.length,f=h.keys(t).length===c)for(;c--&&(s=p[c],f=h.has(t,s)&&b(n[s],t[s],r,e)););}return r.pop(),e.pop(),f};h.isEqual=function(n,t){return b(n,t,[],[])},h.isEmpty=function(n){if(null==n)return!0;if(h.isArray(n)||h.isString(n)||h.isArguments(n))return 0===n.length;for(var t in n)if(h.has(n,t))return!1;return!0},h.isElement=function(n){return!(!n||1!==n.nodeType)},h.isArray=f||function(n){return"[object Array]"===l.call(n)},h.isObject=function(n){var t=typeof n;return"function"===t||"object"===t&&!!n},h.each(["Arguments","Function","String","Number","Date","RegExp"],function(n){h["is"+n]=function(t){return l.call(t)==="[object "+n+"]"}}),h.isArguments(arguments)||(h.isArguments=function(n){return h.has(n,"callee")}),"function"!=typeof/./&&(h.isFunction=function(n){return"function"==typeof n||!1}),h.isFinite=function(n){return isFinite(n)&&!isNaN(parseFloat(n))},h.isNaN=function(n){return h.isNumber(n)&&n!==+n},h.isBoolean=function(n){return n===!0||n===!1||"[object Boolean]"===l.call(n)},h.isNull=function(n){return null===n},h.isUndefined=function(n){return n===void 0},h.has=function(n,t){return null!=n&&c.call(n,t)},h.noConflict=function(){return n._=t,this},h.identity=function(n){return n},h.constant=function(n){return function(){return n}},h.noop=function(){},h.property=function(n){return function(t){return t[n]}},h.matches=function(n){var t=h.pairs(n),r=t.length;return function(n){if(null==n)return!r;n=new Object(n);for(var e=0;r>e;e++){var u=t[e],i=u[0];if(u[1]!==n[i]||!(i in n))return!1}return!0}},h.times=function(n,t,r){var e=Array(Math.max(0,n));t=g(t,r,1);for(var u=0;n>u;u++)e[u]=t(u);return e},h.random=function(n,t){return null==t&&(t=n,n=0),n+Math.floor(Math.random()*(t-n+1))},h.now=Date.now||function(){return(new Date).getTime()};var _={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;","`":"&#x60;"},w=h.invert(_),j=function(n){var t=function(t){return n[t]},r="(?:"+h.keys(n).join("|")+")",e=RegExp(r),u=RegExp(r,"g");return function(n){return n=null==n?"":""+n,e.test(n)?n.replace(u,t):n}};h.escape=j(_),h.unescape=j(w),h.result=function(n,t){if(null==n)return void 0;var r=n[t];return h.isFunction(r)?n[t]():r};var x=0;h.uniqueId=function(n){var t=++x+"";return n?n+t:t},h.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var A=/(.)^/,k={"'":"'","\\":"\\","\r":"r","\n":"n","\u2028":"u2028","\u2029":"u2029"},O=/\\|'|\r|\n|\u2028|\u2029/g,F=function(n){return"\\"+k[n]};h.template=function(n,t,r){!t&&r&&(t=r),t=h.defaults({},t,h.templateSettings);var e=RegExp([(t.escape||A).source,(t.interpolate||A).source,(t.evaluate||A).source].join("|")+"|$","g"),u=0,i="__p+='";n.replace(e,function(t,r,e,a,o){return i+=n.slice(u,o).replace(O,F),u=o+t.length,r?i+="'+\n((__t=("+r+"))==null?'':_.escape(__t))+\n'":e?i+="'+\n((__t=("+e+"))==null?'':__t)+\n'":a&&(i+="';\n"+a+"\n__p+='"),t}),i+="';\n",t.variable||(i="with(obj||{}){\n"+i+"}\n"),i="var __t,__p='',__j=Array.prototype.join,"+"print=function(){__p+=__j.call(arguments,'');};\n"+i+"return __p;\n";try{var a=new Function(t.variable||"obj","_",i)}catch(o){throw o.source=i,o}var l=function(n){return a.call(this,n,h)},c=t.variable||"obj";return l.source="function("+c+"){\n"+i+"}",l},h.chain=function(n){var t=h(n);return t._chain=!0,t};var E=function(n){return this._chain?h(n).chain():n};h.mixin=function(n){h.each(h.functions(n),function(t){var r=h[t]=n[t];h.prototype[t]=function(){var n=[this._wrapped];return i.apply(n,arguments),E.call(this,r.apply(h,n))}})},h.mixin(h),h.each(["pop","push","reverse","shift","sort","splice","unshift"],function(n){var t=r[n];h.prototype[n]=function(){var r=this._wrapped;return t.apply(r,arguments),"shift"!==n&&"splice"!==n||0!==r.length||delete r[0],E.call(this,r)}}),h.each(["concat","join","slice"],function(n){var t=r[n];h.prototype[n]=function(){return E.call(this,t.apply(this._wrapped,arguments))}}),h.prototype.value=function(){return this._wrapped},"function"==typeof define&&define.amd&&define("underscore",[],function(){return h})}).call(this);
6
- //# sourceMappingURL=underscore-min.map
6
+ var n="1.13.1",r="object"==typeof self&&self.self===self&&self||"object"==typeof global&&global.global===global&&global||Function("return this")()||{},t=Array.prototype,e=Object.prototype,u="undefined"!=typeof Symbol?Symbol.prototype:null,o=t.push,i=t.slice,a=e.toString,f=e.hasOwnProperty,c="undefined"!=typeof ArrayBuffer,l="undefined"!=typeof DataView,s=Array.isArray,p=Object.keys,v=Object.create,h=c&&ArrayBuffer.isView,y=isNaN,d=isFinite,g=!{toString:null}.propertyIsEnumerable("toString"),b=["valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"],m=Math.pow(2,53)-1;function j(n,r){return r=null==r?n.length-1:+r,function(){for(var t=Math.max(arguments.length-r,0),e=Array(t),u=0;u<t;u++)e[u]=arguments[u+r];switch(r){case 0:return n.call(this,e);case 1:return n.call(this,arguments[0],e);case 2:return n.call(this,arguments[0],arguments[1],e)}var o=Array(r+1);for(u=0;u<r;u++)o[u]=arguments[u];return o[r]=e,n.apply(this,o)}}function _(n){var r=typeof n;return"function"===r||"object"===r&&!!n}function w(n){return void 0===n}function A(n){return!0===n||!1===n||"[object Boolean]"===a.call(n)}function x(n){var r="[object "+n+"]";return function(n){return a.call(n)===r}}var S=x("String"),O=x("Number"),M=x("Date"),E=x("RegExp"),B=x("Error"),N=x("Symbol"),I=x("ArrayBuffer"),T=x("Function"),k=r.document&&r.document.childNodes;"function"!=typeof/./&&"object"!=typeof Int8Array&&"function"!=typeof k&&(T=function(n){return"function"==typeof n||!1});var D=T,R=x("Object"),F=l&&R(new DataView(new ArrayBuffer(8))),V="undefined"!=typeof Map&&R(new Map),P=x("DataView");var q=F?function(n){return null!=n&&D(n.getInt8)&&I(n.buffer)}:P,U=s||x("Array");function W(n,r){return null!=n&&f.call(n,r)}var z=x("Arguments");!function(){z(arguments)||(z=function(n){return W(n,"callee")})}();var L=z;function $(n){return O(n)&&y(n)}function C(n){return function(){return n}}function K(n){return function(r){var t=n(r);return"number"==typeof t&&t>=0&&t<=m}}function J(n){return function(r){return null==r?void 0:r[n]}}var G=J("byteLength"),H=K(G),Q=/\[object ((I|Ui)nt(8|16|32)|Float(32|64)|Uint8Clamped|Big(I|Ui)nt64)Array\]/;var X=c?function(n){return h?h(n)&&!q(n):H(n)&&Q.test(a.call(n))}:C(!1),Y=J("length");function Z(n,r){r=function(n){for(var r={},t=n.length,e=0;e<t;++e)r[n[e]]=!0;return{contains:function(n){return r[n]},push:function(t){return r[t]=!0,n.push(t)}}}(r);var t=b.length,u=n.constructor,o=D(u)&&u.prototype||e,i="constructor";for(W(n,i)&&!r.contains(i)&&r.push(i);t--;)(i=b[t])in n&&n[i]!==o[i]&&!r.contains(i)&&r.push(i)}function nn(n){if(!_(n))return[];if(p)return p(n);var r=[];for(var t in n)W(n,t)&&r.push(t);return g&&Z(n,r),r}function rn(n,r){var t=nn(r),e=t.length;if(null==n)return!e;for(var u=Object(n),o=0;o<e;o++){var i=t[o];if(r[i]!==u[i]||!(i in u))return!1}return!0}function tn(n){return n instanceof tn?n:this instanceof tn?void(this._wrapped=n):new tn(n)}function en(n){return new Uint8Array(n.buffer||n,n.byteOffset||0,G(n))}tn.VERSION=n,tn.prototype.value=function(){return this._wrapped},tn.prototype.valueOf=tn.prototype.toJSON=tn.prototype.value,tn.prototype.toString=function(){return String(this._wrapped)};var un="[object DataView]";function on(n,r,t,e){if(n===r)return 0!==n||1/n==1/r;if(null==n||null==r)return!1;if(n!=n)return r!=r;var o=typeof n;return("function"===o||"object"===o||"object"==typeof r)&&function n(r,t,e,o){r instanceof tn&&(r=r._wrapped);t instanceof tn&&(t=t._wrapped);var i=a.call(r);if(i!==a.call(t))return!1;if(F&&"[object Object]"==i&&q(r)){if(!q(t))return!1;i=un}switch(i){case"[object RegExp]":case"[object String]":return""+r==""+t;case"[object Number]":return+r!=+r?+t!=+t:0==+r?1/+r==1/t:+r==+t;case"[object Date]":case"[object Boolean]":return+r==+t;case"[object Symbol]":return u.valueOf.call(r)===u.valueOf.call(t);case"[object ArrayBuffer]":case un:return n(en(r),en(t),e,o)}var f="[object Array]"===i;if(!f&&X(r)){if(G(r)!==G(t))return!1;if(r.buffer===t.buffer&&r.byteOffset===t.byteOffset)return!0;f=!0}if(!f){if("object"!=typeof r||"object"!=typeof t)return!1;var c=r.constructor,l=t.constructor;if(c!==l&&!(D(c)&&c instanceof c&&D(l)&&l instanceof l)&&"constructor"in r&&"constructor"in t)return!1}o=o||[];var s=(e=e||[]).length;for(;s--;)if(e[s]===r)return o[s]===t;if(e.push(r),o.push(t),f){if((s=r.length)!==t.length)return!1;for(;s--;)if(!on(r[s],t[s],e,o))return!1}else{var p,v=nn(r);if(s=v.length,nn(t).length!==s)return!1;for(;s--;)if(p=v[s],!W(t,p)||!on(r[p],t[p],e,o))return!1}return e.pop(),o.pop(),!0}(n,r,t,e)}function an(n){if(!_(n))return[];var r=[];for(var t in n)r.push(t);return g&&Z(n,r),r}function fn(n){var r=Y(n);return function(t){if(null==t)return!1;var e=an(t);if(Y(e))return!1;for(var u=0;u<r;u++)if(!D(t[n[u]]))return!1;return n!==hn||!D(t[cn])}}var cn="forEach",ln="has",sn=["clear","delete"],pn=["get",ln,"set"],vn=sn.concat(cn,pn),hn=sn.concat(pn),yn=["add"].concat(sn,cn,ln),dn=V?fn(vn):x("Map"),gn=V?fn(hn):x("WeakMap"),bn=V?fn(yn):x("Set"),mn=x("WeakSet");function jn(n){for(var r=nn(n),t=r.length,e=Array(t),u=0;u<t;u++)e[u]=n[r[u]];return e}function _n(n){for(var r={},t=nn(n),e=0,u=t.length;e<u;e++)r[n[t[e]]]=t[e];return r}function wn(n){var r=[];for(var t in n)D(n[t])&&r.push(t);return r.sort()}function An(n,r){return function(t){var e=arguments.length;if(r&&(t=Object(t)),e<2||null==t)return t;for(var u=1;u<e;u++)for(var o=arguments[u],i=n(o),a=i.length,f=0;f<a;f++){var c=i[f];r&&void 0!==t[c]||(t[c]=o[c])}return t}}var xn=An(an),Sn=An(nn),On=An(an,!0);function Mn(n){if(!_(n))return{};if(v)return v(n);var r=function(){};r.prototype=n;var t=new r;return r.prototype=null,t}function En(n){return _(n)?U(n)?n.slice():xn({},n):n}function Bn(n){return U(n)?n:[n]}function Nn(n){return tn.toPath(n)}function In(n,r){for(var t=r.length,e=0;e<t;e++){if(null==n)return;n=n[r[e]]}return t?n:void 0}function Tn(n,r,t){var e=In(n,Nn(r));return w(e)?t:e}function kn(n){return n}function Dn(n){return n=Sn({},n),function(r){return rn(r,n)}}function Rn(n){return n=Nn(n),function(r){return In(r,n)}}function Fn(n,r,t){if(void 0===r)return n;switch(null==t?3:t){case 1:return function(t){return n.call(r,t)};case 3:return function(t,e,u){return n.call(r,t,e,u)};case 4:return function(t,e,u,o){return n.call(r,t,e,u,o)}}return function(){return n.apply(r,arguments)}}function Vn(n,r,t){return null==n?kn:D(n)?Fn(n,r,t):_(n)&&!U(n)?Dn(n):Rn(n)}function Pn(n,r){return Vn(n,r,1/0)}function qn(n,r,t){return tn.iteratee!==Pn?tn.iteratee(n,r):Vn(n,r,t)}function Un(){}function Wn(n,r){return null==r&&(r=n,n=0),n+Math.floor(Math.random()*(r-n+1))}tn.toPath=Bn,tn.iteratee=Pn;var zn=Date.now||function(){return(new Date).getTime()};function Ln(n){var r=function(r){return n[r]},t="(?:"+nn(n).join("|")+")",e=RegExp(t),u=RegExp(t,"g");return function(n){return n=null==n?"":""+n,e.test(n)?n.replace(u,r):n}}var $n={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;","`":"&#x60;"},Cn=Ln($n),Kn=Ln(_n($n)),Jn=tn.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g},Gn=/(.)^/,Hn={"'":"'","\\":"\\","\r":"r","\n":"n","\u2028":"u2028","\u2029":"u2029"},Qn=/\\|'|\r|\n|\u2028|\u2029/g;function Xn(n){return"\\"+Hn[n]}var Yn=/^\s*(\w|\$)+\s*$/;var Zn=0;function nr(n,r,t,e,u){if(!(e instanceof r))return n.apply(t,u);var o=Mn(n.prototype),i=n.apply(o,u);return _(i)?i:o}var rr=j((function(n,r){var t=rr.placeholder,e=function(){for(var u=0,o=r.length,i=Array(o),a=0;a<o;a++)i[a]=r[a]===t?arguments[u++]:r[a];for(;u<arguments.length;)i.push(arguments[u++]);return nr(n,e,this,this,i)};return e}));rr.placeholder=tn;var tr=j((function(n,r,t){if(!D(n))throw new TypeError("Bind must be called on a function");var e=j((function(u){return nr(n,e,r,this,t.concat(u))}));return e})),er=K(Y);function ur(n,r,t,e){if(e=e||[],r||0===r){if(r<=0)return e.concat(n)}else r=1/0;for(var u=e.length,o=0,i=Y(n);o<i;o++){var a=n[o];if(er(a)&&(U(a)||L(a)))if(r>1)ur(a,r-1,t,e),u=e.length;else for(var f=0,c=a.length;f<c;)e[u++]=a[f++];else t||(e[u++]=a)}return e}var or=j((function(n,r){var t=(r=ur(r,!1,!1)).length;if(t<1)throw new Error("bindAll must be passed function names");for(;t--;){var e=r[t];n[e]=tr(n[e],n)}return n}));var ir=j((function(n,r,t){return setTimeout((function(){return n.apply(null,t)}),r)})),ar=rr(ir,tn,1);function fr(n){return function(){return!n.apply(this,arguments)}}function cr(n,r){var t;return function(){return--n>0&&(t=r.apply(this,arguments)),n<=1&&(r=null),t}}var lr=rr(cr,2);function sr(n,r,t){r=qn(r,t);for(var e,u=nn(n),o=0,i=u.length;o<i;o++)if(r(n[e=u[o]],e,n))return e}function pr(n){return function(r,t,e){t=qn(t,e);for(var u=Y(r),o=n>0?0:u-1;o>=0&&o<u;o+=n)if(t(r[o],o,r))return o;return-1}}var vr=pr(1),hr=pr(-1);function yr(n,r,t,e){for(var u=(t=qn(t,e,1))(r),o=0,i=Y(n);o<i;){var a=Math.floor((o+i)/2);t(n[a])<u?o=a+1:i=a}return o}function dr(n,r,t){return function(e,u,o){var a=0,f=Y(e);if("number"==typeof o)n>0?a=o>=0?o:Math.max(o+f,a):f=o>=0?Math.min(o+1,f):o+f+1;else if(t&&o&&f)return e[o=t(e,u)]===u?o:-1;if(u!=u)return(o=r(i.call(e,a,f),$))>=0?o+a:-1;for(o=n>0?a:f-1;o>=0&&o<f;o+=n)if(e[o]===u)return o;return-1}}var gr=dr(1,vr,yr),br=dr(-1,hr);function mr(n,r,t){var e=(er(n)?vr:sr)(n,r,t);if(void 0!==e&&-1!==e)return n[e]}function jr(n,r,t){var e,u;if(r=Fn(r,t),er(n))for(e=0,u=n.length;e<u;e++)r(n[e],e,n);else{var o=nn(n);for(e=0,u=o.length;e<u;e++)r(n[o[e]],o[e],n)}return n}function _r(n,r,t){r=qn(r,t);for(var e=!er(n)&&nn(n),u=(e||n).length,o=Array(u),i=0;i<u;i++){var a=e?e[i]:i;o[i]=r(n[a],a,n)}return o}function wr(n){var r=function(r,t,e,u){var o=!er(r)&&nn(r),i=(o||r).length,a=n>0?0:i-1;for(u||(e=r[o?o[a]:a],a+=n);a>=0&&a<i;a+=n){var f=o?o[a]:a;e=t(e,r[f],f,r)}return e};return function(n,t,e,u){var o=arguments.length>=3;return r(n,Fn(t,u,4),e,o)}}var Ar=wr(1),xr=wr(-1);function Sr(n,r,t){var e=[];return r=qn(r,t),jr(n,(function(n,t,u){r(n,t,u)&&e.push(n)})),e}function Or(n,r,t){r=qn(r,t);for(var e=!er(n)&&nn(n),u=(e||n).length,o=0;o<u;o++){var i=e?e[o]:o;if(!r(n[i],i,n))return!1}return!0}function Mr(n,r,t){r=qn(r,t);for(var e=!er(n)&&nn(n),u=(e||n).length,o=0;o<u;o++){var i=e?e[o]:o;if(r(n[i],i,n))return!0}return!1}function Er(n,r,t,e){return er(n)||(n=jn(n)),("number"!=typeof t||e)&&(t=0),gr(n,r,t)>=0}var Br=j((function(n,r,t){var e,u;return D(r)?u=r:(r=Nn(r),e=r.slice(0,-1),r=r[r.length-1]),_r(n,(function(n){var o=u;if(!o){if(e&&e.length&&(n=In(n,e)),null==n)return;o=n[r]}return null==o?o:o.apply(n,t)}))}));function Nr(n,r){return _r(n,Rn(r))}function Ir(n,r,t){var e,u,o=-1/0,i=-1/0;if(null==r||"number"==typeof r&&"object"!=typeof n[0]&&null!=n)for(var a=0,f=(n=er(n)?n:jn(n)).length;a<f;a++)null!=(e=n[a])&&e>o&&(o=e);else r=qn(r,t),jr(n,(function(n,t,e){((u=r(n,t,e))>i||u===-1/0&&o===-1/0)&&(o=n,i=u)}));return o}function Tr(n,r,t){if(null==r||t)return er(n)||(n=jn(n)),n[Wn(n.length-1)];var e=er(n)?En(n):jn(n),u=Y(e);r=Math.max(Math.min(r,u),0);for(var o=u-1,i=0;i<r;i++){var a=Wn(i,o),f=e[i];e[i]=e[a],e[a]=f}return e.slice(0,r)}function kr(n,r){return function(t,e,u){var o=r?[[],[]]:{};return e=qn(e,u),jr(t,(function(r,u){var i=e(r,u,t);n(o,r,i)})),o}}var Dr=kr((function(n,r,t){W(n,t)?n[t].push(r):n[t]=[r]})),Rr=kr((function(n,r,t){n[t]=r})),Fr=kr((function(n,r,t){W(n,t)?n[t]++:n[t]=1})),Vr=kr((function(n,r,t){n[t?0:1].push(r)}),!0),Pr=/[^\ud800-\udfff]|[\ud800-\udbff][\udc00-\udfff]|[\ud800-\udfff]/g;function qr(n,r,t){return r in t}var Ur=j((function(n,r){var t={},e=r[0];if(null==n)return t;D(e)?(r.length>1&&(e=Fn(e,r[1])),r=an(n)):(e=qr,r=ur(r,!1,!1),n=Object(n));for(var u=0,o=r.length;u<o;u++){var i=r[u],a=n[i];e(a,i,n)&&(t[i]=a)}return t})),Wr=j((function(n,r){var t,e=r[0];return D(e)?(e=fr(e),r.length>1&&(t=r[1])):(r=_r(ur(r,!1,!1),String),e=function(n,t){return!Er(r,t)}),Ur(n,e,t)}));function zr(n,r,t){return i.call(n,0,Math.max(0,n.length-(null==r||t?1:r)))}function Lr(n,r,t){return null==n||n.length<1?null==r||t?void 0:[]:null==r||t?n[0]:zr(n,n.length-r)}function $r(n,r,t){return i.call(n,null==r||t?1:r)}var Cr=j((function(n,r){return r=ur(r,!0,!0),Sr(n,(function(n){return!Er(r,n)}))})),Kr=j((function(n,r){return Cr(n,r)}));function Jr(n,r,t,e){A(r)||(e=t,t=r,r=!1),null!=t&&(t=qn(t,e));for(var u=[],o=[],i=0,a=Y(n);i<a;i++){var f=n[i],c=t?t(f,i,n):f;r&&!t?(i&&o===c||u.push(f),o=c):t?Er(o,c)||(o.push(c),u.push(f)):Er(u,f)||u.push(f)}return u}var Gr=j((function(n){return Jr(ur(n,!0,!0))}));function Hr(n){for(var r=n&&Ir(n,Y).length||0,t=Array(r),e=0;e<r;e++)t[e]=Nr(n,e);return t}var Qr=j(Hr);function Xr(n,r){return n._chain?tn(r).chain():r}function Yr(n){return jr(wn(n),(function(r){var t=tn[r]=n[r];tn.prototype[r]=function(){var n=[this._wrapped];return o.apply(n,arguments),Xr(this,t.apply(tn,n))}})),tn}jr(["pop","push","reverse","shift","sort","splice","unshift"],(function(n){var r=t[n];tn.prototype[n]=function(){var t=this._wrapped;return null!=t&&(r.apply(t,arguments),"shift"!==n&&"splice"!==n||0!==t.length||delete t[0]),Xr(this,t)}})),jr(["concat","join","slice"],(function(n){var r=t[n];tn.prototype[n]=function(){var n=this._wrapped;return null!=n&&(n=r.apply(n,arguments)),Xr(this,n)}}));var Zr=Yr({__proto__:null,VERSION:n,restArguments:j,isObject:_,isNull:function(n){return null===n},isUndefined:w,isBoolean:A,isElement:function(n){return!(!n||1!==n.nodeType)},isString:S,isNumber:O,isDate:M,isRegExp:E,isError:B,isSymbol:N,isArrayBuffer:I,isDataView:q,isArray:U,isFunction:D,isArguments:L,isFinite:function(n){return!N(n)&&d(n)&&!isNaN(parseFloat(n))},isNaN:$,isTypedArray:X,isEmpty:function(n){if(null==n)return!0;var r=Y(n);return"number"==typeof r&&(U(n)||S(n)||L(n))?0===r:0===Y(nn(n))},isMatch:rn,isEqual:function(n,r){return on(n,r)},isMap:dn,isWeakMap:gn,isSet:bn,isWeakSet:mn,keys:nn,allKeys:an,values:jn,pairs:function(n){for(var r=nn(n),t=r.length,e=Array(t),u=0;u<t;u++)e[u]=[r[u],n[r[u]]];return e},invert:_n,functions:wn,methods:wn,extend:xn,extendOwn:Sn,assign:Sn,defaults:On,create:function(n,r){var t=Mn(n);return r&&Sn(t,r),t},clone:En,tap:function(n,r){return r(n),n},get:Tn,has:function(n,r){for(var t=(r=Nn(r)).length,e=0;e<t;e++){var u=r[e];if(!W(n,u))return!1;n=n[u]}return!!t},mapObject:function(n,r,t){r=qn(r,t);for(var e=nn(n),u=e.length,o={},i=0;i<u;i++){var a=e[i];o[a]=r(n[a],a,n)}return o},identity:kn,constant:C,noop:Un,toPath:Bn,property:Rn,propertyOf:function(n){return null==n?Un:function(r){return Tn(n,r)}},matcher:Dn,matches:Dn,times:function(n,r,t){var e=Array(Math.max(0,n));r=Fn(r,t,1);for(var u=0;u<n;u++)e[u]=r(u);return e},random:Wn,now:zn,escape:Cn,unescape:Kn,templateSettings:Jn,template:function(n,r,t){!r&&t&&(r=t),r=On({},r,tn.templateSettings);var e=RegExp([(r.escape||Gn).source,(r.interpolate||Gn).source,(r.evaluate||Gn).source].join("|")+"|$","g"),u=0,o="__p+='";n.replace(e,(function(r,t,e,i,a){return o+=n.slice(u,a).replace(Qn,Xn),u=a+r.length,t?o+="'+\n((__t=("+t+"))==null?'':_.escape(__t))+\n'":e?o+="'+\n((__t=("+e+"))==null?'':__t)+\n'":i&&(o+="';\n"+i+"\n__p+='"),r})),o+="';\n";var i,a=r.variable;if(a){if(!Yn.test(a))throw new Error("variable is not a bare identifier: "+a)}else o="with(obj||{}){\n"+o+"}\n",a="obj";o="var __t,__p='',__j=Array.prototype.join,"+"print=function(){__p+=__j.call(arguments,'');};\n"+o+"return __p;\n";try{i=new Function(a,"_",o)}catch(n){throw n.source=o,n}var f=function(n){return i.call(this,n,tn)};return f.source="function("+a+"){\n"+o+"}",f},result:function(n,r,t){var e=(r=Nn(r)).length;if(!e)return D(t)?t.call(n):t;for(var u=0;u<e;u++){var o=null==n?void 0:n[r[u]];void 0===o&&(o=t,u=e),n=D(o)?o.call(n):o}return n},uniqueId:function(n){var r=++Zn+"";return n?n+r:r},chain:function(n){var r=tn(n);return r._chain=!0,r},iteratee:Pn,partial:rr,bind:tr,bindAll:or,memoize:function(n,r){var t=function(e){var u=t.cache,o=""+(r?r.apply(this,arguments):e);return W(u,o)||(u[o]=n.apply(this,arguments)),u[o]};return t.cache={},t},delay:ir,defer:ar,throttle:function(n,r,t){var e,u,o,i,a=0;t||(t={});var f=function(){a=!1===t.leading?0:zn(),e=null,i=n.apply(u,o),e||(u=o=null)},c=function(){var c=zn();a||!1!==t.leading||(a=c);var l=r-(c-a);return u=this,o=arguments,l<=0||l>r?(e&&(clearTimeout(e),e=null),a=c,i=n.apply(u,o),e||(u=o=null)):e||!1===t.trailing||(e=setTimeout(f,l)),i};return c.cancel=function(){clearTimeout(e),a=0,e=u=o=null},c},debounce:function(n,r,t){var e,u,o,i,a,f=function(){var c=zn()-u;r>c?e=setTimeout(f,r-c):(e=null,t||(i=n.apply(a,o)),e||(o=a=null))},c=j((function(c){return a=this,o=c,u=zn(),e||(e=setTimeout(f,r),t&&(i=n.apply(a,o))),i}));return c.cancel=function(){clearTimeout(e),e=o=a=null},c},wrap:function(n,r){return rr(r,n)},negate:fr,compose:function(){var n=arguments,r=n.length-1;return function(){for(var t=r,e=n[r].apply(this,arguments);t--;)e=n[t].call(this,e);return e}},after:function(n,r){return function(){if(--n<1)return r.apply(this,arguments)}},before:cr,once:lr,findKey:sr,findIndex:vr,findLastIndex:hr,sortedIndex:yr,indexOf:gr,lastIndexOf:br,find:mr,detect:mr,findWhere:function(n,r){return mr(n,Dn(r))},each:jr,forEach:jr,map:_r,collect:_r,reduce:Ar,foldl:Ar,inject:Ar,reduceRight:xr,foldr:xr,filter:Sr,select:Sr,reject:function(n,r,t){return Sr(n,fr(qn(r)),t)},every:Or,all:Or,some:Mr,any:Mr,contains:Er,includes:Er,include:Er,invoke:Br,pluck:Nr,where:function(n,r){return Sr(n,Dn(r))},max:Ir,min:function(n,r,t){var e,u,o=1/0,i=1/0;if(null==r||"number"==typeof r&&"object"!=typeof n[0]&&null!=n)for(var a=0,f=(n=er(n)?n:jn(n)).length;a<f;a++)null!=(e=n[a])&&e<o&&(o=e);else r=qn(r,t),jr(n,(function(n,t,e){((u=r(n,t,e))<i||u===1/0&&o===1/0)&&(o=n,i=u)}));return o},shuffle:function(n){return Tr(n,1/0)},sample:Tr,sortBy:function(n,r,t){var e=0;return r=qn(r,t),Nr(_r(n,(function(n,t,u){return{value:n,index:e++,criteria:r(n,t,u)}})).sort((function(n,r){var t=n.criteria,e=r.criteria;if(t!==e){if(t>e||void 0===t)return 1;if(t<e||void 0===e)return-1}return n.index-r.index})),"value")},groupBy:Dr,indexBy:Rr,countBy:Fr,partition:Vr,toArray:function(n){return n?U(n)?i.call(n):S(n)?n.match(Pr):er(n)?_r(n,kn):jn(n):[]},size:function(n){return null==n?0:er(n)?n.length:nn(n).length},pick:Ur,omit:Wr,first:Lr,head:Lr,take:Lr,initial:zr,last:function(n,r,t){return null==n||n.length<1?null==r||t?void 0:[]:null==r||t?n[n.length-1]:$r(n,Math.max(0,n.length-r))},rest:$r,tail:$r,drop:$r,compact:function(n){return Sr(n,Boolean)},flatten:function(n,r){return ur(n,r,!1)},without:Kr,uniq:Jr,unique:Jr,union:Gr,intersection:function(n){for(var r=[],t=arguments.length,e=0,u=Y(n);e<u;e++){var o=n[e];if(!Er(r,o)){var i;for(i=1;i<t&&Er(arguments[i],o);i++);i===t&&r.push(o)}}return r},difference:Cr,unzip:Hr,transpose:Hr,zip:Qr,object:function(n,r){for(var t={},e=0,u=Y(n);e<u;e++)r?t[n[e]]=r[e]:t[n[e][0]]=n[e][1];return t},range:function(n,r,t){null==r&&(r=n||0,n=0),t||(t=r<n?-1:1);for(var e=Math.max(Math.ceil((r-n)/t),0),u=Array(e),o=0;o<e;o++,n+=t)u[o]=n;return u},chunk:function(n,r){if(null==r||r<1)return[];for(var t=[],e=0,u=n.length;e<u;)t.push(i.call(n,e,e+=r));return t},mixin:Yr,default:tn});return Zr._=Zr,Zr}));