genevalidatorapp 1.5.4 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (45) hide show
  1. checksums.yaml +5 -5
  2. data/README.md +1 -124
  3. data/Rakefile +12 -9
  4. data/genevalidatorapp.gemspec +28 -31
  5. data/lib/genevalidatorapp.rb +2 -2
  6. data/lib/genevalidatorapp/config.rb +1 -1
  7. data/lib/genevalidatorapp/database.rb +3 -3
  8. data/lib/genevalidatorapp/genevalidator.rb +27 -32
  9. data/lib/genevalidatorapp/routes.rb +2 -2
  10. data/lib/genevalidatorapp/server.rb +1 -1
  11. data/lib/genevalidatorapp/version.rb +1 -1
  12. data/public/src/js/plots.js +1 -1
  13. data/public/web_files/js/GV_compiled_js.min.js +33 -14
  14. data/{spec → test}/database/funky_ids/funky_ids.fa +0 -0
  15. data/{spec → test}/database/funky_ids/funky_ids.fa.nhr +0 -0
  16. data/{spec → test}/database/funky_ids/funky_ids.fa.nin +0 -0
  17. data/{spec → test}/database/funky_ids/funky_ids.fa.nog +0 -0
  18. data/{spec → test}/database/funky_ids/funky_ids.fa.nsd +0 -0
  19. data/{spec → test}/database/funky_ids/funky_ids.fa.nsi +0 -0
  20. data/{spec → test}/database/funky_ids/funky_ids.fa.nsq +0 -0
  21. data/{spec → test}/database/sample/proteins/Solenopsis_invicta/Sinvicta2-2-3.prot.subset.fasta +0 -0
  22. data/{spec → test}/database/sample/proteins/Solenopsis_invicta/Sinvicta2-2-3.prot.subset.fasta.phr +0 -0
  23. data/{spec → test}/database/sample/proteins/Solenopsis_invicta/Sinvicta2-2-3.prot.subset.fasta.pin +0 -0
  24. data/{spec → test}/database/sample/proteins/Solenopsis_invicta/Sinvicta2-2-3.prot.subset.fasta.pog +0 -0
  25. data/{spec → test}/database/sample/proteins/Solenopsis_invicta/Sinvicta2-2-3.prot.subset.fasta.psd +0 -0
  26. data/{spec → test}/database/sample/proteins/Solenopsis_invicta/Sinvicta2-2-3.prot.subset.fasta.psi +0 -0
  27. data/{spec → test}/database/sample/proteins/Solenopsis_invicta/Sinvicta2-2-3.prot.subset.fasta.psq +0 -0
  28. data/{spec → test}/database/sample/transcripts/Solenopsis_invicta/Sinvicta2-2-3.cdna.subset.fasta +0 -0
  29. data/{spec → test}/database/sample/transcripts/Solenopsis_invicta/Sinvicta2-2-3.cdna.subset.fasta.nhr +0 -0
  30. data/{spec → test}/database/sample/transcripts/Solenopsis_invicta/Sinvicta2-2-3.cdna.subset.fasta.nin +0 -0
  31. data/{spec → test}/database/sample/transcripts/Solenopsis_invicta/Sinvicta2-2-3.cdna.subset.fasta.nog +0 -0
  32. data/{spec → test}/database/sample/transcripts/Solenopsis_invicta/Sinvicta2-2-3.cdna.subset.fasta.nsd +0 -0
  33. data/{spec → test}/database/sample/transcripts/Solenopsis_invicta/Sinvicta2-2-3.cdna.subset.fasta.nsi +0 -0
  34. data/{spec → test}/database/sample/transcripts/Solenopsis_invicta/Sinvicta2-2-3.cdna.subset.fasta.nsq +0 -0
  35. data/{spec → test}/database/unformatted/Cardiocondyla_obscurior/Cobs1.4.proteins.fa +0 -0
  36. data/{spec → test}/database/without_parse_seqids/without_parse_seqids.fa +0 -0
  37. data/{spec → test}/database/without_parse_seqids/without_parse_seqids.fa.phr +0 -0
  38. data/{spec → test}/database/without_parse_seqids/without_parse_seqids.fa.pin +0 -0
  39. data/{spec → test}/database/without_parse_seqids/without_parse_seqids.fa.psq +0 -0
  40. data/{spec → test}/empty_config.yml +0 -0
  41. data/{spec/route_spec.rb → test/test_route_spec.rb} +22 -23
  42. data/views/results.slim +2 -2
  43. metadata +68 -134
  44. data/bin/genevalidatorapp +0 -284
  45. data/docker/Dockerfile +0 -21
@@ -1,3 +1,3 @@
1
1
  module GeneValidatorApp
2
- VERSION = '1.5.4'
2
+ VERSION = '2.0.0'
3
3
  end
@@ -84,7 +84,7 @@ if (!GV) {
84
84
  if (window.chrome && (window.location.protocol === 'file:')){
85
85
  $('#overview').remove();
86
86
  } else {
87
- var jsonFile = 'web_files/json/overview.json';
87
+ var jsonFile = $("#overview_btn").data('overviewjson');
88
88
  $.getJSON(jsonFile, function( json ) {
89
89
  var overview = $('<span>' + json.less + '</span><br>');
90
90
  var full_overview = $('<span>' + json.evaluation + '</span><br>');
@@ -1,34 +1,53 @@
1
1
  /*! jQuery v2.1.1 | (c) 2005, 2014 jQuery Foundation, Inc. | jquery.org/license */
2
- !function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k={},l=a.document,m="2.1.1",n=function(a,b){return new n.fn.init(a,b)},o=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,p=/^-ms-/,q=/-([\da-z])/gi,r=function(a,b){return b.toUpperCase()};n.fn=n.prototype={jquery:m,constructor:n,selector:"",length:0,toArray:function(){return d.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=n.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return n.each(this,a,b)},map:function(a){return this.pushStack(n.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},n.extend=n.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||n.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(a=arguments[h]))for(b in a)c=g[b],d=a[b],g!==d&&(j&&d&&(n.isPlainObject(d)||(e=n.isArray(d)))?(e?(e=!1,f=c&&n.isArray(c)?c:[]):f=c&&n.isPlainObject(c)?c:{},g[b]=n.extend(j,f,d)):void 0!==d&&(g[b]=d));return g},n.extend({expando:"jQuery"+(m+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===n.type(a)},isArray:Array.isArray,isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){return!n.isArray(a)&&a-parseFloat(a)>=0},isPlainObject:function(a){return"object"!==n.type(a)||a.nodeType||n.isWindow(a)?!1:a.constructor&&!j.call(a.constructor.prototype,"isPrototypeOf")?!1:!0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(a){var b,c=eval;a=n.trim(a),a&&(1===a.indexOf("use strict")?(b=l.createElement("script"),b.text=a,l.head.appendChild(b).parentNode.removeChild(b)):c(a))},camelCase:function(a){return a.replace(p,"ms-").replace(q,r)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=s(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(o,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(s(Object(a))?n.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){return null==b?-1:g.call(b,a,c)},merge:function(a,b){for(var c=+b.length,d=0,e=a.length;c>d;d++)a[e++]=b[d];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=s(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(c=a[b],b=a,a=c),n.isFunction(a)?(e=d.call(arguments,2),f=function(){return a.apply(b||this,e.concat(d.call(arguments)))},f.guid=a.guid=a.guid||n.guid++,f):void 0},now:Date.now,support:k}),n.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function s(a){var b=a.length,c=n.type(a);return"function"===c||n.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var t=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+-new Date,v=a.document,w=0,x=0,y=gb(),z=gb(),A=gb(),B=function(a,b){return a===b&&(l=!0),0},C="undefined",D=1<<31,E={}.hasOwnProperty,F=[],G=F.pop,H=F.push,I=F.push,J=F.slice,K=F.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},L="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",N="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",O=N.replace("w","w#"),P="\\["+M+"*("+N+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+O+"))|)"+M+"*\\]",Q=":("+N+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+P+")*)|.*)\\)|)",R=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),S=new RegExp("^"+M+"*,"+M+"*"),T=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp("="+M+"*([^\\]'\"]*?)"+M+"*\\]","g"),V=new RegExp(Q),W=new RegExp("^"+O+"$"),X={ID:new RegExp("^#("+N+")"),CLASS:new RegExp("^\\.("+N+")"),TAG:new RegExp("^("+N.replace("w","w*")+")"),ATTR:new RegExp("^"+P),PSEUDO:new RegExp("^"+Q),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+L+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/^(?:input|select|textarea|button)$/i,Z=/^h\d$/i,$=/^[^{]+\{\s*\[native \w/,_=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ab=/[+~]/,bb=/'|\\/g,cb=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),db=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)};try{I.apply(F=J.call(v.childNodes),v.childNodes),F[v.childNodes.length].nodeType}catch(eb){I={apply:F.length?function(a,b){H.apply(a,J.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function fb(a,b,d,e){var f,h,j,k,l,o,r,s,w,x;if((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,d=d||[],!a||"string"!=typeof a)return d;if(1!==(k=b.nodeType)&&9!==k)return[];if(p&&!e){if(f=_.exec(a))if(j=f[1]){if(9===k){if(h=b.getElementById(j),!h||!h.parentNode)return d;if(h.id===j)return d.push(h),d}else if(b.ownerDocument&&(h=b.ownerDocument.getElementById(j))&&t(b,h)&&h.id===j)return d.push(h),d}else{if(f[2])return I.apply(d,b.getElementsByTagName(a)),d;if((j=f[3])&&c.getElementsByClassName&&b.getElementsByClassName)return I.apply(d,b.getElementsByClassName(j)),d}if(c.qsa&&(!q||!q.test(a))){if(s=r=u,w=b,x=9===k&&a,1===k&&"object"!==b.nodeName.toLowerCase()){o=g(a),(r=b.getAttribute("id"))?s=r.replace(bb,"\\$&"):b.setAttribute("id",s),s="[id='"+s+"'] ",l=o.length;while(l--)o[l]=s+qb(o[l]);w=ab.test(a)&&ob(b.parentNode)||b,x=o.join(",")}if(x)try{return I.apply(d,w.querySelectorAll(x)),d}catch(y){}finally{r||b.removeAttribute("id")}}}return i(a.replace(R,"$1"),b,d,e)}function gb(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function hb(a){return a[u]=!0,a}function ib(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function jb(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function kb(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||D)-(~a.sourceIndex||D);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function lb(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function mb(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function nb(a){return hb(function(b){return b=+b,hb(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function ob(a){return a&&typeof a.getElementsByTagName!==C&&a}c=fb.support={},f=fb.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=fb.setDocument=function(a){var b,e=a?a.ownerDocument||a:v,g=e.defaultView;return e!==n&&9===e.nodeType&&e.documentElement?(n=e,o=e.documentElement,p=!f(e),g&&g!==g.top&&(g.addEventListener?g.addEventListener("unload",function(){m()},!1):g.attachEvent&&g.attachEvent("onunload",function(){m()})),c.attributes=ib(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ib(function(a){return a.appendChild(e.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=$.test(e.getElementsByClassName)&&ib(function(a){return a.innerHTML="<div class='a'></div><div class='a i'></div>",a.firstChild.className="i",2===a.getElementsByClassName("i").length}),c.getById=ib(function(a){return o.appendChild(a).id=u,!e.getElementsByName||!e.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if(typeof b.getElementById!==C&&p){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){var c=typeof a.getAttributeNode!==C&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return typeof b.getElementsByTagName!==C?b.getElementsByTagName(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return typeof b.getElementsByClassName!==C&&p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=$.test(e.querySelectorAll))&&(ib(function(a){a.innerHTML="<select msallowclip=''><option selected=''></option></select>",a.querySelectorAll("[msallowclip^='']").length&&q.push("[*^$]="+M+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+M+"*(?:value|"+L+")"),a.querySelectorAll(":checked").length||q.push(":checked")}),ib(function(a){var b=e.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+M+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=$.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ib(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",Q)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=$.test(o.compareDocumentPosition),t=b||$.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===e||a.ownerDocument===v&&t(v,a)?-1:b===e||b.ownerDocument===v&&t(v,b)?1:k?K.call(k,a)-K.call(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,f=a.parentNode,g=b.parentNode,h=[a],i=[b];if(!f||!g)return a===e?-1:b===e?1:f?-1:g?1:k?K.call(k,a)-K.call(k,b):0;if(f===g)return kb(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)i.unshift(c);while(h[d]===i[d])d++;return d?kb(h[d],i[d]):h[d]===v?-1:i[d]===v?1:0},e):n},fb.matches=function(a,b){return fb(a,null,null,b)},fb.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(U,"='$1']"),!(!c.matchesSelector||!p||r&&r.test(b)||q&&q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return fb(b,n,null,[a]).length>0},fb.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},fb.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&E.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},fb.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},fb.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=fb.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=fb.selectors={cacheLength:50,createPseudo:hb,match:X,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(cb,db),a[3]=(a[3]||a[4]||a[5]||"").replace(cb,db),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||fb.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&fb.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return X.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&V.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(cb,db).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+M+")"+a+"("+M+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||typeof a.getAttribute!==C&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=fb.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){k=q[u]||(q[u]={}),j=k[a]||[],n=j[0]===w&&j[1],m=j[0]===w&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[w,n,m];break}}else if(s&&(j=(b[u]||(b[u]={}))[a])&&j[0]===w)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(s&&((l[u]||(l[u]={}))[a]=[w,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||fb.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?hb(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=K.call(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:hb(function(a){var b=[],c=[],d=h(a.replace(R,"$1"));return d[u]?hb(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),!c.pop()}}),has:hb(function(a){return function(b){return fb(a,b).length>0}}),contains:hb(function(a){return function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:hb(function(a){return W.test(a||"")||fb.error("unsupported lang: "+a),a=a.replace(cb,db).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Z.test(a.nodeName)},input:function(a){return Y.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:nb(function(){return[0]}),last:nb(function(a,b){return[b-1]}),eq:nb(function(a,b,c){return[0>c?c+b:c]}),even:nb(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:nb(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:nb(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:nb(function(a,b,c){for(var d=0>c?c+b:c;++d<b;)a.push(d);return a})}},d.pseudos.nth=d.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})d.pseudos[b]=lb(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=mb(b);function pb(){}pb.prototype=d.filters=d.pseudos,d.setFilters=new pb,g=fb.tokenize=function(a,b){var c,e,f,g,h,i,j,k=z[a+" "];if(k)return b?0:k.slice(0);h=a,i=[],j=d.preFilter;while(h){(!c||(e=S.exec(h)))&&(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),c=!1,(e=T.exec(h))&&(c=e.shift(),f.push({value:c,type:e[0].replace(R," ")}),h=h.slice(c.length));for(g in d.filter)!(e=X[g].exec(h))||j[g]&&!(e=j[g](e))||(c=e.shift(),f.push({value:c,type:g,matches:e}),h=h.slice(c.length));if(!c)break}return b?h.length:h?fb.error(a):z(a,i).slice(0)};function qb(a){for(var b=0,c=a.length,d="";c>b;b++)d+=a[b].value;return d}function rb(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[u]||(b[u]={}),(h=i[d])&&h[0]===w&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function sb(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function tb(a,b,c){for(var d=0,e=b.length;e>d;d++)fb(a,b[d],c);return c}function ub(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function vb(a,b,c,d,e,f){return d&&!d[u]&&(d=vb(d)),e&&!e[u]&&(e=vb(e,f)),hb(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||tb(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:ub(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=ub(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?K.call(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=ub(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):I.apply(g,r)})}function wb(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=rb(function(a){return a===b},h,!0),l=rb(function(a){return K.call(b,a)>-1},h,!0),m=[function(a,c,d){return!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d))}];f>i;i++)if(c=d.relative[a[i].type])m=[rb(sb(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return vb(i>1&&sb(m),i>1&&qb(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(R,"$1"),c,e>i&&wb(a.slice(i,e)),f>e&&wb(a=a.slice(e)),f>e&&qb(a))}m.push(c)}return sb(m)}function xb(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,m,o,p=0,q="0",r=f&&[],s=[],t=j,u=f||e&&d.find.TAG("*",k),v=w+=null==t?1:Math.random()||.1,x=u.length;for(k&&(j=g!==n&&g);q!==x&&null!=(l=u[q]);q++){if(e&&l){m=0;while(o=a[m++])if(o(l,g,h)){i.push(l);break}k&&(w=v)}c&&((l=!o&&l)&&p--,f&&r.push(l))}if(p+=q,c&&q!==p){m=0;while(o=b[m++])o(r,s,g,h);if(f){if(p>0)while(q--)r[q]||s[q]||(s[q]=G.call(i));s=ub(s)}I.apply(i,s),k&&!f&&s.length>0&&p+b.length>1&&fb.uniqueSort(i)}return k&&(w=v,j=t),r};return c?hb(f):f}return h=fb.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=wb(b[c]),f[u]?d.push(f):e.push(f);f=A(a,xb(e,d)),f.selector=a}return f},i=fb.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(cb,db),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=X.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(cb,db),ab.test(j[0].type)&&ob(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&qb(j),!a)return I.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,ab.test(a)&&ob(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ib(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),ib(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||jb("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ib(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||jb("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ib(function(a){return null==a.getAttribute("disabled")})||jb(L,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),fb}(a);n.find=t,n.expr=t.selectors,n.expr[":"]=n.expr.pseudos,n.unique=t.uniqueSort,n.text=t.getText,n.isXMLDoc=t.isXML,n.contains=t.contains;var u=n.expr.match.needsContext,v=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,w=/^.[^:#\[\.,]*$/;function x(a,b,c){if(n.isFunction(b))return n.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return n.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(w.test(b))return n.filter(b,a,c);b=n.filter(b,a)}return n.grep(a,function(a){return g.call(b,a)>=0!==c})}n.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?n.find.matchesSelector(d,a)?[d]:[]:n.find.matches(a,n.grep(b,function(a){return 1===a.nodeType}))},n.fn.extend({find:function(a){var b,c=this.length,d=[],e=this;if("string"!=typeof a)return this.pushStack(n(a).filter(function(){for(b=0;c>b;b++)if(n.contains(e[b],this))return!0}));for(b=0;c>b;b++)n.find(a,e[b],d);return d=this.pushStack(c>1?n.unique(d):d),d.selector=this.selector?this.selector+" "+a:a,d},filter:function(a){return this.pushStack(x(this,a||[],!1))},not:function(a){return this.pushStack(x(this,a||[],!0))},is:function(a){return!!x(this,"string"==typeof a&&u.test(a)?n(a):a||[],!1).length}});var y,z=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,A=n.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:z.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||y).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof n?b[0]:b,n.merge(this,n.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:l,!0)),v.test(c[1])&&n.isPlainObject(b))for(c in b)n.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}return d=l.getElementById(c[2]),d&&d.parentNode&&(this.length=1,this[0]=d),this.context=l,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):n.isFunction(a)?"undefined"!=typeof y.ready?y.ready(a):a(n):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),n.makeArray(a,this))};A.prototype=n.fn,y=n(l);var B=/^(?:parents|prev(?:Until|All))/,C={children:!0,contents:!0,next:!0,prev:!0};n.extend({dir:function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&n(a).is(c))break;d.push(a)}return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),n.fn.extend({has:function(a){var b=n(a,this),c=b.length;return this.filter(function(){for(var a=0;c>a;a++)if(n.contains(this,b[a]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=u.test(a)||"string"!=typeof a?n(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&n.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?n.unique(f):f)},index:function(a){return a?"string"==typeof a?g.call(n(a),this[0]):g.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(n.unique(n.merge(this.get(),n(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function D(a,b){while((a=a[b])&&1!==a.nodeType);return a}n.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return n.dir(a,"parentNode")},parentsUntil:function(a,b,c){return n.dir(a,"parentNode",c)},next:function(a){return D(a,"nextSibling")},prev:function(a){return D(a,"previousSibling")},nextAll:function(a){return n.dir(a,"nextSibling")},prevAll:function(a){return n.dir(a,"previousSibling")},nextUntil:function(a,b,c){return n.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return n.dir(a,"previousSibling",c)},siblings:function(a){return n.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return n.sibling(a.firstChild)},contents:function(a){return a.contentDocument||n.merge([],a.childNodes)}},function(a,b){n.fn[a]=function(c,d){var e=n.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=n.filter(d,e)),this.length>1&&(C[a]||n.unique(e),B.test(a)&&e.reverse()),this.pushStack(e)}});var E=/\S+/g,F={};function G(a){var b=F[a]={};return n.each(a.match(E)||[],function(a,c){b[c]=!0}),b}n.Callbacks=function(a){a="string"==typeof a?F[a]||G(a):n.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(b=a.memory&&l,c=!0,g=e||0,e=0,f=h.length,d=!0;h&&f>g;g++)if(h[g].apply(l[0],l[1])===!1&&a.stopOnFalse){b=!1;break}d=!1,h&&(i?i.length&&j(i.shift()):b?h=[]:k.disable())},k={add:function(){if(h){var c=h.length;!function g(b){n.each(b,function(b,c){var d=n.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&g(c)})}(arguments),d?f=h.length:b&&(e=c,j(b))}return this},remove:function(){return h&&n.each(arguments,function(a,b){var c;while((c=n.inArray(b,h,c))>-1)h.splice(c,1),d&&(f>=c&&f--,g>=c&&g--)}),this},has:function(a){return a?n.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],f=0,this},disable:function(){return h=i=b=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,b||k.disable(),this},locked:function(){return!i},fireWith:function(a,b){return!h||c&&!i||(b=b||[],b=[a,b.slice?b.slice():b],d?i.push(b):j(b)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!c}};return k},n.extend({Deferred:function(a){var b=[["resolve","done",n.Callbacks("once memory"),"resolved"],["reject","fail",n.Callbacks("once memory"),"rejected"],["notify","progress",n.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return n.Deferred(function(c){n.each(b,function(b,f){var g=n.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&n.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?n.extend(a,d):d}},e={};return d.pipe=d.then,n.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=d.call(arguments),e=c.length,f=1!==e||a&&n.isFunction(a.promise)?e:0,g=1===f?a:n.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e>b;b++)c[b]&&n.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var H;n.fn.ready=function(a){return n.ready.promise().done(a),this},n.extend({isReady:!1,readyWait:1,holdReady:function(a){a?n.readyWait++:n.ready(!0)},ready:function(a){(a===!0?--n.readyWait:n.isReady)||(n.isReady=!0,a!==!0&&--n.readyWait>0||(H.resolveWith(l,[n]),n.fn.triggerHandler&&(n(l).triggerHandler("ready"),n(l).off("ready"))))}});function I(){l.removeEventListener("DOMContentLoaded",I,!1),a.removeEventListener("load",I,!1),n.ready()}n.ready.promise=function(b){return H||(H=n.Deferred(),"complete"===l.readyState?setTimeout(n.ready):(l.addEventListener("DOMContentLoaded",I,!1),a.addEventListener("load",I,!1))),H.promise(b)},n.ready.promise();var J=n.access=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===n.type(c)){e=!0;for(h in c)n.access(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,n.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(n(a),c)})),b))for(;i>h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f};n.acceptData=function(a){return 1===a.nodeType||9===a.nodeType||!+a.nodeType};function K(){Object.defineProperty(this.cache={},0,{get:function(){return{}}}),this.expando=n.expando+Math.random()}K.uid=1,K.accepts=n.acceptData,K.prototype={key:function(a){if(!K.accepts(a))return 0;var b={},c=a[this.expando];if(!c){c=K.uid++;try{b[this.expando]={value:c},Object.defineProperties(a,b)}catch(d){b[this.expando]=c,n.extend(a,b)}}return this.cache[c]||(this.cache[c]={}),c},set:function(a,b,c){var d,e=this.key(a),f=this.cache[e];if("string"==typeof b)f[b]=c;else if(n.isEmptyObject(f))n.extend(this.cache[e],b);else for(d in b)f[d]=b[d];return f},get:function(a,b){var c=this.cache[this.key(a)];return void 0===b?c:c[b]},access:function(a,b,c){var d;return void 0===b||b&&"string"==typeof b&&void 0===c?(d=this.get(a,b),void 0!==d?d:this.get(a,n.camelCase(b))):(this.set(a,b,c),void 0!==c?c:b)},remove:function(a,b){var c,d,e,f=this.key(a),g=this.cache[f];if(void 0===b)this.cache[f]={};else{n.isArray(b)?d=b.concat(b.map(n.camelCase)):(e=n.camelCase(b),b in g?d=[b,e]:(d=e,d=d in g?[d]:d.match(E)||[])),c=d.length;while(c--)delete g[d[c]]}},hasData:function(a){return!n.isEmptyObject(this.cache[a[this.expando]]||{})},discard:function(a){a[this.expando]&&delete this.cache[a[this.expando]]}};var L=new K,M=new K,N=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,O=/([A-Z])/g;function P(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d="data-"+b.replace(O,"-$1").toLowerCase(),c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:N.test(c)?n.parseJSON(c):c}catch(e){}M.set(a,b,c)}else c=void 0;return c}n.extend({hasData:function(a){return M.hasData(a)||L.hasData(a)},data:function(a,b,c){return M.access(a,b,c)},removeData:function(a,b){M.remove(a,b)
3
- },_data:function(a,b,c){return L.access(a,b,c)},_removeData:function(a,b){L.remove(a,b)}}),n.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=M.get(f),1===f.nodeType&&!L.get(f,"hasDataAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=n.camelCase(d.slice(5)),P(f,d,e[d])));L.set(f,"hasDataAttrs",!0)}return e}return"object"==typeof a?this.each(function(){M.set(this,a)}):J(this,function(b){var c,d=n.camelCase(a);if(f&&void 0===b){if(c=M.get(f,a),void 0!==c)return c;if(c=M.get(f,d),void 0!==c)return c;if(c=P(f,d,void 0),void 0!==c)return c}else this.each(function(){var c=M.get(this,d);M.set(this,d,b),-1!==a.indexOf("-")&&void 0!==c&&M.set(this,a,b)})},null,b,arguments.length>1,null,!0)},removeData:function(a){return this.each(function(){M.remove(this,a)})}}),n.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=L.get(a,b),c&&(!d||n.isArray(c)?d=L.access(a,b,n.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=n.queue(a,b),d=c.length,e=c.shift(),f=n._queueHooks(a,b),g=function(){n.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return L.get(a,c)||L.access(a,c,{empty:n.Callbacks("once memory").add(function(){L.remove(a,[b+"queue",c])})})}}),n.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length<c?n.queue(this[0],a):void 0===b?this:this.each(function(){var c=n.queue(this,a,b);n._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&n.dequeue(this,a)})},dequeue:function(a){return this.each(function(){n.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=n.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};"string"!=typeof a&&(b=a,a=void 0),a=a||"fx";while(g--)c=L.get(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}});var Q=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,R=["Top","Right","Bottom","Left"],S=function(a,b){return a=b||a,"none"===n.css(a,"display")||!n.contains(a.ownerDocument,a)},T=/^(?:checkbox|radio)$/i;!function(){var a=l.createDocumentFragment(),b=a.appendChild(l.createElement("div")),c=l.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),k.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="<textarea>x</textarea>",k.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var U="undefined";k.focusinBubbles="onfocusin"in a;var V=/^key/,W=/^(?:mouse|pointer|contextmenu)|click/,X=/^(?:focusinfocus|focusoutblur)$/,Y=/^([^.]*)(?:\.(.+)|)$/;function Z(){return!0}function $(){return!1}function _(){try{return l.activeElement}catch(a){}}n.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=L.get(a);if(r){c.handler&&(f=c,c=f.handler,e=f.selector),c.guid||(c.guid=n.guid++),(i=r.events)||(i=r.events={}),(g=r.handle)||(g=r.handle=function(b){return typeof n!==U&&n.event.triggered!==b.type?n.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(E)||[""],j=b.length;while(j--)h=Y.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o&&(l=n.event.special[o]||{},o=(e?l.delegateType:l.bindType)||o,l=n.event.special[o]||{},k=n.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&n.expr.match.needsContext.test(e),namespace:p.join(".")},f),(m=i[o])||(m=i[o]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,p,g)!==!1||a.addEventListener&&a.addEventListener(o,g,!1)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),n.event.global[o]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=L.hasData(a)&&L.get(a);if(r&&(i=r.events)){b=(b||"").match(E)||[""],j=b.length;while(j--)if(h=Y.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=n.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,m=i[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&q!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||n.removeEvent(a,o,r.handle),delete i[o])}else for(o in i)n.event.remove(a,o+b[j],c,d,!0);n.isEmptyObject(i)&&(delete r.handle,L.remove(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,m,o,p=[d||l],q=j.call(b,"type")?b.type:b,r=j.call(b,"namespace")?b.namespace.split("."):[];if(g=h=d=d||l,3!==d.nodeType&&8!==d.nodeType&&!X.test(q+n.event.triggered)&&(q.indexOf(".")>=0&&(r=q.split("."),q=r.shift(),r.sort()),k=q.indexOf(":")<0&&"on"+q,b=b[n.expando]?b:new n.Event(q,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=r.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+r.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:n.makeArray(c,[b]),o=n.event.special[q]||{},e||!o.trigger||o.trigger.apply(d,c)!==!1)){if(!e&&!o.noBubble&&!n.isWindow(d)){for(i=o.delegateType||q,X.test(i+q)||(g=g.parentNode);g;g=g.parentNode)p.push(g),h=g;h===(d.ownerDocument||l)&&p.push(h.defaultView||h.parentWindow||a)}f=0;while((g=p[f++])&&!b.isPropagationStopped())b.type=f>1?i:o.bindType||q,m=(L.get(g,"events")||{})[b.type]&&L.get(g,"handle"),m&&m.apply(g,c),m=k&&g[k],m&&m.apply&&n.acceptData(g)&&(b.result=m.apply(g,c),b.result===!1&&b.preventDefault());return b.type=q,e||b.isDefaultPrevented()||o._default&&o._default.apply(p.pop(),c)!==!1||!n.acceptData(d)||k&&n.isFunction(d[q])&&!n.isWindow(d)&&(h=d[k],h&&(d[k]=null),n.event.triggered=q,d[q](),n.event.triggered=void 0,h&&(d[k]=h)),b.result}},dispatch:function(a){a=n.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(L.get(this,"events")||{})[a.type]||[],k=n.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=n.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,c=0;while((g=f.handlers[c++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(g.namespace))&&(a.handleObj=g,a.data=g.data,e=((n.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==e&&(a.result=e)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!==this;i=i.parentNode||this)if(i.disabled!==!0||"click"!==a.type){for(d=[],c=0;h>c;c++)f=b[c],e=f.selector+" ",void 0===d[e]&&(d[e]=f.needsContext?n(e,this).index(i)>=0:n.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h<b.length&&g.push({elem:this,handlers:b.slice(h)}),g},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){return null==a.which&&(a.which=null!=b.charCode?b.charCode:b.keyCode),a}},mouseHooks:{props:"button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,b){var c,d,e,f=b.button;return null==a.pageX&&null!=b.clientX&&(c=a.target.ownerDocument||l,d=c.documentElement,e=c.body,a.pageX=b.clientX+(d&&d.scrollLeft||e&&e.scrollLeft||0)-(d&&d.clientLeft||e&&e.clientLeft||0),a.pageY=b.clientY+(d&&d.scrollTop||e&&e.scrollTop||0)-(d&&d.clientTop||e&&e.clientTop||0)),a.which||void 0===f||(a.which=1&f?1:2&f?3:4&f?2:0),a}},fix:function(a){if(a[n.expando])return a;var b,c,d,e=a.type,f=a,g=this.fixHooks[e];g||(this.fixHooks[e]=g=W.test(e)?this.mouseHooks:V.test(e)?this.keyHooks:{}),d=g.props?this.props.concat(g.props):this.props,a=new n.Event(f),b=d.length;while(b--)c=d[b],a[c]=f[c];return a.target||(a.target=l),3===a.target.nodeType&&(a.target=a.target.parentNode),g.filter?g.filter(a,f):a},special:{load:{noBubble:!0},focus:{trigger:function(){return this!==_()&&this.focus?(this.focus(),!1):void 0},delegateType:"focusin"},blur:{trigger:function(){return this===_()&&this.blur?(this.blur(),!1):void 0},delegateType:"focusout"},click:{trigger:function(){return"checkbox"===this.type&&this.click&&n.nodeName(this,"input")?(this.click(),!1):void 0},_default:function(a){return n.nodeName(a.target,"a")}},beforeunload:{postDispatch:function(a){void 0!==a.result&&a.originalEvent&&(a.originalEvent.returnValue=a.result)}}},simulate:function(a,b,c,d){var e=n.extend(new n.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?n.event.trigger(e,null,b):n.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},n.removeEvent=function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)},n.Event=function(a,b){return this instanceof n.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?Z:$):this.type=a,b&&n.extend(this,b),this.timeStamp=a&&a.timeStamp||n.now(),void(this[n.expando]=!0)):new n.Event(a,b)},n.Event.prototype={isDefaultPrevented:$,isPropagationStopped:$,isImmediatePropagationStopped:$,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=Z,a&&a.preventDefault&&a.preventDefault()},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=Z,a&&a.stopPropagation&&a.stopPropagation()},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=Z,a&&a.stopImmediatePropagation&&a.stopImmediatePropagation(),this.stopPropagation()}},n.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(a,b){n.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return(!e||e!==d&&!n.contains(d,e))&&(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),k.focusinBubbles||n.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){n.event.simulate(b,a.target,n.event.fix(a),!0)};n.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=L.access(d,b);e||d.addEventListener(a,c,!0),L.access(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=L.access(d,b)-1;e?L.access(d,b,e):(d.removeEventListener(a,c,!0),L.remove(d,b))}}}),n.fn.extend({on:function(a,b,c,d,e){var f,g;if("object"==typeof a){"string"!=typeof b&&(c=c||b,b=void 0);for(g in a)this.on(g,b,c,a[g],e);return this}if(null==c&&null==d?(d=b,c=b=void 0):null==d&&("string"==typeof b?(d=c,c=void 0):(d=c,c=b,b=void 0)),d===!1)d=$;else if(!d)return this;return 1===e&&(f=d,d=function(a){return n().off(a),f.apply(this,arguments)},d.guid=f.guid||(f.guid=n.guid++)),this.each(function(){n.event.add(this,a,d,c,b)})},one:function(a,b,c,d){return this.on(a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,n(a.delegateTarget).off(d.namespace?d.origType+"."+d.namespace:d.origType,d.selector,d.handler),this;if("object"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return(b===!1||"function"==typeof b)&&(c=b,b=void 0),c===!1&&(c=$),this.each(function(){n.event.remove(this,a,c,b)})},trigger:function(a,b){return this.each(function(){n.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];return c?n.event.trigger(a,b,c,!0):void 0}});var ab=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,bb=/<([\w:]+)/,cb=/<|&#?\w+;/,db=/<(?:script|style|link)/i,eb=/checked\s*(?:[^=]|=\s*.checked.)/i,fb=/^$|\/(?:java|ecma)script/i,gb=/^true\/(.*)/,hb=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,ib={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};ib.optgroup=ib.option,ib.tbody=ib.tfoot=ib.colgroup=ib.caption=ib.thead,ib.th=ib.td;function jb(a,b){return n.nodeName(a,"table")&&n.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function kb(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function lb(a){var b=gb.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function mb(a,b){for(var c=0,d=a.length;d>c;c++)L.set(a[c],"globalEval",!b||L.get(b[c],"globalEval"))}function nb(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(L.hasData(a)&&(f=L.access(a),g=L.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;d>c;c++)n.event.add(b,e,j[e][c])}M.hasData(a)&&(h=M.access(a),i=n.extend({},h),M.set(b,i))}}function ob(a,b){var c=a.getElementsByTagName?a.getElementsByTagName(b||"*"):a.querySelectorAll?a.querySelectorAll(b||"*"):[];return void 0===b||b&&n.nodeName(a,b)?n.merge([a],c):c}function pb(a,b){var c=b.nodeName.toLowerCase();"input"===c&&T.test(a.type)?b.checked=a.checked:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}n.extend({clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=n.contains(a.ownerDocument,a);if(!(k.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||n.isXMLDoc(a)))for(g=ob(h),f=ob(a),d=0,e=f.length;e>d;d++)pb(f[d],g[d]);if(b)if(c)for(f=f||ob(a),g=g||ob(h),d=0,e=f.length;e>d;d++)nb(f[d],g[d]);else nb(a,h);return g=ob(h,"script"),g.length>0&&mb(g,!i&&ob(a,"script")),h},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,k=b.createDocumentFragment(),l=[],m=0,o=a.length;o>m;m++)if(e=a[m],e||0===e)if("object"===n.type(e))n.merge(l,e.nodeType?[e]:e);else if(cb.test(e)){f=f||k.appendChild(b.createElement("div")),g=(bb.exec(e)||["",""])[1].toLowerCase(),h=ib[g]||ib._default,f.innerHTML=h[1]+e.replace(ab,"<$1></$2>")+h[2],j=h[0];while(j--)f=f.lastChild;n.merge(l,f.childNodes),f=k.firstChild,f.textContent=""}else l.push(b.createTextNode(e));k.textContent="",m=0;while(e=l[m++])if((!d||-1===n.inArray(e,d))&&(i=n.contains(e.ownerDocument,e),f=ob(k.appendChild(e),"script"),i&&mb(f),c)){j=0;while(e=f[j++])fb.test(e.type||"")&&c.push(e)}return k},cleanData:function(a){for(var b,c,d,e,f=n.event.special,g=0;void 0!==(c=a[g]);g++){if(n.acceptData(c)&&(e=c[L.expando],e&&(b=L.cache[e]))){if(b.events)for(d in b.events)f[d]?n.event.remove(c,d):n.removeEvent(c,d,b.handle);L.cache[e]&&delete L.cache[e]}delete M.cache[c[M.expando]]}}}),n.fn.extend({text:function(a){return J(this,function(a){return void 0===a?n.text(this):this.empty().each(function(){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&(this.textContent=a)})},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=jb(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=jb(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?n.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||n.cleanData(ob(c)),c.parentNode&&(b&&n.contains(c.ownerDocument,c)&&mb(ob(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(n.cleanData(ob(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return n.clone(this,a,b)})},html:function(a){return J(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!db.test(a)&&!ib[(bb.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(ab,"<$1></$2>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(n.cleanData(ob(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,n.cleanData(ob(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,l=this.length,m=this,o=l-1,p=a[0],q=n.isFunction(p);if(q||l>1&&"string"==typeof p&&!k.checkClone&&eb.test(p))return this.each(function(c){var d=m.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(l&&(c=n.buildFragment(a,this[0].ownerDocument,!1,this),d=c.firstChild,1===c.childNodes.length&&(c=d),d)){for(f=n.map(ob(c,"script"),kb),g=f.length;l>j;j++)h=c,j!==o&&(h=n.clone(h,!0,!0),g&&n.merge(f,ob(h,"script"))),b.call(this[j],h,j);if(g)for(i=f[f.length-1].ownerDocument,n.map(f,lb),j=0;g>j;j++)h=f[j],fb.test(h.type||"")&&!L.access(h,"globalEval")&&n.contains(i,h)&&(h.src?n._evalUrl&&n._evalUrl(h.src):n.globalEval(h.textContent.replace(hb,"")))}return this}}),n.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){n.fn[a]=function(a){for(var c,d=[],e=n(a),g=e.length-1,h=0;g>=h;h++)c=h===g?this:this.clone(!0),n(e[h])[b](c),f.apply(d,c.get());return this.pushStack(d)}});var qb,rb={};function sb(b,c){var d,e=n(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:n.css(e[0],"display");return e.detach(),f}function tb(a){var b=l,c=rb[a];return c||(c=sb(a,b),"none"!==c&&c||(qb=(qb||n("<iframe frameborder='0' width='0' height='0'/>")).appendTo(b.documentElement),b=qb[0].contentDocument,b.write(),b.close(),c=sb(a,b),qb.detach()),rb[a]=c),c}var ub=/^margin/,vb=new RegExp("^("+Q+")(?!px)[a-z%]+$","i"),wb=function(a){return a.ownerDocument.defaultView.getComputedStyle(a,null)};function xb(a,b,c){var d,e,f,g,h=a.style;return c=c||wb(a),c&&(g=c.getPropertyValue(b)||c[b]),c&&(""!==g||n.contains(a.ownerDocument,a)||(g=n.style(a,b)),vb.test(g)&&ub.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f)),void 0!==g?g+"":g}function yb(a,b){return{get:function(){return a()?void delete this.get:(this.get=b).apply(this,arguments)}}}!function(){var b,c,d=l.documentElement,e=l.createElement("div"),f=l.createElement("div");if(f.style){f.style.backgroundClip="content-box",f.cloneNode(!0).style.backgroundClip="",k.clearCloneStyle="content-box"===f.style.backgroundClip,e.style.cssText="border:0;width:0;height:0;top:0;left:-9999px;margin-top:1px;position:absolute",e.appendChild(f);function g(){f.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;margin-top:1%;top:1%;border:1px;padding:1px;width:4px;position:absolute",f.innerHTML="",d.appendChild(e);var g=a.getComputedStyle(f,null);b="1%"!==g.top,c="4px"===g.width,d.removeChild(e)}a.getComputedStyle&&n.extend(k,{pixelPosition:function(){return g(),b},boxSizingReliable:function(){return null==c&&g(),c},reliableMarginRight:function(){var b,c=f.appendChild(l.createElement("div"));return c.style.cssText=f.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",c.style.marginRight=c.style.width="0",f.style.width="1px",d.appendChild(e),b=!parseFloat(a.getComputedStyle(c,null).marginRight),d.removeChild(e),b}})}}(),n.swap=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e};var zb=/^(none|table(?!-c[ea]).+)/,Ab=new RegExp("^("+Q+")(.*)$","i"),Bb=new RegExp("^([+-])=("+Q+")","i"),Cb={position:"absolute",visibility:"hidden",display:"block"},Db={letterSpacing:"0",fontWeight:"400"},Eb=["Webkit","O","Moz","ms"];function Fb(a,b){if(b in a)return b;var c=b[0].toUpperCase()+b.slice(1),d=b,e=Eb.length;while(e--)if(b=Eb[e]+c,b in a)return b;return d}function Gb(a,b,c){var d=Ab.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[2]||"px"):b}function Hb(a,b,c,d,e){for(var f=c===(d?"border":"content")?4:"width"===b?1:0,g=0;4>f;f+=2)"margin"===c&&(g+=n.css(a,c+R[f],!0,e)),d?("content"===c&&(g-=n.css(a,"padding"+R[f],!0,e)),"margin"!==c&&(g-=n.css(a,"border"+R[f]+"Width",!0,e))):(g+=n.css(a,"padding"+R[f],!0,e),"padding"!==c&&(g+=n.css(a,"border"+R[f]+"Width",!0,e)));return g}function Ib(a,b,c){var d=!0,e="width"===b?a.offsetWidth:a.offsetHeight,f=wb(a),g="border-box"===n.css(a,"boxSizing",!1,f);if(0>=e||null==e){if(e=xb(a,b,f),(0>e||null==e)&&(e=a.style[b]),vb.test(e))return e;d=g&&(k.boxSizingReliable()||e===a.style[b]),e=parseFloat(e)||0}return e+Hb(a,b,c||(g?"border":"content"),d,f)+"px"}function Jb(a,b){for(var c,d,e,f=[],g=0,h=a.length;h>g;g++)d=a[g],d.style&&(f[g]=L.get(d,"olddisplay"),c=d.style.display,b?(f[g]||"none"!==c||(d.style.display=""),""===d.style.display&&S(d)&&(f[g]=L.access(d,"olddisplay",tb(d.nodeName)))):(e=S(d),"none"===c&&e||L.set(d,"olddisplay",e?c:n.css(d,"display"))));for(g=0;h>g;g++)d=a[g],d.style&&(b&&"none"!==d.style.display&&""!==d.style.display||(d.style.display=b?f[g]||"":"none"));return a}n.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=xb(a,"opacity");return""===c?"1":c}}}},cssNumber:{columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":"cssFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=n.camelCase(b),i=a.style;return b=n.cssProps[h]||(n.cssProps[h]=Fb(i,h)),g=n.cssHooks[b]||n.cssHooks[h],void 0===c?g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:i[b]:(f=typeof c,"string"===f&&(e=Bb.exec(c))&&(c=(e[1]+1)*e[2]+parseFloat(n.css(a,b)),f="number"),null!=c&&c===c&&("number"!==f||n.cssNumber[h]||(c+="px"),k.clearCloneStyle||""!==c||0!==b.indexOf("background")||(i[b]="inherit"),g&&"set"in g&&void 0===(c=g.set(a,c,d))||(i[b]=c)),void 0)}},css:function(a,b,c,d){var e,f,g,h=n.camelCase(b);return b=n.cssProps[h]||(n.cssProps[h]=Fb(a.style,h)),g=n.cssHooks[b]||n.cssHooks[h],g&&"get"in g&&(e=g.get(a,!0,c)),void 0===e&&(e=xb(a,b,d)),"normal"===e&&b in Db&&(e=Db[b]),""===c||c?(f=parseFloat(e),c===!0||n.isNumeric(f)?f||0:e):e}}),n.each(["height","width"],function(a,b){n.cssHooks[b]={get:function(a,c,d){return c?zb.test(n.css(a,"display"))&&0===a.offsetWidth?n.swap(a,Cb,function(){return Ib(a,b,d)}):Ib(a,b,d):void 0},set:function(a,c,d){var e=d&&wb(a);return Gb(a,c,d?Hb(a,b,d,"border-box"===n.css(a,"boxSizing",!1,e),e):0)}}}),n.cssHooks.marginRight=yb(k.reliableMarginRight,function(a,b){return b?n.swap(a,{display:"inline-block"},xb,[a,"marginRight"]):void 0}),n.each({margin:"",padding:"",border:"Width"},function(a,b){n.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];4>d;d++)e[a+R[d]+b]=f[d]||f[d-2]||f[0];return e}},ub.test(a)||(n.cssHooks[a+b].set=Gb)}),n.fn.extend({css:function(a,b){return J(this,function(a,b,c){var d,e,f={},g=0;if(n.isArray(b)){for(d=wb(a),e=b.length;e>g;g++)f[b[g]]=n.css(a,b[g],!1,d);return f}return void 0!==c?n.style(a,b,c):n.css(a,b)},a,b,arguments.length>1)},show:function(){return Jb(this,!0)},hide:function(){return Jb(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){S(this)?n(this).show():n(this).hide()})}});function Kb(a,b,c,d,e){return new Kb.prototype.init(a,b,c,d,e)}n.Tween=Kb,Kb.prototype={constructor:Kb,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||"swing",this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(n.cssNumber[c]?"":"px")},cur:function(){var a=Kb.propHooks[this.prop];return a&&a.get?a.get(this):Kb.propHooks._default.get(this)},run:function(a){var b,c=Kb.propHooks[this.prop];return this.pos=b=this.options.duration?n.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):Kb.propHooks._default.set(this),this}},Kb.prototype.init.prototype=Kb.prototype,Kb.propHooks={_default:{get:function(a){var b;return null==a.elem[a.prop]||a.elem.style&&null!=a.elem.style[a.prop]?(b=n.css(a.elem,a.prop,""),b&&"auto"!==b?b:0):a.elem[a.prop]},set:function(a){n.fx.step[a.prop]?n.fx.step[a.prop](a):a.elem.style&&(null!=a.elem.style[n.cssProps[a.prop]]||n.cssHooks[a.prop])?n.style(a.elem,a.prop,a.now+a.unit):a.elem[a.prop]=a.now}}},Kb.propHooks.scrollTop=Kb.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},n.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2}},n.fx=Kb.prototype.init,n.fx.step={};var Lb,Mb,Nb=/^(?:toggle|show|hide)$/,Ob=new RegExp("^(?:([+-])=|)("+Q+")([a-z%]*)$","i"),Pb=/queueHooks$/,Qb=[Vb],Rb={"*":[function(a,b){var c=this.createTween(a,b),d=c.cur(),e=Ob.exec(b),f=e&&e[3]||(n.cssNumber[a]?"":"px"),g=(n.cssNumber[a]||"px"!==f&&+d)&&Ob.exec(n.css(c.elem,a)),h=1,i=20;if(g&&g[3]!==f){f=f||g[3],e=e||[],g=+d||1;do h=h||".5",g/=h,n.style(c.elem,a,g+f);while(h!==(h=c.cur()/d)&&1!==h&&--i)}return e&&(g=c.start=+g||+d||0,c.unit=f,c.end=e[1]?g+(e[1]+1)*e[2]:+e[2]),c}]};function Sb(){return setTimeout(function(){Lb=void 0}),Lb=n.now()}function Tb(a,b){var c,d=0,e={height:a};for(b=b?1:0;4>d;d+=2-b)c=R[d],e["margin"+c]=e["padding"+c]=a;return b&&(e.opacity=e.width=a),e}function Ub(a,b,c){for(var d,e=(Rb[b]||[]).concat(Rb["*"]),f=0,g=e.length;g>f;f++)if(d=e[f].call(c,b,a))return d}function Vb(a,b,c){var d,e,f,g,h,i,j,k,l=this,m={},o=a.style,p=a.nodeType&&S(a),q=L.get(a,"fxshow");c.queue||(h=n._queueHooks(a,"fx"),null==h.unqueued&&(h.unqueued=0,i=h.empty.fire,h.empty.fire=function(){h.unqueued||i()}),h.unqueued++,l.always(function(){l.always(function(){h.unqueued--,n.queue(a,"fx").length||h.empty.fire()})})),1===a.nodeType&&("height"in b||"width"in b)&&(c.overflow=[o.overflow,o.overflowX,o.overflowY],j=n.css(a,"display"),k="none"===j?L.get(a,"olddisplay")||tb(a.nodeName):j,"inline"===k&&"none"===n.css(a,"float")&&(o.display="inline-block")),c.overflow&&(o.overflow="hidden",l.always(function(){o.overflow=c.overflow[0],o.overflowX=c.overflow[1],o.overflowY=c.overflow[2]}));for(d in b)if(e=b[d],Nb.exec(e)){if(delete b[d],f=f||"toggle"===e,e===(p?"hide":"show")){if("show"!==e||!q||void 0===q[d])continue;p=!0}m[d]=q&&q[d]||n.style(a,d)}else j=void 0;if(n.isEmptyObject(m))"inline"===("none"===j?tb(a.nodeName):j)&&(o.display=j);else{q?"hidden"in q&&(p=q.hidden):q=L.access(a,"fxshow",{}),f&&(q.hidden=!p),p?n(a).show():l.done(function(){n(a).hide()}),l.done(function(){var b;L.remove(a,"fxshow");for(b in m)n.style(a,b,m[b])});for(d in m)g=Ub(p?q[d]:0,d,l),d in q||(q[d]=g.start,p&&(g.end=g.start,g.start="width"===d||"height"===d?1:0))}}function Wb(a,b){var c,d,e,f,g;for(c in a)if(d=n.camelCase(c),e=b[d],f=a[c],n.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=n.cssHooks[d],g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function Xb(a,b,c){var d,e,f=0,g=Qb.length,h=n.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=Lb||Sb(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;i>g;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),1>f&&i?c:(h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:n.extend({},b),opts:n.extend(!0,{specialEasing:{}},c),originalProperties:b,originalOptions:c,startTime:Lb||Sb(),duration:c.duration,tweens:[],createTween:function(b,c){var d=n.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=0,d=b?j.tweens.length:0;if(e)return this;for(e=!0;d>c;c++)j.tweens[c].run(1);return b?h.resolveWith(a,[j,b]):h.rejectWith(a,[j,b]),this}}),k=j.props;for(Wb(k,j.opts.specialEasing);g>f;f++)if(d=Qb[f].call(j,a,k,j.opts))return d;return n.map(k,Ub,j),n.isFunction(j.opts.start)&&j.opts.start.call(a,j),n.fx.timer(n.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}n.Animation=n.extend(Xb,{tweener:function(a,b){n.isFunction(a)?(b=a,a=["*"]):a=a.split(" ");for(var c,d=0,e=a.length;e>d;d++)c=a[d],Rb[c]=Rb[c]||[],Rb[c].unshift(b)},prefilter:function(a,b){b?Qb.unshift(a):Qb.push(a)}}),n.speed=function(a,b,c){var d=a&&"object"==typeof a?n.extend({},a):{complete:c||!c&&b||n.isFunction(a)&&a,duration:a,easing:c&&b||b&&!n.isFunction(b)&&b};return d.duration=n.fx.off?0:"number"==typeof d.duration?d.duration:d.duration in n.fx.speeds?n.fx.speeds[d.duration]:n.fx.speeds._default,(null==d.queue||d.queue===!0)&&(d.queue="fx"),d.old=d.complete,d.complete=function(){n.isFunction(d.old)&&d.old.call(this),d.queue&&n.dequeue(this,d.queue)},d},n.fn.extend({fadeTo:function(a,b,c,d){return this.filter(S).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=n.isEmptyObject(a),f=n.speed(b,c,d),g=function(){var b=Xb(this,n.extend({},a),f);(e||L.get(this,"finish"))&&b.stop(!0)};return g.finish=g,e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return"string"!=typeof a&&(c=b,b=a,a=void 0),b&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,e=null!=a&&a+"queueHooks",f=n.timers,g=L.get(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&Pb.test(e)&&d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&&f[e].queue!==a||(f[e].anim.stop(c),b=!1,f.splice(e,1));(b||!c)&&n.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||"fx"),this.each(function(){var b,c=L.get(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=n.timers,g=d?d.length:0;for(c.finish=!0,n.queue(this,a,[]),e&&e.stop&&e.stop.call(this,!0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!0),f.splice(b,1));for(b=0;g>b;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),n.each(["toggle","show","hide"],function(a,b){var c=n.fn[b];n.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(Tb(b,!0),a,d,e)}}),n.each({slideDown:Tb("show"),slideUp:Tb("hide"),slideToggle:Tb("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){n.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),n.timers=[],n.fx.tick=function(){var a,b=0,c=n.timers;for(Lb=n.now();b<c.length;b++)a=c[b],a()||c[b]!==a||c.splice(b--,1);c.length||n.fx.stop(),Lb=void 0},n.fx.timer=function(a){n.timers.push(a),a()?n.fx.start():n.timers.pop()},n.fx.interval=13,n.fx.start=function(){Mb||(Mb=setInterval(n.fx.tick,n.fx.interval))},n.fx.stop=function(){clearInterval(Mb),Mb=null},n.fx.speeds={slow:600,fast:200,_default:400},n.fn.delay=function(a,b){return a=n.fx?n.fx.speeds[a]||a:a,b=b||"fx",this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},function(){var a=l.createElement("input"),b=l.createElement("select"),c=b.appendChild(l.createElement("option"));a.type="checkbox",k.checkOn=""!==a.value,k.optSelected=c.selected,b.disabled=!0,k.optDisabled=!c.disabled,a=l.createElement("input"),a.value="t",a.type="radio",k.radioValue="t"===a.value}();var Yb,Zb,$b=n.expr.attrHandle;n.fn.extend({attr:function(a,b){return J(this,n.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){n.removeAttr(this,a)})}}),n.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(a&&3!==f&&8!==f&&2!==f)return typeof a.getAttribute===U?n.prop(a,b,c):(1===f&&n.isXMLDoc(a)||(b=b.toLowerCase(),d=n.attrHooks[b]||(n.expr.match.bool.test(b)?Zb:Yb)),void 0===c?d&&"get"in d&&null!==(e=d.get(a,b))?e:(e=n.find.attr(a,b),null==e?void 0:e):null!==c?d&&"set"in d&&void 0!==(e=d.set(a,c,b))?e:(a.setAttribute(b,c+""),c):void n.removeAttr(a,b))
4
- },removeAttr:function(a,b){var c,d,e=0,f=b&&b.match(E);if(f&&1===a.nodeType)while(c=f[e++])d=n.propFix[c]||c,n.expr.match.bool.test(c)&&(a[d]=!1),a.removeAttribute(c)},attrHooks:{type:{set:function(a,b){if(!k.radioValue&&"radio"===b&&n.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}}}),Zb={set:function(a,b,c){return b===!1?n.removeAttr(a,c):a.setAttribute(c,c),c}},n.each(n.expr.match.bool.source.match(/\w+/g),function(a,b){var c=$b[b]||n.find.attr;$b[b]=function(a,b,d){var e,f;return d||(f=$b[b],$b[b]=e,e=null!=c(a,b,d)?b.toLowerCase():null,$b[b]=f),e}});var _b=/^(?:input|select|textarea|button)$/i;n.fn.extend({prop:function(a,b){return J(this,n.prop,a,b,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[n.propFix[a]||a]})}}),n.extend({propFix:{"for":"htmlFor","class":"className"},prop:function(a,b,c){var d,e,f,g=a.nodeType;if(a&&3!==g&&8!==g&&2!==g)return f=1!==g||!n.isXMLDoc(a),f&&(b=n.propFix[b]||b,e=n.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){return a.hasAttribute("tabindex")||_b.test(a.nodeName)||a.href?a.tabIndex:-1}}}}),k.optSelected||(n.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null}}),n.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){n.propFix[this.toLowerCase()]=this});var ac=/[\t\r\n\f]/g;n.fn.extend({addClass:function(a){var b,c,d,e,f,g,h="string"==typeof a&&a,i=0,j=this.length;if(n.isFunction(a))return this.each(function(b){n(this).addClass(a.call(this,b,this.className))});if(h)for(b=(a||"").match(E)||[];j>i;i++)if(c=this[i],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(ac," "):" ")){f=0;while(e=b[f++])d.indexOf(" "+e+" ")<0&&(d+=e+" ");g=n.trim(d),c.className!==g&&(c.className=g)}return this},removeClass:function(a){var b,c,d,e,f,g,h=0===arguments.length||"string"==typeof a&&a,i=0,j=this.length;if(n.isFunction(a))return this.each(function(b){n(this).removeClass(a.call(this,b,this.className))});if(h)for(b=(a||"").match(E)||[];j>i;i++)if(c=this[i],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(ac," "):"")){f=0;while(e=b[f++])while(d.indexOf(" "+e+" ")>=0)d=d.replace(" "+e+" "," ");g=a?n.trim(d):"",c.className!==g&&(c.className=g)}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):this.each(n.isFunction(a)?function(c){n(this).toggleClass(a.call(this,c,this.className,b),b)}:function(){if("string"===c){var b,d=0,e=n(this),f=a.match(E)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else(c===U||"boolean"===c)&&(this.className&&L.set(this,"__className__",this.className),this.className=this.className||a===!1?"":L.get(this,"__className__")||"")})},hasClass:function(a){for(var b=" "+a+" ",c=0,d=this.length;d>c;c++)if(1===this[c].nodeType&&(" "+this[c].className+" ").replace(ac," ").indexOf(b)>=0)return!0;return!1}});var bc=/\r/g;n.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=n.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,n(this).val()):a,null==e?e="":"number"==typeof e?e+="":n.isArray(e)&&(e=n.map(e,function(a){return null==a?"":a+""})),b=n.valHooks[this.type]||n.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=n.valHooks[e.type]||n.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(bc,""):null==c?"":c)}}}),n.extend({valHooks:{option:{get:function(a){var b=n.find.attr(a,"value");return null!=b?b:n.trim(n.text(a))}},select:{get:function(a){for(var b,c,d=a.options,e=a.selectedIndex,f="select-one"===a.type||0>e,g=f?null:[],h=f?e+1:d.length,i=0>e?h:f?e:0;h>i;i++)if(c=d[i],!(!c.selected&&i!==e||(k.optDisabled?c.disabled:null!==c.getAttribute("disabled"))||c.parentNode.disabled&&n.nodeName(c.parentNode,"optgroup"))){if(b=n(c).val(),f)return b;g.push(b)}return g},set:function(a,b){var c,d,e=a.options,f=n.makeArray(b),g=e.length;while(g--)d=e[g],(d.selected=n.inArray(d.value,f)>=0)&&(c=!0);return c||(a.selectedIndex=-1),f}}}}),n.each(["radio","checkbox"],function(){n.valHooks[this]={set:function(a,b){return n.isArray(b)?a.checked=n.inArray(n(a).val(),b)>=0:void 0}},k.checkOn||(n.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})}),n.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){n.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),n.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)}});var cc=n.now(),dc=/\?/;n.parseJSON=function(a){return JSON.parse(a+"")},n.parseXML=function(a){var b,c;if(!a||"string"!=typeof a)return null;try{c=new DOMParser,b=c.parseFromString(a,"text/xml")}catch(d){b=void 0}return(!b||b.getElementsByTagName("parsererror").length)&&n.error("Invalid XML: "+a),b};var ec,fc,gc=/#.*$/,hc=/([?&])_=[^&]*/,ic=/^(.*?):[ \t]*([^\r\n]*)$/gm,jc=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,kc=/^(?:GET|HEAD)$/,lc=/^\/\//,mc=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,nc={},oc={},pc="*/".concat("*");try{fc=location.href}catch(qc){fc=l.createElement("a"),fc.href="",fc=fc.href}ec=mc.exec(fc.toLowerCase())||[];function rc(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(E)||[];if(n.isFunction(c))while(d=f[e++])"+"===d[0]?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function sc(a,b,c,d){var e={},f=a===oc;function g(h){var i;return e[h]=!0,n.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function tc(a,b){var c,d,e=n.ajaxSettings.flatOptions||{};for(c in b)void 0!==b[c]&&((e[c]?a:d||(d={}))[c]=b[c]);return d&&n.extend(!0,a,d),a}function uc(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===d&&(d=a.mimeType||b.getResponseHeader("Content-Type"));if(d)for(e in h)if(h[e]&&h[e].test(d)){i.unshift(e);break}if(i[0]in c)f=i[0];else{for(e in c){if(!i[0]||a.converters[e+" "+i[0]]){f=e;break}g||(g=e)}f=f||g}return f?(f!==i[0]&&i.unshift(f),c[f]):void 0}function vc(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}n.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:fc,type:"GET",isLocal:jc.test(ec[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":pc,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":n.parseJSON,"text xml":n.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?tc(tc(a,n.ajaxSettings),b):tc(n.ajaxSettings,a)},ajaxPrefilter:rc(nc),ajaxTransport:rc(oc),ajax:function(a,b){"object"==typeof a&&(b=a,a=void 0),b=b||{};var c,d,e,f,g,h,i,j,k=n.ajaxSetup({},b),l=k.context||k,m=k.context&&(l.nodeType||l.jquery)?n(l):n.event,o=n.Deferred(),p=n.Callbacks("once memory"),q=k.statusCode||{},r={},s={},t=0,u="canceled",v={readyState:0,getResponseHeader:function(a){var b;if(2===t){if(!f){f={};while(b=ic.exec(e))f[b[1].toLowerCase()]=b[2]}b=f[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return 2===t?e:null},setRequestHeader:function(a,b){var c=a.toLowerCase();return t||(a=s[c]=s[c]||a,r[a]=b),this},overrideMimeType:function(a){return t||(k.mimeType=a),this},statusCode:function(a){var b;if(a)if(2>t)for(b in a)q[b]=[q[b],a[b]];else v.always(a[v.status]);return this},abort:function(a){var b=a||u;return c&&c.abort(b),x(0,b),this}};if(o.promise(v).complete=p.add,v.success=v.done,v.error=v.fail,k.url=((a||k.url||fc)+"").replace(gc,"").replace(lc,ec[1]+"//"),k.type=b.method||b.type||k.method||k.type,k.dataTypes=n.trim(k.dataType||"*").toLowerCase().match(E)||[""],null==k.crossDomain&&(h=mc.exec(k.url.toLowerCase()),k.crossDomain=!(!h||h[1]===ec[1]&&h[2]===ec[2]&&(h[3]||("http:"===h[1]?"80":"443"))===(ec[3]||("http:"===ec[1]?"80":"443")))),k.data&&k.processData&&"string"!=typeof k.data&&(k.data=n.param(k.data,k.traditional)),sc(nc,k,b,v),2===t)return v;i=k.global,i&&0===n.active++&&n.event.trigger("ajaxStart"),k.type=k.type.toUpperCase(),k.hasContent=!kc.test(k.type),d=k.url,k.hasContent||(k.data&&(d=k.url+=(dc.test(d)?"&":"?")+k.data,delete k.data),k.cache===!1&&(k.url=hc.test(d)?d.replace(hc,"$1_="+cc++):d+(dc.test(d)?"&":"?")+"_="+cc++)),k.ifModified&&(n.lastModified[d]&&v.setRequestHeader("If-Modified-Since",n.lastModified[d]),n.etag[d]&&v.setRequestHeader("If-None-Match",n.etag[d])),(k.data&&k.hasContent&&k.contentType!==!1||b.contentType)&&v.setRequestHeader("Content-Type",k.contentType),v.setRequestHeader("Accept",k.dataTypes[0]&&k.accepts[k.dataTypes[0]]?k.accepts[k.dataTypes[0]]+("*"!==k.dataTypes[0]?", "+pc+"; q=0.01":""):k.accepts["*"]);for(j in k.headers)v.setRequestHeader(j,k.headers[j]);if(k.beforeSend&&(k.beforeSend.call(l,v,k)===!1||2===t))return v.abort();u="abort";for(j in{success:1,error:1,complete:1})v[j](k[j]);if(c=sc(oc,k,b,v)){v.readyState=1,i&&m.trigger("ajaxSend",[v,k]),k.async&&k.timeout>0&&(g=setTimeout(function(){v.abort("timeout")},k.timeout));try{t=1,c.send(r,x)}catch(w){if(!(2>t))throw w;x(-1,w)}}else x(-1,"No Transport");function x(a,b,f,h){var j,r,s,u,w,x=b;2!==t&&(t=2,g&&clearTimeout(g),c=void 0,e=h||"",v.readyState=a>0?4:0,j=a>=200&&300>a||304===a,f&&(u=uc(k,v,f)),u=vc(k,u,v,j),j?(k.ifModified&&(w=v.getResponseHeader("Last-Modified"),w&&(n.lastModified[d]=w),w=v.getResponseHeader("etag"),w&&(n.etag[d]=w)),204===a||"HEAD"===k.type?x="nocontent":304===a?x="notmodified":(x=u.state,r=u.data,s=u.error,j=!s)):(s=x,(a||!x)&&(x="error",0>a&&(a=0))),v.status=a,v.statusText=(b||x)+"",j?o.resolveWith(l,[r,x,v]):o.rejectWith(l,[v,x,s]),v.statusCode(q),q=void 0,i&&m.trigger(j?"ajaxSuccess":"ajaxError",[v,k,j?r:s]),p.fireWith(l,[v,x]),i&&(m.trigger("ajaxComplete",[v,k]),--n.active||n.event.trigger("ajaxStop")))}return v},getJSON:function(a,b,c){return n.get(a,b,c,"json")},getScript:function(a,b){return n.get(a,void 0,b,"script")}}),n.each(["get","post"],function(a,b){n[b]=function(a,c,d,e){return n.isFunction(c)&&(e=e||d,d=c,c=void 0),n.ajax({url:a,type:b,dataType:e,data:c,success:d})}}),n.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){n.fn[b]=function(a){return this.on(b,a)}}),n._evalUrl=function(a){return n.ajax({url:a,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})},n.fn.extend({wrapAll:function(a){var b;return n.isFunction(a)?this.each(function(b){n(this).wrapAll(a.call(this,b))}):(this[0]&&(b=n(a,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstElementChild)a=a.firstElementChild;return a}).append(this)),this)},wrapInner:function(a){return this.each(n.isFunction(a)?function(b){n(this).wrapInner(a.call(this,b))}:function(){var b=n(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=n.isFunction(a);return this.each(function(c){n(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){n.nodeName(this,"body")||n(this).replaceWith(this.childNodes)}).end()}}),n.expr.filters.hidden=function(a){return a.offsetWidth<=0&&a.offsetHeight<=0},n.expr.filters.visible=function(a){return!n.expr.filters.hidden(a)};var wc=/%20/g,xc=/\[\]$/,yc=/\r?\n/g,zc=/^(?:submit|button|image|reset|file)$/i,Ac=/^(?:input|select|textarea|keygen)/i;function Bc(a,b,c,d){var e;if(n.isArray(b))n.each(b,function(b,e){c||xc.test(a)?d(a,e):Bc(a+"["+("object"==typeof e?b:"")+"]",e,c,d)});else if(c||"object"!==n.type(b))d(a,b);else for(e in b)Bc(a+"["+e+"]",b[e],c,d)}n.param=function(a,b){var c,d=[],e=function(a,b){b=n.isFunction(b)?b():null==b?"":b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};if(void 0===b&&(b=n.ajaxSettings&&n.ajaxSettings.traditional),n.isArray(a)||a.jquery&&!n.isPlainObject(a))n.each(a,function(){e(this.name,this.value)});else for(c in a)Bc(c,a[c],b,e);return d.join("&").replace(wc,"+")},n.fn.extend({serialize:function(){return n.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=n.prop(this,"elements");return a?n.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!n(this).is(":disabled")&&Ac.test(this.nodeName)&&!zc.test(a)&&(this.checked||!T.test(a))}).map(function(a,b){var c=n(this).val();return null==c?null:n.isArray(c)?n.map(c,function(a){return{name:b.name,value:a.replace(yc,"\r\n")}}):{name:b.name,value:c.replace(yc,"\r\n")}}).get()}}),n.ajaxSettings.xhr=function(){try{return new XMLHttpRequest}catch(a){}};var Cc=0,Dc={},Ec={0:200,1223:204},Fc=n.ajaxSettings.xhr();a.ActiveXObject&&n(a).on("unload",function(){for(var a in Dc)Dc[a]()}),k.cors=!!Fc&&"withCredentials"in Fc,k.ajax=Fc=!!Fc,n.ajaxTransport(function(a){var b;return k.cors||Fc&&!a.crossDomain?{send:function(c,d){var e,f=a.xhr(),g=++Cc;if(f.open(a.type,a.url,a.async,a.username,a.password),a.xhrFields)for(e in a.xhrFields)f[e]=a.xhrFields[e];a.mimeType&&f.overrideMimeType&&f.overrideMimeType(a.mimeType),a.crossDomain||c["X-Requested-With"]||(c["X-Requested-With"]="XMLHttpRequest");for(e in c)f.setRequestHeader(e,c[e]);b=function(a){return function(){b&&(delete Dc[g],b=f.onload=f.onerror=null,"abort"===a?f.abort():"error"===a?d(f.status,f.statusText):d(Ec[f.status]||f.status,f.statusText,"string"==typeof f.responseText?{text:f.responseText}:void 0,f.getAllResponseHeaders()))}},f.onload=b(),f.onerror=b("error"),b=Dc[g]=b("abort");try{f.send(a.hasContent&&a.data||null)}catch(h){if(b)throw h}},abort:function(){b&&b()}}:void 0}),n.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(a){return n.globalEval(a),a}}}),n.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET")}),n.ajaxTransport("script",function(a){if(a.crossDomain){var b,c;return{send:function(d,e){b=n("<script>").prop({async:!0,charset:a.scriptCharset,src:a.url}).on("load error",c=function(a){b.remove(),c=null,a&&e("error"===a.type?404:200,a.type)}),l.head.appendChild(b[0])},abort:function(){c&&c()}}}});var Gc=[],Hc=/(=)\?(?=&|$)|\?\?/;n.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=Gc.pop()||n.expando+"_"+cc++;return this[a]=!0,a}}),n.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(Hc.test(b.url)?"url":"string"==typeof b.data&&!(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&Hc.test(b.data)&&"data");return h||"jsonp"===b.dataTypes[0]?(e=b.jsonpCallback=n.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(Hc,"$1"+e):b.jsonp!==!1&&(b.url+=(dc.test(b.url)?"&":"?")+b.jsonp+"="+e),b.converters["script json"]=function(){return g||n.error(e+" was not called"),g[0]},b.dataTypes[0]="json",f=a[e],a[e]=function(){g=arguments},d.always(function(){a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,Gc.push(e)),g&&n.isFunction(f)&&f(g[0]),g=f=void 0}),"script"):void 0}),n.parseHTML=function(a,b,c){if(!a||"string"!=typeof a)return null;"boolean"==typeof b&&(c=b,b=!1),b=b||l;var d=v.exec(a),e=!c&&[];return d?[b.createElement(d[1])]:(d=n.buildFragment([a],b,e),e&&e.length&&n(e).remove(),n.merge([],d.childNodes))};var Ic=n.fn.load;n.fn.load=function(a,b,c){if("string"!=typeof a&&Ic)return Ic.apply(this,arguments);var d,e,f,g=this,h=a.indexOf(" ");return h>=0&&(d=n.trim(a.slice(h)),a=a.slice(0,h)),n.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(e="POST"),g.length>0&&n.ajax({url:a,type:e,dataType:"html",data:b}).done(function(a){f=arguments,g.html(d?n("<div>").append(n.parseHTML(a)).find(d):a)}).complete(c&&function(a,b){g.each(c,f||[a.responseText,b,a])}),this},n.expr.filters.animated=function(a){return n.grep(n.timers,function(b){return a===b.elem}).length};var Jc=a.document.documentElement;function Kc(a){return n.isWindow(a)?a:9===a.nodeType&&a.defaultView}n.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=n.css(a,"position"),l=n(a),m={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=n.css(a,"top"),i=n.css(a,"left"),j=("absolute"===k||"fixed"===k)&&(f+i).indexOf("auto")>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),n.isFunction(b)&&(b=b.call(a,c,h)),null!=b.top&&(m.top=b.top-h.top+g),null!=b.left&&(m.left=b.left-h.left+e),"using"in b?b.using.call(a,m):l.css(m)}},n.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){n.offset.setOffset(this,a,b)});var b,c,d=this[0],e={top:0,left:0},f=d&&d.ownerDocument;if(f)return b=f.documentElement,n.contains(b,d)?(typeof d.getBoundingClientRect!==U&&(e=d.getBoundingClientRect()),c=Kc(f),{top:e.top+c.pageYOffset-b.clientTop,left:e.left+c.pageXOffset-b.clientLeft}):e},position:function(){if(this[0]){var a,b,c=this[0],d={top:0,left:0};return"fixed"===n.css(c,"position")?b=c.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),n.nodeName(a[0],"html")||(d=a.offset()),d.top+=n.css(a[0],"borderTopWidth",!0),d.left+=n.css(a[0],"borderLeftWidth",!0)),{top:b.top-d.top-n.css(c,"marginTop",!0),left:b.left-d.left-n.css(c,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||Jc;while(a&&!n.nodeName(a,"html")&&"static"===n.css(a,"position"))a=a.offsetParent;return a||Jc})}}),n.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(b,c){var d="pageYOffset"===c;n.fn[b]=function(e){return J(this,function(b,e,f){var g=Kc(b);return void 0===f?g?g[c]:b[e]:void(g?g.scrollTo(d?a.pageXOffset:f,d?f:a.pageYOffset):b[e]=f)},b,e,arguments.length,null)}}),n.each(["top","left"],function(a,b){n.cssHooks[b]=yb(k.pixelPosition,function(a,c){return c?(c=xb(a,b),vb.test(c)?n(a).position()[b]+"px":c):void 0})}),n.each({Height:"height",Width:"width"},function(a,b){n.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){n.fn[d]=function(d,e){var f=arguments.length&&(c||"boolean"!=typeof d),g=c||(d===!0||e===!0?"margin":"border");return J(this,function(b,c,d){var e;return n.isWindow(b)?b.document.documentElement["client"+a]:9===b.nodeType?(e=b.documentElement,Math.max(b.body["scroll"+a],e["scroll"+a],b.body["offset"+a],e["offset"+a],e["client"+a])):void 0===d?n.css(b,c,g):n.style(b,c,d,g)},b,f?d:void 0,f,null)}})}),n.fn.size=function(){return this.length},n.fn.andSelf=n.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return n});var Lc=a.jQuery,Mc=a.$;return n.noConflict=function(b){return a.$===n&&(a.$=Mc),b&&a.jQuery===n&&(a.jQuery=Lc),n},typeof b===U&&(a.jQuery=a.$=n),n});
2
+ !function (a, b) { "object" == typeof module && "object" == typeof module.exports ? module.exports = a.document ? b(a, !0) : function (a) { if (!a.document) throw new Error("jQuery requires a window with a document"); return b(a) } : b(a) }("undefined" != typeof window ? window : this, function (a, b) {
3
+ var c = [], d = c.slice, e = c.concat, f = c.push, g = c.indexOf, h = {}, i = h.toString, j = h.hasOwnProperty, k = {}, l = a.document, m = "2.1.1", n = function (a, b) { return new n.fn.init(a, b) }, o = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, p = /^-ms-/, q = /-([\da-z])/gi, r = function (a, b) { return b.toUpperCase() }; n.fn = n.prototype = { jquery: m, constructor: n, selector: "", length: 0, toArray: function () { return d.call(this) }, get: function (a) { return null != a ? 0 > a ? this[a + this.length] : this[a] : d.call(this) }, pushStack: function (a) { var b = n.merge(this.constructor(), a); return b.prevObject = this, b.context = this.context, b }, each: function (a, b) { return n.each(this, a, b) }, map: function (a) { return this.pushStack(n.map(this, function (b, c) { return a.call(b, c, b) })) }, slice: function () { return this.pushStack(d.apply(this, arguments)) }, first: function () { return this.eq(0) }, last: function () { return this.eq(-1) }, eq: function (a) { var b = this.length, c = +a + (0 > a ? b : 0); return this.pushStack(c >= 0 && b > c ? [this[c]] : []) }, end: function () { return this.prevObject || this.constructor(null) }, push: f, sort: c.sort, splice: c.splice }, n.extend = n.fn.extend = function () { var a, b, c, d, e, f, g = arguments[0] || {}, h = 1, i = arguments.length, j = !1; for ("boolean" == typeof g && (j = g, g = arguments[h] || {}, h++), "object" == typeof g || n.isFunction(g) || (g = {}), h === i && (g = this, h--); i > h; h++)if (null != (a = arguments[h])) for (b in a) c = g[b], d = a[b], g !== d && (j && d && (n.isPlainObject(d) || (e = n.isArray(d))) ? (e ? (e = !1, f = c && n.isArray(c) ? c : []) : f = c && n.isPlainObject(c) ? c : {}, g[b] = n.extend(j, f, d)) : void 0 !== d && (g[b] = d)); return g }, n.extend({ expando: "jQuery" + (m + Math.random()).replace(/\D/g, ""), isReady: !0, error: function (a) { throw new Error(a) }, noop: function () { }, isFunction: function (a) { return "function" === n.type(a) }, isArray: Array.isArray, isWindow: function (a) { return null != a && a === a.window }, isNumeric: function (a) { return !n.isArray(a) && a - parseFloat(a) >= 0 }, isPlainObject: function (a) { return "object" !== n.type(a) || a.nodeType || n.isWindow(a) ? !1 : a.constructor && !j.call(a.constructor.prototype, "isPrototypeOf") ? !1 : !0 }, isEmptyObject: function (a) { var b; for (b in a) return !1; return !0 }, type: function (a) { return null == a ? a + "" : "object" == typeof a || "function" == typeof a ? h[i.call(a)] || "object" : typeof a }, globalEval: function (a) { var b, c = eval; a = n.trim(a), a && (1 === a.indexOf("use strict") ? (b = l.createElement("script"), b.text = a, l.head.appendChild(b).parentNode.removeChild(b)) : c(a)) }, camelCase: function (a) { return a.replace(p, "ms-").replace(q, r) }, nodeName: function (a, b) { return a.nodeName && a.nodeName.toLowerCase() === b.toLowerCase() }, each: function (a, b, c) { var d, e = 0, f = a.length, g = s(a); if (c) { if (g) { for (; f > e; e++)if (d = b.apply(a[e], c), d === !1) break } else for (e in a) if (d = b.apply(a[e], c), d === !1) break } else if (g) { for (; f > e; e++)if (d = b.call(a[e], e, a[e]), d === !1) break } else for (e in a) if (d = b.call(a[e], e, a[e]), d === !1) break; return a }, trim: function (a) { return null == a ? "" : (a + "").replace(o, "") }, makeArray: function (a, b) { var c = b || []; return null != a && (s(Object(a)) ? n.merge(c, "string" == typeof a ? [a] : a) : f.call(c, a)), c }, inArray: function (a, b, c) { return null == b ? -1 : g.call(b, a, c) }, merge: function (a, b) { for (var c = +b.length, d = 0, e = a.length; c > d; d++)a[e++] = b[d]; return a.length = e, a }, grep: function (a, b, c) { for (var d, e = [], f = 0, g = a.length, h = !c; g > f; f++)d = !b(a[f], f), d !== h && e.push(a[f]); return e }, map: function (a, b, c) { var d, f = 0, g = a.length, h = s(a), i = []; if (h) for (; g > f; f++)d = b(a[f], f, c), null != d && i.push(d); else for (f in a) d = b(a[f], f, c), null != d && i.push(d); return e.apply([], i) }, guid: 1, proxy: function (a, b) { var c, e, f; return "string" == typeof b && (c = a[b], b = a, a = c), n.isFunction(a) ? (e = d.call(arguments, 2), f = function () { return a.apply(b || this, e.concat(d.call(arguments))) }, f.guid = a.guid = a.guid || n.guid++ , f) : void 0 }, now: Date.now, support: k }), n.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), function (a, b) { h["[object " + b + "]"] = b.toLowerCase() }); function s(a) { var b = a.length, c = n.type(a); return "function" === c || n.isWindow(a) ? !1 : 1 === a.nodeType && b ? !0 : "array" === c || 0 === b || "number" == typeof b && b > 0 && b - 1 in a } var t = function (a) { var b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u = "sizzle" + -new Date, v = a.document, w = 0, x = 0, y = gb(), z = gb(), A = gb(), B = function (a, b) { return a === b && (l = !0), 0 }, C = "undefined", D = 1 << 31, E = {}.hasOwnProperty, F = [], G = F.pop, H = F.push, I = F.push, J = F.slice, K = F.indexOf || function (a) { for (var b = 0, c = this.length; c > b; b++)if (this[b] === a) return b; return -1 }, L = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", M = "[\\x20\\t\\r\\n\\f]", N = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+", O = N.replace("w", "w#"), P = "\\[" + M + "*(" + N + ")(?:" + M + "*([*^$|!~]?=)" + M + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + O + "))|)" + M + "*\\]", Q = ":(" + N + ")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|" + P + ")*)|.*)\\)|)", R = new RegExp("^" + M + "+|((?:^|[^\\\\])(?:\\\\.)*)" + M + "+$", "g"), S = new RegExp("^" + M + "*," + M + "*"), T = new RegExp("^" + M + "*([>+~]|" + M + ")" + M + "*"), U = new RegExp("=" + M + "*([^\\]'\"]*?)" + M + "*\\]", "g"), V = new RegExp(Q), W = new RegExp("^" + O + "$"), X = { ID: new RegExp("^#(" + N + ")"), CLASS: new RegExp("^\\.(" + N + ")"), TAG: new RegExp("^(" + N.replace("w", "w*") + ")"), ATTR: new RegExp("^" + P), PSEUDO: new RegExp("^" + Q), CHILD: new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + M + "*(even|odd|(([+-]|)(\\d*)n|)" + M + "*(?:([+-]|)" + M + "*(\\d+)|))" + M + "*\\)|)", "i"), bool: new RegExp("^(?:" + L + ")$", "i"), needsContext: new RegExp("^" + M + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + M + "*((?:-\\d)?\\d*)" + M + "*\\)|)(?=[^-]|$)", "i") }, Y = /^(?:input|select|textarea|button)$/i, Z = /^h\d$/i, $ = /^[^{]+\{\s*\[native \w/, _ = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, ab = /[+~]/, bb = /'|\\/g, cb = new RegExp("\\\\([\\da-f]{1,6}" + M + "?|(" + M + ")|.)", "ig"), db = function (a, b, c) { var d = "0x" + b - 65536; return d !== d || c ? b : 0 > d ? String.fromCharCode(d + 65536) : String.fromCharCode(d >> 10 | 55296, 1023 & d | 56320) }; try { I.apply(F = J.call(v.childNodes), v.childNodes), F[v.childNodes.length].nodeType } catch (eb) { I = { apply: F.length ? function (a, b) { H.apply(a, J.call(b)) } : function (a, b) { var c = a.length, d = 0; while (a[c++] = b[d++]); a.length = c - 1 } } } function fb(a, b, d, e) { var f, h, j, k, l, o, r, s, w, x; if ((b ? b.ownerDocument || b : v) !== n && m(b), b = b || n, d = d || [], !a || "string" != typeof a) return d; if (1 !== (k = b.nodeType) && 9 !== k) return []; if (p && !e) { if (f = _.exec(a)) if (j = f[1]) { if (9 === k) { if (h = b.getElementById(j), !h || !h.parentNode) return d; if (h.id === j) return d.push(h), d } else if (b.ownerDocument && (h = b.ownerDocument.getElementById(j)) && t(b, h) && h.id === j) return d.push(h), d } else { if (f[2]) return I.apply(d, b.getElementsByTagName(a)), d; if ((j = f[3]) && c.getElementsByClassName && b.getElementsByClassName) return I.apply(d, b.getElementsByClassName(j)), d } if (c.qsa && (!q || !q.test(a))) { if (s = r = u, w = b, x = 9 === k && a, 1 === k && "object" !== b.nodeName.toLowerCase()) { o = g(a), (r = b.getAttribute("id")) ? s = r.replace(bb, "\\$&") : b.setAttribute("id", s), s = "[id='" + s + "'] ", l = o.length; while (l--) o[l] = s + qb(o[l]); w = ab.test(a) && ob(b.parentNode) || b, x = o.join(",") } if (x) try { return I.apply(d, w.querySelectorAll(x)), d } catch (y) { } finally { r || b.removeAttribute("id") } } } return i(a.replace(R, "$1"), b, d, e) } function gb() { var a = []; function b(c, e) { return a.push(c + " ") > d.cacheLength && delete b[a.shift()], b[c + " "] = e } return b } function hb(a) { return a[u] = !0, a } function ib(a) { var b = n.createElement("div"); try { return !!a(b) } catch (c) { return !1 } finally { b.parentNode && b.parentNode.removeChild(b), b = null } } function jb(a, b) { var c = a.split("|"), e = a.length; while (e--) d.attrHandle[c[e]] = b } function kb(a, b) { var c = b && a, d = c && 1 === a.nodeType && 1 === b.nodeType && (~b.sourceIndex || D) - (~a.sourceIndex || D); if (d) return d; if (c) while (c = c.nextSibling) if (c === b) return -1; return a ? 1 : -1 } function lb(a) { return function (b) { var c = b.nodeName.toLowerCase(); return "input" === c && b.type === a } } function mb(a) { return function (b) { var c = b.nodeName.toLowerCase(); return ("input" === c || "button" === c) && b.type === a } } function nb(a) { return hb(function (b) { return b = +b, hb(function (c, d) { var e, f = a([], c.length, b), g = f.length; while (g--) c[e = f[g]] && (c[e] = !(d[e] = c[e])) }) }) } function ob(a) { return a && typeof a.getElementsByTagName !== C && a } c = fb.support = {}, f = fb.isXML = function (a) { var b = a && (a.ownerDocument || a).documentElement; return b ? "HTML" !== b.nodeName : !1 }, m = fb.setDocument = function (a) { var b, e = a ? a.ownerDocument || a : v, g = e.defaultView; return e !== n && 9 === e.nodeType && e.documentElement ? (n = e, o = e.documentElement, p = !f(e), g && g !== g.top && (g.addEventListener ? g.addEventListener("unload", function () { m() }, !1) : g.attachEvent && g.attachEvent("onunload", function () { m() })), c.attributes = ib(function (a) { return a.className = "i", !a.getAttribute("className") }), c.getElementsByTagName = ib(function (a) { return a.appendChild(e.createComment("")), !a.getElementsByTagName("*").length }), c.getElementsByClassName = $.test(e.getElementsByClassName) && ib(function (a) { return a.innerHTML = "<div class='a'></div><div class='a i'></div>", a.firstChild.className = "i", 2 === a.getElementsByClassName("i").length }), c.getById = ib(function (a) { return o.appendChild(a).id = u, !e.getElementsByName || !e.getElementsByName(u).length }), c.getById ? (d.find.ID = function (a, b) { if (typeof b.getElementById !== C && p) { var c = b.getElementById(a); return c && c.parentNode ? [c] : [] } }, d.filter.ID = function (a) { var b = a.replace(cb, db); return function (a) { return a.getAttribute("id") === b } }) : (delete d.find.ID, d.filter.ID = function (a) { var b = a.replace(cb, db); return function (a) { var c = typeof a.getAttributeNode !== C && a.getAttributeNode("id"); return c && c.value === b } }), d.find.TAG = c.getElementsByTagName ? function (a, b) { return typeof b.getElementsByTagName !== C ? b.getElementsByTagName(a) : void 0 } : function (a, b) { var c, d = [], e = 0, f = b.getElementsByTagName(a); if ("*" === a) { while (c = f[e++]) 1 === c.nodeType && d.push(c); return d } return f }, d.find.CLASS = c.getElementsByClassName && function (a, b) { return typeof b.getElementsByClassName !== C && p ? b.getElementsByClassName(a) : void 0 }, r = [], q = [], (c.qsa = $.test(e.querySelectorAll)) && (ib(function (a) { a.innerHTML = "<select msallowclip=''><option selected=''></option></select>", a.querySelectorAll("[msallowclip^='']").length && q.push("[*^$]=" + M + "*(?:''|\"\")"), a.querySelectorAll("[selected]").length || q.push("\\[" + M + "*(?:value|" + L + ")"), a.querySelectorAll(":checked").length || q.push(":checked") }), ib(function (a) { var b = e.createElement("input"); b.setAttribute("type", "hidden"), a.appendChild(b).setAttribute("name", "D"), a.querySelectorAll("[name=d]").length && q.push("name" + M + "*[*^$|!~]?="), a.querySelectorAll(":enabled").length || q.push(":enabled", ":disabled"), a.querySelectorAll("*,:x"), q.push(",.*:") })), (c.matchesSelector = $.test(s = o.matches || o.webkitMatchesSelector || o.mozMatchesSelector || o.oMatchesSelector || o.msMatchesSelector)) && ib(function (a) { c.disconnectedMatch = s.call(a, "div"), s.call(a, "[s!='']:x"), r.push("!=", Q) }), q = q.length && new RegExp(q.join("|")), r = r.length && new RegExp(r.join("|")), b = $.test(o.compareDocumentPosition), t = b || $.test(o.contains) ? function (a, b) { var c = 9 === a.nodeType ? a.documentElement : a, d = b && b.parentNode; return a === d || !(!d || 1 !== d.nodeType || !(c.contains ? c.contains(d) : a.compareDocumentPosition && 16 & a.compareDocumentPosition(d))) } : function (a, b) { if (b) while (b = b.parentNode) if (b === a) return !0; return !1 }, B = b ? function (a, b) { if (a === b) return l = !0, 0; var d = !a.compareDocumentPosition - !b.compareDocumentPosition; return d ? d : (d = (a.ownerDocument || a) === (b.ownerDocument || b) ? a.compareDocumentPosition(b) : 1, 1 & d || !c.sortDetached && b.compareDocumentPosition(a) === d ? a === e || a.ownerDocument === v && t(v, a) ? -1 : b === e || b.ownerDocument === v && t(v, b) ? 1 : k ? K.call(k, a) - K.call(k, b) : 0 : 4 & d ? -1 : 1) } : function (a, b) { if (a === b) return l = !0, 0; var c, d = 0, f = a.parentNode, g = b.parentNode, h = [a], i = [b]; if (!f || !g) return a === e ? -1 : b === e ? 1 : f ? -1 : g ? 1 : k ? K.call(k, a) - K.call(k, b) : 0; if (f === g) return kb(a, b); c = a; while (c = c.parentNode) h.unshift(c); c = b; while (c = c.parentNode) i.unshift(c); while (h[d] === i[d]) d++; return d ? kb(h[d], i[d]) : h[d] === v ? -1 : i[d] === v ? 1 : 0 }, e) : n }, fb.matches = function (a, b) { return fb(a, null, null, b) }, fb.matchesSelector = function (a, b) { if ((a.ownerDocument || a) !== n && m(a), b = b.replace(U, "='$1']"), !(!c.matchesSelector || !p || r && r.test(b) || q && q.test(b))) try { var d = s.call(a, b); if (d || c.disconnectedMatch || a.document && 11 !== a.document.nodeType) return d } catch (e) { } return fb(b, n, null, [a]).length > 0 }, fb.contains = function (a, b) { return (a.ownerDocument || a) !== n && m(a), t(a, b) }, fb.attr = function (a, b) { (a.ownerDocument || a) !== n && m(a); var e = d.attrHandle[b.toLowerCase()], f = e && E.call(d.attrHandle, b.toLowerCase()) ? e(a, b, !p) : void 0; return void 0 !== f ? f : c.attributes || !p ? a.getAttribute(b) : (f = a.getAttributeNode(b)) && f.specified ? f.value : null }, fb.error = function (a) { throw new Error("Syntax error, unrecognized expression: " + a) }, fb.uniqueSort = function (a) { var b, d = [], e = 0, f = 0; if (l = !c.detectDuplicates, k = !c.sortStable && a.slice(0), a.sort(B), l) { while (b = a[f++]) b === a[f] && (e = d.push(f)); while (e--) a.splice(d[e], 1) } return k = null, a }, e = fb.getText = function (a) { var b, c = "", d = 0, f = a.nodeType; if (f) { if (1 === f || 9 === f || 11 === f) { if ("string" == typeof a.textContent) return a.textContent; for (a = a.firstChild; a; a = a.nextSibling)c += e(a) } else if (3 === f || 4 === f) return a.nodeValue } else while (b = a[d++]) c += e(b); return c }, d = fb.selectors = { cacheLength: 50, createPseudo: hb, match: X, attrHandle: {}, find: {}, relative: { ">": { dir: "parentNode", first: !0 }, " ": { dir: "parentNode" }, "+": { dir: "previousSibling", first: !0 }, "~": { dir: "previousSibling" } }, preFilter: { ATTR: function (a) { return a[1] = a[1].replace(cb, db), a[3] = (a[3] || a[4] || a[5] || "").replace(cb, db), "~=" === a[2] && (a[3] = " " + a[3] + " "), a.slice(0, 4) }, CHILD: function (a) { return a[1] = a[1].toLowerCase(), "nth" === a[1].slice(0, 3) ? (a[3] || fb.error(a[0]), a[4] = +(a[4] ? a[5] + (a[6] || 1) : 2 * ("even" === a[3] || "odd" === a[3])), a[5] = +(a[7] + a[8] || "odd" === a[3])) : a[3] && fb.error(a[0]), a }, PSEUDO: function (a) { var b, c = !a[6] && a[2]; return X.CHILD.test(a[0]) ? null : (a[3] ? a[2] = a[4] || a[5] || "" : c && V.test(c) && (b = g(c, !0)) && (b = c.indexOf(")", c.length - b) - c.length) && (a[0] = a[0].slice(0, b), a[2] = c.slice(0, b)), a.slice(0, 3)) } }, filter: { TAG: function (a) { var b = a.replace(cb, db).toLowerCase(); return "*" === a ? function () { return !0 } : function (a) { return a.nodeName && a.nodeName.toLowerCase() === b } }, CLASS: function (a) { var b = y[a + " "]; return b || (b = new RegExp("(^|" + M + ")" + a + "(" + M + "|$)")) && y(a, function (a) { return b.test("string" == typeof a.className && a.className || typeof a.getAttribute !== C && a.getAttribute("class") || "") }) }, ATTR: function (a, b, c) { return function (d) { var e = fb.attr(d, a); return null == e ? "!=" === b : b ? (e += "", "=" === b ? e === c : "!=" === b ? e !== c : "^=" === b ? c && 0 === e.indexOf(c) : "*=" === b ? c && e.indexOf(c) > -1 : "$=" === b ? c && e.slice(-c.length) === c : "~=" === b ? (" " + e + " ").indexOf(c) > -1 : "|=" === b ? e === c || e.slice(0, c.length + 1) === c + "-" : !1) : !0 } }, CHILD: function (a, b, c, d, e) { var f = "nth" !== a.slice(0, 3), g = "last" !== a.slice(-4), h = "of-type" === b; return 1 === d && 0 === e ? function (a) { return !!a.parentNode } : function (b, c, i) { var j, k, l, m, n, o, p = f !== g ? "nextSibling" : "previousSibling", q = b.parentNode, r = h && b.nodeName.toLowerCase(), s = !i && !h; if (q) { if (f) { while (p) { l = b; while (l = l[p]) if (h ? l.nodeName.toLowerCase() === r : 1 === l.nodeType) return !1; o = p = "only" === a && !o && "nextSibling" } return !0 } if (o = [g ? q.firstChild : q.lastChild], g && s) { k = q[u] || (q[u] = {}), j = k[a] || [], n = j[0] === w && j[1], m = j[0] === w && j[2], l = n && q.childNodes[n]; while (l = ++n && l && l[p] || (m = n = 0) || o.pop()) if (1 === l.nodeType && ++m && l === b) { k[a] = [w, n, m]; break } } else if (s && (j = (b[u] || (b[u] = {}))[a]) && j[0] === w) m = j[1]; else while (l = ++n && l && l[p] || (m = n = 0) || o.pop()) if ((h ? l.nodeName.toLowerCase() === r : 1 === l.nodeType) && ++m && (s && ((l[u] || (l[u] = {}))[a] = [w, m]), l === b)) break; return m -= e, m === d || m % d === 0 && m / d >= 0 } } }, PSEUDO: function (a, b) { var c, e = d.pseudos[a] || d.setFilters[a.toLowerCase()] || fb.error("unsupported pseudo: " + a); return e[u] ? e(b) : e.length > 1 ? (c = [a, a, "", b], d.setFilters.hasOwnProperty(a.toLowerCase()) ? hb(function (a, c) { var d, f = e(a, b), g = f.length; while (g--) d = K.call(a, f[g]), a[d] = !(c[d] = f[g]) }) : function (a) { return e(a, 0, c) }) : e } }, pseudos: { not: hb(function (a) { var b = [], c = [], d = h(a.replace(R, "$1")); return d[u] ? hb(function (a, b, c, e) { var f, g = d(a, null, e, []), h = a.length; while (h--) (f = g[h]) && (a[h] = !(b[h] = f)) }) : function (a, e, f) { return b[0] = a, d(b, null, f, c), !c.pop() } }), has: hb(function (a) { return function (b) { return fb(a, b).length > 0 } }), contains: hb(function (a) { return function (b) { return (b.textContent || b.innerText || e(b)).indexOf(a) > -1 } }), lang: hb(function (a) { return W.test(a || "") || fb.error("unsupported lang: " + a), a = a.replace(cb, db).toLowerCase(), function (b) { var c; do if (c = p ? b.lang : b.getAttribute("xml:lang") || b.getAttribute("lang")) return c = c.toLowerCase(), c === a || 0 === c.indexOf(a + "-"); while ((b = b.parentNode) && 1 === b.nodeType); return !1 } }), target: function (b) { var c = a.location && a.location.hash; return c && c.slice(1) === b.id }, root: function (a) { return a === o }, focus: function (a) { return a === n.activeElement && (!n.hasFocus || n.hasFocus()) && !!(a.type || a.href || ~a.tabIndex) }, enabled: function (a) { return a.disabled === !1 }, disabled: function (a) { return a.disabled === !0 }, checked: function (a) { var b = a.nodeName.toLowerCase(); return "input" === b && !!a.checked || "option" === b && !!a.selected }, selected: function (a) { return a.parentNode && a.parentNode.selectedIndex, a.selected === !0 }, empty: function (a) { for (a = a.firstChild; a; a = a.nextSibling)if (a.nodeType < 6) return !1; return !0 }, parent: function (a) { return !d.pseudos.empty(a) }, header: function (a) { return Z.test(a.nodeName) }, input: function (a) { return Y.test(a.nodeName) }, button: function (a) { var b = a.nodeName.toLowerCase(); return "input" === b && "button" === a.type || "button" === b }, text: function (a) { var b; return "input" === a.nodeName.toLowerCase() && "text" === a.type && (null == (b = a.getAttribute("type")) || "text" === b.toLowerCase()) }, first: nb(function () { return [0] }), last: nb(function (a, b) { return [b - 1] }), eq: nb(function (a, b, c) { return [0 > c ? c + b : c] }), even: nb(function (a, b) { for (var c = 0; b > c; c += 2)a.push(c); return a }), odd: nb(function (a, b) { for (var c = 1; b > c; c += 2)a.push(c); return a }), lt: nb(function (a, b, c) { for (var d = 0 > c ? c + b : c; --d >= 0;)a.push(d); return a }), gt: nb(function (a, b, c) { for (var d = 0 > c ? c + b : c; ++d < b;)a.push(d); return a }) } }, d.pseudos.nth = d.pseudos.eq; for (b in { radio: !0, checkbox: !0, file: !0, password: !0, image: !0 }) d.pseudos[b] = lb(b); for (b in { submit: !0, reset: !0 }) d.pseudos[b] = mb(b); function pb() { } pb.prototype = d.filters = d.pseudos, d.setFilters = new pb, g = fb.tokenize = function (a, b) { var c, e, f, g, h, i, j, k = z[a + " "]; if (k) return b ? 0 : k.slice(0); h = a, i = [], j = d.preFilter; while (h) { (!c || (e = S.exec(h))) && (e && (h = h.slice(e[0].length) || h), i.push(f = [])), c = !1, (e = T.exec(h)) && (c = e.shift(), f.push({ value: c, type: e[0].replace(R, " ") }), h = h.slice(c.length)); for (g in d.filter) !(e = X[g].exec(h)) || j[g] && !(e = j[g](e)) || (c = e.shift(), f.push({ value: c, type: g, matches: e }), h = h.slice(c.length)); if (!c) break } return b ? h.length : h ? fb.error(a) : z(a, i).slice(0) }; function qb(a) { for (var b = 0, c = a.length, d = ""; c > b; b++)d += a[b].value; return d } function rb(a, b, c) { var d = b.dir, e = c && "parentNode" === d, f = x++; return b.first ? function (b, c, f) { while (b = b[d]) if (1 === b.nodeType || e) return a(b, c, f) } : function (b, c, g) { var h, i, j = [w, f]; if (g) { while (b = b[d]) if ((1 === b.nodeType || e) && a(b, c, g)) return !0 } else while (b = b[d]) if (1 === b.nodeType || e) { if (i = b[u] || (b[u] = {}), (h = i[d]) && h[0] === w && h[1] === f) return j[2] = h[2]; if (i[d] = j, j[2] = a(b, c, g)) return !0 } } } function sb(a) { return a.length > 1 ? function (b, c, d) { var e = a.length; while (e--) if (!a[e](b, c, d)) return !1; return !0 } : a[0] } function tb(a, b, c) { for (var d = 0, e = b.length; e > d; d++)fb(a, b[d], c); return c } function ub(a, b, c, d, e) { for (var f, g = [], h = 0, i = a.length, j = null != b; i > h; h++)(f = a[h]) && (!c || c(f, d, e)) && (g.push(f), j && b.push(h)); return g } function vb(a, b, c, d, e, f) { return d && !d[u] && (d = vb(d)), e && !e[u] && (e = vb(e, f)), hb(function (f, g, h, i) { var j, k, l, m = [], n = [], o = g.length, p = f || tb(b || "*", h.nodeType ? [h] : h, []), q = !a || !f && b ? p : ub(p, m, a, h, i), r = c ? e || (f ? a : o || d) ? [] : g : q; if (c && c(q, r, h, i), d) { j = ub(r, n), d(j, [], h, i), k = j.length; while (k--) (l = j[k]) && (r[n[k]] = !(q[n[k]] = l)) } if (f) { if (e || a) { if (e) { j = [], k = r.length; while (k--) (l = r[k]) && j.push(q[k] = l); e(null, r = [], j, i) } k = r.length; while (k--) (l = r[k]) && (j = e ? K.call(f, l) : m[k]) > -1 && (f[j] = !(g[j] = l)) } } else r = ub(r === g ? r.splice(o, r.length) : r), e ? e(null, g, r, i) : I.apply(g, r) }) } function wb(a) { for (var b, c, e, f = a.length, g = d.relative[a[0].type], h = g || d.relative[" "], i = g ? 1 : 0, k = rb(function (a) { return a === b }, h, !0), l = rb(function (a) { return K.call(b, a) > -1 }, h, !0), m = [function (a, c, d) { return !g && (d || c !== j) || ((b = c).nodeType ? k(a, c, d) : l(a, c, d)) }]; f > i; i++)if (c = d.relative[a[i].type]) m = [rb(sb(m), c)]; else { if (c = d.filter[a[i].type].apply(null, a[i].matches), c[u]) { for (e = ++i; f > e; e++)if (d.relative[a[e].type]) break; return vb(i > 1 && sb(m), i > 1 && qb(a.slice(0, i - 1).concat({ value: " " === a[i - 2].type ? "*" : "" })).replace(R, "$1"), c, e > i && wb(a.slice(i, e)), f > e && wb(a = a.slice(e)), f > e && qb(a)) } m.push(c) } return sb(m) } function xb(a, b) { var c = b.length > 0, e = a.length > 0, f = function (f, g, h, i, k) { var l, m, o, p = 0, q = "0", r = f && [], s = [], t = j, u = f || e && d.find.TAG("*", k), v = w += null == t ? 1 : Math.random() || .1, x = u.length; for (k && (j = g !== n && g); q !== x && null != (l = u[q]); q++) { if (e && l) { m = 0; while (o = a[m++]) if (o(l, g, h)) { i.push(l); break } k && (w = v) } c && ((l = !o && l) && p-- , f && r.push(l)) } if (p += q, c && q !== p) { m = 0; while (o = b[m++]) o(r, s, g, h); if (f) { if (p > 0) while (q--) r[q] || s[q] || (s[q] = G.call(i)); s = ub(s) } I.apply(i, s), k && !f && s.length > 0 && p + b.length > 1 && fb.uniqueSort(i) } return k && (w = v, j = t), r }; return c ? hb(f) : f } return h = fb.compile = function (a, b) { var c, d = [], e = [], f = A[a + " "]; if (!f) { b || (b = g(a)), c = b.length; while (c--) f = wb(b[c]), f[u] ? d.push(f) : e.push(f); f = A(a, xb(e, d)), f.selector = a } return f }, i = fb.select = function (a, b, e, f) { var i, j, k, l, m, n = "function" == typeof a && a, o = !f && g(a = n.selector || a); if (e = e || [], 1 === o.length) { if (j = o[0] = o[0].slice(0), j.length > 2 && "ID" === (k = j[0]).type && c.getById && 9 === b.nodeType && p && d.relative[j[1].type]) { if (b = (d.find.ID(k.matches[0].replace(cb, db), b) || [])[0], !b) return e; n && (b = b.parentNode), a = a.slice(j.shift().value.length) } i = X.needsContext.test(a) ? 0 : j.length; while (i--) { if (k = j[i], d.relative[l = k.type]) break; if ((m = d.find[l]) && (f = m(k.matches[0].replace(cb, db), ab.test(j[0].type) && ob(b.parentNode) || b))) { if (j.splice(i, 1), a = f.length && qb(j), !a) return I.apply(e, f), e; break } } } return (n || h(a, o))(f, b, !p, e, ab.test(a) && ob(b.parentNode) || b), e }, c.sortStable = u.split("").sort(B).join("") === u, c.detectDuplicates = !!l, m(), c.sortDetached = ib(function (a) { return 1 & a.compareDocumentPosition(n.createElement("div")) }), ib(function (a) { return a.innerHTML = "<a href='#'></a>", "#" === a.firstChild.getAttribute("href") }) || jb("type|href|height|width", function (a, b, c) { return c ? void 0 : a.getAttribute(b, "type" === b.toLowerCase() ? 1 : 2) }), c.attributes && ib(function (a) { return a.innerHTML = "<input/>", a.firstChild.setAttribute("value", ""), "" === a.firstChild.getAttribute("value") }) || jb("value", function (a, b, c) { return c || "input" !== a.nodeName.toLowerCase() ? void 0 : a.defaultValue }), ib(function (a) { return null == a.getAttribute("disabled") }) || jb(L, function (a, b, c) { var d; return c ? void 0 : a[b] === !0 ? b.toLowerCase() : (d = a.getAttributeNode(b)) && d.specified ? d.value : null }), fb }(a); n.find = t, n.expr = t.selectors, n.expr[":"] = n.expr.pseudos, n.unique = t.uniqueSort, n.text = t.getText, n.isXMLDoc = t.isXML, n.contains = t.contains; var u = n.expr.match.needsContext, v = /^<(\w+)\s*\/?>(?:<\/\1>|)$/, w = /^.[^:#\[\.,]*$/; function x(a, b, c) { if (n.isFunction(b)) return n.grep(a, function (a, d) { return !!b.call(a, d, a) !== c }); if (b.nodeType) return n.grep(a, function (a) { return a === b !== c }); if ("string" == typeof b) { if (w.test(b)) return n.filter(b, a, c); b = n.filter(b, a) } return n.grep(a, function (a) { return g.call(b, a) >= 0 !== c }) } n.filter = function (a, b, c) { var d = b[0]; return c && (a = ":not(" + a + ")"), 1 === b.length && 1 === d.nodeType ? n.find.matchesSelector(d, a) ? [d] : [] : n.find.matches(a, n.grep(b, function (a) { return 1 === a.nodeType })) }, n.fn.extend({ find: function (a) { var b, c = this.length, d = [], e = this; if ("string" != typeof a) return this.pushStack(n(a).filter(function () { for (b = 0; c > b; b++)if (n.contains(e[b], this)) return !0 })); for (b = 0; c > b; b++)n.find(a, e[b], d); return d = this.pushStack(c > 1 ? n.unique(d) : d), d.selector = this.selector ? this.selector + " " + a : a, d }, filter: function (a) { return this.pushStack(x(this, a || [], !1)) }, not: function (a) { return this.pushStack(x(this, a || [], !0)) }, is: function (a) { return !!x(this, "string" == typeof a && u.test(a) ? n(a) : a || [], !1).length } }); var y, z = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/, A = n.fn.init = function (a, b) { var c, d; if (!a) return this; if ("string" == typeof a) { if (c = "<" === a[0] && ">" === a[a.length - 1] && a.length >= 3 ? [null, a, null] : z.exec(a), !c || !c[1] && b) return !b || b.jquery ? (b || y).find(a) : this.constructor(b).find(a); if (c[1]) { if (b = b instanceof n ? b[0] : b, n.merge(this, n.parseHTML(c[1], b && b.nodeType ? b.ownerDocument || b : l, !0)), v.test(c[1]) && n.isPlainObject(b)) for (c in b) n.isFunction(this[c]) ? this[c](b[c]) : this.attr(c, b[c]); return this } return d = l.getElementById(c[2]), d && d.parentNode && (this.length = 1, this[0] = d), this.context = l, this.selector = a, this } return a.nodeType ? (this.context = this[0] = a, this.length = 1, this) : n.isFunction(a) ? "undefined" != typeof y.ready ? y.ready(a) : a(n) : (void 0 !== a.selector && (this.selector = a.selector, this.context = a.context), n.makeArray(a, this)) }; A.prototype = n.fn, y = n(l); var B = /^(?:parents|prev(?:Until|All))/, C = { children: !0, contents: !0, next: !0, prev: !0 }; n.extend({ dir: function (a, b, c) { var d = [], e = void 0 !== c; while ((a = a[b]) && 9 !== a.nodeType) if (1 === a.nodeType) { if (e && n(a).is(c)) break; d.push(a) } return d }, sibling: function (a, b) { for (var c = []; a; a = a.nextSibling)1 === a.nodeType && a !== b && c.push(a); return c } }), n.fn.extend({ has: function (a) { var b = n(a, this), c = b.length; return this.filter(function () { for (var a = 0; c > a; a++)if (n.contains(this, b[a])) return !0 }) }, closest: function (a, b) { for (var c, d = 0, e = this.length, f = [], g = u.test(a) || "string" != typeof a ? n(a, b || this.context) : 0; e > d; d++)for (c = this[d]; c && c !== b; c = c.parentNode)if (c.nodeType < 11 && (g ? g.index(c) > -1 : 1 === c.nodeType && n.find.matchesSelector(c, a))) { f.push(c); break } return this.pushStack(f.length > 1 ? n.unique(f) : f) }, index: function (a) { return a ? "string" == typeof a ? g.call(n(a), this[0]) : g.call(this, a.jquery ? a[0] : a) : this[0] && this[0].parentNode ? this.first().prevAll().length : -1 }, add: function (a, b) { return this.pushStack(n.unique(n.merge(this.get(), n(a, b)))) }, addBack: function (a) { return this.add(null == a ? this.prevObject : this.prevObject.filter(a)) } }); function D(a, b) { while ((a = a[b]) && 1 !== a.nodeType); return a } n.each({ parent: function (a) { var b = a.parentNode; return b && 11 !== b.nodeType ? b : null }, parents: function (a) { return n.dir(a, "parentNode") }, parentsUntil: function (a, b, c) { return n.dir(a, "parentNode", c) }, next: function (a) { return D(a, "nextSibling") }, prev: function (a) { return D(a, "previousSibling") }, nextAll: function (a) { return n.dir(a, "nextSibling") }, prevAll: function (a) { return n.dir(a, "previousSibling") }, nextUntil: function (a, b, c) { return n.dir(a, "nextSibling", c) }, prevUntil: function (a, b, c) { return n.dir(a, "previousSibling", c) }, siblings: function (a) { return n.sibling((a.parentNode || {}).firstChild, a) }, children: function (a) { return n.sibling(a.firstChild) }, contents: function (a) { return a.contentDocument || n.merge([], a.childNodes) } }, function (a, b) { n.fn[a] = function (c, d) { var e = n.map(this, b, c); return "Until" !== a.slice(-5) && (d = c), d && "string" == typeof d && (e = n.filter(d, e)), this.length > 1 && (C[a] || n.unique(e), B.test(a) && e.reverse()), this.pushStack(e) } }); var E = /\S+/g, F = {}; function G(a) { var b = F[a] = {}; return n.each(a.match(E) || [], function (a, c) { b[c] = !0 }), b } n.Callbacks = function (a) { a = "string" == typeof a ? F[a] || G(a) : n.extend({}, a); var b, c, d, e, f, g, h = [], i = !a.once && [], j = function (l) { for (b = a.memory && l, c = !0, g = e || 0, e = 0, f = h.length, d = !0; h && f > g; g++)if (h[g].apply(l[0], l[1]) === !1 && a.stopOnFalse) { b = !1; break } d = !1, h && (i ? i.length && j(i.shift()) : b ? h = [] : k.disable()) }, k = { add: function () { if (h) { var c = h.length; !function g(b) { n.each(b, function (b, c) { var d = n.type(c); "function" === d ? a.unique && k.has(c) || h.push(c) : c && c.length && "string" !== d && g(c) }) }(arguments), d ? f = h.length : b && (e = c, j(b)) } return this }, remove: function () { return h && n.each(arguments, function (a, b) { var c; while ((c = n.inArray(b, h, c)) > -1) h.splice(c, 1), d && (f >= c && f-- , g >= c && g--) }), this }, has: function (a) { return a ? n.inArray(a, h) > -1 : !(!h || !h.length) }, empty: function () { return h = [], f = 0, this }, disable: function () { return h = i = b = void 0, this }, disabled: function () { return !h }, lock: function () { return i = void 0, b || k.disable(), this }, locked: function () { return !i }, fireWith: function (a, b) { return !h || c && !i || (b = b || [], b = [a, b.slice ? b.slice() : b], d ? i.push(b) : j(b)), this }, fire: function () { return k.fireWith(this, arguments), this }, fired: function () { return !!c } }; return k }, n.extend({ Deferred: function (a) { var b = [["resolve", "done", n.Callbacks("once memory"), "resolved"], ["reject", "fail", n.Callbacks("once memory"), "rejected"], ["notify", "progress", n.Callbacks("memory")]], c = "pending", d = { state: function () { return c }, always: function () { return e.done(arguments).fail(arguments), this }, then: function () { var a = arguments; return n.Deferred(function (c) { n.each(b, function (b, f) { var g = n.isFunction(a[b]) && a[b]; e[f[1]](function () { var a = g && g.apply(this, arguments); a && n.isFunction(a.promise) ? a.promise().done(c.resolve).fail(c.reject).progress(c.notify) : c[f[0] + "With"](this === d ? c.promise() : this, g ? [a] : arguments) }) }), a = null }).promise() }, promise: function (a) { return null != a ? n.extend(a, d) : d } }, e = {}; return d.pipe = d.then, n.each(b, function (a, f) { var g = f[2], h = f[3]; d[f[1]] = g.add, h && g.add(function () { c = h }, b[1 ^ a][2].disable, b[2][2].lock), e[f[0]] = function () { return e[f[0] + "With"](this === e ? d : this, arguments), this }, e[f[0] + "With"] = g.fireWith }), d.promise(e), a && a.call(e, e), e }, when: function (a) { var b = 0, c = d.call(arguments), e = c.length, f = 1 !== e || a && n.isFunction(a.promise) ? e : 0, g = 1 === f ? a : n.Deferred(), h = function (a, b, c) { return function (e) { b[a] = this, c[a] = arguments.length > 1 ? d.call(arguments) : e, c === i ? g.notifyWith(b, c) : --f || g.resolveWith(b, c) } }, i, j, k; if (e > 1) for (i = new Array(e), j = new Array(e), k = new Array(e); e > b; b++)c[b] && n.isFunction(c[b].promise) ? c[b].promise().done(h(b, k, c)).fail(g.reject).progress(h(b, j, i)) : --f; return f || g.resolveWith(k, c), g.promise() } }); var H; n.fn.ready = function (a) { return n.ready.promise().done(a), this }, n.extend({ isReady: !1, readyWait: 1, holdReady: function (a) { a ? n.readyWait++ : n.ready(!0) }, ready: function (a) { (a === !0 ? --n.readyWait : n.isReady) || (n.isReady = !0, a !== !0 && --n.readyWait > 0 || (H.resolveWith(l, [n]), n.fn.triggerHandler && (n(l).triggerHandler("ready"), n(l).off("ready")))) } }); function I() { l.removeEventListener("DOMContentLoaded", I, !1), a.removeEventListener("load", I, !1), n.ready() } n.ready.promise = function (b) { return H || (H = n.Deferred(), "complete" === l.readyState ? setTimeout(n.ready) : (l.addEventListener("DOMContentLoaded", I, !1), a.addEventListener("load", I, !1))), H.promise(b) }, n.ready.promise(); var J = n.access = function (a, b, c, d, e, f, g) { var h = 0, i = a.length, j = null == c; if ("object" === n.type(c)) { e = !0; for (h in c) n.access(a, b, h, c[h], !0, f, g) } else if (void 0 !== d && (e = !0, n.isFunction(d) || (g = !0), j && (g ? (b.call(a, d), b = null) : (j = b, b = function (a, b, c) { return j.call(n(a), c) })), b)) for (; i > h; h++)b(a[h], c, g ? d : d.call(a[h], h, b(a[h], c))); return e ? a : j ? b.call(a) : i ? b(a[0], c) : f }; n.acceptData = function (a) { return 1 === a.nodeType || 9 === a.nodeType || !+a.nodeType }; function K() { Object.defineProperty(this.cache = {}, 0, { get: function () { return {} } }), this.expando = n.expando + Math.random() } K.uid = 1, K.accepts = n.acceptData, K.prototype = { key: function (a) { if (!K.accepts(a)) return 0; var b = {}, c = a[this.expando]; if (!c) { c = K.uid++; try { b[this.expando] = { value: c }, Object.defineProperties(a, b) } catch (d) { b[this.expando] = c, n.extend(a, b) } } return this.cache[c] || (this.cache[c] = {}), c }, set: function (a, b, c) { var d, e = this.key(a), f = this.cache[e]; if ("string" == typeof b) f[b] = c; else if (n.isEmptyObject(f)) n.extend(this.cache[e], b); else for (d in b) f[d] = b[d]; return f }, get: function (a, b) { var c = this.cache[this.key(a)]; return void 0 === b ? c : c[b] }, access: function (a, b, c) { var d; return void 0 === b || b && "string" == typeof b && void 0 === c ? (d = this.get(a, b), void 0 !== d ? d : this.get(a, n.camelCase(b))) : (this.set(a, b, c), void 0 !== c ? c : b) }, remove: function (a, b) { var c, d, e, f = this.key(a), g = this.cache[f]; if (void 0 === b) this.cache[f] = {}; else { n.isArray(b) ? d = b.concat(b.map(n.camelCase)) : (e = n.camelCase(b), b in g ? d = [b, e] : (d = e, d = d in g ? [d] : d.match(E) || [])), c = d.length; while (c--) delete g[d[c]] } }, hasData: function (a) { return !n.isEmptyObject(this.cache[a[this.expando]] || {}) }, discard: function (a) { a[this.expando] && delete this.cache[a[this.expando]] } }; var L = new K, M = new K, N = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, O = /([A-Z])/g; function P(a, b, c) { var d; if (void 0 === c && 1 === a.nodeType) if (d = "data-" + b.replace(O, "-$1").toLowerCase(), c = a.getAttribute(d), "string" == typeof c) { try { c = "true" === c ? !0 : "false" === c ? !1 : "null" === c ? null : +c + "" === c ? +c : N.test(c) ? n.parseJSON(c) : c } catch (e) { } M.set(a, b, c) } else c = void 0; return c } n.extend({
4
+ hasData: function (a) { return M.hasData(a) || L.hasData(a) }, data: function (a, b, c) { return M.access(a, b, c) }, removeData: function (a, b) {
5
+ M.remove(a, b)
6
+ }, _data: function (a, b, c) { return L.access(a, b, c) }, _removeData: function (a, b) { L.remove(a, b) }
7
+ }), n.fn.extend({ data: function (a, b) { var c, d, e, f = this[0], g = f && f.attributes; if (void 0 === a) { if (this.length && (e = M.get(f), 1 === f.nodeType && !L.get(f, "hasDataAttrs"))) { c = g.length; while (c--) g[c] && (d = g[c].name, 0 === d.indexOf("data-") && (d = n.camelCase(d.slice(5)), P(f, d, e[d]))); L.set(f, "hasDataAttrs", !0) } return e } return "object" == typeof a ? this.each(function () { M.set(this, a) }) : J(this, function (b) { var c, d = n.camelCase(a); if (f && void 0 === b) { if (c = M.get(f, a), void 0 !== c) return c; if (c = M.get(f, d), void 0 !== c) return c; if (c = P(f, d, void 0), void 0 !== c) return c } else this.each(function () { var c = M.get(this, d); M.set(this, d, b), -1 !== a.indexOf("-") && void 0 !== c && M.set(this, a, b) }) }, null, b, arguments.length > 1, null, !0) }, removeData: function (a) { return this.each(function () { M.remove(this, a) }) } }), n.extend({ queue: function (a, b, c) { var d; return a ? (b = (b || "fx") + "queue", d = L.get(a, b), c && (!d || n.isArray(c) ? d = L.access(a, b, n.makeArray(c)) : d.push(c)), d || []) : void 0 }, dequeue: function (a, b) { b = b || "fx"; var c = n.queue(a, b), d = c.length, e = c.shift(), f = n._queueHooks(a, b), g = function () { n.dequeue(a, b) }; "inprogress" === e && (e = c.shift(), d--), e && ("fx" === b && c.unshift("inprogress"), delete f.stop, e.call(a, g, f)), !d && f && f.empty.fire() }, _queueHooks: function (a, b) { var c = b + "queueHooks"; return L.get(a, c) || L.access(a, c, { empty: n.Callbacks("once memory").add(function () { L.remove(a, [b + "queue", c]) }) }) } }), n.fn.extend({ queue: function (a, b) { var c = 2; return "string" != typeof a && (b = a, a = "fx", c--), arguments.length < c ? n.queue(this[0], a) : void 0 === b ? this : this.each(function () { var c = n.queue(this, a, b); n._queueHooks(this, a), "fx" === a && "inprogress" !== c[0] && n.dequeue(this, a) }) }, dequeue: function (a) { return this.each(function () { n.dequeue(this, a) }) }, clearQueue: function (a) { return this.queue(a || "fx", []) }, promise: function (a, b) { var c, d = 1, e = n.Deferred(), f = this, g = this.length, h = function () { --d || e.resolveWith(f, [f]) }; "string" != typeof a && (b = a, a = void 0), a = a || "fx"; while (g--) c = L.get(f[g], a + "queueHooks"), c && c.empty && (d++ , c.empty.add(h)); return h(), e.promise(b) } }); var Q = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source, R = ["Top", "Right", "Bottom", "Left"], S = function (a, b) { return a = b || a, "none" === n.css(a, "display") || !n.contains(a.ownerDocument, a) }, T = /^(?:checkbox|radio)$/i; !function () { var a = l.createDocumentFragment(), b = a.appendChild(l.createElement("div")), c = l.createElement("input"); c.setAttribute("type", "radio"), c.setAttribute("checked", "checked"), c.setAttribute("name", "t"), b.appendChild(c), k.checkClone = b.cloneNode(!0).cloneNode(!0).lastChild.checked, b.innerHTML = "<textarea>x</textarea>", k.noCloneChecked = !!b.cloneNode(!0).lastChild.defaultValue }(); var U = "undefined"; k.focusinBubbles = "onfocusin" in a; var V = /^key/, W = /^(?:mouse|pointer|contextmenu)|click/, X = /^(?:focusinfocus|focusoutblur)$/, Y = /^([^.]*)(?:\.(.+)|)$/; function Z() { return !0 } function $() { return !1 } function _() { try { return l.activeElement } catch (a) { } } n.event = { global: {}, add: function (a, b, c, d, e) { var f, g, h, i, j, k, l, m, o, p, q, r = L.get(a); if (r) { c.handler && (f = c, c = f.handler, e = f.selector), c.guid || (c.guid = n.guid++), (i = r.events) || (i = r.events = {}), (g = r.handle) || (g = r.handle = function (b) { return typeof n !== U && n.event.triggered !== b.type ? n.event.dispatch.apply(a, arguments) : void 0 }), b = (b || "").match(E) || [""], j = b.length; while (j--) h = Y.exec(b[j]) || [], o = q = h[1], p = (h[2] || "").split(".").sort(), o && (l = n.event.special[o] || {}, o = (e ? l.delegateType : l.bindType) || o, l = n.event.special[o] || {}, k = n.extend({ type: o, origType: q, data: d, handler: c, guid: c.guid, selector: e, needsContext: e && n.expr.match.needsContext.test(e), namespace: p.join(".") }, f), (m = i[o]) || (m = i[o] = [], m.delegateCount = 0, l.setup && l.setup.call(a, d, p, g) !== !1 || a.addEventListener && a.addEventListener(o, g, !1)), l.add && (l.add.call(a, k), k.handler.guid || (k.handler.guid = c.guid)), e ? m.splice(m.delegateCount++, 0, k) : m.push(k), n.event.global[o] = !0) } }, remove: function (a, b, c, d, e) { var f, g, h, i, j, k, l, m, o, p, q, r = L.hasData(a) && L.get(a); if (r && (i = r.events)) { b = (b || "").match(E) || [""], j = b.length; while (j--) if (h = Y.exec(b[j]) || [], o = q = h[1], p = (h[2] || "").split(".").sort(), o) { l = n.event.special[o] || {}, o = (d ? l.delegateType : l.bindType) || o, m = i[o] || [], h = h[2] && new RegExp("(^|\\.)" + p.join("\\.(?:.*\\.|)") + "(\\.|$)"), g = f = m.length; while (f--) k = m[f], !e && q !== k.origType || c && c.guid !== k.guid || h && !h.test(k.namespace) || d && d !== k.selector && ("**" !== d || !k.selector) || (m.splice(f, 1), k.selector && m.delegateCount-- , l.remove && l.remove.call(a, k)); g && !m.length && (l.teardown && l.teardown.call(a, p, r.handle) !== !1 || n.removeEvent(a, o, r.handle), delete i[o]) } else for (o in i) n.event.remove(a, o + b[j], c, d, !0); n.isEmptyObject(i) && (delete r.handle, L.remove(a, "events")) } }, trigger: function (b, c, d, e) { var f, g, h, i, k, m, o, p = [d || l], q = j.call(b, "type") ? b.type : b, r = j.call(b, "namespace") ? b.namespace.split(".") : []; if (g = h = d = d || l, 3 !== d.nodeType && 8 !== d.nodeType && !X.test(q + n.event.triggered) && (q.indexOf(".") >= 0 && (r = q.split("."), q = r.shift(), r.sort()), k = q.indexOf(":") < 0 && "on" + q, b = b[n.expando] ? b : new n.Event(q, "object" == typeof b && b), b.isTrigger = e ? 2 : 3, b.namespace = r.join("."), b.namespace_re = b.namespace ? new RegExp("(^|\\.)" + r.join("\\.(?:.*\\.|)") + "(\\.|$)") : null, b.result = void 0, b.target || (b.target = d), c = null == c ? [b] : n.makeArray(c, [b]), o = n.event.special[q] || {}, e || !o.trigger || o.trigger.apply(d, c) !== !1)) { if (!e && !o.noBubble && !n.isWindow(d)) { for (i = o.delegateType || q, X.test(i + q) || (g = g.parentNode); g; g = g.parentNode)p.push(g), h = g; h === (d.ownerDocument || l) && p.push(h.defaultView || h.parentWindow || a) } f = 0; while ((g = p[f++]) && !b.isPropagationStopped()) b.type = f > 1 ? i : o.bindType || q, m = (L.get(g, "events") || {})[b.type] && L.get(g, "handle"), m && m.apply(g, c), m = k && g[k], m && m.apply && n.acceptData(g) && (b.result = m.apply(g, c), b.result === !1 && b.preventDefault()); return b.type = q, e || b.isDefaultPrevented() || o._default && o._default.apply(p.pop(), c) !== !1 || !n.acceptData(d) || k && n.isFunction(d[q]) && !n.isWindow(d) && (h = d[k], h && (d[k] = null), n.event.triggered = q, d[q](), n.event.triggered = void 0, h && (d[k] = h)), b.result } }, dispatch: function (a) { a = n.event.fix(a); var b, c, e, f, g, h = [], i = d.call(arguments), j = (L.get(this, "events") || {})[a.type] || [], k = n.event.special[a.type] || {}; if (i[0] = a, a.delegateTarget = this, !k.preDispatch || k.preDispatch.call(this, a) !== !1) { h = n.event.handlers.call(this, a, j), b = 0; while ((f = h[b++]) && !a.isPropagationStopped()) { a.currentTarget = f.elem, c = 0; while ((g = f.handlers[c++]) && !a.isImmediatePropagationStopped()) (!a.namespace_re || a.namespace_re.test(g.namespace)) && (a.handleObj = g, a.data = g.data, e = ((n.event.special[g.origType] || {}).handle || g.handler).apply(f.elem, i), void 0 !== e && (a.result = e) === !1 && (a.preventDefault(), a.stopPropagation())) } return k.postDispatch && k.postDispatch.call(this, a), a.result } }, handlers: function (a, b) { var c, d, e, f, g = [], h = b.delegateCount, i = a.target; if (h && i.nodeType && (!a.button || "click" !== a.type)) for (; i !== this; i = i.parentNode || this)if (i.disabled !== !0 || "click" !== a.type) { for (d = [], c = 0; h > c; c++)f = b[c], e = f.selector + " ", void 0 === d[e] && (d[e] = f.needsContext ? n(e, this).index(i) >= 0 : n.find(e, this, null, [i]).length), d[e] && d.push(f); d.length && g.push({ elem: i, handlers: d }) } return h < b.length && g.push({ elem: this, handlers: b.slice(h) }), g }, props: "altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "), fixHooks: {}, keyHooks: { props: "char charCode key keyCode".split(" "), filter: function (a, b) { return null == a.which && (a.which = null != b.charCode ? b.charCode : b.keyCode), a } }, mouseHooks: { props: "button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement".split(" "), filter: function (a, b) { var c, d, e, f = b.button; return null == a.pageX && null != b.clientX && (c = a.target.ownerDocument || l, d = c.documentElement, e = c.body, a.pageX = b.clientX + (d && d.scrollLeft || e && e.scrollLeft || 0) - (d && d.clientLeft || e && e.clientLeft || 0), a.pageY = b.clientY + (d && d.scrollTop || e && e.scrollTop || 0) - (d && d.clientTop || e && e.clientTop || 0)), a.which || void 0 === f || (a.which = 1 & f ? 1 : 2 & f ? 3 : 4 & f ? 2 : 0), a } }, fix: function (a) { if (a[n.expando]) return a; var b, c, d, e = a.type, f = a, g = this.fixHooks[e]; g || (this.fixHooks[e] = g = W.test(e) ? this.mouseHooks : V.test(e) ? this.keyHooks : {}), d = g.props ? this.props.concat(g.props) : this.props, a = new n.Event(f), b = d.length; while (b--) c = d[b], a[c] = f[c]; return a.target || (a.target = l), 3 === a.target.nodeType && (a.target = a.target.parentNode), g.filter ? g.filter(a, f) : a }, special: { load: { noBubble: !0 }, focus: { trigger: function () { return this !== _() && this.focus ? (this.focus(), !1) : void 0 }, delegateType: "focusin" }, blur: { trigger: function () { return this === _() && this.blur ? (this.blur(), !1) : void 0 }, delegateType: "focusout" }, click: { trigger: function () { return "checkbox" === this.type && this.click && n.nodeName(this, "input") ? (this.click(), !1) : void 0 }, _default: function (a) { return n.nodeName(a.target, "a") } }, beforeunload: { postDispatch: function (a) { void 0 !== a.result && a.originalEvent && (a.originalEvent.returnValue = a.result) } } }, simulate: function (a, b, c, d) { var e = n.extend(new n.Event, c, { type: a, isSimulated: !0, originalEvent: {} }); d ? n.event.trigger(e, null, b) : n.event.dispatch.call(b, e), e.isDefaultPrevented() && c.preventDefault() } }, n.removeEvent = function (a, b, c) { a.removeEventListener && a.removeEventListener(b, c, !1) }, n.Event = function (a, b) { return this instanceof n.Event ? (a && a.type ? (this.originalEvent = a, this.type = a.type, this.isDefaultPrevented = a.defaultPrevented || void 0 === a.defaultPrevented && a.returnValue === !1 ? Z : $) : this.type = a, b && n.extend(this, b), this.timeStamp = a && a.timeStamp || n.now(), void (this[n.expando] = !0)) : new n.Event(a, b) }, n.Event.prototype = { isDefaultPrevented: $, isPropagationStopped: $, isImmediatePropagationStopped: $, preventDefault: function () { var a = this.originalEvent; this.isDefaultPrevented = Z, a && a.preventDefault && a.preventDefault() }, stopPropagation: function () { var a = this.originalEvent; this.isPropagationStopped = Z, a && a.stopPropagation && a.stopPropagation() }, stopImmediatePropagation: function () { var a = this.originalEvent; this.isImmediatePropagationStopped = Z, a && a.stopImmediatePropagation && a.stopImmediatePropagation(), this.stopPropagation() } }, n.each({ mouseenter: "mouseover", mouseleave: "mouseout", pointerenter: "pointerover", pointerleave: "pointerout" }, function (a, b) { n.event.special[a] = { delegateType: b, bindType: b, handle: function (a) { var c, d = this, e = a.relatedTarget, f = a.handleObj; return (!e || e !== d && !n.contains(d, e)) && (a.type = f.origType, c = f.handler.apply(this, arguments), a.type = b), c } } }), k.focusinBubbles || n.each({ focus: "focusin", blur: "focusout" }, function (a, b) { var c = function (a) { n.event.simulate(b, a.target, n.event.fix(a), !0) }; n.event.special[b] = { setup: function () { var d = this.ownerDocument || this, e = L.access(d, b); e || d.addEventListener(a, c, !0), L.access(d, b, (e || 0) + 1) }, teardown: function () { var d = this.ownerDocument || this, e = L.access(d, b) - 1; e ? L.access(d, b, e) : (d.removeEventListener(a, c, !0), L.remove(d, b)) } } }), n.fn.extend({ on: function (a, b, c, d, e) { var f, g; if ("object" == typeof a) { "string" != typeof b && (c = c || b, b = void 0); for (g in a) this.on(g, b, c, a[g], e); return this } if (null == c && null == d ? (d = b, c = b = void 0) : null == d && ("string" == typeof b ? (d = c, c = void 0) : (d = c, c = b, b = void 0)), d === !1) d = $; else if (!d) return this; return 1 === e && (f = d, d = function (a) { return n().off(a), f.apply(this, arguments) }, d.guid = f.guid || (f.guid = n.guid++)), this.each(function () { n.event.add(this, a, d, c, b) }) }, one: function (a, b, c, d) { return this.on(a, b, c, d, 1) }, off: function (a, b, c) { var d, e; if (a && a.preventDefault && a.handleObj) return d = a.handleObj, n(a.delegateTarget).off(d.namespace ? d.origType + "." + d.namespace : d.origType, d.selector, d.handler), this; if ("object" == typeof a) { for (e in a) this.off(e, b, a[e]); return this } return (b === !1 || "function" == typeof b) && (c = b, b = void 0), c === !1 && (c = $), this.each(function () { n.event.remove(this, a, c, b) }) }, trigger: function (a, b) { return this.each(function () { n.event.trigger(a, b, this) }) }, triggerHandler: function (a, b) { var c = this[0]; return c ? n.event.trigger(a, b, c, !0) : void 0 } }); var ab = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi, bb = /<([\w:]+)/, cb = /<|&#?\w+;/, db = /<(?:script|style|link)/i, eb = /checked\s*(?:[^=]|=\s*.checked.)/i, fb = /^$|\/(?:java|ecma)script/i, gb = /^true\/(.*)/, hb = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g, ib = { option: [1, "<select multiple='multiple'>", "</select>"], thead: [1, "<table>", "</table>"], col: [2, "<table><colgroup>", "</colgroup></table>"], tr: [2, "<table><tbody>", "</tbody></table>"], td: [3, "<table><tbody><tr>", "</tr></tbody></table>"], _default: [0, "", ""] }; ib.optgroup = ib.option, ib.tbody = ib.tfoot = ib.colgroup = ib.caption = ib.thead, ib.th = ib.td; function jb(a, b) { return n.nodeName(a, "table") && n.nodeName(11 !== b.nodeType ? b : b.firstChild, "tr") ? a.getElementsByTagName("tbody")[0] || a.appendChild(a.ownerDocument.createElement("tbody")) : a } function kb(a) { return a.type = (null !== a.getAttribute("type")) + "/" + a.type, a } function lb(a) { var b = gb.exec(a.type); return b ? a.type = b[1] : a.removeAttribute("type"), a } function mb(a, b) { for (var c = 0, d = a.length; d > c; c++)L.set(a[c], "globalEval", !b || L.get(b[c], "globalEval")) } function nb(a, b) { var c, d, e, f, g, h, i, j; if (1 === b.nodeType) { if (L.hasData(a) && (f = L.access(a), g = L.set(b, f), j = f.events)) { delete g.handle, g.events = {}; for (e in j) for (c = 0, d = j[e].length; d > c; c++)n.event.add(b, e, j[e][c]) } M.hasData(a) && (h = M.access(a), i = n.extend({}, h), M.set(b, i)) } } function ob(a, b) { var c = a.getElementsByTagName ? a.getElementsByTagName(b || "*") : a.querySelectorAll ? a.querySelectorAll(b || "*") : []; return void 0 === b || b && n.nodeName(a, b) ? n.merge([a], c) : c } function pb(a, b) { var c = b.nodeName.toLowerCase(); "input" === c && T.test(a.type) ? b.checked = a.checked : ("input" === c || "textarea" === c) && (b.defaultValue = a.defaultValue) } n.extend({ clone: function (a, b, c) { var d, e, f, g, h = a.cloneNode(!0), i = n.contains(a.ownerDocument, a); if (!(k.noCloneChecked || 1 !== a.nodeType && 11 !== a.nodeType || n.isXMLDoc(a))) for (g = ob(h), f = ob(a), d = 0, e = f.length; e > d; d++)pb(f[d], g[d]); if (b) if (c) for (f = f || ob(a), g = g || ob(h), d = 0, e = f.length; e > d; d++)nb(f[d], g[d]); else nb(a, h); return g = ob(h, "script"), g.length > 0 && mb(g, !i && ob(a, "script")), h }, buildFragment: function (a, b, c, d) { for (var e, f, g, h, i, j, k = b.createDocumentFragment(), l = [], m = 0, o = a.length; o > m; m++)if (e = a[m], e || 0 === e) if ("object" === n.type(e)) n.merge(l, e.nodeType ? [e] : e); else if (cb.test(e)) { f = f || k.appendChild(b.createElement("div")), g = (bb.exec(e) || ["", ""])[1].toLowerCase(), h = ib[g] || ib._default, f.innerHTML = h[1] + e.replace(ab, "<$1></$2>") + h[2], j = h[0]; while (j--) f = f.lastChild; n.merge(l, f.childNodes), f = k.firstChild, f.textContent = "" } else l.push(b.createTextNode(e)); k.textContent = "", m = 0; while (e = l[m++]) if ((!d || -1 === n.inArray(e, d)) && (i = n.contains(e.ownerDocument, e), f = ob(k.appendChild(e), "script"), i && mb(f), c)) { j = 0; while (e = f[j++]) fb.test(e.type || "") && c.push(e) } return k }, cleanData: function (a) { for (var b, c, d, e, f = n.event.special, g = 0; void 0 !== (c = a[g]); g++) { if (n.acceptData(c) && (e = c[L.expando], e && (b = L.cache[e]))) { if (b.events) for (d in b.events) f[d] ? n.event.remove(c, d) : n.removeEvent(c, d, b.handle); L.cache[e] && delete L.cache[e] } delete M.cache[c[M.expando]] } } }), n.fn.extend({ text: function (a) { return J(this, function (a) { return void 0 === a ? n.text(this) : this.empty().each(function () { (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) && (this.textContent = a) }) }, null, a, arguments.length) }, append: function () { return this.domManip(arguments, function (a) { if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) { var b = jb(this, a); b.appendChild(a) } }) }, prepend: function () { return this.domManip(arguments, function (a) { if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) { var b = jb(this, a); b.insertBefore(a, b.firstChild) } }) }, before: function () { return this.domManip(arguments, function (a) { this.parentNode && this.parentNode.insertBefore(a, this) }) }, after: function () { return this.domManip(arguments, function (a) { this.parentNode && this.parentNode.insertBefore(a, this.nextSibling) }) }, remove: function (a, b) { for (var c, d = a ? n.filter(a, this) : this, e = 0; null != (c = d[e]); e++)b || 1 !== c.nodeType || n.cleanData(ob(c)), c.parentNode && (b && n.contains(c.ownerDocument, c) && mb(ob(c, "script")), c.parentNode.removeChild(c)); return this }, empty: function () { for (var a, b = 0; null != (a = this[b]); b++)1 === a.nodeType && (n.cleanData(ob(a, !1)), a.textContent = ""); return this }, clone: function (a, b) { return a = null == a ? !1 : a, b = null == b ? a : b, this.map(function () { return n.clone(this, a, b) }) }, html: function (a) { return J(this, function (a) { var b = this[0] || {}, c = 0, d = this.length; if (void 0 === a && 1 === b.nodeType) return b.innerHTML; if ("string" == typeof a && !db.test(a) && !ib[(bb.exec(a) || ["", ""])[1].toLowerCase()]) { a = a.replace(ab, "<$1></$2>"); try { for (; d > c; c++)b = this[c] || {}, 1 === b.nodeType && (n.cleanData(ob(b, !1)), b.innerHTML = a); b = 0 } catch (e) { } } b && this.empty().append(a) }, null, a, arguments.length) }, replaceWith: function () { var a = arguments[0]; return this.domManip(arguments, function (b) { a = this.parentNode, n.cleanData(ob(this)), a && a.replaceChild(b, this) }), a && (a.length || a.nodeType) ? this : this.remove() }, detach: function (a) { return this.remove(a, !0) }, domManip: function (a, b) { a = e.apply([], a); var c, d, f, g, h, i, j = 0, l = this.length, m = this, o = l - 1, p = a[0], q = n.isFunction(p); if (q || l > 1 && "string" == typeof p && !k.checkClone && eb.test(p)) return this.each(function (c) { var d = m.eq(c); q && (a[0] = p.call(this, c, d.html())), d.domManip(a, b) }); if (l && (c = n.buildFragment(a, this[0].ownerDocument, !1, this), d = c.firstChild, 1 === c.childNodes.length && (c = d), d)) { for (f = n.map(ob(c, "script"), kb), g = f.length; l > j; j++)h = c, j !== o && (h = n.clone(h, !0, !0), g && n.merge(f, ob(h, "script"))), b.call(this[j], h, j); if (g) for (i = f[f.length - 1].ownerDocument, n.map(f, lb), j = 0; g > j; j++)h = f[j], fb.test(h.type || "") && !L.access(h, "globalEval") && n.contains(i, h) && (h.src ? n._evalUrl && n._evalUrl(h.src) : n.globalEval(h.textContent.replace(hb, ""))) } return this } }), n.each({ appendTo: "append", prependTo: "prepend", insertBefore: "before", insertAfter: "after", replaceAll: "replaceWith" }, function (a, b) { n.fn[a] = function (a) { for (var c, d = [], e = n(a), g = e.length - 1, h = 0; g >= h; h++)c = h === g ? this : this.clone(!0), n(e[h])[b](c), f.apply(d, c.get()); return this.pushStack(d) } }); var qb, rb = {}; function sb(b, c) { var d, e = n(c.createElement(b)).appendTo(c.body), f = a.getDefaultComputedStyle && (d = a.getDefaultComputedStyle(e[0])) ? d.display : n.css(e[0], "display"); return e.detach(), f } function tb(a) { var b = l, c = rb[a]; return c || (c = sb(a, b), "none" !== c && c || (qb = (qb || n("<iframe frameborder='0' width='0' height='0'/>")).appendTo(b.documentElement), b = qb[0].contentDocument, b.write(), b.close(), c = sb(a, b), qb.detach()), rb[a] = c), c } var ub = /^margin/, vb = new RegExp("^(" + Q + ")(?!px)[a-z%]+$", "i"), wb = function (a) { return a.ownerDocument.defaultView.getComputedStyle(a, null) }; function xb(a, b, c) { var d, e, f, g, h = a.style; return c = c || wb(a), c && (g = c.getPropertyValue(b) || c[b]), c && ("" !== g || n.contains(a.ownerDocument, a) || (g = n.style(a, b)), vb.test(g) && ub.test(b) && (d = h.width, e = h.minWidth, f = h.maxWidth, h.minWidth = h.maxWidth = h.width = g, g = c.width, h.width = d, h.minWidth = e, h.maxWidth = f)), void 0 !== g ? g + "" : g } function yb(a, b) { return { get: function () { return a() ? void delete this.get : (this.get = b).apply(this, arguments) } } } !function () { var b, c, d = l.documentElement, e = l.createElement("div"), f = l.createElement("div"); if (f.style) { f.style.backgroundClip = "content-box", f.cloneNode(!0).style.backgroundClip = "", k.clearCloneStyle = "content-box" === f.style.backgroundClip, e.style.cssText = "border:0;width:0;height:0;top:0;left:-9999px;margin-top:1px;position:absolute", e.appendChild(f); function g() { f.style.cssText = "-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;margin-top:1%;top:1%;border:1px;padding:1px;width:4px;position:absolute", f.innerHTML = "", d.appendChild(e); var g = a.getComputedStyle(f, null); b = "1%" !== g.top, c = "4px" === g.width, d.removeChild(e) } a.getComputedStyle && n.extend(k, { pixelPosition: function () { return g(), b }, boxSizingReliable: function () { return null == c && g(), c }, reliableMarginRight: function () { var b, c = f.appendChild(l.createElement("div")); return c.style.cssText = f.style.cssText = "-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0", c.style.marginRight = c.style.width = "0", f.style.width = "1px", d.appendChild(e), b = !parseFloat(a.getComputedStyle(c, null).marginRight), d.removeChild(e), b } }) } }(), n.swap = function (a, b, c, d) { var e, f, g = {}; for (f in b) g[f] = a.style[f], a.style[f] = b[f]; e = c.apply(a, d || []); for (f in b) a.style[f] = g[f]; return e }; var zb = /^(none|table(?!-c[ea]).+)/, Ab = new RegExp("^(" + Q + ")(.*)$", "i"), Bb = new RegExp("^([+-])=(" + Q + ")", "i"), Cb = { position: "absolute", visibility: "hidden", display: "block" }, Db = { letterSpacing: "0", fontWeight: "400" }, Eb = ["Webkit", "O", "Moz", "ms"]; function Fb(a, b) { if (b in a) return b; var c = b[0].toUpperCase() + b.slice(1), d = b, e = Eb.length; while (e--) if (b = Eb[e] + c, b in a) return b; return d } function Gb(a, b, c) { var d = Ab.exec(b); return d ? Math.max(0, d[1] - (c || 0)) + (d[2] || "px") : b } function Hb(a, b, c, d, e) { for (var f = c === (d ? "border" : "content") ? 4 : "width" === b ? 1 : 0, g = 0; 4 > f; f += 2)"margin" === c && (g += n.css(a, c + R[f], !0, e)), d ? ("content" === c && (g -= n.css(a, "padding" + R[f], !0, e)), "margin" !== c && (g -= n.css(a, "border" + R[f] + "Width", !0, e))) : (g += n.css(a, "padding" + R[f], !0, e), "padding" !== c && (g += n.css(a, "border" + R[f] + "Width", !0, e))); return g } function Ib(a, b, c) { var d = !0, e = "width" === b ? a.offsetWidth : a.offsetHeight, f = wb(a), g = "border-box" === n.css(a, "boxSizing", !1, f); if (0 >= e || null == e) { if (e = xb(a, b, f), (0 > e || null == e) && (e = a.style[b]), vb.test(e)) return e; d = g && (k.boxSizingReliable() || e === a.style[b]), e = parseFloat(e) || 0 } return e + Hb(a, b, c || (g ? "border" : "content"), d, f) + "px" } function Jb(a, b) { for (var c, d, e, f = [], g = 0, h = a.length; h > g; g++)d = a[g], d.style && (f[g] = L.get(d, "olddisplay"), c = d.style.display, b ? (f[g] || "none" !== c || (d.style.display = ""), "" === d.style.display && S(d) && (f[g] = L.access(d, "olddisplay", tb(d.nodeName)))) : (e = S(d), "none" === c && e || L.set(d, "olddisplay", e ? c : n.css(d, "display")))); for (g = 0; h > g; g++)d = a[g], d.style && (b && "none" !== d.style.display && "" !== d.style.display || (d.style.display = b ? f[g] || "" : "none")); return a } n.extend({ cssHooks: { opacity: { get: function (a, b) { if (b) { var c = xb(a, "opacity"); return "" === c ? "1" : c } } } }, cssNumber: { columnCount: !0, fillOpacity: !0, flexGrow: !0, flexShrink: !0, fontWeight: !0, lineHeight: !0, opacity: !0, order: !0, orphans: !0, widows: !0, zIndex: !0, zoom: !0 }, cssProps: { "float": "cssFloat" }, style: function (a, b, c, d) { if (a && 3 !== a.nodeType && 8 !== a.nodeType && a.style) { var e, f, g, h = n.camelCase(b), i = a.style; return b = n.cssProps[h] || (n.cssProps[h] = Fb(i, h)), g = n.cssHooks[b] || n.cssHooks[h], void 0 === c ? g && "get" in g && void 0 !== (e = g.get(a, !1, d)) ? e : i[b] : (f = typeof c, "string" === f && (e = Bb.exec(c)) && (c = (e[1] + 1) * e[2] + parseFloat(n.css(a, b)), f = "number"), null != c && c === c && ("number" !== f || n.cssNumber[h] || (c += "px"), k.clearCloneStyle || "" !== c || 0 !== b.indexOf("background") || (i[b] = "inherit"), g && "set" in g && void 0 === (c = g.set(a, c, d)) || (i[b] = c)), void 0) } }, css: function (a, b, c, d) { var e, f, g, h = n.camelCase(b); return b = n.cssProps[h] || (n.cssProps[h] = Fb(a.style, h)), g = n.cssHooks[b] || n.cssHooks[h], g && "get" in g && (e = g.get(a, !0, c)), void 0 === e && (e = xb(a, b, d)), "normal" === e && b in Db && (e = Db[b]), "" === c || c ? (f = parseFloat(e), c === !0 || n.isNumeric(f) ? f || 0 : e) : e } }), n.each(["height", "width"], function (a, b) { n.cssHooks[b] = { get: function (a, c, d) { return c ? zb.test(n.css(a, "display")) && 0 === a.offsetWidth ? n.swap(a, Cb, function () { return Ib(a, b, d) }) : Ib(a, b, d) : void 0 }, set: function (a, c, d) { var e = d && wb(a); return Gb(a, c, d ? Hb(a, b, d, "border-box" === n.css(a, "boxSizing", !1, e), e) : 0) } } }), n.cssHooks.marginRight = yb(k.reliableMarginRight, function (a, b) { return b ? n.swap(a, { display: "inline-block" }, xb, [a, "marginRight"]) : void 0 }), n.each({ margin: "", padding: "", border: "Width" }, function (a, b) { n.cssHooks[a + b] = { expand: function (c) { for (var d = 0, e = {}, f = "string" == typeof c ? c.split(" ") : [c]; 4 > d; d++)e[a + R[d] + b] = f[d] || f[d - 2] || f[0]; return e } }, ub.test(a) || (n.cssHooks[a + b].set = Gb) }), n.fn.extend({ css: function (a, b) { return J(this, function (a, b, c) { var d, e, f = {}, g = 0; if (n.isArray(b)) { for (d = wb(a), e = b.length; e > g; g++)f[b[g]] = n.css(a, b[g], !1, d); return f } return void 0 !== c ? n.style(a, b, c) : n.css(a, b) }, a, b, arguments.length > 1) }, show: function () { return Jb(this, !0) }, hide: function () { return Jb(this) }, toggle: function (a) { return "boolean" == typeof a ? a ? this.show() : this.hide() : this.each(function () { S(this) ? n(this).show() : n(this).hide() }) } }); function Kb(a, b, c, d, e) { return new Kb.prototype.init(a, b, c, d, e) } n.Tween = Kb, Kb.prototype = { constructor: Kb, init: function (a, b, c, d, e, f) { this.elem = a, this.prop = c, this.easing = e || "swing", this.options = b, this.start = this.now = this.cur(), this.end = d, this.unit = f || (n.cssNumber[c] ? "" : "px") }, cur: function () { var a = Kb.propHooks[this.prop]; return a && a.get ? a.get(this) : Kb.propHooks._default.get(this) }, run: function (a) { var b, c = Kb.propHooks[this.prop]; return this.pos = b = this.options.duration ? n.easing[this.easing](a, this.options.duration * a, 0, 1, this.options.duration) : a, this.now = (this.end - this.start) * b + this.start, this.options.step && this.options.step.call(this.elem, this.now, this), c && c.set ? c.set(this) : Kb.propHooks._default.set(this), this } }, Kb.prototype.init.prototype = Kb.prototype, Kb.propHooks = { _default: { get: function (a) { var b; return null == a.elem[a.prop] || a.elem.style && null != a.elem.style[a.prop] ? (b = n.css(a.elem, a.prop, ""), b && "auto" !== b ? b : 0) : a.elem[a.prop] }, set: function (a) { n.fx.step[a.prop] ? n.fx.step[a.prop](a) : a.elem.style && (null != a.elem.style[n.cssProps[a.prop]] || n.cssHooks[a.prop]) ? n.style(a.elem, a.prop, a.now + a.unit) : a.elem[a.prop] = a.now } } }, Kb.propHooks.scrollTop = Kb.propHooks.scrollLeft = { set: function (a) { a.elem.nodeType && a.elem.parentNode && (a.elem[a.prop] = a.now) } }, n.easing = { linear: function (a) { return a }, swing: function (a) { return .5 - Math.cos(a * Math.PI) / 2 } }, n.fx = Kb.prototype.init, n.fx.step = {}; var Lb, Mb, Nb = /^(?:toggle|show|hide)$/, Ob = new RegExp("^(?:([+-])=|)(" + Q + ")([a-z%]*)$", "i"), Pb = /queueHooks$/, Qb = [Vb], Rb = { "*": [function (a, b) { var c = this.createTween(a, b), d = c.cur(), e = Ob.exec(b), f = e && e[3] || (n.cssNumber[a] ? "" : "px"), g = (n.cssNumber[a] || "px" !== f && +d) && Ob.exec(n.css(c.elem, a)), h = 1, i = 20; if (g && g[3] !== f) { f = f || g[3], e = e || [], g = +d || 1; do h = h || ".5", g /= h, n.style(c.elem, a, g + f); while (h !== (h = c.cur() / d) && 1 !== h && --i) } return e && (g = c.start = +g || +d || 0, c.unit = f, c.end = e[1] ? g + (e[1] + 1) * e[2] : +e[2]), c }] }; function Sb() { return setTimeout(function () { Lb = void 0 }), Lb = n.now() } function Tb(a, b) { var c, d = 0, e = { height: a }; for (b = b ? 1 : 0; 4 > d; d += 2 - b)c = R[d], e["margin" + c] = e["padding" + c] = a; return b && (e.opacity = e.width = a), e } function Ub(a, b, c) { for (var d, e = (Rb[b] || []).concat(Rb["*"]), f = 0, g = e.length; g > f; f++)if (d = e[f].call(c, b, a)) return d } function Vb(a, b, c) { var d, e, f, g, h, i, j, k, l = this, m = {}, o = a.style, p = a.nodeType && S(a), q = L.get(a, "fxshow"); c.queue || (h = n._queueHooks(a, "fx"), null == h.unqueued && (h.unqueued = 0, i = h.empty.fire, h.empty.fire = function () { h.unqueued || i() }), h.unqueued++ , l.always(function () { l.always(function () { h.unqueued-- , n.queue(a, "fx").length || h.empty.fire() }) })), 1 === a.nodeType && ("height" in b || "width" in b) && (c.overflow = [o.overflow, o.overflowX, o.overflowY], j = n.css(a, "display"), k = "none" === j ? L.get(a, "olddisplay") || tb(a.nodeName) : j, "inline" === k && "none" === n.css(a, "float") && (o.display = "inline-block")), c.overflow && (o.overflow = "hidden", l.always(function () { o.overflow = c.overflow[0], o.overflowX = c.overflow[1], o.overflowY = c.overflow[2] })); for (d in b) if (e = b[d], Nb.exec(e)) { if (delete b[d], f = f || "toggle" === e, e === (p ? "hide" : "show")) { if ("show" !== e || !q || void 0 === q[d]) continue; p = !0 } m[d] = q && q[d] || n.style(a, d) } else j = void 0; if (n.isEmptyObject(m)) "inline" === ("none" === j ? tb(a.nodeName) : j) && (o.display = j); else { q ? "hidden" in q && (p = q.hidden) : q = L.access(a, "fxshow", {}), f && (q.hidden = !p), p ? n(a).show() : l.done(function () { n(a).hide() }), l.done(function () { var b; L.remove(a, "fxshow"); for (b in m) n.style(a, b, m[b]) }); for (d in m) g = Ub(p ? q[d] : 0, d, l), d in q || (q[d] = g.start, p && (g.end = g.start, g.start = "width" === d || "height" === d ? 1 : 0)) } } function Wb(a, b) { var c, d, e, f, g; for (c in a) if (d = n.camelCase(c), e = b[d], f = a[c], n.isArray(f) && (e = f[1], f = a[c] = f[0]), c !== d && (a[d] = f, delete a[c]), g = n.cssHooks[d], g && "expand" in g) { f = g.expand(f), delete a[d]; for (c in f) c in a || (a[c] = f[c], b[c] = e) } else b[d] = e } function Xb(a, b, c) { var d, e, f = 0, g = Qb.length, h = n.Deferred().always(function () { delete i.elem }), i = function () { if (e) return !1; for (var b = Lb || Sb(), c = Math.max(0, j.startTime + j.duration - b), d = c / j.duration || 0, f = 1 - d, g = 0, i = j.tweens.length; i > g; g++)j.tweens[g].run(f); return h.notifyWith(a, [j, f, c]), 1 > f && i ? c : (h.resolveWith(a, [j]), !1) }, j = h.promise({ elem: a, props: n.extend({}, b), opts: n.extend(!0, { specialEasing: {} }, c), originalProperties: b, originalOptions: c, startTime: Lb || Sb(), duration: c.duration, tweens: [], createTween: function (b, c) { var d = n.Tween(a, j.opts, b, c, j.opts.specialEasing[b] || j.opts.easing); return j.tweens.push(d), d }, stop: function (b) { var c = 0, d = b ? j.tweens.length : 0; if (e) return this; for (e = !0; d > c; c++)j.tweens[c].run(1); return b ? h.resolveWith(a, [j, b]) : h.rejectWith(a, [j, b]), this } }), k = j.props; for (Wb(k, j.opts.specialEasing); g > f; f++)if (d = Qb[f].call(j, a, k, j.opts)) return d; return n.map(k, Ub, j), n.isFunction(j.opts.start) && j.opts.start.call(a, j), n.fx.timer(n.extend(i, { elem: a, anim: j, queue: j.opts.queue })), j.progress(j.opts.progress).done(j.opts.done, j.opts.complete).fail(j.opts.fail).always(j.opts.always) } n.Animation = n.extend(Xb, { tweener: function (a, b) { n.isFunction(a) ? (b = a, a = ["*"]) : a = a.split(" "); for (var c, d = 0, e = a.length; e > d; d++)c = a[d], Rb[c] = Rb[c] || [], Rb[c].unshift(b) }, prefilter: function (a, b) { b ? Qb.unshift(a) : Qb.push(a) } }), n.speed = function (a, b, c) { var d = a && "object" == typeof a ? n.extend({}, a) : { complete: c || !c && b || n.isFunction(a) && a, duration: a, easing: c && b || b && !n.isFunction(b) && b }; return d.duration = n.fx.off ? 0 : "number" == typeof d.duration ? d.duration : d.duration in n.fx.speeds ? n.fx.speeds[d.duration] : n.fx.speeds._default, (null == d.queue || d.queue === !0) && (d.queue = "fx"), d.old = d.complete, d.complete = function () { n.isFunction(d.old) && d.old.call(this), d.queue && n.dequeue(this, d.queue) }, d }, n.fn.extend({ fadeTo: function (a, b, c, d) { return this.filter(S).css("opacity", 0).show().end().animate({ opacity: b }, a, c, d) }, animate: function (a, b, c, d) { var e = n.isEmptyObject(a), f = n.speed(b, c, d), g = function () { var b = Xb(this, n.extend({}, a), f); (e || L.get(this, "finish")) && b.stop(!0) }; return g.finish = g, e || f.queue === !1 ? this.each(g) : this.queue(f.queue, g) }, stop: function (a, b, c) { var d = function (a) { var b = a.stop; delete a.stop, b(c) }; return "string" != typeof a && (c = b, b = a, a = void 0), b && a !== !1 && this.queue(a || "fx", []), this.each(function () { var b = !0, e = null != a && a + "queueHooks", f = n.timers, g = L.get(this); if (e) g[e] && g[e].stop && d(g[e]); else for (e in g) g[e] && g[e].stop && Pb.test(e) && d(g[e]); for (e = f.length; e--;)f[e].elem !== this || null != a && f[e].queue !== a || (f[e].anim.stop(c), b = !1, f.splice(e, 1)); (b || !c) && n.dequeue(this, a) }) }, finish: function (a) { return a !== !1 && (a = a || "fx"), this.each(function () { var b, c = L.get(this), d = c[a + "queue"], e = c[a + "queueHooks"], f = n.timers, g = d ? d.length : 0; for (c.finish = !0, n.queue(this, a, []), e && e.stop && e.stop.call(this, !0), b = f.length; b--;)f[b].elem === this && f[b].queue === a && (f[b].anim.stop(!0), f.splice(b, 1)); for (b = 0; g > b; b++)d[b] && d[b].finish && d[b].finish.call(this); delete c.finish }) } }), n.each(["toggle", "show", "hide"], function (a, b) { var c = n.fn[b]; n.fn[b] = function (a, d, e) { return null == a || "boolean" == typeof a ? c.apply(this, arguments) : this.animate(Tb(b, !0), a, d, e) } }), n.each({ slideDown: Tb("show"), slideUp: Tb("hide"), slideToggle: Tb("toggle"), fadeIn: { opacity: "show" }, fadeOut: { opacity: "hide" }, fadeToggle: { opacity: "toggle" } }, function (a, b) { n.fn[a] = function (a, c, d) { return this.animate(b, a, c, d) } }), n.timers = [], n.fx.tick = function () { var a, b = 0, c = n.timers; for (Lb = n.now(); b < c.length; b++)a = c[b], a() || c[b] !== a || c.splice(b--, 1); c.length || n.fx.stop(), Lb = void 0 }, n.fx.timer = function (a) { n.timers.push(a), a() ? n.fx.start() : n.timers.pop() }, n.fx.interval = 13, n.fx.start = function () { Mb || (Mb = setInterval(n.fx.tick, n.fx.interval)) }, n.fx.stop = function () { clearInterval(Mb), Mb = null }, n.fx.speeds = { slow: 600, fast: 200, _default: 400 }, n.fn.delay = function (a, b) { return a = n.fx ? n.fx.speeds[a] || a : a, b = b || "fx", this.queue(b, function (b, c) { var d = setTimeout(b, a); c.stop = function () { clearTimeout(d) } }) }, function () { var a = l.createElement("input"), b = l.createElement("select"), c = b.appendChild(l.createElement("option")); a.type = "checkbox", k.checkOn = "" !== a.value, k.optSelected = c.selected, b.disabled = !0, k.optDisabled = !c.disabled, a = l.createElement("input"), a.value = "t", a.type = "radio", k.radioValue = "t" === a.value }(); var Yb, Zb, $b = n.expr.attrHandle; n.fn.extend({ attr: function (a, b) { return J(this, n.attr, a, b, arguments.length > 1) }, removeAttr: function (a) { return this.each(function () { n.removeAttr(this, a) }) } }), n.extend({
8
+ attr: function (a, b, c) {
9
+ var d, e, f = a.nodeType; if (a && 3 !== f && 8 !== f && 2 !== f) return typeof a.getAttribute === U ? n.prop(a, b, c) : (1 === f && n.isXMLDoc(a) || (b = b.toLowerCase(), d = n.attrHooks[b] || (n.expr.match.bool.test(b) ? Zb : Yb)), void 0 === c ? d && "get" in d && null !== (e = d.get(a, b)) ? e : (e = n.find.attr(a, b), null == e ? void 0 : e) : null !== c ? d && "set" in d && void 0 !== (e = d.set(a, c, b)) ? e : (a.setAttribute(b, c + ""), c) : void n.removeAttr(a, b))
10
+ }, removeAttr: function (a, b) { var c, d, e = 0, f = b && b.match(E); if (f && 1 === a.nodeType) while (c = f[e++]) d = n.propFix[c] || c, n.expr.match.bool.test(c) && (a[d] = !1), a.removeAttribute(c) }, attrHooks: { type: { set: function (a, b) { if (!k.radioValue && "radio" === b && n.nodeName(a, "input")) { var c = a.value; return a.setAttribute("type", b), c && (a.value = c), b } } } }
11
+ }), Zb = { set: function (a, b, c) { return b === !1 ? n.removeAttr(a, c) : a.setAttribute(c, c), c } }, n.each(n.expr.match.bool.source.match(/\w+/g), function (a, b) { var c = $b[b] || n.find.attr; $b[b] = function (a, b, d) { var e, f; return d || (f = $b[b], $b[b] = e, e = null != c(a, b, d) ? b.toLowerCase() : null, $b[b] = f), e } }); var _b = /^(?:input|select|textarea|button)$/i; n.fn.extend({ prop: function (a, b) { return J(this, n.prop, a, b, arguments.length > 1) }, removeProp: function (a) { return this.each(function () { delete this[n.propFix[a] || a] }) } }), n.extend({ propFix: { "for": "htmlFor", "class": "className" }, prop: function (a, b, c) { var d, e, f, g = a.nodeType; if (a && 3 !== g && 8 !== g && 2 !== g) return f = 1 !== g || !n.isXMLDoc(a), f && (b = n.propFix[b] || b, e = n.propHooks[b]), void 0 !== c ? e && "set" in e && void 0 !== (d = e.set(a, c, b)) ? d : a[b] = c : e && "get" in e && null !== (d = e.get(a, b)) ? d : a[b] }, propHooks: { tabIndex: { get: function (a) { return a.hasAttribute("tabindex") || _b.test(a.nodeName) || a.href ? a.tabIndex : -1 } } } }), k.optSelected || (n.propHooks.selected = { get: function (a) { var b = a.parentNode; return b && b.parentNode && b.parentNode.selectedIndex, null } }), n.each(["tabIndex", "readOnly", "maxLength", "cellSpacing", "cellPadding", "rowSpan", "colSpan", "useMap", "frameBorder", "contentEditable"], function () { n.propFix[this.toLowerCase()] = this }); var ac = /[\t\r\n\f]/g; n.fn.extend({ addClass: function (a) { var b, c, d, e, f, g, h = "string" == typeof a && a, i = 0, j = this.length; if (n.isFunction(a)) return this.each(function (b) { n(this).addClass(a.call(this, b, this.className)) }); if (h) for (b = (a || "").match(E) || []; j > i; i++)if (c = this[i], d = 1 === c.nodeType && (c.className ? (" " + c.className + " ").replace(ac, " ") : " ")) { f = 0; while (e = b[f++]) d.indexOf(" " + e + " ") < 0 && (d += e + " "); g = n.trim(d), c.className !== g && (c.className = g) } return this }, removeClass: function (a) { var b, c, d, e, f, g, h = 0 === arguments.length || "string" == typeof a && a, i = 0, j = this.length; if (n.isFunction(a)) return this.each(function (b) { n(this).removeClass(a.call(this, b, this.className)) }); if (h) for (b = (a || "").match(E) || []; j > i; i++)if (c = this[i], d = 1 === c.nodeType && (c.className ? (" " + c.className + " ").replace(ac, " ") : "")) { f = 0; while (e = b[f++]) while (d.indexOf(" " + e + " ") >= 0) d = d.replace(" " + e + " ", " "); g = a ? n.trim(d) : "", c.className !== g && (c.className = g) } return this }, toggleClass: function (a, b) { var c = typeof a; return "boolean" == typeof b && "string" === c ? b ? this.addClass(a) : this.removeClass(a) : this.each(n.isFunction(a) ? function (c) { n(this).toggleClass(a.call(this, c, this.className, b), b) } : function () { if ("string" === c) { var b, d = 0, e = n(this), f = a.match(E) || []; while (b = f[d++]) e.hasClass(b) ? e.removeClass(b) : e.addClass(b) } else (c === U || "boolean" === c) && (this.className && L.set(this, "__className__", this.className), this.className = this.className || a === !1 ? "" : L.get(this, "__className__") || "") }) }, hasClass: function (a) { for (var b = " " + a + " ", c = 0, d = this.length; d > c; c++)if (1 === this[c].nodeType && (" " + this[c].className + " ").replace(ac, " ").indexOf(b) >= 0) return !0; return !1 } }); var bc = /\r/g; n.fn.extend({ val: function (a) { var b, c, d, e = this[0]; { if (arguments.length) return d = n.isFunction(a), this.each(function (c) { var e; 1 === this.nodeType && (e = d ? a.call(this, c, n(this).val()) : a, null == e ? e = "" : "number" == typeof e ? e += "" : n.isArray(e) && (e = n.map(e, function (a) { return null == a ? "" : a + "" })), b = n.valHooks[this.type] || n.valHooks[this.nodeName.toLowerCase()], b && "set" in b && void 0 !== b.set(this, e, "value") || (this.value = e)) }); if (e) return b = n.valHooks[e.type] || n.valHooks[e.nodeName.toLowerCase()], b && "get" in b && void 0 !== (c = b.get(e, "value")) ? c : (c = e.value, "string" == typeof c ? c.replace(bc, "") : null == c ? "" : c) } } }), n.extend({ valHooks: { option: { get: function (a) { var b = n.find.attr(a, "value"); return null != b ? b : n.trim(n.text(a)) } }, select: { get: function (a) { for (var b, c, d = a.options, e = a.selectedIndex, f = "select-one" === a.type || 0 > e, g = f ? null : [], h = f ? e + 1 : d.length, i = 0 > e ? h : f ? e : 0; h > i; i++)if (c = d[i], !(!c.selected && i !== e || (k.optDisabled ? c.disabled : null !== c.getAttribute("disabled")) || c.parentNode.disabled && n.nodeName(c.parentNode, "optgroup"))) { if (b = n(c).val(), f) return b; g.push(b) } return g }, set: function (a, b) { var c, d, e = a.options, f = n.makeArray(b), g = e.length; while (g--) d = e[g], (d.selected = n.inArray(d.value, f) >= 0) && (c = !0); return c || (a.selectedIndex = -1), f } } } }), n.each(["radio", "checkbox"], function () { n.valHooks[this] = { set: function (a, b) { return n.isArray(b) ? a.checked = n.inArray(n(a).val(), b) >= 0 : void 0 } }, k.checkOn || (n.valHooks[this].get = function (a) { return null === a.getAttribute("value") ? "on" : a.value }) }), n.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "), function (a, b) { n.fn[b] = function (a, c) { return arguments.length > 0 ? this.on(b, null, a, c) : this.trigger(b) } }), n.fn.extend({ hover: function (a, b) { return this.mouseenter(a).mouseleave(b || a) }, bind: function (a, b, c) { return this.on(a, null, b, c) }, unbind: function (a, b) { return this.off(a, null, b) }, delegate: function (a, b, c, d) { return this.on(b, a, c, d) }, undelegate: function (a, b, c) { return 1 === arguments.length ? this.off(a, "**") : this.off(b, a || "**", c) } }); var cc = n.now(), dc = /\?/; n.parseJSON = function (a) { return JSON.parse(a + "") }, n.parseXML = function (a) { var b, c; if (!a || "string" != typeof a) return null; try { c = new DOMParser, b = c.parseFromString(a, "text/xml") } catch (d) { b = void 0 } return (!b || b.getElementsByTagName("parsererror").length) && n.error("Invalid XML: " + a), b }; var ec, fc, gc = /#.*$/, hc = /([?&])_=[^&]*/, ic = /^(.*?):[ \t]*([^\r\n]*)$/gm, jc = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/, kc = /^(?:GET|HEAD)$/, lc = /^\/\//, mc = /^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/, nc = {}, oc = {}, pc = "*/".concat("*"); try { fc = location.href } catch (qc) { fc = l.createElement("a"), fc.href = "", fc = fc.href } ec = mc.exec(fc.toLowerCase()) || []; function rc(a) { return function (b, c) { "string" != typeof b && (c = b, b = "*"); var d, e = 0, f = b.toLowerCase().match(E) || []; if (n.isFunction(c)) while (d = f[e++]) "+" === d[0] ? (d = d.slice(1) || "*", (a[d] = a[d] || []).unshift(c)) : (a[d] = a[d] || []).push(c) } } function sc(a, b, c, d) { var e = {}, f = a === oc; function g(h) { var i; return e[h] = !0, n.each(a[h] || [], function (a, h) { var j = h(b, c, d); return "string" != typeof j || f || e[j] ? f ? !(i = j) : void 0 : (b.dataTypes.unshift(j), g(j), !1) }), i } return g(b.dataTypes[0]) || !e["*"] && g("*") } function tc(a, b) { var c, d, e = n.ajaxSettings.flatOptions || {}; for (c in b) void 0 !== b[c] && ((e[c] ? a : d || (d = {}))[c] = b[c]); return d && n.extend(!0, a, d), a } function uc(a, b, c) { var d, e, f, g, h = a.contents, i = a.dataTypes; while ("*" === i[0]) i.shift(), void 0 === d && (d = a.mimeType || b.getResponseHeader("Content-Type")); if (d) for (e in h) if (h[e] && h[e].test(d)) { i.unshift(e); break } if (i[0] in c) f = i[0]; else { for (e in c) { if (!i[0] || a.converters[e + " " + i[0]]) { f = e; break } g || (g = e) } f = f || g } return f ? (f !== i[0] && i.unshift(f), c[f]) : void 0 } function vc(a, b, c, d) { var e, f, g, h, i, j = {}, k = a.dataTypes.slice(); if (k[1]) for (g in a.converters) j[g.toLowerCase()] = a.converters[g]; f = k.shift(); while (f) if (a.responseFields[f] && (c[a.responseFields[f]] = b), !i && d && a.dataFilter && (b = a.dataFilter(b, a.dataType)), i = f, f = k.shift()) if ("*" === f) f = i; else if ("*" !== i && i !== f) { if (g = j[i + " " + f] || j["* " + f], !g) for (e in j) if (h = e.split(" "), h[1] === f && (g = j[i + " " + h[0]] || j["* " + h[0]])) { g === !0 ? g = j[e] : j[e] !== !0 && (f = h[0], k.unshift(h[1])); break } if (g !== !0) if (g && a["throws"]) b = g(b); else try { b = g(b) } catch (l) { return { state: "parsererror", error: g ? l : "No conversion from " + i + " to " + f } } } return { state: "success", data: b } } n.extend({ active: 0, lastModified: {}, etag: {}, ajaxSettings: { url: fc, type: "GET", isLocal: jc.test(ec[1]), global: !0, processData: !0, async: !0, contentType: "application/x-www-form-urlencoded; charset=UTF-8", accepts: { "*": pc, text: "text/plain", html: "text/html", xml: "application/xml, text/xml", json: "application/json, text/javascript" }, contents: { xml: /xml/, html: /html/, json: /json/ }, responseFields: { xml: "responseXML", text: "responseText", json: "responseJSON" }, converters: { "* text": String, "text html": !0, "text json": n.parseJSON, "text xml": n.parseXML }, flatOptions: { url: !0, context: !0 } }, ajaxSetup: function (a, b) { return b ? tc(tc(a, n.ajaxSettings), b) : tc(n.ajaxSettings, a) }, ajaxPrefilter: rc(nc), ajaxTransport: rc(oc), ajax: function (a, b) { "object" == typeof a && (b = a, a = void 0), b = b || {}; var c, d, e, f, g, h, i, j, k = n.ajaxSetup({}, b), l = k.context || k, m = k.context && (l.nodeType || l.jquery) ? n(l) : n.event, o = n.Deferred(), p = n.Callbacks("once memory"), q = k.statusCode || {}, r = {}, s = {}, t = 0, u = "canceled", v = { readyState: 0, getResponseHeader: function (a) { var b; if (2 === t) { if (!f) { f = {}; while (b = ic.exec(e)) f[b[1].toLowerCase()] = b[2] } b = f[a.toLowerCase()] } return null == b ? null : b }, getAllResponseHeaders: function () { return 2 === t ? e : null }, setRequestHeader: function (a, b) { var c = a.toLowerCase(); return t || (a = s[c] = s[c] || a, r[a] = b), this }, overrideMimeType: function (a) { return t || (k.mimeType = a), this }, statusCode: function (a) { var b; if (a) if (2 > t) for (b in a) q[b] = [q[b], a[b]]; else v.always(a[v.status]); return this }, abort: function (a) { var b = a || u; return c && c.abort(b), x(0, b), this } }; if (o.promise(v).complete = p.add, v.success = v.done, v.error = v.fail, k.url = ((a || k.url || fc) + "").replace(gc, "").replace(lc, ec[1] + "//"), k.type = b.method || b.type || k.method || k.type, k.dataTypes = n.trim(k.dataType || "*").toLowerCase().match(E) || [""], null == k.crossDomain && (h = mc.exec(k.url.toLowerCase()), k.crossDomain = !(!h || h[1] === ec[1] && h[2] === ec[2] && (h[3] || ("http:" === h[1] ? "80" : "443")) === (ec[3] || ("http:" === ec[1] ? "80" : "443")))), k.data && k.processData && "string" != typeof k.data && (k.data = n.param(k.data, k.traditional)), sc(nc, k, b, v), 2 === t) return v; i = k.global, i && 0 === n.active++ && n.event.trigger("ajaxStart"), k.type = k.type.toUpperCase(), k.hasContent = !kc.test(k.type), d = k.url, k.hasContent || (k.data && (d = k.url += (dc.test(d) ? "&" : "?") + k.data, delete k.data), k.cache === !1 && (k.url = hc.test(d) ? d.replace(hc, "$1_=" + cc++) : d + (dc.test(d) ? "&" : "?") + "_=" + cc++)), k.ifModified && (n.lastModified[d] && v.setRequestHeader("If-Modified-Since", n.lastModified[d]), n.etag[d] && v.setRequestHeader("If-None-Match", n.etag[d])), (k.data && k.hasContent && k.contentType !== !1 || b.contentType) && v.setRequestHeader("Content-Type", k.contentType), v.setRequestHeader("Accept", k.dataTypes[0] && k.accepts[k.dataTypes[0]] ? k.accepts[k.dataTypes[0]] + ("*" !== k.dataTypes[0] ? ", " + pc + "; q=0.01" : "") : k.accepts["*"]); for (j in k.headers) v.setRequestHeader(j, k.headers[j]); if (k.beforeSend && (k.beforeSend.call(l, v, k) === !1 || 2 === t)) return v.abort(); u = "abort"; for (j in { success: 1, error: 1, complete: 1 }) v[j](k[j]); if (c = sc(oc, k, b, v)) { v.readyState = 1, i && m.trigger("ajaxSend", [v, k]), k.async && k.timeout > 0 && (g = setTimeout(function () { v.abort("timeout") }, k.timeout)); try { t = 1, c.send(r, x) } catch (w) { if (!(2 > t)) throw w; x(-1, w) } } else x(-1, "No Transport"); function x(a, b, f, h) { var j, r, s, u, w, x = b; 2 !== t && (t = 2, g && clearTimeout(g), c = void 0, e = h || "", v.readyState = a > 0 ? 4 : 0, j = a >= 200 && 300 > a || 304 === a, f && (u = uc(k, v, f)), u = vc(k, u, v, j), j ? (k.ifModified && (w = v.getResponseHeader("Last-Modified"), w && (n.lastModified[d] = w), w = v.getResponseHeader("etag"), w && (n.etag[d] = w)), 204 === a || "HEAD" === k.type ? x = "nocontent" : 304 === a ? x = "notmodified" : (x = u.state, r = u.data, s = u.error, j = !s)) : (s = x, (a || !x) && (x = "error", 0 > a && (a = 0))), v.status = a, v.statusText = (b || x) + "", j ? o.resolveWith(l, [r, x, v]) : o.rejectWith(l, [v, x, s]), v.statusCode(q), q = void 0, i && m.trigger(j ? "ajaxSuccess" : "ajaxError", [v, k, j ? r : s]), p.fireWith(l, [v, x]), i && (m.trigger("ajaxComplete", [v, k]), --n.active || n.event.trigger("ajaxStop"))) } return v }, getJSON: function (a, b, c) { return n.get(a, b, c, "json") }, getScript: function (a, b) { return n.get(a, void 0, b, "script") } }), n.each(["get", "post"], function (a, b) { n[b] = function (a, c, d, e) { return n.isFunction(c) && (e = e || d, d = c, c = void 0), n.ajax({ url: a, type: b, dataType: e, data: c, success: d }) } }), n.each(["ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend"], function (a, b) { n.fn[b] = function (a) { return this.on(b, a) } }), n._evalUrl = function (a) { return n.ajax({ url: a, type: "GET", dataType: "script", async: !1, global: !1, "throws": !0 }) }, n.fn.extend({ wrapAll: function (a) { var b; return n.isFunction(a) ? this.each(function (b) { n(this).wrapAll(a.call(this, b)) }) : (this[0] && (b = n(a, this[0].ownerDocument).eq(0).clone(!0), this[0].parentNode && b.insertBefore(this[0]), b.map(function () { var a = this; while (a.firstElementChild) a = a.firstElementChild; return a }).append(this)), this) }, wrapInner: function (a) { return this.each(n.isFunction(a) ? function (b) { n(this).wrapInner(a.call(this, b)) } : function () { var b = n(this), c = b.contents(); c.length ? c.wrapAll(a) : b.append(a) }) }, wrap: function (a) { var b = n.isFunction(a); return this.each(function (c) { n(this).wrapAll(b ? a.call(this, c) : a) }) }, unwrap: function () { return this.parent().each(function () { n.nodeName(this, "body") || n(this).replaceWith(this.childNodes) }).end() } }), n.expr.filters.hidden = function (a) { return a.offsetWidth <= 0 && a.offsetHeight <= 0 }, n.expr.filters.visible = function (a) { return !n.expr.filters.hidden(a) }; var wc = /%20/g, xc = /\[\]$/, yc = /\r?\n/g, zc = /^(?:submit|button|image|reset|file)$/i, Ac = /^(?:input|select|textarea|keygen)/i; function Bc(a, b, c, d) { var e; if (n.isArray(b)) n.each(b, function (b, e) { c || xc.test(a) ? d(a, e) : Bc(a + "[" + ("object" == typeof e ? b : "") + "]", e, c, d) }); else if (c || "object" !== n.type(b)) d(a, b); else for (e in b) Bc(a + "[" + e + "]", b[e], c, d) } n.param = function (a, b) { var c, d = [], e = function (a, b) { b = n.isFunction(b) ? b() : null == b ? "" : b, d[d.length] = encodeURIComponent(a) + "=" + encodeURIComponent(b) }; if (void 0 === b && (b = n.ajaxSettings && n.ajaxSettings.traditional), n.isArray(a) || a.jquery && !n.isPlainObject(a)) n.each(a, function () { e(this.name, this.value) }); else for (c in a) Bc(c, a[c], b, e); return d.join("&").replace(wc, "+") }, n.fn.extend({ serialize: function () { return n.param(this.serializeArray()) }, serializeArray: function () { return this.map(function () { var a = n.prop(this, "elements"); return a ? n.makeArray(a) : this }).filter(function () { var a = this.type; return this.name && !n(this).is(":disabled") && Ac.test(this.nodeName) && !zc.test(a) && (this.checked || !T.test(a)) }).map(function (a, b) { var c = n(this).val(); return null == c ? null : n.isArray(c) ? n.map(c, function (a) { return { name: b.name, value: a.replace(yc, "\r\n") } }) : { name: b.name, value: c.replace(yc, "\r\n") } }).get() } }), n.ajaxSettings.xhr = function () { try { return new XMLHttpRequest } catch (a) { } }; var Cc = 0, Dc = {}, Ec = { 0: 200, 1223: 204 }, Fc = n.ajaxSettings.xhr(); a.ActiveXObject && n(a).on("unload", function () { for (var a in Dc) Dc[a]() }), k.cors = !!Fc && "withCredentials" in Fc, k.ajax = Fc = !!Fc, n.ajaxTransport(function (a) { var b; return k.cors || Fc && !a.crossDomain ? { send: function (c, d) { var e, f = a.xhr(), g = ++Cc; if (f.open(a.type, a.url, a.async, a.username, a.password), a.xhrFields) for (e in a.xhrFields) f[e] = a.xhrFields[e]; a.mimeType && f.overrideMimeType && f.overrideMimeType(a.mimeType), a.crossDomain || c["X-Requested-With"] || (c["X-Requested-With"] = "XMLHttpRequest"); for (e in c) f.setRequestHeader(e, c[e]); b = function (a) { return function () { b && (delete Dc[g], b = f.onload = f.onerror = null, "abort" === a ? f.abort() : "error" === a ? d(f.status, f.statusText) : d(Ec[f.status] || f.status, f.statusText, "string" == typeof f.responseText ? { text: f.responseText } : void 0, f.getAllResponseHeaders())) } }, f.onload = b(), f.onerror = b("error"), b = Dc[g] = b("abort"); try { f.send(a.hasContent && a.data || null) } catch (h) { if (b) throw h } }, abort: function () { b && b() } } : void 0 }), n.ajaxSetup({ accepts: { script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript" }, contents: { script: /(?:java|ecma)script/ }, converters: { "text script": function (a) { return n.globalEval(a), a } } }), n.ajaxPrefilter("script", function (a) { void 0 === a.cache && (a.cache = !1), a.crossDomain && (a.type = "GET") }), n.ajaxTransport("script", function (a) { if (a.crossDomain) { var b, c; return { send: function (d, e) { b = n("<script>").prop({ async: !0, charset: a.scriptCharset, src: a.url }).on("load error", c = function (a) { b.remove(), c = null, a && e("error" === a.type ? 404 : 200, a.type) }), l.head.appendChild(b[0]) }, abort: function () { c && c() } } } }); var Gc = [], Hc = /(=)\?(?=&|$)|\?\?/; n.ajaxSetup({ jsonp: "callback", jsonpCallback: function () { var a = Gc.pop() || n.expando + "_" + cc++; return this[a] = !0, a } }), n.ajaxPrefilter("json jsonp", function (b, c, d) { var e, f, g, h = b.jsonp !== !1 && (Hc.test(b.url) ? "url" : "string" == typeof b.data && !(b.contentType || "").indexOf("application/x-www-form-urlencoded") && Hc.test(b.data) && "data"); return h || "jsonp" === b.dataTypes[0] ? (e = b.jsonpCallback = n.isFunction(b.jsonpCallback) ? b.jsonpCallback() : b.jsonpCallback, h ? b[h] = b[h].replace(Hc, "$1" + e) : b.jsonp !== !1 && (b.url += (dc.test(b.url) ? "&" : "?") + b.jsonp + "=" + e), b.converters["script json"] = function () { return g || n.error(e + " was not called"), g[0] }, b.dataTypes[0] = "json", f = a[e], a[e] = function () { g = arguments }, d.always(function () { a[e] = f, b[e] && (b.jsonpCallback = c.jsonpCallback, Gc.push(e)), g && n.isFunction(f) && f(g[0]), g = f = void 0 }), "script") : void 0 }), n.parseHTML = function (a, b, c) { if (!a || "string" != typeof a) return null; "boolean" == typeof b && (c = b, b = !1), b = b || l; var d = v.exec(a), e = !c && []; return d ? [b.createElement(d[1])] : (d = n.buildFragment([a], b, e), e && e.length && n(e).remove(), n.merge([], d.childNodes)) }; var Ic = n.fn.load; n.fn.load = function (a, b, c) { if ("string" != typeof a && Ic) return Ic.apply(this, arguments); var d, e, f, g = this, h = a.indexOf(" "); return h >= 0 && (d = n.trim(a.slice(h)), a = a.slice(0, h)), n.isFunction(b) ? (c = b, b = void 0) : b && "object" == typeof b && (e = "POST"), g.length > 0 && n.ajax({ url: a, type: e, dataType: "html", data: b }).done(function (a) { f = arguments, g.html(d ? n("<div>").append(n.parseHTML(a)).find(d) : a) }).complete(c && function (a, b) { g.each(c, f || [a.responseText, b, a]) }), this }, n.expr.filters.animated = function (a) { return n.grep(n.timers, function (b) { return a === b.elem }).length }; var Jc = a.document.documentElement; function Kc(a) { return n.isWindow(a) ? a : 9 === a.nodeType && a.defaultView } n.offset = { setOffset: function (a, b, c) { var d, e, f, g, h, i, j, k = n.css(a, "position"), l = n(a), m = {}; "static" === k && (a.style.position = "relative"), h = l.offset(), f = n.css(a, "top"), i = n.css(a, "left"), j = ("absolute" === k || "fixed" === k) && (f + i).indexOf("auto") > -1, j ? (d = l.position(), g = d.top, e = d.left) : (g = parseFloat(f) || 0, e = parseFloat(i) || 0), n.isFunction(b) && (b = b.call(a, c, h)), null != b.top && (m.top = b.top - h.top + g), null != b.left && (m.left = b.left - h.left + e), "using" in b ? b.using.call(a, m) : l.css(m) } }, n.fn.extend({ offset: function (a) { if (arguments.length) return void 0 === a ? this : this.each(function (b) { n.offset.setOffset(this, a, b) }); var b, c, d = this[0], e = { top: 0, left: 0 }, f = d && d.ownerDocument; if (f) return b = f.documentElement, n.contains(b, d) ? (typeof d.getBoundingClientRect !== U && (e = d.getBoundingClientRect()), c = Kc(f), { top: e.top + c.pageYOffset - b.clientTop, left: e.left + c.pageXOffset - b.clientLeft }) : e }, position: function () { if (this[0]) { var a, b, c = this[0], d = { top: 0, left: 0 }; return "fixed" === n.css(c, "position") ? b = c.getBoundingClientRect() : (a = this.offsetParent(), b = this.offset(), n.nodeName(a[0], "html") || (d = a.offset()), d.top += n.css(a[0], "borderTopWidth", !0), d.left += n.css(a[0], "borderLeftWidth", !0)), { top: b.top - d.top - n.css(c, "marginTop", !0), left: b.left - d.left - n.css(c, "marginLeft", !0) } } }, offsetParent: function () { return this.map(function () { var a = this.offsetParent || Jc; while (a && !n.nodeName(a, "html") && "static" === n.css(a, "position")) a = a.offsetParent; return a || Jc }) } }), n.each({ scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function (b, c) { var d = "pageYOffset" === c; n.fn[b] = function (e) { return J(this, function (b, e, f) { var g = Kc(b); return void 0 === f ? g ? g[c] : b[e] : void (g ? g.scrollTo(d ? a.pageXOffset : f, d ? f : a.pageYOffset) : b[e] = f) }, b, e, arguments.length, null) } }), n.each(["top", "left"], function (a, b) { n.cssHooks[b] = yb(k.pixelPosition, function (a, c) { return c ? (c = xb(a, b), vb.test(c) ? n(a).position()[b] + "px" : c) : void 0 }) }), n.each({ Height: "height", Width: "width" }, function (a, b) { n.each({ padding: "inner" + a, content: b, "": "outer" + a }, function (c, d) { n.fn[d] = function (d, e) { var f = arguments.length && (c || "boolean" != typeof d), g = c || (d === !0 || e === !0 ? "margin" : "border"); return J(this, function (b, c, d) { var e; return n.isWindow(b) ? b.document.documentElement["client" + a] : 9 === b.nodeType ? (e = b.documentElement, Math.max(b.body["scroll" + a], e["scroll" + a], b.body["offset" + a], e["offset" + a], e["client" + a])) : void 0 === d ? n.css(b, c, g) : n.style(b, c, d, g) }, b, f ? d : void 0, f, null) } }) }), n.fn.size = function () { return this.length }, n.fn.andSelf = n.fn.addBack, "function" == typeof define && define.amd && define("jquery", [], function () { return n }); var Lc = a.jQuery, Mc = a.$; return n.noConflict = function (b) { return a.$ === n && (a.$ = Mc), b && a.jQuery === n && (a.jQuery = Lc), n }, typeof b === U && (a.jQuery = a.$ = n), n
12
+ });
5
13
  // Bootstrap
6
14
  /*!
7
15
  * Bootstrap v3.1.1 (http://getbootstrap.com)
8
16
  * Copyright 2011-2014 Twitter, Inc.
9
17
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
10
18
  */
11
- if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]};return!1}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one(a.support.transition.end,function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b()})}(jQuery),+function(a){"use strict";var b='[data-dismiss="alert"]',c=function(c){a(c).on("click",b,this.close)};c.prototype.close=function(b){function c(){f.trigger("closed.bs.alert").remove()}var d=a(this),e=d.attr("data-target");e||(e=d.attr("href"),e=e&&e.replace(/.*(?=#[^\s]*$)/,""));var f=a(e);b&&b.preventDefault(),f.length||(f=d.hasClass("alert")?d:d.parent()),f.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(f.removeClass("in"),a.support.transition&&f.hasClass("fade")?f.one(a.support.transition.end,c).emulateTransitionEnd(150):c())};var d=a.fn.alert;a.fn.alert=function(b){return this.each(function(){var d=a(this),e=d.data("bs.alert");e||d.data("bs.alert",e=new c(this)),"string"==typeof b&&e[b].call(d)})},a.fn.alert.Constructor=c,a.fn.alert.noConflict=function(){return a.fn.alert=d,this},a(document).on("click.bs.alert.data-api",b,c.prototype.close)}(jQuery),+function(a){"use strict";var b=function(c,d){this.$element=a(c),this.options=a.extend({},b.DEFAULTS,d),this.isLoading=!1};b.DEFAULTS={loadingText:"loading..."},b.prototype.setState=function(b){var c="disabled",d=this.$element,e=d.is("input")?"val":"html",f=d.data();b+="Text",f.resetText||d.data("resetText",d[e]()),d[e](f[b]||this.options[b]),setTimeout(a.proxy(function(){"loadingText"==b?(this.isLoading=!0,d.addClass(c).attr(c,c)):this.isLoading&&(this.isLoading=!1,d.removeClass(c).removeAttr(c))},this),0)},b.prototype.toggle=function(){var a=!0,b=this.$element.closest('[data-toggle="buttons"]');if(b.length){var c=this.$element.find("input");"radio"==c.prop("type")&&(c.prop("checked")&&this.$element.hasClass("active")?a=!1:b.find(".active").removeClass("active")),a&&c.prop("checked",!this.$element.hasClass("active")).trigger("change")}a&&this.$element.toggleClass("active")};var c=a.fn.button;a.fn.button=function(c){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof c&&c;e||d.data("bs.button",e=new b(this,f)),"toggle"==c?e.toggle():c&&e.setState(c)})},a.fn.button.Constructor=b,a.fn.button.noConflict=function(){return a.fn.button=c,this},a(document).on("click.bs.button.data-api","[data-toggle^=button]",function(b){var c=a(b.target);c.hasClass("btn")||(c=c.closest(".btn")),c.button("toggle"),b.preventDefault()})}(jQuery),+function(a){"use strict";var b=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=this.sliding=this.interval=this.$active=this.$items=null,"hover"==this.options.pause&&this.$element.on("mouseenter",a.proxy(this.pause,this)).on("mouseleave",a.proxy(this.cycle,this))};b.DEFAULTS={interval:5e3,pause:"hover",wrap:!0},b.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},b.prototype.getActiveIndex=function(){return this.$active=this.$element.find(".item.active"),this.$items=this.$active.parent().children(),this.$items.index(this.$active)},b.prototype.to=function(b){var c=this,d=this.getActiveIndex();return b>this.$items.length-1||0>b?void 0:this.sliding?this.$element.one("slid.bs.carousel",function(){c.to(b)}):d==b?this.pause().cycle():this.slide(b>d?"next":"prev",a(this.$items[b]))},b.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},b.prototype.next=function(){return this.sliding?void 0:this.slide("next")},b.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},b.prototype.slide=function(b,c){var d=this.$element.find(".item.active"),e=c||d[b](),f=this.interval,g="next"==b?"left":"right",h="next"==b?"first":"last",i=this;if(!e.length){if(!this.options.wrap)return;e=this.$element.find(".item")[h]()}if(e.hasClass("active"))return this.sliding=!1;var j=a.Event("slide.bs.carousel",{relatedTarget:e[0],direction:g});return this.$element.trigger(j),j.isDefaultPrevented()?void 0:(this.sliding=!0,f&&this.pause(),this.$indicators.length&&(this.$indicators.find(".active").removeClass("active"),this.$element.one("slid.bs.carousel",function(){var b=a(i.$indicators.children()[i.getActiveIndex()]);b&&b.addClass("active")})),a.support.transition&&this.$element.hasClass("slide")?(e.addClass(b),e[0].offsetWidth,d.addClass(g),e.addClass(g),d.one(a.support.transition.end,function(){e.removeClass([b,g].join(" ")).addClass("active"),d.removeClass(["active",g].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger("slid.bs.carousel")},0)}).emulateTransitionEnd(1e3*d.css("transition-duration").slice(0,-1))):(d.removeClass("active"),e.addClass("active"),this.sliding=!1,this.$element.trigger("slid.bs.carousel")),f&&this.cycle(),this)};var c=a.fn.carousel;a.fn.carousel=function(c){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},b.DEFAULTS,d.data(),"object"==typeof c&&c),g="string"==typeof c?c:f.slide;e||d.data("bs.carousel",e=new b(this,f)),"number"==typeof c?e.to(c):g?e[g]():f.interval&&e.pause().cycle()})},a.fn.carousel.Constructor=b,a.fn.carousel.noConflict=function(){return a.fn.carousel=c,this},a(document).on("click.bs.carousel.data-api","[data-slide], [data-slide-to]",function(b){var c,d=a(this),e=a(d.attr("data-target")||(c=d.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"")),f=a.extend({},e.data(),d.data()),g=d.attr("data-slide-to");g&&(f.interval=!1),e.carousel(f),(g=d.attr("data-slide-to"))&&e.data("bs.carousel").to(g),b.preventDefault()}),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var b=a(this);b.carousel(b.data())})})}(jQuery),+function(a){"use strict";var b=function(c,d){this.$element=a(c),this.options=a.extend({},b.DEFAULTS,d),this.transitioning=null,this.options.parent&&(this.$parent=a(this.options.parent)),this.options.toggle&&this.toggle()};b.DEFAULTS={toggle:!0},b.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},b.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b=a.Event("show.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.$parent&&this.$parent.find("> .panel > .in");if(c&&c.length){var d=c.data("bs.collapse");if(d&&d.transitioning)return;c.collapse("hide"),d||c.data("bs.collapse",null)}var e=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[e](0),this.transitioning=1;var f=function(){this.$element.removeClass("collapsing").addClass("collapse in")[e]("auto"),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return f.call(this);var g=a.camelCase(["scroll",e].join("-"));this.$element.one(a.support.transition.end,a.proxy(f,this)).emulateTransitionEnd(350)[e](this.$element[0][g])}}},b.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse").removeClass("in"),this.transitioning=1;var d=function(){this.transitioning=0,this.$element.trigger("hidden.bs.collapse").removeClass("collapsing").addClass("collapse")};return a.support.transition?void this.$element[c](0).one(a.support.transition.end,a.proxy(d,this)).emulateTransitionEnd(350):d.call(this)}}},b.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()};var c=a.fn.collapse;a.fn.collapse=function(c){return this.each(function(){var d=a(this),e=d.data("bs.collapse"),f=a.extend({},b.DEFAULTS,d.data(),"object"==typeof c&&c);!e&&f.toggle&&"show"==c&&(c=!c),e||d.data("bs.collapse",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.collapse.Constructor=b,a.fn.collapse.noConflict=function(){return a.fn.collapse=c,this},a(document).on("click.bs.collapse.data-api","[data-toggle=collapse]",function(b){var c,d=a(this),e=d.attr("data-target")||b.preventDefault()||(c=d.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,""),f=a(e),g=f.data("bs.collapse"),h=g?"toggle":d.data(),i=d.attr("data-parent"),j=i&&a(i);g&&g.transitioning||(j&&j.find('[data-toggle=collapse][data-parent="'+i+'"]').not(d).addClass("collapsed"),d[f.hasClass("in")?"addClass":"removeClass"]("collapsed")),f.collapse(h)})}(jQuery),+function(a){"use strict";function b(b){a(d).remove(),a(e).each(function(){var d=c(a(this)),e={relatedTarget:this};d.hasClass("open")&&(d.trigger(b=a.Event("hide.bs.dropdown",e)),b.isDefaultPrevented()||d.removeClass("open").trigger("hidden.bs.dropdown",e))})}function c(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#[A-Za-z]/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}var d=".dropdown-backdrop",e="[data-toggle=dropdown]",f=function(b){a(b).on("click.bs.dropdown",this.toggle)};f.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=c(e),g=f.hasClass("open");if(b(),!g){"ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a('<div class="dropdown-backdrop"/>').insertAfter(a(this)).on("click",b);var h={relatedTarget:this};if(f.trigger(d=a.Event("show.bs.dropdown",h)),d.isDefaultPrevented())return;f.toggleClass("open").trigger("shown.bs.dropdown",h),e.focus()}return!1}},f.prototype.keydown=function(b){if(/(38|40|27)/.test(b.keyCode)){var d=a(this);if(b.preventDefault(),b.stopPropagation(),!d.is(".disabled, :disabled")){var f=c(d),g=f.hasClass("open");if(!g||g&&27==b.keyCode)return 27==b.which&&f.find(e).focus(),d.click();var h=" li:not(.divider):visible a",i=f.find("[role=menu]"+h+", [role=listbox]"+h);if(i.length){var j=i.index(i.filter(":focus"));38==b.keyCode&&j>0&&j--,40==b.keyCode&&j<i.length-1&&j++,~j||(j=0),i.eq(j).focus()}}}};var g=a.fn.dropdown;a.fn.dropdown=function(b){return this.each(function(){var c=a(this),d=c.data("bs.dropdown");d||c.data("bs.dropdown",d=new f(this)),"string"==typeof b&&d[b].call(c)})},a.fn.dropdown.Constructor=f,a.fn.dropdown.noConflict=function(){return a.fn.dropdown=g,this},a(document).on("click.bs.dropdown.data-api",b).on("click.bs.dropdown.data-api",".dropdown form",function(a){a.stopPropagation()}).on("click.bs.dropdown.data-api",e,f.prototype.toggle).on("keydown.bs.dropdown.data-api",e+", [role=menu], [role=listbox]",f.prototype.keydown)}(jQuery),+function(a){"use strict";var b=function(b,c){this.options=c,this.$element=a(b),this.$backdrop=this.isShown=null,this.options.remote&&this.$element.find(".modal-content").load(this.options.remote,a.proxy(function(){this.$element.trigger("loaded.bs.modal")},this))};b.DEFAULTS={backdrop:!0,keyboard:!0,show:!0},b.prototype.toggle=function(a){return this[this.isShown?"hide":"show"](a)},b.prototype.show=function(b){var c=this,d=a.Event("show.bs.modal",{relatedTarget:b});this.$element.trigger(d),this.isShown||d.isDefaultPrevented()||(this.isShown=!0,this.escape(),this.$element.on("click.dismiss.bs.modal",'[data-dismiss="modal"]',a.proxy(this.hide,this)),this.backdrop(function(){var d=a.support.transition&&c.$element.hasClass("fade");c.$element.parent().length||c.$element.appendTo(document.body),c.$element.show().scrollTop(0),d&&c.$element[0].offsetWidth,c.$element.addClass("in").attr("aria-hidden",!1),c.enforceFocus();var e=a.Event("shown.bs.modal",{relatedTarget:b});d?c.$element.find(".modal-dialog").one(a.support.transition.end,function(){c.$element.focus().trigger(e)}).emulateTransitionEnd(300):c.$element.focus().trigger(e)}))},b.prototype.hide=function(b){b&&b.preventDefault(),b=a.Event("hide.bs.modal"),this.$element.trigger(b),this.isShown&&!b.isDefaultPrevented()&&(this.isShown=!1,this.escape(),a(document).off("focusin.bs.modal"),this.$element.removeClass("in").attr("aria-hidden",!0).off("click.dismiss.bs.modal"),a.support.transition&&this.$element.hasClass("fade")?this.$element.one(a.support.transition.end,a.proxy(this.hideModal,this)).emulateTransitionEnd(300):this.hideModal())},b.prototype.enforceFocus=function(){a(document).off("focusin.bs.modal").on("focusin.bs.modal",a.proxy(function(a){this.$element[0]===a.target||this.$element.has(a.target).length||this.$element.focus()},this))},b.prototype.escape=function(){this.isShown&&this.options.keyboard?this.$element.on("keyup.dismiss.bs.modal",a.proxy(function(a){27==a.which&&this.hide()},this)):this.isShown||this.$element.off("keyup.dismiss.bs.modal")},b.prototype.hideModal=function(){var a=this;this.$element.hide(),this.backdrop(function(){a.removeBackdrop(),a.$element.trigger("hidden.bs.modal")})},b.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},b.prototype.backdrop=function(b){var c=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var d=a.support.transition&&c;if(this.$backdrop=a('<div class="modal-backdrop '+c+'" />').appendTo(document.body),this.$element.on("click.dismiss.bs.modal",a.proxy(function(a){a.target===a.currentTarget&&("static"==this.options.backdrop?this.$element[0].focus.call(this.$element[0]):this.hide.call(this))},this)),d&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!b)return;d?this.$backdrop.one(a.support.transition.end,b).emulateTransitionEnd(150):b()}else!this.isShown&&this.$backdrop?(this.$backdrop.removeClass("in"),a.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one(a.support.transition.end,b).emulateTransitionEnd(150):b()):b&&b()};var c=a.fn.modal;a.fn.modal=function(c,d){return this.each(function(){var e=a(this),f=e.data("bs.modal"),g=a.extend({},b.DEFAULTS,e.data(),"object"==typeof c&&c);f||e.data("bs.modal",f=new b(this,g)),"string"==typeof c?f[c](d):g.show&&f.show(d)})},a.fn.modal.Constructor=b,a.fn.modal.noConflict=function(){return a.fn.modal=c,this},a(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',function(b){var c=a(this),d=c.attr("href"),e=a(c.attr("data-target")||d&&d.replace(/.*(?=#[^\s]+$)/,"")),f=e.data("bs.modal")?"toggle":a.extend({remote:!/#/.test(d)&&d},e.data(),c.data());c.is("a")&&b.preventDefault(),e.modal(f,this).one("hide",function(){c.is(":visible")&&c.focus()})}),a(document).on("show.bs.modal",".modal",function(){a(document.body).addClass("modal-open")}).on("hidden.bs.modal",".modal",function(){a(document.body).removeClass("modal-open")})}(jQuery),+function(a){"use strict";var b=function(a,b){this.type=this.options=this.enabled=this.timeout=this.hoverState=this.$element=null,this.init("tooltip",a,b)};b.DEFAULTS={animation:!0,placement:"top",selector:!1,template:'<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,container:!1},b.prototype.init=function(b,c,d){this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d);for(var e=this.options.trigger.split(" "),f=e.length;f--;){var g=e[f];if("click"==g)this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this));else if("manual"!=g){var h="hover"==g?"mouseenter":"focusin",i="hover"==g?"mouseleave":"focusout";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},b.prototype.getDefaults=function(){return b.DEFAULTS},b.prototype.getOptions=function(b){return b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),b},b.prototype.getDelegateOptions=function(){var b={},c=this.getDefaults();return this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},b.prototype.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget)[this.type](this.getDelegateOptions()).data("bs."+this.type);return clearTimeout(c.timeout),c.hoverState="in",c.options.delay&&c.options.delay.show?void(c.timeout=setTimeout(function(){"in"==c.hoverState&&c.show()},c.options.delay.show)):c.show()},b.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget)[this.type](this.getDelegateOptions()).data("bs."+this.type);return clearTimeout(c.timeout),c.hoverState="out",c.options.delay&&c.options.delay.hide?void(c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide)):c.hide()},b.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){if(this.$element.trigger(b),b.isDefaultPrevented())return;var c=this,d=this.tip();this.setContent(),this.options.animation&&d.addClass("fade");var e="function"==typeof this.options.placement?this.options.placement.call(this,d[0],this.$element[0]):this.options.placement,f=/\s?auto?\s?/i,g=f.test(e);g&&(e=e.replace(f,"")||"top"),d.detach().css({top:0,left:0,display:"block"}).addClass(e),this.options.container?d.appendTo(this.options.container):d.insertAfter(this.$element);var h=this.getPosition(),i=d[0].offsetWidth,j=d[0].offsetHeight;if(g){var k=this.$element.parent(),l=e,m=document.documentElement.scrollTop||document.body.scrollTop,n="body"==this.options.container?window.innerWidth:k.outerWidth(),o="body"==this.options.container?window.innerHeight:k.outerHeight(),p="body"==this.options.container?0:k.offset().left;e="bottom"==e&&h.top+h.height+j-m>o?"top":"top"==e&&h.top-m-j<0?"bottom":"right"==e&&h.right+i>n?"left":"left"==e&&h.left-i<p?"right":e,d.removeClass(l).addClass(e)}var q=this.getCalculatedOffset(e,h,i,j);this.applyPlacement(q,e),this.hoverState=null;var r=function(){c.$element.trigger("shown.bs."+c.type)};a.support.transition&&this.$tip.hasClass("fade")?d.one(a.support.transition.end,r).emulateTransitionEnd(150):r()}},b.prototype.applyPlacement=function(b,c){var d,e=this.tip(),f=e[0].offsetWidth,g=e[0].offsetHeight,h=parseInt(e.css("margin-top"),10),i=parseInt(e.css("margin-left"),10);isNaN(h)&&(h=0),isNaN(i)&&(i=0),b.top=b.top+h,b.left=b.left+i,a.offset.setOffset(e[0],a.extend({using:function(a){e.css({top:Math.round(a.top),left:Math.round(a.left)})}},b),0),e.addClass("in");var j=e[0].offsetWidth,k=e[0].offsetHeight;if("top"==c&&k!=g&&(d=!0,b.top=b.top+g-k),/bottom|top/.test(c)){var l=0;b.left<0&&(l=-2*b.left,b.left=0,e.offset(b),j=e[0].offsetWidth,k=e[0].offsetHeight),this.replaceArrow(l-f+j,j,"left")}else this.replaceArrow(k-g,k,"top");d&&e.offset(b)},b.prototype.replaceArrow=function(a,b,c){this.arrow().css(c,a?50*(1-a/b)+"%":"")},b.prototype.setContent=function(){var a=this.tip(),b=this.getTitle();a.find(".tooltip-inner")[this.options.html?"html":"text"](b),a.removeClass("fade in top bottom left right")},b.prototype.hide=function(){function b(){"in"!=c.hoverState&&d.detach(),c.$element.trigger("hidden.bs."+c.type)}var c=this,d=this.tip(),e=a.Event("hide.bs."+this.type);return this.$element.trigger(e),e.isDefaultPrevented()?void 0:(d.removeClass("in"),a.support.transition&&this.$tip.hasClass("fade")?d.one(a.support.transition.end,b).emulateTransitionEnd(150):b(),this.hoverState=null,this)},b.prototype.fixTitle=function(){var a=this.$element;(a.attr("title")||"string"!=typeof a.attr("data-original-title"))&&a.attr("data-original-title",a.attr("title")||"").attr("title","")},b.prototype.hasContent=function(){return this.getTitle()},b.prototype.getPosition=function(){var b=this.$element[0];return a.extend({},"function"==typeof b.getBoundingClientRect?b.getBoundingClientRect():{width:b.offsetWidth,height:b.offsetHeight},this.$element.offset())},b.prototype.getCalculatedOffset=function(a,b,c,d){return"bottom"==a?{top:b.top+b.height,left:b.left+b.width/2-c/2}:"top"==a?{top:b.top-d,left:b.left+b.width/2-c/2}:"left"==a?{top:b.top+b.height/2-d/2,left:b.left-c}:{top:b.top+b.height/2-d/2,left:b.left+b.width}},b.prototype.getTitle=function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||("function"==typeof c.title?c.title.call(b[0]):c.title)},b.prototype.tip=function(){return this.$tip=this.$tip||a(this.options.template)},b.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},b.prototype.validate=function(){this.$element[0].parentNode||(this.hide(),this.$element=null,this.options=null)},b.prototype.enable=function(){this.enabled=!0},b.prototype.disable=function(){this.enabled=!1},b.prototype.toggleEnabled=function(){this.enabled=!this.enabled},b.prototype.toggle=function(b){var c=b?a(b.currentTarget)[this.type](this.getDelegateOptions()).data("bs."+this.type):this;c.tip().hasClass("in")?c.leave(c):c.enter(c)},b.prototype.destroy=function(){clearTimeout(this.timeout),this.hide().$element.off("."+this.type).removeData("bs."+this.type)};var c=a.fn.tooltip;a.fn.tooltip=function(c){return this.each(function(){var d=a(this),e=d.data("bs.tooltip"),f="object"==typeof c&&c;(e||"destroy"!=c)&&(e||d.data("bs.tooltip",e=new b(this,f)),"string"==typeof c&&e[c]())})},a.fn.tooltip.Constructor=b,a.fn.tooltip.noConflict=function(){return a.fn.tooltip=c,this}}(jQuery),+function(a){"use strict";var b=function(a,b){this.init("popover",a,b)};if(!a.fn.tooltip)throw new Error("Popover requires tooltip.js");b.DEFAULTS=a.extend({},a.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:'<div class="popover"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'}),b.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),b.prototype.constructor=b,b.prototype.getDefaults=function(){return b.DEFAULTS},b.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content")[this.options.html?"string"==typeof c?"html":"append":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},b.prototype.hasContent=function(){return this.getTitle()||this.getContent()},b.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},b.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")},b.prototype.tip=function(){return this.$tip||(this.$tip=a(this.options.template)),this.$tip};var c=a.fn.popover;a.fn.popover=function(c){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof c&&c;(e||"destroy"!=c)&&(e||d.data("bs.popover",e=new b(this,f)),"string"==typeof c&&e[c]())})},a.fn.popover.Constructor=b,a.fn.popover.noConflict=function(){return a.fn.popover=c,this}}(jQuery),+function(a){"use strict";function b(c,d){var e,f=a.proxy(this.process,this);this.$element=a(a(c).is("body")?window:c),this.$body=a("body"),this.$scrollElement=this.$element.on("scroll.bs.scroll-spy.data-api",f),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||(e=a(c).attr("href"))&&e.replace(/.*(?=#[^\s]+$)/,"")||"")+" .nav li > a",this.offsets=a([]),this.targets=a([]),this.activeTarget=null,this.refresh(),this.process()}b.DEFAULTS={offset:10},b.prototype.refresh=function(){var b=this.$element[0]==window?"offset":"position";this.offsets=a([]),this.targets=a([]);{var c=this;this.$body.find(this.selector).map(function(){var d=a(this),e=d.data("target")||d.attr("href"),f=/^#./.test(e)&&a(e);return f&&f.length&&f.is(":visible")&&[[f[b]().top+(!a.isWindow(c.$scrollElement.get(0))&&c.$scrollElement.scrollTop()),e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){c.offsets.push(this[0]),c.targets.push(this[1])})}},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.$scrollElement[0].scrollHeight||this.$body[0].scrollHeight,d=c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(b>=d)return g!=(a=f.last()[0])&&this.activate(a);if(g&&b<=e[0])return g!=(a=f[0])&&this.activate(a);for(a=e.length;a--;)g!=f[a]&&b>=e[a]&&(!e[a+1]||b<=e[a+1])&&this.activate(f[a])},b.prototype.activate=function(b){this.activeTarget=b,a(this.selector).parentsUntil(this.options.target,".active").removeClass("active");var c=this.selector+'[data-target="'+b+'"],'+this.selector+'[href="'+b+'"]',d=a(c).parents("li").addClass("active");d.parent(".dropdown-menu").length&&(d=d.closest("li.dropdown").addClass("active")),d.trigger("activate.bs.scrollspy")};var c=a.fn.scrollspy;a.fn.scrollspy=function(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=c,this},a(window).on("load",function(){a('[data-spy="scroll"]').each(function(){var b=a(this);b.scrollspy(b.data())})})}(jQuery),+function(a){"use strict";var b=function(b){this.element=a(b)};b.prototype.show=function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.data("target");if(d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),!b.parent("li").hasClass("active")){var e=c.find(".active:last a")[0],f=a.Event("show.bs.tab",{relatedTarget:e});if(b.trigger(f),!f.isDefaultPrevented()){var g=a(d);this.activate(b.parent("li"),c),this.activate(g,g.parent(),function(){b.trigger({type:"shown.bs.tab",relatedTarget:e})})}}},b.prototype.activate=function(b,c,d){function e(){f.removeClass("active").find("> .dropdown-menu > .active").removeClass("active"),b.addClass("active"),g?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu")&&b.closest("li.dropdown").addClass("active"),d&&d()}var f=c.find("> .active"),g=d&&a.support.transition&&f.hasClass("fade");g?f.one(a.support.transition.end,e).emulateTransitionEnd(150):e(),f.removeClass("in")};var c=a.fn.tab;a.fn.tab=function(c){return this.each(function(){var d=a(this),e=d.data("bs.tab");e||d.data("bs.tab",e=new b(this)),"string"==typeof c&&e[c]()})},a.fn.tab.Constructor=b,a.fn.tab.noConflict=function(){return a.fn.tab=c,this},a(document).on("click.bs.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"]',function(b){b.preventDefault(),a(this).tab("show")})}(jQuery),+function(a){"use strict";var b=function(c,d){this.options=a.extend({},b.DEFAULTS,d),this.$window=a(window).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(c),this.affixed=this.unpin=this.pinnedOffset=null,this.checkPosition()};b.RESET="affix affix-top affix-bottom",b.DEFAULTS={offset:0},b.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(b.RESET).addClass("affix");var a=this.$window.scrollTop(),c=this.$element.offset();return this.pinnedOffset=c.top-a},b.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},b.prototype.checkPosition=function(){if(this.$element.is(":visible")){var c=a(document).height(),d=this.$window.scrollTop(),e=this.$element.offset(),f=this.options.offset,g=f.top,h=f.bottom;"top"==this.affixed&&(e.top+=d),"object"!=typeof f&&(h=g=f),"function"==typeof g&&(g=f.top(this.$element)),"function"==typeof h&&(h=f.bottom(this.$element));var i=null!=this.unpin&&d+this.unpin<=e.top?!1:null!=h&&e.top+this.$element.height()>=c-h?"bottom":null!=g&&g>=d?"top":!1;if(this.affixed!==i){this.unpin&&this.$element.css("top","");var j="affix"+(i?"-"+i:""),k=a.Event(j+".bs.affix");this.$element.trigger(k),k.isDefaultPrevented()||(this.affixed=i,this.unpin="bottom"==i?this.getPinnedOffset():null,this.$element.removeClass(b.RESET).addClass(j).trigger(a.Event(j.replace("affix","affixed"))),"bottom"==i&&this.$element.offset({top:c-h-this.$element.height()}))}}};var c=a.fn.affix;a.fn.affix=function(c){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof c&&c;e||d.data("bs.affix",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.affix.Constructor=b,a.fn.affix.noConflict=function(){return a.fn.affix=c,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var b=a(this),c=b.data();c.offset=c.offset||{},c.offsetBottom&&(c.offset.bottom=c.offsetBottom),c.offsetTop&&(c.offset.top=c.offsetTop),b.affix(c)})})}(jQuery);
19
+ if ("undefined" == typeof jQuery) throw new Error("Bootstrap's JavaScript requires jQuery"); +function (a) { "use strict"; function b() { var a = document.createElement("bootstrap"), b = { WebkitTransition: "webkitTransitionEnd", MozTransition: "transitionend", OTransition: "oTransitionEnd otransitionend", transition: "transitionend" }; for (var c in b) if (void 0 !== a.style[c]) return { end: b[c] }; return !1 } a.fn.emulateTransitionEnd = function (b) { var c = !1, d = this; a(this).one(a.support.transition.end, function () { c = !0 }); var e = function () { c || a(d).trigger(a.support.transition.end) }; return setTimeout(e, b), this }, a(function () { a.support.transition = b() }) }(jQuery), +function (a) { "use strict"; var b = '[data-dismiss="alert"]', c = function (c) { a(c).on("click", b, this.close) }; c.prototype.close = function (b) { function c() { f.trigger("closed.bs.alert").remove() } var d = a(this), e = d.attr("data-target"); e || (e = d.attr("href"), e = e && e.replace(/.*(?=#[^\s]*$)/, "")); var f = a(e); b && b.preventDefault(), f.length || (f = d.hasClass("alert") ? d : d.parent()), f.trigger(b = a.Event("close.bs.alert")), b.isDefaultPrevented() || (f.removeClass("in"), a.support.transition && f.hasClass("fade") ? f.one(a.support.transition.end, c).emulateTransitionEnd(150) : c()) }; var d = a.fn.alert; a.fn.alert = function (b) { return this.each(function () { var d = a(this), e = d.data("bs.alert"); e || d.data("bs.alert", e = new c(this)), "string" == typeof b && e[b].call(d) }) }, a.fn.alert.Constructor = c, a.fn.alert.noConflict = function () { return a.fn.alert = d, this }, a(document).on("click.bs.alert.data-api", b, c.prototype.close) }(jQuery), +function (a) { "use strict"; var b = function (c, d) { this.$element = a(c), this.options = a.extend({}, b.DEFAULTS, d), this.isLoading = !1 }; b.DEFAULTS = { loadingText: "loading..." }, b.prototype.setState = function (b) { var c = "disabled", d = this.$element, e = d.is("input") ? "val" : "html", f = d.data(); b += "Text", f.resetText || d.data("resetText", d[e]()), d[e](f[b] || this.options[b]), setTimeout(a.proxy(function () { "loadingText" == b ? (this.isLoading = !0, d.addClass(c).attr(c, c)) : this.isLoading && (this.isLoading = !1, d.removeClass(c).removeAttr(c)) }, this), 0) }, b.prototype.toggle = function () { var a = !0, b = this.$element.closest('[data-toggle="buttons"]'); if (b.length) { var c = this.$element.find("input"); "radio" == c.prop("type") && (c.prop("checked") && this.$element.hasClass("active") ? a = !1 : b.find(".active").removeClass("active")), a && c.prop("checked", !this.$element.hasClass("active")).trigger("change") } a && this.$element.toggleClass("active") }; var c = a.fn.button; a.fn.button = function (c) { return this.each(function () { var d = a(this), e = d.data("bs.button"), f = "object" == typeof c && c; e || d.data("bs.button", e = new b(this, f)), "toggle" == c ? e.toggle() : c && e.setState(c) }) }, a.fn.button.Constructor = b, a.fn.button.noConflict = function () { return a.fn.button = c, this }, a(document).on("click.bs.button.data-api", "[data-toggle^=button]", function (b) { var c = a(b.target); c.hasClass("btn") || (c = c.closest(".btn")), c.button("toggle"), b.preventDefault() }) }(jQuery), +function (a) { "use strict"; var b = function (b, c) { this.$element = a(b), this.$indicators = this.$element.find(".carousel-indicators"), this.options = c, this.paused = this.sliding = this.interval = this.$active = this.$items = null, "hover" == this.options.pause && this.$element.on("mouseenter", a.proxy(this.pause, this)).on("mouseleave", a.proxy(this.cycle, this)) }; b.DEFAULTS = { interval: 5e3, pause: "hover", wrap: !0 }, b.prototype.cycle = function (b) { return b || (this.paused = !1), this.interval && clearInterval(this.interval), this.options.interval && !this.paused && (this.interval = setInterval(a.proxy(this.next, this), this.options.interval)), this }, b.prototype.getActiveIndex = function () { return this.$active = this.$element.find(".item.active"), this.$items = this.$active.parent().children(), this.$items.index(this.$active) }, b.prototype.to = function (b) { var c = this, d = this.getActiveIndex(); return b > this.$items.length - 1 || 0 > b ? void 0 : this.sliding ? this.$element.one("slid.bs.carousel", function () { c.to(b) }) : d == b ? this.pause().cycle() : this.slide(b > d ? "next" : "prev", a(this.$items[b])) }, b.prototype.pause = function (b) { return b || (this.paused = !0), this.$element.find(".next, .prev").length && a.support.transition && (this.$element.trigger(a.support.transition.end), this.cycle(!0)), this.interval = clearInterval(this.interval), this }, b.prototype.next = function () { return this.sliding ? void 0 : this.slide("next") }, b.prototype.prev = function () { return this.sliding ? void 0 : this.slide("prev") }, b.prototype.slide = function (b, c) { var d = this.$element.find(".item.active"), e = c || d[b](), f = this.interval, g = "next" == b ? "left" : "right", h = "next" == b ? "first" : "last", i = this; if (!e.length) { if (!this.options.wrap) return; e = this.$element.find(".item")[h]() } if (e.hasClass("active")) return this.sliding = !1; var j = a.Event("slide.bs.carousel", { relatedTarget: e[0], direction: g }); return this.$element.trigger(j), j.isDefaultPrevented() ? void 0 : (this.sliding = !0, f && this.pause(), this.$indicators.length && (this.$indicators.find(".active").removeClass("active"), this.$element.one("slid.bs.carousel", function () { var b = a(i.$indicators.children()[i.getActiveIndex()]); b && b.addClass("active") })), a.support.transition && this.$element.hasClass("slide") ? (e.addClass(b), e[0].offsetWidth, d.addClass(g), e.addClass(g), d.one(a.support.transition.end, function () { e.removeClass([b, g].join(" ")).addClass("active"), d.removeClass(["active", g].join(" ")), i.sliding = !1, setTimeout(function () { i.$element.trigger("slid.bs.carousel") }, 0) }).emulateTransitionEnd(1e3 * d.css("transition-duration").slice(0, -1))) : (d.removeClass("active"), e.addClass("active"), this.sliding = !1, this.$element.trigger("slid.bs.carousel")), f && this.cycle(), this) }; var c = a.fn.carousel; a.fn.carousel = function (c) { return this.each(function () { var d = a(this), e = d.data("bs.carousel"), f = a.extend({}, b.DEFAULTS, d.data(), "object" == typeof c && c), g = "string" == typeof c ? c : f.slide; e || d.data("bs.carousel", e = new b(this, f)), "number" == typeof c ? e.to(c) : g ? e[g]() : f.interval && e.pause().cycle() }) }, a.fn.carousel.Constructor = b, a.fn.carousel.noConflict = function () { return a.fn.carousel = c, this }, a(document).on("click.bs.carousel.data-api", "[data-slide], [data-slide-to]", function (b) { var c, d = a(this), e = a(d.attr("data-target") || (c = d.attr("href")) && c.replace(/.*(?=#[^\s]+$)/, "")), f = a.extend({}, e.data(), d.data()), g = d.attr("data-slide-to"); g && (f.interval = !1), e.carousel(f), (g = d.attr("data-slide-to")) && e.data("bs.carousel").to(g), b.preventDefault() }), a(window).on("load", function () { a('[data-ride="carousel"]').each(function () { var b = a(this); b.carousel(b.data()) }) }) }(jQuery), +function (a) { "use strict"; var b = function (c, d) { this.$element = a(c), this.options = a.extend({}, b.DEFAULTS, d), this.transitioning = null, this.options.parent && (this.$parent = a(this.options.parent)), this.options.toggle && this.toggle() }; b.DEFAULTS = { toggle: !0 }, b.prototype.dimension = function () { var a = this.$element.hasClass("width"); return a ? "width" : "height" }, b.prototype.show = function () { if (!this.transitioning && !this.$element.hasClass("in")) { var b = a.Event("show.bs.collapse"); if (this.$element.trigger(b), !b.isDefaultPrevented()) { var c = this.$parent && this.$parent.find("> .panel > .in"); if (c && c.length) { var d = c.data("bs.collapse"); if (d && d.transitioning) return; c.collapse("hide"), d || c.data("bs.collapse", null) } var e = this.dimension(); this.$element.removeClass("collapse").addClass("collapsing")[e](0), this.transitioning = 1; var f = function () { this.$element.removeClass("collapsing").addClass("collapse in")[e]("auto"), this.transitioning = 0, this.$element.trigger("shown.bs.collapse") }; if (!a.support.transition) return f.call(this); var g = a.camelCase(["scroll", e].join("-")); this.$element.one(a.support.transition.end, a.proxy(f, this)).emulateTransitionEnd(350)[e](this.$element[0][g]) } } }, b.prototype.hide = function () { if (!this.transitioning && this.$element.hasClass("in")) { var b = a.Event("hide.bs.collapse"); if (this.$element.trigger(b), !b.isDefaultPrevented()) { var c = this.dimension(); this.$element[c](this.$element[c]())[0].offsetHeight, this.$element.addClass("collapsing").removeClass("collapse").removeClass("in"), this.transitioning = 1; var d = function () { this.transitioning = 0, this.$element.trigger("hidden.bs.collapse").removeClass("collapsing").addClass("collapse") }; return a.support.transition ? void this.$element[c](0).one(a.support.transition.end, a.proxy(d, this)).emulateTransitionEnd(350) : d.call(this) } } }, b.prototype.toggle = function () { this[this.$element.hasClass("in") ? "hide" : "show"]() }; var c = a.fn.collapse; a.fn.collapse = function (c) { return this.each(function () { var d = a(this), e = d.data("bs.collapse"), f = a.extend({}, b.DEFAULTS, d.data(), "object" == typeof c && c); !e && f.toggle && "show" == c && (c = !c), e || d.data("bs.collapse", e = new b(this, f)), "string" == typeof c && e[c]() }) }, a.fn.collapse.Constructor = b, a.fn.collapse.noConflict = function () { return a.fn.collapse = c, this }, a(document).on("click.bs.collapse.data-api", "[data-toggle=collapse]", function (b) { var c, d = a(this), e = d.attr("data-target") || b.preventDefault() || (c = d.attr("href")) && c.replace(/.*(?=#[^\s]+$)/, ""), f = a(e), g = f.data("bs.collapse"), h = g ? "toggle" : d.data(), i = d.attr("data-parent"), j = i && a(i); g && g.transitioning || (j && j.find('[data-toggle=collapse][data-parent="' + i + '"]').not(d).addClass("collapsed"), d[f.hasClass("in") ? "addClass" : "removeClass"]("collapsed")), f.collapse(h) }) }(jQuery), +function (a) { "use strict"; function b(b) { a(d).remove(), a(e).each(function () { var d = c(a(this)), e = { relatedTarget: this }; d.hasClass("open") && (d.trigger(b = a.Event("hide.bs.dropdown", e)), b.isDefaultPrevented() || d.removeClass("open").trigger("hidden.bs.dropdown", e)) }) } function c(b) { var c = b.attr("data-target"); c || (c = b.attr("href"), c = c && /#[A-Za-z]/.test(c) && c.replace(/.*(?=#[^\s]*$)/, "")); var d = c && a(c); return d && d.length ? d : b.parent() } var d = ".dropdown-backdrop", e = "[data-toggle=dropdown]", f = function (b) { a(b).on("click.bs.dropdown", this.toggle) }; f.prototype.toggle = function (d) { var e = a(this); if (!e.is(".disabled, :disabled")) { var f = c(e), g = f.hasClass("open"); if (b(), !g) { "ontouchstart" in document.documentElement && !f.closest(".navbar-nav").length && a('<div class="dropdown-backdrop"/>').insertAfter(a(this)).on("click", b); var h = { relatedTarget: this }; if (f.trigger(d = a.Event("show.bs.dropdown", h)), d.isDefaultPrevented()) return; f.toggleClass("open").trigger("shown.bs.dropdown", h), e.focus() } return !1 } }, f.prototype.keydown = function (b) { if (/(38|40|27)/.test(b.keyCode)) { var d = a(this); if (b.preventDefault(), b.stopPropagation(), !d.is(".disabled, :disabled")) { var f = c(d), g = f.hasClass("open"); if (!g || g && 27 == b.keyCode) return 27 == b.which && f.find(e).focus(), d.click(); var h = " li:not(.divider):visible a", i = f.find("[role=menu]" + h + ", [role=listbox]" + h); if (i.length) { var j = i.index(i.filter(":focus")); 38 == b.keyCode && j > 0 && j-- , 40 == b.keyCode && j < i.length - 1 && j++ , ~j || (j = 0), i.eq(j).focus() } } } }; var g = a.fn.dropdown; a.fn.dropdown = function (b) { return this.each(function () { var c = a(this), d = c.data("bs.dropdown"); d || c.data("bs.dropdown", d = new f(this)), "string" == typeof b && d[b].call(c) }) }, a.fn.dropdown.Constructor = f, a.fn.dropdown.noConflict = function () { return a.fn.dropdown = g, this }, a(document).on("click.bs.dropdown.data-api", b).on("click.bs.dropdown.data-api", ".dropdown form", function (a) { a.stopPropagation() }).on("click.bs.dropdown.data-api", e, f.prototype.toggle).on("keydown.bs.dropdown.data-api", e + ", [role=menu], [role=listbox]", f.prototype.keydown) }(jQuery), +function (a) { "use strict"; var b = function (b, c) { this.options = c, this.$element = a(b), this.$backdrop = this.isShown = null, this.options.remote && this.$element.find(".modal-content").load(this.options.remote, a.proxy(function () { this.$element.trigger("loaded.bs.modal") }, this)) }; b.DEFAULTS = { backdrop: !0, keyboard: !0, show: !0 }, b.prototype.toggle = function (a) { return this[this.isShown ? "hide" : "show"](a) }, b.prototype.show = function (b) { var c = this, d = a.Event("show.bs.modal", { relatedTarget: b }); this.$element.trigger(d), this.isShown || d.isDefaultPrevented() || (this.isShown = !0, this.escape(), this.$element.on("click.dismiss.bs.modal", '[data-dismiss="modal"]', a.proxy(this.hide, this)), this.backdrop(function () { var d = a.support.transition && c.$element.hasClass("fade"); c.$element.parent().length || c.$element.appendTo(document.body), c.$element.show().scrollTop(0), d && c.$element[0].offsetWidth, c.$element.addClass("in").attr("aria-hidden", !1), c.enforceFocus(); var e = a.Event("shown.bs.modal", { relatedTarget: b }); d ? c.$element.find(".modal-dialog").one(a.support.transition.end, function () { c.$element.focus().trigger(e) }).emulateTransitionEnd(300) : c.$element.focus().trigger(e) })) }, b.prototype.hide = function (b) { b && b.preventDefault(), b = a.Event("hide.bs.modal"), this.$element.trigger(b), this.isShown && !b.isDefaultPrevented() && (this.isShown = !1, this.escape(), a(document).off("focusin.bs.modal"), this.$element.removeClass("in").attr("aria-hidden", !0).off("click.dismiss.bs.modal"), a.support.transition && this.$element.hasClass("fade") ? this.$element.one(a.support.transition.end, a.proxy(this.hideModal, this)).emulateTransitionEnd(300) : this.hideModal()) }, b.prototype.enforceFocus = function () { a(document).off("focusin.bs.modal").on("focusin.bs.modal", a.proxy(function (a) { this.$element[0] === a.target || this.$element.has(a.target).length || this.$element.focus() }, this)) }, b.prototype.escape = function () { this.isShown && this.options.keyboard ? this.$element.on("keyup.dismiss.bs.modal", a.proxy(function (a) { 27 == a.which && this.hide() }, this)) : this.isShown || this.$element.off("keyup.dismiss.bs.modal") }, b.prototype.hideModal = function () { var a = this; this.$element.hide(), this.backdrop(function () { a.removeBackdrop(), a.$element.trigger("hidden.bs.modal") }) }, b.prototype.removeBackdrop = function () { this.$backdrop && this.$backdrop.remove(), this.$backdrop = null }, b.prototype.backdrop = function (b) { var c = this.$element.hasClass("fade") ? "fade" : ""; if (this.isShown && this.options.backdrop) { var d = a.support.transition && c; if (this.$backdrop = a('<div class="modal-backdrop ' + c + '" />').appendTo(document.body), this.$element.on("click.dismiss.bs.modal", a.proxy(function (a) { a.target === a.currentTarget && ("static" == this.options.backdrop ? this.$element[0].focus.call(this.$element[0]) : this.hide.call(this)) }, this)), d && this.$backdrop[0].offsetWidth, this.$backdrop.addClass("in"), !b) return; d ? this.$backdrop.one(a.support.transition.end, b).emulateTransitionEnd(150) : b() } else !this.isShown && this.$backdrop ? (this.$backdrop.removeClass("in"), a.support.transition && this.$element.hasClass("fade") ? this.$backdrop.one(a.support.transition.end, b).emulateTransitionEnd(150) : b()) : b && b() }; var c = a.fn.modal; a.fn.modal = function (c, d) { return this.each(function () { var e = a(this), f = e.data("bs.modal"), g = a.extend({}, b.DEFAULTS, e.data(), "object" == typeof c && c); f || e.data("bs.modal", f = new b(this, g)), "string" == typeof c ? f[c](d) : g.show && f.show(d) }) }, a.fn.modal.Constructor = b, a.fn.modal.noConflict = function () { return a.fn.modal = c, this }, a(document).on("click.bs.modal.data-api", '[data-toggle="modal"]', function (b) { var c = a(this), d = c.attr("href"), e = a(c.attr("data-target") || d && d.replace(/.*(?=#[^\s]+$)/, "")), f = e.data("bs.modal") ? "toggle" : a.extend({ remote: !/#/.test(d) && d }, e.data(), c.data()); c.is("a") && b.preventDefault(), e.modal(f, this).one("hide", function () { c.is(":visible") && c.focus() }) }), a(document).on("show.bs.modal", ".modal", function () { a(document.body).addClass("modal-open") }).on("hidden.bs.modal", ".modal", function () { a(document.body).removeClass("modal-open") }) }(jQuery), +function (a) { "use strict"; var b = function (a, b) { this.type = this.options = this.enabled = this.timeout = this.hoverState = this.$element = null, this.init("tooltip", a, b) }; b.DEFAULTS = { animation: !0, placement: "top", selector: !1, template: '<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>', trigger: "hover focus", title: "", delay: 0, html: !1, container: !1 }, b.prototype.init = function (b, c, d) { this.enabled = !0, this.type = b, this.$element = a(c), this.options = this.getOptions(d); for (var e = this.options.trigger.split(" "), f = e.length; f--;) { var g = e[f]; if ("click" == g) this.$element.on("click." + this.type, this.options.selector, a.proxy(this.toggle, this)); else if ("manual" != g) { var h = "hover" == g ? "mouseenter" : "focusin", i = "hover" == g ? "mouseleave" : "focusout"; this.$element.on(h + "." + this.type, this.options.selector, a.proxy(this.enter, this)), this.$element.on(i + "." + this.type, this.options.selector, a.proxy(this.leave, this)) } } this.options.selector ? this._options = a.extend({}, this.options, { trigger: "manual", selector: "" }) : this.fixTitle() }, b.prototype.getDefaults = function () { return b.DEFAULTS }, b.prototype.getOptions = function (b) { return b = a.extend({}, this.getDefaults(), this.$element.data(), b), b.delay && "number" == typeof b.delay && (b.delay = { show: b.delay, hide: b.delay }), b }, b.prototype.getDelegateOptions = function () { var b = {}, c = this.getDefaults(); return this._options && a.each(this._options, function (a, d) { c[a] != d && (b[a] = d) }), b }, b.prototype.enter = function (b) { var c = b instanceof this.constructor ? b : a(b.currentTarget)[this.type](this.getDelegateOptions()).data("bs." + this.type); return clearTimeout(c.timeout), c.hoverState = "in", c.options.delay && c.options.delay.show ? void (c.timeout = setTimeout(function () { "in" == c.hoverState && c.show() }, c.options.delay.show)) : c.show() }, b.prototype.leave = function (b) { var c = b instanceof this.constructor ? b : a(b.currentTarget)[this.type](this.getDelegateOptions()).data("bs." + this.type); return clearTimeout(c.timeout), c.hoverState = "out", c.options.delay && c.options.delay.hide ? void (c.timeout = setTimeout(function () { "out" == c.hoverState && c.hide() }, c.options.delay.hide)) : c.hide() }, b.prototype.show = function () { var b = a.Event("show.bs." + this.type); if (this.hasContent() && this.enabled) { if (this.$element.trigger(b), b.isDefaultPrevented()) return; var c = this, d = this.tip(); this.setContent(), this.options.animation && d.addClass("fade"); var e = "function" == typeof this.options.placement ? this.options.placement.call(this, d[0], this.$element[0]) : this.options.placement, f = /\s?auto?\s?/i, g = f.test(e); g && (e = e.replace(f, "") || "top"), d.detach().css({ top: 0, left: 0, display: "block" }).addClass(e), this.options.container ? d.appendTo(this.options.container) : d.insertAfter(this.$element); var h = this.getPosition(), i = d[0].offsetWidth, j = d[0].offsetHeight; if (g) { var k = this.$element.parent(), l = e, m = document.documentElement.scrollTop || document.body.scrollTop, n = "body" == this.options.container ? window.innerWidth : k.outerWidth(), o = "body" == this.options.container ? window.innerHeight : k.outerHeight(), p = "body" == this.options.container ? 0 : k.offset().left; e = "bottom" == e && h.top + h.height + j - m > o ? "top" : "top" == e && h.top - m - j < 0 ? "bottom" : "right" == e && h.right + i > n ? "left" : "left" == e && h.left - i < p ? "right" : e, d.removeClass(l).addClass(e) } var q = this.getCalculatedOffset(e, h, i, j); this.applyPlacement(q, e), this.hoverState = null; var r = function () { c.$element.trigger("shown.bs." + c.type) }; a.support.transition && this.$tip.hasClass("fade") ? d.one(a.support.transition.end, r).emulateTransitionEnd(150) : r() } }, b.prototype.applyPlacement = function (b, c) { var d, e = this.tip(), f = e[0].offsetWidth, g = e[0].offsetHeight, h = parseInt(e.css("margin-top"), 10), i = parseInt(e.css("margin-left"), 10); isNaN(h) && (h = 0), isNaN(i) && (i = 0), b.top = b.top + h, b.left = b.left + i, a.offset.setOffset(e[0], a.extend({ using: function (a) { e.css({ top: Math.round(a.top), left: Math.round(a.left) }) } }, b), 0), e.addClass("in"); var j = e[0].offsetWidth, k = e[0].offsetHeight; if ("top" == c && k != g && (d = !0, b.top = b.top + g - k), /bottom|top/.test(c)) { var l = 0; b.left < 0 && (l = -2 * b.left, b.left = 0, e.offset(b), j = e[0].offsetWidth, k = e[0].offsetHeight), this.replaceArrow(l - f + j, j, "left") } else this.replaceArrow(k - g, k, "top"); d && e.offset(b) }, b.prototype.replaceArrow = function (a, b, c) { this.arrow().css(c, a ? 50 * (1 - a / b) + "%" : "") }, b.prototype.setContent = function () { var a = this.tip(), b = this.getTitle(); a.find(".tooltip-inner")[this.options.html ? "html" : "text"](b), a.removeClass("fade in top bottom left right") }, b.prototype.hide = function () { function b() { "in" != c.hoverState && d.detach(), c.$element.trigger("hidden.bs." + c.type) } var c = this, d = this.tip(), e = a.Event("hide.bs." + this.type); return this.$element.trigger(e), e.isDefaultPrevented() ? void 0 : (d.removeClass("in"), a.support.transition && this.$tip.hasClass("fade") ? d.one(a.support.transition.end, b).emulateTransitionEnd(150) : b(), this.hoverState = null, this) }, b.prototype.fixTitle = function () { var a = this.$element; (a.attr("title") || "string" != typeof a.attr("data-original-title")) && a.attr("data-original-title", a.attr("title") || "").attr("title", "") }, b.prototype.hasContent = function () { return this.getTitle() }, b.prototype.getPosition = function () { var b = this.$element[0]; return a.extend({}, "function" == typeof b.getBoundingClientRect ? b.getBoundingClientRect() : { width: b.offsetWidth, height: b.offsetHeight }, this.$element.offset()) }, b.prototype.getCalculatedOffset = function (a, b, c, d) { return "bottom" == a ? { top: b.top + b.height, left: b.left + b.width / 2 - c / 2 } : "top" == a ? { top: b.top - d, left: b.left + b.width / 2 - c / 2 } : "left" == a ? { top: b.top + b.height / 2 - d / 2, left: b.left - c } : { top: b.top + b.height / 2 - d / 2, left: b.left + b.width } }, b.prototype.getTitle = function () { var a, b = this.$element, c = this.options; return a = b.attr("data-original-title") || ("function" == typeof c.title ? c.title.call(b[0]) : c.title) }, b.prototype.tip = function () { return this.$tip = this.$tip || a(this.options.template) }, b.prototype.arrow = function () { return this.$arrow = this.$arrow || this.tip().find(".tooltip-arrow") }, b.prototype.validate = function () { this.$element[0].parentNode || (this.hide(), this.$element = null, this.options = null) }, b.prototype.enable = function () { this.enabled = !0 }, b.prototype.disable = function () { this.enabled = !1 }, b.prototype.toggleEnabled = function () { this.enabled = !this.enabled }, b.prototype.toggle = function (b) { var c = b ? a(b.currentTarget)[this.type](this.getDelegateOptions()).data("bs." + this.type) : this; c.tip().hasClass("in") ? c.leave(c) : c.enter(c) }, b.prototype.destroy = function () { clearTimeout(this.timeout), this.hide().$element.off("." + this.type).removeData("bs." + this.type) }; var c = a.fn.tooltip; a.fn.tooltip = function (c) { return this.each(function () { var d = a(this), e = d.data("bs.tooltip"), f = "object" == typeof c && c; (e || "destroy" != c) && (e || d.data("bs.tooltip", e = new b(this, f)), "string" == typeof c && e[c]()) }) }, a.fn.tooltip.Constructor = b, a.fn.tooltip.noConflict = function () { return a.fn.tooltip = c, this } }(jQuery), +function (a) { "use strict"; var b = function (a, b) { this.init("popover", a, b) }; if (!a.fn.tooltip) throw new Error("Popover requires tooltip.js"); b.DEFAULTS = a.extend({}, a.fn.tooltip.Constructor.DEFAULTS, { placement: "right", trigger: "click", content: "", template: '<div class="popover"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>' }), b.prototype = a.extend({}, a.fn.tooltip.Constructor.prototype), b.prototype.constructor = b, b.prototype.getDefaults = function () { return b.DEFAULTS }, b.prototype.setContent = function () { var a = this.tip(), b = this.getTitle(), c = this.getContent(); a.find(".popover-title")[this.options.html ? "html" : "text"](b), a.find(".popover-content")[this.options.html ? "string" == typeof c ? "html" : "append" : "text"](c), a.removeClass("fade top bottom left right in"), a.find(".popover-title").html() || a.find(".popover-title").hide() }, b.prototype.hasContent = function () { return this.getTitle() || this.getContent() }, b.prototype.getContent = function () { var a = this.$element, b = this.options; return a.attr("data-content") || ("function" == typeof b.content ? b.content.call(a[0]) : b.content) }, b.prototype.arrow = function () { return this.$arrow = this.$arrow || this.tip().find(".arrow") }, b.prototype.tip = function () { return this.$tip || (this.$tip = a(this.options.template)), this.$tip }; var c = a.fn.popover; a.fn.popover = function (c) { return this.each(function () { var d = a(this), e = d.data("bs.popover"), f = "object" == typeof c && c; (e || "destroy" != c) && (e || d.data("bs.popover", e = new b(this, f)), "string" == typeof c && e[c]()) }) }, a.fn.popover.Constructor = b, a.fn.popover.noConflict = function () { return a.fn.popover = c, this } }(jQuery), +function (a) { "use strict"; function b(c, d) { var e, f = a.proxy(this.process, this); this.$element = a(a(c).is("body") ? window : c), this.$body = a("body"), this.$scrollElement = this.$element.on("scroll.bs.scroll-spy.data-api", f), this.options = a.extend({}, b.DEFAULTS, d), this.selector = (this.options.target || (e = a(c).attr("href")) && e.replace(/.*(?=#[^\s]+$)/, "") || "") + " .nav li > a", this.offsets = a([]), this.targets = a([]), this.activeTarget = null, this.refresh(), this.process() } b.DEFAULTS = { offset: 10 }, b.prototype.refresh = function () { var b = this.$element[0] == window ? "offset" : "position"; this.offsets = a([]), this.targets = a([]); { var c = this; this.$body.find(this.selector).map(function () { var d = a(this), e = d.data("target") || d.attr("href"), f = /^#./.test(e) && a(e); return f && f.length && f.is(":visible") && [[f[b]().top + (!a.isWindow(c.$scrollElement.get(0)) && c.$scrollElement.scrollTop()), e]] || null }).sort(function (a, b) { return a[0] - b[0] }).each(function () { c.offsets.push(this[0]), c.targets.push(this[1]) }) } }, b.prototype.process = function () { var a, b = this.$scrollElement.scrollTop() + this.options.offset, c = this.$scrollElement[0].scrollHeight || this.$body[0].scrollHeight, d = c - this.$scrollElement.height(), e = this.offsets, f = this.targets, g = this.activeTarget; if (b >= d) return g != (a = f.last()[0]) && this.activate(a); if (g && b <= e[0]) return g != (a = f[0]) && this.activate(a); for (a = e.length; a--;)g != f[a] && b >= e[a] && (!e[a + 1] || b <= e[a + 1]) && this.activate(f[a]) }, b.prototype.activate = function (b) { this.activeTarget = b, a(this.selector).parentsUntil(this.options.target, ".active").removeClass("active"); var c = this.selector + '[data-target="' + b + '"],' + this.selector + '[href="' + b + '"]', d = a(c).parents("li").addClass("active"); d.parent(".dropdown-menu").length && (d = d.closest("li.dropdown").addClass("active")), d.trigger("activate.bs.scrollspy") }; var c = a.fn.scrollspy; a.fn.scrollspy = function (c) { return this.each(function () { var d = a(this), e = d.data("bs.scrollspy"), f = "object" == typeof c && c; e || d.data("bs.scrollspy", e = new b(this, f)), "string" == typeof c && e[c]() }) }, a.fn.scrollspy.Constructor = b, a.fn.scrollspy.noConflict = function () { return a.fn.scrollspy = c, this }, a(window).on("load", function () { a('[data-spy="scroll"]').each(function () { var b = a(this); b.scrollspy(b.data()) }) }) }(jQuery), +function (a) { "use strict"; var b = function (b) { this.element = a(b) }; b.prototype.show = function () { var b = this.element, c = b.closest("ul:not(.dropdown-menu)"), d = b.data("target"); if (d || (d = b.attr("href"), d = d && d.replace(/.*(?=#[^\s]*$)/, "")), !b.parent("li").hasClass("active")) { var e = c.find(".active:last a")[0], f = a.Event("show.bs.tab", { relatedTarget: e }); if (b.trigger(f), !f.isDefaultPrevented()) { var g = a(d); this.activate(b.parent("li"), c), this.activate(g, g.parent(), function () { b.trigger({ type: "shown.bs.tab", relatedTarget: e }) }) } } }, b.prototype.activate = function (b, c, d) { function e() { f.removeClass("active").find("> .dropdown-menu > .active").removeClass("active"), b.addClass("active"), g ? (b[0].offsetWidth, b.addClass("in")) : b.removeClass("fade"), b.parent(".dropdown-menu") && b.closest("li.dropdown").addClass("active"), d && d() } var f = c.find("> .active"), g = d && a.support.transition && f.hasClass("fade"); g ? f.one(a.support.transition.end, e).emulateTransitionEnd(150) : e(), f.removeClass("in") }; var c = a.fn.tab; a.fn.tab = function (c) { return this.each(function () { var d = a(this), e = d.data("bs.tab"); e || d.data("bs.tab", e = new b(this)), "string" == typeof c && e[c]() }) }, a.fn.tab.Constructor = b, a.fn.tab.noConflict = function () { return a.fn.tab = c, this }, a(document).on("click.bs.tab.data-api", '[data-toggle="tab"], [data-toggle="pill"]', function (b) { b.preventDefault(), a(this).tab("show") }) }(jQuery), +function (a) { "use strict"; var b = function (c, d) { this.options = a.extend({}, b.DEFAULTS, d), this.$window = a(window).on("scroll.bs.affix.data-api", a.proxy(this.checkPosition, this)).on("click.bs.affix.data-api", a.proxy(this.checkPositionWithEventLoop, this)), this.$element = a(c), this.affixed = this.unpin = this.pinnedOffset = null, this.checkPosition() }; b.RESET = "affix affix-top affix-bottom", b.DEFAULTS = { offset: 0 }, b.prototype.getPinnedOffset = function () { if (this.pinnedOffset) return this.pinnedOffset; this.$element.removeClass(b.RESET).addClass("affix"); var a = this.$window.scrollTop(), c = this.$element.offset(); return this.pinnedOffset = c.top - a }, b.prototype.checkPositionWithEventLoop = function () { setTimeout(a.proxy(this.checkPosition, this), 1) }, b.prototype.checkPosition = function () { if (this.$element.is(":visible")) { var c = a(document).height(), d = this.$window.scrollTop(), e = this.$element.offset(), f = this.options.offset, g = f.top, h = f.bottom; "top" == this.affixed && (e.top += d), "object" != typeof f && (h = g = f), "function" == typeof g && (g = f.top(this.$element)), "function" == typeof h && (h = f.bottom(this.$element)); var i = null != this.unpin && d + this.unpin <= e.top ? !1 : null != h && e.top + this.$element.height() >= c - h ? "bottom" : null != g && g >= d ? "top" : !1; if (this.affixed !== i) { this.unpin && this.$element.css("top", ""); var j = "affix" + (i ? "-" + i : ""), k = a.Event(j + ".bs.affix"); this.$element.trigger(k), k.isDefaultPrevented() || (this.affixed = i, this.unpin = "bottom" == i ? this.getPinnedOffset() : null, this.$element.removeClass(b.RESET).addClass(j).trigger(a.Event(j.replace("affix", "affixed"))), "bottom" == i && this.$element.offset({ top: c - h - this.$element.height() })) } } }; var c = a.fn.affix; a.fn.affix = function (c) { return this.each(function () { var d = a(this), e = d.data("bs.affix"), f = "object" == typeof c && c; e || d.data("bs.affix", e = new b(this, f)), "string" == typeof c && e[c]() }) }, a.fn.affix.Constructor = b, a.fn.affix.noConflict = function () { return a.fn.affix = c, this }, a(window).on("load", function () { a('[data-spy="affix"]').each(function () { var b = a(this), c = b.data(); c.offset = c.offset || {}, c.offsetBottom && (c.offset.bottom = c.offsetBottom), c.offsetTop && (c.offset.top = c.offsetTop), b.affix(c) }) }) }(jQuery);
12
20
  // jquery.tablesorter
13
21
  /*!
14
22
  * TableSorter 2.17.7 min - Client-side table sorting with ease!
15
23
  * Copyright (c) 2007 Christian Bach
16
24
  */
17
- !function(h){h.extend({tablesorter:new function(){function d(){var a=arguments[0],b=1<arguments.length?Array.prototype.slice.call(arguments):a;if("undefined"!==typeof console&&"undefined"!==typeof console.log)console[/error/i.test(a)?"error":/warn/i.test(a)?"warn":"log"](b);else alert(b)}function q(a,b){d(a+" ("+((new Date).getTime()-b.getTime())+"ms)")}function n(a){for(var b in a)return!1;return!0}function r(a,b,c){if(!b)return"";var g,e=a.config,l=e.textExtraction||"",d="",d="basic"===l?h(b).attr(e.textAttribute)|| b.textContent||b.innerText||h(b).text()||"":"function"===typeof l?l(b,a,c):"function"===typeof(g=f.getColumnData(a,l,c))?g(b,a,c):b.textContent||b.innerText||h(b).text()||"";return h.trim(d)}function v(a){var b,c,g=a.config,e=g.$tbodies=g.$table.children("tbody:not(."+g.cssInfoBlock+")"),l,x,k,h,m,B,u,s,t,n=0,v="",w=e.length;if(0===w)return g.debug?d("Warning: *Empty table!* Not building a parser cache"):"";g.debug&&(t=new Date,d("Detecting parsers for each column"));b=[];for(c=[];n<w;){l=e[n].rows; if(l[n])for(x=g.columns,k=0;k<x;k++){h=g.$headers.filter('[data-column="'+k+'"]:last');m=f.getColumnData(a,g.headers,k);s=f.getParserById(f.getData(h,m,"extractor"));u=f.getParserById(f.getData(h,m,"sorter"));B="false"===f.getData(h,m,"parser");g.empties[k]=f.getData(h,m,"empty")||g.emptyTo||(g.emptyToBottom?"bottom":"top");g.strings[k]=f.getData(h,m,"string")||g.stringTo||"max";B&&(u=f.getParserById("no-parser"));s||(s=!1);if(!u)a:{h=a;m=l;B=-1;u=k;for(var A=void 0,K=f.parsers.length,H=!1,z="",A= !0;""===z&&A;)B++,m[B]?(H=m[B].cells[u],z=r(h,H,u),h.config.debug&&d("Checking if value was empty on row "+B+", column: "+u+': "'+z+'"')):A=!1;for(;0<=--K;)if((A=f.parsers[K])&&"text"!==A.id&&A.is&&A.is(z,h,H)){u=A;break a}u=f.getParserById("text")}g.debug&&(v+="column:"+k+"; extractor:"+s.id+"; parser:"+u.id+"; string:"+g.strings[k]+"; empty: "+g.empties[k]+"\n");c[k]=u;b[k]=s}n+=c.length?w:1}g.debug&&(d(v?v:"No parsers detected"),q("Completed detecting parsers",t));g.parsers=c;g.extractors=b}function w(a){var b, c,g,e,l,x,k,p,m,n,u,s=a.config,t=s.$table.children("tbody"),v=s.extractors,w=s.parsers;s.cache={};s.totalRows=0;if(!w)return s.debug?d("Warning: *Empty table!* Not building a cache"):"";s.debug&&(p=new Date);s.showProcessing&&f.isProcessing(a,!0);for(l=0;l<t.length;l++)if(u=[],b=s.cache[l]={normalized:[]},!t.eq(l).hasClass(s.cssInfoBlock)){m=t[l]&&t[l].rows.length||0;for(g=0;g<m;++g)if(n={child:[]},x=h(t[l].rows[g]),k=[],x.hasClass(s.cssChildRow)&&0!==g)c=b.normalized.length-1,b.normalized[c][s.columns].$row= b.normalized[c][s.columns].$row.add(x),x.prev().hasClass(s.cssChildRow)||x.prev().addClass(f.css.cssHasChild),n.child[c]=h.trim(x[0].textContent||x[0].innerText||x.text()||"");else{n.$row=x;n.order=g;for(e=0;e<s.columns;++e)"undefined"===typeof w[e]?s.debug&&d("No parser found for cell:",x[0].cells[e],"does it have a header?"):(c=r(a,x[0].cells[e],e),c="undefined"===typeof v[e].id?c:v[e].format(c,a,x[0].cells[e],e),c="no-parser"===w[e].id?"":w[e].format(c,a,x[0].cells[e],e),k.push(s.ignoreCase&&"string"=== typeof c?c.toLowerCase():c),"numeric"===(w[e].type||"").toLowerCase()&&(u[e]=Math.max(Math.abs(c)||0,u[e]||0)));k[s.columns]=n;b.normalized.push(k)}b.colMax=u;s.totalRows+=b.normalized.length}s.showProcessing&&f.isProcessing(a);s.debug&&q("Building cache for "+m+" rows",p)}function z(a,b){var c=a.config,g=c.widgetOptions,e=a.tBodies,l=[],d=c.cache,k,p,m,r,u,s;if(n(d))return c.appender?c.appender(a,l):a.isUpdating?c.$table.trigger("updateComplete",a):"";c.debug&&(s=new Date);for(u=0;u<e.length;u++)if(k= h(e[u]),k.length&&!k.hasClass(c.cssInfoBlock)){m=f.processTbody(a,k,!0);k=d[u].normalized;p=k.length;for(r=0;r<p;r++)l.push(k[r][c.columns].$row),c.appender&&(!c.pager||c.pager.removeRows&&g.pager_removeRows||c.pager.ajax)||m.append(k[r][c.columns].$row);f.processTbody(a,m,!1)}c.appender&&c.appender(a,l);c.debug&&q("Rebuilt table",s);b||c.appender||f.applyWidget(a);a.isUpdating&&c.$table.trigger("updateComplete",a)}function D(a){return/^d/i.test(a)||1===a}function E(a){var b,c,g,e,l,x,k,p=a.config; p.headerList=[];p.headerContent=[];p.debug&&(k=new Date);p.columns=f.computeColumnIndex(p.$table.children("thead, tfoot").children("tr"));e=p.cssIcon?'<i class="'+(p.cssIcon===f.css.icon?f.css.icon:p.cssIcon+" "+f.css.icon)+'"></i>':"";p.$headers=h(a).find(p.selectorHeaders).each(function(k){c=h(this);b=f.getColumnData(a,p.headers,k,!0);p.headerContent[k]=h(this).html();l=p.headerTemplate.replace(/\{content\}/g,h(this).html()).replace(/\{icon\}/g,e);p.onRenderTemplate&&(g=p.onRenderTemplate.apply(c, [k,l]))&&"string"===typeof g&&(l=g);h(this).html('<div class="'+f.css.headerIn+'">'+l+"</div>");p.onRenderHeader&&p.onRenderHeader.apply(c,[k]);this.column=parseInt(h(this).attr("data-column"),10);this.order=D(f.getData(c,b,"sortInitialOrder")||p.sortInitialOrder)?[1,0,2]:[0,1,2];this.count=-1;this.lockedOrder=!1;x=f.getData(c,b,"lockedOrder")||!1;"undefined"!==typeof x&&!1!==x&&(this.order=this.lockedOrder=D(x)?[1,1,1]:[0,0,0]);c.addClass(f.css.header+" "+p.cssHeader);p.headerList[k]=this;c.parent().addClass(f.css.headerRow+ " "+p.cssHeaderRow).attr("role","row");p.tabIndex&&c.attr("tabindex",0)}).attr({scope:"col",role:"columnheader"});C(a);p.debug&&(q("Built headers:",k),d(p.$headers))}function F(a,b,c){var g=a.config;g.$table.find(g.selectorRemove).remove();v(a);w(a);I(g.$table,b,c)}function C(a){var b,c,g,e=a.config;e.$headers.each(function(l,d){c=h(d);g=f.getColumnData(a,e.headers,l,!0);b="false"===f.getData(d,g,"sorter")||"false"===f.getData(d,g,"parser");d.sortDisabled=b;c[b?"addClass":"removeClass"]("sorter-false").attr("aria-disabled", ""+b);a.id&&(b?c.removeAttr("aria-controls"):c.attr("aria-controls",a.id))})}function G(a){var b,c,g=a.config,e=g.sortList,l=e.length,d=f.css.sortNone+" "+g.cssNone,k=[f.css.sortAsc+" "+g.cssAsc,f.css.sortDesc+" "+g.cssDesc],p=["ascending","descending"],m=h(a).find("tfoot tr").children().add(g.$extraHeaders).removeClass(k.join(" "));g.$headers.removeClass(k.join(" ")).addClass(d).attr("aria-sort","none");for(b=0;b<l;b++)if(2!==e[b][1]&&(a=g.$headers.not(".sorter-false").filter('[data-column="'+e[b][0]+ '"]'+(1===l?":last":"")),a.length)){for(c=0;c<a.length;c++)a[c].sortDisabled||a.eq(c).removeClass(d).addClass(k[e[b][1]]).attr("aria-sort",p[e[b][1]]);m.length&&m.filter('[data-column="'+e[b][0]+'"]').removeClass(d).addClass(k[e[b][1]])}g.$headers.not(".sorter-false").each(function(){var a=h(this),b=this.order[(this.count+1)%(g.sortReset?3:2)],b=a.text()+": "+f.language[a.hasClass(f.css.sortAsc)?"sortAsc":a.hasClass(f.css.sortDesc)?"sortDesc":"sortNone"]+f.language[0===b?"nextAsc":1===b?"nextDesc": "nextNone"];a.attr("aria-label",b)})}function O(a){if(a.config.widthFixed&&0===h(a).find("colgroup").length){var b=h("<colgroup>"),c=h(a).width();h(a.tBodies[0]).find("tr:first").children(":visible").each(function(){b.append(h("<col>").css("width",parseInt(h(this).width()/c*1E3,10)/10+"%"))});h(a).prepend(b)}}function P(a,b){var c,g,e,l,f,k=a.config,d=b||k.sortList;k.sortList=[];h.each(d,function(a,b){l=parseInt(b[0],10);if(e=k.$headers.filter('[data-column="'+l+'"]:last')[0]){g=(g=(""+b[1]).match(/^(1|d|s|o|n)/))? g[0]:"";switch(g){case "1":case "d":g=1;break;case "s":g=f||0;break;case "o":c=e.order[(f||0)%(k.sortReset?3:2)];g=0===c?1:1===c?0:2;break;case "n":e.count+=1;g=e.order[e.count%(k.sortReset?3:2)];break;default:g=0}f=0===a?g:f;c=[l,parseInt(g,10)||0];k.sortList.push(c);g=h.inArray(c[1],e.order);e.count=0<=g?g:c[1]%(k.sortReset?3:2)}})}function Q(a,b){return a&&a[b]?a[b].type||"":""}function L(a,b,c){if(a.isUpdating)return setTimeout(function(){L(a,b,c)},50);var g,e,l,d,k=a.config,p=!c[k.sortMultiSortKey], m=k.$table;m.trigger("sortStart",a);b.count=c[k.sortResetKey]?2:(b.count+1)%(k.sortReset?3:2);k.sortRestart&&(e=b,k.$headers.each(function(){this===e||!p&&h(this).is("."+f.css.sortDesc+",."+f.css.sortAsc)||(this.count=-1)}));e=b.column;if(p){k.sortList=[];if(null!==k.sortForce)for(g=k.sortForce,l=0;l<g.length;l++)g[l][0]!==e&&k.sortList.push(g[l]);g=b.order[b.count];if(2>g&&(k.sortList.push([e,g]),1<b.colSpan))for(l=1;l<b.colSpan;l++)k.sortList.push([e+l,g])}else{if(k.sortAppend&&1<k.sortList.length)for(l= 0;l<k.sortAppend.length;l++)d=f.isValueInArray(k.sortAppend[l][0],k.sortList),0<=d&&k.sortList.splice(d,1);if(0<=f.isValueInArray(e,k.sortList))for(l=0;l<k.sortList.length;l++)d=k.sortList[l],g=k.$headers.filter('[data-column="'+d[0]+'"]:last')[0],d[0]===e&&(d[1]=g.order[b.count],2===d[1]&&(k.sortList.splice(l,1),g.count=-1));else if(g=b.order[b.count],2>g&&(k.sortList.push([e,g]),1<b.colSpan))for(l=1;l<b.colSpan;l++)k.sortList.push([e+l,g])}if(null!==k.sortAppend)for(g=k.sortAppend,l=0;l<g.length;l++)g[l][0]!== e&&k.sortList.push(g[l]);m.trigger("sortBegin",a);setTimeout(function(){G(a);J(a);z(a);m.trigger("sortEnd",a)},1)}function J(a){var b,c,g,e,l,d,k,h,m,r,u,s=0,t=a.config,v=t.textSorter||"",w=t.sortList,y=w.length,z=a.tBodies.length;if(!t.serverSideSorting&&!n(t.cache)){t.debug&&(l=new Date);for(c=0;c<z;c++)d=t.cache[c].colMax,k=t.cache[c].normalized,k.sort(function(c,l){for(b=0;b<y;b++){e=w[b][0];h=w[b][1];s=0===h;if(t.sortStable&&c[e]===l[e]&&1===y)break;(g=/n/i.test(Q(t.parsers,e)))&&t.strings[e]? (g="boolean"===typeof t.string[t.strings[e]]?(s?1:-1)*(t.string[t.strings[e]]?-1:1):t.strings[e]?t.string[t.strings[e]]||0:0,m=t.numberSorter?t.numberSorter(c[e],l[e],s,d[e],a):f["sortNumeric"+(s?"Asc":"Desc")](c[e],l[e],g,d[e],e,a)):(r=s?c:l,u=s?l:c,m="function"===typeof v?v(r[e],u[e],s,e,a):"object"===typeof v&&v.hasOwnProperty(e)?v[e](r[e],u[e],s,e,a):f["sortNatural"+(s?"Asc":"Desc")](c[e],l[e],e,a,t));if(m)return m}return c[t.columns].order-l[t.columns].order});t.debug&&q("Sorting on "+w.toString()+ " and dir "+h+" time",l)}}function M(a,b){a[0].isUpdating&&a.trigger("updateComplete");h.isFunction(b)&&b(a[0])}function I(a,b,c){var g=a[0].config.sortList;!1!==b&&!a[0].isProcessing&&g.length?a.trigger("sorton",[g,function(){M(a,c)},!0]):(M(a,c),f.applyWidget(a[0],!1))}function N(a){var b=a.config,c=b.$table;c.unbind("sortReset update updateRows updateCell updateAll addRows updateComplete sorton appendCache updateCache applyWidgetId applyWidgets refreshWidgets destroy mouseup mouseleave ".split(" ").join(b.namespace+ " ")).bind("sortReset"+b.namespace,function(g,e){g.stopPropagation();b.sortList=[];G(a);J(a);z(a);h.isFunction(e)&&e(a)}).bind("updateAll"+b.namespace,function(g,e,c){g.stopPropagation();a.isUpdating=!0;f.refreshWidgets(a,!0,!0);f.restoreHeaders(a);E(a);f.bindEvents(a,b.$headers,!0);N(a);F(a,e,c)}).bind("update"+b.namespace+" updateRows"+b.namespace,function(b,e,c){b.stopPropagation();a.isUpdating=!0;C(a);F(a,e,c)}).bind("updateCell"+b.namespace,function(g,e,l,f){g.stopPropagation();a.isUpdating= !0;c.find(b.selectorRemove).remove();var d,p,m;p=c.find("tbody");m=h(e);g=p.index(h.fn.closest?m.closest("tbody"):m.parents("tbody").filter(":first"));d=h.fn.closest?m.closest("tr"):m.parents("tr").filter(":first");e=m[0];p.length&&0<=g&&(p=p.eq(g).find("tr").index(d),m=m.index(),b.cache[g].normalized[p][b.columns].$row=d,d="undefined"===typeof b.extractors[m].id?r(a,e,m):b.extractors[m].format(r(a,e,m),a,e,m),e="no-parser"===b.parsers[m].id?"":b.parsers[m].format(d,a,e,m),b.cache[g].normalized[p][m]= b.ignoreCase&&"string"===typeof e?e.toLowerCase():e,"numeric"===(b.parsers[m].type||"").toLowerCase()&&(b.cache[g].colMax[m]=Math.max(Math.abs(e)||0,b.cache[g].colMax[m]||0)),I(c,l,f))}).bind("addRows"+b.namespace,function(g,e,l,f){g.stopPropagation();a.isUpdating=!0;if(n(b.cache))C(a),F(a,l,f);else{e=h(e).attr("role","row");var d,p,m,q,u,s=e.filter("tr").length,t=c.find("tbody").index(e.parents("tbody").filter(":first"));b.parsers&&b.parsers.length||v(a);for(g=0;g<s;g++){p=e[g].cells.length;u=[]; q={child:[],$row:e.eq(g),order:b.cache[t].normalized.length};for(d=0;d<p;d++)m="undefined"===typeof b.extractors[d].id?r(a,e[g].cells[d],d):b.extractors[d].format(r(a,e[g].cells[d],d),a,e[g].cells[d],d),m="no-parser"===b.parsers[d].id?"":b.parsers[d].format(m,a,e[g].cells[d],d),u[d]=b.ignoreCase&&"string"===typeof m?m.toLowerCase():m,"numeric"===(b.parsers[d].type||"").toLowerCase()&&(b.cache[t].colMax[d]=Math.max(Math.abs(u[d])||0,b.cache[t].colMax[d]||0));u.push(q);b.cache[t].normalized.push(u)}I(c, l,f)}}).bind("updateComplete"+b.namespace,function(){a.isUpdating=!1}).bind("sorton"+b.namespace,function(b,e,d,x){var k=a.config;b.stopPropagation();c.trigger("sortStart",this);P(a,e);G(a);k.delayInit&&n(k.cache)&&w(a);c.trigger("sortBegin",this);J(a);z(a,x);c.trigger("sortEnd",this);f.applyWidget(a);h.isFunction(d)&&d(a)}).bind("appendCache"+b.namespace,function(b,e,c){b.stopPropagation();z(a,c);h.isFunction(e)&&e(a)}).bind("updateCache"+b.namespace,function(c,e){b.parsers&&b.parsers.length||v(a); w(a);h.isFunction(e)&&e(a)}).bind("applyWidgetId"+b.namespace,function(c,e){c.stopPropagation();f.getWidgetById(e).format(a,b,b.widgetOptions)}).bind("applyWidgets"+b.namespace,function(b,e){b.stopPropagation();f.applyWidget(a,e)}).bind("refreshWidgets"+b.namespace,function(b,e,c){b.stopPropagation();f.refreshWidgets(a,e,c)}).bind("destroy"+b.namespace,function(b,e,c){b.stopPropagation();f.destroy(a,e,c)}).bind("resetToLoadState"+b.namespace,function(){f.refreshWidgets(a,!0,!0);b=h.extend(!0,f.defaults, b.originalSettings);a.hasInitialized=!1;f.setup(a,b)})}var f=this;f.version="2.17.7";f.parsers=[];f.widgets=[];f.defaults={theme:"default",widthFixed:!1,showProcessing:!1,headerTemplate:"{content}",onRenderTemplate:null,onRenderHeader:null,cancelSelection:!0,tabIndex:!0,dateFormat:"mmddyyyy",sortMultiSortKey:"shiftKey",sortResetKey:"ctrlKey",usNumberFormat:!0,delayInit:!1,serverSideSorting:!1,headers:{},ignoreCase:!0,sortForce:null,sortList:[],sortAppend:null,sortStable:!1,sortInitialOrder:"asc", sortLocaleCompare:!1,sortReset:!1,sortRestart:!1,emptyTo:"bottom",stringTo:"max",textExtraction:"basic",textAttribute:"data-text",textSorter:null,numberSorter:null,widgets:[],widgetOptions:{zebra:["even","odd"]},initWidgets:!0,initialized:null,tableClass:"",cssAsc:"",cssDesc:"",cssNone:"",cssHeader:"",cssHeaderRow:"",cssProcessing:"",cssChildRow:"tablesorter-childRow",cssIcon:"tablesorter-icon",cssInfoBlock:"tablesorter-infoOnly",selectorHeaders:"> thead th, > thead td",selectorSort:"th, td",selectorRemove:".remove-me", debug:!1,headerList:[],empties:{},strings:{},parsers:[]};f.css={table:"tablesorter",cssHasChild:"tablesorter-hasChildRow",childRow:"tablesorter-childRow",header:"tablesorter-header",headerRow:"tablesorter-headerRow",headerIn:"tablesorter-header-inner",icon:"tablesorter-icon",info:"tablesorter-infoOnly",processing:"tablesorter-processing",sortAsc:"tablesorter-headerAsc",sortDesc:"tablesorter-headerDesc",sortNone:"tablesorter-headerUnSorted"};f.language={sortAsc:"Ascending sort applied, ",sortDesc:"Descending sort applied, ", sortNone:"No sort applied, ",nextAsc:"activate to apply an ascending sort",nextDesc:"activate to apply a descending sort",nextNone:"activate to remove the sort"};f.log=d;f.benchmark=q;f.construct=function(a){return this.each(function(){var b=h.extend(!0,{},f.defaults,a);b.originalSettings=a;!this.hasInitialized&&f.buildTable&&"TABLE"!==this.tagName?f.buildTable(this,b):f.setup(this,b)})};f.setup=function(a,b){if(!a||!a.tHead||0===a.tBodies.length||!0===a.hasInitialized)return b.debug?d("ERROR: stopping initialization! No table, thead, tbody or tablesorter has already been initialized"): "";var c="",g=h(a),e=h.metadata;a.hasInitialized=!1;a.isProcessing=!0;a.config=b;h.data(a,"tablesorter",b);b.debug&&h.data(a,"startoveralltimer",new Date);b.supportsDataObject=function(a){a[0]=parseInt(a[0],10);return 1<a[0]||1===a[0]&&4<=parseInt(a[1],10)}(h.fn.jquery.split("."));b.string={max:1,min:-1,emptyMin:1,emptyMax:-1,zero:0,none:0,"null":0,top:!0,bottom:!1};/tablesorter\-/.test(g.attr("class"))||(c=""!==b.theme?" tablesorter-"+b.theme:"");b.table=a;b.$table=g.addClass(f.css.table+" "+b.tableClass+ c).attr("role","grid");b.$headers=g.find(b.selectorHeaders);b.namespace=b.namespace?"."+b.namespace.replace(/\W/g,""):".tablesorter"+Math.random().toString(16).slice(2);b.$table.children().children("tr").attr("role","row");b.$tbodies=g.children("tbody:not(."+b.cssInfoBlock+")").attr({"aria-live":"polite","aria-relevant":"all"});b.$table.find("caption").length&&b.$table.attr("aria-labelledby","theCaption");b.widgetInit={};b.textExtraction=b.$table.attr("data-text-extraction")||b.textExtraction||"basic"; E(a);O(a);v(a);b.totalRows=0;b.delayInit||w(a);f.bindEvents(a,b.$headers,!0);N(a);b.supportsDataObject&&"undefined"!==typeof g.data().sortlist?b.sortList=g.data().sortlist:e&&g.metadata()&&g.metadata().sortlist&&(b.sortList=g.metadata().sortlist);f.applyWidget(a,!0);0<b.sortList.length?g.trigger("sorton",[b.sortList,{},!b.initWidgets,!0]):(G(a),b.initWidgets&&f.applyWidget(a,!1));b.showProcessing&&g.unbind("sortBegin"+b.namespace+" sortEnd"+b.namespace).bind("sortBegin"+b.namespace+" sortEnd"+b.namespace, function(c){clearTimeout(b.processTimer);f.isProcessing(a);"sortBegin"===c.type&&(b.processTimer=setTimeout(function(){f.isProcessing(a,!0)},500))});a.hasInitialized=!0;a.isProcessing=!1;b.debug&&f.benchmark("Overall initialization time",h.data(a,"startoveralltimer"));g.trigger("tablesorter-initialized",a);"function"===typeof b.initialized&&b.initialized(a)};f.getColumnData=function(a,b,c,g){if("undefined"!==typeof b&&null!==b){a=h(a)[0];var e,d=a.config;if(b[c])return g?b[c]:b[d.$headers.index(d.$headers.filter('[data-column="'+ c+'"]:last'))];for(e in b)if("string"===typeof e&&(a=g?d.$headers.eq(c).filter(e):d.$headers.filter('[data-column="'+c+'"]:last').filter(e),a.length))return b[e]}};f.computeColumnIndex=function(a){var b=[],c=0,g,e,d,f,k,p,m,n,q,s;for(g=0;g<a.length;g++)for(k=a[g].cells,e=0;e<k.length;e++){d=k[e];f=h(d);p=d.parentNode.rowIndex;f.index();m=d.rowSpan||1;n=d.colSpan||1;"undefined"===typeof b[p]&&(b[p]=[]);for(d=0;d<b[p].length+1;d++)if("undefined"===typeof b[p][d]){q=d;break}c=Math.max(q,c);f.attr({"data-column":q}); for(d=p;d<p+m;d++)for("undefined"===typeof b[d]&&(b[d]=[]),s=b[d],f=q;f<q+n;f++)s[f]="x"}return c+1};f.isProcessing=function(a,b,c){a=h(a);var g=a[0].config,e=c||a.find("."+f.css.header);b?("undefined"!==typeof c&&0<g.sortList.length&&(e=e.filter(function(){return this.sortDisabled?!1:0<=f.isValueInArray(parseFloat(h(this).attr("data-column")),g.sortList)})),a.add(e).addClass(f.css.processing+" "+g.cssProcessing)):a.add(e).removeClass(f.css.processing+" "+g.cssProcessing)};f.processTbody=function(a, b,c){a=h(a)[0];if(c)return a.isProcessing=!0,b.before('<span class="tablesorter-savemyplace"/>'),c=h.fn.detach?b.detach():b.remove();c=h(a).find("span.tablesorter-savemyplace");b.insertAfter(c);c.remove();a.isProcessing=!1};f.clearTableBody=function(a){h(a)[0].config.$tbodies.children().detach()};f.bindEvents=function(a,b,c){a=h(a)[0];var g,e=a.config;!0!==c&&(e.$extraHeaders=e.$extraHeaders?e.$extraHeaders.add(b):b);b.find(e.selectorSort).add(b.filter(e.selectorSort)).unbind(["mousedown","mouseup", "sort","keyup",""].join(e.namespace+" ")).bind(["mousedown","mouseup","sort","keyup",""].join(e.namespace+" "),function(c,d){var f;f=c.type;if(!(1!==(c.which||c.button)&&!/sort|keyup/.test(f)||"keyup"===f&&13!==c.which||"mouseup"===f&&!0!==d&&250<(new Date).getTime()-g)){if("mousedown"===f)return g=(new Date).getTime(),/(input|select|button|textarea)/i.test(c.target.tagName)?"":!e.cancelSelection;e.delayInit&&n(e.cache)&&w(a);f=h.fn.closest?h(this).closest("th, td")[0]:/TH|TD/.test(this.tagName)? this:h(this).parents("th, td")[0];f=e.$headers[b.index(f)];f.sortDisabled||L(a,f,c)}});e.cancelSelection&&b.attr("unselectable","on").bind("selectstart",!1).css({"user-select":"none",MozUserSelect:"none"})};f.restoreHeaders=function(a){var b=h(a)[0].config;b.$table.find(b.selectorHeaders).each(function(a){h(this).find("."+f.css.headerIn).length&&h(this).html(b.headerContent[a])})};f.destroy=function(a,b,c){a=h(a)[0];if(a.hasInitialized){f.refreshWidgets(a,!0,!0);var g=h(a),e=a.config,d=g.find("thead:first"), q=d.find("tr."+f.css.headerRow).removeClass(f.css.headerRow+" "+e.cssHeaderRow),k=g.find("tfoot:first > tr").children("th, td");!1===b&&0<=h.inArray("uitheme",e.widgets)&&(g.trigger("applyWidgetId",["uitheme"]),g.trigger("applyWidgetId",["zebra"]));d.find("tr").not(q).remove();g.removeData("tablesorter").unbind("sortReset update updateAll updateRows updateCell addRows updateComplete sorton appendCache updateCache applyWidgetId applyWidgets refreshWidgets destroy mouseup mouseleave keypress sortBegin sortEnd resetToLoadState ".split(" ").join(e.namespace+ " "));e.$headers.add(k).removeClass([f.css.header,e.cssHeader,e.cssAsc,e.cssDesc,f.css.sortAsc,f.css.sortDesc,f.css.sortNone].join(" ")).removeAttr("data-column").removeAttr("aria-label").attr("aria-disabled","true");q.find(e.selectorSort).unbind(["mousedown","mouseup","keypress",""].join(e.namespace+" "));f.restoreHeaders(a);g.toggleClass(f.css.table+" "+e.tableClass+" tablesorter-"+e.theme,!1===b);a.hasInitialized=!1;delete a.config.cache;"function"===typeof c&&c(a)}};f.regex={chunk:/(^([+\-]?(?:0|[1-9]\d*)(?:\.\d*)?(?:[eE][+\-]?\d+)?)?$|^0x[0-9a-f]+$|\d+)/gi, chunks:/(^\\0|\\0$)/,hex:/^0x[0-9a-f]+$/i};f.sortNatural=function(a,b){if(a===b)return 0;var c,g,e,d,h,k;g=f.regex;if(g.hex.test(b)){c=parseInt(a.match(g.hex),16);e=parseInt(b.match(g.hex),16);if(c<e)return-1;if(c>e)return 1}c=a.replace(g.chunk,"\\0$1\\0").replace(g.chunks,"").split("\\0");g=b.replace(g.chunk,"\\0$1\\0").replace(g.chunks,"").split("\\0");k=Math.max(c.length,g.length);for(h=0;h<k;h++){e=isNaN(c[h])?c[h]||0:parseFloat(c[h])||0;d=isNaN(g[h])?g[h]||0:parseFloat(g[h])||0;if(isNaN(e)!== isNaN(d))return isNaN(e)?1:-1;typeof e!==typeof d&&(e+="",d+="");if(e<d)return-1;if(e>d)return 1}return 0};f.sortNaturalAsc=function(a,b,c,g,e){if(a===b)return 0;c=e.string[e.empties[c]||e.emptyTo];return""===a&&0!==c?"boolean"===typeof c?c?-1:1:-c||-1:""===b&&0!==c?"boolean"===typeof c?c?1:-1:c||1:f.sortNatural(a,b)};f.sortNaturalDesc=function(a,b,c,g,e){if(a===b)return 0;c=e.string[e.empties[c]||e.emptyTo];return""===a&&0!==c?"boolean"===typeof c?c?-1:1:c||1:""===b&&0!==c?"boolean"===typeof c?c? 1:-1:-c||-1:f.sortNatural(b,a)};f.sortText=function(a,b){return a>b?1:a<b?-1:0};f.getTextValue=function(a,b,c){if(c){var g=a?a.length:0,e=c+b;for(c=0;c<g;c++)e+=a.charCodeAt(c);return b*e}return 0};f.sortNumericAsc=function(a,b,c,g,e,d){if(a===b)return 0;d=d.config;e=d.string[d.empties[e]||d.emptyTo];if(""===a&&0!==e)return"boolean"===typeof e?e?-1:1:-e||-1;if(""===b&&0!==e)return"boolean"===typeof e?e?1:-1:e||1;isNaN(a)&&(a=f.getTextValue(a,c,g));isNaN(b)&&(b=f.getTextValue(b,c,g));return a-b};f.sortNumericDesc= function(a,b,c,g,e,d){if(a===b)return 0;d=d.config;e=d.string[d.empties[e]||d.emptyTo];if(""===a&&0!==e)return"boolean"===typeof e?e?-1:1:e||1;if(""===b&&0!==e)return"boolean"===typeof e?e?1:-1:-e||-1;isNaN(a)&&(a=f.getTextValue(a,c,g));isNaN(b)&&(b=f.getTextValue(b,c,g));return b-a};f.sortNumeric=function(a,b){return a-b};f.characterEquivalents={a:"\u00e1\u00e0\u00e2\u00e3\u00e4\u0105\u00e5",A:"\u00c1\u00c0\u00c2\u00c3\u00c4\u0104\u00c5",c:"\u00e7\u0107\u010d",C:"\u00c7\u0106\u010c",e:"\u00e9\u00e8\u00ea\u00eb\u011b\u0119", E:"\u00c9\u00c8\u00ca\u00cb\u011a\u0118",i:"\u00ed\u00ec\u0130\u00ee\u00ef\u0131",I:"\u00cd\u00cc\u0130\u00ce\u00cf",o:"\u00f3\u00f2\u00f4\u00f5\u00f6",O:"\u00d3\u00d2\u00d4\u00d5\u00d6",ss:"\u00df",SS:"\u1e9e",u:"\u00fa\u00f9\u00fb\u00fc\u016f",U:"\u00da\u00d9\u00db\u00dc\u016e"};f.replaceAccents=function(a){var b,c="[",d=f.characterEquivalents;if(!f.characterRegex){f.characterRegexArray={};for(b in d)"string"===typeof b&&(c+=d[b],f.characterRegexArray[b]=new RegExp("["+d[b]+"]","g"));f.characterRegex= new RegExp(c+"]")}if(f.characterRegex.test(a))for(b in d)"string"===typeof b&&(a=a.replace(f.characterRegexArray[b],b));return a};f.isValueInArray=function(a,b){var c,d=b.length;for(c=0;c<d;c++)if(b[c][0]===a)return c;return-1};f.addParser=function(a){var b,c=f.parsers.length,d=!0;for(b=0;b<c;b++)f.parsers[b].id.toLowerCase()===a.id.toLowerCase()&&(d=!1);d&&f.parsers.push(a)};f.getParserById=function(a){if("false"==a)return!1;var b,c=f.parsers.length;for(b=0;b<c;b++)if(f.parsers[b].id.toLowerCase()=== a.toString().toLowerCase())return f.parsers[b];return!1};f.addWidget=function(a){f.widgets.push(a)};f.hasWidget=function(a,b){a=h(a);return a.length&&a[0].config&&a[0].config.widgetInit[b]||!1};f.getWidgetById=function(a){var b,c,d=f.widgets.length;for(b=0;b<d;b++)if((c=f.widgets[b])&&c.hasOwnProperty("id")&&c.id.toLowerCase()===a.toLowerCase())return c};f.applyWidget=function(a,b){a=h(a)[0];var c=a.config,d=c.widgetOptions,e=[],l,n,k;!1!==b&&a.hasInitialized&&(a.isApplyingWidgets||a.isUpdating)|| (c.debug&&(l=new Date),c.widgets.length&&(a.isApplyingWidgets=!0,c.widgets=h.grep(c.widgets,function(a,b){return h.inArray(a,c.widgets)===b}),h.each(c.widgets||[],function(a,b){(k=f.getWidgetById(b))&&k.id&&(k.priority||(k.priority=10),e[a]=k)}),e.sort(function(a,b){return a.priority<b.priority?-1:a.priority===b.priority?0:1}),h.each(e,function(e,f){if(f){if(b||!c.widgetInit[f.id])c.widgetInit[f.id]=!0,f.hasOwnProperty("options")&&(d=a.config.widgetOptions=h.extend(!0,{},f.options,d)),f.hasOwnProperty("init")&& f.init(a,f,c,d);!b&&f.hasOwnProperty("format")&&f.format(a,c,d,!1)}})),setTimeout(function(){a.isApplyingWidgets=!1},0),c.debug&&(n=c.widgets.length,q("Completed "+(!0===b?"initializing ":"applying ")+n+" widget"+(1!==n?"s":""),l)))};f.refreshWidgets=function(a,b,c){a=h(a)[0];var g,e=a.config,l=e.widgets,q=f.widgets,k=q.length;for(g=0;g<k;g++)q[g]&&q[g].id&&(b||0>h.inArray(q[g].id,l))&&(e.debug&&d('Refeshing widgets: Removing "'+q[g].id+'"'),q[g].hasOwnProperty("remove")&&e.widgetInit[q[g].id]&&(q[g].remove(a, e,e.widgetOptions),e.widgetInit[q[g].id]=!1));!0!==c&&f.applyWidget(a,b)};f.getData=function(a,b,c){var d="";a=h(a);var e,f;if(!a.length)return"";e=h.metadata?a.metadata():!1;f=" "+(a.attr("class")||"");"undefined"!==typeof a.data(c)||"undefined"!==typeof a.data(c.toLowerCase())?d+=a.data(c)||a.data(c.toLowerCase()):e&&"undefined"!==typeof e[c]?d+=e[c]:b&&"undefined"!==typeof b[c]?d+=b[c]:" "!==f&&f.match(" "+c+"-")&&(d=f.match(new RegExp("\\s"+c+"-([\\w-]+)"))[1]||"");return h.trim(d)};f.formatFloat= function(a,b){if("string"!==typeof a||""===a)return a;var c;a=(b&&b.config?!1!==b.config.usNumberFormat:"undefined"!==typeof b?b:1)?a.replace(/,/g,""):a.replace(/[\s|\.]/g,"").replace(/,/g,".");/^\s*\([.\d]+\)/.test(a)&&(a=a.replace(/^\s*\(([.\d]+)\)/,"-$1"));c=parseFloat(a);return isNaN(c)?h.trim(a):c};f.isDigit=function(a){return isNaN(a)?/^[\-+(]?\d+[)]?$/.test(a.toString().replace(/[,.'"\s]/g,"")):!0}}});var r=h.tablesorter;h.fn.extend({tablesorter:r.construct});r.addParser({id:"no-parser",is:function(){return!1}, format:function(){return""},type:"text"});r.addParser({id:"text",is:function(){return!0},format:function(d,q){var n=q.config;d&&(d=h.trim(n.ignoreCase?d.toLocaleLowerCase():d),d=n.sortLocaleCompare?r.replaceAccents(d):d);return d},type:"text"});r.addParser({id:"digit",is:function(d){return r.isDigit(d)},format:function(d,q){var n=r.formatFloat((d||"").replace(/[^\w,. \-()]/g,""),q);return d&&"number"===typeof n?n:d?h.trim(d&&q.config.ignoreCase?d.toLocaleLowerCase():d):d},type:"numeric"});r.addParser({id:"currency", is:function(d){return/^\(?\d+[\u00a3$\u20ac\u00a4\u00a5\u00a2?.]|[\u00a3$\u20ac\u00a4\u00a5\u00a2?.]\d+\)?$/.test((d||"").replace(/[+\-,. ]/g,""))},format:function(d,q){var n=r.formatFloat((d||"").replace(/[^\w,. \-()]/g,""),q);return d&&"number"===typeof n?n:d?h.trim(d&&q.config.ignoreCase?d.toLocaleLowerCase():d):d},type:"numeric"});r.addParser({id:"ipAddress",is:function(d){return/^\d{1,3}[\.]\d{1,3}[\.]\d{1,3}[\.]\d{1,3}$/.test(d)},format:function(d,h){var n,y=d?d.split("."):"",v="",w=y.length; for(n=0;n<w;n++)v+=("00"+y[n]).slice(-3);return d?r.formatFloat(v,h):d},type:"numeric"});r.addParser({id:"url",is:function(d){return/^(https?|ftp|file):\/\//.test(d)},format:function(d){return d?h.trim(d.replace(/(https?|ftp|file):\/\//,"")):d},type:"text"});r.addParser({id:"isoDate",is:function(d){return/^\d{4}[\/\-]\d{1,2}[\/\-]\d{1,2}/.test(d)},format:function(d,h){return d?r.formatFloat(""!==d?(new Date(d.replace(/-/g,"/"))).getTime()||d:"",h):d},type:"numeric"});r.addParser({id:"percent",is:function(d){return/(\d\s*?%|%\s*?\d)/.test(d)&& 15>d.length},format:function(d,h){return d?r.formatFloat(d.replace(/%/g,""),h):d},type:"numeric"});r.addParser({id:"usLongDate",is:function(d){return/^[A-Z]{3,10}\.?\s+\d{1,2},?\s+(\d{4})(\s+\d{1,2}:\d{2}(:\d{2})?(\s+[AP]M)?)?$/i.test(d)||/^\d{1,2}\s+[A-Z]{3,10}\s+\d{4}/i.test(d)},format:function(d,h){return d?r.formatFloat((new Date(d.replace(/(\S)([AP]M)$/i,"$1 $2"))).getTime()||d,h):d},type:"numeric"});r.addParser({id:"shortDate",is:function(d){return/(^\d{1,2}[\/\s]\d{1,2}[\/\s]\d{4})|(^\d{4}[\/\s]\d{1,2}[\/\s]\d{1,2})/.test((d|| "").replace(/\s+/g," ").replace(/[\-.,]/g,"/"))},format:function(d,h,n,y){if(d){n=h.config;var v=n.$headers.filter("[data-column="+y+"]:last");y=v.length&&v[0].dateFormat||r.getData(v,r.getColumnData(h,n.headers,y),"dateFormat")||n.dateFormat;d=d.replace(/\s+/g," ").replace(/[\-.,]/g,"/");"mmddyyyy"===y?d=d.replace(/(\d{1,2})[\/\s](\d{1,2})[\/\s](\d{4})/,"$3/$1/$2"):"ddmmyyyy"===y?d=d.replace(/(\d{1,2})[\/\s](\d{1,2})[\/\s](\d{4})/,"$3/$2/$1"):"yyyymmdd"===y&&(d=d.replace(/(\d{4})[\/\s](\d{1,2})[\/\s](\d{1,2})/, "$1/$2/$3"))}return d?r.formatFloat((new Date(d)).getTime()||d,h):d},type:"numeric"});r.addParser({id:"time",is:function(d){return/^(([0-2]?\d:[0-5]\d)|([0-1]?\d:[0-5]\d\s?([AP]M)))$/i.test(d)},format:function(d,h){return d?r.formatFloat((new Date("2000/01/01 "+d.replace(/(\S)([AP]M)$/i,"$1 $2"))).getTime()||d,h):d},type:"numeric"});r.addParser({id:"metadata",is:function(){return!1},format:function(d,q,n){d=q.config;d=d.parserMetadataName?d.parserMetadataName:"sortValue";return h(n).metadata()[d]}, type:"numeric"});r.addWidget({id:"zebra",priority:90,format:function(d,q,n){var y,v,w,z,D,E,F=new RegExp(q.cssChildRow,"i"),C=q.$tbodies;q.debug&&(D=new Date);for(d=0;d<C.length;d++)y=C.eq(d),E=y.children("tr").length,1<E&&(w=0,y=y.children("tr:visible").not(q.selectorRemove),y.each(function(){v=h(this);F.test(this.className)||w++;z=0===w%2;v.removeClass(n.zebra[z?1:0]).addClass(n.zebra[z?0:1])}));q.debug&&r.benchmark("Applying Zebra widget",D)},remove:function(d,q,n){var r;q=q.$tbodies;var v=(n.zebra|| ["even","odd"]).join(" ");for(n=0;n<q.length;n++)r=h.tablesorter.processTbody(d,q.eq(n),!0),r.children().removeClass(v),h.tablesorter.processTbody(d,r,!1)}})}(jQuery);
25
+ !function (h) { h.extend({ tablesorter: new function () { function d() { var a = arguments[0], b = 1 < arguments.length ? Array.prototype.slice.call(arguments) : a; if ("undefined" !== typeof console && "undefined" !== typeof console.log) console[/error/i.test(a) ? "error" : /warn/i.test(a) ? "warn" : "log"](b); else alert(b) } function q(a, b) { d(a + " (" + ((new Date).getTime() - b.getTime()) + "ms)") } function n(a) { for (var b in a) return !1; return !0 } function r(a, b, c) { if (!b) return ""; var g, e = a.config, l = e.textExtraction || "", d = "", d = "basic" === l ? h(b).attr(e.textAttribute) || b.textContent || b.innerText || h(b).text() || "" : "function" === typeof l ? l(b, a, c) : "function" === typeof (g = f.getColumnData(a, l, c)) ? g(b, a, c) : b.textContent || b.innerText || h(b).text() || ""; return h.trim(d) } function v(a) { var b, c, g = a.config, e = g.$tbodies = g.$table.children("tbody:not(." + g.cssInfoBlock + ")"), l, x, k, h, m, B, u, s, t, n = 0, v = "", w = e.length; if (0 === w) return g.debug ? d("Warning: *Empty table!* Not building a parser cache") : ""; g.debug && (t = new Date, d("Detecting parsers for each column")); b = []; for (c = []; n < w;) { l = e[n].rows; if (l[n]) for (x = g.columns, k = 0; k < x; k++) { h = g.$headers.filter('[data-column="' + k + '"]:last'); m = f.getColumnData(a, g.headers, k); s = f.getParserById(f.getData(h, m, "extractor")); u = f.getParserById(f.getData(h, m, "sorter")); B = "false" === f.getData(h, m, "parser"); g.empties[k] = f.getData(h, m, "empty") || g.emptyTo || (g.emptyToBottom ? "bottom" : "top"); g.strings[k] = f.getData(h, m, "string") || g.stringTo || "max"; B && (u = f.getParserById("no-parser")); s || (s = !1); if (!u) a: { h = a; m = l; B = -1; u = k; for (var A = void 0, K = f.parsers.length, H = !1, z = "", A = !0; "" === z && A;)B++ , m[B] ? (H = m[B].cells[u], z = r(h, H, u), h.config.debug && d("Checking if value was empty on row " + B + ", column: " + u + ': "' + z + '"')) : A = !1; for (; 0 <= --K;)if ((A = f.parsers[K]) && "text" !== A.id && A.is && A.is(z, h, H)) { u = A; break a } u = f.getParserById("text") } g.debug && (v += "column:" + k + "; extractor:" + s.id + "; parser:" + u.id + "; string:" + g.strings[k] + "; empty: " + g.empties[k] + "\n"); c[k] = u; b[k] = s } n += c.length ? w : 1 } g.debug && (d(v ? v : "No parsers detected"), q("Completed detecting parsers", t)); g.parsers = c; g.extractors = b } function w(a) { var b, c, g, e, l, x, k, p, m, n, u, s = a.config, t = s.$table.children("tbody"), v = s.extractors, w = s.parsers; s.cache = {}; s.totalRows = 0; if (!w) return s.debug ? d("Warning: *Empty table!* Not building a cache") : ""; s.debug && (p = new Date); s.showProcessing && f.isProcessing(a, !0); for (l = 0; l < t.length; l++)if (u = [], b = s.cache[l] = { normalized: [] }, !t.eq(l).hasClass(s.cssInfoBlock)) { m = t[l] && t[l].rows.length || 0; for (g = 0; g < m; ++g)if (n = { child: [] }, x = h(t[l].rows[g]), k = [], x.hasClass(s.cssChildRow) && 0 !== g) c = b.normalized.length - 1, b.normalized[c][s.columns].$row = b.normalized[c][s.columns].$row.add(x), x.prev().hasClass(s.cssChildRow) || x.prev().addClass(f.css.cssHasChild), n.child[c] = h.trim(x[0].textContent || x[0].innerText || x.text() || ""); else { n.$row = x; n.order = g; for (e = 0; e < s.columns; ++e)"undefined" === typeof w[e] ? s.debug && d("No parser found for cell:", x[0].cells[e], "does it have a header?") : (c = r(a, x[0].cells[e], e), c = "undefined" === typeof v[e].id ? c : v[e].format(c, a, x[0].cells[e], e), c = "no-parser" === w[e].id ? "" : w[e].format(c, a, x[0].cells[e], e), k.push(s.ignoreCase && "string" === typeof c ? c.toLowerCase() : c), "numeric" === (w[e].type || "").toLowerCase() && (u[e] = Math.max(Math.abs(c) || 0, u[e] || 0))); k[s.columns] = n; b.normalized.push(k) } b.colMax = u; s.totalRows += b.normalized.length } s.showProcessing && f.isProcessing(a); s.debug && q("Building cache for " + m + " rows", p) } function z(a, b) { var c = a.config, g = c.widgetOptions, e = a.tBodies, l = [], d = c.cache, k, p, m, r, u, s; if (n(d)) return c.appender ? c.appender(a, l) : a.isUpdating ? c.$table.trigger("updateComplete", a) : ""; c.debug && (s = new Date); for (u = 0; u < e.length; u++)if (k = h(e[u]), k.length && !k.hasClass(c.cssInfoBlock)) { m = f.processTbody(a, k, !0); k = d[u].normalized; p = k.length; for (r = 0; r < p; r++)l.push(k[r][c.columns].$row), c.appender && (!c.pager || c.pager.removeRows && g.pager_removeRows || c.pager.ajax) || m.append(k[r][c.columns].$row); f.processTbody(a, m, !1) } c.appender && c.appender(a, l); c.debug && q("Rebuilt table", s); b || c.appender || f.applyWidget(a); a.isUpdating && c.$table.trigger("updateComplete", a) } function D(a) { return /^d/i.test(a) || 1 === a } function E(a) { var b, c, g, e, l, x, k, p = a.config; p.headerList = []; p.headerContent = []; p.debug && (k = new Date); p.columns = f.computeColumnIndex(p.$table.children("thead, tfoot").children("tr")); e = p.cssIcon ? '<i class="' + (p.cssIcon === f.css.icon ? f.css.icon : p.cssIcon + " " + f.css.icon) + '"></i>' : ""; p.$headers = h(a).find(p.selectorHeaders).each(function (k) { c = h(this); b = f.getColumnData(a, p.headers, k, !0); p.headerContent[k] = h(this).html(); l = p.headerTemplate.replace(/\{content\}/g, h(this).html()).replace(/\{icon\}/g, e); p.onRenderTemplate && (g = p.onRenderTemplate.apply(c, [k, l])) && "string" === typeof g && (l = g); h(this).html('<div class="' + f.css.headerIn + '">' + l + "</div>"); p.onRenderHeader && p.onRenderHeader.apply(c, [k]); this.column = parseInt(h(this).attr("data-column"), 10); this.order = D(f.getData(c, b, "sortInitialOrder") || p.sortInitialOrder) ? [1, 0, 2] : [0, 1, 2]; this.count = -1; this.lockedOrder = !1; x = f.getData(c, b, "lockedOrder") || !1; "undefined" !== typeof x && !1 !== x && (this.order = this.lockedOrder = D(x) ? [1, 1, 1] : [0, 0, 0]); c.addClass(f.css.header + " " + p.cssHeader); p.headerList[k] = this; c.parent().addClass(f.css.headerRow + " " + p.cssHeaderRow).attr("role", "row"); p.tabIndex && c.attr("tabindex", 0) }).attr({ scope: "col", role: "columnheader" }); C(a); p.debug && (q("Built headers:", k), d(p.$headers)) } function F(a, b, c) { var g = a.config; g.$table.find(g.selectorRemove).remove(); v(a); w(a); I(g.$table, b, c) } function C(a) { var b, c, g, e = a.config; e.$headers.each(function (l, d) { c = h(d); g = f.getColumnData(a, e.headers, l, !0); b = "false" === f.getData(d, g, "sorter") || "false" === f.getData(d, g, "parser"); d.sortDisabled = b; c[b ? "addClass" : "removeClass"]("sorter-false").attr("aria-disabled", "" + b); a.id && (b ? c.removeAttr("aria-controls") : c.attr("aria-controls", a.id)) }) } function G(a) { var b, c, g = a.config, e = g.sortList, l = e.length, d = f.css.sortNone + " " + g.cssNone, k = [f.css.sortAsc + " " + g.cssAsc, f.css.sortDesc + " " + g.cssDesc], p = ["ascending", "descending"], m = h(a).find("tfoot tr").children().add(g.$extraHeaders).removeClass(k.join(" ")); g.$headers.removeClass(k.join(" ")).addClass(d).attr("aria-sort", "none"); for (b = 0; b < l; b++)if (2 !== e[b][1] && (a = g.$headers.not(".sorter-false").filter('[data-column="' + e[b][0] + '"]' + (1 === l ? ":last" : "")), a.length)) { for (c = 0; c < a.length; c++)a[c].sortDisabled || a.eq(c).removeClass(d).addClass(k[e[b][1]]).attr("aria-sort", p[e[b][1]]); m.length && m.filter('[data-column="' + e[b][0] + '"]').removeClass(d).addClass(k[e[b][1]]) } g.$headers.not(".sorter-false").each(function () { var a = h(this), b = this.order[(this.count + 1) % (g.sortReset ? 3 : 2)], b = a.text() + ": " + f.language[a.hasClass(f.css.sortAsc) ? "sortAsc" : a.hasClass(f.css.sortDesc) ? "sortDesc" : "sortNone"] + f.language[0 === b ? "nextAsc" : 1 === b ? "nextDesc" : "nextNone"]; a.attr("aria-label", b) }) } function O(a) { if (a.config.widthFixed && 0 === h(a).find("colgroup").length) { var b = h("<colgroup>"), c = h(a).width(); h(a.tBodies[0]).find("tr:first").children(":visible").each(function () { b.append(h("<col>").css("width", parseInt(h(this).width() / c * 1E3, 10) / 10 + "%")) }); h(a).prepend(b) } } function P(a, b) { var c, g, e, l, f, k = a.config, d = b || k.sortList; k.sortList = []; h.each(d, function (a, b) { l = parseInt(b[0], 10); if (e = k.$headers.filter('[data-column="' + l + '"]:last')[0]) { g = (g = ("" + b[1]).match(/^(1|d|s|o|n)/)) ? g[0] : ""; switch (g) { case "1": case "d": g = 1; break; case "s": g = f || 0; break; case "o": c = e.order[(f || 0) % (k.sortReset ? 3 : 2)]; g = 0 === c ? 1 : 1 === c ? 0 : 2; break; case "n": e.count += 1; g = e.order[e.count % (k.sortReset ? 3 : 2)]; break; default: g = 0 }f = 0 === a ? g : f; c = [l, parseInt(g, 10) || 0]; k.sortList.push(c); g = h.inArray(c[1], e.order); e.count = 0 <= g ? g : c[1] % (k.sortReset ? 3 : 2) } }) } function Q(a, b) { return a && a[b] ? a[b].type || "" : "" } function L(a, b, c) { if (a.isUpdating) return setTimeout(function () { L(a, b, c) }, 50); var g, e, l, d, k = a.config, p = !c[k.sortMultiSortKey], m = k.$table; m.trigger("sortStart", a); b.count = c[k.sortResetKey] ? 2 : (b.count + 1) % (k.sortReset ? 3 : 2); k.sortRestart && (e = b, k.$headers.each(function () { this === e || !p && h(this).is("." + f.css.sortDesc + ",." + f.css.sortAsc) || (this.count = -1) })); e = b.column; if (p) { k.sortList = []; if (null !== k.sortForce) for (g = k.sortForce, l = 0; l < g.length; l++)g[l][0] !== e && k.sortList.push(g[l]); g = b.order[b.count]; if (2 > g && (k.sortList.push([e, g]), 1 < b.colSpan)) for (l = 1; l < b.colSpan; l++)k.sortList.push([e + l, g]) } else { if (k.sortAppend && 1 < k.sortList.length) for (l = 0; l < k.sortAppend.length; l++)d = f.isValueInArray(k.sortAppend[l][0], k.sortList), 0 <= d && k.sortList.splice(d, 1); if (0 <= f.isValueInArray(e, k.sortList)) for (l = 0; l < k.sortList.length; l++)d = k.sortList[l], g = k.$headers.filter('[data-column="' + d[0] + '"]:last')[0], d[0] === e && (d[1] = g.order[b.count], 2 === d[1] && (k.sortList.splice(l, 1), g.count = -1)); else if (g = b.order[b.count], 2 > g && (k.sortList.push([e, g]), 1 < b.colSpan)) for (l = 1; l < b.colSpan; l++)k.sortList.push([e + l, g]) } if (null !== k.sortAppend) for (g = k.sortAppend, l = 0; l < g.length; l++)g[l][0] !== e && k.sortList.push(g[l]); m.trigger("sortBegin", a); setTimeout(function () { G(a); J(a); z(a); m.trigger("sortEnd", a) }, 1) } function J(a) { var b, c, g, e, l, d, k, h, m, r, u, s = 0, t = a.config, v = t.textSorter || "", w = t.sortList, y = w.length, z = a.tBodies.length; if (!t.serverSideSorting && !n(t.cache)) { t.debug && (l = new Date); for (c = 0; c < z; c++)d = t.cache[c].colMax, k = t.cache[c].normalized, k.sort(function (c, l) { for (b = 0; b < y; b++) { e = w[b][0]; h = w[b][1]; s = 0 === h; if (t.sortStable && c[e] === l[e] && 1 === y) break; (g = /n/i.test(Q(t.parsers, e))) && t.strings[e] ? (g = "boolean" === typeof t.string[t.strings[e]] ? (s ? 1 : -1) * (t.string[t.strings[e]] ? -1 : 1) : t.strings[e] ? t.string[t.strings[e]] || 0 : 0, m = t.numberSorter ? t.numberSorter(c[e], l[e], s, d[e], a) : f["sortNumeric" + (s ? "Asc" : "Desc")](c[e], l[e], g, d[e], e, a)) : (r = s ? c : l, u = s ? l : c, m = "function" === typeof v ? v(r[e], u[e], s, e, a) : "object" === typeof v && v.hasOwnProperty(e) ? v[e](r[e], u[e], s, e, a) : f["sortNatural" + (s ? "Asc" : "Desc")](c[e], l[e], e, a, t)); if (m) return m } return c[t.columns].order - l[t.columns].order }); t.debug && q("Sorting on " + w.toString() + " and dir " + h + " time", l) } } function M(a, b) { a[0].isUpdating && a.trigger("updateComplete"); h.isFunction(b) && b(a[0]) } function I(a, b, c) { var g = a[0].config.sortList; !1 !== b && !a[0].isProcessing && g.length ? a.trigger("sorton", [g, function () { M(a, c) }, !0]) : (M(a, c), f.applyWidget(a[0], !1)) } function N(a) { var b = a.config, c = b.$table; c.unbind("sortReset update updateRows updateCell updateAll addRows updateComplete sorton appendCache updateCache applyWidgetId applyWidgets refreshWidgets destroy mouseup mouseleave ".split(" ").join(b.namespace + " ")).bind("sortReset" + b.namespace, function (g, e) { g.stopPropagation(); b.sortList = []; G(a); J(a); z(a); h.isFunction(e) && e(a) }).bind("updateAll" + b.namespace, function (g, e, c) { g.stopPropagation(); a.isUpdating = !0; f.refreshWidgets(a, !0, !0); f.restoreHeaders(a); E(a); f.bindEvents(a, b.$headers, !0); N(a); F(a, e, c) }).bind("update" + b.namespace + " updateRows" + b.namespace, function (b, e, c) { b.stopPropagation(); a.isUpdating = !0; C(a); F(a, e, c) }).bind("updateCell" + b.namespace, function (g, e, l, f) { g.stopPropagation(); a.isUpdating = !0; c.find(b.selectorRemove).remove(); var d, p, m; p = c.find("tbody"); m = h(e); g = p.index(h.fn.closest ? m.closest("tbody") : m.parents("tbody").filter(":first")); d = h.fn.closest ? m.closest("tr") : m.parents("tr").filter(":first"); e = m[0]; p.length && 0 <= g && (p = p.eq(g).find("tr").index(d), m = m.index(), b.cache[g].normalized[p][b.columns].$row = d, d = "undefined" === typeof b.extractors[m].id ? r(a, e, m) : b.extractors[m].format(r(a, e, m), a, e, m), e = "no-parser" === b.parsers[m].id ? "" : b.parsers[m].format(d, a, e, m), b.cache[g].normalized[p][m] = b.ignoreCase && "string" === typeof e ? e.toLowerCase() : e, "numeric" === (b.parsers[m].type || "").toLowerCase() && (b.cache[g].colMax[m] = Math.max(Math.abs(e) || 0, b.cache[g].colMax[m] || 0)), I(c, l, f)) }).bind("addRows" + b.namespace, function (g, e, l, f) { g.stopPropagation(); a.isUpdating = !0; if (n(b.cache)) C(a), F(a, l, f); else { e = h(e).attr("role", "row"); var d, p, m, q, u, s = e.filter("tr").length, t = c.find("tbody").index(e.parents("tbody").filter(":first")); b.parsers && b.parsers.length || v(a); for (g = 0; g < s; g++) { p = e[g].cells.length; u = []; q = { child: [], $row: e.eq(g), order: b.cache[t].normalized.length }; for (d = 0; d < p; d++)m = "undefined" === typeof b.extractors[d].id ? r(a, e[g].cells[d], d) : b.extractors[d].format(r(a, e[g].cells[d], d), a, e[g].cells[d], d), m = "no-parser" === b.parsers[d].id ? "" : b.parsers[d].format(m, a, e[g].cells[d], d), u[d] = b.ignoreCase && "string" === typeof m ? m.toLowerCase() : m, "numeric" === (b.parsers[d].type || "").toLowerCase() && (b.cache[t].colMax[d] = Math.max(Math.abs(u[d]) || 0, b.cache[t].colMax[d] || 0)); u.push(q); b.cache[t].normalized.push(u) } I(c, l, f) } }).bind("updateComplete" + b.namespace, function () { a.isUpdating = !1 }).bind("sorton" + b.namespace, function (b, e, d, x) { var k = a.config; b.stopPropagation(); c.trigger("sortStart", this); P(a, e); G(a); k.delayInit && n(k.cache) && w(a); c.trigger("sortBegin", this); J(a); z(a, x); c.trigger("sortEnd", this); f.applyWidget(a); h.isFunction(d) && d(a) }).bind("appendCache" + b.namespace, function (b, e, c) { b.stopPropagation(); z(a, c); h.isFunction(e) && e(a) }).bind("updateCache" + b.namespace, function (c, e) { b.parsers && b.parsers.length || v(a); w(a); h.isFunction(e) && e(a) }).bind("applyWidgetId" + b.namespace, function (c, e) { c.stopPropagation(); f.getWidgetById(e).format(a, b, b.widgetOptions) }).bind("applyWidgets" + b.namespace, function (b, e) { b.stopPropagation(); f.applyWidget(a, e) }).bind("refreshWidgets" + b.namespace, function (b, e, c) { b.stopPropagation(); f.refreshWidgets(a, e, c) }).bind("destroy" + b.namespace, function (b, e, c) { b.stopPropagation(); f.destroy(a, e, c) }).bind("resetToLoadState" + b.namespace, function () { f.refreshWidgets(a, !0, !0); b = h.extend(!0, f.defaults, b.originalSettings); a.hasInitialized = !1; f.setup(a, b) }) } var f = this; f.version = "2.17.7"; f.parsers = []; f.widgets = []; f.defaults = { theme: "default", widthFixed: !1, showProcessing: !1, headerTemplate: "{content}", onRenderTemplate: null, onRenderHeader: null, cancelSelection: !0, tabIndex: !0, dateFormat: "mmddyyyy", sortMultiSortKey: "shiftKey", sortResetKey: "ctrlKey", usNumberFormat: !0, delayInit: !1, serverSideSorting: !1, headers: {}, ignoreCase: !0, sortForce: null, sortList: [], sortAppend: null, sortStable: !1, sortInitialOrder: "asc", sortLocaleCompare: !1, sortReset: !1, sortRestart: !1, emptyTo: "bottom", stringTo: "max", textExtraction: "basic", textAttribute: "data-text", textSorter: null, numberSorter: null, widgets: [], widgetOptions: { zebra: ["even", "odd"] }, initWidgets: !0, initialized: null, tableClass: "", cssAsc: "", cssDesc: "", cssNone: "", cssHeader: "", cssHeaderRow: "", cssProcessing: "", cssChildRow: "tablesorter-childRow", cssIcon: "tablesorter-icon", cssInfoBlock: "tablesorter-infoOnly", selectorHeaders: "> thead th, > thead td", selectorSort: "th, td", selectorRemove: ".remove-me", debug: !1, headerList: [], empties: {}, strings: {}, parsers: [] }; f.css = { table: "tablesorter", cssHasChild: "tablesorter-hasChildRow", childRow: "tablesorter-childRow", header: "tablesorter-header", headerRow: "tablesorter-headerRow", headerIn: "tablesorter-header-inner", icon: "tablesorter-icon", info: "tablesorter-infoOnly", processing: "tablesorter-processing", sortAsc: "tablesorter-headerAsc", sortDesc: "tablesorter-headerDesc", sortNone: "tablesorter-headerUnSorted" }; f.language = { sortAsc: "Ascending sort applied, ", sortDesc: "Descending sort applied, ", sortNone: "No sort applied, ", nextAsc: "activate to apply an ascending sort", nextDesc: "activate to apply a descending sort", nextNone: "activate to remove the sort" }; f.log = d; f.benchmark = q; f.construct = function (a) { return this.each(function () { var b = h.extend(!0, {}, f.defaults, a); b.originalSettings = a; !this.hasInitialized && f.buildTable && "TABLE" !== this.tagName ? f.buildTable(this, b) : f.setup(this, b) }) }; f.setup = function (a, b) { if (!a || !a.tHead || 0 === a.tBodies.length || !0 === a.hasInitialized) return b.debug ? d("ERROR: stopping initialization! No table, thead, tbody or tablesorter has already been initialized") : ""; var c = "", g = h(a), e = h.metadata; a.hasInitialized = !1; a.isProcessing = !0; a.config = b; h.data(a, "tablesorter", b); b.debug && h.data(a, "startoveralltimer", new Date); b.supportsDataObject = function (a) { a[0] = parseInt(a[0], 10); return 1 < a[0] || 1 === a[0] && 4 <= parseInt(a[1], 10) }(h.fn.jquery.split(".")); b.string = { max: 1, min: -1, emptyMin: 1, emptyMax: -1, zero: 0, none: 0, "null": 0, top: !0, bottom: !1 }; /tablesorter\-/.test(g.attr("class")) || (c = "" !== b.theme ? " tablesorter-" + b.theme : ""); b.table = a; b.$table = g.addClass(f.css.table + " " + b.tableClass + c).attr("role", "grid"); b.$headers = g.find(b.selectorHeaders); b.namespace = b.namespace ? "." + b.namespace.replace(/\W/g, "") : ".tablesorter" + Math.random().toString(16).slice(2); b.$table.children().children("tr").attr("role", "row"); b.$tbodies = g.children("tbody:not(." + b.cssInfoBlock + ")").attr({ "aria-live": "polite", "aria-relevant": "all" }); b.$table.find("caption").length && b.$table.attr("aria-labelledby", "theCaption"); b.widgetInit = {}; b.textExtraction = b.$table.attr("data-text-extraction") || b.textExtraction || "basic"; E(a); O(a); v(a); b.totalRows = 0; b.delayInit || w(a); f.bindEvents(a, b.$headers, !0); N(a); b.supportsDataObject && "undefined" !== typeof g.data().sortlist ? b.sortList = g.data().sortlist : e && g.metadata() && g.metadata().sortlist && (b.sortList = g.metadata().sortlist); f.applyWidget(a, !0); 0 < b.sortList.length ? g.trigger("sorton", [b.sortList, {}, !b.initWidgets, !0]) : (G(a), b.initWidgets && f.applyWidget(a, !1)); b.showProcessing && g.unbind("sortBegin" + b.namespace + " sortEnd" + b.namespace).bind("sortBegin" + b.namespace + " sortEnd" + b.namespace, function (c) { clearTimeout(b.processTimer); f.isProcessing(a); "sortBegin" === c.type && (b.processTimer = setTimeout(function () { f.isProcessing(a, !0) }, 500)) }); a.hasInitialized = !0; a.isProcessing = !1; b.debug && f.benchmark("Overall initialization time", h.data(a, "startoveralltimer")); g.trigger("tablesorter-initialized", a); "function" === typeof b.initialized && b.initialized(a) }; f.getColumnData = function (a, b, c, g) { if ("undefined" !== typeof b && null !== b) { a = h(a)[0]; var e, d = a.config; if (b[c]) return g ? b[c] : b[d.$headers.index(d.$headers.filter('[data-column="' + c + '"]:last'))]; for (e in b) if ("string" === typeof e && (a = g ? d.$headers.eq(c).filter(e) : d.$headers.filter('[data-column="' + c + '"]:last').filter(e), a.length)) return b[e] } }; f.computeColumnIndex = function (a) { var b = [], c = 0, g, e, d, f, k, p, m, n, q, s; for (g = 0; g < a.length; g++)for (k = a[g].cells, e = 0; e < k.length; e++) { d = k[e]; f = h(d); p = d.parentNode.rowIndex; f.index(); m = d.rowSpan || 1; n = d.colSpan || 1; "undefined" === typeof b[p] && (b[p] = []); for (d = 0; d < b[p].length + 1; d++)if ("undefined" === typeof b[p][d]) { q = d; break } c = Math.max(q, c); f.attr({ "data-column": q }); for (d = p; d < p + m; d++)for ("undefined" === typeof b[d] && (b[d] = []), s = b[d], f = q; f < q + n; f++)s[f] = "x" } return c + 1 }; f.isProcessing = function (a, b, c) { a = h(a); var g = a[0].config, e = c || a.find("." + f.css.header); b ? ("undefined" !== typeof c && 0 < g.sortList.length && (e = e.filter(function () { return this.sortDisabled ? !1 : 0 <= f.isValueInArray(parseFloat(h(this).attr("data-column")), g.sortList) })), a.add(e).addClass(f.css.processing + " " + g.cssProcessing)) : a.add(e).removeClass(f.css.processing + " " + g.cssProcessing) }; f.processTbody = function (a, b, c) { a = h(a)[0]; if (c) return a.isProcessing = !0, b.before('<span class="tablesorter-savemyplace"/>'), c = h.fn.detach ? b.detach() : b.remove(); c = h(a).find("span.tablesorter-savemyplace"); b.insertAfter(c); c.remove(); a.isProcessing = !1 }; f.clearTableBody = function (a) { h(a)[0].config.$tbodies.children().detach() }; f.bindEvents = function (a, b, c) { a = h(a)[0]; var g, e = a.config; !0 !== c && (e.$extraHeaders = e.$extraHeaders ? e.$extraHeaders.add(b) : b); b.find(e.selectorSort).add(b.filter(e.selectorSort)).unbind(["mousedown", "mouseup", "sort", "keyup", ""].join(e.namespace + " ")).bind(["mousedown", "mouseup", "sort", "keyup", ""].join(e.namespace + " "), function (c, d) { var f; f = c.type; if (!(1 !== (c.which || c.button) && !/sort|keyup/.test(f) || "keyup" === f && 13 !== c.which || "mouseup" === f && !0 !== d && 250 < (new Date).getTime() - g)) { if ("mousedown" === f) return g = (new Date).getTime(), /(input|select|button|textarea)/i.test(c.target.tagName) ? "" : !e.cancelSelection; e.delayInit && n(e.cache) && w(a); f = h.fn.closest ? h(this).closest("th, td")[0] : /TH|TD/.test(this.tagName) ? this : h(this).parents("th, td")[0]; f = e.$headers[b.index(f)]; f.sortDisabled || L(a, f, c) } }); e.cancelSelection && b.attr("unselectable", "on").bind("selectstart", !1).css({ "user-select": "none", MozUserSelect: "none" }) }; f.restoreHeaders = function (a) { var b = h(a)[0].config; b.$table.find(b.selectorHeaders).each(function (a) { h(this).find("." + f.css.headerIn).length && h(this).html(b.headerContent[a]) }) }; f.destroy = function (a, b, c) { a = h(a)[0]; if (a.hasInitialized) { f.refreshWidgets(a, !0, !0); var g = h(a), e = a.config, d = g.find("thead:first"), q = d.find("tr." + f.css.headerRow).removeClass(f.css.headerRow + " " + e.cssHeaderRow), k = g.find("tfoot:first > tr").children("th, td"); !1 === b && 0 <= h.inArray("uitheme", e.widgets) && (g.trigger("applyWidgetId", ["uitheme"]), g.trigger("applyWidgetId", ["zebra"])); d.find("tr").not(q).remove(); g.removeData("tablesorter").unbind("sortReset update updateAll updateRows updateCell addRows updateComplete sorton appendCache updateCache applyWidgetId applyWidgets refreshWidgets destroy mouseup mouseleave keypress sortBegin sortEnd resetToLoadState ".split(" ").join(e.namespace + " ")); e.$headers.add(k).removeClass([f.css.header, e.cssHeader, e.cssAsc, e.cssDesc, f.css.sortAsc, f.css.sortDesc, f.css.sortNone].join(" ")).removeAttr("data-column").removeAttr("aria-label").attr("aria-disabled", "true"); q.find(e.selectorSort).unbind(["mousedown", "mouseup", "keypress", ""].join(e.namespace + " ")); f.restoreHeaders(a); g.toggleClass(f.css.table + " " + e.tableClass + " tablesorter-" + e.theme, !1 === b); a.hasInitialized = !1; delete a.config.cache; "function" === typeof c && c(a) } }; f.regex = { chunk: /(^([+\-]?(?:0|[1-9]\d*)(?:\.\d*)?(?:[eE][+\-]?\d+)?)?$|^0x[0-9a-f]+$|\d+)/gi, chunks: /(^\\0|\\0$)/, hex: /^0x[0-9a-f]+$/i }; f.sortNatural = function (a, b) { if (a === b) return 0; var c, g, e, d, h, k; g = f.regex; if (g.hex.test(b)) { c = parseInt(a.match(g.hex), 16); e = parseInt(b.match(g.hex), 16); if (c < e) return -1; if (c > e) return 1 } c = a.replace(g.chunk, "\\0$1\\0").replace(g.chunks, "").split("\\0"); g = b.replace(g.chunk, "\\0$1\\0").replace(g.chunks, "").split("\\0"); k = Math.max(c.length, g.length); for (h = 0; h < k; h++) { e = isNaN(c[h]) ? c[h] || 0 : parseFloat(c[h]) || 0; d = isNaN(g[h]) ? g[h] || 0 : parseFloat(g[h]) || 0; if (isNaN(e) !== isNaN(d)) return isNaN(e) ? 1 : -1; typeof e !== typeof d && (e += "", d += ""); if (e < d) return -1; if (e > d) return 1 } return 0 }; f.sortNaturalAsc = function (a, b, c, g, e) { if (a === b) return 0; c = e.string[e.empties[c] || e.emptyTo]; return "" === a && 0 !== c ? "boolean" === typeof c ? c ? -1 : 1 : -c || -1 : "" === b && 0 !== c ? "boolean" === typeof c ? c ? 1 : -1 : c || 1 : f.sortNatural(a, b) }; f.sortNaturalDesc = function (a, b, c, g, e) { if (a === b) return 0; c = e.string[e.empties[c] || e.emptyTo]; return "" === a && 0 !== c ? "boolean" === typeof c ? c ? -1 : 1 : c || 1 : "" === b && 0 !== c ? "boolean" === typeof c ? c ? 1 : -1 : -c || -1 : f.sortNatural(b, a) }; f.sortText = function (a, b) { return a > b ? 1 : a < b ? -1 : 0 }; f.getTextValue = function (a, b, c) { if (c) { var g = a ? a.length : 0, e = c + b; for (c = 0; c < g; c++)e += a.charCodeAt(c); return b * e } return 0 }; f.sortNumericAsc = function (a, b, c, g, e, d) { if (a === b) return 0; d = d.config; e = d.string[d.empties[e] || d.emptyTo]; if ("" === a && 0 !== e) return "boolean" === typeof e ? e ? -1 : 1 : -e || -1; if ("" === b && 0 !== e) return "boolean" === typeof e ? e ? 1 : -1 : e || 1; isNaN(a) && (a = f.getTextValue(a, c, g)); isNaN(b) && (b = f.getTextValue(b, c, g)); return a - b }; f.sortNumericDesc = function (a, b, c, g, e, d) { if (a === b) return 0; d = d.config; e = d.string[d.empties[e] || d.emptyTo]; if ("" === a && 0 !== e) return "boolean" === typeof e ? e ? -1 : 1 : e || 1; if ("" === b && 0 !== e) return "boolean" === typeof e ? e ? 1 : -1 : -e || -1; isNaN(a) && (a = f.getTextValue(a, c, g)); isNaN(b) && (b = f.getTextValue(b, c, g)); return b - a }; f.sortNumeric = function (a, b) { return a - b }; f.characterEquivalents = { a: "\u00e1\u00e0\u00e2\u00e3\u00e4\u0105\u00e5", A: "\u00c1\u00c0\u00c2\u00c3\u00c4\u0104\u00c5", c: "\u00e7\u0107\u010d", C: "\u00c7\u0106\u010c", e: "\u00e9\u00e8\u00ea\u00eb\u011b\u0119", E: "\u00c9\u00c8\u00ca\u00cb\u011a\u0118", i: "\u00ed\u00ec\u0130\u00ee\u00ef\u0131", I: "\u00cd\u00cc\u0130\u00ce\u00cf", o: "\u00f3\u00f2\u00f4\u00f5\u00f6", O: "\u00d3\u00d2\u00d4\u00d5\u00d6", ss: "\u00df", SS: "\u1e9e", u: "\u00fa\u00f9\u00fb\u00fc\u016f", U: "\u00da\u00d9\u00db\u00dc\u016e" }; f.replaceAccents = function (a) { var b, c = "[", d = f.characterEquivalents; if (!f.characterRegex) { f.characterRegexArray = {}; for (b in d) "string" === typeof b && (c += d[b], f.characterRegexArray[b] = new RegExp("[" + d[b] + "]", "g")); f.characterRegex = new RegExp(c + "]") } if (f.characterRegex.test(a)) for (b in d) "string" === typeof b && (a = a.replace(f.characterRegexArray[b], b)); return a }; f.isValueInArray = function (a, b) { var c, d = b.length; for (c = 0; c < d; c++)if (b[c][0] === a) return c; return -1 }; f.addParser = function (a) { var b, c = f.parsers.length, d = !0; for (b = 0; b < c; b++)f.parsers[b].id.toLowerCase() === a.id.toLowerCase() && (d = !1); d && f.parsers.push(a) }; f.getParserById = function (a) { if ("false" == a) return !1; var b, c = f.parsers.length; for (b = 0; b < c; b++)if (f.parsers[b].id.toLowerCase() === a.toString().toLowerCase()) return f.parsers[b]; return !1 }; f.addWidget = function (a) { f.widgets.push(a) }; f.hasWidget = function (a, b) { a = h(a); return a.length && a[0].config && a[0].config.widgetInit[b] || !1 }; f.getWidgetById = function (a) { var b, c, d = f.widgets.length; for (b = 0; b < d; b++)if ((c = f.widgets[b]) && c.hasOwnProperty("id") && c.id.toLowerCase() === a.toLowerCase()) return c }; f.applyWidget = function (a, b) { a = h(a)[0]; var c = a.config, d = c.widgetOptions, e = [], l, n, k; !1 !== b && a.hasInitialized && (a.isApplyingWidgets || a.isUpdating) || (c.debug && (l = new Date), c.widgets.length && (a.isApplyingWidgets = !0, c.widgets = h.grep(c.widgets, function (a, b) { return h.inArray(a, c.widgets) === b }), h.each(c.widgets || [], function (a, b) { (k = f.getWidgetById(b)) && k.id && (k.priority || (k.priority = 10), e[a] = k) }), e.sort(function (a, b) { return a.priority < b.priority ? -1 : a.priority === b.priority ? 0 : 1 }), h.each(e, function (e, f) { if (f) { if (b || !c.widgetInit[f.id]) c.widgetInit[f.id] = !0, f.hasOwnProperty("options") && (d = a.config.widgetOptions = h.extend(!0, {}, f.options, d)), f.hasOwnProperty("init") && f.init(a, f, c, d); !b && f.hasOwnProperty("format") && f.format(a, c, d, !1) } })), setTimeout(function () { a.isApplyingWidgets = !1 }, 0), c.debug && (n = c.widgets.length, q("Completed " + (!0 === b ? "initializing " : "applying ") + n + " widget" + (1 !== n ? "s" : ""), l))) }; f.refreshWidgets = function (a, b, c) { a = h(a)[0]; var g, e = a.config, l = e.widgets, q = f.widgets, k = q.length; for (g = 0; g < k; g++)q[g] && q[g].id && (b || 0 > h.inArray(q[g].id, l)) && (e.debug && d('Refeshing widgets: Removing "' + q[g].id + '"'), q[g].hasOwnProperty("remove") && e.widgetInit[q[g].id] && (q[g].remove(a, e, e.widgetOptions), e.widgetInit[q[g].id] = !1)); !0 !== c && f.applyWidget(a, b) }; f.getData = function (a, b, c) { var d = ""; a = h(a); var e, f; if (!a.length) return ""; e = h.metadata ? a.metadata() : !1; f = " " + (a.attr("class") || ""); "undefined" !== typeof a.data(c) || "undefined" !== typeof a.data(c.toLowerCase()) ? d += a.data(c) || a.data(c.toLowerCase()) : e && "undefined" !== typeof e[c] ? d += e[c] : b && "undefined" !== typeof b[c] ? d += b[c] : " " !== f && f.match(" " + c + "-") && (d = f.match(new RegExp("\\s" + c + "-([\\w-]+)"))[1] || ""); return h.trim(d) }; f.formatFloat = function (a, b) { if ("string" !== typeof a || "" === a) return a; var c; a = (b && b.config ? !1 !== b.config.usNumberFormat : "undefined" !== typeof b ? b : 1) ? a.replace(/,/g, "") : a.replace(/[\s|\.]/g, "").replace(/,/g, "."); /^\s*\([.\d]+\)/.test(a) && (a = a.replace(/^\s*\(([.\d]+)\)/, "-$1")); c = parseFloat(a); return isNaN(c) ? h.trim(a) : c }; f.isDigit = function (a) { return isNaN(a) ? /^[\-+(]?\d+[)]?$/.test(a.toString().replace(/[,.'"\s]/g, "")) : !0 } } }); var r = h.tablesorter; h.fn.extend({ tablesorter: r.construct }); r.addParser({ id: "no-parser", is: function () { return !1 }, format: function () { return "" }, type: "text" }); r.addParser({ id: "text", is: function () { return !0 }, format: function (d, q) { var n = q.config; d && (d = h.trim(n.ignoreCase ? d.toLocaleLowerCase() : d), d = n.sortLocaleCompare ? r.replaceAccents(d) : d); return d }, type: "text" }); r.addParser({ id: "digit", is: function (d) { return r.isDigit(d) }, format: function (d, q) { var n = r.formatFloat((d || "").replace(/[^\w,. \-()]/g, ""), q); return d && "number" === typeof n ? n : d ? h.trim(d && q.config.ignoreCase ? d.toLocaleLowerCase() : d) : d }, type: "numeric" }); r.addParser({ id: "currency", is: function (d) { return /^\(?\d+[\u00a3$\u20ac\u00a4\u00a5\u00a2?.]|[\u00a3$\u20ac\u00a4\u00a5\u00a2?.]\d+\)?$/.test((d || "").replace(/[+\-,. ]/g, "")) }, format: function (d, q) { var n = r.formatFloat((d || "").replace(/[^\w,. \-()]/g, ""), q); return d && "number" === typeof n ? n : d ? h.trim(d && q.config.ignoreCase ? d.toLocaleLowerCase() : d) : d }, type: "numeric" }); r.addParser({ id: "ipAddress", is: function (d) { return /^\d{1,3}[\.]\d{1,3}[\.]\d{1,3}[\.]\d{1,3}$/.test(d) }, format: function (d, h) { var n, y = d ? d.split(".") : "", v = "", w = y.length; for (n = 0; n < w; n++)v += ("00" + y[n]).slice(-3); return d ? r.formatFloat(v, h) : d }, type: "numeric" }); r.addParser({ id: "url", is: function (d) { return /^(https?|ftp|file):\/\//.test(d) }, format: function (d) { return d ? h.trim(d.replace(/(https?|ftp|file):\/\//, "")) : d }, type: "text" }); r.addParser({ id: "isoDate", is: function (d) { return /^\d{4}[\/\-]\d{1,2}[\/\-]\d{1,2}/.test(d) }, format: function (d, h) { return d ? r.formatFloat("" !== d ? (new Date(d.replace(/-/g, "/"))).getTime() || d : "", h) : d }, type: "numeric" }); r.addParser({ id: "percent", is: function (d) { return /(\d\s*?%|%\s*?\d)/.test(d) && 15 > d.length }, format: function (d, h) { return d ? r.formatFloat(d.replace(/%/g, ""), h) : d }, type: "numeric" }); r.addParser({ id: "usLongDate", is: function (d) { return /^[A-Z]{3,10}\.?\s+\d{1,2},?\s+(\d{4})(\s+\d{1,2}:\d{2}(:\d{2})?(\s+[AP]M)?)?$/i.test(d) || /^\d{1,2}\s+[A-Z]{3,10}\s+\d{4}/i.test(d) }, format: function (d, h) { return d ? r.formatFloat((new Date(d.replace(/(\S)([AP]M)$/i, "$1 $2"))).getTime() || d, h) : d }, type: "numeric" }); r.addParser({ id: "shortDate", is: function (d) { return /(^\d{1,2}[\/\s]\d{1,2}[\/\s]\d{4})|(^\d{4}[\/\s]\d{1,2}[\/\s]\d{1,2})/.test((d || "").replace(/\s+/g, " ").replace(/[\-.,]/g, "/")) }, format: function (d, h, n, y) { if (d) { n = h.config; var v = n.$headers.filter("[data-column=" + y + "]:last"); y = v.length && v[0].dateFormat || r.getData(v, r.getColumnData(h, n.headers, y), "dateFormat") || n.dateFormat; d = d.replace(/\s+/g, " ").replace(/[\-.,]/g, "/"); "mmddyyyy" === y ? d = d.replace(/(\d{1,2})[\/\s](\d{1,2})[\/\s](\d{4})/, "$3/$1/$2") : "ddmmyyyy" === y ? d = d.replace(/(\d{1,2})[\/\s](\d{1,2})[\/\s](\d{4})/, "$3/$2/$1") : "yyyymmdd" === y && (d = d.replace(/(\d{4})[\/\s](\d{1,2})[\/\s](\d{1,2})/, "$1/$2/$3")) } return d ? r.formatFloat((new Date(d)).getTime() || d, h) : d }, type: "numeric" }); r.addParser({ id: "time", is: function (d) { return /^(([0-2]?\d:[0-5]\d)|([0-1]?\d:[0-5]\d\s?([AP]M)))$/i.test(d) }, format: function (d, h) { return d ? r.formatFloat((new Date("2000/01/01 " + d.replace(/(\S)([AP]M)$/i, "$1 $2"))).getTime() || d, h) : d }, type: "numeric" }); r.addParser({ id: "metadata", is: function () { return !1 }, format: function (d, q, n) { d = q.config; d = d.parserMetadataName ? d.parserMetadataName : "sortValue"; return h(n).metadata()[d] }, type: "numeric" }); r.addWidget({ id: "zebra", priority: 90, format: function (d, q, n) { var y, v, w, z, D, E, F = new RegExp(q.cssChildRow, "i"), C = q.$tbodies; q.debug && (D = new Date); for (d = 0; d < C.length; d++)y = C.eq(d), E = y.children("tr").length, 1 < E && (w = 0, y = y.children("tr:visible").not(q.selectorRemove), y.each(function () { v = h(this); F.test(this.className) || w++; z = 0 === w % 2; v.removeClass(n.zebra[z ? 1 : 0]).addClass(n.zebra[z ? 0 : 1]) })); q.debug && r.benchmark("Applying Zebra widget", D) }, remove: function (d, q, n) { var r; q = q.$tbodies; var v = (n.zebra || ["even", "odd"]).join(" "); for (n = 0; n < q.length; n++)r = h.tablesorter.processTbody(d, q.eq(n), !0), r.children().removeClass(v), h.tablesorter.processTbody(d, r, !1) } }) }(jQuery);
18
26
  // d3.v3.min.js
19
- d3=function(){function n(n){return null!=n&&!isNaN(n)}function t(n){return n.length}function e(n){for(var t=1;n*t%1;)t*=10;return t}function r(n,t){try{for(var e in t)Object.defineProperty(n.prototype,e,{value:t[e],enumerable:!1})}catch(r){n.prototype=t}}function u(){}function i(){}function o(n,t,e){return function(){var r=e.apply(t,arguments);return r===t?n:r}}function a(n,t){if(t in n)return t;t=t.charAt(0).toUpperCase()+t.substring(1);for(var e=0,r=Co.length;r>e;++e){var u=Co[e]+t;if(u in n)return u}}function c(){}function l(){}function s(n){function t(){for(var t,r=e,u=-1,i=r.length;++u<i;)(t=r[u].on)&&t.apply(this,arguments);return n}var e=[],r=new u;return t.on=function(t,u){var i,o=r.get(t);return arguments.length<2?o&&o.on:(o&&(o.on=null,e=e.slice(0,i=e.indexOf(o)).concat(e.slice(i+1)),r.remove(t)),u&&e.push(r.set(t,{on:u})),n)},t}function f(){vo.event.preventDefault()}function h(){for(var n,t=vo.event;n=t.sourceEvent;)t=n;return t}function g(n){for(var t=new l,e=0,r=arguments.length;++e<r;)t[arguments[e]]=s(t);return t.of=function(e,r){return function(u){try{var i=u.sourceEvent=vo.event;u.target=n,vo.event=u,t[u.type].apply(e,r)}finally{vo.event=i}}},t}function p(n){return jo(n,Oo),n}function d(n){return"function"==typeof n?n:function(){return Lo(n,this)}}function v(n){return"function"==typeof n?n:function(){return Ho(n,this)}}function m(n,t){function e(){this.removeAttribute(n)}function r(){this.removeAttributeNS(n.space,n.local)}function u(){this.setAttribute(n,t)}function i(){this.setAttributeNS(n.space,n.local,t)}function o(){var e=t.apply(this,arguments);null==e?this.removeAttribute(n):this.setAttribute(n,e)}function a(){var e=t.apply(this,arguments);null==e?this.removeAttributeNS(n.space,n.local):this.setAttributeNS(n.space,n.local,e)}return n=vo.ns.qualify(n),null==t?n.local?r:e:"function"==typeof t?n.local?a:o:n.local?i:u}function y(n){return n.trim().replace(/\s+/g," ")}function M(n){return new RegExp("(?:^|\\s+)"+vo.requote(n)+"(?:\\s+|$)","g")}function x(n,t){function e(){for(var e=-1;++e<u;)n[e](this,t)}function r(){for(var e=-1,r=t.apply(this,arguments);++e<u;)n[e](this,r)}n=n.trim().split(/\s+/).map(b);var u=n.length;return"function"==typeof t?r:e}function b(n){var t=M(n);return function(e,r){if(u=e.classList)return r?u.add(n):u.remove(n);var u=e.getAttribute("class")||"";r?(t.lastIndex=0,t.test(u)||e.setAttribute("class",y(u+" "+n))):e.setAttribute("class",y(u.replace(t," ")))}}function _(n,t,e){function r(){this.style.removeProperty(n)}function u(){this.style.setProperty(n,t,e)}function i(){var r=t.apply(this,arguments);null==r?this.style.removeProperty(n):this.style.setProperty(n,r,e)}return null==t?r:"function"==typeof t?i:u}function w(n,t){function e(){delete this[n]}function r(){this[n]=t}function u(){var e=t.apply(this,arguments);null==e?delete this[n]:this[n]=e}return null==t?e:"function"==typeof t?u:r}function S(n){return"function"==typeof n?n:(n=vo.ns.qualify(n)).local?function(){return Mo.createElementNS(n.space,n.local)}:function(){return Mo.createElementNS(this.namespaceURI,n)}}function E(n){return{__data__:n}}function k(n){return function(){return Po(this,n)}}function A(n){return arguments.length||(n=vo.ascending),function(t,e){return t&&e?n(t.__data__,e.__data__):!t-!e}}function N(n,t){for(var e=0,r=n.length;r>e;e++)for(var u,i=n[e],o=0,a=i.length;a>o;o++)(u=i[o])&&t(u,o,e);return n}function q(n){return jo(n,Yo),n}function T(n){var t,e;return function(r,u,i){var o,a=n[i].update,c=a.length;for(i!=e&&(e=i,t=0),u>=t&&(t=u+1);!(o=a[t])&&++t<c;);return o}}function z(n,t,e){function r(){var t=this[o];t&&(this.removeEventListener(n,t,t.$),delete this[o])}function u(){var u=l(t,yo(arguments));r.call(this),this.addEventListener(n,this[o]=u,u.$=e),u._=t}function i(){var t,e=new RegExp("^__on([^.]+)"+vo.requote(n)+"$");for(var r in this)if(t=r.match(e)){var u=this[r];this.removeEventListener(t[1],u,u.$),delete this[r]}}var o="__on"+n,a=n.indexOf("."),l=C;a>0&&(n=n.substring(0,a));var s=Uo.get(n);return s&&(n=s,l=D),a?t?u:r:t?c:i}function C(n,t){return function(e){var r=vo.event;vo.event=e,t[0]=this.__data__;try{n.apply(this,t)}finally{vo.event=r}}}function D(n,t){var e=C(n,t);return function(n){var t=this,r=n.relatedTarget;r&&(r===t||8&r.compareDocumentPosition(t))||e.call(t,n)}}function j(){var n=".dragsuppress-"+ ++Zo,t="touchmove"+n,e="selectstart"+n,r="dragstart"+n,u="click"+n,i=vo.select(bo).on(t,f).on(e,f).on(r,f),o=xo.style,a=o[Vo];return o[Vo]="none",function(t){function e(){i.on(u,null)}i.on(n,null),o[Vo]=a,t&&(i.on(u,function(){f(),e()},!0),setTimeout(e,0))}}function L(n,t){var e=n.ownerSVGElement||n;if(e.createSVGPoint){var r=e.createSVGPoint();if(0>Xo&&(bo.scrollX||bo.scrollY)){e=vo.select("body").append("svg").style({position:"absolute",top:0,left:0,margin:0,padding:0,border:"none"},"important");var u=e[0][0].getScreenCTM();Xo=!(u.f||u.e),e.remove()}return Xo?(r.x=t.pageX,r.y=t.pageY):(r.x=t.clientX,r.y=t.clientY),r=r.matrixTransform(n.getScreenCTM().inverse()),[r.x,r.y]}var i=n.getBoundingClientRect();return[t.clientX-i.left-n.clientLeft,t.clientY-i.top-n.clientTop]}function H(n){return n>0?1:0>n?-1:0}function F(n){return n>1?0:-1>n?Bo:Math.acos(n)}function P(n){return n>1?Bo/2:-1>n?-Bo/2:Math.asin(n)}function O(n){return(Math.exp(n)-Math.exp(-n))/2}function R(n){return(Math.exp(n)+Math.exp(-n))/2}function Y(n){return O(n)/R(n)}function I(n){return(n=Math.sin(n/2))*n}function U(){}function V(n,t,e){return new Z(n,t,e)}function Z(n,t,e){this.h=n,this.s=t,this.l=e}function X(n,t,e){function r(n){return n>360?n-=360:0>n&&(n+=360),60>n?i+(o-i)*n/60:180>n?o:240>n?i+(o-i)*(240-n)/60:i}function u(n){return Math.round(255*r(n))}var i,o;return n=isNaN(n)?0:(n%=360)<0?n+360:n,t=isNaN(t)?0:0>t?0:t>1?1:t,e=0>e?0:e>1?1:e,o=.5>=e?e*(1+t):e+t-e*t,i=2*e-o,it(u(n+120),u(n),u(n-120))}function B(n,t,e){return new $(n,t,e)}function $(n,t,e){this.h=n,this.c=t,this.l=e}function W(n,t,e){return isNaN(n)&&(n=0),isNaN(t)&&(t=0),J(e,Math.cos(n*=Jo)*t,Math.sin(n)*t)}function J(n,t,e){return new G(n,t,e)}function G(n,t,e){this.l=n,this.a=t,this.b=e}function K(n,t,e){var r=(n+16)/116,u=r+t/500,i=r-e/200;return u=nt(u)*aa,r=nt(r)*ca,i=nt(i)*la,it(et(3.2404542*u-1.5371385*r-.4985314*i),et(-.969266*u+1.8760108*r+.041556*i),et(.0556434*u-.2040259*r+1.0572252*i))}function Q(n,t,e){return n>0?B(Math.atan2(e,t)*Go,Math.sqrt(t*t+e*e),n):B(0/0,0/0,n)}function nt(n){return n>.206893034?n*n*n:(n-4/29)/7.787037}function tt(n){return n>.008856?Math.pow(n,1/3):7.787037*n+4/29}function et(n){return Math.round(255*(.00304>=n?12.92*n:1.055*Math.pow(n,1/2.4)-.055))}function rt(n){return it(n>>16,255&n>>8,255&n)}function ut(n){return rt(n)+""}function it(n,t,e){return new ot(n,t,e)}function ot(n,t,e){this.r=n,this.g=t,this.b=e}function at(n){return 16>n?"0"+Math.max(0,n).toString(16):Math.min(255,n).toString(16)}function ct(n,t,e){var r,u,i,o=0,a=0,c=0;if(r=/([a-z]+)\((.*)\)/i.exec(n))switch(u=r[2].split(","),r[1]){case"hsl":return e(parseFloat(u[0]),parseFloat(u[1])/100,parseFloat(u[2])/100);case"rgb":return t(ht(u[0]),ht(u[1]),ht(u[2]))}return(i=ha.get(n))?t(i.r,i.g,i.b):(null!=n&&"#"===n.charAt(0)&&(4===n.length?(o=n.charAt(1),o+=o,a=n.charAt(2),a+=a,c=n.charAt(3),c+=c):7===n.length&&(o=n.substring(1,3),a=n.substring(3,5),c=n.substring(5,7)),o=parseInt(o,16),a=parseInt(a,16),c=parseInt(c,16)),t(o,a,c))}function lt(n,t,e){var r,u,i=Math.min(n/=255,t/=255,e/=255),o=Math.max(n,t,e),a=o-i,c=(o+i)/2;return a?(u=.5>c?a/(o+i):a/(2-o-i),r=n==o?(t-e)/a+(e>t?6:0):t==o?(e-n)/a+2:(n-t)/a+4,r*=60):(r=0/0,u=c>0&&1>c?0:r),V(r,u,c)}function st(n,t,e){n=ft(n),t=ft(t),e=ft(e);var r=tt((.4124564*n+.3575761*t+.1804375*e)/aa),u=tt((.2126729*n+.7151522*t+.072175*e)/ca),i=tt((.0193339*n+.119192*t+.9503041*e)/la);return J(116*u-16,500*(r-u),200*(u-i))}function ft(n){return(n/=255)<=.04045?n/12.92:Math.pow((n+.055)/1.055,2.4)}function ht(n){var t=parseFloat(n);return"%"===n.charAt(n.length-1)?Math.round(2.55*t):t}function gt(n){return"function"==typeof n?n:function(){return n}}function pt(n){return n}function dt(n){return function(t,e,r){return 2===arguments.length&&"function"==typeof e&&(r=e,e=null),vt(t,e,n,r)}}function vt(n,t,e,r){function u(){var n,t=c.status;if(!t&&c.responseText||t>=200&&300>t||304===t){try{n=e.call(i,c)}catch(r){return o.error.call(i,r),void 0}o.load.call(i,n)}else o.error.call(i,c)}var i={},o=vo.dispatch("beforesend","progress","load","error"),a={},c=new XMLHttpRequest,l=null;return!bo.XDomainRequest||"withCredentials"in c||!/^(http(s)?:)?\/\//.test(n)||(c=new XDomainRequest),"onload"in c?c.onload=c.onerror=u:c.onreadystatechange=function(){c.readyState>3&&u()},c.onprogress=function(n){var t=vo.event;vo.event=n;try{o.progress.call(i,c)}finally{vo.event=t}},i.header=function(n,t){return n=(n+"").toLowerCase(),arguments.length<2?a[n]:(null==t?delete a[n]:a[n]=t+"",i)},i.mimeType=function(n){return arguments.length?(t=null==n?null:n+"",i):t},i.responseType=function(n){return arguments.length?(l=n,i):l},i.response=function(n){return e=n,i},["get","post"].forEach(function(n){i[n]=function(){return i.send.apply(i,[n].concat(yo(arguments)))}}),i.send=function(e,r,u){if(2===arguments.length&&"function"==typeof r&&(u=r,r=null),c.open(e,n,!0),null==t||"accept"in a||(a.accept=t+",*/*"),c.setRequestHeader)for(var s in a)c.setRequestHeader(s,a[s]);return null!=t&&c.overrideMimeType&&c.overrideMimeType(t),null!=l&&(c.responseType=l),null!=u&&i.on("error",u).on("load",function(n){u(null,n)}),o.beforesend.call(i,c),c.send(null==r?null:r),i},i.abort=function(){return c.abort(),i},vo.rebind(i,o,"on"),null==r?i:i.get(mt(r))}function mt(n){return 1===n.length?function(t,e){n(null==t?e:null)}:n}function yt(){var n=xt(),t=bt()-n;t>24?(isFinite(t)&&(clearTimeout(va),va=setTimeout(yt,t)),da=0):(da=1,ya(yt))}function Mt(n,t,e){var r=arguments.length;2>r&&(t=0),3>r&&(e=Date.now()),ma.callback=n,ma.time=e+t}function xt(){var n=Date.now();for(ma=ga;ma;)n>=ma.time&&(ma.flush=ma.callback(n-ma.time)),ma=ma.next;return n}function bt(){for(var n,t=ga,e=1/0;t;)t.flush?t=n?n.next=t.next:ga=t.next:(t.time<e&&(e=t.time),t=(n=t).next);return pa=n,e}function _t(n,t){var e=Math.pow(10,3*Math.abs(8-t));return{scale:t>8?function(n){return n/e}:function(n){return n*e},symbol:n}}function wt(n,t){return t-(n?Math.ceil(Math.log(n)/Math.LN10):1)}function St(n){return n+""}function Et(){}function kt(n,t,e){var r=e.s=n+t,u=r-n,i=r-u;e.t=n-i+(t-u)}function At(n,t){n&&Ta.hasOwnProperty(n.type)&&Ta[n.type](n,t)}function Nt(n,t,e){var r,u=-1,i=n.length-e;for(t.lineStart();++u<i;)r=n[u],t.point(r[0],r[1],r[2]);t.lineEnd()}function qt(n,t){var e=-1,r=n.length;for(t.polygonStart();++e<r;)Nt(n[e],t,1);t.polygonEnd()}function Tt(){function n(n,t){n*=Jo,t=t*Jo/2+Bo/4;var e=n-r,o=Math.cos(t),a=Math.sin(t),c=i*a,l=u*o+c*Math.cos(e),s=c*Math.sin(e);Ca.add(Math.atan2(s,l)),r=n,u=o,i=a}var t,e,r,u,i;Da.point=function(o,a){Da.point=n,r=(t=o)*Jo,u=Math.cos(a=(e=a)*Jo/2+Bo/4),i=Math.sin(a)},Da.lineEnd=function(){n(t,e)}}function zt(n){var t=n[0],e=n[1],r=Math.cos(e);return[r*Math.cos(t),r*Math.sin(t),Math.sin(e)]}function Ct(n,t){return n[0]*t[0]+n[1]*t[1]+n[2]*t[2]}function Dt(n,t){return[n[1]*t[2]-n[2]*t[1],n[2]*t[0]-n[0]*t[2],n[0]*t[1]-n[1]*t[0]]}function jt(n,t){n[0]+=t[0],n[1]+=t[1],n[2]+=t[2]}function Lt(n,t){return[n[0]*t,n[1]*t,n[2]*t]}function Ht(n){var t=Math.sqrt(n[0]*n[0]+n[1]*n[1]+n[2]*n[2]);n[0]/=t,n[1]/=t,n[2]/=t}function Ft(n){return[Math.atan2(n[1],n[0]),P(n[2])]}function Pt(n,t){return Math.abs(n[0]-t[0])<$o&&Math.abs(n[1]-t[1])<$o}function Ot(n,t){n*=Jo;var e=Math.cos(t*=Jo);Rt(e*Math.cos(n),e*Math.sin(n),Math.sin(t))}function Rt(n,t,e){++ja,Ha+=(n-Ha)/ja,Fa+=(t-Fa)/ja,Pa+=(e-Pa)/ja}function Yt(){function n(n,u){n*=Jo;var i=Math.cos(u*=Jo),o=i*Math.cos(n),a=i*Math.sin(n),c=Math.sin(u),l=Math.atan2(Math.sqrt((l=e*c-r*a)*l+(l=r*o-t*c)*l+(l=t*a-e*o)*l),t*o+e*a+r*c);La+=l,Oa+=l*(t+(t=o)),Ra+=l*(e+(e=a)),Ya+=l*(r+(r=c)),Rt(t,e,r)}var t,e,r;Za.point=function(u,i){u*=Jo;var o=Math.cos(i*=Jo);t=o*Math.cos(u),e=o*Math.sin(u),r=Math.sin(i),Za.point=n,Rt(t,e,r)}}function It(){Za.point=Ot}function Ut(){function n(n,t){n*=Jo;var e=Math.cos(t*=Jo),o=e*Math.cos(n),a=e*Math.sin(n),c=Math.sin(t),l=u*c-i*a,s=i*o-r*c,f=r*a-u*o,h=Math.sqrt(l*l+s*s+f*f),g=r*o+u*a+i*c,p=h&&-F(g)/h,d=Math.atan2(h,g);Ia+=p*l,Ua+=p*s,Va+=p*f,La+=d,Oa+=d*(r+(r=o)),Ra+=d*(u+(u=a)),Ya+=d*(i+(i=c)),Rt(r,u,i)}var t,e,r,u,i;Za.point=function(o,a){t=o,e=a,Za.point=n,o*=Jo;var c=Math.cos(a*=Jo);r=c*Math.cos(o),u=c*Math.sin(o),i=Math.sin(a),Rt(r,u,i)},Za.lineEnd=function(){n(t,e),Za.lineEnd=It,Za.point=Ot}}function Vt(){return!0}function Zt(n,t,e,r,u){var i=[],o=[];if(n.forEach(function(n){if(!((t=n.length-1)<=0)){var t,e=n[0],r=n[t];if(Pt(e,r)){u.lineStart();for(var a=0;t>a;++a)u.point((e=n[a])[0],e[1]);return u.lineEnd(),void 0}var c={point:e,points:n,other:null,visited:!1,entry:!0,subject:!0},l={point:e,points:[e],other:c,visited:!1,entry:!1,subject:!1};c.other=l,i.push(c),o.push(l),c={point:r,points:[r],other:null,visited:!1,entry:!1,subject:!0},l={point:r,points:[r],other:c,visited:!1,entry:!0,subject:!1},c.other=l,i.push(c),o.push(l)}}),o.sort(t),Xt(i),Xt(o),i.length){if(e)for(var a=1,c=!e(o[0].point),l=o.length;l>a;++a)o[a].entry=c=!c;for(var s,f,h,g=i[0];;){for(s=g;s.visited;)if((s=s.next)===g)return;f=s.points,u.lineStart();do{if(s.visited=s.other.visited=!0,s.entry){if(s.subject)for(var a=0;a<f.length;a++)u.point((h=f[a])[0],h[1]);else r(s.point,s.next.point,1,u);s=s.next}else{if(s.subject){f=s.prev.points;for(var a=f.length;--a>=0;)u.point((h=f[a])[0],h[1])}else r(s.point,s.prev.point,-1,u);s=s.prev}s=s.other,f=s.points}while(!s.visited);u.lineEnd()}}}function Xt(n){if(t=n.length){for(var t,e,r=0,u=n[0];++r<t;)u.next=e=n[r],e.prev=u,u=e;u.next=e=n[0],e.prev=u}}function Bt(n,t,e,r){return function(u){function i(t,e){n(t,e)&&u.point(t,e)}function o(n,t){d.point(n,t)}function a(){v.point=o,d.lineStart()}function c(){v.point=i,d.lineEnd()}function l(n,t){y.point(n,t),p.push([n,t])}function s(){y.lineStart(),p=[]}function f(){l(p[0][0],p[0][1]),y.lineEnd();var n,t=y.clean(),e=m.buffer(),r=e.length;if(p.pop(),g.push(p),p=null,r){if(1&t){n=e[0];var i,r=n.length-1,o=-1;for(u.lineStart();++o<r;)u.point((i=n[o])[0],i[1]);return u.lineEnd(),void 0}r>1&&2&t&&e.push(e.pop().concat(e.shift())),h.push(e.filter($t))}}var h,g,p,d=t(u),v={point:i,lineStart:a,lineEnd:c,polygonStart:function(){v.point=l,v.lineStart=s,v.lineEnd=f,h=[],g=[],u.polygonStart()},polygonEnd:function(){v.point=i,v.lineStart=a,v.lineEnd=c,h=vo.merge(h),h.length?Zt(h,Jt,null,e,u):r(g)&&(u.lineStart(),e(null,null,1,u),u.lineEnd()),u.polygonEnd(),h=g=null},sphere:function(){u.polygonStart(),u.lineStart(),e(null,null,1,u),u.lineEnd(),u.polygonEnd()}},m=Wt(),y=t(m);return v}}function $t(n){return n.length>1}function Wt(){var n,t=[];return{lineStart:function(){t.push(n=[])},point:function(t,e){n.push([t,e])},lineEnd:c,buffer:function(){var e=t;return t=[],n=null,e},rejoin:function(){t.length>1&&t.push(t.pop().concat(t.shift()))}}}function Jt(n,t){return((n=n.point)[0]<0?n[1]-Bo/2-$o:Bo/2-n[1])-((t=t.point)[0]<0?t[1]-Bo/2-$o:Bo/2-t[1])}function Gt(n,t){var e=n[0],r=n[1],u=[Math.sin(e),-Math.cos(e),0],i=0,o=!1,a=!1,c=0;Ca.reset();for(var l=0,s=t.length;s>l;++l){var f=t[l],h=f.length;if(h){for(var g=f[0],p=g[0],d=g[1]/2+Bo/4,v=Math.sin(d),m=Math.cos(d),y=1;;){y===h&&(y=0),n=f[y];var M=n[0],x=n[1]/2+Bo/4,b=Math.sin(x),_=Math.cos(x),w=M-p,S=Math.abs(w)>Bo,E=v*b;if(Ca.add(Math.atan2(E*Math.sin(w),m*_+E*Math.cos(w))),Math.abs(x)<$o&&(a=!0),i+=S?w+(w>=0?2:-2)*Bo:w,S^p>=e^M>=e){var k=Dt(zt(g),zt(n));Ht(k);var A=Dt(u,k);Ht(A);var N=(S^w>=0?-1:1)*P(A[2]);r>N&&(c+=S^w>=0?1:-1)}if(!y++)break;p=M,v=b,m=_,g=n}Math.abs(i)>$o&&(o=!0)}}return(!a&&!o&&0>Ca||-$o>i)^1&c}function Kt(n){var t,e=0/0,r=0/0,u=0/0;return{lineStart:function(){n.lineStart(),t=1},point:function(i,o){var a=i>0?Bo:-Bo,c=Math.abs(i-e);Math.abs(c-Bo)<$o?(n.point(e,r=(r+o)/2>0?Bo/2:-Bo/2),n.point(u,r),n.lineEnd(),n.lineStart(),n.point(a,r),n.point(i,r),t=0):u!==a&&c>=Bo&&(Math.abs(e-u)<$o&&(e-=u*$o),Math.abs(i-a)<$o&&(i-=a*$o),r=Qt(e,r,i,o),n.point(u,r),n.lineEnd(),n.lineStart(),n.point(a,r),t=0),n.point(e=i,r=o),u=a},lineEnd:function(){n.lineEnd(),e=r=0/0},clean:function(){return 2-t}}}function Qt(n,t,e,r){var u,i,o=Math.sin(n-e);return Math.abs(o)>$o?Math.atan((Math.sin(t)*(i=Math.cos(r))*Math.sin(e)-Math.sin(r)*(u=Math.cos(t))*Math.sin(n))/(u*i*o)):(t+r)/2}function ne(n,t,e,r){var u;if(null==n)u=e*Bo/2,r.point(-Bo,u),r.point(0,u),r.point(Bo,u),r.point(Bo,0),r.point(Bo,-u),r.point(0,-u),r.point(-Bo,-u),r.point(-Bo,0),r.point(-Bo,u);else if(Math.abs(n[0]-t[0])>$o){var i=(n[0]<t[0]?1:-1)*Bo;u=e*i/2,r.point(-i,u),r.point(0,u),r.point(i,u)}else r.point(t[0],t[1])}function te(n){return Gt(Ba,n)}function ee(n){function t(n,t){return Math.cos(n)*Math.cos(t)>o}function e(n){var e,i,o,c,s;return{lineStart:function(){c=o=!1,s=1},point:function(f,h){var g,p=[f,h],d=t(f,h),v=a?d?0:u(f,h):d?u(f+(0>f?Bo:-Bo),h):0;if(!e&&(c=o=d)&&n.lineStart(),d!==o&&(g=r(e,p),(Pt(e,g)||Pt(p,g))&&(p[0]+=$o,p[1]+=$o,d=t(p[0],p[1]))),d!==o)s=0,d?(n.lineStart(),g=r(p,e),n.point(g[0],g[1])):(g=r(e,p),n.point(g[0],g[1]),n.lineEnd()),e=g;else if(l&&e&&a^d){var m;v&i||!(m=r(p,e,!0))||(s=0,a?(n.lineStart(),n.point(m[0][0],m[0][1]),n.point(m[1][0],m[1][1]),n.lineEnd()):(n.point(m[1][0],m[1][1]),n.lineEnd(),n.lineStart(),n.point(m[0][0],m[0][1])))}!d||e&&Pt(e,p)||n.point(p[0],p[1]),e=p,o=d,i=v},lineEnd:function(){o&&n.lineEnd(),e=null},clean:function(){return s|(c&&o)<<1}}}function r(n,t,e){var r=zt(n),u=zt(t),i=[1,0,0],a=Dt(r,u),c=Ct(a,a),l=a[0],s=c-l*l;if(!s)return!e&&n;var f=o*c/s,h=-o*l/s,g=Dt(i,a),p=Lt(i,f),d=Lt(a,h);jt(p,d);var v=g,m=Ct(p,v),y=Ct(v,v),M=m*m-y*(Ct(p,p)-1);if(!(0>M)){var x=Math.sqrt(M),b=Lt(v,(-m-x)/y);if(jt(b,p),b=Ft(b),!e)return b;var _,w=n[0],S=t[0],E=n[1],k=t[1];w>S&&(_=w,w=S,S=_);var A=S-w,N=Math.abs(A-Bo)<$o,q=N||$o>A;if(!N&&E>k&&(_=E,E=k,k=_),q?N?E+k>0^b[1]<(Math.abs(b[0]-w)<$o?E:k):E<=b[1]&&b[1]<=k:A>Bo^(w<=b[0]&&b[0]<=S)){var T=Lt(v,(-m+x)/y);return jt(T,p),[b,Ft(T)]}}}function u(t,e){var r=a?n:Bo-n,u=0;return-r>t?u|=1:t>r&&(u|=2),-r>e?u|=4:e>r&&(u|=8),u}function i(n){return Gt(c,n)}var o=Math.cos(n),a=o>0,c=[n,0],l=Math.abs(o)>$o,s=Ne(n,6*Jo);return Bt(t,e,s,i)}function re(n,t,e,r){function u(r,u){return Math.abs(r[0]-n)<$o?u>0?0:3:Math.abs(r[0]-e)<$o?u>0?2:1:Math.abs(r[1]-t)<$o?u>0?1:0:u>0?3:2}function i(n,t){return o(n.point,t.point)}function o(n,t){var e=u(n,1),r=u(t,1);return e!==r?e-r:0===e?t[1]-n[1]:1===e?n[0]-t[0]:2===e?n[1]-t[1]:t[0]-n[0]}function a(u,i){var o=i[0]-u[0],a=i[1]-u[1],c=[0,1];return Math.abs(o)<$o&&Math.abs(a)<$o?n<=u[0]&&u[0]<=e&&t<=u[1]&&u[1]<=r:ue(n-u[0],o,c)&&ue(u[0]-e,-o,c)&&ue(t-u[1],a,c)&&ue(u[1]-r,-a,c)?(c[1]<1&&(i[0]=u[0]+c[1]*o,i[1]=u[1]+c[1]*a),c[0]>0&&(u[0]+=c[0]*o,u[1]+=c[0]*a),!0):!1}return function(c){function l(i){var o=u(i,-1),a=s([0===o||3===o?n:e,o>1?r:t]);return a}function s(n){for(var t=0,e=M.length,r=n[1],u=0;e>u;++u)for(var i,o=1,a=M[u],c=a.length,l=a[0];c>o;++o)i=a[o],l[1]<=r?i[1]>r&&f(l,i,n)>0&&++t:i[1]<=r&&f(l,i,n)<0&&--t,l=i;return 0!==t}function f(n,t,e){return(t[0]-n[0])*(e[1]-n[1])-(e[0]-n[0])*(t[1]-n[1])}function h(i,a,c,l){var s=0,f=0;if(null==i||(s=u(i,c))!==(f=u(a,c))||o(i,a)<0^c>0){do l.point(0===s||3===s?n:e,s>1?r:t);while((s=(s+c+4)%4)!==f)}else l.point(a[0],a[1])}function g(u,i){return u>=n&&e>=u&&i>=t&&r>=i}function p(n,t){g(n,t)&&c.point(n,t)}function d(){T.point=m,M&&M.push(x=[]),A=!0,k=!1,S=E=0/0}function v(){y&&(m(b,_),w&&k&&q.rejoin(),y.push(q.buffer())),T.point=p,k&&c.lineEnd()}function m(n,t){n=Math.max(-$a,Math.min($a,n)),t=Math.max(-$a,Math.min($a,t));var e=g(n,t);if(M&&x.push([n,t]),A)b=n,_=t,w=e,A=!1,e&&(c.lineStart(),c.point(n,t));else if(e&&k)c.point(n,t);else{var r=[S,E],u=[n,t];a(r,u)?(k||(c.lineStart(),c.point(r[0],r[1])),c.point(u[0],u[1]),e||c.lineEnd()):e&&(c.lineStart(),c.point(n,t))}S=n,E=t,k=e}var y,M,x,b,_,w,S,E,k,A,N=c,q=Wt(),T={point:p,lineStart:d,lineEnd:v,polygonStart:function(){c=q,y=[],M=[]},polygonEnd:function(){c=N,(y=vo.merge(y)).length?(c.polygonStart(),Zt(y,i,l,h,c),c.polygonEnd()):s([n,t])&&(c.polygonStart(),c.lineStart(),h(null,null,1,c),c.lineEnd(),c.polygonEnd()),y=M=x=null}};return T}}function ue(n,t,e){if(Math.abs(t)<$o)return 0>=n;var r=n/t;if(t>0){if(r>e[1])return!1;r>e[0]&&(e[0]=r)}else{if(r<e[0])return!1;r<e[1]&&(e[1]=r)}return!0}function ie(n,t){function e(e,r){return e=n(e,r),t(e[0],e[1])}return n.invert&&t.invert&&(e.invert=function(e,r){return e=t.invert(e,r),e&&n.invert(e[0],e[1])}),e}function oe(n){var t=0,e=Bo/3,r=be(n),u=r(t,e);return u.parallels=function(n){return arguments.length?r(t=n[0]*Bo/180,e=n[1]*Bo/180):[180*(t/Bo),180*(e/Bo)]},u}function ae(n,t){function e(n,t){var e=Math.sqrt(i-2*u*Math.sin(t))/u;return[e*Math.sin(n*=u),o-e*Math.cos(n)]}var r=Math.sin(n),u=(r+Math.sin(t))/2,i=1+r*(2*u-r),o=Math.sqrt(i)/u;return e.invert=function(n,t){var e=o-t;return[Math.atan2(n,e)/u,P((i-(n*n+e*e)*u*u)/(2*u))]},e}function ce(){function n(n,t){Ja+=u*n-r*t,r=n,u=t}var t,e,r,u;tc.point=function(i,o){tc.point=n,t=r=i,e=u=o},tc.lineEnd=function(){n(t,e)}}function le(n,t){Ga>n&&(Ga=n),n>Qa&&(Qa=n),Ka>t&&(Ka=t),t>nc&&(nc=t)}function se(){function n(n,t){o.push("M",n,",",t,i)}function t(n,t){o.push("M",n,",",t),a.point=e}function e(n,t){o.push("L",n,",",t)}function r(){a.point=n}function u(){o.push("Z")}var i=fe(4.5),o=[],a={point:n,lineStart:function(){a.point=t},lineEnd:r,polygonStart:function(){a.lineEnd=u},polygonEnd:function(){a.lineEnd=r,a.point=n},pointRadius:function(n){return i=fe(n),a},result:function(){if(o.length){var n=o.join("");return o=[],n}}};return a}function fe(n){return"m0,"+n+"a"+n+","+n+" 0 1,1 0,"+-2*n+"a"+n+","+n+" 0 1,1 0,"+2*n+"z"}function he(n,t){Ha+=n,Fa+=t,++Pa}function ge(){function n(n,r){var u=n-t,i=r-e,o=Math.sqrt(u*u+i*i);Oa+=o*(t+n)/2,Ra+=o*(e+r)/2,Ya+=o,he(t=n,e=r)}var t,e;rc.point=function(r,u){rc.point=n,he(t=r,e=u)}}function pe(){rc.point=he}function de(){function n(n,t){var e=n-r,i=t-u,o=Math.sqrt(e*e+i*i);Oa+=o*(r+n)/2,Ra+=o*(u+t)/2,Ya+=o,o=u*n-r*t,Ia+=o*(r+n),Ua+=o*(u+t),Va+=3*o,he(r=n,u=t)}var t,e,r,u;rc.point=function(i,o){rc.point=n,he(t=r=i,e=u=o)},rc.lineEnd=function(){n(t,e)}}function ve(n){function t(t,e){n.moveTo(t,e),n.arc(t,e,o,0,2*Bo)}function e(t,e){n.moveTo(t,e),a.point=r}function r(t,e){n.lineTo(t,e)}function u(){a.point=t}function i(){n.closePath()}var o=4.5,a={point:t,lineStart:function(){a.point=e},lineEnd:u,polygonStart:function(){a.lineEnd=i},polygonEnd:function(){a.lineEnd=u,a.point=t},pointRadius:function(n){return o=n,a},result:c};return a}function me(n){function t(t){function r(e,r){e=n(e,r),t.point(e[0],e[1])}function u(){M=0/0,S.point=o,t.lineStart()}function o(r,u){var o=zt([r,u]),a=n(r,u);e(M,x,y,b,_,w,M=a[0],x=a[1],y=r,b=o[0],_=o[1],w=o[2],i,t),t.point(M,x)}function a(){S.point=r,t.lineEnd()}function c(){u(),S.point=l,S.lineEnd=s}function l(n,t){o(f=n,h=t),g=M,p=x,d=b,v=_,m=w,S.point=o}function s(){e(M,x,y,b,_,w,g,p,f,d,v,m,i,t),S.lineEnd=a,a()}var f,h,g,p,d,v,m,y,M,x,b,_,w,S={point:r,lineStart:u,lineEnd:a,polygonStart:function(){t.polygonStart(),S.lineStart=c},polygonEnd:function(){t.polygonEnd(),S.lineStart=u}};return S}function e(t,i,o,a,c,l,s,f,h,g,p,d,v,m){var y=s-t,M=f-i,x=y*y+M*M;if(x>4*r&&v--){var b=a+g,_=c+p,w=l+d,S=Math.sqrt(b*b+_*_+w*w),E=Math.asin(w/=S),k=Math.abs(Math.abs(w)-1)<$o?(o+h)/2:Math.atan2(_,b),A=n(k,E),N=A[0],q=A[1],T=N-t,z=q-i,C=M*T-y*z;(C*C/x>r||Math.abs((y*T+M*z)/x-.5)>.3||u>a*g+c*p+l*d)&&(e(t,i,o,a,c,l,N,q,k,b/=S,_/=S,w,v,m),m.point(N,q),e(N,q,k,b,_,w,s,f,h,g,p,d,v,m))}}var r=.5,u=Math.cos(30*Jo),i=16;return t.precision=function(n){return arguments.length?(i=(r=n*n)>0&&16,t):Math.sqrt(r)},t}function ye(n){this.stream=n}function Me(n){var t=me(function(t,e){return n([t*Go,e*Go])});return function(n){var e=new ye(n=t(n));return e.point=function(t,e){n.point(t*Jo,e*Jo)},e}}function xe(n){return be(function(){return n})()}function be(n){function t(n){return n=a(n[0]*Jo,n[1]*Jo),[n[0]*h+c,l-n[1]*h]}function e(n){return n=a.invert((n[0]-c)/h,(l-n[1])/h),n&&[n[0]*Go,n[1]*Go]}function r(){a=ie(o=Se(m,y,M),i);var n=i(d,v);return c=g-n[0]*h,l=p+n[1]*h,u()}function u(){return s&&(s.valid=!1,s=null),t}var i,o,a,c,l,s,f=me(function(n,t){return n=i(n,t),[n[0]*h+c,l-n[1]*h]}),h=150,g=480,p=250,d=0,v=0,m=0,y=0,M=0,x=Xa,b=pt,_=null,w=null;return t.stream=function(n){return s&&(s.valid=!1),s=_e(o,x(f(b(n)))),s.valid=!0,s},t.clipAngle=function(n){return arguments.length?(x=null==n?(_=n,Xa):ee((_=+n)*Jo),u()):_},t.clipExtent=function(n){return arguments.length?(w=n,b=n?re(n[0][0],n[0][1],n[1][0],n[1][1]):pt,u()):w},t.scale=function(n){return arguments.length?(h=+n,r()):h},t.translate=function(n){return arguments.length?(g=+n[0],p=+n[1],r()):[g,p]},t.center=function(n){return arguments.length?(d=n[0]%360*Jo,v=n[1]%360*Jo,r()):[d*Go,v*Go]},t.rotate=function(n){return arguments.length?(m=n[0]%360*Jo,y=n[1]%360*Jo,M=n.length>2?n[2]%360*Jo:0,r()):[m*Go,y*Go,M*Go]},vo.rebind(t,f,"precision"),function(){return i=n.apply(this,arguments),t.invert=i.invert&&e,r()}}function _e(n,t){var e=new ye(t);return e.point=function(e,r){r=n(e*Jo,r*Jo),e=r[0],t.point(e>Bo?e-2*Bo:-Bo>e?e+2*Bo:e,r[1])},e}function we(n,t){return[n,t]}function Se(n,t,e){return n?t||e?ie(ke(n),Ae(t,e)):ke(n):t||e?Ae(t,e):we}function Ee(n){return function(t,e){return t+=n,[t>Bo?t-2*Bo:-Bo>t?t+2*Bo:t,e]}}function ke(n){var t=Ee(n);return t.invert=Ee(-n),t}function Ae(n,t){function e(n,t){var e=Math.cos(t),a=Math.cos(n)*e,c=Math.sin(n)*e,l=Math.sin(t),s=l*r+a*u;return[Math.atan2(c*i-s*o,a*r-l*u),P(s*i+c*o)]}var r=Math.cos(n),u=Math.sin(n),i=Math.cos(t),o=Math.sin(t);return e.invert=function(n,t){var e=Math.cos(t),a=Math.cos(n)*e,c=Math.sin(n)*e,l=Math.sin(t),s=l*i-c*o;return[Math.atan2(c*i+l*o,a*r+s*u),P(s*r-a*u)]},e}function Ne(n,t){var e=Math.cos(n),r=Math.sin(n);return function(u,i,o,a){var c=o*t;null!=u?(u=qe(e,u),i=qe(e,i),(o>0?i>u:u>i)&&(u+=2*o*Bo)):(u=n+2*o*Bo,i=n-.5*c);for(var l,s=u;o>0?s>i:i>s;s-=c)a.point((l=Ft([e,-r*Math.cos(s),-r*Math.sin(s)]))[0],l[1])}}function qe(n,t){var e=zt(t);e[0]-=n,Ht(e);var r=F(-e[1]);return((-e[2]<0?-r:r)+2*Math.PI-$o)%(2*Math.PI)}function Te(n,t,e){var r=vo.range(n,t-$o,e).concat(t);return function(n){return r.map(function(t){return[n,t]})}}function ze(n,t,e){var r=vo.range(n,t-$o,e).concat(t);return function(n){return r.map(function(t){return[t,n]})}}function Ce(n){return n.source}function De(n){return n.target}function je(n,t,e,r){var u=Math.cos(t),i=Math.sin(t),o=Math.cos(r),a=Math.sin(r),c=u*Math.cos(n),l=u*Math.sin(n),s=o*Math.cos(e),f=o*Math.sin(e),h=2*Math.asin(Math.sqrt(I(r-t)+u*o*I(e-n))),g=1/Math.sin(h),p=h?function(n){var t=Math.sin(n*=h)*g,e=Math.sin(h-n)*g,r=e*c+t*s,u=e*l+t*f,o=e*i+t*a;return[Math.atan2(u,r)*Go,Math.atan2(o,Math.sqrt(r*r+u*u))*Go]}:function(){return[n*Go,t*Go]};return p.distance=h,p}function Le(){function n(n,u){var i=Math.sin(u*=Jo),o=Math.cos(u),a=Math.abs((n*=Jo)-t),c=Math.cos(a);uc+=Math.atan2(Math.sqrt((a=o*Math.sin(a))*a+(a=r*i-e*o*c)*a),e*i+r*o*c),t=n,e=i,r=o}var t,e,r;ic.point=function(u,i){t=u*Jo,e=Math.sin(i*=Jo),r=Math.cos(i),ic.point=n},ic.lineEnd=function(){ic.point=ic.lineEnd=c}}function He(n,t){function e(t,e){var r=Math.cos(t),u=Math.cos(e),i=n(r*u);return[i*u*Math.sin(t),i*Math.sin(e)]}return e.invert=function(n,e){var r=Math.sqrt(n*n+e*e),u=t(r),i=Math.sin(u),o=Math.cos(u);return[Math.atan2(n*i,r*o),Math.asin(r&&e*i/r)]},e}function Fe(n,t){function e(n,t){var e=Math.abs(Math.abs(t)-Bo/2)<$o?0:o/Math.pow(u(t),i);return[e*Math.sin(i*n),o-e*Math.cos(i*n)]}var r=Math.cos(n),u=function(n){return Math.tan(Bo/4+n/2)},i=n===t?Math.sin(n):Math.log(r/Math.cos(t))/Math.log(u(t)/u(n)),o=r*Math.pow(u(n),i)/i;return i?(e.invert=function(n,t){var e=o-t,r=H(i)*Math.sqrt(n*n+e*e);return[Math.atan2(n,e)/i,2*Math.atan(Math.pow(o/r,1/i))-Bo/2]},e):Oe}function Pe(n,t){function e(n,t){var e=i-t;return[e*Math.sin(u*n),i-e*Math.cos(u*n)]}var r=Math.cos(n),u=n===t?Math.sin(n):(r-Math.cos(t))/(t-n),i=r/u+n;return Math.abs(u)<$o?we:(e.invert=function(n,t){var e=i-t;return[Math.atan2(n,e)/u,i-H(u)*Math.sqrt(n*n+e*e)]},e)}function Oe(n,t){return[n,Math.log(Math.tan(Bo/4+t/2))]}function Re(n){var t,e=xe(n),r=e.scale,u=e.translate,i=e.clipExtent;return e.scale=function(){var n=r.apply(e,arguments);return n===e?t?e.clipExtent(null):e:n},e.translate=function(){var n=u.apply(e,arguments);return n===e?t?e.clipExtent(null):e:n},e.clipExtent=function(n){var o=i.apply(e,arguments);if(o===e){if(t=null==n){var a=Bo*r(),c=u();i([[c[0]-a,c[1]-a],[c[0]+a,c[1]+a]])}}else t&&(o=null);return o},e.clipExtent(null)}function Ye(n,t){var e=Math.cos(t)*Math.sin(n);return[Math.log((1+e)/(1-e))/2,Math.atan2(Math.tan(t),Math.cos(n))]}function Ie(n){function t(t){function o(){l.push("M",i(n(s),a))}for(var c,l=[],s=[],f=-1,h=t.length,g=gt(e),p=gt(r);++f<h;)u.call(this,c=t[f],f)?s.push([+g.call(this,c,f),+p.call(this,c,f)]):s.length&&(o(),s=[]);return s.length&&o(),l.length?l.join(""):null}var e=Ue,r=Ve,u=Vt,i=Ze,o=i.key,a=.7;return t.x=function(n){return arguments.length?(e=n,t):e},t.y=function(n){return arguments.length?(r=n,t):r},t.defined=function(n){return arguments.length?(u=n,t):u},t.interpolate=function(n){return arguments.length?(o="function"==typeof n?i=n:(i=fc.get(n)||Ze).key,t):o},t.tension=function(n){return arguments.length?(a=n,t):a},t}function Ue(n){return n[0]}function Ve(n){return n[1]}function Ze(n){return n.join("L")}function Xe(n){return Ze(n)+"Z"}function Be(n){for(var t=0,e=n.length,r=n[0],u=[r[0],",",r[1]];++t<e;)u.push("H",(r[0]+(r=n[t])[0])/2,"V",r[1]);return e>1&&u.push("H",r[0]),u.join("")}function $e(n){for(var t=0,e=n.length,r=n[0],u=[r[0],",",r[1]];++t<e;)u.push("V",(r=n[t])[1],"H",r[0]);return u.join("")}function We(n){for(var t=0,e=n.length,r=n[0],u=[r[0],",",r[1]];++t<e;)u.push("H",(r=n[t])[0],"V",r[1]);return u.join("")}function Je(n,t){return n.length<4?Ze(n):n[1]+Qe(n.slice(1,n.length-1),nr(n,t))}function Ge(n,t){return n.length<3?Ze(n):n[0]+Qe((n.push(n[0]),n),nr([n[n.length-2]].concat(n,[n[1]]),t))}function Ke(n,t){return n.length<3?Ze(n):n[0]+Qe(n,nr(n,t))}function Qe(n,t){if(t.length<1||n.length!=t.length&&n.length!=t.length+2)return Ze(n);var e=n.length!=t.length,r="",u=n[0],i=n[1],o=t[0],a=o,c=1;if(e&&(r+="Q"+(i[0]-2*o[0]/3)+","+(i[1]-2*o[1]/3)+","+i[0]+","+i[1],u=n[1],c=2),t.length>1){a=t[1],i=n[c],c++,r+="C"+(u[0]+o[0])+","+(u[1]+o[1])+","+(i[0]-a[0])+","+(i[1]-a[1])+","+i[0]+","+i[1];for(var l=2;l<t.length;l++,c++)i=n[c],a=t[l],r+="S"+(i[0]-a[0])+","+(i[1]-a[1])+","+i[0]+","+i[1]}if(e){var s=n[c];r+="Q"+(i[0]+2*a[0]/3)+","+(i[1]+2*a[1]/3)+","+s[0]+","+s[1]}return r}function nr(n,t){for(var e,r=[],u=(1-t)/2,i=n[0],o=n[1],a=1,c=n.length;++a<c;)e=i,i=o,o=n[a],r.push([u*(o[0]-e[0]),u*(o[1]-e[1])]);return r}function tr(n){if(n.length<3)return Ze(n);var t=1,e=n.length,r=n[0],u=r[0],i=r[1],o=[u,u,u,(r=n[1])[0]],a=[i,i,i,r[1]],c=[u,",",i,"L",ir(pc,o),",",ir(pc,a)];for(n.push(n[e-1]);++t<=e;)r=n[t],o.shift(),o.push(r[0]),a.shift(),a.push(r[1]),or(c,o,a);return n.pop(),c.push("L",r),c.join("")}function er(n){if(n.length<4)return Ze(n);for(var t,e=[],r=-1,u=n.length,i=[0],o=[0];++r<3;)t=n[r],i.push(t[0]),o.push(t[1]);for(e.push(ir(pc,i)+","+ir(pc,o)),--r;++r<u;)t=n[r],i.shift(),i.push(t[0]),o.shift(),o.push(t[1]),or(e,i,o);return e.join("")}function rr(n){for(var t,e,r=-1,u=n.length,i=u+4,o=[],a=[];++r<4;)e=n[r%u],o.push(e[0]),a.push(e[1]);for(t=[ir(pc,o),",",ir(pc,a)],--r;++r<i;)e=n[r%u],o.shift(),o.push(e[0]),a.shift(),a.push(e[1]),or(t,o,a);return t.join("")}function ur(n,t){var e=n.length-1;if(e)for(var r,u,i=n[0][0],o=n[0][1],a=n[e][0]-i,c=n[e][1]-o,l=-1;++l<=e;)r=n[l],u=l/e,r[0]=t*r[0]+(1-t)*(i+u*a),r[1]=t*r[1]+(1-t)*(o+u*c);return tr(n)}function ir(n,t){return n[0]*t[0]+n[1]*t[1]+n[2]*t[2]+n[3]*t[3]}function or(n,t,e){n.push("C",ir(hc,t),",",ir(hc,e),",",ir(gc,t),",",ir(gc,e),",",ir(pc,t),",",ir(pc,e))}function ar(n,t){return(t[1]-n[1])/(t[0]-n[0])}function cr(n){for(var t=0,e=n.length-1,r=[],u=n[0],i=n[1],o=r[0]=ar(u,i);++t<e;)r[t]=(o+(o=ar(u=i,i=n[t+1])))/2;return r[t]=o,r}function lr(n){for(var t,e,r,u,i=[],o=cr(n),a=-1,c=n.length-1;++a<c;)t=ar(n[a],n[a+1]),Math.abs(t)<1e-6?o[a]=o[a+1]=0:(e=o[a]/t,r=o[a+1]/t,u=e*e+r*r,u>9&&(u=3*t/Math.sqrt(u),o[a]=u*e,o[a+1]=u*r));
20
- for(a=-1;++a<=c;)u=(n[Math.min(c,a+1)][0]-n[Math.max(0,a-1)][0])/(6*(1+o[a]*o[a])),i.push([u||0,o[a]*u||0]);return i}function sr(n){return n.length<3?Ze(n):n[0]+Qe(n,lr(n))}function fr(n,t,e,r){var u,i,o,a,c,l,s;return u=r[n],i=u[0],o=u[1],u=r[t],a=u[0],c=u[1],u=r[e],l=u[0],s=u[1],(s-o)*(a-i)-(c-o)*(l-i)>0}function hr(n,t,e){return(e[0]-t[0])*(n[1]-t[1])<(e[1]-t[1])*(n[0]-t[0])}function gr(n,t,e,r){var u=n[0],i=e[0],o=t[0]-u,a=r[0]-i,c=n[1],l=e[1],s=t[1]-c,f=r[1]-l,h=(a*(c-l)-f*(u-i))/(f*o-a*s);return[u+h*o,c+h*s]}function pr(n){var t=n[0],e=n[n.length-1];return!(t[0]-e[0]||t[1]-e[1])}function dr(n,t){var e={list:n.map(function(n,t){return{index:t,x:n[0],y:n[1]}}).sort(function(n,t){return n.y<t.y?-1:n.y>t.y?1:n.x<t.x?-1:n.x>t.x?1:0}),bottomSite:null},r={list:[],leftEnd:null,rightEnd:null,init:function(){r.leftEnd=r.createHalfEdge(null,"l"),r.rightEnd=r.createHalfEdge(null,"l"),r.leftEnd.r=r.rightEnd,r.rightEnd.l=r.leftEnd,r.list.unshift(r.leftEnd,r.rightEnd)},createHalfEdge:function(n,t){return{edge:n,side:t,vertex:null,l:null,r:null}},insert:function(n,t){t.l=n,t.r=n.r,n.r.l=t,n.r=t},leftBound:function(n){var t=r.leftEnd;do t=t.r;while(t!=r.rightEnd&&u.rightOf(t,n));return t=t.l},del:function(n){n.l.r=n.r,n.r.l=n.l,n.edge=null},right:function(n){return n.r},left:function(n){return n.l},leftRegion:function(n){return null==n.edge?e.bottomSite:n.edge.region[n.side]},rightRegion:function(n){return null==n.edge?e.bottomSite:n.edge.region[vc[n.side]]}},u={bisect:function(n,t){var e={region:{l:n,r:t},ep:{l:null,r:null}},r=t.x-n.x,u=t.y-n.y,i=r>0?r:-r,o=u>0?u:-u;return e.c=n.x*r+n.y*u+.5*(r*r+u*u),i>o?(e.a=1,e.b=u/r,e.c/=r):(e.b=1,e.a=r/u,e.c/=u),e},intersect:function(n,t){var e=n.edge,r=t.edge;if(!e||!r||e.region.r==r.region.r)return null;var u=e.a*r.b-e.b*r.a;if(Math.abs(u)<1e-10)return null;var i,o,a=(e.c*r.b-r.c*e.b)/u,c=(r.c*e.a-e.c*r.a)/u,l=e.region.r,s=r.region.r;l.y<s.y||l.y==s.y&&l.x<s.x?(i=n,o=e):(i=t,o=r);var f=a>=o.region.r.x;return f&&"l"===i.side||!f&&"r"===i.side?null:{x:a,y:c}},rightOf:function(n,t){var e=n.edge,r=e.region.r,u=t.x>r.x;if(u&&"l"===n.side)return 1;if(!u&&"r"===n.side)return 0;if(1===e.a){var i=t.y-r.y,o=t.x-r.x,a=0,c=0;if(!u&&e.b<0||u&&e.b>=0?c=a=i>=e.b*o:(c=t.x+t.y*e.b>e.c,e.b<0&&(c=!c),c||(a=1)),!a){var l=r.x-e.region.l.x;c=e.b*(o*o-i*i)<l*i*(1+2*o/l+e.b*e.b),e.b<0&&(c=!c)}}else{var s=e.c-e.a*t.x,f=t.y-s,h=t.x-r.x,g=s-r.y;c=f*f>h*h+g*g}return"l"===n.side?c:!c},endPoint:function(n,e,r){n.ep[e]=r,n.ep[vc[e]]&&t(n)},distance:function(n,t){var e=n.x-t.x,r=n.y-t.y;return Math.sqrt(e*e+r*r)}},i={list:[],insert:function(n,t,e){n.vertex=t,n.ystar=t.y+e;for(var r=0,u=i.list,o=u.length;o>r;r++){var a=u[r];if(!(n.ystar>a.ystar||n.ystar==a.ystar&&t.x>a.vertex.x))break}u.splice(r,0,n)},del:function(n){for(var t=0,e=i.list,r=e.length;r>t&&e[t]!=n;++t);e.splice(t,1)},empty:function(){return 0===i.list.length},nextEvent:function(n){for(var t=0,e=i.list,r=e.length;r>t;++t)if(e[t]==n)return e[t+1];return null},min:function(){var n=i.list[0];return{x:n.vertex.x,y:n.ystar}},extractMin:function(){return i.list.shift()}};r.init(),e.bottomSite=e.list.shift();for(var o,a,c,l,s,f,h,g,p,d,v,m,y,M=e.list.shift();;)if(i.empty()||(o=i.min()),M&&(i.empty()||M.y<o.y||M.y==o.y&&M.x<o.x))a=r.leftBound(M),c=r.right(a),h=r.rightRegion(a),m=u.bisect(h,M),f=r.createHalfEdge(m,"l"),r.insert(a,f),d=u.intersect(a,f),d&&(i.del(a),i.insert(a,d,u.distance(d,M))),a=f,f=r.createHalfEdge(m,"r"),r.insert(a,f),d=u.intersect(f,c),d&&i.insert(f,d,u.distance(d,M)),M=e.list.shift();else{if(i.empty())break;a=i.extractMin(),l=r.left(a),c=r.right(a),s=r.right(c),h=r.leftRegion(a),g=r.rightRegion(c),v=a.vertex,u.endPoint(a.edge,a.side,v),u.endPoint(c.edge,c.side,v),r.del(a),i.del(c),r.del(c),y="l",h.y>g.y&&(p=h,h=g,g=p,y="r"),m=u.bisect(h,g),f=r.createHalfEdge(m,y),r.insert(l,f),u.endPoint(m,vc[y],v),d=u.intersect(l,f),d&&(i.del(l),i.insert(l,d,u.distance(d,h))),d=u.intersect(f,s),d&&i.insert(f,d,u.distance(d,h))}for(a=r.right(r.leftEnd);a!=r.rightEnd;a=r.right(a))t(a.edge)}function vr(n){return n.x}function mr(n){return n.y}function yr(){return{leaf:!0,nodes:[],point:null,x:null,y:null}}function Mr(n,t,e,r,u,i){if(!n(t,e,r,u,i)){var o=.5*(e+u),a=.5*(r+i),c=t.nodes;c[0]&&Mr(n,c[0],e,r,o,a),c[1]&&Mr(n,c[1],o,r,u,a),c[2]&&Mr(n,c[2],e,a,o,i),c[3]&&Mr(n,c[3],o,a,u,i)}}function xr(n,t){n=vo.rgb(n),t=vo.rgb(t);var e=n.r,r=n.g,u=n.b,i=t.r-e,o=t.g-r,a=t.b-u;return function(n){return"#"+at(Math.round(e+i*n))+at(Math.round(r+o*n))+at(Math.round(u+a*n))}}function br(n,t){var e,r={},u={};for(e in n)e in t?r[e]=Sr(n[e],t[e]):u[e]=n[e];for(e in t)e in n||(u[e]=t[e]);return function(n){for(e in r)u[e]=r[e](n);return u}}function _r(n,t){return t-=n=+n,function(e){return n+t*e}}function wr(n,t){var e,r,u,i,o,a=0,c=0,l=[],s=[];for(n+="",t+="",mc.lastIndex=0,r=0;e=mc.exec(t);++r)e.index&&l.push(t.substring(a,c=e.index)),s.push({i:l.length,x:e[0]}),l.push(null),a=mc.lastIndex;for(a<t.length&&l.push(t.substring(a)),r=0,i=s.length;(e=mc.exec(n))&&i>r;++r)if(o=s[r],o.x==e[0]){if(o.i)if(null==l[o.i+1])for(l[o.i-1]+=o.x,l.splice(o.i,1),u=r+1;i>u;++u)s[u].i--;else for(l[o.i-1]+=o.x+l[o.i+1],l.splice(o.i,2),u=r+1;i>u;++u)s[u].i-=2;else if(null==l[o.i+1])l[o.i]=o.x;else for(l[o.i]=o.x+l[o.i+1],l.splice(o.i+1,1),u=r+1;i>u;++u)s[u].i--;s.splice(r,1),i--,r--}else o.x=_r(parseFloat(e[0]),parseFloat(o.x));for(;i>r;)o=s.pop(),null==l[o.i+1]?l[o.i]=o.x:(l[o.i]=o.x+l[o.i+1],l.splice(o.i+1,1)),i--;return 1===l.length?null==l[0]?(o=s[0].x,function(n){return o(n)+""}):function(){return t}:function(n){for(r=0;i>r;++r)l[(o=s[r]).i]=o.x(n);return l.join("")}}function Sr(n,t){for(var e,r=vo.interpolators.length;--r>=0&&!(e=vo.interpolators[r](n,t)););return e}function Er(n,t){var e,r=[],u=[],i=n.length,o=t.length,a=Math.min(n.length,t.length);for(e=0;a>e;++e)r.push(Sr(n[e],t[e]));for(;i>e;++e)u[e]=n[e];for(;o>e;++e)u[e]=t[e];return function(n){for(e=0;a>e;++e)u[e]=r[e](n);return u}}function kr(n){return function(t){return 0>=t?0:t>=1?1:n(t)}}function Ar(n){return function(t){return 1-n(1-t)}}function Nr(n){return function(t){return.5*(.5>t?n(2*t):2-n(2-2*t))}}function qr(n){return n*n}function Tr(n){return n*n*n}function zr(n){if(0>=n)return 0;if(n>=1)return 1;var t=n*n,e=t*n;return 4*(.5>n?e:3*(n-t)+e-.75)}function Cr(n){return function(t){return Math.pow(t,n)}}function Dr(n){return 1-Math.cos(n*Bo/2)}function jr(n){return Math.pow(2,10*(n-1))}function Lr(n){return 1-Math.sqrt(1-n*n)}function Hr(n,t){var e;return arguments.length<2&&(t=.45),arguments.length?e=t/(2*Bo)*Math.asin(1/n):(n=1,e=t/4),function(r){return 1+n*Math.pow(2,10*-r)*Math.sin(2*(r-e)*Bo/t)}}function Fr(n){return n||(n=1.70158),function(t){return t*t*((n+1)*t-n)}}function Pr(n){return 1/2.75>n?7.5625*n*n:2/2.75>n?7.5625*(n-=1.5/2.75)*n+.75:2.5/2.75>n?7.5625*(n-=2.25/2.75)*n+.9375:7.5625*(n-=2.625/2.75)*n+.984375}function Or(n,t){n=vo.hcl(n),t=vo.hcl(t);var e=n.h,r=n.c,u=n.l,i=t.h-e,o=t.c-r,a=t.l-u;return isNaN(o)&&(o=0,r=isNaN(r)?t.c:r),isNaN(i)?(i=0,e=isNaN(e)?t.h:e):i>180?i-=360:-180>i&&(i+=360),function(n){return W(e+i*n,r+o*n,u+a*n)+""}}function Rr(n,t){n=vo.hsl(n),t=vo.hsl(t);var e=n.h,r=n.s,u=n.l,i=t.h-e,o=t.s-r,a=t.l-u;return isNaN(o)&&(o=0,r=isNaN(r)?t.s:r),isNaN(i)?(i=0,e=isNaN(e)?t.h:e):i>180?i-=360:-180>i&&(i+=360),function(n){return X(e+i*n,r+o*n,u+a*n)+""}}function Yr(n,t){n=vo.lab(n),t=vo.lab(t);var e=n.l,r=n.a,u=n.b,i=t.l-e,o=t.a-r,a=t.b-u;return function(n){return K(e+i*n,r+o*n,u+a*n)+""}}function Ir(n,t){return t-=n,function(e){return Math.round(n+t*e)}}function Ur(n){var t=[n.a,n.b],e=[n.c,n.d],r=Zr(t),u=Vr(t,e),i=Zr(Xr(e,t,-u))||0;t[0]*e[1]<e[0]*t[1]&&(t[0]*=-1,t[1]*=-1,r*=-1,u*=-1),this.rotate=(r?Math.atan2(t[1],t[0]):Math.atan2(-e[0],e[1]))*Go,this.translate=[n.e,n.f],this.scale=[r,i],this.skew=i?Math.atan2(u,i)*Go:0}function Vr(n,t){return n[0]*t[0]+n[1]*t[1]}function Zr(n){var t=Math.sqrt(Vr(n,n));return t&&(n[0]/=t,n[1]/=t),t}function Xr(n,t,e){return n[0]+=e*t[0],n[1]+=e*t[1],n}function Br(n,t){var e,r=[],u=[],i=vo.transform(n),o=vo.transform(t),a=i.translate,c=o.translate,l=i.rotate,s=o.rotate,f=i.skew,h=o.skew,g=i.scale,p=o.scale;return a[0]!=c[0]||a[1]!=c[1]?(r.push("translate(",null,",",null,")"),u.push({i:1,x:_r(a[0],c[0])},{i:3,x:_r(a[1],c[1])})):c[0]||c[1]?r.push("translate("+c+")"):r.push(""),l!=s?(l-s>180?s+=360:s-l>180&&(l+=360),u.push({i:r.push(r.pop()+"rotate(",null,")")-2,x:_r(l,s)})):s&&r.push(r.pop()+"rotate("+s+")"),f!=h?u.push({i:r.push(r.pop()+"skewX(",null,")")-2,x:_r(f,h)}):h&&r.push(r.pop()+"skewX("+h+")"),g[0]!=p[0]||g[1]!=p[1]?(e=r.push(r.pop()+"scale(",null,",",null,")"),u.push({i:e-4,x:_r(g[0],p[0])},{i:e-2,x:_r(g[1],p[1])})):(1!=p[0]||1!=p[1])&&r.push(r.pop()+"scale("+p+")"),e=u.length,function(n){for(var t,i=-1;++i<e;)r[(t=u[i]).i]=t.x(n);return r.join("")}}function $r(n,t){return t=t-(n=+n)?1/(t-n):0,function(e){return(e-n)*t}}function Wr(n,t){return t=t-(n=+n)?1/(t-n):0,function(e){return Math.max(0,Math.min(1,(e-n)*t))}}function Jr(n){for(var t=n.source,e=n.target,r=Kr(t,e),u=[t];t!==r;)t=t.parent,u.push(t);for(var i=u.length;e!==r;)u.splice(i,0,e),e=e.parent;return u}function Gr(n){for(var t=[],e=n.parent;null!=e;)t.push(n),n=e,e=e.parent;return t.push(n),t}function Kr(n,t){if(n===t)return n;for(var e=Gr(n),r=Gr(t),u=e.pop(),i=r.pop(),o=null;u===i;)o=u,u=e.pop(),i=r.pop();return o}function Qr(n){n.fixed|=2}function nu(n){n.fixed&=-7}function tu(n){n.fixed|=4,n.px=n.x,n.py=n.y}function eu(n){n.fixed&=-5}function ru(n,t,e){var r=0,u=0;if(n.charge=0,!n.leaf)for(var i,o=n.nodes,a=o.length,c=-1;++c<a;)i=o[c],null!=i&&(ru(i,t,e),n.charge+=i.charge,r+=i.charge*i.cx,u+=i.charge*i.cy);if(n.point){n.leaf||(n.point.x+=Math.random()-.5,n.point.y+=Math.random()-.5);var l=t*e[n.point.index];n.charge+=n.pointCharge=l,r+=l*n.point.x,u+=l*n.point.y}n.cx=r/n.charge,n.cy=u/n.charge}function uu(n,t){return vo.rebind(n,t,"sort","children","value"),n.nodes=n,n.links=cu,n}function iu(n){return n.children}function ou(n){return n.value}function au(n,t){return t.value-n.value}function cu(n){return vo.merge(n.map(function(n){return(n.children||[]).map(function(t){return{source:n,target:t}})}))}function lu(n){return n.x}function su(n){return n.y}function fu(n,t,e){n.y0=t,n.y=e}function hu(n){return vo.range(n.length)}function gu(n){for(var t=-1,e=n[0].length,r=[];++t<e;)r[t]=0;return r}function pu(n){for(var t,e=1,r=0,u=n[0][1],i=n.length;i>e;++e)(t=n[e][1])>u&&(r=e,u=t);return r}function du(n){return n.reduce(vu,0)}function vu(n,t){return n+t[1]}function mu(n,t){return yu(n,Math.ceil(Math.log(t.length)/Math.LN2+1))}function yu(n,t){for(var e=-1,r=+n[0],u=(n[1]-r)/t,i=[];++e<=t;)i[e]=u*e+r;return i}function Mu(n){return[vo.min(n),vo.max(n)]}function xu(n,t){return n.parent==t.parent?1:2}function bu(n){var t=n.children;return t&&t.length?t[0]:n._tree.thread}function _u(n){var t,e=n.children;return e&&(t=e.length)?e[t-1]:n._tree.thread}function wu(n,t){var e=n.children;if(e&&(u=e.length))for(var r,u,i=-1;++i<u;)t(r=wu(e[i],t),n)>0&&(n=r);return n}function Su(n,t){return n.x-t.x}function Eu(n,t){return t.x-n.x}function ku(n,t){return n.depth-t.depth}function Au(n,t){function e(n,r){var u=n.children;if(u&&(o=u.length))for(var i,o,a=null,c=-1;++c<o;)i=u[c],e(i,a),a=i;t(n,r)}e(n,null)}function Nu(n){for(var t,e=0,r=0,u=n.children,i=u.length;--i>=0;)t=u[i]._tree,t.prelim+=e,t.mod+=e,e+=t.shift+(r+=t.change)}function qu(n,t,e){n=n._tree,t=t._tree;var r=e/(t.number-n.number);n.change+=r,t.change-=r,t.shift+=e,t.prelim+=e,t.mod+=e}function Tu(n,t,e){return n._tree.ancestor.parent==t.parent?n._tree.ancestor:e}function zu(n,t){return n.value-t.value}function Cu(n,t){var e=n._pack_next;n._pack_next=t,t._pack_prev=n,t._pack_next=e,e._pack_prev=t}function Du(n,t){n._pack_next=t,t._pack_prev=n}function ju(n,t){var e=t.x-n.x,r=t.y-n.y,u=n.r+t.r;return.999*u*u>e*e+r*r}function Lu(n){function t(n){s=Math.min(n.x-n.r,s),f=Math.max(n.x+n.r,f),h=Math.min(n.y-n.r,h),g=Math.max(n.y+n.r,g)}if((e=n.children)&&(l=e.length)){var e,r,u,i,o,a,c,l,s=1/0,f=-1/0,h=1/0,g=-1/0;if(e.forEach(Hu),r=e[0],r.x=-r.r,r.y=0,t(r),l>1&&(u=e[1],u.x=u.r,u.y=0,t(u),l>2))for(i=e[2],Ou(r,u,i),t(i),Cu(r,i),r._pack_prev=i,Cu(i,u),u=r._pack_next,o=3;l>o;o++){Ou(r,u,i=e[o]);var p=0,d=1,v=1;for(a=u._pack_next;a!==u;a=a._pack_next,d++)if(ju(a,i)){p=1;break}if(1==p)for(c=r._pack_prev;c!==a._pack_prev&&!ju(c,i);c=c._pack_prev,v++);p?(v>d||d==v&&u.r<r.r?Du(r,u=a):Du(r=c,u),o--):(Cu(r,i),u=i,t(i))}var m=(s+f)/2,y=(h+g)/2,M=0;for(o=0;l>o;o++)i=e[o],i.x-=m,i.y-=y,M=Math.max(M,i.r+Math.sqrt(i.x*i.x+i.y*i.y));n.r=M,e.forEach(Fu)}}function Hu(n){n._pack_next=n._pack_prev=n}function Fu(n){delete n._pack_next,delete n._pack_prev}function Pu(n,t,e,r){var u=n.children;if(n.x=t+=r*n.x,n.y=e+=r*n.y,n.r*=r,u)for(var i=-1,o=u.length;++i<o;)Pu(u[i],t,e,r)}function Ou(n,t,e){var r=n.r+e.r,u=t.x-n.x,i=t.y-n.y;if(r&&(u||i)){var o=t.r+e.r,a=u*u+i*i;o*=o,r*=r;var c=.5+(r-o)/(2*a),l=Math.sqrt(Math.max(0,2*o*(r+a)-(r-=a)*r-o*o))/(2*a);e.x=n.x+c*u+l*i,e.y=n.y+c*i-l*u}else e.x=n.x+r,e.y=n.y}function Ru(n){return 1+vo.max(n,function(n){return n.y})}function Yu(n){return n.reduce(function(n,t){return n+t.x},0)/n.length}function Iu(n){var t=n.children;return t&&t.length?Iu(t[0]):n}function Uu(n){var t,e=n.children;return e&&(t=e.length)?Uu(e[t-1]):n}function Vu(n){return{x:n.x,y:n.y,dx:n.dx,dy:n.dy}}function Zu(n,t){var e=n.x+t[3],r=n.y+t[0],u=n.dx-t[1]-t[3],i=n.dy-t[0]-t[2];return 0>u&&(e+=u/2,u=0),0>i&&(r+=i/2,i=0),{x:e,y:r,dx:u,dy:i}}function Xu(n){var t=n[0],e=n[n.length-1];return e>t?[t,e]:[e,t]}function Bu(n){return n.rangeExtent?n.rangeExtent():Xu(n.range())}function $u(n,t,e,r){var u=e(n[0],n[1]),i=r(t[0],t[1]);return function(n){return i(u(n))}}function Wu(n,t){var e,r=0,u=n.length-1,i=n[r],o=n[u];return i>o&&(e=r,r=u,u=e,e=i,i=o,o=e),n[r]=t.floor(i),n[u]=t.ceil(o),n}function Ju(n){return n?{floor:function(t){return Math.floor(t/n)*n},ceil:function(t){return Math.ceil(t/n)*n}}:Ac}function Gu(n,t,e,r){var u=[],i=[],o=0,a=Math.min(n.length,t.length)-1;for(n[a]<n[0]&&(n=n.slice().reverse(),t=t.slice().reverse());++o<=a;)u.push(e(n[o-1],n[o])),i.push(r(t[o-1],t[o]));return function(t){var e=vo.bisect(n,t,1,a)-1;return i[e](u[e](t))}}function Ku(n,t,e,r){function u(){var u=Math.min(n.length,t.length)>2?Gu:$u,c=r?Wr:$r;return o=u(n,t,c,e),a=u(t,n,c,Sr),i}function i(n){return o(n)}var o,a;return i.invert=function(n){return a(n)},i.domain=function(t){return arguments.length?(n=t.map(Number),u()):n},i.range=function(n){return arguments.length?(t=n,u()):t},i.rangeRound=function(n){return i.range(n).interpolate(Ir)},i.clamp=function(n){return arguments.length?(r=n,u()):r},i.interpolate=function(n){return arguments.length?(e=n,u()):e},i.ticks=function(t){return ei(n,t)},i.tickFormat=function(t,e){return ri(n,t,e)},i.nice=function(t){return ni(n,t),u()},i.copy=function(){return Ku(n,t,e,r)},u()}function Qu(n,t){return vo.rebind(n,t,"range","rangeRound","interpolate","clamp")}function ni(n,t){return Wu(n,Ju(ti(n,t)[2]))}function ti(n,t){null==t&&(t=10);var e=Xu(n),r=e[1]-e[0],u=Math.pow(10,Math.floor(Math.log(r/t)/Math.LN10)),i=t/r*u;return.15>=i?u*=10:.35>=i?u*=5:.75>=i&&(u*=2),e[0]=Math.ceil(e[0]/u)*u,e[1]=Math.floor(e[1]/u)*u+.5*u,e[2]=u,e}function ei(n,t){return vo.range.apply(vo,ti(n,t))}function ri(n,t,e){var r=-Math.floor(Math.log(ti(n,t)[2])/Math.LN10+.01);return vo.format(e?e.replace(Sa,function(n,t,e,u,i,o,a,c,l,s){return[t,e,u,i,o,a,c,l||"."+(r-2*("%"===s)),s].join("")}):",."+r+"f")}function ui(n,t,e,r){function u(n){return(e?Math.log(0>n?0:n):-Math.log(n>0?0:-n))/Math.log(t)}function i(n){return e?Math.pow(t,n):-Math.pow(t,-n)}function o(t){return n(u(t))}return o.invert=function(t){return i(n.invert(t))},o.domain=function(t){return arguments.length?(e=t[0]>=0,n.domain((r=t.map(Number)).map(u)),o):r},o.base=function(e){return arguments.length?(t=+e,n.domain(r.map(u)),o):t},o.nice=function(){var t=Wu(r.map(u),e?Math:qc);return n.domain(t),r=t.map(i),o},o.ticks=function(){var n=Xu(r),o=[],a=n[0],c=n[1],l=Math.floor(u(a)),s=Math.ceil(u(c)),f=t%1?2:t;if(isFinite(s-l)){if(e){for(;s>l;l++)for(var h=1;f>h;h++)o.push(i(l)*h);o.push(i(l))}else for(o.push(i(l));l++<s;)for(var h=f-1;h>0;h--)o.push(i(l)*h);for(l=0;o[l]<a;l++);for(s=o.length;o[s-1]>c;s--);o=o.slice(l,s)}return o},o.tickFormat=function(n,t){if(!arguments.length)return Nc;arguments.length<2?t=Nc:"function"!=typeof t&&(t=vo.format(t));var r,a=Math.max(.1,n/o.ticks().length),c=e?(r=1e-12,Math.ceil):(r=-1e-12,Math.floor);return function(n){return n/i(c(u(n)+r))<=a?t(n):""}},o.copy=function(){return ui(n.copy(),t,e,r)},Qu(o,n)}function ii(n,t,e){function r(t){return n(u(t))}var u=oi(t),i=oi(1/t);return r.invert=function(t){return i(n.invert(t))},r.domain=function(t){return arguments.length?(n.domain((e=t.map(Number)).map(u)),r):e},r.ticks=function(n){return ei(e,n)},r.tickFormat=function(n,t){return ri(e,n,t)},r.nice=function(n){return r.domain(ni(e,n))},r.exponent=function(o){return arguments.length?(u=oi(t=o),i=oi(1/t),n.domain(e.map(u)),r):t},r.copy=function(){return ii(n.copy(),t,e)},Qu(r,n)}function oi(n){return function(t){return 0>t?-Math.pow(-t,n):Math.pow(t,n)}}function ai(n,t){function e(t){return o[((i.get(t)||i.set(t,n.push(t)))-1)%o.length]}function r(t,e){return vo.range(n.length).map(function(n){return t+e*n})}var i,o,a;return e.domain=function(r){if(!arguments.length)return n;n=[],i=new u;for(var o,a=-1,c=r.length;++a<c;)i.has(o=r[a])||i.set(o,n.push(o));return e[t.t].apply(e,t.a)},e.range=function(n){return arguments.length?(o=n,a=0,t={t:"range",a:arguments},e):o},e.rangePoints=function(u,i){arguments.length<2&&(i=0);var c=u[0],l=u[1],s=(l-c)/(Math.max(1,n.length-1)+i);return o=r(n.length<2?(c+l)/2:c+s*i/2,s),a=0,t={t:"rangePoints",a:arguments},e},e.rangeBands=function(u,i,c){arguments.length<2&&(i=0),arguments.length<3&&(c=i);var l=u[1]<u[0],s=u[l-0],f=u[1-l],h=(f-s)/(n.length-i+2*c);return o=r(s+h*c,h),l&&o.reverse(),a=h*(1-i),t={t:"rangeBands",a:arguments},e},e.rangeRoundBands=function(u,i,c){arguments.length<2&&(i=0),arguments.length<3&&(c=i);var l=u[1]<u[0],s=u[l-0],f=u[1-l],h=Math.floor((f-s)/(n.length-i+2*c)),g=f-s-(n.length-i)*h;return o=r(s+Math.round(g/2),h),l&&o.reverse(),a=Math.round(h*(1-i)),t={t:"rangeRoundBands",a:arguments},e},e.rangeBand=function(){return a},e.rangeExtent=function(){return Xu(t.a[0])},e.copy=function(){return ai(n,t)},e.domain(n)}function ci(n,t){function e(){var e=0,i=t.length;for(u=[];++e<i;)u[e-1]=vo.quantile(n,e/i);return r}function r(n){return isNaN(n=+n)?void 0:t[vo.bisect(u,n)]}var u;return r.domain=function(t){return arguments.length?(n=t.filter(function(n){return!isNaN(n)}).sort(vo.ascending),e()):n},r.range=function(n){return arguments.length?(t=n,e()):t},r.quantiles=function(){return u},r.invertExtent=function(e){return e=t.indexOf(e),0>e?[0/0,0/0]:[e>0?u[e-1]:n[0],e<u.length?u[e]:n[n.length-1]]},r.copy=function(){return ci(n,t)},e()}function li(n,t,e){function r(t){return e[Math.max(0,Math.min(o,Math.floor(i*(t-n))))]}function u(){return i=e.length/(t-n),o=e.length-1,r}var i,o;return r.domain=function(e){return arguments.length?(n=+e[0],t=+e[e.length-1],u()):[n,t]},r.range=function(n){return arguments.length?(e=n,u()):e},r.invertExtent=function(t){return t=e.indexOf(t),t=0>t?0/0:t/i+n,[t,t+1/i]},r.copy=function(){return li(n,t,e)},u()}function si(n,t){function e(e){return e>=e?t[vo.bisect(n,e)]:void 0}return e.domain=function(t){return arguments.length?(n=t,e):n},e.range=function(n){return arguments.length?(t=n,e):t},e.invertExtent=function(e){return e=t.indexOf(e),[n[e-1],n[e]]},e.copy=function(){return si(n,t)},e}function fi(n){function t(n){return+n}return t.invert=t,t.domain=t.range=function(e){return arguments.length?(n=e.map(t),t):n},t.ticks=function(t){return ei(n,t)},t.tickFormat=function(t,e){return ri(n,t,e)},t.copy=function(){return fi(n)},t}function hi(n){return n.innerRadius}function gi(n){return n.outerRadius}function pi(n){return n.startAngle}function di(n){return n.endAngle}function vi(n){for(var t,e,r,u=-1,i=n.length;++u<i;)t=n[u],e=t[0],r=t[1]+jc,t[0]=e*Math.cos(r),t[1]=e*Math.sin(r);return n}function mi(n){function t(t){function c(){d.push("M",a(n(m),f),s,l(n(v.reverse()),f),"Z")}for(var h,g,p,d=[],v=[],m=[],y=-1,M=t.length,x=gt(e),b=gt(u),_=e===r?function(){return g}:gt(r),w=u===i?function(){return p}:gt(i);++y<M;)o.call(this,h=t[y],y)?(v.push([g=+x.call(this,h,y),p=+b.call(this,h,y)]),m.push([+_.call(this,h,y),+w.call(this,h,y)])):v.length&&(c(),v=[],m=[]);return v.length&&c(),d.length?d.join(""):null}var e=Ue,r=Ue,u=0,i=Ve,o=Vt,a=Ze,c=a.key,l=a,s="L",f=.7;return t.x=function(n){return arguments.length?(e=r=n,t):r},t.x0=function(n){return arguments.length?(e=n,t):e},t.x1=function(n){return arguments.length?(r=n,t):r},t.y=function(n){return arguments.length?(u=i=n,t):i},t.y0=function(n){return arguments.length?(u=n,t):u},t.y1=function(n){return arguments.length?(i=n,t):i},t.defined=function(n){return arguments.length?(o=n,t):o},t.interpolate=function(n){return arguments.length?(c="function"==typeof n?a=n:(a=fc.get(n)||Ze).key,l=a.reverse||a,s=a.closed?"M":"L",t):c},t.tension=function(n){return arguments.length?(f=n,t):f},t}function yi(n){return n.radius}function Mi(n){return[n.x,n.y]}function xi(n){return function(){var t=n.apply(this,arguments),e=t[0],r=t[1]+jc;return[e*Math.cos(r),e*Math.sin(r)]}}function bi(){return 64}function _i(){return"circle"}function wi(n){var t=Math.sqrt(n/Bo);return"M0,"+t+"A"+t+","+t+" 0 1,1 0,"+-t+"A"+t+","+t+" 0 1,1 0,"+t+"Z"}function Si(n,t){return jo(n,Yc),n.id=t,n}function Ei(){var n=this.__transition__;n&&++n.active}function ki(n,t,e,r){var u=n.id;return N(n,"function"==typeof e?function(n,i,o){n.__transition__[u].tween.set(t,r(e.call(n,n.__data__,i,o)))}:(e=r(e),function(n){n.__transition__[u].tween.set(t,e)}))}function Ai(n){return null==n&&(n=""),function(){this.textContent=n}}function Ni(n,t,e,r){var i=n.__transition__||(n.__transition__={active:0,count:0}),o=i[e];if(!o){var a=r.time;o=i[e]={tween:new u,time:a,ease:r.ease,delay:r.delay,duration:r.duration},++i.count,vo.timer(function(r){function u(r){return i.active>e?l():(i.active=e,o.event&&o.event.start.call(n,s,t),o.tween.forEach(function(e,r){(r=r.call(n,s,t))&&p.push(r)}),c(r)?1:(Mt(c,0,a),void 0))}function c(r){if(i.active!==e)return l();for(var u=(r-h)/g,a=f(u),c=p.length;c>0;)p[--c].call(n,a);return u>=1?(o.event&&o.event.end.call(n,s,t),l()):void 0}function l(){return--i.count?delete i[e]:delete n.__transition__,1}var s=n.__data__,f=o.ease,h=o.delay,g=o.duration,p=[];return r>=h?u(r):(Mt(u,h,a),void 0)},0,a)}}function qi(n,t){n.attr("transform",function(n){return"translate("+t(n)+",0)"})}function Ti(n,t){n.attr("transform",function(n){return"translate(0,"+t(n)+")"})}function zi(){this._=new Date(arguments.length>1?Date.UTC.apply(this,arguments):arguments[0])}function Ci(n,t,e){function r(t){var e=n(t),r=i(e,1);return r-t>t-e?e:r}function u(e){return t(e=n(new $c(e-1)),1),e}function i(n,e){return t(n=new $c(+n),e),n}function o(n,r,i){var o=u(n),a=[];if(i>1)for(;r>o;)e(o)%i||a.push(new Date(+o)),t(o,1);else for(;r>o;)a.push(new Date(+o)),t(o,1);return a}function a(n,t,e){try{$c=zi;var r=new zi;return r._=n,o(r,t,e)}finally{$c=Date}}n.floor=n,n.round=r,n.ceil=u,n.offset=i,n.range=o;var c=n.utc=Di(n);return c.floor=c,c.round=Di(r),c.ceil=Di(u),c.offset=Di(i),c.range=a,n}function Di(n){return function(t,e){try{$c=zi;var r=new zi;return r._=t,n(r,e)._}finally{$c=Date}}}function ji(n){function t(t){for(var r,u,i,o=[],a=-1,c=0;++a<e;)37===n.charCodeAt(a)&&(o.push(n.substring(c,a)),null!=(u=gl[r=n.charAt(++a)])&&(r=n.charAt(++a)),(i=pl[r])&&(r=i(t,null==u?"e"===r?" ":"0":u)),o.push(r),c=a+1);return o.push(n.substring(c,a)),o.join("")}var e=n.length;return t.parse=function(t){var e={y:1900,m:0,d:1,H:0,M:0,S:0,L:0},r=Li(e,n,t,0);if(r!=t.length)return null;"p"in e&&(e.H=e.H%12+12*e.p);var u=new $c;return"j"in e?u.setFullYear(e.y,0,e.j):"w"in e&&("W"in e||"U"in e)?(u.setFullYear(e.y,0,1),u.setFullYear(e.y,0,"W"in e?(e.w+6)%7+7*e.W-(u.getDay()+5)%7:e.w+7*e.U-(u.getDay()+6)%7)):u.setFullYear(e.y,e.m,e.d),u.setHours(e.H,e.M,e.S,e.L),u},t.toString=function(){return n},t}function Li(n,t,e,r){for(var u,i,o,a=0,c=t.length,l=e.length;c>a;){if(r>=l)return-1;if(u=t.charCodeAt(a++),37===u){if(o=t.charAt(a++),i=dl[o in gl?t.charAt(a++):o],!i||(r=i(n,e,r))<0)return-1}else if(u!=e.charCodeAt(r++))return-1}return r}function Hi(n){return new RegExp("^(?:"+n.map(vo.requote).join("|")+")","i")}function Fi(n){for(var t=new u,e=-1,r=n.length;++e<r;)t.set(n[e].toLowerCase(),e);return t}function Pi(n,t,e){var r=0>n?"-":"",u=(r?-n:n)+"",i=u.length;return r+(e>i?new Array(e-i+1).join(t)+u:u)}function Oi(n,t,e){ol.lastIndex=0;var r=ol.exec(t.substring(e));return r?(n.w=al.get(r[0].toLowerCase()),e+r[0].length):-1}function Ri(n,t,e){ul.lastIndex=0;var r=ul.exec(t.substring(e));return r?(n.w=il.get(r[0].toLowerCase()),e+r[0].length):-1}function Yi(n,t,e){vl.lastIndex=0;var r=vl.exec(t.substring(e,e+1));return r?(n.w=+r[0],e+r[0].length):-1}function Ii(n,t,e){vl.lastIndex=0;var r=vl.exec(t.substring(e));return r?(n.U=+r[0],e+r[0].length):-1}function Ui(n,t,e){vl.lastIndex=0;var r=vl.exec(t.substring(e));return r?(n.W=+r[0],e+r[0].length):-1}function Vi(n,t,e){sl.lastIndex=0;var r=sl.exec(t.substring(e));return r?(n.m=fl.get(r[0].toLowerCase()),e+r[0].length):-1}function Zi(n,t,e){cl.lastIndex=0;var r=cl.exec(t.substring(e));return r?(n.m=ll.get(r[0].toLowerCase()),e+r[0].length):-1}function Xi(n,t,e){return Li(n,pl.c.toString(),t,e)}function Bi(n,t,e){return Li(n,pl.x.toString(),t,e)}function $i(n,t,e){return Li(n,pl.X.toString(),t,e)}function Wi(n,t,e){vl.lastIndex=0;var r=vl.exec(t.substring(e,e+4));return r?(n.y=+r[0],e+r[0].length):-1}function Ji(n,t,e){vl.lastIndex=0;var r=vl.exec(t.substring(e,e+2));return r?(n.y=Gi(+r[0]),e+r[0].length):-1}function Gi(n){return n+(n>68?1900:2e3)}function Ki(n,t,e){vl.lastIndex=0;var r=vl.exec(t.substring(e,e+2));return r?(n.m=r[0]-1,e+r[0].length):-1}function Qi(n,t,e){vl.lastIndex=0;var r=vl.exec(t.substring(e,e+2));return r?(n.d=+r[0],e+r[0].length):-1}function no(n,t,e){vl.lastIndex=0;var r=vl.exec(t.substring(e,e+3));return r?(n.j=+r[0],e+r[0].length):-1}function to(n,t,e){vl.lastIndex=0;var r=vl.exec(t.substring(e,e+2));return r?(n.H=+r[0],e+r[0].length):-1}function eo(n,t,e){vl.lastIndex=0;var r=vl.exec(t.substring(e,e+2));return r?(n.M=+r[0],e+r[0].length):-1}function ro(n,t,e){vl.lastIndex=0;var r=vl.exec(t.substring(e,e+2));return r?(n.S=+r[0],e+r[0].length):-1}function uo(n,t,e){vl.lastIndex=0;var r=vl.exec(t.substring(e,e+3));return r?(n.L=+r[0],e+r[0].length):-1}function io(n,t,e){var r=ml.get(t.substring(e,e+=2).toLowerCase());return null==r?-1:(n.p=r,e)}function oo(n){var t=n.getTimezoneOffset(),e=t>0?"-":"+",r=~~(Math.abs(t)/60),u=Math.abs(t)%60;return e+Pi(r,"0",2)+Pi(u,"0",2)}function ao(n,t,e){hl.lastIndex=0;var r=hl.exec(t.substring(e,e+1));return r?e+r[0].length:-1}function co(n){function t(n){try{$c=zi;var t=new $c;return t._=n,e(t)}finally{$c=Date}}var e=ji(n);return t.parse=function(n){try{$c=zi;var t=e.parse(n);return t&&t._}finally{$c=Date}},t.toString=e.toString,t}function lo(n){return n.toISOString()}function so(n,t,e){function r(t){return n(t)}function u(n,e){var r=n[1]-n[0],u=r/e,i=vo.bisect(Ml,u);return i==Ml.length?[t.year,ti(n.map(function(n){return n/31536e6}),e)[2]]:i?t[u/Ml[i-1]<Ml[i]/u?i-1:i]:[wl,ti(n,e)[2]]}return r.invert=function(t){return fo(n.invert(t))},r.domain=function(t){return arguments.length?(n.domain(t),r):n.domain().map(fo)},r.nice=function(n,t){function e(e){return!isNaN(e)&&!n.range(e,fo(+e+1),t).length}var i=r.domain(),o=Xu(i),a=null==n?u(o,10):"number"==typeof n&&u(o,n);return a&&(n=a[0],t=a[1]),r.domain(Wu(i,t>1?{floor:function(t){for(;e(t=n.floor(t));)t=fo(t-1);return t},ceil:function(t){for(;e(t=n.ceil(t));)t=fo(+t+1);return t}}:n))},r.ticks=function(n,t){var e=Xu(r.domain()),i=null==n?u(e,10):"number"==typeof n?u(e,n):!n.range&&[{range:n},t];return i&&(n=i[0],t=i[1]),n.range(e[0],fo(+e[1]+1),t)},r.tickFormat=function(){return e},r.copy=function(){return so(n.copy(),t,e)},Qu(r,n)}function fo(n){return new Date(n)}function ho(n){return function(t){for(var e=n.length-1,r=n[e];!r[1](t);)r=n[--e];return r[0](t)}}function go(n){return JSON.parse(n.responseText)}function po(n){var t=Mo.createRange();return t.selectNode(Mo.body),t.createContextualFragment(n.responseText)}var vo={version:"3.3.1"};Date.now||(Date.now=function(){return+new Date});var mo=[].slice,yo=function(n){return mo.call(n)},Mo=document,xo=Mo.documentElement,bo=window;try{yo(xo.childNodes)[0].nodeType}catch(_o){yo=function(n){for(var t=n.length,e=new Array(t);t--;)e[t]=n[t];return e}}try{Mo.createElement("div").style.setProperty("opacity",0,"")}catch(wo){var So=bo.Element.prototype,Eo=So.setAttribute,ko=So.setAttributeNS,Ao=bo.CSSStyleDeclaration.prototype,No=Ao.setProperty;So.setAttribute=function(n,t){Eo.call(this,n,t+"")},So.setAttributeNS=function(n,t,e){ko.call(this,n,t,e+"")},Ao.setProperty=function(n,t,e){No.call(this,n,t+"",e)}}vo.ascending=function(n,t){return t>n?-1:n>t?1:n>=t?0:0/0},vo.descending=function(n,t){return n>t?-1:t>n?1:t>=n?0:0/0},vo.min=function(n,t){var e,r,u=-1,i=n.length;if(1===arguments.length){for(;++u<i&&!(null!=(e=n[u])&&e>=e);)e=void 0;for(;++u<i;)null!=(r=n[u])&&e>r&&(e=r)}else{for(;++u<i&&!(null!=(e=t.call(n,n[u],u))&&e>=e);)e=void 0;for(;++u<i;)null!=(r=t.call(n,n[u],u))&&e>r&&(e=r)}return e},vo.max=function(n,t){var e,r,u=-1,i=n.length;if(1===arguments.length){for(;++u<i&&!(null!=(e=n[u])&&e>=e);)e=void 0;for(;++u<i;)null!=(r=n[u])&&r>e&&(e=r)}else{for(;++u<i&&!(null!=(e=t.call(n,n[u],u))&&e>=e);)e=void 0;for(;++u<i;)null!=(r=t.call(n,n[u],u))&&r>e&&(e=r)}return e},vo.extent=function(n,t){var e,r,u,i=-1,o=n.length;if(1===arguments.length){for(;++i<o&&!(null!=(e=u=n[i])&&e>=e);)e=u=void 0;for(;++i<o;)null!=(r=n[i])&&(e>r&&(e=r),r>u&&(u=r))}else{for(;++i<o&&!(null!=(e=u=t.call(n,n[i],i))&&e>=e);)e=void 0;for(;++i<o;)null!=(r=t.call(n,n[i],i))&&(e>r&&(e=r),r>u&&(u=r))}return[e,u]},vo.sum=function(n,t){var e,r=0,u=n.length,i=-1;if(1===arguments.length)for(;++i<u;)isNaN(e=+n[i])||(r+=e);else for(;++i<u;)isNaN(e=+t.call(n,n[i],i))||(r+=e);return r},vo.mean=function(t,e){var r,u=t.length,i=0,o=-1,a=0;if(1===arguments.length)for(;++o<u;)n(r=t[o])&&(i+=(r-i)/++a);else for(;++o<u;)n(r=e.call(t,t[o],o))&&(i+=(r-i)/++a);return a?i:void 0},vo.quantile=function(n,t){var e=(n.length-1)*t+1,r=Math.floor(e),u=+n[r-1],i=e-r;return i?u+i*(n[r]-u):u},vo.median=function(t,e){return arguments.length>1&&(t=t.map(e)),t=t.filter(n),t.length?vo.quantile(t.sort(vo.ascending),.5):void 0},vo.bisector=function(n){return{left:function(t,e,r,u){for(arguments.length<3&&(r=0),arguments.length<4&&(u=t.length);u>r;){var i=r+u>>>1;n.call(t,t[i],i)<e?r=i+1:u=i}return r},right:function(t,e,r,u){for(arguments.length<3&&(r=0),arguments.length<4&&(u=t.length);u>r;){var i=r+u>>>1;e<n.call(t,t[i],i)?u=i:r=i+1}return r}}};var qo=vo.bisector(function(n){return n});vo.bisectLeft=qo.left,vo.bisect=vo.bisectRight=qo.right,vo.shuffle=function(n){for(var t,e,r=n.length;r;)e=0|Math.random()*r--,t=n[r],n[r]=n[e],n[e]=t;return n},vo.permute=function(n,t){for(var e=t.length,r=new Array(e);e--;)r[e]=n[t[e]];return r},vo.pairs=function(n){for(var t,e=0,r=n.length-1,u=n[0],i=new Array(0>r?0:r);r>e;)i[e]=[t=u,u=n[++e]];return i},vo.zip=function(){if(!(u=arguments.length))return[];for(var n=-1,e=vo.min(arguments,t),r=new Array(e);++n<e;)for(var u,i=-1,o=r[n]=new Array(u);++i<u;)o[i]=arguments[i][n];return r},vo.transpose=function(n){return vo.zip.apply(vo,n)},vo.keys=function(n){var t=[];for(var e in n)t.push(e);return t},vo.values=function(n){var t=[];for(var e in n)t.push(n[e]);return t},vo.entries=function(n){var t=[];for(var e in n)t.push({key:e,value:n[e]});return t},vo.merge=function(n){return Array.prototype.concat.apply([],n)},vo.range=function(n,t,r){if(arguments.length<3&&(r=1,arguments.length<2&&(t=n,n=0)),1/0===(t-n)/r)throw new Error("infinite range");var u,i=[],o=e(Math.abs(r)),a=-1;if(n*=o,t*=o,r*=o,0>r)for(;(u=n+r*++a)>t;)i.push(u/o);
21
- else for(;(u=n+r*++a)<t;)i.push(u/o);return i},vo.map=function(n){var t=new u;if(n instanceof u)n.forEach(function(n,e){t.set(n,e)});else for(var e in n)t.set(e,n[e]);return t},r(u,{has:function(n){return To+n in this},get:function(n){return this[To+n]},set:function(n,t){return this[To+n]=t},remove:function(n){return n=To+n,n in this&&delete this[n]},keys:function(){var n=[];return this.forEach(function(t){n.push(t)}),n},values:function(){var n=[];return this.forEach(function(t,e){n.push(e)}),n},entries:function(){var n=[];return this.forEach(function(t,e){n.push({key:t,value:e})}),n},forEach:function(n){for(var t in this)t.charCodeAt(0)===zo&&n.call(this,t.substring(1),this[t])}});var To="\0",zo=To.charCodeAt(0);vo.nest=function(){function n(t,a,c){if(c>=o.length)return r?r.call(i,a):e?a.sort(e):a;for(var l,s,f,h,g=-1,p=a.length,d=o[c++],v=new u;++g<p;)(h=v.get(l=d(s=a[g])))?h.push(s):v.set(l,[s]);return t?(s=t(),f=function(e,r){s.set(e,n(t,r,c))}):(s={},f=function(e,r){s[e]=n(t,r,c)}),v.forEach(f),s}function t(n,e){if(e>=o.length)return n;var r=[],u=a[e++];return n.forEach(function(n,u){r.push({key:n,values:t(u,e)})}),u?r.sort(function(n,t){return u(n.key,t.key)}):r}var e,r,i={},o=[],a=[];return i.map=function(t,e){return n(e,t,0)},i.entries=function(e){return t(n(vo.map,e,0),0)},i.key=function(n){return o.push(n),i},i.sortKeys=function(n){return a[o.length-1]=n,i},i.sortValues=function(n){return e=n,i},i.rollup=function(n){return r=n,i},i},vo.set=function(n){var t=new i;if(n)for(var e=0,r=n.length;r>e;++e)t.add(n[e]);return t},r(i,{has:function(n){return To+n in this},add:function(n){return this[To+n]=!0,n},remove:function(n){return n=To+n,n in this&&delete this[n]},values:function(){var n=[];return this.forEach(function(t){n.push(t)}),n},forEach:function(n){for(var t in this)t.charCodeAt(0)===zo&&n.call(this,t.substring(1))}}),vo.behavior={},vo.rebind=function(n,t){for(var e,r=1,u=arguments.length;++r<u;)n[e=arguments[r]]=o(n,t,t[e]);return n};var Co=["webkit","ms","moz","Moz","o","O"];vo.dispatch=function(){for(var n=new l,t=-1,e=arguments.length;++t<e;)n[arguments[t]]=s(n);return n},l.prototype.on=function(n,t){var e=n.indexOf("."),r="";if(e>=0&&(r=n.substring(e+1),n=n.substring(0,e)),n)return arguments.length<2?this[n].on(r):this[n].on(r,t);if(2===arguments.length){if(null==t)for(n in this)this.hasOwnProperty(n)&&this[n].on(r,null);return this}},vo.event=null,vo.requote=function(n){return n.replace(Do,"\\$&")};var Do=/[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g,jo={}.__proto__?function(n,t){n.__proto__=t}:function(n,t){for(var e in t)n[e]=t[e]},Lo=function(n,t){return t.querySelector(n)},Ho=function(n,t){return t.querySelectorAll(n)},Fo=xo[a(xo,"matchesSelector")],Po=function(n,t){return Fo.call(n,t)};"function"==typeof Sizzle&&(Lo=function(n,t){return Sizzle(n,t)[0]||null},Ho=function(n,t){return Sizzle.uniqueSort(Sizzle(n,t))},Po=Sizzle.matchesSelector),vo.selection=function(){return Io};var Oo=vo.selection.prototype=[];Oo.select=function(n){var t,e,r,u,i=[];n=d(n);for(var o=-1,a=this.length;++o<a;){i.push(t=[]),t.parentNode=(r=this[o]).parentNode;for(var c=-1,l=r.length;++c<l;)(u=r[c])?(t.push(e=n.call(u,u.__data__,c,o)),e&&"__data__"in u&&(e.__data__=u.__data__)):t.push(null)}return p(i)},Oo.selectAll=function(n){var t,e,r=[];n=v(n);for(var u=-1,i=this.length;++u<i;)for(var o=this[u],a=-1,c=o.length;++a<c;)(e=o[a])&&(r.push(t=yo(n.call(e,e.__data__,a,u))),t.parentNode=e);return p(r)};var Ro={svg:"http://www.w3.org/2000/svg",xhtml:"http://www.w3.org/1999/xhtml",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};vo.ns={prefix:Ro,qualify:function(n){var t=n.indexOf(":"),e=n;return t>=0&&(e=n.substring(0,t),n=n.substring(t+1)),Ro.hasOwnProperty(e)?{space:Ro[e],local:n}:n}},Oo.attr=function(n,t){if(arguments.length<2){if("string"==typeof n){var e=this.node();return n=vo.ns.qualify(n),n.local?e.getAttributeNS(n.space,n.local):e.getAttribute(n)}for(t in n)this.each(m(t,n[t]));return this}return this.each(m(n,t))},Oo.classed=function(n,t){if(arguments.length<2){if("string"==typeof n){var e=this.node(),r=(n=n.trim().split(/^|\s+/g)).length,u=-1;if(t=e.classList){for(;++u<r;)if(!t.contains(n[u]))return!1}else for(t=e.getAttribute("class");++u<r;)if(!M(n[u]).test(t))return!1;return!0}for(t in n)this.each(x(t,n[t]));return this}return this.each(x(n,t))},Oo.style=function(n,t,e){var r=arguments.length;if(3>r){if("string"!=typeof n){2>r&&(t="");for(e in n)this.each(_(e,n[e],t));return this}if(2>r)return bo.getComputedStyle(this.node(),null).getPropertyValue(n);e=""}return this.each(_(n,t,e))},Oo.property=function(n,t){if(arguments.length<2){if("string"==typeof n)return this.node()[n];for(t in n)this.each(w(t,n[t]));return this}return this.each(w(n,t))},Oo.text=function(n){return arguments.length?this.each("function"==typeof n?function(){var t=n.apply(this,arguments);this.textContent=null==t?"":t}:null==n?function(){this.textContent=""}:function(){this.textContent=n}):this.node().textContent},Oo.html=function(n){return arguments.length?this.each("function"==typeof n?function(){var t=n.apply(this,arguments);this.innerHTML=null==t?"":t}:null==n?function(){this.innerHTML=""}:function(){this.innerHTML=n}):this.node().innerHTML},Oo.append=function(n){return n=S(n),this.select(function(){return this.appendChild(n.apply(this,arguments))})},Oo.insert=function(n,t){return n=S(n),t=d(t),this.select(function(){return this.insertBefore(n.apply(this,arguments),t.apply(this,arguments))})},Oo.remove=function(){return this.each(function(){var n=this.parentNode;n&&n.removeChild(this)})},Oo.data=function(n,t){function e(n,e){var r,i,o,a=n.length,f=e.length,h=Math.min(a,f),g=new Array(f),p=new Array(f),d=new Array(a);if(t){var v,m=new u,y=new u,M=[];for(r=-1;++r<a;)v=t.call(i=n[r],i.__data__,r),m.has(v)?d[r]=i:m.set(v,i),M.push(v);for(r=-1;++r<f;)v=t.call(e,o=e[r],r),(i=m.get(v))?(g[r]=i,i.__data__=o):y.has(v)||(p[r]=E(o)),y.set(v,o),m.remove(v);for(r=-1;++r<a;)m.has(M[r])&&(d[r]=n[r])}else{for(r=-1;++r<h;)i=n[r],o=e[r],i?(i.__data__=o,g[r]=i):p[r]=E(o);for(;f>r;++r)p[r]=E(e[r]);for(;a>r;++r)d[r]=n[r]}p.update=g,p.parentNode=g.parentNode=d.parentNode=n.parentNode,c.push(p),l.push(g),s.push(d)}var r,i,o=-1,a=this.length;if(!arguments.length){for(n=new Array(a=(r=this[0]).length);++o<a;)(i=r[o])&&(n[o]=i.__data__);return n}var c=q([]),l=p([]),s=p([]);if("function"==typeof n)for(;++o<a;)e(r=this[o],n.call(r,r.parentNode.__data__,o));else for(;++o<a;)e(r=this[o],n);return l.enter=function(){return c},l.exit=function(){return s},l},Oo.datum=function(n){return arguments.length?this.property("__data__",n):this.property("__data__")},Oo.filter=function(n){var t,e,r,u=[];"function"!=typeof n&&(n=k(n));for(var i=0,o=this.length;o>i;i++){u.push(t=[]),t.parentNode=(e=this[i]).parentNode;for(var a=0,c=e.length;c>a;a++)(r=e[a])&&n.call(r,r.__data__,a)&&t.push(r)}return p(u)},Oo.order=function(){for(var n=-1,t=this.length;++n<t;)for(var e,r=this[n],u=r.length-1,i=r[u];--u>=0;)(e=r[u])&&(i&&i!==e.nextSibling&&i.parentNode.insertBefore(e,i),i=e);return this},Oo.sort=function(n){n=A.apply(this,arguments);for(var t=-1,e=this.length;++t<e;)this[t].sort(n);return this.order()},Oo.each=function(n){return N(this,function(t,e,r){n.call(t,t.__data__,e,r)})},Oo.call=function(n){var t=yo(arguments);return n.apply(t[0]=this,t),this},Oo.empty=function(){return!this.node()},Oo.node=function(){for(var n=0,t=this.length;t>n;n++)for(var e=this[n],r=0,u=e.length;u>r;r++){var i=e[r];if(i)return i}return null},Oo.size=function(){var n=0;return this.each(function(){++n}),n};var Yo=[];vo.selection.enter=q,vo.selection.enter.prototype=Yo,Yo.append=Oo.append,Yo.empty=Oo.empty,Yo.node=Oo.node,Yo.call=Oo.call,Yo.size=Oo.size,Yo.select=function(n){for(var t,e,r,u,i,o=[],a=-1,c=this.length;++a<c;){r=(u=this[a]).update,o.push(t=[]),t.parentNode=u.parentNode;for(var l=-1,s=u.length;++l<s;)(i=u[l])?(t.push(r[l]=e=n.call(u.parentNode,i.__data__,l,a)),e.__data__=i.__data__):t.push(null)}return p(o)},Yo.insert=function(n,t){return arguments.length<2&&(t=T(this)),Oo.insert.call(this,n,t)},vo.select=function(n){var t=["string"==typeof n?Lo(n,Mo):n];return t.parentNode=xo,p([t])},vo.selectAll=function(n){var t=yo("string"==typeof n?Ho(n,Mo):n);return t.parentNode=xo,p([t])};var Io=vo.select(xo);Oo.on=function(n,t,e){var r=arguments.length;if(3>r){if("string"!=typeof n){2>r&&(t=!1);for(e in n)this.each(z(e,n[e],t));return this}if(2>r)return(r=this.node()["__on"+n])&&r._;e=!1}return this.each(z(n,t,e))};var Uo=vo.map({mouseenter:"mouseover",mouseleave:"mouseout"});Uo.forEach(function(n){"on"+n in Mo&&Uo.remove(n)});var Vo=a(xo.style,"userSelect"),Zo=0;vo.mouse=function(n){return L(n,h())};var Xo=/WebKit/.test(bo.navigator.userAgent)?-1:0;vo.touches=function(n,t){return arguments.length<2&&(t=h().touches),t?yo(t).map(function(t){var e=L(n,t);return e.identifier=t.identifier,e}):[]},vo.behavior.drag=function(){function n(){this.on("mousedown.drag",o).on("touchstart.drag",a)}function t(){return vo.event.changedTouches[0].identifier}function e(n,t){return vo.touches(n).filter(function(n){return n.identifier===t})[0]}function r(n,t,e,r){return function(){function o(){if(!s)return a();var n=t(s,g),e=n[0]-d[0],r=n[1]-d[1];v|=e|r,d=n,f({type:"drag",x:n[0]+c[0],y:n[1]+c[1],dx:e,dy:r})}function a(){m.on(e+"."+p,null).on(r+"."+p,null),y(v&&vo.event.target===h),f({type:"dragend"})}var c,l=this,s=l.parentNode,f=u.of(l,arguments),h=vo.event.target,g=n(),p=null==g?"drag":"drag-"+g,d=t(s,g),v=0,m=vo.select(bo).on(e+"."+p,o).on(r+"."+p,a),y=j();i?(c=i.apply(l,arguments),c=[c.x-d[0],c.y-d[1]]):c=[0,0],f({type:"dragstart"})}}var u=g(n,"drag","dragstart","dragend"),i=null,o=r(c,vo.mouse,"mousemove","mouseup"),a=r(t,e,"touchmove","touchend");return n.origin=function(t){return arguments.length?(i=t,n):i},vo.rebind(n,u,"on")};var Bo=Math.PI,$o=1e-6,Wo=$o*$o,Jo=Bo/180,Go=180/Bo,Ko=Math.SQRT2,Qo=2,na=4;vo.interpolateZoom=function(n,t){function e(n){var t=n*y;if(m){var e=R(d),o=i/(Qo*h)*(e*Y(Ko*t+d)-O(d));return[r+o*l,u+o*s,i*e/R(Ko*t+d)]}return[r+n*l,u+n*s,i*Math.exp(Ko*t)]}var r=n[0],u=n[1],i=n[2],o=t[0],a=t[1],c=t[2],l=o-r,s=a-u,f=l*l+s*s,h=Math.sqrt(f),g=(c*c-i*i+na*f)/(2*i*Qo*h),p=(c*c-i*i-na*f)/(2*c*Qo*h),d=Math.log(Math.sqrt(g*g+1)-g),v=Math.log(Math.sqrt(p*p+1)-p),m=v-d,y=(m||Math.log(c/i))/Ko;return e.duration=1e3*y,e},vo.behavior.zoom=function(){function n(n){n.on(A,l).on(ra+".zoom",h).on(N,p).on("dblclick.zoom",d).on(T,s)}function t(n){return[(n[0]-S.x)/S.k,(n[1]-S.y)/S.k]}function e(n){return[n[0]*S.k+S.x,n[1]*S.k+S.y]}function r(n){S.k=Math.max(k[0],Math.min(k[1],n))}function u(n,t){t=e(t),S.x+=n[0]-t[0],S.y+=n[1]-t[1]}function i(){b&&b.domain(x.range().map(function(n){return(n-S.x)/S.k}).map(x.invert)),w&&w.domain(_.range().map(function(n){return(n-S.y)/S.k}).map(_.invert))}function o(n){n({type:"zoomstart"})}function a(n){i(),n({type:"zoom",scale:S.k,translate:[S.x,S.y]})}function c(n){n({type:"zoomend"})}function l(){function n(){s=1,u(vo.mouse(r),h),a(i)}function e(){f.on(N,bo===r?p:null).on(q,null),g(s&&vo.event.target===l),c(i)}var r=this,i=D.of(r,arguments),l=vo.event.target,s=0,f=vo.select(bo).on(N,n).on(q,e),h=t(vo.mouse(r)),g=j();Ei.call(r),o(i)}function s(){function n(){var n=vo.touches(d);return p=S.k,g={},n.forEach(function(n){g[n.identifier]=t(n)}),n}function e(){var t=Date.now(),e=n();if(1===e.length){if(500>t-M){var i=e[0],o=g[i.identifier];r(2*S.k),u(i,o),f(),a(v)}M=t}else if(e.length>1){var i=e[0],c=e[1],l=i[0]-c[0],s=i[1]-c[1];m=l*l+s*s}}function i(){var n=vo.touches(d),t=n[0],e=g[t.identifier];if(i=n[1]){var i,o=g[i.identifier],c=vo.event.scale;if(null==c){var l=(l=i[0]-t[0])*l+(l=i[1]-t[1])*l;c=m&&Math.sqrt(l/m)}t=[(t[0]+i[0])/2,(t[1]+i[1])/2],e=[(e[0]+o[0])/2,(e[1]+o[1])/2],r(c*p)}M=null,u(t,e),a(v)}function h(){vo.event.touches.length?n():(y.on(z,null).on(C,null),x.on(A,l).on(T,s),b(),c(v))}var g,p,d=this,v=D.of(d,arguments),m=0,y=vo.select(bo).on(z,i).on(C,h),x=vo.select(d).on(A,null).on(T,e),b=j();Ei.call(d),e(),o(v)}function h(){var n=D.of(this,arguments);y?clearTimeout(y):(Ei.call(this),o(n)),y=setTimeout(function(){y=null,c(n)},50),f();var e=m||vo.mouse(this);v||(v=t(e)),r(Math.pow(2,.002*ta())*S.k),u(e,v),a(n)}function p(){v=null}function d(){var n=D.of(this,arguments),e=vo.mouse(this),i=t(e),l=Math.log(S.k)/Math.LN2;o(n),r(Math.pow(2,vo.event.shiftKey?Math.ceil(l)-1:Math.floor(l)+1)),u(e,i),a(n),c(n)}var v,m,y,M,x,b,_,w,S={x:0,y:0,k:1},E=[960,500],k=ea,A="mousedown.zoom",N="mousemove.zoom",q="mouseup.zoom",T="touchstart.zoom",z="touchmove.zoom",C="touchend.zoom",D=g(n,"zoomstart","zoom","zoomend");return n.event=function(n){n.each(function(){var n=D.of(this,arguments),t=S;Fc?vo.select(this).transition().each("start.zoom",function(){S=this.__chart__||{x:0,y:0,k:1},o(n)}).tween("zoom:zoom",function(){var e=E[0],r=E[1],u=e/2,i=r/2,o=vo.interpolateZoom([(u-S.x)/S.k,(i-S.y)/S.k,e/S.k],[(u-t.x)/t.k,(i-t.y)/t.k,e/t.k]);return function(t){var r=o(t),c=e/r[2];this.__chart__=S={x:u-r[0]*c,y:i-r[1]*c,k:c},a(n)}}).each("end.zoom",function(){c(n)}):(this.__chart__=S,o(n),a(n),c(n))})},n.translate=function(t){return arguments.length?(S={x:+t[0],y:+t[1],k:S.k},i(),n):[S.x,S.y]},n.scale=function(t){return arguments.length?(S={x:S.x,y:S.y,k:+t},i(),n):S.k},n.scaleExtent=function(t){return arguments.length?(k=null==t?ea:[+t[0],+t[1]],n):k},n.center=function(t){return arguments.length?(m=t&&[+t[0],+t[1]],n):m},n.size=function(t){return arguments.length?(E=t&&[+t[0],+t[1]],n):E},n.x=function(t){return arguments.length?(b=t,x=t.copy(),S={x:0,y:0,k:1},n):b},n.y=function(t){return arguments.length?(w=t,_=t.copy(),S={x:0,y:0,k:1},n):w},vo.rebind(n,D,"on")};var ta,ea=[0,1/0],ra="onwheel"in Mo?(ta=function(){return-vo.event.deltaY*(vo.event.deltaMode?120:1)},"wheel"):"onmousewheel"in Mo?(ta=function(){return vo.event.wheelDelta},"mousewheel"):(ta=function(){return-vo.event.detail},"MozMousePixelScroll");U.prototype.toString=function(){return this.rgb()+""},vo.hsl=function(n,t,e){return 1===arguments.length?n instanceof Z?V(n.h,n.s,n.l):ct(""+n,lt,V):V(+n,+t,+e)};var ua=Z.prototype=new U;ua.brighter=function(n){return n=Math.pow(.7,arguments.length?n:1),V(this.h,this.s,this.l/n)},ua.darker=function(n){return n=Math.pow(.7,arguments.length?n:1),V(this.h,this.s,n*this.l)},ua.rgb=function(){return X(this.h,this.s,this.l)},vo.hcl=function(n,t,e){return 1===arguments.length?n instanceof $?B(n.h,n.c,n.l):n instanceof G?Q(n.l,n.a,n.b):Q((n=st((n=vo.rgb(n)).r,n.g,n.b)).l,n.a,n.b):B(+n,+t,+e)};var ia=$.prototype=new U;ia.brighter=function(n){return B(this.h,this.c,Math.min(100,this.l+oa*(arguments.length?n:1)))},ia.darker=function(n){return B(this.h,this.c,Math.max(0,this.l-oa*(arguments.length?n:1)))},ia.rgb=function(){return W(this.h,this.c,this.l).rgb()},vo.lab=function(n,t,e){return 1===arguments.length?n instanceof G?J(n.l,n.a,n.b):n instanceof $?W(n.l,n.c,n.h):st((n=vo.rgb(n)).r,n.g,n.b):J(+n,+t,+e)};var oa=18,aa=.95047,ca=1,la=1.08883,sa=G.prototype=new U;sa.brighter=function(n){return J(Math.min(100,this.l+oa*(arguments.length?n:1)),this.a,this.b)},sa.darker=function(n){return J(Math.max(0,this.l-oa*(arguments.length?n:1)),this.a,this.b)},sa.rgb=function(){return K(this.l,this.a,this.b)},vo.rgb=function(n,t,e){return 1===arguments.length?n instanceof ot?it(n.r,n.g,n.b):ct(""+n,it,X):it(~~n,~~t,~~e)};var fa=ot.prototype=new U;fa.brighter=function(n){n=Math.pow(.7,arguments.length?n:1);var t=this.r,e=this.g,r=this.b,u=30;return t||e||r?(t&&u>t&&(t=u),e&&u>e&&(e=u),r&&u>r&&(r=u),it(Math.min(255,~~(t/n)),Math.min(255,~~(e/n)),Math.min(255,~~(r/n)))):it(u,u,u)},fa.darker=function(n){return n=Math.pow(.7,arguments.length?n:1),it(~~(n*this.r),~~(n*this.g),~~(n*this.b))},fa.hsl=function(){return lt(this.r,this.g,this.b)},fa.toString=function(){return"#"+at(this.r)+at(this.g)+at(this.b)};var ha=vo.map({aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074});ha.forEach(function(n,t){ha.set(n,rt(t))}),vo.functor=gt,vo.xhr=dt(pt),vo.dsv=function(n,t){function e(n,e,i){arguments.length<3&&(i=e,e=null);var o=vo.xhr(n,t,i);return o.row=function(n){return arguments.length?o.response(null==(e=n)?r:u(n)):e},o.row(e)}function r(n){return e.parse(n.responseText)}function u(n){return function(t){return e.parse(t.responseText,n)}}function o(t){return t.map(a).join(n)}function a(n){return c.test(n)?'"'+n.replace(/\"/g,'""')+'"':n}var c=new RegExp('["'+n+"\n]"),l=n.charCodeAt(0);return e.parse=function(n,t){var r;return e.parseRows(n,function(n,e){if(r)return r(n,e-1);var u=new Function("d","return {"+n.map(function(n,t){return JSON.stringify(n)+": d["+t+"]"}).join(",")+"}");r=t?function(n,e){return t(u(n),e)}:u})},e.parseRows=function(n,t){function e(){if(s>=c)return o;if(u)return u=!1,i;var t=s;if(34===n.charCodeAt(t)){for(var e=t;e++<c;)if(34===n.charCodeAt(e)){if(34!==n.charCodeAt(e+1))break;++e}s=e+2;var r=n.charCodeAt(e+1);return 13===r?(u=!0,10===n.charCodeAt(e+2)&&++s):10===r&&(u=!0),n.substring(t+1,e).replace(/""/g,'"')}for(;c>s;){var r=n.charCodeAt(s++),a=1;if(10===r)u=!0;else if(13===r)u=!0,10===n.charCodeAt(s)&&(++s,++a);else if(r!==l)continue;return n.substring(t,s-a)}return n.substring(t)}for(var r,u,i={},o={},a=[],c=n.length,s=0,f=0;(r=e())!==o;){for(var h=[];r!==i&&r!==o;)h.push(r),r=e();(!t||(h=t(h,f++)))&&a.push(h)}return a},e.format=function(t){if(Array.isArray(t[0]))return e.formatRows(t);var r=new i,u=[];return t.forEach(function(n){for(var t in n)r.has(t)||u.push(r.add(t))}),[u.map(a).join(n)].concat(t.map(function(t){return u.map(function(n){return a(t[n])}).join(n)})).join("\n")},e.formatRows=function(n){return n.map(o).join("\n")},e},vo.csv=vo.dsv(",","text/csv"),vo.tsv=vo.dsv(" ","text/tab-separated-values");var ga,pa,da,va,ma,ya=bo[a(bo,"requestAnimationFrame")]||function(n){setTimeout(n,17)};vo.timer=function(n,t,e){var r=arguments.length;2>r&&(t=0),3>r&&(e=Date.now());var u=e+t,i={callback:n,time:u,next:null};pa?pa.next=i:ga=i,pa=i,da||(va=clearTimeout(va),da=1,ya(yt))},vo.timer.flush=function(){xt(),bt()};var Ma=".",xa=",",ba=[3,3],_a="$",wa=["y","z","a","f","p","n","\xb5","m","","k","M","G","T","P","E","Z","Y"].map(_t);vo.formatPrefix=function(n,t){var e=0;return n&&(0>n&&(n*=-1),t&&(n=vo.round(n,wt(n,t))),e=1+Math.floor(1e-12+Math.log(n)/Math.LN10),e=Math.max(-24,Math.min(24,3*Math.floor((0>=e?e+1:e-1)/3)))),wa[8+e/3]},vo.round=function(n,t){return t?Math.round(n*(t=Math.pow(10,t)))/t:Math.round(n)},vo.format=function(n){var t=Sa.exec(n),e=t[1]||" ",r=t[2]||">",u=t[3]||"",i=t[4]||"",o=t[5],a=+t[6],c=t[7],l=t[8],s=t[9],f=1,h="",g=!1;switch(l&&(l=+l.substring(1)),(o||"0"===e&&"="===r)&&(o=e="0",r="=",c&&(a-=Math.floor((a-1)/4))),s){case"n":c=!0,s="g";break;case"%":f=100,h="%",s="f";break;case"p":f=100,h="%",s="r";break;case"b":case"o":case"x":case"X":"#"===i&&(i="0"+s.toLowerCase());case"c":case"d":g=!0,l=0;break;case"s":f=-1,s="r"}"#"===i?i="":"$"===i&&(i=_a),"r"!=s||l||(s="g"),null!=l&&("g"==s?l=Math.max(1,Math.min(21,l)):("e"==s||"f"==s)&&(l=Math.max(0,Math.min(20,l)))),s=Ea.get(s)||St;var p=o&&c;return function(n){if(g&&n%1)return"";var t=0>n||0===n&&0>1/n?(n=-n,"-"):u;if(0>f){var d=vo.formatPrefix(n,l);n=d.scale(n),h=d.symbol}else n*=f;n=s(n,l);var v=n.lastIndexOf("."),m=0>v?n:n.substring(0,v),y=0>v?"":Ma+n.substring(v+1);!o&&c&&(m=ka(m));var M=i.length+m.length+y.length+(p?0:t.length),x=a>M?new Array(M=a-M+1).join(e):"";return p&&(m=ka(x+m)),t+=i,n=m+y,("<"===r?t+n+x:">"===r?x+t+n:"^"===r?x.substring(0,M>>=1)+t+n+x.substring(M):t+(p?n:x+n))+h}};var Sa=/(?:([^{])?([<>=^]))?([+\- ])?([$#])?(0)?(\d+)?(,)?(\.-?\d+)?([a-z%])?/i,Ea=vo.map({b:function(n){return n.toString(2)},c:function(n){return String.fromCharCode(n)},o:function(n){return n.toString(8)},x:function(n){return n.toString(16)},X:function(n){return n.toString(16).toUpperCase()},g:function(n,t){return n.toPrecision(t)},e:function(n,t){return n.toExponential(t)},f:function(n,t){return n.toFixed(t)},r:function(n,t){return(n=vo.round(n,wt(n,t))).toFixed(Math.max(0,Math.min(20,wt(n*(1+1e-15),t))))}}),ka=pt;if(ba){var Aa=ba.length;ka=function(n){for(var t=n.length,e=[],r=0,u=ba[0];t>0&&u>0;)e.push(n.substring(t-=u,t+u)),u=ba[r=(r+1)%Aa];return e.reverse().join(xa)}}vo.geo={},Et.prototype={s:0,t:0,add:function(n){kt(n,this.t,Na),kt(Na.s,this.s,this),this.s?this.t+=Na.t:this.s=Na.t},reset:function(){this.s=this.t=0},valueOf:function(){return this.s}};var Na=new Et;vo.geo.stream=function(n,t){n&&qa.hasOwnProperty(n.type)?qa[n.type](n,t):At(n,t)};var qa={Feature:function(n,t){At(n.geometry,t)},FeatureCollection:function(n,t){for(var e=n.features,r=-1,u=e.length;++r<u;)At(e[r].geometry,t)}},Ta={Sphere:function(n,t){t.sphere()},Point:function(n,t){n=n.coordinates,t.point(n[0],n[1],n[2])},MultiPoint:function(n,t){for(var e=n.coordinates,r=-1,u=e.length;++r<u;)n=e[r],t.point(n[0],n[1],n[2])},LineString:function(n,t){Nt(n.coordinates,t,0)},MultiLineString:function(n,t){for(var e=n.coordinates,r=-1,u=e.length;++r<u;)Nt(e[r],t,0)},Polygon:function(n,t){qt(n.coordinates,t)},MultiPolygon:function(n,t){for(var e=n.coordinates,r=-1,u=e.length;++r<u;)qt(e[r],t)},GeometryCollection:function(n,t){for(var e=n.geometries,r=-1,u=e.length;++r<u;)At(e[r],t)}};vo.geo.area=function(n){return za=0,vo.geo.stream(n,Da),za};var za,Ca=new Et,Da={sphere:function(){za+=4*Bo},point:c,lineStart:c,lineEnd:c,polygonStart:function(){Ca.reset(),Da.lineStart=Tt},polygonEnd:function(){var n=2*Ca;za+=0>n?4*Bo+n:n,Da.lineStart=Da.lineEnd=Da.point=c}};vo.geo.bounds=function(){function n(n,t){M.push(x=[s=n,h=n]),f>t&&(f=t),t>g&&(g=t)}function t(t,e){var r=zt([t*Jo,e*Jo]);if(m){var u=Dt(m,r),i=[u[1],-u[0],0],o=Dt(i,u);Ht(o),o=Ft(o);var c=t-p,l=c>0?1:-1,d=o[0]*Go*l,v=Math.abs(c)>180;if(v^(d>l*p&&l*t>d)){var y=o[1]*Go;y>g&&(g=y)}else if(d=(d+360)%360-180,v^(d>l*p&&l*t>d)){var y=-o[1]*Go;f>y&&(f=y)}else f>e&&(f=e),e>g&&(g=e);v?p>t?a(s,t)>a(s,h)&&(h=t):a(t,h)>a(s,h)&&(s=t):h>=s?(s>t&&(s=t),t>h&&(h=t)):t>p?a(s,t)>a(s,h)&&(h=t):a(t,h)>a(s,h)&&(s=t)}else n(t,e);m=r,p=t}function e(){b.point=t}function r(){x[0]=s,x[1]=h,b.point=n,m=null}function u(n,e){if(m){var r=n-p;y+=Math.abs(r)>180?r+(r>0?360:-360):r}else d=n,v=e;Da.point(n,e),t(n,e)}function i(){Da.lineStart()}function o(){u(d,v),Da.lineEnd(),Math.abs(y)>$o&&(s=-(h=180)),x[0]=s,x[1]=h,m=null}function a(n,t){return(t-=n)<0?t+360:t}function c(n,t){return n[0]-t[0]}function l(n,t){return t[0]<=t[1]?t[0]<=n&&n<=t[1]:n<t[0]||t[1]<n}var s,f,h,g,p,d,v,m,y,M,x,b={point:n,lineStart:e,lineEnd:r,polygonStart:function(){b.point=u,b.lineStart=i,b.lineEnd=o,y=0,Da.polygonStart()},polygonEnd:function(){Da.polygonEnd(),b.point=n,b.lineStart=e,b.lineEnd=r,0>Ca?(s=-(h=180),f=-(g=90)):y>$o?g=90:-$o>y&&(f=-90),x[0]=s,x[1]=h}};return function(n){g=h=-(s=f=1/0),M=[],vo.geo.stream(n,b);var t=M.length;if(t){M.sort(c);for(var e,r=1,u=M[0],i=[u];t>r;++r)e=M[r],l(e[0],u)||l(e[1],u)?(a(u[0],e[1])>a(u[0],u[1])&&(u[1]=e[1]),a(e[0],u[1])>a(u[0],u[1])&&(u[0]=e[0])):i.push(u=e);for(var o,e,p=-1/0,t=i.length-1,r=0,u=i[t];t>=r;u=e,++r)e=i[r],(o=a(u[1],e[0]))>p&&(p=o,s=e[0],h=u[1])}return M=x=null,1/0===s||1/0===f?[[0/0,0/0],[0/0,0/0]]:[[s,f],[h,g]]}}(),vo.geo.centroid=function(n){ja=La=Ha=Fa=Pa=Oa=Ra=Ya=Ia=Ua=Va=0,vo.geo.stream(n,Za);var t=Ia,e=Ua,r=Va,u=t*t+e*e+r*r;return Wo>u&&(t=Oa,e=Ra,r=Ya,$o>La&&(t=Ha,e=Fa,r=Pa),u=t*t+e*e+r*r,Wo>u)?[0/0,0/0]:[Math.atan2(e,t)*Go,P(r/Math.sqrt(u))*Go]};var ja,La,Ha,Fa,Pa,Oa,Ra,Ya,Ia,Ua,Va,Za={sphere:c,point:Ot,lineStart:Yt,lineEnd:It,polygonStart:function(){Za.lineStart=Ut},polygonEnd:function(){Za.lineStart=Yt}},Xa=Bt(Vt,Kt,ne,te),Ba=[-Bo,0],$a=1e9;vo.geo.clipExtent=function(){var n,t,e,r,u,i,o={stream:function(n){return u&&(u.valid=!1),u=i(n),u.valid=!0,u},extent:function(a){return arguments.length?(i=re(n=+a[0][0],t=+a[0][1],e=+a[1][0],r=+a[1][1]),u&&(u.valid=!1,u=null),o):[[n,t],[e,r]]}};return o.extent([[0,0],[960,500]])},(vo.geo.conicEqualArea=function(){return oe(ae)}).raw=ae,vo.geo.albers=function(){return vo.geo.conicEqualArea().rotate([96,0]).center([-.6,38.7]).parallels([29.5,45.5]).scale(1070)},vo.geo.albersUsa=function(){function n(n){var i=n[0],o=n[1];return t=null,e(i,o),t||(r(i,o),t)||u(i,o),t}var t,e,r,u,i=vo.geo.albers(),o=vo.geo.conicEqualArea().rotate([154,0]).center([-2,58.5]).parallels([55,65]),a=vo.geo.conicEqualArea().rotate([157,0]).center([-3,19.9]).parallels([8,18]),c={point:function(n,e){t=[n,e]}};return n.invert=function(n){var t=i.scale(),e=i.translate(),r=(n[0]-e[0])/t,u=(n[1]-e[1])/t;return(u>=.12&&.234>u&&r>=-.425&&-.214>r?o:u>=.166&&.234>u&&r>=-.214&&-.115>r?a:i).invert(n)},n.stream=function(n){var t=i.stream(n),e=o.stream(n),r=a.stream(n);return{point:function(n,u){t.point(n,u),e.point(n,u),r.point(n,u)},sphere:function(){t.sphere(),e.sphere(),r.sphere()},lineStart:function(){t.lineStart(),e.lineStart(),r.lineStart()},lineEnd:function(){t.lineEnd(),e.lineEnd(),r.lineEnd()},polygonStart:function(){t.polygonStart(),e.polygonStart(),r.polygonStart()},polygonEnd:function(){t.polygonEnd(),e.polygonEnd(),r.polygonEnd()}}},n.precision=function(t){return arguments.length?(i.precision(t),o.precision(t),a.precision(t),n):i.precision()},n.scale=function(t){return arguments.length?(i.scale(t),o.scale(.35*t),a.scale(t),n.translate(i.translate())):i.scale()},n.translate=function(t){if(!arguments.length)return i.translate();var l=i.scale(),s=+t[0],f=+t[1];return e=i.translate(t).clipExtent([[s-.455*l,f-.238*l],[s+.455*l,f+.238*l]]).stream(c).point,r=o.translate([s-.307*l,f+.201*l]).clipExtent([[s-.425*l+$o,f+.12*l+$o],[s-.214*l-$o,f+.234*l-$o]]).stream(c).point,u=a.translate([s-.205*l,f+.212*l]).clipExtent([[s-.214*l+$o,f+.166*l+$o],[s-.115*l-$o,f+.234*l-$o]]).stream(c).point,n},n.scale(1070)};var Wa,Ja,Ga,Ka,Qa,nc,tc={point:c,lineStart:c,lineEnd:c,polygonStart:function(){Ja=0,tc.lineStart=ce},polygonEnd:function(){tc.lineStart=tc.lineEnd=tc.point=c,Wa+=Math.abs(Ja/2)}},ec={point:le,lineStart:c,lineEnd:c,polygonStart:c,polygonEnd:c},rc={point:he,lineStart:ge,lineEnd:pe,polygonStart:function(){rc.lineStart=de},polygonEnd:function(){rc.point=he,rc.lineStart=ge,rc.lineEnd=pe}};vo.geo.transform=function(n){return{stream:function(t){var e=new ye(t);for(var r in n)e[r]=n[r];return e}}},ye.prototype={point:function(n,t){this.stream.point(n,t)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}},vo.geo.path=function(){function n(n){return n&&("function"==typeof a&&i.pointRadius(+a.apply(this,arguments)),o&&o.valid||(o=u(i)),vo.geo.stream(n,o)),i.result()}function t(){return o=null,n}var e,r,u,i,o,a=4.5;return n.area=function(n){return Wa=0,vo.geo.stream(n,u(tc)),Wa},n.centroid=function(n){return Ha=Fa=Pa=Oa=Ra=Ya=Ia=Ua=Va=0,vo.geo.stream(n,u(rc)),Va?[Ia/Va,Ua/Va]:Ya?[Oa/Ya,Ra/Ya]:Pa?[Ha/Pa,Fa/Pa]:[0/0,0/0]},n.bounds=function(n){return Qa=nc=-(Ga=Ka=1/0),vo.geo.stream(n,u(ec)),[[Ga,Ka],[Qa,nc]]},n.projection=function(n){return arguments.length?(u=(e=n)?n.stream||Me(n):pt,t()):e},n.context=function(n){return arguments.length?(i=null==(r=n)?new se:new ve(n),"function"!=typeof a&&i.pointRadius(a),t()):r},n.pointRadius=function(t){return arguments.length?(a="function"==typeof t?t:(i.pointRadius(+t),+t),n):a},n.projection(vo.geo.albersUsa()).context(null)},vo.geo.projection=xe,vo.geo.projectionMutator=be,(vo.geo.equirectangular=function(){return xe(we)}).raw=we.invert=we,vo.geo.rotation=function(n){function t(t){return t=n(t[0]*Jo,t[1]*Jo),t[0]*=Go,t[1]*=Go,t}return n=Se(n[0]%360*Jo,n[1]*Jo,n.length>2?n[2]*Jo:0),t.invert=function(t){return t=n.invert(t[0]*Jo,t[1]*Jo),t[0]*=Go,t[1]*=Go,t},t},vo.geo.circle=function(){function n(){var n="function"==typeof r?r.apply(this,arguments):r,t=Se(-n[0]*Jo,-n[1]*Jo,0).invert,u=[];return e(null,null,1,{point:function(n,e){u.push(n=t(n,e)),n[0]*=Go,n[1]*=Go}}),{type:"Polygon",coordinates:[u]}}var t,e,r=[0,0],u=6;return n.origin=function(t){return arguments.length?(r=t,n):r},n.angle=function(r){return arguments.length?(e=Ne((t=+r)*Jo,u*Jo),n):t},n.precision=function(r){return arguments.length?(e=Ne(t*Jo,(u=+r)*Jo),n):u},n.angle(90)},vo.geo.distance=function(n,t){var e,r=(t[0]-n[0])*Jo,u=n[1]*Jo,i=t[1]*Jo,o=Math.sin(r),a=Math.cos(r),c=Math.sin(u),l=Math.cos(u),s=Math.sin(i),f=Math.cos(i);return Math.atan2(Math.sqrt((e=f*o)*e+(e=l*s-c*f*a)*e),c*s+l*f*a)},vo.geo.graticule=function(){function n(){return{type:"MultiLineString",coordinates:t()}}function t(){return vo.range(Math.ceil(i/v)*v,u,v).map(h).concat(vo.range(Math.ceil(l/m)*m,c,m).map(g)).concat(vo.range(Math.ceil(r/p)*p,e,p).filter(function(n){return Math.abs(n%v)>$o}).map(s)).concat(vo.range(Math.ceil(a/d)*d,o,d).filter(function(n){return Math.abs(n%m)>$o}).map(f))}var e,r,u,i,o,a,c,l,s,f,h,g,p=10,d=p,v=90,m=360,y=2.5;return n.lines=function(){return t().map(function(n){return{type:"LineString",coordinates:n}})},n.outline=function(){return{type:"Polygon",coordinates:[h(i).concat(g(c).slice(1),h(u).reverse().slice(1),g(l).reverse().slice(1))]}},n.extent=function(t){return arguments.length?n.majorExtent(t).minorExtent(t):n.minorExtent()},n.majorExtent=function(t){return arguments.length?(i=+t[0][0],u=+t[1][0],l=+t[0][1],c=+t[1][1],i>u&&(t=i,i=u,u=t),l>c&&(t=l,l=c,c=t),n.precision(y)):[[i,l],[u,c]]},n.minorExtent=function(t){return arguments.length?(r=+t[0][0],e=+t[1][0],a=+t[0][1],o=+t[1][1],r>e&&(t=r,r=e,e=t),a>o&&(t=a,a=o,o=t),n.precision(y)):[[r,a],[e,o]]
22
- },n.step=function(t){return arguments.length?n.majorStep(t).minorStep(t):n.minorStep()},n.majorStep=function(t){return arguments.length?(v=+t[0],m=+t[1],n):[v,m]},n.minorStep=function(t){return arguments.length?(p=+t[0],d=+t[1],n):[p,d]},n.precision=function(t){return arguments.length?(y=+t,s=Te(a,o,90),f=ze(r,e,y),h=Te(l,c,90),g=ze(i,u,y),n):y},n.majorExtent([[-180,-90+$o],[180,90-$o]]).minorExtent([[-180,-80-$o],[180,80+$o]])},vo.geo.greatArc=function(){function n(){return{type:"LineString",coordinates:[t||r.apply(this,arguments),e||u.apply(this,arguments)]}}var t,e,r=Ce,u=De;return n.distance=function(){return vo.geo.distance(t||r.apply(this,arguments),e||u.apply(this,arguments))},n.source=function(e){return arguments.length?(r=e,t="function"==typeof e?null:e,n):r},n.target=function(t){return arguments.length?(u=t,e="function"==typeof t?null:t,n):u},n.precision=function(){return arguments.length?n:0},n},vo.geo.interpolate=function(n,t){return je(n[0]*Jo,n[1]*Jo,t[0]*Jo,t[1]*Jo)},vo.geo.length=function(n){return uc=0,vo.geo.stream(n,ic),uc};var uc,ic={sphere:c,point:c,lineStart:Le,lineEnd:c,polygonStart:c,polygonEnd:c},oc=He(function(n){return Math.sqrt(2/(1+n))},function(n){return 2*Math.asin(n/2)});(vo.geo.azimuthalEqualArea=function(){return xe(oc)}).raw=oc;var ac=He(function(n){var t=Math.acos(n);return t&&t/Math.sin(t)},pt);(vo.geo.azimuthalEquidistant=function(){return xe(ac)}).raw=ac,(vo.geo.conicConformal=function(){return oe(Fe)}).raw=Fe,(vo.geo.conicEquidistant=function(){return oe(Pe)}).raw=Pe;var cc=He(function(n){return 1/n},Math.atan);(vo.geo.gnomonic=function(){return xe(cc)}).raw=cc,Oe.invert=function(n,t){return[n,2*Math.atan(Math.exp(t))-Bo/2]},(vo.geo.mercator=function(){return Re(Oe)}).raw=Oe;var lc=He(function(){return 1},Math.asin);(vo.geo.orthographic=function(){return xe(lc)}).raw=lc;var sc=He(function(n){return 1/(1+n)},function(n){return 2*Math.atan(n)});(vo.geo.stereographic=function(){return xe(sc)}).raw=sc,Ye.invert=function(n,t){return[Math.atan2(O(n),Math.cos(t)),P(Math.sin(t)/R(n))]},(vo.geo.transverseMercator=function(){return Re(Ye)}).raw=Ye,vo.geom={},vo.svg={},vo.svg.line=function(){return Ie(pt)};var fc=vo.map({linear:Ze,"linear-closed":Xe,step:Be,"step-before":$e,"step-after":We,basis:tr,"basis-open":er,"basis-closed":rr,bundle:ur,cardinal:Ke,"cardinal-open":Je,"cardinal-closed":Ge,monotone:sr});fc.forEach(function(n,t){t.key=n,t.closed=/-closed$/.test(n)});var hc=[0,2/3,1/3,0],gc=[0,1/3,2/3,0],pc=[0,1/6,2/3,1/6];vo.geom.hull=function(n){function t(n){if(n.length<3)return[];var t,u,i,o,a,c,l,s,f,h,g,p,d=gt(e),v=gt(r),m=n.length,y=m-1,M=[],x=[],b=0;if(d===Ue&&r===Ve)t=n;else for(i=0,t=[];m>i;++i)t.push([+d.call(this,u=n[i],i),+v.call(this,u,i)]);for(i=1;m>i;++i)(t[i][1]<t[b][1]||t[i][1]==t[b][1]&&t[i][0]<t[b][0])&&(b=i);for(i=0;m>i;++i)i!==b&&(c=t[i][1]-t[b][1],a=t[i][0]-t[b][0],M.push({angle:Math.atan2(c,a),index:i}));for(M.sort(function(n,t){return n.angle-t.angle}),g=M[0].angle,h=M[0].index,f=0,i=1;y>i;++i){if(o=M[i].index,g==M[i].angle){if(a=t[h][0]-t[b][0],c=t[h][1]-t[b][1],l=t[o][0]-t[b][0],s=t[o][1]-t[b][1],a*a+c*c>=l*l+s*s){M[i].index=-1;continue}M[f].index=-1}g=M[i].angle,f=i,h=o}for(x.push(b),i=0,o=0;2>i;++o)M[o].index>-1&&(x.push(M[o].index),i++);for(p=x.length;y>o;++o)if(!(M[o].index<0)){for(;!fr(x[p-2],x[p-1],M[o].index,t);)--p;x[p++]=M[o].index}var _=[];for(i=p-1;i>=0;--i)_.push(n[x[i]]);return _}var e=Ue,r=Ve;return arguments.length?t(n):(t.x=function(n){return arguments.length?(e=n,t):e},t.y=function(n){return arguments.length?(r=n,t):r},t)},vo.geom.polygon=function(n){return jo(n,dc),n};var dc=vo.geom.polygon.prototype=[];dc.area=function(){for(var n,t=-1,e=this.length,r=this[e-1],u=0;++t<e;)n=r,r=this[t],u+=n[1]*r[0]-n[0]*r[1];return.5*u},dc.centroid=function(n){var t,e,r=-1,u=this.length,i=0,o=0,a=this[u-1];for(arguments.length||(n=-1/(6*this.area()));++r<u;)t=a,a=this[r],e=t[0]*a[1]-a[0]*t[1],i+=(t[0]+a[0])*e,o+=(t[1]+a[1])*e;return[i*n,o*n]},dc.clip=function(n){for(var t,e,r,u,i,o,a=pr(n),c=-1,l=this.length-pr(this),s=this[l-1];++c<l;){for(t=n.slice(),n.length=0,u=this[c],i=t[(r=t.length-a)-1],e=-1;++e<r;)o=t[e],hr(o,s,u)?(hr(i,s,u)||n.push(gr(i,o,s,u)),n.push(o)):hr(i,s,u)&&n.push(gr(i,o,s,u)),i=o;a&&n.push(n[0]),s=u}return n},vo.geom.delaunay=function(n){var t=n.map(function(){return[]}),e=[];return dr(n,function(e){t[e.region.l.index].push(n[e.region.r.index])}),t.forEach(function(t,r){var u=n[r],i=u[0],o=u[1];t.forEach(function(n){n.angle=Math.atan2(n[0]-i,n[1]-o)}),t.sort(function(n,t){return n.angle-t.angle});for(var a=0,c=t.length-1;c>a;a++)e.push([u,t[a],t[a+1]])}),e},vo.geom.voronoi=function(n){function t(n){var t,i,o,a=n.map(function(){return[]}),c=gt(e),l=gt(r),s=n.length,f=1e6;if(c===Ue&&l===Ve)t=n;else for(t=new Array(s),o=0;s>o;++o)t[o]=[+c.call(this,i=n[o],o),+l.call(this,i,o)];if(dr(t,function(n){var t,e,r,u,i,o;1===n.a&&n.b>=0?(t=n.ep.r,e=n.ep.l):(t=n.ep.l,e=n.ep.r),1===n.a?(i=t?t.y:-f,r=n.c-n.b*i,o=e?e.y:f,u=n.c-n.b*o):(r=t?t.x:-f,i=n.c-n.a*r,u=e?e.x:f,o=n.c-n.a*u);var c=[r,i],l=[u,o];a[n.region.l.index].push(c,l),a[n.region.r.index].push(c,l)}),a=a.map(function(n,e){var r=t[e][0],u=t[e][1],i=n.map(function(n){return Math.atan2(n[0]-r,n[1]-u)}),o=vo.range(n.length).sort(function(n,t){return i[n]-i[t]});return o.filter(function(n,t){return!t||i[n]-i[o[t-1]]>$o}).map(function(t){return n[t]})}),a.forEach(function(n,e){var r=n.length;if(!r)return n.push([-f,-f],[-f,f],[f,f],[f,-f]);if(!(r>2)){var u=t[e],i=n[0],o=n[1],a=u[0],c=u[1],l=i[0],s=i[1],h=o[0],g=o[1],p=Math.abs(h-l),d=g-s;if(Math.abs(d)<$o){var v=s>c?-f:f;n.push([-f,v],[f,v])}else if($o>p){var m=l>a?-f:f;n.push([m,-f],[m,f])}else{var v=(l-a)*(g-s)>(h-l)*(s-c)?f:-f,y=Math.abs(d)-p;Math.abs(y)<$o?n.push([0>d?v:-v,v]):(y>0&&(v*=-1),n.push([-f,v],[f,v]))}}}),u)for(o=0;s>o;++o)u.clip(a[o]);for(o=0;s>o;++o)a[o].point=n[o];return a}var e=Ue,r=Ve,u=null;return arguments.length?t(n):(t.x=function(n){return arguments.length?(e=n,t):e},t.y=function(n){return arguments.length?(r=n,t):r},t.clipExtent=function(n){if(!arguments.length)return u&&[u[0],u[2]];if(null==n)u=null;else{var e=+n[0][0],r=+n[0][1],i=+n[1][0],o=+n[1][1];u=vo.geom.polygon([[e,r],[e,o],[i,o],[i,r]])}return t},t.size=function(n){return arguments.length?t.clipExtent(n&&[[0,0],n]):u&&u[2]},t.links=function(n){var t,u,i,o=n.map(function(){return[]}),a=[],c=gt(e),l=gt(r),s=n.length;if(c===Ue&&l===Ve)t=n;else for(t=new Array(s),i=0;s>i;++i)t[i]=[+c.call(this,u=n[i],i),+l.call(this,u,i)];return dr(t,function(t){var e=t.region.l.index,r=t.region.r.index;o[e][r]||(o[e][r]=o[r][e]=!0,a.push({source:n[e],target:n[r]}))}),a},t.triangles=function(n){if(e===Ue&&r===Ve)return vo.geom.delaunay(n);for(var t,u=new Array(c),i=gt(e),o=gt(r),a=-1,c=n.length;++a<c;)(u[a]=[+i.call(this,t=n[a],a),+o.call(this,t,a)]).data=t;return vo.geom.delaunay(u).map(function(n){return n.map(function(n){return n.data})})},t)};var vc={l:"r",r:"l"};vo.geom.quadtree=function(n,t,e,r,u){function i(n){function i(n,t,e,r,u,i,o,a){if(!isNaN(e)&&!isNaN(r))if(n.leaf){var c=n.x,s=n.y;if(null!=c)if(Math.abs(c-e)+Math.abs(s-r)<.01)l(n,t,e,r,u,i,o,a);else{var f=n.point;n.x=n.y=n.point=null,l(n,f,c,s,u,i,o,a),l(n,t,e,r,u,i,o,a)}else n.x=e,n.y=r,n.point=t}else l(n,t,e,r,u,i,o,a)}function l(n,t,e,r,u,o,a,c){var l=.5*(u+a),s=.5*(o+c),f=e>=l,h=r>=s,g=(h<<1)+f;n.leaf=!1,n=n.nodes[g]||(n.nodes[g]=yr()),f?u=l:a=l,h?o=s:c=s,i(n,t,e,r,u,o,a,c)}var s,f,h,g,p,d,v,m,y,M=gt(a),x=gt(c);if(null!=t)d=t,v=e,m=r,y=u;else if(m=y=-(d=v=1/0),f=[],h=[],p=n.length,o)for(g=0;p>g;++g)s=n[g],s.x<d&&(d=s.x),s.y<v&&(v=s.y),s.x>m&&(m=s.x),s.y>y&&(y=s.y),f.push(s.x),h.push(s.y);else for(g=0;p>g;++g){var b=+M(s=n[g],g),_=+x(s,g);d>b&&(d=b),v>_&&(v=_),b>m&&(m=b),_>y&&(y=_),f.push(b),h.push(_)}var w=m-d,S=y-v;w>S?y=v+w:m=d+S;var E=yr();if(E.add=function(n){i(E,n,+M(n,++g),+x(n,g),d,v,m,y)},E.visit=function(n){Mr(n,E,d,v,m,y)},g=-1,null==t){for(;++g<p;)i(E,n[g],f[g],h[g],d,v,m,y);--g}else n.forEach(E.add);return f=h=n=s=null,E}var o,a=Ue,c=Ve;return(o=arguments.length)?(a=vr,c=mr,3===o&&(u=e,r=t,e=t=0),i(n)):(i.x=function(n){return arguments.length?(a=n,i):a},i.y=function(n){return arguments.length?(c=n,i):c},i.extent=function(n){return arguments.length?(null==n?t=e=r=u=null:(t=+n[0][0],e=+n[0][1],r=+n[1][0],u=+n[1][1]),i):null==t?null:[[t,e],[r,u]]},i.size=function(n){return arguments.length?(null==n?t=e=r=u=null:(t=e=0,r=+n[0],u=+n[1]),i):null==t?null:[r-t,u-e]},i)},vo.interpolateRgb=xr,vo.interpolateObject=br,vo.interpolateNumber=_r,vo.interpolateString=wr;var mc=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g;vo.interpolate=Sr,vo.interpolators=[function(n,t){var e=typeof t;return("string"===e?ha.has(t)||/^(#|rgb\(|hsl\()/.test(t)?xr:wr:t instanceof U?xr:"object"===e?Array.isArray(t)?Er:br:_r)(n,t)}],vo.interpolateArray=Er;var yc=function(){return pt},Mc=vo.map({linear:yc,poly:Cr,quad:function(){return qr},cubic:function(){return Tr},sin:function(){return Dr},exp:function(){return jr},circle:function(){return Lr},elastic:Hr,back:Fr,bounce:function(){return Pr}}),xc=vo.map({"in":pt,out:Ar,"in-out":Nr,"out-in":function(n){return Nr(Ar(n))}});vo.ease=function(n){var t=n.indexOf("-"),e=t>=0?n.substring(0,t):n,r=t>=0?n.substring(t+1):"in";return e=Mc.get(e)||yc,r=xc.get(r)||pt,kr(r(e.apply(null,Array.prototype.slice.call(arguments,1))))},vo.interpolateHcl=Or,vo.interpolateHsl=Rr,vo.interpolateLab=Yr,vo.interpolateRound=Ir,vo.transform=function(n){var t=Mo.createElementNS(vo.ns.prefix.svg,"g");return(vo.transform=function(n){if(null!=n){t.setAttribute("transform",n);var e=t.transform.baseVal.consolidate()}return new Ur(e?e.matrix:bc)})(n)},Ur.prototype.toString=function(){return"translate("+this.translate+")rotate("+this.rotate+")skewX("+this.skew+")scale("+this.scale+")"};var bc={a:1,b:0,c:0,d:1,e:0,f:0};vo.interpolateTransform=Br,vo.layout={},vo.layout.bundle=function(){return function(n){for(var t=[],e=-1,r=n.length;++e<r;)t.push(Jr(n[e]));return t}},vo.layout.chord=function(){function n(){var n,l,f,h,g,p={},d=[],v=vo.range(i),m=[];for(e=[],r=[],n=0,h=-1;++h<i;){for(l=0,g=-1;++g<i;)l+=u[h][g];d.push(l),m.push(vo.range(i)),n+=l}for(o&&v.sort(function(n,t){return o(d[n],d[t])}),a&&m.forEach(function(n,t){n.sort(function(n,e){return a(u[t][n],u[t][e])})}),n=(2*Bo-s*i)/n,l=0,h=-1;++h<i;){for(f=l,g=-1;++g<i;){var y=v[h],M=m[y][g],x=u[y][M],b=l,_=l+=x*n;p[y+"-"+M]={index:y,subindex:M,startAngle:b,endAngle:_,value:x}}r[y]={index:y,startAngle:f,endAngle:l,value:(l-f)/n},l+=s}for(h=-1;++h<i;)for(g=h-1;++g<i;){var w=p[h+"-"+g],S=p[g+"-"+h];(w.value||S.value)&&e.push(w.value<S.value?{source:S,target:w}:{source:w,target:S})}c&&t()}function t(){e.sort(function(n,t){return c((n.source.value+n.target.value)/2,(t.source.value+t.target.value)/2)})}var e,r,u,i,o,a,c,l={},s=0;return l.matrix=function(n){return arguments.length?(i=(u=n)&&u.length,e=r=null,l):u},l.padding=function(n){return arguments.length?(s=n,e=r=null,l):s},l.sortGroups=function(n){return arguments.length?(o=n,e=r=null,l):o},l.sortSubgroups=function(n){return arguments.length?(a=n,e=null,l):a},l.sortChords=function(n){return arguments.length?(c=n,e&&t(),l):c},l.chords=function(){return e||n(),e},l.groups=function(){return r||n(),r},l},vo.layout.force=function(){function n(n){return function(t,e,r,u){if(t.point!==n){var i=t.cx-n.x,o=t.cy-n.y,a=1/Math.sqrt(i*i+o*o);if(d>(u-e)*a){var c=t.charge*a*a;return n.px-=i*c,n.py-=o*c,!0}if(t.point&&isFinite(a)){var c=t.pointCharge*a*a;n.px-=i*c,n.py-=o*c}}return!t.charge}}function t(n){n.px=vo.event.x,n.py=vo.event.y,a.resume()}var e,r,u,i,o,a={},c=vo.dispatch("start","tick","end"),l=[1,1],s=.9,f=_c,h=wc,g=-30,p=.1,d=.8,v=[],m=[];return a.tick=function(){if((r*=.99)<.005)return c.end({type:"end",alpha:r=0}),!0;var t,e,a,f,h,d,y,M,x,b=v.length,_=m.length;for(e=0;_>e;++e)a=m[e],f=a.source,h=a.target,M=h.x-f.x,x=h.y-f.y,(d=M*M+x*x)&&(d=r*i[e]*((d=Math.sqrt(d))-u[e])/d,M*=d,x*=d,h.x-=M*(y=f.weight/(h.weight+f.weight)),h.y-=x*y,f.x+=M*(y=1-y),f.y+=x*y);if((y=r*p)&&(M=l[0]/2,x=l[1]/2,e=-1,y))for(;++e<b;)a=v[e],a.x+=(M-a.x)*y,a.y+=(x-a.y)*y;if(g)for(ru(t=vo.geom.quadtree(v),r,o),e=-1;++e<b;)(a=v[e]).fixed||t.visit(n(a));for(e=-1;++e<b;)a=v[e],a.fixed?(a.x=a.px,a.y=a.py):(a.x-=(a.px-(a.px=a.x))*s,a.y-=(a.py-(a.py=a.y))*s);c.tick({type:"tick",alpha:r})},a.nodes=function(n){return arguments.length?(v=n,a):v},a.links=function(n){return arguments.length?(m=n,a):m},a.size=function(n){return arguments.length?(l=n,a):l},a.linkDistance=function(n){return arguments.length?(f="function"==typeof n?n:+n,a):f},a.distance=a.linkDistance,a.linkStrength=function(n){return arguments.length?(h="function"==typeof n?n:+n,a):h},a.friction=function(n){return arguments.length?(s=+n,a):s},a.charge=function(n){return arguments.length?(g="function"==typeof n?n:+n,a):g},a.gravity=function(n){return arguments.length?(p=+n,a):p},a.theta=function(n){return arguments.length?(d=+n,a):d},a.alpha=function(n){return arguments.length?(n=+n,r?r=n>0?n:0:n>0&&(c.start({type:"start",alpha:r=n}),vo.timer(a.tick)),a):r},a.start=function(){function n(n,r){for(var u,i=t(e),o=-1,a=i.length;++o<a;)if(!isNaN(u=i[o][n]))return u;return Math.random()*r}function t(){if(!c){for(c=[],r=0;p>r;++r)c[r]=[];for(r=0;d>r;++r){var n=m[r];c[n.source.index].push(n.target),c[n.target.index].push(n.source)}}return c[e]}var e,r,c,s,p=v.length,d=m.length,y=l[0],M=l[1];for(e=0;p>e;++e)(s=v[e]).index=e,s.weight=0;for(e=0;d>e;++e)s=m[e],"number"==typeof s.source&&(s.source=v[s.source]),"number"==typeof s.target&&(s.target=v[s.target]),++s.source.weight,++s.target.weight;for(e=0;p>e;++e)s=v[e],isNaN(s.x)&&(s.x=n("x",y)),isNaN(s.y)&&(s.y=n("y",M)),isNaN(s.px)&&(s.px=s.x),isNaN(s.py)&&(s.py=s.y);if(u=[],"function"==typeof f)for(e=0;d>e;++e)u[e]=+f.call(this,m[e],e);else for(e=0;d>e;++e)u[e]=f;if(i=[],"function"==typeof h)for(e=0;d>e;++e)i[e]=+h.call(this,m[e],e);else for(e=0;d>e;++e)i[e]=h;if(o=[],"function"==typeof g)for(e=0;p>e;++e)o[e]=+g.call(this,v[e],e);else for(e=0;p>e;++e)o[e]=g;return a.resume()},a.resume=function(){return a.alpha(.1)},a.stop=function(){return a.alpha(0)},a.drag=function(){return e||(e=vo.behavior.drag().origin(pt).on("dragstart.force",Qr).on("drag.force",t).on("dragend.force",nu)),arguments.length?(this.on("mouseover.force",tu).on("mouseout.force",eu).call(e),void 0):e},vo.rebind(a,c,"on")};var _c=20,wc=1;vo.layout.hierarchy=function(){function n(t,o,a){var c=u.call(e,t,o);if(t.depth=o,a.push(t),c&&(l=c.length)){for(var l,s,f=-1,h=t.children=[],g=0,p=o+1;++f<l;)s=n(c[f],p,a),s.parent=t,h.push(s),g+=s.value;r&&h.sort(r),i&&(t.value=g)}else i&&(t.value=+i.call(e,t,o)||0);return t}function t(n,r){var u=n.children,o=0;if(u&&(a=u.length))for(var a,c=-1,l=r+1;++c<a;)o+=t(u[c],l);else i&&(o=+i.call(e,n,r)||0);return i&&(n.value=o),o}function e(t){var e=[];return n(t,0,e),e}var r=au,u=iu,i=ou;return e.sort=function(n){return arguments.length?(r=n,e):r},e.children=function(n){return arguments.length?(u=n,e):u},e.value=function(n){return arguments.length?(i=n,e):i},e.revalue=function(n){return t(n,0),n},e},vo.layout.partition=function(){function n(t,e,r,u){var i=t.children;if(t.x=e,t.y=t.depth*u,t.dx=r,t.dy=u,i&&(o=i.length)){var o,a,c,l=-1;for(r=t.value?r/t.value:0;++l<o;)n(a=i[l],e,c=a.value*r,u),e+=c}}function t(n){var e=n.children,r=0;if(e&&(u=e.length))for(var u,i=-1;++i<u;)r=Math.max(r,t(e[i]));return 1+r}function e(e,i){var o=r.call(this,e,i);return n(o[0],0,u[0],u[1]/t(o[0])),o}var r=vo.layout.hierarchy(),u=[1,1];return e.size=function(n){return arguments.length?(u=n,e):u},uu(e,r)},vo.layout.pie=function(){function n(i){var o=i.map(function(e,r){return+t.call(n,e,r)}),a=+("function"==typeof r?r.apply(this,arguments):r),c=(("function"==typeof u?u.apply(this,arguments):u)-a)/vo.sum(o),l=vo.range(i.length);null!=e&&l.sort(e===Sc?function(n,t){return o[t]-o[n]}:function(n,t){return e(i[n],i[t])});var s=[];return l.forEach(function(n){var t;s[n]={data:i[n],value:t=o[n],startAngle:a,endAngle:a+=t*c}}),s}var t=Number,e=Sc,r=0,u=2*Bo;return n.value=function(e){return arguments.length?(t=e,n):t},n.sort=function(t){return arguments.length?(e=t,n):e},n.startAngle=function(t){return arguments.length?(r=t,n):r},n.endAngle=function(t){return arguments.length?(u=t,n):u},n};var Sc={};vo.layout.stack=function(){function n(a,c){var l=a.map(function(e,r){return t.call(n,e,r)}),s=l.map(function(t){return t.map(function(t,e){return[i.call(n,t,e),o.call(n,t,e)]})}),f=e.call(n,s,c);l=vo.permute(l,f),s=vo.permute(s,f);var h,g,p,d=r.call(n,s,c),v=l.length,m=l[0].length;for(g=0;m>g;++g)for(u.call(n,l[0][g],p=d[g],s[0][g][1]),h=1;v>h;++h)u.call(n,l[h][g],p+=s[h-1][g][1],s[h][g][1]);return a}var t=pt,e=hu,r=gu,u=fu,i=lu,o=su;return n.values=function(e){return arguments.length?(t=e,n):t},n.order=function(t){return arguments.length?(e="function"==typeof t?t:Ec.get(t)||hu,n):e},n.offset=function(t){return arguments.length?(r="function"==typeof t?t:kc.get(t)||gu,n):r},n.x=function(t){return arguments.length?(i=t,n):i},n.y=function(t){return arguments.length?(o=t,n):o},n.out=function(t){return arguments.length?(u=t,n):u},n};var Ec=vo.map({"inside-out":function(n){var t,e,r=n.length,u=n.map(pu),i=n.map(du),o=vo.range(r).sort(function(n,t){return u[n]-u[t]}),a=0,c=0,l=[],s=[];for(t=0;r>t;++t)e=o[t],c>a?(a+=i[e],l.push(e)):(c+=i[e],s.push(e));return s.reverse().concat(l)},reverse:function(n){return vo.range(n.length).reverse()},"default":hu}),kc=vo.map({silhouette:function(n){var t,e,r,u=n.length,i=n[0].length,o=[],a=0,c=[];for(e=0;i>e;++e){for(t=0,r=0;u>t;t++)r+=n[t][e][1];r>a&&(a=r),o.push(r)}for(e=0;i>e;++e)c[e]=(a-o[e])/2;return c},wiggle:function(n){var t,e,r,u,i,o,a,c,l,s=n.length,f=n[0],h=f.length,g=[];for(g[0]=c=l=0,e=1;h>e;++e){for(t=0,u=0;s>t;++t)u+=n[t][e][1];for(t=0,i=0,a=f[e][0]-f[e-1][0];s>t;++t){for(r=0,o=(n[t][e][1]-n[t][e-1][1])/(2*a);t>r;++r)o+=(n[r][e][1]-n[r][e-1][1])/a;i+=o*n[t][e][1]}g[e]=c-=u?i/u*a:0,l>c&&(l=c)}for(e=0;h>e;++e)g[e]-=l;return g},expand:function(n){var t,e,r,u=n.length,i=n[0].length,o=1/u,a=[];for(e=0;i>e;++e){for(t=0,r=0;u>t;t++)r+=n[t][e][1];if(r)for(t=0;u>t;t++)n[t][e][1]/=r;else for(t=0;u>t;t++)n[t][e][1]=o}for(e=0;i>e;++e)a[e]=0;return a},zero:gu});vo.layout.histogram=function(){function n(n,i){for(var o,a,c=[],l=n.map(e,this),s=r.call(this,l,i),f=u.call(this,s,l,i),i=-1,h=l.length,g=f.length-1,p=t?1:1/h;++i<g;)o=c[i]=[],o.dx=f[i+1]-(o.x=f[i]),o.y=0;if(g>0)for(i=-1;++i<h;)a=l[i],a>=s[0]&&a<=s[1]&&(o=c[vo.bisect(f,a,1,g)-1],o.y+=p,o.push(n[i]));return c}var t=!0,e=Number,r=Mu,u=mu;return n.value=function(t){return arguments.length?(e=t,n):e},n.range=function(t){return arguments.length?(r=gt(t),n):r},n.bins=function(t){return arguments.length?(u="number"==typeof t?function(n){return yu(n,t)}:gt(t),n):u},n.frequency=function(e){return arguments.length?(t=!!e,n):t},n},vo.layout.tree=function(){function n(n,i){function o(n,t){var r=n.children,u=n._tree;if(r&&(i=r.length)){for(var i,a,l,s=r[0],f=s,h=-1;++h<i;)l=r[h],o(l,a),f=c(l,a,f),a=l;Nu(n);var g=.5*(s._tree.prelim+l._tree.prelim);t?(u.prelim=t._tree.prelim+e(n,t),u.mod=u.prelim-g):u.prelim=g}else t&&(u.prelim=t._tree.prelim+e(n,t))}function a(n,t){n.x=n._tree.prelim+t;var e=n.children;if(e&&(r=e.length)){var r,u=-1;for(t+=n._tree.mod;++u<r;)a(e[u],t)}}function c(n,t,r){if(t){for(var u,i=n,o=n,a=t,c=n.parent.children[0],l=i._tree.mod,s=o._tree.mod,f=a._tree.mod,h=c._tree.mod;a=_u(a),i=bu(i),a&&i;)c=bu(c),o=_u(o),o._tree.ancestor=n,u=a._tree.prelim+f-i._tree.prelim-l+e(a,i),u>0&&(qu(Tu(a,n,r),n,u),l+=u,s+=u),f+=a._tree.mod,l+=i._tree.mod,h+=c._tree.mod,s+=o._tree.mod;a&&!_u(o)&&(o._tree.thread=a,o._tree.mod+=f-s),i&&!bu(c)&&(c._tree.thread=i,c._tree.mod+=l-h,r=n)}return r}var l=t.call(this,n,i),s=l[0];Au(s,function(n,t){n._tree={ancestor:n,prelim:0,mod:0,change:0,shift:0,number:t?t._tree.number+1:0}}),o(s),a(s,-s._tree.prelim);var f=wu(s,Eu),h=wu(s,Su),g=wu(s,ku),p=f.x-e(f,h)/2,d=h.x+e(h,f)/2,v=g.depth||1;return Au(s,u?function(n){n.x*=r[0],n.y=n.depth*r[1],delete n._tree}:function(n){n.x=(n.x-p)/(d-p)*r[0],n.y=n.depth/v*r[1],delete n._tree}),l}var t=vo.layout.hierarchy().sort(null).value(null),e=xu,r=[1,1],u=!1;return n.separation=function(t){return arguments.length?(e=t,n):e},n.size=function(t){return arguments.length?(u=null==(r=t),n):u?null:r},n.nodeSize=function(t){return arguments.length?(u=null!=(r=t),n):u?r:null},uu(n,t)},vo.layout.pack=function(){function n(n,i){var o=e.call(this,n,i),a=o[0],c=u[0],l=u[1],s=null==t?Math.sqrt:"function"==typeof t?t:function(){return t};if(a.x=a.y=0,Au(a,function(n){n.r=+s(n.value)}),Au(a,Lu),r){var f=r*(t?1:Math.max(2*a.r/c,2*a.r/l))/2;Au(a,function(n){n.r+=f}),Au(a,Lu),Au(a,function(n){n.r-=f})}return Pu(a,c/2,l/2,t?1:1/Math.max(2*a.r/c,2*a.r/l)),o}var t,e=vo.layout.hierarchy().sort(zu),r=0,u=[1,1];return n.size=function(t){return arguments.length?(u=t,n):u},n.radius=function(e){return arguments.length?(t=null==e||"function"==typeof e?e:+e,n):t},n.padding=function(t){return arguments.length?(r=+t,n):r},uu(n,e)},vo.layout.cluster=function(){function n(n,i){var o,a=t.call(this,n,i),c=a[0],l=0;Au(c,function(n){var t=n.children;t&&t.length?(n.x=Yu(t),n.y=Ru(t)):(n.x=o?l+=e(n,o):0,n.y=0,o=n)});var s=Iu(c),f=Uu(c),h=s.x-e(s,f)/2,g=f.x+e(f,s)/2;return Au(c,u?function(n){n.x=(n.x-c.x)*r[0],n.y=(c.y-n.y)*r[1]}:function(n){n.x=(n.x-h)/(g-h)*r[0],n.y=(1-(c.y?n.y/c.y:1))*r[1]}),a}var t=vo.layout.hierarchy().sort(null).value(null),e=xu,r=[1,1],u=!1;return n.separation=function(t){return arguments.length?(e=t,n):e},n.size=function(t){return arguments.length?(u=null==(r=t),n):u?null:r},n.nodeSize=function(t){return arguments.length?(u=null!=(r=t),n):u?r:null},uu(n,t)},vo.layout.treemap=function(){function n(n,t){for(var e,r,u=-1,i=n.length;++u<i;)r=(e=n[u]).value*(0>t?0:t),e.area=isNaN(r)||0>=r?0:r}function t(e){var i=e.children;if(i&&i.length){var o,a,c,l=f(e),s=[],h=i.slice(),p=1/0,d="slice"===g?l.dx:"dice"===g?l.dy:"slice-dice"===g?1&e.depth?l.dy:l.dx:Math.min(l.dx,l.dy);for(n(h,l.dx*l.dy/e.value),s.area=0;(c=h.length)>0;)s.push(o=h[c-1]),s.area+=o.area,"squarify"!==g||(a=r(s,d))<=p?(h.pop(),p=a):(s.area-=s.pop().area,u(s,d,l,!1),d=Math.min(l.dx,l.dy),s.length=s.area=0,p=1/0);s.length&&(u(s,d,l,!0),s.length=s.area=0),i.forEach(t)}}function e(t){var r=t.children;if(r&&r.length){var i,o=f(t),a=r.slice(),c=[];for(n(a,o.dx*o.dy/t.value),c.area=0;i=a.pop();)c.push(i),c.area+=i.area,null!=i.z&&(u(c,i.z?o.dx:o.dy,o,!a.length),c.length=c.area=0);r.forEach(e)}}function r(n,t){for(var e,r=n.area,u=0,i=1/0,o=-1,a=n.length;++o<a;)(e=n[o].area)&&(i>e&&(i=e),e>u&&(u=e));return r*=r,t*=t,r?Math.max(t*u*p/r,r/(t*i*p)):1/0}function u(n,t,e,r){var u,i=-1,o=n.length,a=e.x,l=e.y,s=t?c(n.area/t):0;if(t==e.dx){for((r||s>e.dy)&&(s=e.dy);++i<o;)u=n[i],u.x=a,u.y=l,u.dy=s,a+=u.dx=Math.min(e.x+e.dx-a,s?c(u.area/s):0);u.z=!0,u.dx+=e.x+e.dx-a,e.y+=s,e.dy-=s}else{for((r||s>e.dx)&&(s=e.dx);++i<o;)u=n[i],u.x=a,u.y=l,u.dx=s,l+=u.dy=Math.min(e.y+e.dy-l,s?c(u.area/s):0);u.z=!1,u.dy+=e.y+e.dy-l,e.x+=s,e.dx-=s}}function i(r){var u=o||a(r),i=u[0];return i.x=0,i.y=0,i.dx=l[0],i.dy=l[1],o&&a.revalue(i),n([i],i.dx*i.dy/i.value),(o?e:t)(i),h&&(o=u),u}var o,a=vo.layout.hierarchy(),c=Math.round,l=[1,1],s=null,f=Vu,h=!1,g="squarify",p=.5*(1+Math.sqrt(5));return i.size=function(n){return arguments.length?(l=n,i):l},i.padding=function(n){function t(t){var e=n.call(i,t,t.depth);return null==e?Vu(t):Zu(t,"number"==typeof e?[e,e,e,e]:e)}function e(t){return Zu(t,n)}if(!arguments.length)return s;var r;return f=null==(s=n)?Vu:"function"==(r=typeof n)?t:"number"===r?(n=[n,n,n,n],e):e,i},i.round=function(n){return arguments.length?(c=n?Math.round:Number,i):c!=Number},i.sticky=function(n){return arguments.length?(h=n,o=null,i):h},i.ratio=function(n){return arguments.length?(p=n,i):p},i.mode=function(n){return arguments.length?(g=n+"",i):g},uu(i,a)},vo.random={normal:function(n,t){var e=arguments.length;return 2>e&&(t=1),1>e&&(n=0),function(){var e,r,u;do e=2*Math.random()-1,r=2*Math.random()-1,u=e*e+r*r;while(!u||u>1);return n+t*e*Math.sqrt(-2*Math.log(u)/u)}},logNormal:function(){var n=vo.random.normal.apply(vo,arguments);return function(){return Math.exp(n())}},irwinHall:function(n){return function(){for(var t=0,e=0;n>e;e++)t+=Math.random();return t/n}}},vo.scale={};var Ac={floor:pt,ceil:pt};vo.scale.linear=function(){return Ku([0,1],[0,1],Sr,!1)},vo.scale.log=function(){return ui(vo.scale.linear().domain([0,1]),10,!0,[1,10])};var Nc=vo.format(".0e"),qc={floor:function(n){return-Math.ceil(-n)},ceil:function(n){return-Math.floor(-n)}};vo.scale.pow=function(){return ii(vo.scale.linear(),1,[0,1])},vo.scale.sqrt=function(){return vo.scale.pow().exponent(.5)},vo.scale.ordinal=function(){return ai([],{t:"range",a:[[]]})},vo.scale.category10=function(){return vo.scale.ordinal().range(Tc)},vo.scale.category20=function(){return vo.scale.ordinal().range(zc)},vo.scale.category20b=function(){return vo.scale.ordinal().range(Cc)},vo.scale.category20c=function(){return vo.scale.ordinal().range(Dc)};var Tc=[2062260,16744206,2924588,14034728,9725885,9197131,14907330,8355711,12369186,1556175].map(ut),zc=[2062260,11454440,16744206,16759672,2924588,10018698,14034728,16750742,9725885,12955861,9197131,12885140,14907330,16234194,8355711,13092807,12369186,14408589,1556175,10410725].map(ut),Cc=[3750777,5395619,7040719,10264286,6519097,9216594,11915115,13556636,9202993,12426809,15186514,15190932,8666169,11356490,14049643,15177372,8077683,10834324,13528509,14589654].map(ut),Dc=[3244733,7057110,10406625,13032431,15095053,16616764,16625259,16634018,3253076,7652470,10607003,13101504,7695281,10394312,12369372,14342891,6513507,9868950,12434877,14277081].map(ut);vo.scale.quantile=function(){return ci([],[])},vo.scale.quantize=function(){return li(0,1,[0,1])},vo.scale.threshold=function(){return si([.5],[0,1])},vo.scale.identity=function(){return fi([0,1])},vo.svg.arc=function(){function n(){var n=t.apply(this,arguments),i=e.apply(this,arguments),o=r.apply(this,arguments)+jc,a=u.apply(this,arguments)+jc,c=(o>a&&(c=o,o=a,a=c),a-o),l=Bo>c?"0":"1",s=Math.cos(o),f=Math.sin(o),h=Math.cos(a),g=Math.sin(a);return c>=Lc?n?"M0,"+i+"A"+i+","+i+" 0 1,1 0,"+-i+"A"+i+","+i+" 0 1,1 0,"+i+"M0,"+n+"A"+n+","+n+" 0 1,0 0,"+-n+"A"+n+","+n+" 0 1,0 0,"+n+"Z":"M0,"+i+"A"+i+","+i+" 0 1,1 0,"+-i+"A"+i+","+i+" 0 1,1 0,"+i+"Z":n?"M"+i*s+","+i*f+"A"+i+","+i+" 0 "+l+",1 "+i*h+","+i*g+"L"+n*h+","+n*g+"A"+n+","+n+" 0 "+l+",0 "+n*s+","+n*f+"Z":"M"+i*s+","+i*f+"A"+i+","+i+" 0 "+l+",1 "+i*h+","+i*g+"L0,0"+"Z"}var t=hi,e=gi,r=pi,u=di;return n.innerRadius=function(e){return arguments.length?(t=gt(e),n):t},n.outerRadius=function(t){return arguments.length?(e=gt(t),n):e},n.startAngle=function(t){return arguments.length?(r=gt(t),n):r},n.endAngle=function(t){return arguments.length?(u=gt(t),n):u},n.centroid=function(){var n=(t.apply(this,arguments)+e.apply(this,arguments))/2,i=(r.apply(this,arguments)+u.apply(this,arguments))/2+jc;return[Math.cos(i)*n,Math.sin(i)*n]},n};var jc=-Bo/2,Lc=2*Bo-1e-6;vo.svg.line.radial=function(){var n=Ie(vi);return n.radius=n.x,delete n.x,n.angle=n.y,delete n.y,n},$e.reverse=We,We.reverse=$e,vo.svg.area=function(){return mi(pt)},vo.svg.area.radial=function(){var n=mi(vi);return n.radius=n.x,delete n.x,n.innerRadius=n.x0,delete n.x0,n.outerRadius=n.x1,delete n.x1,n.angle=n.y,delete n.y,n.startAngle=n.y0,delete n.y0,n.endAngle=n.y1,delete n.y1,n},vo.svg.chord=function(){function n(n,a){var c=t(this,i,n,a),l=t(this,o,n,a);return"M"+c.p0+r(c.r,c.p1,c.a1-c.a0)+(e(c,l)?u(c.r,c.p1,c.r,c.p0):u(c.r,c.p1,l.r,l.p0)+r(l.r,l.p1,l.a1-l.a0)+u(l.r,l.p1,c.r,c.p0))+"Z"}function t(n,t,e,r){var u=t.call(n,e,r),i=a.call(n,u,r),o=c.call(n,u,r)+jc,s=l.call(n,u,r)+jc;return{r:i,a0:o,a1:s,p0:[i*Math.cos(o),i*Math.sin(o)],p1:[i*Math.cos(s),i*Math.sin(s)]}}function e(n,t){return n.a0==t.a0&&n.a1==t.a1}function r(n,t,e){return"A"+n+","+n+" 0 "+ +(e>Bo)+",1 "+t}function u(n,t,e,r){return"Q 0,0 "+r}var i=Ce,o=De,a=yi,c=pi,l=di;return n.radius=function(t){return arguments.length?(a=gt(t),n):a},n.source=function(t){return arguments.length?(i=gt(t),n):i},n.target=function(t){return arguments.length?(o=gt(t),n):o},n.startAngle=function(t){return arguments.length?(c=gt(t),n):c},n.endAngle=function(t){return arguments.length?(l=gt(t),n):l},n},vo.svg.diagonal=function(){function n(n,u){var i=t.call(this,n,u),o=e.call(this,n,u),a=(i.y+o.y)/2,c=[i,{x:i.x,y:a},{x:o.x,y:a},o];return c=c.map(r),"M"+c[0]+"C"+c[1]+" "+c[2]+" "+c[3]}var t=Ce,e=De,r=Mi;return n.source=function(e){return arguments.length?(t=gt(e),n):t},n.target=function(t){return arguments.length?(e=gt(t),n):e},n.projection=function(t){return arguments.length?(r=t,n):r},n},vo.svg.diagonal.radial=function(){var n=vo.svg.diagonal(),t=Mi,e=n.projection;return n.projection=function(n){return arguments.length?e(xi(t=n)):t},n},vo.svg.symbol=function(){function n(n,r){return(Hc.get(t.call(this,n,r))||wi)(e.call(this,n,r))}var t=_i,e=bi;return n.type=function(e){return arguments.length?(t=gt(e),n):t},n.size=function(t){return arguments.length?(e=gt(t),n):e},n};var Hc=vo.map({circle:wi,cross:function(n){var t=Math.sqrt(n/5)/2;return"M"+-3*t+","+-t+"H"+-t+"V"+-3*t+"H"+t+"V"+-t+"H"+3*t+"V"+t+"H"+t+"V"+3*t+"H"+-t+"V"+t+"H"+-3*t+"Z"},diamond:function(n){var t=Math.sqrt(n/(2*Rc)),e=t*Rc;return"M0,"+-t+"L"+e+",0"+" 0,"+t+" "+-e+",0"+"Z"},square:function(n){var t=Math.sqrt(n)/2;return"M"+-t+","+-t+"L"+t+","+-t+" "+t+","+t+" "+-t+","+t+"Z"},"triangle-down":function(n){var t=Math.sqrt(n/Oc),e=t*Oc/2;return"M0,"+e+"L"+t+","+-e+" "+-t+","+-e+"Z"},"triangle-up":function(n){var t=Math.sqrt(n/Oc),e=t*Oc/2;return"M0,"+-e+"L"+t+","+e+" "+-t+","+e+"Z"}});vo.svg.symbolTypes=Hc.keys();var Fc,Pc,Oc=Math.sqrt(3),Rc=Math.tan(30*Jo),Yc=[],Ic=0;Yc.call=Oo.call,Yc.empty=Oo.empty,Yc.node=Oo.node,Yc.size=Oo.size,vo.transition=function(n){return arguments.length?Fc?n.transition():n:Io.transition()},vo.transition.prototype=Yc,Oo.transition=function(){for(var n,t,e=Fc||++Ic,r=[],u=Pc||{time:Date.now(),ease:zr,delay:0,duration:250},i=-1,o=this.length;++i<o;){r.push(n=[]);for(var a=this[i],c=-1,l=a.length;++c<l;)(t=a[c])&&Ni(t,c,e,u),n.push(t)}return Si(r,e)},Oo.interrupt=function(){return this.each(Ei)},Yc.select=function(n){var t,e,r,u=this.id,i=[];n=d(n);for(var o=-1,a=this.length;++o<a;){i.push(t=[]);for(var c=this[o],l=-1,s=c.length;++l<s;)(r=c[l])&&(e=n.call(r,r.__data__,l,o))?("__data__"in r&&(e.__data__=r.__data__),Ni(e,l,u,r.__transition__[u]),t.push(e)):t.push(null)}return Si(i,u)},Yc.selectAll=function(n){var t,e,r,u,i,o=this.id,a=[];n=v(n);for(var c=-1,l=this.length;++c<l;)for(var s=this[c],f=-1,h=s.length;++f<h;)if(r=s[f]){i=r.__transition__[o],e=n.call(r,r.__data__,f,c),a.push(t=[]);for(var g=-1,p=e.length;++g<p;)(u=e[g])&&Ni(u,g,o,i),t.push(u)}return Si(a,o)},Yc.filter=function(n){var t,e,r,u=[];"function"!=typeof n&&(n=k(n));for(var i=0,o=this.length;o>i;i++){u.push(t=[]);for(var e=this[i],a=0,c=e.length;c>a;a++)(r=e[a])&&n.call(r,r.__data__,a)&&t.push(r)}return Si(u,this.id)},Yc.tween=function(n,t){var e=this.id;return arguments.length<2?this.node().__transition__[e].tween.get(n):N(this,null==t?function(t){t.__transition__[e].tween.remove(n)}:function(r){r.__transition__[e].tween.set(n,t)})},Yc.attr=function(n,t){function e(){this.removeAttribute(a)}function r(){this.removeAttributeNS(a.space,a.local)}function u(n){return null==n?e:(n+="",function(){var t,e=this.getAttribute(a);return e!==n&&(t=o(e,n),function(n){this.setAttribute(a,t(n))})})}function i(n){return null==n?r:(n+="",function(){var t,e=this.getAttributeNS(a.space,a.local);return e!==n&&(t=o(e,n),function(n){this.setAttributeNS(a.space,a.local,t(n))})})}if(arguments.length<2){for(t in n)this.attr(t,n[t]);return this}var o="transform"==n?Br:Sr,a=vo.ns.qualify(n);return ki(this,"attr."+n,t,a.local?i:u)},Yc.attrTween=function(n,t){function e(n,e){var r=t.call(this,n,e,this.getAttribute(u));return r&&function(n){this.setAttribute(u,r(n))}}function r(n,e){var r=t.call(this,n,e,this.getAttributeNS(u.space,u.local));return r&&function(n){this.setAttributeNS(u.space,u.local,r(n))}}var u=vo.ns.qualify(n);
23
- return this.tween("attr."+n,u.local?r:e)},Yc.style=function(n,t,e){function r(){this.style.removeProperty(n)}function u(t){return null==t?r:(t+="",function(){var r,u=bo.getComputedStyle(this,null).getPropertyValue(n);return u!==t&&(r=Sr(u,t),function(t){this.style.setProperty(n,r(t),e)})})}var i=arguments.length;if(3>i){if("string"!=typeof n){2>i&&(t="");for(e in n)this.style(e,n[e],t);return this}e=""}return ki(this,"style."+n,t,u)},Yc.styleTween=function(n,t,e){function r(r,u){var i=t.call(this,r,u,bo.getComputedStyle(this,null).getPropertyValue(n));return i&&function(t){this.style.setProperty(n,i(t),e)}}return arguments.length<3&&(e=""),this.tween("style."+n,r)},Yc.text=function(n){return ki(this,"text",n,Ai)},Yc.remove=function(){return this.each("end.transition",function(){var n;this.__transition__.count<2&&(n=this.parentNode)&&n.removeChild(this)})},Yc.ease=function(n){var t=this.id;return arguments.length<1?this.node().__transition__[t].ease:("function"!=typeof n&&(n=vo.ease.apply(vo,arguments)),N(this,function(e){e.__transition__[t].ease=n}))},Yc.delay=function(n){var t=this.id;return N(this,"function"==typeof n?function(e,r,u){e.__transition__[t].delay=+n.call(e,e.__data__,r,u)}:(n=+n,function(e){e.__transition__[t].delay=n}))},Yc.duration=function(n){var t=this.id;return N(this,"function"==typeof n?function(e,r,u){e.__transition__[t].duration=Math.max(1,n.call(e,e.__data__,r,u))}:(n=Math.max(1,n),function(e){e.__transition__[t].duration=n}))},Yc.each=function(n,t){var e=this.id;if(arguments.length<2){var r=Pc,u=Fc;Fc=e,N(this,function(t,r,u){Pc=t.__transition__[e],n.call(t,t.__data__,r,u)}),Pc=r,Fc=u}else N(this,function(r){var u=r.__transition__[e];(u.event||(u.event=vo.dispatch("start","end"))).on(n,t)});return this},Yc.transition=function(){for(var n,t,e,r,u=this.id,i=++Ic,o=[],a=0,c=this.length;c>a;a++){o.push(n=[]);for(var t=this[a],l=0,s=t.length;s>l;l++)(e=t[l])&&(r=Object.create(e.__transition__[u]),r.delay+=r.duration,Ni(e,l,i,r)),n.push(e)}return Si(o,i)},vo.svg.axis=function(){function n(n){n.each(function(){var n,l=vo.select(this),s=null==c?e.ticks?e.ticks.apply(e,a):e.domain():c,f=null==t?e.tickFormat?e.tickFormat.apply(e,a):pt:t,h=l.selectAll(".tick").data(s,pt),g=h.enter().insert("g",".domain").attr("class","tick").style("opacity",1e-6),p=vo.transition(h.exit()).style("opacity",1e-6).remove(),d=vo.transition(h).style("opacity",1),v=Bu(e),m=l.selectAll(".domain").data([0]),y=(m.enter().append("path").attr("class","domain"),vo.transition(m)),M=e.copy(),x=this.__chart__||M;this.__chart__=M,g.append("line"),g.append("text");var b=g.select("line"),_=d.select("line"),w=h.select("text").text(f),S=g.select("text"),E=d.select("text");switch(r){case"bottom":n=qi,b.attr("y2",u),S.attr("y",Math.max(u,0)+o),_.attr("x2",0).attr("y2",u),E.attr("x",0).attr("y",Math.max(u,0)+o),w.attr("dy",".71em").style("text-anchor","middle"),y.attr("d","M"+v[0]+","+i+"V0H"+v[1]+"V"+i);break;case"top":n=qi,b.attr("y2",-u),S.attr("y",-(Math.max(u,0)+o)),_.attr("x2",0).attr("y2",-u),E.attr("x",0).attr("y",-(Math.max(u,0)+o)),w.attr("dy","0em").style("text-anchor","middle"),y.attr("d","M"+v[0]+","+-i+"V0H"+v[1]+"V"+-i);break;case"left":n=Ti,b.attr("x2",-u),S.attr("x",-(Math.max(u,0)+o)),_.attr("x2",-u).attr("y2",0),E.attr("x",-(Math.max(u,0)+o)).attr("y",0),w.attr("dy",".32em").style("text-anchor","end"),y.attr("d","M"+-i+","+v[0]+"H0V"+v[1]+"H"+-i);break;case"right":n=Ti,b.attr("x2",u),S.attr("x",Math.max(u,0)+o),_.attr("x2",u).attr("y2",0),E.attr("x",Math.max(u,0)+o).attr("y",0),w.attr("dy",".32em").style("text-anchor","start"),y.attr("d","M"+i+","+v[0]+"H0V"+v[1]+"H"+i)}if(e.rangeBand){var k=M.rangeBand()/2,A=function(n){return M(n)+k};g.call(n,A),d.call(n,A)}else g.call(n,x),d.call(n,M),p.call(n,M)})}var t,e=vo.scale.linear(),r=Uc,u=6,i=6,o=3,a=[10],c=null;return n.scale=function(t){return arguments.length?(e=t,n):e},n.orient=function(t){return arguments.length?(r=t in Vc?t+"":Uc,n):r},n.ticks=function(){return arguments.length?(a=arguments,n):a},n.tickValues=function(t){return arguments.length?(c=t,n):c},n.tickFormat=function(e){return arguments.length?(t=e,n):t},n.tickSize=function(t){var e=arguments.length;return e?(u=+t,i=+arguments[e-1],n):u},n.innerTickSize=function(t){return arguments.length?(u=+t,n):u},n.outerTickSize=function(t){return arguments.length?(i=+t,n):i},n.tickPadding=function(t){return arguments.length?(o=+t,n):o},n.tickSubdivide=function(){return arguments.length&&n},n};var Uc="bottom",Vc={top:1,right:1,bottom:1,left:1};vo.svg.brush=function(){function n(i){i.each(function(){var i=vo.select(this).style("pointer-events","all").style("-webkit-tap-highlight-color","rgba(0,0,0,0)").on("mousedown.brush",u).on("touchstart.brush",u),o=i.selectAll(".background").data([0]);o.enter().append("rect").attr("class","background").style("visibility","hidden").style("cursor","crosshair"),i.selectAll(".extent").data([0]).enter().append("rect").attr("class","extent").style("cursor","move");var a=i.selectAll(".resize").data(v,pt);a.exit().remove(),a.enter().append("g").attr("class",function(n){return"resize "+n}).style("cursor",function(n){return Zc[n]}).append("rect").attr("x",function(n){return/[ew]$/.test(n)?-3:null}).attr("y",function(n){return/^[ns]/.test(n)?-3:null}).attr("width",6).attr("height",6).style("visibility","hidden"),a.style("display",n.empty()?"none":null);var s,f=vo.transition(i),h=vo.transition(o);c&&(s=Bu(c),h.attr("x",s[0]).attr("width",s[1]-s[0]),e(f)),l&&(s=Bu(l),h.attr("y",s[0]).attr("height",s[1]-s[0]),r(f)),t(f)})}function t(n){n.selectAll(".resize").attr("transform",function(n){return"translate("+s[+/e$/.test(n)]+","+h[+/^s/.test(n)]+")"})}function e(n){n.select(".extent").attr("x",s[0]),n.selectAll(".extent,.n>rect,.s>rect").attr("width",s[1]-s[0])}function r(n){n.select(".extent").attr("y",h[0]),n.selectAll(".extent,.e>rect,.w>rect").attr("height",h[1]-h[0])}function u(){function u(){var n=vo.event.changedTouches;return n?vo.touches(_,n)[0]:vo.mouse(_)}function g(){32==vo.event.keyCode&&(q||(x=null,z[0]-=s[1],z[1]-=h[1],q=2),f())}function v(){32==vo.event.keyCode&&2==q&&(z[0]+=s[1],z[1]+=h[1],q=0,f())}function m(){var n=u(),i=!1;b&&(n[0]+=b[0],n[1]+=b[1]),q||(vo.event.altKey?(x||(x=[(s[0]+s[1])/2,(h[0]+h[1])/2]),z[0]=s[+(n[0]<x[0])],z[1]=h[+(n[1]<x[1])]):x=null),A&&y(n,c,0)&&(e(E),i=!0),N&&y(n,l,1)&&(r(E),i=!0),i&&(t(E),S({type:"brush",mode:q?"move":"resize"}))}function y(n,t,e){var r,u,a=Bu(t),c=a[0],l=a[1],f=z[e],g=e?h:s,v=g[1]-g[0];return q&&(c-=f,l-=v+f),r=(e?d:p)?Math.max(c,Math.min(l,n[e])):n[e],q?u=(r+=f)+v:(x&&(f=Math.max(c,Math.min(l,2*x[e]-r))),r>f?(u=r,r=f):u=f),g[0]!=r||g[1]!=u?(e?o=null:i=null,g[0]=r,g[1]=u,!0):void 0}function M(){m(),E.style("pointer-events","all").selectAll(".resize").style("display",n.empty()?"none":null),vo.select("body").style("cursor",null),C.on("mousemove.brush",null).on("mouseup.brush",null).on("touchmove.brush",null).on("touchend.brush",null).on("keydown.brush",null).on("keyup.brush",null),T(),S({type:"brushend"})}var x,b,_=this,w=vo.select(vo.event.target),S=a.of(_,arguments),E=vo.select(_),k=w.datum(),A=!/^(n|s)$/.test(k)&&c,N=!/^(e|w)$/.test(k)&&l,q=w.classed("extent"),T=j(),z=u(),C=vo.select(bo).on("keydown.brush",g).on("keyup.brush",v);if(vo.event.changedTouches?C.on("touchmove.brush",m).on("touchend.brush",M):C.on("mousemove.brush",m).on("mouseup.brush",M),E.interrupt().selectAll("*").interrupt(),q)z[0]=s[0]-z[0],z[1]=h[0]-z[1];else if(k){var D=+/w$/.test(k),L=+/^n/.test(k);b=[s[1-D]-z[0],h[1-L]-z[1]],z[0]=s[D],z[1]=h[L]}else vo.event.altKey&&(x=z.slice());E.style("pointer-events","none").selectAll(".resize").style("display",null),vo.select("body").style("cursor",w.style("cursor")),S({type:"brushstart"}),m()}var i,o,a=g(n,"brushstart","brush","brushend"),c=null,l=null,s=[0,0],h=[0,0],p=!0,d=!0,v=Xc[0];return n.event=function(n){n.each(function(){var n=a.of(this,arguments),t={x:s,y:h,i:i,j:o},e=this.__chart__||t;this.__chart__=t,Fc?vo.select(this).transition().each("start.brush",function(){i=e.i,o=e.j,s=e.x,h=e.y,n({type:"brushstart"})}).tween("brush:brush",function(){var e=Er(s,t.x),r=Er(h,t.y);return i=o=null,function(u){s=t.x=e(u),h=t.y=r(u),n({type:"brush",mode:"resize"})}}).each("end.brush",function(){i=t.i,o=t.j,n({type:"brush",mode:"resize"}),n({type:"brushend"})}):(n({type:"brushstart"}),n({type:"brush",mode:"resize"}),n({type:"brushend"}))})},n.x=function(t){return arguments.length?(c=t,v=Xc[!c<<1|!l],n):c},n.y=function(t){return arguments.length?(l=t,v=Xc[!c<<1|!l],n):l},n.clamp=function(t){return arguments.length?(c&&l?(p=!!t[0],d=!!t[1]):c?p=!!t:l&&(d=!!t),n):c&&l?[p,d]:c?p:l?d:null},n.extent=function(t){var e,r,u,a,f;return arguments.length?(c&&(e=t[0],r=t[1],l&&(e=e[0],r=r[0]),i=[e,r],c.invert&&(e=c(e),r=c(r)),e>r&&(f=e,e=r,r=f),(e!=s[0]||r!=s[1])&&(s=[e,r])),l&&(u=t[0],a=t[1],c&&(u=u[1],a=a[1]),o=[u,a],l.invert&&(u=l(u),a=l(a)),u>a&&(f=u,u=a,a=f),(u!=h[0]||a!=h[1])&&(h=[u,a])),n):(c&&(i?(e=i[0],r=i[1]):(e=s[0],r=s[1],c.invert&&(e=c.invert(e),r=c.invert(r)),e>r&&(f=e,e=r,r=f))),l&&(o?(u=o[0],a=o[1]):(u=h[0],a=h[1],l.invert&&(u=l.invert(u),a=l.invert(a)),u>a&&(f=u,u=a,a=f))),c&&l?[[e,u],[r,a]]:c?[e,r]:l&&[u,a])},n.clear=function(){return n.empty()||(s=[0,0],h=[0,0],i=o=null),n},n.empty=function(){return!!c&&s[0]==s[1]||!!l&&h[0]==h[1]},vo.rebind(n,a,"on")};var Zc={n:"ns-resize",e:"ew-resize",s:"ns-resize",w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"},Xc=[["n","e","s","w","nw","ne","se","sw"],["e","w"],["n","s"],[]],Bc=vo.time={},$c=Date,Wc=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];zi.prototype={getDate:function(){return this._.getUTCDate()},getDay:function(){return this._.getUTCDay()},getFullYear:function(){return this._.getUTCFullYear()},getHours:function(){return this._.getUTCHours()},getMilliseconds:function(){return this._.getUTCMilliseconds()},getMinutes:function(){return this._.getUTCMinutes()},getMonth:function(){return this._.getUTCMonth()},getSeconds:function(){return this._.getUTCSeconds()},getTime:function(){return this._.getTime()},getTimezoneOffset:function(){return 0},valueOf:function(){return this._.valueOf()},setDate:function(){Jc.setUTCDate.apply(this._,arguments)},setDay:function(){Jc.setUTCDay.apply(this._,arguments)},setFullYear:function(){Jc.setUTCFullYear.apply(this._,arguments)},setHours:function(){Jc.setUTCHours.apply(this._,arguments)},setMilliseconds:function(){Jc.setUTCMilliseconds.apply(this._,arguments)},setMinutes:function(){Jc.setUTCMinutes.apply(this._,arguments)},setMonth:function(){Jc.setUTCMonth.apply(this._,arguments)},setSeconds:function(){Jc.setUTCSeconds.apply(this._,arguments)},setTime:function(){Jc.setTime.apply(this._,arguments)}};var Jc=Date.prototype,Gc="%a %b %e %X %Y",Kc="%m/%d/%Y",Qc="%H:%M:%S",nl=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],tl=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],el=["January","February","March","April","May","June","July","August","September","October","November","December"],rl=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];Bc.year=Ci(function(n){return n=Bc.day(n),n.setMonth(0,1),n},function(n,t){n.setFullYear(n.getFullYear()+t)},function(n){return n.getFullYear()}),Bc.years=Bc.year.range,Bc.years.utc=Bc.year.utc.range,Bc.day=Ci(function(n){var t=new $c(2e3,0);return t.setFullYear(n.getFullYear(),n.getMonth(),n.getDate()),t},function(n,t){n.setDate(n.getDate()+t)},function(n){return n.getDate()-1}),Bc.days=Bc.day.range,Bc.days.utc=Bc.day.utc.range,Bc.dayOfYear=function(n){var t=Bc.year(n);return Math.floor((n-t-6e4*(n.getTimezoneOffset()-t.getTimezoneOffset()))/864e5)},Wc.forEach(function(n,t){n=n.toLowerCase(),t=7-t;var e=Bc[n]=Ci(function(n){return(n=Bc.day(n)).setDate(n.getDate()-(n.getDay()+t)%7),n},function(n,t){n.setDate(n.getDate()+7*Math.floor(t))},function(n){var e=Bc.year(n).getDay();return Math.floor((Bc.dayOfYear(n)+(e+t)%7)/7)-(e!==t)});Bc[n+"s"]=e.range,Bc[n+"s"].utc=e.utc.range,Bc[n+"OfYear"]=function(n){var e=Bc.year(n).getDay();return Math.floor((Bc.dayOfYear(n)+(e+t)%7)/7)}}),Bc.week=Bc.sunday,Bc.weeks=Bc.sunday.range,Bc.weeks.utc=Bc.sunday.utc.range,Bc.weekOfYear=Bc.sundayOfYear,Bc.format=ji;var ul=Hi(nl),il=Fi(nl),ol=Hi(tl),al=Fi(tl),cl=Hi(el),ll=Fi(el),sl=Hi(rl),fl=Fi(rl),hl=/^%/,gl={"-":"",_:" ",0:"0"},pl={a:function(n){return tl[n.getDay()]},A:function(n){return nl[n.getDay()]},b:function(n){return rl[n.getMonth()]},B:function(n){return el[n.getMonth()]},c:ji(Gc),d:function(n,t){return Pi(n.getDate(),t,2)},e:function(n,t){return Pi(n.getDate(),t,2)},H:function(n,t){return Pi(n.getHours(),t,2)},I:function(n,t){return Pi(n.getHours()%12||12,t,2)},j:function(n,t){return Pi(1+Bc.dayOfYear(n),t,3)},L:function(n,t){return Pi(n.getMilliseconds(),t,3)},m:function(n,t){return Pi(n.getMonth()+1,t,2)},M:function(n,t){return Pi(n.getMinutes(),t,2)},p:function(n){return n.getHours()>=12?"PM":"AM"},S:function(n,t){return Pi(n.getSeconds(),t,2)},U:function(n,t){return Pi(Bc.sundayOfYear(n),t,2)},w:function(n){return n.getDay()},W:function(n,t){return Pi(Bc.mondayOfYear(n),t,2)},x:ji(Kc),X:ji(Qc),y:function(n,t){return Pi(n.getFullYear()%100,t,2)},Y:function(n,t){return Pi(n.getFullYear()%1e4,t,4)},Z:oo,"%":function(){return"%"}},dl={a:Oi,A:Ri,b:Vi,B:Zi,c:Xi,d:Qi,e:Qi,H:to,I:to,j:no,L:uo,m:Ki,M:eo,p:io,S:ro,U:Ii,w:Yi,W:Ui,x:Bi,X:$i,y:Ji,Y:Wi,"%":ao},vl=/^\s*\d+/,ml=vo.map({am:0,pm:1});ji.utc=co;var yl=co("%Y-%m-%dT%H:%M:%S.%LZ");ji.iso=Date.prototype.toISOString&&+new Date("2000-01-01T00:00:00.000Z")?lo:yl,lo.parse=function(n){var t=new Date(n);return isNaN(t)?null:t},lo.toString=yl.toString,Bc.second=Ci(function(n){return new $c(1e3*Math.floor(n/1e3))},function(n,t){n.setTime(n.getTime()+1e3*Math.floor(t))},function(n){return n.getSeconds()}),Bc.seconds=Bc.second.range,Bc.seconds.utc=Bc.second.utc.range,Bc.minute=Ci(function(n){return new $c(6e4*Math.floor(n/6e4))},function(n,t){n.setTime(n.getTime()+6e4*Math.floor(t))},function(n){return n.getMinutes()}),Bc.minutes=Bc.minute.range,Bc.minutes.utc=Bc.minute.utc.range,Bc.hour=Ci(function(n){var t=n.getTimezoneOffset()/60;return new $c(36e5*(Math.floor(n/36e5-t)+t))},function(n,t){n.setTime(n.getTime()+36e5*Math.floor(t))},function(n){return n.getHours()}),Bc.hours=Bc.hour.range,Bc.hours.utc=Bc.hour.utc.range,Bc.month=Ci(function(n){return n=Bc.day(n),n.setDate(1),n},function(n,t){n.setMonth(n.getMonth()+t)},function(n){return n.getMonth()}),Bc.months=Bc.month.range,Bc.months.utc=Bc.month.utc.range;var Ml=[1e3,5e3,15e3,3e4,6e4,3e5,9e5,18e5,36e5,108e5,216e5,432e5,864e5,1728e5,6048e5,2592e6,7776e6,31536e6],xl=[[Bc.second,1],[Bc.second,5],[Bc.second,15],[Bc.second,30],[Bc.minute,1],[Bc.minute,5],[Bc.minute,15],[Bc.minute,30],[Bc.hour,1],[Bc.hour,3],[Bc.hour,6],[Bc.hour,12],[Bc.day,1],[Bc.day,2],[Bc.week,1],[Bc.month,1],[Bc.month,3],[Bc.year,1]],bl=[[ji("%Y"),Vt],[ji("%B"),function(n){return n.getMonth()}],[ji("%b %d"),function(n){return 1!=n.getDate()}],[ji("%a %d"),function(n){return n.getDay()&&1!=n.getDate()}],[ji("%I %p"),function(n){return n.getHours()}],[ji("%I:%M"),function(n){return n.getMinutes()}],[ji(":%S"),function(n){return n.getSeconds()}],[ji(".%L"),function(n){return n.getMilliseconds()}]],_l=ho(bl);xl.year=Bc.year,Bc.scale=function(){return so(vo.scale.linear(),xl,_l)};var wl={range:function(n,t,e){return vo.range(+n,+t,e).map(fo)}},Sl=xl.map(function(n){return[n[0].utc,n[1]]}),El=[[co("%Y"),Vt],[co("%B"),function(n){return n.getUTCMonth()}],[co("%b %d"),function(n){return 1!=n.getUTCDate()}],[co("%a %d"),function(n){return n.getUTCDay()&&1!=n.getUTCDate()}],[co("%I %p"),function(n){return n.getUTCHours()}],[co("%I:%M"),function(n){return n.getUTCMinutes()}],[co(":%S"),function(n){return n.getUTCSeconds()}],[co(".%L"),function(n){return n.getUTCMilliseconds()}]],kl=ho(El);return Sl.year=Bc.year.utc,Bc.scale.utc=function(){return so(vo.scale.linear(),Sl,kl)},vo.text=dt(function(n){return n.responseText}),vo.json=function(n,t){return vt(n,"application/json",go,t)},vo.html=function(n,t){return vt(n,"text/html",po,t)},vo.xml=dt(function(n){return n.responseXML}),vo}();
27
+ d3 = function () {
28
+ function n(n) { return null != n && !isNaN(n) } function t(n) { return n.length } function e(n) { for (var t = 1; n * t % 1;)t *= 10; return t } function r(n, t) { try { for (var e in t) Object.defineProperty(n.prototype, e, { value: t[e], enumerable: !1 }) } catch (r) { n.prototype = t } } function u() { } function i() { } function o(n, t, e) { return function () { var r = e.apply(t, arguments); return r === t ? n : r } } function a(n, t) { if (t in n) return t; t = t.charAt(0).toUpperCase() + t.substring(1); for (var e = 0, r = Co.length; r > e; ++e) { var u = Co[e] + t; if (u in n) return u } } function c() { } function l() { } function s(n) { function t() { for (var t, r = e, u = -1, i = r.length; ++u < i;)(t = r[u].on) && t.apply(this, arguments); return n } var e = [], r = new u; return t.on = function (t, u) { var i, o = r.get(t); return arguments.length < 2 ? o && o.on : (o && (o.on = null, e = e.slice(0, i = e.indexOf(o)).concat(e.slice(i + 1)), r.remove(t)), u && e.push(r.set(t, { on: u })), n) }, t } function f() { vo.event.preventDefault() } function h() { for (var n, t = vo.event; n = t.sourceEvent;)t = n; return t } function g(n) { for (var t = new l, e = 0, r = arguments.length; ++e < r;)t[arguments[e]] = s(t); return t.of = function (e, r) { return function (u) { try { var i = u.sourceEvent = vo.event; u.target = n, vo.event = u, t[u.type].apply(e, r) } finally { vo.event = i } } }, t } function p(n) { return jo(n, Oo), n } function d(n) { return "function" == typeof n ? n : function () { return Lo(n, this) } } function v(n) { return "function" == typeof n ? n : function () { return Ho(n, this) } } function m(n, t) { function e() { this.removeAttribute(n) } function r() { this.removeAttributeNS(n.space, n.local) } function u() { this.setAttribute(n, t) } function i() { this.setAttributeNS(n.space, n.local, t) } function o() { var e = t.apply(this, arguments); null == e ? this.removeAttribute(n) : this.setAttribute(n, e) } function a() { var e = t.apply(this, arguments); null == e ? this.removeAttributeNS(n.space, n.local) : this.setAttributeNS(n.space, n.local, e) } return n = vo.ns.qualify(n), null == t ? n.local ? r : e : "function" == typeof t ? n.local ? a : o : n.local ? i : u } function y(n) { return n.trim().replace(/\s+/g, " ") } function M(n) { return new RegExp("(?:^|\\s+)" + vo.requote(n) + "(?:\\s+|$)", "g") } function x(n, t) { function e() { for (var e = -1; ++e < u;)n[e](this, t) } function r() { for (var e = -1, r = t.apply(this, arguments); ++e < u;)n[e](this, r) } n = n.trim().split(/\s+/).map(b); var u = n.length; return "function" == typeof t ? r : e } function b(n) { var t = M(n); return function (e, r) { if (u = e.classList) return r ? u.add(n) : u.remove(n); var u = e.getAttribute("class") || ""; r ? (t.lastIndex = 0, t.test(u) || e.setAttribute("class", y(u + " " + n))) : e.setAttribute("class", y(u.replace(t, " "))) } } function _(n, t, e) { function r() { this.style.removeProperty(n) } function u() { this.style.setProperty(n, t, e) } function i() { var r = t.apply(this, arguments); null == r ? this.style.removeProperty(n) : this.style.setProperty(n, r, e) } return null == t ? r : "function" == typeof t ? i : u } function w(n, t) { function e() { delete this[n] } function r() { this[n] = t } function u() { var e = t.apply(this, arguments); null == e ? delete this[n] : this[n] = e } return null == t ? e : "function" == typeof t ? u : r } function S(n) { return "function" == typeof n ? n : (n = vo.ns.qualify(n)).local ? function () { return Mo.createElementNS(n.space, n.local) } : function () { return Mo.createElementNS(this.namespaceURI, n) } } function E(n) { return { __data__: n } } function k(n) { return function () { return Po(this, n) } } function A(n) { return arguments.length || (n = vo.ascending), function (t, e) { return t && e ? n(t.__data__, e.__data__) : !t - !e } } function N(n, t) { for (var e = 0, r = n.length; r > e; e++)for (var u, i = n[e], o = 0, a = i.length; a > o; o++)(u = i[o]) && t(u, o, e); return n } function q(n) { return jo(n, Yo), n } function T(n) { var t, e; return function (r, u, i) { var o, a = n[i].update, c = a.length; for (i != e && (e = i, t = 0), u >= t && (t = u + 1); !(o = a[t]) && ++t < c;); return o } } function z(n, t, e) { function r() { var t = this[o]; t && (this.removeEventListener(n, t, t.$), delete this[o]) } function u() { var u = l(t, yo(arguments)); r.call(this), this.addEventListener(n, this[o] = u, u.$ = e), u._ = t } function i() { var t, e = new RegExp("^__on([^.]+)" + vo.requote(n) + "$"); for (var r in this) if (t = r.match(e)) { var u = this[r]; this.removeEventListener(t[1], u, u.$), delete this[r] } } var o = "__on" + n, a = n.indexOf("."), l = C; a > 0 && (n = n.substring(0, a)); var s = Uo.get(n); return s && (n = s, l = D), a ? t ? u : r : t ? c : i } function C(n, t) { return function (e) { var r = vo.event; vo.event = e, t[0] = this.__data__; try { n.apply(this, t) } finally { vo.event = r } } } function D(n, t) { var e = C(n, t); return function (n) { var t = this, r = n.relatedTarget; r && (r === t || 8 & r.compareDocumentPosition(t)) || e.call(t, n) } } function j() { var n = ".dragsuppress-" + ++Zo, t = "touchmove" + n, e = "selectstart" + n, r = "dragstart" + n, u = "click" + n, i = vo.select(bo).on(t, f).on(e, f).on(r, f), o = xo.style, a = o[Vo]; return o[Vo] = "none", function (t) { function e() { i.on(u, null) } i.on(n, null), o[Vo] = a, t && (i.on(u, function () { f(), e() }, !0), setTimeout(e, 0)) } } function L(n, t) { var e = n.ownerSVGElement || n; if (e.createSVGPoint) { var r = e.createSVGPoint(); if (0 > Xo && (bo.scrollX || bo.scrollY)) { e = vo.select("body").append("svg").style({ position: "absolute", top: 0, left: 0, margin: 0, padding: 0, border: "none" }, "important"); var u = e[0][0].getScreenCTM(); Xo = !(u.f || u.e), e.remove() } return Xo ? (r.x = t.pageX, r.y = t.pageY) : (r.x = t.clientX, r.y = t.clientY), r = r.matrixTransform(n.getScreenCTM().inverse()), [r.x, r.y] } var i = n.getBoundingClientRect(); return [t.clientX - i.left - n.clientLeft, t.clientY - i.top - n.clientTop] } function H(n) { return n > 0 ? 1 : 0 > n ? -1 : 0 } function F(n) { return n > 1 ? 0 : -1 > n ? Bo : Math.acos(n) } function P(n) { return n > 1 ? Bo / 2 : -1 > n ? -Bo / 2 : Math.asin(n) } function O(n) { return (Math.exp(n) - Math.exp(-n)) / 2 } function R(n) { return (Math.exp(n) + Math.exp(-n)) / 2 } function Y(n) { return O(n) / R(n) } function I(n) { return (n = Math.sin(n / 2)) * n } function U() { } function V(n, t, e) { return new Z(n, t, e) } function Z(n, t, e) { this.h = n, this.s = t, this.l = e } function X(n, t, e) { function r(n) { return n > 360 ? n -= 360 : 0 > n && (n += 360), 60 > n ? i + (o - i) * n / 60 : 180 > n ? o : 240 > n ? i + (o - i) * (240 - n) / 60 : i } function u(n) { return Math.round(255 * r(n)) } var i, o; return n = isNaN(n) ? 0 : (n %= 360) < 0 ? n + 360 : n, t = isNaN(t) ? 0 : 0 > t ? 0 : t > 1 ? 1 : t, e = 0 > e ? 0 : e > 1 ? 1 : e, o = .5 >= e ? e * (1 + t) : e + t - e * t, i = 2 * e - o, it(u(n + 120), u(n), u(n - 120)) } function B(n, t, e) { return new $(n, t, e) } function $(n, t, e) { this.h = n, this.c = t, this.l = e } function W(n, t, e) { return isNaN(n) && (n = 0), isNaN(t) && (t = 0), J(e, Math.cos(n *= Jo) * t, Math.sin(n) * t) } function J(n, t, e) { return new G(n, t, e) } function G(n, t, e) { this.l = n, this.a = t, this.b = e } function K(n, t, e) { var r = (n + 16) / 116, u = r + t / 500, i = r - e / 200; return u = nt(u) * aa, r = nt(r) * ca, i = nt(i) * la, it(et(3.2404542 * u - 1.5371385 * r - .4985314 * i), et(-.969266 * u + 1.8760108 * r + .041556 * i), et(.0556434 * u - .2040259 * r + 1.0572252 * i)) } function Q(n, t, e) { return n > 0 ? B(Math.atan2(e, t) * Go, Math.sqrt(t * t + e * e), n) : B(0 / 0, 0 / 0, n) } function nt(n) { return n > .206893034 ? n * n * n : (n - 4 / 29) / 7.787037 } function tt(n) { return n > .008856 ? Math.pow(n, 1 / 3) : 7.787037 * n + 4 / 29 } function et(n) { return Math.round(255 * (.00304 >= n ? 12.92 * n : 1.055 * Math.pow(n, 1 / 2.4) - .055)) } function rt(n) { return it(n >> 16, 255 & n >> 8, 255 & n) } function ut(n) { return rt(n) + "" } function it(n, t, e) { return new ot(n, t, e) } function ot(n, t, e) { this.r = n, this.g = t, this.b = e } function at(n) { return 16 > n ? "0" + Math.max(0, n).toString(16) : Math.min(255, n).toString(16) } function ct(n, t, e) { var r, u, i, o = 0, a = 0, c = 0; if (r = /([a-z]+)\((.*)\)/i.exec(n)) switch (u = r[2].split(","), r[1]) { case "hsl": return e(parseFloat(u[0]), parseFloat(u[1]) / 100, parseFloat(u[2]) / 100); case "rgb": return t(ht(u[0]), ht(u[1]), ht(u[2])) }return (i = ha.get(n)) ? t(i.r, i.g, i.b) : (null != n && "#" === n.charAt(0) && (4 === n.length ? (o = n.charAt(1), o += o, a = n.charAt(2), a += a, c = n.charAt(3), c += c) : 7 === n.length && (o = n.substring(1, 3), a = n.substring(3, 5), c = n.substring(5, 7)), o = parseInt(o, 16), a = parseInt(a, 16), c = parseInt(c, 16)), t(o, a, c)) } function lt(n, t, e) { var r, u, i = Math.min(n /= 255, t /= 255, e /= 255), o = Math.max(n, t, e), a = o - i, c = (o + i) / 2; return a ? (u = .5 > c ? a / (o + i) : a / (2 - o - i), r = n == o ? (t - e) / a + (e > t ? 6 : 0) : t == o ? (e - n) / a + 2 : (n - t) / a + 4, r *= 60) : (r = 0 / 0, u = c > 0 && 1 > c ? 0 : r), V(r, u, c) } function st(n, t, e) { n = ft(n), t = ft(t), e = ft(e); var r = tt((.4124564 * n + .3575761 * t + .1804375 * e) / aa), u = tt((.2126729 * n + .7151522 * t + .072175 * e) / ca), i = tt((.0193339 * n + .119192 * t + .9503041 * e) / la); return J(116 * u - 16, 500 * (r - u), 200 * (u - i)) } function ft(n) { return (n /= 255) <= .04045 ? n / 12.92 : Math.pow((n + .055) / 1.055, 2.4) } function ht(n) { var t = parseFloat(n); return "%" === n.charAt(n.length - 1) ? Math.round(2.55 * t) : t } function gt(n) { return "function" == typeof n ? n : function () { return n } } function pt(n) { return n } function dt(n) { return function (t, e, r) { return 2 === arguments.length && "function" == typeof e && (r = e, e = null), vt(t, e, n, r) } } function vt(n, t, e, r) { function u() { var n, t = c.status; if (!t && c.responseText || t >= 200 && 300 > t || 304 === t) { try { n = e.call(i, c) } catch (r) { return o.error.call(i, r), void 0 } o.load.call(i, n) } else o.error.call(i, c) } var i = {}, o = vo.dispatch("beforesend", "progress", "load", "error"), a = {}, c = new XMLHttpRequest, l = null; return !bo.XDomainRequest || "withCredentials" in c || !/^(http(s)?:)?\/\//.test(n) || (c = new XDomainRequest), "onload" in c ? c.onload = c.onerror = u : c.onreadystatechange = function () { c.readyState > 3 && u() }, c.onprogress = function (n) { var t = vo.event; vo.event = n; try { o.progress.call(i, c) } finally { vo.event = t } }, i.header = function (n, t) { return n = (n + "").toLowerCase(), arguments.length < 2 ? a[n] : (null == t ? delete a[n] : a[n] = t + "", i) }, i.mimeType = function (n) { return arguments.length ? (t = null == n ? null : n + "", i) : t }, i.responseType = function (n) { return arguments.length ? (l = n, i) : l }, i.response = function (n) { return e = n, i }, ["get", "post"].forEach(function (n) { i[n] = function () { return i.send.apply(i, [n].concat(yo(arguments))) } }), i.send = function (e, r, u) { if (2 === arguments.length && "function" == typeof r && (u = r, r = null), c.open(e, n, !0), null == t || "accept" in a || (a.accept = t + ",*/*"), c.setRequestHeader) for (var s in a) c.setRequestHeader(s, a[s]); return null != t && c.overrideMimeType && c.overrideMimeType(t), null != l && (c.responseType = l), null != u && i.on("error", u).on("load", function (n) { u(null, n) }), o.beforesend.call(i, c), c.send(null == r ? null : r), i }, i.abort = function () { return c.abort(), i }, vo.rebind(i, o, "on"), null == r ? i : i.get(mt(r)) } function mt(n) { return 1 === n.length ? function (t, e) { n(null == t ? e : null) } : n } function yt() { var n = xt(), t = bt() - n; t > 24 ? (isFinite(t) && (clearTimeout(va), va = setTimeout(yt, t)), da = 0) : (da = 1, ya(yt)) } function Mt(n, t, e) { var r = arguments.length; 2 > r && (t = 0), 3 > r && (e = Date.now()), ma.callback = n, ma.time = e + t } function xt() { var n = Date.now(); for (ma = ga; ma;)n >= ma.time && (ma.flush = ma.callback(n - ma.time)), ma = ma.next; return n } function bt() { for (var n, t = ga, e = 1 / 0; t;)t.flush ? t = n ? n.next = t.next : ga = t.next : (t.time < e && (e = t.time), t = (n = t).next); return pa = n, e } function _t(n, t) { var e = Math.pow(10, 3 * Math.abs(8 - t)); return { scale: t > 8 ? function (n) { return n / e } : function (n) { return n * e }, symbol: n } } function wt(n, t) { return t - (n ? Math.ceil(Math.log(n) / Math.LN10) : 1) } function St(n) { return n + "" } function Et() { } function kt(n, t, e) { var r = e.s = n + t, u = r - n, i = r - u; e.t = n - i + (t - u) } function At(n, t) { n && Ta.hasOwnProperty(n.type) && Ta[n.type](n, t) } function Nt(n, t, e) { var r, u = -1, i = n.length - e; for (t.lineStart(); ++u < i;)r = n[u], t.point(r[0], r[1], r[2]); t.lineEnd() } function qt(n, t) { var e = -1, r = n.length; for (t.polygonStart(); ++e < r;)Nt(n[e], t, 1); t.polygonEnd() } function Tt() { function n(n, t) { n *= Jo, t = t * Jo / 2 + Bo / 4; var e = n - r, o = Math.cos(t), a = Math.sin(t), c = i * a, l = u * o + c * Math.cos(e), s = c * Math.sin(e); Ca.add(Math.atan2(s, l)), r = n, u = o, i = a } var t, e, r, u, i; Da.point = function (o, a) { Da.point = n, r = (t = o) * Jo, u = Math.cos(a = (e = a) * Jo / 2 + Bo / 4), i = Math.sin(a) }, Da.lineEnd = function () { n(t, e) } } function zt(n) { var t = n[0], e = n[1], r = Math.cos(e); return [r * Math.cos(t), r * Math.sin(t), Math.sin(e)] } function Ct(n, t) { return n[0] * t[0] + n[1] * t[1] + n[2] * t[2] } function Dt(n, t) { return [n[1] * t[2] - n[2] * t[1], n[2] * t[0] - n[0] * t[2], n[0] * t[1] - n[1] * t[0]] } function jt(n, t) { n[0] += t[0], n[1] += t[1], n[2] += t[2] } function Lt(n, t) { return [n[0] * t, n[1] * t, n[2] * t] } function Ht(n) { var t = Math.sqrt(n[0] * n[0] + n[1] * n[1] + n[2] * n[2]); n[0] /= t, n[1] /= t, n[2] /= t } function Ft(n) { return [Math.atan2(n[1], n[0]), P(n[2])] } function Pt(n, t) { return Math.abs(n[0] - t[0]) < $o && Math.abs(n[1] - t[1]) < $o } function Ot(n, t) { n *= Jo; var e = Math.cos(t *= Jo); Rt(e * Math.cos(n), e * Math.sin(n), Math.sin(t)) } function Rt(n, t, e) { ++ja, Ha += (n - Ha) / ja, Fa += (t - Fa) / ja, Pa += (e - Pa) / ja } function Yt() { function n(n, u) { n *= Jo; var i = Math.cos(u *= Jo), o = i * Math.cos(n), a = i * Math.sin(n), c = Math.sin(u), l = Math.atan2(Math.sqrt((l = e * c - r * a) * l + (l = r * o - t * c) * l + (l = t * a - e * o) * l), t * o + e * a + r * c); La += l, Oa += l * (t + (t = o)), Ra += l * (e + (e = a)), Ya += l * (r + (r = c)), Rt(t, e, r) } var t, e, r; Za.point = function (u, i) { u *= Jo; var o = Math.cos(i *= Jo); t = o * Math.cos(u), e = o * Math.sin(u), r = Math.sin(i), Za.point = n, Rt(t, e, r) } } function It() { Za.point = Ot } function Ut() { function n(n, t) { n *= Jo; var e = Math.cos(t *= Jo), o = e * Math.cos(n), a = e * Math.sin(n), c = Math.sin(t), l = u * c - i * a, s = i * o - r * c, f = r * a - u * o, h = Math.sqrt(l * l + s * s + f * f), g = r * o + u * a + i * c, p = h && -F(g) / h, d = Math.atan2(h, g); Ia += p * l, Ua += p * s, Va += p * f, La += d, Oa += d * (r + (r = o)), Ra += d * (u + (u = a)), Ya += d * (i + (i = c)), Rt(r, u, i) } var t, e, r, u, i; Za.point = function (o, a) { t = o, e = a, Za.point = n, o *= Jo; var c = Math.cos(a *= Jo); r = c * Math.cos(o), u = c * Math.sin(o), i = Math.sin(a), Rt(r, u, i) }, Za.lineEnd = function () { n(t, e), Za.lineEnd = It, Za.point = Ot } } function Vt() { return !0 } function Zt(n, t, e, r, u) { var i = [], o = []; if (n.forEach(function (n) { if (!((t = n.length - 1) <= 0)) { var t, e = n[0], r = n[t]; if (Pt(e, r)) { u.lineStart(); for (var a = 0; t > a; ++a)u.point((e = n[a])[0], e[1]); return u.lineEnd(), void 0 } var c = { point: e, points: n, other: null, visited: !1, entry: !0, subject: !0 }, l = { point: e, points: [e], other: c, visited: !1, entry: !1, subject: !1 }; c.other = l, i.push(c), o.push(l), c = { point: r, points: [r], other: null, visited: !1, entry: !1, subject: !0 }, l = { point: r, points: [r], other: c, visited: !1, entry: !0, subject: !1 }, c.other = l, i.push(c), o.push(l) } }), o.sort(t), Xt(i), Xt(o), i.length) { if (e) for (var a = 1, c = !e(o[0].point), l = o.length; l > a; ++a)o[a].entry = c = !c; for (var s, f, h, g = i[0]; ;) { for (s = g; s.visited;)if ((s = s.next) === g) return; f = s.points, u.lineStart(); do { if (s.visited = s.other.visited = !0, s.entry) { if (s.subject) for (var a = 0; a < f.length; a++)u.point((h = f[a])[0], h[1]); else r(s.point, s.next.point, 1, u); s = s.next } else { if (s.subject) { f = s.prev.points; for (var a = f.length; --a >= 0;)u.point((h = f[a])[0], h[1]) } else r(s.point, s.prev.point, -1, u); s = s.prev } s = s.other, f = s.points } while (!s.visited); u.lineEnd() } } } function Xt(n) { if (t = n.length) { for (var t, e, r = 0, u = n[0]; ++r < t;)u.next = e = n[r], e.prev = u, u = e; u.next = e = n[0], e.prev = u } } function Bt(n, t, e, r) { return function (u) { function i(t, e) { n(t, e) && u.point(t, e) } function o(n, t) { d.point(n, t) } function a() { v.point = o, d.lineStart() } function c() { v.point = i, d.lineEnd() } function l(n, t) { y.point(n, t), p.push([n, t]) } function s() { y.lineStart(), p = [] } function f() { l(p[0][0], p[0][1]), y.lineEnd(); var n, t = y.clean(), e = m.buffer(), r = e.length; if (p.pop(), g.push(p), p = null, r) { if (1 & t) { n = e[0]; var i, r = n.length - 1, o = -1; for (u.lineStart(); ++o < r;)u.point((i = n[o])[0], i[1]); return u.lineEnd(), void 0 } r > 1 && 2 & t && e.push(e.pop().concat(e.shift())), h.push(e.filter($t)) } } var h, g, p, d = t(u), v = { point: i, lineStart: a, lineEnd: c, polygonStart: function () { v.point = l, v.lineStart = s, v.lineEnd = f, h = [], g = [], u.polygonStart() }, polygonEnd: function () { v.point = i, v.lineStart = a, v.lineEnd = c, h = vo.merge(h), h.length ? Zt(h, Jt, null, e, u) : r(g) && (u.lineStart(), e(null, null, 1, u), u.lineEnd()), u.polygonEnd(), h = g = null }, sphere: function () { u.polygonStart(), u.lineStart(), e(null, null, 1, u), u.lineEnd(), u.polygonEnd() } }, m = Wt(), y = t(m); return v } } function $t(n) { return n.length > 1 } function Wt() { var n, t = []; return { lineStart: function () { t.push(n = []) }, point: function (t, e) { n.push([t, e]) }, lineEnd: c, buffer: function () { var e = t; return t = [], n = null, e }, rejoin: function () { t.length > 1 && t.push(t.pop().concat(t.shift())) } } } function Jt(n, t) { return ((n = n.point)[0] < 0 ? n[1] - Bo / 2 - $o : Bo / 2 - n[1]) - ((t = t.point)[0] < 0 ? t[1] - Bo / 2 - $o : Bo / 2 - t[1]) } function Gt(n, t) { var e = n[0], r = n[1], u = [Math.sin(e), -Math.cos(e), 0], i = 0, o = !1, a = !1, c = 0; Ca.reset(); for (var l = 0, s = t.length; s > l; ++l) { var f = t[l], h = f.length; if (h) { for (var g = f[0], p = g[0], d = g[1] / 2 + Bo / 4, v = Math.sin(d), m = Math.cos(d), y = 1; ;) { y === h && (y = 0), n = f[y]; var M = n[0], x = n[1] / 2 + Bo / 4, b = Math.sin(x), _ = Math.cos(x), w = M - p, S = Math.abs(w) > Bo, E = v * b; if (Ca.add(Math.atan2(E * Math.sin(w), m * _ + E * Math.cos(w))), Math.abs(x) < $o && (a = !0), i += S ? w + (w >= 0 ? 2 : -2) * Bo : w, S ^ p >= e ^ M >= e) { var k = Dt(zt(g), zt(n)); Ht(k); var A = Dt(u, k); Ht(A); var N = (S ^ w >= 0 ? -1 : 1) * P(A[2]); r > N && (c += S ^ w >= 0 ? 1 : -1) } if (!y++) break; p = M, v = b, m = _, g = n } Math.abs(i) > $o && (o = !0) } } return (!a && !o && 0 > Ca || -$o > i) ^ 1 & c } function Kt(n) { var t, e = 0 / 0, r = 0 / 0, u = 0 / 0; return { lineStart: function () { n.lineStart(), t = 1 }, point: function (i, o) { var a = i > 0 ? Bo : -Bo, c = Math.abs(i - e); Math.abs(c - Bo) < $o ? (n.point(e, r = (r + o) / 2 > 0 ? Bo / 2 : -Bo / 2), n.point(u, r), n.lineEnd(), n.lineStart(), n.point(a, r), n.point(i, r), t = 0) : u !== a && c >= Bo && (Math.abs(e - u) < $o && (e -= u * $o), Math.abs(i - a) < $o && (i -= a * $o), r = Qt(e, r, i, o), n.point(u, r), n.lineEnd(), n.lineStart(), n.point(a, r), t = 0), n.point(e = i, r = o), u = a }, lineEnd: function () { n.lineEnd(), e = r = 0 / 0 }, clean: function () { return 2 - t } } } function Qt(n, t, e, r) { var u, i, o = Math.sin(n - e); return Math.abs(o) > $o ? Math.atan((Math.sin(t) * (i = Math.cos(r)) * Math.sin(e) - Math.sin(r) * (u = Math.cos(t)) * Math.sin(n)) / (u * i * o)) : (t + r) / 2 } function ne(n, t, e, r) { var u; if (null == n) u = e * Bo / 2, r.point(-Bo, u), r.point(0, u), r.point(Bo, u), r.point(Bo, 0), r.point(Bo, -u), r.point(0, -u), r.point(-Bo, -u), r.point(-Bo, 0), r.point(-Bo, u); else if (Math.abs(n[0] - t[0]) > $o) { var i = (n[0] < t[0] ? 1 : -1) * Bo; u = e * i / 2, r.point(-i, u), r.point(0, u), r.point(i, u) } else r.point(t[0], t[1]) } function te(n) { return Gt(Ba, n) } function ee(n) { function t(n, t) { return Math.cos(n) * Math.cos(t) > o } function e(n) { var e, i, o, c, s; return { lineStart: function () { c = o = !1, s = 1 }, point: function (f, h) { var g, p = [f, h], d = t(f, h), v = a ? d ? 0 : u(f, h) : d ? u(f + (0 > f ? Bo : -Bo), h) : 0; if (!e && (c = o = d) && n.lineStart(), d !== o && (g = r(e, p), (Pt(e, g) || Pt(p, g)) && (p[0] += $o, p[1] += $o, d = t(p[0], p[1]))), d !== o) s = 0, d ? (n.lineStart(), g = r(p, e), n.point(g[0], g[1])) : (g = r(e, p), n.point(g[0], g[1]), n.lineEnd()), e = g; else if (l && e && a ^ d) { var m; v & i || !(m = r(p, e, !0)) || (s = 0, a ? (n.lineStart(), n.point(m[0][0], m[0][1]), n.point(m[1][0], m[1][1]), n.lineEnd()) : (n.point(m[1][0], m[1][1]), n.lineEnd(), n.lineStart(), n.point(m[0][0], m[0][1]))) } !d || e && Pt(e, p) || n.point(p[0], p[1]), e = p, o = d, i = v }, lineEnd: function () { o && n.lineEnd(), e = null }, clean: function () { return s | (c && o) << 1 } } } function r(n, t, e) { var r = zt(n), u = zt(t), i = [1, 0, 0], a = Dt(r, u), c = Ct(a, a), l = a[0], s = c - l * l; if (!s) return !e && n; var f = o * c / s, h = -o * l / s, g = Dt(i, a), p = Lt(i, f), d = Lt(a, h); jt(p, d); var v = g, m = Ct(p, v), y = Ct(v, v), M = m * m - y * (Ct(p, p) - 1); if (!(0 > M)) { var x = Math.sqrt(M), b = Lt(v, (-m - x) / y); if (jt(b, p), b = Ft(b), !e) return b; var _, w = n[0], S = t[0], E = n[1], k = t[1]; w > S && (_ = w, w = S, S = _); var A = S - w, N = Math.abs(A - Bo) < $o, q = N || $o > A; if (!N && E > k && (_ = E, E = k, k = _), q ? N ? E + k > 0 ^ b[1] < (Math.abs(b[0] - w) < $o ? E : k) : E <= b[1] && b[1] <= k : A > Bo ^ (w <= b[0] && b[0] <= S)) { var T = Lt(v, (-m + x) / y); return jt(T, p), [b, Ft(T)] } } } function u(t, e) { var r = a ? n : Bo - n, u = 0; return -r > t ? u |= 1 : t > r && (u |= 2), -r > e ? u |= 4 : e > r && (u |= 8), u } function i(n) { return Gt(c, n) } var o = Math.cos(n), a = o > 0, c = [n, 0], l = Math.abs(o) > $o, s = Ne(n, 6 * Jo); return Bt(t, e, s, i) } function re(n, t, e, r) { function u(r, u) { return Math.abs(r[0] - n) < $o ? u > 0 ? 0 : 3 : Math.abs(r[0] - e) < $o ? u > 0 ? 2 : 1 : Math.abs(r[1] - t) < $o ? u > 0 ? 1 : 0 : u > 0 ? 3 : 2 } function i(n, t) { return o(n.point, t.point) } function o(n, t) { var e = u(n, 1), r = u(t, 1); return e !== r ? e - r : 0 === e ? t[1] - n[1] : 1 === e ? n[0] - t[0] : 2 === e ? n[1] - t[1] : t[0] - n[0] } function a(u, i) { var o = i[0] - u[0], a = i[1] - u[1], c = [0, 1]; return Math.abs(o) < $o && Math.abs(a) < $o ? n <= u[0] && u[0] <= e && t <= u[1] && u[1] <= r : ue(n - u[0], o, c) && ue(u[0] - e, -o, c) && ue(t - u[1], a, c) && ue(u[1] - r, -a, c) ? (c[1] < 1 && (i[0] = u[0] + c[1] * o, i[1] = u[1] + c[1] * a), c[0] > 0 && (u[0] += c[0] * o, u[1] += c[0] * a), !0) : !1 } return function (c) { function l(i) { var o = u(i, -1), a = s([0 === o || 3 === o ? n : e, o > 1 ? r : t]); return a } function s(n) { for (var t = 0, e = M.length, r = n[1], u = 0; e > u; ++u)for (var i, o = 1, a = M[u], c = a.length, l = a[0]; c > o; ++o)i = a[o], l[1] <= r ? i[1] > r && f(l, i, n) > 0 && ++t : i[1] <= r && f(l, i, n) < 0 && --t, l = i; return 0 !== t } function f(n, t, e) { return (t[0] - n[0]) * (e[1] - n[1]) - (e[0] - n[0]) * (t[1] - n[1]) } function h(i, a, c, l) { var s = 0, f = 0; if (null == i || (s = u(i, c)) !== (f = u(a, c)) || o(i, a) < 0 ^ c > 0) { do l.point(0 === s || 3 === s ? n : e, s > 1 ? r : t); while ((s = (s + c + 4) % 4) !== f) } else l.point(a[0], a[1]) } function g(u, i) { return u >= n && e >= u && i >= t && r >= i } function p(n, t) { g(n, t) && c.point(n, t) } function d() { T.point = m, M && M.push(x = []), A = !0, k = !1, S = E = 0 / 0 } function v() { y && (m(b, _), w && k && q.rejoin(), y.push(q.buffer())), T.point = p, k && c.lineEnd() } function m(n, t) { n = Math.max(-$a, Math.min($a, n)), t = Math.max(-$a, Math.min($a, t)); var e = g(n, t); if (M && x.push([n, t]), A) b = n, _ = t, w = e, A = !1, e && (c.lineStart(), c.point(n, t)); else if (e && k) c.point(n, t); else { var r = [S, E], u = [n, t]; a(r, u) ? (k || (c.lineStart(), c.point(r[0], r[1])), c.point(u[0], u[1]), e || c.lineEnd()) : e && (c.lineStart(), c.point(n, t)) } S = n, E = t, k = e } var y, M, x, b, _, w, S, E, k, A, N = c, q = Wt(), T = { point: p, lineStart: d, lineEnd: v, polygonStart: function () { c = q, y = [], M = [] }, polygonEnd: function () { c = N, (y = vo.merge(y)).length ? (c.polygonStart(), Zt(y, i, l, h, c), c.polygonEnd()) : s([n, t]) && (c.polygonStart(), c.lineStart(), h(null, null, 1, c), c.lineEnd(), c.polygonEnd()), y = M = x = null } }; return T } } function ue(n, t, e) { if (Math.abs(t) < $o) return 0 >= n; var r = n / t; if (t > 0) { if (r > e[1]) return !1; r > e[0] && (e[0] = r) } else { if (r < e[0]) return !1; r < e[1] && (e[1] = r) } return !0 } function ie(n, t) { function e(e, r) { return e = n(e, r), t(e[0], e[1]) } return n.invert && t.invert && (e.invert = function (e, r) { return e = t.invert(e, r), e && n.invert(e[0], e[1]) }), e } function oe(n) { var t = 0, e = Bo / 3, r = be(n), u = r(t, e); return u.parallels = function (n) { return arguments.length ? r(t = n[0] * Bo / 180, e = n[1] * Bo / 180) : [180 * (t / Bo), 180 * (e / Bo)] }, u } function ae(n, t) { function e(n, t) { var e = Math.sqrt(i - 2 * u * Math.sin(t)) / u; return [e * Math.sin(n *= u), o - e * Math.cos(n)] } var r = Math.sin(n), u = (r + Math.sin(t)) / 2, i = 1 + r * (2 * u - r), o = Math.sqrt(i) / u; return e.invert = function (n, t) { var e = o - t; return [Math.atan2(n, e) / u, P((i - (n * n + e * e) * u * u) / (2 * u))] }, e } function ce() { function n(n, t) { Ja += u * n - r * t, r = n, u = t } var t, e, r, u; tc.point = function (i, o) { tc.point = n, t = r = i, e = u = o }, tc.lineEnd = function () { n(t, e) } } function le(n, t) { Ga > n && (Ga = n), n > Qa && (Qa = n), Ka > t && (Ka = t), t > nc && (nc = t) } function se() { function n(n, t) { o.push("M", n, ",", t, i) } function t(n, t) { o.push("M", n, ",", t), a.point = e } function e(n, t) { o.push("L", n, ",", t) } function r() { a.point = n } function u() { o.push("Z") } var i = fe(4.5), o = [], a = { point: n, lineStart: function () { a.point = t }, lineEnd: r, polygonStart: function () { a.lineEnd = u }, polygonEnd: function () { a.lineEnd = r, a.point = n }, pointRadius: function (n) { return i = fe(n), a }, result: function () { if (o.length) { var n = o.join(""); return o = [], n } } }; return a } function fe(n) { return "m0," + n + "a" + n + "," + n + " 0 1,1 0," + -2 * n + "a" + n + "," + n + " 0 1,1 0," + 2 * n + "z" } function he(n, t) { Ha += n, Fa += t, ++Pa } function ge() { function n(n, r) { var u = n - t, i = r - e, o = Math.sqrt(u * u + i * i); Oa += o * (t + n) / 2, Ra += o * (e + r) / 2, Ya += o, he(t = n, e = r) } var t, e; rc.point = function (r, u) { rc.point = n, he(t = r, e = u) } } function pe() { rc.point = he } function de() { function n(n, t) { var e = n - r, i = t - u, o = Math.sqrt(e * e + i * i); Oa += o * (r + n) / 2, Ra += o * (u + t) / 2, Ya += o, o = u * n - r * t, Ia += o * (r + n), Ua += o * (u + t), Va += 3 * o, he(r = n, u = t) } var t, e, r, u; rc.point = function (i, o) { rc.point = n, he(t = r = i, e = u = o) }, rc.lineEnd = function () { n(t, e) } } function ve(n) { function t(t, e) { n.moveTo(t, e), n.arc(t, e, o, 0, 2 * Bo) } function e(t, e) { n.moveTo(t, e), a.point = r } function r(t, e) { n.lineTo(t, e) } function u() { a.point = t } function i() { n.closePath() } var o = 4.5, a = { point: t, lineStart: function () { a.point = e }, lineEnd: u, polygonStart: function () { a.lineEnd = i }, polygonEnd: function () { a.lineEnd = u, a.point = t }, pointRadius: function (n) { return o = n, a }, result: c }; return a } function me(n) { function t(t) { function r(e, r) { e = n(e, r), t.point(e[0], e[1]) } function u() { M = 0 / 0, S.point = o, t.lineStart() } function o(r, u) { var o = zt([r, u]), a = n(r, u); e(M, x, y, b, _, w, M = a[0], x = a[1], y = r, b = o[0], _ = o[1], w = o[2], i, t), t.point(M, x) } function a() { S.point = r, t.lineEnd() } function c() { u(), S.point = l, S.lineEnd = s } function l(n, t) { o(f = n, h = t), g = M, p = x, d = b, v = _, m = w, S.point = o } function s() { e(M, x, y, b, _, w, g, p, f, d, v, m, i, t), S.lineEnd = a, a() } var f, h, g, p, d, v, m, y, M, x, b, _, w, S = { point: r, lineStart: u, lineEnd: a, polygonStart: function () { t.polygonStart(), S.lineStart = c }, polygonEnd: function () { t.polygonEnd(), S.lineStart = u } }; return S } function e(t, i, o, a, c, l, s, f, h, g, p, d, v, m) { var y = s - t, M = f - i, x = y * y + M * M; if (x > 4 * r && v--) { var b = a + g, _ = c + p, w = l + d, S = Math.sqrt(b * b + _ * _ + w * w), E = Math.asin(w /= S), k = Math.abs(Math.abs(w) - 1) < $o ? (o + h) / 2 : Math.atan2(_, b), A = n(k, E), N = A[0], q = A[1], T = N - t, z = q - i, C = M * T - y * z; (C * C / x > r || Math.abs((y * T + M * z) / x - .5) > .3 || u > a * g + c * p + l * d) && (e(t, i, o, a, c, l, N, q, k, b /= S, _ /= S, w, v, m), m.point(N, q), e(N, q, k, b, _, w, s, f, h, g, p, d, v, m)) } } var r = .5, u = Math.cos(30 * Jo), i = 16; return t.precision = function (n) { return arguments.length ? (i = (r = n * n) > 0 && 16, t) : Math.sqrt(r) }, t } function ye(n) { this.stream = n } function Me(n) { var t = me(function (t, e) { return n([t * Go, e * Go]) }); return function (n) { var e = new ye(n = t(n)); return e.point = function (t, e) { n.point(t * Jo, e * Jo) }, e } } function xe(n) { return be(function () { return n })() } function be(n) { function t(n) { return n = a(n[0] * Jo, n[1] * Jo), [n[0] * h + c, l - n[1] * h] } function e(n) { return n = a.invert((n[0] - c) / h, (l - n[1]) / h), n && [n[0] * Go, n[1] * Go] } function r() { a = ie(o = Se(m, y, M), i); var n = i(d, v); return c = g - n[0] * h, l = p + n[1] * h, u() } function u() { return s && (s.valid = !1, s = null), t } var i, o, a, c, l, s, f = me(function (n, t) { return n = i(n, t), [n[0] * h + c, l - n[1] * h] }), h = 150, g = 480, p = 250, d = 0, v = 0, m = 0, y = 0, M = 0, x = Xa, b = pt, _ = null, w = null; return t.stream = function (n) { return s && (s.valid = !1), s = _e(o, x(f(b(n)))), s.valid = !0, s }, t.clipAngle = function (n) { return arguments.length ? (x = null == n ? (_ = n, Xa) : ee((_ = +n) * Jo), u()) : _ }, t.clipExtent = function (n) { return arguments.length ? (w = n, b = n ? re(n[0][0], n[0][1], n[1][0], n[1][1]) : pt, u()) : w }, t.scale = function (n) { return arguments.length ? (h = +n, r()) : h }, t.translate = function (n) { return arguments.length ? (g = +n[0], p = +n[1], r()) : [g, p] }, t.center = function (n) { return arguments.length ? (d = n[0] % 360 * Jo, v = n[1] % 360 * Jo, r()) : [d * Go, v * Go] }, t.rotate = function (n) { return arguments.length ? (m = n[0] % 360 * Jo, y = n[1] % 360 * Jo, M = n.length > 2 ? n[2] % 360 * Jo : 0, r()) : [m * Go, y * Go, M * Go] }, vo.rebind(t, f, "precision"), function () { return i = n.apply(this, arguments), t.invert = i.invert && e, r() } } function _e(n, t) { var e = new ye(t); return e.point = function (e, r) { r = n(e * Jo, r * Jo), e = r[0], t.point(e > Bo ? e - 2 * Bo : -Bo > e ? e + 2 * Bo : e, r[1]) }, e } function we(n, t) { return [n, t] } function Se(n, t, e) { return n ? t || e ? ie(ke(n), Ae(t, e)) : ke(n) : t || e ? Ae(t, e) : we } function Ee(n) { return function (t, e) { return t += n, [t > Bo ? t - 2 * Bo : -Bo > t ? t + 2 * Bo : t, e] } } function ke(n) { var t = Ee(n); return t.invert = Ee(-n), t } function Ae(n, t) { function e(n, t) { var e = Math.cos(t), a = Math.cos(n) * e, c = Math.sin(n) * e, l = Math.sin(t), s = l * r + a * u; return [Math.atan2(c * i - s * o, a * r - l * u), P(s * i + c * o)] } var r = Math.cos(n), u = Math.sin(n), i = Math.cos(t), o = Math.sin(t); return e.invert = function (n, t) { var e = Math.cos(t), a = Math.cos(n) * e, c = Math.sin(n) * e, l = Math.sin(t), s = l * i - c * o; return [Math.atan2(c * i + l * o, a * r + s * u), P(s * r - a * u)] }, e } function Ne(n, t) { var e = Math.cos(n), r = Math.sin(n); return function (u, i, o, a) { var c = o * t; null != u ? (u = qe(e, u), i = qe(e, i), (o > 0 ? i > u : u > i) && (u += 2 * o * Bo)) : (u = n + 2 * o * Bo, i = n - .5 * c); for (var l, s = u; o > 0 ? s > i : i > s; s -= c)a.point((l = Ft([e, -r * Math.cos(s), -r * Math.sin(s)]))[0], l[1]) } } function qe(n, t) { var e = zt(t); e[0] -= n, Ht(e); var r = F(-e[1]); return ((-e[2] < 0 ? -r : r) + 2 * Math.PI - $o) % (2 * Math.PI) } function Te(n, t, e) { var r = vo.range(n, t - $o, e).concat(t); return function (n) { return r.map(function (t) { return [n, t] }) } } function ze(n, t, e) { var r = vo.range(n, t - $o, e).concat(t); return function (n) { return r.map(function (t) { return [t, n] }) } } function Ce(n) { return n.source } function De(n) { return n.target } function je(n, t, e, r) { var u = Math.cos(t), i = Math.sin(t), o = Math.cos(r), a = Math.sin(r), c = u * Math.cos(n), l = u * Math.sin(n), s = o * Math.cos(e), f = o * Math.sin(e), h = 2 * Math.asin(Math.sqrt(I(r - t) + u * o * I(e - n))), g = 1 / Math.sin(h), p = h ? function (n) { var t = Math.sin(n *= h) * g, e = Math.sin(h - n) * g, r = e * c + t * s, u = e * l + t * f, o = e * i + t * a; return [Math.atan2(u, r) * Go, Math.atan2(o, Math.sqrt(r * r + u * u)) * Go] } : function () { return [n * Go, t * Go] }; return p.distance = h, p } function Le() { function n(n, u) { var i = Math.sin(u *= Jo), o = Math.cos(u), a = Math.abs((n *= Jo) - t), c = Math.cos(a); uc += Math.atan2(Math.sqrt((a = o * Math.sin(a)) * a + (a = r * i - e * o * c) * a), e * i + r * o * c), t = n, e = i, r = o } var t, e, r; ic.point = function (u, i) { t = u * Jo, e = Math.sin(i *= Jo), r = Math.cos(i), ic.point = n }, ic.lineEnd = function () { ic.point = ic.lineEnd = c } } function He(n, t) { function e(t, e) { var r = Math.cos(t), u = Math.cos(e), i = n(r * u); return [i * u * Math.sin(t), i * Math.sin(e)] } return e.invert = function (n, e) { var r = Math.sqrt(n * n + e * e), u = t(r), i = Math.sin(u), o = Math.cos(u); return [Math.atan2(n * i, r * o), Math.asin(r && e * i / r)] }, e } function Fe(n, t) { function e(n, t) { var e = Math.abs(Math.abs(t) - Bo / 2) < $o ? 0 : o / Math.pow(u(t), i); return [e * Math.sin(i * n), o - e * Math.cos(i * n)] } var r = Math.cos(n), u = function (n) { return Math.tan(Bo / 4 + n / 2) }, i = n === t ? Math.sin(n) : Math.log(r / Math.cos(t)) / Math.log(u(t) / u(n)), o = r * Math.pow(u(n), i) / i; return i ? (e.invert = function (n, t) { var e = o - t, r = H(i) * Math.sqrt(n * n + e * e); return [Math.atan2(n, e) / i, 2 * Math.atan(Math.pow(o / r, 1 / i)) - Bo / 2] }, e) : Oe } function Pe(n, t) { function e(n, t) { var e = i - t; return [e * Math.sin(u * n), i - e * Math.cos(u * n)] } var r = Math.cos(n), u = n === t ? Math.sin(n) : (r - Math.cos(t)) / (t - n), i = r / u + n; return Math.abs(u) < $o ? we : (e.invert = function (n, t) { var e = i - t; return [Math.atan2(n, e) / u, i - H(u) * Math.sqrt(n * n + e * e)] }, e) } function Oe(n, t) { return [n, Math.log(Math.tan(Bo / 4 + t / 2))] } function Re(n) { var t, e = xe(n), r = e.scale, u = e.translate, i = e.clipExtent; return e.scale = function () { var n = r.apply(e, arguments); return n === e ? t ? e.clipExtent(null) : e : n }, e.translate = function () { var n = u.apply(e, arguments); return n === e ? t ? e.clipExtent(null) : e : n }, e.clipExtent = function (n) { var o = i.apply(e, arguments); if (o === e) { if (t = null == n) { var a = Bo * r(), c = u(); i([[c[0] - a, c[1] - a], [c[0] + a, c[1] + a]]) } } else t && (o = null); return o }, e.clipExtent(null) } function Ye(n, t) { var e = Math.cos(t) * Math.sin(n); return [Math.log((1 + e) / (1 - e)) / 2, Math.atan2(Math.tan(t), Math.cos(n))] } function Ie(n) { function t(t) { function o() { l.push("M", i(n(s), a)) } for (var c, l = [], s = [], f = -1, h = t.length, g = gt(e), p = gt(r); ++f < h;)u.call(this, c = t[f], f) ? s.push([+g.call(this, c, f), +p.call(this, c, f)]) : s.length && (o(), s = []); return s.length && o(), l.length ? l.join("") : null } var e = Ue, r = Ve, u = Vt, i = Ze, o = i.key, a = .7; return t.x = function (n) { return arguments.length ? (e = n, t) : e }, t.y = function (n) { return arguments.length ? (r = n, t) : r }, t.defined = function (n) { return arguments.length ? (u = n, t) : u }, t.interpolate = function (n) { return arguments.length ? (o = "function" == typeof n ? i = n : (i = fc.get(n) || Ze).key, t) : o }, t.tension = function (n) { return arguments.length ? (a = n, t) : a }, t } function Ue(n) { return n[0] } function Ve(n) { return n[1] } function Ze(n) { return n.join("L") } function Xe(n) { return Ze(n) + "Z" } function Be(n) { for (var t = 0, e = n.length, r = n[0], u = [r[0], ",", r[1]]; ++t < e;)u.push("H", (r[0] + (r = n[t])[0]) / 2, "V", r[1]); return e > 1 && u.push("H", r[0]), u.join("") } function $e(n) { for (var t = 0, e = n.length, r = n[0], u = [r[0], ",", r[1]]; ++t < e;)u.push("V", (r = n[t])[1], "H", r[0]); return u.join("") } function We(n) { for (var t = 0, e = n.length, r = n[0], u = [r[0], ",", r[1]]; ++t < e;)u.push("H", (r = n[t])[0], "V", r[1]); return u.join("") } function Je(n, t) { return n.length < 4 ? Ze(n) : n[1] + Qe(n.slice(1, n.length - 1), nr(n, t)) } function Ge(n, t) { return n.length < 3 ? Ze(n) : n[0] + Qe((n.push(n[0]), n), nr([n[n.length - 2]].concat(n, [n[1]]), t)) } function Ke(n, t) { return n.length < 3 ? Ze(n) : n[0] + Qe(n, nr(n, t)) } function Qe(n, t) { if (t.length < 1 || n.length != t.length && n.length != t.length + 2) return Ze(n); var e = n.length != t.length, r = "", u = n[0], i = n[1], o = t[0], a = o, c = 1; if (e && (r += "Q" + (i[0] - 2 * o[0] / 3) + "," + (i[1] - 2 * o[1] / 3) + "," + i[0] + "," + i[1], u = n[1], c = 2), t.length > 1) { a = t[1], i = n[c], c++ , r += "C" + (u[0] + o[0]) + "," + (u[1] + o[1]) + "," + (i[0] - a[0]) + "," + (i[1] - a[1]) + "," + i[0] + "," + i[1]; for (var l = 2; l < t.length; l++ , c++)i = n[c], a = t[l], r += "S" + (i[0] - a[0]) + "," + (i[1] - a[1]) + "," + i[0] + "," + i[1] } if (e) { var s = n[c]; r += "Q" + (i[0] + 2 * a[0] / 3) + "," + (i[1] + 2 * a[1] / 3) + "," + s[0] + "," + s[1] } return r } function nr(n, t) { for (var e, r = [], u = (1 - t) / 2, i = n[0], o = n[1], a = 1, c = n.length; ++a < c;)e = i, i = o, o = n[a], r.push([u * (o[0] - e[0]), u * (o[1] - e[1])]); return r } function tr(n) { if (n.length < 3) return Ze(n); var t = 1, e = n.length, r = n[0], u = r[0], i = r[1], o = [u, u, u, (r = n[1])[0]], a = [i, i, i, r[1]], c = [u, ",", i, "L", ir(pc, o), ",", ir(pc, a)]; for (n.push(n[e - 1]); ++t <= e;)r = n[t], o.shift(), o.push(r[0]), a.shift(), a.push(r[1]), or(c, o, a); return n.pop(), c.push("L", r), c.join("") } function er(n) { if (n.length < 4) return Ze(n); for (var t, e = [], r = -1, u = n.length, i = [0], o = [0]; ++r < 3;)t = n[r], i.push(t[0]), o.push(t[1]); for (e.push(ir(pc, i) + "," + ir(pc, o)), --r; ++r < u;)t = n[r], i.shift(), i.push(t[0]), o.shift(), o.push(t[1]), or(e, i, o); return e.join("") } function rr(n) { for (var t, e, r = -1, u = n.length, i = u + 4, o = [], a = []; ++r < 4;)e = n[r % u], o.push(e[0]), a.push(e[1]); for (t = [ir(pc, o), ",", ir(pc, a)], --r; ++r < i;)e = n[r % u], o.shift(), o.push(e[0]), a.shift(), a.push(e[1]), or(t, o, a); return t.join("") } function ur(n, t) { var e = n.length - 1; if (e) for (var r, u, i = n[0][0], o = n[0][1], a = n[e][0] - i, c = n[e][1] - o, l = -1; ++l <= e;)r = n[l], u = l / e, r[0] = t * r[0] + (1 - t) * (i + u * a), r[1] = t * r[1] + (1 - t) * (o + u * c); return tr(n) } function ir(n, t) { return n[0] * t[0] + n[1] * t[1] + n[2] * t[2] + n[3] * t[3] } function or(n, t, e) { n.push("C", ir(hc, t), ",", ir(hc, e), ",", ir(gc, t), ",", ir(gc, e), ",", ir(pc, t), ",", ir(pc, e)) } function ar(n, t) { return (t[1] - n[1]) / (t[0] - n[0]) } function cr(n) { for (var t = 0, e = n.length - 1, r = [], u = n[0], i = n[1], o = r[0] = ar(u, i); ++t < e;)r[t] = (o + (o = ar(u = i, i = n[t + 1]))) / 2; return r[t] = o, r } function lr(n) {
29
+ for (var t, e, r, u, i = [], o = cr(n), a = -1, c = n.length - 1; ++a < c;)t = ar(n[a], n[a + 1]), Math.abs(t) < 1e-6 ? o[a] = o[a + 1] = 0 : (e = o[a] / t, r = o[a + 1] / t, u = e * e + r * r, u > 9 && (u = 3 * t / Math.sqrt(u), o[a] = u * e, o[a + 1] = u * r));
30
+ for (a = -1; ++a <= c;)u = (n[Math.min(c, a + 1)][0] - n[Math.max(0, a - 1)][0]) / (6 * (1 + o[a] * o[a])), i.push([u || 0, o[a] * u || 0]); return i
31
+ } function sr(n) { return n.length < 3 ? Ze(n) : n[0] + Qe(n, lr(n)) } function fr(n, t, e, r) { var u, i, o, a, c, l, s; return u = r[n], i = u[0], o = u[1], u = r[t], a = u[0], c = u[1], u = r[e], l = u[0], s = u[1], (s - o) * (a - i) - (c - o) * (l - i) > 0 } function hr(n, t, e) { return (e[0] - t[0]) * (n[1] - t[1]) < (e[1] - t[1]) * (n[0] - t[0]) } function gr(n, t, e, r) { var u = n[0], i = e[0], o = t[0] - u, a = r[0] - i, c = n[1], l = e[1], s = t[1] - c, f = r[1] - l, h = (a * (c - l) - f * (u - i)) / (f * o - a * s); return [u + h * o, c + h * s] } function pr(n) { var t = n[0], e = n[n.length - 1]; return !(t[0] - e[0] || t[1] - e[1]) } function dr(n, t) { var e = { list: n.map(function (n, t) { return { index: t, x: n[0], y: n[1] } }).sort(function (n, t) { return n.y < t.y ? -1 : n.y > t.y ? 1 : n.x < t.x ? -1 : n.x > t.x ? 1 : 0 }), bottomSite: null }, r = { list: [], leftEnd: null, rightEnd: null, init: function () { r.leftEnd = r.createHalfEdge(null, "l"), r.rightEnd = r.createHalfEdge(null, "l"), r.leftEnd.r = r.rightEnd, r.rightEnd.l = r.leftEnd, r.list.unshift(r.leftEnd, r.rightEnd) }, createHalfEdge: function (n, t) { return { edge: n, side: t, vertex: null, l: null, r: null } }, insert: function (n, t) { t.l = n, t.r = n.r, n.r.l = t, n.r = t }, leftBound: function (n) { var t = r.leftEnd; do t = t.r; while (t != r.rightEnd && u.rightOf(t, n)); return t = t.l }, del: function (n) { n.l.r = n.r, n.r.l = n.l, n.edge = null }, right: function (n) { return n.r }, left: function (n) { return n.l }, leftRegion: function (n) { return null == n.edge ? e.bottomSite : n.edge.region[n.side] }, rightRegion: function (n) { return null == n.edge ? e.bottomSite : n.edge.region[vc[n.side]] } }, u = { bisect: function (n, t) { var e = { region: { l: n, r: t }, ep: { l: null, r: null } }, r = t.x - n.x, u = t.y - n.y, i = r > 0 ? r : -r, o = u > 0 ? u : -u; return e.c = n.x * r + n.y * u + .5 * (r * r + u * u), i > o ? (e.a = 1, e.b = u / r, e.c /= r) : (e.b = 1, e.a = r / u, e.c /= u), e }, intersect: function (n, t) { var e = n.edge, r = t.edge; if (!e || !r || e.region.r == r.region.r) return null; var u = e.a * r.b - e.b * r.a; if (Math.abs(u) < 1e-10) return null; var i, o, a = (e.c * r.b - r.c * e.b) / u, c = (r.c * e.a - e.c * r.a) / u, l = e.region.r, s = r.region.r; l.y < s.y || l.y == s.y && l.x < s.x ? (i = n, o = e) : (i = t, o = r); var f = a >= o.region.r.x; return f && "l" === i.side || !f && "r" === i.side ? null : { x: a, y: c } }, rightOf: function (n, t) { var e = n.edge, r = e.region.r, u = t.x > r.x; if (u && "l" === n.side) return 1; if (!u && "r" === n.side) return 0; if (1 === e.a) { var i = t.y - r.y, o = t.x - r.x, a = 0, c = 0; if (!u && e.b < 0 || u && e.b >= 0 ? c = a = i >= e.b * o : (c = t.x + t.y * e.b > e.c, e.b < 0 && (c = !c), c || (a = 1)), !a) { var l = r.x - e.region.l.x; c = e.b * (o * o - i * i) < l * i * (1 + 2 * o / l + e.b * e.b), e.b < 0 && (c = !c) } } else { var s = e.c - e.a * t.x, f = t.y - s, h = t.x - r.x, g = s - r.y; c = f * f > h * h + g * g } return "l" === n.side ? c : !c }, endPoint: function (n, e, r) { n.ep[e] = r, n.ep[vc[e]] && t(n) }, distance: function (n, t) { var e = n.x - t.x, r = n.y - t.y; return Math.sqrt(e * e + r * r) } }, i = { list: [], insert: function (n, t, e) { n.vertex = t, n.ystar = t.y + e; for (var r = 0, u = i.list, o = u.length; o > r; r++) { var a = u[r]; if (!(n.ystar > a.ystar || n.ystar == a.ystar && t.x > a.vertex.x)) break } u.splice(r, 0, n) }, del: function (n) { for (var t = 0, e = i.list, r = e.length; r > t && e[t] != n; ++t); e.splice(t, 1) }, empty: function () { return 0 === i.list.length }, nextEvent: function (n) { for (var t = 0, e = i.list, r = e.length; r > t; ++t)if (e[t] == n) return e[t + 1]; return null }, min: function () { var n = i.list[0]; return { x: n.vertex.x, y: n.ystar } }, extractMin: function () { return i.list.shift() } }; r.init(), e.bottomSite = e.list.shift(); for (var o, a, c, l, s, f, h, g, p, d, v, m, y, M = e.list.shift(); ;)if (i.empty() || (o = i.min()), M && (i.empty() || M.y < o.y || M.y == o.y && M.x < o.x)) a = r.leftBound(M), c = r.right(a), h = r.rightRegion(a), m = u.bisect(h, M), f = r.createHalfEdge(m, "l"), r.insert(a, f), d = u.intersect(a, f), d && (i.del(a), i.insert(a, d, u.distance(d, M))), a = f, f = r.createHalfEdge(m, "r"), r.insert(a, f), d = u.intersect(f, c), d && i.insert(f, d, u.distance(d, M)), M = e.list.shift(); else { if (i.empty()) break; a = i.extractMin(), l = r.left(a), c = r.right(a), s = r.right(c), h = r.leftRegion(a), g = r.rightRegion(c), v = a.vertex, u.endPoint(a.edge, a.side, v), u.endPoint(c.edge, c.side, v), r.del(a), i.del(c), r.del(c), y = "l", h.y > g.y && (p = h, h = g, g = p, y = "r"), m = u.bisect(h, g), f = r.createHalfEdge(m, y), r.insert(l, f), u.endPoint(m, vc[y], v), d = u.intersect(l, f), d && (i.del(l), i.insert(l, d, u.distance(d, h))), d = u.intersect(f, s), d && i.insert(f, d, u.distance(d, h)) } for (a = r.right(r.leftEnd); a != r.rightEnd; a = r.right(a))t(a.edge) } function vr(n) { return n.x } function mr(n) { return n.y } function yr() { return { leaf: !0, nodes: [], point: null, x: null, y: null } } function Mr(n, t, e, r, u, i) { if (!n(t, e, r, u, i)) { var o = .5 * (e + u), a = .5 * (r + i), c = t.nodes; c[0] && Mr(n, c[0], e, r, o, a), c[1] && Mr(n, c[1], o, r, u, a), c[2] && Mr(n, c[2], e, a, o, i), c[3] && Mr(n, c[3], o, a, u, i) } } function xr(n, t) { n = vo.rgb(n), t = vo.rgb(t); var e = n.r, r = n.g, u = n.b, i = t.r - e, o = t.g - r, a = t.b - u; return function (n) { return "#" + at(Math.round(e + i * n)) + at(Math.round(r + o * n)) + at(Math.round(u + a * n)) } } function br(n, t) { var e, r = {}, u = {}; for (e in n) e in t ? r[e] = Sr(n[e], t[e]) : u[e] = n[e]; for (e in t) e in n || (u[e] = t[e]); return function (n) { for (e in r) u[e] = r[e](n); return u } } function _r(n, t) { return t -= n = +n, function (e) { return n + t * e } } function wr(n, t) { var e, r, u, i, o, a = 0, c = 0, l = [], s = []; for (n += "", t += "", mc.lastIndex = 0, r = 0; e = mc.exec(t); ++r)e.index && l.push(t.substring(a, c = e.index)), s.push({ i: l.length, x: e[0] }), l.push(null), a = mc.lastIndex; for (a < t.length && l.push(t.substring(a)), r = 0, i = s.length; (e = mc.exec(n)) && i > r; ++r)if (o = s[r], o.x == e[0]) { if (o.i) if (null == l[o.i + 1]) for (l[o.i - 1] += o.x, l.splice(o.i, 1), u = r + 1; i > u; ++u)s[u].i--; else for (l[o.i - 1] += o.x + l[o.i + 1], l.splice(o.i, 2), u = r + 1; i > u; ++u)s[u].i -= 2; else if (null == l[o.i + 1]) l[o.i] = o.x; else for (l[o.i] = o.x + l[o.i + 1], l.splice(o.i + 1, 1), u = r + 1; i > u; ++u)s[u].i--; s.splice(r, 1), i-- , r-- } else o.x = _r(parseFloat(e[0]), parseFloat(o.x)); for (; i > r;)o = s.pop(), null == l[o.i + 1] ? l[o.i] = o.x : (l[o.i] = o.x + l[o.i + 1], l.splice(o.i + 1, 1)), i--; return 1 === l.length ? null == l[0] ? (o = s[0].x, function (n) { return o(n) + "" }) : function () { return t } : function (n) { for (r = 0; i > r; ++r)l[(o = s[r]).i] = o.x(n); return l.join("") } } function Sr(n, t) { for (var e, r = vo.interpolators.length; --r >= 0 && !(e = vo.interpolators[r](n, t));); return e } function Er(n, t) { var e, r = [], u = [], i = n.length, o = t.length, a = Math.min(n.length, t.length); for (e = 0; a > e; ++e)r.push(Sr(n[e], t[e])); for (; i > e; ++e)u[e] = n[e]; for (; o > e; ++e)u[e] = t[e]; return function (n) { for (e = 0; a > e; ++e)u[e] = r[e](n); return u } } function kr(n) { return function (t) { return 0 >= t ? 0 : t >= 1 ? 1 : n(t) } } function Ar(n) { return function (t) { return 1 - n(1 - t) } } function Nr(n) { return function (t) { return .5 * (.5 > t ? n(2 * t) : 2 - n(2 - 2 * t)) } } function qr(n) { return n * n } function Tr(n) { return n * n * n } function zr(n) { if (0 >= n) return 0; if (n >= 1) return 1; var t = n * n, e = t * n; return 4 * (.5 > n ? e : 3 * (n - t) + e - .75) } function Cr(n) { return function (t) { return Math.pow(t, n) } } function Dr(n) { return 1 - Math.cos(n * Bo / 2) } function jr(n) { return Math.pow(2, 10 * (n - 1)) } function Lr(n) { return 1 - Math.sqrt(1 - n * n) } function Hr(n, t) { var e; return arguments.length < 2 && (t = .45), arguments.length ? e = t / (2 * Bo) * Math.asin(1 / n) : (n = 1, e = t / 4), function (r) { return 1 + n * Math.pow(2, 10 * -r) * Math.sin(2 * (r - e) * Bo / t) } } function Fr(n) { return n || (n = 1.70158), function (t) { return t * t * ((n + 1) * t - n) } } function Pr(n) { return 1 / 2.75 > n ? 7.5625 * n * n : 2 / 2.75 > n ? 7.5625 * (n -= 1.5 / 2.75) * n + .75 : 2.5 / 2.75 > n ? 7.5625 * (n -= 2.25 / 2.75) * n + .9375 : 7.5625 * (n -= 2.625 / 2.75) * n + .984375 } function Or(n, t) { n = vo.hcl(n), t = vo.hcl(t); var e = n.h, r = n.c, u = n.l, i = t.h - e, o = t.c - r, a = t.l - u; return isNaN(o) && (o = 0, r = isNaN(r) ? t.c : r), isNaN(i) ? (i = 0, e = isNaN(e) ? t.h : e) : i > 180 ? i -= 360 : -180 > i && (i += 360), function (n) { return W(e + i * n, r + o * n, u + a * n) + "" } } function Rr(n, t) { n = vo.hsl(n), t = vo.hsl(t); var e = n.h, r = n.s, u = n.l, i = t.h - e, o = t.s - r, a = t.l - u; return isNaN(o) && (o = 0, r = isNaN(r) ? t.s : r), isNaN(i) ? (i = 0, e = isNaN(e) ? t.h : e) : i > 180 ? i -= 360 : -180 > i && (i += 360), function (n) { return X(e + i * n, r + o * n, u + a * n) + "" } } function Yr(n, t) { n = vo.lab(n), t = vo.lab(t); var e = n.l, r = n.a, u = n.b, i = t.l - e, o = t.a - r, a = t.b - u; return function (n) { return K(e + i * n, r + o * n, u + a * n) + "" } } function Ir(n, t) { return t -= n, function (e) { return Math.round(n + t * e) } } function Ur(n) { var t = [n.a, n.b], e = [n.c, n.d], r = Zr(t), u = Vr(t, e), i = Zr(Xr(e, t, -u)) || 0; t[0] * e[1] < e[0] * t[1] && (t[0] *= -1, t[1] *= -1, r *= -1, u *= -1), this.rotate = (r ? Math.atan2(t[1], t[0]) : Math.atan2(-e[0], e[1])) * Go, this.translate = [n.e, n.f], this.scale = [r, i], this.skew = i ? Math.atan2(u, i) * Go : 0 } function Vr(n, t) { return n[0] * t[0] + n[1] * t[1] } function Zr(n) { var t = Math.sqrt(Vr(n, n)); return t && (n[0] /= t, n[1] /= t), t } function Xr(n, t, e) { return n[0] += e * t[0], n[1] += e * t[1], n } function Br(n, t) { var e, r = [], u = [], i = vo.transform(n), o = vo.transform(t), a = i.translate, c = o.translate, l = i.rotate, s = o.rotate, f = i.skew, h = o.skew, g = i.scale, p = o.scale; return a[0] != c[0] || a[1] != c[1] ? (r.push("translate(", null, ",", null, ")"), u.push({ i: 1, x: _r(a[0], c[0]) }, { i: 3, x: _r(a[1], c[1]) })) : c[0] || c[1] ? r.push("translate(" + c + ")") : r.push(""), l != s ? (l - s > 180 ? s += 360 : s - l > 180 && (l += 360), u.push({ i: r.push(r.pop() + "rotate(", null, ")") - 2, x: _r(l, s) })) : s && r.push(r.pop() + "rotate(" + s + ")"), f != h ? u.push({ i: r.push(r.pop() + "skewX(", null, ")") - 2, x: _r(f, h) }) : h && r.push(r.pop() + "skewX(" + h + ")"), g[0] != p[0] || g[1] != p[1] ? (e = r.push(r.pop() + "scale(", null, ",", null, ")"), u.push({ i: e - 4, x: _r(g[0], p[0]) }, { i: e - 2, x: _r(g[1], p[1]) })) : (1 != p[0] || 1 != p[1]) && r.push(r.pop() + "scale(" + p + ")"), e = u.length, function (n) { for (var t, i = -1; ++i < e;)r[(t = u[i]).i] = t.x(n); return r.join("") } } function $r(n, t) { return t = t - (n = +n) ? 1 / (t - n) : 0, function (e) { return (e - n) * t } } function Wr(n, t) { return t = t - (n = +n) ? 1 / (t - n) : 0, function (e) { return Math.max(0, Math.min(1, (e - n) * t)) } } function Jr(n) { for (var t = n.source, e = n.target, r = Kr(t, e), u = [t]; t !== r;)t = t.parent, u.push(t); for (var i = u.length; e !== r;)u.splice(i, 0, e), e = e.parent; return u } function Gr(n) { for (var t = [], e = n.parent; null != e;)t.push(n), n = e, e = e.parent; return t.push(n), t } function Kr(n, t) { if (n === t) return n; for (var e = Gr(n), r = Gr(t), u = e.pop(), i = r.pop(), o = null; u === i;)o = u, u = e.pop(), i = r.pop(); return o } function Qr(n) { n.fixed |= 2 } function nu(n) { n.fixed &= -7 } function tu(n) { n.fixed |= 4, n.px = n.x, n.py = n.y } function eu(n) { n.fixed &= -5 } function ru(n, t, e) { var r = 0, u = 0; if (n.charge = 0, !n.leaf) for (var i, o = n.nodes, a = o.length, c = -1; ++c < a;)i = o[c], null != i && (ru(i, t, e), n.charge += i.charge, r += i.charge * i.cx, u += i.charge * i.cy); if (n.point) { n.leaf || (n.point.x += Math.random() - .5, n.point.y += Math.random() - .5); var l = t * e[n.point.index]; n.charge += n.pointCharge = l, r += l * n.point.x, u += l * n.point.y } n.cx = r / n.charge, n.cy = u / n.charge } function uu(n, t) { return vo.rebind(n, t, "sort", "children", "value"), n.nodes = n, n.links = cu, n } function iu(n) { return n.children } function ou(n) { return n.value } function au(n, t) { return t.value - n.value } function cu(n) { return vo.merge(n.map(function (n) { return (n.children || []).map(function (t) { return { source: n, target: t } }) })) } function lu(n) { return n.x } function su(n) { return n.y } function fu(n, t, e) { n.y0 = t, n.y = e } function hu(n) { return vo.range(n.length) } function gu(n) { for (var t = -1, e = n[0].length, r = []; ++t < e;)r[t] = 0; return r } function pu(n) { for (var t, e = 1, r = 0, u = n[0][1], i = n.length; i > e; ++e)(t = n[e][1]) > u && (r = e, u = t); return r } function du(n) { return n.reduce(vu, 0) } function vu(n, t) { return n + t[1] } function mu(n, t) { return yu(n, Math.ceil(Math.log(t.length) / Math.LN2 + 1)) } function yu(n, t) { for (var e = -1, r = +n[0], u = (n[1] - r) / t, i = []; ++e <= t;)i[e] = u * e + r; return i } function Mu(n) { return [vo.min(n), vo.max(n)] } function xu(n, t) { return n.parent == t.parent ? 1 : 2 } function bu(n) { var t = n.children; return t && t.length ? t[0] : n._tree.thread } function _u(n) { var t, e = n.children; return e && (t = e.length) ? e[t - 1] : n._tree.thread } function wu(n, t) { var e = n.children; if (e && (u = e.length)) for (var r, u, i = -1; ++i < u;)t(r = wu(e[i], t), n) > 0 && (n = r); return n } function Su(n, t) { return n.x - t.x } function Eu(n, t) { return t.x - n.x } function ku(n, t) { return n.depth - t.depth } function Au(n, t) { function e(n, r) { var u = n.children; if (u && (o = u.length)) for (var i, o, a = null, c = -1; ++c < o;)i = u[c], e(i, a), a = i; t(n, r) } e(n, null) } function Nu(n) { for (var t, e = 0, r = 0, u = n.children, i = u.length; --i >= 0;)t = u[i]._tree, t.prelim += e, t.mod += e, e += t.shift + (r += t.change) } function qu(n, t, e) { n = n._tree, t = t._tree; var r = e / (t.number - n.number); n.change += r, t.change -= r, t.shift += e, t.prelim += e, t.mod += e } function Tu(n, t, e) { return n._tree.ancestor.parent == t.parent ? n._tree.ancestor : e } function zu(n, t) { return n.value - t.value } function Cu(n, t) { var e = n._pack_next; n._pack_next = t, t._pack_prev = n, t._pack_next = e, e._pack_prev = t } function Du(n, t) { n._pack_next = t, t._pack_prev = n } function ju(n, t) { var e = t.x - n.x, r = t.y - n.y, u = n.r + t.r; return .999 * u * u > e * e + r * r } function Lu(n) { function t(n) { s = Math.min(n.x - n.r, s), f = Math.max(n.x + n.r, f), h = Math.min(n.y - n.r, h), g = Math.max(n.y + n.r, g) } if ((e = n.children) && (l = e.length)) { var e, r, u, i, o, a, c, l, s = 1 / 0, f = -1 / 0, h = 1 / 0, g = -1 / 0; if (e.forEach(Hu), r = e[0], r.x = -r.r, r.y = 0, t(r), l > 1 && (u = e[1], u.x = u.r, u.y = 0, t(u), l > 2)) for (i = e[2], Ou(r, u, i), t(i), Cu(r, i), r._pack_prev = i, Cu(i, u), u = r._pack_next, o = 3; l > o; o++) { Ou(r, u, i = e[o]); var p = 0, d = 1, v = 1; for (a = u._pack_next; a !== u; a = a._pack_next, d++)if (ju(a, i)) { p = 1; break } if (1 == p) for (c = r._pack_prev; c !== a._pack_prev && !ju(c, i); c = c._pack_prev, v++); p ? (v > d || d == v && u.r < r.r ? Du(r, u = a) : Du(r = c, u), o--) : (Cu(r, i), u = i, t(i)) } var m = (s + f) / 2, y = (h + g) / 2, M = 0; for (o = 0; l > o; o++)i = e[o], i.x -= m, i.y -= y, M = Math.max(M, i.r + Math.sqrt(i.x * i.x + i.y * i.y)); n.r = M, e.forEach(Fu) } } function Hu(n) { n._pack_next = n._pack_prev = n } function Fu(n) { delete n._pack_next, delete n._pack_prev } function Pu(n, t, e, r) { var u = n.children; if (n.x = t += r * n.x, n.y = e += r * n.y, n.r *= r, u) for (var i = -1, o = u.length; ++i < o;)Pu(u[i], t, e, r) } function Ou(n, t, e) { var r = n.r + e.r, u = t.x - n.x, i = t.y - n.y; if (r && (u || i)) { var o = t.r + e.r, a = u * u + i * i; o *= o, r *= r; var c = .5 + (r - o) / (2 * a), l = Math.sqrt(Math.max(0, 2 * o * (r + a) - (r -= a) * r - o * o)) / (2 * a); e.x = n.x + c * u + l * i, e.y = n.y + c * i - l * u } else e.x = n.x + r, e.y = n.y } function Ru(n) { return 1 + vo.max(n, function (n) { return n.y }) } function Yu(n) { return n.reduce(function (n, t) { return n + t.x }, 0) / n.length } function Iu(n) { var t = n.children; return t && t.length ? Iu(t[0]) : n } function Uu(n) { var t, e = n.children; return e && (t = e.length) ? Uu(e[t - 1]) : n } function Vu(n) { return { x: n.x, y: n.y, dx: n.dx, dy: n.dy } } function Zu(n, t) { var e = n.x + t[3], r = n.y + t[0], u = n.dx - t[1] - t[3], i = n.dy - t[0] - t[2]; return 0 > u && (e += u / 2, u = 0), 0 > i && (r += i / 2, i = 0), { x: e, y: r, dx: u, dy: i } } function Xu(n) { var t = n[0], e = n[n.length - 1]; return e > t ? [t, e] : [e, t] } function Bu(n) { return n.rangeExtent ? n.rangeExtent() : Xu(n.range()) } function $u(n, t, e, r) { var u = e(n[0], n[1]), i = r(t[0], t[1]); return function (n) { return i(u(n)) } } function Wu(n, t) { var e, r = 0, u = n.length - 1, i = n[r], o = n[u]; return i > o && (e = r, r = u, u = e, e = i, i = o, o = e), n[r] = t.floor(i), n[u] = t.ceil(o), n } function Ju(n) { return n ? { floor: function (t) { return Math.floor(t / n) * n }, ceil: function (t) { return Math.ceil(t / n) * n } } : Ac } function Gu(n, t, e, r) { var u = [], i = [], o = 0, a = Math.min(n.length, t.length) - 1; for (n[a] < n[0] && (n = n.slice().reverse(), t = t.slice().reverse()); ++o <= a;)u.push(e(n[o - 1], n[o])), i.push(r(t[o - 1], t[o])); return function (t) { var e = vo.bisect(n, t, 1, a) - 1; return i[e](u[e](t)) } } function Ku(n, t, e, r) { function u() { var u = Math.min(n.length, t.length) > 2 ? Gu : $u, c = r ? Wr : $r; return o = u(n, t, c, e), a = u(t, n, c, Sr), i } function i(n) { return o(n) } var o, a; return i.invert = function (n) { return a(n) }, i.domain = function (t) { return arguments.length ? (n = t.map(Number), u()) : n }, i.range = function (n) { return arguments.length ? (t = n, u()) : t }, i.rangeRound = function (n) { return i.range(n).interpolate(Ir) }, i.clamp = function (n) { return arguments.length ? (r = n, u()) : r }, i.interpolate = function (n) { return arguments.length ? (e = n, u()) : e }, i.ticks = function (t) { return ei(n, t) }, i.tickFormat = function (t, e) { return ri(n, t, e) }, i.nice = function (t) { return ni(n, t), u() }, i.copy = function () { return Ku(n, t, e, r) }, u() } function Qu(n, t) { return vo.rebind(n, t, "range", "rangeRound", "interpolate", "clamp") } function ni(n, t) { return Wu(n, Ju(ti(n, t)[2])) } function ti(n, t) { null == t && (t = 10); var e = Xu(n), r = e[1] - e[0], u = Math.pow(10, Math.floor(Math.log(r / t) / Math.LN10)), i = t / r * u; return .15 >= i ? u *= 10 : .35 >= i ? u *= 5 : .75 >= i && (u *= 2), e[0] = Math.ceil(e[0] / u) * u, e[1] = Math.floor(e[1] / u) * u + .5 * u, e[2] = u, e } function ei(n, t) { return vo.range.apply(vo, ti(n, t)) } function ri(n, t, e) { var r = -Math.floor(Math.log(ti(n, t)[2]) / Math.LN10 + .01); return vo.format(e ? e.replace(Sa, function (n, t, e, u, i, o, a, c, l, s) { return [t, e, u, i, o, a, c, l || "." + (r - 2 * ("%" === s)), s].join("") }) : ",." + r + "f") } function ui(n, t, e, r) { function u(n) { return (e ? Math.log(0 > n ? 0 : n) : -Math.log(n > 0 ? 0 : -n)) / Math.log(t) } function i(n) { return e ? Math.pow(t, n) : -Math.pow(t, -n) } function o(t) { return n(u(t)) } return o.invert = function (t) { return i(n.invert(t)) }, o.domain = function (t) { return arguments.length ? (e = t[0] >= 0, n.domain((r = t.map(Number)).map(u)), o) : r }, o.base = function (e) { return arguments.length ? (t = +e, n.domain(r.map(u)), o) : t }, o.nice = function () { var t = Wu(r.map(u), e ? Math : qc); return n.domain(t), r = t.map(i), o }, o.ticks = function () { var n = Xu(r), o = [], a = n[0], c = n[1], l = Math.floor(u(a)), s = Math.ceil(u(c)), f = t % 1 ? 2 : t; if (isFinite(s - l)) { if (e) { for (; s > l; l++)for (var h = 1; f > h; h++)o.push(i(l) * h); o.push(i(l)) } else for (o.push(i(l)); l++ < s;)for (var h = f - 1; h > 0; h--)o.push(i(l) * h); for (l = 0; o[l] < a; l++); for (s = o.length; o[s - 1] > c; s--); o = o.slice(l, s) } return o }, o.tickFormat = function (n, t) { if (!arguments.length) return Nc; arguments.length < 2 ? t = Nc : "function" != typeof t && (t = vo.format(t)); var r, a = Math.max(.1, n / o.ticks().length), c = e ? (r = 1e-12, Math.ceil) : (r = -1e-12, Math.floor); return function (n) { return n / i(c(u(n) + r)) <= a ? t(n) : "" } }, o.copy = function () { return ui(n.copy(), t, e, r) }, Qu(o, n) } function ii(n, t, e) { function r(t) { return n(u(t)) } var u = oi(t), i = oi(1 / t); return r.invert = function (t) { return i(n.invert(t)) }, r.domain = function (t) { return arguments.length ? (n.domain((e = t.map(Number)).map(u)), r) : e }, r.ticks = function (n) { return ei(e, n) }, r.tickFormat = function (n, t) { return ri(e, n, t) }, r.nice = function (n) { return r.domain(ni(e, n)) }, r.exponent = function (o) { return arguments.length ? (u = oi(t = o), i = oi(1 / t), n.domain(e.map(u)), r) : t }, r.copy = function () { return ii(n.copy(), t, e) }, Qu(r, n) } function oi(n) { return function (t) { return 0 > t ? -Math.pow(-t, n) : Math.pow(t, n) } } function ai(n, t) { function e(t) { return o[((i.get(t) || i.set(t, n.push(t))) - 1) % o.length] } function r(t, e) { return vo.range(n.length).map(function (n) { return t + e * n }) } var i, o, a; return e.domain = function (r) { if (!arguments.length) return n; n = [], i = new u; for (var o, a = -1, c = r.length; ++a < c;)i.has(o = r[a]) || i.set(o, n.push(o)); return e[t.t].apply(e, t.a) }, e.range = function (n) { return arguments.length ? (o = n, a = 0, t = { t: "range", a: arguments }, e) : o }, e.rangePoints = function (u, i) { arguments.length < 2 && (i = 0); var c = u[0], l = u[1], s = (l - c) / (Math.max(1, n.length - 1) + i); return o = r(n.length < 2 ? (c + l) / 2 : c + s * i / 2, s), a = 0, t = { t: "rangePoints", a: arguments }, e }, e.rangeBands = function (u, i, c) { arguments.length < 2 && (i = 0), arguments.length < 3 && (c = i); var l = u[1] < u[0], s = u[l - 0], f = u[1 - l], h = (f - s) / (n.length - i + 2 * c); return o = r(s + h * c, h), l && o.reverse(), a = h * (1 - i), t = { t: "rangeBands", a: arguments }, e }, e.rangeRoundBands = function (u, i, c) { arguments.length < 2 && (i = 0), arguments.length < 3 && (c = i); var l = u[1] < u[0], s = u[l - 0], f = u[1 - l], h = Math.floor((f - s) / (n.length - i + 2 * c)), g = f - s - (n.length - i) * h; return o = r(s + Math.round(g / 2), h), l && o.reverse(), a = Math.round(h * (1 - i)), t = { t: "rangeRoundBands", a: arguments }, e }, e.rangeBand = function () { return a }, e.rangeExtent = function () { return Xu(t.a[0]) }, e.copy = function () { return ai(n, t) }, e.domain(n) } function ci(n, t) { function e() { var e = 0, i = t.length; for (u = []; ++e < i;)u[e - 1] = vo.quantile(n, e / i); return r } function r(n) { return isNaN(n = +n) ? void 0 : t[vo.bisect(u, n)] } var u; return r.domain = function (t) { return arguments.length ? (n = t.filter(function (n) { return !isNaN(n) }).sort(vo.ascending), e()) : n }, r.range = function (n) { return arguments.length ? (t = n, e()) : t }, r.quantiles = function () { return u }, r.invertExtent = function (e) { return e = t.indexOf(e), 0 > e ? [0 / 0, 0 / 0] : [e > 0 ? u[e - 1] : n[0], e < u.length ? u[e] : n[n.length - 1]] }, r.copy = function () { return ci(n, t) }, e() } function li(n, t, e) { function r(t) { return e[Math.max(0, Math.min(o, Math.floor(i * (t - n))))] } function u() { return i = e.length / (t - n), o = e.length - 1, r } var i, o; return r.domain = function (e) { return arguments.length ? (n = +e[0], t = +e[e.length - 1], u()) : [n, t] }, r.range = function (n) { return arguments.length ? (e = n, u()) : e }, r.invertExtent = function (t) { return t = e.indexOf(t), t = 0 > t ? 0 / 0 : t / i + n, [t, t + 1 / i] }, r.copy = function () { return li(n, t, e) }, u() } function si(n, t) { function e(e) { return e >= e ? t[vo.bisect(n, e)] : void 0 } return e.domain = function (t) { return arguments.length ? (n = t, e) : n }, e.range = function (n) { return arguments.length ? (t = n, e) : t }, e.invertExtent = function (e) { return e = t.indexOf(e), [n[e - 1], n[e]] }, e.copy = function () { return si(n, t) }, e } function fi(n) { function t(n) { return +n } return t.invert = t, t.domain = t.range = function (e) { return arguments.length ? (n = e.map(t), t) : n }, t.ticks = function (t) { return ei(n, t) }, t.tickFormat = function (t, e) { return ri(n, t, e) }, t.copy = function () { return fi(n) }, t } function hi(n) { return n.innerRadius } function gi(n) { return n.outerRadius } function pi(n) { return n.startAngle } function di(n) { return n.endAngle } function vi(n) { for (var t, e, r, u = -1, i = n.length; ++u < i;)t = n[u], e = t[0], r = t[1] + jc, t[0] = e * Math.cos(r), t[1] = e * Math.sin(r); return n } function mi(n) { function t(t) { function c() { d.push("M", a(n(m), f), s, l(n(v.reverse()), f), "Z") } for (var h, g, p, d = [], v = [], m = [], y = -1, M = t.length, x = gt(e), b = gt(u), _ = e === r ? function () { return g } : gt(r), w = u === i ? function () { return p } : gt(i); ++y < M;)o.call(this, h = t[y], y) ? (v.push([g = +x.call(this, h, y), p = +b.call(this, h, y)]), m.push([+_.call(this, h, y), +w.call(this, h, y)])) : v.length && (c(), v = [], m = []); return v.length && c(), d.length ? d.join("") : null } var e = Ue, r = Ue, u = 0, i = Ve, o = Vt, a = Ze, c = a.key, l = a, s = "L", f = .7; return t.x = function (n) { return arguments.length ? (e = r = n, t) : r }, t.x0 = function (n) { return arguments.length ? (e = n, t) : e }, t.x1 = function (n) { return arguments.length ? (r = n, t) : r }, t.y = function (n) { return arguments.length ? (u = i = n, t) : i }, t.y0 = function (n) { return arguments.length ? (u = n, t) : u }, t.y1 = function (n) { return arguments.length ? (i = n, t) : i }, t.defined = function (n) { return arguments.length ? (o = n, t) : o }, t.interpolate = function (n) { return arguments.length ? (c = "function" == typeof n ? a = n : (a = fc.get(n) || Ze).key, l = a.reverse || a, s = a.closed ? "M" : "L", t) : c }, t.tension = function (n) { return arguments.length ? (f = n, t) : f }, t } function yi(n) { return n.radius } function Mi(n) { return [n.x, n.y] } function xi(n) { return function () { var t = n.apply(this, arguments), e = t[0], r = t[1] + jc; return [e * Math.cos(r), e * Math.sin(r)] } } function bi() { return 64 } function _i() { return "circle" } function wi(n) { var t = Math.sqrt(n / Bo); return "M0," + t + "A" + t + "," + t + " 0 1,1 0," + -t + "A" + t + "," + t + " 0 1,1 0," + t + "Z" } function Si(n, t) { return jo(n, Yc), n.id = t, n } function Ei() { var n = this.__transition__; n && ++n.active } function ki(n, t, e, r) { var u = n.id; return N(n, "function" == typeof e ? function (n, i, o) { n.__transition__[u].tween.set(t, r(e.call(n, n.__data__, i, o))) } : (e = r(e), function (n) { n.__transition__[u].tween.set(t, e) })) } function Ai(n) { return null == n && (n = ""), function () { this.textContent = n } } function Ni(n, t, e, r) { var i = n.__transition__ || (n.__transition__ = { active: 0, count: 0 }), o = i[e]; if (!o) { var a = r.time; o = i[e] = { tween: new u, time: a, ease: r.ease, delay: r.delay, duration: r.duration }, ++i.count, vo.timer(function (r) { function u(r) { return i.active > e ? l() : (i.active = e, o.event && o.event.start.call(n, s, t), o.tween.forEach(function (e, r) { (r = r.call(n, s, t)) && p.push(r) }), c(r) ? 1 : (Mt(c, 0, a), void 0)) } function c(r) { if (i.active !== e) return l(); for (var u = (r - h) / g, a = f(u), c = p.length; c > 0;)p[--c].call(n, a); return u >= 1 ? (o.event && o.event.end.call(n, s, t), l()) : void 0 } function l() { return --i.count ? delete i[e] : delete n.__transition__, 1 } var s = n.__data__, f = o.ease, h = o.delay, g = o.duration, p = []; return r >= h ? u(r) : (Mt(u, h, a), void 0) }, 0, a) } } function qi(n, t) { n.attr("transform", function (n) { return "translate(" + t(n) + ",0)" }) } function Ti(n, t) { n.attr("transform", function (n) { return "translate(0," + t(n) + ")" }) } function zi() { this._ = new Date(arguments.length > 1 ? Date.UTC.apply(this, arguments) : arguments[0]) } function Ci(n, t, e) { function r(t) { var e = n(t), r = i(e, 1); return r - t > t - e ? e : r } function u(e) { return t(e = n(new $c(e - 1)), 1), e } function i(n, e) { return t(n = new $c(+n), e), n } function o(n, r, i) { var o = u(n), a = []; if (i > 1) for (; r > o;)e(o) % i || a.push(new Date(+o)), t(o, 1); else for (; r > o;)a.push(new Date(+o)), t(o, 1); return a } function a(n, t, e) { try { $c = zi; var r = new zi; return r._ = n, o(r, t, e) } finally { $c = Date } } n.floor = n, n.round = r, n.ceil = u, n.offset = i, n.range = o; var c = n.utc = Di(n); return c.floor = c, c.round = Di(r), c.ceil = Di(u), c.offset = Di(i), c.range = a, n } function Di(n) { return function (t, e) { try { $c = zi; var r = new zi; return r._ = t, n(r, e)._ } finally { $c = Date } } } function ji(n) { function t(t) { for (var r, u, i, o = [], a = -1, c = 0; ++a < e;)37 === n.charCodeAt(a) && (o.push(n.substring(c, a)), null != (u = gl[r = n.charAt(++a)]) && (r = n.charAt(++a)), (i = pl[r]) && (r = i(t, null == u ? "e" === r ? " " : "0" : u)), o.push(r), c = a + 1); return o.push(n.substring(c, a)), o.join("") } var e = n.length; return t.parse = function (t) { var e = { y: 1900, m: 0, d: 1, H: 0, M: 0, S: 0, L: 0 }, r = Li(e, n, t, 0); if (r != t.length) return null; "p" in e && (e.H = e.H % 12 + 12 * e.p); var u = new $c; return "j" in e ? u.setFullYear(e.y, 0, e.j) : "w" in e && ("W" in e || "U" in e) ? (u.setFullYear(e.y, 0, 1), u.setFullYear(e.y, 0, "W" in e ? (e.w + 6) % 7 + 7 * e.W - (u.getDay() + 5) % 7 : e.w + 7 * e.U - (u.getDay() + 6) % 7)) : u.setFullYear(e.y, e.m, e.d), u.setHours(e.H, e.M, e.S, e.L), u }, t.toString = function () { return n }, t } function Li(n, t, e, r) { for (var u, i, o, a = 0, c = t.length, l = e.length; c > a;) { if (r >= l) return -1; if (u = t.charCodeAt(a++), 37 === u) { if (o = t.charAt(a++), i = dl[o in gl ? t.charAt(a++) : o], !i || (r = i(n, e, r)) < 0) return -1 } else if (u != e.charCodeAt(r++)) return -1 } return r } function Hi(n) { return new RegExp("^(?:" + n.map(vo.requote).join("|") + ")", "i") } function Fi(n) { for (var t = new u, e = -1, r = n.length; ++e < r;)t.set(n[e].toLowerCase(), e); return t } function Pi(n, t, e) { var r = 0 > n ? "-" : "", u = (r ? -n : n) + "", i = u.length; return r + (e > i ? new Array(e - i + 1).join(t) + u : u) } function Oi(n, t, e) { ol.lastIndex = 0; var r = ol.exec(t.substring(e)); return r ? (n.w = al.get(r[0].toLowerCase()), e + r[0].length) : -1 } function Ri(n, t, e) { ul.lastIndex = 0; var r = ul.exec(t.substring(e)); return r ? (n.w = il.get(r[0].toLowerCase()), e + r[0].length) : -1 } function Yi(n, t, e) { vl.lastIndex = 0; var r = vl.exec(t.substring(e, e + 1)); return r ? (n.w = +r[0], e + r[0].length) : -1 } function Ii(n, t, e) { vl.lastIndex = 0; var r = vl.exec(t.substring(e)); return r ? (n.U = +r[0], e + r[0].length) : -1 } function Ui(n, t, e) { vl.lastIndex = 0; var r = vl.exec(t.substring(e)); return r ? (n.W = +r[0], e + r[0].length) : -1 } function Vi(n, t, e) { sl.lastIndex = 0; var r = sl.exec(t.substring(e)); return r ? (n.m = fl.get(r[0].toLowerCase()), e + r[0].length) : -1 } function Zi(n, t, e) { cl.lastIndex = 0; var r = cl.exec(t.substring(e)); return r ? (n.m = ll.get(r[0].toLowerCase()), e + r[0].length) : -1 } function Xi(n, t, e) { return Li(n, pl.c.toString(), t, e) } function Bi(n, t, e) { return Li(n, pl.x.toString(), t, e) } function $i(n, t, e) { return Li(n, pl.X.toString(), t, e) } function Wi(n, t, e) { vl.lastIndex = 0; var r = vl.exec(t.substring(e, e + 4)); return r ? (n.y = +r[0], e + r[0].length) : -1 } function Ji(n, t, e) { vl.lastIndex = 0; var r = vl.exec(t.substring(e, e + 2)); return r ? (n.y = Gi(+r[0]), e + r[0].length) : -1 } function Gi(n) { return n + (n > 68 ? 1900 : 2e3) } function Ki(n, t, e) { vl.lastIndex = 0; var r = vl.exec(t.substring(e, e + 2)); return r ? (n.m = r[0] - 1, e + r[0].length) : -1 } function Qi(n, t, e) { vl.lastIndex = 0; var r = vl.exec(t.substring(e, e + 2)); return r ? (n.d = +r[0], e + r[0].length) : -1 } function no(n, t, e) { vl.lastIndex = 0; var r = vl.exec(t.substring(e, e + 3)); return r ? (n.j = +r[0], e + r[0].length) : -1 } function to(n, t, e) { vl.lastIndex = 0; var r = vl.exec(t.substring(e, e + 2)); return r ? (n.H = +r[0], e + r[0].length) : -1 } function eo(n, t, e) { vl.lastIndex = 0; var r = vl.exec(t.substring(e, e + 2)); return r ? (n.M = +r[0], e + r[0].length) : -1 } function ro(n, t, e) { vl.lastIndex = 0; var r = vl.exec(t.substring(e, e + 2)); return r ? (n.S = +r[0], e + r[0].length) : -1 } function uo(n, t, e) { vl.lastIndex = 0; var r = vl.exec(t.substring(e, e + 3)); return r ? (n.L = +r[0], e + r[0].length) : -1 } function io(n, t, e) { var r = ml.get(t.substring(e, e += 2).toLowerCase()); return null == r ? -1 : (n.p = r, e) } function oo(n) { var t = n.getTimezoneOffset(), e = t > 0 ? "-" : "+", r = ~~(Math.abs(t) / 60), u = Math.abs(t) % 60; return e + Pi(r, "0", 2) + Pi(u, "0", 2) } function ao(n, t, e) { hl.lastIndex = 0; var r = hl.exec(t.substring(e, e + 1)); return r ? e + r[0].length : -1 } function co(n) { function t(n) { try { $c = zi; var t = new $c; return t._ = n, e(t) } finally { $c = Date } } var e = ji(n); return t.parse = function (n) { try { $c = zi; var t = e.parse(n); return t && t._ } finally { $c = Date } }, t.toString = e.toString, t } function lo(n) { return n.toISOString() } function so(n, t, e) { function r(t) { return n(t) } function u(n, e) { var r = n[1] - n[0], u = r / e, i = vo.bisect(Ml, u); return i == Ml.length ? [t.year, ti(n.map(function (n) { return n / 31536e6 }), e)[2]] : i ? t[u / Ml[i - 1] < Ml[i] / u ? i - 1 : i] : [wl, ti(n, e)[2]] } return r.invert = function (t) { return fo(n.invert(t)) }, r.domain = function (t) { return arguments.length ? (n.domain(t), r) : n.domain().map(fo) }, r.nice = function (n, t) { function e(e) { return !isNaN(e) && !n.range(e, fo(+e + 1), t).length } var i = r.domain(), o = Xu(i), a = null == n ? u(o, 10) : "number" == typeof n && u(o, n); return a && (n = a[0], t = a[1]), r.domain(Wu(i, t > 1 ? { floor: function (t) { for (; e(t = n.floor(t));)t = fo(t - 1); return t }, ceil: function (t) { for (; e(t = n.ceil(t));)t = fo(+t + 1); return t } } : n)) }, r.ticks = function (n, t) { var e = Xu(r.domain()), i = null == n ? u(e, 10) : "number" == typeof n ? u(e, n) : !n.range && [{ range: n }, t]; return i && (n = i[0], t = i[1]), n.range(e[0], fo(+e[1] + 1), t) }, r.tickFormat = function () { return e }, r.copy = function () { return so(n.copy(), t, e) }, Qu(r, n) } function fo(n) { return new Date(n) } function ho(n) { return function (t) { for (var e = n.length - 1, r = n[e]; !r[1](t);)r = n[--e]; return r[0](t) } } function go(n) { return JSON.parse(n.responseText) } function po(n) { var t = Mo.createRange(); return t.selectNode(Mo.body), t.createContextualFragment(n.responseText) } var vo = { version: "3.3.1" }; Date.now || (Date.now = function () { return +new Date }); var mo = [].slice, yo = function (n) { return mo.call(n) }, Mo = document, xo = Mo.documentElement, bo = window; try { yo(xo.childNodes)[0].nodeType } catch (_o) { yo = function (n) { for (var t = n.length, e = new Array(t); t--;)e[t] = n[t]; return e } } try { Mo.createElement("div").style.setProperty("opacity", 0, "") } catch (wo) { var So = bo.Element.prototype, Eo = So.setAttribute, ko = So.setAttributeNS, Ao = bo.CSSStyleDeclaration.prototype, No = Ao.setProperty; So.setAttribute = function (n, t) { Eo.call(this, n, t + "") }, So.setAttributeNS = function (n, t, e) { ko.call(this, n, t, e + "") }, Ao.setProperty = function (n, t, e) { No.call(this, n, t + "", e) } } vo.ascending = function (n, t) { return t > n ? -1 : n > t ? 1 : n >= t ? 0 : 0 / 0 }, vo.descending = function (n, t) { return n > t ? -1 : t > n ? 1 : t >= n ? 0 : 0 / 0 }, vo.min = function (n, t) { var e, r, u = -1, i = n.length; if (1 === arguments.length) { for (; ++u < i && !(null != (e = n[u]) && e >= e);)e = void 0; for (; ++u < i;)null != (r = n[u]) && e > r && (e = r) } else { for (; ++u < i && !(null != (e = t.call(n, n[u], u)) && e >= e);)e = void 0; for (; ++u < i;)null != (r = t.call(n, n[u], u)) && e > r && (e = r) } return e }, vo.max = function (n, t) { var e, r, u = -1, i = n.length; if (1 === arguments.length) { for (; ++u < i && !(null != (e = n[u]) && e >= e);)e = void 0; for (; ++u < i;)null != (r = n[u]) && r > e && (e = r) } else { for (; ++u < i && !(null != (e = t.call(n, n[u], u)) && e >= e);)e = void 0; for (; ++u < i;)null != (r = t.call(n, n[u], u)) && r > e && (e = r) } return e }, vo.extent = function (n, t) { var e, r, u, i = -1, o = n.length; if (1 === arguments.length) { for (; ++i < o && !(null != (e = u = n[i]) && e >= e);)e = u = void 0; for (; ++i < o;)null != (r = n[i]) && (e > r && (e = r), r > u && (u = r)) } else { for (; ++i < o && !(null != (e = u = t.call(n, n[i], i)) && e >= e);)e = void 0; for (; ++i < o;)null != (r = t.call(n, n[i], i)) && (e > r && (e = r), r > u && (u = r)) } return [e, u] }, vo.sum = function (n, t) { var e, r = 0, u = n.length, i = -1; if (1 === arguments.length) for (; ++i < u;)isNaN(e = +n[i]) || (r += e); else for (; ++i < u;)isNaN(e = +t.call(n, n[i], i)) || (r += e); return r }, vo.mean = function (t, e) { var r, u = t.length, i = 0, o = -1, a = 0; if (1 === arguments.length) for (; ++o < u;)n(r = t[o]) && (i += (r - i) / ++a); else for (; ++o < u;)n(r = e.call(t, t[o], o)) && (i += (r - i) / ++a); return a ? i : void 0 }, vo.quantile = function (n, t) { var e = (n.length - 1) * t + 1, r = Math.floor(e), u = +n[r - 1], i = e - r; return i ? u + i * (n[r] - u) : u }, vo.median = function (t, e) { return arguments.length > 1 && (t = t.map(e)), t = t.filter(n), t.length ? vo.quantile(t.sort(vo.ascending), .5) : void 0 }, vo.bisector = function (n) { return { left: function (t, e, r, u) { for (arguments.length < 3 && (r = 0), arguments.length < 4 && (u = t.length); u > r;) { var i = r + u >>> 1; n.call(t, t[i], i) < e ? r = i + 1 : u = i } return r }, right: function (t, e, r, u) { for (arguments.length < 3 && (r = 0), arguments.length < 4 && (u = t.length); u > r;) { var i = r + u >>> 1; e < n.call(t, t[i], i) ? u = i : r = i + 1 } return r } } }; var qo = vo.bisector(function (n) { return n }); vo.bisectLeft = qo.left, vo.bisect = vo.bisectRight = qo.right, vo.shuffle = function (n) { for (var t, e, r = n.length; r;)e = 0 | Math.random() * r-- , t = n[r], n[r] = n[e], n[e] = t; return n }, vo.permute = function (n, t) { for (var e = t.length, r = new Array(e); e--;)r[e] = n[t[e]]; return r }, vo.pairs = function (n) { for (var t, e = 0, r = n.length - 1, u = n[0], i = new Array(0 > r ? 0 : r); r > e;)i[e] = [t = u, u = n[++e]]; return i }, vo.zip = function () { if (!(u = arguments.length)) return []; for (var n = -1, e = vo.min(arguments, t), r = new Array(e); ++n < e;)for (var u, i = -1, o = r[n] = new Array(u); ++i < u;)o[i] = arguments[i][n]; return r }, vo.transpose = function (n) { return vo.zip.apply(vo, n) }, vo.keys = function (n) { var t = []; for (var e in n) t.push(e); return t }, vo.values = function (n) { var t = []; for (var e in n) t.push(n[e]); return t }, vo.entries = function (n) { var t = []; for (var e in n) t.push({ key: e, value: n[e] }); return t }, vo.merge = function (n) { return Array.prototype.concat.apply([], n) }, vo.range = function (n, t, r) {
32
+ if (arguments.length < 3 && (r = 1, arguments.length < 2 && (t = n, n = 0)), 1 / 0 === (t - n) / r) throw new Error("infinite range"); var u, i = [], o = e(Math.abs(r)), a = -1; if (n *= o, t *= o, r *= o, 0 > r) for (; (u = n + r * ++a) > t;)i.push(u / o);
33
+ else for (; (u = n + r * ++a) < t;)i.push(u / o); return i
34
+ }, vo.map = function (n) { var t = new u; if (n instanceof u) n.forEach(function (n, e) { t.set(n, e) }); else for (var e in n) t.set(e, n[e]); return t }, r(u, { has: function (n) { return To + n in this }, get: function (n) { return this[To + n] }, set: function (n, t) { return this[To + n] = t }, remove: function (n) { return n = To + n, n in this && delete this[n] }, keys: function () { var n = []; return this.forEach(function (t) { n.push(t) }), n }, values: function () { var n = []; return this.forEach(function (t, e) { n.push(e) }), n }, entries: function () { var n = []; return this.forEach(function (t, e) { n.push({ key: t, value: e }) }), n }, forEach: function (n) { for (var t in this) t.charCodeAt(0) === zo && n.call(this, t.substring(1), this[t]) } }); var To = "\0", zo = To.charCodeAt(0); vo.nest = function () { function n(t, a, c) { if (c >= o.length) return r ? r.call(i, a) : e ? a.sort(e) : a; for (var l, s, f, h, g = -1, p = a.length, d = o[c++], v = new u; ++g < p;)(h = v.get(l = d(s = a[g]))) ? h.push(s) : v.set(l, [s]); return t ? (s = t(), f = function (e, r) { s.set(e, n(t, r, c)) }) : (s = {}, f = function (e, r) { s[e] = n(t, r, c) }), v.forEach(f), s } function t(n, e) { if (e >= o.length) return n; var r = [], u = a[e++]; return n.forEach(function (n, u) { r.push({ key: n, values: t(u, e) }) }), u ? r.sort(function (n, t) { return u(n.key, t.key) }) : r } var e, r, i = {}, o = [], a = []; return i.map = function (t, e) { return n(e, t, 0) }, i.entries = function (e) { return t(n(vo.map, e, 0), 0) }, i.key = function (n) { return o.push(n), i }, i.sortKeys = function (n) { return a[o.length - 1] = n, i }, i.sortValues = function (n) { return e = n, i }, i.rollup = function (n) { return r = n, i }, i }, vo.set = function (n) { var t = new i; if (n) for (var e = 0, r = n.length; r > e; ++e)t.add(n[e]); return t }, r(i, { has: function (n) { return To + n in this }, add: function (n) { return this[To + n] = !0, n }, remove: function (n) { return n = To + n, n in this && delete this[n] }, values: function () { var n = []; return this.forEach(function (t) { n.push(t) }), n }, forEach: function (n) { for (var t in this) t.charCodeAt(0) === zo && n.call(this, t.substring(1)) } }), vo.behavior = {}, vo.rebind = function (n, t) { for (var e, r = 1, u = arguments.length; ++r < u;)n[e = arguments[r]] = o(n, t, t[e]); return n }; var Co = ["webkit", "ms", "moz", "Moz", "o", "O"]; vo.dispatch = function () { for (var n = new l, t = -1, e = arguments.length; ++t < e;)n[arguments[t]] = s(n); return n }, l.prototype.on = function (n, t) { var e = n.indexOf("."), r = ""; if (e >= 0 && (r = n.substring(e + 1), n = n.substring(0, e)), n) return arguments.length < 2 ? this[n].on(r) : this[n].on(r, t); if (2 === arguments.length) { if (null == t) for (n in this) this.hasOwnProperty(n) && this[n].on(r, null); return this } }, vo.event = null, vo.requote = function (n) { return n.replace(Do, "\\$&") }; var Do = /[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g, jo = {}.__proto__ ? function (n, t) { n.__proto__ = t } : function (n, t) { for (var e in t) n[e] = t[e] }, Lo = function (n, t) { return t.querySelector(n) }, Ho = function (n, t) { return t.querySelectorAll(n) }, Fo = xo[a(xo, "matchesSelector")], Po = function (n, t) { return Fo.call(n, t) }; "function" == typeof Sizzle && (Lo = function (n, t) { return Sizzle(n, t)[0] || null }, Ho = function (n, t) { return Sizzle.uniqueSort(Sizzle(n, t)) }, Po = Sizzle.matchesSelector), vo.selection = function () { return Io }; var Oo = vo.selection.prototype = []; Oo.select = function (n) { var t, e, r, u, i = []; n = d(n); for (var o = -1, a = this.length; ++o < a;) { i.push(t = []), t.parentNode = (r = this[o]).parentNode; for (var c = -1, l = r.length; ++c < l;)(u = r[c]) ? (t.push(e = n.call(u, u.__data__, c, o)), e && "__data__" in u && (e.__data__ = u.__data__)) : t.push(null) } return p(i) }, Oo.selectAll = function (n) { var t, e, r = []; n = v(n); for (var u = -1, i = this.length; ++u < i;)for (var o = this[u], a = -1, c = o.length; ++a < c;)(e = o[a]) && (r.push(t = yo(n.call(e, e.__data__, a, u))), t.parentNode = e); return p(r) }; var Ro = { svg: "http://www.w3.org/2000/svg", xhtml: "http://www.w3.org/1999/xhtml", xlink: "http://www.w3.org/1999/xlink", xml: "http://www.w3.org/XML/1998/namespace", xmlns: "http://www.w3.org/2000/xmlns/" }; vo.ns = { prefix: Ro, qualify: function (n) { var t = n.indexOf(":"), e = n; return t >= 0 && (e = n.substring(0, t), n = n.substring(t + 1)), Ro.hasOwnProperty(e) ? { space: Ro[e], local: n } : n } }, Oo.attr = function (n, t) { if (arguments.length < 2) { if ("string" == typeof n) { var e = this.node(); return n = vo.ns.qualify(n), n.local ? e.getAttributeNS(n.space, n.local) : e.getAttribute(n) } for (t in n) this.each(m(t, n[t])); return this } return this.each(m(n, t)) }, Oo.classed = function (n, t) { if (arguments.length < 2) { if ("string" == typeof n) { var e = this.node(), r = (n = n.trim().split(/^|\s+/g)).length, u = -1; if (t = e.classList) { for (; ++u < r;)if (!t.contains(n[u])) return !1 } else for (t = e.getAttribute("class"); ++u < r;)if (!M(n[u]).test(t)) return !1; return !0 } for (t in n) this.each(x(t, n[t])); return this } return this.each(x(n, t)) }, Oo.style = function (n, t, e) { var r = arguments.length; if (3 > r) { if ("string" != typeof n) { 2 > r && (t = ""); for (e in n) this.each(_(e, n[e], t)); return this } if (2 > r) return bo.getComputedStyle(this.node(), null).getPropertyValue(n); e = "" } return this.each(_(n, t, e)) }, Oo.property = function (n, t) { if (arguments.length < 2) { if ("string" == typeof n) return this.node()[n]; for (t in n) this.each(w(t, n[t])); return this } return this.each(w(n, t)) }, Oo.text = function (n) { return arguments.length ? this.each("function" == typeof n ? function () { var t = n.apply(this, arguments); this.textContent = null == t ? "" : t } : null == n ? function () { this.textContent = "" } : function () { this.textContent = n }) : this.node().textContent }, Oo.html = function (n) { return arguments.length ? this.each("function" == typeof n ? function () { var t = n.apply(this, arguments); this.innerHTML = null == t ? "" : t } : null == n ? function () { this.innerHTML = "" } : function () { this.innerHTML = n }) : this.node().innerHTML }, Oo.append = function (n) { return n = S(n), this.select(function () { return this.appendChild(n.apply(this, arguments)) }) }, Oo.insert = function (n, t) { return n = S(n), t = d(t), this.select(function () { return this.insertBefore(n.apply(this, arguments), t.apply(this, arguments)) }) }, Oo.remove = function () { return this.each(function () { var n = this.parentNode; n && n.removeChild(this) }) }, Oo.data = function (n, t) { function e(n, e) { var r, i, o, a = n.length, f = e.length, h = Math.min(a, f), g = new Array(f), p = new Array(f), d = new Array(a); if (t) { var v, m = new u, y = new u, M = []; for (r = -1; ++r < a;)v = t.call(i = n[r], i.__data__, r), m.has(v) ? d[r] = i : m.set(v, i), M.push(v); for (r = -1; ++r < f;)v = t.call(e, o = e[r], r), (i = m.get(v)) ? (g[r] = i, i.__data__ = o) : y.has(v) || (p[r] = E(o)), y.set(v, o), m.remove(v); for (r = -1; ++r < a;)m.has(M[r]) && (d[r] = n[r]) } else { for (r = -1; ++r < h;)i = n[r], o = e[r], i ? (i.__data__ = o, g[r] = i) : p[r] = E(o); for (; f > r; ++r)p[r] = E(e[r]); for (; a > r; ++r)d[r] = n[r] } p.update = g, p.parentNode = g.parentNode = d.parentNode = n.parentNode, c.push(p), l.push(g), s.push(d) } var r, i, o = -1, a = this.length; if (!arguments.length) { for (n = new Array(a = (r = this[0]).length); ++o < a;)(i = r[o]) && (n[o] = i.__data__); return n } var c = q([]), l = p([]), s = p([]); if ("function" == typeof n) for (; ++o < a;)e(r = this[o], n.call(r, r.parentNode.__data__, o)); else for (; ++o < a;)e(r = this[o], n); return l.enter = function () { return c }, l.exit = function () { return s }, l }, Oo.datum = function (n) { return arguments.length ? this.property("__data__", n) : this.property("__data__") }, Oo.filter = function (n) { var t, e, r, u = []; "function" != typeof n && (n = k(n)); for (var i = 0, o = this.length; o > i; i++) { u.push(t = []), t.parentNode = (e = this[i]).parentNode; for (var a = 0, c = e.length; c > a; a++)(r = e[a]) && n.call(r, r.__data__, a) && t.push(r) } return p(u) }, Oo.order = function () { for (var n = -1, t = this.length; ++n < t;)for (var e, r = this[n], u = r.length - 1, i = r[u]; --u >= 0;)(e = r[u]) && (i && i !== e.nextSibling && i.parentNode.insertBefore(e, i), i = e); return this }, Oo.sort = function (n) { n = A.apply(this, arguments); for (var t = -1, e = this.length; ++t < e;)this[t].sort(n); return this.order() }, Oo.each = function (n) { return N(this, function (t, e, r) { n.call(t, t.__data__, e, r) }) }, Oo.call = function (n) { var t = yo(arguments); return n.apply(t[0] = this, t), this }, Oo.empty = function () { return !this.node() }, Oo.node = function () { for (var n = 0, t = this.length; t > n; n++)for (var e = this[n], r = 0, u = e.length; u > r; r++) { var i = e[r]; if (i) return i } return null }, Oo.size = function () { var n = 0; return this.each(function () { ++n }), n }; var Yo = []; vo.selection.enter = q, vo.selection.enter.prototype = Yo, Yo.append = Oo.append, Yo.empty = Oo.empty, Yo.node = Oo.node, Yo.call = Oo.call, Yo.size = Oo.size, Yo.select = function (n) { for (var t, e, r, u, i, o = [], a = -1, c = this.length; ++a < c;) { r = (u = this[a]).update, o.push(t = []), t.parentNode = u.parentNode; for (var l = -1, s = u.length; ++l < s;)(i = u[l]) ? (t.push(r[l] = e = n.call(u.parentNode, i.__data__, l, a)), e.__data__ = i.__data__) : t.push(null) } return p(o) }, Yo.insert = function (n, t) { return arguments.length < 2 && (t = T(this)), Oo.insert.call(this, n, t) }, vo.select = function (n) { var t = ["string" == typeof n ? Lo(n, Mo) : n]; return t.parentNode = xo, p([t]) }, vo.selectAll = function (n) { var t = yo("string" == typeof n ? Ho(n, Mo) : n); return t.parentNode = xo, p([t]) }; var Io = vo.select(xo); Oo.on = function (n, t, e) { var r = arguments.length; if (3 > r) { if ("string" != typeof n) { 2 > r && (t = !1); for (e in n) this.each(z(e, n[e], t)); return this } if (2 > r) return (r = this.node()["__on" + n]) && r._; e = !1 } return this.each(z(n, t, e)) }; var Uo = vo.map({ mouseenter: "mouseover", mouseleave: "mouseout" }); Uo.forEach(function (n) { "on" + n in Mo && Uo.remove(n) }); var Vo = a(xo.style, "userSelect"), Zo = 0; vo.mouse = function (n) { return L(n, h()) }; var Xo = /WebKit/.test(bo.navigator.userAgent) ? -1 : 0; vo.touches = function (n, t) { return arguments.length < 2 && (t = h().touches), t ? yo(t).map(function (t) { var e = L(n, t); return e.identifier = t.identifier, e }) : [] }, vo.behavior.drag = function () { function n() { this.on("mousedown.drag", o).on("touchstart.drag", a) } function t() { return vo.event.changedTouches[0].identifier } function e(n, t) { return vo.touches(n).filter(function (n) { return n.identifier === t })[0] } function r(n, t, e, r) { return function () { function o() { if (!s) return a(); var n = t(s, g), e = n[0] - d[0], r = n[1] - d[1]; v |= e | r, d = n, f({ type: "drag", x: n[0] + c[0], y: n[1] + c[1], dx: e, dy: r }) } function a() { m.on(e + "." + p, null).on(r + "." + p, null), y(v && vo.event.target === h), f({ type: "dragend" }) } var c, l = this, s = l.parentNode, f = u.of(l, arguments), h = vo.event.target, g = n(), p = null == g ? "drag" : "drag-" + g, d = t(s, g), v = 0, m = vo.select(bo).on(e + "." + p, o).on(r + "." + p, a), y = j(); i ? (c = i.apply(l, arguments), c = [c.x - d[0], c.y - d[1]]) : c = [0, 0], f({ type: "dragstart" }) } } var u = g(n, "drag", "dragstart", "dragend"), i = null, o = r(c, vo.mouse, "mousemove", "mouseup"), a = r(t, e, "touchmove", "touchend"); return n.origin = function (t) { return arguments.length ? (i = t, n) : i }, vo.rebind(n, u, "on") }; var Bo = Math.PI, $o = 1e-6, Wo = $o * $o, Jo = Bo / 180, Go = 180 / Bo, Ko = Math.SQRT2, Qo = 2, na = 4; vo.interpolateZoom = function (n, t) { function e(n) { var t = n * y; if (m) { var e = R(d), o = i / (Qo * h) * (e * Y(Ko * t + d) - O(d)); return [r + o * l, u + o * s, i * e / R(Ko * t + d)] } return [r + n * l, u + n * s, i * Math.exp(Ko * t)] } var r = n[0], u = n[1], i = n[2], o = t[0], a = t[1], c = t[2], l = o - r, s = a - u, f = l * l + s * s, h = Math.sqrt(f), g = (c * c - i * i + na * f) / (2 * i * Qo * h), p = (c * c - i * i - na * f) / (2 * c * Qo * h), d = Math.log(Math.sqrt(g * g + 1) - g), v = Math.log(Math.sqrt(p * p + 1) - p), m = v - d, y = (m || Math.log(c / i)) / Ko; return e.duration = 1e3 * y, e }, vo.behavior.zoom = function () { function n(n) { n.on(A, l).on(ra + ".zoom", h).on(N, p).on("dblclick.zoom", d).on(T, s) } function t(n) { return [(n[0] - S.x) / S.k, (n[1] - S.y) / S.k] } function e(n) { return [n[0] * S.k + S.x, n[1] * S.k + S.y] } function r(n) { S.k = Math.max(k[0], Math.min(k[1], n)) } function u(n, t) { t = e(t), S.x += n[0] - t[0], S.y += n[1] - t[1] } function i() { b && b.domain(x.range().map(function (n) { return (n - S.x) / S.k }).map(x.invert)), w && w.domain(_.range().map(function (n) { return (n - S.y) / S.k }).map(_.invert)) } function o(n) { n({ type: "zoomstart" }) } function a(n) { i(), n({ type: "zoom", scale: S.k, translate: [S.x, S.y] }) } function c(n) { n({ type: "zoomend" }) } function l() { function n() { s = 1, u(vo.mouse(r), h), a(i) } function e() { f.on(N, bo === r ? p : null).on(q, null), g(s && vo.event.target === l), c(i) } var r = this, i = D.of(r, arguments), l = vo.event.target, s = 0, f = vo.select(bo).on(N, n).on(q, e), h = t(vo.mouse(r)), g = j(); Ei.call(r), o(i) } function s() { function n() { var n = vo.touches(d); return p = S.k, g = {}, n.forEach(function (n) { g[n.identifier] = t(n) }), n } function e() { var t = Date.now(), e = n(); if (1 === e.length) { if (500 > t - M) { var i = e[0], o = g[i.identifier]; r(2 * S.k), u(i, o), f(), a(v) } M = t } else if (e.length > 1) { var i = e[0], c = e[1], l = i[0] - c[0], s = i[1] - c[1]; m = l * l + s * s } } function i() { var n = vo.touches(d), t = n[0], e = g[t.identifier]; if (i = n[1]) { var i, o = g[i.identifier], c = vo.event.scale; if (null == c) { var l = (l = i[0] - t[0]) * l + (l = i[1] - t[1]) * l; c = m && Math.sqrt(l / m) } t = [(t[0] + i[0]) / 2, (t[1] + i[1]) / 2], e = [(e[0] + o[0]) / 2, (e[1] + o[1]) / 2], r(c * p) } M = null, u(t, e), a(v) } function h() { vo.event.touches.length ? n() : (y.on(z, null).on(C, null), x.on(A, l).on(T, s), b(), c(v)) } var g, p, d = this, v = D.of(d, arguments), m = 0, y = vo.select(bo).on(z, i).on(C, h), x = vo.select(d).on(A, null).on(T, e), b = j(); Ei.call(d), e(), o(v) } function h() { var n = D.of(this, arguments); y ? clearTimeout(y) : (Ei.call(this), o(n)), y = setTimeout(function () { y = null, c(n) }, 50), f(); var e = m || vo.mouse(this); v || (v = t(e)), r(Math.pow(2, .002 * ta()) * S.k), u(e, v), a(n) } function p() { v = null } function d() { var n = D.of(this, arguments), e = vo.mouse(this), i = t(e), l = Math.log(S.k) / Math.LN2; o(n), r(Math.pow(2, vo.event.shiftKey ? Math.ceil(l) - 1 : Math.floor(l) + 1)), u(e, i), a(n), c(n) } var v, m, y, M, x, b, _, w, S = { x: 0, y: 0, k: 1 }, E = [960, 500], k = ea, A = "mousedown.zoom", N = "mousemove.zoom", q = "mouseup.zoom", T = "touchstart.zoom", z = "touchmove.zoom", C = "touchend.zoom", D = g(n, "zoomstart", "zoom", "zoomend"); return n.event = function (n) { n.each(function () { var n = D.of(this, arguments), t = S; Fc ? vo.select(this).transition().each("start.zoom", function () { S = this.__chart__ || { x: 0, y: 0, k: 1 }, o(n) }).tween("zoom:zoom", function () { var e = E[0], r = E[1], u = e / 2, i = r / 2, o = vo.interpolateZoom([(u - S.x) / S.k, (i - S.y) / S.k, e / S.k], [(u - t.x) / t.k, (i - t.y) / t.k, e / t.k]); return function (t) { var r = o(t), c = e / r[2]; this.__chart__ = S = { x: u - r[0] * c, y: i - r[1] * c, k: c }, a(n) } }).each("end.zoom", function () { c(n) }) : (this.__chart__ = S, o(n), a(n), c(n)) }) }, n.translate = function (t) { return arguments.length ? (S = { x: +t[0], y: +t[1], k: S.k }, i(), n) : [S.x, S.y] }, n.scale = function (t) { return arguments.length ? (S = { x: S.x, y: S.y, k: +t }, i(), n) : S.k }, n.scaleExtent = function (t) { return arguments.length ? (k = null == t ? ea : [+t[0], +t[1]], n) : k }, n.center = function (t) { return arguments.length ? (m = t && [+t[0], +t[1]], n) : m }, n.size = function (t) { return arguments.length ? (E = t && [+t[0], +t[1]], n) : E }, n.x = function (t) { return arguments.length ? (b = t, x = t.copy(), S = { x: 0, y: 0, k: 1 }, n) : b }, n.y = function (t) { return arguments.length ? (w = t, _ = t.copy(), S = { x: 0, y: 0, k: 1 }, n) : w }, vo.rebind(n, D, "on") }; var ta, ea = [0, 1 / 0], ra = "onwheel" in Mo ? (ta = function () { return -vo.event.deltaY * (vo.event.deltaMode ? 120 : 1) }, "wheel") : "onmousewheel" in Mo ? (ta = function () { return vo.event.wheelDelta }, "mousewheel") : (ta = function () { return -vo.event.detail }, "MozMousePixelScroll"); U.prototype.toString = function () { return this.rgb() + "" }, vo.hsl = function (n, t, e) { return 1 === arguments.length ? n instanceof Z ? V(n.h, n.s, n.l) : ct("" + n, lt, V) : V(+n, +t, +e) }; var ua = Z.prototype = new U; ua.brighter = function (n) { return n = Math.pow(.7, arguments.length ? n : 1), V(this.h, this.s, this.l / n) }, ua.darker = function (n) { return n = Math.pow(.7, arguments.length ? n : 1), V(this.h, this.s, n * this.l) }, ua.rgb = function () { return X(this.h, this.s, this.l) }, vo.hcl = function (n, t, e) { return 1 === arguments.length ? n instanceof $ ? B(n.h, n.c, n.l) : n instanceof G ? Q(n.l, n.a, n.b) : Q((n = st((n = vo.rgb(n)).r, n.g, n.b)).l, n.a, n.b) : B(+n, +t, +e) }; var ia = $.prototype = new U; ia.brighter = function (n) { return B(this.h, this.c, Math.min(100, this.l + oa * (arguments.length ? n : 1))) }, ia.darker = function (n) { return B(this.h, this.c, Math.max(0, this.l - oa * (arguments.length ? n : 1))) }, ia.rgb = function () { return W(this.h, this.c, this.l).rgb() }, vo.lab = function (n, t, e) { return 1 === arguments.length ? n instanceof G ? J(n.l, n.a, n.b) : n instanceof $ ? W(n.l, n.c, n.h) : st((n = vo.rgb(n)).r, n.g, n.b) : J(+n, +t, +e) }; var oa = 18, aa = .95047, ca = 1, la = 1.08883, sa = G.prototype = new U; sa.brighter = function (n) { return J(Math.min(100, this.l + oa * (arguments.length ? n : 1)), this.a, this.b) }, sa.darker = function (n) { return J(Math.max(0, this.l - oa * (arguments.length ? n : 1)), this.a, this.b) }, sa.rgb = function () { return K(this.l, this.a, this.b) }, vo.rgb = function (n, t, e) { return 1 === arguments.length ? n instanceof ot ? it(n.r, n.g, n.b) : ct("" + n, it, X) : it(~~n, ~~t, ~~e) }; var fa = ot.prototype = new U; fa.brighter = function (n) { n = Math.pow(.7, arguments.length ? n : 1); var t = this.r, e = this.g, r = this.b, u = 30; return t || e || r ? (t && u > t && (t = u), e && u > e && (e = u), r && u > r && (r = u), it(Math.min(255, ~~(t / n)), Math.min(255, ~~(e / n)), Math.min(255, ~~(r / n)))) : it(u, u, u) }, fa.darker = function (n) { return n = Math.pow(.7, arguments.length ? n : 1), it(~~(n * this.r), ~~(n * this.g), ~~(n * this.b)) }, fa.hsl = function () { return lt(this.r, this.g, this.b) }, fa.toString = function () { return "#" + at(this.r) + at(this.g) + at(this.b) }; var ha = vo.map({ aliceblue: 15792383, antiquewhite: 16444375, aqua: 65535, aquamarine: 8388564, azure: 15794175, beige: 16119260, bisque: 16770244, black: 0, blanchedalmond: 16772045, blue: 255, blueviolet: 9055202, brown: 10824234, burlywood: 14596231, cadetblue: 6266528, chartreuse: 8388352, chocolate: 13789470, coral: 16744272, cornflowerblue: 6591981, cornsilk: 16775388, crimson: 14423100, cyan: 65535, darkblue: 139, darkcyan: 35723, darkgoldenrod: 12092939, darkgray: 11119017, darkgreen: 25600, darkgrey: 11119017, darkkhaki: 12433259, darkmagenta: 9109643, darkolivegreen: 5597999, darkorange: 16747520, darkorchid: 10040012, darkred: 9109504, darksalmon: 15308410, darkseagreen: 9419919, darkslateblue: 4734347, darkslategray: 3100495, darkslategrey: 3100495, darkturquoise: 52945, darkviolet: 9699539, deeppink: 16716947, deepskyblue: 49151, dimgray: 6908265, dimgrey: 6908265, dodgerblue: 2003199, firebrick: 11674146, floralwhite: 16775920, forestgreen: 2263842, fuchsia: 16711935, gainsboro: 14474460, ghostwhite: 16316671, gold: 16766720, goldenrod: 14329120, gray: 8421504, green: 32768, greenyellow: 11403055, grey: 8421504, honeydew: 15794160, hotpink: 16738740, indianred: 13458524, indigo: 4915330, ivory: 16777200, khaki: 15787660, lavender: 15132410, lavenderblush: 16773365, lawngreen: 8190976, lemonchiffon: 16775885, lightblue: 11393254, lightcoral: 15761536, lightcyan: 14745599, lightgoldenrodyellow: 16448210, lightgray: 13882323, lightgreen: 9498256, lightgrey: 13882323, lightpink: 16758465, lightsalmon: 16752762, lightseagreen: 2142890, lightskyblue: 8900346, lightslategray: 7833753, lightslategrey: 7833753, lightsteelblue: 11584734, lightyellow: 16777184, lime: 65280, limegreen: 3329330, linen: 16445670, magenta: 16711935, maroon: 8388608, mediumaquamarine: 6737322, mediumblue: 205, mediumorchid: 12211667, mediumpurple: 9662683, mediumseagreen: 3978097, mediumslateblue: 8087790, mediumspringgreen: 64154, mediumturquoise: 4772300, mediumvioletred: 13047173, midnightblue: 1644912, mintcream: 16121850, mistyrose: 16770273, moccasin: 16770229, navajowhite: 16768685, navy: 128, oldlace: 16643558, olive: 8421376, olivedrab: 7048739, orange: 16753920, orangered: 16729344, orchid: 14315734, palegoldenrod: 15657130, palegreen: 10025880, paleturquoise: 11529966, palevioletred: 14381203, papayawhip: 16773077, peachpuff: 16767673, peru: 13468991, pink: 16761035, plum: 14524637, powderblue: 11591910, purple: 8388736, red: 16711680, rosybrown: 12357519, royalblue: 4286945, saddlebrown: 9127187, salmon: 16416882, sandybrown: 16032864, seagreen: 3050327, seashell: 16774638, sienna: 10506797, silver: 12632256, skyblue: 8900331, slateblue: 6970061, slategray: 7372944, slategrey: 7372944, snow: 16775930, springgreen: 65407, steelblue: 4620980, tan: 13808780, teal: 32896, thistle: 14204888, tomato: 16737095, turquoise: 4251856, violet: 15631086, wheat: 16113331, white: 16777215, whitesmoke: 16119285, yellow: 16776960, yellowgreen: 10145074 }); ha.forEach(function (n, t) { ha.set(n, rt(t)) }), vo.functor = gt, vo.xhr = dt(pt), vo.dsv = function (n, t) { function e(n, e, i) { arguments.length < 3 && (i = e, e = null); var o = vo.xhr(n, t, i); return o.row = function (n) { return arguments.length ? o.response(null == (e = n) ? r : u(n)) : e }, o.row(e) } function r(n) { return e.parse(n.responseText) } function u(n) { return function (t) { return e.parse(t.responseText, n) } } function o(t) { return t.map(a).join(n) } function a(n) { return c.test(n) ? '"' + n.replace(/\"/g, '""') + '"' : n } var c = new RegExp('["' + n + "\n]"), l = n.charCodeAt(0); return e.parse = function (n, t) { var r; return e.parseRows(n, function (n, e) { if (r) return r(n, e - 1); var u = new Function("d", "return {" + n.map(function (n, t) { return JSON.stringify(n) + ": d[" + t + "]" }).join(",") + "}"); r = t ? function (n, e) { return t(u(n), e) } : u }) }, e.parseRows = function (n, t) { function e() { if (s >= c) return o; if (u) return u = !1, i; var t = s; if (34 === n.charCodeAt(t)) { for (var e = t; e++ < c;)if (34 === n.charCodeAt(e)) { if (34 !== n.charCodeAt(e + 1)) break; ++e } s = e + 2; var r = n.charCodeAt(e + 1); return 13 === r ? (u = !0, 10 === n.charCodeAt(e + 2) && ++s) : 10 === r && (u = !0), n.substring(t + 1, e).replace(/""/g, '"') } for (; c > s;) { var r = n.charCodeAt(s++), a = 1; if (10 === r) u = !0; else if (13 === r) u = !0, 10 === n.charCodeAt(s) && (++s, ++a); else if (r !== l) continue; return n.substring(t, s - a) } return n.substring(t) } for (var r, u, i = {}, o = {}, a = [], c = n.length, s = 0, f = 0; (r = e()) !== o;) { for (var h = []; r !== i && r !== o;)h.push(r), r = e(); (!t || (h = t(h, f++))) && a.push(h) } return a }, e.format = function (t) { if (Array.isArray(t[0])) return e.formatRows(t); var r = new i, u = []; return t.forEach(function (n) { for (var t in n) r.has(t) || u.push(r.add(t)) }), [u.map(a).join(n)].concat(t.map(function (t) { return u.map(function (n) { return a(t[n]) }).join(n) })).join("\n") }, e.formatRows = function (n) { return n.map(o).join("\n") }, e }, vo.csv = vo.dsv(",", "text/csv"), vo.tsv = vo.dsv(" ", "text/tab-separated-values"); var ga, pa, da, va, ma, ya = bo[a(bo, "requestAnimationFrame")] || function (n) { setTimeout(n, 17) }; vo.timer = function (n, t, e) { var r = arguments.length; 2 > r && (t = 0), 3 > r && (e = Date.now()); var u = e + t, i = { callback: n, time: u, next: null }; pa ? pa.next = i : ga = i, pa = i, da || (va = clearTimeout(va), da = 1, ya(yt)) }, vo.timer.flush = function () { xt(), bt() }; var Ma = ".", xa = ",", ba = [3, 3], _a = "$", wa = ["y", "z", "a", "f", "p", "n", "\xb5", "m", "", "k", "M", "G", "T", "P", "E", "Z", "Y"].map(_t); vo.formatPrefix = function (n, t) { var e = 0; return n && (0 > n && (n *= -1), t && (n = vo.round(n, wt(n, t))), e = 1 + Math.floor(1e-12 + Math.log(n) / Math.LN10), e = Math.max(-24, Math.min(24, 3 * Math.floor((0 >= e ? e + 1 : e - 1) / 3)))), wa[8 + e / 3] }, vo.round = function (n, t) { return t ? Math.round(n * (t = Math.pow(10, t))) / t : Math.round(n) }, vo.format = function (n) { var t = Sa.exec(n), e = t[1] || " ", r = t[2] || ">", u = t[3] || "", i = t[4] || "", o = t[5], a = +t[6], c = t[7], l = t[8], s = t[9], f = 1, h = "", g = !1; switch (l && (l = +l.substring(1)), (o || "0" === e && "=" === r) && (o = e = "0", r = "=", c && (a -= Math.floor((a - 1) / 4))), s) { case "n": c = !0, s = "g"; break; case "%": f = 100, h = "%", s = "f"; break; case "p": f = 100, h = "%", s = "r"; break; case "b": case "o": case "x": case "X": "#" === i && (i = "0" + s.toLowerCase()); case "c": case "d": g = !0, l = 0; break; case "s": f = -1, s = "r" }"#" === i ? i = "" : "$" === i && (i = _a), "r" != s || l || (s = "g"), null != l && ("g" == s ? l = Math.max(1, Math.min(21, l)) : ("e" == s || "f" == s) && (l = Math.max(0, Math.min(20, l)))), s = Ea.get(s) || St; var p = o && c; return function (n) { if (g && n % 1) return ""; var t = 0 > n || 0 === n && 0 > 1 / n ? (n = -n, "-") : u; if (0 > f) { var d = vo.formatPrefix(n, l); n = d.scale(n), h = d.symbol } else n *= f; n = s(n, l); var v = n.lastIndexOf("."), m = 0 > v ? n : n.substring(0, v), y = 0 > v ? "" : Ma + n.substring(v + 1); !o && c && (m = ka(m)); var M = i.length + m.length + y.length + (p ? 0 : t.length), x = a > M ? new Array(M = a - M + 1).join(e) : ""; return p && (m = ka(x + m)), t += i, n = m + y, ("<" === r ? t + n + x : ">" === r ? x + t + n : "^" === r ? x.substring(0, M >>= 1) + t + n + x.substring(M) : t + (p ? n : x + n)) + h } }; var Sa = /(?:([^{])?([<>=^]))?([+\- ])?([$#])?(0)?(\d+)?(,)?(\.-?\d+)?([a-z%])?/i, Ea = vo.map({ b: function (n) { return n.toString(2) }, c: function (n) { return String.fromCharCode(n) }, o: function (n) { return n.toString(8) }, x: function (n) { return n.toString(16) }, X: function (n) { return n.toString(16).toUpperCase() }, g: function (n, t) { return n.toPrecision(t) }, e: function (n, t) { return n.toExponential(t) }, f: function (n, t) { return n.toFixed(t) }, r: function (n, t) { return (n = vo.round(n, wt(n, t))).toFixed(Math.max(0, Math.min(20, wt(n * (1 + 1e-15), t)))) } }), ka = pt; if (ba) { var Aa = ba.length; ka = function (n) { for (var t = n.length, e = [], r = 0, u = ba[0]; t > 0 && u > 0;)e.push(n.substring(t -= u, t + u)), u = ba[r = (r + 1) % Aa]; return e.reverse().join(xa) } } vo.geo = {}, Et.prototype = { s: 0, t: 0, add: function (n) { kt(n, this.t, Na), kt(Na.s, this.s, this), this.s ? this.t += Na.t : this.s = Na.t }, reset: function () { this.s = this.t = 0 }, valueOf: function () { return this.s } }; var Na = new Et; vo.geo.stream = function (n, t) { n && qa.hasOwnProperty(n.type) ? qa[n.type](n, t) : At(n, t) }; var qa = { Feature: function (n, t) { At(n.geometry, t) }, FeatureCollection: function (n, t) { for (var e = n.features, r = -1, u = e.length; ++r < u;)At(e[r].geometry, t) } }, Ta = { Sphere: function (n, t) { t.sphere() }, Point: function (n, t) { n = n.coordinates, t.point(n[0], n[1], n[2]) }, MultiPoint: function (n, t) { for (var e = n.coordinates, r = -1, u = e.length; ++r < u;)n = e[r], t.point(n[0], n[1], n[2]) }, LineString: function (n, t) { Nt(n.coordinates, t, 0) }, MultiLineString: function (n, t) { for (var e = n.coordinates, r = -1, u = e.length; ++r < u;)Nt(e[r], t, 0) }, Polygon: function (n, t) { qt(n.coordinates, t) }, MultiPolygon: function (n, t) { for (var e = n.coordinates, r = -1, u = e.length; ++r < u;)qt(e[r], t) }, GeometryCollection: function (n, t) { for (var e = n.geometries, r = -1, u = e.length; ++r < u;)At(e[r], t) } }; vo.geo.area = function (n) { return za = 0, vo.geo.stream(n, Da), za }; var za, Ca = new Et, Da = { sphere: function () { za += 4 * Bo }, point: c, lineStart: c, lineEnd: c, polygonStart: function () { Ca.reset(), Da.lineStart = Tt }, polygonEnd: function () { var n = 2 * Ca; za += 0 > n ? 4 * Bo + n : n, Da.lineStart = Da.lineEnd = Da.point = c } }; vo.geo.bounds = function () { function n(n, t) { M.push(x = [s = n, h = n]), f > t && (f = t), t > g && (g = t) } function t(t, e) { var r = zt([t * Jo, e * Jo]); if (m) { var u = Dt(m, r), i = [u[1], -u[0], 0], o = Dt(i, u); Ht(o), o = Ft(o); var c = t - p, l = c > 0 ? 1 : -1, d = o[0] * Go * l, v = Math.abs(c) > 180; if (v ^ (d > l * p && l * t > d)) { var y = o[1] * Go; y > g && (g = y) } else if (d = (d + 360) % 360 - 180, v ^ (d > l * p && l * t > d)) { var y = -o[1] * Go; f > y && (f = y) } else f > e && (f = e), e > g && (g = e); v ? p > t ? a(s, t) > a(s, h) && (h = t) : a(t, h) > a(s, h) && (s = t) : h >= s ? (s > t && (s = t), t > h && (h = t)) : t > p ? a(s, t) > a(s, h) && (h = t) : a(t, h) > a(s, h) && (s = t) } else n(t, e); m = r, p = t } function e() { b.point = t } function r() { x[0] = s, x[1] = h, b.point = n, m = null } function u(n, e) { if (m) { var r = n - p; y += Math.abs(r) > 180 ? r + (r > 0 ? 360 : -360) : r } else d = n, v = e; Da.point(n, e), t(n, e) } function i() { Da.lineStart() } function o() { u(d, v), Da.lineEnd(), Math.abs(y) > $o && (s = -(h = 180)), x[0] = s, x[1] = h, m = null } function a(n, t) { return (t -= n) < 0 ? t + 360 : t } function c(n, t) { return n[0] - t[0] } function l(n, t) { return t[0] <= t[1] ? t[0] <= n && n <= t[1] : n < t[0] || t[1] < n } var s, f, h, g, p, d, v, m, y, M, x, b = { point: n, lineStart: e, lineEnd: r, polygonStart: function () { b.point = u, b.lineStart = i, b.lineEnd = o, y = 0, Da.polygonStart() }, polygonEnd: function () { Da.polygonEnd(), b.point = n, b.lineStart = e, b.lineEnd = r, 0 > Ca ? (s = -(h = 180), f = -(g = 90)) : y > $o ? g = 90 : -$o > y && (f = -90), x[0] = s, x[1] = h } }; return function (n) { g = h = -(s = f = 1 / 0), M = [], vo.geo.stream(n, b); var t = M.length; if (t) { M.sort(c); for (var e, r = 1, u = M[0], i = [u]; t > r; ++r)e = M[r], l(e[0], u) || l(e[1], u) ? (a(u[0], e[1]) > a(u[0], u[1]) && (u[1] = e[1]), a(e[0], u[1]) > a(u[0], u[1]) && (u[0] = e[0])) : i.push(u = e); for (var o, e, p = -1 / 0, t = i.length - 1, r = 0, u = i[t]; t >= r; u = e, ++r)e = i[r], (o = a(u[1], e[0])) > p && (p = o, s = e[0], h = u[1]) } return M = x = null, 1 / 0 === s || 1 / 0 === f ? [[0 / 0, 0 / 0], [0 / 0, 0 / 0]] : [[s, f], [h, g]] } }(), vo.geo.centroid = function (n) { ja = La = Ha = Fa = Pa = Oa = Ra = Ya = Ia = Ua = Va = 0, vo.geo.stream(n, Za); var t = Ia, e = Ua, r = Va, u = t * t + e * e + r * r; return Wo > u && (t = Oa, e = Ra, r = Ya, $o > La && (t = Ha, e = Fa, r = Pa), u = t * t + e * e + r * r, Wo > u) ? [0 / 0, 0 / 0] : [Math.atan2(e, t) * Go, P(r / Math.sqrt(u)) * Go] }; var ja, La, Ha, Fa, Pa, Oa, Ra, Ya, Ia, Ua, Va, Za = { sphere: c, point: Ot, lineStart: Yt, lineEnd: It, polygonStart: function () { Za.lineStart = Ut }, polygonEnd: function () { Za.lineStart = Yt } }, Xa = Bt(Vt, Kt, ne, te), Ba = [-Bo, 0], $a = 1e9; vo.geo.clipExtent = function () { var n, t, e, r, u, i, o = { stream: function (n) { return u && (u.valid = !1), u = i(n), u.valid = !0, u }, extent: function (a) { return arguments.length ? (i = re(n = +a[0][0], t = +a[0][1], e = +a[1][0], r = +a[1][1]), u && (u.valid = !1, u = null), o) : [[n, t], [e, r]] } }; return o.extent([[0, 0], [960, 500]]) }, (vo.geo.conicEqualArea = function () { return oe(ae) }).raw = ae, vo.geo.albers = function () { return vo.geo.conicEqualArea().rotate([96, 0]).center([-.6, 38.7]).parallels([29.5, 45.5]).scale(1070) }, vo.geo.albersUsa = function () { function n(n) { var i = n[0], o = n[1]; return t = null, e(i, o), t || (r(i, o), t) || u(i, o), t } var t, e, r, u, i = vo.geo.albers(), o = vo.geo.conicEqualArea().rotate([154, 0]).center([-2, 58.5]).parallels([55, 65]), a = vo.geo.conicEqualArea().rotate([157, 0]).center([-3, 19.9]).parallels([8, 18]), c = { point: function (n, e) { t = [n, e] } }; return n.invert = function (n) { var t = i.scale(), e = i.translate(), r = (n[0] - e[0]) / t, u = (n[1] - e[1]) / t; return (u >= .12 && .234 > u && r >= -.425 && -.214 > r ? o : u >= .166 && .234 > u && r >= -.214 && -.115 > r ? a : i).invert(n) }, n.stream = function (n) { var t = i.stream(n), e = o.stream(n), r = a.stream(n); return { point: function (n, u) { t.point(n, u), e.point(n, u), r.point(n, u) }, sphere: function () { t.sphere(), e.sphere(), r.sphere() }, lineStart: function () { t.lineStart(), e.lineStart(), r.lineStart() }, lineEnd: function () { t.lineEnd(), e.lineEnd(), r.lineEnd() }, polygonStart: function () { t.polygonStart(), e.polygonStart(), r.polygonStart() }, polygonEnd: function () { t.polygonEnd(), e.polygonEnd(), r.polygonEnd() } } }, n.precision = function (t) { return arguments.length ? (i.precision(t), o.precision(t), a.precision(t), n) : i.precision() }, n.scale = function (t) { return arguments.length ? (i.scale(t), o.scale(.35 * t), a.scale(t), n.translate(i.translate())) : i.scale() }, n.translate = function (t) { if (!arguments.length) return i.translate(); var l = i.scale(), s = +t[0], f = +t[1]; return e = i.translate(t).clipExtent([[s - .455 * l, f - .238 * l], [s + .455 * l, f + .238 * l]]).stream(c).point, r = o.translate([s - .307 * l, f + .201 * l]).clipExtent([[s - .425 * l + $o, f + .12 * l + $o], [s - .214 * l - $o, f + .234 * l - $o]]).stream(c).point, u = a.translate([s - .205 * l, f + .212 * l]).clipExtent([[s - .214 * l + $o, f + .166 * l + $o], [s - .115 * l - $o, f + .234 * l - $o]]).stream(c).point, n }, n.scale(1070) }; var Wa, Ja, Ga, Ka, Qa, nc, tc = { point: c, lineStart: c, lineEnd: c, polygonStart: function () { Ja = 0, tc.lineStart = ce }, polygonEnd: function () { tc.lineStart = tc.lineEnd = tc.point = c, Wa += Math.abs(Ja / 2) } }, ec = { point: le, lineStart: c, lineEnd: c, polygonStart: c, polygonEnd: c }, rc = { point: he, lineStart: ge, lineEnd: pe, polygonStart: function () { rc.lineStart = de }, polygonEnd: function () { rc.point = he, rc.lineStart = ge, rc.lineEnd = pe } }; vo.geo.transform = function (n) { return { stream: function (t) { var e = new ye(t); for (var r in n) e[r] = n[r]; return e } } }, ye.prototype = { point: function (n, t) { this.stream.point(n, t) }, sphere: function () { this.stream.sphere() }, lineStart: function () { this.stream.lineStart() }, lineEnd: function () { this.stream.lineEnd() }, polygonStart: function () { this.stream.polygonStart() }, polygonEnd: function () { this.stream.polygonEnd() } }, vo.geo.path = function () { function n(n) { return n && ("function" == typeof a && i.pointRadius(+a.apply(this, arguments)), o && o.valid || (o = u(i)), vo.geo.stream(n, o)), i.result() } function t() { return o = null, n } var e, r, u, i, o, a = 4.5; return n.area = function (n) { return Wa = 0, vo.geo.stream(n, u(tc)), Wa }, n.centroid = function (n) { return Ha = Fa = Pa = Oa = Ra = Ya = Ia = Ua = Va = 0, vo.geo.stream(n, u(rc)), Va ? [Ia / Va, Ua / Va] : Ya ? [Oa / Ya, Ra / Ya] : Pa ? [Ha / Pa, Fa / Pa] : [0 / 0, 0 / 0] }, n.bounds = function (n) { return Qa = nc = -(Ga = Ka = 1 / 0), vo.geo.stream(n, u(ec)), [[Ga, Ka], [Qa, nc]] }, n.projection = function (n) { return arguments.length ? (u = (e = n) ? n.stream || Me(n) : pt, t()) : e }, n.context = function (n) { return arguments.length ? (i = null == (r = n) ? new se : new ve(n), "function" != typeof a && i.pointRadius(a), t()) : r }, n.pointRadius = function (t) { return arguments.length ? (a = "function" == typeof t ? t : (i.pointRadius(+t), +t), n) : a }, n.projection(vo.geo.albersUsa()).context(null) }, vo.geo.projection = xe, vo.geo.projectionMutator = be, (vo.geo.equirectangular = function () { return xe(we) }).raw = we.invert = we, vo.geo.rotation = function (n) { function t(t) { return t = n(t[0] * Jo, t[1] * Jo), t[0] *= Go, t[1] *= Go, t } return n = Se(n[0] % 360 * Jo, n[1] * Jo, n.length > 2 ? n[2] * Jo : 0), t.invert = function (t) { return t = n.invert(t[0] * Jo, t[1] * Jo), t[0] *= Go, t[1] *= Go, t }, t }, vo.geo.circle = function () { function n() { var n = "function" == typeof r ? r.apply(this, arguments) : r, t = Se(-n[0] * Jo, -n[1] * Jo, 0).invert, u = []; return e(null, null, 1, { point: function (n, e) { u.push(n = t(n, e)), n[0] *= Go, n[1] *= Go } }), { type: "Polygon", coordinates: [u] } } var t, e, r = [0, 0], u = 6; return n.origin = function (t) { return arguments.length ? (r = t, n) : r }, n.angle = function (r) { return arguments.length ? (e = Ne((t = +r) * Jo, u * Jo), n) : t }, n.precision = function (r) { return arguments.length ? (e = Ne(t * Jo, (u = +r) * Jo), n) : u }, n.angle(90) }, vo.geo.distance = function (n, t) { var e, r = (t[0] - n[0]) * Jo, u = n[1] * Jo, i = t[1] * Jo, o = Math.sin(r), a = Math.cos(r), c = Math.sin(u), l = Math.cos(u), s = Math.sin(i), f = Math.cos(i); return Math.atan2(Math.sqrt((e = f * o) * e + (e = l * s - c * f * a) * e), c * s + l * f * a) }, vo.geo.graticule = function () {
35
+ function n() { return { type: "MultiLineString", coordinates: t() } } function t() { return vo.range(Math.ceil(i / v) * v, u, v).map(h).concat(vo.range(Math.ceil(l / m) * m, c, m).map(g)).concat(vo.range(Math.ceil(r / p) * p, e, p).filter(function (n) { return Math.abs(n % v) > $o }).map(s)).concat(vo.range(Math.ceil(a / d) * d, o, d).filter(function (n) { return Math.abs(n % m) > $o }).map(f)) } var e, r, u, i, o, a, c, l, s, f, h, g, p = 10, d = p, v = 90, m = 360, y = 2.5; return n.lines = function () { return t().map(function (n) { return { type: "LineString", coordinates: n } }) }, n.outline = function () { return { type: "Polygon", coordinates: [h(i).concat(g(c).slice(1), h(u).reverse().slice(1), g(l).reverse().slice(1))] } }, n.extent = function (t) { return arguments.length ? n.majorExtent(t).minorExtent(t) : n.minorExtent() }, n.majorExtent = function (t) { return arguments.length ? (i = +t[0][0], u = +t[1][0], l = +t[0][1], c = +t[1][1], i > u && (t = i, i = u, u = t), l > c && (t = l, l = c, c = t), n.precision(y)) : [[i, l], [u, c]] }, n.minorExtent = function (t) {
36
+ return arguments.length ? (r = +t[0][0], e = +t[1][0], a = +t[0][1], o = +t[1][1], r > e && (t = r, r = e, e = t), a > o && (t = a, a = o, o = t), n.precision(y)) : [[r, a], [e, o]]
37
+ }, n.step = function (t) { return arguments.length ? n.majorStep(t).minorStep(t) : n.minorStep() }, n.majorStep = function (t) { return arguments.length ? (v = +t[0], m = +t[1], n) : [v, m] }, n.minorStep = function (t) { return arguments.length ? (p = +t[0], d = +t[1], n) : [p, d] }, n.precision = function (t) { return arguments.length ? (y = +t, s = Te(a, o, 90), f = ze(r, e, y), h = Te(l, c, 90), g = ze(i, u, y), n) : y }, n.majorExtent([[-180, -90 + $o], [180, 90 - $o]]).minorExtent([[-180, -80 - $o], [180, 80 + $o]])
38
+ }, vo.geo.greatArc = function () { function n() { return { type: "LineString", coordinates: [t || r.apply(this, arguments), e || u.apply(this, arguments)] } } var t, e, r = Ce, u = De; return n.distance = function () { return vo.geo.distance(t || r.apply(this, arguments), e || u.apply(this, arguments)) }, n.source = function (e) { return arguments.length ? (r = e, t = "function" == typeof e ? null : e, n) : r }, n.target = function (t) { return arguments.length ? (u = t, e = "function" == typeof t ? null : t, n) : u }, n.precision = function () { return arguments.length ? n : 0 }, n }, vo.geo.interpolate = function (n, t) { return je(n[0] * Jo, n[1] * Jo, t[0] * Jo, t[1] * Jo) }, vo.geo.length = function (n) { return uc = 0, vo.geo.stream(n, ic), uc }; var uc, ic = { sphere: c, point: c, lineStart: Le, lineEnd: c, polygonStart: c, polygonEnd: c }, oc = He(function (n) { return Math.sqrt(2 / (1 + n)) }, function (n) { return 2 * Math.asin(n / 2) }); (vo.geo.azimuthalEqualArea = function () { return xe(oc) }).raw = oc; var ac = He(function (n) { var t = Math.acos(n); return t && t / Math.sin(t) }, pt); (vo.geo.azimuthalEquidistant = function () { return xe(ac) }).raw = ac, (vo.geo.conicConformal = function () { return oe(Fe) }).raw = Fe, (vo.geo.conicEquidistant = function () { return oe(Pe) }).raw = Pe; var cc = He(function (n) { return 1 / n }, Math.atan); (vo.geo.gnomonic = function () { return xe(cc) }).raw = cc, Oe.invert = function (n, t) { return [n, 2 * Math.atan(Math.exp(t)) - Bo / 2] }, (vo.geo.mercator = function () { return Re(Oe) }).raw = Oe; var lc = He(function () { return 1 }, Math.asin); (vo.geo.orthographic = function () { return xe(lc) }).raw = lc; var sc = He(function (n) { return 1 / (1 + n) }, function (n) { return 2 * Math.atan(n) }); (vo.geo.stereographic = function () { return xe(sc) }).raw = sc, Ye.invert = function (n, t) { return [Math.atan2(O(n), Math.cos(t)), P(Math.sin(t) / R(n))] }, (vo.geo.transverseMercator = function () { return Re(Ye) }).raw = Ye, vo.geom = {}, vo.svg = {}, vo.svg.line = function () { return Ie(pt) }; var fc = vo.map({ linear: Ze, "linear-closed": Xe, step: Be, "step-before": $e, "step-after": We, basis: tr, "basis-open": er, "basis-closed": rr, bundle: ur, cardinal: Ke, "cardinal-open": Je, "cardinal-closed": Ge, monotone: sr }); fc.forEach(function (n, t) { t.key = n, t.closed = /-closed$/.test(n) }); var hc = [0, 2 / 3, 1 / 3, 0], gc = [0, 1 / 3, 2 / 3, 0], pc = [0, 1 / 6, 2 / 3, 1 / 6]; vo.geom.hull = function (n) { function t(n) { if (n.length < 3) return []; var t, u, i, o, a, c, l, s, f, h, g, p, d = gt(e), v = gt(r), m = n.length, y = m - 1, M = [], x = [], b = 0; if (d === Ue && r === Ve) t = n; else for (i = 0, t = []; m > i; ++i)t.push([+d.call(this, u = n[i], i), +v.call(this, u, i)]); for (i = 1; m > i; ++i)(t[i][1] < t[b][1] || t[i][1] == t[b][1] && t[i][0] < t[b][0]) && (b = i); for (i = 0; m > i; ++i)i !== b && (c = t[i][1] - t[b][1], a = t[i][0] - t[b][0], M.push({ angle: Math.atan2(c, a), index: i })); for (M.sort(function (n, t) { return n.angle - t.angle }), g = M[0].angle, h = M[0].index, f = 0, i = 1; y > i; ++i) { if (o = M[i].index, g == M[i].angle) { if (a = t[h][0] - t[b][0], c = t[h][1] - t[b][1], l = t[o][0] - t[b][0], s = t[o][1] - t[b][1], a * a + c * c >= l * l + s * s) { M[i].index = -1; continue } M[f].index = -1 } g = M[i].angle, f = i, h = o } for (x.push(b), i = 0, o = 0; 2 > i; ++o)M[o].index > -1 && (x.push(M[o].index), i++); for (p = x.length; y > o; ++o)if (!(M[o].index < 0)) { for (; !fr(x[p - 2], x[p - 1], M[o].index, t);)--p; x[p++] = M[o].index } var _ = []; for (i = p - 1; i >= 0; --i)_.push(n[x[i]]); return _ } var e = Ue, r = Ve; return arguments.length ? t(n) : (t.x = function (n) { return arguments.length ? (e = n, t) : e }, t.y = function (n) { return arguments.length ? (r = n, t) : r }, t) }, vo.geom.polygon = function (n) { return jo(n, dc), n }; var dc = vo.geom.polygon.prototype = []; dc.area = function () { for (var n, t = -1, e = this.length, r = this[e - 1], u = 0; ++t < e;)n = r, r = this[t], u += n[1] * r[0] - n[0] * r[1]; return .5 * u }, dc.centroid = function (n) { var t, e, r = -1, u = this.length, i = 0, o = 0, a = this[u - 1]; for (arguments.length || (n = -1 / (6 * this.area())); ++r < u;)t = a, a = this[r], e = t[0] * a[1] - a[0] * t[1], i += (t[0] + a[0]) * e, o += (t[1] + a[1]) * e; return [i * n, o * n] }, dc.clip = function (n) { for (var t, e, r, u, i, o, a = pr(n), c = -1, l = this.length - pr(this), s = this[l - 1]; ++c < l;) { for (t = n.slice(), n.length = 0, u = this[c], i = t[(r = t.length - a) - 1], e = -1; ++e < r;)o = t[e], hr(o, s, u) ? (hr(i, s, u) || n.push(gr(i, o, s, u)), n.push(o)) : hr(i, s, u) && n.push(gr(i, o, s, u)), i = o; a && n.push(n[0]), s = u } return n }, vo.geom.delaunay = function (n) { var t = n.map(function () { return [] }), e = []; return dr(n, function (e) { t[e.region.l.index].push(n[e.region.r.index]) }), t.forEach(function (t, r) { var u = n[r], i = u[0], o = u[1]; t.forEach(function (n) { n.angle = Math.atan2(n[0] - i, n[1] - o) }), t.sort(function (n, t) { return n.angle - t.angle }); for (var a = 0, c = t.length - 1; c > a; a++)e.push([u, t[a], t[a + 1]]) }), e }, vo.geom.voronoi = function (n) { function t(n) { var t, i, o, a = n.map(function () { return [] }), c = gt(e), l = gt(r), s = n.length, f = 1e6; if (c === Ue && l === Ve) t = n; else for (t = new Array(s), o = 0; s > o; ++o)t[o] = [+c.call(this, i = n[o], o), +l.call(this, i, o)]; if (dr(t, function (n) { var t, e, r, u, i, o; 1 === n.a && n.b >= 0 ? (t = n.ep.r, e = n.ep.l) : (t = n.ep.l, e = n.ep.r), 1 === n.a ? (i = t ? t.y : -f, r = n.c - n.b * i, o = e ? e.y : f, u = n.c - n.b * o) : (r = t ? t.x : -f, i = n.c - n.a * r, u = e ? e.x : f, o = n.c - n.a * u); var c = [r, i], l = [u, o]; a[n.region.l.index].push(c, l), a[n.region.r.index].push(c, l) }), a = a.map(function (n, e) { var r = t[e][0], u = t[e][1], i = n.map(function (n) { return Math.atan2(n[0] - r, n[1] - u) }), o = vo.range(n.length).sort(function (n, t) { return i[n] - i[t] }); return o.filter(function (n, t) { return !t || i[n] - i[o[t - 1]] > $o }).map(function (t) { return n[t] }) }), a.forEach(function (n, e) { var r = n.length; if (!r) return n.push([-f, -f], [-f, f], [f, f], [f, -f]); if (!(r > 2)) { var u = t[e], i = n[0], o = n[1], a = u[0], c = u[1], l = i[0], s = i[1], h = o[0], g = o[1], p = Math.abs(h - l), d = g - s; if (Math.abs(d) < $o) { var v = s > c ? -f : f; n.push([-f, v], [f, v]) } else if ($o > p) { var m = l > a ? -f : f; n.push([m, -f], [m, f]) } else { var v = (l - a) * (g - s) > (h - l) * (s - c) ? f : -f, y = Math.abs(d) - p; Math.abs(y) < $o ? n.push([0 > d ? v : -v, v]) : (y > 0 && (v *= -1), n.push([-f, v], [f, v])) } } }), u) for (o = 0; s > o; ++o)u.clip(a[o]); for (o = 0; s > o; ++o)a[o].point = n[o]; return a } var e = Ue, r = Ve, u = null; return arguments.length ? t(n) : (t.x = function (n) { return arguments.length ? (e = n, t) : e }, t.y = function (n) { return arguments.length ? (r = n, t) : r }, t.clipExtent = function (n) { if (!arguments.length) return u && [u[0], u[2]]; if (null == n) u = null; else { var e = +n[0][0], r = +n[0][1], i = +n[1][0], o = +n[1][1]; u = vo.geom.polygon([[e, r], [e, o], [i, o], [i, r]]) } return t }, t.size = function (n) { return arguments.length ? t.clipExtent(n && [[0, 0], n]) : u && u[2] }, t.links = function (n) { var t, u, i, o = n.map(function () { return [] }), a = [], c = gt(e), l = gt(r), s = n.length; if (c === Ue && l === Ve) t = n; else for (t = new Array(s), i = 0; s > i; ++i)t[i] = [+c.call(this, u = n[i], i), +l.call(this, u, i)]; return dr(t, function (t) { var e = t.region.l.index, r = t.region.r.index; o[e][r] || (o[e][r] = o[r][e] = !0, a.push({ source: n[e], target: n[r] })) }), a }, t.triangles = function (n) { if (e === Ue && r === Ve) return vo.geom.delaunay(n); for (var t, u = new Array(c), i = gt(e), o = gt(r), a = -1, c = n.length; ++a < c;)(u[a] = [+i.call(this, t = n[a], a), +o.call(this, t, a)]).data = t; return vo.geom.delaunay(u).map(function (n) { return n.map(function (n) { return n.data }) }) }, t) }; var vc = { l: "r", r: "l" }; vo.geom.quadtree = function (n, t, e, r, u) { function i(n) { function i(n, t, e, r, u, i, o, a) { if (!isNaN(e) && !isNaN(r)) if (n.leaf) { var c = n.x, s = n.y; if (null != c) if (Math.abs(c - e) + Math.abs(s - r) < .01) l(n, t, e, r, u, i, o, a); else { var f = n.point; n.x = n.y = n.point = null, l(n, f, c, s, u, i, o, a), l(n, t, e, r, u, i, o, a) } else n.x = e, n.y = r, n.point = t } else l(n, t, e, r, u, i, o, a) } function l(n, t, e, r, u, o, a, c) { var l = .5 * (u + a), s = .5 * (o + c), f = e >= l, h = r >= s, g = (h << 1) + f; n.leaf = !1, n = n.nodes[g] || (n.nodes[g] = yr()), f ? u = l : a = l, h ? o = s : c = s, i(n, t, e, r, u, o, a, c) } var s, f, h, g, p, d, v, m, y, M = gt(a), x = gt(c); if (null != t) d = t, v = e, m = r, y = u; else if (m = y = -(d = v = 1 / 0), f = [], h = [], p = n.length, o) for (g = 0; p > g; ++g)s = n[g], s.x < d && (d = s.x), s.y < v && (v = s.y), s.x > m && (m = s.x), s.y > y && (y = s.y), f.push(s.x), h.push(s.y); else for (g = 0; p > g; ++g) { var b = +M(s = n[g], g), _ = +x(s, g); d > b && (d = b), v > _ && (v = _), b > m && (m = b), _ > y && (y = _), f.push(b), h.push(_) } var w = m - d, S = y - v; w > S ? y = v + w : m = d + S; var E = yr(); if (E.add = function (n) { i(E, n, +M(n, ++g), +x(n, g), d, v, m, y) }, E.visit = function (n) { Mr(n, E, d, v, m, y) }, g = -1, null == t) { for (; ++g < p;)i(E, n[g], f[g], h[g], d, v, m, y); --g } else n.forEach(E.add); return f = h = n = s = null, E } var o, a = Ue, c = Ve; return (o = arguments.length) ? (a = vr, c = mr, 3 === o && (u = e, r = t, e = t = 0), i(n)) : (i.x = function (n) { return arguments.length ? (a = n, i) : a }, i.y = function (n) { return arguments.length ? (c = n, i) : c }, i.extent = function (n) { return arguments.length ? (null == n ? t = e = r = u = null : (t = +n[0][0], e = +n[0][1], r = +n[1][0], u = +n[1][1]), i) : null == t ? null : [[t, e], [r, u]] }, i.size = function (n) { return arguments.length ? (null == n ? t = e = r = u = null : (t = e = 0, r = +n[0], u = +n[1]), i) : null == t ? null : [r - t, u - e] }, i) }, vo.interpolateRgb = xr, vo.interpolateObject = br, vo.interpolateNumber = _r, vo.interpolateString = wr; var mc = /[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g; vo.interpolate = Sr, vo.interpolators = [function (n, t) { var e = typeof t; return ("string" === e ? ha.has(t) || /^(#|rgb\(|hsl\()/.test(t) ? xr : wr : t instanceof U ? xr : "object" === e ? Array.isArray(t) ? Er : br : _r)(n, t) }], vo.interpolateArray = Er; var yc = function () { return pt }, Mc = vo.map({ linear: yc, poly: Cr, quad: function () { return qr }, cubic: function () { return Tr }, sin: function () { return Dr }, exp: function () { return jr }, circle: function () { return Lr }, elastic: Hr, back: Fr, bounce: function () { return Pr } }), xc = vo.map({ "in": pt, out: Ar, "in-out": Nr, "out-in": function (n) { return Nr(Ar(n)) } }); vo.ease = function (n) { var t = n.indexOf("-"), e = t >= 0 ? n.substring(0, t) : n, r = t >= 0 ? n.substring(t + 1) : "in"; return e = Mc.get(e) || yc, r = xc.get(r) || pt, kr(r(e.apply(null, Array.prototype.slice.call(arguments, 1)))) }, vo.interpolateHcl = Or, vo.interpolateHsl = Rr, vo.interpolateLab = Yr, vo.interpolateRound = Ir, vo.transform = function (n) { var t = Mo.createElementNS(vo.ns.prefix.svg, "g"); return (vo.transform = function (n) { if (null != n) { t.setAttribute("transform", n); var e = t.transform.baseVal.consolidate() } return new Ur(e ? e.matrix : bc) })(n) }, Ur.prototype.toString = function () { return "translate(" + this.translate + ")rotate(" + this.rotate + ")skewX(" + this.skew + ")scale(" + this.scale + ")" }; var bc = { a: 1, b: 0, c: 0, d: 1, e: 0, f: 0 }; vo.interpolateTransform = Br, vo.layout = {}, vo.layout.bundle = function () { return function (n) { for (var t = [], e = -1, r = n.length; ++e < r;)t.push(Jr(n[e])); return t } }, vo.layout.chord = function () { function n() { var n, l, f, h, g, p = {}, d = [], v = vo.range(i), m = []; for (e = [], r = [], n = 0, h = -1; ++h < i;) { for (l = 0, g = -1; ++g < i;)l += u[h][g]; d.push(l), m.push(vo.range(i)), n += l } for (o && v.sort(function (n, t) { return o(d[n], d[t]) }), a && m.forEach(function (n, t) { n.sort(function (n, e) { return a(u[t][n], u[t][e]) }) }), n = (2 * Bo - s * i) / n, l = 0, h = -1; ++h < i;) { for (f = l, g = -1; ++g < i;) { var y = v[h], M = m[y][g], x = u[y][M], b = l, _ = l += x * n; p[y + "-" + M] = { index: y, subindex: M, startAngle: b, endAngle: _, value: x } } r[y] = { index: y, startAngle: f, endAngle: l, value: (l - f) / n }, l += s } for (h = -1; ++h < i;)for (g = h - 1; ++g < i;) { var w = p[h + "-" + g], S = p[g + "-" + h]; (w.value || S.value) && e.push(w.value < S.value ? { source: S, target: w } : { source: w, target: S }) } c && t() } function t() { e.sort(function (n, t) { return c((n.source.value + n.target.value) / 2, (t.source.value + t.target.value) / 2) }) } var e, r, u, i, o, a, c, l = {}, s = 0; return l.matrix = function (n) { return arguments.length ? (i = (u = n) && u.length, e = r = null, l) : u }, l.padding = function (n) { return arguments.length ? (s = n, e = r = null, l) : s }, l.sortGroups = function (n) { return arguments.length ? (o = n, e = r = null, l) : o }, l.sortSubgroups = function (n) { return arguments.length ? (a = n, e = null, l) : a }, l.sortChords = function (n) { return arguments.length ? (c = n, e && t(), l) : c }, l.chords = function () { return e || n(), e }, l.groups = function () { return r || n(), r }, l }, vo.layout.force = function () { function n(n) { return function (t, e, r, u) { if (t.point !== n) { var i = t.cx - n.x, o = t.cy - n.y, a = 1 / Math.sqrt(i * i + o * o); if (d > (u - e) * a) { var c = t.charge * a * a; return n.px -= i * c, n.py -= o * c, !0 } if (t.point && isFinite(a)) { var c = t.pointCharge * a * a; n.px -= i * c, n.py -= o * c } } return !t.charge } } function t(n) { n.px = vo.event.x, n.py = vo.event.y, a.resume() } var e, r, u, i, o, a = {}, c = vo.dispatch("start", "tick", "end"), l = [1, 1], s = .9, f = _c, h = wc, g = -30, p = .1, d = .8, v = [], m = []; return a.tick = function () { if ((r *= .99) < .005) return c.end({ type: "end", alpha: r = 0 }), !0; var t, e, a, f, h, d, y, M, x, b = v.length, _ = m.length; for (e = 0; _ > e; ++e)a = m[e], f = a.source, h = a.target, M = h.x - f.x, x = h.y - f.y, (d = M * M + x * x) && (d = r * i[e] * ((d = Math.sqrt(d)) - u[e]) / d, M *= d, x *= d, h.x -= M * (y = f.weight / (h.weight + f.weight)), h.y -= x * y, f.x += M * (y = 1 - y), f.y += x * y); if ((y = r * p) && (M = l[0] / 2, x = l[1] / 2, e = -1, y)) for (; ++e < b;)a = v[e], a.x += (M - a.x) * y, a.y += (x - a.y) * y; if (g) for (ru(t = vo.geom.quadtree(v), r, o), e = -1; ++e < b;)(a = v[e]).fixed || t.visit(n(a)); for (e = -1; ++e < b;)a = v[e], a.fixed ? (a.x = a.px, a.y = a.py) : (a.x -= (a.px - (a.px = a.x)) * s, a.y -= (a.py - (a.py = a.y)) * s); c.tick({ type: "tick", alpha: r }) }, a.nodes = function (n) { return arguments.length ? (v = n, a) : v }, a.links = function (n) { return arguments.length ? (m = n, a) : m }, a.size = function (n) { return arguments.length ? (l = n, a) : l }, a.linkDistance = function (n) { return arguments.length ? (f = "function" == typeof n ? n : +n, a) : f }, a.distance = a.linkDistance, a.linkStrength = function (n) { return arguments.length ? (h = "function" == typeof n ? n : +n, a) : h }, a.friction = function (n) { return arguments.length ? (s = +n, a) : s }, a.charge = function (n) { return arguments.length ? (g = "function" == typeof n ? n : +n, a) : g }, a.gravity = function (n) { return arguments.length ? (p = +n, a) : p }, a.theta = function (n) { return arguments.length ? (d = +n, a) : d }, a.alpha = function (n) { return arguments.length ? (n = +n, r ? r = n > 0 ? n : 0 : n > 0 && (c.start({ type: "start", alpha: r = n }), vo.timer(a.tick)), a) : r }, a.start = function () { function n(n, r) { for (var u, i = t(e), o = -1, a = i.length; ++o < a;)if (!isNaN(u = i[o][n])) return u; return Math.random() * r } function t() { if (!c) { for (c = [], r = 0; p > r; ++r)c[r] = []; for (r = 0; d > r; ++r) { var n = m[r]; c[n.source.index].push(n.target), c[n.target.index].push(n.source) } } return c[e] } var e, r, c, s, p = v.length, d = m.length, y = l[0], M = l[1]; for (e = 0; p > e; ++e)(s = v[e]).index = e, s.weight = 0; for (e = 0; d > e; ++e)s = m[e], "number" == typeof s.source && (s.source = v[s.source]), "number" == typeof s.target && (s.target = v[s.target]), ++s.source.weight, ++s.target.weight; for (e = 0; p > e; ++e)s = v[e], isNaN(s.x) && (s.x = n("x", y)), isNaN(s.y) && (s.y = n("y", M)), isNaN(s.px) && (s.px = s.x), isNaN(s.py) && (s.py = s.y); if (u = [], "function" == typeof f) for (e = 0; d > e; ++e)u[e] = +f.call(this, m[e], e); else for (e = 0; d > e; ++e)u[e] = f; if (i = [], "function" == typeof h) for (e = 0; d > e; ++e)i[e] = +h.call(this, m[e], e); else for (e = 0; d > e; ++e)i[e] = h; if (o = [], "function" == typeof g) for (e = 0; p > e; ++e)o[e] = +g.call(this, v[e], e); else for (e = 0; p > e; ++e)o[e] = g; return a.resume() }, a.resume = function () { return a.alpha(.1) }, a.stop = function () { return a.alpha(0) }, a.drag = function () { return e || (e = vo.behavior.drag().origin(pt).on("dragstart.force", Qr).on("drag.force", t).on("dragend.force", nu)), arguments.length ? (this.on("mouseover.force", tu).on("mouseout.force", eu).call(e), void 0) : e }, vo.rebind(a, c, "on") }; var _c = 20, wc = 1; vo.layout.hierarchy = function () { function n(t, o, a) { var c = u.call(e, t, o); if (t.depth = o, a.push(t), c && (l = c.length)) { for (var l, s, f = -1, h = t.children = [], g = 0, p = o + 1; ++f < l;)s = n(c[f], p, a), s.parent = t, h.push(s), g += s.value; r && h.sort(r), i && (t.value = g) } else i && (t.value = +i.call(e, t, o) || 0); return t } function t(n, r) { var u = n.children, o = 0; if (u && (a = u.length)) for (var a, c = -1, l = r + 1; ++c < a;)o += t(u[c], l); else i && (o = +i.call(e, n, r) || 0); return i && (n.value = o), o } function e(t) { var e = []; return n(t, 0, e), e } var r = au, u = iu, i = ou; return e.sort = function (n) { return arguments.length ? (r = n, e) : r }, e.children = function (n) { return arguments.length ? (u = n, e) : u }, e.value = function (n) { return arguments.length ? (i = n, e) : i }, e.revalue = function (n) { return t(n, 0), n }, e }, vo.layout.partition = function () { function n(t, e, r, u) { var i = t.children; if (t.x = e, t.y = t.depth * u, t.dx = r, t.dy = u, i && (o = i.length)) { var o, a, c, l = -1; for (r = t.value ? r / t.value : 0; ++l < o;)n(a = i[l], e, c = a.value * r, u), e += c } } function t(n) { var e = n.children, r = 0; if (e && (u = e.length)) for (var u, i = -1; ++i < u;)r = Math.max(r, t(e[i])); return 1 + r } function e(e, i) { var o = r.call(this, e, i); return n(o[0], 0, u[0], u[1] / t(o[0])), o } var r = vo.layout.hierarchy(), u = [1, 1]; return e.size = function (n) { return arguments.length ? (u = n, e) : u }, uu(e, r) }, vo.layout.pie = function () { function n(i) { var o = i.map(function (e, r) { return +t.call(n, e, r) }), a = +("function" == typeof r ? r.apply(this, arguments) : r), c = (("function" == typeof u ? u.apply(this, arguments) : u) - a) / vo.sum(o), l = vo.range(i.length); null != e && l.sort(e === Sc ? function (n, t) { return o[t] - o[n] } : function (n, t) { return e(i[n], i[t]) }); var s = []; return l.forEach(function (n) { var t; s[n] = { data: i[n], value: t = o[n], startAngle: a, endAngle: a += t * c } }), s } var t = Number, e = Sc, r = 0, u = 2 * Bo; return n.value = function (e) { return arguments.length ? (t = e, n) : t }, n.sort = function (t) { return arguments.length ? (e = t, n) : e }, n.startAngle = function (t) { return arguments.length ? (r = t, n) : r }, n.endAngle = function (t) { return arguments.length ? (u = t, n) : u }, n }; var Sc = {}; vo.layout.stack = function () { function n(a, c) { var l = a.map(function (e, r) { return t.call(n, e, r) }), s = l.map(function (t) { return t.map(function (t, e) { return [i.call(n, t, e), o.call(n, t, e)] }) }), f = e.call(n, s, c); l = vo.permute(l, f), s = vo.permute(s, f); var h, g, p, d = r.call(n, s, c), v = l.length, m = l[0].length; for (g = 0; m > g; ++g)for (u.call(n, l[0][g], p = d[g], s[0][g][1]), h = 1; v > h; ++h)u.call(n, l[h][g], p += s[h - 1][g][1], s[h][g][1]); return a } var t = pt, e = hu, r = gu, u = fu, i = lu, o = su; return n.values = function (e) { return arguments.length ? (t = e, n) : t }, n.order = function (t) { return arguments.length ? (e = "function" == typeof t ? t : Ec.get(t) || hu, n) : e }, n.offset = function (t) { return arguments.length ? (r = "function" == typeof t ? t : kc.get(t) || gu, n) : r }, n.x = function (t) { return arguments.length ? (i = t, n) : i }, n.y = function (t) { return arguments.length ? (o = t, n) : o }, n.out = function (t) { return arguments.length ? (u = t, n) : u }, n }; var Ec = vo.map({ "inside-out": function (n) { var t, e, r = n.length, u = n.map(pu), i = n.map(du), o = vo.range(r).sort(function (n, t) { return u[n] - u[t] }), a = 0, c = 0, l = [], s = []; for (t = 0; r > t; ++t)e = o[t], c > a ? (a += i[e], l.push(e)) : (c += i[e], s.push(e)); return s.reverse().concat(l) }, reverse: function (n) { return vo.range(n.length).reverse() }, "default": hu }), kc = vo.map({ silhouette: function (n) { var t, e, r, u = n.length, i = n[0].length, o = [], a = 0, c = []; for (e = 0; i > e; ++e) { for (t = 0, r = 0; u > t; t++)r += n[t][e][1]; r > a && (a = r), o.push(r) } for (e = 0; i > e; ++e)c[e] = (a - o[e]) / 2; return c }, wiggle: function (n) { var t, e, r, u, i, o, a, c, l, s = n.length, f = n[0], h = f.length, g = []; for (g[0] = c = l = 0, e = 1; h > e; ++e) { for (t = 0, u = 0; s > t; ++t)u += n[t][e][1]; for (t = 0, i = 0, a = f[e][0] - f[e - 1][0]; s > t; ++t) { for (r = 0, o = (n[t][e][1] - n[t][e - 1][1]) / (2 * a); t > r; ++r)o += (n[r][e][1] - n[r][e - 1][1]) / a; i += o * n[t][e][1] } g[e] = c -= u ? i / u * a : 0, l > c && (l = c) } for (e = 0; h > e; ++e)g[e] -= l; return g }, expand: function (n) { var t, e, r, u = n.length, i = n[0].length, o = 1 / u, a = []; for (e = 0; i > e; ++e) { for (t = 0, r = 0; u > t; t++)r += n[t][e][1]; if (r) for (t = 0; u > t; t++)n[t][e][1] /= r; else for (t = 0; u > t; t++)n[t][e][1] = o } for (e = 0; i > e; ++e)a[e] = 0; return a }, zero: gu }); vo.layout.histogram = function () { function n(n, i) { for (var o, a, c = [], l = n.map(e, this), s = r.call(this, l, i), f = u.call(this, s, l, i), i = -1, h = l.length, g = f.length - 1, p = t ? 1 : 1 / h; ++i < g;)o = c[i] = [], o.dx = f[i + 1] - (o.x = f[i]), o.y = 0; if (g > 0) for (i = -1; ++i < h;)a = l[i], a >= s[0] && a <= s[1] && (o = c[vo.bisect(f, a, 1, g) - 1], o.y += p, o.push(n[i])); return c } var t = !0, e = Number, r = Mu, u = mu; return n.value = function (t) { return arguments.length ? (e = t, n) : e }, n.range = function (t) { return arguments.length ? (r = gt(t), n) : r }, n.bins = function (t) { return arguments.length ? (u = "number" == typeof t ? function (n) { return yu(n, t) } : gt(t), n) : u }, n.frequency = function (e) { return arguments.length ? (t = !!e, n) : t }, n }, vo.layout.tree = function () { function n(n, i) { function o(n, t) { var r = n.children, u = n._tree; if (r && (i = r.length)) { for (var i, a, l, s = r[0], f = s, h = -1; ++h < i;)l = r[h], o(l, a), f = c(l, a, f), a = l; Nu(n); var g = .5 * (s._tree.prelim + l._tree.prelim); t ? (u.prelim = t._tree.prelim + e(n, t), u.mod = u.prelim - g) : u.prelim = g } else t && (u.prelim = t._tree.prelim + e(n, t)) } function a(n, t) { n.x = n._tree.prelim + t; var e = n.children; if (e && (r = e.length)) { var r, u = -1; for (t += n._tree.mod; ++u < r;)a(e[u], t) } } function c(n, t, r) { if (t) { for (var u, i = n, o = n, a = t, c = n.parent.children[0], l = i._tree.mod, s = o._tree.mod, f = a._tree.mod, h = c._tree.mod; a = _u(a), i = bu(i), a && i;)c = bu(c), o = _u(o), o._tree.ancestor = n, u = a._tree.prelim + f - i._tree.prelim - l + e(a, i), u > 0 && (qu(Tu(a, n, r), n, u), l += u, s += u), f += a._tree.mod, l += i._tree.mod, h += c._tree.mod, s += o._tree.mod; a && !_u(o) && (o._tree.thread = a, o._tree.mod += f - s), i && !bu(c) && (c._tree.thread = i, c._tree.mod += l - h, r = n) } return r } var l = t.call(this, n, i), s = l[0]; Au(s, function (n, t) { n._tree = { ancestor: n, prelim: 0, mod: 0, change: 0, shift: 0, number: t ? t._tree.number + 1 : 0 } }), o(s), a(s, -s._tree.prelim); var f = wu(s, Eu), h = wu(s, Su), g = wu(s, ku), p = f.x - e(f, h) / 2, d = h.x + e(h, f) / 2, v = g.depth || 1; return Au(s, u ? function (n) { n.x *= r[0], n.y = n.depth * r[1], delete n._tree } : function (n) { n.x = (n.x - p) / (d - p) * r[0], n.y = n.depth / v * r[1], delete n._tree }), l } var t = vo.layout.hierarchy().sort(null).value(null), e = xu, r = [1, 1], u = !1; return n.separation = function (t) { return arguments.length ? (e = t, n) : e }, n.size = function (t) { return arguments.length ? (u = null == (r = t), n) : u ? null : r }, n.nodeSize = function (t) { return arguments.length ? (u = null != (r = t), n) : u ? r : null }, uu(n, t) }, vo.layout.pack = function () { function n(n, i) { var o = e.call(this, n, i), a = o[0], c = u[0], l = u[1], s = null == t ? Math.sqrt : "function" == typeof t ? t : function () { return t }; if (a.x = a.y = 0, Au(a, function (n) { n.r = +s(n.value) }), Au(a, Lu), r) { var f = r * (t ? 1 : Math.max(2 * a.r / c, 2 * a.r / l)) / 2; Au(a, function (n) { n.r += f }), Au(a, Lu), Au(a, function (n) { n.r -= f }) } return Pu(a, c / 2, l / 2, t ? 1 : 1 / Math.max(2 * a.r / c, 2 * a.r / l)), o } var t, e = vo.layout.hierarchy().sort(zu), r = 0, u = [1, 1]; return n.size = function (t) { return arguments.length ? (u = t, n) : u }, n.radius = function (e) { return arguments.length ? (t = null == e || "function" == typeof e ? e : +e, n) : t }, n.padding = function (t) { return arguments.length ? (r = +t, n) : r }, uu(n, e) }, vo.layout.cluster = function () { function n(n, i) { var o, a = t.call(this, n, i), c = a[0], l = 0; Au(c, function (n) { var t = n.children; t && t.length ? (n.x = Yu(t), n.y = Ru(t)) : (n.x = o ? l += e(n, o) : 0, n.y = 0, o = n) }); var s = Iu(c), f = Uu(c), h = s.x - e(s, f) / 2, g = f.x + e(f, s) / 2; return Au(c, u ? function (n) { n.x = (n.x - c.x) * r[0], n.y = (c.y - n.y) * r[1] } : function (n) { n.x = (n.x - h) / (g - h) * r[0], n.y = (1 - (c.y ? n.y / c.y : 1)) * r[1] }), a } var t = vo.layout.hierarchy().sort(null).value(null), e = xu, r = [1, 1], u = !1; return n.separation = function (t) { return arguments.length ? (e = t, n) : e }, n.size = function (t) { return arguments.length ? (u = null == (r = t), n) : u ? null : r }, n.nodeSize = function (t) { return arguments.length ? (u = null != (r = t), n) : u ? r : null }, uu(n, t) }, vo.layout.treemap = function () { function n(n, t) { for (var e, r, u = -1, i = n.length; ++u < i;)r = (e = n[u]).value * (0 > t ? 0 : t), e.area = isNaN(r) || 0 >= r ? 0 : r } function t(e) { var i = e.children; if (i && i.length) { var o, a, c, l = f(e), s = [], h = i.slice(), p = 1 / 0, d = "slice" === g ? l.dx : "dice" === g ? l.dy : "slice-dice" === g ? 1 & e.depth ? l.dy : l.dx : Math.min(l.dx, l.dy); for (n(h, l.dx * l.dy / e.value), s.area = 0; (c = h.length) > 0;)s.push(o = h[c - 1]), s.area += o.area, "squarify" !== g || (a = r(s, d)) <= p ? (h.pop(), p = a) : (s.area -= s.pop().area, u(s, d, l, !1), d = Math.min(l.dx, l.dy), s.length = s.area = 0, p = 1 / 0); s.length && (u(s, d, l, !0), s.length = s.area = 0), i.forEach(t) } } function e(t) { var r = t.children; if (r && r.length) { var i, o = f(t), a = r.slice(), c = []; for (n(a, o.dx * o.dy / t.value), c.area = 0; i = a.pop();)c.push(i), c.area += i.area, null != i.z && (u(c, i.z ? o.dx : o.dy, o, !a.length), c.length = c.area = 0); r.forEach(e) } } function r(n, t) { for (var e, r = n.area, u = 0, i = 1 / 0, o = -1, a = n.length; ++o < a;)(e = n[o].area) && (i > e && (i = e), e > u && (u = e)); return r *= r, t *= t, r ? Math.max(t * u * p / r, r / (t * i * p)) : 1 / 0 } function u(n, t, e, r) { var u, i = -1, o = n.length, a = e.x, l = e.y, s = t ? c(n.area / t) : 0; if (t == e.dx) { for ((r || s > e.dy) && (s = e.dy); ++i < o;)u = n[i], u.x = a, u.y = l, u.dy = s, a += u.dx = Math.min(e.x + e.dx - a, s ? c(u.area / s) : 0); u.z = !0, u.dx += e.x + e.dx - a, e.y += s, e.dy -= s } else { for ((r || s > e.dx) && (s = e.dx); ++i < o;)u = n[i], u.x = a, u.y = l, u.dx = s, l += u.dy = Math.min(e.y + e.dy - l, s ? c(u.area / s) : 0); u.z = !1, u.dy += e.y + e.dy - l, e.x += s, e.dx -= s } } function i(r) { var u = o || a(r), i = u[0]; return i.x = 0, i.y = 0, i.dx = l[0], i.dy = l[1], o && a.revalue(i), n([i], i.dx * i.dy / i.value), (o ? e : t)(i), h && (o = u), u } var o, a = vo.layout.hierarchy(), c = Math.round, l = [1, 1], s = null, f = Vu, h = !1, g = "squarify", p = .5 * (1 + Math.sqrt(5)); return i.size = function (n) { return arguments.length ? (l = n, i) : l }, i.padding = function (n) { function t(t) { var e = n.call(i, t, t.depth); return null == e ? Vu(t) : Zu(t, "number" == typeof e ? [e, e, e, e] : e) } function e(t) { return Zu(t, n) } if (!arguments.length) return s; var r; return f = null == (s = n) ? Vu : "function" == (r = typeof n) ? t : "number" === r ? (n = [n, n, n, n], e) : e, i }, i.round = function (n) { return arguments.length ? (c = n ? Math.round : Number, i) : c != Number }, i.sticky = function (n) { return arguments.length ? (h = n, o = null, i) : h }, i.ratio = function (n) { return arguments.length ? (p = n, i) : p }, i.mode = function (n) { return arguments.length ? (g = n + "", i) : g }, uu(i, a) }, vo.random = { normal: function (n, t) { var e = arguments.length; return 2 > e && (t = 1), 1 > e && (n = 0), function () { var e, r, u; do e = 2 * Math.random() - 1, r = 2 * Math.random() - 1, u = e * e + r * r; while (!u || u > 1); return n + t * e * Math.sqrt(-2 * Math.log(u) / u) } }, logNormal: function () { var n = vo.random.normal.apply(vo, arguments); return function () { return Math.exp(n()) } }, irwinHall: function (n) { return function () { for (var t = 0, e = 0; n > e; e++)t += Math.random(); return t / n } } }, vo.scale = {}; var Ac = { floor: pt, ceil: pt }; vo.scale.linear = function () { return Ku([0, 1], [0, 1], Sr, !1) }, vo.scale.log = function () { return ui(vo.scale.linear().domain([0, 1]), 10, !0, [1, 10]) }; var Nc = vo.format(".0e"), qc = { floor: function (n) { return -Math.ceil(-n) }, ceil: function (n) { return -Math.floor(-n) } }; vo.scale.pow = function () { return ii(vo.scale.linear(), 1, [0, 1]) }, vo.scale.sqrt = function () { return vo.scale.pow().exponent(.5) }, vo.scale.ordinal = function () { return ai([], { t: "range", a: [[]] }) }, vo.scale.category10 = function () { return vo.scale.ordinal().range(Tc) }, vo.scale.category20 = function () { return vo.scale.ordinal().range(zc) }, vo.scale.category20b = function () { return vo.scale.ordinal().range(Cc) }, vo.scale.category20c = function () { return vo.scale.ordinal().range(Dc) }; var Tc = [2062260, 16744206, 2924588, 14034728, 9725885, 9197131, 14907330, 8355711, 12369186, 1556175].map(ut), zc = [2062260, 11454440, 16744206, 16759672, 2924588, 10018698, 14034728, 16750742, 9725885, 12955861, 9197131, 12885140, 14907330, 16234194, 8355711, 13092807, 12369186, 14408589, 1556175, 10410725].map(ut), Cc = [3750777, 5395619, 7040719, 10264286, 6519097, 9216594, 11915115, 13556636, 9202993, 12426809, 15186514, 15190932, 8666169, 11356490, 14049643, 15177372, 8077683, 10834324, 13528509, 14589654].map(ut), Dc = [3244733, 7057110, 10406625, 13032431, 15095053, 16616764, 16625259, 16634018, 3253076, 7652470, 10607003, 13101504, 7695281, 10394312, 12369372, 14342891, 6513507, 9868950, 12434877, 14277081].map(ut); vo.scale.quantile = function () { return ci([], []) }, vo.scale.quantize = function () { return li(0, 1, [0, 1]) }, vo.scale.threshold = function () { return si([.5], [0, 1]) }, vo.scale.identity = function () { return fi([0, 1]) }, vo.svg.arc = function () { function n() { var n = t.apply(this, arguments), i = e.apply(this, arguments), o = r.apply(this, arguments) + jc, a = u.apply(this, arguments) + jc, c = (o > a && (c = o, o = a, a = c), a - o), l = Bo > c ? "0" : "1", s = Math.cos(o), f = Math.sin(o), h = Math.cos(a), g = Math.sin(a); return c >= Lc ? n ? "M0," + i + "A" + i + "," + i + " 0 1,1 0," + -i + "A" + i + "," + i + " 0 1,1 0," + i + "M0," + n + "A" + n + "," + n + " 0 1,0 0," + -n + "A" + n + "," + n + " 0 1,0 0," + n + "Z" : "M0," + i + "A" + i + "," + i + " 0 1,1 0," + -i + "A" + i + "," + i + " 0 1,1 0," + i + "Z" : n ? "M" + i * s + "," + i * f + "A" + i + "," + i + " 0 " + l + ",1 " + i * h + "," + i * g + "L" + n * h + "," + n * g + "A" + n + "," + n + " 0 " + l + ",0 " + n * s + "," + n * f + "Z" : "M" + i * s + "," + i * f + "A" + i + "," + i + " 0 " + l + ",1 " + i * h + "," + i * g + "L0,0" + "Z" } var t = hi, e = gi, r = pi, u = di; return n.innerRadius = function (e) { return arguments.length ? (t = gt(e), n) : t }, n.outerRadius = function (t) { return arguments.length ? (e = gt(t), n) : e }, n.startAngle = function (t) { return arguments.length ? (r = gt(t), n) : r }, n.endAngle = function (t) { return arguments.length ? (u = gt(t), n) : u }, n.centroid = function () { var n = (t.apply(this, arguments) + e.apply(this, arguments)) / 2, i = (r.apply(this, arguments) + u.apply(this, arguments)) / 2 + jc; return [Math.cos(i) * n, Math.sin(i) * n] }, n }; var jc = -Bo / 2, Lc = 2 * Bo - 1e-6; vo.svg.line.radial = function () { var n = Ie(vi); return n.radius = n.x, delete n.x, n.angle = n.y, delete n.y, n }, $e.reverse = We, We.reverse = $e, vo.svg.area = function () { return mi(pt) }, vo.svg.area.radial = function () { var n = mi(vi); return n.radius = n.x, delete n.x, n.innerRadius = n.x0, delete n.x0, n.outerRadius = n.x1, delete n.x1, n.angle = n.y, delete n.y, n.startAngle = n.y0, delete n.y0, n.endAngle = n.y1, delete n.y1, n }, vo.svg.chord = function () { function n(n, a) { var c = t(this, i, n, a), l = t(this, o, n, a); return "M" + c.p0 + r(c.r, c.p1, c.a1 - c.a0) + (e(c, l) ? u(c.r, c.p1, c.r, c.p0) : u(c.r, c.p1, l.r, l.p0) + r(l.r, l.p1, l.a1 - l.a0) + u(l.r, l.p1, c.r, c.p0)) + "Z" } function t(n, t, e, r) { var u = t.call(n, e, r), i = a.call(n, u, r), o = c.call(n, u, r) + jc, s = l.call(n, u, r) + jc; return { r: i, a0: o, a1: s, p0: [i * Math.cos(o), i * Math.sin(o)], p1: [i * Math.cos(s), i * Math.sin(s)] } } function e(n, t) { return n.a0 == t.a0 && n.a1 == t.a1 } function r(n, t, e) { return "A" + n + "," + n + " 0 " + +(e > Bo) + ",1 " + t } function u(n, t, e, r) { return "Q 0,0 " + r } var i = Ce, o = De, a = yi, c = pi, l = di; return n.radius = function (t) { return arguments.length ? (a = gt(t), n) : a }, n.source = function (t) { return arguments.length ? (i = gt(t), n) : i }, n.target = function (t) { return arguments.length ? (o = gt(t), n) : o }, n.startAngle = function (t) { return arguments.length ? (c = gt(t), n) : c }, n.endAngle = function (t) { return arguments.length ? (l = gt(t), n) : l }, n }, vo.svg.diagonal = function () { function n(n, u) { var i = t.call(this, n, u), o = e.call(this, n, u), a = (i.y + o.y) / 2, c = [i, { x: i.x, y: a }, { x: o.x, y: a }, o]; return c = c.map(r), "M" + c[0] + "C" + c[1] + " " + c[2] + " " + c[3] } var t = Ce, e = De, r = Mi; return n.source = function (e) { return arguments.length ? (t = gt(e), n) : t }, n.target = function (t) { return arguments.length ? (e = gt(t), n) : e }, n.projection = function (t) { return arguments.length ? (r = t, n) : r }, n }, vo.svg.diagonal.radial = function () { var n = vo.svg.diagonal(), t = Mi, e = n.projection; return n.projection = function (n) { return arguments.length ? e(xi(t = n)) : t }, n }, vo.svg.symbol = function () { function n(n, r) { return (Hc.get(t.call(this, n, r)) || wi)(e.call(this, n, r)) } var t = _i, e = bi; return n.type = function (e) { return arguments.length ? (t = gt(e), n) : t }, n.size = function (t) { return arguments.length ? (e = gt(t), n) : e }, n }; var Hc = vo.map({ circle: wi, cross: function (n) { var t = Math.sqrt(n / 5) / 2; return "M" + -3 * t + "," + -t + "H" + -t + "V" + -3 * t + "H" + t + "V" + -t + "H" + 3 * t + "V" + t + "H" + t + "V" + 3 * t + "H" + -t + "V" + t + "H" + -3 * t + "Z" }, diamond: function (n) { var t = Math.sqrt(n / (2 * Rc)), e = t * Rc; return "M0," + -t + "L" + e + ",0" + " 0," + t + " " + -e + ",0" + "Z" }, square: function (n) { var t = Math.sqrt(n) / 2; return "M" + -t + "," + -t + "L" + t + "," + -t + " " + t + "," + t + " " + -t + "," + t + "Z" }, "triangle-down": function (n) { var t = Math.sqrt(n / Oc), e = t * Oc / 2; return "M0," + e + "L" + t + "," + -e + " " + -t + "," + -e + "Z" }, "triangle-up": function (n) { var t = Math.sqrt(n / Oc), e = t * Oc / 2; return "M0," + -e + "L" + t + "," + e + " " + -t + "," + e + "Z" } }); vo.svg.symbolTypes = Hc.keys(); var Fc, Pc, Oc = Math.sqrt(3), Rc = Math.tan(30 * Jo), Yc = [], Ic = 0; Yc.call = Oo.call, Yc.empty = Oo.empty, Yc.node = Oo.node, Yc.size = Oo.size, vo.transition = function (n) { return arguments.length ? Fc ? n.transition() : n : Io.transition() }, vo.transition.prototype = Yc, Oo.transition = function () { for (var n, t, e = Fc || ++Ic, r = [], u = Pc || { time: Date.now(), ease: zr, delay: 0, duration: 250 }, i = -1, o = this.length; ++i < o;) { r.push(n = []); for (var a = this[i], c = -1, l = a.length; ++c < l;)(t = a[c]) && Ni(t, c, e, u), n.push(t) } return Si(r, e) }, Oo.interrupt = function () { return this.each(Ei) }, Yc.select = function (n) { var t, e, r, u = this.id, i = []; n = d(n); for (var o = -1, a = this.length; ++o < a;) { i.push(t = []); for (var c = this[o], l = -1, s = c.length; ++l < s;)(r = c[l]) && (e = n.call(r, r.__data__, l, o)) ? ("__data__" in r && (e.__data__ = r.__data__), Ni(e, l, u, r.__transition__[u]), t.push(e)) : t.push(null) } return Si(i, u) }, Yc.selectAll = function (n) { var t, e, r, u, i, o = this.id, a = []; n = v(n); for (var c = -1, l = this.length; ++c < l;)for (var s = this[c], f = -1, h = s.length; ++f < h;)if (r = s[f]) { i = r.__transition__[o], e = n.call(r, r.__data__, f, c), a.push(t = []); for (var g = -1, p = e.length; ++g < p;)(u = e[g]) && Ni(u, g, o, i), t.push(u) } return Si(a, o) }, Yc.filter = function (n) { var t, e, r, u = []; "function" != typeof n && (n = k(n)); for (var i = 0, o = this.length; o > i; i++) { u.push(t = []); for (var e = this[i], a = 0, c = e.length; c > a; a++)(r = e[a]) && n.call(r, r.__data__, a) && t.push(r) } return Si(u, this.id) }, Yc.tween = function (n, t) { var e = this.id; return arguments.length < 2 ? this.node().__transition__[e].tween.get(n) : N(this, null == t ? function (t) { t.__transition__[e].tween.remove(n) } : function (r) { r.__transition__[e].tween.set(n, t) }) }, Yc.attr = function (n, t) { function e() { this.removeAttribute(a) } function r() { this.removeAttributeNS(a.space, a.local) } function u(n) { return null == n ? e : (n += "", function () { var t, e = this.getAttribute(a); return e !== n && (t = o(e, n), function (n) { this.setAttribute(a, t(n)) }) }) } function i(n) { return null == n ? r : (n += "", function () { var t, e = this.getAttributeNS(a.space, a.local); return e !== n && (t = o(e, n), function (n) { this.setAttributeNS(a.space, a.local, t(n)) }) }) } if (arguments.length < 2) { for (t in n) this.attr(t, n[t]); return this } var o = "transform" == n ? Br : Sr, a = vo.ns.qualify(n); return ki(this, "attr." + n, t, a.local ? i : u) }, Yc.attrTween = function (n, t) {
39
+ function e(n, e) { var r = t.call(this, n, e, this.getAttribute(u)); return r && function (n) { this.setAttribute(u, r(n)) } } function r(n, e) { var r = t.call(this, n, e, this.getAttributeNS(u.space, u.local)); return r && function (n) { this.setAttributeNS(u.space, u.local, r(n)) } } var u = vo.ns.qualify(n);
40
+ return this.tween("attr." + n, u.local ? r : e)
41
+ }, Yc.style = function (n, t, e) { function r() { this.style.removeProperty(n) } function u(t) { return null == t ? r : (t += "", function () { var r, u = bo.getComputedStyle(this, null).getPropertyValue(n); return u !== t && (r = Sr(u, t), function (t) { this.style.setProperty(n, r(t), e) }) }) } var i = arguments.length; if (3 > i) { if ("string" != typeof n) { 2 > i && (t = ""); for (e in n) this.style(e, n[e], t); return this } e = "" } return ki(this, "style." + n, t, u) }, Yc.styleTween = function (n, t, e) { function r(r, u) { var i = t.call(this, r, u, bo.getComputedStyle(this, null).getPropertyValue(n)); return i && function (t) { this.style.setProperty(n, i(t), e) } } return arguments.length < 3 && (e = ""), this.tween("style." + n, r) }, Yc.text = function (n) { return ki(this, "text", n, Ai) }, Yc.remove = function () { return this.each("end.transition", function () { var n; this.__transition__.count < 2 && (n = this.parentNode) && n.removeChild(this) }) }, Yc.ease = function (n) { var t = this.id; return arguments.length < 1 ? this.node().__transition__[t].ease : ("function" != typeof n && (n = vo.ease.apply(vo, arguments)), N(this, function (e) { e.__transition__[t].ease = n })) }, Yc.delay = function (n) { var t = this.id; return N(this, "function" == typeof n ? function (e, r, u) { e.__transition__[t].delay = +n.call(e, e.__data__, r, u) } : (n = +n, function (e) { e.__transition__[t].delay = n })) }, Yc.duration = function (n) { var t = this.id; return N(this, "function" == typeof n ? function (e, r, u) { e.__transition__[t].duration = Math.max(1, n.call(e, e.__data__, r, u)) } : (n = Math.max(1, n), function (e) { e.__transition__[t].duration = n })) }, Yc.each = function (n, t) { var e = this.id; if (arguments.length < 2) { var r = Pc, u = Fc; Fc = e, N(this, function (t, r, u) { Pc = t.__transition__[e], n.call(t, t.__data__, r, u) }), Pc = r, Fc = u } else N(this, function (r) { var u = r.__transition__[e]; (u.event || (u.event = vo.dispatch("start", "end"))).on(n, t) }); return this }, Yc.transition = function () { for (var n, t, e, r, u = this.id, i = ++Ic, o = [], a = 0, c = this.length; c > a; a++) { o.push(n = []); for (var t = this[a], l = 0, s = t.length; s > l; l++)(e = t[l]) && (r = Object.create(e.__transition__[u]), r.delay += r.duration, Ni(e, l, i, r)), n.push(e) } return Si(o, i) }, vo.svg.axis = function () { function n(n) { n.each(function () { var n, l = vo.select(this), s = null == c ? e.ticks ? e.ticks.apply(e, a) : e.domain() : c, f = null == t ? e.tickFormat ? e.tickFormat.apply(e, a) : pt : t, h = l.selectAll(".tick").data(s, pt), g = h.enter().insert("g", ".domain").attr("class", "tick").style("opacity", 1e-6), p = vo.transition(h.exit()).style("opacity", 1e-6).remove(), d = vo.transition(h).style("opacity", 1), v = Bu(e), m = l.selectAll(".domain").data([0]), y = (m.enter().append("path").attr("class", "domain"), vo.transition(m)), M = e.copy(), x = this.__chart__ || M; this.__chart__ = M, g.append("line"), g.append("text"); var b = g.select("line"), _ = d.select("line"), w = h.select("text").text(f), S = g.select("text"), E = d.select("text"); switch (r) { case "bottom": n = qi, b.attr("y2", u), S.attr("y", Math.max(u, 0) + o), _.attr("x2", 0).attr("y2", u), E.attr("x", 0).attr("y", Math.max(u, 0) + o), w.attr("dy", ".71em").style("text-anchor", "middle"), y.attr("d", "M" + v[0] + "," + i + "V0H" + v[1] + "V" + i); break; case "top": n = qi, b.attr("y2", -u), S.attr("y", -(Math.max(u, 0) + o)), _.attr("x2", 0).attr("y2", -u), E.attr("x", 0).attr("y", -(Math.max(u, 0) + o)), w.attr("dy", "0em").style("text-anchor", "middle"), y.attr("d", "M" + v[0] + "," + -i + "V0H" + v[1] + "V" + -i); break; case "left": n = Ti, b.attr("x2", -u), S.attr("x", -(Math.max(u, 0) + o)), _.attr("x2", -u).attr("y2", 0), E.attr("x", -(Math.max(u, 0) + o)).attr("y", 0), w.attr("dy", ".32em").style("text-anchor", "end"), y.attr("d", "M" + -i + "," + v[0] + "H0V" + v[1] + "H" + -i); break; case "right": n = Ti, b.attr("x2", u), S.attr("x", Math.max(u, 0) + o), _.attr("x2", u).attr("y2", 0), E.attr("x", Math.max(u, 0) + o).attr("y", 0), w.attr("dy", ".32em").style("text-anchor", "start"), y.attr("d", "M" + i + "," + v[0] + "H0V" + v[1] + "H" + i) }if (e.rangeBand) { var k = M.rangeBand() / 2, A = function (n) { return M(n) + k }; g.call(n, A), d.call(n, A) } else g.call(n, x), d.call(n, M), p.call(n, M) }) } var t, e = vo.scale.linear(), r = Uc, u = 6, i = 6, o = 3, a = [10], c = null; return n.scale = function (t) { return arguments.length ? (e = t, n) : e }, n.orient = function (t) { return arguments.length ? (r = t in Vc ? t + "" : Uc, n) : r }, n.ticks = function () { return arguments.length ? (a = arguments, n) : a }, n.tickValues = function (t) { return arguments.length ? (c = t, n) : c }, n.tickFormat = function (e) { return arguments.length ? (t = e, n) : t }, n.tickSize = function (t) { var e = arguments.length; return e ? (u = +t, i = +arguments[e - 1], n) : u }, n.innerTickSize = function (t) { return arguments.length ? (u = +t, n) : u }, n.outerTickSize = function (t) { return arguments.length ? (i = +t, n) : i }, n.tickPadding = function (t) { return arguments.length ? (o = +t, n) : o }, n.tickSubdivide = function () { return arguments.length && n }, n }; var Uc = "bottom", Vc = { top: 1, right: 1, bottom: 1, left: 1 }; vo.svg.brush = function () { function n(i) { i.each(function () { var i = vo.select(this).style("pointer-events", "all").style("-webkit-tap-highlight-color", "rgba(0,0,0,0)").on("mousedown.brush", u).on("touchstart.brush", u), o = i.selectAll(".background").data([0]); o.enter().append("rect").attr("class", "background").style("visibility", "hidden").style("cursor", "crosshair"), i.selectAll(".extent").data([0]).enter().append("rect").attr("class", "extent").style("cursor", "move"); var a = i.selectAll(".resize").data(v, pt); a.exit().remove(), a.enter().append("g").attr("class", function (n) { return "resize " + n }).style("cursor", function (n) { return Zc[n] }).append("rect").attr("x", function (n) { return /[ew]$/.test(n) ? -3 : null }).attr("y", function (n) { return /^[ns]/.test(n) ? -3 : null }).attr("width", 6).attr("height", 6).style("visibility", "hidden"), a.style("display", n.empty() ? "none" : null); var s, f = vo.transition(i), h = vo.transition(o); c && (s = Bu(c), h.attr("x", s[0]).attr("width", s[1] - s[0]), e(f)), l && (s = Bu(l), h.attr("y", s[0]).attr("height", s[1] - s[0]), r(f)), t(f) }) } function t(n) { n.selectAll(".resize").attr("transform", function (n) { return "translate(" + s[+/e$/.test(n)] + "," + h[+/^s/.test(n)] + ")" }) } function e(n) { n.select(".extent").attr("x", s[0]), n.selectAll(".extent,.n>rect,.s>rect").attr("width", s[1] - s[0]) } function r(n) { n.select(".extent").attr("y", h[0]), n.selectAll(".extent,.e>rect,.w>rect").attr("height", h[1] - h[0]) } function u() { function u() { var n = vo.event.changedTouches; return n ? vo.touches(_, n)[0] : vo.mouse(_) } function g() { 32 == vo.event.keyCode && (q || (x = null, z[0] -= s[1], z[1] -= h[1], q = 2), f()) } function v() { 32 == vo.event.keyCode && 2 == q && (z[0] += s[1], z[1] += h[1], q = 0, f()) } function m() { var n = u(), i = !1; b && (n[0] += b[0], n[1] += b[1]), q || (vo.event.altKey ? (x || (x = [(s[0] + s[1]) / 2, (h[0] + h[1]) / 2]), z[0] = s[+(n[0] < x[0])], z[1] = h[+(n[1] < x[1])]) : x = null), A && y(n, c, 0) && (e(E), i = !0), N && y(n, l, 1) && (r(E), i = !0), i && (t(E), S({ type: "brush", mode: q ? "move" : "resize" })) } function y(n, t, e) { var r, u, a = Bu(t), c = a[0], l = a[1], f = z[e], g = e ? h : s, v = g[1] - g[0]; return q && (c -= f, l -= v + f), r = (e ? d : p) ? Math.max(c, Math.min(l, n[e])) : n[e], q ? u = (r += f) + v : (x && (f = Math.max(c, Math.min(l, 2 * x[e] - r))), r > f ? (u = r, r = f) : u = f), g[0] != r || g[1] != u ? (e ? o = null : i = null, g[0] = r, g[1] = u, !0) : void 0 } function M() { m(), E.style("pointer-events", "all").selectAll(".resize").style("display", n.empty() ? "none" : null), vo.select("body").style("cursor", null), C.on("mousemove.brush", null).on("mouseup.brush", null).on("touchmove.brush", null).on("touchend.brush", null).on("keydown.brush", null).on("keyup.brush", null), T(), S({ type: "brushend" }) } var x, b, _ = this, w = vo.select(vo.event.target), S = a.of(_, arguments), E = vo.select(_), k = w.datum(), A = !/^(n|s)$/.test(k) && c, N = !/^(e|w)$/.test(k) && l, q = w.classed("extent"), T = j(), z = u(), C = vo.select(bo).on("keydown.brush", g).on("keyup.brush", v); if (vo.event.changedTouches ? C.on("touchmove.brush", m).on("touchend.brush", M) : C.on("mousemove.brush", m).on("mouseup.brush", M), E.interrupt().selectAll("*").interrupt(), q) z[0] = s[0] - z[0], z[1] = h[0] - z[1]; else if (k) { var D = +/w$/.test(k), L = +/^n/.test(k); b = [s[1 - D] - z[0], h[1 - L] - z[1]], z[0] = s[D], z[1] = h[L] } else vo.event.altKey && (x = z.slice()); E.style("pointer-events", "none").selectAll(".resize").style("display", null), vo.select("body").style("cursor", w.style("cursor")), S({ type: "brushstart" }), m() } var i, o, a = g(n, "brushstart", "brush", "brushend"), c = null, l = null, s = [0, 0], h = [0, 0], p = !0, d = !0, v = Xc[0]; return n.event = function (n) { n.each(function () { var n = a.of(this, arguments), t = { x: s, y: h, i: i, j: o }, e = this.__chart__ || t; this.__chart__ = t, Fc ? vo.select(this).transition().each("start.brush", function () { i = e.i, o = e.j, s = e.x, h = e.y, n({ type: "brushstart" }) }).tween("brush:brush", function () { var e = Er(s, t.x), r = Er(h, t.y); return i = o = null, function (u) { s = t.x = e(u), h = t.y = r(u), n({ type: "brush", mode: "resize" }) } }).each("end.brush", function () { i = t.i, o = t.j, n({ type: "brush", mode: "resize" }), n({ type: "brushend" }) }) : (n({ type: "brushstart" }), n({ type: "brush", mode: "resize" }), n({ type: "brushend" })) }) }, n.x = function (t) { return arguments.length ? (c = t, v = Xc[!c << 1 | !l], n) : c }, n.y = function (t) { return arguments.length ? (l = t, v = Xc[!c << 1 | !l], n) : l }, n.clamp = function (t) { return arguments.length ? (c && l ? (p = !!t[0], d = !!t[1]) : c ? p = !!t : l && (d = !!t), n) : c && l ? [p, d] : c ? p : l ? d : null }, n.extent = function (t) { var e, r, u, a, f; return arguments.length ? (c && (e = t[0], r = t[1], l && (e = e[0], r = r[0]), i = [e, r], c.invert && (e = c(e), r = c(r)), e > r && (f = e, e = r, r = f), (e != s[0] || r != s[1]) && (s = [e, r])), l && (u = t[0], a = t[1], c && (u = u[1], a = a[1]), o = [u, a], l.invert && (u = l(u), a = l(a)), u > a && (f = u, u = a, a = f), (u != h[0] || a != h[1]) && (h = [u, a])), n) : (c && (i ? (e = i[0], r = i[1]) : (e = s[0], r = s[1], c.invert && (e = c.invert(e), r = c.invert(r)), e > r && (f = e, e = r, r = f))), l && (o ? (u = o[0], a = o[1]) : (u = h[0], a = h[1], l.invert && (u = l.invert(u), a = l.invert(a)), u > a && (f = u, u = a, a = f))), c && l ? [[e, u], [r, a]] : c ? [e, r] : l && [u, a]) }, n.clear = function () { return n.empty() || (s = [0, 0], h = [0, 0], i = o = null), n }, n.empty = function () { return !!c && s[0] == s[1] || !!l && h[0] == h[1] }, vo.rebind(n, a, "on") }; var Zc = { n: "ns-resize", e: "ew-resize", s: "ns-resize", w: "ew-resize", nw: "nwse-resize", ne: "nesw-resize", se: "nwse-resize", sw: "nesw-resize" }, Xc = [["n", "e", "s", "w", "nw", "ne", "se", "sw"], ["e", "w"], ["n", "s"], []], Bc = vo.time = {}, $c = Date, Wc = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]; zi.prototype = { getDate: function () { return this._.getUTCDate() }, getDay: function () { return this._.getUTCDay() }, getFullYear: function () { return this._.getUTCFullYear() }, getHours: function () { return this._.getUTCHours() }, getMilliseconds: function () { return this._.getUTCMilliseconds() }, getMinutes: function () { return this._.getUTCMinutes() }, getMonth: function () { return this._.getUTCMonth() }, getSeconds: function () { return this._.getUTCSeconds() }, getTime: function () { return this._.getTime() }, getTimezoneOffset: function () { return 0 }, valueOf: function () { return this._.valueOf() }, setDate: function () { Jc.setUTCDate.apply(this._, arguments) }, setDay: function () { Jc.setUTCDay.apply(this._, arguments) }, setFullYear: function () { Jc.setUTCFullYear.apply(this._, arguments) }, setHours: function () { Jc.setUTCHours.apply(this._, arguments) }, setMilliseconds: function () { Jc.setUTCMilliseconds.apply(this._, arguments) }, setMinutes: function () { Jc.setUTCMinutes.apply(this._, arguments) }, setMonth: function () { Jc.setUTCMonth.apply(this._, arguments) }, setSeconds: function () { Jc.setUTCSeconds.apply(this._, arguments) }, setTime: function () { Jc.setTime.apply(this._, arguments) } }; var Jc = Date.prototype, Gc = "%a %b %e %X %Y", Kc = "%m/%d/%Y", Qc = "%H:%M:%S", nl = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], tl = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], el = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], rl = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]; Bc.year = Ci(function (n) { return n = Bc.day(n), n.setMonth(0, 1), n }, function (n, t) { n.setFullYear(n.getFullYear() + t) }, function (n) { return n.getFullYear() }), Bc.years = Bc.year.range, Bc.years.utc = Bc.year.utc.range, Bc.day = Ci(function (n) { var t = new $c(2e3, 0); return t.setFullYear(n.getFullYear(), n.getMonth(), n.getDate()), t }, function (n, t) { n.setDate(n.getDate() + t) }, function (n) { return n.getDate() - 1 }), Bc.days = Bc.day.range, Bc.days.utc = Bc.day.utc.range, Bc.dayOfYear = function (n) { var t = Bc.year(n); return Math.floor((n - t - 6e4 * (n.getTimezoneOffset() - t.getTimezoneOffset())) / 864e5) }, Wc.forEach(function (n, t) { n = n.toLowerCase(), t = 7 - t; var e = Bc[n] = Ci(function (n) { return (n = Bc.day(n)).setDate(n.getDate() - (n.getDay() + t) % 7), n }, function (n, t) { n.setDate(n.getDate() + 7 * Math.floor(t)) }, function (n) { var e = Bc.year(n).getDay(); return Math.floor((Bc.dayOfYear(n) + (e + t) % 7) / 7) - (e !== t) }); Bc[n + "s"] = e.range, Bc[n + "s"].utc = e.utc.range, Bc[n + "OfYear"] = function (n) { var e = Bc.year(n).getDay(); return Math.floor((Bc.dayOfYear(n) + (e + t) % 7) / 7) } }), Bc.week = Bc.sunday, Bc.weeks = Bc.sunday.range, Bc.weeks.utc = Bc.sunday.utc.range, Bc.weekOfYear = Bc.sundayOfYear, Bc.format = ji; var ul = Hi(nl), il = Fi(nl), ol = Hi(tl), al = Fi(tl), cl = Hi(el), ll = Fi(el), sl = Hi(rl), fl = Fi(rl), hl = /^%/, gl = { "-": "", _: " ", 0: "0" }, pl = { a: function (n) { return tl[n.getDay()] }, A: function (n) { return nl[n.getDay()] }, b: function (n) { return rl[n.getMonth()] }, B: function (n) { return el[n.getMonth()] }, c: ji(Gc), d: function (n, t) { return Pi(n.getDate(), t, 2) }, e: function (n, t) { return Pi(n.getDate(), t, 2) }, H: function (n, t) { return Pi(n.getHours(), t, 2) }, I: function (n, t) { return Pi(n.getHours() % 12 || 12, t, 2) }, j: function (n, t) { return Pi(1 + Bc.dayOfYear(n), t, 3) }, L: function (n, t) { return Pi(n.getMilliseconds(), t, 3) }, m: function (n, t) { return Pi(n.getMonth() + 1, t, 2) }, M: function (n, t) { return Pi(n.getMinutes(), t, 2) }, p: function (n) { return n.getHours() >= 12 ? "PM" : "AM" }, S: function (n, t) { return Pi(n.getSeconds(), t, 2) }, U: function (n, t) { return Pi(Bc.sundayOfYear(n), t, 2) }, w: function (n) { return n.getDay() }, W: function (n, t) { return Pi(Bc.mondayOfYear(n), t, 2) }, x: ji(Kc), X: ji(Qc), y: function (n, t) { return Pi(n.getFullYear() % 100, t, 2) }, Y: function (n, t) { return Pi(n.getFullYear() % 1e4, t, 4) }, Z: oo, "%": function () { return "%" } }, dl = { a: Oi, A: Ri, b: Vi, B: Zi, c: Xi, d: Qi, e: Qi, H: to, I: to, j: no, L: uo, m: Ki, M: eo, p: io, S: ro, U: Ii, w: Yi, W: Ui, x: Bi, X: $i, y: Ji, Y: Wi, "%": ao }, vl = /^\s*\d+/, ml = vo.map({ am: 0, pm: 1 }); ji.utc = co; var yl = co("%Y-%m-%dT%H:%M:%S.%LZ"); ji.iso = Date.prototype.toISOString && +new Date("2000-01-01T00:00:00.000Z") ? lo : yl, lo.parse = function (n) { var t = new Date(n); return isNaN(t) ? null : t }, lo.toString = yl.toString, Bc.second = Ci(function (n) { return new $c(1e3 * Math.floor(n / 1e3)) }, function (n, t) { n.setTime(n.getTime() + 1e3 * Math.floor(t)) }, function (n) { return n.getSeconds() }), Bc.seconds = Bc.second.range, Bc.seconds.utc = Bc.second.utc.range, Bc.minute = Ci(function (n) { return new $c(6e4 * Math.floor(n / 6e4)) }, function (n, t) { n.setTime(n.getTime() + 6e4 * Math.floor(t)) }, function (n) { return n.getMinutes() }), Bc.minutes = Bc.minute.range, Bc.minutes.utc = Bc.minute.utc.range, Bc.hour = Ci(function (n) { var t = n.getTimezoneOffset() / 60; return new $c(36e5 * (Math.floor(n / 36e5 - t) + t)) }, function (n, t) { n.setTime(n.getTime() + 36e5 * Math.floor(t)) }, function (n) { return n.getHours() }), Bc.hours = Bc.hour.range, Bc.hours.utc = Bc.hour.utc.range, Bc.month = Ci(function (n) { return n = Bc.day(n), n.setDate(1), n }, function (n, t) { n.setMonth(n.getMonth() + t) }, function (n) { return n.getMonth() }), Bc.months = Bc.month.range, Bc.months.utc = Bc.month.utc.range; var Ml = [1e3, 5e3, 15e3, 3e4, 6e4, 3e5, 9e5, 18e5, 36e5, 108e5, 216e5, 432e5, 864e5, 1728e5, 6048e5, 2592e6, 7776e6, 31536e6], xl = [[Bc.second, 1], [Bc.second, 5], [Bc.second, 15], [Bc.second, 30], [Bc.minute, 1], [Bc.minute, 5], [Bc.minute, 15], [Bc.minute, 30], [Bc.hour, 1], [Bc.hour, 3], [Bc.hour, 6], [Bc.hour, 12], [Bc.day, 1], [Bc.day, 2], [Bc.week, 1], [Bc.month, 1], [Bc.month, 3], [Bc.year, 1]], bl = [[ji("%Y"), Vt], [ji("%B"), function (n) { return n.getMonth() }], [ji("%b %d"), function (n) { return 1 != n.getDate() }], [ji("%a %d"), function (n) { return n.getDay() && 1 != n.getDate() }], [ji("%I %p"), function (n) { return n.getHours() }], [ji("%I:%M"), function (n) { return n.getMinutes() }], [ji(":%S"), function (n) { return n.getSeconds() }], [ji(".%L"), function (n) { return n.getMilliseconds() }]], _l = ho(bl); xl.year = Bc.year, Bc.scale = function () { return so(vo.scale.linear(), xl, _l) }; var wl = { range: function (n, t, e) { return vo.range(+n, +t, e).map(fo) } }, Sl = xl.map(function (n) { return [n[0].utc, n[1]] }), El = [[co("%Y"), Vt], [co("%B"), function (n) { return n.getUTCMonth() }], [co("%b %d"), function (n) { return 1 != n.getUTCDate() }], [co("%a %d"), function (n) { return n.getUTCDay() && 1 != n.getUTCDate() }], [co("%I %p"), function (n) { return n.getUTCHours() }], [co("%I:%M"), function (n) { return n.getUTCMinutes() }], [co(":%S"), function (n) { return n.getUTCSeconds() }], [co(".%L"), function (n) { return n.getUTCMilliseconds() }]], kl = ho(El); return Sl.year = Bc.year.utc, Bc.scale.utc = function () { return so(vo.scale.linear(), Sl, kl) }, vo.text = dt(function (n) { return n.responseText }), vo.json = function (n, t) { return vt(n, "application/json", go, t) }, vo.html = function (n, t) { return vt(n, "text/html", po, t) }, vo.xml = dt(function (n) { return n.responseXML }), vo
42
+ }();
24
43
  // plots.min.js
25
- var GV;GV||(GV={}),function(){"use strict";GV.toggleAllPlots=function(t){if(window.chrome&&"file:"===window.location.protocol)$("#browseralert").modal();else{var a=$(".plot_btn");a.length>30?$("#alert").modal():($("#spinner1").modal({backdrop:"static",keyboard:"false"}),"pressed"!==t.status?(t.status="pressed",$("#show_all_plots").html("Hide All Charts"),GV.showAllPlots()):(t.status="released",$("#show_all_plots").html("Show All Charts"),GV.removeAllPlots()),$("#spinner1").modal("hide"))}},GV.showAllPlots=function(){$(".plot_btn").each(function(){"pressed"!==this.status&&GV.addData(this,"all")})},GV.removeAllPlots=function(){$(".tablesorter-childRow").each(function(){$(this).remove()}),$(".plot_btn").each(function(){this.status="released"})},GV.addData=function(t,a){if(window.chrome&&"file:"===window.location.protocol)$("#browseralert").modal();else{var e=$(t).closest("tr"),r=e.attr("data-target"),n=$("#mainrow"+r);n.length&&"pressed"!==t.status?(GV.emptyChildRow(e,r,t),GV.addDataToChildRow(e,r,a)):0===n.length?(GV.createChildRow(e,r,t),GV.addDataToChildRow(e,r,a)):n.length&&GV.removeChildRow(e,n,t),$("table").trigger("update")}},GV.toggleOverviewBtn=function(){if(window.chrome&&"file:"===window.location.protocol)$("#overview").remove();else{var t="web_files/json/overview.json";$.getJSON(t,function(t){var a=$("<span>"+t.less+"</span><br>"),e=$("<span>"+t.evaluation+"</span><br>");$("#overview_btn").hasClass("active")?($("#overview_text").html(e),$("#overview_btn").text("Show Less"),GV.addPlot(t.data,"overview",t.type,t.title,t.footer,t.xtitle,t.ytitle)):($("#overview").find("svg").remove(),$("#overview_text").html(a),$("#overview_btn").text("Show More"))})}},GV.createChildRow=function(t,a,e){var r='<tr class="tablesorter-childRow" id="mainrow'+a+'"><td colspan="12" id="row'+a+'"><div id="'+a+'" class="expanded-child"></div></td></tr>';t.addClass("tablesorter-hasChildRow"),t.after(r),e.status="pressed"},GV.removeChildRow=function(t,a,e){t.removeClass("tablesorter-hasChildRow"),a.remove(),e.status="released"},GV.emptyChildRow=function(t,a,e){var r="#"+a,n="#"+a+"explanation";$(r).empty(),$(n).remove(),GV.resetStatusOfOtherButtons(t),e.status="pressed"},GV.resetStatusOfOtherButtons=function(t){t.find("td").each(function(){"pressed"==this.status&&(this.status="released")}),t.find(".plot_btn").each(function(){"pressed"==this.status&&(this.status="released")})},GV.addDataToChildRow=function(t,a,e){var r=t.attr("data-jsonFile");$.getJSON(r,function(t){if("all"===e)for(var r in t.validations)void 0!==t.validations[r].graphs&&GV.generatePlotCommands(t.validations[r].graphs,a);else GV.addExplanation(a,t.validations[e]),void 0!==t.validations[e].graphs&&GV.generatePlotCommands(t.validations[e].graphs,a)})},GV.generatePlotCommands=function(t,a){for(var e=0;e<t.length;e++){var r=t[e];GV.addPlot(r.data,a,r.type,r.title,r.footer,r.xtitle,r.ytitle,r.aux1,r.aux2)}},GV.addExplanation=function(t,a){var e="#row"+t,r="<p><b>Approach:</b> "+a.approach+"</p>",n="<p><b>Explanation:</b> "+a.explanation+"</p>",o="<p><b>Conclusion:</b> "+a.conclusion+"</p>",l=$('<div id="'+t+'explanation" class="alert alert-info explanation_alert" role="alert">'+r+n+o+"</div>");$(e).prepend(l)},GV.addPlot=function(t,a,e,r,n,o,l,s,i){var c;switch(c=""===n?[]:n.split(";"),e){case"scatter":GV.plot_scatter(t,a,r,n,o,l,s,i);break;case"bars":GV.plot_bars(t,a,r,c,o,l,s);break;case"simplebars":GV.plot_simple_bars(t,a,r,c,o,l);break;case"lines":null!==i&&(i=i.split(",")),GV.plot_lines(t,a,r,c,o,l,s,i);break;case"align":null!==i&&(i=i.split(",")),GV.plot_align(t,a,r,c,o,l,s,i)}},GV.color_beautification=function(t){switch(t){case"red":return d3.rgb(189,54,47);case"blue":return d3.rgb(58,135,173);case"green":return d3.rgb(70,136,71);case"yellow":return d3.rgb(255,255,51);case"orange":return d3.rgb(248,148,6);case"violet":return d3.rgb(153,0,153);case"gray":return d3.rgb(160,160,160);default:return t}},GV.plot_bars=function(t,a,e,r,n,o,l){var s={top:70,right:50,bottom:75,left:50},i=600-s.left-s.right,c=500-s.top-s.bottom,d=d3.select("#".concat(a)).append("svg").attr("width",i+s.left+s.right).attr("height",c+s.top+s.bottom).append("g").attr("transform","translate("+s.left+","+s.top+")");d.append("text").attr("x",i/2).attr("y",-45).attr("text-anchor","middle").style("font-size","16px").text(e);var p=100,u=[].concat.apply([],t),f=d3.max(u,function(t){return t.value})+3,h=d3.scale.linear().domain([0,f+f/10]).range([c,0]),x=d3.min(u,function(t){return t.key});void 0!==l&&(x=Math.min(x,l));var g=d3.max(u,function(t){return t.key});void 0!==l&&(g=Math.max(g,l));var m=d3.scale.linear().domain([x-p,g+p]).range([13,i]),v=d3.svg.axis().scale(m).orient("bottom").ticks(8),y=d3.svg.axis().scale(h).orient("left").tickFormat(d3.format("d")).ticks(8);d.append("g").attr("class","x axis").attr("transform","translate(0,"+c+")").call(v).append("text").attr("class","label").attr("x",(i-n.length)/2-50).attr("y",35).style("text-anchor","start").text(n),d.append("g").attr("class","y axis").call(y).append("text").attr("class","label").attr("transform","rotate(-90)").attr("x",-(c+o.length)/2-50).attr("y",-40).style("text-anchor","start").text(o),t.map(function(t){d.selectAll(".bar").data(t).enter().append("rect").attr("x",function(t){return m(t.key)}).attr("width",6).attr("y",function(t){return h(t.value)}).attr("height",function(t){return c-h(t.value)}).attr("fill",function(t){return t.main===!0?GV.color_beautification("red"):GV.color_beautification("blue")})}),void 0!==l&&(d.append("rect").attr("x",m(l)).attr("width",4).attr("y",h(f+f/10)).style("opacity",.6).attr("height",c-h(f+f/8)).attr("fill",GV.color_beautification("black")),d.append("text").attr("transform","rotate(-90)").attr("x",-f/10-35).attr("y",m(l)-5).text("query"));for(var b=0,w=0,G=0;G<r.length;G++){var V=r[G].split(",");w=w+8*V[0].length+15}for(var k=0;k<r.length;k++){var _=r[k].split(",");d.append("rect").attr("x",(i-w)/2+b).attr("y",-30).attr("width",10).attr("height",10).style("fill",GV.color_beautification(_[1].replace(/\s+/g,""))),d.append("text").attr("x",(i-w)/2+b+15).attr("y",-20).text(_[0]),b=b+8*_[0].length+15}},GV.plot_simple_bars=function(t,a,e,r,n,o){var l={top:70,right:50,bottom:75,left:50},s=600-l.left-l.right,i=500-l.top-l.bottom,c=d3.select("#".concat(a)).append("svg").attr("width",s+l.left+l.right).attr("height",i+l.top+l.bottom).append("g").attr("transform","translate("+l.left+","+l.top+")");c.append("text").attr("x",s/2).attr("y",-45).attr("text-anchor","middle").style("font-size","16px").text(e);var d=0,p=[].concat.apply([],t),u=d3.max(p,function(t){return t.value})+3,f=d3.scale.linear().domain([0,u]).range([i,0]),h=d3.min(p,function(t){return t.key}),x=d3.max(p,function(t){return t.key}),g=d3.scale.linear().domain([h-d,x+d]).range([13,s]),m=d3.svg.axis().scale(g).orient("bottom").ticks(8),v=d3.svg.axis().scale(f).orient("left").tickFormat(d3.format("d")).ticks(8);c.append("g").attr("class","x axis").attr("transform","translate(0,"+i+")").call(m).append("text").attr("class","label").attr("x",(s-n.length)/2-50).attr("y",35).style("text-anchor","start").text(n),c.append("g").attr("class","y axis").call(v).append("text").attr("class","label").attr("transform","rotate(-90)").attr("x",-(i+o.length)/2-50).attr("y",-40).style("text-anchor","start").text(o),t.map(function(t){c.selectAll(".bar").data(t).enter().append("rect").attr("x",function(t){return g(t.key)}).attr("width",6).attr("y",function(t){return f(t.value)}).attr("height",function(t){return i-f(t.value)}).attr("fill",function(t){return t.main===!0?GV.color_beautification("red"):GV.color_beautification("blue")})})},GV.plot_scatter=function(t,a,e,r,n,o,l,s){var i={top:50,right:30,bottom:75,left:50},c=500-i.left-i.right,d=500-i.top-i.bottom,p=d3.scale.linear().range([0,c]),u=d3.scale.linear().range([d,0]),f=(d3.scale.category10(),d3.svg.axis().scale(p).orient("bottom").ticks(8)),h=d3.svg.axis().scale(u).orient("left").tickFormat(d3.format("d")).ticks(8),x=d3.select("#".concat(a)).append("svg").attr("width",c+i.left+i.right).attr("height",d+i.top+i.bottom).append("g").attr("transform","translate("+i.left+","+i.top+")");x.append("text").attr("x",c/2).attr("y",-25).attr("text-anchor","middle").style("font-size","16px").text(e),x.append("text").attr("x",c/2).attr("y",d+55).attr("text-anchor","middle").style("font-size","12px").text(r);var g=d3.max(t,function(t){return t.x}),m=d3.min(t,function(t){return t.x}),v=d3.max(t,function(t){return t.y}),y=d3.min(t,function(t){return t.y});if(p.domain(d3.extent(t,function(t){return t.x})).nice(),u.domain(d3.extent(t,function(t){return t.y})).nice(),x.append("g").attr("class","x axis").attr("transform","translate(0,"+d+")").call(f).append("text").attr("class","label").attr("x",(c-n.length)/2-50).attr("y",35).style("text-anchor","start").text(n),x.append("g").attr("class","y axis").call(h).append("text").attr("class","label").attr("transform","rotate(-90)").attr("x",-(d+o.length)/2-50).attr("y",-40).style("text-anchor","start").text(o),x.selectAll(".dot").data(t).enter().append("circle").attr("r",2).attr("cx",function(t){return p(t.x)}).attr("cy",function(t){return u(t.y)}).style("fill",function(){return GV.color_beautification("red")}).style("opacity",.6),void 0!==s&&""!==s&&void 0!==l&&""!==l){l=parseFloat(l.replace(",","."));var b=g,w=l+s*g;w>v&&(b=(v-l)/s,w=v),y>w&&(b=(y-l)/s,w=y);var G=m,V=l+s*m;V>v&&(G=(v-l)/s,V=y),y>V&&(G=(y-l)/s,V=y),x.append("line").attr("x1",p(G)).attr("y1",u(V)).attr("x2",p(b)).attr("y2",u(w)).attr("stroke-width",2).attr("stroke","black")}},GV.plot_lines=function(t,a,e,r,n,o,l,s){var i={top:70,right:50,bottom:75,left:50},c=600-i.left-i.right,d=500-i.top-i.bottom,p=d3.scale.linear().range([0,c]),u=d3.scale.linear().range([d,0]),f=(d3.scale.category10(),"");f="Open Reading Frames in all 6 Frames"===e?d3.svg.axis().scale(p).orient("bottom").ticks(0):d3.svg.axis().scale(p).orient("bottom").ticks(5);var h=d3.svg.axis().scale(u).orient("left").ticks(5),x=d3.select("#".concat(a)).append("svg").attr("width",c+i.left+i.right).attr("height",d+i.top+i.bottom).append("g").attr("transform","translate("+i.left+","+i.top+")");x.append("text").attr("x",c/2).attr("y",-35).attr("text-anchor","middle").style("font-size","16px").text(e);var g=-1;p.domain([0,d3.max(t,function(t){return t.stop})]),u.domain(d3.extent(t,function(t){return t.y})).nice(),x.append("g").attr("class","x axis").attr("transform","translate(0,"+(d+d/l)+")").call(f).append("text").attr("class","label").attr("x",(c-n.length)/2-50).attr("y",35).style("text-anchor","start").text(n),null!==s?x.append("g").attr("class","y axis").call(h.ticks(s.length).tickFormat(function(){return g+=1,s[g]})).append("text").attr("class","label").attr("transform","rotate(-90)").attr("x",-(d+o.length)/2-50).attr("y",-40).style("text-anchor","start").text(o):x.append("g").attr("class","y axis").call(h).append("text").attr("class","label").attr("transform","rotate(-90)").attr("x",-(d+o.length)/2).attr("y",-40).style("text-anchor","start").text(o),x.selectAll(".dot").data(t).enter().append("line").attr("x1",function(t){return p(t.start)}).attr("y1",function(t){return u(t.y)}).attr("x2",function(t){return p(t.stop)}).attr("x2",function(t){return p(t.stop)}).attr("y2",function(t){return u(t.y)}).attr("stroke-width",function(t){return void 0===t.dotted?"red"==t.color?d/l/2.5:d/l:d/l/5}).style("stroke-dasharray",function(t){return void 0===t.dotted?"0, 0":"2, 6"}).attr("stroke",function(t){return GV.color_beautification(t.color)});for(var m=(x.append("g").attr("class","legend").attr("height",100).attr("width",100).attr("transform","translate(-20,50)"),40),v=0,y=0;y<r.length;y++){var b=r[y].split(",");v=v+8*b[0].length+15}for(var w=0;w<r.length;w++){var G=r[w].split(",");x.append("rect").attr("x",(c-v)/2+m).attr("y",-30).attr("width",10).attr("height",10).style("fill",GV.color_beautification(G[1].replace(/\s+/g,""))),x.append("text").attr("x",(c-v)/2+m+15).attr("y",-20).text(G[0]),m=m+8*G[0].length+15}},GV.plot_align=function(t,a,e,r,n,o,l,s){var i={top:75,right:50,bottom:75,left:150},c=600-i.left-i.right,d=300-i.top-i.bottom,p=d3.scale.linear().range([0,c]),u=d3.scale.linear().range([d,0]),f=(d3.scale.category10(),d3.svg.axis().scale(p).orient("bottom").ticks(5)),h=d3.svg.axis().scale(u).orient("left").ticks(5),x=d3.select("#".concat(a)).append("svg").style("vertical-align","top").attr("width",c+i.left+i.right).attr("height",d+i.top+i.bottom).append("g").attr("transform","translate("+i.left+","+i.top+")");x.append("text").attr("x",c/2).attr("y",-35).attr("text-anchor","middle").style("font-size","16px").text(e);var g=-1;p.domain([0,d3.max(t,function(t){return t.stop})]),u.domain(d3.extent(t,function(t){return t.y})).nice(),x.append("g").attr("class","x axis").attr("transform","translate(0,"+(d+d/l)+")").call(f).append("text").attr("class","label").attr("x",(c-n.length)/2-50).attr("y",35).style("text-anchor","start").text(n),null!==s?x.append("g").attr("class","y axis").call(h.ticks(s.length).tickFormat(function(){return g+=1,s[g]})).append("text").attr("class","label").attr("transform","rotate(-90)").attr("x",-(d+o.length)/2-50).attr("y",-40).style("text-anchor","start").text(o):x.append("g").attr("class","y axis").call(h).append("text").attr("class","label").attr("transform","rotate(-90)").attr("x",-(d+o.length)/2-50).attr("y",-40).style("text-anchor","start").text(o),x.selectAll(".dot").data(t).enter().append("line").attr("x1",function(t){return p(t.start)}).attr("y1",function(t){return u(t.y)}).attr("x2",function(t){return p(t.stop)}).attr("y2",function(t){return u(t.y)}).attr("stroke-width",function(t){return-1==t.height?d/l:d/l*t.height}).attr("stroke",function(t){return GV.color_beautification(t.color)});for(var m=0,v=0,y=0;y<r.length;y++){var b=r[y].split(",");v=v+8*b[0].length+15}for(var w=0;w<r.length;w++){var G=r[w].split(",");x.append("rect").attr("x",(c-v)/2+m).attr("y",-30).attr("width",10).attr("height",10).style("fill",GV.color_beautification(G[1].replace(/\s+/g,""))),x.append("text").attr("x",(c-v)/2+m+15).attr("y",-20).text(G[0]),m=m+8*G[0].length+15}}}();
44
+ var GV; GV || (GV = {}), function () { "use strict"; GV.toggleAllPlots = function (t) { if (window.chrome && "file:" === window.location.protocol) $("#browseralert").modal(); else { var a = $(".plot_btn"); a.length > 30 ? $("#alert").modal() : ($("#spinner1").modal({ backdrop: "static", keyboard: "false" }), "pressed" !== t.status ? (t.status = "pressed", $("#show_all_plots").html("Hide All Charts"), GV.showAllPlots()) : (t.status = "released", $("#show_all_plots").html("Show All Charts"), GV.removeAllPlots()), $("#spinner1").modal("hide")) } }, GV.showAllPlots = function () { $(".plot_btn").each(function () { "pressed" !== this.status && GV.addData(this, "all") }) }, GV.removeAllPlots = function () { $(".tablesorter-childRow").each(function () { $(this).remove() }), $(".plot_btn").each(function () { this.status = "released" }) }, GV.addData = function (t, a) { if (window.chrome && "file:" === window.location.protocol) $("#browseralert").modal(); else { var e = $(t).closest("tr"), r = e.attr("data-target"), n = $("#mainrow" + r); n.length && "pressed" !== t.status ? (GV.emptyChildRow(e, r, t), GV.addDataToChildRow(e, r, a)) : 0 === n.length ? (GV.createChildRow(e, r, t), GV.addDataToChildRow(e, r, a)) : n.length && GV.removeChildRow(e, n, t), $("table").trigger("update") } }, GV.toggleOverviewBtn = function () { if (window.chrome && "file:" === window.location.protocol) $("#overview").remove(); else { var t = $("#overview_btn").data('overviewjson'); $.getJSON(t, function (t) { var a = $("<span>" + t.less + "</span><br>"), e = $("<span>" + t.evaluation + "</span><br>"); $("#overview_btn").hasClass("active") ? ($("#overview_text").html(e), $("#overview_btn").text("Show Less"), GV.addPlot(t.data, "overview", t.type, t.title, t.footer, t.xtitle, t.ytitle)) : ($("#overview").find("svg").remove(), $("#overview_text").html(a), $("#overview_btn").text("Show More")) }) } }, GV.createChildRow = function (t, a, e) { var r = '<tr class="tablesorter-childRow" id="mainrow' + a + '"><td colspan="12" id="row' + a + '"><div id="' + a + '" class="expanded-child"></div></td></tr>'; t.addClass("tablesorter-hasChildRow"), t.after(r), e.status = "pressed" }, GV.removeChildRow = function (t, a, e) { t.removeClass("tablesorter-hasChildRow"), a.remove(), e.status = "released" }, GV.emptyChildRow = function (t, a, e) { var r = "#" + a, n = "#" + a + "explanation"; $(r).empty(), $(n).remove(), GV.resetStatusOfOtherButtons(t), e.status = "pressed" }, GV.resetStatusOfOtherButtons = function (t) { t.find("td").each(function () { "pressed" == this.status && (this.status = "released") }), t.find(".plot_btn").each(function () { "pressed" == this.status && (this.status = "released") }) }, GV.addDataToChildRow = function (t, a, e) { var r = t.attr("data-jsonFile"); $.getJSON(r, function (t) { if ("all" === e) for (var r in t.validations) void 0 !== t.validations[r].graphs && GV.generatePlotCommands(t.validations[r].graphs, a); else GV.addExplanation(a, t.validations[e]), void 0 !== t.validations[e].graphs && GV.generatePlotCommands(t.validations[e].graphs, a) }) }, GV.generatePlotCommands = function (t, a) { for (var e = 0; e < t.length; e++) { var r = t[e]; GV.addPlot(r.data, a, r.type, r.title, r.footer, r.xtitle, r.ytitle, r.aux1, r.aux2) } }, GV.addExplanation = function (t, a) { var e = "#row" + t, r = "<p><b>Approach:</b> " + a.approach + "</p>", n = "<p><b>Explanation:</b> " + a.explanation + "</p>", o = "<p><b>Conclusion:</b> " + a.conclusion + "</p>", l = $('<div id="' + t + 'explanation" class="alert alert-info explanation_alert" role="alert">' + r + n + o + "</div>"); $(e).prepend(l) }, GV.addPlot = function (t, a, e, r, n, o, l, s, i) { var c; switch (c = "" === n ? [] : n.split(";"), e) { case "scatter": GV.plot_scatter(t, a, r, n, o, l, s, i); break; case "bars": GV.plot_bars(t, a, r, c, o, l, s); break; case "simplebars": GV.plot_simple_bars(t, a, r, c, o, l); break; case "lines": null !== i && (i = i.split(",")), GV.plot_lines(t, a, r, c, o, l, s, i); break; case "align": null !== i && (i = i.split(",")), GV.plot_align(t, a, r, c, o, l, s, i) } }, GV.color_beautification = function (t) { switch (t) { case "red": return d3.rgb(189, 54, 47); case "blue": return d3.rgb(58, 135, 173); case "green": return d3.rgb(70, 136, 71); case "yellow": return d3.rgb(255, 255, 51); case "orange": return d3.rgb(248, 148, 6); case "violet": return d3.rgb(153, 0, 153); case "gray": return d3.rgb(160, 160, 160); default: return t } }, GV.plot_bars = function (t, a, e, r, n, o, l) { var s = { top: 70, right: 50, bottom: 75, left: 50 }, i = 600 - s.left - s.right, c = 500 - s.top - s.bottom, d = d3.select("#".concat(a)).append("svg").attr("width", i + s.left + s.right).attr("height", c + s.top + s.bottom).append("g").attr("transform", "translate(" + s.left + "," + s.top + ")"); d.append("text").attr("x", i / 2).attr("y", -45).attr("text-anchor", "middle").style("font-size", "16px").text(e); var p = 100, u = [].concat.apply([], t), f = d3.max(u, function (t) { return t.value }) + 3, h = d3.scale.linear().domain([0, f + f / 10]).range([c, 0]), x = d3.min(u, function (t) { return t.key }); void 0 !== l && (x = Math.min(x, l)); var g = d3.max(u, function (t) { return t.key }); void 0 !== l && (g = Math.max(g, l)); var m = d3.scale.linear().domain([x - p, g + p]).range([13, i]), v = d3.svg.axis().scale(m).orient("bottom").ticks(8), y = d3.svg.axis().scale(h).orient("left").tickFormat(d3.format("d")).ticks(8); d.append("g").attr("class", "x axis").attr("transform", "translate(0," + c + ")").call(v).append("text").attr("class", "label").attr("x", (i - n.length) / 2 - 50).attr("y", 35).style("text-anchor", "start").text(n), d.append("g").attr("class", "y axis").call(y).append("text").attr("class", "label").attr("transform", "rotate(-90)").attr("x", -(c + o.length) / 2 - 50).attr("y", -40).style("text-anchor", "start").text(o), t.map(function (t) { d.selectAll(".bar").data(t).enter().append("rect").attr("x", function (t) { return m(t.key) }).attr("width", 6).attr("y", function (t) { return h(t.value) }).attr("height", function (t) { return c - h(t.value) }).attr("fill", function (t) { return t.main === !0 ? GV.color_beautification("red") : GV.color_beautification("blue") }) }), void 0 !== l && (d.append("rect").attr("x", m(l)).attr("width", 4).attr("y", h(f + f / 10)).style("opacity", .6).attr("height", c - h(f + f / 8)).attr("fill", GV.color_beautification("black")), d.append("text").attr("transform", "rotate(-90)").attr("x", -f / 10 - 35).attr("y", m(l) - 5).text("query")); for (var b = 0, w = 0, G = 0; G < r.length; G++) { var V = r[G].split(","); w = w + 8 * V[0].length + 15 } for (var k = 0; k < r.length; k++) { var _ = r[k].split(","); d.append("rect").attr("x", (i - w) / 2 + b).attr("y", -30).attr("width", 10).attr("height", 10).style("fill", GV.color_beautification(_[1].replace(/\s+/g, ""))), d.append("text").attr("x", (i - w) / 2 + b + 15).attr("y", -20).text(_[0]), b = b + 8 * _[0].length + 15 } }, GV.plot_simple_bars = function (t, a, e, r, n, o) { var l = { top: 70, right: 50, bottom: 75, left: 50 }, s = 600 - l.left - l.right, i = 500 - l.top - l.bottom, c = d3.select("#".concat(a)).append("svg").attr("width", s + l.left + l.right).attr("height", i + l.top + l.bottom).append("g").attr("transform", "translate(" + l.left + "," + l.top + ")"); c.append("text").attr("x", s / 2).attr("y", -45).attr("text-anchor", "middle").style("font-size", "16px").text(e); var d = 0, p = [].concat.apply([], t), u = d3.max(p, function (t) { return t.value }) + 3, f = d3.scale.linear().domain([0, u]).range([i, 0]), h = d3.min(p, function (t) { return t.key }), x = d3.max(p, function (t) { return t.key }), g = d3.scale.linear().domain([h - d, x + d]).range([13, s]), m = d3.svg.axis().scale(g).orient("bottom").ticks(8), v = d3.svg.axis().scale(f).orient("left").tickFormat(d3.format("d")).ticks(8); c.append("g").attr("class", "x axis").attr("transform", "translate(0," + i + ")").call(m).append("text").attr("class", "label").attr("x", (s - n.length) / 2 - 50).attr("y", 35).style("text-anchor", "start").text(n), c.append("g").attr("class", "y axis").call(v).append("text").attr("class", "label").attr("transform", "rotate(-90)").attr("x", -(i + o.length) / 2 - 50).attr("y", -40).style("text-anchor", "start").text(o), t.map(function (t) { c.selectAll(".bar").data(t).enter().append("rect").attr("x", function (t) { return g(t.key) }).attr("width", 6).attr("y", function (t) { return f(t.value) }).attr("height", function (t) { return i - f(t.value) }).attr("fill", function (t) { return t.main === !0 ? GV.color_beautification("red") : GV.color_beautification("blue") }) }) }, GV.plot_scatter = function (t, a, e, r, n, o, l, s) { var i = { top: 50, right: 30, bottom: 75, left: 50 }, c = 500 - i.left - i.right, d = 500 - i.top - i.bottom, p = d3.scale.linear().range([0, c]), u = d3.scale.linear().range([d, 0]), f = (d3.scale.category10(), d3.svg.axis().scale(p).orient("bottom").ticks(8)), h = d3.svg.axis().scale(u).orient("left").tickFormat(d3.format("d")).ticks(8), x = d3.select("#".concat(a)).append("svg").attr("width", c + i.left + i.right).attr("height", d + i.top + i.bottom).append("g").attr("transform", "translate(" + i.left + "," + i.top + ")"); x.append("text").attr("x", c / 2).attr("y", -25).attr("text-anchor", "middle").style("font-size", "16px").text(e), x.append("text").attr("x", c / 2).attr("y", d + 55).attr("text-anchor", "middle").style("font-size", "12px").text(r); var g = d3.max(t, function (t) { return t.x }), m = d3.min(t, function (t) { return t.x }), v = d3.max(t, function (t) { return t.y }), y = d3.min(t, function (t) { return t.y }); if (p.domain(d3.extent(t, function (t) { return t.x })).nice(), u.domain(d3.extent(t, function (t) { return t.y })).nice(), x.append("g").attr("class", "x axis").attr("transform", "translate(0," + d + ")").call(f).append("text").attr("class", "label").attr("x", (c - n.length) / 2 - 50).attr("y", 35).style("text-anchor", "start").text(n), x.append("g").attr("class", "y axis").call(h).append("text").attr("class", "label").attr("transform", "rotate(-90)").attr("x", -(d + o.length) / 2 - 50).attr("y", -40).style("text-anchor", "start").text(o), x.selectAll(".dot").data(t).enter().append("circle").attr("r", 2).attr("cx", function (t) { return p(t.x) }).attr("cy", function (t) { return u(t.y) }).style("fill", function () { return GV.color_beautification("red") }).style("opacity", .6), void 0 !== s && "" !== s && void 0 !== l && "" !== l) { l = parseFloat(l.replace(",", ".")); var b = g, w = l + s * g; w > v && (b = (v - l) / s, w = v), y > w && (b = (y - l) / s, w = y); var G = m, V = l + s * m; V > v && (G = (v - l) / s, V = y), y > V && (G = (y - l) / s, V = y), x.append("line").attr("x1", p(G)).attr("y1", u(V)).attr("x2", p(b)).attr("y2", u(w)).attr("stroke-width", 2).attr("stroke", "black") } }, GV.plot_lines = function (t, a, e, r, n, o, l, s) { var i = { top: 70, right: 50, bottom: 75, left: 50 }, c = 600 - i.left - i.right, d = 500 - i.top - i.bottom, p = d3.scale.linear().range([0, c]), u = d3.scale.linear().range([d, 0]), f = (d3.scale.category10(), ""); f = "Open Reading Frames in all 6 Frames" === e ? d3.svg.axis().scale(p).orient("bottom").ticks(0) : d3.svg.axis().scale(p).orient("bottom").ticks(5); var h = d3.svg.axis().scale(u).orient("left").ticks(5), x = d3.select("#".concat(a)).append("svg").attr("width", c + i.left + i.right).attr("height", d + i.top + i.bottom).append("g").attr("transform", "translate(" + i.left + "," + i.top + ")"); x.append("text").attr("x", c / 2).attr("y", -35).attr("text-anchor", "middle").style("font-size", "16px").text(e); var g = -1; p.domain([0, d3.max(t, function (t) { return t.stop })]), u.domain(d3.extent(t, function (t) { return t.y })).nice(), x.append("g").attr("class", "x axis").attr("transform", "translate(0," + (d + d / l) + ")").call(f).append("text").attr("class", "label").attr("x", (c - n.length) / 2 - 50).attr("y", 35).style("text-anchor", "start").text(n), null !== s ? x.append("g").attr("class", "y axis").call(h.ticks(s.length).tickFormat(function () { return g += 1, s[g] })).append("text").attr("class", "label").attr("transform", "rotate(-90)").attr("x", -(d + o.length) / 2 - 50).attr("y", -40).style("text-anchor", "start").text(o) : x.append("g").attr("class", "y axis").call(h).append("text").attr("class", "label").attr("transform", "rotate(-90)").attr("x", -(d + o.length) / 2).attr("y", -40).style("text-anchor", "start").text(o), x.selectAll(".dot").data(t).enter().append("line").attr("x1", function (t) { return p(t.start) }).attr("y1", function (t) { return u(t.y) }).attr("x2", function (t) { return p(t.stop) }).attr("x2", function (t) { return p(t.stop) }).attr("y2", function (t) { return u(t.y) }).attr("stroke-width", function (t) { return void 0 === t.dotted ? "red" == t.color ? d / l / 2.5 : d / l : d / l / 5 }).style("stroke-dasharray", function (t) { return void 0 === t.dotted ? "0, 0" : "2, 6" }).attr("stroke", function (t) { return GV.color_beautification(t.color) }); for (var m = (x.append("g").attr("class", "legend").attr("height", 100).attr("width", 100).attr("transform", "translate(-20,50)"), 40), v = 0, y = 0; y < r.length; y++) { var b = r[y].split(","); v = v + 8 * b[0].length + 15 } for (var w = 0; w < r.length; w++) { var G = r[w].split(","); x.append("rect").attr("x", (c - v) / 2 + m).attr("y", -30).attr("width", 10).attr("height", 10).style("fill", GV.color_beautification(G[1].replace(/\s+/g, ""))), x.append("text").attr("x", (c - v) / 2 + m + 15).attr("y", -20).text(G[0]), m = m + 8 * G[0].length + 15 } }, GV.plot_align = function (t, a, e, r, n, o, l, s) { var i = { top: 75, right: 50, bottom: 75, left: 150 }, c = 600 - i.left - i.right, d = 300 - i.top - i.bottom, p = d3.scale.linear().range([0, c]), u = d3.scale.linear().range([d, 0]), f = (d3.scale.category10(), d3.svg.axis().scale(p).orient("bottom").ticks(5)), h = d3.svg.axis().scale(u).orient("left").ticks(5), x = d3.select("#".concat(a)).append("svg").style("vertical-align", "top").attr("width", c + i.left + i.right).attr("height", d + i.top + i.bottom).append("g").attr("transform", "translate(" + i.left + "," + i.top + ")"); x.append("text").attr("x", c / 2).attr("y", -35).attr("text-anchor", "middle").style("font-size", "16px").text(e); var g = -1; p.domain([0, d3.max(t, function (t) { return t.stop })]), u.domain(d3.extent(t, function (t) { return t.y })).nice(), x.append("g").attr("class", "x axis").attr("transform", "translate(0," + (d + d / l) + ")").call(f).append("text").attr("class", "label").attr("x", (c - n.length) / 2 - 50).attr("y", 35).style("text-anchor", "start").text(n), null !== s ? x.append("g").attr("class", "y axis").call(h.ticks(s.length).tickFormat(function () { return g += 1, s[g] })).append("text").attr("class", "label").attr("transform", "rotate(-90)").attr("x", -(d + o.length) / 2 - 50).attr("y", -40).style("text-anchor", "start").text(o) : x.append("g").attr("class", "y axis").call(h).append("text").attr("class", "label").attr("transform", "rotate(-90)").attr("x", -(d + o.length) / 2 - 50).attr("y", -40).style("text-anchor", "start").text(o), x.selectAll(".dot").data(t).enter().append("line").attr("x1", function (t) { return p(t.start) }).attr("y1", function (t) { return u(t.y) }).attr("x2", function (t) { return p(t.stop) }).attr("y2", function (t) { return u(t.y) }).attr("stroke-width", function (t) { return -1 == t.height ? d / l : d / l * t.height }).attr("stroke", function (t) { return GV.color_beautification(t.color) }); for (var m = 0, v = 0, y = 0; y < r.length; y++) { var b = r[y].split(","); v = v + 8 * b[0].length + 15 } for (var w = 0; w < r.length; w++) { var G = r[w].split(","); x.append("rect").attr("x", (c - v) / 2 + m).attr("y", -30).attr("width", 10).attr("height", 10).style("fill", GV.color_beautification(G[1].replace(/\s+/g, ""))), x.append("text").attr("x", (c - v) / 2 + m + 15).attr("y", -20).text(G[0]), m = m + 8 * G[0].length + 15 } } }();
26
45
  // genevalidator.min.js
27
- $(document).ready(function(){"use strict";checkCollapseState(),keepFooterFixedToBottom(),addSeqValidation(),inputValidation(),bindTdClicks(),$(document).bind("keydown",function(G){G.ctrlKey&&13===G.keyCode&&$("#input").trigger("submit")})});var checkCollapseState=function(){"use strict";if($.cookie("GeneValidator_adv_params_status")){var G=$.cookie("GeneValidator_adv_params_status");if("open"===G){var T=document.getElementById("adv_params_btn");T.innerHTML='<i class="fa fa-pencil-square-o"></i>&nbsp;&nbsp;Hide Advanced Parameters',$("#adv_params").addClass("in")}}},keepFooterFixedToBottom=function(){"use strict";$("#mainbody").css({"margin-bottom":$("#footer").height()+15+"px"}),$(window).resize(function(){$("#mainbody").css({"margin-bottom":$("#footer").height()+15+"px"})})},addSeqValidation=function(){"use strict";jQuery.validator.addMethod("checkInputType",function(G,T){var A=[],e="";if(">"===G.charAt(0)){for(var C=G.split(">"),t=1;t<C.length;t++){var a=C[t].split("\n");if(0!==a.length){var n=jQuery.grep(a,function(G){return G});if(0!==n.length){n.shift();var r=n.join("");if(e=checkType(r,.9),A.push(e),"protein"!==e&&"dna"!==e&&"rna"!==e)return!1}}}for(var s=A[0],V=0;V<A.length;V++)if(A[V]!==s)return!1;return!0}return e=checkType(G,.9),"protein"!==e&&"dna"!==e&&"rna"!==e?!1:!0},"* The Input must be either DNA or protein sequence(s). Please ensure that your sequences do not contains any non-letter character(s). If there are multiple sequences, ensure that they are all of one type. ")},inputValidation=function(){"use strict";var G=$("#seq").attr("data-maxCharacters");$("#input").validate({rules:{seq:{minlength:5,required:!0,checkInputType:!0,maxlength:G},"validations[]":{required:!0}},highlight:function(G){$(G).closest(".form-group").addClass("has-error")},unhighlight:function(G){$(G).closest(".form-group").removeClass("has-error")},errorElement:"span",errorClass:"help-block",errorPlacement:function(G,T){if("validations_group"===T.parent().parent().attr("id")){var A=document.getElementById("lastValidation");G.insertAfter(A)}else T.parent(".input-group").length?G.insertAfter(T.parent()):G.insertAfter(T)},submitHandler:function(G){$("#spinner").modal({backdrop:"static",keyboard:"false"}),ajaxFunction()}})},bindTdClicks=function(){$(document).on("click","td, .plot_btn",function(G){if($(this).hasClass("success")||$(this).hasClass("danger")){var T=$(this).attr("title"),A=T.replace(/[ \/]/g,"");GV.addData(this,A)}else $(this).hasClass("plot_btn")&&GV.addData(this,"all")})},ajaxFunction=function(){"use strict";$.ajax({type:"POST",url:$("#input").attr("action"),data:$("#input").serialize(),success:function(G){$("#results_box").show(),$("#output").html(G),GV.toggleOverviewBtn(),initTableSorter(),$("[data-toggle='tooltip']").tooltip(),$("#mainbody").css({"background-color":"#fff"}),$("#search").css({"background-color":"#F5F5F5"}),$("#results").css({"border-top":"3px solid #DBDBDB"}),$("#search").css({"margin-bottom":"0"}),$("#spinner").modal("hide")},error:function(G,T){var A;500==G.status||400==G.status?(A=G.responseText,$("#results_box").show(),$("#output").html(A),$("#spinner").modal("hide")):(A=G.responseText,$("#results_box").show(),$("#output").html("There seems to be an unidentified Error."),$("#spinner").modal("hide"))}})},initTableSorter=function(){"use strict";$.tablesorter.addParser({id:"star_scores",is:function(G){return!1},format:function(G,T,A,e){var C=$(A);return 1===e?C.attr("data-score")||G:G},parsed:!1,type:"numeric"}),$("table").tablesorter({headers:{1:{sorter:"star_scores"}},sortList:[[0,0]]})},changeAdvParamsBtnText=function(){"use strict";var G=document.getElementById("adv_params_btn");'<i class="fa fa-pencil-square-o"></i>&nbsp;&nbsp;Show Advanced Parameters'===G.innerHTML?(G.innerHTML='<i class="fa fa-pencil-square-o"></i>&nbsp;&nbsp;Hide Advanced Parameters',$("#adv_params").collapse("show"),$.cookie("GeneValidator_adv_params_status","open")):(G.innerHTML='<i class="fa fa-pencil-square-o"></i>&nbsp;&nbsp;Show Advanced Parameters',$("#adv_params").collapse("hide"),$.cookie("GeneValidator_adv_params_status","closed"))},examplarSequence=function(G){"use strict";var T=">Insulin\nATGGCTCTCTGGATCCGGTCGCTGCCTCTCCTGGCCCTTCTTGCTCTTTCTGGCCCTGGGATCAGCCACGCAGCTGCCAACCAGCACCTCTGTGGCTCCCACTTGGTTGAGGCTCTCTACCTGGTGTGTGGGGAGCGGGGTTTCTTCTACTCCCCCAAAACACGGCGGGACGTTGAGCAGCCTCTAGTGAACGGTCCCCTGCATGGCGAGGTGGGAGAGCTGCCGTTCCAGCATGAGGAATACCAGAAAGTCAAGCGAGGCATCGTTGAGCAATGCTGTGAAAACCCGTGCTCCCTCTACCAACTGGAAAACTACTGCAACTAG\n>Insulin (with a duplication)\nATGGCTCTCTGGATCCGGTCGCTGCCTCTCCTGGCCCTTCTTGCTCTTTCTGGCCCTGGGATCAGCCACGCAGCTGCCAACCAGCACCTCTGTGGCTCCCACTTGGTTGAGGCTCTCTACCTGGTGTGTGGGGAGCGGGGTTTCTTCTACTCCCCCAAAACACGGCGGGACGTTGAGCAGCCTCTAGTGAACGGTCCCCTGCATGGCGAGGTGGGAGAGCTGCCGTTCCAGCATGAGGAATACCAGACAGCACCTCTGTGGCTCCCACTTGGTTGAGGCTCTCTACCTGGTGTGTGGGGAGCGGGGTTTCTTCTACTCCCCCAAAACACGGCGGGACGTTGAGCAGCCTCTAGTGAACGGTCCCCTGCATGGCGAGGTGGGAGAGCTGCCGTTCCAGCATGAGGAATACCAGAAAGTCAAGCGAGGCATCGTTGAGCAATGCTGTGAAAACCCGTGCTCCCTCTACCAACTGGAAAACTACTGCAACTAG",A=">Methylmalonyl-CoA carboxyltransferase 12S \nMAENNNLKLASTMEGRVEQLAEQRQVIEAGGGERRVEKQHSQGKQTARERLNNLLDPHSFDEVGAFRKHRTTLFGMDKAVVPADGVVTGRGTILGRPVHAASQDFTVMGGSAGETQSTKVVETMEQALLTGTPFLFFYDSGGARIQEGIDSLSGYGKMFFANVKLSGVVPQIAIIAGPCAGGASYSPALTDFIIMTKKAHMFITGPQVIKSVTGEDVTADELGGAEAHMAISGNIHFVAEDDDAAELIAKKLLSFLPQNNTEEASFVNPNNDVSPNTELRDIVPIDGKKGYDVRDVIAKIVDWGDYLEVKAGYATNLVTAFARVNGRSVGIVANQPSVMSGCLDINASDKAAEFVNFCDSFNIPLVQLVDVPGFLPGVQQEYGGIIRHGAKMLYAYSEATVPKITVVLRKAYGGSYLAMCNRDLGADAVYAWPSAEIAVMGAEGAANVIFRKEIKAADDPDAMRAEKIEEYQNAFNTPYVAAARGQVDDVIDPADTRRKIASALEMYATKRQTRPAKKPWKLPLLSEEEIMADEEEKDLMIATLNKRVASLESELGSLQSDTQGVTEDVLTAISAVAAYLGNDGSAEVVHFAPSPNWVREGRRALQNHSIR\n>locus=Si_gnF\nMWFPVVLLLLVGVAVAMPDHEHAWEPQNEYQYSVFVRTLTGVDTLKQQYTGIQLKGVLVIQVKSEELLQAKYINPRYAHIHQELSNGPYSKIPEENLEYRDIPMSGKPFEIKLKHGVIRDLLFDRNVPTWEVNMLKGIVGQLQIDTQGENAIDSQSTQIPSNSEPSSATFKAMEDSVGGKCEVLYEITPLPQHVAQTRPDRVPMSSVPSKGHHYEVKKLKNYEKCQERQLYHYGMDVKMTKENMMKRNKVVSELSTTHIVITGTLKSFTIQSTEMKNEITVQPESSDSPIGTVYSITKLTLAKINKISNSWFGPLELSNVESTGNLVYIFNNPFSDSEQRRVGQPSISRNSEQENSLETKKRSFHSHSSSSSSSSSSSSEEENESVMQSKASLRNIFMAPNVPLLPYFIGFKGKTIMKSNEHNVMQLAKDLLLQIAKEIQNPSEGYENTLEKYVNLKNLIRTMDRKQYTELEQYVSQFNKATVEGENAWYTLRDAVVHAGTGPAFVTIENWLKSGQVKGEEAAELLSKIPKSVHQPTPDYIKEFFKLIKSSVVTQQEYVNVSAPLAFAELLRNNYVVPSYYPVHSFGRMTLKGNEEIDNYISYLANQLQQGYLENNTQKIQTFIFALGVTAHPKIISVFEPYLEGKLPTTKYQRMLMVAALYDLSRDIPKLVGPIFYKLYMNENEAHEVRCMAVQQFILTDPPMITLQRVAKYTNYDQSDQVNSAVKSTLNSIINTKRPEWRNLANKARSVRYLVNPKNYDTWYSKGYYIDFENWVFKGLNVKMVASNDAVLPRYVYVGLDSIFNFLRKPTFEVGYAVSSYRQVYDLINELWNSYQFEEMREKSQGSRVEKLAQELKIKSGQKNNLEGHVLFNSVYGSMVYPYDKHRIREAVAALKKLLTSDSKLKTTAFNNFEKIVSFPMEMGVPFVYSFELPVFVKSEINFKKGEPITSRSGVYETLFCNRVQKRFGFIAPFEYQNYIAGIDKNGIMRVPLKYETNIDIKQKNFALKIHPNIPQSGTSTGLTHYSVVPFTTRQNIFNLQPVSNEGNTRPVITSEIHKMTKEKGPFSIKIESDTTKKESVLEDIVTGISKSSNSNNERYMKIDTTFESKQVAKCEIQIDMTFDAVTIHGKNQQPSHKEMQHHSKLDWKPNSKERREEIVNVLSAGLKSGTVFVADVSFSLPRLQDNTYVFTVGSVRSNIDQKLRHYFYVNTNAAQEVKYELCYSQEVQYAYPTPLNFEYAINNEPKDKLKGVLRYGRTCNTGNEIVITGSSSQSPQLRDMIENSSITKQCMEEIQKGKKSVRTCNKATDVAQVRDQLNFHIDASQLSEIRQKYDQVIGLLNYTNLSQYNVQQNSETNTIVVQNPWVMVPTVQEPWYRWAIKPSESQRQSEIDVLLDEVSQPSCTLDNDKILTFDNQLYNVQLGKCKHVLLTTYPQDSHNRRNYIPESSKVAVLAKDTDNDSRNVYVWLGNLEIELKKVGNDLKVAINGQNVEIPEKGHQESNGNEIIFEIVQLPDGSLSVISEKYGITVIFDGKHVRLYANGATYRNAIRGLCGNYDSRRDNDFLTPKNCLLTKPEEFAATYAMTNENCQGPAPENKRKAEGAMCIEVPEQQQMNVISDREAGRMMTEGGNWGYHQSNRKKEHGQDSKRGHGHKKYNQKDSQEGGSNESQYRKKHNIVYRTRVVEMDDKICFTTTPVPGCLQDTRPVERVPKKYDLYCLSKNNESMDLKRRVEEGAKPDFTQKPVNKIQNFQIPVSCSAA";"dna"===G?document.getElementById("seq").value=T:"protein"===G&&(document.getElementById("seq").value=A)},checkType=function(G,T,A,e){"use strict";void 0===T&&(T=.9),void 0===A&&(A=1e4),void 0===e&&(e=1);var C=G.slice(e-1,A),t=C.replace(/N/gi,""),a=t.length,n=(t.match(/[ACG]/gi)||[]).length/a,r=(t.match(/[T]/gi)||[]).length/a,s=(t.match(/[U]/gi)||[]).length/a,V=C.replace(/X/gi,""),S=V.length,i=(C.match(/[ARNDCQEGHILKMFPSTWYV\*]/gi)||[]).length/S;return n+r>=T||n+s>=T?r>=s?"dna":s>=r?"rna":"dna":i>=T?"protein":void 0};
46
+ $(document).ready(function () { "use strict"; checkCollapseState(), keepFooterFixedToBottom(), addSeqValidation(), inputValidation(), bindTdClicks(), $(document).bind("keydown", function (G) { G.ctrlKey && 13 === G.keyCode && $("#input").trigger("submit") }) }); var checkCollapseState = function () { "use strict"; if ($.cookie("GeneValidator_adv_params_status")) { var G = $.cookie("GeneValidator_adv_params_status"); if ("open" === G) { var T = document.getElementById("adv_params_btn"); T.innerHTML = '<i class="fa fa-pencil-square-o"></i>&nbsp;&nbsp;Hide Advanced Parameters', $("#adv_params").addClass("in") } } }, keepFooterFixedToBottom = function () { "use strict"; $("#mainbody").css({ "margin-bottom": $("#footer").height() + 15 + "px" }), $(window).resize(function () { $("#mainbody").css({ "margin-bottom": $("#footer").height() + 15 + "px" }) }) }, addSeqValidation = function () { "use strict"; jQuery.validator.addMethod("checkInputType", function (G, T) { var A = [], e = ""; if (">" === G.charAt(0)) { for (var C = G.split(">"), t = 1; t < C.length; t++) { var a = C[t].split("\n"); if (0 !== a.length) { var n = jQuery.grep(a, function (G) { return G }); if (0 !== n.length) { n.shift(); var r = n.join(""); if (e = checkType(r, .9), A.push(e), "protein" !== e && "dna" !== e && "rna" !== e) return !1 } } } for (var s = A[0], V = 0; V < A.length; V++)if (A[V] !== s) return !1; return !0 } return e = checkType(G, .9), "protein" !== e && "dna" !== e && "rna" !== e ? !1 : !0 }, "* The Input must be either DNA or protein sequence(s). Please ensure that your sequences do not contains any non-letter character(s). If there are multiple sequences, ensure that they are all of one type. ") }, inputValidation = function () { "use strict"; var G = $("#seq").attr("data-maxCharacters"); $("#input").validate({ rules: { seq: { minlength: 5, required: !0, checkInputType: !0, maxlength: G }, "validations[]": { required: !0 } }, highlight: function (G) { $(G).closest(".form-group").addClass("has-error") }, unhighlight: function (G) { $(G).closest(".form-group").removeClass("has-error") }, errorElement: "span", errorClass: "help-block", errorPlacement: function (G, T) { if ("validations_group" === T.parent().parent().attr("id")) { var A = document.getElementById("lastValidation"); G.insertAfter(A) } else T.parent(".input-group").length ? G.insertAfter(T.parent()) : G.insertAfter(T) }, submitHandler: function (G) { $("#spinner").modal({ backdrop: "static", keyboard: "false" }), ajaxFunction() } }) }, bindTdClicks = function () { $(document).on("click", "td, .plot_btn", function (G) { if ($(this).hasClass("success") || $(this).hasClass("danger")) { var T = $(this).attr("title"), A = T.replace(/[ \/]/g, ""); GV.addData(this, A) } else $(this).hasClass("plot_btn") && GV.addData(this, "all") }) }, ajaxFunction = function () { "use strict"; $.ajax({ type: "POST", url: $("#input").attr("action"), data: $("#input").serialize(), success: function (G) { $("#results_box").show(), $("#output").html(G), GV.toggleOverviewBtn(), initTableSorter(), $("[data-toggle='tooltip']").tooltip(), $("#mainbody").css({ "background-color": "#fff" }), $("#search").css({ "background-color": "#F5F5F5" }), $("#results").css({ "border-top": "3px solid #DBDBDB" }), $("#search").css({ "margin-bottom": "0" }), $("#spinner").modal("hide") }, error: function (G, T) { var A; 500 == G.status || 400 == G.status ? (A = G.responseText, $("#results_box").show(), $("#output").html(A), $("#spinner").modal("hide")) : (A = G.responseText, $("#results_box").show(), $("#output").html("There seems to be an unidentified Error."), $("#spinner").modal("hide")) } }) }, initTableSorter = function () { "use strict"; $.tablesorter.addParser({ id: "star_scores", is: function (G) { return !1 }, format: function (G, T, A, e) { var C = $(A); return 1 === e ? C.attr("data-score") || G : G }, parsed: !1, type: "numeric" }), $("table").tablesorter({ headers: { 1: { sorter: "star_scores" } }, sortList: [[0, 0]] }) }, changeAdvParamsBtnText = function () { "use strict"; var G = document.getElementById("adv_params_btn"); '<i class="fa fa-pencil-square-o"></i>&nbsp;&nbsp;Show Advanced Parameters' === G.innerHTML ? (G.innerHTML = '<i class="fa fa-pencil-square-o"></i>&nbsp;&nbsp;Hide Advanced Parameters', $("#adv_params").collapse("show"), $.cookie("GeneValidator_adv_params_status", "open")) : (G.innerHTML = '<i class="fa fa-pencil-square-o"></i>&nbsp;&nbsp;Show Advanced Parameters', $("#adv_params").collapse("hide"), $.cookie("GeneValidator_adv_params_status", "closed")) }, examplarSequence = function (G) { "use strict"; var T = ">Insulin\nATGGCTCTCTGGATCCGGTCGCTGCCTCTCCTGGCCCTTCTTGCTCTTTCTGGCCCTGGGATCAGCCACGCAGCTGCCAACCAGCACCTCTGTGGCTCCCACTTGGTTGAGGCTCTCTACCTGGTGTGTGGGGAGCGGGGTTTCTTCTACTCCCCCAAAACACGGCGGGACGTTGAGCAGCCTCTAGTGAACGGTCCCCTGCATGGCGAGGTGGGAGAGCTGCCGTTCCAGCATGAGGAATACCAGAAAGTCAAGCGAGGCATCGTTGAGCAATGCTGTGAAAACCCGTGCTCCCTCTACCAACTGGAAAACTACTGCAACTAG\n>Insulin (with a duplication)\nATGGCTCTCTGGATCCGGTCGCTGCCTCTCCTGGCCCTTCTTGCTCTTTCTGGCCCTGGGATCAGCCACGCAGCTGCCAACCAGCACCTCTGTGGCTCCCACTTGGTTGAGGCTCTCTACCTGGTGTGTGGGGAGCGGGGTTTCTTCTACTCCCCCAAAACACGGCGGGACGTTGAGCAGCCTCTAGTGAACGGTCCCCTGCATGGCGAGGTGGGAGAGCTGCCGTTCCAGCATGAGGAATACCAGACAGCACCTCTGTGGCTCCCACTTGGTTGAGGCTCTCTACCTGGTGTGTGGGGAGCGGGGTTTCTTCTACTCCCCCAAAACACGGCGGGACGTTGAGCAGCCTCTAGTGAACGGTCCCCTGCATGGCGAGGTGGGAGAGCTGCCGTTCCAGCATGAGGAATACCAGAAAGTCAAGCGAGGCATCGTTGAGCAATGCTGTGAAAACCCGTGCTCCCTCTACCAACTGGAAAACTACTGCAACTAG", A = ">Methylmalonyl-CoA carboxyltransferase 12S \nMAENNNLKLASTMEGRVEQLAEQRQVIEAGGGERRVEKQHSQGKQTARERLNNLLDPHSFDEVGAFRKHRTTLFGMDKAVVPADGVVTGRGTILGRPVHAASQDFTVMGGSAGETQSTKVVETMEQALLTGTPFLFFYDSGGARIQEGIDSLSGYGKMFFANVKLSGVVPQIAIIAGPCAGGASYSPALTDFIIMTKKAHMFITGPQVIKSVTGEDVTADELGGAEAHMAISGNIHFVAEDDDAAELIAKKLLSFLPQNNTEEASFVNPNNDVSPNTELRDIVPIDGKKGYDVRDVIAKIVDWGDYLEVKAGYATNLVTAFARVNGRSVGIVANQPSVMSGCLDINASDKAAEFVNFCDSFNIPLVQLVDVPGFLPGVQQEYGGIIRHGAKMLYAYSEATVPKITVVLRKAYGGSYLAMCNRDLGADAVYAWPSAEIAVMGAEGAANVIFRKEIKAADDPDAMRAEKIEEYQNAFNTPYVAAARGQVDDVIDPADTRRKIASALEMYATKRQTRPAKKPWKLPLLSEEEIMADEEEKDLMIATLNKRVASLESELGSLQSDTQGVTEDVLTAISAVAAYLGNDGSAEVVHFAPSPNWVREGRRALQNHSIR\n>locus=Si_gnF\nMWFPVVLLLLVGVAVAMPDHEHAWEPQNEYQYSVFVRTLTGVDTLKQQYTGIQLKGVLVIQVKSEELLQAKYINPRYAHIHQELSNGPYSKIPEENLEYRDIPMSGKPFEIKLKHGVIRDLLFDRNVPTWEVNMLKGIVGQLQIDTQGENAIDSQSTQIPSNSEPSSATFKAMEDSVGGKCEVLYEITPLPQHVAQTRPDRVPMSSVPSKGHHYEVKKLKNYEKCQERQLYHYGMDVKMTKENMMKRNKVVSELSTTHIVITGTLKSFTIQSTEMKNEITVQPESSDSPIGTVYSITKLTLAKINKISNSWFGPLELSNVESTGNLVYIFNNPFSDSEQRRVGQPSISRNSEQENSLETKKRSFHSHSSSSSSSSSSSSEEENESVMQSKASLRNIFMAPNVPLLPYFIGFKGKTIMKSNEHNVMQLAKDLLLQIAKEIQNPSEGYENTLEKYVNLKNLIRTMDRKQYTELEQYVSQFNKATVEGENAWYTLRDAVVHAGTGPAFVTIENWLKSGQVKGEEAAELLSKIPKSVHQPTPDYIKEFFKLIKSSVVTQQEYVNVSAPLAFAELLRNNYVVPSYYPVHSFGRMTLKGNEEIDNYISYLANQLQQGYLENNTQKIQTFIFALGVTAHPKIISVFEPYLEGKLPTTKYQRMLMVAALYDLSRDIPKLVGPIFYKLYMNENEAHEVRCMAVQQFILTDPPMITLQRVAKYTNYDQSDQVNSAVKSTLNSIINTKRPEWRNLANKARSVRYLVNPKNYDTWYSKGYYIDFENWVFKGLNVKMVASNDAVLPRYVYVGLDSIFNFLRKPTFEVGYAVSSYRQVYDLINELWNSYQFEEMREKSQGSRVEKLAQELKIKSGQKNNLEGHVLFNSVYGSMVYPYDKHRIREAVAALKKLLTSDSKLKTTAFNNFEKIVSFPMEMGVPFVYSFELPVFVKSEINFKKGEPITSRSGVYETLFCNRVQKRFGFIAPFEYQNYIAGIDKNGIMRVPLKYETNIDIKQKNFALKIHPNIPQSGTSTGLTHYSVVPFTTRQNIFNLQPVSNEGNTRPVITSEIHKMTKEKGPFSIKIESDTTKKESVLEDIVTGISKSSNSNNERYMKIDTTFESKQVAKCEIQIDMTFDAVTIHGKNQQPSHKEMQHHSKLDWKPNSKERREEIVNVLSAGLKSGTVFVADVSFSLPRLQDNTYVFTVGSVRSNIDQKLRHYFYVNTNAAQEVKYELCYSQEVQYAYPTPLNFEYAINNEPKDKLKGVLRYGRTCNTGNEIVITGSSSQSPQLRDMIENSSITKQCMEEIQKGKKSVRTCNKATDVAQVRDQLNFHIDASQLSEIRQKYDQVIGLLNYTNLSQYNVQQNSETNTIVVQNPWVMVPTVQEPWYRWAIKPSESQRQSEIDVLLDEVSQPSCTLDNDKILTFDNQLYNVQLGKCKHVLLTTYPQDSHNRRNYIPESSKVAVLAKDTDNDSRNVYVWLGNLEIELKKVGNDLKVAINGQNVEIPEKGHQESNGNEIIFEIVQLPDGSLSVISEKYGITVIFDGKHVRLYANGATYRNAIRGLCGNYDSRRDNDFLTPKNCLLTKPEEFAATYAMTNENCQGPAPENKRKAEGAMCIEVPEQQQMNVISDREAGRMMTEGGNWGYHQSNRKKEHGQDSKRGHGHKKYNQKDSQEGGSNESQYRKKHNIVYRTRVVEMDDKICFTTTPVPGCLQDTRPVERVPKKYDLYCLSKNNESMDLKRRVEEGAKPDFTQKPVNKIQNFQIPVSCSAA"; "dna" === G ? document.getElementById("seq").value = T : "protein" === G && (document.getElementById("seq").value = A) }, checkType = function (G, T, A, e) { "use strict"; void 0 === T && (T = .9), void 0 === A && (A = 1e4), void 0 === e && (e = 1); var C = G.slice(e - 1, A), t = C.replace(/N/gi, ""), a = t.length, n = (t.match(/[ACG]/gi) || []).length / a, r = (t.match(/[T]/gi) || []).length / a, s = (t.match(/[U]/gi) || []).length / a, V = C.replace(/X/gi, ""), S = V.length, i = (C.match(/[ARNDCQEGHILKMFPSTWYV\*]/gi) || []).length / S; return n + r >= T || n + s >= T ? r >= s ? "dna" : s >= r ? "rna" : "dna" : i >= T ? "protein" : void 0 };
28
47
  // jquery.cookie.min.js
29
- !function(a){"function"==typeof define&&define.amd?define(["jquery"],a):"object"==typeof exports?a(require("jquery")):a(jQuery)}(function(a){function c(a){return h.raw?a:encodeURIComponent(a)}function d(a){return h.raw?a:decodeURIComponent(a)}function e(a){return c(h.json?JSON.stringify(a):String(a))}function f(a){0===a.indexOf('"')&&(a=a.slice(1,-1).replace(/\\"/g,'"').replace(/\\\\/g,"\\"));try{return a=decodeURIComponent(a.replace(b," ")),h.json?JSON.parse(a):a}catch(c){}}function g(b,c){var d=h.raw?b:f(b);return a.isFunction(c)?c(d):d}var b=/\+/g,h=a.cookie=function(b,f,i){if(void 0!==f&&!a.isFunction(f)){if(i=a.extend({},h.defaults,i),"number"==typeof i.expires){var j=i.expires,k=i.expires=new Date;k.setTime(+k+864e5*j)}return document.cookie=[c(b),"=",e(f),i.expires?"; expires="+i.expires.toUTCString():"",i.path?"; path="+i.path:"",i.domain?"; domain="+i.domain:"",i.secure?"; secure":""].join("")}for(var l=b?void 0:{},m=document.cookie?document.cookie.split("; "):[],n=0,o=m.length;o>n;n++){var p=m[n].split("="),q=d(p.shift()),r=p.join("=");if(b&&b===q){l=g(r,f);break}b||void 0===(r=g(r))||(l[q]=r)}return l};h.defaults={},a.removeCookie=function(b,c){return void 0===a.cookie(b)?!1:(a.cookie(b,"",a.extend({},c,{expires:-1})),!a.cookie(b))}});
48
+ !function (a) { "function" == typeof define && define.amd ? define(["jquery"], a) : "object" == typeof exports ? a(require("jquery")) : a(jQuery) }(function (a) { function c(a) { return h.raw ? a : encodeURIComponent(a) } function d(a) { return h.raw ? a : decodeURIComponent(a) } function e(a) { return c(h.json ? JSON.stringify(a) : String(a)) } function f(a) { 0 === a.indexOf('"') && (a = a.slice(1, -1).replace(/\\"/g, '"').replace(/\\\\/g, "\\")); try { return a = decodeURIComponent(a.replace(b, " ")), h.json ? JSON.parse(a) : a } catch (c) { } } function g(b, c) { var d = h.raw ? b : f(b); return a.isFunction(c) ? c(d) : d } var b = /\+/g, h = a.cookie = function (b, f, i) { if (void 0 !== f && !a.isFunction(f)) { if (i = a.extend({}, h.defaults, i), "number" == typeof i.expires) { var j = i.expires, k = i.expires = new Date; k.setTime(+k + 864e5 * j) } return document.cookie = [c(b), "=", e(f), i.expires ? "; expires=" + i.expires.toUTCString() : "", i.path ? "; path=" + i.path : "", i.domain ? "; domain=" + i.domain : "", i.secure ? "; secure" : ""].join("") } for (var l = b ? void 0 : {}, m = document.cookie ? document.cookie.split("; ") : [], n = 0, o = m.length; o > n; n++) { var p = m[n].split("="), q = d(p.shift()), r = p.join("="); if (b && b === q) { l = g(r, f); break } b || void 0 === (r = g(r)) || (l[q] = r) } return l }; h.defaults = {}, a.removeCookie = function (b, c) { return void 0 === a.cookie(b) ? !1 : (a.cookie(b, "", a.extend({}, c, { expires: -1 })), !a.cookie(b)) } });
30
49
  // jquery.validate.min.js
31
50
  /*! jQuery Validation Plugin - v1.13.0 - 7/1/2014
32
51
  * http://jqueryvalidation.org/
33
52
  * Copyright (c) 2014 Jörn Zaefferer; Licensed MIT */
34
- !function(a){"function"==typeof define&&define.amd?define(["jquery"],a):a(jQuery)}(function(a){a.extend(a.fn,{validate:function(b){if(!this.length)return void(b&&b.debug&&window.console&&console.warn("Nothing selected, can't validate, returning nothing."));var c=a.data(this[0],"validator");return c?c:(this.attr("novalidate","novalidate"),c=new a.validator(b,this[0]),a.data(this[0],"validator",c),c.settings.onsubmit&&(this.validateDelegate(":submit","click",function(b){c.settings.submitHandler&&(c.submitButton=b.target),a(b.target).hasClass("cancel")&&(c.cancelSubmit=!0),void 0!==a(b.target).attr("formnovalidate")&&(c.cancelSubmit=!0)}),this.submit(function(b){function d(){var d;return c.settings.submitHandler?(c.submitButton&&(d=a("<input type='hidden'/>").attr("name",c.submitButton.name).val(a(c.submitButton).val()).appendTo(c.currentForm)),c.settings.submitHandler.call(c,c.currentForm,b),c.submitButton&&d.remove(),!1):!0}return c.settings.debug&&b.preventDefault(),c.cancelSubmit?(c.cancelSubmit=!1,d()):c.form()?c.pendingRequest?(c.formSubmitted=!0,!1):d():(c.focusInvalid(),!1)})),c)},valid:function(){var b,c;return a(this[0]).is("form")?b=this.validate().form():(b=!0,c=a(this[0].form).validate(),this.each(function(){b=c.element(this)&&b})),b},removeAttrs:function(b){var c={},d=this;return a.each(b.split(/\s/),function(a,b){c[b]=d.attr(b),d.removeAttr(b)}),c},rules:function(b,c){var d,e,f,g,h,i,j=this[0];if(b)switch(d=a.data(j.form,"validator").settings,e=d.rules,f=a.validator.staticRules(j),b){case"add":a.extend(f,a.validator.normalizeRule(c)),delete f.messages,e[j.name]=f,c.messages&&(d.messages[j.name]=a.extend(d.messages[j.name],c.messages));break;case"remove":return c?(i={},a.each(c.split(/\s/),function(b,c){i[c]=f[c],delete f[c],"required"===c&&a(j).removeAttr("aria-required")}),i):(delete e[j.name],f)}return g=a.validator.normalizeRules(a.extend({},a.validator.classRules(j),a.validator.attributeRules(j),a.validator.dataRules(j),a.validator.staticRules(j)),j),g.required&&(h=g.required,delete g.required,g=a.extend({required:h},g),a(j).attr("aria-required","true")),g.remote&&(h=g.remote,delete g.remote,g=a.extend(g,{remote:h})),g}}),a.extend(a.expr[":"],{blank:function(b){return!a.trim(""+a(b).val())},filled:function(b){return!!a.trim(""+a(b).val())},unchecked:function(b){return!a(b).prop("checked")}}),a.validator=function(b,c){this.settings=a.extend(!0,{},a.validator.defaults,b),this.currentForm=c,this.init()},a.validator.format=function(b,c){return 1===arguments.length?function(){var c=a.makeArray(arguments);return c.unshift(b),a.validator.format.apply(this,c)}:(arguments.length>2&&c.constructor!==Array&&(c=a.makeArray(arguments).slice(1)),c.constructor!==Array&&(c=[c]),a.each(c,function(a,c){b=b.replace(new RegExp("\\{"+a+"\\}","g"),function(){return c})}),b)},a.extend(a.validator,{defaults:{messages:{},groups:{},rules:{},errorClass:"error",validClass:"valid",errorElement:"label",focusInvalid:!0,errorContainer:a([]),errorLabelContainer:a([]),onsubmit:!0,ignore:":hidden",ignoreTitle:!1,onfocusin:function(a){this.lastActive=a,this.settings.focusCleanup&&!this.blockFocusCleanup&&(this.settings.unhighlight&&this.settings.unhighlight.call(this,a,this.settings.errorClass,this.settings.validClass),this.hideThese(this.errorsFor(a)))},onfocusout:function(a){this.checkable(a)||!(a.name in this.submitted)&&this.optional(a)||this.element(a)},onkeyup:function(a,b){(9!==b.which||""!==this.elementValue(a))&&(a.name in this.submitted||a===this.lastElement)&&this.element(a)},onclick:function(a){a.name in this.submitted?this.element(a):a.parentNode.name in this.submitted&&this.element(a.parentNode)},highlight:function(b,c,d){"radio"===b.type?this.findByName(b.name).addClass(c).removeClass(d):a(b).addClass(c).removeClass(d)},unhighlight:function(b,c,d){"radio"===b.type?this.findByName(b.name).removeClass(c).addClass(d):a(b).removeClass(c).addClass(d)}},setDefaults:function(b){a.extend(a.validator.defaults,b)},messages:{required:"This field is required.",remote:"Please fix this field.",email:"Please enter a valid email address.",url:"Please enter a valid URL.",date:"Please enter a valid date.",dateISO:"Please enter a valid date ( ISO ).",number:"Please enter a valid number.",digits:"Please enter only digits.",creditcard:"Please enter a valid credit card number.",equalTo:"Please enter the same value again.",maxlength:a.validator.format("Please enter no more than {0} characters."),minlength:a.validator.format("Please enter at least {0} characters."),rangelength:a.validator.format("Please enter a value between {0} and {1} characters long."),range:a.validator.format("Please enter a value between {0} and {1}."),max:a.validator.format("Please enter a value less than or equal to {0}."),min:a.validator.format("Please enter a value greater than or equal to {0}.")},autoCreateRanges:!1,prototype:{init:function(){function b(b){var c=a.data(this[0].form,"validator"),d="on"+b.type.replace(/^validate/,""),e=c.settings;e[d]&&!this.is(e.ignore)&&e[d].call(c,this[0],b)}this.labelContainer=a(this.settings.errorLabelContainer),this.errorContext=this.labelContainer.length&&this.labelContainer||a(this.currentForm),this.containers=a(this.settings.errorContainer).add(this.settings.errorLabelContainer),this.submitted={},this.valueCache={},this.pendingRequest=0,this.pending={},this.invalid={},this.reset();var c,d=this.groups={};a.each(this.settings.groups,function(b,c){"string"==typeof c&&(c=c.split(/\s/)),a.each(c,function(a,c){d[c]=b})}),c=this.settings.rules,a.each(c,function(b,d){c[b]=a.validator.normalizeRule(d)}),a(this.currentForm).validateDelegate(":text, [type='password'], [type='file'], select, textarea, [type='number'], [type='search'] ,[type='tel'], [type='url'], [type='email'], [type='datetime'], [type='date'], [type='month'], [type='week'], [type='time'], [type='datetime-local'], [type='range'], [type='color'], [type='radio'], [type='checkbox']","focusin focusout keyup",b).validateDelegate("select, option, [type='radio'], [type='checkbox']","click",b),this.settings.invalidHandler&&a(this.currentForm).bind("invalid-form.validate",this.settings.invalidHandler),a(this.currentForm).find("[required], [data-rule-required], .required").attr("aria-required","true")},form:function(){return this.checkForm(),a.extend(this.submitted,this.errorMap),this.invalid=a.extend({},this.errorMap),this.valid()||a(this.currentForm).triggerHandler("invalid-form",[this]),this.showErrors(),this.valid()},checkForm:function(){this.prepareForm();for(var a=0,b=this.currentElements=this.elements();b[a];a++)this.check(b[a]);return this.valid()},element:function(b){var c=this.clean(b),d=this.validationTargetFor(c),e=!0;return this.lastElement=d,void 0===d?delete this.invalid[c.name]:(this.prepareElement(d),this.currentElements=a(d),e=this.check(d)!==!1,e?delete this.invalid[d.name]:this.invalid[d.name]=!0),a(b).attr("aria-invalid",!e),this.numberOfInvalids()||(this.toHide=this.toHide.add(this.containers)),this.showErrors(),e},showErrors:function(b){if(b){a.extend(this.errorMap,b),this.errorList=[];for(var c in b)this.errorList.push({message:b[c],element:this.findByName(c)[0]});this.successList=a.grep(this.successList,function(a){return!(a.name in b)})}this.settings.showErrors?this.settings.showErrors.call(this,this.errorMap,this.errorList):this.defaultShowErrors()},resetForm:function(){a.fn.resetForm&&a(this.currentForm).resetForm(),this.submitted={},this.lastElement=null,this.prepareForm(),this.hideErrors(),this.elements().removeClass(this.settings.errorClass).removeData("previousValue").removeAttr("aria-invalid")},numberOfInvalids:function(){return this.objectLength(this.invalid)},objectLength:function(a){var b,c=0;for(b in a)c++;return c},hideErrors:function(){this.hideThese(this.toHide)},hideThese:function(a){a.not(this.containers).text(""),this.addWrapper(a).hide()},valid:function(){return 0===this.size()},size:function(){return this.errorList.length},focusInvalid:function(){if(this.settings.focusInvalid)try{a(this.findLastActive()||this.errorList.length&&this.errorList[0].element||[]).filter(":visible").focus().trigger("focusin")}catch(b){}},findLastActive:function(){var b=this.lastActive;return b&&1===a.grep(this.errorList,function(a){return a.element.name===b.name}).length&&b},elements:function(){var b=this,c={};return a(this.currentForm).find("input, select, textarea").not(":submit, :reset, :image, [disabled]").not(this.settings.ignore).filter(function(){return!this.name&&b.settings.debug&&window.console&&console.error("%o has no name assigned",this),this.name in c||!b.objectLength(a(this).rules())?!1:(c[this.name]=!0,!0)})},clean:function(b){return a(b)[0]},errors:function(){var b=this.settings.errorClass.split(" ").join(".");return a(this.settings.errorElement+"."+b,this.errorContext)},reset:function(){this.successList=[],this.errorList=[],this.errorMap={},this.toShow=a([]),this.toHide=a([]),this.currentElements=a([])},prepareForm:function(){this.reset(),this.toHide=this.errors().add(this.containers)},prepareElement:function(a){this.reset(),this.toHide=this.errorsFor(a)},elementValue:function(b){var c,d=a(b),e=b.type;return"radio"===e||"checkbox"===e?a("input[name='"+b.name+"']:checked").val():"number"===e&&"undefined"!=typeof b.validity?b.validity.badInput?!1:d.val():(c=d.val(),"string"==typeof c?c.replace(/\r/g,""):c)},check:function(b){b=this.validationTargetFor(this.clean(b));var c,d,e,f=a(b).rules(),g=a.map(f,function(a,b){return b}).length,h=!1,i=this.elementValue(b);for(d in f){e={method:d,parameters:f[d]};try{if(c=a.validator.methods[d].call(this,i,b,e.parameters),"dependency-mismatch"===c&&1===g){h=!0;continue}if(h=!1,"pending"===c)return void(this.toHide=this.toHide.not(this.errorsFor(b)));if(!c)return this.formatAndAdd(b,e),!1}catch(j){throw this.settings.debug&&window.console&&console.log("Exception occurred when checking element "+b.id+", check the '"+e.method+"' method.",j),j}}if(!h)return this.objectLength(f)&&this.successList.push(b),!0},customDataMessage:function(b,c){return a(b).data("msg"+c.charAt(0).toUpperCase()+c.substring(1).toLowerCase())||a(b).data("msg")},customMessage:function(a,b){var c=this.settings.messages[a];return c&&(c.constructor===String?c:c[b])},findDefined:function(){for(var a=0;a<arguments.length;a++)if(void 0!==arguments[a])return arguments[a];return void 0},defaultMessage:function(b,c){return this.findDefined(this.customMessage(b.name,c),this.customDataMessage(b,c),!this.settings.ignoreTitle&&b.title||void 0,a.validator.messages[c],"<strong>Warning: No message defined for "+b.name+"</strong>")},formatAndAdd:function(b,c){var d=this.defaultMessage(b,c.method),e=/\$?\{(\d+)\}/g;"function"==typeof d?d=d.call(this,c.parameters,b):e.test(d)&&(d=a.validator.format(d.replace(e,"{$1}"),c.parameters)),this.errorList.push({message:d,element:b,method:c.method}),this.errorMap[b.name]=d,this.submitted[b.name]=d},addWrapper:function(a){return this.settings.wrapper&&(a=a.add(a.parent(this.settings.wrapper))),a},defaultShowErrors:function(){var a,b,c;for(a=0;this.errorList[a];a++)c=this.errorList[a],this.settings.highlight&&this.settings.highlight.call(this,c.element,this.settings.errorClass,this.settings.validClass),this.showLabel(c.element,c.message);if(this.errorList.length&&(this.toShow=this.toShow.add(this.containers)),this.settings.success)for(a=0;this.successList[a];a++)this.showLabel(this.successList[a]);if(this.settings.unhighlight)for(a=0,b=this.validElements();b[a];a++)this.settings.unhighlight.call(this,b[a],this.settings.errorClass,this.settings.validClass);this.toHide=this.toHide.not(this.toShow),this.hideErrors(),this.addWrapper(this.toShow).show()},validElements:function(){return this.currentElements.not(this.invalidElements())},invalidElements:function(){return a(this.errorList).map(function(){return this.element})},showLabel:function(b,c){var d,e,f,g=this.errorsFor(b),h=this.idOrName(b),i=a(b).attr("aria-describedby");g.length?(g.removeClass(this.settings.validClass).addClass(this.settings.errorClass),g.html(c)):(g=a("<"+this.settings.errorElement+">").attr("id",h+"-error").addClass(this.settings.errorClass).html(c||""),d=g,this.settings.wrapper&&(d=g.hide().show().wrap("<"+this.settings.wrapper+"/>").parent()),this.labelContainer.length?this.labelContainer.append(d):this.settings.errorPlacement?this.settings.errorPlacement(d,a(b)):d.insertAfter(b),g.is("label")?g.attr("for",h):0===g.parents("label[for='"+h+"']").length&&(f=g.attr("id"),i?i.match(new RegExp("\b"+f+"\b"))||(i+=" "+f):i=f,a(b).attr("aria-describedby",i),e=this.groups[b.name],e&&a.each(this.groups,function(b,c){c===e&&a("[name='"+b+"']",this.currentForm).attr("aria-describedby",g.attr("id"))}))),!c&&this.settings.success&&(g.text(""),"string"==typeof this.settings.success?g.addClass(this.settings.success):this.settings.success(g,b)),this.toShow=this.toShow.add(g)},errorsFor:function(b){var c=this.idOrName(b),d=a(b).attr("aria-describedby"),e="label[for='"+c+"'], label[for='"+c+"'] *";return d&&(e=e+", #"+d.replace(/\s+/g,", #")),this.errors().filter(e)},idOrName:function(a){return this.groups[a.name]||(this.checkable(a)?a.name:a.id||a.name)},validationTargetFor:function(a){return this.checkable(a)&&(a=this.findByName(a.name).not(this.settings.ignore)[0]),a},checkable:function(a){return/radio|checkbox/i.test(a.type)},findByName:function(b){return a(this.currentForm).find("[name='"+b+"']")},getLength:function(b,c){switch(c.nodeName.toLowerCase()){case"select":return a("option:selected",c).length;case"input":if(this.checkable(c))return this.findByName(c.name).filter(":checked").length}return b.length},depend:function(a,b){return this.dependTypes[typeof a]?this.dependTypes[typeof a](a,b):!0},dependTypes:{"boolean":function(a){return a},string:function(b,c){return!!a(b,c.form).length},"function":function(a,b){return a(b)}},optional:function(b){var c=this.elementValue(b);return!a.validator.methods.required.call(this,c,b)&&"dependency-mismatch"},startRequest:function(a){this.pending[a.name]||(this.pendingRequest++,this.pending[a.name]=!0)},stopRequest:function(b,c){this.pendingRequest--,this.pendingRequest<0&&(this.pendingRequest=0),delete this.pending[b.name],c&&0===this.pendingRequest&&this.formSubmitted&&this.form()?(a(this.currentForm).submit(),this.formSubmitted=!1):!c&&0===this.pendingRequest&&this.formSubmitted&&(a(this.currentForm).triggerHandler("invalid-form",[this]),this.formSubmitted=!1)},previousValue:function(b){return a.data(b,"previousValue")||a.data(b,"previousValue",{old:null,valid:!0,message:this.defaultMessage(b,"remote")})}},classRuleSettings:{required:{required:!0},email:{email:!0},url:{url:!0},date:{date:!0},dateISO:{dateISO:!0},number:{number:!0},digits:{digits:!0},creditcard:{creditcard:!0}},addClassRules:function(b,c){b.constructor===String?this.classRuleSettings[b]=c:a.extend(this.classRuleSettings,b)},classRules:function(b){var c={},d=a(b).attr("class");return d&&a.each(d.split(" "),function(){this in a.validator.classRuleSettings&&a.extend(c,a.validator.classRuleSettings[this])}),c},attributeRules:function(b){var c,d,e={},f=a(b),g=b.getAttribute("type");for(c in a.validator.methods)"required"===c?(d=b.getAttribute(c),""===d&&(d=!0),d=!!d):d=f.attr(c),/min|max/.test(c)&&(null===g||/number|range|text/.test(g))&&(d=Number(d)),d||0===d?e[c]=d:g===c&&"range"!==g&&(e[c]=!0);return e.maxlength&&/-1|2147483647|524288/.test(e.maxlength)&&delete e.maxlength,e},dataRules:function(b){var c,d,e={},f=a(b);for(c in a.validator.methods)d=f.data("rule"+c.charAt(0).toUpperCase()+c.substring(1).toLowerCase()),void 0!==d&&(e[c]=d);return e},staticRules:function(b){var c={},d=a.data(b.form,"validator");return d.settings.rules&&(c=a.validator.normalizeRule(d.settings.rules[b.name])||{}),c},normalizeRules:function(b,c){return a.each(b,function(d,e){if(e===!1)return void delete b[d];if(e.param||e.depends){var f=!0;switch(typeof e.depends){case"string":f=!!a(e.depends,c.form).length;break;case"function":f=e.depends.call(c,c)}f?b[d]=void 0!==e.param?e.param:!0:delete b[d]}}),a.each(b,function(d,e){b[d]=a.isFunction(e)?e(c):e}),a.each(["minlength","maxlength"],function(){b[this]&&(b[this]=Number(b[this]))}),a.each(["rangelength","range"],function(){var c;b[this]&&(a.isArray(b[this])?b[this]=[Number(b[this][0]),Number(b[this][1])]:"string"==typeof b[this]&&(c=b[this].replace(/[\[\]]/g,"").split(/[\s,]+/),b[this]=[Number(c[0]),Number(c[1])]))}),a.validator.autoCreateRanges&&(b.min&&b.max&&(b.range=[b.min,b.max],delete b.min,delete b.max),b.minlength&&b.maxlength&&(b.rangelength=[b.minlength,b.maxlength],delete b.minlength,delete b.maxlength)),b},normalizeRule:function(b){if("string"==typeof b){var c={};a.each(b.split(/\s/),function(){c[this]=!0}),b=c}return b},addMethod:function(b,c,d){a.validator.methods[b]=c,a.validator.messages[b]=void 0!==d?d:a.validator.messages[b],c.length<3&&a.validator.addClassRules(b,a.validator.normalizeRule(b))},methods:{required:function(b,c,d){if(!this.depend(d,c))return"dependency-mismatch";if("select"===c.nodeName.toLowerCase()){var e=a(c).val();return e&&e.length>0}return this.checkable(c)?this.getLength(b,c)>0:a.trim(b).length>0},email:function(a,b){return this.optional(b)||/^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/.test(a)},url:function(a,b){return this.optional(b)||/^(https?|s?ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i.test(a)},date:function(a,b){return this.optional(b)||!/Invalid|NaN/.test(new Date(a).toString())},dateISO:function(a,b){return this.optional(b)||/^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/.test(a)},number:function(a,b){return this.optional(b)||/^-?(?:\d+|\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/.test(a)},digits:function(a,b){return this.optional(b)||/^\d+$/.test(a)},creditcard:function(a,b){if(this.optional(b))return"dependency-mismatch";if(/[^0-9 \-]+/.test(a))return!1;var c,d,e=0,f=0,g=!1;if(a=a.replace(/\D/g,""),a.length<13||a.length>19)return!1;for(c=a.length-1;c>=0;c--)d=a.charAt(c),f=parseInt(d,10),g&&(f*=2)>9&&(f-=9),e+=f,g=!g;return e%10===0},minlength:function(b,c,d){var e=a.isArray(b)?b.length:this.getLength(a.trim(b),c);return this.optional(c)||e>=d},maxlength:function(b,c,d){var e=a.isArray(b)?b.length:this.getLength(a.trim(b),c);return this.optional(c)||d>=e},rangelength:function(b,c,d){var e=a.isArray(b)?b.length:this.getLength(a.trim(b),c);return this.optional(c)||e>=d[0]&&e<=d[1]},min:function(a,b,c){return this.optional(b)||a>=c},max:function(a,b,c){return this.optional(b)||c>=a},range:function(a,b,c){return this.optional(b)||a>=c[0]&&a<=c[1]},equalTo:function(b,c,d){var e=a(d);return this.settings.onfocusout&&e.unbind(".validate-equalTo").bind("blur.validate-equalTo",function(){a(c).valid()}),b===e.val()},remote:function(b,c,d){if(this.optional(c))return"dependency-mismatch";var e,f,g=this.previousValue(c);return this.settings.messages[c.name]||(this.settings.messages[c.name]={}),g.originalMessage=this.settings.messages[c.name].remote,this.settings.messages[c.name].remote=g.message,d="string"==typeof d&&{url:d}||d,g.old===b?g.valid:(g.old=b,e=this,this.startRequest(c),f={},f[c.name]=b,a.ajax(a.extend(!0,{url:d,mode:"abort",port:"validate"+c.name,dataType:"json",data:f,context:e.currentForm,success:function(d){var f,h,i,j=d===!0||"true"===d;e.settings.messages[c.name].remote=g.originalMessage,j?(i=e.formSubmitted,e.prepareElement(c),e.formSubmitted=i,e.successList.push(c),delete e.invalid[c.name],e.showErrors()):(f={},h=d||e.defaultMessage(c,"remote"),f[c.name]=g.message=a.isFunction(h)?h(b):h,e.invalid[c.name]=!0,e.showErrors(f)),g.valid=j,e.stopRequest(c,j)}},d)),"pending")}}}),a.format=function(){throw"$.format has been deprecated. Please use $.validator.format instead."};var b,c={};a.ajaxPrefilter?a.ajaxPrefilter(function(a,b,d){var e=a.port;"abort"===a.mode&&(c[e]&&c[e].abort(),c[e]=d)}):(b=a.ajax,a.ajax=function(d){var e=("mode"in d?d:a.ajaxSettings).mode,f=("port"in d?d:a.ajaxSettings).port;return"abort"===e?(c[f]&&c[f].abort(),c[f]=b.apply(this,arguments),c[f]):b.apply(this,arguments)}),a.extend(a.fn,{validateDelegate:function(b,c,d){return this.bind(c,function(c){var e=a(c.target);return e.is(b)?d.apply(e,arguments):void 0})}})});
53
+ !function (a) { "function" == typeof define && define.amd ? define(["jquery"], a) : a(jQuery) }(function (a) { a.extend(a.fn, { validate: function (b) { if (!this.length) return void (b && b.debug && window.console && console.warn("Nothing selected, can't validate, returning nothing.")); var c = a.data(this[0], "validator"); return c ? c : (this.attr("novalidate", "novalidate"), c = new a.validator(b, this[0]), a.data(this[0], "validator", c), c.settings.onsubmit && (this.validateDelegate(":submit", "click", function (b) { c.settings.submitHandler && (c.submitButton = b.target), a(b.target).hasClass("cancel") && (c.cancelSubmit = !0), void 0 !== a(b.target).attr("formnovalidate") && (c.cancelSubmit = !0) }), this.submit(function (b) { function d() { var d; return c.settings.submitHandler ? (c.submitButton && (d = a("<input type='hidden'/>").attr("name", c.submitButton.name).val(a(c.submitButton).val()).appendTo(c.currentForm)), c.settings.submitHandler.call(c, c.currentForm, b), c.submitButton && d.remove(), !1) : !0 } return c.settings.debug && b.preventDefault(), c.cancelSubmit ? (c.cancelSubmit = !1, d()) : c.form() ? c.pendingRequest ? (c.formSubmitted = !0, !1) : d() : (c.focusInvalid(), !1) })), c) }, valid: function () { var b, c; return a(this[0]).is("form") ? b = this.validate().form() : (b = !0, c = a(this[0].form).validate(), this.each(function () { b = c.element(this) && b })), b }, removeAttrs: function (b) { var c = {}, d = this; return a.each(b.split(/\s/), function (a, b) { c[b] = d.attr(b), d.removeAttr(b) }), c }, rules: function (b, c) { var d, e, f, g, h, i, j = this[0]; if (b) switch (d = a.data(j.form, "validator").settings, e = d.rules, f = a.validator.staticRules(j), b) { case "add": a.extend(f, a.validator.normalizeRule(c)), delete f.messages, e[j.name] = f, c.messages && (d.messages[j.name] = a.extend(d.messages[j.name], c.messages)); break; case "remove": return c ? (i = {}, a.each(c.split(/\s/), function (b, c) { i[c] = f[c], delete f[c], "required" === c && a(j).removeAttr("aria-required") }), i) : (delete e[j.name], f) }return g = a.validator.normalizeRules(a.extend({}, a.validator.classRules(j), a.validator.attributeRules(j), a.validator.dataRules(j), a.validator.staticRules(j)), j), g.required && (h = g.required, delete g.required, g = a.extend({ required: h }, g), a(j).attr("aria-required", "true")), g.remote && (h = g.remote, delete g.remote, g = a.extend(g, { remote: h })), g } }), a.extend(a.expr[":"], { blank: function (b) { return !a.trim("" + a(b).val()) }, filled: function (b) { return !!a.trim("" + a(b).val()) }, unchecked: function (b) { return !a(b).prop("checked") } }), a.validator = function (b, c) { this.settings = a.extend(!0, {}, a.validator.defaults, b), this.currentForm = c, this.init() }, a.validator.format = function (b, c) { return 1 === arguments.length ? function () { var c = a.makeArray(arguments); return c.unshift(b), a.validator.format.apply(this, c) } : (arguments.length > 2 && c.constructor !== Array && (c = a.makeArray(arguments).slice(1)), c.constructor !== Array && (c = [c]), a.each(c, function (a, c) { b = b.replace(new RegExp("\\{" + a + "\\}", "g"), function () { return c }) }), b) }, a.extend(a.validator, { defaults: { messages: {}, groups: {}, rules: {}, errorClass: "error", validClass: "valid", errorElement: "label", focusInvalid: !0, errorContainer: a([]), errorLabelContainer: a([]), onsubmit: !0, ignore: ":hidden", ignoreTitle: !1, onfocusin: function (a) { this.lastActive = a, this.settings.focusCleanup && !this.blockFocusCleanup && (this.settings.unhighlight && this.settings.unhighlight.call(this, a, this.settings.errorClass, this.settings.validClass), this.hideThese(this.errorsFor(a))) }, onfocusout: function (a) { this.checkable(a) || !(a.name in this.submitted) && this.optional(a) || this.element(a) }, onkeyup: function (a, b) { (9 !== b.which || "" !== this.elementValue(a)) && (a.name in this.submitted || a === this.lastElement) && this.element(a) }, onclick: function (a) { a.name in this.submitted ? this.element(a) : a.parentNode.name in this.submitted && this.element(a.parentNode) }, highlight: function (b, c, d) { "radio" === b.type ? this.findByName(b.name).addClass(c).removeClass(d) : a(b).addClass(c).removeClass(d) }, unhighlight: function (b, c, d) { "radio" === b.type ? this.findByName(b.name).removeClass(c).addClass(d) : a(b).removeClass(c).addClass(d) } }, setDefaults: function (b) { a.extend(a.validator.defaults, b) }, messages: { required: "This field is required.", remote: "Please fix this field.", email: "Please enter a valid email address.", url: "Please enter a valid URL.", date: "Please enter a valid date.", dateISO: "Please enter a valid date ( ISO ).", number: "Please enter a valid number.", digits: "Please enter only digits.", creditcard: "Please enter a valid credit card number.", equalTo: "Please enter the same value again.", maxlength: a.validator.format("Please enter no more than {0} characters."), minlength: a.validator.format("Please enter at least {0} characters."), rangelength: a.validator.format("Please enter a value between {0} and {1} characters long."), range: a.validator.format("Please enter a value between {0} and {1}."), max: a.validator.format("Please enter a value less than or equal to {0}."), min: a.validator.format("Please enter a value greater than or equal to {0}.") }, autoCreateRanges: !1, prototype: { init: function () { function b(b) { var c = a.data(this[0].form, "validator"), d = "on" + b.type.replace(/^validate/, ""), e = c.settings; e[d] && !this.is(e.ignore) && e[d].call(c, this[0], b) } this.labelContainer = a(this.settings.errorLabelContainer), this.errorContext = this.labelContainer.length && this.labelContainer || a(this.currentForm), this.containers = a(this.settings.errorContainer).add(this.settings.errorLabelContainer), this.submitted = {}, this.valueCache = {}, this.pendingRequest = 0, this.pending = {}, this.invalid = {}, this.reset(); var c, d = this.groups = {}; a.each(this.settings.groups, function (b, c) { "string" == typeof c && (c = c.split(/\s/)), a.each(c, function (a, c) { d[c] = b }) }), c = this.settings.rules, a.each(c, function (b, d) { c[b] = a.validator.normalizeRule(d) }), a(this.currentForm).validateDelegate(":text, [type='password'], [type='file'], select, textarea, [type='number'], [type='search'] ,[type='tel'], [type='url'], [type='email'], [type='datetime'], [type='date'], [type='month'], [type='week'], [type='time'], [type='datetime-local'], [type='range'], [type='color'], [type='radio'], [type='checkbox']", "focusin focusout keyup", b).validateDelegate("select, option, [type='radio'], [type='checkbox']", "click", b), this.settings.invalidHandler && a(this.currentForm).bind("invalid-form.validate", this.settings.invalidHandler), a(this.currentForm).find("[required], [data-rule-required], .required").attr("aria-required", "true") }, form: function () { return this.checkForm(), a.extend(this.submitted, this.errorMap), this.invalid = a.extend({}, this.errorMap), this.valid() || a(this.currentForm).triggerHandler("invalid-form", [this]), this.showErrors(), this.valid() }, checkForm: function () { this.prepareForm(); for (var a = 0, b = this.currentElements = this.elements(); b[a]; a++)this.check(b[a]); return this.valid() }, element: function (b) { var c = this.clean(b), d = this.validationTargetFor(c), e = !0; return this.lastElement = d, void 0 === d ? delete this.invalid[c.name] : (this.prepareElement(d), this.currentElements = a(d), e = this.check(d) !== !1, e ? delete this.invalid[d.name] : this.invalid[d.name] = !0), a(b).attr("aria-invalid", !e), this.numberOfInvalids() || (this.toHide = this.toHide.add(this.containers)), this.showErrors(), e }, showErrors: function (b) { if (b) { a.extend(this.errorMap, b), this.errorList = []; for (var c in b) this.errorList.push({ message: b[c], element: this.findByName(c)[0] }); this.successList = a.grep(this.successList, function (a) { return !(a.name in b) }) } this.settings.showErrors ? this.settings.showErrors.call(this, this.errorMap, this.errorList) : this.defaultShowErrors() }, resetForm: function () { a.fn.resetForm && a(this.currentForm).resetForm(), this.submitted = {}, this.lastElement = null, this.prepareForm(), this.hideErrors(), this.elements().removeClass(this.settings.errorClass).removeData("previousValue").removeAttr("aria-invalid") }, numberOfInvalids: function () { return this.objectLength(this.invalid) }, objectLength: function (a) { var b, c = 0; for (b in a) c++; return c }, hideErrors: function () { this.hideThese(this.toHide) }, hideThese: function (a) { a.not(this.containers).text(""), this.addWrapper(a).hide() }, valid: function () { return 0 === this.size() }, size: function () { return this.errorList.length }, focusInvalid: function () { if (this.settings.focusInvalid) try { a(this.findLastActive() || this.errorList.length && this.errorList[0].element || []).filter(":visible").focus().trigger("focusin") } catch (b) { } }, findLastActive: function () { var b = this.lastActive; return b && 1 === a.grep(this.errorList, function (a) { return a.element.name === b.name }).length && b }, elements: function () { var b = this, c = {}; return a(this.currentForm).find("input, select, textarea").not(":submit, :reset, :image, [disabled]").not(this.settings.ignore).filter(function () { return !this.name && b.settings.debug && window.console && console.error("%o has no name assigned", this), this.name in c || !b.objectLength(a(this).rules()) ? !1 : (c[this.name] = !0, !0) }) }, clean: function (b) { return a(b)[0] }, errors: function () { var b = this.settings.errorClass.split(" ").join("."); return a(this.settings.errorElement + "." + b, this.errorContext) }, reset: function () { this.successList = [], this.errorList = [], this.errorMap = {}, this.toShow = a([]), this.toHide = a([]), this.currentElements = a([]) }, prepareForm: function () { this.reset(), this.toHide = this.errors().add(this.containers) }, prepareElement: function (a) { this.reset(), this.toHide = this.errorsFor(a) }, elementValue: function (b) { var c, d = a(b), e = b.type; return "radio" === e || "checkbox" === e ? a("input[name='" + b.name + "']:checked").val() : "number" === e && "undefined" != typeof b.validity ? b.validity.badInput ? !1 : d.val() : (c = d.val(), "string" == typeof c ? c.replace(/\r/g, "") : c) }, check: function (b) { b = this.validationTargetFor(this.clean(b)); var c, d, e, f = a(b).rules(), g = a.map(f, function (a, b) { return b }).length, h = !1, i = this.elementValue(b); for (d in f) { e = { method: d, parameters: f[d] }; try { if (c = a.validator.methods[d].call(this, i, b, e.parameters), "dependency-mismatch" === c && 1 === g) { h = !0; continue } if (h = !1, "pending" === c) return void (this.toHide = this.toHide.not(this.errorsFor(b))); if (!c) return this.formatAndAdd(b, e), !1 } catch (j) { throw this.settings.debug && window.console && console.log("Exception occurred when checking element " + b.id + ", check the '" + e.method + "' method.", j), j } } if (!h) return this.objectLength(f) && this.successList.push(b), !0 }, customDataMessage: function (b, c) { return a(b).data("msg" + c.charAt(0).toUpperCase() + c.substring(1).toLowerCase()) || a(b).data("msg") }, customMessage: function (a, b) { var c = this.settings.messages[a]; return c && (c.constructor === String ? c : c[b]) }, findDefined: function () { for (var a = 0; a < arguments.length; a++)if (void 0 !== arguments[a]) return arguments[a]; return void 0 }, defaultMessage: function (b, c) { return this.findDefined(this.customMessage(b.name, c), this.customDataMessage(b, c), !this.settings.ignoreTitle && b.title || void 0, a.validator.messages[c], "<strong>Warning: No message defined for " + b.name + "</strong>") }, formatAndAdd: function (b, c) { var d = this.defaultMessage(b, c.method), e = /\$?\{(\d+)\}/g; "function" == typeof d ? d = d.call(this, c.parameters, b) : e.test(d) && (d = a.validator.format(d.replace(e, "{$1}"), c.parameters)), this.errorList.push({ message: d, element: b, method: c.method }), this.errorMap[b.name] = d, this.submitted[b.name] = d }, addWrapper: function (a) { return this.settings.wrapper && (a = a.add(a.parent(this.settings.wrapper))), a }, defaultShowErrors: function () { var a, b, c; for (a = 0; this.errorList[a]; a++)c = this.errorList[a], this.settings.highlight && this.settings.highlight.call(this, c.element, this.settings.errorClass, this.settings.validClass), this.showLabel(c.element, c.message); if (this.errorList.length && (this.toShow = this.toShow.add(this.containers)), this.settings.success) for (a = 0; this.successList[a]; a++)this.showLabel(this.successList[a]); if (this.settings.unhighlight) for (a = 0, b = this.validElements(); b[a]; a++)this.settings.unhighlight.call(this, b[a], this.settings.errorClass, this.settings.validClass); this.toHide = this.toHide.not(this.toShow), this.hideErrors(), this.addWrapper(this.toShow).show() }, validElements: function () { return this.currentElements.not(this.invalidElements()) }, invalidElements: function () { return a(this.errorList).map(function () { return this.element }) }, showLabel: function (b, c) { var d, e, f, g = this.errorsFor(b), h = this.idOrName(b), i = a(b).attr("aria-describedby"); g.length ? (g.removeClass(this.settings.validClass).addClass(this.settings.errorClass), g.html(c)) : (g = a("<" + this.settings.errorElement + ">").attr("id", h + "-error").addClass(this.settings.errorClass).html(c || ""), d = g, this.settings.wrapper && (d = g.hide().show().wrap("<" + this.settings.wrapper + "/>").parent()), this.labelContainer.length ? this.labelContainer.append(d) : this.settings.errorPlacement ? this.settings.errorPlacement(d, a(b)) : d.insertAfter(b), g.is("label") ? g.attr("for", h) : 0 === g.parents("label[for='" + h + "']").length && (f = g.attr("id"), i ? i.match(new RegExp("\b" + f + "\b")) || (i += " " + f) : i = f, a(b).attr("aria-describedby", i), e = this.groups[b.name], e && a.each(this.groups, function (b, c) { c === e && a("[name='" + b + "']", this.currentForm).attr("aria-describedby", g.attr("id")) }))), !c && this.settings.success && (g.text(""), "string" == typeof this.settings.success ? g.addClass(this.settings.success) : this.settings.success(g, b)), this.toShow = this.toShow.add(g) }, errorsFor: function (b) { var c = this.idOrName(b), d = a(b).attr("aria-describedby"), e = "label[for='" + c + "'], label[for='" + c + "'] *"; return d && (e = e + ", #" + d.replace(/\s+/g, ", #")), this.errors().filter(e) }, idOrName: function (a) { return this.groups[a.name] || (this.checkable(a) ? a.name : a.id || a.name) }, validationTargetFor: function (a) { return this.checkable(a) && (a = this.findByName(a.name).not(this.settings.ignore)[0]), a }, checkable: function (a) { return /radio|checkbox/i.test(a.type) }, findByName: function (b) { return a(this.currentForm).find("[name='" + b + "']") }, getLength: function (b, c) { switch (c.nodeName.toLowerCase()) { case "select": return a("option:selected", c).length; case "input": if (this.checkable(c)) return this.findByName(c.name).filter(":checked").length }return b.length }, depend: function (a, b) { return this.dependTypes[typeof a] ? this.dependTypes[typeof a](a, b) : !0 }, dependTypes: { "boolean": function (a) { return a }, string: function (b, c) { return !!a(b, c.form).length }, "function": function (a, b) { return a(b) } }, optional: function (b) { var c = this.elementValue(b); return !a.validator.methods.required.call(this, c, b) && "dependency-mismatch" }, startRequest: function (a) { this.pending[a.name] || (this.pendingRequest++ , this.pending[a.name] = !0) }, stopRequest: function (b, c) { this.pendingRequest-- , this.pendingRequest < 0 && (this.pendingRequest = 0), delete this.pending[b.name], c && 0 === this.pendingRequest && this.formSubmitted && this.form() ? (a(this.currentForm).submit(), this.formSubmitted = !1) : !c && 0 === this.pendingRequest && this.formSubmitted && (a(this.currentForm).triggerHandler("invalid-form", [this]), this.formSubmitted = !1) }, previousValue: function (b) { return a.data(b, "previousValue") || a.data(b, "previousValue", { old: null, valid: !0, message: this.defaultMessage(b, "remote") }) } }, classRuleSettings: { required: { required: !0 }, email: { email: !0 }, url: { url: !0 }, date: { date: !0 }, dateISO: { dateISO: !0 }, number: { number: !0 }, digits: { digits: !0 }, creditcard: { creditcard: !0 } }, addClassRules: function (b, c) { b.constructor === String ? this.classRuleSettings[b] = c : a.extend(this.classRuleSettings, b) }, classRules: function (b) { var c = {}, d = a(b).attr("class"); return d && a.each(d.split(" "), function () { this in a.validator.classRuleSettings && a.extend(c, a.validator.classRuleSettings[this]) }), c }, attributeRules: function (b) { var c, d, e = {}, f = a(b), g = b.getAttribute("type"); for (c in a.validator.methods) "required" === c ? (d = b.getAttribute(c), "" === d && (d = !0), d = !!d) : d = f.attr(c), /min|max/.test(c) && (null === g || /number|range|text/.test(g)) && (d = Number(d)), d || 0 === d ? e[c] = d : g === c && "range" !== g && (e[c] = !0); return e.maxlength && /-1|2147483647|524288/.test(e.maxlength) && delete e.maxlength, e }, dataRules: function (b) { var c, d, e = {}, f = a(b); for (c in a.validator.methods) d = f.data("rule" + c.charAt(0).toUpperCase() + c.substring(1).toLowerCase()), void 0 !== d && (e[c] = d); return e }, staticRules: function (b) { var c = {}, d = a.data(b.form, "validator"); return d.settings.rules && (c = a.validator.normalizeRule(d.settings.rules[b.name]) || {}), c }, normalizeRules: function (b, c) { return a.each(b, function (d, e) { if (e === !1) return void delete b[d]; if (e.param || e.depends) { var f = !0; switch (typeof e.depends) { case "string": f = !!a(e.depends, c.form).length; break; case "function": f = e.depends.call(c, c) }f ? b[d] = void 0 !== e.param ? e.param : !0 : delete b[d] } }), a.each(b, function (d, e) { b[d] = a.isFunction(e) ? e(c) : e }), a.each(["minlength", "maxlength"], function () { b[this] && (b[this] = Number(b[this])) }), a.each(["rangelength", "range"], function () { var c; b[this] && (a.isArray(b[this]) ? b[this] = [Number(b[this][0]), Number(b[this][1])] : "string" == typeof b[this] && (c = b[this].replace(/[\[\]]/g, "").split(/[\s,]+/), b[this] = [Number(c[0]), Number(c[1])])) }), a.validator.autoCreateRanges && (b.min && b.max && (b.range = [b.min, b.max], delete b.min, delete b.max), b.minlength && b.maxlength && (b.rangelength = [b.minlength, b.maxlength], delete b.minlength, delete b.maxlength)), b }, normalizeRule: function (b) { if ("string" == typeof b) { var c = {}; a.each(b.split(/\s/), function () { c[this] = !0 }), b = c } return b }, addMethod: function (b, c, d) { a.validator.methods[b] = c, a.validator.messages[b] = void 0 !== d ? d : a.validator.messages[b], c.length < 3 && a.validator.addClassRules(b, a.validator.normalizeRule(b)) }, methods: { required: function (b, c, d) { if (!this.depend(d, c)) return "dependency-mismatch"; if ("select" === c.nodeName.toLowerCase()) { var e = a(c).val(); return e && e.length > 0 } return this.checkable(c) ? this.getLength(b, c) > 0 : a.trim(b).length > 0 }, email: function (a, b) { return this.optional(b) || /^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/.test(a) }, url: function (a, b) { return this.optional(b) || /^(https?|s?ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i.test(a) }, date: function (a, b) { return this.optional(b) || !/Invalid|NaN/.test(new Date(a).toString()) }, dateISO: function (a, b) { return this.optional(b) || /^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/.test(a) }, number: function (a, b) { return this.optional(b) || /^-?(?:\d+|\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/.test(a) }, digits: function (a, b) { return this.optional(b) || /^\d+$/.test(a) }, creditcard: function (a, b) { if (this.optional(b)) return "dependency-mismatch"; if (/[^0-9 \-]+/.test(a)) return !1; var c, d, e = 0, f = 0, g = !1; if (a = a.replace(/\D/g, ""), a.length < 13 || a.length > 19) return !1; for (c = a.length - 1; c >= 0; c--)d = a.charAt(c), f = parseInt(d, 10), g && (f *= 2) > 9 && (f -= 9), e += f, g = !g; return e % 10 === 0 }, minlength: function (b, c, d) { var e = a.isArray(b) ? b.length : this.getLength(a.trim(b), c); return this.optional(c) || e >= d }, maxlength: function (b, c, d) { var e = a.isArray(b) ? b.length : this.getLength(a.trim(b), c); return this.optional(c) || d >= e }, rangelength: function (b, c, d) { var e = a.isArray(b) ? b.length : this.getLength(a.trim(b), c); return this.optional(c) || e >= d[0] && e <= d[1] }, min: function (a, b, c) { return this.optional(b) || a >= c }, max: function (a, b, c) { return this.optional(b) || c >= a }, range: function (a, b, c) { return this.optional(b) || a >= c[0] && a <= c[1] }, equalTo: function (b, c, d) { var e = a(d); return this.settings.onfocusout && e.unbind(".validate-equalTo").bind("blur.validate-equalTo", function () { a(c).valid() }), b === e.val() }, remote: function (b, c, d) { if (this.optional(c)) return "dependency-mismatch"; var e, f, g = this.previousValue(c); return this.settings.messages[c.name] || (this.settings.messages[c.name] = {}), g.originalMessage = this.settings.messages[c.name].remote, this.settings.messages[c.name].remote = g.message, d = "string" == typeof d && { url: d } || d, g.old === b ? g.valid : (g.old = b, e = this, this.startRequest(c), f = {}, f[c.name] = b, a.ajax(a.extend(!0, { url: d, mode: "abort", port: "validate" + c.name, dataType: "json", data: f, context: e.currentForm, success: function (d) { var f, h, i, j = d === !0 || "true" === d; e.settings.messages[c.name].remote = g.originalMessage, j ? (i = e.formSubmitted, e.prepareElement(c), e.formSubmitted = i, e.successList.push(c), delete e.invalid[c.name], e.showErrors()) : (f = {}, h = d || e.defaultMessage(c, "remote"), f[c.name] = g.message = a.isFunction(h) ? h(b) : h, e.invalid[c.name] = !0, e.showErrors(f)), g.valid = j, e.stopRequest(c, j) } }, d)), "pending") } } }), a.format = function () { throw "$.format has been deprecated. Please use $.validator.format instead." }; var b, c = {}; a.ajaxPrefilter ? a.ajaxPrefilter(function (a, b, d) { var e = a.port; "abort" === a.mode && (c[e] && c[e].abort(), c[e] = d) }) : (b = a.ajax, a.ajax = function (d) { var e = ("mode" in d ? d : a.ajaxSettings).mode, f = ("port" in d ? d : a.ajaxSettings).port; return "abort" === e ? (c[f] && c[f].abort(), c[f] = b.apply(this, arguments), c[f]) : b.apply(this, arguments) }), a.extend(a.fn, { validateDelegate: function (b, c, d) { return this.bind(c, function (c) { var e = a(c.target); return e.is(b) ? d.apply(e, arguments) : void 0 }) } }) });
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -1,13 +1,11 @@
1
- require 'rack/test'
2
- require 'rspec'
3
- require 'capybara/rspec'
4
- require 'w3c_validators'
1
+ require 'minitest/autorun'
2
+ require 'capybara/minitest'
5
3
 
6
4
  require 'genevalidatorapp'
7
5
 
8
6
  # Basic unit tests for HTTP / Rack interface.
9
7
  module GeneValidatorApp
10
- include W3CValidators
8
+ # include W3CValidators
11
9
  describe 'Routes' do
12
10
  ENV['RACK_ENV'] = 'production'
13
11
  include Rack::Test::Methods
@@ -17,22 +15,22 @@ module GeneValidatorApp
17
15
  end
18
16
 
19
17
  let 'empty_config' do
20
- File.join(root, 'spec', 'empty_config.yml')
18
+ File.join(root, 'test', 'empty_config.yml')
21
19
  end
22
20
 
23
21
  let 'database_dir' do
24
- File.join(root, 'spec', 'database')
22
+ File.join(root, 'test', 'database')
25
23
  end
26
24
 
27
25
  before :each do
28
26
  GeneValidatorApp.init(config_file: empty_config,
29
27
  database_dir: database_dir)
30
28
 
31
- validations = %w(lenc lenr dup merge align frame orf)
29
+ validations = %w[lenc lenr dup merge align frame orf]
32
30
  sequence = 'AGCTAGCTAGCT'
33
31
  database = Database.first.name
34
32
 
35
- @params = {
33
+ @params = {
36
34
  'validations' => validations,
37
35
  'seq' => sequence,
38
36
  'database' => database
@@ -45,36 +43,37 @@ module GeneValidatorApp
45
43
 
46
44
  it 'should start the app' do
47
45
  get '/'
48
- last_response.ok?.should == true
46
+ assert_equal(true, last_response.ok?)
49
47
  end
50
48
 
51
49
  it 'returns Bad Request (400) if no sequence is provided' do
52
50
  @params.delete('seq')
53
51
  post '/', @params
54
- last_response.status.should == 400
52
+ assert_equal(400, last_response.status)
55
53
  end
56
54
 
57
55
  it 'returns Bad Request (400) if no validations is provided' do
58
56
  @params.delete('validations')
59
57
  post '/', @params
60
- last_response.status.should == 400
58
+ assert_equal(400, last_response.status)
61
59
  end
62
60
 
63
61
  it 'returns Bad Request (400) if no database is provided' do
64
62
  @params.delete('database')
65
63
  post '/', @params
66
- last_response.status.should == 400
64
+ assert_equal(400, last_response.status)
67
65
  end
68
66
 
69
- it 'validate the html' do
70
- get '/'
71
- html = last_response.body
72
-
73
- validator = MarkupValidator.new
74
- results = validator.validate_text(html)
75
-
76
- results.errors.each { |err| puts err.to_s } if results.errors.length > 0
77
- results.errors.length.should == 0
78
- end
67
+ # W3C_Validator Gem is broken - https://github.com/alexdunae/w3c_validators/issues/16
68
+ # it 'validate the html' do
69
+ # get '/'
70
+ # html = last_response.body
71
+
72
+ # validator = MarkupValidator.new
73
+ # results = validator.validate_text(html.to_s)
74
+ # results.errors.each { |err| puts err.to_s } if results.errors.length > 0
75
+ # puts results.errors
76
+ # results.errors.length.should == 0
77
+ # end
79
78
  end
80
79
  end
data/views/results.slim CHANGED
@@ -1,7 +1,7 @@
1
1
  h4 Overview
2
2
  #overview.text-left
3
3
  #overview_text
4
- button#overview_btn.btn.btn-primary.btn-sm data-toggle="button" onclick="GV.toggleOverviewBtn();"
4
+ button#overview_btn.btn.btn-primary.btn-sm data-toggle="button" onclick="GV.toggleOverviewBtn();" data-overviewjson="/GeneValidator/#{@gv_results[:unique_id]}/output/html_files/json/overview.json"
5
5
  br/
6
6
  hr/
7
7
  h4#results_header Results
@@ -34,7 +34,7 @@ table#sortable_table.table.table-striped.table-collapsed.table-bordered.table-co
34
34
  th.sorter-false.chart-column
35
35
  tbody
36
36
  - @json_results.each do |query|
37
- - json_file = "web_files/json/input_file.fa_#{query['idx']}.json"
37
+ - json_file = "/GeneValidator/#{@gv_results[:unique_id]}/output/html_files/json/input_file_#{query['idx']}.json"
38
38
  tr data-jsonfile="#{uri(json_file)}" data-target="toggle#{query['idx']}"
39
39
  td title="idx" = query['idx']
40
40
  td data-score="#{query['overall_score']}"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: genevalidatorapp
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.4
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Monica Dragan
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2016-09-13 00:00:00.000000000 Z
14
+ date: 2018-06-28 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: bundler
@@ -27,54 +27,6 @@ dependencies:
27
27
  - - "~>"
28
28
  - !ruby/object:Gem::Version
29
29
  version: '1.6'
30
- - !ruby/object:Gem::Dependency
31
- name: rake
32
- requirement: !ruby/object:Gem::Requirement
33
- requirements:
34
- - - "~>"
35
- - !ruby/object:Gem::Version
36
- version: '10.3'
37
- type: :development
38
- prerelease: false
39
- version_requirements: !ruby/object:Gem::Requirement
40
- requirements:
41
- - - "~>"
42
- - !ruby/object:Gem::Version
43
- version: '10.3'
44
- - !ruby/object:Gem::Dependency
45
- name: rspec
46
- requirement: !ruby/object:Gem::Requirement
47
- requirements:
48
- - - "~>"
49
- - !ruby/object:Gem::Version
50
- version: '2.8'
51
- - - ">="
52
- - !ruby/object:Gem::Version
53
- version: 2.8.0
54
- type: :development
55
- prerelease: false
56
- version_requirements: !ruby/object:Gem::Requirement
57
- requirements:
58
- - - "~>"
59
- - !ruby/object:Gem::Version
60
- version: '2.8'
61
- - - ">="
62
- - !ruby/object:Gem::Version
63
- version: 2.8.0
64
- - !ruby/object:Gem::Dependency
65
- name: rack-test
66
- requirement: !ruby/object:Gem::Requirement
67
- requirements:
68
- - - "~>"
69
- - !ruby/object:Gem::Version
70
- version: '0.6'
71
- type: :development
72
- prerelease: false
73
- version_requirements: !ruby/object:Gem::Requirement
74
- requirements:
75
- - - "~>"
76
- - !ruby/object:Gem::Version
77
- version: '0.6'
78
30
  - !ruby/object:Gem::Dependency
79
31
  name: capybara
80
32
  requirement: !ruby/object:Gem::Requirement
@@ -96,33 +48,33 @@ dependencies:
96
48
  - !ruby/object:Gem::Version
97
49
  version: 2.4.4
98
50
  - !ruby/object:Gem::Dependency
99
- name: w3c_validators
51
+ name: minitest
100
52
  requirement: !ruby/object:Gem::Requirement
101
53
  requirements:
102
54
  - - "~>"
103
55
  - !ruby/object:Gem::Version
104
- version: '1.1'
56
+ version: '5.10'
105
57
  type: :development
106
58
  prerelease: false
107
59
  version_requirements: !ruby/object:Gem::Requirement
108
60
  requirements:
109
61
  - - "~>"
110
62
  - !ruby/object:Gem::Version
111
- version: '1.1'
63
+ version: '5.10'
112
64
  - !ruby/object:Gem::Dependency
113
- name: genevalidator
65
+ name: rake
114
66
  requirement: !ruby/object:Gem::Requirement
115
67
  requirements:
116
68
  - - "~>"
117
69
  - !ruby/object:Gem::Version
118
- version: '1.6'
119
- type: :runtime
70
+ version: '12.3'
71
+ type: :development
120
72
  prerelease: false
121
73
  version_requirements: !ruby/object:Gem::Requirement
122
74
  requirements:
123
75
  - - "~>"
124
76
  - !ruby/object:Gem::Version
125
- version: '1.6'
77
+ version: '12.3'
126
78
  - !ruby/object:Gem::Dependency
127
79
  name: bio
128
80
  requirement: !ruby/object:Gem::Requirement
@@ -179,24 +131,9 @@ dependencies:
179
131
  - - "~>"
180
132
  - !ruby/object:Gem::Version
181
133
  version: '3.0'
182
- - !ruby/object:Gem::Dependency
183
- name: slop
184
- requirement: !ruby/object:Gem::Requirement
185
- requirements:
186
- - - "~>"
187
- - !ruby/object:Gem::Version
188
- version: '3.6'
189
- type: :runtime
190
- prerelease: false
191
- version_requirements: !ruby/object:Gem::Requirement
192
- requirements:
193
- - - "~>"
194
- - !ruby/object:Gem::Version
195
- version: '3.6'
196
134
  description: A Web App wrapper for GeneValidator, a program for validating gene predictions.
197
135
  email: y.wurm@qmul.ac.uk
198
- executables:
199
- - genevalidatorapp
136
+ executables: []
200
137
  extensions: []
201
138
  extra_rdoc_files: []
202
139
  files:
@@ -206,9 +143,7 @@ files:
206
143
  - LICENSE.txt
207
144
  - README.md
208
145
  - Rakefile
209
- - bin/genevalidatorapp
210
146
  - config.ru
211
- - docker/Dockerfile
212
147
  - genevalidatorapp.gemspec
213
148
  - lib/genevalidatorapp.rb
214
149
  - lib/genevalidatorapp/config.rb
@@ -242,34 +177,34 @@ files:
242
177
  - public/web_files/img/gene.png
243
178
  - public/web_files/js/GV_compiled_js.min.js
244
179
  - public/web_files/json/.gitkeep
245
- - spec/database/funky_ids/funky_ids.fa
246
- - spec/database/funky_ids/funky_ids.fa.nhr
247
- - spec/database/funky_ids/funky_ids.fa.nin
248
- - spec/database/funky_ids/funky_ids.fa.nog
249
- - spec/database/funky_ids/funky_ids.fa.nsd
250
- - spec/database/funky_ids/funky_ids.fa.nsi
251
- - spec/database/funky_ids/funky_ids.fa.nsq
252
- - spec/database/sample/proteins/Solenopsis_invicta/Sinvicta2-2-3.prot.subset.fasta
253
- - spec/database/sample/proteins/Solenopsis_invicta/Sinvicta2-2-3.prot.subset.fasta.phr
254
- - spec/database/sample/proteins/Solenopsis_invicta/Sinvicta2-2-3.prot.subset.fasta.pin
255
- - spec/database/sample/proteins/Solenopsis_invicta/Sinvicta2-2-3.prot.subset.fasta.pog
256
- - spec/database/sample/proteins/Solenopsis_invicta/Sinvicta2-2-3.prot.subset.fasta.psd
257
- - spec/database/sample/proteins/Solenopsis_invicta/Sinvicta2-2-3.prot.subset.fasta.psi
258
- - spec/database/sample/proteins/Solenopsis_invicta/Sinvicta2-2-3.prot.subset.fasta.psq
259
- - spec/database/sample/transcripts/Solenopsis_invicta/Sinvicta2-2-3.cdna.subset.fasta
260
- - spec/database/sample/transcripts/Solenopsis_invicta/Sinvicta2-2-3.cdna.subset.fasta.nhr
261
- - spec/database/sample/transcripts/Solenopsis_invicta/Sinvicta2-2-3.cdna.subset.fasta.nin
262
- - spec/database/sample/transcripts/Solenopsis_invicta/Sinvicta2-2-3.cdna.subset.fasta.nog
263
- - spec/database/sample/transcripts/Solenopsis_invicta/Sinvicta2-2-3.cdna.subset.fasta.nsd
264
- - spec/database/sample/transcripts/Solenopsis_invicta/Sinvicta2-2-3.cdna.subset.fasta.nsi
265
- - spec/database/sample/transcripts/Solenopsis_invicta/Sinvicta2-2-3.cdna.subset.fasta.nsq
266
- - spec/database/unformatted/Cardiocondyla_obscurior/Cobs1.4.proteins.fa
267
- - spec/database/without_parse_seqids/without_parse_seqids.fa
268
- - spec/database/without_parse_seqids/without_parse_seqids.fa.phr
269
- - spec/database/without_parse_seqids/without_parse_seqids.fa.pin
270
- - spec/database/without_parse_seqids/without_parse_seqids.fa.psq
271
- - spec/empty_config.yml
272
- - spec/route_spec.rb
180
+ - test/database/funky_ids/funky_ids.fa
181
+ - test/database/funky_ids/funky_ids.fa.nhr
182
+ - test/database/funky_ids/funky_ids.fa.nin
183
+ - test/database/funky_ids/funky_ids.fa.nog
184
+ - test/database/funky_ids/funky_ids.fa.nsd
185
+ - test/database/funky_ids/funky_ids.fa.nsi
186
+ - test/database/funky_ids/funky_ids.fa.nsq
187
+ - test/database/sample/proteins/Solenopsis_invicta/Sinvicta2-2-3.prot.subset.fasta
188
+ - test/database/sample/proteins/Solenopsis_invicta/Sinvicta2-2-3.prot.subset.fasta.phr
189
+ - test/database/sample/proteins/Solenopsis_invicta/Sinvicta2-2-3.prot.subset.fasta.pin
190
+ - test/database/sample/proteins/Solenopsis_invicta/Sinvicta2-2-3.prot.subset.fasta.pog
191
+ - test/database/sample/proteins/Solenopsis_invicta/Sinvicta2-2-3.prot.subset.fasta.psd
192
+ - test/database/sample/proteins/Solenopsis_invicta/Sinvicta2-2-3.prot.subset.fasta.psi
193
+ - test/database/sample/proteins/Solenopsis_invicta/Sinvicta2-2-3.prot.subset.fasta.psq
194
+ - test/database/sample/transcripts/Solenopsis_invicta/Sinvicta2-2-3.cdna.subset.fasta
195
+ - test/database/sample/transcripts/Solenopsis_invicta/Sinvicta2-2-3.cdna.subset.fasta.nhr
196
+ - test/database/sample/transcripts/Solenopsis_invicta/Sinvicta2-2-3.cdna.subset.fasta.nin
197
+ - test/database/sample/transcripts/Solenopsis_invicta/Sinvicta2-2-3.cdna.subset.fasta.nog
198
+ - test/database/sample/transcripts/Solenopsis_invicta/Sinvicta2-2-3.cdna.subset.fasta.nsd
199
+ - test/database/sample/transcripts/Solenopsis_invicta/Sinvicta2-2-3.cdna.subset.fasta.nsi
200
+ - test/database/sample/transcripts/Solenopsis_invicta/Sinvicta2-2-3.cdna.subset.fasta.nsq
201
+ - test/database/unformatted/Cardiocondyla_obscurior/Cobs1.4.proteins.fa
202
+ - test/database/without_parse_seqids/without_parse_seqids.fa
203
+ - test/database/without_parse_seqids/without_parse_seqids.fa.phr
204
+ - test/database/without_parse_seqids/without_parse_seqids.fa.pin
205
+ - test/database/without_parse_seqids/without_parse_seqids.fa.psq
206
+ - test/empty_config.yml
207
+ - test/test_route_spec.rb
273
208
  - views/500.slim
274
209
  - views/index.slim
275
210
  - views/layout.slim
@@ -297,7 +232,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
297
232
  requirements:
298
233
  - - ">="
299
234
  - !ruby/object:Gem::Version
300
- version: 2.0.0
235
+ version: 2.2.0
301
236
  required_rubygems_version: !ruby/object:Gem::Requirement
302
237
  requirements:
303
238
  - - ">="
@@ -305,37 +240,36 @@ required_rubygems_version: !ruby/object:Gem::Requirement
305
240
  version: '0'
306
241
  requirements: []
307
242
  rubyforge_project:
308
- rubygems_version: 2.4.8
243
+ rubygems_version: 2.7.6
309
244
  signing_key:
310
245
  specification_version: 4
311
246
  summary: A Web App wrapper for GeneValidator.
312
247
  test_files:
313
- - spec/database/funky_ids/funky_ids.fa
314
- - spec/database/funky_ids/funky_ids.fa.nhr
315
- - spec/database/funky_ids/funky_ids.fa.nin
316
- - spec/database/funky_ids/funky_ids.fa.nog
317
- - spec/database/funky_ids/funky_ids.fa.nsd
318
- - spec/database/funky_ids/funky_ids.fa.nsi
319
- - spec/database/funky_ids/funky_ids.fa.nsq
320
- - spec/database/sample/proteins/Solenopsis_invicta/Sinvicta2-2-3.prot.subset.fasta
321
- - spec/database/sample/proteins/Solenopsis_invicta/Sinvicta2-2-3.prot.subset.fasta.phr
322
- - spec/database/sample/proteins/Solenopsis_invicta/Sinvicta2-2-3.prot.subset.fasta.pin
323
- - spec/database/sample/proteins/Solenopsis_invicta/Sinvicta2-2-3.prot.subset.fasta.pog
324
- - spec/database/sample/proteins/Solenopsis_invicta/Sinvicta2-2-3.prot.subset.fasta.psd
325
- - spec/database/sample/proteins/Solenopsis_invicta/Sinvicta2-2-3.prot.subset.fasta.psi
326
- - spec/database/sample/proteins/Solenopsis_invicta/Sinvicta2-2-3.prot.subset.fasta.psq
327
- - spec/database/sample/transcripts/Solenopsis_invicta/Sinvicta2-2-3.cdna.subset.fasta
328
- - spec/database/sample/transcripts/Solenopsis_invicta/Sinvicta2-2-3.cdna.subset.fasta.nhr
329
- - spec/database/sample/transcripts/Solenopsis_invicta/Sinvicta2-2-3.cdna.subset.fasta.nin
330
- - spec/database/sample/transcripts/Solenopsis_invicta/Sinvicta2-2-3.cdna.subset.fasta.nog
331
- - spec/database/sample/transcripts/Solenopsis_invicta/Sinvicta2-2-3.cdna.subset.fasta.nsd
332
- - spec/database/sample/transcripts/Solenopsis_invicta/Sinvicta2-2-3.cdna.subset.fasta.nsi
333
- - spec/database/sample/transcripts/Solenopsis_invicta/Sinvicta2-2-3.cdna.subset.fasta.nsq
334
- - spec/database/unformatted/Cardiocondyla_obscurior/Cobs1.4.proteins.fa
335
- - spec/database/without_parse_seqids/without_parse_seqids.fa
336
- - spec/database/without_parse_seqids/without_parse_seqids.fa.phr
337
- - spec/database/without_parse_seqids/without_parse_seqids.fa.pin
338
- - spec/database/without_parse_seqids/without_parse_seqids.fa.psq
339
- - spec/empty_config.yml
340
- - spec/route_spec.rb
341
- has_rdoc:
248
+ - test/database/funky_ids/funky_ids.fa
249
+ - test/database/funky_ids/funky_ids.fa.nhr
250
+ - test/database/funky_ids/funky_ids.fa.nin
251
+ - test/database/funky_ids/funky_ids.fa.nog
252
+ - test/database/funky_ids/funky_ids.fa.nsd
253
+ - test/database/funky_ids/funky_ids.fa.nsi
254
+ - test/database/funky_ids/funky_ids.fa.nsq
255
+ - test/database/sample/proteins/Solenopsis_invicta/Sinvicta2-2-3.prot.subset.fasta
256
+ - test/database/sample/proteins/Solenopsis_invicta/Sinvicta2-2-3.prot.subset.fasta.phr
257
+ - test/database/sample/proteins/Solenopsis_invicta/Sinvicta2-2-3.prot.subset.fasta.pin
258
+ - test/database/sample/proteins/Solenopsis_invicta/Sinvicta2-2-3.prot.subset.fasta.pog
259
+ - test/database/sample/proteins/Solenopsis_invicta/Sinvicta2-2-3.prot.subset.fasta.psd
260
+ - test/database/sample/proteins/Solenopsis_invicta/Sinvicta2-2-3.prot.subset.fasta.psi
261
+ - test/database/sample/proteins/Solenopsis_invicta/Sinvicta2-2-3.prot.subset.fasta.psq
262
+ - test/database/sample/transcripts/Solenopsis_invicta/Sinvicta2-2-3.cdna.subset.fasta
263
+ - test/database/sample/transcripts/Solenopsis_invicta/Sinvicta2-2-3.cdna.subset.fasta.nhr
264
+ - test/database/sample/transcripts/Solenopsis_invicta/Sinvicta2-2-3.cdna.subset.fasta.nin
265
+ - test/database/sample/transcripts/Solenopsis_invicta/Sinvicta2-2-3.cdna.subset.fasta.nog
266
+ - test/database/sample/transcripts/Solenopsis_invicta/Sinvicta2-2-3.cdna.subset.fasta.nsd
267
+ - test/database/sample/transcripts/Solenopsis_invicta/Sinvicta2-2-3.cdna.subset.fasta.nsi
268
+ - test/database/sample/transcripts/Solenopsis_invicta/Sinvicta2-2-3.cdna.subset.fasta.nsq
269
+ - test/database/unformatted/Cardiocondyla_obscurior/Cobs1.4.proteins.fa
270
+ - test/database/without_parse_seqids/without_parse_seqids.fa
271
+ - test/database/without_parse_seqids/without_parse_seqids.fa.phr
272
+ - test/database/without_parse_seqids/without_parse_seqids.fa.pin
273
+ - test/database/without_parse_seqids/without_parse_seqids.fa.psq
274
+ - test/empty_config.yml
275
+ - test/test_route_spec.rb