diff --git a/python/RAG_boilerplate.py b/python/RAG_boilerplate.py
new file mode 100644
index 0000000..eb460a7
--- /dev/null
+++ b/python/RAG_boilerplate.py
@@ -0,0 +1,50 @@
+from langchain_community.llms import Ollama
+from langchain_community.document_loaders import PyPDFLoader
+from langchain_community.embeddings import OllamaEmbeddings
+from langchain_community.vectorstores import FAISS
+from langchain_core.prompts import ChatPromptTemplate
+from langchain_text_splitters import RecursiveCharacterTextSplitter
+from langchain.chains.combine_documents import create_stuff_documents_chain
+from langchain.chains import create_retrieval_chain
+
+def create_RAG_model(input_file, llm):
+ # Create the LLM (Large Language Model)
+ llm = Ollama(model="dolphin-phi")
+ # Define model used to embed the info
+ embeddings = OllamaEmbeddings(model="nomic-embed-text")
+ # Load the PDF
+ loader = PyPDFLoader(input_file)
+ doc = loader.load()
+ # Split the text and embed it into the vector DB
+ text_splitter = RecursiveCharacterTextSplitter()
+ split = text_splitter.split_documents(doc)
+ vector_store = FAISS.from_documents(split, embeddings)
+
+
+ # Prompt generation: Giving the LLM character and purpose
+ prompt = ChatPromptTemplate.from_template(
+ """
+ Answer the following questions only based on the given context
+
+
+ {context}
+
+
+ Question: {input}
+ """
+ )
+ # Linking the LLM, vector DB and the prompt
+ docs_chain = create_stuff_documents_chain(llm, prompt)
+ retriever = vector_store.as_retriever()
+ retrieval_chain = create_retrieval_chain(retriever, docs_chain)
+ return retrieval_chain
+
+# Using the retrieval chain
+# Example:
+
+'''
+chain = create_RAG_model("your_file_here.pdf", "mistral")
+output = chain.invoke({"input":"What is the purpose of RAG?"})
+print(output["answer"])
+'''
+
diff --git a/python/WikiLLM.py b/python/WikiLLM.py
new file mode 100644
index 0000000..255745f
--- /dev/null
+++ b/python/WikiLLM.py
@@ -0,0 +1,69 @@
+from langchain_community.llms import Ollama
+from langchain_community.document_loaders import WebBaseLoader
+from langchain_community.embeddings import OllamaEmbeddings
+from langchain_community.vectorstores import FAISS
+from langchain_core.prompts import ChatPromptTemplate
+from langchain_text_splitters import RecursiveCharacterTextSplitter
+from langchain.chains.combine_documents import create_stuff_documents_chain
+from langchain.chains import create_retrieval_chain
+import wikipedia as wiki
+import os
+
+# NOTE: The following function is a RAG template written by me and wasn't copied from anywhere
+def create_RAG_model(url, llm):
+ # Create the LLM (Large Language Model)
+ llm = Ollama(model=str(llm))
+ # Define model used to embed the info
+ embeddings = OllamaEmbeddings(model="nomic-embed-text")
+ # Load the webpage
+ loader = WebBaseLoader(str(url))
+ webpage = loader.load()
+ # Split the text and embed it into the vector DB
+ text_splitter = RecursiveCharacterTextSplitter()
+ split = text_splitter.split_documents(webpage)
+ if (os.path.exists("wiki_index")):
+ vector_store = FAISS.load_local("wiki_index", allow_dangerous_deserialization=True, embeddings=embeddings)
+ vector_store = vector_store.from_documents(split, embeddings)
+ else:
+ vector_store = FAISS.from_documents(split, embeddings)
+ print("[+] Finished embedding!")
+ vector_store.save_local("wiki_index")
+
+ # Prompt generation: Giving the LLM character and purpose
+ prompt = ChatPromptTemplate.from_template(
+ """
+ Answer the following questions only based on the given context
+
+
+ {context}
+
+
+ Question: {input}
+ """
+ )
+ # Linking the LLM, vector DB and the prompt
+ docs_chain = create_stuff_documents_chain(llm, prompt)
+ retriever = vector_store.as_retriever()
+ retrieval_chain = create_retrieval_chain(retriever, docs_chain)
+ return retrieval_chain
+
+number = int(input("Do you want me to:\n 1) Learn from a single article \n 2) Learn from articles of a given topic\n :"))
+if (number == 2):
+ topic = input("What topic to do you want me to learn?: ")
+ results = wiki.search(topic)
+ for result in results:
+ wiki_url = str("https://en.wikipedia.org/wiki/"+str(result)).replace(' ','_')
+ chain = create_RAG_model(wiki_url, "dolphin-phi")
+elif (number == 1):
+ wiki_url = input("Give me the URL of the article: ")
+ chain = create_RAG_model(wiki_url, "dolphin-phi")
+
+print("Type 'exit' to exit")
+
+while True:
+ query = input("Ask me a question: ")
+ if (query == "exit"):
+ break
+ else:
+ output = chain.invoke({"input":query})
+ print(output["answer"])
diff --git a/python/Wikipedia_bot.py b/python/Wikipedia_bot.py
new file mode 100644
index 0000000..2e3839d
--- /dev/null
+++ b/python/Wikipedia_bot.py
@@ -0,0 +1,19 @@
+import wikipedia as wiki # Import the library
+
+topic = input("Please enter the topic: ")
+results = wiki.search(topic) # Search for related articles
+print("[+] Found", len(results), "entries!")
+print("Select the article: ")
+for index, value in enumerate(results): # Give the user an opportunity to choose between the articles
+ print(str(index)+ ")"+" "+str(value))
+
+print("\n")
+article = int(input())
+try: # Try retrieving info from the Wiki page
+ page = wiki.page(results[article])
+ print(str(page.title).center(1000))
+ print(page.url)
+ print(wiki.summary(results[article], sentences=1))
+except DisambiguationError as e: # Workaround for the disambiguation error
+ print("[-] An error occured!")
+ print("URL: "+"https://en.wikipedia.org/wiki/"+str(results[article]).replace(' ', '_'))
\ No newline at end of file
diff --git a/python/anti-malware.py b/python/anti-malware.py
new file mode 100644
index 0000000..af8f53a
--- /dev/null
+++ b/python/anti-malware.py
@@ -0,0 +1,241 @@
+#################################################################################
+### Author: Pyerie #
+### Application: A not-so-accurate ML based anti-malware solution #
+#################################################################################
+
+print("[+] Loading.... ")
+import customtkinter
+from tkinter.filedialog import *
+from tkinter import *
+import pefile
+import numpy as np
+import pandas as pd
+from sklearn.tree import DecisionTreeClassifier
+from sklearn.model_selection import train_test_split
+from sklearn import metrics
+import os
+
+
+
+dataset = pd.read_csv('database3.csv')
+X = dataset.drop(['legitimate'],axis=1).values
+
+y = dataset['legitimate'].values
+
+
+
+X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=1)
+clf = DecisionTreeClassifier()
+
+
+y_test = y_test.reshape(-1,1)
+for i in range(0, 10):
+ clf = clf.fit(X_train,y_train)
+res1 = clf.predict(X_test)
+accuracy = metrics.accuracy_score(y_test, res1)
+accuracy = str(accuracy)[2:4] + "%"
+print("Accuracy: "+accuracy)
+
+
+customtkinter.set_appearance_mode("dark")
+customtkinter.set_default_color_theme("dark-blue")
+
+
+window = Tk()
+screen_width = window.winfo_screenwidth()
+screen_height = window.winfo_screenheight()
+window.geometry(str(screen_width)+"x"+str(screen_height))
+window.title("eSuraksha")
+window['bg'] = "#121212"
+def extract_features(file):
+ features = []
+
+
+
+ try:
+
+ pe_obj = pefile.PE(file, fast_load=True)
+ except pefile.PEFormatError as error:
+ print("Not PE file!")
+
+ features.append(pe_obj.OPTIONAL_HEADER.DATA_DIRECTORY[6].Size)
+ features.append(pe_obj.OPTIONAL_HEADER.DATA_DIRECTORY[6].VirtualAddress)
+ features.append(pe_obj.OPTIONAL_HEADER.MajorImageVersion)
+ features.append(pe_obj.OPTIONAL_HEADER.MajorOperatingSystemVersion)
+ features.append(pe_obj.OPTIONAL_HEADER.DATA_DIRECTORY[0].VirtualAddress)
+ features.append(pe_obj.OPTIONAL_HEADER.DATA_DIRECTORY[0].Size)
+ try:
+ features.append(pe_obj.OPTIONAL_HEADER.DATA_DIRECTORY[12].VirtualAddress)
+ except:
+ features.append(0)
+ features.append(pe_obj.OPTIONAL_HEADER.DATA_DIRECTORY[2].Size)
+ features.append(pe_obj.OPTIONAL_HEADER.MajorLinkerVersion)
+ features.append(pe_obj.FILE_HEADER.NumberOfSections)
+ features.append(pe_obj.OPTIONAL_HEADER.SizeOfStackReserve)
+ features.append(pe_obj.OPTIONAL_HEADER.DllCharacteristics)
+ features.append(pe_obj.OPTIONAL_HEADER.AddressOfEntryPoint)
+ features.append(pe_obj.OPTIONAL_HEADER.ImageBase)
+
+
+
+
+
+
+ return features
+
+toplevel_created = False
+
+toplevel2_created = False
+
+def single_file():
+
+ global toplevel_created
+ global toplevel2_created
+ global single_file_top
+ if toplevel_created == "True":
+ single_file_top.destroy()
+ toplevel_created = "False"
+ elif toplevel_created == "False":
+ pass
+
+ if toplevel2_created == "True":
+ many_files.destroy()
+ toplevel2_created = "False"
+ elif toplevel2_created == "False":
+ pass
+
+ single_file_top = Toplevel(window)
+ single_file_top.geometry("350x200")
+ customtkinter.set_appearance_mode("dark")
+ customtkinter.set_default_color_theme("dark-blue")
+ single_file_top['bg'] = "#121212"
+ single_file_top.title("Scan a single file")
+ toplevel_created = "True"
+ result = customtkinter.CTkLabel(single_file_top, text="Loading...")
+ result.pack()
+
+ file_path = askopenfilename()
+ try:
+ features_extracted = extract_features(str(file_path))
+ not_pe = False
+ except UnboundLocalError as e:
+ not_pe = True
+ result.after(0, result.destroy)
+ benign_l = customtkinter.CTkLabel(single_file_top, text="Not PE file!")
+ benign_l.pack()
+ toplevel2_created = False
+
+ if not_pe != True:
+ data_of_sample = np.array(features_extracted)
+ data_of_sample = data_of_sample.reshape(1,-1)
+
+
+ prediction = clf.predict(data_of_sample)
+
+
+ if prediction == 1:
+ result.after(0, result.destroy)
+
+ malware_l = customtkinter.CTkLabel(single_file_top, fg_color="red", text="ML model detected malware!")
+ malware_l.pack()
+
+
+ elif prediction == 0:
+ result.after(0, result.destroy)
+ benign_l = customtkinter.CTkLabel(single_file_top, fg_color="green", text="No malware detected!")
+ benign_l.pack()
+
+
+def scan_many():
+
+
+ global toplevel2_created
+ global toplevel_created
+ global many_files
+
+ if toplevel2_created == "True":
+ many_files.destroy()
+ toplevel2_created = "False"
+ elif toplevel2_created == "False":
+ pass
+
+ if toplevel_created == "True":
+ single_file_top.destroy()
+ toplevel_created = "False"
+ elif toplevel_created == "False":
+ pass
+
+ many_files = Toplevel(window)
+ many_files.geometry("350x200")
+ customtkinter.set_appearance_mode("dark")
+ customtkinter.set_default_color_theme("dark-blue")
+ many_files['bg'] = "#121212"
+ many_files.title("Scan a directory")
+ toplevel2_created = "True"
+ result2 = customtkinter.CTkLabel(many_files, text="Loading...")
+ result2.pack()
+ malware_many = []
+ directory = askdirectory()
+ global extracted
+ for root, directory, files in os.walk(str(directory)):
+ for name_of_file in files:
+ path = os.path.join(str(root),str(name_of_file))
+
+ formats_of_pe = [".acm" , ".ax" , ".cpl" , ".dll" , ".drv" , ".efi" , ".exe" , ".mui" , ".ocx" , ".scr" , ".sys" , ".tsp", ".bin"]
+ for format_i in formats_of_pe:
+ if name_of_file.endswith(format_i) == True:
+
+ extracted = 1
+ try:
+
+ features_of_many = extract_features(str(path))
+ except UnboundLocalError as e:
+ pass
+ break
+
+ else:
+ extracted = 0
+
+
+
+ if extracted == 1:
+ data_for_many = np.array(features_of_many)
+ data_for_many = data_for_many.reshape(1,-1)
+
+ prediction_for_many = clf.predict(data_for_many)
+
+
+ if prediction_for_many == 1:
+ malware_many.append(str(path))
+
+
+ if len(malware_many) != 0:
+ result2.after(0, result2.destroy)
+ malware_label2 = customtkinter.CTkLabel(many_files,text="Malware found: ")
+ malware_label2.pack()
+ malware_text_box = customtkinter.CTkTextbox(many_files)
+ for_text_box = ''
+
+ for name_of_malware in malware_many:
+ for_text_box += "".join([name_of_malware, '\n------------------------------------------'])
+
+
+
+ malware_text_box.insert('0.0',for_text_box)
+ malware_text_box.configure(state="disabled")
+ malware_text_box.pack()
+
+
+
+
+ elif len(malware_many) == 0:
+ result2.after(0, result2.destroy)
+ benign_label = customtkinter.CTkLabel(many_files,text="No malware found!")
+ benign_label.pack()
+
+button1 = customtkinter.CTkButton(master=window, command=single_file,text="Scan a single file")
+button1.pack()
+button2 = customtkinter.CTkButton(master=window, command=scan_many, text="Scan a folder")
+button2.pack()
+
+window.mainloop()
\ No newline at end of file
diff --git a/python/database3.csv b/python/database3.csv
new file mode 100755
index 0000000..b0148da
--- /dev/null
+++ b/python/database3.csv
@@ -0,0 +1,639 @@
+debug_size,debug_RVA,image_version,os_version,export_RVA,export_size,IATRVA,res_size,linker_version,number_of_sections,stack_reserve_size,dll,address_of_entrypoint,image_base,legitimate
+0,0,0,4,0,0,0,0,5,3,1048576,0,4096,142606336,1
+0,0,0,4,0,0,0,1504,11,3,4194304,34112,0,5368709120,1
+0,0,0,4,0,0,0,1504,11,3,4194304,34112,0,5368709120,1
+0,0,0,4,0,0,0,1512,8,3,4194304,34112,0,4194304,1
+0,0,0,4,0,0,0,1512,8,3,4194304,34112,0,4194304,1
+0,0,0,4,0,0,0,156,6,3,1048576,0,129744,4194304,1
+0,0,0,4,0,0,0,163500,2,8,1048576,0,361688,4194304,1
+0,0,0,4,0,0,0,202776,8,4,1048576,1536,83152,4194304,1
+0,0,0,4,0,0,0,202776,8,4,1048576,1536,83152,4194304,1
+0,0,0,4,0,0,0,232,8,3,1048576,1536,75280,4194304,1
+0,0,0,4,0,0,0,232,8,3,1048576,1536,75280,4194304,1
+0,0,0,4,0,0,0,33908,2,10,1048576,0,794730,4194304,1
+0,0,0,4,0,0,0,371784,6,3,1048576,34112,0,4194304,1
+0,0,0,4,0,0,0,5120,2,8,1048576,0,32996,4194304,1
+0,0,0,4,0,0,0,5120,2,8,1048576,0,32996,4194304,1
+0,0,0,4,0,0,0,552,8,4,1048576,1536,42288,4194304,1
+0,0,0,4,0,0,168460,0,2,17,2097152,352,5376,4194304,1
+0,0,0,4,0,0,168460,0,2,17,2097152,352,5376,4194304,1
+0,0,0,4,0,0,24576,467844,6,4,1048576,0,21247,4194304,1
+0,0,0,4,0,0,24576,467844,6,4,1048576,0,21247,4194304,1
+0,0,0,4,0,0,24576,87868,7,4,1048576,0,5467,4194304,1
+0,0,0,4,0,0,24576,87868,7,4,1048576,0,5467,4194304,1
+0,0,0,4,0,0,28672,0,6,3,1048576,0,10124,4194304,1
+0,0,0,4,0,0,32784,2400,5,4,1048576,0,16896,4194304,1
+0,0,0,4,0,0,32784,2400,5,4,1048576,0,16896,4194304,1
+0,0,0,4,0,0,335872,1512,8,5,1048576,34112,335882,4194304,1
+0,0,0,4,0,0,335872,1512,8,5,1048576,34112,335882,4194304,1
+0,0,0,4,0,0,4096,29980,8,4,1048576,1024,15088,4194304,1
+0,0,0,4,0,0,4096,29980,8,4,1048576,1024,15088,4194304,1
+0,0,0,4,0,0,4096,48367,6,3,1048576,0,4524,4194304,1
+0,0,0,4,0,0,4096,48367,6,3,1048576,0,4524,4194304,1
+0,0,0,4,0,0,40960,3515476,6,4,1048576,0,39446,4194304,1
+0,0,0,4,0,0,5308416,1520,8,5,1048576,34112,5308426,4194304,1
+0,0,0,4,0,0,5308416,1520,8,5,1048576,34112,5308426,4194304,1
+0,0,0,4,0,0,8192,1544,48,3,1048576,34144,11014,4194304,0
+0,0,0,4,0,0,8192,1792,8,3,1048576,34112,391150,4194304,1
+0,0,0,4,0,0,8192,1792,8,3,1048576,34112,391150,4194304,1
+0,0,0,4,0,0,8192,24192,11,3,1048576,34112,443086,4194304,1
+0,0,0,4,0,0,8192,36168,5,5,1048576,0,4096,4194304,1
+0,0,0,4,0,0,8192,36168,5,5,1048576,0,4096,4194304,1
+0,0,0,4,0,0,8192,39758,48,3,1048576,34112,143694,4194304,1
+0,0,0,4,0,0,8192,44240,48,3,1048576,34144,2160194,4194304,0
+0,0,0,4,0,0,8192,796,6,4,1048576,34112,1520718,4194304,1
+0,0,0,4,0,0,90112,1504,11,5,1048576,34112,90122,4194304,1
+0,0,0,4,121319424,6601,121334772,392,2,13,2097152,352,5344,5368709120,0
+0,0,0,4,12880,405,12288,0,6,4,1048576,0,8369,268435456,1
+0,0,0,4,12880,405,12288,0,6,4,1048576,0,8369,268435456,1
+0,0,0,4,13888,128,12288,0,8,5,1048576,0,10560,268435456,1
+0,0,0,4,13888,128,12288,0,8,5,1048576,0,10560,268435456,1
+0,0,0,4,1433600,181,0,105472,5,8,1048576,0,5136,4194304,1
+0,0,0,4,1433600,181,0,105472,5,8,1048576,0,5136,4194304,1
+0,0,0,4,16576,240,16384,15568,6,5,1048576,0,13088,268435456,1
+0,0,0,4,16576,240,16384,15568,6,5,1048576,0,13088,268435456,1
+0,0,0,4,16576,248,16384,18472,6,5,1048576,0,13104,268435456,1
+0,0,0,4,16576,248,16384,18472,6,5,1048576,0,13104,268435456,1
+0,0,0,4,211136,1458,184320,0,8,4,1048576,0,8390,536870912,1
+0,0,0,4,23248,85,20480,0,7,4,1048576,0,16837,268435456,1
+0,0,0,4,23248,85,20480,0,7,4,1048576,0,16837,268435456,1
+0,0,0,4,28000,96,24576,0,6,4,1048576,0,21066,268435456,1
+0,0,0,4,28000,96,24576,0,6,4,1048576,0,21066,268435456,1
+0,0,0,4,398336,1452,344064,0,8,5,1048576,0,247712,536870912,1
+0,0,0,4,398336,1452,344064,0,8,5,1048576,0,247712,536870912,1
+0,0,0,4,47696,130,45056,0,8,4,1048576,0,43951,268435456,1
+0,0,0,4,74624,121,61440,0,8,5,1048576,0,13664,1342177280,1
+0,0,0,4,74624,121,61440,0,8,5,1048576,0,13664,1342177280,1
+0,0,0,4,9088,123,8192,0,8,4,1048576,1024,7941,1342177280,1
+0,0,0,5,0,0,0,0,10,3,1048576,33024,414720,4194304,1
+0,0,0,5,0,0,0,0,10,3,1048576,33024,414720,4194304,1
+0,0,0,5,0,0,0,1324,10,3,1048576,33088,924368,4194304,1
+0,0,0,5,0,0,0,1324,10,3,1048576,33088,924368,4194304,1
+0,0,0,5,0,0,102400,0,9,4,10000000,33088,89711,4194304,1
+0,0,0,5,0,0,102400,0,9,4,10000000,33088,89711,4194304,1
+0,0,0,5,0,0,110592,26064,9,4,1048576,32768,65089,4194304,1
+0,0,0,5,0,0,110592,26064,9,4,1048576,32768,65089,4194304,1
+0,0,0,5,0,0,114688,0,9,4,10000000,33088,104257,4194304,1
+0,0,0,5,0,0,122880,0,9,4,10000000,33088,107951,4194304,1
+0,0,0,5,0,0,122880,0,9,4,10000000,33088,107951,4194304,1
+0,0,0,5,0,0,176128,0,9,4,10000000,33088,169999,4194304,1
+0,0,0,5,0,0,176128,0,9,4,10000000,33088,169999,4194304,1
+0,0,0,5,0,0,176128,1000,10,6,1048576,33088,106848,5368709120,1
+0,0,0,5,0,0,176128,1000,10,6,1048576,33088,106848,5368709120,1
+0,0,0,5,0,0,20480,436,9,5,10000000,33088,16053,4194304,1
+0,0,0,5,0,0,20480,436,9,5,10000000,33088,16053,4194304,1
+0,0,0,5,0,0,204800,0,10,4,1048576,33088,12982,4194304,1
+0,0,0,5,0,0,27068,5352,7,4,1048576,0,5486,4194304,1
+0,0,0,5,0,0,27112,5600,9,4,2097152,0,5540,4194304,1
+0,0,0,5,0,0,28672,2816,10,4,1048576,33024,8657,4194304,1
+0,0,0,5,0,0,28672,2816,10,4,1048576,33024,8657,4194304,1
+0,0,0,5,0,0,28672,436,10,6,1048576,33088,7976,5368709120,1
+0,0,0,5,0,0,28672,436,10,6,1048576,33088,7976,5368709120,1
+0,0,0,5,0,0,28672,8076,10,4,1048576,33024,8657,4194304,1
+0,0,0,5,0,0,28672,8076,10,4,1048576,33024,8657,4194304,1
+0,0,0,5,0,0,32768,436,9,5,10000000,33088,31181,4194304,1
+0,0,0,5,0,0,339968,0,10,4,1048576,33088,59428,4194304,1
+0,0,0,5,0,0,339968,0,10,4,1048576,33088,59428,4194304,1
+0,0,0,5,0,0,36864,138500,9,4,1048576,32768,9680,4194304,1
+0,0,0,5,0,0,393316,17832,10,3,1048576,33024,393495,4194304,1
+0,0,0,5,0,0,393316,17832,10,3,1048576,33024,393495,4194304,1
+0,0,0,5,0,0,4096,18456,10,3,1048576,32768,22485,4194304,1
+0,0,0,5,0,0,462848,149002,10,5,1048576,0,316285,4194304,1
+0,0,0,5,0,0,73728,0,9,3,1048576,32768,29764,4194304,1
+0,0,0,5,0,0,73728,0,9,3,1048576,32768,29764,4194304,1
+0,0,0,5,0,0,77824,3708,9,4,1048576,32768,30134,4194304,1
+0,0,0,5,0,0,77824,3708,9,4,1048576,32768,30134,4194304,1
+0,0,0,5,0,0,81920,784,14,6,1048576,33088,11183,4194304,1
+0,0,0,5,0,0,81920,784,14,6,1048576,33088,11183,4194304,1
+0,0,0,5,0,0,81920,864,14,6,1048576,33088,11706,4194304,1
+0,0,0,5,0,0,81920,864,14,6,1048576,33088,11706,4194304,1
+0,0,0,5,0,0,90112,0,10,3,1048576,0,49257,4194304,1
+0,0,0,5,0,0,90112,0,10,3,1048576,0,49257,4194304,1
+0,0,0,5,0,0,90112,0,10,3,1048576,0,68474,4194304,1
+0,0,0,5,0,0,90112,0,10,4,1048576,320,39389,268435456,1
+0,0,0,5,0,0,90112,0,10,4,1048576,320,39389,268435456,1
+0,0,0,5,0,0,90112,436,9,5,10000000,33088,82305,4194304,1
+0,0,0,5,0,0,90112,436,9,5,10000000,33088,82305,4194304,1
+0,0,0,5,0,0,94208,0,10,3,1048576,0,42247,4194304,1
+0,0,0,5,0,0,94208,0,10,3,1048576,0,42247,4194304,1
+0,0,0,5,0,0,94208,0,10,3,1048576,0,84734,4194304,1
+0,0,0,5,0,0,98304,0,10,3,1048576,0,59417,4194304,1
+0,0,0,5,0,0,98304,0,10,3,1048576,0,59544,4194304,1
+0,0,0,5,0,0,98304,0,10,3,1048576,0,59544,4194304,1
+0,0,0,5,112064,213,90112,0,10,4,1048576,320,52370,268435456,1
+0,0,0,5,112064,213,90112,0,10,4,1048576,320,52370,268435456,1
+0,0,0,5,129392,71,98304,436,10,6,1048576,320,39544,6442450944,1
+0,0,0,5,129392,71,98304,436,10,6,1048576,320,39544,6442450944,1
+0,0,0,5,161136,7233,135168,1088,9,5,10000000,0,133948,268435456,1
+0,0,0,5,161136,7233,135168,1088,9,5,10000000,0,133948,268435456,1
+0,0,0,5,202576,1609,167936,1040,9,5,1048576,0,162866,268435456,1
+0,0,0,5,202576,1609,167936,1040,9,5,1048576,0,162866,268435456,1
+0,0,0,5,21568,218,16384,0,9,4,10000000,320,11674,268435456,1
+0,0,0,5,39760,128,32768,436,9,5,1048576,320,5793,268435456,1
+0,0,0,5,39760,128,32768,436,9,5,1048576,320,5793,268435456,1
+0,0,0,5,56352,4343,53248,0,9,4,1048576,0,49832,268435456,1
+0,0,0,5,58864,1436,40960,912,9,5,1048576,0,38872,1514930176,1
+0,0,0,5,58864,1436,40960,912,9,5,1048576,0,38872,1514930176,1
+0,0,0,5,715024,92326,552960,1088,9,5,10000000,0,548935,268435456,1
+0,0,0,5,715024,92326,552960,1088,9,5,10000000,0,548935,268435456,1
+0,0,0,5,87312,54,53248,247608,10,5,1048576,320,32057,268435456,1
+0,0,0,6,0,0,0,2064,6,3,262144,34112,100624,319815680,1
+0,0,0,6,0,0,0,2064,6,3,262144,34112,100624,319815680,1
+0,0,1,4,0,0,0,69632,2,5,327680,0,4568,4194304,1
+0,0,1,4,0,0,0,69632,2,5,327680,0,4568,4194304,1
+0,0,1,4,0,0,4096,104264,6,3,1048576,0,5420,4194304,1
+0,0,1,4,0,0,4096,104264,6,3,1048576,0,5420,4194304,1
+0,0,1,4,0,0,4096,111432,6,3,1048576,0,5420,4194304,1
+0,0,1,4,0,0,4096,111432,6,3,1048576,0,5420,4194304,1
+0,0,1,4,0,0,4096,2264,6,3,1048576,0,4596,4194304,1
+0,0,1,4,0,0,4096,2264,6,3,1048576,0,4596,4194304,1
+0,0,1,4,0,0,4096,305992,6,3,1048576,0,5420,4194304,1
+0,0,1,4,0,0,4096,305992,6,3,1048576,0,5420,4194304,1
+0,0,1,4,0,0,4096,306504,6,3,1048576,0,5420,4194304,1
+0,0,1,4,0,0,4096,306504,6,3,1048576,0,5420,4194304,1
+0,0,1,4,0,0,4096,307528,6,3,1048576,0,5420,4194304,1
+0,0,1,4,0,0,4096,307528,6,3,1048576,0,5420,4194304,1
+0,0,1,4,0,0,4096,8048,6,3,1048576,0,5168,4194304,1
+0,0,1,4,0,0,4096,8048,6,3,1048576,0,5168,4194304,1
+0,0,1,4,13488,265,12288,0,7,4,10000000,0,7832,268435456,1
+0,0,1,4,13488,265,12288,0,7,4,10000000,0,7832,268435456,1
+0,0,1,4,15312,71,12288,0,7,4,1048576,0,8804,268435456,1
+0,0,1,4,15312,71,12288,0,7,4,1048576,0,8804,268435456,1
+0,0,1,4,43488,6680,40960,0,7,4,1048576,0,40195,268435456,1
+0,0,1,4,43488,6680,40960,0,7,4,1048576,0,40195,268435456,1
+0,0,1,4,56272,6927,53248,0,7,4,10000000,0,50056,268435456,1
+0,0,1,4,79024,16065,73728,0,7,4,10000000,0,70170,268435456,1
+0,0,1,4,9088,263,8192,0,7,4,1048576,0,6183,268435456,1
+0,0,1,4,9088,263,8192,0,7,4,1048576,0,6183,268435456,1
+0,0,1,4,929792,370,0,0,2,7,2097152,0,4192,1711276032,1
+0,0,1,4,929792,370,0,0,2,7,2097152,0,4192,1711276032,1
+0,0,1,4,9424,666,8192,0,7,4,1048576,0,5902,268435456,1
+0,0,1,4,9424,666,8192,0,7,4,1048576,0,5902,268435456,1
+0,0,1,5,0,0,16384,110413,10,5,1048576,33088,8992,4194304,1
+0,0,1,5,0,0,24576,0,12,4,1048576,33024,5049,4194304,1
+0,0,1,5,104128,59,98304,0,9,4,10000000,320,92784,268435456,1
+0,0,1,5,118544,212,102400,0,9,4,10000000,320,90040,268435456,1
+0,0,1,5,118544,212,102400,0,9,4,10000000,320,90040,268435456,1
+0,0,1,5,129136,59,118784,0,9,5,10000000,320,114964,6442450944,1
+0,0,1,5,129136,59,118784,0,9,5,10000000,320,114964,6442450944,1
+0,0,1,5,131056,75,114688,0,9,4,10000000,320,107077,268435456,1
+0,0,1,5,131056,75,114688,0,9,4,10000000,320,107077,268435456,1
+0,0,1,5,13696,247,12288,436,9,5,10000000,320,7470,268435456,1
+0,0,1,5,13696,247,12288,436,9,5,10000000,320,7470,268435456,1
+0,0,1,5,14368,962,12288,0,9,4,10000000,320,7461,268435456,1
+0,0,1,5,145792,212,122880,0,9,4,10000000,320,108280,268435456,1
+0,0,1,5,145792,212,122880,0,9,4,10000000,320,108280,268435456,1
+0,0,1,5,16048,217,12288,0,9,4,10000000,320,10234,268435456,1
+0,0,1,5,16048,217,12288,0,9,4,10000000,320,10234,268435456,1
+0,0,1,5,161648,75,139264,0,9,5,10000000,320,131988,6442450944,1
+0,0,1,5,161648,75,139264,0,9,5,10000000,320,131988,6442450944,1
+0,0,1,5,17552,1186,16384,0,9,4,10000000,320,14078,268435456,1
+0,0,1,5,247232,1775,229376,0,9,4,10000000,320,220208,268435456,1
+0,0,1,5,247232,1775,229376,0,9,4,10000000,320,220208,268435456,1
+0,0,1,5,27616,116,24576,436,9,5,10000000,320,20148,268435456,1
+0,0,1,5,27616,116,24576,436,9,5,10000000,320,20148,268435456,1
+0,0,1,5,30928,2314,28672,0,9,4,10000000,320,25856,268435456,1
+0,0,1,5,30928,2314,28672,0,9,4,10000000,320,25856,268435456,1
+0,0,10,10,0,0,0,2336,5,3,1048576,0,87536,4194304,1
+0,0,10,10,0,0,0,2336,5,3,1048576,0,87536,4194304,1
+0,0,2,4,206848,15373,200704,0,7,4,10000000,0,197109,268435456,1
+0,0,2,4,241408,15431,221184,0,7,4,1048576,0,219149,268435456,1
+0,0,2,4,241408,15431,221184,0,7,4,1048576,0,219149,268435456,1
+0,0,2,4,35184,1232,32768,0,7,4,10000000,0,29044,268435456,1
+0,0,2,4,35184,1232,32768,0,7,4,10000000,0,29044,268435456,1
+0,0,2,4,39984,1188,36864,0,7,4,1048576,0,33163,268435456,1
+0,0,2,4,39984,1188,36864,0,7,4,1048576,0,33163,268435456,1
+0,0,2,4,9120,151,8192,0,7,4,1048576,0,5493,268435456,1
+0,0,2,4,9312,309,8192,0,7,4,1048576,0,5843,268435456,1
+0,0,2,4,9312,309,8192,0,7,4,1048576,0,5843,268435456,1
+0,0,2,5,13680,329,12288,0,9,4,10000000,320,7258,268435456,1
+0,0,2,5,13680,329,12288,0,9,4,10000000,320,7258,268435456,1
+0,0,2,5,16016,191,12288,0,9,4,10000000,320,10058,268435456,1
+0,0,2,5,16016,191,12288,0,9,4,10000000,320,10058,268435456,1
+0,0,2,5,52304,8652,49152,0,9,4,10000000,320,44646,268435456,1
+0,0,2,5,52304,8652,49152,0,9,4,10000000,320,44646,268435456,1
+0,0,2,5,745296,50343,606208,0,9,4,10000000,0,598258,268435456,1
+0,0,2,5,745296,50343,606208,0,9,4,10000000,0,598258,268435456,1
+0,0,2,5,79616,19797,73728,0,9,4,10000000,320,71941,268435456,1
+0,0,2,5,79616,19797,73728,0,9,4,10000000,320,71941,268435456,1
+0,0,2,5,9504,175,8192,0,9,4,10000000,320,7066,268435456,1
+0,0,3,4,0,0,4096,123832,6,3,1048576,0,4640,4194304,1
+0,0,3,4,0,0,4096,123832,6,3,1048576,0,4640,4194304,1
+0,0,3,5,13472,164,12288,436,9,5,10000000,320,8894,268435456,1
+0,0,3,5,13472,164,12288,436,9,5,10000000,320,8894,268435456,1
+0,0,3,5,213056,19079,208896,0,9,4,10000000,320,206398,268435456,1
+0,0,3,5,31328,1351,28672,0,9,4,10000000,320,24640,268435456,1
+0,0,3,5,31328,1351,28672,0,9,4,10000000,320,24640,268435456,1
+0,0,4,5,25792,206,24576,0,9,4,10000000,320,21620,268435456,1
+0,0,4,5,25792,206,24576,0,9,4,10000000,320,21620,268435456,1
+0,0,5,4,0,0,0,0,7,3,1048576,0,93712,268435456,1
+0,0,5,4,0,0,0,0,7,3,1048576,0,93712,268435456,1
+0,0,5,5,0,0,0,82356,2,9,1048576,0,4096,4194304,1
+0,0,5,5,0,0,1024,0,7,3,262144,0,24070,65536,1
+0,0,5,5,0,0,1024,0,7,3,262144,0,24070,65536,1
+0,0,5,5,0,0,9856,0,7,5,262144,0,9616,65536,1
+0,0,6,4,0,0,28672,15144,6,5,1048576,32768,12538,4194304,1
+0,0,6,4,0,0,28672,2528,6,5,1048576,32768,12538,4194304,1
+0,0,6,4,0,0,28672,27496,6,5,1048576,34112,12505,4194304,0
+0,0,6,4,0,0,28672,97856,6,5,1048576,32768,12577,4194304,1
+0,0,6,4,0,0,28672,97856,6,5,1048576,32768,12577,4194304,1
+0,0,6,4,0,0,32768,35448,6,5,1048576,34112,13888,4194304,0
+0,0,6,5,0,0,103172,328448,2,8,1048576,33088,71708,4194304,0
+0,0,6,5,0,0,36864,281464,10,6,1048576,34112,14864,4194304,0
+0,0,6,6,0,0,0,0,9,7,262144,34112,7168,319815680,1
+0,0,6,6,0,0,0,0,9,7,262144,34112,7168,319815680,1
+0,0,6,6,0,0,13184,904,8,6,262144,0,1392,65536,1
+0,0,6,6,0,0,13184,904,8,6,262144,0,1392,65536,1
+0,0,6,6,802816,154,795380,69632,2,10,1048576,33088,745196,4194304,0
+0,0,7,9,0,0,182536,2232,8,3,1048576,0,176352,4194304,1
+0,0,7,9,0,0,182536,2232,8,3,1048576,0,176352,4194304,1
+0,0,8,4,0,0,4096,17126,6,3,1048576,0,4532,4194304,1
+0,0,8,4,0,0,4096,17126,6,3,1048576,0,4532,4194304,1
+0,0,8,5,10064,129,8192,0,9,4,10000000,320,6750,268435456,1
+0,0,8,5,10064,129,8192,0,9,4,10000000,320,6750,268435456,1
+0,0,8,5,147136,721,81920,0,9,4,10000000,320,77302,268435456,1
+0,0,8,5,147136,721,81920,0,9,4,10000000,320,77302,268435456,1
+0,0,8,5,24816,10332,20480,0,9,4,10000000,320,15934,268435456,1
+0,0,8,5,24816,10332,20480,0,9,4,10000000,320,15934,268435456,1
+0,0,9,4,0,0,4096,37956,6,3,1048576,0,4680,4194304,1
+0,0,9,4,0,0,4096,37956,6,3,1048576,0,4680,4194304,1
+0,485207007,0,4,0,0,0,98,76,3,1048576,0,4120,4194304,1
+112,100480,0,6,0,0,69632,480,14,6,1048576,33120,12256,5368709120,1
+112,100480,0,6,0,0,69632,480,14,6,1048576,33120,12256,5368709120,1
+112,258400,0,6,0,0,208896,480,14,6,1048576,33120,14624,5368709120,1
+112,291328,0,6,0,0,233472,480,14,5,1048576,33088,24460,4194304,1
+28,104544,0,6,0,0,81920,0,14,5,1048576,33088,11344,4194304,1
+28,104544,0,6,0,0,81920,0,14,5,1048576,33088,11344,4194304,1
+28,107104,0,4,0,0,107088,1510,8,3,1048576,34112,107074,4194304,1
+28,107104,0,4,0,0,107088,1510,8,3,1048576,34112,107074,4194304,1
+28,107176,0,4,0,0,107160,1510,8,3,1048576,34112,107146,4194304,1
+28,107176,0,4,0,0,107160,1510,8,3,1048576,34112,107146,4194304,1
+28,114296,0,4,0,0,114288,1510,8,3,1048576,34112,114274,4194304,1
+28,114296,0,4,0,0,114288,1510,8,3,1048576,34112,114274,4194304,1
+28,114368,0,4,0,0,114360,1510,8,3,1048576,34112,114346,4194304,1
+28,114368,0,4,0,0,114360,1510,8,3,1048576,34112,114346,4194304,1
+28,13164,0,4,0,0,8192,1512,11,3,1048576,34112,13566,4194304,1
+28,13164,0,4,0,0,8192,1512,11,3,1048576,34112,13566,4194304,1
+28,175552,0,5,0,0,135168,104672,14,6,1048576,33088,30362,4194304,1
+28,175552,0,5,0,0,135168,104672,14,6,1048576,33088,30362,4194304,1
+28,234624,0,5,0,0,172032,1508,14,7,2000000,49504,45840,5368709120,1
+28,30432,0,6,30464,56,28672,960,14,5,1048576,1280,27574,268435456,1
+28,33264,6,6,0,0,32768,0,9,6,262144,0,45156,65536,1
+28,33264,6,6,0,0,32768,0,9,6,262144,0,45156,65536,1
+28,402428,0,4,0,0,8192,28488,48,3,1048576,34144,402822,4194304,1
+28,649584,0,5,0,0,569344,149120,14,5,1048576,33088,275803,4194304,1
+28,649584,0,5,0,0,569344,149120,14,5,1048576,33088,275803,4194304,1
+28,660084,0,4,0,0,8192,21188,48,3,1048576,34112,660302,4194304,1
+28,660084,0,4,0,0,8192,21188,48,3,1048576,34112,660302,4194304,1
+28,763376,0,5,0,0,679936,149120,14,5,1048576,33088,281259,4194304,1
+28,763376,0,5,0,0,679936,149120,14,5,1048576,33088,281259,4194304,1
+28,78528,0,5,84864,51,77824,16384,9,5,1048576,34048,45804,4194304,1
+28,78528,0,5,84864,51,77824,16384,9,5,1048576,34048,45804,4194304,1
+28,81440,0,5,0,0,139264,716,8,5,1048576,1344,71440,4194304,1
+28,9588,0,4,0,0,8192,1504,48,3,1048576,34112,9982,4194304,1
+28,9588,0,4,0,0,8192,1504,48,3,1048576,34112,9982,4194304,1
+56,1081264,0,5,0,0,921600,436404,14,6,1048576,33088,548672,4194304,1
+56,109136,0,6,111840,80,86016,856,14,6,1048576,320,19001,268435456,1
+56,109136,0,6,111840,80,86016,856,14,6,1048576,320,19001,268435456,1
+56,186544,0,6,0,0,143360,480,14,7,1048576,352,38400,6442450944,1
+56,186544,0,6,0,0,143360,480,14,7,1048576,352,38400,6442450944,1
+56,2092800,0,5,0,0,2088960,176992,12,5,1048576,33088,1450535,4194304,1
+56,219384,0,6,0,0,180224,44848,14,7,1048576,49504,134464,5368709120,0
+56,242176,0,6,0,0,184320,480,14,6,1048576,320,5376,268435456,1
+56,242176,0,6,0,0,184320,480,14,6,1048576,320,5376,268435456,1
+56,245472,0,6,0,0,184320,134528,14,7,1048576,33120,39624,5368709120,1
+56,295200,0,6,0,0,225280,480,14,7,1048576,352,5296,6442450944,1
+56,295200,0,6,0,0,225280,480,14,7,1048576,352,5296,6442450944,1
+56,49520,6,6,0,0,28672,209496,14,6,1048576,33120,6264,5368709120,1
+56,49520,6,6,0,0,28672,209496,14,6,1048576,33120,6264,5368709120,1
+56,663472,0,6,0,0,540672,480,14,7,1048576,33120,349504,5368709120,1
+56,663472,0,6,0,0,540672,480,14,7,1048576,33120,349504,5368709120,1
+56,72712,0,6,74560,128,53248,480,14,5,1048576,320,6392,268435456,1
+56,80688,0,6,84064,132,61440,480,14,6,1048576,320,9740,268435456,1
+56,80688,0,6,84064,132,61440,480,14,6,1048576,320,9740,268435456,1
+56,80688,0,6,84064,132,61440,480,14,6,1048576,320,9741,268435456,1
+56,80688,0,6,84064,132,61440,480,14,6,1048576,320,9741,268435456,1
+84,240320,0,5,247856,52,208896,57400,14,6,1048576,49472,126704,4194304,1
+84,5136,10,10,0,0,40960,492840,14,5,262144,49472,27232,4194304,1
+84,622684,0,4,0,0,8192,4240,48,3,1048576,34112,629726,4194304,1
+84,663900,0,4,0,0,8192,4240,48,3,1048576,34112,670938,4194304,1
+84,689960,0,4,0,0,8192,1452,48,3,1048576,34112,716474,4194304,1
+84,859764,0,4,0,0,8192,4240,48,3,1048576,34112,866802,4194304,1
+84,87440,10,10,93856,21216,80312,1056,14,7,262144,16736,69776,6442450944,1
+84,985696,0,4,0,0,8192,205244,48,3,1048576,34112,992090,4194304,1
+0,0,0,4,0,0,8192,44240,48,3,1048576,34144,2160194,4194304,0
+0,0,0,4,0,0,8192,44240,48,3,1048576,34144,2160194,4194304,0
+0,0,0,6,0,0,0,64332,14,3,1048576,33088,330944,4194304,0
+0,0,0,4,0,0,8192,44240,48,3,1048576,34144,2160194,4194304,0
+0,0,0,6,0,0,0,64332,14,3,1048576,33088,330944,4194304,0
+84,704232,0,4,0,0,8192,1204,48,3,1048576,34144,704522,268435456,0
+0,0,0,4,0,0,8192,44240,48,3,1048576,34144,2160194,4194304,0
+0,0,0,6,0,0,0,64332,14,3,1048576,33088,330944,4194304,0
+84,704232,0,4,0,0,8192,1204,48,3,1048576,34144,704522,268435456,0
+0,0,6,5,0,0,103172,75496,2,8,1048576,33088,71644,4194304,0
+0,0,0,4,0,0,8192,44240,48,3,1048576,34144,2160194,4194304,0
+0,0,0,6,0,0,0,64332,14,3,1048576,33088,330944,4194304,0
+84,704232,0,4,0,0,8192,1204,48,3,1048576,34144,704522,268435456,0
+0,0,6,5,0,0,103172,75496,2,8,1048576,33088,71644,4194304,0
+0,0,0,4,0,0,8192,920,48,3,1048576,34144,1146110,268435456,0
+0,0,0,4,0,0,8192,44240,48,3,1048576,34144,2160194,4194304,0
+0,0,0,6,0,0,0,64332,14,3,1048576,33088,330944,4194304,0
+84,704232,0,4,0,0,8192,1204,48,3,1048576,34144,704522,268435456,0
+0,0,6,5,0,0,103172,75496,2,8,1048576,33088,71644,4194304,0
+0,0,0,4,0,0,8192,920,48,3,1048576,34144,1146110,268435456,0
+0,0,0,4,0,0,8192,932,48,3,1048576,34144,2175182,268435456,0
+0,0,0,4,0,0,8192,44240,48,3,1048576,34144,2160194,4194304,0
+0,0,0,6,0,0,0,64332,14,3,1048576,33088,330944,4194304,0
+84,704232,0,4,0,0,8192,1204,48,3,1048576,34144,704522,268435456,0
+0,0,6,5,0,0,103172,75496,2,8,1048576,33088,71644,4194304,0
+0,0,0,4,0,0,8192,920,48,3,1048576,34144,1146110,268435456,0
+0,0,0,4,0,0,8192,932,48,3,1048576,34144,2175182,268435456,0
+0,0,0,4,0,0,32768,4072,6,4,1048576,256,29252,4194304,0
+0,0,0,4,0,0,8192,44240,48,3,1048576,34144,2160194,4194304,0
+0,0,0,6,0,0,0,64332,14,3,1048576,33088,330944,4194304,0
+84,704232,0,4,0,0,8192,1204,48,3,1048576,34144,704522,268435456,0
+0,0,6,5,0,0,103172,75496,2,8,1048576,33088,71644,4194304,0
+0,0,0,4,0,0,8192,920,48,3,1048576,34144,1146110,268435456,0
+0,0,0,4,0,0,8192,932,48,3,1048576,34144,2175182,268435456,0
+0,0,0,4,0,0,32768,4072,6,4,1048576,256,29252,4194304,0
+28,108816,0,6,0,0,81920,4072,14,6,1048576,33120,39160,5368709120,0
+0,0,0,4,0,0,8192,44240,48,3,1048576,34144,2160194,4194304,0
+0,0,0,6,0,0,0,64332,14,3,1048576,33088,330944,4194304,0
+84,704232,0,4,0,0,8192,1204,48,3,1048576,34144,704522,268435456,0
+0,0,6,5,0,0,103172,75496,2,8,1048576,33088,71644,4194304,0
+0,0,0,4,0,0,8192,920,48,3,1048576,34144,1146110,268435456,0
+0,0,0,4,0,0,8192,932,48,3,1048576,34144,2175182,268435456,0
+0,0,0,4,0,0,32768,4072,6,4,1048576,256,29252,4194304,0
+28,108816,0,6,0,0,81920,4072,14,6,1048576,33120,39160,5368709120,0
+84,114032,0,4,0,0,8192,1348,48,3,1048576,34144,114318,268435456,0
+0,0,0,4,0,0,8192,44240,48,3,1048576,34144,2160194,4194304,0
+0,0,0,6,0,0,0,64332,14,3,1048576,33088,330944,4194304,0
+84,704232,0,4,0,0,8192,1204,48,3,1048576,34144,704522,268435456,0
+0,0,6,5,0,0,103172,75496,2,8,1048576,33088,71644,4194304,0
+0,0,0,4,0,0,8192,920,48,3,1048576,34144,1146110,268435456,0
+0,0,0,4,0,0,8192,932,48,3,1048576,34144,2175182,268435456,0
+0,0,0,4,0,0,32768,4072,6,4,1048576,256,29252,4194304,0
+28,108816,0,6,0,0,81920,4072,14,6,1048576,33120,39160,5368709120,0
+84,114032,0,4,0,0,8192,1348,48,3,1048576,34144,114318,268435456,0
+0,0,0,4,0,0,8192,952,48,3,1048576,34144,690138,268435456,0
+0,0,0,4,0,0,8192,44240,48,3,1048576,34144,2160194,4194304,0
+0,0,0,6,0,0,0,64332,14,3,1048576,33088,330944,4194304,0
+84,704232,0,4,0,0,8192,1204,48,3,1048576,34144,704522,268435456,0
+0,0,6,5,0,0,103172,75496,2,8,1048576,33088,71644,4194304,0
+0,0,0,4,0,0,8192,920,48,3,1048576,34144,1146110,268435456,0
+0,0,0,4,0,0,8192,932,48,3,1048576,34144,2175182,268435456,0
+0,0,0,4,0,0,32768,4072,6,4,1048576,256,29252,4194304,0
+28,108816,0,6,0,0,81920,4072,14,6,1048576,33120,39160,5368709120,0
+84,114032,0,4,0,0,8192,1348,48,3,1048576,34144,114318,268435456,0
+0,0,0,4,0,0,8192,952,48,3,1048576,34144,690138,268435456,0
+0,0,0,4,0,0,32768,4072,6,4,1048576,256,29588,4194304,0
+0,0,0,4,0,0,8192,44240,48,3,1048576,34144,2160194,4194304,0
+0,0,0,6,0,0,0,64332,14,3,1048576,33088,330944,4194304,0
+84,704232,0,4,0,0,8192,1204,48,3,1048576,34144,704522,268435456,0
+0,0,6,5,0,0,103172,75496,2,8,1048576,33088,71644,4194304,0
+0,0,0,4,0,0,8192,920,48,3,1048576,34144,1146110,268435456,0
+0,0,0,4,0,0,8192,932,48,3,1048576,34144,2175182,268435456,0
+0,0,0,4,0,0,32768,4072,6,4,1048576,256,29252,4194304,0
+28,108816,0,6,0,0,81920,4072,14,6,1048576,33120,39160,5368709120,0
+84,114032,0,4,0,0,8192,1348,48,3,1048576,34144,114318,268435456,0
+0,0,0,4,0,0,8192,952,48,3,1048576,34144,690138,268435456,0
+0,0,0,4,0,0,32768,4072,6,4,1048576,256,29588,4194304,0
+0,0,0,4,0,0,8192,924,48,3,1048576,34144,51898,268435456,0
+0,0,0,4,0,0,8192,44240,48,3,1048576,34144,2160194,4194304,0
+0,0,0,6,0,0,0,64332,14,3,1048576,33088,330944,4194304,0
+84,704232,0,4,0,0,8192,1204,48,3,1048576,34144,704522,268435456,0
+0,0,6,5,0,0,103172,75496,2,8,1048576,33088,71644,4194304,0
+0,0,0,4,0,0,8192,920,48,3,1048576,34144,1146110,268435456,0
+0,0,0,4,0,0,8192,932,48,3,1048576,34144,2175182,268435456,0
+0,0,0,4,0,0,32768,4072,6,4,1048576,256,29252,4194304,0
+28,108816,0,6,0,0,81920,4072,14,6,1048576,33120,39160,5368709120,0
+84,114032,0,4,0,0,8192,1348,48,3,1048576,34144,114318,268435456,0
+0,0,0,4,0,0,8192,952,48,3,1048576,34144,690138,268435456,0
+0,0,0,4,0,0,32768,4072,6,4,1048576,256,29588,4194304,0
+0,0,0,4,0,0,8192,924,48,3,1048576,34144,51898,268435456,0
+0,0,6,4,0,0,32768,30704,6,5,1048576,34112,13199,4194304,0
+0,0,0,4,0,0,8192,44240,48,3,1048576,34144,2160194,4194304,0
+0,0,0,6,0,0,0,64332,14,3,1048576,33088,330944,4194304,0
+84,704232,0,4,0,0,8192,1204,48,3,1048576,34144,704522,268435456,0
+0,0,6,5,0,0,103172,75496,2,8,1048576,33088,71644,4194304,0
+0,0,0,4,0,0,8192,920,48,3,1048576,34144,1146110,268435456,0
+0,0,0,4,0,0,8192,932,48,3,1048576,34144,2175182,268435456,0
+0,0,0,4,0,0,32768,4072,6,4,1048576,256,29252,4194304,0
+28,108816,0,6,0,0,81920,4072,14,6,1048576,33120,39160,5368709120,0
+84,114032,0,4,0,0,8192,1348,48,3,1048576,34144,114318,268435456,0
+0,0,0,4,0,0,8192,952,48,3,1048576,34144,690138,268435456,0
+0,0,0,4,0,0,32768,4072,6,4,1048576,256,29588,4194304,0
+0,0,0,4,0,0,8192,924,48,3,1048576,34144,51898,268435456,0
+0,0,6,4,0,0,32768,30704,6,5,1048576,34112,13199,4194304,0
+0,0,0,6,0,0,1187112,368472,14,10,1048576,33120,755732,5368709120,0
+0,0,0,4,0,0,8192,44240,48,3,1048576,34144,2160194,4194304,0
+0,0,0,6,0,0,0,64332,14,3,1048576,33088,330944,4194304,0
+84,704232,0,4,0,0,8192,1204,48,3,1048576,34144,704522,268435456,0
+0,0,6,5,0,0,103172,75496,2,8,1048576,33088,71644,4194304,0
+0,0,0,4,0,0,8192,920,48,3,1048576,34144,1146110,268435456,0
+0,0,0,4,0,0,8192,932,48,3,1048576,34144,2175182,268435456,0
+0,0,0,4,0,0,32768,4072,6,4,1048576,256,29252,4194304,0
+28,108816,0,6,0,0,81920,4072,14,6,1048576,33120,39160,5368709120,0
+84,114032,0,4,0,0,8192,1348,48,3,1048576,34144,114318,268435456,0
+0,0,0,4,0,0,8192,952,48,3,1048576,34144,690138,268435456,0
+0,0,0,4,0,0,32768,4072,6,4,1048576,256,29588,4194304,0
+0,0,0,4,0,0,8192,924,48,3,1048576,34144,51898,268435456,0
+0,0,6,4,0,0,32768,30704,6,5,1048576,34112,13199,4194304,0
+0,0,0,6,0,0,1187112,368472,14,10,1048576,33120,755732,5368709120,0
+28,445964,0,4,0,0,8192,1128,48,3,1048576,34144,446358,268435456,0
+0,0,0,4,0,0,8192,44240,48,3,1048576,34144,2160194,4194304,0
+0,0,0,6,0,0,0,64332,14,3,1048576,33088,330944,4194304,0
+84,704232,0,4,0,0,8192,1204,48,3,1048576,34144,704522,268435456,0
+0,0,6,5,0,0,103172,75496,2,8,1048576,33088,71644,4194304,0
+0,0,0,4,0,0,8192,920,48,3,1048576,34144,1146110,268435456,0
+0,0,0,4,0,0,8192,932,48,3,1048576,34144,2175182,268435456,0
+0,0,0,4,0,0,32768,4072,6,4,1048576,256,29252,4194304,0
+28,108816,0,6,0,0,81920,4072,14,6,1048576,33120,39160,5368709120,0
+84,114032,0,4,0,0,8192,1348,48,3,1048576,34144,114318,268435456,0
+0,0,0,4,0,0,8192,952,48,3,1048576,34144,690138,268435456,0
+0,0,0,4,0,0,32768,4072,6,4,1048576,256,29588,4194304,0
+0,0,0,4,0,0,8192,924,48,3,1048576,34144,51898,268435456,0
+0,0,6,4,0,0,32768,30704,6,5,1048576,34112,13199,4194304,0
+0,0,0,6,0,0,1187112,368472,14,10,1048576,33120,755732,5368709120,0
+28,445964,0,4,0,0,8192,1128,48,3,1048576,34144,446358,268435456,0
+0,0,0,6,0,0,0,64332,14,3,1048576,33088,330944,4194304,0
+0,0,0,4,0,0,8192,44240,48,3,1048576,34144,2160194,4194304,0
+0,0,0,6,0,0,0,64332,14,3,1048576,33088,330944,4194304,0
+84,704232,0,4,0,0,8192,1204,48,3,1048576,34144,704522,268435456,0
+0,0,6,5,0,0,103172,75496,2,8,1048576,33088,71644,4194304,0
+0,0,0,4,0,0,8192,920,48,3,1048576,34144,1146110,268435456,0
+0,0,0,4,0,0,8192,932,48,3,1048576,34144,2175182,268435456,0
+0,0,0,4,0,0,32768,4072,6,4,1048576,256,29252,4194304,0
+28,108816,0,6,0,0,81920,4072,14,6,1048576,33120,39160,5368709120,0
+84,114032,0,4,0,0,8192,1348,48,3,1048576,34144,114318,268435456,0
+0,0,0,4,0,0,8192,952,48,3,1048576,34144,690138,268435456,0
+0,0,0,4,0,0,32768,4072,6,4,1048576,256,29588,4194304,0
+0,0,0,4,0,0,8192,924,48,3,1048576,34144,51898,268435456,0
+0,0,6,4,0,0,32768,30704,6,5,1048576,34112,13199,4194304,0
+0,0,0,6,0,0,1187112,368472,14,10,1048576,33120,755732,5368709120,0
+28,445964,0,4,0,0,8192,1128,48,3,1048576,34144,446358,268435456,0
+0,0,0,6,0,0,0,64332,14,3,1048576,33088,330944,4194304,0
+0,0,6,4,0,0,32768,68928,6,5,1048576,34112,13199,4194304,0
+0,0,0,4,0,0,8192,44240,48,3,1048576,34144,2160194,4194304,0
+0,0,0,6,0,0,0,64332,14,3,1048576,33088,330944,4194304,0
+84,704232,0,4,0,0,8192,1204,48,3,1048576,34144,704522,268435456,0
+0,0,6,5,0,0,103172,75496,2,8,1048576,33088,71644,4194304,0
+0,0,0,4,0,0,8192,920,48,3,1048576,34144,1146110,268435456,0
+0,0,0,4,0,0,8192,932,48,3,1048576,34144,2175182,268435456,0
+0,0,0,4,0,0,32768,4072,6,4,1048576,256,29252,4194304,0
+28,108816,0,6,0,0,81920,4072,14,6,1048576,33120,39160,5368709120,0
+84,114032,0,4,0,0,8192,1348,48,3,1048576,34144,114318,268435456,0
+0,0,0,4,0,0,8192,952,48,3,1048576,34144,690138,268435456,0
+0,0,0,4,0,0,32768,4072,6,4,1048576,256,29588,4194304,0
+0,0,0,4,0,0,8192,924,48,3,1048576,34144,51898,268435456,0
+0,0,6,4,0,0,32768,30704,6,5,1048576,34112,13199,4194304,0
+0,0,0,6,0,0,1187112,368472,14,10,1048576,33120,755732,5368709120,0
+28,445964,0,4,0,0,8192,1128,48,3,1048576,34144,446358,268435456,0
+0,0,0,6,0,0,0,64332,14,3,1048576,33088,330944,4194304,0
+0,0,6,4,0,0,32768,68928,6,5,1048576,34112,13199,4194304,0
+0,0,6,5,0,0,103172,75496,2,8,1048576,33088,71644,4194304,0
+0,0,0,4,0,0,8192,44240,48,3,1048576,34144,2160194,4194304,0
+0,0,0,6,0,0,0,64332,14,3,1048576,33088,330944,4194304,0
+84,704232,0,4,0,0,8192,1204,48,3,1048576,34144,704522,268435456,0
+0,0,6,5,0,0,103172,75496,2,8,1048576,33088,71644,4194304,0
+0,0,0,4,0,0,8192,920,48,3,1048576,34144,1146110,268435456,0
+0,0,0,4,0,0,8192,932,48,3,1048576,34144,2175182,268435456,0
+0,0,0,4,0,0,32768,4072,6,4,1048576,256,29252,4194304,0
+28,108816,0,6,0,0,81920,4072,14,6,1048576,33120,39160,5368709120,0
+84,114032,0,4,0,0,8192,1348,48,3,1048576,34144,114318,268435456,0
+0,0,0,4,0,0,8192,952,48,3,1048576,34144,690138,268435456,0
+0,0,0,4,0,0,32768,4072,6,4,1048576,256,29588,4194304,0
+0,0,0,4,0,0,8192,924,48,3,1048576,34144,51898,268435456,0
+0,0,6,4,0,0,32768,30704,6,5,1048576,34112,13199,4194304,0
+0,0,0,6,0,0,1187112,368472,14,10,1048576,33120,755732,5368709120,0
+28,445964,0,4,0,0,8192,1128,48,3,1048576,34144,446358,268435456,0
+0,0,0,6,0,0,0,64332,14,3,1048576,33088,330944,4194304,0
+0,0,6,4,0,0,32768,68928,6,5,1048576,34112,13199,4194304,0
+0,0,6,5,0,0,103172,75496,2,8,1048576,33088,71644,4194304,0
+0,0,0,4,0,0,8192,956,48,3,1048576,34144,146370,268435456,0
+0,0,0,4,0,0,8192,44240,48,3,1048576,34144,2160194,4194304,0
+0,0,0,6,0,0,0,64332,14,3,1048576,33088,330944,4194304,0
+84,704232,0,4,0,0,8192,1204,48,3,1048576,34144,704522,268435456,0
+0,0,6,5,0,0,103172,75496,2,8,1048576,33088,71644,4194304,0
+0,0,0,4,0,0,8192,920,48,3,1048576,34144,1146110,268435456,0
+0,0,0,4,0,0,8192,932,48,3,1048576,34144,2175182,268435456,0
+0,0,0,4,0,0,32768,4072,6,4,1048576,256,29252,4194304,0
+28,108816,0,6,0,0,81920,4072,14,6,1048576,33120,39160,5368709120,0
+84,114032,0,4,0,0,8192,1348,48,3,1048576,34144,114318,268435456,0
+0,0,0,4,0,0,8192,952,48,3,1048576,34144,690138,268435456,0
+0,0,0,4,0,0,32768,4072,6,4,1048576,256,29588,4194304,0
+0,0,0,4,0,0,8192,924,48,3,1048576,34144,51898,268435456,0
+0,0,6,4,0,0,32768,30704,6,5,1048576,34112,13199,4194304,0
+0,0,0,6,0,0,1187112,368472,14,10,1048576,33120,755732,5368709120,0
+28,445964,0,4,0,0,8192,1128,48,3,1048576,34144,446358,268435456,0
+0,0,0,6,0,0,0,64332,14,3,1048576,33088,330944,4194304,0
+0,0,6,4,0,0,32768,68928,6,5,1048576,34112,13199,4194304,0
+0,0,6,5,0,0,103172,75496,2,8,1048576,33088,71644,4194304,0
+0,0,0,4,0,0,8192,956,48,3,1048576,34144,146370,268435456,0
+0,0,0,4,0,0,8192,1544,48,3,1048576,34144,11014,4194304,0
+0,0,0,4,0,0,8192,44240,48,3,1048576,34144,2160194,4194304,0
+0,0,0,6,0,0,0,64332,14,3,1048576,33088,330944,4194304,0
+84,704232,0,4,0,0,8192,1204,48,3,1048576,34144,704522,268435456,0
+0,0,6,5,0,0,103172,75496,2,8,1048576,33088,71644,4194304,0
+0,0,0,4,0,0,8192,920,48,3,1048576,34144,1146110,268435456,0
+0,0,0,4,0,0,8192,932,48,3,1048576,34144,2175182,268435456,0
+0,0,0,4,0,0,32768,4072,6,4,1048576,256,29252,4194304,0
+28,108816,0,6,0,0,81920,4072,14,6,1048576,33120,39160,5368709120,0
+84,114032,0,4,0,0,8192,1348,48,3,1048576,34144,114318,268435456,0
+0,0,0,4,0,0,8192,952,48,3,1048576,34144,690138,268435456,0
+0,0,0,4,0,0,32768,4072,6,4,1048576,256,29588,4194304,0
+0,0,0,4,0,0,8192,924,48,3,1048576,34144,51898,268435456,0
+0,0,6,4,0,0,32768,30704,6,5,1048576,34112,13199,4194304,0
+0,0,0,6,0,0,1187112,368472,14,10,1048576,33120,755732,5368709120,0
+28,445964,0,4,0,0,8192,1128,48,3,1048576,34144,446358,268435456,0
+0,0,0,6,0,0,0,64332,14,3,1048576,33088,330944,4194304,0
+0,0,6,4,0,0,32768,68928,6,5,1048576,34112,13199,4194304,0
+0,0,6,5,0,0,103172,75496,2,8,1048576,33088,71644,4194304,0
+0,0,0,4,0,0,8192,956,48,3,1048576,34144,146370,268435456,0
+0,0,0,4,0,0,8192,1544,48,3,1048576,34144,11014,4194304,0
+28,224408,0,6,0,0,188416,64880,14,6,1048576,33120,127600,5368709120,0
+0,0,0,4,0,0,8192,44240,48,3,1048576,34144,2160194,4194304,0
+0,0,0,6,0,0,0,64332,14,3,1048576,33088,330944,4194304,0
+84,704232,0,4,0,0,8192,1204,48,3,1048576,34144,704522,268435456,0
+0,0,6,5,0,0,103172,75496,2,8,1048576,33088,71644,4194304,0
+0,0,0,4,0,0,8192,920,48,3,1048576,34144,1146110,268435456,0
+0,0,0,4,0,0,8192,932,48,3,1048576,34144,2175182,268435456,0
+0,0,0,4,0,0,32768,4072,6,4,1048576,256,29252,4194304,0
+28,108816,0,6,0,0,81920,4072,14,6,1048576,33120,39160,5368709120,0
+84,114032,0,4,0,0,8192,1348,48,3,1048576,34144,114318,268435456,0
+0,0,0,4,0,0,8192,952,48,3,1048576,34144,690138,268435456,0
+0,0,0,4,0,0,32768,4072,6,4,1048576,256,29588,4194304,0
+0,0,0,4,0,0,8192,924,48,3,1048576,34144,51898,268435456,0
+0,0,6,4,0,0,32768,30704,6,5,1048576,34112,13199,4194304,0
+0,0,0,6,0,0,1187112,368472,14,10,1048576,33120,755732,5368709120,0
+28,445964,0,4,0,0,8192,1128,48,3,1048576,34144,446358,268435456,0
+0,0,0,6,0,0,0,64332,14,3,1048576,33088,330944,4194304,0
+0,0,6,4,0,0,32768,68928,6,5,1048576,34112,13199,4194304,0
+0,0,6,5,0,0,103172,75496,2,8,1048576,33088,71644,4194304,0
+0,0,0,4,0,0,8192,956,48,3,1048576,34144,146370,268435456,0
+0,0,0,4,0,0,8192,1544,48,3,1048576,34144,11014,4194304,0
+28,224408,0,6,0,0,188416,64880,14,6,1048576,33120,127600,5368709120,0
+0,0,0,6,0,0,0,36048,14,3,4194304,0,5400240,4194304,0
+0,0,0,4,0,0,8192,44240,48,3,1048576,34144,2160194,4194304,0
+0,0,0,6,0,0,0,64332,14,3,1048576,33088,330944,4194304,0
+84,704232,0,4,0,0,8192,1204,48,3,1048576,34144,704522,268435456,0
+0,0,6,5,0,0,103172,75496,2,8,1048576,33088,71644,4194304,0
+0,0,0,4,0,0,8192,920,48,3,1048576,34144,1146110,268435456,0
+0,0,0,4,0,0,8192,932,48,3,1048576,34144,2175182,268435456,0
+0,0,0,4,0,0,32768,4072,6,4,1048576,256,29252,4194304,0
+28,108816,0,6,0,0,81920,4072,14,6,1048576,33120,39160,5368709120,0
+84,114032,0,4,0,0,8192,1348,48,3,1048576,34144,114318,268435456,0
+0,0,0,4,0,0,8192,952,48,3,1048576,34144,690138,268435456,0
+0,0,0,4,0,0,32768,4072,6,4,1048576,256,29588,4194304,0
+0,0,0,4,0,0,8192,924,48,3,1048576,34144,51898,268435456,0
+0,0,6,4,0,0,32768,30704,6,5,1048576,34112,13199,4194304,0
+0,0,0,6,0,0,1187112,368472,14,10,1048576,33120,755732,5368709120,0
+28,445964,0,4,0,0,8192,1128,48,3,1048576,34144,446358,268435456,0
+0,0,0,6,0,0,0,64332,14,3,1048576,33088,330944,4194304,0
+0,0,6,4,0,0,32768,68928,6,5,1048576,34112,13199,4194304,0
+0,0,6,5,0,0,103172,75496,2,8,1048576,33088,71644,4194304,0
+0,0,0,4,0,0,8192,956,48,3,1048576,34144,146370,268435456,0
+0,0,0,4,0,0,8192,1544,48,3,1048576,34144,11014,4194304,0
+28,224408,0,6,0,0,188416,64880,14,6,1048576,33120,127600,5368709120,0
+0,0,0,6,0,0,0,36048,14,3,4194304,0,5400240,4194304,0
+0,0,0,4,0,0,8192,908,48,3,1048576,34144,157578,268435456,0
+0,0,0,4,0,0,8192,44240,48,3,1048576,34144,2160194,4194304,0
+0,0,0,6,0,0,0,64332,14,3,1048576,33088,330944,4194304,0
+84,704232,0,4,0,0,8192,1204,48,3,1048576,34144,704522,268435456,0
+0,0,6,5,0,0,103172,75496,2,8,1048576,33088,71644,4194304,0
+0,0,0,4,0,0,8192,920,48,3,1048576,34144,1146110,268435456,0
+0,0,0,4,0,0,8192,932,48,3,1048576,34144,2175182,268435456,0
+0,0,0,4,0,0,32768,4072,6,4,1048576,256,29252,4194304,0
+28,108816,0,6,0,0,81920,4072,14,6,1048576,33120,39160,5368709120,0
+84,114032,0,4,0,0,8192,1348,48,3,1048576,34144,114318,268435456,0
+0,0,0,4,0,0,8192,952,48,3,1048576,34144,690138,268435456,0
+0,0,0,4,0,0,32768,4072,6,4,1048576,256,29588,4194304,0
+0,0,0,4,0,0,8192,924,48,3,1048576,34144,51898,268435456,0
+0,0,6,4,0,0,32768,30704,6,5,1048576,34112,13199,4194304,0
+0,0,0,6,0,0,1187112,368472,14,10,1048576,33120,755732,5368709120,0
+28,445964,0,4,0,0,8192,1128,48,3,1048576,34144,446358,268435456,0
+0,0,0,6,0,0,0,64332,14,3,1048576,33088,330944,4194304,0
+0,0,6,4,0,0,32768,68928,6,5,1048576,34112,13199,4194304,0
+0,0,6,5,0,0,103172,75496,2,8,1048576,33088,71644,4194304,0
+0,0,0,4,0,0,8192,956,48,3,1048576,34144,146370,268435456,0
+0,0,0,4,0,0,8192,1544,48,3,1048576,34144,11014,4194304,0
+28,224408,0,6,0,0,188416,64880,14,6,1048576,33120,127600,5368709120,0
+0,0,0,6,0,0,0,36048,14,3,4194304,0,5400240,4194304,0
+0,0,0,4,0,0,8192,908,48,3,1048576,34144,157578,268435456,0
+0,0,6,6,802816,154,795380,69632,2,10,1048576,33088,745196,4194304,0
+112,157424,0,6,0,0,122880,163843400,14,5,1048576,33088,43787,4194304,0
+112,157424,0,6,0,0,122880,114220356,14,5,1048576,33088,42392,4194304,0
+0,0,6,4,0,0,32768,75880,6,5,1048576,34112,13238,4194304,0
+56,2405360,0,6,0,0,2109440,20296,14,6,1048576,33088,1613407,4194304,0
+112, 153040, 0, 6, 0, 0, 118784, 122137172, 14, 5, 1048576, 33088, 40936, 4194304,0
+112,175744,0,6,0,0,139264,95569956,14,7,1048576,33088,46622,4194304,0
+112,861680,0,6,0,0,749568,1544416,14,5,1048576,33088,450027,4194304,0
+0,0,6,5,0,0,103172,45568,2,8,1048576,33088,71644,4194304,0
+0,0,6,4,0,0,32768,105488,6,5,1048576,34112,13888,4194304,0
+0,0,6,6,802816,154,795380,51260,2,10,1048576,33088,745196,4194304,0
+0,0,6,6,802816,154,795380,51260,2,10,1048576,33088,745196,4194304,0
+112,787560,0,6,0,0,446464,59024,14,5,1048576,33088,301013,4194304,0
+84,33792,10,5,225168,84,233472,180108,14,6,1048576,33088,117719,4194304,0
+28, 234320, 0, 5, 0, 0, 172032, 61452, 14, 7, 2000000, 49504, 42672, 5368709120, 0
+0, 0, 0, 4, 0, 0, 0, 4444, 5, 2, 1048576, 0, 207065, 4194304, 1
+