forked from fkling/JSNetworkX
-
Notifications
You must be signed in to change notification settings - Fork 0
/
jsnetworkx.js
166 lines (166 loc) · 76.3 KB
/
jsnetworkx.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
(function(global, factory) { function extractNS(){ var g = {}; return factory.call(g, global),g.jsnx;} if(typeof define === 'function' && define.amd){ /*AMD*/ define(extractNS); } else if (typeof module !== 'undefined' && module.exports){ /*node*/ module.exports = extractNS(); } else { factory.call(global, global); } }(this, function(window) {function h(a){throw a;}var aa=void 0,k=!0,l=null,n=!1;function da(a){return function(){return a}}var q,ea=this;function fa(){}
function r(a){var b=typeof a;if("object"==b)if(a){if(a instanceof Array)return"array";if(a instanceof Object)return b;var c=Object.prototype.toString.call(a);if("[object Window]"==c)return"object";if("[object Array]"==c||"number"==typeof a.length&&"undefined"!=typeof a.splice&&"undefined"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable("splice"))return"array";if("[object Function]"==c||"undefined"!=typeof a.call&&"undefined"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable("call"))return"function"}else return"null";
else if("function"==b&&"undefined"==typeof a.call)return"object";return b}function s(a){return a!==aa}function ga(a){return"array"==r(a)}function t(a){var b=r(a);return"array"==b||"object"==b&&"number"==typeof a.length}function u(a){return"string"==typeof a}function ia(a){return"boolean"==typeof a}function ja(a){return"number"==typeof a}function ka(a){return"function"==r(a)}function la(a){var b=typeof a;return"object"==b&&a!=l||"function"==b}var ma="closure_uid_"+(1E9*Math.random()>>>0),na=0;
function oa(a,b,c){return a.call.apply(a.bind,arguments)}function pa(a,b,c){a||h(Error());if(2<arguments.length){var d=Array.prototype.slice.call(arguments,2);return function(){var c=Array.prototype.slice.call(arguments);Array.prototype.unshift.apply(c,d);return a.apply(b,c)}}return function(){return a.apply(b,arguments)}}function qa(a,b,c){qa=Function.prototype.bind&&-1!=Function.prototype.bind.toString().indexOf("native code")?oa:pa;return qa.apply(l,arguments)}
function v(a,b){var c=a.split("."),d=ea;!(c[0]in d)&&d.execScript&&d.execScript("var "+c[0]);for(var e;c.length&&(e=c.shift());)!c.length&&s(b)?d[e]=b:d=d[e]?d[e]:d[e]={}}function ra(a,b){function c(){}c.prototype=b.prototype;a.Wa=b.prototype;a.prototype=new c;a.prototype.constructor=a};var y=Array.prototype,sa=y.indexOf?function(a,b,c){return y.indexOf.call(a,b,c)}:function(a,b,c){c=c==l?0:0>c?Math.max(0,a.length+c):c;if(u(a))return!u(b)||1!=b.length?-1:a.indexOf(b,c);for(;c<a.length;c++)if(c in a&&a[c]===b)return c;return-1},z=y.forEach?function(a,b,c){y.forEach.call(a,b,c)}:function(a,b,c){for(var d=a.length,e=u(a)?a.split(""):a,f=0;f<d;f++)f in e&&b.call(c,e[f],f,a)},ta=y.filter?function(a,b,c){return y.filter.call(a,b,c)}:function(a,b,c){for(var d=a.length,e=[],f=0,g=u(a)?a.split(""):
a,m=0;m<d;m++)if(m in g){var p=g[m];b.call(c,p,m,a)&&(e[f++]=p)}return e},ua=y.map?function(a,b,c){return y.map.call(a,b,c)}:function(a,b,c){for(var d=a.length,e=Array(d),f=u(a)?a.split(""):a,g=0;g<d;g++)g in f&&(e[g]=b.call(c,f[g],g,a));return e};function va(a,b){if(a.reduce)return a.reduce(b,0);var c=0;z(a,function(d,e){c=b.call(aa,c,d,e,a)});return c}
function ya(a,b){var c;a:{c=a.length;for(var d=u(a)?a.split(""):a,e=0;e<c;e++)if(e in d&&b.call(aa,d[e],e,a)){c=e;break a}c=-1}return 0>c?l:u(a)?a.charAt(c):a[c]}function za(a,b){var c=sa(a,b);0<=c&&y.splice.call(a,c,1)}function Aa(a){return y.concat.apply(y,arguments)}function Ea(a){var b=a.length;if(0<b){for(var c=Array(b),d=0;d<b;d++)c[d]=a[d];return c}return[]}function Fa(a,b,c,d){y.splice.apply(a,Ga(arguments,1))}
function Ga(a,b,c){return 2>=arguments.length?y.slice.call(a,b):y.slice.call(a,b,c)}function Ha(a,b,c){if(!t(a)||!t(b)||a.length!=b.length)return n;var d=a.length;c=c||Ma;for(var e=0;e<d;e++)if(!c(a[e],b[e]))return n;return k}function Na(a,b){return a>b?1:a<b?-1:0}function Ma(a,b){return a===b}function Oa(a){for(var b=[],c=0;c<a;c++)b[c]=0;return b}
function Pa(a){if(!arguments.length)return[];for(var b=[],c=0;;c++){for(var d=[],e=0;e<arguments.length;e++){var f=arguments[e];if(c>=f.length)return b;d.push(f[c])}b.push(d)}};var A="StopIteration"in ea?ea.StopIteration:Error("StopIteration");function B(){}B.prototype.next=function(){h(A)};B.prototype.I=function(){return this};function Qa(a){if(a instanceof B)return a;if("function"==typeof a.I)return a.I(n);if(t(a)){var b=0,c=new B;c.next=function(){for(;;){b>=a.length&&h(A);if(b in a)return a[b++];b++}};return c}h(Error("Not implemented"))}
function C(a,b,c){if(t(a))try{z(a,b,c)}catch(d){d!==A&&h(d)}else{a=Qa(a);try{for(;;)b.call(c,a.next(),aa,a)}catch(e){e!==A&&h(e)}}}function Sa(a,b,c){var d=Qa(a);a=new B;a.next=function(){for(;;){var a=d.next();return b.call(c,a,aa,d)}};return a}function Ta(a,b,c){var d=c;C(a,function(a){d=b.call(aa,d,a)});return d}function Ua(a){var b=arguments,c=b.length,d=0,e=new B;e.next=function(){try{return d>=c&&h(A),Qa(b[d]).next()}catch(a){return(a!==A||d>=c)&&h(a),d++,this.next()}};return e}
function Va(a){if(t(a))return Ea(a);a=Qa(a);var b=[];C(a,function(a){b.push(a)});return b}function Wa(a,b){try{return Qa(a).next()}catch(c){return c!=A&&h(c),b}};function D(a,b,c){for(var d in a)b.call(c,a[d],d,a)}function Xa(a,b,c){var d={},e;for(e in a)d[e]=b.call(c,a[e],e,a);return d}function E(a){var b=0,c;for(c in a)b++;return b}function Ya(a){for(var b in a)return b}function Za(a){var b=[],c=0,d;for(d in a)b[c++]=a[d];return b}function G(a){var b=[],c=0,d;for(d in a)b[c++]=d;return b}function $a(a){for(var b in a)return n;return k}function ab(a){for(var b in a)delete a[b]}function H(a,b){b in a&&delete a[b]}function I(a,b,c){return b in a?a[b]:c}
function bb(a){var b={},c;for(c in a)b[c]=a[c];return b}var cb="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" ");function J(a,b){for(var c,d,e=1;e<arguments.length;e++){d=arguments[e];for(c in d)a[c]=d[c];for(var f=0;f<cb.length;f++)c=cb[f],Object.prototype.hasOwnProperty.call(d,c)&&(a[c]=d[c])}}
function gb(a){var b=arguments.length;if(1==b&&ga(arguments[0]))return gb.apply(l,arguments[0]);b%2&&h(Error("Uneven number of arguments"));for(var c={},d=0;d<b;d+=2)c[arguments[d]]=arguments[d+1];return c};var K={Ra:function(a){return Math.floor(Math.random()*a)},Xa:function(a,b){return a+Math.random()*(b-a)},La:function(a,b,c){return Math.min(Math.max(a,b),c)},Ca:function(a,b){var c=a%b;return 0>c*b?c+b:c},Oa:function(a,b,c){return a+c*(b-a)},Qa:function(a,b,c){return Math.abs(a-b)<=(c||1E-6)},ea:function(a){return K.Ca(a,360)},oa:function(a){return a*Math.PI/180},Ha:function(a){return 180*a/Math.PI},Ja:function(a,b){return b*Math.cos(K.oa(a))},Ka:function(a,b){return b*Math.sin(K.oa(a))},ga:function(a,
b,c,d){return K.ea(K.Ha(Math.atan2(d-b,c-a)))},Ia:function(a,b){var c=K.ea(b)-K.ea(a);180<c?c-=360:-180>=c&&(c=360+c);return c},Ua:function(a){return 0==a?0:0>a?-1:1},Pa:function(a,b,c,d){c=c||function(a,b){return a==b};d=d||function(b){return a[b]};for(var e=a.length,f=b.length,g=[],m=0;m<e+1;m++)g[m]=[],g[m][0]=0;for(var p=0;p<f+1;p++)g[0][p]=0;for(m=1;m<=e;m++)for(p=1;p<=e;p++)c(a[m-1],b[p-1])?g[m][p]=g[m-1][p-1]+1:g[m][p]=Math.max(g[m-1][p],g[m][p-1]);for(var x=[],m=e,p=f;0<m&&0<p;)c(a[m-1],b[p-
1])?(x.unshift(d(m-1,p-1)),m--,p--):g[m-1][p]>g[m][p-1]?m--:p--;return x},t:function(a){return va(arguments,function(a,c){return a+c})},va:function(a){return K.t.apply(l,arguments)/arguments.length},Va:function(a){var b=arguments.length;if(2>b)return 0;var c=K.va.apply(l,arguments),b=K.t.apply(l,ua(arguments,function(a){return Math.pow(a-c,2)}))/(b-1);return Math.sqrt(b)},Na:function(a){return isFinite(a)&&0==a%1},Ma:function(a){return isFinite(a)&&!isNaN(a)},Ta:function(a,b){return Math.floor(a+
(b||2E-15))},Sa:function(a,b){return Math.ceil(a-(b||2E-15))}};v("jsnx.filter",function(a,b,c){var d=Qa(a);a=new B;a.next=function(){for(;;){var a=d.next();if(b.call(c,a,aa,d))return a}};return a});function hb(a){return Ta(L(a),function(a,c){a[c[0]]=c[1];return a},{})}function ib(a){return a!=l&&(a instanceof B||ka(a.I))}function jb(a){if(a instanceof N)return a.M();if(u(a)||t(a))return a.length;if(kb(a))return E(a);h(new TypeError)}
function O(a,b,c,d){ia(c)&&(d=c,c=l);if(d){var e=b;b=function(a){e.apply(this,a)}}a instanceof N?C(L(a),b,c):ib(a)?C(a,b,c):t(a)||u(a)?z(a,b,c):la(a)&&O(G(a),b,c)}v("jsnx.forEach",O);function P(a,b,c){if(a instanceof N)return P(L(a),b,c);if(t(a))return ua(a,b,c);if(ib(a))return Sa(a,b,c);if(la(a))return Xa(a,b,c);h(new TypeError)}v("jsnx.map",P);
function lb(a){var b=arguments,c=b[0];if(t(c))return Pa.apply(l,b);if(ib(c)){var c=new B,d=b.length;c.next=function(){for(var a=[],c=0;c<d;c++)a.push(b[c].next());return a};return c}if(la(c))return Pa.apply(l,ua(b,G));h(new TypeError)}function mb(a,b){a=ka(b)?Q(P(a,function(){return b.apply(l,arguments)})):Q(a);return Math.max.apply(l,a)}
function R(a,b,c){if(0===arguments.length)return Qa([]);1===arguments.length?(b=a,a=0,c=1):2===arguments.length?c=1:3===arguments.length&&0===arguments[2]&&h("range() step argument must not be zero");var d=new B,e=0>c,f=a,g;d.next=function(){(e&&f<=b||!e&&f>=b)&&h(A);g=f;f+=c;return g};return d}
function nb(a){var b=Q(a),c=b.length;if(2>c)return new B;var d=Q(R(2));a=new B;a.next=function(){var a=ua(d,function(a){return b[a]});this.next=function(){var a=n,e;for(e=2;e--;)if(d[e]!=e+c-2){a=k;break}a||h(A);d[e]+=1;for(a=e+1;2>a;a++)d[a]=d[a-1]+1;return ua(d,function(a){return b[a]})};return a};return a}
function ob(a){var b=Q(a),c=b.length,d=ja(2)?2:c;if(d>c)return new B;var e=Q(R(c)),f=Q(R(c,c-d,-1));a=new B;var g=new B,m,p=k;a.next=function(){this.next=m.next;return ua(e.slice(0,d),function(a){return b[a]})};g.next=function(){return p};m=S(g,function(a){a||h(A);p=n;return R(d-1,-1,-1)},function(a){if(!p)if(f[a]-=1,0===f[a])e.splice.apply(e,[a,e.length].concat(e.slice(a+1).concat([e[a]]))),f[a]=c-a;else{var g=f[a],m=e[a];e[a]=e[e.length-g];e[e.length-g]=m;p=k;return L([ua(e.slice(0,d),function(a){return b[a]})])}},
function(a){return a});return a}function pb(a,b){for(var c,d,e=1;e<arguments.length;e++){d=arguments[e];for(c in d)!s(a[c])||"object"!==r(a[c])?a[c]=T(d[c]):"object"===r(a[c])&&"object"===r(d)&&pb(a[c],d[c]);for(var f=0;f<cb.length;f++)c=cb[f],Object.prototype.hasOwnProperty.call(d,c)&&(!s(a[c])||"object"!==r(a[c])?a[c]=T(d[c]):"object"===r(a[c])&&"object"===r(d)&&pb(a[c],d[c]))}}
function Q(a){if(a instanceof N)return Q(L(a));if(t(a))return Ea(a);if(ib(a))return Va(a);if(la(a))return G(a);h(new TypeError)}v("jsnx.toArray",Q);function qb(a){var b=[];D(a,function(a,d){b.push([d,a])});return b}function U(a){var b=new B,c=Qa(G(a));b.next=function(){var b=c.next();return[b,a[b]]};return b}function L(a){if(a instanceof N)return L(a.adj);"object"===r(a)&&(!t(a)&&!ib(a))&&(a=G(a));return Qa(a)}
function S(a,b){var c=new B,d=Ga(arguments,1);if(0===d.length)return a;try{a=Qa(a)}catch(e){return c.next=function(){"Not implemented"===e.message&&h(new TypeError)},c}var f=0,g=d.length,m=[a];c.next=function(){do try{var a,b;do a=m[f].next(),s(a)&&(b=d[f](a));while(!s(a));if(ib(b)){if(f===g-1)return b;m.push(b);f+=1}else if(s(b))return b}catch(c){c!==A&&h(c),0<f?(m.pop(),f-=1):h(c)}while(1)};return c}v("jsnx.sentinelIterator",function(a,b){var c=new B;c.next=function(){return Wa(a,b)};return c});
function kb(a){var b=Object.prototype.hasOwnProperty;if(!a||"object"!==r(a)||a.nodeType||a==a.window)return n;try{if(a.constructor&&!b.call(a,"constructor")&&!b.call(a.constructor.prototype,"isPrototypeOf"))return n}catch(c){return n}for(var d in a);return d===aa||b.call(a,d)}
function T(a,b){b=b||[];var c=r(a);if("object"==c&&kb(a)||"array"==c){var d=ya(b,function(b){return a===b[0]});if(d!==l)return d[1];if(a.$)return d=[a,a.$()],b.push(d),d[1];c="array"==c?[]:{};d=[a,c];b.push(d);for(var e in a)c[e]=T(a[e],b);return c}return a}function rb(a){function b(){}var c={},d;b.prototype=a.constructor.prototype;for(d in a)a.hasOwnProperty(d)&&(c[d]=a[d]);c=T(c);a=new b;for(d in c)a[d]=c[d];return a}var tb=function sb(b,c){return 0===c?b:sb(c,b%c)};var ub,vb=l,wb="add_node add_nodes_from add_edge add_edges_from remove_node remove_nodes_from remove_edge remove_edges_from clear".split(" ");
v("jsnx.draw",function(a,b,c){function d(){wa.g.attr("transform",function(a){return["translate(",a.x,",",a.y,")scale(",ha,")"].join("")});bc()}ia(b)&&(c=b,b=l);b=b||vb||{};var e=b.d3||window.d3,f={};pb(f,xb,b);vb=b;e||h(Error("D3 requried for draw()"));f.element==l&&ub==l&&h(Error("Output element required for draw()"));ub=I(f,"element",ub);e.select(ub).select("svg.jsnx").remove();var g=e.select(ub),m=g.append("svg").classed("jsnx",k).attr("pointer-events","all"),p=m.append("g");b=p.append("g").classed("edges",
k).selectAll("g.edge");var x=p.append("g").classed("nodes",k).selectAll("g.node"),w=e.layout.force(),F=f.width||parseInt(g.style("width"),10),M=f.height||parseInt(g.style("height"),10),Ia=f.layout_attr,g=f.nodelist||l,ba,ca,X,Ba=a.c(),xa=f.weighted,wa={g:x,h:b};if(f.with_labels){var Ca=f.labels;ba="object"===r(Ca)?function(a){return I(Ca,a.node,"")}:ka(Ca)?Ca:u(Ca)?function(a){return a.data[Ca]}:function(a){return a.node}}f.labels=ba;if(xa){var Ja=f.weights;X="object"===r(Ja)?function(a){return I(Ja,
a.node,1)}:ka(Ja)?Ja:u(Ja)?function(a){return I(a.data,Ja,1)}:da(1)}if(f.with_edge_labels){var Ka=f.edge_labels;ca=xa&&!s(Ka)?X:"object"===r(Ka)?function(a){return I(Ca,a.node,"")}:ka(Ka)?Ka:u(Ka)?function(a){return a.data[Ka]}:function(a){return a.edge};f.edge_labels=ca}if(xa&&f.weighted_stroke){var xa=Ta(a.f(l,k),function(a,b){b=X({data:b[2]});return a>b?a:b},0),xd=e.scale.linear().range([2,f.edge_style["stroke-width"]]).domain([0,xa]);f.edge_style["stroke-width"]=function(a){return xd(X.call(this,
a))}}m.select("svg.jsnx").remove();m.attr("width",F+"px").attr("height",M+"px").style("opacity",1E-6).transition().duration(1E3).style("opacity",1);var yd={size:k,nodes:k,links:k,start:k};O(Ia,function(a){if(!(a in yd))w[a](Ia[a])});w.nodes([]).links([]).size([F,M]);var Ra=1,ha=1;if(f.pan_zoom.enabled){var cc=f.pan_zoom.scale;(function(){var a=n,b=1,c=Ra;m.call(e.behavior.zoom().on("zoom",function(){var f=e.event.sourceEvent.shiftKey;(f=cc&&f||!(cc||f))&&!a?(b=e.event.scale,c=Ra,a=k):!f&&a&&(a=n);
Ra=f?c*(e.event.scale/b):Ra;ha=!f?Ra/e.event.scale:ha;f=e.event.translate;p.attr("transform","translate("+f[0]+","+f[1]+")scale("+e.event.scale+")");d()}))})()}var bc=fa,Da=f.edge_offset,db=f.node_attr.r,eb=f.node_style["stroke-width"];"circle"===f.node_shape?(ka(db)||(db=function(){return f.node_attr.r}),ka(eb)||(eb=function(){return f.node_style["stroke-width"]}),Da=function(a){return[db(a.source)+eb(a.source),db(a.target)+eb(a.target)]}):(ga(Da)&&(Da=function(){return f.edge_offset}),ja(Da)&&(Da=
function(){return[f.edge_offset,f.edge_offset]}));var La=f.edge_style["stroke-width"];ka(La)||(La=function(){return f.edge_style["stroke-width"]});var fb=f.edge_label_offset,bc=Ba?function(){wa.h.each(function(a){if(a.source!==a.target){var b=e.select(this),c=a.source.x,d=a.source.y,f=a.target.x,g=a.target.y,m=K.ga(c,d,f,g),f=Math.sqrt(Math.pow(f-c,2)+Math.pow(g-d,2)),g=Da(a),g=[g[0]*ha,g[1]*ha];b.attr("transform",["translate(",c,",",d,")rotate(",m,")"].join(""));c=La(a)*ha;d=f-g[1]-2*c;m=c/2;b.select(".line").attr("d",
["M",g[0],0,"L",g[0],-m,"L",d,-m,"L",d,-c,"L",f-g[1],0,"z"].join(" "));c=1/ha;b.select("text").attr("x",fb.x*c+g[0]+(f*c-g[0]-g[1])/2).attr("y",-La(a)/2+-fb.y*c).attr("transform","scale("+ha+")")}})}:function(){wa.h.each(function(a){if(a.source!==a.target){var b=e.select(this),c=a.source.x,d=a.source.y,g=a.target.x,m=a.target.y,p=K.ga(c,d,g,m),g=Math.sqrt(Math.pow(g-c,2)+Math.pow(m-d,2)),m=g/2,x=Da(a),x=[x[0]*ha,x[1]*ha],w=1/ha,F=La(a)*ha,M=90<p&&279>p;b.attr("transform",["translate(",c,",",d,")rotate(",
p,")"].join(""));b.select(".line").attr("d",["M",x[0],F/4,"L",x[0],-F/4,"L",g-x[1],-F/4,"L",g-x[1],F/4,"z"].join(" "));f.with_edge_labels&&b.select("text").attr("x",(M?1:-1)*fb.x*w+x[0]+(g*w-x[0]-x[1])/2).attr("y",-La(a)/4+-fb.y*w).attr("transform","scale("+ha+")"+(M?"rotate(180,"+m*(1/ha)+",0)":""))}})};w.on("tick",d);F=a.v();M=a.f();g&&(c=n,F=a.d(g),M=a.f(g));wa.g=yb(a,F,w,x,f.node_shape,ba);wa.h=zb(a,M,w,b,ca);Ab(wa.g,{attr:f.node_attr,style:f.node_style,U:f.label_style,T:f.label_attr},f.with_labels);
Bb(wa.h,{attr:f.edge_attr,style:f.edge_style,U:f.edge_label_style,T:f.edge_label_attr},f.with_edge_labels,l,Ba);c?Cb(a,w,f,wa):a.bound?Db(a):Eb(a);w.start();return w});function yb(a,b,c,d,e,f){var g=c.nodes();O(b,function(b){var c=a.node[b];b={node:b,data:c,G:a};g.push(b);c.__d3datum__=b});d=d.data(g,Fb);b=d.enter().append("g").classed("node",k).call(c.drag);b.append(e).classed("node-shape",k);f&&b.append("text").text(f);return d}
function zb(a,b,c,d,e){var f=c.links();O(b,function(b){var c=b[0],d=b[1];b=b[2]||a.P(c,d);c={edge:[c,d],redge:[d,c],source:a.node[c].__d3datum__,target:a.node[d].__d3datum__,data:b,G:a};f.push(c);b.__d3datum__=c});d=d.data(f,Gb);b=d.enter().append("g").classed("edge",k);b.append("path").classed("line",k);e&&b.append("text").text(e);return d}
function Ab(a,b,c,d){if(d!=l){var e={};O(d,function(a){e[t(a)?a[0]:a]=k});a=a.filter(function(a){return a.node in e})}var f=a.selectAll(".node-shape");D(b.attr,function(a,b){f.attr(b,a)});D(b.style,function(a,b){f.style(b,a)});if(c){var g=a.selectAll("text");D(b.T,function(a,b){g.attr(b,a)});D(b.U,function(a,b){g.style(b,a)})}}
function Bb(a,b,c,d,e){if(d!=l){var f={};O(d,function(a){f[[a[0],a[1]]]=k});a=a.filter(function(a){return a.edge in f||e||a.redge in f})}var g=a.selectAll(".line");D(b.attr,function(a,b){g.attr(b,a)});D(b.style,function(a,b){"stroke-width"!=b&&g.style(b,a)});g.style("stroke-width",0);if(c){var m=a.selectAll("text");D(b.T,function(a,b){m.attr(b,a)});D(b.U,function(a,b){m.style(b,a)})}}function Fb(a){return a.node}function Gb(a){return a.edge}
function Hb(a,b,c,d){var e=c.nodes();O(a.d(b),function(b){za(e,a.node[b].__d3datum__)});d=d.data(e,Fb);d.exit().remove();return d}function Ib(a,b,c,d){var e=c.links();O(b,function(b){za(e,I(a.P(b[0],b[1],{}),"__d3datum__",l))});d=d.data(e,Gb);d.exit().remove();return d}
function Cb(a,b,c,d){Db(a,n);var e=a.constructor.prototype,f=c.node_shape,g={attr:c.node_attr,style:c.node_style,T:c.label_attr,U:c.label_style},m={attr:c.edge_attr,style:c.edge_style,T:c.edge_label_attr,U:c.edge_label_style},p=c.labels,x=c.edge_labels,w=c.with_labels,F=c.with_edge_labels,M=a.c();a.add_node=a.D=function(a){var c=!this.l(a);e.add_node.apply(this,arguments);c&&(d.g=yb(this,[a],b,d.g,f,p));Ab(d.g,g,w,[a]);b.start()};a.add_nodes_from=a.j=function(a){var c=ta(Q(a),function(a){return!this.l(t(a)?
a[0]:a)},this);e.add_nodes_from.apply(this,arguments);0<c.length&&(d.g=yb(this,c,b,d.g,f,p));Ab(d.g,g,w,a);b.start()};a.add_edge=a.a=function(c,ba){var ca=!this.J(c,ba),X=[];ca&&(X=ta(c==ba?[c]:[c,ba],function(a){return!this.l(a)},this));e.add_edge.apply(a,arguments);0<X.length&&(d.g=yb(this,X,b,d.g,f,p),Ab(d.g,g,w,X));ca&&(d.h=zb(this,[[c,ba]],b,d.h,x));Bb(d.h,m,F,[[c,ba]],M);b.start()};a.add_edges_from=a.b=function(c){var M=[],ca=[],X={},Ba={},xa=this.c();O(c,function(a){var b=a[0];a=a[1];if(!this.J(b,
a)&&!([b,a]in X)&&(xa||!([a,b]in X)))M.push([b,a]),X[[b,a]]=k,!this.l(b)&&!(b in Ba)&&(ca.push(b),Ba[b]=k),!this.l(a)&&!(a in Ba)&&(ca.push(a),Ba[a]=k)},this);e.add_edges_from.apply(a,arguments);0<ca.length&&(d.g=yb(this,ca,b,d.g,f,p),Ab(d.g,g,w,ca));0<M.length&&(d.h=zb(this,M,b,d.h,x));Bb(d.h,m,F,M,xa);b.start()};a.remove_node=a.N=function(c){try{if(this.l(c)){d.g=Hb(this,[c],b,d.g);var f=this.f([c]);this.c()&&(f=Ua(f,this.H([c])));d.h=Ib(this,f,b,d.h);b.resume()}}catch(g){}e.remove_node.apply(a,
arguments)};a.remove_nodes_from=a.X=function(c){try{d.g=Hb(this,c,b,d.g);var f=this.f(c);this.c()&&(f=Ua(f,this.H(c)));d.h=Ib(this,f,b,d.h);b.resume()}catch(g){}e.remove_nodes_from.apply(a,arguments)};a.remove_edge=a.u=function(c,f){try{d.h=Ib(this,[[c,f]],b,d.h),b.resume()}catch(g){}e.remove_edge.apply(a,arguments)};a.remove_edges_from=a.B=function(c){try{d.h=Ib(this,c,b,d.h),b.resume()}catch(f){}e.remove_edges_from.apply(a,arguments)};a.clear=a.clear=function(){d.g=d.g.data([],Fb);d.g.exit().remove();
d.h=d.h.data([],Gb);d.h.exit().remove();b.nodes([]).links([]).resume();e.clear.apply(a,arguments)};a.bound=k}v("jsnx.is_bound",function(a){return a.bound});function Db(a,b){if(a.bound){var c=a.constructor.prototype;z(wb,function(b){a[b]=c[b]});delete a.bound;(!s(b)||b)&&Eb(a)}}v("jsnx.unbind",Db);function Eb(a){O(a.v(k),function(a){H(a[1],"__d3datum__")});O(a.f(l,k),function(a){H(a[2],"__d3datum__")})}
var xb={layout_attr:{charge:-120,linkDistance:60},node_shape:"circle",node_attr:{r:10},node_style:{"stroke-width":2,stroke:"#333",fill:"#999",cursor:"pointer"},edge_attr:{},edge_style:{fill:"#000","stroke-width":3},label_attr:{},label_style:{"text-anchor":"middle","dominant-baseline":"central",cursor:"pointer","-webkit-user-select":"none",fill:"#000"},edge_label_attr:{},edge_label_style:{"font-size":"0.8em","text-anchor":"middle","-webkit-user-select":"none"},edge_label_offset:{x:0,y:0.5},with_labels:n,
with_edge_labels:n,edge_offset:10,weighted:n,weights:"weight",weighted_stroke:k,pan_zoom:{enabled:k,scale:k}};function Jb(a){if("function"==typeof a.F)return a.F();if(u(a))return a.split("");if(t(a)){for(var b=[],c=a.length,d=0;d<c;d++)b.push(a[d]);return b}return Za(a)};function Kb(a,b){this.k={};this.n=[];var c=arguments.length;if(1<c){c%2&&h(Error("Uneven number of arguments"));for(var d=0;d<c;d+=2)this.set(arguments[d],arguments[d+1])}else a&&this.ca(a)}q=Kb.prototype;q.z=0;q.Z=0;q.i=function(){return this.z};q.F=function(){Lb(this);for(var a=[],b=0;b<this.n.length;b++)a.push(this.k[this.n[b]]);return a};q.S=function(){return 0==this.z};q.clear=function(){this.k={};this.Z=this.z=this.n.length=0};
q.remove=function(a){return Object.prototype.hasOwnProperty.call(this.k,a)?(delete this.k[a],this.z--,this.Z++,this.n.length>2*this.z&&Lb(this),k):n};function Lb(a){if(a.z!=a.n.length){for(var b=0,c=0;b<a.n.length;){var d=a.n[b];Object.prototype.hasOwnProperty.call(a.k,d)&&(a.n[c++]=d);b++}a.n.length=c}if(a.z!=a.n.length){for(var e={},c=b=0;b<a.n.length;)d=a.n[b],Object.prototype.hasOwnProperty.call(e,d)||(a.n[c++]=d,e[d]=1),b++;a.n.length=c}}
q.set=function(a,b){Object.prototype.hasOwnProperty.call(this.k,a)||(this.z++,this.n.push(a),this.Z++);this.k[a]=b};q.ca=function(a){var b;a instanceof Kb?(Lb(a),b=a.n.concat(),a=a.F()):(b=G(a),a=Za(a));for(var c=0;c<b.length;c++)this.set(b[c],a[c])};q.$=function(){return new Kb(this)};
q.I=function(a){Lb(this);var b=0,c=this.n,d=this.k,e=this.Z,f=this,g=new B;g.next=function(){for(;;){e!=f.Z&&h(Error("The map has changed since the iterator was created"));b>=c.length&&h(A);var g=c[b++];return a?g:d[g]}};return g};function V(a){this.k=new Kb;a&&this.ca(a)}function Mb(a){var b=typeof a;return"object"==b&&a||"function"==b?"o"+(a[ma]||(a[ma]=++na)):b.substr(0,1)+a}q=V.prototype;q.i=function(){return this.k.i()};q.add=function(a){this.k.set(Mb(a),a)};q.ca=function(a){a=Jb(a);for(var b=a.length,c=0;c<b;c++)this.add(a[c])};q.remove=function(a){return this.k.remove(Mb(a))};q.clear=function(){this.k.clear()};q.S=function(){return this.k.S()};
q.contains=function(a){a=Mb(a);return Object.prototype.hasOwnProperty.call(this.k.k,a)};function Nb(a,b){for(var c=new V,d=Jb(b),e=0;e<d.length;e++){var f=d[e];a.contains(f)&&c.add(f)}return c}function Ob(a,b){for(var c=a.$(),d=Jb(b),e=d.length,f=0;f<e;f++)c.remove(d[f]);return c}q.F=function(){return this.k.F()};q.$=function(){return new V(this)};q.I=function(){return this.k.I(n)};function Pb(a){if(a!=l)try{a.clear()}catch(b){h(Error("Input graph is not a jsnx graph type"))}else a=new N;return a}
function Qb(a,b,c){var d=l;if(a.hasOwnProperty("adj"))try{return d=Rb(a.adj,b,a.m()),"graph"in a&&"object"===r(a.graph)&&(d.graph=bb(a.graph)),"node"in a&&"object"===r(a.node)&&(d.node=Xa(a.node,function(a){return bb(a)})),d}catch(e){h(Error("Input is not a correct jsnx graph"))}if("object"===r(a))try{return Rb(a,b,c)}catch(f){try{return Sb(a,b)}catch(g){h(Error("Input is not known type."))}}if(t(a))try{return Tb(a,b)}catch(m){h(Error("Input is not valid edge list"))}return d}
v("jsnx.convert.to_networkx_graph",Qb);v("jsnx.to_networkx_graph",Qb);function Ub(a){return a.O()}v("jsnx.convert.convert_to_undirected",Ub);v("jsnx.convert_to_undirected",Ub);function Vb(a){return a.C()}v("jsnx.convert.convert_to_directed",Vb);v("jsnx.convert_to_undirected",Vb);function Wb(a,b){function c(a){return 0<=sa(b,a)}var d={};b!=l?b=Q(b):(b=a,c=function(a){return b.l(a)});O(b,function(b){d[b]=ta(a.K(b),c)});return d}v("jsnx.convert.to_dict_of_lists",Wb);v("jsnx.to_dict_of_lists",Wb);
function Sb(a,b){var c=Pb(b);c.j(a);if(c.m()&&!c.c()){var d={};D(a,function(a,b){z(a,function(a){a in d||c.a(b,a)});d[b]=1})}else{var e=[];D(a,function(a,b){z(a,function(a){e.push([b,a])})});c.b(e)}return c}v("jsnx.convert.from_dict_of_lists",Sb);
v("jsnx.convert.to_dict_of_dicts",function(a,b,c){var d={};b!=l?(b=Q(b),c!=l?z(b,function(e){d[e]={};D(a.e(e),function(a,g){0<=sa(b,g)&&(d[e][g]=c)})}):z(b,function(c){d[c]={};D(a.e(c),function(a,g){0<=sa(b,g)&&(d[c][g]=a)})})):c!=l?C(a.o(),function(a,b){d[b]=Xa(a,function(){return c})}):C(a.o(),function(a,b){d[b]=bb(a)});return d});
function Rb(a,b,c){var d=Pb(b),e,f;d.j(a);c?d.c()?(d.m()?(e=[],D(a,function(a,b){t(a)&&h(Error());D(a,function(a,c){D(a,function(a,d){e.push([b,c,d,a])})})})):(e=[],D(a,function(a,b){t(a)&&h(Error());D(a,function(a,c){D(a,function(a){e.push([b,c,a])})})})),d.b(e)):d.m()?(f=new V,D(a,function(a,b){t(a)&&h(Error());D(a,function(a,c){f.contains([b,c].toString())||(e=[],D(a,function(a,d){e.push([b,c,d,a])}),d.b(e),f.add([c,b].toString()))})})):(f=new V,D(a,function(a,b){t(a)&&h(Error());D(a,function(a,
c){f.contains([b,c].toString())||(e=[],D(a,function(a){e.push([b,c,a])}),d.b(e),f.add([c,b].toString()))})})):d.m()&&!d.c()?(f=new V,D(a,function(a,b){t(a)&&h(Error());D(a,function(a,c){f.contains([b,c].toString())||(d.a(b,c,a),f.add([c,b].toString()))})})):(e=[],D(a,function(a,b){t(a)&&h(Error());D(a,function(a,c){e.push([b,c,a])})}),d.b(e));return d}v("jsnx.convert.from_dict_of_dicts",Rb);v("jsnx.convert.to_edgelist",function(a,b){return b!=l?a.q(b,k):a.q(l,k)});
function Tb(a,b){var c=Pb(b);c.b(a);return c}v("jsnx.convert.from_edgelist",Tb);function Xb(a){this.name="JSNetworkXException";this.message=a}v("jsnx.exception.JSNetworkXException",Xb);Xb.prototype=Error();Xb.prototype.constructor=Xb;v("jsnx.JSNetworkXException",Xb);function W(a){Xb.call(this,a);this.name="JSNetworkXError"}ra(W,Xb);v("jsnx.exception.JSNetworkXError",W);v("jsnx.JSNetworkXError",W);function Yb(a){Xb.call(this,a);this.name="JSNetworkXPointlessConcept"}ra(Yb,Xb);v("jsnx.exception.JSNetworkXPointlessConcept",Yb);v("jsnx.JSNetworkXPointlessConcept",Yb);
function Zb(a){Xb.call(this,a);this.name="JSNetworkXAlgorithmError"}ra(Zb,Xb);v("jsnx.exception.JSNetworkXAlgorithmError",Zb);v("jsnx.JSNetworkXAlgorithmError",Zb);function $b(a){Zb.call(this,a);this.name="JSNetworkXUnfeasible"}ra($b,Zb);v("jsnx.exception.JSNetworkXUnfeasible",$b);v("jsnx.JSNetworkXUnfeasible",$b);function ac(a){$b.call(this,a);this.name="JSNetworkXNoPath"}ra(ac,$b);v("jsnx.exception.JSNetworkXNoPath",ac);v("jsnx.JSNetworkXNoPath",ac);
function dc(a){Zb.call(this,a);this.name="JSNetworkXUnbounded"}ra(dc,Zb);v("jsnx.exception.JSNetworkXUnbounded",dc);v("jsnx.JSNetworkXUnbounded",dc);function ec(a){var b=[];fc(new gc,a,b);return b.join("")}function gc(){this.ba=aa}
function fc(a,b,c){switch(typeof b){case "string":hc(b,c);break;case "number":c.push(isFinite(b)&&!isNaN(b)?b:"null");break;case "boolean":c.push(b);break;case "undefined":c.push("null");break;case "object":if(b==l){c.push("null");break}if(ga(b)){var d=b.length;c.push("[");for(var e="",f=0;f<d;f++)c.push(e),e=b[f],fc(a,a.ba?a.ba.call(b,String(f),e):e,c),e=",";c.push("]");break}c.push("{");d="";for(f in b)Object.prototype.hasOwnProperty.call(b,f)&&(e=b[f],"function"!=typeof e&&(c.push(d),hc(f,c),c.push(":"),
fc(a,a.ba?a.ba.call(b,f,e):e,c),d=","));c.push("}");break;case "function":break;default:h(Error("Unknown type: "+typeof b))}}var ic={'"':'\\"',"\\":"\\\\","/":"\\/","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t","\x0B":"\\u000b"},jc=/\uffff/.test("\uffff")?/[\\\"\x00-\x1f\x7f-\uffff]/g:/[\\\"\x00-\x1f\x7f-\xff]/g;
function hc(a,b){b.push('"',a.replace(jc,function(a){if(a in ic)return ic[a];var b=a.charCodeAt(0),e="\\u";16>b?e+="000":256>b?e+="00":4096>b&&(e+="0");return ic[a]=e+b.toString(16)}),'"')};function N(a,b){if(!(this instanceof N))return new N(a,b);this.graph={};this.node={};this.adj={};a!=l&&Qb(a,this);J(this.graph,b||{});this.edge=this.adj}v("jsnx.classes.Graph",N);v("jsnx.Graph",N);N.__name__="Graph";N.prototype.za=l;N.prototype.graph=N.prototype.za;N.prototype.ka=l;N.prototype.node=N.prototype.ka;N.prototype.ta=l;N.prototype.adj=N.prototype.ta;N.prototype.xa=l;N.prototype.edge=N.prototype.xa;
N.prototype.name=function(a){if(s(a))this.graph.name=a.toString();else return this.graph.name||""};N.prototype.name=N.prototype.name;N.prototype.toString=function(){return this.name()};N.prototype.toString=N.prototype.toString;N.prototype.e=function(a){a in this.adj||h({name:"KeyError",message:"Graph does not contain node "+a+"."});return this.adj[a]};N.prototype.get_node=N.prototype.e;
N.prototype.D=function(a,b){b!=l||(b={});"object"!==r(b)&&h(new W("The attr_dict argument must be an object."));a in this.adj?J(this.node[a],b||{}):(this.adj[a]={},this.node[a]=b||{})};N.prototype.add_node=N.prototype.D;N.prototype.j=function(a,b){var c,d,e,f,g;b!=l||(b={});O(a,function(a){c=!(a in this.adj);ga(a)?(d=a[0],e=a[1],d in this.adj?(g=this.node[d],J(g,b,e)):(this.adj[d]={},f=bb(b),J(f,e),this.node[d]=f)):c?(this.adj[a]={},this.node[a]=bb(b)):J(this.node[a],b)},this)};
N.prototype.add_nodes_from=N.prototype.j;N.prototype.N=function(a){var b=this.adj,c;a in this.node||h(new W("The node "+a+" is not in the graph"));c=G(b[a]);H(this.node,a);z(c,function(c){H(b[c],a)});H(b,a)};N.prototype.remove_node=N.prototype.N;N.prototype.X=function(a){var b=this.adj;O(a,function(a){try{H(this.node,a),D(b[a],function(d,f){H(b[f],a)}),H(b,a)}catch(d){}},this)};N.prototype.remove_nodes_from=N.prototype.X;N.prototype.v=function(a){return a?U(this.node):L(G(this.adj))};
N.prototype.nodes_iter=N.prototype.v;N.prototype.nodes=function(a){return Va(this.v(a))};N.prototype.nodes=N.prototype.nodes;N.prototype.M=function(){return E(this.adj)};N.prototype.number_of_nodes=N.prototype.M;N.prototype.A=function(){return E(this.adj)};N.prototype.order=N.prototype.A;N.prototype.l=function(a){return!ga(a)&&a in this.adj};N.prototype.has_node=N.prototype.l;
N.prototype.a=function(a,b,c){c=c||{};"object"!==r(c)&&h(new W("The attr_dict argument must be an object."));a in this.adj||(this.adj[a]={},this.node[a]={});b in this.adj||(this.adj[b]={},this.node[b]={});var d=I(this.adj[a],b+"",{});J(d,c);this.adj[a][b]=d;this.adj[b][a]=d};N.prototype.add_edge=N.prototype.a;
N.prototype.b=function(a,b){b=b||{};"object"!==r(b)&&h(new W("The attr_dict argument must be an object."));O(a,function(a){var d=jb(a),e,f,g;3===d?(e=a[0],f=a[1],g=a[2]):2===d?(e=a[0],f=a[1],g={}):h(new W("Edge tuple "+a.toString()+" must be a 2-tuple or 3-tuple."));e in this.adj||(this.adj[e]={},this.node[e]={});f in this.adj||(this.adj[f]={},this.node[f]={});a=I(this.adj[e],f,{});J(a,b,g);this.adj[e][f]=a;this.adj[f][e]=a},this)};N.prototype.add_edges_from=N.prototype.b;
N.prototype.sa=function(a,b,c){c=c||{};u(b)||(c=b,b="weight");this.b(P(a,function(a){var c={};c[b]=a[2];s(c[b])||h(new TypeError("Values must consist of three elements: "+ec(a)));return[a[0],a[1],c]}),c)};N.prototype.add_weighted_edges_from=N.prototype.sa;N.prototype.u=function(a,b){try{H(this.adj[a],b),a!=b&&H(this.adj[b],a)}catch(c){c instanceof TypeError&&h(new W("The edge "+a+"-"+b+" is not in the graph")),h(c)}};N.prototype.remove_edge=N.prototype.u;
N.prototype.B=function(a){O(a,function(a){var c=a[0];a=a[1];c in this.adj&&a in this.adj[c]&&(H(this.adj[c],a),c!=a&&H(this.adj[a],c))},this)};N.prototype.remove_edges_from=N.prototype.B;N.prototype.J=function(a,b){return a in this.adj&&b in this.adj[a]};N.prototype.has_edge=N.prototype.J;N.prototype.K=function(a){a in this.adj||h(new W("The node "+a+" is not in the graph."));return Q(this.adj[a])};N.prototype.neighbors=N.prototype.K;
N.prototype.V=function(a){a in this.adj||h(new W("The node "+a+" is not in the graph."));return L(this.adj[a])};N.prototype.neighbors_iter=N.prototype.V;N.prototype.q=function(a,b){return Va(this.f(a,b))};N.prototype.edges=N.prototype.q;
N.prototype.f=function(a,b){ia(a)&&(b=a,a=l);var c={},d,e;d=a!=l?P(this.d(a),function(a){return[a,this.adj[a]]},this):U(this.adj);return b?S(d,function(a){e=a[0];var b=new B,d=U(a[1]);b.next=function(){try{return d.next()}catch(a){a===A&&(c[e]=1),h(a)}};return b},function(a){if(!(a[0]in c))return[e,a[0],a[1]]}):S(d,function(a){e=a[0];var b=new B,d=L(a[1]);b.next=function(){try{return d.next()}catch(a){a===A&&(c[e]=1),h(a)}};return b},function(a){if(!(a in c))return[e,a]})};
N.prototype.edges_iter=N.prototype.f;N.prototype.P=function(a,b,c){s(c)||(c=l);return a in this.adj?I(this.adj[a],b.toString(),c):c};N.prototype.get_edge_data=N.prototype.P;N.prototype.ua=function(){return Q(P(this.o(),function(a){return G(a[1])}))};N.prototype.adjacency_list=N.prototype.ua;N.prototype.o=function(){return U(this.adj)};N.prototype.adjacency_iter=N.prototype.o;N.prototype.p=function(a,b){return a!=l&&this.l(a)?this.s(a,b).next()[1]:hb(Va(this.s(a,b)))};N.prototype.degree=N.prototype.p;
N.prototype.s=function(a,b){var c;c=a!=l?P(this.d(a),function(a){return[a,this.adj[a]]},this):U(this.adj);return b?P(c,function(a){var c=a[0];a=a[1];var f=0,g;for(g in a)f+=+I(a[g],b,1);f+=+(c in a&&I(a[c],b,1));return[c,f]}):P(c,function(a){return[a[0],E(a[1])+ +(a[0]in a[1])]})};N.prototype.degree_iter=N.prototype.s;N.prototype.clear=function(){this.name("");ab(this.adj);ab(this.node);ab(this.graph)};N.prototype.clear=N.prototype.clear;N.prototype.copy=function(){return rb(this)};
N.prototype.copy=N.prototype.copy;N.prototype.m=da(n);N.prototype.is_multigraph=N.prototype.m;N.prototype.c=da(n);N.prototype.is_directed=N.prototype.c;N.prototype.C=function(){var a=new Y;a.name(this.name());a.j(this);a.b(function(){var a;return S(this.o(),function(c){a=c[0];return U(c[1])},function(c){return[a,c[0],T(c[1])]})}.call(this));a.graph=T(this.graph);a.node=T(this.node);return a};N.prototype.to_directed=N.prototype.C;N.prototype.O=function(){return rb(this)};
N.prototype.to_undirected=N.prototype.O;N.prototype.w=function(a){a=this.d(a);var b=new this.constructor,c=b.adj,d=this.adj;O(a,function(a){var b={};c[a]=b;D(d[a],function(d,m){m in c&&(b[m]=d,c[m][a]=d)})});O(b,function(a){b.node[a]=this.node[a]},this);b.graph=this.graph;return b};N.prototype.subgraph=N.prototype.w;N.prototype.Ea=function(){return ua(ta(qb(this.adj),function(a){return a[0]in a[1]}),function(a){return a[0]})};N.prototype.nodes_with_selfloops=N.prototype.Ea;
N.prototype.Y=function(a){return a?ua(ta(qb(this.adj),function(a){return a[0]in a[1]}),function(a){var c=a[0];return[c,c,a[1][c]]}):ua(ta(qb(this.adj),function(a){return a[0]in a[1]}),function(a){return[a[0],a[0]]})};N.prototype.selfloop_edges=N.prototype.Y;N.prototype.Fa=function(){return this.Y().length};N.prototype.number_of_selfloops=N.prototype.Fa;N.prototype.size=function(a){var b=K.t.apply(l,Za(this.p(l,a)))/2;return a!=l?b:Math.floor(b)};N.prototype.size=N.prototype.size;
N.prototype.L=function(a,b){return a==l?Math.floor(this.size()):b in this.adj[a]?1:0};N.prototype.number_of_edges=N.prototype.L;N.prototype.ra=function(a,b){var c=Q(a),d=c[0],c=P(Ga(c,1),function(a){return[d,a]});this.b(c,b)};N.prototype.add_star=N.prototype.ra;N.prototype.qa=function(a,b){var c=Q(a),c=Pa(Ga(c,0,c.length-1),Ga(c,1));this.b(c,b)};N.prototype.add_path=N.prototype.qa;N.prototype.pa=function(a,b){var c=Q(a),c=Pa(c,Aa(Ga(c,1),[c[0]]));this.b(c,b)};N.prototype.add_cycle=N.prototype.pa;
N.prototype.d=function(a){return a!=l?this.l(a)?L([a.toString()]):function(a,c){var d=new B,e=S(a,function(a){if(a in c)return a.toString()});d.next=function(){try{return e.next()}catch(a){a instanceof TypeError&&h(new W("nbunch is not a node or a sequence of nodes")),h(a)}};return d}(a,this.adj):L(this.adj)};N.prototype.nbunch_iter=N.prototype.d;function Y(a,b){if(!(this instanceof Y))return new Y(a,b);this.graph={};this.node={};this.adj={};this.pred={};this.succ=this.adj;a!=l&&Qb(a,this);J(this.graph,b||{});this.edge=this.adj}v("jsnx.classes.DiGraph",Y);v("jsnx.DiGraph",Y);ra(Y,N);Y.__name__="DiGraph";Y.prototype.D=function(a,b){b!=l||(b={});"object"!==r(b)&&h(new W("The attr_dict argument must be an object."));a in this.succ?J(this.node[a],b):(this.succ[a]={},this.pred[a]={},this.node[a]=b)};Y.prototype.add_node=Y.prototype.D;
Y.prototype.j=function(a,b){var c,d,e,f,g;b!=l||(b={});O(L(a),function(a){c=!(a in this.succ);ga(a)?(d=a[0],e=a[1],d in this.succ?(g=this.node[d],J(g,b,e)):(this.succ[d]={},this.pred[d]={},f=bb(b),J(f,e),this.node[d]=f)):c?(this.succ[a]={},this.pred[a]={},this.node[a]=bb(b)):J(this.node[a],b)},this)};Y.prototype.add_nodes_from=Y.prototype.j;
Y.prototype.N=function(a){a in this.node||h(new W("The node "+a+" is not in the graph"));var b=this.succ[a];H(this.node,a);D(b,function(b,d){H(this.pred[d],a)},this);H(this.succ,a);D(this.pred[a],function(b,d){H(this.succ[d],a)},this);H(this.pred,a)};Y.prototype.remove_node=Y.prototype.N;
Y.prototype.X=function(a){var b;O(a,function(a){a in this.succ&&(b=this.succ[a],H(this.node,a),D(b,function(b,e){H(this.pred[e],a)},this),H(this.succ,a),D(this.pred[a],function(b,e){H(this.succ[e],a)},this),H(this.pred,a))},this)};Y.prototype.remove_nodes_from=Y.prototype.X;
Y.prototype.a=function(a,b,c){c=c||{};"object"!==r(c)&&h(new W("The attr_dict argument must be an object."));a in this.succ||(this.succ[a]={},this.pred[a]={},this.node[a]={});b in this.succ||(this.succ[b]={},this.pred[b]={},this.node[b]={});var d=I(this.adj[a],""+b,{});J(d,c);this.succ[a][b]=d;this.pred[b][a]=d};Y.prototype.add_edge=Y.prototype.a;
Y.prototype.b=function(a,b){b=b||{};"object"!==r(b)&&h(new W("The attr_dict argument must be an object."));O(a,function(a){var d=jb(a),e,f,g;3===d?(e=a[0],f=a[1],g=a[2]):2===d?(e=a[0],f=a[1],g={}):h(new W("Edge tuple "+a.toString()+" must be a 2-tuple or 3-tuple."));e in this.succ||(this.succ[e]={},this.pred[e]={},this.node[e]={});f in this.succ||(this.succ[f]={},this.pred[f]={},this.node[f]={});a=I(this.adj[e],f,{});J(a,b,g);this.succ[e][f]=a;this.pred[f][e]=a},this)};
Y.prototype.add_edges_from=Y.prototype.b;Y.prototype.u=function(a,b){try{H(this.succ[a],b),H(this.pred[b],a)}catch(c){c instanceof TypeError&&h(new W("The edge "+a+"-"+b+" is not in the graph")),h(c)}};Y.prototype.remove_edge=Y.prototype.u;Y.prototype.B=function(a){O(a,function(a){var c=a[0];a=a[1];c in this.succ&&a in this.succ[c]&&(H(this.succ[c],a),H(this.pred[a],c))},this)};Y.prototype.remove_edges_from=Y.prototype.B;Y.prototype.Ba=function(a,b){return a in this.succ&&b in this.succ[a]};
Y.prototype.has_successor=Y.prototype.Ba;Y.prototype.Aa=function(a,b){return a in this.pred&&b in this.pred[a]};Y.prototype.has_predecessor=Y.prototype.Aa;Y.prototype.fa=function(a){a in this.succ||h(new W("The node "+a+" is not in the digraph."));return L(this.succ[a])};Y.prototype.successors_iter=Y.prototype.fa;Y.prototype.ma=function(a){a in this.pred||h(new W("The node "+a+" is not in the digraph."));return L(this.pred[a])};Y.prototype.predecessors_iter=Y.prototype.ma;
Y.prototype.na=function(a){a in this.succ||h(new W("The node "+a+" is not in the digraph."));return Q(this.succ[a])};Y.prototype.successors=Y.prototype.na;Y.prototype.Ga=function(a){a in this.succ||h(new W("The node "+a+" is not in the digraph."));return Q(this.pred[a])};Y.prototype.predecessors=Y.prototype.Ga;Y.prototype.K=Y.prototype.na;Y.prototype.neighbors=Y.prototype.K;Y.prototype.V=Y.prototype.fa;Y.prototype.neighbors_iter=Y.prototype.V;
Y.prototype.f=function(a,b){ia(a)&&(b=a,a=l);var c,d,e;c=a!=l?P(this.d(a),function(a){return[a,this.adj[a]]},this):qb(this.adj);return b?S(c,function(a){d=a[0];e=a[1];return U(e)},function(a){return[d,a[0],a[1]]}):S(c,function(a){d=a[0];e=a[1];return U(e)},function(a){return[d,a[0]]})};Y.prototype.edges_iter=Y.prototype.f;Y.prototype.aa=Y.prototype.f;Y.prototype.out_edges_iter=Y.prototype.aa;Y.prototype.da=N.prototype.q;Y.prototype.out_edges=Y.prototype.da;
Y.prototype.H=function(a,b){ia(a)&&(b=a,a=l);var c,d;c=a!=l?P(this.d(a),function(a){return[a,this.pred[a]]},this):qb(this.pred);return b?S(c,function(a){d=a[0];return U(a[1])},function(a){return[a[0],d,a[1]]}):S(c,function(a){d=a[0];return U(a[1])},function(a){return[a[0],d]})};Y.prototype.in_edges_iter=Y.prototype.H;Y.prototype.R=function(a,b){return Q(this.H(a,b))};Y.prototype.in_edges=Y.prototype.R;
Y.prototype.s=function(a,b){var c;c=a!=l?lb(P(this.d(a),function(a){return[a,this.succ[a]]},this),P(this.d(a),function(a){return[a,this.pred[a]]},this)):lb(U(this.succ),U(this.pred));return u(b)?P(c,function(a){var c=a[0][1],f=a[1][1],g=0,m;for(m in c)g+=+I(c[m],b,1);for(m in f)g+=+I(f[m],b,1);return[a[0][0],g]}):P(c,function(a){return[a[0][0],jb(a[0][1])+jb(a[1][1])]})};Y.prototype.degree_iter=Y.prototype.s;
Y.prototype.Q=function(a,b){var c;c=a!=l?P(this.d(a),function(a){return[a,this.pred[a]]},this):U(this.pred);return b!=l?P(c,function(a){var c=0,f=a[1],g;for(g in f)c+=+I(f[g],b,1);return[a[0],c]}):P(c,function(a){return[a[0],E(a[1])]})};Y.prototype.in_degree_iter=Y.prototype.Q;
Y.prototype.W=function(a,b){var c;c=a!=l?P(this.d(a),function(a){return[a,this.succ[a]]},this):U(this.succ);return b!=l?P(c,function(a){var c=0,f=a[1],g;for(g in f)c+=+I(f[g],b,1);return[a[0],c]}):P(c,function(a){return[a[0],E(a[1])]})};Y.prototype.out_degree_iter=Y.prototype.W;Y.prototype.ia=function(a,b){return a!=l&&this.l(a)?this.Q(a,b).next()[1]:hb(this.Q(a,b))};Y.prototype.in_degree=Y.prototype.ia;Y.prototype.la=function(a,b){return a!=l&&this.l(a)?this.W(a,b).next()[1]:hb(this.W(a,b))};
Y.prototype.out_degree=Y.prototype.la;Y.prototype.clear=function(){ab(this.succ);ab(this.pred);ab(this.node);ab(this.graph)};Y.prototype.clear=Y.prototype.clear;Y.prototype.m=da(n);Y.prototype.is_multigraph=Y.prototype.m;Y.prototype.c=da(k);Y.prototype.is_directed=Y.prototype.c;Y.prototype.C=function(){return rb(this)};Y.prototype.to_directed=Y.prototype.C;
Y.prototype.O=function(a){var b=new N;b.name(this.name());b.j(this);var c=this.pred,d;a?b.b(S(this.o(),function(a){d=a[0];return U(a[1])},function(a){if(a[0]in c[d])return[d,a[0],T(a[1])]})):b.b(S(this.o(),function(a){d=a[0];return U(a[1])},function(a){return[d,a[0],T(a[1])]}));b.graph=T(this.graph);b.node=T(this.node);return b};Y.prototype.to_undirected=Y.prototype.O;
Y.prototype.reverse=function(a){(a=!s(a)||a)?(a=new this.constructor(l,{name:"Reverse of ("+this.name()+")"}),a.j(this),a.b(P(this.f(l,k),function(a){return[a[1],a[0],T(a[2])]})),a.graph=T(this.graph),a.node=T(this.node)):(a=this.succ,this.succ=this.pred,this.pred=a,this.adj=this.succ,a=this);return a};Y.prototype.reverse=Y.prototype.reverse;
Y.prototype.w=function(a){a=this.d(a);var b=new this.constructor,c=b.succ,d=b.pred,e=this.succ;O(a,function(a){c[a]={};d[a]={}});O(c,function(a){var b=c[a];D(e[a],function(e,p){p in c&&(b[p]=e,d[p][a]=e)})});O(b,function(a){b.node[a]=this.node[a]},this);b.graph=this.graph;return b};Y.prototype.subgraph=Y.prototype.w;function kc(a,b){var c=R(a),d,e,f=new B;try{e=[c.next()]}catch(g){return g!==A&&h(g),f}f.next=function(){0===e.length&&h(A);return e.splice(0,1)[0]};return S(f,function(a){d=a;return R(b)},function(){try{var a=c.next();e.push(a);return[d,a]}catch(b){b!==A&&h(b)}})}function lc(a,b,c){c=mc(b,c);c.b(kc(b,a));return c}v("jsnx.generators.classic.full_rary_tree",lc);v("jsnx.full_rary_tree",lc);function nc(a,b,c){b=1===a?2:Math.floor((1-Math.pow(a,b+1))/(1-a));c=mc(b,c);c.b(kc(b,a));return c}
v("jsnx.generators.classic.balanced_tree",nc);v("jsnx.balanced_tree",nc);function oc(a,b){var c=mc(a,b);c.name("complete_graph("+a+")");1<a&&c.b(c.c()?ob(R(a)):nb(R(a)));return c}v("jsnx.generators.classic.complete_graph",oc);v("jsnx.complete_graph",oc);function pc(a,b){var c=qc(a,b);c.name("cycle_graph("+a+")");1<a&&c.a(a-1,0);return c}v("jsnx.generators.classic.cycle_graph",pc);v("jsnx.cycle_graph",pc);
function mc(a,b){a instanceof N&&(b=a,a=l);a!=l||(a=0);var c;b!=l?(c=b,c.clear()):c=new N;c.j(R(a));c.name("empty_graph("+a+")");return c}v("jsnx.generators.classic.empty_graph",mc);v("jsnx.empty_graph",mc);
function rc(a,b,c,d){var e=mc(0,d);e.name("grid_2d_graph");d=Va(R(a));var f=Va(R(b));z(d,function(a){z(f,function(b){e.D([a,b].toString())})});C(R(1,a),function(a){z(f,function(b){e.a([a,b].toString(),[a-1,b].toString())})});z(d,function(a){C(R(1,b),function(b){e.a([a,b].toString(),[a,b-1].toString())})});e.c()&&(C(R(0,a-1),function(a){z(f,function(b){e.a([a,b].toString(),[a+1,b].toString())})}),z(d,function(a){C(R(0,b-1),function(b){e.a([a,b].toString(),[a,b+1].toString())})}));c&&(2<b&&(z(d,function(a){e.a([a,
0].toString(),[a,b-1].toString())}),e.c()&&z(d,function(a){e.a([a,b-1].toString(),[a,0].toString())})),2<a&&(z(f,function(b){e.a([0,b].toString(),[a-1,b].toString())}),e.c()&&z(f,function(b){e.a([a-1,b].toString(),[0,b].toString())})),e.name("periodic_grid_2d_graph("+a+","+b+")"));return e}v("jsnx.generators.classic.grid_2d_graph",rc);v("jsnx.grid_2d_graph",rc);function sc(a){a=mc(0,a);a.name("null_graph()");return a}v("jsnx.generators.classic.null_graph",sc);v("jsnx.null_graph",sc);
function qc(a,b){var c=mc(a,b);c.name("path_graph("+a+")");c.b(Sa(R(a-1),function(a){return[a,a+1]}));return c}v("jsnx.generators.classic.path_graph",qc);v("jsnx.path_graph",qc);function tc(a){a=mc(1,a);a.name("null_graph()");return a}v("jsnx.generators.classic.trivial_graph",tc);v("jsnx.trivial_graph",tc);function uc(a,b,c){c!=l||(c=n);var d=mc(a);d.name("fast_gnp_random_graph("+a+","+b+")");if(0>=b||1<=b)return vc(a,b,c);var e=1,f=-1;b=Math.log(1-b);if(c)for(d=new Y(d);e<a;){c=Math.log(1-Math.random());f=f+1+Math.floor(c/b);for(e===f&&(f+=1);f>=a&&e<a;)f-=a,e+=1,e==f&&(f+=1);e<a&&d.a(e,f)}else for(;e<a;){c=Math.log(1-Math.random());for(f=f+1+Math.floor(c/b);f>=e&&e<a;)f-=e,e+=1;e<a&&d.a(e,f)}return d}v("jsnx.generators.random_graphs.fast_gnp_random_graph",uc);v("jsnx.fast_gnp_random_graph",uc);
function vc(a,b,c){var d;d=c?new Y:new N;d.j(R(a));d.name("gnp_random_graph("+a+","+b+")");if(0>=b)return d;if(1<=b)return oc(a,d);a=d.c()?ob(R(a)):nb(R(a));C(a,function(a){Math.random()<b&&d.a(a[0],a[1])});return d}v("jsnx.generators.random_graphs.gnp_random_graph",vc);v("jsnx.gnp_random_graph",vc);v("jsnx.binomial_graph",vc);v("jsnx.erdos_renyi_graph",vc);function wc(a,b){xc(a)||h(new W("Invalid degree sequence"));b!=l&&(b.c()&&h(new W("Directed Graph not supported")),b.m()&&h(new W("Havel-Hakimi requires simple graph")));var c=a.length,d=mc(c,b);if(0===c||0===Math.max.apply(l,a))return d;for(c=Va(P(d,function(b){return[a[b],b]}));0<c.length;){c.sort(function(a,b){return a[0]!==b[0]?a[0]-b[0]:+a[1]-+b[1]});if(0>c[0][0])return n;var e=c.pop();if(0===e[0])break;if(e[0]>c.length)return n;for(var f=c.length,g=f-e[0];g<f;g++)d.a(e[1],c[g][1]),c[g][0]-=
1}d.name("havel_hakimi_graph "+d.A()+" nodes "+d.size()+" edges");return d}v("jsnx.generators.degree_seq.havel_hakimi_graph",wc);v("jsnx.havel_hakimi_graph",wc);function yc(){var a=new N;a.j(R(34));a.name("Zachary's Karate Club");var b=0;z("0 1 1 1 1 1 1 1 1 0 1 1 1 1 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0;1 0 1 1 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0;1 1 0 1 0 0 0 1 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0;1 1 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1;0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1;1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1;0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1;0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1;0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1;1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1;0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1;1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1;0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 1;0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0;0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0;0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1;0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1;0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1;0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1 1;0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1;1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 1 1;0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 1 0 1 0 1 1 0 0 0 0 0 1 1 1 0 1;0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 1 0 0 1 1 1 0 1 1 0 0 1 1 1 1 1 1 1 0".split(";"),
function(c){O(c.split(" "),function(c,e){"1"===c&&a.a(b,e)});b+=1});return a}v("jsnx.generators.social.karate_club_graph",yc);v("jsnx.karate_club_graph",yc);
function zc(){var a=new N;a.j("Evelyn Jefferson;Laura Mandeville;Theresa Anderson;Brenda Rogers;Charlotte McDowd;Frances Anderson;Eleanor Nye;Pearl Oglethorpe;Ruth DeSand;Verne Sanderson;Myra Liddel;Katherina Rogers;Sylvia Avondale;Nora Fayette;Helen Lloyd;Dorothy Murchison;Olivia Carleton;Flora Price".split(";"),{wa:0});a.j("E1 E2 E3 E4 E5 E6 E7 E8 E9 E10 E11 E12 E13 E14".split(" "),{wa:1});a.b([["Evelyn Jefferson","E1"],["Evelyn Jefferson","E2"],["Evelyn Jefferson","E3"],["Evelyn Jefferson","E4"],
["Evelyn Jefferson","E5"],["Evelyn Jefferson","E6"],["Evelyn Jefferson","E8"],["Evelyn Jefferson","E9"],["Laura Mandeville","E1"],["Laura Mandeville","E2"],["Laura Mandeville","E3"],["Laura Mandeville","E5"],["Laura Mandeville","E6"],["Laura Mandeville","E7"],["Laura Mandeville","E8"],["Theresa Anderson","E2"],["Theresa Anderson","E3"],["Theresa Anderson","E4"],["Theresa Anderson","E5"],["Theresa Anderson","E6"],["Theresa Anderson","E7"],["Theresa Anderson","E8"],["Theresa Anderson","E9"],["Brenda Rogers",
"E1"],["Brenda Rogers","E3"],["Brenda Rogers","E4"],["Brenda Rogers","E5"],["Brenda Rogers","E6"],["Brenda Rogers","E7"],["Brenda Rogers","E8"],["Charlotte McDowd","E3"],["Charlotte McDowd","E4"],["Charlotte McDowd","E5"],["Charlotte McDowd","E7"],["Frances Anderson","E3"],["Frances Anderson","E5"],["Frances Anderson","E6"],["Frances Anderson","E8"],["Eleanor Nye","E5"],["Eleanor Nye","E6"],["Eleanor Nye","E7"],["Eleanor Nye","E8"],["Pearl Oglethorpe","E6"],["Pearl Oglethorpe","E8"],["Pearl Oglethorpe",
"E9"],["Ruth DeSand","E5"],["Ruth DeSand","E7"],["Ruth DeSand","E8"],["Ruth DeSand","E9"],["Verne Sanderson","E7"],["Verne Sanderson","E8"],["Verne Sanderson","E9"],["Verne Sanderson","E12"],["Myra Liddel","E8"],["Myra Liddel","E9"],["Myra Liddel","E10"],["Myra Liddel","E12"],["Katherina Rogers","E8"],["Katherina Rogers","E9"],["Katherina Rogers","E10"],["Katherina Rogers","E12"],["Katherina Rogers","E13"],["Katherina Rogers","E14"],["Sylvia Avondale","E7"],["Sylvia Avondale","E8"],["Sylvia Avondale",
"E9"],["Sylvia Avondale","E10"],["Sylvia Avondale","E12"],["Sylvia Avondale","E13"],["Sylvia Avondale","E14"],["Nora Fayette","E6"],["Nora Fayette","E7"],["Nora Fayette","E9"],["Nora Fayette","E10"],["Nora Fayette","E11"],["Nora Fayette","E12"],["Nora Fayette","E13"],["Nora Fayette","E14"],["Helen Lloyd","E7"],["Helen Lloyd","E8"],["Helen Lloyd","E10"],["Helen Lloyd","E11"],["Helen Lloyd","E12"],["Dorothy Murchison","E8"],["Dorothy Murchison","E9"],["Olivia Carleton","E9"],["Olivia Carleton","E11"],
["Flora Price","E9"],["Flora Price","E11"]]);return a}v("jsnx.generators.social.davis_southern_women_graph",zc);v("jsnx.davis_southern_women_graph",zc);
function Ac(){var a=new N;a.a("Acciaiuoli","Medici");a.a("Castellani","Peruzzi");a.a("Castellani","Strozzi");a.a("Castellani","Barbadori");a.a("Medici","Barbadori");a.a("Medici","Ridolfi");a.a("Medici","Tornabuoni");a.a("Medici","Albizzi");a.a("Medici","Salviati");a.a("Salviati","Pazzi");a.a("Peruzzi","Strozzi");a.a("Peruzzi","Bischeri");a.a("Strozzi","Ridolfi");a.a("Strozzi","Bischeri");a.a("Ridolfi","Tornabuoni");a.a("Tornabuoni","Guadagni");a.a("Albizzi","Ginori");a.a("Albizzi","Guadagni");a.a("Bischeri",
"Guadagni");a.a("Guadagni","Lamberteschi");return a}v("jsnx.generators.social.florentine_families_graph",Ac);v("jsnx.florentine_families_graph",Ac);function Bc(a,b){a.c()&&h(new W("triangles() is not defined for directed graphs."));if(b!=l&&a.l(b))return Math.floor(Cc(a,b).next()[2]/2);var c={};C(Cc(a,b),function(a){c[a[0]]=Math.floor(a[2]/2)});return c}v("jsnx.algorithms.cluster.triangles",Bc);v("jsnx.triangles",Bc);
function Cc(a,b){a.m()&&h(new W("Not defined for multigraphs."));var c;c=b!=l?S(a.d(b),function(b){return[b,a.e(b)]}):U(a.adj);return Sa(c,function(b){var c=new V(G(b[1])),f=0;c.remove(b[0]);C(c,function(b){var d=new V(G(a.e(b)));d.remove(b);f+=Nb(c,d).i()});return[b[0],c.i(),f]})}
function Dc(a,b,c){a.m()&&h(new W("Not defined for multigraphs."));u(c)||(c="weight");var d;d=0===a.q().length?1:mb(a.q(k),function(a){return I(a[2],c,1)});b=b!=l?S(a.d(b),function(b){return[b,a.e(b)]}):U(a.adj);return Sa(b,function(b){var f=b[0],g=new V(G(b[1]));g.remove(f);var m=0,p=new V;C(g,function(b){var e=I(a.e(f)[b],c,1)/d;p.add(b);var F=Ob(new V(G(a.e(b))),p);C(Nb(g,F),function(g){var p=I(a.e(b)[g],c,1)/d;g=I(a.e(f)[g],c,1)/d;m+=Math.pow(e*p*g,1/3)})});return[f,g.i(),2*m]})}
function Ec(a,b,c,d){2===arguments.length?u(b)?(c=b,b=l):ia(b)&&(d=b,b=l):3===arguments.length&&ia(c)&&(d=c,c=l);d!=l||(d=k);var e=Za(Fc(a,b,c));d||(e=ta(e,function(a){return 0<a}));return K.t.apply(K,e)/e.length}v("jsnx.algorithms.cluster.average_clustering",Ec);v("jsnx.average_clustering",Ec);
function Fc(a,b,c){a.c()&&h(new W("Clustering algorithms are not defined for directed graphs."));c=c!=l?Dc(a,b,c):Cc(a,b);var d={};C(c,function(a){d[a[0]]=0===a[2]?0:a[2]/(a[1]*(a[1]-1))});return b!=l&&a.l(b)?Za(d)[0]:d}v("jsnx.algorithms.cluster.clustering",Fc);v("jsnx.clustering",Fc);function Gc(a){var b=0,c=0;C(Cc(a),function(a){c+=a[1]*(a[1]-1);b+=a[2]});return 0===b?0:b/c}v("jsnx.algorithms.cluster.transitivity",Gc);v("jsnx.transitivity",Gc);
function Hc(a,b){var c=b==l?L(a):a.d(b),d={};C(c,function(b){var c=d[b]=0;C(nb(G(a.e(b))),function(g){var m=g[0];g=g[1];var p=Nb(new V(G(a.e(m))),G(a.e(g)));p.remove(b);p=p.i();d[b]+=p;var x=p+1,w=a.e(m);g in w&&(x+=1);c+=(E(a.e(m))-x)*(E(a.e(g))-x)+p});0<c&&(d[b]/=c)});return b!=l&&a.l(b)?Za(d)[0]:d}v("jsnx.algorithms.cluster.square_clustering",Hc);v("jsnx.square_clustering",Hc);function Ic(a){var b=-1,c={},d=new V;C(a.o(),function(a){var e=new V(G(a[1]));e.remove(a[0]);var f=e.i();f>b?(c[a[0]]=d=e,b=f):c[a[0]]=e});var e=new V(G(c)),f=Ob(e,d),g=new V,m=[],p=[];a=new B;a.next=function(){0===f.i()&&0===m.length&&h(A);var a,w;if(0<f.i())a=Qa(f).next(),f.remove(a);else{var F=m.pop();e=F[0];g=F[1];f=F[2];p.pop();return this.next()}p.push(a);e.remove(a);g.add(a);var M=c[a],F=Nb(e,M),M=Nb(g,M);if(0===F.i()&&(0===M.i()&&(w=Ea(p)),p.pop(),w))return w;if(0===M.i()&&1===F.i())return w=
Aa(p,F.F()),p.pop(),w;var Ia=F.i(),ba=-1,ca,X;for(w=Qa(M);(a=Wa(w,l))!==l&&!(a=Nb(F,c[a]),X=a.i(),X>ba&&(ca=a,ba=X,ba===Ia)););if(ba===Ia)return p.pop(),this.next();b=-1;for(w=Qa(F);(a=Wa(w,l))!==l&&!(a=Nb(F,c[a]),X=a.i(),X>b&&(d=a,b=X,b===Ia-1)););ba>b&&(d=ca);m.push([e,g,f]);e=F;g=M;f=Ob(e,d);return this.next()};return a}v("jsnx.algorithms.clique.find_cliques",Ic);v("jsnx.find_cliques",Ic);
function Jc(a){var b={};C(a.o(),function(a){var c=new V(G(a[1]));c.remove(a[0]);b[a[0]]=c});if($a(b))return[];a=new V(G(b));var c=new V,d=[];Kc(b,a,c,[],d);return d}v("jsnx.algorithms.clique.find_cliques_recursive",Jc);v("jsnx.find_cliques_recursive",Jc);
function Kc(a,b,c,d,e){var f=-1,g=b.i(),m,p,x,w;for(p=Qa(c);(x=Wa(p,l))!==l;)if(x=Nb(b,a[x]),w=x.i(),w>f&&(m=x,f=w,w===g))return;C(b,function(c){c=Nb(b,a[c]);var d=c.i();d>f&&(m=c,f=d)});g=Ob(b,m);C(g,function(f){b.remove(f);d.push(f);var g=a[f];f=Nb(b,g);g=Nb(c,g);f.S()&&g.S()?e.push(Ea(d)):g.S()&&1===f.i()?e.push(Aa(d,f.F())):Kc(a,f,g,d,e);c.add(d.pop())})}function Lc(a,b){b!=l||(b=Ic(a));var c=0;O(b,function(a){c=a.length>c?a.length:c});return c}v("jsnx.algorithms.clique.graph_clique_number",Lc);
v("jsnx.graph_clique_number",Lc);function Mc(a,b){b!=l||(b=Ic(a));return Q(b).length}v("jsnx.algorithms.clique.graph_number_of_cliques",Mc);v("jsnx.graph_number_of_cliques",Mc);function Nc(a,b,c){c=c!=l?Va(c):Va(Ic(a));b!=l||(b=a.nodes());var d;if(ga(b))d={},z(b,function(a){d[a]=ta(c,function(b){return 0<=sa(b,a)||0<=sa(b,a+"")}).length});else{var e=b;d=ta(c,function(a){return 0<=sa(a,e)||0<=sa(a,e+"")}).length}return d}v("jsnx.algorithms.clique.number_of_cliques",Nc);v("jsnx.number_of_cliques",Nc);function Oc(a,b){if(a.A()!=b.A())return n;var c,d=a.p(),e=Bc(a),f=Nc(a),g=[];for(c in d)g.push([d[c],e[c],f[c]]);g.sort(function(a,b){return a[0]!==b[0]?a[0]-b[0]:a[1]!==b[1]?a[1]-b[1]:a[2]-b[2]});var d=b.p(),e=Bc(b),f=Nc(b),m=[];for(c in d)m.push([d[c],e[c],f[c]]);m.sort(function(a,b){return a[0]!==b[0]?a[0]-b[0]:a[1]!==b[1]?a[1]-b[1]:a[2]-b[2]});return!Ha(g,m,function(a,b){return Ha(a,b)})?n:k}v("jsnx.algorithms.isomorphism.could_be_isomorphic",Oc);v("jsnx.could_be_isomorphic",Oc);
function Pc(a,b){if(a.A()!=b.A())return n;var c,d=a.p(),e=Bc(a),f=[];for(c in d)f.push([d[c],e[c]]);f.sort(function(a,b){return a[0]!==b[0]?a[0]-b[0]:a[1]-b[1]});var d=b.p(),e=Bc(b),g=[];for(c in d)g.push([d[c],e[c]]);g.sort(function(a,b){return a[0]!==b[0]?a[0]-b[0]:a[1]-b[1]});return!Ha(f,g,function(a,b){return Ha(a,b)})?n:k}v("jsnx.algorithms.isomorphism.fast_could_be_isomorphic",Pc);v("jsnx.fast_could_be_isomorphic",Pc);
function Qc(a,b){if(a.A()!=b.A())return n;var c=Za(a.p());c.sort();var d=Za(b.p());d.sort();return!Ha(c,d)?n:k}v("jsnx.algorithms.isomorphism.faster_could_be_isomorphic",Qc);v("jsnx.faster_could_be_isomorphic",Qc);function Rc(){}Rc.ha=function(){return Rc.ja?Rc.ja:Rc.ja=new Rc};Rc.prototype.Da=0;Rc.ha();function Sc(a){if(!t(a))return n;for(var b=0,c=a.length;b<c;b++)if(window.isNaN(a[b]))return n;return k}v("jsnx.utils.misc.is_list_of_ints",Sc);v("jsnx.utils.is_list_of_ints",Sc);function Tc(a){var b=0;return Sa(a,function(a){return b+=a})}v("jsnx.utils.misc.cumulative_sum",Tc);v("jsnx.utils.cumulative_sum",Tc);function Uc(){return":"+(Rc.ha().Da++).toString(36)}v("jsnx.utils.misc.generate_unique_node",Uc);v("jsnx.utils.generate_unique_node",Uc);function xc(a,b){if("eg"===b)return Vc(a);if(b==l||"hh"===b)return Wc(a);h(new Xb("`opt_method` must be 'eg' or 'hh'"))}v("jsnx.algorithms.graphical.is_valid_degree_sequence",xc);v("jsnx.is_valid_degree_sequence",xc);function Wc(a){if(0===a.length)return k;if(!Sc(a)||0>Math.min.apply(l,a)||0!==K.t.apply(l,a)%2)return n;for(a=Ea(a);0<a.length;){y.sort.call(a,Na);if(0>a[0])break;var b=a.pop();if(0===b)return k;if(b>a.length)break;for(var c=a.length-1,b=a.length-(b+1);c>b;c--)a[c]-=1}return n}
v("jsnx.algorithms.graphical.is_valid_degree_sequence_havel_hakimi",Wc);v("jsnx.is_valid_degree_sequence_havel_hakimi",Wc);
function Vc(a){if(0===a.length)return k;if(!Sc(a)||0>Math.min.apply(l,a)||0!==K.t.apply(l,a)%2)return n;var b=a.length,c=Ea(a).sort(function(a,b){return b-a}),d=[],e;e=1;for(a=c.length;e<a;e++)c[e]<c[e-1]&&d.push(e);var f,g;e=0;for(a=d.length;e<a;e++)if(f=K.t.apply(l,c.slice(0,d[e])),g=d[e]*(d[e]-1)+K.t.apply(l,Va(Sa(R(d[e],b),function(a){return Math.min(d[e],c[a])}))),f>g)return n;return k}v("jsnx.algorithms.graphical.is_valid_degree_sequence_erdos_gallai",Vc);
v("jsnx.is_valid_degree_sequence_erdos_gallai",Vc);function Xc(a){try{return Yc(a),k}catch(b){if(b instanceof $b)return n;h(b)}}v("jsnx.algorithms.dag.is_directed_acyclic_graph",Xc);v("jsnx.is_directed_acyclic_graph",Xc);
function Yc(a,b){a.c()||h(new W("Topological sort not defined on undirected graphs."));var c={},d=[],e={};b!=l||(b=a.v());O(b,function(b){if(!(b in e))for(b=[b];0<b.length;){var g=b[b.length-1];if(g in e)b.pop();else{c[g]=k;var m=[];D(a.e(g),function(a,b){b in e||(b in c&&h(new $b("Graph contains a cycle")),m.push(b))});0<m.length?b.push.apply(b,m):(e[g]=k,Fa(d,aa,0,g.toString()))}}});return d}v("jsnx.algorithms.dag.topological_sort",Yc);v("jsnx.topological_sort",Yc);
function Zc(a,b){function c(a,b,d,e){b.add(e);D(a.e(e),function(e,p){if(b.contains(p))b.contains(p)&&!(0<=sa(d,p))&&h(new $b("Graph contains a cycle"));else if(!c(a,b,d,p))return n});Fa(d,aa,0,e.toString());return k}a.c()||h(new W("Topological sort not defined on undirected graphs."));var d=new V,e=[];b!=l||(b=a.v());O(b,function(b){!(0<=sa(e,b))&&!c(a,d,e,b)&&h(new $b("Graph contains a cycle"))});return e}v("jsnx.algorithms.dag.topological_sort_recursive",Zc);
v("jsnx.topological_sort_recursive",Zc);var ad=function $c(b){b.c()||h(new W("is_aperiodic not defined for undirected graphs."));var c=b.v().next(),d={};d[c]=0;for(var c=[c],e=0,f=1;0<c.length;){var g=[];z(c,function(c){D(b.e(c),function(b,x){x in d?e=tb(e,d[c]-d[x]+1):(g.push(x),d[x]=f)})});c=g;f+=1}return jb(d)===jb(b)?1===e:1===e&&$c(b.w(Ob(new V(b.nodes()),G(d))))};v("jsnx.algorithms.dag.is_aperiodic",ad);v("jsnx.is_aperiodic",ad);function bd(a,b,c){var d={},e=0,f={};for(f[b]=1;0<E(f);){b=f;f={};D(b,function(b,c){c in d||(d[c]=e,J(f,a.e(c)))});if(ja(c)&&c<=e)break;e+=1}return d}v("jsnx.algorithms.shortest_paths.unweighted.single_source_shortest_path_length",bd);v("jsnx.single_source_shortest_path_length",bd);function cd(a,b){var c={};O(a,function(d){c[d]=bd(a,d,b)});return c}v("jsnx.algorithms.shortest_paths.unweighted.all_pairs_shortest_path_length",cd);v("jsnx.all_pairs_shortest_path_length",cd);
function dd(a,b,c){b=b.toString();c=c.toString();c=ed(a,b,c);a=c[0];b=c[1];c=c[2];for(var d=[];c!=l;)d.push(c),c=b[c];for(c=a[d[0]];c!=l;)d.unshift(c),c=a[c];return d}v("jsnx.algorithms.shortest_paths.unweighted.bidirectional_shortest_path",dd);v("jsnx.bidirectional_shortest_path",dd);
function ed(a,b,c){(!s(b)||!s(c))&&h(new Xb("Bidirectional shortest path called without source or target"));var d={},e={};if(c===b)return d[c]=l,e[b]=l,[d,e,b];var f,g;a.c()?(f=a.ma,g=a.fa):g=f=a.V;d[b]=l;e[c]=l;for(var m=[b],p=[c],x,w;0<m.length&&0<p.length&&!w;)m.length<=p.length?(x=m,m=[],z(x,function(b){w||C(g.call(a,b),function(a){w||(a in d||(m.push(a),d[a]=b),a in e&&(w=[d,e,a]))})})):(x=p,p=[],z(x,function(b){w||C(f.call(a,b),function(a){w||(a in e||(e[a]=b,p.push(a)),a in d&&(w=[d,e,a]))})}));
if(w)return w;h(new ac("No path between "+b+" and "+c+"."))}function fd(a,b,c){b=b.toString();var d=0,e={};e[b]=1;var f={};f[b]=[b];if(0===c)return f;for(;0<E(e)&&!(b=e,e={},D(b,function(b,c){D(a.e(c),function(a,b){b in f||(f[b]=f[c].concat([b]),e[b]=1)})}),d+=1,s(c)&&c<=d););return f}v("jsnx.algorithms.shortest_paths.unweighted.single_source_shortest_path",fd);v("jsnx.single_source_shortest_path",fd);function gd(a,b){var c={};O(a,function(d){c[d]=fd(a,d,b)});return c}
v("jsnx.algorithms.shortest_paths.unweighted.all_pairs_shortest_path",gd);v("jsnx.all_pairs_shortest_path",gd);function hd(a,b,c,d,e){b=b.toString();var f=0,g=[b],m={};m[b]=f;var p={};for(p[b]=[];0<g.length&&!(f+=1,b=g,g=[],z(b,function(b){D(a.e(b),function(a,c){c in m?m[c]===f&&p[c].push(b):(p[c]=[b],m[c]=f,g.push(c))})}),d!=l&&d<=f););return c!=l?(c=c.toString(),e?!(c in p)?[[],-1]:[p[c],m[c]]:!(c in p)?[]:p[c]):e?[p,m]:p}v("jsnx.algorithms.shortest_paths.unweighted.predecessor",hd);
v("jsnx.predecessor",hd);function id(a,b,c){var d=b;ka(b)&&(d={},C(a.v(),function(a){d[a]=b(a)}));return!s(c)||c?jd(a,d):kd(a,d)}v("jsnx.relabel.relabel_nodes",id);v("jsnx.relabel_nodes",id);
function kd(a,b){var c=new V(G(b)),d;if(0<Nb(c,b).i()){c=new Y(qb(b));c.B(c.Y());try{d=Yc(c)}catch(e){e instanceof $b&&h(new $b("The node label sets are overlapping and no ordering can resolve the mapping. Use copy=True."))}d.reverse()}else d=c;var f=a.m(),g=a.c(),m;C(d,function(c){var d;c in b&&(d=b[c],a.l(c)||h(new W("Node "+c+" is not in the graph.")),a.D(d,a.node[c]),f?(m=ua(a.q(c,k,k),function(a){return[d,a[1],a[2],a[3]]}),g&&(m=Aa(m,ua(a.R(c,k,k),function(a){return[a[0],d,a[2],a[3]]})))):(m=
ua(a.q(c,k),function(a){return[d,a[1],a[2]]}),g&&(m=Aa(m,ua(a.R(c,k),function(a){return[a[0],d,a[2]]})))),a.N(c),a.b(m))});return a}
function jd(a,b){var c=new a.constructor;c.name("("+a.name()+")");a.m()?c.b(Sa(a.f(l,k,k),function(a){return[I(b,a[0],a[0]),I(b,a[1],a[1]),a[2],bb(a[3])]})):c.b(Sa(a.f(l,k),function(a){return[I(b,a[0],a[0]),I(b,a[1],a[1]),bb(a[2])]}));c.j(Sa(L(a),function(a){return I(b,a,a)}));var d={},e;for(e in a.node)d[I(b,e,e)]=bb(a.node[e]);J(c.node,d);J(c.graph,bb(a.graph));return c}
function ld(a,b,c,d){3===arguments.length&&ia(c)?(d=c,c=l):2===arguments.length&&(ia(b)?(d=b,b=l):u(b)&&(c=b,b=l));b!=l||(b=0);c!=l||(c="default");d!=l||(d=k);var e={},f,g,m,p;if("default"===c){f=a.nodes();g=0;m=b;for(p=f.length;g<p;g++,m++)e[f[g]]=m}else if("sorted"===c){f=a.nodes();f.sort();g=0;m=b;for(p=f.length;g<p;g++,m++)e[f[g]]=m}else if("increasing degree"===c){f=Va(a.s());f.sort(function(a,b){return a[1]-b[1]});g=0;m=b;for(p=f.length;g<p;g++,m++)e[f[g][0]]=m}else if("decreasing degree"===
c){f=Va(a.s());f.sort(function(a,b){return b[1]-a[1]});g=0;m=b;for(p=f.length;g<p;g++,m++)e[f[g][0]]=m}else h(new W("Unkown node ordering: "+c));g=id(a,e);g.name("("+a.name()+")_with_int_labels");d||(g.node_labels=e);return g}v("jsnx.relabel.convert_node_labels_to_integers",ld);v("jsnx.convert_node_labels_to_integers",ld);function Z(a,b){if(!(this instanceof Z))return new Z(a,b);N.call(this,a,b)}ra(Z,N);v("jsnx.classes.MultiGraph",Z);v("jsnx.MultiGraph",Z);Z.__name__="MultiGraph";
Z.prototype.a=function(a,b,c,d){var e,f;c!=l&&(!u(c)&&!ja(c))&&(d=c,c=l);d=d||{};"object"!==r(d)&&h(new W("The attr_dict argument must be an object."));a in this.adj||(this.adj[a]={},this.node[a]={});b in this.adj||(this.adj[b]={},this.node[b]={});if(b in this.adj[a]){f=this.adj[a][b];if(c==l)for(c=E(f);c in f;)c+=1;e=I(f,""+c,{});J(e,d);f[c]=e}else c!=l||(c=0),e={},J(e,d),f=gb(c,e),this.adj[a][b]=f,this.adj[b][a]=f};Z.prototype.add_edge=Z.prototype.a;
Z.prototype.b=function(a,b){b=b||{};"object"!==r(b)&&h(new W("The attr_dict argument must be an object."));O(a,function(a){var d=jb(a),e,f,g=l,m={};4===d?(e=a[0],f=a[1],g=a[2],m=a[3]):3===d?(e=a[0],f=a[1],m=a[2]):2===d?(e=a[0],f=a[1]):h(new W("Edge tuple "+ec(a)+" must be a 2-tuple, 3-tuple or 4-tuple."));a=e in this.adj?I(this.adj[e],f,{}):{};if(g==l)for(g=E(a);g in a;)g+=1;a=I(a,g,{});J(a,b,m);this.a(e,f,g,a)},this)};Z.prototype.add_edges_from=Z.prototype.b;
Z.prototype.u=function(a,b,c){(!(a in this.adj)||!(b in this.adj[a]))&&h(new W("The edge "+a+"-"+b+" is not in the graph"));var d=this.adj[a][b];c!=l?(c in d||h(new W("The edge "+a+"-"+b+" with key "+c+" is not in the graph")),H(d,c)):H(d,Ya(d));0===E(d)&&(H(this.adj[a],b),a!=b&&H(this.adj[b],a))};Z.prototype.remove_edge=Z.prototype.u;Z.prototype.B=function(a){O(a,function(a){try{this.u(a[0],a[1],a[2])}catch(c){c instanceof W||h(c)}},this)};Z.prototype.remove_edges_from=Z.prototype.B;
Z.prototype.J=function(a,b,c){return c!=l?a in this.adj&&b in this.adj[a]&&c in this.adj[a][b]:a in this.adj&&b in this.adj[a]};Z.prototype.has_edge=Z.prototype.J;Z.prototype.q=function(a,b,c){return Va(this.f(a,b,c))};Z.prototype.edges=Z.prototype.q;
Z.prototype.f=function(a,b,c){ia(a)&&(ia(b)&&(c=b),b=a,a=l);var d={},e,f;a=a!=l?P(this.d(a),function(a){return[a,this.adj[a]]},this):U(this.adj);return b?S(a,function(a){e=a[0];var b=new B,c=U(a[1]);b.next=function(){try{return c.next()}catch(a){a===A&&(d[e]=1),h(a)}};return b},function(a){f=a[0];if(!(f in d))return U(a[1])},function(a){return c?[e,f,a[0],a[1]]:[e,f,a[1]]}):S(a,function(a){e=a[0];var b=new B,c=U(a[1]);b.next=function(){try{return c.next()}catch(a){a===A&&(d[e]=1),h(a)}};return b},
function(a){f=a[0];if(!(f in d))return U(a[1])},function(a){return c?[e,f,a[0]]:[e,f]})};Z.prototype.edges_iter=Z.prototype.f;Z.prototype.P=function(a,b,c,d){s(d)||(d=l);return a in this.adj&&b in this.adj[a]?c!=l?I(this.adj[a][b],""+c,d):this.adj[a][b]:d};Z.prototype.get_edge_data=Z.prototype.P;
Z.prototype.s=function(a,b){var c;c=a!=l?P(this.d(a),function(a){return[a,this.adj[a]]},this):U(this.adj);return b!=l?Sa(c,function(a){var c=a[0];a=a[1];var f=0;D(a,function(a){D(a,function(a){f+=I(a,b,1)})});c in a&&D(a[c],function(a){f+=I(a,b,1)});return[c,f]}):Sa(c,function(a){var b=a[0];a=a[1];var c=0;D(a,function(a){c+=E(a)});return[b,c+ +(b in a&&E(a[b]))]})};Z.prototype.degree_iter=Z.prototype.s;Z.prototype.m=da(k);Z.prototype.is_multigraph=Z.prototype.m;Z.prototype.c=da(n);
Z.prototype.is_directed=Z.prototype.c;Z.prototype.C=function(){var a=new $;a.j(this);a.b(function(){var a,c;return S(this.o(),function(c){a=c[0];return U(c[1])},function(a){c=a[0];return U(a[1])},function(d){return[a,c,d[0],T(d[1])]})}.call(this));a.graph=T(this.graph);a.node=T(this.node);return a};Z.prototype.to_directed=Z.prototype.C;
Z.prototype.Y=function(a,b){var c=[];a?b?D(this.adj,function(a,b){b in a&&D(a[b],function(a,d){c.push([b,b,d,a])})}):D(this.adj,function(a,b){b in a&&D(a[b],function(a){c.push([b,b,a])})}):b?D(this.adj,function(a,b){b in a&&D(a[b],function(a,d){c.push([b,b,d])})}):D(this.adj,function(a,b){b in a&&D(a[b],function(){c.push([b,b])})});return c};Z.prototype.selfloop_edges=Z.prototype.Y;Z.prototype.L=function(a,b){return a==l?this.size():a in this.adj&&b in this.adj[a]?E(this.adj[a][b]):0};
Z.prototype.number_of_edges=Z.prototype.L;Z.prototype.w=function(a){a=this.d(a);var b=new this.constructor,c=b.adj,d=this.adj;C(a,function(a){var b={};c[a]=b;D(d[a],function(d,m){if(m in c){var p=bb(d);b[m]=p;c[m][a]=p}})});D(this.node,function(a,c){b.node[c]=a});b.graph=this.graph;return b};Z.prototype.subgraph=Z.prototype.w;function $(a,b){if(!(this instanceof $))return new $(a,b);Y.call(this,a,b)}ra($,Y);var md=$.prototype,nd=Z.prototype,od;for(od in nd)nd.hasOwnProperty(od)&&"constructor"!==od&&(md[od]=nd[od]);v("jsnx.classes.MultiDiGraph",$);v("jsnx.MultiDiGraph",$);$.__name__="MultiDiGraph";
$.prototype.a=function(a,b,c,d){var e,f;c!=l&&(!u(c)&&!ja(c))&&(d=c,c=l);d=d||{};"object"!==r(d)&&h(new W("The attr_dict argument must be an object."));a in this.succ||(this.succ[a]={},this.pred[a]={},this.node[a]={});b in this.succ||(this.succ[b]={},this.pred[b]={},this.node[b]={});if(b in this.succ[a]){f=this.adj[a][b];if(c==l)for(c=E(f);c in f;)c+=1;e=I(f,c.toString(),{});J(e,d);f[c]=e}else c!=l||(c=0),e={},J(e,d),f=gb(c,e),this.succ[a][b]=f,this.pred[b][a]=f};$.prototype.add_edge=$.prototype.a;
$.prototype.u=function(a,b,c){(!(a in this.adj)||!(b in this.adj[a]))&&h(new W("The edge "+a+"-"+b+" is not in the graph"));var d=this.adj[a][b];c!=l?(c in d||h(new W("The edge "+a+"-"+b+" with key "+c+" is not in the graph")),H(d,c)):H(d,Ya(d));0===E(d)&&(H(this.succ[a],b),H(this.pred[b],a))};$.prototype.remove_edge=$.prototype.u;
$.prototype.f=function(a,b,c){ia(a)&&(ia(b)&&(c=b),b=a,a=l);var d,e;a=a!=l?P(this.d(a),function(a){return[a,this.adj[a]]},this):qb(this.adj);return b?S(a,function(a){d=a[0];return U(a[1])},function(a){e=a[0];return U(a[1])},function(a){return c?[d,e,a[0],a[1]]:[d,e,a[1]]}):S(a,function(a){d=a[0];return U(a[1])},function(a){e=a[0];return U(a[1])},function(a){return c?[d,e,a[0]]:[d,e]})};$.prototype.edges_iter=$.prototype.f;$.prototype.aa=$.prototype.f;$.prototype.out_edges_iter=$.prototype.aa;
$.prototype.da=function(a,b,c){return Va(this.aa(a,b,c))};$.prototype.out_edges=$.prototype.da;$.prototype.H=function(a,b,c){ia(a)&&(b=a,a=l);var d,e;a=a!=l?P(this.d(a),function(a){return[a,this.pred[a]]},this):qb(this.pred);return b?S(a,function(a){d=a[0];return U(a[1])},function(a){e=a[0];return U(a[1])},function(a){return c?[e,d,a[0],a[1]]:[e,d,a[1]]}):S(a,function(a){d=a[0];return U(a[1])},function(a){e=a[0];return U(a[1])},function(a){return c?[e,d,a[0]]:[e,d]})};$.prototype.in_edges_iter=$.prototype.H;
$.prototype.R=function(a,b,c){return Va(this.H(a,b,c))};$.prototype.in_edges=$.prototype.R;
$.prototype.s=function(a,b){var c;c=a!=l?lb(Sa(this.d(a),function(a){return[a,this.succ[a]]},this),Sa(this.d(a),function(a){return[a,this.pred[a]]},this)):lb(U(this.succ),U(this.pred));return b!=l?P(c,function(a){var c=a[0][1],f=0;D(a[1][1],function(a){D(a,function(a){f+=+I(a,b,1)})});D(c,function(a){D(a,function(a){f+=+I(a,b,1)})});return[a[0][0],f]}):P(c,function(a){var b=0,c=0;D(a[1][1],function(a){b+=jb(a)});D(a[0][1],function(a){c+=jb(a)});return[a[0][0],b+c]})};$.prototype.degree_iter=$.prototype.s;
$.prototype.Q=function(a,b){var c;c=a!=l?P(this.d(a),function(a){return[a,this.pred[a]]},this):U(this.pred);return b!=l?P(c,function(a){var c=0;D(a[1],function(a){D(a,function(a){c+=+I(a,b,1)})});return[a[0][0],c]}):P(c,function(a){var b=0;D(a[1],function(a){b+=E(a)});return[a[0],b]})};$.prototype.in_degree_iter=$.prototype.Q;
$.prototype.W=function(a,b){var c;c=a!=l?P(this.d(a),function(a){return[a,this.succ[a]]},this):U(this.succ);return b!=l?P(c,function(a){var c=0;D(a[1],function(a){D(a,function(a){c+=+I(a,b,1)})});return[a[0][0],c]}):P(c,function(a){var b=0;D(a[1],function(a){b+=E(a)});return[a[0],b]})};$.prototype.out_degree_iter=$.prototype.W;$.prototype.m=da(k);$.prototype.is_multigraph=$.prototype.m;$.prototype.c=da(k);$.prototype.is_directed=$.prototype.c;$.prototype.C=function(){return rb(this)};
$.prototype.to_directed=$.prototype.C;$.prototype.O=function(a){var b=new Z;b.name(this.name());b.j(this);var c,d;a?b.b(S(this.o(),function(a){c=a[0];return U(a[1])},function(a){d=a[0];return U(a[1])},qa(function(a){if(this.J(d,c,a[0]))return[c,d,a[0],T(a[1])]},this))):b.b(S(this.o(),function(a){c=a[0];return U(a[1])},function(a){d=a[0];return U(a[1])},function(a){return[c,d,a[0],T(a[1])]}));b.graph=T(this.graph);b.node=T(this.node);return b};$.prototype.to_undirected=$.prototype.O;
$.prototype.w=function(a){a=this.d(a);var b=new this.constructor,c=b.succ,d=b.pred,e=this.succ;C(a,function(a){c[a]={};d[a]={}});O(c,function(a){var b=c[a];D(e[a],function(e,p){if(p in c){var x=bb(e);b[p]=x;d[p][a]=x}})});O(b,function(a){b.node[a]=this.node[a]},this);b.graph=this.graph;return b};$.prototype.subgraph=$.prototype.w;
$.prototype.reverse=function(a){(a=!s(a)||a)?(a=new this.constructor(l,{name:"Reverse of ("+this.name()+")"}),a.j(this),a.b(Sa(this.f(l,k,k),function(a){return[a[1],a[0],a[2],T(a[3])]})),a.graph=T(this.graph),a.node=T(this.node)):(a=this.succ,this.succ=this.pred,this.pred=a,this.adj=this.succ,a=this);return a};$.prototype.reverse=$.prototype.reverse;function pd(a){return a.nodes()}v("jsnx.classes.func.nodes",pd);v("jsnx.nodes",pd);function qd(a){return a.v()}v("jsnx.classes.func.nodes_iter",qd);v("jsnx.nodes_iter",qd);function rd(a,b){return a.q(b)}v("jsnx.classes.func.edges",rd);v("jsnx.edges",rd);v("jsnx.edges_iter",function(a,b){return a.f(b)});v("jsnx.degree",function(a,b,c){return a.p(b,c)});function sd(a,b){return a.K(b)}v("jsnx.classes.func.neighbors",sd);v("jsnx.neighbors",sd);v("jsnx.number_of_nodes",function(a){return a.M()});
function td(a){return a.L()}v("jsnx.classes.func.number_of_edges",td);v("jsnx.number_of_edges",td);function ud(a){var b=a.M(),c=a.L();return 0===c?0:a.c()?c/(b*(b-1)):2*c/(b*(b-1))}v("jsnx.classes.func.density",ud);v("jsnx.density",ud);function vd(a){a=Za(a.p());var b=Math.max.apply(Math,a)+1,c=Oa(b);z(a,function(a){c[a]+=1});return c}v("jsnx.classes.func.degree_histogram",vd);v("jsnx.degree_histogram",vd);function wd(a){return a.c()}v("jsnx.classes.func.is_directed",wd);v("jsnx.is_directed",wd);
function zd(a){function b(){h(new W("Frozen graph can't be modified"))}a.add_node=a.D=b;a.add_nodes_from=a.j=b;a.remove_node=a.N=b;a.remove_nodes_from=a.X=b;a.add_edge=a.a=b;a.add_edges_from=a.b=b;a.remove_edge=a.u=b;a.remove_edges_from=a.B=b;a.clear=a.clear=b;a.frozen=a.ya=k;return a}v("jsnx.classes.func.freeze",zd);v("jsnx.freeze",zd);function Ad(a){return!!a.ya}v("jsnx.classes.func.is_frozen",Ad);v("jsnx.is_frozen",Ad);function Bd(a,b){return a.w(b)}v("jsnx.classes.func.subgraph",Bd);
v("jsnx.subgraph",Bd);function Cd(a,b){s(b)||(b=k);var c=new a.constructor;b&&c.j(a);return c}v("jsnx.classes.func.create_empty_copy",Cd);v("jsnx.create_empty_copy",Cd);
function Dd(a,b){var c="";if(b!=l)a.l(b)||h(new W("node "+b+" not in graph")),c=c+("Node "+b+" has the following properties:\n")+("Degree: "+a.p(b)+"\n"),c+="Neighbors: "+a.K(b).join(" ");else{var c=c+("Name: "+a.name()+"\n"),c=c+("Type: "+a.constructor.__name__+"\n"),c=c+("Number of nodes: "+a.M()+"\n"),c=c+("Number of edges: "+a.L()+"\n"),d=a.M();if(0<d)if(a.c())c+="Average in degree: "+(K.t.apply(l,Za(a.ia()))/d).toFixed(4)+"\n",c+="Average out degree: "+(K.t.apply(l,Za(a.la()))/d).toFixed(4);
else var e=K.t.apply(l,Za(a.p())),c=c+("Average degree: "+(e/d).toFixed(4))}return c}v("jsnx.classes.func.info",Dd);v("jsnx.info",Dd);function Ed(a,b,c){D(c,function(c,e){a.node[e][b]=c})}v("jsnx.classes.func.set_node_attributes",Ed);v("jsnx.set_node_attributes",Ed);function Fd(a,b){var c={};D(a.ka,function(a,e){b in a&&(c[e]=a[b])});return c}v("jsnx.classes.func.get_node_attributes",Fd);v("jsnx.get_node_attributes",Fd);function Gd(a,b,c){D(c,function(b,c){c=c.split(",");a.e(c[0])[c[1]]=b})}
v("jsnx.classes.func.set_edge_attributes",Gd);v("jsnx.set_edge_attributes",Gd);function Hd(a,b){var c={};D(a.q(l,k),function(a){b in a[2]&&(c[[a[0],a[1]]]=a[2][b])});return c}v("jsnx.classes.func.get_edge_attributes",Hd);v("jsnx.get_edge_attributes",Hd);v("jsnx.version","0.1");}));