diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..26d33521af10bcc7fd8cea344038eaaeb78d0ef5 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/.idea/.name b/.idea/.name new file mode 100644 index 0000000000000000000000000000000000000000..5a69bacc39b1251762ac4d37eec71b298dbc8483 --- /dev/null +++ b/.idea/.name @@ -0,0 +1 @@ +ANN_CLIQUES.py \ No newline at end of file diff --git a/.idea/encodings.xml b/.idea/encodings.xml new file mode 100644 index 0000000000000000000000000000000000000000..d30021a68c1faf9e2b9de4101a54e7513d310a9b --- /dev/null +++ b/.idea/encodings.xml @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="Encoding"> + <file url="file://$PROJECT_DIR$/node2vec/src/graph/test.npy" charset="windows-1252" /> + <file url="file://$PROJECT_DIR$/node2vec/src/graph/test_Cliques.npy" charset="UTF-16" /> + </component> +</project> \ No newline at end of file diff --git a/.idea/inspectionProfiles/profiles_settings.xml b/.idea/inspectionProfiles/profiles_settings.xml new file mode 100644 index 0000000000000000000000000000000000000000..105ce2da2d6447d11dfe32bfb846c3d5b199fc99 --- /dev/null +++ b/.idea/inspectionProfiles/profiles_settings.xml @@ -0,0 +1,6 @@ +<component name="InspectionProjectProfileManager"> + <settings> + <option name="USE_PROJECT_PROFILE" value="false" /> + <version value="1.0" /> + </settings> +</component> \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000000000000000000000000000000000000..d74c693dc5304279878d65b4aef38bd530bf234c --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="ProjectRootManager" version="2" project-jdk-name="Python 3.7 (pythonProject2)" project-jdk-type="Python SDK" /> +</project> \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000000000000000000000000000000000000..4c11b57551dea59c31acc637ba17a0c93b4e7bd8 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="ProjectModuleManager"> + <modules> + <module fileurl="file://$PROJECT_DIR$/.idea/walid.iml" filepath="$PROJECT_DIR$/.idea/walid.iml" /> + </modules> + </component> +</project> \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000000000000000000000000000000000000..94a25f7f4cb416c083d265558da75d457237d671 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="VcsDirectoryMappings"> + <mapping directory="$PROJECT_DIR$" vcs="Git" /> + </component> +</project> \ No newline at end of file diff --git a/.idea/walid.iml b/.idea/walid.iml new file mode 100644 index 0000000000000000000000000000000000000000..27f767c032ae2d7b17c72b8038788a7f57f7704b --- /dev/null +++ b/.idea/walid.iml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<module type="PYTHON_MODULE" version="4"> + <component name="NewModuleRootManager"> + <content url="file://$MODULE_DIR$" /> + <orderEntry type="jdk" jdkName="Python 3.7 (pythonProject2)" jdkType="Python SDK" /> + <orderEntry type="sourceFolder" forTests="false" /> + </component> +</module> \ No newline at end of file diff --git a/ANN.py b/ANN.py new file mode 100644 index 0000000000000000000000000000000000000000..79d3a857cff97f3731ca5a8621d3e45941915b23 --- /dev/null +++ b/ANN.py @@ -0,0 +1,112 @@ +import random +import numpy as np,os +import numba as nb +import time +import networkx as nx + +def delta(A,B,U,m): + for i in nb.prange(len(U)): + z = np.zeros(len(U)) + x = np.zeros(len(U)) + c = np.asarray([i+1], dtype=np.str) + if( np.count_nonzero(V == 1) > 0): + if c[0] in O.nodes(): + for j in range(len(U)): + m = np.asarray([i+1 , j+1], dtype=np.str) + if V[j] != 0 and (m[1] in O.nodes() and O.number_of_edges(m[0], m[1]) != 0): + x[i] = x[i] + else: + x[i] = x[i] + V[j] + U[i] = U[i] + (-x[i] + B * h(i,x[i])) +def h(i,r): + if r + V[i] == 0: + return 1 + else: + return 0 +def output(X): + for i in range(len(X)): + if (X[i] > 0): + V[i] = 1 + else: + V[i] = 0 + +def CHANGE(A): + N = [] + E = A + R = O.edges + x = list(O.nodes()) + for i in range(len(U)): + if U[i] > 0: + print("true") + N.append(i+1) + if len(N) > 0: + for k in x: + for v in x: + if v in x and k in x and O.number_of_edges(k, v) > 0: + O.remove_edge(k, v) + A = O.edges + + print("new len A",len(A)) + return A +def Remplire(i): + x = lab[i] + for i in range(len(U)): + if U[i] >= 0 and x[i] > 0: + Ufin[i] = U[i] + +def Arrange(x,i): + t=0 + y=lab[i] + for i in range(len(x)): + if y[i] == 1: + x[i] = B + else: + x[i] = random.uniform(-400.5,-0.5) + +lab = np.load("data/clique_2/labels.npy",allow_pickle=True) +dat = np.load("data/clique_2/sam.npy",allow_pickle=True) +start = time.time() +outputs = [] + +for i in range(len(lab)): + + print(dat[i]) + O = nx.Graph() + O.add_edges_from(dat[i], nodetype=int) + m = np.array(O.nodes) + size = O.number_of_nodes() + print("====== Increasing embedding step =======") + adj = np.count_nonzero(lab[i] == 1) + size = len(lab[i]) + + Ufin = np.random.uniform(-19,-1,size)*0 + x = 1 + U = np.random.uniform(-19,-1,size) + V = np.random.randint(1,size=size) + B = (adj / (size * (len(dat[i]) * 2 / (size * (size - 1))))) * 20 + while len(dat[0]) > 0: + x = x+1 + U = np.random.uniform(-19,-1,size) + delta(dat,B,U,m) + output(U) + dat[i] = CHANGE(dat[i]) + Remplire(i) + + O = nx.Graph() + O.add_edges_from(dat[i]) + m = np.array(O.nodes) + out = np.asarray(Ufin) + Arrange(Ufin,i) + output(Ufin) + outputs.append(out) + print("les resultats") + print(np.count_nonzero(Ufin > 0)) + print(np.count_nonzero(V == 1)) + print(np.count_nonzero(lab[i] == 1)) +end = time.time() +print("====== End of increasing ======") +print("Time", end-start) + +out = np.asarray(outputs) +print(out.shape) +np.save(os.path.join("INoutput_data.npy"), out) # generation des outputs""" diff --git a/ANN_CLIQUES.py b/ANN_CLIQUES.py new file mode 100644 index 0000000000000000000000000000000000000000..7eb392f5ef5262067cfadb1128d3a83a5a962c4d --- /dev/null +++ b/ANN_CLIQUES.py @@ -0,0 +1,132 @@ +import random +import numpy as np,os +import numba as nb +import time +import networkx as nx + +def delta(A,B,U,m,V,O): + for i in nb.prange(len(U)): + z = np.zeros(len(U)) + x = np.zeros(len(U)) + c = np.asarray([i+1], dtype=np.str) + if( np.count_nonzero(V == 1) > 0): + if c[0] in O.nodes(): + for j in range(len(U)): + m = np.asarray([i+1 , j+1], dtype=np.str) + if V[j] != 0 and (m[1] in O.nodes() and O.number_of_edges(m[0], m[1]) != 0): + x[i] = x[i] + else: + x[i] = x[i] + V[j] + U[i] = U[i] + (-x[i] + B * h(i,x[i],V)) +def h(i,r,V): + if r + V[i] == 0: + return 1 + else: + return 0 +def output(X,V): + for i in range(len(X)): + if (X[i] > 0): + V[i] = 1 + else: + V[i] = 0 + +def CHANGE(A,O,U): + N = [] + E = A + R = O.edges + x = list(O.nodes()) + for i in range(len(U)): + if U[i] > 0: + N.append(i+1) + + if len(N) > 0: + for k in x: + for v in x: + if v in x and k in x and O.number_of_edges(k,v) > 0: + O.remove_edge(k, v) + A = O.edges + + + return A +def Remplire(U,Ufin,lab): + for i in range(len(U)): + if U[i] >= 0 and lab[i] > 0: + Ufin[i] = U[i] +""" + else: + if lab[i] == 0: + Ufin[i] = random.uniform(-400.5, -0.5) + else: + Ufin[i] = random.uniform(0.5, 400.5) +""" +def Arrange(lab, x, B, V): + t=0 + y=0 + for i in range(len(x)): + if lab[i] == 1: + x[i] = B + V[i] = 1 + else: + x[i] = -B + V[i] = 0 + + +def PatternFinding(dat,lab): + + O = nx.Graph(dat) + m = np.array(O.nodes) + size = O.number_of_nodes() + print("====== Increasing embedding step =======") + adj = np.count_nonzero(lab == 1) + size = len(lab) + for i in range(1): + Ufin = np.random.uniform(-1, 0, size) * 0 + #print("ufin",Ufin) + #print(len(dat) * 2 / ((size-1) * (size - 1))) + x = 1 + U = np.random.uniform(-1, 0, size) + V = np.random.randint(1, size=size) + B = (adj / (size * (len(list(O.edges)) * 2 / (size * (size - 1))))) + #print("B",B) + Arrange(lab,Ufin,B,V) + #print(np.count_nonzero(V == 1)) + #print(np.count_nonzero(lab == 1)) + """ + while len(dat) > 0: + x = x + 1 + U = np.random.uniform(-19, -1, size) + delta(dat, B, U, m, V, O) + output(U, V) + # print(np.count_nonzero(U >= 0)) + # print(np.count_nonzero(lab == 1)) + dat = CHANGE(dat, O, U) + print("hna") + Remplire(U,Ufin,lab) + # print("size",np.count_nonzero(Ufin >= 0),np.count_nonzero(U >= 0)) + # print(len(dat)) + O = nx.Graph(dat) + #O.add_edges_from(dat) + m = np.array(O.nodes) + out = np.asarray(Ufin) + Arrange(lab, Ufin, B) + output(Ufin, V) + outputs.append(out) + print(np.count_nonzero(Ufin > 0)) + print(np.count_nonzero(V == 1)) + print(np.count_nonzero(lab == 1))1 + """ + #end = time.time() + #print("====== End of increasing ======") + #print("Time", end - start) + out = np.asarray(Ufin) + + #out = np.asarray(outputs) + # print(outputs) + # print(lab) + np.save(os.path.join("INoutput_data_val.npy"), out) # generation des outputs""" + +#lab = np.load("node2vec/src/graph/labfin.npy",allow_pickle=True) +#dat = np.load("node2vec/src/graph/sam.npy",allow_pickle=True) +#print(lab) +#print(type(dat)) +#PatternFinding(dat,lab) \ No newline at end of file diff --git a/Bip_selection.py b/Bip_selection.py new file mode 100644 index 0000000000000000000000000000000000000000..fe30c51547d74107eb0442a7f6cba9e84b40811e --- /dev/null +++ b/Bip_selection.py @@ -0,0 +1,35 @@ + +import random,numpy as np,os + +def Voisin(x,k): + if len(k) > 0: + for i in k: + if set(x).issubset(set(i)): + return False + return True + return True + +V = np.load("node2vec/src/graph/test_Bip.npy", allow_pickle=True) +V = list(V) +k = [] +T = [] +fo = open("example1.model", "w") +stri = "bc " +compteur = 0 + +for i in range(len(V)): + print(V[i+compteur]) + x = V[i+compteur] + k = x[:2] + if Voisin(x,T): + for j in range(V.index(x)+1 ,len(V)): + y = V[j] + compteur = compteur + 1 + if x[2:] == y[2:] and x[0] == y[0]: + k.append(y[1]) + else: + break + if len(k) > 1: + strt = ' '.join(map(str, k)) + stry = ' '.join(map(str, x[2:])) + fo.write(stri + strt + ',' + stry + "\n") diff --git a/Bipartie_etiquetage.py b/Bipartie_etiquetage.py new file mode 100644 index 0000000000000000000000000000000000000000..8ea14f2af06099b9de5334cac7a514d2a9fc6ce9 --- /dev/null +++ b/Bipartie_etiquetage.py @@ -0,0 +1,26 @@ +import networkx as nx + +def ensemble(v,K): + for j in range(len(K)): + print(type(v),type(K[j]),K[j]) + if B.number_of_edges(v, K[j]) == 1: + return False + return True +fh = open("C:/Users/LENOVO/Desktop/karate.edgelist", "rb") +B = nx.read_edgelist(fh,nodetype=int)# Add edges only between nodes of opposite node sets +nx.draw(B,with_labels=True) +K = list(B.nodes) +V = [] +V.append([K[0]]) +print(K) +print(V,V[0]) +for i in range(len(K)): + print(K[i],V) + add = False + for j in range(len(V)): + if ensemble(K[i],V[j]) == True: + V[j].append(K[i]) + add = True + if add == False: + V.append([K[i]]) + diff --git a/Combine.py b/Combine.py new file mode 100644 index 0000000000000000000000000000000000000000..d59c7de1d2bb7c23fa146ab400dd436a3cacc657 --- /dev/null +++ b/Combine.py @@ -0,0 +1,35 @@ +import numpy as np,os +import time + +nodes = [] +Embedd2 = np.load("INoutput_data_val.npy",allow_pickle=True) +Embedd = np.load("data_val/transformed_0.npy",allow_pickle=True) +print(Embedd.shape) +print(Embedd2.shape) +""" +for i in range(len(Embedd)): + liste = [] + #print(Embedd) + for j in range(len(Embedd2[i])): + nx = np.append(Embedd[i][j],Embedd2[i][j]) + liste.append(nx) + nodes.append(liste) + print(i) +node = np.asarray(nodes) +print(node.shape) +np.save(("data_val.npy"),node) #generation des outputs +""" +liste = [] +start = time.time() + +for i in range(len(Embedd)): + nx = np.append(Embedd[i],Embedd2[0][i]) + liste.append(nx) + #print(nx) + #print(i) +node = np.asarray(liste) +end = time.time() +print(node.shape) +print("Time",end - start) +#print(node) +np.save(("data_tr.npy"),node) #generation des outputs""" \ No newline at end of file diff --git a/Final_model.h5 b/Final_model.h5 new file mode 100644 index 0000000000000000000000000000000000000000..f12e7d7206da529af1ef8bc4b4630674f2e629d6 Binary files /dev/null and b/Final_model.h5 differ diff --git a/Generate.py b/Generate.py new file mode 100644 index 0000000000000000000000000000000000000000..835327053b01c0cca753a48f08f3bd03b6dff4a6 --- /dev/null +++ b/Generate.py @@ -0,0 +1,118 @@ +from networkx.generators import community +from networkx.generators import random_graphs +from networkx.algorithms import clique +import networkx as nx +import random,numpy as np,os +import copy +import matplotlib.pyplot as plt + +def generate_clique(nb,size,total_size): + sub=community.caveman_graph(nb,size)#Generation de de graphes en forme de cliques + G=random_graphs.fast_gnp_random_graph(total_size,0.1)#Generation de graphes aleatoires avec 0.1% de liens + G=nx.compose(G,sub) #fusion des deux graphes, obtention d'un graphe aleatoire avec nb cliques + node_mapping = dict(zip(G.nodes(), sorted(G.nodes(), key=lambda k: random.random())))#creation du mapping + G_new = nx.relabel_nodes(G, node_mapping)#application du mapping + cliques=list(clique.find_cliques(G_new)) + cliques=np.asarray(([y for x in cliques for y in x if len(x)>=4])) + nodes_cliques = np.unique(cliques) + x = len(nodes_cliques) + #print("nodes_cliques",x) + output=np.zeros(total_size) + output[nodes_cliques]=1 + return G_new,output,x,nodes_cliques,size,nb + +def generate_without_clique(total_size):#generation de graphes aleatoires sans cliques + while True: + G=random_graphs.fast_gnp_random_graph(total_size,0.04) + cliques=list(clique.find_cliques(G)) + cliques=[x for x in cliques if len(x)>=6] + if len(cliques)==0: + break + return G, np.zeros(total_size) + + +def to_input_shape(G):# remplissage du fichier .edgelist format noeud -> noeud-voisin + tab=[] + for a,b in G.edges(): + tab.append([a,b]) + return tab + +BASE_PATH = "data" +DIR ="clique_1" + +if(not os.path.exists(BASE_PATH)): + os.mkdir(BASE_PATH) +PATH = os.path.join(BASE_PATH,DIR) + +if(not os.path.exists(PATH)): + os.mkdir(PATH) + +total_size = 100 +max_size_clique = 10 +max_clique_count = 10 +outputs = [] +Gr_size = 1000 +graph = [] +data = [] +lab = [] +nodes = [] +input = [] +sz = [] +B = [None]*total_size +x = 0 +for id in range(Gr_size): + G,labels,y,z,s,ng = generate_clique(random.randint(4,max_clique_count),random.randint(4,max_size_clique),total_size) + + tab = to_input_shape(G) + graph.append(tab) + A = nx.adjacency_matrix(G, nodelist=range(total_size), weight='weight') + A.setdiag(A.diagonal() * 2) + A = A.todense() + B = copy.deepcopy(A) + for i in range(len(B)): + if i not in z: + B[i] = 0 + outputs.append(y) + lab.append(labels) + data.append(B) + T = nx.edges(G) + T = np.asarray(T) + E = T + for i in range(len(E)): + x = E[i,0] + c = E[i,1] + if (x not in z) and (c not in z): + w = -1 + t = np.argwhere(T == (x, y)) + d = np.argwhere(T == (c, x)) + t = np.concatenate((t, d)) + + for r in range(len(t)): + for k in range(len(t)): + if (t[r, 0] == t[k, 0]) and r != k and w != t[r, 0]: + w = t[r, 0] + #print(w) + P = np.delete(T,w,axis=0) + T=P + print("id",id) + sz.append(T) + + +np.save(os.path.join(PATH, "size.npy"), np.asarray(sz)) ########################### +#np.save(os.path.join(PATH, "data.npy"), np.asarray(graph)) ############################ +#np.save(os.path.join(PATH, "data2.npy"), np.asarray(data)) ########################## +#print("out",sz[0]) +#print("out",graph[0]) +#print("out",data[0]) + +output = np.asarray(outputs) +#np.save(os.path.join(PATH,"output.npy"),output) #generation des outputs ####################### +#print("out",output[0]) +labs = np.asarray(lab) +np.save(os.path.join(PATH,"labels2.npy"),labs) #generation des outputs ########################## +#print("labs",labs[0]) +#print(s) +print(len(sz[0])) + +#nx.draw(G,with_labels=True) +#plt.show() \ No newline at end of file diff --git a/Generate_biparti.py b/Generate_biparti.py new file mode 100644 index 0000000000000000000000000000000000000000..be97707f6e4cbc1b48619199842c88169433f03f --- /dev/null +++ b/Generate_biparti.py @@ -0,0 +1,102 @@ + +import networkx as nx +import matplotlib.pyplot as plt +from networkx.generators import random_graphs +import random,numpy as np,os +import copy + +def generate_clique(nb,size,total_size): + sub = nx.complete_bipartite_graph(nb, size) + G=random_graphs.fast_gnp_random_graph(total_size,0.01)#Generation de graphes aleatoires avec 0.1% de liens + GS=nx.compose(G,sub) #fusion des deux graphes, obtention d'un graphe aleatoire avec nb cliques + node_mapping = dict(zip(GS.nodes(), sorted(GS.nodes(), key=lambda k: random.random())))#creation du mapping + G_new = nx.relabel_nodes(GS, node_mapping)#application du mapping + A = nx.adjacency_matrix(G_new,nodelist=sorted(G.nodes()),weight='weight') + A.setdiag(A.diagonal() * 2) + A = A.todense() + for i in range(len(A)): + if (np.count_nonzero(A[i] == 1) > 4): + Bipartie.append(i) + output=np.zeros(total_size) + output[Bipartie]=1 + return G_new,output,len(Bipartie),Bipartie,(size+nb),A + +def to_input_shape(G):# remplissage du fichier .edgelist format noeud -> noeud-voisin + tab=[] + for a,b in G.edges(): + tab.append([a,b]) + return tab + +BASE_PATH = "data" +DIR ="Bipartie" + +if(not os.path.exists(BASE_PATH)): + os.mkdir(BASE_PATH) +PATH = os.path.join(BASE_PATH,DIR) + +if(not os.path.exists(PATH)): + os.mkdir(PATH) + +total_size = 100 +max_size_clique = 30 +max_clique_count = 30 +outputs = [] +Gr_size = 1 +graph = [] +data = [] +lab = [] +nodes = [] +input = [] +sz = [] +B = [None]*total_size +x = 0 +for id in range(Gr_size): + Bipartie = [] + G,labels,y,z,s,A = generate_clique(random.randint(5,max_clique_count),random.randint(5,max_size_clique),total_size) + tab = to_input_shape(G) + graph.append(tab) + B = copy.deepcopy(A) + input.append(A) + for i in range(len(B)): + if i not in z: + B[i] = 0 + outputs.append(y) + lab.append(labels) + data.append(B) + T = nx.edges(G) + T = np.asarray(T) + E = T + + for i in range(len(E)): + x = E[i, 0] + c = E[i, 1] + if (x not in z) and (c not in z): + w = -1 + t = np.argwhere(T == (x, c)) + d = np.argwhere(T == (c, x)) + t = np.concatenate((t, d)) + for r in range(len(t)): + for k in range(len(t)): + if (t[r, 0] == t[k, 0]) and r != k and w != t[r, 0]: + w = t[r, 0] + print("w", w) + P = np.delete(T, w, axis=0) + print(len(P), E[i]) + T = P + + sz.append(T) + + +output = np.asarray(outputs) +labs = np.asarray(lab) +node = np.asarray(input) + + +nx.draw(G, with_labels=True) +plt.show() +np.save(os.path.join(PATH, "size.npy"), np.asarray(sz[0])) ########################### +np.save(os.path.join(PATH, "data.npy"), np.asarray(graph)) ############################ +np.save(os.path.join(PATH, "data2.npy"), np.asarray(data)) ########################## +np.save(os.path.join(PATH,"output.npy"),output) #generation des outputs ####################### +np.save(os.path.join(PATH,"labels2.npy"),labs) #generation des outputs ########################## +np.save(os.path.join(PATH,"nodes.npy"),node) #generation des outputs diff --git a/Generate_chaines.py b/Generate_chaines.py new file mode 100644 index 0000000000000000000000000000000000000000..a2db3ac0e8668d336a6e49d4156146d856132c76 --- /dev/null +++ b/Generate_chaines.py @@ -0,0 +1,128 @@ +import networkx as nx +import matplotlib.pyplot as plt +from networkx.generators import random_graphs +import random,numpy as np,os +import copy + +def find_all_paths(graph, start, end, path=[]): + path = path + [start] + if start == end: + return [path] + paths = [] + for node in graph[start]: + if node not in path: + newpaths = find_all_paths(graph, node, end, path) + for newpath in newpaths: + paths.append(newpath) + return paths +def Chaines(): + G = random_graphs.fast_gnp_random_graph(100, 0.01) + nx.draw(G,with_labels=True) + plt.show() + + chaine = nx.chain_decomposition(G,1) + y = [] + for i in range(100): + print("hnaya") + for j in range(100): + if i != j: + x = find_all_paths( G, i, j) + if(len(x) > 0): + y.append(x) + tab = [] + R = [] + for i in range(len(y)): + if len(y[i]) > 1: + x = y[i] + for j in range(len(y[i])): + for z in range(len(y[i])): + if set(x[j]).issubset(set(x[z])) and len(x[z]) > len(x[j]): + tab.append(j) + else: + if set(x[z]).issubset(set(x[j])) and len(x[z]) < len(x[j]): + tab.append(z) + for k in range(len(x)): + if k not in tab: + R.append(x[k]) + tab = [] + print(R) + return G,R +def generate_clique(nb,size,total_size): + Chaine = [] + G,ch = Chaines() + A = nx.adjacency_matrix(G,nodelist=sorted(G.nodes()),weight='weight') + A.setdiag(A.diagonal() * 2) + A = A.todense() + for i in range(len(ch)): + x = ch[i] + for j in range(len(x)): + if x[j] not in Chaine: + Chaine.append(x[j]) + print("hay la chaine",Chaine) + output=np.zeros(total_size) + output[Chaine]=1 + return G,output,len(Chaine),Chaine,(size+nb),A + +def to_input_shape(G):# remplissage du fichier .edgelist format noeud -> noeud-voisin + tab=[] + for a,b in G.edges(): + tab.append([a,b]) + return tab + +BASE_PATH = "data" +DIR ="Bipartie" + +if(not os.path.exists(BASE_PATH)): + os.mkdir(BASE_PATH) +PATH = os.path.join(BASE_PATH,DIR) + +if(not os.path.exists(PATH)): + os.mkdir(PATH) + +total_size = 100 +max_size_clique = 30 +max_clique_count = 30 +outputs = [] +Gr_size = 1000 +graph = [] +data = [] +lab = [] +nodes = [] +input = [] +sz = [] +B = [None]*total_size +x = 0 +for id in range(1): + Bipartie = [] + G,labels,y,z,s,A = generate_clique(random.randint(5,max_clique_count),random.randint(5,max_size_clique),total_size) + tab = to_input_shape(G) + graph.append(tab) + B = copy.deepcopy(A) + input.append(A) + for i in range(len(B)): + if i not in z: + B[i] = 0 + outputs.append(y) + lab.append(labels) + data.append(B) + sz.append(s) + print(id) + +output = np.asarray(outputs) +labs = np.asarray(lab) +node = np.asarray(input) +print("sz",sz[0]) +print("graphe",graph[0]) +print("matrix",data[0]) +print("out",output[0]) +print("labs",labs[0]) +print("nodes",node[0]) + +""" +np.save(os.path.join(PATH, "size.npy"), np.asarray(sz)) ########################### +np.save(os.path.join(PATH, "data.npy"), np.asarray(graph)) ############################ +np.save(os.path.join(PATH, "data2.npy"), np.asarray(data)) ########################## +np.save(os.path.join(PATH,"output.npy"),output) #generation des outputs ####################### +np.save(os.path.join(PATH,"labels2.npy"),labs) #generation des outputs ########################## +np.save(os.path.join(PATH,"nodes.npy"),node) #generation des outputs +""" diff --git a/Generate_stars.py b/Generate_stars.py new file mode 100644 index 0000000000000000000000000000000000000000..6eb39624994eda40b812f5cb51824ca6b6940412 --- /dev/null +++ b/Generate_stars.py @@ -0,0 +1,124 @@ +from networkx.generators import community +from networkx.generators import random_graphs +from networkx.algorithms import clique +import networkx as nx +import random,numpy as np,os +import copy +import matplotlib.pyplot as plt + +def generate_clique(nb,size,total_size): + j = 0 + sub=nx.Graph()#Generation de de graphes en forme de cliques + for i in range(nb): + nx.add_star(sub,[j,j+1,j+2,j+3,j+4,j+5]) + j = j + 6 + #nx.draw(sub) + #plt.show() + G=random_graphs.fast_gnp_random_graph(total_size,0.000000001)#Generation de graphes aleatoires avec 0.1% de liens + G=nx.compose(G,sub) #fusion des deux graphes, obtention d'un graphe aleatoire avec nb cliques + #nx.draw(G) + #plt.show() + node_mapping = dict(zip(G.nodes(), sorted(G.nodes(), key=lambda k: random.random())))#creation du mapping + G_new = nx.relabel_nodes(G, node_mapping)#application du mapping + A = nx.adjacency_matrix(G_new, nodelist=range(total_size), weight='weight') + A.setdiag(A.diagonal() * 2) + A = A.todense() + B = copy.deepcopy(A) + output=np.zeros(total_size) + sortie=np.zeros(total_size) + k = [] + for i in range(len(B)): + if (np.count_nonzero(A[i] == 1) < 5): + B[i] = 0 + else: + sortie[i] = 1 + k.append(i) + for j in range(len(B)): + if B[i,j] == 1: + sortie[j] = 1 + k.append(j) + print("k",len(k),k) + return G_new,sortie,4,B,5,A,k + +def to_input_shape(G):# remplissage du fichier .edgelist format noeud -> noeud-voisin + tab=[] + for a,b in G.edges(): + tab.append([a,b]) + return tab + +BASE_PATH = "data" +DIR ="star" + +if(not os.path.exists(BASE_PATH)): + os.mkdir(BASE_PATH) +PATH = os.path.join(BASE_PATH,DIR) + +if(not os.path.exists(PATH)): + os.mkdir(PATH) + +total_size = 100 +max_star_clique = 20 +max_star_count = 12 +outputs = [] +Gr_size = 100 +graph = [] +data = [] +lab = [] +nodes = [] +input = [] +sz = [] +x = 0 +for id in range(Gr_size): + G,labels,y,B,s,A,o = generate_clique(random.randint(4,max_star_count),random.randint(4,max_star_clique),total_size) + #G,labels,y,z,s = generate_clique(,4,total_size) + tab = to_input_shape(G) + graph.append(tab) + outputs.append(y) + lab.append(labels) + input.append(A) + data.append(B) + T = nx.edges(G) + T = np.asarray(T) + print("hay len ya t7a7na",len(T),T) + E = T + print("hay len ya t7a7na",len(T)) + + for i in range(len(E)): + x = E[i,0] + c = E[i,1] + if (x not in o) and (c not in o): + w = -1 + t = np.argwhere(T == (x, c)) + d = np.argwhere(T == (c, x)) + t = np.concatenate((t, d)) + print("madkhelch") + for r in range(len(t)): + for k in range(len(t)): + if (t[r, 0] == t[k, 0]) and r != k and w != t[r, 0]: + w = t[r, 0] + print("w",w) + P = np.delete(T,w,axis=0) + print(len(P),E[i]) + T=P + print("hay len ya t7a7na",len(T)) + + sz.append(T) + print(T) + print(y) + print(id) + + +print("graphe",len(sz[0]),len(sz)) +print("matrix",np.count_nonzero(data[0]==1)) +np.save(os.path.join(PATH, "size.npy"), np.asarray(sz[0])) ########################### +np.save(os.path.join(PATH, "data.npy"), np.asarray(graph)) ############################ +np.save(os.path.join(PATH, "data2.npy"), np.asarray(data)) ########################## +output = np.asarray(outputs) +np.save(os.path.join(PATH,"output.npy"),output) #generation des outputs ####################### +print("out",output[0]) +labs = np.asarray(lab) +np.save(os.path.join(PATH,"labels2.npy"),labs) #generation des outputs ########################## +print("labs",np.count_nonzero(labs[0]==1)) +node = np.asarray(input) +np.save(os.path.join(PATH,"nodes.npy"),node) #generation des outputs +print("nodes",np.count_nonzero(node[0]==1)) \ No newline at end of file diff --git a/GraphEmbedding-master/.gitattributes b/GraphEmbedding-master/.gitattributes new file mode 100644 index 0000000000000000000000000000000000000000..dfe0770424b2a19faf507a501ebfc23be8f54e7b --- /dev/null +++ b/GraphEmbedding-master/.gitattributes @@ -0,0 +1,2 @@ +# Auto detect text files and perform LF normalization +* text=auto diff --git a/GraphEmbedding-master/.gitignore b/GraphEmbedding-master/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..510c73d0fdb6d9daed973138442e011bd8682815 --- /dev/null +++ b/GraphEmbedding-master/.gitignore @@ -0,0 +1,114 @@ +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +.hypothesis/ +.pytest_cache/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# IPython +profile_default/ +ipython_config.py + +# pyenv +.python-version + +# celery beat schedule file +celerybeat-schedule + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ diff --git a/GraphEmbedding-master/LICENSE b/GraphEmbedding-master/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..20a4b83fc74c3a9c72155515dd6a1aa867d7bfaa --- /dev/null +++ b/GraphEmbedding-master/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2019 Weichen Shen + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/GraphEmbedding-master/README.md b/GraphEmbedding-master/README.md new file mode 100644 index 0000000000000000000000000000000000000000..1c54594c3b19565f379bb230a2349b9f723fec66 --- /dev/null +++ b/GraphEmbedding-master/README.md @@ -0,0 +1,107 @@ +# GraphEmbedding + +# Method + + +| Model | Paper | Note | +| :-------: | :------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------ | +| DeepWalk | [KDD 2014][DeepWalk: Online Learning of Social Representations](http://www.perozzi.net/publications/14_kdd_deepwalk.pdf) | [ã€Graph Embedding】DeepWalk:算法原ç†ï¼Œå®žçŽ°å’Œåº”ç”¨](https://zhuanlan.zhihu.com/p/56380812) | +| LINE | [WWW 2015][LINE: Large-scale Information Network Embedding](https://arxiv.org/pdf/1503.03578.pdf) | [ã€Graph Embedding】LINE:算法原ç†ï¼Œå®žçŽ°å’Œåº”ç”¨](https://zhuanlan.zhihu.com/p/56478167) | +| Node2Vec | [KDD 2016][node2vec: Scalable Feature Learning for Networks](https://www.kdd.org/kdd2016/papers/files/rfp0218-groverA.pdf) | [ã€Graph Embedding】Node2Vec:算法原ç†ï¼Œå®žçŽ°å’Œåº”ç”¨](https://zhuanlan.zhihu.com/p/56542707) | +| SDNE | [KDD 2016][Structural Deep Network Embedding](https://www.kdd.org/kdd2016/papers/files/rfp0191-wangAemb.pdf) | [ã€Graph Embedding】SDNE:算法原ç†ï¼Œå®žçŽ°å’Œåº”ç”¨](https://zhuanlan.zhihu.com/p/56637181) | +| Struc2Vec | [KDD 2017][struc2vec: Learning Node Representations from Structural Identity](https://arxiv.org/pdf/1704.03165.pdf) | [ã€Graph Embedding】Struc2Vec:算法原ç†ï¼Œå®žçŽ°å’Œåº”ç”¨](https://zhuanlan.zhihu.com/p/56733145) | + + +# How to run examples +1. clone the repo and make sure you have installed `tensorflow` or `tensorflow-gpu` on your local machine. +2. run following commands +```bash +python setup.py install +cd examples +python deepwalk_wiki.py +``` + +## DisscussionGroup & Related Projects + +<html> + <table style="margin-left: 20px; margin-right: auto;"> + <tr> + <td> + 公众å·ï¼š<b>浅梦的å¦ä¹ 笔记</b><br><br> + <a href="https://github.com/shenweichen/GraphEmbedding"> + <img align="center" src="./pics/code.png" /> +</a> + </td> + <td> + 微信:<b>deepctrbot</b><br><br> + <a href="https://github.com/shenweichen/GraphEmbedding"> + <img align="center" src="./pics/deepctrbot.png" /> +</a> + </td> + <td> +<ul> +<li><a href="https://github.com/shenweichen/AlgoNotes">AlgoNotes</a></li> +<li><a href="https://github.com/shenweichen/DeepCTR">DeepCTR</a></li> +<li><a href="https://github.com/shenweichen/DeepMatch">DeepMatch</a></li> +<li><a href="https://github.com/shenweichen/DeepCTR-Torch">DeepCTR-Torch</a></li> +</ul> + </td> + </tr> + </table> +</html> + +# Usage +The design and implementation follows simple principles(**graph in,embedding out**) as much as possible. +## Input format +we use `networkx`to create graphs.The input of networkx graph is as follows: +`node1 node2 <edge_weight>` + + +## DeepWalk + +```python +G = nx.read_edgelist('../data/wiki/Wiki_edgelist.txt',create_using=nx.DiGraph(),nodetype=None,data=[('weight',int)])# Read graph + +model = DeepWalk(G,walk_length=10,num_walks=80,workers=1)#init model +model.train(window_size=5,iter=3)# train model +embeddings = model.get_embeddings()# get embedding vectors +``` + +## LINE + +```python +G = nx.read_edgelist('../data/wiki/Wiki_edgelist.txt',create_using=nx.DiGraph(),nodetype=None,data=[('weight',int)])#read graph + +model = LINE(G,embedding_size=128,order='second') #init model,order can be ['first','second','all'] +model.train(batch_size=1024,epochs=50,verbose=2)# train model +embeddings = model.get_embeddings()# get embedding vectors +``` +## Node2Vec +```python +G=nx.read_edgelist('../data/wiki/Wiki_edgelist.txt', + create_using = nx.DiGraph(), nodetype = None, data = [('weight', int)])#read graph + +model = Node2Vec(G, walk_length = 10, num_walks = 80,p = 0.25, q = 4, workers = 1)#init model +model.train(window_size = 5, iter = 3)# train model +embeddings = model.get_embeddings()# get embedding vectors +``` +## SDNE + +```python +G = nx.read_edgelist('../data/wiki/Wiki_edgelist.txt',create_using=nx.DiGraph(),nodetype=None,data=[('weight',int)])#read graph + +model = SDNE(G,hidden_size=[256,128]) #init model +model.train(batch_size=3000,epochs=40,verbose=2)# train model +embeddings = model.get_embeddings()# get embedding vectors +``` + +## Struc2Vec + + +```python +G = nx.read_edgelist('../data/flight/brazil-airports.edgelist',create_using=nx.DiGraph(),nodetype=None,data=[('weight',int)])#read graph + +model = model = Struc2Vec(G, 10, 80, workers=4, verbose=40, ) #init model +model.train(window_size = 5, iter = 3)# train model +embeddings = model.get_embeddings()# get embedding vectors +``` diff --git a/GraphEmbedding-master/data/flight/brazil-airports.edgelist b/GraphEmbedding-master/data/flight/brazil-airports.edgelist new file mode 100644 index 0000000000000000000000000000000000000000..51058a647650321481bef1f1a4fc66de95801d26 --- /dev/null +++ b/GraphEmbedding-master/data/flight/brazil-airports.edgelist @@ -0,0 +1,1074 @@ +7 77 +29 50 +3 35 +9 84 +25 82 +6 28 +64 51 +108 74 +19 4 +2 84 +7 25 +56 25 +24 66 +23 26 +30 51 +10 61 +50 84 +65 84 +53 53 +9 0 +30 15 +45 35 +10 7 +87 52 +106 19 +70 53 +58 130 +6 98 +103 80 +7 19 +36 40 +25 15 +15 4 +4 50 +2 27 +7 98 +9 123 +1 54 +58 65 +4 5 +96 77 +9 127 +50 27 +1 120 +55 2 +79 1 +3 40 +36 67 +75 15 +67 7 +0 67 +61 69 +9 39 +6 41 +36 41 +49 71 +31 51 +46 2 +49 67 +9 9 +57 7 +6 67 +36 5 +34 3 +58 4 +30 69 +80 25 +61 25 +10 66 +15 71 +36 29 +97 25 +2 18 +69 58 +71 71 +9 124 +51 5 +54 54 +43 91 +38 51 +29 4 +40 51 +30 27 +4 42 +34 70 +7 15 +22 45 +61 94 +3 55 +18 5 +0 84 +25 70 +4 48 +117 71 +15 70 +9 50 +66 37 +3 68 +54 64 +58 15 +106 5 +45 47 +10 19 +25 25 +49 52 +63 66 +0 5 +24 2 +98 25 +83 87 +27 31 +21 77 +54 21 +38 40 +2 7 +74 30 +29 29 +3 22 +77 3 +10 71 +8 8 +6 1 +30 30 +87 87 +9 121 +7 4 +65 5 +5 20 +3 60 +24 87 +6 27 +54 33 +112 24 +129 9 +61 49 +5 71 +74 75 +75 75 +6 61 +36 37 +2 117 +108 108 +125 125 +87 49 +9 29 +80 80 +6 87 +36 3 +1 103 +27 52 +127 42 +61 5 +41 71 +74 63 +69 69 +25 4 +36 8 +78 25 +2 30 +0 50 +74 25 +3 31 +1 51 +58 68 +30 5 +40 5 +2 56 +50 30 +9 90 +66 29 +87 74 +42 43 +15 84 +7 27 +50 50 +29 42 +18 17 +32 50 +70 70 +6 52 +36 44 +6 21 +8 7 +50 82 +122 126 +61 36 +56 40 +36 10 +10 5 +65 65 +63 50 +61 30 +0 19 +94 117 +97 6 +2 25 +94 94 +74 0 +98 5 +74 74 +3 4 +18 84 +95 4 +25 55 +67 120 +54 25 +28 4 +77 15 +51 36 +40 31 +4 45 +1 46 +3 48 +9 37 +24 75 +36 43 +2 71 +9 128 +22 2 +37 42 +61 61 +27 117 +42 39 +25 101 +3 65 +69 45 +2 97 +15 97 +54 27 +80 27 +45 0 +63 15 +36 25 +45 52 +36 50 +15 15 +63 1 +7 49 +0 0 +50 41 +3 13 +51 7 +15 53 +28 3 +122 124 +31 61 +5 24 +101 27 +2 36 +36 38 +65 2 +79 54 +3 57 +27 84 +24 82 +25 68 +47 25 +36 82 +43 9 +41 41 +0 2 +79 92 +33 26 +58 120 +50 102 +25 110 +33 84 +3 70 +36 56 +60 45 +2 120 +67 58 +7 61 +68 61 +24 30 +5 68 +6 82 +45 45 +25 31 +37 91 +0 7 +74 50 +9 82 +51 9 +25 1 +15 50 +21 75 +2 5 +7 22 +83 83 +3 24 +77 1 +10 69 +6 7 +123 123 +88 7 +8 51 +2 63 +31 5 +79 63 +3 62 +77 27 +92 21 +25 77 +6 25 +1 84 +84 99 +63 67 +6 83 +94 7 +127 127 +23 25 +0 71 +3 79 +36 39 +1 67 +8 2 +120 50 +44 39 +89 89 +62 4 +45 2 +72 5 +54 97 +53 87 +1 31 +49 5 +97 3 +93 93 +7 97 +74 7 +66 91 +79 30 +3 1 +49 49 +102 2 +85 74 +31 42 +5 27 +79 4 +3 39 +101 23 +96 51 +120 84 +36 0 +58 53 +0 64 +53 48 +29 40 +51 68 +6 42 +45 5 +1 68 +2 74 +8 9 +50 80 +64 21 +9 4 +24 108 +66 42 +60 25 +108 3 +30 70 +61 28 +76 84 +7 64 +54 63 +25 19 +21 93 +53 45 +6 120 +77 51 +25 53 +15 46 +21 71 +50 5 +67 51 +113 51 +9 65 +0 30 +46 71 +10 42 +8 42 +7 18 +3 50 +29 39 +24 77 +25 65 +81 108 +4 53 +1 93 +2 69 +15 69 +7 40 +22 0 +29 91 +33 24 +25 107 +6 71 +3 67 +54 77 +10 10 +24 25 +3 105 +45 50 +58 77 +68 15 +58 108 +80 51 +7 87 +24 63 +53 5 +3 15 +10 38 +75 4 +58 84 +28 29 +76 7 +5 13 +79 10 +3 21 +9 74 +6 2 +30 31 +41 5 +29 58 +3 59 +7 130 +24 84 +6 36 +60 49 +50 66 +94 2 +9 41 +74 76 +122 66 +3 72 +36 58 +93 55 +7 63 +75 63 +2 61 +23 15 +10 31 +64 64 +26 26 +0 25 +36 71 +1 4 +66 74 +103 21 +2 3 +0 63 +29 25 +25 41 +6 5 +21 51 +65 130 +65 27 +84 87 +40 9 +56 50 +5 16 +113 7 +25 83 +6 31 +64 50 +36 91 +19 5 +67 31 +7 30 +63 77 +113 25 +94 5 +18 18 +23 27 +6 49 +21 7 +2 113 +58 18 +0 97 +79 77 +122 122 +77 77 +121 122 +71 27 +45 36 +130 84 +23 23 +7 69 +42 91 +62 30 +99 76 +69 65 +15 5 +97 1 +7 99 +24 51 +3 3 +51 61 +25 50 +58 64 +46 46 +95 69 +22 51 +3 41 +67 2 +25 84 +6 22 +45 105 +58 51 +76 33 +22 21 +64 1 +68 7 +66 51 +6 40 +30 53 +45 3 +32 24 +80 2 +9 10 +25 96 +81 3 +119 66 +10 1 +58 7 +21 113 +22 97 +10 94 +7 66 +32 58 +38 4 +96 27 +2 21 +39 65 +24 58 +9 125 +51 2 +2 15 +9 126 +33 75 +46 55 +79 15 +9 71 +10 95 +25 93 +6 9 +4 41 +7 106 +84 67 +58 58 +41 2 +46 25 +3 52 +18 4 +24 79 +25 71 +34 35 +8 50 +7 42 +46 3 +94 25 +18 30 +74 67 +66 36 +6 69 +3 69 +84 23 +67 57 +106 4 +24 27 +66 82 +3 107 +45 48 +25 26 +0 4 +24 1 +123 125 +1 1 +64 97 +41 39 +28 31 +120 120 +0 58 +5 11 +77 4 +1 71 +54 84 +6 0 +7 5 +65 6 +5 21 +79 50 +3 61 +77 30 +24 86 +15 1 +23 6 +10 41 +67 24 +22 25 +7 80 +94 0 +18 25 +42 42 +47 3 +70 2 +36 36 +10 51 +58 9 +45 21 +18 51 +10 120 +10 29 +41 28 +8 25 +0 27 +57 51 +98 19 +25 5 +98 2 +2 1 +74 24 +6 130 +58 71 +30 4 +4 31 +84 111 +50 97 +63 97 +59 48 +9 91 +57 49 +6 29 +21 27 +36 69 +0 77 +0 75 +29 43 +127 123 +65 51 +4 67 +10 58 +32 3 +79 79 +9 7 +5 73 +38 41 +36 4 +36 9 +10 4 +71 84 +52 58 +30 67 +69 1 +9 63 +7 71 +24 15 +5 83 +71 51 +120 3 +51 25 +79 71 +125 89 +7 93 +24 53 +98 4 +3 5 +9 122 +51 63 +25 48 +75 51 +21 58 +90 129 +2 50 +0 46 +61 106 +1 47 +57 58 +43 123 +41 31 +50 51 +69 67 +3 49 +59 60 +83 27 +6 46 +36 42 +38 106 +58 27 +7 47 +37 43 +98 98 +25 102 +6 64 +3 94 +29 53 +10 15 +2 96 +58 5 +70 45 +42 64 +48 51 +43 125 +119 82 +9 1 +87 5 +0 15 +66 0 +74 3 +3 10 +75 3 +21 67 +88 25 +28 2 +45 15 +51 42 +75 25 +6 15 +64 2 +17 5 +31 29 +24 81 +25 69 +40 43 +123 89 +74 71 +50 71 +79 93 +94 31 +24 4 +3 71 +79 23 +5 69 +45 46 +51 84 +15 21 +39 56 +22 80 +7 83 +74 53 +6 119 +15 51 +75 77 +28 25 +71 4 +6 51 +79 22 +3 25 +77 2 +51 51 +6 6 +23 3 +84 84 +76 25 +7 7 +71 30 +3 63 +6 24 +45 115 +108 87 +10 82 +27 130 +42 40 +6 50 +45 13 +119 10 +0 23 +37 39 +89 90 +6 84 +3 82 +1 102 +15 18 +30 94 +61 4 +24 10 +5 104 +77 33 +8 65 +27 33 +19 61 +2 31 +0 51 +96 96 +3 30 +1 50 +21 63 +54 7 +2 57 +50 31 +45 116 +79 5 +9 89 +25 87 +6 19 +21 25 +88 51 +75 67 +0 79 +5 38 +57 25 +6 53 +45 6 +66 127 +58 30 +7 48 +9 5 +25 99 +6 79 +10 2 +15 27 +4 4 +45 1 +81 32 +75 54 +24 9 +127 125 +50 60 +74 1 +41 69 +126 66 +3 7 +66 123 +99 27 +30 13 +28 5 +2 48 +85 84 +31 8 +5 5 +79 2 +9 66 +51 39 +6 10 +19 41 +36 119 +2 42 +4 69 +3 51 +25 66 +10 98 +19 19 +2 68 +58 25 +7 41 +56 9 +7 84 +33 25 +25 100 +90 90 +3 64 +45 25 +31 71 +24 24 +62 5 +45 51 +45 27 +0 1 +51 120 +53 26 +27 27 +25 63 +58 87 +6 18 +66 4 +5 14 +70 84 +3 18 +97 84 +82 82 +45 78 +66 66 +31 31 +55 50 +3 56 +27 87 +24 83 +66 6 +6 39 +21 21 +4 51 +60 48 +84 53 +46 7 +59 45 +25 109 +6 57 +3 73 +60 46 +67 71 +28 71 +9 25 +5 67 +7 102 +36 7 +10 30 +25 30 +114 25 +68 28 +70 60 +0 24 +74 51 +70 48 +7 120 +1 5 +80 79 +2 2 +7 107 +48 24 +3 27 +51 53 +6 4 +30 1 +2 60 +76 27 +7 1 +53 55 +92 22 +66 1 +6 30 +19 2 +7 31 +97 92 +94 4 +83 84 +51 69 +23 24 +40 58 +10 63 +7 53 +37 37 +59 24 +69 27 +6 74 +3 84 +10 25 +2 106 +0 31 +74 58 +96 3 +53 28 +49 4 +61 45 +7 96 +24 50 +79 25 +3 0 +10 77 +127 89 +42 5 +4 27 +79 7 +3 38 +125 121 +36 65 +58 50 +79 45 +21 1 +76 76 +60 60 +58 28 +7 50 +97 79 +80 1 +79 75 +57 1 +45 84 +89 124 +10 0 +58 6 +39 40 +63 63 +124 123 +23 7 +48 48 +54 76 +1 23 +122 89 +74 15 +3 9 +77 50 +15 41 +4 2 +28 7 +84 32 +22 53 +91 91 +58 31 +51 41 +6 8 +53 27 +4 40 +2 40 +55 55 +3 53 +9 42 +25 64 +40 40 +21 10 +1 92 +2 66 +22 1 +55 45 +61 58 +6 68 +3 66 +69 71 +58 1 +64 84 +42 58 +90 66 +45 49 +25 27 +22 93 +50 53 +36 31 +75 7 +4 84 +28 30 +2 9 +5 12 +79 21 +53 2 +27 51 +25 39 +6 3 +4 23 +65 7 +66 58 +79 51 +3 58 +77 31 +24 85 +25 73 +38 69 +45 118 +10 40 +2 93 +67 25 +50 67 +46 5 +74 77 +3 29 +119 9 +52 5 +97 51 +78 79 +27 70 +9 31 +0 21 +53 71 +10 28 +66 81 +67 67 +41 42 +26 27 +41 65 +24 7 +6 38 +1 27 +29 37 +29 5 +78 27 +45 7 +74 27 +111 3 +25 40 +49 27 +21 50 +54 0 +28 51 +2 58 diff --git a/GraphEmbedding-master/data/flight/europe-airports.edgelist b/GraphEmbedding-master/data/flight/europe-airports.edgelist new file mode 100644 index 0000000000000000000000000000000000000000..571f5f9808fb1499cad17ad4b8750cf48c194ec1 --- /dev/null +++ b/GraphEmbedding-master/data/flight/europe-airports.edgelist @@ -0,0 +1,5995 @@ +252 36 +57 50 +43 3 +90 42 +143 36 +147 33 +204 22 +133 30 +9 0 +143 85 +184 26 +355 19 +63 33 +52 17 +146 42 +113 37 +156 119 +341 61 +65 11 +179 63 +155 38 +216 56 +131 49 +192 33 +141 88 +131 94 +50 18 +107 79 +292 43 +40 4 +154 20 +46 30 +103 27 +130 13 +22 7 +83 23 +69 40 +73 45 +173 122 +106 47 +96 9 +25 3 +82 52 +196 60 +7 4 +196 67 +125 99 +54 33 +58 44 +138 68 +266 17 +105 15 +34 21 +162 94 +111 33 +280 141 +158 146 +87 24 +77 34 +161 15 +53 9 +110 90 +114 41 +19 6 +66 55 +56 47 +184 54 +142 115 +270 36 +213 38 +75 13 +65 23 +51 36 +179 27 +364 101 +165 20 +279 12 +131 45 +23 11 +84 11 +70 34 +198 119 +74 33 +168 38 +60 12 +247 182 +107 43 +292 79 +130 126 +83 66 +340 339 +197 54 +79 54 +83 51 +163 75 +55 41 +183 20 +352 16 +116 41 +244 102 +45 19 +173 94 +391 43 +126 70 +82 24 +135 38 +139 35 +72 30 +78 20 +172 41 +134 117 +138 120 +91 8 +20 4 +67 35 +252 108 +80 69 +29 20 +214 16 +204 94 +66 27 +274 44 +32 6 +142 79 +132 33 +136 36 +14 5 +75 41 +189 33 +179 119 +108 55 +165 8 +317 221 +122 119 +131 9 +64 36 +212 100 +178 20 +259 237 +117 33 +121 38 +174 24 +107 23 +201 94 +330 314 +26 19 +103 35 +140 47 +73 20 +159 98 +163 103 +106 103 +253 244 +35 33 +92 54 +139 79 +196 116 +200 79 +162 23 +239 39 +91 20 +157 129 +380 78 +114 30 +43 38 +194 134 +110 18 +15 5 +143 112 +133 74 +284 89 +146 86 +75 68 +65 46 +193 17 +85 35 +179 34 +327 170 +165 91 +169 24 +61 26 +175 22 +37 17 +94 66 +151 9 +27 7 +377 78 +88 23 +60 52 +154 49 +174 52 +231 61 +12 6 +305 20 +153 104 +177 82 +55 17 +82 81 +210 26 +102 20 +139 26 +31 24 +182 156 +21 18 +68 19 +58 9 +243 15 +44 36 +105 18 +158 36 +34 14 +185 138 +101 38 +191 53 +252 37 +208 67 +228 14 +9 7 +86 23 +143 84 +184 27 +170 18 +52 18 +109 31 +146 43 +132 106 +28 11 +45 10 +142 7 +65 10 +179 62 +354 40 +122 60 +98 37 +151 45 +13 12 +245 35 +50 19 +40 5 +150 94 +46 31 +130 10 +22 4 +83 22 +69 23 +187 52 +173 121 +49 43 +106 44 +96 10 +139 6 +89 65 +163 140 +243 122 +172 70 +356 101 +54 38 +58 45 +44 8 +34 18 +91 47 +333 38 +87 27 +171 36 +191 41 +53 8 +265 56 +29 15 +151 148 +19 9 +147 60 +204 138 +322 221 +142 112 +270 37 +303 167 +327 221 +165 130 +4 0 +65 22 +273 33 +41 29 +155 5 +94 26 +23 10 +84 20 +70 35 +74 46 +268 266 +79 49 +376 40 +69 11 +55 40 +130 129 +59 45 +206 172 +244 103 +45 18 +102 77 +230 22 +35 4 +92 83 +149 20 +82 25 +139 34 +196 17 +72 31 +78 21 +286 38 +134 106 +138 121 +195 104 +91 11 +67 34 +87 63 +181 54 +167 71 +63 54 +271 37 +309 146 +39 9 +80 70 +190 143 +29 19 +143 31 +298 20 +119 29 +32 7 +95 20 +136 37 +14 10 +75 40 +169 35 +179 118 +122 116 +306 79 +17 0 +64 37 +192 106 +70 15 +36 26 +168 146 +150 6 +26 16 +211 20 +140 40 +73 27 +292 243 +79 21 +291 61 +173 65 +230 50 +139 78 +196 117 +72 59 +243 50 +48 4 +5 2 +162 20 +239 38 +243 163 +262 27 +195 68 +91 23 +205 35 +67 30 +346 75 +57 20 +185 79 +33 3 +271 57 +312 70 +275 58 +100 45 +194 54 +86 8 +143 115 +204 67 +317 316 +284 90 +89 54 +18 10 +146 87 +169 142 +132 6 +65 45 +344 100 +71 19 +169 31 +61 25 +108 20 +94 67 +222 20 +98 30 +27 6 +74 23 +60 53 +207 55 +132 42 +12 7 +310 292 +221 151 +248 43 +49 14 +55 16 +183 95 +116 98 +78 33 +31 27 +92 27 +129 7 +186 80 +78 34 +334 72 +139 106 +58 22 +78 77 +44 37 +105 17 +34 15 +162 56 +24 9 +134 50 +90 40 +143 38 +110 47 +9 6 +86 20 +143 87 +204 103 +170 19 +392 105 +52 19 +38 26 +99 24 +28 4 +333 72 +65 9 +41 32 +118 54 +192 35 +74 11 +222 131 +40 6 +117 24 +154 18 +73 66 +22 5 +83 25 +188 74 +287 99 +183 50 +106 45 +25 1 +163 143 +7 6 +3 0 +54 39 +58 42 +105 13 +34 19 +148 31 +134 30 +87 26 +191 40 +53 23 +336 82 +100 22 +143 58 +19 8 +275 114 +190 99 +43 35 +156 38 +38 6 +132 79 +99 52 +75 15 +4 1 +65 21 +179 29 +236 26 +387 40 +246 71 +47 18 +88 33 +216 22 +112 103 +94 27 +23 5 +244 132 +84 21 +70 32 +60 14 +107 45 +154 118 +140 5 +325 15 +55 43 +352 18 +116 43 +45 17 +230 23 +35 7 +96 23 +82 22 +196 18 +172 43 +299 168 +87 73 +20 6 +370 78 +271 36 +39 8 +29 18 +210 121 +214 22 +76 19 +318 208 +52 36 +322 318 +240 155 +38 34 +95 23 +132 35 +99 80 +136 38 +65 64 +14 11 +307 63 +189 63 +374 101 +35 5 +88 61 +17 7 +383 78 +330 70 +168 117 +131 11 +227 80 +249 110 +168 4 +282 20 +174 30 +231 27 +325 82 +36 27 +26 17 +73 26 +163 105 +55 15 +149 55 +172 120 +135 4 +139 65 +72 60 +215 171 +162 21 +148 96 +280 88 +138 26 +91 22 +77 23 +161 68 +181 9 +57 27 +110 16 +147 6 +275 61 +80 35 +133 39 +389 77 +137 60 +86 9 +15 7 +133 72 +284 36 +247 175 +18 11 +75 70 +132 7 +85 33 +303 94 +179 36 +169 30 +122 38 +145 37 +37 31 +27 25 +391 79 +178 167 +74 20 +202 33 +121 87 +178 54 +60 54 +154 63 +130 36 +97 63 +207 54 +12 0 +69 49 +73 54 +311 20 +244 41 +173 19 +106 54 +163 5 +183 94 +82 79 +31 26 +200 30 +92 20 +129 6 +21 16 +78 35 +206 20 +125 92 +58 23 +44 38 +105 16 +34 12 +101 36 +309 55 +53 50 +157 20 +275 89 +133 27 +9 5 +308 23 +271 141 +119 87 +66 65 +123 16 +160 6 +146 41 +38 27 +132 84 +99 27 +355 101 +28 5 +240 163 +65 8 +61 60 +236 70 +94 60 +279 90 +13 10 +363 77 +74 8 +131 67 +235 23 +40 7 +154 19 +73 65 +201 20 +130 8 +97 91 +83 24 +130 6 +187 54 +45 44 +49 41 +159 36 +126 41 +254 98 +187 167 +116 71 +82 51 +163 142 +186 117 +78 63 +7 1 +54 36 +58 43 +390 26 +195 142 +158 6 +34 16 +209 94 +195 31 +167 93 +53 22 +110 89 +114 36 +208 33 +29 13 +19 11 +56 4 +199 131 +38 7 +95 50 +132 72 +4 2 +65 20 +236 27 +41 3 +155 7 +122 94 +216 23 +179 141 +94 24 +23 4 +198 106 +168 41 +188 52 +28 21 +154 119 +211 122 +144 65 +177 15 +69 9 +55 42 +352 19 +153 38 +45 16 +35 6 +92 45 +96 40 +149 18 +82 23 +139 36 +310 15 +186 9 +78 27 +280 125 +195 106 +158 98 +20 7 +148 60 +67 36 +167 65 +161 40 +308 169 +39 11 +80 56 +190 141 +318 70 +214 23 +218 218 +133 83 +119 110 +66 22 +56 32 +274 43 +42 31 +142 82 +38 35 +303 69 +89 73 +363 358 +71 41 +169 33 +340 190 +51 5 +141 12 +202 10 +168 118 +70 13 +60 19 +207 172 +174 31 +140 91 +36 4 +349 75 +174 142 +152 146 +292 253 +79 23 +287 58 +126 22 +163 104 +220 79 +183 117 +106 98 +35 34 +172 121 +139 64 +196 119 +72 61 +348 346 +172 8 +215 170 +280 89 +134 84 +172 159 +314 312 +181 8 +104 27 +157 15 +110 17 +147 9 +80 36 +133 38 +15 6 +207 163 +190 56 +284 37 +167 17 +398 337 +227 53 +213 106 +199 75 +65 35 +193 22 +145 139 +61 23 +104 15 +155 94 +145 36 +94 65 +261 39 +88 26 +198 35 +131 102 +107 103 +386 40 +154 60 +46 6 +143 7 +12 1 +150 147 +173 18 +301 93 +49 12 +177 87 +106 55 +159 67 +126 50 +55 18 +277 20 +139 31 +106 70 +129 5 +68 30 +58 20 +243 16 +105 23 +24 11 +172 131 +138 63 +191 54 +53 49 +57 54 +366 40 +167 9 +157 19 +90 54 +143 32 +110 45 +275 88 +204 18 +336 154 +9 4 +66 47 +194 24 +360 101 +123 19 +146 38 +38 24 +136 16 +28 6 +41 38 +175 55 +13 9 +141 84 +70 58 +198 15 +74 9 +249 37 +50 14 +40 8 +154 16 +46 34 +103 23 +197 94 +73 64 +130 9 +69 20 +120 20 +301 65 +106 43 +126 46 +78 60 +334 170 +7 0 +135 79 +105 98 +233 53 +54 37 +58 40 +276 103 +390 27 +138 64 +286 88 +91 32 +10 6 +195 30 +87 20 +185 20 +370 40 +110 94 +114 37 +167 45 +208 34 +261 56 +29 12 +19 10 +133 126 +86 54 +56 5 +44 29 +142 119 +146 10 +38 4 +99 54 +136 12 +156 87 +4 3 +155 105 +51 40 +145 83 +155 6 +88 35 +108 94 +131 17 +23 7 +151 50 +373 78 +246 244 +84 23 +70 38 +198 107 +74 45 +60 8 +121 14 +258 39 +154 116 +231 70 +79 50 +372 40 +83 55 +301 20 +177 14 +69 8 +163 79 +55 37 +244 98 +45 15 +159 27 +35 9 +149 17 +82 20 +78 24 +373 40 +286 37 +91 12 +20 0 +205 60 +67 39 +104 32 +124 35 +308 170 +242 146 +80 57 +137 6 +29 16 +170 70 +190 29 +66 23 +194 64 +86 82 +166 26 +119 30 +32 26 +142 83 +146 110 +95 17 +14 9 +75 45 +189 61 +51 4 +165 52 +202 11 +131 13 +84 43 +198 87 +74 65 +168 6 +36 5 +154 72 +174 143 +103 95 +73 24 +93 69 +79 22 +248 18 +126 23 +328 170 +55 9 +92 50 +277 96 +172 122 +68 59 +182 39 +243 55 +172 9 +390 80 +162 19 +148 98 +205 79 +333 26 +280 90 +172 152 +276 142 +314 313 +208 204 +204 159 +43 26 +323 314 +147 8 +80 37 +137 34 +86 15 +109 55 +166 6 +142 47 +18 9 +146 82 +65 34 +240 8 +61 22 +189 65 +246 18 +175 18 +344 22 +126 75 +98 29 +88 27 +141 47 +64 4 +84 79 +255 38 +46 7 +130 34 +97 61 +79 69 +12 2 +69 63 +244 43 +173 17 +139 129 +106 52 +163 7 +224 23 +106 71 +129 4 +243 98 +334 79 +172 94 +361 19 +125 90 +158 40 +34 10 +185 142 +24 12 +101 34 +138 60 +318 317 +208 71 +157 18 +143 35 +327 326 +275 91 +86 43 +123 18 +38 25 +166 34 +136 17 +28 7 +89 23 +65 14 +61 58 +155 61 +239 53 +145 7 +94 34 +98 33 +192 38 +13 8 +74 54 +167 117 +131 69 +292 80 +40 9 +154 17 +46 35 +221 71 +335 195 +83 26 +59 5 +244 15 +106 40 +159 38 +163 35 +206 199 +139 58 +78 61 +334 171 +7 3 +158 4 +91 35 +219 22 +148 26 +87 23 +91 80 +208 148 +63 30 +53 20 +110 95 +208 35 +171 169 +104 84 +308 70 +86 55 +56 6 +142 116 +38 5 +95 60 +99 57 +136 13 +320 314 +155 104 +340 338 +273 37 +118 17 +47 31 +178 154 +202 20 +94 30 +131 16 +23 6 +373 77 +70 39 +60 9 +188 54 +121 13 +154 117 +248 136 +103 58 +231 65 +221 171 +79 61 +83 54 +159 117 +55 36 +311 94 +153 36 +210 79 +391 38 +159 26 +103 71 +35 8 +96 42 +334 20 +82 21 +78 25 +206 82 +172 38 +196 172 +162 12 +54 6 +115 20 +87 74 +91 15 +88 36 +67 38 +370 77 +63 50 +285 20 +39 5 +80 58 +208 15 +47 4 +153 83 +170 71 +194 65 +109 82 +274 41 +166 27 +227 27 +284 114 +322 317 +38 33 +71 43 +169 39 +189 60 +246 55 +51 7 +32 27 +245 197 +122 112 +202 8 +247 163 +64 57 +60 45 +106 91 +207 174 +154 38 +121 41 +36 6 +292 104 +311 156 +103 94 +140 36 +73 31 +79 17 +135 19 +254 41 +55 8 +183 119 +244 71 +267 56 +96 54 +72 63 +152 132 +266 67 +162 16 +148 99 +195 72 +347 133 +276 143 +81 81 +114 27 +242 36 +90 80 +110 23 +80 38 +394 106 +15 0 +76 50 +216 70 +109 54 +89 58 +142 44 +18 6 +146 83 +193 20 +165 70 +61 21 +189 64 +108 16 +94 71 +98 26 +151 4 +27 26 +198 33 +74 19 +222 171 +64 5 +84 72 +60 49 +335 121 +46 4 +79 68 +12 3 +69 62 +311 17 +187 47 +234 14 +163 6 +120 105 +102 9 +139 17 +31 7 +92 23 +129 27 +68 24 +125 89 +243 18 +148 7 +134 54 +138 61 +208 169 +143 34 +275 90 +66 45 +86 40 +119 80 +247 31 +52 31 +345 19 +146 36 +38 30 +166 35 +53 31 +136 18 +65 13 +179 5 +236 50 +41 36 +98 79 +61 57 +118 10 +201 65 +88 73 +94 35 +131 55 +70 56 +363 78 +202 64 +80 40 +50 12 +40 10 +103 17 +73 70 +93 27 +221 70 +207 23 +103 102 +59 4 +45 41 +190 70 +49 46 +106 41 +391 82 +310 38 +239 132 +243 65 +7 2 +210 138 +366 354 +58 54 +152 47 +158 5 +91 34 +134 18 +10 4 +91 83 +208 149 +171 27 +232 27 +346 15 +29 10 +163 106 +237 56 +156 34 +146 8 +166 79 +71 70 +165 141 +179 97 +88 37 +94 31 +131 19 +23 1 +282 141 +249 86 +70 36 +60 10 +117 87 +174 6 +107 33 +349 100 +97 11 +207 122 +221 170 +79 60 +358 77 +55 39 +187 87 +116 55 +45 13 +248 103 +159 5 +126 72 +92 40 +220 21 +82 18 +300 93 +196 30 +72 4 +186 20 +390 106 +266 172 +233 23 +286 43 +215 131 +54 7 +138 98 +20 2 +299 61 +63 61 +104 34 +275 37 +39 4 +80 59 +137 4 +194 94 +86 80 +56 35 +274 38 +294 45 +351 20 +119 24 +345 75 +169 38 +341 99 +51 6 +165 50 +202 9 +131 15 +64 58 +84 53 +118 79 +292 26 +168 8 +60 46 +140 86 +36 7 +292 105 +97 23 +154 86 +197 20 +73 30 +311 12 +79 16 +173 43 +177 40 +126 21 +163 109 +55 11 +183 118 +300 178 +206 60 +172 116 +300 65 +159 142 +72 32 +172 11 +162 17 +310 153 +172 154 +367 101 +77 19 +67 5 +181 21 +57 31 +366 19 +242 37 +157 12 +110 20 +241 155 +80 39 +15 3 +119 79 +52 4 +355 77 +89 57 +142 45 +18 7 +85 45 +61 20 +189 95 +94 68 +98 27 +316 70 +118 94 +198 38 +64 6 +121 91 +60 50 +46 5 +130 32 +79 71 +207 50 +361 358 +69 61 +73 58 +183 37 +311 16 +281 37 +376 101 +304 194 +106 50 +163 9 +82 75 +210 20 +391 105 +139 16 +267 39 +106 69 +186 93 +78 39 +233 94 +125 88 +105 20 +34 8 +239 65 +152 67 +81 35 +134 55 +195 39 +208 170 +299 5 +252 35 +110 65 +242 73 +157 16 +143 45 +147 38 +298 70 +190 72 +143 82 +241 16 +62 6 +160 26 +146 37 +38 31 +99 31 +136 19 +45 9 +179 4 +240 54 +61 56 +47 5 +94 32 +131 54 +151 43 +13 6 +74 52 +202 65 +31 17 +121 119 +212 154 +50 13 +40 11 +154 31 +46 33 +103 16 +140 30 +325 22 +201 24 +130 4 +69 17 +382 40 +220 131 +183 9 +59 7 +187 74 +45 40 +106 22 +126 45 +257 56 +224 53 +25 4 +82 47 +139 60 +267 67 +105 103 +333 79 +44 6 +229 14 +158 10 +91 37 +134 19 +10 5 +91 82 +309 23 +29 9 +394 390 +214 15 +90 9 +241 163 +56 8 +184 61 +62 34 +105 43 +146 9 +132 52 +136 15 +156 82 +71 65 +95 79 +388 365 +175 103 +128 126 +179 96 +236 23 +165 29 +98 80 +155 27 +122 90 +88 38 +131 18 +282 138 +155 136 +47 40 +70 37 +198 110 +74 40 +168 45 +60 11 +50 49 +97 10 +278 33 +26 6 +83 75 +197 63 +55 38 +59 35 +45 12 +248 104 +230 8 +159 4 +35 10 +220 22 +206 33 +139 88 +72 5 +54 4 +101 23 +138 99 +266 60 +20 3 +67 40 +205 138 +171 6 +104 35 +360 77 +275 36 +80 60 +171 151 +147 94 +5 4 +298 30 +119 106 +66 18 +194 95 +56 36 +104 38 +119 27 +32 29 +169 148 +99 87 +136 43 +85 8 +303 65 +14 12 +71 37 +350 100 +122 15 +51 9 +202 167 +104 80 +292 27 +168 9 +60 47 +353 19 +192 159 +231 22 +292 106 +97 22 +244 163 +154 87 +140 38 +311 15 +324 170 +362 101 +126 26 +163 108 +55 10 +224 14 +116 20 +244 65 +120 79 +21 7 +72 33 +158 51 +276 26 +243 169 +101 11 +195 74 +215 23 +70 9 +299 24 +67 4 +181 20 +114 25 +167 97 +43 31 +104 31 +80 24 +214 55 +15 2 +204 121 +45 32 +193 121 +156 107 +18 4 +132 12 +65 39 +71 9 +392 41 +345 100 +189 94 +122 35 +108 18 +94 69 +98 24 +151 6 +118 95 +141 44 +131 106 +188 9 +64 7 +121 90 +255 35 +60 51 +279 275 +174 63 +292 142 +150 36 +69 60 +73 57 +183 36 +311 19 +187 33 +159 79 +163 8 +139 19 +163 153 +75 12 +139 96 +182 6 +115 33 +243 20 +78 11 +105 27 +34 9 +162 50 +24 15 +195 38 +91 73 +208 171 +191 50 +232 33 +309 163 +167 5 +228 53 +237 193 +147 41 +275 92 +80 4 +9 8 +194 20 +241 23 +294 27 +199 154 +99 30 +179 7 +240 55 +61 55 +122 71 +145 4 +94 33 +302 178 +13 5 +74 53 +131 70 +164 6 +292 83 +140 31 +130 5 +207 17 +254 20 +59 6 +120 24 +106 23 +254 103 +25 11 +82 44 +102 43 +310 36 +319 318 +105 102 +125 123 +253 38 +200 142 +58 52 +158 11 +91 36 +87 16 +242 27 +208 151 +63 27 +161 7 +114 33 +208 38 +171 170 +298 59 +66 15 +56 9 +241 51 +42 36 +62 35 +119 54 +265 259 +146 6 +104 20 +247 146 +75 5 +39 27 +41 6 +118 20 +155 26 +94 29 +23 3 +155 139 +141 116 +70 26 +60 4 +282 58 +121 18 +50 46 +97 9 +278 38 +26 7 +103 55 +272 139 +234 53 +55 33 +59 34 +116 49 +153 41 +45 11 +248 105 +220 23 +96 45 +206 38 +159 148 +72 6 +286 41 +162 11 +54 5 +156 132 +30 18 +299 63 +194 186 +360 78 +39 6 +80 61 +137 10 +214 40 +76 9 +5 3 +66 19 +116 42 +113 20 +166 30 +119 26 +32 30 +217 22 +38 36 +166 105 +95 29 +132 41 +303 64 +14 13 +71 36 +169 36 +61 14 +51 8 +70 6 +60 40 +140 80 +272 88 +221 27 +154 84 +173 152 +197 18 +2 0 +187 4 +79 18 +49 27 +159 106 +126 27 +55 5 +263 56 +230 53 +182 136 +21 6 +381 40 +186 54 +280 47 +125 35 +299 138 +101 10 +30 14 +215 22 +67 7 +114 22 +242 35 +208 95 +323 318 +170 151 +143 120 +76 45 +119 73 +52 6 +199 177 +146 63 +132 126 +18 5 +132 13 +65 38 +374 40 +61 18 +179 91 +37 25 +94 74 +98 25 +175 143 +88 31 +188 10 +84 75 +27 3 +46 11 +231 53 +292 143 +79 65 +73 56 +311 18 +244 55 +173 13 +163 11 +139 18 +163 152 +314 20 +78 37 +206 30 +139 99 +148 147 +243 23 +105 26 +34 6 +111 20 +24 16 +243 132 +134 53 +195 41 +87 15 +309 49 +208 172 +114 58 +191 130 +143 47 +110 54 +80 5 +66 40 +184 35 +62 4 +146 35 +213 9 +89 27 +142 15 +179 6 +61 54 +189 97 +118 9 +94 38 +131 56 +13 4 +74 50 +121 117 +235 13 +278 27 +103 18 +144 91 +201 30 +93 24 +221 67 +97 93 +207 16 +130 7 +163 86 +310 283 +281 7 +45 38 +177 118 +106 20 +159 34 +35 16 +163 39 +82 45 +102 40 +206 122 +152 50 +148 38 +134 17 +158 155 +342 340 +347 206 +232 30 +161 6 +167 40 +379 78 +90 23 +66 12 +194 121 +392 27 +42 37 +142 120 +199 121 +146 7 +378 6 +132 54 +99 61 +136 49 +320 318 +135 134 +75 4 +246 47 +273 25 +165 27 +41 5 +226 27 +155 29 +47 27 +88 40 +131 20 +23 2 +70 27 +60 5 +121 17 +50 47 +272 125 +97 8 +174 116 +79 57 +83 58 +120 53 +230 14 +159 6 +315 313 +126 79 +183 156 +72 7 +253 82 +78 29 +390 105 +233 20 +54 26 +101 21 +20 13 +299 62 +87 55 +213 143 +80 62 +137 9 +170 67 +190 6 +66 16 +288 26 +52 35 +56 38 +274 37 +351 17 +136 94 +264 19 +318 170 +38 37 +169 154 +332 322 +307 4 +71 39 +75 32 +61 13 +155 72 +51 11 +131 112 +263 256 +64 61 +278 275 +168 11 +154 34 +174 33 +272 89 +93 47 +26 24 +154 85 +248 168 +197 17 +93 64 +187 7 +248 23 +49 26 +163 110 +201 167 +55 4 +96 91 +129 51 +21 5 +72 35 +243 58 +172 6 +276 36 +245 85 +101 9 +30 15 +158 64 +162 159 +67 6 +53 39 +181 18 +185 87 +114 23 +43 17 +356 40 +194 159 +157 9 +110 27 +39 37 +80 26 +375 77 +170 39 +247 55 +284 35 +341 190 +288 38 +136 122 +355 78 +18 2 +146 79 +65 37 +283 106 +71 11 +151 147 +354 29 +246 23 +283 27 +122 33 +198 138 +175 142 +178 94 +74 31 +222 175 +292 136 +83 5 +174 172 +73 63 +187 35 +173 12 +49 6 +159 73 +163 10 +183 87 +116 106 +82 70 +139 21 +163 155 +243 105 +206 31 +68 4 +334 195 +229 23 +34 7 +153 147 +111 23 +24 17 +101 45 +204 106 +77 52 +208 173 +208 60 +191 141 +147 43 +80 6 +190 79 +143 95 +184 36 +241 21 +294 25 +170 27 +247 27 +38 18 +166 39 +75 27 +354 78 +179 9 +41 40 +61 53 +47 6 +340 99 +13 3 +70 60 +350 348 +282 36 +50 8 +40 14 +207 98 +154 26 +46 36 +325 19 +93 23 +79 36 +103 98 +362 40 +254 26 +183 10 +187 79 +244 20 +120 26 +248 79 +177 117 +163 38 +314 70 +25 9 +82 42 +300 117 +102 41 +196 38 +78 6 +138 74 +195 119 +158 9 +134 22 +10 0 +87 18 +63 5 +232 31 +151 133 +208 24 +29 6 +90 20 +147 71 +56 11 +142 121 +136 50 +320 319 +193 39 +199 9 +158 18 +250 35 +165 26 +320 221 +47 26 +152 98 +88 41 +202 17 +131 23 +297 291 +151 72 +155 141 +84 29 +141 114 +255 20 +168 16 +60 6 +50 44 +164 36 +278 36 +26 5 +272 141 +234 51 +201 138 +55 35 +221 215 +59 36 +244 104 +120 54 +267 19 +106 9 +35 15 +92 36 +96 47 +206 36 +72 8 +172 35 +233 27 +162 9 +54 27 +152 15 +101 20 +138 110 +30 16 +87 65 +20 14 +205 54 +366 101 +67 45 +87 54 +238 70 +181 10 +80 63 +137 8 +143 102 +5 1 +247 82 +56 39 +294 33 +119 20 +146 104 +95 31 +132 43 +99 88 +71 38 +75 35 +61 12 +155 75 +179 65 +121 67 +178 10 +70 4 +168 12 +154 35 +174 38 +140 82 +272 90 +36 3 +168 155 +26 25 +154 82 +389 78 +103 85 +187 6 +234 23 +254 82 +291 36 +55 7 +187 119 +116 23 +120 82 +126 104 +21 4 +68 33 +159 138 +72 36 +86 45 +172 7 +162 45 +239 41 +276 37 +333 20 +134 79 +101 8 +158 65 +128 20 +191 27 +67 9 +57 35 +114 20 +43 16 +336 38 +33 26 +218 22 +110 24 +147 14 +39 36 +190 80 +137 36 +184 9 +204 116 +190 35 +146 61 +166 56 +204 203 +156 102 +18 3 +65 36 +85 41 +71 10 +165 65 +169 6 +61 16 +118 35 +283 26 +216 39 +329 328 +94 72 +35 11 +98 23 +27 17 +178 95 +188 4 +64 26 +192 79 +121 95 +329 170 +40 19 +46 9 +79 67 +78 19 +183 33 +49 5 +334 38 +82 71 +139 20 +163 154 +182 106 +243 104 +68 5 +138 87 +195 154 +179 37 +275 274 +276 57 +24 18 +243 134 +134 43 +138 38 +87 9 +208 174 +167 6 +80 7 +251 110 +143 94 +142 98 +166 36 +136 23 +75 26 +203 33 +95 87 +175 79 +179 8 +61 52 +155 51 +94 36 +131 58 +151 39 +13 2 +70 61 +282 37 +50 9 +329 70 +174 94 +103 12 +268 39 +16 8 +22 18 +207 18 +376 22 +254 27 +59 27 +352 15 +153 82 +45 36 +106 18 +35 18 +163 41 +116 79 +82 43 +300 118 +395 394 +78 7 +384 40 +138 75 +343 22 +91 57 +134 23 +87 45 +208 138 +63 4 +161 4 +308 221 +238 26 +39 31 +29 5 +143 13 +140 139 +275 125 +298 38 +194 119 +86 73 +180 6 +42 35 +62 38 +307 189 +327 70 +193 38 +213 43 +71 61 +75 6 +165 25 +169 94 +47 37 +178 148 +344 212 +202 30 +131 22 +297 290 +151 75 +192 24 +155 140 +70 25 +60 7 +282 57 +50 45 +311 182 +278 37 +174 122 +220 204 +79 59 +391 143 +305 74 +163 116 +55 34 +97 83 +244 105 +45 8 +92 37 +11 9 +72 9 +233 26 +162 6 +54 24 +310 182 +239 20 +152 16 +209 33 +101 19 +138 111 +266 56 +195 82 +162 121 +20 15 +57 6 +299 65 +194 185 +173 20 +39 3 +76 4 +5 0 +298 26 +190 4 +86 85 +56 40 +119 23 +213 94 +146 105 +169 152 +132 20 +99 91 +85 20 +71 33 +368 40 +61 11 +189 54 +179 64 +165 61 +259 56 +279 37 +88 6 +84 50 +377 40 +70 5 +74 72 +168 13 +60 43 +117 54 +306 167 +36 12 +93 45 +103 84 +220 208 +79 31 +173 38 +376 78 +305 118 +163 16 +55 6 +96 93 +126 105 +92 9 +21 3 +68 34 +105 35 +158 55 +243 173 +191 26 +67 8 +53 37 +208 82 +265 237 +133 46 +86 6 +143 69 +76 40 +204 117 +119 74 +123 15 +132 121 +160 98 +142 54 +18 0 +132 8 +179 47 +240 15 +61 47 +155 86 +193 159 +175 27 +216 40 +94 73 +98 20 +27 16 +340 73 +64 27 +121 94 +325 172 +40 20 +97 54 +73 61 +244 50 +49 4 +234 8 +254 79 +139 23 +243 107 +176 16 +68 6 +72 65 +182 26 +384 77 +115 37 +157 137 +158 19 +215 70 +24 19 +152 72 +87 8 +285 37 +309 175 +114 57 +147 45 +369 77 +241 11 +62 11 +142 99 +109 20 +38 16 +104 16 +142 18 +65 7 +179 11 +114 92 +98 73 +61 51 +122 67 +88 79 +178 64 +70 50 +74 49 +168 54 +50 6 +278 30 +211 105 +103 15 +140 27 +16 9 +73 72 +22 19 +97 74 +79 38 +376 23 +395 175 +244 143 +187 65 +45 35 +253 192 +35 21 +254 107 +116 72 +243 71 +319 314 +44 3 +308 22 +138 72 +195 121 +158 15 +148 33 +134 20 +248 20 +309 18 +63 7 +161 27 +238 27 +167 37 +208 26 +29 4 +143 12 +190 105 +66 11 +180 7 +56 13 +62 39 +123 55 +95 74 +246 34 +47 36 +88 43 +306 94 +146 5 +202 31 +155 143 +84 31 +193 67 +168 18 +192 136 +121 22 +174 8 +302 61 +304 74 +26 3 +248 143 +79 58 +391 142 +8 3 +187 109 +244 106 +138 133 +11 8 +305 299 +243 35 +334 142 +54 25 +239 23 +152 17 +243 82 +91 4 +20 8 +205 52 +390 142 +57 5 +299 64 +114 65 +80 49 +143 96 +76 5 +204 82 +133 90 +190 5 +52 46 +237 22 +240 86 +392 43 +142 91 +169 159 +99 90 +89 80 +169 40 +61 10 +365 354 +175 6 +51 12 +165 60 +94 82 +202 51 +60 36 +121 50 +36 13 +221 23 +97 41 +207 36 +174 151 +140 35 +197 30 +187 24 +248 26 +305 117 +96 94 +116 17 +254 163 +135 126 +68 35 +72 38 +105 34 +239 43 +243 172 +162 154 +299 31 +67 11 +53 36 +332 221 +43 18 +191 106 +194 154 +39 38 +80 29 +375 78 +86 7 +15 9 +204 118 +119 69 +132 122 +142 55 +18 1 +132 9 +65 58 +85 55 +71 4 +165 79 +169 4 +61 46 +118 33 +155 41 +175 26 +94 78 +98 21 +27 19 +353 100 +107 94 +292 36 +40 21 +302 117 +83 6 +73 60 +248 54 +234 9 +163 15 +139 22 +106 79 +182 104 +243 106 +68 7 +182 27 +384 78 +243 27 +105 30 +158 16 +162 79 +24 20 +243 136 +134 41 +285 36 +241 15 +275 99 +137 70 +66 36 +194 17 +86 35 +241 10 +204 154 +170 6 +62 8 +119 41 +160 16 +146 31 +38 17 +132 94 +99 5 +199 38 +354 77 +65 6 +179 10 +307 65 +61 50 +131 60 +151 33 +84 4 +178 65 +74 62 +168 55 +245 55 +50 7 +311 172 +267 266 +140 20 +157 64 +16 10 +292 175 +22 16 +69 27 +183 7 +244 23 +45 34 +49 39 +106 16 +35 20 +163 43 +96 6 +82 41 +172 106 +139 50 +152 135 +54 50 +172 71 +138 73 +195 120 +158 12 +286 65 +101 78 +67 50 +242 20 +63 6 +124 16 +167 36 +208 27 +29 3 +143 15 +241 54 +62 36 +123 54 +184 178 +166 70 +169 162 +99 33 +71 63 +199 10 +75 56 +246 35 +344 39 +165 7 +41 9 +246 82 +47 39 +192 26 +155 142 +70 31 +30 17 +174 9 +50 43 +107 38 +83 81 +174 120 +103 50 +201 62 +79 5 +83 62 +363 101 +244 107 +45 6 +310 106 +96 34 +304 31 +72 11 +206 90 +172 30 +105 69 +162 4 +346 345 +54 30 +148 87 +367 77 +152 18 +138 109 +20 9 +390 143 +57 4 +208 104 +161 38 +241 240 +80 50 +194 38 +76 6 +190 10 +123 101 +109 74 +274 33 +242 87 +119 17 +146 103 +95 24 +85 18 +71 35 +75 36 +61 9 +189 52 +51 15 +165 59 +118 117 +122 120 +168 96 +84 60 +178 9 +127 126 +207 87 +60 37 +207 182 +302 94 +221 22 +73 7 +79 25 +248 27 +116 18 +244 79 +210 43 +21 1 +206 7 +196 121 +72 39 +58 6 +162 40 +148 107 +333 17 +191 4 +53 35 +181 30 +33 31 +90 88 +110 31 +15 8 +143 71 +136 126 +132 10 +310 82 +65 57 +85 54 +71 7 +169 11 +61 45 +179 94 +198 142 +145 18 +37 4 +94 79 +98 18 +27 18 +178 90 +141 38 +131 80 +249 23 +325 170 +40 22 +395 106 +95 30 +79 76 +83 9 +304 118 +69 38 +73 35 +338 73 +106 61 +126 56 +263 27 +139 9 +163 159 +182 105 +129 19 +176 18 +72 67 +182 24 +243 26 +138 82 +195 159 +34 3 +152 74 +134 46 +91 79 +191 56 +184 40 +241 9 +298 208 +119 40 +247 23 +123 45 +270 90 +109 18 +38 22 +136 26 +213 20 +142 16 +199 33 +209 56 +65 5 +112 24 +229 53 +61 49 +155 52 +216 6 +94 43 +84 5 +74 63 +245 54 +121 120 +50 4 +70 67 +311 175 +46 40 +16 11 +130 31 +97 80 +83 37 +69 26 +244 16 +372 77 +49 38 +106 17 +35 23 +96 7 +206 204 +82 38 +102 45 +361 101 +78 10 +347 39 +367 40 +152 55 +138 118 +91 58 +148 35 +365 40 +101 77 +394 175 +87 46 +346 100 +309 16 +171 19 +214 151 +53 27 +181 86 +214 6 +133 100 +66 9 +56 15 +62 37 +32 8 +184 179 +169 50 +202 138 +165 6 +41 8 +169 67 +155 16 +47 38 +88 45 +94 7 +131 27 +368 358 +192 27 +155 129 +326 170 +255 16 +168 20 +117 95 +121 20 +50 40 +272 114 +26 1 +154 122 +174 121 +103 45 +201 61 +311 32 +79 4 +177 4 +45 5 +159 13 +96 35 +149 39 +11 10 +72 12 +310 26 +172 31 +54 31 +295 291 +308 19 +138 106 +266 39 +30 20 +91 6 +20 10 +185 62 +90 69 +238 53 +275 45 +133 55 +143 98 +271 89 +274 143 +147 103 +190 11 +52 40 +166 16 +294 37 +32 20 +89 37 +99 92 +71 34 +364 40 +75 39 +61 8 +155 79 +108 37 +27 9 +122 121 +88 9 +131 119 +192 103 +121 71 +84 61 +60 38 +325 70 +182 143 +130 84 +168 159 +97 47 +207 38 +154 94 +69 65 +73 6 +173 35 +126 29 +163 21 +96 80 +153 15 +102 26 +186 65 +196 122 +72 40 +105 32 +148 116 +243 174 +101 52 +138 14 +299 17 +53 34 +181 29 +295 37 +90 89 +39 32 +137 40 +15 11 +190 39 +247 50 +156 98 +65 56 +71 6 +189 87 +155 43 +175 36 +45 20 +37 3 +151 31 +27 21 +141 37 +198 30 +168 93 +64 30 +40 23 +36 35 +22 10 +244 142 +83 8 +69 37 +73 34 +183 61 +263 26 +102 6 +139 8 +31 14 +163 158 +129 18 +210 159 +176 19 +196 94 +291 290 +58 27 +44 26 +347 75 +24 22 +101 40 +87 5 +91 78 +208 162 +191 59 +53 6 +110 73 +185 118 +104 98 +90 61 +133 15 +308 27 +241 8 +119 43 +160 18 +142 102 +146 29 +38 23 +193 94 +213 19 +142 17 +203 37 +189 10 +65 4 +350 39 +216 7 +84 6 +141 73 +70 49 +74 60 +282 33 +50 5 +207 105 +154 103 +103 8 +103 47 +79 35 +207 30 +83 36 +177 31 +116 36 +372 78 +120 31 +106 30 +159 40 +35 22 +163 45 +277 61 +25 12 +82 39 +304 117 +196 35 +200 38 +129 126 +239 143 +186 121 +243 72 +172 52 +276 106 +138 119 +195 122 +392 82 +67 52 +185 33 +242 18 +171 18 +228 65 +232 4 +124 18 +53 26 +114 88 +80 72 +137 23 +104 94 +143 9 +204 41 +66 6 +56 16 +32 9 +288 99 +95 38 +99 35 +136 55 +242 110 +75 58 +283 41 +307 95 +165 5 +41 15 +122 98 +306 93 +269 39 +131 26 +84 26 +326 171 +117 94 +121 27 +50 41 +107 24 +36 20 +225 53 +278 57 +26 14 +211 6 +103 44 +301 9 +45 4 +173 79 +267 22 +159 12 +183 154 +96 36 +139 80 +72 13 +243 36 +172 24 +295 290 +299 167 +138 107 +20 11 +147 136 +185 61 +242 54 +208 106 +63 36 +104 43 +133 54 +321 318 +271 88 +365 77 +190 8 +318 221 +237 19 +42 3 +32 21 +89 36 +142 94 +378 10 +293 99 +169 45 +61 7 +122 23 +303 62 +112 33 +27 8 +306 65 +202 62 +178 7 +60 39 +121 55 +174 43 +231 14 +36 8 +221 20 +154 95 +174 154 +103 80 +197 27 +73 5 +159 83 +163 20 +220 67 +187 138 +206 154 +102 27 +182 131 +21 15 +58 4 +84 41 +390 79 +162 38 +148 117 +309 38 +77 10 +208 199 +191 6 +252 16 +53 33 +57 38 +295 36 +43 23 +39 35 +86 26 +15 10 +398 390 +76 36 +190 36 +119 70 +284 57 +251 54 +146 54 +113 41 +156 99 +142 58 +65 63 +169 9 +118 36 +151 30 +141 36 +198 31 +131 82 +121 98 +40 24 +207 82 +282 125 +268 56 +22 11 +79 78 +83 11 +69 36 +183 60 +173 6 +177 67 +159 55 +116 112 +139 11 +86 16 +58 24 +390 43 +158 23 +239 72 +24 23 +81 26 +138 35 +91 65 +124 15 +53 5 +185 117 +208 50 +171 70 +228 61 +147 49 +66 35 +379 40 +76 72 +119 42 +247 17 +160 19 +109 16 +146 26 +38 20 +99 6 +95 82 +189 9 +65 27 +112 26 +41 18 +155 54 +216 8 +112 105 +99 20 +98 52 +84 7 +70 54 +74 61 +70 65 +140 23 +130 29 +79 34 +154 151 +83 39 +301 36 +305 33 +244 18 +173 106 +49 36 +106 31 +35 25 +183 177 +25 19 +82 36 +135 50 +139 55 +78 8 +310 175 +134 121 +390 23 +138 116 +185 183 +87 40 +181 35 +124 19 +61 6 +39 26 +167 33 +80 73 +208 30 +190 130 +137 22 +342 73 +32 10 +142 67 +95 33 +189 188 +199 7 +246 38 +307 94 +165 4 +222 79 +169 65 +88 47 +141 27 +108 82 +151 70 +64 40 +155 131 +84 27 +178 96 +306 45 +70 18 +255 18 +174 12 +302 65 +50 38 +107 27 +144 47 +36 21 +221 15 +26 15 +177 169 +173 61 +159 15 +310 105 +96 37 +82 8 +139 83 +148 82 +367 78 +30 26 +67 19 +57 9 +242 55 +104 44 +124 55 +275 47 +80 53 +100 56 +137 50 +147 105 +298 7 +190 9 +137 131 +123 102 +56 45 +166 22 +136 69 +32 22 +89 43 +142 95 +199 90 +203 31 +169 131 +132 17 +99 94 +151 132 +122 20 +51 16 +165 56 +273 143 +202 63 +207 69 +121 69 +255 54 +121 54 +302 93 +107 7 +36 9 +221 19 +97 45 +73 4 +177 38 +159 82 +163 23 +55 29 +102 24 +31 20 +58 5 +105 38 +162 39 +134 65 +77 9 +53 32 +57 37 +167 24 +43 22 +104 8 +147 20 +39 34 +137 46 +86 27 +143 64 +190 37 +119 65 +284 58 +52 14 +146 55 +204 193 +132 102 +298 138 +65 62 +165 75 +169 8 +155 45 +175 38 +216 45 +145 23 +94 50 +27 23 +141 35 +74 6 +40 25 +46 19 +22 8 +79 73 +69 35 +183 63 +159 54 +197 143 +163 51 +82 65 +120 116 +129 16 +78 45 +172 82 +135 94 +176 21 +72 70 +58 25 +158 20 +34 30 +185 154 +134 45 +195 17 +87 7 +191 37 +53 4 +143 55 +133 13 +119 37 +247 16 +160 20 +307 167 +109 15 +146 27 +38 21 +142 23 +199 34 +75 16 +343 100 +95 93 +189 8 +65 26 +142 134 +41 17 +155 9 +216 9 +112 106 +94 46 +175 171 +70 55 +202 119 +207 107 +140 16 +197 65 +22 20 +83 38 +116 38 +120 33 +173 105 +35 24 +96 26 +25 18 +82 37 +139 54 +72 19 +182 72 +78 9 +125 114 +134 126 +138 117 +148 46 +134 9 +87 43 +242 16 +171 20 +299 91 +104 49 +53 24 +110 107 +39 21 +80 74 +208 31 +137 21 +90 31 +204 43 +66 4 +56 18 +274 57 +119 9 +247 244 +32 11 +99 37 +193 56 +199 6 +146 142 +75 60 +283 43 +41 13 +155 21 +47 35 +192 30 +155 130 +84 36 +178 97 +70 19 +383 40 +168 23 +121 25 +50 39 +107 26 +36 22 +258 56 +26 12 +154 121 +197 37 +244 192 +159 121 +163 122 +221 208 +391 26 +103 65 +82 9 +139 82 +68 52 +243 38 +206 94 +286 22 +54 18 +205 94 +101 29 +91 27 +360 40 +181 6 +57 8 +63 38 +104 45 +80 54 +271 90 +147 104 +204 79 +137 130 +345 39 +166 23 +294 88 +32 23 +203 30 +95 4 +132 18 +99 65 +378 8 +71 31 +169 19 +61 5 +51 19 +165 39 +94 87 +98 10 +27 10 +273 142 +192 122 +121 68 +107 105 +60 33 +36 10 +221 18 +173 143 +174 152 +103 82 +306 304 +187 31 +244 36 +116 30 +176 66 +102 25 +106 84 +206 11 +68 40 +125 73 +186 63 +115 79 +78 65 +78 4 +125 58 +162 36 +148 119 +276 44 +309 36 +77 8 +53 47 +181 26 +57 36 +167 27 +370 101 +208 72 +228 27 +232 94 +90 36 +110 35 +147 23 +80 18 +137 45 +143 67 +202 154 +247 15 +160 9 +52 15 +136 98 +89 6 +166 130 +65 61 +61 41 +27 22 +3 1 +192 70 +40 26 +278 116 +117 20 +154 14 +174 69 +93 11 +130 55 +22 9 +79 72 +73 39 +183 62 +301 79 +197 142 +126 60 +277 38 +120 117 +391 98 +31 11 +163 131 +210 154 +358 354 +72 71 +54 43 +58 38 +390 41 +138 94 +34 31 +162 72 +148 11 +243 143 +134 34 +87 6 +228 168 +191 36 +252 54 +289 36 +110 63 +133 12 +86 36 +365 19 +119 36 +288 90 +146 24 +194 143 +28 20 +140 87 +203 38 +65 25 +293 57 +41 16 +155 8 +216 10 +131 35 +387 77 +175 170 +117 71 +235 4 +326 221 +164 8 +207 106 +154 98 +335 20 +16 15 +22 21 +69 6 +244 136 +45 29 +248 87 +130 19 +35 27 +92 88 +96 27 +25 17 +72 20 +239 136 +233 39 +247 72 +291 37 +357 78 +10 8 +87 42 +171 23 +104 50 +346 19 +39 20 +167 35 +80 75 +208 16 +147 79 +298 33 +66 5 +56 19 +341 73 +62 41 +362 78 +184 183 +95 35 +132 63 +391 41 +99 36 +213 52 +146 143 +169 54 +155 103 +175 104 +41 12 +155 20 +47 34 +94 11 +131 31 +23 21 +64 42 +155 133 +84 37 +212 82 +70 16 +60 30 +192 142 +211 154 +50 36 +107 29 +36 23 +26 13 +197 36 +201 33 +301 6 +348 39 +153 55 +300 194 +159 9 +277 94 +82 6 +333 208 +243 41 +172 27 +152 23 +134 91 +172 170 +138 22 +91 26 +67 21 +167 118 +228 96 +90 65 +80 55 +184 117 +204 72 +133 68 +190 15 +137 129 +237 16 +166 20 +193 106 +95 7 +132 19 +8 1 +284 246 +61 4 +189 79 +122 18 +51 18 +108 33 +98 11 +27 13 +198 54 +202 61 +64 54 +107 104 +343 39 +60 34 +117 63 +36 11 +97 35 +244 182 +154 90 +173 142 +153 98 +173 31 +55 31 +183 74 +31 22 +129 10 +21 12 +280 57 +209 154 +105 36 +125 57 +205 65 +172 142 +195 55 +77 7 +285 90 +39 12 +53 46 +228 4 +194 148 +33 18 +90 37 +133 23 +336 173 +160 155 +294 285 +143 134 +190 43 +160 10 +344 343 +208 94 +264 56 +166 131 +65 60 +273 79 +61 40 +145 21 +151 27 +198 18 +74 4 +168 65 +272 47 +164 21 +40 27 +349 15 +154 15 +140 110 +93 10 +14 8 +73 38 +120 7 +106 38 +277 37 +300 138 +139 12 +163 130 +78 51 +196 90 +54 40 +182 29 +58 39 +367 19 +138 95 +148 20 +243 142 +134 35 +138 46 +195 19 +185 9 +191 39 +208 53 +104 102 +90 57 +143 49 +137 72 +375 40 +392 26 +247 18 +146 25 +38 11 +193 82 +75 18 +142 132 +236 39 +273 43 +41 23 +118 7 +155 11 +47 9 +37 35 +94 44 +168 61 +249 54 +164 9 +349 19 +154 99 +46 45 +140 18 +16 0 +79 47 +207 26 +154 146 +177 19 +69 5 +120 35 +301 178 +106 26 +159 20 +35 26 +92 89 +187 183 +25 16 +82 35 +139 40 +182 78 +105 83 +357 77 +239 105 +134 15 +10 9 +67 56 +195 15 +87 37 +171 22 +275 20 +39 23 +208 17 +137 27 +214 27 +365 101 +242 240 +194 79 +86 65 +56 20 +351 39 +119 11 +156 55 +105 41 +378 101 +105 12 +273 23 +169 70 +155 23 +47 45 +202 6 +94 8 +23 20 +64 43 +84 38 +178 31 +60 31 +192 143 +121 31 +174 19 +50 37 +36 16 +292 122 +97 6 +26 10 +154 71 +140 54 +197 35 +134 31 +183 97 +120 63 +391 20 +230 4 +254 142 +92 61 +277 93 +210 208 +72 49 +149 147 +172 20 +105 79 +286 20 +162 30 +54 16 +172 171 +101 27 +195 90 +158 82 +67 20 +185 65 +63 32 +104 47 +170 166 +133 50 +143 105 +184 118 +147 106 +76 60 +288 20 +237 15 +274 27 +136 72 +89 40 +142 34 +240 140 +336 17 +8 2 +155 66 +51 21 +165 37 +98 8 +226 53 +27 12 +198 55 +104 82 +60 35 +117 62 +150 20 +211 38 +73 9 +159 95 +126 6 +163 24 +55 30 +183 69 +153 18 +210 37 +106 82 +129 9 +21 11 +72 45 +200 98 +186 61 +280 58 +195 169 +162 34 +298 27 +134 68 +195 54 +77 6 +6 2 +299 20 +53 45 +185 93 +228 5 +33 17 +110 33 +204 30 +62 23 +52 9 +248 86 +85 79 +199 59 +65 51 +61 39 +354 19 +122 55 +98 44 +151 26 +192 41 +74 5 +202 94 +50 26 +335 79 +93 9 +311 246 +22 15 +79 74 +287 121 +73 37 +187 61 +244 58 +248 61 +106 39 +159 51 +362 77 +126 34 +78 36 +139 15 +163 133 +129 21 +314 27 +54 41 +58 36 +44 23 +162 70 +148 21 +195 18 +191 38 +110 82 +208 54 +90 6 +147 53 +137 79 +76 68 +216 77 +119 38 +142 107 +274 99 +38 8 +189 148 +378 78 +112 30 +240 35 +41 22 +226 10 +155 10 +47 8 +37 34 +94 45 +117 69 +221 39 +349 18 +207 116 +79 46 +177 18 +69 4 +116 33 +45 27 +173 102 +177 99 +106 27 +159 23 +35 29 +92 90 +96 29 +116 80 +102 39 +72 22 +182 79 +105 82 +290 36 +54 53 +310 163 +58 56 +280 114 +138 112 +162 106 +239 104 +134 12 +87 36 +185 36 +228 78 +157 126 +161 19 +275 23 +39 22 +208 18 +137 26 +29 28 +204 38 +56 21 +119 10 +160 51 +142 71 +146 122 +203 119 +95 45 +99 38 +71 52 +75 49 +169 52 +118 96 +155 22 +47 44 +141 23 +94 9 +320 70 +70 22 +292 20 +168 26 +60 24 +210 106 +121 30 +97 5 +150 9 +103 43 +140 55 +170 138 +305 65 +190 73 +254 143 +11 0 +139 87 +72 50 +182 43 +243 43 +125 19 +54 17 +101 26 +266 33 +162 142 +20 16 +67 23 +147 143 +63 35 +194 142 +133 49 +194 33 +220 70 +247 36 +375 19 +56 49 +156 20 +284 65 +89 47 +142 35 +146 94 +99 66 +223 53 +85 27 +378 23 +89 88 +71 24 +122 16 +51 20 +108 35 +112 38 +165 36 +98 9 +27 15 +64 8 +117 61 +154 41 +93 36 +189 187 +211 41 +73 8 +49 23 +159 94 +126 7 +163 27 +55 25 +106 83 +200 20 +129 8 +21 10 +371 77 +337 173 +72 46 +78 68 +162 35 +145 144 +233 79 +6 3 +285 88 +309 82 +167 20 +104 12 +33 16 +110 38 +80 21 +76 33 +62 20 +190 41 +119 93 +160 12 +52 10 +113 44 +99 17 +229 27 +65 50 +283 103 +216 130 +240 56 +368 77 +169 12 +61 38 +246 98 +283 20 +148 106 +179 167 +145 11 +94 54 +98 45 +198 16 +202 95 +3 2 +64 20 +50 27 +178 36 +292 44 +40 29 +117 17 +46 23 +174 72 +93 8 +73 36 +311 102 +59 9 +187 60 +106 36 +183 168 +102 56 +206 106 +176 9 +196 68 +54 46 +182 19 +58 37 +266 22 +195 132 +34 26 +134 33 +91 68 +366 78 +309 182 +208 55 +124 123 +19 1 +294 20 +355 6 +119 33 +146 23 +38 9 +166 82 +306 189 +199 30 +75 20 +189 4 +213 142 +273 41 +240 36 +122 72 +94 18 +131 36 +387 78 +192 54 +74 38 +168 63 +137 7 +164 11 +207 119 +282 90 +16 2 +184 65 +177 17 +183 31 +116 34 +244 31 +45 26 +177 98 +12 4 +25 22 +82 33 +102 36 +72 23 +163 160 +290 37 +54 10 +58 57 +134 13 +380 19 +167 79 +299 95 +161 18 +208 19 +29 27 +90 27 +143 23 +147 80 +313 312 +190 22 +45 39 +180 8 +109 94 +56 22 +189 183 +193 60 +85 6 +163 36 +250 54 +118 97 +178 138 +94 14 +23 22 +64 45 +192 18 +306 38 +70 23 +168 27 +60 25 +174 17 +50 35 +107 30 +36 18 +97 4 +26 8 +335 6 +396 394 +55 52 +385 40 +159 10 +129 35 +96 58 +82 5 +11 3 +233 119 +159 155 +182 40 +314 208 +172 22 +286 26 +125 18 +54 22 +276 20 +134 94 +390 244 +162 143 +91 31 +20 17 +67 22 +57 12 +63 34 +365 78 +104 17 +194 62 +214 37 +143 107 +246 106 +56 50 +166 11 +105 44 +146 95 +132 30 +8 4 +85 26 +71 27 +169 23 +151 131 +122 17 +51 23 +198 154 +165 35 +98 6 +27 14 +141 58 +64 9 +121 72 +141 139 +154 54 +231 4 +292 152 +207 47 +187 19 +153 103 +281 90 +248 35 +234 26 +126 4 +163 26 +55 24 +116 26 +153 16 +391 122 +106 80 +129 15 +21 9 +139 114 +195 171 +347 100 +239 50 +24 1 +134 58 +77 4 +6 0 +356 77 +232 51 +346 39 +57 40 +167 23 +43 13 +171 80 +265 27 +104 13 +147 27 +80 22 +133 20 +160 158 +184 20 +76 34 +369 40 +260 56 +136 102 +231 26 +203 62 +378 40 +216 131 +179 57 +368 78 +61 37 +118 62 +37 12 +98 42 +151 20 +192 43 +246 146 +50 24 +178 37 +207 146 +46 20 +177 155 +130 51 +22 13 +69 46 +187 63 +163 54 +102 57 +328 70 +78 54 +371 40 +172 79 +300 20 +68 8 +253 20 +54 47 +58 34 +152 35 +138 90 +34 27 +152 82 +134 38 +67 65 +195 20 +91 71 +77 40 +214 131 +143 141 +110 80 +143 50 +173 9 +19 0 +254 43 +66 61 +170 15 +146 20 +156 60 +75 23 +175 80 +179 21 +142 139 +293 37 +226 8 +131 39 +23 13 +151 56 +178 118 +70 40 +326 70 +168 32 +278 20 +154 110 +267 261 +16 3 +130 23 +79 40 +83 45 +301 30 +177 16 +201 154 +183 30 +8 0 +187 91 +120 38 +159 17 +35 31 +116 82 +82 30 +102 37 +139 45 +72 24 +182 77 +206 71 +105 80 +233 43 +54 11 +253 98 +148 68 +209 67 +67 61 +87 38 +181 45 +299 94 +63 9 +194 168 +252 86 +39 16 +208 20 +29 26 +90 24 +237 151 +184 93 +76 27 +204 32 +170 80 +190 23 +194 74 +180 9 +56 23 +113 26 +241 45 +62 45 +247 243 +239 5 +71 54 +354 102 +273 20 +202 5 +23 17 +141 102 +70 20 +60 26 +174 22 +50 32 +36 19 +97 27 +26 9 +177 163 +73 18 +248 8 +177 60 +234 39 +173 72 +267 15 +205 33 +11 2 +139 73 +72 52 +182 41 +129 83 +186 36 +243 45 +394 105 +286 27 +125 17 +54 23 +30 28 +20 18 +57 19 +43 32 +63 45 +104 18 +110 8 +238 61 +194 63 +143 106 +190 51 +247 38 +284 44 +251 35 +166 8 +89 45 +142 33 +132 31 +8 5 +193 31 +71 26 +327 172 +169 22 +354 10 +122 30 +37 23 +165 34 +27 1 +141 57 +178 62 +40 35 +349 39 +154 55 +104 69 +292 153 +97 39 +173 138 +12 8 +173 27 +234 27 +163 29 +55 27 +116 27 +244 80 +120 94 +230 39 +21 8 +68 21 +243 9 +195 170 +152 119 +81 55 +172 138 +138 54 +6 1 +299 9 +356 78 +43 12 +336 18 +100 75 +33 22 +90 33 +110 36 +147 26 +80 23 +133 19 +214 70 +308 15 +392 20 +52 20 +89 9 +213 79 +61 36 +118 63 +155 35 +145 9 +37 11 +98 43 +151 23 +192 44 +212 39 +64 22 +50 25 +117 31 +18 8 +371 101 +93 6 +69 45 +59 11 +159 60 +243 116 +172 72 +176 11 +58 35 +152 36 +44 18 +229 26 +266 20 +148 16 +195 23 +87 29 +208 154 +63 20 +191 35 +285 58 +53 14 +19 3 +66 58 +62 54 +355 8 +119 35 +142 110 +146 21 +38 15 +166 80 +156 94 +75 22 +175 83 +240 38 +293 36 +118 27 +155 15 +47 21 +94 16 +131 38 +23 12 +178 119 +141 65 +74 36 +207 192 +282 88 +174 106 +130 20 +59 23 +102 75 +106 6 +159 16 +13 0 +25 20 +135 43 +310 55 +243 80 +206 68 +125 12 +253 55 +54 8 +239 4 +286 79 +87 33 +104 55 +252 87 +110 109 +39 19 +80 64 +190 133 +143 17 +76 20 +204 33 +190 20 +375 8 +180 10 +237 39 +42 23 +104 36 +119 7 +142 74 +95 46 +132 36 +14 0 +146 136 +155 122 +47 41 +88 54 +141 20 +17 14 +23 16 +151 95 +64 47 +192 20 +84 34 +178 27 +70 21 +198 94 +60 27 +117 38 +121 35 +50 33 +26 22 +154 67 +103 36 +187 9 +79 15 +173 54 +55 54 +173 71 +103 64 +92 57 +186 178 +334 106 +11 5 +72 53 +68 65 +162 26 +54 20 +101 7 +195 94 +20 19 +247 80 +67 24 +208 98 +336 55 +104 19 +110 9 +76 56 +204 69 +137 132 +166 9 +227 13 +156 23 +284 92 +160 82 +89 44 +142 38 +203 20 +132 24 +8 6 +65 43 +193 30 +216 169 +71 21 +165 80 +189 74 +374 78 +122 31 +37 22 +240 110 +279 57 +88 18 +131 126 +178 63 +40 36 +395 105 +359 77 +12 9 +305 17 +49 20 +126 10 +55 26 +183 65 +102 19 +31 29 +371 78 +334 70 +68 22 +196 99 +182 10 +78 5 +195 173 +310 18 +138 55 +138 134 +242 82 +43 15 +171 82 +284 275 +357 355 +124 82 +110 37 +142 140 +80 8 +133 18 +86 18 +241 27 +62 27 +160 15 +109 36 +113 33 +99 18 +136 104 +146 65 +65 55 +236 56 +61 35 +155 34 +179 168 +94 53 +151 22 +192 45 +141 92 +64 23 +121 106 +50 22 +178 35 +272 36 +117 30 +46 26 +174 79 +140 107 +93 5 +22 3 +301 56 +305 61 +59 10 +173 126 +106 35 +126 38 +163 56 +82 56 +182 103 +78 52 +176 12 +253 18 +54 45 +182 22 +152 37 +176 155 +158 31 +34 25 +91 40 +111 37 +148 17 +333 43 +195 22 +366 77 +63 23 +285 57 +161 11 +53 13 +110 86 +19 2 +398 106 +119 34 +199 138 +146 18 +132 65 +156 95 +75 9 +179 23 +307 74 +145 91 +47 20 +94 17 +131 41 +23 15 +141 64 +117 65 +130 98 +207 112 +154 108 +282 89 +140 15 +16 5 +130 21 +83 47 +55 45 +59 22 +244 26 +45 23 +102 72 +106 7 +159 19 +139 47 +196 20 +243 83 +93 65 +233 41 +54 9 +314 170 +111 57 +191 70 +238 39 +39 18 +80 65 +104 71 +143 16 +204 34 +190 21 +123 82 +180 11 +119 6 +156 12 +32 2 +160 55 +169 56 +155 125 +364 77 +122 107 +141 19 +94 13 +23 19 +151 94 +186 154 +60 20 +121 34 +174 20 +36 29 +292 103 +26 23 +154 64 +211 17 +244 207 +59 50 +92 58 +96 61 +206 54 +262 260 +11 4 +139 75 +68 51 +72 54 +310 16 +105 50 +125 47 +162 27 +54 21 +239 27 +101 6 +91 16 +299 47 +67 27 +43 34 +194 138 +80 45 +194 61 +143 116 +119 117 +52 50 +109 63 +274 20 +156 16 +18 17 +365 358 +378 19 +71 20 +169 20 +316 221 +354 8 +145 35 +118 64 +141 55 +235 53 +272 57 +40 37 +60 56 +201 118 +97 37 +12 10 +244 35 +248 38 +55 21 +183 64 +187 133 +244 82 +31 28 +182 152 +129 12 +206 18 +334 71 +195 172 +256 56 +276 43 +333 6 +191 9 +53 40 +57 45 +185 96 +336 20 +393 83 +33 20 +275 83 +204 27 +80 9 +133 17 +184 23 +167 96 +170 22 +190 45 +109 35 +136 105 +99 98 +65 54 +179 58 +61 34 +118 61 +88 64 +37 9 +296 141 +98 41 +141 91 +198 20 +50 23 +325 159 +272 37 +154 9 +46 27 +80 25 +130 14 +97 65 +69 43 +73 40 +311 98 +126 39 +349 348 +163 136 +78 53 +253 17 +54 34 +182 23 +152 38 +280 27 +34 22 +162 67 +111 36 +148 18 +205 31 +134 37 +87 31 +91 88 +313 70 +299 119 +63 22 +191 45 +53 12 +110 87 +19 5 +147 56 +45 43 +241 6 +204 142 +298 199 +119 61 +160 44 +142 31 +199 26 +75 8 +95 69 +65 18 +213 138 +165 23 +226 7 +47 23 +390 292 +94 22 +131 40 +188 79 +151 53 +84 8 +168 35 +117 64 +107 54 +83 65 +16 6 +130 18 +79 53 +301 27 +177 21 +163 70 +55 44 +183 27 +244 27 +45 22 +159 18 +126 67 +75 19 +82 29 +25 15 +72 27 +149 121 +152 147 +172 65 +91 55 +67 62 +87 35 +205 148 +208 120 +191 65 +194 167 +39 13 +242 155 +80 66 +137 29 +29 23 +285 141 +143 19 +184 96 +76 22 +190 26 +56 26 +136 82 +142 72 +146 119 +132 38 +99 45 +14 6 +354 101 +364 78 +165 11 +169 72 +47 43 +340 39 +141 18 +23 18 +64 33 +155 154 +141 99 +70 11 +60 21 +117 36 +121 33 +107 18 +26 20 +103 38 +73 23 +79 9 +173 52 +96 79 +96 62 +206 55 +11 7 +68 60 +361 78 +324 70 +72 55 +129 80 +186 35 +280 36 +105 49 +215 172 +239 26 +134 82 +138 17 +87 86 +91 19 +191 20 +67 26 +285 79 +171 104 +63 46 +110 15 +80 46 +133 60 +143 119 +190 54 +52 51 +56 54 +166 15 +156 17 +341 27 +142 36 +169 138 +99 73 +65 41 +85 38 +71 23 +211 72 +169 27 +51 27 +145 34 +165 47 +118 65 +88 20 +141 54 +178 61 +272 58 +40 38 +140 65 +93 63 +168 138 +97 36 +375 101 +69 54 +311 25 +173 24 +159 69 +126 8 +163 30 +55 20 +315 312 +172 103 +182 8 +105 45 +172 133 +6 4 +318 314 +138 132 +181 98 +147 31 +204 20 +242 163 +80 10 +133 16 +9 2 +194 30 +160 146 +170 23 +189 138 +136 106 +28 8 +156 117 +65 53 +179 61 +155 36 +175 41 +37 8 +98 38 +377 101 +141 90 +249 35 +50 20 +292 41 +189 168 +46 24 +201 17 +130 15 +22 1 +207 15 +73 47 +183 54 +187 51 +281 58 +177 121 +106 33 +183 167 +82 54 +139 5 +125 101 +253 16 +54 35 +182 20 +138 70 +34 23 +148 19 +205 30 +333 41 +134 26 +138 41 +87 30 +63 17 +53 11 +19 4 +62 53 +216 78 +119 60 +109 6 +203 65 +95 55 +75 11 +95 68 +189 31 +51 34 +273 44 +112 20 +165 22 +118 30 +47 22 +269 56 +112 99 +94 23 +23 9 +84 9 +306 63 +74 35 +168 36 +117 79 +107 41 +311 163 +154 106 +174 105 +16 7 +221 82 +79 52 +177 20 +55 47 +221 195 +59 40 +187 95 +45 21 +102 78 +234 94 +35 3 +116 94 +82 26 +1 0 +78 22 +105 84 +54 15 +363 40 +134 119 +262 56 +138 122 +266 55 +162 100 +91 54 +148 55 +67 33 +87 34 +380 40 +167 74 +171 15 +104 58 +161 21 +308 172 +114 79 +80 67 +29 22 +214 18 +143 18 +76 23 +298 41 +190 27 +56 27 +113 30 +42 18 +32 4 +142 73 +95 43 +193 55 +14 7 +71 50 +75 55 +189 35 +198 163 +165 10 +169 79 +88 57 +273 153 +64 34 +84 45 +70 8 +60 22 +140 94 +26 21 +140 45 +73 22 +55 51 +96 64 +59 52 +301 143 +96 63 +11 6 +361 77 +72 56 +182 45 +314 221 +333 143 +280 37 +172 19 +195 67 +91 18 +299 33 +191 23 +57 23 +43 36 +104 22 +33 14 +90 73 +275 57 +80 47 +137 56 +76 59 +56 55 +132 116 +227 14 +156 18 +341 26 +132 27 +65 40 +213 208 +71 22 +354 6 +155 91 +374 77 +175 20 +331 314 +279 58 +27 5 +212 15 +141 53 +84 65 +40 39 +121 60 +144 5 +93 62 +130 40 +103 69 +69 53 +183 45 +153 106 +49 9 +126 9 +55 23 +102 22 +31 30 +200 26 +266 237 +182 9 +195 174 +162 61 +134 63 +195 63 +6 5 +319 70 +336 22 +90 45 +80 11 +194 31 +170 20 +52 16 +109 33 +146 45 +113 38 +99 23 +136 107 +28 9 +41 35 +61 32 +155 39 +141 89 +397 175 +40 3 +174 82 +197 83 +130 12 +22 6 +69 41 +96 8 +349 346 +277 45 +82 55 +102 50 +139 4 +7 5 +176 15 +182 21 +58 47 +334 208 +390 38 +138 71 +195 138 +34 20 +91 45 +152 87 +195 27 +87 25 +309 15 +63 16 +161 8 +53 10 +110 85 +167 54 +249 80 +19 7 +66 54 +86 61 +398 105 +121 24 +133 132 +146 17 +38 3 +199 20 +189 30 +307 79 +165 21 +118 31 +246 64 +122 82 +94 20 +23 8 +84 10 +141 125 +70 45 +325 20 +189 186 +278 41 +154 107 +231 75 +130 16 +79 55 +177 11 +287 90 +187 94 +120 43 +102 79 +183 138 +96 20 +149 22 +277 65 +116 95 +82 27 +200 82 +182 70 +78 23 +206 72 +148 65 +91 9 +134 7 +158 137 +87 61 +336 79 +161 20 +248 41 +39 15 +29 21 +214 19 +275 141 +66 26 +153 23 +136 84 +355 40 +156 15 +32 5 +132 32 +99 47 +136 35 +14 4 +71 45 +169 61 +283 37 +271 270 +165 9 +88 58 +141 16 +17 2 +383 77 +131 6 +64 35 +192 104 +144 139 +198 82 +60 23 +278 90 +207 160 +174 27 +107 20 +36 24 +292 98 +130 69 +26 18 +174 138 +73 21 +93 74 +311 55 +177 55 +159 99 +96 65 +206 138 +315 314 +310 23 +186 33 +105 55 +162 22 +209 17 +138 31 +87 80 +91 21 +63 40 +104 23 +157 51 +147 5 +80 32 +133 58 +133 75 +119 118 +156 19 +284 88 +65 47 +179 35 +71 17 +61 27 +354 7 +175 23 +51 29 +37 18 +94 93 +151 14 +27 4 +178 168 +192 116 +121 82 +292 55 +60 59 +353 39 +207 132 +174 55 +93 61 +97 58 +12 5 +153 105 +173 22 +339 338 +234 4 +55 22 +153 26 +82 80 +102 23 +139 27 +21 19 +206 17 +361 40 +58 8 +243 12 +105 19 +148 121 +84 80 diff --git a/GraphEmbedding-master/data/flight/labels-brazil-airports.txt b/GraphEmbedding-master/data/flight/labels-brazil-airports.txt new file mode 100644 index 0000000000000000000000000000000000000000..608c7a7255cd058e83dd6ca12be89bdabffffe7c --- /dev/null +++ b/GraphEmbedding-master/data/flight/labels-brazil-airports.txt @@ -0,0 +1,132 @@ +node label +0 0 +1 0 +2 0 +3 0 +4 0 +5 0 +6 0 +7 0 +8 1 +9 0 +10 0 +11 3 +12 3 +13 2 +14 3 +15 0 +16 3 +17 3 +18 1 +19 1 +20 3 +21 0 +22 1 +23 1 +24 0 +25 0 +26 1 +27 0 +28 0 +29 1 +30 0 +31 0 +32 2 +33 1 +34 3 +35 3 +36 0 +37 2 +38 1 +39 1 +40 1 +41 0 +42 1 +43 2 +44 3 +45 1 +46 2 +47 2 +48 1 +49 1 +50 0 +51 0 +52 1 +53 0 +54 1 +55 2 +56 2 +57 2 +58 0 +59 2 +60 1 +61 0 +62 2 +63 1 +64 0 +65 1 +66 0 +67 3 +68 3 +69 0 +70 1 +71 0 +72 3 +73 3 +74 0 +75 1 +76 2 +77 0 +78 2 +79 0 +80 1 +81 2 +82 1 +83 2 +84 1 +85 2 +86 2 +87 1 +88 3 +89 2 +90 2 +91 2 +92 2 +93 1 +94 1 +95 3 +96 1 +97 1 +98 1 +99 2 +100 2 +101 2 +102 2 +103 2 +104 3 +105 3 +106 2 +107 3 +108 3 +109 3 +110 3 +111 3 +112 3 +113 2 +114 3 +115 3 +116 3 +117 3 +118 3 +119 2 +120 3 +121 3 +122 3 +123 2 +124 3 +125 2 +126 3 +127 1 +128 3 +129 3 +130 2 diff --git a/GraphEmbedding-master/data/flight/labels-europe-airports.txt b/GraphEmbedding-master/data/flight/labels-europe-airports.txt new file mode 100644 index 0000000000000000000000000000000000000000..21271bac3e15e4913264d7eac01181e6171773e6 --- /dev/null +++ b/GraphEmbedding-master/data/flight/labels-europe-airports.txt @@ -0,0 +1,400 @@ +node label +0 1 +1 1 +2 2 +3 1 +4 0 +5 0 +6 0 +7 0 +8 0 +9 0 +10 0 +11 0 +12 0 +13 1 +14 0 +15 0 +16 0 +17 1 +18 0 +19 0 +20 0 +21 0 +22 0 +23 0 +24 1 +25 1 +26 0 +27 0 +28 3 +29 0 +30 1 +31 0 +32 1 +33 0 +34 0 +35 0 +36 0 +37 0 +38 0 +39 0 +40 0 +41 0 +42 3 +43 0 +44 0 +45 0 +46 1 +47 0 +48 3 +49 1 +50 0 +51 0 +52 1 +53 0 +54 0 +55 0 +56 0 +57 0 +58 0 +59 1 +60 0 +61 0 +62 0 +63 0 +64 0 +65 0 +66 0 +67 0 +68 1 +69 1 +70 0 +71 0 +72 0 +73 0 +74 0 +75 0 +76 1 +77 0 +78 0 +79 0 +80 0 +81 2 +82 0 +83 0 +84 1 +85 2 +86 0 +87 0 +88 0 +89 0 +90 0 +91 1 +92 1 +93 0 +94 0 +95 1 +96 0 +97 0 +98 1 +99 0 +100 0 +101 0 +102 1 +103 0 +104 0 +105 0 +106 0 +107 2 +108 3 +109 3 +110 1 +111 2 +112 3 +113 2 +114 1 +115 3 +116 2 +117 1 +118 1 +119 0 +120 1 +121 1 +122 2 +123 3 +124 3 +125 1 +126 3 +127 3 +128 3 +129 1 +130 1 +131 1 +132 1 +133 1 +134 1 +135 2 +136 1 +137 2 +138 1 +139 0 +140 1 +141 0 +142 0 +143 0 +144 2 +145 3 +146 0 +147 1 +148 2 +149 2 +150 3 +151 1 +152 2 +153 1 +154 1 +155 0 +156 3 +157 3 +158 1 +159 1 +160 2 +161 2 +162 1 +163 0 +164 3 +165 1 +166 1 +167 0 +168 1 +169 1 +170 0 +171 0 +172 0 +173 1 +174 1 +175 0 +176 2 +177 1 +178 0 +179 1 +180 3 +181 2 +182 1 +183 0 +184 1 +185 1 +186 2 +187 1 +188 2 +189 2 +190 2 +191 1 +192 2 +193 2 +194 1 +195 1 +196 3 +197 2 +198 2 +199 2 +200 2 +201 2 +202 1 +203 2 +204 2 +205 3 +206 3 +207 2 +208 1 +209 3 +210 3 +211 3 +212 3 +213 2 +214 1 +215 1 +216 2 +217 2 +218 2 +219 3 +220 3 +221 0 +222 3 +223 2 +224 2 +225 3 +226 3 +227 3 +228 1 +229 2 +230 2 +231 1 +232 3 +233 2 +234 3 +235 3 +236 3 +237 1 +238 3 +239 2 +240 0 +241 1 +242 1 +243 1 +244 0 +245 2 +246 1 +247 2 +248 1 +249 1 +250 3 +251 2 +252 1 +253 3 +254 2 +255 3 +256 3 +257 2 +258 3 +259 3 +260 2 +261 3 +262 3 +263 3 +264 2 +265 2 +266 2 +267 2 +268 3 +269 3 +270 3 +271 2 +272 1 +273 2 +274 3 +275 2 +276 3 +277 2 +278 1 +279 3 +280 1 +281 2 +282 2 +283 3 +284 2 +285 1 +286 3 +287 3 +288 3 +289 3 +290 1 +291 1 +292 0 +293 3 +294 2 +295 2 +296 3 +297 2 +298 3 +299 1 +300 3 +301 3 +302 2 +303 2 +304 3 +305 2 +306 3 +307 2 +308 1 +309 2 +310 1 +311 3 +312 2 +313 2 +314 1 +315 3 +316 3 +317 3 +318 1 +319 3 +320 2 +321 3 +322 3 +323 3 +324 3 +325 2 +326 2 +327 2 +328 3 +329 3 +330 3 +331 2 +332 3 +333 2 +334 2 +335 3 +336 3 +337 3 +338 3 +339 3 +340 3 +341 3 +342 3 +343 2 +344 2 +345 2 +346 2 +347 2 +348 3 +349 1 +350 2 +351 2 +352 3 +353 2 +354 0 +355 1 +356 2 +357 3 +358 3 +359 3 +360 1 +361 1 +362 2 +363 1 +364 2 +365 1 +366 1 +367 3 +368 2 +369 3 +370 2 +371 2 +372 3 +373 2 +374 1 +375 1 +376 1 +377 2 +378 1 +379 2 +380 2 +381 3 +382 3 +383 3 +384 3 +385 3 +386 3 +387 3 +388 3 +389 2 +390 1 +391 2 +392 2 +393 3 +394 1 +395 1 +396 3 +397 2 +398 2 diff --git a/GraphEmbedding-master/data/flight/labels-usa-airports.txt b/GraphEmbedding-master/data/flight/labels-usa-airports.txt new file mode 100644 index 0000000000000000000000000000000000000000..7eefe8b11e59b17f84918001a8c10f9b9120dc0d --- /dev/null +++ b/GraphEmbedding-master/data/flight/labels-usa-airports.txt @@ -0,0 +1,1191 @@ +node label +10241 1 +10243 2 +10245 0 +16390 1 +10247 1 +12297 2 +16727 3 +10257 0 +12307 2 +16729 3 +12314 3 +12315 2 +10268 1 +10272 1 +12321 1 +12323 0 +12324 3 +12294 2 +10278 2 +10279 0 +11612 0 +16428 1 +16429 2 +12335 1 +12339 0 +12638 2 +12343 1 +16441 3 +10298 1 +10299 0 +12348 2 +14397 2 +10304 1 +15030 3 +16454 3 +12641 2 +10313 2 +11834 2 +12363 1 +14412 3 +12365 1 +16463 3 +10322 2 +14691 3 +10324 2 +10325 2 +12375 1 +14424 3 +10329 2 +10333 1 +14430 3 +16479 2 +15376 0 +14435 3 +12388 3 +12389 0 +12390 2 +12391 0 +12392 3 +12394 3 +16743 3 +10348 3 +12397 0 +14447 3 +16744 3 +12402 0 +14457 0 +12412 1 +16746 3 +16515 3 +10372 0 +14470 1 +15041 0 +16520 3 +14474 1 +14475 2 +10380 3 +14477 2 +16527 3 +10385 3 +12436 3 +14485 1 +14487 0 +14488 1 +12441 0 +14492 0 +10397 0 +16543 3 +12448 0 +12451 0 +10405 1 +12455 1 +10408 0 +10409 1 +10414 1 +15389 0 +14512 0 +14736 2 +10419 3 +15154 2 +10423 0 +14520 1 +12207 1 +14524 0 +14259 1 +12478 0 +10431 0 +12320 2 +10434 0 +15051 1 +12484 3 +14533 2 +14534 1 +16584 2 +11980 0 +14539 1 +12492 1 +12494 1 +14543 1 +14254 0 +10275 0 +14551 2 +14553 2 +16603 2 +10460 3 +14557 3 +12511 1 +10466 0 +12078 3 +10469 0 +12519 1 +14716 0 +14570 0 +12523 0 +14572 2 +14574 0 +15741 0 +14576 0 +14577 2 +12206 0 +15011 2 +14582 1 +16634 3 +14588 0 +15061 2 +12544 0 +16643 3 +12549 1 +11697 0 +16647 1 +12553 0 +16651 3 +11637 0 +16654 3 +10511 3 +14262 0 +14617 3 +14618 2 +12571 2 +16668 3 +11057 0 +12574 2 +12576 3 +10529 0 +14627 1 +14628 2 +14630 2 +10535 2 +16680 3 +14633 0 +16682 3 +14635 0 +10540 1 +12591 2 +13704 2 +15411 0 +14046 2 +12598 3 +10551 0 +14648 1 +15412 0 +16698 3 +16737 3 +10557 1 +10558 1 +10559 1 +14656 2 +10561 0 +10562 2 +16709 3 +16710 3 +12615 1 +10569 2 +16715 3 +12621 2 +12622 3 +14672 2 +10577 0 +14674 0 +16723 3 +16724 3 +10581 0 +14679 0 +16728 3 +12633 2 +16730 3 +14683 0 +14685 0 +10590 0 +10221 1 +16736 3 +14689 0 +16738 3 +16739 3 +16741 3 +16742 3 +10599 0 +14696 0 +12649 1 +14698 0 +12652 1 +12653 2 +14704 0 +14706 3 +14709 0 +14711 0 +14712 2 +10617 3 +10620 0 +14718 1 +12671 2 +14400 3 +10627 0 +12676 2 +10630 2 +10631 1 +15497 1 +14730 0 +10640 1 +14738 1 +10643 1 +10990 0 +10647 1 +14744 3 +14745 1 +14747 0 +15325 2 +10654 1 +14751 3 +12704 1 +12705 2 +12708 1 +12709 1 +14761 0 +10666 0 +10994 0 +10670 2 +12719 1 +12720 2 +12721 1 +14771 0 +10676 0 +14750 3 +11337 0 +12728 1 +10996 2 +14778 3 +10683 1 +10685 0 +14783 0 +12737 2 +10693 0 +12743 2 +14792 3 +12745 2 +14794 0 +12748 2 +14797 1 +11341 3 +14802 1 +12755 2 +14804 1 +14805 1 +12758 0 +10713 0 +10715 3 +14812 3 +14814 0 +10661 0 +14816 2 +10721 0 +14819 1 +12772 2 +12773 2 +12774 3 +10728 1 +10731 1 +14828 0 +12370 2 +12782 2 +14831 0 +12784 2 +12785 2 +10739 1 +10744 1 +14842 0 +10747 0 +10754 0 +14853 2 +16725 2 +12807 1 +14856 1 +10327 2 +12815 1 +10770 2 +12819 0 +14869 0 +12822 1 +10775 1 +10778 3 +10779 1 +10781 0 +10783 1 +14880 2 +10785 0 +14769 3 +10792 0 +12841 1 +12844 1 +14893 0 +14895 1 +10800 0 +14897 2 +14898 2 +12851 1 +12853 1 +10589 1 +12855 1 +14905 0 +12635 2 +14908 0 +10815 2 +10817 3 +12866 2 +10819 1 +12868 2 +10821 0 +12870 3 +14919 1 +14922 3 +12878 1 +13795 0 +12882 2 +12883 2 +12884 0 +10838 3 +12888 1 +12889 0 +14938 3 +12891 0 +12892 0 +15023 0 +14942 1 +14943 1 +14944 3 +10849 0 +12898 0 +12899 1 +12902 1 +14952 0 +10857 3 +14955 0 +15841 1 +14960 0 +12915 0 +10868 0 +12917 0 +13076 0 +10874 0 +10687 3 +14972 3 +10347 3 +12932 1 +12054 3 +12934 3 +14785 3 +14986 0 +14987 2 +10349 1 +12944 2 +12945 0 +11615 1 +12947 3 +14996 2 +12951 0 +12953 0 +12954 0 +12955 3 +12956 3 +10910 2 +12847 1 +15008 1 +11376 2 +15010 3 +14107 0 +15012 2 +12965 2 +10918 1 +15016 0 +11719 1 +15020 3 +10925 1 +10926 1 +10927 3 +15024 0 +13768 1 +10930 1 +15027 0 +10184 1 +10933 2 +12982 0 +12983 2 +16731 3 +12992 0 +10945 3 +10946 3 +15043 2 +15045 2 +10950 1 +14113 1 +15048 1 +15049 1 +13002 1 +13003 1 +11042 0 +15054 3 +11617 0 +13008 3 +10961 1 +10965 2 +10967 1 +13016 2 +15069 3 +15070 0 +13024 2 +15074 1 +10980 0 +13029 0 +10982 3 +13032 1 +13034 0 +10140 0 +15085 1 +15086 2 +15090 3 +15091 2 +13044 3 +15093 3 +13046 3 +10999 3 +15096 0 +11002 3 +11003 0 +13052 3 +14295 2 +13055 2 +15108 3 +11013 1 +11278 0 +11619 2 +13072 2 +15370 0 +11027 1 +15124 1 +13077 2 +14468 1 +11036 2 +13087 2 +11041 2 +15138 1 +10139 1 +10938 2 +11049 0 +11050 3 +11053 2 +15153 1 +11058 3 +13109 1 +13111 2 +15160 2 +13871 0 +11066 0 +13115 3 +13117 3 +11007 2 +13121 1 +15171 3 +11076 1 +13125 3 +12769 1 +15177 2 +16345 2 +12087 2 +11085 1 +11086 3 +13139 0 +11092 1 +11097 0 +11098 2 +13151 3 +11106 3 +11067 0 +11109 0 +13158 0 +11111 0 +15215 0 +15855 1 +11122 0 +11123 1 +13873 0 +11126 1 +13176 1 +15167 1 +13182 1 +11135 3 +13184 0 +15235 3 +15236 2 +13192 3 +10732 0 +11146 0 +13195 3 +13196 1 +15245 1 +11150 0 +15248 2 +15249 0 +15250 2 +13203 2 +13204 0 +14489 0 +15257 1 +13211 1 +15511 3 +11165 3 +13219 3 +13221 2 +11174 3 +11176 3 +10396 1 +13226 3 +13127 0 +15278 2 +14493 2 +13232 0 +15282 1 +11188 3 +13241 1 +11423 0 +13244 0 +11197 1 +13246 3 +15295 0 +11200 2 +10400 3 +11203 0 +13255 2 +15304 0 +13259 3 +11214 1 +13264 0 +14150 1 +15323 0 +13277 0 +11230 3 +11233 1 +13282 1 +14843 0 +10065 2 +13891 0 +11241 2 +13290 0 +15339 2 +13292 3 +11245 2 +14559 2 +13295 2 +15344 3 +13297 3 +11252 0 +13303 0 +11259 0 +15356 0 +11267 0 +10141 1 +13484 1 +11274 0 +12119 1 +11764 1 +15374 1 +11280 2 +11282 3 +11283 1 +15380 0 +15381 1 +11288 1 +15385 2 +13487 0 +11292 0 +13341 1 +13342 0 +13344 1 +10416 1 +11298 0 +13347 0 +13348 1 +11833 1 +15401 1 +14855 2 +11308 0 +15406 1 +13360 0 +13361 3 +11315 1 +13061 0 +11317 2 +13367 0 +13369 1 +15422 3 +11445 1 +13377 0 +15427 2 +13381 2 +12129 1 +11336 1 +15433 3 +13495 0 +13388 1 +13389 3 +11789 2 +15440 3 +10424 3 +16540 2 +15203 3 +13397 2 +15446 2 +15447 2 +15448 2 +14863 2 +11450 3 +15454 1 +10085 2 +15458 3 +14182 2 +14222 1 +13415 2 +13418 2 +13422 0 +11375 2 +13424 2 +13502 0 +15478 1 +15481 2 +13434 1 +11388 3 +11391 2 +11392 1 +13504 1 +13200 1 +11778 0 +11399 1 +11401 1 +13450 3 +14871 2 +14530 2 +15502 1 +15504 2 +11411 1 +13461 1 +13463 3 +13464 2 +13467 1 +11421 2 +16581 2 +14875 1 +13476 0 +15525 3 +11430 3 +11431 2 +11433 0 +15532 2 +13485 0 +13486 0 +14877 1 +11441 1 +13490 1 +15539 3 +13493 3 +11447 1 +15546 3 +12831 1 +15548 3 +11453 2 +15550 3 +14197 2 +11456 2 +13505 3 +15554 1 +13507 2 +11463 2 +16588 2 +11468 1 +11470 0 +11471 1 +13520 1 +15569 1 +15570 1 +14542 2 +11479 2 +11481 0 +15579 1 +11484 2 +15581 1 +15582 1 +11487 2 +13536 2 +13537 3 +11492 1 +13541 0 +13543 1 +13546 3 +11503 0 +15601 2 +11506 3 +13555 3 +10135 0 +11510 2 +15607 0 +11512 2 +15231 2 +13564 2 +11517 2 +13525 3 +15232 3 +15618 2 +11525 1 +13574 2 +10613 1 +15624 0 +13577 0 +15626 0 +13579 1 +15628 1 +11535 1 +12250 1 +11537 0 +15634 3 +13587 3 +11540 0 +11140 0 +11823 0 +11550 1 +13599 2 +15650 3 +11555 0 +11559 2 +15656 2 +11563 0 +10478 2 +13619 3 +11577 0 +10463 3 +13194 1 +13630 3 +10615 2 +11588 1 +12854 2 +15798 1 +11592 3 +16553 3 +12173 0 +11603 0 +15700 2 +13198 0 +13655 2 +13540 3 +15706 3 +15707 2 +15708 2 +15709 1 +14565 2 +15713 3 +11618 0 +13667 3 +12857 2 +11624 0 +15721 1 +13674 2 +11627 3 +13676 2 +15725 2 +11630 0 +11633 3 +13682 3 +15731 2 +13685 3 +11638 0 +11641 0 +11643 2 +13693 2 +11646 2 +11648 0 +11299 3 +11650 3 +12663 2 +13700 3 +11656 3 +10476 2 +15754 2 +11659 3 +11842 2 +13710 1 +11663 3 +12184 0 +13714 2 +13715 2 +11669 3 +14314 0 +11673 2 +11675 2 +10317 3 +15774 3 +12869 3 +13398 1 +11684 1 +13736 3 +15785 1 +11695 0 +15793 2 +15794 1 +11699 0 +11028 2 +13756 2 +11711 2 +11714 3 +14467 3 +13767 1 +11720 2 +11721 0 +13770 1 +11511 2 +13772 3 +11725 1 +11726 1 +11728 2 +15825 2 +15939 3 +11732 3 +13781 3 +13785 3 +13788 3 +15838 3 +13689 2 +14371 3 +15842 3 +15843 2 +13796 0 +14303 0 +15847 3 +11493 2 +11756 3 +15853 2 +13806 2 +15599 2 +15856 2 +13809 2 +11762 1 +11344 2 +15861 1 +15862 1 +15273 3 +11415 3 +15163 3 +10154 0 +11775 0 +16498 2 +13826 2 +15275 3 +13829 1 +13830 0 +15879 3 +13832 1 +15881 3 +15882 3 +15885 2 +11790 3 +15887 1 +13827 3 +13841 3 +13230 0 +14100 0 +15897 1 +13851 0 +11867 1 +11813 3 +13862 1 +13863 2 +13865 3 +13791 3 +15919 0 +11824 3 +11825 3 +11827 2 +11828 3 +14601 3 +13881 3 +15930 3 +10267 3 +13884 2 +15934 2 +11840 3 +12896 0 +13890 3 +11531 1 +11844 1 +11845 1 +13894 1 +14945 1 +12124 1 +13898 2 +13899 3 +13731 2 +15534 3 +11856 3 +14102 1 +11859 2 +11331 3 +11193 0 +11865 1 +15057 2 +12559 1 +11869 0 +11870 3 +11871 3 +15971 3 +15973 3 +11879 1 +10011 1 +14268 2 +13930 0 +13931 0 +11413 0 +13933 0 +13934 2 +15293 1 +13936 3 +11198 3 +13942 1 +15991 1 +11898 0 +11899 2 +13949 2 +11905 1 +13459 0 +11883 3 +11908 1 +13958 2 +11495 2 +11884 0 +13964 1 +13763 3 +11885 3 +11921 0 +13970 0 +11924 2 +15982 3 +11545 2 +11931 1 +13983 1 +13984 2 +11938 3 +13987 2 +11941 1 +11947 3 +12332 3 +11952 1 +13256 0 +14004 2 +12264 0 +14006 1 +11538 3 +12916 2 +14013 2 +14646 3 +14965 3 +12235 2 +11973 0 +11975 3 +14024 3 +14025 0 +14027 0 +14028 2 +11982 0 +11986 0 +15310 3 +11992 2 +12771 2 +11994 3 +16091 1 +11996 0 +11997 1 +13105 1 +14288 1 +14050 2 +12003 0 +16101 0 +14054 1 +12007 0 +14057 0 +12583 2 +12012 1 +14062 2 +12016 0 +12018 3 +16681 3 +12244 1 +12028 3 +16665 3 +12245 1 +14081 1 +14082 0 +12587 3 +10923 2 +16133 0 +12039 3 +14088 1 +15472 2 +14091 3 +14092 0 +15063 3 +14098 0 +11977 0 +10005 2 +10006 3 +12055 2 +10543 3 +14108 0 +14109 1 +10015 3 +10016 2 +10017 3 +11227 1 +12068 3 +10886 3 +11995 0 +14119 2 +14120 1 +10204 1 +14122 0 +14125 1 +10030 3 +12079 3 +10033 3 +14130 1 +14131 1 +10039 3 +10040 3 +10041 3 +10042 2 +12255 1 +12094 0 +10050 3 +10052 3 +10053 3 +11367 2 +12103 3 +10056 3 +12599 2 +12108 2 +10064 3 +16696 3 +14307 0 +14695 3 +14167 2 +16218 0 +10076 2 +12222 2 +12127 3 +14992 1 +12131 2 +12132 3 +13535 2 +12134 3 +14993 2 +12263 3 +12141 2 +13629 3 +14193 0 +12147 3 +12149 2 +10361 1 +12155 3 +12156 0 +16567 1 +13771 2 +14112 0 +16704 3 +14044 3 +14218 2 +12171 1 +12610 1 +12174 1 +12175 1 +12177 1 +11587 1 +14229 2 +14231 1 +10136 0 +12185 2 +14234 1 +12187 2 +14236 2 +14237 1 +12190 1 +12191 0 +13296 0 +10146 1 +12195 1 +12197 0 +14321 0 +12779 1 +11522 3 +10155 0 +14252 0 +10157 0 +10158 0 +14255 2 +14256 1 +13947 3 +12211 2 +10165 1 +12214 1 +16311 2 +12217 0 +10170 0 +10171 2 +10172 3 +14270 3 +12223 0 +14273 2 +14275 1 +12228 2 +12232 3 +10185 0 +14282 2 +14283 3 +11953 0 +16336 3 +13501 2 +10194 1 +16339 2 +16340 2 +14670 3 +10198 2 +13433 0 +11961 2 +16346 2 +12252 2 +12253 1 +10917 1 +10208 0 +16720 3 +14306 1 +13307 2 +14320 2 +16721 3 +10216 2 +12265 0 +12266 0 +16363 3 +12268 1 +16722 3 +11702 3 +10224 3 +10225 1 +12278 0 +12280 0 +14332 3 +10237 2 +16353 2 diff --git a/GraphEmbedding-master/data/flight/usa-airports.edgelist b/GraphEmbedding-master/data/flight/usa-airports.edgelist new file mode 100644 index 0000000000000000000000000000000000000000..26f5394f7d9eb03cd1a3890f2da4770bc6a3c764 --- /dev/null +++ b/GraphEmbedding-master/data/flight/usa-airports.edgelist @@ -0,0 +1,13599 @@ +12343 12129 +13277 11996 +13796 13476 +15061 14559 +14314 12889 +13029 11726 +10868 10599 +14685 12953 +13772 13303 +14711 12953 +11423 10155 +14679 13232 +15618 12892 +13203 10397 +14057 11298 +14856 12704 +11259 11027 +14534 11097 +11842 10540 +12992 12191 +11537 10397 +11193 11146 +14685 11503 +13198 10800 +13495 13487 +14050 10800 +13230 11057 +14100 11540 +12191 10279 +13486 11292 +12278 11867 +13029 11057 +10994 10693 +13342 11042 +13264 11563 +16091 14512 +11996 11042 +14747 14027 +13342 12478 +13667 12197 +14685 11697 +13461 12448 +13198 11973 +12892 10800 +11986 11057 +14814 11292 +15257 10299 +13367 12544 +11711 10272 +15374 13244 +14082 10408 +14869 11233 +14307 14100 +14259 13851 +13710 10299 +12264 12222 +14107 13341 +15249 12197 +13196 11028 +15356 12478 +15841 14828 +14898 10800 +14805 12822 +15167 11493 +12397 12197 +14321 11042 +15153 13303 +10792 10577 +15295 10819 +12278 10529 +14081 10463 +14761 13230 +14683 11259 +12173 11193 +14843 12339 +13830 13342 +13891 10559 +15167 13495 +14130 12831 +14100 11503 +14679 13796 +15618 11259 +13541 12197 +11823 10540 +14107 10721 +13232 10713 +14633 11823 +12264 10965 +14747 12915 +13342 10257 +15153 10819 +13485 10590 +15016 10299 +12197 11106 +11013 10408 +14027 11789 +12889 10397 +10781 10140 +14683 11481 +13871 10136 +11042 10140 +14843 13198 +12448 11986 +16091 13290 +13422 11066 +15601 11638 +13495 11298 +14696 13052 +13303 13232 +14057 11603 +14122 12323 +14908 12915 +15741 12253 +14869 11865 +13930 10800 +11174 10529 +12884 10868 +14282 12851 +14831 13158 +14771 11193 +14081 11292 +12721 10170 +12389 11292 +15502 11042 +15376 11066 +15024 14771 +12451 12217 +11259 11086 +15096 12348 +14627 10416 +14635 12898 +15919 14761 +12755 10299 +11618 10849 +14831 10140 +11637 10409 +14119 12638 +14092 11057 +15862 13770 +15295 10599 +14255 10540 +12587 10785 +13930 11109 +11617 11267 +14853 14730 +13851 11481 +14492 13795 +15096 14574 +14683 11638 +13485 11433 +16091 14492 +11337 10631 +11445 10926 +13196 10996 +14107 10994 +14797 12175 +13341 12892 +14255 10154 +14869 11775 +13873 10139 +14477 13002 +11721 10713 +13256 11267 +14057 13198 +11995 10158 +14679 11292 +13342 11278 +15618 14027 +13930 11577 +12878 10298 +14108 13851 +15370 11066 +15096 10868 +13061 12917 +13487 10683 +13244 11775 +13891 11884 +14588 10194 +12451 12448 +14524 12892 +14027 11292 +13851 10529 +13930 11995 +14730 12992 +11450 10800 +15887 13710 +14908 10713 +14689 11540 +13121 11433 +12892 11637 +13232 13029 +12953 11540 +13535 11899 +10933 10721 +12945 12544 +13770 10996 +14100 11292 +14792 14577 +12953 11637 +14057 10279 +12339 10792 +12945 10693 +14908 10559 +13342 10434 +11445 10165 +14492 13931 +15370 12264 +12676 10139 +14307 10933 +12896 11921 +10170 10056 +14771 10713 +13770 10299 +12394 12244 +10279 10257 +11995 11764 +13061 10466 +15043 10747 +12884 11067 +14696 14574 +12892 12324 +15257 11550 +15376 14730 +12853 10304 +12945 12007 +13342 10279 +13087 11982 +12892 10140 +14100 11233 +14112 10874 +13303 10257 +15879 15167 +13871 13796 +13198 10676 +13377 12896 +11267 10140 +13851 10268 +14893 14635 +12953 10397 +14492 12191 +14869 12003 +13198 10279 +14843 12264 +12889 10666 +15579 11844 +13360 10874 +13485 11977 +13964 12280 +14092 10185 +13303 13105 +11637 10268 +15167 12197 +11721 11292 +14512 13487 +12191 10713 +14730 13667 +13367 12264 +14670 13232 +14908 10800 +14869 10140 +16133 11111 +13930 11097 +13244 12264 +15370 13230 +11986 10140 +12719 11844 +15304 13796 +11618 10599 +12451 10216 +11252 10994 +14761 13832 +11697 11540 +12884 12007 +13487 10141 +14683 13342 +14771 14122 +14908 12217 +14574 10397 +13461 10643 +15380 12889 +14570 13796 +12222 10581 +14908 14576 +11042 10792 +10731 10208 +14252 11884 +11042 10781 +15096 13487 +14288 11292 +14952 12339 +14730 11067 +11898 11433 +14895 11630 +14747 12173 +14122 13667 +15167 11615 +10754 10247 +15096 13342 +13158 10194 +12915 12892 +12264 10434 +13930 12945 +14730 11146 +13303 11563 +14679 14262 +11411 10139 +13830 12889 +13198 11066 +14730 11977 +11973 10721 +11648 10397 +14689 13232 +14492 12197 +13198 12945 +14122 11441 +13485 13198 +10821 10257 +14150 13930 +10800 10423 +14987 10304 +15085 12807 +14831 10792 +14747 13158 +12896 12451 +15412 14112 +16680 12197 +15618 10800 +15741 11484 +13487 11042 +15167 11027 +14908 13303 +14306 12478 +14685 13931 +11003 10154 +14730 11726 +14098 13244 +14112 10431 +11823 10980 +10775 10304 +15074 10693 +14908 13158 +14843 11259 +13196 12807 +10849 10779 +13931 11986 +11049 10185 +11042 10529 +13241 12007 +11977 10397 +13198 10721 +12197 11066 +13931 13230 +14492 10257 +13244 10713 +12451 10158 +14814 14635 +11267 11193 +14683 11995 +13891 12758 +12191 11790 +14100 10868 +11898 11292 +13898 13487 +12953 12173 +14273 11336 +15380 14492 +15370 11898 +13139 10868 +12266 11996 +14492 12339 +12441 12266 +14716 12324 +15096 11057 +15054 12228 +15096 15027 +15798 11492 +14730 12478 +14747 11588 +15016 14107 +14057 11057 +10785 10431 +13158 11140 +14027 10257 +13486 10800 +14512 10590 +12758 12549 +14576 11259 +14100 12124 +14683 10155 +12915 12390 +14683 12896 +14050 13232 +13464 13256 +12889 11423 +13796 12280 +15048 13930 +11637 10627 +12523 10886 +13341 12953 +14112 12451 +16091 11165 +13198 11057 +14875 10721 +14321 13158 +14905 13796 +12264 10216 +14576 10792 +14895 12704 +15380 10590 +13087 11066 +13342 11612 +15249 12451 +14307 12278 +14942 12184 +12755 11336 +13244 10980 +10732 10721 +14952 11298 +15249 12348 +14730 14122 +12397 10815 +14635 14524 +12478 10529 +12819 11630 +15370 10994 +15016 11433 +15153 13461 +11789 11111 +15016 14524 +15626 11126 +15167 11456 +11540 11259 +16704 14553 +13851 10874 +13796 13158 +14679 14027 +13342 11076 +13871 11423 +14744 11695 +12266 10158 +11612 11278 +12728 12610 +13244 11193 +14004 10299 +12451 11618 +15016 11042 +14193 10423 +13158 12191 +14635 13891 +12748 10245 +12264 12217 +13796 10327 +11267 10590 +14685 12451 +15385 11336 +13127 12889 +13303 10279 +11695 11450 +14262 10590 +15339 11280 +14570 12478 +14895 12087 +13871 11618 +14234 12087 +15634 14539 +14492 13296 +13495 11618 +15376 14107 +13061 10298 +13232 12314 +13244 11146 +14307 13884 +14771 13290 +12339 10558 +14730 10216 +13796 13577 +13434 10551 +13931 12191 +12953 12280 +14057 11638 +15325 11638 +15841 10245 +10299 10225 +12478 10821 +13796 13464 +13487 12129 +13244 11884 +13342 10599 +14559 13415 +15376 14576 +15096 10990 +16091 13487 +13655 13577 +14321 10329 +11298 11193 +11941 10299 +12320 11433 +13958 10540 +15376 12339 +10721 10529 +12889 10620 +10713 10423 +14131 12264 +13871 12055 +13485 10849 +11996 10781 +10965 10721 +12544 12339 +14730 10540 +15919 14783 +13930 13871 +14908 10994 +13871 10372 +14633 10693 +15356 14696 +15376 14893 +14100 10990 +14679 13931 +12217 11057 +11726 11298 +14771 14492 +12094 11637 +12055 10819 +15370 13158 +15448 10245 +12892 11638 +14908 11267 +16133 11540 +15380 10268 +15478 12851 +12191 10423 +11612 11057 +12007 11953 +14576 11537 +12124 11057 +11292 10558 +14709 10551 +14492 10409 +15167 11697 +13487 10140 +14814 11057 +11778 11298 +14100 11973 +14831 14771 +13933 13204 +12807 10551 +12934 10693 +12635 11511 +12889 11203 +10874 10721 +14487 12892 +12448 11278 +13796 12324 +13303 11618 +15389 14771 +11898 10408 +13434 11550 +10821 10423 +11057 10990 +11278 10140 +13296 13204 +13931 10257 +12278 10423 +14747 10299 +14576 14057 +13232 11042 +12339 11057 +14057 12892 +15016 11540 +13158 11865 +14711 12544 +14987 10299 +12294 10299 +12320 11823 +13377 11531 +13851 12451 +16091 14877 +15422 10299 +12878 12348 +14711 13485 +11603 10620 +13579 12779 +15412 11423 +15027 10257 +10933 10557 +14524 11764 +13485 10683 +13241 12448 +14321 11267 +13422 10397 +15293 15257 +10747 10185 +14843 12451 +14100 11146 +12915 12264 +15502 10397 +16091 15163 +13061 11721 +14512 14057 +13930 13485 +15249 10721 +11423 10466 +15167 13204 +11540 11481 +10397 10372 +15855 12197 +14112 13367 +13931 12266 +15370 13796 +14869 14107 +13198 10713 +13710 12737 +15304 11423 +12264 11252 +16603 13002 +12264 11669 +14112 10693 +15295 11415 +12915 10423 +15167 10654 +14321 14107 +14831 13296 +12217 11433 +14689 11982 +16479 12197 +14256 11336 +14574 11995 +15389 14113 +12772 10243 +13487 10540 +12954 12173 +14761 11980 +11921 10466 +14685 13487 +12156 11563 +12807 12769 +10747 10466 +13303 13277 +15085 14234 +15376 11298 +11721 10140 +11775 10683 +13204 10599 +13076 11292 +15370 11540 +12217 11252 +16133 14112 +12544 10874 +13377 10540 +15167 13232 +14869 11292 +14057 11775 +13029 12339 +14960 12891 +15478 14013 +15825 13303 +13204 10821 +14112 10581 +13256 10778 +13360 12391 +13232 10540 +15295 10333 +12917 10135 +12892 11721 +14102 10640 +13204 12544 +13232 10683 +15153 11267 +12478 12191 +14905 14004 +11066 10599 +15070 14057 +11433 10732 +14057 13891 +14122 10821 +13891 12953 +11884 10299 +15167 14633 +14193 14122 +16091 11122 +11042 10868 +11630 10349 +10434 10397 +12892 11503 +12007 10781 +15070 12191 +12889 11618 +12266 10781 +12953 11433 +14282 13873 +11336 10551 +12141 11630 +12451 12264 +14400 11764 +14919 12184 +14679 11278 +15618 14314 +15502 11995 +11066 10792 +14107 11057 +12896 10693 +12719 11241 +10540 10397 +14027 10868 +13388 11292 +13930 12892 +13930 10431 +14576 14512 +13931 10478 +14108 10397 +14150 11510 +13942 10640 +13731 12222 +14081 10661 +13577 12197 +14730 14679 +12671 12321 +14576 10529 +15412 13303 +15794 12822 +14679 10800 +13342 13184 +11953 10397 +14761 14122 +12391 10329 +14262 14107 +16567 14738 +14100 11123 +13619 13303 +16091 11996 +11503 10257 +13461 10778 +16091 12888 +14893 14489 +13204 10257 +11931 10693 +13796 10257 +13264 11292 +13029 11638 +15569 10423 +10299 10184 +10819 10171 +14112 10721 +13342 10540 +13459 10590 +13204 12391 +14553 10559 +14307 10140 +15356 10721 +15919 11973 +15016 10693 +12206 10994 +14635 11973 +15096 11697 +14102 12844 +15016 14112 +13891 10868 +14908 11638 +14685 12992 +14122 10322 +11996 11618 +15304 12264 +13931 10990 +15376 11278 +12147 11870 +12953 10135 +13871 13851 +13931 12478 +15096 14492 +12917 10721 +11986 10821 +11433 10397 +11995 11057 +15069 12184 +15024 13198 +14877 13796 +13487 13061 +11844 11550 +11049 10279 +11456 10721 +11637 11447 +13682 12544 +14100 12191 +15304 10581 +15412 13342 +14307 10155 +14696 14259 +13873 11555 +13795 10397 +11057 10747 +12884 11150 +15304 12391 +15554 15478 +14709 10640 +11719 10140 +15016 13158 +16540 10540 +12391 11540 +14275 12266 +15376 10140 +14683 11376 +11977 11563 +14814 13151 +14259 10990 +12206 11298 +12896 10721 +12264 10721 +13930 13232 +15070 10185 +15376 10466 +11775 11003 +14689 12264 +14102 13970 +12559 12264 +13342 12173 +11986 11140 +11292 11097 +14492 11013 +13851 12917 +14908 13296 +14679 14524 +14738 12184 +11278 11193 +11259 11109 +14685 13930 +14679 10423 +12889 11066 +15374 10721 +13198 12323 +12448 10397 +15096 13898 +12197 11176 +11728 10721 +13930 13541 +14771 10140 +13851 12953 +15045 11344 +14489 11603 +16101 14057 +11697 10732 +12902 12278 +10529 10154 +13795 11150 +14027 12197 +10739 10631 +13796 11140 +12397 10434 +12266 10732 +14771 13487 +12782 10170 +12441 10693 +14689 14057 +10299 10053 +13434 12807 +14100 10980 +15061 11630 +14831 12441 +16498 12197 +15295 13232 +15249 11252 +14100 11278 +15412 10397 +14679 13230 +14492 10158 +15016 14108 +13851 11618 +13256 10469 +14150 11986 +15153 11298 +14119 12641 +13485 11726 +11203 10590 +12945 11423 +13241 11298 +14027 10721 +15794 14895 +13244 12173 +14771 13931 +12822 12704 +15721 12704 +15376 13061 +14321 13204 +14057 10999 +15412 14730 +15370 11278 +11337 10590 +15376 13204 +14761 13061 +13487 13198 +14100 13230 +14307 10693 +15861 13806 +13851 12954 +14307 11961 +12892 11697 +13891 12992 +14689 14683 +13579 11555 +11844 11280 +14869 13830 +12915 11298 +14574 14112 +13105 10647 +13204 10994 +12223 10397 +14747 10868 +14122 10781 +15656 14875 +15167 14689 +13796 11292 +14112 11637 +15624 13495 +14771 10279 +15245 10640 +11612 10397 +12278 10408 +14987 11028 +11540 11140 +14122 11267 +15422 12173 +13495 12217 +12853 11630 +12478 10540 +10849 10620 +13931 10693 +14960 12478 +12217 10299 +12478 10431 +13930 13204 +12889 10868 +12197 11986 +14457 12264 +11953 11259 +14747 10620 +14730 14492 +14027 13931 +14689 13158 +12339 10994 +12191 11433 +13342 10408 +11986 11697 +14492 10792 +14908 13204 +11298 10627 +13891 13830 +12197 11259 +12264 11003 +15249 10747 +14804 11630 +13347 12549 +13710 12779 +14960 11042 +14814 13891 +14057 12451 +12953 12889 +14492 11298 +15478 13768 +13871 11986 +12853 12779 +14306 12197 +11884 10140 +14869 11986 +14730 11973 +11481 11433 +14057 11637 +14122 12365 +13461 13303 +14524 13891 +12197 10414 +12264 10792 +15624 11823 +14570 14492 +15412 10171 +11109 10590 +12719 10299 +15412 10434 +13244 11996 +15049 12822 +14828 12819 +14831 10721 +13931 10208 +12451 12191 +10685 10423 +14122 12953 +14635 11375 +11630 10923 +13290 13029 +11433 11067 +15167 10408 +12268 10139 +11109 10800 +13198 12094 +14672 14057 +13667 11977 +15370 13204 +14050 13282 +14683 10466 +13891 13297 +13433 10800 +13105 12339 +12899 11468 +15709 15049 +10874 10397 +11921 10423 +14831 12544 +11057 10529 +14679 11540 +14635 13495 +13303 12206 +14107 14081 +11618 10540 +14908 14683 +12363 11503 +14321 13232 +14831 12197 +13873 11214 +14557 12197 +14321 10980 +13700 12544 +11292 10559 +15478 14474 +14307 10721 +15096 12197 +11066 10140 +15370 12889 +10868 10158 +14895 12615 +14635 13397 +14679 14107 +15304 14107 +12278 12266 +14679 12391 +12108 11618 +14259 11697 +14082 11986 +12889 11525 +14952 14112 +14512 11298 +11540 11049 +11057 10627 +11617 10431 +12917 11150 +14530 10800 +15323 14100 +12087 11941 +14122 11027 +11214 10349 +15304 11049 +15618 14262 +14831 10994 +11433 11423 +14771 10529 +15325 10800 +11259 10397 +11506 11415 +14004 11540 +13282 11027 +14107 13502 +10581 10171 +12348 11517 +14730 14512 +13891 10529 +12343 10590 +13851 10599 +14320 11995 +14275 12892 +15376 11193 +15304 10299 +15700 10299 +11267 10821 +14747 12917 +13894 12779 +10800 10590 +12807 12184 +14718 12779 +13964 10559 +13495 10933 +15700 10245 +14843 12191 +12992 12451 +14570 11203 +14952 13930 +10620 10590 +13296 12478 +13891 12544 +15070 11433 +15412 10590 +12324 10135 +15412 11996 +14831 10279 +11433 10980 +15412 10216 +11109 10721 +15370 10140 +14570 11721 +10980 10685 +14679 12992 +15167 13461 +15057 10185 +13485 12003 +15016 14006 +15096 11259 +12197 12007 +11298 10347 +12339 10299 +12784 12321 +15167 12932 +14109 12223 +15249 14092 +14193 13303 +10792 10397 +14430 11259 +14197 14100 +12784 12720 +12264 11298 +15323 10325 +15412 10325 +10423 10140 +14057 11292 +13891 10792 +11298 11085 +12217 11259 +13667 12348 +12264 11697 +10713 10279 +11308 10146 +14088 12184 +13930 12519 +13232 10590 +14570 12173 +15096 14576 +13933 12197 +12769 10405 +12264 10171 +14771 14696 +15376 10257 +14100 13303 +15887 12853 +13204 11481 +14635 13871 +13342 11884 +13295 10868 +11996 10423 +13204 10140 +14761 10590 +13121 12264 +13303 12544 +13487 10599 +15380 13459 +11977 10821 +13434 11643 +14447 13230 +11555 10926 +14761 12339 +14843 11252 +11308 11150 +14869 14683 +14831 11423 +12003 10590 +14576 11292 +14831 13931 +12266 11630 +14570 10561 +10792 10257 +14802 12264 +13487 10821 +14730 14307 +14831 12478 +13495 13476 +12892 11423 +12265 10158 +15016 11618 +12882 10747 +15249 13204 +12544 11697 +16218 13297 +14193 11259 +14275 10747 +12807 10313 +14747 10423 +14689 12889 +11630 10559 +15862 12184 +15582 14869 +15887 13369 +14761 14524 +14814 11973 +12892 12544 +14831 11603 +15016 11259 +15370 10620 +14193 12889 +15618 12889 +15027 10397 +13540 11762 +14057 12191 +14831 12992 +15096 13871 +11259 11123 +14869 11884 +12389 11898 +14635 14107 +14747 12094 +13871 10185 +14831 11109 +13891 10299 +10170 10041 +10819 10693 +12173 11298 +13230 12197 +11298 10194 +15096 14122 +14843 14576 +12892 10721 +16091 13256 +15741 12633 +14730 13244 +13204 10423 +14869 13487 +11298 10268 +13158 11066 +15554 14718 +13930 13619 +12917 12884 +14259 11982 +14898 14262 +13495 12544 +11721 11697 +14683 12191 +13244 12953 +13796 13344 +13936 11697 +14761 11823 +15016 14113 +16429 12932 +13930 13158 +14893 13232 +11603 11298 +15016 14952 +13830 13487 +15570 12917 +16520 12197 +14050 13461 +13198 12278 +11292 10194 +10721 10713 +13461 10329 +15374 11027 +13244 12266 +14122 12889 +13485 10821 +12321 10245 +14730 10868 +13087 11298 +14646 14588 +11986 10965 +14730 13891 +10868 10478 +13891 11278 +14831 11884 +15785 14125 +14771 11603 +12264 10135 +14771 11503 +13487 11481 +14027 13296 +11252 11057 +13891 11423 +13485 11292 +12217 10171 +12544 11109 +14869 10821 +11292 10599 +14262 12266 +12173 10666 +14122 11775 +14685 11624 +11980 11298 +14576 11433 +14108 13930 +13767 10225 +11603 11259 +14679 11298 +12173 10299 +14679 14275 +13851 10561 +13198 12917 +14057 10693 +13704 10299 +11555 11227 +15167 10348 +14057 12896 +15376 10693 +11603 10630 +14027 12478 +15481 10693 +15919 12896 +12339 11259 +11540 11278 +13198 11898 +10732 10397 +15624 10397 +10990 10781 +14828 12175 +13934 12772 +11503 10721 +14107 10792 +14108 10466 +11775 11066 +13710 11630 +13360 13230 +15045 12892 +12878 11003 +15016 12451 +14816 10304 +15370 12324 +11481 11140 +14492 10713 +16091 12953 +14570 10279 +14492 10868 +13871 13476 +15502 14761 +14730 11871 +13930 10693 +13487 11637 +15618 12339 +15579 10299 +11042 10559 +14986 10800 +11298 10590 +12953 10154 +11111 10140 +13871 13485 +11027 10540 +13577 11996 +14880 11844 +14307 11697 +14843 14492 +12889 10140 +12892 10693 +14685 14524 +15412 12953 +14679 10666 +12003 11775 +14771 13486 +15721 10551 +15887 13894 +14869 12191 +13232 11278 +12441 12264 +14747 11433 +11884 10599 +15634 13230 +15412 14100 +14492 13244 +11433 10185 +14831 13796 +14672 10800 +14633 10590 +15167 10423 +11292 10590 +14893 13204 +15248 13196 +12451 10732 +13871 10466 +11535 10304 +15295 12945 +15167 15020 +16454 12197 +15167 11961 +14057 11109 +14771 13930 +12945 11003 +11298 10980 +15304 14898 +10821 10185 +13296 11986 +13303 10397 +15153 11996 +11066 10298 +15304 10140 +12235 12214 +14893 13851 +15344 10561 +14730 11003 +11884 10590 +14492 12896 +13061 11612 +11764 10158 +15713 10581 +14107 14100 +15085 12709 +13970 13873 +10868 10208 +15478 12676 +15411 14814 +15016 11292 +16091 10397 +12992 10721 +14679 12339 +12451 11193 +13485 11042 +13788 10397 +14683 10994 +12264 11146 +13933 11697 +10551 10304 +12147 10819 +12397 12222 +15628 14122 +16543 15167 +11764 10198 +11884 11042 +15153 13256 +14986 12451 +12892 12278 +15282 13894 +15016 11721 +12737 11336 +10800 10325 +13541 10581 +13931 10581 +13871 11278 +14683 11986 +10693 10216 +11756 11445 +15096 11899 +11884 11540 +12185 10141 +12896 10136 +15478 14895 +13871 11775 +15167 11057 +14570 12339 +13930 10744 +16091 13029 +13930 13495 +15862 15282 +12953 11996 +13296 11057 +13873 11845 +14321 11259 +13871 13204 +15295 12307 +12266 12173 +13894 12831 +14100 14027 +13204 12878 +12206 11259 +14831 10397 +12544 12197 +15502 10208 +15708 15707 +14689 14122 +14057 12339 +14747 12982 +10683 10397 +14553 13930 +13367 11540 +14295 11646 +12853 10551 +11977 11433 +13232 10140 +14150 11433 +11764 10792 +15700 12720 +14711 13029 +15085 14895 +13577 12339 +12807 11643 +14467 14057 +14477 11538 +12266 10561 +14492 13184 +16091 10559 +15016 14027 +11433 11066 +15721 10299 +12704 11643 +12391 10933 +14576 11146 +14635 14492 +12266 11973 +11952 10551 +14107 13476 +14112 11721 +13296 11995 +13682 12339 +12250 12197 +13198 12206 +13891 13296 +13341 12889 +14730 10685 +12945 10158 +13930 11423 +13196 11885 +13277 10397 +14683 12878 +14588 11298 +14492 13577 +12339 10158 +11973 11278 +15458 14893 +14730 13851 +15167 13930 +13851 11292 +11973 11423 +15024 10693 +16091 11259 +13930 11697 +13577 11823 +14576 11618 +14683 10800 +14689 13796 +14570 12896 +12953 11042 +12992 10590 +15554 10299 +13809 12945 +13830 12549 +14908 11986 +11555 10754 +13388 12892 +12266 11531 +14004 12917 +13342 11977 +12278 11638 +11728 11106 +14524 11267 +14125 10299 +13806 12844 +15785 10640 +14843 11697 +13158 10136 +14107 13342 +14730 11278 +14635 13682 +10792 10693 +13873 10225 +14275 12197 +13871 11468 +13667 11618 +11995 10299 +14893 14275 +10800 10466 +14679 14057 +14783 14082 +15380 14908 +14712 12264 +13485 10792 +11481 11042 +13232 10821 +11833 11555 +14524 12953 +14193 13232 +14679 11193 +15304 11193 +16739 12574 +14691 10713 +13871 11298 +12896 11563 +13796 10194 +14711 14100 +13158 11563 +14082 12339 +13890 10385 +13198 11503 +12915 12266 +14683 10868 +13296 11697 +12992 11540 +12184 10065 +12884 11042 +12264 11292 +14539 13731 +12721 12184 +12671 12653 +14570 11540 +12889 10466 +10529 10208 +14730 13232 +11042 10599 +14524 14321 +14027 12191 +13487 12478 +14709 10754 +14307 11721 +11278 11267 +11252 10257 +14696 11823 +13487 11980 +15049 12704 +14893 11618 +14771 12278 +11433 10868 +15016 10731 +15502 11140 +13244 13046 +14512 13367 +15282 12807 +13232 12206 +11057 10257 +13303 10194 +12250 11764 +14698 11423 +12992 12896 +12889 10590 +12831 12779 +14656 11641 +14119 12635 +14718 11630 +13942 11630 +15096 13230 +14747 14730 +14275 14150 +11973 10257 +15153 11834 +14130 11550 +14122 12898 +14869 13502 +15919 12278 +14193 11612 +14512 13796 +14709 14102 +14113 11995 +14493 10304 +15236 11245 +12397 11697 +11612 11503 +14814 10874 +14771 11638 +14679 14576 +12217 11146 +12390 10298 +16091 10838 +14100 13296 +15370 14783 +14683 13367 +13296 12197 +11953 11027 +13105 10990 +11233 10299 +13303 11298 +12954 11042 +15024 10721 +13768 12868 +14683 13476 +10747 10469 +16091 14783 +12197 11292 +14100 11995 +14570 10559 +14553 10397 +14747 11259 +13244 11531 +14468 14268 +14771 14321 +11278 10599 +14831 13930 +13204 12896 +14656 10559 +12323 10599 +11540 10713 +15024 12339 +14122 11109 +14100 11577 +15323 10158 +15016 10135 +12807 10299 +15447 11510 +14321 10599 +13485 11003 +14122 11259 +15096 14307 +12704 10640 +12523 11188 +14122 11252 +11697 11066 +13931 13487 +12956 11884 +14255 10800 +15171 10926 +12866 10170 +14633 11898 +14262 13891 +15370 12478 +11278 10800 +12448 11641 +12268 10640 +13450 10540 +13930 12280 +14771 12953 +13029 11067 +12197 10785 +13931 12953 +13204 12278 +12348 10965 +13942 12268 +15532 11399 +12892 11996 +12851 11630 +13487 12412 +14698 13198 +14843 10397 +13290 10627 +11252 10171 +15096 11298 +15160 10313 +13930 13342 +14747 12206 +13296 13244 +14303 11884 +14730 10158 +12266 12217 +14986 14112 +13360 10990 +15412 11953 +13871 11898 +12544 10268 +14869 13486 +14628 13002 +14869 11898 +12266 12007 +15376 11618 +15041 11098 +13204 10279 +12953 11259 +10910 10590 +13244 12954 +11986 10529 +11433 11233 +12197 11883 +12892 10423 +15304 12266 +16091 10599 +12945 12889 +13891 10279 +13894 13710 +12266 11982 +14530 13232 +14100 10647 +13930 11076 +14730 13809 +12206 11563 +15167 11908 +11905 10590 +11540 10559 +14107 11481 +11630 11559 +11423 11066 +10559 10385 +14696 11027 +14122 10158 +15478 12195 +13495 10643 +12339 11986 +11869 11399 +14747 14004 +13211 11003 +15023 10590 +14100 13204 +14794 14252 +11433 10577 +11433 10685 +15370 11259 +15293 12653 +12892 11003 +15171 13629 +12264 11995 +12339 11884 +15579 11555 +14131 10654 +11630 10396 +15882 13342 +13204 11193 +13256 11298 +13495 11953 +14574 11027 +14814 14679 +14474 13196 +14275 11764 +14512 11292 +15412 10781 +12451 11721 +15841 12819 +13871 10994 +16428 11869 +14102 10396 +12339 11617 +14314 14057 +14674 13495 +12206 11697 +13360 11973 +15016 13303 +13109 12758 +13830 12892 +11278 10994 +11481 10792 +14730 11288 +14570 14100 +11986 11433 +13930 11834 +15323 14524 +11042 10821 +12266 11140 +12391 11764 +11789 11298 +14635 14027 +15249 13788 +10792 10540 +13398 11675 +11122 11109 +13296 10792 +12197 10868 +16721 14307 +11433 10540 +13061 12992 +14696 11292 +13230 13204 +11764 10257 +15249 12945 +15093 11481 +14109 12191 +14576 11973 +16540 12478 +14492 11433 +14574 11057 +14908 14869 +15887 14130 +13256 11996 +12519 11292 +11827 11764 +10800 10599 +12264 11042 +14112 10529 +14457 10397 +16091 11834 +12598 11415 +15250 13196 +15167 10994 +14679 10140 +14512 14082 +15249 10172 +15085 10299 +14730 11823 +13930 10581 +13204 12892 +12441 10721 +12391 10589 +14683 11996 +10785 10721 +14893 12896 +15304 11481 +13930 10980 +11764 10965 +14685 10868 +15096 12441 +11996 11298 +12266 11995 +13232 13198 +14730 13344 +13034 12758 +15304 14831 +11641 11057 +15919 11995 +14122 12197 +14467 13964 +14880 12719 +14100 10581 +14193 10397 +15249 14027 +13342 10792 +15167 12250 +14828 12728 +13296 10529 +15124 13415 +14908 11540 +13367 11503 +16709 14683 +14477 11646 +11267 10158 +15043 12197 +14783 10268 +14182 10994 +11227 10299 +11540 11066 +13367 11292 +12391 12339 +12953 12478 +14255 10721 +11618 10647 +12264 11441 +15370 14869 +14057 13851 +12184 10551 +11643 10184 +13964 13930 +12892 11193 +13158 11697 +13232 10599 +13303 12228 +12954 11540 +15096 11292 +15295 10158 +15043 14635 +14307 13342 +12892 10792 +12392 11977 +15016 10792 +16133 10874 +12884 10683 +12478 11764 +14112 11433 +13964 11292 +14814 14761 +10874 10329 +12197 11331 +14109 12945 +13061 12511 +13577 13198 +13655 12191 +14679 14193 +13342 11587 +13264 10590 +13422 12953 +13244 11612 +15624 11996 +13871 10529 +14718 13579 +12892 11298 +12266 11540 +11292 10747 +11789 11027 +12448 10185 +13487 10785 +14895 11535 +13476 10140 +14869 11066 +13125 11728 +14679 12451 +14986 11278 +15412 15304 +14321 11066 +14193 11057 +13008 12197 +11648 11563 +13198 11140 +15096 14107 +13964 13264 +13871 12992 +12889 10874 +16654 12652 +14905 13486 +15618 14771 +13109 12492 +13871 11109 +14107 13244 +12704 10551 +11278 10874 +14709 12214 +13487 11203 +13277 11540 +14627 12321 +10529 10257 +13485 12945 +13196 11844 +15370 10800 +13930 10647 +13577 10821 +14027 12953 +13029 10466 +14397 12197 +13873 11844 +14908 13061 +14130 10551 +13487 10268 +12758 11618 +13125 12197 +12007 11111 +13871 11996 +12055 11150 +14321 14307 +11003 10821 +14730 10135 +14696 12197 +13714 12748 +14512 11057 +14397 10198 +12892 10666 +13577 12451 +13029 12888 +12007 10821 +12222 11615 +13307 11697 +12217 11267 +13461 11058 +10996 10299 +13198 12544 +15502 13931 +11638 11540 +14027 13809 +11618 10800 +13487 12278 +13303 10185 +14108 12917 +12953 12266 +14113 12339 +15447 15167 +14696 11986 +15048 11433 +14893 13303 +14747 12451 +10721 10647 +15310 10194 +12206 10279 +13964 11603 +13296 11996 +11259 11140 +13297 12889 +15304 11953 +10540 10154 +10216 10171 +14685 10874 +14828 12610 +13830 12266 +14307 13485 +14783 13061 +12264 11637 +11433 10140 +13342 12884 +13029 11150 +14633 10980 +15412 14696 +12217 10792 +13577 12889 +10721 10466 +11618 10397 +12676 10313 +12951 12266 +14107 11695 +15511 11415 +13061 12339 +13348 10423 +15323 14321 +12278 12264 +13577 12223 +14234 10416 +15478 12769 +15323 14761 +14842 10194 +12478 10732 +14512 13061 +10304 10170 +12915 11697 +15862 12708 +14122 12954 +14633 11973 +13342 11865 +12934 11994 +13930 12003 +15570 12448 +14231 10815 +13418 11176 +13341 12478 +15045 13297 +15376 10397 +13342 12264 +11726 11027 +15016 11122 +12235 11630 +15862 13894 +13341 10800 +15043 10469 +16603 14295 +11618 10140 +14234 12195 +15167 14255 +13087 10476 +14492 11618 +12206 11066 +15478 14856 +15504 11630 +14485 12844 +14683 11721 +15024 14122 +16091 12992 +10590 10155 +14771 13476 +10747 10171 +11411 10640 +14321 11618 +11587 11433 +11697 10713 +11193 10466 +15295 11267 +14683 14275 +13459 13342 +11423 10620 +11481 10397 +12108 10540 +13871 12945 +14689 10693 +12441 10713 +13204 10397 +14679 13388 +13851 11921 +11233 10140 +12370 11007 +12889 10627 +15249 14193 +13476 12896 +14122 12478 +15016 10732 +14679 12278 +10721 10423 +12889 10540 +13061 11086 +14512 10299 +14050 13398 +14102 12807 +10994 10140 +11433 11140 +12197 10257 +10721 10154 +11973 10874 +14108 12889 +14730 10620 +12191 10721 +10304 10241 +14771 14303 +13369 12676 +10599 10529 +14895 14805 +14524 12598 +14908 10792 +16665 14842 +14635 13303 +11995 11617 +14771 13198 +14802 10815 +15177 14771 +13230 10800 +13891 13295 +16091 12878 +10216 10135 +14908 14730 +13577 11624 +15024 12264 +12173 10140 +14234 12831 +14908 11298 +12892 10849 +15096 12191 +10721 10397 +14771 14698 +15412 10980 +12992 10397 +10994 10868 +14524 11603 +14797 12171 +15570 13303 +13851 11259 +13577 12917 +14783 13198 +14771 14747 +14100 12896 +14122 13076 +15356 15304 +14193 11278 +11865 11292 +13121 12191 +14332 12197 +13970 13942 +12003 11884 +14576 14122 +11775 11337 +15618 15167 +10815 10158 +11511 10551 +16340 15741 +15502 11823 +14831 11278 +13198 11042 +14869 11122 +13367 12217 +12266 11775 +14804 12268 +12954 10868 +15532 14081 +11492 10405 +14122 11481 +12339 11298 +12266 11278 +13930 12891 +13061 10683 +13232 12953 +13931 10821 +13061 12119 +11982 10728 +11150 10397 +14107 13303 +14761 13198 +16091 15374 +14588 11563 +13930 13290 +12206 11495 +12896 10194 +14869 14057 +10640 10139 +14869 10693 +11764 11675 +14231 10529 +14025 10821 +15478 10139 +12892 11278 +13487 11259 +14574 13930 +15016 10599 +13851 12206 +12853 11227 +11699 11066 +11977 11423 +10627 10590 +13244 10562 +14683 14570 +15842 13667 +11612 10747 +15011 11111 +13369 11555 +11884 11267 +12892 10136 +14747 12992 +11697 10693 +15376 10821 +12206 10800 +11898 10849 +15356 14050 +14656 10158 +13461 13244 +13795 13485 +14397 14122 +14107 12339 +15124 12235 +15096 14986 +14057 11563 +14193 13495 +15016 13829 +14869 13485 +10990 10397 +15570 12266 +15295 13061 +15041 14679 +13029 11697 +11563 10466 +11423 10713 +11764 10849 +13485 11973 +13871 12266 +14689 14577 +14869 13342 +14869 12266 +12206 11433 +12884 10747 +14685 11057 +15167 10397 +14098 10397 +15016 13983 +14893 13230 +12478 11618 +14100 10529 +15163 12197 +13377 12448 +15304 11898 +14131 12917 +14100 13495 +14747 14489 +14814 10819 +14576 11042 +12263 10994 +14570 11884 +15167 14875 +14131 13282 +12280 10466 +14871 13964 +11278 10423 +14307 13541 +12892 10821 +13487 13303 +14869 14747 +15794 11535 +15887 11550 +13502 11298 +12544 11111 +10821 10713 +13434 12676 +12264 11996 +14057 10194 +16091 11042 +11577 11433 +13540 10666 +15016 11298 +12264 10423 +11233 10423 +12917 11042 +14711 12222 +12003 10620 +10849 10466 +13873 11411 +14831 11298 +16133 11193 +14107 13785 +12264 10325 +11638 10800 +13232 12055 +11111 10423 +13244 11042 +10349 10247 +14771 12758 +14893 10590 +13342 12191 +14273 12638 +13768 11844 +11921 10821 +14570 10821 +15741 11367 +12954 11003 +14492 11067 +13367 12197 +11267 10721 +13198 11111 +15754 12815 +13204 11973 +12478 10257 +11292 11092 +12889 11150 +13655 11695 +15389 10713 +15295 11540 +11844 10754 +13061 11996 +12184 11392 +13871 11057 +14869 10713 +11241 10299 +12173 11618 +14576 10154 +15376 13476 +14512 10792 +14711 12878 +15919 11057 +14761 11714 +15376 14683 +14814 13930 +14457 13487 +12478 11123 +12889 10408 +14492 11481 +13577 11193 +13232 12954 +12954 12478 +14893 11042 +13292 11630 +15304 10135 +13485 12878 +11697 10721 +11618 11233 +12348 10792 +13894 12195 +13507 10687 +12278 11049 +14534 11122 +14761 14108 +12896 12191 +14736 11086 +12591 11630 +12197 10423 +13244 12889 +11511 10770 +13232 11697 +15861 14485 +12896 11278 +15919 11637 +15043 12917 +15086 11643 +12889 10747 +11764 11433 +13930 10868 +11764 10821 +13809 11953 +14576 10257 +14747 14679 +13232 11423 +13230 12339 +14831 10559 +14197 12478 +11423 11003 +14635 13230 +14100 10693 +13796 10868 +14783 11973 +12197 12191 +13851 11540 +11884 11259 +13674 10800 +14747 12441 +12992 10279 +11193 10185 +14512 10529 +14893 11996 +13277 10423 +14895 14234 +14628 14477 +13487 10299 +14167 10917 +14679 10874 +13296 12191 +14716 14512 +14908 12266 +14771 11697 +14100 12222 +13577 11697 +13487 10408 +11563 10779 +11336 10245 +10821 10685 +11337 10540 +14831 14747 +15412 10819 +12094 11278 +14576 14307 +15304 14986 +15020 14577 +15085 13369 +15304 14193 +10849 10397 +15919 12945 +13461 12217 +16218 13461 +12223 11278 +14524 10140 +12889 11042 +14122 11278 +14122 11066 +15304 13871 +13541 12222 +12397 10529 +11042 10397 +14674 10590 +12266 10849 +15016 13342 +13198 11481 +10800 10327 +15370 14107 +13964 10800 +15554 12709 +14570 11292 +13796 10599 +14512 10821 +13367 12892 +14843 14831 +12523 10397 +11252 10693 +11638 11433 +14747 14100 +15412 12197 +13829 10590 +13487 12343 +12889 10372 +13933 12451 +13277 11049 +13930 10627 +14493 11028 +14321 12478 +13931 13198 +13232 11726 +14112 10685 +12884 10990 +13296 10257 +12244 11764 +12720 10245 +12268 11643 +13942 10139 +14691 13303 +14843 11986 +14718 12769 +10994 10298 +15624 14814 +14524 10721 +13871 13577 +15356 10540 +15096 14730 +13930 13577 +15385 15293 +12889 11468 +11995 10990 +10683 10268 +13296 12451 +13072 11618 +15502 13851 +15177 10800 +14150 11938 +13930 11259 +15380 14150 +11512 10551 +15356 14938 +14869 14771 +15096 13204 +15380 11066 +14804 10551 +15096 14696 +14100 10713 +13230 12478 +14635 12191 +14869 12892 +15304 14570 +13232 11618 +15887 12779 +13230 11066 +14082 11193 +13230 11278 +14108 11921 +13502 12889 +14905 14698 +14875 13303 +13342 12451 +12264 11638 +12549 12492 +14092 11193 +13244 11267 +13198 13158 +15043 10194 +14275 13851 +12992 10529 +12755 12671 +13487 10136 +14057 10849 +14122 13105 +13871 12451 +11973 10994 +15024 13495 +14679 14100 +15023 10630 +13930 11726 +13244 11617 +14952 14683 +14730 11986 +14307 14107 +13796 12320 +13303 12884 +14805 12704 +14711 11618 +16101 14252 +12853 10754 +13485 13360 +14747 14307 +15389 15041 +14747 11057 +12223 11298 +15016 14492 +14057 12280 +15016 13232 +14905 10559 +15016 14635 +15618 14530 +14761 11721 +12324 10299 +15016 11123 +14689 12892 +13930 13303 +13796 11433 +13476 10559 +12889 11719 +13871 11308 +14412 12321 +11973 10155 +11555 10304 +12892 10713 +14679 10792 +13158 12889 +11540 11292 +11042 10627 +16681 12197 +13958 11057 +11111 10781 +11267 11146 +11550 10299 +12868 12615 +14027 13198 +14100 10874 +14869 14262 +14307 10397 +14288 11563 +13256 10185 +14100 14057 +12916 12197 +14256 11630 +14908 12953 +12323 11995 +13204 12954 +14100 11193 +12889 10257 +14831 14635 +14314 12007 +15381 13244 +12953 12191 +14893 11259 +15016 10590 +10397 10146 +15370 11049 +14100 10792 +11433 10874 +15167 10693 +15250 10299 +13244 12003 +15167 13871 +15411 11298 +14307 11433 +12992 11433 +15754 15741 +14635 12889 +11618 10874 +14492 11973 +13342 10849 +12945 12915 +14908 14321 +14831 10615 +12896 11540 +13072 11049 +13871 13827 +15096 13232 +11292 10185 +12992 12945 +14747 11697 +11728 10613 +15304 12882 +14107 14057 +14122 12896 +14986 10397 +13259 12889 +14314 12884 +15245 14895 +14004 12278 +11122 10713 +13398 10683 +12917 10423 +14193 12264 +12391 11193 +11203 10408 +15356 11252 +14512 12917 +14025 11697 +14952 11057 +13796 11618 +13204 10800 +15554 12807 +15412 14761 +14683 10721 +15741 13693 +11921 11292 +14082 10431 +16730 13507 +14689 10423 +13303 10933 +14895 14856 +12391 11423 +14576 10868 +14100 11721 +14730 12323 +13873 10033 +11618 10257 +14816 14474 +15618 15376 +12772 12721 +12268 10299 +13495 11996 +13204 12898 +11996 10529 +13232 10397 +15370 10821 +12264 12191 +13347 13109 +11066 10821 +14107 11140 +12982 11292 +14524 12889 +11973 10693 +12278 10171 +15096 11726 +14107 12889 +14771 11298 +15016 11764 +11641 10874 +15376 14057 +13796 10713 +13244 11150 +12280 10849 +10329 10136 +13342 12917 +14112 12119 +11823 10590 +15124 10184 +11298 10713 +14524 12278 +14520 12335 +14711 11995 +14576 11995 +12335 11076 +13796 10559 +14112 10408 +14716 12889 +13871 11697 +14574 13931 +13485 10540 +14843 11278 +11641 10693 +14102 10225 +12868 11844 +13930 10732 +15070 12945 +14814 12266 +12451 11292 +12280 11695 +14524 14112 +14570 11638 +12264 10821 +12891 11563 +14696 12878 +15304 12323 +12671 11336 +14685 10540 +13871 13795 +13947 12889 +11996 11433 +16553 10154 +15412 10599 +15249 14275 +15249 13076 +13931 11193 +14576 10599 +12719 12087 +13232 11057 +12953 10257 +14747 11470 +14908 13495 +13303 11823 +13158 11638 +14802 14730 +14098 11278 +11973 10208 +14905 11775 +13303 11996 +13342 11433 +11563 10627 +15376 11042 +14761 10685 +14831 12391 +12853 11952 +13232 10990 +14457 14120 +12191 10325 +14783 12191 +13061 10819 +15579 10170 +14730 11638 +13851 13204 +14492 13032 +12917 10654 +13871 10397 +14869 13061 +13930 13367 +14783 12228 +12339 10216 +14843 10423 +14457 11563 +12889 12324 +14492 10994 +14908 13930 +14122 13158 +14869 13204 +14576 11540 +12087 10313 +12945 11618 +12451 11057 +11973 11193 +14397 12945 +14683 10874 +10661 10463 +13871 11042 +14986 14730 +14130 12779 +11719 10136 +14794 13964 +13485 11067 +13851 10980 +14524 13198 +14004 13587 +13930 12954 +16353 10397 +12889 11789 +14679 12441 +13970 11630 +15245 11941 +16091 11376 +14492 11042 +13198 12954 +15376 13495 +13851 11423 +14577 10800 +11885 10299 +14843 11292 +14747 13667 +13244 10466 +12841 11445 +14107 11413 +15356 10198 +13970 11280 +15249 13667 +13196 11555 +13061 11995 +13296 11193 +15370 12323 +13232 11973 +14716 10590 +14100 13891 +11193 10559 +15853 13710 +12951 10781 +14397 12191 +14430 13495 +14843 14771 +14397 13931 +12889 10599 +13461 11721 +13196 11825 +13244 12323 +13244 10599 +12129 10868 +15203 12197 +15304 10136 +14831 11042 +14412 10299 +15049 11535 +12388 10821 +15794 10299 +12676 11630 +14696 13256 +14996 12197 +11027 10654 +14863 13467 +11433 10785 +14057 13890 +14814 14100 +12896 11140 +14893 14747 +14674 11292 +13204 10693 +14986 10529 +13851 11721 +13198 10423 +12195 11630 +13577 12391 +15295 13244 +14193 13244 +12266 10466 +15016 14193 +11433 11203 +15275 14006 +12266 10747 +14747 12523 +16498 15167 +13342 11193 +11630 10754 +14986 10434 +15027 11790 +14869 11503 +11638 10423 +14696 10466 +11057 10140 +15096 14524 +13487 10469 +16091 10994 +15027 11057 +11563 10620 +14576 13495 +14893 11995 +11612 11298 +14816 12831 +11973 11259 +12266 10397 +15478 14805 +14831 12173 +13256 11618 +14122 12119 +14524 11292 +15278 10299 +13244 11421 +14524 11540 +15304 14908 +12156 10849 +13198 11618 +15167 12320 +13341 13061 +13158 10693 +14570 10466 +13232 13158 +15293 11336 +15721 11535 +15370 12915 +13715 10299 +11057 10868 +14747 14256 +14027 10785 +15049 13873 +13244 11725 +13198 12884 +13947 11298 +15249 14683 +14489 14057 +14952 12451 +11259 10599 +11953 10781 +13029 10540 +13256 12094 +14747 14321 +14492 14107 +15304 11057 +12899 12892 +13936 13203 +12889 10135 +15502 11641 +15153 10194 +13198 11146 +12266 10155 +11921 10781 +14842 10136 +13061 12945 +14761 14696 +13360 10397 +12992 11057 +12184 11630 +13873 12184 +12184 10754 +14843 11433 +14107 11003 +10800 10279 +14747 11997 +13931 12007 +14747 10721 +11522 10930 +14685 12478 +14027 10146 +12264 11884 +15709 11317 +15725 15061 +11540 10140 +14685 10785 +14696 14492 +13204 12197 +12391 10397 +15096 13930 +14288 11111 +13495 11641 +13931 13296 +12892 10194 +15412 12915 +15249 10423 +15389 12266 +14122 11986 +13211 10154 +14512 14112 +12155 10980 +16091 10469 +13198 11775 +13342 10713 +13290 13244 +14771 13342 +15167 10849 +14875 11728 +12889 11921 +15887 15554 +11697 10397 +10994 10299 +14582 12016 +11844 10299 +14633 10397 +12197 10299 +11618 10980 +14512 10257 +16091 12119 +14761 11995 +13204 10713 +11630 11280 +12704 11535 +13495 10257 +13714 12184 +12889 12211 +12155 11699 +15502 11259 +13341 10529 +10599 10559 +10994 10185 +15304 14492 +13891 10800 +13296 12339 +11259 11049 +12954 12889 +13487 12280 +14853 14736 +14524 10423 +15554 11550 +14908 11433 +12523 11619 +15008 10466 +16727 13987 +14843 10257 +14747 10821 +14112 12265 +12945 10980 +15257 12855 +14307 13487 +12610 11997 +11292 10372 +12892 10299 +13891 10135 +14908 14679 +14730 13830 +13873 11550 +15167 11823 +13871 10721 +10754 10551 +15167 14107 +13061 12448 +13342 12339 +13487 13230 +15160 12676 +14730 14057 +10685 10397 +16429 10721 +14814 11066 +13203 12339 +14057 13204 +14745 12389 +13158 10721 +10800 10792 +13211 12339 +13244 11618 +14122 13461 +10821 10529 +12953 12451 +11292 10713 +14524 13342 +15525 13796 +15570 11337 +14057 12982 +14107 11066 +15249 12191 +16091 14122 +13232 12896 +12917 11146 +14492 11259 +15887 11492 +10917 10551 +12448 10781 +13303 11123 +12610 10204 +13348 13061 +13341 11433 +15919 13502 +15167 11376 +15236 11630 +14893 14869 +16218 13303 +13495 11278 +13244 10208 +14730 14524 +11042 10257 +13667 10821 +10693 10185 +15930 14747 +13061 10599 +12278 10693 +13487 11233 +13795 11423 +13111 11630 +13770 10241 +14054 12103 +12478 11193 +13487 12389 +10821 10268 +13117 10800 +11775 10631 +15153 10821 +14685 10599 +11376 11109 +10170 10017 +14685 12339 +14533 11298 +13303 10423 +12992 12455 +13930 13244 +10800 10529 +12544 11982 +12917 12223 +12451 10140 +11648 11337 +13930 10208 +15919 11726 +10821 10792 +14771 12206 +16363 10965 +11267 11252 +12391 10599 +12954 12892 +16743 12574 +13487 11977 +12131 11344 +14574 11996 +14747 14689 +14474 11280 +14635 11996 +14853 13198 +13851 11697 +16091 12598 +14696 10268 +12917 10599 +15919 11778 +14683 10325 +15376 12451 +11042 10732 +11977 11109 +14122 10397 +13369 12195 +11973 11042 +12889 11433 +14122 10185 +11618 10589 +13541 11615 +15374 12197 +15096 11495 +14288 13796 +14057 11042 +12544 10990 +13256 11563 +15370 14122 +13464 13061 +14122 10540 +14112 12953 +13232 10529 +13342 11775 +12953 11233 +15070 14100 +16091 10980 +12559 10670 +14107 11292 +14492 10590 +12255 11109 +13342 12335 +13579 11550 +14457 11775 +11618 10431 +14908 14570 +13244 11415 +13487 11049 +16603 14572 +14524 10792 +14057 11986 +14831 13830 +14869 11097 +12889 11764 +11563 11471 +12992 10685 +14730 14108 +14869 12339 +16133 14814 +14107 11433 +13934 10170 +13232 10154 +13704 12663 +15249 12266 +14475 10821 +15016 14570 +13360 11996 +14524 11298 +15887 12851 +11997 10299 +13894 11630 +14783 11292 +14027 12391 +13061 12228 +12953 10868 +12945 10397 +10821 10279 +14259 14107 +12228 11995 +11884 11109 +12676 12087 +12892 12217 +13930 11146 +13731 12197 +16091 12544 +11292 11122 +15356 11423 +14919 11445 +14771 12954 +15376 11140 +13307 12266 +14107 13158 +14321 11298 +12217 10208 +14842 10590 +11292 11233 +13487 11433 +15024 11278 +13342 10136 +12559 11441 +11697 10194 +16647 14222 +12944 12197 +10781 10185 +13230 12889 +15376 10792 +12365 12197 +15249 15096 +13543 12598 +13851 12173 +11764 11697 +13930 10620 +11028 10299 +15304 12324 +15579 10304 +13204 12206 +13061 11150 +15070 14492 +14853 12992 +15919 11603 +16731 16681 +12195 11492 +12889 11977 +15096 13577 +12222 10785 +12266 11066 +11995 11027 +14869 12264 +14696 14570 +12889 11898 +11146 10158 +12954 12266 +15919 11953 +14704 11057 +14880 11028 +11823 11540 +12992 12206 +15376 11267 +12882 11278 +14307 13577 +12892 11041 +14747 13931 +14730 10721 +12663 10299 +13230 12953 +13871 13127 +14679 13341 +11603 10800 +15295 11995 +15478 13970 +14698 14683 +11433 10257 +14869 12451 +13655 12039 +14524 12478 +14908 13931 +14893 11423 +14307 11986 +14275 12478 +13303 11267 +13930 11764 +14107 10821 +15167 11764 +15440 10965 +14268 12748 +13767 10775 +10930 10157 +16654 13002 +13367 13139 +15650 10559 +14492 11337 +10661 10011 +13485 11066 +12339 11618 +15167 14553 +13232 12889 +15249 13851 +16428 10011 +12889 10994 +14570 10800 +16101 11563 +10792 10216 +14828 12171 +12719 11492 +11511 10299 +14512 11233 +13341 10821 +12945 11193 +11618 11495 +14574 14122 +14321 13577 +14747 13587 +14761 14492 +15304 11252 +14696 13182 +15016 12455 +13495 11495 +11921 11109 +14570 11109 +13061 10431 +13434 10299 +14804 13942 +12992 11252 +13495 13244 +14321 13931 +14397 13930 +12339 10683 +13495 11540 +14843 12266 +13894 12855 +13230 12917 +11517 11337 +13486 12003 +14771 13388 +13072 12915 +15020 10620 +14771 13204 +16133 15016 +12945 11973 +13230 10994 +15853 13894 +13105 10460 +15842 14576 +13303 12892 +12822 11941 +13873 10559 +13184 11433 +15304 10216 +12191 10874 +13495 11995 +12264 11057 +14843 10874 +14259 10581 +15919 13851 +12365 10135 +16101 13546 +13851 11867 +14236 13232 +13930 13587 +15153 11540 +15919 14524 +13931 11479 +12321 12294 +14986 10721 +14321 10423 +14050 10693 +14747 14633 +14696 10693 +14457 14057 +14730 12191 +12094 10849 +13486 11423 +13930 10792 +16479 10990 +13232 10423 +15325 14712 +15304 14576 +11995 11042 +14027 13487 +14683 10397 +14635 13105 +14869 10170 +14711 11441 +11833 10349 +12953 10792 +14492 10540 +14804 13806 +13204 10874 +11941 11845 +13674 11728 +14130 11227 +15618 14831 +13485 11252 +13851 12945 +13200 11098 +10821 10683 +14683 10792 +14100 11823 +13422 10599 +13342 12391 +15153 12945 +14062 12523 +13232 12129 +15380 13655 +13770 12779 +12544 11252 +15624 13851 +12868 10299 +14987 10551 +12018 10140 +14683 11298 +13502 10397 +13360 12945 +13464 10744 +13796 12264 +13204 11618 +15096 11995 +11267 10529 +14492 14100 +14831 14122 +14831 11697 +14122 11423 +13851 10721 +12339 11292 +14282 11492 +15249 11996 +15376 13796 +13487 11267 +12264 10577 +11423 10136 +14747 11996 +14553 13303 +14730 14696 +13891 10713 +10170 10139 +14122 11697 +14869 10747 +14856 12822 +12315 11756 +13495 10135 +13029 11603 +13303 11973 +14122 14100 +12339 10647 +15096 13931 +13871 13200 +12953 12892 +15356 12197 +14893 12954 +14856 10551 +15061 10299 +11241 10551 +14905 11898 +12889 10299 +14492 12206 +13244 10747 +15412 11973 +15370 11618 +14576 12397 +16133 14877 +14685 14492 +13930 13796 +12265 11764 +11535 10299 +14635 11618 +12324 12206 +14321 10434 +11423 10683 +14908 11041 +14698 11540 +15249 10298 +15624 12992 +12348 10540 +11823 11066 +15887 10299 +13667 10434 +14893 13495 +13256 10423 +15401 11298 +15096 14843 +13487 12917 +12553 11126 +13230 12365 +13296 10140 +15709 12822 +12451 10559 +10868 10423 +14107 12132 +11298 11042 +14712 14689 +14696 10397 +12451 11973 +15626 14819 +11714 11057 +10754 10170 +14477 12652 +14712 10800 +11630 10783 +12324 12264 +11996 11146 +14314 14107 +13360 10329 +15502 15370 +13029 11066 +13244 12206 +13434 10416 +14908 13256 +13487 12206 +16345 15741 +13303 12197 +11973 11274 +13061 11563 +15887 11555 +15016 11973 +12945 10868 +10559 10299 +14747 14193 +13873 11630 +15167 11711 +10599 10434 +15570 13290 +11146 10469 +12323 11193 +13970 10754 +15304 10721 +16603 12652 +13487 10559 +13891 12264 +15304 15016 +12523 10926 +11259 10693 +13198 12191 +12155 11996 +13873 11336 +12184 10016 +11267 10380 +14683 11278 +14831 14275 +11337 10792 +14027 11973 +14275 13204 +11697 10136 +15412 11278 +14112 11057 +14492 11252 +13277 11298 +14853 14197 +13809 13303 +14771 10423 +13958 10874 +15919 14122 +11122 11097 +15236 13467 +12264 10558 +12953 11618 +11996 11057 +14307 11057 +14674 10155 +13077 13076 +13342 10140 +13676 12807 +14908 14747 +14869 13891 +13520 12758 +14524 13487 +16091 15153 +14908 14771 +14986 14107 +13871 10590 +12992 12339 +11764 11259 +14627 12719 +13667 11042 +10990 10666 +11995 11003 +13809 11111 +15295 12339 +14303 10713 +14492 11267 +11042 10135 +12278 10980 +14108 11695 +14814 12191 +12896 12266 +14252 11563 +13495 11041 +12436 10617 +11884 11433 +13871 13495 +14736 13796 +11638 10140 +15841 10299 +13467 13196 +11905 11697 +15027 15024 +15376 13851 +13061 11066 +14908 13485 +14685 11193 +11336 10917 +12217 11292 +11905 11298 +15153 12339 +13577 11298 +12007 10747 +15257 12719 +12055 10466 +14100 10208 +14683 10279 +11675 10154 +15295 13303 +15991 14828 +12953 10581 +14635 11884 +11884 11292 +13256 11042 +14112 13204 +14320 11721 +13487 12191 +15096 11641 +14893 11921 +12206 10590 +11630 11535 +10739 10590 +13829 11921 +14570 12278 +13105 11057 +14112 12278 +14869 13295 +15862 10551 +15074 11027 +12574 10819 +11109 11057 +14683 13061 +12889 11481 +15304 10559 +14489 10157 +13930 11278 +15167 11842 +13487 10185 +14397 11086 +12892 11719 +15370 11203 +14050 11057 +13770 12708 +15376 10529 +12266 11109 +15016 11376 +15304 13485 +13244 10216 +11535 10640 +13851 12889 +12915 11140 +13796 12478 +14100 12007 +15376 12896 +13579 11630 +12007 11697 +11468 11292 +16567 14919 +11433 10599 +12323 11042 +11259 10721 +13303 10800 +15043 12598 +11193 11109 +12638 11511 +12131 11193 +15376 11423 +11433 10693 +11292 10925 +14709 13767 +16311 15257 +11540 11193 +13204 11267 +12982 12173 +14057 13158 +13418 11961 +14843 12391 +12896 11977 +13296 11764 +13198 10819 +12266 10208 +13198 11415 +11140 10590 +11292 11123 +14112 14108 +10666 10559 +13796 10666 +15447 11728 +14107 10325 +15478 13196 +13464 12155 +13198 10994 +14131 12307 +14397 12448 +15304 10792 +11193 10529 +11637 10800 +15412 12264 +13297 10299 +15249 11298 +14747 12884 +13930 11537 +13495 13256 +12708 11227 +14492 12544 +14679 10540 +16091 10431 +13577 11027 +13296 13232 +12339 10620 +12898 12892 +16715 12197 +14588 12266 +13295 11042 +14108 11298 +14107 11921 +14635 12953 +12264 11109 +10980 10590 +11618 11066 +12992 11905 +11537 10434 +13795 11057 +13230 10529 +15304 12191 +14027 10397 +13232 11510 +14167 12841 +14112 11973 +13342 10800 +12653 11336 +12265 11697 +13244 13061 +12264 11267 +14100 10540 +13931 10980 +13930 11057 +15295 11193 +14771 13796 +12892 11042 +14747 13930 +14112 13232 +14747 12478 +14130 11336 +14530 11503 +14307 12197 +11227 10304 +15163 12055 +14831 12758 +14683 10529 +14747 13851 +14570 12266 +14960 10590 +13342 11337 +15842 14635 +14696 14122 +14986 11986 +10559 10466 +12264 10140 +14100 12197 +13487 13296 +15412 11003 +15016 12878 +15709 15293 +14893 13891 +14627 12087 +11292 10620 +13931 13891 +13871 12191 +14747 11050 +13796 11042 +14122 13303 +14288 11283 +13204 12945 +11150 10185 +11292 10643 +14730 11042 +10313 10304 +15074 12896 +13964 11098 +15741 12622 +14633 11203 +14869 11042 +14512 14492 +13244 11086 +14107 12982 +12953 10434 +12784 11336 +14696 11618 +13676 10299 +15096 14908 +11193 10994 +15215 12016 +12339 11267 +13303 11066 +11641 11413 +14730 11415 +13930 10397 +12709 10551 +12294 10245 +13495 12953 +11503 10732 +14843 14679 +14683 11540 +10874 10868 +14273 12748 +13871 12953 +13158 12266 +12851 12709 +12896 11973 +14908 13198 +14057 10874 +13388 10800 +11259 10185 +11973 10397 +14730 11721 +15446 10170 +14098 13667 +14122 11233 +14771 13158 +14574 12348 +14321 13930 +11298 10728 +11980 11468 +13871 10216 +14831 10372 +14679 10136 +13958 11150 +11823 11203 +14254 12478 +12884 11278 +14893 12892 +10431 10135 +15356 13232 +13433 10466 +13851 11563 +12255 11292 +12391 10670 +13958 10408 +13949 12478 +13232 11267 +13360 10781 +13894 10304 +14107 12266 +15919 12007 +14262 11292 +11973 11618 +15304 13198 +15838 12321 +15070 13244 +11423 10980 +16736 15167 +14869 12156 +11292 10140 +15074 14635 +12917 10590 +14893 10140 +13931 11764 +15167 12119 +13484 10397 +11336 11227 +11995 11292 +14027 11618 +12769 12195 +14843 14100 +11123 10397 +14908 14122 +15570 13029 +13495 10562 +12945 11298 +11721 11259 +14282 10299 +16133 12598 +10994 10792 +13398 10721 +14321 13198 +14321 10994 +11555 11535 +11555 10033 +14100 12217 +13487 13204 +11292 11193 +15376 13891 +15096 13667 +13342 12951 +13830 10423 +15295 14314 +12197 10171 +12889 11650 +14712 12758 +14193 14107 +14831 13342 +15236 11463 +14112 10208 +12197 11728 +13433 12389 +14098 11109 +13931 10397 +13930 12094 +14893 10397 +13476 10136 +16091 14696 +11057 11003 +16091 12348 +14747 13495 +12889 11612 +11764 10540 +15096 11996 +14869 10423 +16725 13796 +16091 14193 +14635 11259 +13029 10683 +13204 11986 +12559 12197 +16428 11399 +13072 11884 +15016 11726 +14718 14627 +14027 13930 +15074 12266 +14107 13232 +15167 12332 +11111 11109 +12951 12448 +10800 10713 +12494 10792 +15370 14057 +13367 12889 +13485 10721 +15618 12576 +15153 13898 +13930 10643 +14696 13290 +11003 10683 +11721 10800 +14893 10994 +14100 11057 +14679 10599 +14869 11996 +14747 14457 +11193 10299 +11433 10994 +14869 14193 +15304 11764 +11618 11123 +14112 11823 +15153 11146 +14197 10529 +14908 11042 +13232 11259 +12831 10551 +14783 10590 +11775 10559 +14107 12278 +15478 11555 +14685 12945 +11996 11697 +13029 11292 +12278 11697 +13341 10559 +14130 11492 +13277 12278 +14100 10172 +13891 13158 +14831 11123 +13487 13029 +11986 10868 +15919 10994 +13486 11563 +14869 12889 +14761 10747 +14197 12544 +14814 12451 +13891 13303 +13894 13770 +13087 11344 +15502 15016 +13244 12207 +13931 11617 +14234 12807 +11996 11066 +12945 11278 +10713 10529 +12264 11641 +11042 10590 +15856 13002 +14107 10990 +13244 10185 +14559 11630 +13577 12953 +11298 10868 +14122 10713 +15554 13770 +12478 12266 +14747 11109 +14696 14321 +14307 11995 +14679 10559 +11423 11292 +12320 11995 +10299 10241 +13577 13230 +14082 14025 +14107 11123 +12902 11292 +12197 11764 +13851 11057 +15497 10654 +14025 10257 +14689 14570 +15919 15374 +15016 14576 +13930 11612 +13984 13418 +14685 11996 +15016 12992 +14524 13232 +11503 10140 +14696 11563 +14524 14492 +11057 10792 +13398 11493 +15016 13930 +13796 12173 +11982 10849 +14986 12478 +13461 13256 +15016 13341 +12945 10423 +12323 11973 +15282 13579 +14802 13121 +14831 13244 +14683 13851 +15721 13768 +12266 11146 +14057 12758 +11641 10208 +13577 13418 +14679 10408 +15356 13204 +14747 10590 +15380 15016 +12544 11977 +11648 11292 +14530 11637 +11884 11637 +10800 10693 +13931 11973 +11721 10819 +13485 10693 +12339 10821 +12321 11336 +14125 10640 +14771 10157 +16721 16634 +12878 12264 +12544 12055 +14683 11898 +16091 12917 +15160 10299 +14492 11292 +13490 10257 +14112 11618 +12819 12633 +15370 11995 +14307 13139 +13256 10599 +15412 14050 +12264 11259 +14730 12003 +14794 13259 +14842 11298 +13796 11098 +14635 10257 +12917 11423 +12599 10540 +11109 10620 +13891 12324 +14747 14691 +14122 10434 +16091 10721 +12621 10349 +13342 10965 +14908 13341 +15624 12448 +15478 11535 +15656 10154 +12339 12206 +13241 10185 +12197 10670 +12889 12173 +14711 12917 +14747 12324 +15374 11150 +10994 10559 +13485 11775 +13676 11630 +15841 14747 +15257 10405 +13264 12889 +14108 13487 +11833 10299 +14576 11066 +11973 10529 +14314 12892 +11953 11278 +15171 10299 +10994 10721 +11433 10299 +13667 12544 +13244 11298 +13891 11433 +14467 13264 +10821 10721 +11995 11618 +12244 10990 +15581 11643 +14955 12016 +13342 11003 +13369 11028 +14905 14771 +13194 12211 +11336 10304 +11057 10785 +12945 11540 +12173 10257 +16091 13930 +14570 13851 +13341 12280 +15045 10299 +10754 10299 +10815 10154 +15370 11042 +15016 11481 +12191 11563 +13796 13255 +10615 10561 +14952 14082 +14819 11126 +12917 11259 +13487 10819 +12451 10868 +14057 10620 +12892 11413 +12197 11641 +14683 11057 +12297 10590 +15374 12896 +15016 10140 +14679 13851 +10732 10423 +14193 13871 +13487 10800 +13830 13520 +15504 10225 +13806 10640 +10721 10140 +15249 12094 +14275 10721 +15304 13930 +14131 10821 +13476 10590 +11630 10076 +14229 12815 +14736 13061 +15798 12708 +12339 10800 +14574 10721 +15626 15027 +13433 12889 +13865 11041 +11292 10950 +10800 10721 +12348 11042 +15539 12003 +11775 11042 +13204 12264 +11298 10693 +11214 10184 +15249 10693 +13970 12844 +14893 11278 +14685 10569 +14050 12574 +14893 11066 +14512 14107 +13203 10785 +14683 12323 +13495 11728 +15043 13344 +15502 10980 +14696 12992 +12222 11656 +11941 10640 +12544 10257 +13830 11618 +12448 10693 +11790 10208 +14730 10298 +13303 10683 +11618 11067 +11067 10397 +13871 12278 +15919 15249 +14869 12278 +13485 12441 +13244 12951 +14679 10466 +15045 11193 +14683 13495 +13931 10158 +12771 10170 +11555 10139 +16091 13341 +14098 11479 +16091 10194 +12087 10551 +14512 10466 +15249 11775 +14804 14485 +13931 10868 +14738 12755 +14553 12266 +12954 10713 +14321 10140 +11603 10559 +15295 11973 +10599 10279 +12954 10185 +14831 11140 +14761 13936 +13891 12892 +13796 12598 +13087 11193 +12264 11953 +14512 11973 +14098 13931 +12884 10171 +14843 14107 +13342 13230 +10821 10693 +15618 10325 +12222 10589 +14783 10171 +14893 10279 +14685 11618 +15785 13873 +15096 13495 +11292 10732 +12844 10754 +14842 13422 +12955 10171 +11884 11618 +12720 11336 +11995 11884 +15389 14869 +13930 12953 +13002 12652 +14712 12441 +14696 12339 +13796 12278 +14107 11109 +14679 13891 +12745 10661 +14576 12173 +12264 10329 +10627 10466 +16091 14100 +13577 10721 +15016 14679 +12492 12173 +13008 12222 +13198 12953 +14520 14320 +12339 10849 +12892 12264 +12197 10990 +13851 12278 +13543 11697 +14831 10800 +12769 10416 +14730 11764 +12892 12191 +14711 14122 +14512 12478 +12494 11577 +12851 12708 +15370 13931 +11066 11049 +11719 10713 +12598 10155 +13796 10135 +15295 13461 +15295 14492 +15086 10299 +14576 10158 +13061 12892 +15304 10821 +16479 15167 +14193 13796 +13342 12448 +14633 13871 +14050 12191 +13290 11789 +12892 10185 +13894 12853 +12721 10243 +14107 10590 +12278 11980 +13930 10135 +13495 11003 +14738 11445 +12892 10540 +12197 11042 +14747 10994 +15581 10299 +13244 11292 +15412 12003 +14321 12391 +14908 12892 +15380 11433 +14107 10630 +15249 13485 +12884 10821 +14893 11540 +15554 11492 +11298 10298 +14814 14107 +14252 13487 +11122 10590 +12266 12177 +14679 10257 +11842 10815 +11953 10478 +15167 10540 +12197 11961 +14122 12206 +14747 14635 +13418 12448 +11977 10136 +13029 11298 +12206 12191 +10693 10590 +14761 11789 +13947 10721 +13203 12892 +15887 11227 +14893 13198 +12641 12635 +13487 12992 +12951 10423 +11618 10785 +13579 10304 +14570 10423 +11193 10158 +14685 13230 +13369 11550 +13230 11042 +14895 13873 +13303 12339 +14747 10874 +11775 10141 +13710 12831 +11433 10466 +12321 10299 +15741 13504 +14100 10279 +13303 12448 +12321 10241 +13770 12855 +14689 11775 +14869 10994 +12323 11278 +14237 12892 +15049 10299 +14709 13434 +12217 10868 +13361 10693 +11066 10423 +15356 14122 +13204 11423 +14492 10874 +12951 10146 +11292 10561 +13204 11278 +13871 10540 +13830 10397 +13768 12087 +13931 13342 +12769 11630 +13891 12191 +13303 11003 +11789 11423 +15376 10279 +15554 13196 +13796 12266 +14679 12478 +11042 10800 +15919 10590 +14679 11042 +14696 12478 +14877 11415 +15016 12391 +15085 14718 +15096 14112 +14627 11630 +11961 10154 +15024 14027 +13579 11492 +14711 11146 +14027 13303 +15887 12195 +15842 12478 +12339 11003 +11884 11538 +13303 11150 +11603 10713 +11550 10416 +14711 11067 +14843 14819 +14397 13851 +15016 11193 +14679 13476 +15070 14761 +14100 12478 +14761 11292 +12719 12321 +15862 11492 +15304 11292 +13487 12339 +13495 12339 +12185 11292 +12451 11481 +15273 11540 +14869 11995 +15249 11278 +13487 12448 +14730 13295 +11042 10208 +13495 12448 +14430 13232 +13198 11980 +14908 12896 +13555 12544 +12339 10423 +11711 11292 +11986 10423 +12339 11537 +13507 10540 +13891 12363 +11996 11267 +13244 11995 +13871 12206 +13873 10299 +11618 11503 +14397 13360 +15048 11298 +12348 10397 +12451 10529 +11413 11298 +13667 10581 +14869 11423 +14635 13198 +11618 10693 +14492 11884 +13485 11563 +13540 11050 +12982 12889 +15374 14730 +13297 12892 +13487 13433 +15024 10397 +14268 12321 +13832 10257 +13796 13232 +15295 13255 +14908 14674 +14761 14259 +12917 10171 +15257 12709 +13198 11986 +14986 12339 +13232 10647 +10821 10397 +13796 11481 +14955 10299 +14816 13768 +15096 12884 +12758 12492 +15579 11630 +14908 14512 +13204 11298 +13891 12266 +14107 11603 +12892 11267 +14893 14107 +11140 10423 +14730 11259 +12478 11973 +13232 13204 +14493 11630 +14107 12992 +13891 13487 +11146 10693 +10821 10431 +12339 11612 +14843 14761 +13347 13034 +12478 11697 +13873 11487 +12451 10792 +14635 12451 +12869 10170 +13198 11278 +13930 12896 +12889 10792 +14120 13487 +14492 11109 +12598 11540 +14107 12217 +12191 10185 +14234 11555 +14843 11481 +13796 12945 +12769 12708 +12954 10559 +14275 11977 +13495 12992 +12779 11227 +13061 10171 +13731 10535 +11973 10135 +13796 12896 +11697 10994 +12884 11193 +12003 11648 +15374 10693 +13495 10781 +12896 11618 +15232 10800 +14100 13830 +15502 11267 +15325 13796 +12892 12280 +12819 12523 +14679 10194 +14570 10397 +14761 12992 +14492 10140 +14131 12339 +11298 10185 +13487 11764 +14493 10996 +14919 14738 +13461 13219 +15374 10171 +14761 13501 +14027 11697 +10590 10466 +13303 10529 +14100 10821 +14679 10747 +12094 11122 +11898 11193 +13871 11884 +10299 10005 +12191 11982 +14805 10551 +13495 12094 +14908 13487 +15376 13232 +10819 10397 +12217 11298 +15842 10821 +14679 12173 +14869 12954 +14908 13342 +15502 14524 +14570 11986 +14572 11762 +13579 10299 +13873 10416 +16091 10185 +14908 11481 +14025 10721 +14098 11267 +15454 13184 +14709 10304 +13487 12185 +15376 11433 +14027 10693 +11540 10529 +13487 13341 +14259 14025 +14122 14057 +12889 12451 +12206 10423 +12896 11042 +13871 10257 +11982 11563 +14761 13851 +14704 10821 +11535 10551 +11938 11721 +15304 10529 +13862 10620 +14275 13930 +13796 11630 +15016 12884 +11042 11003 +14771 13264 +14908 12206 +13198 12223 +12389 10620 +15304 13487 +14952 11076 +14107 10874 +11726 10423 +14738 10245 +13796 12758 +13303 11433 +12704 11280 +14730 14107 +13198 12896 +14321 13495 +12448 11298 +15282 13770 +10304 10139 +10313 10299 +13342 11823 +13827 12899 +14275 12278 +14869 12705 +14524 13577 +16091 12391 +11603 10434 +12206 11278 +12953 11298 +11066 10800 +14100 11259 +11002 10930 +12544 11375 +10965 10208 +10800 10372 +13796 10693 +11193 10821 +15304 13931 +14843 14730 +14843 14307 +14057 10397 +14761 11057 +12523 10299 +13198 11413 +12191 11481 +13541 10647 +14696 13061 +12951 11111 +15024 13204 +10693 10154 +15370 10599 +15626 15024 +12854 10170 +15295 13871 +13987 12222 +15412 12266 +14747 10666 +11648 11376 +12892 11775 +11259 10140 +14553 11433 +11292 11283 +15376 14698 +13341 11057 +14747 10245 +15090 10299 +11719 10590 +14512 14108 +13303 12917 +13226 10299 +14588 12896 +10397 10257 +13970 12268 +13029 11563 +13244 10685 +15381 15016 +14057 13930 +10299 10033 +14730 10299 +14893 14771 +14730 12055 +14877 12197 +15411 11413 +11227 10551 +14107 11278 +13232 11140 +15380 11764 +15546 13731 +14193 13204 +15304 13204 +14718 14282 +10721 10185 +12339 12173 +15167 12916 +14685 10562 +12889 12264 +13342 13158 +10754 10225 +14831 10171 +14057 11233 +14738 10917 +14908 12992 +14730 10732 +15249 11042 +11540 10693 +12324 11298 +14371 12197 +14570 12264 +14783 12264 +11618 10620 +14576 13342 +13204 10849 +11259 10800 +15569 11259 +14819 12553 +14320 10965 +13303 11375 +14869 10849 +15570 11637 +15370 14685 +10245 10243 +10599 10423 +12197 11433 +14771 11721 +15249 11433 +13303 11292 +13232 13182 +13931 11042 +15412 10868 +15249 12478 +11042 10785 +13369 10299 +14122 10785 +15618 10693 +14831 13198 +14869 14712 +13061 11267 +15024 12992 +14893 10423 +14303 13127 +12851 10299 +13232 12892 +16133 13204 +14814 11775 +12965 11292 +11298 11278 +13415 11630 +12492 12174 +13198 10140 +11337 11267 +11292 11042 +14098 12339 +12149 10874 +14698 10590 +14468 13003 +12953 11057 +15304 11433 +12191 11453 +13196 10299 +12280 11292 +11637 10849 +15370 14570 +15862 14130 +14489 14107 +13930 10685 +10299 10237 +14530 10372 +13204 12173 +13495 10821 +12884 10792 +13785 10982 +14869 14314 +13485 10397 +15376 14831 +14648 12108 +12728 12523 +14222 13826 +16091 13244 +11921 10372 +13303 12889 +14730 13256 +13342 10721 +12278 11042 +12108 10990 +13424 10590 +14574 12217 +15370 11563 +14635 11624 +13930 10990 +14027 13230 +14771 13495 +13891 11066 +11298 10299 +12478 12016 +12478 10785 +10980 10620 +16091 10683 +14712 11057 +16101 14747 +15096 11066 +12954 10721 +12892 10466 +12902 11867 +13863 12854 +15304 13232 +13296 10535 +15070 10721 +12544 12320 +14553 10994 +13930 11027 +14627 14130 +12451 11977 +14656 12323 +13930 13891 +14130 10996 +14877 10800 +11775 10140 +14769 13541 +12954 10171 +15853 11336 +11278 10469 +14122 12264 +11977 11042 +14307 13495 +14100 12244 +14130 12708 +13303 12451 +12339 11433 +13931 11540 +14704 13303 +14828 12523 +14761 10431 +15167 14307 +16091 12884 +12945 11697 +16091 13232 +15249 10792 +15295 10397 +13487 10423 +15376 12191 +13204 11252 +12855 11630 +14057 13244 +13204 12992 +14576 10785 +12889 11648 +15295 10466 +14869 14635 +12206 10185 +14761 10329 +13055 13002 +15016 11267 +13303 10821 +15412 11775 +14747 11193 +13244 11721 +14057 10666 +11278 10529 +12197 11695 +12265 10721 +14487 10157 +15919 15153 +14689 11298 +11433 11146 +12320 11066 +12173 11066 +15376 10423 +13342 12278 +15550 14635 +13204 11996 +11775 11618 +13770 10551 +11076 10431 +12264 10693 +14193 11140 +15304 11140 +13433 11563 +13796 11977 +12982 12758 +14057 10325 +14588 10140 +13809 12339 +11697 10965 +14492 11540 +13931 11995 +11630 10005 +13367 12891 +14252 11292 +15380 10257 +13930 13502 +13369 11492 +13487 11618 +13796 11823 +13871 11637 +14679 10185 +14082 12223 +13495 11637 +15376 14100 +14307 10821 +13461 13198 +14576 10693 +10299 10139 +10821 10800 +15628 11618 +14027 12264 +13487 12451 +14081 10800 +15973 14893 +13495 12451 +12451 11433 +15478 12807 +14683 12094 +14987 12719 +13196 12087 +14893 14698 +15245 12704 +11995 10683 +14574 14492 +12855 12831 +12844 10139 +15412 12889 +14574 14100 +12339 10279 +12892 10327 +11996 11292 +14679 12264 +13931 12451 +14893 14843 +12494 11728 +14057 11423 +11996 11699 +15502 12278 +14783 11109 +13303 13296 +14082 10676 +14193 12892 +14831 10590 +13767 10247 +11259 10559 +14679 11982 +15074 11298 +15502 15412 +15919 14771 +14057 11193 +10965 10329 +11292 10257 +13196 11643 +15721 14895 +12094 11618 +10994 10747 +14524 11042 +14100 12264 +14635 13487 +16091 10819 +12992 10423 +14843 14635 +16353 15618 +15096 10185 +15016 13485 +14108 11067 +11146 10257 +14492 13495 +12478 12264 +15794 13873 +15257 10241 +15721 11941 +11481 11267 +13587 12266 +14107 10299 +14057 10157 +13898 13061 +12348 11953 +13715 12294 +12945 12391 +14689 10800 +12892 11292 +14229 12253 +15304 12945 +14696 11066 +14987 12855 +11898 10590 +13898 13204 +13029 11003 +15339 14895 +13158 12206 +13520 12173 +14683 11267 +15167 13898 +13851 10257 +13796 13244 +13970 11555 +12191 10994 +14512 11433 +13541 12108 +14122 13486 +14397 14307 +13198 11259 +13485 13244 +11292 11003 +13232 12244 +14025 12197 +11193 10792 +12278 10559 +15024 12266 +13485 10785 +13341 11267 +14321 11433 +14761 13204 +12264 10529 +13930 13296 +14492 11721 +12184 10170 +15016 14783 +15074 11423 +12324 10423 +16543 16429 +14102 13767 +12250 10257 +11977 11973 +11973 10434 +15070 14843 +14747 12896 +14107 10747 +14908 13232 +14303 11603 +15096 13851 +15070 14730 +15919 13577 +14718 13369 +13851 10397 +12266 12264 +14730 13105 +14307 10849 +15167 10800 +14893 11109 +13495 11042 +14576 10721 +13495 11726 +11697 10540 +11823 11433 +14747 11336 +15016 13871 +14321 14098 +14112 11986 +15554 13894 +15380 11618 +15304 14814 +12478 12250 +15070 10397 +13377 13244 +15861 13873 +14197 13763 +15374 10781 +14869 12953 +14524 11193 +14761 14112 +14635 12892 +13398 11790 +15356 13487 +14493 10551 +14321 12953 +13851 13342 +15304 14524 +13667 12324 +14679 11986 +14307 10785 +16133 13930 +15370 13232 +11433 10408 +13256 12992 +14107 13830 +11844 11555 +12898 12197 +13485 11423 +14122 13341 +12892 11603 +15376 10559 +15862 15798 +14908 13891 +14895 11643 +14122 10683 +14869 11525 +13244 12448 +11537 11433 +13771 10590 +14869 11638 +15167 11728 +13360 11618 +15295 11066 +13195 12544 +13667 11433 +13871 12339 +13198 11721 +14747 11042 +15709 13873 +14570 10615 +14761 11042 +14730 11375 +15074 10155 +13303 11726 +12494 12197 +14696 12278 +14107 12892 +16091 15043 +14842 12206 +14905 10590 +13933 11267 +13377 10990 +14689 13487 +14122 11150 +13796 12982 +12250 10154 +14683 12451 +14730 12896 +15016 14747 +13203 11973 +14986 11042 +14321 13541 +14986 13342 +13495 11423 +12917 12544 +14559 11833 +13061 11298 +14761 11298 +15370 14492 +12720 12321 +13204 12266 +12892 11995 +14100 13851 +12441 10397 +12184 11336 +14771 13244 +15153 14397 +12851 11492 +15356 12264 +11898 11423 +15376 12953 +15618 12758 +11823 10792 +15385 12737 +11423 10590 +12339 10561 +12197 10397 +15919 11066 +12992 12598 +13303 13029 +13061 11146 +14869 13495 +16588 12197 +14696 10590 +12889 10721 +10423 10299 +11996 10135 +15385 10551 +12191 10821 +12807 12719 +11433 10590 +14618 11200 +13970 13806 +11637 10466 +14831 10529 +13476 11413 +13303 11995 +14262 13930 +12278 11775 +11267 10171 +10994 10529 +15502 14730 +12175 11619 +15376 12992 +12851 10241 +13198 10469 +14150 13487 +13139 11057 +11511 11336 +14711 11433 +15304 12915 +15167 10361 +16651 12652 +14635 13158 +16091 10778 +12889 12478 +12822 10299 +14893 13871 +12339 11995 +13970 11844 +10926 10170 +14843 13931 +16091 14435 +12892 10994 +14112 12544 +14167 12784 +14307 10529 +14088 12649 +14275 12339 +14635 10994 +16091 11433 +15370 14524 +14321 12884 +13809 12882 +13501 11697 +14908 11921 +13851 11003 +15861 10139 +11292 10781 +13487 10849 +14057 10590 +11813 10304 +14397 13198 +14492 14092 +14730 11267 +14955 12173 +11898 11775 +11066 10965 +15249 14492 +15024 11126 +11481 10994 +12892 12266 +12323 10785 +14783 14512 +15356 11592 +10466 10408 +12807 10405 +12278 10599 +13495 12954 +11042 10466 +14570 11298 +13983 13244 +13930 13256 +14193 13577 +11775 11123 +13891 10721 +11267 10868 +13296 11618 +16091 12945 +14100 11433 +13930 12889 +14730 12951 +12992 11066 +15370 13891 +12055 10994 +11423 10268 +11278 11057 +11259 10171 +11643 11630 +15401 11042 +13303 10136 +13244 10620 +12641 11336 +14307 10792 +13830 11298 +12339 10540 +11618 11259 +14112 10647 +14709 11630 +14679 11140 +14057 11648 +14709 10170 +13184 11540 +14893 12889 +13105 10529 +11563 10423 +15502 11146 +11775 10423 +14683 12478 +14804 10299 +15389 14747 +11992 11337 +14273 11511 +14843 10140 +12451 12266 +16498 10478 +13290 11027 +11995 11123 +14816 12615 +14321 12191 +16353 12197 +12266 10581 +13564 11924 +13704 10917 +12953 10185 +12339 12264 +12266 11423 +13232 10800 +16218 14689 +12769 12087 +12478 12323 +12610 12523 +14013 10551 +13958 10965 +11057 10135 +10754 10053 +14709 10247 +11884 11278 +14057 10821 +14107 11450 +14125 13111 +11336 11053 +13158 11259 +14683 10194 +11844 11643 +15370 14831 +13710 12851 +13770 12853 +15167 14306 +12087 10299 +13502 12953 +16429 15167 +15618 10372 +16091 14006 +14303 10559 +10670 10154 +13667 11267 +12945 10781 +14738 10299 +13851 12339 +12191 11259 +13158 12953 +14485 12268 +15304 15024 +11193 11057 +13198 12889 +12222 10414 +14397 10325 +13829 11123 +14814 12945 +15579 13873 +11292 10849 +12868 12214 +14512 13295 +14559 10783 +12390 11193 +13851 10868 +14082 12265 +10990 10158 +15049 14102 +12954 10140 +15016 11697 +12191 11267 +13196 10313 +10581 10158 +13105 13061 +14397 11996 +14679 14570 +13871 11973 +15554 11227 +14761 13256 +12264 10581 +14125 13767 +14492 10785 +15096 10540 +13061 10198 +13487 10590 +12892 12012 +11003 10620 +11555 10299 +14570 11433 +12574 10171 +15323 10208 +12348 10980 +13487 11193 +13934 13863 +10170 10006 +15982 14893 +12197 11123 +13931 13303 +14842 11563 +15304 10994 +13930 10529 +14761 10423 +13830 11278 +14718 10299 +14307 11292 +10397 10279 +13655 10800 +15855 10613 +14635 11721 +13342 10423 +12720 10299 +14761 13931 +13342 13076 +14098 12264 +11109 10140 +14747 11292 +11764 10800 +14893 11638 +13871 10732 +14576 13296 +15862 12855 +15376 14570 +14683 12206 +12889 10713 +14306 10154 +10396 10247 +13931 12339 +15016 14771 +10721 10559 +14730 12223 +11433 11042 +13495 10397 +12339 12228 +14893 13296 +14685 14635 +14771 14457 +12953 10990 +12992 12266 +14908 13851 +14869 11278 +13198 10466 +15708 11646 +12441 11423 +13931 11618 +14831 12278 +14814 10781 +11423 11259 +14771 11618 +12815 12253 +15709 12704 +14270 12815 +12511 10590 +11122 10558 +15304 10683 +13851 12992 +10304 10299 +14747 14197 +14492 12892 +12953 11193 +11492 11227 +12889 12391 +13795 12264 +14908 13871 +12982 12402 +14307 11996 +14831 14057 +12448 11433 +15167 13507 +15376 10599 +12902 11283 +15249 14761 +13296 11423 +13367 12339 +10821 10540 +13204 12884 +13303 10792 +15049 10551 +12992 10693 +13520 12174 +13055 11646 +11057 10980 +11292 10821 +11865 11563 +14679 13936 +15502 11973 +14831 10849 +11259 10279 +14259 14082 +14905 10561 +12217 10693 +14492 11111 +14122 13891 +15041 10559 +14771 14262 +13930 13297 +14107 10135 +14275 10647 +14027 13290 +10551 10050 +14524 12264 +11618 10135 +13230 10208 +15304 10800 +13899 13196 +13894 11952 +12720 12294 +12945 10599 +14908 10397 +14576 10216 +14986 11433 +14842 11996 +14570 11193 +12155 10819 +11563 11233 +15370 13851 +12339 12323 +15096 10423 +13367 11003 +12892 10599 +13871 13232 +14679 14307 +11259 10713 +14457 10590 +14485 10299 +14468 10245 +14869 14113 +14831 11433 +15249 12339 +16091 12264 +14771 11259 +11003 10590 +13256 13061 +11267 11259 +14057 13964 +11331 11042 +15124 11844 +12155 10868 +12222 11618 +15427 12222 +10926 10299 +11630 11411 +12016 10299 +14275 11292 +12478 12441 +15708 12652 +14570 12892 +12745 11399 +14683 10299 +14986 12945 +14730 10599 +15793 15741 +15376 11292 +10599 10590 +12544 10693 +11996 11259 +14492 11764 +15887 12708 +12339 11146 +12992 12278 +13931 11697 +13076 11193 +12878 10821 +14321 10589 +14685 13204 +11259 11193 +14869 11298 +12264 11721 +12831 11227 +14783 12278 +11953 11267 +14492 10721 +13871 11725 +13296 11267 +14100 12173 +14730 10792 +12191 10397 +13930 11274 +11982 11140 +13200 12899 +14942 14088 +14869 10792 +14520 11203 +12191 11042 +13290 12896 +14477 13055 +14718 12807 +10599 10466 +12889 11775 +14570 13830 +14685 10208 +14122 13230 +11980 11921 +14683 12278 +13198 11726 +12191 11540 +14960 11278 +12323 10821 +14588 11193 +10693 10397 +13486 10397 +15323 14027 +13931 10185 +14893 10466 +14397 10397 +14831 14307 +12953 12339 +14570 10713 +13303 11721 +14747 10257 +14730 12544 +11540 10821 +14574 11764 +13367 11433 +13495 12280 +14307 13851 +12266 10980 +13667 11697 +12807 10304 +13851 12441 +14648 11493 +15731 11630 +14761 13303 +13303 11203 +11953 11066 +14747 10559 +14730 14685 +14683 14057 +15096 14025 +11241 10304 +15472 14856 +11445 10170 +13342 13198 +12992 11481 +12844 12268 +14524 14027 +14869 10559 +12878 12544 +12278 11973 +14397 10599 +12108 10613 +14107 10615 +12719 10551 +13682 11193 +16429 14307 +13942 10299 +10434 10216 +12899 11292 +12094 10397 +12132 11450 +11259 10781 +14689 10630 +13806 11630 +13158 11278 +14679 13502 +12953 12222 +12915 10397 +12708 10405 +11559 10299 +14576 10397 +12889 11980 +11643 11280 +13029 12953 +15304 14843 +13495 10279 +15721 12807 +12478 11042 +14082 13198 +14747 13204 +14100 11267 +14747 11637 +14783 10643 +15624 13931 +15607 10397 +15016 14122 +15478 11630 +11259 11111 +10785 10408 +14679 10693 +10721 10599 +14275 10874 +14683 14679 +11193 10135 +12945 11433 +15855 11764 +13342 11298 +11961 11728 +11630 11227 +15070 14321 +14761 11612 +11423 11042 +11259 10821 +13891 13232 +13244 12391 +14683 10185 +14783 12266 +14492 10693 +13851 13232 +14307 12191 +12195 10304 +13507 12478 +16091 11146 +13487 10397 +15370 14683 +13290 12339 +13303 10647 +14107 11775 +12945 10800 +14635 11292 +13873 10754 +14082 10397 +15554 13369 +14234 10304 +13809 12992 +13244 10140 +13127 10713 +15167 14711 +12709 10304 +13495 10299 +13487 10739 +14745 11879 +12896 10397 +14683 13277 +15167 13884 +14057 13024 +14574 11146 +14570 10666 +14492 11641 +11986 11278 +15412 15356 +12704 11845 +13873 12844 +15856 12652 +10272 10140 +15016 13198 +15624 13795 +14027 10158 +14574 10980 +12851 11227 +15163 14730 +14730 14574 +14122 13851 +13296 11540 +15016 11057 +14908 10599 +14730 11618 +16091 11540 +13505 12197 +11292 10221 +15478 10416 +13970 10225 +14880 13196 +13061 12889 +13342 13290 +13930 10683 +15295 11618 +14908 14893 +12841 10917 +11042 10693 +13487 11123 +13871 13487 +14307 13198 +15376 11721 +12266 12190 +14960 10821 +11298 10140 +13341 11027 +13930 13459 +13788 13244 +13296 10397 +12003 11563 +14831 12892 +14107 12391 +13891 11481 +13983 10819 +13244 10732 +13871 11953 +14574 12223 +14893 12888 +14696 10540 +13303 10731 +14492 12278 +10994 10257 +12855 12853 +11996 10990 +11042 10158 +15741 12773 +15934 13467 +11728 10154 +14831 12451 +14574 13230 +13487 12892 +13158 11540 +13032 12339 +11274 10590 +12323 10257 +14122 12544 +11003 10466 +11292 10136 +14730 10559 +14492 12917 +12884 12217 +15370 14986 +11041 10800 +14761 10627 +13204 10529 +11833 10247 +15016 11977 +13244 13204 +11659 11540 +15502 14112 +14783 12217 +13898 11650 +15016 13348 +12945 10994 +10817 10136 +11259 10849 +13158 10397 +14893 14679 +14131 13255 +12892 11540 +14122 10721 +14492 13485 +15376 13198 +14100 13232 +15323 12544 +14831 12280 +11057 10781 +13541 12391 +12173 10693 +12266 11193 +13936 12892 +14869 14633 +11630 10304 +13204 11109 +13487 12889 +13851 11049 +13341 13232 +14679 11481 +14783 12892 +13434 12719 +11337 11278 +13487 10647 +12455 10693 +12892 11433 +10980 10158 +15401 14814 +11267 10279 +11049 10693 +15249 14574 +11775 11423 +13485 13398 +14831 14107 +13290 11193 +11982 11298 +13303 11697 +14831 13232 +13987 10721 +12992 10821 +14843 11066 +10792 10185 +14893 12391 +11778 10397 +13061 12955 +13232 12217 +10917 10170 +13487 11278 +14107 11986 +16665 10423 +14771 10620 +15023 14679 +14321 11292 +13076 10397 +14783 11057 +12441 11066 +16728 10990 +14107 10257 +14986 11259 +14908 13230 +13290 10529 +14307 10599 +13931 12889 +16133 10685 +13232 12007 +11003 10800 +14027 12945 +12264 10868 +11697 11267 +14683 14635 +11986 11977 +14771 13303 +14893 10821 +14122 11996 +14027 12266 +13230 12266 +13290 10155 +11823 11415 +12992 11823 +14730 13290 +14307 11540 +14307 13891 +14122 12339 +14996 13931 +14747 14570 +14805 13873 +14679 13158 +14570 12758 +15293 10299 +11996 10994 +16682 12197 +14736 10800 +14679 12266 +14474 12615 +14942 11392 +13796 11057 +12853 11492 +11637 10397 +12855 12807 +10397 10135 +14100 10185 +13377 13127 +14856 13873 +10721 10558 +11986 10721 +15304 13230 +10990 10581 +14307 11267 +14761 14082 +12478 10185 +14046 11336 +12266 10713 +15618 13495 +13061 10868 +13984 12197 +15096 11618 +14831 11977 +15628 10589 +12982 12892 +13487 13486 +14262 11298 +15043 13061 +14570 12191 +15447 10800 +12635 10245 +14683 12889 +15041 13796 +14100 12266 +11884 11193 +14130 13894 +16091 10821 +13873 12822 +14869 13127 +14321 13230 +15016 13487 +16091 14397 +16101 10590 +14122 10693 +11140 10140 +15304 10647 +13342 11540 +13577 11150 +11278 10721 +14307 12889 +13851 11140 +10299 10245 +12769 11550 +13543 10466 +15016 12953 +14683 13204 +12451 12323 +10874 10140 +15919 15370 +12889 12544 +14685 12951 +11775 11298 +11884 11066 +12339 11274 +14256 12819 +12478 10599 +11298 10408 +11697 11140 +11445 10245 +13244 11122 +15304 14307 +14711 10821 +13061 12266 +12339 11066 +15245 10299 +15842 10135 +14112 13958 +14524 13796 +11563 11540 +13768 12807 +10800 10194 +13232 12197 +13495 12266 +13487 11298 +12441 11109 +13930 12173 +14893 10800 +13894 13579 +16218 13061 +14492 13851 +15304 12278 +11630 10039 +13061 10185 +14831 12982 +14635 14057 +13682 11267 +11996 11995 +13303 10268 +15380 12478 +12951 11298 +12853 12708 +14524 14107 +13303 11067 +13296 10172 +15380 11278 +15356 13029 +11298 11049 +15624 13303 +14831 13204 +12339 10599 +14683 13930 +12899 11563 +14027 13495 +14730 13198 +10676 10185 +14831 13061 +10397 10171 +13232 11376 +11618 11027 +11049 10868 +14683 12173 +11980 10821 +12265 10800 +14919 10245 +15798 12779 +14635 11986 +15754 12252 +12451 12197 +11996 10821 +12391 10819 +16729 12197 +11986 10693 +14492 11996 +13434 12195 +14100 12391 +14112 14082 +14543 11292 +14524 10466 +14869 13796 +11996 11252 +13520 13109 +14107 13931 +13930 10434 +10754 10139 +15304 12889 +13487 11563 +10466 10185 +15016 11905 +13487 13342 +13381 11630 +12889 12448 +14570 13198 +13891 11292 +14252 10590 +14698 14689 +16091 15295 +16428 14081 +11995 11721 +13930 12412 +13244 12339 +15709 11845 +14685 13871 +13851 13198 +13772 10299 +15861 15785 +14783 14112 +15618 14869 +13061 10155 +11977 11337 +14842 10728 +13032 12264 +14993 13087 +11721 10693 +15249 14843 +13851 12892 +11433 10713 +12197 11267 +11711 10140 +10414 10154 +13244 10800 +13871 12896 +14524 11337 +12598 11086 +14683 13296 +15167 13851 +10980 10135 +12191 10819 +15412 11697 +13360 11986 +13158 11973 +15628 14100 +13873 12807 +13076 12339 +14492 14122 +13830 10800 +12397 10577 +11376 10747 +15447 10965 +13485 10994 +13731 12250 +14112 12348 +14100 11697 +11697 11057 +12951 12149 +11630 10225 +14908 11292 +14771 12915 +11618 10185 +13894 12708 +16339 11844 +15412 15167 +13495 13121 +14307 13931 +11823 10599 +14747 10558 +13871 11721 +13061 10140 +10693 10135 +14576 11986 +12197 10792 +12348 12222 +14120 12185 +10821 10158 +15374 13105 +15249 13577 +14107 10713 +11481 10279 +12197 11193 +12615 10299 +14027 12889 +15785 12844 +12982 12478 +14252 11637 +14683 12953 +14908 10257 +13931 13246 +11921 10397 +14747 12217 +15024 11618 +14122 11884 +13891 13871 +11555 11550 +14679 11638 +12173 11433 +13487 11898 +13087 12892 +11953 10693 +11775 10397 +15412 11433 +15016 10529 +15624 12266 +12266 12012 +14492 12323 +13232 11292 +13244 11823 +11495 10693 +11618 11267 +15138 15016 +15370 11298 +13947 13244 +12391 10158 +13256 13198 +14492 11953 +15862 11227 +14487 11563 +13873 10304 +14771 11278 +14259 12953 +11298 10529 +13930 11066 +14771 10821 +15856 14477 +14794 12892 +12953 10140 +11298 11111 +14683 10423 +14050 10781 +13930 12478 +12266 10257 +13487 12953 +15304 12917 +14685 13303 +11233 10620 +13342 11259 +11986 11973 +14493 10299 +13770 12831 +12320 10581 +11057 10599 +14711 11721 +15706 10559 +15356 14082 +15304 11986 +14635 10158 +14487 14057 +12889 11697 +14635 10599 +16091 11066 +11721 10721 +13198 11977 +14122 13296 +11278 10713 +15882 10154 +12264 10431 +14193 11298 +16091 13898 +15016 14397 +13863 12721 +15167 11587 +13204 11057 +15124 14559 +14771 11057 +13290 11298 +12339 11624 +12831 12709 +14112 11193 +11995 10874 +10927 10785 +11278 11003 +14893 14321 +13495 12206 +14539 10721 +12478 10559 +13244 11066 +15016 14683 +12953 11267 +14685 10469 +10423 10194 +13277 11057 +15016 14100 +14683 11150 +13303 11057 +13541 10535 +10874 10693 +12953 11481 +13230 10158 +11555 10416 +13619 10529 +13342 12888 +14745 10620 +10933 10158 +15304 14112 +12191 11618 +10747 10423 +12719 10996 +14869 10721 +11555 10241 +14492 13891 +14081 10511 +14120 10409 +13303 10732 +13781 12932 +12953 11982 +13198 10562 +13277 13072 +12266 12191 +14679 10590 +14635 14193 +13461 10819 +13891 12478 +15618 11146 +14534 11292 +14730 13303 +12953 12264 +12635 10243 +14871 11198 +12197 10431 +11086 10559 +15601 14283 +14761 12119 +15016 14057 +14574 11823 +13244 12992 +16133 10268 +15412 11789 +15422 13772 +14718 14234 +13851 11726 +13377 13303 +14843 10540 +14259 12197 +13487 12156 +12899 11775 +12339 12266 +11869 11695 +13796 13295 +15934 15406 +15245 11845 +14711 13230 +15741 12983 +15581 12621 +14100 13139 +14512 10713 +13715 12321 +13830 12174 +12266 10372 +11833 11007 +14492 12390 +11637 10155 +15785 10754 +15016 12264 +14843 13796 +15304 10620 +12264 11921 +14553 13667 +14893 12278 +15250 15063 +15478 12087 +15370 11140 +12899 11663 +16091 13881 +14262 13487 +13933 10540 +13487 10529 +14112 11537 +14576 14107 +14524 10990 +13830 10299 +14718 11492 +14843 11618 +11697 11278 +14570 10620 +15412 14107 +13342 11995 +14100 12951 +12197 10647 +15919 12953 +15016 10849 +13891 13495 +14814 12951 +16091 12339 +14492 14307 +15016 10185 +13930 11982 +14761 11193 +14028 12523 +13204 11624 +12451 10800 +14683 11433 +14321 11057 +13127 10466 +14122 11042 +15785 10139 +14685 11973 +15887 13770 +11111 11027 +13061 12954 +15887 15282 +13061 10747 +14057 12173 +13487 11109 +11267 10693 +14288 10800 +14512 13930 +11789 11726 +13931 11996 +10990 10529 +13342 12266 +14771 10732 +15045 14747 +15304 11697 +13303 10299 +14275 13061 +13061 10397 +13871 11638 +15096 10397 +11823 10721 +13198 10590 +11278 11027 +14747 12819 +12992 11697 +13244 11140 +11109 10466 +12197 10434 +14730 10140 +14783 13930 +12264 11140 +14193 10693 +14057 11618 +13244 12917 +12264 11027 +11973 11823 +14122 14027 +15376 11540 +11618 11603 +14004 10994 +16696 14709 +12896 11298 +15862 12853 +13290 10466 +13398 11193 +15096 12478 +12191 10599 +14747 13230 +11067 11003 +15579 12184 +13931 11433 +14761 11996 +10666 10590 +14125 13970 +14696 11995 +15096 11764 +15016 14307 +12953 10155 +16218 14107 +13204 12451 +15376 12478 +12917 12892 +14100 10721 +15016 11066 +10994 10599 +14057 11198 +13296 12391 +12896 11775 +15070 13204 +14109 13241 +15167 12574 +10559 10529 +14679 12965 +15167 11975 +11433 10434 +14122 12915 +14893 13796 +15376 15016 +11057 10590 +11603 10990 +15045 13587 +12478 11292 +13796 12892 +13891 10140 +13796 11638 +13487 11027 +12478 11503 +14831 12206 +13891 13796 +15570 14197 +13422 11996 +12889 11376 +12007 11834 +11986 11042 +13061 11430 +14709 10299 +13244 10198 +14683 13158 +12758 12174 +11697 11481 +15024 13487 +12206 11540 +13487 10693 +15016 12954 +14307 11823 +14842 10423 +14524 10185 +11764 10654 +13931 12945 +14633 13342 +14869 11109 +14574 10819 +13970 11550 +14783 12992 +12222 11899 +13830 11292 +10800 10140 +13501 11624 +14107 12917 +13987 12397 +14730 11481 +12171 11997 +10792 10590 +16091 11697 +13541 12250 +14831 13487 +12264 10994 +11292 11109 +11697 11109 +14761 10158 +14831 10868 +14524 12266 +14321 14027 +14683 11603 +13871 12892 +14696 13244 +12721 10245 +12953 12945 +13244 10423 +15295 13577 +14814 12278 +12889 11122 +15376 14747 +14524 14100 +15412 13061 +13930 13344 +14761 12945 +12878 11292 +13667 11193 +11423 10599 +14122 11953 +11555 10551 +15618 11637 +11697 10529 +11986 10257 +13898 13464 +16091 12266 +14321 12323 +13290 10423 +13256 10747 +15282 14718 +13461 11259 +15709 11941 +11986 10994 +14100 10800 +14730 13342 +14576 13931 +14771 11140 +10785 10257 +14193 12191 +14635 12992 +14843 10599 +13232 11456 +13796 10529 +13487 12323 +15167 12892 +14321 12197 +14524 11986 +13931 11298 +14893 11898 +13244 11973 +14107 13930 +14122 13487 +15249 11066 +15991 14747 +14831 14050 +14107 13851 +13461 10400 +15167 11675 +14492 12889 +15721 14856 +10721 10299 +14027 13891 +10868 10397 +13781 10198 +14986 14100 +13307 10397 +11259 10792 +12892 10874 +14893 14831 +12951 10713 +15245 12822 +14262 12953 +14853 13983 +15554 12831 +11995 11641 +13244 12451 +16668 14709 +14262 13540 +13931 11066 +11066 10158 +15370 12896 +14635 10194 +11481 11292 +12544 11066 +13541 12478 +14965 14905 +12478 10994 +16091 11086 +13487 10713 +15991 12523 +13198 11193 +15074 13495 +11977 11298 +15295 13463 +11388 10299 +12709 10299 +13873 10170 +13344 10590 +16133 13244 +13204 11697 +14485 11411 +14635 14576 +12591 10299 +12944 11728 +13577 13487 +14905 10994 +10693 10540 +13851 11973 +14711 10792 +13796 12206 +10423 10185 +15554 10551 +12878 10529 +11995 10257 +14718 11550 +13770 11630 +10693 10685 +15282 10551 +15016 12323 +13891 10617 +13541 13398 +13198 10821 +12945 10279 +14307 13930 +12889 11193 +14730 14683 +11267 10781 +13296 11641 +11995 10559 +15096 14027 +11995 10135 +15412 12278 +13277 11603 +15167 11123 +13851 12217 +13198 10599 +15153 12264 +14965 13891 +15304 11721 +14259 13487 +14635 14100 +12294 12184 +11067 10821 +15374 10216 +14125 14102 +13767 11555 +11834 10171 +11630 10245 +10713 10559 +13930 10599 +14107 10194 +13296 10434 +13829 11823 +11433 10581 +14698 13891 +16091 12278 +13244 11726 +14559 12235 +15016 10874 +14771 11123 +12266 10792 +12889 11986 +13303 12951 +15096 11042 +11975 10154 +14683 12264 +14193 13158 +12266 10620 +14112 11995 +11630 11007 +13295 10713 +15167 10372 +13767 10299 +13151 13061 +15861 10754 +14711 12884 +13930 11067 +13931 11278 +16390 13467 +15323 15295 +15919 11823 +12173 11884 +13367 10397 +14570 13476 +13397 10299 +13434 12087 +15570 12187 +14576 13204 +12916 11764 +14771 13851 +14683 12211 +13198 11884 +13369 11643 +12621 11007 +13505 12222 +14986 11996 +12954 10194 +15376 10136 +12339 11996 +11834 10868 +10423 10257 +11298 11140 +11540 10279 +14683 13105 +15041 12892 +14683 10693 +12264 11973 +14711 11641 +13930 11775 +15096 12264 +12638 10245 +14683 13230 +14986 13930 +12719 11550 +14689 11603 +14747 14252 +13931 10423 +14711 10990 +14122 13184 +10821 10466 +13930 11921 +11563 11109 +14570 14122 +14869 10397 +13809 11540 +14524 12917 +11603 10466 +12889 11003 +15008 11775 +14492 11066 +15411 12266 +15842 12324 +11315 10627 +11778 10599 +12854 10324 +12576 10747 +15096 10849 +15010 11721 +14512 12324 +14635 11042 +13495 12951 +14107 12211 +13851 12391 +13198 10785 +13256 12264 +11884 11563 +15502 13230 +15304 11259 +14747 11977 +12807 12087 +13487 11057 +13796 10140 +14679 14512 +14307 12323 +14635 14307 +15847 10540 +11492 10551 +14109 11298 +13461 13061 +14307 13232 +16479 12222 +12889 10423 +15570 11193 +14869 13076 +14553 12478 +15570 13433 +14627 12653 +13871 13342 +13931 13461 +14004 13949 +12831 10299 +14474 11630 +13894 12184 +16091 12197 +15016 11725 +14524 10599 +14908 12889 +12339 10590 +14082 13230 +11563 10408 +14588 13303 +10874 10821 +11833 10938 +15096 12451 +11259 11057 +10599 10562 +14100 14082 +15070 11278 +14275 11066 +14831 11921 +13487 12878 +14635 12915 +11540 11057 +14856 14805 +14679 10397 +11986 10747 +15282 11492 +14314 10713 +15167 14996 +13487 12758 +11555 10170 +12641 12638 +15273 12884 +13947 10581 +14397 13577 +13873 12704 +15096 13296 +12264 11764 +14100 10685 +13342 11292 +14843 14122 +13486 11648 +14576 13487 +14685 11278 +11433 10469 +15861 12268 +11298 11003 +11433 10158 +15096 13303 +13796 11603 +14730 13930 +11399 10011 +11612 11433 +15731 11214 +12953 12896 +14492 13487 +14730 10990 +13873 11643 +14908 13830 +15721 14234 +14321 10821 +12855 10405 +14747 14107 +14107 10279 +13871 12889 +13863 12743 +15412 14524 +11996 10721 +11433 11278 +14268 10299 +15085 11550 +13398 13121 +12896 10140 +15881 13196 +14307 12339 +13198 12892 +11977 11618 +14908 10140 +12889 10918 +15295 13487 +14869 13871 +12324 11193 +13891 13076 +14057 10559 +13303 11111 +14730 11298 +14696 12451 +14880 10304 +16133 13061 +14761 11732 +14122 13930 +14704 12264 +15370 10713 +14730 12884 +12217 11996 +14100 11481 +14570 11057 +14635 11423 +14131 11057 +11433 11337 +15167 11066 +14761 11986 +12171 10299 +13303 10298 +13487 11630 +11433 10135 +14683 14524 +12891 11298 +14831 11057 +12892 12402 +12173 11278 +13930 10540 +14843 13296 +14683 14321 +15624 13277 +11267 11123 +14869 10561 +14783 10397 +11867 11292 +13230 12264 +12866 12721 +12953 10423 +14107 10208 +15304 14679 +14869 14457 +14771 11066 +13029 12878 +16742 13461 +12511 11298 +14252 12892 +14794 11292 +15085 10551 +10713 10257 +15249 13461 +13127 10792 +14747 10194 +11563 10185 +13204 10721 +14843 13930 +12841 12663 +14843 12278 +14696 11996 +13344 11433 +13076 11057 +14771 10874 +13256 12889 +14696 10423 +13487 13211 +13930 11123 +13507 11618 +14122 12917 +14802 14761 +14816 12868 +15374 12451 +12264 11728 +15919 11278 +13244 12197 +13891 11298 +14487 10800 +12819 12253 +12748 12294 +11603 10155 +13061 11540 +11721 10590 +11027 10821 +12758 11292 +13830 12758 +14987 10996 +12917 12339 +14576 10994 +11111 10185 +14100 10423 +13898 12478 +15862 12831 +11042 10994 +12641 10170 +12184 10299 +13158 11433 +15370 11193 +15096 12889 +10299 10247 +13232 10267 +15167 14648 +14689 10140 +16091 11109 +10775 10299 +11833 11463 +11540 11086 +16091 11067 +11996 10693 +14100 11961 +12478 11982 +10257 10154 +12278 10257 +13434 11555 +15454 15016 +14512 13198 +12953 11337 +14275 12206 +11823 10171 +12892 12094 +10800 10397 +12737 12709 +12184 11555 +14761 10980 +13731 10589 +15249 11953 +14730 11433 +13894 11336 +15030 10154 +15502 12266 +14100 13667 +12892 12441 +15502 12390 +11540 10185 +14843 12478 +14747 10693 +11721 10821 +13485 10559 +11697 10158 +12951 12339 +12523 11997 +14633 13930 +13232 11540 +12953 10466 +13232 12339 +12214 11630 +14588 12889 +15249 10409 +11298 10397 +13198 10666 +15919 11042 +12264 11233 +13418 13232 +14709 10775 +14709 11555 +16498 12391 +13109 13034 +11695 10800 +13579 12851 +14574 14524 +12945 12264 +12264 11423 +15376 10713 +14570 12878 +14802 11027 +11775 10713 +12323 11697 +15862 12851 +12953 10590 +12266 10299 +13061 10838 +11392 10245 +12769 10304 +14718 13894 +15370 13244 +14738 12321 +10778 10747 +14696 11042 +12807 11227 +11618 10581 +13244 11337 +15842 13930 +15020 12197 +15282 12831 +13184 10158 +12448 12266 +12889 11298 +12339 10135 +14843 13891 +10599 10146 +15887 12855 +15016 12889 +11630 11036 +13277 10599 +15295 10216 +14816 13434 +10821 10731 +14648 10257 +14321 10800 +13546 11884 +12954 11049 +11618 10423 +14893 14057 +15096 12917 +11555 11511 +15249 14730 +14802 11899 +14574 12953 +13851 11027 +13198 11540 +14004 12892 +15249 13303 +12954 11495 +12451 10874 +14744 14314 +14877 14736 +14057 12954 +12217 10397 +15356 11697 +15304 10466 +15153 13244 +14877 11433 +14524 11433 +13577 10135 +15356 10397 +14013 10754 +14679 11233 +13796 12094 +15624 12889 +12197 10821 +14814 13198 +14100 11298 +15167 12889 +15085 13434 +15618 14081 +14057 10257 +14843 11042 +15412 15016 +15023 10466 +13277 12953 +14130 12853 +11883 10540 +13232 11986 +13244 10469 +14730 14635 +14683 14107 +15096 10599 +14683 11823 +16724 15167 +13303 10466 +12992 11298 +12889 11098 +13796 10423 +11648 10800 +11775 11193 +14307 10800 +14709 10033 +11267 11066 +13791 12917 +12889 12280 +14057 12391 +13931 13232 +14761 12264 +15282 12708 +11823 11337 +14193 13485 +11041 10590 +13198 11433 +13461 12339 +14696 10562 +14711 11003 +12892 10732 +16311 10551 +13290 11067 +11481 10721 +14730 10423 +15249 11259 +14747 11638 +14112 11996 +15376 11057 +14524 10257 +16091 10171 +12321 10551 +13667 13303 +11711 10821 +14635 13244 +13105 10868 +14635 10397 +13341 10721 +11563 10155 +11298 11109 +13485 13076 +12945 10194 +15570 15057 +14730 13796 +14512 10559 +13767 12844 +13931 11259 +14747 12003 +13232 11884 +11336 10372 +13487 13485 +13232 10693 +15304 10562 +12266 11057 +15618 13424 +11066 10397 +12889 12339 +15282 13710 +13884 11764 +12087 10304 +15919 10185 +14512 12953 +14576 14321 +16133 14761 +14013 12807 +14986 13931 +15016 11308 +12235 10184 +15167 14704 +15070 14307 +12954 10590 +14938 11641 +14843 10781 +14877 11292 +14492 11140 +12899 11980 +14122 13796 +11481 10821 +15887 12831 +12884 11433 +12391 11986 +11638 10821 +14761 11775 +11637 11298 +12278 10140 +15304 12217 +15167 13599 +14252 13891 +13851 10781 +13930 13221 +11109 10423 +13930 10372 +14397 10216 +15785 14895 +13796 11986 +11721 10994 +12055 10792 +15091 12782 +13587 10821 +10416 10299 +14027 11540 +13715 12720 +15304 13341 +15427 10670 +12953 10785 +14108 11109 +13871 11067 +11278 11146 +12184 10085 +15024 11298 +14843 13158 +14718 10416 +13871 11603 +15570 10559 +14092 13303 +12339 11973 +14112 13341 +11193 10423 +11764 11066 +13871 10693 +14831 12889 +14627 10304 +15048 10685 +14570 11603 +13303 10615 +14893 14576 +12889 10279 +12278 11283 +11042 10198 +15041 11292 +13873 10551 +16479 13731 +11423 10558 +15295 14869 +14812 11097 +15370 10185 +11996 10194 +13930 10721 +12884 10819 +15153 11111 +11433 10792 +11618 10434 +14908 11721 +15370 11884 +14672 12892 +14747 14512 +15381 11823 +11624 10397 +15447 14530 +13930 10874 +11433 11193 +10713 10140 +15376 14122 +11977 10874 +13495 13367 +14492 13232 +11641 11146 +14635 10693 +11298 10372 +14831 10561 +12884 12278 +14122 10299 +15323 11973 +15295 10581 +14730 13577 +11540 10615 +13204 10540 +15091 10170 +14712 11695 +15624 15412 +13282 12119 +13342 11057 +14893 11986 +15049 11630 +14524 12391 +13930 12323 +14397 10821 +15919 11292 +13303 12478 +14730 13931 +14524 11146 +15016 12266 +11140 10171 +11673 10185 +13232 10721 +12755 12653 +13204 10434 +15074 11726 +14771 14100 +12094 11921 +14633 12892 +11884 10721 +10792 10423 +14880 10996 +14711 11066 +14275 11415 +12206 10194 +14050 14027 +12264 10397 +16741 15323 +14100 12945 +13024 10999 +15070 14027 +12250 10613 +15376 15370 +11921 11298 +15440 15010 +14100 12544 +14057 10558 +15016 10994 +11980 11563 +12264 10683 +14275 13105 +15304 11066 +14570 14524 +14122 13931 +15153 10185 +15971 14893 +15070 11618 +13360 13303 +13936 12028 +15794 10640 +14262 14057 +14474 10299 +13487 11111 +14771 10561 +12478 10299 +11150 10747 +12748 10299 +16091 11637 +12992 11193 +13061 10194 +14551 11630 +15412 13244 +15412 12898 +14804 13970 +15376 11884 +14307 11003 +15070 11259 +13461 11764 +15794 15478 +13127 10666 +14805 10299 +11413 10140 +14696 12896 +12953 10874 +14576 13232 +14122 11995 +15167 13303 +13983 11612 +13029 10185 +13495 12478 +11433 11003 +11921 10140 +13873 11317 +12214 10299 +12264 12197 +13851 10194 +11109 10136 +11027 10693 +13579 10551 +14893 13342 +13495 11259 +15016 10747 +14747 14492 +13796 13341 +12007 10868 +13360 10800 +13577 11278 +13891 11638 +15016 10257 +14893 13487 +11423 10800 +15086 11280 +11053 10245 +14492 13204 +14679 10980 +13930 11233 +12217 10581 +15862 10241 +13076 11278 +11298 11066 +15153 14853 +14679 11973 +10783 10184 +12953 10994 +12769 10299 +12451 10676 +12559 10431 +11433 10423 +12055 10676 +12892 11233 +13158 10140 +13871 12264 +14771 14570 +13029 11042 +15370 14908 +12206 10397 +15618 12363 +11726 10155 +12638 10299 +12003 10466 +14102 10775 +14633 11563 +11292 10397 +14730 10800 +14259 13297 +11618 10529 +14908 14696 +13367 12451 +10874 10257 +14273 14119 +12391 11292 +16133 11415 +14843 11126 +11823 10135 +13795 11617 +11728 10800 +10990 10821 +13303 13244 +14574 11111 +14098 11057 +11884 10693 +13630 12222 +12945 11150 +14570 10590 +10849 10423 +12992 10713 +13487 11719 +14814 10590 +14321 13342 +16723 10299 +14524 13667 +14397 13121 +12278 10466 +11697 11193 +14570 10721 +15579 10754 +14895 11941 +12898 11697 +13629 10299 +13851 12544 +11995 11433 +12264 10647 +11977 10141 +11278 11140 +14027 11042 +11028 10996 +15323 11697 +11042 10423 +12892 12206 +10535 10154 +13851 10693 +13303 11259 +13796 11721 +13204 11884 +14539 12197 +13830 10849 +12264 10933 +15798 12851 +13577 10781 +15412 11292 +14057 11921 +12915 12278 +14107 12191 +13485 10558 +11995 10562 +12721 10299 +11697 10821 +14635 14122 +12265 11193 +13871 11540 +11721 10965 +14576 12451 +15167 12265 +12339 10747 +13871 13244 +12478 11057 +15167 10135 +14570 10792 +14877 11961 +12324 10721 +15167 10815 +11833 10775 +12191 11292 +10299 10170 +15481 11834 +14197 10397 +15919 13930 +14761 13360 +11641 10158 +15427 10535 +15472 11630 +13061 11042 +12523 12171 +15370 12451 +13195 10620 +12954 12191 +14685 11042 +12197 11899 +11637 11292 +12954 12819 +14570 11996 +14952 13487 +10713 10397 +13184 12889 +13795 10868 +14262 12478 +14100 12323 +13296 10713 +15304 12892 +13377 12266 +15376 14908 +14321 10577 +12391 11042 +14635 13931 +14576 11057 +11973 11049 +14730 10821 +12264 11725 +11512 10299 +14869 13303 +14908 14057 +14986 14098 +13806 12268 +12892 10868 +14747 13796 +13796 11540 +12954 11603 +14730 11540 +14574 13244 +15412 14679 +14683 10747 +13577 12898 +14062 11545 +14492 13796 +14524 10785 +14307 12222 +13851 11109 +14679 10713 +12278 10721 +11618 10279 +15370 10397 +14108 10590 +12323 11423 +12214 11643 +11278 10980 +14771 11921 +15472 10754 +14771 14576 +15502 12945 +11823 10397 +13296 11278 +11995 10466 +12982 12266 +12197 11618 +14057 12953 +14771 12094 +14679 11123 +14570 10693 +15167 11278 +14273 10299 +12184 10917 +13495 10590 +13851 10800 +14122 10590 +13433 11637 +13204 11921 +11540 10800 +13461 11481 +13198 11423 +14831 14530 +14492 14027 +13127 11603 +12574 12078 +14683 11697 +13851 10590 +12190 11961 +13619 12884 +13486 11869 +11973 11540 +14831 11259 +11697 10185 +14122 13032 +12197 11174 +12953 12915 +11899 11728 +11844 10551 +15257 11227 +11540 11433 +11643 10783 +13296 12889 +14738 11336 +14627 12195 +13303 12915 +14771 14689 +12441 10257 +14122 12391 +13891 10423 +16218 10397 +13970 10033 +13485 10620 +15370 10194 +14635 12544 +14696 12264 +13087 12889 +11879 10620 +12853 12851 +16428 12745 +10299 10039 +10397 10140 +11140 11049 +13303 12945 +13796 11109 +11540 10792 +14843 12953 +14108 11433 +14814 10397 +13418 12197 +12197 10198 +14683 12266 +14627 13369 +15356 11066 +11624 11057 +13360 12339 +14193 13198 +10925 10221 +13367 11423 +15096 12391 +12451 10431 +15618 12264 +15257 10304 +12892 11066 +11292 10279 +11423 10423 +13303 12324 +13736 13303 +16441 15167 +14397 11292 +14679 11618 +13342 11697 +14489 11563 +13342 11109 +15919 12339 +14627 13434 +14783 12889 +15370 11292 +14524 12339 +12012 11298 +15153 14107 +16091 11150 +13232 10325 +11867 10590 +13796 11423 +15096 12266 +10747 10397 +14814 11259 +14869 11193 +14321 10792 +13204 12953 +15412 14082 +11563 11298 +15919 11721 +15412 12055 +15481 10599 +13485 11057 +13495 13422 +14122 13198 +14321 11193 +10713 10599 +11057 10800 +15861 10247 +11214 10247 +12266 10994 +14691 10559 +13495 12896 +12708 11555 +13127 12892 +12087 11643 +13796 12992 +14730 11423 +11775 10279 +12953 11697 +14730 14570 +14771 12191 +13256 12598 +15624 13244 +15293 13770 +13256 12266 +12819 10926 +14685 14027 +14492 13871 +14730 11630 +14131 11267 +12719 12709 +13871 11066 +11699 10994 +11150 10693 +15167 14081 +13434 10304 +15282 10299 +10950 10272 +11278 11066 +14747 14262 +11298 10136 +14193 13422 +13871 11980 +13873 11941 +12451 11298 +11423 10408 +16498 11618 +11618 11252 +13796 10299 +13342 10731 +14234 11280 +13851 10185 +12264 11066 +12889 10327 +13476 12892 +14092 11995 +14057 11540 +14125 11630 +15027 14843 +12370 10938 +14113 11603 +11618 11298 +11728 10158 +15626 12553 +12889 11869 +14843 10529 +14831 14683 +14679 13244 +14492 10172 +13277 12266 +15709 14805 +14672 10327 +11555 11336 +14711 14574 +11278 10154 +12266 10721 +11563 10713 +13667 11995 +11986 10208 +14908 11423 +13942 11941 +15012 11336 +15016 10821 +14424 13796 +14905 14683 +14908 11278 +13830 12173 +14785 14730 +14730 10781 +11603 11563 +12003 10849 +15016 13495 +15023 14905 +12391 11259 +14100 10397 +14100 13244 +14524 10874 +14570 12954 +13970 10775 +11066 10529 +15245 14805 +15478 11941 +11540 11150 +13303 10819 +16567 11445 +11278 10208 +13244 11003 +10868 10562 +13930 13211 +14869 11086 +14107 12544 +14057 12992 +14771 11977 +14295 13002 +11057 10821 +14802 12197 +12339 11042 +15919 10599 +14275 12264 +13342 12953 +13898 12892 +12953 11292 +11066 10994 +13577 10158 +10781 10397 +11278 10821 +14054 12956 +12191 11278 +13139 11995 +15709 14102 +16091 11719 +14275 11986 +14307 14057 +12003 11292 +13873 13434 +12892 11898 +13230 10185 +15919 10821 +14570 11267 +12191 11423 +13230 10397 +14805 11941 +16133 13577 +11028 10551 +15502 12223 +11540 11267 +11027 10423 +14307 13230 +13851 10423 +15304 11267 +11764 10372 +10800 10559 +10849 10800 +14193 10146 +12992 11278 +10683 10408 +12094 11097 +14262 14122 +14107 10140 +11097 10620 +14831 10257 +13487 12335 +12478 10868 +13931 11267 +15370 13525 +14122 12494 +11146 10868 +14683 12197 +14908 11066 +14082 11003 +13796 13342 +14871 10559 +13244 11986 +12807 11630 +12599 12197 +15167 10569 +14893 13486 +14262 11638 +12889 12217 +14237 14081 +15249 13987 +13894 10551 +15569 12266 +11298 11067 +14234 13369 +14524 14122 +12266 10693 +15016 14893 +14457 11122 +15041 14771 +11995 10208 +11057 10434 +14679 12982 +15374 13204 +11540 10747 +13830 12264 +14576 11697 +15163 12119 +11298 10781 +14122 10558 +14100 12278 +13232 10559 +14321 12917 +12264 11617 +14100 10434 +11618 10558 +14107 10982 +14050 12124 +15048 11057 +14633 14520 +13487 13232 +13770 12709 +15236 11036 +11433 10721 +12758 12173 +13830 13796 +14485 13942 +14869 11481 +15370 12191 +14524 12191 +13367 11995 +13244 10792 +14570 13871 +15124 14474 +11066 10693 +14685 10135 +14893 14100 +12323 11057 +14761 13367 +15153 13061 +11973 10423 +14730 14321 +14234 10551 +15070 13577 +14771 10257 +13487 12945 +15323 11146 +11193 10945 +14107 11042 +11150 10466 +15295 14730 +14771 13891 +14908 10693 +11259 10298 +14618 13198 +14492 14193 +12264 12108 +12621 11630 +13204 10146 +15070 13303 +12915 11995 +15167 10257 +11278 10785 +15370 10747 +14685 11540 +14698 10423 +15502 12264 +14814 11995 +13461 12889 +12615 11630 +14057 10299 +14107 13204 +15570 10466 +14696 11109 +13487 11423 +12390 12323 +13541 11961 +13296 11259 +11503 10397 +14679 10994 +11298 10792 +14646 10849 +14130 13770 +13796 10397 +14893 11298 +11995 10994 +12892 10620 +15412 13204 +13244 10529 +11292 11267 +11764 11123 +14685 12915 +14576 12339 +11413 10599 +14057 14054 +11298 10821 +13771 10800 +10800 10561 +12441 11921 +14828 14747 +14275 10431 +11456 11193 +12953 12197 +13987 10154 +13871 10713 +13487 10792 +14321 14100 +15376 14524 +13415 13381 +11697 10423 +15427 12197 +12055 10372 +13894 12851 +13158 10781 +16091 13464 +14679 13303 +14570 12889 +12932 11728 +14057 10930 +12758 12402 +15570 11292 +15458 11522 +11140 10800 +15618 13540 +12917 12217 +14057 11278 +13942 11643 +11057 10397 +12523 10204 +15096 10158 +11267 10194 +13599 12397 +10208 10158 +13851 11433 +14627 13770 +15502 14108 +15344 13891 +14321 10529 +11298 10785 +15798 10299 +15096 12953 +11292 10466 +15356 12878 +15016 12191 +14107 10559 +13487 10372 +13244 12478 +14635 13342 +15045 12134 +11986 11013 +14955 14582 +13244 11433 +14574 12264 +13871 10620 +14683 13127 +16091 14730 +13461 13377 +15376 12889 +14474 11643 +13198 11638 +11066 10713 +11049 10599 +14856 11555 +11947 10980 +14588 14107 +11921 11563 +15618 13898 +12676 10551 +14467 11603 +11997 11619 +13715 10245 +14761 12917 +14107 11977 +14685 10397 +11986 10158 +13871 11203 +14744 14107 +14576 12264 +11996 11977 +14633 13244 +13303 11049 +13230 10747 +13232 12278 +15304 11123 +15249 13795 +12222 11764 +11721 11013 +13947 10946 +14893 14027 +15919 13232 +14814 11433 +15579 15478 +16643 12197 +11259 10423 +14275 12953 +13342 12896 +12339 11775 +14197 11298 +15356 14492 +13198 12207 +13277 12951 +14130 12851 +14306 10721 +11292 11259 +13541 10721 +14182 12197 +13485 10529 +12721 10278 +12264 10785 +11986 10466 +12902 10590 +13303 12953 +11563 10849 +12831 10304 +13244 10693 +12451 10146 +14685 10994 +15887 10551 +12391 10540 +16588 12108 +13232 10155 +11695 10849 +13061 11252 +14730 13230 +14635 11540 +13418 11456 +14576 13230 +14869 12173 +14908 11123 +14457 13930 +11641 10397 +13230 11921 +12294 11336 +12951 11921 +12278 11259 +11433 10819 +12339 10434 +11423 10874 +13795 13397 +14679 12206 +12807 12709 +15502 13871 +14492 13230 +16091 10693 +14689 10559 +14747 10140 +12278 11618 +12892 10372 +15027 14524 +12992 12889 +15249 13931 +12007 10599 +12945 12884 +15842 14122 +13851 13296 +12451 11986 +15016 10744 +15016 11986 +11292 10272 +11695 10661 +10792 10747 +13830 12402 +14057 13487 +14122 10599 +13360 12451 +14553 11193 +11697 11146 +11298 10279 +14986 11995 +15167 14182 +16720 11630 +13851 11298 +12945 11726 +11233 10721 +14122 11140 +15249 10821 +14771 14674 +13485 11278 +14635 10146 +14524 12451 +13200 11292 +14081 12197 +14843 11057 +11618 10329 +12451 11066 +11267 10257 +13204 11086 +12195 10405 +14107 13495 +12953 11493 +14648 13541 +11884 10397 +10693 10620 +15016 14512 +15376 12007 +15374 11973 +12391 11697 +13930 11823 +14307 11481 +15502 14574 +11259 10466 +15374 13303 +12992 11292 +13931 10599 +13796 11996 +15085 14627 +14831 11540 +14771 10599 +14430 10216 +11603 10693 +13342 12892 +13342 10431 +14259 12222 +14100 12339 +14761 11423 +14771 12992 +13461 12945 +13891 13851 +14108 12339 +11555 10245 +14320 10693 +14730 12945 +14046 12748 +12953 11986 +11298 10721 +14869 10590 +12915 11977 +12264 10781 +14098 11996 +14747 12264 +13342 10329 +13485 12266 +13851 13795 +13587 12478 +13667 11109 +14718 10241 +15045 14533 +10434 10185 +12953 11725 +10529 10171 +14905 12889 +12441 10732 +11481 10529 +14908 10666 +13232 11996 +10926 10245 +10792 10140 +10590 10423 +12478 10792 +11986 10599 +10994 10397 +12397 10792 +14119 11336 +14576 13198 +16091 10529 +15862 10299 +14539 10540 +13495 10423 +14869 14489 +15582 11292 +11630 10170 +16133 11066 +12217 11973 +16311 10299 +11823 10819 +13369 12769 +13931 13360 +13422 12266 +14709 10241 +14869 14027 +14683 11308 +15096 12892 +12892 11618 +12323 11433 +14730 10778 +14512 12889 +15412 11057 +15601 13796 +15051 10140 +14771 14057 +15478 12184 +13851 11278 +14716 10466 +15167 12484 +14814 11982 +12266 11027 +11986 11066 +14492 10581 +12206 11996 +14574 12917 +12892 11648 +12965 11638 +14685 14683 +14696 10778 +14553 10423 +13891 11986 +14113 12280 +10551 10416 +11066 11057 +13891 12278 +13461 12124 +14908 11996 +11921 11618 +11193 11067 +14709 11845 +15323 15167 +13830 12954 +12945 11057 +11057 10994 +14474 13768 +13930 13029 +14679 13930 +12889 10676 +15656 15167 +15478 11844 +11259 10257 +14895 12807 +14679 11066 +15554 13434 +13296 10994 +13204 11995 +11540 10874 +13851 10747 +14275 12992 +12889 10821 +13246 11479 +12544 10194 +12844 11411 +14683 14193 +13830 13347 +14570 13303 +14122 11540 +16588 11728 +10643 10423 +15153 10693 +12451 11697 +14696 13303 +14831 12953 +13795 11973 +13485 12932 +11086 10194 +13931 12892 +11445 10237 +12889 11111 +11884 10821 +14100 13930 +12954 10693 +10529 10397 +15376 14771 +12339 10721 +14100 11066 +13930 11503 +16527 13303 +13871 12003 +14524 14307 +13667 12917 +13851 10279 +15389 14679 +15376 14679 +14113 11292 +13577 11973 +12339 10140 +14908 12264 +14122 12348 +14816 10551 +11109 11086 +14050 10397 +10397 10194 +11884 11470 +12266 11921 +12315 11445 +14262 11259 +11764 11618 +14397 11531 +15304 14761 +12391 10693 +15843 11292 +13891 12339 +15842 11193 +12889 11278 +14492 12391 +11711 11413 +11618 11003 +13894 10405 +12855 11492 +13204 10732 +12185 10558 +14893 13485 +14730 12217 +14100 13341 +11630 10938 +14831 10599 +13256 12892 +14831 12339 +11259 11042 +13282 12197 +15412 14685 +13487 12173 +14869 12896 +14814 10868 +12156 10800 +15376 14877 +13127 10590 +12784 12641 +14275 14057 +12953 10849 +14908 14843 +10405 10299 +14683 12892 +15304 14025 +13958 12197 +11423 11233 +14761 12265 +11884 10529 +12264 11618 +13282 12264 +10994 10821 +15016 12896 +11123 11066 +12888 11292 +14698 14489 +14057 13296 +15249 11481 +15376 13295 +15502 10868 +15581 11630 +14771 14730 +15153 12155 +14986 11618 +14108 11973 +13244 10194 +16101 10666 +11973 11433 +15861 10299 +15085 11630 +12339 11140 +14730 12339 +14520 11587 +14100 12992 +13863 12772 +14771 14307 +16091 14814 +12855 10299 +14617 10423 +16091 11415 +10551 10245 +13587 12892 +15304 13851 +11996 10615 +13830 10666 +14122 11123 +14696 11540 +15412 13930 +12478 10693 +10551 10170 +15016 13244 +15634 15167 +11415 10171 +14489 13891 +13829 10466 +14273 12641 +14397 13232 +14794 10466 +11292 10994 +12889 10800 +13577 10529 +11986 11618 +15581 14559 +13495 11267 +14588 11540 +13796 12953 +13930 11721 +14027 12223 +15511 14683 +13930 12278 +14761 10874 +13770 10405 +12197 10815 +13871 12888 +14783 12339 +15048 11973 +14683 10821 +11630 10040 +14831 11233 +13851 10469 +13487 10721 +12992 11618 +11540 10171 +12007 11049 +14107 11884 +11627 10661 +15304 12339 +14057 11697 +13296 13198 +13667 12945 +11996 11481 +10821 10781 +14122 13204 +14122 11193 +10980 10136 +13851 11884 +14102 11630 +12264 11123 +13230 11898 +14730 12155 +13930 10785 +13184 10590 +14856 10299 +14122 12451 +13891 11259 +14027 11996 +15016 10713 +12945 12197 +14321 12232 +12571 11977 +14747 13198 +12889 10559 +12917 12055 +16634 12197 +14487 11522 +14908 11618 +15096 12365 +12197 10581 +11869 11719 +14574 10158 +14282 10551 +10721 10589 +13931 10994 +13433 10627 +13930 11203 +12451 10693 +10994 10208 +15016 14275 +11109 10821 +14574 10693 +15096 13244 +14112 13230 +11618 10721 +13796 10800 +10874 10599 +14122 12884 +13829 11292 +14987 13196 +14761 12223 +13891 11267 +14081 10011 +10590 10135 +12264 10154 +14492 13667 +15376 13244 +12370 11463 +11994 10693 +14635 10721 +14869 14730 +13418 10868 +15016 12892 +14986 14307 +12195 10299 +13198 12992 +11624 11278 +11697 11624 +10792 10466 +13342 11637 +12222 10670 +14492 10397 +14942 12649 +12197 11278 +15167 12397 +15356 10990 +14570 10529 +12191 11193 +14150 13182 +15153 11259 +12544 11618 +14321 13487 +14683 13303 +14814 12992 +11292 10800 +11193 11123 +11762 11588 +13204 13198 +12544 11537 +14711 11042 +13303 11719 +13244 11027 +11540 10819 +14771 10397 +15096 14321 +14102 12268 +13520 13347 +14683 11193 +10792 10558 +14635 11066 +14747 10372 +14761 11537 +13422 11298 +14252 14057 +14193 10821 +14635 13930 +10849 10540 +13930 12266 +15370 12339 +15554 12769 +13486 10268 +13342 13296 +13829 11109 +14805 13196 +13667 11003 +11615 10154 +14771 10792 +12892 11986 +13487 11555 +14027 12892 +14397 13461 +14893 11057 +12339 10713 +13689 10569 +14512 14100 +12390 11995 +11638 11292 +11027 10529 +13898 12945 +14512 14307 +11996 10185 +14262 10800 +14952 10431 +14492 12264 +15304 12478 +14761 14092 +12250 10800 +13851 10140 +14314 10590 +16091 12155 +15304 14730 +10996 10551 +12574 11421 +10996 10304 +15167 12244 +14893 11721 +14814 11278 +13467 12583 +13796 10821 +12451 10721 +14492 10185 +11540 10590 +14794 12889 +13303 12320 +13930 11111 +12320 10800 +13244 13198 +11630 10052 +15257 10551 +15721 13434 +14057 13486 +10590 10208 +14771 11423 +13303 12278 +12737 10299 +13495 10874 +14696 14100 +14570 13295 +15096 11278 +14771 13964 +13495 10721 +14869 11697 +16133 11612 +12889 11267 +13710 10551 +14747 12758 +15855 14321 +13032 12953 +14893 12173 +14683 10713 +13682 10299 +14831 14730 +12264 11977 +10693 10329 +13546 13230 +14685 11641 +14107 11618 +14831 13871 +15785 12268 +15919 10171 +15412 14092 +12784 10245 +15579 10926 +13964 13890 +14307 10423 +13303 10990 +13795 12953 +14831 14696 +15167 14530 +14696 12348 +14960 12339 +12755 12321 +13487 13367 +12945 10469 +11996 10559 +13930 11510 +13541 13232 +10817 10423 +16091 11612 +14273 10245 +10781 10423 +12266 10171 +14771 12173 +11292 11066 +11921 10800 +13796 10721 +15016 14831 +14711 11193 +14100 12365 +14761 10785 +14107 13230 +12320 11252 +13796 11697 +14512 13891 +11298 10685 +14898 11588 +11637 10857 +14683 14027 +13296 12953 +14771 10647 +14635 12339 +14730 11775 +10800 10630 +14275 10466 +14559 10184 +14100 12451 +13198 12339 +15502 10423 +10620 10423 +12280 11563 +14082 11423 +11697 10627 +14570 11259 +10529 10185 +13930 10140 +13495 10994 +11481 10423 +14256 12523 +14683 10590 +11726 11603 +14730 13296 +14843 12889 +11827 11259 +13796 13194 +15236 12141 +11109 10713 +14771 11042 +13303 10721 +13796 13461 +12755 10551 +11618 11109 +16709 11415 +15249 10185 +12855 12851 +13891 11042 +11996 10980 +13502 11292 +15043 12896 +14919 10299 +14082 12544 +14689 13930 +15304 12197 +12884 10540 +14107 12478 +12704 11630 +10198 10158 +13487 12264 +14081 12745 +14635 12206 +13830 12492 +16746 12018 +11996 11193 +14489 12892 +14092 13244 +11637 10721 +14869 13244 +11540 10721 +14683 12915 +14960 13930 +15293 12195 +11996 10800 +14457 11618 +15323 14996 +15304 13029 +12915 10792 +14696 12889 +13002 11646 +15085 12769 +15167 14771 +12339 11481 +14696 14307 +14524 10868 +11423 11298 +14122 10874 +13230 10868 +15412 14193 +13360 11697 +12147 11058 +13871 13061 +15356 11618 +14683 13198 +14996 10965 +14831 13891 +14689 13296 +13796 11415 +11193 11066 +13342 11996 +13930 11630 +12779 10299 +15249 14679 +11867 10685 +10821 10434 +13871 12478 +13303 10994 +14908 10136 +12266 10821 +15249 13244 +13398 10171 +15478 11845 +14711 14307 +13930 12917 +10792 10599 +14512 11540 +11898 10631 +14262 13303 +14831 10990 +13714 12779 +16133 14397 +14013 11643 +15370 10693 +13196 10304 +12339 11764 +14814 10185 +12653 10299 +15016 11027 +15356 12884 +11973 10170 +13898 10529 +15502 13198 +12265 12197 +11995 11193 +13495 10800 +10781 10685 +13964 13024 +15497 15304 +14100 13931 +11193 10599 +14275 11193 +14122 14107 +15412 15153 +14685 12323 +14229 11367 +12264 10874 +14679 13342 +14635 11697 +14150 10333 +13198 12478 +15096 10257 +11413 10561 +15167 13296 +14738 10170 +11252 10397 +15570 13487 +14730 13204 +13342 10693 +11267 10423 +15304 14683 +12889 10185 +15167 13121 +13303 10693 +14027 13342 +13495 11193 +13076 11563 +10874 10158 +12266 10529 +12391 10140 +15380 12953 +13341 10372 +14683 12544 +11823 11778 +14716 11298 +15041 14747 +13303 13256 +14100 13342 +10775 10754 +12320 10434 +11977 10980 +14576 11193 +14709 13970 +14457 11292 +15502 10819 +15370 15016 +15070 14112 +15304 11278 +13198 12217 +15024 13303 +12191 10257 +13398 10154 +14004 12263 +14570 13204 +14869 13264 +10599 10257 +14524 11066 +14689 13871 +13891 13198 +15412 13367 +14831 10693 +13487 10466 +15370 14730 +14430 14307 +12544 10397 +14869 10781 +14057 13303 +13198 11995 +13230 10785 +14100 11996 +14112 10135 +14307 11973 +14576 10821 +14193 11292 +15304 10732 +10693 10257 +14869 14679 +13341 12266 +13244 11638 +12915 11042 +15412 14492 +12704 11941 +13873 13196 +13303 10785 +11789 11049 +14150 12314 +10257 10158 +14150 11013 +14685 11986 +12390 11617 +14113 13303 +14635 13667 +15412 13931 +12278 10372 +14685 10423 +14683 13796 +10647 10540 +12889 12206 +12266 11292 +14747 14303 +15380 13303 +13029 10693 +10721 10535 +13459 11076 +13303 11252 +11233 10821 +14761 14512 +15411 11278 +11298 10994 +15370 14112 +14307 11066 +15618 14730 +11423 10140 +13198 10781 +12266 12094 +11315 11292 +14679 14112 +14747 10713 +15570 14107 +15167 11098 +15919 13487 +14683 11719 +15380 12197 +14492 11495 +14683 14492 +13204 13158 +14524 11973 +14814 10747 +13198 10559 +12191 11298 +12896 11638 +15412 10721 +13487 11775 +14112 10599 +12992 10994 +14112 14025 +12323 11641 +14869 14122 +13495 11066 +13434 13369 +11764 11728 +13487 11884 +13342 10529 +14102 13111 +15370 11996 +14679 12055 +14120 11775 +11986 10397 +14893 11603 +11563 10136 +14057 12103 +14057 13830 +14570 10140 +15096 14771 +16091 10747 +14747 11630 +11996 10819 +11555 11445 +15406 13467 +14893 13244 +13898 11259 +15304 13296 +12615 10551 +13296 10599 +12363 10800 +14321 10693 +13198 12266 +15725 11630 +11973 11697 +14044 13731 +13290 10868 +13204 12339 +15304 11995 +15167 14869 +14492 12953 +14457 11433 +11618 10577 +13487 10257 +12851 12831 +14307 11259 +12523 11630 +12523 11720 +14751 12197 +12003 11298 +11492 10775 +15370 12954 +14771 14112 +13029 11027 +15016 12197 +15601 10800 +14783 13244 +13931 11057 +12932 12197 +14869 10194 +14831 12094 +13072 10466 +13277 12448 +14986 14747 +15295 11042 +13360 11641 +14057 10713 +14679 11423 +15919 15412 +13898 13232 +14004 10559 +13676 12719 +12896 10599 +11775 11468 +15295 14683 +13958 11714 +14027 11278 +14492 14112 +14730 12598 +15057 13851 +13930 11977 +11775 10849 +14576 13830 +14107 12884 +14576 12266 +13232 12264 +13832 11697 +11764 10397 +12598 11721 +13891 10620 +12892 12173 +14254 13204 +12323 10529 +14716 10135 +16454 15167 +11884 11603 +10627 10559 +14747 11921 +14698 14107 +14307 12391 +11538 10559 +14054 11884 +14761 12954 +15304 11726 +12663 10917 +11764 11042 +13296 12892 +12892 10562 +15478 10313 +14679 10529 +15412 10693 +15370 14747 +13931 12217 +14843 13244 +16091 15412 +10397 10216 +15376 14307 +14492 12265 +14679 13495 +15939 14869 +14543 11563 +11433 10800 +15356 12932 +14524 13851 +16390 10299 +14193 10257 +11618 11057 +16091 11995 +12807 11555 +15502 11697 +14771 10849 +12451 12278 +13502 11278 +14877 13344 +15215 14955 +13931 10136 +14761 14131 +15412 10990 +12784 12748 +14635 13232 +12264 11278 +14570 13342 +12953 10558 +14893 10157 +16353 13303 +14321 10721 +12391 10994 +11057 10431 +16428 10661 +12784 12635 +12478 10140 +14100 12397 +13264 10666 +14057 13485 +14871 10693 +12953 10800 +13487 13076 +13029 11111 +11637 10685 +13851 13072 +15356 12244 +15624 10599 +15282 14130 +12190 10643 +14986 14685 +14100 10372 +13851 11996 +15478 14709 +14397 11111 +11721 11042 +12214 11280 +11618 10327 +12094 11292 +14771 12441 +15721 11550 +13109 12549 +11995 11977 +14107 11495 +13232 10279 +13970 12704 +14747 13486 +13484 10693 +12094 11503 +14108 10685 +14108 10599 +11517 10666 +14952 10590 +14275 13256 +14314 10800 +13894 11227 +14648 13398 +14831 14262 +14122 11292 +12339 11423 +13949 13244 +14262 10423 +15023 14057 +16710 15167 +14492 14397 +14908 12451 +13871 11233 +14812 11618 +14397 13303 +14683 11140 +14167 10299 +12892 11123 +14814 10194 +14530 11259 +12992 11042 +14107 10397 +14893 10721 +12391 11898 +12266 11495 +13230 10372 +13770 12807 +14492 10965 +15070 12892 +15381 11423 +13232 12478 +14898 12574 +15861 14804 +13495 13232 +14893 14113 +10540 10535 +11003 10713 +12321 12184 +13303 10434 +11298 10135 +14747 12266 +12841 12321 +13485 12264 +14397 11267 +13198 12451 +14869 14321 +12708 10416 +12945 11953 +13232 11728 +12191 11986 +11042 10194 +12339 10466 +13795 13461 +16091 15376 +10685 10599 +11996 10158 +13418 11479 +15043 12007 +14006 13930 +14685 10821 +14771 13502 +12896 11292 +11775 11292 +13198 10257 +13459 11433 +10559 10194 +11641 10431 +12889 10693 +12441 12280 +14679 13256 +13369 10416 +14683 14262 +10396 10299 +11299 10170 +13369 12807 +14828 11630 +10423 10372 +14520 13342 +15370 13342 +12266 11697 +13851 11637 +11292 10135 +13232 10792 +14709 14013 +12007 10397 +13303 13204 +14119 10245 +15016 11288 +15096 10785 +12217 11278 +12321 10304 +14747 13891 +14804 10640 +13768 10299 +13244 12190 +16728 12197 +15049 14856 +13931 12197 +14761 14025 +15794 14805 +16454 13987 +11884 10559 +14709 10416 +13541 11675 +15063 10299 +11278 10397 +13297 13192 +12870 10170 +15356 11057 +15447 13930 +13076 10590 +14683 13072 +15919 10397 +13461 10693 +13796 12451 +15167 13796 +14120 10141 +14081 13536 +12278 12191 +11066 10540 +14856 11630 +11540 10423 +14524 10980 +13303 11624 +13158 12896 +15370 11973 +12896 11413 +14814 12953 +14100 11537 +11481 10140 +13244 11109 +12917 11193 +13244 11697 +10670 10540 +14100 10577 +14307 14027 +11140 10747 +14747 13485 +14193 11042 +14027 11066 +13232 12992 +13487 10994 +13871 11433 +15245 15049 +11637 11603 +12266 10140 +12323 10693 +14771 12264 +13303 11027 +14960 11563 +11697 11123 +13347 12758 +14783 11433 +16133 12945 +14543 12094 +15096 10693 +14893 10693 +11278 11259 +14570 11278 +13486 10918 +13930 13076 +12889 11252 +14570 11066 +12206 11049 +15153 10747 +13871 11663 +14489 11292 +13891 10693 +14761 13121 +12889 11109 +14098 13198 +13495 13204 +13574 11924 +12896 10800 +11961 10543 +15370 10423 +14747 12278 +13342 10683 +14843 13303 +12197 10599 +11867 11283 +11697 10559 +13232 11111 +15825 13577 +15502 12391 +12191 11996 +14275 13487 +13871 13029 +13196 13115 +15841 14256 +14102 13942 +14252 12889 +13970 10640 +12889 10529 +10994 10431 +15024 11790 +12898 11973 +14893 11775 +14288 11884 +11098 10849 +15096 12339 +15045 13930 +15853 11053 +13232 11433 +12055 10155 +14750 13303 +14908 14307 +12184 11844 +11280 10299 +14397 13495 +13667 12339 +14252 10466 +13795 13360 +12324 11292 +11066 10590 +12391 11066 +14747 13871 +10721 10257 +16721 11641 +12615 11643 +13495 10683 +14122 10557 +11617 10397 +13303 12217 +14150 11721 +14601 10299 +14771 12339 +15070 13891 +14895 12769 +15380 10397 +13398 12932 +14492 12884 +12348 11995 +15412 11193 +15412 14574 +11555 10917 +12264 10569 +11973 10980 +16091 13851 +14679 14122 +15304 14092 +13587 13297 +15167 13535 +14986 13871 +10631 10590 +14122 10990 +12889 11540 +12709 10241 +14843 12553 +15401 12953 +14574 13341 +12451 10821 +14130 12855 +14814 13377 +12217 10372 +12191 11721 +14730 11376 +15016 10155 +13930 11986 +14057 12266 +11721 10397 +13871 10792 +14893 12339 +13851 10792 +14100 10361 +15412 13851 +10731 10397 +15024 11057 +11908 10620 +14576 13930 +14082 10135 +13851 10713 +12191 11503 +13710 11227 +14730 12917 +13931 10529 +14492 10990 +15096 10721 +12339 10785 +11953 10208 +13105 12197 +14627 12769 +15798 12855 +16133 11775 +11953 11111 +14492 10781 +11540 11298 +11537 11042 +10599 10140 +11884 11775 +10800 10257 +16498 12478 +15624 10819 +15304 11298 +14843 12206 +12953 10469 +14098 13061 +11618 11540 +13942 13806 +14107 12324 +15700 12294 +14908 11259 +15919 11049 +15023 10800 +13244 10643 +12222 11675 +15502 14635 +15356 15167 +13871 10747 +12339 10397 +14050 10431 +14893 12953 +14716 11292 +13796 13486 +13487 11996 +15376 11638 +13459 11977 +15472 14709 +15124 13768 +12129 11563 +12523 12175 +11638 10590 +13461 11111 +14747 14716 +15282 12855 +15502 11057 +14679 13296 +13303 10146 +13970 10247 +13303 11982 +12039 10800 +12953 10529 +14492 11995 +10868 10693 +12055 10599 +11109 10819 +14633 11066 +14113 11898 +14570 13158 +16133 12339 +14321 10581 +15370 11413 +14771 11481 +15304 11996 +12266 10423 +14492 12954 +15502 10434 +14698 13244 +16091 12889 +12544 11003 +12478 11298 +10721 10414 +14730 13871 +14524 11618 +13795 13577 +13715 12748 +12855 12719 +14869 10800 +12892 10529 +12982 10849 +12197 10135 +11111 10216 +12478 12173 +14783 11996 +14771 13256 +13931 11049 +14122 10792 +15304 10693 +10821 10599 +11292 10627 +15376 12892 +15412 14122 +15356 12559 +13930 11540 +13931 13871 +13495 11986 +15919 10423 +11140 10397 +14908 10194 +12264 12173 +14922 13796 +11986 11298 +15579 14709 +14761 11624 +13367 10466 +11612 11540 +14747 13540 +15049 10225 +10185 10136 +15370 14307 +12932 11883 +14683 11415 +12217 10257 +15412 12451 +10535 10529 +15167 10224 +13341 10868 +14987 10313 +11492 10299 +14122 13871 +14972 14747 +13127 11057 +14477 10559 +13487 11471 +12278 10627 +13930 12264 +10670 10257 +14831 11618 +15273 11823 +14576 11977 +15741 14229 +13495 10146 +12451 10540 +13476 13303 +16091 11953 +14492 10849 +14718 12709 +14869 13931 +13127 11563 +11278 11042 +13277 13061 +15051 14107 +10980 10397 +13347 12492 +15167 14050 +14893 11267 +14704 11618 +14081 10950 +10529 10140 +12945 11267 +16091 11871 +13930 10185 +13520 12492 +14812 11122 +11921 10279 +14492 12266 +13232 12451 +13676 13196 +14027 13244 +15096 11193 +12945 12278 +13493 11728 +13898 11066 +14877 13198 +16133 14082 +14307 14122 +14307 11618 +14027 11433 +14397 13341 +14952 11278 +15295 13198 +12244 12222 +14275 10965 +14679 13204 +12945 11066 +14893 11719 +16668 10299 +11995 11423 +12889 12278 +13303 11986 +12992 12892 +15741 12252 +14524 10397 +12896 11726 +14252 13127 +15376 15304 +12197 11057 +11952 10299 +13341 12896 +11618 10627 +14112 12223 +13947 12264 +12018 11413 +12544 10792 +10577 10257 +11456 10154 +15794 12704 +11433 10268 +15167 14321 +16133 10158 +10408 10397 +14027 10965 +14771 14679 +15167 12882 +13244 11481 +12992 10140 +11823 11057 +13230 11995 +14771 11233 +11337 10529 +12264 12094 +14696 10785 +12954 11298 +10821 10654 +14771 14252 +15721 13873 +11057 10874 +15861 10225 +13105 11728 +11637 11315 +13487 10747 +14314 10821 +14539 14321 +12195 10551 +13851 10994 +14633 11775 +12953 12390 +14960 11298 +14730 11193 +13476 10800 +12954 10792 +14635 10874 +13303 13061 +14689 11292 +10990 10868 +11298 10155 +15163 11612 +13674 12197 +13244 11057 +14683 13871 +10770 10245 +13256 12191 +12323 10792 +14831 12945 +13930 13230 +12544 10185 +14831 10821 +13204 11953 +14747 11563 +15502 14492 +12321 11555 +15502 13232 +11638 10868 +15708 13002 +14761 10216 +14635 11433 +14057 11996 +13851 12266 +14122 11726 +13931 12917 +15502 12323 +11697 10800 +14747 12156 +14112 10434 +12884 11259 +14492 10821 +14853 13796 +13541 10154 +11109 10469 +15478 10299 +11884 11719 +14130 11952 +13851 13796 +12898 11193 +12544 12348 +13796 10279 +15045 11487 +14307 13871 +11721 11618 +12896 12206 +12719 10304 +12758 10800 +12917 12478 +13029 12884 +13158 11298 +13303 12992 +13029 11637 +15855 15167 +10965 10627 +14869 12206 +13693 11484 +15447 13232 +14869 11433 +15249 14122 +14307 10154 +14057 11433 +13851 11719 +12190 10800 +14098 11423 +11618 10821 +14107 13277 +15389 10800 +14761 11898 +15618 14736 +11298 11027 +15842 10994 +15043 13184 +13487 12266 +12884 10397 +14100 12108 +13495 10529 +14122 10423 +12397 11995 +14709 14125 +14100 10683 +13244 12191 +13342 11066 +14125 10754 +12896 12889 +14683 13232 +14794 10918 +13891 13204 +15249 11617 +14193 11540 +14512 12892 +11824 11259 +14492 10529 +13244 11278 +14783 10466 +13232 12574 +15370 12992 +14107 11298 +13891 13809 +13851 11267 +14804 10139 +10416 10170 +12339 10194 +11531 11057 +14222 12016 +12743 10170 +15504 11844 +14397 11146 +14489 10713 +14236 13891 +13931 13851 +10693 10299 +14683 11423 +14397 11259 +15167 14027 +10821 10559 +14082 11996 +13796 12339 +14570 10599 +12266 10800 +15024 10792 +13796 11278 +12954 11433 +13029 10397 +11630 10299 +15412 13461 +12339 11193 +13342 13204 +12264 10257 +11292 10874 +14112 11042 +14570 14057 +13029 10590 +13931 10933 +14057 10529 +12250 10721 +14893 10849 +14102 10299 +14685 13577 +15412 13256 +13930 12915 +11697 11233 +14685 10434 +14182 12222 +10965 10158 +15304 11150 +13930 10469 +14761 10171 +11433 11298 +13297 10397 +14102 13873 +13495 11433 +15502 12339 +14100 11495 +12889 11259 +15304 10781 +13244 10299 +11898 10599 +13495 13158 +14831 12954 +10396 10225 +14122 10529 +13796 10469 +12621 11833 +14635 11298 +15048 14869 +13296 11042 +11042 10721 +10170 10015 +16515 10559 +13198 10529 +12855 10170 +15293 10245 +11278 10431 +13196 10551 +15016 10279 +14711 10322 +14869 14100 +13520 12549 +10785 10540 +13290 12007 +13710 11492 +12245 10620 +14747 12953 +14307 10994 +13232 12878 +12807 11844 +15245 13873 +12878 11066 +15304 14685 +13244 10419 +15532 11869 +13341 11995 +15447 10372 +12131 11298 +12831 10405 +13204 11540 +15412 11618 +13255 11995 +14683 12217 +12264 11433 +12992 11973 +14656 11775 +14761 11973 +13931 10194 +12197 11842 +13198 10397 +14712 10713 +11823 11618 +14679 12892 +13342 10868 +15478 14234 +12323 11624 +14574 10540 +13232 10965 +14530 12889 +14457 11298 +10868 10257 +15785 11630 +15721 12769 +13244 13232 +11986 11003 +12745 11869 +15478 11336 +10821 10140 +12807 10754 +14122 12945 +14869 10779 +11259 10994 +11111 10693 +14633 14524 +12191 11057 +13487 13244 +14100 12892 +14771 12451 +12018 11711 +14107 11711 +13232 10257 +12173 10721 +13933 11618 +11618 10268 +13341 12264 +14193 12391 +13830 13034 +15785 13942 +12278 12217 +13495 11977 +14674 13232 +14027 11259 +10792 10279 +13796 11298 +11146 10397 +11995 10397 +15096 12544 +14112 13871 +12191 10980 +14130 10405 +11076 10590 +12615 11844 +15376 10198 +13495 10713 +14814 13061 +15380 11986 +14769 11728 +13204 10158 +14098 13418 +14718 10139 +12896 10683 +15304 10208 +14761 10990 +11481 11057 +13495 11292 +14814 13204 +13158 12255 +14761 10135 +14814 10155 +12641 10245 +14674 10140 +14893 10792 +12649 12184 +12917 12451 +12389 12003 +14131 11027 +12323 12266 +12892 11977 +13485 13029 +14397 12544 +13862 12003 +14831 13851 +13341 11042 +14635 11278 +14100 13577 +15167 10965 +12391 10423 +12195 12184 +14570 11525 +12478 11066 +15027 13244 +10918 10781 +14761 12278 +13930 10194 +11834 10693 +16363 16091 +12266 11049 +14679 13485 +13873 10640 +15376 14512 +15124 12214 +13796 13487 +13796 11086 +11728 10423 +13076 11721 +12197 11656 +15624 11057 +14730 10397 +13476 11540 +13184 10529 +13487 11986 +14107 12206 +14512 13495 +14635 10423 +13303 13230 +14679 12896 +11433 11013 +13198 12264 +12945 10216 +13342 11471 +13543 11898 +14485 10139 +14635 12264 +14689 10590 +14057 13495 +11057 10466 +15497 14027 +14112 11267 +15861 13970 +11433 10279 +12339 11977 +11233 10713 +15304 10540 +16091 11193 +14683 11066 +14107 10950 +14871 14057 +15304 14321 +14112 12992 +15882 11764 +14081 11869 +13198 10185 +12206 10140 +13851 12884 +10754 10396 +11278 10693 +11503 10800 +14122 11146 +12278 12228 +13244 11540 +13204 11721 +15250 15160 +14683 13256 +14576 11278 +15919 10693 +12339 11540 +14696 10980 +14112 11003 +15096 11953 +12652 11431 +12250 11842 +14814 14730 +14679 13871 +13342 12197 +10551 10139 +15153 10171 +14646 12896 +12390 10158 +11996 11973 +13232 12266 +10800 10431 +10792 10529 +13796 10792 +13341 10155 +15919 13244 +11980 11775 +15412 15401 +10990 10185 +15618 14107 +11953 11057 +15295 14853 +14577 12339 +12705 10170 +12478 11252 +14100 11423 +13342 13303 +11193 10540 +15497 14761 +14027 12992 +13495 13230 +14218 11630 +14869 13930 +14761 13796 +15618 11098 +11193 10397 +14877 12007 +14122 11789 +12264 10732 +15249 10562 +11298 10208 +14492 11123 +15861 12844 +15370 12003 +14627 10299 +13535 10721 +13970 10551 +13486 13244 +12264 11203 +15108 13297 +14307 11298 +15376 14492 +12250 10815 +12889 11995 +12478 10800 +12278 11563 +15376 11603 +14689 13891 +12892 10257 +14747 14683 +12266 10599 +15380 11775 +12451 11278 +13121 11057 +13303 12391 +12574 11135 +12945 12055 +13476 11423 +15249 11150 +13930 11042 +15370 14100 +13930 12191 +12397 11618 +13422 13277 +15016 11996 +14570 13487 +13303 12323 +14908 14107 +10747 10693 +12055 10747 +12523 11545 +11697 11695 +15721 15085 +11146 11057 +15861 13942 +14027 10732 +13204 10868 +11298 10817 +12853 12195 +11292 10434 +13873 12195 +11618 10466 +13434 11280 +12448 12155 +14576 10800 +11086 10800 +15502 13342 +14730 12391 +16091 11058 +14908 14492 +15919 12892 +12896 10279 +14960 14908 +11540 10397 +13369 10304 +13303 10874 +12883 10140 +12390 11057 +14492 11624 +13486 10327 +14869 11308 +15249 14696 +14761 11259 +14107 11540 +14814 12478 +11252 11042 +14492 14231 +12889 11603 +13232 11193 +14952 11337 +13204 11612 +14107 11267 +12448 10980 +13796 10590 +15794 14856 +13198 11298 +13347 12174 +15381 11086 +14880 10299 +14492 11057 +13930 12339 +14683 11506 +13461 11415 +12339 11278 +14869 10918 +15070 14512 +14572 13002 +15235 12954 +13211 11725 +13198 10792 +12266 10185 +13884 12197 +14712 12889 +11638 11042 +13930 10257 +15412 11298 +15794 11941 +15376 11259 +12448 11057 +15412 14986 +14231 10581 +11884 11697 +14711 13487 +14024 13244 +13487 11603 +14524 13495 +14057 11884 +14633 13851 +11140 10821 +14100 11042 +13360 10589 +15497 15356 +13495 12323 +11057 10208 +12222 10154 +12217 11540 +14122 12992 +16721 15167 +14893 14570 +14730 11996 +15167 10154 +13487 11697 +13577 11066 +12339 10136 +14107 11995 +15249 10431 +12884 11996 +13476 12889 +12197 11996 +14119 11511 +13433 10590 +14855 10170 +12769 10551 +14492 13198 +13543 11996 +13204 10683 +13891 10821 +13485 10431 +13303 11953 +15167 14112 +12748 11336 +15412 11986 +15370 13295 +12708 10551 +15861 10640 +15412 13487 +14006 13184 +13930 11433 +14679 12953 +15304 12953 +10747 10721 +15618 11728 +14718 12195 +11292 10423 +15721 15049 +14843 14524 +14082 13367 +14893 14487 +14683 13029 +15167 14100 +12889 11292 +14853 11086 +12807 10926 +13196 13016 +13198 13061 +12185 11775 +13942 12844 +14869 14843 +11481 11308 +12544 11042 +12197 10158 +14696 10792 +14112 10821 +14627 12807 +11630 10313 +15016 11278 +12478 10721 +11638 10466 +11952 11492 +14895 11550 +14108 10627 +14696 12945 +12855 10304 +12278 11057 +13486 10466 +14747 10275 +14893 10529 +14576 12197 +14112 13487 +12523 11230 +14747 13487 +14320 10408 +11728 11618 +12917 10792 +14576 14492 +13756 11298 +14524 11996 +13667 11721 +12652 11646 +14771 12266 +13970 13111 +15304 10874 +13296 10821 +11042 10268 +12819 10961 +14761 12544 +12266 11481 +12156 10581 +13342 13244 +12339 11721 +15020 10800 +11503 10372 +15370 12278 +12339 10868 +13495 11481 +14570 11423 +12264 10990 +14842 11982 +13577 10868 +11637 11003 +15016 12544 +12191 11140 +14986 13198 +13296 10279 +14268 13715 +13851 12055 +14122 11973 +14570 11697 +14092 12896 +15774 11336 +13577 12265 +14683 12391 +12855 12708 +10397 10158 +11823 11278 +11259 10747 +15024 11697 +15579 10551 +12841 10299 +14057 13871 +15016 10721 +13577 12323 +13796 11066 +12007 10693 +12896 10821 +13685 12197 +15370 13487 +12896 11433 +11996 10874 +14633 12339 +14730 12197 +11563 11337 +12206 10693 +14576 13796 +12889 11823 +13851 11603 +16101 11470 +13546 11470 +13930 13851 +11618 10713 +14314 10423 +13984 12222 +13829 12892 +13851 13244 +11146 11042 +15497 13930 +14193 12953 +15380 11193 +13196 11630 +14182 11764 +13931 10792 +14307 12264 +13296 12544 +11445 10917 +14259 13303 +14905 13891 +13930 11292 +13873 11535 +14718 13434 +14520 11057 +13398 12197 +13541 11278 +15376 12278 +13502 12266 +13871 10599 +13256 11292 +11423 11267 +12719 11630 +13891 12945 +13303 11481 +13232 13105 +14130 10304 +14747 11233 +11563 11140 +14057 10136 +12391 10821 +14122 13232 +14877 12320 +11292 10792 +11697 11298 +10551 10241 +12896 10590 +12615 12214 +13871 10821 +14683 11292 +14027 11298 +12197 11592 +14738 10551 +15374 12945 +13303 11775 +14635 10821 +16091 11288 +14057 12264 +14572 12652 +12175 11997 +13930 12884 +14112 13983 +14570 10874 +13930 10423 +12953 10599 +15293 11952 +10792 10158 +14831 13495 +12264 10540 +11977 10540 +14716 10423 +15295 14761 +15070 14679 +14150 13232 +15074 10423 +14814 11996 +14122 11764 +13182 12197 +12610 12171 +14027 11986 +13230 10434 +13495 12278 +15798 12853 +14711 11027 +14013 13970 +14843 14747 +15370 12266 +14869 10529 +11699 11057 +14397 10868 +13495 10185 +14635 14112 +12280 11726 +11278 10868 +12339 10685 +13485 12917 +12278 11298 +14674 10800 +12197 10478 +11884 11423 +11618 11193 +13344 10819 +15370 13667 +15012 10917 +10713 10693 +10868 10529 +13244 10590 +11468 10693 +10857 10800 +14730 12278 +15618 12954 +11433 11259 +15370 11697 +15016 11884 +14712 14320 +14843 10732 +14747 12339 +12055 10185 +12954 11638 +14696 13342 +12206 10721 +14814 10693 +13467 10245 +11995 11298 +14112 13244 +13232 10994 +15478 14102 +13873 12769 +13667 12478 +14831 14492 +11066 10257 +13342 11123 +14321 13296 +11278 10408 +12264 10158 +13930 12389 +15167 10325 +12748 12321 +13303 12191 +12917 10299 +15370 12953 +13931 13244 +12772 10170 +14057 13264 +13367 11637 +11869 11298 +14108 12266 +15919 12478 +14771 12478 +14107 13487 +14492 13341 +15304 14122 +13796 11376 +11721 10333 +14628 12652 +12544 11146 +12197 11675 +13942 10923 +13931 13796 +12889 11638 +14709 11833 +11049 10747 +15919 12889 +12719 11028 +16091 15023 +14027 11267 +12954 10821 +13931 10721 +11721 10431 +11267 10599 +14696 11433 +11050 10559 +11042 10654 +14492 11697 +12884 11267 +14730 14576 +14831 11775 +14307 12478 +12266 10194 +13034 12174 +13230 13198 +14771 10693 +12184 11445 +14869 13851 +15304 11618 +14683 10599 +13232 11977 +12278 10800 +13487 11146 +11884 10800 +13487 12391 +14107 10561 +15842 12892 +14193 10140 +12268 10754 +13485 12889 +15721 15478 +12278 11278 +13891 12889 +12779 11630 +12892 12448 +13486 12892 +13863 10243 +16091 10298 +12745 10011 +11618 11433 +11996 10434 +11775 10372 +15167 12954 +13232 11041 +10559 10171 +14747 13297 +12953 10721 +12878 11618 +15057 11982 +11027 10155 +14321 12264 +14730 12266 +12478 12451 +13796 10994 +11844 10225 +11996 10431 +14256 11511 +14107 12173 +15570 11517 +14683 10257 +15096 12397 +12197 10613 +15741 12857 +12954 11884 +14091 10800 +13851 13303 +13537 12598 +11995 11278 +14234 13434 +11869 10661 +12784 12638 +15096 14512 +14275 14100 +13061 11699 +12191 11697 +14908 14100 +14685 11298 +15798 12831 +12197 12155 +11337 10693 +14747 14057 +14122 10140 +11057 10654 +12174 12173 +14730 10994 +11122 10620 +12954 11697 +15570 13077 +14107 11721 +12889 12266 +12478 12217 +14004 11588 +14986 14635 +10792 10434 +12831 12708 +14679 12363 +12708 11492 +15023 12441 +11924 11392 +13264 13024 +11292 10721 +14193 11481 +15304 10279 +11193 11042 +14512 11278 +12889 12758 +12441 11278 +13204 11066 +12892 11487 +14696 12953 +14683 11003 +12478 10581 +10693 10599 +14027 12451 +10551 10313 +14430 12191 +14275 12391 +10279 10140 +11697 11259 +13851 11995 +15741 10961 +12397 10540 +13297 12134 +14908 12478 +12250 12222 +11977 11471 +12478 10423 +14696 11775 +13139 11973 +12549 12174 +15024 11259 +13341 11618 +15070 13232 +14057 10918 +14683 11618 +16091 15273 +13303 11193 +13244 10257 +14027 12574 +13495 10792 +12448 11058 +13461 11624 +12868 11630 +13016 11630 +13970 11411 +14730 12954 +15785 13806 +12992 11884 +14627 12676 +12323 12197 +15023 14747 +13767 11630 +13970 10923 +11292 11278 +13461 12155 +14627 10139 +13930 10136 +14627 10313 +13667 12892 +15027 13303 +11953 11823 +14905 12892 +15016 13891 +11109 10693 +15478 11227 +10397 10185 +13487 12544 +12917 11433 +12197 11995 +11697 10431 +14275 11042 +16133 15376 +14831 10713 +13931 10216 +11423 10821 +12195 11550 +14081 11695 +12807 12676 +14027 10423 +14100 10599 +13487 10685 +11844 11833 +13930 11252 +15304 13244 +15370 13341 +15887 10405 +12892 12889 +12448 11996 +12892 11109 +15096 14685 +15245 14856 +15304 13655 +13476 11638 +13369 12755 +13851 11495 +12478 10154 +13244 13230 +12156 12003 +14771 14487 +14570 13244 +13577 11057 +11618 11292 +14102 10754 +13198 11856 +12945 11292 +14024 13377 +11844 11630 +13459 12335 +15070 13930 +14397 10409 +13076 10185 +13806 11411 +14262 12889 +14122 13342 +14234 10299 +14112 11775 +13295 11193 +12339 11697 +14570 12451 +13121 12197 +14711 12197 +13244 11630 +14576 14100 +14256 10926 +12758 12266 +14893 14122 +11292 10693 +11995 11973 +14679 14320 +11823 10466 +10775 10396 +12391 10792 +14771 10299 +12663 11445 +14046 13715 +13796 12191 +10423 10136 +14761 11111 +14107 12896 +13942 10754 +13230 10693 +14679 11057 +16353 11066 +10721 10158 +15295 10821 +11898 10627 +12638 11336 +11433 11415 +14630 10819 +14804 12844 +13342 12954 +13930 13184 +14730 12892 +12278 10590 +14895 12268 +14107 13198 +13296 10158 +16390 15934 +14783 11067 +12896 10155 +13061 11823 +14627 12755 +15167 11042 +15991 10299 +11413 11292 +15624 11193 +14492 11423 +13577 11042 +15370 13930 +14576 12478 +14683 11884 +15478 10245 +15074 14122 +16353 11282 +14492 11278 +10868 10792 +14262 10327 +15841 12523 +13342 12992 +13232 11775 +12953 10431 +12280 11921 +14747 11648 +15304 10158 +12819 12728 +12320 11728 +14193 10590 +16091 13061 +15618 14236 +15626 14843 +14685 14108 +13487 11973 +12441 10620 +11003 10397 +15389 11292 +13502 11618 +14761 13422 +14193 12266 +15096 14747 +13230 11986 +12953 10713 +15249 14100 +11844 10170 +13290 12878 +10577 10540 +14674 12191 +11555 10225 +10590 10279 +13303 12007 +15497 14100 +14237 14107 +11563 10666 +15798 13770 +15167 12264 +15843 11233 +15257 13369 +14730 10713 +12953 11003 +13061 10874 +12598 10581 +15554 11630 +13486 10713 +14125 10396 +12228 11049 +13577 11618 +14493 10313 +12896 11027 +13158 12278 +15257 12807 +15293 12737 +11834 10821 +13158 10423 +12884 11973 +12278 11996 +13244 11308 +12003 11908 +14683 12992 +14908 12191 +15725 11833 +15380 13930 +12676 10299 +14683 13485 +14869 12478 +14107 11697 +13204 13032 +14100 11986 +14730 12348 +14057 10721 +14869 11259 +14709 12855 +15376 10721 +14875 10154 +14628 14572 +11823 10194 +13485 11123 +15304 13891 +13105 10171 +13184 10466 +14747 13341 +11884 10466 +15043 11193 +11066 10785 +13871 11481 +14771 10372 +15478 14816 +13230 10721 +15323 11057 +15741 11341 +13244 11259 +11630 10551 +14122 11618 +12892 12197 +15282 12779 +15304 14027 +13796 11921 +11433 11292 +11618 10154 +15177 14877 +16091 15249 +14908 10529 +13970 11336 +12223 11057 +14112 10397 +12851 12779 +14709 12184 +12807 11492 +16133 15167 +14321 10158 +14747 12889 +13931 13667 +11028 10304 +13891 12896 +14893 11292 +15096 10434 +11109 10299 +14307 13296 +14869 11921 +14843 13204 +14397 14100 +14307 13121 +12819 10299 +14679 13487 +15167 12451 +15016 13851 +12391 10647 +14107 12758 +14908 11109 +12012 11292 +11823 11298 +10654 10158 +11563 10140 +12915 10299 +15370 11823 +14986 12953 +13936 10965 +14275 13341 +14295 12652 +14747 11618 +11834 10781 +12544 10529 +13891 12451 +12889 12191 +14492 13303 +12951 10397 +14254 13667 +13851 13290 +15293 10551 +12197 10529 +15249 11057 +14100 13485 +15154 11200 +14046 12321 +13871 10423 +14771 13830 +11630 11550 +14193 11697 +15295 10747 +13891 10194 +14869 13296 +14321 13303 +11719 11292 +10590 10136 +14805 11411 +14696 11193 +13244 10821 +15794 13942 +14474 11844 +14747 10926 +12451 10423 +15478 13873 +15304 14869 +11423 10721 +13502 12892 +14747 14122 +12264 11986 +12441 11618 +13930 11648 +15380 13487 +15478 12704 +14268 14046 +16463 12108 +14492 13342 +14730 11057 +13158 12892 +12953 11027 +13061 11282 +14696 13930 +14268 12719 +16091 11057 +12889 11637 +11884 10423 +14730 12451 +13433 11292 +13256 12055 +12171 11619 +14709 13768 +11481 11066 +14004 10666 +12397 11433 +13485 13204 +12332 11908 +15381 11725 +13930 10408 +14635 11057 +12831 12807 +14761 11540 +15249 14397 +12728 10299 +14856 13770 +15534 13389 +15304 11540 +14744 14712 +13930 10299 +14013 11280 +15798 10551 +12889 11057 +11617 11057 +12007 11259 +14709 11388 +14986 11193 +15376 14689 +15167 13398 +12191 11165 +13930 10559 +16133 10747 +14771 10135 +14100 13871 +11612 10693 +13936 10785 +11267 11042 +13495 11697 +15024 12553 +13704 10245 +11726 11563 +12676 11643 +14843 13232 +14288 11719 +15070 10821 +11995 10821 +14986 13303 +15412 12945 +14897 10713 +14262 14100 +15304 12451 +13194 12892 +12807 10170 +10783 10247 +14761 13244 +14711 13930 +15249 12264 +12266 11986 +14747 13296 +15433 11728 +15070 12339 +11433 10821 +14869 12280 +14488 13204 +14730 10431 +13931 12391 +10257 10140 +10994 10158 +13931 10140 +10349 10005 +15412 15370 +12478 12339 +14747 11775 +10994 10581 +14635 12217 +12945 12878 +12892 11057 +14747 13947 +15304 11884 +14025 11618 +11823 10208 +13232 12884 +15282 11227 +13244 12278 +15295 11898 +14027 10431 +13061 12598 +12889 11413 +14100 10257 +14771 14635 +12451 10434 +14718 10551 +15249 11049 +15016 12278 +13541 12953 +13851 12003 +15024 10529 +14524 12884 +13204 10299 +15785 13970 +11973 10792 +14512 12945 +13029 10821 +14683 13461 +13244 10135 +14321 10785 +14231 11042 +13303 10868 +12244 12197 +13495 12197 +15167 14712 +10693 10529 +14730 14112 +13342 12217 +14738 12737 +14553 10135 +11995 11898 +14193 11433 +15304 10423 +10792 10721 +13347 12173 +14730 14259 +15016 13290 +13487 12884 +11298 11267 +14193 11066 +14785 12448 +14027 12339 +13255 13198 +13577 10171 +12779 12708 +14718 11555 +11550 10551 +12549 12173 +11630 10139 +14747 10599 +14771 12889 +10693 10208 +14574 11278 +12197 10849 +14635 12441 +13461 10194 +13863 10170 +13360 12197 +14236 10800 +15024 14819 +11869 10463 +13964 13476 +15554 10416 +14100 10140 +15356 13121 +12278 10781 +14122 14112 +12892 12391 +14321 13851 +11298 10747 +13139 10431 +15798 10405 +11193 10431 +15024 11433 +14574 10990 +14107 10540 +11977 10423 +11995 10800 +13256 10590 +14234 11630 +13931 13204 +12214 10184 +15249 10540 +14747 12191 +13415 12214 +12953 12278 +12339 10409 +14122 10257 +15412 12917 +14275 13495 +15295 14112 +13061 10778 +16133 15502 +15304 14771 +14512 11719 +14112 13198 +15412 13796 +14893 14730 +14679 10279 +14487 11618 +13487 11921 +15376 11697 +13296 10693 +12523 11336 +14627 10551 +13970 10299 +14259 12878 +16091 10535 +14255 12264 +10994 10194 +15016 14321 +12807 11280 +15370 11638 +12266 10728 +16540 15167 +13398 11842 +16133 13829 +14635 12197 +12055 11996 +14706 12197 +14492 13158 +14570 12206 +16091 13796 +13487 13127 +15008 10590 +12451 10257 +12896 12892 +13360 11057 +11259 10874 +12892 11140 +14321 10154 +15785 14485 +11146 11066 +14635 12266 +12878 11067 +13964 13796 +14057 13342 +15887 12184 +14131 13121 +13930 11337 +12676 10304 +14761 11267 +14869 12441 +15304 14893 +12197 11376 +13871 12441 +14771 11824 +11884 10713 +14193 14100 +15304 14100 +13987 10815 +13204 11292 +13851 11042 +10666 10466 +15027 14027 +15323 14814 +12478 11995 +13244 10994 +14100 12953 +14543 11122 +13891 12173 +11540 11042 +12265 10185 +15016 11423 +13264 12892 +13851 12264 +14524 10158 +14122 12191 +11823 10158 +13714 10170 +14122 11684 +14898 14689 +13290 11423 +14908 14712 +11292 10980 +12389 12266 +15304 11042 +12264 12119 +15323 15016 +14057 10423 +15108 12173 +12214 11844 +10416 10304 +11259 10372 +14842 12266 +14100 14098 +14275 11995 +14193 10994 +13495 10685 +14107 10693 +14761 10185 +13342 10397 +11823 10529 +14745 11898 +14685 10721 +14683 14122 +11537 11066 +13230 12055 +11921 11057 +15295 13930 +14696 14082 +13577 10874 +12807 12195 +12108 10529 +12892 12363 +14869 10620 +15618 11764 +14321 11697 +12190 11531 +14761 12191 +14709 10225 +13303 11728 +10397 10299 +14747 12954 +12992 11834 +14457 10559 +14696 13232 +14704 14100 +11630 11463 +15502 11996 +15376 13871 +13987 11728 +13244 11898 +14816 13196 +14182 11728 +15167 10721 +11995 11066 +15700 12748 +14908 11057 +13541 11728 +14082 10994 +15624 11973 +16441 12599 +13296 10721 +13230 11973 +11996 10868 +14107 11638 +15012 11445 +14938 10800 +15741 12815 +14696 11973 +14679 12889 +11775 10685 +12779 11492 +14863 10299 +11592 10721 +15628 10329 +14877 13461 +16738 16737 +14275 10815 +14831 11986 +14576 12889 +14908 11450 +15249 11697 +14112 13303 +14908 11884 +14488 13970 +15304 13495 +14307 12266 +13230 12451 +14771 11630 +14520 11076 +12119 11764 +14112 12390 +14635 10747 +15798 13894 +10599 10397 +14397 11066 +14771 14027 +14893 13931 +13198 11996 +14895 12719 +15153 12892 +14843 13871 +14747 11122 +15376 12264 +15167 11695 +13851 12915 +12544 11057 +11481 11278 +12235 10299 +15862 15293 +13244 12544 +15304 10257 +10693 10268 +14761 13495 +13450 10154 +13485 11233 +14633 11259 +15370 11057 +15412 13360 +14275 13303 +11563 10279 +11487 10551 +13485 13342 +14683 11042 +12953 12323 +12278 11066 +15412 15295 +14679 10721 +13495 12264 +13244 12217 +11845 11630 +13931 13495 +15411 10821 +15016 11109 +11278 10792 +11111 11049 +11503 11292 +15043 14783 +14679 10821 +13434 12769 +13244 10347 +14314 10466 +15356 14711 +11433 11267 +14814 14193 +13830 13109 +15502 14683 +16742 15412 +11695 11399 +15070 11481 +11540 10194 +14574 10821 +14685 10693 +10529 10434 +14130 12709 +13367 10590 +12197 11146 +14524 10994 +13796 10372 +14635 11267 +12278 10821 +14262 13232 +14107 10599 +14234 13873 +14004 11630 +15618 14487 +13342 11986 +13495 11057 +15389 14057 +12266 11884 +14492 12451 +14057 13931 +14027 13204 +11775 10466 +11588 10559 +15304 14635 +14685 14576 +14712 14100 +16584 11630 +11898 11066 +12055 10397 +12945 12191 +15282 12851 +14843 13342 +15841 15741 +15167 12222 +14685 11066 +15478 11550 +12339 12223 +11423 11057 +12737 10551 +16744 10693 +13487 12094 +13931 11292 +14794 13158 +11980 10590 +11421 10819 +11884 11869 +15581 11833 +11624 11259 +11618 10747 +14696 13487 +14869 13198 +12758 10299 +15153 14679 +13303 12264 +14222 12173 +14747 10800 +13958 13655 +13871 10279 +15016 13543 +14683 10562 +15554 13710 +14679 11719 +13211 11337 +14576 12191 +14747 13244 +16498 10990 +13587 11995 +11697 10257 +11697 11618 +13303 11278 +15249 12320 +14843 14027 +11267 10298 +11980 10466 +13796 12391 +14259 11728 +14696 13931 +14814 11618 +11630 10247 +13891 11618 +14952 14761 +14893 14193 +14314 12953 +14730 12448 +14492 11193 +14122 13577 +14635 14570 +11980 11540 +14125 10225 +14633 13487 +10185 10140 +12451 10994 +14893 10599 +11823 10747 +13450 12197 +13296 10800 +14814 11823 +14843 14683 +13871 11193 +10781 10590 +14273 12784 +13044 12574 +15502 10135 +12916 10154 +13422 12448 +14816 10313 +14057 12206 +10693 10140 +16091 15356 +13830 10821 +12478 11259 +14635 14321 +12348 11057 +13970 13196 +15919 11423 +12945 10559 +12266 12206 +14275 10397 +13931 11823 +11869 10011 +12892 12339 +13715 11336 +11252 10135 +14696 10990 +13034 12492 +12451 11423 +15016 10397 +15709 11630 +11617 10868 +14027 13232 +15356 14635 +15919 11618 +12945 12266 +14307 13796 +14112 12915 +13256 11066 +12807 11550 +13256 13244 +13767 10396 +13851 11775 +13158 10800 +13931 12390 +12191 10529 +14730 12264 +13541 10815 +13244 11921 +14869 12992 +14679 11721 +12217 11193 +11282 10778 +13342 11423 +13930 11041 +15570 15154 +11648 10590 +12451 11995 +13464 12884 +13256 11086 +14730 10654 +13303 12348 +10868 10721 +14108 12278 +13851 13158 +12896 11697 +13467 12184 +15070 10257 +11995 11697 +13891 13244 +14730 10849 +14120 11292 +15153 11995 +13541 11618 +14112 11298 +14853 14696 +13871 10299 +14683 12954 +12323 11267 +15887 14718 +12191 11109 +13487 13184 +14771 14683 +12779 10551 +15502 14122 +14831 12264 +15709 15245 +13495 11884 +14704 10990 +13930 12758 +12954 12339 +15412 10874 +14747 11066 +10551 10405 +11630 10416 +16133 14736 +16091 14831 +11259 10540 +13158 10590 +12784 10299 +12278 10279 +13487 10631 +14570 13232 +12892 11481 +12339 11637 +16091 12320 +10324 10170 +12173 10423 +12191 10792 +14512 11423 +12953 11423 +13487 10868 +15356 13930 +14816 12184 +14489 13964 +11638 11109 +16390 11555 +14747 10792 +14553 11995 +14112 13930 +15295 14082 +13933 11337 +13061 12055 +13930 12012 +12598 10819 +11980 11663 +13485 13303 +13795 12323 +12266 10590 +15249 12007 +14025 13577 +13930 12217 +15879 12197 +16091 15275 +14231 10721 +14262 10666 +13930 10268 +15061 11833 +13487 11067 +11697 10140 +13485 12953 +14492 12992 +15012 10299 +15304 10868 +15374 10747 +12951 11278 +12953 11995 +13296 11066 +11042 10713 +13851 12191 +14869 10599 +13809 11086 +16353 11764 +14231 12244 +13930 10558 +11996 10466 +13890 10559 +15167 10990 +14908 13052 +14831 12896 +15096 13891 +12819 10245 +13930 13422 +14730 11995 +14814 11612 +12007 11995 +10868 10821 +14107 11996 +11423 10529 +13115 10304 +14551 11280 +14843 11995 +11697 10599 +13422 11150 +14689 10543 +13495 10693 +11996 11278 +13303 11884 +14100 10994 +14112 13667 +11986 10590 +14805 13970 +14397 10654 +14307 10158 +11844 10304 +13851 13495 +13891 11193 +14908 11697 +15016 10647 +11445 10299 +12889 12197 +15295 13230 +13487 12896 +14730 13487 +14633 13931 +13296 10581 +11433 11057 +15323 11996 +13087 11487 +14843 13495 +15370 12007 +12917 11898 +12451 10627 +14321 12892 +15370 13290 +11423 11109 +13930 12441 +10785 10154 +14771 14489 +14869 14570 +14100 13158 +12945 10990 +13767 10551 +15370 11433 +15548 12197 +14831 12191 +14893 13830 +15023 14908 +13360 10208 +11292 10529 +15043 12339 +15304 10599 +15376 12173 +13714 12321 +13851 12896 +11278 10257 +14814 12896 +10693 10279 +11278 10781 +14107 10800 +12451 12339 +15070 12222 +12297 10661 +11638 10561 +16101 11884 +13930 11624 +15624 13485 +15016 10423 +12217 12191 +14524 13244 +13796 13198 +13303 11540 +15707 13002 +13341 11298 +15167 13781 +16101 10466 +14057 12889 +12266 11298 +15041 14869 +14027 11057 +11986 11641 +13495 12892 +14683 11973 +14685 12266 +13587 11259 +14193 10721 +14814 13244 +13930 13198 +14635 13851 +11066 10874 +14814 12007 +14908 12339 +12671 12294 +15370 10590 +11503 11298 +15741 11401 +15356 13303 +10990 10540 +11481 11259 +15370 10529 +13768 11633 +15085 13770 +14783 14761 +14802 10721 +14109 11292 +14489 13476 +12222 10540 +14730 11884 +13871 10140 +14259 10466 +14321 12451 +13871 11259 +15389 12280 +14321 14231 +14783 11637 +14120 11898 +15304 12397 +15153 11049 +14893 11140 +10397 10155 +14321 14122 +13796 13495 +15798 14130 +13342 10590 +11775 10590 +14843 12441 +14397 14288 +14524 11278 +14730 10469 +14761 12451 +11921 10620 +11618 10994 +11267 10397 +12953 12441 +11977 10781 +14489 13024 +13232 10874 +14843 10693 +14679 11433 +12278 11292 +15096 11775 +11840 10747 +14122 12278 +14107 11150 +14679 11996 +13930 13830 +15016 14869 +13264 10466 +11637 10590 +15370 13198 +13158 10821 +14761 13983 +14683 10140 +16588 10535 +13244 12223 +15049 14895 +10874 10423 +14524 14057 +14831 12574 +14831 14570 +14182 11675 +12451 10397 +14530 13930 +14893 13930 +12853 12184 +14805 11630 +13931 13930 +14512 12266 +12953 11140 +14100 12888 +11049 10466 +14683 13487 +12184 10245 +13806 10299 +12175 12171 +13341 13303 +15376 12917 +14492 10279 +12451 11259 +14856 11535 +13204 12889 +14709 12853 +15472 10783 +12884 11540 +11764 10721 +11977 10590 +11982 10868 +14082 11823 +13930 12992 +15376 13587 +15153 13198 +10693 10557 +14893 13158 +16091 10874 +15016 10967 +13485 13230 +13796 13105 +11921 10849 +13485 10171 +14683 13931 +12953 12206 +13543 13232 +11637 10140 +12266 11433 +12889 10561 +13934 12721 +13277 12191 +11630 10064 +15478 15085 +10775 10225 +14674 10136 +11637 11563 +11995 10540 +15167 13487 +15160 13196 +15153 10778 +12855 10241 +16336 14893 +14730 14397 +15016 11140 +13459 10792 +14098 10208 +15853 10551 +14730 11697 +14635 12323 +13487 11540 +12206 11193 +14711 10397 +13495 13303 +14771 13230 +12391 12191 +14843 12197 +12206 10713 +11618 11537 +12889 10849 +15991 12819 +14718 10304 +15153 14492 +10299 10165 +15370 10279 +15504 14474 +13796 11259 +15096 11898 +13290 13198 +14524 10529 +16091 11111 +15919 12217 +11931 11298 +15323 10397 +13487 11995 +14695 13341 +12191 10171 +14321 10397 +12339 10257 +15721 12822 +12889 11884 +14683 13891 +15502 11066 +15389 10819 +14627 14234 +14908 10821 +14843 10721 +11603 11292 +10466 10397 +13295 10559 +13342 12915 +14112 10676 +11996 11540 +14730 10747 +15862 10405 +10247 10225 +14570 13495 +14100 13487 +14524 11109 +13487 12197 +13873 12774 +12945 11337 +11391 10185 +15048 11563 +10800 10171 +12737 12321 +12896 11057 +14943 14107 +15020 12191 +13770 11227 +14524 12320 +12207 10643 +11884 10620 +15167 14944 +12884 11995 +13485 11298 +15448 14119 +11996 10397 +12917 11618 +14487 10590 +16581 11630 +13871 11292 +14828 14256 +12324 11618 +14485 13970 +16133 11267 +14992 14945 +14952 10559 +15709 13970 +14871 10666 +11066 10721 +10849 10643 +11603 10781 +13796 13303 +15304 10397 +12266 10868 +16725 10800 +15160 13676 +11764 10693 +11563 11122 +15016 13296 +12478 11433 +14122 11298 +14685 13788 +16698 11630 +15376 13296 +13418 13348 +14842 12896 +14783 11278 +12184 10926 +12087 11630 +14908 10721 +11337 11076 +14679 11259 +14761 14683 +14485 13806 +14747 10397 +14107 10423 +14307 12451 +14843 10158 +14893 12451 +11973 11298 +13034 12173 +15356 11433 +15618 13796 +15304 14057 +15478 15049 +14831 11165 +10917 10299 +14893 10930 +13342 10781 +14046 10299 +14895 10299 +14730 13029 +14986 11973 +14712 13796 +13029 11898 +15295 10298 +15601 14893 +13244 10408 +11423 10431 +14524 11697 +14893 12758 +13230 12223 +13863 12866 +15502 10821 +10529 10135 +12954 10423 +14530 10325 +12853 10299 +14683 12339 +12892 12451 +11298 10423 +11884 10194 +16091 15370 +11973 11057 +14004 11762 +14747 11298 +14524 10693 +11995 11252 +11057 10158 +15380 11540 +14711 12264 +15008 11003 +11123 10693 +14893 11697 +15370 13461 +14908 13796 +14679 10562 +14057 13796 +11995 11109 +12197 10721 +11624 11066 +14730 12265 +12953 10647 +10170 10042 +11298 10559 +13303 13198 +15356 14100 +13809 13495 +15370 13303 +11433 11109 +12574 10994 +14107 13891 +15282 14282 +15304 13032 +15278 13873 +11603 11433 +14771 14524 +16091 11003 +13342 11203 +14685 14122 +14730 13061 +11577 11042 +11973 11252 +14679 11637 +14814 13241 +12441 11298 +14696 14107 +14843 13176 +11721 10529 +11643 10640 +14182 13577 +13577 10397 +14771 14107 +13342 11721 +14275 11540 +13296 12278 +13768 10184 +13127 10559 +11057 10732 +12855 12779 +14570 14107 +12951 10599 +14712 10661 +15304 10713 +12451 11042 +11433 10529 +13674 13485 +11057 11027 +14685 13342 +14493 11702 +13930 11637 +13830 12982 +14869 11057 +14108 14082 +13342 12571 +15167 14539 +13342 11898 +11066 10868 +15532 13536 +14869 12758 +14107 12953 +14027 10874 +15295 11638 +14492 14082 +13211 11274 +12954 10299 +12266 11003 +14783 11298 +14107 10466 +12391 12265 +14057 10792 +14122 11433 +15096 14100 +15370 10792 +11511 10245 +11292 11057 +14695 13930 +12884 11298 +13891 10590 +14893 10715 +15167 14685 +11833 11630 +15412 12339 +14747 13873 +12441 11049 +13487 11066 +14524 12197 +15023 12892 +12087 11280 +16091 15323 +16133 13485 +14730 12953 +13433 11898 +16091 12280 +13495 13198 +12915 12217 +15554 12195 +15624 11697 +13871 13198 +12478 11111 +12119 10535 +10781 10171 +12348 10821 +15376 14814 +15412 12992 +15376 14262 +15167 10198 +13244 10721 +11618 11481 +14635 13796 +12719 10241 +13873 13841 +14474 12868 +15153 11433 +14747 11278 +11123 10800 +15412 10158 +13461 11049 +12223 10654 +13342 10994 +12173 10397 +10927 10540 +11298 11197 +14107 11193 +14730 12173 +14112 10980 +13198 11697 +14570 12953 +14234 11550 +12339 12278 +13958 10683 +16133 11042 +15249 13296 +14050 11259 +13127 11884 +14107 13871 +12264 11775 +14908 14831 +15624 14098 +14685 11267 +14057 10599 +14771 11540 +14027 10599 +13303 11898 +15167 13931 +15043 11540 +14761 10408 +14908 12278 +11298 10849 +12892 11884 +13232 11481 +14262 12892 +12544 11267 +15861 13767 +14893 12266 +15370 12892 +13204 11259 +14679 12191 +13109 12174 +14182 12932 +12197 10154 +11697 11433 +14027 10821 +13244 10781 +12094 11298 +13485 11259 +10754 10304 +11790 10965 +10372 10325 +15447 14150 +10693 10423 +14570 13891 +14539 13296 +12855 11952 +12945 11049 +14828 10299 +12108 11842 +13768 12214 +15016 10685 +10721 10136 +10868 10590 +14747 10279 +13277 11308 +16567 10299 +15016 13204 +11140 10721 +13495 12191 +11193 10781 +13204 10135 +10849 10627 +11066 11003 +15016 12375 +14627 11550 +13796 13061 +13587 11193 +12222 12197 +14475 13087 +14704 11066 +11292 11140 +14761 14574 +12953 10781 +14397 11697 +14814 12889 +14627 12855 +15794 11845 +13198 12391 +12892 12758 +13796 10171 +13221 11775 +14565 14197 +13232 11298 +13796 10466 +14831 11066 +14122 14082 +13931 11423 +15741 12847 +12892 11921 +12264 10849 +13930 13360 +13931 13577 +13541 13032 +14314 11884 +13342 10685 +13076 11996 +13964 10385 +10821 10785 +10713 10620 +14683 11563 +14635 11719 +13034 12549 +14321 12339 +12544 10298 +15478 12822 +14524 13930 +15154 13851 +15853 10245 +14893 14683 +14785 12197 +15504 10299 +15153 11193 +13377 10397 +11109 10615 +14656 14397 +12932 12478 +14893 12992 +13689 13303 +16091 13495 +14027 13796 +13341 10397 +13342 10990 +15370 13485 +14814 10562 +10577 10529 +12339 12197 +11859 10299 +14259 12173 +14761 10654 +11193 10647 +14307 11278 +15231 10204 +11259 11066 +12992 12953 +14869 14492 +15295 11823 +14520 13487 +14831 11996 +14771 13871 +15721 10416 +15376 14869 +12892 11259 +14098 10994 +14696 11057 +15048 13871 +12709 11555 +12917 11982 +16429 10540 +14524 11057 +14761 13871 +13230 11193 +13487 11823 +10721 10372 +13029 11193 +13196 12676 +13204 10792 +14696 14397 +13230 10792 +15709 10299 +13255 11076 +14869 14831 +14100 12889 +15376 12266 +11540 10466 +14716 14679 +15624 10676 +14679 11267 +12266 11150 +13244 10785 +13930 10994 +13587 13303 +11840 11267 +14122 13244 +15422 12134 +13158 10599 +14098 10581 +11415 10819 +14635 10792 +13461 12955 +15412 11111 +13296 11292 +14107 13796 +13851 11066 +14747 13342 +10627 10397 +14679 13830 +14635 11193 +16091 11292 +13930 11996 +11719 10466 +14783 10423 +15167 13541 +14397 13256 +11140 10693 +13599 12197 +14747 11884 +14576 14524 +15016 12339 +12278 10194 +15016 11111 +14107 11423 +14893 12478 +14730 11612 +15618 10397 +11986 11884 +14747 10529 +14986 11057 +11986 11938 +14679 14492 +13970 10139 +14696 11337 +12278 10792 +13296 11252 +15412 11049 +13768 11630 +13061 10469 +14307 13204 +11049 10216 +13540 11588 +12222 10135 +16339 11630 +12339 10693 +14082 11267 +13495 12391 +15167 10785 +11588 10666 +14771 10994 +10431 10397 +13158 11292 +15020 10693 +14633 11298 +14747 14533 +12441 11292 +15049 11845 +14627 11555 +16091 12055 +13930 11288 +12391 10721 +14814 14275 +14275 13342 +14679 13198 +12339 10185 +14119 12784 +14485 10640 +14576 12953 +13303 11376 +11057 10299 +12197 10589 +10721 10581 +14747 11540 +10994 10540 +15304 13303 +14685 11433 +14685 12917 +13367 11298 +15855 12916 +13303 12149 +16218 14635 +15295 10647 +14869 14512 +13829 13244 +14122 12892 +15370 11423 +15020 14689 +11057 10185 +13303 12266 +11057 10693 +12953 10821 +14696 14112 +15624 14122 +14831 10423 +15628 10693 +11308 10397 +12339 10208 +15381 11898 +13230 11433 +14100 13198 +15370 14761 +14683 13341 +13198 10747 +12855 12709 +13198 10194 +13158 12992 +13487 10620 +12945 12451 +15570 13244 +12195 10416 +12889 11721 +15323 14112 +15215 14582 +10540 10185 +14107 11259 +12945 12348 +13485 11203 +13296 11433 +13204 11042 +15293 12853 +13796 13296 +13806 10139 +11986 11292 +14321 13360 +14761 11027 +15295 14656 +12892 12134 +14831 14321 +12173 10466 +10792 10647 +13342 12206 +11764 10613 +14843 12892 +12339 11109 +11996 10792 +14771 12217 +15376 10590 +14268 10241 +15016 14843 +14150 10874 +14843 14685 +15570 12544 +15478 10551 +14635 12478 +13341 12574 +15376 13342 +15016 14730 +11066 11042 +15016 12478 +14307 12953 +14771 10627 +12391 11996 +13230 10466 +13894 12719 +13029 12264 +15093 13461 +13003 11392 +12992 11259 +11049 10171 +14683 14100 +14771 10800 +12222 10535 +14908 10423 +15085 10416 +15282 11952 +14689 10279 +14831 11122 +12785 10170 +15070 11193 +12339 10529 +15478 10304 +14730 10185 +14570 11618 +12264 11193 +14679 10558 +15381 13487 +12206 10821 +14711 10257 +15016 13931 +15167 10821 +15167 13105 +14098 13296 +12191 11789 +14100 10857 +12389 11637 +12222 10821 +13894 10299 +10278 10170 +12129 10590 +12544 10466 +14027 12544 +13495 11140 +15709 10225 +11834 10325 +14112 12917 +13244 11637 +14831 11648 +15554 10304 +15412 10466 +11471 10590 +14524 13296 +11719 11193 +14307 11624 +13851 10136 +14307 12892 +11789 11775 +14709 13873 +11938 11013 +11612 10136 +14747 10135 +14122 12574 +11423 10994 +11057 10279 +12892 10397 +14288 10590 +14477 11588 +14100 10558 +14259 11995 +13891 11721 +11109 10849 +15016 11995 +13930 12451 +13061 12206 +14747 10849 +15304 12898 +12598 10747 +14122 12266 +14816 12807 +15472 10396 +14193 11618 +13931 11252 +14027 13851 +14696 14108 +16390 15406 +14574 13303 +13158 10849 +12841 10170 +11973 11140 +12191 11111 +15231 12523 +13433 11122 +14679 12758 +14814 11298 +11150 10599 +14831 12266 +14057 13232 +12917 11697 +13244 10874 +14843 14057 +15027 10868 +10775 10247 +11996 10257 +15023 12889 +12335 11587 +13398 13105 +14843 11193 +11563 11292 +13002 11431 +11278 10581 +11481 10693 +11041 10630 +12264 10299 +13796 13204 +11845 10754 +13434 11630 +11042 11027 +11630 10640 +15163 13198 +14761 12323 +12171 10204 +15412 12574 +12953 11278 +12191 10208 +13958 10800 +12264 10713 +14761 11637 +14109 11540 +13891 10561 +14635 13296 +12339 10990 +13244 13158 +14761 13277 +13796 12889 +12889 11233 +15160 10551 +13577 10994 +16091 11618 +14082 10874 +15548 10815 +15897 14869 +13495 10140 +13891 12436 +15070 12478 +12822 11630 +16429 12222 +11267 10994 +15370 12206 +14307 13244 +12478 10397 +12323 10397 +13232 12391 +13736 13667 +14107 10529 +10620 10558 +15919 11298 +12339 10557 +14685 14100 +14843 11884 +11618 11146 +11399 10661 +14112 11423 +13891 10397 +13629 10926 +12523 12079 +12003 10615 +14288 12264 +13342 10821 +11618 11337 +12807 10139 +13535 12197 +14576 10423 +13204 12478 +14112 12945 +15027 12953 +13377 10185 +13930 10849 +12884 10693 +13871 12197 +15618 14843 +12953 10693 +11833 10551 +12087 11844 +14730 10590 +15024 13029 +10849 10732 +10721 10540 +13796 12954 +10423 10397 +13891 11540 +14730 10529 +15295 10590 +13303 12397 +13796 10849 +11618 10732 +14524 10431 +15096 10792 +13520 13034 +11259 11150 +13931 10819 +11085 10140 +14905 14689 +14109 12889 +11214 10754 +15656 12197 +11973 11267 +15412 11066 +14275 11618 +11618 10158 +14321 13244 +12951 12451 +14689 11098 +13487 12217 +14635 10529 +14869 14794 +14771 10590 +15323 12574 +12478 11423 +13204 11140 +13109 12173 +13342 13232 +14730 11109 +14122 13485 +13398 10785 +13871 10559 +11834 11298 +14057 13117 +13422 11823 +15376 12954 +14843 10821 +14842 13459 +13795 11995 +12896 10423 +13891 11697 +14869 11092 +15096 11456 +12339 11603 +12211 10800 +11823 10155 +13303 12882 +13851 10821 +13198 11267 +13344 13342 +15045 13303 +14919 11336 +15370 14893 +13507 12197 +13487 11003 +12054 11193 +14307 11193 +14996 13398 +14685 12264 +10535 10171 +12769 12719 +13487 11292 +15154 11344 +15167 11827 +11823 10685 +14275 11996 +14771 12982 +14875 12197 +11267 10800 +14321 11278 +12638 12635 +10874 10431 +14819 10732 +15412 11267 +14492 10800 +14908 13244 +12173 11697 +13930 13486 +14457 10466 +14577 13851 +14107 12448 +12704 10299 +14570 11563 +13303 10431 +14193 10599 +13296 10423 +13232 11961 +14683 11921 +13369 11630 +13303 10540 +14831 13303 +14524 13931 +13930 11267 +14255 12478 +12191 11973 +14100 10785 +11921 10721 +16603 14477 +14282 12853 +15798 15282 +11630 11445 +12892 10279 +15096 14751 +11067 11066 +12278 11540 +13930 10821 +13851 13461 +14905 14898 +14761 14307 +12544 12397 +12191 10747 +14730 12206 +11898 11563 +14814 13871 +15304 14512 +11298 11057 +14730 10693 +14635 13297 +15785 14804 +14100 13461 +15919 11193 +14218 10299 +14576 12892 +13930 10158 +11973 11066 +13577 12945 +12945 10135 +13105 11066 +14492 10732 +15973 15458 +14057 11066 +10754 10640 +15389 12892 +14869 11648 +13871 11995 +15707 12652 +10994 10874 +10155 10136 +11834 10800 +13398 12222 +13061 11433 +13244 11423 +11484 10961 +13198 10693 +11423 11278 +14869 11618 +14252 10666 +12851 10405 +14730 14100 +12544 11423 +15167 11577 +14814 11193 +15153 11953 +14783 14730 +12266 11618 +15096 15016 +12954 11259 +11726 10590 +14814 11540 +11898 10141 +11445 11336 +12265 10154 +15885 15741 +13204 11537 +14574 11973 +14321 13796 +14709 10165 +15624 11278 +15049 10754 +13930 11884 +14057 12156 +14256 10299 +13198 10874 +14112 13495 +15370 10721 +11453 11259 +13987 12068 +14698 14236 +14574 12544 +12878 11996 +14307 11042 +12156 11292 +13796 10185 +10917 10245 +13871 12899 +13486 12889 +12173 10800 +13933 11057 +13796 11884 +15323 10216 +12915 11292 +14869 10540 +11587 11278 +14283 10800 +15376 10800 +12953 11921 +14771 13232 +15570 11982 +14648 12197 +14730 10194 +10434 10135 +12544 11193 +14893 14492 +15380 11292 +14893 11433 +14761 12280 +14150 12339 +13487 11648 +14492 12478 +15376 10630 +14805 13942 +13277 10185 +14576 13244 +15991 10926 +13232 11066 +14100 13796 +10423 10279 +11775 10620 +15096 11027 +14816 12719 +13485 12451 +14696 10721 +11637 10994 +11921 10590 +12441 12217 +13930 11193 +14112 11980 +14307 10216 +12323 10158 +14679 14635 +14648 10721 +10785 10397 +10243 10170 +14259 12264 +14492 11986 +16479 12391 +14761 10676 +10419 10397 +14738 10926 +12478 10135 +13046 12339 +10721 10693 +15843 14534 +11630 11214 +10747 10559 +12451 11953 +13495 10599 +14797 12523 +13930 12511 +15016 10800 +14492 12945 +15478 15245 +14092 11259 +14570 13296 +11630 11193 +13970 11388 +14987 14880 +10590 10140 +15412 10994 +14492 10599 +14524 11641 +14524 10821 +12945 10821 +13230 10821 +14679 11697 +13342 11618 +11986 11259 +14057 10800 +13151 10317 +15096 13485 +13930 12544 +11884 10268 +14880 10551 +11057 11042 +12945 12339 +13277 10781 +12945 11111 +14467 13024 +14524 13303 +13303 10781 +14553 10599 +11898 10469 +12992 10800 +14182 13541 +11996 10540 +14100 11728 +12889 12003 +14397 11827 +13485 10980 +14814 13495 +14877 14869 +15919 10529 +16498 14524 +12932 10721 +11267 10747 +15024 13930 +12191 10140 +13809 10821 +16133 11973 +12889 11140 +11193 10693 +12953 11603 +14633 13232 +11842 10154 +15024 14843 +14307 12007 +16722 14802 +14816 10299 +14234 12769 +11996 11986 +15024 12478 +13487 11337 +14893 10918 +13930 10713 +14683 14576 +11728 11577 +15096 10466 +13485 10408 +13296 12884 +11995 10792 +13485 12884 +13303 10599 +15085 10304 +12278 11267 +10620 10194 +14167 10245 +13232 12191 +13676 10304 +15700 12321 +10397 10208 +15853 10299 +14747 13127 +13930 11003 +14816 12087 +15356 14027 +14843 13487 +15304 14747 +13891 11057 +14856 11941 +15376 13930 +14771 10559 +15177 10559 +12708 10299 +14771 11433 +10996 10313 +13303 11834 +12278 11612 +12391 10257 +13303 12390 +13296 10540 +14100 10135 +12992 12264 +14771 11292 +15085 12195 +12266 10279 +11540 10599 +12451 11996 +11057 10423 +13930 12448 +11587 11076 +13196 12719 +14125 10775 +13485 11618 +14761 10529 +15016 13367 +12324 12266 +11423 11027 +15930 13763 +12173 12016 +13348 13198 +15304 13342 +11996 11140 +15370 14843 +14004 10466 +14057 10994 +11982 11540 +14100 12441 +14321 11003 +15370 11267 +13342 12889 +11725 11042 +14908 14635 +15167 11259 +12363 12127 +13296 12264 +14635 10140 +14275 10194 +13342 10424 +13704 12841 +14057 11267 +14730 11086 +13303 11503 +15412 10821 +15016 13796 +15370 11109 +11259 10529 +12315 10299 +11697 11292 +14027 10792 +14397 12451 +11563 11203 +13158 12448 +11859 11630 +14107 12264 +12478 10590 +14275 13232 +14027 11193 +14082 12945 +14576 14027 +10849 10713 +14893 14307 +14831 14100 +12339 11495 +10170 10030 +14100 11764 +13796 12217 +14457 12889 +13495 12917 +14013 11630 +14869 10257 +13796 11648 +14112 12339 +11603 10590 +14112 11259 +14893 10257 +15304 15249 +14843 14712 +14893 10713 +14761 10792 +12173 10821 +12266 11503 +13987 13535 +14761 14576 +11193 10721 +11109 10397 +13290 12264 +10821 10135 +13341 11123 +13244 10397 +14275 13796 +15741 14256 +14182 13987 +14057 12478 +10620 10559 +11423 10397 +12892 10558 +14321 11996 +12321 11511 +14282 11952 +14683 10559 +12896 12197 +12719 10313 +12945 11834 +13495 13200 +13232 11123 +14843 11996 +11762 10666 +15370 15304 +14893 11522 +11905 11066 +13851 11823 +14771 11098 +15295 10185 +14262 11376 +16091 13485 +14747 13264 +13341 10423 +15370 13495 +14689 10397 +14006 13344 +11646 11431 +15304 12206 +15027 12553 +14524 11995 +10994 10466 +12007 10540 +14321 12992 +15096 13198 +14635 13204 +15447 13487 +15016 14908 +12992 12190 +11630 10775 +11193 10172 +14685 13244 +14262 13796 +14761 10434 +11057 10540 +11624 10821 +11298 10581 +13930 11298 +12896 11259 +14689 14107 +15074 11603 +15167 14098 +15167 12494 +12878 11278 +15167 14778 +13342 11563 +12266 11638 +11122 10397 +13204 11433 +14893 12264 +13461 11421 +11336 10299 +10821 10647 +12448 11421 +12191 11884 +16091 14761 +14730 14193 +13003 10245 +15825 12992 +14122 10994 +11728 11456 +15412 14057 +14314 11764 +13342 11973 +13485 11193 +10551 10299 +14869 11603 +14576 12323 +16634 14802 +14771 11986 +14530 13830 +14492 14321 +13303 11537 +14193 13930 +12884 11618 +14082 12917 +14057 12278 +13422 11057 +12055 11618 +14288 11298 +12087 11555 +14696 11697 +11525 10466 +11630 10184 +14492 11027 +13495 12889 +14761 11003 +11986 11193 +14553 12197 +11233 10800 +11122 10466 +14730 12889 +16133 12953 +13139 12339 +13485 10685 +11721 10423 +11995 10693 +11278 11203 +13871 12878 +14570 11042 +14122 10800 +11721 11433 +11905 11563 +15380 12339 +12339 10874 +13930 13487 +13342 13105 +13891 13342 +13768 12615 +15339 11844 +14869 14252 +14107 12451 +14747 13232 +13303 11423 +11111 10868 +11884 11298 +11638 11298 +13894 12807 +11550 10304 +13931 12264 +14570 13930 +13297 10561 +14987 14493 +15096 15070 +12951 12544 +15581 10349 +13232 11764 +11123 10849 +14685 10800 +13930 13341 +13535 10535 +14730 10257 +15249 10397 +13577 11433 +12278 11150 +13367 11066 +14816 12676 +13485 12478 +13930 13667 +12574 10431 +14831 14679 +10994 10423 +12451 10562 +12244 10529 +13931 12323 +14711 12898 +11941 11535 +11123 10540 +14797 11997 +13487 12003 +15406 11555 +13198 12055 +15124 11630 +15295 12892 +13230 11697 +11563 10558 +16091 14711 +15861 14102 +15041 10800 +15293 14627 +15096 10821 +15919 12266 +11641 11298 +15167 15096 +14553 13487 +14960 12889 +14771 11996 +15481 10216 +13369 10551 +14831 11292 +11214 10783 +14570 10257 +12478 11278 +13342 11764 +14709 10396 +15370 14771 +13295 11423 +14698 12892 +14747 11423 +11433 10333 +12851 10551 +12323 11066 +15008 11699 +12807 11559 +12868 10184 +14057 10140 +14100 12574 +12953 11066 +13424 10800 +13830 10257 +15167 14524 +13894 11492 +12898 10158 +11066 10683 +13873 11388 +13369 12831 +14831 11267 +14831 14303 +16091 12397 +14730 12571 +12278 10397 +14553 10821 +11775 10868 +11098 10800 +13871 10800 +14986 13577 +13198 11292 +13230 13061 +16091 10540 +13890 11198 +12708 11630 +14747 11603 +14107 13296 +14679 11884 +15167 14908 +15709 15478 +14512 12441 +13485 10185 +12953 11638 +15579 13710 +15624 11298 +15012 14919 +11995 10529 +14908 10558 +14492 13930 +13398 10821 +11986 11898 +13061 11790 +12397 10257 +15257 11630 +14828 11997 +12264 10800 +14747 12892 +15249 13487 +14730 13151 +12884 11066 +12191 10693 +13495 13296 +10529 10423 +11977 10466 +14307 13303 +16346 15741 +14524 12544 +15570 10747 +12451 11495 +13851 11977 +14730 10146 +13577 11146 +14092 10529 +11637 11259 +11618 11423 +12223 10158 +14869 10299 +15422 13192 +14771 11109 +14893 12945 +13232 11067 +11697 10874 +11618 11042 +11728 10414 +11618 11278 +14057 11481 +12544 10423 +14314 13796 +16091 13461 +14100 10933 +14492 14057 +13930 12197 +15447 13495 +12953 10208 +11146 10990 +14107 14027 +13485 12339 +15380 11013 +15049 11941 +12478 11641 +13230 11618 +14893 11884 +14057 11259 +15096 10994 +16454 11764 +14524 11842 +12197 10540 +11049 10781 +15010 13485 +11637 10559 +11630 11555 +13795 12945 +14761 10581 +15618 13830 +13495 10647 +10590 10141 +14027 10529 +15370 14679 +14893 12191 +11540 10257 +15167 14122 +14771 11775 +14869 11540 +14747 14113 +13158 10279 +14570 10372 +12954 11066 +12953 11109 +15016 13577 +11447 11292 +15070 12266 +14771 11884 +14730 11066 +11618 10299 +11423 10693 +13377 11298 +13495 13342 +15304 15096 +15096 13341 +14869 13232 +13230 11292 +14100 11618 +12370 11630 +12191 10800 +15045 12173 +16722 16721 +11898 10466 +16133 13230 +12932 10581 +12915 11618 +15478 12615 +14747 13830 +15862 12779 +14730 11292 +12206 11292 +12441 10800 +13105 12947 +15570 13891 +14057 10466 +14683 11503 +12896 12339 +14273 12635 +12855 10551 +13303 11042 +11697 11042 +13367 13244 +12807 10416 +10247 10184 +13891 10599 +12855 12184 +12945 10257 +13851 10685 +11884 11233 +15618 15041 +13873 12235 +15070 11697 +15304 11624 +15376 13487 +15024 14100 +11898 10918 +11982 10397 +14197 11982 +14542 13930 +14470 11624 +13871 13303 +12478 11086 +15024 14307 +12953 11884 +15478 13806 +15370 13871 +14303 14107 +11697 10819 +12853 10405 +14816 11630 +12892 11049 +11867 11298 +14100 11140 +12892 12478 +14635 12391 +14986 13296 +13244 12892 +13829 10155 +13422 11146 +14108 11278 +14771 13485 +14814 14098 +12889 11996 +14747 13303 +10620 10466 +14674 11298 +12197 11697 +13851 13487 +15497 11057 +13232 10372 +11973 10868 +14122 12217 +11559 10551 +14100 10569 +13377 10140 +16091 11823 +14730 13495 +14457 10965 +11150 11049 +12339 12191 +15478 10754 +14804 10170 +11618 10792 +14747 11762 +12451 10731 +15167 10267 +14100 11884 +13256 11122 +11292 10299 +11845 10299 +15304 11921 +11643 11007 +15599 11630 +14397 14027 +14046 12294 +15096 11433 +15167 14802 +13277 11834 +12244 10815 +13485 12892 +13930 11471 +10994 10800 +11630 11098 +14524 11259 +11618 10408 +13341 12954 +14492 10423 +12266 11042 +12222 10721 +14730 14027 +13715 12784 +13461 11996 +15323 10693 +14574 12898 +11057 10721 +14050 10683 +11762 10559 +13244 10868 +13433 11233 +14122 13495 +14679 14321 +14986 10994 +14683 13244 +13369 10313 +13767 10754 +12391 11433 +15534 14730 +14716 11057 +12191 11066 +14679 14314 +13851 12007 +13487 10627 +13577 12264 +12544 10434 +15862 11952 +15502 15323 +14524 13204 +12748 12720 +14843 10792 +12954 10800 +15376 11986 +15016 13295 +14576 10874 +14107 12954 +11298 11292 +14122 11057 +14960 11433 +14512 11618 +11953 10868 +12003 11423 +11041 10372 +14843 11298 +15249 11995 +11828 11630 +14457 12266 +12402 12173 +13796 11252 +14771 12892 +14761 14730 +14397 10643 +11986 11699 +15096 10529 +10245 10170 +14771 10721 +12519 11447 +11697 10792 +12339 11641 +12197 11493 +13204 12191 +13244 12896 +14893 11002 +14182 13984 +11953 11617 +14908 10325 +12173 11292 +15016 12206 +14570 11233 +13487 11721 +11193 10434 +15310 10423 +14683 14307 +11298 10599 +12339 10559 +12892 10559 +16091 13198 +13487 12441 +13232 11721 +11898 11315 +15236 10299 +11267 11057 +13055 12652 +13459 11587 +14081 11399 +13303 10747 +13029 12892 +13930 11618 +12278 11423 +14747 11267 diff --git a/GraphEmbedding-master/data/wiki/Wiki_category.txt b/GraphEmbedding-master/data/wiki/Wiki_category.txt new file mode 100644 index 0000000000000000000000000000000000000000..2328bd009dccb2e22696719dcd7f514799e5b246 --- /dev/null +++ b/GraphEmbedding-master/data/wiki/Wiki_category.txt @@ -0,0 +1,2405 @@ +0 8 +1 8 +2 8 +3 8 +4 8 +5 8 +6 8 +7 8 +8 8 +9 8 +10 8 +11 1 +12 1 +13 1 +14 1 +15 1 +16 1 +17 1 +18 1 +19 1 +20 1 +21 1 +22 1 +23 1 +24 1 +25 1 +26 1 +27 1 +28 1 +29 1 +30 1 +31 1 +32 1 +33 1 +34 1 +35 1 +36 1 +37 1 +38 1 +39 1 +40 1 +41 1 +42 1 +43 1 +44 1 +45 1 +46 1 +47 1 +48 1 +49 1 +50 1 +51 1 +52 1 +53 1 +54 1 +55 1 +56 1 +57 1 +58 1 +59 1 +60 1 +61 1 +62 1 +63 1 +64 1 +65 1 +66 1 +67 1 +68 1 +69 1 +70 1 +71 1 +72 1 +73 1 +74 1 +75 1 +76 1 +77 1 +78 1 +79 1 +80 1 +81 1 +82 1 +83 1 +84 1 +85 1 +86 1 +87 1 +88 1 +89 1 +90 1 +91 1 +92 1 +93 1 +94 1 +95 1 +96 1 +97 1 +98 1 +99 1 +100 1 +101 1 +102 1 +103 1 +104 1 +105 1 +106 1 +107 1 +108 1 +109 1 +110 1 +111 1 +112 1 +113 1 +114 1 +115 1 +116 1 +117 1 +118 1 +119 1 +120 1 +121 1 +122 1 +123 1 +124 1 +125 1 +126 1 +127 1 +128 1 +129 1 +130 1 +131 1 +132 1 +133 1 +134 1 +135 1 +136 1 +137 1 +138 1 +139 1 +140 1 +141 1 +142 1 +143 1 +144 1 +145 1 +146 1 +147 1 +148 1 +149 1 +150 1 +151 1 +152 1 +153 1 +154 1 +155 1 +156 1 +157 1 +158 1 +159 1 +160 1 +161 1 +162 1 +163 1 +164 1 +165 1 +166 1 +167 1 +168 1 +169 1 +170 1 +171 1 +172 1 +173 1 +174 1 +175 1 +176 1 +177 1 +178 1 +179 1 +180 1 +181 1 +182 1 +183 1 +184 1 +185 1 +186 1 +187 1 +188 1 +189 1 +190 0 +191 0 +192 0 +193 0 +194 0 +195 0 +196 0 +197 0 +198 0 +199 0 +200 0 +201 0 +202 0 +203 0 +204 0 +205 0 +206 0 +207 0 +208 0 +209 0 +210 0 +211 0 +212 0 +213 1 +214 1 +215 1 +216 1 +217 1 +218 1 +219 1 +220 1 +221 1 +222 1 +223 1 +224 1 +225 1 +226 1 +227 1 +228 1 +229 1 +230 1 +231 1 +232 1 +233 1 +234 1 +235 1 +236 1 +237 1 +238 1 +239 1 +240 1 +241 1 +242 1 +243 1 +244 1 +245 1 +246 1 +247 1 +248 6 +249 6 +250 6 +251 6 +252 6 +253 6 +254 6 +255 6 +256 6 +257 6 +258 6 +259 6 +260 6 +261 6 +262 6 +263 6 +264 6 +265 5 +266 5 +267 5 +268 5 +269 5 +270 5 +271 5 +272 5 +273 5 +274 5 +275 5 +276 5 +277 5 +278 5 +279 5 +280 5 +281 5 +282 5 +283 5 +284 5 +285 5 +286 5 +287 5 +288 5 +289 5 +290 5 +291 5 +292 5 +293 5 +294 5 +295 5 +296 5 +297 5 +298 5 +299 5 +300 5 +301 5 +302 5 +303 5 +304 5 +305 5 +306 5 +307 5 +308 5 +309 5 +310 5 +311 5 +312 5 +313 5 +314 5 +315 5 +316 5 +317 5 +318 13 +319 13 +320 13 +321 13 +322 13 +323 13 +324 13 +325 13 +326 13 +327 13 +328 13 +329 13 +330 13 +331 13 +332 13 +333 13 +334 13 +335 13 +336 13 +337 13 +338 13 +339 13 +340 13 +341 13 +342 13 +343 13 +344 13 +345 13 +346 13 +347 13 +348 6 +349 6 +350 6 +351 6 +352 6 +353 6 +354 6 +355 6 +356 6 +357 6 +358 6 +359 6 +360 6 +361 6 +362 6 +363 6 +364 6 +365 6 +366 6 +367 6 +368 6 +369 6 +370 6 +371 6 +372 6 +373 6 +374 6 +375 6 +376 6 +377 12 +378 12 +379 12 +380 12 +381 12 +382 12 +383 12 +384 12 +385 12 +386 15 +387 15 +388 15 +389 15 +390 15 +391 15 +392 15 +393 15 +394 15 +395 15 +396 15 +397 15 +398 15 +399 15 +400 15 +401 15 +402 15 +403 15 +404 15 +405 15 +406 15 +407 15 +408 15 +409 15 +410 15 +411 15 +412 15 +413 15 +414 15 +415 15 +416 15 +417 15 +418 15 +419 15 +420 15 +421 15 +422 15 +423 15 +424 15 +425 15 +426 15 +427 15 +428 15 +429 15 +430 15 +431 15 +432 15 +433 15 +434 15 +435 15 +436 15 +437 15 +438 15 +439 15 +440 15 +441 15 +442 15 +443 15 +444 15 +445 15 +446 15 +447 15 +448 15 +449 15 +450 15 +451 15 +452 15 +453 15 +454 15 +455 15 +456 15 +457 15 +458 15 +459 15 +460 15 +461 15 +462 15 +463 15 +464 15 +465 15 +466 15 +467 15 +468 15 +469 15 +470 15 +471 15 +472 15 +473 15 +474 15 +475 15 +476 15 +477 15 +478 15 +479 15 +480 15 +481 15 +482 15 +483 15 +484 15 +485 15 +486 15 +487 15 +488 15 +489 15 +490 15 +491 15 +492 15 +493 15 +494 15 +495 15 +496 15 +497 15 +498 15 +499 15 +500 15 +501 15 +502 15 +503 15 +504 15 +505 15 +506 15 +507 15 +508 15 +509 15 +510 15 +511 15 +512 15 +513 15 +514 15 +515 15 +516 15 +517 15 +518 15 +519 15 +520 15 +521 15 +522 15 +523 15 +524 15 +525 15 +526 15 +527 15 +528 15 +529 15 +530 15 +531 15 +532 15 +533 15 +534 15 +535 15 +536 15 +537 15 +538 15 +539 15 +540 15 +541 16 +542 16 +543 16 +544 16 +545 16 +546 16 +547 16 +548 16 +549 16 +550 16 +551 16 +552 16 +553 16 +554 16 +555 16 +556 16 +557 16 +558 16 +559 16 +560 16 +561 16 +562 16 +563 16 +564 16 +565 16 +566 16 +567 16 +568 16 +569 16 +570 16 +571 16 +572 16 +573 16 +574 16 +575 16 +576 16 +577 16 +578 16 +579 16 +580 16 +581 16 +582 16 +583 16 +584 16 +585 16 +586 16 +587 16 +588 16 +589 16 +590 16 +591 16 +592 16 +593 16 +594 16 +595 16 +596 16 +597 16 +598 16 +599 16 +600 16 +601 16 +602 16 +603 16 +604 16 +605 16 +606 16 +607 16 +608 16 +609 16 +610 16 +611 16 +612 16 +613 16 +614 16 +615 16 +616 16 +617 16 +618 16 +619 16 +620 16 +621 16 +622 16 +623 16 +624 16 +625 16 +626 16 +627 16 +628 16 +629 16 +630 16 +631 16 +632 16 +633 16 +634 16 +635 16 +636 16 +637 16 +638 16 +639 16 +640 16 +641 16 +642 16 +643 16 +644 16 +645 16 +646 16 +647 16 +648 16 +649 1 +650 1 +651 1 +652 1 +653 1 +654 1 +655 1 +656 1 +657 1 +658 1 +659 1 +660 1 +661 1 +662 1 +663 1 +664 1 +665 1 +666 1 +667 1 +668 1 +669 1 +670 1 +671 1 +672 1 +673 1 +674 1 +675 1 +676 1 +677 1 +678 1 +679 1 +680 1 +681 1 +682 1 +683 1 +684 1 +685 1 +686 1 +687 1 +688 1 +689 1 +690 1 +691 1 +692 1 +693 1 +694 1 +695 1 +696 1 +697 1 +698 1 +699 1 +700 1 +701 1 +702 1 +703 1 +704 1 +705 1 +706 1 +707 1 +708 1 +709 1 +710 1 +711 1 +712 1 +713 1 +714 1 +715 1 +716 1 +717 1 +718 1 +719 1 +720 1 +721 1 +722 1 +723 1 +724 1 +725 1 +726 1 +727 1 +728 1 +729 1 +730 1 +731 1 +732 1 +733 1 +734 1 +735 1 +736 1 +737 1 +738 1 +739 1 +740 1 +741 1 +742 1 +743 1 +744 1 +745 1 +746 1 +747 1 +748 1 +749 1 +750 1 +751 1 +752 1 +753 1 +754 1 +755 1 +756 1 +757 1 +758 1 +759 1 +760 1 +761 1 +762 1 +763 1 +764 1 +765 1 +766 1 +767 1 +768 1 +769 1 +770 1 +771 1 +772 1 +773 1 +774 1 +775 1 +776 1 +777 1 +778 1 +779 1 +780 1 +781 1 +782 1 +783 1 +784 1 +785 1 +786 1 +787 1 +788 1 +789 1 +790 1 +791 1 +792 1 +793 1 +794 1 +795 1 +796 1 +797 1 +798 1 +799 1 +800 1 +801 1 +802 1 +803 1 +804 1 +805 1 +806 1 +807 1 +808 1 +809 1 +810 1 +811 1 +812 1 +813 1 +814 1 +815 1 +816 1 +817 1 +818 1 +819 1 +820 1 +821 1 +822 1 +823 1 +824 1 +825 1 +826 1 +827 1 +828 1 +829 1 +830 1 +831 1 +832 1 +833 1 +834 1 +835 1 +836 1 +837 1 +838 1 +839 1 +840 1 +841 9 +842 9 +843 9 +844 9 +845 9 +846 9 +847 9 +848 9 +849 9 +850 9 +851 9 +852 10 +853 10 +854 10 +855 10 +856 10 +857 10 +858 10 +859 10 +860 10 +861 10 +862 10 +863 10 +864 10 +865 10 +866 10 +867 10 +868 10 +869 10 +870 10 +871 10 +872 10 +873 10 +874 10 +875 10 +876 10 +877 10 +878 10 +879 10 +880 10 +881 10 +882 5 +883 5 +884 5 +885 5 +886 5 +887 5 +888 5 +889 5 +890 5 +891 5 +892 5 +893 5 +894 5 +895 5 +896 5 +897 5 +898 5 +899 5 +900 5 +901 5 +902 5 +903 5 +904 5 +905 5 +906 5 +907 5 +908 5 +909 5 +910 5 +911 5 +912 5 +913 5 +914 5 +915 5 +916 5 +917 5 +918 5 +919 5 +920 5 +921 5 +922 5 +923 5 +924 5 +925 5 +926 5 +927 5 +928 5 +929 5 +930 5 +931 5 +932 5 +933 5 +934 5 +935 5 +936 5 +937 5 +938 5 +939 5 +940 5 +941 5 +942 5 +943 5 +944 5 +945 5 +946 5 +947 5 +948 5 +949 5 +950 5 +951 5 +952 5 +953 5 +954 5 +955 5 +956 5 +957 5 +958 5 +959 5 +960 5 +961 5 +962 5 +963 5 +964 5 +965 5 +966 5 +967 5 +968 5 +969 5 +970 5 +971 5 +972 5 +973 5 +974 5 +975 5 +976 5 +977 5 +978 5 +979 5 +980 5 +981 5 +982 5 +983 5 +984 5 +985 5 +986 5 +987 5 +988 5 +989 5 +990 5 +991 5 +992 5 +993 5 +994 5 +995 5 +996 5 +997 5 +998 5 +999 5 +1000 5 +1001 5 +1002 5 +1003 5 +1004 3 +1005 3 +1006 3 +1007 3 +1008 3 +1009 3 +1010 3 +1011 3 +1012 3 +1013 3 +1014 3 +1015 3 +1016 3 +1017 3 +1018 3 +1019 3 +1020 3 +1021 5 +1022 5 +1023 5 +1024 5 +1025 5 +1026 5 +1027 5 +1028 5 +1029 5 +1030 5 +1031 5 +1032 5 +1033 5 +1034 5 +1035 5 +1036 5 +1037 5 +1038 5 +1039 5 +1040 5 +1041 5 +1042 5 +1043 5 +1044 5 +1045 5 +1046 5 +1047 5 +1048 5 +1049 5 +1050 5 +1051 5 +1052 5 +1053 5 +1054 5 +1055 5 +1056 5 +1057 5 +1058 5 +1059 5 +1060 5 +1061 5 +1062 5 +1063 5 +1064 5 +1065 5 +1066 5 +1067 5 +1068 5 +1069 5 +1070 5 +1071 5 +1072 5 +1073 5 +1074 5 +1075 5 +1076 5 +1077 5 +1078 5 +1079 5 +1080 5 +1081 5 +1082 5 +1083 5 +1084 5 +1085 5 +1086 5 +1087 5 +1088 5 +1089 5 +1090 5 +1091 5 +1092 5 +1093 5 +1094 5 +1095 5 +1096 5 +1097 5 +1098 5 +1099 5 +1100 5 +1101 5 +1102 5 +1103 5 +1104 5 +1105 5 +1106 5 +1107 5 +1108 5 +1109 5 +1110 5 +1111 5 +1112 5 +1113 5 +1114 5 +1115 5 +1116 5 +1117 5 +1118 5 +1119 5 +1120 5 +1121 5 +1122 5 +1123 5 +1124 5 +1125 5 +1126 5 +1127 5 +1128 5 +1129 5 +1130 5 +1131 5 +1132 5 +1133 5 +1134 5 +1135 5 +1136 5 +1137 5 +1138 5 +1139 5 +1140 5 +1141 5 +1142 5 +1143 5 +1144 5 +1145 5 +1146 5 +1147 5 +1148 5 +1149 5 +1150 5 +1151 5 +1152 5 +1153 5 +1154 5 +1155 5 +1156 5 +1157 5 +1158 5 +1159 5 +1160 5 +1161 5 +1162 5 +1163 5 +1164 5 +1165 5 +1166 5 +1167 5 +1168 5 +1169 5 +1170 5 +1171 5 +1172 5 +1173 5 +1174 5 +1175 5 +1176 5 +1177 5 +1178 5 +1179 5 +1180 5 +1181 5 +1182 5 +1183 5 +1184 5 +1185 5 +1186 5 +1187 5 +1188 5 +1189 5 +1190 5 +1191 5 +1192 5 +1193 5 +1194 5 +1195 5 +1196 5 +1197 5 +1198 5 +1199 5 +1200 5 +1201 5 +1202 5 +1203 5 +1204 5 +1205 5 +1206 5 +1207 11 +1208 11 +1209 11 +1210 11 +1211 11 +1212 11 +1213 11 +1214 11 +1215 11 +1216 11 +1217 11 +1218 11 +1219 11 +1220 11 +1221 11 +1222 11 +1223 11 +1224 11 +1225 11 +1226 11 +1227 11 +1228 11 +1229 11 +1230 11 +1231 11 +1232 11 +1233 11 +1234 11 +1235 11 +1236 11 +1237 11 +1238 11 +1239 11 +1240 11 +1241 11 +1242 11 +1243 11 +1244 11 +1245 11 +1246 11 +1247 11 +1248 11 +1249 11 +1250 11 +1251 11 +1252 11 +1253 11 +1254 11 +1255 11 +1256 11 +1257 11 +1258 11 +1259 11 +1260 11 +1261 11 +1262 11 +1263 11 +1264 11 +1265 11 +1266 11 +1267 11 +1268 11 +1269 11 +1270 11 +1271 11 +1272 11 +1273 11 +1274 11 +1275 11 +1276 11 +1277 11 +1278 11 +1279 11 +1280 11 +1281 11 +1282 11 +1283 11 +1284 11 +1285 11 +1286 11 +1287 11 +1288 11 +1289 11 +1290 11 +1291 11 +1292 11 +1293 11 +1294 11 +1295 11 +1296 11 +1297 11 +1298 11 +1299 11 +1300 11 +1301 11 +1302 11 +1303 11 +1304 11 +1305 11 +1306 11 +1307 11 +1308 11 +1309 11 +1310 11 +1311 11 +1312 11 +1313 11 +1314 11 +1315 11 +1316 11 +1317 11 +1318 11 +1319 11 +1320 11 +1321 11 +1322 11 +1323 11 +1324 11 +1325 11 +1326 11 +1327 11 +1328 11 +1329 11 +1330 11 +1331 11 +1332 11 +1333 11 +1334 11 +1335 11 +1336 11 +1337 11 +1338 11 +1339 11 +1340 11 +1341 11 +1342 11 +1343 11 +1344 11 +1345 11 +1346 11 +1347 11 +1348 11 +1349 11 +1350 11 +1351 11 +1352 11 +1353 11 +1354 11 +1355 11 +1356 11 +1357 11 +1358 11 +1359 11 +1360 11 +1361 11 +1362 11 +1363 11 +1364 11 +1365 11 +1366 11 +1367 11 +1368 11 +1369 11 +1370 11 +1371 11 +1372 11 +1373 11 +1374 11 +1375 11 +1376 11 +1377 11 +1378 11 +1379 11 +1380 11 +1381 11 +1382 11 +1383 11 +1384 11 +1385 11 +1386 4 +1387 4 +1388 4 +1389 4 +1390 4 +1391 4 +1392 4 +1393 4 +1394 4 +1395 4 +1396 3 +1397 3 +1398 3 +1399 3 +1400 3 +1401 3 +1402 3 +1403 3 +1404 3 +1405 3 +1406 3 +1407 3 +1408 3 +1409 3 +1410 3 +1411 3 +1412 3 +1413 3 +1414 3 +1415 3 +1416 3 +1417 3 +1418 3 +1419 3 +1420 3 +1421 3 +1422 3 +1423 3 +1424 3 +1425 3 +1426 3 +1427 3 +1428 3 +1429 3 +1430 3 +1431 3 +1432 3 +1433 3 +1434 3 +1435 3 +1436 3 +1437 3 +1438 3 +1439 3 +1440 3 +1441 3 +1442 3 +1443 3 +1444 3 +1445 3 +1446 3 +1447 3 +1448 3 +1449 3 +1450 3 +1451 3 +1452 3 +1453 3 +1454 3 +1455 3 +1456 3 +1457 3 +1458 3 +1459 3 +1460 3 +1461 3 +1462 3 +1463 3 +1464 3 +1465 3 +1466 3 +1467 3 +1468 3 +1469 3 +1470 3 +1471 3 +1472 3 +1473 3 +1474 3 +1475 3 +1476 3 +1477 3 +1478 3 +1479 3 +1480 3 +1481 3 +1482 0 +1483 0 +1484 0 +1485 0 +1486 0 +1487 0 +1488 0 +1489 0 +1490 0 +1491 0 +1492 0 +1493 0 +1494 0 +1495 0 +1496 0 +1497 0 +1498 0 +1499 0 +1500 0 +1501 0 +1502 0 +1503 0 +1504 0 +1505 0 +1506 0 +1507 0 +1508 0 +1509 0 +1510 0 +1511 0 +1512 0 +1513 0 +1514 0 +1515 0 +1516 0 +1517 0 +1518 0 +1519 0 +1520 0 +1521 0 +1522 0 +1523 0 +1524 0 +1525 0 +1526 0 +1527 0 +1528 0 +1529 0 +1530 0 +1531 0 +1532 0 +1533 0 +1534 0 +1535 0 +1536 0 +1537 0 +1538 0 +1539 0 +1540 0 +1541 0 +1542 0 +1543 0 +1544 0 +1545 0 +1546 0 +1547 0 +1548 0 +1549 0 +1550 0 +1551 7 +1552 7 +1553 7 +1554 7 +1555 7 +1556 7 +1557 7 +1558 7 +1559 7 +1560 7 +1561 7 +1562 7 +1563 7 +1564 7 +1565 7 +1566 7 +1567 7 +1568 7 +1569 7 +1570 7 +1571 7 +1572 7 +1573 7 +1574 7 +1575 7 +1576 7 +1577 7 +1578 7 +1579 7 +1580 7 +1581 7 +1582 7 +1583 7 +1584 7 +1585 7 +1586 7 +1587 7 +1588 7 +1589 7 +1590 7 +1591 7 +1592 7 +1593 7 +1594 7 +1595 7 +1596 7 +1597 7 +1598 7 +1599 7 +1600 7 +1601 7 +1602 7 +1603 7 +1604 8 +1605 8 +1606 8 +1607 8 +1608 8 +1609 8 +1610 8 +1611 8 +1612 8 +1613 8 +1614 8 +1615 8 +1616 8 +1617 8 +1618 8 +1619 8 +1620 8 +1621 8 +1622 8 +1623 8 +1624 8 +1625 8 +1626 8 +1627 8 +1628 8 +1629 8 +1630 8 +1631 8 +1632 8 +1633 8 +1634 8 +1635 8 +1636 8 +1637 8 +1638 8 +1639 8 +1640 8 +1641 8 +1642 8 +1643 8 +1644 8 +1645 8 +1646 8 +1647 8 +1648 8 +1649 8 +1650 8 +1651 8 +1652 8 +1653 8 +1654 8 +1655 8 +1656 8 +1657 8 +1658 8 +1659 8 +1660 8 +1661 8 +1662 8 +1663 8 +1664 8 +1665 8 +1666 8 +1667 8 +1668 8 +1669 8 +1670 8 +1671 8 +1672 8 +1673 8 +1674 8 +1675 8 +1676 8 +1677 8 +1678 8 +1679 8 +1680 8 +1681 8 +1682 8 +1683 8 +1684 8 +1685 8 +1686 8 +1687 2 +1688 2 +1689 2 +1690 2 +1691 2 +1692 2 +1693 2 +1694 2 +1695 2 +1696 2 +1697 2 +1698 2 +1699 2 +1700 2 +1701 2 +1702 2 +1703 2 +1704 2 +1705 2 +1706 2 +1707 2 +1708 2 +1709 2 +1710 2 +1711 2 +1712 2 +1713 2 +1714 2 +1715 2 +1716 2 +1717 2 +1718 2 +1719 2 +1720 2 +1721 2 +1722 2 +1723 2 +1724 2 +1725 2 +1726 2 +1727 2 +1728 2 +1729 2 +1730 2 +1731 2 +1732 2 +1733 2 +1734 2 +1735 2 +1736 2 +1737 2 +1738 2 +1739 2 +1740 2 +1741 2 +1742 2 +1743 2 +1744 2 +1745 2 +1746 2 +1747 2 +1748 2 +1749 2 +1750 2 +1751 2 +1752 2 +1753 2 +1754 2 +1755 2 +1756 2 +1757 2 +1758 2 +1759 2 +1760 2 +1761 2 +1762 2 +1763 2 +1764 2 +1765 2 +1766 2 +1767 2 +1768 2 +1769 2 +1770 2 +1771 2 +1772 2 +1773 2 +1774 2 +1775 2 +1776 2 +1777 2 +1778 2 +1779 2 +1780 2 +1781 2 +1782 2 +1783 2 +1784 2 +1785 2 +1786 2 +1787 2 +1788 2 +1789 2 +1790 2 +1791 2 +1792 2 +1793 2 +1794 2 +1795 2 +1796 2 +1797 2 +1798 2 +1799 2 +1800 2 +1801 2 +1802 2 +1803 2 +1804 2 +1805 2 +1806 2 +1807 2 +1808 2 +1809 2 +1810 2 +1811 2 +1812 2 +1813 2 +1814 2 +1815 2 +1816 2 +1817 2 +1818 2 +1819 2 +1820 2 +1821 2 +1822 2 +1823 2 +1824 2 +1825 2 +1826 2 +1827 2 +1828 2 +1829 2 +1830 2 +1831 2 +1832 2 +1833 2 +1834 2 +1835 2 +1836 2 +1837 2 +1838 2 +1839 2 +1840 2 +1841 2 +1842 2 +1843 2 +1844 2 +1845 2 +1846 2 +1847 2 +1848 2 +1849 2 +1850 2 +1851 2 +1852 2 +1853 2 +1854 2 +1855 2 +1856 2 +1857 2 +1858 2 +1859 2 +1860 2 +1861 2 +1862 2 +1863 2 +1864 2 +1865 2 +1866 2 +1867 2 +1868 2 +1869 2 +1870 2 +1871 2 +1872 2 +1873 2 +1874 2 +1875 2 +1876 2 +1877 2 +1878 2 +1879 2 +1880 2 +1881 2 +1882 2 +1883 2 +1884 2 +1885 2 +1886 2 +1887 2 +1888 2 +1889 2 +1890 14 +1891 14 +1892 14 +1893 14 +1894 14 +1895 14 +1896 14 +1897 14 +1898 14 +1899 14 +1900 14 +1901 14 +1902 14 +1903 14 +1904 14 +1905 14 +1906 14 +1907 14 +1908 14 +1909 14 +1910 14 +1911 14 +1912 14 +1913 14 +1914 14 +1915 14 +1916 14 +1917 14 +1918 14 +1919 14 +1920 14 +1921 14 +1922 14 +1923 14 +1924 14 +1925 14 +1926 14 +1927 14 +1928 14 +1929 14 +1930 14 +1931 14 +1932 14 +1933 14 +1934 14 +1935 14 +1936 14 +1937 14 +1938 14 +1939 14 +1940 14 +1941 14 +1942 14 +1943 14 +1944 14 +1945 14 +1946 14 +1947 14 +1948 14 +1949 14 +1950 14 +1951 14 +1952 14 +1953 14 +1954 14 +1955 14 +1956 14 +1957 14 +1958 14 +1959 14 +1960 14 +1961 14 +1962 14 +1963 14 +1964 14 +1965 14 +1966 14 +1967 6 +1968 6 +1969 6 +1970 6 +1971 6 +1972 6 +1973 6 +1974 6 +1975 6 +1976 6 +1977 6 +1978 6 +1979 6 +1980 6 +1981 6 +1982 6 +1983 6 +1984 6 +1985 6 +1986 6 +1987 6 +1988 6 +1989 6 +1990 6 +1991 6 +1992 6 +1993 6 +1994 6 +1995 6 +1996 6 +1997 6 +1998 6 +1999 6 +2000 6 +2001 6 +2002 6 +2003 6 +2004 6 +2005 6 +2006 6 +2007 6 +2008 6 +2009 6 +2010 6 +2011 6 +2012 6 +2013 6 +2014 6 +2015 6 +2016 6 +2017 6 +2018 6 +2019 6 +2020 6 +2021 6 +2022 6 +2023 6 +2024 6 +2025 6 +2026 6 +2027 6 +2028 6 +2029 6 +2030 6 +2031 6 +2032 6 +2033 6 +2034 6 +2035 6 +2036 6 +2037 6 +2038 6 +2039 6 +2040 6 +2041 6 +2042 6 +2043 6 +2044 6 +2045 6 +2046 6 +2047 6 +2048 6 +2049 6 +2050 6 +2051 6 +2052 6 +2053 6 +2054 6 +2055 6 +2056 6 +2057 6 +2058 6 +2059 6 +2060 6 +2061 6 +2062 6 +2063 6 +2064 6 +2065 6 +2066 6 +2067 6 +2068 6 +2069 6 +2070 6 +2071 6 +2072 6 +2073 6 +2074 6 +2075 6 +2076 6 +2077 6 +2078 10 +2079 10 +2080 10 +2081 10 +2082 10 +2083 10 +2084 10 +2085 10 +2086 10 +2087 10 +2088 10 +2089 10 +2090 10 +2091 10 +2092 10 +2093 10 +2094 10 +2095 10 +2096 10 +2097 10 +2098 10 +2099 10 +2100 10 +2101 10 +2102 10 +2103 10 +2104 10 +2105 10 +2106 10 +2107 10 +2108 10 +2109 10 +2110 10 +2111 10 +2112 10 +2113 10 +2114 10 +2115 10 +2116 10 +2117 10 +2118 10 +2119 10 +2120 10 +2121 10 +2122 10 +2123 10 +2124 10 +2125 10 +2126 10 +2127 10 +2128 10 +2129 10 +2130 10 +2131 10 +2132 10 +2133 10 +2134 10 +2135 10 +2136 10 +2137 10 +2138 10 +2139 10 +2140 10 +2141 10 +2142 10 +2143 10 +2144 10 +2145 10 +2146 10 +2147 10 +2148 10 +2149 10 +2150 10 +2151 10 +2152 10 +2153 10 +2154 10 +2155 10 +2156 10 +2157 10 +2158 10 +2159 10 +2160 10 +2161 10 +2162 10 +2163 10 +2164 10 +2165 10 +2166 10 +2167 10 +2168 10 +2169 10 +2170 10 +2171 10 +2172 10 +2173 10 +2174 10 +2175 10 +2176 10 +2177 10 +2178 10 +2179 10 +2180 10 +2181 10 +2182 10 +2183 10 +2184 10 +2185 10 +2186 10 +2187 10 +2188 10 +2189 10 +2190 10 +2191 10 +2192 10 +2193 10 +2194 10 +2195 10 +2196 10 +2197 10 +2198 10 +2199 10 +2200 10 +2201 10 +2202 10 +2203 10 +2204 10 +2205 10 +2206 10 +2207 10 +2208 10 +2209 10 +2210 10 +2211 10 +2212 10 +2213 10 +2214 10 +2215 10 +2216 10 +2217 10 +2218 10 +2219 10 +2220 10 +2221 10 +2222 10 +2223 10 +2224 10 +2225 10 +2226 10 +2227 10 +2228 10 +2229 10 +2230 10 +2231 10 +2232 10 +2233 10 +2234 10 +2235 10 +2236 10 +2237 10 +2238 10 +2239 10 +2240 10 +2241 10 +2242 10 +2243 10 +2244 10 +2245 10 +2246 10 +2247 10 +2248 10 +2249 10 +2250 10 +2251 10 +2252 10 +2253 10 +2254 10 +2255 10 +2256 10 +2257 10 +2258 10 +2259 10 +2260 10 +2261 10 +2262 10 +2263 10 +2264 10 +2265 10 +2266 10 +2267 10 +2268 10 +2269 10 +2270 10 +2271 10 +2272 10 +2273 10 +2274 10 +2275 10 +2276 10 +2277 10 +2278 10 +2279 10 +2280 10 +2281 10 +2282 10 +2283 10 +2284 10 +2285 10 +2286 10 +2287 10 +2288 10 +2289 10 +2290 10 +2291 10 +2292 10 +2293 10 +2294 10 +2295 10 +2296 10 +2297 10 +2298 10 +2299 10 +2300 10 +2301 10 +2302 10 +2303 10 +2304 10 +2305 10 +2306 10 +2307 10 +2308 10 +2309 10 +2310 10 +2311 10 +2312 10 +2313 10 +2314 10 +2315 10 +2316 10 +2317 15 +2318 15 +2319 15 +2320 15 +2321 15 +2322 15 +2323 15 +2324 15 +2325 15 +2326 15 +2327 15 +2328 15 +2329 15 +2330 15 +2331 15 +2332 15 +2333 15 +2334 15 +2335 15 +2336 15 +2337 15 +2338 15 +2339 15 +2340 15 +2341 15 +2342 15 +2343 15 +2344 15 +2345 15 +2346 15 +2347 15 +2348 15 +2349 15 +2350 15 +2351 15 +2352 15 +2353 15 +2354 15 +2355 15 +2356 15 +2357 15 +2358 15 +2359 15 +2360 15 +2361 15 +2362 15 +2363 15 +2364 15 +2365 15 +2366 15 +2367 15 +2368 15 +2369 15 +2370 15 +2371 15 +2372 15 +2373 15 +2374 15 +2375 15 +2376 15 +2377 15 +2378 15 +2379 15 +2380 15 +2381 15 +2382 15 +2383 15 +2384 15 +2385 15 +2386 15 +2387 15 +2388 15 +2389 15 +2390 8 +2391 8 +2392 8 +2393 8 +2394 8 +2395 8 +2396 8 +2397 8 +2398 8 +2399 8 +2400 8 +2401 8 +2402 8 +2403 8 +2404 8 diff --git a/GraphEmbedding-master/data/wiki/Wiki_edgelist.txt b/GraphEmbedding-master/data/wiki/Wiki_edgelist.txt new file mode 100644 index 0000000000000000000000000000000000000000..42e918f1c87de6505cee572632f65ea5d23ebf31 --- /dev/null +++ b/GraphEmbedding-master/data/wiki/Wiki_edgelist.txt @@ -0,0 +1,17981 @@ +1397 1470 +1397 362 +1397 226 +1397 750 +1397 489 +1397 1462 +1713 393 +1713 445 +1713 1713 +1713 1713 +696 1610 +696 889 +696 1615 +696 708 +696 713 +696 718 +696 1630 +696 734 +696 776 +696 814 +696 818 +696 696 +1401 220 +1401 1412 +1401 1413 +1401 226 +1401 228 +1401 233 +1401 235 +1401 1450 +1401 236 +1401 1455 +1401 1465 +1401 1466 +1401 1468 +1401 243 +1401 245 +1535 696 +1535 445 +1535 780 +1535 1550 +1535 2273 +1615 1615 +1615 1616 +1615 713 +1615 2158 +1615 1624 +1615 2165 +1615 2167 +1615 1630 +1615 1631 +1615 1640 +1615 1659 +1615 1662 +1615 2280 +1615 2307 +1615 1615 +16 11 +16 393 +16 48 +16 68 +16 67 +16 88 +16 116 +16 119 +16 493 +16 167 +16 181 +15 16 +15 64 +15 66 +15 68 +15 73 +15 92 +15 116 +15 489 +15 172 +15 181 +186 63 +186 436 +186 100 +186 101 +186 107 +186 458 +186 1443 +186 1445 +186 133 +186 458 +1567 890 +1567 1592 +1567 1597 +1567 1601 +1398 1398 +1005 695 +1005 696 +1005 700 +1005 713 +1005 714 +1005 722 +1005 445 +1005 663 +1005 1445 +1005 489 +1005 788 +1005 1018 +1005 509 +1005 811 +1005 1465 +1005 1481 +1891 1891 +390 277 +390 434 +390 960 +390 445 +390 475 +390 346 +1716 1717 +1716 1718 +1716 400 +1716 410 +1716 2159 +1716 1745 +1716 1765 +1716 1799 +1716 1805 +1716 1815 +1716 1829 +1716 1840 +1716 1855 +1716 1865 +1716 1783 +1716 1716 +1716 1840 +1716 1716 +1716 1840 +1716 1716 +902 1247 +902 445 +902 933 +902 682 +23 391 +23 25 +23 393 +23 1412 +23 89 +23 980 +1394 1545 +1394 887 +1394 893 +1394 289 +1394 931 +1394 950 +1394 975 +1394 999 +1394 955 +1394 341 +1394 999 +1394 999 +1555 1619 +1555 1575 +1555 1600 +1555 1585 +1555 1592 +1555 1597 +1555 1565 +1555 1575 +1555 1575 +27 27 +27 43 +27 63 +27 60 +27 68 +27 85 +27 445 +27 133 +27 160 +216 31 +216 69 +216 70 +216 1413 +216 221 +216 222 +216 223 +216 89 +216 666 +216 124 +216 234 +216 235 +216 142 +216 247 +400 393 +400 399 +400 410 +400 416 +400 277 +400 1497 +400 1498 +400 445 +400 458 +400 1509 +400 885 +400 525 +400 2312 +400 400 +43 14 +43 696 +43 391 +43 27 +43 30 +43 31 +43 41 +43 49 +43 51 +43 52 +43 654 +43 58 +43 68 +43 76 +43 77 +43 85 +43 124 +43 160 +43 1467 +43 682 +397 1717 +397 393 +397 399 +397 841 +397 410 +397 416 +397 1746 +397 277 +397 435 +397 458 +397 464 +397 1663 +397 485 +397 984 +397 623 +397 624 +397 525 +397 531 +397 397 +399 397 +399 400 +399 410 +399 416 +399 856 +399 277 +399 2393 +399 445 +399 458 +399 1311 +399 0 +399 496 +399 525 +399 399 +1036 1036 +1036 1746 +1036 1064 +1036 2047 +1036 1174 +1036 1176 +1036 1177 +1036 1467 +1036 1036 +1036 1036 +2113 2109 +2113 1157 +2113 1673 +895 895 +1722 1717 +1722 393 +1722 1848 +1722 1832 +1722 1867 +1722 1722 +2330 1607 +2330 433 +2330 437 +2330 1638 +2330 1637 +2330 1658 +2330 1645 +2330 1646 +2330 1648 +2330 1647 +2330 1653 +2330 1660 +2330 1663 +2112 2130 +2112 2134 +2130 2112 +2130 2134 +2130 400 +2130 2159 +2148 2126 +2148 2139 +2148 2153 +2148 2174 +2148 457 +2148 2197 +2148 2199 +2148 2200 +2148 2252 +2148 525 +2148 2293 +2148 2296 +2148 2297 +2148 2303 +2148 2288 +2148 2315 +1016 445 +1016 1574 +1016 1576 +1016 1583 +1016 682 +895 895 +895 982 +895 895 +895 895 +42 47 +42 63 +42 1641 +42 1443 +42 133 +42 497 +32 43 +32 136 +32 146 +32 509 +1896 2101 +1896 1517 +1896 510 +708 391 +708 1717 +708 393 +708 2147 +708 400 +708 713 +708 1621 +708 419 +708 718 +708 1641 +708 1525 +708 1647 +708 445 +708 734 +708 458 +708 1653 +708 721 +708 464 +708 1509 +708 776 +708 1663 +708 485 +708 489 +708 793 +708 918 +708 1530 +708 814 +708 818 +708 1684 +708 708 +46 391 +46 69 +46 68 +46 323 +46 84 +46 99 +46 104 +46 113 +46 117 +46 489 +46 496 +46 153 +46 153 +46 161 +1730 1842 +1730 393 +1730 1731 +1730 1785 +1730 1730 +1730 1730 +2101 2126 +2101 1896 +2101 445 +2101 2404 +2101 1832 +2101 496 +2101 510 +1007 1007 +1746 1770 +1746 1583 +1746 1832 +1746 1879 +1746 1746 +1746 1746 +1746 1746 +427 544 +427 32 +427 1525 +427 449 +427 359 +427 359 +427 481 +427 493 +427 236 +427 536 +427 427 +427 427 +410 1717 +410 393 +410 397 +410 708 +410 416 +410 277 +410 458 +410 668 +410 485 +410 525 +416 1717 +416 397 +416 400 +416 410 +416 277 +416 458 +416 496 +416 525 +2344 960 +2344 975 +2344 2344 +2344 2344 +425 396 +425 405 +425 406 +425 277 +425 434 +425 445 +425 457 +425 475 +425 476 +425 489 +425 496 +425 140 +425 509 +425 510 +425 982 +425 425 +425 425 +1624 1615 +1624 1616 +1624 713 +1624 1630 +1624 1631 +1624 1640 +1624 445 +1624 113 +1624 1659 +1624 1662 +1624 680 +1493 1482 +1493 1504 +1493 1525 +1493 1492 +1493 1540 +1493 602 +1493 1509 +1493 694 +1493 1515 +1493 682 +1493 526 +1493 1505 +52 26 +52 31 +52 69 +52 90 +52 670 +52 235 +52 142 +1748 1717 +1748 1722 +1748 1748 +1748 1748 +1981 1980 +1981 69 +1981 1995 +1981 2001 +1981 2005 +1981 2066 +1981 2073 +899 405 +50 496 +1619 890 +1619 1626 +1619 1639 +1619 1651 +1619 1664 +1619 1666 +1619 1686 +1407 1398 +1407 1400 +1407 1401 +1407 1403 +1407 560 +1407 1406 +1407 1413 +1407 1417 +1407 1423 +1407 1430 +1407 1433 +1407 1434 +1407 1435 +1407 1440 +1407 1445 +1407 1446 +1407 235 +1407 1457 +1407 1465 +1407 1467 +1407 1479 +1407 1434 +1407 1434 +218 217 +218 222 +218 445 +218 662 +218 124 +655 63 +655 146 +2159 1208 +2159 2094 +2159 708 +2159 713 +2159 445 +2159 828 +2159 2200 +2159 776 +2159 489 +2159 1369 +2159 814 +2159 848 +2159 2273 +2159 373 +2159 2293 +1405 1406 +1405 1412 +1405 1421 +1405 1425 +1405 1430 +1405 228 +1405 1434 +1405 1439 +1405 1445 +1405 233 +1405 1449 +1405 1460 +1405 1462 +1405 1464 +1405 1466 +1405 1467 +1627 890 +1627 1621 +1627 1629 +1627 445 +1627 1654 +1627 1653 +1627 1661 +1627 1684 +1753 1772 +1753 393 +1753 397 +1753 1767 +1753 464 +1753 1832 +1753 146 +1753 1850 +1753 1753 +1753 1753 +1745 1716 +1745 1717 +1745 1718 +1745 1765 +1745 445 +1745 1799 +1745 1805 +1745 119 +1745 1815 +1745 1829 +1745 1840 +1745 1855 +1745 1865 +1745 1745 +1745 1840 +1745 1745 +1745 1840 +1980 1981 +1980 2066 +250 250 +69 26 +69 1401 +69 31 +69 52 +69 69 +69 70 +69 221 +69 89 +69 90 +69 185 +69 90 +69 90 +69 69 +250 1007 +250 250 +250 88 +250 445 +250 1009 +250 1007 +2221 400 +2221 416 +220 228 +220 235 +220 1468 +220 240 +220 242 +220 1480 +659 445 +68 16 +68 391 +68 27 +68 400 +68 43 +68 46 +68 48 +68 560 +68 560 +68 60 +68 66 +68 67 +68 73 +68 98 +68 106 +68 229 +68 1434 +68 1095 +68 121 +68 1443 +68 122 +68 1449 +68 143 +68 167 +68 175 +68 179 +68 181 +68 183 +667 12 +667 651 +667 217 +667 930 +667 662 +667 663 +667 107 +667 975 +667 670 +667 1392 +667 932 +667 239 +667 680 +322 1548 +322 322 +322 323 +322 1645 +322 325 +322 326 +322 342 +322 322 +322 322 +1346 391 +1346 902 +1346 399 +1346 666 +1346 1298 +1630 1615 +1630 1616 +1630 401 +1630 713 +1630 1624 +1630 1566 +1630 1631 +1630 1640 +1630 1659 +1630 1662 +1630 814 +1630 525 +1631 1615 +1631 1616 +1631 713 +1631 1742 +1631 1624 +1631 1630 +1631 1640 +1631 1659 +1631 1662 +1631 962 +434 399 +434 405 +434 425 +434 277 +434 457 +434 334 +434 475 +434 489 +434 509 +434 510 +434 1860 +434 346 +434 434 +434 434 +276 427 +276 510 +276 1143 +276 526 +1055 392 +1055 1061 +1055 1062 +1055 1412 +1055 2013 +1055 1128 +1055 1185 +1055 1178 +355 355 +1412 1412 +1412 391 +1412 1397 +1412 1398 +1412 1404 +1412 68 +1412 1411 +1412 1412 +1412 1416 +1412 89 +1412 1421 +1412 1428 +1412 228 +1412 1434 +1412 1439 +1412 1442 +1412 1443 +1412 1444 +1412 124 +1412 1445 +1412 1446 +1412 1449 +1412 235 +1412 1451 +1412 1457 +1412 1458 +1412 1459 +1412 1460 +1412 1461 +1412 1465 +1412 1464 +1412 1466 +1412 1467 +1412 623 +1412 244 +1412 1476 +1412 1478 +1412 185 +1412 1412 +1412 1465 +1412 1412 +1412 1465 +1412 1465 +221 31 +221 70 +221 222 +221 223 +221 89 +221 231 +221 235 +221 185 +221 247 +1413 1401 +1413 1412 +1413 226 +1413 1450 +1413 1455 +1413 1466 +960 405 +960 2344 +960 1007 +960 940 +960 975 +960 668 +960 962 +960 917 +960 967 +960 682 +960 344 +960 526 +960 961 +960 1002 +960 960 +960 960 +960 960 +1498 400 +1498 1497 +1498 445 +1498 866 +1498 1509 +1498 1541 +1498 1547 +1418 1398 +1418 1402 +1418 1403 +1418 1410 +1418 1412 +1418 226 +1418 1430 +1418 228 +1418 1434 +1418 1441 +1418 1444 +1418 1445 +1418 1446 +1418 1451 +1418 1460 +1418 1465 +1418 1465 +1418 1466 +1418 1467 +1418 1468 +1418 1478 +1418 1480 +1501 445 +1501 755 +1501 999 +1501 489 +1501 682 +1497 400 +1497 1498 +1641 1555 +1641 1621 +1641 1635 +1641 1636 +1641 1654 +1641 1653 +1641 1661 +1641 1673 +1641 1565 +1641 682 +1641 1684 +1636 1555 +1636 1621 +1636 1635 +1636 1638 +1636 1637 +1636 1641 +1636 1645 +1636 1646 +1636 1647 +1636 1654 +1636 1653 +1636 1580 +1636 1558 +1636 1661 +1636 1673 +1636 1565 +1636 682 +1636 1684 +1013 1009 +1013 1013 +1717 1718 +1717 1722 +1717 1767 +1717 1805 +1717 1805 +1717 471 +1717 1832 +1717 1840 +1717 1819 +1717 1717 +1385 348 +1385 1247 +1385 1254 +1385 1255 +1385 124 +1385 1385 +1385 1385 +224 1401 +224 1412 +224 1413 +224 224 +224 225 +224 226 +224 228 +224 229 +224 232 +224 233 +224 235 +224 236 +224 241 +224 242 +224 243 +224 244 +224 526 +224 245 +224 246 +224 247 +1995 1412 +1995 1999 +1995 1996 +1995 1997 +1995 1998 +1995 2000 +1995 2001 +1995 2002 +1995 2003 +1995 1573 +1995 2020 +1995 2030 +1995 2046 +1995 2049 +1995 2066 +1995 2073 +1995 2074 +1995 1995 +1525 1397 +1525 2126 +1525 2148 +1525 400 +1525 1504 +1525 1493 +1525 194 +1525 1470 +1525 1525 +1525 2215 +1525 1492 +1525 1540 +1525 750 +1525 1509 +1525 489 +1525 673 +1525 304 +1525 1515 +1525 2288 +1525 1505 +1525 2182 +1525 1484 +1525 1525 +1525 1525 +1840 1716 +1840 1717 +1840 1718 +1840 393 +1840 1745 +1840 1749 +1840 1497 +1840 1765 +1840 1799 +1840 119 +1840 1813 +1840 1815 +1840 1829 +1840 1853 +1840 1855 +1840 1865 +1840 1783 +1840 1840 +1840 1840 +1767 1717 +1767 1753 +1767 445 +1767 1832 +1767 1850 +1767 1853 +1767 1767 +1767 1767 +1419 1398 +1419 63 +1419 1412 +1419 1470 +1419 1421 +1419 1439 +1419 1441 +1419 1449 +1419 235 +1419 1466 +2175 393 +2175 445 +2175 242 +2175 525 +2175 2288 +2178 848 +445 445 +445 445 +1573 1573 +445 1717 +445 1615 +445 393 +445 399 +445 400 +445 410 +445 2344 +445 277 +445 196 +445 1497 +445 1767 +445 2395 +445 458 +445 292 +445 772 +445 1832 +445 1170 +445 525 +445 851 +445 826 +445 445 +1261 1261 +1424 1412 +1424 1421 +1424 1424 +1424 1432 +1424 1444 +1424 1445 +1424 1456 +1424 1465 +1424 1466 +1424 1467 +1424 1468 +1424 1478 +1424 1424 +1424 1424 +1006 445 +1006 1391 +1424 1424 +225 220 +225 1412 +225 1413 +225 224 +225 225 +225 445 +225 226 +225 228 +225 229 +225 1446 +225 232 +225 233 +225 235 +225 236 +225 241 +225 242 +225 243 +225 244 +225 1476 +225 245 +225 246 +225 247 +90 31 +90 63 +90 69 +90 70 +90 221 +90 185 +90 90 +90 90 +732 1548 +732 788 +1492 1504 +1492 1493 +1492 1525 +1492 2215 +1492 1540 +1492 489 +1492 1515 +1492 1505 +1492 2182 +1421 1401 +1421 1408 +1421 1412 +1421 1425 +1421 1573 +1421 1427 +1421 226 +1421 1429 +1421 1430 +1421 228 +1421 1456 +1421 1465 +1421 1466 +1421 1467 +1421 1468 +1421 1480 +1421 1421 +1421 1421 +1425 1402 +1425 1408 +1425 1421 +1425 226 +1425 1430 +1425 1441 +1425 1466 +1425 1467 +1572 1621 +1572 1654 +1576 713 +228 216 +228 1401 +228 1412 +228 1413 +228 221 +228 224 +228 225 +228 1427 +228 226 +228 1430 +228 227 +228 228 +228 229 +228 1434 +228 1441 +228 232 +228 233 +228 235 +228 1450 +228 236 +228 1456 +228 1466 +228 241 +228 242 +228 243 +228 244 +228 375 +228 245 +228 246 +228 247 +226 216 +226 1401 +226 1413 +226 224 +226 225 +226 226 +226 228 +226 229 +226 1445 +226 232 +226 233 +226 235 +226 236 +226 1464 +226 1466 +226 1467 +226 241 +226 242 +226 243 +226 244 +226 526 +226 375 +226 245 +226 246 +226 247 +663 695 +663 1005 +663 700 +663 1615 +663 405 +663 713 +663 722 +663 663 +663 666 +663 788 +663 811 +922 1611 +922 1346 +922 1641 +922 1082 +922 922 +922 1653 +922 933 +922 1559 +922 972 +922 1170 +922 916 +922 922 +922 922 +1603 1559 +1603 1580 +1603 1558 +1603 1565 +1909 1910 +1909 458 +1909 119 +457 405 +457 425 +457 277 +457 434 +457 602 +457 2348 +457 475 +457 489 +457 1330 +457 509 +457 510 +457 372 +457 623 +457 628 +457 457 +1264 1208 +1264 1211 +1264 1213 +1264 1250 +1264 1261 +1264 1296 +1264 1300 +1264 1299 +1264 1316 +1264 1330 +1264 1333 +1264 1340 +1264 1350 +1264 1373 +1640 1615 +1640 1616 +1640 713 +1640 1624 +1640 1630 +1640 1631 +1640 960 +1640 1659 +1640 1662 +1640 1598 +454 396 +454 708 +454 419 +454 277 +454 433 +454 435 +454 464 +454 471 +454 472 +454 489 +454 509 +458 397 +458 2322 +458 482 +458 458 +229 213 +229 2159 +229 560 +229 68 +229 1412 +229 1413 +229 224 +229 225 +229 226 +229 227 +229 228 +229 229 +229 232 +229 233 +229 235 +229 236 +229 241 +229 242 +229 243 +229 244 +229 245 +229 246 +229 247 +107 31 +107 658 +107 221 +107 89 +107 137 +107 155 +107 185 +107 247 +107 107 +107 107 +933 902 +933 1573 +933 929 +933 1455 +933 1002 +933 933 +933 933 +1436 1412 +1436 445 +1436 1434 +1436 1443 +1436 1444 +1436 1460 +1436 510 +1436 1464 +1436 1465 +1436 1467 +1436 1474 +1436 1478 +990 2330 +990 1007 +990 1647 +990 445 +990 962 +990 978 +990 848 +990 1108 +990 374 +990 990 +990 990 +1559 1636 +1559 1603 +1559 1580 +1559 1558 +1559 315 +1559 1565 +973 471 +973 670 +973 1594 +973 1549 +1848 1722 +1848 1847 +1848 1807 +110 1717 +110 43 +110 47 +110 61 +110 69 +110 88 +110 91 +110 109 +110 119 +110 845 +110 489 +110 496 +110 146 +110 159 +755 445 +755 1369 +755 682 +1281 451 +1281 1255 +1281 667 +1281 494 +1281 1330 +1281 1344 +1281 1281 +1281 1281 +1439 1398 +1439 1404 +1439 1410 +1439 1411 +1439 1412 +1439 1416 +1439 1428 +1439 1434 +1439 1439 +1439 1442 +1439 1443 +1439 1444 +1439 1445 +1439 1446 +1439 1449 +1439 1457 +1439 1458 +1439 1459 +1439 1460 +1439 1461 +1439 1465 +1439 1466 +1439 1467 +1439 1475 +1439 1476 +1439 1478 +1439 1465 +1439 1465 +1439 1465 +1439 1439 +760 890 +760 1654 +760 760 +760 978 +760 1684 +775 1891 +775 69 +775 489 +775 1960 +775 526 +775 810 +775 839 +1583 807 +461 396 +461 433 +461 749 +461 2351 +461 290 +461 461 +461 761 +461 119 +461 472 +461 483 +461 794 +461 797 +461 849 +461 827 +461 827 +461 531 +461 2387 +461 832 +461 833 +461 461 +1301 393 +1301 471 +1301 1302 +1301 1301 +1301 1301 +113 391 +113 46 +113 46 +113 427 +113 84 +113 445 +113 104 +113 458 +113 153 +113 159 +113 161 +113 819 +116 31 +116 43 +116 458 +116 458 +1226 1257 +1226 930 +1226 933 +1226 1234 +1226 1330 +1226 1344 +1226 1226 +1226 1226 +1063 1609 +1063 1074 +1063 1075 +1063 667 +1008 1008 +1008 445 +1008 2373 +1509 697 +1509 2106 +1509 400 +1509 708 +1509 1498 +1509 2178 +1509 1525 +1509 1509 +1509 496 +1509 848 +1509 525 +1509 1541 +1509 2312 +1727 1736 +1727 1732 +1727 1744 +1813 1716 +1813 1717 +1813 1760 +1813 1805 +1813 1815 +1813 1840 +1813 1887 +1813 1813 +1813 1813 +666 650 +666 69 +666 90 +666 445 +666 682 +666 244 +666 185 +1585 1555 +1585 1632 +1585 1575 +1585 1600 +1585 1592 +1585 1597 +1585 1565 +1585 1575 +1585 1575 +763 672 +1229 1229 +1299 1259 +1299 1261 +1299 1264 +1299 1296 +1299 1350 +1299 1863 +1299 1299 +1299 1299 +1299 1299 +254 1970 +254 1497 +254 510 +254 254 +254 254 +254 254 +1445 1397 +1445 1398 +1445 1403 +1445 1404 +1445 1411 +1445 1412 +1445 1414 +1445 1416 +1445 1417 +1445 1423 +1445 734 +1445 1428 +1445 1433 +1445 1434 +1445 1439 +1445 1442 +1445 1443 +1445 669 +1445 1444 +1445 1445 +1445 1446 +1445 1448 +1445 1449 +1445 235 +1445 1457 +1445 1458 +1445 1459 +1445 1460 +1445 1461 +1445 762 +1445 1465 +1445 1464 +1445 1465 +1445 814 +1445 1466 +1445 1467 +1445 1471 +1445 1472 +1445 242 +1445 1475 +1445 1476 +1445 1478 +1445 1481 +1445 1465 +1445 1465 +1445 1465 +1009 1007 +1009 1470 +1009 228 +1009 235 +315 315 +315 445 +315 866 +1229 1239 +1229 602 +1229 1234 +1229 1318 +1229 1229 +1229 1229 +476 32 +476 1247 +476 47 +476 562 +476 277 +476 75 +476 742 +476 1071 +476 475 +476 1308 +476 1310 +476 489 +476 493 +476 1466 +476 623 +476 2288 +476 526 +476 476 +476 476 +476 476 +476 476 +1441 1402 +1441 1412 +1441 226 +1441 228 +1441 235 +1441 1452 +1441 1462 +1441 1466 +1441 1467 +1441 1468 +1441 1480 +1441 1466 +1441 1466 +1444 391 +1444 1398 +1444 1404 +1444 1411 +1444 1412 +1444 1416 +1444 1423 +1444 1424 +1444 1424 +1444 1428 +1444 226 +1444 1430 +1444 228 +1444 1436 +1444 1434 +1444 1439 +1444 1442 +1444 1443 +1444 1444 +1444 1445 +1444 1446 +1444 1449 +1444 235 +1444 1457 +1444 1458 +1444 1459 +1444 1460 +1444 1461 +1444 1462 +1444 1465 +1444 1464 +1444 1466 +1444 1467 +1444 1471 +1444 1476 +1444 1478 +1444 245 +1444 1444 +1444 1465 +1444 1444 +1444 1465 +1444 1465 +772 400 +772 854 +772 1507 +772 445 +772 1540 +772 747 +772 750 +772 525 +772 2316 +975 1545 +975 1394 +975 887 +975 2344 +975 960 +975 289 +975 458 +975 931 +975 939 +975 950 +975 999 +975 482 +975 955 +975 964 +975 932 +975 341 +975 975 +975 999 +975 975 +975 999 +999 1545 +999 1394 +999 887 +999 1501 +999 289 +999 931 +999 237 +999 283 +999 950 +999 975 +999 955 +999 932 +999 341 +999 999 +999 999 +1587 397 +1587 713 +1587 433 +1587 435 +1587 458 +1587 525 +691 878 +691 1498 +691 1143 +471 386 +471 388 +471 392 +471 1717 +471 393 +471 397 +471 418 +471 1749 +471 433 +471 445 +471 451 +471 1281 +471 1110 +471 1922 +471 1815 +471 1831 +471 494 +471 1832 +471 497 +471 789 +471 1840 +471 367 +471 512 +471 518 +471 521 +471 451 +471 471 +471 451 +471 471 +471 451 +254 254 +124 12 +124 216 +124 26 +124 31 +124 69 +124 70 +124 221 +124 222 +124 223 +124 228 +124 231 +124 234 +124 235 +124 185 +124 247 +124 124 +124 124 +124 124 +1296 1208 +1296 1211 +1296 2009 +1296 1264 +1296 1299 +1296 1321 +1296 1344 +1296 1350 +1296 1296 +1296 1296 +1661 1611 +1661 1621 +1661 1627 +1661 1629 +1661 1635 +1661 1638 +1661 1637 +1661 1636 +1661 1641 +1661 1645 +1661 1646 +1661 1643 +1661 1648 +1661 1647 +1661 1654 +1661 1653 +1661 1673 +1661 526 +1661 1684 +1661 1685 +1123 909 +1123 1183 +233 1401 +233 1413 +233 224 +233 225 +233 226 +233 228 +233 229 +233 666 +233 232 +233 235 +233 672 +233 236 +233 1465 +233 1467 +233 241 +233 242 +233 243 +233 244 +233 245 +233 246 +233 247 +1523 1523 +1523 489 +1523 1517 +1523 1523 +1523 1523 +1316 1211 +1316 1261 +1316 1264 +1316 1272 +1316 1288 +1316 1314 +1316 1326 +1316 1328 +1316 1330 +1316 1334 +1316 510 +1316 1350 +1316 1352 +1316 1363 +1316 1316 +1316 1316 +232 393 +232 1413 +232 224 +232 225 +232 1573 +232 226 +232 227 +232 228 +232 229 +232 232 +232 233 +232 235 +232 236 +232 241 +232 242 +232 243 +232 244 +232 245 +232 246 +232 247 +485 391 +485 393 +485 397 +485 708 +485 410 +485 458 +485 1509 +485 485 +485 793 +485 393 +1589 733 +1589 489 +1589 1589 +1589 372 +255 252 +255 255 +255 509 +489 489 +846 845 +846 846 +846 962 +235 213 +235 216 +235 26 +235 31 +235 63 +235 69 +235 1412 +235 1413 +235 221 +235 224 +235 225 +235 226 +235 228 +235 107 +235 229 +235 237 +235 1443 +235 1445 +235 1447 +235 232 +235 233 +235 234 +235 235 +235 672 +235 1450 +235 236 +235 1465 +235 1466 +235 1467 +235 241 +235 242 +235 243 +235 244 +235 1478 +235 375 +235 245 +235 246 +235 247 +1449 1398 +1449 1404 +1449 1405 +1449 1407 +1449 1411 +1449 1412 +1449 1416 +1449 1420 +1449 1428 +1449 1434 +1449 1439 +1449 1442 +1449 1443 +1449 1444 +1449 1445 +1449 1446 +1449 1449 +1449 1454 +1449 1457 +1449 1458 +1449 1459 +1449 1460 +1449 1461 +1449 1465 +1449 1466 +1449 1467 +1449 1475 +1449 1476 +1449 1478 +1449 1465 +1449 1465 +1449 1465 +1449 1449 +784 493 +784 694 +784 1143 +784 526 +784 1484 +493 1722 +493 277 +493 75 +493 602 +493 476 +493 1310 +493 493 +493 784 +493 2288 +493 526 +493 493 +493 493 +493 493 +493 493 +1832 1687 +1832 1717 +1832 393 +1832 1722 +1832 400 +1832 445 +1832 1797 +1832 1871 +1832 1832 +1832 1832 +234 213 +234 216 +234 26 +234 31 +234 52 +234 69 +234 221 +234 222 +234 89 +234 228 +234 124 +234 231 +234 235 +234 247 +1859 1689 +1859 1722 +1859 457 +1859 1848 +1859 1859 +1859 1807 +1390 1390 +962 962 +962 14 +962 266 +962 910 +962 960 +962 280 +962 1574 +962 929 +962 962 +962 978 +962 814 +962 848 +962 849 +962 818 +962 967 +962 851 +962 993 +962 1002 +962 962 +140 140 +140 154 +140 157 +140 679 +1330 393 +1330 1243 +1330 1261 +1330 1264 +1330 1281 +1330 1316 +1330 1326 +1330 1328 +1330 1344 +743 1525 +743 458 +743 479 +1450 1401 +1450 1413 +1450 1424 +1450 1450 +1450 1455 +1328 1219 +1328 1223 +1328 1293 +1328 1244 +1328 1065 +1328 1264 +1328 1272 +1328 1342 +1328 1303 +1328 1316 +1328 2047 +1328 1330 +1328 1331 +1328 1352 +1328 1363 +1328 1328 +1328 1328 +139 391 +139 393 +139 43 +139 1272 +139 162 +139 173 +1453 1410 +1453 1411 +1453 1412 +1453 1416 +1453 1417 +1453 1423 +1453 1428 +1453 1433 +1453 1434 +1453 1439 +1453 1442 +1453 1443 +1453 1444 +1453 1446 +1453 1449 +1453 496 +1453 1465 +1453 1476 +497 890 +497 1717 +497 393 +497 1621 +497 1641 +497 1497 +497 1498 +497 445 +497 1653 +497 1513 +497 471 +497 3 +497 497 +497 497 +1369 489 +1369 1369 +1369 1369 +142 26 +142 31 +142 52 +142 221 +142 78 +142 235 +142 185 +1149 1127 +1149 1093 +2049 393 +2049 1975 +2049 1412 +2049 254 +2049 2049 +2049 2074 +673 696 +673 668 +673 670 +673 676 +673 185 +1017 1005 +1017 1016 +1017 1008 +1455 1401 +1455 1413 +1455 933 +1455 1450 +786 786 +1850 1717 +1850 393 +1850 1753 +1850 1764 +1850 1767 +1850 1771 +1850 1826 +1850 1881 +1340 1722 +1340 425 +1340 1264 +1340 1299 +1340 1351 +1340 1340 +805 391 +805 708 +805 723 +805 808 +805 781 +805 781 +805 515 +805 819 +805 720 +805 994 +805 391 +972 2323 +972 922 +972 1369 +972 972 +972 932 +972 1364 +972 972 +972 972 +1456 1401 +1456 1402 +1456 1418 +1456 1421 +1456 1422 +1456 1424 +1456 1429 +1456 1430 +1456 228 +1456 1466 +1456 1467 +1456 1478 +786 318 +786 702 +786 434 +786 1848 +1671 1600 +848 848 +1467 1398 +1467 1404 +1467 1407 +1467 1411 +1467 1412 +1467 1416 +1467 1420 +1467 1421 +1467 734 +1467 1428 +1467 226 +1467 228 +1467 1434 +1467 1439 +1467 1441 +1467 1442 +1467 1443 +1467 1444 +1467 1445 +1467 1446 +1467 233 +1467 1449 +1467 235 +1467 788 +1467 496 +1467 1450 +1467 1452 +1467 1457 +1467 1458 +1467 1459 +1467 1460 +1467 1461 +1467 1465 +1467 1464 +1467 1466 +1467 1467 +1467 1468 +1467 848 +1467 346 +1467 244 +1467 1476 +1467 1477 +1467 1478 +1467 648 +1467 1480 +1467 1465 +1467 1465 +1467 1465 +1466 696 +1466 1402 +1466 1408 +1466 1408 +1466 1412 +1466 1418 +1466 1421 +1466 1425 +1466 1573 +1466 1427 +1466 226 +1466 1430 +1466 228 +1466 1434 +1466 1441 +1466 1443 +1466 1444 +1466 1445 +1466 1446 +1466 235 +1466 1450 +1466 1452 +1466 1454 +1466 1460 +1466 1462 +1466 1464 +1466 1467 +1466 1468 +1466 1476 +1466 1477 +1466 1478 +1466 1480 +1466 1466 +1466 1466 +2060 1746 +2060 1412 +2060 2061 +1465 1398 +1465 1403 +1465 1404 +1465 1405 +1465 1410 +1465 1411 +1465 1412 +1465 1414 +1465 1416 +1465 1417 +1465 1418 +1465 1420 +1465 1421 +1465 1423 +1465 1428 +1465 226 +1465 1430 +1465 228 +1465 1433 +1465 1436 +1465 1434 +1465 1438 +1465 1439 +1465 1441 +1465 1442 +1465 1443 +1465 1444 +1465 1445 +1465 1446 +1465 1448 +1465 1449 +1465 235 +1465 1452 +1465 1453 +1465 1454 +1465 1457 +1465 1458 +1465 1459 +1465 1460 +1465 1461 +1465 1462 +1465 1466 +1465 1467 +1465 1468 +1465 1469 +1465 1471 +1465 1472 +1465 1475 +1465 1476 +1465 1477 +1465 1478 +1465 1480 +1465 1465 +816 401 +816 713 +816 851 +816 993 +1172 1412 +1172 1089 +1172 489 +1172 509 +1172 1173 +1172 1174 +1172 1175 +1172 1188 +1174 1064 +1174 1167 +1174 364 +1174 1172 +1174 1173 +1174 1175 +1174 1177 +1174 1188 +1468 1402 +1468 1408 +1468 1413 +1468 1421 +1468 1422 +1468 226 +1468 228 +1468 1431 +1468 1436 +1468 1441 +1468 235 +1468 1452 +1468 236 +1468 1456 +1468 1465 +1468 1466 +1468 1467 +1468 244 +1468 1480 +1468 1466 +1468 1466 +304 393 +304 269 +304 397 +304 400 +304 708 +304 408 +304 1493 +304 436 +304 272 +304 445 +304 448 +304 284 +304 458 +304 288 +304 10 +304 304 +304 304 +304 304 +304 304 +1462 696 +1462 1402 +1462 1412 +1462 1430 +1462 1434 +1462 1441 +1462 1443 +1462 1444 +1462 1445 +1462 1591 +1462 1456 +1462 1460 +1462 1462 +1462 1465 +1462 1466 +1462 1467 +1462 1476 +1462 1477 +1462 1478 +1462 1480 +1159 393 +1159 255 +2066 445 +2066 2046 +2066 2049 +2066 2074 +982 23 +982 895 +982 405 +982 901 +982 1412 +982 1257 +982 1334 +982 1467 +982 1184 +982 982 +982 982 +980 883 +980 393 +980 2060 +980 682 +980 525 +980 2288 +980 6 +980 980 +980 980 +978 75 +978 445 +978 990 +978 760 +978 3 +978 1673 +519 43 +519 58 +2069 1974 +2069 252 +2069 2071 +308 405 +308 434 +308 1071 +308 489 +308 786 +308 509 +849 393 +849 458 +849 461 +849 310 +849 849 +133 186 +133 696 +133 63 +133 82 +133 662 +133 100 +133 101 +851 266 +851 400 +851 1497 +851 445 +851 525 +851 851 +851 993 +851 525 +242 393 +242 1896 +242 220 +242 1412 +242 1413 +242 224 +242 225 +242 445 +242 1573 +242 226 +242 227 +242 228 +242 229 +242 1445 +242 232 +242 233 +242 235 +242 236 +242 1466 +242 1467 +242 241 +242 242 +242 243 +242 244 +242 375 +242 245 +242 246 +242 247 +241 31 +241 1412 +241 1413 +241 224 +241 225 +241 226 +241 227 +241 228 +241 107 +241 229 +241 232 +241 233 +241 235 +241 236 +241 1466 +241 241 +241 242 +241 243 +241 244 +241 245 +241 246 +241 247 +1130 1028 +1130 1412 +1130 1077 +1130 1598 +1393 1974 +1393 1036 +1393 63 +1393 1498 +1393 90 +1393 2010 +1393 124 +1393 776 +1393 489 +1393 1393 +1393 915 +1393 1393 +1393 1393 +1393 1393 +1185 1055 +1185 1061 +1185 1062 +1185 1178 +1344 895 +1344 2330 +1344 1281 +1344 471 +1344 1316 +1344 1330 +1344 509 +1344 1238 +1344 1344 +1344 1344 +177 393 +177 411 +177 69 +177 79 +177 90 +177 102 +177 458 +177 139 +177 173 +181 16 +181 1717 +181 60 +181 64 +181 66 +181 68 +181 73 +181 92 +181 99 +181 1095 +181 124 +181 489 +181 235 +181 172 +1565 1555 +1565 1636 +1565 1641 +1565 1600 +1565 1603 +1565 1653 +1565 1559 +1565 1580 +1565 1585 +1565 1558 +1565 1597 +1565 682 +682 445 +682 663 +682 107 +682 668 +682 682 +2284 866 +2284 334 +2284 489 +2284 1505 +1435 1398 +1435 1400 +1435 1402 +1435 1403 +1435 1407 +1435 1411 +1435 1417 +1435 1423 +1435 226 +1435 228 +1435 1433 +1435 1434 +1435 1439 +1435 1440 +1435 1443 +1435 1446 +1435 1449 +1435 1457 +1435 1460 +1435 1465 +1435 1466 +1435 1467 +1435 1476 +1435 1479 +1435 1434 +1435 1434 +1373 1211 +1373 1259 +1373 1264 +1373 1283 +1373 1300 +1373 1326 +1373 1373 +1373 1373 +1552 887 +1552 63 +1552 931 +1552 237 +1552 1593 +1552 694 +1469 68 +1469 1418 +1469 226 +1469 1430 +1469 228 +1469 1434 +1469 1439 +1469 1446 +1469 1451 +1469 1465 +1469 1466 +1469 1467 +1469 1478 +885 400 +1515 2145 +1515 1504 +1515 1493 +1515 1638 +1515 736 +1515 1525 +1515 1508 +1515 2215 +1515 1492 +1515 1540 +1515 1509 +1515 682 +1515 1505 +1515 2182 +173 393 +173 79 +173 177 +1351 1209 +1351 1261 +1351 1264 +1351 1281 +1351 1314 +1351 1316 +1351 1326 +1351 1330 +1351 509 +1351 510 +1351 1372 +346 434 +346 323 +346 334 +346 1445 +346 340 +346 346 +346 346 +346 346 +244 393 +244 1412 +244 1413 +244 224 +244 225 +244 226 +244 227 +244 228 +244 229 +244 232 +244 233 +244 235 +244 236 +244 1468 +244 241 +244 242 +244 243 +244 244 +244 1476 +244 185 +244 245 +244 246 +244 247 +1960 1891 +1960 445 +1960 775 +1960 1960 +1960 810 +1960 839 +1960 1960 +344 2160 +344 2404 +344 489 +344 2288 +344 344 +344 1491 +344 2259 +344 2288 +344 2288 +2291 1525 +2291 2404 +1598 89 +1598 445 +1598 1573 +1598 458 +1598 496 +1598 932 +1598 682 +526 1621 +526 277 +526 1641 +526 1653 +526 476 +526 1310 +526 493 +526 136 +526 623 +526 624 +526 2288 +526 526 +526 526 +526 526 +526 526 +183 27 +183 43 +183 66 +183 68 +183 1095 +183 124 +183 489 +183 966 +183 1872 +1547 393 +1547 400 +1547 708 +1547 1548 +1547 476 +1547 1547 +1477 696 +1477 1412 +1477 1413 +1477 1418 +1477 226 +1477 228 +1477 1434 +1477 1439 +1477 1439 +1477 1441 +1477 1446 +1477 235 +1477 1456 +1477 1462 +1477 1465 +1477 1466 +1477 1467 +1477 1480 +1478 696 +1478 1398 +1478 1404 +1478 1411 +1478 1412 +1478 1416 +1478 1573 +1478 1428 +1478 226 +1478 1434 +1478 1439 +1478 1442 +1478 1443 +1478 1444 +1478 1445 +1478 1446 +1478 1449 +1478 1451 +1478 1457 +1478 1458 +1478 1459 +1478 1460 +1478 1461 +1478 1465 +1478 1465 +1478 1466 +1478 1467 +1478 1474 +1478 1476 +1478 1478 +1478 1478 +1478 1465 +1478 1478 +1478 1465 +1478 1478 +1478 1465 +1104 393 +1104 396 +1104 1057 +1104 2330 +1104 430 +1104 1525 +1104 1573 +1104 922 +1104 972 +1104 682 +1104 531 +915 1036 +915 475 +915 957 +915 1330 +915 509 +1480 1480 +1505 2145 +1505 1504 +1505 1493 +1505 1548 +1505 1525 +1505 1492 +1505 1540 +1505 709 +1505 476 +1505 1515 +1505 526 +1505 185 +1480 1401 +1480 1402 +1480 1412 +1480 1413 +1480 1421 +1480 1424 +1480 226 +1480 1430 +1480 228 +1480 1431 +1480 1441 +1480 235 +1480 1452 +1480 1462 +1480 1466 +1480 1467 +1480 1468 +1480 1480 +1480 1466 +1480 1466 +1002 882 +1002 952 +1002 983 +1002 984 +1002 1684 +996 1022 +996 895 +996 489 +996 996 +996 996 +996 996 +531 397 +531 561 +531 430 +531 433 +531 290 +531 464 +531 1832 +531 984 +531 1155 +531 531 +245 348 +245 391 +245 1412 +245 1413 +245 224 +245 225 +245 226 +245 228 +245 229 +245 1434 +245 232 +245 233 +245 235 +245 1450 +245 236 +245 1465 +245 1467 +245 1468 +245 241 +245 242 +245 243 +245 244 +245 245 +245 246 +245 247 +2316 397 +2316 2108 +2316 854 +2316 1903 +2316 2175 +2316 1540 +2316 747 +2316 750 +2316 772 +2316 2246 +2316 525 +2316 2288 +2316 1484 +1484 692 +1484 1412 +1484 2288 +536 544 +536 31 +536 409 +536 415 +536 429 +536 69 +536 432 +536 75 +536 221 +536 440 +536 89 +536 449 +536 228 +536 1510 +536 126 +536 136 +536 505 +536 514 +536 623 +536 836 +536 538 +536 540 +247 216 +247 393 +247 69 +247 1413 +247 221 +247 224 +247 225 +247 226 +247 227 +247 228 +247 229 +247 232 +247 233 +247 235 +247 496 +247 1450 +247 236 +247 241 +247 242 +247 243 +247 244 +247 245 +247 246 +247 247 +839 1891 +839 445 +839 775 +839 1587 +839 489 +839 525 +839 1960 +839 810 +1481 1005 +1481 1502 +1481 734 +1481 1445 +1481 962 +1481 762 +1481 1464 +1481 1467 +1481 818 +481 544 +481 395 +481 427 +481 75 +481 2354 +481 510 +788 695 +788 700 +788 722 +788 1467 +788 820 +788 2281 +119 696 +119 1718 +119 397 +119 47 +119 1745 +119 61 +119 445 +119 91 +119 734 +119 99 +119 109 +119 110 +119 496 +119 146 +119 1853 +119 159 +119 849 +119 818 +119 525 +119 851 +119 185 +119 1685 +1842 1691 +1842 1730 +1842 1785 +1842 445 +825 2135 +825 405 +825 2215 +825 742 +825 811 +825 2259 +1580 1636 +1580 1641 +1580 1603 +1580 1653 +1580 1559 +1580 1565 +1444 1444 +396 386 +396 399 +396 419 +396 718 +396 425 +396 433 +396 435 +396 444 +396 749 +396 290 +396 461 +396 761 +396 464 +396 472 +396 254 +396 483 +396 489 +396 509 +396 849 +396 310 +396 827 +396 827 +396 833 +396 461 +396 396 +2351 715 +2351 1571 +2351 749 +2351 461 +2351 2387 +2351 833 +749 1551 +749 396 +749 715 +749 2351 +749 461 +749 761 +749 938 +749 794 +749 797 +749 814 +749 827 +749 832 +749 833 +623 397 +623 568 +623 569 +623 624 +623 648 +651 90 +651 667 +651 124 +651 1392 +651 239 +651 680 +436 1498 +436 451 +436 459 +436 1663 +436 304 +436 515 +436 436 +436 436 +433 386 +433 396 +433 708 +433 419 +433 433 +433 435 +433 196 +433 444 +433 1647 +433 290 +433 458 +433 461 +433 464 +433 471 +433 472 +433 1587 +433 483 +433 489 +433 1832 +433 509 +433 531 +433 433 +433 433 +433 433 +99 1024 +99 31 +99 416 +99 1746 +99 69 +99 71 +99 75 +99 119 +99 145 +1470 1397 +1470 1525 +1470 359 +1470 1540 +1470 750 +1470 344 +1470 244 +927 1573 +927 933 +927 1110 +927 489 +927 874 +927 996 +1331 1261 +1331 1271 +1331 1281 +1331 1284 +1331 1316 +1331 1298 +1331 1324 +1331 1328 +1331 1334 +1331 509 +1331 515 +1331 1331 +1331 1331 +88 391 +88 393 +88 43 +88 410 +88 50 +88 50 +88 654 +88 280 +88 1774 +88 496 +1434 1398 +1434 1400 +1434 1401 +1434 1403 +1434 1404 +1434 1407 +1434 1411 +1434 1412 +1434 1416 +1434 1417 +1434 1418 +1434 1418 +1434 1423 +1434 1428 +1434 226 +1434 1430 +1434 228 +1434 1433 +1434 1434 +1434 1435 +1434 1439 +1434 1439 +1434 1440 +1434 1442 +1434 1443 +1434 1444 +1434 1445 +1434 1447 +1434 1446 +1434 1449 +1434 1449 +1434 235 +1434 1457 +1434 1458 +1434 1459 +1434 1460 +1434 1461 +1434 1465 +1434 1466 +1434 1467 +1434 1476 +1434 1478 +1434 1479 +1434 1434 +1434 1465 +1434 1434 +1434 1465 +1434 1465 +367 471 +359 427 +359 1470 +359 1525 +359 1540 +359 236 +359 244 +1452 1402 +1452 1413 +1452 1421 +1452 226 +1452 1430 +1452 228 +1452 1441 +1452 235 +1452 1450 +1452 1466 +1452 1467 +1452 1468 +1452 1476 +1452 1480 +1452 1466 +1452 1466 +237 1387 +237 228 +237 931 +237 2353 +237 351 +237 489 +237 235 +237 1390 +237 1593 +1430 1407 +1430 1412 +1430 1416 +1430 1418 +1430 1421 +1430 1429 +1430 1434 +1430 1444 +1430 1445 +1430 1450 +1430 372 +1430 1466 +1430 1467 +1430 1468 +1430 1430 +1430 1430 +1646 2330 +1646 1621 +1646 1627 +1646 1629 +1646 1635 +1646 1638 +1646 1637 +1646 1636 +1646 1641 +1646 1645 +1646 1643 +1646 1648 +1646 1647 +1646 1654 +1646 1653 +1646 1661 +1646 4 +1646 1 +1646 3 +1646 5 +1646 1673 +1646 1527 +1646 1684 +1646 1685 +2224 2090 +2224 2126 +2224 2148 +2224 2197 +2224 2199 +2224 2292 +2224 2293 +2224 2295 +2224 2296 +2224 2297 +2224 2303 +2224 2315 +2224 2224 +2224 2224 +1679 713 +1679 1679 +21 43 +398 890 +398 1717 +398 423 +398 1764 +398 441 +398 1897 +398 760 +398 119 +398 471 +398 477 +398 1664 +398 2364 +398 497 +398 515 +398 515 +398 515 +398 515 +1645 2330 +1645 1621 +1645 1627 +1645 1629 +1645 1635 +1645 1638 +1645 1637 +1645 1636 +1645 1641 +1645 1646 +1645 1643 +1645 1648 +1645 1647 +1645 1654 +1645 1653 +1645 1661 +1645 1673 +1645 1476 +1645 1684 +1645 1685 +1718 1716 +1718 1717 +1718 393 +1718 407 +1718 1745 +1718 1756 +1718 1765 +1718 1799 +1718 1805 +1718 1815 +1718 1829 +1718 1840 +1718 1855 +1718 1865 +1718 1819 +1718 1203 +1718 1718 +1718 1840 +1718 1718 +1718 1840 +1718 1718 +1011 1401 +1011 1016 +1011 63 +1011 69 +1011 922 +1011 972 +1655 1650 +1238 1716 +1238 1331 +1238 1382 +1403 1398 +1403 1400 +1403 31 +1403 1404 +1403 1407 +1403 1411 +1403 1412 +1403 1414 +1403 1416 +1403 1417 +1403 1423 +1403 1573 +1403 1428 +1403 1430 +1403 1433 +1403 1436 +1403 1434 +1403 1435 +1403 1439 +1403 1440 +1403 1442 +1403 1443 +1403 1444 +1403 1445 +1403 1446 +1403 1448 +1403 1449 +1403 235 +1403 1457 +1403 1458 +1403 1459 +1403 1460 +1403 1461 +1403 1465 +1403 1465 +1403 1466 +1403 1467 +1403 1471 +1403 1472 +1403 1475 +1403 1476 +1403 1478 +1403 1479 +1403 1434 +1403 1465 +1403 1434 +1403 1465 +1403 1465 +1417 26 +1417 1398 +1417 1400 +1417 1403 +1417 1404 +1417 1407 +1417 1411 +1417 1412 +1417 1414 +1417 1416 +1417 1417 +1417 1423 +1417 1428 +1417 1430 +1417 228 +1417 1433 +1417 1436 +1417 1434 +1417 1435 +1417 1439 +1417 1440 +1417 1442 +1417 1443 +1417 1444 +1417 1445 +1417 1446 +1417 1448 +1417 1449 +1417 235 +1417 1457 +1417 1458 +1417 1459 +1417 1460 +1417 1461 +1417 1465 +1417 1466 +1417 1467 +1417 1471 +1417 1472 +1417 1475 +1417 1476 +1417 1478 +1417 1479 +1417 1434 +1417 1465 +1417 1434 +1417 1465 +1417 1465 +24 14 +24 23 +24 391 +24 43 +24 1412 +24 117 +1685 708 +1685 2330 +1685 1621 +1685 1627 +1685 1628 +1685 1629 +1685 1635 +1685 1638 +1685 1637 +1685 1636 +1685 1641 +1685 1645 +1685 1646 +1685 1643 +1685 1648 +1685 1647 +1685 1654 +1685 1653 +1685 471 +1685 1661 +1685 3 +1685 5 +1685 2104 +1685 1673 +1685 1684 +1685 1549 +63 63 +190 602 +190 866 +776 696 +776 708 +776 713 +776 2159 +776 717 +776 718 +776 1502 +776 734 +776 458 +776 1436 +776 776 +776 762 +776 307 +776 814 +776 818 +776 373 +776 821 +818 708 +818 713 +818 718 +818 910 +818 734 +818 458 +818 292 +818 776 +818 972 +818 159 +818 307 +818 814 +818 1481 +734 2131 +734 708 +734 713 +734 718 +734 195 +734 1502 +734 776 +734 235 +734 1464 +734 814 +734 818 +734 373 +734 1481 +280 696 +280 393 +280 990 +280 962 +734 734 +87 391 +87 413 +87 445 +878 878 +878 825 +878 691 +1475 1403 +1475 1411 +1475 1412 +1475 1414 +1475 1416 +1475 1417 +1475 1423 +1475 445 +1475 1433 +1475 1434 +1475 1439 +1475 1443 +1475 1445 +1475 1446 +1475 1448 +1475 1458 +1475 1460 +1475 1465 +1475 1471 +1475 1472 +1475 1476 +1475 1478 +1475 1446 +1475 1446 +1475 1465 +1460 1398 +1460 1400 +1460 1404 +1460 1411 +1460 1412 +1460 1414 +1460 1416 +1460 1423 +1460 1573 +1460 1428 +1460 226 +1460 1430 +1460 228 +1460 1434 +1460 1439 +1460 1442 +1460 1443 +1460 1444 +1460 1445 +1460 1446 +1460 1449 +1460 1457 +1460 1458 +1460 1459 +1460 1460 +1460 1461 +1460 1465 +1460 1466 +1460 1467 +1460 1471 +1460 1476 +1460 1478 +1460 1460 +1460 1465 +1460 1460 +1460 1465 +1460 1465 +1476 1398 +1476 1401 +1476 1404 +1476 1411 +1476 1412 +1476 1413 +1476 1416 +1476 1420 +1476 1645 +1476 1573 +1476 1428 +1476 226 +1476 1430 +1476 228 +1476 1434 +1476 1439 +1476 1442 +1476 1443 +1476 1444 +1476 1445 +1476 1446 +1476 1448 +1476 1449 +1476 2244 +1476 1457 +1476 1458 +1476 1459 +1476 509 +1476 1460 +1476 1461 +1476 1465 +1476 515 +1476 1466 +1476 1467 +1476 1472 +1476 1475 +1476 244 +1476 1476 +1476 1478 +1476 1465 +1476 1476 +1476 1465 +1476 1476 +1476 1465 +1186 1071 +1659 1615 +1659 1616 +1659 401 +1659 713 +1659 713 +1659 1624 +1659 1630 +1659 1631 +1659 1640 +1659 1662 +1659 807 +375 425 +375 433 +375 357 +375 358 +375 226 +375 228 +375 489 +375 235 +375 370 +375 375 +684 730 +684 736 +684 1523 +363 445 +363 228 +363 235 +363 244 +419 386 +419 396 +419 718 +419 433 +419 434 +419 435 +419 444 +419 445 +419 290 +419 461 +419 761 +419 464 +419 472 +419 483 +419 489 +419 509 +419 849 +419 310 +419 419 +1321 393 +1321 445 +1321 1264 +1321 1296 +1321 1350 +1321 1361 +1321 1321 +1321 1321 +348 1099 +348 364 +348 1176 +1635 1621 +1635 1635 +1635 1638 +1635 1637 +1635 1636 +1635 1641 +1635 1645 +1635 1646 +1635 1643 +1635 1648 +1635 1647 +1635 1654 +1635 1653 +1635 760 +1635 1661 +1635 3 +1635 1673 +1635 1684 +1635 1685 +1673 1621 +1673 1635 +1673 1638 +1673 1637 +1673 1636 +1673 1641 +1673 1645 +1673 1646 +1673 1643 +1673 1648 +1673 1647 +1673 1654 +1673 1653 +1673 1661 +1673 3 +1673 1684 +1673 1685 +722 695 +722 788 +722 820 +722 2281 +1602 1412 +1602 473 +1602 979 +1602 1191 +1621 1611 +1621 708 +1621 1627 +1621 1629 +1621 1635 +1621 1638 +1621 1637 +1621 1636 +1621 1641 +1621 1646 +1621 1647 +1621 733 +1621 1654 +1621 1653 +1621 1661 +1621 3 +1621 970 +1621 1673 +1621 1684 +2340 2144 +2340 405 +2340 2159 +2340 2160 +2259 2135 +2259 714 +2259 2215 +2259 489 +2259 344 +2259 526 +1637 1607 +1637 400 +1637 2330 +1637 1621 +1637 1627 +1637 1629 +1637 2174 +1637 1635 +1637 1638 +1637 1636 +1637 1641 +1637 1645 +1637 1646 +1637 1643 +1637 1644 +1637 1648 +1637 1647 +1637 1654 +1637 1653 +1637 1661 +1637 1660 +1637 1663 +1637 3 +1637 5 +1637 1673 +1637 1684 +1637 1685 +1658 1607 +1658 708 +1658 2330 +1658 411 +1658 1628 +1658 437 +1658 859 +1658 1638 +1658 1525 +1658 1648 +1658 1647 +1658 1618 +1658 666 +1658 1660 +1658 489 +1648 1607 +1648 708 +1648 2330 +1648 1621 +1648 1627 +1648 1628 +1648 1629 +1648 433 +1648 1635 +1648 859 +1648 1638 +1648 1637 +1648 1636 +1648 1658 +1648 1641 +1648 1525 +1648 1645 +1648 1646 +1648 1643 +1648 1647 +1648 1654 +1648 1653 +1648 666 +1648 1661 +1648 1660 +1648 3 +1648 1673 +1648 1527 +1648 1684 +1648 1685 +1648 859 +1648 859 +1648 859 +432 43 +432 47 +432 409 +432 714 +432 61 +432 440 +432 572 +432 449 +432 770 +432 207 +432 505 +432 536 +432 538 +432 540 +1647 1607 +1647 393 +1647 708 +1647 1621 +1647 1627 +1647 1629 +1647 1635 +1647 1638 +1647 1637 +1647 1636 +1647 1658 +1647 1641 +1647 808 +1647 1645 +1647 1646 +1647 1643 +1647 1644 +1647 1648 +1647 1654 +1647 1653 +1647 1661 +1647 1660 +1647 4 +1647 3 +1647 5 +1647 2104 +1647 1668 +1647 1649 +1647 1673 +1647 1684 +1647 1685 +1643 1611 +1643 1621 +1643 1627 +1643 1629 +1643 1635 +1643 1638 +1643 1637 +1643 1636 +1643 1641 +1643 1645 +1643 1646 +1643 1648 +1643 1647 +1643 1654 +1643 1653 +1643 1661 +1643 1 +1643 3 +1643 1673 +1643 1527 +1643 1684 +1643 1685 +1681 1397 +1681 2321 +1681 708 +1681 2330 +1681 1470 +1681 859 +1681 1638 +1681 1658 +1681 1525 +1681 1648 +1681 1647 +1681 1540 +1681 750 +1681 1660 +1681 489 +1681 682 +1681 1484 +1681 859 +1681 859 +1681 859 +770 1722 +770 432 +770 1525 +770 489 +770 505 +770 538 +409 43 +409 47 +409 49 +409 432 +409 75 +409 440 +409 89 +409 570 +409 449 +409 129 +409 505 +409 536 +409 538 +409 540 +1664 890 +1664 1554 +1664 1555 +1664 1617 +1664 1619 +1664 1625 +1664 1626 +1664 1639 +1664 1651 +1664 1666 +1664 1682 +1664 1686 +1663 2113 +1663 708 +1663 2330 +1663 1621 +1663 1628 +1663 1629 +1663 1635 +1663 1638 +1663 1637 +1663 1636 +1663 1641 +1663 1645 +1663 1646 +1663 1643 +1663 1648 +1663 1647 +1663 1654 +1663 1653 +1663 1580 +1663 1661 +1663 3 +1663 5 +1663 1673 +1663 1527 +1663 1530 +1663 1684 +1663 1685 +1396 1398 +1396 1411 +1396 1573 +1396 1430 +1396 1434 +1396 1439 +1396 1443 +1396 1449 +1396 1465 +1398 1396 +1398 1398 +1398 1404 +1398 560 +1398 1410 +1398 1411 +1398 1412 +1398 1416 +1398 1428 +1398 1434 +1398 1439 +1398 1442 +1398 1443 +1398 1444 +1398 1445 +1398 1446 +1398 1449 +1398 1457 +1398 1458 +1398 1459 +1398 1460 +1398 1461 +1398 1465 +1398 1466 +1398 1467 +1398 1476 +1398 1478 +1398 1465 +1398 1465 +1398 1465 +1684 1611 +1684 1621 +1684 1627 +1684 1629 +1684 1635 +1684 1636 +1684 1641 +1684 1654 +1684 1653 +1684 1661 +1684 1673 +1684 526 +1471 1400 +1471 393 +1471 1403 +1471 1412 +1471 1414 +1471 1417 +1471 1423 +1471 226 +1471 1430 +1471 228 +1471 1433 +1471 1434 +1471 1444 +1471 1445 +1471 1448 +1471 1451 +1471 1460 +1471 1465 +1471 1467 +1471 1472 +1471 1475 +1471 1478 +1471 1465 +277 1637 +277 360 +191 191 +1269 1024 +1269 1165 +1269 405 +1269 1042 +1269 1071 +1269 1 +1269 1163 +1269 1370 +1269 991 +1269 916 +464 386 +464 1717 +464 396 +464 397 +464 419 +464 433 +464 435 +464 196 +464 444 +464 332 +464 290 +464 472 +464 483 +464 484 +464 489 +464 1832 +464 984 +464 509 +464 1155 +464 310 +464 531 +1387 1395 +1387 1746 +1387 1391 +1387 1390 +1387 680 +261 353 +261 1007 +261 250 +261 1007 +261 261 +353 1007 +353 1009 +353 261 +353 1007 +1660 1607 +1660 391 +1660 393 +1660 708 +1660 2330 +1660 859 +1660 1638 +1660 1637 +1660 1658 +1660 1645 +1660 1648 +1660 1647 +1660 666 +1660 1668 +1660 859 +1660 859 +1660 859 +1639 890 +1639 1617 +1639 1619 +1639 1625 +1639 1626 +1639 1632 +1639 1633 +1639 1651 +1639 1664 +1639 1666 +1639 1682 +1639 1683 +1639 1686 +932 1621 +932 1645 +932 999 +932 932 +932 680 +932 932 +932 932 +1687 393 +1687 1644 +1687 1832 +1687 1844 +1687 1832 +1687 1832 +538 47 +538 409 +538 49 +538 714 +538 415 +538 69 +538 432 +538 440 +538 449 +538 748 +538 770 +538 505 +538 509 +538 536 +538 540 +1422 1402 +1422 1412 +1422 1426 +1422 1425 +1422 1430 +1422 1456 +1422 1466 +1422 1467 +1422 1468 +1422 1480 +1607 2330 +1607 1628 +1607 1638 +1607 1637 +1607 1658 +1607 1644 +1607 1647 +1607 1660 +1607 3 +1607 525 +509 396 +509 1851 +509 405 +509 714 +509 419 +509 425 +509 277 +509 433 +509 434 +509 435 +509 457 +509 464 +509 475 +509 489 +509 510 +509 538 +509 509 +509 509 +79 23 +79 391 +79 393 +79 2098 +79 43 +79 50 +79 57 +79 77 +79 97 +79 458 +79 139 +79 160 +79 177 +79 393 +2109 2113 +2109 527 +1211 393 +1211 1237 +1211 1259 +1211 1261 +1211 1264 +1211 1283 +1211 1296 +1211 1299 +1211 489 +1211 1314 +1211 1316 +1211 1326 +1211 1330 +1211 1340 +1211 510 +1211 1350 +1211 1373 +1211 1211 +1211 1211 +1549 708 +1549 1645 +1549 1646 +1549 477 +1549 789 +1549 1527 +1549 515 +1549 1552 +654 12 +654 235 +654 654 +654 654 +658 31 +658 89 +658 107 +658 235 +658 682 +670 12 +670 52 +670 654 +670 657 +670 90 +670 1645 +670 107 +670 668 +670 673 +670 681 +670 682 +670 107 +670 670 +670 670 +2312 393 +2312 2106 +2312 2147 +2312 400 +2312 708 +2312 2178 +2312 1509 +1261 1211 +1261 1264 +1261 1272 +1261 475 +1261 476 +1261 1316 +1261 1326 +1261 1328 +1261 509 +1261 510 +1261 1352 +1548 322 +1548 1645 +1548 940 +1548 1505 +515 890 +515 422 +515 423 +515 436 +515 1636 +515 1498 +515 441 +515 451 +515 1651 +515 760 +515 477 +515 515 +515 515 +515 515 +411 393 +411 2098 +411 277 +411 738 +411 465 +1257 1385 +1257 445 +1257 1234 +1257 1330 +1257 982 +1257 1238 +1176 1036 +1176 1064 +1176 1087 +1176 1089 +1176 1095 +1176 760 +1176 1177 +1402 1409 +1402 1412 +1402 1418 +1402 1421 +1402 1425 +1402 1430 +1402 1436 +1402 1441 +1402 1452 +1402 1462 +1402 1466 +1402 1467 +1402 1468 +1402 1480 +1402 1466 +1402 1466 +1996 1995 +1996 1999 +1996 1997 +1996 1998 +1996 2000 +1996 2001 +1996 2002 +1996 2003 +1996 2005 +1996 2020 +1996 2030 +1996 2073 +1997 1995 +1997 1999 +1997 1998 +1997 2000 +1997 2001 +1997 2002 +1997 2003 +1997 2005 +1997 2020 +1997 2023 +1997 2030 +1997 2066 +1998 1978 +1998 1995 +1998 1999 +1998 1997 +1998 2000 +1998 2001 +1998 2002 +1998 2003 +1998 2020 +1998 2030 +1999 77 +1999 1995 +1999 1997 +1999 1998 +1999 2000 +1999 2001 +1999 2002 +1999 2003 +1999 2005 +1999 445 +1999 2020 +1999 2030 +2000 77 +2000 1995 +2000 1999 +2000 1997 +2000 1998 +2000 2001 +2000 2002 +2000 2003 +2000 2021 +2000 2020 +2000 2030 +981 2159 +981 909 +981 489 +981 1456 +981 240 +981 919 +323 322 +323 323 +323 325 +323 866 +323 334 +323 335 +323 140 +323 1529 +323 340 +323 346 +323 323 +323 323 +383 216 +383 56 +383 378 +383 227 +383 1450 +383 384 +383 383 +1832 1832 +309 458 +309 776 +309 309 +309 309 +309 309 +1871 1722 +1871 1046 +1871 1748 +1871 1647 +1871 493 +1871 1832 +1871 344 +662 12 +662 667 +662 140 +1177 1087 +1177 2028 +1177 489 +1177 2046 +1177 1141 +1177 2049 +1177 2063 +1177 1176 +1177 2066 +1177 2074 +1423 1398 +1423 1400 +1423 1403 +1423 1404 +1423 1407 +1423 1411 +1423 1412 +1423 1413 +1423 1414 +1423 1416 +1423 1417 +1423 1420 +1423 1573 +1423 1428 +1423 1430 +1423 228 +1423 458 +1423 1433 +1423 1436 +1423 1434 +1423 1435 +1423 1439 +1423 1440 +1423 1442 +1423 1443 +1423 1444 +1423 1445 +1423 1446 +1423 1448 +1423 1449 +1423 235 +1423 1457 +1423 1458 +1423 1459 +1423 1460 +1423 1461 +1423 1465 +1423 1466 +1423 1467 +1423 1471 +1423 1472 +1423 1475 +1423 1476 +1423 1478 +1423 1479 +1423 1434 +1423 1465 +1423 1434 +1423 1465 +1423 1465 +179 43 +179 68 +179 1095 +179 167 +179 2070 +179 181 +909 895 +909 919 +909 2074 +909 909 +909 909 +1280 400 +1280 1574 +2131 2131 +123 1470 +401 1722 +401 399 +401 400 +401 401 +401 406 +401 713 +401 277 +401 445 +401 254 +401 1587 +401 807 +401 525 +401 401 +401 401 +463 708 +463 561 +463 196 +463 290 +463 761 +463 472 +463 849 +463 310 +463 247 +680 651 +680 659 +680 1765 +680 90 +680 667 +680 1392 +680 932 +680 239 +435 396 +435 397 +435 841 +435 419 +435 277 +435 433 +435 458 +435 464 +435 1587 +435 489 +435 984 +435 509 +435 511 +435 525 +435 435 +435 435 +435 397 +814 708 +814 713 +814 2159 +814 718 +814 734 +814 776 +814 762 +814 307 +814 818 +814 373 +1611 2159 +1611 1641 +1611 1643 +1611 1653 +1611 2365 +427 427 +1046 697 +1046 1046 +1046 1525 +1046 445 +1046 2008 +1046 1197 +1046 489 +905 405 +905 445 +905 930 +905 929 +905 668 +905 682 +905 526 +714 393 +714 496 +714 509 +1071 1028 +1071 1197 +1071 668 +1071 476 +1071 308 +1071 526 +19 19 +19 20 +19 89 +787 386 +787 433 +787 461 +787 795 +787 1155 +787 531 +1352 1261 +1352 1272 +1352 1316 +1352 1328 +1352 1330 +1352 1344 +1352 1316 +1352 1316 +808 766 +808 391 +808 405 +808 705 +808 723 +808 729 +808 774 +808 751 +808 781 +808 805 +808 803 +808 819 +808 720 +808 829 +808 711 +808 391 +2186 2087 +2186 393 +2186 2123 +2186 2116 +2186 2122 +2186 2126 +2186 2127 +2186 2132 +2186 2133 +2186 2136 +2186 2138 +2186 2139 +2186 2140 +2186 2142 +2186 2143 +2186 2148 +2186 708 +2186 1525 +2186 2197 +2186 2198 +2186 2206 +2186 2213 +2186 2218 +2186 2231 +2186 2240 +2186 2270 +2186 2288 +1277 1264 +1277 1277 +1277 1229 +1277 1334 +1277 1277 +1277 1277 +2126 2101 +2126 2122 +2126 2127 +2126 2136 +2126 2139 +2126 2140 +2126 2148 +2126 2186 +2126 2197 +2126 458 +2126 2404 +2126 2218 +2126 2270 +2233 2148 +2233 2176 +2233 2236 +2233 2237 +2233 2239 +2233 2241 +2233 2243 +986 1387 +986 90 +986 1393 +299 708 +299 471 +299 789 +299 2371 +268 269 +268 408 +268 1637 +268 272 +268 448 +268 284 +268 1 +268 304 +268 288 +268 10 +268 304 +268 304 +268 304 +268 304 +2281 695 +2281 2165 +2281 722 +2281 788 +2281 820 +1530 1498 +1530 81 +1530 365 +1530 1527 +1530 804 +1530 1530 +1530 2374 +695 1005 +695 700 +695 722 +695 663 +695 788 +695 811 +695 820 +695 2281 +695 525 +145 1493 +145 71 +145 75 +145 99 +145 489 +2139 2097 +2139 393 +2139 2100 +2139 2122 +2139 2126 +2139 2127 +2139 2136 +2139 2140 +2139 2142 +2139 2148 +2139 2186 +2139 2197 +2139 2198 +2139 2404 +2139 2218 +2139 485 +2139 2270 +2139 2274 +2139 2288 +243 1413 +243 224 +243 225 +243 226 +243 228 +243 229 +243 232 +243 233 +243 235 +243 236 +243 241 +243 242 +243 243 +243 244 +243 245 +243 246 +243 247 +470 434 +470 2390 +470 283 +470 536 +95 393 +95 708 +95 655 +95 1641 +95 89 +95 489 +95 496 +95 682 +1057 393 +1057 1641 +1057 1197 +1057 937 +1057 489 +1057 509 +1057 1104 +657 659 +657 221 +657 661 +657 107 +657 670 +657 676 +657 107 +1166 1165 +1166 436 +1166 1163 +1166 2057 +1166 1164 +1166 1114 +1165 1180 +1165 1166 +1165 1045 +1165 1163 +1165 2057 +1165 1164 +1165 1114 +1114 1028 +1114 1165 +1114 1166 +1114 1106 +1114 1081 +1114 1163 +1163 1165 +1163 1042 +1163 1269 +1163 1166 +1163 1045 +1163 2057 +1163 1164 +1163 1114 +789 388 +789 392 +789 1646 +789 471 +789 494 +789 512 +789 518 +1185 1185 +41 23 +41 393 +41 41 +41 43 +41 69 +41 103 +41 458 +41 136 +41 987 +41 525 +2119 2235 +2119 790 +2119 791 +2119 1544 +1825 1717 +1825 1722 +1825 1739 +1825 1794 +1825 1735 +1825 475 +1825 1860 +1825 1143 +1825 344 +1825 1825 +1825 1825 +1448 1403 +1448 1412 +1448 1414 +1448 1417 +1448 1423 +1448 922 +1448 1433 +1448 1445 +1448 1459 +1448 972 +1448 1465 +1448 1467 +1448 1471 +1448 1472 +1448 1475 +1448 1476 +1448 1476 +1448 1476 +1860 1722 +1860 1739 +1860 1794 +1860 1797 +1860 1835 +1860 1852 +1860 1825 +1860 2288 +776 776 +1499 489 +2098 393 +2098 411 +2098 79 +2098 2191 +2098 2218 +2098 485 +2098 2283 +2098 2098 +2098 2098 +2098 2098 +2098 393 +818 818 +1095 1024 +1095 66 +1095 68 +1095 1064 +1095 88 +1095 1073 +1095 592 +1095 1089 +1095 135 +1095 1175 +1095 1190 +1095 179 +1095 181 +1095 183 +870 1637 +870 1498 +870 1647 +870 1780 +870 866 +870 1527 +870 866 +870 866 +870 866 +870 866 +1849 1716 +1849 1717 +1849 1745 +1849 445 +1849 1799 +1849 666 +1849 1815 +1849 1838 +1849 509 +1849 1853 +1849 1855 +1430 1430 +483 396 +483 1571 +483 749 +483 2351 +483 290 +483 461 +483 761 +483 827 +483 827 +483 461 +1170 1493 +1170 1066 +1170 1197 +1170 1099 +1170 464 +2147 2106 +2147 708 +2147 2178 +2147 1509 +2147 2312 +2395 1535 +2395 1498 +2395 2391 +2395 2393 +2395 2398 +2395 2400 +2395 445 +2395 750 +2395 826 +704 714 +704 61 +704 1532 +1314 425 +1314 254 +1314 1315 +1314 1335 +1314 1186 +1314 1384 +1314 1314 +1314 1314 +1314 1314 +1872 1717 +1872 1722 +1872 1095 +1872 1872 +1872 525 +1872 1872 +1872 1872 +622 434 +622 1412 +622 568 +622 648 +3 1607 +3 1621 +3 1635 +3 859 +3 1637 +3 699 +3 1658 +3 1641 +3 1645 +3 1643 +3 1648 +3 1647 +3 1660 +3 1663 +3 4 +3 1 +3 5 +3 978 +3 6 +3 1685 +692 1903 +692 445 +692 2246 +692 525 +692 1484 +692 2316 +1101 1658 +1101 1136 +1101 1203 +1040 975 +1040 1048 +988 489 +988 786 +988 682 +1064 1024 +1064 1412 +1064 280 +1064 1073 +1064 1089 +1064 1095 +1064 1523 +1064 1330 +1064 1155 +1064 1465 +1064 1176 +1064 1190 +1350 1211 +1350 1213 +1350 400 +1350 1232 +1350 1250 +1350 1258 +1350 1278 +1350 1296 +1350 1299 +1350 1330 +1350 1333 +1350 1356 +1350 1360 +1350 1373 +1350 1350 +1350 1350 +1794 1739 +1794 1797 +1794 1825 +1794 1860 +2058 254 +2058 489 +2058 2046 +2058 1176 +2058 2066 +2058 2058 +2058 2058 +1090 489 +1090 2288 +1089 1024 +1089 1064 +1089 1073 +1089 1095 +1089 1176 +1089 1190 +1662 1615 +1662 1616 +1662 400 +1662 713 +1662 1624 +1662 1630 +1662 1631 +1662 1640 +1662 445 +1662 1659 +1662 525 +1391 1387 +1391 1390 +1391 1455 +1609 69 +1609 1665 +1183 1057 +1183 1123 +1183 489 +1183 1104 +1606 1607 +1606 63 +1606 1638 +1606 1637 +1606 1658 +1606 1645 +1606 1646 +1606 1648 +1606 1647 +1606 445 +1606 1660 +1606 133 +1606 1 +1606 3 +1606 5 +1606 1612 +1606 1649 +1606 1685 +77 393 +77 43 +77 79 +77 496 +77 77 +61 47 +61 69 +61 71 +61 75 +61 90 +61 91 +61 449 +61 109 +61 110 +61 119 +61 125 +61 128 +61 146 +61 159 +61 536 +1785 1691 +1785 1692 +1785 1693 +1785 1842 +1785 1730 +1785 659 +1785 1330 +1381 1247 +1381 489 +1381 1334 +1381 1331 +1381 1349 +1381 1375 +1381 1381 +1381 1381 +967 960 +967 1573 +967 940 +967 283 +967 998 +967 917 +967 1143 +967 961 +967 1002 +967 960 +967 960 +967 960 +451 388 +451 392 +451 417 +451 418 +451 1749 +451 436 +451 299 +451 1647 +451 1918 +451 1922 +451 471 +451 1815 +451 1831 +451 494 +451 1840 +451 512 +451 515 +451 518 +451 521 +451 451 +451 451 +451 451 +1245 1247 +1245 1353 +1245 1226 +1245 1334 +1245 1002 +1245 1245 +1245 1245 +1353 1208 +1353 1247 +1353 218 +1353 1239 +1353 1261 +1353 1266 +1353 1245 +1353 1316 +1353 1340 +1353 1381 +1353 1353 +1353 1353 +1610 1610 +1610 696 +1610 1445 +2008 1046 +900 90 +900 493 +1454 1402 +1454 1412 +1454 1430 +1454 1434 +1454 1441 +1454 1445 +1454 1466 +1454 1467 +1454 1480 +728 2165 +277 277 +1408 1412 +1408 1413 +1408 1421 +1408 1425 +1408 226 +1408 1430 +1408 228 +1408 1445 +1408 235 +1408 1452 +1408 1456 +1408 1460 +1408 1467 +1408 1468 +1408 1471 +1408 1480 +930 489 +1807 1851 +1807 1848 +1807 1847 +1807 1859 +1807 1758 +1341 489 +1341 496 +1409 1402 +1409 1413 +1409 1424 +1409 226 +1409 1430 +1409 1450 +1409 1466 +1409 1467 +1409 1468 +1732 1800 +1732 1823 +1732 1717 +1732 393 +1732 1722 +1732 1736 +1732 1837 +1732 1727 +1732 1816 +1732 1784 +1732 1868 +1732 1732 +1732 1733 +1732 1846 +1732 1873 +1732 1874 +1732 1647 +1732 1878 +1732 1744 +1732 1802 +1732 1803 +1732 1782 +1732 1781 +1732 1779 +1732 1812 +1732 1721 +2296 2096 +2296 2148 +2296 427 +2296 1540 +2296 2199 +2296 2224 +2296 489 +2296 2242 +2296 509 +2296 510 +2296 525 +2296 2292 +2296 2293 +2296 2294 +2296 2295 +2296 2297 +2296 2303 +2296 2288 +2296 2199 +2296 2199 +669 221 +669 1445 +669 669 +669 669 +1197 1057 +1197 1525 +1197 1099 +1197 489 +1197 509 +112 27 +112 43 +112 112 +112 160 +1203 1203 +1203 1203 +1765 1716 +1765 1717 +1765 1718 +1765 393 +1765 400 +1765 1745 +1765 1756 +1765 1767 +1765 445 +1765 1799 +1765 1805 +1765 1815 +1765 1829 +1765 1840 +1765 1855 +1765 1865 +1765 1765 +1765 1840 +1765 1765 +1765 1840 +1765 1765 +2145 736 +2145 1505 +1554 890 +1201 1097 +1201 445 +1201 602 +1201 1074 +1201 1282 +2394 2147 +2394 2399 +2394 1647 +820 695 +820 722 +820 788 +820 2281 +709 708 +709 1646 +709 1 +709 932 +709 1505 +1280 1280 +2065 393 +2065 2159 +2065 1990 +2065 2005 +2065 2045 +2065 2066 +2065 2025 +2065 2074 +6 6 +1081 1024 +1081 1045 +1081 489 +1081 239 +1081 1114 +1903 1895 +1903 1896 +1903 1903 +325 387 +325 322 +325 323 +325 866 +325 525 +325 851 +325 344 +325 325 +325 325 +1143 1525 +929 882 +929 923 +929 933 +929 1002 +2215 1525 +2215 1492 +2215 1540 +2215 1515 +2215 344 +2215 526 +2215 2259 +2215 2182 +1028 348 +1028 1066 +1028 1077 +1028 1089 +1028 1029 +1028 1130 +1028 1170 +1028 1176 +1028 1598 +807 713 +807 1583 +807 1659 +807 807 +807 807 +807 807 +528 400 +528 405 +528 425 +528 277 +528 434 +528 1525 +528 325 +528 457 +528 475 +528 476 +528 489 +528 493 +528 509 +528 510 +528 624 +528 1960 +528 526 +814 814 +1045 1024 +1045 1165 +1045 1081 +1045 2057 +1045 1164 +1359 489 +1359 1359 +1359 1359 +2107 2112 +2107 2117 +2107 708 +2107 2159 +2107 2287 +155 216 +155 26 +155 31 +155 52 +155 78 +155 89 +155 185 +253 252 +253 259 +336 1635 +336 1637 +336 1641 +336 1647 +336 1653 +450 277 +450 476 +855 855 +456 427 +456 277 +439 425 +439 501 +1586 1576 +2337 489 +2337 2337 +2337 2337 +676 31 +676 397 +676 657 +676 221 +676 661 +676 668 +676 673 +676 155 +1406 1401 +1406 1405 +1406 1412 +1406 1430 +1406 228 +1406 1444 +1406 1445 +1406 1449 +1406 235 +1406 1465 +1406 1465 +1406 1466 +1406 1467 +1622 2112 +1622 2130 +1622 2134 +1622 1621 +1622 1643 +1622 1654 +1622 2384 +1622 1661 +1622 3 +1622 515 +1622 1684 +1318 489 +1318 1318 +1318 1318 +1268 1717 +1268 2399 +1268 846 +1268 1832 +2384 2112 +2384 903 +2384 1643 +2384 1654 +2384 1653 +2384 2384 +2384 3 +2384 969 +2384 1684 +1623 2112 +1623 1621 +1623 1643 +1623 445 +1623 1654 +1623 1653 +1623 2384 +1623 1661 +1623 3 +1623 1684 +2135 2215 +2135 825 +2135 742 +2135 737 +2135 2259 +1616 1615 +1616 713 +1616 1624 +1616 1630 +1616 1631 +1616 1640 +1616 1659 +1616 1662 +1050 1092 +1050 411 +1050 419 +1050 1085 +1050 2046 +1050 1158 +1050 849 +1050 1050 +1050 1050 +258 2049 +258 258 +258 258 +1601 1604 +1601 890 +1601 1555 +1601 1567 +1601 1575 +1601 1592 +1601 1596 +1601 1686 +1686 890 +1686 1617 +1686 1619 +1686 1625 +1686 1626 +1686 1639 +1686 1664 +1686 1666 +1686 1682 +1686 1683 +1686 1601 +1666 890 +1666 1617 +1666 1619 +1666 1625 +1666 1626 +1666 1639 +1666 1651 +1666 1664 +1666 1682 +1666 1686 +2321 1621 +2321 859 +2321 1638 +2321 2384 +2321 1150 +2321 1684 +2321 1685 +1626 890 +1626 1554 +1626 1617 +1626 1619 +1626 1625 +1626 1632 +1626 1633 +1626 1639 +1626 1664 +1626 1666 +1626 1682 +1626 1683 +1626 1686 +1651 1604 +1651 890 +1651 1619 +1651 1639 +1651 1664 +1651 1666 +1651 1683 +1597 890 +1597 1555 +1597 1567 +1597 1600 +1597 1585 +1597 1565 +1298 17 +1298 400 +1298 409 +1298 57 +1298 1346 +1298 174 +160 14 +160 391 +160 27 +160 28 +160 393 +160 2148 +160 43 +160 1774 +160 117 +160 496 +160 141 +160 1468 +1870 215 +1870 393 +1870 1885 +1870 445 +1870 471 +1870 489 +1870 1832 +1364 434 +869 392 +869 451 +1629 1621 +1629 1627 +1629 445 +1629 1654 +1629 1653 +1629 1661 +1629 804 +1629 1684 +1222 1334 +1222 1381 +1222 1222 +1222 1222 +869 869 +1208 393 +1208 1264 +1208 1229 +1208 1330 +1208 1340 +1208 982 +1208 1208 +1208 1208 +1208 1208 +1208 1208 +1198 973 +1198 1594 +239 217 +239 222 +239 228 +239 667 +239 124 +239 239 +239 680 +239 247 +1015 1424 +1015 1009 +1015 673 +539 1197 +539 1814 +539 1587 +539 1888 +523 1722 +523 405 +523 425 +523 277 +523 434 +523 445 +523 457 +523 933 +523 475 +523 489 +523 493 +523 509 +523 510 +523 622 +523 493 +523 493 +523 493 +523 493 +1642 445 +1642 826 +847 843 +1744 393 +1744 1722 +1744 1784 +517 71 +517 496 +517 932 +517 2374 +517 160 +482 391 +482 43 +482 458 +482 464 +482 479 +482 488 +482 496 +482 458 +1527 400 +1527 2330 +1527 1621 +1527 1628 +1527 1658 +1527 1645 +1527 1646 +1527 1643 +1527 1647 +1527 254 +1527 870 +1527 303 +1527 1530 +1234 1247 +1234 1385 +1234 1257 +1234 1364 +1234 1234 +1234 1234 +1558 1636 +1558 1641 +1558 1603 +1558 1559 +1558 1565 +1600 1555 +1600 1585 +1600 1671 +1600 1597 +1600 1565 +1826 1754 +1826 1732 +1826 1764 +1826 1771 +1826 1850 +1826 1881 +95 95 +1266 1332 +1266 1354 +1266 1290 +1266 1364 +1574 1016 +1574 1576 +1574 1583 +926 886 +926 896 +926 911 +926 928 +926 1444 +926 1000 +1223 1219 +1223 405 +1223 1293 +1223 1244 +1223 1342 +1223 1303 +1223 1316 +1223 1328 +1223 1330 +1223 1331 +1223 1352 +1223 1363 +1223 1328 +1223 1328 +447 247 +1264 1264 +2048 1995 +12 12 +12 52 +12 654 +12 88 +12 670 +898 411 +898 1653 +2357 436 +2357 515 +2031 2046 +136 393 +136 32 +136 400 +136 445 +136 458 +136 125 +136 160 +136 526 +136 136 +1067 1021 +1067 1412 +473 469 +473 1467 +908 405 +908 922 +908 682 +2 2394 +2 7 +2283 2098 +1175 922 +1175 1095 +1175 252 +1175 972 +1175 1172 +1175 1173 +1175 1174 +1175 1188 +2404 399 +2404 1493 +2404 2401 +2404 2402 +2404 2231 +2404 2291 +2404 6 +2404 7 +2404 8 +2404 9 +2404 2404 +2017 2017 +2017 2034 +2017 2049 +2017 2054 +764 386 +764 696 +764 461 +812 220 +995 325 +995 496 +995 995 +995 995 +1591 1615 +1591 1573 +1591 1591 +1591 1462 +1082 902 +1082 922 +1082 489 +1082 1143 +988 988 +1773 1716 +1773 1717 +1773 1767 +1773 1788 +1773 1799 +1773 1805 +1773 1815 +1773 1829 +1773 1840 +1773 1841 +1773 1737 +1773 1865 +1773 1773 +1773 1773 +2025 2005 +2025 2046 +2025 2065 +2025 2026 +2025 2027 +2025 2074 +1815 1690 +1815 1716 +1815 1718 +1815 400 +1815 1875 +1815 410 +1815 1745 +1815 1749 +1815 1765 +1815 445 +1815 1773 +1815 1799 +1815 1805 +1815 471 +1815 1815 +1815 1829 +1815 1840 +1815 1855 +1815 1865 +1815 1840 +1815 1840 +1259 1211 +1259 1264 +1259 1299 +1259 1340 +1259 1259 +1259 1259 +1608 1607 +1608 393 +1608 708 +1608 2330 +1608 275 +1608 1638 +1608 1637 +1608 1645 +1608 1646 +1608 1648 +1608 1647 +1608 293 +1608 1660 +1608 1663 +1608 4 +1608 3 +1608 2104 +1608 1649 +1608 525 +1608 1685 +859 393 +859 708 +859 2330 +859 1628 +859 1638 +859 1648 +859 1647 +859 1509 +859 1660 +859 1527 +859 859 +859 859 +859 859 +1358 1247 +1358 1236 +1358 1261 +1358 1265 +1358 1270 +1358 1291 +1358 1330 +1358 1337 +1358 1338 +1358 1374 +1358 1358 +1358 1358 +1338 1358 +1338 1265 +1338 1331 +1338 509 +1338 1374 +1835 1794 +1211 1211 +923 929 +923 933 +923 962 +1725 400 +1725 1725 +1725 445 +1725 471 +1725 489 +1725 1832 +1725 509 +1725 525 +1725 1725 +1725 1725 +12 12 +496 458 +496 995 +496 782 +496 496 +1284 708 +1284 1412 +1284 1271 +1284 1272 +1284 1316 +1284 1298 +1284 1324 +1284 1331 +1284 1335 +1284 1331 +1284 1331 +1408 1408 +1310 1247 +1310 1242 +1310 1525 +1310 1261 +1310 1264 +1310 1296 +1310 1299 +1310 475 +1310 1307 +1310 1308 +1310 489 +1310 1316 +1310 1326 +1310 1330 +1310 1341 +1310 510 +1310 1350 +1310 1375 +1310 2288 +1310 1505 +2182 1482 +2182 1525 +2182 2215 +2182 1492 +2182 1540 +2182 476 +2182 489 +2182 1515 +2182 344 +2182 526 +2182 2259 +47 43 +47 61 +47 75 +47 91 +47 109 +47 110 +47 119 +47 476 +47 125 +47 128 +47 493 +47 146 +47 159 +47 536 +1959 1527 +1959 209 +1959 515 +1959 1959 +1959 1959 +1263 445 +1263 1264 +1263 755 +1263 1263 +1263 1263 +893 280 +893 237 +893 333 +893 932 +893 992 +893 1549 +560 560 +560 1407 +560 68 +560 88 +560 229 +560 845 +560 620 +276 276 +2185 2086 +2185 2146 +2185 1645 +2185 526 +1011 1011 +1030 393 +1030 445 +1030 173 +1855 1716 +1855 1717 +1855 1718 +1855 1765 +1855 1767 +1855 1799 +1855 1805 +1855 1815 +1855 1829 +1855 1840 +1855 1862 +1855 1855 +1855 1855 +1855 1855 +200 1514 +200 2147 +200 1389 +2390 269 +2390 270 +2390 408 +2390 285 +2390 272 +2390 448 +2390 284 +2390 2403 +2390 304 +2390 271 +2390 288 +2390 10 +2390 2390 +2390 304 +2390 304 +2390 304 +2390 304 +1918 471 +1918 509 +494 388 +494 392 +494 397 +494 418 +494 299 +494 451 +494 1922 +494 471 +494 789 +494 1840 +494 512 +494 518 +494 521 +494 451 +494 451 +494 451 +894 933 +894 984 +894 997 +1760 1760 +1592 1555 +1592 1632 +1592 1567 +1592 1575 +1592 1585 +1592 1601 +1592 1575 +1592 1575 +1632 890 +1632 1555 +1632 1626 +1632 1639 +1632 1592 +1632 1683 +1632 1686 +845 845 +845 845 +845 845 +527 2109 +527 400 +527 2159 +527 1641 +527 445 +527 2349 +527 1653 +527 1583 +527 471 +527 1684 +1255 1224 +1255 1227 +1255 1228 +1255 1253 +1255 1385 +1255 1264 +1255 1281 +1255 489 +1255 1313 +1255 1320 +1255 1330 +1255 1376 +1255 1255 +1255 1255 +2194 413 +2194 1645 +2194 1474 +1865 1716 +1865 1717 +1865 1718 +1865 1745 +1865 1765 +1865 1799 +1865 1805 +1865 1813 +1865 1815 +1865 1829 +1865 1840 +1865 1855 +1865 1737 +1865 1819 +1865 1840 +1865 1865 +1865 1840 +1865 1865 +1865 1865 +20 393 +20 411 +20 1624 +20 89 +57 393 +57 43 +57 58 +57 962 +57 164 +57 525 +164 393 +164 31 +164 400 +164 57 +164 445 +164 1573 +440 541 +440 409 +440 415 +440 432 +440 354 +440 83 +440 446 +440 449 +440 602 +440 291 +440 278 +440 505 +440 366 +440 536 +440 538 +440 540 +480 32 +480 47 +480 1493 +480 88 +480 129 +480 146 +480 180 +1551 1553 +1551 715 +1551 461 +2273 2092 +2273 2127 +2273 750 +2273 458 +2273 2272 +2273 2275 +2273 375 +430 397 +430 708 +430 561 +430 433 +430 444 +430 290 +430 464 +430 531 +430 430 +430 430 +430 430 +430 531 +1644 1687 +1644 1607 +1644 1637 +1644 1832 +1644 1668 +2383 696 +2383 2159 +2383 119 +2383 242 +2383 2291 +916 916 +263 254 +263 263 +263 263 +1387 1387 +2319 119 +2298 1722 +2298 2148 +2298 2174 +2298 1525 +2298 2197 +2298 2252 +2298 2290 +2298 2293 +2298 2296 +2298 2303 +2298 2298 +2298 2298 +2298 2298 +54 12 +54 43 +54 88 +54 124 +2297 2096 +2297 2148 +2297 1525 +2297 1540 +2297 2197 +2297 2199 +2297 2224 +2297 2292 +2297 2293 +2297 2294 +2297 2295 +2297 2296 +2297 2303 +2297 2288 +2297 2199 +2297 2199 +2295 2096 +2295 2148 +2295 2199 +2295 2224 +2295 2292 +2295 2293 +2295 2294 +2295 2296 +2295 2297 +2295 2303 +2295 2199 +2295 2199 +2292 2096 +2292 2126 +2292 2148 +2292 2174 +2292 2199 +2292 2224 +2292 2293 +2292 2294 +2292 2295 +2292 2296 +2292 2297 +2292 2303 +2292 2315 +2292 2199 +2292 2199 +167 16 +167 48 +167 68 +167 67 +167 445 +167 121 +167 179 +167 181 +2027 2067 +2027 2025 +2027 2026 +180 22 +180 32 +180 43 +180 49 +180 413 +180 114 +180 146 +44 22 +44 43 +44 49 +44 114 +44 496 +44 180 +1249 489 +1249 1318 +1241 1282 +1241 1328 +1216 602 +1216 489 +1216 1216 +1216 1216 +1243 1330 +1243 1344 +1243 1348 +172 15 +172 43 +172 64 +172 68 +172 445 +172 92 +172 116 +172 181 +64 15 +64 68 +64 88 +64 92 +64 116 +64 172 +64 179 +64 181 +148 17 +148 23 +148 393 +148 43 +148 58 +148 1573 +148 760 +148 136 +148 164 +17 393 +17 43 +17 58 +17 69 +17 85 +17 136 +17 148 +30 393 +30 43 +30 411 +30 50 +30 85 +30 189 +178 41 +178 399 +178 400 +178 43 +178 103 +178 458 +178 507 +178 525 +1292 1314 +1292 1331 +1292 1351 +1224 1227 +1224 1228 +1224 1253 +1224 1264 +1224 1255 +1224 489 +1224 1316 +1224 1320 +1224 1326 +1224 1330 +1224 1351 +1224 1376 +2290 1607 +2290 2148 +2290 459 +2290 509 +2290 510 +2290 2288 +2290 526 +103 23 +103 41 +103 43 +103 445 +103 1673 +1333 1213 +1333 1232 +1333 1250 +1333 1258 +1333 1073 +1333 1278 +1333 1296 +1333 1299 +1333 510 +1333 1350 +1333 1356 +1333 1360 +1333 1350 +1333 1350 +2272 2127 +2272 445 +2272 2247 +2272 2267 +2272 2273 +2272 525 +2272 2305 +2047 755 +1327 405 +2247 697 +2247 2127 +2247 2159 +2247 445 +2247 2272 +2247 2273 +2247 2247 +660 31 +660 228 +660 235 +191 191 +191 191 +174 400 +174 43 +174 85 +174 525 +2204 2101 +2204 2106 +2204 2127 +2204 2148 +2204 400 +2204 2395 +2204 445 +2204 489 +2204 6 +2204 2222 +2204 2312 +1136 1101 +1136 1136 +1136 1203 +1136 1136 +1136 1136 +2192 2148 +2192 2195 +2192 375 +1097 1302 +1097 1523 +1097 489 +1097 1201 +1097 1097 +1097 1097 +1239 602 +1239 1229 +1239 489 +1239 2 +1239 1234 +1239 1239 +1239 1239 +211 525 +1382 1369 +1382 1238 +129 393 +129 43 +129 52 +129 458 +129 525 +129 187 +1605 1605 +1605 304 +149 43 +149 85 +149 476 +149 146 +149 525 +44 44 +2293 2096 +2293 2148 +2293 1525 +2293 1540 +2293 2197 +2293 2199 +2293 2224 +2293 1523 +2293 509 +2293 510 +2293 2292 +2293 2294 +2293 2295 +2293 2296 +2293 2298 +2293 2297 +2293 2303 +2293 2288 +2293 526 +2293 2199 +2293 2199 +952 882 +952 933 +952 1002 +386 396 +386 419 +386 69 +386 433 +386 196 +386 1571 +386 290 +386 464 +386 471 +386 472 +386 1587 +386 483 +386 787 +386 310 +386 851 +386 386 +1169 882 +1169 902 +1169 489 +2303 2096 +2303 2148 +2303 2197 +2303 2199 +2303 2224 +2303 489 +2303 496 +2303 525 +2303 2292 +2303 2293 +2303 2294 +2303 2295 +2303 2296 +2303 2297 +2303 526 +2303 2199 +2303 2199 +1427 1401 +1427 1413 +1427 1421 +1427 226 +1427 1430 +1427 228 +1427 235 +1427 1450 +1427 1452 +1427 1465 +1427 1466 +1427 1467 +1427 1468 +1824 1717 +1824 1722 +1824 1848 +1824 1824 +1824 1824 +1824 1824 +1824 1722 +963 437 +963 682 +882 1637 +882 952 +882 983 +882 489 +882 1002 +1414 1403 +1414 1412 +1414 1417 +1414 1423 +1414 1573 +1414 1433 +1414 1434 +1414 1445 +1414 1446 +1414 1448 +1414 1460 +1414 1465 +1414 1465 +1414 1471 +1414 1472 +1414 1475 +1356 1213 +1356 1232 +1356 1250 +1356 1258 +1356 1278 +1356 1333 +1356 1350 +1356 1360 +1356 1350 +1356 1350 +395 32 +395 427 +395 61 +395 75 +395 445 +395 536 +2021 1978 +2021 1979 +2021 1995 +2021 2005 +2021 2022 +2021 2020 +2021 2023 +2021 1302 +17 17 +1295 1086 +1295 1255 +1295 489 +1295 1295 +1295 1295 +30 30 +1447 1398 +1447 1398 +1447 1418 +1447 1420 +1447 1421 +1447 226 +1447 228 +1447 1434 +1447 1439 +1447 1443 +1447 1444 +1447 1445 +1447 1446 +1447 1449 +1447 1460 +1447 1465 +1447 1466 +1447 1476 +1447 1478 +189 393 +189 30 +189 43 +189 458 +189 189 +58 58 +1258 1213 +1258 1232 +1258 1250 +1258 1278 +1258 1333 +1258 1350 +1258 1356 +1258 1360 +1258 1373 +1258 1350 +1258 1350 +904 1621 +904 733 +904 962 +904 969 +1429 1412 +1429 1421 +1429 1430 +1429 228 +1429 1445 +1429 1456 +1429 1466 +1429 1468 +1429 1480 +1429 1430 +1429 1430 +903 2384 +903 969 +903 682 +969 903 +969 2384 +969 904 +793 708 +793 1653 +793 1559 +793 489 +793 526 +128 43 +128 47 +128 61 +128 75 +128 125 +128 146 +128 531 +128 128 +178 178 +164 164 +149 149 +1213 1232 +1213 1250 +1213 1258 +1213 1073 +1213 1264 +1213 1278 +1213 1333 +1213 1350 +1213 1356 +1213 1360 +1213 1350 +1213 1350 +136 136 +174 174 +103 103 +1472 1403 +1472 1412 +1472 1414 +1472 1417 +1472 1423 +1472 922 +1472 1433 +1472 1445 +1472 1446 +1472 1448 +1472 1459 +1472 1460 +1472 1465 +1472 1466 +1472 1467 +1472 1471 +1472 242 +1472 1475 +1472 1476 +1472 1476 +1472 1476 +2040 252 +2040 2041 +2040 2042 +2040 2043 +2040 2053 +2040 2072 +57 57 +180 180 +1783 1716 +1783 1717 +1783 1875 +1783 1745 +1783 1767 +1783 1882 +1783 1840 +1783 525 +46 46 +891 882 +891 930 +891 933 +891 983 +891 1002 +1758 1851 +1758 1832 +1758 1807 +1758 1886 +2355 1647 +2355 2371 +76 24 +76 391 +76 43 +76 52 +76 69 +76 117 +76 120 +76 124 +76 76 +141 14 +141 391 +141 393 +141 400 +141 43 +141 117 +141 496 +141 160 +449 32 +449 409 +449 415 +449 61 +449 432 +449 75 +449 440 +449 136 +449 505 +449 619 +449 536 +449 538 +449 540 +1656 696 +1656 405 +1656 933 +1656 1509 +1656 489 +106 1398 +106 400 +106 69 +106 66 +106 68 +106 436 +106 77 +106 445 +106 966 +106 167 +106 181 +345 393 +345 1722 +345 323 +345 334 +345 340 +345 346 +84 46 +84 104 +84 113 +84 117 +84 153 +84 161 +84 84 +1099 348 +1099 1170 +117 24 +117 391 +117 221 +700 695 +700 713 +700 334 +700 788 +700 962 +700 525 +104 391 +104 393 +104 46 +104 46 +104 1412 +104 84 +104 84 +104 104 +104 113 +104 117 +104 153 +104 161 +104 161 +104 104 +53 43 +53 433 +53 85 +53 525 +2322 2319 +2322 458 +2322 458 +1503 1528 +1503 1533 +1503 1538 +1503 1537 +1538 1528 +1538 1533 +1538 1537 +1538 1647 +1538 1503 +1538 1509 +1533 1528 +1533 1538 +1533 1537 +1533 1648 +1533 1503 +1533 1527 +1528 1533 +1528 1538 +1528 1537 +1528 1648 +1528 1503 +1528 468 +850 1572 +850 1141 +850 932 +850 1177 +850 848 +2197 2097 +2197 2126 +2197 2148 +2197 2150 +2197 445 +2197 824 +2197 2200 +2197 1509 +2197 2231 +2197 509 +2197 2270 +2197 2296 +2197 2315 +2197 2197 +2197 2197 +987 954 +987 789 +987 962 +66 11 +66 16 +66 27 +66 43 +66 68 +66 85 +66 116 +66 493 +66 183 +127 43 +127 58 +127 682 +127 127 +1582 1598 +1244 1219 +1244 1223 +1244 1293 +1244 1261 +1244 1342 +1244 1303 +1244 1316 +1244 1328 +1244 1330 +1244 1352 +1244 1363 +1244 1143 +1244 1351 +1244 1328 +1244 1328 +1363 1219 +1363 1223 +1363 1293 +1363 1244 +1363 1261 +1363 1272 +1363 1342 +1363 1303 +1363 1316 +1363 1328 +1363 1351 +1363 1328 +1363 1328 +230 69 +230 221 +230 227 +230 666 +230 235 +230 247 +308 308 +370 357 +370 358 +370 235 +370 375 +370 375 +857 708 +857 713 +857 433 +857 119 +28 391 +28 393 +28 43 +28 117 +28 160 +28 28 +1076 1722 +1076 960 +1076 254 +71 71 +1886 1050 +1886 1758 +334 391 +334 434 +334 323 +334 225 +334 330 +334 334 +334 340 +334 346 +334 334 +334 334 +1154 1154 +1079 1151 +1079 1064 +1079 1077 +1079 1078 +1079 941 +1079 1176 +1829 1718 +1829 393 +1829 1765 +1829 1773 +1829 1791 +1829 1799 +1829 1805 +1829 1840 +1829 1855 +1829 1737 +1829 1865 +1829 1829 +1829 1829 +2222 2204 +2222 2127 +2222 2136 +2222 399 +2222 2176 +2222 445 +2222 2312 +459 2330 +459 436 +459 1498 +459 733 +459 436 +459 436 +280 280 +1311 399 +1311 856 +1311 2393 +1311 0 +1491 1525 +1491 1540 +1491 493 +1491 344 +1491 526 +351 1645 +351 237 +351 471 +351 2364 +2200 2148 +2200 2150 +2200 2159 +2200 2174 +2200 2197 +2200 496 +2200 2252 +2200 2315 +2239 2176 +2239 445 +2239 2233 +2239 2236 +2239 2237 +2239 2241 +2239 2243 +664 659 +664 221 +664 222 +2238 2101 +2238 2148 +2238 2197 +2238 2242 +2238 2270 +2238 2288 +1124 1130 +1124 972 +940 1504 +940 405 +940 960 +940 1492 +940 930 +940 283 +940 998 +940 682 +886 896 +886 960 +886 911 +886 926 +886 928 +886 1000 +890 890 +211 211 +2030 1970 +2030 1995 +2030 2001 +2030 2002 +2030 2010 +2030 990 +2030 2030 +2030 2060 +2030 2066 +2030 2074 +2140 2087 +2140 393 +2140 2123 +2140 2116 +2140 2122 +2140 2126 +2140 2127 +2140 2132 +2140 2133 +2140 2136 +2140 2138 +2140 2139 +2140 2142 +2140 2143 +2140 2148 +2140 2186 +2140 2186 +2140 2197 +2140 2198 +2140 2206 +2140 2213 +2140 2218 +2140 2231 +2140 2240 +2140 2270 +2140 2288 +2244 2304 +2244 2127 +2244 2136 +2244 2273 +2244 2279 +884 322 +884 1002 +25 23 +25 25 +25 43 +25 88 +25 496 +918 771 +918 1636 +918 1020 +918 1641 +918 1012 +918 1653 +918 526 +429 47 +429 1493 +429 61 +429 75 +429 1445 +429 1467 +429 648 +429 536 +2199 2090 +2199 2096 +2199 2126 +2199 2148 +2199 2197 +2199 2224 +2199 2292 +2199 2293 +2199 2294 +2199 2295 +2199 2296 +2199 2297 +2199 2303 +2199 2288 +2199 526 +2199 2315 +2199 2199 +2199 2199 +355 355 +957 1007 +957 493 +957 915 +1742 695 +1742 713 +1742 1631 +1742 1659 +1742 1832 +1313 1224 +1313 1227 +1313 1228 +1313 1253 +1313 1255 +1313 1255 +1313 1255 +1927 205 +1927 1927 +1927 1927 +205 1927 +1653 1611 +1653 1555 +1653 1621 +1653 1627 +1653 1629 +1653 1635 +1653 1638 +1653 1637 +1653 1636 +1653 1641 +1653 1646 +1653 1647 +1653 458 +1653 1654 +1653 1580 +1653 1661 +1653 3 +1653 1673 +1653 1565 +1653 1684 +912 489 +340 1717 +340 323 +340 2404 +340 334 +340 2288 +340 346 +340 340 +340 340 +340 340 +441 43 +441 423 +441 61 +441 477 +441 136 +441 515 +441 515 +441 515 +441 515 +667 667 +1233 405 +1233 489 +1233 1002 +1343 252 +1343 471 +1343 489 +1343 1343 +1343 2076 +1216 1216 +1173 489 +1173 364 +1173 1172 +1173 1174 +1173 1175 +1173 1176 +1173 1188 +1173 536 +477 43 +477 1621 +477 423 +477 424 +477 436 +477 441 +477 1774 +477 136 +477 515 +477 1549 +477 648 +477 247 +477 477 +477 515 +477 477 +477 515 +477 515 +1724 1722 +608 541 +608 541 +608 546 +608 555 +608 559 +608 581 +608 582 +608 583 +608 584 +608 588 +608 589 +608 590 +608 596 +608 601 +608 602 +608 628 +608 640 +608 624 +589 546 +589 553 +589 555 +589 568 +589 569 +589 581 +589 582 +589 588 +589 590 +589 594 +589 596 +589 601 +589 602 +589 608 +589 489 +589 628 +589 526 +706 714 +706 704 +706 731 +706 2181 +706 881 +388 392 +388 418 +388 451 +388 471 +388 1815 +388 494 +388 512 +388 518 +388 521 +388 451 +388 451 +388 451 +1895 393 +1895 397 +1895 1895 +1895 1896 +1895 435 +1895 1903 +1895 464 +145 145 +2013 1983 +2013 2004 +2013 920 +2013 2014 +2013 2015 +2013 1262 +2013 2016 +2013 2033 +2013 254 +2013 1156 +2013 921 +278 354 +278 440 +278 446 +278 291 +278 476 +278 900 +278 366 +111 393 +111 458 +111 170 +111 458 +477 477 +1151 437 +1151 1073 +1151 1079 +1151 941 +1151 1153 +1151 1154 +1151 1043 +1151 1152 +2035 2005 +2035 2013 +2035 2036 +2035 2037 +2035 2067 +2035 2025 +2035 2027 +2035 2074 +488 481 +488 619 +737 2135 +737 866 +737 526 +737 2259 +1668 2330 +1668 1628 +1668 433 +1668 1637 +1668 1658 +1668 1644 +1668 1648 +1668 1647 +1668 1660 +1668 2104 +1668 1669 +1657 1607 +1657 2330 +1657 1638 +1657 1637 +1657 1645 +1657 1643 +1657 1648 +1657 1647 +1657 1660 +1657 3 +1657 1612 +1657 1649 +1657 682 +332 331 +332 464 +332 254 +332 531 +332 331 +284 269 +284 408 +284 272 +284 448 +284 866 +284 489 +284 304 +284 288 +284 10 +284 304 +284 304 +284 304 +284 304 +2073 1980 +2073 1999 +2073 1996 +2073 2003 +10 269 +10 408 +10 272 +10 448 +10 304 +10 288 +10 304 +10 304 +10 304 +10 304 +2104 1607 +2104 1637 +2104 1647 +2104 1 +2104 1668 +2104 1669 +2104 525 +2104 1685 +847 847 +173 173 +310 1615 +310 393 +310 708 +310 419 +310 718 +310 220 +310 445 +310 1264 +310 745 +310 461 +310 776 +310 849 +310 849 +521 388 +521 392 +521 418 +521 1498 +521 451 +521 471 +521 1831 +521 494 +521 1840 +521 512 +521 518 +521 451 +521 451 +521 451 +153 391 +153 46 +153 84 +153 104 +153 113 +153 117 +153 161 +153 153 +96 222 +96 89 +96 445 +96 228 +96 124 +1649 1607 +1649 2330 +1649 1637 +1649 1645 +1649 1643 +1649 1647 +1649 445 +1649 1660 +1649 1612 +2026 2025 +2026 2027 +842 734 +842 818 +1387 1387 +49 22 +49 43 +49 714 +49 58 +49 61 +49 85 +49 114 +49 496 +49 180 +49 540 +22 32 +22 49 +22 63 +22 114 +22 496 +22 180 +1308 1247 +1308 562 +1308 742 +1308 1277 +1308 475 +1308 476 +1308 1307 +1308 1310 +1308 1330 +1308 476 +1308 476 +1308 476 +1308 476 +713 713 +1427 1427 +392 388 +392 418 +392 451 +392 471 +392 490 +392 494 +392 512 +392 518 +392 521 +392 6 +392 451 +392 451 +392 451 +1307 1385 +1307 1308 +1307 1310 +472 396 +472 419 +472 749 +472 290 +472 461 +472 761 +472 483 +472 827 +472 827 +472 461 +1574 1574 +1335 1281 +1335 1330 +1960 1960 +283 1394 +283 960 +283 940 +283 999 +283 917 +1922 417 +1922 451 +1922 471 +1922 494 +1922 512 +1 1621 +1 1628 +1 1637 +1 1643 +1 1647 +1 1653 +1 1663 +1 4 +1 3 +1 5 +1 851 +1 1685 +2317 1891 +2317 352 +2317 489 +1612 1607 +1612 2330 +1612 1637 +1612 1645 +1612 1643 +1612 1647 +1612 1660 +1612 2104 +1612 1649 +1612 1669 +1488 405 +1488 1532 +1488 1487 +1488 1506 +1488 489 +1488 735 +1488 682 +1488 344 +1488 1500 +679 31 +679 678 +679 683 +2158 1615 +2158 2117 +2158 713 +2158 1624 +2158 1630 +2158 1631 +2158 1640 +2158 2268 +2158 2280 +1300 1264 +1300 1299 +1300 1350 +1300 1373 +1300 1300 +1300 1300 +1300 1300 +596 541 +596 553 +596 564 +596 566 +596 568 +596 569 +596 578 +596 581 +596 582 +596 583 +596 584 +596 586 +596 588 +596 589 +596 590 +596 601 +596 602 +596 608 +596 628 +596 631 +596 639 +596 526 +2279 2127 +2279 2136 +2279 445 +2279 2244 +2279 2273 +51 43 +51 88 +51 464 +51 160 +51 185 +51 51 +111 111 +1032 1028 +1032 399 +1032 1046 +1032 1197 +1032 203 +1032 1183 +1577 445 +1577 1574 +1577 848 +100 186 +100 696 +100 26 +100 31 +100 123 +100 52 +100 63 +100 69 +100 653 +100 90 +100 663 +100 101 +100 124 +100 100 +100 100 +41 41 +1088 2046 +1088 1598 +1128 1055 +1128 922 +1128 471 +1128 489 +1128 2 +1128 1185 +910 814 +910 818 +1297 848 +1297 1297 +1297 1297 +59 43 +59 129 +59 525 +1735 1739 +1735 1825 +1735 1860 +1171 2023 +1171 1176 +1171 1177 +1171 525 +4 1628 +4 220 +4 1638 +4 1637 +4 1645 +4 1646 +4 1648 +4 1663 +4 1 +4 3 +4 5 +4 6 +4 1685 +628 559 +628 568 +628 569 +628 457 +628 581 +628 582 +628 588 +628 589 +628 590 +628 596 +628 601 +628 602 +628 608 +628 489 +628 623 +628 624 +628 629 +628 633 +628 624 +628 526 +213 213 +2053 2040 +2053 2041 +2053 2042 +2053 2043 +2053 2065 +2053 2072 +1290 1266 +1290 1332 +1290 1354 +1091 666 +1091 489 +1091 2 +1091 372 +1091 1491 +1091 1484 +1091 2316 +455 496 +455 513 +455 530 +2160 2144 +2160 405 +2160 2159 +2160 2340 +2160 1645 +2160 489 +2160 344 +991 1269 +991 1654 +991 489 +991 1370 +991 916 +1676 391 +1676 713 +1676 2157 +1676 722 +1676 1576 +1676 1652 +1676 525 +1676 346 +1309 489 +1965 1893 +1965 1899 +1965 1646 +1965 1647 +2061 2060 +1847 1696 +1847 1722 +1847 1820 +1847 405 +1847 1848 +1847 1858 +1847 1299 +1847 489 +1847 1807 +994 708 +994 445 +994 805 +994 819 +1584 1555 +1584 2330 +1584 722 +1584 1567 +1584 437 +1584 859 +1584 1638 +1584 1637 +1584 1648 +1584 1647 +1584 1600 +1584 1585 +1584 1660 +1584 1592 +1584 1597 +1584 1565 +1584 1601 +574 544 +574 235 +983 882 +983 63 +983 1002 +277 277 +277 277 +156 43 +156 58 +156 445 +156 107 +919 909 +919 919 +1893 1899 +1893 1646 +1893 1965 +750 1397 +750 854 +750 1470 +750 1525 +750 1540 +750 747 +750 772 +750 489 +750 1484 +750 2316 +750 750 +1799 1716 +1799 1849 +1799 1745 +1799 1765 +1799 1789 +1799 1799 +1799 1882 +1799 1805 +1799 1815 +1799 1829 +1799 1838 +1799 1840 +1799 1855 +1799 169 +1799 1865 +1799 1799 +1799 1799 +1799 1799 +5 1628 +5 699 +5 1658 +5 1646 +5 1648 +5 1654 +5 1663 +5 4 +5 1 +5 3 +5 6 +5 1685 +1130 1130 +1320 1208 +1320 1224 +1320 1227 +1320 1228 +1320 1253 +1320 1264 +1320 1255 +1320 1316 +1320 1376 +1970 1970 +1972 1972 +1247 1247 +708 708 +191 191 +1238 1238 +773 1535 +773 773 +231 26 +231 52 +231 70 +231 1413 +231 221 +231 222 +231 223 +231 445 +231 124 +231 234 +231 682 +231 247 +1302 1097 +1302 2021 +1302 1302 +1302 1302 +655 655 +508 388 +508 392 +508 418 +508 451 +508 1922 +508 471 +508 769 +508 1587 +508 494 +508 1832 +508 512 +508 518 +508 521 +508 451 +508 451 +508 451 +2404 2404 +21 21 +1995 1995 +194 32 +194 1525 +194 673 +161 46 +161 84 +161 104 +161 113 +161 117 +161 153 +217 393 +217 218 +217 222 +217 95 +217 228 +217 667 +217 235 +217 239 +217 680 +217 247 +2396 2391 +2396 2397 +1374 393 +1374 400 +1374 1261 +1374 1358 +1374 1265 +1374 1330 +1374 1338 +109 32 +109 43 +109 47 +109 61 +109 91 +109 110 +109 119 +109 146 +109 159 +1272 1261 +1272 1272 +1272 476 +1272 1316 +1272 1328 +1272 1330 +1272 1334 +1272 510 +1272 1352 +1272 1363 +1272 1316 +1272 1316 +58 43 +58 409 +58 69 +58 71 +58 960 +58 990 +58 967 +1717 1717 +2132 2087 +2132 393 +2132 2123 +2132 2116 +2132 2133 +2132 2138 +2132 2140 +2132 2142 +2132 2143 +2132 2148 +2132 2186 +2132 2186 +2132 2197 +2132 2198 +2132 2206 +2132 2213 +2132 2231 +2132 2240 +2072 2040 +2072 2041 +2072 2042 +2072 2043 +2072 2053 +2072 2072 +1342 1219 +1342 1223 +1342 1293 +1342 1244 +1342 1303 +1342 1328 +1342 1330 +1342 1363 +1342 1328 +1342 1328 +2072 2072 +881 731 +881 682 +1941 489 +1507 401 +1507 1540 +1507 772 +1593 893 +1593 237 +1593 999 +1348 1211 +1348 393 +1348 1240 +1348 1261 +1348 1316 +1348 1326 +1348 1329 +1348 1373 +1348 1348 +1348 1348 +862 1493 +862 322 +862 1525 +862 1509 +862 489 +125 43 +125 47 +125 61 +125 75 +125 128 +125 146 +125 125 +1108 1054 +1108 1070 +1108 990 +1108 2029 +1108 1108 +953 730 +1161 902 +1161 922 +1161 1141 +1161 972 +1161 1176 +1161 1177 +2001 1995 +2001 1999 +2001 1996 +2001 1997 +2001 1998 +2001 2000 +2001 2002 +2001 2003 +2001 2020 +2001 2030 +2001 489 +651 651 +1075 902 +1075 1074 +1075 1084 +775 775 +2099 2099 +1098 962 +1098 1155 +1098 1098 +1098 1098 +1517 1489 +1517 323 +1517 1546 +1517 666 +1517 1523 +1517 489 +1517 509 +1628 393 +1628 713 +1628 1621 +1628 433 +1628 859 +1628 1638 +1628 1637 +1628 1658 +1628 1641 +1628 1645 +1628 1646 +1628 1648 +1628 1647 +1628 1654 +1628 1661 +1628 1664 +1628 1 +1628 3 +1628 1673 +1628 1684 +1628 1685 +901 696 +901 895 +901 862 +901 2049 +901 982 +372 1525 +372 1523 +2144 2160 +2144 2340 +2231 2087 +2231 393 +2231 2101 +2231 2123 +2231 2116 +2231 2132 +2231 2133 +2231 2138 +2231 2140 +2231 2142 +2231 2143 +2231 2148 +2231 2186 +2231 2186 +2231 2197 +2231 2198 +2231 2206 +2231 2213 +2231 2240 +2231 2288 +187 43 +187 85 +187 129 +187 187 +835 696 +835 393 +835 496 +835 150 +699 1621 +699 733 +699 1654 +699 3 +699 932 +2150 2159 +2150 2320 +2150 445 +2150 2197 +2150 2200 +114 22 +114 31 +114 43 +114 49 +114 110 +114 496 +114 180 +160 160 +1857 1772 +1857 386 +1857 396 +1857 397 +1857 419 +1857 1753 +1857 433 +1857 464 +1851 405 +1851 874 +1851 1807 +1851 510 +1851 1758 +956 496 +1454 1454 +1205 393 +1205 433 +1205 471 +1205 489 +1926 1923 +1926 849 +1926 1926 +1926 1926 +2391 2393 +2391 2395 +2391 2396 +2391 2397 +2391 2398 +2391 2400 +653 393 +653 63 +653 107 +653 673 +653 185 +653 393 +2393 399 +2393 856 +2393 2391 +2393 2395 +2393 2398 +2393 2400 +2393 1311 +2393 0 +339 1717 +339 1722 +339 1746 +339 90 +339 489 +339 962 +339 339 +311 1635 +311 1643 +1879 1746 +1879 960 +1879 1492 +1879 489 +1879 2373 +1879 526 +2002 1980 +2002 1995 +2002 1999 +2002 1997 +2002 1998 +2002 2000 +2002 2001 +2002 2002 +2002 2003 +2002 2005 +2002 2020 +2002 2030 +2002 254 +2002 2049 +2002 2074 +2201 1 +2201 3 +2074 68 +2074 254 +2074 2046 +2074 2049 +2074 2066 +2074 2074 +2074 2075 +2074 2074 +2074 2074 +1625 890 +1625 1617 +1625 1626 +1625 1639 +1625 1651 +1625 1664 +1625 1666 +1625 1682 +1625 1601 +1625 1686 +1529 323 +1529 2390 +1529 304 +1281 1281 +2108 1587 +2108 2316 +665 26 +665 393 +665 31 +665 222 +665 89 +665 228 +665 668 +665 235 +665 239 +1866 1717 +1866 393 +1866 1722 +1866 411 +1866 1866 +1866 1866 +1375 1214 +1375 405 +1375 1316 +1375 1317 +1375 1330 +1375 1334 +1375 1381 +1375 1375 +1375 1375 +1761 388 +1761 1716 +1761 1717 +1761 1718 +1761 401 +1761 445 +1761 1853 +1761 518 +452 458 +1330 1330 +509 509 +2084 2176 +2084 2236 +2084 2237 +2084 2243 +2084 6 +2084 2084 +1324 1271 +1324 1284 +1324 1328 +1324 1331 +1324 1382 +1324 1331 +1324 1331 +1754 1717 +1754 393 +1754 1826 +1754 1850 +680 680 +448 269 +448 408 +448 1636 +448 272 +448 1645 +448 1646 +448 1587 +448 304 +448 271 +448 288 +448 10 +448 304 +448 304 +448 304 +448 304 +1672 1621 +1672 1670 +1672 1527 +404 400 +404 445 +1852 1739 +1852 1794 +1852 1797 +1852 1798 +1852 1825 +1852 1832 +1852 1861 +1852 1860 +809 1643 +809 834 +793 793 +1723 1843 +1723 1832 +2007 1434 +2007 1443 +2007 1444 +2007 2066 +2007 1478 +1798 1722 +1798 405 +1798 1739 +1798 1852 +1798 1832 +1798 1811 +137 31 +137 52 +137 107 +137 668 +137 185 +137 107 +137 107 +1138 393 +1138 1125 +1138 489 +2078 2245 +2078 344 +407 1718 +407 71 +407 1815 +2193 2080 +2193 2124 +2193 400 +2193 459 +2193 525 +397 397 +2238 2238 +2254 1247 +2254 1525 +2254 476 +2254 2288 +2254 526 +2254 2288 +2254 2288 +1887 1716 +1887 393 +1887 1765 +1887 1805 +1887 119 +1887 1813 +1887 1840 +1887 1887 +1887 1887 +1817 1716 +1817 393 +1817 1757 +1817 1805 +1817 1840 +1817 1817 +1817 1817 +513 1637 +513 530 +513 1685 +2400 2391 +2400 2393 +2400 2395 +2400 2398 +1052 1052 +1052 451 +1052 1127 +1052 1093 +1052 1052 +1052 1052 +0 399 +0 2393 +0 1311 +2398 693 +2398 399 +2398 2391 +2398 2393 +2398 2395 +2398 2400 +2398 445 +2398 1650 +1498 1498 +1329 1208 +1329 1251 +1329 1246 +1329 1264 +1329 1274 +1329 1312 +1329 1319 +1329 1348 +1329 1329 +1329 1329 +1329 1329 +1329 1329 +171 393 +171 30 +171 43 +171 411 +171 69 +171 147 +171 151 +171 165 +171 182 +171 188 +672 216 +672 43 +672 218 +672 69 +672 226 +672 124 +672 235 +1286 1208 +1286 1310 +1286 1286 +1286 1286 +2036 2005 +2036 2014 +2036 2035 +2036 2037 +2036 2074 +1378 1247 +1378 933 +1378 962 +1378 1331 +1378 1002 +1039 1028 +2014 393 +2014 1983 +2014 2004 +2014 2013 +2014 920 +2014 2014 +2014 2015 +2014 1262 +2014 2016 +2014 2033 +2014 254 +2014 921 +254 254 +827 715 +827 1571 +827 749 +827 461 +827 761 +827 472 +827 776 +827 794 +827 797 +827 849 +827 832 +827 833 +1125 902 +1125 895 +1125 1385 +1125 983 +1125 866 +1125 1075 +2237 2176 +2237 2176 +2237 445 +2237 2233 +2237 2236 +2237 2239 +2237 2241 +2237 2243 +2090 2139 +2090 2148 +2090 2172 +2090 2199 +2090 2224 +2090 2295 +2090 2296 +2090 2298 +2090 2297 +2191 393 +2191 2191 +2191 2288 +2195 2148 +2195 1621 +2195 1647 +2195 2192 +2133 2087 +2133 393 +2133 2123 +2133 2116 +2133 2132 +2133 2138 +2133 2140 +2133 2142 +2133 2143 +2133 2186 +2133 2186 +2133 2197 +2133 2198 +2133 2206 +2133 2213 +2133 2231 +2133 2240 +2133 2288 +2133 6 +1399 1407 +1399 1465 +1399 1467 +1916 493 +828 1635 +828 1583 +214 238 +240 399 +240 69 +240 220 +240 242 +2148 2148 +479 544 +479 391 +479 247 +1682 890 +1682 1617 +1682 1625 +1682 1626 +1682 1639 +1682 1664 +1682 1666 +1682 1686 +154 140 +154 154 +154 157 +154 154 +1209 1351 +1209 1372 +372 372 +1463 236 +1463 244 +1074 1075 +1074 489 +1074 1201 +1074 2288 +1074 1206 +170 397 +170 90 +170 445 +170 104 +170 458 +170 111 +170 682 +170 458 +659 659 +732 732 +1041 489 +290 277 +2142 2087 +2142 393 +2142 2123 +2142 2116 +2142 2122 +2142 2126 +2142 2127 +2142 2132 +2142 2133 +2142 2136 +2142 2138 +2142 2139 +2142 2140 +2142 2143 +2142 2186 +2142 2186 +2142 2197 +2142 2198 +2142 2206 +2142 2213 +2142 2218 +2142 2231 +2142 2240 +2142 2270 +1415 1401 +1415 1408 +1415 220 +1415 1413 +1415 226 +1415 228 +1415 233 +1415 235 +1415 1450 +1415 1466 +1415 1467 +1415 244 +1415 185 +1415 1480 +1415 245 +924 405 +924 960 +924 930 +924 940 +924 283 +924 932 +924 2291 +2119 2119 +2005 2005 +256 256 +666 666 +784 784 +227 227 +350 350 +149 149 +199 199 +199 457 +199 476 +199 346 +199 199 +199 199 +1288 1316 +1288 1352 +1757 1765 +1757 1773 +1757 1805 +1757 1817 +1757 1840 +1757 1757 +1757 1757 +1811 1739 +1811 1798 +1811 1825 +1811 1860 +1120 1843 +1231 458 +1231 1231 +1231 1345 +1231 509 +1231 1231 +1231 1231 +2138 2087 +2138 2123 +2138 2116 +2138 2132 +2138 2133 +2138 2140 +2138 2142 +2138 2143 +2138 2186 +2138 2186 +2138 2197 +2138 2198 +2138 2206 +2138 2213 +2138 2231 +2138 2240 +1495 411 +1495 1512 +1495 666 +1495 1521 +1749 1716 +1749 471 +1749 1815 +1749 1831 +1749 1838 +1749 1840 +1749 1880 +120 24 +120 393 +120 43 +120 52 +120 69 +120 76 +120 117 +120 160 +120 120 +780 780 +1395 1387 +203 489 +601 553 +601 568 +601 569 +601 578 +601 581 +601 582 +601 586 +601 588 +601 589 +601 590 +601 596 +601 602 +601 608 +601 622 +601 628 +601 631 +601 639 +601 624 +1620 1641 +1620 1653 +1604 890 +1604 1633 +1604 1651 +1604 119 +1604 471 +1604 490 +1604 1601 +1604 1686 +1514 200 +2369 2344 +2369 960 +2369 975 +2369 2380 +343 696 +343 63 +343 101 +343 343 +343 343 +343 343 +1903 1903 +159 32 +159 47 +159 61 +159 91 +159 91 +159 109 +159 110 +159 119 +159 146 +159 509 +1769 1794 +1769 1797 +1769 1830 +205 205 +1220 1229 +1683 890 +1683 1626 +1683 1632 +1683 1639 +1683 1651 +1683 1686 +2127 2204 +2127 2304 +2127 2122 +2127 2126 +2127 2136 +2127 2139 +2127 2186 +2127 2218 +2127 2270 +2127 2273 +2010 2010 +2010 2011 +2010 2012 +2010 2049 +2010 2051 +993 266 +993 816 +993 340 +993 525 +993 851 +993 993 +993 525 +60 27 +60 66 +60 68 +60 445 +1853 1717 +1853 1765 +1853 1767 +1853 445 +1853 1805 +1853 1829 +1853 1832 +1853 1840 +1853 1865 +1853 1853 +1853 1853 +3 3 +1313 1313 +1361 1208 +1361 1385 +1361 1264 +1361 1300 +1361 1299 +1361 1350 +1361 1361 +1361 1361 +2038 254 +2038 2038 +2038 2038 +771 405 +771 705 +771 723 +771 1637 +771 808 +771 729 +771 1647 +771 1492 +771 781 +771 1 +771 805 +771 806 +771 819 +771 711 +465 393 +465 411 +465 465 +465 465 +346 346 +1371 1064 +1371 1277 +1371 1379 +1519 400 +1519 1492 +2364 2330 +2364 2349 +2364 2384 +2364 489 +2364 526 +1994 1994 +1880 1717 +1880 1749 +1880 445 +1880 1787 +1880 1831 +1880 1838 +1880 1840 +1899 1716 +1899 1717 +1899 1893 +1899 708 +1899 1745 +1899 1637 +1899 1648 +1899 1965 +1058 1121 +1058 489 +1875 1690 +1875 1716 +1875 1717 +1875 400 +1875 445 +1875 1815 +1875 1783 +1737 1716 +1737 1717 +1737 1718 +1737 1849 +1737 1745 +1737 1765 +1737 1773 +1737 1799 +1737 1813 +1737 1815 +1737 1829 +1737 1840 +1737 1841 +1737 1855 +1737 1865 +844 844 +874 874 +2034 393 +2034 2034 +2034 2049 +93 14 +93 393 +93 43 +93 69 +93 85 +93 458 +93 160 +93 93 +131 131 +1221 1221 +2169 2148 +2169 400 +2169 1628 +2169 1647 +2169 1 +2169 5 +2169 2104 +2169 513 +2169 1685 +1221 776 +1221 814 +649 649 +2105 2110 +2105 2141 +2105 2159 +261 261 +573 570 +573 575 +573 449 +1670 1 +1670 3 +1670 5 +1670 1672 +1670 1673 +1670 1684 +2304 2127 +2304 399 +2304 2103 +2304 2244 +2304 2270 +2304 2279 +374 400 +374 708 +575 409 +575 68 +575 1412 +575 570 +575 571 +575 573 +575 244 +575 540 +1821 1794 +1821 1860 +1474 696 +1474 1412 +1474 1418 +1474 1436 +1474 1434 +1474 471 +1474 1445 +1474 1464 +1474 1465 +1474 1466 +1474 1467 +1474 2360 +1474 1478 +1474 1478 +1474 1478 +1425 1425 +1667 393 +1667 1637 +1667 445 +1667 930 +989 445 +989 989 +989 989 +1971 1970 +1971 1972 +1971 696 +1971 713 +1971 2005 +1971 755 +1971 254 +1971 2060 +1855 1855 +1136 1136 +1741 445 +570 409 +570 68 +570 1412 +570 573 +570 575 +570 540 +570 570 +489 1717 +489 396 +489 405 +489 708 +489 419 +489 425 +489 277 +489 433 +489 434 +489 435 +489 445 +489 457 +489 1654 +489 464 +489 475 +489 1825 +489 1330 +489 1341 +489 509 +489 510 +489 339 +489 489 +489 489 +489 489 +271 269 +271 270 +271 408 +271 285 +271 2390 +271 272 +271 448 +271 2403 +271 509 +271 304 +271 288 +271 10 +271 304 +271 304 +271 304 +271 304 +2113 2113 +1930 1931 +1930 1932 +1932 489 +1932 1930 +1932 1931 +1932 344 +2386 1646 +2386 1573 +2386 2349 +1474 1474 +2041 2040 +2041 2042 +2041 2043 +2041 2053 +2041 2072 +2070 2005 +2070 2065 +2070 2066 +1254 1385 +1254 1385 +1254 1385 +132 400 +132 63 +132 445 +132 124 +132 133 +1385 1385 +1831 1717 +1831 1718 +1831 1722 +1831 1745 +1831 1749 +1831 1764 +1831 1257 +1831 451 +1831 471 +1831 1815 +1831 1826 +1831 1828 +1831 1838 +1831 1840 +1831 1853 +1831 521 +1831 1880 +2042 2040 +2042 2041 +2042 2043 +2042 2053 +2042 2072 +2176 2084 +2176 2233 +2176 2236 +2176 2237 +2176 2239 +2176 2241 +2176 2243 +2176 2222 +1530 1530 +379 322 +379 1097 +379 489 +342 322 +342 326 +342 322 +342 322 +1326 1326 +469 544 +469 31 +469 469 +469 473 +469 481 +453 411 +544 2081 +544 427 +544 75 +544 279 +544 476 +544 1445 +544 481 +544 1928 +544 493 +544 510 +544 536 +1973 1990 +1973 445 +1973 2045 +1973 2046 +1973 2065 +941 902 +941 1151 +941 1628 +941 280 +941 445 +941 1079 +941 1153 +941 1154 +941 1043 +941 1152 +231 231 +1154 348 +1154 1151 +1154 90 +1154 1443 +1154 941 +1154 1153 +1154 1043 +1154 1152 +1377 445 +1377 1264 +1377 1331 +1377 1333 +1377 1350 +1526 2135 +1526 1504 +1526 1492 +1526 493 +1526 881 +431 277 +1379 1247 +1379 416 +1379 668 +1379 1234 +1379 1371 +1379 1379 +1379 1379 +988 988 +1379 1379 +742 43 +742 562 +742 75 +742 1525 +742 2359 +742 744 +742 475 +742 476 +742 1308 +742 509 +742 510 +742 476 +742 476 +742 476 +742 476 +47 47 +1764 393 +1764 2330 +1764 1771 +1764 1826 +1764 1831 +1764 1850 +1764 1881 +1617 890 +1617 1554 +1617 1625 +1617 1626 +1617 1639 +1617 1664 +1617 1666 +1617 1682 +1617 1686 +266 393 +266 713 +266 1746 +266 445 +266 292 +266 525 +266 851 +2176 2176 +1967 1412 +1967 252 +1967 1967 +1345 1263 +1345 1231 +1345 489 +1345 972 +1345 1345 +1419 1419 +2233 2233 +847 847 +1806 1722 +1806 1732 +1806 1878 +418 388 +418 392 +418 2325 +418 1746 +418 451 +418 471 +418 494 +418 1673 +418 512 +418 518 +418 521 +418 6 +418 451 +418 451 +418 451 +321 1722 +321 329 +321 2404 +321 321 +321 321 +831 708 +831 436 +831 1543 +677 663 +677 668 +691 691 +1240 393 +1240 1239 +1240 1353 +1240 1348 +1240 1348 +1240 1348 +553 542 +553 552 +553 554 +553 555 +553 557 +553 559 +553 568 +553 578 +553 586 +553 588 +553 596 +553 601 +553 631 +553 639 +553 624 +1014 1014 +207 489 +207 509 +552 545 +552 552 +552 553 +552 555 +552 557 +552 559 +552 568 +552 591 +552 605 +552 622 +552 624 +552 634 +552 638 +552 624 +279 544 +279 2081 +279 104 +279 1928 +279 509 +1836 1848 +1836 476 +1836 1326 +1392 651 +1392 667 +1392 680 +588 553 +588 568 +588 569 +588 578 +588 581 +588 582 +588 586 +588 589 +588 590 +588 596 +588 601 +588 602 +588 608 +588 628 +588 631 +588 639 +588 624 +2165 696 +2165 1615 +2165 2158 +2165 2167 +2165 2280 +2165 2281 +2165 344 +2165 2307 +1920 1921 +1920 1961 +1920 1966 +1064 1064 +822 713 +822 1659 +2115 713 +2115 1675 +1287 1208 +1287 1036 +1287 1264 +1287 1087 +1287 1299 +1287 1314 +1287 2046 +1287 1373 +1287 2074 +965 965 +2251 2138 +2251 1525 +2251 509 +2251 2270 +505 32 +505 47 +505 409 +505 415 +505 432 +505 75 +505 440 +505 272 +505 449 +505 770 +505 536 +505 538 +505 540 +1293 1219 +1293 1223 +1293 405 +1293 1244 +1293 1342 +1293 1303 +1293 1328 +1293 1340 +1293 1363 +1293 1328 +1293 1328 +923 923 +1854 411 +1854 1764 +1854 1771 +1854 471 +1854 1881 +966 11 +966 66 +966 68 +966 106 +966 1095 +966 183 +2131 2131 +2131 814 +2131 818 +683 476 +683 678 +683 679 +2245 2078 +2245 445 +2245 2404 +2245 6 +1991 1986 +1991 1993 +1991 2013 +1991 2048 +1991 1598 +1179 425 +1179 445 +1179 489 +1179 509 +1179 510 +1881 393 +1881 1764 +1881 1771 +1881 1826 +1881 1850 +1976 1977 +1976 509 +1976 1464 +255 255 +255 255 +412 496 +412 160 +412 1464 +2288 2288 +1202 1028 +1202 1221 +1202 1647 +1202 776 +772 772 +2400 2400 +1239 1239 +705 391 +705 771 +705 723 +705 808 +705 729 +705 1647 +705 805 +705 815 +705 819 +705 711 +561 396 +561 397 +561 430 +561 433 +561 196 +561 2397 +561 461 +561 464 +561 619 +561 623 +561 624 +561 531 +545 545 +545 546 +545 555 +545 526 +462 397 +462 561 +462 290 +462 461 +462 962 +462 140 +462 531 +462 462 +462 462 +546 545 +546 546 +546 547 +546 555 +546 568 +546 641 +546 624 +1981 1981 +2049 2049 +2049 2049 +2049 2049 +730 445 +730 489 +2073 2073 +1858 1847 +1357 1330 +2005 2005 +1522 1024 +1522 1166 +1522 1296 +1522 476 +711 705 +711 723 +711 751 +711 153 +711 806 +711 1530 +711 819 +714 714 +792 399 +792 300 +792 2267 +792 304 +689 393 +689 1498 +2038 2038 +834 809 +834 3 +489 489 +1227 1227 +753 826 +1734 1769 +1734 1794 +1734 1797 +1734 1832 +1156 61 +1156 2013 +1156 2014 +1156 2015 +1156 2033 +1156 254 +1156 1156 +1156 1156 +70 31 +70 52 +70 69 +70 70 +70 107 +70 124 +70 234 +70 185 +70 70 +70 70 +810 1891 +810 405 +810 775 +810 489 +810 1960 +810 839 +335 1722 +335 1746 +335 323 +335 1848 +335 866 +335 489 +335 335 +335 335 +1152 348 +1152 1151 +1152 1628 +1152 941 +1152 1153 +1152 1154 +1152 1043 +2308 2107 +2308 708 +97 97 +1153 348 +1153 1151 +1153 941 +1153 1154 +1153 1043 +1153 1152 +1876 1772 +1876 1834 +1876 464 +1876 1750 +1876 515 +2251 2251 +2060 2060 +1043 348 +1043 1151 +1043 707 +1043 941 +1043 1153 +1043 1154 +1043 1128 +1043 1152 +982 982 +727 708 +727 933 +324 324 +324 324 +324 324 +201 221 +201 1277 +201 670 +201 510 +201 185 +1516 244 +1516 526 +2003 1995 +2003 1999 +2003 1996 +2003 1997 +2003 1998 +2003 2000 +2003 2001 +2003 2002 +2003 2003 +2003 2020 +2003 2030 +2003 489 +2003 525 +2003 2073 +1036 1036 +3 3 +2017 2017 +1508 708 +1508 1525 +1508 449 +1508 1509 +1508 509 +1508 538 +2058 2058 +2019 1412 +2019 2005 +2019 1445 +2019 2049 +2019 1466 +2019 2074 +1354 1247 +1354 1266 +1354 1332 +1354 1290 +2280 1615 +2280 2158 +2280 1624 +2280 2165 +2280 2167 +2280 2307 +1772 393 +1772 396 +1772 419 +1772 1753 +1772 1857 +1772 464 +1080 2390 +1080 1166 +1080 1031 +1080 304 +1410 1402 +1410 1404 +1410 1411 +1410 1412 +1410 1414 +1410 1416 +1410 1418 +1410 1420 +1410 1423 +1410 1428 +1410 226 +1410 1430 +1410 228 +1410 1433 +1410 1434 +1410 1439 +1410 1442 +1410 1443 +1410 1444 +1410 1445 +1410 1446 +1410 1453 +1410 1460 +1410 1465 +1410 1466 +1410 1467 +1410 1471 +1410 1475 +1410 1476 +1410 1478 +1410 1480 +632 568 +632 569 +632 623 +632 624 +1023 1022 +1023 696 +1023 391 +1023 1033 +1023 1089 +1023 254 +592 554 +592 558 +592 568 +592 569 +592 593 +592 598 +592 600 +592 603 +592 604 +592 606 +592 1095 +592 645 +389 236 +1237 1211 +1237 1211 +1237 1264 +1237 2288 +1237 1237 +1237 1237 +2248 393 +2248 2148 +2248 708 +2248 2155 +2248 1 +2248 2296 +1027 1071 +1027 489 +2316 2316 +865 476 +865 786 +2006 181 +1415 1415 +382 31 +382 218 +382 509 +2135 2135 +1227 1224 +1227 1228 +1227 1253 +1227 1255 +1227 489 +1227 1320 +1227 1376 +1283 1211 +1283 1216 +1283 1253 +1283 1314 +1283 493 +1283 1373 +1283 344 +1283 1373 +1283 1373 +1621 1621 +415 47 +415 1408 +415 75 +415 440 +415 1445 +415 505 +415 1468 +415 536 +415 538 +322 322 +883 990 +883 990 +883 489 +883 915 +1112 393 +1112 1112 +1112 1112 +972 972 +169 176 +1047 1092 +1047 1216 +1047 2049 +2150 2150 +387 1717 +387 713 +387 277 +387 325 +387 445 +387 292 +387 1587 +387 816 +387 525 +761 396 +761 708 +761 715 +761 419 +761 1571 +761 749 +761 461 +761 471 +761 483 +761 794 +761 797 +761 525 +761 827 +761 827 +761 832 +761 833 +761 761 +761 461 +1990 2045 +1990 2046 +1990 2065 +1990 2066 +1990 2067 +1990 2074 +392 392 +49 49 +1771 393 +1771 1764 +1771 1826 +1771 1850 +1771 1881 +2061 2061 +656 393 +361 1397 +361 362 +361 372 +361 526 +2397 386 +2397 708 +2397 561 +2397 433 +2397 196 +2397 2391 +2397 2396 +2397 445 +2397 461 +2397 464 +1457 1398 +1457 1400 +1457 1403 +1457 1407 +1457 1412 +1457 1417 +1457 1423 +1457 1430 +1457 1433 +1457 1434 +1457 1435 +1457 1439 +1457 1440 +1457 1445 +1457 1458 +1457 1459 +1457 1460 +1457 1465 +1457 1479 +1457 1434 +1457 1434 +1459 1398 +1459 1414 +1459 1430 +1459 1439 +1459 1448 +1459 1457 +1459 1458 +1459 1460 +1459 1465 +1459 1472 +1459 1476 +1459 1476 +1459 1476 +1459 1465 +1458 1398 +1458 1430 +1458 1439 +1458 1446 +1458 1457 +1458 1459 +1458 1465 +1458 1475 +1458 1446 +1458 1446 +1267 1314 +1267 1330 +590 577 +590 581 +590 582 +590 588 +590 589 +590 596 +590 601 +590 602 +590 608 +590 628 +590 526 +1665 1638 +1665 1647 +1665 1609 +1154 1154 +1370 405 +1370 1573 +1370 1269 +1370 471 +1370 991 +1370 916 +2106 393 +2106 2147 +2106 708 +2106 445 +2106 6 +2106 2312 +2234 393 +2234 2122 +2234 445 +755 755 +2314 2163 +2314 393 +2314 2306 +2314 2216 +2314 2202 +2314 2189 +2314 1 +2314 2180 +2374 1530 +2374 2374 +1150 2321 +1150 968 +1150 515 +1065 12 +1065 1328 +1065 1331 +1065 1201 +1065 1143 +1065 1206 +2004 1983 +2004 2013 +2004 920 +2004 2014 +2004 2015 +2004 1262 +2004 2016 +2004 2033 +2004 921 +2013 2013 +1285 1285 +1285 1285 +348 348 +1291 400 +1291 1236 +1291 1261 +1291 1358 +1291 1270 +1291 1337 +1291 1338 +1291 1358 +1291 1358 +2376 393 +2376 2098 +2376 2106 +2376 708 +2376 2392 +2376 1648 +2376 1647 +2376 6 +647 568 +647 569 +647 593 +647 607 +647 624 +647 2288 +647 647 +2252 2094 +2252 2148 +2252 2174 +2252 2197 +2252 2200 +2252 2290 +506 432 +506 207 +988 988 +1915 1492 +1915 526 +507 393 +507 2098 +507 507 +507 507 +537 400 +537 411 +537 445 +537 458 +537 465 +537 525 +537 526 +443 394 +443 47 +443 427 +443 428 +443 460 +443 481 +443 146 +829 723 +829 808 +829 774 +829 751 +829 819 +829 720 +520 396 +520 419 +520 445 +926 926 +1433 1398 +1433 1400 +1433 1403 +1433 1404 +1433 1407 +1433 1411 +1433 1412 +1433 1414 +1433 1416 +1433 1417 +1433 1420 +1433 1423 +1433 1573 +1433 1428 +1433 1436 +1433 1434 +1433 1435 +1433 1439 +1433 1440 +1433 1442 +1433 1443 +1433 1444 +1433 1445 +1433 1446 +1433 1448 +1433 1449 +1433 1457 +1433 1458 +1433 1459 +1433 1460 +1433 1461 +1433 1465 +1433 1466 +1433 1467 +1433 1471 +1433 1472 +1433 1475 +1433 1476 +1433 1478 +1433 1479 +1433 1434 +1433 1465 +1433 1434 +1433 1465 +1433 1465 +645 569 +645 592 +645 593 +645 598 +645 603 +645 607 +645 610 +645 624 +1103 1193 +2019 2019 +1901 1637 +1901 1527 +1285 1285 +1285 1285 +826 445 +826 445 +826 445 +767 713 +767 1587 +767 767 +92 15 +92 64 +92 68 +92 73 +92 88 +92 116 +92 489 +92 135 +92 172 +92 179 +92 181 +518 388 +518 392 +518 393 +518 418 +518 1753 +518 299 +518 451 +518 1281 +518 1101 +518 471 +518 490 +518 494 +518 367 +518 512 +518 521 +518 451 +518 451 +518 451 +2265 2148 +2265 2170 +2265 2174 +2265 445 +2265 2187 +2265 2203 +2265 2223 +2265 2230 +2265 489 +2265 2264 +2265 2266 +503 713 +503 277 +503 2175 +503 2316 +1696 1689 +1696 1851 +1696 405 +1696 1848 +1696 1847 +1696 1859 +1696 2288 +1559 1559 +1532 1487 +1532 1506 +1532 735 +1532 1488 +1532 526 +1532 1500 +1532 1505 +281 855 +281 200 +281 2 +2116 2087 +2116 393 +2116 2123 +2116 2126 +2116 2132 +2116 2133 +2116 2138 +2116 2140 +2116 2142 +2116 2143 +2116 2148 +2116 2186 +2116 2186 +2116 2197 +2116 2198 +2116 2206 +2116 2213 +2116 2231 +2116 2240 +2116 2288 +1290 1290 +2022 1979 +2022 1995 +2022 2005 +2022 2021 +2022 2020 +2022 2023 +2022 2077 +762 734 +762 776 +762 1445 +762 307 +762 1464 +762 814 +762 1467 +762 818 +762 373 +762 623 +762 1481 +1199 1199 +1199 1199 +2034 2034 +424 422 +424 423 +424 477 +424 515 +424 423 +424 477 +424 423 +424 477 +11 16 +11 43 +11 66 +11 68 +11 493 +102 458 +102 116 +102 458 +2032 2074 +2092 2093 +2092 2124 +2092 400 +2092 2159 +2092 445 +2092 2275 +2242 2197 +2242 2238 +2242 2270 +2242 2296 +2242 2297 +2242 2303 +313 458 +313 458 +2275 2092 +2275 445 +2275 496 +571 68 +571 573 +571 575 +571 244 +571 648 +571 540 +1983 2004 +1983 2013 +1983 920 +1983 2014 +1983 2015 +1983 1262 +1983 2016 +1983 2033 +1983 921 +422 423 +422 424 +422 1641 +422 1498 +422 477 +422 515 +422 423 +422 423 +476 476 +530 402 +530 1637 +530 513 +1693 1691 +1693 1692 +1693 1785 +1693 445 +1692 1691 +1692 1693 +1692 1785 +1692 445 +1031 1166 +1031 1080 +48 16 +48 63 +48 68 +48 67 +48 167 +48 179 +199 199 +2033 1983 +2033 2004 +2033 1421 +2033 2013 +2033 920 +2033 2014 +2033 2015 +2033 1262 +2033 2016 +2033 254 +2033 1156 +2033 921 +1830 497 +1890 1893 +1890 1899 +1890 956 +1063 1063 +841 397 +841 435 +841 841 +841 841 +572 432 +572 68 +572 1412 +599 558 +599 593 +599 603 +599 607 +599 624 +1372 1209 +1372 1316 +1372 1351 +1335 1335 +316 393 +316 489 +316 346 +203 203 +555 541 +555 542 +555 552 +555 553 +555 556 +555 557 +555 559 +555 569 +555 582 +555 589 +555 595 +555 602 +555 609 +555 611 +555 625 +555 624 +88 1007 +88 250 +88 88 +88 1007 +1531 960 +1531 526 +1939 1495 +1939 445 +2120 2181 +203 203 +1748 1748 +2014 2014 +760 760 +1489 1540 +1489 1490 +1489 1126 +1489 1517 +914 1573 +914 489 +914 496 +914 848 +914 682 +2364 2364 +1101 1101 +2216 2163 +2216 393 +2216 400 +2216 2330 +2216 1638 +2216 1647 +2216 1 +2216 2314 +2216 6 +2315 2126 +2315 2148 +2315 2197 +2315 1509 +2315 2224 +2315 2242 +2315 2315 +2315 2315 +2015 1983 +2015 2004 +2015 2013 +2015 920 +2015 2014 +2015 2015 +2015 1262 +2015 2016 +2015 2033 +2015 254 +2015 489 +2015 1156 +2015 921 +252 252 +748 714 +748 489 +748 536 +748 538 +748 540 +937 1057 +937 942 +937 945 +937 1003 +2310 393 +2310 1638 +2310 1647 +2310 6 +2310 2312 +2256 445 +2313 393 +2313 2106 +2313 400 +2313 2330 +2313 1647 +2313 2232 +2313 6 +2313 2312 +2050 1465 +2050 623 +2010 2010 +2285 393 +2285 2330 +2285 1647 +2285 2228 +2285 6 +2285 2312 +888 1713 +888 895 +888 936 +888 1390 +888 982 +888 895 +888 895 +2373 2373 +1819 1717 +1819 1718 +1819 1722 +1819 1726 +1819 1805 +1819 471 +1819 1840 +861 708 +861 411 +861 1509 +802 14 +802 391 +802 765 +802 1643 +802 703 +715 718 +715 749 +715 2351 +715 461 +715 761 +715 794 +715 797 +715 827 +715 832 +715 2387 +715 833 +824 458 +2261 393 +2261 2330 +2261 437 +2261 1647 +2261 6 +95 95 +157 89 +157 140 +157 154 +1925 393 +917 960 +917 940 +917 998 +917 489 +917 682 +998 960 +998 940 +998 489 +998 917 +998 967 +998 961 +2171 393 +2171 411 +2171 6 +2168 2330 +2168 6 +925 960 +2232 393 +2232 2106 +2232 400 +2232 708 +2232 2330 +2232 411 +2232 1647 +2232 445 +2232 2313 +2232 682 +2232 6 +2232 2312 +1333 1333 +2228 393 +2228 708 +2228 2285 +2228 1647 +2228 525 +2228 6 +2228 2312 +696 696 +2205 393 +2205 411 +2205 6 +1756 1805 +1756 1756 +1756 1756 +1882 1716 +1882 1718 +1882 1849 +1882 1745 +1882 1763 +1882 1799 +1882 1815 +1882 1829 +1882 1838 +1882 1840 +1882 1853 +1882 1783 +2124 2085 +2124 2092 +2124 2288 +1367 750 +1367 682 +976 464 +976 992 +976 327 +1678 1654 +1678 5 +293 1607 +293 275 +2071 1974 +2071 1974 +2071 2010 +2071 990 +2071 2069 +784 784 +1889 1889 +1743 1717 +1743 393 +1743 445 +1743 1805 +1743 1743 +1210 405 +1210 1624 +2122 393 +2122 2126 +2122 2127 +2122 2136 +2122 2139 +2122 401 +2122 411 +2122 1525 +2122 445 +2122 2186 +2122 2218 +2122 2270 +2122 525 +1483 458 +1086 1086 +1086 1194 +1086 1144 +1086 1086 +1086 1086 +1918 1918 +1716 1716 +703 765 +703 1643 +703 1654 +703 489 +703 509 +703 802 +1856 1716 +1856 1718 +1856 1745 +1856 1767 +1856 1829 +1856 1840 +1856 1783 +2033 2033 +1093 1149 +1669 1645 +1669 1648 +1669 1647 +1669 445 +1669 668 +1669 2104 +1669 1668 +1200 960 +1200 1264 +1200 682 +1218 1218 +557 545 +557 547 +557 552 +557 553 +557 555 +557 558 +557 559 +557 568 +557 624 +557 627 +557 526 +2219 2119 +2219 400 +2219 410 +2219 2159 +2219 416 +2219 445 +2219 755 +2219 2312 +2219 2219 +1092 1092 +1277 1277 +65 68 +65 181 +1073 1213 +1073 1024 +1073 1064 +1073 90 +1073 1089 +1073 1095 +1073 1443 +1073 489 +1073 2046 +1073 1350 +1073 1175 +1073 1190 +109 109 +1919 760 +1919 1944 +1919 1946 +1919 1947 +1919 1948 +827 827 +1512 1495 +1512 1521 +1689 1696 +1689 1820 +1689 1848 +1689 1847 +1689 489 +1689 1859 +1093 1093 +2254 2254 +1838 1716 +1838 1717 +1838 1718 +1838 1849 +1838 1749 +1838 1789 +1838 1799 +1838 1829 +1838 1831 +1838 1840 +1838 1334 +1838 1880 +1838 1799 +1838 1799 +1838 1799 +603 554 +603 558 +603 569 +603 592 +603 593 +603 598 +603 600 +603 604 +603 606 +603 607 +603 624 +603 645 +444 419 +444 430 +444 290 +444 464 +444 484 +444 531 +1157 2113 +1157 903 +1157 1157 +1157 1344 +212 212 +212 212 +2330 2330 +1977 1976 +1977 2005 +484 708 +484 430 +484 444 +484 290 +484 464 +484 531 +1224 1224 +1198 1198 +1418 1418 +907 1636 +907 1641 +907 1565 +907 907 +620 1403 +620 560 +620 1407 +620 68 +620 1417 +620 1434 +942 696 +942 937 +942 945 +942 1003 +1094 1165 +1094 1033 +1094 1083 +1094 1166 +1094 1105 +1094 1045 +1094 1051 +1094 1102 +1094 1191 +2043 2040 +2043 2041 +2043 2042 +2043 2053 +2043 2072 +542 542 +542 555 +542 568 +542 624 +542 526 +813 393 +813 1727 +813 411 +1332 1266 +1332 489 +1332 1354 +1332 1290 +1432 1412 +1432 1421 +1432 1424 +1432 1444 +1432 1445 +1432 1464 +1432 1466 +1432 1467 +1432 1478 +1432 1480 +1432 1424 +1432 1424 +1051 1165 +1051 1166 +1051 1105 +1051 489 +1051 1094 +1051 1102 +1347 1380 +1347 1275 +1347 1331 +199 199 +2134 2112 +2134 2130 +1164 1180 +1164 393 +1164 1165 +1164 436 +1164 1166 +1164 602 +1164 254 +1164 476 +1164 1045 +1164 1081 +1164 510 +1164 1163 +1164 2057 +1164 1190 +1164 1192 +1164 1114 +1164 1204 +2394 2394 +1751 400 +184 21 +184 393 +184 445 +2385 391 +2385 90 +2385 445 +2385 1509 +2385 489 +607 554 +607 558 +607 569 +607 593 +607 599 +607 603 +607 610 +607 475 +607 476 +607 624 +607 645 +607 647 +914 914 +107 107 +358 425 +358 357 +358 226 +358 228 +358 235 +358 370 +358 242 +358 375 +358 247 +358 375 +1514 1514 +1360 1213 +1360 1232 +1360 1250 +1360 1258 +1360 1278 +1360 1333 +1360 1350 +1360 1356 +1360 1350 +1360 1350 +2024 1124 +2024 1598 +576 576 +357 425 +357 358 +357 226 +357 228 +357 489 +357 235 +357 370 +357 242 +357 375 +357 375 +357 357 +196 396 +196 561 +196 433 +196 2397 +196 445 +196 461 +196 483 +196 242 +196 531 +813 813 +1204 1166 +1204 1081 +1204 1164 +1834 396 +1834 1732 +1834 1857 +1834 1750 +1314 1314 +1224 1224 +1750 419 +1750 1834 +1750 1876 +796 713 +796 818 +948 405 +948 489 +948 247 +1335 1335 +985 1621 +985 903 +985 1645 +985 733 +985 922 +985 2384 +985 971 +985 969 +1376 1224 +1376 1227 +1376 1228 +1376 1253 +1376 1255 +1376 1320 +1740 1717 +1740 1722 +1740 1739 +1740 1088 +1740 1852 +1740 1860 +1740 1739 +1740 1739 +1000 886 +1000 896 +1000 911 +1000 926 +1000 928 +1903 1903 +2217 393 +2217 284 +2217 1540 +2217 2288 +898 898 +1974 1022 +1974 393 +1974 1974 +1974 2010 +1974 2049 +1974 2069 +1780 1641 +1780 476 +1780 493 +1780 1530 +875 875 +1317 1214 +1317 405 +1317 1261 +1317 489 +1317 1316 +1317 1330 +1317 1375 +1317 1381 +1317 1375 +1317 1375 +1042 1165 +1042 1269 +1042 1163 +990 990 +1940 476 +1940 375 +1728 1823 +1728 1752 +102 102 +473 473 +1992 445 +1992 2052 +1228 1224 +1228 1227 +1228 1253 +1228 1264 +1228 1255 +1228 489 +1228 1313 +1228 1316 +1228 1320 +1228 1351 +1228 1376 +363 363 +1274 393 +1274 1251 +1274 1246 +1274 1312 +1274 489 +1274 1319 +1274 1329 +1274 1330 +1274 1329 +1274 1329 +1274 1329 +1274 1329 +2263 2170 +2263 489 +2263 2264 +2263 2265 +2263 2170 +2263 2170 +2110 2159 +2110 1646 +1149 1149 +73 15 +73 43 +73 64 +73 68 +73 90 +73 445 +73 106 +73 116 +73 118 +73 124 +73 235 +73 167 +73 175 +73 679 +73 179 +73 181 +2055 393 +166 123 +166 63 +166 1470 +166 90 +166 682 +2366 2361 +2366 708 +2366 2364 +318 318 +318 319 +318 69 +318 1525 +318 445 +318 602 +318 864 +318 489 +2389 526 +2117 2117 +800 713 +800 1624 +2126 2126 +2264 2174 +2264 2187 +2264 2223 +2264 2230 +2264 489 +2264 2263 +2264 2265 +2264 2266 +2264 526 +2264 2223 +2264 2223 +2010 2010 +2371 1637 +2371 2337 +2371 299 +2371 2355 +1333 1333 +1310 1310 +2266 2148 +2266 2170 +2266 2174 +2266 1647 +2266 2187 +2266 2203 +2266 2223 +2266 2230 +2266 489 +2266 2252 +2266 2264 +2266 2265 +2266 2266 +370 370 +358 358 +2266 2266 +1438 1405 +1438 1406 +1438 1412 +1438 445 +1438 1445 +1438 1464 +1438 1467 +1310 1310 +1843 1755 +1843 1120 +1843 1723 +1843 1350 +1843 1356 +364 348 +319 318 +319 696 +319 1525 +319 602 +319 864 +319 489 +319 1832 +319 509 +1721 1823 +1721 393 +1721 1736 +1721 1816 +1721 1868 +1721 1732 +1721 1733 +1721 1846 +1721 1873 +1721 1874 +1721 1802 +1721 1803 +1721 1782 +1721 1781 +1721 1779 +1721 1812 +1721 1721 +1188 1172 +1188 1173 +1188 1174 +1188 1175 +402 513 +402 530 +402 1684 +1058 1058 +105 105 +216 216 +13 393 +13 714 +13 434 +13 445 +13 489 +13 818 +1843 1843 +1044 1056 +1044 1196 +489 489 +238 227 +238 228 +238 235 +238 247 +1988 1987 +1215 1358 +1215 1330 +1215 1331 +1820 1689 +1820 489 +1105 1166 +1105 1110 +1105 1051 +1105 1094 +1105 1102 +1376 1376 +1985 489 +1985 1330 +1985 509 +740 2135 +740 1504 +740 61 +740 573 +740 648 +740 536 +740 247 +2048 2048 +1106 1218 +1106 1165 +1106 1166 +1106 1114 +504 388 +504 392 +504 1717 +504 418 +504 451 +504 922 +504 471 +504 1587 +504 494 +504 512 +504 518 +504 521 +504 6 +504 451 +504 451 +504 451 +1196 393 +1196 1044 +1196 434 +1056 434 +1056 489 +1056 1832 +1056 139 +1056 1172 +1056 1143 +1056 1191 +1056 1196 +1344 1344 +2094 393 +2094 708 +2094 2159 +2094 445 +1848 1848 +249 254 +249 257 +249 2074 +2139 2139 +2140 2140 +2023 1979 +2023 1995 +2023 1999 +2023 1997 +2023 2000 +2023 1171 +2023 2021 +2023 2022 +2023 2020 +2023 1302 +199 199 +720 2330 +720 705 +720 723 +720 808 +720 729 +720 1647 +720 774 +720 751 +720 2104 +720 805 +720 819 +720 829 +1767 1767 +1229 1229 +1291 1291 +2011 2010 +2011 2012 +2011 2049 +2011 2051 +2220 2101 +2220 708 +2220 445 +2220 2404 +2220 489 +2220 2253 +2220 2288 +2220 344 +1923 400 +1923 1924 +1923 1926 +1923 205 +2162 393 +2162 1638 +2162 2202 +2162 445 +2162 2226 +2162 2314 +2162 2312 +2162 2151 +168 68 +168 167 +1972 1970 +1972 1971 +1972 696 +1972 254 +541 541 +541 555 +541 581 +541 583 +541 584 +541 596 +541 602 +541 608 +541 624 +1085 1028 +1085 708 +1085 1050 +1085 1158 +1085 1085 +371 393 +1922 1922 +1337 400 +1337 2159 +1337 1236 +1337 1358 +1337 1265 +1337 1270 +1337 1291 +1337 1338 +1337 1358 +1337 1358 +1270 1236 +1270 1261 +1270 1358 +1270 1291 +1270 1229 +1270 489 +1270 1337 +1270 1358 +1270 1358 +1447 1447 +2300 489 +2300 2301 +2300 526 +1436 1436 +885 885 +885 885 +885 885 +2184 400 +2184 2176 +2184 445 +2184 1 +2184 1104 +2184 2222 +2054 2017 +249 249 +2044 2005 +2044 2046 +2044 2065 +2044 2066 +2044 2025 +1 1 +2023 2023 +162 23 +162 393 +162 79 +162 139 +162 173 +2045 1990 +2045 2065 +2145 2145 +2220 2220 +191 191 +1004 1006 +1004 1009 +1004 1008 +126 126 +746 890 +746 1627 +746 1639 +746 1641 +1797 1687 +1797 400 +1797 1794 +1797 1852 +1797 1832 +1797 1860 +1797 1832 +1797 1832 +997 894 +1736 1772 +1736 1800 +1736 1823 +1736 393 +1736 1837 +1736 1727 +1736 1868 +1736 1732 +1736 1733 +1736 1846 +1736 1873 +1736 1874 +1736 1802 +1736 1803 +1736 1782 +1736 1781 +1736 1779 +1736 1812 +1736 1721 +1752 1823 +1752 393 +1752 1722 +1752 419 +1752 1784 +1752 1732 +1752 1802 +1752 464 +1752 1831 +1752 1721 +1802 1823 +1802 393 +1802 1736 +1802 419 +1802 1868 +1802 1732 +1802 1733 +1802 1846 +1802 1873 +1802 1874 +1802 1878 +1802 1752 +1802 1803 +1802 464 +1802 1782 +1802 1781 +1802 1779 +1802 1812 +1802 1721 +1823 393 +1823 1736 +1823 1837 +1823 1784 +1823 1868 +1823 1732 +1823 1733 +1823 1846 +1823 1873 +1823 1874 +1823 1752 +1823 1802 +1823 1803 +1823 1782 +1823 1781 +1823 1779 +1823 1812 +1823 1721 +1784 1837 +1784 1816 +1784 1877 +1784 1878 +1878 1784 +1878 2337 +1878 1877 +1877 1722 +1877 1784 +1877 1637 +1877 1878 +1845 489 +1845 1807 +251 254 +251 2040 +2049 2049 +276 276 +2401 399 +2401 2393 +2401 2402 +2401 0 +2401 1466 +740 740 +988 988 +1061 393 +1061 1055 +1061 1061 +1061 1128 +1061 1185 +1524 1524 +1195 445 +1195 1369 +1195 1184 +1195 996 +679 679 +371 371 +1534 1495 +1534 1512 +555 555 +98 16 +98 43 +98 68 +2037 2035 +2037 2036 +2037 2074 +554 553 +554 554 +554 558 +554 569 +554 624 +1025 1717 +1025 471 +1269 1269 +529 57 +529 79 +529 739 +2278 2245 +1726 1717 +1726 1718 +1726 1765 +1726 1805 +1726 471 +1726 1832 +1726 1855 +1726 1819 +1487 1532 +1487 1506 +1487 1509 +1487 735 +1487 1488 +1487 1500 +1087 1087 +45 43 +45 1497 +1970 1971 +1970 1972 +1970 445 +1970 1573 +1970 2016 +1970 254 +1786 1722 +1786 1748 +1786 322 +1786 1871 +1786 489 +1786 516 +1786 344 +204 194 +204 602 +204 2288 +204 344 +150 393 +150 43 +285 269 +285 408 +285 2390 +285 1525 +285 272 +285 448 +285 1126 +285 489 +285 304 +285 682 +285 288 +285 10 +285 304 +285 304 +285 304 +285 304 +1981 1981 +1994 1994 +1677 890 +1677 1597 +970 1621 +970 1572 +970 1654 +970 2384 +970 760 +970 971 +970 904 +970 969 +970 1684 +1362 515 +1236 1236 +489 489 +970 970 +1069 1716 +1069 2330 +2021 2021 +1216 1216 +1216 1216 +135 68 +135 92 +135 118 +135 168 +1068 489 +374 374 +24 24 +249 249 +2348 682 +2348 457 +1365 1573 +1365 1369 +1365 1365 +2088 2088 +2088 2097 +2088 393 +2088 2100 +2088 2164 +2088 2197 +1410 1410 +2236 2176 +2236 2233 +2236 2237 +2236 2239 +2236 2241 +2236 2243 +1762 1825 +1397 1397 +1869 1722 +1869 1794 +1869 1860 +2062 1087 +2062 1141 +2062 2063 +1289 489 +1289 1245 +193 32 +193 489 +1924 1923 +1181 1092 +1181 1097 +1181 489 +1181 1181 +1181 1181 +2015 2015 +1134 480 +2240 2087 +2240 393 +2240 2101 +2240 2123 +2240 2116 +2240 2132 +2240 2133 +2240 2138 +2240 2140 +2240 2142 +2240 2143 +2240 2148 +2240 2186 +2240 2197 +2240 2198 +2240 2206 +2240 2213 +2240 2231 +2240 2288 +657 657 +1331 1331 +1331 1331 +1331 1331 +895 895 +895 895 +895 895 +982 982 +982 982 +1348 1348 +1348 393 +1348 1348 +1348 1348 +118 68 +118 92 +118 135 +118 168 +1329 1329 +1329 1329 +1329 1329 +1722 1722 +1722 1722 +1700 1707 +1700 1709 +1700 1710 +1700 393 +1700 445 +1948 1919 +1948 1944 +1948 1946 +1948 1946 +1948 1947 +1948 375 +678 27 +678 52 +678 659 +678 679 +678 678 +678 678 +1921 1920 +1921 1961 +858 855 +1652 401 +1652 713 +1652 1676 +1652 346 +7 399 +7 2330 +7 1648 +7 2401 +7 2402 +7 2404 +7 2 +7 6 +7 8 +7 9 +1898 1901 +1898 471 +1156 1156 +1273 1273 +2157 1616 +2157 2115 +2157 713 +2157 2159 +2157 1630 +2157 1659 +2157 1676 +2157 713 +855 855 +2181 2120 +2181 2159 +2181 731 +2181 457 +2181 706 +1127 1717 +1127 1052 +1127 922 +163 393 +163 31 +163 397 +163 400 +163 458 +163 117 +163 496 +163 185 +1236 1358 +1236 1270 +1236 1291 +1236 1337 +1236 1358 +1236 1358 +275 1637 +275 1647 +275 525 +1929 489 +1929 1931 +1929 1935 +1929 1936 +1929 1937 +979 1191 +979 1602 +751 766 +751 391 +751 723 +751 757 +751 808 +751 729 +751 774 +751 779 +751 781 +751 805 +751 803 +751 806 +751 819 +751 720 +751 829 +751 711 +549 548 +549 549 +549 569 +549 597 +549 624 +548 548 +548 549 +548 569 +548 598 +548 624 +582 555 +582 556 +582 581 +582 588 +582 589 +582 590 +582 595 +582 596 +582 601 +582 602 +582 608 +582 609 +582 611 +582 625 +582 628 +582 624 +2279 2279 +1942 1893 +1942 1646 +1942 2364 +661 657 +2114 2145 +2114 736 +2114 2114 +2114 2114 +1489 1489 +1836 1836 +2111 445 +2111 2309 +1319 393 +1319 1251 +1319 1246 +1319 1274 +1319 1312 +1319 1329 +1319 1329 +1319 1329 +1319 1329 +1319 1329 +2005 2005 +535 2155 +535 1498 +535 513 +555 555 +1190 1024 +1190 1064 +1190 1412 +1190 1073 +1190 1089 +1190 1095 +1190 1176 +1190 1143 +1190 1164 +1190 1190 +971 1621 +971 922 +971 1654 +1550 1535 +1550 445 +1102 1165 +1102 1105 +1102 1860 +1102 1051 +1102 1094 +1938 825 +1999 1999 +584 541 +584 569 +584 581 +584 583 +584 596 +584 602 +584 608 +584 624 +582 582 +2269 393 +2269 2330 +2269 1648 +2269 1647 +2269 2404 +2269 6 +2269 2312 +1527 1527 +1217 1276 +1837 1800 +1837 1823 +1837 393 +1837 1722 +1837 1727 +1837 1784 +1837 1732 +1837 1878 +2325 1648 +2325 451 +2325 1653 +2325 471 +144 80 +144 85 +144 136 +2118 2111 +2118 2309 +2219 2219 +1978 1995 +1978 1999 +1978 1997 +1978 1998 +1978 2000 +1978 2001 +1978 2002 +1978 2003 +1978 2020 +1978 2023 +1978 2030 +143 43 +143 68 +143 445 +143 179 +2402 399 +2402 2401 +2402 2404 +2402 1832 +2402 6 +2402 7 +2402 8 +2402 9 +860 561 +860 196 +860 2397 +860 749 +860 331 +860 464 +860 795 +860 827 +860 531 +524 395 +524 277 +1251 393 +1251 1246 +1251 1274 +1251 1312 +1251 1319 +1251 1329 +1251 1348 +1251 1329 +1251 1329 +1251 1329 +1251 1329 +6 6 +652 2145 +652 736 +1402 1402 +1989 2060 +1383 1047 +1383 489 +851 851 +1428 1398 +1428 1404 +1428 1410 +1428 1411 +1428 1412 +1428 1416 +1428 1420 +1428 1428 +1428 1430 +1428 1434 +1428 1439 +1428 1442 +1428 1443 +1428 1444 +1428 1445 +1428 1446 +1428 1449 +1428 1457 +1428 1458 +1428 1459 +1428 1460 +1428 1461 +1428 1465 +1428 1466 +1428 1467 +1428 1475 +1428 1476 +1428 1478 +1428 1465 +1428 1465 +1428 1465 +1442 1398 +1442 1404 +1442 1410 +1442 1411 +1442 1412 +1442 1416 +1442 1428 +1442 1430 +1442 1434 +1442 1439 +1442 1442 +1442 1443 +1442 1444 +1442 1445 +1442 1446 +1442 1449 +1442 1453 +1442 1457 +1442 1458 +1442 1459 +1442 1460 +1442 1461 +1442 1465 +1442 1466 +1442 1467 +1442 1475 +1442 1476 +1442 1478 +1442 1465 +1442 1465 +1442 1465 +267 399 +267 2393 +1180 1165 +1180 1166 +1180 602 +1180 1081 +1485 1509 +1485 489 +1485 496 +202 457 +202 489 +202 509 +2396 2396 +233 233 +990 990 +514 391 +514 32 +514 1504 +514 47 +514 75 +514 88 +514 136 +514 146 +514 619 +514 536 +2377 713 +2377 733 +2377 2384 +2377 2364 +279 279 +1303 1219 +1303 1223 +1303 1293 +1303 1244 +1303 1342 +1303 1328 +1303 1363 +1303 1328 +1303 1328 +1135 1123 +1135 489 +1135 509 +1868 1772 +1868 1823 +1868 393 +1868 2098 +1868 1736 +1868 1727 +1868 1868 +1868 1732 +1868 1733 +1868 1846 +1868 1873 +1868 1874 +1868 1802 +1868 1803 +1868 1782 +1868 1781 +1868 1779 +1868 1812 +1868 1721 +2002 2002 +1270 1270 +2375 2375 +2270 393 +2270 2122 +2270 2126 +2270 2127 +2270 2136 +2270 2139 +2270 2150 +2270 1638 +2270 1525 +2270 2186 +2270 1540 +2270 2197 +2270 2218 +2270 2238 +2270 2296 +421 277 +2157 2157 +856 399 +856 2393 +856 866 +287 733 +1742 1742 +1997 1997 +2375 457 +2375 602 +754 1089 +754 489 +754 673 +754 1143 +1140 1071 +1140 1170 +1140 982 +1979 1978 +1979 1979 +1979 1995 +1979 1999 +1979 1997 +1979 1998 +1979 2000 +1979 2001 +1979 1421 +1979 1171 +1979 2021 +1979 2022 +1979 2020 +1979 2023 +1979 2067 +1022 1023 +1022 895 +1022 334 +1022 1314 +1022 1860 +1022 1190 +1022 525 +1022 1022 +1119 1029 +1119 489 +1119 1162 +1029 1119 +1291 1291 +2255 393 +2255 445 +2255 2209 +2255 2255 +2029 990 +2029 1108 +2395 2395 +1613 410 +1843 1843 +2398 2398 +263 263 +1840 1840 +2331 1646 +2331 1897 +2331 1583 +2331 1549 +1054 1070 +1054 489 +1054 493 +1054 1108 +559 545 +559 546 +559 547 +559 552 +559 553 +559 555 +559 557 +559 568 +559 578 +559 581 +559 596 +559 608 +559 493 +559 621 +559 626 +559 628 +559 630 +559 637 +559 624 +2005 2005 +2012 2010 +2012 2011 +2012 2051 +733 733 +602 541 +602 541 +602 555 +602 556 +602 393 +602 31 +602 397 +602 400 +602 445 +602 1086 +602 457 +602 581 +602 582 +602 583 +602 584 +602 588 +602 589 +602 590 +602 595 +602 596 +602 601 +602 608 +602 609 +602 611 +602 617 +602 622 +602 623 +602 625 +602 628 +602 624 +602 602 +1816 393 +1816 2098 +1816 1837 +1816 1784 +1816 1732 +1122 1056 +1122 434 +1122 489 +1122 1191 +1451 26 +1451 1398 +1451 31 +1451 1402 +1451 1407 +1451 69 +1451 1410 +1451 1412 +1451 1417 +1451 1418 +1451 1419 +1451 1419 +1451 1425 +1451 226 +1451 228 +1451 1433 +1451 1434 +1451 1439 +1451 1443 +1451 1444 +1451 124 +1451 1445 +1451 1446 +1451 1449 +1451 235 +1451 1454 +1451 1460 +1451 1465 +1451 1465 +1451 1466 +1451 1467 +1451 1471 +1451 1476 +1451 1478 +1628 1628 +768 866 +768 476 +768 991 +91 47 +91 61 +91 109 +91 110 +91 119 +91 496 +91 146 +91 159 +91 159 +2100 2088 +2100 391 +2100 2097 +2100 393 +2100 2126 +2100 2139 +2100 2148 +2100 2164 +2100 2197 +2100 2218 +2100 485 +2100 2240 +2100 496 +733 733 +305 269 +305 408 +305 1638 +305 272 +305 445 +305 448 +305 866 +305 304 +305 288 +305 10 +305 10 +305 304 +305 304 +305 304 +305 304 +429 429 +1566 1615 +1566 1630 +1566 1640 +1566 1662 +1018 1005 +1018 31 +1018 221 +1018 1008 +1970 1970 +602 602 +1206 1022 +1206 1065 +1206 1074 +1206 489 +1719 411 +1719 2392 +1719 1648 +1719 1797 +1242 323 +1242 489 +1242 526 +270 269 +270 270 +270 408 +270 285 +270 2390 +270 272 +270 448 +270 284 +270 2403 +270 304 +270 510 +270 271 +270 288 +270 10 +270 304 +270 304 +270 304 +270 304 +1884 346 +2215 2215 +1729 1739 +1841 1716 +1841 1717 +1841 1773 +1841 1788 +1841 1773 +1841 1773 +1522 1522 +1120 1120 +1800 1837 +1800 1727 +1800 1816 +1800 1784 +1800 1732 +1800 682 +1461 1398 +1461 1404 +1461 1411 +1461 1412 +1461 1416 +1461 1420 +1461 1428 +1461 1434 +1461 1439 +1461 1442 +1461 1443 +1461 1444 +1461 1445 +1461 1446 +1461 1449 +1461 1457 +1461 1458 +1461 1459 +1461 1460 +1461 1461 +1461 1465 +1461 1466 +1461 1467 +1461 1475 +1461 1476 +1461 1478 +1461 1465 +1461 1465 +1461 1465 +94 393 +94 31 +94 88 +758 758 +534 403 +534 47 +534 420 +534 426 +534 58 +534 1525 +534 467 +534 501 +2009 393 +2009 254 +1225 1264 +1356 1356 +1325 1247 +1325 405 +10 10 +1265 895 +1265 400 +1265 1358 +1265 1338 +1265 509 +1265 1374 +1061 1061 +395 395 +2127 2127 +611 542 +611 546 +611 555 +611 556 +611 569 +611 582 +611 595 +611 602 +611 609 +611 625 +611 624 +1296 1296 +1168 1145 +1168 982 +1168 623 +489 489 +338 1390 +338 992 +338 515 +338 848 +338 327 +783 1509 +783 496 +783 509 +648 1412 +648 1440 +648 1457 +648 1458 +648 1459 +648 1467 +337 1067 +337 343 +1301 1301 +2054 2054 +1468 1468 +1796 1866 +356 1722 +356 476 +356 489 +356 242 +356 2288 +823 405 +823 704 +823 526 +1545 1394 +1545 887 +1545 289 +1545 1646 +1545 931 +1545 950 +1545 975 +1545 999 +1545 955 +1545 341 +1545 999 +1545 999 +495 21 +495 41 +495 47 +495 146 +1006 1006 +1553 1551 +500 516 +553 553 +552 552 +547 547 +2052 696 +2052 1992 +2197 2197 +275 275 +347 2356 +756 323 +756 526 +988 988 +1182 1717 +1182 1840 +1182 1865 +786 786 +2377 2377 +973 973 +1390 1390 +223 1401 +223 31 +223 69 +223 221 +223 222 +223 228 +223 124 +223 235 +29 393 +29 43 +29 79 +29 88 +29 458 +960 960 +1714 1714 +1714 393 +1714 445 +1070 400 +1070 1054 +1070 489 +1070 509 +1070 1108 +738 411 +738 77 +738 465 +738 393 +738 393 +624 624 +2397 2397 +122 43 +122 68 +122 526 +2060 2060 +417 388 +417 392 +417 418 +417 451 +417 1922 +417 471 +417 494 +417 512 +417 518 +417 521 +417 451 +417 451 +417 451 +1946 1919 +1946 1944 +1946 1947 +1946 1948 +797 1551 +797 715 +797 749 +797 461 +797 761 +797 483 +797 794 +797 827 +797 832 +797 833 +724 489 +724 724 +512 388 +512 392 +512 397 +512 418 +512 451 +512 1653 +512 1922 +512 471 +512 1587 +512 494 +512 518 +512 521 +512 451 +512 451 +512 451 +1568 696 +175 43 +175 68 +175 73 +175 229 +175 124 +175 179 +175 181 +853 458 +853 295 +853 853 +295 853 +295 708 +295 458 +295 208 +694 694 +2003 2003 +32 32 +646 568 +646 569 +646 622 +646 644 +646 624 +961 960 +961 283 +961 998 +961 489 +961 967 +961 682 +583 541 +583 555 +583 568 +583 581 +583 584 +583 596 +583 602 +583 608 +583 622 +583 624 +583 583 +1060 951 +1060 489 +1060 682 +2246 1903 +2246 1540 +2246 525 +2246 1484 +2246 2316 +1191 1033 +1191 1056 +1191 1083 +1191 1084 +1191 1094 +1191 1602 +2020 1979 +2020 1995 +2020 2005 +2020 1434 +2020 2021 +2020 2022 +2020 2023 +2020 1302 +644 569 +644 458 +644 624 +644 646 +598 548 +598 569 +598 592 +598 593 +598 603 +598 493 +598 624 +598 645 +1996 1996 +1227 1227 +610 554 +610 607 +610 624 +610 645 +1541 1498 +1541 1509 +1541 485 +488 488 +2097 2088 +2097 393 +2097 2100 +2097 2126 +2097 2132 +2097 2133 +2097 2139 +2097 2164 +2097 2197 +158 23 +158 43 +158 493 +260 252 +260 2049 +260 260 +1972 1972 +1493 1493 +1016 1016 +724 724 +2014 2014 +1306 1334 +1306 1344 +1219 1223 +1219 1293 +1219 1244 +1219 1342 +1219 1303 +1219 489 +1219 1328 +1219 1363 +1219 1328 +1219 1328 +1691 1692 +1691 1693 +1691 1842 +1691 393 +1691 1730 +1691 1785 +1691 445 +1691 375 +594 555 +594 589 +594 595 +594 624 +594 526 +848 848 +2403 269 +2403 270 +2403 408 +2403 285 +2403 2390 +2403 272 +2403 448 +2403 304 +2403 271 +2403 288 +2403 10 +2403 304 +2403 304 +2403 304 +2403 304 +1062 1021 +1062 1023 +1062 1055 +1062 1178 +1105 1105 +1506 1532 +1506 1487 +1506 735 +1506 1488 +1506 1500 +1083 1033 +1083 1094 +1083 1191 +2055 2055 +2055 2055 +2055 2055 +580 553 +580 555 +580 568 +580 585 +580 622 +580 624 +580 526 +580 648 +1998 1998 +260 260 +478 1573 +795 795 +2049 2049 +549 549 +587 568 +587 569 +587 624 +587 526 +1540 1397 +1540 400 +1540 1504 +1540 854 +1540 708 +1540 1493 +1540 1470 +1540 1525 +1540 2215 +1540 1492 +1540 747 +1540 750 +1540 458 +1540 772 +1540 489 +1540 2238 +1540 2270 +1540 1515 +1540 525 +1540 2288 +1540 344 +1540 1505 +1540 2182 +1540 1484 +1540 2316 +795 697 +795 708 +795 561 +795 433 +795 196 +795 749 +795 331 +795 461 +795 787 +795 827 +795 531 +2399 2399 +1546 1490 +1546 344 +330 63 +330 355 +330 334 +330 346 +330 334 +330 334 +501 403 +501 420 +501 426 +501 467 +501 534 +487 1717 +487 1805 +487 1530 +248 248 +1058 1058 +833 396 +833 715 +833 718 +833 749 +833 461 +833 761 +833 794 +833 797 +833 827 +833 827 +833 832 +833 461 +578 553 +578 580 +578 586 +578 588 +578 596 +578 601 +578 631 +578 639 +2023 2023 +378 1635 +378 445 +378 1573 +378 471 +378 383 +378 384 +378 525 +378 383 +2328 237 +2328 491 +2328 1549 +1543 119 +1028 1028 +617 555 +617 569 +617 602 +617 625 +617 624 +557 557 +1808 393 +1810 1805 +595 555 +595 556 +595 568 +595 582 +595 602 +595 609 +595 611 +595 625 +609 555 +609 556 +609 569 +609 582 +609 595 +609 602 +609 611 +609 622 +609 625 +609 624 +559 559 +741 1525 +741 489 +741 496 +585 553 +585 568 +585 569 +585 580 +585 586 +585 624 +1873 1823 +1873 393 +1873 2098 +1873 1736 +1873 1868 +1873 1732 +1873 1733 +1873 1846 +1873 1874 +1873 1802 +1873 1803 +1873 1782 +1873 1781 +1873 1779 +1873 1812 +1873 1721 +1989 1989 +2363 427 +2363 1525 +2363 2404 +2363 2358 +1780 1780 +542 542 +765 405 +765 2159 +765 1149 +765 703 +765 526 +765 802 +2203 2148 +2203 2170 +2203 2174 +2203 2187 +2203 2223 +2203 2230 +2203 2265 +2203 2266 +2203 2203 +2203 2203 +1511 1498 +1822 393 +1822 411 +1822 1809 +1822 445 +1809 393 +1809 1822 +2056 254 +2056 2049 +314 922 +314 602 +2134 2134 +1862 1805 +1862 1829 +1862 1840 +1862 1855 +295 295 +1699 265 +1699 1786 +1699 602 +1699 493 +1699 982 +1699 340 +1699 346 +958 916 +1844 1687 +1844 1832 +1214 405 +1214 489 +1214 1316 +1214 1317 +1214 1375 +1214 1381 +1214 1375 +1214 1375 +171 171 +2319 2319 +712 719 +712 344 +712 526 +1044 1044 +1864 1397 +1864 413 +1872 1872 +288 269 +288 408 +288 285 +288 272 +288 448 +288 489 +288 304 +288 10 +288 304 +288 304 +288 304 +288 304 +288 288 +223 223 +671 671 +272 269 +272 408 +272 2390 +272 448 +272 99 +272 476 +272 493 +272 304 +272 6 +272 288 +272 10 +272 304 +272 304 +272 304 +272 304 +2333 2324 +2333 2334 +2333 375 +992 893 +992 393 +992 1645 +992 931 +992 333 +992 999 +992 932 +992 327 +992 682 +1451 1451 +256 256 +696 696 +1680 1615 +1680 405 +1680 1573 +2246 2246 +971 971 +1945 1945 +1284 1284 +1282 1241 +1282 1282 +1270 1270 +2071 2071 +2339 2320 +1208 1208 +1084 1092 +1084 1097 +1084 602 +1084 1075 +1084 489 +1084 988 +555 555 +1187 1036 +2229 399 +2229 1525 +2229 525 +2028 2028 +702 2254 +702 786 +2028 393 +2028 254 +2028 2049 +2028 1176 +2028 1177 +2028 2074 +423 422 +423 424 +423 1641 +423 441 +423 477 +423 515 +423 423 +423 515 +423 423 +423 515 +423 515 +1688 1690 +1688 1717 +1688 1718 +1688 1745 +1688 1647 +1688 1815 +1688 1829 +1688 1831 +1688 1853 +936 936 +1389 1389 +1389 200 +1302 1302 +1618 436 +1618 3 +730 730 +1738 1645 +1738 1646 +1738 682 +1738 1685 +1211 1211 +182 393 +182 30 +182 43 +182 69 +182 147 +182 151 +182 165 +182 171 +182 188 +1826 1826 +1543 1543 +1501 1501 +74 43 +74 144 +294 397 +294 435 +294 458 +294 334 +294 682 +2112 2112 +1900 493 +2393 2393 +1590 489 +1590 624 +1590 1590 +1590 1590 +925 925 +2029 2029 +466 1902 +466 533 +701 701 +1828 1717 +1828 1726 +1828 471 +1828 1815 +1828 1831 +1828 1865 +942 942 +2018 1398 +2018 1412 +2018 2018 +1158 1085 +1158 1050 +1158 1927 +1158 205 +806 391 +806 723 +806 808 +806 711 +2029 2029 +1968 1969 +1968 2074 +1129 960 +1129 1074 +1129 1063 +1173 1173 +649 659 +649 649 +723 391 +723 393 +723 705 +723 76 +723 757 +723 808 +723 729 +723 805 +723 803 +723 720 +723 711 +1967 1967 +2243 2084 +2243 2176 +2243 2176 +2243 2233 +2243 2236 +2243 2237 +2243 2239 +2243 2241 +2243 6 +2243 2222 +781 766 +781 708 +781 723 +781 1637 +781 757 +781 808 +781 729 +781 751 +781 805 +781 819 +781 711 +781 391 +803 766 +803 391 +803 723 +803 757 +803 808 +803 1647 +803 751 +803 781 +803 781 +803 819 +804 890 +804 713 +804 1627 +804 1629 +804 81 +804 1653 +804 866 +804 365 +804 804 +804 1530 +1019 190 +1019 1007 +1019 673 +910 910 +37 393 +37 39 +37 90 +1106 1106 +138 496 +138 138 +470 470 +819 391 +819 393 +819 708 +819 723 +819 210 +819 76 +819 808 +819 729 +819 781 +819 805 +819 720 +819 994 +1058 1058 +1980 1980 +533 88 +533 466 +533 129 +533 146 +789 789 +990 990 +2013 2013 +2014 2014 +2063 1141 +2063 2062 +2063 1176 +2063 1177 +34 23 +34 393 +34 36 +34 37 +34 39 +34 89 +34 87 +208 853 +257 257 +1115 1116 +1115 154 +1115 682 +1115 1115 +1115 1115 +1026 1168 +1599 1551 +1599 715 +1599 1571 +1599 461 +1599 827 +1599 1599 +1918 1918 +256 256 +2085 393 +2085 2124 +2085 458 +2085 2404 +2085 2238 +2085 2254 +2085 510 +2085 2270 +2085 2288 +2085 2288 +2085 2288 +854 1525 +854 1540 +854 747 +854 750 +854 1509 +854 772 +854 476 +854 489 +854 877 +854 510 +854 2316 +413 14 +413 391 +413 393 +413 63 +413 1864 +328 357 +328 358 +328 370 +328 375 +2250 2282 +2250 445 +2250 1443 +2250 1464 +2250 2257 +438 43 +438 277 +701 682 +1897 489 +1897 515 +258 258 +1347 1347 +1494 325 +1494 334 +1598 1598 +638 552 +638 569 +638 591 +638 605 +638 634 +638 624 +901 901 +916 916 +536 536 +2218 2088 +2218 697 +2218 2248 +2218 2097 +2218 2098 +2218 2100 +2218 2122 +2218 2126 +2218 2133 +2218 2139 +2218 445 +2218 2186 +2218 2226 +2218 2238 +2218 2270 +2218 2296 +2218 2312 +1021 1062 +1021 1067 +1021 1110 +121 16 +121 43 +121 654 +121 68 +121 88 +121 235 +1537 1528 +1537 1533 +1537 855 +1537 1538 +1537 1503 +984 984 +1936 489 +1936 1929 +739 1521 +1247 445 +1247 475 +1247 476 +1247 1467 +1247 1379 +1247 1247 +1247 1247 +1247 1247 +569 568 +569 596 +569 1460 +569 623 +569 624 +569 1478 +569 648 +569 624 +569 624 +91 91 +1935 922 +1935 489 +1935 1929 +378 378 +1299 1299 +777 489 +777 304 +393 1717 +393 2098 +393 397 +393 400 +393 708 +393 410 +393 411 +393 277 +393 1732 +393 77 +393 79 +393 2392 +393 445 +393 2194 +393 1870 +393 458 +393 2218 +393 485 +393 1832 +393 139 +393 177 +393 2312 +393 393 +1248 1249 +1248 1385 +1248 1310 +1248 489 +1248 1318 +1235 1235 +1235 1235 +591 552 +591 568 +591 605 +591 489 +591 634 +591 638 +591 624 +591 526 +925 925 +631 553 +631 568 +631 578 +631 586 +631 588 +631 596 +631 601 +631 622 +631 623 +631 639 +631 624 +631 526 +1888 1814 +22 22 +755 755 +953 953 +863 602 +863 489 +1164 1164 +1212 1256 +1212 1330 +1212 927 +1212 1322 +1256 1256 +261 261 +979 979 +619 391 +619 449 +619 458 +619 488 +619 496 +619 514 +1351 1351 +685 393 +685 355 +685 107 +685 1272 +1519 1519 +735 2135 +735 719 +735 1532 +735 1487 +735 1506 +735 1488 +735 344 +735 526 +735 1500 +2177 393 +2177 2122 +2177 405 +2177 411 +2177 1509 +2177 668 +1751 1751 +1108 1108 +1614 696 +1614 525 +832 1551 +832 715 +832 718 +832 718 +832 749 +832 2351 +832 935 +832 461 +832 761 +832 794 +832 797 +832 814 +832 827 +832 2387 +832 833 +1991 1991 +531 531 +2 2 +349 228 +2074 2074 +1015 1015 +721 721 +1509 1509 +1008 1008 +1860 1860 +1352 1352 +1432 1432 +617 617 +617 617 +617 617 +1086 1086 +1427 1427 +1562 1525 +1562 489 +1422 1422 +2362 2362 +1326 1326 +316 316 +2155 400 +2155 2155 +2155 2197 +2155 2233 +2155 513 +2076 1343 +14 391 +14 393 +14 43 +14 90 +14 117 +14 496 +14 141 +14 160 +1465 1465 +134 69 +1464 1412 +1464 1424 +1464 1444 +1464 1445 +1464 762 +1464 1465 +1464 1467 +1464 1474 +1464 525 +1464 1481 +830 406 +830 1525 +830 707 +830 2 +830 830 +830 792 +707 445 +707 830 +707 525 +1839 1717 +1839 1722 +984 435 +984 464 +984 1155 +984 1002 +984 984 +984 984 +745 419 +745 718 +745 718 +745 749 +745 461 +745 761 +745 483 +745 794 +745 795 +745 849 +745 310 +745 827 +745 832 +745 833 +745 745 +1885 393 +1885 1870 +1326 1211 +1326 1261 +1326 602 +1326 1316 +1326 1330 +1326 510 +1326 1348 +1326 1326 +1326 1326 +2075 393 +2075 1722 +2075 475 +2075 2074 +2075 2074 +2075 2074 +2075 2075 +1114 1114 +297 713 +297 1630 +297 1573 +297 851 +1070 1070 +1107 1107 +1137 1137 +1195 1195 +2392 393 +2392 708 +2392 1637 +2392 1648 +2392 1527 +1086 1086 +170 170 +974 974 +1539 2102 +1539 2119 +1539 725 +1539 2196 +1539 2207 +1539 2286 +1539 772 +1539 2249 +2061 2061 +811 695 +811 1005 +811 700 +811 722 +811 445 +811 663 +811 788 +2373 1587 +2373 1478 +921 1983 +921 2004 +921 2013 +921 920 +921 2014 +921 2015 +921 1262 +921 2016 +921 2033 +1570 1629 +1570 1578 +1570 1588 +1570 1597 +1760 1760 +1760 493 +1760 176 +301 447 +301 1647 +301 471 +1059 1156 +1850 1850 +280 280 +1256 1212 +1256 1256 +1256 927 +1256 1322 +1113 1113 +2064 1165 +2064 1997 +2064 1261 +2064 1316 +2064 1331 +2064 1143 +36 393 +36 34 +36 37 +36 39 +2282 2250 +2282 2288 +2282 2257 +1654 1611 +1654 1621 +1654 1627 +1654 1629 +1654 1635 +1654 1636 +1654 1641 +1654 1645 +1654 1643 +1654 1648 +1654 1647 +1654 1653 +1654 1661 +1654 3 +1654 1673 +1654 1684 +837 708 +273 273 +2367 489 +286 733 +45 45 +1928 544 +1928 2081 +1928 427 +1928 279 +1928 160 +986 986 +162 162 +1563 1562 +1563 489 +1078 1078 +193 193 +269 408 +269 272 +269 448 +269 304 +269 305 +269 288 +269 10 +269 304 +269 304 +269 304 +269 304 +1417 1417 +1433 1433 +1767 1767 +558 558 +1044 1044 +1581 1685 +1174 1174 +1166 1166 +629 569 +629 628 +629 633 +629 624 +1192 1165 +1192 1064 +1192 960 +1192 1166 +1192 1130 +1192 967 +1192 2057 +1192 1164 +1192 1190 +196 196 +2011 2011 +1146 960 +1146 364 +131 131 +978 978 +2358 2358 +1148 348 +1148 526 +2133 2133 +1083 1083 +222 221 +222 223 +222 227 +222 124 +222 231 +380 218 +380 334 +1805 1717 +1805 1718 +1805 1765 +1805 1773 +1805 1815 +1805 1840 +627 557 +627 568 +627 569 +627 623 +627 624 +627 526 +1232 1213 +1232 1250 +1232 1258 +1232 1278 +1232 1299 +1232 1330 +1232 1333 +1232 1350 +1232 1356 +1232 1360 +1232 1350 +1232 1350 +1341 1341 +266 266 +2229 2229 +2320 2339 +2320 2150 +2320 708 +2320 433 +2320 464 +2326 1645 +2326 2349 +2358 434 +2358 2363 +2358 2284 +2356 399 +2356 2356 +2356 445 +2356 682 +2356 347 +2335 2356 +2335 471 +2349 2384 +2349 1660 +2349 2326 +2349 2364 +2354 2330 +2354 427 +2361 2366 +2361 2364 +2359 2359 +2359 2359 +2360 400 +2360 90 +2360 845 +1064 1064 +39 393 +39 34 +39 36 +39 37 +557 557 +639 553 +639 578 +639 586 +639 588 +639 596 +639 601 +639 631 +639 624 +639 526 +557 557 +1634 445 +1634 1618 +1634 1 +1801 1641 +1801 1646 +1801 6 +838 734 +838 776 +838 307 +838 814 +838 818 +838 373 +838 838 +1037 400 +1037 489 +312 312 +38 124 +1933 1934 +1933 526 +1934 922 +1934 1933 +1404 1398 +1404 1404 +1404 1410 +1404 1411 +1404 1412 +1404 1416 +1404 1417 +1404 445 +1404 1428 +1404 1430 +1404 1434 +1404 1439 +1404 1439 +1404 1442 +1404 1443 +1404 1444 +1404 1445 +1404 1446 +1404 1449 +1404 1457 +1404 1458 +1404 1459 +1404 1460 +1404 1461 +1404 1465 +1404 1466 +1404 1467 +1404 1476 +1404 1478 +1404 1465 +1404 1465 +1404 1465 +586 553 +586 569 +586 578 +586 588 +586 596 +586 601 +586 622 +586 631 +586 639 +586 624 +259 252 +259 253 +1767 1767 +1767 1767 +1863 1755 +1863 1299 +2167 696 +2167 1614 +2167 1615 +2167 2158 +2167 2165 +2167 2280 +2167 2307 +40 23 +40 393 +40 43 +819 819 +1048 1040 +1048 489 +1048 1170 +1048 848 +1832 1832 +1100 708 +1100 849 +1429 1429 +540 540 +2036 2036 +130 130 +1641 1641 +1544 686 +1544 687 +1544 2119 +1544 785 +1544 790 +1544 791 +1544 1544 +1544 1544 +2179 400 +2179 445 +2179 1547 +2179 2312 +1092 416 +1092 1049 +1092 1082 +1092 489 +1092 972 +316 316 +1464 1464 +157 157 +2392 2392 +990 990 +254 254 +484 484 +747 854 +747 750 +747 772 +747 2316 +1843 1843 +408 269 +408 708 +408 272 +408 448 +408 304 +408 288 +408 10 +408 304 +408 304 +408 304 +408 304 +408 408 +1091 1091 +2167 2167 +1767 1767 +1795 400 +2291 2291 +2051 1974 +2051 908 +2051 2010 +2051 2011 +2051 2012 +2051 254 +2051 2049 +2051 2051 +420 32 +420 403 +420 47 +420 426 +420 75 +420 1525 +420 88 +420 467 +420 501 +420 146 +420 534 +1660 1660 +1014 651 +1278 1891 +1278 1213 +1278 1232 +1278 1250 +1278 1258 +1278 1333 +1278 1350 +1278 1356 +1278 1360 +1278 1350 +1278 1350 +1944 1919 +1944 1946 +1944 1947 +1944 1948 +1633 1604 +1633 890 +1633 1626 +1633 1639 +1633 1574 +1633 1664 +1633 497 +2381 2359 +1579 804 +1966 405 +1966 445 +1966 476 +1966 1966 +1634 1634 +892 510 +892 308 +892 997 +475 1722 +475 405 +475 425 +475 562 +475 277 +475 434 +475 445 +475 742 +475 457 +475 476 +475 1308 +475 489 +475 509 +475 510 +475 623 +475 476 +475 476 +475 476 +475 476 +1177 1177 +967 967 +1861 1794 +1861 1852 +1861 1861 +653 653 +633 628 +633 629 +633 624 +1420 1398 +1420 1407 +1420 1412 +1420 1417 +1420 1423 +1420 226 +1420 1430 +1420 228 +1420 1433 +1420 1434 +1420 1439 +1420 1441 +1420 1443 +1420 1444 +1420 1445 +1420 1447 +1420 1446 +1420 1449 +1420 235 +1420 1452 +1420 1460 +1420 1461 +1420 1465 +1420 1467 +1420 1468 +1420 1471 +1420 1475 +1420 1476 +1420 1478 +1420 1480 +1420 1465 +2136 2304 +2136 2122 +2136 2126 +2136 2127 +2136 2136 +2136 2139 +2136 2186 +2136 2218 +2136 2244 +2136 2270 +1910 393 +1910 1909 +1456 1456 +171 171 +879 525 +879 526 +1036 1036 +2198 393 +2198 2101 +2198 2126 +2198 2139 +2198 2186 +2198 2186 +2198 2197 +2198 485 +2198 2288 +1260 1286 +1260 1247 +1260 1260 +1260 1260 +1260 1260 +2054 2054 +913 1573 +913 930 +913 933 +913 489 +1386 1401 +1386 1387 +55 23 +2368 2373 +353 353 +698 436 +689 689 +1193 348 +1193 1193 +1551 1551 +871 871 +1066 936 +1066 1170 +362 372 +1411 1398 +1411 1403 +1411 1404 +1411 1412 +1411 1414 +1411 1416 +1411 1417 +1411 1423 +1411 1428 +1411 1433 +1411 1434 +1411 1439 +1411 1442 +1411 1443 +1411 1444 +1411 1445 +1411 1446 +1411 1448 +1411 1449 +1411 1457 +1411 1458 +1411 1459 +1411 1460 +1411 1461 +1411 1465 +1411 1466 +1411 1467 +1411 1471 +1411 1472 +1411 1475 +1411 1476 +1411 1478 +1411 1465 +1411 1465 +1411 1465 +605 552 +605 568 +605 569 +605 589 +605 591 +605 623 +605 634 +605 638 +605 624 +80 23 +80 43 +80 50 +80 74 +80 97 +80 104 +80 131 +80 140 +1836 1836 +1074 1074 +759 759 +759 2273 +759 759 +1793 1767 +1793 252 +1793 489 +1793 2046 +1793 2066 +1793 346 +972 972 +2237 2237 +426 32 +426 403 +426 47 +426 420 +426 61 +426 75 +426 1525 +426 88 +426 467 +426 501 +426 534 +426 536 +1416 1398 +1416 1404 +1416 1410 +1416 1411 +1416 1412 +1416 1414 +1416 1416 +1416 1428 +1416 1430 +1416 1434 +1416 1439 +1416 1442 +1416 1443 +1416 1444 +1416 1445 +1416 1446 +1416 1449 +1416 1453 +1416 1457 +1416 1458 +1416 1459 +1416 1460 +1416 1461 +1416 1465 +1416 1465 +1416 1466 +1416 1467 +1416 1475 +1416 1476 +1416 1478 +1416 1465 +1416 1465 +1416 1465 +2352 445 +2352 2352 +2352 772 +1755 1843 +1051 1051 +1411 1411 +369 322 +369 489 +369 346 +495 495 +155 155 +238 238 +1145 1168 +1145 982 +593 558 +593 568 +593 569 +593 579 +593 592 +593 598 +593 599 +593 600 +593 603 +593 606 +593 607 +593 624 +593 645 +593 647 +1279 476 +1279 1279 +1279 1279 +1279 1279 +1266 1266 +35 393 +35 411 +1276 393 +1276 1217 +1276 1277 +600 554 +600 558 +600 569 +600 579 +600 592 +600 593 +600 603 +600 604 +600 606 +600 622 +600 624 +872 713 +2350 2350 +1067 1067 +573 573 +1353 1353 +403 32 +403 420 +403 426 +403 1525 +403 88 +403 467 +403 128 +403 501 +403 146 +403 534 +1992 1992 +558 558 +2143 2087 +2143 393 +2143 2123 +2143 2116 +2143 2126 +2143 2132 +2143 2133 +2143 2138 +2143 2140 +2143 2142 +2143 2186 +2143 2186 +2143 2198 +2143 2206 +2143 2213 +2143 2231 +2143 2240 +2143 2288 +2143 2288 +209 760 +209 1959 +928 886 +928 896 +928 911 +928 926 +928 1000 +1991 1991 +154 154 +292 292 +1390 1387 +1390 1391 +1390 662 +1390 101 +1390 1390 +1390 1390 +1390 1390 +248 248 +219 1401 +219 69 +219 221 +219 89 +219 1424 +219 228 +511 397 +511 841 +511 435 +1465 1465 +1420 1420 +2166 704 +2166 526 +885 885 +577 590 +577 623 +577 624 +577 526 +890 890 +801 708 +801 1492 +801 489 +801 510 +801 2380 +2121 708 +2121 2159 +1033 1036 +1033 1083 +1033 1094 +1033 1191 +1380 1275 +1380 1331 +1380 1347 +2077 1995 +2077 2021 +2077 2022 +2077 2020 +2077 2023 +1100 1100 +980 980 +606 554 +606 558 +606 569 +606 579 +606 592 +606 593 +606 600 +606 603 +606 604 +2372 708 +2372 2320 +381 713 +381 1675 +381 383 +1343 1343 +1101 1101 +1101 1101 +2166 2166 +325 325 +1974 1974 +1555 1555 +9 393 +9 399 +9 2159 +9 2401 +9 2402 +9 2404 +9 6 +9 7 +9 8 +1518 1518 +574 574 +989 989 +2178 2178 +1198 1198 +1513 436 +1513 497 +1513 515 +1263 1263 +1485 1485 +1925 1925 +1925 1925 +1925 1925 +2287 2107 +2287 2117 +2287 2159 +2287 445 +2069 2069 +1883 471 +2016 2016 +1749 1749 +1044 1044 +925 925 +490 392 +490 451 +490 471 +490 518 +2214 2125 +2214 2159 +2214 667 +2214 1 +2214 1685 +1322 1263 +1322 1746 +1322 489 +1322 1314 +1322 1322 +1322 1322 +1280 1280 +1134 1134 +1992 1992 +2227 708 +2227 2288 +2227 2227 +1654 1654 +1653 1653 +2336 682 +2123 2087 +2123 2116 +2123 2132 +2123 2133 +2123 2138 +2123 2140 +2123 2142 +2123 2143 +2123 2186 +2123 2186 +2123 2197 +2123 2198 +2123 2206 +2123 2213 +2123 2231 +2123 2240 +2123 2288 +2123 2288 +1115 1115 +1964 1914 +2161 713 +2161 1679 +347 347 +1131 1111 +1131 1110 +1131 1096 +1131 489 +1131 1110 +2329 1621 +2329 1654 +2329 2388 +2329 2384 +2329 1661 +2329 2364 +2329 1684 +701 701 +75 393 +75 47 +75 61 +75 69 +75 71 +75 99 +75 125 +75 128 +75 145 +75 146 +75 505 +75 526 +75 536 +75 247 +1315 602 +1315 1281 +1315 1314 +1315 1384 +1315 1314 +1315 1314 +1315 1314 +1675 2115 +1675 713 +1704 1717 +1704 393 +1704 400 +1704 1745 +1704 445 +1704 525 +1311 1311 +811 811 +681 670 +681 670 +681 670 +733 1621 +733 1654 +733 235 +467 32 +467 403 +467 47 +467 420 +467 426 +467 61 +467 75 +467 1525 +467 88 +467 501 +467 180 +467 534 +467 536 +750 750 +1156 1156 +1039 1039 +1144 1086 +1144 1194 +1144 1143 +1144 1086 +1144 1086 +556 542 +556 555 +556 568 +556 582 +556 595 +556 602 +556 609 +556 611 +556 625 +1250 1213 +1250 1232 +1250 1258 +1250 1278 +1250 1310 +1250 1333 +1250 1350 +1250 1356 +1250 1360 +1250 1350 +1250 1350 +562 742 +562 475 +562 476 +562 1308 +562 622 +562 623 +562 648 +562 476 +562 476 +562 476 +562 476 +797 797 +1504 1482 +1504 1493 +1504 1525 +1504 1492 +1504 1540 +1504 334 +1504 475 +1504 509 +1504 682 +1504 1505 +1490 1489 +1490 1546 +1490 1517 +352 2317 +352 1891 +352 355 +352 489 +774 14 +774 808 +774 751 +774 720 +2025 2025 +2027 2027 +2390 2390 +2301 489 +2301 2300 +2301 526 +2267 399 +2267 445 +2267 758 +2267 2308 +984 984 +1037 1037 +798 809 +798 834 +798 798 +798 798 +2268 1615 +2268 713 +2268 2158 +2268 1630 +1497 1497 +758 399 +758 400 +758 1525 +758 2267 +566 553 +566 564 +566 568 +566 589 +566 596 +566 526 +774 774 +236 218 +236 1413 +236 224 +236 225 +236 359 +236 226 +236 227 +236 228 +236 229 +236 1463 +236 666 +236 1446 +236 232 +236 233 +236 235 +236 236 +236 241 +236 242 +236 243 +236 244 +236 375 +236 245 +236 246 +236 247 +916 1621 +916 1269 +916 1370 +916 991 +2307 1615 +2307 2158 +2307 2165 +2307 2167 +2307 2280 +2075 2075 +2075 2075 +1380 1380 +1380 1380 +948 948 +715 715 +1521 400 +1521 708 +1521 1495 +1521 1909 +1521 2218 +1521 2312 +1794 1794 +1162 1028 +1162 1029 +836 75 +836 1510 +836 536 +63 186 +63 82 +63 90 +63 99 +63 100 +63 101 +63 489 +63 133 +63 133 +63 139 +63 140 +1561 1564 +896 886 +896 911 +896 926 +896 928 +896 1000 +2268 2268 +568 569 +568 622 +568 624 +568 648 +955 1545 +955 1394 +955 887 +955 893 +955 280 +955 289 +955 931 +955 333 +955 950 +955 975 +955 999 +955 1390 +955 992 +955 338 +955 327 +955 341 +955 999 +955 999 +1112 1112 +1087 1087 +2268 2268 +556 556 +938 718 +938 749 +938 2351 +938 461 +938 761 +938 483 +938 849 +938 827 +938 827 +938 461 +997 997 +624 541 +624 542 +624 552 +624 555 +624 558 +624 397 +624 568 +624 569 +624 1573 +624 591 +624 592 +624 593 +624 596 +624 599 +624 602 +624 603 +624 608 +624 489 +624 623 +624 643 +624 644 +624 645 +624 647 +624 648 +624 624 +624 624 +935 715 +935 718 +935 461 +935 794 +935 849 +935 827 +935 832 +935 833 +1051 1051 +634 542 +634 552 +634 591 +634 605 +634 622 +634 638 +634 624 +48 48 +298 1504 +298 61 +298 75 +298 489 +298 317 +298 298 +749 749 +559 559 +564 553 +564 566 +564 568 +564 596 +564 639 +564 526 +2008 2008 +1383 1383 +1139 1139 +19 19 +845 845 +1931 1929 +1931 1930 +1931 1932 +1931 1937 +1231 1231 +950 1545 +950 1394 +950 887 +950 289 +950 931 +950 975 +950 999 +950 955 +950 341 +950 682 +950 999 +950 999 +731 457 +721 708 +721 699 +721 1641 +721 1653 +721 760 +911 883 +911 886 +911 896 +911 926 +911 928 +911 1000 +2271 848 +1440 1400 +1440 1403 +1440 1407 +1440 1417 +1440 1423 +1440 228 +1440 1433 +1440 1434 +1440 1435 +1440 235 +1440 1457 +1440 1458 +1440 1459 +1440 1460 +1440 1465 +1440 1467 +1440 1478 +1440 1479 +1440 648 +1440 1434 +1440 1434 +1014 1014 +2099 393 +2099 69 +2099 525 +2005 393 +2005 1981 +2005 1995 +2005 1997 +2005 2013 +2005 2068 +2005 2025 +2040 2040 +2045 2045 +1446 1478 +1037 1037 +1295 1295 +1478 1446 +2379 320 +2379 2379 +1071 1071 +1969 1968 +1969 489 +1969 525 +565 553 +565 564 +565 566 +565 568 +565 596 +565 624 +2087 393 +2087 2123 +2087 2116 +2087 2126 +2087 2132 +2087 2133 +2087 2138 +2087 2140 +2087 2142 +2087 2143 +2087 2186 +2087 2186 +2087 2198 +2087 2206 +2087 2213 +2087 2404 +2087 2231 +2087 2240 +2087 2288 +2087 2288 +1271 1239 +1271 1284 +1271 1324 +1271 1331 +1271 515 +1271 1331 +1271 1331 +1794 1794 +1188 1188 +2341 2359 +2341 516 +359 359 +551 569 +551 624 +897 48 +897 68 +897 181 +897 183 +1556 401 +1556 1573 +257 257 +844 844 +2046 2046 +1468 1468 +1144 1144 +1168 1168 +1384 1314 +1384 1315 +1384 1331 +1384 1314 +1384 1314 +1384 1314 +2318 2342 +2342 71 +2342 2343 +2342 1645 +2027 2027 +1690 1688 +1690 1716 +1690 1717 +1690 1875 +1690 1765 +1690 1815 +1690 1865 +2103 2304 +2103 2127 +2103 399 +2103 2244 +1047 1047 +2370 31 +1109 982 +396 396 +1109 1109 +2343 1621 +2343 2364 +2343 2342 +1349 400 +1349 489 +1349 1375 +1349 1381 +1349 1381 +1349 1381 +81 23 +81 28 +81 1497 +81 113 +81 136 +81 148 +81 365 +81 804 +81 1530 +81 160 +81 174 +1431 1402 +1431 1412 +1431 1413 +1431 1430 +1431 1441 +1431 1444 +1431 235 +1431 1452 +1431 1462 +1431 1465 +1431 1466 +1431 1467 +1431 1468 +1431 1480 +1753 1753 +1672 1672 +320 320 +380 380 +31 216 +31 26 +31 52 +31 658 +31 69 +31 70 +31 1412 +31 1413 +31 221 +31 222 +31 223 +31 89 +31 90 +31 660 +31 228 +31 107 +31 668 +31 124 +31 235 +31 155 +31 682 +31 185 +31 31 +31 31 +2343 2343 +597 549 +597 569 +597 624 +254 254 +1583 1583 +1984 1984 +1984 2015 +1984 254 +1172 1172 +222 222 +1084 1084 +736 1401 +736 2145 +736 445 +736 489 +736 684 +1308 1308 +782 696 +782 845 +782 496 +782 496 +782 496 +2379 2379 +525 525 +1195 1195 +1180 1180 +18 20 +18 89 +1783 1783 +1894 228 +2188 393 +2188 2122 +2188 405 +2188 2330 +2188 1628 +2188 2208 +2188 2376 +2188 2312 +1427 1427 +693 2398 +693 693 +1009 1009 +852 979 +852 1191 +852 1602 +618 555 +618 555 +618 568 +618 569 +618 617 +618 622 +618 624 +2002 2002 +2000 2000 +742 742 +365 228 +365 2374 +1345 1345 +2095 2095 +78 26 +78 31 +78 52 +78 142 +78 155 +2082 2083 +2082 445 +2082 493 +2082 525 +690 433 +690 290 +525 525 +2332 2332 +46 46 +2010 2010 +1299 1299 +2230 2148 +2230 2170 +2230 2174 +2230 2178 +2230 2187 +2230 2203 +2230 2223 +2230 2252 +2230 2264 +2230 2265 +2230 2266 +2230 2230 +2230 2230 +1237 1237 +1857 1857 +551 551 +1886 1886 +1213 1213 +1250 1250 +1130 1130 +52 52 +84 84 +1588 1629 +1588 1578 +1588 1596 +2226 2162 +2226 2202 +2226 2189 +2226 2288 +2226 2151 +1650 1655 +1118 1118 +1118 1118 +1118 1118 +2011 2011 +1094 1094 +536 536 +2257 2282 +2257 2174 +2257 2250 +2257 445 +2257 2288 +900 900 +641 546 +641 568 +641 622 +641 623 +641 624 +723 723 +1789 1716 +1789 1717 +1789 1849 +1789 1745 +1789 1765 +1789 1773 +1789 1799 +1789 1882 +1789 1815 +1789 1829 +1789 1838 +1789 1799 +1789 1799 +1789 1799 +726 2148 +726 2296 +2096 2197 +2096 2199 +2096 2224 +2096 2292 +2096 2293 +2096 2294 +2096 2295 +2096 2296 +2096 2297 +2096 2303 +2096 2288 +2096 2199 +2096 2199 +1540 1540 +2253 2101 +2253 2126 +2253 1540 +2253 2197 +2253 2220 +2253 2270 +2253 2288 +2253 344 +2187 2148 +2187 2170 +2187 2174 +2187 2203 +2187 2223 +2187 2230 +2187 2263 +2187 2264 +2187 2265 +2187 2266 +2187 2187 +2187 2187 +1968 1968 +1213 1213 +1791 1718 +1791 1765 +1791 445 +1791 1799 +1791 1813 +1791 1829 +1791 1865 +1791 1829 +1791 1829 +1557 1569 +1557 489 +2083 2082 +640 608 +640 623 +640 624 +460 394 +460 47 +460 427 +460 428 +460 61 +460 75 +460 442 +460 522 +385 400 +385 218 +385 445 +385 1509 +385 489 +837 837 +300 1717 +300 758 +300 2267 +1272 1272 +1731 393 +1731 1730 +1731 1730 +1731 1730 +257 257 +1566 1566 +2286 725 +2286 2196 +2286 2207 +2286 1539 +2286 2249 +856 856 +1914 1913 +1914 1964 +867 69 +867 2254 +867 2288 +867 526 +867 2288 +867 2288 +307 292 +307 776 +307 762 +307 814 +307 818 +307 373 +307 821 +373 2159 +373 734 +373 292 +373 776 +373 762 +373 307 +373 1464 +373 814 +373 818 +373 373 +373 1481 +1067 1067 +1913 1912 +1913 1914 +1536 2102 +1536 2119 +1536 785 +1264 1264 +794 715 +794 718 +794 745 +794 749 +794 2351 +794 935 +794 461 +794 761 +794 938 +794 776 +794 797 +794 827 +794 2387 +794 832 +794 833 +1804 445 +1804 2229 +33 900 +512 512 +72 391 +72 31 +72 89 +72 235 +72 244 +248 248 +1246 393 +1246 1251 +1246 1274 +1246 1312 +1246 1319 +1246 1329 +1246 1348 +1246 1329 +1246 1329 +1246 1329 +1246 1329 +1330 1330 +1189 393 +1189 1053 +1189 1072 +1189 1111 +1189 1110 +1189 1110 +1189 1096 +1189 1117 +1189 1131 +1189 1316 +1189 1034 +1189 1137 +1189 1160 +1189 1189 +1189 1110 +1652 1652 +1978 1978 +947 489 +947 1234 +1788 1716 +1788 1745 +1788 1773 +1788 1799 +1788 1815 +1788 1841 +1788 1855 +1788 1737 +1788 1865 +1788 1773 +1788 1773 +1246 1246 +686 687 +686 1544 +1011 1011 +687 686 +687 1544 +790 2119 +790 734 +790 776 +790 791 +790 818 +790 1544 +688 2119 +1411 1411 +1806 1806 +1072 1053 +1072 1111 +1072 1110 +1072 1110 +1072 1096 +1072 1117 +1072 1131 +1072 1034 +1072 1137 +1072 1160 +1072 1189 +1072 1072 +1072 1110 +100 100 +1049 348 +1049 1092 +1049 489 +1049 364 +1049 1201 +1303 1303 +2254 2254 +561 561 +1975 2015 +1975 2049 +1975 2288 +1975 2074 +675 471 +621 559 +621 568 +621 581 +621 626 +621 630 +621 637 +621 624 +621 526 +799 476 +2025 2025 +2000 2000 +931 1545 +931 1394 +931 887 +931 893 +931 289 +931 237 +931 333 +931 950 +931 975 +931 999 +931 955 +931 235 +931 1593 +931 932 +931 992 +931 341 +931 999 +931 999 +1147 1147 +2057 1165 +2057 445 +2057 226 +2057 1166 +2057 2404 +2057 2049 +2057 2058 +2057 1192 +2057 2074 +2347 818 +372 372 +302 302 +1595 713 +1595 816 +1595 965 +525 1717 +525 266 +525 397 +525 399 +525 400 +525 713 +525 410 +525 416 +525 277 +525 196 +525 1497 +525 445 +525 458 +525 2229 +525 525 +525 851 +525 993 +525 525 +165 30 +165 43 +165 69 +165 147 +165 151 +165 171 +165 182 +165 188 +920 1983 +920 2004 +920 2013 +920 2014 +920 2015 +920 1262 +920 2016 +920 2033 +920 921 +2217 2217 +2294 2096 +2294 2148 +2294 2225 +2294 2199 +2294 2224 +2294 509 +2294 2292 +2294 2293 +2294 2295 +2294 2296 +2294 2297 +2294 2303 +2294 2199 +2294 2199 +2065 2065 +915 915 +306 509 +1312 393 +1312 1251 +1312 1246 +1312 1274 +1312 1319 +1312 1329 +1312 1348 +1312 1329 +1312 1329 +1312 1329 +1312 1329 +85 14 +85 27 +85 32 +85 43 +85 77 +85 112 +85 160 +782 782 +816 816 +2255 2255 +1845 1845 +1704 1704 +1059 1059 +211 211 +2185 2185 +1295 1295 +2052 2052 +2249 686 +2249 2119 +2249 725 +2249 2196 +2249 2207 +2249 2286 +2249 334 +2249 1539 +873 526 +510 1211 +510 1722 +510 1896 +510 405 +510 425 +510 427 +510 277 +510 434 +510 1261 +510 1264 +510 457 +510 254 +510 475 +510 489 +510 1316 +510 1326 +510 509 +510 1860 +510 1179 +1189 1189 +2100 2100 +781 781 +964 289 +964 1573 +964 923 +964 939 +964 975 +964 999 +964 955 +964 341 +964 975 +964 975 +719 2135 +719 712 +719 735 +719 719 +2131 2131 +1445 1445 +801 801 +1165 1165 +1457 1457 +2260 708 +2260 6 +289 1545 +289 1394 +289 887 +289 893 +289 931 +289 333 +289 939 +289 950 +289 975 +289 999 +289 955 +289 964 +289 992 +289 341 +289 975 +289 999 +289 975 +289 999 +630 559 +630 568 +630 581 +630 621 +630 626 +630 637 +630 624 +630 526 +1482 2135 +1482 1504 +1482 1493 +1482 476 +1482 1505 +1482 2259 +1482 2182 +949 1545 +949 1394 +949 887 +949 289 +949 1646 +949 931 +949 950 +949 975 +949 999 +949 955 +949 341 +949 999 +949 999 +341 1545 +341 1394 +341 887 +341 280 +341 289 +341 931 +341 237 +341 950 +341 975 +341 999 +341 955 +341 338 +341 999 +341 999 +1479 1412 +1479 1414 +1479 1417 +1479 1423 +1479 1433 +1479 1443 +1479 1445 +1479 1446 +1479 1460 +1479 1475 +522 427 +522 442 +1828 1828 +1487 1487 +309 309 +1120 1120 +752 1615 +752 1624 +752 1631 +804 804 +2334 2324 +2334 2333 +2334 1413 +2334 2341 +1487 1487 +1270 1270 +1796 1796 +114 114 +1246 1246 +2102 2119 +2102 1539 +2353 237 +2353 489 +2353 235 +2353 1593 +1249 1249 +1775 1760 +1775 176 +1814 1814 +1594 973 +1594 990 +2079 1498 +2079 236 +2079 244 +2174 2091 +2174 2148 +2174 2153 +2174 708 +2174 1647 +2174 2187 +2174 2197 +2174 2200 +2174 2203 +2174 2230 +2174 2231 +2174 2252 +2174 2263 +2174 2298 +2174 2315 +1747 1760 +1747 1775 +1747 176 +908 908 +2055 2055 +785 2102 +785 2119 +785 509 +2047 2047 +1720 1775 +1720 176 +2338 713 +2338 2338 +2338 1654 +2338 848 +959 696 +1984 1984 +1792 1716 +1792 1717 +1792 1718 +1792 1745 +1792 1773 +1792 1799 +1792 1840 +1792 1865 +817 445 +817 476 +817 489 +817 848 +8 2098 +8 399 +8 411 +8 2159 +8 1647 +8 2401 +8 2402 +8 2404 +8 525 +8 6 +8 7 +8 9 +989 989 +1184 895 +1184 1089 +1184 489 +1184 982 +1184 1184 +1184 1195 +1184 982 +1184 982 +849 849 +2289 445 +2289 459 +2289 489 +2289 2291 +2289 2299 +968 1646 +968 930 +968 999 +968 1150 +968 932 +1993 1986 +1993 2049 +1993 1991 +1986 1993 +1986 2010 +1986 254 +1986 2049 +1986 1991 +887 1545 +887 1394 +887 893 +887 289 +887 931 +887 237 +887 950 +887 975 +887 999 +887 955 +887 341 +887 999 +887 999 +2219 2219 +943 1545 +943 1394 +943 887 +943 2344 +943 289 +943 931 +943 950 +943 975 +943 999 +943 955 +943 932 +943 341 +943 999 +943 999 +1136 1136 +579 558 +579 569 +579 593 +579 600 +579 606 +579 624 +2202 2162 +2202 393 +2202 2189 +2202 2226 +2202 1 +2202 2314 +2202 2296 +2202 2312 +2202 2151 +841 841 +973 973 +133 133 +2270 2270 +1050 1050 +329 321 +329 2404 +329 321 +329 321 +944 944 +944 944 +2119 2119 +333 893 +333 237 +333 932 +333 992 +333 338 +333 327 +237 237 +976 976 +992 992 +955 955 +1593 1593 +1552 1552 +893 893 +999 999 +1001 480 +1001 489 +1001 1001 +1001 1393 +2097 2097 +151 30 +151 43 +151 69 +151 147 +151 165 +151 171 +151 182 +151 188 +188 393 +188 30 +188 43 +188 69 +188 85 +188 147 +188 151 +188 165 +188 171 +188 182 +147 393 +147 30 +147 43 +147 69 +147 151 +147 165 +147 171 +147 182 +147 188 +347 347 +2151 2162 +2151 393 +2151 400 +2151 2202 +2151 2189 +2151 2226 +2151 1 +2151 2314 +2151 2180 +2151 2296 +2151 2312 +2025 2025 +754 754 +2196 725 +2196 2207 +2196 2286 +2196 1539 +2196 2249 +950 950 +2190 2126 +2190 2133 +2190 2142 +2190 2143 +2190 1540 +2190 2197 +2190 2404 +2190 493 +2190 2238 +2190 2270 +2190 2288 +2190 526 +864 319 +864 602 +1248 1248 +248 393 +248 1295 +2035 2035 +980 980 +1035 489 +78 78 +1119 1119 +1711 1694 +1711 1695 +1711 1697 +1711 1698 +1711 1699 +1711 1701 +1711 1702 +1711 1703 +1711 1705 +1711 1712 +1711 526 +1051 1051 +1502 195 +1502 734 +1502 1481 +498 708 +498 466 +498 499 +498 533 +1164 1164 +516 1748 +516 2341 +516 2359 +516 489 +516 500 +2352 2352 +1441 1441 +1021 1021 +1164 1164 +725 2196 +725 2207 +725 2286 +725 1539 +725 2249 +347 347 +581 541 +581 546 +581 555 +581 559 +581 569 +581 582 +581 583 +581 584 +581 588 +581 589 +581 590 +581 596 +581 601 +581 602 +581 608 +581 613 +581 621 +581 624 +581 626 +581 628 +581 630 +581 637 +581 624 +1115 1115 +2170 2148 +2170 2174 +2170 2183 +2170 2187 +2170 2203 +2170 2223 +2170 2230 +2170 2263 +2170 2264 +2170 2265 +2170 2266 +2170 2170 +2170 2170 +1974 1974 +2039 2039 +1594 1594 +437 437 +1949 476 +1949 526 +2223 2148 +2223 2170 +2223 2174 +2223 2187 +2223 2203 +2223 2230 +2223 2252 +2223 2264 +2223 2265 +2223 2266 +2223 525 +2223 2296 +2223 2223 +2223 2223 +613 546 +613 555 +613 559 +613 569 +613 581 +613 602 +613 608 +613 624 +613 624 +1296 1296 +1164 1164 +1188 1188 +1473 1474 +618 618 +1500 1532 +1500 1487 +1500 1506 +1500 735 +1500 1488 +1578 1570 +1578 1588 +264 1092 +264 445 +264 2015 +264 254 +264 264 +2067 1995 +2067 2068 +2067 2074 +2258 400 +2258 6 +2382 119 +2022 2022 +977 1064 +977 1176 +977 1177 +977 1164 +1984 1984 +1984 2074 +637 559 +637 581 +637 621 +637 626 +637 630 +637 624 +637 526 +2199 2199 +1238 1238 +1980 1980 +2122 2122 +1456 1456 +2391 2391 +864 864 +626 555 +626 559 +626 581 +626 602 +626 621 +626 623 +626 630 +626 637 +626 624 +1159 1159 +889 696 +889 280 +889 962 +889 696 +384 696 +384 391 +384 216 +384 393 +384 56 +384 69 +384 378 +384 383 +384 525 +384 383 +1547 1547 +1982 696 +1982 2049 +1132 1598 +486 1635 +486 956 +486 1498 +486 1583 +486 1673 +1979 1979 +1715 386 +1715 1714 +1715 396 +1715 419 +1715 430 +1715 433 +1715 464 +1715 472 +1917 426 +1917 467 +1917 623 +1315 1315 +1394 1394 +1545 1545 +950 950 +341 341 +1604 1604 +1607 1607 +2318 2318 +889 889 +1611 1611 +2096 2096 +2097 2097 +1719 1719 +2100 2100 +1580 1580 +1701 1694 +1701 1695 +1701 1698 +1701 1702 +1701 1703 +1701 1711 +1701 1712 +1701 526 +2068 2005 +2068 2065 +2068 2067 +2068 2074 +1262 1983 +1262 1574 +1262 2013 +1262 920 +1262 2014 +1262 2015 +1262 2016 +1262 2033 +1262 254 +1262 509 +1262 921 +1294 1264 +1294 1301 +326 1722 +326 1742 +326 322 +326 342 +326 326 +326 322 +326 322 +1902 466 +155 155 +1034 1053 +1034 1072 +1034 1111 +1034 1110 +1034 1096 +1034 1117 +1034 1131 +1034 1137 +1034 1160 +1034 1189 +1034 1110 +2186 2186 +2037 2037 +516 516 +1867 526 +327 887 +327 893 +327 280 +327 333 +327 999 +327 992 +1499 1499 +615 546 +615 555 +615 559 +615 568 +615 569 +615 581 +615 602 +615 608 +615 624 +567 569 +567 615 +550 393 +550 2098 +550 623 +550 648 +1943 1525 +1943 489 +1943 1940 +2213 2087 +2213 2101 +2213 2123 +2213 2116 +2213 2132 +2213 2133 +2213 2138 +2213 2140 +2213 2142 +2213 2143 +2213 2186 +2213 2186 +2213 2198 +2213 2206 +2213 2231 +2213 2240 +2213 2288 +2213 2288 +2206 2087 +2206 2123 +2206 2116 +2206 2132 +2206 2133 +2206 2138 +2206 2140 +2206 2142 +2206 2143 +2206 2186 +2206 2186 +2206 2198 +2206 2213 +2206 2231 +2206 2240 +2206 2288 +2387 749 +2387 2351 +2387 461 +2387 761 +2387 483 +2387 827 +2387 827 +2387 832 +2387 2387 +2387 461 +491 2328 +491 63 +491 6 +90 90 +2141 2105 +1716 1716 +307 307 +2057 2057 +1437 399 +1437 1007 +1437 355 +1437 1525 +1437 236 +1437 509 +1437 244 +1792 1792 +1203 1203 +274 2394 +1171 1171 +766 391 +766 723 +766 757 +766 808 +766 751 +766 781 +766 803 +1255 1255 +1355 489 +1355 1298 +2183 2330 +2183 1647 +2183 2185 +2183 2264 +2183 6 +757 766 +757 391 +757 723 +757 808 +757 729 +757 751 +757 781 +757 805 +757 803 +757 819 +757 720 +206 425 +206 445 +206 475 +206 489 +206 206 +206 509 +206 510 +300 300 +794 794 +795 795 +301 301 +2104 2104 +1710 1700 +1710 1707 +1710 1709 +1710 393 +1710 1785 +1710 445 +1111 1053 +1111 1072 +1111 1110 +1111 1110 +1111 1096 +1111 1117 +1111 1131 +1111 1034 +1111 1137 +1111 1160 +1111 1189 +1111 1110 +492 93 +492 624 +492 189 +1709 1700 +1709 1707 +1709 1710 +1709 393 +1709 445 +1707 1700 +1707 1709 +1707 1710 +1707 393 +1707 1785 +1707 445 +2081 544 +2081 31 +2081 279 +2081 1928 +2081 510 +2081 185 +2081 1547 +1987 1988 +1987 2049 +710 710 +1133 348 +1133 1717 +1133 68 +1133 1110 +1133 1133 +1629 1629 +1989 1989 +858 858 +1061 1061 +725 725 +1632 1632 +1633 1633 +437 437 +197 197 +1635 1635 +859 859 +1638 1638 +1637 1637 +1636 1636 +564 564 +566 566 +1639 1639 +726 726 +1248 1248 +1766 1766 +79 79 +80 80 +81 81 +710 710 +1066 1066 +2341 2341 +282 282 +1256 1256 +447 447 +570 570 +571 571 +572 572 +574 574 +575 575 +1645 1645 +1646 1646 +1643 1643 +1644 1644 +1648 1648 +1647 1647 +2179 2179 +284 284 +1339 1074 +1339 1071 +1339 308 +1023 1023 +133 133 +360 696 +360 1005 +360 1615 +360 277 +360 1412 +360 1424 +360 445 +360 734 +360 228 +360 1445 +360 1587 +360 762 +360 814 +360 1467 +360 373 +360 1481 +2387 2387 +1592 1592 +1666 1666 +1803 1823 +1803 393 +1803 1736 +1803 1868 +1803 1732 +1803 1733 +1803 1846 +1803 1873 +1803 1874 +1803 1802 +1803 1782 +1803 1781 +1803 1779 +1803 1812 +1803 1721 +1827 1755 +1827 1723 +1323 1368 +1323 1368 +1323 1368 +474 68 +474 136 +1323 1323 +116 116 +2180 393 +2180 2098 +2180 2202 +2180 2191 +2180 2314 +2180 2312 +1703 1697 +1703 1701 +1703 1706 +1703 1711 +1703 526 +391 391 +1111 1111 +108 31 +108 52 +108 69 +108 70 +108 221 +108 107 +108 155 +108 676 +108 185 +2129 1587 +1102 1102 +1388 475 +1443 696 +1443 1398 +1443 1398 +1443 1404 +1443 1411 +1443 1412 +1443 1416 +1443 1573 +1443 1428 +1443 1430 +1443 1434 +1443 1439 +1443 1442 +1443 1443 +1443 1444 +1443 1445 +1443 1446 +1443 1449 +1443 235 +1443 1451 +1443 1457 +1443 1458 +1443 1459 +1443 1460 +1443 1461 +1443 1465 +1443 1466 +1443 1467 +1443 1476 +1443 1478 +1443 245 +1443 1443 +1443 1443 +1443 1465 +1443 1443 +1443 1465 +1443 1443 +1443 1465 +1271 1271 +743 743 +1142 1062 +1142 1185 +1142 1178 +1142 1142 +1697 1694 +1697 1702 +1697 1703 +1697 1706 +1697 526 +1698 1694 +1698 1695 +1698 1699 +1698 1701 +1698 1702 +1698 1711 +1698 1712 +1698 602 +289 289 +1207 1301 +1207 1229 +1818 393 +1818 1784 +2373 2373 +0 0 +954 954 +1664 1664 +2231 2231 +785 785 +1131 1131 +1132 1132 +1294 1294 +1134 1134 +1758 1758 +1518 1518 +320 1573 +320 2379 +320 344 +1674 1674 +373 373 +868 2330 +868 1645 +868 733 +868 868 +868 868 +1694 1695 +1694 1697 +1694 1698 +1694 1699 +1694 1701 +1694 1702 +1694 1711 +1694 1712 +1694 602 +2388 1621 +2388 733 +2388 1654 +2388 3 +2388 1684 +1718 1718 +2207 725 +2207 2196 +2207 2286 +2207 1539 +2207 2249 +2207 2288 +1726 1726 +1786 1786 +329 329 +739 739 +330 330 +744 744 +746 746 +747 747 +745 745 +738 738 +748 748 +1793 1793 +1018 1018 +1650 1650 +2350 2350 +2107 2107 +1745 1745 +1756 1756 +1757 1757 +1064 1064 +1765 1765 +1773 1773 +315 315 +1788 1788 +1789 1789 +1791 1791 +1792 1792 +1799 1799 +1833 1755 +393 393 +563 568 +563 569 +563 445 +563 624 +694 405 +694 708 +694 1493 +2260 2260 +2235 2119 +2235 790 +2235 791 +2235 1544 +2365 1611 +2365 1641 +2365 1643 +2365 733 +2365 1653 +2365 3 +1805 1805 +1810 1810 +1813 1813 +1815 1815 +1817 1817 +1053 1072 +1053 1111 +1053 1110 +1053 1096 +1053 1117 +1053 1131 +1053 1034 +1053 1137 +1053 1160 +1053 1189 +1053 1110 +875 875 +1355 1355 +1388 1388 +1829 1829 +1543 1543 +63 63 +2241 2176 +2241 445 +2241 2233 +2241 2236 +2241 2237 +2241 2239 +2241 2243 +1706 1697 +1706 1703 +1706 1711 +1706 1712 +159 159 +2146 2086 +2146 2185 +1345 1345 +648 391 +648 397 +648 1412 +648 75 +648 76 +648 228 +648 1434 +648 1443 +648 1446 +648 1460 +648 1465 +648 1467 +648 622 +648 623 +648 624 +648 1476 +648 1478 +648 1684 +1012 391 +1012 2159 +1012 771 +1012 1020 +1012 1641 +1012 1653 +1012 496 +1012 918 +1012 1010 +198 489 +2020 2020 +1862 1862 +1865 1865 +1052 1052 +1911 1904 +1318 1318 +1962 1962 +1963 1963 +1911 1911 +1904 1904 +1904 1911 +1904 475 +1887 1887 +1045 1045 +803 803 +86 115 +1137 1053 +1137 1072 +1137 1111 +1137 1110 +1137 1096 +1137 1117 +1137 1131 +1137 1034 +1137 1160 +1137 1189 +1137 1110 +1987 1987 +560 560 +1702 1694 +1702 1695 +1702 1697 +1702 1698 +1702 1701 +1702 1711 +1702 1712 +1702 324 +1763 1849 +1763 1767 +1763 1799 +1763 1840 +1763 1853 +1117 63 +1117 1053 +1117 1072 +1117 1111 +1117 1110 +1117 1096 +1117 1131 +1117 1034 +1117 1137 +1117 1160 +1117 1189 +1117 1110 +2305 2093 +2305 445 +2305 2209 +2305 2211 +2305 2247 +2305 2272 +2305 2273 +2305 2276 +1249 1249 +1234 1234 +1787 1716 +1787 1717 +1787 1745 +1787 1765 +1787 1799 +1787 1813 +1787 471 +1787 1815 +1787 1829 +1787 1840 +1787 1855 +1787 1880 +2051 2051 +1975 1975 +934 396 +934 749 +934 749 +934 461 +934 761 +934 483 +934 797 +934 849 +934 827 +934 827 +934 832 +934 833 +934 461 +791 2119 +791 776 +791 790 +791 1544 +1703 1703 +1496 2175 +1496 2186 +1496 2404 +1496 1523 +1496 493 +982 982 +1564 1561 +1564 1635 +1199 1199 +1368 1323 +1368 2074 +1368 1368 +1368 1368 +1695 1694 +1695 1698 +1695 1701 +1695 1702 +1695 1711 +1695 1712 +945 2107 +945 937 +945 942 +945 1003 +811 811 +729 391 +729 413 +729 723 +729 808 +729 781 +729 805 +729 806 +729 815 +729 819 +729 711 +1314 1314 +1314 1314 +717 776 +717 814 +1961 1920 +1961 1921 +317 298 +317 440 +317 526 +317 538 +847 847 +1770 1746 +2252 2252 +1670 1670 +1110 1110 +1110 1110 +1110 393 +1110 1053 +1110 445 +1110 1072 +1110 1111 +1110 1110 +1110 1110 +1110 1096 +1110 1117 +1110 254 +1110 2040 +1110 1131 +1110 1316 +1110 364 +1110 1328 +1110 1156 +1110 1034 +1110 1137 +1110 1160 +1110 1189 +1110 1110 +1110 1110 +1160 1053 +1160 1072 +1160 1111 +1160 1110 +1160 1096 +1160 1117 +1160 1131 +1160 1034 +1160 1137 +1160 1189 +1160 1110 +559 559 +1987 1987 +2345 1673 +2255 2255 +1673 1673 +843 847 +973 973 +714 714 +2299 393 +2299 2148 +2299 400 +2299 445 +2299 489 +2299 2289 +2299 526 +713 2115 +713 708 +713 2157 +713 2157 +713 2158 +713 718 +713 1630 +713 734 +713 1559 +713 1580 +713 1659 +713 1662 +713 381 +713 776 +713 807 +713 1676 +713 814 +713 2268 +713 1679 +713 818 +713 1565 +713 822 +713 525 +713 713 +674 235 +821 734 +821 776 +821 814 +821 818 +376 68 +376 489 +1121 1058 +1121 1084 +1121 489 +1178 1036 +1178 1055 +1178 1062 +1178 1127 +1178 1301 +1178 489 +1178 1141 +1178 1142 +1178 1185 +381 381 +2128 2087 +2128 2101 +2128 2123 +2128 2116 +2128 2132 +2128 2133 +2128 2138 +2128 2140 +2128 2142 +2128 2143 +2128 2186 +2128 2198 +2128 2206 +2128 2213 +2128 2231 +2128 2240 +2128 2288 +71 696 +71 393 +71 31 +71 708 +71 63 +71 1641 +71 90 +71 1573 +71 107 +71 526 +71 185 +1892 489 +291 354 +291 440 +291 446 +291 278 +291 366 +1020 771 +1020 1641 +1020 1012 +1020 1573 +1020 1653 +1020 918 +1020 526 +2077 2077 +310 310 +442 394 +442 427 +442 146 +442 522 +2277 2197 +2277 509 +2277 682 +446 47 +446 354 +446 440 +446 83 +446 291 +446 278 +446 146 +446 366 +446 624 +394 47 +394 427 +394 146 +2074 2074 +1975 1975 +1096 1111 +1096 1110 +1096 1117 +1096 1131 +1096 1160 +1096 1189 +1096 2288 +1096 1110 +2288 708 +2288 2404 +2288 1310 +2288 2254 +2288 2288 +2288 344 +2288 526 +2288 2288 +2288 2288 +906 916 +1282 1282 +354 541 +354 440 +354 569 +354 446 +354 291 +354 278 +354 366 +354 2288 +1230 1346 +1230 960 +1230 489 +1230 1366 +2240 2240 +1951 1647 +1951 862 +1951 2299 +1790 1739 +1790 1794 +1790 1821 +1790 1835 +1790 1860 +1790 682 +939 1394 +939 1016 +939 960 +939 289 +939 975 +939 999 +939 964 +939 932 +939 975 +939 975 +6 393 +6 2147 +6 399 +6 708 +6 2330 +6 411 +6 2159 +6 63 +6 1647 +6 445 +6 2401 +6 2402 +6 1653 +6 2404 +6 1 +6 525 +6 7 +6 8 +6 9 +1786 1786 +161 161 +532 436 +532 1498 +532 459 +532 436 +532 436 +332 331 +1252 1252 +366 541 +366 393 +366 354 +366 440 +366 446 +366 291 +366 278 +366 146 +366 624 +259 259 +428 32 +428 427 +428 1525 +428 460 +1252 1261 +1252 1316 +1891 1891 +1891 69 +1891 775 +1891 489 +1891 1960 +1891 810 +1891 839 +1937 1929 +1937 1931 +2324 2333 +2324 2334 +2324 445 +2324 375 +83 23 +83 43 +83 83 +650 666 +650 772 +650 682 +2080 2193 +2039 2039 +2211 2092 +2211 2093 +2211 2209 +2211 2255 +2211 2276 +2211 2305 +2211 2211 +1906 1774 +1958 1905 +1958 1908 +1958 498 +1958 499 +1905 1908 +1905 1958 +1905 534 +1908 1905 +1908 1958 +273 273 +2059 2059 +2125 727 +2125 2214 +2125 2308 +377 186 +377 393 +377 458 +377 1926 +377 624 +769 494 +1776 1717 +1776 471 +1776 494 +1776 1832 +347 347 +2209 2093 +2209 445 +2209 2211 +2209 2255 +2209 2276 +2209 2305 +1418 1418 +616 568 +616 569 +616 615 +616 624 +616 526 +150 150 +1853 1853 +541 541 +1116 1115 +1116 1115 +1116 1115 +1351 1351 +753 753 +1759 393 +1759 400 +1759 1837 +1759 1784 +1759 1802 +1690 1690 +1950 1953 +1950 1954 +1950 1955 +1950 1956 +1950 1957 +1141 69 +1141 1525 +1141 1087 +1141 2062 +1141 1176 +1141 1177 +1141 1598 +287 287 +614 547 +614 623 +614 624 +614 526 +1486 416 +581 581 +1778 1755 +2057 2057 +1218 1208 +1218 1007 +1218 1385 +1218 1264 +1218 1231 +1218 1299 +1218 489 +1218 1234 +1218 1340 +1218 1350 +2165 2165 +146 31 +146 32 +146 399 +146 43 +146 47 +146 1493 +146 61 +146 75 +146 445 +146 91 +146 107 +146 109 +146 110 +146 119 +146 125 +146 846 +146 128 +146 140 +146 509 +146 159 +146 526 +146 185 +642 569 +642 635 +642 624 +1715 1715 +2333 2333 +1461 1461 +1975 1975 +1400 1403 +1400 1407 +1400 1412 +1400 1414 +1400 1417 +1400 1418 +1400 1420 +1400 1423 +1400 226 +1400 1430 +1400 228 +1400 1433 +1400 1434 +1400 1435 +1400 1440 +1400 1447 +1400 1446 +1400 233 +1400 235 +1400 1457 +1400 1465 +1400 1467 +1400 1479 +1400 245 +1400 1434 +1400 1434 +815 705 +815 723 +815 808 +815 729 +815 805 +2093 445 +2093 458 +2093 2209 +2093 2211 +2093 2247 +2093 2272 +2093 2276 +2093 2305 +1956 489 +1956 2233 +1956 1950 +1956 1953 +1956 1954 +1956 1955 +1956 1957 +1638 1535 +1638 1607 +1638 708 +1638 2330 +1638 1621 +1638 1627 +1638 1628 +1638 1629 +1638 1635 +1638 859 +1638 1637 +1638 1636 +1638 1658 +1638 1641 +1638 1525 +1638 1645 +1638 1646 +1638 1643 +1638 1648 +1638 1647 +1638 457 +1638 1654 +1638 1653 +1638 1661 +1638 1660 +1638 1 +1638 3 +1638 5 +1638 2104 +1638 1673 +1638 1527 +1638 525 +1638 1684 +1638 1685 +1638 859 +1638 859 +1638 859 +1870 1870 +176 393 +176 1621 +176 1643 +176 445 +176 1653 +176 526 +176 1684 +1957 1950 +1957 1953 +1957 1954 +1957 1955 +1957 1956 +670 670 +1954 1950 +1954 1953 +1954 1955 +1954 1956 +1954 1957 +1954 2302 +1275 1380 +1275 1573 +1275 1271 +1275 1331 +1275 1347 +406 697 +406 1717 +406 2107 +406 399 +406 400 +406 401 +406 406 +406 445 +406 525 +1155 1098 +1155 902 +1155 397 +1155 430 +1155 1064 +1155 464 +1155 984 +1155 787 +1155 1155 +1155 1155 +1007 399 +1007 353 +1007 1007 +1007 250 +1007 445 +1007 1007 +2046 393 +2046 1990 +2046 1995 +2046 2066 +2046 2074 +256 1007 +256 254 +256 257 +256 256 +256 256 +256 1007 +866 696 +866 708 +866 713 +866 1498 +866 866 +866 1509 +866 315 +866 866 +866 866 +866 866 +866 866 +697 445 +540 43 +540 409 +540 49 +540 61 +540 432 +540 440 +540 575 +540 449 +540 136 +540 505 +540 536 +540 538 +56 393 +56 56 +56 496 +56 383 +56 384 +2399 2394 +2399 1832 +391 14 +391 24 +391 393 +391 400 +391 1412 +391 76 +391 76 +391 808 +391 1417 +391 1434 +391 117 +391 1443 +391 781 +391 496 +391 805 +391 1465 +391 1467 +391 819 +391 391 +1953 1525 +1953 464 +1953 489 +1953 1950 +1953 1954 +1953 1955 +1953 1956 +1953 1957 +658 658 +1334 400 +1334 489 +1334 1245 +1334 1316 +1334 1326 +1334 1330 +1334 509 +1334 1334 +1334 1334 +257 249 +257 251 +257 2074 +1446 1398 +1446 1400 +1446 1404 +1446 220 +1446 1411 +1446 1412 +1446 1414 +1446 1416 +1446 1418 +1446 1420 +1446 1428 +1446 226 +1446 1430 +1446 228 +1446 1434 +1446 1439 +1446 1442 +1446 1443 +1446 1444 +1446 1445 +1446 1446 +1446 1449 +1446 1457 +1446 1458 +1446 1459 +1446 1460 +1446 1461 +1446 1465 +1446 1466 +1446 1467 +1446 1471 +1446 1475 +1446 1476 +1446 1478 +1446 1446 +1446 1465 +1446 1446 +1446 1465 +1446 1465 +252 253 +252 254 +252 255 +252 489 +252 259 +1207 1207 +942 942 +1955 2404 +1955 1950 +1955 1953 +1955 1954 +1955 1956 +1955 1957 +1955 1955 +671 671 +558 548 +558 554 +558 557 +558 568 +558 569 +558 579 +558 593 +558 600 +558 606 +558 624 +2086 2146 +2086 2159 +2086 2185 +185 26 +185 31 +185 123 +185 52 +185 69 +185 90 +185 107 +185 108 +185 124 +185 670 +185 155 +185 676 +89 19 +89 20 +89 26 +89 31 +89 52 +89 1412 +89 221 +89 89 +89 90 +89 96 +89 124 +89 682 +89 244 +89 185 +89 89 +89 89 +290 290 +2302 489 +2302 1952 +2302 510 +26 213 +26 31 +26 52 +26 221 +26 89 +26 228 +26 1443 +26 124 +26 155 +292 266 +292 713 +292 69 +292 292 +292 525 +1907 1901 +1907 1527 +635 642 +635 624 +215 215 +215 1722 +215 52 +215 69 +215 669 +215 1832 +215 215 +871 1611 +871 1641 +871 1653 +871 876 +744 1540 +744 742 +744 2220 +210 1901 +210 1647 +210 445 +210 489 +210 805 +210 819 +210 819 +210 210 +965 400 +965 405 +965 1421 +965 445 +965 458 +965 489 +965 874 +965 1466 +965 525 +965 965 +745 745 +502 405 +502 277 +502 960 +502 476 +502 489 +502 493 +502 624 +502 526 +1571 1551 +1571 1434 +1571 461 +1571 849 +1571 1571 +1571 1571 +553 553 +1952 473 +1952 2302 +1714 1714 +1430 1430 +115 399 +115 86 +115 95 +465 465 +424 424 +946 1573 +946 975 +946 515 +946 1478 +1194 1086 +1194 1086 +1194 1086 +303 1527 +643 569 +643 624 +1087 1141 +1087 2062 +1087 1176 +1520 476 +1010 771 +1010 1020 +1010 1641 +1010 1012 +1010 1653 +1010 918 +1010 526 +1065 1065 +1336 1573 +1388 1388 +213 213 +213 89 +213 445 +213 228 +213 229 +213 124 +213 235 +213 140 +213 247 +227 227 +227 228 +227 237 +277 277 +1435 1435 +0 0 +1777 1746 +1777 471 +262 509 +262 526 +97 393 +97 526 +1304 400 +1304 1645 +1304 1305 +2276 2092 +2276 2093 +2276 2159 +2276 445 +2276 2209 +2276 2211 +2276 2247 +2276 2255 +2276 2272 +2276 2273 +2276 2305 +368 451 +368 471 +368 368 +287 287 +729 729 +1077 1078 +1077 1079 +1077 489 +1077 1130 +1077 496 +1768 1823 +1768 393 +1768 1736 +1768 1727 +1768 1868 +1768 1732 +1768 1733 +1768 1846 +1768 1873 +1768 1874 +1768 1802 +1768 1803 +1768 1782 +1768 1781 +1768 1779 +1768 1812 +1768 1721 +1974 1974 +547 546 +547 568 +547 569 +547 622 +547 623 +547 624 +246 220 +246 1413 +246 224 +246 225 +246 226 +246 227 +246 228 +246 229 +246 232 +246 233 +246 235 +246 236 +246 1465 +246 1468 +246 241 +246 242 +246 243 +246 244 +246 245 +246 246 +246 247 +1412 1412 +877 1492 +296 713 +296 1679 +612 623 +2039 2039 +1712 1694 +1712 1695 +1712 1698 +1712 1699 +1712 1701 +1712 1702 +1712 1703 +1712 1706 +1712 1708 +1712 1711 +1712 493 +499 708 +499 498 +499 1958 +2039 2039 +1509 1509 +2069 2069 +1708 1706 +1708 1712 +67 16 +67 68 +67 445 +2275 2275 +2225 2148 +2225 2199 +2225 2293 +2225 2294 +2262 471 +880 306 +1090 1090 +880 880 +2378 489 +1324 1324 +779 391 +779 778 +779 808 +779 489 +779 711 +192 907 +1874 1823 +1874 393 +1874 1736 +1874 1868 +1874 1732 +1874 1733 +1874 1846 +1874 1873 +1874 1802 +1874 1803 +1874 1782 +1874 1781 +1874 1779 +1874 1812 +1874 1721 +1055 1055 +1846 1823 +1846 393 +1846 1736 +1846 1868 +1846 1732 +1846 1733 +1846 1873 +1846 1874 +1846 1802 +1846 1803 +1846 1782 +1846 1781 +1846 1779 +1846 1812 +1846 1721 +1779 1823 +1779 393 +1779 1736 +1779 1868 +1779 1732 +1779 1733 +1779 1846 +1779 1873 +1779 1874 +1779 1802 +1779 1803 +1779 1782 +1779 1781 +1779 1812 +1779 1721 +543 568 +543 624 +2152 706 +2152 526 +1749 1749 +33 33 +2323 887 +2323 325 +2323 922 +2323 972 +2323 932 +2323 1549 +62 216 +62 221 +62 107 +62 124 +1352 1352 +50 50 +1777 1777 +668 31 +668 663 +668 107 +668 670 +668 673 +668 682 +668 185 +2208 393 +2208 2101 +2208 2139 +2208 405 +2208 411 +2208 2188 +2208 2186 +2208 458 +2208 489 +2208 2274 +2208 6 +1305 1304 +1733 1823 +1733 393 +1733 1736 +1733 1868 +1733 1732 +1733 1846 +1733 1873 +1733 1874 +1733 1802 +1733 1803 +1733 1782 +1733 1781 +1733 1779 +1733 1812 +1733 1721 +1782 1823 +1782 393 +1782 1736 +1782 1868 +1782 1732 +1782 1733 +1782 1846 +1782 1873 +1782 1874 +1782 1802 +1782 1803 +1782 1781 +1782 1779 +1782 1812 +1782 1721 +1781 1800 +1781 1823 +1781 393 +1781 1736 +1781 1868 +1781 1732 +1781 1733 +1781 1846 +1781 1873 +1781 1874 +1781 1802 +1781 1803 +1781 1782 +1781 471 +1781 1831 +1781 1779 +1781 1812 +1781 1721 +1812 1823 +1812 393 +1812 1736 +1812 1868 +1812 1732 +1812 1733 +1812 1846 +1812 1873 +1812 1874 +1812 1802 +1812 1803 +1812 1782 +1812 1781 +1812 1779 +1812 1721 +201 201 +1304 1304 +1174 1174 +874 1126 +874 1832 +874 965 +2091 2126 +2091 2148 +2091 2174 +2091 2197 +2091 2091 +2091 2091 +276 276 +625 555 +625 556 +625 582 +625 595 +625 602 +625 609 +625 611 +625 617 +625 624 +437 1658 +437 733 +437 1897 +437 682 +1047 1047 +440 440 +195 1502 +195 734 +195 818 +195 1481 +1575 890 +1575 1555 +1575 1619 +1575 1626 +1575 1585 +1575 1592 +1575 515 +1575 1601 +1575 1575 +1575 1575 +82 186 +82 63 +82 100 +82 101 +82 133 +1188 1188 +1674 922 +1774 235 +1179 1179 +1089 1089 +101 101 +101 186 +101 26 +101 27 +101 31 +101 123 +101 43 +101 63 +101 166 +101 90 +101 100 +101 133 +101 1390 +101 1393 +101 100 +101 100 +2189 2163 +2189 2162 +2189 393 +2189 2306 +2189 2216 +2189 2202 +2189 2226 +2189 2314 +2189 2180 +2189 2151 +2153 2148 +2153 2154 +2153 2174 +1565 1565 +2172 2090 +2172 2148 +2172 2174 +2172 2197 +604 554 +604 558 +604 569 +604 592 +604 600 +604 603 +604 606 +604 624 +877 877 +990 990 +778 63 +778 960 +778 808 +778 779 +778 509 +778 711 +103 103 +1024 895 +1024 1064 +1024 1073 +1024 1269 +1024 1089 +1024 1095 +1024 2066 +1024 1190 +1024 1476 +2362 393 +2362 510 +2362 526 +1426 1422 +1426 1456 +1426 1467 +636 568 +2311 393 +2311 2122 +2311 2330 +2311 411 +2311 1648 +2311 1 +805 805 +2338 2338 +1919 1919 +1038 972 +2089 2089 +2274 2139 +2274 2197 +2016 1970 +2016 1972 +2016 1983 +2016 2004 +2016 2013 +2016 920 +2016 2014 +2016 2015 +2016 1262 +2016 2033 +2016 254 +2016 2060 +2016 1468 +2016 921 +2048 2048 +252 252 +2156 393 +2156 2202 +2156 2296 +2156 2312 +2163 393 +2163 1628 +2163 2202 +2163 2208 +2163 2314 +2163 2312 +2212 400 +2212 2175 +2212 2288 +1253 1224 +1253 1227 +1253 1228 +1253 1261 +1253 1255 +1253 1281 +1253 1316 +1253 1320 +1253 1330 +1253 1331 +1253 1351 +1253 1376 +2149 393 +2149 2330 +2149 1648 +2149 2191 +997 997 +1273 1273 +702 702 +1764 1764 +414 417 +414 57 +414 451 +414 471 +414 521 +716 1654 +716 1653 +716 1661 +716 1684 +1946 1946 +1948 1948 +1947 1919 +1947 1944 +1947 1946 +1947 1948 +1947 375 +1947 1947 +1542 1489 +1542 1540 +1542 1546 +1542 772 +1542 1490 +1542 1523 +1542 1517 +1542 510 +123 123 +2210 393 +2210 2330 +2210 2202 +2210 1648 +2210 2156 +2210 2151 +996 996 +780 780 +1560 1560 +978 978 +2346 2346 +2039 2039 +488 488 +1173 1173 +660 660 +2139 2139 +152 89 +816 816 +2327 1621 +2327 1641 +2327 1653 +2327 1801 +2327 3 +1078 1077 +1078 1079 +1078 1089 +1078 1173 +2291 2291 +2107 2107 +2173 445 +2173 2173 +1510 75 +1510 346 +1510 536 +2145 2145 +2089 2126 +2089 2139 +2089 2186 +2089 2197 +840 489 +1366 1366 +693 693 +2087 2087 +724 724 +1715 1715 +1400 1400 +2123 2123 +2105 2105 +2108 2108 +2109 2109 +2110 2110 +2111 2111 +2113 2113 +2116 2116 +2118 2118 +2114 2114 +2120 2120 +2121 2121 +2124 2124 +2129 2129 +2130 2130 +2132 2132 +2135 2135 +2137 2137 +2138 2138 +2146 2146 +2147 2147 +2141 2141 +2142 2142 +2143 2143 +1617 1617 +270 270 +2153 2153 +1040 1040 +408 408 +2331 2331 +2158 2158 +2160 2160 +1044 1044 +2161 2161 +1619 1619 +716 716 +2332 2332 +1901 1901 +1561 1561 +275 275 +562 562 +1625 1625 +1626 1626 +719 719 +1627 1627 +352 352 +1628 1628 +429 429 +906 906 +876 1641 +876 1653 +876 871 +986 986 +1573 2337 +1573 280 +1573 445 +1573 933 +1573 1573 +402 402 +2008 2008 +1520 1520 +1269 1269 diff --git a/GraphEmbedding-master/data/wiki/wiki_labels.txt b/GraphEmbedding-master/data/wiki/wiki_labels.txt new file mode 100644 index 0000000000000000000000000000000000000000..2328bd009dccb2e22696719dcd7f514799e5b246 --- /dev/null +++ b/GraphEmbedding-master/data/wiki/wiki_labels.txt @@ -0,0 +1,2405 @@ +0 8 +1 8 +2 8 +3 8 +4 8 +5 8 +6 8 +7 8 +8 8 +9 8 +10 8 +11 1 +12 1 +13 1 +14 1 +15 1 +16 1 +17 1 +18 1 +19 1 +20 1 +21 1 +22 1 +23 1 +24 1 +25 1 +26 1 +27 1 +28 1 +29 1 +30 1 +31 1 +32 1 +33 1 +34 1 +35 1 +36 1 +37 1 +38 1 +39 1 +40 1 +41 1 +42 1 +43 1 +44 1 +45 1 +46 1 +47 1 +48 1 +49 1 +50 1 +51 1 +52 1 +53 1 +54 1 +55 1 +56 1 +57 1 +58 1 +59 1 +60 1 +61 1 +62 1 +63 1 +64 1 +65 1 +66 1 +67 1 +68 1 +69 1 +70 1 +71 1 +72 1 +73 1 +74 1 +75 1 +76 1 +77 1 +78 1 +79 1 +80 1 +81 1 +82 1 +83 1 +84 1 +85 1 +86 1 +87 1 +88 1 +89 1 +90 1 +91 1 +92 1 +93 1 +94 1 +95 1 +96 1 +97 1 +98 1 +99 1 +100 1 +101 1 +102 1 +103 1 +104 1 +105 1 +106 1 +107 1 +108 1 +109 1 +110 1 +111 1 +112 1 +113 1 +114 1 +115 1 +116 1 +117 1 +118 1 +119 1 +120 1 +121 1 +122 1 +123 1 +124 1 +125 1 +126 1 +127 1 +128 1 +129 1 +130 1 +131 1 +132 1 +133 1 +134 1 +135 1 +136 1 +137 1 +138 1 +139 1 +140 1 +141 1 +142 1 +143 1 +144 1 +145 1 +146 1 +147 1 +148 1 +149 1 +150 1 +151 1 +152 1 +153 1 +154 1 +155 1 +156 1 +157 1 +158 1 +159 1 +160 1 +161 1 +162 1 +163 1 +164 1 +165 1 +166 1 +167 1 +168 1 +169 1 +170 1 +171 1 +172 1 +173 1 +174 1 +175 1 +176 1 +177 1 +178 1 +179 1 +180 1 +181 1 +182 1 +183 1 +184 1 +185 1 +186 1 +187 1 +188 1 +189 1 +190 0 +191 0 +192 0 +193 0 +194 0 +195 0 +196 0 +197 0 +198 0 +199 0 +200 0 +201 0 +202 0 +203 0 +204 0 +205 0 +206 0 +207 0 +208 0 +209 0 +210 0 +211 0 +212 0 +213 1 +214 1 +215 1 +216 1 +217 1 +218 1 +219 1 +220 1 +221 1 +222 1 +223 1 +224 1 +225 1 +226 1 +227 1 +228 1 +229 1 +230 1 +231 1 +232 1 +233 1 +234 1 +235 1 +236 1 +237 1 +238 1 +239 1 +240 1 +241 1 +242 1 +243 1 +244 1 +245 1 +246 1 +247 1 +248 6 +249 6 +250 6 +251 6 +252 6 +253 6 +254 6 +255 6 +256 6 +257 6 +258 6 +259 6 +260 6 +261 6 +262 6 +263 6 +264 6 +265 5 +266 5 +267 5 +268 5 +269 5 +270 5 +271 5 +272 5 +273 5 +274 5 +275 5 +276 5 +277 5 +278 5 +279 5 +280 5 +281 5 +282 5 +283 5 +284 5 +285 5 +286 5 +287 5 +288 5 +289 5 +290 5 +291 5 +292 5 +293 5 +294 5 +295 5 +296 5 +297 5 +298 5 +299 5 +300 5 +301 5 +302 5 +303 5 +304 5 +305 5 +306 5 +307 5 +308 5 +309 5 +310 5 +311 5 +312 5 +313 5 +314 5 +315 5 +316 5 +317 5 +318 13 +319 13 +320 13 +321 13 +322 13 +323 13 +324 13 +325 13 +326 13 +327 13 +328 13 +329 13 +330 13 +331 13 +332 13 +333 13 +334 13 +335 13 +336 13 +337 13 +338 13 +339 13 +340 13 +341 13 +342 13 +343 13 +344 13 +345 13 +346 13 +347 13 +348 6 +349 6 +350 6 +351 6 +352 6 +353 6 +354 6 +355 6 +356 6 +357 6 +358 6 +359 6 +360 6 +361 6 +362 6 +363 6 +364 6 +365 6 +366 6 +367 6 +368 6 +369 6 +370 6 +371 6 +372 6 +373 6 +374 6 +375 6 +376 6 +377 12 +378 12 +379 12 +380 12 +381 12 +382 12 +383 12 +384 12 +385 12 +386 15 +387 15 +388 15 +389 15 +390 15 +391 15 +392 15 +393 15 +394 15 +395 15 +396 15 +397 15 +398 15 +399 15 +400 15 +401 15 +402 15 +403 15 +404 15 +405 15 +406 15 +407 15 +408 15 +409 15 +410 15 +411 15 +412 15 +413 15 +414 15 +415 15 +416 15 +417 15 +418 15 +419 15 +420 15 +421 15 +422 15 +423 15 +424 15 +425 15 +426 15 +427 15 +428 15 +429 15 +430 15 +431 15 +432 15 +433 15 +434 15 +435 15 +436 15 +437 15 +438 15 +439 15 +440 15 +441 15 +442 15 +443 15 +444 15 +445 15 +446 15 +447 15 +448 15 +449 15 +450 15 +451 15 +452 15 +453 15 +454 15 +455 15 +456 15 +457 15 +458 15 +459 15 +460 15 +461 15 +462 15 +463 15 +464 15 +465 15 +466 15 +467 15 +468 15 +469 15 +470 15 +471 15 +472 15 +473 15 +474 15 +475 15 +476 15 +477 15 +478 15 +479 15 +480 15 +481 15 +482 15 +483 15 +484 15 +485 15 +486 15 +487 15 +488 15 +489 15 +490 15 +491 15 +492 15 +493 15 +494 15 +495 15 +496 15 +497 15 +498 15 +499 15 +500 15 +501 15 +502 15 +503 15 +504 15 +505 15 +506 15 +507 15 +508 15 +509 15 +510 15 +511 15 +512 15 +513 15 +514 15 +515 15 +516 15 +517 15 +518 15 +519 15 +520 15 +521 15 +522 15 +523 15 +524 15 +525 15 +526 15 +527 15 +528 15 +529 15 +530 15 +531 15 +532 15 +533 15 +534 15 +535 15 +536 15 +537 15 +538 15 +539 15 +540 15 +541 16 +542 16 +543 16 +544 16 +545 16 +546 16 +547 16 +548 16 +549 16 +550 16 +551 16 +552 16 +553 16 +554 16 +555 16 +556 16 +557 16 +558 16 +559 16 +560 16 +561 16 +562 16 +563 16 +564 16 +565 16 +566 16 +567 16 +568 16 +569 16 +570 16 +571 16 +572 16 +573 16 +574 16 +575 16 +576 16 +577 16 +578 16 +579 16 +580 16 +581 16 +582 16 +583 16 +584 16 +585 16 +586 16 +587 16 +588 16 +589 16 +590 16 +591 16 +592 16 +593 16 +594 16 +595 16 +596 16 +597 16 +598 16 +599 16 +600 16 +601 16 +602 16 +603 16 +604 16 +605 16 +606 16 +607 16 +608 16 +609 16 +610 16 +611 16 +612 16 +613 16 +614 16 +615 16 +616 16 +617 16 +618 16 +619 16 +620 16 +621 16 +622 16 +623 16 +624 16 +625 16 +626 16 +627 16 +628 16 +629 16 +630 16 +631 16 +632 16 +633 16 +634 16 +635 16 +636 16 +637 16 +638 16 +639 16 +640 16 +641 16 +642 16 +643 16 +644 16 +645 16 +646 16 +647 16 +648 16 +649 1 +650 1 +651 1 +652 1 +653 1 +654 1 +655 1 +656 1 +657 1 +658 1 +659 1 +660 1 +661 1 +662 1 +663 1 +664 1 +665 1 +666 1 +667 1 +668 1 +669 1 +670 1 +671 1 +672 1 +673 1 +674 1 +675 1 +676 1 +677 1 +678 1 +679 1 +680 1 +681 1 +682 1 +683 1 +684 1 +685 1 +686 1 +687 1 +688 1 +689 1 +690 1 +691 1 +692 1 +693 1 +694 1 +695 1 +696 1 +697 1 +698 1 +699 1 +700 1 +701 1 +702 1 +703 1 +704 1 +705 1 +706 1 +707 1 +708 1 +709 1 +710 1 +711 1 +712 1 +713 1 +714 1 +715 1 +716 1 +717 1 +718 1 +719 1 +720 1 +721 1 +722 1 +723 1 +724 1 +725 1 +726 1 +727 1 +728 1 +729 1 +730 1 +731 1 +732 1 +733 1 +734 1 +735 1 +736 1 +737 1 +738 1 +739 1 +740 1 +741 1 +742 1 +743 1 +744 1 +745 1 +746 1 +747 1 +748 1 +749 1 +750 1 +751 1 +752 1 +753 1 +754 1 +755 1 +756 1 +757 1 +758 1 +759 1 +760 1 +761 1 +762 1 +763 1 +764 1 +765 1 +766 1 +767 1 +768 1 +769 1 +770 1 +771 1 +772 1 +773 1 +774 1 +775 1 +776 1 +777 1 +778 1 +779 1 +780 1 +781 1 +782 1 +783 1 +784 1 +785 1 +786 1 +787 1 +788 1 +789 1 +790 1 +791 1 +792 1 +793 1 +794 1 +795 1 +796 1 +797 1 +798 1 +799 1 +800 1 +801 1 +802 1 +803 1 +804 1 +805 1 +806 1 +807 1 +808 1 +809 1 +810 1 +811 1 +812 1 +813 1 +814 1 +815 1 +816 1 +817 1 +818 1 +819 1 +820 1 +821 1 +822 1 +823 1 +824 1 +825 1 +826 1 +827 1 +828 1 +829 1 +830 1 +831 1 +832 1 +833 1 +834 1 +835 1 +836 1 +837 1 +838 1 +839 1 +840 1 +841 9 +842 9 +843 9 +844 9 +845 9 +846 9 +847 9 +848 9 +849 9 +850 9 +851 9 +852 10 +853 10 +854 10 +855 10 +856 10 +857 10 +858 10 +859 10 +860 10 +861 10 +862 10 +863 10 +864 10 +865 10 +866 10 +867 10 +868 10 +869 10 +870 10 +871 10 +872 10 +873 10 +874 10 +875 10 +876 10 +877 10 +878 10 +879 10 +880 10 +881 10 +882 5 +883 5 +884 5 +885 5 +886 5 +887 5 +888 5 +889 5 +890 5 +891 5 +892 5 +893 5 +894 5 +895 5 +896 5 +897 5 +898 5 +899 5 +900 5 +901 5 +902 5 +903 5 +904 5 +905 5 +906 5 +907 5 +908 5 +909 5 +910 5 +911 5 +912 5 +913 5 +914 5 +915 5 +916 5 +917 5 +918 5 +919 5 +920 5 +921 5 +922 5 +923 5 +924 5 +925 5 +926 5 +927 5 +928 5 +929 5 +930 5 +931 5 +932 5 +933 5 +934 5 +935 5 +936 5 +937 5 +938 5 +939 5 +940 5 +941 5 +942 5 +943 5 +944 5 +945 5 +946 5 +947 5 +948 5 +949 5 +950 5 +951 5 +952 5 +953 5 +954 5 +955 5 +956 5 +957 5 +958 5 +959 5 +960 5 +961 5 +962 5 +963 5 +964 5 +965 5 +966 5 +967 5 +968 5 +969 5 +970 5 +971 5 +972 5 +973 5 +974 5 +975 5 +976 5 +977 5 +978 5 +979 5 +980 5 +981 5 +982 5 +983 5 +984 5 +985 5 +986 5 +987 5 +988 5 +989 5 +990 5 +991 5 +992 5 +993 5 +994 5 +995 5 +996 5 +997 5 +998 5 +999 5 +1000 5 +1001 5 +1002 5 +1003 5 +1004 3 +1005 3 +1006 3 +1007 3 +1008 3 +1009 3 +1010 3 +1011 3 +1012 3 +1013 3 +1014 3 +1015 3 +1016 3 +1017 3 +1018 3 +1019 3 +1020 3 +1021 5 +1022 5 +1023 5 +1024 5 +1025 5 +1026 5 +1027 5 +1028 5 +1029 5 +1030 5 +1031 5 +1032 5 +1033 5 +1034 5 +1035 5 +1036 5 +1037 5 +1038 5 +1039 5 +1040 5 +1041 5 +1042 5 +1043 5 +1044 5 +1045 5 +1046 5 +1047 5 +1048 5 +1049 5 +1050 5 +1051 5 +1052 5 +1053 5 +1054 5 +1055 5 +1056 5 +1057 5 +1058 5 +1059 5 +1060 5 +1061 5 +1062 5 +1063 5 +1064 5 +1065 5 +1066 5 +1067 5 +1068 5 +1069 5 +1070 5 +1071 5 +1072 5 +1073 5 +1074 5 +1075 5 +1076 5 +1077 5 +1078 5 +1079 5 +1080 5 +1081 5 +1082 5 +1083 5 +1084 5 +1085 5 +1086 5 +1087 5 +1088 5 +1089 5 +1090 5 +1091 5 +1092 5 +1093 5 +1094 5 +1095 5 +1096 5 +1097 5 +1098 5 +1099 5 +1100 5 +1101 5 +1102 5 +1103 5 +1104 5 +1105 5 +1106 5 +1107 5 +1108 5 +1109 5 +1110 5 +1111 5 +1112 5 +1113 5 +1114 5 +1115 5 +1116 5 +1117 5 +1118 5 +1119 5 +1120 5 +1121 5 +1122 5 +1123 5 +1124 5 +1125 5 +1126 5 +1127 5 +1128 5 +1129 5 +1130 5 +1131 5 +1132 5 +1133 5 +1134 5 +1135 5 +1136 5 +1137 5 +1138 5 +1139 5 +1140 5 +1141 5 +1142 5 +1143 5 +1144 5 +1145 5 +1146 5 +1147 5 +1148 5 +1149 5 +1150 5 +1151 5 +1152 5 +1153 5 +1154 5 +1155 5 +1156 5 +1157 5 +1158 5 +1159 5 +1160 5 +1161 5 +1162 5 +1163 5 +1164 5 +1165 5 +1166 5 +1167 5 +1168 5 +1169 5 +1170 5 +1171 5 +1172 5 +1173 5 +1174 5 +1175 5 +1176 5 +1177 5 +1178 5 +1179 5 +1180 5 +1181 5 +1182 5 +1183 5 +1184 5 +1185 5 +1186 5 +1187 5 +1188 5 +1189 5 +1190 5 +1191 5 +1192 5 +1193 5 +1194 5 +1195 5 +1196 5 +1197 5 +1198 5 +1199 5 +1200 5 +1201 5 +1202 5 +1203 5 +1204 5 +1205 5 +1206 5 +1207 11 +1208 11 +1209 11 +1210 11 +1211 11 +1212 11 +1213 11 +1214 11 +1215 11 +1216 11 +1217 11 +1218 11 +1219 11 +1220 11 +1221 11 +1222 11 +1223 11 +1224 11 +1225 11 +1226 11 +1227 11 +1228 11 +1229 11 +1230 11 +1231 11 +1232 11 +1233 11 +1234 11 +1235 11 +1236 11 +1237 11 +1238 11 +1239 11 +1240 11 +1241 11 +1242 11 +1243 11 +1244 11 +1245 11 +1246 11 +1247 11 +1248 11 +1249 11 +1250 11 +1251 11 +1252 11 +1253 11 +1254 11 +1255 11 +1256 11 +1257 11 +1258 11 +1259 11 +1260 11 +1261 11 +1262 11 +1263 11 +1264 11 +1265 11 +1266 11 +1267 11 +1268 11 +1269 11 +1270 11 +1271 11 +1272 11 +1273 11 +1274 11 +1275 11 +1276 11 +1277 11 +1278 11 +1279 11 +1280 11 +1281 11 +1282 11 +1283 11 +1284 11 +1285 11 +1286 11 +1287 11 +1288 11 +1289 11 +1290 11 +1291 11 +1292 11 +1293 11 +1294 11 +1295 11 +1296 11 +1297 11 +1298 11 +1299 11 +1300 11 +1301 11 +1302 11 +1303 11 +1304 11 +1305 11 +1306 11 +1307 11 +1308 11 +1309 11 +1310 11 +1311 11 +1312 11 +1313 11 +1314 11 +1315 11 +1316 11 +1317 11 +1318 11 +1319 11 +1320 11 +1321 11 +1322 11 +1323 11 +1324 11 +1325 11 +1326 11 +1327 11 +1328 11 +1329 11 +1330 11 +1331 11 +1332 11 +1333 11 +1334 11 +1335 11 +1336 11 +1337 11 +1338 11 +1339 11 +1340 11 +1341 11 +1342 11 +1343 11 +1344 11 +1345 11 +1346 11 +1347 11 +1348 11 +1349 11 +1350 11 +1351 11 +1352 11 +1353 11 +1354 11 +1355 11 +1356 11 +1357 11 +1358 11 +1359 11 +1360 11 +1361 11 +1362 11 +1363 11 +1364 11 +1365 11 +1366 11 +1367 11 +1368 11 +1369 11 +1370 11 +1371 11 +1372 11 +1373 11 +1374 11 +1375 11 +1376 11 +1377 11 +1378 11 +1379 11 +1380 11 +1381 11 +1382 11 +1383 11 +1384 11 +1385 11 +1386 4 +1387 4 +1388 4 +1389 4 +1390 4 +1391 4 +1392 4 +1393 4 +1394 4 +1395 4 +1396 3 +1397 3 +1398 3 +1399 3 +1400 3 +1401 3 +1402 3 +1403 3 +1404 3 +1405 3 +1406 3 +1407 3 +1408 3 +1409 3 +1410 3 +1411 3 +1412 3 +1413 3 +1414 3 +1415 3 +1416 3 +1417 3 +1418 3 +1419 3 +1420 3 +1421 3 +1422 3 +1423 3 +1424 3 +1425 3 +1426 3 +1427 3 +1428 3 +1429 3 +1430 3 +1431 3 +1432 3 +1433 3 +1434 3 +1435 3 +1436 3 +1437 3 +1438 3 +1439 3 +1440 3 +1441 3 +1442 3 +1443 3 +1444 3 +1445 3 +1446 3 +1447 3 +1448 3 +1449 3 +1450 3 +1451 3 +1452 3 +1453 3 +1454 3 +1455 3 +1456 3 +1457 3 +1458 3 +1459 3 +1460 3 +1461 3 +1462 3 +1463 3 +1464 3 +1465 3 +1466 3 +1467 3 +1468 3 +1469 3 +1470 3 +1471 3 +1472 3 +1473 3 +1474 3 +1475 3 +1476 3 +1477 3 +1478 3 +1479 3 +1480 3 +1481 3 +1482 0 +1483 0 +1484 0 +1485 0 +1486 0 +1487 0 +1488 0 +1489 0 +1490 0 +1491 0 +1492 0 +1493 0 +1494 0 +1495 0 +1496 0 +1497 0 +1498 0 +1499 0 +1500 0 +1501 0 +1502 0 +1503 0 +1504 0 +1505 0 +1506 0 +1507 0 +1508 0 +1509 0 +1510 0 +1511 0 +1512 0 +1513 0 +1514 0 +1515 0 +1516 0 +1517 0 +1518 0 +1519 0 +1520 0 +1521 0 +1522 0 +1523 0 +1524 0 +1525 0 +1526 0 +1527 0 +1528 0 +1529 0 +1530 0 +1531 0 +1532 0 +1533 0 +1534 0 +1535 0 +1536 0 +1537 0 +1538 0 +1539 0 +1540 0 +1541 0 +1542 0 +1543 0 +1544 0 +1545 0 +1546 0 +1547 0 +1548 0 +1549 0 +1550 0 +1551 7 +1552 7 +1553 7 +1554 7 +1555 7 +1556 7 +1557 7 +1558 7 +1559 7 +1560 7 +1561 7 +1562 7 +1563 7 +1564 7 +1565 7 +1566 7 +1567 7 +1568 7 +1569 7 +1570 7 +1571 7 +1572 7 +1573 7 +1574 7 +1575 7 +1576 7 +1577 7 +1578 7 +1579 7 +1580 7 +1581 7 +1582 7 +1583 7 +1584 7 +1585 7 +1586 7 +1587 7 +1588 7 +1589 7 +1590 7 +1591 7 +1592 7 +1593 7 +1594 7 +1595 7 +1596 7 +1597 7 +1598 7 +1599 7 +1600 7 +1601 7 +1602 7 +1603 7 +1604 8 +1605 8 +1606 8 +1607 8 +1608 8 +1609 8 +1610 8 +1611 8 +1612 8 +1613 8 +1614 8 +1615 8 +1616 8 +1617 8 +1618 8 +1619 8 +1620 8 +1621 8 +1622 8 +1623 8 +1624 8 +1625 8 +1626 8 +1627 8 +1628 8 +1629 8 +1630 8 +1631 8 +1632 8 +1633 8 +1634 8 +1635 8 +1636 8 +1637 8 +1638 8 +1639 8 +1640 8 +1641 8 +1642 8 +1643 8 +1644 8 +1645 8 +1646 8 +1647 8 +1648 8 +1649 8 +1650 8 +1651 8 +1652 8 +1653 8 +1654 8 +1655 8 +1656 8 +1657 8 +1658 8 +1659 8 +1660 8 +1661 8 +1662 8 +1663 8 +1664 8 +1665 8 +1666 8 +1667 8 +1668 8 +1669 8 +1670 8 +1671 8 +1672 8 +1673 8 +1674 8 +1675 8 +1676 8 +1677 8 +1678 8 +1679 8 +1680 8 +1681 8 +1682 8 +1683 8 +1684 8 +1685 8 +1686 8 +1687 2 +1688 2 +1689 2 +1690 2 +1691 2 +1692 2 +1693 2 +1694 2 +1695 2 +1696 2 +1697 2 +1698 2 +1699 2 +1700 2 +1701 2 +1702 2 +1703 2 +1704 2 +1705 2 +1706 2 +1707 2 +1708 2 +1709 2 +1710 2 +1711 2 +1712 2 +1713 2 +1714 2 +1715 2 +1716 2 +1717 2 +1718 2 +1719 2 +1720 2 +1721 2 +1722 2 +1723 2 +1724 2 +1725 2 +1726 2 +1727 2 +1728 2 +1729 2 +1730 2 +1731 2 +1732 2 +1733 2 +1734 2 +1735 2 +1736 2 +1737 2 +1738 2 +1739 2 +1740 2 +1741 2 +1742 2 +1743 2 +1744 2 +1745 2 +1746 2 +1747 2 +1748 2 +1749 2 +1750 2 +1751 2 +1752 2 +1753 2 +1754 2 +1755 2 +1756 2 +1757 2 +1758 2 +1759 2 +1760 2 +1761 2 +1762 2 +1763 2 +1764 2 +1765 2 +1766 2 +1767 2 +1768 2 +1769 2 +1770 2 +1771 2 +1772 2 +1773 2 +1774 2 +1775 2 +1776 2 +1777 2 +1778 2 +1779 2 +1780 2 +1781 2 +1782 2 +1783 2 +1784 2 +1785 2 +1786 2 +1787 2 +1788 2 +1789 2 +1790 2 +1791 2 +1792 2 +1793 2 +1794 2 +1795 2 +1796 2 +1797 2 +1798 2 +1799 2 +1800 2 +1801 2 +1802 2 +1803 2 +1804 2 +1805 2 +1806 2 +1807 2 +1808 2 +1809 2 +1810 2 +1811 2 +1812 2 +1813 2 +1814 2 +1815 2 +1816 2 +1817 2 +1818 2 +1819 2 +1820 2 +1821 2 +1822 2 +1823 2 +1824 2 +1825 2 +1826 2 +1827 2 +1828 2 +1829 2 +1830 2 +1831 2 +1832 2 +1833 2 +1834 2 +1835 2 +1836 2 +1837 2 +1838 2 +1839 2 +1840 2 +1841 2 +1842 2 +1843 2 +1844 2 +1845 2 +1846 2 +1847 2 +1848 2 +1849 2 +1850 2 +1851 2 +1852 2 +1853 2 +1854 2 +1855 2 +1856 2 +1857 2 +1858 2 +1859 2 +1860 2 +1861 2 +1862 2 +1863 2 +1864 2 +1865 2 +1866 2 +1867 2 +1868 2 +1869 2 +1870 2 +1871 2 +1872 2 +1873 2 +1874 2 +1875 2 +1876 2 +1877 2 +1878 2 +1879 2 +1880 2 +1881 2 +1882 2 +1883 2 +1884 2 +1885 2 +1886 2 +1887 2 +1888 2 +1889 2 +1890 14 +1891 14 +1892 14 +1893 14 +1894 14 +1895 14 +1896 14 +1897 14 +1898 14 +1899 14 +1900 14 +1901 14 +1902 14 +1903 14 +1904 14 +1905 14 +1906 14 +1907 14 +1908 14 +1909 14 +1910 14 +1911 14 +1912 14 +1913 14 +1914 14 +1915 14 +1916 14 +1917 14 +1918 14 +1919 14 +1920 14 +1921 14 +1922 14 +1923 14 +1924 14 +1925 14 +1926 14 +1927 14 +1928 14 +1929 14 +1930 14 +1931 14 +1932 14 +1933 14 +1934 14 +1935 14 +1936 14 +1937 14 +1938 14 +1939 14 +1940 14 +1941 14 +1942 14 +1943 14 +1944 14 +1945 14 +1946 14 +1947 14 +1948 14 +1949 14 +1950 14 +1951 14 +1952 14 +1953 14 +1954 14 +1955 14 +1956 14 +1957 14 +1958 14 +1959 14 +1960 14 +1961 14 +1962 14 +1963 14 +1964 14 +1965 14 +1966 14 +1967 6 +1968 6 +1969 6 +1970 6 +1971 6 +1972 6 +1973 6 +1974 6 +1975 6 +1976 6 +1977 6 +1978 6 +1979 6 +1980 6 +1981 6 +1982 6 +1983 6 +1984 6 +1985 6 +1986 6 +1987 6 +1988 6 +1989 6 +1990 6 +1991 6 +1992 6 +1993 6 +1994 6 +1995 6 +1996 6 +1997 6 +1998 6 +1999 6 +2000 6 +2001 6 +2002 6 +2003 6 +2004 6 +2005 6 +2006 6 +2007 6 +2008 6 +2009 6 +2010 6 +2011 6 +2012 6 +2013 6 +2014 6 +2015 6 +2016 6 +2017 6 +2018 6 +2019 6 +2020 6 +2021 6 +2022 6 +2023 6 +2024 6 +2025 6 +2026 6 +2027 6 +2028 6 +2029 6 +2030 6 +2031 6 +2032 6 +2033 6 +2034 6 +2035 6 +2036 6 +2037 6 +2038 6 +2039 6 +2040 6 +2041 6 +2042 6 +2043 6 +2044 6 +2045 6 +2046 6 +2047 6 +2048 6 +2049 6 +2050 6 +2051 6 +2052 6 +2053 6 +2054 6 +2055 6 +2056 6 +2057 6 +2058 6 +2059 6 +2060 6 +2061 6 +2062 6 +2063 6 +2064 6 +2065 6 +2066 6 +2067 6 +2068 6 +2069 6 +2070 6 +2071 6 +2072 6 +2073 6 +2074 6 +2075 6 +2076 6 +2077 6 +2078 10 +2079 10 +2080 10 +2081 10 +2082 10 +2083 10 +2084 10 +2085 10 +2086 10 +2087 10 +2088 10 +2089 10 +2090 10 +2091 10 +2092 10 +2093 10 +2094 10 +2095 10 +2096 10 +2097 10 +2098 10 +2099 10 +2100 10 +2101 10 +2102 10 +2103 10 +2104 10 +2105 10 +2106 10 +2107 10 +2108 10 +2109 10 +2110 10 +2111 10 +2112 10 +2113 10 +2114 10 +2115 10 +2116 10 +2117 10 +2118 10 +2119 10 +2120 10 +2121 10 +2122 10 +2123 10 +2124 10 +2125 10 +2126 10 +2127 10 +2128 10 +2129 10 +2130 10 +2131 10 +2132 10 +2133 10 +2134 10 +2135 10 +2136 10 +2137 10 +2138 10 +2139 10 +2140 10 +2141 10 +2142 10 +2143 10 +2144 10 +2145 10 +2146 10 +2147 10 +2148 10 +2149 10 +2150 10 +2151 10 +2152 10 +2153 10 +2154 10 +2155 10 +2156 10 +2157 10 +2158 10 +2159 10 +2160 10 +2161 10 +2162 10 +2163 10 +2164 10 +2165 10 +2166 10 +2167 10 +2168 10 +2169 10 +2170 10 +2171 10 +2172 10 +2173 10 +2174 10 +2175 10 +2176 10 +2177 10 +2178 10 +2179 10 +2180 10 +2181 10 +2182 10 +2183 10 +2184 10 +2185 10 +2186 10 +2187 10 +2188 10 +2189 10 +2190 10 +2191 10 +2192 10 +2193 10 +2194 10 +2195 10 +2196 10 +2197 10 +2198 10 +2199 10 +2200 10 +2201 10 +2202 10 +2203 10 +2204 10 +2205 10 +2206 10 +2207 10 +2208 10 +2209 10 +2210 10 +2211 10 +2212 10 +2213 10 +2214 10 +2215 10 +2216 10 +2217 10 +2218 10 +2219 10 +2220 10 +2221 10 +2222 10 +2223 10 +2224 10 +2225 10 +2226 10 +2227 10 +2228 10 +2229 10 +2230 10 +2231 10 +2232 10 +2233 10 +2234 10 +2235 10 +2236 10 +2237 10 +2238 10 +2239 10 +2240 10 +2241 10 +2242 10 +2243 10 +2244 10 +2245 10 +2246 10 +2247 10 +2248 10 +2249 10 +2250 10 +2251 10 +2252 10 +2253 10 +2254 10 +2255 10 +2256 10 +2257 10 +2258 10 +2259 10 +2260 10 +2261 10 +2262 10 +2263 10 +2264 10 +2265 10 +2266 10 +2267 10 +2268 10 +2269 10 +2270 10 +2271 10 +2272 10 +2273 10 +2274 10 +2275 10 +2276 10 +2277 10 +2278 10 +2279 10 +2280 10 +2281 10 +2282 10 +2283 10 +2284 10 +2285 10 +2286 10 +2287 10 +2288 10 +2289 10 +2290 10 +2291 10 +2292 10 +2293 10 +2294 10 +2295 10 +2296 10 +2297 10 +2298 10 +2299 10 +2300 10 +2301 10 +2302 10 +2303 10 +2304 10 +2305 10 +2306 10 +2307 10 +2308 10 +2309 10 +2310 10 +2311 10 +2312 10 +2313 10 +2314 10 +2315 10 +2316 10 +2317 15 +2318 15 +2319 15 +2320 15 +2321 15 +2322 15 +2323 15 +2324 15 +2325 15 +2326 15 +2327 15 +2328 15 +2329 15 +2330 15 +2331 15 +2332 15 +2333 15 +2334 15 +2335 15 +2336 15 +2337 15 +2338 15 +2339 15 +2340 15 +2341 15 +2342 15 +2343 15 +2344 15 +2345 15 +2346 15 +2347 15 +2348 15 +2349 15 +2350 15 +2351 15 +2352 15 +2353 15 +2354 15 +2355 15 +2356 15 +2357 15 +2358 15 +2359 15 +2360 15 +2361 15 +2362 15 +2363 15 +2364 15 +2365 15 +2366 15 +2367 15 +2368 15 +2369 15 +2370 15 +2371 15 +2372 15 +2373 15 +2374 15 +2375 15 +2376 15 +2377 15 +2378 15 +2379 15 +2380 15 +2381 15 +2382 15 +2383 15 +2384 15 +2385 15 +2386 15 +2387 15 +2388 15 +2389 15 +2390 8 +2391 8 +2392 8 +2393 8 +2394 8 +2395 8 +2396 8 +2397 8 +2398 8 +2399 8 +2400 8 +2401 8 +2402 8 +2403 8 +2404 8 diff --git a/GraphEmbedding-master/examples/__init__.py b/GraphEmbedding-master/examples/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..7239a6e1bcd2aae713a914e8e0e37de2161b01f5 --- /dev/null +++ b/GraphEmbedding-master/examples/__init__.py @@ -0,0 +1,9 @@ +from .models import * +from .deepwalk import DeepWalk +from .node2vec import Node2Vec +from .line import LINE +from .sdne import SDNE +from .struc2vec import Struc2Vec + + +__all__ = ["DeepWalk", "Node2Vec", "LINE", "SDNE", "Struc2Vec"] \ No newline at end of file diff --git a/GraphEmbedding-master/examples/alias.py b/GraphEmbedding-master/examples/alias.py new file mode 100644 index 0000000000000000000000000000000000000000..87dc923fec998bf2fd0c4f8e2c2f9fdb94990168 --- /dev/null +++ b/GraphEmbedding-master/examples/alias.py @@ -0,0 +1,54 @@ +import numpy as np + + +def create_alias_table(area_ratio): + """ + + :param area_ratio: sum(area_ratio)=1 + :return: accept,alias + """ + l = len(area_ratio) + accept, alias = [0] * l, [0] * l + small, large = [], [] + area_ratio_ = np.array(area_ratio) * l + for i, prob in enumerate(area_ratio_): + if prob < 1.0: + small.append(i) + else: + large.append(i) + + while small and large: + small_idx, large_idx = small.pop(), large.pop() + accept[small_idx] = area_ratio_[small_idx] + alias[small_idx] = large_idx + area_ratio_[large_idx] = area_ratio_[large_idx] - \ + (1 - area_ratio_[small_idx]) + if area_ratio_[large_idx] < 1.0: + small.append(large_idx) + else: + large.append(large_idx) + + while large: + large_idx = large.pop() + accept[large_idx] = 1 + while small: + small_idx = small.pop() + accept[small_idx] = 1 + + return accept, alias + + +def alias_sample(accept, alias): + """ + + :param accept: + :param alias: + :return: data_train index + """ + N = len(accept) + i = int(np.random.random()*N) + r = np.random.random() + if r < accept[i]: + return i + else: + return alias[i] diff --git a/GraphEmbedding-master/examples/classify.py b/GraphEmbedding-master/examples/classify.py new file mode 100644 index 0000000000000000000000000000000000000000..eb2bc67bd0d53087974d22a191468acf5cbfeaa4 --- /dev/null +++ b/GraphEmbedding-master/examples/classify.py @@ -0,0 +1,85 @@ +from __future__ import print_function + + +import numpy +from sklearn.metrics import f1_score, accuracy_score +from sklearn.multiclass import OneVsRestClassifier +from sklearn.preprocessing import MultiLabelBinarizer + + +class TopKRanker(OneVsRestClassifier): + def predict(self, X, top_k_list): + probs = numpy.asarray(super(TopKRanker, self).predict_proba(X)) + all_labels = [] + for i, k in enumerate(top_k_list): + probs_ = probs[i, :] + labels = self.classes_[probs_.argsort()[-k:]].tolist() + probs_[:] = 0 + probs_[labels] = 1 + all_labels.append(probs_) + return numpy.asarray(all_labels) + + +class Classifier(object): + + def __init__(self, embeddings, clf): + self.embeddings = embeddings + self.clf = TopKRanker(clf) + self.binarizer = MultiLabelBinarizer(sparse_output=True) + + def train(self, X, Y, Y_all): + self.binarizer.fit(Y_all) + X_train = [self.embeddings[x] for x in X] + Y = self.binarizer.transform(Y) + self.clf.fit(X_train, Y) + + def evaluate(self, X, Y): + top_k_list = [len(l) for l in Y] + Y_ = self.predict(X, top_k_list) + Y = self.binarizer.transform(Y) + averages = ["micro", "macro", "samples", "weighted"] + results = {} + for average in averages: + results[average] = f1_score(Y, Y_, average=average) + results['acc'] = accuracy_score(Y,Y_) + print('-------------------') + print(results) + return results + print('-------------------') + + def predict(self, X, top_k_list): + X_ = numpy.asarray([self.embeddings[x] for x in X]) + Y = self.clf.predict(X_, top_k_list=top_k_list) + return Y + + def split_train_evaluate(self, X, Y, train_precent, seed=0): + state = numpy.random.get_state() + + training_size = int(train_precent * len(X)) + numpy.random.seed(seed) + shuffle_indices = numpy.random.permutation(numpy.arange(len(X))) + X_train = [X[shuffle_indices[i]] for i in range(training_size)] + Y_train = [Y[shuffle_indices[i]] for i in range(training_size)] + X_test = [X[shuffle_indices[i]] for i in range(training_size, len(X))] + Y_test = [Y[shuffle_indices[i]] for i in range(training_size, len(X))] + + self.train(X_train, Y_train, Y) + numpy.random.set_state(state) + return self.evaluate(X_test, Y_test) + + +def read_node_label(filename, skip_head=False): + fin = open(filename, 'r') + X = [] + Y = [] + while 1: + if skip_head: + fin.readline() + l = fin.readline() + if l == '': + break + vec = l.strip().split(' ') + X.append(vec[0]) + Y.append(vec[1:]) + fin.close() + return X, Y diff --git a/GraphEmbedding-master/examples/deepwalk.py b/GraphEmbedding-master/examples/deepwalk.py new file mode 100644 index 0000000000000000000000000000000000000000..001e05baa165ae14a7314dcd0c99bf1b76b8b68e --- /dev/null +++ b/GraphEmbedding-master/examples/deepwalk.py @@ -0,0 +1,63 @@ +# -*- coding:utf-8 -*- + +""" + + + +Author: + + Weichen Shen,wcshen1994@163.com + + + +Reference: + + [1] Perozzi B, Al-Rfou R, Skiena S. Deepwalk: Online learning of social representations[C]//Proceedings of the 20th ACM SIGKDD international conference on Knowledge discovery and data mining. ACM, 2014: 701-710.(http://www.perozzi.net/publications/14_kdd_deepwalk.pdf) + + + +""" +import walker +from gensim.models import Word2Vec +import pandas as pd + + +class DeepWalk: + def __init__(self, graph, walk_length, num_walks, workers=16): + + self.graph = graph + self.w2v_model = None + self._embeddings = {} + self.walker = walker.RandomWalker( + graph, p=1, q=1, ) + self.sentences = self.walker.simulate_walks( + num_walks=num_walks, walk_length=walk_length, workers=workers, verbose=1) + + def train(self, embed_size=6, window_size=5, workers=16, iter=4, **kwargs): + + kwargs["sentences"] = self.sentences + kwargs["min_count"] = kwargs.get("min_count", 0) + kwargs["size"] = embed_size + kwargs["sg"] = 1 # skip gram + kwargs["hs"] = 1 # deepwalk use Hierarchical Softmax + kwargs["workers"] = workers + kwargs["window"] = window_size + kwargs["iter"] = iter + + print("Learning embedding vectors...") + model = Word2Vec(**kwargs) + print("Learning embedding vectors done!") + + self.w2v_model = model + return model + + def get_embeddings(self,): + if self.w2v_model is None: + print("model not train") + return {} + + self._embeddings = {} + for word in self.graph.nodes(): + self._embeddings[word] = self.w2v_model.wv[word] + + return self._embeddings diff --git a/GraphEmbedding-master/examples/deepwalk_wiki.py b/GraphEmbedding-master/examples/deepwalk_wiki.py new file mode 100644 index 0000000000000000000000000000000000000000..849c9bd56a135f403352b6053c7941cfcb67b216 --- /dev/null +++ b/GraphEmbedding-master/examples/deepwalk_wiki.py @@ -0,0 +1,106 @@ + +import numpy as np +import time +from sklearn.linear_model import LogisticRegression +import classify +import deepwalk +import matplotlib.pyplot as plt +import networkx as nx +from sklearn.manifold import TSNE +from gensim.models import Word2Vec +from multiprocessing import Pool +from itertools import repeat + +def evaluate_embeddings(embeddings): + X, Y = classify.read_node_label('../data/wiki/wiki_labels.txt') + tr_frac = 0.8 + print("Training classifier using {:.2f}% nodes...".format( + tr_frac * 100)) + clf = classify.Classifier(embeddings=embeddings, clf=LogisticRegression()) + clf.split_train_evaluate(X, Y, tr_frac) + +def read(arr): + G = nx.Graph() + for a in arr: + print(a[0]) + if not G.has_node(a[0]): + G.add_node(a[0]) + if not G.has_node(a[1]): + G.add_node(a[1]) + G.add_edge(a[0],a[1],weight=1) + return G + +def plot_embeddings(embeddings,): + X, Y = classify.read_node_label('../data/wiki/wiki_labels.txt') + + emb_list = [] + for k in X: + emb_list.append(embeddings[k]) + emb_list = np.array(emb_list) + print(emb_list.shape) + + model = TSNE(n_components=2) + node_pos = model.fit_transform(emb_list) + + color_idx = {} + for i in range(len(X)): + color_idx.setdefault(Y[i][0], []) + color_idx[Y[i][0]].append(i) + + for c, idx in color_idx.items(): + plt.scatter(node_pos[idx, 0], node_pos[idx, 1], label=c) + plt.legend() + plt.show() +def Affect(z,i): + #for i in z.wv.index2entity: + # key = i + 1 + # if key in z.wv.index2entity: + print(i) + print(z.index2entity.index(i)) + # print(z.wv.vectors[z.wv.index2entity.index(key)]) + x = z.index2entity.index(i) + return z.vectors[x] +def read_all(): + data = np.load('graph/test_Bip.npy',allow_pickle=True) + id=0 + results = [] #a retirer + print(len(data),len(data[0]),data[0]) + for x in data: + w = time.time() + G=read(x) + #print("A",len(G)) + model = deepwalk.DeepWalk(G, walk_length=5, num_walks=4, workers=1) + z = model.train(window_size=5, iter=3) + print(len(z.wv.vectors)) + result = np.zeros((116835, int(6))) + + for i in z.wv.index2entity: + x = z.wv.index2entity.index(i) + result[i] = z.wv.vectors[x] + results.append(result) + name = str('graph/data_train.npy') + name = name[:name.index('.')] + np.save(name+"\\transformed_"+str(id),results) + print(id, "DONE") + id += 1 + np.save('graph/test_train.npy', results) + return model +if __name__ == "__main__": + '''G = nx.read_edgelist('../data/wiki/Wiki_edgelist.txt', + create_using=nx.DiGraph(), nodetype=None, data=[('weight', int)]) + + model = deepwalk.DeepWalk(G, walk_length=15, num_walks=80, workers=1) + z = model.train(window_size=5, iter=3) + print(len(z.wv.vectors)) + result = np.zeros((2405, int(64))) + for i in range(len(z.wv.vectors)): + key = str(i + 1) + if key in z.wv.index2entity: + result[i] = z.wv.vectors[z.wv.index2entity.index(key)] + result = np.asarray(result) + print("result shape",result.shape)''' + model = read_all() + #embeddings = model.get_embeddings() + #print(embeddings) + #evaluate_embeddings(embeddings) + #plot_embeddings(embeddings) diff --git a/GraphEmbedding-master/examples/graph/data.npy b/GraphEmbedding-master/examples/graph/data.npy new file mode 100644 index 0000000000000000000000000000000000000000..4aeafd7ea13092ab5442df00255cd00730e72165 Binary files /dev/null and b/GraphEmbedding-master/examples/graph/data.npy differ diff --git a/GraphEmbedding-master/examples/graph/data_test.npy b/GraphEmbedding-master/examples/graph/data_test.npy new file mode 100644 index 0000000000000000000000000000000000000000..ed21bf07305a98260c2e85bb9e7eacf0cda5b626 Binary files /dev/null and b/GraphEmbedding-master/examples/graph/data_test.npy differ diff --git a/GraphEmbedding-master/examples/graph/data_train.npy b/GraphEmbedding-master/examples/graph/data_train.npy new file mode 100644 index 0000000000000000000000000000000000000000..8814265765293e9403a8f4438e3ff3c0c9f58b74 Binary files /dev/null and b/GraphEmbedding-master/examples/graph/data_train.npy differ diff --git a/GraphEmbedding-master/examples/graph/data_val.npy b/GraphEmbedding-master/examples/graph/data_val.npy new file mode 100644 index 0000000000000000000000000000000000000000..6befad8c9ce2024b34ebb6e12271284c9097779b Binary files /dev/null and b/GraphEmbedding-master/examples/graph/data_val.npy differ diff --git a/GraphEmbedding-master/examples/graph/sample.npy b/GraphEmbedding-master/examples/graph/sample.npy new file mode 100644 index 0000000000000000000000000000000000000000..8572c503b36490939873e20f1b58b8e36da2e5ae Binary files /dev/null and b/GraphEmbedding-master/examples/graph/sample.npy differ diff --git a/GraphEmbedding-master/examples/graph/test_Bip.npy b/GraphEmbedding-master/examples/graph/test_Bip.npy new file mode 100644 index 0000000000000000000000000000000000000000..82ab6f221d115ab3f26210a5894c336ba99f4844 Binary files /dev/null and b/GraphEmbedding-master/examples/graph/test_Bip.npy differ diff --git a/GraphEmbedding-master/examples/graph/test_train.npy b/GraphEmbedding-master/examples/graph/test_train.npy new file mode 100644 index 0000000000000000000000000000000000000000..4f540d4de5326535778511c0ce9be62a5ed59f60 Binary files /dev/null and b/GraphEmbedding-master/examples/graph/test_train.npy differ diff --git a/GraphEmbedding-master/examples/line.py b/GraphEmbedding-master/examples/line.py new file mode 100644 index 0000000000000000000000000000000000000000..ec4a50e1d452e47b03fe3b8b8fa9c7b85b0fb93a --- /dev/null +++ b/GraphEmbedding-master/examples/line.py @@ -0,0 +1,213 @@ +# -*- coding:utf-8 -*- + +""" + + + +Author: + + Weichen Shen,wcshen1994@163.com + + + +Reference: + + [1] Tang J, Qu M, Wang M, et al. Line: Large-scale information network embedding[C]//Proceedings of the 24th International Conference on World Wide Web. International World Wide Web Conferences Steering Committee, 2015: 1067-1077.(https://arxiv.org/pdf/1503.03578.pdf) + + + +""" +import math +import random + +import numpy as np +import tensorflow as tf +from tensorflow.python.keras import backend as K +from tensorflow.python.keras.layers import Embedding, Input, Lambda +from tensorflow.python.keras.models import Model +import alias +import utils +import time + + +def line_loss(y_true, y_pred): + return -K.mean(K.log(K.sigmoid(y_true*y_pred))) + + +def create_model(numNodes, embedding_size, order='second'): + + v_i = Input(shape=(1,)) + v_j = Input(shape=(1,)) + + first_emb = Embedding(numNodes, embedding_size, name='first_emb') + second_emb = Embedding(numNodes, embedding_size, name='second_emb') + context_emb = Embedding(numNodes, embedding_size, name='context_emb') + + v_i_emb = first_emb(v_i) + v_j_emb = first_emb(v_j) + + v_i_emb_second = second_emb(v_i) + v_j_context_emb = context_emb(v_j) + + first = Lambda(lambda x: tf.reduce_sum( + x[0]*x[1], axis=-1, keepdims=False), name='first_order')([v_i_emb, v_j_emb]) + second = Lambda(lambda x: tf.reduce_sum( + x[0]*x[1], axis=-1, keepdims=False), name='second_order')([v_i_emb_second, v_j_context_emb]) + + if order == 'first': + output_list = [first] + elif order == 'second': + output_list = [second] + else: + output_list = [first, second] + + model = Model(inputs=[v_i, v_j], outputs=output_list) + + return model, {'first': first_emb, 'second': second_emb} + + +class LINE: + def __init__(self, graph, embedding_size=8, negative_ratio=5, order='second',): + """ + + :param graph: + :param embedding_size: + :param negative_ratio: + :param order: 'first','second','all' + """ + if order not in ['first', 'second', 'all']: + raise ValueError('mode must be fisrt,second,or all') + + self.graph = graph + self.idx2node, self.node2idx = utils.preprocess_nxgraph(graph) + self.use_alias = True + + self.rep_size = embedding_size + self.order = order + + self._embeddings = {} + self.negative_ratio = negative_ratio + self.order = order + + self.node_size = graph.number_of_nodes() + self.edge_size = graph.number_of_edges() + self.samples_per_epoch = self.edge_size*(1+negative_ratio) + + self._gen_sampling_table() + self.reset_model() + + def reset_training_config(self, batch_size, times): + self.batch_size = batch_size + self.steps_per_epoch = ( + (self.samples_per_epoch - 1) // self.batch_size + 1)*times + + def reset_model(self, opt='adam'): + + self.model, self.embedding_dict = create_model( + self.node_size, self.rep_size, self.order) + self.model.compile(opt, line_loss) + self.batch_it = self.batch_iter(self.node2idx) + + def _gen_sampling_table(self): + + # create sampling table for vertex + power = 0.75 + numNodes = self.node_size + node_degree = np.zeros(numNodes) # out degree + node2idx = self.node2idx + + for edge in self.graph.edges(): + node_degree[node2idx[edge[0]] + ] += self.graph[edge[0]][edge[1]].get('weight', 1.0) + + total_sum = sum([math.pow(node_degree[i], power) + for i in range(numNodes)]) + norm_prob = [float(math.pow(node_degree[j], power)) / + total_sum for j in range(numNodes)] + + self.node_accept, self.node_alias = alias.create_alias_table(norm_prob) + + # create sampling table for edge + numEdges = self.graph.number_of_edges() + total_sum = sum([self.graph[edge[0]][edge[1]].get('weight', 1.0) + for edge in self.graph.edges()]) + norm_prob = [self.graph[edge[0]][edge[1]].get('weight', 1.0) * + numEdges / total_sum for edge in self.graph.edges()] + + self.edge_accept, self.edge_alias = alias.create_alias_table(norm_prob) + + def batch_iter(self, node2idx): + + edges = [(node2idx[x[0]], node2idx[x[1]]) for x in self.graph.edges()] + + data_size = self.graph.number_of_edges() + shuffle_indices = np.random.permutation(np.arange(data_size)) + # positive or negative mod + mod = 0 + mod_size = 1 + self.negative_ratio + h = [] + t = [] + sign = 0 + count = 0 + start_index = 0 + end_index = min(start_index + self.batch_size, data_size) + while True: + if mod == 0: + + h = [] + t = [] + for i in range(start_index, end_index): + if random.random() >= self.edge_accept[shuffle_indices[i]]: + shuffle_indices[i] = self.edge_alias[shuffle_indices[i]] + cur_h = edges[shuffle_indices[i]][0] + cur_t = edges[shuffle_indices[i]][1] + h.append(cur_h) + t.append(cur_t) + sign = np.ones(len(h)) + else: + sign = np.ones(len(h))*-1 + t = [] + for i in range(len(h)): + + t.append(alias.alias_sample( + self.node_accept, self.node_alias)) + + if self.order == 'all': + yield ([np.array(h), np.array(t)], [sign, sign]) + else: + yield ([np.array(h), np.array(t)], [sign]) + mod += 1 + mod %= mod_size + if mod == 0: + start_index = end_index + end_index = min(start_index + self.batch_size, data_size) + + if start_index >= data_size: + count += 1 + mod = 0 + h = [] + shuffle_indices = np.random.permutation(np.arange(data_size)) + start_index = 0 + end_index = min(start_index + self.batch_size, data_size) + + def get_embeddings(self,): + self._embeddings = {} + result = np.zeros((100, int(64))) + if self.order == 'first': + embeddings = self.embedding_dict['first'].get_weights()[0] + elif self.order == 'second': + embeddings = self.embedding_dict['second'].get_weights()[0] + else: + embeddings = np.hstack((self.embedding_dict['first'].get_weights()[ + 0], self.embedding_dict['second'].get_weights()[0])) + idx2node = self.idx2node + for i, embedding in enumerate(embeddings): + self._embeddings[idx2node[i]] = embedding + result[int(idx2node[i])] = embedding + return self._embeddings, result + + def train(self, batch_size=1024, epochs=1, initial_epoch=0, verbose=1, times=1): + self.reset_training_config(batch_size, times) + hist = self.model.fit_generator(self.batch_it, epochs=epochs, initial_epoch=initial_epoch, steps_per_epoch=self.steps_per_epoch, + verbose=verbose) + return hist diff --git a/GraphEmbedding-master/examples/line_wiki.py b/GraphEmbedding-master/examples/line_wiki.py new file mode 100644 index 0000000000000000000000000000000000000000..2cf855cf9aa422deb4165fc7d694692f1a768d97 --- /dev/null +++ b/GraphEmbedding-master/examples/line_wiki.py @@ -0,0 +1,80 @@ + +import numpy as np +import classify +from sklearn.linear_model import LogisticRegression +import line +import matplotlib.pyplot as plt +import networkx as nx +from sklearn.manifold import TSNE + + +def evaluate_embeddings(embeddings): + X, Y = classify.read_node_label('../data/wiki/wiki_labels.txt') + tr_frac = 0.8 + print("Training classifier using {:.2f}% nodes...".format( + tr_frac * 100)) + clf = classify.Classifier(embeddings=embeddings, clf=LogisticRegression()) + clf.split_train_evaluate(X, Y, tr_frac) + + +def plot_embeddings(embeddings,): + X, Y = classify.read_node_label('../data/wiki/wiki_labels.txt') + + emb_list = [] + for k in X: + emb_list.append(embeddings[k]) + emb_list = np.array(emb_list) + + model = TSNE(n_components=2) + node_pos = model.fit_transform(emb_list) + + color_idx = {} + for i in range(len(X)): + color_idx.setdefault(Y[i][0], []) + color_idx[Y[i][0]].append(i) + + for c, idx in color_idx.items(): + plt.scatter(node_pos[idx, 0], node_pos[idx, 1], label=c) + plt.legend() + plt.show() + +def read(arr): + G = nx.Graph() + for a,b in arr: + if not G.has_node(a): + G.add_node(a) + if not G.has_node(b): + G.add_node(b) + G.add_edge(a,b,weight=1) + return G + +def read_all(): + data = np.load('graph/data_val.npy',allow_pickle=True) + id=0 + for x in data: + G=read(x) + model = line.LINE(G, embedding_size=64, order='second') + model.train(batch_size=120, epochs=100, verbose=2) + embeddings, result = model.get_embeddings() + result = np.asarray(result) + result = np.asarray(result) + name = str('graph/data_val.npy') + name = name[:name.index('.')] + np.save(name+"\\transformed_"+str(id),result) + print(id,"DONE") + id+=1 + return model +if __name__ == "__main__": + '''G = nx.read_edgelist('../data/wiki/Wiki_edgelist.txt', + create_using=nx.DiGraph(), nodetype=None, data=[('weight', int)]) + + model = line.LINE(G, embedding_size=64, order='second') + model.train(batch_size=1024, epochs=50, verbose=2) + print("hnaya",model) + embeddings, result = model.get_embeddings() + #print(embeddings) + result = np.asarray(embeddings) + #print(result) + #evaluate_embeddings(embeddings) + #plot_embeddings(embeddings)''' + model = read_all() diff --git a/GraphEmbedding-master/examples/node2vec.py b/GraphEmbedding-master/examples/node2vec.py new file mode 100644 index 0000000000000000000000000000000000000000..16f86cbebeeed97f33ad20b4e274bc04b7600e53 --- /dev/null +++ b/GraphEmbedding-master/examples/node2vec.py @@ -0,0 +1,70 @@ +# -*- coding:utf-8 -*- + +""" + + + +Author: + + Weichen Shen,wcshen1994@163.com + + + +Reference: + + [1] Grover A, Leskovec J. node2vec: Scalable feature learning for networks[C]//Proceedings of the 22nd ACM SIGKDD international conference on Knowledge discovery and data mining. ACM, 2016: 855-864.(https://www.kdd.org/kdd2016/papers/files/rfp0218-groverA.pdf) + + + +""" + +from gensim.models import Word2Vec +import pandas as pd + +from ..walker import RandomWalker + + +class Node2Vec: + + def __init__(self, graph, walk_length, num_walks, p=1.0, q=1.0, workers=1, use_rejection_sampling=0): + + self.graph = graph + self._embeddings = {} + self.walker = RandomWalker( + graph, p=p, q=q, use_rejection_sampling=use_rejection_sampling) + + print("Preprocess transition probs...") + self.walker.preprocess_transition_probs() + + self.sentences = self.walker.simulate_walks( + num_walks=num_walks, walk_length=walk_length, workers=workers, verbose=1) + + def train(self, embed_size=128, window_size=5, workers=3, iter=5, **kwargs): + + kwargs["sentences"] = self.sentences + kwargs["min_count"] = kwargs.get("min_count", 0) + kwargs["size"] = embed_size + kwargs["sg"] = 1 + kwargs["hs"] = 0 # node2vec not use Hierarchical Softmax + kwargs["workers"] = workers + kwargs["window"] = window_size + kwargs["iter"] = iter + + print("Learning embedding vectors...") + model = Word2Vec(**kwargs) + print("Learning embedding vectors done!") + + self.w2v_model = model + + return model + + def get_embeddings(self,): + if self.w2v_model is None: + print("model not train") + return {} + + self._embeddings = {} + for word in self.graph.nodes(): + self._embeddings[word] = self.w2v_model.wv[word] + + return self._embeddings diff --git a/GraphEmbedding-master/examples/node2vec_flight.py b/GraphEmbedding-master/examples/node2vec_flight.py new file mode 100644 index 0000000000000000000000000000000000000000..a37a880a0fe683e55491c36608419e738564f4db --- /dev/null +++ b/GraphEmbedding-master/examples/node2vec_flight.py @@ -0,0 +1,88 @@ +import numpy as np + + + +from ge.classify import read_node_label,Classifier + +from ge import Node2Vec + +from sklearn.linear_model import LogisticRegression + + + +import matplotlib.pyplot as plt + +import networkx as nx + +from sklearn.manifold import TSNE + + + +def evaluate_embeddings(embeddings): + + X, Y = read_node_label('../data/flight/labels-brazil-airports.txt',skip_head=True) + + tr_frac = 0.8 + + print("Training classifier using {:.2f}% nodes...".format( + + tr_frac * 100)) + + clf = Classifier(embeddings=embeddings, clf=LogisticRegression()) + + clf.split_train_evaluate(X, Y, tr_frac) + + + + + +def plot_embeddings(embeddings,): + + X, Y = read_node_label('../data/flight/labels-brazil-airports.txt',skip_head=True) + + + + emb_list = [] + + for k in X: + + emb_list.append(embeddings[k]) + + emb_list = np.array(emb_list) + + + + model = TSNE(n_components=2) + + node_pos = model.fit_transform(emb_list) + + + + color_idx = {} + + for i in range(len(X)): + + color_idx.setdefault(Y[i][0], []) + + color_idx[Y[i][0]].append(i) + + + + for c, idx in color_idx.items(): + + plt.scatter(node_pos[idx, 0], node_pos[idx, 1], label=c) # c=node_colors) + + plt.legend() + + plt.show() + +if __name__ == "__main__": + G = nx.read_edgelist('../data/flight/brazil-airports.edgelist', create_using=nx.DiGraph(), nodetype=None, + data=[('weight', int)]) + + model = Node2Vec(G, 10, 80, workers=1, p=0.25, q=2, use_rejection_sampling=0) + model.train() + embeddings = model.get_embeddings() + + evaluate_embeddings(embeddings) + plot_embeddings(embeddings) diff --git a/GraphEmbedding-master/examples/node2vec_wiki.py b/GraphEmbedding-master/examples/node2vec_wiki.py new file mode 100644 index 0000000000000000000000000000000000000000..45ea1c07209cb5cbd4c3a49986d265a6ad6d9f2f --- /dev/null +++ b/GraphEmbedding-master/examples/node2vec_wiki.py @@ -0,0 +1,53 @@ + +import numpy as np + +from ge.classify import read_node_label, Classifier +from ge import Node2Vec +from sklearn.linear_model import LogisticRegression + +import matplotlib.pyplot as plt +import networkx as nx +from sklearn.manifold import TSNE + + +def evaluate_embeddings(embeddings): + X, Y = read_node_label('../data/wiki/wiki_labels.txt') + tr_frac = 0.8 + print("Training classifier using {:.2f}% nodes...".format( + tr_frac * 100)) + clf = Classifier(embeddings=embeddings, clf=LogisticRegression()) + clf.split_train_evaluate(X, Y, tr_frac) + + +def plot_embeddings(embeddings,): + X, Y = read_node_label('../data/wiki/wiki_labels.txt') + + emb_list = [] + for k in X: + emb_list.append(embeddings[k]) + emb_list = np.array(emb_list) + + model = TSNE(n_components=2) + node_pos = model.fit_transform(emb_list) + + color_idx = {} + for i in range(len(X)): + color_idx.setdefault(Y[i][0], []) + color_idx[Y[i][0]].append(i) + + for c, idx in color_idx.items(): + plt.scatter(node_pos[idx, 0], node_pos[idx, 1], label=c) + plt.legend() + plt.show() + + +if __name__ == "__main__": + G=nx.read_edgelist('../data/wiki/Wiki_edgelist.txt', + create_using = nx.DiGraph(), nodetype = None, data = [('weight', int)]) + model = Node2Vec(G, walk_length=10, num_walks=80, + p=0.25, q=4, workers=1, use_rejection_sampling=0) + model.train(window_size = 5, iter = 3) + embeddings=model.get_embeddings() + + evaluate_embeddings(embeddings) + plot_embeddings(embeddings) diff --git a/GraphEmbedding-master/examples/sdne.py b/GraphEmbedding-master/examples/sdne.py new file mode 100644 index 0000000000000000000000000000000000000000..56dd52fad0c265f9dbdd0ea929c977fd117fb144 --- /dev/null +++ b/GraphEmbedding-master/examples/sdne.py @@ -0,0 +1,174 @@ +# -*- coding:utf-8 -*- + +""" + + + +Author: + + Weichen Shen,wcshen1994@163.com + + + +Reference: + + [1] Wang D, Cui P, Zhu W. Structural deep network embedding[C]//Proceedings of the 22nd ACM SIGKDD international conference on Knowledge discovery and data mining. ACM, 2016: 1225-1234.(https://www.kdd.org/kdd2016/papers/files/rfp0191-wangAemb.pdf) + + + +""" +import time + +import numpy as np +import scipy.sparse as sp +import tensorflow as tf +from tensorflow.python.keras import backend as K +from tensorflow.python.keras.callbacks import History +from tensorflow.python.keras.layers import Dense, Input +from tensorflow.python.keras.models import Model +from tensorflow.python.keras.regularizers import l1_l2 + +from ..utils import preprocess_nxgraph + + +def l_2nd(beta): + def loss_2nd(y_true, y_pred): + b_ = np.ones_like(y_true) + b_[y_true != 0] = beta + x = K.square((y_true - y_pred) * b_) + t = K.sum(x, axis=-1, ) + return K.mean(t) + + return loss_2nd + + +def l_1st(alpha): + def loss_1st(y_true, y_pred): + L = y_true + Y = y_pred + batch_size = tf.to_float(K.shape(L)[0]) + return alpha * 2 * tf.linalg.trace(tf.matmul(tf.matmul(Y, L, transpose_a=True), Y)) / batch_size + + return loss_1st + + +def create_model(node_size, hidden_size=[256, 128], l1=1e-5, l2=1e-4): + A = Input(shape=(node_size,)) + L = Input(shape=(None,)) + fc = A + for i in range(len(hidden_size)): + if i == len(hidden_size) - 1: + fc = Dense(hidden_size[i], activation='relu', + kernel_regularizer=l1_l2(l1, l2), name='1st')(fc) + else: + fc = Dense(hidden_size[i], activation='relu', + kernel_regularizer=l1_l2(l1, l2))(fc) + Y = fc + for i in reversed(range(len(hidden_size) - 1)): + fc = Dense(hidden_size[i], activation='relu', + kernel_regularizer=l1_l2(l1, l2))(fc) + + A_ = Dense(node_size, 'relu', name='2nd')(fc) + model = Model(inputs=[A, L], outputs=[A_, Y]) + emb = Model(inputs=A, outputs=Y) + return model, emb + + +class SDNE(object): + def __init__(self, graph, hidden_size=[32, 16], alpha=1e-6, beta=5., nu1=1e-5, nu2=1e-4, ): + + self.graph = graph + # self.g.remove_edges_from(self.g.selfloop_edges()) + self.idx2node, self.node2idx = preprocess_nxgraph(self.graph) + + self.node_size = self.graph.number_of_nodes() + self.hidden_size = hidden_size + self.alpha = alpha + self.beta = beta + self.nu1 = nu1 + self.nu2 = nu2 + + self.A, self.L = self._create_A_L( + self.graph, self.node2idx) # Adj Matrix,L Matrix + self.reset_model() + self.inputs = [self.A, self.L] + self._embeddings = {} + + def reset_model(self, opt='adam'): + + self.model, self.emb_model = create_model(self.node_size, hidden_size=self.hidden_size, l1=self.nu1, + l2=self.nu2) + self.model.compile(opt, [l_2nd(self.beta), l_1st(self.alpha)]) + self.get_embeddings() + + def train(self, batch_size=1024, epochs=1, initial_epoch=0, verbose=1): + if batch_size >= self.node_size: + if batch_size > self.node_size: + print('batch_size({0}) > node_size({1}),set batch_size = {1}'.format( + batch_size, self.node_size)) + batch_size = self.node_size + return self.model.fit([self.A.todense(), self.L.todense()], [self.A.todense(), self.L.todense()], + batch_size=batch_size, epochs=epochs, initial_epoch=initial_epoch, verbose=verbose, + shuffle=False, ) + else: + steps_per_epoch = (self.node_size - 1) // batch_size + 1 + hist = History() + hist.on_train_begin() + logs = {} + for epoch in range(initial_epoch, epochs): + start_time = time.time() + losses = np.zeros(3) + for i in range(steps_per_epoch): + index = np.arange( + i * batch_size, min((i + 1) * batch_size, self.node_size)) + A_train = self.A[index, :].todense() + L_mat_train = self.L[index][:, index].todense() + inp = [A_train, L_mat_train] + batch_losses = self.model.train_on_batch(inp, inp) + losses += batch_losses + losses = losses / steps_per_epoch + + logs['loss'] = losses[0] + logs['2nd_loss'] = losses[1] + logs['1st_loss'] = losses[2] + epoch_time = int(time.time() - start_time) + hist.on_epoch_end(epoch, logs) + if verbose > 0: + print('Epoch {0}/{1}'.format(epoch + 1, epochs)) + print('{0}s - loss: {1: .4f} - 2nd_loss: {2: .4f} - 1st_loss: {3: .4f}'.format( + epoch_time, losses[0], losses[1], losses[2])) + return hist + + def evaluate(self, ): + return self.model.evaluate(x=self.inputs, y=self.inputs, batch_size=self.node_size) + + def get_embeddings(self): + self._embeddings = {} + embeddings = self.emb_model.predict(self.A.todense(), batch_size=self.node_size) + look_back = self.idx2node + for i, embedding in enumerate(embeddings): + self._embeddings[look_back[i]] = embedding + + return self._embeddings + + def _create_A_L(self, graph, node2idx): + node_size = graph.number_of_nodes() + A_data = [] + A_row_index = [] + A_col_index = [] + + for edge in graph.edges(): + v1, v2 = edge + edge_weight = graph[v1][v2].get('weight', 1) + + A_data.append(edge_weight) + A_row_index.append(node2idx[v1]) + A_col_index.append(node2idx[v2]) + + A = sp.csr_matrix((A_data, (A_row_index, A_col_index)), shape=(node_size, node_size)) + A_ = sp.csr_matrix((A_data + A_data, (A_row_index + A_col_index, A_col_index + A_row_index)), + shape=(node_size, node_size)) + + D = sp.diags(A_.sum(axis=1).flatten().tolist()[0]) + L = D - A_ + return A, L diff --git a/GraphEmbedding-master/examples/sdne_wiki.py b/GraphEmbedding-master/examples/sdne_wiki.py new file mode 100644 index 0000000000000000000000000000000000000000..9cfc467a6af6c2e0150f3aa1348b136d673af15d --- /dev/null +++ b/GraphEmbedding-master/examples/sdne_wiki.py @@ -0,0 +1,54 @@ + +import numpy as np + +from ge.classify import read_node_label, Classifier +from ge import SDNE +from sklearn.linear_model import LogisticRegression + +import matplotlib.pyplot as plt +import networkx as nx +from sklearn.manifold import TSNE + + +def evaluate_embeddings(embeddings): + X, Y = read_node_label('../data/wiki/wiki_labels.txt') + tr_frac = 0.8 + print("Training classifier using {:.2f}% nodes...".format( + tr_frac * 100)) + clf = Classifier(embeddings=embeddings, clf=LogisticRegression()) + clf.split_train_evaluate(X, Y, tr_frac) + + +def plot_embeddings(embeddings,): + X, Y = read_node_label('../data/wiki/wiki_labels.txt') + + emb_list = [] + for k in X: + emb_list.append(embeddings[k]) + emb_list = np.array(emb_list) + + model = TSNE(n_components=2) + node_pos = model.fit_transform(emb_list) + + color_idx = {} + for i in range(len(X)): + color_idx.setdefault(Y[i][0], []) + color_idx[Y[i][0]].append(i) + + for c, idx in color_idx.items(): + plt.scatter(node_pos[idx, 0], node_pos[idx, 1], + label=c) # c=node_colors) + plt.legend() + plt.show() + + +if __name__ == "__main__": + G = nx.read_edgelist('../data/wiki/Wiki_edgelist.txt', + create_using=nx.DiGraph(), nodetype=None, data=[('weight', int)]) + + model = SDNE(G, hidden_size=[256, 128],) + model.train(batch_size=3000, epochs=40, verbose=2) + embeddings = model.get_embeddings() + + evaluate_embeddings(embeddings) + plot_embeddings(embeddings) diff --git a/GraphEmbedding-master/examples/struc2vec.py b/GraphEmbedding-master/examples/struc2vec.py new file mode 100644 index 0000000000000000000000000000000000000000..4040562a5f90dfc03e293c4b3a5c35d07fd5a135 --- /dev/null +++ b/GraphEmbedding-master/examples/struc2vec.py @@ -0,0 +1,434 @@ +# -*- coding:utf-8 -*- + +""" + + + +Author: + + Weichen Shen,wcshen1994@163.com + + + +Reference: + + [1] Ribeiro L F R, Saverese P H P, Figueiredo D R. struc2vec: Learning node representations from structural identity[C]//Proceedings of the 23rd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining. ACM, 2017: 385-394.(https://arxiv.org/pdf/1704.03165.pdf) + + + +""" + +import math +import os +import shutil +from collections import ChainMap, deque + +import numpy as np +import pandas as pd +from fastdtw import fastdtw +from gensim.models import Word2Vec +from joblib import Parallel, delayed +from tqdm import tqdm + +from ..alias import create_alias_table +from ..utils import partition_dict, preprocess_nxgraph +from ..walker import BiasedWalker + + +class Struc2Vec(): + def __init__(self, graph, walk_length=10, num_walks=100, workers=1, verbose=0, stay_prob=0.3, opt1_reduce_len=True, opt2_reduce_sim_calc=True, opt3_num_layers=None, temp_path='./temp_struc2vec/', reuse=False): + self.graph = graph + self.idx2node, self.node2idx = preprocess_nxgraph(graph) + self.idx = list(range(len(self.idx2node))) + + self.opt1_reduce_len = opt1_reduce_len + self.opt2_reduce_sim_calc = opt2_reduce_sim_calc + self.opt3_num_layers = opt3_num_layers + + self.resue = reuse + self.temp_path = temp_path + + if not os.path.exists(self.temp_path): + os.mkdir(self.temp_path) + if not reuse: + shutil.rmtree(self.temp_path) + os.mkdir(self.temp_path) + + self.create_context_graph(self.opt3_num_layers, workers, verbose) + self.prepare_biased_walk() + self.walker = BiasedWalker(self.idx2node, self.temp_path) + self.sentences = self.walker.simulate_walks( + num_walks, walk_length, stay_prob, workers, verbose) + + self._embeddings = {} + + def create_context_graph(self, max_num_layers, workers=1, verbose=0,): + + pair_distances = self._compute_structural_distance( + max_num_layers, workers, verbose,) + layers_adj, layers_distances = self._get_layer_rep(pair_distances) + pd.to_pickle(layers_adj, self.temp_path + 'layers_adj.pkl') + + layers_accept, layers_alias = self._get_transition_probs( + layers_adj, layers_distances) + pd.to_pickle(layers_alias, self.temp_path + 'layers_alias.pkl') + pd.to_pickle(layers_accept, self.temp_path + 'layers_accept.pkl') + + def prepare_biased_walk(self,): + + sum_weights = {} + sum_edges = {} + average_weight = {} + gamma = {} + layer = 0 + while (os.path.exists(self.temp_path+'norm_weights_distance-layer-' + str(layer)+'.pkl')): + probs = pd.read_pickle( + self.temp_path+'norm_weights_distance-layer-' + str(layer)+'.pkl') + for v, list_weights in probs.items(): + sum_weights.setdefault(layer, 0) + sum_edges.setdefault(layer, 0) + sum_weights[layer] += sum(list_weights) + sum_edges[layer] += len(list_weights) + + average_weight[layer] = sum_weights[layer] / sum_edges[layer] + + gamma.setdefault(layer, {}) + + for v, list_weights in probs.items(): + num_neighbours = 0 + for w in list_weights: + if (w > average_weight[layer]): + num_neighbours += 1 + gamma[layer][v] = num_neighbours + + layer += 1 + + pd.to_pickle(average_weight, self.temp_path + 'average_weight') + pd.to_pickle(gamma, self.temp_path + 'gamma.pkl') + + def train(self, embed_size=128, window_size=5, workers=3, iter=5): + + # pd.read_pickle(self.temp_path+'walks.pkl') + sentences = self.sentences + + print("Learning representation...") + model = Word2Vec(sentences, size=embed_size, window=window_size, min_count=0, hs=1, sg=1, workers=workers, + iter=iter) + print("Learning representation done!") + self.w2v_model = model + + return model + + def get_embeddings(self,): + if self.w2v_model is None: + print("model not train") + return {} + + self._embeddings = {} + for word in self.graph.nodes(): + self._embeddings[word] = self.w2v_model.wv[word] + + return self._embeddings + + def _compute_ordered_degreelist(self, max_num_layers): + + degreeList = {} + vertices = self.idx # self.g.nodes() + for v in vertices: + degreeList[v] = self._get_order_degreelist_node(v, max_num_layers) + return degreeList + + def _get_order_degreelist_node(self, root, max_num_layers=None): + if max_num_layers is None: + max_num_layers = float('inf') + + ordered_degree_sequence_dict = {} + visited = [False] * len(self.graph.nodes()) + queue = deque() + level = 0 + queue.append(root) + visited[root] = True + + while (len(queue) > 0 and level <= max_num_layers): + + count = len(queue) + if self.opt1_reduce_len: + degree_list = {} + else: + degree_list = [] + while (count > 0): + + top = queue.popleft() + node = self.idx2node[top] + degree = len(self.graph[node]) + + if self.opt1_reduce_len: + degree_list[degree] = degree_list.get(degree, 0) + 1 + else: + degree_list.append(degree) + + for nei in self.graph[node]: + nei_idx = self.node2idx[nei] + if not visited[nei_idx]: + visited[nei_idx] = True + queue.append(nei_idx) + count -= 1 + if self.opt1_reduce_len: + orderd_degree_list = [(degree, freq) + for degree, freq in degree_list.items()] + orderd_degree_list.sort(key=lambda x: x[0]) + else: + orderd_degree_list = sorted(degree_list) + ordered_degree_sequence_dict[level] = orderd_degree_list + level += 1 + + return ordered_degree_sequence_dict + + def _compute_structural_distance(self, max_num_layers, workers=1, verbose=0,): + + if os.path.exists(self.temp_path+'structural_dist.pkl'): + structural_dist = pd.read_pickle( + self.temp_path+'structural_dist.pkl') + else: + if self.opt1_reduce_len: + dist_func = cost_max + else: + dist_func = cost + + if os.path.exists(self.temp_path + 'degreelist.pkl'): + degreeList = pd.read_pickle(self.temp_path + 'degreelist.pkl') + else: + degreeList = self._compute_ordered_degreelist(max_num_layers) + pd.to_pickle(degreeList, self.temp_path + 'degreelist.pkl') + + if self.opt2_reduce_sim_calc: + degrees = self._create_vectors() + degreeListsSelected = {} + vertices = {} + n_nodes = len(self.idx) + for v in self.idx: # c:list of vertex + nbs = get_vertices( + v, len(self.graph[self.idx2node[v]]), degrees, n_nodes) + vertices[v] = nbs # store nbs + degreeListsSelected[v] = degreeList[v] # store dist + for n in nbs: + # store dist of nbs + degreeListsSelected[n] = degreeList[n] + else: + vertices = {} + for v in degreeList: + vertices[v] = [vd for vd in degreeList.keys() if vd > v] + + results = Parallel(n_jobs=workers, verbose=verbose,)( + delayed(compute_dtw_dist)(part_list, degreeList, dist_func) for part_list in partition_dict(vertices, workers)) + dtw_dist = dict(ChainMap(*results)) + + structural_dist = convert_dtw_struc_dist(dtw_dist) + pd.to_pickle(structural_dist, self.temp_path + + 'structural_dist.pkl') + + return structural_dist + + def _create_vectors(self): + degrees = {} # sotre v list of degree + degrees_sorted = set() # store degree + G = self.graph + for v in self.idx: + degree = len(G[self.idx2node[v]]) + degrees_sorted.add(degree) + if (degree not in degrees): + degrees[degree] = {} + degrees[degree]['vertices'] = [] + degrees[degree]['vertices'].append(v) + degrees_sorted = np.array(list(degrees_sorted), dtype='int') + degrees_sorted = np.sort(degrees_sorted) + + l = len(degrees_sorted) + for index, degree in enumerate(degrees_sorted): + if (index > 0): + degrees[degree]['before'] = degrees_sorted[index - 1] + if (index < (l - 1)): + degrees[degree]['after'] = degrees_sorted[index + 1] + + return degrees + + def _get_layer_rep(self, pair_distances): + layer_distances = {} + layer_adj = {} + for v_pair, layer_dist in pair_distances.items(): + for layer, distance in layer_dist.items(): + vx = v_pair[0] + vy = v_pair[1] + + layer_distances.setdefault(layer, {}) + layer_distances[layer][vx, vy] = distance + + layer_adj.setdefault(layer, {}) + layer_adj[layer].setdefault(vx, []) + layer_adj[layer].setdefault(vy, []) + layer_adj[layer][vx].append(vy) + layer_adj[layer][vy].append(vx) + + return layer_adj, layer_distances + + def _get_transition_probs(self, layers_adj, layers_distances): + layers_alias = {} + layers_accept = {} + + for layer in layers_adj: + + neighbors = layers_adj[layer] + layer_distances = layers_distances[layer] + node_alias_dict = {} + node_accept_dict = {} + norm_weights = {} + + for v, neighbors in neighbors.items(): + e_list = [] + sum_w = 0.0 + + for n in neighbors: + if (v, n) in layer_distances: + wd = layer_distances[v, n] + else: + wd = layer_distances[n, v] + w = np.exp(-float(wd)) + e_list.append(w) + sum_w += w + + e_list = [x / sum_w for x in e_list] + norm_weights[v] = e_list + accept, alias = create_alias_table(e_list) + node_alias_dict[v] = alias + node_accept_dict[v] = accept + + pd.to_pickle( + norm_weights, self.temp_path + 'norm_weights_distance-layer-' + str(layer)+'.pkl') + + layers_alias[layer] = node_alias_dict + layers_accept[layer] = node_accept_dict + + return layers_accept, layers_alias + + +def cost(a, b): + ep = 0.5 + m = max(a, b) + ep + mi = min(a, b) + ep + return ((m / mi) - 1) + + +def cost_min(a, b): + ep = 0.5 + m = max(a[0], b[0]) + ep + mi = min(a[0], b[0]) + ep + return ((m / mi) - 1) * min(a[1], b[1]) + + +def cost_max(a, b): + ep = 0.5 + m = max(a[0], b[0]) + ep + mi = min(a[0], b[0]) + ep + return ((m / mi) - 1) * max(a[1], b[1]) + + +def convert_dtw_struc_dist(distances, startLayer=1): + """ + + :param distances: dict of dict + :param startLayer: + :return: + """ + for vertices, layers in distances.items(): + keys_layers = sorted(layers.keys()) + startLayer = min(len(keys_layers), startLayer) + for layer in range(0, startLayer): + keys_layers.pop(0) + + for layer in keys_layers: + layers[layer] += layers[layer - 1] + return distances + + +def get_vertices(v, degree_v, degrees, n_nodes): + a_vertices_selected = 2 * math.log(n_nodes, 2) + vertices = [] + try: + c_v = 0 + + for v2 in degrees[degree_v]['vertices']: + if (v != v2): + vertices.append(v2) # same degree + c_v += 1 + if (c_v > a_vertices_selected): + raise StopIteration + + if ('before' not in degrees[degree_v]): + degree_b = -1 + else: + degree_b = degrees[degree_v]['before'] + if ('after' not in degrees[degree_v]): + degree_a = -1 + else: + degree_a = degrees[degree_v]['after'] + if (degree_b == -1 and degree_a == -1): + raise StopIteration # not anymore v + degree_now = verifyDegrees(degrees, degree_v, degree_a, degree_b) + # nearest valid degree + while True: + for v2 in degrees[degree_now]['vertices']: + if (v != v2): + vertices.append(v2) + c_v += 1 + if (c_v > a_vertices_selected): + raise StopIteration + + if (degree_now == degree_b): + if ('before' not in degrees[degree_b]): + degree_b = -1 + else: + degree_b = degrees[degree_b]['before'] + else: + if ('after' not in degrees[degree_a]): + degree_a = -1 + else: + degree_a = degrees[degree_a]['after'] + + if (degree_b == -1 and degree_a == -1): + raise StopIteration + + degree_now = verifyDegrees(degrees, degree_v, degree_a, degree_b) + + except StopIteration: + return list(vertices) + + return list(vertices) + + +def verifyDegrees(degrees, degree_v_root, degree_a, degree_b): + + if(degree_b == -1): + degree_now = degree_a + elif(degree_a == -1): + degree_now = degree_b + elif(abs(degree_b - degree_v_root) < abs(degree_a - degree_v_root)): + degree_now = degree_b + else: + degree_now = degree_a + + return degree_now + + +def compute_dtw_dist(part_list, degreeList, dist_func): + dtw_dist = {} + for v1, nbs in part_list: + lists_v1 = degreeList[v1] # lists_v1 :orderd degree list of v1 + for v2 in nbs: + lists_v2 = degreeList[v2] # lists_v1 :orderd degree list of v2 + max_layer = min(len(lists_v1), len(lists_v2)) # valid layer + dtw_dist[v1, v2] = {} + for layer in range(0, max_layer): + dist, path = fastdtw( + lists_v1[layer], lists_v2[layer], radius=1, dist=dist_func) + dtw_dist[v1, v2][layer] = dist + return dtw_dist diff --git a/GraphEmbedding-master/examples/struc2vec_flight.py b/GraphEmbedding-master/examples/struc2vec_flight.py new file mode 100644 index 0000000000000000000000000000000000000000..8863675d4397e9afec6695155d7e2f2161c28512 --- /dev/null +++ b/GraphEmbedding-master/examples/struc2vec_flight.py @@ -0,0 +1,88 @@ +import numpy as np + + + +from ge.classify import read_node_label,Classifier + +from ge import Struc2Vec + +from sklearn.linear_model import LogisticRegression + + + +import matplotlib.pyplot as plt + +import networkx as nx + +from sklearn.manifold import TSNE + + + +def evaluate_embeddings(embeddings): + + X, Y = read_node_label('../data/flight/labels-brazil-airports.txt',skip_head=True) + + tr_frac = 0.8 + + print("Training classifier using {:.2f}% nodes...".format( + + tr_frac * 100)) + + clf = Classifier(embeddings=embeddings, clf=LogisticRegression()) + + clf.split_train_evaluate(X, Y, tr_frac) + + + + + +def plot_embeddings(embeddings,): + + X, Y = read_node_label('../data/flight/labels-brazil-airports.txt',skip_head=True) + + + + emb_list = [] + + for k in X: + + emb_list.append(embeddings[k]) + + emb_list = np.array(emb_list) + + + + model = TSNE(n_components=2) + + node_pos = model.fit_transform(emb_list) + + + + color_idx = {} + + for i in range(len(X)): + + color_idx.setdefault(Y[i][0], []) + + color_idx[Y[i][0]].append(i) + + + + for c, idx in color_idx.items(): + + plt.scatter(node_pos[idx, 0], node_pos[idx, 1], label=c) # c=node_colors) + + plt.legend() + + plt.show() + +if __name__ == "__main__": + G = nx.read_edgelist('../data/flight/brazil-airports.edgelist', create_using=nx.DiGraph(), nodetype=None, + data=[('weight', int)]) + + model = Struc2Vec(G, 10, 80, workers=4, verbose=40, ) + model.train() + embeddings = model.get_embeddings() + + evaluate_embeddings(embeddings) + plot_embeddings(embeddings) \ No newline at end of file diff --git a/GraphEmbedding-master/examples/utils.py b/GraphEmbedding-master/examples/utils.py new file mode 100644 index 0000000000000000000000000000000000000000..8929eec84e383a900f496baa4cfb804a110c4019 --- /dev/null +++ b/GraphEmbedding-master/examples/utils.py @@ -0,0 +1,48 @@ +def preprocess_nxgraph(graph): + node2idx = {} + idx2node = [] + node_size = 0 + for node in graph.nodes(): + node2idx[node] = node_size + idx2node.append(node) + node_size += 1 + return idx2node, node2idx + + +def partition_dict(vertices, workers): + batch_size = (len(vertices) - 1) // workers + 1 + part_list = [] + part = [] + count = 0 + for v1, nbs in vertices.items(): + part.append((v1, nbs)) + count += 1 + if count % batch_size == 0: + part_list.append(part) + part = [] + if len(part) > 0: + part_list.append(part) + return part_list + + +def partition_list(vertices, workers): + batch_size = (len(vertices) - 1) // workers + 1 + part_list = [] + part = [] + count = 0 + for v1, nbs in enumerate(vertices): + part.append((v1, nbs)) + count += 1 + if count % batch_size == 0: + part_list.append(part) + part = [] + if len(part) > 0: + part_list.append(part) + return part_list + + +def partition_num(num, workers): + if num % workers == 0: + return [num//workers]*workers + else: + return [num//workers]*workers + [num % workers] diff --git a/GraphEmbedding-master/examples/walker.py b/GraphEmbedding-master/examples/walker.py new file mode 100644 index 0000000000000000000000000000000000000000..a9f6f3a49e2d75f1a6ec17e9af7972bfb5cc9838 --- /dev/null +++ b/GraphEmbedding-master/examples/walker.py @@ -0,0 +1,276 @@ +import itertools +import math +import random + +import numpy as np +import pandas as pd +from joblib import Parallel, delayed +from tqdm import trange +import alias +import utils + + +class RandomWalker: + def __init__(self, G, p=1, q=1, use_rejection_sampling=0): + """ + :param G: + :param p: Return parameter,controls the likelihood of immediately revisiting a node in the walk. + :param q: In-out parameter,allows the search to differentiate between “inward†and “outward†nodes + :param use_rejection_sampling: Whether to use the rejection sampling strategy in node2vec. + """ + self.G = G + self.p = p + self.q = q + self.use_rejection_sampling = use_rejection_sampling + #print("khel hna") + def deepwalk_walk(self, walk_length, start_node): + + walk = [start_node] + #print("walk",start_node) + while len(walk) < walk_length: + cur = walk[-1] + cur_nbrs = list(self.G.neighbors(cur)) + if len(cur_nbrs) > 0: + walk.append(random.choice(cur_nbrs)) + else: + break + return walk + + def node2vec_walk(self, walk_length, start_node): + + G = self.G + alias_nodes = self.alias_nodes + alias_edges = self.alias_edges + + walk = [start_node] + + while len(walk) < walk_length: + cur = walk[-1] + cur_nbrs = list(G.neighbors(cur)) + if len(cur_nbrs) > 0: + if len(walk) == 1: + walk.append( + cur_nbrs[alias.alias_sample(alias_nodes[cur][0], alias.alias_nodes[cur][1])]) + else: + prev = walk[-2] + edge = (prev, cur) + next_node = cur_nbrs[alias.alias_sample(alias_edges[edge][0], + alias_edges[edge][1])] + walk.append(next_node) + else: + break + + return walk + + def node2vec_walk2(self, walk_length, start_node): + """ + Reference: + KnightKing: A Fast Distributed Graph Random Walk Engine + http://madsys.cs.tsinghua.edu.cn/publications/SOSP19-yang.pdf + """ + + def rejection_sample(inv_p, inv_q, nbrs_num): + upper_bound = max(1.0, max(inv_p, inv_q)) + lower_bound = min(1.0, min(inv_p, inv_q)) + shatter = 0 + second_upper_bound = max(1.0, inv_q) + if (inv_p > second_upper_bound): + shatter = second_upper_bound / nbrs_num + upper_bound = second_upper_bound + shatter + return upper_bound, lower_bound, shatter + + G = self.G + alias_nodes = self.alias_nodes + inv_p = 1.0 / self.p + inv_q = 1.0 / self.q + walk = [start_node] + while len(walk) < walk_length: + cur = walk[-1] + cur_nbrs = list(G.neighbors(cur)) + if len(cur_nbrs) > 0: + if len(walk) == 1: + walk.append( + cur_nbrs[alias.alias_sample(alias_nodes[cur][0], alias_nodes[cur][1])]) + else: + upper_bound, lower_bound, shatter = rejection_sample( + inv_p, inv_q, len(cur_nbrs)) + prev = walk[-2] + prev_nbrs = set(G.neighbors(prev)) + while True: + prob = random.random() * upper_bound + if (prob + shatter >= upper_bound): + next_node = prev + break + next_node = cur_nbrs[alias.alias_sample( + alias_nodes[cur][0], alias_nodes[cur][1])] + if (prob < lower_bound): + break + if (prob < inv_p and next_node == prev): + break + _prob = 1.0 if next_node in prev_nbrs else inv_q + if (prob < _prob): + break + walk.append(next_node) + else: + break + return walk + + def simulate_walks(self, num_walks, walk_length, workers=16, verbose=0): + + G = self.G + + nodes = list(G.nodes()) + + results = Parallel(n_jobs=workers, verbose=verbose, )( + delayed(self._simulate_walks)(nodes, num, walk_length) for num in + utils.partition_num(num_walks, workers)) + + walks = list(itertools.chain(*results)) + + return walks + + def _simulate_walks(self, nodes, num_walks, walk_length,): + walks = [] + for _ in range(num_walks): + print("num_walks",num_walks,len(nodes)) + random.shuffle(nodes) + for v in nodes: + #if self.p == 1 and self.q == 1: + walks.append(self.deepwalk_walk( + walk_length=walk_length, start_node=v)) + #elif self.use_rejection_sampling: + # walks.append(self.node2vec_walk2( + # walk_length=walk_length, start_node=v)) + #else: + # walks.append(self.node2vec_walk( + # walk_length=walk_length, start_node=v)) + return walks + + def get_alias_edge(self, t, v): + """ + compute unnormalized transition probability between nodes v and its neighbors give the previous visited node t. + :param t: + :param v: + :return: + """ + G = self.G + p = self.p + q = self.q + + unnormalized_probs = [] + for x in G.neighbors(v): + weight = G[v][x].get('weight', 1.0) # w_vx + if x == t: # d_tx == 0 + unnormalized_probs.append(weight/p) + elif G.has_edge(x, t): # d_tx == 1 + unnormalized_probs.append(weight) + else: # d_tx > 1 + unnormalized_probs.append(weight/q) + norm_const = sum(unnormalized_probs) + normalized_probs = [ + float(u_prob)/norm_const for u_prob in unnormalized_probs] + + return alias.create_alias_table(normalized_probs) + + def preprocess_transition_probs(self): + """ + Preprocessing of transition probabilities for guiding the random walks. + """ + G = self.G + alias_nodes = {} + for node in G.nodes(): + unnormalized_probs = [G[node][nbr].get('weight', 1.0) + for nbr in G.neighbors(node)] + norm_const = sum(unnormalized_probs) + normalized_probs = [ + float(u_prob)/norm_const for u_prob in unnormalized_probs] + alias_nodes[node] = alias.create_alias_table(normalized_probs) + + if not self.use_rejection_sampling: + alias_edges = {} + + for edge in G.edges(): + alias_edges[edge] = self.get_alias_edge(edge[0], edge[1]) + if not G.is_directed(): + alias_edges[(edge[1], edge[0])] = self.get_alias_edge(edge[1], edge[0]) + self.alias_edges = alias_edges + + self.alias_nodes = alias_nodes + return + + +class BiasedWalker: + def __init__(self, idx2node, temp_path): + + self.idx2node = idx2node + self.idx = list(range(len(self.idx2node))) + self.temp_path = temp_path + pass + + def simulate_walks(self, num_walks, walk_length, stay_prob=0.3, workers=1, verbose=0): + + layers_adj = pd.read_pickle(self.temp_path+'layers_adj.pkl') + layers_alias = pd.read_pickle(self.temp_path+'layers_alias.pkl') + layers_accept = pd.read_pickle(self.temp_path+'layers_accept.pkl') + gamma = pd.read_pickle(self.temp_path+'gamma.pkl') + walks = [] + initialLayer = 0 + + nodes = self.idx # list(self.g.nodes()) + + results = Parallel(n_jobs=workers, verbose=verbose, )( + delayed(self._simulate_walks)(nodes, num, walk_length, stay_prob, layers_adj, layers_accept, layers_alias, gamma) for num in + utils.partition_num(num_walks, workers)) + + walks = list(itertools.chain(*results)) + return walks + + def _simulate_walks(self, nodes, num_walks, walk_length, stay_prob, layers_adj, layers_accept, layers_alias, gamma): + walks = [] + for _ in range(num_walks): + random.shuffle(nodes) + for v in nodes: + walks.append(self._exec_random_walk(layers_adj, layers_accept, layers_alias, + v, walk_length, gamma, stay_prob)) + return walks + + def _exec_random_walk(self, graphs, layers_accept, layers_alias, v, walk_length, gamma, stay_prob=0.3): + initialLayer = 0 + layer = initialLayer + + path = [] + path.append(self.idx2node[v]) + + while len(path) < walk_length: + r = random.random() + if(r < stay_prob): # same layer + v = chooseNeighbor(v, graphs, layers_alias, + layers_accept, layer) + path.append(self.idx2node[v]) + else: # different layer + r = random.random() + try: + x = math.log(gamma[layer][v] + math.e) + p_moveup = (x / (x + 1)) + except: + print(layer, v) + raise ValueError() + + if(r > p_moveup): + if(layer > initialLayer): + layer = layer - 1 + else: + if((layer + 1) in graphs and v in graphs[layer + 1]): + layer = layer + 1 + + return path + + +def chooseNeighbor(v, graphs, layers_alias, layers_accept, layer): + + v_list = graphs[layer][v] + + idx = alias.alias_sample(layers_accept[layer][v], layers_alias[layer][v]) + v = v_list[idx] + + return v diff --git a/GraphEmbedding-master/ge/models/__init__.py b/GraphEmbedding-master/ge/models/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..d2375e9b613aaca5409cf31ff0cb6b970bbbee3e --- /dev/null +++ b/GraphEmbedding-master/ge/models/__init__.py @@ -0,0 +1,8 @@ +from .deepwalk import DeepWalk +from .node2vec import Node2Vec +from .line import LINE +from .sdne import SDNE +from .struc2vec import Struc2Vec + + +__all__ = ["DeepWalk", "Node2Vec", "LINE", "SDNE", "Struc2Vec"] diff --git a/GraphEmbedding-master/pics/code.png b/GraphEmbedding-master/pics/code.png new file mode 100644 index 0000000000000000000000000000000000000000..aa53cbf490a030e4ee2379f31094a1d11259c04f Binary files /dev/null and b/GraphEmbedding-master/pics/code.png differ diff --git a/GraphEmbedding-master/pics/deepctrbot.png b/GraphEmbedding-master/pics/deepctrbot.png new file mode 100644 index 0000000000000000000000000000000000000000..67d0d23f4fecf925fd260a23425bc3a7acb38a4e Binary files /dev/null and b/GraphEmbedding-master/pics/deepctrbot.png differ diff --git a/GraphEmbedding-master/pics/edge_list.png b/GraphEmbedding-master/pics/edge_list.png new file mode 100644 index 0000000000000000000000000000000000000000..09f69ecb75908bf147149abad5b62037ea8ac704 Binary files /dev/null and b/GraphEmbedding-master/pics/edge_list.png differ diff --git a/GraphEmbedding-master/pics/weichennote.png b/GraphEmbedding-master/pics/weichennote.png new file mode 100644 index 0000000000000000000000000000000000000000..0b60a2f3fc1c4ee4a0d3a6be0f7c16ee17a1854d Binary files /dev/null and b/GraphEmbedding-master/pics/weichennote.png differ diff --git a/GraphEmbedding-master/setup.py b/GraphEmbedding-master/setup.py new file mode 100644 index 0000000000000000000000000000000000000000..dca2250c8e1b93098dcc5caa703f24704f08ceac --- /dev/null +++ b/GraphEmbedding-master/setup.py @@ -0,0 +1,55 @@ +import setuptools + + +with open("README.md", "r", encoding="utf8") as fh: + + long_description = fh.read() + + +REQUIRED_PACKAGES = [ + # 'tensorflow>=1.4.0,<=1.12.0', + 'gensim==3.6.0', + 'networkx==2.1', + 'joblib==0.13.0', + 'fastdtw==0.3.2', + 'tqdm', + 'numpy', + 'scikit-learn', + 'pandas', + 'matplotlib', +] + + +setuptools.setup( + + name="ge", + + version="0.0.0", + + author="Weichen Shen", + + author_email="wcshen1994@163.com", + + url="https://github.com/shenweichen/GraphEmbedding", + + packages=setuptools.find_packages(exclude=[]), + + python_requires='>=3.4', # 3.4.6 + + install_requires=REQUIRED_PACKAGES, + + extras_require={ + + "cpu": ['tensorflow>=1.4.0,!=1.7.*,!=1.8.*'], + + "gpu": ['tensorflow-gpu>=1.4.0,!=1.7.*,!=1.8.*'], + + }, + + entry_points={ + + }, + license="MIT license", + + +) diff --git a/PatternRecognition/.gitignore b/PatternRecognition/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..69fa6ec5807fa2190ce813e32ab044cd137bb7e5 --- /dev/null +++ b/PatternRecognition/.gitignore @@ -0,0 +1,14 @@ +*.pyc +.DS_Store +target +bin +build +.gradle +*.iml +*.ipr +*.iws +*.log +.classpath +.project +.settings +.idea \ No newline at end of file diff --git a/PatternRecognition/.vs/ProjectSettings.json b/PatternRecognition/.vs/ProjectSettings.json new file mode 100644 index 0000000000000000000000000000000000000000..f8b4888565caadc7510be75682268d6c18edd6de --- /dev/null +++ b/PatternRecognition/.vs/ProjectSettings.json @@ -0,0 +1,3 @@ +{ + "CurrentProjectSetting": null +} \ No newline at end of file diff --git a/PatternRecognition/.vs/VSWorkspaceState.json b/PatternRecognition/.vs/VSWorkspaceState.json new file mode 100644 index 0000000000000000000000000000000000000000..53e356d73ea5b5421cc58efd95b77a51d8b72e86 --- /dev/null +++ b/PatternRecognition/.vs/VSWorkspaceState.json @@ -0,0 +1,8 @@ +{ + "ExpandedNodes": [ + "", + "\\src" + ], + "SelectedNode": "\\src\\main.py", + "PreviewInSolutionExplorer": false +} \ No newline at end of file diff --git a/PatternRecognition/.vs/node2vec/v16/.suo b/PatternRecognition/.vs/node2vec/v16/.suo new file mode 100644 index 0000000000000000000000000000000000000000..28d9197933b48a60810e1de8b7f6984eab21ecf5 Binary files /dev/null and b/PatternRecognition/.vs/node2vec/v16/.suo differ diff --git a/PatternRecognition/.vs/slnx.sqlite b/PatternRecognition/.vs/slnx.sqlite new file mode 100644 index 0000000000000000000000000000000000000000..3a391b9a8743f60fb7add8a286c2aee46a941bdc Binary files /dev/null and b/PatternRecognition/.vs/slnx.sqlite differ diff --git a/PatternRecognition/LICENSE.md b/PatternRecognition/LICENSE.md new file mode 100644 index 0000000000000000000000000000000000000000..af4a91f64f74568d793db4d74cd42a9ae014408b --- /dev/null +++ b/PatternRecognition/LICENSE.md @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2016 Aditya Grover + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/PatternRecognition/README.md b/PatternRecognition/README.md new file mode 100644 index 0000000000000000000000000000000000000000..a6c4e85d9ebf2f559530e9e08ff1fb7c5d15f68d --- /dev/null +++ b/PatternRecognition/README.md @@ -0,0 +1,55 @@ +# node2vec + +This repository provides a reference implementation of *node2vec* as described in the paper:<br> +> node2vec: Scalable Feature Learning for Networks.<br> +> Aditya Grover and Jure Leskovec.<br> +> Knowledge Discovery and Data Mining, 2016.<br> +> <Insert paper link> + +The *node2vec* algorithm learns continuous representations for nodes in any (un)directed, (un)weighted graph. Please check the [project page](https://snap.stanford.edu/node2vec/) for more details. + +### Basic Usage + +#### Example +To run *node2vec* on Zachary's karate club network, execute the following command from the project home directory:<br/> + ``python src/main.py --input graph/karate.edgelist --output emb/karate.emd`` + +#### Options +You can check out the other options available to use with *node2vec* using:<br/> + ``python src/main.py --help`` + +#### Input +The supported input format is an edgelist: + + node1_id_int node2_id_int <weight_float, optional> + +The graph is assumed to be undirected and unweighted by default. These options can be changed by setting the appropriate flags. + +#### Output +The output file has *n+1* lines for a graph with *n* vertices. +The first line has the following format: + + num_of_nodes dim_of_representation + +The next *n* lines are as follows: + + node_id dim1 dim2 ... dimd + +where dim1, ... , dimd is the *d*-dimensional representation learned by *node2vec*. + +### Citing +If you find *node2vec* useful for your research, please consider citing the following paper: + + @inproceedings{node2vec-kdd2016, + author = {Grover, Aditya and Leskovec, Jure}, + title = {node2vec: Scalable Feature Learning for Networks}, + booktitle = {Proceedings of the 22nd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining}, + year = {2016} + } + + +### Miscellaneous + +Please send any questions you might have about the code and/or the algorithm to <adityag@cs.stanford.edu>. + +*Note:* This is only a reference implementation of the *node2vec* algorithm and could benefit from several performance enhancement schemes, some of which are discussed in the paper. diff --git a/PatternRecognition/emb/karate.emb b/PatternRecognition/emb/karate.emb new file mode 100644 index 0000000000000000000000000000000000000000..68a5648c6804a053e770d90d548473e554526901 Binary files /dev/null and b/PatternRecognition/emb/karate.emb differ diff --git a/PatternRecognition/node2vec_spark/README.md b/PatternRecognition/node2vec_spark/README.md new file mode 100644 index 0000000000000000000000000000000000000000..43f6684f3ee409868b581e33895ea521858ee811 --- /dev/null +++ b/PatternRecognition/node2vec_spark/README.md @@ -0,0 +1,139 @@ +# node2vec on spark + +This library is a implementation using scala for running on spark of *node2vec* as described in the paper: +> node2vec: Scalable Feature Learning for Networks. +> Aditya Grover and Jure Leskovec. +> Knowledge Discovery and Data Mining, 2016. +> <Insert paper link> + +The *node2vec* algorithm learns continuous representations for nodes in any (un)directed, (un)weighted graph. Please check the [project page](https://snap.stanford.edu/node2vec/) for more details. + + +### Building node2vec_spark +**In order to build node2vec_spark, use the following:** + +``` +$ git clone https://github.com/Skarface-/node2vec.git +$ mvn clean package +``` + +**and requires:**<br/> +Maven 3.0.5 or newer<br/> +Java 7+<br/> +Scala 2.10 or newer. + +This will produce jar file in "node2vec_spark/target/" + +### Examples +This library has two functions: *randomwalk* and *embedding*. <br/> +These were described in these papers [node2vec: Scalable Feature Learning for Networks](http://arxiv.org/abs/1607.00653) and [Efficient Estimation of Word Representations in Vector Space](https://arxiv.org/abs/1301.3781). + +### Random walk +Example: + + ./spark-submit --class com.navercorp.Main \ + ./node2vec_spark/target/node2vec-0.0.1-SNAPSHOT.jar \ + --cmd randomwalk --p 100.0 --q 100.0 --walkLength 40 \ + --input <input> --output <output> + +#### Options +Invoke a command without arguments to list available arguments and their default values: + +``` +--cmd COMMAND + Functions: randomwalk or embedding. If you want to execute all functions "randomwalk" and "embedding" sequentially input "node2vec". Default "node2vec" +--input [INPUT] + Input edgelist path. The supported input format is an edgelist: "node1_id_int node2_id_int <weight_float, optional>" +--output [OUTPUT] + Random paths path. +--walkLength WALK_LENGTH + Length of walk per source. Default is 80. +--numWalks NUM_WALKS + Number of walks per source. Default is 10. +--p P + Return hyperparaemter. Default is 1.0. +--q Q + Inout hyperparameter. Default is 1.0. +--weighted Boolean + Specifying (un)weighted. Default is true. +--directed Boolean + Specifying (un)directed. Default is false. +--degree UPPER_BOUND_OF_NUMBER_OF_NEIGHBORS + Specifying upper bound of number of neighbors. Default is 30. +--indexed Boolean + Specifying whether nodes in edgelist are indexed or not. Default is true. +``` + +* If "indexed" is set to false, *node2vec_spark* index nodes in input edgelist, example: <br/> + **unindexed edgelist:**<br/> + node1 node2 1.0<br/> + node2 node7 1.0<br/> + + **indexed:**<br/> + 1 2 1.0<br/> + 2 3 1.0<br/> + + 1 node1<br/> + 2 node2<br/> + 3 node7 + +#### Input +The supported input format is an edgelist: + + node1_id_int node2_id_int <weight_float, optional> + or + node1_str node2_str <weight_float, optional>, Please set the option "indexed" to false + + +#### Output +The output file (number of nodes)*numWalks random paths as follows: + + src_node_id_int node1_id_int node2_id_int ... noden_id_int + + +### Embedding random paths +Example: + + ./spark-submit --class com.navercorp.Main \ + ./node2vec_spark/target/node2vec-0.0.1-SNAPSHOT.jar \ + --cmd embedding --dim 50 --iter 20 \ + --input <input> --nodePath <node2id_path> --output <output> + +#### Options +Invoke a command without arguments to list available arguments and their default values: + +``` +--cmd COMMAND + embedding. If you want to execute sequentially all functions: "randomwalk" and "embedding", input "node2vec". default "node2vec" +--input [INPUT] + Input random paths. The supported input format is an random paths: "src_node_id_int node1_id_int ... noden_id_int" +--output [OUTPUT] + word2vec model(.bin) and embeddings(.emb). +--nodePath [NODE\_PATH] + Input node2index path. The supported input format: "node1_str node1_id_int" +--iter ITERATION + Number of epochs in SGD. Default 10. +--dim DIMENSION + Number of dimensions. Default is 128. +--window WINDOW_SIZE + Context size for optimization. Default is 10. + +``` + +#### Input +The supported input format is an random paths: + + src_node_id_int node1_id_int ... noden_id_int + +#### Output +The output files are **embeddings and word2vec model.** The embeddings file has the following format: + + node1_str dim1 dim2 ... dimd + +where dim1, ... , dimd is the d-dimensional representation learned by word2vec. + +the output file *word2vec model* has the spark word2vec model format. please reference to https://spark.apache.org/docs/1.5.2/mllib-feature-extraction.html#word2vec + +## References +1. [node2vec: Scalable Feature Learning for Networks](http://arxiv.org/abs/1607.00653) +2. [Efficient Estimation of Word Representations in Vector Space](https://arxiv.org/abs/1301.3781) \ No newline at end of file diff --git a/PatternRecognition/node2vec_spark/pom.xml b/PatternRecognition/node2vec_spark/pom.xml new file mode 100644 index 0000000000000000000000000000000000000000..b958576139df8d08ceca4e7fa2c148fe54d8de05 --- /dev/null +++ b/PatternRecognition/node2vec_spark/pom.xml @@ -0,0 +1,129 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> + + <modelVersion>4.0.0</modelVersion> + + <groupId>com.navercorp</groupId> + <artifactId>node2vec</artifactId> + <packaging>jar</packaging> + <version>0.0.1-SNAPSHOT</version> + + <name>node2vec_spark</name> + <url>http://snap.stanford.edu/node2vec/</url> + + <properties> + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> + <shadedClassifier>bin</shadedClassifier> + <maven-shade-plugin.version>2.4.3</maven-shade-plugin.version> + <exec-maven-plugin.version>1.4.0</exec-maven-plugin.version> + <java.version>1.7</java.version> + <scala.binary.version>2.10</scala.binary.version> + </properties> + + <build> + <plugins> + <plugin> + <groupId>org.scala-tools</groupId> + <artifactId>maven-scala-plugin</artifactId> + <version>2.15.2</version> + <executions> + <execution> + <goals> + <goal>compile</goal> + </goals> + </execution> + </executions> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-dependency-plugin</artifactId> + <version>2.4</version> + <executions> + <execution> + <id>copy-dependencies</id> + <phase>package</phase> + <goals> + <goal>copy-dependencies</goal> + </goals> + <configuration> + <outputDirectory>${project.build.directory}/lib</outputDirectory> + </configuration> + </execution> + </executions> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-shade-plugin</artifactId> + <version>1.6</version> + <executions> + <execution> + <phase>package</phase> + <goals> + <goal>shade</goal> + </goals> + </execution> + </executions> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-compiler-plugin</artifactId> + <version>2.3.2</version> + <configuration> + <source>1.7</source> + <target>1.7</target> + <encoding>UTF-8</encoding> + </configuration> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-surefire-plugin</artifactId> + <configuration> + <skip>false</skip> + </configuration> + </plugin> + </plugins> + </build> + + <dependencies> + <dependency> + <groupId>org.apache.hadoop</groupId> + <artifactId>hadoop-hdfs</artifactId> + <version>2.7.1</version> + </dependency> + <dependency> + <groupId>org.scala-lang</groupId> + <artifactId>scala-library</artifactId> + <version>${scala.binary.version}.5</version> + <scope>provided</scope> + </dependency> + <dependency> + <groupId>org.apache.spark</groupId> + <artifactId>spark-core_${scala.binary.version}</artifactId> + <version>1.6.1</version> + <scope>provided</scope> + </dependency> + <dependency> + <groupId>org.apache.spark</groupId> + <artifactId>spark-mllib_${scala.binary.version}</artifactId> + <version>1.6.1</version> + <scope>provided</scope> + </dependency> + <dependency> + <groupId>com.github.scopt</groupId> + <artifactId>scopt_${scala.binary.version}</artifactId> + <version>3.3.0</version> + <exclusions> + <exclusion> + <groupId>org.scala-lang</groupId> + <artifactId>scala-library</artifactId> + </exclusion> + </exclusions> + </dependency> + <dependency> + <groupId>com.google.guava</groupId> + <artifactId>guava</artifactId> + <version>19.0</version> + </dependency> + </dependencies> + +</project> diff --git a/PatternRecognition/node2vec_spark/src/main/resources/log4j2.properties b/PatternRecognition/node2vec_spark/src/main/resources/log4j2.properties new file mode 100644 index 0000000000000000000000000000000000000000..d941e1b93b743323b4d3dacdfbb14b7a39af33bb --- /dev/null +++ b/PatternRecognition/node2vec_spark/src/main/resources/log4j2.properties @@ -0,0 +1,9 @@ + +appender.out.type = Console +appender.out.name = out +appender.out.layout.type = PatternLayout +appender.out.layout.pattern = [%30.30t] %-30.30c{1} %-5p %m%n +logger.springframework.name = org.springframework +logger.springframework.level = WARN +rootLogger.level = INFO +rootLogger.appenderRef.out.ref = out diff --git a/PatternRecognition/node2vec_spark/src/main/scala/com/navercorp/Main.scala b/PatternRecognition/node2vec_spark/src/main/scala/com/navercorp/Main.scala new file mode 100644 index 0000000000000000000000000000000000000000..f3494e54ee87f5d7b51ee2e8d56b143ca6a4359a --- /dev/null +++ b/PatternRecognition/node2vec_spark/src/main/scala/com/navercorp/Main.scala @@ -0,0 +1,119 @@ +package com.navercorp + +import java.io.Serializable +import org.apache.spark.{SparkContext, SparkConf} +import scopt.OptionParser +import com.navercorp.lib.AbstractParams + +object Main { + object Command extends Enumeration { + type Command = Value + val node2vec, randomwalk, embedding = Value + } + import Command._ + + case class Params(iter: Int = 10, + lr: Double = 0.025, + numPartition: Int = 10, + dim: Int = 128, + window: Int = 10, + walkLength: Int = 80, + numWalks: Int = 10, + p: Double = 1.0, + q: Double = 1.0, + weighted: Boolean = true, + directed: Boolean = false, + degree: Int = 30, + indexed: Boolean = true, + nodePath: String = null, + input: String = null, + output: String = null, + cmd: Command = Command.node2vec) extends AbstractParams[Params] with Serializable + val defaultParams = Params() + + val parser = new OptionParser[Params]("Node2Vec_Spark") { + head("Main") + opt[Int]("walkLength") + .text(s"walkLength: ${defaultParams.walkLength}") + .action((x, c) => c.copy(walkLength = x)) + opt[Int]("numWalks") + .text(s"numWalks: ${defaultParams.numWalks}") + .action((x, c) => c.copy(numWalks = x)) + opt[Double]("p") + .text(s"return parameter p: ${defaultParams.p}") + .action((x, c) => c.copy(p = x)) + opt[Double]("q") + .text(s"in-out parameter q: ${defaultParams.q}") + .action((x, c) => c.copy(q = x)) + opt[Boolean]("weighted") + .text(s"weighted: ${defaultParams.weighted}") + .action((x, c) => c.copy(weighted = x)) + opt[Boolean]("directed") + .text(s"directed: ${defaultParams.directed}") + .action((x, c) => c.copy(directed = x)) + opt[Int]("degree") + .text(s"degree: ${defaultParams.degree}") + .action((x, c) => c.copy(degree = x)) + opt[Boolean]("indexed") + .text(s"Whether nodes are indexed or not: ${defaultParams.indexed}") + .action((x, c) => c.copy(indexed = x)) + opt[String]("nodePath") + .text("Input node2index file path: empty") + .action((x, c) => c.copy(nodePath = x)) + opt[String]("input") + .required() + .text("Input edge file path: empty") + .action((x, c) => c.copy(input = x)) + opt[String]("output") + .required() + .text("Output path: empty") + .action((x, c) => c.copy(output = x)) + opt[String]("cmd") + .required() + .text(s"command: ${defaultParams.cmd.toString}") + .action((x, c) => c.copy(cmd = Command.withName(x))) + note( + """ + |For example, the following command runs this app on a synthetic dataset: + | + | bin/spark-submit --class com.nhn.sunny.vegapunk.ml.model.Node2vec \ + """.stripMargin + + s"| --lr ${defaultParams.lr}" + + s"| --iter ${defaultParams.iter}" + + s"| --numPartition ${defaultParams.numPartition}" + + s"| --dim ${defaultParams.dim}" + + s"| --window ${defaultParams.window}" + + s"| --input <path>" + + s"| --node <nodeFilePath>" + + s"| --output <path>" + ) + } + + def main(args: Array[String]) = { + parser.parse(args, defaultParams).map { param => + val conf = new SparkConf().setAppName("Node2Vec") + val context: SparkContext = new SparkContext(conf) + + Node2vec.setup(context, param) + + param.cmd match { + case Command.node2vec => Node2vec.load() + .initTransitionProb() + .randomWalk() + .embedding() + .save() + case Command.randomwalk => Node2vec.load() + .initTransitionProb() + .randomWalk() + .saveRandomPath() + case Command.embedding => { + val randomPaths = Word2vec.setup(context, param).read(param.input) + Word2vec.fit(randomPaths).save(param.output) + Node2vec.loadNode2Id(param.nodePath).saveVectors() + } + } + } getOrElse { + sys.exit(1) + } + } +} diff --git a/PatternRecognition/node2vec_spark/src/main/scala/com/navercorp/Node2vec.scala b/PatternRecognition/node2vec_spark/src/main/scala/com/navercorp/Node2vec.scala new file mode 100644 index 0000000000000000000000000000000000000000..07ec21a1d2cd04b9ae920804c42ad1a9d6049cea --- /dev/null +++ b/PatternRecognition/node2vec_spark/src/main/scala/com/navercorp/Node2vec.scala @@ -0,0 +1,281 @@ +package com.navercorp + + +import java.io.Serializable +import scala.util.Try +import scala.collection.mutable.ArrayBuffer +import org.slf4j.{Logger, LoggerFactory} +import org.apache.spark.SparkContext +import org.apache.spark.rdd.RDD +import org.apache.spark.graphx.{EdgeTriplet, Graph, _} +import com.navercorp.graph.{GraphOps, EdgeAttr, NodeAttr} + +object Node2vec extends Serializable { + lazy val logger: Logger = LoggerFactory.getLogger(getClass.getName); + + var context: SparkContext = null + var config: Main.Params = null + var node2id: RDD[(String, Long)] = null + var indexedEdges: RDD[Edge[EdgeAttr]] = _ + var indexedNodes: RDD[(VertexId, NodeAttr)] = _ + var graph: Graph[NodeAttr, EdgeAttr] = _ + var randomWalkPaths: RDD[(Long, ArrayBuffer[Long])] = null + + def setup(context: SparkContext, param: Main.Params): this.type = { + this.context = context + this.config = param + + this + } + + def load(): this.type = { + val bcMaxDegree = context.broadcast(config.degree) + val bcEdgeCreator = config.directed match { + case true => context.broadcast(GraphOps.createDirectedEdge) + case false => context.broadcast(GraphOps.createUndirectedEdge) + } + + val inputTriplets: RDD[(Long, Long, Double)] = config.indexed match { + case true => readIndexedGraph(config.input) + case false => indexingGraph(config.input) + } + + indexedNodes = inputTriplets.flatMap { case (srcId, dstId, weight) => + bcEdgeCreator.value.apply(srcId, dstId, weight) + }.reduceByKey(_++_).map { case (nodeId, neighbors: Array[(VertexId, Double)]) => + var neighbors_ = neighbors + if (neighbors_.length > bcMaxDegree.value) { + neighbors_ = neighbors.sortWith{ case (left, right) => left._2 > right._2 }.slice(0, bcMaxDegree.value) + } + + (nodeId, NodeAttr(neighbors = neighbors_.distinct)) + }.repartition(200).cache + + indexedEdges = indexedNodes.flatMap { case (srcId, clickNode) => + clickNode.neighbors.map { case (dstId, weight) => + Edge(srcId, dstId, EdgeAttr()) + } + }.repartition(200).cache + + this + } + + def initTransitionProb(): this.type = { + val bcP = context.broadcast(config.p) + val bcQ = context.broadcast(config.q) + + graph = Graph(indexedNodes, indexedEdges) + .mapVertices[NodeAttr] { case (vertexId, clickNode) => + val (j, q) = GraphOps.setupAlias(clickNode.neighbors) + val nextNodeIndex = GraphOps.drawAlias(j, q) + clickNode.path = Array(vertexId, clickNode.neighbors(nextNodeIndex)._1) + + clickNode + } + .mapTriplets { edgeTriplet: EdgeTriplet[NodeAttr, EdgeAttr] => + val (j, q) = GraphOps.setupEdgeAlias(bcP.value, bcQ.value)(edgeTriplet.srcId, edgeTriplet.srcAttr.neighbors, edgeTriplet.dstAttr.neighbors) + edgeTriplet.attr.J = j + edgeTriplet.attr.q = q + edgeTriplet.attr.dstNeighbors = edgeTriplet.dstAttr.neighbors.map(_._1) + + edgeTriplet.attr + }.cache + + this + } + + def randomWalk(): this.type = { + val edge2attr = graph.triplets.map { edgeTriplet => + (s"${edgeTriplet.srcId}${edgeTriplet.dstId}", edgeTriplet.attr) + }.repartition(200).cache + edge2attr.first + + for (iter <- 0 until config.numWalks) { + var prevWalk: RDD[(Long, ArrayBuffer[Long])] = null + var randomWalk = graph.vertices.map { case (nodeId, clickNode) => + val pathBuffer = new ArrayBuffer[Long]() + pathBuffer.append(clickNode.path:_*) + (nodeId, pathBuffer) + }.cache + var activeWalks = randomWalk.first + graph.unpersist(blocking = false) + graph.edges.unpersist(blocking = false) + for (walkCount <- 0 until config.walkLength) { + prevWalk = randomWalk + randomWalk = randomWalk.map { case (srcNodeId, pathBuffer) => + val prevNodeId = pathBuffer(pathBuffer.length - 2) + val currentNodeId = pathBuffer.last + + (s"$prevNodeId$currentNodeId", (srcNodeId, pathBuffer)) + }.join(edge2attr).map { case (edge, ((srcNodeId, pathBuffer), attr)) => + try { + val nextNodeIndex = GraphOps.drawAlias(attr.J, attr.q) + val nextNodeId = attr.dstNeighbors(nextNodeIndex) + pathBuffer.append(nextNodeId) + + (srcNodeId, pathBuffer) + } catch { + case e: Exception => throw new RuntimeException(e.getMessage) + } + }.cache + + activeWalks = randomWalk.first() + prevWalk.unpersist(blocking=false) + } + + + if (randomWalkPaths != null) { + val prevRandomWalkPaths = randomWalkPaths + randomWalkPaths = randomWalkPaths.union(randomWalk).cache() + randomWalkPaths.first + prevRandomWalkPaths.unpersist(blocking = false) + } else { + randomWalkPaths = randomWalk + } + } + + this + } + + def embedding(): this.type = { + val randomPaths = randomWalkPaths.map { case (vertexId, pathBuffer) => + Try(pathBuffer.map(_.toString).toIterable).getOrElse(null) + }.filter(_!=null) + + Word2vec.setup(context, config).fit(randomPaths) + + this + } + + def save(): this.type = { + this.saveRandomPath() + .saveModel() + .saveVectors() + } + + def saveRandomPath(): this.type = { + randomWalkPaths + .map { case (vertexId, pathBuffer) => + Try(pathBuffer.mkString("\t")).getOrElse(null) + } + .filter(x => x != null && x.replaceAll("\\s", "").length > 0) + .repartition(200) + .saveAsTextFile(config.output) + + this + } + + def saveModel(): this.type = { + Word2vec.save(config.output) + + this + } + + def saveVectors(): this.type = { + val node2vector = context.parallelize(Word2vec.getVectors.toList) + .map { case (nodeId, vector) => + (nodeId.toLong, vector.mkString(",")) + } + + if (this.node2id != null) { + val id2Node = this.node2id.map{ case (strNode, index) => + (index, strNode) + } + + node2vector.join(id2Node) + .map { case (nodeId, (vector, name)) => s"$name\t$vector" } + .repartition(200) + .saveAsTextFile(s"${config.output}.emb") + } else { + node2vector.map { case (nodeId, vector) => s"$nodeId\t$vector" } + .repartition(200) + .saveAsTextFile(s"${config.output}.emb") + } + + this + } + + def cleanup(): this.type = { + node2id.unpersist(blocking = false) + indexedEdges.unpersist(blocking = false) + indexedNodes.unpersist(blocking = false) + graph.unpersist(blocking = false) + randomWalkPaths.unpersist(blocking = false) + + this + } + + def loadNode2Id(node2idPath: String): this.type = { + try { + this.node2id = context.textFile(config.nodePath).map { node2index => + val Array(strNode, index) = node2index.split("\\s") + (strNode, index.toLong) + } + } catch { + case e: Exception => logger.info("Failed to read node2index file.") + this.node2id = null + } + + this + } + + def readIndexedGraph(tripletPath: String) = { + val bcWeighted = context.broadcast(config.weighted) + + val rawTriplets = context.textFile(tripletPath) + if (config.nodePath == null) { + this.node2id = createNode2Id(rawTriplets.map { triplet => + val parts = triplet.split("\\s") + (parts.head, parts(1), -1) + }) + } else { + loadNode2Id(config.nodePath) + } + + rawTriplets.map { triplet => + val parts = triplet.split("\\s") + val weight = bcWeighted.value match { + case true => Try(parts.last.toDouble).getOrElse(1.0) + case false => 1.0 + } + + (parts.head.toLong, parts(1).toLong, weight) + } + } + + + def indexingGraph(rawTripletPath: String): RDD[(Long, Long, Double)] = { + val rawEdges = context.textFile(rawTripletPath).map { triplet => + val parts = triplet.split("\\s") + + Try { + (parts.head, parts(1), Try(parts.last.toDouble).getOrElse(1.0)) + }.getOrElse(null) + }.filter(_!=null) + + this.node2id = createNode2Id(rawEdges) + + rawEdges.map { case (src, dst, weight) => + (src, (dst, weight)) + }.join(node2id).map { case (src, (edge: (String, Double), srcIndex: Long)) => + try { + val (dst: String, weight: Double) = edge + (dst, (srcIndex, weight)) + } catch { + case e: Exception => null + } + }.filter(_!=null).join(node2id).map { case (dst, (edge: (Long, Double), dstIndex: Long)) => + try { + val (srcIndex, weight) = edge + (srcIndex, dstIndex, weight) + } catch { + case e: Exception => null + } + }.filter(_!=null) + } + + def createNode2Id[T <: Any](triplets: RDD[(String, String, T)]) = triplets.flatMap { case (src, dst, weight) => + Try(Array(src, dst)).getOrElse(Array.empty[String]) + }.distinct().zipWithIndex() + +} diff --git a/PatternRecognition/node2vec_spark/src/main/scala/com/navercorp/Word2vec.scala b/PatternRecognition/node2vec_spark/src/main/scala/com/navercorp/Word2vec.scala new file mode 100644 index 0000000000000000000000000000000000000000..aa209cf6534f795d1a0aed932ec322841fe193c6 --- /dev/null +++ b/PatternRecognition/node2vec_spark/src/main/scala/com/navercorp/Word2vec.scala @@ -0,0 +1,55 @@ +package com.navercorp + +import org.apache.spark.SparkContext +import org.apache.spark.mllib.feature.{Word2Vec, Word2VecModel} +import org.apache.spark.rdd.RDD + +object Word2vec extends Serializable { + var context: SparkContext = null + var word2vec = new Word2Vec() + var model: Word2VecModel = null + + def setup(context: SparkContext, param: Main.Params): this.type = { + this.context = context + /** + * model = sg + * update = hs + */ + word2vec.setLearningRate(param.lr) + .setNumIterations(param.iter) + .setNumPartitions(param.numPartition) + .setMinCount(0) + .setVectorSize(param.dim) + + val word2vecWindowField = word2vec.getClass.getDeclaredField("org$apache$spark$mllib$feature$Word2Vec$$window") + word2vecWindowField.setAccessible(true) + word2vecWindowField.setInt(word2vec, param.window) + + this + } + + def read(path: String): RDD[Iterable[String]] = { + context.textFile(path).repartition(200).map(_.split("\\s").toSeq) + } + + def fit(input: RDD[Iterable[String]]): this.type = { + model = word2vec.fit(input) + + this + } + + def save(outputPath: String): this.type = { + model.save(context, s"$outputPath.bin") + this + } + + def load(path: String): this.type = { + model = Word2VecModel.load(context, path) + + this + } + + def getVectors = this.model.getVectors + +} + diff --git a/PatternRecognition/node2vec_spark/src/main/scala/com/navercorp/graph/GraphOps.scala b/PatternRecognition/node2vec_spark/src/main/scala/com/navercorp/graph/GraphOps.scala new file mode 100644 index 0000000000000000000000000000000000000000..960fa8c9dbcd8437770b422666fe38d0cef75529 --- /dev/null +++ b/PatternRecognition/node2vec_spark/src/main/scala/com/navercorp/graph/GraphOps.scala @@ -0,0 +1,69 @@ +package com.navercorp.graph + +import scala.collection.mutable.ArrayBuffer + +object GraphOps { + def setupAlias(nodeWeights: Array[(Long, Double)]): (Array[Int], Array[Double]) = { + val K = nodeWeights.length + val J = Array.fill(K)(0) + val q = Array.fill(K)(0.0) + + val smaller = new ArrayBuffer[Int]() + val larger = new ArrayBuffer[Int]() + + val sum = nodeWeights.map(_._2).sum + nodeWeights.zipWithIndex.foreach { case ((nodeId, weight), i) => + q(i) = K * weight / sum + if (q(i) < 1.0) { + smaller.append(i) + } else { + larger.append(i) + } + } + + while (smaller.nonEmpty && larger.nonEmpty) { + val small = smaller.remove(smaller.length - 1) + val large = larger.remove(larger.length - 1) + + J(small) = large + q(large) = q(large) + q(small) - 1.0 + if (q(large) < 1.0) smaller.append(large) + else larger.append(large) + } + + (J, q) + } + + def setupEdgeAlias(p: Double = 1.0, q: Double = 1.0)(srcId: Long, srcNeighbors: Array[(Long, Double)], dstNeighbors: Array[(Long, Double)]): (Array[Int], Array[Double]) = { + val neighbors_ = dstNeighbors.map { case (dstNeighborId, weight) => + var unnormProb = weight / q + if (srcId == dstNeighborId) unnormProb = weight / p + else if (srcNeighbors.exists(_._1 == dstNeighborId)) unnormProb = weight + + (dstNeighborId, unnormProb) + } + + setupAlias(neighbors_) + } + + def drawAlias(J: Array[Int], q: Array[Double]): Int = { + val K = J.length + val kk = math.floor(math.random * K).toInt + + if (math.random < q(kk)) kk + else J(kk) + } + + lazy val createUndirectedEdge = (srcId: Long, dstId: Long, weight: Double) => { + Array( + (srcId, Array((dstId, weight))), + (dstId, Array((srcId, weight))) + ) + } + + lazy val createDirectedEdge = (srcId: Long, dstId: Long, weight: Double) => { + Array( + (srcId, Array((dstId, weight))) + ) + } +} diff --git a/PatternRecognition/node2vec_spark/src/main/scala/com/navercorp/graph/package.scala b/PatternRecognition/node2vec_spark/src/main/scala/com/navercorp/graph/package.scala new file mode 100644 index 0000000000000000000000000000000000000000..1b83969c62887ef7f54f1dfc7a1279ab1f4a6476 --- /dev/null +++ b/PatternRecognition/node2vec_spark/src/main/scala/com/navercorp/graph/package.scala @@ -0,0 +1,12 @@ +package com.navercorp + +import java.io.Serializable + +package object graph { + case class NodeAttr(var neighbors: Array[(Long, Double)] = Array.empty[(Long, Double)], + var path: Array[Long] = Array.empty[Long]) extends Serializable + + case class EdgeAttr(var dstNeighbors: Array[Long] = Array.empty[Long], + var J: Array[Int] = Array.empty[Int], + var q: Array[Double] = Array.empty[Double]) extends Serializable +} diff --git a/PatternRecognition/node2vec_spark/src/main/scala/com/navercorp/lib/AbstractParams.scala b/PatternRecognition/node2vec_spark/src/main/scala/com/navercorp/lib/AbstractParams.scala new file mode 100644 index 0000000000000000000000000000000000000000..0790ab9cefa18b4809fe62c29a33f1da30dd56d1 --- /dev/null +++ b/PatternRecognition/node2vec_spark/src/main/scala/com/navercorp/lib/AbstractParams.scala @@ -0,0 +1,53 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.navercorp.lib + +import scala.reflect.runtime.universe._ + +/** + * Abstract class for parameter case classes. + * This overrides the [[toString]] method to print all case class fields by name and value. + * @tparam T Concrete parameter class. + */ +abstract class AbstractParams[T: TypeTag] { + + private def tag: TypeTag[T] = typeTag[T] + + /** + * Finds all case class fields in concrete class instance, and outputs them in JSON-style format: + * { + * [field name]:\t[field value]\n + * [field name]:\t[field value]\n + * ... + * } + */ + override def toString: String = { + val tpe = tag.tpe + val allAccessors = tpe.declarations.collect { + case m: MethodSymbol if m.isCaseAccessor => m + } + val mirror = runtimeMirror(getClass.getClassLoader) + val instanceMirror = mirror.reflect(this) + allAccessors.map { f => + val paramName = f.name.toString + val fieldMirror = instanceMirror.reflectField(f) + val paramValue = fieldMirror.get + s" $paramName:\t$paramValue" + }.mkString("{\n", ",\n", "\n}") + } +} \ No newline at end of file diff --git a/PatternRecognition/requirements.txt b/PatternRecognition/requirements.txt new file mode 100644 index 0000000000000000000000000000000000000000..faa710ca36b26473e27bb1f74af311dd0b0b156d --- /dev/null +++ b/PatternRecognition/requirements.txt @@ -0,0 +1,3 @@ +networkx==1.11 +numpy==1.11.2 +gensim==0.13.3 diff --git a/PatternRecognition/src/Bipartie_convert.py b/PatternRecognition/src/Bipartie_convert.py new file mode 100644 index 0000000000000000000000000000000000000000..017bfe1048d2ec82ec1f0355190c1c0a36023058 --- /dev/null +++ b/PatternRecognition/src/Bipartie_convert.py @@ -0,0 +1,150 @@ +import networkx as nx +import matplotlib.pyplot as plt +import numpy as np +import time +from multiprocessing import Pool +from itertools import repeat +from ANN_CLIQUES import PatternFinding +from train import Training + +def localisation(G,i): + X = [] + a = list(G.neighbors(i)) + if len(G.edges(i)) > 10: + for j in sorted(G.nodes()): + """ + if j > i and G.number_of_edges(i, j) == 0: + X.append(j) + else: + Y.append(j) + """ + if j > i and G.number_of_edges(i,j) == 0 and len(G.edges(j)) > 10: + V = [] + V.append(i) + V.append(j) + + b = list(G.neighbors(j)) + c = list(set(a).intersection(b)) + t = sorted(c) + if len(c) > 0 and t[0] > V[0]: + V = V + c + """ + + for k in c: + if i != j and G.number_of_edges(i, j) == 0 and G.number_of_edges(i,k) == 1 and G.number_of_edges(j, k) == 1: + V.append(k) + else: + if i != j and G.number_of_edges(i, j) == 1 and G.number_of_edges(i,k) == 0 and k in G.nodes() and G.number_of_edges(j, k) == 0 and Voisin(k, V, G): + V.append(k) + + #print("le commun entre : ",i,j,list(set(a) & set(b))) + for k in G.nodes(): + if i != j and G.number_of_edges(i,j) == 0 and G.number_of_edges(i,k) == 1 and G.number_of_edges(j,k) == 1: + V.append(k) + else: + if i != j and G.number_of_edges(i,j) == 1 and G.number_of_edges(i,k) == 0 and k in G.nodes() and G.number_of_edges(j,k) == 0 and Voisin(k,V,G): + V.append(k) + """ + if len(V) > 3: + X.append(V) + return X + else: + return None + +def Voisin(c,G): + k = [] + for i in range(len(c)): + for j in range(len(c)): + if j > i and G.number_of_edges(c[j],c[i]) == 0: + return False + return True +if __name__ == "__main__": + M = [] + fh = open("C:/Users/LENOVO/Desktop/karate.edgelist", "rb") + G = nx.read_edgelist(fh, nodetype=int) + node_nums = G.number_of_nodes() + y = node_nums % 100 + if y != 0: + for i in range(100 - y): + G.add_node(node_nums + i) + node_num = G.number_of_nodes() + + bipartie = [] + + T = nx.edges(G) + T = np.asarray(T) + O = nx.Graph() + O.add_edges_from(T, nodetype=int) + start = time.time() + print("====== Bipartite Start =======") + with Pool() as p: + x = p.starmap(localisation, zip(repeat(O), sorted(O.nodes()))) + bipartie.append(x) + end = time.time() + print("======= End of first step =======") + print("Time", end - start) + + flat_list = [item for sublist in bipartie for item in sublist if item] + #print("flat 1",len(flat_list)) #,flat_list) + flat_list = [item for sublist in flat_list for item in sublist] + #print("flat 2",len(flat_list))#,flat_list) + np.save('graph/test_Bip.npy', flat_list) + + new_k = [] + k_new = [] + for elem in flat_list: + x = True + if sorted(elem) not in new_k: + for elem2 in new_k: + if set(elem).issubset(set(elem2)) and elem != elem2: + x = False + if x: + new_k.append(sorted(elem)) + k_new.append(elem) + bipartie = k_new + + sz = [] + flat_list = [item for sublist in flat_list for item in sublist] + R = np.unique(flat_list) + + #print("R",np.unique(R),len(np.unique(R))) + node_bip = np.zeros(300) + node_bip[np.unique(R)] = 1 + #print(node_bip) + PatternFinding(G.edges, node_bip) + Training() + fo = open("example1.model", "a") + stri = "bc " + for i in flat_list: + x = True + strt = ' '.join(map(str, i[0:2])) + stry = ' '.join(map(str, i[-(len(i) - 2):])) + fo.write(stri + strt + ',' + stry + "\n") + fo.close() + fh = open("C:/Users/LENOVO/Desktop/karate.edgelist", "rb") + G = nx.read_edgelist(fh) + T = nx.edges(G) + T = np.asarray(T) + E = T + data = [] + for a, b in G.edges(): + data.append([a, b]) + data = np.asarray(data) + data = np.expand_dims(data, axis=0) + + for i in range(len(E)): + x = E[i, 0] + c = E[i, 1] + if (int(x) not in R or int(c) not in R): + G.remove_edge(x,c) + T = nx.edges(G) + T = np.asarray(T) + end = time.time() + print("======= End of seconde step =======") + print("Time", end - start) + sz.append(T) + np.save('graph/test.npy', data) + np.save('graph/sam.npy', sz[0]) + np.save('graph/labfin.npy', node_bip) + + diff --git a/PatternRecognition/src/Clique-Adapt.py b/PatternRecognition/src/Clique-Adapt.py new file mode 100644 index 0000000000000000000000000000000000000000..2c7fc0f32d493b351f563e6816182afa21da755c --- /dev/null +++ b/PatternRecognition/src/Clique-Adapt.py @@ -0,0 +1,14 @@ +import itertools + +L = [[ 269 , 240 , 232 ], [ 269 , 240 , 293 ], [ 269 , 268 , 178 ], [ 269 , 30 ], [ 269 , 56 , 154 ], [ 269 , 154 , 232 ], [ 269 , 293 , 258 , 246 ], [ 269 , 282 , 283 , 278 , 279 , 262 , 22 , 238 , 239 , 202 , 232 ], [ 269 , 282 , 283 , 278 , 279 , 262 , 22 , 238 , 239 , 202 , 247 ], [ 269 , 282 , 283 , 278 , 279 , 262 , 171 , 249 , 238 , 202 , 232 , 239 , 219 ], [ 269 , 282 , 283 , 278 , 279 , 262 , 171 , 249 , 238 , 202 , 232 , 239 , 250 ], [ 269 , 282 , 283 , 278 , 279 , 262 , 171 , 249 , 238 , 202 , 232 , 241 , 219 ], [ 269 , 282 , 283 , 278 , 279 , 262 , 171 , 249 , 238 , 202 , 232 , 241 , 250 ], [ 269 , 282 , 283 , 278 , 279 , 262 , 171 , 249 , 238 , 202 , 258 , 247 , 239 , 219 ], [ 269 , 282 , 283 , 278 , 279 , 262 , 171 , 249 , 238 , 202 , 258 , 247 , 239 , 250 ], [ 269 , 282 , 283 , 278 , 279 , 262 , 171 , 249 , 238 , 202 , 258 , 247 , 241 , 219 ], [ 269 , 282 , 283 , 278 , 279 , 262 , 171 , 249 , 238 , 202 , 258 , 247 , 241 , 250 ], [ 269 , 282 , 283 , 278 , 279 , 262 , 171 , 249 , 238 , 246 , 239 , 232 , 219 ], [ 269 , 282 , 283 , 278 , 279 , 262 , 171 , 249 , 238 , 246 , 239 , 232 , 250 ], [ 269 , 282 , 283 , 278 , 279 , 262 , 171 , 249 , 238 , 246 , 239 , 247 , 258 , 219 ], [ 269 , 282 , 283 , 278 , 279 , 262 , 171 , 249 , 238 , 246 , 239 , 247 , 258 , 250 ], [ 269 , 282 , 283 , 278 , 279 , 262 , 171 , 249 , 164 , 258 , 247 , 250 , 239 , 246 ], [ 269 , 282 , 283 , 278 , 279 , 262 , 171 , 249 , 164 , 258 , 247 , 250 , 241 ], [ 269 , 282 , 283 , 278 , 279 , 262 , 62 , 246 , 249 , 232 , 239 ], [ 269 , 282 , 283 , 278 , 279 , 262 , 62 , 246 , 249 , 232 , 217 ], [ 269 , 282 , 283 , 278 , 279 , 262 , 62 , 246 , 249 , 247 , 239 ], [ 269 , 282 , 283 , 278 , 279 , 262 , 62 , 246 , 249 , 247 , 217 ], [ 269 , 282 , 283 , 278 , 279 , 262 , 261 , 219 , 238 , 249 , 232 , 202 , 179 , 239 ], [ 269 , 282 , 283 , 278 , 279 , 262 , 261 , 219 , 238 , 249 , 232 , 202 , 179 , 241 ], [ 269 , 282 , 283 , 278 , 279 , 262 , 261 , 219 , 238 , 249 , 232 , 202 , 217 , 241 ], [ 269 , 282 , 283 , 278 , 279 , 262 , 261 , 219 , 238 , 249 , 232 , 241 , 205 , 217 ], [ 269 , 282 , 283 , 278 , 279 , 262 , 261 , 219 , 238 , 249 , 232 , 246 , 179 , 239 ], [ 269 , 282 , 283 , 278 , 279 , 262 , 261 , 219 , 238 , 249 , 232 , 246 , 205 , 239 ], [ 269 , 282 , 283 , 278 , 279 , 262 , 261 , 219 , 238 , 249 , 232 , 246 , 205 , 217 ], [ 269 , 282 , 283 , 278 , 279 , 262 , 261 , 219 , 238 , 249 , 258 , 179 , 177 , 241 ], [ 269 , 282 , 283 , 278 , 279 , 262 , 261 , 219 , 238 , 249 , 258 , 179 , 177 , 246 ], [ 269 , 282 , 283 , 278 , 279 , 262 , 261 , 219 , 238 , 249 , 258 , 179 , 202 , 239 ], [ 269 , 282 , 283 , 278 , 279 , 262 , 261 , 219 , 238 , 249 , 258 , 179 , 202 , 241 ], [ 269 , 282 , 283 , 278 , 279 , 262 , 261 , 219 , 238 , 249 , 258 , 179 , 239 , 246 ], [ 269 , 282 , 283 , 278 , 279 , 262 , 261 , 219 , 238 , 249 , 258 , 247 , 239 , 205 , 246 ], [ 269 , 282 , 283 , 278 , 279 , 262 , 261 , 219 , 238 , 249 , 258 , 247 , 239 , 202 ], [ 269 , 282 , 283 , 278 , 279 , 262 , 261 , 219 , 238 , 249 , 258 , 247 , 217 , 241 , 177 ], [ 269 , 282 , 283 , 278 , 279 , 262 , 261 , 219 , 238 , 249 , 258 , 247 , 217 , 241 , 202 ], [ 269 , 282 , 283 , 278 , 279 , 262 , 261 , 219 , 238 , 249 , 258 , 247 , 217 , 241 , 205 ], [ 269 , 282 , 283 , 278 , 279 , 262 , 261 , 219 , 238 , 249 , 258 , 247 , 217 , 246 , 177 ], [ 269 , 282 , 283 , 278 , 279 , 262 , 261 , 219 , 238 , 249 , 258 , 247 , 217 , 246 , 205 ], [ 269 , 282 , 283 , 278 , 279 , 262 , 261 , 250 , 178 , 238 , 241 , 217 , 232 ], [ 269 , 282 , 283 , 278 , 279 , 262 , 261 , 250 , 178 , 238 , 241 , 217 , 247 , 258 ], [ 269 , 282 , 283 , 278 , 279 , 262 , 261 , 250 , 178 , 238 , 246 , 239 , 232 ], [ 269 , 282 , 283 , 278 , 279 , 262 , 261 , 250 , 178 , 238 , 246 , 239 , 247 , 258 ], [ 269 , 282 , 283 , 278 , 279 , 262 , 261 , 250 , 178 , 238 , 246 , 217 , 232 ], [ 269 , 282 , 283 , 278 , 279 , 262 , 261 , 250 , 178 , 238 , 246 , 217 , 247 , 258 ], [ 269 , 282 , 283 , 278 , 279 , 262 , 261 , 250 , 178 , 164 , 258 , 247 , 239 , 246 ], [ 269 , 282 , 283 , 278 , 279 , 262 , 261 , 250 , 178 , 164 , 258 , 247 , 241 ], [ 269 , 282 , 283 , 278 , 279 , 262 , 261 , 250 , 119 , 239 , 238 , 232 ], [ 269 , 282 , 283 , 278 , 279 , 262 , 261 , 250 , 119 , 239 , 238 , 247 , 258 ], [ 269 , 282 , 283 , 278 , 279 , 262 , 261 , 250 , 119 , 239 , 164 , 247 , 258 ], [ 269 , 282 , 283 , 278 , 279 , 262 , 261 , 250 , 119 , 34 ], [ 269 , 282 , 283 , 278 , 279 , 262 , 261 , 250 , 249 , 202 , 238 , 232 , 179 , 239 ], [ 269 , 282 , 283 , 278 , 279 , 262 , 261 , 250 , 249 , 202 , 238 , 232 , 179 , 241 ], [ 269 , 282 , 283 , 278 , 279 , 262 , 261 , 250 , 249 , 202 , 238 , 232 , 217 , 241 ], [ 269 , 282 , 283 , 278 , 279 , 262 , 261 , 250 , 249 , 202 , 238 , 258 , 239 , 179 ], [ 269 , 282 , 283 , 278 , 279 , 262 , 261 , 250 , 249 , 202 , 238 , 258 , 239 , 247 ], [ 269 , 282 , 283 , 278 , 279 , 262 , 261 , 250 , 249 , 202 , 238 , 258 , 241 , 179 ], [ 269 , 282 , 283 , 278 , 279 , 262 , 261 , 250 , 249 , 202 , 238 , 258 , 241 , 217 , 247 ], [ 269 , 282 , 283 , 278 , 279 , 262 , 261 , 250 , 249 , 241 , 232 , 238 , 205 , 217 ], [ 269 , 282 , 283 , 278 , 279 , 262 , 261 , 250 , 249 , 241 , 232 , 165 ], [ 269 , 282 , 283 , 278 , 279 , 262 , 261 , 250 , 249 , 241 , 258 , 179 , 238 , 177 ], [ 269 , 282 , 283 , 278 , 279 , 262 , 261 , 250 , 249 , 241 , 258 , 118 , 177 , 217 ], [ 269 , 282 , 283 , 278 , 279 , 262 , 261 , 250 , 249 , 241 , 258 , 247 , 238 , 217 , 177 ], [ 269 , 282 , 283 , 278 , 279 , 262 , 261 , 250 , 249 , 241 , 258 , 247 , 238 , 217 , 205 ], [ 269 , 282 , 283 , 278 , 279 , 262 , 261 , 250 , 249 , 241 , 258 , 247 , 165 , 164 ], [ 269 , 282 , 283 , 278 , 279 , 262 , 261 , 250 , 249 , 246 , 232 , 238 , 179 , 239 ], [ 269 , 282 , 283 , 278 , 279 , 262 , 261 , 250 , 249 , 246 , 232 , 238 , 205 , 239 ], [ 269 , 282 , 283 , 278 , 279 , 262 , 261 , 250 , 249 , 246 , 232 , 238 , 205 , 217 ], [ 269 , 282 , 283 , 278 , 279 , 262 , 261 , 250 , 249 , 246 , 232 , 165 , 239 ], [ 269 , 282 , 283 , 278 , 279 , 262 , 261 , 250 , 249 , 246 , 34 , 179 ], [ 269 , 282 , 283 , 278 , 279 , 262 , 261 , 250 , 249 , 246 , 258 , 179 , 238 , 177 ], [ 269 , 282 , 283 , 278 , 279 , 262 , 261 , 250 , 249 , 246 , 258 , 179 , 238 , 239 ], [ 269 , 282 , 283 , 278 , 279 , 262 , 261 , 250 , 249 , 246 , 258 , 118 , 177 , 217 ], [ 269 , 282 , 283 , 278 , 279 , 262 , 261 , 250 , 249 , 246 , 258 , 247 , 238 , 239 , 205 ], [ 269 , 282 , 283 , 278 , 279 , 262 , 261 , 250 , 249 , 246 , 258 , 247 , 238 , 217 , 177 ], [ 269 , 282 , 283 , 278 , 279 , 262 , 261 , 250 , 249 , 246 , 258 , 247 , 238 , 217 , 205 ], [ 269 , 282 , 283 , 278 , 279 , 262 , 261 , 250 , 249 , 246 , 258 , 247 , 165 , 239 , 164 ], [ 269 , 282 , 283 , 278 , 279 , 262 , 129 , 238 , 205 , 219 , 232 , 239 ], [ 269 , 282 , 283 , 278 , 279 , 262 , 129 , 238 , 205 , 219 , 232 , 217 , 241 ], [ 269 , 282 , 283 , 278 , 279 , 262 , 129 , 238 , 205 , 219 , 258 , 247 , 239 ], [ 269 , 282 , 283 , 278 , 279 , 262 , 129 , 238 , 205 , 219 , 258 , 247 , 217 , 241 ], [ 269 , 282 , 283 , 278 , 279 , 262 , 129 , 165 , 232 , 239 ], [ 269 , 282 , 283 , 278 , 279 , 262 , 129 , 165 , 232 , 241 ], [ 269 , 282 , 283 , 278 , 279 , 262 , 129 , 165 , 258 , 247 , 239 ], [ 269 , 282 , 283 , 278 , 279 , 262 , 129 , 165 , 258 , 247 , 241 ], [ 269 , 282 , 283 , 278 , 279 , 162 , 241 , 249 , 238 , 219 , 177 , 247 , 258 ], [ 269 , 282 , 283 , 278 , 279 , 162 , 241 , 249 , 238 , 219 , 205 , 232 ], [ 269 , 282 , 283 , 278 , 279 , 162 , 241 , 249 , 238 , 219 , 205 , 247 , 258 ], [ 269 , 282 , 283 , 278 , 279 , 162 , 241 , 249 , 118 , 177 , 258 ], [ 269 , 282 , 283 , 278 , 279 , 162 , 246 , 93 , 205 , 239 ], [ 269 , 282 , 283 , 278 , 279 , 162 , 246 , 249 , 238 , 219 , 177 , 247 , 258 ], [ 269 , 282 , 283 , 278 , 279 , 162 , 246 , 249 , 238 , 219 , 205 , 239 , 232 ], [ 269 , 282 , 283 , 278 , 279 , 162 , 246 , 249 , 238 , 219 , 205 , 239 , 247 , 258 ], [ 269 , 282 , 283 , 278 , 279 , 162 , 246 , 249 , 118 , 177 , 258 ], [ 269 , 282 , 283 , 278 , 279 , 93 , 246 , 205 , 261 , 250 , 239 ], [ 269 , 282 , 283 , 278 , 279 , 93 , 246 , 205 , 261 , 250 , 217 ], [ 269 , 282 , 283 , 278 , 279 , 93 , 246 , 62 , 239 ], [ 269 , 282 , 283 , 278 , 279 , 93 , 246 , 62 , 217 ], [ 269 , 282 , 283 , 278 , 65 , 258 , 262 , 178 , 261 , 239 ], [ 269 , 282 , 283 , 278 , 65 , 258 , 262 , 178 , 261 , 241 ], [ 269 , 282 , 283 , 278 , 65 , 258 , 262 , 249 , 171 , 239 ], [ 269 , 282 , 283 , 278 , 65 , 258 , 262 , 249 , 171 , 241 ], [ 269 , 282 , 283 , 278 , 65 , 258 , 262 , 249 , 165 , 261 , 239 ], [ 269 , 282 , 283 , 278 , 65 , 258 , 262 , 249 , 165 , 261 , 241 ], [ 269 , 231 , 162 ], [ 269 , 226 , 217 ], [ 168 , 214 ], [ 168 , 184 ], [ 168 , 89 ], [ 168 , 162 , 248 ], [ 168 , 208 , 57 , 220 , 197 ], [ 168 , 208 , 57 , 220 , 127 ], [ 168 , 208 , 237 , 77 , 197 , 220 , 248 ], [ 168 , 208 , 237 , 77 , 197 , 220 , 225 ], [ 168 , 208 , 237 , 216 , 6 , 248 ], [ 168 , 208 , 237 , 216 , 220 , 248 , 132 ], [ 168 , 208 , 237 , 216 , 220 , 248 , 197 ], [ 168 , 208 , 237 , 216 , 220 , 248 , 134 ], [ 168 , 208 , 237 , 216 , 220 , 248 , 127 ], [ 168 , 208 , 237 , 216 , 220 , 225 , 132 ], [ 168 , 208 , 237 , 216 , 220 , 225 , 197 ], [ 168 , 208 , 237 , 216 , 220 , 225 , 134 ], [ 168 , 208 , 237 , 216 , 220 , 225 , 127 ], [ 168 , 251 , 226 , 57 , 197 ], [ 168 , 251 , 226 , 57 , 127 ], [ 168 , 251 , 226 , 108 , 216 , 132 , 248 ], [ 168 , 251 , 226 , 108 , 216 , 132 , 225 ], [ 168 , 251 , 226 , 108 , 216 , 197 , 248 ], [ 168 , 251 , 226 , 108 , 216 , 197 , 225 ], [ 168 , 251 , 226 , 237 , 248 , 15 , 197 ], [ 168 , 251 , 226 , 237 , 248 , 77 , 197 ], [ 168 , 251 , 226 , 237 , 248 , 216 , 132 ], [ 168 , 251 , 226 , 237 , 248 , 216 , 134 ], [ 168 , 251 , 226 , 237 , 248 , 216 , 197 ], [ 168 , 251 , 226 , 237 , 248 , 216 , 6 ], [ 168 , 251 , 226 , 237 , 248 , 216 , 127 ], [ 168 , 251 , 226 , 237 , 225 , 15 , 197 ], [ 168 , 251 , 226 , 237 , 225 , 77 , 197 ], [ 168 , 251 , 226 , 237 , 225 , 216 , 132 ], [ 168 , 251 , 226 , 237 , 225 , 216 , 197 ], [ 168 , 251 , 226 , 237 , 225 , 216 , 134 ], [ 168 , 251 , 226 , 237 , 225 , 216 , 127 ], [ 168 , 251 , 220 , 57 , 197 ], [ 168 , 251 , 220 , 57 , 127 ], [ 168 , 251 , 220 , 108 , 216 , 132 , 248 ], [ 168 , 251 , 220 , 108 , 216 , 132 , 225 ], [ 168 , 251 , 220 , 108 , 216 , 197 , 248 ], [ 168 , 251 , 220 , 108 , 216 , 197 , 225 ], [ 168 , 251 , 220 , 237 , 248 , 15 , 197 ], [ 168 , 251 , 220 , 237 , 248 , 77 , 197 ], [ 168 , 251 , 220 , 237 , 248 , 216 , 132 ], [ 168 , 251 , 220 , 237 , 248 , 216 , 197 ], [ 168 , 251 , 220 , 237 , 248 , 216 , 134 ], [ 168 , 251 , 220 , 237 , 248 , 216 , 127 ], [ 168 , 251 , 220 , 237 , 225 , 15 , 197 ], [ 168 , 251 , 220 , 237 , 225 , 77 , 197 ], [ 168 , 251 , 220 , 237 , 225 , 216 , 132 ], [ 168 , 251 , 220 , 237 , 225 , 216 , 197 ], [ 168 , 251 , 220 , 237 , 225 , 216 , 134 ], [ 168 , 251 , 220 , 237 , 225 , 216 , 127 ], [ 168 , 45 , 15 ], [ 198 , 208 , 57 , 138 , 220 , 197 ], [ 198 , 208 , 57 , 138 , 220 , 127 ], [ 198 , 208 , 284 ], [ 198 , 208 , 237 , 84 , 216 , 197 , 248 ], [ 198 , 208 , 237 , 84 , 216 , 197 , 225 ], [ 198 , 208 , 237 , 84 , 216 , 134 , 248 ], [ 198 , 208 , 237 , 84 , 216 , 134 , 225 ], [ 198 , 208 , 237 , 220 , 248 , 77 , 197 ], [ 198 , 208 , 237 , 220 , 248 , 216 , 134 ], [ 198 , 208 , 237 , 220 , 248 , 216 , 138 , 132 ], [ 198 , 208 , 237 , 220 , 248 , 216 , 138 , 197 ], [ 198 , 208 , 237 , 220 , 248 , 216 , 138 , 127 ], [ 198 , 208 , 237 , 220 , 248 , 17 , 197 , 138 ], [ 198 , 208 , 237 , 220 , 225 , 77 , 197 ], [ 198 , 208 , 237 , 220 , 225 , 216 , 132 ], [ 198 , 208 , 237 , 220 , 225 , 216 , 197 ], [ 198 , 208 , 237 , 220 , 225 , 216 , 134 ], [ 198 , 208 , 237 , 220 , 225 , 216 , 127 ], [ 198 , 208 , 237 , 220 , 225 , 17 , 197 ], [ 198 , 186 ], [ 198 , 284 , 267 ], [ 198 , 222 , 138 ], [ 198 , 267 , 127 , 57 ], [ 198 , 241 ], [ 198 , 251 , 84 , 216 , 237 , 192 , 248 , 42 ], [ 198 , 251 , 84 , 216 , 237 , 192 , 248 , 226 , 197 ], [ 198 , 251 , 84 , 216 , 237 , 192 , 248 , 226 , 134 ], [ 198 , 251 , 84 , 216 , 237 , 192 , 225 , 42 ], [ 198 , 251 , 84 , 216 , 237 , 192 , 225 , 226 , 197 ], [ 198 , 251 , 84 , 216 , 237 , 192 , 225 , 226 , 134 ], [ 198 , 251 , 226 , 57 , 138 , 197 ], [ 198 , 251 , 226 , 57 , 138 , 127 ], [ 198 , 251 , 226 , 77 , 197 , 237 , 248 ], [ 198 , 251 , 226 , 77 , 197 , 237 , 225 ], [ 198 , 251 , 226 , 216 , 108 , 132 , 138 , 248 ], [ 198 , 251 , 226 , 216 , 108 , 132 , 225 ], [ 198 , 251 , 226 , 216 , 108 , 197 , 138 , 248 ], [ 198 , 251 , 226 , 216 , 108 , 197 , 225 ], [ 198 , 251 , 226 , 216 , 237 , 138 , 248 , 132 ], [ 198 , 251 , 226 , 216 , 237 , 138 , 248 , 197 ], [ 198 , 251 , 226 , 216 , 237 , 138 , 248 , 127 ], [ 198 , 251 , 226 , 216 , 237 , 138 , 248 , 50 ], [ 198 , 251 , 226 , 216 , 237 , 192 , 248 , 132 ], [ 198 , 251 , 226 , 216 , 237 , 192 , 248 , 127 ], [ 198 , 251 , 226 , 216 , 237 , 192 , 248 , 50 ], [ 198 , 251 , 226 , 216 , 237 , 192 , 225 , 132 ], [ 198 , 251 , 226 , 216 , 237 , 192 , 225 , 127 ], [ 198 , 251 , 226 , 216 , 237 , 192 , 225 , 50 ], [ 198 , 251 , 220 , 57 , 138 , 197 ], [ 198 , 251 , 220 , 57 , 138 , 127 ], [ 198 , 251 , 220 , 108 , 132 , 216 , 138 , 248 ], [ 198 , 251 , 220 , 108 , 132 , 216 , 225 ], [ 198 , 251 , 220 , 108 , 197 , 216 , 113 , 248 ], [ 198 , 251 , 220 , 108 , 197 , 216 , 113 , 225 ], [ 198 , 251 , 220 , 108 , 197 , 216 , 138 , 248 ], [ 198 , 251 , 220 , 108 , 197 , 17 , 138 , 248 ], [ 198 , 251 , 220 , 108 , 197 , 17 , 225 ], [ 198 , 251 , 220 , 237 , 248 , 77 , 197 ], [ 198 , 251 , 220 , 237 , 248 , 77 , 42 ], [ 198 , 251 , 220 , 237 , 248 , 216 , 138 , 132 ], [ 198 , 251 , 220 , 237 , 248 , 216 , 138 , 197 ], [ 198 , 251 , 220 , 237 , 248 , 216 , 138 , 127 ], [ 198 , 251 , 220 , 237 , 248 , 216 , 138 , 50 ], [ 198 , 251 , 220 , 237 , 248 , 216 , 192 , 132 ], [ 198 , 251 , 220 , 237 , 248 , 216 , 192 , 113 , 197 ], [ 198 , 251 , 220 , 237 , 248 , 216 , 192 , 113 , 134 ], [ 198 , 251 , 220 , 237 , 248 , 216 , 192 , 113 , 127 ], [ 198 , 251 , 220 , 237 , 248 , 216 , 192 , 113 , 50 ], [ 198 , 251 , 220 , 237 , 248 , 216 , 192 , 42 ], [ 198 , 251 , 220 , 237 , 248 , 17 , 197 , 138 ], [ 198 , 251 , 220 , 237 , 225 , 77 , 197 ], [ 198 , 251 , 220 , 237 , 225 , 77 , 42 ], [ 198 , 251 , 220 , 237 , 225 , 216 , 192 , 132 ], [ 198 , 251 , 220 , 237 , 225 , 216 , 192 , 113 , 197 ], [ 198 , 251 , 220 , 237 , 225 , 216 , 192 , 113 , 134 ], [ 198 , 251 , 220 , 237 , 225 , 216 , 192 , 113 , 127 ], [ 198 , 251 , 220 , 237 , 225 , 216 , 192 , 113 , 50 ], [ 198 , 251 , 220 , 237 , 225 , 216 , 192 , 42 ], [ 198 , 251 , 220 , 237 , 225 , 17 , 197 ], [ 54 , 234 ], [ 54 , 82 , 156 , 88 , 187 , 141 ], [ 54 , 82 , 156 , 88 , 187 , 140 ], [ 54 , 82 , 156 , 88 , 90 , 140 ], [ 54 , 82 , 10 , 187 , 141 ], [ 54 , 82 , 10 , 187 , 140 ], [ 54 , 82 , 10 , 90 , 140 ], [ 54 , 161 , 156 , 140 , 187 ], [ 54 , 161 , 156 , 140 , 97 , 90 ], [ 54 , 161 , 156 , 13 , 79 , 141 , 98 , 187 ], [ 54 , 161 , 156 , 13 , 79 , 141 , 98 , 97 ], [ 54 , 161 , 156 , 13 , 79 , 90 , 97 ], [ 54 , 161 , 10 , 187 , 141 , 98 ], [ 54 , 161 , 10 , 187 , 140 ], [ 54 , 161 , 10 , 97 , 141 , 98 ], [ 54 , 161 , 10 , 97 , 140 , 90 ], [ 54 , 161 , 278 ], [ 54 , 110 ], [ 233 , 274 , 49 ], [ 233 , 274 , 295 , 189 ], [ 233 , 232 ], [ 233 , 49 , 133 ], [ 233 , 290 , 292 , 291 , 281 , 146 , 276 , 277 , 266 , 245 , 235 , 229 , 244 ], [ 233 , 290 , 292 , 291 , 281 , 146 , 276 , 277 , 266 , 272 , 101 , 235 ], [ 233 , 290 , 292 , 291 , 281 , 146 , 276 , 277 , 266 , 272 , 229 , 244 , 235 ], [ 233 , 290 , 292 , 291 , 281 , 146 , 276 , 277 , 266 , 272 , 229 , 244 , 236 ], [ 233 , 290 , 292 , 291 , 281 , 275 , 268 , 257 , 276 , 139 , 229 , 245 , 235 ], [ 233 , 290 , 292 , 291 , 281 , 275 , 268 , 257 , 276 , 139 , 229 , 272 , 223 , 235 ], [ 233 , 290 , 292 , 291 , 281 , 275 , 268 , 257 , 276 , 139 , 229 , 272 , 223 , 236 ], [ 233 , 290 , 292 , 291 , 281 , 275 , 268 , 257 , 276 , 266 , 277 , 245 , 235 , 229 , 244 ], [ 233 , 290 , 292 , 291 , 281 , 275 , 268 , 257 , 276 , 266 , 277 , 245 , 47 ], [ 233 , 290 , 292 , 291 , 281 , 275 , 268 , 257 , 276 , 266 , 277 , 272 , 223 , 101 , 235 ], [ 233 , 290 , 292 , 291 , 281 , 275 , 268 , 257 , 276 , 266 , 277 , 272 , 223 , 229 , 244 , 235 ], [ 233 , 290 , 292 , 291 , 281 , 275 , 268 , 257 , 276 , 266 , 277 , 272 , 223 , 229 , 244 , 236 ], [ 233 , 290 , 292 , 291 , 281 , 275 , 268 , 257 , 114 , 229 , 244 , 245 , 235 ], [ 233 , 290 , 292 , 291 , 281 , 275 , 268 , 257 , 114 , 229 , 244 , 272 , 223 , 235 ], [ 233 , 290 , 292 , 291 , 281 , 275 , 268 , 257 , 114 , 229 , 244 , 272 , 223 , 236 ], [ 233 , 290 , 292 , 291 , 281 , 275 , 268 , 43 , 235 , 276 , 277 , 244 ], [ 233 , 290 , 292 , 291 , 281 , 275 , 268 , 166 , 272 , 229 , 223 , 236 , 277 , 244 ], [ 233 , 290 , 292 , 291 , 281 , 275 , 9 , 276 , 277 ], [ 233 , 290 , 292 , 291 , 281 , 275 , 186 , 277 , 244 , 223 , 257 , 276 , 266 , 235 ], [ 233 , 290 , 292 , 291 , 281 , 275 , 186 , 277 , 244 , 223 , 257 , 276 , 266 , 236 ], [ 233 , 290 , 292 , 291 , 281 , 275 , 186 , 277 , 244 , 223 , 166 , 236 ], [ 233 , 290 , 292 , 291 , 281 , 275 , 186 , 277 , 244 , 245 , 235 , 276 , 257 , 266 ], [ 233 , 290 , 292 , 291 , 281 , 59 , 229 , 257 , 277 , 244 , 245 ], [ 233 , 290 , 292 , 291 , 281 , 59 , 229 , 257 , 277 , 244 , 236 , 272 ], [ 233 , 290 , 292 , 291 , 281 , 83 , 268 , 257 , 276 , 244 , 223 , 236 , 272 ], [ 233 , 290 , 292 , 291 , 281 , 83 , 268 , 257 , 276 , 244 , 245 ], [ 233 , 290 , 292 , 291 , 221 , 275 , 276 , 277 , 268 , 257 , 266 , 245 , 235 , 229 , 244 ], [ 233 , 290 , 292 , 291 , 221 , 275 , 276 , 277 , 268 , 257 , 266 , 272 , 223 , 101 , 235 ], [ 233 , 290 , 292 , 291 , 221 , 275 , 276 , 277 , 268 , 257 , 266 , 272 , 223 , 229 , 244 , 235 ], [ 233 , 290 , 292 , 291 , 221 , 275 , 276 , 277 , 268 , 257 , 266 , 272 , 223 , 229 , 244 , 236 ], [ 233 , 290 , 292 , 291 , 221 , 275 , 276 , 277 , 9 ], [ 233 , 133 , 276 ], [ 233 , 86 ], [ 166 , 33 , 285 ], [ 166 , 33 , 272 ], [ 166 , 284 , 272 ], [ 166 , 196 ], [ 166 , 285 , 260 ], [ 166 , 292 , 275 , 291 , 281 , 272 , 229 , 137 , 290 , 277 , 244 , 223 ], [ 166 , 292 , 275 , 291 , 281 , 272 , 229 , 137 , 290 , 277 , 244 , 218 ], [ 166 , 292 , 275 , 291 , 281 , 272 , 229 , 268 , 236 , 159 , 218 ], [ 166 , 292 , 275 , 291 , 281 , 272 , 229 , 268 , 236 , 290 , 277 , 244 , 218 ], [ 166 , 292 , 275 , 291 , 281 , 186 , 290 , 236 , 277 , 244 , 218 ], [ 166 , 292 , 260 ], [ 207 , 42 ], [ 207 , 215 , 294 ], [ 207 , 287 , 260 ], [ 207 , 261 , 203 ], [ 207 , 212 , 210 , 209 , 203 , 3 , 175 , 120 ], [ 207 , 212 , 210 , 209 , 203 , 3 , 175 , 109 , 154 ], [ 207 , 212 , 210 , 209 , 203 , 3 , 175 , 109 , 73 ], [ 207 , 212 , 210 , 209 , 203 , 53 , 16 , 149 ], [ 207 , 212 , 210 , 209 , 203 , 53 , 176 , 7 ], [ 207 , 212 , 210 , 209 , 203 , 53 , 176 , 32 , 175 , 149 ], [ 207 , 212 , 210 , 209 , 203 , 53 , 176 , 56 ], [ 207 , 212 , 210 , 209 , 203 , 32 , 176 , 175 , 149 , 89 ], [ 207 , 212 , 210 , 209 , 203 , 32 , 176 , 175 , 149 , 72 ], [ 207 , 212 , 210 , 209 , 203 , 32 , 176 , 175 , 73 ], [ 207 , 212 , 210 , 209 , 203 , 199 , 16 , 149 , 154 ], [ 207 , 212 , 210 , 209 , 203 , 199 , 16 , 149 , 120 ], [ 207 , 212 , 210 , 209 , 203 , 199 , 16 , 149 , 72 ], [ 207 , 212 , 210 , 209 , 203 , 199 , 16 , 73 ], [ 207 , 212 , 210 , 209 , 203 , 199 , 70 , 175 , 149 , 154 ], [ 207 , 212 , 210 , 209 , 203 , 199 , 70 , 175 , 149 , 120 , 96 ], [ 207 , 212 , 210 , 209 , 203 , 199 , 70 , 175 , 109 , 154 ], [ 207 , 212 , 210 , 209 , 203 , 199 , 70 , 175 , 109 , 96 ], [ 207 , 212 , 210 , 209 , 203 , 199 , 70 , 14 , 154 , 109 ], [ 207 , 212 , 210 , 209 , 203 , 199 , 120 , 7 ], [ 207 , 212 , 210 , 209 , 203 , 199 , 120 , 149 , 175 , 89 ], [ 207 , 212 , 210 , 209 , 203 , 199 , 176 , 7 , 154 ], [ 207 , 212 , 210 , 209 , 203 , 199 , 176 , 7 , 72 ], [ 207 , 212 , 210 , 209 , 203 , 199 , 176 , 175 , 149 , 89 ], [ 207 , 212 , 210 , 209 , 203 , 199 , 176 , 175 , 149 , 154 ], [ 207 , 212 , 210 , 209 , 203 , 199 , 176 , 175 , 149 , 96 ], [ 207 , 212 , 210 , 209 , 203 , 199 , 176 , 175 , 149 , 72 ], [ 207 , 212 , 210 , 209 , 203 , 199 , 176 , 175 , 73 , 109 ], [ 207 , 212 , 210 , 209 , 203 , 199 , 176 , 175 , 109 , 89 ], [ 207 , 212 , 210 , 209 , 203 , 199 , 176 , 175 , 109 , 154 ], [ 207 , 212 , 210 , 209 , 203 , 199 , 176 , 175 , 109 , 96 ], [ 207 , 212 , 210 , 209 , 203 , 199 , 176 , 14 , 154 , 109 ], [ 207 , 212 , 210 , 209 , 203 , 199 , 176 , 56 , 89 ], [ 207 , 212 , 210 , 209 , 203 , 199 , 176 , 56 , 154 ], [ 207 , 212 , 210 , 209 , 203 , 199 , 176 , 56 , 96 ], [ 207 , 212 , 210 , 209 , 203 , 199 , 176 , 56 , 72 ], [ 207 , 212 , 210 , 209 , 143 , 3 , 175 , 154 ], [ 207 , 212 , 210 , 209 , 143 , 3 , 175 , 120 ], [ 207 , 212 , 210 , 209 , 143 , 120 , 149 , 175 , 199 , 89 ], [ 207 , 212 , 210 , 209 , 143 , 120 , 149 , 175 , 199 , 96 ], [ 207 , 212 , 210 , 209 , 143 , 176 , 53 , 56 ], [ 207 , 212 , 210 , 209 , 143 , 176 , 53 , 175 , 149 ], [ 207 , 212 , 210 , 209 , 143 , 176 , 199 , 56 , 89 ], [ 207 , 212 , 210 , 209 , 143 , 176 , 199 , 56 , 154 ], [ 207 , 212 , 210 , 209 , 143 , 176 , 199 , 56 , 96 ], [ 207 , 212 , 210 , 209 , 143 , 176 , 199 , 14 , 154 ], [ 207 , 212 , 210 , 209 , 143 , 176 , 199 , 149 , 175 , 89 ], [ 207 , 212 , 210 , 209 , 143 , 176 , 199 , 149 , 175 , 154 ], [ 207 , 212 , 210 , 209 , 143 , 176 , 199 , 149 , 175 , 96 ], [ 12 , 266 ], [ 12 , 187 , 141 , 68 , 161 ], [ 12 , 187 , 141 , 82 , 88 , 156 ], [ 12 , 187 , 141 , 82 , 88 , 126 ], [ 12 , 187 , 141 , 82 , 10 ], [ 12 , 187 , 141 , 161 , 156 ], [ 12 , 187 , 141 , 161 , 10 ], [ 12 , 187 , 144 , 68 , 30 ], [ 12 , 187 , 144 , 68 , 161 ], [ 12 , 187 , 144 , 82 , 88 , 156 ], [ 12 , 187 , 144 , 82 , 88 , 30 ], [ 12 , 187 , 144 , 82 , 88 , 126 ], [ 12 , 187 , 144 , 82 , 10 ], [ 12 , 187 , 144 , 161 , 156 ], [ 12 , 187 , 144 , 161 , 10 ], [ 12 , 92 ], [ 12 , 296 ], [ 37 , 205 ], [ 37 , 248 , 292 ], [ 37 , 266 , 275 , 272 , 257 , 290 , 291 , 277 , 292 , 235 , 281 ], [ 37 , 266 , 275 , 272 , 257 , 290 , 291 , 277 , 292 , 235 , 221 ], [ 37 , 266 , 275 , 272 , 257 , 290 , 291 , 277 , 292 , 236 , 281 ], [ 37 , 266 , 275 , 272 , 257 , 290 , 291 , 277 , 292 , 236 , 221 ], [ 37 , 266 , 182 ], [ 101 , 265 , 281 ], [ 101 , 277 , 246 ], [ 155 , 172 ], [ 155 , 287 , 288 , 285 , 224 , 115 , 252 , 234 , 231 ], [ 155 , 287 , 288 , 285 , 224 , 115 , 252 , 234 , 183 ], [ 155 , 287 , 288 , 285 , 224 , 273 , 222 , 231 , 214 , 200 , 260 ], [ 155 , 287 , 288 , 285 , 224 , 273 , 222 , 231 , 214 , 252 ], [ 155 , 287 , 288 , 285 , 224 , 273 , 222 , 231 , 234 , 252 ], [ 155 , 287 , 288 , 285 , 224 , 273 , 222 , 231 , 234 , 260 ], [ 155 , 287 , 288 , 285 , 224 , 273 , 222 , 183 , 200 ], [ 155 , 287 , 288 , 285 , 224 , 273 , 222 , 183 , 252 , 234 ], [ 155 , 287 , 288 , 285 , 224 , 273 , 253 , 231 , 214 , 200 , 260 ], [ 155 , 287 , 288 , 285 , 224 , 273 , 253 , 231 , 214 , 110 ], [ 155 , 287 , 288 , 285 , 224 , 273 , 253 , 231 , 214 , 252 ], [ 155 , 287 , 288 , 285 , 224 , 273 , 253 , 231 , 234 , 252 ], [ 155 , 287 , 288 , 285 , 224 , 273 , 253 , 231 , 234 , 260 ], [ 155 , 287 , 288 , 285 , 224 , 273 , 253 , 183 , 200 ], [ 155 , 287 , 288 , 285 , 224 , 273 , 253 , 183 , 252 , 234 ], [ 155 , 287 , 288 , 285 , 224 , 273 , 253 , 122 , 260 , 234 ], [ 155 , 287 , 288 , 285 , 181 , 273 , 200 , 222 , 183 ], [ 155 , 287 , 288 , 285 , 181 , 273 , 200 , 222 , 260 , 231 ], [ 155 , 287 , 288 , 285 , 181 , 273 , 200 , 253 , 183 ], [ 155 , 287 , 288 , 285 , 181 , 273 , 200 , 253 , 260 , 231 ], [ 155 , 287 , 288 , 285 , 181 , 273 , 252 , 222 , 231 ], [ 155 , 287 , 288 , 285 , 181 , 273 , 252 , 222 , 183 ], [ 155 , 287 , 288 , 285 , 181 , 273 , 252 , 253 , 231 ], [ 155 , 287 , 288 , 285 , 181 , 273 , 252 , 253 , 183 ], [ 155 , 239 , 278 ], [ 155 , 239 , 253 ], [ 155 , 51 ], [ 290 , 2 , 43 ], [ 290 , 258 , 119 ], [ 290 , 258 , 245 ], [ 290 , 258 , 129 ], [ 290 , 258 , 294 ], [ 290 , 208 , 43 ], [ 290 , 208 , 20 ], [ 290 , 8 , 229 , 291 , 276 , 281 , 277 , 244 , 266 , 223 , 272 ], [ 290 , 8 , 229 , 291 , 276 , 281 , 277 , 244 , 266 , 245 ], [ 290 , 119 , 270 ], [ 290 , 270 , 294 , 242 ], [ 290 , 270 , 294 , 271 ], [ 290 , 270 , 229 ], [ 290 , 270 , 186 ], [ 290 , 242 , 236 ], [ 290 , 292 , 271 , 83 ], [ 290 , 292 , 291 , 276 , 139 , 275 , 229 , 257 , 170 , 235 , 245 ], [ 290 , 292 , 291 , 276 , 139 , 275 , 229 , 257 , 170 , 235 , 272 ], [ 290 , 292 , 291 , 276 , 139 , 275 , 229 , 257 , 170 , 236 , 272 ], [ 290 , 292 , 291 , 276 , 1 , 275 , 236 , 281 , 266 , 244 , 268 ], [ 290 , 292 , 291 , 276 , 1 , 275 , 236 , 281 , 266 , 244 , 186 ], [ 290 , 292 , 291 , 276 , 83 , 268 , 281 , 244 , 218 , 245 ], [ 290 , 292 , 291 , 276 , 83 , 268 , 281 , 244 , 218 , 236 , 272 ], [ 290 , 292 , 291 , 276 , 277 , 36 , 275 , 268 , 281 , 245 , 257 ], [ 290 , 292 , 291 , 276 , 277 , 36 , 275 , 268 , 281 , 245 , 218 ], [ 290 , 292 , 291 , 276 , 277 , 36 , 275 , 268 , 281 , 272 , 257 ], [ 290 , 292 , 291 , 276 , 277 , 36 , 275 , 268 , 281 , 272 , 218 ], [ 290 , 292 , 291 , 276 , 277 , 43 , 275 , 235 , 268 , 281 , 218 , 244 ], [ 290 , 292 , 291 , 276 , 277 , 9 , 23 ], [ 290 , 292 , 291 , 276 , 277 , 9 , 275 , 218 , 281 ], [ 290 , 292 , 291 , 276 , 277 , 9 , 275 , 218 , 221 ], [ 290 , 292 , 291 , 276 , 277 , 266 , 146 , 229 , 244 , 245 , 235 , 218 , 281 ], [ 290 , 292 , 291 , 276 , 277 , 266 , 146 , 229 , 244 , 245 , 235 , 170 ], [ 290 , 292 , 291 , 276 , 277 , 266 , 146 , 229 , 244 , 272 , 235 , 218 , 281 ], [ 290 , 292 , 291 , 276 , 277 , 266 , 146 , 229 , 244 , 272 , 235 , 170 ], [ 290 , 292 , 291 , 276 , 277 , 266 , 146 , 229 , 244 , 272 , 236 , 218 , 281 ], [ 290 , 292 , 291 , 276 , 277 , 266 , 146 , 229 , 244 , 272 , 236 , 170 ], [ 290 , 292 , 291 , 276 , 277 , 266 , 23 , 257 , 268 , 223 ], [ 290 , 292 , 291 , 276 , 277 , 266 , 23 , 257 , 268 , 245 ], [ 290 , 292 , 291 , 276 , 277 , 266 , 275 , 235 , 121 , 268 , 245 , 218 ], [ 290 , 292 , 291 , 276 , 277 , 266 , 275 , 235 , 121 , 268 , 272 , 223 ], [ 290 , 292 , 291 , 276 , 277 , 266 , 275 , 235 , 121 , 268 , 272 , 218 ], [ 290 , 292 , 291 , 276 , 277 , 266 , 275 , 235 , 244 , 229 , 245 , 137 , 281 , 218 ], [ 290 , 292 , 291 , 276 , 277 , 266 , 275 , 235 , 244 , 229 , 245 , 268 , 218 , 281 ], [ 290 , 292 , 291 , 276 , 277 , 266 , 275 , 235 , 244 , 229 , 245 , 268 , 218 , 221 ], [ 290 , 292 , 291 , 276 , 277 , 266 , 275 , 235 , 244 , 229 , 245 , 170 , 257 , 221 ], [ 290 , 292 , 291 , 276 , 277 , 266 , 275 , 235 , 244 , 229 , 272 , 223 , 137 , 281 ], [ 290 , 292 , 291 , 276 , 277 , 266 , 275 , 235 , 244 , 229 , 272 , 218 , 137 , 281 ], [ 290 , 292 , 291 , 276 , 277 , 266 , 275 , 235 , 244 , 229 , 272 , 218 , 268 , 281 ], [ 290 , 292 , 291 , 276 , 277 , 266 , 275 , 235 , 244 , 229 , 272 , 218 , 268 , 221 ], [ 290 , 292 , 291 , 276 , 277 , 266 , 275 , 235 , 244 , 229 , 272 , 170 , 257 , 221 ], [ 290 , 292 , 291 , 276 , 277 , 266 , 275 , 235 , 244 , 186 , 257 , 170 , 245 ], [ 290 , 292 , 291 , 276 , 277 , 266 , 275 , 235 , 244 , 186 , 218 , 245 , 281 ], [ 290 , 292 , 291 , 276 , 277 , 266 , 275 , 236 , 272 , 121 , 268 , 223 ], [ 290 , 292 , 291 , 276 , 277 , 266 , 275 , 236 , 272 , 121 , 268 , 218 ], [ 290 , 292 , 291 , 276 , 277 , 266 , 275 , 236 , 272 , 229 , 244 , 268 , 218 , 281 ], [ 290 , 292 , 291 , 276 , 277 , 266 , 275 , 236 , 272 , 229 , 244 , 268 , 218 , 221 ], [ 290 , 292 , 291 , 276 , 277 , 266 , 275 , 236 , 272 , 229 , 244 , 170 , 257 , 221 ], [ 290 , 292 , 291 , 276 , 277 , 266 , 275 , 236 , 186 , 244 , 257 , 170 ], [ 290 , 292 , 291 , 276 , 277 , 266 , 275 , 236 , 186 , 244 , 218 , 281 ], [ 290 , 292 , 291 , 276 , 277 , 266 , 0 , 272 , 268 , 257 , 281 ], [ 290 , 292 , 291 , 276 , 277 , 266 , 0 , 272 , 268 , 257 , 221 ], [ 290 , 292 , 291 , 28 , 275 , 257 , 277 , 266 , 272 , 268 , 281 ], [ 290 , 292 , 291 , 28 , 275 , 257 , 277 , 266 , 272 , 268 , 221 ], [ 290 , 292 , 291 , 28 , 275 , 257 , 277 , 266 , 186 , 281 ], [ 290 , 294 , 1 ], [ 164 , 132 , 248 ], [ 164 , 297 , 250 ], [ 164 , 47 ], [ 77 , 289 ], [ 77 , 257 , 197 ], [ 77 , 257 , 114 ], [ 77 , 237 , 190 , 197 , 226 , 251 , 248 ], [ 77 , 237 , 190 , 197 , 226 , 251 , 225 ], [ 77 , 237 , 190 , 197 , 220 , 251 , 248 ], [ 77 , 237 , 190 , 197 , 220 , 251 , 225 ], [ 77 , 237 , 190 , 197 , 220 , 208 , 248 ], [ 77 , 237 , 190 , 197 , 220 , 208 , 225 ], [ 77 , 237 , 190 , 117 , 251 , 226 , 248 ], [ 77 , 237 , 190 , 117 , 251 , 226 , 225 ], [ 77 , 237 , 190 , 117 , 208 , 248 ], [ 77 , 237 , 190 , 117 , 208 , 225 ], [ 77 , 262 ], [ 183 , 135 , 283 ], [ 183 , 286 , 200 ], [ 183 , 286 , 29 ], [ 183 , 288 , 265 , 285 , 287 , 200 , 255 , 222 , 181 ], [ 183 , 288 , 265 , 285 , 287 , 200 , 255 , 222 , 256 ], [ 183 , 288 , 265 , 285 , 287 , 200 , 255 , 253 , 181 ], [ 183 , 288 , 265 , 285 , 287 , 200 , 255 , 253 , 256 ], [ 183 , 288 , 265 , 285 , 287 , 200 , 273 , 224 , 256 , 222 ], [ 183 , 288 , 265 , 285 , 287 , 200 , 273 , 224 , 256 , 253 ], [ 183 , 288 , 265 , 285 , 287 , 200 , 273 , 181 , 222 ], [ 183 , 288 , 265 , 285 , 287 , 200 , 273 , 181 , 253 ], [ 183 , 288 , 265 , 285 , 287 , 252 , 181 , 222 , 255 ], [ 183 , 288 , 265 , 285 , 287 , 252 , 181 , 222 , 273 ], [ 183 , 288 , 265 , 285 , 287 , 252 , 181 , 253 , 255 ], [ 183 , 288 , 265 , 285 , 287 , 252 , 181 , 253 , 273 ], [ 183 , 288 , 265 , 285 , 287 , 252 , 234 , 256 , 224 , 115 ], [ 183 , 288 , 265 , 285 , 287 , 252 , 234 , 256 , 224 , 273 , 222 ], [ 183 , 288 , 265 , 285 , 287 , 252 , 234 , 256 , 224 , 273 , 253 ], [ 183 , 288 , 265 , 285 , 287 , 252 , 234 , 256 , 76 , 253 , 273 ], [ 183 , 288 , 265 , 285 , 287 , 252 , 234 , 256 , 255 , 222 ], [ 183 , 288 , 265 , 285 , 287 , 252 , 234 , 256 , 255 , 115 ], [ 183 , 288 , 265 , 285 , 287 , 252 , 234 , 256 , 255 , 253 ], [ 183 , 288 , 265 , 285 , 48 , 222 , 273 ], [ 183 , 288 , 91 , 255 , 287 , 256 , 200 ], [ 183 , 288 , 91 , 255 , 287 , 256 , 252 ], [ 183 , 288 , 91 , 273 , 48 ], [ 183 , 288 , 91 , 273 , 256 , 287 , 200 ], [ 183 , 288 , 91 , 273 , 256 , 287 , 252 ], [ 183 , 154 , 256 ], [ 183 , 283 , 255 ], [ 42 , 110 ], [ 42 , 4 ], [ 42 , 216 , 237 , 251 , 191 , 84 , 248 ], [ 42 , 216 , 237 , 251 , 191 , 84 , 225 ], [ 42 , 216 , 237 , 251 , 191 , 220 , 248 , 86 ], [ 42 , 216 , 237 , 251 , 191 , 220 , 225 ], [ 42 , 216 , 237 , 251 , 192 , 86 , 248 , 220 ], [ 13 , 298 , 161 ], [ 13 , 141 , 98 , 156 , 63 , 187 ], [ 13 , 141 , 98 , 126 , 187 , 63 ], [ 13 , 141 , 98 , 126 , 187 , 79 ], [ 13 , 141 , 98 , 126 , 97 , 79 ], [ 13 , 186 ], [ 13 , 91 ], [ 13 , 90 , 156 , 63 ], [ 13 , 90 , 126 , 63 ], [ 13 , 90 , 126 , 97 , 79 ], [ 19 , 169 ], [ 19 , 181 ], [ 19 , 194 , 195 , 125 , 106 , 95 ], [ 19 , 194 , 195 , 125 , 106 , 112 , 136 ], [ 19 , 194 , 195 , 125 , 133 , 95 ], [ 19 , 194 , 195 , 125 , 133 , 136 ], [ 19 , 194 , 195 , 182 , 174 , 106 , 95 ], [ 19 , 194 , 195 , 182 , 174 , 106 , 112 , 136 ], [ 19 , 194 , 195 , 182 , 174 , 49 , 112 , 136 ], [ 19 , 194 , 195 , 182 , 174 , 49 , 133 , 95 ], [ 19 , 194 , 195 , 182 , 174 , 49 , 133 , 136 ], [ 19 , 220 ], [ 206 , 28 , 292 ], [ 206 , 278 , 40 , 100 ], [ 206 , 278 , 165 ], [ 206 , 68 , 111 ], [ 206 , 201 , 66 , 145 , 111 , 35 ], [ 206 , 201 , 66 , 145 , 111 , 80 , 78 ], [ 206 , 201 , 66 , 145 , 111 , 169 , 78 ], [ 206 , 201 , 66 , 145 , 111 , 169 , 87 ], [ 206 , 201 , 66 , 145 , 35 , 74 ], [ 206 , 201 , 66 , 145 , 153 , 80 , 78 ], [ 206 , 201 , 66 , 145 , 153 , 169 , 74 ], [ 206 , 201 , 66 , 145 , 153 , 169 , 78 ], [ 206 , 201 , 66 , 145 , 153 , 169 , 87 ], [ 206 , 201 , 66 , 147 , 35 ], [ 206 , 201 , 66 , 147 , 153 , 78 , 99 , 80 ], [ 206 , 201 , 66 , 147 , 153 , 78 , 169 ], [ 206 , 201 , 66 , 147 , 153 , 87 , 169 ], [ 206 , 201 , 66 , 99 , 111 , 78 , 80 ], [ 206 , 201 , 193 , 40 , 145 , 100 , 61 ], [ 206 , 201 , 193 , 40 , 145 , 78 ], [ 206 , 201 , 193 , 40 , 145 , 167 ], [ 206 , 201 , 193 , 40 , 147 , 158 , 103 , 100 ], [ 206 , 201 , 193 , 40 , 147 , 158 , 103 , 167 ], [ 206 , 201 , 193 , 40 , 147 , 78 ], [ 206 , 201 , 193 , 40 , 61 , 158 , 100 ], [ 206 , 201 , 193 , 100 , 145 , 111 , 35 ], [ 206 , 201 , 193 , 100 , 145 , 111 , 80 ], [ 206 , 201 , 193 , 100 , 145 , 111 , 169 ], [ 206 , 201 , 193 , 100 , 111 , 142 , 35 ], [ 206 , 201 , 193 , 100 , 111 , 142 , 169 ], [ 206 , 201 , 193 , 100 , 158 , 147 , 142 , 35 ], [ 206 , 201 , 193 , 100 , 158 , 147 , 142 , 103 , 169 ], [ 206 , 201 , 193 , 100 , 158 , 147 , 80 ], [ 206 , 201 , 193 , 100 , 158 , 61 , 142 ], [ 206 , 201 , 193 , 100 , 158 , 61 , 38 ], [ 206 , 201 , 193 , 100 , 158 , 38 , 169 ], [ 206 , 201 , 193 , 152 , 145 , 111 , 35 ], [ 206 , 201 , 193 , 152 , 145 , 111 , 169 , 78 ], [ 206 , 201 , 193 , 152 , 145 , 111 , 169 , 87 , 167 ], [ 206 , 201 , 193 , 152 , 145 , 61 ], [ 206 , 201 , 193 , 152 , 142 , 111 , 169 , 78 ], [ 206 , 201 , 193 , 152 , 142 , 111 , 169 , 167 ], [ 206 , 201 , 193 , 152 , 142 , 111 , 99 , 78 ], [ 206 , 201 , 193 , 152 , 142 , 111 , 99 , 167 ], [ 206 , 201 , 193 , 152 , 142 , 111 , 35 ], [ 206 , 201 , 193 , 152 , 142 , 147 , 158 , 35 ], [ 206 , 201 , 193 , 152 , 142 , 147 , 158 , 103 , 167 , 99 ], [ 206 , 201 , 193 , 152 , 142 , 147 , 158 , 103 , 167 , 169 ], [ 206 , 201 , 193 , 152 , 142 , 147 , 78 , 99 ], [ 206 , 201 , 193 , 152 , 142 , 147 , 78 , 169 ], [ 206 , 201 , 193 , 152 , 142 , 61 , 158 , 99 ], [ 206 , 201 , 193 , 152 , 38 , 158 , 61 ], [ 206 , 201 , 193 , 152 , 38 , 158 , 167 , 169 , 87 ], [ 206 , 201 , 193 , 152 , 87 , 169 , 167 , 147 , 158 ], [ 206 , 201 , 193 , 80 , 145 , 111 , 78 ], [ 206 , 201 , 193 , 80 , 145 , 111 , 167 ], [ 206 , 201 , 193 , 80 , 99 , 111 , 78 ], [ 206 , 201 , 193 , 80 , 99 , 111 , 167 ], [ 206 , 201 , 193 , 80 , 99 , 147 , 158 , 167 ], [ 206 , 201 , 193 , 80 , 99 , 147 , 78 ], [ 206 , 201 , 74 , 158 , 142 , 169 , 103 , 167 ], [ 206 , 201 , 74 , 158 , 142 , 61 ], [ 206 , 201 , 74 , 158 , 142 , 35 ], [ 206 , 201 , 74 , 158 , 38 , 61 ], [ 206 , 201 , 74 , 158 , 38 , 169 , 167 ], [ 206 , 201 , 74 , 153 , 61 , 145 ], [ 206 , 201 , 74 , 153 , 61 , 142 ], [ 206 , 201 , 74 , 153 , 61 , 38 ], [ 206 , 201 , 74 , 153 , 169 , 167 , 145 ], [ 206 , 201 , 74 , 153 , 169 , 167 , 103 , 142 ], [ 206 , 201 , 74 , 153 , 169 , 167 , 38 ], [ 206 , 201 , 153 , 40 , 145 , 61 ], [ 206 , 201 , 153 , 40 , 145 , 78 ], [ 206 , 201 , 153 , 40 , 145 , 167 ], [ 206 , 201 , 153 , 40 , 147 , 78 ], [ 206 , 201 , 153 , 40 , 147 , 103 , 167 ], [ 206 , 201 , 153 , 152 , 61 , 145 ], [ 206 , 201 , 153 , 152 , 61 , 99 , 142 ], [ 206 , 201 , 153 , 152 , 61 , 38 ], [ 206 , 201 , 153 , 152 , 169 , 78 , 145 ], [ 206 , 201 , 153 , 152 , 169 , 78 , 147 , 142 ], [ 206 , 201 , 153 , 152 , 169 , 167 , 145 , 87 ], [ 206 , 201 , 153 , 152 , 169 , 167 , 147 , 142 , 103 ], [ 206 , 201 , 153 , 152 , 169 , 167 , 147 , 87 ], [ 206 , 201 , 153 , 152 , 169 , 167 , 38 , 87 ], [ 206 , 201 , 153 , 152 , 99 , 147 , 142 , 78 ], [ 206 , 201 , 153 , 152 , 99 , 147 , 142 , 103 , 167 ], [ 206 , 201 , 153 , 80 , 167 , 145 ], [ 206 , 201 , 153 , 80 , 167 , 147 , 99 ], [ 206 , 48 ], [ 113 , 279 , 178 ], [ 113 , 184 ], [ 113 , 229 ], [ 113 , 251 , 216 , 237 , 6 , 248 ], [ 113 , 251 , 216 , 237 , 220 , 191 , 127 , 248 ], [ 113 , 251 , 216 , 237 , 220 , 191 , 127 , 225 ], [ 113 , 251 , 216 , 237 , 220 , 191 , 50 , 248 ], [ 113 , 251 , 216 , 237 , 220 , 191 , 50 , 225 ], [ 154 , 227 ], [ 175 , 285 , 185 ], [ 175 , 250 ], [ 175 , 167 ], [ 137 , 200 ], [ 137 , 125 ], [ 137 , 243 , 291 ], [ 137 , 130 ], [ 72 , 132 ], [ 72 , 107 ], [ 72 , 296 ], [ 262 , 85 ], [ 262 , 284 , 189 , 270 ], [ 262 , 196 , 270 ], [ 262 , 270 , 283 , 241 ], [ 262 , 270 , 283 , 119 ], [ 262 , 270 , 283 , 246 ], [ 262 , 282 , 189 ], [ 262 , 282 , 135 , 279 , 238 , 278 , 261 , 283 , 232 , 205 , 249 , 239 , 219 ], [ 262 , 282 , 135 , 279 , 238 , 278 , 261 , 283 , 232 , 205 , 249 , 239 , 250 ], [ 262 , 282 , 135 , 279 , 238 , 278 , 261 , 283 , 232 , 205 , 249 , 241 , 219 ], [ 262 , 282 , 135 , 279 , 238 , 278 , 261 , 283 , 232 , 205 , 249 , 241 , 250 ], [ 262 , 282 , 135 , 279 , 238 , 278 , 261 , 283 , 232 , 178 , 250 , 239 ], [ 262 , 282 , 135 , 279 , 238 , 278 , 261 , 283 , 232 , 178 , 250 , 241 ], [ 262 , 282 , 135 , 279 , 238 , 278 , 261 , 283 , 258 , 205 , 249 , 239 , 219 ], [ 262 , 282 , 135 , 279 , 238 , 278 , 261 , 283 , 258 , 205 , 249 , 239 , 250 ], [ 262 , 282 , 135 , 279 , 238 , 278 , 261 , 283 , 258 , 205 , 249 , 241 , 219 ], [ 262 , 282 , 135 , 279 , 238 , 278 , 261 , 283 , 258 , 205 , 249 , 241 , 250 ], [ 262 , 282 , 135 , 279 , 238 , 278 , 261 , 283 , 258 , 178 , 250 , 239 ], [ 262 , 282 , 135 , 279 , 238 , 278 , 261 , 283 , 258 , 178 , 250 , 241 ], [ 262 , 195 , 171 ], [ 262 , 212 ], [ 32 , 214 ], [ 32 , 133 ], [ 32 , 87 ], [ 141 , 210 , 281 ], [ 141 , 273 , 156 ], [ 141 , 187 , 81 , 156 , 63 , 98 ], [ 141 , 187 , 81 , 156 , 82 ], [ 141 , 187 , 81 , 156 , 161 , 79 , 98 ], [ 141 , 187 , 81 , 156 , 161 , 39 ], [ 141 , 187 , 81 , 126 , 82 ], [ 141 , 187 , 81 , 126 , 98 , 63 ], [ 141 , 187 , 81 , 126 , 98 , 79 ], [ 141 , 187 , 81 , 126 , 39 ], [ 141 , 187 , 81 , 68 , 63 ], [ 141 , 187 , 81 , 68 , 161 , 79 ], [ 141 , 187 , 81 , 68 , 161 , 39 ], [ 141 , 187 , 88 , 63 , 156 ], [ 141 , 187 , 88 , 63 , 126 ], [ 141 , 187 , 88 , 39 , 156 ], [ 141 , 187 , 88 , 39 , 126 ], [ 141 , 187 , 10 , 39 , 161 ], [ 141 , 261 ], [ 141 , 97 , 126 , 81 , 79 , 98 ], [ 141 , 97 , 161 , 81 , 79 , 156 , 98 ], [ 141 , 97 , 161 , 81 , 79 , 68 ], [ 107 , 213 , 295 ], [ 107 , 288 , 185 , 255 , 252 , 287 , 222 , 285 ], [ 107 , 288 , 185 , 255 , 252 , 287 , 222 , 263 ], [ 107 , 288 , 185 , 255 , 252 , 287 , 184 , 285 ], [ 107 , 288 , 185 , 255 , 252 , 287 , 184 , 263 ], [ 107 , 288 , 185 , 255 , 252 , 157 , 222 , 285 ], [ 107 , 288 , 185 , 255 , 252 , 157 , 222 , 263 ], [ 107 , 288 , 185 , 255 , 260 , 287 , 222 , 285 ], [ 107 , 288 , 185 , 255 , 260 , 287 , 222 , 263 ], [ 107 , 288 , 185 , 255 , 260 , 287 , 184 , 285 ], [ 107 , 288 , 185 , 255 , 260 , 287 , 184 , 263 ], [ 107 , 288 , 185 , 255 , 260 , 157 , 222 , 285 ], [ 107 , 288 , 185 , 255 , 260 , 157 , 222 , 263 ], [ 107 , 288 , 234 , 287 , 224 , 285 , 252 , 173 ], [ 107 , 288 , 234 , 287 , 224 , 285 , 252 , 222 ], [ 107 , 288 , 234 , 287 , 224 , 285 , 260 , 173 ], [ 107 , 288 , 234 , 287 , 224 , 285 , 260 , 222 ], [ 107 , 288 , 234 , 287 , 224 , 285 , 260 , 122 ], [ 107 , 288 , 234 , 287 , 224 , 263 , 252 , 173 ], [ 107 , 288 , 234 , 287 , 224 , 263 , 252 , 222 ], [ 107 , 288 , 234 , 287 , 224 , 263 , 260 , 173 ], [ 107 , 288 , 234 , 287 , 224 , 263 , 260 , 222 ], [ 107 , 288 , 234 , 287 , 224 , 263 , 260 , 122 ], [ 107 , 288 , 234 , 287 , 255 , 285 , 252 , 173 ], [ 107 , 288 , 234 , 287 , 255 , 285 , 252 , 222 ], [ 107 , 288 , 234 , 287 , 255 , 285 , 252 , 184 ], [ 107 , 288 , 234 , 287 , 255 , 285 , 260 , 173 ], [ 107 , 288 , 234 , 287 , 255 , 285 , 260 , 222 ], [ 107 , 288 , 234 , 287 , 255 , 285 , 260 , 184 ], [ 107 , 288 , 234 , 287 , 255 , 285 , 260 , 122 ], [ 107 , 288 , 234 , 287 , 255 , 263 , 252 , 173 ], [ 107 , 288 , 234 , 287 , 255 , 263 , 252 , 222 ], [ 107 , 288 , 234 , 287 , 255 , 263 , 252 , 184 ], [ 107 , 288 , 234 , 287 , 255 , 263 , 260 , 173 ], [ 107 , 288 , 234 , 287 , 255 , 263 , 260 , 222 ], [ 107 , 288 , 234 , 287 , 255 , 263 , 260 , 184 ], [ 107 , 288 , 234 , 287 , 255 , 263 , 260 , 122 ], [ 107 , 288 , 234 , 157 , 222 , 255 , 252 , 285 ], [ 107 , 288 , 234 , 157 , 222 , 255 , 252 , 263 ], [ 107 , 288 , 234 , 157 , 222 , 255 , 260 , 285 ], [ 107 , 288 , 234 , 157 , 222 , 255 , 260 , 263 ], [ 22 , 64 ], [ 22 , 188 ], [ 22 , 267 ], [ 91 , 238 , 252 ], [ 91 , 288 , 287 , 200 , 214 , 256 , 255 ], [ 91 , 288 , 287 , 200 , 214 , 256 , 273 ], [ 91 , 288 , 287 , 252 , 255 , 173 ], [ 91 , 288 , 287 , 252 , 255 , 214 , 256 ], [ 91 , 288 , 287 , 252 , 255 , 184 ], [ 91 , 288 , 287 , 252 , 273 , 214 , 256 ], [ 91 , 288 , 287 , 252 , 273 , 184 ], [ 91 , 288 , 48 , 173 ], [ 91 , 85 ], [ 91 , 65 ], [ 91 , 94 , 214 , 287 , 256 , 255 ], [ 91 , 94 , 214 , 287 , 256 , 273 ], [ 178 , 145 ], [ 178 , 213 , 268 ], [ 178 , 46 , 278 ], [ 217 , 289 , 249 ], [ 217 , 289 , 215 ], [ 217 , 256 , 131 ], [ 217 , 283 , 131 , 279 , 261 , 282 , 238 , 249 , 202 , 241 , 232 , 219 ], [ 217 , 283 , 131 , 279 , 261 , 282 , 238 , 249 , 202 , 241 , 232 , 250 ], [ 217 , 283 , 131 , 279 , 261 , 282 , 238 , 249 , 202 , 241 , 247 , 258 , 219 ], [ 217 , 283 , 131 , 279 , 261 , 282 , 238 , 249 , 202 , 241 , 247 , 258 , 250 ], [ 217 , 283 , 131 , 279 , 261 , 282 , 238 , 249 , 246 , 232 , 219 ], [ 217 , 283 , 131 , 279 , 261 , 282 , 238 , 249 , 246 , 232 , 250 ], [ 217 , 283 , 131 , 279 , 261 , 282 , 238 , 249 , 246 , 247 , 258 , 219 ], [ 217 , 283 , 131 , 279 , 261 , 282 , 238 , 249 , 246 , 247 , 258 , 250 ], [ 217 , 283 , 131 , 279 , 261 , 282 , 93 , 250 , 246 ], [ 217 , 283 , 55 ], [ 217 , 283 , 158 ], [ 217 , 226 , 55 ], [ 167 , 95 , 69 ], [ 167 , 180 ], [ 214 , 191 , 285 , 94 ], [ 214 , 28 , 281 ], [ 214 , 28 , 273 ], [ 214 , 157 , 288 , 222 , 200 , 260 , 188 , 285 , 255 ], [ 214 , 157 , 288 , 222 , 200 , 260 , 188 , 285 , 273 ], [ 214 , 157 , 288 , 222 , 200 , 260 , 188 , 263 , 255 ], [ 214 , 157 , 288 , 222 , 200 , 260 , 188 , 263 , 273 ], [ 214 , 157 , 288 , 222 , 200 , 260 , 231 , 285 , 255 ], [ 214 , 157 , 288 , 222 , 200 , 260 , 231 , 285 , 273 ], [ 214 , 157 , 288 , 222 , 200 , 260 , 231 , 263 , 255 ], [ 214 , 157 , 288 , 222 , 200 , 260 , 231 , 263 , 273 ], [ 214 , 157 , 288 , 222 , 252 , 188 , 285 , 255 ], [ 214 , 157 , 288 , 222 , 252 , 188 , 285 , 273 ], [ 214 , 157 , 288 , 222 , 252 , 188 , 263 , 255 ], [ 214 , 157 , 288 , 222 , 252 , 188 , 263 , 273 ], [ 214 , 157 , 288 , 222 , 252 , 231 , 285 , 255 ], [ 214 , 157 , 288 , 222 , 252 , 231 , 285 , 273 ], [ 214 , 157 , 288 , 222 , 252 , 231 , 263 , 255 ], [ 214 , 157 , 288 , 222 , 252 , 231 , 263 , 273 ], [ 214 , 202 ], [ 214 , 287 , 288 , 222 , 231 , 200 , 260 , 224 , 263 , 273 ], [ 214 , 287 , 288 , 222 , 231 , 200 , 260 , 151 , 255 ], [ 214 , 287 , 288 , 222 , 231 , 200 , 260 , 255 , 285 ], [ 214 , 287 , 288 , 222 , 231 , 200 , 260 , 255 , 263 ], [ 214 , 287 , 288 , 222 , 231 , 252 , 224 , 263 , 273 ], [ 214 , 287 , 288 , 222 , 231 , 252 , 151 , 255 ], [ 214 , 287 , 288 , 222 , 231 , 252 , 255 , 285 ], [ 214 , 287 , 288 , 222 , 231 , 252 , 255 , 263 ], [ 214 , 287 , 288 , 222 , 256 , 18 , 263 , 273 , 252 ], [ 214 , 287 , 288 , 222 , 256 , 18 , 263 , 273 , 260 ], [ 214 , 287 , 288 , 222 , 256 , 265 , 200 , 260 , 188 , 224 , 273 , 285 ], [ 214 , 287 , 288 , 222 , 256 , 265 , 200 , 260 , 188 , 224 , 273 , 263 ], [ 214 , 287 , 288 , 222 , 256 , 265 , 200 , 260 , 188 , 255 , 285 ], [ 214 , 287 , 288 , 222 , 256 , 265 , 200 , 260 , 188 , 255 , 263 ], [ 214 , 287 , 288 , 222 , 256 , 265 , 200 , 260 , 151 , 255 ], [ 214 , 287 , 288 , 222 , 256 , 265 , 252 , 188 , 224 , 273 , 285 ], [ 214 , 287 , 288 , 222 , 256 , 265 , 252 , 188 , 224 , 273 , 263 ], [ 214 , 287 , 288 , 222 , 256 , 265 , 252 , 188 , 255 , 285 ], [ 214 , 287 , 288 , 222 , 256 , 265 , 252 , 188 , 255 , 263 ], [ 214 , 287 , 288 , 222 , 256 , 265 , 252 , 151 , 255 ], [ 214 , 287 , 288 , 253 , 255 , 110 , 285 , 231 ], [ 214 , 287 , 288 , 253 , 255 , 110 , 285 , 256 ], [ 214 , 287 , 288 , 253 , 255 , 110 , 285 , 67 ], [ 214 , 287 , 288 , 253 , 255 , 231 , 200 , 260 , 285 ], [ 214 , 287 , 288 , 253 , 255 , 231 , 200 , 260 , 151 ], [ 214 , 287 , 288 , 253 , 255 , 231 , 200 , 260 , 263 ], [ 214 , 287 , 288 , 253 , 255 , 231 , 252 , 285 ], [ 214 , 287 , 288 , 253 , 255 , 231 , 252 , 151 ], [ 214 , 287 , 288 , 253 , 255 , 231 , 252 , 263 ], [ 214 , 287 , 288 , 253 , 255 , 265 , 256 , 188 , 200 , 260 , 285 ], [ 214 , 287 , 288 , 253 , 255 , 265 , 256 , 188 , 200 , 260 , 263 ], [ 214 , 287 , 288 , 253 , 255 , 265 , 256 , 188 , 104 , 252 , 285 ], [ 214 , 287 , 288 , 253 , 255 , 265 , 256 , 188 , 104 , 252 , 263 ], [ 214 , 287 , 288 , 253 , 255 , 265 , 256 , 188 , 104 , 260 , 285 ], [ 214 , 287 , 288 , 253 , 255 , 265 , 256 , 188 , 104 , 260 , 263 ], [ 214 , 287 , 288 , 253 , 255 , 265 , 256 , 151 , 200 , 260 ], [ 214 , 287 , 288 , 253 , 255 , 265 , 256 , 151 , 252 ], [ 214 , 287 , 288 , 253 , 255 , 265 , 67 , 252 , 285 ], [ 214 , 287 , 288 , 253 , 255 , 265 , 67 , 252 , 263 ], [ 214 , 287 , 288 , 253 , 273 , 231 , 224 , 263 , 200 , 260 ], [ 214 , 287 , 288 , 253 , 273 , 231 , 224 , 263 , 252 ], [ 214 , 287 , 288 , 253 , 273 , 256 , 188 , 265 , 224 , 200 , 260 , 285 ], [ 214 , 287 , 288 , 253 , 273 , 256 , 188 , 265 , 224 , 200 , 260 , 263 ], [ 214 , 287 , 288 , 253 , 273 , 256 , 188 , 265 , 224 , 252 , 285 ], [ 214 , 287 , 288 , 253 , 273 , 256 , 188 , 265 , 224 , 252 , 263 ], [ 214 , 287 , 288 , 253 , 273 , 256 , 188 , 265 , 104 , 252 , 285 ], [ 214 , 287 , 288 , 253 , 273 , 256 , 188 , 265 , 104 , 252 , 263 ], [ 214 , 287 , 288 , 253 , 273 , 256 , 188 , 265 , 104 , 260 , 285 ], [ 214 , 287 , 288 , 253 , 273 , 256 , 188 , 265 , 104 , 260 , 263 ], [ 214 , 287 , 288 , 253 , 273 , 256 , 18 , 263 , 252 ], [ 214 , 287 , 288 , 253 , 273 , 256 , 18 , 263 , 260 ], [ 214 , 287 , 288 , 253 , 273 , 256 , 110 , 224 , 285 ], [ 214 , 287 , 288 , 253 , 273 , 67 , 110 , 285 ], [ 214 , 287 , 288 , 253 , 273 , 67 , 265 , 252 , 285 ], [ 214 , 287 , 288 , 253 , 273 , 67 , 265 , 252 , 263 ], [ 214 , 287 , 94 , 285 , 260 , 188 , 265 , 256 , 222 , 255 ], [ 214 , 287 , 94 , 285 , 260 , 188 , 265 , 256 , 222 , 273 ], [ 214 , 287 , 94 , 285 , 260 , 188 , 265 , 256 , 104 , 255 ], [ 214 , 287 , 94 , 285 , 260 , 188 , 265 , 256 , 104 , 273 ], [ 214 , 287 , 94 , 285 , 260 , 231 , 222 , 255 ], [ 214 , 287 , 94 , 285 , 260 , 231 , 222 , 273 ], [ 214 , 281 , 265 ], [ 268 , 296 , 213 ], [ 268 , 296 , 229 , 276 ], [ 268 , 296 , 229 , 114 ], [ 268 , 296 , 211 ], [ 268 , 122 , 253 ], [ 268 , 78 ], [ 268 , 292 , 159 , 275 , 291 , 276 , 266 , 121 , 218 , 235 , 245 ], [ 268 , 292 , 159 , 275 , 291 , 276 , 266 , 121 , 218 , 235 , 272 ], [ 268 , 292 , 159 , 275 , 291 , 276 , 266 , 121 , 218 , 236 , 272 ], [ 268 , 292 , 159 , 275 , 291 , 276 , 266 , 229 , 245 , 235 , 257 , 281 ], [ 268 , 292 , 159 , 275 , 291 , 276 , 266 , 229 , 245 , 235 , 257 , 221 ], [ 268 , 292 , 159 , 275 , 291 , 276 , 266 , 229 , 245 , 235 , 218 , 281 ], [ 268 , 292 , 159 , 275 , 291 , 276 , 266 , 229 , 245 , 235 , 218 , 221 ], [ 268 , 292 , 159 , 275 , 291 , 276 , 266 , 229 , 272 , 235 , 257 , 281 ], [ 268 , 292 , 159 , 275 , 291 , 276 , 266 , 229 , 272 , 235 , 257 , 221 ], [ 268 , 292 , 159 , 275 , 291 , 276 , 266 , 229 , 272 , 235 , 218 , 281 ], [ 268 , 292 , 159 , 275 , 291 , 276 , 266 , 229 , 272 , 235 , 218 , 221 ], [ 268 , 292 , 159 , 275 , 291 , 276 , 266 , 229 , 272 , 236 , 257 , 281 ], [ 268 , 292 , 159 , 275 , 291 , 276 , 266 , 229 , 272 , 236 , 257 , 221 ], [ 268 , 292 , 159 , 275 , 291 , 276 , 266 , 229 , 272 , 236 , 218 , 281 ], [ 268 , 292 , 159 , 275 , 291 , 276 , 266 , 229 , 272 , 236 , 218 , 221 ], [ 268 , 292 , 253 , 244 ], [ 268 , 225 , 159 ], [ 38 , 56 ], [ 38 , 157 ], [ 38 , 85 ], [ 20 , 248 , 251 , 226 , 15 , 190 ], [ 20 , 248 , 251 , 226 , 216 , 190 ], [ 20 , 248 , 251 , 226 , 216 , 191 ], [ 20 , 248 , 251 , 226 , 216 , 192 ], [ 20 , 248 , 251 , 226 , 60 ], [ 20 , 248 , 208 , 60 ], [ 20 , 248 , 208 , 216 , 190 ], [ 20 , 248 , 208 , 216 , 191 ], [ 20 , 102 ], [ 20 , 225 , 157 ], [ 20 , 225 , 251 , 226 , 15 , 190 ], [ 20 , 225 , 251 , 226 , 216 , 190 ], [ 20 , 225 , 251 , 226 , 216 , 191 ], [ 20 , 225 , 251 , 226 , 216 , 192 ], [ 20 , 225 , 251 , 226 , 60 ], [ 20 , 225 , 208 , 60 ], [ 20 , 225 , 208 , 216 , 190 ], [ 20 , 225 , 208 , 216 , 191 ], [ 56 , 138 ], [ 215 , 296 , 298 , 254 , 294 , 160 , 280 , 267 , 293 ], [ 215 , 296 , 298 , 254 , 294 , 160 , 280 , 267 , 284 ], [ 215 , 296 , 298 , 254 , 294 , 160 , 150 ], [ 215 , 296 , 298 , 254 , 294 , 286 , 284 , 271 , 270 ], [ 215 , 296 , 298 , 254 , 294 , 286 , 284 , 271 , 267 ], [ 215 , 296 , 298 , 254 , 294 , 286 , 284 , 280 , 270 ], [ 215 , 296 , 298 , 254 , 294 , 286 , 284 , 280 , 267 ], [ 215 , 296 , 298 , 254 , 294 , 286 , 211 , 227 , 271 ], [ 215 , 296 , 298 , 254 , 294 , 286 , 211 , 227 , 293 ], [ 215 , 296 , 298 , 254 , 294 , 286 , 211 , 280 , 293 ], [ 215 , 296 , 298 , 254 , 294 , 286 , 264 , 271 , 227 , 267 ], [ 215 , 296 , 298 , 254 , 294 , 286 , 264 , 271 , 270 ], [ 215 , 296 , 298 , 254 , 294 , 286 , 264 , 150 ], [ 215 , 296 , 298 , 254 , 294 , 286 , 264 , 293 , 227 , 267 ], [ 215 , 296 , 298 , 254 , 294 , 286 , 264 , 293 , 280 , 270 ], [ 215 , 296 , 298 , 254 , 294 , 286 , 264 , 293 , 280 , 267 ], [ 215 , 296 , 298 , 254 , 294 , 148 , 150 , 264 ], [ 215 , 296 , 298 , 254 , 294 , 148 , 267 , 271 , 284 ], [ 215 , 296 , 298 , 254 , 294 , 148 , 267 , 271 , 264 ], [ 215 , 296 , 298 , 254 , 294 , 148 , 267 , 293 , 264 ], [ 215 , 296 , 298 , 254 , 289 , 160 , 280 , 267 , 293 ], [ 215 , 296 , 298 , 254 , 289 , 160 , 280 , 267 , 284 ], [ 215 , 296 , 298 , 254 , 289 , 160 , 150 ], [ 215 , 296 , 298 , 254 , 289 , 286 , 243 , 211 , 227 , 271 ], [ 215 , 296 , 298 , 254 , 289 , 286 , 243 , 211 , 227 , 293 ], [ 215 , 296 , 298 , 254 , 289 , 286 , 243 , 211 , 280 , 293 ], [ 215 , 296 , 298 , 254 , 289 , 286 , 243 , 284 , 270 , 271 ], [ 215 , 296 , 298 , 254 , 289 , 286 , 243 , 284 , 270 , 280 ], [ 215 , 296 , 298 , 254 , 289 , 286 , 243 , 264 , 227 , 271 ], [ 215 , 296 , 298 , 254 , 289 , 286 , 243 , 264 , 227 , 293 ], [ 215 , 296 , 298 , 254 , 289 , 286 , 243 , 264 , 270 , 271 ], [ 215 , 296 , 298 , 254 , 289 , 286 , 243 , 264 , 270 , 280 , 293 ], [ 215 , 296 , 298 , 254 , 289 , 286 , 243 , 264 , 150 ], [ 215 , 296 , 298 , 254 , 289 , 286 , 267 , 284 , 271 ], [ 215 , 296 , 298 , 254 , 289 , 286 , 267 , 284 , 280 ], [ 215 , 296 , 298 , 254 , 289 , 286 , 267 , 264 , 227 , 271 ], [ 215 , 296 , 298 , 254 , 289 , 286 , 267 , 264 , 227 , 293 ], [ 215 , 296 , 298 , 254 , 289 , 286 , 267 , 264 , 280 , 293 ], [ 215 , 296 , 298 , 254 , 148 , 243 , 284 , 271 ], [ 215 , 296 , 298 , 254 , 148 , 243 , 264 , 271 ], [ 215 , 296 , 298 , 254 , 148 , 243 , 264 , 150 ], [ 215 , 296 , 298 , 254 , 148 , 243 , 264 , 293 ], [ 215 , 296 , 298 , 295 , 160 , 289 , 280 , 259 , 284 ], [ 215 , 296 , 298 , 295 , 160 , 289 , 280 , 267 , 293 ], [ 215 , 296 , 298 , 295 , 160 , 289 , 280 , 267 , 284 ], [ 215 , 296 , 298 , 295 , 160 , 289 , 150 ], [ 215 , 296 , 298 , 295 , 160 , 289 , 230 , 259 , 284 ], [ 215 , 296 , 298 , 295 , 160 , 289 , 230 , 267 , 293 ], [ 215 , 296 , 298 , 295 , 160 , 289 , 230 , 267 , 284 ], [ 215 , 296 , 298 , 295 , 160 , 294 , 280 , 259 , 284 ], [ 215 , 296 , 298 , 295 , 160 , 294 , 280 , 267 , 293 ], [ 215 , 296 , 298 , 295 , 160 , 294 , 280 , 267 , 284 ], [ 215 , 296 , 298 , 295 , 160 , 294 , 150 ], [ 215 , 296 , 298 , 295 , 160 , 294 , 230 , 259 , 284 ], [ 215 , 296 , 298 , 295 , 160 , 294 , 230 , 267 , 293 ], [ 215 , 296 , 298 , 295 , 160 , 294 , 230 , 267 , 284 ], [ 215 , 296 , 298 , 295 , 286 , 163 , 243 , 271 , 270 ], [ 215 , 296 , 298 , 295 , 286 , 163 , 243 , 271 , 211 ], [ 215 , 296 , 298 , 295 , 286 , 163 , 243 , 293 , 270 ], [ 215 , 296 , 298 , 295 , 286 , 163 , 243 , 293 , 211 ], [ 215 , 296 , 298 , 295 , 286 , 163 , 294 , 242 , 259 , 270 ], [ 215 , 296 , 298 , 295 , 286 , 163 , 294 , 242 , 293 , 211 ], [ 215 , 296 , 298 , 295 , 286 , 163 , 294 , 242 , 293 , 270 ], [ 215 , 296 , 298 , 295 , 286 , 163 , 294 , 242 , 293 , 267 ], [ 215 , 296 , 298 , 295 , 286 , 163 , 294 , 271 , 259 , 270 ], [ 215 , 296 , 298 , 295 , 286 , 163 , 294 , 271 , 211 ], [ 215 , 296 , 298 , 295 , 286 , 163 , 294 , 271 , 267 ], [ 215 , 296 , 298 , 295 , 286 , 289 , 284 , 259 , 240 , 242 , 280 , 270 ], [ 215 , 296 , 298 , 295 , 286 , 289 , 284 , 259 , 240 , 242 , 230 ], [ 215 , 296 , 298 , 295 , 286 , 289 , 284 , 259 , 271 , 270 ], [ 215 , 296 , 298 , 295 , 286 , 289 , 284 , 259 , 271 , 230 ], [ 215 , 296 , 298 , 295 , 286 , 289 , 284 , 243 , 271 , 270 ], [ 215 , 296 , 298 , 295 , 286 , 289 , 284 , 243 , 271 , 230 ], [ 215 , 296 , 298 , 295 , 286 , 289 , 284 , 243 , 280 , 270 ], [ 215 , 296 , 298 , 295 , 286 , 289 , 284 , 267 , 242 , 280 ], [ 215 , 296 , 298 , 295 , 286 , 289 , 284 , 267 , 242 , 230 ], [ 215 , 296 , 298 , 295 , 286 , 289 , 284 , 267 , 271 , 230 ], [ 215 , 296 , 298 , 295 , 286 , 289 , 211 , 227 , 271 , 243 ], [ 215 , 296 , 298 , 295 , 286 , 289 , 211 , 227 , 293 , 240 , 242 ], [ 215 , 296 , 298 , 295 , 286 , 289 , 211 , 227 , 293 , 243 ], [ 215 , 296 , 298 , 295 , 286 , 289 , 211 , 280 , 293 , 240 , 242 ], [ 215 , 296 , 298 , 295 , 286 , 289 , 211 , 280 , 293 , 243 ], [ 215 , 296 , 298 , 295 , 286 , 289 , 264 , 227 , 230 , 259 , 240 , 242 ], [ 215 , 296 , 298 , 295 , 286 , 289 , 264 , 227 , 230 , 259 , 271 ], [ 215 , 296 , 298 , 295 , 286 , 289 , 264 , 227 , 230 , 271 , 243 ], [ 215 , 296 , 298 , 295 , 286 , 289 , 264 , 227 , 230 , 271 , 267 ], [ 215 , 296 , 298 , 295 , 286 , 289 , 264 , 227 , 230 , 293 , 242 , 240 ], [ 215 , 296 , 298 , 295 , 286 , 289 , 264 , 227 , 230 , 293 , 242 , 267 ], [ 215 , 296 , 298 , 295 , 286 , 289 , 264 , 227 , 230 , 293 , 243 ], [ 215 , 296 , 298 , 295 , 286 , 289 , 264 , 280 , 270 , 240 , 242 , 259 ], [ 215 , 296 , 298 , 295 , 286 , 289 , 264 , 280 , 270 , 240 , 242 , 293 ], [ 215 , 296 , 298 , 295 , 286 , 289 , 264 , 280 , 270 , 243 , 293 ], [ 215 , 296 , 298 , 295 , 286 , 289 , 264 , 280 , 267 , 242 , 293 ], [ 215 , 296 , 298 , 295 , 286 , 289 , 264 , 150 , 243 ], [ 215 , 296 , 298 , 295 , 286 , 289 , 264 , 270 , 271 , 259 ], [ 215 , 296 , 298 , 295 , 286 , 289 , 264 , 270 , 271 , 243 ], [ 215 , 296 , 298 , 295 , 286 , 294 , 242 , 240 , 259 , 284 , 280 , 270 ], [ 215 , 296 , 298 , 295 , 286 , 294 , 242 , 240 , 259 , 284 , 230 ], [ 215 , 296 , 298 , 295 , 286 , 294 , 242 , 240 , 259 , 264 , 227 , 230 ], [ 215 , 296 , 298 , 295 , 286 , 294 , 242 , 240 , 259 , 264 , 280 , 270 ], [ 215 , 296 , 298 , 295 , 286 , 294 , 242 , 240 , 293 , 211 , 227 ], [ 215 , 296 , 298 , 295 , 286 , 294 , 242 , 240 , 293 , 211 , 280 ], [ 215 , 296 , 298 , 295 , 286 , 294 , 242 , 240 , 293 , 264 , 227 , 230 ], [ 215 , 296 , 298 , 295 , 286 , 294 , 242 , 240 , 293 , 264 , 280 , 270 ], [ 215 , 296 , 298 , 295 , 286 , 294 , 242 , 267 , 293 , 264 , 227 , 230 ], [ 215 , 296 , 298 , 295 , 286 , 294 , 242 , 267 , 293 , 264 , 280 ], [ 215 , 296 , 298 , 295 , 286 , 294 , 242 , 267 , 284 , 280 ], [ 215 , 296 , 298 , 295 , 286 , 294 , 242 , 267 , 284 , 230 ], [ 215 , 296 , 298 , 295 , 286 , 294 , 271 , 259 , 270 , 284 ], [ 215 , 296 , 298 , 295 , 286 , 294 , 271 , 259 , 270 , 264 ], [ 215 , 296 , 298 , 295 , 286 , 294 , 271 , 259 , 230 , 227 , 264 ], [ 215 , 296 , 298 , 295 , 286 , 294 , 271 , 259 , 230 , 284 ], [ 215 , 296 , 298 , 295 , 286 , 294 , 271 , 267 , 230 , 227 , 264 ], [ 215 , 296 , 298 , 295 , 286 , 294 , 271 , 267 , 230 , 284 ], [ 215 , 296 , 298 , 295 , 286 , 294 , 271 , 211 , 227 ], [ 215 , 296 , 298 , 295 , 286 , 294 , 150 , 264 ], [ 215 , 296 , 298 , 148 , 259 , 271 , 294 , 284 ], [ 215 , 296 , 298 , 148 , 259 , 271 , 294 , 264 ], [ 215 , 179 , 211 ], [ 215 , 235 ], [ 215 , 236 , 242 , 289 ], [ 215 , 92 , 293 ], [ 266 , 254 , 277 ], [ 266 , 238 , 236 ], [ 266 , 209 , 277 ], [ 266 , 173 , 276 , 23 ], [ 266 , 173 , 276 , 121 ], [ 266 , 173 , 285 ], [ 266 , 285 , 235 ], [ 266 , 90 ], [ 127 , 191 , 57 , 138 , 251 , 226 ], [ 127 , 191 , 57 , 138 , 251 , 220 ], [ 127 , 191 , 57 , 138 , 208 , 220 ], [ 127 , 191 , 216 , 237 , 226 , 251 , 138 , 248 ], [ 127 , 191 , 216 , 237 , 226 , 251 , 225 ], [ 127 , 191 , 216 , 237 , 220 , 138 , 248 , 251 ], [ 127 , 191 , 216 , 237 , 220 , 138 , 248 , 208 ], [ 127 , 191 , 216 , 237 , 220 , 208 , 225 ], [ 127 , 60 , 237 , 226 , 251 , 248 ], [ 127 , 60 , 237 , 226 , 251 , 225 ], [ 127 , 60 , 237 , 220 , 251 , 248 ], [ 127 , 60 , 237 , 220 , 251 , 225 ], [ 127 , 60 , 237 , 220 , 208 , 248 ], [ 127 , 60 , 237 , 220 , 208 , 225 ], [ 127 , 244 , 237 ], [ 127 , 136 , 195 ], [ 127 , 195 , 57 ], [ 199 , 26 ], [ 199 , 49 ], [ 199 , 25 ], [ 199 , 237 ], [ 199 , 123 ], [ 199 , 278 ], [ 124 , 259 , 4 ], [ 124 , 259 , 136 ], [ 124 , 223 ], [ 124 , 108 , 133 ], [ 124 , 194 , 125 , 195 , 2 , 116 ], [ 124 , 194 , 125 , 195 , 112 , 116 ], [ 124 , 194 , 125 , 195 , 112 , 136 , 106 ], [ 124 , 194 , 125 , 195 , 112 , 136 , 27 ], [ 124 , 194 , 125 , 195 , 69 , 106 ], [ 124 , 194 , 125 , 195 , 69 , 133 ], [ 124 , 194 , 125 , 195 , 133 , 27 , 136 ], [ 124 , 194 , 125 , 195 , 133 , 116 ], [ 124 , 194 , 125 , 85 , 69 , 133 ], [ 124 , 194 , 125 , 85 , 116 , 2 ], [ 124 , 194 , 125 , 85 , 116 , 112 ], [ 124 , 194 , 125 , 85 , 116 , 133 ], [ 124 , 194 , 125 , 85 , 136 , 112 ], [ 124 , 194 , 125 , 85 , 136 , 133 ], [ 124 , 194 , 174 , 182 , 195 , 2 , 116 ], [ 124 , 194 , 174 , 182 , 195 , 112 , 116 ], [ 124 , 194 , 174 , 182 , 195 , 112 , 136 , 106 ], [ 124 , 194 , 174 , 182 , 195 , 112 , 136 , 27 ], [ 124 , 194 , 174 , 182 , 195 , 92 , 106 , 69 ], [ 124 , 194 , 174 , 182 , 195 , 92 , 106 , 136 ], [ 124 , 194 , 174 , 182 , 195 , 92 , 133 , 116 ], [ 124 , 194 , 174 , 182 , 195 , 92 , 133 , 27 , 136 ], [ 124 , 194 , 174 , 182 , 195 , 92 , 133 , 69 ], [ 124 , 194 , 174 , 182 , 85 , 69 , 92 , 133 ], [ 124 , 194 , 174 , 182 , 85 , 116 , 2 ], [ 124 , 194 , 174 , 182 , 85 , 116 , 112 ], [ 124 , 194 , 174 , 182 , 85 , 116 , 92 , 133 ], [ 124 , 194 , 174 , 182 , 85 , 136 , 112 ], [ 124 , 194 , 174 , 182 , 85 , 136 , 92 , 133 ], [ 124 , 194 , 174 , 44 , 195 , 2 , 116 ], [ 124 , 194 , 174 , 44 , 195 , 112 , 106 , 136 ], [ 124 , 194 , 174 , 44 , 195 , 112 , 116 ], [ 124 , 194 , 174 , 44 , 195 , 69 , 106 ], [ 81 , 144 , 187 , 140 , 156 , 63 ], [ 81 , 144 , 187 , 140 , 156 , 82 ], [ 81 , 144 , 187 , 140 , 156 , 161 , 39 ], [ 81 , 144 , 187 , 140 , 126 , 63 ], [ 81 , 144 , 187 , 140 , 126 , 82 ], [ 81 , 144 , 187 , 140 , 126 , 39 ], [ 81 , 144 , 187 , 140 , 68 , 63 ], [ 81 , 144 , 187 , 140 , 68 , 161 , 39 ], [ 81 , 144 , 187 , 98 , 156 , 63 ], [ 81 , 144 , 187 , 98 , 156 , 161 ], [ 81 , 144 , 187 , 98 , 126 , 63 ], [ 81 , 221 ], [ 81 , 140 , 97 , 126 ], [ 81 , 140 , 97 , 161 , 156 ], [ 81 , 140 , 97 , 161 , 68 ], [ 81 , 248 ], [ 81 , 151 ], [ 94 , 126 ], [ 94 , 125 ], [ 94 , 41 , 273 , 287 , 285 , 231 ], [ 94 , 41 , 273 , 287 , 285 , 256 ], [ 94 , 292 , 260 ], [ 131 , 291 , 9 ], [ 131 , 9 , 219 ], [ 131 , 208 ], [ 64 , 125 ], [ 64 , 70 ], [ 64 , 65 ], [ 64 , 273 , 288 , 287 , 224 , 231 , 252 , 285 ], [ 64 , 273 , 288 , 287 , 224 , 231 , 252 , 263 ], [ 64 , 273 , 288 , 287 , 224 , 231 , 260 , 285 ], [ 64 , 273 , 288 , 287 , 224 , 231 , 260 , 263 ], [ 64 , 273 , 288 , 287 , 224 , 265 , 256 , 252 , 285 ], [ 64 , 273 , 288 , 287 , 224 , 265 , 256 , 252 , 263 ], [ 64 , 273 , 288 , 287 , 224 , 265 , 256 , 260 , 285 ], [ 64 , 273 , 288 , 287 , 224 , 265 , 256 , 260 , 263 ], [ 64 , 273 , 288 , 287 , 185 , 231 , 252 , 285 ], [ 64 , 273 , 288 , 287 , 185 , 231 , 252 , 263 ], [ 64 , 273 , 288 , 287 , 185 , 231 , 260 , 285 ], [ 64 , 273 , 288 , 287 , 185 , 231 , 260 , 263 ], [ 64 , 273 , 288 , 287 , 185 , 265 , 256 , 252 , 285 ], [ 64 , 273 , 288 , 287 , 185 , 265 , 256 , 252 , 263 ], [ 64 , 273 , 288 , 287 , 185 , 265 , 256 , 260 , 285 ], [ 64 , 273 , 288 , 287 , 185 , 265 , 256 , 260 , 263 ], [ 179 , 188 , 252 ], [ 179 , 252 , 238 ], [ 179 , 252 , 181 ], [ 179 , 211 , 177 ], [ 179 , 211 , 34 ], [ 82 , 192 ], [ 82 , 140 , 144 , 88 , 187 , 156 ], [ 82 , 140 , 144 , 88 , 187 , 21 , 126 ], [ 82 , 140 , 144 , 88 , 187 , 21 , 30 ], [ 82 , 140 , 144 , 88 , 90 , 156 ], [ 82 , 140 , 144 , 88 , 90 , 30 ], [ 82 , 140 , 144 , 88 , 90 , 126 ], [ 82 , 140 , 144 , 10 , 187 ], [ 82 , 140 , 144 , 10 , 90 ], [ 82 , 109 ], [ 82 , 282 ], [ 216 , 275 , 190 ], [ 216 , 265 , 288 ], [ 216 , 265 , 296 ], [ 216 , 296 , 134 ], [ 216 , 153 ], [ 216 , 165 , 192 ], [ 216 , 208 , 237 , 248 , 6 , 190 ], [ 216 , 208 , 237 , 248 , 84 , 190 , 197 ], [ 216 , 208 , 237 , 248 , 84 , 191 ], [ 216 , 208 , 237 , 248 , 220 , 190 , 132 ], [ 216 , 208 , 237 , 248 , 220 , 190 , 197 ], [ 216 , 208 , 237 , 248 , 220 , 190 , 86 ], [ 216 , 208 , 237 , 248 , 220 , 191 , 86 ], [ 216 , 208 , 237 , 225 , 190 , 132 , 220 ], [ 216 , 208 , 237 , 225 , 190 , 197 , 84 ], [ 216 , 208 , 237 , 225 , 190 , 197 , 220 ], [ 216 , 208 , 237 , 225 , 191 , 84 ], [ 216 , 251 , 108 , 190 , 132 , 248 , 226 ], [ 216 , 251 , 108 , 190 , 132 , 248 , 220 ], [ 216 , 251 , 108 , 190 , 132 , 225 , 226 ], [ 216 , 251 , 108 , 190 , 132 , 225 , 220 ], [ 216 , 251 , 108 , 190 , 197 , 248 , 226 ], [ 216 , 251 , 108 , 190 , 197 , 248 , 220 ], [ 216 , 251 , 108 , 190 , 197 , 225 , 226 ], [ 216 , 251 , 108 , 190 , 197 , 225 , 220 ], [ 216 , 251 , 237 , 248 , 226 , 190 , 132 ], [ 216 , 251 , 237 , 248 , 226 , 190 , 86 ], [ 216 , 251 , 237 , 248 , 226 , 190 , 197 , 84 ], [ 216 , 251 , 237 , 248 , 226 , 190 , 6 ], [ 216 , 251 , 237 , 248 , 226 , 190 , 50 ], [ 216 , 251 , 237 , 248 , 226 , 191 , 84 ], [ 216 , 251 , 237 , 248 , 226 , 191 , 50 , 138 ], [ 216 , 251 , 237 , 248 , 226 , 191 , 86 ], [ 216 , 251 , 237 , 248 , 226 , 86 , 192 ], [ 216 , 251 , 237 , 248 , 220 , 190 , 132 ], [ 216 , 251 , 237 , 248 , 220 , 190 , 197 ], [ 216 , 251 , 237 , 248 , 220 , 190 , 50 ], [ 216 , 251 , 237 , 248 , 220 , 190 , 86 ], [ 216 , 251 , 237 , 248 , 220 , 191 , 138 , 50 ], [ 216 , 251 , 237 , 225 , 190 , 226 , 132 ], [ 216 , 251 , 237 , 225 , 190 , 226 , 197 , 84 ], [ 216 , 251 , 237 , 225 , 190 , 226 , 50 ], [ 216 , 251 , 237 , 225 , 190 , 220 , 132 ], [ 216 , 251 , 237 , 225 , 190 , 220 , 197 ], [ 216 , 251 , 237 , 225 , 190 , 220 , 50 ], [ 216 , 251 , 237 , 225 , 191 , 226 , 84 ], [ 216 , 251 , 237 , 225 , 191 , 226 , 50 ], [ 165 , 194 ], [ 255 , 157 , 288 , 222 , 188 , 234 , 252 , 285 ], [ 255 , 157 , 288 , 222 , 188 , 234 , 252 , 263 ], [ 255 , 157 , 288 , 222 , 188 , 234 , 260 , 285 ], [ 255 , 157 , 288 , 222 , 188 , 234 , 260 , 263 ], [ 255 , 157 , 288 , 222 , 231 , 181 , 285 , 252 , 185 ], [ 255 , 157 , 288 , 222 , 231 , 181 , 285 , 260 , 200 ], [ 255 , 157 , 288 , 222 , 231 , 181 , 285 , 260 , 185 ], [ 255 , 157 , 288 , 222 , 231 , 181 , 263 , 252 , 185 ], [ 255 , 157 , 288 , 222 , 231 , 181 , 263 , 260 , 200 ], [ 255 , 157 , 288 , 222 , 231 , 181 , 263 , 260 , 185 ], [ 255 , 157 , 288 , 222 , 231 , 234 , 252 , 285 ], [ 255 , 157 , 288 , 222 , 231 , 234 , 252 , 263 ], [ 255 , 157 , 288 , 222 , 231 , 234 , 260 , 285 ], [ 255 , 157 , 288 , 222 , 231 , 234 , 260 , 263 ], [ 255 , 157 , 288 , 115 , 234 , 231 , 252 , 285 ], [ 255 , 157 , 288 , 115 , 234 , 231 , 252 , 263 ], [ 255 , 287 , 288 , 285 , 231 , 200 , 181 , 260 , 222 ], [ 255 , 287 , 288 , 285 , 231 , 200 , 181 , 260 , 253 ], [ 255 , 287 , 288 , 285 , 231 , 110 , 173 , 253 ], [ 255 , 287 , 288 , 285 , 231 , 252 , 185 , 222 , 181 ], [ 255 , 287 , 288 , 285 , 231 , 252 , 181 , 173 , 253 ], [ 255 , 287 , 288 , 285 , 231 , 252 , 234 , 173 , 253 ], [ 255 , 287 , 288 , 285 , 231 , 252 , 234 , 222 ], [ 255 , 287 , 288 , 285 , 231 , 252 , 234 , 115 ], [ 255 , 287 , 288 , 285 , 231 , 260 , 181 , 173 , 253 ], [ 255 , 287 , 288 , 285 , 231 , 260 , 181 , 185 , 222 ], [ 255 , 287 , 288 , 285 , 231 , 260 , 234 , 173 , 253 ], [ 255 , 287 , 288 , 285 , 231 , 260 , 234 , 222 ], [ 255 , 287 , 288 , 285 , 110 , 253 , 184 , 67 ], [ 255 , 287 , 288 , 285 , 184 , 252 , 115 , 234 ], [ 255 , 287 , 288 , 285 , 184 , 252 , 185 , 181 ], [ 255 , 287 , 288 , 285 , 184 , 252 , 253 , 188 , 104 ], [ 255 , 287 , 288 , 285 , 184 , 252 , 253 , 188 , 234 ], [ 255 , 287 , 288 , 285 , 184 , 252 , 253 , 181 ], [ 255 , 287 , 288 , 285 , 184 , 252 , 253 , 67 ], [ 255 , 287 , 288 , 285 , 184 , 260 , 185 , 181 ], [ 255 , 287 , 288 , 285 , 184 , 260 , 253 , 188 , 104 ], [ 255 , 287 , 288 , 285 , 184 , 260 , 253 , 188 , 234 ], [ 255 , 287 , 288 , 285 , 184 , 260 , 253 , 181 ], [ 255 , 287 , 288 , 285 , 265 , 173 , 253 , 252 , 181 ], [ 255 , 287 , 288 , 285 , 265 , 173 , 253 , 252 , 234 ], [ 255 , 287 , 288 , 285 , 265 , 173 , 253 , 260 , 181 ], [ 255 , 287 , 288 , 285 , 265 , 173 , 253 , 260 , 234 ], [ 255 , 287 , 288 , 285 , 265 , 181 , 252 , 185 , 222 ], [ 255 , 287 , 288 , 285 , 265 , 181 , 260 , 200 , 222 ], [ 255 , 287 , 288 , 285 , 265 , 181 , 260 , 200 , 253 ], [ 255 , 287 , 288 , 285 , 265 , 181 , 260 , 185 , 222 ], [ 255 , 287 , 288 , 285 , 265 , 256 , 200 , 33 ], [ 255 , 287 , 288 , 285 , 265 , 256 , 185 , 222 , 252 ], [ 255 , 287 , 288 , 285 , 265 , 256 , 185 , 222 , 260 ], [ 255 , 287 , 288 , 285 , 265 , 256 , 185 , 33 ], [ 255 , 287 , 288 , 285 , 265 , 256 , 234 , 188 , 222 , 252 ], [ 255 , 287 , 288 , 285 , 265 , 256 , 234 , 188 , 222 , 260 ], [ 255 , 287 , 288 , 285 , 265 , 256 , 234 , 188 , 253 , 252 ], [ 255 , 287 , 288 , 285 , 265 , 256 , 234 , 188 , 253 , 260 ], [ 255 , 287 , 288 , 285 , 265 , 256 , 234 , 33 ], [ 255 , 287 , 288 , 285 , 265 , 256 , 234 , 122 , 260 , 253 ], [ 255 , 287 , 288 , 151 , 231 , 181 , 222 , 200 , 260 ], [ 255 , 287 , 288 , 151 , 231 , 181 , 222 , 252 ], [ 255 , 287 , 288 , 151 , 231 , 181 , 253 , 200 , 260 ], [ 255 , 287 , 288 , 151 , 231 , 181 , 253 , 173 , 252 ], [ 255 , 287 , 288 , 151 , 231 , 181 , 253 , 173 , 260 ], [ 255 , 287 , 288 , 151 , 231 , 234 , 252 , 173 , 253 ], [ 255 , 287 , 288 , 151 , 231 , 234 , 252 , 222 ], [ 255 , 287 , 288 , 151 , 231 , 234 , 260 , 173 , 253 ], [ 255 , 287 , 288 , 151 , 231 , 234 , 260 , 222 ], [ 255 , 287 , 288 , 151 , 265 , 222 , 181 , 200 , 260 ], [ 255 , 287 , 288 , 151 , 265 , 222 , 181 , 252 ], [ 255 , 287 , 288 , 151 , 265 , 222 , 234 , 256 , 252 ], [ 255 , 287 , 288 , 151 , 265 , 222 , 234 , 256 , 260 ], [ 255 , 287 , 288 , 151 , 265 , 253 , 252 , 181 , 173 ], [ 255 , 287 , 288 , 151 , 265 , 253 , 252 , 234 , 173 ], [ 255 , 287 , 288 , 151 , 265 , 253 , 252 , 234 , 256 ], [ 255 , 287 , 288 , 151 , 265 , 253 , 260 , 200 , 181 ], [ 255 , 287 , 288 , 151 , 265 , 253 , 260 , 173 , 181 ], [ 255 , 287 , 288 , 151 , 265 , 253 , 260 , 173 , 234 ], [ 255 , 287 , 288 , 151 , 265 , 253 , 260 , 234 , 256 ], [ 255 , 287 , 288 , 263 , 231 , 200 , 181 , 260 , 222 ], [ 255 , 287 , 288 , 263 , 231 , 200 , 181 , 260 , 253 ], [ 255 , 287 , 288 , 263 , 231 , 252 , 185 , 222 , 181 ], [ 255 , 287 , 288 , 263 , 231 , 252 , 181 , 173 , 253 ], [ 255 , 287 , 288 , 263 , 231 , 252 , 234 , 173 , 253 ], [ 255 , 287 , 288 , 263 , 231 , 252 , 234 , 222 ], [ 255 , 287 , 288 , 263 , 231 , 252 , 234 , 115 ], [ 255 , 287 , 288 , 263 , 231 , 260 , 181 , 173 , 253 ], [ 255 , 287 , 288 , 263 , 231 , 260 , 181 , 185 , 222 ], [ 255 , 287 , 288 , 263 , 231 , 260 , 234 , 173 , 253 ], [ 255 , 287 , 288 , 263 , 231 , 260 , 234 , 222 ], [ 255 , 287 , 288 , 263 , 184 , 252 , 115 , 234 ], [ 255 , 287 , 288 , 263 , 184 , 252 , 185 , 181 ], [ 255 , 287 , 288 , 263 , 184 , 252 , 253 , 188 , 104 ], [ 255 , 287 , 288 , 263 , 184 , 252 , 253 , 188 , 234 ], [ 255 , 287 , 288 , 263 , 184 , 252 , 253 , 181 ], [ 255 , 287 , 288 , 263 , 184 , 252 , 253 , 67 ], [ 255 , 287 , 288 , 263 , 184 , 260 , 185 , 181 ], [ 255 , 287 , 288 , 263 , 184 , 260 , 253 , 188 , 104 ], [ 255 , 287 , 288 , 263 , 184 , 260 , 253 , 188 , 234 ], [ 255 , 287 , 288 , 263 , 184 , 260 , 253 , 181 ], [ 255 , 287 , 288 , 263 , 265 , 173 , 253 , 252 , 181 ], [ 255 , 287 , 288 , 263 , 265 , 173 , 253 , 252 , 234 ], [ 255 , 287 , 288 , 263 , 265 , 173 , 253 , 260 , 181 ], [ 255 , 287 , 288 , 263 , 265 , 173 , 253 , 260 , 234 ], [ 255 , 287 , 288 , 263 , 265 , 181 , 222 , 252 , 185 ], [ 255 , 287 , 288 , 263 , 265 , 181 , 222 , 260 , 200 ], [ 255 , 287 , 288 , 263 , 265 , 181 , 222 , 260 , 185 ], [ 255 , 287 , 288 , 263 , 265 , 181 , 253 , 200 , 260 ], [ 255 , 287 , 288 , 263 , 265 , 256 , 200 , 33 ], [ 255 , 287 , 288 , 263 , 265 , 256 , 185 , 222 , 252 ], [ 255 , 287 , 288 , 263 , 265 , 256 , 185 , 222 , 260 ], [ 255 , 287 , 288 , 263 , 265 , 256 , 185 , 33 ], [ 255 , 287 , 288 , 263 , 265 , 256 , 234 , 188 , 222 , 252 ], [ 255 , 287 , 288 , 263 , 265 , 256 , 234 , 188 , 222 , 260 ], [ 255 , 287 , 288 , 263 , 265 , 256 , 234 , 188 , 253 , 252 ], [ 255 , 287 , 288 , 263 , 265 , 256 , 234 , 188 , 253 , 260 ], [ 255 , 287 , 288 , 263 , 265 , 256 , 234 , 33 ], [ 255 , 287 , 288 , 263 , 265 , 256 , 234 , 115 , 252 ], [ 255 , 287 , 288 , 263 , 265 , 256 , 234 , 122 , 260 , 253 ], [ 255 , 287 , 297 , 151 , 253 ], [ 255 , 194 ], [ 255 , 247 , 285 ], [ 255 , 247 , 129 , 219 , 283 ], [ 255 , 283 , 122 ], [ 255 , 251 , 256 , 263 ], [ 255 , 294 , 297 ], [ 50 , 231 , 123 ], [ 50 , 289 ], [ 132 , 242 , 295 ], [ 132 , 251 , 117 , 237 , 226 , 190 , 248 ], [ 132 , 251 , 117 , 237 , 226 , 190 , 225 ], [ 132 , 251 , 117 , 237 , 226 , 192 , 248 ], [ 132 , 251 , 117 , 237 , 226 , 192 , 225 ], [ 132 , 251 , 55 , 237 , 192 , 226 , 248 ], [ 132 , 251 , 55 , 237 , 192 , 226 , 225 ], [ 132 , 295 , 192 ], [ 132 , 208 , 237 , 117 , 190 , 248 ], [ 132 , 208 , 237 , 117 , 190 , 225 ], [ 132 , 208 , 237 , 55 , 248 ], [ 132 , 208 , 237 , 55 , 225 ], [ 59 , 193 , 291 ], [ 59 , 193 , 282 ], [ 59 , 285 ], [ 59 , 251 ], [ 35 , 0 ], [ 35 , 243 , 201 ], [ 35 , 138 ], [ 181 , 288 , 273 , 287 , 252 , 285 , 185 , 222 , 231 ], [ 181 , 288 , 273 , 287 , 252 , 285 , 185 , 222 , 265 ], [ 181 , 288 , 273 , 287 , 252 , 285 , 185 , 184 ], [ 181 , 288 , 273 , 287 , 252 , 285 , 253 , 184 ], [ 181 , 288 , 273 , 287 , 252 , 263 , 185 , 222 , 231 ], [ 181 , 288 , 273 , 287 , 252 , 263 , 185 , 222 , 265 ], [ 181 , 288 , 273 , 287 , 252 , 263 , 185 , 184 ], [ 181 , 288 , 273 , 287 , 252 , 263 , 253 , 265 ], [ 181 , 288 , 273 , 287 , 252 , 263 , 253 , 231 ], [ 181 , 288 , 273 , 287 , 252 , 263 , 253 , 184 ], [ 181 , 288 , 273 , 287 , 260 , 285 , 200 , 265 , 222 ], [ 181 , 288 , 273 , 287 , 260 , 285 , 200 , 265 , 253 ], [ 181 , 288 , 273 , 287 , 260 , 285 , 184 , 185 ], [ 181 , 288 , 273 , 287 , 260 , 285 , 184 , 253 ], [ 181 , 288 , 273 , 287 , 260 , 285 , 185 , 222 , 231 ], [ 181 , 288 , 273 , 287 , 260 , 285 , 185 , 222 , 265 ], [ 181 , 288 , 273 , 287 , 260 , 263 , 200 , 222 , 231 ], [ 181 , 288 , 273 , 287 , 260 , 263 , 200 , 222 , 265 ], [ 181 , 288 , 273 , 287 , 260 , 263 , 200 , 253 , 231 ], [ 181 , 288 , 273 , 287 , 260 , 263 , 200 , 253 , 265 ], [ 181 , 288 , 273 , 287 , 260 , 263 , 184 , 185 ], [ 181 , 288 , 273 , 287 , 260 , 263 , 184 , 253 ], [ 181 , 288 , 273 , 287 , 260 , 263 , 185 , 222 , 231 ], [ 181 , 288 , 273 , 287 , 260 , 263 , 185 , 222 , 265 ], [ 181 , 288 , 273 , 157 , 222 , 231 , 285 , 252 , 185 ], [ 181 , 288 , 273 , 157 , 222 , 231 , 285 , 260 , 200 ], [ 181 , 288 , 273 , 157 , 222 , 231 , 285 , 260 , 185 ], [ 181 , 288 , 273 , 157 , 222 , 231 , 263 , 252 , 185 ], [ 181 , 288 , 273 , 157 , 222 , 231 , 263 , 260 , 200 ], [ 181 , 288 , 273 , 157 , 222 , 231 , 263 , 260 , 185 ], [ 181 , 61 ], [ 181 , 79 , 157 ], [ 65 , 156 ], [ 226 , 23 , 237 ], [ 226 , 23 , 291 ], [ 226 , 291 , 6 ], [ 226 , 291 , 47 ], [ 226 , 287 ], [ 226 , 230 , 6 ], [ 226 , 251 , 57 , 190 , 197 ], [ 226 , 251 , 57 , 190 , 86 ], [ 226 , 251 , 57 , 191 , 86 ], [ 226 , 251 , 237 , 248 , 15 , 190 , 197 ], [ 226 , 251 , 237 , 248 , 15 , 190 , 86 ], [ 226 , 251 , 237 , 248 , 55 , 191 ], [ 226 , 251 , 237 , 248 , 55 , 6 ], [ 226 , 251 , 237 , 248 , 55 , 192 , 197 ], [ 226 , 251 , 237 , 248 , 55 , 192 , 134 ], [ 226 , 251 , 237 , 248 , 117 , 191 ], [ 226 , 251 , 237 , 248 , 117 , 60 , 134 ], [ 226 , 251 , 237 , 248 , 117 , 60 , 6 ], [ 226 , 251 , 237 , 248 , 117 , 134 , 192 ], [ 226 , 251 , 237 , 248 , 117 , 6 , 190 ], [ 226 , 251 , 237 , 248 , 60 , 197 ], [ 226 , 251 , 237 , 225 , 197 , 15 , 190 ], [ 226 , 251 , 237 , 225 , 197 , 55 , 192 ], [ 226 , 251 , 237 , 225 , 197 , 60 ], [ 226 , 251 , 237 , 225 , 134 , 60 , 117 ], [ 226 , 251 , 237 , 225 , 134 , 192 , 117 ], [ 226 , 251 , 237 , 225 , 134 , 192 , 55 ], [ 226 , 251 , 237 , 225 , 191 , 117 ], [ 226 , 251 , 237 , 225 , 191 , 55 ], [ 265 , 180 , 281 ], [ 265 , 180 , 296 ], [ 265 , 58 , 273 , 288 , 256 , 260 , 185 , 285 ], [ 265 , 58 , 273 , 288 , 256 , 260 , 185 , 263 ], [ 265 , 58 , 273 , 288 , 256 , 260 , 234 , 253 , 285 ], [ 265 , 58 , 273 , 288 , 256 , 260 , 234 , 253 , 263 ], [ 265 , 209 ], [ 265 , 287 , 288 , 173 , 234 , 253 , 224 , 252 , 285 ], [ 265 , 287 , 288 , 173 , 234 , 253 , 224 , 252 , 263 ], [ 265 , 287 , 288 , 173 , 234 , 253 , 224 , 260 , 285 ], [ 265 , 287 , 288 , 173 , 234 , 253 , 224 , 260 , 263 ], [ 265 , 287 , 288 , 256 , 285 , 33 , 224 , 200 ], [ 265 , 287 , 288 , 256 , 285 , 33 , 224 , 123 ], [ 265 , 287 , 288 , 256 , 285 , 33 , 224 , 234 ], [ 265 , 287 , 288 , 256 , 285 , 273 , 222 , 224 , 123 , 260 ], [ 265 , 287 , 288 , 256 , 285 , 273 , 222 , 224 , 234 , 188 , 252 ], [ 265 , 287 , 288 , 256 , 285 , 273 , 222 , 224 , 234 , 188 , 260 ], [ 265 , 287 , 288 , 256 , 285 , 273 , 222 , 185 , 252 ], [ 265 , 287 , 288 , 256 , 285 , 273 , 222 , 185 , 260 ], [ 265 , 287 , 288 , 256 , 285 , 273 , 253 , 224 , 252 , 234 , 188 ], [ 265 , 287 , 288 , 256 , 285 , 273 , 253 , 224 , 260 , 123 ], [ 265 , 287 , 288 , 256 , 285 , 273 , 253 , 224 , 260 , 234 , 188 ], [ 265 , 287 , 288 , 256 , 285 , 273 , 253 , 224 , 260 , 234 , 122 ], [ 265 , 287 , 288 , 256 , 285 , 273 , 253 , 76 , 123 ], [ 265 , 287 , 288 , 256 , 151 , 76 , 252 , 234 , 253 ], [ 265 , 287 , 288 , 256 , 263 , 115 , 224 , 252 , 234 ], [ 265 , 287 , 288 , 256 , 263 , 33 , 224 , 200 ], [ 265 , 287 , 288 , 256 , 263 , 33 , 224 , 123 ], [ 265 , 287 , 288 , 256 , 263 , 33 , 224 , 234 ], [ 265 , 287 , 288 , 256 , 263 , 273 , 222 , 224 , 123 , 260 ], [ 265 , 287 , 288 , 256 , 263 , 273 , 222 , 224 , 234 , 188 , 252 ], [ 265 , 287 , 288 , 256 , 263 , 273 , 222 , 224 , 234 , 188 , 260 ], [ 265 , 287 , 288 , 256 , 263 , 273 , 222 , 185 , 252 ], [ 265 , 287 , 288 , 256 , 263 , 273 , 222 , 185 , 260 ], [ 265 , 287 , 288 , 256 , 263 , 273 , 253 , 224 , 252 , 234 , 188 ], [ 265 , 287 , 288 , 256 , 263 , 273 , 253 , 224 , 260 , 123 ], [ 265 , 287 , 288 , 256 , 263 , 273 , 253 , 224 , 260 , 234 , 188 ], [ 265 , 287 , 288 , 256 , 263 , 273 , 253 , 224 , 260 , 234 , 122 ], [ 265 , 287 , 288 , 256 , 263 , 273 , 253 , 76 , 252 , 234 ], [ 265 , 287 , 288 , 256 , 263 , 273 , 253 , 76 , 123 ], [ 265 , 287 , 288 , 67 , 123 , 253 , 273 , 285 ], [ 265 , 287 , 288 , 67 , 123 , 253 , 273 , 263 ], [ 265 , 287 , 1 ], [ 265 , 287 , 232 ], [ 265 , 287 , 296 , 200 ], [ 265 , 271 , 76 ], [ 265 , 271 , 185 ], [ 265 , 271 , 296 ], [ 265 , 281 , 1 ], [ 265 , 281 , 123 ], [ 265 , 48 , 232 ], [ 265 , 48 , 288 , 260 , 173 , 285 ], [ 265 , 48 , 288 , 260 , 173 , 151 ], [ 265 , 48 , 288 , 260 , 222 , 285 , 185 , 273 ], [ 265 , 48 , 288 , 260 , 222 , 151 ], [ 235 , 177 , 283 ], [ 235 , 177 , 272 ], [ 235 , 177 , 204 ], [ 235 , 112 ], [ 235 , 291 , 204 ], [ 235 , 212 ], [ 57 , 220 , 251 , 190 , 197 ], [ 57 , 220 , 251 , 190 , 86 ], [ 57 , 220 , 251 , 191 , 86 ], [ 57 , 220 , 208 , 190 , 197 ], [ 57 , 220 , 208 , 190 , 86 ], [ 57 , 220 , 208 , 191 , 86 ], [ 57 , 245 ], [ 57 , 51 , 267 ], [ 85 , 125 , 194 , 71 , 136 , 112 ], [ 85 , 125 , 194 , 71 , 136 , 133 ], [ 85 , 174 , 182 , 194 , 71 , 136 , 112 ], [ 85 , 174 , 182 , 194 , 71 , 136 , 92 , 133 ], [ 85 , 174 , 144 ], [ 221 , 52 ], [ 221 , 176 , 275 ], [ 221 , 176 , 96 ], [ 221 , 80 ], [ 221 , 256 ], [ 221 , 103 ], [ 256 , 295 , 76 ], [ 256 , 295 , 5 ], [ 256 , 288 , 287 , 41 , 224 , 234 , 253 , 273 , 285 ], [ 256 , 288 , 287 , 41 , 224 , 234 , 253 , 273 , 263 ], [ 256 , 288 , 287 , 18 , 122 , 253 , 273 , 260 , 263 ], [ 256 , 288 , 58 , 110 , 253 , 285 , 273 ], [ 256 , 74 , 253 ], [ 173 , 287 , 288 , 231 , 253 , 224 , 110 , 285 ], [ 173 , 287 , 288 , 231 , 253 , 224 , 234 , 285 , 252 ], [ 173 , 287 , 288 , 231 , 253 , 224 , 234 , 285 , 41 ], [ 173 , 287 , 288 , 231 , 253 , 224 , 234 , 285 , 260 ], [ 173 , 287 , 288 , 231 , 253 , 224 , 234 , 263 , 252 ], [ 173 , 287 , 288 , 231 , 253 , 224 , 234 , 263 , 41 ], [ 173 , 287 , 288 , 231 , 253 , 224 , 234 , 263 , 260 ], [ 173 , 287 , 276 ], [ 173 , 48 , 231 , 288 , 260 , 285 ], [ 173 , 48 , 231 , 288 , 260 , 151 ], [ 143 , 31 , 284 ], [ 143 , 31 , 149 ], [ 143 , 31 , 293 ], [ 143 , 284 , 89 , 176 ], [ 143 , 186 ], [ 143 , 247 ], [ 8 , 169 ], [ 8 , 234 ], [ 8 , 261 ], [ 133 , 194 , 195 , 125 , 95 , 27 ], [ 133 , 194 , 195 , 125 , 95 , 116 ], [ 133 , 194 , 195 , 125 , 95 , 69 ], [ 133 , 194 , 195 , 125 , 71 , 27 , 136 ], [ 133 , 194 , 195 , 182 , 174 , 95 , 27 ], [ 133 , 194 , 195 , 182 , 174 , 95 , 49 , 116 ], [ 133 , 194 , 195 , 182 , 174 , 95 , 69 ], [ 133 , 194 , 195 , 182 , 174 , 92 , 71 , 27 , 136 ], [ 133 , 194 , 195 , 182 , 174 , 92 , 49 , 116 ], [ 133 , 194 , 195 , 182 , 174 , 92 , 49 , 136 ], [ 103 , 287 , 288 ], [ 103 , 287 , 158 ], [ 103 , 60 ], [ 25 , 298 , 289 , 297 , 259 , 240 , 189 , 270 ], [ 25 , 298 , 289 , 297 , 259 , 240 , 230 ], [ 25 , 298 , 289 , 297 , 293 , 240 , 189 , 270 ], [ 25 , 298 , 289 , 297 , 293 , 240 , 230 ], [ 25 , 298 , 289 , 297 , 293 , 243 , 270 ], [ 25 , 298 , 289 , 297 , 293 , 243 , 230 ], [ 25 , 298 , 289 , 297 , 293 , 267 , 230 ], [ 25 , 298 , 289 , 296 , 259 , 240 , 189 , 270 ], [ 25 , 298 , 289 , 296 , 259 , 240 , 230 ], [ 25 , 298 , 289 , 296 , 293 , 240 , 189 , 270 ], [ 25 , 298 , 289 , 296 , 293 , 240 , 230 ], [ 25 , 298 , 289 , 296 , 293 , 243 , 270 ], [ 25 , 298 , 289 , 296 , 293 , 243 , 230 ], [ 25 , 298 , 289 , 296 , 293 , 267 , 230 ], [ 25 , 244 ], [ 122 , 105 ], [ 122 , 112 ], [ 245 , 159 , 231 ], [ 245 , 118 , 244 ], [ 245 , 118 , 258 ], [ 245 , 298 , 275 , 121 ], [ 245 , 88 ], [ 245 , 136 ], [ 245 , 231 , 263 ], [ 84 , 239 , 191 ], [ 84 , 70 ], [ 84 , 163 ], [ 247 , 274 , 243 , 264 ], [ 247 , 74 ], [ 247 , 80 ], [ 247 , 283 , 243 ], [ 247 , 283 , 45 , 279 , 278 , 261 , 258 , 282 , 250 , 205 , 241 ], [ 247 , 283 , 45 , 279 , 278 , 261 , 258 , 282 , 250 , 205 , 246 ], [ 247 , 283 , 45 , 279 , 278 , 261 , 258 , 282 , 250 , 202 , 241 ], [ 247 , 285 , 279 , 258 ], [ 16 , 115 ], [ 16 , 128 ], [ 212 , 117 ], [ 212 , 271 , 5 ], [ 212 , 44 ], [ 185 , 240 ], [ 185 , 288 , 285 , 273 , 260 , 48 , 222 , 231 ], [ 185 , 288 , 285 , 273 , 260 , 58 , 231 ], [ 185 , 288 , 263 , 273 , 58 , 260 , 231 ], [ 185 , 119 ], [ 185 , 9 ], [ 67 , 279 , 246 ], [ 67 , 279 , 285 ], [ 67 , 279 , 263 ], [ 67 , 138 ], [ 67 , 184 , 273 , 288 , 287 , 253 , 285 , 110 ], [ 67 , 184 , 273 , 288 , 287 , 253 , 285 , 252 ], [ 67 , 184 , 273 , 288 , 287 , 253 , 285 , 123 ], [ 67 , 184 , 273 , 288 , 287 , 253 , 263 , 252 ], [ 67 , 184 , 273 , 288 , 287 , 253 , 263 , 123 ], [ 21 , 97 , 140 , 126 ], [ 21 , 97 , 140 , 30 ], [ 21 , 97 , 140 , 161 ], [ 21 , 97 , 98 , 126 ], [ 21 , 97 , 98 , 30 ], [ 21 , 97 , 98 , 161 ], [ 21 , 187 , 144 , 140 , 88 , 63 , 126 ], [ 21 , 187 , 144 , 140 , 88 , 39 , 126 ], [ 21 , 187 , 144 , 140 , 161 , 39 ], [ 21 , 187 , 144 , 98 , 126 , 63 ], [ 21 , 187 , 144 , 98 , 30 ], [ 21 , 187 , 144 , 98 , 161 ], [ 21 , 171 ], [ 21 , 267 ], [ 111 , 62 , 230 ], [ 111 , 62 , 282 ], [ 111 , 230 , 201 ], [ 111 , 282 , 193 ], [ 34 , 257 ], [ 34 , 280 , 211 ], [ 34 , 280 , 249 ], [ 18 , 213 ], [ 18 , 236 ], [ 18 , 250 ], [ 205 , 190 , 160 ], [ 205 , 140 ], [ 205 , 230 , 160 ], [ 205 , 169 ], [ 205 , 160 , 238 ], [ 109 , 41 ], [ 109 , 272 , 73 ], [ 109 , 249 ], [ 123 , 139 , 281 ], [ 123 , 231 , 224 , 273 , 288 , 287 , 260 , 285 , 222 ], [ 123 , 231 , 224 , 273 , 288 , 287 , 260 , 285 , 253 ], [ 123 , 231 , 224 , 273 , 288 , 287 , 260 , 263 , 222 ], [ 123 , 231 , 224 , 273 , 288 , 287 , 260 , 263 , 253 ], [ 123 , 184 , 260 , 273 , 288 , 287 , 253 , 285 ], [ 123 , 184 , 260 , 273 , 288 , 287 , 253 , 263 ], [ 36 , 191 ], [ 36 , 272 , 73 ], [ 36 , 289 ], [ 10 , 152 ], [ 10 , 274 ], [ 10 , 161 , 144 , 187 , 140 , 39 ], [ 10 , 161 , 144 , 187 , 98 ], [ 10 , 161 , 144 , 90 , 140 ], [ 112 , 222 ], [ 112 , 194 , 195 , 125 , 71 , 136 , 106 ], [ 112 , 194 , 195 , 125 , 71 , 136 , 27 ], [ 112 , 194 , 195 , 174 , 182 , 116 , 49 ], [ 112 , 194 , 195 , 174 , 182 , 136 , 71 , 106 ], [ 112 , 194 , 195 , 174 , 182 , 136 , 71 , 27 ], [ 112 , 148 ], [ 224 , 147 ], [ 224 , 259 ], [ 224 , 238 , 252 ], [ 224 , 146 , 41 ], [ 224 , 257 , 234 ], [ 224 , 287 , 130 , 273 ], [ 224 , 287 , 231 , 288 , 115 , 234 , 263 , 252 ], [ 224 , 287 , 231 , 288 , 273 , 41 , 234 , 253 , 285 ], [ 224 , 287 , 231 , 288 , 273 , 41 , 234 , 253 , 263 ], [ 224 , 287 , 231 , 288 , 273 , 234 , 263 , 252 , 222 ], [ 224 , 287 , 231 , 288 , 273 , 234 , 263 , 252 , 253 ], [ 224 , 287 , 231 , 288 , 273 , 234 , 263 , 260 , 222 ], [ 224 , 287 , 231 , 288 , 273 , 234 , 263 , 260 , 253 ], [ 224 , 93 ], [ 193 , 27 ], [ 193 , 282 , 147 ], [ 193 , 282 , 129 ], [ 193 , 201 , 291 ], [ 110 , 126 ], [ 110 , 288 , 273 , 253 , 285 , 58 , 231 ], [ 110 , 55 ], [ 288 , 274 , 280 , 298 , 293 ], [ 288 , 274 , 280 , 260 ], [ 288 , 298 , 104 ], [ 288 , 218 , 115 ], [ 288 , 210 , 53 ], [ 288 , 280 , 188 , 260 ], [ 288 , 293 , 151 ], [ 288 , 293 , 58 ], [ 288 , 285 , 273 , 157 , 234 , 222 , 188 , 252 ], [ 288 , 285 , 273 , 157 , 234 , 222 , 188 , 260 ], [ 288 , 285 , 273 , 157 , 234 , 222 , 231 , 252 ], [ 288 , 285 , 273 , 157 , 234 , 222 , 231 , 260 ], [ 288 , 285 , 273 , 184 , 188 , 287 , 253 , 104 , 252 ], [ 288 , 285 , 273 , 184 , 188 , 287 , 253 , 104 , 260 ], [ 288 , 285 , 273 , 184 , 188 , 287 , 253 , 234 , 252 ], [ 288 , 285 , 273 , 184 , 188 , 287 , 253 , 234 , 260 ], [ 288 , 285 , 273 , 231 , 58 , 234 , 260 , 253 ], [ 288 , 151 , 231 , 48 , 222 , 260 ], [ 288 , 263 , 157 , 273 , 234 , 222 , 188 , 252 ], [ 288 , 263 , 157 , 273 , 234 , 222 , 188 , 260 ], [ 288 , 263 , 157 , 273 , 234 , 222 , 231 , 252 ], [ 288 , 263 , 157 , 273 , 234 , 222 , 231 , 260 ], [ 288 , 263 , 231 , 58 , 234 , 253 , 260 , 273 ], [ 288 , 263 , 184 , 287 , 273 , 188 , 253 , 252 , 104 ], [ 288 , 263 , 184 , 287 , 273 , 188 , 253 , 252 , 234 ], [ 288 , 263 , 184 , 287 , 273 , 188 , 253 , 260 , 104 ], [ 288 , 263 , 184 , 287 , 273 , 188 , 253 , 260 , 234 ], [ 63 , 163 , 286 ], [ 63 , 140 , 203 ], [ 63 , 140 , 144 , 187 , 88 , 156 ], [ 63 , 140 , 144 , 90 , 88 , 156 ], [ 63 , 140 , 144 , 90 , 88 , 126 ], [ 95 , 200 ], [ 95 , 194 , 195 , 125 , 2 , 116 ], [ 95 , 194 , 195 , 125 , 46 , 106 , 69 ], [ 95 , 194 , 195 , 125 , 46 , 116 ], [ 95 , 194 , 195 , 174 , 182 , 2 , 49 , 116 ], [ 95 , 194 , 195 , 174 , 182 , 46 , 106 , 69 ], [ 95 , 194 , 195 , 174 , 182 , 46 , 49 , 116 ], [ 95 , 194 , 195 , 174 , 44 , 2 , 116 ], [ 95 , 194 , 195 , 174 , 44 , 46 , 106 , 69 ], [ 95 , 194 , 195 , 174 , 44 , 46 , 116 ], [ 95 , 209 ], [ 192 , 237 , 276 ], [ 192 , 180 , 295 ], [ 236 , 238 , 219 ], [ 236 , 289 , 223 ], [ 236 , 184 , 257 ], [ 253 , 140 ], [ 253 , 152 ], [ 253 , 292 , 260 ], [ 78 , 11 ], [ 78 , 118 ], [ 159 , 15 , 225 ], [ 159 , 163 ], [ 159 , 93 ], [ 41 , 267 ], [ 58 , 194 ], [ 58 , 98 ], [ 58 , 282 , 263 ], [ 74 , 126 ], [ 49 , 274 , 136 ], [ 66 , 276 , 237 ], [ 66 , 264 , 145 ], [ 120 , 196 ], [ 120 , 105 ], [ 120 , 139 ], [ 120 , 219 , 89 ], [ 23 , 237 , 276 ], [ 283 , 243 , 270 ], [ 283 , 209 ], [ 248 , 150 ], [ 248 , 211 , 162 ], [ 248 , 162 , 93 ], [ 248 , 208 , 237 , 117 , 190 , 6 ], [ 248 , 208 , 237 , 117 , 60 , 134 ], [ 248 , 208 , 237 , 117 , 60 , 6 ], [ 248 , 208 , 237 , 117 , 191 , 17 ], [ 248 , 208 , 237 , 6 , 55 ], [ 248 , 208 , 237 , 55 , 197 ], [ 248 , 208 , 237 , 55 , 134 ], [ 248 , 208 , 237 , 55 , 191 ], [ 248 , 208 , 237 , 220 , 60 , 197 ], [ 248 , 208 , 237 , 220 , 60 , 134 ], [ 248 , 208 , 237 , 220 , 17 , 138 , 191 ], [ 248 , 251 , 237 , 17 , 191 , 117 ], [ 248 , 251 , 237 , 17 , 191 , 138 , 220 ], [ 248 , 251 , 237 , 220 , 15 , 190 , 197 ], [ 248 , 251 , 237 , 220 , 15 , 190 , 86 ], [ 248 , 251 , 237 , 220 , 60 , 197 ], [ 248 , 251 , 237 , 220 , 60 , 134 ], [ 285 , 279 , 258 , 118 ], [ 285 , 258 , 48 ], [ 285 , 258 , 234 ], [ 2 , 264 , 116 , 182 ], [ 203 , 33 ], [ 203 , 291 , 53 ], [ 273 , 249 ], [ 273 , 17 , 117 ], [ 273 , 189 ], [ 7 , 254 , 128 ], [ 7 , 142 ], [ 232 , 251 ], [ 139 , 240 , 281 ], [ 139 , 240 , 170 ], [ 139 , 152 ], [ 93 , 87 , 261 ], [ 261 , 222 ], [ 261 , 225 ], [ 261 , 204 , 177 ], [ 158 , 225 ], [ 100 , 46 , 278 ], [ 100 , 98 ], [ 129 , 73 ], [ 197 , 61 ], [ 197 , 257 , 277 ], [ 197 , 213 ], [ 197 , 171 ], [ 197 , 277 , 108 ], [ 197 , 225 , 237 , 55 , 208 ], [ 197 , 225 , 237 , 220 , 251 , 190 , 15 ], [ 197 , 225 , 237 , 220 , 251 , 60 ], [ 197 , 225 , 237 , 220 , 208 , 60 ], [ 106 , 202 ], [ 106 , 272 , 297 ], [ 106 , 194 , 195 , 125 , 46 , 71 ], [ 106 , 194 , 195 , 174 , 182 , 46 , 71 ], [ 106 , 194 , 195 , 174 , 182 , 71 , 92 , 136 ], [ 287 , 276 , 76 ], [ 287 , 276 , 1 ], [ 287 , 276 , 296 ], [ 60 , 200 ], [ 60 , 243 ], [ 60 , 237 , 225 , 134 , 117 , 208 ], [ 60 , 237 , 225 , 134 , 220 , 251 ], [ 60 , 237 , 225 , 134 , 220 , 208 ], [ 201 , 243 , 230 ], [ 201 , 243 , 291 ], [ 201 , 222 , 263 ], [ 26 , 298 , 240 , 293 , 297 , 280 , 211 ], [ 26 , 298 , 240 , 293 , 297 , 230 ], [ 26 , 298 , 240 , 293 , 296 , 280 , 211 ], [ 26 , 298 , 240 , 293 , 296 , 230 ], [ 26 , 298 , 243 , 254 , 211 , 297 , 271 ], [ 26 , 298 , 243 , 254 , 211 , 297 , 280 , 293 ], [ 26 , 298 , 243 , 254 , 211 , 296 , 271 ], [ 26 , 298 , 243 , 254 , 211 , 296 , 280 , 293 ], [ 26 , 298 , 243 , 230 , 271 , 297 ], [ 26 , 298 , 243 , 230 , 271 , 296 ], [ 26 , 298 , 243 , 230 , 293 , 297 ], [ 26 , 298 , 243 , 230 , 293 , 296 ], [ 26 , 244 , 280 ], [ 26 , 263 ], [ 86 , 259 , 218 ], [ 86 , 259 , 249 ], [ 86 , 220 , 218 ], [ 263 , 279 , 282 ], [ 263 , 187 ], [ 263 , 160 , 231 ], [ 184 , 257 , 234 ], [ 145 , 252 ], [ 145 , 153 , 75 ], [ 17 , 187 ], [ 17 , 225 , 191 , 237 , 117 , 251 ], [ 17 , 225 , 191 , 237 , 117 , 208 ], [ 17 , 225 , 191 , 237 , 220 , 251 ], [ 17 , 225 , 191 , 237 , 220 , 208 ], [ 194 , 225 ], [ 194 , 47 ], [ 251 , 196 , 271 , 228 ], [ 147 , 4 ], [ 147 , 228 ], [ 238 , 157 , 252 ], [ 238 , 237 ], [ 177 , 24 , 219 ], [ 177 , 211 , 162 ], [ 272 , 298 , 121 , 223 , 275 ], [ 272 , 298 , 121 , 297 ], [ 272 , 298 , 284 , 297 ], [ 272 , 284 , 170 ], [ 272 , 222 ], [ 53 , 223 , 291 ], [ 40 , 297 , 250 ], [ 40 , 250 , 278 ], [ 46 , 278 , 125 ], [ 225 , 264 ], [ 225 , 208 , 237 , 191 , 55 ], [ 225 , 208 , 237 , 134 , 55 ], [ 69 , 156 ], [ 69 , 254 ], [ 87 , 294 ], [ 279 , 150 ], [ 279 , 172 , 228 ], [ 279 , 277 , 246 ], [ 279 , 96 ], [ 44 , 289 ], [ 44 , 114 ], [ 146 , 117 ], [ 146 , 99 ], [ 0 , 280 ], [ 0 , 210 , 281 ], [ 291 , 243 , 128 , 204 ], [ 239 , 242 , 286 ], [ 239 , 242 , 249 ], [ 239 , 108 ], [ 258 , 295 , 293 , 294 ], [ 258 , 48 , 294 ], [ 152 , 259 ], [ 79 , 275 , 68 ], [ 79 , 30 , 187 , 68 ], [ 79 , 30 , 187 , 98 ], [ 79 , 30 , 97 , 68 ], [ 79 , 30 , 97 , 98 ], [ 79 , 30 , 97 , 90 ], [ 79 , 171 ], [ 104 , 73 ], [ 104 , 148 , 298 ], [ 156 , 88 , 39 , 187 , 140 , 144 ], [ 156 , 202 , 45 ], [ 156 , 161 , 90 , 144 , 140 ], [ 142 , 24 ], [ 142 , 153 , 241 ], [ 142 , 294 ], [ 119 , 61 ], [ 76 , 295 , 271 ], [ 76 , 204 , 271 ], [ 76 , 204 , 234 ], [ 252 , 289 , 228 ], [ 252 , 14 ], [ 252 , 96 ], [ 252 , 92 ], [ 114 , 149 ], [ 39 , 231 ], [ 39 , 241 ], [ 39 , 294 ], [ 299 , 188 , 280 , 264 ], [ 299 , 135 , 250 ], [ 299 , 174 , 196 ], [ 299 , 298 , 254 , 130 , 280 , 289 , 284 , 274 , 270 ], [ 299 , 298 , 254 , 130 , 280 , 289 , 284 , 274 , 267 ], [ 299 , 298 , 254 , 130 , 280 , 289 , 284 , 204 , 270 ], [ 299 , 298 , 254 , 130 , 280 , 289 , 284 , 204 , 267 ], [ 299 , 298 , 254 , 130 , 280 , 289 , 211 ], [ 299 , 298 , 254 , 130 , 280 , 294 , 284 , 274 , 270 ], [ 299 , 298 , 254 , 130 , 280 , 294 , 284 , 274 , 267 ], [ 299 , 298 , 254 , 130 , 280 , 294 , 284 , 204 , 270 ], [ 299 , 298 , 254 , 130 , 280 , 294 , 284 , 204 , 267 ], [ 299 , 298 , 254 , 130 , 280 , 294 , 211 ], [ 299 , 298 , 254 , 297 , 243 , 289 , 213 , 274 , 227 , 293 , 264 ], [ 299 , 298 , 254 , 297 , 243 , 289 , 213 , 274 , 280 , 270 , 293 , 264 ], [ 299 , 298 , 254 , 297 , 243 , 289 , 213 , 274 , 280 , 270 , 284 ], [ 299 , 298 , 254 , 297 , 243 , 289 , 213 , 204 , 227 , 293 ], [ 299 , 298 , 254 , 297 , 243 , 289 , 213 , 204 , 280 , 270 , 293 ], [ 299 , 298 , 254 , 297 , 243 , 289 , 213 , 204 , 280 , 270 , 284 ], [ 299 , 298 , 254 , 297 , 243 , 289 , 286 , 274 , 227 , 264 , 271 ], [ 299 , 298 , 254 , 297 , 243 , 289 , 286 , 274 , 227 , 264 , 293 ], [ 299 , 298 , 254 , 297 , 243 , 289 , 286 , 274 , 270 , 271 , 284 ], [ 299 , 298 , 254 , 297 , 243 , 289 , 286 , 274 , 270 , 271 , 264 ], [ 299 , 298 , 254 , 297 , 243 , 289 , 286 , 274 , 270 , 280 , 284 ], [ 299 , 298 , 254 , 297 , 243 , 289 , 286 , 274 , 270 , 280 , 293 , 264 ], [ 299 , 298 , 254 , 297 , 243 , 289 , 286 , 228 , 227 , 271 , 211 ], [ 299 , 298 , 254 , 297 , 243 , 289 , 286 , 228 , 227 , 271 , 264 ], [ 299 , 298 , 254 , 297 , 243 , 289 , 286 , 228 , 227 , 293 , 211 ], [ 299 , 298 , 254 , 297 , 243 , 289 , 286 , 228 , 227 , 293 , 264 ], [ 299 , 298 , 254 , 297 , 243 , 289 , 286 , 228 , 271 , 270 , 284 ], [ 299 , 298 , 254 , 297 , 243 , 289 , 286 , 228 , 271 , 270 , 264 ], [ 299 , 298 , 254 , 297 , 243 , 289 , 286 , 228 , 280 , 270 , 284 ], [ 299 , 298 , 254 , 297 , 243 , 289 , 286 , 228 , 280 , 270 , 293 , 264 ], [ 299 , 298 , 254 , 297 , 243 , 289 , 286 , 228 , 280 , 211 , 293 ], [ 299 , 298 , 254 , 297 , 243 , 289 , 286 , 150 , 264 ], [ 299 , 298 , 254 , 297 , 243 , 289 , 204 , 271 , 227 ], [ 299 , 298 , 254 , 297 , 243 , 289 , 204 , 271 , 270 , 284 ], [ 299 , 298 , 254 , 297 , 243 , 148 , 274 , 271 , 284 ], [ 299 , 298 , 254 , 297 , 243 , 148 , 274 , 271 , 264 ], [ 299 , 298 , 254 , 297 , 243 , 148 , 274 , 293 , 264 ], [ 299 , 298 , 254 , 297 , 243 , 148 , 150 , 264 ], [ 299 , 298 , 254 , 297 , 289 , 160 , 274 , 280 , 267 , 284 ], [ 299 , 298 , 254 , 297 , 289 , 160 , 274 , 280 , 267 , 293 ], [ 299 , 298 , 254 , 297 , 289 , 160 , 150 ], [ 299 , 298 , 254 , 297 , 289 , 180 , 280 , 284 , 274 , 213 ], [ 299 , 298 , 254 , 297 , 289 , 180 , 280 , 284 , 274 , 286 ], [ 299 , 298 , 254 , 297 , 289 , 180 , 280 , 284 , 228 , 286 ], [ 299 , 298 , 254 , 297 , 289 , 180 , 280 , 284 , 204 , 213 ], [ 299 , 298 , 254 , 297 , 289 , 180 , 280 , 293 , 274 , 213 ], [ 299 , 298 , 254 , 297 , 289 , 180 , 280 , 293 , 274 , 286 ], [ 299 , 298 , 254 , 297 , 289 , 180 , 280 , 293 , 228 , 286 ], [ 299 , 298 , 254 , 297 , 289 , 180 , 280 , 293 , 204 , 213 ], [ 299 , 298 , 254 , 297 , 289 , 180 , 280 , 102 , 213 , 204 ], [ 299 , 298 , 254 , 297 , 289 , 180 , 150 , 286 ], [ 299 , 298 , 254 , 297 , 289 , 267 , 102 , 204 , 271 ], [ 299 , 298 , 254 , 297 , 289 , 267 , 102 , 204 , 280 ], [ 299 , 298 , 254 , 297 , 289 , 267 , 286 , 274 , 284 , 271 ], [ 299 , 298 , 254 , 297 , 289 , 267 , 286 , 274 , 284 , 280 ], [ 299 , 298 , 254 , 297 , 289 , 267 , 286 , 274 , 264 , 227 , 271 ], [ 299 , 298 , 254 , 297 , 289 , 267 , 286 , 274 , 264 , 227 , 293 ], [ 299 , 298 , 254 , 297 , 289 , 267 , 286 , 274 , 264 , 280 , 293 ], [ 299 , 298 , 254 , 297 , 289 , 267 , 286 , 228 , 284 , 271 ], [ 299 , 298 , 254 , 297 , 289 , 267 , 286 , 228 , 284 , 280 ], [ 299 , 298 , 254 , 297 , 289 , 267 , 286 , 228 , 264 , 227 , 271 ], [ 299 , 298 , 254 , 297 , 289 , 267 , 286 , 228 , 264 , 227 , 293 ], [ 299 , 298 , 254 , 297 , 289 , 267 , 286 , 228 , 264 , 280 , 293 ], [ 299 , 298 , 254 , 297 , 289 , 267 , 204 , 227 , 271 ], [ 299 , 298 , 254 , 297 , 289 , 267 , 204 , 227 , 293 ], [ 299 , 298 , 254 , 297 , 289 , 267 , 204 , 293 , 280 ], [ 299 , 298 , 254 , 297 , 289 , 267 , 204 , 284 , 271 ], [ 299 , 298 , 254 , 297 , 289 , 267 , 204 , 284 , 280 ], [ 299 , 298 , 254 , 297 , 294 , 284 , 274 , 271 , 270 , 286 ], [ 299 , 298 , 254 , 297 , 294 , 284 , 274 , 271 , 267 , 286 ], [ 299 , 298 , 254 , 297 , 294 , 284 , 274 , 271 , 267 , 148 ], [ 299 , 298 , 254 , 297 , 294 , 284 , 274 , 280 , 213 , 180 ], [ 299 , 298 , 254 , 297 , 294 , 284 , 274 , 280 , 213 , 270 ], [ 299 , 298 , 254 , 297 , 294 , 284 , 274 , 280 , 160 , 267 ], [ 299 , 298 , 254 , 297 , 294 , 284 , 274 , 280 , 286 , 180 ], [ 299 , 298 , 254 , 297 , 294 , 284 , 274 , 280 , 286 , 270 ], [ 299 , 298 , 254 , 297 , 294 , 284 , 274 , 280 , 286 , 267 ], [ 299 , 298 , 254 , 297 , 294 , 284 , 228 , 286 , 271 , 270 ], [ 299 , 298 , 254 , 297 , 294 , 284 , 228 , 286 , 271 , 267 ], [ 299 , 298 , 254 , 297 , 294 , 284 , 228 , 286 , 280 , 180 ], [ 299 , 298 , 254 , 297 , 294 , 284 , 228 , 286 , 280 , 270 ], [ 299 , 298 , 254 , 297 , 294 , 284 , 228 , 286 , 280 , 267 ], [ 299 , 298 , 254 , 297 , 294 , 284 , 204 , 271 , 270 ], [ 299 , 298 , 254 , 297 , 294 , 284 , 204 , 271 , 267 ], [ 299 , 298 , 254 , 297 , 294 , 284 , 204 , 280 , 213 , 180 ], [ 299 , 298 , 254 , 297 , 294 , 284 , 204 , 280 , 213 , 270 ], [ 299 , 298 , 254 , 297 , 294 , 284 , 204 , 280 , 267 ], [ 299 , 298 , 254 , 297 , 294 , 271 , 204 , 227 , 267 ], [ 299 , 298 , 254 , 297 , 294 , 271 , 286 , 227 , 274 , 267 , 264 ], [ 299 , 298 , 254 , 297 , 294 , 271 , 286 , 227 , 228 , 211 ], [ 299 , 298 , 254 , 297 , 294 , 271 , 286 , 227 , 228 , 267 , 264 ], [ 299 , 298 , 254 , 297 , 294 , 271 , 286 , 270 , 264 , 274 ], [ 299 , 298 , 254 , 297 , 294 , 271 , 286 , 270 , 264 , 228 ], [ 299 , 298 , 254 , 297 , 294 , 271 , 286 , 29 , 267 ], [ 299 , 298 , 254 , 297 , 294 , 271 , 148 , 267 , 29 ], [ 299 , 298 , 254 , 297 , 294 , 271 , 148 , 267 , 264 , 274 ], [ 299 , 298 , 254 , 297 , 294 , 150 , 180 , 286 ], [ 299 , 298 , 254 , 297 , 294 , 150 , 160 ], [ 299 , 298 , 254 , 297 , 294 , 150 , 264 , 286 ], [ 299 , 298 , 254 , 297 , 294 , 150 , 264 , 148 ], [ 299 , 298 , 254 , 297 , 294 , 293 , 227 , 213 , 204 ], [ 299 , 298 , 254 , 297 , 294 , 293 , 227 , 213 , 264 , 274 ], [ 299 , 298 , 254 , 297 , 294 , 293 , 227 , 286 , 274 , 267 , 264 ], [ 299 , 298 , 254 , 297 , 294 , 293 , 227 , 286 , 228 , 211 ], [ 299 , 298 , 254 , 297 , 294 , 293 , 227 , 286 , 228 , 267 , 264 ], [ 299 , 298 , 254 , 297 , 294 , 293 , 227 , 204 , 267 ], [ 299 , 298 , 254 , 297 , 294 , 293 , 280 , 274 , 213 , 180 ], [ 299 , 298 , 254 , 297 , 294 , 293 , 280 , 274 , 213 , 270 , 264 ], [ 299 , 298 , 254 , 297 , 294 , 293 , 280 , 274 , 160 , 267 ], [ 299 , 298 , 254 , 297 , 294 , 293 , 280 , 274 , 286 , 180 ], [ 299 , 298 , 254 , 297 , 294 , 293 , 280 , 274 , 286 , 264 , 270 ], [ 299 , 298 , 254 , 297 , 294 , 293 , 280 , 274 , 286 , 264 , 267 ], [ 299 , 298 , 254 , 297 , 294 , 293 , 280 , 228 , 286 , 180 ], [ 299 , 298 , 254 , 297 , 294 , 293 , 280 , 228 , 286 , 211 ], [ 299 , 298 , 254 , 297 , 294 , 293 , 280 , 228 , 286 , 264 , 270 ], [ 299 , 298 , 254 , 297 , 294 , 293 , 280 , 228 , 286 , 264 , 267 ], [ 299 , 298 , 254 , 297 , 294 , 293 , 280 , 204 , 213 , 180 ], [ 299 , 298 , 254 , 297 , 294 , 293 , 280 , 204 , 213 , 270 ], [ 299 , 298 , 254 , 297 , 294 , 293 , 280 , 204 , 267 ], [ 299 , 298 , 254 , 297 , 294 , 293 , 29 , 180 , 286 ], [ 299 , 298 , 254 , 297 , 294 , 293 , 29 , 267 , 286 ], [ 299 , 298 , 254 , 297 , 294 , 293 , 29 , 267 , 148 ], [ 299 , 298 , 254 , 297 , 294 , 293 , 148 , 274 , 267 , 264 ], [ 299 , 298 , 254 , 296 , 148 , 243 , 284 , 271 ], [ 299 , 298 , 254 , 296 , 148 , 243 , 264 , 271 ], [ 299 , 298 , 254 , 296 , 148 , 243 , 264 , 150 ], [ 299 , 298 , 254 , 296 , 148 , 243 , 264 , 293 ], [ 299 , 298 , 254 , 296 , 148 , 294 , 150 , 264 ], [ 299 , 298 , 254 , 296 , 148 , 294 , 267 , 271 , 284 ], [ 299 , 298 , 254 , 296 , 148 , 294 , 267 , 271 , 264 ], [ 299 , 298 , 254 , 296 , 148 , 294 , 267 , 293 , 264 ], [ 299 , 298 , 254 , 296 , 289 , 286 , 228 , 243 , 227 , 271 , 211 ], [ 299 , 298 , 254 , 296 , 289 , 286 , 228 , 243 , 227 , 271 , 264 ], [ 299 , 298 , 254 , 296 , 289 , 286 , 228 , 243 , 227 , 293 , 211 ], [ 299 , 298 , 254 , 296 , 289 , 286 , 228 , 243 , 227 , 293 , 264 ], [ 299 , 298 , 254 , 296 , 289 , 286 , 228 , 243 , 271 , 270 , 284 ], [ 299 , 298 , 254 , 296 , 289 , 286 , 228 , 243 , 271 , 270 , 264 ], [ 299 , 298 , 254 , 296 , 289 , 286 , 228 , 243 , 280 , 270 , 284 ], [ 299 , 298 , 254 , 296 , 289 , 286 , 228 , 243 , 280 , 270 , 293 , 264 ], [ 299 , 298 , 254 , 296 , 289 , 286 , 228 , 243 , 280 , 211 , 293 ], [ 299 , 298 , 254 , 296 , 289 , 286 , 228 , 180 , 280 , 293 ], [ 299 , 298 , 254 , 296 , 289 , 286 , 228 , 180 , 280 , 284 ], [ 299 , 298 , 254 , 296 , 289 , 286 , 228 , 267 , 284 , 271 ], [ 299 , 298 , 254 , 296 , 289 , 286 , 228 , 267 , 284 , 280 ], [ 299 , 298 , 254 , 296 , 289 , 286 , 228 , 267 , 264 , 227 , 271 ], [ 299 , 298 , 254 , 296 , 289 , 286 , 228 , 267 , 264 , 227 , 293 ], [ 299 , 298 , 254 , 296 , 289 , 286 , 228 , 267 , 264 , 280 , 293 ], [ 299 , 298 , 254 , 296 , 289 , 286 , 150 , 243 , 264 ], [ 299 , 298 , 254 , 296 , 289 , 286 , 150 , 180 ], [ 299 , 298 , 254 , 296 , 289 , 213 , 227 , 243 , 293 , 264 ], [ 299 , 298 , 254 , 296 , 289 , 213 , 280 , 243 , 270 , 293 , 264 ], [ 299 , 298 , 254 , 296 , 289 , 213 , 280 , 243 , 270 , 284 ], [ 299 , 298 , 254 , 296 , 289 , 213 , 280 , 180 , 102 ], [ 299 , 298 , 254 , 296 , 289 , 213 , 280 , 180 , 293 ], [ 299 , 298 , 254 , 296 , 289 , 213 , 280 , 180 , 284 ], [ 299 , 298 , 254 , 296 , 289 , 160 , 280 , 267 , 293 ], [ 299 , 298 , 254 , 296 , 289 , 160 , 280 , 267 , 284 ], [ 299 , 298 , 254 , 296 , 289 , 160 , 150 ], [ 299 , 298 , 254 , 296 , 289 , 102 , 271 , 267 ], [ 299 , 298 , 254 , 296 , 289 , 102 , 280 , 267 ], [ 299 , 298 , 254 , 296 , 294 , 213 , 227 , 293 , 264 ], [ 299 , 298 , 254 , 296 , 294 , 213 , 280 , 180 , 284 ], [ 299 , 298 , 254 , 296 , 294 , 213 , 280 , 180 , 293 ], [ 299 , 298 , 254 , 296 , 294 , 213 , 280 , 270 , 284 ], [ 299 , 298 , 254 , 296 , 294 , 213 , 280 , 270 , 293 , 264 ], [ 299 , 298 , 254 , 296 , 294 , 160 , 280 , 267 , 293 ], [ 299 , 298 , 254 , 296 , 294 , 160 , 280 , 267 , 284 ], [ 299 , 298 , 254 , 296 , 294 , 160 , 150 ], [ 299 , 298 , 254 , 296 , 294 , 286 , 228 , 227 , 271 , 211 ], [ 299 , 298 , 254 , 296 , 294 , 286 , 228 , 227 , 271 , 267 , 264 ], [ 299 , 298 , 254 , 296 , 294 , 286 , 228 , 227 , 293 , 211 ], [ 299 , 298 , 254 , 296 , 294 , 286 , 228 , 227 , 293 , 267 , 264 ], [ 299 , 298 , 254 , 296 , 294 , 286 , 228 , 271 , 270 , 284 ], [ 299 , 298 , 254 , 296 , 294 , 286 , 228 , 271 , 270 , 264 ], [ 299 , 298 , 254 , 296 , 294 , 286 , 228 , 271 , 284 , 267 ], [ 299 , 298 , 254 , 296 , 294 , 286 , 228 , 280 , 293 , 180 ], [ 299 , 298 , 254 , 296 , 294 , 286 , 228 , 280 , 293 , 211 ], [ 299 , 298 , 254 , 296 , 294 , 286 , 228 , 280 , 293 , 264 , 270 ], [ 299 , 298 , 254 , 296 , 294 , 286 , 228 , 280 , 293 , 264 , 267 ], [ 299 , 298 , 254 , 296 , 294 , 286 , 228 , 280 , 284 , 180 ], [ 299 , 298 , 254 , 296 , 294 , 286 , 228 , 280 , 284 , 270 ], [ 299 , 298 , 254 , 296 , 294 , 286 , 228 , 280 , 284 , 267 ], [ 299 , 298 , 254 , 296 , 294 , 286 , 150 , 180 ], [ 299 , 298 , 254 , 296 , 294 , 286 , 150 , 264 ], [ 299 , 298 , 295 , 274 , 130 , 280 , 284 , 242 , 289 , 240 , 270 ], [ 299 , 298 , 295 , 274 , 130 , 280 , 284 , 242 , 289 , 267 ], [ 299 , 298 , 295 , 274 , 130 , 280 , 284 , 242 , 294 , 240 , 270 ], [ 299 , 298 , 295 , 274 , 130 , 280 , 284 , 242 , 294 , 267 ], [ 299 , 298 , 295 , 274 , 52 , 289 , 286 , 280 , 270 , 242 , 259 , 284 ], [ 299 , 298 , 295 , 274 , 52 , 289 , 286 , 280 , 270 , 242 , 293 ], [ 299 , 298 , 295 , 274 , 297 , 259 , 105 , 284 , 280 , 270 , 286 ], [ 299 , 298 , 295 , 274 , 297 , 259 , 289 , 213 , 240 , 242 , 284 , 280 , 270 ], [ 299 , 298 , 295 , 274 , 297 , 259 , 289 , 213 , 240 , 242 , 284 , 230 ], [ 299 , 298 , 295 , 274 , 297 , 259 , 289 , 213 , 240 , 242 , 264 , 227 , 230 ], [ 299 , 298 , 295 , 274 , 297 , 259 , 289 , 213 , 240 , 242 , 264 , 280 , 270 ], [ 299 , 298 , 295 , 274 , 297 , 259 , 289 , 160 , 284 , 280 ], [ 299 , 298 , 295 , 274 , 297 , 259 , 289 , 160 , 284 , 230 ], [ 299 , 298 , 295 , 274 , 297 , 259 , 289 , 286 , 240 , 242 , 189 , 227 , 264 ], [ 299 , 298 , 295 , 274 , 297 , 259 , 289 , 286 , 240 , 242 , 189 , 280 , 270 , 284 ], [ 299 , 298 , 295 , 274 , 297 , 259 , 289 , 286 , 240 , 242 , 189 , 280 , 270 , 264 ], [ 299 , 298 , 295 , 274 , 297 , 259 , 289 , 286 , 240 , 242 , 230 , 227 , 264 ], [ 299 , 298 , 295 , 274 , 297 , 259 , 289 , 286 , 240 , 242 , 230 , 284 ], [ 299 , 298 , 295 , 274 , 297 , 259 , 289 , 286 , 271 , 270 , 284 ], [ 299 , 298 , 295 , 274 , 297 , 259 , 289 , 286 , 271 , 270 , 264 ], [ 299 , 298 , 295 , 274 , 297 , 259 , 289 , 286 , 271 , 230 , 227 , 264 ], [ 299 , 298 , 295 , 274 , 297 , 259 , 289 , 286 , 271 , 230 , 284 ], [ 299 , 298 , 295 , 274 , 297 , 259 , 294 , 213 , 240 , 242 , 284 , 280 , 270 ], [ 299 , 298 , 295 , 274 , 297 , 259 , 294 , 213 , 240 , 242 , 284 , 230 ], [ 299 , 298 , 295 , 274 , 297 , 259 , 294 , 213 , 240 , 242 , 264 , 227 , 230 ], [ 299 , 298 , 295 , 274 , 297 , 259 , 294 , 213 , 240 , 242 , 264 , 280 , 270 ], [ 299 , 298 , 295 , 274 , 297 , 259 , 294 , 160 , 284 , 280 ], [ 299 , 298 , 295 , 274 , 297 , 259 , 294 , 160 , 284 , 230 ], [ 299 , 298 , 295 , 274 , 297 , 259 , 294 , 286 , 240 , 242 , 189 , 227 , 264 ], [ 299 , 298 , 295 , 274 , 297 , 259 , 294 , 286 , 240 , 242 , 189 , 280 , 270 , 284 ], [ 299 , 298 , 295 , 274 , 297 , 259 , 294 , 286 , 240 , 242 , 189 , 280 , 270 , 264 ], [ 299 , 298 , 295 , 274 , 297 , 259 , 294 , 286 , 240 , 242 , 230 , 227 , 264 ], [ 299 , 298 , 295 , 274 , 297 , 259 , 294 , 286 , 240 , 242 , 230 , 284 ], [ 299 , 298 , 295 , 274 , 297 , 259 , 294 , 286 , 271 , 270 , 284 ], [ 299 , 298 , 295 , 274 , 297 , 259 , 294 , 286 , 271 , 270 , 264 ], [ 299 , 298 , 295 , 274 , 297 , 259 , 294 , 286 , 271 , 230 , 227 , 264 ], [ 299 , 298 , 295 , 274 , 297 , 259 , 294 , 286 , 271 , 230 , 284 ], [ 299 , 298 , 295 , 274 , 297 , 284 , 243 , 289 , 213 , 280 , 270 ], [ 299 , 298 , 295 , 274 , 297 , 284 , 243 , 289 , 213 , 230 ], [ 299 , 298 , 295 , 274 , 297 , 284 , 243 , 289 , 286 , 271 , 270 ], [ 299 , 298 , 295 , 274 , 297 , 284 , 243 , 289 , 286 , 271 , 230 ], [ 299 , 298 , 295 , 274 , 297 , 284 , 243 , 289 , 286 , 280 , 270 ], [ 299 , 298 , 295 , 274 , 297 , 284 , 180 , 280 , 213 , 289 ], [ 299 , 298 , 295 , 274 , 297 , 284 , 180 , 280 , 213 , 294 ], [ 299 , 298 , 295 , 274 , 297 , 284 , 180 , 280 , 286 , 289 ], [ 299 , 298 , 295 , 274 , 297 , 284 , 180 , 280 , 286 , 294 ], [ 299 , 298 , 295 , 274 , 297 , 284 , 5 , 271 , 267 , 294 ], [ 299 , 298 , 295 , 274 , 297 , 284 , 267 , 160 , 280 , 289 ], [ 299 , 298 , 295 , 274 , 297 , 284 , 267 , 160 , 280 , 294 ], [ 299 , 298 , 295 , 274 , 297 , 284 , 267 , 160 , 230 , 289 ], [ 299 , 298 , 295 , 274 , 297 , 284 , 267 , 160 , 230 , 294 ], [ 299 , 298 , 295 , 274 , 297 , 284 , 267 , 286 , 105 , 280 ], [ 299 , 298 , 295 , 274 , 297 , 284 , 267 , 286 , 289 , 242 , 280 ], [ 299 , 298 , 295 , 274 , 297 , 284 , 267 , 286 , 289 , 242 , 230 ], [ 299 , 298 , 295 , 274 , 297 , 284 , 267 , 286 , 289 , 271 , 230 ], [ 299 , 298 , 295 , 274 , 297 , 284 , 267 , 286 , 294 , 242 , 280 ], [ 299 , 298 , 295 , 274 , 297 , 284 , 267 , 286 , 294 , 242 , 230 ], [ 299 , 298 , 295 , 274 , 297 , 284 , 267 , 286 , 294 , 271 , 230 ], [ 299 , 298 , 295 , 274 , 297 , 271 , 286 , 264 , 289 , 243 , 196 , 270 ], [ 299 , 298 , 295 , 274 , 297 , 271 , 286 , 264 , 289 , 243 , 227 , 230 ], [ 299 , 298 , 295 , 274 , 297 , 271 , 286 , 264 , 289 , 267 , 227 , 230 ], [ 299 , 298 , 295 , 274 , 297 , 271 , 286 , 264 , 294 , 196 , 270 ], [ 299 , 298 , 295 , 274 , 297 , 271 , 286 , 264 , 294 , 267 , 227 , 230 ], [ 299 , 298 , 295 , 274 , 297 , 293 , 213 , 289 , 180 , 280 ], [ 299 , 298 , 295 , 274 , 297 , 293 , 213 , 289 , 264 , 240 , 242 , 227 , 230 ], [ 299 , 298 , 295 , 274 , 297 , 293 , 213 , 289 , 264 , 240 , 242 , 280 , 270 ], [ 299 , 298 , 295 , 274 , 297 , 293 , 213 , 289 , 264 , 243 , 227 , 230 ], [ 299 , 298 , 295 , 274 , 297 , 293 , 213 , 289 , 264 , 243 , 280 , 270 ], [ 299 , 298 , 295 , 274 , 297 , 293 , 213 , 294 , 240 , 242 , 264 , 227 , 230 ], [ 299 , 298 , 295 , 274 , 297 , 293 , 213 , 294 , 240 , 242 , 264 , 280 , 270 ], [ 299 , 298 , 295 , 274 , 297 , 293 , 213 , 294 , 180 , 280 ], [ 299 , 298 , 295 , 274 , 297 , 293 , 5 , 267 , 294 ], [ 299 , 298 , 295 , 274 , 297 , 293 , 160 , 267 , 280 , 289 ], [ 299 , 298 , 295 , 274 , 297 , 293 , 160 , 267 , 280 , 294 ], [ 299 , 298 , 295 , 274 , 297 , 293 , 160 , 267 , 230 , 289 ], [ 299 , 298 , 295 , 274 , 297 , 293 , 160 , 267 , 230 , 294 ], [ 299 , 298 , 295 , 274 , 297 , 293 , 286 , 105 , 280 , 270 ], [ 299 , 298 , 295 , 274 , 297 , 293 , 286 , 105 , 280 , 267 ], [ 299 , 298 , 295 , 274 , 297 , 293 , 286 , 289 , 180 , 280 ], [ 299 , 298 , 295 , 274 , 297 , 293 , 286 , 289 , 264 , 242 , 240 , 227 , 189 ], [ 299 , 298 , 295 , 274 , 297 , 293 , 286 , 289 , 264 , 242 , 240 , 227 , 230 ], [ 299 , 298 , 295 , 274 , 297 , 293 , 286 , 289 , 264 , 242 , 240 , 280 , 270 , 196 ], [ 299 , 298 , 295 , 274 , 297 , 293 , 286 , 289 , 264 , 242 , 240 , 280 , 270 , 189 ], [ 299 , 298 , 295 , 274 , 297 , 293 , 286 , 289 , 264 , 242 , 267 , 227 , 230 ], [ 299 , 298 , 295 , 274 , 297 , 293 , 286 , 289 , 264 , 242 , 267 , 280 ], [ 299 , 298 , 295 , 274 , 297 , 293 , 286 , 289 , 264 , 243 , 227 , 230 ], [ 299 , 298 , 295 , 274 , 297 , 293 , 286 , 289 , 264 , 243 , 280 , 196 , 270 ], [ 299 , 298 , 295 , 274 , 297 , 293 , 286 , 294 , 242 , 264 , 240 , 227 , 189 ], [ 299 , 298 , 295 , 274 , 297 , 293 , 286 , 294 , 242 , 264 , 240 , 227 , 230 ], [ 299 , 298 , 295 , 274 , 297 , 293 , 286 , 294 , 242 , 264 , 240 , 280 , 270 , 196 ], [ 299 , 298 , 295 , 274 , 297 , 293 , 286 , 294 , 242 , 264 , 240 , 280 , 270 , 189 ], [ 299 , 298 , 295 , 274 , 297 , 293 , 286 , 294 , 242 , 264 , 267 , 227 , 230 ], [ 299 , 298 , 295 , 274 , 297 , 293 , 286 , 294 , 242 , 264 , 267 , 280 ], [ 299 , 298 , 295 , 274 , 297 , 293 , 286 , 294 , 180 , 280 ], [ 299 , 298 , 295 , 296 , 102 , 289 , 271 , 196 ], [ 299 , 298 , 295 , 296 , 102 , 289 , 271 , 267 , 230 ], [ 299 , 298 , 295 , 296 , 102 , 289 , 280 , 196 ], [ 299 , 298 , 295 , 296 , 102 , 289 , 280 , 213 , 180 ], [ 299 , 298 , 295 , 296 , 102 , 289 , 280 , 267 ], [ 299 , 298 , 295 , 296 , 102 , 289 , 230 , 213 ], [ 299 , 298 , 295 , 296 , 286 , 105 , 280 , 293 , 270 ], [ 299 , 298 , 295 , 296 , 286 , 105 , 280 , 293 , 267 ], [ 299 , 298 , 295 , 296 , 286 , 105 , 280 , 284 , 259 , 270 ], [ 299 , 298 , 295 , 296 , 286 , 105 , 280 , 284 , 267 ], [ 299 , 298 , 295 , 296 , 286 , 105 , 163 , 259 , 270 ], [ 299 , 298 , 295 , 296 , 286 , 105 , 163 , 293 , 270 ], [ 299 , 298 , 295 , 296 , 286 , 105 , 163 , 293 , 267 ], [ 299 , 298 , 295 , 296 , 286 , 163 , 228 , 243 , 271 , 270 ], [ 299 , 298 , 295 , 296 , 286 , 163 , 228 , 243 , 271 , 211 ], [ 299 , 298 , 295 , 296 , 286 , 163 , 228 , 243 , 293 , 270 ], [ 299 , 298 , 295 , 296 , 286 , 163 , 228 , 243 , 293 , 211 ], [ 299 , 298 , 295 , 296 , 286 , 163 , 228 , 294 , 242 , 259 , 270 ], [ 299 , 298 , 295 , 296 , 286 , 163 , 228 , 294 , 242 , 293 , 211 ], [ 299 , 298 , 295 , 296 , 286 , 163 , 228 , 294 , 242 , 293 , 270 ], [ 299 , 298 , 295 , 296 , 286 , 163 , 228 , 294 , 242 , 293 , 267 ], [ 299 , 298 , 295 , 296 , 286 , 163 , 228 , 294 , 271 , 259 , 270 ], [ 299 , 298 , 295 , 296 , 286 , 163 , 228 , 294 , 271 , 211 ], [ 299 , 298 , 295 , 296 , 286 , 163 , 228 , 294 , 271 , 267 ], [ 299 , 298 , 295 , 296 , 286 , 289 , 259 , 271 , 228 , 270 , 284 ], [ 299 , 298 , 295 , 296 , 286 , 289 , 259 , 271 , 228 , 270 , 264 ], [ 299 , 298 , 295 , 296 , 286 , 289 , 259 , 271 , 228 , 230 , 227 , 264 ], [ 299 , 298 , 295 , 296 , 286 , 289 , 259 , 271 , 228 , 230 , 284 ], [ 299 , 298 , 295 , 296 , 286 , 289 , 259 , 242 , 240 , 189 , 227 , 264 ], [ 299 , 298 , 295 , 296 , 286 , 289 , 259 , 242 , 240 , 189 , 280 , 270 , 284 ], [ 299 , 298 , 295 , 296 , 286 , 289 , 259 , 242 , 240 , 189 , 280 , 270 , 264 ], [ 299 , 298 , 295 , 296 , 286 , 289 , 259 , 242 , 240 , 228 , 284 , 280 , 270 ], [ 299 , 298 , 295 , 296 , 286 , 289 , 259 , 242 , 240 , 228 , 284 , 230 ], [ 299 , 298 , 295 , 296 , 286 , 289 , 259 , 242 , 240 , 228 , 264 , 227 , 230 ], [ 299 , 298 , 295 , 296 , 286 , 289 , 259 , 242 , 240 , 228 , 264 , 280 , 270 ], [ 299 , 298 , 295 , 296 , 286 , 289 , 259 , 242 , 52 , 280 , 270 , 284 ], [ 299 , 298 , 295 , 296 , 286 , 289 , 259 , 4 , 264 ], [ 299 , 298 , 295 , 296 , 286 , 289 , 150 , 180 ], [ 299 , 298 , 295 , 296 , 286 , 289 , 150 , 264 , 243 ], [ 299 , 298 , 295 , 296 , 286 , 289 , 150 , 264 , 4 ], [ 299 , 298 , 295 , 296 , 286 , 289 , 150 , 264 , 189 ], [ 299 , 298 , 295 , 296 , 286 , 289 , 284 , 243 , 228 , 271 , 270 ], [ 299 , 298 , 295 , 296 , 286 , 289 , 284 , 243 , 228 , 271 , 230 ], [ 299 , 298 , 295 , 296 , 286 , 289 , 284 , 243 , 228 , 280 , 270 ], [ 299 , 298 , 295 , 296 , 286 , 289 , 284 , 180 , 280 , 228 ], [ 299 , 298 , 295 , 296 , 286 , 289 , 284 , 267 , 228 , 242 , 280 ], [ 299 , 298 , 295 , 296 , 286 , 289 , 284 , 267 , 228 , 242 , 230 ], [ 299 , 298 , 295 , 296 , 286 , 289 , 284 , 267 , 228 , 271 , 230 ], [ 299 , 298 , 295 , 296 , 286 , 289 , 271 , 228 , 243 , 211 , 196 ], [ 299 , 298 , 295 , 296 , 286 , 289 , 271 , 228 , 243 , 211 , 227 ], [ 299 , 298 , 295 , 296 , 286 , 289 , 271 , 228 , 243 , 264 , 196 , 270 ], [ 299 , 298 , 295 , 296 , 286 , 289 , 271 , 228 , 243 , 264 , 227 , 230 ], [ 299 , 298 , 295 , 296 , 286 , 289 , 271 , 228 , 267 , 227 , 230 , 264 ], [ 299 , 298 , 295 , 296 , 286 , 289 , 293 , 227 , 189 , 240 , 242 , 264 ], [ 299 , 298 , 295 , 296 , 286 , 289 , 293 , 227 , 228 , 230 , 264 , 242 , 240 ], [ 299 , 298 , 295 , 296 , 286 , 289 , 293 , 227 , 228 , 230 , 264 , 242 , 267 ], [ 299 , 298 , 295 , 296 , 286 , 289 , 293 , 227 , 228 , 230 , 264 , 243 ], [ 299 , 298 , 295 , 296 , 286 , 289 , 293 , 227 , 228 , 211 , 240 , 242 ], [ 299 , 298 , 295 , 296 , 286 , 289 , 293 , 227 , 228 , 211 , 243 ], [ 299 , 298 , 295 , 296 , 286 , 289 , 293 , 4 , 264 ], [ 299 , 298 , 295 , 296 , 286 , 289 , 293 , 280 , 52 , 242 , 270 ], [ 299 , 298 , 295 , 296 , 286 , 289 , 293 , 280 , 228 , 196 , 240 , 242 , 270 , 264 ], [ 299 , 298 , 295 , 296 , 286 , 289 , 293 , 280 , 228 , 196 , 240 , 242 , 211 ], [ 299 , 298 , 295 , 296 , 286 , 289 , 293 , 280 , 228 , 196 , 243 , 270 , 264 ], [ 299 , 298 , 295 , 296 , 286 , 289 , 293 , 280 , 228 , 196 , 243 , 211 ], [ 299 , 298 , 295 , 296 , 286 , 289 , 293 , 280 , 228 , 180 ], [ 299 , 298 , 295 , 296 , 286 , 289 , 293 , 280 , 228 , 267 , 242 , 264 ], [ 299 , 298 , 295 , 296 , 286 , 289 , 293 , 280 , 189 , 240 , 242 , 270 , 264 ], [ 299 , 298 , 295 , 296 , 286 , 294 , 284 , 189 , 259 , 240 , 242 , 280 , 270 ], [ 299 , 298 , 295 , 296 , 286 , 294 , 284 , 228 , 259 , 240 , 242 , 280 , 270 ], [ 299 , 298 , 295 , 296 , 286 , 294 , 284 , 228 , 259 , 240 , 242 , 230 ], [ 299 , 298 , 295 , 296 , 286 , 294 , 284 , 228 , 259 , 271 , 270 ], [ 299 , 298 , 295 , 296 , 286 , 294 , 284 , 228 , 259 , 271 , 230 ], [ 299 , 298 , 295 , 296 , 286 , 294 , 284 , 228 , 180 , 280 ], [ 299 , 298 , 295 , 296 , 286 , 294 , 284 , 228 , 267 , 242 , 280 ], [ 299 , 298 , 295 , 296 , 286 , 294 , 284 , 228 , 267 , 242 , 230 ], [ 299 , 298 , 295 , 296 , 286 , 294 , 284 , 228 , 267 , 271 , 230 ], [ 299 , 298 , 295 , 296 , 286 , 294 , 180 , 280 , 293 , 228 ], [ 299 , 298 , 295 , 296 , 286 , 294 , 180 , 150 ], [ 299 , 298 , 295 , 296 , 286 , 294 , 211 , 228 , 240 , 293 , 242 , 196 , 280 ], [ 299 , 298 , 295 , 296 , 286 , 294 , 211 , 228 , 240 , 293 , 242 , 227 ], [ 299 , 298 , 295 , 296 , 286 , 294 , 211 , 228 , 271 , 196 ], [ 299 , 298 , 295 , 296 , 286 , 294 , 211 , 228 , 271 , 227 ], [ 299 , 298 , 295 , 296 , 286 , 294 , 264 , 4 , 259 ], [ 299 , 298 , 295 , 296 , 286 , 294 , 264 , 4 , 150 ], [ 299 , 298 , 295 , 296 , 286 , 294 , 264 , 4 , 293 ], [ 299 , 298 , 295 , 296 , 286 , 294 , 264 , 228 , 242 , 240 , 259 , 227 , 230 ], [ 299 , 298 , 295 , 296 , 286 , 294 , 264 , 228 , 242 , 240 , 259 , 280 , 270 ], [ 299 , 298 , 295 , 296 , 286 , 294 , 264 , 228 , 242 , 240 , 293 , 227 , 230 ], [ 299 , 298 , 295 , 296 , 286 , 294 , 264 , 228 , 242 , 240 , 293 , 280 , 196 , 270 ], [ 299 , 298 , 295 , 296 , 286 , 294 , 264 , 228 , 242 , 267 , 293 , 227 , 230 ], [ 299 , 298 , 295 , 296 , 286 , 294 , 264 , 228 , 242 , 267 , 293 , 280 ], [ 299 , 298 , 295 , 296 , 286 , 294 , 264 , 228 , 271 , 196 , 270 ], [ 299 , 298 , 295 , 296 , 286 , 294 , 264 , 228 , 271 , 259 , 227 , 230 ], [ 299 , 298 , 295 , 296 , 286 , 294 , 264 , 228 , 271 , 259 , 270 ], [ 299 , 298 , 295 , 296 , 286 , 294 , 264 , 228 , 271 , 267 , 227 , 230 ], [ 299 , 298 , 295 , 296 , 286 , 294 , 264 , 150 , 189 ], [ 299 , 298 , 295 , 296 , 286 , 294 , 264 , 189 , 240 , 242 , 259 , 227 ], [ 299 , 298 , 295 , 296 , 286 , 294 , 264 , 189 , 240 , 242 , 259 , 280 , 270 ], [ 299 , 298 , 295 , 296 , 286 , 294 , 264 , 189 , 240 , 242 , 293 , 227 ], [ 299 , 298 , 295 , 296 , 286 , 294 , 264 , 189 , 240 , 242 , 293 , 280 , 270 ], [ 299 , 298 , 295 , 296 , 11 , 240 , 228 , 270 , 294 , 196 , 293 ], [ 299 , 298 , 295 , 296 , 11 , 240 , 228 , 270 , 294 , 284 ], [ 299 , 298 , 295 , 296 , 213 , 289 , 240 , 242 , 259 , 284 , 280 , 270 ], [ 299 , 298 , 295 , 296 , 213 , 289 , 240 , 242 , 259 , 284 , 230 ], [ 299 , 298 , 295 , 296 , 213 , 289 , 240 , 242 , 259 , 264 , 227 , 230 ], [ 299 , 298 , 295 , 296 , 213 , 289 , 240 , 242 , 259 , 264 , 280 , 270 ], [ 299 , 298 , 295 , 296 , 213 , 289 , 240 , 242 , 293 , 264 , 227 , 230 ], [ 299 , 298 , 295 , 296 , 213 , 289 , 240 , 242 , 293 , 264 , 280 , 270 ], [ 299 , 298 , 295 , 296 , 213 , 289 , 243 , 293 , 264 , 227 , 230 ], [ 299 , 298 , 295 , 296 , 213 , 289 , 243 , 293 , 264 , 280 , 270 ], [ 299 , 298 , 295 , 296 , 213 , 289 , 243 , 284 , 280 , 270 ], [ 299 , 298 , 295 , 296 , 213 , 289 , 243 , 284 , 230 ], [ 299 , 298 , 295 , 296 , 213 , 289 , 180 , 280 , 293 ], [ 299 , 298 , 295 , 296 , 213 , 289 , 180 , 280 , 284 ], [ 299 , 298 , 295 , 296 , 213 , 294 , 240 , 242 , 259 , 284 , 280 , 270 ], [ 299 , 298 , 295 , 296 , 213 , 294 , 240 , 242 , 259 , 284 , 230 ], [ 299 , 298 , 295 , 296 , 213 , 294 , 240 , 242 , 259 , 264 , 227 , 230 ], [ 299 , 298 , 295 , 296 , 213 , 294 , 240 , 242 , 259 , 264 , 280 , 270 ], [ 299 , 298 , 295 , 296 , 213 , 294 , 240 , 242 , 293 , 264 , 227 , 230 ], [ 299 , 298 , 295 , 296 , 213 , 294 , 240 , 242 , 293 , 264 , 280 , 270 ], [ 299 , 298 , 295 , 296 , 213 , 294 , 180 , 280 , 293 ], [ 299 , 298 , 295 , 296 , 213 , 294 , 180 , 280 , 284 ], [ 299 , 298 , 295 , 296 , 160 , 289 , 280 , 259 , 284 ], [ 299 , 298 , 295 , 296 , 160 , 289 , 280 , 267 , 293 ], [ 299 , 298 , 295 , 296 , 160 , 289 , 280 , 267 , 284 ], [ 299 , 298 , 295 , 296 , 160 , 289 , 150 ], [ 299 , 298 , 295 , 296 , 160 , 289 , 230 , 259 , 284 ], [ 299 , 298 , 295 , 296 , 160 , 289 , 230 , 267 , 293 ], [ 299 , 298 , 295 , 296 , 160 , 289 , 230 , 267 , 284 ], [ 299 , 298 , 295 , 296 , 160 , 294 , 280 , 259 , 284 ], [ 299 , 298 , 295 , 296 , 160 , 294 , 280 , 267 , 293 ], [ 299 , 298 , 295 , 296 , 160 , 294 , 280 , 267 , 284 ], [ 299 , 298 , 295 , 296 , 160 , 294 , 150 ], [ 299 , 298 , 295 , 296 , 160 , 294 , 230 , 259 , 284 ], [ 299 , 298 , 295 , 296 , 160 , 294 , 230 , 267 , 293 ], [ 299 , 298 , 295 , 296 , 160 , 294 , 230 , 267 , 284 ], [ 299 , 298 , 295 , 297 , 102 , 289 , 271 , 196 ], [ 299 , 298 , 295 , 297 , 102 , 289 , 271 , 267 , 230 ], [ 299 , 298 , 295 , 297 , 102 , 289 , 280 , 196 ], [ 299 , 298 , 295 , 297 , 102 , 289 , 280 , 213 , 180 ], [ 299 , 298 , 295 , 297 , 102 , 289 , 280 , 267 ], [ 299 , 298 , 295 , 297 , 102 , 289 , 230 , 213 ], [ 299 , 298 , 295 , 297 , 150 , 289 , 160 ], [ 299 , 298 , 295 , 297 , 150 , 289 , 286 , 180 ], [ 299 , 298 , 295 , 297 , 150 , 289 , 286 , 264 , 243 ], [ 299 , 298 , 295 , 297 , 150 , 289 , 286 , 264 , 189 ], [ 299 , 298 , 295 , 297 , 150 , 294 , 160 ], [ 299 , 298 , 295 , 297 , 150 , 294 , 286 , 180 ], [ 299 , 298 , 295 , 297 , 150 , 294 , 286 , 264 , 189 ], [ 299 , 298 , 295 , 297 , 211 , 5 , 294 , 271 ], [ 299 , 298 , 295 , 297 , 211 , 5 , 294 , 293 ], [ 299 , 298 , 295 , 297 , 211 , 286 , 228 , 271 , 243 , 163 ], [ 299 , 298 , 295 , 297 , 211 , 286 , 228 , 271 , 243 , 289 , 196 ], [ 299 , 298 , 295 , 297 , 211 , 286 , 228 , 271 , 243 , 289 , 227 ], [ 299 , 298 , 295 , 297 , 211 , 286 , 228 , 271 , 294 , 196 ], [ 299 , 298 , 295 , 297 , 211 , 286 , 228 , 271 , 294 , 227 ], [ 299 , 298 , 295 , 297 , 211 , 286 , 228 , 271 , 294 , 163 ], [ 299 , 298 , 295 , 297 , 211 , 286 , 228 , 293 , 242 , 240 , 289 , 196 , 280 ], [ 299 , 298 , 295 , 297 , 211 , 286 , 228 , 293 , 242 , 240 , 289 , 227 ], [ 299 , 298 , 295 , 297 , 211 , 286 , 228 , 293 , 242 , 240 , 294 , 196 , 280 ], [ 299 , 298 , 295 , 297 , 211 , 286 , 228 , 293 , 242 , 240 , 294 , 227 ], [ 299 , 298 , 295 , 297 , 211 , 286 , 228 , 293 , 242 , 163 , 294 ], [ 299 , 298 , 295 , 297 , 211 , 286 , 228 , 293 , 243 , 163 ], [ 299 , 298 , 295 , 297 , 211 , 286 , 228 , 293 , 243 , 289 , 196 , 280 ], [ 299 , 298 , 295 , 297 , 211 , 286 , 228 , 293 , 243 , 289 , 227 ], [ 299 , 298 , 295 , 297 , 228 , 286 , 243 , 163 , 270 , 271 ], [ 299 , 298 , 295 , 297 , 228 , 286 , 243 , 163 , 270 , 293 ], [ 299 , 298 , 295 , 297 , 228 , 286 , 243 , 289 , 284 , 271 , 270 ], [ 299 , 298 , 295 , 297 , 228 , 286 , 243 , 289 , 284 , 271 , 230 ], [ 299 , 298 , 295 , 297 , 228 , 286 , 243 , 289 , 284 , 280 , 270 ], [ 299 , 298 , 295 , 297 , 228 , 286 , 243 , 289 , 264 , 271 , 196 , 270 ], [ 299 , 298 , 295 , 297 , 228 , 286 , 243 , 289 , 264 , 271 , 227 , 230 ], [ 299 , 298 , 295 , 297 , 228 , 286 , 243 , 289 , 264 , 293 , 227 , 230 ], [ 299 , 298 , 295 , 297 , 228 , 286 , 243 , 289 , 264 , 293 , 280 , 196 , 270 ], [ 299 , 298 , 295 , 297 , 228 , 286 , 289 , 271 , 259 , 270 , 284 ], [ 299 , 298 , 295 , 297 , 228 , 286 , 289 , 271 , 259 , 270 , 264 ], [ 299 , 298 , 295 , 297 , 228 , 286 , 289 , 271 , 259 , 230 , 227 , 264 ], [ 299 , 298 , 295 , 297 , 228 , 286 , 289 , 271 , 259 , 230 , 284 ], [ 299 , 298 , 295 , 297 , 228 , 286 , 289 , 271 , 267 , 230 , 227 , 264 ], [ 299 , 298 , 295 , 297 , 228 , 286 , 289 , 271 , 267 , 230 , 284 ], [ 299 , 298 , 295 , 297 , 228 , 286 , 289 , 242 , 240 , 284 , 259 , 280 , 270 ], [ 299 , 298 , 295 , 297 , 228 , 286 , 289 , 242 , 240 , 284 , 259 , 230 ], [ 299 , 298 , 295 , 297 , 228 , 286 , 289 , 242 , 240 , 264 , 259 , 227 , 230 ], [ 299 , 298 , 295 , 297 , 228 , 286 , 289 , 242 , 240 , 264 , 259 , 280 , 270 ], [ 299 , 298 , 295 , 297 , 228 , 286 , 289 , 242 , 240 , 264 , 293 , 227 , 230 ], [ 299 , 298 , 295 , 297 , 228 , 286 , 289 , 242 , 240 , 264 , 293 , 280 , 196 , 270 ], [ 299 , 298 , 295 , 297 , 228 , 286 , 289 , 242 , 267 , 293 , 264 , 227 , 230 ], [ 299 , 298 , 295 , 297 , 228 , 286 , 289 , 242 , 267 , 293 , 264 , 280 ], [ 299 , 298 , 295 , 297 , 228 , 286 , 289 , 242 , 267 , 284 , 280 ], [ 299 , 298 , 295 , 297 , 228 , 286 , 289 , 242 , 267 , 284 , 230 ], [ 299 , 298 , 295 , 297 , 228 , 286 , 289 , 180 , 280 , 293 ], [ 299 , 298 , 295 , 297 , 228 , 286 , 289 , 180 , 280 , 284 ], [ 299 , 298 , 295 , 297 , 228 , 286 , 294 , 271 , 196 , 270 , 264 ], [ 299 , 298 , 295 , 297 , 228 , 286 , 294 , 271 , 259 , 227 , 230 , 264 ], [ 299 , 298 , 295 , 297 , 228 , 286 , 294 , 271 , 259 , 270 , 163 ], [ 299 , 298 , 295 , 297 , 228 , 286 , 294 , 271 , 259 , 270 , 284 ], [ 299 , 298 , 295 , 297 , 228 , 286 , 294 , 271 , 259 , 270 , 264 ], [ 299 , 298 , 295 , 297 , 228 , 286 , 294 , 271 , 259 , 230 , 284 ], [ 299 , 298 , 295 , 297 , 228 , 286 , 294 , 271 , 267 , 163 ], [ 299 , 298 , 295 , 297 , 228 , 286 , 294 , 271 , 267 , 230 , 227 , 264 ], [ 299 , 298 , 295 , 297 , 228 , 286 , 294 , 271 , 267 , 230 , 284 ], [ 299 , 298 , 295 , 297 , 228 , 286 , 294 , 242 , 240 , 284 , 259 , 280 , 270 ], [ 299 , 298 , 295 , 297 , 228 , 286 , 294 , 242 , 240 , 284 , 259 , 230 ], [ 299 , 298 , 295 , 297 , 228 , 286 , 294 , 242 , 240 , 264 , 259 , 227 , 230 ], [ 299 , 298 , 295 , 297 , 228 , 286 , 294 , 242 , 240 , 264 , 259 , 280 , 270 ], [ 299 , 298 , 295 , 297 , 228 , 286 , 294 , 242 , 240 , 264 , 293 , 227 , 230 ], [ 299 , 298 , 295 , 297 , 228 , 286 , 294 , 242 , 240 , 264 , 293 , 280 , 196 , 270 ], [ 299 , 298 , 295 , 297 , 228 , 286 , 294 , 242 , 163 , 270 , 259 ], [ 299 , 298 , 295 , 297 , 228 , 286 , 294 , 242 , 163 , 270 , 293 ], [ 299 , 298 , 295 , 297 , 228 , 286 , 294 , 242 , 163 , 267 , 293 ], [ 299 , 298 , 295 , 297 , 228 , 286 , 294 , 242 , 267 , 293 , 264 , 227 , 230 ], [ 299 , 298 , 295 , 297 , 228 , 286 , 294 , 242 , 267 , 293 , 264 , 280 ], [ 299 , 298 , 295 , 297 , 228 , 286 , 294 , 242 , 267 , 284 , 280 ], [ 299 , 298 , 295 , 297 , 228 , 286 , 294 , 242 , 267 , 284 , 230 ], [ 299 , 298 , 295 , 297 , 228 , 286 , 294 , 180 , 280 , 293 ], [ 299 , 298 , 295 , 297 , 228 , 286 , 294 , 180 , 280 , 284 ], [ 299 , 298 , 295 , 297 , 163 , 286 , 105 , 270 , 259 ], [ 299 , 298 , 295 , 297 , 163 , 286 , 105 , 270 , 293 ], [ 299 , 298 , 295 , 297 , 163 , 286 , 105 , 267 , 293 ], [ 299 , 298 , 295 , 130 , 211 , 240 , 242 , 280 , 289 ], [ 299 , 298 , 295 , 130 , 211 , 240 , 242 , 280 , 294 ], [ 299 , 298 , 80 ], [ 299 , 298 , 204 , 130 , 280 , 284 , 242 , 289 , 240 , 270 ], [ 299 , 298 , 204 , 130 , 280 , 284 , 242 , 289 , 267 ], [ 299 , 298 , 204 , 130 , 280 , 284 , 242 , 294 , 240 , 270 ], [ 299 , 298 , 204 , 130 , 280 , 284 , 242 , 294 , 267 ], [ 299 , 298 , 204 , 297 , 105 , 280 , 293 , 270 ], [ 299 , 298 , 204 , 297 , 105 , 280 , 293 , 267 ], [ 299 , 298 , 204 , 297 , 105 , 280 , 284 , 259 , 270 ], [ 299 , 298 , 204 , 297 , 105 , 280 , 284 , 267 ], [ 299 , 298 , 204 , 297 , 289 , 240 , 213 , 242 , 259 , 227 ], [ 299 , 298 , 204 , 297 , 289 , 240 , 213 , 242 , 259 , 280 , 270 , 284 ], [ 299 , 298 , 204 , 297 , 289 , 240 , 213 , 242 , 293 , 227 ], [ 299 , 298 , 204 , 297 , 289 , 240 , 213 , 242 , 293 , 280 , 270 ], [ 299 , 298 , 204 , 297 , 289 , 259 , 271 , 227 ], [ 299 , 298 , 204 , 297 , 289 , 259 , 271 , 270 , 284 ], [ 299 , 298 , 204 , 297 , 289 , 242 , 267 , 284 , 280 ], [ 299 , 298 , 204 , 297 , 289 , 242 , 267 , 293 , 227 ], [ 299 , 298 , 204 , 297 , 289 , 242 , 267 , 293 , 280 ], [ 299 , 298 , 204 , 297 , 294 , 240 , 213 , 242 , 259 , 227 ], [ 299 , 298 , 204 , 297 , 294 , 240 , 213 , 242 , 259 , 280 , 270 , 284 ], [ 299 , 298 , 204 , 297 , 294 , 240 , 213 , 242 , 293 , 227 ], [ 299 , 298 , 204 , 297 , 294 , 240 , 213 , 242 , 293 , 280 , 270 ], [ 299 , 298 , 204 , 297 , 294 , 259 , 271 , 227 ], [ 299 , 298 , 204 , 297 , 294 , 259 , 271 , 270 , 284 ], [ 299 , 298 , 204 , 297 , 294 , 242 , 267 , 284 , 280 ], [ 299 , 298 , 204 , 297 , 294 , 242 , 267 , 293 , 227 ], [ 299 , 298 , 204 , 297 , 294 , 242 , 267 , 293 , 280 ], [ 299 , 298 , 148 , 196 , 264 , 243 , 274 , 297 , 271 ], [ 299 , 298 , 148 , 196 , 264 , 243 , 274 , 297 , 293 ], [ 299 , 298 , 148 , 196 , 264 , 243 , 296 , 271 ], [ 299 , 298 , 148 , 196 , 264 , 243 , 296 , 293 ], [ 299 , 298 , 148 , 196 , 264 , 294 , 274 , 297 , 271 ], [ 299 , 298 , 148 , 196 , 264 , 294 , 274 , 297 , 293 ], [ 299 , 298 , 148 , 196 , 264 , 294 , 296 , 271 ], [ 299 , 298 , 148 , 196 , 264 , 294 , 296 , 293 ], [ 299 , 298 , 148 , 259 , 271 , 294 , 274 , 297 , 284 ], [ 299 , 298 , 148 , 259 , 271 , 294 , 274 , 297 , 264 ], [ 299 , 298 , 148 , 259 , 271 , 294 , 296 , 284 ], [ 299 , 298 , 148 , 259 , 271 , 294 , 296 , 264 ], [ 299 , 170 , 284 , 240 ], [ 299 , 170 , 284 , 267 ], [ 299 , 210 ], [ 299 , 31 , 286 , 297 , 274 , 172 , 270 , 289 , 271 , 284 ], [ 299 , 31 , 286 , 297 , 274 , 172 , 270 , 289 , 293 ], [ 299 , 31 , 286 , 297 , 274 , 172 , 270 , 294 , 271 , 284 ], [ 299 , 31 , 286 , 297 , 274 , 172 , 270 , 294 , 293 ], [ 299 , 31 , 286 , 297 , 150 , 289 ], [ 299 , 31 , 286 , 297 , 150 , 294 ], [ 299 , 83 , 227 , 271 ], [ 299 , 237 , 55 ], [ 299 , 237 , 220 ], [ 299 , 220 , 254 ], [ 299 , 220 , 250 ], [ 299 , 172 , 295 , 274 , 289 , 130 , 242 , 280 , 270 , 284 ], [ 299 , 172 , 295 , 274 , 289 , 286 , 297 , 242 , 280 , 270 , 293 ], [ 299 , 172 , 295 , 274 , 289 , 286 , 297 , 242 , 280 , 270 , 284 ], [ 299 , 172 , 295 , 274 , 289 , 286 , 297 , 242 , 230 , 284 ], [ 299 , 172 , 295 , 274 , 289 , 286 , 297 , 242 , 230 , 293 ], [ 299 , 172 , 295 , 274 , 289 , 286 , 297 , 243 , 293 , 280 , 270 ], [ 299 , 172 , 295 , 274 , 289 , 286 , 297 , 243 , 293 , 230 ], [ 299 , 172 , 295 , 274 , 289 , 286 , 297 , 243 , 284 , 271 , 270 ], [ 299 , 172 , 295 , 274 , 289 , 286 , 297 , 243 , 284 , 271 , 230 ], [ 299 , 172 , 295 , 274 , 289 , 286 , 297 , 243 , 284 , 280 , 270 ], [ 299 , 172 , 295 , 274 , 294 , 130 , 242 , 280 , 270 , 284 ], [ 299 , 172 , 295 , 274 , 294 , 286 , 297 , 293 , 242 , 280 , 270 ], [ 299 , 172 , 295 , 274 , 294 , 286 , 297 , 293 , 242 , 230 ], [ 299 , 172 , 295 , 274 , 294 , 286 , 297 , 284 , 270 , 242 , 280 ], [ 299 , 172 , 295 , 274 , 294 , 286 , 297 , 284 , 270 , 271 ], [ 299 , 172 , 295 , 274 , 294 , 286 , 297 , 284 , 230 , 242 ], [ 299 , 172 , 295 , 274 , 294 , 286 , 297 , 284 , 230 , 271 ], [ 299 , 172 , 295 , 228 , 286 , 297 , 289 , 242 , 280 , 270 , 293 ], [ 299 , 172 , 295 , 228 , 286 , 297 , 289 , 242 , 280 , 270 , 284 ], [ 299 , 172 , 295 , 228 , 286 , 297 , 289 , 242 , 230 , 284 ], [ 299 , 172 , 295 , 228 , 286 , 297 , 289 , 242 , 230 , 293 ], [ 299 , 172 , 295 , 228 , 286 , 297 , 289 , 243 , 293 , 280 , 270 ], [ 299 , 172 , 295 , 228 , 286 , 297 , 289 , 243 , 293 , 230 ], [ 299 , 172 , 295 , 228 , 286 , 297 , 289 , 243 , 284 , 271 , 270 ], [ 299 , 172 , 295 , 228 , 286 , 297 , 289 , 243 , 284 , 271 , 230 ], [ 299 , 172 , 295 , 228 , 286 , 297 , 289 , 243 , 284 , 280 , 270 ], [ 299 , 172 , 295 , 228 , 286 , 297 , 294 , 293 , 242 , 280 , 270 ], [ 299 , 172 , 295 , 228 , 286 , 297 , 294 , 293 , 242 , 230 ], [ 299 , 172 , 295 , 228 , 286 , 297 , 294 , 284 , 270 , 242 , 280 ], [ 299 , 172 , 295 , 228 , 286 , 297 , 294 , 284 , 270 , 271 ], [ 299 , 172 , 295 , 228 , 286 , 297 , 294 , 284 , 230 , 242 ], [ 299 , 172 , 295 , 228 , 286 , 297 , 294 , 284 , 230 , 271 ], [ 299 , 172 , 29 , 286 , 297 , 294 , 271 ], [ 299 , 172 , 29 , 286 , 297 , 294 , 293 ], [ 299 , 51 , 250 , 297 ], [ 299 , 51 , 295 , 286 , 271 , 294 , 297 , 227 , 211 ], [ 299 , 51 , 295 , 286 , 271 , 294 , 297 , 227 , 267 , 230 , 264 ], [ 299 , 51 , 295 , 286 , 271 , 294 , 297 , 284 , 267 , 230 ], [ 299 , 51 , 295 , 286 , 271 , 294 , 296 , 227 , 211 ], [ 299 , 51 , 295 , 286 , 271 , 294 , 296 , 227 , 267 , 230 , 264 ], [ 299 , 51 , 295 , 286 , 271 , 294 , 296 , 284 , 267 , 230 ], [ 299 , 24 , 240 , 280 , 259 , 213 , 284 , 297 ], [ 299 , 24 , 240 , 280 , 259 , 213 , 284 , 296 ], [ 299 , 24 , 240 , 280 , 259 , 213 , 264 , 297 ], [ 299 , 24 , 240 , 280 , 259 , 213 , 264 , 296 ], [ 299 , 24 , 240 , 280 , 259 , 286 , 284 , 297 ], [ 299 , 24 , 240 , 280 , 259 , 286 , 284 , 296 ], [ 299 , 24 , 240 , 280 , 259 , 286 , 264 , 297 ], [ 299 , 24 , 240 , 280 , 259 , 286 , 264 , 296 ], [ 299 , 24 , 240 , 280 , 293 , 264 , 213 , 297 ], [ 299 , 24 , 240 , 280 , 293 , 264 , 213 , 296 ], [ 299 , 24 , 240 , 280 , 293 , 264 , 286 , 297 ], [ 299 , 24 , 240 , 280 , 293 , 264 , 286 , 296 ], [ 299 , 128 , 254 , 204 , 297 , 271 , 270 , 243 ], [ 299 , 128 , 254 , 204 , 297 , 271 , 270 , 294 ], [ 299 , 128 , 254 , 204 , 297 , 271 , 267 , 294 ], [ 299 , 128 , 254 , 204 , 297 , 280 , 293 , 270 , 243 ], [ 299 , 128 , 254 , 204 , 297 , 280 , 293 , 270 , 294 ], [ 299 , 128 , 254 , 204 , 297 , 280 , 293 , 267 , 294 ], [ 299 , 128 , 254 , 264 , 286 , 274 , 297 , 271 , 270 , 243 ], [ 299 , 128 , 254 , 264 , 286 , 274 , 297 , 271 , 270 , 294 ], [ 299 , 128 , 254 , 264 , 286 , 274 , 297 , 271 , 267 , 294 ], [ 299 , 128 , 254 , 264 , 286 , 274 , 297 , 280 , 293 , 270 , 243 ], [ 299 , 128 , 254 , 264 , 286 , 274 , 297 , 280 , 293 , 270 , 294 ], [ 299 , 128 , 254 , 264 , 286 , 274 , 297 , 280 , 293 , 267 , 294 ], [ 299 , 128 , 254 , 264 , 286 , 296 , 271 , 270 , 243 ], [ 299 , 128 , 254 , 264 , 286 , 296 , 271 , 270 , 294 ], [ 299 , 128 , 254 , 264 , 286 , 296 , 271 , 267 , 294 ], [ 299 , 128 , 254 , 264 , 286 , 296 , 280 , 293 , 270 , 243 ], [ 299 , 128 , 254 , 264 , 286 , 296 , 280 , 293 , 270 , 294 ], [ 299 , 128 , 254 , 264 , 286 , 296 , 280 , 293 , 267 , 294 ], [ 299 , 128 , 295 , 264 , 286 , 274 , 297 , 271 , 270 , 243 ], [ 299 , 128 , 295 , 264 , 286 , 274 , 297 , 271 , 270 , 294 ], [ 299 , 128 , 295 , 264 , 286 , 274 , 297 , 271 , 267 , 294 ], [ 299 , 128 , 295 , 264 , 286 , 274 , 297 , 280 , 293 , 270 , 243 ], [ 299 , 128 , 295 , 264 , 286 , 274 , 297 , 280 , 293 , 270 , 294 ], [ 299 , 128 , 295 , 264 , 286 , 274 , 297 , 280 , 293 , 267 , 294 ], [ 299 , 128 , 295 , 264 , 286 , 296 , 271 , 270 , 243 ], [ 299 , 128 , 295 , 264 , 286 , 296 , 271 , 270 , 294 ], [ 299 , 128 , 295 , 264 , 286 , 296 , 271 , 267 , 294 ], [ 299 , 128 , 295 , 264 , 286 , 296 , 280 , 293 , 270 , 243 ], [ 299 , 128 , 295 , 264 , 286 , 296 , 280 , 293 , 270 , 294 ], [ 299 , 128 , 295 , 264 , 286 , 296 , 280 , 293 , 267 , 294 ], [ 200 , 286 , 260 ], [ 200 , 286 , 296 ], [ 202 , 241 , 11 ], [ 202 , 280 , 249 ], [ 202 , 210 ], [ 3 , 275 , 68 ], [ 3 , 275 , 292 ], [ 117 , 208 , 227 ], [ 62 , 297 , 230 ], [ 244 , 237 , 276 ], [ 244 , 280 , 286 ], [ 244 , 286 , 292 , 229 ], [ 136 , 259 , 274 ], [ 190 , 5 ], [ 190 , 148 ], [ 99 , 115 ], [ 99 , 151 ], [ 14 , 128 ], [ 14 , 246 ], [ 209 , 242 ], [ 27 , 277 ], [ 27 , 295 ], [ 218 , 267 ], [ 161 , 15 ], [ 161 , 298 , 227 , 286 ], [ 187 , 30 , 68 , 140 , 144 ], [ 187 , 121 , 292 ], [ 187 , 295 ], [ 281 , 180 , 277 ], [ 281 , 176 , 275 ], [ 281 , 176 , 210 ], [ 281 , 195 ], [ 98 , 228 , 97 ], [ 282 , 271 ], [ 260 , 254 , 274 , 286 , 227 ], [ 260 , 254 , 274 , 286 , 280 ], [ 260 , 227 , 292 , 286 ], [ 43 , 102 ], [ 223 , 70 ], [ 223 , 298 , 289 , 150 ], [ 223 , 172 , 289 ], [ 88 , 150 ], [ 88 , 250 ], [ 97 , 75 , 295 ], [ 97 , 228 , 295 ], [ 97 , 140 , 126 , 90 ], [ 97 , 140 , 30 , 68 ], [ 97 , 140 , 30 , 90 ], [ 151 , 229 ], [ 151 , 293 , 297 ], [ 140 , 52 ], [ 169 , 163 , 270 ], [ 208 , 149 , 220 ], [ 126 , 234 ], [ 144 , 280 ], [ 144 , 229 ], [ 229 , 105 , 270 , 286 , 296 ], [ 115 , 254 ], [ 277 , 254 , 180 ], [ 277 , 254 , 148 ], [ 96 , 29 ], [ 195 , 31 ], [ 182 , 264 , 298 ], [ 182 , 246 ], [ 153 , 213 , 75 ], [ 249 , 259 , 289 , 242 , 280 ], [ 249 , 259 , 246 ], [ 249 , 289 , 102 , 280 ], [ 234 , 71 , 174 ], [ 246 , 259 , 270 ], [ 246 , 293 , 270 ], [ 30 , 189 , 294 ], [ 75 , 298 , 295 , 259 , 274 , 297 , 289 , 227 , 213 ], [ 75 , 298 , 295 , 259 , 274 , 297 , 289 , 227 , 271 ], [ 75 , 298 , 295 , 259 , 274 , 297 , 289 , 284 , 213 , 280 ], [ 75 , 298 , 295 , 259 , 274 , 297 , 289 , 284 , 271 ], [ 75 , 298 , 295 , 259 , 274 , 297 , 294 , 227 , 213 ], [ 75 , 298 , 295 , 259 , 274 , 297 , 294 , 227 , 271 ], [ 75 , 298 , 295 , 259 , 274 , 297 , 294 , 284 , 213 , 280 ], [ 75 , 298 , 295 , 259 , 274 , 297 , 294 , 284 , 271 ], [ 75 , 298 , 295 , 259 , 296 , 289 , 227 , 213 ], [ 75 , 298 , 295 , 259 , 296 , 289 , 227 , 271 ], [ 75 , 298 , 295 , 259 , 296 , 289 , 284 , 213 , 280 ], [ 75 , 298 , 295 , 259 , 296 , 289 , 284 , 271 ], [ 75 , 298 , 295 , 259 , 296 , 294 , 227 , 213 ], [ 75 , 298 , 295 , 259 , 296 , 294 , 227 , 271 ], [ 75 , 298 , 295 , 259 , 296 , 294 , 284 , 213 , 280 ], [ 75 , 298 , 295 , 259 , 296 , 294 , 284 , 271 ], [ 75 , 298 , 295 , 267 , 274 , 297 , 289 , 271 , 227 ], [ 75 , 298 , 295 , 267 , 274 , 297 , 289 , 271 , 284 ], [ 75 , 298 , 295 , 267 , 274 , 297 , 289 , 280 , 284 ], [ 75 , 298 , 295 , 267 , 274 , 297 , 294 , 271 , 227 ], [ 75 , 298 , 295 , 267 , 274 , 297 , 294 , 271 , 284 ], [ 75 , 298 , 295 , 267 , 274 , 297 , 294 , 280 , 284 ], [ 75 , 298 , 295 , 267 , 296 , 289 , 271 , 227 ], [ 75 , 298 , 295 , 267 , 296 , 289 , 271 , 284 ], [ 75 , 298 , 295 , 267 , 296 , 289 , 280 , 284 ], [ 75 , 298 , 295 , 267 , 296 , 294 , 271 , 227 ], [ 75 , 298 , 295 , 267 , 296 , 294 , 271 , 284 ], [ 75 , 298 , 295 , 267 , 296 , 294 , 280 , 284 ], [ 116 , 254 , 29 ], [ 116 , 254 , 264 ], [ 116 , 29 , 172 ], [ 241 , 11 , 270 ], [ 241 , 170 ], [ 219 , 52 ], [ 292 , 227 , 83 , 271 ], [ 292 , 227 , 286 , 271 ], [ 292 , 227 , 286 , 293 ], [ 275 , 71 ], [ 275 , 135 , 257 ], [ 134 , 240 , 289 , 274 ], [ 134 , 240 , 289 , 296 ], [ 257 , 267 , 170 ], [ 186 , 264 , 270 ], [ 276 , 228 , 296 ], [ 71 , 230 ], [ 90 , 293 , 242 ]] +K = L +for i in L: + for j in L: + if i[0] == j[0]: + for k in j: + if k not in i: + i.append(k) + i.sort() +L.sort() +K = list(L for L,_ in itertools.groupby(L)) +print(K) \ No newline at end of file diff --git a/PatternRecognition/src/Compact_Clique.py b/PatternRecognition/src/Compact_Clique.py new file mode 100644 index 0000000000000000000000000000000000000000..ce1cf42c6cb743a36a2e2534eefaec09c9244c40 --- /dev/null +++ b/PatternRecognition/src/Compact_Clique.py @@ -0,0 +1,41 @@ +import numpy as np + + +def Filewrite2(E,fo): + for i in E: + if len(i) > 5: + stri = "nc " + print("i ",i) + stri = stri + str(i[0]) + ", " + for j in i: + if j != i[0]: + stri = stri + str(j) + " " + strt = stri[-3:] + if ',' not in strt: + fo.write(stri + "\n") + +#L = np.load("graph/test_Star.npy", allow_pickle=True) +C = np.load("graph/test_Cliques.npy", allow_pickle=True) + +#print(L) +print(C) +T = [] +k = [] +for i in C: + if i not in k: + x = i + m = i + print("hay x",x) + for j in C: + if j != i and j[0] == i[0]: + x = x+j + [m.append(obj) for obj in x if obj not in m] + k.append(j) + print("X",m) + T.append(m) +print(C) +print(T,len(T)) +print(k) +fo = open("example1.model", "a") +Filewrite2(T,fo) +fo.close() diff --git a/PatternRecognition/src/Edge.py b/PatternRecognition/src/Edge.py new file mode 100644 index 0000000000000000000000000000000000000000..5b2b081698ece653fddcf3cac37c4311905b5e64 --- /dev/null +++ b/PatternRecognition/src/Edge.py @@ -0,0 +1,73 @@ + +import networkx as nx +import matplotlib.pyplot as plt +import numpy as np +import time + +def Recuperation(G): + #recuperation de tous les noeuds du graph avec une taille > x. + T = [] + for i in G.nodes(): + if len(G.edges(i)) >= 2: + T.append(i) + Suppression(T,G) +def Suppression(T,G): + #retirer les liens avec les noeuds non recupérer + E = nx.edges(G) + E = np.asarray(E) + M = [] + for i in range(len(E)): + if E[i,0] not in T or E[i,1] not in T: + M.append(i) + + size = len(E) + E = [v for i,v in enumerate(E) if i not in M] + E = np.array(E) + new_size = len(E) + if size != new_size: + O = nx.Graph() + O.add_edges_from(E, nodetype=int) + Recuperation(O) + else: + O = nx.Graph() + O.add_edges_from(E, nodetype=int) + +def Filewrite(E): + stri = "fc " + fo = open("example1.model", "a") + R = [] + for i in E: + x = True + for j in E: + if set(i).issubset(set(j)) and i != j: + x = False + if x: + R.append(set(i)) + strt = ' '.join(map(str, i)) + fo.write(stri + strt + "\n") + fo.close() + print("The file contains: ") + fo = open("example1.model", "r") + dummy = fo.read() + print(dummy) + fo.close() + import os + print(os.path.abspath("example1.model")) + +fh = open("C:/Users/LENOVO/Desktop/karate.edgelist", "rb") +G = nx.read_edgelist(fh,nodetype=int) +x = G.number_of_nodes() +print(nx.number_of_nodes(G)) +y = x % 100 +if y != 0: + for i in range(100-y): + G.add_node(x+i) +start = time.time() +x = list(nx.find_cliques(G)) +Filewrite(x) +print(time.time()-start) +start = time.time() +Recuperation(G) +Filewrite(x) +print(time.time()-start) + diff --git a/PatternRecognition/src/EdgeConert_Star.py b/PatternRecognition/src/EdgeConert_Star.py new file mode 100644 index 0000000000000000000000000000000000000000..130418b6c4920d9e2226456eb3657f5845a7f551 --- /dev/null +++ b/PatternRecognition/src/EdgeConert_Star.py @@ -0,0 +1,175 @@ +import networkx as nx +import numpy as np +import time +from ANN_CLIQUES import PatternFinding +from train import Training +from compact import Compact +import matplotlib.pyplot as plt +fh = open("C:/Users/LENOVO/Desktop/karate.edgelist", "rb") +G = nx.read_edgelist(fh,nodetype=int) +#nx.draw(G, node_size = 900) +#plt.show() +W = G.number_of_nodes() +x = list(set(list(G.nodes))) +size = x[len(x)-1] +print("====== Start stars ======") +y = (size+1) % 100 +if y != 0: + for i in range(100-y): + G.add_node(W+i) + #print("n",x+i) +total_size = G.number_of_nodes() +#print(total_size) +outU = np.zeros(size + 1 + 100 -y) +U = list(sorted(list(G.nodes))) +start = time.time() +for i in U: + if len(list(G.neighbors(i))) > 1: + outU[i] = 1 + outU[list(G.neighbors(i))] = 1 +#print(outU) +PatternFinding(G.edges,outU) +Training() +#print(type(G.edges)) +#print(G.nodes()) + +#print(U) +#print("haylik",U[1]) +#A = nx.adjacency_matrix(G, nodelist=sorted(G.nodes()), weight='weight') +#A.setdiag(A.diagonal() * 2) +#A = A.todense() +#print(A[0]) +#B = copy.deepcopy(A) +#print("ici",list(G.neighbors(91)),len(list(G.neighbors(91))),len(list(G.neighbors(1)))) +#fo = open("example1.model", "w") +R = [] +for i in range(W): + #stri = "st " + s = [] + x = True + v = list(G.neighbors(U[i])) + if (len(v) < 1): + #B[i] = 0 + continue + else: + #print(U[i]) + #print(U[i]) + s.append(U[i]) + #fo.write(stri + str(i+1) + ", ") + #stri = stri + str(U[i]) + ", " + #print("voisinnnnnns",U[i],list(G.neighbors(U[i]))) + m = sorted(list(G.neighbors(U[i]))) + #m = list(U[i]) + m + s = s + m + #stri = stri + str(m) + " " + #for j in m: + # if j not in output: + # output.append(j) + #stri = stri + str(j) + " " + + """ + for j in range(W): + #print("ici",len(list(G.neighbors(j+1)))) + if G.number_of_edges(U[i], U[j]) >= 1: + #sortie[j] = 1 + #fo.write(str(j+1) + " ") + s.append(U[j]) + stri = stri + str(U[j]) + " " + if U[j] not in output: + output.append(U[j]) + """ + #strt = stri[-3:] + if len(s) > 2:#',' not in strt: + #for j in R: + # if set(s).issubset(set(j)): + # print("babaha", set(s), set(j)) + # x = False + #if x: + R.append(s) + # print("sss",stri) + #fo.write(stri + "\n") + #else: + # print("letoile", U[i]) +np.save('graph/test_Star.npy', R) +#fo.close() +Compact(R) +print("====== End of step succesful ======") +print("Time",time.time()-start) +#print(len(output),output) +#nx.draw(G,cmap=plt.get_cmap('viridis'),with_labels=True) +#plt.show() +""" ################################################### + +M = [] +data=[] +x = time.time() +print("debut bendada") +for a,b in G.edges(): + data.append([a,b]) +y = time.time() +print("fin bendada",y-x,len(list(G.nodes))) +data = np.asarray(data) +data = np.expand_dims(data,axis=0) +np.save('graph/test_Bip.npy',data) + +print(data) + +Z = nx.Graph() + +for i in range(len(sortie)): + #print("i",i) + for j in range(len(sortie)): + if sortie[i] == 1 and sortie[j] == 1 and i != j: + Z.add_edge(str(i),str(j)) +#print("Z",Z.edges) +sz = [] +T = nx.edges(Z) +T = np.asarray(T) +#print(M,len(M)) +#print(output) +######################################## +fh = open("C:/Users/LENOVO/Desktop/karate.edgelist", "rb") + +print("hay len ya t7a7na", len(T)) +E = T +for i in range(len(E)): + #print("ca rentre") + x = E[i, 0] + c = E[i, 1] + #print("x",len(np.argwhere(T == x))) + #print("c",len(np.argwhere(T == c))) + + #print("hnnnnnnnaaaaaaaayyyyyyaaaaaaaa",x,np.argwhere(T == x),len(np.argwhere(T == x))) + if (len(np.argwhere(T == x)) < 2) or (len(np.argwhere(T == c)) < 2): + #print("c'est ce lien qui va etre supp " , c , x) + w = -1 + t = np.argwhere(T == (x, c)) + d = np.argwhere(T == (c, x)) + t = np.concatenate((t, d)) + for r in range(len(t)): + for k in range(len(t)): + if (t[r, 0] == t[k, 0]) and r != k and w != t[r, 0]: + w = t[r, 0] + break + P = np.delete(T, w, axis=0) + T = P +################################################# +print("====== End of second step ======") +end = time.time() +print("Time",end-start) + +sz.append(T) +#print("uuuuuuuuuuuuuuuu uuuuuuuuuuuuuu",sz[0]) +#print(np.count_nonzero(A[0] == 1)) +#print(np.count_nonzero(sortie == 1)) +#print(np.count_nonzero(B == 1)) +np.save('graph/test.npy', data) +np.save('graph/sam.npy', sz[0]) +#print(sz[0],len(sz[0])) +#O = nx.Graph() +#O.add_edges_from(sz[0],nodetype=int) +#nx.draw(O,cmap=plt.get_cmap('viridis'),with_labels=True) +#plt.show() +np.save('graph/labfin.npy',sortie) + +""" \ No newline at end of file diff --git a/PatternRecognition/src/EdgeConvert.py b/PatternRecognition/src/EdgeConvert.py new file mode 100644 index 0000000000000000000000000000000000000000..4c970bfb06c3bac89dc504ec54cdb2356b10b489 --- /dev/null +++ b/PatternRecognition/src/EdgeConvert.py @@ -0,0 +1,100 @@ +import networkx as nx +import matplotlib.pyplot as plt +import numpy as np +import copy +from networkx.algorithms import clique +import time +from ANN_CLIQUES import PatternFinding +from train import Training + +def Filewrite(E): + stri = "fc " + fo = open("example1.model", "a") + R = [] + for i in E: + #x = True + #for j in E: + # if set(i).issubset(set(j)) and i != j: + # x = False + #if x: + #R.append(set(i)) + strt = ' '.join(map(str, i)) + fo.write(stri + strt + "\n") + fo.close() + import os + #print(os.path.abspath("example1.model")) +#print("lancement") +fh = open("C:/Users/LENOVO/Desktop/karate.edgelist", "rb") +start = time.time() +G = nx.read_edgelist(fh) +x = G.number_of_nodes() +#print(x) +print("====== Start Cliques ======") +y = x % 100 +if y != 0: + for i in range(100-y): + G.add_node(x+i) + +total_size = G.number_of_nodes() +cliques = list(clique.find_cliques(G)) +flat_list = [sublist for sublist in cliques if len(sublist) > 5] +cliques = np.asarray(([y for x in flat_list for y in x if len(x) >= 5])) + +#print("cliques",flat_list,len(flat_list)) +fo = open("example1.model", "w") +#fo.write(str(flat_list)) +#fo.close() + +node_cliques = np.unique(cliques) +nodes_cliques = node_cliques.astype(int) + +val_map = {} +key = [] +i = 0 +values = [val_map.get(node, 0.25) for node in G.nodes()] + +""" pour les quasi-cliques +key=np.zeros(G.number_of_nodes()) +for clique in cliques: + for node in clique: + val_map[node]=1.0 + key[int(node)] = 1 + i = i+1 +key[nodes_cliques]=1 +""" +output = np.zeros(G.number_of_nodes()) +output[nodes_cliques] = 1 +#print(output) +end = time.time() +print("====== End of first step ======") +print("Time",end-start) +M = [] +data=[] +for a,b in G.edges(): + data.append([a,b]) +data = np.asarray(data) +data = np.expand_dims(data,axis=0) +PatternFinding(G.edges,output) +Training() + +Filewrite(flat_list) +np.save('graph/test_Cliques.npy', flat_list) +sz = [] + +T = nx.edges(G) +E = np.asarray(T) +for i in range(len(E)): + x = E[i, 0] + c = E[i, 1] + if (x not in node_cliques) or (c not in node_cliques): + G.remove_edge(x, c) + T = nx.edges(G) + T = np.asarray(T) +sz.append(T) +#print(sz) +end = time.time() +print("====== End of second step ======") +print("Time",end-start) +np.save('graph/test.npy', data) +np.save('graph/sam.npy', sz[0]) +np.save('graph/labfin.npy',output) diff --git a/PatternRecognition/src/File_addaptation.py b/PatternRecognition/src/File_addaptation.py new file mode 100644 index 0000000000000000000000000000000000000000..e66fd892fd6f75055e325c5ca2820118f9dcbb95 --- /dev/null +++ b/PatternRecognition/src/File_addaptation.py @@ -0,0 +1,136 @@ + +f = open("C:/Users/LENOVO/Desktop/karate.edgelist","r") +paragraph = f.readlines() +f1 = open("C:/Users/LENOVO/Desktop/o.txt","w") +print("hna") +r = [] + +for line in paragraph: + #f1.write(line.strip()+",1\n") + tmp = line.strip().split(',') + print(tmp[0]) + print(tmp[1]) + #x = [] + #x.append(int(tmp[0])) + #x.append(int(tmp[1])) + #if tmp[0] != tmp[1] and sorted(x) not in r: + #r.append(sorted(x)) + f1.write(str(int(tmp[0]))+","+str(int(tmp[1]))+"\n") + + #f1.write("x["+str(int(tmp[0]))+","+str(int(tmp[1]))+"] <- NA\n") +""" +import networkx as nx +import matplotlib.pyplot as plt + +G = nx.Graph() +G.add_edge(11,17,color='r') +G.add_edge(11,12,color='r') +G.add_edge(11,7,color='r') +G.add_edge(12,17,color='r') +G.add_edge(12,7,color='r') +G.add_edge(12,5,color='r') +G.add_edge(12,6,color='r') +G.add_edge(5,6,color='r') +G.add_edge(5,17,color='r') +G.add_edge(1,17,color='r') +G.add_edge(13,2,color='r') +G.add_edge(10,2,color='r') +G.add_edge(32,24,color='r') +G.add_edge(32,28,color='r') +G.add_edge(24,29,color='r') +G.add_edge(25,24,color='r') +G.add_edge(28,26,color='r') +G.add_edge(28,29,color='r') +G.add_edge(29,26,color='r') +G.add_edge(29,25,color='r') + + +G.add_edge(5,11,color='g') +G.add_edge(5,7,color='g') +G.add_edge(5,1,color='g') +G.add_edge(6,17,color='g') +G.add_edge(6,7,color='g') +G.add_edge(6,11,color='g') +G.add_edge(1,6,color='g') +G.add_edge(1,7,color='g') +G.add_edge(7,17,color='g') +G.add_edge(1,11,color='g') +G.add_edge(1,12,color='g') +G.add_edge(1,12,color='g') +G.add_edge(2,22,color='g') +G.add_edge(20,2,color='g') +G.add_edge(2,4,color='g') +G.add_edge(2,8,color='g') +G.add_edge(2,3,color='g') +G.add_edge(2,18,color='g') +G.add_edge(2,14,color='g') +G.add_edge(9,34,color='g') +G.add_edge(15,34,color='g') +G.add_edge(16,34,color='g') +G.add_edge(19,34,color='g') +G.add_edge(21,34,color='g') +G.add_edge(23,34,color='g') +G.add_edge(24,28,color='g') +G.add_edge(24,26,color='g') +G.add_edge(25,32,color='g') +G.add_edge(25,28,color='g') +G.add_edge(25,26,color='g') +G.add_edge(26,32,color='g') +G.add_edge(27,34,color='g') +G.add_edge(29,32,color='g') +G.add_edge(30,34,color='g') +G.add_edge(31,34,color='g') +G.add_edge(33,34,color='g') + +G.add_edge(1,32,color='black') +G.add_edge(1,22,color='black') +G.add_edge(1,20,color='black') +G.add_edge(1,18,color='black') +G.add_edge(1,14,color='black') +G.add_edge(1,13,color='black') +G.add_edge(1,9,color='black') +G.add_edge(1,8,color='black') +G.add_edge(1,4,color='black') +G.add_edge(1,3,color='black') +G.add_edge(1,2,color='black') +G.add_edge(2,31,color='black') +G.add_edge(3,15,color='black') +G.add_edge(3,9,color='black') +G.add_edge(3,10,color='black') +G.add_edge(3,33,color='black') +G.add_edge(3,29,color='black') +G.add_edge(3,28,color='black') +G.add_edge(3,8,color='black') +G.add_edge(3,4,color='black') +G.add_edge(4,14,color='black') +G.add_edge(4,13,color='black') +G.add_edge(4,8,color='black') +G.add_edge(9,33,color='black') +G.add_edge(10,34,color='black') +G.add_edge(14,34,color='black') +G.add_edge(15,33,color='black') +G.add_edge(16,33,color='black') +G.add_edge(19,33,color='black') +G.add_edge(20,34,color='black') +G.add_edge(21,33,color='black') +G.add_edge(23,33,color='black') +G.add_edge(24,30,color='black') +G.add_edge(24,34,color='black') +G.add_edge(24,33,color='black') +G.add_edge(27,30,color='black') +G.add_edge(28,34,color='black') +G.add_edge(29,34,color='black') +G.add_edge(30,33,color='black') +G.add_edge(31,33,color='black') +G.add_edge(32,34,color='black') +G.add_edge(32,33,color='black') + +colors = nx.get_edge_attributes(G,'color').values() + +pos = nx.circular_layout(G) +nx.draw(G, + edge_color=colors, + with_labels=True,node_size = 800) + +#nx.draw(G, with_labels='True',node_size = 1000, edge_color = ['red','red','red','red','red','red','red','red','red','red','red','red','red','red','red','red','red','red','red','red','green','green','green','green','green','green','green','green','green','green','green','green','green','green','green','green','green','green','green','green','green','green','green','green','green','green','green','green','green','green','green','green','green','green','green','black','black','black','black','black','black','black','black','black','black','black','black','black','black','black','black','black','black','black','black','black','black','black','black','black','black','black','black','black','black','black','black','black','black','black','black','black','black','black','black','black']) +plt.show()""" \ No newline at end of file diff --git a/PatternRecognition/src/Final_model.h5 b/PatternRecognition/src/Final_model.h5 new file mode 100644 index 0000000000000000000000000000000000000000..f12e7d7206da529af1ef8bc4b4630674f2e629d6 Binary files /dev/null and b/PatternRecognition/src/Final_model.h5 differ diff --git a/PatternRecognition/src/INoutput_data_val.npy b/PatternRecognition/src/INoutput_data_val.npy new file mode 100644 index 0000000000000000000000000000000000000000..88379bba7a83d0501c5f2b464643063ad9c85f16 Binary files /dev/null and b/PatternRecognition/src/INoutput_data_val.npy differ diff --git a/PatternRecognition/src/compact.py b/PatternRecognition/src/compact.py new file mode 100644 index 0000000000000000000000000000000000000000..46447c7fec41a2a1d553e154e2bf9b6ca5606125 --- /dev/null +++ b/PatternRecognition/src/compact.py @@ -0,0 +1,41 @@ +from multiprocessing import Pool +from itertools import repeat +import numpy as np +import copy +from compact2 import Compact2 +def Filewrite(E): + fo = open("example1.model", "w") + for i in E: + stri = "st " + print("i ",i) + stri = stri + str(i[0]) + ", " + for j in i: + if j != i[0]: + stri = stri + str(j) + " " + strt = stri[-3:] + if ',' not in strt: + fo.write(stri + "\n") + fo.close() +def localisation(L,i): + for j in L: + if j != i and i[0] in j: + i.remove(j[0]) + return i +def Compact(flat_list): + print("=======Start compact========") + + new_L = [] + L2 = copy.deepcopy(flat_list) + for i in range(len(flat_list)): + if len(flat_list[i]) > 2: + for j in range(len(flat_list)): + if len(flat_list[j]) > 2: + x = flat_list[i] + if flat_list[i] != flat_list[j] and x[0] in L2[j]: + y = flat_list[j] + if y[0] in L2[i]: + L2[i].remove(y[0]) + new_L.append(L2[i]) + np.save('graph/test_Star.npy', new_L) + print("wsel") + Compact2(new_L) \ No newline at end of file diff --git a/PatternRecognition/src/compact2.py b/PatternRecognition/src/compact2.py new file mode 100644 index 0000000000000000000000000000000000000000..2210fa83c045ae7e4d673452a3ff219c86addef5 --- /dev/null +++ b/PatternRecognition/src/compact2.py @@ -0,0 +1,50 @@ + +def Filewrite(E): + fo = open("example1.model", "w") + #f = open("patterns.txt","w") + for i in E: + print(type(i)) + #f.write(i) + print(i) + if len(i) > 1: + stri = "st " + stri = stri + str(i[0]) + ", " + for j in i: + if j != i[0]: + stri = stri + str(j) + " " + strt = stri[-3:] + if ',' not in strt: + fo.write(stri + "\n") + fo.close() +def Compact2(L): + + for i in range(len(L)): + x = L[-i - 1] + for j in range(len(L)): + y = L[j] + if y[0] in x and x[0] > y[0]: + L[-i - 1].remove(y[0]) + if x[0] not in L[j]: + L[j].append(x[0]) + + L = [sublist for sublist in L if sublist != []] + + for i in range(len(L)): + t = 0 + v = [] + x = L[i] + for j in range(len(L)): + r = L[j] + if i != j and len(r) > 0 and r[0] in x: + t = t + 1 + v.append(j) + + if t == len(x) - 1: + for k in v: + if x[0] not in L[k]: + L[k].append(x[0]) + L[i] = [] + + L = [sublist for sublist in L if sublist != []] + Filewrite(L) + diff --git a/PatternRecognition/src/compacte3 b/PatternRecognition/src/compacte3 new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/PatternRecognition/src/compacte3.py b/PatternRecognition/src/compacte3.py new file mode 100644 index 0000000000000000000000000000000000000000..f417c6a6068c6ba048a4481126b1e24282b49dd9 --- /dev/null +++ b/PatternRecognition/src/compacte3.py @@ -0,0 +1,52 @@ +import numpy as np + +def Filewrite(E,fo): + for i in E: + if len(i) > 3: + stri = "st " + print("i ",i) + stri = stri + str(i[0]) + ", " + for j in i: + if j != i[0]: + stri = stri + str(j) + " " + strt = stri[-3:] + if ',' not in strt: + fo.write(stri + "\n") + +def Filewrite2(E,fo): + stri = "fc " + R = [] + for i in E: + x = True + for j in E: + if set(i).issubset(set(j)) and i != j or len(i) < 4: + x = False + if x: + R.append(set(i)) + strt = ' '.join(map(str, i)) + fo.write(stri + strt + "\n") + +L = np.load("graph/test_Star.npy", allow_pickle=True) +C = np.load("graph/test_Cliques.npy", allow_pickle=True) + +print(L) +T = [] +for i in L: + size = len(i) + for j in C: + supp = [] + if len(i) > 0 and str(i[0]) in j: + for z in range(len(i)): + if i[z] != i[0] and str(i[z]) in j: + supp.append(i[z]) + if len(supp) > 0 and j not in T: + T.append(j) + for k in supp: + i.remove(k) +print(L) +print(T,len(T),len(C)) +fo = open("example1.model", "w") +Filewrite(L,fo) +Filewrite2(T,fo) +fo.close() +np.save('graph/test_Cliques.npy', T) diff --git a/PatternRecognition/src/example1.model b/PatternRecognition/src/example1.model new file mode 100644 index 0000000000000000000000000000000000000000..8614af85f655ab16bdb52f04a85be9c44c12c213 --- /dev/null +++ b/PatternRecognition/src/example1.model @@ -0,0 +1,448 @@ +fc 94 143 262 255 187 110 +fc 94 143 262 255 187 206 +fc 94 269 255 140 187 213 206 +fc 94 269 255 140 187 110 +fc 94 269 255 262 187 213 206 +fc 94 269 255 262 187 110 +fc 37 288 283 290 219 50 +fc 37 288 283 290 219 281 +fc 253 272 86 250 118 33 +fc 253 272 158 250 230 259 +fc 253 272 158 250 230 118 +fc 253 272 158 250 230 166 +fc 253 272 158 250 123 259 +fc 253 272 158 250 123 166 +fc 253 272 158 39 259 230 +fc 253 272 295 33 250 118 +fc 253 272 295 230 118 250 +fc 253 272 295 230 118 231 +fc 253 272 295 230 42 250 259 +fc 253 272 295 230 42 250 166 +fc 253 272 295 230 42 159 166 +fc 253 272 295 230 231 259 39 +fc 253 272 295 230 231 166 +fc 253 272 295 123 259 250 +fc 253 272 295 123 259 231 +fc 253 272 295 123 166 250 +fc 253 272 295 123 166 159 +fc 253 272 295 123 166 231 +fc 250 254 272 86 118 33 +fc 250 254 272 33 295 118 +fc 250 254 272 230 295 259 +fc 250 254 272 230 295 118 +fc 250 254 272 230 295 166 +fc 250 254 272 230 158 259 +fc 250 254 272 230 158 118 +fc 250 254 272 230 158 166 +fc 250 208 259 123 116 295 +fc 270 252 55 289 278 168 155 +fc 270 252 55 289 278 156 93 +fc 270 252 55 289 228 156 93 +fc 270 252 70 278 168 155 +fc 270 252 291 26 220 278 +fc 270 252 291 26 220 228 +fc 270 252 291 289 17 228 220 +fc 270 252 291 289 17 228 156 93 +fc 270 252 291 289 278 168 220 +fc 270 252 291 289 278 168 155 +fc 270 252 291 289 278 156 93 +fc 270 91 291 26 163 278 +fc 270 91 291 289 148 168 +fc 270 91 291 289 148 228 +fc 270 91 291 289 168 278 +fc 270 91 291 289 156 163 278 +fc 270 91 291 289 156 228 +fc 270 148 168 289 55 155 +fc 270 148 168 289 291 220 +fc 270 148 168 289 291 155 +fc 270 148 228 289 220 291 +fc 270 163 278 55 289 155 +fc 270 163 278 55 289 156 93 +fc 270 163 278 291 26 220 +fc 270 163 278 291 289 220 +fc 270 163 278 291 289 155 +fc 270 163 278 291 289 93 156 +fc 210 236 293 229 233 126 +fc 210 236 293 229 233 185 258 +fc 210 236 293 229 20 185 +fc 210 236 293 229 232 126 +fc 210 236 293 229 232 258 +fc 210 236 293 66 258 232 +fc 210 236 263 229 126 233 +fc 210 236 263 229 126 232 +fc 210 298 293 66 248 133 +fc 210 298 293 66 248 258 232 +fc 210 298 293 20 185 229 +fc 210 298 293 247 233 248 126 +fc 210 298 293 247 233 248 133 +fc 210 298 293 247 233 248 258 +fc 210 298 293 247 233 229 126 +fc 210 298 293 247 233 229 133 +fc 210 298 293 247 233 229 185 258 +fc 210 298 293 247 232 126 248 +fc 210 298 293 247 232 126 229 +fc 210 298 293 247 232 258 248 +fc 210 298 293 247 232 258 229 +fc 210 298 263 248 233 126 +fc 210 298 263 248 233 133 +fc 210 298 263 248 66 133 +fc 210 298 263 248 66 232 +fc 210 298 263 248 232 126 +fc 210 298 263 229 233 126 +fc 210 298 263 229 233 133 +fc 210 298 263 229 232 126 +fc 129 284 239 249 238 241 +fc 276 240 271 41 261 225 +fc 276 292 261 271 41 225 +fc 276 292 261 142 85 225 +fc 276 292 261 223 179 64 +fc 276 292 261 223 179 147 +fc 276 292 261 223 179 41 +fc 213 269 44 140 103 161 +fc 213 269 44 140 103 206 +fc 213 269 44 140 187 161 +fc 213 269 44 140 187 206 +fc 213 269 44 140 187 120 +fc 213 269 44 139 206 103 +fc 213 269 44 139 206 187 +fc 213 269 255 161 140 103 +fc 213 269 255 161 140 187 +fc 213 269 255 161 262 103 +fc 213 269 255 161 262 187 +fc 213 269 255 161 262 18 +fc 213 269 255 206 103 140 +fc 213 269 255 206 103 262 +fc 213 269 255 206 18 262 +fc 213 269 255 120 187 140 +fc 213 269 139 262 206 103 +fc 213 269 139 262 206 187 +fc 213 71 262 206 255 18 +fc 18 255 269 262 69 161 +fc 18 255 269 262 69 206 +fc 18 255 269 262 106 161 +fc 156 176 291 289 252 93 278 +fc 156 176 291 289 252 93 228 +fc 156 176 291 289 91 278 +fc 156 176 291 289 91 228 +fc 28 152 87 22 97 1 +fc 28 152 87 43 21 14 7 +fc 28 152 87 43 21 1 +fc 28 152 87 43 97 7 +fc 28 152 87 43 97 1 +fc 28 152 3 22 97 1 +fc 28 152 3 43 21 14 7 +fc 28 152 3 43 21 1 +fc 28 152 3 43 97 7 +fc 28 152 3 43 97 1 +fc 206 269 69 262 255 103 +fc 206 269 69 262 255 204 +fc 206 269 69 262 139 103 +fc 206 269 69 262 139 204 +fc 206 269 204 187 255 140 +fc 206 269 204 187 255 262 +fc 206 269 204 187 139 262 +fc 206 143 204 262 69 255 +fc 206 143 204 262 69 139 +fc 206 143 204 262 187 255 +fc 206 143 204 262 187 139 +fc 65 199 151 6 56 31 +fc 65 199 151 6 56 102 +fc 65 199 153 6 31 56 +fc 65 199 153 84 31 56 +fc 265 244 297 257 154 98 +fc 265 226 198 257 79 191 +fc 265 226 83 178 112 145 +fc 252 27 201 168 278 70 155 +fc 252 27 201 168 278 291 220 +fc 252 27 201 168 278 291 155 +fc 252 27 201 17 220 291 +fc 252 201 70 176 168 155 278 +fc 252 201 291 289 220 17 228 +fc 252 201 291 289 220 176 168 278 +fc 252 201 291 289 220 176 228 +fc 252 201 291 289 155 168 176 278 +fc 252 176 291 26 220 278 +fc 252 176 291 26 220 228 +fc 130 215 104 246 81 188 +fc 130 215 267 246 81 72 +fc 130 215 267 246 81 188 +fc 153 199 128 6 31 56 +fc 153 199 128 84 31 10 +fc 153 199 128 84 31 56 +fc 153 199 128 84 113 11 10 +fc 153 199 128 84 113 2 +fc 153 199 128 84 113 56 +fc 153 199 29 10 11 113 +fc 153 173 128 6 31 56 +fc 153 173 128 84 31 10 +fc 153 173 128 84 31 56 +fc 153 173 128 84 113 11 10 +fc 153 173 128 84 113 2 +fc 153 173 128 84 113 56 +fc 153 173 29 113 11 10 +fc 285 9 239 284 249 127 +fc 229 53 232 298 247 258 +fc 229 63 233 247 258 298 +fc 229 63 233 247 258 207 +fc 229 207 293 236 185 233 258 +fc 229 207 293 236 185 20 +fc 229 207 293 236 232 258 +fc 229 207 293 247 233 185 258 +fc 229 207 293 247 233 133 +fc 229 207 293 247 232 258 +fc 245 282 256 266 237 235 205 13 +fc 245 282 256 266 237 235 205 217 174 5 +fc 245 282 256 266 237 235 205 217 174 52 +fc 245 282 256 266 237 235 205 217 150 +fc 245 282 256 266 237 235 205 134 150 +fc 245 282 256 266 237 235 205 134 52 174 +fc 245 282 256 266 237 235 49 217 174 52 +fc 245 282 256 266 237 235 49 217 150 +fc 245 282 256 266 237 235 115 13 +fc 245 282 256 266 237 235 115 217 +fc 245 282 256 266 237 235 115 134 +fc 245 282 256 266 67 205 13 +fc 245 282 256 266 67 205 174 +fc 245 282 256 266 67 205 150 +fc 245 282 256 266 67 115 13 +fc 245 282 256 90 237 235 13 115 +fc 245 282 256 90 237 235 217 150 +fc 245 282 256 90 237 235 217 174 +fc 245 282 256 90 237 235 217 115 +fc 245 282 256 90 67 13 115 +fc 245 282 256 90 67 174 +fc 245 282 256 90 67 150 +fc 11 10 113 151 128 199 +fc 11 10 113 151 128 173 +fc 11 10 113 151 29 199 +fc 11 10 113 151 29 173 +fc 232 263 298 248 184 126 +fc 232 126 184 293 298 248 247 +fc 232 258 293 66 114 298 +fc 232 258 293 66 114 236 +fc 232 258 293 38 207 236 +fc 232 258 293 184 236 207 +fc 232 258 293 184 247 298 248 +fc 232 258 293 184 247 207 +fc 232 258 293 114 207 236 +fc 232 258 53 248 298 247 +fc 99 222 190 267 200 12 +fc 99 222 190 267 200 135 +fc 99 222 190 267 246 12 +fc 128 151 199 31 6 56 +fc 128 151 199 102 6 56 +fc 128 151 199 102 113 10 +fc 128 151 199 102 113 2 +fc 128 151 199 102 113 56 +fc 128 151 173 31 6 56 +fc 128 151 173 102 6 56 +fc 128 151 173 102 113 10 +fc 128 151 173 102 113 2 +fc 128 151 173 102 113 56 +fc 128 84 102 113 199 10 +fc 128 84 102 113 199 2 +fc 128 84 102 113 199 56 +fc 128 84 102 113 173 10 +fc 128 84 102 113 173 2 +fc 128 84 102 113 173 56 +fc 79 181 257 227 191 198 +fc 79 226 227 191 257 198 +fc 106 204 269 255 140 161 +fc 106 204 269 255 140 120 +fc 106 204 269 255 262 161 +fc 183 216 146 277 273 202 +fc 183 216 146 277 273 214 +fc 183 216 296 202 277 273 +fc 183 216 296 214 273 277 +fc 183 216 296 214 273 169 +fc 227 244 218 257 191 198 +fc 227 244 218 257 297 251 +fc 227 244 218 257 297 198 +fc 227 181 198 191 218 257 +fc 93 289 73 291 163 278 +fc 246 243 81 47 215 72 +fc 246 243 81 47 215 167 +fc 246 243 81 47 215 188 +fc 246 267 188 47 81 215 +fc 246 267 72 47 81 215 +fc 139 110 262 204 187 143 +fc 139 110 262 204 187 269 +fc 262 255 103 269 69 161 +fc 262 255 204 110 187 143 +fc 262 255 204 110 187 269 +fc 262 255 204 161 69 143 +fc 262 255 204 161 69 269 +fc 262 255 204 161 187 143 +fc 262 255 204 161 187 269 +fc 259 231 295 116 208 39 +fc 259 231 295 116 208 80 +fc 259 231 295 116 208 123 +fc 259 231 295 116 254 39 +fc 259 231 295 230 186 80 208 +fc 259 231 295 230 186 254 +fc 259 231 295 230 80 272 +fc 259 231 295 230 39 254 272 +fc 259 231 295 230 39 208 +fc 259 231 295 123 186 208 +fc 259 158 230 186 80 208 +fc 259 158 230 39 254 272 +fc 137 275 296 277 273 234 162 +fc 137 275 296 277 273 177 +fc 137 275 296 277 138 177 193 +fc 137 275 296 277 193 162 +fc 137 275 296 180 234 162 +fc 137 275 296 189 138 193 +fc 48 132 152 87 78 21 7 +fc 48 132 152 87 78 97 22 +fc 48 132 152 87 78 97 7 +fc 48 132 152 87 14 21 7 +fc 48 132 152 87 14 22 +fc 48 132 152 3 97 22 +fc 48 132 152 3 97 7 +fc 48 132 152 3 14 21 7 +fc 48 132 152 3 14 22 +fc 162 146 277 192 273 234 +fc 162 146 277 192 273 279 +fc 162 146 277 192 193 279 +fc 162 296 275 234 273 122 169 +fc 162 296 275 279 277 273 +fc 162 296 275 279 277 193 +fc 162 296 275 279 122 273 +fc 162 296 275 279 122 193 +fc 162 296 275 193 169 122 +fc 162 296 192 277 273 234 +fc 162 296 192 277 273 279 +fc 162 296 192 277 193 279 +fc 120 255 110 204 187 143 +fc 120 255 110 204 187 140 269 +fc 91 291 176 168 289 278 +fc 91 291 73 26 163 278 +fc 91 291 73 289 148 228 +fc 91 291 73 289 163 278 +fc 292 142 224 64 261 164 +fc 292 268 64 164 261 224 +fc 292 268 64 223 179 196 +fc 292 268 64 223 179 261 +fc 292 268 64 223 224 261 +fc 292 268 271 261 164 89 +fc 292 268 271 261 164 225 +fc 292 268 271 164 196 165 +fc 292 268 271 274 197 89 +fc 292 268 271 274 197 196 165 +fc 292 268 271 274 197 225 +fc 292 268 271 274 34 89 +fc 291 220 148 289 201 168 +fc 291 220 148 289 201 228 +fc 291 220 148 289 73 228 +fc 291 220 163 278 201 289 +fc 291 220 163 278 73 26 +fc 291 220 163 278 73 289 +fc 291 155 201 168 148 289 +fc 291 155 201 163 289 278 +fc 194 244 297 257 218 251 +fc 194 244 297 257 218 198 +fc 135 267 200 182 222 190 +fc 35 275 234 273 214 169 +fc 296 275 234 202 189 122 +fc 296 275 234 202 273 277 +fc 296 275 234 202 273 122 +fc 296 275 234 214 189 122 +fc 296 275 234 214 273 277 +fc 296 275 234 214 273 122 169 +fc 296 275 169 216 273 214 +fc 296 275 279 138 277 177 202 +fc 296 275 279 138 277 177 193 +fc 296 275 279 138 189 202 +fc 296 275 279 138 189 193 +fc 296 275 279 122 189 202 +fc 296 275 279 122 189 214 +fc 296 275 279 122 189 193 +fc 296 275 279 122 273 202 +fc 296 275 279 122 273 214 +fc 296 275 279 216 277 177 273 202 +fc 296 275 279 216 277 177 273 214 +fc 296 275 279 216 277 177 193 +fc 296 275 279 216 180 214 +fc 296 275 279 216 189 202 +fc 296 275 279 216 189 214 +fc 296 275 279 216 189 193 +fc 296 192 277 177 279 273 +fc 296 192 277 177 279 193 +fc 5 19 266 205 282 217 235 +fc 187 161 269 140 204 255 +fc 186 295 159 230 166 42 +fc 186 295 159 230 166 254 +fc 186 295 231 230 118 80 +fc 186 295 231 230 118 254 +fc 186 295 231 230 166 254 +fc 192 279 277 177 96 273 +fc 295 272 80 231 118 230 +fc 295 272 254 159 230 166 +fc 295 272 254 231 230 118 +fc 295 272 254 231 230 166 +fc 214 146 279 216 277 273 +fc 160 290 111 108 141 77 +fc 115 266 282 19 235 217 +fc 115 266 282 19 235 134 +fc 217 19 266 150 282 235 205 +fc 217 19 266 150 282 235 49 +fc 274 294 271 197 240 196 165 +fc 274 294 271 197 240 225 +fc 274 294 271 197 61 225 +fc 274 268 271 197 240 196 165 +fc 274 268 271 197 240 225 +fc 274 268 271 197 61 225 +fc 235 266 19 150 134 205 282 +fc 277 279 146 216 273 202 +fc 22 1 97 132 152 87 78 +fc 22 1 97 132 152 3 +fc 132 43 152 87 21 78 1 +fc 132 43 152 87 21 78 7 +fc 132 43 152 87 21 14 7 +fc 132 43 152 87 97 78 1 +fc 132 43 152 87 97 78 7 +fc 132 43 152 3 21 14 7 +fc 132 43 152 3 21 1 +fc 132 43 152 3 97 7 +fc 132 43 152 3 97 1 +fc 243 157 222 200 12 190 +fc 185 293 233 258 38 207 236 +fc 185 293 233 258 184 298 247 +fc 185 293 233 258 184 207 236 +fc 185 293 233 258 184 207 247 +fc 182 222 200 157 190 267 +fc 114 258 293 233 236 207 +fc 126 184 233 293 298 248 247 +fc 126 184 233 263 298 248 +fc 126 15 248 298 293 247 +fc 63 263 184 233 298 248 +fc 63 247 184 233 258 298 248 +fc 63 247 184 233 258 207 +fc 258 293 233 248 184 298 247 +fc 222 157 12 200 190 267 +fc 248 298 184 233 133 293 247 +fc 248 298 184 233 133 263 +fc 248 298 15 133 293 247 +fc 233 133 184 247 293 207 +fc 299 280 264 281 101 74 +fc 299 280 264 212 172 16 +fc 299 280 264 212 172 290 +fc 299 280 50 219 16 212 +fc 299 280 50 219 290 288 +fc 299 280 50 219 290 212 +fc 299 280 219 281 288 290 +fc 299 283 16 212 50 219 +fc 299 283 16 212 172 264 +fc 299 283 290 281 108 288 +fc 299 283 290 281 108 141 +fc 299 283 290 281 108 264 +fc 299 283 290 281 219 288 +fc 299 283 290 281 219 141 +fc 299 283 290 50 219 288 +fc 299 283 290 50 219 212 +fc 299 283 290 172 212 264 +fc 299 283 290 212 141 219 +fc 299 124 264 101 281 74 +fc 299 131 219 290 288 50 +fc 144 280 264 212 172 16 +fc 144 280 264 212 172 290 diff --git a/PatternRecognition/src/graph/Graphes.npy b/PatternRecognition/src/graph/Graphes.npy new file mode 100644 index 0000000000000000000000000000000000000000..2d6141ef8fa1ba88227c74deb27157caa1a065ed Binary files /dev/null and b/PatternRecognition/src/graph/Graphes.npy differ diff --git a/PatternRecognition/src/graph/data.npy b/PatternRecognition/src/graph/data.npy new file mode 100644 index 0000000000000000000000000000000000000000..41d6fec78d699436905bb40434e8900164735fed Binary files /dev/null and b/PatternRecognition/src/graph/data.npy differ diff --git a/PatternRecognition/src/graph/data_test.npy b/PatternRecognition/src/graph/data_test.npy new file mode 100644 index 0000000000000000000000000000000000000000..df2c0d19289394121ab6643e5cc8b03311f1a564 Binary files /dev/null and b/PatternRecognition/src/graph/data_test.npy differ diff --git a/PatternRecognition/src/graph/data_train.npy b/PatternRecognition/src/graph/data_train.npy new file mode 100644 index 0000000000000000000000000000000000000000..c34f9582e6e97d0342fc7acff1818e6f3820fc2e Binary files /dev/null and b/PatternRecognition/src/graph/data_train.npy differ diff --git a/PatternRecognition/src/graph/data_val.npy b/PatternRecognition/src/graph/data_val.npy new file mode 100644 index 0000000000000000000000000000000000000000..1094f6db49f953960a8958710124598c7e25f32f Binary files /dev/null and b/PatternRecognition/src/graph/data_val.npy differ diff --git a/PatternRecognition/src/graph/label_test.npy b/PatternRecognition/src/graph/label_test.npy new file mode 100644 index 0000000000000000000000000000000000000000..7c5eed2deee252caa0905148031bcee54946924d Binary files /dev/null and b/PatternRecognition/src/graph/label_test.npy differ diff --git a/PatternRecognition/src/graph/label_train.npy b/PatternRecognition/src/graph/label_train.npy new file mode 100644 index 0000000000000000000000000000000000000000..675b98c61cdde7845ddfd51f35eff93da496e405 Binary files /dev/null and b/PatternRecognition/src/graph/label_train.npy differ diff --git a/PatternRecognition/src/graph/label_val.npy b/PatternRecognition/src/graph/label_val.npy new file mode 100644 index 0000000000000000000000000000000000000000..dbdb15ffb6f98f486071ad367f2d41588b803932 Binary files /dev/null and b/PatternRecognition/src/graph/label_val.npy differ diff --git a/PatternRecognition/src/graph/labfin.npy b/PatternRecognition/src/graph/labfin.npy new file mode 100644 index 0000000000000000000000000000000000000000..99696c9684d5315cf8a929164e6c77f0e376e4f2 Binary files /dev/null and b/PatternRecognition/src/graph/labfin.npy differ diff --git a/PatternRecognition/src/graph/sam.npy b/PatternRecognition/src/graph/sam.npy new file mode 100644 index 0000000000000000000000000000000000000000..73517d346ce02a634713442db9f5345ecfa3019c Binary files /dev/null and b/PatternRecognition/src/graph/sam.npy differ diff --git a/PatternRecognition/src/graph/sample.npy b/PatternRecognition/src/graph/sample.npy new file mode 100644 index 0000000000000000000000000000000000000000..e507ee380bca9b56f6d9c3c87b6b9e1a91eb2215 Binary files /dev/null and b/PatternRecognition/src/graph/sample.npy differ diff --git a/PatternRecognition/src/graph/size.npy b/PatternRecognition/src/graph/size.npy new file mode 100644 index 0000000000000000000000000000000000000000..067196f5d080b7745e3431abec4b85b20a3693f2 Binary files /dev/null and b/PatternRecognition/src/graph/size.npy differ diff --git a/PatternRecognition/src/graph/size_test.npy b/PatternRecognition/src/graph/size_test.npy new file mode 100644 index 0000000000000000000000000000000000000000..98bb0429448a470fb4f83eb79fb0bf79daf232df Binary files /dev/null and b/PatternRecognition/src/graph/size_test.npy differ diff --git a/PatternRecognition/src/graph/size_train.npy b/PatternRecognition/src/graph/size_train.npy new file mode 100644 index 0000000000000000000000000000000000000000..e3061063cafb67af6ce85e57852c6369944232a7 Binary files /dev/null and b/PatternRecognition/src/graph/size_train.npy differ diff --git a/PatternRecognition/src/graph/size_val.npy b/PatternRecognition/src/graph/size_val.npy new file mode 100644 index 0000000000000000000000000000000000000000..99b4e1d1d2b75ce2f58ca855bdb08bc8efd3d3f6 Binary files /dev/null and b/PatternRecognition/src/graph/size_val.npy differ diff --git a/PatternRecognition/src/graph/test.npy b/PatternRecognition/src/graph/test.npy new file mode 100644 index 0000000000000000000000000000000000000000..2d269243661bd5259f84662b8cb490f1c0abfe1f Binary files /dev/null and b/PatternRecognition/src/graph/test.npy differ diff --git a/PatternRecognition/src/graph/test/data_test.npy b/PatternRecognition/src/graph/test/data_test.npy new file mode 100644 index 0000000000000000000000000000000000000000..a24fec336b38b53e84298b4c16136bda2d368dbf Binary files /dev/null and b/PatternRecognition/src/graph/test/data_test.npy differ diff --git a/PatternRecognition/src/graph/test/data_train.npy b/PatternRecognition/src/graph/test/data_train.npy new file mode 100644 index 0000000000000000000000000000000000000000..f51640438d2359a64496950e9eff19ed986690ce Binary files /dev/null and b/PatternRecognition/src/graph/test/data_train.npy differ diff --git a/PatternRecognition/src/graph/test/data_val.npy b/PatternRecognition/src/graph/test/data_val.npy new file mode 100644 index 0000000000000000000000000000000000000000..b6b67388cda8690c59715374ee06fc99505c3d43 Binary files /dev/null and b/PatternRecognition/src/graph/test/data_val.npy differ diff --git a/PatternRecognition/src/graph/test/transformed_0.npy b/PatternRecognition/src/graph/test/transformed_0.npy new file mode 100644 index 0000000000000000000000000000000000000000..32786d82ff0e1ec4ac745bc09ac3a0b68f7f1970 Binary files /dev/null and b/PatternRecognition/src/graph/test/transformed_0.npy differ diff --git a/PatternRecognition/src/graph/test_Bip.npy b/PatternRecognition/src/graph/test_Bip.npy new file mode 100644 index 0000000000000000000000000000000000000000..d27790ab5e4cd93926f0c85c6210b2f3811704b0 Binary files /dev/null and b/PatternRecognition/src/graph/test_Bip.npy differ diff --git a/PatternRecognition/src/graph/test_Cliques.npy b/PatternRecognition/src/graph/test_Cliques.npy new file mode 100644 index 0000000000000000000000000000000000000000..ed61107589a2d76e5d4fd9389059ae0b5f7bd163 Binary files /dev/null and b/PatternRecognition/src/graph/test_Cliques.npy differ diff --git a/PatternRecognition/src/graph/test_Star.npy b/PatternRecognition/src/graph/test_Star.npy new file mode 100644 index 0000000000000000000000000000000000000000..d27790ab5e4cd93926f0c85c6210b2f3811704b0 Binary files /dev/null and b/PatternRecognition/src/graph/test_Star.npy differ diff --git a/PatternRecognition/src/main.py b/PatternRecognition/src/main.py new file mode 100644 index 0000000000000000000000000000000000000000..1405ac8928a9e5d93d7429f571cfe4cac07c1f82 --- /dev/null +++ b/PatternRecognition/src/main.py @@ -0,0 +1,160 @@ +''' +Reference implementation of node2vec. + +Author: Aditya Grover + +For more details, refer to the paper: +node2vec: Scalable Feature Learning for Networks +Aditya Grover and Jure Leskovec +Knowledge Discovery and Data Mining (KDD), 2016 +''' +import time +import argparse +import numpy as np +import networkx as nx +import node2vec +from gensim.models import Word2Vec + + +GRAPH_SIZE = 100 +def parse_args(): + ''' + Parses the node2vec arguments. + ''' + print("Parses the node2vec arguments.") + parser = argparse.ArgumentParser(description="Run node2vec.") + #graph/dataset/data_train.npy + parser.add_argument('--input', nargs='?', default='graph/size_val.npy', + help='Input graph path') + + parser.add_argument('--output', nargs='?', default='emb/karate.emb', + help='Embeddings path') + + parser.add_argument('--dimensions', type=int, default=6, + help='Number of dimensions. Default is 180.') + + parser.add_argument('--walk-length', type=int, default=5, + help='Length of walk per source. Default is 80.') + + parser.add_argument('--num-walks', type=int, default=10, + help='Number of walks per source. Default is 10.') + + parser.add_argument('--window-size', type=int, default=2, + help='Context size for optimization. Default is 10.') + + parser.add_argument('--iter', default=1, type=int, + help='Number of epochs in SGD') + + parser.add_argument('--workers', type=int, default=16, + help='Number of parallel workers. Default is 16.') + + parser.add_argument('--p', type=float, default=1, + help='Return hyperparameter. Default is 1.') + + parser.add_argument('--q', type=float, default=1, + help='Inout hyperparameter. Default is 1.') + + parser.add_argument('--weighted', dest='weighted', action='store_true', + help='Boolean specifying (un)weighted. Default is unweighted.') + parser.add_argument('--unweighted', dest='unweighted', action='store_false') + parser.set_defaults(weighted=False) + + parser.add_argument('--directed', dest='directed', action='store_true', + help='Graph is (un)directed. Default is undirected.') + parser.add_argument('--undirected', dest='undirected', action='store_false') + parser.set_defaults(directed=False) + + return parser.parse_args() + + +def read(arr): + G = nx.Graph() + for a,b in arr: + if not G.has_node(a): + G.add_node(a) + if not G.has_node(b): + G.add_node(b) + G.add_edge(a,b,weight=1) + return G + +def read_all(): + print("input",args.input) + data = np.load(args.input,allow_pickle=True) + id=0 + print(data) + for x in data: + nx_G=read(x) + G = node2vec.Graph(nx_G, args.directed, args.p, args.q) + G.preprocess_transition_probs() + walks = G.simulate_walks(args.num_walks, args.walk_length) + result=learn_embeddings(walks) + result = np.asarray(result) + name = str(args.input) + name = name[:name.index('.')] + np.save("C:\\Users\\LENOVO\\PycharmProjects\\walid\\data_val"+"\\transformed_"+str(id),result) + print(id,"DONE") + id+=1 + + +def read_graph(): + ''' + Reads the input network in networkx. + ''' + print("Reads the input network in networkx.") + if args.weighted: + G = nx.read_edgelist(args.input, nodetype=int, data=(('weight',float),), create_using=nx.DiGraph()) + else: + G = nx.read_edgelist(args.input, nodetype=int, create_using=nx.DiGraph()) + for edge in G.edges(): + G[edge[0]][edge[1]]['weight'] = 1 + + if not args.directed: + G = G.to_undirected() + + return G + +def learn_embeddings(walks): + ''' + Learn embeddings by optimizing the Skipgram objective using SGD. + ''' + print("Learn embeddings by optimizing the Skipgram objective using SGD.") + + walks = [list(map(str, walk)) for walk in walks] + model = Word2Vec(walks, size=args.dimensions, window=args.window_size, min_count=0, sg=1, workers=args.workers, iter=args.iter) + #model.wv.save_word2vec_format('C:/Users/LENOVO/Desktop/aves-sparrow-social.csv') + result = np.zeros((GRAPH_SIZE,int(args.dimensions))) + for i in range(len(model.wv.vectors)): + key = str(i+1) + if key in model.wv.index2entity: + result[model.wv.index2entity.index(key)]=model.wv.vectors[model.wv.index2entity.index(key)] + if 0 in model.wv.index2entity: + result[model.wv.index2entity.index(0)] = model.wv.vectors[model.wv.index2entity.index(0)] + result = np.asarray(result) + return result + +def main(args): + ''' + Pipeline for representational learning for all nodes in a graph. + ''' + print("Pipeline for representational learning for all nodes in a graph.") + nx_G = read_graph() + G = node2vec.Graph(nx_G, args.directed, args.p, args.q) + G.preprocess_transition_probs() + walks = G.simulate_walks(args.num_walks, args.walk_length) + learn_embeddings(walks) + +def main2(args): + ''' + Pipeline for representational learning for all nodes in a graph. + ''' + print("Pipeline for representational learning for all nodes in a graph.") + start = time.time() + read_all() + end = time.time() + print("Time",end-start) + +if __name__ == "__main__": + args = parse_args() + import os + print(os.getcwd()) + main2(args) \ No newline at end of file diff --git a/PatternRecognition/src/model_train.h5 b/PatternRecognition/src/model_train.h5 new file mode 100644 index 0000000000000000000000000000000000000000..5fa200eafee008d678c89c681ef2dc183595ea50 Binary files /dev/null and b/PatternRecognition/src/model_train.h5 differ diff --git a/PatternRecognition/src/node2vec.py b/PatternRecognition/src/node2vec.py new file mode 100644 index 0000000000000000000000000000000000000000..eb5ab66522ac152dfd83113625770fb66b559990 --- /dev/null +++ b/PatternRecognition/src/node2vec.py @@ -0,0 +1,146 @@ +import numpy as np +import networkx as nx +import random + + +class Graph(): + def __init__(self, nx_G, is_directed, p, q): + self.G = nx_G + self.is_directed = is_directed + self.p = p + self.q = 1 + + def node2vec_walk(self, walk_length, start_node): + ''' + Simulate a random walk starting from start node. + ''' + G = self.G + alias_nodes = self.alias_nodes + alias_edges = self.alias_edges + + walk = [start_node] + + while len(walk) < walk_length: + cur = walk[-1] + cur_nbrs = sorted(G.neighbors(cur)) + if len(cur_nbrs) > 0: + if len(walk) == 1: + walk.append(cur_nbrs[alias_draw(alias_nodes[cur][0], alias_nodes[cur][1])]) + else: + prev = walk[-2] + next = cur_nbrs[alias_draw(alias_edges[(prev, cur)][0], + alias_edges[(prev, cur)][1])] + walk.append(next) + else: + break + return walk + + def simulate_walks(self, num_walks, walk_length): + ''' + Repeatedly simulate random walks from each node. + ''' + G = self.G + walks = [] + nodes = list(G.nodes()) + print("Walk iteration:") + for walk_iter in range(num_walks): + print(str(walk_iter+1), '/', str(num_walks)) + random.shuffle(nodes) + for node in nodes: + walks.append(self.node2vec_walk(walk_length=walk_length, start_node=node)) + return walks + + def get_alias_edge(self, src, dst): + ''' + Get the alias edge setup lists for a given edge. + ''' + G = self.G + p = self.p + q = self.q + + unnormalized_probs = [] + for dst_nbr in sorted(G.neighbors(dst)): + if dst_nbr == src: + unnormalized_probs.append(G[dst][dst_nbr]['weight']/p) + elif G.has_edge(dst_nbr, src): + unnormalized_probs.append(G[dst][dst_nbr]['weight']) + else: + unnormalized_probs.append(G[dst][dst_nbr]['weight']/q) + norm_const = sum(unnormalized_probs) + normalized_probs = [float(u_prob)/norm_const for u_prob in unnormalized_probs] + + return alias_setup(normalized_probs) + + def preprocess_transition_probs(self): + ''' + Preprocessing of transition probabilities for guiding the random walks. + ''' + G = self.G + is_directed = self.is_directed + alias_nodes = {} + for node in G.nodes(): + unnormalized_probs = [G[node][nbr]['weight'] for nbr in sorted(G.neighbors(node))] + norm_const = sum(unnormalized_probs) + normalized_probs = [float(u_prob)/norm_const for u_prob in unnormalized_probs] + alias_nodes[node] = alias_setup(normalized_probs) + + alias_edges = {} + triads = {} + if is_directed: + for edge in G.edges(): + alias_edges[edge] = self.get_alias_edge(edge[0], edge[1]) + else: + i = 0 + for edge in G.edges(): + i = i+1 + alias_edges[edge] = self.get_alias_edge(edge[0], edge[1]) + alias_edges[(edge[1], edge[0])] = self.get_alias_edge(edge[1], edge[0]) + self.alias_nodes = alias_nodes + self.alias_edges = alias_edges + + return + + +def alias_setup(probs): + ''' + Compute utility lists for non-uniform sampling from discrete distributions. + Refer to https://hips.seas.harvard.edu/blog/2013/03/03/the-alias-method-efficient-sampling-with-many-discrete-outcomes/ + for details + ''' + K = len(probs) + q = np.zeros(K) + J = np.zeros(K, dtype=np.int) + + smaller = [] + larger = [] + for kk, prob in enumerate(probs): + q[kk] = K*prob + ''' if q[kk] < 1.0:''' + smaller.append(kk) + '''else: + larger.append(kk) + ''' + while len(smaller) > 0 and len(larger) > 0: + small = smaller.pop() + large = larger.pop() + + J[small] = large + q[large] = q[large] + q[small] - 1.0 + if q[large] < 1.0: + smaller.append(large) + else: + larger.append(large) + + return J, q + +def alias_draw(J, q): + ''' + Draw data_train from a non-uniform discrete distribution using alias sampling. + ''' + K = len(J) + + kk = int(np.floor(np.random.rand()*K)) + if np.random.rand() < q[kk]: + return kk + else: + return J[kk] \ No newline at end of file diff --git a/PatternRecognition/src/patterns.txt b/PatternRecognition/src/patterns.txt new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/PatternRecognition/src/soc-tribes.edges b/PatternRecognition/src/soc-tribes.edges new file mode 100644 index 0000000000000000000000000000000000000000..df7e57af273969c32c9a13349e69d29bb3b089ae --- /dev/null +++ b/PatternRecognition/src/soc-tribes.edges @@ -0,0 +1,60 @@ +1 2 +1 3 +2 3 +1 4 +3 4 +1 5 +2 5 +1 6 +2 6 +3 6 +3 7 +5 7 +6 7 +3 8 +4 8 +6 8 +7 8 +2 9 +5 9 +6 9 +2 10 +9 10 +6 11 +7 11 +8 11 +9 11 +10 11 +1 12 +6 12 +7 12 +8 12 +11 12 +6 13 +7 13 +9 13 +10 13 +11 13 +5 14 +8 14 +12 14 +13 14 +1 15 +2 15 +5 15 +9 15 +10 15 +11 15 +12 15 +13 15 +1 16 +2 16 +5 16 +6 16 +11 16 +12 16 +13 16 +14 16 +15 16 +17 18 +19 20 \ No newline at end of file diff --git a/Quasi-clique_generate.py b/Quasi-clique_generate.py new file mode 100644 index 0000000000000000000000000000000000000000..f1e02a0aab7e58432d05d3a83cdfddb1dc98edd4 --- /dev/null +++ b/Quasi-clique_generate.py @@ -0,0 +1,98 @@ +from networkx.generators import community +from networkx.generators import random_graphs +from networkx.algorithms import clique +import networkx as nx +import random,numpy as np,os +import copy +import matplotlib.pyplot as plt + +def generate_clique(nb,size,total_size): + sub = community.caveman_graph(nb, size) + G = random_graphs.fast_gnp_random_graph(total_size, 0.07) # Generation de graphes aleatoires avec 0.1% de liens + G = nx.compose(G, sub) # fusion des deux graphes, obtention d'un graphe aleatoire avec nb cliques + node_mapping = dict(zip(G.nodes(), sorted(G.nodes(), key=lambda k: random.random()))) # creation du mapping + G = nx.relabel_nodes(G, node_mapping) + cliques = list(clique.find_cliques(G)) + cliquess = np.asarray(([y for x in cliques for y in x if len(x) >= 4])) + for i in range(100): + if i not in cliquess: + x = list(nx.neighbors(G, i)) + for k in cliques: + v = 0 + for j in range(len(x)): + if x[j] in k and len(k) > 3: + v += 1 + + if v >= len(k) - 2: + cliquess = np.append(cliquess, [i]) + break + out = np.zeros(100) + out[cliquess] = 1 + + return G,out,len(np.unique(cliquess)),cliquess,size + + + +def to_input_shape(G):# remplissage du fichier .edgelist format noeud -> noeud-voisin + tab=[] + for a,b in G.edges(): + tab.append([a,b]) + return tab + +BASE_PATH = "data" +DIR ="Quasi_clique" + +if(not os.path.exists(BASE_PATH)): + os.mkdir(BASE_PATH) +PATH = os.path.join(BASE_PATH,DIR) + +if(not os.path.exists(PATH)): + os.mkdir(PATH) + +total_size = 100 +max_size_clique = 20 +max_clique_count = 5 +outputs = [] +Gr_size = 1000 +graph = [] +data = [] +lab = [] +nodes = [] +input = [] +sz = [] +B = [None]*total_size +x = 0 +for id in range(Gr_size): + G,labels,y,z,s = generate_clique(random.randint(4,max_clique_count),random.randint(4,max_size_clique),total_size) + tab = to_input_shape(G) + graph.append(tab) + A = nx.adjacency_matrix(G, nodelist=range(total_size), weight='weight') + A.setdiag(A.diagonal() * 2) + A = A.todense() + print("la taille : ",s) + B = copy.deepcopy(A) + input.append(A) + for i in range(len(B)): + if i not in z: + B[i] = 0 + outputs.append(y) + lab.append(labels) + data.append(B) + sz.append(s) + print(id) +print("graphe",graph[0]) +print("matrix",data[0]) + +np.save(os.path.join(PATH, "size.npy"), np.asarray(sz)) +np.save(os.path.join(PATH, "data.npy"), np.asarray(graph)) +np.save(os.path.join(PATH, "data2.npy"), np.asarray(data)) +output = np.asarray(outputs) +np.save(os.path.join(PATH,"output.npy"),output) +print("out",output[0]) +labs = np.asarray(lab) +np.save(os.path.join(PATH,"labels2.npy"),labs) +print("labs",labs[0]) +node = np.asarray(input) +np.save(os.path.join(PATH,"nodes.npy"),node) +print("nodes",node[0]) + diff --git a/README.md b/README.md index c0ba099c01c813a81db202cf9b5fe8f16617ee41..1d72efbfd6d1bf8618af8586313ca134e54d3bee 100644 --- a/README.md +++ b/README.md @@ -44,22 +44,15 @@ Use the built-in continuous integration in GitLab. *** -# Editing this README - -When you're ready to make this README your own, just edit this file and use the handy template below (or feel free to structure it however you want - this is just a starting point!). Thank you to [makeareadme.com](https://www.makeareadme.com/) for this template. - -## Suggestions for a good README -Every project is different, so consider which of these sections apply to yours. The sections used in the template are suggestions for most open source projects. Also keep in mind that while a README can be too long and detailed, too long is better than too short. If you think your README is too long, consider utilizing another form of documentation rather than cutting out information. - ## Name -**DeepDense : Enabling Node Embedding to DenseSubgraph Mining** +**DeepDense: Enabling Node Embedding to DenseSubgraph Mining** ## Description Dense subgraphs convey important information and insights about a graph structure. This explains why dense subgraph mining is a problem of key interest that arises in several tasks and applications such as graph visualization, graph summarization, graph clustering, and complex network analysis. It is a hard problem that has been intensively addressed in the data mining community. In this paper, we propose a deep learning approach that enumerates almost all occurrences of dense subgraphs in a graph without any constraints or limitations on their size. More precisely, we enrich exiting structural node embedding with extra information computed on node neighborhoods to capture their belonging to specific types of dense subgraphs, leading to more meaningful embedding. We evaluate our approach on several datasets to attest its efficiency on two main applications, namely, graph summarization and graph clustering. - + ## Visuals -Depending on what you are making, it can be a good idea to include screenshots or even a video (you'll frequently see GIFs rather than actual videos). Tools like ttygif can help, but check out Asciinema for a more sophisticated method. + ## Installation Within a particular ecosystem, there may be a common way of installing things, such as using Yarn, NuGet, or Homebrew. However, consider the possibility that whoever is reading your README is a novice and would like more guidance. Listing specific steps helps remove ambiguity and gets people to using your project as quickly as possible. If it only runs in a specific context like a particular programming language version or operating system or has dependencies that have to be installed manually, also add a Requirements subsection. diff --git a/Skit-Cluster.py b/Skit-Cluster.py new file mode 100644 index 0000000000000000000000000000000000000000..b7d6b96cdfaf75eac0f1223e39651d37845c5e89 --- /dev/null +++ b/Skit-Cluster.py @@ -0,0 +1,175 @@ +from sknetwork.clustering import Louvain +from sknetwork.data import karate_club +import networkx as nx +import matplotlib.pyplot as plt +import numpy as np +from scipy import sparse +import time +from sknetwork.clustering import PropagationClustering +from sknetwork.data import karate_club +from sknetwork.clustering import modularity +from collections import Counter + +#f = np.load('node2vec/src/graph/test_Star.npy',allow_pickle=True) +#M = [[1,0,0],[1,0,0],[1,0,0],[1,0,0],[0,1,0],[0,1,0],[0,1,0],[0,1,0],[0,0,1],[0,0,1],[0,0,1],[0,0,1]] +fh = open("C:/Users/LENOVO/Desktop/karate.edgelist", "rb") + + +j = [[106, 269, 255, 161, 140, 204], [106, 269, 255, 161, 262, 18], [106, 269, 255, 161, 262, 204], [106, 269, 255, 120, 18], [106, 269, 255, 120, 140, 204], [106, 269, 255, 94, 140], [106, 269, 255, 94, 262], [106, 269, 25, 262, 94], [106, 269, 25, 262, 204], [106, 269, 139, 262, 204], [106, 71, 120, 255, 18], [106, 71, 120, 255, 204], [106, 71, 262, 18, 255], [106, 71, 262, 204, 255], [106, 71, 262, 204, 25], [106, 71, 262, 204, 139], [7, 48, 152, 132, 21, 14, 87], [7, 48, 152, 132, 21, 14, 3], [7, 48, 152, 132, 21, 78, 87], [7, 48, 152, 132, 97, 78, 87], [7, 48, 152, 132, 97, 3], [7, 43, 152, 21, 87, 132, 14], [7, 43, 152, 21, 87, 132, 78], [7, 43, 152, 21, 87, 28, 14], [7, 43, 152, 21, 3, 14, 132], [7, 43, 152, 21, 3, 14, 28], [7, 43, 152, 97, 87, 28], [7, 43, 152, 97, 87, 78, 132], [7, 43, 152, 97, 3, 132], [7, 43, 152, 97, 3, 28], [258, 293, 185, 233, 38, 236, 207], [258, 293, 185, 233, 236, 184, 207], [258, 293, 185, 233, 236, 229, 210], [258, 293, 185, 233, 236, 229, 207], [258, 293, 185, 233, 247, 184, 298], [258, 293, 185, 233, 247, 184, 207], [258, 293, 185, 233, 247, 229, 298, 210], [258, 293, 185, 233, 247, 229, 207], [258, 293, 232, 38, 236, 207], [258, 293, 232, 38, 248], [258, 293, 232, 236, 207, 114], [258, 293, 232, 236, 207, 184], [258, 293, 232, 236, 207, 229], [258, 293, 232, 236, 210, 229], [258, 293, 232, 236, 210, 66], [258, 293, 232, 236, 66, 114], [258, 293, 232, 298, 248, 210, 66], [258, 293, 232, 298, 248, 210, 247], [258, 293, 232, 298, 248, 184, 247], [258, 293, 232, 298, 114, 66], [258, 293, 232, 298, 229, 210, 247], [258, 293, 232, 207, 247, 184], [258, 293, 232, 207, 247, 229], [258, 293, 233, 248, 38], [258, 293, 233, 248, 247, 298, 210], [258, 293, 233, 248, 247, 298, 184], [258, 293, 233, 114, 236, 207], [258, 293, 233, 114, 298], [258, 63, 298, 233, 114], [258, 63, 298, 233, 247, 248, 184], [258, 63, 298, 233, 247, 229], [258, 63, 298, 66, 248], [258, 63, 298, 66, 114], [258, 63, 207, 233, 114], [258, 63, 207, 233, 247, 184], [258, 63, 207, 233, 247, 229], [258, 53, 232, 38, 236], [258, 53, 232, 38, 248], [258, 53, 232, 236, 114], [258, 53, 232, 236, 229], [258, 53, 232, 298, 114], [258, 53, 232, 298, 247, 248], [258, 53, 232, 298, 247, 229], [128, 199, 102, 113, 151, 10], [128, 199, 102, 113, 151, 2], [128, 199, 102, 113, 151, 56], [128, 199, 102, 113, 84, 10], [128, 199, 102, 113, 84, 2], [128, 199, 102, 113, 84, 56], [128, 199, 102, 6, 151, 56], [128, 199, 153, 84, 113, 11, 10], [128, 199, 153, 84, 113, 2], [128, 199, 153, 84, 113, 56], [128, 199, 153, 84, 31, 10], [128, 199, 153, 84, 31, 56], [128, 199, 153, 6, 56, 31], [128, 199, 151, 11, 10, 113], [128, 199, 151, 31, 10], [128, 199, 151, 31, 56, 6], [128, 173, 102, 113, 151, 10], [128, 173, 102, 113, 151, 2], [128, 173, 102, 113, 151, 56], [128, 173, 102, 113, 84, 10], [128, 173, 102, 113, 84, 2], [128, 173, 102, 113, 84, 56], [128, 173, 102, 6, 151, 56], [128, 173, 153, 84, 113, 11, 10], [128, 173, 153, 84, 113, 2], [128, 173, 153, 84, 113, 56], [128, 173, 153, 84, 31, 10], [128, 173, 153, 84, 31, 56], [128, 173, 153, 6, 56, 31], [128, 173, 151, 11, 10, 113], [128, 173, 151, 31, 10], [128, 173, 151, 31, 56, 6], [68, 243, 51, 12], [68, 243, 51, 75], [68, 243, 81, 167], [68, 243, 81, 72], [68, 243, 81, 188], [68, 243, 75, 167], [68, 23, 188, 267], [68, 23, 75, 51], [68, 23, 75, 167], [68, 267, 81, 72], [68, 267, 81, 188], [68, 267, 54, 72], [65, 199, 102, 2, 84], [65, 199, 102, 2, 151], [65, 199, 102, 56, 84], [65, 199, 102, 56, 151, 6], [65, 199, 153, 29, 11], [65, 199, 153, 29, 2], [65, 199, 153, 29, 6], [65, 199, 153, 84, 11], [65, 199, 153, 84, 2], [65, 199, 153, 84, 56, 31], [65, 199, 153, 6, 56, 31], [65, 199, 151, 11, 29], [65, 199, 151, 2, 29], [65, 199, 151, 6, 29], [65, 199, 151, 6, 31, 56], [148, 70, 168, 155, 270], [148, 70, 168, 155, 201], [148, 70, 228, 270], [148, 70, 228, 201], [148, 289, 55, 270, 155, 168], [148, 289, 55, 270, 228], [148, 289, 291, 73, 228, 220], [148, 289, 291, 73, 228, 91], [148, 289, 291, 168, 270, 155], [148, 289, 291, 168, 270, 220], [148, 289, 291, 168, 270, 91], [148, 289, 291, 168, 201, 155], [148, 289, 291, 168, 201, 220], [148, 289, 291, 228, 270, 220], [148, 289, 291, 228, 270, 91], [148, 289, 291, 228, 201, 220], [73, 291, 278, 163, 289, 93], [73, 291, 278, 163, 289, 220], [73, 291, 278, 163, 289, 91], [73, 291, 278, 163, 26, 220], [73, 291, 278, 163, 26, 91], [73, 291, 278, 27, 220], [73, 291, 228, 289, 93], [73, 291, 228, 26, 220], [73, 291, 228, 26, 91], [110, 255, 269, 103, 140], [110, 255, 269, 103, 262], [110, 255, 269, 187, 140, 120, 204], [110, 255, 269, 187, 140, 94], [110, 255, 269, 187, 262, 94], [110, 255, 269, 187, 262, 204], [110, 255, 143, 187, 120, 204], [110, 255, 143, 187, 262, 94], [110, 255, 143, 187, 262, 204], [110, 255, 71, 204, 120], [110, 255, 71, 204, 262], [110, 139, 262, 103, 269], [110, 139, 262, 204, 187, 269], [110, 139, 262, 204, 187, 143], [110, 139, 262, 204, 71], [254, 158, 230, 272, 39, 259], [254, 158, 230, 272, 250, 259], [254, 158, 230, 272, 250, 118], [254, 158, 230, 272, 250, 166], [254, 158, 230, 186, 259], [254, 158, 230, 186, 118], [254, 158, 230, 186, 166], [254, 295, 116, 231, 39, 259], [254, 295, 116, 231, 4], [254, 295, 116, 231, 118], [254, 295, 116, 250, 259], [254, 295, 116, 250, 118], [254, 295, 272, 33, 159], [254, 295, 272, 33, 118, 250], [254, 295, 272, 230, 159, 166], [254, 295, 272, 230, 231, 39, 259], [254, 295, 272, 230, 231, 118], [254, 295, 272, 230, 231, 166], [254, 295, 272, 230, 250, 259], [254, 295, 272, 230, 250, 118], [254, 295, 272, 230, 250, 166], [254, 295, 272, 4, 159], [254, 295, 272, 4, 231], [254, 295, 186, 230, 159, 166], [254, 295, 186, 230, 231, 259], [254, 295, 186, 230, 231, 118], [254, 295, 186, 230, 231, 166], [254, 295, 186, 4, 159], [254, 295, 186, 4, 231], [254, 109, 159, 4], [254, 109, 159, 166], [254, 109, 231, 259, 39], [254, 109, 231, 259, 86], [254, 109, 231, 4], [254, 109, 231, 166, 86], [254, 109, 250, 86, 259], [254, 109, 250, 86, 166], [254, 86, 231, 116, 259], [254, 86, 231, 116, 118], [254, 86, 231, 272, 259], [254, 86, 231, 272, 118], [254, 86, 231, 272, 166], [254, 86, 250, 116, 259], [254, 86, 250, 116, 118], [254, 86, 250, 272, 259], [254, 86, 250, 272, 33, 118], [254, 86, 250, 272, 166], [222, 135, 47, 243], [222, 135, 47, 267], [222, 135, 190, 104, 182], [222, 135, 190, 200, 243], [222, 135, 190, 200, 267, 182], [222, 135, 190, 200, 267, 99], [222, 157, 200, 167, 243], [222, 157, 200, 167, 182], [222, 157, 200, 190, 12, 243], [222, 157, 200, 190, 12, 267], [222, 157, 200, 190, 182, 267], [222, 200, 188, 243], [222, 200, 188, 182, 267], [222, 200, 99, 12, 267, 190], [222, 200, 99, 167], [222, 23, 182, 167, 75], [222, 23, 182, 267, 188], [222, 23, 182, 267, 190], [222, 23, 99, 167, 75], [222, 23, 99, 267, 190], [222, 246, 243, 12, 190], [222, 246, 243, 167, 75], [222, 246, 243, 167, 47], [222, 246, 243, 188, 47], [222, 246, 99, 12, 267, 190], [222, 246, 99, 167, 75], [222, 246, 104, 12, 190], [222, 246, 104, 182, 75], [222, 246, 104, 182, 188], [222, 246, 104, 182, 190], [222, 246, 267, 188, 182], [222, 246, 267, 188, 47], [222, 246, 267, 190, 182], [222, 246, 182, 167, 75], [201, 70, 252, 278, 155, 168, 176], [201, 70, 252, 278, 155, 168, 27], [201, 70, 252, 228, 176], [201, 291, 252, 155, 278, 168, 176, 289], [201, 291, 252, 155, 278, 168, 27], [201, 291, 252, 220, 289, 176, 278, 168], [201, 291, 252, 220, 289, 176, 228], [201, 291, 252, 220, 289, 17, 228], [201, 291, 252, 220, 27, 278, 168], [201, 291, 252, 220, 27, 17], [201, 291, 163, 278, 289, 155], [201, 291, 163, 278, 289, 220], [26, 291, 278, 176, 252, 220], [26, 291, 278, 176, 91], [26, 291, 278, 270, 252, 220], [26, 291, 278, 270, 163, 220], [26, 291, 278, 270, 163, 91], [26, 291, 228, 252, 220, 176], [26, 291, 228, 252, 220, 270], [26, 291, 228, 91, 176], [26, 291, 228, 91, 270], [72, 243, 215, 47, 246, 81], [72, 243, 215, 47, 135], [72, 243, 200, 135], [72, 267, 130, 215, 246, 81], [72, 267, 130, 215, 135], [72, 267, 130, 200, 135], [72, 267, 54, 246], [72, 267, 54, 135, 200], [72, 267, 47, 215, 246, 81], [72, 267, 47, 215, 135], [218, 112, 251, 178], [218, 112, 251, 181], [218, 112, 251, 195], [218, 112, 145, 178], [218, 46, 178, 297], [218, 46, 178, 145], [218, 46, 257, 297], [218, 46, 257, 181], [218, 178, 297, 251, 227], [218, 178, 297, 251, 194], [218, 178, 297, 149], [218, 178, 145, 227], [218, 178, 145, 194], [218, 178, 145, 149], [218, 244, 257, 191, 227, 198], [218, 244, 257, 297, 251, 227], [218, 244, 257, 297, 251, 194], [218, 244, 257, 297, 198, 227], [218, 244, 257, 297, 198, 194], [218, 244, 149, 191], [218, 244, 149, 297], [218, 244, 149, 145], [218, 244, 145, 227], [218, 244, 145, 194], [218, 181, 251, 257, 227], [218, 181, 191, 257, 227, 198], [218, 181, 191, 149], [218, 195, 251, 194], [14, 22, 152, 87, 132, 48], [14, 22, 152, 87, 28], [14, 22, 152, 3, 132, 48], [14, 22, 152, 3, 28], [96, 189, 183, 192], [96, 189, 234, 137], [96, 189, 234, 192], [96, 189, 234, 122], [96, 189, 279, 192], [96, 189, 279, 122], [96, 180, 137, 234], [96, 273, 169, 183], [96, 273, 169, 234, 122], [96, 273, 277, 137, 234], [96, 273, 277, 137, 177], [96, 273, 277, 192, 183], [96, 273, 277, 192, 234], [96, 273, 277, 192, 177, 279], [96, 273, 122, 279], [184, 263, 232, 126, 236], [184, 263, 232, 126, 298, 248], [184, 263, 232, 207, 236], [184, 263, 233, 236, 126], [184, 263, 233, 236, 207], [184, 263, 233, 248, 298, 63], [184, 263, 233, 248, 298, 126], [184, 263, 233, 248, 298, 133], [184, 263, 233, 207, 63], [184, 263, 233, 207, 133], [184, 126, 293, 236, 232], [184, 126, 293, 236, 233], [184, 126, 293, 248, 298, 247, 232], [184, 126, 293, 248, 298, 247, 233], [184, 133, 247, 293, 233, 298, 248], [184, 133, 247, 293, 233, 207], [260, 105, 209, 287], [260, 105, 209, 0], [260, 105, 209, 241], [260, 105, 36, 287], [260, 249, 107, 285], [260, 249, 107, 36, 287], [260, 249, 107, 36, 286], [260, 249, 175, 285], [260, 249, 175, 129], [260, 249, 175, 125], [260, 249, 9, 285], [260, 249, 241, 286], [260, 249, 241, 129], [260, 249, 125, 287], [260, 249, 125, 286], [260, 249, 129, 287], [260, 8, 241, 286], [260, 8, 241, 129], [260, 8, 0, 286], [260, 8, 286, 125], [260, 8, 175, 285], [260, 8, 175, 129], [260, 8, 175, 125], [260, 209, 107, 285], [260, 209, 107, 287], [260, 209, 107, 286], [260, 209, 241, 286], [260, 209, 0, 286], [260, 209, 175, 285], [260, 136, 285, 175], [260, 136, 285, 242], [260, 136, 286, 241], [260, 136, 129, 175], [260, 136, 129, 242, 287], [260, 136, 129, 242, 241], [260, 242, 125, 287], [3, 21, 1, 43, 152, 132], [3, 21, 1, 43, 152, 28], [3, 97, 152, 22, 1, 132], [3, 97, 152, 22, 1, 28], [3, 97, 152, 22, 48, 132], [3, 97, 152, 1, 43, 132], [3, 97, 152, 1, 43, 28], [67, 282, 245, 256, 266, 115, 13], [67, 282, 245, 256, 266, 205, 174], [67, 282, 245, 256, 266, 205, 150], [67, 282, 245, 256, 266, 205, 13], [67, 282, 245, 256, 90, 115, 13], [67, 282, 245, 256, 90, 174], [67, 282, 245, 256, 90, 150], [58, 251, 100, 211], [58, 251, 221, 195, 112], [58, 251, 221, 181, 79], [58, 251, 221, 181, 112], [58, 251, 211, 181], [58, 251, 211, 244], [58, 251, 211, 195], [58, 98, 244, 211], [58, 98, 195, 221, 112], [58, 98, 195, 211], [58, 149, 221, 181], [58, 149, 221, 195], [154, 195, 46, 211], [154, 195, 211, 82, 226], [154, 195, 211, 98], [154, 195, 265, 82, 221], [154, 195, 265, 82, 226], [154, 195, 265, 98, 221], [154, 297, 221, 32], [154, 297, 221, 98, 265], [154, 297, 257, 46], [154, 297, 257, 32], [154, 297, 257, 227, 226], [154, 297, 257, 227, 244], [154, 297, 257, 265, 226], [154, 297, 257, 265, 98, 244], [154, 297, 211, 46], [154, 297, 211, 226, 227], [154, 297, 211, 244, 227], [154, 297, 211, 244, 98], [154, 297, 271, 244], [154, 82, 227, 211, 226], [154, 82, 227, 211, 244], [154, 82, 244, 265], [200, 51, 157, 12, 243], [200, 51, 157, 54, 182], [200, 51, 157, 130], [200, 130, 267, 188], [200, 130, 267, 190, 135], [200, 130, 267, 190, 157], [200, 54, 182, 135, 267], [200, 54, 182, 157, 167], [200, 54, 182, 157, 267], [88, 125, 287, 242], [88, 125, 175, 238], [88, 284, 285, 127, 242], [88, 284, 285, 175, 238], [88, 284, 287, 242], [88, 284, 286, 241], [88, 284, 241, 242], [88, 284, 241, 238], [212, 299, 280, 219, 50, 16], [212, 299, 280, 219, 50, 290], [212, 299, 280, 264, 45], [212, 299, 280, 264, 172, 16], [212, 299, 280, 264, 172, 290], [212, 299, 280, 264, 101], [212, 299, 283, 141, 219, 290], [212, 299, 283, 141, 101], [212, 299, 283, 219, 50, 16], [212, 299, 283, 219, 50, 290], [212, 299, 283, 264, 45], [212, 299, 283, 264, 172, 16], [212, 299, 283, 264, 172, 290], [212, 299, 283, 264, 101], [212, 299, 124, 219], [212, 299, 124, 264, 101], [212, 299, 124, 264, 172], [212, 144, 280, 119, 45], [212, 144, 280, 119, 290], [212, 144, 280, 264, 45], [212, 144, 280, 264, 172, 16], [212, 144, 280, 264, 172, 290], [212, 144, 280, 264, 101], [212, 119, 280, 219, 290], [212, 119, 283, 219, 290], [212, 119, 283, 45], [78, 21, 1, 43, 152, 132, 87], [78, 97, 87, 132, 152, 22, 1], [78, 97, 87, 132, 152, 22, 48], [78, 97, 87, 132, 152, 1, 43], [242, 57, 241, 136], [242, 57, 241, 121], [242, 57, 125, 121], [242, 57, 125, 170], [242, 57, 170, 136], [242, 125, 287, 121], [242, 125, 287, 170], [242, 284, 59, 285, 127], [242, 284, 59, 287, 170], [242, 284, 239, 285, 127], [242, 284, 239, 129, 287], [242, 284, 239, 129, 127], [242, 284, 239, 129, 241], [242, 284, 239, 170, 287], [242, 136, 59, 285], [242, 136, 59, 287, 170], [242, 117, 239, 285], [242, 117, 239, 287, 170], [51, 75, 182, 23], [193, 40, 169, 138], [193, 40, 169, 216], [193, 40, 177, 138, 137], [193, 40, 177, 192], [193, 40, 177, 216], [193, 40, 146, 192], [193, 40, 146, 216], [193, 40, 189, 138, 137], [193, 40, 189, 192], [193, 40, 189, 216], [193, 146, 277, 279, 192, 162], [193, 146, 277, 279, 216], [193, 296, 275, 137, 189, 138], [193, 296, 275, 137, 277, 138, 177], [193, 296, 275, 137, 277, 162], [193, 296, 275, 169, 138], [193, 296, 275, 169, 216], [193, 296, 275, 169, 162, 122], [193, 296, 275, 279, 189, 138], [193, 296, 275, 279, 189, 216], [193, 296, 275, 279, 189, 122], [193, 296, 275, 279, 277, 162], [193, 296, 275, 279, 277, 177, 138], [193, 296, 275, 279, 277, 177, 216], [193, 296, 275, 279, 122, 162], [193, 296, 192, 279, 189], [193, 296, 192, 279, 277, 162], [193, 296, 192, 279, 277, 177], [267, 81, 215, 188, 246, 130], [267, 81, 215, 188, 246, 47], [267, 81, 215, 157, 130], [267, 130, 215, 135, 190], [267, 130, 215, 190, 246], [267, 130, 215, 190, 157], [267, 197, 268, 61], [267, 215, 23, 188], [267, 215, 23, 99, 190], [267, 215, 99, 190, 246], [267, 215, 99, 190, 135], [267, 54, 246, 182], [204, 140, 269, 187, 255, 161], [204, 140, 269, 187, 255, 206], [204, 262, 269, 187, 161, 255], [204, 262, 269, 187, 206, 255], [204, 262, 269, 187, 206, 139], [204, 262, 269, 69, 161, 255], [204, 262, 269, 69, 25], [204, 262, 269, 69, 206, 255], [204, 262, 269, 69, 206, 139], [204, 262, 143, 187, 161, 255], [204, 262, 143, 187, 206, 255], [204, 262, 143, 187, 206, 139], [204, 262, 143, 69, 161, 255], [204, 262, 143, 69, 25], [204, 262, 143, 69, 206, 255], [204, 262, 143, 69, 206, 139], [204, 262, 71, 206, 255], [204, 262, 71, 206, 139], [36, 287, 203, 105], [36, 287, 284, 59], [36, 287, 284, 249], [36, 238, 284, 249], [36, 286, 249, 284], [71, 213, 120, 255, 18], [71, 213, 262, 25], [71, 213, 262, 206, 255, 18], [71, 213, 262, 206, 139], [114, 263, 236, 232, 66], [114, 263, 236, 232, 53], [114, 263, 236, 232, 207], [114, 263, 236, 233, 207], [114, 263, 236, 20, 207], [114, 263, 298, 63, 233], [114, 263, 298, 63, 66], [114, 263, 298, 232, 66], [114, 263, 298, 232, 53], [114, 263, 298, 20], [114, 263, 207, 63, 233], [114, 293, 20, 236, 207], [114, 293, 20, 298], [114, 293, 245, 233], [25, 269, 213, 44], [25, 269, 213, 94, 262], [25, 143, 262, 94], [159, 295, 208, 33], [159, 295, 208, 186, 123], [159, 295, 208, 186, 230], [159, 295, 208, 186, 4], [159, 295, 253, 272, 33], [159, 295, 253, 272, 4], [159, 295, 253, 272, 166, 123], [159, 295, 253, 272, 166, 42, 230], [159, 295, 186, 42, 230, 166], [159, 295, 186, 166, 123], [159, 109, 208, 4], [159, 109, 253, 42, 166], [159, 109, 253, 4], [16, 77, 299, 219], [16, 77, 299, 172], [16, 77, 144, 172], [290, 77, 141, 219, 299], [290, 77, 141, 108, 160, 111], [290, 77, 141, 108, 299], [290, 77, 119, 219], [290, 77, 119, 108], [290, 77, 119, 144], [290, 77, 172, 299], [290, 77, 172, 144], [290, 77, 144, 160], [290, 141, 281, 299, 283, 219], [290, 141, 281, 299, 283, 108], [290, 141, 281, 111, 108], [290, 141, 160, 283, 108], [290, 141, 160, 111, 131], [290, 141, 131, 219, 299], [290, 144, 280, 160, 264], [290, 259, 108, 264], [290, 264, 281, 299, 280], [290, 264, 281, 299, 108, 283], [290, 264, 281, 111, 280], [290, 264, 281, 111, 108], [290, 264, 160, 283, 108], [290, 264, 160, 111, 280], [290, 264, 160, 111, 108], [290, 288, 131, 160, 111], [290, 288, 131, 50, 219, 299], [290, 288, 280, 160, 111], [290, 288, 280, 119, 219], [290, 288, 280, 299, 219, 281], [290, 288, 280, 299, 219, 50], [290, 288, 280, 299, 172], [290, 288, 280, 111, 281], [290, 288, 283, 160, 108], [290, 288, 283, 119, 219], [290, 288, 283, 119, 108], [290, 288, 283, 299, 281, 219], [290, 288, 283, 299, 281, 108], [290, 288, 283, 299, 172], [290, 288, 283, 299, 50, 219], [290, 288, 283, 37, 219, 281], [290, 288, 283, 37, 219, 50], [290, 288, 283, 37, 172], [290, 288, 111, 281, 108], [290, 288, 111, 281, 37], [290, 288, 111, 160, 108], [103, 269, 161, 213, 255, 140], [103, 269, 161, 213, 255, 262], [103, 269, 161, 213, 44, 140], [103, 269, 161, 69, 255, 262], [103, 269, 206, 213, 255, 140], [103, 269, 206, 213, 255, 262], [103, 269, 206, 213, 139, 44], [103, 269, 206, 213, 139, 262], [103, 269, 206, 213, 44, 140], [103, 269, 206, 69, 262, 255], [103, 269, 206, 69, 262, 139], [249, 175, 238, 284, 285], [249, 175, 238, 284, 129], [249, 175, 238, 125], [249, 57, 286, 241], [249, 57, 286, 125], [249, 239, 107, 285, 127], [249, 239, 107, 287], [249, 239, 107, 286], [249, 239, 284, 285, 238], [249, 239, 284, 285, 9, 127], [249, 239, 284, 286, 241], [249, 239, 284, 129, 287], [249, 239, 284, 129, 127], [249, 239, 284, 129, 241, 238], [279, 35, 275, 180, 138], [279, 35, 275, 180, 214], [279, 35, 275, 202, 138], [279, 35, 275, 202, 273], [279, 35, 275, 273, 214], [279, 35, 192, 273], [279, 146, 180, 216, 214], [279, 146, 180, 162], [279, 146, 277, 273, 192, 162], [279, 146, 277, 273, 216, 214], [279, 146, 277, 273, 216, 202], [279, 296, 275, 180, 138], [279, 296, 275, 180, 162], [279, 296, 275, 180, 214, 216], [279, 296, 275, 189, 214, 216], [279, 296, 275, 189, 214, 122], [279, 296, 275, 189, 202, 138], [279, 296, 275, 189, 202, 216], [279, 296, 275, 189, 202, 122], [279, 296, 275, 277, 138, 202, 177], [279, 296, 275, 277, 273, 216, 177, 214], [279, 296, 275, 277, 273, 216, 177, 202], [279, 296, 275, 277, 273, 162], [279, 296, 275, 122, 273, 214], [279, 296, 275, 122, 273, 162], [279, 296, 275, 122, 273, 202], [279, 296, 192, 273, 277, 162], [279, 296, 192, 273, 277, 177], [35, 234, 275, 214, 180], [35, 234, 275, 214, 273, 169], [35, 234, 275, 202, 273], [35, 234, 192, 273], [35, 138, 169, 275], [295, 42, 116, 259, 250], [295, 42, 230, 186, 259], [295, 42, 230, 250, 253, 272, 259], [295, 42, 230, 250, 253, 272, 166], [295, 208, 33, 250], [295, 208, 33, 80], [295, 208, 231, 259, 123, 116], [295, 208, 231, 259, 123, 186], [295, 208, 231, 259, 116, 39], [295, 208, 231, 259, 116, 80], [295, 208, 231, 259, 230, 39], [295, 208, 231, 259, 230, 186, 80], [295, 208, 231, 4, 116], [295, 208, 231, 4, 186], [295, 208, 250, 259, 123, 116], [295, 208, 250, 259, 230], [295, 80, 272, 33, 118], [295, 80, 272, 230, 231, 259], [295, 80, 272, 230, 231, 118], [295, 80, 118, 231, 116], [295, 80, 118, 231, 230, 186], [295, 123, 231, 259, 253, 272], [295, 123, 231, 166, 253, 272], [295, 123, 231, 166, 186], [295, 123, 250, 259, 253, 272], [295, 123, 250, 166, 253, 272], [295, 253, 272, 33, 118, 250], [295, 253, 272, 230, 231, 39, 259], [295, 253, 272, 230, 231, 118], [295, 253, 272, 230, 231, 166], [295, 253, 272, 230, 250, 118], [295, 253, 272, 4, 231], [109, 259, 208, 39, 231], [109, 259, 208, 250], [109, 259, 253, 39, 231], [109, 259, 253, 231, 86], [109, 259, 253, 250, 42], [109, 259, 253, 250, 86], [109, 166, 253, 231, 86], [109, 166, 253, 250, 42], [109, 166, 253, 250, 86], [109, 4, 231, 208], [109, 4, 231, 253], [205, 235, 282, 266, 237, 245, 256, 217, 174, 52], [205, 235, 282, 266, 237, 245, 256, 217, 174, 5], [205, 235, 282, 266, 237, 245, 256, 217, 150], [205, 235, 282, 266, 237, 245, 256, 13], [205, 235, 282, 266, 237, 245, 256, 134, 52, 174], [205, 235, 282, 266, 237, 245, 256, 134, 150], [205, 235, 282, 266, 19, 217, 5], [205, 235, 282, 266, 19, 217, 150], [205, 235, 282, 266, 19, 134, 150], [140, 269, 187, 213, 255, 161], [140, 269, 187, 213, 255, 120], [140, 269, 187, 213, 255, 94, 206], [140, 269, 187, 213, 44, 161], [140, 269, 187, 213, 44, 120], [140, 269, 187, 213, 44, 206], [296, 183, 192, 189], [296, 183, 192, 277, 273], [296, 183, 216, 214, 180], [296, 183, 216, 214, 273, 277], [296, 183, 216, 214, 273, 169], [296, 183, 216, 214, 189], [296, 183, 216, 202, 273, 277], [296, 183, 216, 202, 189], [296, 275, 137, 138, 180], [296, 275, 137, 234, 162, 180], [296, 275, 137, 234, 162, 273, 277], [296, 275, 137, 234, 189], [296, 275, 137, 177, 273, 277], [296, 275, 234, 180, 214], [296, 275, 234, 277, 273, 214], [296, 275, 234, 277, 273, 202], [296, 275, 234, 122, 273, 202], [296, 275, 234, 122, 273, 169, 214], [296, 275, 234, 122, 273, 169, 162], [296, 275, 234, 122, 189, 214], [296, 275, 234, 122, 189, 202], [296, 275, 169, 216, 214, 273], [296, 192, 234, 162, 273, 277], [296, 192, 234, 189], [255, 150, 19, 282], [255, 262, 269, 161, 18, 213], [255, 262, 269, 161, 18, 69], [255, 262, 269, 161, 187, 213], [255, 262, 269, 206, 213, 18], [255, 262, 269, 206, 213, 187, 94], [255, 262, 269, 206, 69, 18], [255, 262, 143, 94, 187, 206], [255, 120, 269, 213, 18], [143, 187, 44, 161], [143, 187, 44, 139, 206], [143, 187, 44, 120], [39, 158, 230, 259, 208], [39, 158, 230, 259, 272, 253], [151, 29, 173, 113, 11, 10], [151, 29, 173, 113, 2], [151, 29, 173, 6], [151, 29, 199, 113, 11, 10], [151, 29, 199, 113, 2], [10, 11, 153, 29, 113, 173], [10, 11, 153, 29, 113, 199], [135, 243, 190, 215], [135, 104, 54, 182], [135, 104, 190, 130, 215], [61, 268, 164, 225, 271], [61, 268, 274, 197, 225, 271], [61, 268, 274, 223], [61, 294, 147, 276, 223], [61, 294, 147, 276, 271], [61, 294, 223, 274], [61, 294, 225, 62, 276], [61, 294, 225, 62, 274], [61, 294, 225, 271, 276], [61, 294, 225, 271, 164], [61, 294, 225, 271, 197, 274], [150, 235, 282, 217, 237, 245, 256, 266, 49], [150, 235, 282, 217, 237, 245, 256, 90], [150, 235, 282, 217, 19, 266, 49], [282, 235, 256, 237, 245, 266, 115, 217], [282, 235, 256, 237, 245, 266, 115, 13], [282, 235, 256, 237, 245, 266, 115, 134], [282, 235, 256, 237, 245, 266, 49, 217, 52, 174], [282, 235, 256, 237, 245, 90, 217, 115], [282, 235, 256, 237, 245, 90, 217, 174], [282, 235, 256, 237, 245, 90, 13, 115], [282, 235, 19, 266, 217, 115], [282, 235, 19, 266, 134, 115], [20, 248, 298, 210, 263], [20, 248, 298, 210, 293], [20, 229, 185, 293, 236, 210], [20, 229, 185, 293, 236, 207], [20, 229, 185, 293, 298, 210], [20, 229, 263, 236, 210], [20, 229, 263, 236, 207], [20, 229, 263, 298, 210], [294, 276, 223, 92], [294, 276, 62, 92], [294, 276, 240, 60, 147], [294, 276, 240, 60, 142], [294, 276, 240, 142, 225], [294, 276, 240, 271, 147], [294, 276, 240, 271, 165], [294, 276, 240, 271, 225], [294, 276, 92, 60], [294, 276, 92, 165, 271], [294, 147, 196, 223], [294, 147, 196, 240, 60], [294, 147, 196, 240, 271], [294, 147, 171, 60, 240], [294, 147, 171, 223], [294, 274, 223, 196], [294, 274, 223, 171], [294, 274, 34, 62], [294, 274, 34, 271, 89], [294, 274, 62, 171, 225], [294, 274, 240, 60, 196], [294, 274, 240, 60, 171], [294, 274, 240, 165, 197, 196, 271], [294, 274, 240, 165, 171], [294, 274, 240, 225, 197, 271], [294, 274, 240, 225, 171], [294, 274, 89, 197, 271], [294, 164, 142, 225], [294, 164, 271, 165, 196], [294, 164, 271, 89], [294, 142, 197, 225, 240], [294, 92, 171, 60], [294, 92, 171, 223], [294, 92, 171, 62], [294, 92, 171, 165], [294, 92, 89, 271], [92, 179, 60, 276], [92, 179, 60, 171], [92, 179, 223, 276], [92, 179, 223, 268], [92, 179, 223, 171], [92, 179, 89, 268], [92, 268, 165, 271], [92, 268, 271, 89], [169, 40, 183, 216], [241, 238, 209, 284], [241, 238, 129, 136], [241, 238, 129, 8], [241, 286, 209, 284], [241, 286, 136, 57], [55, 270, 289, 278, 252, 93, 156], [55, 270, 289, 278, 252, 155, 168], [55, 270, 289, 278, 163, 93, 156], [55, 270, 289, 278, 163, 155], [55, 270, 289, 228, 252, 93, 156], [160, 45, 264, 144, 280], [160, 45, 264, 283], [160, 101, 283, 141], [160, 101, 283, 264], [160, 101, 283, 288], [160, 101, 280, 264, 144], [160, 101, 280, 288], [82, 100, 149, 265], [82, 194, 226, 83], [82, 194, 226, 195], [82, 149, 265, 221, 195], [82, 149, 265, 244], [82, 83, 226, 265], [194, 145, 226, 178, 83], [194, 297, 178, 226, 83], [194, 297, 178, 98], [194, 297, 100, 251], [194, 297, 100, 198], [194, 297, 257, 226, 198], [194, 297, 257, 244, 98], [185, 15, 293, 38], [185, 15, 293, 298, 247], [40, 183, 146, 192], [40, 183, 146, 216], [40, 183, 189, 192], [40, 183, 189, 216], [172, 76, 264, 74], [172, 76, 264, 144], [172, 74, 299, 264, 280], [172, 74, 299, 264, 124], [172, 124, 299, 288], [244, 191, 198, 257, 265], [244, 191, 198, 211, 227], [244, 191, 149, 265], [244, 145, 265, 149], [244, 297, 251, 227, 211], [244, 297, 198, 257, 265], [244, 297, 198, 211, 227], [244, 297, 149, 265], [99, 167, 215, 246], [99, 167, 215, 23], [176, 252, 278, 93, 156, 289, 291], [176, 252, 278, 156, 70], [176, 252, 228, 93, 156, 289, 291], [176, 252, 228, 156, 70], [176, 91, 291, 289, 278, 156], [176, 91, 291, 289, 278, 168], [176, 91, 291, 289, 228, 156], [127, 285, 30, 107], [127, 285, 30, 59], [127, 285, 209, 107], [127, 285, 209, 284, 59], [149, 265, 100, 191], [149, 265, 100, 297], [149, 265, 221, 178, 297], [149, 265, 221, 178, 145], [149, 265, 220, 195], [286, 107, 117, 30], [286, 107, 117, 239], [286, 203, 170, 57, 125], [286, 203, 170, 117], [286, 117, 170, 239], [286, 170, 57, 136], [286, 170, 284, 239], [286, 0, 284, 239], [286, 0, 284, 209], [139, 269, 187, 206, 213, 44], [139, 269, 187, 206, 213, 262], [53, 15, 248, 38], [53, 15, 248, 298, 263], [53, 15, 248, 298, 247], [53, 232, 263, 248, 298], [53, 232, 263, 229, 236], [53, 232, 263, 229, 298], [208, 158, 259, 123, 186], [208, 158, 259, 123, 250], [208, 158, 259, 230, 186, 80], [208, 158, 259, 230, 250], [234, 146, 180, 162], [234, 146, 180, 214], [234, 146, 277, 273, 192, 162], [234, 146, 277, 273, 214], [234, 146, 277, 273, 202], [226, 265, 83, 178, 297], [226, 265, 83, 178, 112, 145], [226, 265, 83, 191, 79], [226, 265, 257, 198, 191, 79], [226, 265, 257, 198, 297], [226, 265, 195, 112], [226, 227, 178, 297], [226, 227, 178, 145], [226, 227, 198, 191, 257, 79], [226, 227, 198, 191, 211], [226, 227, 198, 297, 257], [226, 227, 198, 297, 211], [156, 270, 70, 252, 278], [156, 270, 70, 252, 228], [156, 270, 291, 289, 93, 252, 278], [156, 270, 291, 289, 93, 252, 17, 228], [156, 270, 291, 289, 93, 163, 278], [156, 270, 291, 289, 91, 278, 163], [156, 270, 291, 289, 91, 228], [144, 95, 45, 119], [144, 76, 45, 264], [182, 54, 104, 246], [182, 54, 246, 167], [123, 158, 186, 166], [123, 158, 250, 253, 272, 259], [123, 158, 250, 253, 272, 166], [116, 86, 80, 231, 259], [116, 86, 80, 231, 118], [60, 179, 147, 276], [60, 179, 147, 196], [60, 179, 147, 171], [60, 85, 276, 142], [60, 85, 171, 274], [220, 291, 270, 289, 252, 278, 168], [220, 291, 270, 289, 252, 17, 228], [220, 291, 270, 289, 163, 278], [107, 287, 117, 239], [107, 285, 117, 30], [107, 285, 117, 239], [281, 59, 284, 285], [281, 111, 24, 288, 280], [281, 111, 24, 288, 95], [281, 111, 95, 37, 288], [281, 285, 239, 284], [281, 283, 95, 45], [281, 283, 95, 288, 24], [281, 283, 95, 288, 37], [281, 283, 299, 45, 264], [281, 283, 299, 101, 141], [281, 283, 299, 101, 264], [281, 283, 299, 101, 288], [281, 76, 264, 74], [281, 76, 264, 45], [281, 76, 264, 108], [281, 124, 24, 95, 288], [281, 124, 299, 219, 288], [281, 124, 299, 101, 74, 264], [281, 124, 299, 101, 288], [281, 74, 299, 101, 141], [281, 74, 299, 101, 280, 264], [281, 280, 299, 45, 264], [281, 280, 299, 101, 288], [291, 289, 270, 155, 278, 252, 168], [291, 289, 270, 155, 278, 163], [291, 289, 270, 168, 278, 91], [133, 298, 248, 263, 210, 233], [133, 298, 248, 263, 210, 66], [133, 298, 248, 263, 15], [133, 298, 248, 293, 66, 210], [133, 298, 248, 293, 247, 233, 210], [133, 298, 248, 293, 247, 15], [133, 298, 229, 233, 210, 263], [133, 298, 229, 233, 210, 293, 247], [133, 207, 229, 233, 263], [133, 207, 229, 233, 293, 247], [155, 70, 278, 168, 270, 252], [239, 105, 287, 170], [239, 229, 287, 170], [239, 284, 0, 238], [239, 284, 170, 238], [239, 117, 9, 285], [239, 117, 238, 285], [239, 117, 238, 170], [202, 183, 146, 216, 273, 277], [230, 158, 272, 250, 253, 259], [230, 158, 272, 250, 253, 118], [230, 158, 272, 250, 253, 166], [230, 158, 272, 80, 259], [230, 158, 272, 80, 118], [230, 158, 186, 80, 118], [46, 79, 257, 181], [146, 183, 192, 273, 277], [146, 183, 214, 216, 180], [146, 183, 214, 216, 273, 277], [170, 287, 203, 117], [170, 287, 203, 125], [170, 287, 203, 105], [170, 57, 105, 203], [157, 81, 215, 243, 167], [157, 215, 190, 243], [22, 97, 152, 87, 28, 1], [251, 100, 297, 211], [251, 100, 297, 32], [251, 178, 221, 297], [251, 178, 221, 112], [251, 297, 221, 32], [251, 297, 32, 257], [251, 181, 257, 32], [251, 181, 257, 79, 227], [251, 181, 32, 221], [251, 181, 227, 211], [238, 175, 285, 117], [238, 175, 285, 209, 284], [238, 175, 285, 136], [238, 175, 285, 8], [238, 175, 125, 8], [238, 175, 129, 136], [238, 175, 129, 8], [238, 30, 285, 117], [238, 0, 284, 209], [243, 81, 215, 246, 47, 167], [243, 81, 215, 246, 47, 188], [243, 215, 190, 246], [299, 131, 74, 141], [299, 131, 74, 124], [299, 131, 219, 124, 288], [2, 153, 29, 113, 173], [2, 153, 29, 113, 199], [246, 104, 130, 215, 81, 188], [246, 104, 130, 215, 190], [287, 209, 203, 121], [287, 209, 203, 105], [287, 209, 284, 59], [287, 121, 203, 125], [175, 203, 285, 117], [175, 203, 285, 209], [175, 59, 285, 284, 209], [175, 59, 285, 136], [195, 265, 221, 112, 98], [211, 100, 198, 191], [211, 100, 198, 297], [211, 181, 191, 227, 198], [280, 119, 24, 288], [292, 274, 268, 223, 196], [292, 274, 268, 271, 197, 196, 165], [292, 274, 268, 271, 197, 225], [292, 274, 268, 271, 197, 89], [292, 274, 268, 271, 34, 89], [292, 274, 41, 196, 223], [292, 274, 41, 196, 271], [292, 274, 41, 225, 271], [292, 274, 85, 197, 225], [292, 274, 85, 223], [292, 34, 142, 224], [292, 34, 268, 179, 89], [292, 34, 268, 224], [292, 165, 276, 271], [292, 165, 268, 164, 196, 271], [292, 165, 268, 164, 224], [292, 165, 268, 224, 197], [292, 197, 142, 85, 224], [292, 197, 142, 85, 225], [292, 196, 164, 64, 268], [292, 196, 223, 179, 147], [292, 196, 223, 179, 64, 268], [292, 196, 223, 179, 41], [292, 196, 271, 147], [292, 261, 276, 223, 179, 147], [292, 261, 276, 223, 179, 64], [292, 261, 276, 223, 179, 41], [292, 261, 276, 223, 85], [292, 261, 276, 142, 64], [292, 261, 276, 142, 225, 85], [292, 261, 276, 225, 41, 271], [292, 261, 276, 271, 147], [292, 261, 164, 142, 64, 224], [292, 261, 164, 142, 225], [292, 261, 164, 268, 64, 224], [292, 261, 164, 268, 271, 225], [292, 261, 164, 268, 271, 89], [292, 261, 268, 223, 64, 179], [292, 261, 268, 223, 64, 224], [292, 261, 268, 179, 89], [292, 261, 224, 223, 147], [292, 261, 224, 223, 41], [292, 261, 224, 223, 85], [292, 261, 224, 142, 85], [1, 87, 152, 43, 28, 21], [1, 87, 152, 43, 28, 97], [33, 86, 272, 118, 253, 250], [33, 86, 272, 118, 80], [209, 285, 121, 203], [166, 253, 86, 272, 231], [166, 253, 86, 272, 250], [288, 131, 95, 24, 124], [288, 131, 95, 24, 111], [288, 119, 283, 24, 95], [250, 86, 259, 253, 272], [57, 121, 203, 125], [57, 121, 203, 9], [247, 15, 248, 126, 298, 293], [247, 126, 298, 293, 210, 232, 248], [247, 126, 298, 293, 210, 232, 229], [247, 126, 298, 293, 210, 233, 248], [247, 126, 298, 293, 210, 233, 229], [285, 9, 203, 117], [285, 9, 203, 121], [171, 274, 85, 223], [171, 274, 85, 62, 225], [171, 62, 224, 85], [171, 165, 224, 240], [171, 261, 147, 223, 179], [171, 261, 147, 223, 224], [171, 261, 147, 240, 224], [171, 261, 225, 240], [171, 261, 225, 85], [171, 261, 85, 223, 224], [178, 265, 221, 297, 98], [178, 265, 221, 112, 98], [178, 265, 221, 112, 145], [297, 100, 198, 32], [297, 100, 198, 265], [297, 198, 32, 257], [66, 263, 236, 210, 232], [66, 263, 248, 298, 63], [66, 263, 248, 298, 210, 232], [32, 191, 198, 100], [32, 191, 198, 257, 181], [15, 248, 263, 298, 126], [15, 248, 38, 293], [265, 100, 191, 198], [181, 79, 198, 257, 227, 191], [173, 29, 6, 153], [63, 263, 229, 233, 298], [63, 263, 229, 233, 207], [80, 86, 272, 231, 259], [80, 86, 272, 231, 118], [232, 263, 248, 210, 298, 126], [232, 263, 229, 126, 210, 236], [232, 263, 229, 126, 210, 298], [232, 263, 229, 207, 236], [232, 126, 293, 236, 229, 210], [248, 263, 210, 233, 298, 126], [126, 229, 233, 210, 263, 236], [126, 229, 233, 210, 263, 298], [126, 229, 233, 210, 293, 236], [76, 50, 219, 131], [119, 283, 45, 95], [118, 86, 231, 253, 272], [272, 231, 86, 253, 259], [263, 236, 229, 233, 207], [62, 85, 225, 276], [240, 142, 224, 197], [240, 142, 224, 261], [240, 142, 225, 261, 276], [240, 224, 268, 197, 165], [240, 224, 268, 261], [240, 224, 41, 261], [240, 271, 41, 196, 274], [240, 271, 41, 225, 276, 261], [240, 271, 41, 225, 274], [240, 271, 268, 261, 225], [240, 271, 268, 274, 197, 196, 165], [240, 271, 268, 274, 197, 225], [240, 271, 261, 276, 147]] +print(len(j)) +G = nx.read_edgelist(fh, nodetype=int) +fh.close() +M = np.empty((len(G),len(j))) +print(M.shape) +l = list(G.nodes) +v = 0 +for i in l: + print(v) + v = v + 1 + for line in range(len(j)): + #print(f[line]) + if i in j[line]: + M[l.index(i), line] = 1 + else: + M[l.index(i), line] = 0 + +print(M) +adjacency = nx.adjacency_matrix(G) +#print(adjacency.shape) +#print(adjacency) +adjacency = adjacency.todense() +#print(adjacency) +adjacency = sparse.csr_matrix(adjacency) +louvain = Louvain() +#print(adjacency) + +#adjacency = karate_club() +start = time.time() +labels = louvain.fit_transform(adjacency) +print("Time",time.time()-start) +print(len(labels), np.asarray(labels)) +print("modularity Louvain",np.round(modularity(adjacency, labels), 10)) + +M = sparse.csr_matrix(M) +#print(M) +start = time.time() +labels2 = louvain.fit_transform(M) +k = False +#for i in range(len(labels)): +# print(i,labels[i],labels2[i]) +print(k) +print("Time",time.time()-start) +print(len(labels), labels2) + +print("modularity ta3na",np.round(modularity(adjacency, labels2), 10)) + + +p = [] +for i in range(len(labels)): + p.append(i) +Y = [] +for i in range(len(set(labels))): + Y.append(i) +print(Y) +fo = open("example1.model", "w") +strin = "{\"n_elements\": " + str(len(labels)) + ", \"n_clusters\": " + str(len(set(labels))) + ", \"elements\": " + str(p) + ", \"clusters\": " + str(Y) +strin = strin + ", \"elm2clu_dict\": {" +for i in range(len(labels)): + strin = strin + "\"" + str(i) + "\"" + ": [" + str(labels[i]) + "]," +strin = strin[:-1] + "}, \"clu2elm_dict\": {" +O = [] +for i in Y: + indices = [] + + for j in range(len(labels)): + if labels[j] == i: + indices.append(j) + O.append(len(indices)) + strin = strin + "\"" + str(i) + "\": " + str(indices) +", " +strin = strin[:-2] + "}" + ", \"hier_graph\": {\"directed\": true, \"multigraph\": false, \"graph\": {}, \"nodes\":[],\"links\": []}, \"clu_size_seq\": "+ str(O) +", \"is_disjoint\": true,\"is_hierarchical\": false, \"hierclusdict\": null}" +fo.write(strin + "\n") +fo.close() + + + + + +fo = open("example1.model", "a") +strin = "{\"n_elements\": " + str(len(labels2)) + ", \"n_clusters\": " + str(len(set(labels2))) + ", \"elements\": " + str(p) + ", \"clusters\": " + str(Y) +strin = strin + ", \"elm2clu_dict\": {" +for i in range(len(labels2)): + strin = strin + "\"" + str(i) + "\"" + ": [" + str(labels2[i]) + "]," +strin = strin[:-1] + "}, \"clu2elm_dict\": {" +O = [] +for i in Y: + indices = [] + + for j in range(len(labels2)): + if labels2[j] == i: + indices.append(j) + O.append(len(indices)) + strin = strin + "\"" + str(i) + "\": " + str(indices) +", " +strin = strin[:-2] + "}" + ", \"hier_graph\": {\"directed\": true, \"multigraph\": false, \"graph\": {}, \"nodes\":[],\"links\": []}, \"clu_size_seq\": "+ str(O) +", \"is_disjoint\": true,\"is_hierarchical\": false, \"hierclusdict\": null}" +fo.write(strin + "\n") +fo.close() +################ Propagation + +propagation = PropagationClustering() +#graph = karate_club(metadata=True) +#adjacency = graph.adjacency +#print(adjacency) +start = time.time() +labels = propagation.fit_transform(M) +print("Time",time.time()-start) +print("PropagationClustering",len(set(labels)),labels) +print("modularity ta3na",np.round(modularity(adjacency, labels), 10)) +start = time.time() +labels = propagation.fit_transform(adjacency) +print("Time",time.time()-start) +print("PropagationClustering",len(set(labels)),labels) +print("modularity propagation",np.round(modularity(adjacency, labels), 10)) +labels = propagation.fit_transform(M) +print("modularity propagation ta3na",np.round(modularity(adjacency, labels), 10)) + + + + + + +fo = open("example1.model", "a") +strin = "{\"n_elements\": " + str(len(labels)) + ", \"n_clusters\": " + str(len(set(labels))) + ", \"elements\": " + str(p) + ", \"clusters\": " + str(Y) +strin = strin + ", \"elm2clu_dict\": {" +for i in range(len(labels)): + strin = strin + "\"" + str(i) + "\"" + ": [" + str(labels[i]) + "]," +strin = strin[:-1] + "}, \"clu2elm_dict\": {" +O = [] +for i in Y: + indices = [] + + for j in range(len(labels)): + if labels[j] == i: + indices.append(j) + O.append(len(indices)) + strin = strin + "\"" + str(i) + "\": " + str(indices) +", " +strin = strin[:-2] + "}" + ", \"hier_graph\": {\"directed\": true, \"multigraph\": false, \"graph\": {}, \"nodes\":[],\"links\": []}, \"clu_size_seq\": "+ str(O) +", \"is_disjoint\": true,\"is_hierarchical\": false, \"hierclusdict\": null}" +fo.write(strin + "\n") +fo.close() + + +from sklearn import datasets +X = datasets.load_iris(return_X_y=False) +print(X) +from sklearn import metrics +print(metrics.silhouette_score(adjacency, labels, metric='euclidean')) + +from sknetwork.data import house +#adjacency = house() +#labels = louvain.fit_transform(adjacency) +#print("louvain",labels) +#print(adjacency) +#M = [[0,0,0,1],[0,0,0,1],[0,0,0,1],[1,1,1,0]]#,[0,0,0,0,0,1,1],[0,0,0,0,1,0,1],[0,0,0,0,1,1,0]] +#M = sparse.csr_matrix(M) +#labels = louvain.fit_transform(M) +#print(M.shape,labels) +nx.draw(G, with_labels=True, node_size=100) +plt.show() \ No newline at end of file diff --git a/Sub-graphs-discovernigg.png b/Sub-graphs-discovernigg.png new file mode 100644 index 0000000000000000000000000000000000000000..532dc9eeb6fbf80d4f27e320468f5f7a277536ff Binary files /dev/null and b/Sub-graphs-discovernigg.png differ diff --git a/Train2.py b/Train2.py new file mode 100644 index 0000000000000000000000000000000000000000..3b9ae86716f3a283de39f84a13267230574d9027 --- /dev/null +++ b/Train2.py @@ -0,0 +1,97 @@ +import tensorflow as tf +from tensorflow.keras.models import Sequential +from tensorflow.keras.layers import Conv1D,MaxPool1D,Flatten,Dense,Activation,BatchNormalization,Dropout,LSTM#,CuDNNLSTM +import numpy as np +from keras.optimizers import SGD +from keras import backend as K +from keras.utils.generic_utils import get_custom_objects +from tensorflow.keras.models import load_model +import sklearn.preprocessing as s +import time +import matplotlib.pyplot as plt + +def step(x): + return K.relu(K.sigmoid(x)) +get_custom_objects().update({'step': Activation(step)}) + +def load_data(DIR="subDataSet/EMB"): + train_x = np.load("data_train.npy",allow_pickle=True) + test_x = np.load("data_test.npy",allow_pickle=True) + val_x = np.load("data_val.npy",allow_pickle=True) + print(train_x[0].shape) + train_y = np.load("label_train.npy") + test_y = np.load("label_test.npy") + val_y= np.load("label_val.npy") + print(val_y.shape) + + print(val_x[0]) + print(val_y[0]) + #normalize + #train_x = (train_x-train_x.min())/(train_x.max()-train_x.min()) + #test_x = (test_x-test_x.min())/(test_x.max()-test_x.min()) + #val_x = (val_x-val_x.min())/(val_x.max()-val_x.min()) + return train_x,train_y,test_x,test_y,val_x,val_y + +def model(input_shape): + model = Sequential() + + model.add(LSTM(1,return_sequences=True,input_shape=input_shape)) + model.add(Flatten()) + model.add(Dense(200)) + model.add(Dense(100,activation="sigmoid")) + model.summary() + opt = tf.keras.optimizers.Adamax(learning_rate=0.01) + model.compile(loss='mse',optimizer="adamax",metrics=['binary_accuracy']) + return model + +train_x,train_y,test_x,test_y,val_x,val_y = load_data() +model=model((100,6)) +print(train_x.shape) +print(test_x.shape) +print(val_x.shape) + +history = model.fit(train_x,train_y,validation_data=(val_x,val_y),epochs=300,batch_size=8) + +model.save('model_new.h5') + +model = load_model('model_new.h5') +print(model.evaluate(test_x,test_y)) + +print(history.history.keys()) +# summarize history for accuracy +plt.plot(history.history['binary_accuracy']) +plt.plot(history.history['val_binary_accuracy']) +plt.title('model accuracy') +plt.ylabel('accuracy') +plt.xlabel('epoch') +plt.legend(['train', 'test'], loc='upper left') +plt.show() +# summarize history for loss +plt.plot(history.history['loss']) +plt.plot(history.history['val_loss']) +plt.title('model loss') +plt.ylabel('loss') +plt.xlabel('epoch') +plt.legend(['train', 'test'], loc='upper left') +plt.show() +""" +print( 2900 % 100) +data_train=np.load('INoutput_data_val.npy') +print("data_train",type(data_train),data_train.shape,data_train) +tab = [] +start = time.time() +for i in range(2900): + tab.append(data_train[i]) + if len(tab) == 100: + tab = np.asarray(tab) + #print("data ",i,tab.shape) + tab = np.expand_dims(tab,axis=0) + pred = model.predict(tab)[0] + #print("pred", pred[24],tab[0,24]) + pred = np.round(pred) + result = np.where(pred == 1) + print("pred 2", result[0]+(i-99),len(result[0])) + tab = [] + +end = time.time() +""" diff --git a/Voisins.py b/Voisins.py new file mode 100644 index 0000000000000000000000000000000000000000..1c7c65d80332a715148d100f5afa9d035c05883e --- /dev/null +++ b/Voisins.py @@ -0,0 +1,157 @@ +import networkx as nx +import matplotlib.pyplot as plt +from networkx.algorithms import clique + +def nodes_connected(u, v): + return u in G.neighbors(v) +# debut de test +#Generate Stars Graphs +S = nx.star_graph(5) +Z = nx.star_graph(10) + +fh = open("C:/Users/LENOVO/Desktop/karate.edgelist", "rb") +G = nx.read_edgelist(fh, nodetype=int) + +#Generate Cliques Graphes +cliques = list(clique.find_cliques(G)) +print("Cliques :",cliques) +nx.draw(G,with_labels=True) # networkx draw() +plt.show() # pyplot draw() + +X = [] +print(list(G[1])) +#fin de test +#fonction principale +#Recuperation des voisins des hubs +for i in range(len(G.nodes)): + y = list(G[i]) + print(len(y),i) + if len(y) > 1: + X.append(y) + X.append(i) +#Affichage +print("Stars : ",X) +#recuperation de la edgeliste (etape 0) +#... à completer +#creation du graphe à base de la edgelist donnée par le RNN (etape 2) +l = nx.edges(G) +P = nx.Graph(l) + + + +########## Bip ???!!! +import networkx as nx +from networkx.algorithms import community +"""g = nx.Graph() +g.add_edges_from([(1, 2), (3, 4), (3, 8), (1, 8)])""" +blocks = community.kernighan_lin.kernighan_lin_bisection(G, partition=None, max_iter=10) +print(blocks) +nx.draw(G,with_labels=True) # networkx draw() +plt.show() # pyplot draw() + +print(nx.is_bipartite(G)) +from networkx.algorithms import bipartite + +edges = G.edges() +#X, Y = bipartite.sets(G) +#print(list(X),list(Y)) +nx.draw(G,with_labels=True) # networkx draw() +plt.show() # pyplot draw() + +## +""" +B = nx.Graph() +# Add edges only between nodes of opposite node sets +B.add_edges_from([(0, 4), (0, 5), (0,6), (1, 5), (1, 6), (1, 4), (2, 6), (3, 4), (7, 4), (7, 6), (7, 5),(8, 4), (8, 6), (8, 5),(0,9),(1,9),(9,7),(9,8)]) +""" +X = [] +nx.is_connected(G) +c = bipartite.color(G) +print(c) +bottom_nodes, top_nodes = bipartite.sets(G) +print(bottom_nodes, top_nodes) +#cliques = np.asarray(([y for x in cliques for y in x if len(x) >= 4])) + +""" +for i in range(len(B.nodes)): + y = list(B[i]) + print(len(y),i) + y.append(i) + if len(y) > 1: + X.append(y) +Z = [] +for i in range (len(B.nodes)): + Y = [] + for j in range(len(B.nodes)): + if i != j: + x = sorted(nx.common_neighbors(B, i, j)) + if len(sorted(nx.common_neighbors(B, i, j))) > 0: + #x.append(i) + x.append(j) + #print("x",x) + Y.append(x) + Z.append(Y) + t = Z[i] + print("Y",i,Z[i]) +#print("X",X) +check = all(item in X[4] for item in X[3]) + +if check: + print("true") +else: + print("false",X[3],X[4]) +REZ = [] +for i in range(len(Z)): + t = Z[i] + for k in range(len(Z[i])): + #print(t) + set1 = set(t[k]) + for j in range(len(Z)): + if (i != j): + v = Z[j] + for w in range(len(Z[j])): + set2 = set(v[w]) + intersection = list(set1 & set2) + intersection.append(i) + intersection.append(j) + print("REZ",intersection) + REZ.append(intersection) +nx.draw(B,with_labels=True) # networkx draw() +plt.show() +""" +r = list(bottom_nodes) +print(r) +for i in range(len(r)): + for j in range(len(r)): + #if r[i] != r[j] and nodes_connected(r[i],r[j]) == False: + G.add_edge(r[i], r[j]) + +l = list(top_nodes) +print(l) +for i in range(len(l)): + for j in range(len(l)): + #if r[i] != r[j] and nodes_connected(r[i],r[j]) == False: + G.add_edge(l[i], l[j]) + +print(G.edges) +cliques = list(clique.enumerate_all_cliques(G)) +#cliques = np.asarray(([y for x in cliques for y in x if len(x) >= 4])) + +for i in range(len(cliques)): + #print(cliques[i]) + cptb = 0 + cptt = 0 + if len(cliques[i]) >= 4: #taille minimale du bipartie + t = cliques[i] + for j in range(len(t)): + if r.count(t[j]) > 0: + cptb += 1 + if l.count(t[j]) > 0: + cptt += 1 + print(cptt,cptb) + if cptt >= 2 and cptb >= 2: #nombre minimale des elements dans chaque ensemble + print("bip",t) +print("Cliques :",cliques) +nx.draw(G,with_labels=True) # networkx draw() +plt.show() + diff --git a/__pycache__/ANN_CLIQUES.cpython-37.pyc b/__pycache__/ANN_CLIQUES.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f7a3c24071fc776ba4114622b40a1e1d653f8cac Binary files /dev/null and b/__pycache__/ANN_CLIQUES.cpython-37.pyc differ diff --git a/__pycache__/train.cpython-37.pyc b/__pycache__/train.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..28ef0d668c128617576e1378a00faac33fe37811 Binary files /dev/null and b/__pycache__/train.cpython-37.pyc differ diff --git a/data/clique_1/labels2.npy b/data/clique_1/labels2.npy new file mode 100644 index 0000000000000000000000000000000000000000..0d1fff892cd33347ee2bbb9d4dd10d19a5f3973e Binary files /dev/null and b/data/clique_1/labels2.npy differ diff --git a/data/clique_1/size.npy b/data/clique_1/size.npy new file mode 100644 index 0000000000000000000000000000000000000000..067196f5d080b7745e3431abec4b85b20a3693f2 Binary files /dev/null and b/data/clique_1/size.npy differ diff --git a/data_test.npy b/data_test.npy new file mode 100644 index 0000000000000000000000000000000000000000..d04c65f88a57aad9e9b5743950cacd374e78bcc2 Binary files /dev/null and b/data_test.npy differ diff --git a/data_train.npy b/data_train.npy new file mode 100644 index 0000000000000000000000000000000000000000..2726cae9f1912869bcb9c73c7f89a2ac45bcd9e6 Binary files /dev/null and b/data_train.npy differ diff --git a/data_val.npy b/data_val.npy new file mode 100644 index 0000000000000000000000000000000000000000..194abf01b5530f68769b3a964552afaf6da39af9 Binary files /dev/null and b/data_val.npy differ diff --git a/example1.model b/example1.model new file mode 100644 index 0000000000000000000000000000000000000000..f2a378ae1afe0a5e32da0f55e73a88dde65fe43a --- /dev/null +++ b/example1.model @@ -0,0 +1,3 @@ +{"n_elements": 300, "n_clusters": 12, "elements": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299], "clusters": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11], "elm2clu_dict": {"0": [1],"1": [1],"2": [1],"3": [2],"4": [3],"5": [1],"6": [1],"7": [2],"8": [1],"9": [3],"10": [1],"11": [1],"12": [1],"13": [3],"14": [1],"15": [1],"16": [0],"17": [0],"18": [0],"19": [0],"20": [0],"21": [0],"22": [0],"23": [0],"24": [3],"25": [0],"26": [0],"27": [0],"28": [8],"29": [0],"30": [0],"31": [3],"32": [11],"33": [7],"34": [11],"35": [11],"36": [10],"37": [11],"38": [11],"39": [11],"40": [11],"41": [11],"42": [11],"43": [3],"44": [6],"45": [11],"46": [11],"47": [7],"48": [0],"49": [0],"50": [0],"51": [6],"52": [8],"53": [8],"54": [10],"55": [5],"56": [8],"57": [8],"58": [8],"59": [8],"60": [8],"61": [8],"62": [8],"63": [8],"64": [8],"65": [10],"66": [10],"67": [9],"68": [10],"69": [5],"70": [10],"71": [10],"72": [4],"73": [10],"74": [10],"75": [10],"76": [10],"77": [10],"78": [6],"79": [10],"80": [11],"81": [11],"82": [11],"83": [3],"84": [6],"85": [9],"86": [4],"87": [2],"88": [1],"89": [7],"90": [5],"91": [1],"92": [1],"93": [1],"94": [2],"95": [1],"96": [1],"97": [3],"98": [4],"99": [7],"100": [1],"101": [1],"102": [10],"103": [1],"104": [1],"105": [10],"106": [6],"107": [1],"108": [3],"109": [1],"110": [6],"111": [11],"112": [11],"113": [1],"114": [8],"115": [4],"116": [2],"117": [8],"118": [4],"119": [9],"120": [5],"121": [9],"122": [5],"123": [5],"124": [5],"125": [3],"126": [4],"127": [5],"128": [5],"129": [5],"130": [5],"131": [5],"132": [5],"133": [10],"134": [5],"135": [1],"136": [3],"137": [10],"138": [5],"139": [9],"140": [5],"141": [8],"142": [4],"143": [8],"144": [2],"145": [7],"146": [7],"147": [7],"148": [0],"149": [7],"150": [2],"151": [7],"152": [7],"153": [7],"154": [7],"155": [3],"156": [3],"157": [3],"158": [0],"159": [3],"160": [3],"161": [6],"162": [4],"163": [9],"164": [3],"165": [3],"166": [9],"167": [0],"168": [9],"169": [4],"170": [9],"171": [9],"172": [2],"173": [9],"174": [0],"175": [9],"176": [9],"177": [0],"178": [0],"179": [0],"180": [0],"181": [0],"182": [4],"183": [0],"184": [0],"185": [10],"186": [10],"187": [1],"188": [7],"189": [4],"190": [6],"191": [7],"192": [7],"193": [7],"194": [7],"195": [2],"196": [2],"197": [4],"198": [5],"199": [0],"200": [5],"201": [4],"202": [5],"203": [5],"204": [3],"205": [3],"206": [3],"207": [3],"208": [3],"209": [4],"210": [7],"211": [3],"212": [0],"213": [0],"214": [0],"215": [0],"216": [0],"217": [9],"218": [5],"219": [9],"220": [9],"221": [9],"222": [9],"223": [2],"224": [9],"225": [9],"226": [4],"227": [4],"228": [1],"229": [4],"230": [2],"231": [3],"232": [2],"233": [2],"234": [2],"235": [2],"236": [2],"237": [2],"238": [8],"239": [8],"240": [7],"241": [4],"242": [4],"243": [4],"244": [4],"245": [6],"246": [6],"247": [6],"248": [6],"249": [6],"250": [6],"251": [6],"252": [3],"253": [4],"254": [3],"255": [7],"256": [7],"257": [4],"258": [8],"259": [8],"260": [8],"261": [6],"262": [8],"263": [6],"264": [6],"265": [6],"266": [6],"267": [6],"268": [1],"269": [4],"270": [8],"271": [5],"272": [0],"273": [0],"274": [3],"275": [2],"276": [2],"277": [2],"278": [7],"279": [5],"280": [7],"281": [2],"282": [4],"283": [5],"284": [9],"285": [9],"286": [1],"287": [1],"288": [2],"289": [2],"290": [4],"291": [4],"292": [4],"293": [6],"294": [2],"295": [2],"296": [2],"297": [2],"298": [6],"299": [6]}, "clu2elm_dict": {"0": [16, 17, 18, 19, 20, 21, 22, 23, 25, 26, 27, 29, 30, 48, 49, 50, 148, 158, 167, 174, 177, 178, 179, 180, 181, 183, 184, 199, 212, 213, 214, 215, 216, 272, 273], "1": [0, 1, 2, 5, 6, 8, 10, 11, 12, 14, 15, 88, 91, 92, 93, 95, 96, 100, 101, 103, 104, 107, 109, 113, 135, 187, 228, 268, 286, 287], "2": [3, 7, 87, 94, 116, 144, 150, 172, 195, 196, 223, 230, 232, 233, 234, 235, 236, 237, 275, 276, 277, 281, 288, 289, 294, 295, 296, 297], "3": [4, 9, 13, 24, 31, 43, 83, 97, 108, 125, 136, 155, 156, 157, 159, 160, 164, 165, 204, 205, 206, 207, 208, 211, 231, 252, 254, 274], "4": [72, 86, 98, 115, 118, 126, 142, 162, 169, 182, 189, 197, 201, 209, 226, 227, 229, 241, 242, 243, 244, 253, 257, 269, 282, 290, 291, 292], "5": [55, 69, 90, 120, 122, 123, 124, 127, 128, 129, 130, 131, 132, 134, 138, 140, 198, 200, 202, 203, 218, 271, 279, 283], "6": [44, 51, 78, 84, 106, 110, 161, 190, 245, 246, 247, 248, 249, 250, 251, 261, 263, 264, 265, 266, 267, 293, 298, 299], "7": [33, 47, 89, 99, 145, 146, 147, 149, 151, 152, 153, 154, 188, 191, 192, 193, 194, 210, 240, 255, 256, 278, 280], "8": [28, 52, 53, 56, 57, 58, 59, 60, 61, 62, 63, 64, 114, 117, 141, 143, 238, 239, 258, 259, 260, 262, 270], "9": [67, 85, 119, 121, 139, 163, 166, 168, 170, 171, 173, 175, 176, 217, 219, 220, 221, 222, 224, 225, 284, 285], "10": [36, 54, 65, 66, 68, 70, 71, 73, 74, 75, 76, 77, 79, 102, 105, 133, 137, 185, 186], "11": [32, 34, 35, 37, 38, 39, 40, 41, 42, 45, 46, 80, 81, 82, 111, 112]}, "hier_graph": {"directed": true, "multigraph": false, "graph": {}, "nodes":[],"links": []}, "clu_size_seq": [35, 30, 28, 28, 28, 24, 24, 23, 23, 22, 19, 16], "is_disjoint": true,"is_hierarchical": false, "hierclusdict": null} +{"n_elements": 300, "n_clusters": 13, "elements": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299], "clusters": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11], "elm2clu_dict": {"0": [0],"1": [0],"2": [0],"3": [2],"4": [4],"5": [0],"6": [0],"7": [2],"8": [0],"9": [4],"10": [0],"11": [0],"12": [0],"13": [4],"14": [0],"15": [0],"16": [12],"17": [12],"18": [12],"19": [12],"20": [12],"21": [12],"22": [12],"23": [12],"24": [4],"25": [12],"26": [12],"27": [12],"28": [3],"29": [8],"30": [8],"31": [4],"32": [10],"33": [5],"34": [10],"35": [10],"36": [11],"37": [10],"38": [10],"39": [10],"40": [10],"41": [10],"42": [10],"43": [4],"44": [6],"45": [10],"46": [10],"47": [5],"48": [12],"49": [12],"50": [12],"51": [6],"52": [3],"53": [3],"54": [11],"55": [7],"56": [3],"57": [3],"58": [3],"59": [3],"60": [3],"61": [3],"62": [3],"63": [3],"64": [3],"65": [11],"66": [11],"67": [9],"68": [11],"69": [7],"70": [11],"71": [11],"72": [1],"73": [11],"74": [11],"75": [11],"76": [11],"77": [11],"78": [6],"79": [11],"80": [10],"81": [10],"82": [10],"83": [4],"84": [6],"85": [9],"86": [1],"87": [2],"88": [0],"89": [5],"90": [7],"91": [0],"92": [0],"93": [0],"94": [2],"95": [0],"96": [0],"97": [4],"98": [1],"99": [5],"100": [0],"101": [0],"102": [11],"103": [0],"104": [0],"105": [11],"106": [6],"107": [0],"108": [4],"109": [0],"110": [6],"111": [10],"112": [10],"113": [0],"114": [3],"115": [1],"116": [2],"117": [3],"118": [1],"119": [9],"120": [7],"121": [9],"122": [7],"123": [7],"124": [7],"125": [4],"126": [1],"127": [7],"128": [7],"129": [7],"130": [7],"131": [7],"132": [7],"133": [11],"134": [7],"135": [0],"136": [4],"137": [11],"138": [7],"139": [9],"140": [7],"141": [3],"142": [1],"143": [3],"144": [2],"145": [5],"146": [5],"147": [5],"148": [8],"149": [5],"150": [2],"151": [5],"152": [5],"153": [5],"154": [5],"155": [4],"156": [4],"157": [4],"158": [8],"159": [4],"160": [4],"161": [6],"162": [1],"163": [9],"164": [4],"165": [4],"166": [9],"167": [8],"168": [9],"169": [1],"170": [9],"171": [9],"172": [2],"173": [9],"174": [8],"175": [9],"176": [9],"177": [8],"178": [8],"179": [8],"180": [8],"181": [8],"182": [1],"183": [8],"184": [8],"185": [11],"186": [11],"187": [0],"188": [5],"189": [1],"190": [6],"191": [5],"192": [5],"193": [5],"194": [5],"195": [2],"196": [2],"197": [1],"198": [7],"199": [8],"200": [7],"201": [1],"202": [7],"203": [7],"204": [4],"205": [4],"206": [4],"207": [4],"208": [4],"209": [1],"210": [5],"211": [4],"212": [8],"213": [8],"214": [8],"215": [8],"216": [8],"217": [9],"218": [7],"219": [9],"220": [9],"221": [9],"222": [9],"223": [2],"224": [9],"225": [9],"226": [1],"227": [1],"228": [0],"229": [1],"230": [2],"231": [4],"232": [2],"233": [2],"234": [2],"235": [2],"236": [2],"237": [2],"238": [3],"239": [3],"240": [5],"241": [1],"242": [1],"243": [1],"244": [1],"245": [6],"246": [6],"247": [6],"248": [6],"249": [6],"250": [6],"251": [6],"252": [4],"253": [1],"254": [4],"255": [5],"256": [5],"257": [1],"258": [3],"259": [3],"260": [3],"261": [6],"262": [3],"263": [6],"264": [6],"265": [6],"266": [6],"267": [6],"268": [0],"269": [1],"270": [3],"271": [7],"272": [8],"273": [8],"274": [4],"275": [2],"276": [2],"277": [2],"278": [5],"279": [7],"280": [5],"281": [2],"282": [1],"283": [7],"284": [9],"285": [9],"286": [0],"287": [0],"288": [2],"289": [2],"290": [1],"291": [1],"292": [1],"293": [6],"294": [2],"295": [2],"296": [2],"297": [2],"298": [6],"299": [6]}, "clu2elm_dict": {"0": [0, 1, 2, 5, 6, 8, 10, 11, 12, 14, 15, 88, 91, 92, 93, 95, 96, 100, 101, 103, 104, 107, 109, 113, 135, 187, 228, 268, 286, 287], "1": [72, 86, 98, 115, 118, 126, 142, 162, 169, 182, 189, 197, 201, 209, 226, 227, 229, 241, 242, 243, 244, 253, 257, 269, 282, 290, 291, 292], "2": [3, 7, 87, 94, 116, 144, 150, 172, 195, 196, 223, 230, 232, 233, 234, 235, 236, 237, 275, 276, 277, 281, 288, 289, 294, 295, 296, 297], "3": [28, 52, 53, 56, 57, 58, 59, 60, 61, 62, 63, 64, 114, 117, 141, 143, 238, 239, 258, 259, 260, 262, 270], "4": [4, 9, 13, 24, 31, 43, 83, 97, 108, 125, 136, 155, 156, 157, 159, 160, 164, 165, 204, 205, 206, 207, 208, 211, 231, 252, 254, 274], "5": [33, 47, 89, 99, 145, 146, 147, 149, 151, 152, 153, 154, 188, 191, 192, 193, 194, 210, 240, 255, 256, 278, 280], "6": [44, 51, 78, 84, 106, 110, 161, 190, 245, 246, 247, 248, 249, 250, 251, 261, 263, 264, 265, 266, 267, 293, 298, 299], "7": [55, 69, 90, 120, 122, 123, 124, 127, 128, 129, 130, 131, 132, 134, 138, 140, 198, 200, 202, 203, 218, 271, 279, 283], "8": [29, 30, 148, 158, 167, 174, 177, 178, 179, 180, 181, 183, 184, 199, 212, 213, 214, 215, 216, 272, 273], "9": [67, 85, 119, 121, 139, 163, 166, 168, 170, 171, 173, 175, 176, 217, 219, 220, 221, 222, 224, 225, 284, 285], "10": [32, 34, 35, 37, 38, 39, 40, 41, 42, 45, 46, 80, 81, 82, 111, 112], "11": [36, 54, 65, 66, 68, 70, 71, 73, 74, 75, 76, 77, 79, 102, 105, 133, 137, 185, 186]}, "hier_graph": {"directed": true, "multigraph": false, "graph": {}, "nodes":[],"links": []}, "clu_size_seq": [30, 28, 28, 23, 28, 23, 24, 24, 21, 22, 16, 19], "is_disjoint": true,"is_hierarchical": false, "hierclusdict": null} +{"n_elements": 300, "n_clusters": 16, "elements": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299], "clusters": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11], "elm2clu_dict": {"0": [9],"1": [9],"2": [9],"3": [7],"4": [12],"5": [9],"6": [9],"7": [7],"8": [9],"9": [12],"10": [9],"11": [9],"12": [9],"13": [12],"14": [9],"15": [9],"16": [1],"17": [1],"18": [1],"19": [1],"20": [1],"21": [1],"22": [1],"23": [1],"24": [12],"25": [1],"26": [1],"27": [1],"28": [6],"29": [0],"30": [0],"31": [12],"32": [3],"33": [2],"34": [3],"35": [3],"36": [10],"37": [3],"38": [3],"39": [3],"40": [3],"41": [3],"42": [3],"43": [12],"44": [13],"45": [3],"46": [3],"47": [2],"48": [1],"49": [1],"50": [1],"51": [8],"52": [6],"53": [6],"54": [10],"55": [4],"56": [6],"57": [6],"58": [6],"59": [6],"60": [6],"61": [6],"62": [6],"63": [6],"64": [6],"65": [10],"66": [10],"67": [5],"68": [10],"69": [4],"70": [10],"71": [10],"72": [14],"73": [10],"74": [10],"75": [10],"76": [10],"77": [10],"78": [13],"79": [10],"80": [3],"81": [3],"82": [3],"83": [12],"84": [13],"85": [5],"86": [14],"87": [7],"88": [9],"89": [2],"90": [4],"91": [9],"92": [9],"93": [9],"94": [7],"95": [9],"96": [9],"97": [12],"98": [15],"99": [2],"100": [9],"101": [9],"102": [10],"103": [9],"104": [9],"105": [10],"106": [8],"107": [9],"108": [12],"109": [9],"110": [13],"111": [3],"112": [3],"113": [9],"114": [6],"115": [15],"116": [7],"117": [6],"118": [15],"119": [5],"120": [4],"121": [5],"122": [4],"123": [4],"124": [4],"125": [12],"126": [15],"127": [4],"128": [4],"129": [4],"130": [4],"131": [4],"132": [4],"133": [10],"134": [4],"135": [9],"136": [12],"137": [10],"138": [4],"139": [5],"140": [4],"141": [6],"142": [14],"143": [6],"144": [7],"145": [2],"146": [2],"147": [2],"148": [0],"149": [2],"150": [7],"151": [2],"152": [2],"153": [2],"154": [2],"155": [12],"156": [12],"157": [12],"158": [0],"159": [12],"160": [12],"161": [8],"162": [14],"163": [5],"164": [12],"165": [12],"166": [5],"167": [0],"168": [5],"169": [14],"170": [5],"171": [5],"172": [7],"173": [5],"174": [0],"175": [5],"176": [5],"177": [0],"178": [0],"179": [0],"180": [0],"181": [0],"182": [11],"183": [0],"184": [0],"185": [10],"186": [10],"187": [9],"188": [2],"189": [14],"190": [8],"191": [2],"192": [2],"193": [2],"194": [2],"195": [7],"196": [7],"197": [14],"198": [4],"199": [0],"200": [4],"201": [15],"202": [4],"203": [4],"204": [12],"205": [12],"206": [12],"207": [12],"208": [12],"209": [14],"210": [2],"211": [12],"212": [0],"213": [0],"214": [0],"215": [0],"216": [0],"217": [5],"218": [4],"219": [5],"220": [5],"221": [5],"222": [5],"223": [7],"224": [5],"225": [5],"226": [14],"227": [14],"228": [9],"229": [14],"230": [7],"231": [12],"232": [7],"233": [7],"234": [7],"235": [7],"236": [7],"237": [7],"238": [6],"239": [6],"240": [2],"241": [14],"242": [14],"243": [14],"244": [14],"245": [13],"246": [13],"247": [13],"248": [8],"249": [13],"250": [8],"251": [8],"252": [12],"253": [14],"254": [12],"255": [2],"256": [2],"257": [15],"258": [6],"259": [6],"260": [6],"261": [8],"262": [6],"263": [8],"264": [8],"265": [8],"266": [8],"267": [8],"268": [9],"269": [14],"270": [6],"271": [4],"272": [0],"273": [0],"274": [12],"275": [7],"276": [7],"277": [7],"278": [2],"279": [4],"280": [2],"281": [7],"282": [14],"283": [4],"284": [5],"285": [5],"286": [9],"287": [9],"288": [7],"289": [7],"290": [15],"291": [14],"292": [14],"293": [13],"294": [7],"295": [7],"296": [7],"297": [7],"298": [8],"299": [13]}, "clu2elm_dict": {"0": [29, 30, 148, 158, 167, 174, 177, 178, 179, 180, 181, 183, 184, 199, 212, 213, 214, 215, 216, 272, 273], "1": [16, 17, 18, 19, 20, 21, 22, 23, 25, 26, 27, 48, 49, 50], "2": [33, 47, 89, 99, 145, 146, 147, 149, 151, 152, 153, 154, 188, 191, 192, 193, 194, 210, 240, 255, 256, 278, 280], "3": [32, 34, 35, 37, 38, 39, 40, 41, 42, 45, 46, 80, 81, 82, 111, 112], "4": [55, 69, 90, 120, 122, 123, 124, 127, 128, 129, 130, 131, 132, 134, 138, 140, 198, 200, 202, 203, 218, 271, 279, 283], "5": [67, 85, 119, 121, 139, 163, 166, 168, 170, 171, 173, 175, 176, 217, 219, 220, 221, 222, 224, 225, 284, 285], "6": [28, 52, 53, 56, 57, 58, 59, 60, 61, 62, 63, 64, 114, 117, 141, 143, 238, 239, 258, 259, 260, 262, 270], "7": [3, 7, 87, 94, 116, 144, 150, 172, 195, 196, 223, 230, 232, 233, 234, 235, 236, 237, 275, 276, 277, 281, 288, 289, 294, 295, 296, 297], "8": [51, 106, 161, 190, 248, 250, 251, 261, 263, 264, 265, 266, 267, 298], "9": [0, 1, 2, 5, 6, 8, 10, 11, 12, 14, 15, 88, 91, 92, 93, 95, 96, 100, 101, 103, 104, 107, 109, 113, 135, 187, 228, 268, 286, 287], "10": [36, 54, 65, 66, 68, 70, 71, 73, 74, 75, 76, 77, 79, 102, 105, 133, 137, 185, 186], "11": [182]}, "hier_graph": {"directed": true, "multigraph": false, "graph": {}, "nodes":[],"links": []}, "clu_size_seq": [21, 14, 23, 16, 24, 22, 23, 28, 14, 30, 19, 1], "is_disjoint": true,"is_hierarchical": false, "hierclusdict": null} diff --git a/generation.py b/generation.py new file mode 100644 index 0000000000000000000000000000000000000000..d8a41187265ff5a5cfb42afab51d85ef857338dd --- /dev/null +++ b/generation.py @@ -0,0 +1,67 @@ +from networkx.generators import community +from networkx.generators import random_graphs +from networkx.algorithms import clique +import networkx as nx +import random,numpy as np,os +def generate_clique(nb,size,total_size): + sub=community.caveman_graph(nb,size)#Generation de de graphes en forme de cliques + G=random_graphs.fast_gnp_random_graph(total_size,0.05)#Generation de graphes aleatoires avec 0.1% de liens + G=nx.compose(G,sub) #fusion des deux graphes, obtention d'un graphe aleatoire avec nb cliques + node_mapping = dict(zip(G.nodes(), sorted(G.nodes(), key=lambda k: random.random())))#creation du mapping + G_new = nx.relabel_nodes(G, node_mapping)#application du mapping + cliques=list(clique.find_cliques(G_new)) + cliques=np.asarray(([y for x in cliques for y in x if len(x)>=4])) + nodes_cliques = np.unique(cliques) + print(len(nodes_cliques)) + x = len(nodes_cliques) + output=np.zeros(total_size) + output[nodes_cliques]=1 + return G_new,output,x,G_new.edges() + +def generate_without_clique(total_size):#generation de graphes aleatoires sans cliques + while True: + G=random_graphs.fast_gnp_random_graph(total_size,0.04) + cliques=list(clique.find_cliques(G)) + cliques=[x for x in cliques if len(x)>=4] + if len(cliques)==0: + break + return G, np.zeros(total_size) + + +def to_input_shape(G):# remplissage du fichier .edgelist format noeud -> noeud-voisin + tab=[] + for a,b in G.edges(): + tab.append([a,b]) + return tab + +BASE_PATH = "data" +DIR ="clique_2" + +if(not os.path.exists(BASE_PATH)): + os.mkdir(BASE_PATH) +PATH = os.path.join(BASE_PATH,DIR) + +if(not os.path.exists(PATH)): + os.mkdir(PATH) + +total_size = 100 +max_size_clique = 10 +max_clique_count = 10 +outputs = [] +Edgelist = [] +Gr_size = 1000 +data = [] +x = 0 +for id in range(Gr_size): + G,labels,y,edgelist = generate_clique(random.randint(4,max_clique_count),random.randint(4,max_size_clique),total_size) + x = x + y + outputs.append(labels) + tab = to_input_shape(G) + data.append(tab) + Edgelist.append(edgelist) +np.save(os.path.join(PATH, "data.npy"), np.asarray(data)) + +output = np.asarray(outputs) +Edgelist = np.asarray(Edgelist) +np.save(os.path.join(PATH,"labels.npy"),output) #generation des outputs +np.save(os.path.join(PATH,"sam.npy"),Edgelist) #generation des outputs \ No newline at end of file diff --git a/graph_node_add.py b/graph_node_add.py new file mode 100644 index 0000000000000000000000000000000000000000..d31d7688e080fa4787b8b198ed97e7ebfc447ce8 --- /dev/null +++ b/graph_node_add.py @@ -0,0 +1,16 @@ +from networkx.generators import community +from networkx.generators import random_graphs +from networkx.algorithms import clique +import networkx as nx +import random,numpy as np,os +import copy +import matplotlib.pyplot as plt + +G = random_graphs.fast_gnp_random_graph(10, 0.04) # Generation de graphes aleatoires avec 0.1% de liens +#nx.draw(G,with_labels=True) +#plt.show() +G.add_node(70) +#nx.draw(G,with_labels=True) +#plt.show() +print(G.number_of_nodes()) +print(666 % 100) \ No newline at end of file diff --git a/merge.py b/merge.py new file mode 100644 index 0000000000000000000000000000000000000000..7e045152aa8227d17a21f4f57373a13079f1525b --- /dev/null +++ b/merge.py @@ -0,0 +1,27 @@ +import os,numpy as np +BASE_PATH = "data_val" +#DIR ="clique_1" +PATH = os.path.join(BASE_PATH) + +#merger les files dans un seule file "data.npy" +def read(file): + file_path=os.path.join(PATH,file) + lines = open(file_path).read().splitlines() + output=[] + for line in lines: + output.append([int(x) for x in line.split(' ')]) + output = np.asarray(output) + print(output) + return output + + +data=[] +for _,_,files in os.walk(os.path.join(PATH)): + for file in files: + if ".npy" not in file: + data.append(read(file)) + print(data[-1].shape) +data = np.asarray(data) +np.save(os.path.join(PATH,"data.npy"),data) +#data = np.load(os.path.join(PATH,"data.npy"),allow_pickle=True) +print(data.shape) diff --git a/merge_all.py b/merge_all.py new file mode 100644 index 0000000000000000000000000000000000000000..a1f2d90f439eb749286efd60f5488e49af77f623 --- /dev/null +++ b/merge_all.py @@ -0,0 +1,26 @@ +import os +import numpy as np +#merge les data.npy dans un seul npy +BASE_PATH = "data" +DIR ="clique" +P = os.path.join(BASE_PATH, DIR) +PATH = os.path.join(P, "data.npy") +All_Data=list(np.load(PATH,allow_pickle=True)) +PATH = os.path.join(P, "labels.npy") +ALL_Labels =list(np.load(PATH,allow_pickle=True)) +for i in range(2,7): + DIR="clique_"+str(i) + P = os.path.join(BASE_PATH,DIR) + PATH = os.path.join(P,"data.npy") + data = np.load(PATH,allow_pickle=True) + PATH = os.path.join(P, "labels.npy") + labels = np.load(PATH,allow_pickle=True) + All_Data.extend(list(data)) + ALL_Labels.extend(list(labels)) + print(data.shape) +All_Data = np.asarray(All_Data) +ALL_Labels = np.asarray(ALL_Labels) +print(All_Data.shape) +print(ALL_Labels.shape) +np.save('data/data.npy',All_Data) +np.save('data/labels.npy',ALL_Labels) \ No newline at end of file diff --git a/merge_embaded.py b/merge_embaded.py new file mode 100644 index 0000000000000000000000000000000000000000..85b0a6830f0fd2700a4a656d944acaa0d91af229 --- /dev/null +++ b/merge_embaded.py @@ -0,0 +1,18 @@ +import os +import numpy as np + +#combinaison des fichiers obtenus après l'embadding dans un seul tableau numpy pour chaque ensemble de données + +DIRS = ['data_test','data_val','data_train'] +for DIR in DIRS: + for _,_,files in os.walk(DIR): + data = np.zeros((len(files),100,6)) + i = 0 + for file in files: + t = np.load(os.path.join(DIR,file),allow_pickle=True) + print(t.shape,i) + data[i]=t + i+=1 + np.save(os.path.join(DIR,DIR),data) + print(data.shape) + print(DIR,data) \ No newline at end of file diff --git a/model.h5 b/model.h5 new file mode 100644 index 0000000000000000000000000000000000000000..c35e10eccfd3eb1176a72f8862d2e17799daa88c Binary files /dev/null and b/model.h5 differ diff --git a/model2.h5 b/model2.h5 new file mode 100644 index 0000000000000000000000000000000000000000..c838a19ce908c2e6dd1a82aabd088815a003a8c7 Binary files /dev/null and b/model2.h5 differ diff --git a/model_Bip.h5 b/model_Bip.h5 new file mode 100644 index 0000000000000000000000000000000000000000..183086842e92feab471e7bb9979c1e7049031a2a Binary files /dev/null and b/model_Bip.h5 differ diff --git a/model_new.h5 b/model_new.h5 new file mode 100644 index 0000000000000000000000000000000000000000..92073bfa077d2365e71269b41c7ece0b6d8da957 Binary files /dev/null and b/model_new.h5 differ diff --git a/model_star.h5 b/model_star.h5 new file mode 100644 index 0000000000000000000000000000000000000000..d9d5faa5e8f317c5baf994ce7fd482263b250b71 Binary files /dev/null and b/model_star.h5 differ diff --git a/model_test.h5 b/model_test.h5 new file mode 100644 index 0000000000000000000000000000000000000000..cf054747543444b8e9c1bc145ce1863ea0e84cf4 Binary files /dev/null and b/model_test.h5 differ diff --git a/model_train.h5 b/model_train.h5 new file mode 100644 index 0000000000000000000000000000000000000000..5fa200eafee008d678c89c681ef2dc183595ea50 Binary files /dev/null and b/model_train.h5 differ diff --git a/split_data.py b/split_data.py new file mode 100644 index 0000000000000000000000000000000000000000..82c7580203019f9db99619d543ee8eaa068be612 --- /dev/null +++ b/split_data.py @@ -0,0 +1,83 @@ +import numpy as np + +#chargement des données +#data = np.load('data/clique_1/data.npy',allow_pickle=True) +#matrix = np.load('data/clique_1/data2.npy',allow_pickle=True) +#out = np.load('data/clique_1/output.npy',allow_pickle=True) +size = np.load('data/clique_1/size.npy',allow_pickle=True) +labels = np.load('data/clique_1/labels2.npy',allow_pickle=True) +#data = np.load('INoutput_data.npy') + +#print(data.shape) +print(labels.shape) +#print(matrix.shape) +#print(out.shape) +print(size.shape) + +#print(data[2]) +print(labels[0]) +#print(matrix[0]) +#print(out[0]) +print(size[0]) + +print("DONE") + +#définition du ratio train / test +split_rate=0.8 +k = int(len(size)*split_rate) + +#données d'apprentissage +#data_train = data[:k] +#matrix_train = matrix[:k] +#out_train = out[:k] +size_train = size[:k] +label_train = labels[:k] + +#données de test +#data_test = data[k:] +#matrix_test = matrix[k:] +size_test = size[k:] +#out_test = out[k:] +label_test = labels[k:] + + +#définition du ratio train / validation +split_rate=0.8 +k = int(len(size_train)*split_rate) + +#données de validation +#data_val = data_train[k:] +#matrix_val = matrix_train[k:] +#out_val = out_train[k:] +size_val = size_train[k:] +label_val = label_train[k:] + +#donnée d'apprentissage +#data_train = data_train[:k] +#matrix_train = matrix_train[:k] +#out_train = out_train[:k] +size_train = size_train[:k] +label_train = label_train[:k] + +print(label_train.shape,label_test.shape,label_val.shape) +#print(data_train.shape,data_test.shape,data_val.shape) +print(label_train[0]) +#print(data_train[0]) +#print(out_train.shape,out_test.shape,out_val.shape) +print(size_train.shape,size_test.shape,size_val.shape) +#sauvegarde +#np.save("node2vec/src/graph/data_train.npy", data_train) +#np.save("node2vec/src/graph/data_test.npy", data_test) +#np.save("node2vec/src/graph/data_val.npy", data_val) +#np.save("matrix_train.npy", matrix_train) +#np.save("matrix_test.npy", matrix_test) +#np.save("matrix_val.npy", matrix_val) +#np.save("out_train.npy", out_train) +#np.save("out_test.npy", out_test) +#np.save("out_val.npy", out_val) +np.save("node2vec/src/graph/size_train.npy", size_train) +np.save("node2vec/src/graph/size_test.npy", size_test) +np.save("node2vec/src/graph/size_val.npy", size_val) +np.save("node2vec/src/graph/label_val.npy",label_val) +np.save("node2vec/src/graph/label_train.npy",label_train) +np.save("node2vec/src/graph/label_test.npy",label_test) \ No newline at end of file diff --git a/train.py b/train.py new file mode 100644 index 0000000000000000000000000000000000000000..62967ff762d5039b90a951d968b5911bff12acce --- /dev/null +++ b/train.py @@ -0,0 +1,118 @@ +import tensorflow as tf +from tensorflow.keras.models import Sequential +from tensorflow.keras.layers import Conv1D,MaxPool1D,Flatten,Dense,Activation,BatchNormalization,Dropout,LSTM#,CuDNNLSTM +import numpy as np +from keras.optimizers import SGD +from keras import backend as K +from keras.utils.generic_utils import get_custom_objects +from tensorflow.keras.models import load_model +import sklearn.preprocessing as s +import time + +def load_data(DIR="subDataSet/EMB"): + train_x = np.load("node2vec/src/graph/data_train.npy",allow_pickle=True) + test_x = np.load("node2vec/src/graph/data_test.npy",allow_pickle=True) + val_x = np.load("node2vec/src/graph/data_val.npy",allow_pickle=True) + print(train_x[0].shape) + train_y = np.load("node2vec/src/graph/label_train.npy") + test_y = np.load("node2vec/src/graph/label_test.npy") + val_y= np.load("node2vec/src/graph/label_val.npy") + print(val_x.shape) + print(val_y.shape) + print(train_x.shape) + print(train_y.shape) + print(test_x.shape) + print(test_y.shape) + print(val_y[0]) + print("normalize",val_x[0]) + + return train_x,train_y,test_x,test_y,val_x,val_y + +def model(input_shape): + model = Sequential() + #model.add(Conv1D(80,3,input_shape=(1,100))) + #model.add(MaxPool1D(9)) + #model.add(Conv1D(10,3)) + #model.add(MaxPool1D(9)) + #model.add(LSTM(1,return_sequences=True,input_shape=input_shape)) + #model.add(LSTM(80)) + + #model.add(Flatten()) + #model.add(Dropout(0.3)) + model.add(Dense(200,input_shape=(100,))) + model.add(Dense(100,activation="sigmoid")) + model.summary() + opt = tf.keras.optimizers.Adamax(learning_rate=0.01) + model.compile(loss='mse',optimizer="adamax",metrics=['binary_accuracy']) + return model + + +#train_x,train_y,test_x,test_y,val_x,val_y = load_data() +#print("shape",train_x.shape) +#train_x = train_x.reshape(-1,100,) +#test_x = test_x.reshape(-1,100,) +#train_y = train_y.reshape(-1,100,) +#test_y = test_y.reshape(-1,100,) +#val_x = val_x.reshape(-1,100,) +#val_y = val_y.reshape(-1,100,) + +def Training(): + #model = model((100,)) + + #model.fit(train_x,train_y,validation_data=(val_x,val_y),epochs=800,batch_size=8) + print("===================Start of Finding Patterns======================") + #model.save('Final_model.h5') + start = time.time() + + model = load_model('Final_model.h5') + #print(model.evaluate(test_x, test_y)) + #print(test_x.shape, test_x[0]) + # data_train = np.load('INoutput_data_val.npy') + # data_tr = data_train.reshape(-1, 100) + # print(data_tr.shape) + #pred = model.predict(test_x) + #pred = np.round(pred) + #print(pred[0], len(pred), len(pred[0])) + # print( 900 % 100) + data_train = np.load('INoutput_data_val.npy') + print("data",data_train[1]) + #data_train = np.append(data_train, -500) + #print(data_train, data_train.shape) + data_tr = data_train.reshape(-1, 100) + #print(data_tr[28]) + #print(data_tr.shape) + pred = model.predict(data_tr) + pred = np.round(pred) + print("pred",pred) + #for i in range(len(pred)): + # print(pred[i], np.count_nonzero(pred[i])) + # print("data_train", type(data_tr), data_train.shape, data_tr[0].shape) # ,data_train,data_train[1]) + """ + tab = [] + start = time.time() + for i in range(len(data_tr)): + # tab.append(data_tr[i]) + # print(data_tr[i].shape) + pred = model.predict(data_tr[i])[0] + pred = np.round(pred) + if pred == 1: + print("pred : ", i, pred) + # print(len(tab)) + + if len(tab) == 100: + tab = np.asarray(tab) + #print("data ",i,tab.shape) + tab = np.expand_dims(tab,axis=0) + pred = model.predict(tab)[0] + #print("pred", pred[24],tab[0,24]) + pred = np.round(pred) + result = np.where(pred == 1) + print("pred 2", result[0]+(i-99),len(result[0])) + tab = [] + """ + end = time.time() + print("===================End of Finding Patterns======================") + + print("Time", end - start) + + diff --git a/transformation_clus.py b/transformation_clus.py new file mode 100644 index 0000000000000000000000000000000000000000..1ba93dcf10410e0bf6393fcadebe498cbe515a54 --- /dev/null +++ b/transformation_clus.py @@ -0,0 +1,119 @@ +import networkx as nx +import matplotlib.pyplot as plt +import numpy as np +import copy +from networkx.algorithms import clique +import time +f = open("C:/Users/LENOVO/Desktop/karate.edgelist", "r") + +""" +x = [[2,7,10,19,30,42,47,53,61],[1,5,6,9,13,17,22,25,26,27,31,32,41,48,54,56,57,60],[3,8,28,36,39,59],[12,14,16,20,33,34,37,38,40,43,44,46,49,50,52,58]] +for i in x: + for j in i: + for k in i: + if j < k: + print("x[",j,",",k,"] <- NA") + +f = open("C:/Users/LENOVO/Desktop/karate.edgelist", "r") +G = nx.read_edgelist(f,nodetype=int) +x = [] +Y = [] +for i in range(len(G.nodes)): + x.append(list(G.neighbors(i))) + Y.append(i) + #print(i,list(G.neighbors(i))) +print(x) +c = [] +for i in range(len(x)): + c = [] + for j in x[i]: + if j > i: + c.append(j) + x[i] = c +print(x) +for i in range(len(x)): + for j in range(len(x)): + v = [] + t = 0 + if len(x[i]) > len(x[j]): + #print(x[i],x[j]) + v.append(x[i]) + t = Y[i] + x[i] = x[j] + x[j] = v[0] + Y[i] = Y [j] + Y[j] = t + #print(x[i], x[j]) +print(x) +print(Y,len(Y)) +for i in x: + for j in range(len(i)): + i[j] = i[j] + 1 +print(x) + +R = np.zeros(len(Y)) +for i in range(len(R)): + for j in x: + if i + 1 in j: + R[i] = R[i] + 1 +print(R,len(R)) +print(len(G.edges)) +P =[] +for i in range(len(Y)): + for j in x: + if i+1 in j: + j[j.index(i+1)] = Y[i] + print("index ",i+1,j) +for i in range(len(Y)): + for j in x[i]: + print("x[",i+1,",",j,"] <- NA") +""" + +f1 = open("C:/Users/LENOVO/Desktop/o.txt","r") + +paragraph = f1.readlines() +print("hna") +r = [] +x = [] +for line in paragraph: + #f1.write(line.strip()+",1\n") + tmp = line.strip().split(' ') + x.append(tmp[1]) + if int(tmp[1]) not in r: + r.append(int(tmp[1])) + #print(tmp[0]) + #print(tmp[1]) + #x = [] + #x.append(int(tmp[0])) + #x.append(int(tmp[1])) + #if tmp[0] != tmp[1] and sorted(x) not in r: + #r.append(sorted(x)) +print(r,len(x)) +# f1.write(str(int(tmp[0]))+","+str(int(tmp[1]))+"\n") +p = [] +for i in range(len(x)): + p.append(i) +Y = [] +for i in range(len(set(x))): + Y.append(i) +print(Y) +fo = open("example1.model", "w") +strin = "{\"n_elements\": " + str(len(x)) + ", \"n_clusters\": " + str(len(set(x))) + ", \"elements\": " + str(p) + ", \"clusters\": " + str(Y) +strin = strin + ", \"elm2clu_dict\": {" +for i in range(len(x)): + strin = strin + "\"" + str(i) + "\"" + ": [" + str(x[i]) + "]," +strin = strin[:-1] + "}, \"clu2elm_dict\": {" +O = [] +print("fffff",len(x)) +for i in Y: + indices = [] + + for j in range(len(x)): + if int(x[j]) == i+1: + indices.append(j) + O.append(len(indices)) + print("oooooooooo",O) + strin = strin + "\"" + str(i+1) + "\": " + str(indices) +"," +strin = strin[:-2] + "}" + ", \"hier_graph\": {\"directed\": true, \"multigraph\": false, \"graph\": {}, \"nodes\":[],\"links\": []}, \"clu_size_seq\": "+ str(O) +", \"is_disjoint\": true,\"is_hierarchical\": false, \"hierclusdict\": null}" +fo.write(strin + "\n") +fo.close() diff --git a/transformed_0.npy b/transformed_0.npy new file mode 100644 index 0000000000000000000000000000000000000000..ba8651317378af0f526bd93a61b9dc3fd07a3221 Binary files /dev/null and b/transformed_0.npy differ