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/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/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